APP下载

机器人双目测距算法研究

2018-06-27郭攀杜鸿

无线互联科技 2018年5期
关键词:立体匹配特征提取

郭攀 杜鸿

摘要:机器人的研究是当今人工智能领域的热点之一,而双目视觉又是机器人研究领域的热点之.。文章对机器人双目视觉测距避障的实现过程和原理进行介绍。其中特征的提取与匹配是实现双目测距的核心和难点,匹配算法的选择和实现将决定匹配后测距的精确与否。文章提出一种基于特征点的立体匹配算法的融合实现方案,最终证明了该算法的有效性和可行性。

关键词:双目视觉;特征提取;双目标定;立体匹配

随着人工智能的热潮再次袭来,人们对于许多行业再次进行了深入的探索。比如汽车的自动驾驶技术、机器人的拟人化研究、智能语音交互等。而机器人的研究是其中的热点之一,怎样实现机器人的拟人化行为如行走避障、负重搬运等成为研究的热点。

本文针对机器人双目视觉的测距算法进行了相应的研究,提出了一种融合性的立体匹配测距算法。

1 双目摄像头的测距原理

用人的双眼两眼球间距称为眼基线去观察客观的三维世界的景物,由于几何光学投影,离观察者不同距离的点在左右两眼视网膜上的构像能产生生理视差,称为双目视差。它反映了客观景物的深度。人能有深度感知,就是因为有了这个视差,再经过大脑的加工形成的。基于视差理论的双目立体视觉,就是运用在基线两端的两个摄像机对同一景物成像,获得景物的立体图像对,通过各种算法匹配出同名像点,从而计算出视差,然后采用基于三角测量的方法恢复深度信息[1]。

双目摄像头的测距原理如图1所示。

其中:Ol和Or分别为左右摄像头的光心,f为摄像头的焦距,T为光心间的距离,P为空间中的一点,Xl和Xr分别为P点在左右成像平面上的点;d=Xl-Xr则为视差,最终Z即为所求的距离,从而实现点的三维信息恢复。

通过三角形相似原理可得距离公式(1)如下:

Z=

Tf

(1)

T-d

其中:T的距離是自己两个摄像头之间的距离,可以通过物理测量得到;f是摄像头的焦距,其值可以通过后续的摄像头的标定得到;故最重要的是要测出视差d,下面将给出具体的实现方法。

2 摄像头的标定

在摄像瞬间,物点、摄像机透镜中心和像点应处在一条直线上,但因摄像机物镜畸变的影响,物点在像片中的像点位置发生了位移,偏离了三点共线条件。所以,利用像片对目标进行识别前应进行预处理以消除物镜畸变的影响。这里利用棋盘进行矫正,这是因为棋盘的角点(即特征点)明显,矫正简单易行。矫正过程和得出数据如图2所示(上下摄像头一样)。

这样的图片共14张(不同角度),通过OpenCV和MATLAB处理后得到数据,处理时注意棋盘的内点数,本图片为6×6共36个内角点。左右摄像头相同,最终一起测量,得到的结果如图3所示。

其中内部参数:Focal Length为焦距、Principal point为主点、Skew为扭曲因子、Distortion为畸变系数。

外部参数:Rotation vector为平移向量、Translationvector为转移向量[2]。

到这一步就测出了公式(1)中的焦距f了,而T可以物理测量,相当于已知,接下来得出视差d就可以测出距离。

3 特征提取与匹配

特征提取一般分为轮廓和点两个方面,这里要进行点的匹配与距离测算,故选用特征点的提取方式。特征提取的主流算法一般有3种:SIFT,SURF,ORB等特征点提取算法。由于SURF是SIFT的改进版,故这里只研究SURF和ORB算法[3]。

3.1 SURF算法

SURF算法在积分图像上使用了盒子滤波器对二阶微分模板进行了简化,从而构建了Hessian矩阵元素值,进而缩短了特征提取的时间,提高了效率。其中SURF算法在每个尺度上对每个像素点进行检测,其近似构建的Hessian矩阵及其行列式的值分别为:

\(H_{approx)=\begin{bmatrix}D_{xx)(\sigma) &D;_{xy)(\sigma)\\D_{xy) (\sigma)&D;_{yy) (\sigma)\end{bmatrix)\)

\(c(X,y,\sigma)=D一{xx)D一{yy)-(0.9D一{xy))^2\)

其中\fD一{xx),D一{xy)\)和\(D一{yy)\)为利用盒子滤波器获得的近似卷积值。如果\(c(X,y,\sigma)\)大于设置的门限值,则判定该像素点为关键字。然后与SIFT算法近似,在以关键点为中心的\(3\times3\times3\)像素邻域内进行非极大值抑制,最后通过对斑点特征进行差值运算,完成了SURF特征点的精确定位。

而SURF特征点的描述,则也是充分利用了积分图,用两个方向上的Harr小波模板来计算梯度,然后用一个扇形对邻域内点的梯度方向进行统计,求得特征点的主方向。

3.2 0RB算法

ORB特征是将FAST特征点的检测方法与BRIEF特征描述子结合起来,并在它们原来的基础上做了改进与优化。首先,它利用FAST特征点检测的方法来检测特征点,然后利用Harris角点的度量方法,从FAST特征点中挑选出Hams角点响应值最大的NN个特征点。其原理如下:

(1)构造金字塔,在每层金字塔上采用Fast算法提取特征点,采用Harris角点响应函数,按角点响应值排序,选取前N个特征点。

(2) oFast:计算每个特征点的主方向,灰度质心法,计算特征点半径为r的圆形邻域范围内的灰度质心位置。从中心位置到质心位置的向量,定义为该特征点的主方向。

定义矩的计算公式,x,y∈[-r,r]:

rBrief:为了解决旋转不变性,把特征点的Patch旋转到主方向上(steered Brief)。通过实验得到,描述子在各个维度上的均值比较离散(偏离0.5),同时维度间相关性很强,说明特征点描述子区分性不好,影响匹配的效果。论文中提出采取学习的方法,采用300 k个训练样本点。每一个特征点,选取Patch大小为wp=31,Patch内每对点都采用wt=5大小的子窗口灰度均值做比较,子窗口的个数即为N=(wp-wt)×(wp -wt),从Ⅳ个窗口中随机选两个做比较即构成描述子的一个bit,论文中采用M-205 590种可能的情况:

(1)对所有样本点,做M种测试,构成M维的描述子,每个维度上非1即0。

(2)按均值对M个维度排序(以0.5为中心),组成向量T。

(3)贪婪搜索:把向量T中第一个元素移动到R中,然后继续取T的第二个元素,与R中的所有元素做相关性比较,如果相关性大于指定的阈值Threshold,抛弃T的这个元素,否则加入到R中。

(4)重復第3个步骤,直到R中有256个元素,若检测完毕,少于256个元素,则降低阈值,重复上述步骤。

综上所述:(1)尺度、旋转不变性(ORB算法在尺度方面效果较差)。(2) ORB较快,SURF运行速度大约为SIFT的3倍,ORB是sift的100倍,是surf的10倍。(3) SURF的鲁棒性较好;由于测量的实时性较强,故对于计算速度要求较高。因此,比较后最终选择基于ORB的特征点提取与匹配算法。

4 实验结果

实验环境:在实验室条件下实验桌上进行。

实验设备:摄像头两个、计算机一台、仪表。

实验平台:visual studi02013,OpenCV, MATLAB。

如图3所示,在基于ORB算法前提下,进行提取匹配后如上图,特征点匹配杂乱不准确;在用Ransac算法和ORB算法融合优化后为下图,此时匹配准确,且误差小。最终能相应的测出视差d,最后根据匹配的特征点测出相应的数据如表l所示。

通过表1可知,特征点的匹配测距实现误差允许范围内的准确测量,只有少数点会出现较大误差,证实了ORB和Ransac融合算法的可行性。

5 结语

本文对于双目视觉测距的流程进行了较为详细的描述,通过对几种不同算法的性能和特点的对比和融合,实现了对于特征点的较为准确的匹配,从而计算出视差,最终计算出实际距离。后续研究将对匹配算法进行进一步融合测试以提高测试的准确率,减小测量误差。

[参考文献]

[l]于仕琪,刘瑞祯.学习Open CV(中文版)[M]北京:清华出版社,2009.

[2]马颂德,张正友计算机视觉:计算理论与算法基础[M].北京:科学出版社,1998.

[3]PAPADAKIS N, CASELLES V.Multi-label depth estimation for graph cuts stereo problems[J].Journal of Mathematical Imaging&Vision;, 2010 (1): 70-82.

猜你喜欢

立体匹配特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于Daubechies(dbN)的飞行器音频特征提取
影像立体匹配中的凸优化理论研究
基于互补不变特征的倾斜影像高精度立体匹配
一种基于LBP 特征提取和稀疏表示的肝病识别算法
双目立体匹配算法的FPGA实现
基于DSP的直线特征提取算法
改进导向滤波器立体匹配算法
动态规划立体匹配的状态空间分析和性能改进
基于MED和循环域解调的多故障特征提取