姚 艺,黄卫华,章 政,陈 阳,张子然
(武汉科技大学信息科学与工程学院,武汉 430081)
相比于基于GPS或惯导的无人机导航系统,机器视觉导航方式具有成本低、适应环境能力强、实时获取场景信息以及同时定位和建图等特点,基于机器视觉系统的目标检测和定位已经成为微型旋翼无人机自主导航的关键技术之一[1]。
机器视觉分为单目视觉和多目视觉,其中双目视觉是多目视觉的一种重要形式,它能够直接提供目标的三个维度信息,具有定位精度高、信息完整、成本低等优势。基于双目视觉的导航技术在无人机系统中得到了良好应用。侯永宏等[2]利用双目视觉实现无人机自主未知室外环境感知,采用ORB算法获取无人机位姿信息并采用SAD算法获取环境和障碍物的三维坐标,由此实现了无人机的自主导航;张博翰等[3]针对无人机安全飞行问题,利用双目视觉恢复周围环境特征点的三维坐标,采用角点匹配方法计算视差图,并通过视差图检测出障碍物并获得目标三维坐标;鲍继宇等[4]利用双目视觉获取硬管式无人加油机的三维坐标,采用Harris算法进行特征提取与匹配,采用Sampson进行三维重构,获得目标三维坐标,有效解决了自主空中加油近距编队阶段的相对位姿问题。
基于此,以基于双目视觉的四旋翼无人机为研究平台,针对其自主着陆系统中地标图像存在模糊噪声以及大量背景干扰问题,提出一种基于改进SIFT算法的无人机双目视觉目标识别与定位方法。利用图像预处理操作将目标物体准确识别,并利用改进的SIFT算法提取目标特征点,并采用局部敏感哈希算法进行特征匹配,提高特征匹配的效率和匹配精度,从而实现目标精确识别并定位,以此提高双目视觉系统的测量精度。最后,实验结果证明了所设计算法的可行性和有效性。
无人机双目视觉目标识别与定位算法结构如图1所示,主要包括两部分功能,地标图像预处理模块和地标特征提取与匹配模块。
图1 改进SIFT特征匹配算法
地标图像预处理模块:由于图像中存在模糊背景噪声以及大量背景干扰,且获取的地标图像中在HSV(hue saturation value)颜色空间中存在大量黄色和绿色,因此为了更利于地标特征的提取,采用HSV颜色空间获取彩色阈值,识别出地标,然后利用OTSU算法去除无人机运动产生的背景噪声,从而分割出边缘清晰的地标。
地标特征提取与匹配模块:将SIFT算子与BRIEF描述符相结合,生成二进制特征描述符,减少特征的内存占用,并采用局部敏感哈希LSH(locality-sensitive hashing)为匹配策略,提高特征匹配效率和精度,最后采用PROSAC(progressive sample consensus)渐进一致采样算法剔除误匹配特征点,提高地标特征点匹配的精确性。
在基于双目视觉的无人机自主导航系统中,采用如图2所示的“H”型着陆地标,并基于HSV色彩空间的ROI算法对地标图像进行识别与分割。考虑到无人机在自主着陆过程中双目视觉采集的地标图像易出现模糊背景噪声的问题,采用OTSU算法获得地标的色彩阈值,从而对分割出的地标边界进行有效处理。
图2 “H”型地标
HSV颜色空间不易受光照的影响,并且更接近与人眼观察事物的空间表示,因此采用基于HSV色彩空间的ROI算法识别地标区域。HSV颜色空间模型中包含色度H、亮度V和饱和度S。经过HSV转换后的地标图像如图3所示。
图3 地标的HSV颜色空间
首先,通过HSV颜色空间转换公式[5]将地标图像中红、蓝的RGB颜色值转化为黄、绿的HSV颜色值;然后,再将图像中的每一个像素点与预先设定的HSV阈值进行判断:对于符合分割阈值范围的区域进行保留,不满足分割阈值范围的区域设为白色;最后,将HSV颜色转换成RGB颜色合成像素后,显示分割后的地标。
采用OTSU算法[6]计算图像中的灰度阈值,并利用该阈值去除模糊背景噪声。通过计算方差寻找一个合适的灰度级,把图像灰度分成两部分,使得它们之间的灰度值差异最大。
(1)
结合地标图像的灰度信息,由式(1)获取地标图像阈值,将背景噪声与地标进行分离,从而精确地识别彩色地标区域。
尺度不变特征转换(scale invariant feature transform,SIFT)算法[7]是一种用来提取图像局部特征点的算法。传统的SIFT算法在生成描述符的过程中存在计算复杂且描述符维数大等问题[8],鉴于BRIEF特征描述符[9]是一种通过计算二进制测试值来直接计算二进制字符串的特征描述方法,将BRIEF二进制描述符引入SIFT算法中替代浮点型SIFT描述符,设计了一种基于BRIEF算法的改进SIFT算法,解决传统SIFT算法建立特征描述符效率低及占用内存的问题,提高地标特征点的提取效率。在此基础上,采用局部敏感哈希[10]算法实现稀疏匹配搜索,由此提高地标图像的特征匹配效率。
(1)基于SIFT算法的关键点确定。采用SIFT算法对已识别的地标图像进行关键点提取,通过不同尺度下高斯差分核与图像卷积生成的图像DOG(different of gaussian)金字塔模型。
设地标图像的像素点(x,y)的二维高斯函数为:
(2)
式中,σ为标准偏差。
由此定义DOG函数为:
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))⊗I(x,y)=
L(x,y,Kσ)-L(x,y,σ)
(3)
式中,⊗为卷积算子;I为卷积核;L=G⊗I。
将差分金子塔上的每一个像素点,与其上层、下层以及邻域的26个像素点进行灰度比较,由此获得极值点并将其作为候选特征点。在获取图像候选特征点后,对式(3)所示的DOG函数进行泰勒展开后获取特征点X的位置信息D(X),即:
(4)
(5)
(2)基于BRIEF算法的特征点描述。由于传统SIFT算法采用三线性插值的方法计算生成128维的特征描述符,使得SIFT特征提取计算量大的问题。将BRIEF算法引入SIFT算法中,利用BRIEF算法生成的特征描述符具有描述简单、计算量小等特点,提高SIFT算法特征匹配效率。考虑到基于双目视觉的无人机系统所获取的地标图像易存在光照、视角等变化,会使得特征点发生变化,而BRIEF算法不具有旋转不变性。因此,为了使BRIEF特征描述符具有旋转不变性,将方向信息写入到BRIEF特征描述符中,并将具有方向信息的二进制特征描述符引入到SIFT算法中代替SIFT特征描述符,从而生成具有方向、尺度及位置的二进制特征描述符。
BRIEF描述符属于二进制描述符算法,即用0和1描述,二值化分段函数τ定义为:
(6)
式中,I(p)和I(q)分别是图像I中像素点p和q的像素灰度值。则n维二进制特征向量可定义为:
(7)
在特征点4×4领域内选取256对像素点(pi,qi),(其中i=1,...,256),将所有特征点对构建成一个2×256的矩阵S:
(8)
为了使BRIEF特征描述符具有方向性,即对旋转具有一定的鲁棒性。利用特征点邻域像素计算特征点(x,y)的梯度幅值m和梯度方向θ′分别为:
(9)
(10)
获取特征点(x,y)邻域像素的梯度后,使用直方图统计特征区域的梯度幅值m和梯度方向θ′。直方图的峰值代表了该特征点领域内梯度的主方向θ,即该特征点的主方向。
然后,根据构建成的矩阵S,以及根据特征点主方向θ已经构建好的BRIEF模式查找表,查找对应主方向的旋转阵Rθ,并以此得到具有方向信息的特征点对矩阵Sr。
Sr=RθS
(11)
按照式(6)、式(7)计算由式(11)获得的具有方向信息的特征点的二进制特征向量,由此可得具有方向、尺度及位置的SIFT特征的二进制特征描述符。
(3)基于局部敏感哈希算法的特征点匹配。对双目图像进行特征匹配时,需要计算左图与右图中每个特征点之间的相似距离,从而易导致计算复杂及效率低等问题。局部敏感哈希算法能缩小特征点的搜索范围,因此,采用局部敏感哈希算法进行特征匹配,将图像中近邻的特征点映射到同一哈希桶内,提高特征匹配效率。此外,由于存在误匹配的问题,PROSAC[11]算法对采集到的特征点进行排序而非随机采样,大大减少随机采样寻找最优特征匹配点对的迭代时间,因此采用PROSAC算法进一步剔除初匹配过程中的误匹配点,从而获得精确的特征匹配点对。
步骤1:将无人机双目图像转化为HSV颜色空间,并用文献[5]中HSV颜色转换模型公式计算出地标图像中V通道、H通道以及S通道的值,获得HSV颜色空间的地标图像,再通过式(1)计算得到OTSU最大类间方差,获得灰度阈值,去除由于无人机震动、光照等原因产生的背景噪声,精确地识别并分割出地标;
步骤2:对已识别的地标构建差分金子塔,由式(4)计算关键点的位置,式(9)和式(10)计算关键点的尺度和方向,最终通过直方图统计邻域内像素的尺度和方向获得特征区域主方向θ,再根据式(11)和特征区域主方向θ,将方向信息写入BRIEF描述符中,并通过式(7)计算旋转后特征点的二进描述符,获得具有方向、尺度及位置的二进制描述符的SIFT特征;
步骤3:采用局部敏感哈希算法将左右图像中的二进制描述符映射变换到哈希桶中,并将左图像中或右图像中相邻的特征点映射到同一个桶中。以此方式进行搜索,获得特征点之间的匹配关系;
步骤4:利用PROSAC算法对步骤3中的特征匹配对进行误匹配剔除,获取精确的特征匹配对;
步骤5:利用三角形相似原理计算特征点的三维坐标,实现对目标特征的准确识别和定位。
搭建的双目视觉无人机实验平台由基于32位ARM-CortexM3内核的STM32F103RCT6单片机作为四旋翼无人机的飞控模块、双目图像采集模块、通信模块、显示模块及驱动模块等组成,其中双目相机由两个置于同一水平线上的CCD感光元件组成,且以下视方式安装在无人机上。双目相机最大分辨率为2560×960,帧率为60 fps,最小分辨率为640×240,帧率为60 fps。选取无人机在室内自然场景下采集的地标图像数据进行实验。
无人机双目视觉采集的地标图像如图4所示。地标图像的左、右目图像存在无关背景信息、运动模糊以及背景光照不均等问题,且两幅图像中的“H型”地标未处于同一水平线上。
(a) 左目图像 (b) 右目图像
(1) 背景去噪
针对无人机飞行过程中高度越高,背景噪声越多,从而导致目标边界处理效果不佳的问题,选取无人机在不同高度处采集的图像进行处理。以右目图像的预处理过程为例,分别采用基于HSV的ROI算法和基于OTSU与HSV的ROI算法对双目无人机在370 mm和970 mm飞行高度所获取的右目图像进行图像预处理。首先,采用基于HSV色彩分量的ROI算法对地标进行识别处理,其处理的彩色阈值分别为(2,76,77)和(255,255,255);然后,采用OTSU算法计算识别地标后的灰度阈值(阈值T=147),利用该阈值将背景噪声与地标进行分离,从而去除无人机抖动产生的背景噪声。实验结果如表1所示。相较于基于HSV的ROI算法来讲,基于OTSU与HSV的ROI算法能得到边界清晰的地标,较好地去除地标边界噪声。由此说明,目标识别预处理算法能较好的识别地标并对分割出的地标边界进行有效处理。
表1 目标识别与分割算法
(2)非同一水平极线的处理
针对无人机处于飞行状态导致采集到的地标图像极线不在同一水平线上的问题,采用极线校正的方式对经目标识别处理后的地标进行处理,则图4经过目标识别与校正预处理后的结果如图5所示。
图5 目标识别与校正预处理
为了准确提取地标上的特征,采用传统的SIFT算法对原始双目地标图像进行特征匹配操作。对图4所示的原始双目图像进行极线校正,在此基础上未采用目标识别预处理操作和采用目标识别预处理操作的特征匹配结果分别如图6和图7所示。
图6 未采用目标识别的特征匹配结果
图7 采用目标识别的特征匹配结果
将图6和图7所示的特征匹配结果进行对比。结果表明,未经目标识别的双目图像对地标特征提取的特征点少,且地标特征提取准确率低;而经目标识别的双目图像对地标提取的特征点多。由此说明基于OTSU与HSV的ROI算法能有效的识别并分割出地标,从而提高地标特征提取正确率。
为了提高特征匹配效率及准确率,将BRIEF描述符引入SIFT算法中代替SIFT特征描述符,采用所设计的改进SIFT算法对图4所示的双目地标图像进行处理,基于改进SIFT算法的特征匹配结果如图8所示。
图8 改进SIFT算法的特征匹配结果
在特征点相关邻域内选取n=256对(x,y)构造256 Bit的BRIEF特征向量。特征向量所需字节为:
Bit=n/8
(12)
则BRIEF特征描述符所需存储空间为32字节,对比具有128维的浮点型SIFT特征描述符,占用的512字节的存储空间,BRIEF特征描述符所占用的内存减少94%。
统计并对比图7和图8的处理时间、特征匹配正确数量以及双目图像的特征像素坐标,其中像素坐标选取位于“H”型地标中心周围处的特征。对比结果如表2和表3所示。结果表明:在目标特征像素坐标相差不大的情况下,改进SIFT算法的处理时间、正确匹配数量分别是传统SIFT算法的1/2倍、2倍,改进SIFT算法能提高目标的匹配正确率,同时降低匹配时间,且能获得准确的特征匹配点对的像素坐标。
表2 特征匹配时间和正确数量对比
表3 左右特征像素坐标匹配对比
为了获得无人机与地标之间的相对位置关系,分别选取图7和图8所示匹配点对计算每个特征点的三维距离,并将平均三维距离结果与测距仪对地标中心与双目视觉光心的实际距离进行对比。双目视觉的光心与地标中心的实际距离为970 mm。传统SIFT算法与改进SIFT算法所获得的测距结果如表4所示。结果表明,改进SIFT算法的测距误差百分比低于传统SIFT算法的测距误差百分比的5倍,能精确的实现基于双目视觉的无人机目标位置定位。
表4 距离测量结果对比
针对双目无人机自主着陆系统的图像目标识别问题,提出一种基于改进SIFT算法的无人机双目视觉目标识别与定位方法。采用基于OTSU与HSV的ROI算法对目标物体准确识别,并利用改进的SIFT算法提取目标特征点,再采用局部敏感哈希算法进行特征匹配,提高特征匹配的效率和匹配精度,从而提取完整的地标信息并进行定位,以此提高双目视觉系统的测量精度。实验结果证明,相比于传统的目标识别算法,本文算法可有效满足于双目无人机自主着陆系统对目标特征提取的正确性及效率要求,以及较好的特征匹配精度,有效的保证无人机自主着陆对目标的精确定位。