蒼巖, 尹鳳鳴, 畢曉君
(哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001)
改進(jìn)的雙目立體視覺(jué)算法及其應(yīng)用
蒼巖, 尹鳳鳴, 畢曉君
(哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001)
為了提高雙目立體視覺(jué)算法正確匹配率,本文改進(jìn)了特征點(diǎn)提取及立體匹配算法。特征點(diǎn)提取部分,定義了尺度方向不變角點(diǎn);在匹配計(jì)算部分,利用極線約束計(jì)算特征點(diǎn)的候選匹配角點(diǎn),采用視差梯度約束和最大向量角準(zhǔn)則多約束條件實(shí)現(xiàn)精確匹配。對(duì)本文的改進(jìn)算法進(jìn)行了實(shí)驗(yàn)室以及水池試驗(yàn)驗(yàn)證:實(shí)驗(yàn)室中采集小盒圖片;水池試驗(yàn)中,拖車帶動(dòng)船模在試驗(yàn)水池航行時(shí),采集船后部的波浪圖片。實(shí)驗(yàn)結(jié)果顯示,改進(jìn)算法在水池實(shí)驗(yàn)圖片處理中的正確匹配率比尺度不變特征變換(SIFT)算法高14%。
雙目視覺(jué);SIFT算法;角點(diǎn)檢測(cè);測(cè)量;特征提?。黄ヅ渌惴?/p>
雙目立體視覺(jué)是機(jī)器視覺(jué)的一種重要形式。雙目立體視覺(jué)測(cè)量系統(tǒng)主要分為圖像獲取、攝像機(jī)標(biāo)定、特征提取與匹配、三維重建。由于空間的三維景物被投影到二維圖像時(shí),視角問(wèn)題、場(chǎng)景中的光照條件、景物幾何形狀和物理特性、噪聲干擾和畸變、相機(jī)特性等都被綜合到了圖像的灰度值中,因此,要準(zhǔn)確地對(duì)包含諸多不利因素的圖像進(jìn)行無(wú)歧義的特征提取與匹配是很困難的。特征提取是為了得到匹配賴以進(jìn)行的圖像匹配基元,發(fā)展至今,有Soble算子[2]、Canny算子[3],Moravec算子[4]、Harris角點(diǎn)檢測(cè)[5]和尺度不變特征變換(scale invariant feature transform,SIFT)[6]特征提取算法。特征匹配主要利用匹配基元間的相似屬性建立相似測(cè)度函數(shù),在約束條件下得到雙目圖像的匹配點(diǎn)對(duì)。約束條件主要集中在尋找搜索的范圍和相似度的計(jì)算兩個(gè)方面。Marr提出的唯一性約束、相容性約束、視差梯度約束、連續(xù)性約束[7]都圍繞這兩個(gè)方面。Marr提出的約束條件是最基本的,隨著立體匹配的發(fā)展,視差范圍約束、最大向量角準(zhǔn)則[8]、極線約束[9-10]等也被發(fā)展與應(yīng)用。
針對(duì)立體視覺(jué)算法中冗余特征點(diǎn)以及誤匹配的問(wèn)題,提出了尺度旋轉(zhuǎn)不變角點(diǎn)的檢測(cè)方法,解決冗余特征點(diǎn)多、計(jì)算量大的問(wèn)題。本文將極線約束匹配算法、最大視差梯度算法以及最大向量角準(zhǔn)則相結(jié)合,提高匹配正確率。利用實(shí)驗(yàn)室室內(nèi)拍攝的盒子圖像以及水池拍攝的水波紋圖像對(duì)本文改進(jìn)的算法進(jìn)行驗(yàn)證。
利用特征點(diǎn)代替圖像中所有像素點(diǎn)能夠減少計(jì)算量。依據(jù)算法應(yīng)用的背景不同,特征點(diǎn)的分類也不同。本文選擇角點(diǎn)作為感興趣的特征點(diǎn)。針對(duì)Harris算法冗余角點(diǎn)過(guò)多的問(wèn)題,引入尺度旋轉(zhuǎn)不變角點(diǎn),兼具尺度不變性和旋轉(zhuǎn)不變性。尺度不變性角點(diǎn),即為同時(shí)存在于多個(gè)尺度空間的角點(diǎn)。對(duì)尺度不變角點(diǎn)及其附近像素點(diǎn)計(jì)算方向描述子,選定幅值最大的方向?yàn)橹鞣较颍挡坏陀谧畲笾?0%的方向?yàn)檩o方向。具有單一主輔方向的角點(diǎn)為尺度旋轉(zhuǎn)不變角點(diǎn)。若存在多個(gè)輔方向,說(shuō)明該點(diǎn)在任何一方向上的變化都很緩慢,屬于空白部分,或者該點(diǎn)在任何一方向上變化都很快,屬于噪聲部分。提取尺度旋轉(zhuǎn)不變角點(diǎn)的具體步驟如下:
1) 生成多尺度空間。假設(shè)一個(gè)圖像I(x,y)的尺度函數(shù)定義為L(zhǎng)(x,y,σ),則可以通過(guò)該圖像I(x,y)與高斯函數(shù)G(x,y,σ)卷積運(yùn)算得到尺度函數(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) 對(duì)每一層尺度空間圖像,分別計(jì)算其角點(diǎn)響應(yīng)值R,并設(shè)定一個(gè)合適的閾值,對(duì)于小于閾值的角點(diǎn)響應(yīng)值R,將其置零:
R={R:detMk-α(traceMk)2 3) 在5×5的窗口中進(jìn)行局部非極大值抑制,取其中極大值點(diǎn)的位置點(diǎn)作為每一層尺度空間圖像L(x,y,kσ)中的角點(diǎn)。 4) 確定方向,圖像中任意角點(diǎn)的幅值m(x,y)和方向θ(x,y)計(jì)算公式如下 式中:L是檢測(cè)到的每一個(gè)角點(diǎn)各自所位于多尺度空間圖像上的尺度。 立體匹配算法將左右圖中的特征點(diǎn)實(shí)現(xiàn)一對(duì)一匹配。立體匹配過(guò)程中,經(jīng)常出現(xiàn)一對(duì)多誤匹配現(xiàn)象。針對(duì)該問(wèn)題,本文采用多約束條件匹配,提高匹配的精度。首先采用極線約束,計(jì)算左圖特征點(diǎn)在右圖上的極線,取極線上下20像素范圍內(nèi)的角點(diǎn)作為候選點(diǎn),結(jié)合視差梯度與最大向量角約束,實(shí)現(xiàn)一對(duì)一精確匹配。具體計(jì)算步驟如下: 1)對(duì)左圖中的角點(diǎn)pl,計(jì)算其右圖對(duì)應(yīng)的極線約束方程: lpr=Fpl 式中:F為相機(jī)的基礎(chǔ)矩陣。利用極線條件約束后,能夠減少一定數(shù)量的無(wú)匹配角點(diǎn)。 式中:Gd為視差梯度,K為視差梯度約束的閾值,一般取值為2。如果視差梯度值大于設(shè)定的閾值K時(shí),則認(rèn)為該點(diǎn)對(duì)違反了視差梯度約束,統(tǒng)計(jì)其違反的次數(shù)。 圖1 視差梯度約束Fig.1 Disparity gradient constraint 3)依次計(jì)算出其他的匹配點(diǎn)對(duì)的視差梯度以及其違反的次數(shù),找出其中違反次數(shù)最多的一組,剔除該組匹配點(diǎn)對(duì),更新角點(diǎn)對(duì)。 4)重復(fù)2)、3),直到?jīng)]有違反視差度約束條件為止。 式中:N為左圖中其他候選角點(diǎn)對(duì)個(gè)數(shù)。最大向量角準(zhǔn)則是找出θsum最大的點(diǎn),這點(diǎn)即是錯(cuò)誤的匹配點(diǎn),將其刪除,繼續(xù)尋找剔除,直到最精確的那一點(diǎn)作為最后的匹配角點(diǎn)。 雙目攝像機(jī)固定在三腳架上,攝像的高度、攝像機(jī)的間距以及夾角均可調(diào)。雙目攝像機(jī)通過(guò)網(wǎng)絡(luò)交換機(jī)與主控電腦相連。主控電腦采用ThinkPad T440計(jì)算機(jī)。主控平臺(tái)上運(yùn)行雙目測(cè)量測(cè)試開(kāi)發(fā)平臺(tái)軟件,由Visual C++6.0語(yǔ)言編寫(xiě),實(shí)現(xiàn)圖像的采集,標(biāo)定等功能。本系統(tǒng)所采集的圖像均為480×640。 3.1 小盒試驗(yàn) 通過(guò)雙目視覺(jué)系統(tǒng)對(duì)盒子進(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算法檢測(cè)出的角點(diǎn)非常密集,過(guò)多的角點(diǎn)里面包含冗余信息,增加匹配算法的計(jì)算量,也會(huì)增加誤匹配率。SIFT算法剔除了冗余角點(diǎn),但是能夠提供給后續(xù)匹配處理的角點(diǎn)數(shù)據(jù)量相對(duì)較少,匹配點(diǎn)的數(shù)量較少,導(dǎo)致后續(xù)的三維測(cè)量的精度較低。本文改進(jìn)的算法所保留的角點(diǎn)數(shù)量介于兩者之間,有效去處了冗余角點(diǎn),同時(shí)還能保證足夠的角點(diǎn)數(shù)量,為后續(xù)的匹配處理提供最優(yōu)的角點(diǎn)數(shù)據(jù)庫(kù)。雖然降低SIFT算法的角點(diǎn)響應(yīng)閾值,能夠增加角點(diǎn)數(shù)量,但這相當(dāng)于增加了角點(diǎn)檢測(cè)算法的噪聲,給后續(xù)的匹配算法增加了計(jì)算量和誤匹配率。本文提出的尺度方向不變角點(diǎn)在保證每層角點(diǎn)提取總基數(shù)的基礎(chǔ)上,利用方向算子抑制冗余角點(diǎn),提高角點(diǎn)提取的質(zhì)量。 圖3 Harris角點(diǎn)檢測(cè)算法檢測(cè)到的角點(diǎn)圖Fig.3 Corners showed by Harris corner detection algorithm 圖4 SIFT算法檢測(cè)到的角點(diǎn)圖Fig.4 Corner showed by SIFT detection algorithm 圖5 改進(jìn)的角點(diǎn)檢測(cè)算法檢測(cè)到的角點(diǎn)圖Fig.5 Corners showed by improved corner detection algorithm 左右圖匹配計(jì)算中,本文提出了在極線約束算法基礎(chǔ)上,結(jié)合最大視差梯度以及最大向量角算法提高左右圖匹配的準(zhǔn)確率和后期三維測(cè)量精度。由于篇幅所限,本文只選取了一個(gè)點(diǎn)作為描述舉例。圖6(a)是左圖的角點(diǎn)(842,758),利用極線約束算法,取上下20個(gè)像素范圍,在圖6(b)所描述的右圖中找到了67個(gè)符合極線約束的角點(diǎn),從圖6中可以看出,由于極線是一條貫穿右圖的直線,因此可以用圖中視差梯度以及最大向量角準(zhǔn)則進(jìn)一步剔除誤匹配點(diǎn)。 將視差梯度約束閾值設(shè)為2,視差約束后,右圖剩余64個(gè)點(diǎn),剔除3個(gè)點(diǎn),如圖7(a)所示,利用最大向量角約束后,剩余一個(gè)角點(diǎn)(791,783),如圖7(b)所示。 圖6 極限約束一對(duì)多的情況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時(shí),視差梯度約束后,剩余59個(gè)點(diǎn),剔除8個(gè)點(diǎn),如圖8(a)所示。利用最大向量角準(zhǔn)則后,實(shí)現(xiàn)了匹配一對(duì)一結(jié)果,匹配點(diǎn)(791,783),結(jié)果如圖8(b)所示。 圖8 視差梯度約束取1匹配結(jié)果Fig.8 Matching results of disparity gradient constraint value being 1 處理結(jié)果顯示,一對(duì)多的“多”較集中在正確匹配點(diǎn)周圍。當(dāng)視差梯度約束的閾值取2時(shí),剔除的誤匹配點(diǎn)較少,最終還是最大向量角準(zhǔn)則的作用,得到一對(duì)一匹配結(jié)果。當(dāng)一對(duì)多的“多”不集中在正確匹配點(diǎn)周圍時(shí),視差梯度約束2能剔除離正確匹配點(diǎn)較遠(yuǎn)的點(diǎn),保留集中在正確匹配點(diǎn)周圍的點(diǎn)集,再采用最大向量角準(zhǔn)則,得到一對(duì)一。從實(shí)驗(yàn)效果來(lái)看,當(dāng)視差梯度約束閾值為1時(shí),能更有效地剔除那些遠(yuǎn)離正確匹配點(diǎn)的點(diǎn)集,保留更集中于正確匹配點(diǎn)周圍的點(diǎn)集。因此,視差梯度約束閾值選擇1較好。 選擇的定位角點(diǎn)為小盒的上表面的三個(gè)角點(diǎn)以及底部的三個(gè)角點(diǎn),標(biāo)號(hào)1~6。特征值比值約束為[0.2,10],相關(guān)系數(shù)閾值取0.7。利用本文算法得到113對(duì)匹配點(diǎn),錯(cuò)誤匹配21對(duì),如圖9所示。 圖9 左右匹配效果圖Fig.9 Matching results of the improved algorithm 采用SIFT算法時(shí),distRatio 采用建議的0.65,匹配結(jié)果為匹配了18對(duì),錯(cuò)誤匹配2對(duì),正確匹配16對(duì),如圖10所示。 圖10 SIFT算法的匹配結(jié)果Fig.10 Matching results of SIFT algorithm 從實(shí)驗(yàn)結(jié)果可以看出,SIFT算法所提取的特征角點(diǎn)少,正確匹配率高。匹配點(diǎn)對(duì)太少,導(dǎo)致后期的三維測(cè)量是離散點(diǎn)少,進(jìn)行擬合時(shí)誤差較高。 3.2 水池試驗(yàn) 本文采集的實(shí)驗(yàn)圖片是在哈爾濱工程大學(xué)船模實(shí)驗(yàn)室水池中船模航行時(shí)船側(cè)水波紋圖像。船模長(zhǎng)度1.2 m。試驗(yàn)中,在船艏,船舯,船艉處分別放置了三組雙目攝像設(shè)備,同時(shí)拍攝船模以不同的速度航行時(shí),船周圍所泛起的波浪照片,用于繪制船側(cè)的波浪等高線圖。圖11表示航模速度為1.701 kn時(shí)船模后部位置產(chǎn)生的波浪經(jīng)過(guò)預(yù)處理后的圖片。由于水池實(shí)驗(yàn)環(huán)境有許多噪聲干擾,如光照影響,相機(jī)自身干擾,波浪反光等,獲得的圖片噪聲太多,不能直接應(yīng)用處理。本文改進(jìn)的特征點(diǎn)提取算法處理結(jié)果如圖12所示。 本文所提出算法的匹配結(jié)果如圖13所示。視差梯度約束閾值為1,極線約束上下20像素,區(qū)域?qū)?yīng)查找,特征值比值范圍[0.2,10]。左右匹配兩點(diǎn)之間的距離范圍為[2 085,2 170],匹配點(diǎn)之間相關(guān)系數(shù)的閾值選取為0.7。 圖14 為Harris檢測(cè)結(jié)果,閾值取0.000 000 4。左圖檢測(cè)出角點(diǎn)2 349個(gè),右圖檢測(cè)出角點(diǎn)1 882。 SIFT算法檢測(cè)出左圖角點(diǎn)993個(gè),右圖角點(diǎn)750個(gè), distRatio 采用建議的0.65,匹配點(diǎn)3對(duì),正確匹配2,錯(cuò)誤匹配1。SIFT算法檢測(cè)出的特征點(diǎn)如圖15所示,圖16給出了SIFT算法最終的匹配結(jié)果。 將小盒以及水池照片所有參數(shù)的各種對(duì)比數(shù)據(jù)統(tǒng)計(jì)在表1中。 圖11 預(yù)處理原始左右灰度圖的結(jié)果Fig.11 The left and right original grayscale images after de-noising 圖12 改進(jìn)算法的左右兩圖角點(diǎn)檢測(cè)Fig.12 The corner detection results of the improved algorithm 圖13 改進(jìn)算法匹配結(jié)果Fig.13 Matching results of the improved algorithm 圖14 Harris角點(diǎn)檢測(cè)結(jié)果Fig.14 The corner detection results of Harris 圖15 SIFT算法檢測(cè)的特征點(diǎn)Fig.15 The corner detection results of SIFT algorithm 圖16 SIFT算法匹配結(jié)果Fig.16 Matching results of SIFT algorithm 從表1的統(tǒng)計(jì)數(shù)據(jù)中可以看出,SIFT算法在小盒圖片的匹配中運(yùn)算時(shí)間以及正確匹配率高于本文的算法。但在水池船后圖片處理中,本文提出的算法正確匹配率遠(yuǎn)遠(yuǎn)高于SIFT算法,運(yùn)算時(shí)間雖然高于SIFT算法,但是在合理運(yùn)算時(shí)間范圍內(nèi)。主要原因在于兩次實(shí)驗(yàn)所選取的角點(diǎn)響應(yīng)閾值不同,因此可以看出角點(diǎn)響應(yīng)閾值參數(shù)是一個(gè)非常重要并且敏感的參數(shù),未來(lái)研究中將閾值參數(shù)定義為一個(gè)自適應(yīng)參數(shù)算法會(huì)更加穩(wěn)健。本文所進(jìn)行的研究工作是基于立體雙目波浪等高線繪制算法中的基礎(chǔ)部分,是后續(xù)所進(jìn)行三維波浪等高線繪制的基礎(chǔ),所匹配的點(diǎn)對(duì)數(shù)目直接影響等高線擬合精度。從上述數(shù)據(jù)對(duì)比可以看出,本文所提出的算法在處理基于雙目立體視覺(jué)的水面圖片時(shí),在匹配率參數(shù)性能上面要高于SIFT算法。 表1 匹配結(jié)果分析 雙目立體視覺(jué)算法主要分為兩個(gè)步驟,特征點(diǎn)提取以及立體匹配。本文以船模航行時(shí)船側(cè)的波浪等高線測(cè)量為應(yīng)用背景,提出了一種有效的立體視覺(jué)測(cè)量方法,主要貢獻(xiàn)有以下兩點(diǎn): 1)引入尺度方向不變算子,將其作為待提取的特征點(diǎn),提高了特征點(diǎn)提取的質(zhì)量,降低了冗余特征點(diǎn)數(shù)量,減少了匹配算法部分的計(jì)算量; 2)在立體匹配算法部分,將極線約束方法與視差梯度和最大向量角算法相結(jié)合,提高了匹配精度。實(shí)驗(yàn)結(jié)果顯示本文提出的算法在檢測(cè)水面圖片中,正確匹配率達(dá)到了81%。 [1]陳小天, 沈振康. 機(jī)器人視覺(jué)導(dǎo)航[J]. 系統(tǒng)仿真學(xué)報(bào), 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]. 中國(guó)激光, 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. 國(guó)家國(guó)際科技合作專項(xiàng)項(xiàng)目(KY10800150002);國(guó)家自然科學(xué)基金項(xiàng)目(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)的雙目立體視覺(jué)算法及其應(yīng)用[J]. 哈爾濱工程大學(xué)學(xué)報(bào), 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 試驗(yàn)結(jié)果與分析
4 結(jié)論