Design of visual odometer based on RANSAC optical flow method and feature point matching method
-
摘要: 为了解决光流跟踪法定位精度不足、误差累积和特征点匹配法耗时久的问题,设计了一种将随机抽样一致性(random sample consensus,RANSAC)光流跟踪法和改进的特征点匹配法结合的视觉里程计。利用RANSAC光流跟踪法对关键帧之间的小规模运动进行估计,RANSAC算法对光流跟踪的误匹配点进行剔除,大大降低了光流跟踪法存在的误匹配;而关键帧之间的运动估计则利用改进的特征点匹配法,以修正光流跟踪法的估计误差;最后利用卡尔曼滤波将RANSAC光流跟踪法和改进的特征点匹配法进行融合。实验结果表明:该文的算法能够克服光流跟踪法精度不足、误差累积的问题,将平均相对误差由15.5%提升到了2.6%;同时也能在一定程度上提高特征点匹配法的速度,将特征点匹配法的平均耗费时间由37.28 ms提升到了21.07 ms。Abstract: In order to solve the problem of insufficient positioning accuracy, error accumulation and long time consuming of feature point matching method, a visual odometer that combines RANSAC optical flow method and improved feature point matching method was designed. The RANSAC optical flow method was used to estimate the small-scale motion between key frames. The RANSAC algorithm eliminated the mismatch points of optical flow, which greatly reduced the mismatch existing in the optical flow method. The motion estimation between key frames used the improved feature point matching method to correct the estimation error of the optical flow method. Finally, the RANSAC optical flow method and the improved feature point matching method were fused by using the Kalman filtering. The experimental results show that the algorithm can overcome the problems of insufficient accuracy and error accumulation of the optical flow method, which increases the MRE from 15.5% to 2.6%. And it can also improve the speed of the feature point matching method, which increases the average consuming time from 37.28 ms to 21.07 ms.
-
Keywords:
- visual odometer /
- feature point matching method /
- optical flow method /
- RANSAC /
- Kalman filtering
-
引言
某型号星载光谱仪聚焦于陆地生态系统植被和森林蓄积量探测,利用670 nm~780 nm谱段的光谱获取空间连续分布的植被荧光信号,得到太阳诱导植被荧光遥感数据,从而准确绘制植被荧光时空分布规律,满足全球植被定量监测、森林植被生产力评估的需求。光谱仪采用光栅作为色散元件,由于分光系统的存在,系统会残余较大畸变,导致数据处理困难,星载光谱仪为了校正系统的畸变,成像透镜设计为离轴透射式光学系统,系统存在3个光轴,光轴之间倾斜量达到0.606°,偏心量达到0.279 mm,增加了装调的难度。
光学系统的质量和光学元件的装调精度息息相关,国内外调研结果表明,透射式系统装调方法多为双光路定心法,定心仪测试透镜表面球心的跳动量给出球心位置,球心连线确定光轴,装调时最小化不同透镜光轴的偏心和倾斜,达到系统设计指标[1-6]。双光路定心法只适用于同轴透射式系统,对于离轴透射式系统的装调方法未见相关报道。光谱仪成像系统最大倾斜量超出了定心仪的装调范围,无法应用双光路定心法。针对这个难题提出了一种多基准轴的定心装调方法(MAA),通过结构预置偏心和倾斜的方法构建基准轴,利用光学平板实现光轴引出,将复杂的多光轴系统装调分解成单光轴系统装调,实现了离轴透射式光学系统的高精度装调。实测结果验证了该方法的有效性,为离轴透射式系统装调开拓了新的思路。
1 装调原理
1.1 成像透镜系统参数
光谱仪采用光栅和棱镜作为色散元件,成像组件采用离轴透射式系统,补偿由光栅和棱镜引起的畸变,可实现系统的畸变最小化。成像组件包含3个光轴,光轴之间存在偏心和倾斜,如图1所示。透镜1和透镜2组成光轴1,透镜3和透镜4组成光轴2,透镜5为光轴3。光轴1和光轴2倾角为0.262°,偏心量为0.279 mm,光轴3相对于光轴1倾角为0.606°,参数如表1所示。
表 1 透镜的偏心和倾斜参数Table 1. Parameters of lens eccentricity and tilt透镜 偏心X 偏心Y/mm 倾斜X 倾斜Y/(°) 透镜1 0 0 0 0 透镜2 0 0 0 0 透镜3 0 −0.279 0 −0.262 透镜4 0 −0.279 0 −0.262 透镜5 0 0 0 −0.606 1.2 装调分析
畸变是实际像高和理想像高的偏差,根据δ初级像差理论,像差分为5种初级像差,以5个塞得和数表示。畸变是主光线的垂轴像差,表达式为
$$\delta Y' = - \dfrac{1}{{2n'u'}} \displaystyle\sum \limits_{i = 1}^k {S_{\rm{V}}}$$ (1) 根据塞得和数表达式:
$$ \displaystyle\sum \limits_{i = 1}^k {S_{\rm{I}}} = \displaystyle\sum \limits_{i = 1}^k luni\left( {i - i'} \right)\left( {i' - u} \right)$$ (2) $$ \displaystyle\sum \limits_{i = 1}^k {S_{{\rm{III}}}} = \displaystyle\sum \limits_{i = 1}^k {S_{{\rm{II}}}}\dfrac{{{i_{\textit{z}}}}}{i} = {S_{\rm{I}}}\dfrac{{{i_{\textit{z}}}^2}}{{{i^2}}}$$ (3) $$ \displaystyle\sum \limits_{i = 1}^k {S_{{\rm{IV}}}} = \displaystyle\sum \limits_{i = 1}^k {J^2}\dfrac{{n' - n}}{{n'nr}}$$ (4) $$ \displaystyle\sum \limits_{i=1}^{k}{S}_{\rm{V}}= \displaystyle\sum\limits _{i=1}^{k}({S}_{\rm{III}}+{S}_{\rm{IV}})\dfrac{{i}_{{\textit{z}}}}{i} $$ (5) 推导得出光学系统的畸变表达式:
$$ \begin{split} \delta {Y^\prime } = & - \dfrac{1}{{2n'u'}}\displaystyle\sum\limits_{i = 1}^k {\Bigg(luni\left( {i - {i^\prime }} \right)\left( {{i^\prime } - u} \right)\dfrac{{{i_{\textit{z}}}^2}}{{{i^2}}} + } \\ & nu{y^2}\dfrac{{{n^\prime } - n}}{{n'nr}}\Bigg)\dfrac{{{i_{\textit{z}}}}}{i} \end{split}$$ (6) 简化后的畸变表达式为
$$ \begin{split} \delta {Y^\prime } = & - \dfrac{1}{{2n'u'}} \displaystyle\sum \limits_{i = 1}^k \Bigg(\dfrac{{n\left( {{n^\prime } - n} \right)\left( {n - nr - {n^\prime }r} \right)lu}}{{{n^\prime }^2(l - r)}}{i_{\textit{z}}}^3+\\ & + \dfrac{{({n^\prime } - n{\rm{)}}u{y^2}}}{{l - r}}{i_{\textit{z}}}\Bigg) \end{split}$$ (7) 式中:n和n′为折射率;k为光学元件的数量;r为曲率半径;u为数值孔径;y为像高;
${i_{\textit{z}} }$ 为主光线和光轴的夹角。由公式(7)可知畸变与主光线和光轴的夹角以及像高正相关,本系统中数值孔径和像高无法改变,为了纠正畸变,透镜系统设计为离轴透射式系统,改变主光线和光轴的夹角。装调过程中精确控制离轴透镜组的倾角可有效控制畸变。将实测的透镜曲率半径和中心厚度输入到光学系统优化设计软件中[7-8],重新对系统镜间距和偏心进行优化,以光轴1为基准,根据畸变计算光轴2和光轴3的失调量敏感度,如图2所示。结果表明,当畸变小于3 μm时,透镜偏心公差需小于0.05 mm,倾斜公差小于60″,镜间距公差小于0.05 mm,根据以往研究结果,直接装配无法满足系统要求[9-10]。
1.3 MAA装调方法
系统装调过程为最小化偏心以及倾斜量误差最小的过程,透镜组光轴偏差达到0.606°,超出了定心仪的测试范围,需要在系统中引入新的装调基准。考虑到装调公差相对宽松,提出了在透镜筒结构上一体化加工基准轴,预置光轴的倾斜量和偏差量,光学平板引出结构基准轴,应用OptiCentric双光路定心仪在新的基准轴上装调,将多光轴系统的装调分解成单光轴子系统装调,系统的装调流程如图3所示。
2 装调过程
2.1 机床定心
机床定心可去除光学件加工过程中产生的偏心和倾斜[11],将透镜框的安装端面和透镜框的外圆加工成和光轴一致,如图4所示。固定透镜组件到机床上,千分表测量透镜框外圈的圆跳动,调整使其和机床同轴,通过光学定心方法调整透镜的偏心和倾斜,使其光轴和机床转轴重合,加工透镜框的外圆和端面与透镜光轴重合。
2.2 同轴系统装调
系统包含2个同轴透镜组,单透镜机床定心完成后,选用OptiCentric双光路定心仪进行定心装调[12]。调整透镜1的光轴与定心仪的旋转轴一致,安装透镜2,通过垫片和侧面顶丝调整透镜2的光轴与定心仪的旋转轴一致,如图5和图6所示。同理装调透镜3和透镜4组件。
2.3 光轴引出
系统包含3个光轴,最大偏差0.606°,镜筒一体化加工预置偏心和倾斜,构建3个基准轴,建立装调基准。如图7所示,基准轴1和镜筒外径同轴,基准轴2相对于基准轴1的夹角为0.262°,偏心量为0.279 mm,基准轴3相对于基准轴1的夹角为0.606°。
基准轴的加工精度直接影响系统的装调精度,基准轴偏差计算公式为
$$ {\rm{\alpha }} = \dfrac{{{h_1} - {h_2}}}{D} $$ (8) 式中:
$ \alpha$ 为基准轴倾角;$ {h_1} $ 和$ {h_2} $ 为基准轴两侧的高度;D为基准内径。对公式(8)求导可得:$$ {\rm{\delta \alpha }} = \dfrac{1}{D}(\delta {h_1} - \delta {h_2}) - \dfrac{{{h_1} - {h_2}}}{{{D^2}}}\delta D $$ (9) 其中内径D为100 mm,对应0.606°的倾角,基准轴两侧的高度差为1.06 mm,公式(9)第2项相对于第1项可以忽略。提高基准轴精度的关键是控制
$ {h_1}$ 和$ {h_2}$ 的加工精度,加工过程中重点保证基准面的高度差,加工完成后,高精度三坐标测量机测试表明,偏心公差优于0.02 mm,倾斜公差优于30″,能够满足基准轴引出精度要求。2.4 系统装调
装调过程如图8和图9所示。将镜筒固定在双光路定心仪的转台上,采用光学平板将光轴1引出,结合杠杆千分表调整光轴和定心仪同轴,倾斜量小于10″,圆跳动量小于0.015 mm,作为光轴1的基准轴。安装透镜1和透镜2组件,调整到倾斜偏差小于10″,偏心误差小于0.015 mm。将镜筒翻转180°,通过光学平板和杠杆千分表引出光轴2,作为透镜3和透镜4组件的安装基准。安装透镜3和透镜4组件时,调整倾斜偏差小于10″,偏心小于0.015 mm。光学平板引出光轴3,安装透镜5组件,调整到倾斜偏差小于10″,偏心误差小于0.015 mm,完成系统偏心和倾斜的装调。
装调误差分布如图10所示。从图10可知,基准轴的引出误差为主要因素,通过进一步提高镜筒的加工精度可提高系统的装调精度。
1) 镜筒同轴度误差。镜筒的同轴度为15 μm,千分尺的测量误差为1 μm,引起的镜头偏心误差为8 μm。
2) 镜筒基准轴偏心、倾斜误差。三坐标测量结果表明,镜筒偏心误差优于20 μm,倾斜误差优于30″。
3) 机床主轴回转误差。机床主轴引起的倾斜误差为2″,偏心误差为3 μm。
4) 定心仪测量误差。双光路定心仪倾斜测量误差为1″,偏心测量误差为1 μm。
5) 同轴透镜调整误差。透镜1和透镜2组件,透镜3和透镜4组件为同轴系统,调整误差较小,偏心可控制在10 μm,倾斜控制在10″。
6) 离轴透镜调整误差。透镜倾斜调整误差为10″,偏心调整误差为15 μm。
7) 光学平板接触误差。光学平板平面度优于10 nm,光学平板和结构面接触误差优于10 μm,镜筒的内径为100 mm,引起镜头倾斜偏差为20.6″。
综合以上误差,可计算得出透镜组的倾斜误差优于38.8″,偏心误差优于28.3 μm,满足系统的指标要求。
2.5 镜间距控制
同轴透射式系统的镜间距通过测试球面顶点得到[13],球面顶点同时也是透镜的最高点或者最低点,对于离轴系统,透镜表面的最高点和最低点不再位于球面顶点,偏差量和倾斜偏心量相关,如图11所示。球面顶点A和表面最高点A′之间距离X如下式所示:
$$X = R - R \times {\rm{cos}}a$$ (10) 式中:a为透镜的倾角;R为球面曲率半径。
根据公式(10)计算得出透镜最高点距离和透镜间距的差值如表2所示。
表 2 镜间距和测试距离对应表Table 2. Corresponding lens distance and test distanceItem Lens1 & Lens2 Lens2 & Lens3 Lens3 & Lens4 Lens4 & Lens5 Distance between vertex of lens/mm 1.800 50.765 25.248 6.928 Distance between lens/mm 1.800 50.763 25.248 6.923 Difference/mm 0 0.002 0 0.005 在多基准轴装调过程中,通过接触式方法测量镜间距[14-15],如图12所示。首先测量透镜1和透镜2之间的镜间距以及透镜3和透镜4之间的镜间距,将透镜2的光轴调整到和双光路定心仪的转台同轴,通过探针分别测量透镜1和透镜2上表面的顶点高度d1和d2。透镜1和透镜2的镜间距计算方法如下式:
$${D_{12}} = {d_2} - {d_1} - {D_2}$$ (11) 式中:D2为透镜2的中心厚度;D3为透镜3的中心厚度。同理测量透镜3和透镜4镜间距D34。
透镜1和透镜2组件安装到镜筒中,测量透镜2的上表面最高点H2,安装透镜3和透镜4组件,测量透镜4上表面最高点H4,透镜2和透镜3的镜间距D23如下式:
$${D_{23}} = {H_4} - {H_2} - {D_{34}} - {D_3} - {D_4}$$ (12) 同理测量透镜4和透镜5镜间距D45。系统装调后实物图如图13所示。
镜间距测量误差如表3所示。探针2次测量得出镜间距,系统装调倾斜误差优于38.8″,偏心误差优于28.3 μm,引起的镜间距测量误差≤1 μm,综合两种测量误差,镜间距测量误差≤14.2 μm,满足系统指标要求。
表 3 镜间距测量误差Table 3. Measurement error of lens distance误差源 探针单点测量
误差/μm偏心倾斜引起的
误差/μm镜间距
误差/μm数值 10 1 14.2 3 装调结果
系统装调完成后,分别测试光轴1,光轴2和光轴3,因为光轴1和光轴3的夹角为0.606°,超出了定心仪的测量范围,采用分段测试的方式,分别测试光轴1和光轴2的偏差,光轴2和光轴3的偏差,测试结果如表4和表5所示,与设计结果的偏差如表6所示。最大偏心误差为25.4 μm,最大倾斜误差为17.7″,实际畸变和理论畸变对比如图14所示。从图14可看出,最大畸变为2.77 μm,平均偏差0.32 μm,系统装调结果满足指标要求。
表 4 透镜1和透镜2组件以及透镜3和透镜4组件的偏心倾斜Table 4. Eccentricity and tilt of lens 1, 2 and lens 3, 4Parameters Decenter X/μm Decenter Y/μm Tilt X/(″) Tilt Y/(″) Axis1 0 0 0 0 Axis2 −10.4 −297.5 −3.3 −960.9 表 5 透镜3和透镜4组件以及透镜5组件的偏心倾斜Table 5. Eccentricity and tilt of lens 3, 4 and lens 5Decenter X/μm Decenter Y/μm Tilt X/(″) Tilt Y/(″) Axis2 0 0 0 0 Axis3 −9.1 −253.5 −17.6 −1232.1 表 6 透镜组的偏心倾斜偏差Table 6. Eccentricity and tilt deviation of lensDifference Decenter X/μm Decenter Y/μm Tilt X/(″) Tilt Y/(″) Axis1 0 0 0 0 Axis2 −10.4 −18.5 −3.3 −17.7 Axis3 1.3 25.4 −14.3 6.3 4 结论
本文提出了一种新的离轴透射式系统的装调方法——多基准轴定心装调方法(MAA),克服传统的同轴透射系统定心装调缺陷,通过结构预置偏心和倾斜的方法构建基准轴,并辅助光学平板将复杂的多光轴系统装调分解成单光轴系统装调,利用此方法装调了光谱仪多光轴成像系统。装调结果表明,透镜偏心误差小于25.4 μm,倾斜误差小于17.7″,实现了系统的高精度装调。本装调方法不受定心仪测量范围的限制,可针对任意光轴的透射系统进行装调,突破了传统透射式装调方法的边界,为离轴透射式系统装调开拓了新的思路。
-
表 1 特征点提取算法时间
Table 1 Feature points extraction algorithm time
特征点数量 算法运行时间/ms SIFT SURF ORB 100 186.7 166.3 10.1 200 204.4 188.7 10.8 300 218.6 217.3 11.4 400 224.3 232.6 11.8 500 229.6 257.3 12.4 600 242.2 289.6 12.6 700 257.2 327.3 12.7 800 268.8 359.6 12.7 900 271.5 386.6 12.8 1000 286.1 402.6 13.1 -
[1] 李扬宇. 基于深度传感器的移动机器人视觉SLAM研究[D]. 重庆: 重庆大学, 2017. LI Yangyu. Research on vision slam of mobile robot based on depth sensor[D]. Chongqing: Chongqing University, 2017.
[2] NISTER D, NARODITSKY O, BERGEN J. Visual odometry[C]//Proceedings of the 2004 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. USA: IEEE Computer Society, 2004.
[3] DAVISON A J, REID I D, MOLTON N D, et al. MonoSLAM: real-time single camera SLAM[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2007,29(6):1052-1067. doi: 10.1109/TPAMI.2007.1049
[4] KITT B, GEIGER A, LATEGAHN H. Visual odometry based on stereo image sequences with RANSAC-based outlier rejection scheme[C]//2010 IEEE Transactions on Intelligent Vehicles Symposium (IV). USA: IEEE, 2010.
[5] LOWE D G. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision,2004,60(2):91-110. doi: 10.1023/B:VISI.0000029664.99615.94
[6] BAY H, ESS A, TUYTELAARS T, et al. Speeded-up robust features (SURF)[J]. Computer Vision and Image Understanding,2008,110(3):346-359. doi: 10.1016/j.cviu.2007.09.014
[7] ETHAN R, VINCENT R, KURT K. ORB: an efficient alternative to SIFT or SURF[C]//2011 International Conference on Computer Vision. USA: IEEE, 2012.
[8] 杨志芳, 袁家凯, 黄瑶瑶. 基于SIFT算法的室内全景图拼接[J]. 自动化与仪表,2020,35(3):58-62, 87. YANG Zhifang, YUAN Jiakai, HUANG Yaoyao. Indoor panorama stitching based on SIFT algorithm[J]. Automation and Instrumentation,2020,35(3):58-62, 87.
[9] 丁小奇, 李健, 胡雅婷, 等. 基于改进SURF算法无人机影像特征匹配的研究[J]. 中国农机化学报,2020,41(2):147-154. DING Xiaoqi, LI Jian, HU Yating, et al. Research on UAV image feature matching based on improved SURF algorithm[J]. Agricultural Machinery News of China,2020,41(2):147-154.
[10] 朱成德, 李志伟, 王凯, 等. 基于改进RANSAC-GMS算法的图像匹配[J]. 计算机应用,2019,39(08):2396-2401. ZHU Chengde, LI Zhiwei, WANG Kai, et al. Image matching based on improved RANSAC-GMS algorithm[J]. Computer Application: 2019,39(8):2396-2401.
[11] 周磊, 马立. 基于稀疏光流法的ORB特征匹配优化[J]. 应用光学,2019,40(4):583-588. doi: 10.5768/JAO201940.0402001 ZHOU Lei, MA Li. ORB feature matching optimization based on sparse optical flow method[J]. Journal of Applied Optics,2019,40(4):583-588. doi: 10.5768/JAO201940.0402001
[12] ENGEL J, SCHÖPS T, CREMERS D. LSD-SLAM: large-scale direct monocular SLAM[C]//13th European Conference on Computer Vision (ECCV). [S.l.]: Springer Nature, 2014.
[13] ENGEL J, STURM J, CREMERS D. Semi-dense visual odometry for a monocular camera[C]//Proceedings of the 2013 IEEE International Conference on Computer Vision. USA: IEEE, 2013.
[14] 贾哲. 基于光流跟踪和特征匹配的视觉里程计研究[D]. 天津: 天津理工大学, 2019. JIA Zhe. Research on visual odometer based on optical flow tracking and feature matching[D]. Tianjin: Tianjin University of Technology, 2019.
[15] 张国良, 姚二亮, 林志林, 等. 融合直接法与特征法的快速双目SLAM算法[J]. 机器人,2017,39(6):879-888. ZHANG Guoliang, YAO Erliang, LIN Zhilin, et al. Fast binocular SLAM algorithm combining direct m-ethod and feature method[J]. Robot,2017,39(6):879-888.
[16] 齐乃新, 杨小冈, 李小峰, 等. 基于ORB特征和LK光流的视觉里程计算法[J]. 仪器仪表学报,2018,39(12):216-227. QI Naixin, YANG Xiaogang, LI Xiaofeng, et al. Visual odometer based on ORB feature and LK optical flow[J]. Journal of Instrumentation,2018,39(12):216-227.
[17] 郑驰, 项志宇, 刘济林. 融合光流与特征点匹配的单目视觉里程计[J]. 浙江大学学报(工学版),2014,48(2):279-284. ZHENG Chi, XIANG Zhiyu, LIU Jilin. Monocular visual odometer fusing optical flow and feature pointmatching[J]. Journal of Zhejiang University (Engineering Edition),2014,48(2):279-284.
[18] 吴荻, 战凯, 肖小凤. 基于改进光流法和纹理权重的视觉里程计[J]. 计算机工程与设计,2019,40(1):238-243. WU Di, ZHAN Kai, XIAO Xiaofeng. Visual odometer based on improved optical flow method and text-ure weight[J]. Computer Engineering and Design,2019,40(1):238-243.
[19] 赵卫东, 曹蒙, 蒋超. 结合光流法和RANSAC的视觉里程计设计[J]. 兰州工业学院学报,2019(3):62-67. doi: 10.3969/j.issn.1009-2269.2019.03.012 ZHAO Weidong, CAO Meng, JIANG Chao. Design of visual odometer combining optical flow method and RANSAC[J]. Journal of Lanzhou University of Technology,2019(3):62-67. doi: 10.3969/j.issn.1009-2269.2019.03.012
[20] 涂梅林, 郭太良, 林志贤. 基于ORB特征的改进RANSAC匹配点提纯算法[J]. 有线电视技术,2018,344(8):15-19. TU Hailin, GUO Tailiang, LIN Zhixian. Improved RANSAC matching point purification algorithm based on ORB features[J]. Cable TV Technology,2018,344(8):15-19.
-
期刊类型引用(2)
1. 杜国军,张玉贵,崔博伦,江澄,欧宗耀. 碳卫星超光谱探测仪地面光谱定标. 光谱学与光谱分析. 2023(05): 1556-1562 . 百度学术
2. 严冬,国成立,刘泉,黎发志,余晨阳,马洋,张宇龙,闫力松. 大数值孔径宽光谱折反式物镜设计(特邀). 红外与激光工程. 2023(09): 66-72 . 百度学术
其他类型引用(3)