YOLT:高分辨率大尺寸卫星图像的目标检测.
- paper:You Only Look Twice: Rapid Multi-Scale Object Detection In Satellite Imagery
- arXiv:link
- code:github
背景介绍
卫星图像的尺寸通常较大(如一张DigitalGlobe图像包含$2.5$亿像素),而图像中的目标较小(大约只有$10$个像素)。
传统的目标检测方法对输入图像尺寸有限制(如YOLO接收$416 \times 416$或$544 \times 544$的输入),无法直接处理$16000 \times 16000$的卫星图像。
将目标检测方法应用于卫星图像,必须考虑如下几个问题:
- Small spatial extent:卫星图像中的目标通常占有的像素数较少;
- Complete rotation invariance:卫星图像中的目标可能存在任何方向;
- Training example frequency:训练集里通常较少;
- Ultra high resolution:卫星图像的分辨率通常很大,直接下采样后喂入网络是不现实的。
为解决上述问题,作者提出了You Only Look Twice(YOLT)模型。作者分析YOLO模型的缺陷并提出了对应的解决方法:
- 为解决“输入图像尺寸受限”问题,作者将大尺寸卫星图像切割,分别检测后重新组合;
- 为解决“目标所占像素少而密集”问题,作者加倍网络输出栅格数,使用多尺度检测,并对密集区域进行上采样预处理;
- 为解决“目标比例和方向不确定”问题,作者采用了缩放和旋转的数据增强方法。
模型结构
对于输入为$416 \times 416$的图像,YOLO模型设计了$30$层网络,采用$32$倍下采样,最终得到$13 \times 13$的栅格。为了检测小而密集的目标,作者将网络层数修改为$22$层,采用$16$倍下采样得到$26 \times 26$的栅格。作者额外引入了一层passthrough层作为残差连接。
测试时采用滑动窗口在待测试的卫星图像上裁剪出一系列满足输入大小的图像,默认使用$15%$的重叠率。每张图像的名称使用如下格式:ImageName|row_column_height_width.ext
。
对每张裁剪后的小图预测后需要还原成原始尺寸的图像。根据图像名称记录的位置信息,将预测目标框还原到原图中,并使用全局非极大值抑制。
实验分析
作者训练了两个dual classifier,一个用于检测尺寸较小的汽车和建筑,一个用于检测尺寸较大的机场。