如何实现超大尺寸图像快速识别

2022-07-14 11:41:41 浏览数 (1)

代码语言:javascript复制
一般情况下,遥感目标检测中,遥感图像的图片尺寸都会很大,且图像中元素极为复杂,近期开赛的亚马逊云科技【AI For Good - 2022 遥感光学影像目标检测挑战赛】也不例外,动辄超过10000 x 10000的卫星遥感图像让许多选手感到头疼。同时遥感影像中目标尺寸差别大、小而密集、角度各异也导致常见的CV框架难以实现快速精准的目标识别。所以,如何实现遥感图像等超大尺寸图像快速识别?

目前比较成熟的卫星图像识别算法并不少,但大多依托于强大的计算资源,为了用有限的计算资源实现大尺寸图像识别,我们找到了一个可行的开源框架,给大尺寸图像识别提供了不错的思路。

YOLT 是一个基于YOLO v2的卫星图像识别开源算法,核心思路是:

1. 通过图片裁切和图像网络重构解决图像尺寸问题; 2. 通过“上采样”提升小而聚集的目标的检测精度; 3. 通过将不同尺寸模型融合,提升整体检测精度。

YOLT项目地址:GitHub - avanetten/yolt: You Only Look Twice: Rapid Multi-Scale Object Detection In Satellite Imagery

YOLO是经典的图像识别算法,YOLT在YOLO的基础上针对卫星图像特有的问题提出了特定的解决思路。详细思路参见论文「You Only Look Twice: Rapid Multi-Scale Object Detection In Satellite Imagery」(GitHub项目中附有论文链接)。

▲左侧为常见问题,右侧为解决办法

1. 针对物体尺寸不规则、方向多样的问题,YOLT对卫星图像数据进行尺寸变换与旋转等数据增强的处理。

2. 针对目标尺寸过小并聚集的问题,YOLT框架主要采用3种方式进行处理:

(1) 修改图像网络结构,将YOLO v2框架中的stride由32改为16,有利于检测出大小在32 x 32以下的目标

(2) 对图像进行上采样,完成图片的“解压缩”操作,即把原先的图片放大,以便检测小而密集的物体

(3) 将不同尺寸的检测模型进行融合,即Ensemble操作,由于不同目标的尺寸差异可能较大,如海港与船只、机场与飞机,Ensemble操作能够提升大尺寸差异下的识别精度。

针对卫星图像尺寸过大的问题,YOLT采用切块的方式,将原始图像切割成小块后输入模型进行训练,并结合2-(3)进行模型融合。

▲ YOLT的网络结构,输出特征尺寸多为26 x 26,可以提升检测精度

应用实例

从下面的检测实例中,我们可以看到YOLT是如何工作的:

首先,开发团队将一张卫星图片调整至416 x 416大小(如上左),发现无法检测出车辆目标;

而从原图中切割出416 x 416的区域(称其为Chips)则可以实现部分车辆目标的检测

顺着这个思路,开发团队采用划窗方式将原始图像切割为许多chips,并使相邻chips之间有一定重合(如上图),以确保图像检测的完整性。

利用NMS算法将重复检测过滤,最后将各块的检测结果进行融合,即可得出最后的结果。

▲ 检测实例:采用YOLT v4识别机场中的飞机

YOLT的思路不止可以应用于卫星图像识别,同样可以在目标尺寸小且密集的其他类图像识别问题中发挥作用。

对本次亚马逊【AI For Good - 2022 遥感光学影像目标检测挑战赛】的选手而言,YOLT的解决思路能够帮助大家越过图片尺寸过大的第一道坎。

大赛报名将持续到8月24日,还没有参赛的同学依然有充足的时间备赛。

  扫描下方二维码或点击阅读原文  

  参与报名  

赛事福利 ❈

0 人点赞