在我国城市与乡村的大街小巷,电动自行车凭借轻便、快捷、经济的优势,成为大众出行的热门选择。然而,与之相伴的是电动自行车引发的交通事故数量居高不下,给社会和家庭蒙上了沉重的阴影。其中,单人电动车违规载人现象尤为突出,由于座位较短,载人骑行极大地增加了安全隐患,成为交通管理的一大难题。
传统监管:力不从心的困境
长期以来,电动自行车交通监管主要依赖交警现场执法。但这种方式存在明显局限性。交警的精力与时间有限,面对广阔的交通区域和庞大的电动自行车数量,难以做到全面覆盖与实时监管。而且,交警工作受时长和天气等因素制约,无法实现全天候、及时有效的管理。在早晚高峰时段,车流量大、路况复杂,违规行为频发,交警往往应接不暇,难以对每一起违规行为及时纠正,导致事故隐患长期存在。
科技赋能:无人机与 AI 的崛起
随着智能化技术的飞速发展,AI 技术正广泛应用于传统行业,为提升效率和安全性注入新动力。在电动自行车交通监管领域,无人机技术的出现为解决传统监管难题带来了新希望。无人机具有机动性强、覆盖范围广、成本低等诸多优点,能够实现对指定区域的自动巡航和实时监控。当 AI 技术与无人机相结合,更是为电动自行车交通管理带来了革命性的变化。
无人机凭借其便捷、机动性强的特性,可在指定区域内自动巡航,实时采集交通数据。这些数据通过众包平台进行高质量标注处理后,成为构建场景化检测识别模型的宝贵资源。基于这些模型,系统能够精准识别电动自行车的违规行为,如违规载人、闯红灯、逆行等。与传统监管方式相比,这种基于无人机与 AI 的监管模式具有更高的效率和准确性。
高效监管:精准预警与快速处理
借助无人机的快速机动巡航能力,可高频次地对事故易发区域进行巡检。一旦发现电动自行车违规载人等行为,系统能立即发送预警信息到片区管理人员处。管理人员收到信息后,可迅速赶赴现场进行处理,实现高效精准作业。此外,无人机与 AI 的结合还能为交通管理部门提供全面的数据分析。通过对大量交通数据的挖掘和分析,管理部门可以了解电动自行车违规行为的分布规律和趋势,有针对性地制定交通管理策略和宣传教育方案。
本文基于此背景,从实验性质角度探索开发构建智能化的检测识别系统。首先看下实例效果:

接下来看下实例数据:

Ultralytics 项目已迭代至 YOLOv11 版本。官方的项目在 GitHub 上维护,如下所示:

YOLO11 是 Ultralytics YOLO 系列实时目标检测器的次新版本,以其尖端的准确性、速度和效率重新定义了可能性。基于之前 YOLO 版本的显著进步,YOLO11 在架构和训练方法上引入了重大改进,使其成为广泛计算机视觉任务的多功能选择。
【主要特点】
增强的特征提取:YOLO11 采用了改进的骨干和颈部架构,增强了特征提取能力,以实现更精确的目标检测和复杂任务的性能。 优化的效率和速度:YOLO11 引入了精炼的架构设计和优化的训练管道,提供更快的处理速度,并在准确性和性能之间保持最佳平衡。 更少的参数实现更高的准确性:通过模型设计的进步,YOLO11m 在 COCO 数据集上实现了更高的平均精度(mAP),同时比 YOLOv8m 减少了 22% 的参数,使其在不影响准确性的情况下计算效率更高。 跨环境的适应性:YOLO11 可以无缝部署在各种环境中,包括边缘设备、云平台和支持 NVIDIA GPU 的系统,确保最大的灵活性。 广泛支持的任务:无论是目标检测、实例分割、图像分类、姿态估计还是定向目标检测(OBB),YOLO11 都设计用于应对多样化的计算机视觉挑战。
基础实例实现如下:
from ultralytics import YOLO
# n model = YOLO("weights/yolo11n.pt") results = model.train(data='data/self.yaml', epochs=100, device=0,batch=32,workers=0,name="yolov11n") print("results: ", results)
# s model = YOLO("weights/yolo11s.pt") results = model.train(data='data/self.yaml', epochs=100, device=0,batch=32,workers=0,name="yolov11s") print("results: ", results)
# m model = YOLO("weights/yolo11m.pt") results = model.train(data='data/self.yaml', epochs=100, device=0,batch=32,workers=0,name="yolov11m") print("results: ", results)
# l model = YOLO("weights/yolo11l.pt") results = model.train(data='data/self.yaml', epochs=100, device=0,batch=32,workers=0,name="yolov11l") print("results: ", results)
# x model = YOLO("weights/yolo11x.pt") results = model.train(data='data/self.yaml', epochs=100, device=0,batch=32,workers=0,name="yolov11x") print("results: ", results)
这里我们依次选择 n、s、m、l 和 x 五款不同参数量级的模型来进行开发。
这里给出 yolov11 的模型文件配置如下:
# Parameters nc: 1 # number of classes scales: # model compound scaling constants, i.e. 'model=yolo11n.yaml' will call yolo11.yaml with scale 'n'
# [depth, width, max_channels]
n: [0.50, 0.25, 1024] # summary: 319 layers, 2624080 parameters, 2624064 gradients, 6.6 GFLOPs
s: [0.50, 0.50, 1024] # summary: 319 layers, 9458752 parameters, 9458736 gradients, 21.7 GFLOPs
m: [0.50, 1.00, 512] # summary: 409 layers, 20114688 parameters, 20114672 gradients, 68.5 GFLOPs
l: [1.00, 1.00, 512] # summary: 631 layers, 25372160 parameters, 25372144 gradients, 87.6 GFLOPs
x: [1.00, 1.50, 512] # summary: 631 layers, 56966176 parameters, 56966160 gradients, 196.0 GFLOPs
# YOLO11n backbone
backbone:
# [from, repeats, module, args]
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
- [-1, 2, C3k2, [, , ]]
[, , , [, , ]]
[, , , [, , ]]
[, , , [, , ]]
[, , , [, ]]
[, , , [, , ]]
[, , , [, ]]
[, , , [, ]]
[, , , []]
[, , , [, , ]]
[[, ], , , []]
[, , , [, ]]
[, , , [, , ]]
[[, ], , , []]
[, , , [, ]]
[, , , [, , ]]
[[, ], , , []]
[, , , [, ]]
[, , , [, , ]]
[[, ], , , []]
[, , , [, ]]
[[, , ], , , []]
实验阶段我们保持了相同的参数设置,等待长时期的训练过程结束之后我们来对以上六款不同参数量级的模型进行纵向的对比分析。
【Precision 曲线】 精确率曲线是一种用于评估二分类模型在不同阈值下的精确率性能的可视化工具。它通过绘制不同阈值下的精确率和召回率之间的关系图来帮助我们了解模型在不同阈值下的表现。根据精确率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。

【Recall 曲线】 召回率曲线是一种用于评估二分类模型在不同阈值下的召回率性能的可视化工具。较高的召回率表示较少的漏报,而较高的精确率意味着较少的误报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。

【mAP0.5】 mAP0.5,也被称为 [email protected] 或 AP50,指的是当 Intersection over Union(IoU)阈值为 0.5 时的平均精度。当 mAP0.5 的值很高时,说明算法能够准确检测到物体的位置,并且将其与真实标注框的 IoU 值超过了阈值 0.5。

【mAP0.5:0.95】 mAP0.5:0.95,也被称为 mAP@[0.5:0.95] 或 AP@[0.5:0.95],表示在 IoU 阈值从 0.5 到 0.95 变化时,取各个阈值对应的 mAP 的平均值。这个指标考虑了多个 IoU 阈值下的平均精度,从而更全面、更准确地评估模型性能。

【loss 曲线】 在深度学习的训练过程中,loss 函数用于衡量模型预测结果与实际标签之间的差异。loss 曲线则是通过记录每个 epoch(或者迭代步数)的 loss 值,并将其以图形化的方式展现出来,以便我们更好地理解和分析模型的训练过程。

【F1 值曲线】 F1 值曲线是一种用于评估二分类模型在不同阈值下的性能的可视化工具。它通过绘制不同阈值下的精确率、召回率和 F1 分数的关系图来帮助我们理解模型的整体性能。F1 分数是精确率和召回率的调和平均值,它综合考虑了两者的性能指标。

综合五款不同参数量级模型的开发实验对比结果来看:5 款模型没有拉开较为明显的差距,综合对比考虑最终选择使用 yolov11m 来作为线上推理模型。
接下来看下 yolov11m 模型的详细情况。
【离线推理实例】

【Batch 实例】

【混淆矩阵】

【F1 值曲线】

【Precision 曲线】

【PR 曲线】

【Recall 曲线】

【训练可视化】

无人机与 AI 技术在电动自行车交通监管中的应用,为解决传统监管难题提供了有效途径,大大提高了监管效率和精准度。然而,要实现电动自行车交通的全面、有效管理,还需要政府、企业和社会各方的共同努力。相信在无人机与 AI 技术的助力下,电动自行车交通监管将迎来新的发展阶段,我们能够构建一个更加安全、有序、畅通的交通环境,让电动自行车真正成为人们出行的得力助手,而不是交通安全的隐患源头。


