摄像头测距
攝像頭測距
深度檢測主要技術(shù)方法:
1.雙目匹配(雙RGB攝像頭+可選的照明系統(tǒng))
三角測量原理即目標(biāo)點(diǎn)在左右兩幅視圖中成像的橫坐標(biāo)之間存在的差異(視差Disparity),與目標(biāo)點(diǎn)到成像平面的距離成反比例的關(guān)系:Z = ft/d;得到深度信息。
雙目匹配采用三角測量原理完全基于圖像處理技術(shù),通過尋找兩個圖像中的相同的特征點(diǎn)得到匹配點(diǎn),從而得到深度值。
雙目測距中光源是環(huán)境光或者白光這種沒有經(jīng)過編碼的光源,圖像識別完全取決于被拍攝的物體本身的特征點(diǎn),因此匹配一直是雙目的一個難點(diǎn)。
匹配的精度和正確性很難保證,因此出現(xiàn)了結(jié)構(gòu)光技術(shù)來解決匹配問題。
技術(shù)點(diǎn):立體匹配算法,一般步驟:匹配代價(jià)計(jì)算,匹配代價(jià)疊加,視差獲取,視差細(xì)化(亞像素級)
優(yōu)點(diǎn): 給定的工作條件下,較好效果,硬件簡單。
缺點(diǎn): 雙目使用的是物體本身的特征點(diǎn),對表面顏色和紋理特征不明顯的物體失效。
因?yàn)榻Y(jié)構(gòu)光光源帶有很多特征點(diǎn)或者編碼,因此提供了很多的匹配角點(diǎn)或者直接的碼字,可以很方便的進(jìn)行特征點(diǎn)的匹配。
換句話說,不需要使用被攝物體本身的特征點(diǎn),因此能提供很好的匹配結(jié)果。
2.一般結(jié)構(gòu)光(一個RGB攝像頭+結(jié)構(gòu)光投射器(紅外)+結(jié)構(gòu)光深度感應(yīng)器(CMOS))
結(jié)構(gòu)光測距的不同點(diǎn)在于對投射光源進(jìn)行了編碼或者說特征化。這樣拍攝的是被編碼的光源投影到物體上被物體表面的深度調(diào)制過的圖像。
結(jié)構(gòu)光基本原理:
通過投影一個預(yù)先設(shè)計(jì)好的圖案作為參考圖像(編碼光源),將結(jié)構(gòu)光投射至物體表面,再使用攝像機(jī)接收該物體表面反射的結(jié)構(gòu)光圖案,這樣,同樣獲得了兩幅圖像,
一幅是預(yù)先設(shè)計(jì)的參考圖像,另外一幅是相機(jī)獲取的物體表面反射的結(jié)構(gòu)光圖案,由于接收圖案必會因物體的立體型狀而發(fā)生變形,故可以通過該圖案在攝像機(jī)上的位置和形變程度來計(jì)算物體表面的空間信息。普通的結(jié)構(gòu)光方法仍然是部分采用了三角測距原理的深度計(jì)算。
同樣是進(jìn)行圖像匹配,這種方法比雙目匹配好的地方在于,參考圖像不是獲取的,而是經(jīng)過專門設(shè)計(jì)的圖案,因此特征點(diǎn)是已知的,而且更容易從測試圖像中提取。
結(jié)構(gòu)光采用三角視差測距,基線(光源與鏡頭光心的距離)越長精度越高。
技術(shù)點(diǎn):提供什么樣的輔助信息來幫助快速而精確的對應(yīng)點(diǎn)匹配是結(jié)構(gòu)光編碼方法的衡量標(biāo)準(zhǔn)。
優(yōu)點(diǎn): 成熟,經(jīng)驗(yàn)證,可量產(chǎn)
缺點(diǎn): 有限的供應(yīng)商,技術(shù)和供應(yīng)鏈門檻,陽光干擾敏感,多設(shè)備之間存在嚴(yán)重干擾
3.Light
coding(激光散斑光源)
與結(jié)構(gòu)光不同,Light coding的光源為“激光散斑”,是激光照射到粗糙物體或穿透毛玻璃后隨機(jī)形成的衍射斑點(diǎn)。這些散斑具有高度的隨機(jī)性,而且會隨著距離的不同而變換圖案。也就是說空間中任意兩處的散斑圖案都是不同的。只要在空間中打上這樣的光,整個空間都被做了標(biāo)記,把一個物體放進(jìn)這個空間,只要看看物體上面的散斑圖案,就可以知道這個物體在什么位置了。當(dāng)然在這之前要把整個空間的散斑圖案都記錄下來,所以要先做一次光源標(biāo)定。primesense公司的三維測量使用的就是激光散斑技術(shù)。primesense將該技術(shù)稱為光源標(biāo)定技術(shù)。光源標(biāo)定技術(shù)在整個空間中每隔一段距離選取一個參考平面,把參考平面上的散斑圖案保存下來。
Light coding不是通過空間幾何關(guān)系求解的,它的測量精度只和標(biāo)定時取得參考面的密度有關(guān),參考面越密測量越精確。不用為了提高精度而將基線拉寬。
缺點(diǎn): 激光器發(fā)出的編碼光斑容易被太陽光淹沒掉
- 單目相機(jī)測距
三角測距法
還記得文章開頭的那個小孔相機(jī)模型嗎?
三角測距法就是基于這個理想的,簡單的模型,進(jìn)行的,在知道物體大小,透鏡焦距F,并測出圖像中的物體長度后,就可以基于下面公式進(jìn)行計(jì)算長度Z了。
像素塊測距法
這個方法是玩openmv時知道的,openmv封裝的單目測距算法,就是將目標(biāo)對象先在固定的距離(10cm)拍一張照片,測出照片中該物體的像素面積。得到一個比例系數(shù)K,然后將物體挪到任意位置,就可以根據(jù)像素面積估算距離了。
不過這兩種方法肯定魯棒性都不咋樣。
- 相機(jī)標(biāo)定
在上文,相機(jī)內(nèi)參加上相機(jī)外參一共有至少8個參數(shù),而我們要想消除相機(jī)的畸變,就要靠相機(jī)標(biāo)定來求解這8個未知參數(shù)。
說完相機(jī)模型,又要說一下相機(jī)標(biāo)定了,相機(jī)標(biāo)定是為了求解上面這8個參數(shù)的,那求解出這8個參數(shù)可以干什么呢?可以進(jìn)行軟件消除畸變,也就是在得知上面8個參數(shù)后,利用上面羅列的數(shù)學(xué)計(jì)算式,將每個偏移的像素點(diǎn)歸位。
標(biāo)定需要用到一個叫標(biāo)定板的東西,有很多種類,但常用的大概就是棋盤圖了,棋盤要求精度需要很高,格子是正方形,買一張標(biāo)定板很貴的,在csdn上下棋盤圖也要畫好多c幣,所以大家可以用word畫一張,很簡單的,只要做一個5列7行的表格,拉大到全頁,再設(shè)置每個格子的寬高來將它設(shè)為正方形再涂色就可以了。這張圖里有符號,但打印出來就沒有了,建議大家自己畫一張就OK了。
總結(jié)
- 上一篇: 机器视觉光源
- 下一篇: 半导体群聚、虚拟垂直、整合