bubbliiiing / yolov7-pytorch

这是一个yolov7的库,可以用于训练自己的数据集。
GNU General Public License v3.0
861 stars 150 forks source link

大尺寸图像中的小目标检测 #69

Open XHC1901 opened 1 year ago

XHC1901 commented 1 year ago

您好,我是做在大尺寸图像中的小目标检测,我现在尝试先离线切分图像成小图像之后进行训练,效果比较好。但是,在检测时,输入的还是大尺寸图像,不知道应该怎么把切分成小图像,分别检测,再将子图的检测结果合并起来用NMS处理进行过滤得到全尺寸的检测图像,这一系列操作应该怎么修改,

bubbliiiing commented 1 year ago

鹅做个循环,把图片切割成一块一块,获得每一块的预测结果,然后计算每个图片左上角的origin交点坐标,加上预测结果的坐标然后把最后的结果concat一下,

XHC1901 commented 1 year ago

这样子的一个问题是:目标处于切分图像的边界处,会重复计数,我想是在切分时就应该有重叠,然后在拼接时候需要用NMS处理判断目标的检测框,这一部分不知道怎么实现

XHC1901 commented 1 year ago
66b80d64e1c9d2924eb16125e787241

我现在小图像的单独检测是成功的,但是有些目标处于切分图像的边缘,会导致他在相邻两幅图中都被检测到(主要是图中蓝框的这个问题),所以我想是在切分小图像应该需要有重叠,检测完成之后判断重叠部分的检测框

XHC1901 commented 1 year ago
4d4c19177279965492b4eacb3050b59

下面的左图是小图像检测之后拼接起来的效果,看起来没有问题,但是会出现同一个目标被重复检测(上述蓝框的情况);下面的右图是我用全尺寸图像进行训练的效果,在目标密集且较小的下半部分的检测效果不佳

bubbliiiing commented 1 year ago

其实思路也是一样的 你切分的时候左上角的坐标就是你新图片的原点坐标,你每次把你的所有的预测结果,加上左上角的坐标就可以获得原图的坐标。

bubbliiiing commented 1 year ago

重叠的切割可以参考这个

bubbliiiing commented 1 year ago

https://blog.csdn.net/weixin_45063618/article/details/124719353

bubbliiiing commented 1 year ago

我希望你可以先尝试有重叠的切割并且统计左上角的坐标,这样是这个过程的开始