基于深度学习的车型识别与计数系统(YOLOv12完整代码+论文示例+多算法对比)
摘要:本文面向交通场景中的“车型识别与计数”需求,设计并实现一套可训练、可评测、可部署的 Qt 桌面端深度学习系统,覆盖从数据接入到结果归档的完整闭环。系统支持本地图片/视频/摄像头三类输入,在主显示区实时叠加检测框、类别名与置信度,并提供处理进度显示/进度条、用时统计、Conf/IoU 交互式调参、目标选择与高亮等体验型能力。为满足工程化落地,系统内置登录/注册与一次性跳过入口,检测结果与账户信息统一由 SQLite 本地入库管理,同时支持表格记录共享、CSV 导出与带框结果一键导出(单帧 PNG / 多帧 AVI),便于复查与批量归档。模型侧提供可视化的模型选择/权重加载(.pt 热切换),切换后同步刷新类别信息与配色,并对 YOLOv5–YOLOv12(共 8 种)进行 mAP、F1、PR 曲线与训练曲线等指标对比分析,为不同算力与实时性约束下的选型提供依据。文末提供完整工程与数据集下载链接。
文章目录
1. 系统功能与效果
(1)登录注册功能提供清晰的入口:用户可选择登录、注册或一次性跳过进入主界面,会话在本次运行周期内保持生效,便于连续完成多次检测与导出。进入系统后,界面动线围绕“概览—图片检测/视频检测/摄像头检测—模型选择—导出视图”组织,用户可快速回到最近一次记录并在表格中定位关键结果。账户信息与历史记录采用本地数据库统一管理,登录时进行口令校验,既保证体验连贯,也兼顾本地使用场景下的安全与可控。
(2)功能概况强调“少学习成本”的交互:主界面采用左侧参数与数据源、中部可视化、右侧目标详情、底部记录与进度的布局,核心操作集中在一屏完成。系统支持单图、图片目录、视频文件与本地摄像头等多源输入,并在切换时保持互斥与状态一致,避免资源占用冲突。推理过程提供进度条、用时提示与状态反馈,让用户能直观看到处理进展与当前性能水平。
(3)选择模型围绕可插拔与可追溯设计:用户通过选择本地权重即可切换当前YOLO模型,实现.pt权重的热切换而无需重启流程。切换后系统同步刷新类别集合、颜色映射与展示样式,确保结果解释一致且不混淆。常用配置如阈值、主题样式与标题信息等可本地持久化保存,使不同测试环境下的对比操作更稳定、更省时。
(4)图片检测强调即时反馈与可解释可视化:载入图片后系统自动完成预处理与推理,在主显示区叠加边界框、类别名与置信度,结果与原图对齐呈现。用户可实时调整Conf/IoU阈值以控制误检与漏检的平衡,并对目标进行选择与高亮查看,右侧详情同步展示关键属性与统计信息。检测记录会沉淀到底部表格中,便于跨页面复用与后续导出时快速勾选与复查。
(5)文件保存以统一归档与批量管理为目标:检测结果支持一键导出表格数据为CSV,同时可将带框可视化结果按单帧PNG或多帧AVI进行保存,满足复核、汇报与复现需求。导出文件采用时间戳命名并遵循统一目录策略,便于按时间或文件名快速检索定位,形成可追溯的实验链路。对同一批次任务,系统支持连续导出与覆盖提示,减少重复操作并降低误保存风险。
2. 绪论
2.1 研究背景及意义
在智能交通系统、智慧停车与城市道路治理等场景中,“车型识别与计数”既是交通流量统计的基础环节,也是信号配时优化、拥堵溯源与异常事件告警的重要数据入口。1 相比传统基于地感线圈、微波雷达或人工抽样的方式,基于视觉的深度学习方法能够在不改造路面的前提下完成多车道、多类别的统一感知,并在同一条视频流上同步输出车辆位置、类别与数量等结构化结果。2 进一步地,车型细粒度区分(如轿车、SUV、客车、货车等)可以为差异化管控、收费与通行策略提供更高价值的统计维度,从而提升交通管理的精细化水平。[11]
随着边缘计算设备与车路协同终端的普及,系统不仅要“识别得准”,还要“算得快、看得懂、能追溯”。[5] 一方面,交通监控画面常伴随远距离小目标、密集遮挡、强反光与昼夜光照剧烈变化,这要求检测模型具备稳健的多尺度表征与抗干扰能力。[10] 另一方面,业务侧需要可交互的桌面端工具支撑模型选择、阈值调参、结果导出与本地存档,使算法评估、部署验证与日常使用形成闭环,从而降低模型迭代与运维成本。[22]
2.2 国内外研究现状
围绕道路监控与停车场视频的车型识别与计数任务,国内外研究普遍将其拆分为“车辆检测/车型分类”与“跨帧计数”两条主线。[10] 在检测侧,复杂交通场景的主要挑战集中在小目标占比高、遮挡与截断频繁、相似车型类间差异细微、长尾类别样本不足以及摄像机视角变化带来的尺度与外观漂移。[9] 在计数侧,若仅对单帧检测框做数量累加,容易在车辆停滞、遮挡重现或帧间漏检时引入重复计数与漏计,因此需要将计数与跨帧关联或区域事件机制结合起来。[19]
早期与经典方法以两阶段检测器为代表,通过候选区域与分类回归分离来获得较高精度,但在实时性与部署复杂度上存在一定门槛。2 单阶段检测器将分类与回归统一为密集预测,便于在工程上实现端到端推理与批处理加速,从而成为交通监控类任务更常见的基线选择。[3] 为应对前景背景极度不均衡问题,焦点损失等策略被引入密集检测训练流程,改善难例学习并提升对稀有类别的识别能力。[4] 此外,面向资源受限端侧部署的研究持续强调特征金字塔与轻量化骨干的高效融合,以在精度、延迟与显存占用之间取得更可控的权衡。[5]
近年来,Anchor-free范式通过按像素预测或关键点建模来减少锚框设计与匹配的工程复杂度,并在小目标与密集场景中展现出更直接的建模路径。[6] CenterNet等将目标视为中心点回归,减少候选冗余并强化几何一致性,对远距离车辆这类尺度变化显著的对象具有一定吸引力。[7] Transformer检测器则将检测表述为集合预测问题,强调全局关系建模与端到端训练,在遮挡与上下文依赖较强的场景中提供了另一条技术路线。[8] 但在许多实际交通系统中,Transformer方案往往需要更严格的算力与工程优化才能与CNN系实时检测器竞争,这也促使研究更关注“实时Transformer”与混合结构的落地形态。[8]
以YOLO家族为代表的实时检测器,在交通监控场景中延续了“高吞吐、易部署、生态完善”的工程优势,并持续围绕结构、标签分配、后处理与训练策略迭代。[12] 从YOLOv6的工业化设计与量化友好策略,到YOLOv7强调可训练“bag-of-freebies”的增益路径,研究重点逐步从单纯堆叠算子转向对训练与推理链路的系统性优化。[13] YOLOv9提出可编程梯度信息等思路以缓解信息瓶颈并提升参数利用效率,体现了在轻量模型上追求更强表征的趋势。[14] YOLOv10进一步将端到端与NMS-free训练纳入框架设计,面向部署延迟与后处理开销给出更直接的工程解法。[16] 更近期的YOLOv12尝试将注意力机制以“速度不掉队”的方式引入实时检测框架,并在公开基准上给出同时兼顾精度与延迟的结果展示。[18] (arXiv)
在车辆计数方向,主流工程路线通常采用“检测 + 多目标跟踪 + 过线/区域事件计数”的组合,以降低遮挡与短时漏检导致的统计误差。[19] SORT以卡尔曼滤波与匈牙利匹配实现高效在线关联,为实时系统提供了简洁可控的基线。[19] DeepSORT引入外观特征度量以减少遮挡场景下的ID切换,更适合车流密集且遮挡频繁的视频段落。[20] ByteTrack提出“关联几乎所有检测框”的策略来保留低分数但真实存在的对象,从而提升遮挡车辆的轨迹连续性并改善计数稳定性。[21] 国内研究也持续围绕复杂交通场景的小目标与遮挡问题提出改进策略,例如在轻量化检测头、注意力机制与多尺度增强方面进行针对性设计,以获得更适合交通视频的速度与精度折中。[23] (arXiv)
下面给出与本文任务紧密相关的方法对比,用于概括不同范式在“车型识别与计数”场景中的典型取舍。
| 方法 | 范式/家族 | 常用数据集 | 关键改进技术要点 | 优势与局限性 | 关键指标示例 | 更适配的任务难点 |
|---|---|---|---|---|---|---|
| Faster R-CNN | 两阶段 | BDD100K | RPN候选区域 + 分类回归解耦 | 精度高但端侧延迟与工程复杂度更高 | 以COCO/道路数据集为主的高精度基线 | 遮挡与复杂背景下的稳健检测2 |
| SSD300 | 单阶段/Anchor-based | BDD100K | 多尺度特征图密集预测 | 速度快但小目标精度受限 | VOC2007 mAP 72.1%、58 FPS | 多尺度但目标不极小的实时检测[3] |
| EfficientDet-D7 | 单阶段/Anchor-based | COCO | BiFPN + 复合缩放 | 精度强但大模型端侧压力较大 | COCO AP 55.1、77M参数 | 追求高精度且算力较充足[5] |
| DETR | Transformer检测器 | COCO | 集合预测 + 全局关系建模 | 训练与收敛、实时性需工程优化 | 端到端集合预测范式代表 | 遮挡与上下文依赖较强场景[8] |
| YOLOv10 | YOLO/端到端 | COCO | NMS-free训练与效率驱动设计 | 端到端部署友好但需适配业务后处理 | YOLOv10-S在相近AP下较RT-DETR-R18更快 | 低延迟在线推理与部署链路简化[16] |
| YOLOv12 | YOLO/注意力导向 | COCO | 注意力机制融入实时框架 | 精度提升同时保持实时性是关键点 | YOLOv12-N mAP 40.6、T4延迟1.64 ms | 小目标与复杂外观下的精度-延迟平衡[18] |
| ByteTrack | 检测后关联/跟踪 | MOT17/BDD100K | 关联低分框以恢复遮挡目标 | 对检测质量仍敏感但统计更稳 | MOT17 MOTA 80.3、30 FPS | 遮挡重现导致的重复计数与漏计[21] |
2.3 要解决的问题及其方案
围绕“基于深度学习的车型识别与计数系统”,本文需要解决的关键问题主要体现在四个方面:(1)车型检测与识别的准确性与实时性难以同时满足,尤其在远距离小目标与密集车流下易出现误检与漏检。[18] (2)模型对环境变化的适应性与泛化能力不足,摄像机视角、光照与天气变化会导致域偏移并影响类别判别稳定性。[9] (3)桌面端交互界面需要在“可用性”和“可追溯性”之间取得平衡,既要便于非算法人员操作,也要满足评测复现与记录管理的要求。[22] (4)视频计数涉及跨帧一致性与ID保持,若处理链路缺少可靠的关联机制,统计结果易受短时漏检、遮挡与目标停滞影响。[19]
为对应上述问题,本文拟采用如下方案:(1)以YOLO系列实时检测器为核心算法族,结合多模型对比评测与阈值可调策略,兼顾不同部署算力下的精度与速度需求。[12] (2)在训练与推理侧引入针对交通场景的数据增强与多尺度策略,并通过对典型公开数据集与自建数据的联合验证,提升对域变化的鲁棒性。[10] (3)以前端桌面端交互为载体,将模型选择、参数调节、结果可视化与导出存档串联为闭环流程,形成“评测—复查—迭代”的可操作链路。[22] (4)在计数侧采用“检测 + 关联/跟踪 + 事件计数”的工程路线,并优先选用在线高效的关联方法以保证实时性与统计稳定性。[21]
2.4 博文贡献与组织结构
本文的主要贡献可概括为:(1)面向车型识别与计数任务梳理目标检测与多目标跟踪的关键技术脉络,并结合交通场景难点给出方法取舍依据。[22] (2)围绕YOLO实时检测体系开展模型选择与工程化适配,强调在端到端部署、延迟控制与可复现评测上的一致性设计。[16] (3)构建桌面端交互式应用,将模型切换、阈值调参与结果导出纳入统一流程,提升算法验证与日常使用的效率。[22] (4)给出多模型、多指标的对比分析框架,为后续模型迭代提供可追踪的实验依据与统计视角。[18] (5)结合计数任务的跨帧一致性需求,引入可在线运行的关联策略以改善遮挡与漏检导致的统计偏差。[21]
后续章节安排如下:第3章将说明数据集构建与标注规范,并讨论类别分布与增强策略对复杂交通难点的对应关系。[10] 第4章介绍以YOLO为主线的模型原理、结构设计与训练要点,并给出与交通场景相关的关键配置逻辑。[12] 第5章展示不同模型在统一数据与指标下的对比结果,结合误检漏检现象分析结构性原因并提出改进方向。[18] 第6章从系统工程角度给出桌面端交互、推理调度与数据存储的整体设计与实现框架,形成可复用的端侧检测与计数工具链。[22] 最后在第7章总结全文并展望模型轻量化、部署加速与数据闭环等可持续迭代方向。[5]
3. 数据集处理
本项目已给出训练样例拼图与标注统计可视化,并明确数据集共 2026 张图像,其中训练集 1488 张、验证集 507 张、测试集 31 张,划分比例约为 73.5%/25.0%/1.5%,同时固定随机性以保证实验可复现;从样例图可以看到,场景覆盖乘用车与多类货运车辆,存在尺度跨度大、遮挡截断、反光与光照差异等典型交通视觉难点。标签及其对应中文名如下:
Chinese_name = {'tiny-car': "小型车", 'mid-car': "中型车", 'big-car': "大型车", 'small-truck': "小型卡车",
'big-truck': "大型卡车", 'oil-truck': "油罐车", 'special-car': "特种车"}

结合类别柱状分布图可观察到,小型卡车实例数相对更多,特种车样本明显偏少,其余类别处于中等水平,整体呈现一定长尾特征;这类分布在实际训练中往往会导致尾部类别更易误检或漏检,因此后续评测除了总体 mAP 外,也需要关注各类别召回率与混淆情况,以定位“相似外观车辆”之间的错分来源。
标注格式建议采用 YOLO 系列常用的归一化框表示,即以类别编号与 ( x , y , w , h ) (x, y, w, h) (x,y,w,h) 描述目标框中心点与宽高(相对图像尺寸归一化),以适配后续统一的 640×640 输入预处理与坐标还原流程;从标注框分布与相关性图可以看出,目标中心多集中在画面中部区域,宽高分布存在明显跨度,说明数据同时包含近景主体车辆与远距离小目标车辆,这对多尺度特征融合与阈值调参提出了要求。针对遮挡与尺度变化,训练阶段通常结合随机尺度抖动、水平翻转、颜色空间扰动以及多图拼接等增强策略提升泛化;针对反光、阴影与过曝,适度的亮度对比度扰动与模糊噪声增强可缓解“高光区域细节缺失”带来的漏检风险;同时建议在训练前进行一次标注清洗与一致性检查(如异常框、越界框、空标注与类别映射错误),以降低脏数据对尾部类别与小目标学习的负面影响。
4. 模型原理与设计
本系统以 YOLOv12 为主线完成“车型识别 + 计数”的端到端建模:输入图像(或视频帧)先统一到固定分辨率并做归一化,随后经由主干网络提取多层语义特征,再通过颈部结构完成跨尺度融合,最后由检测头在多个尺度上同时预测类别与边界框,实现单阶段的实时检测闭环。形式化地,可将一次前向推理写为: I ′ = P r e p r o c e s s ( I ) I'=\mathrm{Preprocess}(I) I′=Preprocess(I), F = B ( I ′ ) F=\mathcal{B}(I') F=B(I′), P = N ( F ) P=\mathcal{N}(F) P=N(F), ( B ^ , C ^ ) = H ( P ) (\hat{B},\hat{C})=\mathcal{H}(P) (B^,C^)=H(P),其中 B ^ \hat{B} B^ 为预测框集合、 C ^ \hat{C} C^ 为类别置信度;计数则在后处理(阈值过滤与去重)后对每类检测框做统计即可,天然适配“同帧多目标、大小差异明显、遮挡频繁”的道路场景需求。YOLOv12 的整体思路是在保持 YOLO 系列层级化特征设计与实时性优势的前提下,将注意力机制以更“轻量且可控”的方式嵌入网络骨干,使其在复杂背景与类间相似(如不同车型外观差异细微)时仍能获得更强的全局建模能力。(ar5iv)
结构设计上,YOLOv12 的关键在于将注意力模块做成“区域化”的计算单元,并配合更易优化的聚合结构:对特征映射按水平或垂直方向划分为 l l l 个区域(常用 l = 4 l=4 l=4),在区域内执行缩放点积注意力,从而把全局注意力的计算复杂度由 O ( N 2 ) O(N^2) O(N2) 近似降低为 O ( N 2 / l ) O(N^2/l) O(N2/l),在保持较大感受野的同时显著减轻计算与访存压力。对应地,基础注意力可写作
A t t n ( Q , K , V ) = s o f t m a x ! ( Q K ⊤ d ) V , \mathrm{Attn}(Q,K,V)=\mathrm{softmax}!\left(\frac{QK^\top}{\sqrt{d}}\right)V, Attn(Q,K,V)=softmax!(dQK⊤)V,
其中 Q , K , V Q,K,V Q,K,V 分别为查询、键、值投影, d d d 为单头特征维度;区域注意力本质是把 Q , K , V Q,K,V Q,K,V 按区域重排后在局部块内执行同一公式,从工程侧更便于与高效实现(如 FlashAttention)结合以降低显存读写开销。(ar5iv) 同时,YOLOv12 提出 R-ELAN 以缓解注意力引入后的优化不稳定:用带缩放的残差把输入与聚合输出直接相连,典型形式为 y = x + α ⋅ f ( x ) y=x+\alpha\cdot f(x) y=x+α⋅f(x)( α \alpha α 为较小常数),既保证梯度通路,又减少深层堆叠带来的训练抖动;在车辆密集、遮挡与反光并存的图像中,这类更稳定的特征聚合对“少漏检、少误检”的收益会更直接。(ar5iv)
损失函数与任务建模方面,系统遵循检测任务的多目标联合优化:类别分支倾向采用二元交叉熵或其变体以处理正负样本不均衡,边界框分支使用 IoU 系列回归损失以强调几何对齐;整体可写为 L = λ cls L cls + λ box L box L=\lambda_{\text{cls}}L_{\text{cls}}+\lambda_{\text{box}}L_{\text{box}} L=λclsLcls+λboxLbox。以常用的 CIoU 为例,其形式为
L C I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 + α v , L_{\mathrm{CIoU}}=1-\mathrm{IoU}+\frac{\rho^2(\mathbf{b},\mathbf{b}^{gt})}{c^2}+\alpha v, LCIoU=1−IoU+c2ρ2(b,bgt)+αv,
其中 ρ 2 ( ⋅ ) \rho^2(\cdot) ρ2(⋅) 表示预测框与真值框中心点的欧氏距离平方, c c c 为最小外接框对角线长度, v v v 衡量长宽比一致性, α \alpha α 为权重系数;这类损失在“远处小车、近处大车”尺度差异明显时更稳健,也能在部分遮挡时减少框漂移。对“车型识别与计数”而言,训练阶段以检测监督为主,推理阶段将 C ^ \hat{C} C^ 映射到车型类别(如小型车/中型车/大型车及各类卡车),再在同帧或时间窗口内完成分类计数即可,与系统端的 CSV 统计与可视化展示天然对齐。
训练与正则化要点上,YOLOv12 仍以“多尺度特征 + 统一后处理”为工程落点:通过批归一化稳定分布、配合合理的学习率策略与数据增强提升泛化,使模型在光照变化、阴影与反光等真实路况下保持鲁棒;推理阶段则以置信度阈值 C o n f ∈ [ 0 , 1 ] \mathrm{Conf}\in[0,1] Conf∈[0,1] 控制误检率、以 NMS 的 IoU 阈值 I o U ∈ [ 0 , 1 ] \mathrm{IoU}\in[0,1] IoU∈[0,1] 控制重复框,典型 NMS 规则可概括为“按分数排序,逐个保留并抑制与其 IoU 超阈值的候选框”。在桌面端交互中,将 C o n f / I o U \mathrm{Conf}/\mathrm{IoU} Conf/IoU 做成实时可调参数,可以把“密集车流(易重复框)”与“远距离小目标(易漏检)”两类矛盾用同一套旋钮快速折中;而权重文件热切换则让不同规模的 YOLO 模型在同一数据源上即时对比精度与速度,为后续第 5 章的多模型评测提供一致的推理基线。(Ultralytics Docs)
网络核心结构示意图
5. 实验结果与分析
本章实验目标是在统一数据集与同一硬件环境下,对 YOLOv5–YOLOv12 的 8 种模型进行精度与实时性综合对比,并为桌面端“模型热切换 + 在线阈值调参 + 一键导出”的落地形态提供选型依据。数据集规模为 2026 张图像(训练 1488、验证 507、测试 31),类别覆盖 7 类车型;评测指标包含 Precision、Recall、F1、mAP50 与 mAP50-95,并将端到端延迟拆分为预处理(PreTime)、推理(InfTime)与后处理(PostTime)三段统计,测试显卡为 NVIDIA GeForce RTX 3070 Laptop GPU(8GB)。从整体结果看,各主流模型在该数据集上 mAP50 普遍接近 0.99,说明任务在现有标注与拍摄分布下已达到较高可分性;更能拉开差距的是 mAP50-95(对定位质量与尺度鲁棒更敏感)以及端到端时延(决定视频/摄像头实时体验)。
下表给出两组规模(n 型与 s 型)在同一评测流程下的量化对比。n 型模型侧重速度与轻量部署,其中 YOLOv8n 的端到端总时延约为 10.17 ms(≈98 FPS),在保持 mAP50=0.9908、F1=0.9783 的同时提供了最优的实时性体验;YOLOv11n 的精度更均衡(Precision=0.9833、Recall=0.9802、F1=0.9818),但总时延约 12.97 ms,适合作为“速度略降、稳定性更强”的默认权重;YOLOv12n 在 mAP50 上取得最高值(0.9940),但推理段耗时上升导致总时延约 15.75 ms,更适合对极小目标与复杂背景更敏感、且允许一定延迟的场景。s 型模型在参数量与 FLOPs 上整体提升,但精度增益并非线性:YOLOv10s 在 mAP50-95 上取得最高(0.8847),体现其对更严格 IoU 阈值下的定位质量优势;YOLOv9s 取得最高 F1(0.9844)但推理耗时显著偏高(InfTime=18.66 ms),在视频实时推理时更容易成为瓶颈;YOLOv7 系列(含 v7-tiny 与 v7)在该数据集上同时表现出精度与速度劣势,主要体现在 mAP50-95 明显偏低(约 0.79)且推理与后处理开销更大,更适合作为对比基线而非部署首选。
| Model | Params(M) | FLOPs(G) | PreTime(ms) | InfTime(ms) | PostTime(ms) | Precision | Recall | F1 Score | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 1.90 | 7.73 | 1.31 | 0.9742 | 0.9903 | 0.9821 | 0.9889 | 0.8725 |
| YOLOv6n | 4.3 | 11.1 | 2.17 | 6.78 | 1.39 | 0.9829 | 0.9682 | 0.9755 | 0.9901 | 0.8692 |
| YOLOv7-tiny | 6.2 | 13.8 | 2.28 | 14.74 | 4.06 | 0.9535 | 0.9348 | 0.9441 | 0.9767 | 0.7966 |
| YOLOv8n | 3.2 | 8.7 | 1.95 | 6.83 | 1.39 | 0.9834 | 0.9734 | 0.9783 | 0.9908 | 0.8698 |
| YOLOv9t | 2.0 | 7.7 | 1.87 | 16.51 | 1.29 | 0.9658 | 0.9730 | 0.9694 | 0.9903 | 0.8817 |
| YOLOv10n | 2.3 | 6.7 | 2.08 | 11.24 | 0.63 | 0.9777 | 0.9680 | 0.9729 | 0.9908 | 0.8766 |
| YOLOv11n | 2.6 | 6.5 | 2.11 | 9.44 | 1.42 | 0.9833 | 0.9802 | 0.9818 | 0.9914 | 0.8750 |
| YOLOv12n | 2.6 | 6.5 | 1.91 | 12.47 | 1.37 | 0.9742 | 0.9842 | 0.9792 | 0.9940 | 0.8746 |
| YOLOv5su | 9.1 | 24.0 | 2.28 | 8.45 | 1.51 | 0.9747 | 0.9813 | 0.9780 | 0.9881 | 0.8701 |
| YOLOv6s | 17.2 | 44.2 | 2.22 | 8.59 | 1.45 | 0.9542 | 0.9528 | 0.9535 | 0.9840 | 0.8634 |
| YOLOv7 | 36.9 | 104.7 | 2.44 | 23.62 | 3.46 | 0.9575 | 0.9235 | 0.9402 | 0.9701 | 0.7913 |
| YOLOv8s | 11.2 | 28.6 | 2.31 | 7.66 | 1.42 | 0.9659 | 0.9723 | 0.9691 | 0.9893 | 0.8739 |
| YOLOv9s | 7.2 | 26.7 | 2.12 | 18.66 | 1.39 | 0.9845 | 0.9843 | 0.9844 | 0.9898 | 0.8825 |
| YOLOv10s | 7.2 | 21.6 | 2.21 | 11.38 | 0.60 | 0.9799 | 0.9773 | 0.9786 | 0.9911 | 0.8847 |
| YOLOv11s | 9.4 | 21.5 | 2.37 | 9.74 | 1.36 | 0.9858 | 0.9721 | 0.9789 | 0.9917 | 0.8777 |
| YOLOv12s | 9.3 | 21.4 | 2.09 | 13.23 | 1.42 | 0.9842 | 0.9767 | 0.9804 | 0.9902 | 0.8811 |
从收敛过程与曲线形态来看,mAP50 在前 10–20 个 epoch 即快速上升并趋于饱和,后期各模型差距主要体现为微小的抖动幅度与最终平台值,这与本数据集目标外观相对稳定、类别边界较清晰的特点一致;但在更严格的 mAP50-95 指标上,不同模型的“定位精细度”差异仍会被放大,因此 YOLOv9t/YOLOv10s 一类在该指标上更占优。
PR 曲线整体贴近右上角,说明在高召回区间仍能保持较高精度;类别层面,特种车的曲线下降更明显,与其样本偏少、外观多样且易与背景结构混淆的特性相吻合。
混淆矩阵的对角线占比普遍较高(多数类别接近 0.95–0.99),但仍能观察到少量“卡车类之间”以及“车辆与背景边缘纹理”的误判,这类错误通常出现在遮挡截断、远距离小目标或强反光导致的局部特征缺失场景;结合桌面端的 Conf/IoU 滑块,实践中可通过提高 Conf 抑制背景误检、适度提高 IoU 降低密集车流中的重复框,从交互层面把误检与漏检的矛盾快速拉到可接受范围。

为了更直观呈现“精度(F1)与检测能力(mAP50)”的差异,上图给出两组规模的双条形图对比,便于在桌面端部署时按“实时优先/精度优先”快速选型。对 n 型而言,YOLOv8n 更适合作为实时视频与摄像头的默认模型,YOLOv11n 更适合追求稳健的综合方案,YOLOv12n 可作为“复杂背景/小目标更敏感”的精度备选;对 s 型而言,若更关注 mAP50-95 与定位精细度,可优先考虑 YOLOv10s,而 YOLOv9s 虽 F1 较高但推理耗时偏大,更适合离线或低帧率场景。
6. 系统设计与实现
6.1 系统设计思路
本系统面向“车型识别与计数”的桌面端落地需求,整体采用分层架构组织实现:表现与交互层以 PySide6/Qt 承担人机交互与可视呈现,业务与会话管理层负责输入源互斥、参数与统计状态维护、记录与导出编排,推理与任务调度层完成多源媒体接入、帧分发与 YOLO 推理执行,数据持久化层则以本地数据库与文件归档保障结果可追溯与配置可复用。界面布局遵循“左侧源与阈值控制—中央检测画面—右侧目标详情—底部记录与进度条”的信息组织方式,使用户在单屏内即可完成输入、推理、筛选、计数与导出闭环。该分层与布局设计能够将“高频交互(滑块、选择、高亮)”与“高开销计算(推理、后处理、批量写表)”解耦,降低耦合度并提升维护性。
跨层协同的核心流程可概括为“数据源帧—预处理—模型预测—后处理—可视化与汇总导出”,其中输入侧通过媒体读取模块以事件驱动方式将帧送入统一处理入口,推理侧在同一入口内完成参数注入、前向预测与后处理,再将检测框、类别与置信度叠加回主显示区,并同步更新右侧详情与底部表格记录。由于车辆场景常见遮挡、尺度差异与运动模糊,系统将 Conf/IoU 阈值作为一等交互参数进行实时联动,既便于用户在精度与召回之间快速折中,也能在视频与摄像头模式下即时观察阈值变化对计数稳定性的影响。
为保障实时性与一致性,系统在输入源切换时采用“源互斥”策略:任一新源启动前主动停止其他源,避免摄像头与视频/目录并发导致的资源争抢与帧序错乱;在长序列处理中通过进度条显示处理进度,并将单帧用时与计数统计同步到界面,形成可观测的推理闭环。与此同时,模型权重加载以“本地权重选择”为入口,允许在不重启应用的情况下切换不同 YOLO 版本/尺度模型,并保持类别信息与可视化配色的一致刷新;导出侧以表格记录为中心组织 CSV 输出,并对单帧或多帧结果提供一键归档,配合时间戳命名增强追溯性与批量管理效率。

图 6-1 系统流程图
图注:系统自初始化与模型列表加载开始,经多源输入、640×640 预处理、YOLO 推理与后处理,完成界面叠加显示与统计更新;在“继续获取下一帧”条件分支下形成事件驱动闭环,并在终止时统一导出 CSV/PNG/AVI 与时间戳归档。

图 6-2 系统设计框图
图注:框图以“表现与交互层—业务与会话管理层—推理与任务调度层—数据持久化层”为主干,展示多源输入互斥调度、参数同步、推理后处理、记录与导出在层间的职责边界与数据流向。
6.2 登录与账户管理 — 流程图

图 6-3 登录与账户管理流程图
图注:流程从启动应用显示登录界面开始,按“是否已有账号”分支进入注册或登录;注册写入本地数据库后回到登录,登录通过口令校验后载入个性化配置与历史记录进入主界面,并支持资料修改与注销/切换账号。
登录与账户管理模块的设计目标是为检测业务提供“可选但一致”的会话入口:用户可通过注册在本地数据库中建立账号记录,登录时完成口令校验并在会话生效期内自动载入个性化配置(主题、默认模型、最近检测记录等),从而减少重复设置成本并提升跨任务连续性;在主检测流程中,账户信息与结果记录形成一一对应的追溯链路,既便于对同一用户的历史统计、导出复查与误差分析,也为后续扩展权限控制、审计日志与多角色协同预留接口空间。
7. 下载链接
若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

本文涉及到的完整全部程序文件: 包括环境配置文档说明、python源码、数据集、训练代码、UI文件、测试图片视频等:
详细介绍文档博客: 基于深度学习的车型识别与计数系统(YOLOv12完整代码+论文示例+多算法对比)
环境配置博客教程:https://deeppython.feishu.cn/wiki/EwnTwJ2H3iLF6VkNG6ccgZYrnvd;
或者环境配置视频教程:Pycharm软件安装视频教程;(2)Anaconda软件安装视频教程;(3)Python环境配置视频教程;
数据集标注教程(如需自行标注数据):数据标注合集
参考文献(GB/T 7714)
1 GOODFELLOW I, BENGIO Y, COURVILLE A. Deep Learning[M]. Cambridge: MIT Press, 2016.
2 REN S Q, HE K M, GIRSHICK R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J/OL]. arXiv:1506.01497, 2015.
[3] LIU W, ANGUELOV D, ERHAN D, et al. SSD: Single Shot MultiBox Detector[J/OL]. arXiv:1512.02325, 2015.
[4] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal Loss for Dense Object Detection[J/OL]. arXiv:1708.02002, 2017.
[5] TAN M X, PANG R M, LE Q V. EfficientDet: Scalable and Efficient Object Detection[J/OL]. arXiv:1911.09070, 2020.
[6] TIAN Z, SHEN C H, CHEN H, et al. FCOS: Fully Convolutional One-Stage Object Detection[C]//Proceedings of ICCV. 2019.
[7] ZHOU X Y, WANG D Q, KRÄHENBÜHL P. Objects as Points[J/OL]. arXiv:1904.07850, 2019.
[8] CARION N, MASSA F, SYNNAEVE G, et al. End-to-End Object Detection with Transformers[C]//Proceedings of ECCV. 2020.
[9] YU F, CHEN H F, WANG X, et al. BDD100K: A Diverse Driving Dataset for Heterogeneous Multitask Learning[C]//Proceedings of CVPR. 2020.
[10] WEN L Y, DU D, CAI Z W, et al. UA-DETRAC: A New Benchmark and Protocol for Multi-Object Detection and Tracking[J/OL]. arXiv:1511.04136, 2015.
[11] YANG L J, LUO P, LOY C C, et al. A Large-Scale Car Dataset for Fine-Grained Categorization and Verification[C]//Proceedings of CVPR. 2015.
[12] JOCHER G, et al. YOLOv5[EB/OL]. Ultralytics GitHub仓库: ultralytics/yolov5, 2020.
[13] LI C Y, LI L L, JIANG H L, et al. YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications[J/OL]. arXiv:2209.02976, 2022.
[14] 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.
[15] 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.
[16] WANG A, CHEN H, LIU L H, et al. YOLOv10: Real-Time End-to-End Object Detection[J/OL]. arXiv:2405.14458, 2024.
[17] KHANAM R, HUSSAIN M. YOLOv11: An Overview of the Key Architectural Enhancements[J/OL]. arXiv:2410.17725, 2024.
[18] TIAN Y J, YE Q X, DOERMANN D. YOLOv12: Attention-Centric Real-Time Object Detectors[J/OL]. arXiv:2502.12524, 2025.
[19] BEWLEY A, GE Z Y, OTT L, et al. Simple Online and Realtime Tracking[J/OL]. arXiv:1602.00763, 2016.
[20] WOJKE N, BEWLEY A, PAULUS D. Simple Online and Realtime Tracking with a Deep Association Metric[J/OL]. arXiv:1703.07402, 2017.
[21] ZHANG Y F, SUN P Z, JIANG Y, et al. ByteTrack: Multi-Object Tracking by Associating Every Detection Box[J/OL]. arXiv:2110.06864, 2022.
[22] 王树云, 丁学文, 白亮, 等. 基于YOLO算法的自动驾驶汽车检测研究综述[J]. 计算机科学与应用, 2023, 13(11): 2125-2135.
[23] PU Z, LUO S. Object Detection Method in Complex Traffic Scenarios[J]. Information and Control, 2025, 54(4): 632-643.
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)