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