基于颜色、车牌、品牌和子型号的模块化多属性车辆分析:利用YOLO和OCR技术,并对比不同版本的YOLO算法 作者:Cristian Japhet Islas-Ya?ez, Viridiana Hernández-Herrera, Moisés Márquez-Olivera

《Sensors》:Modular Multi-Attribute Vehicle Analysis by Color, License Plate, Make and Sub-Model Using YOLO and OCR: A Benchmark Across YOLO Versions Cristian Japhet Islas-Ya?ez, Viridiana Hernández-Herrera and Moisés Márquez-Olivera

【字体: 大 中 小 】 时间:2026年04月30日 来源:Sensors 3.5

编辑推荐:

  摘要:我们提出了一种模块化的多属性车辆分析流程,该流程将基于YOLO的模型和OCR引擎集成到单一的工作流中。该系统能够检测车辆、分类车辆颜色、识别车辆品牌和子型号、检测车牌,并提取车牌字符以生成结构化的车辆记录。车辆检测的结果使用标准指标(精确度、召回率和mAP@0.5)进行报告

  摘要:我们提出了一种模块化的多属性车辆分析流程,该流程将基于YOLO的模型和OCR引擎集成到单一的工作流中。该系统能够检测车辆、分类车辆颜色、识别车辆品牌和子型号、检测车牌,并提取车牌字符以生成结构化的车辆记录。车辆检测的结果使用标准指标(精确度、召回率和mAP@0.5)进行报告,而车牌检测的结果则基于IoU = 0.3进行报告,以反映车牌作为小物体的特性以及下游OCR的可用性。在评估的版本中,YOLOv8在各个模块之间提供了最平衡的整体性能,同时在记录的交通视频上保持了大约18-22 FPS的实时等效吞吐量,具体取决于场景的复杂性。我们强调了模块级别的评估和运行时基准测试;一旦基于轨迹的真实数据变得可用,针对独特车辆的实例级端到端识别将被定义为未来的工作。

1. 引言
历史上,对高效移动性的追求推动了交通系统的不断进化。从最早的形态开始,移动性优化促使了各种车辆的创造,从个人汽车到大规模的公共交通系统。这些车辆在形状、大小和颜色上都有所不同,这使得它们的自动检测和识别成为一项复杂的任务。计算机视觉和机器学习的最新进展使得这些挑战得到了更准确的解决,特别是通过车辆检测和分类方法。准确的车辆检测具有许多应用,包括跟踪、分类和交通监控[1]。深度学习方法,尤其是卷积神经网络(CNN),在图像分析中证明了其高效性,因为它们受到人类视觉系统的启发,并且在提取视觉特征方面表现出色。多年来,检测技术已经从传统的手工特征发展到能够在多种条件下识别车辆和车牌的先进框架,例如天气变化、照明变化和低图像分辨率。早期的方法包括R-CNN、Fast R-CNN以及结合多种策略的混合方法。YOLO[2]因其能够在单次前向传递中完成定位和分类而被广泛用于实时对象检测。在这项工作中,我们重点关注YOLOv8[3]、YOLOv9[4]和YOLOv10[5],因为它们在实际部署中在准确性和推理速度之间取得了良好的平衡,并且我们在所有流程阶段使用统一的协议对它们进行了评估[6]。尽管有这些进步,但由于现实世界环境中车辆的大小、方向、照明和分辨率的变异性,车辆检测仍然具有挑战性[7]。车牌识别增加了另一个复杂性层次,因为车牌在大小、格式和分辨率上都有所不同,这使得小物体检测变得至关重要[8]。许多现有的研究都是单独解决这些任务的,要么专注于车牌识别,要么专注于车辆颜色/品牌检测。在复杂场景中,报告的检测率通常低于85%[7,8],这突显了需要一个集成且健壮的框架。

2. 相关工作
智能交通系统(ITS)中的车辆分析通常结合了三个组成部分:(i)车辆检测、(ii)属性识别(例如,颜色和品牌/型号)以及(iii)车牌识别(LPR)。虽然早期的解决方案依赖于手工制作的特征和经典分类器,但当前的先进系统主要由深度学习检测器和OCR驱动的流程所主导。

3. 材料与方法
本节详细介绍了所提出系统的 methodology。首先,我们介绍了整体架构,然后描述了每个处理阶段,重点介绍了卷积神经网络(CNN)。我们还提供了关于数据集、软件、实现细节以及用于评估系统性能的评估指标的信息。

4. 研究问题与评估目标
本研究由两个实际研究问题指导:
RQ1. 在现实世界视频的变异性(照明变化、遮挡和运动模糊)下,一个统一的多阶段流程(车辆 → 关注区域 → 属性 → 车牌 → OCR)能否可靠地生成多属性车辆记录?
RQ2. 面向小物体的检测设置如何影响记录的交通视频中下游OCR的车牌定位可用性?
为了解决这些问题,我们为每个阶段(检测、分类、OCR)以及整个流程报告了模块级别的指标和运行时分析。一旦所有属性都有完整的端到端真实数据,我们将定义消融比较(仅车牌和部分属性流程)作为未来的工作。

5. 新颖性与贡献
(1)一种模块化的多属性车辆分析流程,可以从不受限制的交通场景中生成统一的车辆记录(颜色 + 品牌/子型号 + 车牌文本)。
(2)一种跨YOLO版本(v8/v9/v10)的一致性基准测试协议,报告每个阶段的模块级别指标和运行时性能,包括在记录的交通视频上的端到端吞吐量。
(3)一种注重隐私的数据使用声明和可重复性细节(数据集结构、注释规则、分割、软件版本)。我们根据第一阶段生成的车辆感兴趣区域(ROIs)创建了一个带有颜色标签的数据集。该数据集包含了光照(白天/夜晚)、视角和背景环境的变化,以提高模型的鲁棒性。通过数据集的筛选和标准增强处理,改善了类别平衡,减少了对于常见颜色的偏见。

在推理过程中,将训练好的分类器应用于每个车辆ROI。限制输入范围为裁剪后的ROI可以减少背景干扰,并在杂乱的场景中提高颜色预测的稳定性。

识别出的颜色与其他元数据一起存储,以便后续与车辆品牌、子型号和车牌信息进行整合。

3.4. 车辆品牌和子型号识别
如今,车辆的身份是一系列特征的一部分;在本小节中,重点关注确定车辆的品牌和子型号。品牌指的是制造商的名称,而子型号是指该生产线衍生出的具有独特规格的汽车系列。因此,一个品牌可能包含多个子型号,具体取决于其目标市场。需要指出的是,由于法规或营销策略的原因,某些品牌可能会在特定国家限制其子型号的销售。这直接影响了被识别的品牌和子型号。本研究旨在探索三种品牌下的六个子型号的检测。选择这些子型号是因为它们在我们记录的墨西哥城交通场景中较为常见,并且能够提供细粒度识别的代表性变化。本研究的对象子型号包括Nissan_Versa、Nissan_Tiida、Chevrolet_Aveo、Volkswagen_Seat、Volkswagen_Vento和Volkswagen_Jetta。

目前的挑战在于手动搜索和标记选定的子型号,目的是为每个类别创建一个平衡的数据库。这将使卷积神经网络(CNN)能够关联诸如前灯形状、格栅、标志、车辆形态等视觉特征。解决这一问题的总体策略如下:

数据集准备和训练:为选定的类别编制了一个带有标签的车辆ROI数据集,旨在保持各类别之间的平衡覆盖。训练数据包括视角(后部/侧面)、光照(白天/夜晚)和车辆姿态的变化。分类器学习了有助于细粒度识别的视觉线索(例如后灯形状、后备箱几何形状、标志位置和车身比例)。

训练好的模型被应用于每个检测到的车辆的裁剪ROI,仅关注相关区域并减少背景干扰。

预测出的品牌和子型号属性与颜色和车牌结果一起存储,形成统一的车辆记录。

3.5. 车牌检测与识别
这一阶段通过检测和识别车牌字符提供了强大的车辆标识能力。该过程包括两个阶段:(a) 车牌检测和预处理;(b) 使用光学字符识别(OCR)进行字符识别。车牌位于原始车辆检测结果中,随后裁剪车牌区域以增强清晰度,并使用PaddleOCR提取字母数字信息。

步骤1:数据集和训练。在多种条件下(光照、视角、车牌类型和分辨率)手动标注了一个车牌数据集。训练了一个基于YOLO的检测器,通过学习特定于车牌的线索(如矩形边框、高对比度字符区域和边缘图案)来定位车牌。

步骤2:检测和裁剪。在推理过程中,训练好的模型生成了定位车牌的边界框。然后裁剪ROI以隔离车牌(图3)。

步骤3:预处理流程。应用预处理来提高OCR在模糊、反射和低光照条件下的鲁棒性。预处理流程包括:使用中值和高斯滤波减少噪声;转换为灰度图像以简化强度结构;自适应阈值处理以增强字符与背景的对比度(图4);以及基于轮廓的滤波来抑制非字符区域。

步骤4:使用PaddleOCR [16](工作流程如图5所示),采用两阶段设置(文本检测+文本识别)从预处理后的车牌ROI中提取字母数字字符串,使用默认的检测/识别流程处理拉丁字母数字字符。返回空字符串或不稳定字符串的OCR结果被丢弃。然后应用基于规则的后期处理来减少常见混淆(例如‘0’ ? ‘O’,‘1’ ? ‘I’/‘l’),并验证最终字符串是否符合合理的字母数字格式。当有格式提示时,车牌被分类为本地车牌、外地车牌或出租车车牌。

3.6. 结果整合
最后阶段将所有模型的输出整合到一个结构化的数据库中。对于每个处理过的帧,系统存储检测到的车辆属性——颜色、品牌、子型号、车牌字符串和车牌类型——以及时间戳。使用MySQL关系数据库来支持高效的存储、索引和检索,以便后续的智能交通系统(ITS)应用。

处理和存储:每帧生成一条记录,包含:(i) 车辆记录ID,(ii) 识别出的车牌字符串,(iii) 车牌类型(例如本地/外地/出租车),(iv) 颜色,(v) 品牌/子型号,以及(vi) 处理日期和时间。

数据库设计:实现了一个中央表来整合所有车辆属性(表3),以实现高效的存储和检索。

自动化和查询:数据插入完全自动化,最小化人为错误并确保及时可用性。系统支持快速查询(例如,按时间检测到的车辆或按置信度级别过滤的车辆)。

维护工作包括删除重复数据、数据库索引和定期备份,以保持数据完整性。

3.7. 数据集
为了训练不同的YOLO模型,我们使用了在墨西哥城通过交通监控/监控摄像头(交叉路口和主干道)拍摄的记录交通场景构建了一个自定义数据集。该数据集包含:(i) 包含多辆车的完整场景图像;(ii) 从车辆检测中提取的裁剪ROI,用于颜色、品牌/子型号和车牌处理。由于涉及车牌信息的隐私问题,数据集有一定的限制。

图像分为两个层次组织:
- 完整场景:包含多辆车的全景视图(交叉路口、车道、交通流),具有自然变化,如阴影、反射、遮挡以及车辆与摄像头之间的距离变化(图7)。
- 车辆ROI:从完整场景中裁剪出的车辆区域,用于训练颜色分类、品牌/子型号识别和车牌检测(图8)。

该数据集适合反映现实世界的多样性,使模型对日光/阴影光照变化、眩光和反射具有更强的鲁棒性。此外,数据集还包括不同距离和分辨率的情况,以及高交通密度和部分可见性(场景中可能出现未标记的遮挡情况)和相似子型号之间的细微差异。

数据获取和范围:图像来自墨西哥城十个交叉路口/主干道收集的交通视频。以固定采样间隔提取帧并存储为RGB图像。数据集包含了时间(白天/夜晚)、光照、交通密度和视角(后部/侧面)的变化,特别强调后视图以便于车牌的可见性。

由于同一辆车可能出现在连续的多帧中,数据集包含同一物理车辆的重复实例。在本手稿中,注释是在图像实例级别(每帧/裁剪)进行的。未来的扩展将添加基于实例的车辆身份(基于轨迹)信息,以报告每个独特车辆的端到端识别率。

完整的数据库包含来自墨西哥城10个不同交叉路口和主干道的19,894张图像。然而,经过仔细的选择过程,避免了由于拍摄间隔和交通繁忙导致图像高度相似的问题。为了在每个阶段平衡提出的类别,并训练每个提出的CNN,选择了具有特定特征和数量的图像,详见表4。

表4显示了用于每个阶段的特定任务数据集组成和训练/验证分割(车辆检测、颜色、品牌/子型号和车牌检测)。

注释协议:所有数据集均使用MakeSense.ai进行手动标注。边界框按照一致的规则紧密围绕目标对象绘制。对于车辆检测,包含了整个可见的车辆主体。对于车牌检测,标注了可见的车牌矩形区域。被遮挡的对象未进行标注;部分遮挡或轮廓不清晰的车辆或车牌被排除在标注之外。

注释以YOLO格式导出(class_id, x_center, y_center, width, height按图像宽度/高度标准化)。检测数据集使用单一类别标签(“车辆”和“车牌”),而属性识别使用多类别标签(颜色:11个类别;品牌/子型号:6个类别)。

所有特定任务的数据集都被分割为训练和验证子集,如表4所示。指标在模块级别报告(车辆检测、车牌检测、颜色、品牌/子型号、OCR),使用相应的标注子集。由于数据集是在图像实例级别(每帧/裁剪)组织的,因此在连续帧中可能会出现同一物理车辆的重复出现。

3.8. 实验设计和基准
为了回答第1节中提出的研究问题,我们在两个层面评估了系统:(i) 每个模块的任务级性能(车辆检测、属性分类、车牌检测、OCR);(ii) 在记录的交通视频上的整体流程吞吐量;端到端识别所有独特车辆的工作留待未来基于轨迹的真实数据完成后再进行。

我们将完整流程与以下简化基准进行比较(消融实验),在相同的协议和测试分割下进行评估:
- B1(仅车牌):车牌检测 + OCR。
- B2(属性 + 车牌,无颜色):品牌/子型号 + 车牌检测 + OCR。
- B3(属性 + 车牌,无品牌/子型号):颜色 + 车牌检测 + OCR。

定义了以下消融实验,以便在所有属性都有完整的真实数据后进行端到端验证:(B1) 仅车牌,(B2) 品牌/子型号 + 车牌(无颜色),以及(B3) 颜色 + 车牌(无品牌/子型号)。在本手稿中,我们报告了模块级性能和运行时间,并讨论了这些组件如何支持真实交通视频中的多阶段流程的可行性。

3.9. 评估指标
对于车辆检测,我们报告了标准检测指标(精确度、召回率和mAP@0.5)。对于车牌,由于车牌是小对象,且后续需要OCR处理,我们报告了在IoU = 0.3时的检测性能,即使轻微的定位偏移也能产生正确的文本识别结果。对于属性分类(颜色和品牌/子型号),我们报告了准确率和宏观F1分数。对于OCR,我们报告了字符级准确率和完全匹配的车牌准确率。

端到端车辆识别率(E2E-VIR):只有当预测的元组(颜色、品牌/子型号、车牌字符串)与同一车辆实例的真实数据匹配时,才认为车辆被正确识别。这个指标是为未来完成完整实例级注释后的端到端评估定义的。

软件和可用性:Ultralytics YOLO通过官方Ultralytics仓库使用(https://github.com/ultralytics/ultralytics;访问日期:2024年10月10日)。OCR使用PaddleOCR通过官方仓库执行(https://github.com/PaddlePaddle/PaddleOCR;访问日期:2024年10月25日)。手动注释使用MakeSense.ai完成(https://www.makesense.ai/;访问日期:2024年10月30日)。关系数据库使用MySQL实现(https://www.mysql.com;访问日期:2024年11月20日)。

4. 结果
本节展示了流程每个阶段的定性示例和定量指标——车辆检测、颜色、品牌/子型号和车牌OCR——突出了在不同场景下的性能,并报告了精确度、召回率和混淆矩阵,以便在各个阶段进行一致的模块级评估,并为整个流程提供总体吞吐量基准。

测量了每种YOLO配置的推理速度,以验证其实时适用性。在所有模型中,包括车辆检测、颜色识别、品牌/子型号分类和车牌OCR的完整多阶段流程的总体处理时间在每帧42到58毫秒之间,具体取决于场景复杂性和模型大小。基于YOLOv8的配置平均保持了18-22 FPS的帧率,而YOLOv9和YOLOv10变体达到了14-17 FPS。视频被用作多样化的帧源和吞吐量测量;当前版本没有利用时间融合/跟踪功能,这被认为是未来的工作内容。

对于车辆检测,我们报告了精确度、召回率和mAP@0.5。对于车牌检测,我们报告了AP@0.3/mAP@0.3,以反映小物体检测和OCR的可用性,这些指标是使用标准的0–1召回率积分(101点插值)计算得出的。对于分类任务(颜色;品牌和子模型),我们报告了top-1准确率、宏观精确度、宏观召回率和宏观F1分数,以及混淆矩阵。除非另有说明,否则推理阈值为置信度=0.25和NMS IoU=0.45。在评估中,我们使用mAP@0.5来衡量车辆检测的准确性,使用AP/mAP@0.3来衡量车牌检测的准确性,以反映小物体/OCR的可用性。

验证重点:由于并非所有样本都具备完整的端到端真实数据(颜色+品牌/子模型+每个独特车辆实例的车牌字符串),当前研究重点关注:(i)车辆检测、车牌检测、颜色识别、品牌/子模型识别和OCR的模块级性能;(ii)在记录的交通视频中每个阶段的运行时间分析以及整个流程的吞吐量;(iii)在真实世界场景中生成多属性车辆记录的定性证据。第3.8节中定义的消融比较将作为未来工作,在完成完整的实例级注释后进行。

4.1. 车辆检测模型
第一个检测器是在2383张车辆图像的数据集上训练的,这些图像是在不同的交通场景和照明条件下收集的。数据集被分为63%用于训练,37%用于验证,以便早期监控性能和超参数调整。第二阶段的训练应用了迁移学习,使用了额外的2423张图像数据集,重新使用预训练的权重来加速收敛并提高泛化能力。在这个阶段,数据被分为80%用于训练,20%用于验证,优先处理新示例,同时保留足够的验证样本来控制过拟合。

在两个阶段中——总共大约11,000次训练和验证迭代——采用的策略减少了总体训练时间,减轻了过拟合,并在将检测器集成到完整的多阶段流程之前稳定了性能。这一步为后续的识别任务奠定了坚实的基础,确保车辆检测作为多属性识别系统的可靠基线。

4.1.1. 车辆检测训练指标
对于车辆检测任务,在实验测试后为YOLO模型的CNN提出的超参数,以及考虑到的最佳性能,如表5所示。表5列出了YOLOv8m、YOLOv9m和YOLOv10m(包括迁移学习配置)中用于车辆检测的训练超参数。背景处理和未标记的车辆:在不受限制的交通场景中,并非所有出现在帧中的车辆都被标记。这可能会夸大背景与车辆的混淆,因为未标记的车辆在评估期间可能被计为背景。因此,车辆检测指标是基于表4中描述的经过筛选的标记子集报告的,我们在解释背景错误时将未标记车辆的影响视为一个限制因素。

车辆检测模型的性能通过混淆矩阵和训练曲线(分类损失、精确度和召回率)进行评估,从而全面评估准确性和学习动态。图9、图10和图11分别总结了YOLOv8m、YOLOv9m和YOLOv10m的检测性能。图9显示了YOLOv8m在验证集上的车辆检测混淆矩阵。图10显示了YOLOv9m在验证集上的车辆检测混淆矩阵。图11显示了YOLOv10m在验证集上的车辆检测混淆矩阵。对于YOLOv8m(图9),模型的车辆检测精确率为91%。验证集中的背景区域被系统地预测为车辆(100%),这可能是由于背景区域中存在未标记的车辆。此外,有9%的车辆被错误地分类为背景,导致偶尔出现假阴性。

对于YOLOv9m(图10),精确率达到92%,是三个版本中最高的。背景区域再次被完全错误地分类为车辆,有8%的车辆被遗漏,表明假阴性率略低于YOLOv8m。对于YOLOv10m(图11),精确率为90%。所有背景区域都被错误地标记为车辆,同时有10%的车辆被错误地分类为背景,表明对不利照明的敏感度较高。

学习动态在图12、图13和图14中详细说明,每个子图在下面都有明确引用,以确保清晰。图12显示了YOLOv8m的车辆检测训练曲线(x轴:周期):(a)分类损失;(b)精确度;(c)召回率。图13显示了YOLOv9m的车辆检测训练曲线(x轴:周期):(a)分类损失;(b)精确度;(c)召回率。图14显示了YOLOv10m的车辆检测训练曲线(x轴:周期):(a)分类损失;(b)精确度;(c)召回率。YOLOv8m(图12):图12a显示分类损失稳步下降,确认了稳定的收敛,没有突然波动。图12b显示精确度从0.78上升到并稳定在0.86左右。图12c显示召回率从0.60上升到大约0.90,表明具有较高的敏感性。

YOLOv9m(图13):图13a显示训练过程中损失持续减少。图13b显示精确度从0.76提高到大约0.85。图13c显示召回率从0.63增加到0.89,表明比YOLOv8m具有稍高的敏感性。YOLOv10m(图14):图14a显示初始损失较高,相对于其他版本收敛较慢。图14b显示精确度从0.74开始,在大约70个周期后稳定在0.85左右。图14c显示召回率从0.57增加到0.85,表明尽管适应较慢,但敏感性仍然可以接受。

在不同版本中,车辆检测性能都很高(mAP@0.5):YOLOv8m = 0.91,YOLOv9m = 0.92,YOLOv10m = 0.90。YOLOv9m实现了最佳的精确度-召回率平衡,而YOLOv8m显示出更平稳的收敛和更强的泛化能力。一个一致的局限性是背景被标记为“车辆”;添加仅包含背景的图像预计可以减少这些假阳性。

4.1.2. 车辆检测预测
完成训练过程后,YOLOv8m检测器在未见数据上进行了评估。图15展示了代表性的示例。模型一致地以超过80%的置信度识别了可见的车辆,证实了其在训练集之外的泛化能力。图15使用YOLOv8m的定性车辆检测示例:(a)后部和侧面视图;(b)广角场景和部分可见的车辆。在图15a中,后部和侧面视图被正确检测到,包括部分遮挡和交通密集的情况,表明模型捕捉到了在常见视角下保持稳定的结构特征(轮廓和线条)。在图15b中,更具挑战性的场景——广角视角、移动的车辆和部分可见的目标——也被可靠地处理;预测的边界框与真实值非常吻合,展示了在真实世界条件下的鲁棒性。

这些预测证实了在不同视角和环境下的可靠检测性能。这个强大的基线使得下游阶段——颜色、品牌、子模型和车牌识别——能够在高质量感兴趣的区域上运行,从而加强了整个多阶段流程。

4.2. 车辆颜色识别模型
流程的第二阶段涉及车辆颜色的分类。该模型在2245张图像的数据集上进行了训练,这些图像按颜色仔细标记,并在各种条件下收集,以确保鲁棒性。图像是在阳光、阴天和夜间照明下,从多个视角(正面、侧面和后面)以及不同的环境(如城市街道、停车场和大道)中捕获的。数据集涵盖了以下颜色类别:黄色、蓝色、白色、棕色、栗色、橙色、黑色、银色、红色、绿色和出租车。为了监控模型的泛化能力,数据集被分为78%用于训练,22%用于验证。训练进行了150-170个周期,并进行了迭代验证,允许逐渐提高分类准确性和对照明和对比度变化的鲁棒性。

4.2.1. 颜色识别训练指标
为了确定之前检测到的车辆的颜色,在实验测试后为YOLO模型的CNN提出的超参数,以及考虑到的最佳性能,如表6所示。表6列出了YOLOv8m、YOLOv9m和YOLOv10m中用于车辆颜色识别的训练超参数。为了公平比较,这项任务对YOLOv8m、YOLOv9m和YOLOv10m使用了相同的超参数配置(表6)。

模型使用混淆矩阵和训练曲线来评估分类损失、精确度和召回率。图16、图17和图18分别展示了YOLOv8m、YOLOv9m和YOLOv10m的混淆矩阵,而图19、图20和图21展示了它们的训练动态。图16显示了YOLOv8m在验证集上的车辆颜色识别混淆矩阵。图17显示了YOLOv9m在验证集上的车辆颜色识别混淆矩阵。图18显示了YOLOv10m在验证集上的车辆颜色识别混淆矩阵。图19显示了YOLOv8m的车辆颜色识别训练曲线(x轴:周期):(a)分类损失;(b)精确度;(c)召回率。图20显示了YOLOv9m的车辆颜色识别训练曲线(x轴:周期):(a)分类损失;(b)精确度;(c)召回率。图21显示了YOLOv10m的车辆颜色识别训练曲线(x轴:周期):(a)分类损失;(b)精确度;(c)召回率。YOLOv8m(图16):对于黄色(93%)、黑色(92%)和出租车(95%)实现了高准确率。蓝色(85%)、白色(90%)和橙色(85%)获得了中等结果,其中误分类通常与照明变化和反射有关。对于栗色(71%)和红色(81%),由于色调相似性,性能较低。

YOLOv9m(图17):对于银色(95%)和出租车(98%)达到了出色的性能。黑色(87%)、黄色(90%)、蓝色(90%)、白色(85%)和绿色(81%)获得了中等精确度。最常见的混淆发生在栗色(62%)和橙色(79%),同样是由于色调的变化。

YOLOv10m(图18):对于黄色(95%)和出租车(95%)实现了高准确率。白色(90%)、银色(90%)、绿色(86%)和蓝色(85%)获得了中等值。对于栗色(64%)和橙色(72%)以及红色(74%),观察到了较低的准确率,这些颜色之间的混淆较为频繁。每个模型的学习动态在图19、图20和图21中展示。

YOLOv8m(图19):图19a显示分类损失持续减少,表明优化稳定。图19b显示精确度从0.78开始并稳定在0.86左右。图19c显示召回率稳步上升并稳定在0.89左右,表明精确度和召回率表现平衡。YOLOv9m(图20):图20a显示分类损失稳步减少,起始值为5。图20b显示精确度上升并稳定在大约0.82左右,略低于YOLOv8m。图20c显示召回率稳定在0.80左右,表明在具有中等变化的情况下具有适当的敏感性。YOLOv10m(图21):图21a显示初始分类损失较高(约15),随后逐渐减少,表明适应较慢。图21b显示精确度收敛在0.78左右,倾向于生成更多的假阳性。图21c显示召回率稳定在0.78左右,表明在具有挑战性的照明或色调相似性下敏感性较低。

YOLOv8m在精确度和召回率之间取得了最佳平衡,而YOLOv9m的精确度略低但表现一致。YOLOv10m的收敛较慢,特别是对于色调重叠较高的颜色(如栗色、红色和棕色)的敏感性较低。这些结果突显了数据集多样性在应对照明和反射变化对颜色分类影响的重要性。

4.2.2. 颜色识别预测
图22展示了代表性的预测,其中YOLOv8m模型在不同环境中一致地识别了车辆颜色。车辆在不同的照明条件下被正确分类,包括日光、阴天和夜间照明,以及从多个视角。这些结果证实了模型能够有效地泛化到真实世界场景,其中照明和背景对比度变化显著。

4.3. 品牌和子模型识别模型
流程的第三阶段专注于车辆品牌和子模型的识别。对于这项任务,YOLOv8m、YOLOv9m和YOLOv10m在相同的超参数配置下进行了训练和评估,以确保公平比较。数据集包括8593张标记图像,分为常见的车辆类别(例如,尼桑、雪佛兰、大众)。分配比例为86%用于训练,14%用于验证,确保既有足够的类别变化暴露,也有足够的样本进行泛化测试。图像包括了自然和人工照明、多种捕获角度以及运动中的车辆和停放的车辆等不同条件。

模型训练了大约100个周期,逐步优化权重以处理照明变化和部分遮挡的品牌标志等挑战性情况。保持所有类别的平衡表示,以最小化类别偏差。

4.3.1. 品牌/子模型识别训练指标
这一阶段的目标是检测之前检测到的车辆的品牌和子模型。表7显示了在实验测试后为YOLO模型版本的CNN提出的训练超参数,以及考虑到的最佳性能。表7。用于YOLOv8m、YOLOv9m和YOLOv10m中车型和子模型识别的训练超参数。在YOLOv8m、YOLOv9m和YOLOv10m中,相同的训练超参数被应用于车型/子模型识别(表7)。性能通过混淆矩阵和训练曲线进行评估。图23、图24和图25展示了YOLOv8m、YOLOv9m和YOLOv10m的混淆矩阵。图23:使用YOLOv8m在验证集上进行车型和子模型识别的混淆矩阵。图24:使用YOLOv9m在验证集上进行车型和子模型识别的混淆矩阵。图25:使用YOLOv10m在验证集上进行车型和子模型识别的混淆矩阵。YOLOv8m(图23):对Nissan Versa的识别准确率为96%,对Nissan Tiida的识别准确率为99%,显示出较强的车型内部区分能力。Chevrolet Aveo的识别也是一致的,而Volkswagen系列车型(Seat、Vento、Jetta)的识别准确率为94-96%,由于设计相似性,Vento和Jetta之间存在一些混淆。YOLOv9m(图24):准确率略有提高,对Nissan Versa的识别准确率为97%,对Nissan Tiida的识别准确率为98%,对Chevrolet Aveo的识别准确率为98%。Volkswagen车型的识别准确率为96%,但Vento和Jetta之间仍然存在混淆。YOLOv10m(图25):对Nissan Versa的识别准确率为97%,对Nissan Tiida的识别准确率为98%,对Chevrolet Aveo的识别准确率为97%。Volkswagen车型的识别准确率为95-98%,在特定光照或角度下Vento和Jetta之间仍会出现混淆。每个模型的学习动态分别显示在图26、图27和图28中。图26:使用YOLOv8m进行车型和子模型识别的训练曲线(x轴:训练周期):(a) 分类损失;(b) 精确度;(c) 召回率。图27:使用YOLOv9m进行车型和子模型识别的训练曲线(x轴:训练周期):(a) 分类损失;(b) 精确度;(c) 召回率。图28:使用YOLOv10m进行车型和子模型识别的训练曲线(x轴:训练周期):(a) 分类损失;(b) 精确度;(c) 召回率。YOLOv8m(图26):图26a显示分类损失稳步下降,反映了持续的优化。图26b显示精确度在20个周期后超过0.90,并在提前停止(70个周期)前保持稳定。图26c显示召回率在25个周期后超过0.90,表明性能平衡。YOLOv9m(图27):图27a显示损失从第5个周期开始减少,并在80个周期内平稳下降。图27b显示精确度在25个周期后接近1.0并保持稳定,反映了出色的区分能力。YOLOv10m(图28):图28a显示初始损失较高(17.5),但在78个周期内逐渐下降。图28b显示精确度逐步上升到1.0并保持稳定。图28c显示召回率也呈现类似趋势,稳定在1.0附近。所有三个模型在车型和子模型识别方面都实现了高准确率,其中YOLOv9m和YOLOv10m在召回率和精确度上略优于YOLOv8m。尽管如此,YOLOv8m显示出更平滑的收敛过程,并受益于提前停止,避免了过拟合。视觉上相似的车型(例如Volkswagen Vento和Jetta)之间的持续混淆突显了细粒度识别的挑战以及数据集多样性的重要性。4.3.2. 车型/子模型识别预测图29展示了代表性的输出结果。YOLOv8m能够准确分类来自常见和视觉上相似类别的车辆,正确区分Nissan Versa和Tiida、Chevrolet Aveo以及Volkswagen车型。即使在部分遮挡、光照变化和非标准视角下,预测结果也是一致的,证明了其强大的泛化能力。4.4. 车牌检测管道的第四阶段专注于车牌检测。为了提高鲁棒性,结合了两个数据集:第一个数据集包含从世界各地不同道路环境中收集的7324张车牌图像,第二个数据集包含1200个用于迁移学习的额外样本。这两个数据集分别分为80%的训练集和20%的验证集。选择YOLOv8x架构是因为它具有更多的参数,能够更好地检测小型物体(如车牌)。该模型与YOLOv9e和YOLOv10x进行了比较,以评估不同版本的性能。训练进行了多个周期,总共处理了约9300张图像,确保了不同条件的广泛覆盖:光照变化:强日光、夜间低光照和人工照明;角度多样性:正面、侧面和斜面拍摄;车牌多样性:各种格式、大小、颜色和字体。4.4.1. 车牌检测训练指标车辆车牌检测是本研究中用于车辆记录链接的主要标识符。表8显示了经过实验测试并考虑最佳性能后,用于训练YOLO模型CNN的超参数。表8:用于YOLOv8x、YOLOv9e和YOLOv10x(包括迁移学习配置)的车牌检测训练超参数。性能通过混淆矩阵和训练曲线进行评估。图30、图31和图32展示了YOLOv8x、YOLOv9e和YOLOv10x的混淆矩阵。图30:使用YOLOv8x在验证集上进行车牌检测的混淆矩阵。图31:使用YOLOv9e在验证集上进行车牌检测的混淆矩阵。图32:使用YOLOv10x在验证集上进行车牌检测的混淆矩阵。YOLOv8x(图30):正确检测到了89%的车牌。错误(11%)主要是由于不良光照、低分辨率或复杂角度造成的。偶尔会出现与视觉上相似物体(例如标志、标签)的混淆。YOLOv9e(图31):准确率为71%,表现中等。大约29%的车牌被遗漏或被归类为背景。该模型在低对比度或复杂背景下难以区分车牌。YOLOv10x(图32):准确率为61%,约有39%的车牌未被检测到或分类错误。虽然在某些条件下功能正常,但在具有挑战性的场景下(特别是在低光照下)性能下降。学习动态分别显示在图33、图34和图35中。图33:使用YOLOv8x进行车牌检测的训练曲线(x轴:训练周期):(a) 分类损失;(b) 精确度;(c) 召回率。图34:使用YOLOv9e进行车牌检测的训练曲线(x轴:训练周期):(a) 分类损失;(b) 精确度;(c) 召回率。图35:使用YOLOv10x进行车牌检测的训练曲线(x轴:训练周期):(a) 分类损失;(b) 精确度;(c) 召回率。YOLOv8x(图33):图33a显示分类损失稳步下降,表明收敛稳定。图33b显示精确度从0.75开始(由于迁移学习)并在0.85到0.90之间稳定。图33c显示召回率从0.60提高到约0.90,表明具有很强的敏感性。YOLOv9e(图34):图34a显示分类损失波动,有小峰值,从约1.3开始。图34b显示精确度从0.85开始但略有下降至0.81,显示出不一致性。图34c显示召回率在0.57到0.62之间波动,表明敏感性有限。YOLOv10x(图35):图35a显示初始损失较高(2.8),收敛不规则。图35b显示精确度从0.82开始但呈下降趋势,表明区分能力减弱。YOLOv8x提供了最可靠的车牌检测,AP@0.3 = 0.89。YOLOv9e和YOLOv10x的AP@0.3分别为0.71和0.61,在低光照和复杂背景下的变化较大。YOLOv8x中的迁移学习有助于更快收敛和稳定性提升。4.4.2. 车型/子模型识别使用YOLOv8x获得的代表性结果显示,该检测器在多种条件下都能稳定定位车牌,包括倾斜视角、移动中的车辆以及在不同光照下的车牌。预测显示了对部分遮挡和反射表面的鲁棒性,证实了YOLOv8x在现实世界应用中的有效泛化能力。4.5. 字符识别管道的最后一个阶段专注于从检测到的车牌中识别字母数字字符。为此任务使用了PaddleOCR,因为它具有模块化架构并在多语言光学字符识别任务中表现出色。为了提高准确性,实施了预处理流程以在OCR之前增强图像清晰度。4.5.1. 图像预处理预处理阶段旨在最大化字符可见性并减少背景噪声:灰度转换:通过去除颜色信息并保留强度值来简化图像复杂性;二值化:应用自适应阈值将图像转换为二进制格式,增强字符和车牌背景之间的对比度;降噪:应用中值和高斯滤波器来最小化反射和背景干扰;轮廓过滤:隔离字符区域以提高分割和识别精度。这一流程在处理诸如光照不足、反射、污垢或车牌部分遮挡等具有挑战性的条件下至关重要。4.5.2. OCR识别我们使用了PaddleOCR及其在第3.5节中描述的默认检测/识别设置;这里报告了观察到的OCR性能和典型的失败模式。处理后的图像被传递给PaddleOCR,它使用默认的文本检测和识别模块提取字母数字序列。然后应用第3.5节中描述的基于规则的后期处理来减少常见混淆(例如‘0’ ? ‘O’、‘1’ ? ‘I’/‘l’),并根据合理的字母数字格式验证输出。4.5.3. 结果如图37所示,PaddleOCR在标记的验证样本上,在不同的光照和视角下产生了稳定的车牌字符串。典型的失败模式与严重模糊、反光和低对比度字符有关。这些结果表明OCR性能强烈依赖于车牌ROI的质量和预处理,提取的字符串适合下游数据库集成。为了隐私考虑,示例中的车牌区域被屏蔽,识别出的字符串部分匿名化。4.6. 结果整合所有阶段的输出——车辆检测、颜色识别、车型和子模型分类、车牌检测以及字符识别——被整合到一个统一的数据库中。这种整合确保每辆车都由结构化的记录表示,从而实现高效的数据管理和检索。处理和存储:每个处理后的帧生成一条记录,包含:车辆记录ID(每帧/实例);识别出的车牌字符串;车牌类型(本地、外来或出租车);检测到的车辆颜色;识别的车型和子模型;指示处理日期和时间的时间戳。记录存储在MySQL关系数据库中,确保数据的一致性和快速查询。自动化和查询:数据插入完全自动化,以最小化人为干预和错误。系统支持快速查询,例如:检索特定时间窗口内检测到的所有车辆;按车牌类型或识别置信度进行过滤;识别重复记录以进行一致性检查。常规维护任务包括删除重复项、索引和备份,以确保数据的长期完整性。5. 讨论我们使用适合任务的指标评估了多阶段管道:对于车辆检测,我们报告了精确度、召回率和mAP(如第3.4节所定义),而对于车牌检测,由于车牌的小对象特性和下游OCR的可用性,我们报告了IoU = 0.3 (AP/mAP@0.3)。根据这一协议,YOLOv8在模块级别提供了最一致的平衡(车牌检测AP@0.3 = 0.89;颜色宏F1 = 0.88;车型和子模型准确率约为0.92),同时保持了稳定的吞吐量。YOLOv9在细粒度模型区分方面略有改进,但在车牌上的稳定性较差;YOLOv10对视角变化的容忍度更高,但收敛速度较慢。YOLOv8在训练指标(分类损失、精确度、召回率)方面实现了最稳定的收敛。它在车辆检测方面提供了高准确性,并且对特定颜色和车型的识别具有鲁棒性。然而,其性能对光照变化较为敏感,导致某些色调类别(如黑色、银色和酒红色)的误分类。YOLOv9通过区分视觉上相似的子模型(如Nissan Versa和Nissan Tiida)表现更好,展示了其细粒度识别的能力。尽管如此,精确度和召回率曲线显示出波动,表明模型对数据集中的类别不平衡和复杂性更为敏感。YOLOv10的整体精确度略低,但在具有挑战性的条件下(如倾斜视角和变化的光照)表现出韧性。其分类损失下降不规则,表明收敛速度较慢,需要更长时间或更精细的训练策略,特别是在车牌检测等小对象任务中。在车牌识别方面,性能差异明显:YOLOv8的准确率为89%,而YOLOv9和YOLOv10的准确率分别为71%和61%。这些结果证实,YOLOv8在与OCR结合使用时更适合小对象检测任务,提供了精确度和召回率之间的更好平衡。颜色识别结果突显了光照一致性的重要性。所有模型在对统一类别(黄色、出租车、黑色)的分类上都表现强劲,但在色调相似度高的颜色(红色与酒红色、银色与白色)上出现了混淆。这进一步强调了在训练数据集中包含多样化光照条件的重要性,以提高模型的鲁棒性。总体而言,YOLOv8成为最均衡的模型,它在精确度、召回率和计算效率方面都具有竞争力。YOLOv9和YOLOv10在细粒度识别和适应复杂视角方面表现出特定优势,但代价是稳定性和小物体检测的准确性有所下降。迁移学习、提前停止和数据集增强技术的整合对于减轻过拟合和加速所有实验的收敛至关重要。这些技术在车牌检测中尤为有效,因为车牌的分辨率和环境条件都是主要挑战。

6. 结论
本研究提出了一个五阶段的模块化流程,将基于YOLO的检测器/分类器与OCR结合,用于多属性车辆分析。YOLOv8在流程中的模块级性能最为均衡,包括强大的车牌检测能力(AP@0.3 = 0.89)、稳健的颜色分类(macro-F1 = 0.88)以及车型/子模型识别(准确率约为0.92)。整个流程(包括OCR)在记录的交通视频上的处理速度大约为18–22 FPS,具体取决于场景的复杂性。
在测试的模型中,YOLOv8的表现最为均衡,其在车辆检测和车型识别方面的准确率超过90%,并且在车牌识别方面的表现也最高(89%),优于YOLOv9(71%)和YOLOv10(61%)。YOLOv9在区分密切相关的子模型方面表现出色,而YOLOv10在倾斜视角和光线不足等具有挑战性的场景中表现出较强的适应性,尽管其收敛性稍不稳定。
实验还显示了迁移学习、提前停止和数据集增强的重要性,这些技术有助于减少过拟合并提升性能,尤其是在小物体检测方面。训练时间受到硬件限制的影响:YOLOv10在GTX 2070 GPU上的运行时间明显长于YOLOv8和YOLOv9,后两者实现了更快且更稳定的收敛。
在推理性能方面,YOLOv8m的延迟最低(约22毫秒/帧),其次是YOLOv9m(约29毫秒/帧)和YOLOv10m(约32毫秒/帧)。整个流程(包括OCR处理)的每帧总推理时间约为45–55毫秒,证明了其在实时应用(如交通监控、交通组成分析、事件分析支持和移动性管理)中的可行性。
证据表明,YOLOv8是实际部署的最合适候选者,它在鲁棒性、准确性和计算效率之间取得了平衡。未来的研究可以关注使用合成数据扩展数据集、探索集成策略,以及整合基于Transformer的架构,以在不受控制的环境条件下进一步提升性能。

7. 未来工作
还有几个方向可以扩展这项研究。最紧迫的步骤之一是增加训练数据集的规模和多样性。纳入在恶劣条件下拍摄的额外图像(如雨天、雾天、夜间照明或高车辆密度)将提高模型的鲁棒性,并减少类别不平衡的影响。合成数据生成也可以作为一种补充策略,以丰富代表性不足的类别。
另一个有前景的方向是使用集成模型,将不同的YOLO版本或互补架构结合起来,利用它们各自的优点。例如,YOLOv8可以提供稳定的车牌检测能力,而YOLOv9或YOLOv10可以贡献于车型和子模型的细粒度分类。
同时,基于Transformer的视觉模型的整合提供了一个捕捉全局上下文和长距离依赖关系的机会,这可能有助于解决颜色识别和区分视觉上相似的车辆类别时遇到的问题。
最后,应进一步研究实时部署。针对嵌入式硬件或边缘设备的推理优化将使系统适用于交通监控、移动性分析和城市安全应用等场景。除了技术性能外,未来的工作还应考虑可扩展性、隐私以及识别系统与现有智能交通基础设施的互操作性等方面。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号