陈 玺, 何 斌, 龙勇机, 宋向宇, 毕国玲
(1. 中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033;2. 中国科学院大学,北京 100049)
在科技的快速发展和信息化时代战略需求改变的形势下,基于可见光遥感图像的海上舰船目标检测有着重大的研究意义和价值。近年来,随着光学遥感图像分辨率的大幅度提高,为检测算法的研究提供了更多的思路和方法。目前本领域的主要问题是如何在复杂背景中提取出舰船目标同时有效消除遥感图像中的云雾、海杂波、海岛、阴影等地物信息带来的干扰,同时还需要确保算法的高效性、快速性和可移植性[1],实现在轨实时检测的战略需求。
现今提出的目标检测方法可分为基于图像处理的传统算法和基于检测网络框架的深度学习算法两大类[2]。传统的检测算法往往采用先检测疑似区域再精细识别的策略[3-11]。在检测疑似区域上,最多采用的是阈值分割法。全局性的阈值分割算法实现简单,但在较为复杂的背景下虚警率高。局部性的方法分为局部阈值和滑动窗口的方法,此类方法的窗口大小等参数不容易确定,同时图像中的目标占据整体部分较小,算法盲搜索检测效率很低。近年来,提出了一类基于人类的视觉显著性提取疑似区域的方法,通过计算出图像中每点的显著性值代替其本身的灰度值。显著性算法计算的显著值表征该点在视觉的明显程度,通过阈值分割后可以提取出图像中的明显成分,常见的显著性模型有SR[12]、ITTI[13]、CONV[14]等。精细识别部分多采用支持向量机等机器学习分类器通过训练目标特征进行识别。Li[7]等通过采用自适应阈值的谱残差法结合融合特征的方式实现对复杂背景的舰船提取。Zhao[4]等首先获取多尺度最优的显著性图,之后引入径向梯度变换的方法提取舰船目标。此类算法计算量较小,可以快速搜寻目标区域,并已经用于硬件移植[15],但对算法设计要求较高。近年来,随着深度学习的迅速发展,出现了R-CNN、yolo[16-17]等成熟的目标检测框架。为本领域提出了一种新的思路。Ma[10]和Zhao[11]分别基于yolo和fast R-CNN两种目标检测框架,根据舰船目标特征进行改进,从而用于舰船识别。基于深度学习的方法对复杂背景的适应性往往优于传统算法,但此类算法对数据集的要求较高,同时算法模型参数量大,带来计算量大等问题。目前在轨检测的算法一般是在FPGA上实现,就本地服务器而言,FPGA的硬件配置较低,深度学习网络移植目前难度较大。
针对以上分析,本文提出了一种高效、快速的海上舰船目标检测方法,对复杂背景有较好的鲁棒性。首先,采用基于快速高效的全局性算法——谱残差显著性算法获取显著性区域,使用基于梯度幅值矩阵均值的自适应算法获取最优尺度得到全局最优显著图,同时设计较低的自适应阈值进行二值化处理。然后,针对低阈值导致的虚警增多及目标因周围局部复杂度较高而无法区分的问题,设计轮廓特征对候选区域进行分析,判断获得的局部区域是否符合目标特征,对复杂度较高无法区分的区域对应原图的部分重新进行局部显著性计算,将局部提取的高疑似区域替换原显著图的对应部分,得到最优显著图。最后,对切片进行降采样提取特征通过支持向量机进一步剔除虚警。实验结果表明,本文算法能在复杂背景下检测出不同尺寸和方向的舰船目标,在精度和召回率等常见评价指标都优于大多数同类算法,接近深度学习网络的检测精度,同时计算量和参数量远小于深度学习网络。
谱残差法(SR)是Hou[13]提出的一种基于频域分析的视觉显著性检测模型,通过对图像频域变换后进行差分来有效去除图像中的冗余信息,即海面、云层等背景信息,同时实现速度也快于大多显著性模型。算法处理效果如图1所示。
图1 输入图像及其显著图Fig.1 Image and its salient map
算法实现过程如下:
(1)将图像通过傅里叶变换进行频域转换,获得图像的幅度谱A(f)及其对数L(f)、相位谱P(f)等参数。
(1)
(2)
(3)
(2)在频域下采用均值滤波器hn(f)进行平滑,提取图像中的冗余信息。
(4)
(3)使用幅度谱的对数减去平滑后的结果得到谱残差,用谱残差代替幅度谱进行反变换。
(5)
(6)
(4)最后对复原图像进行高斯滤波,得到显著图。生成的显著图一般需要进行二值分割得到良好的可视效果。
从算法特性可知,SR算法的效果与图像的分辨率尺度息息相关。不同分辨率下关注的显著性目标可能会存在差异,同时高分辨率下存在的高频噪声、海杂波等背景也会导致虚警数目的增加。图2为图1输入图像在不同尺度下(分别为原图的大小的0.8,0.5,0.1倍)的显著图。图像中的海况复杂,在低尺度下目标较显著,同时噪声被抑制,效果较好。但尺度过小,也可能导致信息丢失,产生漏检等问题,需要根据实际情况确定最优尺度。为解决此问题,本文提出一种基于梯度的自适应尺度选择算法,来获取最优尺度的显著图。
图2 图1输入图像不同尺度下显著图Fig.2 Saliency maps at different scales
对于图像矩阵I中的任意一点I(x,y),其对应的梯度幅值A(x,y)可表示为:
(7)
其中:gx(x,y)、gy(x,y)分别为像素点I(x,y)分别在x、y轴方向的梯度值。其求取是通过图像矩阵(经过伽马较正)分别与模板T及其转置矩阵卷积得到。
(8)
图像幅值矩阵A的均值mean代表图像的平均梯度幅值,其可以很好地反映图像纹理的复杂程度。如图3所示。
(a)平静海面下(mean=0.26)(a)Under calm sea (mean=0.26)
(b) 复杂背景下(mean=1.22)(b) In complex contexts(mean=1.22)图3 输入图像及其梯度幅值图Fig.3 Image and its gradient amplitude map
从图3可以看出,在背景信息复杂的图像中,其梯度矩阵的均值mean远大于平静海面的图像。而复杂图像中存在大量的高频成分会大幅降低实际目标的显著性,需要对图像进行低尺度降维,使背景平滑,从而降低图像的平均梯度,减弱背景干扰。图4为图3(b)图像降维后的效果,此时尺度为0.1,梯度均值为0.52。与图2相比,背景被明显压制,目标也更加突出。
图4 在低尺度下的图像及梯度幅值图Fig.4 Image and its gradient amplitude map
经实验表明,图像的平均梯度在0.2附近时效果较好,定义其为标准平均值meanstd。根据图像的平均梯度与标准值的接近程度来匹配最合适的尺度。设定尺度参数为S=[0.75,0.5,0.25,0.1],选择的最优尺度索引c*为:
(9)
式中,meanS(c)是在c*索引代表的尺度下图像梯度的均值。最接近标准值meanstd的尺度为最优尺度。图5分别表示图3(b)中图像的显著图以及其在自适应最优尺度下的显著图。右图即为在最优尺度下的显著图,能够明显突出疑似目标。
图5 显著图对比Fig.5 Comparison of saliency maps
根据谱残差法的算法原理,取得的显著值层级相差较大,集中分布在0和1附近。同时由于遥感图像低频背景部分占比较大,导致低显著值的部分显著值极小且占比很大[15]。其显著性直方图如图6所示。使用常用的均值、方差等参数作为阈值不能很好地反映图像显著性的变化规律,而常用的OTSU阈值往往较大,容易遗漏目标。为了获得较好的分类效果同时尽可能避免遗漏,根据图像显著值的分布特征,本文采用一种基于直方图的阈值分割方法。在总体显著图中,设定大小在前10%的像素点为显著性点,其阈值对应显著图直方图大小在前10%对应的最小灰度级m所代表的灰度级数。
图6 显著图的灰度直方图Fig.6 Grayscale histogram of salient map
最后,将二值化的显著图还原为原来大小,即获得全局最优显著图。图7显示了某存在复杂背景图像的显著图通过各阈值分割方法的效果对比。可以看出,本文算法虽然存在一些冗余信息,但完整保留了疑似目标区域,没有出现目标遗漏。表1显示了在测试集中3种分割方法下检测到的目标数目,本文算法较其他方法能够保留更多目标。
(a)原图(a) Original image
(b) 本文分割方法(b) Segmentation method in this paper
(c) 文献[7]方法(c) Methods of literature [7]
(d) OTSU方法(d) Otsu’s method图7 不同分割算法下的全局显著图Fig.7 Global saliency graph under different segmentation algorithms
表1 不同阈值下提取效果对比
全局性算法的弊端来源于全局性阈值对局部区域的适应性差。为了降低漏检,全局阈值的设定应尽量小,这样导致可能无法分离一些高频背景与目标,在显著图中存在积聚的情况。图8为图5(b)中的一部分区域,由于此部分存在复杂海面、阴影等干扰,使得生成的显著图效果不佳。并不能把目标与背景分开。
图8 低阈值下复杂区域的显著图切片Fig.8 Slicing of salient maps of complex regions under low thresholds
本文将这些区域称为复杂区域。本部分将通过区域轮廓的形状等特征筛选出复杂区域,并对局部复杂区域进行显著性处理,最后对处理后的区域进行融合,以获取最佳显著图。检测流程如图9所示。
图9 基于轮廓的疑似区域处理流程Fig.9 Suspected region processing process based on contour
由于舰船为长条形,两边对称。本算法根据轮廓对应的形状特征对疑似轮廓进行筛选。
设计的具体特征如下:
(1)长宽比l,定义为疑似区域轮廓等效椭圆的长轴与短轴之比。
(2)占空比o,定义为疑似区域轮廓面积与其等效椭圆面积之比。
(3)紧密度c,定义如下:
(10)
其中:Perimeter和Area分别代表轮廓的周长和面积。区域为标准圆形时,c为1。随着区域边界的复杂程度增加,c也会逐渐增大。
本算法将显著图中的疑似目标区域分为3类:近似目标区域的高疑似目标、未知的复杂区域、虚警。分类标准如表2所示。
表2 基于轮廓特征的分类标准Tab.2 Classification criteria based on contour features
其中,高疑似目标需要满足下面所有条件,而满足以下任意条件的轮廓即为虚警,复杂区域为除高疑似目标和虚警外的其他部分。对各部分的分类效果如图10所示。
对于上述的复杂区域产生的主要原因是全局性的阈值无法对局部复杂区域进行很好的分割。处理方法是将该部分作为整体进行进一步显著性
(a)全局显著图(a) Global salience map
(b)提取的高疑似目标(b) High suspected targets extracted
(c)提取的复杂区域(c) Complex areas extracted图10 基于轮廓特征的预筛选分类Fig.10 Prescreening based on contour features
检测。首先对提取复杂区域以连通域为单位提取局部切片,采用低通滤波器对图像进行平滑,去除高频噪声,之后继续采用谱残差法生成显著图。图11表示对图8复杂区域的处理效果,可以看出,通过局部处理可进一步分离出疑似目标。之后对生成的区域依照2.3节的判定方法进行进一步判定。为提高算法效率,本步骤只判定此次结果存不存在高疑似目标,不进行迭代。
图11 复杂区域局部处理后的结果Fig.11 Result of local processing
图12 融合后的显著图Fig.12 Salient map after fusion
最后,将局部处理后的图像检测到的高疑似区域替换原显著图的对应部分,进行图像融合。融合效果图如图12所示。
下面的工作主要基于图像的轮廓特征进行目标的筛选,可能存在部分与目标形状相似的云块、海浪等信息,需要进一步判别。采用对切片降维后的像素点作为特征,结合标准化特征,通过支持向量机进行训练模型进一步筛选。
图像降维是机器学习的一种常见操作,类似于卷积神经网络的池化,可以降低图像中的冗余特征并获取深层特征,同时降低参数量,广泛应用于手写数字识别和人脸识别等项目中。
本文将切片图像降维到7×7大小的特征图。如图13所示,将特征图的所有像素作为特征(共49维)。同时需要对降维特征进行标准化,提取降维后特征图的最大值、最小值、均值、方差、原切片的方差和对应梯度矩阵方差比作为降维图像的标准化特征。
图13样本降维Fig.13 Image after Samples after dimensionality reduction
将从每个样本提取的55维特征组合成特征向量,之后通过SVM进行训练。将训练的模型作为二分类器,对候选区域进行精细判别。图14为SVM的检测效果示例。
(a)疑似目标定位(a)Positioning of suspected targets
(b)SVM检测结果(b)SVM test results图14 SVM检测结果Fig.14 SVM test results
为了充分验证算法特性,本实验从Google Earth收集复杂背景下遥感图像480张,大小从768×768到2 048×2 048不等,将其中320张作为训练用图片,并从中提取474个正样本,308个负样本作为分类器的训练样本。剩下的160张作为测试图片,共包含420个舰船目标。本实验的硬件环境基于intel core i7 8750H,GTX 1060,软件平台为MATLAB 2018b。
图15分别显示目标在复杂海面、阴影、碎云干扰下的处理步骤和检测效果。可以看出,本文算法可以在不同类型的场景下通过总体自适应尺度变换和局部复杂区域显著性处理得到高质量的融合显著图。最后通过SVM进行精细辨别,在各种情况下均能准确检测到目标。
(a)原图(a) Original image
(b)局部处理后的融合显著图(含阈值分割)(b) Fusion saliency map after local treatment
(c)目标精细判别(c) Fine identification of targets图15 舰船检测实验结果Fig.15 Ship detection test results
在算法耗时方面,在当前软硬件环境下训练SVM分类器用时39.28 s,对于大小为768×768的图像,单次检测平均用时1.667 s。此外,本文采用召回率(Recall)和检测精度(Precision)来评价算法的有效性,各指标定义如下:
(11)
(12)
其中:NDS代表检测到的舰船数目,NTS代表舰船的总数,NDF代表检测错误检测的数目。
为验证算法效果,本文算法与文献[3]和文献[9]中算法进行了对比。文献[3]算法采用基于元胞自动机的显著性算法结合E-HOG梯度特征实现目标检测。文献[7]算法采用基于谱残差法结合形状、纹理、梯度各方面的融合特征实现目标检测。对比结果如表3所示。本文算法在各项评价指标均优于对比算法。主要原因是本文算法在全局尺度、局部复杂区域和阈值分割等方面都加入了自适应选择最优参数的方式。在复杂背景下的鲁棒性较好,可以从背景干扰中获得更多更完整的目标区域。
表3 与同类算法的检测效果对比Tab.3 Compared with similar algorithms
本文在算法的检测效率、轻量化和可迁移性方面,与现今常用的目标检测网络yolo-v3、yolo-v4、yolo-v4tiny对比,以输入768×768大小的三通道图像为例,主要考虑计算量和参数量。同时,基于Python语言及PyTorch框架实现了网络的搭建。将输入的320张图片进行标注后进行训练。以相同的剩余160张图片的数据集作为验证计算网络的精度和召回率(置信度为0.5),结果如表4所示。
表4 与深度学习主流网络的对比
通过人工选择特征及自适应的图像降维等操作,可以看出,本文算法在参数量和计算量等都远低于深度学习相关网络,同时在检测精度和召回率上达到了近似深度学习网络的精度。本文算法在疑似区域提取阶段可以定位到绝大多数目标。差距主要在于分类器的精度部分,存在更多的漏检和误检。在其他方面,本文算法对硬件性能、功耗、移植的难度要求相对较低。同时鉴于参数的数目和解释性,本文算法迁移性也相对更强,更符合实际工程需求。
本文提出了一种适用于复杂海况下的自适应舰船快速检测方法,可快速高效地实现对可见光遥感图像的舰船目标疑似区域的定位与检测。其优势主要体现在以下几个方面:算法在整体上,通过评价图像的梯度均值来自适应选择图像的尺度,并采用基于直方图的自适应阈值,提高了显著性算法的效率,并能减少虚警数目和疑似区域遗漏。在局部方面,针对全局阈值无法很好适用于部分复杂区域的问题,通过设计轮廓特征进行筛选,对复杂区域做进一步显著性特征提取,对处理结果进行融合,获取高质量的疑似目标区域。最后对切片降维提取特征训练支持向量机模型进行精细判别。实验结果表明,本文提出的算法的召回率为91.2%,检测精度为91.4%,可以满足复杂海背景下海上舰船目标实时快速定位和检测的需求。同时,在计算量和参数量均远少于目前主流的深度学习目标检测框架,降低了在轨硬件移植的难度和维护成本。