无人机助力违法毒品种植智能监测预警,基于YOLOv12全系列【n/s/m/l/x】参数模型开发构建无人机航拍场景下的农村田园场景下非法种植罂粟花检测预警识别系统

打击毒品人人有责,毒品带来的危害是人尽皆知的,我们不仅自身要严厉拒绝接触任何形式的毒品,更要言传身教告诫他人不要与任何形式的任何渠道的毒品有关联,但是在实际生活中,在一些偏远的乡村、田园、山丘、村落等地方,因为有意或者是无意等各种因素会出现罂粟花的非法种植,这种行为是非常危险的行为,但是对于部分人员来书缺乏相应的禁毒意识导致没有能及早发现进而进行铲除,这里比较好的方式基于基于无人机航行拍摄的方式来对目标区域进行航行拍摄,对于航拍途中抓拍的图像进行智能化的检测识别,基于AI模型的方式来辅助发现危险隐藏因素,对于及早预警有积极的作用。

随着无人机技术的日益成熟,其在打击犯罪、维护社会治安方面的应用愈发广泛。特别是在边陲小镇乡村等偏远环境下,无人机凭借其独特的空中优势,能够高效地完成对地面的监测与巡查工作。针对存在的非法种植罂粟花的问题,我们提出了一套基于无人机的航拍识别与上报系统。该系统以无人机为载体,搭载高清摄像头和图像处理设备,实现对地面的全面、细致拍摄。无人机在预设的飞行路线上进行巡航,将拍摄到的图像实时传输至地面控制站。地面控制站接收到图像后,通过图像处理设备对图像进行自动分析。利用先进的图像识别技术,系统能够准确识别出图像中的罂粟花,并标注出其位置。一旦确认存在罂粟花种植情况,系统将立即生成报警信息,并将相关信息发送至相关部门。相关部门在收到报警信息后,可迅速组织人员前往现场进行核实和铲除工作。同时,无人机还可继续对该区域进行持续监测,确保罂粟花被彻底清除,防止其再次种植。基于无人机的航拍识别与上报系统不仅提高了对非法种植罂粟花的监测效率,还降低了人力成本,使得打击犯罪工作更加高效、精准。该系统将为维护社会治安、保护人民群众生命财产安全发挥重要作用。

在这块数据场景中我们前文已经做了一些相关的开发实践,感兴趣的话可以自行移步阅读即可:

《无人机助力违法毒品种植智能监测预警,基于YOLOv3全系列【yolov3tiny/yolov3/yolov3spp】参数模型开发构建无人机航拍场景下的农村田园场景下非法种植罂粟花检测预警识别系统》

《无人机助力违法毒品种植智能监测预警,基于轻量级YOLOv5n开发构建无人机航拍场景下的农村田园场景下非法种植罂粟花检测预警识别系统》

无人机助力违法毒品种植智能监测预警,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建无人机航拍场景下的农村田园场景下非法种植罂粟花检测预警识别系统》

《无人机助力违法毒品种植智能监测预警,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建无人机航拍场景下的农村田园场景下非法种植罂粟花检测预警识别系统》

《无人机助力违法毒品种植智能监测预警,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建无人机航拍场景下的农村田园场景下非法种植罂粟花检测预警识别系统》

《无人机助力违法毒品种植智能监测预警,基于YOLOv9全系列【gelan/gelan-c/e/yolov9/yolov9-c/e】开发构建无人机航拍场景下的农村田园场景下非法种植罂粟花检测预警识别系统》

《无人机助力违法毒品种植智能监测预警,基于YOLO家族最新端到端实时算法YOLOv10全系列【n/s/m/b/l/x】参数模型开发构建无人机航拍场景下的农村田园场景下非法种植罂粟花检测预警识别系统》

《无人机助力违法毒品种植智能监测预警,基于嵌入式端超轻量级模型LeYOLO全系列【n/s/m/l】参数模型开发构建无人机航拍场景下的农村田园场景下非法种植罂粟花检测预警识别系统》

《无人机助力违法毒品种植智能监测预警,基于YOLOv11全系列【n/s/m/l/x】参数模型开发构建无人机航拍场景下的农村田园场景下非法种植罂粟花检测预警识别系统》

本文主要是想要基于YOLO系列最新发表的以注意力为核心的目标检测模型YOLOv12全系列的模型来进行相应的开发实践,首先看下实例效果:

YOLO系列最近的迭代速度不可谓不快,可能感觉YOLOv11都还没有推出多久,YOLOv12就这么水灵灵地来了,下面是对YOLOv12论文的阅读记录,感兴趣的话可以自行移步阅读即可:

《卷出火花继续飞升,YOLO家族最新成员YOLOv12重磅发布——YOLOv12: Attention-Centric Real-Time Object Detectors以注意力为中心的实时目标检测器》

官方发布的预训练权重如下:

Turbo (default version):

Model size
(pixels)
mAPval
50-95
Speed
T4 TensorRT10
params
(M)
FLOPs
(G)
YOLO12n 640 40.4 1.60 2.5 6.0
YOLO12s 640 47.6 2.42 9.1 19.4
YOLO12m 640 52.5 4.27 19.6 59.8
YOLO12l 640 53.8 5.83 26.5 82.4
YOLO12x 640 55.4 10.38 59.3 184.6

v1.0:

Model size
(pixels)
mAPval
50-95
Speed
T4 TensorRT10
params
(M)
FLOPs
(G)
YOLO12n 640 40.6 1.64 2.6 6.5
YOLO12s 640 48.0 2.61 9.3 21.4
YOLO12m 640 52.5 4.86 20.2 67.5
YOLO12l 640 53.7 6.77 26.4 88.9
YOLO12x 640 55.2 11.79 59.1 199.0

一共提供了n、s、m、l和x五款不同参数量级的模型。

这里我们保持完全相同的实验参数设置来进行四款模型的开发训练,等待训练完成之后我们来整体进行各项指标的对比分析。

【Precision曲线】
精确率曲线(Precision Curve)是一种用于评估二分类模型在不同阈值下的精确率性能的可视化工具。它通过绘制不同阈值下的精确率和召回率之间的关系图来帮助我们了解模型在不同阈值下的表现。
精确率(Precision)是指被正确预测为正例的样本数占所有预测为正例的样本数的比例。召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。
绘制精确率曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的精确率和召回率。
将每个阈值下的精确率和召回率绘制在同一个图表上,形成精确率曲线。
根据精确率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
通过观察精确率曲线,我们可以根据需求确定最佳的阈值,以平衡精确率和召回率。较高的精确率意味着较少的误报,而较高的召回率则表示较少的漏报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。
精确率曲线通常与召回率曲线(Recall Curve)一起使用,以提供更全面的分类器性能分析,并帮助评估和比较不同模型的性能。

【Recall曲线】
召回率曲线(Recall Curve)是一种用于评估二分类模型在不同阈值下的召回率性能的可视化工具。它通过绘制不同阈值下的召回率和对应的精确率之间的关系图来帮助我们了解模型在不同阈值下的表现。
召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。召回率也被称为灵敏度(Sensitivity)或真正例率(True Positive Rate)。
绘制召回率曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的召回率和对应的精确率。
将每个阈值下的召回率和精确率绘制在同一个图表上,形成召回率曲线。
根据召回率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
通过观察召回率曲线,我们可以根据需求确定最佳的阈值,以平衡召回率和精确率。较高的召回率表示较少的漏报,而较高的精确率意味着较少的误报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。
召回率曲线通常与精确率曲线(Precision Curve)一起使用,以提供更全面的分类器性能分析,并帮助评估和比较不同模型的性能。

【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阈值下的平均精度,从而更全面、更准确地评估模型性能。

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

【F1值曲线】
F1值曲线是一种用于评估二分类模型在不同阈值下的性能的可视化工具。它通过绘制不同阈值下的精确率(Precision)、召回率(Recall)和F1分数的关系图来帮助我们理解模型的整体性能。
F1分数是精确率和召回率的调和平均值,它综合考虑了两者的性能指标。F1值曲线可以帮助我们确定在不同精确率和召回率之间找到一个平衡点,以选择最佳的阈值。
绘制F1值曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的精确率、召回率和F1分数。
将每个阈值下的精确率、召回率和F1分数绘制在同一个图表上,形成F1值曲线。
根据F1值曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
F1值曲线通常与接收者操作特征曲线(ROC曲线)一起使用,以帮助评估和比较不同模型的性能。它们提供了更全面的分类器性能分析,可以根据具体应用场景来选择合适的模型和阈值设置。

整体对比分析来看:不难发现五款不同参数量级的模型最终达到了较为相似的结果,没有拉开非常大的差距,这里综合参数量考虑我们最终选定了s系列的模型来作为线上的推理计算模型。

接下来看下s系列模型的详细情况。

【离线推理实例】

【Batch实例】

【混淆矩阵】

【F1值曲线】

【Precision曲线】

【PR曲线】

【Recall曲线】

【训练可视化】

感兴趣的话也都可以自行动手尝试下!