導(dǎo)讀
一個(gè)雙目立體視覺的常用應(yīng)用場景的介紹,很基礎(chǔ)。
立體視覺
立體視覺意味著人工智能可以通過一對相機(jī)來感知圖像的深度以及物體的距離。大多數(shù)三維相機(jī)模型都是基于立體視覺理論和技術(shù)的。兩臺攝像機(jī)之間設(shè)置一定的距離,這樣它們就可以從不同的角度“看”物體。評估兩個(gè)圖像之間的對應(yīng)關(guān)系,人工智能確定到目標(biāo)的距離,分析,并建立目標(biāo)的3D結(jié)構(gòu)。
采用立體視覺,不需要紅外傳感器、聲波定位儀、激光雷達(dá)等測距傳感器,可大大降低了技術(shù)解決方案的成本。
主要應(yīng)用場景:
1、人體姿態(tài)和手勢識別。
2、3D模型和3D場景的構(gòu)建。
3、自動(dòng)駕駛系統(tǒng)的障礙定位和檢測。
每個(gè)特定的場景都可以改動(dòng)以解決特定的問題。因此,3D場景重建可以用來測量物體或產(chǎn)品的體積。
在實(shí)踐中,立體視覺通過兩臺攝像機(jī)分四個(gè)階段實(shí)現(xiàn):
1、畸變校正 — 一種去除圖像上透鏡的徑向和切向畸變的數(shù)學(xué)方法,以獲得未失真的圖像。
2、在校正過程中調(diào)整相機(jī)之間的角度和距離。結(jié)果是直線對齊和細(xì)化圖像,即同一平面的兩幅圖像共面,其直線對齊方向相同,具有相同的y坐標(biāo)。
3、點(diǎn)匹配過程 — 搜索左、右攝像頭點(diǎn)之間的對應(yīng)關(guān)系。在那之后,你會(huì)得到有一個(gè)視差圖 —— 其中的值對應(yīng)于左右攝像機(jī)同一點(diǎn)的圖像x坐標(biāo)的差異。
4、因此,有了相機(jī)的幾何排列,我們產(chǎn)生了視差圖的三角度量。這是重投影階段,形成深度圖,也就是想要的3D場景。
對于前兩個(gè)階段,你必須首先計(jì)算這一對相機(jī)的配置參數(shù)。這可以通過各種二值化的標(biāo)定板自動(dòng)完成,比如ArUco或ChArUco。這些標(biāo)定板的主要優(yōu)點(diǎn)是,即使是單個(gè)標(biāo)定板也能提供足夠的一致性來獲得相機(jī)的姿勢。此外,內(nèi)部的二進(jìn)制編碼使它們特別可靠,因?yàn)樗梢赃M(jìn)行錯(cuò)誤檢測和糾正。你也可以使用標(biāo)定板來確定相機(jī)下區(qū)域的幾何形狀。
體積度量
為了度量體積,你還需要進(jìn)行下面的步驟:
1、對一組連續(xù)的幀進(jìn)行累積,這將增加錯(cuò)誤恢復(fù)的彈性,用于對3D場景進(jìn)行平均或細(xì)化。
2、只在場景中選擇產(chǎn)品定義的點(diǎn)。這是通過使用顏色分割、模板匹配或神經(jīng)網(wǎng)絡(luò)語義分割來實(shí)現(xiàn)的。最快的方法是顏色分割。該方法的缺點(diǎn)是將設(shè)置綁定到特定的產(chǎn)品上,如果背景顏色和對象不是很清楚,可能會(huì)產(chǎn)生不好的結(jié)果。如果GPU優(yōu)化是可能的,那么使用U形卷積神經(jīng)網(wǎng)絡(luò)如U-net和高級U-net,或全卷積神經(jīng)網(wǎng)絡(luò)會(huì)有較高的性能和分割精度。
3、對一個(gè)由產(chǎn)品定義的3D點(diǎn)組成的場景進(jìn)行聚類。每個(gè)簇是一個(gè)對象。
4、為每個(gè)簇形成一個(gè)凸多邊形,消除3d場景對象的邊緣缺陷
5、使用線性插值恢復(fù)缺失的3D點(diǎn)
6、通過基于場景的幾何聚類區(qū)域積分來計(jì)算單個(gè)對象的體積。
7、最后,計(jì)算所有物體的總體積。