基于改进ORB算法定点化研究与FPGA加速在智能驾驶中的应用
2018-01-25尹颜朋王玉伟赵红田丁祝祥李记鹏
尹颜朋,王玉伟,赵红田,丁祝祥,李记鹏
(四川大学计算机学院,成都 610065)
0 引言
立体匹配是当今计算机视觉领域重要的研究方向之一,被广泛的应用到智能驾驶、虚拟现实、增强现实、模式识别、机器人等技术中。其中图像特征点提取与匹配是立体匹配的核心。常用的特征点检测方法有SIFT、SURF、ORB等。
ORB(Orientated FAST and Rotated BRIEF)特征是目前非常具有代表性的图像特征,并具有尺度和旋转不变性。ORB[1]选取FAST算法提取特征点,并计算特征点的主方向,使用BRIEF作为特征点描述子。ORB由于使用了汉明距离等方法,其速度是SURF[3]的10倍,是SIFT[2]的100倍左右。我们使用图像矫正、图像增强、视差矫正去除误匹配点等方法,提高图像匹配的准确性。同时对改进的ORB算法进行定点化研究,为FPGA实现该算法的加速做好测试。ORB速度仍无法满足自动驾驶实时响应的要求,因此使用FPGA加速该算法。然后将改进的ORB算法应用到自动驾驶系统当中。
1 ORB特征
1.1 FAST[5]特征点提取
在图像中选取像素p,假设它的亮度为Ip,设置一个阈值T(例如,Ip的20%)。以像素 p为中心,选取半径为3的圆上的16个像素,假如选取的圆上有连续的N的点亮度大于Ip+T或Ip-T,那么像素p可以被认为特征点(通常N常取12),对图像中的每个像素执行这些操作,得到特征点的集合。为了快速排出绝大多数不是角点的像素,对于每个像素检测邻域圆上的第1,5,9,13个像素亮度。只要这4个像素同时大于Ip+T或者小于Ip-T时,否则直接排除。为增加尺度不变性,添加了图像金字塔。特征的旋转不变性使用灰度质心法[8],在一个图像块A中,定义图像块的矩为:
通过矩可以找到图像块的质心:
通过以上方法,ORB算法具有了尺度和旋转不变性。
1.2 BRIEF[7]描述子
ORB算法对Steer BRIEF进行了改进。根据1.1提取特征点。对每个特征点选取31×31邻域,每个邻域选择5×5的平均灰度值代替原来单个像素值进行对比。可得到 N=(31-5+1)×(31-5+1)个可对比的块,M=C(N,2)个点对。根据均值和点之间方差最大化原理,筛选出256个点对,即rBRIEF。
1.3 ORB特征的匹配
ORB特征的匹配使用汉明距离(Hamming dis⁃tance)。对于两个描述子Des1,Des2:
然后计算Des1、Des2的汉明距离:
Distance(Des1,Des2)越小代表特征点相似度越高,否则相似度越低。
1.4 改进ORB算法
改进的ORB算法步骤为:
对图像进行矫正,去图像畸变;
对图像进行直方图均衡化,提高图像的对比度,使图像更清晰。对图像进行高斯滤波,消除图像噪声;
提取FAST角点,并进行非极大抑制,去掉非角点特征点。求取像素的时,对像素进行四舍五入,而非ORB-SLAM2[4]中进行向上取整,尽量减小误差;
在特征点匹配过程中,如果特征点相差两层金字塔则这两个特征点不匹配。
在匹配点处进行基于滑动窗口的亚像素级的矫正,即以左图的特征点KeyPoint1为中心的窗口大小为11X11的窗口A,在右图中极线中找到与KeyPoint1视差绝对值为5特征点KeyPoint2,以KeyPoint2为中心窗口大小为11×11的窗口为B。然后求出与A最匹配的窗口B,即可找到最合适的匹配点对。
2 ORB定点化研究与FPGA加速
本部分主要研究ORB算法的定点化,为实现FP⁃GA加速做铺垫。在像素位置取整过程中,我们采用四舍五入替代向上取整。研究定点化主要是研究特征点质心角度小数点保留位数对特征匹配对数量的影响。针对MH01、MH02数据集,对于特征点角度保留两位小数(其中特征点的方向为0到360°),分别进行五次测试,求取匹配点对数,并取五组点对数平均值。同理可得,对于角度在取(0,0)、整数、保留小数点后4位、保留小数点后6位、小数点后8位都可求得对应的匹配点对。然后以需要保留的小数点保留位数类型为横坐标,以匹配点对数为纵坐标,画出折线图。如下所示。其中图1为MH01数据集测试结果。图2为MH02数据集测试结果。
由图1图2可以得出结论,把特征点质心角度设为(0,0),可以增加匹配点对数,但由于特征点失去了旋转不变性,这种方法不提倡。但是把角度保留整数、小数点后两位、小数点后四位、小数点后六位、小数点后八位,对于匹配点对数几乎没有影响。该结论对实现FPGA加速ORB算法,具有重要意义。
前端使用改进的ORB算法,追踪上一帧初始化当前帧的位姿,后端基于滑动窗口(窗口大小为10)优化位姿,如图3所示。算法流程为:当新的关键帧到来的时候,移除滑动窗口里的第一张图片和其对应的地图点,添加新的关键帧到滑动窗口中。每次新的关键帧到来的时候进行一次Bundle Adjustment优化反投影误差,得出相对准确地双目视觉里程计。
图3
3 实验结果分析
本文的实验使用EuRoc提供的数据集进行评测,实验结果如图4所示。
图1
图2
图4
在实验中,如果所示,该方法与ground truth已经很接近了。但部分区域和真实结果还有一些差距,仍有继续改善的空间。在算法中,只是借助于双目立体视觉求解里程计信息,还不够精确,后期会融合GPS、雷达、IMU等传感器信息,使之更好地服务于机器人、无人车等设备的定位与导航。
[1]Rublee E,Rabaud V,Konolige K,et al.ORB:An Efficient Alternative to SIFT or SURF[C].Computer Vision(ICCV),2011 IEEE International conference on.IEEE,2011:2564-2571.
[2]Lowe D G.Distinctive Image Features from Scale-Invariant Keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[3]Bay H,Tuytelaars T,Van Gool L.Surf:Speeded up Robust Features[J].Computer Vision-ECCV 2006,2006:404-417.
[4]Mur-Artal R,Tardós J D.Orb-slam2:An Open-Source Slam System for Monocular,Stereo,and RGB-D Cameras[J].IEEE Transactions on Robotics,2017,33(5):1255-1262.
[5]FAST:Rosten E,Drummond T.Machine Learning for High-Speed Corner Detection[J].Computer Vision-ECCV 2006,2006:430-443.
[6]Triggs B,McLauchlan P F,Hartley R I,et al.Bundle Adjustment—a Modern Synthesis[C].International Workshop on Vision Algorithms.Springer,Berlin,Heidelberg,1999:298-372.
[7]Calonder M,Lepetit V,Strecha C,et al.Brief:Binary Robust Independent Elementary Features[J].Computer Vision-ECCV 2010,2010:778-792.
[8]Rosin P L.Measuring Corner Properties[J].Computer Vision and Image Understanding,1999,73(2):291-307.
[9]Yang Z,Shen S.Monocular Visual-Inertial State Estimation with Online Initialization and Camera-IMU Extrinsic Calibration[J].IEEE Transactions on Automation Science and Engineering,2017,14(1):39-51.