随着无人机技术的飞速发展和AI智能化技术的日益成熟,无人机航拍已经成为众多领域的重要数据获取方式。然而,与传统的目标检测场景相比,无人机航拍所采集的图像面临着独特的挑战:图像中的目标往往较小,且由于拍摄距离、角度、天气等因素,目标的清晰度可能较低。这些特点使得传统的目标检测算法难以直接应用于无人机航拍场景。因此,研究实践无人机航拍场景下的小目标检测技术具有重要的理论意义和应用价值。
无人机在实际生产生活中发挥着越来越重要的作用,在一些极端条件或者是特定场景下受限于各种多发因素的影响,人工作业往往不便开展,这时候可以借助于无人机得天独厚的技术优势来进行处理,在未来的场景中无人机势必会发挥更加重要的作用。
关于无人机相关的场景在我们之前的博文也有一些比较早期的实践,感兴趣的话可以自行移步阅读即可:
《deepLabV3Plus实现无人机航拍目标分割识别系统》
《助力环保河道水质监测,基于yolov5全系列模型【n/s/m/l/x】开发构建不同参数量级的无人机航拍河道污染漂浮物船只目标检测识别系统,集成GradCAM对模型检测识别能力进行分析》
《基于YOLO开发构建红外场景下无人机航拍车辆实例分割检测识别分析系统》
《基于轻量级YOLOv5n/s/m三款模型开发构建基于无人机视角的高空红外目标检测识别分析系统,对比测试分析性能》
《助力森林火情烟雾检测预警,基于YOLOv5全系列模型[n/s/m/l/x]开发构建无人机航拍场景下的森林火情检测识别系统》
《助力森林火情预警检测,基于YOLOv7-tiny、YOLOv7和YOLOv7x开发构建无人机航拍场景下的森林火情检测是别预警系统》
《无人机助力电力设备螺母缺销智能检测识别,python基于YOLOv5开发构建电力设备螺母缺销小目标检测识别系统》
《无人机助力电力设备螺母缺销智能检测识别,python基于YOLOv7开发构建电力设备螺母缺销小目标检测识别系统》
《实践航拍小目标检测,基于轻量级YOLOv8n开发构建无人机航拍场景下的小目标检测识别分析系统》
《实践航拍小目标检测,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建无人机航拍场景下的小目标检测识别分析系统》
《实践航拍小目标检测,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建无人机航拍场景下的小目标检测识别分析系统》
《实践航拍小目标检测,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建无人机航拍场景下的小目标检测识别分析系统》
《实践无人机航拍小目标检测,基于YOLO家族最新端到端实时算法YOLOv10全系列【n/s/m/b/l/x】参数模型开发构建无人机航拍场景下的小目标检测识别分析系统》
传统的YOLOs系列的模型虽然提供了不同参数量级系列的模型,方便部署应用到不同的硬件平台上面去,但是实际在弱算力设备下还是捉襟见肘的,比如:对于树莓派来讲,那YOLOv5系列最为轻量级的n系列的模型也是非常吃力,但是那YOLOv5-lite系列的模型就可以比较轻松地跑起来,这印证了模型轻量化设计的必要性,本文采用的是正是经过轻量化设计了leYOLO模型,嵌入式端的轻量化设计+无人机能够碰撞出来什么样的火花?我们一起看试验下。
接下来看下实例数据集:
训练数据配置文件如下:
# Dataset
path: ./dataset
train:
- /dataset/images/train
val:
- /dataset/images/val
test:
- /dataset/images/test
# Classes
names:
0: pedestrian
1: people
2: bicycle
3: car
4: van
5: truck
6: tricycle
7: awningTricycle
8: bus
9: motor
深度神经网络中的计算效率对于目标检测至关重要,尤其是在新模型将速度优先于高效计算(FLOP)的情况下。这种演变在某种程度上已经落后于嵌入式和面向移动的AI对象检测应用程序。这里重点讨论了基于FLOP的高效目标检测计算的神经网络结构的设计选择,并提出了几种优化方法来提高基于YLO的模型的效率。
首先,介绍了一种基于反向瓶颈和信息瓶颈原理的有效主干扩展方法。其次,提出了快速金字塔结构网络(FPAN),旨在促进快速多尺度特征共享,同时减少计算资源。最后提出了一个解耦的网络中网络(DNiN)检测头的设计,以提供快速而轻量级的计算分类和回归任务。
在这些优化的基础上,利用更高效的主干,为对象检测和以YOLO为中心的模型(称为LeYOLO)提供了一种新的缩放范例。在各种资源限制下始终优于现有模型,实现了前所未有的准确性和失败率。值得注意的是,LeYOLO Small在COCO val上仅以4.5次失败(G)获得了38.2%的竞争性mAP分数,与最新最先进的YOLOv9微小模型相比,计算量减少了42%,同时实现了类似的精度。我们的新型模型系列实现了以前未达到的浮点精度比,提供了从超低神经网络配置(<1 GFLOP)到高效但要求苛刻的目标检测设置(>4 GFLOP)的可扩展性,对于0.66、1.47、2.53、4.51、5.8和8.4浮点(G),具有25.2、31.3、35.2、38.2、39.3和41 mAP。
Models | mAP | Image Size | FLOP (G) |
---|---|---|---|
LeYOLONano | 25.2 | 320 | 0.66 |
LeYOLONano | 31.3 | 480 | 1.47 |
LeYOLOSmall | 35.2 | 480 | 2.53 |
LeYOLOSmall | 38.2 | 640 | 4.51 |
LeYOLOMedium | 39.3 | 640 | 5.80 |
LeYOLOLarge | 41.0 | 768 | 8.40 |
一共提供了n、s、m和l四款不同参数量级的模型。
这里我们保持完全相同的实验参数设置来进行四款模型的开发训练,等待训练完成之后我们来整体进行各项指标的对比分析。
【Precision曲线】
精确率曲线(Precision Curve)是一种用于评估二分类模型在不同阈值下的精确率性能的可视化工具。它通过绘制不同阈值下的精确率和召回率之间的关系图来帮助我们了解模型在不同阈值下的表现。精确率(Precision)是指被正确预测为正例的样本数占所有预测为正例的样本数的比例。召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。
绘制精确率曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的精确率和召回率。
将每个阈值下的精确率和召回率绘制在同一个图表上,形成精确率曲线。
根据精确率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
通过观察精确率曲线,我们可以根据需求确定最佳的阈值,以平衡精确率和召回率。较高的精确率意味着较少的误报,而较高的召回率则表示较少的漏报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。
精确率曲线通常与召回率曲线(Recall Curve)一起使用,以提供更全面的分类器性能分析,并帮助评估和比较不同模型的性能。
【Recall曲线】
召回率曲线(Recall Curve)是一种用于评估二分类模型在不同阈值下的召回率性能的可视化工具。它通过绘制不同阈值下的召回率和对应的精确率之间的关系图来帮助我们了解模型在不同阈值下的表现。
召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。召回率也被称为灵敏度(Sensitivity)或真正例率(True Positive Rate)。
绘制召回率曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的召回率和对应的精确率。
将每个阈值下的召回率和精确率绘制在同一个图表上,形成召回率曲线。
根据召回率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
通过观察召回率曲线,我们可以根据需求确定最佳的阈值,以平衡召回率和精确率。较高的召回率表示较少的漏报,而较高的精确率意味着较少的误报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。
召回率曲线通常与精确率曲线(Precision Curve)一起使用,以提供更全面的分类器性能分析,并帮助评估和比较不同模型的性能。
【loss曲线】
在深度学习的训练过程中,loss函数用于衡量模型预测结果与实际标签之间的差异。loss曲线则是通过记录每个epoch(或者迭代步数)的loss值,并将其以图形化的方式展现出来,以便我们更好地理解和分析模型的训练过程。
【mAP0.5】
mAP0.5,也被称为[email protected]或AP50,指的是当Intersection over Union(IoU)阈值为0.5时的平均精度(mean Average Precision)。IoU是一个用于衡量预测边界框与真实边界框之间重叠程度的指标,其值范围在0到1之间。当IoU值为0.5时,意味着预测框与真实框至少有50%的重叠部分。
在计算mAP0.5时,首先会为每个类别计算所有图片的AP(Average Precision),然后将所有类别的AP值求平均,得到mAP0.5。AP是Precision-Recall Curve曲线下面的面积,这个面积越大,说明AP的值越大,类别的检测精度就越高。
mAP0.5主要关注模型在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阈值从0.5开始,以0.05为步长,逐步增加到0.95,并在每个阈值下计算mAP,然后将这些mAP值求平均。
这个指标考虑了多个IoU阈值下的平均精度,从而更全面、更准确地评估模型性能。当mAP0.5:0.95的值很高时,说明算法在不同阈值下的检测结果均非常准确,覆盖面广,可以适应不同的场景和应用需求。
对于一些需求比较高的场合,比如安全监控等领域,需要保证高的准确率和召回率,这时mAP0.5:0.95可能更适合作为模型的评价标准。
综上所述,mAP0.5和mAP0.5:0.95都是用于评估目标检测模型性能的重要指标,但它们的关注点有所不同。mAP0.5主要关注模型在IoU阈值为0.5时的性能,而mAP0.5:0.95则考虑了多个IoU阈值下的平均精度,从而更全面、更准确地评估模型性能。
【F1值曲线】
F1值曲线是一种用于评估二分类模型在不同阈值下的性能的可视化工具。它通过绘制不同阈值下的精确率(Precision)、召回率(Recall)和F1分数的关系图来帮助我们理解模型的整体性能。
F1分数是精确率和召回率的调和平均值,它综合考虑了两者的性能指标。F1值曲线可以帮助我们确定在不同精确率和召回率之间找到一个平衡点,以选择最佳的阈值。
绘制F1值曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的精确率、召回率和F1分数。
将每个阈值下的精确率、召回率和F1分数绘制在同一个图表上,形成F1值曲线。
根据F1值曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
F1值曲线通常与接收者操作特征曲线(ROC曲线)一起使用,以帮助评估和比较不同模型的性能。它们提供了更全面的分类器性能分析,可以根据具体应用场景来选择合适的模型和阈值设置。
整体对比分析来看:不难发现四款不同参数量级的模型最终呈现层次分明的效果,其中,n系列的模型效果最差,s系列的模型和m系列的模型效果相近,l系列的模型效果最优,这里综合参数量考虑我们最终选定了l系列的模型来作为线上的推理计算模型。
接下来看下l系列模型的详细情况。
【离线推理实例】
【Batch实例】
【混淆矩阵】
【F1值曲线】
【Precision曲线】
【PR曲线】
【Recall曲线】
【训练可视化】
未来,随着无人机技术和AI技术的不断发展,无人机航拍场景下的小目标检测技术将得到更广泛的应用和深入的研究。
无人机巡航巡检:无人机航拍可以广泛应用于电力巡检、农业监测、森林防火等领域。在这些场景中,小目标检测技术可以帮助快速准确地识别出目标物体,如电线杆、农作物、火源等,从而提高巡检效率和安全性。
城市规划与管理:无人机航拍可以为城市规划和管理提供重要的数据支持。通过小目标检测技术,可以从航拍图像中提取出道路、建筑物、车辆等目标信息,为城市规划和管理提供有力的数据支撑。
公共安全与应急响应:在公共安全和应急响应领域,无人机航拍可以快速获取现场情况,为救援和指挥提供重要信息。小目标检测技术可以帮助快速识别出关键目标,如被困人员、火源等,为救援和指挥提供及时准确的信息支持。
无人机巡航+AI智能模型会成为未来众多领域内巡检巡航的新模式,但与此同时也面临着诸多的挑战:
1、目标尺度小:无人机航拍图像中的目标通常只占整个图像的一小部分,这使得目标在图像中的特征信息较少,增加了检测的难度。
2、清晰度低:由于拍摄距离远、天气条件不佳等原因,无人机航拍图像中的目标可能较为模糊,进一步加大了检测的难度。
3、背景复杂:无人机航拍图像的背景往往复杂多变,包括地面、建筑物、植被等多种元素,这些背景元素可能与目标产生混淆,干扰目标检测。
从技术层面考虑,可行的探索实践路线有以下几种考虑:
1、多尺度特征融合:针对目标尺度小的问题,可以采用多尺度特征融合的方法。通过构建不同尺度的特征图,并将这些特征图进行融合,可以提高网络对小目标的特征提取能力。
2、特征增强技术:针对目标清晰度低的问题,可以采用特征增强技术。通过对图像进行预处理或后处理,如超分辨率重建、对比度增强等,可以提高目标在图像中的清晰度,从而改善检测效果。
3、上下文信息利用:针对背景复杂的问题,可以利用上下文信息来辅助目标检测。通过引入目标的上下文信息,可以增加网络对目标的识别能力,减少背景元素的干扰。
相信在不久的将来会有真正落地应用的实例出现,感兴趣的话也都可以动手实践下!