摘要:夜间车辆检测是智能交通与自动驾驶在低照度场景中的关键能力之一,其难点在于车灯强眩光、低信噪比、运动模糊与雨雾反射导致的目标边界弱化与误检漏检。本文围绕基于深度学习的夜间车辆检测系统给出整体方案:以 YOLO 系列为主干构建端到端检测模型,并通过低照度增强与去眩光等预处理、结合多尺度特征融合与注意力机制提升对远距离小目标与遮挡车辆的鲁棒性;在训练阶段引入夜间数据增强(亮度抖动、噪声注入、雨雾仿真、光晕合成)与迁移学习策略,缓解夜间样本稀缺与域偏移问题;在系统层面实现视频流与摄像头实时推理、阈值可调、结果叠加可视化、告警与日志记录等功能,并支持模型权重热切换与批量离线评测。实验结果表明,该系统在典型夜间道路场景下能够稳定输出车辆类别与位置框,兼顾检测精度与实时性,为夜间交通监测、违法抓拍与驾驶辅助提供可落地的技术参考。


功能效果展示视频:夜间车辆检测系统YOLOv12-v11至v5(八个模型,含示例论文)合集(完整Python项目演示,UI界面,含论文等)

➷点击跳转至文末所有涉及的完整代码文件下载页☇


1. 前言综述

夜间车辆检测面向智能交通监测、道路安全预警与高级辅助驾驶等应用,是典型的“强域偏移”视觉任务:相较白天,夜间成像在照度不足、对比度下降、噪声上升与运动模糊叠加的条件下,目标纹理与边缘显著退化,同时车灯与路灯会引入强眩光与光晕,使得检测器更易出现漏检、错检与定位框漂移等问题。围绕这一现实需求,老思在本文讨论的“基于深度学习的夜间车辆检测系统”中,关注的不仅是离线精度,更强调复杂夜景下的稳定性与工程可部署性,这一点与通用目标检测在自然光数据集上的设定存在本质差异。1 (arXiv)

早期车辆检测多依赖人工特征与规则建模,但在夜间这种非均匀照明与强反光环境下,传统管线往往需要针对场景反复调参,泛化能力受限。深度学习检测框架的成熟,为夜间车辆检测提供了统一的端到端建模路径:两阶段检测以候选区域为核心,代表性工作 Faster R-CNN 通过 RPN 生成高质量 proposals,显著提升了检测精度并奠定了后续改进方向。2 (arXiv) 与之相对,一阶段检测通过密集预测追求速度与简化部署,RetinaNet 以 focal loss 缓解前景/背景极度不均衡导致的训练困难,使一阶段方法在精度上逼近两阶段方案。3 (CVF Open Access) 进入 Transformer 时代,DETR 将检测表述为集合预测并引入二分匹配损失,减少了锚框与 NMS 等手工组件对性能的制约,为复杂场景下的全局关系建模提供了新的范式。4 (ECVA)

在工程落地层面,YOLO 系列因端到端、结构紧凑与实时性优势,成为夜间车辆检测系统中最常用的基线之一。YOLOv1 将检测统一为回归问题,证明了单网络实时检测的可行性。1 (arXiv) 随后 YOLOv4 系统性梳理并验证了多种训练与结构技巧(如 Mosaic 增强、改进的 IoU 损失等)对速度—精度权衡的贡献,为实际部署提供了可复用的训练范式。5 (arXiv) 更近一步,YOLOv7 通过“可训练的 bag-of-freebies”等设计在不显著增加推理开销的前提下提升精度,体现了实时检测在结构与训练层面的持续演进。6 (CVF Open Access) 不过,夜间车辆检测的瓶颈并不完全来自检测头或骨干网络,而在于输入域本身的信息缺失与光照干扰,这使得“仅在网络结构上做增量改动”常常难以获得稳定收益。

因此,近年的研究现状逐渐形成两条互补路线:其一是“数据与基准”的完善,其二是“低照度表征与增强”的引入。数据层面,ExDark 以专门的低照度图像与目标标注缓解了低光数据稀缺问题,推动了低光检测的系统评测。7 (ScienceDirect) 面向自动驾驶,BDD100K 提供大规模多任务驾驶视频数据并覆盖多样光照与天气,为夜间子域的检测与迁移学习提供了重要支撑。8 (CVF Open Access) 同时,ACDC 以夜间、雨雾雪等不利条件构建对应场景数据,并提供更强的域对齐评测条件,使“在恶劣条件下鲁棒感知”成为可量化的研究方向。9 (acdc.vision.ee.ethz.ch) 方法层面,低照度增强模型被频繁用于改善检测输入质量,例如 RetinexNet 通过分解照明与反射成分实现端到端增强,为后续“增强—检测”联合优化提供了可解释的结构基础。10 (arXiv) 进一步地,Zero-DCE 以零参考曲线估计方式在无需成对标注的条件下实现增强,降低了夜间数据获取与标注成本,对实时系统尤为友好。11 (arXiv) 另一方面,也有工作直接面向夜间检测的域偏移提出特征学习策略,例如在 BDD100K 夜间子集上引入频域对比学习与持续学习机制,以缓解夜间与白天在对比度与噪声分布上的差异。12 (arXiv)

在车辆检测这一更聚焦的子任务中,研究往往将“增强/抑眩光”与“轻量化检测器”结合,以满足视频监控与车载端的实时约束。比如 MC-YOLO 将轻量骨干与 YOLO 架构融合,并在夜间图像上配合增强预处理以兼顾精度与速度,体现了面向实际部署的设计取向。13 (ScienceDirect) 国内也出现了针对低照度检测的结构化改进方案,例如 LOL-YOLO 通过引入照度自校正与多注意力机制,直接针对夜景边界模糊与亮度差异大的症结进行建模。14 (CEA) 更近期的工作如 LLD-YOLO 以多模块方式增强低光车辆检测鲁棒性,并围绕 YOLO 系列主干进行针对性改造,反映了“面向夜间车辆这一特定对象类别”的细粒度优化趋势。15 (Springer) 综上所述,夜间车辆检测的关键难点可归结为:低照度导致的细节缺失、眩光/光晕造成的局部饱和与伪边缘、夜间数据稀缺引发的训练分布偏移,以及在资源受限平台上实现稳定实时推理的工程约束。7 (ScienceDirect)

为便于把握“研究现状—系统落地”的关系,下面给出一个凝练对照表,概括典型数据集与代表性方法在夜间/低照度检测中的侧重点与局限。

类别 代表工作 相关数据/场景 主要思路 局限性(面向夜间车辆)
低照度/夜间数据基准 ExDark7、BDD100K8、ACDC9 低照度静态图像、驾驶视频、夜间不利条件 扩充夜间样本与评测维度 夜间子域仍存在标注噪声、类别/场景偏置与域差异
通用检测框架演进 Faster R-CNN2、RetinaNet3、DETR4 通用视觉场景 候选区域、类别不平衡、集合预测 夜间问题更多源于输入退化,框架本身并非充分条件
YOLO 系列实时检测 YOLOv11、YOLOv45、YOLOv76 工业与交通实时场景 单阶段端到端、强调速度与部署 夜间眩光与小目标远距目标仍易漏检
夜间/低照度专用改进 MC-YOLO13、LOL-YOLO14、LLD-YOLO15 夜间车辆/低光目标 轻量化、增强预处理、注意力/模块化增强 泛化到不同道路光照与摄像头成像条件仍需数据与策略支撑

基于上述梳理,本文(老思)在“夜间车辆检测系统”的写作与实现中,主要贡献将聚焦于三点:其一,基于 YOLO 系列构建可实时运行的夜间车辆检测基线,并在低照度与眩光场景下进行针对性改进与对比评测;其二,围绕夜间道路场景构建并标注专用数据集,完成清洗、增强、划分与统计分析以支撑可复现实验;其三,面向实际使用场景实现带可视化交互的检测系统界面与推理管线,支持多输入源、阈值调节、结果保存与日志管理等工程能力,从而将算法评测与可部署系统闭环连接起来。6 (CVF Open Access)


主要功能演示:

系统的主要功能演示可以从“用户体系—主界面交互—模型能力切换—个性化外观”四条主线串联起来,形成一条从进入系统到完成检测任务的连贯体验。首先在注册与登录环节,系统提供注册、登录、退出与重新登录的完整闭环:注册界面完成用户名与密码的规则校验(如长度、字符合法性、重复用户名检查),并将账号信息写入 SQLite;登录时通过参数化查询对输入凭据进行校验,校验通过后加载该用户的个性化配置与历史检测记录,使用户一进入主界面便能看到上次使用的模型、阈值设定、保存路径与统计面板状态,从而把“账户”与“检测配置、结果空间”绑定,避免不同操作者之间的设置相互污染。该机制在多终端或同机多人使用的车间、实验室、值守监控场景下尤其重要:既保证了操作责任可追溯,也让模型阈值与告警偏好等经验配置得以长期沉淀。
在这里插入图片描述

进入主界面后,页面布局围绕“输入—推理—展示—管理”的逻辑展开,并采用 PySide6 的信号槽将各模块的状态联动起来。界面通常包含顶部工具栏与状态栏用于承载输入源切换、开始/停止推理、导出与日志提示等高频操作;中央区域以检测可视化为核心,左侧或上方提供输入画面与检测叠加画面(或单画布叠加显示),保证用户能直观看到边界框、类别与置信度的变化;右侧面板承载可调参数(如 Conf/IoU 阈值、最大检测数、是否启用增强或去眩光预处理),并同步给出实时统计信息(车辆计数、类别占比、平均置信度、帧率 FPS 等);底部则可布置结果列表或表格视图,逐条记录每帧或每段视频的检测事件,支持点击回看与筛选。这样的布局使得用户在单屏内完成从数据输入到结果审阅再到导出的全部操作,减少窗口切换成本,同时也便于后续扩展如 PR 曲线查看、历史任务管理与告警策略配置。
在这里插入图片描述

在模型选择方面,系统将“检测器”抽象为统一接口,通过下拉框或卡片式选择组件实现多权重切换,默认加载轻量模型以保障实时性,同时支持导入不同版本的 YOLO 权重文件进行对比实验。实际演示时,用户可以在不退出主界面的前提下完成模型热切换:切换后系统会重新加载网络与推理后端(如 PyTorch/ONNX/TensorRT),并在状态栏提示当前模型名称、输入尺寸与推理设备;随后在同一段夜间视频上快速对比不同模型在远距离小目标、遮挡、眩光条件下的检测差异,配合右侧统计面板的 FPS 与车辆计数变化,形成“效果—速度—稳定性”的直观权衡。由于夜间车辆检测对域偏移较敏感,系统层面的模型切换不仅是展示功能,更是将算法研究中的对比实验能力直接搬到工程界面中,便于复现实验结论并指导最终部署选型。
在这里插入图片描述

主题修改则体现系统的可用性与长期值守友好性。界面提供亮色/暗色主题切换与主色调、字体大小、按钮圆角、背景图等外观参数的配置入口,修改后写入该用户的配置表并在下次登录自动恢复。对于夜间值守或车载屏幕,暗色主题可以减少强光刺激并提升关键信息对比度;而在白天办公环境,亮色主题更利于表格审阅与批量标注。更进一步,主题切换与控件布局状态(如面板折叠、表格列宽、快捷键映射)共同构成“个性化工作台”,使系统能够适配不同岗位的使用习惯:算法工程师偏向快速切换模型与查看推理速度,标注人员更关注输入浏览与导出一致性,值班人员则更依赖告警提示与日志可追溯。通过将主题与账户绑定,系统把“界面友好性”转化为可持续的工程体验,最终提升夜间车辆检测在真实场景中的可操作性与落地效率。
在这里插入图片描述


2. 数据集介绍

本文夜间车辆检测实验所用数据集命名为 NightVehicle_SIXU,共包含 9,867 张图像,覆盖城市道路夜间行驶与路侧监控的典型场景。样本整体呈现明显的“低照度与强对比”成像特征,画面中常见车灯、路灯导致的局部过曝与光晕,同时伴随远距小目标、遮挡、运动模糊与噪声抬升等问题;从给出的可视化样例可以观察到,目标以汽车为主,行人与自行车在道路两侧或远处高频出现,少量样本包含犬类目标,整体更贴近真实道路夜间分布而非理想化采集条件。标注采用 YOLO 系列通用的归一化框表示( ( x , y , w , h ) (x,y,w,h) (x,y,w,h) 均归一化到 [ 0 , 1 ] [0,1] [0,1]),从标签相关性与框分布图(labels correlogram)可以看出,目标中心在纵向上更集中于道路消失点附近,且宽高分布呈现“小框占比高、长尾明显”的特点,这意味着模型在训练中需要更强的多尺度表达能力与对小目标的定位鲁棒性;与之对应,训练/验证批次可视化也显示夜间背景噪声与强光干扰易造成置信度波动与邻近目标框拥挤,对后处理的阈值设定与 NMS 抑制策略提出了更高要求。
在这里插入图片描述

在数据构建流程上,老思将原始图像统一清洗为可训练格式,并进行一致化的尺寸适配与数据划分:训练集 7,410 张、验证集 1,457 张、测试集 1,000 张,比例约为 75.1% / 14.8% / 10.1%,既保证了训练样本规模,也为超参数选择与泛化评测保留了足够的独立数据。类别体系共 4 类,分别为 bicycle、car、dog、person,并提供中文对照以便于系统界面与结果导出时的本地化展示(自行车、汽车、狗、人)。下表汇总了数据集的规格信息,便于复现实验设置与后续对比研究。
在这里插入图片描述

📊 数据集规格说明 (Dataset Specification)

维度 参数项 详细数据
基础信息 标注软件 LabelImg
标注格式 YOLO TXT (Normalized)
数量统计 训练集 (Train) 7,410 张 (75.1%)
验证集 (Val) 1,457 张 (14.8%)
测试集 (Test) 1,000 张 (10.1%)
总计 (Total) 9,867 张
类别清单 Class ID: 0 bicycle(自行车)
Class ID: 1 car(汽车)
Class ID: 2 dog(狗)
Class ID: 3 person(人)
图像规格 输入尺寸 640 * 640
数据来源 夜间道路场景自建采集/整理(NightVehicle_SIXU)

3. 模型设计与实现

夜间车辆检测的核心困难并不在于“是否能看见目标”,而在于低照度与强光源共同作用下的表征退化:背景信噪比下降导致纹理信息缺失,车灯与路灯的饱和区域又会产生伪边缘与局部对比度反转,使得检测器在小目标、远距离目标与遮挡场景中更容易出现置信度不稳定与定位偏移。基于这一任务属性,老思在模型端采用 Ultralytics 系列的 YOLO12n 作为默认基线,其动机主要是:YOLO12 将注意力机制以“可实时化”的方式嵌入 YOLO 框架,通过 Area Attention 与 R-ELAN 等结构在保持较低延迟的同时增强全局依赖建模能力,从而对夜间道路中“弱纹理但强结构”的目标边界更友好;同时它在 COCO 等标准评测上给出了清晰的速度—精度指标,便于作为后续消融与工程部署的参照系。(Ultralytics Docs)

从网络结构上看,YOLO12 延续了检测任务中“Backbone–Neck–Head”的三段式组织,但其关键变化集中在特征提取与特征交互环节。Backbone 以改进的 R-ELAN(Residual Efficient Layer Aggregation Networks)作为主干聚合单元:通过块级残差与缩放系数将深层注意力堆叠带来的优化不稳定问题显式“钳住”,使得深网络在训练早期更容易维持梯度流的可控性;与此同时,Area Attention 将特征图按水平或垂直方向做等分区域重排,在维持大感受野的前提下避免复杂的窗口划分/回填操作,从计算与访存两端同时降低注意力的推理开销。YOLO12 还引入基于 FlashAttention 的注意力实现以减少显存读写瓶颈,并通过“位置感知器”( 7 × 7 7\times 7 7×7 可分离卷积)在不显式使用位置编码的条件下补偿空间位置信息,这对于夜间场景中“纹理弱但几何布局稳定”的道路目标尤为关键。(Ultralytics Docs)

Neck 部分仍以多尺度特征融合为主线,采用自顶向下与自底向上的路径聚合思想(FPN/PAN 的工程化实现)将不同层级的语义信息与细节信息对齐,最终形成 P 3 / P 4 / P 5 P3/P4/P5 P3/P4/P5 等多尺度特征用于检测头预测。夜间车辆检测往往呈现“小目标占比高、目标中心靠近道路消失点区域密集”的统计规律(你给出的标签分布图已体现出这种集中趋势),因此多尺度融合的作用不仅是提升小目标召回,更重要的是缓解“密集目标”下的特征竞争与相互遮挡带来的分类混淆:高层语义负责稳定类别判别,低层细节负责收敛边界位置,从而在弱纹理场景下提高框的可重复定位能力。

Head 端则采用 YOLO 系列常用的解耦式检测头范式:分类分支输出类别概率,回归分支输出边界框参数,并结合现代 YOLO 的 anchor-free 表达与任务对齐分配策略完成正负样本匹配。损失函数通常由分类损失与回归损失共同组成,可写为
L = λ c l s L ∗ c l s + λ ∗ b o x L ∗ b o x + λ ∗ d f l L ∗ d f l , \mathcal{L}=\lambda_{cls}\mathcal{L}*{cls}+\lambda*{box}\mathcal{L}*{box}+\lambda*{dfl}\mathcal{L}*{dfl}, L=λclsLcls+λboxLbox+λdflLdfl,
其中 L ∗ c l s \mathcal{L}*{cls} Lcls 常用 BCEWithLogits(必要时可叠加标签平滑以抑制夜间噪声导致的过拟合), L ∗ b o x \mathcal{L}*{box} Lbox 多采用 IoU 家族的几何损失(工程中常用 CIoU),例如
L ∗ b o x = 1 − C I o U ( b , b ∗ ) , \mathcal{L}*{box}=1-\mathrm{CIoU}(\mathbf{b},\mathbf{b}^*), Lbox=1CIoU(b,b),
L d f l \mathcal{L}_{dfl} Ldfl 为分布式回归(Distribution Focal Loss),用离散分布刻画边界到网格的距离并以期望回归连续值,从而在小目标与边界模糊时提升定位的“可微分精细度”。在正则化方面,Backbone/Neck 中的卷积层默认配合 BN 稳定特征尺度,训练阶段可结合权重衰减与 EMA(指数滑动平均)平滑参数更新,以降低夜间场景下由噪声与光照抖动带来的梯度方差;这些训练细节将在下一节“训练策略与模型优化”中进一步展开。(Ultralytics Docs)


4. 训练策略与模型优化

夜间车辆检测的训练策略需要同时回应两类不稳定性:其一来自成像域本身的噪声与光照抖动,典型表现为同一类别在不同帧/不同路段的外观差异显著,导致分类置信度波动;其二来自目标尺度与密度分布的长尾特征,你给出的标签分布图已经显示出“小框占比高、目标中心在道路消失点附近聚集”的统计规律,小目标与密集目标在训练早期极易被背景与强光区域淹没。基于这一点,老思建议将训练过程拆成“稳定收敛—提升召回—抑制误检”三个阶段的目标导向流程:先借助预训练权重与较保守的数据增强确保梯度方向可靠,再逐步增加夜间特有扰动与小目标友好策略提高召回,最后通过阈值与后处理、以及更贴近部署端的数据分布进行微调以压低误检率。

在训练环境与工程配置上,系统采用 Python 3.12 与 Ultralytics 框架实现,GPU 使用 RTX 4090。训练输入尺寸统一为 640 × 640 640\times 640 640×640,batch 取 16,在显存允许的情况下开启混合精度以提高吞吐;优化器使用框架 auto 模式以便在不同模型规模下自动选择更稳定的配置,初始学习率 l r 0 = 0.01 lr_0=0.01 lr0=0.01 并配合余弦退火或多段衰减到 l r f = 0.01 ⋅ l r 0 lr_f=0.01\cdot lr_0 lrf=0.01lr0 的量级,warmup 轮数设为 3 以避免夜间高噪样本在初期造成梯度爆炸。为减少过拟合与提升泛化,权重衰减取 5 × 10 − 4 5\times 10^{-4} 5×104,动量取 0.937,并开启 EMA 对模型参数进行滑动平均,以降低由眩光、雨雾反射导致的梯度方差。训练轮数设置为 120,同时引入早停机制(patience=50),当验证集 mAP 或 loss 长时间无改进时提前终止,避免在夜间噪声数据上“越训越记忆化”。

迁移学习与微调是夜间检测任务中非常关键的增益来源。实际训练时建议加载在 COCO 等大规模数据集上训练得到的预训练权重,使 backbone 的通用边缘/形状表征先验进入较优区域,然后在 NightVehicle_SIXU 上进行全量微调;若发现训练集收敛很快但验证集提升缓慢,往往意味着域偏移较大且小目标细节不足,此时可以采用“冻结前几层—热身训练—逐步解冻”的渐进策略:先冻结 backbone 浅层若干 stage,只训练 neck/head 让检测头适配夜间类别分布与框尺度分布;待验证指标稳定后再解冻 backbone 深层,让高层语义特征适应夜间光照条件。对于本数据集中 car 占比显著更高、且 bicycle/person 易在远处呈现小框的情况,还可以适当提高小目标层(如 P 3 P3 P3)的采样权重或采用更激进的多尺度训练(random resize),使模型在不同分辨率下学习到更稳定的尺度不变性。

数据增强需要“通用增强”与“夜间特化增强”保持克制的平衡。Mosaic 在提高小目标召回方面通常有效,因此训练前期可保持 mosaic=1.0 以增强多目标密集场景的组合分布,但在训练后期(close_mosaic=10)应关闭 Mosaic,使数据分布回到更接近真实道路帧的单幅图像结构,否则容易出现定位框在真实视频上抖动、或对车灯边缘产生过拟合的现象。夜间特化增强更建议围绕“亮度与噪声”做物理合理扰动,例如亮度/对比度抖动、gamma 变化、轻度高斯噪声与运动模糊仿真;若眩光导致误检明显,可以在增强中加入局部过曝与光晕合成,使模型在训练期见到更多“强光干扰但仍需保持车辆轮廓判别”的样本。需要强调的是,夜间增强不宜过强:当增强幅度超过真实成像分布时,模型会学到不必要的鲁棒性并牺牲精细定位,表现为 mAP 上升有限但误检增加,因此更推荐采用“中等强度、概率触发”的策略而非全量强扰动。

在模型优化层面,夜间任务最常见的工程问题是“召回不足与误检并存”,因此优化不应只盯着单一指标。老思的经验是先通过训练阶段保证 recall,再在推理阶段通过阈值与后处理精修 precision:一方面,训练中保持较低的 conf 筛选(或不做过强筛选)能让模型更充分学习困难样本;另一方面,部署端根据业务容忍度调节置信度阈值与 IoU-NMS 阈值,往往比继续加深网络更直接有效。若你在验证集上观察到 bicycle/person 的漏检高于 car,通常意味着类别不均衡与小目标学习不足,可以考虑两种轻量改进:其一是引入标签平滑抑制噪声标注导致的过拟合,其二是在不改网络结构的前提下对分类损失做类别加权(或采用更合理的采样策略),让长尾类别获得更稳定的梯度信号。与此同时,保持输入分辨率为 640 的前提下,可以在导出部署模型时使用 ONNX/TensorRT 并启用 FP16 推理,以在 RTX 4090 乃至更低算力平台上获得更高帧率;对视频流场景,还可以加入简单的帧间策略(如每 k k k 帧推理一次并插值显示)来平衡实时性与计算负载,但这属于系统级优化,后文在系统实现部分更适合展开。

综合而言,本节训练策略的核心思想是:用预训练与 warmup 保证夜间噪声环境下的稳定收敛,用前期 Mosaic 与多尺度训练拉高小目标召回,用后期关闭 Mosaic 与 EMA 平滑参数提升部署一致性,并通过类别不均衡处理与推理端阈值调节抑制误检。这样得到的模型不仅在离线 mAP 上具备可比性,更重要的是在夜间视频流中能保持检测框与置信度的时间稳定,为后续 PySide6 系统中的实时显示、统计与告警提供可靠输入。


5. 实验与结果分析

本节围绕 NightVehicle_SIXU 数据集开展对比实验,目标是从“检测精度—类别鲁棒性—推理效率”三个维度评估不同 YOLO 系列模型在夜间场景下的综合表现,并为后续系统部署的模型选型提供可复现依据。实验在统一数据划分(Train/Val/Test = 7410/1457/1000)、统一输入分辨率( 640 × 640 640\times640 640×640)与一致的训练轮数上完成,评测阶段采用同一后处理流程(置信度阈值与 NMS 规则一致),以尽可能排除非模型因素的干扰;对比对象覆盖轻量化 n/tiny 级模型与更强表征能力的 s 级模型两条路线,分别对应“实时优先的边缘部署”与“精度优先的工程落地”两类典型需求。你给出的结果图中同时包含单模型的 PR/F1/混淆矩阵与多模型的曲线、柱状对比,因此下文将按照度量指标与结果解读逐步展开,并在结尾给出可直接用于选型的结论。

夜间车辆检测的度量指标主要采用 Precision、Recall、F1、mAP@0.5(记作 mAP50)与 mAP@0.5:0.95(记作 mAP50-95)。其中 Precision 反映误检控制能力,Recall 反映漏检控制能力,F1 则是二者的折中;mAP50 更敏感于“是否检出”,而 mAP50-95 对定位精度与框质量要求更高,通常更能体现夜间弱纹理场景下边界回归的真实难度。由于本数据集中 car 占比高且目标尺度长尾明显,小目标(如 bicycle、远距 person)更容易在强光、噪声与模糊下丢失边界,因此需要结合 PR 曲线与混淆矩阵观察“错在何处”,而不能只看单一 mAP 数值。

从单模型诊断结果看,图 PR_curve(PR 曲线)与图 F1_curve(F1-Confidence 曲线)给出了类别级性能差异。PR 曲线显示 car 的 AP@0.5 达到 0.738,显著高于 person 的 0.600、dog 的 0.552 与 bicycle 的 0.383,整体 all classes mAP@0.5 为 0.568。该现象与夜间道路数据的外观统计一致:汽车目标往往面积更大、形态更稳定,且在红外/低照成像中轮廓对比更突出,因此模型更容易学习到稳定的判别特征;相对地,bicycle 在夜间常呈细长结构与小目标形态,且与背景栏杆、路边设施在灰度纹理上更易混淆,导致在召回提升时 precision 快速下降,PR 曲线更早进入“陡降段”。F1-Confidence 曲线进一步指出全类别最优 F1 约为 0.57,且对应的最佳置信度阈值约为 0.107(图中标注 “all classes 0.57 at 0.107”),这意味着在夜间场景中若将 conf 设得过高,会显著牺牲 recall 并导致漏检;因此系统部署时更推荐采用相对较低的 conf(如 0.10~0.20 区间)配合更稳健的 NMS/轨迹约束来控误检,而不是简单把 conf 拉高来“压噪声”。
在这里插入图片描述
在这里插入图片描述

混淆矩阵(图 confusion_matrix_normalized)从错误类型上揭示了更关键的问题:除了类间混淆外,“目标被判为背景(FN)”占据了相当比例,尤其是 bicycle 与 dog 两类在 background 行/列上的值较高,说明漏检是当前夜间数据下的主要矛盾之一;person 的对角线约 0.49,也反映出行人类在夜间背景与强光干扰下的可分性仍不足。这与训练过程曲线(图 results)相互印证:训练损失(box/cls/dfl)持续下降且平滑,但验证损失在中后期趋于稳定甚至略有回升,同时 mAP50 与 mAP50-95 在约 40~80 epoch 进入平台区,说明模型已经学到主要模式,后续提升更多依赖数据分布补强(更丰富的 bicycle/person 样本与更贴近真实眩光的增强)或针对小目标的结构/训练策略,而非单纯延长训练轮数。
在这里插入图片描述

在多模型对比方面,n/tiny 路线用于评估“轻量模型在夜间是否足够用”。根据你提供的 n 级结果表,YOLOv9t 在精度侧最突出(Precision=0.7074、F1=0.5837、mAP50=0.5407、mAP50-95=0.2914),但其 InfTime 达到 16.51 ms,明显高于 YOLOv8n(6.83 ms)与 YOLOv6n(6.78 ms);YOLOv12n 的 mAP50=0.5094 与 YOLOv8n 的 0.5086 基本同量级,但推理耗时更高(12.47 ms),整体更偏向“精度略优/速度略慢”的取舍。与此同时,YOLOv11n 的 mAP50=0.4530、F1=0.4879 明显偏低,说明在本数据集的夜间域上其轻量化配置可能更容易受到域偏移影响。图 NightVehicle_n_type_comparison(F1 与 mAP50 柱状对比)与图 NightVehicle_n_type_pr_curve(平均 PR 曲线)从趋势上也呈现一致结论:YOLOv9t 的 PR 曲线整体上移,说明其在较宽 recall 区间内仍能保持更高 precision,更适合“夜间误检敏感”的交通监控任务;YOLOv8n 与 YOLOv12n 则处于第二梯队,具备较均衡的综合性能。
在这里插入图片描述在这里插入图片描述

s 路线用于评估“在参数量可接受的前提下提升鲁棒性”。从你提供的 s 级结果表可以看到,YOLOv9s 在精度侧形成明显领先,mAP50=0.5964、mAP50-95=0.3328,F1=0.6268,Precision=0.7703、Recall=0.5284,基本在五项指标上均为最优或接近最优;这一点也与图 NightVehicle_s_type_comparison(柱状对比)及图 NightVehicle_s_type_pr_curve(平均 PR 曲线)保持一致,YOLOv9s 的 PR 曲线在中高 recall 区间仍能维持更高 precision,说明其对夜间“弱纹理+小目标+强光干扰”的联合情形更稳健。值得注意的是,YOLOv7 的 F1 也很高(0.6272),mAP50 与 YOLOv9s 接近(0.5700 vs 0.5964),但其推理耗时巨大(23.62 ms),且参数量与 FLOPs 明显更高(36.9M、104.7G),使得它在实时系统中的部署成本显著上升;相较之下,YOLOv9s 在参数量 7.2M、FLOPs 26.7G 的条件下取得更高 mAP50-95,体现出更优的“定位质量—计算量”效率。YOLOv12s 的表现(mAP50=0.5683、mAP50-95=0.3104、F1=0.5789)处于中上水平,但其 InfTime=13.23 ms 仍明显高于 YOLOv8s(7.66 ms)与 YOLOv11s(9.74 ms),说明若目标是“在保持较强精度的同时追求高帧率”,YOLOv12s 并非当前表中的最优点。
在这里插入图片描述
在这里插入图片描述

将速度因素纳入后,模型选型可以更清晰地落到工程决策上。若系统部署侧更关注实时性(例如摄像头多路并发、边缘设备算力受限),n/tiny 路线中 YOLOv8n 与 YOLOv6n 在 6~7 ms 推理区间内提供了可接受的 mAP50(约 0.486~0.509),属于“速度优先的均衡解”;若更强调夜间检测的稳定性与更低漏检(尤其是对 car/person 的连续统计与告警),YOLOv9t 虽更慢但能提供更高 F1 与 mAP50-95,适合在单路或少路视频上追求更稳结果。若系统允许使用 s 级模型,YOLOv9s 在精度上明显领先且参数量不大,是“精度优先但仍可部署”的更优选择;YOLOv8s 则提供较好的速度(7.66 ms)与中上 mAP50(0.5697),适合作为“速度与精度折中”的默认配置。图 NightVehicle_s_type_metrics_mAP50(B) 与图 NightVehicle_n_type_metrics_mAP50(B) 也显示,多数模型在 40~80 epoch 后进入平台期,不同曲线的相对排序较稳定,说明这些结论并非由训练偶然波动造成,而是模型结构差异在夜间域上的系统性反映。

最后给出一条更贴近部署的建议:由于全类别最优 F1 出现在较低 conf(约 0.107),且混淆矩阵显示大量 FN 来自“预测为背景”,因此系统上线时应优先保证召回,再通过更严格的后处理与跨帧一致性抑制误检。例如在 UI 中将 conf 默认设为 0.10~0.20,并允许用户根据场景(路灯密集/车流密集/雨雾)动态调整,同时结合 IoU-NMS、类别独立阈值(对 bicycle/person 适当降低阈值)与结果时间平滑策略,这往往比单纯更换更大模型更能直接改善夜间监控的体验。上述结论也为后文的 PySide6 系统设计埋下接口基础:模型热切换用于选型,conf/IoU 可调用于场景自适应,PR/F1 与混淆矩阵用于离线评测与版本迭代闭环。


6.系统设计与实现

6.1 系统设计思路

老思将夜间车辆检测系统按“界面层—控制层—处理层”三层解耦组织,以 PySide6 的信号-槽作为跨层通信的唯一通道,从而把实时推理这种高频任务与 UI 渲染、状态管理剥离开来,避免界面阻塞与线程不安全。界面层由 Ui_MainWindow 承载按钮、标签、表格、阈值滑块、进度与日志等控件,仅负责呈现与采集用户意图;控制层由 MainWindow 统一调度输入源、推理开关、参数更新、结果导出与异常提示,将 UI 事件转译为稳定的业务状态机;处理层由 Detector 负责模型加载、预处理、推理与后处理,并将结构化结果(框、类别、置信度、统计量、耗时)以信号形式回传,保证系统在视频流场景下可以持续运行并维持可预测的延迟。
在这里插入图片描述

围绕多源输入与可部署性,系统将输入抽象为“帧生成器”:图片以单帧模式进入推理链路,视频与摄像头以流式帧序列进入同一处理接口,且支持暂停、继续、单步与跳帧等播放控制;预处理阶段统一完成尺寸适配与归一化,并保留可选的夜间增强开关以便在不同路段、不同摄像头增益下做现场适配。推理完成后,后处理模块执行置信度阈值过滤与 NMS 抑制,并同步更新类别计数、帧率与耗时统计;这些结果通过信号传递给界面层,在画布上绘制检测框与标签,同时在表格中记录检测事件,并允许一键导出到文件与 SQLite 数据库,以支持后续检索、筛选与统计分析。

从工程实现角度,系统采用“对象组合”组织模块:MainWindow 持有 Detector 实例并订阅其结果信号,Detector 内部维护模型句柄与推理配置,输入源由控制层切换并驱动处理层循环;当用户在界面上修改阈值、切换模型或主题时,控制层只更新状态并向处理层发出轻量指令,避免在 UI 线程中直接做重计算。该设计使系统能够在默认 YOLOv12n 的基础上热切换其他 YOLO 族权重,并将“算法对比实验”与“实际检测流程”统一到同一套交互框架中,便于从离线评测平滑过渡到在线部署。

图 系统流程图
在这里插入图片描述

图注:系统从初始化到多源输入,完成预处理、推理与界面联动,并通过交互形成闭环。

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

在这里插入图片描述

登录与账户管理在该系统中并非附属功能,而是将“操作者身份、个性化配置与检测结果空间”绑定在一起的关键枢纽:注册阶段完成用户名唯一性与密码规则校验,并将账户信息写入 SQLite;登录阶段通过参数化查询与密码哈希比对建立会话上下文,随后自动加载该用户的主题偏好、阈值参数、默认模型与历史检测记录,使用户进入主界面后即可在一致的个人工作台上继续先前任务。资料修改(头像/密码)将变更写回数据库并即时生效,保证长期使用过程中的可维护性;注销/切换账号则清理会话与缓存状态,避免不同用户之间的配置与结果混用。在工程链路上,账户系统与主检测流程通过“加载配置—初始化 Detector—恢复 UI 状态”自然衔接,使多用户值守、多人标注与多岗位协同场景下的个性化体验与数据持久化成为系统的内生能力,而不是额外拼接的临时模块。


7.参考文献

1 Redmon J, Divvala S, Girshick R, et al. You Only Look Once: Unified, Real-Time Object Detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2016: 779-788. (CVF Open Access)
2 Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J/OL]. arXiv:1506.01497, 2015. (arXiv)
3 Lin T Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//Proceedings of the IEEE International Conference on Computer Vision (ICCV). 2017: 2980-2988. (CVF Open Access)
4 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[C]//European Conference on Computer Vision (ECCV). 2020: 213-229. (Springer)
5 Bochkovskiy A, Wang C Y, Liao H Y M. YOLOv4: Optimal Speed and Accuracy of Object Detection[J/OL]. arXiv:2004.10934, 2020. (arXiv)
6 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[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). 2023. (CVF Open Access)
7 Loh Y P, Chan C S. Getting to Know Low-light Images with the Exclusively Dark Dataset[J]. Computer Vision and Image Understanding, 2019. (ScienceDirect)
8 Yu F, Chen H, Wang X, et al. BDD100K: A Diverse Driving Dataset for Heterogeneous Multitask Learning[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). 2020: 2636-2645. (CVF Open Access)
9 Sakaridis C, Dai D, Van Gool L. ACDC: The Adverse Conditions Dataset with Correspondences for Robust Semantic Driving Scene Understanding[J/OL]. arXiv:2104.13395, 2021. (arXiv)
10 Wei C, Wang W, Yang W, et al. Deep Retinex Decomposition for Low-Light Enhancement[J/OL]. arXiv:1808.04560, 2018. (arXiv)
11 Guo C, Li C, Guo J, et al. Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). 2020. (CVF Open Access)
12 Rafiq M, Arsalan M, Rehman A, et al. Seeing BDD100K in Dark: Single-Stage Night-time Object Detection via Continual Fourier Contrastive Learning[J/OL]. arXiv:2112.02891, 2022. (arXiv)
13 (作者信息以期刊页面为准) MC-YOLO-Based Lightweight Detection Method for Nighttime Vehicle Images in Video Surveillance Systems[J]. (Elsevier/ScienceDirect 收录), 2023. (ScienceDirect)
14 蒋畅江, 何旭颖, 向杰. LOL-YOLO:融合多注意力机制的低照度目标检测[J]. 计算机工程与应用, 2024. (CEA)
15 Zhang Q, Guo W, Lin M. LLD-YOLO: A Multi-Module Network for Robust Vehicle Detection in Low-Light Conditions[J]. Signal, Image and Video Processing, 2025. (Springer)


下载链接

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

在这里插入图片描述

完整资源中包含数据集及训练代码,环境配置与界面中文字、图片、logo等的修改方法请见视频,项目完整文件请见项目介绍及功能演示视频处给出:➷➷➷

功能效果展示视频:夜间车辆检测系统YOLOv12-v11至v5(八个模型,含示例论文)合集(完整Python项目演示,UI界面,含论文等)
环境配置博客教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境配置教程
或者环境配置视频教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境依赖配置教程
数据集标注教程(如需自行标注数据):数据标注合集

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐