小目标检测方法介绍

目标检测发展很快,但对于小目标 的检测还是有一定的瓶颈,特别是大分辨率图像小目标检测 。比如79202160,甚至1600016000的图像,还有一些遥感图像

图像的分辨率很大,但又有很多小的目标需要检测。但是如果直接输入检测网络,比如yolo,检出效果并不好。

主要原因

(1)小目标尺寸

以网络的输入608x608为例,yolov3、yolov4,yolov5中下采样都使用了5次,因此最后的特征图大小是19x19,38x38,76x76。

三个特征图中,最大的76x76负责检测小目标,而对应到608x608上,每格特征图的感受野是608/76=8x8大小。

再将608x608对应到7680x2160上,以最长边7680为例,7680/608x8=101。

即如果原始图像中目标的宽或高小于101像素,网络很难学习到目标的特征信息。

(2)高分辨率

而在很多遥感图像中,长宽比的分辨率比76802160更大,比如上面的1600016000,如果采用直接输入原图的方式,很多小目标都无法检测出。

(4)显卡爆炸

很多图像分辨率很大,如果简单的进行下采样,下采样的倍数太大,容易丢失数据信息。

但是倍数太小,网络前向传播需要在内存中保存大量的特征图,极大耗尽GPU资源,很容易发生显存爆炸,无法正常的训练及推理。

解决办法

可以借鉴2018年YOLT算法的方式,改变一下思维,对大分辨率图片先进行分割,变成一张张小图,再进行检测。

需要注意的是:

为了避免两张小图之间,一些目标正好被分割截断,所以两个小图之间设置overlap重叠区域,比如分割的小图是960960像素大小,则overlap可以设置为96020%=192像素。
在这里插入图片描述
每个小图检测完成后,再将所有的框放到大图上,对大图整体做一次nms操作,将重叠区域的很多重复框去除。

这是一个关于高分辨率图片目标检测的baseline视频介绍10亿像素目标检测方法介绍

该方法是十分有效的,比如下图是将原始大图->416*416 大小,直接使用目标检测网络输出的效果:
在这里插入图片描述
可以看到中间黄色框区域 ,很多汽车检测漏掉。

再使用分割的方式,将大图先分割成小图再对每个小图检测 ,可以看出中间区域很多的汽车都被检测出来:
在这里插入图片描述

优点:

(1)准确性

分割后的小图,再输入目标检测网络中,对于最小目标像素的下限会大大降低。

比如分割成608608大小,送入输入图像大小608608的网络中,按照上面的计算方式,原始图片上,长宽大于8个像素的小目标都可以学习到特征。

(2)检测方式

在大分辨率图像,比如遥感图像,或者无人机图像,如果无需考虑实时性的检测,且对小目标检测也有需求的项目,可以尝试此种方式。

缺点:

增加计算量

比如原本7680x2160的图像,如果使用直接大图检测的方式,一次即可检测完。但采用分割的方式,切分成N张608x608大小的图像,再进行N次检测,会大大增加检测时间。借鉴Yolov5的四种网络方式,我们可以采用尽量轻的网络,比如Yolov5s网络结构或者更轻的网络。

当然Yolov4和Yolov5的网络各有优势,我们也可以借鉴Yolov5的设计方式,对Yolov4进行轻量化改造,或者进行剪枝。

  • 1
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值