AFOD算法开源!SpireCV小目标检测大升级
转载 2024-12-30 09:31 阿木实验室 来源:阿木实验室2024年9月30日,Ultralytics官方团队宣布YOLOv11正式发布,标志着YOLO系列实时目标检测器的又一次重大升级,同时也标志着目标检测的快速发展。
在小目标检测领域,由于其视觉特征较差、噪声较多,长期以来都是目标检测中的一个难点。在无人机的应用场景中更是如此。由于无人机飞行高度高,图像中往往存在大量小目标,其可提取特征较少,且由于无人机飞行高度波动大,物体比例变化剧烈,导致检测难度急剧增加;而且,在实际飞行视角中存在很多复杂场景,密集小目标之间会存在大量遮挡,很容易被其他目标或背景遮挡。
原理
AMOVLAB
AFOD算法,即AutoFocusObjectDetector,是SpireCV专为无人机视角下小目标检测开源的新算法,中文名注意力目标检测。如下是AFOD算法结合GX40吊舱在未变焦情况下对远处车辆目标的检测(其像素远小于32x32)。
注意力目标检测的主要优点是兼顾小目标检测精度与帧频性能,其在时间顺序上分为2个阶段:
全局目标搜索,一般为1280×1280分辨率
搜索到目标后,进入子区域检测阶段,一般为640×640分辨率
具体如下图所示:
该检测器需要输入2个通用目标检测器,一个为全图搜索时使用,另一个为子区域中使用。待检测的目标类型会在具体数据集上定义,输出目标的类别信息和像素位置(外包矩形框)。
其中有关的配置参数,详细说明如下:
lock_thres:连续多少帧检测到同一个目标,进入子区域检测,默认为5帧
unlock_thres:在子区域中连续多少帧丢失目标,回到全局检测,默认为5帧
lock_scale_init:初始子区域大小的控制参数,具体为目标像素的宽度的倍数,默认为12倍
lock_scale:子区域大小的控制参数(子区域稳定跟踪后),默认为8倍
categories_filter:过滤目标名称,为空时,则不过滤。过滤目标名称如下:
["person", "car"]
keep_unlocked:是否输出没有被自动注意力的目标,默认不输出(false)
use_square_region:初始检测时是否为正方形区域,如果是,则对于非正方形的输入图像,两边留白不检测,默认不使用(false)
通用目标检测器:
AFOD 算法此次使用的2个通用目标检测器分别是yolov11s、yolov11s6 在visdrone2019 det数据集上训练的目标检测器模型(640x640、1280x1280)。下面是 yolov11s6 结合 GX40 吊舱的 10x光学变焦在 P600无人机悬停 40 米高度时实现的检测效果。不难发现,该检测器对 1600 米内的车辆、1400 米内的行人能够有效识别。
使用
AMOVLAB
AFOD算法使用的wiki链接领取:
1. 烦请点一个star收藏SpireCV的gitee或者github仓库,谢谢支持!
➡Github:[https://github.com/amov-lab/SpireCV]
➡Gitee:[https://gitee.com/amovlab/SpireCV]
2. 长按下方二维码添加我们,获取AFOD算法使用wiki链接。(其中包含此次实验所使用模型、以及 yolov11 自定义数据集模型训练、转换、部署方法)