遥感图像目标检测-论文阅读分享:Fast and accurate multi-class geospatial object detection with large-size...

本文介绍

大家好,我是一名在读的研究生,研究方向主要为计算机视觉,在这里分享我平时读的一些论文,也算是做个笔记,因为水平有限,所以对论文中的一些地方可能理解的不对,如果有朋友看到了这篇文章,在参考时一定要自己思考一下正确性,发现错误时请及时在评论区或是私信指出,我会及时更改,谢谢!
论文名称:Fast and accurate multi-class geospatial object detection with large-size remote sensing imagery using CNN and Truncated NMS
论文地址:link.
论文笔记和PPT:link. 提取码:hnai

介绍(Introduction)

目前遥感图像目标检测存在的困难:

1.遥感图像的多类别地物目标检测(Multi-class geospatial object detection)有很广阔的应用前景,例如城市管理规划、自然灾害预警、军事监控等等。自然图像的目标检测目前已经达到了很高的水准,但对于遥感图像的目标检测仍存在很多困难,主要是遥感图像的大尺寸、俯视角、目标密集以及容易受到光照、天气等影响。

2.如果直接将大尺寸的遥感图根据模型输入的尺寸进行缩放,则会丢失大量的图像细节,图像中的目标也会变得很小而难以提取特征,所以需要对大尺寸的图像进行裁剪,但在裁剪的过程中会出现大量的Truncated Object(截断目标),这些截断目标在图像拼接过程中会造成很大程度上的精度损失,如下图:
截断目标
其中右边黑色框中截取到了完整的飞机,而左边绿色框只截取到了飞机的尾巴,造成目标的截断,但在检测时也会检测飞机的尾巴,在最后进行拼接时两个框同时存在,而我们只希望保留蓝色框而去掉红色框。

本文提出的方法

为了权衡精度与速度,本文在YOLO v4的基础上,使用pruning strategy(剪枝策略)来获得
multi-volume YOLO v4(多尺寸的YOLO v4),同时为了提高检测速度,将
MIOU loss function
(MIOU损失函数)融入到YOLO v4中,同时本文在NMS的基础上提出了Truncated NMS算法来处理截断目标检测框的重叠问题。

本文目标检测流程:
1.首先将图片裁剪为合适的大小
2.将裁剪后的图片传入改进后的YOLO v4模型中进行目标检测
3.使用Truncated NMS算法将重复框去除
4.将预测后的裁剪图像拼接成原始图像,完成检测

Multi-volume YOLO v4

YOLO v4网络结构

YOLOv4结构
1.YOLO v4的backbone为CSPDarknet 53,将输入的图片进行8、16、32倍下采样,得到三个feature map,以1024 x 1024的输入为例,经过backbone后得到128 x 128、64 x 64以及32 x 32三个特征图。
2.在neck中,YOLO v4使用到了PAN网络,backbone中经过32倍下采样得到的特征图在卷积、BN、激活函数后会进行上采样,和原本16倍下采样得到的特征图进行融合,同样,融合后的特征图也会经过上采样和原本8倍下采样的特征图进行融合,这是一个自上向下的过程,之后又自下向上逐一进行下采样,再进行一次特征融合,才得到最终的特征。YOLOv4不太理解的朋友可以去搜一下YOLOv4的讲解博客。

PAN结构
PAN网络是FPN网络的改进,FPN网络自顶向下传递语义信息,而PAN网络自底向上传递语义信息,可以把PAN理解为 FPN 再加上一个反向的 FPN
FPN网络

PAN网络

network pruning or network expansion网络剪枝和网络扩张

文中通过network pruning or network expansion(网络剪枝或网络扩展)来改变网络的深度和宽度,依此来权衡网络的速度和精度。文中将YOLO v4网络分成了四个尺寸,其中的YOLO v4 l 是YOLO v4的原本尺寸,随着深度和宽度的增加,网络的参数逐渐增加,精度逐渐增加,速度逐渐降低。
network pruning(网络剪枝)分为结构化剪枝和非架构化剪枝,类似于dropout,但网络剪枝并不是随机地将神经元“减掉”,而是依据一些标准,比如参数输出的绝对值大小、参数裁剪对损失值的影响等,同时在裁剪之后需要进行精度回复。
多尺寸YOLOv4
关于网络剪枝技术大家可以看这篇博客:link

Manhattan-Distance intersection over union loss

我们将损失函数分成两个部分看:
损失函数
先看前三项:前两项很好理解,重点是第三项,它主要计算预测框与真实框的宽高比的损失,我画了个图来解释:
损失函数宽高比
篮色预测筐与粉色预测框虽然都与绿色真实框的IOU一样,但他们的宽高比截然相反,计算损失时篮筐的损失就会大一些,因为我们希望预测框的宽高比大致接近于真实物体,比如小汽车的预测框应该是扁平的,而人的预测框应该是瘦高的。
再看损失函数的后半部分:
损失函数
ρ(·)为几里得距离,δ(·)为曼哈顿距离,b是预测框的中心点坐标,bgt为真实框的中心点坐标。欧几里得距离就是两点间的距离,而曼哈顿距离是分别求两点X,Y坐标的差值的绝对值再求和,如下图:

欧几里得与曼哈顿距离黎
所以计算损失时就不只是单纯地考虑两中心点的距离,也即偶记老爹距离,同时也要考虑他们的曼哈顿距离,我画了个图形象地解释了为什么要这么做:
距离解释
对于上面蓝色预测框和粉红色预测框,他们的中心的与真实框中心点的欧几里得距离相等,但明显蓝色预测框效果更好,这时曼哈顿距离就派上用场,蓝色预测框的中心点与真实框中心点的曼哈顿距离较小,所以损失也会更小,这样就对蓝色框更加公平。这点不太理解的可以去看一下两种距离的解释。

Truncated NMS algorithm

Truncated Object
如之前所说,因为遥感图像的尺寸较大,所以在进行目标检测之前需要将图片进行裁剪,而裁剪时会保留一定的 overlap rate(重叠率),比如下图中绿框与黑框就是在overlap rate为20%时裁剪出的两张图像。但经过裁剪后的图像会出现 truncated object(截断目标),截断目标会分别出现在裁剪后的两张图中,在预测后拼接回原图时则会存在重叠的预测框,传统的NMS算法很难去除重叠的小框。
截断目标
为了解决上述问题,本文提出了一种Truncated NMS algorithm,能够有效去除截断目标预测中重复的小框。整体算法如图:
截断处理算法
当然直接看这个算法会比较蒙,我也是看了好几遍才看懂,还是把它拆一下来解释,当然我也画了图:
算法1
B为所有预测框的集合,S为所有预测框的得分,IOUt是两个框的IOU阈值,IOIt是两预测框的交集与内框之比,IOOt是两预测框的交集与外框之比,示例如下:

内外框示例
黄色划线部分即为两框的交集
下一步选择置信度得分最高的那个框作为M框,算法分为了两种情况,第一种为选中了小框作为M,第二种为选中了大框作为M:

两种M情况
一定要看式子仔细品这两种情况,这里品出来了下面就好理解了

condition2
如果是condition2,则直接输出当前框为最终预测框

condition1
如果是condition1,则IOU与当前M框大于阈值的框都被判定为inside box,将这些框剔除掉,包括当前的M自己,再所有inside box被剔除后,只剩下outside box,回到condition2

其他情况
如果不是上述两种情况,则按照常规的NMS进行处理,两框IOU小于阈值则保留,大于阈值则去除。

这个算法反正我是看了好久才理清思路,不过想法真的很棒,实在看不懂的可以私信我,我语音给你讲。

Experiment实验

实验这部分其实没啥好说的,大家看论文里的结果就可以了,这里放张论文里的截断目标检测的图:
截断目标检测效果

总结

该论文使用network pruning(网络剪枝)方法得到multi-volume YOLO-v4(多尺度的YOLO-v4)模型,能够根据不同的预测标准来选取合适规模的模型,依此来权衡检测的精度与速度,同时引入MIOU loss损失函数,在损失函数中加入曼哈顿距离来优化欧几里得距离带来的“不公平竞争”,提高了检测的精度。同时为了解决truncated object(截断目标)检测错误的问题,在NMS的基础上提出了Truncated NMS算法,利用大框与小框之间的IOU关系,通过去除小框有效地改善了截断目标在拼接回原图时预测框重叠的问题,同时保留了传统NMS的功能,不会错误去除其他目标的预测框。以文中放出的检测效果与其他算法的对比来看确实能够提高遥感图像目标检测的精度,同时能够很好地改善截断目标的预测问题。

第一次写博客有些生疏,希望各位朋友提出建议,文中有写得不清楚的地方随时联系我,希望对你有所帮助。

猜你喜欢

转载自blog.csdn.net/KK7777777/article/details/127140588