乐于分享
好东西不私藏

基于深度学习的扑克牌识别软件(YOLOv12完整代码+论文示例+多算法对比)

基于深度学习的扑克牌识别软件(YOLOv12完整代码+论文示例+多算法对比)

摘要:本文面向桌面端实际应用,设计并实现一套基于深度学习的扑克牌识别软件:以 PySide6/Qt 构建交互界面,支持 图片/视频/本地摄像头 多源输入,实时叠加 类别名+置信度 的检测框,并提供可视化 处理进度条 与耗时统计。系统内置 CSV 导出 与“带框结果一键导出”能力,单帧可导出 PNG、多帧序列可导出 AVI,便于标注复核与数据回溯;同时将账户、偏好与检测记录写入 SQLite 本地库,并提供 登录/注册(可跳过) 的轻量会话流程以兼顾体验与安全。算法侧覆盖 YOLOv5–YOLOv12(共 8 种) 模型,对比 mAP、F1、PR 曲线、训练曲线 等指标,并在界面中提供 模型选择/权重加载(.pt 热切换),实现不同权重间的快速切换与结果复现。文末提供完整工程与数据集链接。

功能效果展示视频:热门实战|《基于深度学习的扑克牌识别软件》YOLOv12-v8多版本合集:附论文/源码/PPT/数据集,支持图片/视频/摄像头输入、可视化界面、结果导出与权重切换:https://www.bilibili.com/video/BV1KeDQBUEdS/


1. 系统功能与效果

(1)登录注册:软件启动后提供登录、注册与跳过入口,登录态在本次会话内生效,用于加载个人偏好与历史记录。进入主界面后,用户可按“概览—检测页面—模型选择—导出视图”的动线完成一次完整流程,并能在记录区快速定位最近一次检测结果。账户信息与检测记录采用本地 SQLite 管理,配合口令校验与一次性跳过机制,在不增加操作负担的前提下兼顾基础安全性。

(2)功能概况:整体交互以桌面端为中心,常用操作集中在左侧控制区(输入源与阈值)、中央显示区(结果叠加可视化)、右侧详情区(目标信息与统计)以及底部记录区(历史、进度与导出)。系统支持单张图片、图片目录、视频文件与本地摄像头等多种输入源,并保证源切换互斥,避免状态混乱。检测过程中可同步展示进度与耗时信息,便于用户判断当前任务的推进与性能表现。

(3)选择模型:用户可在界面中直接选择本地权重并完成模型切换,切换后类别名称与配色方案会同步刷新,减少“模型变了但显示不一致”的认知成本。模型管理同时面向对比评测场景,便于在 YOLOv5–YOLOv12 的不同版本间快速验证效果差异。常用配置与界面主题可在本地持久化保存,下一次进入软件无需重复设置即可恢复到习惯的工作状态。

(4)图片检测:图片加载后支持即时推理,检测框会在主显示区叠加展示,并以“类别名+置信度”的形式给出可读反馈。用户可通过 Conf/IoU 阈值滑块实时调节输出密度与稳定性,并支持对单个目标进行选择与高亮,方便核对相似牌面或边缘遮挡目标。检测结果会在记录区形成结构化条目,便于后续导出与复查。

(5)文件保存:软件提供“一键导出”思路,既可导出带框可视化结果,也可导出结构化统计文件,满足复盘、标注修正与报告整理需求。所有导出文件采用时间戳命名并统一归档,便于按文件名快速检索、批量管理与溯源复查。关键检测信息同时可写入本地数据库,确保在多次实验与多模型切换过程中仍能保持记录连续与数据可追踪。


2. 绪论

2.1 研究背景及意义

在智能制造、智慧零售与自动化交互设备快速普及的背景下,视觉检测正从“离线质检”走向“在线感知”,其核心诉求逐步从单纯识别扩展到实时性、稳定性与可追溯性并重的工程闭环1:https://docs.ultralytics.com/yolov5/tutorials/architecture_description/。扑克牌识别虽然看似偏娱乐应用,但在桌面机器人、人机对弈分析、教学辅助与赛事数据采集等场景中,同样需要以较低延迟完成检测与类别判定,并在复杂光照与遮挡条件下保持鲁棒输出。

从任务特性看,扑克牌识别属于“高类间相似、细粒度差异显著”的典型视觉问题:数字/字母、花色符号与局部纹理决定类别,且常伴随旋转、重叠、反光与尺度变化。早期基于传统特征与模板的方案在可控环境尚可工作,但在真实桌面场景容易受噪声与视角变化影响,难以稳定扩展到多牌面与多设备输入。与此同时,引入交互式界面把模型输出“可视化、可确认、可导出”,并形成可复核的数据记录,是将算法能力转化为可用软件的重要一步2:https://docs.ultralytics.com/models/yolo12/

深度学习检测器的发展为该类实时识别任务提供了统一框架:一方面以端到端特征学习替代手工特征,另一方面以单阶段检测的高吞吐满足实时推理需求。以 YOLO 为代表的单次前向检测范式,将检测问题统一为回归与分类的组合,使得“摄像头实时识别 + 叠加可视化 + 结果记录”的产品形态更易落地[4]。

2.2 国内外研究现状

围绕扑克牌识别这一具体场景,现有研究通常将其拆解为“牌面定位(检测)+ 类别判定(分类/细粒度识别)”两步,其中检测环节决定了系统对遮挡、密集与尺度变化的上限表现。扑克牌的难点集中在:不同牌之间局部纹理高度相似、同一牌在不同视角下几何形变明显、桌面强反光导致局部信息缺失,以及多张牌重叠使得边界不完整。相关课程项目与工程实践表明,即便在相对简单的数据上,牌面定位与角点/中心点估计的稳定性也会直接影响后续识别精度3:https://arxiv.org/html/2502.14740v1

在通用目标检测领域,两阶段方法以候选区域为中心展开分类与回归,Faster R-CNN 通过引入 RPN 并共享卷积特征,显著降低了候选生成的额外开销并成为经典基线[5]。两阶段框架对小目标与遮挡目标往往更稳,但其端到端延迟与部署复杂度在实时桌面应用中存在压力。相对地,单阶段检测器强调密集预测与速度优势,其中 EfficientDet 通过 BiFPN 多尺度融合与复合缩放策略,在精度与计算开销之间给出了可扩展的折中路径[6]。

进一步地,Anchor-free 与关键点范式被用于降低超参数敏感性并提升对尺度变化的适应性。FCOS 直接在像素级位置预测类别与边界框回归,避免了 anchor 相关设计并在 COCO 上给出较强的 AP 表现[7]。Objects as Points 将目标建模为中心点并回归尺寸等属性,在速度与精度折中上提供了另一条可行路线[8]。同时,Transformer 检测器以集合预测与匹配机制替代部分传统后处理,DETR 的工作推动了端到端检测的研究范式[9],而 RT-DETR 则面向实时场景进一步给出了在不同骨干与推理设置下的性能与延迟报告[10]。

在实时检测的工程落地中,YOLO 家族的迭代几乎贯穿了“精度-速度-部署友好性”的主线。YOLO 的单次回归思想奠定了实时检测的基本范式[4]。YOLOv6 通过网络结构与训练策略的系统化更新,在公开报告中给出了较高吞吐的指标示例[11],而 YOLOv7 总结并提出可训练的 bag-of-freebies 以提升精度且不增加推理成本[12]。工业侧的 PP-YOLOE 以 anchor-free、TAL 等设计为核心,在 COCO test-dev 上报告了较高的 mAP 与速度表现,并强调部署友好性[13]。更近期的 YOLOv9 引入 PGI 与 GELAN 以应对深层网络的信息损失并提升参数利用效率[14],而关于 YOLOv12 的结构分析类工作也显示注意力与骨干设计仍在持续演进[15]。

除算法本体外,系统层面的研究趋势正在从“跑通推理”转向“可用软件工程”。一类路径是通过 TensorRT 等推理优化工具在 GPU/边缘端获得更低延迟与更稳定的吞吐[21]。另一类路径是以 ONNX 作为跨框架模型交换与部署接口,降低训练端与部署端的耦合成本[22]。在数据与模型迭代层面,知识蒸馏被广泛用于在不显著牺牲精度的前提下压缩模型体量,从而更贴合桌面实时识别与轻量部署需求[23]。

(表中指标均来自各方法论文/官方报告的公开描述,用于展示速度-精度-部署难度的典型权衡。)

2.3 要解决的问题及其方案

要实现一套“基于深度学习的扑克牌识别软件”,需要同时把算法性能与桌面端交互体验拉齐:(1)检测与识别的准确性与实时性需要兼顾,既要在多牌面与遮挡下稳定定位,也要满足视频与摄像头输入的低延迟推理;(2)模型的环境适应性与泛化能力需要强化,以应对不同材质牌面、不同桌面纹理与复杂光照反射;(3)桌面端交互界面要直观且功能完整,使用户能够完成多源输入、阈值调参、目标高亮与结果追溯;(4)数据处理效率与存储安全性要可控,确保检测记录、统计与导出结果在本地可管理、可复查。

针对上述问题,本文拟采用“检测算法与桌面端一体化”的方案体系:(1)以 YOLOv12 为核心检测模型,并对 YOLOv5–YOLOv12 进行对比训练与评测,结合数据增强与迁移学习获得更稳的精度-速度折中;(2)以 PyTorch 作为训练与推理框架,并与 PySide6/Qt 桌面端打通,实现从输入到显示再到导出的端到端流程;(3)支持图像、视频与本地摄像头输入,并提供模型热切换与阈值参数同步,使交互调参能即时反映在推理结果上;(4)通过缓存序列、统一命名与本地数据库管理检测记录,提升批量处理与追溯能力,并在必要时引入压缩与硬件加速策略以保障实时性与稳定性。

2.4 博文贡献与组织结构

本文的主要贡献体现在以下几个方面:(1)围绕扑克牌识别这一细粒度桌面检测任务,系统梳理了通用目标检测与实时检测方向的关键范式,并结合遮挡、反光与密集目标等难点给出适配性分析;(2)以 YOLO 系列为主线完成 YOLOv5–YOLOv12 的训练、推理与评测对比,形成可复现实验结论并为工程选型提供依据;(3)实现美观友好的 PySide6/Qt 桌面端交互,将多源输入、实时调参、结果可视化与导出联动为可用的识别软件;(4)围绕精度指标与速度指标开展对比分析,补充训练曲线与推理行为的解释性观察,给出面向真实桌面场景的改进方向;(5)配套整理数据集与代码资源,便于读者复现与二次开发。

本文后续章节组织如下:第 3 章介绍数据集构建、标注规范与增强策略;第 4 章给出以 YOLOv12 为主线的模型原理与关键设计;第 5 章展示 YOLOv5–YOLOv12 的实验结果与分析;第 6 章从分层架构角度阐述 Qt 桌面软件的系统设计与实现;第 7 章总结全文并展望未来工作。


3. 数据集处理

本节的数据集信息需要包含样例可视化、训练/验证/测试划分、标注格式、类别清单、预处理与增强策略以及类别与框尺度分布等要素;结合读者已给出的样例批图与标注分布可视化,可以确认该数据集覆盖了多背景材质、强旋转与多牌重叠等真实桌面干扰因素。数据集总计 24240 张图片,其中训练集 21210 张、验证集 2020 张、测试集 1010 张,这样的划分既保证了训练阶段的充分学习样本,也为超参选择与最终泛化评估保留了相对独立的数据支撑。类别体系按标准扑克牌 52 类构建,以“点数/字母 + 花色”的缩写作为类标识,并提供对应中文名称映射,便于在桌面端结果列表、导出报表与带框可视化中保持一致的语义呈现。标签及其对应中文名如下:

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"}

从样例检测可视化可以直观看到:牌面可能只露出角标区域,或在多张牌叠放时出现明显遮挡,且背景纹理(织物、木纹、皮革、颗粒材质等)会引入与花色符号相近的高频噪声,这对检测器的局部辨识能力与抗干扰能力提出了更高要求。同时,标注分布图显示框中心大多分布在图像中部但覆盖范围较广,宽高分布呈现明显的“小目标占比高、尺度跨度大”的特点,这意味着仅依赖单一尺度特征会更容易漏检角落牌面或远距离小牌。基于这些统计现象,后续模型设计与训练策略需要更强调多尺度特征融合、对旋转与遮挡的鲁棒性,以及对“细粒度局部线索”(点数与花色符号)的稳定建模。

在数据预处理上,本文将输入统一到固定分辨率并进行尺度对齐与归一化,以保证训练与桌面端推理的一致性;标注侧则进行坐标合法性检查、异常框清理与缓存更新,避免因脏标注导致的损失震荡与评估偏差。增强策略以提升真实场景适应性为目标,重点围绕光照变化、旋转透视、尺度扰动与遮挡密集等难点进行组合式扰动(如颜色与亮度扰动、随机仿射、随机裁剪与多图拼接等),使模型在训练阶段就能“见过”更丰富的牌面姿态与背景分布,从而在摄像头实时检测与复杂桌面环境下获得更稳定的召回与更低的误检率。若读者希望完全复现实验,建议进一步明确本数据集的标注格式(如是否为 YOLO 归一化框标注)以及训练时启用的具体增强开关与概率参数,以便在不同模型版本对比时保持数据处理链路可控、结论可追溯。


4. 模型原理与设计

本文以 YOLOv12n 作为主线模型来完成扑克牌 52 类目标检测,并沿用 YOLO 家族典型的单阶段检测范式:一次前向传播同时回归边界框并输出类别概率,从而满足桌面端实时交互的响应需求。整体结构仍可抽象为“Backbone–Neck–Head”三段式:主干负责多层次特征提取,颈部负责跨尺度特征聚合,检测头在多尺度特征上完成分类与定位预测;以 YOLOv5 为例,其公开架构描述中明确给出了 Backbone、Neck、Head 的分工,并在 Neck 中使用 SPPF 与 PANet 进行特征融合,这为理解后续 YOLOv12 的结构演进提供了清晰参照。 (Ultralytics Docs:https://docs.ultralytics.com/yolov5/tutorials/architecture_description/)

在 YOLOv12 的设计上,核心思路是将注意力机制从“可选增强”提升为“结构主轴”,在保持实时性的前提下提升对小目标、遮挡与复杂背景的辨识能力。Ultralytics 文档指出 YOLO12 采用 attention-centric 架构,并通过 Area Attention 将特征图划分为若干区域以降低标准自注意力的计算开销,同时结合 R-ELAN 改善特征聚合与优化稳定性;此外还引入 FlashAttention 等实现层面的加速思路,并通过较大感受野的可分离卷积承担部分位置感知功能。 (Ultralytics Docs:https://docs.ultralytics.com/models/yolo12/) 这类“区域化注意力 + 高效聚合”的组合对扑克牌识别尤其关键:牌面类别差异往往集中在角标的点数与花色符号,且多牌叠放时只暴露局部,模型需要在局部纹理与细粒度符号上建立更强的上下文建模能力。对应到经典注意力的表述,可用缩放点积注意力刻画其信息汇聚过程:

其中  分别为查询、键和值的投影表示, 为通道维度;Area Attention 的关键在于对  的空间组织做区域化约束,以更低的代价获得更大的有效感受野(概念层面与上式一致,但计算域被切分)。 (Ultralytics Docs:https://docs.ultralytics.com/models/yolo12/)

在任务建模与损失函数层面,YOLO 系列通常将检测学习拆解为“定位 + 分类(及置信度)”的联合优化,输出可表示为 。定位质量常以 IoU 为基础度量:

其中  为标注框、 为预测框;为缓解“仅靠重叠面积难以稳定约束中心偏移与长宽比”的问题,工程上常用 CIoU / EIoU 一类改进目标,例如 CIoU 形式可写为:

其中  表示预测框与真值框中心点距离, 为最小外接框对角线长度, 则衡量宽高比一致性, 为权重系数;EIoU 则进一步将宽高差异显式纳入惩罚项以加速收敛。对扑克牌这类“局部角标决定类别”的目标,定位抖动会直接影响分类特征的裁剪与对齐质量,因此更稳定的几何约束往往能带来更好的 F1 与更低的误检漏检。 (arXiv:https://arxiv.org/html/2502.14740v1)

训练与正则化方面,本文延续桌面端一致的输入规范(如统一尺寸预处理)并结合数据增强提升对旋转、遮挡与强纹理背景的适应性;同时在优化中配合 BN 等归一化、学习率调度与必要的权重平滑策略,兼顾收敛速度与泛化能力。推理阶段通常还需后处理抑制冗余框:通过置信度阈值筛选候选框,并在 NMS 中以 IoU 阈值控制“重叠框合并”的力度,这也与桌面端 Conf/IoU 滑块的交互语义天然一致——Conf 偏低更利于召回但易引入背景误检,IoU 偏高更可能保留密集重叠预测而影响结果整洁度。需要注意的是,Ultralytics 同时提示 YOLO12 属于社区驱动版本,可能出现训练不稳定、显存占用更高、CPU 侧吞吐下降等现象,因此在桌面实时场景中更应优先选择轻量尺度并通过阈值与导出链路保证交互稳定性。 (Ultralytics Docs:https://docs.ultralytics.com/models/yolo12/)

网络整体架构图如下图所示:


5. 实验结果与分析

本章实验以扑克牌 52 类检测为目标,采用前述 24240 张图片的数据划分(训练 21210/验证 2020/测试 1010),统一输入预处理为 640×640,并在同一硬件环境下对 YOLOv5–YOLOv12 共 8 种模型进行对比;同时给出 n 规格与 s 规格两组结果,用于观察“轻量实时”与“更强表达”之间的权衡。所有推理耗时均统计为预处理、推理与后处理三段时延,测试平台为 NVIDIA GeForce RTX 3070 Laptop GPU(8GB),便于与桌面端实时交互(进度条、阈值滑块、导出链路)形成一致的性能预期。整体指标上,两个规格组的 Precision、Recall 与 F1 均接近饱和,mAP@0.5 基本稳定在 0.995 左右,因此更能拉开差异的是 mAP@0.5:0.95 与端到端时延,后者也更贴近“摄像头实时识别”的实际体验。

从精度角度看,PR 曲线几乎贴近右上角,说明在较宽的阈值范围内仍能维持高 Precision 与高 Recall;配合 F1-Confidence 曲线可以观察到在较高置信度阈值附近仍保持接近 1 的 F1,这与“牌面类别由角标与花色符号决定、目标外观稳定”的数据特性一致。更值得关注的是 mAP50-95 的区分度:在 n 规格中,YOLOv10n 的 mAP50-95 达到 0.9817,体现了在更严格 IoU 评价下更稳的定位质量,但其 Precision/Recall 略低于其它模型,提示在极少量样本上仍存在边界框抖动或相似类误判的尾部误差;YOLOv7-tiny 的 mAP50-95 为 0.9656,说明即便 mAP@0.5 接近饱和,细粒度定位仍可能受限于其结构容量与特征融合能力。结合混淆矩阵的“近乎全对角线”形态,可以将主要误差归因到少量遮挡、强反光或角标过小导致的定位偏差,而不是系统性类间混淆,这也解释了为何 mAP@0.5 高度饱和但 mAP50-95 仍能拉开差异。

从效率与桌面端体验看,n 规格更贴近“摄像头实时推理”的目标:YOLOv6n 与 YOLOv8n 的推理时延约为 6.8ms 级别,兼顾了接近满分的 F1 与较低延迟,适合作为默认模型;相对地,YOLOv9t 的推理时延达到 16.5ms,在同等精度下更不利于高帧率预览。s 规格整体 mAP50-95 略有上探,其中 YOLOv10s 的 mAP50-95 达到 0.9842,且后处理时延仅 0.60ms,反映出其在输出冗余控制与后处理开销上更友好,但其推理时延仍明显高于 YOLOv8s(7.66ms),因此若以“更丝滑的实时预览”为第一优先级,YOLOv8s/YOLOv11s 更适合作为高精度但仍可实时的选择。综合来看,本数据集的主要矛盾已从“识别是否准确”转向“在高置信阈值下仍保持稳定召回、并以更低时延输出更干净的框”,这也与桌面端提供 Conf/IoU 滑块、目标高亮与一键导出(PNG/AVI/CSV)的交互目标一致:在“预览更流畅”和“导出更可信”之间,用户可以用阈值完成可解释的权衡。


6. 系统设计与实现

6.1 系统设计思路

本系统采用分层架构组织桌面端与检测算法的协同关系:表现与交互层以 PySide6/Qt 客户端为核心,承担“输入源选择、阈值调参、可视化展示、记录与导出”等直接面向用户的功能;业务与会话管理层负责登录态、源互斥切换、参数一致性与导出编排,使交互动作可以稳定映射到推理任务;推理与任务调度层以事件驱动的帧流为载体,完成媒体接入、预处理、YOLO 推理与后处理;数据持久化层通过本地 SQLite 与文件归档同时保存结构化记录与可复核的可视化结果,从而形成可追溯闭环。该分层方式的关键价值在于把“界面交互的不确定性”和“推理计算的确定性”隔离开来,避免用户频繁切换输入源或滑块时造成状态错乱。

在跨层协同的主链路上,系统从多源输入(图片、视频、摄像头)开始,首先完成统一的 640×640 尺度对齐与归一化/张量转换,再进入 YOLOv5–YOLOv12 的推理阶段输出候选框与类别分布,随后由后处理模块执行 Conf/IoU 过滤、NMS 以及坐标还原,最终将结果同步回界面完成叠加绘制与目标高亮。为了保证实时性与一致性,系统以“源互斥 + 参数快照”作为基本约束:同一时刻仅允许一种输入源处于工作状态,Conf/IoU 等阈值以线程安全的方式被推理侧读取,进度条与耗时显示由任务调度层统一上报,避免出现“显示进度与实际处理不同步”的体验问题。对于视频与摄像头场景,帧流以事件驱动方式持续投递到任务队列,并在必要时启用帧缓存以支持 AVI 导出与中途停止恢复。

可扩展性主要体现在三类能力:其一是权重热切换,用户选择本地权重后即可刷新当前模型及类别信息并继续推理,业务层负责切换窗口内的状态收敛与记录归档;其二是统计与导出能力,检测记录、CSV、带框 PNG/AVI 均遵循统一命名与归档规则,保证批量复查与实验复现;其三是主题与配置本地化,界面样式与常用参数随用户会话持久化,降低重复配置成本。异常恢复则以“可回滚的任务状态”实现:当输入源断开、视频结束或推理异常时,系统会收敛到可再次选择输入源的稳定态,并保证已产生的记录与导出文件不被破坏。

图 6-1 系统流程图图注:从初始化与多源输入开始,依次完成预处理、YOLO 推理与后处理,并与 Qt 界面联动形成可视化与导出闭环;Conf/IoU 滑块、目标高亮、CSV/PNG/AVI 导出与时间戳命名贯穿其中。

图 6-2 系统设计框图图注:模块边界按“Qt 表现层、业务控制层、推理调度层、数据层”划分,数据从多源输入进入推理链路后回流到可视化与导出,并在本地数据库与文件归档中完成持久化。

6.2 登录与账户管理 — 流程图

图 6-3 登录与账户管理流程图图注:登录与注册共享同一会话入口,注册信息写入本地数据库后进入口令校验与个性化配置加载;注销与切换账号回到登录界面,保证会话边界清晰且易于追溯。

登录与账户管理在系统中承担“会话入口与个性化载入”的枢纽作用:应用启动后先展示登录界面,用户可选择已有账号直接登录,也可注册新账号并将账户记录写入本地数据库;随后在口令校验成功后加载用户的主题风格、默认模型与最近记录,并进入主界面开展图片、视频或摄像头检测。该流程把“身份与偏好”与“检测任务”明确分离,使得检测记录、导出结果与参数配置能够在同一会话边界内稳定关联,同时通过注销或切换账号回到登录页,保证不同用户之间的数据与设置不会相互污染,并为后续的历史追溯与批量复查提供一致的组织方式。


7. 项目资源链接

    若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

完整项目及文档:https://deeppython.feishu.cn/wiki/MWv9wXorji6ScQks7QqcszsnnOg:https://deeppython.feishu.cn/wiki/MWv9wXorji6ScQks7QqcszsnnOg

功能效果展示视频:热门实战|《基于深度学习的扑克牌识别软件》YOLOv12-v8多版本合集:附论文/源码/PPT/数据集,支持图片/视频/摄像头输入、可视化界面、结果导出与权重切换:https://www.bilibili.com/video/BV1KeDQBUEdS/环境配置博客教程:https://deeppython.feishu.cn/wiki/EwnTwJ2H3iLF6VkNG6ccgZYrnvd:https://deeppython.feishu.cn/wiki/EwnTwJ2H3iLF6VkNG6ccgZYrnvd或者环境配置视频教程:Pycharm软件安装视频教程:https://www.bilibili.com/video/BV1yypczDEP6/;(2)Anaconda软件安装视频教程:https://www.bilibili.com/video/BV1f5pcz3EgS/;(3)Python环境配置视频教程:https://www.bilibili.com/video/BV1F3pcz5EgY/数据集标注教程(如需自行标注数据):数据标注合集:https://www.bilibili.com/video/BV15Ap1ztECN/


参考文献(GB/T 7714)

1:https://docs.ultralytics.com/yolov5/tutorials/architecture_description/ 罗东亮, 蔡雨萱, 杨子豪, 等. 工业缺陷检测深度学习方法综述[J]. 中国科学: 信息科学, 2022. DOI:10.1360/SSI-2021-0336.2:https://docs.ultralytics.com/models/yolo12/ Russakovsky O, Li F F, Li K, et al. Best of Both Worlds: Human-Machine Collaboration for Object Annotation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2015.3:https://arxiv.org/html/2502.14740v1 Snyder A. Card Recognition using OpenCV and Python[R/OL]. Stanford CS231A Course Projects, 2019 (accessed 2025-12-23).[4] Redmon J, Divvala S, Girshick R, et al. You Only Look Once: Unified, Real-Time Object Detection[C]//CVPR. 2016.[5] Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J/OL]. arXiv:1506.01497, 2015.[6] Tan M, Pang R, Le Q V. EfficientDet: Scalable and Efficient Object Detection[J/OL]. arXiv:1911.09070, 2019.[7] Tian Z, Shen C, Chen H, et al. FCOS: Fully Convolutional One-Stage Object Detection[J/OL]. arXiv:1904.01355, 2019.[8] Zhou X, Wang D, Krähenbühl P. Objects as Points[J/OL]. arXiv:1904.07850, 2019.[9] Carion N, Massé T, Synnaeve G, et al. End-to-End Object Detection with Transformers[J/OL]. arXiv:2005.12872, 2020.[10] Zhao Y, Lv W, Xu S, et al. RT-DETR: DETRs Beat YOLOs on Real-time Object Detection[EB/OL]. GitHub repository, accessed 2025-12-23.[11] Li C, Li L, Geng Y, et al. YOLOv6 v3.0: A Full-Scale Reloading[J/OL]. arXiv:2301.05586, 2023.[12] Wang C Y, Bochkovskiy A, Liao H Y M. YOLOv7: Trainable Bag-of-Freebies Sets New State-of-the-Art for Real-Time Object Detectors[J/OL]. arXiv:2207.02696, 2022.[13] Xu S, Wang X, Lv W, et al. PP-YOLOE: An Evolved Version of YOLO[J/OL]. arXiv:2203.16250, 2022.[14] Wang C Y, Yeh I H, Liao H Y M. YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information[J/OL]. arXiv:2402.13616, 2024.[15] Alif M A R A, Hussain M. YOLOv12: A Breakdown of the Key Architectural Features[J/OL]. arXiv:2502.14740, 2025.[16] Ultralytics. YOLOv5 in PyTorch > ONNX > CoreML > TFLite[EB/OL]. GitHub repository, accessed 2025-12-23.[17] NVIDIA. TensorRT Documentation[EB/OL]. NVIDIA Developer, accessed 2025-12-23.[18] ONNX. Open Neural Network Exchange (ONNX)[EB/OL]. GitHub repository, accessed 2025-12-23.[19] Hinton G, Vinyals O, Dean J. Distilling the Knowledge in a Neural Network[J/OL]. arXiv:1503.02531, 2015.