最新YOLO实现的扑克牌识别实时检测平台(Flask+SocketIO+HTML_CSS_JS)
摘要
本文面向“扑克牌目标与字符组合(花色/点数)实时识别”应用,构建一套端到端平台,涵盖数据集准备、最新 YOLO 实现训练与在线推理、以及 Web 网页界面(Flask + Flask-SocketIO / HTML / CSS / JS)实时演示。平台支持 图片/视频/浏览器摄像头 三种输入源,以 双画面对比 呈现原始与检测结果(同步缩放与时间轴),并提供 进度控制(播放/暂停/继续/停止)、CSV 导出、带框结果一键下载 与日志追踪;检测元数据全量写入 SQLite 入库,并带 登录/注册(可跳过) 的轻量会话机制。后端内置 模型选择/权重上传,可在 YOLOv5–YOLOv12(共 8 种) 间快速切换,对比 mAP、F1、PR 曲线、训练曲线 与延迟/吞吐等指标,支持按牌面类别与组合统计的可视化分析。为便于复现,文中给出完整数据流程、评测协议与可复用前后端模板;文末提供完整工程与数据集下载链接,便于读者直接部署或二次开发。
讲解视频地址:基于深度学习的扑克牌识别软件(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck59pZA==
说明论文下载:https://mbd.pub/o/bread/YZWck5xpag==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmpprZA==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5pqZQ==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5lrZA==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9wag==
安装与教程文档:https://deeppython.feishu.cn/wiki/GLVCwejegisQbnkzfLNcy8lqnpd
@
1. 网页功能与效果
(1)登录注册:页面提供登录、注册与一次性跳过三种入口,会话在当前浏览器作用域内生效并支持随时注销与超时失效;密码采用口令哈希与基础风控校验,避免明文存储。进入系统后会自动载入个性化偏好与最近记录,便于继续未完成的检测任务而无需重复配置。

(2)功能概况:首页以卡片化方式概述平台能力与当前环境,包括图片/视频/摄像头输入支持、实时双画面对比、进度控制、CSV 导出与带框结果一键下载等关键要点。用户可从“概览 → 图片检测 / 视频检测 / 摄像头检测 → 模型选择 → 导出视图”的动线快速抵达目标功能,减少探索成本。

(3)视频检测:播放器提供同步双帧对照视图,原始与检测结果按 16:9 自适应显示,并具备进度、暂停、继续、停止与关键帧跳转控制。推理过程中可实时调节 Conf/IoU 与类别筛选,检测元数据持续写入缓冲并支持导出 MP4、CSV 以及带框视频一键下载,底部“检测记录”在多页面间共享以便复核。

(4)更换模型:上传权重即可切换当前模型,类别与阈值联动刷新,无需手动重配;支持 YOLOv5–YOLOv12 的快速比对和热切换,适配不同性能与精度需求。路径规范保持跨平台兼容,数据库自动迁移确保版本升级期间的持续可用,导出结果集中管理并可按文件名高亮与批量下载。

(5)概览界面:仪表盘汇总最近任务、类别分布、检测吞吐与延迟等关键统计,并提供 mAP/F1 快速预览与PR曲线缩略图。支持按时间与标签筛选并一键跳转至对应图片、视频或摄像头会话,结合最近记录与搜索框实现“发现—定位—导出”的闭环体验。

2. 绪论
2.1 研究背景与意义
扑克牌识别属于“细粒度 + 小目标 + 密集遮挡”的复合目标检测问题,在卡桌监控、发牌机器人、教学与作弊分析等场景中对实时性与可解释可视化有稳定需求,因此需要在边缘端以低时延完成人-机协同的信息闭环1。面向工程落地,检测结果不仅要展示框、类别与置信度,还要形成结构化元数据以便检索与追溯,这推动前端采用浏览器可视化,后端采用高吞吐的一阶段检测器并结合导出与加速链路2。从算法范式看,端到端/近端到端的检测思路减少了后处理开销,有助于在 Flask+SocketIO 的全双工通道中实现“推理—可视化—交互”一致性,从而满足连续视频与摄像头源的稳定帧率3。在平台侧,ONNX/TensorRT 导出与 INT8 量化可在保证精度基本可控的前提下显著压缩算力成本,进一步增强系统在中端 GPU/CPU 上的可部署性4。(Ultralytics)
2.2 国内外研究现状
扑克牌场景的主要难点体现在:牌角字符/花色易混淆(如“10”与“J”)导致类间相似度高,小目标与强反光使得特征对比度不足,堆叠遮挡与多视角姿态变化又放大了正负样本分配的波动性1。国内综述指出,近年的检测研究在锚框/无锚、标签分配与金字塔特征等方面持续演进,以缓解小目标与密集场景的匹配不稳问题,为此类场景提供了方法学基础5。在系统层,浏览器端实时呈现需要低延迟而稳定的帧间一致,这要求检测器在保留精度的同时尽量减少后处理和跨框架拷贝2。(Ultralytics)
在一阶段无锚/解耦头路线中,YOLOX 以无锚点、解耦头与 SimOTA 标签分配提升了正负样本匹配稳定性,官方报告 YOLOX-L 在 COCO 上达 50.0 AP 与 68.9 FPS(V100),在同等规模下兼顾速度与精度6。工业部署导向的 PP-YOLOE 通过 CSPRepResStage、ET-Head 与 TAL 取得更好的工程可用性与吞吐,PP-YOLOE-L 在 COCO test-dev 上达 51.4 mAP 与 78.1 FPS(V100)7。困难样本与类不均衡方面,RetinaNet 的 Focal Loss 显著提升了一阶段检测的鲁棒性,为扑克牌角标这类长尾/易混类别提供了可借鉴的损失设计8。无锚像素级回归的 FCOS 进一步简化了检测头假设,降低了锚框超参敏感度,适应密集与小目标场景9。(arXiv)
Transformer 端到端检测方面,DETR 以集合预测思想省去 NMS,但原始版本在收敛和小目标上存在挑战,限制了实时部署3。RT-DETR 提出高效混合编码器与不确定性最小查询选择,在 T4 上实现 R50 级 108 FPS、COCO 53.1 AP(经 Objects365 预训练可至 55.3 AP),展示了端到端实时化的可行路径10。RT-DETRv2 在多尺度采样与训练策略上引入“免费包”改进,进一步提升实用性并弱化部署约束,为浏览器实时服务提供了更灵活的速度-精度调参空间11。(ECVA)
YOLO 家族的近年迭代兼顾工程生态与性能边界:YOLOv7 通过 E-ELAN 与可训练 freebies 在“≥30 FPS 实时区间”内报告 56.8% AP 并显著优化了训练/推理细节12;YOLOv9 引入 PGI 与 GELAN 以改善梯度信息通路与参数利用效率,轻量到大型模型均获益13;YOLOv10 以 NMS-free 的一致性训练和整体效率-精度协同设计降低端到端延迟,适合 Web 低时延场景14;Ultralytics 的 YOLO11 在框架工程化、导出与基准评测工具链上完善易用性,便于快速集成前后端闭环15;近期 YOLO12 以“注意力中心化”结构进一步提升精度-速度平衡,并在小型化配置上相对 v10/v11 报告更高 mAP 与可比时延16。(arXiv)
从系统/部署趋势看,Ultralytics Export 模式覆盖 ONNX/TensorRT/OpenVINO 等多格式并官方给出最高约 5× 的 GPU 加速与约 3× 的 CPU 加速区间,为边缘实时检测提供即插即用的导出路径2。ONNX Runtime 则提供 PTQ/QAT 等 INT8 量化工具与形状推断/融合优化,帮助在中端算力场景取得更优吞吐/延迟比,匹配浏览器摄像头与视频推理需求4。(Ultralytics Docs)
表1 代表性检测方法与关键指标对比(节选)
| 方法 | 范式/家族 | 数据集 | 关键改进 | 优势与局限 | 指标(原文/官方) | 适配难点 |
|---|---|---|---|---|---|---|
| Faster R-CNN | 两阶段/Anchor-based | COCO/VOC | RPN + 共享特征 | 精度高、时延大 | VGG-16 系统约 5 FPS(GPU)18 | 遮挡鲁棒但非实时 |
| RetinaNet | 单阶段/Anchor-based | COCO | Focal Loss | 缓解前景/背景不平衡 | 原文显著优于两阶段同代8 | 类不均衡/长尾 |
| FCOS | 单阶段/Anchor-free | COCO | 像素级回归 | 免锚框、匹配稳定 | 原文报告高精度9 | 小目标/密集 |
| CenterNet | 单阶段/Anchor-free | COCO | 中心点检测 | 结构简 | 37.4 AP @ 52 FPS(COCO)19 | 快速原型 |
| YOLOX-L | 单阶段/Anchor-free | COCO | 解耦头 + SimOTA | 速精平衡 | 50.0 AP @ 68.9 FPS(V100)6 | 小目标/密集 |
| PP-YOLOE-L | 单阶段/工业化 | COCO | CSPRepResStage + ET-Head + TAL | 工程友好 | 51.4 mAP @ 78.1 FPS(V100)7 | 高吞吐 |
| YOLOv7 | 单阶段/YOLO | COCO | E-ELAN + BoF | 实时 SOTA(时段内) | 56.8% AP(V100 ≥30 FPS 区间)12 | 全面性能 |
| RT-DETR-R50 | 端到端/DETR | COCO/Objects365 | 混合编码器 + 查询选择 | 免 NMS、端到端 | 53.1 AP、108 FPS(T4);预训至 55.3 AP10 | 端到端一致性 |
| YOLOv10 | 单阶段/YOLO | COCO | NMS-free + 一致性双分配 | 低延迟 | 同精度下显著降延迟/参数14 | 低时延 Web |
| YOLOv12-N | 单阶段/YOLO | COCO | 注意力中心化 | 精度更高 | 40.6% mAP,1.64 ms(T4)16 | 轻量高精度 |
注:表中指标均引自各论文/官方文档在公开设定下的报告,用于方法特征与可用性对比;不同硬件与实现会导致数值差异。
2.3 要解决的问题及其方案
(1)准确性与实时性:细粒度牌角字符/花色易混、小目标与遮挡频发,要求检测器在高帧率下仍保持稳定的正负样本分配与低延迟推理6。(2)环境适应性与泛化:不同牌面设计、光照反射与视角变化引发域偏移,需要通过数据增强、迁移学习与鲁棒的标签/损失设计缓解7。(3)网页交互直观性与功能完备:要求浏览器端实现同步双帧、阈值/类别筛选与结构化导出,降低排障与溯源成本1。(4)数据处理效率与存储安全:需要高效的导出链路(ONNX/TensorRT)与量化、以及稳定的结果入库与会话安全策略,保障边缘侧长期运行2。对应方案是:以 YOLOv12 为核心,完成 YOLOv5–YOLOv11 全量对比与迁移增强;采用 PyTorch + Flask + SocketIO 打通“训练—导出—推理—可视化”闭环;提供图片/视频/摄像头多源输入与模型热切换;集成 ONNX/TensorRT 加速与 INT8 量化,并对数据处理与 SQLite 入库进行结构化设计,确保实时性、稳定性与可追溯。(arXiv)
2.4 博文贡献与组织结构
(1)综合文献综述:围绕扑克牌场景的任务难点与 YOLO/DETR 系方法,系统梳理 Anchor-free、解耦头、端到端与注意力中心化等技术演进与部署趋势,并给出可追溯的对比表与指标来源314。(2)模型选择与优化:提供 YOLOv5–YOLOv12 的统一训练与评测范式,结合导出与量化的工程链路,给出精度-延迟-吞吐的多维权衡建议2。(3)美观友好的网页设计:实现双画面对比、进度控制、阈值/IoU 调节、类别筛选、CSV/带框结果下载与会话管理,强调端到端一致性的实时体验1。(4)效果对比与可复现资源:提供评测协议与可复用模板,支持 mAP、F1、PR/训练曲线等多维对比,并在文末给出完整工程与数据集链接,便于读者直接部署与二次开发2。(ECVA)
3. 数据集处理
本研究采用自建扑克牌检测数据集,共 24240 张图片,已按训练/验证/测试三部分划分为 21210/2020/1010 张,标签采用 YOLO 标注规范(每行为 class_id 与归一化的 x_center、y_center、width、height)。类别采用 52 个牌面身份作为检测目标,英文编码到中文名称的映射如“AC/AD/AH/AS→梅花A/方块A/红桃A/黑桃A,…,KC/KD/KH/KS,10C/10D/10H/10S”等,与系统中的中文展示保持一致。读者提供的样例图显示了丰富的背景与材质、视角与旋转、堆叠与遮挡及光照反射等典型干扰;而给出的 x–y–w–h 成对分布图显示中心坐标在全图范围内近似均匀,宽高呈现双峰分布(约对应“近景单牌/远景多牌”两类尺度),为后续多尺度训练、自动锚框聚类或无锚检测头提供了依据。为避免数据泄漏,划分时对同一场景序列与高相似素材进行去重与分隔,尽量保证验证/测试集包含与训练集不同的背景域与纹理组合,以评估域外泛化能力;基础预处理遵循 letterbox 缩放与颜色空间标准化,统一训练输入尺寸并保留纵横比。
Chinese_name = {'10C': "梅花10", '10D': "方块10", '10H': "红桃10", '10S': "黑桃10",
'2C': "梅花2", '2D': "方块2", '2H': "红桃2", '2S': "黑桃2",
'3C': "梅花3", '3D': "方块3", '3H': "红桃3", '3S': "黑桃3",
'4C': "梅花4", '4D': "方块4", '4H': "红桃4", '4S': "黑桃4",
'5C': "梅花5", '5D': "方块5", '5H': "红桃5", '5S': "黑桃5",
'6C': "梅花6", '6D': "方块6", '6H': "红桃6", '6S': "黑桃6",
'7C': "梅花7", '7D': "方块7", '7H': "红桃7", '7S': "黑桃7",
'8C': "梅花8", '8D': "方块8", '8H': "红桃8", '8S': "黑桃8",
'9C': "梅花9", '9D': "方块9", '9H': "红桃9", '9S': "黑桃9",
'AC': "梅花A", 'AD': "方块A", 'AH': "红桃A", 'AS': "黑桃A",
'JC': "梅花J", 'JD': "方块J", 'JH': "红桃J", 'JS': "黑桃J",
'KC': "梅花K", 'KD': "方块K", 'KH': "红桃K", 'KS': "黑桃K",
'QC': "梅花Q", 'QD': "方块Q", 'QH': "红桃Q", 'QS': "黑桃Q"}

针对扑克牌场景的长尾与易混问题,数据增强在训练阶段启用 Mosaic/随机透视/旋转与尺度抖动以覆盖大范围的姿态与尺度变化;同时结合 HSV 抖动、随机曝光与运动模糊以模拟强反光与动态拍摄;对局部遮挡与密集重叠采用 Copy–Paste 与小概率 Cutout;对背景域采用纹理替换与噪声注入以提升跨材质鲁棒性;对类别分布原则上保持均衡采样,必要时对稀少类别设置类重采样或损失加权。标注清洗方面,统一坐标合法性检查(越界与面积过小过滤)、重复框与严重重叠样本合并、类别编码与中文名映射一致性校验,并固定随机种子以保证训练/验证结果的可重复。上述处理直接对应任务难点:多尺度与视角变化由多尺度与几何增强覆盖,小目标由高分辨输入与细粒度样本策略支撑,反光与纹理重复由光照/噪声增强缓解,遮挡与堆叠由 Copy–Paste/Cutout 提升鲁棒;最终所有标注与元数据将与图片一同归档,供网页端的筛选、检索与可追溯导出使用。

4. 模型原理与设计
本研究默认以 YOLOv12 为核心检测器进行训练与部署,它延续 YOLO 家族的单阶段范式:在同一前向中完成特征提取、特征金字塔融合与解耦检测头预测,以最小后处理开销获得实时性能。对于扑克牌任务的“小目标 + 高相似 + 遮挡”特性,模型采用轻量骨干(CSP/Rep 结构与可选 Ghost 卷积)配合改进的 PAFPN 进行多尺度融合,并在检测头采用解耦式分类/回归与Anchor-free 动态匹配,将每个网格位置的中心点视作候选,按距离与 IoU 共同评分选取正样本,使小角标与堆叠牌的匹配更稳定。前向映射可抽象为多尺度特征 \({F_l}\) 的端到端函数 \(f_\theta\):\(\hat{Y} = f_\theta(I) = {(\mathbf{p}_i, \mathbf{b}_i, \mathbf{c}_i)}_i\),其中 \(\mathbf{p}_i\) 为目标存在概率,\(\mathbf{b}_i = (x,y,w,h)\) 为归一化框,\(\mathbf{c}_i\) 为类别分布;解耦头以独立分支分别最小化分类与回归损失,减少梯度竞争并提升收敛稳定性。
在结构细节上,骨干由分层残差块与跨阶段连接堆叠,卷积与归一化的基本形式为 \(\mathbf{y} = \mathrm{BN}(W * \mathbf{x}) + \mathbf{b}\),其中 \(W\) 为卷积核、\(*\) 表示互相关,保证在轻量算子下的表达力。为增强对牌角字符与花色纹理的辨识,颈部引入轻量注意力(例如 SE/ECA/CBAM 的一类实现):先以全局平均池化得到通道描述 \(\mathbf{s} = \sigma(W_2 ,\delta(W_1, \mathrm{GAP}(\mathbf{F})))\),再进行逐通道重标定,\(\delta\) 为 ReLU,\(\sigma\) 为 Sigmoid,能够在复杂背景与反光下突出高频字符笔画;当启用 Transformer 组件时,局部窗口的自注意力写作 \(\mathrm{Attn}(Q,K,V) = \mathrm{softmax}!\left(\frac{QK^\top}{\sqrt{d}}\right)V\),其中 \(Q,K,V\) 由线性变换得到、\(d\) 为通道维,主要用于高层语义聚合而不显著增加延迟。检测头采用解耦卷积分支与轻量门控,分类分支输出 \(\hat{\mathbf{c}} \in \mathbb{R}^{K}\),回归分支直接回归 \((x,y,w,h)\) 或其对数变换,配合 Anchor-free 的中心先验约束提升定位精度。网络整体架构图如下图所示(通用 YOLO 结构示意,便于理解骨干-颈部-头的协同):

损失与标签建模方面,边框采用 CIoU 族目标函数以同时约束重叠、中心距离与长宽比:
其中 \(\rho\) 为两框中心欧氏距离,\(c\) 为最小外接框对角线长度,\(\mathrm{IoU}=\frac{|B\cap B^{gt}|}{|B\cup B^{gt}|}\);分类与目标存在性采用带标签平滑与 Focal 机制的二元交叉熵:
其中 \(\alpha\) 与 \(\gamma\) 控制易/难样本权重,\(\varepsilon\) 为平滑系数、\(K\) 为类别数(本任务 \(K=52\))。总损失为
三项权重按验证集稳定性网格搜索设定;正负样本匹配采用动态 k策略(基于 IoU 与中心距离的代价矩阵),在密集堆叠与尺度跨度较大的扑克牌场景下能显著降低错配率。推理侧可选 NMS-free 一致性训练或传统 NMS/Soft-NMS;当开启一致性路径时,训练阶段以匹配分配代替 NMS 近似,从而减少线上后处理延迟。
训练与正则化采用“Warmup + 余弦退火”学习率,学习率随迭代 \(t\) 的更新为
并配合 EMA 权重、同步 BN、随机形变与多尺度输入以提升泛化。为契合扑克牌小目标,输入分辨率优先选择较高短边(如 896/1024)并开启 Mosaic/随机旋转/透视,以覆盖倾斜、翻折与反光;部署端导出到 ONNX/TensorRT,启用 FP16 或 INT8 校准,在 Flask-SocketIO 的双向通道中与前端阈值(Conf/IoU)与类别筛选实时联动。针对“角标字符易混/强反光/遮挡密集”的难点,模型通过:多尺度融合缓解尺寸变化;通道/空间注意力提升字符纹理辨识;CIoU 与动态匹配稳定正样本;一致性训练减少 Web 端后处理开销,从而在浏览器视频流中获得稳定帧率与更低时延。
5. 实验结果与分析
本节在自建 52 类扑克牌数据集上对 YOLOv5nu、YOLOv6n、YOLOv7-tiny、YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n、YOLOv12n 与 YOLOv5su、YOLOv6s、YOLOv7、YOLOv8s、YOLOv9s、YOLOv10s、YOLOv11s、YOLOv12s 进行统一训练与评测;指标采用 Precision/Recall/F1、mAP@0.5、mAP@0.5:0.95,时延以 Pre/Inf/Post 细分并在 RTX 3070 Laptop 8GB 上统计。给定的混淆矩阵呈现近乎理想的对角线,PR 曲线几乎贴近 (1,1),F1-Confidence 曲线在 Conf≈0.877 处最优,适合作为网页端视频默认阈值;训练曲线显示各模型在前 10 个 epoch 内迅速收敛,mAP@0.5 稳定在 0.99 附近,如附图所示。

从轻量 n 系看,准确率/F1 均在 0.999± 量级、mAP@0.5 约 0.995,但 mAP@0.5:0.95 区分了定位与框质量:YOLOv10n(0.9817)与 YOLOv9t(0.9790)更高,而 YOLOv7-tiny 在 mAP@0.5 虽最高(0.9992),但 mAP@0.5:0.95 降至 0.9656,提示在高 IoU 阈值下定位精度受限;时延上 YOLOv8n 的总耗时约 10.17 ms(≈98 FPS)最佳折中,YOLOv6n 约 10.34 ms(≈97 FPS)相近,YOLOv10n 因一致性/NMS-free 路径 Post=0.63 ms 明显更低,但 Inf=11.24 ms 抬升使总时延约 13.95 ms。

在小型 s 系中,YOLOv10s 的 mAP@0.5:0.95 最高(0.9842),而 YOLOv8s 以总时延 ≈11.39 ms 提供更快的实时性;YOLOv7 延迟与 FLOPs 明显更大但 mAP@0.5 极高(0.9996)。结合网页端推理与双帧对比的交互体验,推荐:GPU 资源有限/关注帧率选 YOLOv8n/YOLOv6n;精度优先/离线导出选 YOLOv10s/YOLOv10n;超低后处理时延场景优先启用 v10 的一致性路径以降低 PostTime。误检主要出现在少数遮挡重叠与强反光样本,建议提高训练输入分辨率并增强 Copy-Paste/曝光扰动,线上将 IoU-NMS≈0.6、Conf≈0.88 作为默认,再按视频噪声微调。

综合对比表(节选)
| Model | Params(M) | FLOPs(G) | Pre(ms) | Inf(ms) | Post(ms) | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 1.90 | 7.73 | 1.31 | 0.9995 | 1.0000 | 0.9998 | 0.9950 | 0.9761 |
| YOLOv6n | 4.3 | 11.1 | 2.17 | 6.78 | 1.39 | 0.9996 | 1.0000 | 0.9998 | 0.9950 | 0.9771 |
| YOLOv7-tiny | 6.2 | 13.8 | 2.28 | 14.74 | 4.06 | 0.9994 | 0.9998 | 0.9996 | 0.9992 | 0.9656 |
| YOLOv8n | 3.2 | 8.7 | 1.95 | 6.83 | 1.39 | 0.9995 | 0.9999 | 0.9997 | 0.9950 | 0.9781 |
| YOLOv9t | 2.0 | 7.7 | 1.87 | 16.51 | 1.29 | 0.9996 | 1.0000 | 0.9998 | 0.9950 | 0.9790 |
| YOLOv10n | 2.3 | 6.7 | 2.08 | 11.24 | 0.63 | 0.9979 | 0.9984 | 0.9981 | 0.9950 | 0.9817 |
| YOLOv11n | 2.6 | 6.5 | 2.11 | 9.44 | 1.42 | 0.9994 | 0.9999 | 0.9996 | 0.9950 | 0.9779 |
| YOLOv12n | 2.6 | 6.5 | 1.91 | 12.47 | 1.37 | 0.9996 | 1.0000 | 0.9998 | 0.9950 | 0.9786 |
| YOLOv5su | 9.1 | 24.0 | 2.28 | 8.45 | 1.51 | 0.9996 | 1.0000 | 0.9998 | 0.9950 | 0.9793 |
| YOLOv6s | 17.2 | 44.2 | 2.22 | 8.59 | 1.45 | 0.9996 | 1.0000 | 0.9998 | 0.9950 | 0.9809 |
| YOLOv7 | 36.9 | 104.7 | 2.44 | 23.62 | 3.46 | 0.9993 | 0.9999 | 0.9996 | 0.9996 | 0.9809 |
| YOLOv8s | 11.2 | 28.6 | 2.31 | 7.66 | 1.42 | 0.9996 | 1.0000 | 0.9998 | 0.9950 | 0.9805 |
| YOLOv9s | 7.2 | 26.7 | 2.12 | 18.66 | 1.39 | 0.9996 | 1.0000 | 0.9998 | 0.9950 | 0.9821 |
| YOLOv10s | 7.2 | 21.6 | 2.21 | 11.38 | 0.60 | 0.9995 | 0.9995 | 0.9995 | 0.9950 | 0.9842 |
| YOLOv11s | 9.4 | 21.5 | 2.37 | 9.74 | 1.36 | 0.9996 | 1.0000 | 0.9998 | 0.9950 | 0.9815 |
| YOLOv12s | 9.3 | 21.4 | 2.09 | 13.23 | 1.42 | 0.9997 | 1.0000 | 0.9998 | 0.9950 | 0.9822 |
说明:总时延≈Pre+Inf+Post;粗体为列内亮点。
双条形图(n 系)

双条形图(s 系)

结论与建议(面向 Web 端落地):在保持 0.999 级别 F1 的同时,推荐将 YOLOv8n/YOLOv6n 用作默认在线模型,YOLOv10s/YOLOv10n 作为高精度备选;视频检测默认 Conf≈0.88、IoU-NMS≈0.6,并在强反光/遮挡多的场景适度降低置信度或启用类别筛选与帧间平滑。上述模型与参数可直接对接 Flask-SocketIO 的双画面对比、进度控制与 CSV/带框导出,保证浏览器端的低时延与稳定体验。

6. 系统设计与实现
6.1 系统设计思路
本系统采用四层分层架构:表现与交互层(浏览器端 Web)、业务与会话管理层(Flask + Flask-SocketIO)、推理与任务调度层(YOLO 推理/并发控制)、数据持久化层(SQLite/归档与导出)。用户在浏览器侧完成登录/注册或一次性跳过后,按“概览 → 图片/视频/摄像头检测 → 模型选择 → 导出视图”的动线进入业务流;多源输入通过 SocketIO 通道送达任务路由,进入预处理(尺寸/颜色/排布)与推理队列,后处理将框、分数与类别结构化,同步双帧(原始帧/叠加帧)回传给前端左右等宽视图,并与进度/播放控制、阈值(Conf/IoU)和类别筛选保持实时联动。
实时性与一致性通过三方面保障:其一,同步双帧推送与时间戳对齐,确保视频检测左右画面帧号一致;其二,参数同步将前端阈值与类别筛选以事件驱动的方式广播至当前会话的推理管线,保证“看见即所得”;其三,会话与权限在业务层统一收口,采用口令哈希、会话过期与节流策略限制并发,同时在推理层以任务调度器控制摄像头/视频的解码速率与 GPU 占用,减少抖动与队列拥塞。对于 YOLOv10 的一致性(NMS-free)路径,后处理复杂度进一步下降,从而降低端到端延迟。
可扩展性体现为:权重热切换(上传权重后即时切换模型并刷新类别信息与默认阈值)、统计与导出(CSV/带框图片或视频一键下载)、以及持久化与审计(检测结果与关键操作写入 SQLite,支持按时间/文件名/类别溯源)。数据层设计了导出归档与生命周期管理,保证跨平台路径规范与数据库自动迁移;监控接口对接日志与关键指标(吞吐/时延/丢帧率),为后续 Docker 化与多实例扩展预留空间。
图 6-1 系统流程图
图注:从浏览器端选择输入开始,经由业务路由进入预处理、YOLO 推理与后处理,结果通过 SocketIO 以同步双帧返回前端,并写入数据库与导出管理,形成交互闭环。

图 6-2 系统设计框图
图注:以分层与职能组织模块,表现层负责可视与交互,业务层统一会话与路由,推理层承载视频/摄像头任务与同步双帧,数据层负责结果/账户/导出与审计,模型与日志为横切能力。

6.2 登录与账户管理
图 6-3 登录与账户管理流程
图注:从打开登录界面到进入主界面的完整闭环,覆盖注册入库、登录校验、会话创建、个性化配置加载、资料修改与注销/切换。

说明:系统在打开登录界面后,根据“是否已有账号”分支进入注册或登录。注册阶段对表单进行前端与后端双重校验,并以口令哈希方式入库;登录阶段完成账户校验与节流防护,成功后创建受限期的会话并绑定权限。系统随后载入个性化配置与历史记录,进入主界面;用户在运行中可修改头像与密码(立即同步至会话与数据库),或执行注销/切换操作,保证检测流程与结果/设置的持久化与可追溯,并与后续的图片/视频/摄像头检测流程无缝衔接。
代码下载链接
如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:


资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷
完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/GLVCwejegisQbnkzfLNcy8lqnpd
讲解视频地址:https://www.bilibili.com/video/BV1MED1BvE6u/
完整安装运行教程:
这个项目的运行需要用到Anaconda和Pycharm两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:
- Pycharm和Anaconda的安装教程:https://deepcode.blog.csdn.net/article/details/136639378;
软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):
- Python环境配置教程:https://deepcode.blog.csdn.net/article/details/136639396;
7. 结论与未来工作
本文围绕“最新 YOLO 实现的扑克牌实时识别平台”完成了从数据到系统的全链路实践:在 2.4 万余张、52 类的自建数据集上,YOLOv5–YOLOv12 八代模型完成统一训练与评测,整体达到 0.999 量级的 F1 与约 0.995 的 mAP@0.5,mAP@0.5:0.95 在轻量 n 系与小型 s 系中分别以 YOLOv10n 与 YOLOv10s 表现最佳;结合 Flask + Flask-SocketIO 的 Web 端实现,系统在图片/视频/摄像头输入下稳定输出“同步双帧”可视化,支持阈值(建议默认 Conf≈0.88、IoU-NMS≈0.6)、类别筛选、CSV 与带框结果一键导出,并将检测元数据与会话信息写入 SQLite 实现可追溯管理。实验显示:在强反光、遮挡与多尺度的典型卡桌场景中,多尺度特征融合与解耦头策略有效降低误检漏检,一致性(NMS-free)路径显著压缩后处理时延;平台侧的权重热切换与导出管理降低了运维成本,适合教学演示、桌面智能与机器人发牌等近实时应用。
未来工作将从三条主线推进:其一,模型侧继续向“更轻、更快、更稳”演进,系统化引入蒸馏、剪枝与 INT8 量化的联合策略,探索 RT-DETR/YOLOv10/YOLOv12 的端到端或近端到端统一训练,以适配 CPU/嵌入式边缘设备;其二,系统侧推进工程化与规模化,包括 Docker 化部署、分布式任务队列与多实例负载均衡、WebRTC 实时推流降低端到端时延、角色权限与审计日志、i18n 与多租户支持,并完善监控指标(吞吐/延迟/丢帧/错误)与异常自愈;其三,数据侧构建主动学习与持续标注闭环,加入数据治理与漂移监测,改进长尾类别与域外样本的获取与再训练策略,必要时扩展到“牌型组合/手势/筹码”多任务与多模态(语音/文本规则)协同;同时,将加强安全与隐私防护(账号与口令哈希、限流与风控、前后端输入合法性校验),并在更复杂的真实光照与多人遮挡场景中开展大规模 A/B 实验,以进一步验证与提升平台在真实业务中的鲁棒性与可迁移性。
参考文献(GB/T 7714)
1 Ultralytics. Using a Vision AI Model to Recognize Playing Cards[EB/OL]. 2025-12-(访问). (Ultralytics)
2 Ultralytics. Model Export with Ultralytics YOLO: ONNX/TensorRT/OpenVINO 加速实践[EB/OL]. 2025-12-(访问). (Ultralytics Docs)
3 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[C]//ECCV, 2020. (ECVA)
4 ONNX Runtime. Quantize ONNX Models: INT8 量化与模型优化文档[EB/OL]. 2025-12-(访问). (ONNX Runtime)
5 曹家乐, 李亚利, 孙汉卿, 等. 基于深度学习的视觉目标检测技术综述[J]. 计算机图形学与影像学学报, 2022, 27(6): 1-17. (cjig.ijournals.cn)
6 Ge Z, Liu S, Wang F, et al. YOLOX: Exceeding YOLO Series in 2021[EB/OL]. arXiv:2107.08430, 2021. (arXiv)
7 Xu S, Wang X, Lv W, et al. PP-YOLOE: An Evolved Version of YOLO[EB/OL]. arXiv:2203.16250, 2022. (arXiv)
8 Lin T Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//ICCV, 2017. (CVF Open Access)
9 Tian Z, Shen C, Chen H, He T. FCOS: Fully Convolutional One-Stage Object Detection[C]//ICCV, 2019. (arXiv)
10 Zhao Y, Lv W, Chang Q, et al. RT-DETR: DETRs Beat YOLOs on Real-time Object Detection[EB/OL]. arXiv:2304.08069, 2023. (arXiv)
11 Lv W, Zhao Y, Chang Q, et al. RT-DETRv2: Improved Baseline with Bag-of-Freebies for Real-Time Detection Transformer[EB/OL]. arXiv:2407.17140, 2024. (arXiv)
12 Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable Bag-of-Freebies Sets New SOTA for Real-Time Detectors[EB/OL]. arXiv:2207.02696, 2022. (arXiv)
13 Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Learning with Programmable Gradient Information[EB/OL]. ECCV 2024/arXiv:2402.13616, 2024. (ECVA)
14 Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. arXiv:2405.14458, 2024. (arXiv)
15 Ultralytics. YOLO11: Model Overview & Benchmarks[EB/OL]. 2025-12-(访问). (Ultralytics Docs)
16 Tian Y, Ye Q, Doermann D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025. (arXiv)
17 Ultralytics. YOLO12: Attention-Centric Object Detection(产品文档)[EB/OL]. 2025-(访问). (Ultralytics Docs)
18 Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[EB/OL]. arXiv:1506.01497, 2015. (arXiv)
19 Zhou X, Wang D, Krähenbühl P. Objects as Points(CenterNet)[EB/OL]. arXiv:1904.07850, 2019. (arXiv)

浙公网安备 33010602011771号