张 晓,王莉莉
(中国电子科技集团公司第三十研究所,四川 成都 610054)
随着卫星遥感技术的发展,基于卫星遥感图像的舰艇目标识别成为可能。舰艇目标的识别是世界各国的传统任务,在国土安全、舰船紧急救援、非法移民等领域有着广泛的应用。与传统的图像识别类似,舰艇目标的识别也主要分为遥感图像特征提取和分类器构建两部分。
在图像识别领域中,图像特征表达和分类器的性能能够直接影响到分类结果的准确率。遥感图像特征提取方法包括颜色特征、纹理特征和边缘特征等。颜色直方图特征[1]能够反应图像颜色的组成分布,即各种颜色出现的概率,但是由于颜色直方图特征是全局颜色统计的结果,因此丢失了像素点的位置特征。LBP(Local Binary Patterns,LBP)方法[2-3]常用于纹理特征提取,融合LBP特征与方向梯度直方图(Histogram of Oriented Gradient,HOG)特征构建分类器,能够有效提升分类器的检测效果[4]。Canny边缘检测算法[5]基于一个多阶边缘算子,不但给出了边缘检测的方法,也提出了边缘检测的计算理论。Sobel算子[6]利用梯度信息对图像进行边缘检测,通过计算局部区域内每个像素的梯度和不同方向从明到暗的变化率,判断该区域为边缘的概率,完成对图像的边缘检测。
现有的分类算法包括神经网络、K最近邻(KNN,K-NearestNeighbor)、支持向量机(Support Vector Machine,SVM)、AdaBoost(Adaptive Boosting,AdaBoost)等,都被广泛应用到图像识别中,并得到很好的识别效果。BP(Back Propagation)神经网络[7-8]是一种误差反向传播算法(Error Back Propagation Algorithm,BP算法),BP算法具有思想直观、易于理解、数学意义明确、步骤分明等优点,因此BP神经网络能够得到广泛的应用。SVM[9-10]根据结构风险最小化准则和分类间隔最大化准则寻找最优超平面,提高分类器的泛化能力,能够有效地解决非线性、维度高、易陷入局部极小值等问题。Freund等对Boosting迭代算法[11]进行改进,提出了AdaBoost算法[12-14],能够输出连续的实数值,具有更好的收敛性,在图像识别领域得到了广泛的应用。
在舰艇目标识别中由于缺乏足够多的训练样本,导致单一的特征提取方法对图像的表达能力较弱,单个分类器的识别准确率较低。为了提升舰艇目标识别准确率,本文通过使用一种迭代式的方法来应对分类模型缺乏足够的训练样本的情况,采用特征融合方法对图像进行表示,增强图像的特征表达能力,并采用多分类器融合方法构建舰艇目标识别模型,提升分类器的分类性能。
从Google的卫星地图上看,在地图缩放至20级以前,大多数的舰艇都很小,肉眼无法识别。同时由于拍摄日期以及天气因素导致Google地图在清晰度、亮度分辨率以及对比度等方面具有很大的差异。这些差异大大的增加了识别的难度,因此需要结合遥感图像的特点对图像进行预处理和特征提取,然后构建多种分类器并进行融合,实现舰艇目标识别,基本流程如图1所示。
图1 舰艇目标识别基本流程
本文以Google瓦片地图作为输入,提取图像的颜色特征和轮廓特征,并对多种特征进行融合,完成遥感图像的特征表达。然后构建SVM分类器、BP神经网络分类器和AdaBoost分类器,并对多个分类器进行融合,通过加权投票判断图像是否包含舰艇目标。
图2是一个典型的舰艇的图片。可以看出舰艇的背景基本是灰色的,停机坪都是白色的,停机坪中间为白色的圆圈且由直线贯穿,这些特征可以将舰艇与其他物体区别开来。因此本文提取颜色特征,并提取舰艇的轮廓特征(直线和圆的分布特征)来完成舰艇卫星图像表示。
2.1.1 颜色特征
颜色是遥感影像目标识别的重要特征,能够将舰艇与建筑、海面、普通船只区分开来。在RGB(Red Green Blue,RGB)颜色空间中灰色与红色、蓝色与绿色相容,因此当目标的颜色是灰色时,与1/3红色、1/3绿色、1/3蓝色的图片无法区分。这一现象在HSV(Hue Saturation Value,HSV)颜色空间是不存在的,因此本文选择在HSV颜色空间提取颜色特征。
图2 舰艇卫星图像
在HSV颜色空间中,H(Hue)代表色彩、S(Saturation)代表深浅(当S=0时,只有灰色)、V(Value)代表明暗,表示色彩的明亮程度。
本文首先将图像按照H轴划分5个区间、S轴划分5个区间、V轴划分5个区间,共划分为125个子空间,然后计算图像在每个子空间中的颜色一阶矩特征、二阶矩和直方图特征,完成图像的颜色特征提取。
2.1.2 轮廓特征
从图2可以看出,舰艇的直升机停机位的白色圆圈与直线特征比较明显,本文将白色圆圈和直线作为舰艇的轮廓特征。在实际的遥感图像中每张图片在亮度、对比度以及分辨率等方面均存在差异。为了实现特征的检测需要对上百万张遥感图片进行参数调整,这不太可能实现。
为了解决以上问题,本文对每个图像进行预处理。首先将遥感图像转化到HSV空间,采用滤波方法对图像进行预处理,然后采用Canny算子对滤波后的图像做边缘计算,最后利用霍夫变换检测图像的轮廓特征,图像预处理结果和轮廓特征检测结果如图3所示。
图3 预处理和轮廓检测结果
基于舰艇卫星图像的颜色特征和轮廓特征构建SVM分类器、BP神经网络分类器和AdaBoost分类器,然后设计融合规则对各个单分类器的结果进行融合。多分类器融合方式包括级联和并联,为了避免单个分类器分类错误造成最终决策错误,本文选择并联模式对单分类器进行融合,多分类器融合体系结构如图4所示。
图4 多分类器并联融合体系结构
2.2.1 软间隔SVM分类器
给定一个n个样本的训练集S={(x1,y1),…,(xn,yn)}∈(X×Y)n,其中xi∈X=Rd表示训练样本,yi∈Y={1,-1},i=1,2,…,n。如果训练集S是线性不可分的,那么通过核函数Φ将样本映射到高维Hibert空间H中,使得训练集在高维空间H中是线性可分的,然后在高维空间H中根据最大间隔原则寻找最优超平面。
软间隔支持向量机允许训练样本有错分点,并基于最大化间隔和最小化错分率的原则寻找最优超平面。引入一个惩罚系数C>0和松弛变量ξ≥0,超平面满足式(1):
假设求解软间隔支持向量机间隔最大化问题得到的最佳超平面是w*x+b*=0,对应的分类决策函数为
其中f(x)称为软间隔支持向量机,令h=w*x+b*,h的正负符号表示样本的类别,数值表示属于某个类别的置信度。
2.2.2 BP神经网络分类器
BP神经网络是一种误差反向传播、信号前向传播的神经网络,由输入层、隐藏层和输出层组成。信号在前向传播中,从输入层到隐藏层再到输出层逐层处理,并将输出层的记过与真实值的误差进行反向传播,并根据预测误差调整神经网络的权重和阈值,使神经网络的输出值不断地逼近真实值。常见的三层BP神经网络结构如图5所示。
图5 BP神经网络基本结构
对于训练集X中的样本x=(x1,x2,…xd),d表示向量维度,x1,x2,…xd是BP神经网络的输入值,输入层的节点个数一般设为训练集X的维度,O1,O2,…Om表示输出值,uik表示输入层与隐藏层的权重,wkj表示隐藏层与输出层之间的权重。
本文在训练BP神经网络分类器时,网络的输出层m=1,Oi∈R,i=1,2,…,n表示样本xi的输出值,当Oi>0时表示样本xi为正类,否则为负类,|Oi|表示样本归属于正类或负类的置信度。
2.2.3 Adaboost分类器
AdaBoost算法的核心思想是通过改变数据分布来构造多个弱分类器,并根据弱分类器对样本的分类情况确定样本的权重更新,如果弱分类器对样本的分类正确,则对应的权重减少,如果分类错误,则权重增加。本文选择Stump决策树作为弱分类器。
AdaBoost算法流程如下:
输入:训练集T={(x1,y1),…,(xn,yn)},其中yi∈{1,-1},样本权重w,弱分类器迭代次数T;
(2)DO FORt=1,2,…,T:
Step1:根据样本权重wt训练弱分类器:
END
2.2.4 多分类器融合规则
多分类器融合方法包括级联方式和并联方式,在级联方式中一个分类器的分类结果会影响另外一个分类器的结果,为避免单个分类器识别错误造成舰艇目标的识别错误,本文采用并联方式对多个单分类器进行融合。在并联模式中,各个分类器的训练是相互独立的,其核心是寻找一种合适的融合规则确定最终的分类结果。本文采用加权投票法对各个单分类器的分类结果进行融合,并判定图像是否包含舰艇目标。
针对舰艇卫星遥感图像提取特征后,分别采用SVM、BP神经网络和AdaBoost算法构建3个单分类器。对于样本x,3个单分类器的输出结果分别为fsvm(x)、fbp(x)和fada(x),若输出值为正则单分类器判定样本x为正类,否则为负类。|fsvm(x)|、|fbp(x)|和fada(x)可分别作为各个单分类器针对样本x的权重,融合后的分类器输出为:
如果f(x)>0,则判定样本x为正类,否则为负类。
分类器的训练需要足够多的数据进行学习,由于舰艇训练数据少,本文使用图像扩充技术对舰艇图像数据进行扩充。在google地图上根据200个舰艇目标图像,并经过5次平移、3次旋转和3次缩放,最终将图像数据集扩充到9 000幅图像,随机选择其中的6 500幅图像作为训练集的正类样本,2 500幅图像作为测试集中的正类样本。
实际上,在google地图中存在一些与舰艇图像很相似的图像。本文在google地图中随机选点并挑选了40 000幅与舰艇图像相似的卫星图像(普通船只、海平面、建筑等)和具有不同地形地貌特点的图像作为负类样本,其中30 000幅图像作为训练集负样本,10 000幅图像作为测试集负样本。
本文使用图像都是来自google地图离线下载的瓦片图像,并根据拼接原理对瓦片地图进行拼接,使图像能够包含整个舰艇目标,拼接后图像大小为640×640,数据集详细情况如表1所示。
表1 数据集详细信息
3.2.1 评价准则
由于测试集中正负类样本比例悬殊,采用准确率评价分类性能是不合适的,本文采用精确率Precision、召回率Recall和F-measure来评价分类性能。TP表示实际为正样本中被识别为正样本的比例,FN表示实际正样本中被识别为负样本的比例,FP表示实际负样本中被识别为正样本的比例,TN表示实际负样本中被识别为负样本的比例。精确率表示如下:
召回率表示如下:
F-measure表示如下:
3.2.2 仿真实验结果与分析
在上述训练集上分别采用SVM、BP神经网络和AdaBoost算法训练分类器,并将3种单分类器进行融合,在测试集上的识别结果如表2所示。
表2 多分类器融合与单分类器的识别结果
由表2可知,在3个单分类器中,SVM的Precision、Recall和F-measure均是最高的,BP神经网络的Recall高于AdaBoost算法,但是Precsion低于AdaBoost算法,导致BP神经网络的F-measure稍低于AdaBoost算法。对3个单分类器进行融合后,Precision可以达到66.32%,Recall可以达到82.53%,F-measure可以达到73.545,均高于其他3种单分类器,说明融合后的分类器性能得到了有效提升。
3.2.3 诺福克地区扫描结果
为了测试融合分类器对实际地区的识别效果,本文对诺福克地区进行整体扫描,使用的图像来自Google地图离线下载的瓦片图像,与训练集图像的处理方式保持一致,根据拼接原理对瓦片地图进行了拼接处理,图像大小为640×640,共得到20万幅图像。
经过融合分类器的识别和人工确认后,共计识别出24个目标,其中有21个是舰艇目标,有3个非舰艇目标。由此说明融合分类器能够识别出诺福克地区的大部分舰艇目标,具有一定的泛化能力。诺福克地区部分舰艇目标的分布如图6所示,白色图标代表舰艇目标。
图6 诺福克地区部分扫描结果
本文使用SVM、BP神经网络和AdaBoost算法构建单分类器,并采用加权投票法将多个单分类器进行融合,采用融合分类器对卫星图像舰艇目标进行识别检测。实验结果表明融合后的分类器分类性能最好,F-measure可以达到73.54%。在诺福克地区的整体扫描结果表明舰艇目标识别模型能识别出大部分舰艇目标,为国土安全提供可靠参考。