蒼巖, 尹鳳鳴, 畢曉君
(哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001)
改進(jìn)的雙目立體視覺算法及其應(yīng)用
蒼巖, 尹鳳鳴, 畢曉君
(哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001)
為了提高雙目立體視覺算法正確匹配率,本文改進(jìn)了特征點提取及立體匹配算法。特征點提取部分,定義了尺度方向不變角點;在匹配計算部分,利用極線約束計算特征點的候選匹配角點,采用視差梯度約束和最大向量角準(zhǔn)則多約束條件實現(xiàn)精確匹配。對本文的改進(jìn)算法進(jìn)行了實驗室以及水池試驗驗證:實驗室中采集小盒圖片;水池試驗中,拖車帶動船模在試驗水池航行時,采集船后部的波浪圖片。實驗結(jié)果顯示,改進(jìn)算法在水池實驗圖片處理中的正確匹配率比尺度不變特征變換(SIFT)算法高14%。
雙目視覺;SIFT算法;角點檢測;測量;特征提??;匹配算法
雙目立體視覺是機(jī)器視覺的一種重要形式。雙目立體視覺測量系統(tǒng)主要分為圖像獲取、攝像機(jī)標(biāo)定、特征提取與匹配、三維重建。由于空間的三維景物被投影到二維圖像時,視角問題、場景中的光照條件、景物幾何形狀和物理特性、噪聲干擾和畸變、相機(jī)特性等都被綜合到了圖像的灰度值中,因此,要準(zhǔn)確地對包含諸多不利因素的圖像進(jìn)行無歧義的特征提取與匹配是很困難的。特征提取是為了得到匹配賴以進(jìn)行的圖像匹配基元,發(fā)展至今,有Soble算子[2]、Canny算子[3],Moravec算子[4]、Harris角點檢測[5]和尺度不變特征變換(scale invariant feature transform,SIFT)[6]特征提取算法。特征匹配主要利用匹配基元間的相似屬性建立相似測度函數(shù),在約束條件下得到雙目圖像的匹配點對。約束條件主要集中在尋找搜索的范圍和相似度的計算兩個方面。Marr提出的唯一性約束、相容性約束、視差梯度約束、連續(xù)性約束[7]都圍繞這兩個方面。Marr提出的約束條件是最基本的,隨著立體匹配的發(fā)展,視差范圍約束、最大向量角準(zhǔn)則[8]、極線約束[9-10]等也被發(fā)展與應(yīng)用。
針對立體視覺算法中冗余特征點以及誤匹配的問題,提出了尺度旋轉(zhuǎn)不變角點的檢測方法,解決冗余特征點多、計算量大的問題。本文將極線約束匹配算法、最大視差梯度算法以及最大向量角準(zhǔn)則相結(jié)合,提高匹配正確率。利用實驗室室內(nèi)拍攝的盒子圖像以及水池拍攝的水波紋圖像對本文改進(jìn)的算法進(jìn)行驗證。
利用特征點代替圖像中所有像素點能夠減少計算量。依據(jù)算法應(yīng)用的背景不同,特征點的分類也不同。本文選擇角點作為感興趣的特征點。針對Harris算法冗余角點過多的問題,引入尺度旋轉(zhuǎn)不變角點,兼具尺度不變性和旋轉(zhuǎn)不變性。尺度不變性角點,即為同時存在于多個尺度空間的角點。對尺度不變角點及其附近像素點計算方向描述子,選定幅值最大的方向為主方向,幅值不低于最大值80%的方向為輔方向。具有單一主輔方向的角點為尺度旋轉(zhuǎn)不變角點。若存在多個輔方向,說明該點在任何一方向上的變化都很緩慢,屬于空白部分,或者該點在任何一方向上變化都很快,屬于噪聲部分。提取尺度旋轉(zhuǎn)不變角點的具體步驟如下:
1) 生成多尺度空間。假設(shè)一個圖像I(x,y)的尺度函數(shù)定義為L(x,y,σ),則可以通過該圖像I(x,y)與高斯函數(shù)G(x,y,σ)卷積運算得到尺度函數(shù)L(x,y,σ):
L(x,y,σ)=G(x,y,σ)?I(x,y)
式中:L(x,y,kσ)表示第k層尺度空間函數(shù),G(x,y,kσ)表示為高斯卷積核函數(shù),其高斯正態(tài)分布的標(biāo)準(zhǔn)偏差為kσ,k>1。
2) 對每一層尺度空間圖像,分別計算其角點響應(yīng)值R,并設(shè)定一個合適的閾值,對于小于閾值的角點響應(yīng)值R,將其置零:
R={R:detMk-α(traceMk)2 3) 在5×5的窗口中進(jìn)行局部非極大值抑制,取其中極大值點的位置點作為每一層尺度空間圖像L(x,y,kσ)中的角點。 4) 確定方向,圖像中任意角點的幅值m(x,y)和方向θ(x,y)計算公式如下 式中:L是檢測到的每一個角點各自所位于多尺度空間圖像上的尺度。 立體匹配算法將左右圖中的特征點實現(xiàn)一對一匹配。立體匹配過程中,經(jīng)常出現(xiàn)一對多誤匹配現(xiàn)象。針對該問題,本文采用多約束條件匹配,提高匹配的精度。首先采用極線約束,計算左圖特征點在右圖上的極線,取極線上下20像素范圍內(nèi)的角點作為候選點,結(jié)合視差梯度與最大向量角約束,實現(xiàn)一對一精確匹配。具體計算步驟如下: 1)對左圖中的角點pl,計算其右圖對應(yīng)的極線約束方程: lpr=Fpl 式中:F為相機(jī)的基礎(chǔ)矩陣。利用極線條件約束后,能夠減少一定數(shù)量的無匹配角點。 式中:Gd為視差梯度,K為視差梯度約束的閾值,一般取值為2。如果視差梯度值大于設(shè)定的閾值K時,則認(rèn)為該點對違反了視差梯度約束,統(tǒng)計其違反的次數(shù)。 圖1 視差梯度約束Fig.1 Disparity gradient constraint 3)依次計算出其他的匹配點對的視差梯度以及其違反的次數(shù),找出其中違反次數(shù)最多的一組,剔除該組匹配點對,更新角點對。 4)重復(fù)2)、3),直到?jīng)]有違反視差度約束條件為止。 式中:N為左圖中其他候選角點對個數(shù)。最大向量角準(zhǔn)則是找出θsum最大的點,這點即是錯誤的匹配點,將其刪除,繼續(xù)尋找剔除,直到最精確的那一點作為最后的匹配角點。 雙目攝像機(jī)固定在三腳架上,攝像的高度、攝像機(jī)的間距以及夾角均可調(diào)。雙目攝像機(jī)通過網(wǎng)絡(luò)交換機(jī)與主控電腦相連。主控電腦采用ThinkPad T440計算機(jī)。主控平臺上運行雙目測量測試開發(fā)平臺軟件,由Visual C++6.0語言編寫,實現(xiàn)圖像的采集,標(biāo)定等功能。本系統(tǒng)所采集的圖像均為480×640。 3.1 小盒試驗 通過雙目視覺系統(tǒng)對盒子進(jìn)行拍攝,將雙目攝像機(jī)調(diào)到與盒子等高的位置,調(diào)整兩攝像機(jī)之間的角度,使左右攝像機(jī)均能拍到盒子。得到的左右兩幅原圖如圖2所示。 圖2 雙目攝像機(jī)攝取的小盒左右原圖片F(xiàn)ig.2 Binocular camera capturing left and right original images 從圖3~5可以看出,Harris算法檢測出的角點非常密集,過多的角點里面包含冗余信息,增加匹配算法的計算量,也會增加誤匹配率。SIFT算法剔除了冗余角點,但是能夠提供給后續(xù)匹配處理的角點數(shù)據(jù)量相對較少,匹配點的數(shù)量較少,導(dǎo)致后續(xù)的三維測量的精度較低。本文改進(jìn)的算法所保留的角點數(shù)量介于兩者之間,有效去處了冗余角點,同時還能保證足夠的角點數(shù)量,為后續(xù)的匹配處理提供最優(yōu)的角點數(shù)據(jù)庫。雖然降低SIFT算法的角點響應(yīng)閾值,能夠增加角點數(shù)量,但這相當(dāng)于增加了角點檢測算法的噪聲,給后續(xù)的匹配算法增加了計算量和誤匹配率。本文提出的尺度方向不變角點在保證每層角點提取總基數(shù)的基礎(chǔ)上,利用方向算子抑制冗余角點,提高角點提取的質(zhì)量。 圖3 Harris角點檢測算法檢測到的角點圖Fig.3 Corners showed by Harris corner detection algorithm 圖4 SIFT算法檢測到的角點圖Fig.4 Corner showed by SIFT detection algorithm 圖5 改進(jìn)的角點檢測算法檢測到的角點圖Fig.5 Corners showed by improved corner detection algorithm 左右圖匹配計算中,本文提出了在極線約束算法基礎(chǔ)上,結(jié)合最大視差梯度以及最大向量角算法提高左右圖匹配的準(zhǔn)確率和后期三維測量精度。由于篇幅所限,本文只選取了一個點作為描述舉例。圖6(a)是左圖的角點(842,758),利用極線約束算法,取上下20個像素范圍,在圖6(b)所描述的右圖中找到了67個符合極線約束的角點,從圖6中可以看出,由于極線是一條貫穿右圖的直線,因此可以用圖中視差梯度以及最大向量角準(zhǔn)則進(jìn)一步剔除誤匹配點。 將視差梯度約束閾值設(shè)為2,視差約束后,右圖剩余64個點,剔除3個點,如圖7(a)所示,利用最大向量角約束后,剩余一個角點(791,783),如圖7(b)所示。 圖6 極限約束一對多的情況Fig.6 One to many example of pole line contraint 圖7 視差梯度約束取2匹配結(jié)果Fig.7 Matching results of gradient of disparity value being 2 視差梯度約束閾值為1時,視差梯度約束后,剩余59個點,剔除8個點,如圖8(a)所示。利用最大向量角準(zhǔn)則后,實現(xiàn)了匹配一對一結(jié)果,匹配點(791,783),結(jié)果如圖8(b)所示。 圖8 視差梯度約束取1匹配結(jié)果Fig.8 Matching results of disparity gradient constraint value being 1 處理結(jié)果顯示,一對多的“多”較集中在正確匹配點周圍。當(dāng)視差梯度約束的閾值取2時,剔除的誤匹配點較少,最終還是最大向量角準(zhǔn)則的作用,得到一對一匹配結(jié)果。當(dāng)一對多的“多”不集中在正確匹配點周圍時,視差梯度約束2能剔除離正確匹配點較遠(yuǎn)的點,保留集中在正確匹配點周圍的點集,再采用最大向量角準(zhǔn)則,得到一對一。從實驗效果來看,當(dāng)視差梯度約束閾值為1時,能更有效地剔除那些遠(yuǎn)離正確匹配點的點集,保留更集中于正確匹配點周圍的點集。因此,視差梯度約束閾值選擇1較好。 選擇的定位角點為小盒的上表面的三個角點以及底部的三個角點,標(biāo)號1~6。特征值比值約束為[0.2,10],相關(guān)系數(shù)閾值取0.7。利用本文算法得到113對匹配點,錯誤匹配21對,如圖9所示。 圖9 左右匹配效果圖Fig.9 Matching results of the improved algorithm 采用SIFT算法時,distRatio 采用建議的0.65,匹配結(jié)果為匹配了18對,錯誤匹配2對,正確匹配16對,如圖10所示。 圖10 SIFT算法的匹配結(jié)果Fig.10 Matching results of SIFT algorithm 從實驗結(jié)果可以看出,SIFT算法所提取的特征角點少,正確匹配率高。匹配點對太少,導(dǎo)致后期的三維測量是離散點少,進(jìn)行擬合時誤差較高。 3.2 水池試驗 本文采集的實驗圖片是在哈爾濱工程大學(xué)船模實驗室水池中船模航行時船側(cè)水波紋圖像。船模長度1.2 m。試驗中,在船艏,船舯,船艉處分別放置了三組雙目攝像設(shè)備,同時拍攝船模以不同的速度航行時,船周圍所泛起的波浪照片,用于繪制船側(cè)的波浪等高線圖。圖11表示航模速度為1.701 kn時船模后部位置產(chǎn)生的波浪經(jīng)過預(yù)處理后的圖片。由于水池實驗環(huán)境有許多噪聲干擾,如光照影響,相機(jī)自身干擾,波浪反光等,獲得的圖片噪聲太多,不能直接應(yīng)用處理。本文改進(jìn)的特征點提取算法處理結(jié)果如圖12所示。 本文所提出算法的匹配結(jié)果如圖13所示。視差梯度約束閾值為1,極線約束上下20像素,區(qū)域?qū)?yīng)查找,特征值比值范圍[0.2,10]。左右匹配兩點之間的距離范圍為[2 085,2 170],匹配點之間相關(guān)系數(shù)的閾值選取為0.7。 圖14 為Harris檢測結(jié)果,閾值取0.000 000 4。左圖檢測出角點2 349個,右圖檢測出角點1 882。 SIFT算法檢測出左圖角點993個,右圖角點750個, distRatio 采用建議的0.65,匹配點3對,正確匹配2,錯誤匹配1。SIFT算法檢測出的特征點如圖15所示,圖16給出了SIFT算法最終的匹配結(jié)果。 將小盒以及水池照片所有參數(shù)的各種對比數(shù)據(jù)統(tǒng)計在表1中。 圖11 預(yù)處理原始左右灰度圖的結(jié)果Fig.11 The left and right original grayscale images after de-noising 圖12 改進(jìn)算法的左右兩圖角點檢測Fig.12 The corner detection results of the improved algorithm 圖13 改進(jìn)算法匹配結(jié)果Fig.13 Matching results of the improved algorithm 圖14 Harris角點檢測結(jié)果Fig.14 The corner detection results of Harris 圖15 SIFT算法檢測的特征點Fig.15 The corner detection results of SIFT algorithm 圖16 SIFT算法匹配結(jié)果Fig.16 Matching results of SIFT algorithm 從表1的統(tǒng)計數(shù)據(jù)中可以看出,SIFT算法在小盒圖片的匹配中運算時間以及正確匹配率高于本文的算法。但在水池船后圖片處理中,本文提出的算法正確匹配率遠(yuǎn)遠(yuǎn)高于SIFT算法,運算時間雖然高于SIFT算法,但是在合理運算時間范圍內(nèi)。主要原因在于兩次實驗所選取的角點響應(yīng)閾值不同,因此可以看出角點響應(yīng)閾值參數(shù)是一個非常重要并且敏感的參數(shù),未來研究中將閾值參數(shù)定義為一個自適應(yīng)參數(shù)算法會更加穩(wěn)健。本文所進(jìn)行的研究工作是基于立體雙目波浪等高線繪制算法中的基礎(chǔ)部分,是后續(xù)所進(jìn)行三維波浪等高線繪制的基礎(chǔ),所匹配的點對數(shù)目直接影響等高線擬合精度。從上述數(shù)據(jù)對比可以看出,本文所提出的算法在處理基于雙目立體視覺的水面圖片時,在匹配率參數(shù)性能上面要高于SIFT算法。 表1 匹配結(jié)果分析 雙目立體視覺算法主要分為兩個步驟,特征點提取以及立體匹配。本文以船模航行時船側(cè)的波浪等高線測量為應(yīng)用背景,提出了一種有效的立體視覺測量方法,主要貢獻(xiàn)有以下兩點: 1)引入尺度方向不變算子,將其作為待提取的特征點,提高了特征點提取的質(zhì)量,降低了冗余特征點數(shù)量,減少了匹配算法部分的計算量; 2)在立體匹配算法部分,將極線約束方法與視差梯度和最大向量角算法相結(jié)合,提高了匹配精度。實驗結(jié)果顯示本文提出的算法在檢測水面圖片中,正確匹配率達(dá)到了81%。 [1]陳小天, 沈振康. 機(jī)器人視覺導(dǎo)航[J]. 系統(tǒng)仿真學(xué)報, 2008, 20(10): 5501-5503. CHEN Xiaotian, SHEN Zhenkang. Robot visual navigation [J]. Journal of system simulation, 2008, 20(10): 5501-5503. [2]GONZALEZ R C, WOODS R E. Digital image processing[M]. 3rd ed. India: Pearson Education, 2009. [3]CANNY J. A computational approach to edge detection[J]. IEEE transactions on pattern analysis and machine intelligence, 1986, PAMI-8(6): 679-698. [4]MORAVEC H P. Obstacle avoidance and navigation in the real world by a seeing robot rover[D]. Stanford: Stanford University, 1980. [5]HARRIS C, STEPHENS M. A combined corner and edge detector[C] // Proceedings of the 4th Alvey vision conference. Manchester, UK: AVC, 1988: 147-150. [6]LOWE D G. Distinctive image features from scale-invariant keypoints[J]. International journal of computer vision, 2004, 60(2): 91-110. [7]MARR D, VISION A. A Computational Investigation into the Human Representation and Processing of Visual Information[M]. San Francisco: Freeman and Company, 1982. [8]解則曉, 陸文娟. 基于圖像相似幾何特征的雙目匹配算法[J]. 中國激光, 2014, 41(5): 0508002. XIE Zexiao, LU Wenjuan. Binocular matching algorithm based on similar geometric Features[J]. Chinese journal of lasers, 2014, 41(5): 0508002. [9]TAN Xiao, SUN Changming, SIRAULT X, et al. Feature matching in stereo images encouraging uniform spatial distribution[J]. Pattern recognition, 2015, 48(8): 2530-2542. [10]SONG Tao, TANG Baoping, ZHAO Minghang, et al. An accurate 3-D fire location method based on sub-pixel edge detection and non-parametric stereo matching[J]. Measurement, 2014, 50: 160-171. Improvement and application of a binocular stereo vision algorithm CANG Yan, YIN Fengming, BI Xiaojun (College of Information and Communication Engineering, Harbin Engineering University, Harbin 150001, China) This paper aims at improving the feature point extraction and stereo match algorithm to increase the right matching rate of binocular stereo vision. For the feature point extraction, we defined corners with a fixed scale and direction. To calculate the stereo match algorithm, a pole line constraint was used to match the corners. A disparity gradient constraint and maximum vector angle criterion were combined as a multi-constraint condition to determine a one-to-one exact match. A box image collected in the lab room and wave images generated by a ship model towed by a trailer in the experiment pool were used as objects to test the proposed algorithm. The results show that the correct match rate of the proposed algorithm is 14% higher than the scale invariant feature transform (SIFT) algorithm. binocular vision; scale invariant feature transform (SIFT); corner detection; measurement; feature extraction; match algorithm 2016-03-22. 日期:2017-01-11. 國家國際科技合作專項項目(KY10800150002);國家自然科學(xué)基金項目(61371175). 蒼巖(1978-), 女, 講師,博士; 畢曉君(1964-), 女, 教授,博士生導(dǎo)師. 蒼巖, E-mail: cangyan@hrbeu.edu.cn. 10.11990/jheu.201603076 TP911 A 1006-7043(2017)03-0465-06 蒼巖, 尹鳳鳴, 畢曉君. 改進(jìn)的雙目立體視覺算法及其應(yīng)用[J]. 哈爾濱工程大學(xué)學(xué)報, 2017, 38(3):465-470. CANG Yan,YIN Fengming,BI Xiaojun. Improvement and application of a binocular stereo vision algorithm[J]. Journal of Harbin Engineering University, 2017, 38(3):465-470. 網(wǎng)絡(luò)出版地址:http://www.cnki.net/kcms/detail/23.1390.u.20170111.1443.002.html2 立體匹配算法
3 試驗結(jié)果與分析
4 結(jié)論