光电工程  2019, Vol. 46 Issue (4): 180456      DOI: 10.12086/oee.2019.180456     
一种基于ORB特征的水下立体匹配方法
李佳宽 , 孙春生 , 胡艺铭 , 于洪志     
海军工程大学兵器工程学院,湖北 武汉 430000
摘要:针对水下环境中传统算法对双目图像匹配时存在速度慢、误匹配较多等问题,提出一种基于ORB(的特征检测和曲线极线约束相结合的水下立体匹配方法。先检测图像的特征点,生成描述子,并进行特征匹配;然后根据折射定律,结合双目相机的内外参数,推导出水下曲线极线;最后结合水下曲线极线约束,剔除误匹配点。实验结果表明,相比传统的SIFT算法与曲线约束,论文提出的立体匹配方法在有效控制误匹配的情况下,显著提高了运算速度,对提升水下双目视觉系统的快速处理能力具有实践意义。
关键词双目立体视觉    水下立体匹配    特征匹配    ORB特征    曲线极线约束    
An underwater stereo matching method based on ORB features
Li Jiakuan, Sun Chunsheng, Hu Yiming, Yu Hongzhi     
Institute of Weapons Engineering, Naval University of Engineering, Wuhan, Hubei 430000, China
Abstract: Since the traditional algorithm may cause problems such as slow running speed and more mismatching points when perform stereo matching on underwater environment, the ORB characteristics detection and curve restriction has been applied in this paper. Firstly the image should be detected so as to find out the characteristics, generate the descriptor, and match the feature points. Then the underwater curve restriction can be deduced according to the law of refraction combining internal and external parameters of camera. Finally the mismatching points can be decreased by means of underwater curve restriction. The experimental results have shown that in the case of effectively controlling mismatches, the speed of this algorithm are faster than traditional SIFT algorithm combined with curve restriction. As a result, it is of practical significance to improve the speed of underwater binocular vision system.
Keywords: binocular stereo vision    underwater stereo matching    feature matching    ORB algorithm    curve restriction    

1 引言

随着人类对海洋资源探索的逐渐深入,水下视觉技术有了极其广阔的应用前景。作为计算机视觉的一个主要分支,双目立体视觉因其结构相对简单、效率高,成为水下视觉技术常用的实现形式。在图像采集、相机标定、图像预处理、立体匹配、三维重建这几个实现步骤中,立体匹配是其中较为关键的技术,同时也是双目视觉领域的一个热点,如何得到同时具备高精度和高速度的匹配算法更是研究难点[1]。目前水下立体匹配有采用自适应搜索、确定最佳搜索域,以及基于色彩分割等方法,但其中大多只考虑到了运算精度[2-3]。如文献[2]采用SIFT特征匹配加曲线约束的方法,精度得到了进一步提高,但运算速度上未作讨论。本文拟提出一种匹配方法,在保证精度的前提下提高运算速度。

立体匹配根据匹配基元不同主要分为区域匹配和特征匹配,基于区域的匹配算法对每个像素点求视差,最后得到稠密视差图,而基于特征的匹配算法提取特征点进行匹配,最后得到稀疏视差图[4]。由于水下图像存在照度低,噪声大等问题,如求解稠密视差图则误差较大,所以选择对噪声和环境不敏感的特征匹配算法[5]。常用的特征匹配算法有SURF,KAZA,SIFT,ORB等,其中以SIFT算法最为经典,该算法具备许多优点,如稳定性好,精度高,鲁棒性强等,广泛运用到许多场景中;但同时存在计算量大,耗时长等问题[6-7]。继SIFT之后又提出了ORB算法,ORB是一种快速特征提取和匹配的算法,虽然存在精度低,在尺度、光照等变化大的复杂场景下误匹配较多等问题[8],但在运算速度上较之前的算法有了极大提高,部分场景能高出SIFT算法两个数量级。虽然采用ORB算法速度得到提升,但水下环境中,存在折射,镜头畸变等一系列影响图像质量的因素,如果直接使用,误匹配会较多,目前还未见ORB算法用于水下立体匹配的文献公开报道。对于精度上的问题,目前水下立体匹配中通常采用的曲线极线约束,即在水下环境不满足空气中极线约束的情况下,推导适用于水下的曲线极线约束条件[9-10],以此剔除误匹配点,保证匹配精度。

论文采取ORB特征检测和曲线极线约束结合的水下立体匹配方法,首先利用ORB特征检测算法对水下图像进行特征点匹配,再根据曲线极线约束减少误匹配点,在保证精度的前提下达到提高速度的目的。

2 曲线约束的ORB特征匹配方法 2.1 ORB特征匹配

ORB是一种快速特征点提取和描述的算法,该算法将FAST(features from accelerated segment test)特征点检测和BREIF(binary robust independent elementary features)特征描述子结合起来,并做了一定的优化和改进[11],其最突出的优点是运算速度极快。一般流程是先提取FAST特征点,然后生成BRIEF描述子,最后以特征点对应的描述子为匹配对象进行匹配。

2.1.1 特征点检测

采用FAST算子在图像中依次检测特征点,并对提取局部特征点的Harris兴趣值进行计算,挑选出响应值最大的多个FAST特征点。然后对特征点添加方向,使用灰度质心法,即认为特征点的灰度和质心之间存在偏移,用这个偏移来表示方向[8]

对于提取出的某个FAST特征点,定义其邻域像素的矩为${m_{pq}} = \sum\nolimits_{xy} {{x^p}{y^q}I(x, y)} $,其中,$I(x, y)$表示像素点灰度值,pq分别为0或1。可以得到其灰度质心为

$ C = \left( {\frac{{{m_{10}}}}{{{m_{00}}}}, \frac{{{m_{01}}}}{{{m_{00}}}}} \right)。$

FAST特征点的方向为特征点F与质心C的夹角:

$ \theta {\rm{ = }}\arctan \left( {\frac{{{m_{01}}}}{{{m_{10}}}}} \right) = \arctan \left( {\frac{{\sum\nolimits_{x, y} {yI(x, y)} }}{{\sum\nolimits_{x, y} {xI(x, y)} }}} \right)。$ (1)

BRIEF描述子则可据此方向确定。

2.1.2 描述子生成

ORB算法使用BRIEF描述子对检测到的特征点进行描述。选取特征点附近若干像素的点对,进行灰度二值化比较,即大于取1,小于取0,将结果存为一个二进制串。则BRIEF描述子即为特征点邻域的若干点灰度值组成的指定次数位二进制串。对图像邻域u,定义一个描述准则函数τ

$ \tau (u;x, y) = \left\{ \begin{array}{l} 1, I(x) < I(y)\\ 0, I(x) \ge I(y) \end{array} \right., $ (2)

其中:$I(x)$为图像x处的灰度函数。取m$({x_i}, {y_i})$测试点对数量,则描述子为M维的二进制矢量:

$ {f_m}(u) = \sum\nolimits_{1 \le i \le m} {{2^{i - 1}}\tau (u;{x_i}, {y_i})} 。$ (3)

由于二进制字符串没有方向信息,需要写成矩阵形式,并将特征点质心方向添加到描述子中。任意选取一点$({x_i}, {y_i})$,则可以定义一个2×m的矩阵Q:

$ \mathit{\boldsymbol{Q}} = \left[ \begin{array}{l} {x_1} \cdots {x_m}\\ {y_1} \cdots {y_m} \end{array} \right]。$ (4)

最终得到特征点的BRIEF描述子:${\mathit{\boldsymbol{Q}}_\theta }{\bf{ = }}{\mathit{\boldsymbol{R}}_\theta }\mathit{\boldsymbol{Q}}$,其中${\mathit{\boldsymbol{R}}_\theta }$为对应的旋转矩阵。

2.1.3 特征点匹配

与SIFT和SURF算法中比较特征向量的欧氏距离不同的是,ORB将二值字符特征点描述的汉明距离作为评价标准,比较特征向量的汉明距离,选取汉明距离最小的作为相似的一对。

ORB描述算子是m维二进制串,随机选取两幅图像的描述子K1K2

$ {K_1} = ({x_0}, {x_1}, \cdots , {x_m}), {K_{\rm{2}}} = ({y_0}, {y_1}, \cdots , {y_m})。$

汉明距离表示两字符串对应位不同的数量,对两字符串作异或运算然后求和得到,记为$D({K_1}, {K_2})$:

$ D({K_1}, {K_2}) = \sum\nolimits_{i = 1}^n {{x_i} \oplus {y_i}} 。$ (5)

$D({K_1}, {K_2})$越小则特征点相似度越高。因为只在同位置进行求异或运算,计算汉明距离比欧氏距离简单,所以运算速度远超过求欧氏距离的SIFT等算法。

利用最近邻方法求特征点的最近邻与次近邻,并将其汉明距离作为相似性度量函数。令最近邻距离${D_{\min }}$和次近邻距离${D'_{\min }}$之比为${T_{\rm{r}}}$(这里取0.8),若所得汉明距离小于等于阈值${T_{\rm{r}}}$,则认为这组点匹配成功。

2.2 水下极线曲线约束

双目立体匹配中的约束准则通常有唯一性约束、顺序性约束、视差范围约束、极线约束等。极线约束是双目立体匹配中常用到的一种约束条件,即已知某点在一幅图像中的映射点,则另一副图像中的映射点在该点对应的极线上。如图 1(a)为空气中常规的双目立体视觉系统,O1O2为两摄像机光心,P为物点,I1I2为左右像平面。取右像平面任一点P1,则物点P一定在射线O2P1上,同时O1O2P1共平面,由此确定的平面与I1相交可得出直线IP点在左像平面的成像点一定在直线I上。I称为极线,相应的约束准则称为极线约束。

图 1 不同条件下的极线约束。(a)空气中的极线约束;(b)不同介质中的曲线约束 Fig. 1 Epipolar constraint in different media. (a) Epipolar constraint in air; (b) Curve constraint in different media

由于光在介质间发生折射,水下图像不再满足空气中常规的极线约束[12]。如图 1(b),水下环境中由于光线发生折射,由P点确定的极线在I2像平面上为一条曲线。通过光线由空气折射到水中的折射模型可推导出适用于水下的曲线极线约束[13-14]

假设两摄像机的光心为OcO'c,基线距离为a,摄像机焦距为f,折射面与目标所在平面距离为d,在空气和水中的折射率分别为n1n2$n = {n_1}/{n_2}$。以左摄像机光心为原点建立坐标系,如图 2所示。

图 2 折射模型 Fig. 2 Refraction model

在左像平面上任取一点$M({x_0}, {y_0}, {z_0})$,根据成像过程及折射原理可以得到对应折射点${M_{\rm{1}}}({x_{\rm{1}}}, {y_{\rm{1}}}, {z_{\rm{1}}})$的坐标。

$ \left\{ \begin{array}{l} {x_1} = h\tan {\alpha _1}\sin \beta = \frac{h}{f}{x_0}\\ {y_1} = h\tan {\alpha _1}\cos \beta = \frac{h}{f}{y_0}\\ {z_1} = h \end{array} \right.。$ (6)

折射点位置可以确定,已知空气和水的折射率,可以确定物点在M1Q这条射线上,设物点为Q,距离折射面距离为d。则物点坐标为

$ \left\{ \begin{array}{l} {x_2} = (d\tan {\alpha _2} + h\tan {\alpha _1})\sin \beta \\ \;\;\;\;\; = d \times \frac{{{y_0}}}{{\sqrt {{n^2}(x_0^2 + y_0^2 + z_0^2) - (x_0^2 + y_0^2)} }} + \frac{h}{f}{x_0}\\ {y_2} = (d\tan {\alpha _2} + h\tan {\alpha _1})\cos \beta \\ \;\;\;\;\; = d \times \frac{{{x_0}}}{{\sqrt {{n^2}(x_0^2 + y_0^2 + z_0^2) - (x_0^2 + y_0^2)} }} + \frac{h}{f}{y_0}\\ {z_0} = h + d \end{array} \right., $ (7)

其中:z0等于焦距fd是物点到折射面距离,为变量。

因为M1Q2N1在同一平面上,可解出N1点坐标${N_1}({x_3}, {y_3}, h)$。最后映射到右侧像平面的点为 $N({x_{\rm{4}}}, {y_{\rm{4}}}, {z_4})$,又因为N点在直线${O'_{\rm{c}}}{N_1}$上,则可由N1点坐标得到N点坐标:

$ \left\{ \begin{array}{l} {x_4} = \frac{f}{h}{x_3}\\ {y_4} = \frac{f}{h}({y_3} - a)\\ {z_4} = f \end{array} \right.。$ (8)

每一个变量d都对应一个N1点坐标,也即在右像平面上对应一个N点坐标,用这些点拟合出一条曲线。则左像平面上M点对应的物点在右平面上成像时,必然在这条曲线上。得出曲线后,根据该约束条件剔除匹配过程中的误匹配点。

2.3 实验流程

ORB算法通过搜索特征点的最近郊和次近郊特征点,并计算特征点与其最近郊以及次近郊的汉明距离来消除误匹配,对于水下图像,存在误差过大的问题,引入水下曲线极线约束,剔除误匹配点,提高匹配精度。整个算法流程如图 3所示:

图 3 算法流程 Fig. 3 Steps of the algorithm

1) 特征点检测:

① FAST算子提取图片特征信息;

② 用Harris方法对特征点进行排序;

③ 构造图像金字塔,搜索每一层的FAST特征点;

④ 用灰度质心法确定特征向量方向;

⑤ 根据灰度值的大小选取特征点附近的几个像素点对,构成二进制编码的算子,生成BRIEF描述子。

2) 特征点匹配:

① 用KNN方法寻找特征点最近邻与次近邻,计算汉明距离;

② 比较最近郊距离${D_{\min }}$和次近郊距离${D'_{\min }}$之比与阈值${T_{\rm{r}}}$,进行特征点匹配;

3) 剔除误匹配对:

① 提取参考图的特征点,求出其对应在待匹配图上的曲线极线;

② 用给定一个阈值T剔除误匹配。

3 实验分析 3.1 实验系统

实验设备用MYNT公司的MYNT EYE-S V2双目相机,作为成品的双目相机,无需重新标定,参数见表 1,其中$({f_x}, {f_y})$为相机焦距,$({c_x}, {c_y})$为主点坐标,k为畸变系数,R为两相机间的旋转矩阵,T为平移矩阵,其格式按照Open CV内的标定文件给出。

表 1 相机参数 Table 1 Camera parameters
左相机 右相机
(fx, fy) (352.5668,354.5694) (352.5668,354.5694)
(cx, cy) (334.734,191.319) (345.472, 190.423)
k (-0.15670,-0.03325,-0.07572) (-0.17060,0.02663,0.00513)
R (1,-0.000188,0.013209,0.000177,1,0.000857,-0.013209,-0.000855)
T (-119.7177,-0.16548,0.79235)

系统还包括带有光学窗口的水箱(如图 4),以及Intel core i5处理器的计算机。运算环境为OpenCV3.4和VS2015。

图 4 实验系统 Fig. 4 The experimental system
3.2 实验结果

将相机参数带入式(6)中可得到曲线极线约束条件。在左像平面上任取一点(47,76),则对应在右像平面拟合出的曲线如图 5所示。其中,曲线a为水下约束曲线,曲线b为空气中极线约束,横纵坐标单位为图像像素,原点为右像平面左下顶点。

图 5 两种约束对比 Fig. 5 Contrast the two constraints

对相同的场景,即同一图片,分别采用传统的SIFT算法和ORB算法进行匹配,之后再用曲线极线约束剔除误匹配点。图像大小为752 pixels×480 pixels。图 6中的目标物为铁盒与瓷杯,图 7目标物为玻璃瓶与塑料管,两个场景都是将目标物置于水箱中,由双目相机通过窗口拍摄得到。其中剔除误匹配点过程中的阈值T均设为0.8。图中标记的点为特征点,匹配成功的用实线连接。

图 6 (a) SIFT加曲线约束;(b)本文算法 Fig. 6 (a) SIFT and curve constraint; (b) Our algorithm

图 7 (a) SIFT加曲线约束;(b)本文算法 Fig. 7 (a) SIFT and curve constraint; (b) Our algorithm
3.3 数据分析

用传统SIFT算法对两组图像进行特征匹配得到的匹配对数是41和84,通过曲线约束剔除对数分别为15和30,最后得到的匹配对数为26和54,依然存在的误匹配对数为4和7,匹配准确度分别为84.6%和87%。本文算法得到的匹配对数分别是25和63,其中通过曲线极线约束分别剔除了9对和18对误匹配点,最后得到的匹配对数为16和45,依然存在的误匹配对数为2和7,匹配准确率分别为87.5%和84.4%。此外,对于两组大小均为752 pixels×480 pixels的图像,SIFT加曲线约束算法的运算时间分别为3.30 s和4.12 s,本文算法为0.41 s和0.48 s。

对于同一张图片,由于两种算子本身的特性,导致SIFT算法的匹配对数多于本文算法,二者均通过曲线约束剔除了一定数量的误匹配点,并据此得到数据如表 2所示。可以看出,由于两种算法均用到曲线约束,已经剔除了大多数误匹配,在准确度上并无明显差异,但在运算速度上,本文算法明显快于SIFT算法。

表 2 匹配对数与时间比较 Table 2 Comparison of time and matching pairs
算法 图 6场景 图 7场景
SIFT加曲线约束 总匹配对数 41 84
剔除误匹配后的匹配对数 26 54
准确率/% 84.6 87
运算时间/s 3.30 4.12
本文算法 总匹配对数 25 36
剔除误匹配后的匹配对数 16 45
准确率/% 87.5 84.4
运算时间/s 0.41 0.48

对于匹配精度的分析,通常比较与真值的均方根误差。由于本文用到的水下数据集真值未知,无法采用均方根误差来分析匹配精度。在真值未知的情况下,通过比较与现有成熟算法的一致性来评价算法的匹配效果。对此,本文计算与SIFT加曲线约束算法的协方差,量化匹配结果间的相关程度。为了使结果更有代表性,本文取采用欧盟EU-FP7 Cognitive Autonomous Diving Buddy (CADDY)项目潜水员双目图像数据集进行验证,以SIFT算法加曲线约束为参考对象,取6组数据(数据集内编号见表),分别计算与ORB算法和ORB加曲线约束算法二者之间的协方差,如表 3所示。

表 3 三种算法匹配对数 Table 3 The number of matched pairs of the three algorithms
图像编号 11 45 93 97 99 106
SIFT加曲线约束 317 450 340 372 364 413
ORB算法 132 162 206 158 145 173
本文算法 105 114 117 123 106 124

最后得到的协方差分别为135.5和142.2,比较对象均为SIFT加曲线约束算法。能得出的结论是:在以SIFT加曲线约束为参考标准的前提下,采用曲线约束剔除误匹配的ORB算法一致性要比ORB算法好,并且二者在匹配结果上都与SIFT加曲线约束呈现极大的正相关性。

4 结论

论文针对水下双目视觉系统中立体匹配存在的速度慢、误匹配多的问题,提出了一种基于ORB特征检测与曲线约束相结合的立体匹配方法,这种方法充分利用了ORB算法速度快和曲线极线约束能有效剔出误匹配点的优点,实现了同等条件下比传统SIFT特征检测加曲线约束方法快约一个数量级的运算速度。论文的研究结果对提升水下双目视觉系统的快速处理能力具有指导意义。后期将在算法程序优化的基础上进一步提升论文方法的运算速度。

参考文献
[1]
Cao Z L, Yan Z H, Wang H. Summary of binocular stereo vision matching technology[J]. Journal of Chongqing University of Technology (Natural Science), 2015, 29(2): 70-75.
曹之乐, 严中红, 王洪. 双目立体视觉匹配技术综述[J]. 重庆理工大学学报(自然科学), 2015, 29(2): 70-75 [Crossref]
[2]
Zhang Q, Hao K, Li H B. Research on scale invariant feature transform feature matching based on underwater curve constraint[J]. Acta Optica Sinica, 2014, 34(2): 0215003.
张强, 郝凯, 李海滨. 水下环境中基于曲线约束的SIFT特征匹配算法研究[J]. 光学学报, 2014, 34(2): 0215003 [Crossref]
[3]
Zhang Q, Lu S Q, Li H B, et al. Research on underwater stereo matching method based on color segmentation[J]. Acta Optica Sinica, 2016, 36(8): 0815001.
张强, 卢士强, 李海滨, 等. 基于色彩分割的水下立体匹配算法的研究[J]. 光学学报, 2016, 36(8): 0815001 [Crossref]
[4]
赵鹏. 机器视觉研究与发展[M]. 北京: 科学出版社, 2012.
[5]
Sanchez-Ferreira C, Mori J Y, Llanos C H, et al.Development of a stereo vision measurement architecture for an underwater robot[C]//2013 IEEE 4th Latin American Symposium on Circuits and Systems, 2013: 1-4.
[6]
Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision, 2004, 60(2): 91-110. [Crossref]
[7]
Lowe D G. Object recognition from local scale-invariant features[C]//Proceedings of the Seventh IEEE International Conference on Computer Vision, 1999, 2: 1150-1157.
[8]
Rublee E, Rabaud V, Konolige K, et al. ORB: An efficient alternative to SIFT or SURF[C]//2011 IEEE International Conference on Computer Vision, 2011: 2564-2571.
[9]
Peng H, Wen Y X, Zhai R F, et al. Stereo matching for binocular citrus images using SURF operator and epipolar constraint[J]. Computer Engineering and Applications, 2011, 47(8): 157-160.
彭辉, 文友先, 翟瑞芳, 等. 结合SURF算子和极线约束的柑橘立体图像对匹配[J]. 计算机工程与应用, 2011, 47(8): 157-160 [Crossref]
[10]
Gedge J, Gong M L, Yang Y H. Refractive epipolar geometry for underwater stereo matching[C]//2011 Canadian Conference on Computer and Robot Vision, 2011: 146-152.
[11]
Li J, Pan T S, Tseng K K, et al. Design of a monocular simultaneous localisation and mapping system with ORB feature[C]//2013 IEEE International Conference on Multimedia and Expo, 2013: 1-4.
[12]
Zhang W M, Deng X X, Zhang Q, et al. Non-parallel system underwater image transformation model[J]. Acta Photonica Sinica, 2015, 44(2): 211002.
张文明, 邓茜雪, 张强, 等. 基于非平行系统的水下图像转化模型[J]. 光子学报, 2015, 44(2): 211002 [Crossref]
[13]
Wang H B, Sun H Y, Shen J, et al. A research on stereo matching algorithm for underwater image[C]//2014 4th International Congress on Image and Signal Processing, 2011: 850-854.
[14]
Li Y Q, Zhang Y S, Li H B, et al. Underwater dense stereo matching based on depth constraint[J]. Acta Photonica Sinica, 2017, 46(7): 0715001.
李雅倩, 张岩松, 李海滨, 等. 基于深度约束的水下稠密立体匹配[J]. 光子学报, 2017, 46(7): 0715001 [Crossref]