Sentinel-2卫星的多光谱轻量级船舶目标检测算法
2022-09-05王世勇高思莉李临寒
陈 丽, 王世勇, 高思莉, 谭 畅, 李临寒
1. 中国科学院上海技术物理研究所, 上海 200083 2. 中国科学院大学, 北京 100049 3. 中国科学院红外探测与成像技术重点实验室, 上海 200083
引 言
随着各国卫星数量的不断增加、 卫星图像质量逐渐提高, 这为海洋安全、 海洋监视等相关研究带来了新的机遇。 舰船目标检测是海洋监视的重要手段之一, 在维护国家安全、 海上交通、 污染治理、 边境管理等方面都有广泛的应用。 从1978年开始, 利用遥感图像检测船舶受到越来越多的关注, 近年来, 这种趋势还在继续。 其中因可见光图像分辨率高, 富含丰富的细节信息, 有利于目标的检测和识别, 因此为现利用光学遥感图像进行船舶目标检测的主要研究内容[1-3], 但可见光图像在复杂背景中难以识别船舶目标。 由于海洋背景容易受到光照条件、 云雾遮掩、 海杂波等影响, 在这种复杂背景下可见光检船舶测精度较低, 不满足实际场景的检测需求。 因此研究者们引入多光谱图像, 利用不同目标在不同波段下的反射率, 船舶目标检测提供更多的信息, 用于辨别受到云层、 雾气、 阴影等干扰的船舶目标。 目前, 利用多光谱遥感数据的进行船舶目标检测情况如下[4-6]。 文献[4]利用G和MIR波段提取掩膜, 并结合NIR与红波段提取船舶候选区域, 最后利用决策树进行船舶候选区域准确分类, 但该方法只考虑了其光谱信息, 没有考虑船舶结构形状等信息。 文献[5]中提出了由粗到细粒度的船舶目标检测, 利用不同波段之间的反射率梯度进行随机森林算法求出获选区域, 结合当前流行的CNN检测算法提出了轻量级特征融合网络进行精细识别, 该算法具有97%的精确率, 但需要引用地理数据信息制作陆地掩膜, 且算法较为复杂。 文献[6]针对传统显著性检测算法无法适用于复杂场景的问题, 将NIR于RGB图像融合, 对融合图像进行显著性检测, 但该方法只简单将NIR与RGB图像融合, 没有考虑其波段的光谱特性, 且仍难以适用于有云等场景。
由此可见, 利用光谱信息, 可以在复杂背景下提取出船舶目标。 基于此, 本文提出了一种融合多光谱信息与几何信息的轻量级网络算法以实现在各种场景下的舰船目标的检测算法。
1 基于多光谱的轻量级船舶目标检测算法框架
本文提出的融合4个波段光谱信息和几何信息的由粗到精细的轻量型船舶检测算法步骤如下:
(1) 数据预处理
卫星传感器最终测得的地面目标总辐射亮度并不是物体的真实反射率, 其中包含了大气吸收、 反射和散射引进的误差。 因此, 为获取物体的真实反射率需对其进行大气校正。 对Sentinel-2卫星数据level-1C产品进行大气校正, 随后将获取的宽幅图像(10 980×10 980)进行裁剪, 并从中筛选出包含船舶的图像进行标注, 如图1所示。
图1 大气校正前后图像对比
(2) 目标粗提取
利用船舶与水体在相同波段下具有不同吸收率的波谱特性, 提出改进的水体检测算法提取船舶候选区域, 并分析不同场景下的波段特性, 在检测结果中利用分析结果做辅助判断。 随后对其进行形态学滤波闭运算, 并用极大值抑制(NMS)算法去除重叠候选区域, 最终得到候选区域切片。
(3) 目标精检测
大型的网络需要强大计算能力和储存能力, 难以适用于小型设备, 故构建了一个轻量级的融合四个波段光谱信息与几何信息的LSGFNet(lightweight spectral feature and geometric feature fusion network)网络对候选区域进行船舶目标再次确认。 其整体流程如图2所示。
图2 算法流程图
2 候选区域粗提取
遥感影像是基于不同地物对电磁波的反射以及地物本身的辐射信息产生[7]。 图3显示了典型地物的波谱特征。 水的反射主要集中在蓝绿波段, 其他的波段吸收率很强, 特别在近红外、 中红外波段有很强的吸收带, 反射率几乎为零。 根据水体的这一特点, 遥感影像处理中常常利用近红外波段确定水体的位置和轮廓。 对于海面图像, 若去除水体, 即可获得船舶候选区域。
图3 典型地物波谱曲线
2.1 改进的归一化水体指数法PNDWI
在遥感影像处理中研究者们已经提出了多种水体提取算法, 常用的方法之一为基于模型分类的光学影像水体提取法, 可以分为单波段法和多波段法, 其中多波段法又分为谱间关系法和水体指数法[8]。 本工作采用水体指数法。 水体指数法是利用光谱反射特征强的波段与反射特征弱的波段构建比值运算, 进一步扩大二者差异, 从而突出水体信息, 抑制非水体信息。 最早由Mcfeeters利用绿光波段和近红外波段构建了NDWI, 水体在G波段反射率较强, NIR吸收率强, 而植被、 土壤等地物在NIR的反射率强于G波段的反射率, 可以用于提取水体, 其计算公式如式(1)
(1)
式(1)中, 当NDWI>Th时为水体, Th为阈值, 通常取0。 但此算法适用于较为纯净的水体, 当水中含有其他物质时, 反射光谱曲线会改变, 导致其结果较差。 如当水含有泥沙时, 可见光波段发射率会增加, 峰值出现在黄红区, 此时用NDWI算法提取水体效果较差。 基于此, 本工作对NDWI算法进行改进, 以便在水体含有泥沙作用时仍能较好的检测出水体, 改进公式如式(2)和式(3)
(2)
MP(x, y)=max(R(x, y),G(x, y),B(x, y))
(3)
式中: (x,y)为图像坐标, 求得的值为每一个像素对应的归一化水体指数。
图4对比了在含泥沙海水和不含泥沙海水中利用NDWI算法和本算法提取水体对比图, 为了便于观察, 这里将水体检测结果进行了取反操作, 即黑的区域为水体, 白色区域为非水体。
由图4可以看出, PNDWI算法可以有效提取含泥沙海水的水体检测, 且对于不含泥沙海水仍有较好的水体检测效果。 对于不含陆地的海面图像, 可以通过水体检测, 获取船舶候选部分。
同时, 对船舶、 厚云、 薄云、 平静海面、 杂波海面5种场景情况进行了统计分析, 每种场景都在不同的图像上采集8×8区域的200幅子图像。 图5给出了5种场景中4个波段像素值取值范围的盒图以及盒图的解释。 每个盒图的横坐标1, 2, 3, 4分别对应于R, G, B, NIR 4个波段, 纵坐标为像素值。 在实际数据中总是存在离群点数据, 如采集薄云中可能包含少量水体, 采用盒图做统计分析可以减少离群数据导致的整体特征的偏移。
图4 NDWI和PNDWI对含泥沙和不含泥沙海水水体提取对比
从图5的对比看出各个场景均有其分布范围, 各场景像素值范围存在一定的交叉。 但在NIR波段, 可将其他场景与平静海面场景进行区别, 因此这里将设定阈值, 当其小于阈值T时, 判定为平静海面。 将其作为水体检测后的辅助判断, 在此T取值为55。 图6显示了在水体检测后加入辅助判断的效果。
图5 5种场景在4个波段中像素值的统计盒图以及盒图解释
图6 辅助判断过程
2.2 候选区域切片提取
同一船舶由于其不同部件由不同的材料构造, 且呈现不同的颜色, 因此, 用上述算法猜测出的船舶候选区域可能出现船体残缺或只检测到了船舶轮廓等情况。 为防止后续切片提取时将同一部分的候选区域划分为两部分, 对其进行形态学滤波闭运算使其保持为同一部分。 其公式如式(4)
g·B=(g⊕B)⊖B
(4)
式(4)中,g表示原图,B表示为结构元素, ·表示闭运算, ⊕以及⊖分别代表膨胀和腐蚀操作。
通过上述步骤, 即可进行船舶候选区域粗提取。 选取以候选区域为中心点的32×32像素的候选区域切片, 此步骤是为防止船舶被多个切片检测到, 对候选区域切片做非极大值抑制(non maximum suppression, NMS)。 当切片之间的重叠面积(IoU)大于0.1时, 即采用二值图中像素点多的切片。 重叠面积计算公式如式(5)
(5)
式(5)中,A和B分别为两个切片坐标位置的面积。
图7为最后提取的切片在RGB图像中的示意图。 由图7看出候选区域中存在非船舶的情况, 需要进一步精细检测。
图7 候选区域切片提取实列
3 LSGFNet网络
随着卷积神经网络在计算机视觉检测任务中的大放异彩, 已有一些研究者们将其应用于船舶检测[9-11]。 但这些网络大而复杂需要足够大的计算能力和储存能力, 难以满足移动或嵌入式设备储存能力和计算能力小的实际需求。 在这种情况下, 有研究者们建议使用轻量级模型。 轻量化模型设计思想为在模型性能(精度)损失较小的情况下, 降低模型大小, 同时提升模型速度。 现在典型的轻量级网络模型如ResNet[12]、 MobileNetV2[13]、 ShuffleNetV2[14]均在图像识别邻域取得了较好的效果。 本工作结合ShuffleNet网络特点改进了ResNet网络构建了一个轻量级的融合四个波段光谱信息与几何信息的LSGFNet(lightweight spectral feature and geometric feature fusion network)网络。
LSGFNet网络做了如下设想, 认为1×1卷积提取的为波谱信息, 而3×3卷积提取的为形态信息。 对于图像上的每一个像素点, 都具有四个波段的光谱信息, 通过不断的网络传递可寻找到可将船舶与非船舶进行区分的特征, 如图8(a)所示为其中某点的4个通道, 通过神经网络的传递可以预测出该点为船舶的概率, 这里通过神经网络将各波段的光谱信息考虑其中, 提取的是光谱特征。 将其对应到图像中即为1×1卷积, 如图8(b)所示。
图8 (a)光谱特征提取示意图, (b)1×1卷积示意图
而对于3×3卷积, 其拥有更大的感受野, 可以看作为特征探测器或者边缘检测器, 当网络程度加深时即获取了船舶的几何信息。
网络融合波谱特性和几何特性时, 为了防止1×1卷积与3×3卷积导致的“信息交流不通畅”的问题, 引入了ShuffleNet中的特征通道有序打乱的步骤, 以解决“信息流通问题”, 图9展示了改进模型引用ShuffleNet中的通道打乱示意图。
图9 通道打乱示意图
LSGFNet网络网络结构包含了3个结构块, 在每一个块结构之前, 需要将卷积结果进行融合并利用Channel shuffle进行通道打乱, 每个块中不采用池化层直接利用的卷积步长均为2实现图像下采样。 在网络中的其他卷积均采用步长为1。 在结构块后加入1×1卷积加深通道深度, 随后利用平均池化的方式进行映射, 最后利用两个全连接层输出结果。 设计的LSGFNet网络结构如图10所示。
图10 LSGFNet网络结构图
4 实验分析
4.1 实验数据
采用公开的Sentinel-2卫星光学遥感相机采集的2021年的R, G, B和NIR四波段多光谱图像作为实验素材, 其4个波段的分辨率均为10 m。 其中R, G, B和NIR的中心波长范围分别为0.490, 0.560, 0.665和0.842 nm。 对于不同场景选取1 120组数据进行实验, 图片大小为512×512。 数据图像中船舶大小所占像素为10~320, 即小船在2×5个像元左右, 大船在8×40个像元左右。
在精检测网络中获取船舶2 617组数据, 非船舶(即云、 岛屿、 海浪杂波等干扰)3 424组数据。 将图像数据分为训练集、 验证集和测试集3部分, 比例为7∶2∶1。 部分数据集数据样本如图11所示。
图11 精检测部分数据样本
4.2 实验结果分析
采用查全率(Recall)作为粗检测结果的评价指标, 用精确率(Precision)、 Params和FLOPs(Floating Point Operations)作为精检测网络的评价指标。 查全率是指正确预测为正的船舶占所有真实为正的比例; 精确率是指正确预测为正的船舶占所有预测为正的比例; AP是Precision-Recall曲线下的面积, 用于分析模型检测的优缺点。 FLOPs即模型的运算次数, 也称为时间复杂度; Params为模型的参数量。 Recall和Precision计算公式如式(6)—式(8)
(6)
(7)
(8)
式中:PT为样本为正并且预估为正的比例;PF为样本为负预估为正的比例;NF为样本为正预估为负的比例。
首先对粗检测算法进行分析, 表1给出了粗检测结果。
表1 船舶粗检测结果
然后, 将本精检测算法与现有的典型轻量级算法进行了对比, batchsize=128, 初始学习率learningrate=0.1, epoch=300。 交叉熵作为损失函数, 选用随机最速下降法SGD为梯度下降函数, momentum=0.9, 权重衰减值weight_decay=0.00004。 每次卷积之后均用了batch normalize, 激活函数为relu。 表2为各算法在测试集的精确率以及各算法的复杂度和参数量。 图12分别为各算法迭代10 000次的验证集损失下降图和精确率变化图, 各算法采用相同的参数配置。
表2 测试集轻量型网络算法对比
由表2可见各算法之间在测试集上的识别精确度相差不大, LSGFNet网络的时间复杂度和运算参数均远小于其他算法, 但其在测试集上的识别精确率为96.04%, 略高于其他算法。 图12为在验证集上的迭代10 000次的损失下降图和精确率变化图, 由图12可以看出LSGFNet网络能够更快的拟合且取得更好的效果。 结合粗检测与精细检测, 将本文算法与典型算法Yolov3, SSD等进行了对比, 其中IoU(Intersection over Union)阈值为0.5, 结果如表3所示。
图12 验证集迭代10 000次损失下降(a)和精确率变化(b)
由表3结果可以看出, 本算法比YoloV3, SSD算法的mAP值更高, 检测效果更好。 这是因为所检测的船舶均为较小的船舶, 且只有船舶一种目标, 过深的网络容易导致过拟合, 因此本算法比其他算法效果更好。 图13展示了本算法在不同场景下的检测效果。
表3 各算法检测结果对比
图13 检测结果
5 结 论
本算法利用四波段遥感图像, 分析光谱信息, 有效的解决了在低储存低计算能力下从复杂背景中检测船舶目标的问题。 算法使用了由粗到精细的检测手段。 在粗检测网络中, 利用改进的水体检测算法结合NIR像素值取值范围辅助判断获取船舶候选区域。 随后, 设计了轻量级LSGFNet网络, 并对候选区域进行精细识别, 其中粗检测查全率为98.99%。 LSGFNet网络算法结合了1×1与3×3两种卷积模式, 分别提取了4个波段的光谱特性与几何特性, 并对其进行了融合处理, 最后精检测网络检测精确率为96.04%。同时将LSG-FNet与其他轻量级网络进行了对比, LSGFNet网络时间复杂度和模型参数量均最小, 说明本模型更轻量, 同时检测精度略高其他网络。 最后将本算法整体应用到了Sentinel-2卫星数据, 实验结果表明, 本算法能够在云层、 雾、 海浪杂波干扰的复杂背景中检测到船舶, 不同场景下的平均精确率为92.98%。 与现有的SSD, YOLOV3算法对比, 本算法AP值更高, 且无需强大的计算能力和储存能力, 更有助于小型设备进行船舶监测。