亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenCV的立體匹配算法的研究與實(shí)現(xiàn)

        2013-07-25 02:28:22孔令寅
        關(guān)鍵詞:特征檢測

        李 健,孔令寅

        (陜西科技大學(xué)電氣與信息工程學(xué)院,陜西西安710021)

        0 引言

        隨著計(jì)算機(jī)視覺技術(shù)的不斷發(fā)展,雙目視覺成為了計(jì)算機(jī)三維測量領(lǐng)域中一個熱點(diǎn)研究技術(shù),其測量原理是利用空間同一點(diǎn)在兩個攝像機(jī)成像平面上的視差大小計(jì)算空間點(diǎn)的三維坐標(biāo)。要計(jì)算視差,必須知道該點(diǎn)在左右兩幅圖像上的二維坐標(biāo),左右圖像上在三維空間里的同一點(diǎn)稱為匹配點(diǎn)[1]。而立體匹配就是查找相應(yīng)的匹配點(diǎn)。但將三維空間場景投影為二維圖像后,由于受到場景中噪聲干擾、光照條件、景物物理特性和幾何形狀、攝像機(jī)特性以及畸變等諸多因素的影響,在不同視點(diǎn)下,同一景物的圖像會呈現(xiàn)出極大的差別,因此如何對圖像進(jìn)行準(zhǔn)確的立體匹配成為了雙目視覺三維測量研究領(lǐng)域中的重點(diǎn)和難點(diǎn)問題。

        目前所提出的立體匹配算法有許多,主要分為兩大類:基于局部約束和基于全局約束。其中,基于局部約束的立體匹配算法又分為3類:區(qū)域匹配算法、特征匹配算法和相位匹配算法。區(qū)域匹配算法主要基于光度測量學(xué)中的不變性原理,將灰度相關(guān)程度作為匹配的判別依據(jù),結(jié)果得到的視差圖較為稠密[2]。該類算法最主要的缺點(diǎn)是由于窗口選擇函數(shù)的銳度變化不夠并且深度的不連續(xù)特征不易保留,因此對于無紋理區(qū)域的匹配結(jié)果常常不很理想;特征匹配算法主要基于幾何不變性的原理,對于區(qū)域匹配算法中存在的無紋理區(qū)域敏感和深度不連續(xù)等缺點(diǎn)進(jìn)行了完善[3],該類算法的優(yōu)點(diǎn)在于噪聲的不敏感性,可得到較為精確的匹配結(jié)果,缺點(diǎn)主要有兩個:一是由于圖像中特征的稀疏性,該類算法得到的都是稀疏的視差圖,要得到稠密的視差圖需要進(jìn)行插值。二是特征提取精度將極大影響匹配的結(jié)果;相位匹配算法基于傅立葉平移定理,通過對時(shí)/空二頻域帶通濾波后的定位性基元信號進(jìn)行相位信息處理獲得像對間的視差[4]。相比上述兩類方法,該類方法更好地反映了信號結(jié)構(gòu)信息,對圖像中的高頻噪聲及畸變也能起到較好的抑制作用,獲得的視差是致密的具有亞像素級精度,其缺點(diǎn)主要有兩個:第一,由于帶通信號輸出幅度過低因此產(chǎn)生了相位奇點(diǎn)問題;第二,因帶通濾波器波長與相位匹配的算法收斂范圍相關(guān)帶來的相位卷繞問題。

        針對現(xiàn)有匹配方法影響匹配因素多,易出現(xiàn)誤匹配等問題,本文提出了一種基于OpenCV的立體匹配算法,并利用VC++進(jìn)行了實(shí)現(xiàn),最后通過實(shí)驗(yàn)對算法的匹配效果和精度進(jìn)行了驗(yàn)證。

        1 角點(diǎn)特征定義與檢測

        1.1 角點(diǎn)特征的定義

        目前,計(jì)算機(jī)視覺領(lǐng)域內(nèi)對于角點(diǎn)特征還沒有一個統(tǒng)一的數(shù)學(xué)定義,而角點(diǎn)特征的含義本身又較為模糊,因此各種有關(guān)角點(diǎn)特征檢測方法的文獻(xiàn)中對于角點(diǎn)特征的數(shù)學(xué)定義都有著不同的描述,由此也提出了各種不同角點(diǎn)特征檢測的數(shù)學(xué)方法。目前有關(guān)角點(diǎn)特征的定義有以下幾種[5-6]:角點(diǎn)特征是灰度梯度局部最大的像素對應(yīng)點(diǎn);角點(diǎn)特征是兩條及以上邊界的連接點(diǎn);角點(diǎn)特征表示了物體邊緣不連續(xù)變化的方向;角點(diǎn)特征處具有最大的一階導(dǎo)數(shù)值,并且H階導(dǎo)數(shù)值為0;角點(diǎn)特征處梯度的值不僅大,并且在梯度方向上速率變化也最快。換言之,角點(diǎn)特征處一般是二維空間內(nèi),圖像中灰度劇烈變化的位置,是和周圍相鄰點(diǎn)差異明顯的像素點(diǎn)[7]。

        角點(diǎn)特征按照不同的結(jié)構(gòu)可分為以下幾類:“X”型、“K”型、“T”型、“Y”型、“V”型等。

        1.2 角點(diǎn)特征的添加

        本文使用投影儀將棋盤格投射到待測物體上,這里選擇具有規(guī)則幾何形狀的長方體木塊作為待測物體,如圖1所示,這樣就在待測物體表面人工添加了易于識別和檢測的角點(diǎn)特征,這里需要注意的是棋盤格圖像的分辨率要盡量和投影儀的分辨率一致,不一致則會對匹配的結(jié)果產(chǎn)生影響,另外,圖像的大小最好是完整覆蓋在被測物體上。

        圖1 角點(diǎn)特征的添加

        1.3 角點(diǎn)特征的檢測

        目前,角點(diǎn)特征的檢測方法主要有兩種:基于邊緣的角點(diǎn)特征檢測法和基于圖像灰度的角點(diǎn)特征檢測法。基于邊緣的角點(diǎn)特征檢測法由于過于依賴邊緣的提取,若提取出的邊緣線出現(xiàn)斷裂則會對最終角點(diǎn)特征的檢測帶來較大的影響。因此本文選擇基于圖像灰度的角點(diǎn)特征檢測法,該類方法中比較有代表性的算法有SUSAN算子、Harris算子、Moravec算子、Forstner算子。本文使用OpenCV庫函數(shù)CvGoodFeaturesToTrack對圖像中的角點(diǎn)特征進(jìn)行檢測[8],該函數(shù)利用的是Harris算子,計(jì)算簡單有效,特別適用于點(diǎn)狀特征的提取,并且即便是存在視點(diǎn)變換,灰度變化,圖像旋轉(zhuǎn)和噪聲的影響,提取結(jié)果也是相對穩(wěn)定的。

        首先,計(jì)算目標(biāo)圖像的一階導(dǎo)數(shù),即對于目標(biāo)圖像上的每一個點(diǎn),將其在x方向和y方向上的一階導(dǎo)數(shù)以及二者的乘積進(jìn)行計(jì)算,結(jié)果會得到三幅新圖像。三幅圖像中每個像素分別對應(yīng)的屬性值為對這三幅圖像先進(jìn)行高斯濾波處理,再計(jì)算原圖像上每個點(diǎn)對應(yīng)的興趣值。計(jì)算公式如式 (1)所示

        由于Harris算子中特征點(diǎn)被定義為指定區(qū)域內(nèi)興趣值最大的像素點(diǎn),因此接下來需要對原圖像中指定區(qū)域內(nèi)興趣值最大的像素點(diǎn)進(jìn)行提取。一般情況下,可以設(shè)定一個指定大小的窗口 (如3×3大小),將每個像素點(diǎn)作為窗口的中心,若中心像素點(diǎn)的興趣值最大,那么該點(diǎn)即為特征點(diǎn)。

        通常指定區(qū)域內(nèi)興趣值最大的像素點(diǎn)數(shù)量很多,這樣在后續(xù)進(jìn)行匹配計(jì)算時(shí),過多的匹配點(diǎn)會大大增加計(jì)算量。所以這里本文先將所有滿足條件的像素點(diǎn)進(jìn)行排序,再根據(jù)實(shí)際需求選擇若干個作為最終檢測結(jié)果。這種做法的好處是可以根據(jù)不同質(zhì)量圖片的需要定量的選擇特征點(diǎn),這樣所得到的點(diǎn)總是最好的。

        1.4 亞像素級精度角點(diǎn)特征位置的計(jì)算

        用Harris算子進(jìn)行角點(diǎn)特征檢測,所提取到的角點(diǎn)特征位置精度只能達(dá)到像素級,這樣的精度會影響立體匹配的精確度,因此需要將提取到的角點(diǎn)特征位置精度進(jìn)一步精確到亞像素級,本文使用OpenCV庫函數(shù)CvFindCorner-SubPix進(jìn)行亞像素級精度角點(diǎn)特征位置的計(jì)算[9],具體的計(jì)算原理如下。

        當(dāng)一個向量和與其正交的向量點(diǎn)積為0,則角點(diǎn)特征滿足這種情況,如圖2所示。

        假設(shè)圖2中點(diǎn)q的起始位置就在亞像素級角點(diǎn)特征實(shí)際位置的附近。對所有向量q-p進(jìn)行檢測,如果點(diǎn)p在一個均勻區(qū)域中,那么點(diǎn)p處的梯度值是0。如果向量q-p與區(qū)域邊緣的方向相同,那么向量q-p正交于該邊緣p點(diǎn)處的梯度向量,上述兩種情況下,向量q-p與點(diǎn)p處的梯度向量點(diǎn)積為0。則在點(diǎn)p的周圍可以找出許多組梯度向量和其相關(guān)的q-p向量,將其點(diǎn)集設(shè)為0,再對獲得的方程組進(jìn)行求解,得到的解即是角點(diǎn)特征q位置的亞像素級精度值。

        圖2 計(jì)算原理

        2 立體匹配算法描述

        確定了角點(diǎn)特征檢測方法以及亞像素精度位置的計(jì)算方法之后,接下來,就需要對左右兩幅圖上的角點(diǎn)特征進(jìn)行匹配了,本文提出的匹配算法描述如下:

        步驟1 將左右兩幅圖像上檢測到的l行共n個角點(diǎn)特征 (l>0,n>0)的坐標(biāo)值保存到文件中。

        步驟2 定義數(shù)組Lx[n]和Ly[n]存放左圖中n個角點(diǎn)特征的x坐標(biāo)值和y坐標(biāo)值,定義數(shù)組Rx[n]和Ry[n]存放右圖中n個角點(diǎn)特征的x坐標(biāo)值和y坐標(biāo)值。

        步驟3 分別計(jì)算數(shù)組Ly和Ry中n個元素的最小值,即分別找出左圖和右圖中n個角點(diǎn)特征y坐標(biāo)的最小值,將最小值分別定義為Lymin和Rymin。

        步驟4 確定左圖和右圖中每個角點(diǎn)特征所在的行。

        (1)確定每行角點(diǎn)特征y坐標(biāo)的閾值,這里可以考慮選擇一個棋盤格上邊緣與下邊緣y坐標(biāo)的差值Δy作為參考,例如第一行可設(shè)為第二行可設(shè)為第三行可設(shè)為依此類推。當(dāng)然,具體閾值需要根據(jù)不同棋盤格大小、被測物體情況、圖象質(zhì)量情況等因素靈活選定。

        (2)計(jì)算數(shù)組Ly中每個元素與Lymin的差值ΔLy和數(shù)組Ry中每個元素與Rymin的差值ΔRy。

        (3)將左右兩幅圖中每個角點(diǎn)特征計(jì)算出的差值ΔLy和ΔRy與每行的閾值進(jìn)行比較,從而確定每個角點(diǎn)特征所在的行。定義數(shù)組Lkx[i]和Lky[i]存放左圖中第k行(0<k≤l)所有角點(diǎn)特征的x坐標(biāo)值和y坐標(biāo)值,定義數(shù)組Rkx[i]和Rky[i]存放右圖中第k行 (0<k≤l)所有角點(diǎn)特征的x坐標(biāo)值和y坐標(biāo)值,其中i的值取l行中角點(diǎn)特征數(shù)量的最大值。

        步驟5 按角點(diǎn)特征的x坐標(biāo)值從小到大逐行對左圖和右圖中的角點(diǎn)特征坐標(biāo)進(jìn)行排序,再逐行把排序后的角點(diǎn)特征坐標(biāo)值重新存到對應(yīng)的數(shù)組Lx,Ly,Rx,Ry中,則左圖上坐標(biāo)為 (Lx[j],Ly[j])的角點(diǎn)特征和右圖上坐標(biāo)為 (Rx[j],Ry[j])的角點(diǎn)特征為一對匹配點(diǎn)。

        3 實(shí)驗(yàn)與結(jié)果分析

        這里本文在VS2008開發(fā)環(huán)境下利用VC++將本文提出的匹配算法編寫為程序,并通過實(shí)驗(yàn)對該算法進(jìn)行驗(yàn)證。具體實(shí)驗(yàn)過程如下:

        (1)將拍攝得到的圖像對,如圖1所示,經(jīng)過簡單的處理和立體校正后分別對圖像對中角點(diǎn)特征進(jìn)行檢測并計(jì)算像素精度和亞像素精度角點(diǎn)特征的位置,為了便于觀察,這里將檢測到的角點(diǎn)特征用紅色的點(diǎn)在圖像對上進(jìn)行標(biāo)注,檢測結(jié)果如圖3所示,檢測到的角點(diǎn)特征數(shù)量為14個。

        圖3 角點(diǎn)特征檢測結(jié)果

        (2)利用本文立體匹配算法進(jìn)行特征點(diǎn)匹配,將左圖角點(diǎn)特征和右圖對應(yīng)匹配角點(diǎn)特征的坐標(biāo)值輸出到文件中保存,為了能更好的觀察匹配效果,本文將計(jì)算得到的匹配點(diǎn)對逐對用紅點(diǎn)在左圖和右圖中繪制出來,結(jié)果如圖4和圖5所示。

        從最終的匹配結(jié)果不難看出,本文提出的立體匹配算法對于左右圖上14個檢測出的角點(diǎn)特征均能準(zhǔn)確進(jìn)行匹配,匹配效果較為理想。

        為了驗(yàn)證本文提出的立體匹配算法的匹配精度,這里還利用棋盤格板進(jìn)行了三維測距實(shí)驗(yàn),測量棋盤格板到攝像機(jī)之間的距離 (即棋盤格板上角點(diǎn)特征Z坐標(biāo)的值)。并用本文提出的立體匹配算法與OpenCV中提供的傳統(tǒng)BM視差圖匹配算法分別進(jìn)行了立體匹配,最后對Z坐標(biāo)值進(jìn)行計(jì)算[10],結(jié)果如表1所示。這里的實(shí)際距離是使用卷尺測得的,測量的最小單位為毫米。

        通過對比表1中的測量結(jié)果和誤差值可以看出使用本文提出的立體匹配算法測量得到的距離值較于傳統(tǒng)的視差圖匹配算法誤差更小,匹配精度更高。另外,從理論上講,亞像素精度的誤差應(yīng)低于像素精度。但第二次測量的結(jié)果則是亞像素精度的誤差高于像素精度,產(chǎn)生這種現(xiàn)象的原因可能是與兩次不同距離拍攝時(shí)環(huán)境因素不同造成的。

        表1 測距實(shí)驗(yàn)結(jié)果與誤差

        4 結(jié)束語

        本文首先對現(xiàn)有的立體匹配算法進(jìn)行了分析,針對現(xiàn)有算法的不足,提出了一種基于OpenCV的立體匹配算法。先通過使用投影儀在被測物體表面人工添加棋盤格角點(diǎn)特征,再通過OpenCV庫函數(shù)對角點(diǎn)特征的位置進(jìn)行檢測和計(jì)算,最后以這些角點(diǎn)特征作為匹配時(shí)的特征點(diǎn),利用本文的立體匹配算法完成特征點(diǎn)的匹配,并通過實(shí)驗(yàn)進(jìn)行了算法驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,該算法的匹配效果較為理想。最后進(jìn)行的三維測距實(shí)驗(yàn)說明該算法與傳統(tǒng)的視差圖匹配算法相比匹配精度高,誤差小,對于三維測量工作具有重要意義。

        [1]Bleyer M,Gelautz M.Graph-cut-based stereo matching using image segmentation with symmetrical treatment of occlusions[J].Signal Processing:Image Communication,2007,22(2):127-143.

        [2]GONG M,YANG Y H.Real-time stereo matching using orthogonal reliability-based dynamic programming[J].IEEE Trans on Image Processing,2007,16(3):879-884.

        [3]DENG Y,YANG Q,LIN X,et al.Stereo correspondence with occlusion handling in a symmetric patch-based graph-cuts model[J].IEEE Trans on Pattern Analysis and Machine Intelligence,2007,29(6):1068-1079.

        [4]Birchfield B,Natarajan B,Tomasi C.Correspondence as energybased segmentation[J].Image and Vision Computing,2007,25(8):1329-1340.

        [5]CHEN Shengyong,LIU Sheng.Realization of computer vision based on OpenCV [M].Beijing:Science Press,2008(in Chinese).[陳勝勇,劉盛.基于OpenCV的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)[M].北京:科學(xué)出版社,2008.]

        [6]BAO Wenxia,LIANG Dong,WANG Nian.Image matching algorithm based on graph cut theory and geometric constraints[J].Computer Engineering,2007,33(1):193-197(in Chinese).[鮑文霞,梁棟,王年.基于圖割理論和極幾何約束的圖像匹配算法 [J].計(jì)算機(jī)工程,2007,33(1):193-197.]

        [7]LIU Tao,YU Zhongqing,MA Qianli.Target distance calculation based on parallel binocular vision[J].Qingdao University(Natural Science),2009,22(1):59-62(in Chinese).[劉濤,于忠清,馬千里.基于平行雙目視覺的目標(biāo)距離計(jì)算[J].青島大學(xué)學(xué)報(bào) (自然科學(xué)版),2009,22(1):59-62.]

        [8]Gary Bradski,Adrian Kaebler.Learning OpenCV(Chinese version)[M].Beijing:Tsinghua University Press,2009(in Chinese).[Gary Bradski,Adrian Kaebler.學(xué)習(xí)OpenCV(中文版)[M].北京:清華大學(xué)出版社,2009.]

        [9]HUA Shungang,ZENG Lingyi.Dense matching algotihm based on corner detection [J].Computer Engineering and Design,2007,28(5):1092-1095(in Chinese).[華順剛,曾令宜.一種基于角點(diǎn)檢測的圖像密集匹配算法 [J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(5):1092-1095.]

        [10]LI Keguo,LI Dayun,TAO Xueheng.An improved acquired algorithm in binocular stereo vision technology[J].Development and Innovation of Machinery and Electrical Products.2008,21(5):31-35(in Chinese).[李克國,李大運(yùn),陶學(xué)恒.一種雙目立體視覺技術(shù)中三維坐標(biāo)點(diǎn)的改進(jìn)求取算法[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2008,21(5):31-35.]

        猜你喜歡
        特征檢測
        抓住特征巧觀察
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        “幾何圖形”檢測題
        “角”檢測題
        新型冠狀病毒及其流行病學(xué)特征認(rèn)識
        如何表達(dá)“特征”
        不忠誠的四個特征
        抓住特征巧觀察
        女人和拘做受全程看视频| 亚洲一区二区三区av无| 高清在线有码日韩中文字幕| 日本一二三区视频在线| 久久久精品欧美一区二区免费 | 午夜性无码专区| 伊人色综合久久天天人手人停| 国内精品人人妻少妇视频| 国产性虐视频在线观看| 久久精品国产久精国产果冻传媒| 成全视频高清免费| 久久国产亚洲中文字幕| 精品人妻久久一日二个| 妇女bbbb插插插视频| 国产天堂在线观看| 亚洲人妖女同在线播放| 亚洲最近中文字幕在线| 伊人久久久精品区aaa片| 夜夜爽无码一区二区三区| 国产精品三级国产精品高| 精品国产sm最大网站| 亚洲熟女综合一区二区三区| 日韩欧美成人免费观看| 久久人人玩人妻潮喷内射人人| 国产美女一级做a爱视频| 国产av精品一区二区三区不卡| 新婚少妇无套内谢国语播放| 麻豆一区二区99久久久久| 欧美日韩一区二区三区视频在线观看 | 我的美艳丝袜美腿情缘| 免费又黄又爽又色的视频| 亚洲人成人77777网站| 国产精品不卡无码AV在线播放| 99久久精品一区二区国产| 国产亚洲一本大道中文在线| 国产精品理人伦国色天香一区二区| 女同视频网站一区二区| 成人午夜高潮a∨猛片| 色噜噜狠狠色综合成人网| 日韩中文字幕无码av| 最新日本人妻中文字幕|