ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

基于深度学习cnn的扑克牌检测 扑克牌识别 YOLO11的扑克牌检测-数据集+模型-目标检测图像数据集

基于深度学习cnn的扑克牌检测 扑克牌识别 YOLO11的扑克牌检测-数据集+模型-目标检测图像数据集 这个项目是个用YOLO11模型搞扑克牌检测和分析的玩意儿简单说就是让电脑能认出牌桌上的牌还能帮玩家算各种牌型的概率挺实用的。首先说核心的牌检测部分。作者用了扑克牌数据集来训练YOLO11模型——这个数据集里应该都是各种角度、场景下的扑克牌图片。训练是在谷歌Colab的T4 GPU上跑的花了3个多小时跑了30轮专业叫“epochs”。训练效果还挺好从数据看不管是识别准确率Box§、召回率R还是综合评分mAP50都快到1了说明模型基本能准确认出各种牌。训练好之后作者写了个叫detect_cards.py的脚本专门用来做检测。用的时候很简单只要导入脚本里的函数给张图片路径和训练好的模型权重文件存在weights文件夹里叫poker_best.pt就能查出图里有几张牌还能按从左到右的顺序列出来甚至能把简写比如2C、7H转换成“梅花2”“红桃7”这种大白话。而且这脚本速度也还行普通3.4GHz的CPU不用ONNX加速的话每张图处理大概160毫秒用上ONNX加速能快到105毫秒日常用完全够了。不过有个小注意点因为训练时用的是正方形图片所以模型在正方形图片上而且牌在画面中间的时候识别效果最好。作者还放了几个实际测试的例子比如牌挨得近、离得远还有拍桌面特写的情况效果都挺不错。除了认牌这个项目还有个更实用的功能——帮玩家分析牌型概率靠的是analyze_hands.py这个脚本。具体来说就是先让模型识别出桌上的公共牌table_cards和玩家手里的牌player_cards然后把这两类牌输进脚本里脚本就能算出能组成各种牌型的概率。比如作者给的例子里桌上是方块3和梅花3玩家手里是黑桃3和红桃3脚本就会算出“四条”四张一样的牌的概率是100%“葫芦”三张加一对是18%还有桌上是黑桃6、红桃2、黑桃3玩家手里是黑桃4、红桃5的情况脚本能算出“顺子”概率100%“同花顺”4%——玩家看了这个概率就能大概知道自己手牌的强度打起来心里有数。项目文件也整理得挺清楚除了刚才说的两个核心脚本还有两个Jupyter Notebook里是模型训练的完整代码想复现训练过程的话看这个Poker_Hand_Inference.ipynb是用来做推理和画结果图的能直观看到检测效果。另外还有images文件夹放的是测试图片和结果图__pycache__是Python自动生成的缓存文件不用管。基于深度学习cnn的扑克牌检测 扑克牌识别 YOLO11的扑克牌检测-数据集模型-目标检测图像数据集
返回列表