YOLT遥感图像检测算法详解

You Only Look Twice: Rapid Multi-Scale Object Detection InSatellite Imagery-论文链接-代码链接

1、需求解读

  遥感图像处理(processing of remote sensing image data)是对遥感图像进行辐射校正和几何纠正、图像整饰、投影变换、镶嵌、特征提取、分类以及各种专题处理等一系列操作,以求达到预期目的的技术。遥感图像处理可分为两类:一是利用光学、照相和电子学的方法对遥感模拟图像(照片、底片)进行处理,简称为光学处理;二是利用计算机对遥感数字图像进行一系列操作,从而获得某种预期结果的技术,称为遥感数字图像处理。本文侧重于后者,在现实场景中,由于当前的卫星系统已经比较完善,已经收集到大量的数据集,针对这些数据进行有效的分析和处理可以提取出一些更加有用的信息,从而更好的服务于人类的生活。

2、遥感图像处理和普通图像处理的区别与联系

区别:

  • 遥感图像并不局限在红绿蓝三个波段。即普通图像处理一般都是RGB三通道的,而遥感图像可以是1-n个波段,这个n可以到几百;
  • 遥感图像大多有自己准确的地理坐标。即普通图像处理一般是以像点坐标为准,而遥感图像一般是具有大地(或地理)坐标的;
  • 遥感图像的值-反射率。普通的图像中,颜色被采样成了0-255这个范围。遥感图像使用反射率使得不同时期,不同地区拍的图像有了可比性;
  • 遥感图像处理的目的是为了获取地面的信息。虽然遥感在军事上的利用前景很广,但考虑到高分影像的敏感性,军事研究的保密性,遥感在学术上的意义更多的还是去反演生态参数,农业估产,气候变化,土地资源管理等;
  • 遥感图像处理强调的是如何利用影像之间的时空相关性。由于在遥感图像中检测对象总是地表,而沧海桑田这种事儿又不会在短时间内发生,所以,遥感图像是具有空间相关性和时间相关性的。

联系:
  本质上它们两者都是一种数字图像处理技术,因此遥感图像处理也可以被称之为是数字图像处理的一种特例。比如一些常见的滤波算法(均值滤波、拉普拉斯滤波),直方图拉伸这些在遥感图像中也同样适用。
  总而言之,遥感图像处理和普通图像处理具有共同的数学原理,不同的数据特征;相同的处理机制,不同的应用目标;相同的图像运算,不同的解译结果;相同的发展趋势,不同的专业侧重。

3、YOLT检测算法分析

3.1 遥感图像中的视觉挑战

  与传统的图像算法相比,遥感图像处理中面临着一些不同的视觉挑战,具体包括:

  • 小空间范围。遥感图像中的感兴趣目标通常都比较小,而且目标分布的比较密集;而不像传统图像处理中的那种大目标;
  • 复杂的旋转不变性。遥感图像中的感兴趣目标通常会具有多种旋转角度,0-360度,对算法提出了一个新的要求,即算法需要具有很好的旋转不变性;
  • 训练数据比较少。遥感图像处理中的训练数据集比较难以收集和标注,因而通常的训练数据集都比较小,这就给检测算法提出了一个新的要求;
  • 超大的分辨率。遥感图像通常具有较大的分辨率,而传统的图像处理算法都需要将图像裁剪到固定大小,对于遥感图像处理算法而言,简单的图像裁剪已经满足不了它的需求。
3.2 YOLT检测算法简介

  对于遥感图像而言,主要面临着两个主要的视觉挑战。即1)每个图像的像素数量和地理范围:单个DigitalGlobe卫星图像覆盖面积 > 64 k m 2 >64 \mathrm{km}^{2} >64km2且超过250万像素;2)感兴趣目标一般都比较小(有的甚至是0到10像素)。为了很好的解决以上的两个视觉挑战,该算法可能很好的处理任意输入大小的图片;可以使用少量的训练数据获得一个可以准确的检测到具有不同尺度的目标;该算法甚至可以很好地检测到5个像素点大小的目标

4、YOLT检测算法实现详解

4.1 YOLT检测算法网络架构简介

在这里插入图片描述
  上图展示了YOLT检测算法的网络架构。该算法是在Yolo算法的基础上面进行改进的,通过观察上图,我们可以发现:该网络共有21层;该网络中将输入图片 下采样了16倍,即将416x 416的输入图片裁剪成26x26的特征映射;为了提升算法对小目标的检测精度,网络中增加了一个Passthrough层,该层的具体细节请看该论文,其主要的作用是通过类似于ResNet的残差结构将多个层的特征连接起来来获取到更加细粒度的特征表示。

4.2 YOLT检测算法如何解决YOLO检测算法中存在的问题

在这里插入图片描述
  上图展示了YOLT算法针对YOLO算法中存在的问题所提出的解决方案。具体的问题和相应的解决方案如下所示:

  • 问题1:YOLO算法不能很好的处理具有新的或者不同寻常的比例或者不同配置的目标?
  • 解决思路:使用图片缩放和图片旋转来增强训练数据。
  • 问题2:YOLO算法不能很好的对成群的小目标进行检测,例如成群的鸟?
  • 解决思路:首先,使用一个新的网络架构来获取更加细粒度的特征;然后,对小的目标进行上采样操作;最后,在多个图像尺度上使用检测器集成。
  • 问题3:由于YOLO网络中使用到了多个下采样层,YOLO算法中使用粗粒度的特征执行BB预测?
  • 解决思路:首先,使用一个新的网络架构来获取更加细粒度的特征;然后,对小的目标进行上采样操作;最后,在多个图像尺度上使用检测器集成。
  • 问题4:YOLO网络支持的最大输入大小是600像素左右?
  • 解决思路:首先,在多个图像尺度上使用检测器集成;然后,将大的输入图片进行分块和组合。
4.3 YOLT检测算法实现步骤

步骤1-用户定义bin sizes和overlap,如果你和作者的场景比较类似,可以不用修改;
步骤2-将输入的大分辨率图片且分为特定大小的输入,论文中作者使用了416x416的输入;
步骤3-搭建上图所示的网络架构,执行网络训练;
步骤4-将裁剪好的图像块依次送入训练好的网络中执行前向推理,获取到相应的BB;
步骤5-将多个图像块的结果组合起来,15%的重复率保证了所有的区域都能被处理;
步骤6-在合成的结果上面执行NMS操作来抑制掉一部分重复的检测结果。

5、YOLT检测算法效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  上图展示了YOLT算法的检测效果。通过上面的观察,我们可以得出:YOLT可以准确的检测出图片中的车、船、飞机、房屋和机场等多个类别;YOLT可以很好的检测到图像中的小目标。
在这里插入图片描述
  上图分别展示了YOLT算法在不同的5种目标中的检测性能和速度。通过上图我们可以发现:YOLT在机场类别上能够获得最高的检测精度;同时在机场目标上能够获得最快的检测速度,主要的原因可能是机场的范围比较大。

6、个人总结

  通过上面的分析,我们可以发现,基于YOLO的改进算法YOLT能够很好的解决小目标的检测问题;该算法能够很好的解决遥感图像中的目标检测问题;该算法当前支持的类别包括:车辆、飞机、船舶、房屋和机场,对于一些新的类别,用户需要在该网络的基础上进行微调操作除此之外,作者提出了一个YOLT的改进版本simrdwn,具体的实现细节请看该链接

参考资料

[1] 原始论文

注意事项

[1] 如果您对AI、自动驾驶、AR、ChatGPT等技术感兴趣,欢迎关注我的微信公众号“AI产品汇”,有问题可以在公众号中私聊我!
[2] 该博客是本人原创博客,如果您对该博客感兴趣,想要转载该博客,请与我联系(qq邮箱:1575262785@qq.com),我会在第一时间回复大家,谢谢大家的关注.
[3] 由于个人能力有限,该博客可能存在很多的问题,希望大家能够提出改进意见。
[4] 如果您在阅读本博客时遇到不理解的地方,希望您可以联系我,我会及时的回复您,和您交流想法和意见,谢谢。
[5] 本人业余时间承接各种本科毕设设计和各种小项目,包括图像处理(数据挖掘、机器学习、深度学习等)、matlab仿真、python算法及仿真等,有需要的请加QQ:1575262785详聊,备注“项目”!!!

  • 9
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值