大图片小目标检测

YOLOv5 小目标检测、无人机视角小目标检测

1、图片分割、标签生成

因为我们要检测的图像分辨率很大,比如无人机拍摄的图片尺寸为5630x4314,但又有些目标很小,如果直接把图像缩放到640x640训练的话,效果不好,很多小目标就检测不到了。

因为:yolov5使用了5次下采样,最后输出的特征图大小是20 * 20, 40 * 40, 80 * 80。

80* 80 负责检测小目标的,对应到640 * 640 上,每格特征图对应的感受野大小是 640/80=8 * 8。再对应到原图中,以长边为例,5630/640 * 8 = 71,即原图中目标小于71像素的目标,是无法学习到有效特征的。

所以要对原图分割成多个小图再进行检测,我这里把图像分割成 2行3列,即6个小图。

有一点值得注意的是,有一些目标正好位于两个小图中间,正好被截断了,这就可能导致检测不到目标。为了避免这种情况,我们在两个小图之间设置一个overlap重叠区域,这里我设置的重叠区域面积占总面积的20%。

4.推理合并

在模型推理的时候,输入的是一张无人机拍下是原始图像,我们同样也需要把原图切割成多个小图来推理,再把小图的推理的结果合并到原图,然后再统一做nms操作。

步骤:

(1)小图跑模型推理,得到推理结果pred;

(2)对pred的结果中boxes位置进行坐标转换,转换为对应于原图中的位置;

(3)把各个小图推理的结果用 torch.cat 来进行合并;

(4)使用nms非极大值抑制 过滤掉重复的框。

posted @ 2023-03-15 21:33  kuaqi  阅读(376)  评论(0编辑  收藏  举报