基于SVM的无人直升机着舰标志识别方法研究
2019-08-26吴鹏飞石章松闫鹏浩吴中红
吴鹏飞,石章松,闫鹏浩,吴中红
(1.海军工程大学 兵器工程学院,湖北 武汉 430033;2.中国人民解放军92925部队,山西 长治 046000)
0 引言
舰载无人直升机在现代海战场上有非常广泛的用途,能够执行引导、侦察、警戒和搜救等多种任务,但由于海况复杂,舰船甲板空间有限,使得无人直升机安全着舰成为一个难题[1]。在众多着舰方法中,基于视觉的着舰最引人注意,这是因为视觉信息具有精度高、视场大、不受电磁干扰等优点[2]。目前国内外很多研究机构已经开展了相关方面的研究。如加州伯克利分校就旋翼无人机舰船着陆进行了研究[3];南京航空航天大学对无人机的视觉着陆进行了广泛而深入的研究,涵盖了基于视觉的整个着陆过程[4]。以上研究中实验环境过于理想,着舰标志的设计具有特定的形状与图像特征,因此识别准确率较高,但其方法不具有普适性,如若更改着舰标志形状,则其识别率大大降低。本文针对目前着舰标志识别方法的缺点,采用基于支持向量机(support vector machine,SVM)的机器学习方法,对通用着舰标志在模拟着舰环境下进行识别,并针对2种不同核函数对应的SVM训练算法进行了对比分析,指出了各自适用的条件,实验结果证明该方法具有普适性,准确率也满足需要,具有一定的现实意义和工程实践价值。
1 着舰标志检测
1.1 着舰标志
着舰标志是引导舰载机着陆的重要设施,让飞行员参考自身和着陆点的位置,国际上通常采用大写的“H”(helicopter的缩写)作为直升机着陆平台的标志。国际上在对无人直升机自主着舰研究过程中,许多研究机构设计了便于机器视觉识别的新型标志,如图1(左)所示为加州伯克利分校设计的着舰标志[5]。本文以基于视觉的无人直升机自主着舰为研究背景,考虑到飞行甲板周边环境较为空旷,对着舰标志的干扰较少,且舰船上空间比较紧张很难有额外的空间来放置特殊的着舰标志,故本文直接采取通用型直升机着舰标志“H”,如图1(右)所示。
图1 着舰标志Fig.1 Landing marks
1.2 着舰标志图像预处理
在无人直升机对着舰过程中,机载摄像机采集到的图像信息中存在着光照不均、聚焦模糊、角度偏差等外界干扰。为了避免这些干扰,需对采集到的图像视频信息进行处理,保留图像中形状、特征等核心信息,滤除无关信息,便于减小计算量,并增强有关信息的可检测性。
本文对图像相继进行了以下预处理:阈值分割、灰度化、采样与量化、滤波和二值化。二值化后的图像已基本滤除了背景噪声,只剩下较为明显的目标轮廓图。由于目标轮廓周围存在着明显的像素值差异,根据这一特征,利用相邻像素点之间的比较,根据像素值突变来判断轮廓。其效果如图2所示。
图2 着舰标志轮廓提取Fig.2 Contour extraction of landing mark
1.3 图像特征提取
图像的特征提取是用一组数据来描述整个图像,这组数据要简单且有代表性[6]。首先根据链码找到图像边界,并对图像进行轮廓跟踪,进而求出图像的Hu不变矩。Hu不变矩不受光线、噪点和几何形变的干扰,是图像良好的特征。
(1) 链码是一种边界的编码表示法,编码的依据是边界方向。在研究轮廓特征时,常使用原链码来表示图形的轮廓。原链码指从曲线起点开始,按顺时针方向观察每一线段走向,并用相应的指向符表示,结果就形成表示该边界的数码序列[7]。
(2) 轮廓跟踪指按照一定的顺序,找出边缘点来跟踪得到区域边界[8]。轮廓跟踪首先要识别图像边界点,边界点识别过程如图3所示,整个轮廓跟踪的流程如图4所示。
图3 图像边界识别流程图Fig.3 Flow chart of image boundary recognition
图4 轮廓跟踪流程图Fig.4 Flow chart of contour tracking
(3) Hu特征矩计算:对于一幅图像,可以把像素的坐标看成是一个二维随机变量(x,y),那么一幅灰度图像可以用二维灰度密度函数来表示,因此可以用矩来描述灰度图像的特征[9]。M×N的数字图像,其p+q阶几何矩mpq和中心矩μpq为
(1)
(2)
然后利用二阶和三阶规格中心矩可以求出7个不变矩组(φ1,φ2,…,φ7),这7个不变矩构成的特征量便是Hu不变矩。
2 基于SVM的着舰标志识别方法
2.1 支持向量机
在机器学习中,SVM是用来解决分类问题的常用工具[10]。它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。对于非线性可分的样本集,SVM可釆用核函数方法把原始输入数据空间映射到高维核函数空间,从而可将非线性可分样本集转变成特征空间线性问题[10]。
2.2 SVM核函数
采用不同的核函数将导致不同的SVM算法,常见的核函数有如下形式:
(1) 线性核函数是最简单的核函数[11],主要用于线性可分的情形,它在原始空间中寻找最优线性分类器,具有参数少速度快的优势,如式(3)所示:
K(x,z)=xTy+c.
(3)
(2) 多项式核函数属于全局核函数[12],参数d越大,映射的维度越高,计算量就会越大,适合于正交归一化数据,如式(4)所示:
K(x,z)=(axTy+c)d.
(4)
(3) 径向基核函数属于局部核函数[13],其参数决定径向作用范围,学习能力较强,具备良好的推广性,如式(5)所示:
(5)
2.3 基于SVM的着舰标志识别算法框架
基于SVM的着舰标志识别算法框架分为训练和识别两大模块,训练模块部分对图像样本进行预处理、特征提取和SVM训练,识别模块根据离线训练的参数库对着舰标志图像进行判断[14]。算法框架如图5所示。
图5 着舰标志识别算法框架Fig.5 Framework of the landing mark identification algorithm
3 实验
3.1 实验环境
(1) 硬件环境:PC机一台,小型无人机一架,无人直升机着舰标志一个。无人机如图6所示,其参数如表1所示。实验用着舰标志为边长1 m的白色正方形,如图6所示。
(2) 软件环境:操作系统为Windows 7,开发平台为MatlabR2014b。
图6 实验用无人机和着舰标志Fig.6 UAV and Landing mark for experiment
参数名称参数无人机型号Parrot Bebop飞行时间/min约25控制距离/m2 000像素1 400万照片分辨率3 800 p×3 188 p录像分辨率1 920 p×1 080 p(30 fps)
3.2 实验步骤
Step 1: 利用无人机对着舰标志图像进行采集,建立样本库,并将其分为训练集和测试集,2个样本库中均包含一定的正样本和负样本;
Step 2: 对样本库中2个数据集进行预处理;
Step 3: 基于Hu不变矩对处理后的二值图像进行特征提取;
Step 4: 设计SVM分类器,选择不同核函数对样本进行训练;
Step 5: 对测试样本数据进行SVM识别,并针对基于不同核函数的SVM训练算法的结果进行对比分析。
3.3 实验方案
3.3.1 样本库的建立
实验中样本库主要是利用小型旋翼无人机在实验条件下在不同的场景、距离、角度和光线条件下采集的着舰标志图像。目前很多对着舰标志识别的研究都是在室内采集的样本,实验环境过于理想。相较而言,本文的样本集较为全面,可以真实模拟无人直升机着舰时对着舰标志图像的采集样本。在采集的图片中挑选了540张样本,采用随机生成的方式,生成七维向量,样本都经过归一化处理,尺寸为480×272,数据统计如下表2所示,部分样本图片如图7所示。
表2 样本数据表Table 2 Sample data 张
图7 部分样本图片Fig.7 Part of sample pictures
3.3.2 着舰标志检测
由于机载摄像机的分辨率较高,如直接对采集的图像进行处理,将给实验计算机带来较大的运算负担。为了减轻计算量并缩短相关程序的运算时间,本文对所有的图像都经过归一化处理,向下采样为尺寸128×128。然后对每一幅图片进行灰度处理、针对不同种类噪声分别滤波、二值化、后期噪声处理、提取边缘、记录轮廓链码和特征提取。边缘识别和滤波处理后的图像轮廓如图8所示,对图像提取特征值的部分数据如表3所示。
3.3.3 基于SVM的训练与测试
经过特征提取,已经获得了各个样本图片对应的Hu不变矩,将所有样本的不变矩组建样本库,这样就获得了可以供SVM学习、训练、测试的样本库数据集[15]。在SVM模型对样本进行学习训练时,需要选择核函数模型,考虑到本文中样本库数据规模一般,特征矩维度较小,同时为了比较各个核函数对识别效果的影响,在对采集到的样本轮廓特征数据集展开训练的过程中,分别采用了高斯镜像基核函数(RBF)和线性核函(linear),并对2种核函数对样本训练的效果进行了对比。在本算法中,训练效果的判断准则如下:
图8 边缘识别和滤波处理后的图像轮廓Fig.8 Image contour after edge recognition and filtering
3.3.4 实验结果分析
本文针对2种核函数对样本训练的效果进行了对比:
(1) 线性核函数
线性核函数是最简单的核函数,其涉及到的参数少、速度快、运算较为简单,但主要用于线性可分的情形。由于本文的Hu特征矩向量维度较高,使用线性核函数分类较为勉强,虽然其分类准确度上不太令人满意,但其运算速度较快,综合而言,也在可接受的范围之内。其部分训练结果如表4所示。使用线性核函数模型对全部样本库的识别进行训练,最终识别正确率在83%左右浮动。
表3 部分Hu不变矩Table 3 Part of Hu invariant moments
表4 部分样本识别结果表Table 4 Recognition result of part samples
(2) 高斯镜像基核函数
高斯镜像基核函数主要用于线性不可分的情形,如果参数较多,其分类结果非常依赖于合适的参数,这需要通过训练数据的交叉验证来寻找。利用高斯镜像基核函数对样本展开训练的部分结果如表5所示。
可以看到判断失误的多是集中在负样本,但负样本为随机生成,由于其中恰巧有与正样本类似的样本被误判为正样本。使用高斯镜像基核函数模型对全部样本库的识别进行训练,经过多次迭代,最终识别结果正确率在87.5%~93%之间浮动。
表5 部分样本识别结果Table 5 Recognition result of part samples
综上所述,在使用默认参数时,如果特征提取效果较为理想,且包含的信息量足够大,那么很多问题都是线性可分的,那么Linear核训练的效果一般满足需求,但如果特征提取结果不够理想,信息包含量不够大,则通过大量数据的交叉验证,可以找到比Linear核具有更好效果的RBF核,其识别准确率更高。
4 结束语
本文针对基于视觉的无人直升机着舰难题,采用基于SVM的机器学习方法对着舰标志进行识别,实现了整个着舰标志识别流程,准确率满足要求。针对2种不同核函数对应的SVM训练算法进行了对比分析,对比发现在特征提取效果较为理想时,Linear核效果更好,但如果特征提取结果不够理想,信息包含量不够大,则通过大量参数的尝试,可以找到比linear核具有更好效果的RBF核,识别准确率更高。本文所做工作可为基于视觉的无人直升机自主着舰提供参考,具有一定的工程实践价值。