赵浩光,王 平,董 超,4*,尚 洋
(1.国防科技大学 空天科学学院,湖南 长沙 410073;2.中国科学院 长春光学精密机械与物理研究所,航空光学成像与测量重点实验室,吉林 长春 130033;3.中国航空工业集团公司沈阳飞机设计研究所,辽宁 沈阳 110035;4.中国科学院大学,北京 10049;5.图像测量与视觉导航湖南省重点实验室,湖南 长沙 410073)
遥感图像海面舰船目标检测技术无论是在民用还是军事方面都具有十分重要的意义。在民用方面,用于监控渔业管理,海运交通,辅助遇难船只海洋救援等。在军事方面,用来监督敌方重点港口海域部署与动态,评估战时海上打击效果等。与其他遥感数据源比较,光学遥感图像内容丰富,直观易于理解,分辨率高,给舰船目标的精确识别带来优势。然而,光学遥感图像的成像特性也给舰船检测带来一定的困难点。检测易受云雾,海杂波,海岛等复杂背景的干扰,造成虚警和漏检;舰船目标在亮度,颜色,纹理等方面存在差异,不利于提取稳定的目标特征,影响鉴别过程;遥感图像采用俯视角度成像,导致舰船头朝向不固定;遥感成像距离远,相比于自然图像中的目标,舰船目标尺寸小。所以,检测遥感图像中的目标需要额外考虑尺度和方向变化问题。接下来调研了现存的舰船检测方法。首先,基于阈值分割的方法[1]计算简单,适用于检测平静海面背景中的目标。但当存在云雾干扰时,由于云雾像素值通常高于海面背景,所以容易被判定为目标像素,产生大量虚警。基于滑动窗口的舰船目标检测方法[2]首先生成不同尺度和不同长宽比的窗口,然后使用窗口在图像中按顺序滑动,提取每一个图像子窗口的特征,使用训练好的分类器判断该子窗口是否包含目标。该类方法是目标检测中比较经典的传统算法。但该方法存在以下两个问题:由于目标尺寸和方向变化,无法选取合适的窗口大小;由于遥感图像中海面背景占大部分区域,只有极少数窗口包含人造舰船,这将导致检测效率低。考虑到以上问题,很多学者将视觉显著性模型[3-4]引入到舰船目标检测中。Xu 等[5]使用融合显著性算法提取疑似舰船区域,Dong 等[6]利用区域协方差的单一特征值构建显著图来获取疑似舰船区域。该类方法采用由粗到细的舰船检测机制,首先使用视觉显著性算法生成显著图,然后使用阈值分割提取目标疑似区域,最后引入目标确认算法剔除虚警。最后一种检测算法是基于卷积神经网络的[7-9]。该类方法主要分为one-stage算法和two-stage算法。在检测遥感目标时,取得了很好的效果。但是该类方法需要大量的训练数据。此外存在模型参数量大,算法设计复杂,可解释性差等问题。
针对以上分析,本文提出了一种适用于复杂背景的海面舰船目标检测方法。该算法采用由粗到细的检测机制。首先为了克服目标尺度多变问题,利用频谱残差显著性模型[10]生成多尺度显著图,然后使用基尼指数自适应选择最优显著图。考虑到阈值分割算法带来的漏检测问题,提出一种新的方案来分离目标和背景像素点。利用图像膨胀原理获取显著图的局部极大值点,然后使用 k-means 算法[11]判断极大值点属于目标像素点还是背景像素点。接着对目标点邻近区域进行精细分割。最后引入基于径向梯度变换的旋转不变特征[12]来进一步剔除虚警。实验结果表明,该算法能够成功检测出不同尺寸和方向的舰船目标,有效克服复杂背景的干扰。本文算法检测正确率 93%,虚警率 4%,优于其他舰船检测方法。算法流程如图 1 所示。
图1 本文算法总体流程Fig.1 Scheme of proposed detection algorithm
Hou[10]认为自然图像由两部分组成:显著信息和冗余信息。对于包含舰船目标的遥感图像,目标对应显著信息,而海面背景对应冗余信息。故可以使用频谱残差(SR,Spectral Residual)模型生成视觉显著图,提取感兴趣区域,计算公式如下:
A(f)=R(F[I(x)]),
(1)
P(f)=S(F[I(x)]),
(2)
L(f)=log(A(f)),
(3)
R(f)=L(f)-hn(f)×L(f),
(4)
S(x)=g(x)×F-1[exp(R(f)+P(f))]2,
(5)
其中:I(x)是输入图像,F和F-1分别表示傅立叶变换和逆变换,A(f),P(f),L(f)分别表示傅立叶幅度谱、相位谱及对数谱,hn(f)表示平滑滤波器,R(f)代表残差谱,使用R(f)和P(f)进行傅立叶逆变换来获得最终显著图S(x)。假设原始图像尺寸为w×h,SR模型将其调整到固定的尺寸64×(h×64/w),然后对改变尺寸后的图像I(x)进行频谱残差变换,最后将显著图调整回原图像的尺寸。对包含不同尺寸的遥感目标图像进行测试,实验结果如图2所示。
图2 尺度固定下的显著图Fig.2 Saliency map with fixed scale
图2包含具有不同尺寸目标的两幅图像,SR算法得到的显著图适于提取尺寸较大的舰船目标(见图2第2行)。对于第1幅遥感图像,得到的显著图边缘模糊,只突出小部分目标,无法分清图像中的目标个数,所以SR算法对舰船目标的大小非常敏感。接下来讨论一下如何改进该算法来适应目标尺寸的变化。
为了检测不同尺寸的舰船目标,将显著性算法扩展到多尺度。得益于SR算法的设计,很容易扩展到多尺度,只需改变算法输入图像的尺寸。对于大小为ω×h的遥感图像,设定尺度参数为sc={0.7,0.4,0.2},按照该倍率依次调整图像尺寸得到对应的多尺度显著图S={S1,S2,S3},结果如图3所示。可以看出,对于第1幅图像,显著图S1是最优的,它能够成功区分舰船个数,目标边缘清晰。对于第2幅图像,显著图S3是最优的,它能够均匀突出目标整体,在抑制背景方面性能最佳。很多学者采用不同的融合机制将多尺度显著图融合成单幅显著图。这里探索了另外一种解决方案,即根据适合的判断准则挑选最优尺度的显著图。
图3 不同尺度下的显著图Fig.3 Saliency map with different scales
为了自适应选择最优尺度,本文引入了基尼(Gini)指数,其定义如式(6)所示:
(6)
基尼指数反映的是数据集中随机选取两个样本他们不属于同一类别的概率。数据集越纯,基尼指数越小。这里可以将显著图看作数据集,k表示灰度级,Y=255。pk表示取值为k的像素点占总像素数的比例。由基尼指数的定义可知,当显著图中只存在较高的目标像素和较低的背景像素时,基尼指数最小。而存在由复杂背景产生的中间灰度级时,基尼指数变大。所以使基尼指数最小的显著图即为最佳尺度显著图:
(7)
其中c*是最佳尺度显著图对应的索引值。对于图3中第1幅图像,Gini(S1)=0.74
获取显著图后,很多学者采用Otsu算法[13]对显著图进行阈值分割。给定一副显著图,大于Otsu阈值设为目标,小于该阈值判定为背景。但是使用该方法有以下两个缺点:
1.由于缺少空间结构信息,该方法易在目标内部产生孔洞导致无法提取完整目标。
2.当图像中存在多个目标时,由于 Otsu 算法获取的阈值过高,因而产生漏检测。
考虑到以上缺点,本文使用新的方案来分离目标和背景。首先利用图像膨胀获取显著图的局部极大值点,然后使用k-means 算法判断极大值点属于目标像素点还是背景像素点。最后对碎片使用阈值进行精细分割。
显著图是一幅灰度图像。对灰度图像进行腐蚀定义如式(8):
(8)
其中:f表示灰度图,b是结构元素,其大小为Nse×Nse。⊕表示腐蚀操作。和二值图像不同,灰度图像的膨胀操作由“或”变为了“最大值”操作。图像局部极大值计算示意图如图4所示,接下来进行详细说明。
图4 局部极大值点计算过程Fig.4 Process of local maximum calculation
对于图4(a)中像素值满足高斯分布的灰度图,左侧是它的灰度值矩阵。极值点出现在图像中心。对其使用大小为 的结构元素进行膨胀,得到膨胀后的灰度图。可以看出极值点的像素值在膨胀后保持不变。利用该性质就可以求出一副灰度图像的局部极大值点。
结构元素尺寸的选取和舰船目标大小成正比,这里设为Nse=5×c*。以图3第二幅显著图S2为例,Nse=15,对其进行三维显示,局部极大值点提取结果如图5所示。其中“*”表示局部极值点在三维空间中的位置。
图5 局部极大值点提取结果Fig.5 Local maximum extraction results
从图5中可以看出,局部极大值点可能属于目标,也可能属于背景。接下来使用k-means算法对局部极大值点进行聚类,选取极值点的显著值作为特征,k=2。首先算法随机选取两个点作为聚类中心,然后计算各个极值点到两个聚类中心的距离,把极值点归到离它最近的聚类中心所在的类。然后重新计算新的聚类中心,再重复之前的步骤,直到两次聚类中心不再变化。聚类中心显著值大的类别对应目标所属类别,对图3第1行所示的最优显著图S1,使用Otsu阈值分割和本文提出的分割算法获得的实验结果如下。
图6 候选区域提取方法对比Fig.6 Comparison of candidate region extraction
图6黑色“*”代表极值点位置,红色“o”代表候选区域的中心位置(彩图见期刊电子版)。图6(a)~图6(b)是经过Otsu阈值分割后的结果,可以看出邻近目标出现团聚现象,无法获取准确目标个数和中心位置,出现漏检测。图 6(c)是极值点提取结果,每一个舰船目标区域都成功检测到局部极值点。图6(d)是经过k-means聚类后的检测结果,准确地分离了目标和背景的局部极值点,引入的少部分虚警目标可以通过后续精细分割和特征提取阶段剔除。
经过前述步骤,获得了目标所在的大致中心点区域,接下来介绍一下如何获取目标切片。首先以极值点为中心,选取窗口大小为Nrp×Nrp的区域作为目标整体可能存在的区域。其中Nrp=8×c*。对于每一个候选区域,提取该窗口内像素点的显著值,使用Otsu阈值分割获得该窗口内的二值图像。典型的候选区域和分割结果如图7所示。
图7 候选区域分割结果Fig.7 Candidate region segmentation results
接下来使用一定的判断准则进一步剔除较明显的虚警。只有二值图像提取的连通区域满足以下条件,才认为它是舰船目标区域:
(1)该连通区域面积是最大的,并且要大于候选区域面积的20%,小于候选区域面积的70%。
(2)该连通区域面积和其最小凸多边形面积比值大于0.9。
首先,每一个二值图像只保留面积最大的目标区域。该步骤可以剔除噪声点和邻近舰船区域的干扰(即每个候选窗口只负责检测对应的舰船目标,和它相近的目标由其他窗口负责检测)。其次,连通区域面积和其最小凸多边形面积比值反映出区域的坚固性程度。目标区域近似呈椭圆型分布,非常坚固。虚警区域边界特征复杂,没有固定形状。存在容易突起或者凹陷区域,不够坚固。所以使用该比值来区分正负样本。图7中正样本该比值为 0.99,负样本该比值为0.87。这里设置经验阈值为0.9。
经过上述步骤,保留满足条件的连通区域作为真实目标。然后提取该区域在原图像对应位置的最小外接矩形作为目标切片,输入到后续的特征提取和鉴别步骤。
由于候选区域舰船朝向不固定,所以在目标鉴别阶段引入基于径向梯度变换的特征描述子[12]。首先介绍径向梯度变换,接着介绍如何利用该变换提取旋转不变特征向量。
图8 径向梯度变换解释Fig.8 Illustration of radial gradient transform
对于图8中的坐标系,原点c表示候选区域中心点,p表示候选区域任意像素点,使用g表示像素点p的梯度,将其投影到径向方向r和切向方向t,那么g可以表示为(gTr)r+(gTt)t,当像素点p绕着原点c旋转 时,g的方向对应发生旋转。使用Rθ表示旋转矩阵,旋转后的向量可以表示为:
p′=Rθp,r′=Rθr,g′=Rθg.
(9)
旋转后的梯度g′可以使用(g′Tr′)r′+(g′Tt′)t′表示,那么可以推出:
(g′Tr′,g′Tr′)=(Rθg)TRθr,(RθgTRθt)=
(10)
从公式(10)可以得出一个结论,即旋转前后的梯度在径向方向和切向方向的投影值不变,也就是g和r,t之间的夹角不变:
(11)
使用θrgt重新表示像素点梯度的角度,它是旋转不变的,梯度的幅值可以表示为:
(12)
通过引入径向梯度变换,可以得到像素点旋转前后梯度保持不变。Hog特征[14]首先将目标切片分成矩形块状区域,然后统计梯度直方图。当切片旋转后,不止像素点的梯度角度发生变换,像素点所属的块状区域也会变化。经过前述讨论,引入径向梯度变换保证了梯度角度不变。为了保证旋转前后像素点所属区域不变,将划分方式由矩形块状变成圆环形区域。
具体划分步骤如下:记L=Max(h,w),其中h,w分别表示碎片的高和宽。划分方式如图9所示。
图9 碎片划分方式Fig.9 Illustration of dividing patch
将360°角量化成8个区间,然后分别统计图9中相同颜色区域对应的径向梯度统计直方图,然后按顺序组成特征向量fn,其中n=72。接着使用逻辑回归进行二分类,判断对应的候选区域是真实目标还是虚警,进行精细判别。
为了验证本文算法性能,收集了复杂背景下光学遥感图像共500张,数据来源于Google Earth,共包含1 027个舰船目标。对于每一张图片,采用二值图像和目标矩形框两种方式进行手工标注。实验硬件环境为Inter core i5_2320处理器,主频3.0 GHz,内存3.0 GHz,Win10 专业版,实验所用代码均在MATLAB R2016b 软件下运行。接下来的对比实验验证了本文提出算法的有效性。
将本文提出的自适应选择最优尺度显著性模型(Gini-MSR)与 SR 模型[10]、DRFI 模型[15]、COV模型[16]进行了主客观比较。其中 DRFI 模型通过训 练随机森林回归器,将每个区域的特征向量直接映射到显著性分数。即采用监督学习方式学习每个特征对最终显著性的贡献。COV模型利用局部信息定义显著性,将每个矩形区域与周围邻近区域协方差矩阵的差异作为度量显著性的标准。在显著性模型对比试验中,主观上使用视觉显著图进行评估,客观上采用 ROC(Receiver Operating Characteristic)曲线来定量评价各算法性能。图10从左到右依次为:测试图像、Gini-MSR模型、SR模型、DRFI模型及COV模型对应的显著图。
图10 显著图主观比较Fig.10 Subjective comparison of saliency maps
图10中第1、2行图像海面背景相对简单,包含多个舰船目标且位置邻近。第3,4,5行图像存在大面积岛屿,海岸等。第6,7,8行图像存在不同程度云雾覆盖,目标呈现黑白极性等。从视觉效果看,本文 Gini-MSR 模型相比于其他显著性模型有以下优势:
(1)本文显著性模型能够较准确地检测出邻近舰船目标,不会出现团聚现象。
(2)当存在岛屿时,本文模型在引入部分虚警的前提下依然成功凸显舰船目标。而其他显著性模型更凸显岛屿,导致漏检测。
(3)算法对大面积云雾覆盖和邻近目标云层抑制效果较好。
此外,SR 模型使用固定尺度检测舰船目标,无法适应目标尺寸的变化。DRFI模型是基于自然图像数据集进行特征提取设计和分类器训练得到的,所以在遥感数据上进行实验时,效果不佳。COV模型检测结果较准确,不过模型计算量大,耗时。
接着使用ROC曲线定量评价显著性模型在光学遥感图像感兴趣区域提取方面的性能。曲线横轴代表假正例率(False Positive Rate, FPR),纵轴代表真正例率(True Positive Rate, TPR)。对于每一个阈值(0~255),将显著图和人工标注的二值图像(目标像素值为 1,背景为 0)进行比较,计算该阈值对应的TPR和FPR,然后绘制ROC曲线。模型获得的曲线越靠近左上角,检测性能越高。图11是上述显著性模型对应的ROC曲线图。可以看出本文模型对应的绿色曲线最靠近左上角,从定量上分析本文算法也由于其他显著性算法(彩图见期刊电子版)。
图11 ROC曲线Fig.11 ROC curves
获得显著图后,需要对显著图进行分割获得候选区域。图12是本文分割算法和Otsu阈值分割比较的部分结果。对于第1幅图像,Otsu分割结果定位不准,虚警高。对于第2幅图像,Otsu算法将邻近船只错分为同一目标,无法区分舰船个数。对于第3幅图像,Otsu算法产生漏检测。而本文提出的分割算法能够在复杂背景下有效检测舰船目标,很少出现漏检测。图10从主观上说明了本文分割算法的有效性。
图12 分割结果对比Fig.12 Comparison of segmentation results
通过候选区域提取算法生成疑似舰船碎片后,从Google Earth 提取对应位置的高分辨率碎片,这些碎片含有更多的目标细节信息,方便进行后续的径向梯度特征提取和逻辑回归分类。使用前300张图像产生的候选区域用来训练,后200张图像进行测试。使用检测正确率(Pd)和虚警率(Pf)对舰船检测方法进行评价。
(13)
(14)
其中:Nship代表图像集中包含舰船目标总数,Ndetection代表正确检测目标的个数, 为虚警数。
本文算法的实验结果如表1所示。
表1 不同检测方法实验结果
Tab.1 Experimental results of different detection methods
方法PdPf文献[1]89%10%文献[6]92%15%候选区域(Otsu)87%20%候选区域(本文)96%56%本文整体算法93%4%
从表1看出,本文提出的候选区域算法在量化指标上高于传统的阈值分割算法,检测正确率达到96%。整体算法包括候选区域生成和目标精细鉴别两个步骤,取得了93%的检测正确率和4%的虚警率,优于其他舰船检测算法[1,6]。
提出了一种适用于复杂背景的舰船检测方法,采取由粗到细的检测机制。首先使用 SR 算法生成多尺度显著图,然后使用基尼指数自适应选择最优显著图。接着依次进行局部极大值检测,k-means聚类,局部阈值分割等步骤提取疑似舰船区域。然后使用基于径向梯度的旋转不变特征和逻辑回归对候选区域进行二分类,进一步剔除虚警,确认真实目标。本文算法取得了93%的检测正确率和4%的虚警率。此外,算法能够适应目标尺寸和旋转的变化。