通過(guò)三維圖像拼接算法增強(qiáng)視覺(jué)傳感器能力
飛行時(shí)間相機(jī)在工業(yè)應(yīng)用中越來(lái)越受歡迎,特別是在機(jī)器人技術(shù)中,這歸功于它們具有非凡的深度計(jì)算和紅外成像能力。盡管有這些優(yōu)點(diǎn),光學(xué)系統(tǒng)固有的復(fù)雜性往往限制了視野,限制了獨(dú)立的功能。本文討論了一種為支持主機(jī)處理器設(shè)計(jì)的三維圖像拼接算法,消除了云計(jì)算的需要。該算法無(wú)縫地結(jié)合了來(lái)自多臺(tái)自由度相機(jī)的紅外和深度數(shù)據(jù),產(chǎn)生了一個(gè)連續(xù)的、高質(zhì)量的3D圖像,并將視野擴(kuò)展到獨(dú)立單位之外。拼接的3D數(shù)據(jù)能夠應(yīng)用最先進(jìn)的深度學(xué)習(xí)網(wǎng)絡(luò)--在移動(dòng)機(jī)器人應(yīng)用中特別有價(jià)值--來(lái)徹底改變與3D環(huán)境的可視化和互動(dòng)。
導(dǎo)言
飛行時(shí)間照相機(jī)是一種特殊的距離成像系統(tǒng),利用T自由度技術(shù)來(lái)確定相機(jī)與圖像中的每個(gè)點(diǎn)之間的距離。這是通過(guò)測(cè)量激光或LED發(fā)射的人造光信號(hào)的雙程時(shí)間來(lái)實(shí)現(xiàn)的。高自由度相機(jī)提供精確的深度信息,使其成為精確的距離測(cè)量和三維可視化至關(guān)重要的應(yīng)用工具,例如機(jī)器人和工業(yè)技術(shù)應(yīng)用,包括碰撞探測(cè)和對(duì)270度視野(Fov)以上的人類(lèi)探測(cè)的安全性。
ADTF3175 TF傳感器可以實(shí)現(xiàn)75度Fov的校準(zhǔn)。然而,當(dāng)一個(gè)應(yīng)用程序的Fov超過(guò)該區(qū)域,需要多個(gè)傳感器時(shí),就會(huì)出現(xiàn)挑戰(zhàn)。綜合來(lái)自單個(gè)傳感器的數(shù)據(jù),為整個(gè)視圖提供全面的分析可能會(huì)造成困難。一個(gè)潛在的解決方案是讓傳感器在部分Fov上執(zhí)行算法,并將輸出傳輸?shù)街鳈C(jī)以進(jìn)行排序。然而,這種方法面臨重疊區(qū)、死區(qū)和通信延遲等問(wèn)題,使其成為一個(gè)需要有效解決的復(fù)雜問(wèn)題。
另一種方法是將所有傳感器捕獲的數(shù)據(jù)拼接成一張圖像,然后將檢測(cè)算法應(yīng)用到被拼接的圖像上。這個(gè)過(guò)程可以卸載到一個(gè)單獨(dú)的主機(jī)處理器,從計(jì)算負(fù)載中釋放傳感器單元,并為高級(jí)分析和其他處理選項(xiàng)提供空間。然而,重要的是要注意到傳統(tǒng)的圖像拼接算法本質(zhì)上是復(fù)雜的,可以消耗主機(jī)處理器相當(dāng)一部分的計(jì)算能力。此外,由于隱私原因,在許多應(yīng)用程序中,發(fā)送和縫合云是不可能的。
模擬設(shè)備的算法解決方案可以使用深度數(shù)據(jù)的點(diǎn)云投影,從不同的傳感器上縫合深度和紅外圖像。這包括利用攝像機(jī)的外部位置轉(zhuǎn)換捕獲的數(shù)據(jù),并將其投射到二維空間,從而產(chǎn)生單一的連續(xù)圖像。
這種方法產(chǎn)生了最小的計(jì)算,這有助于在邊緣實(shí)現(xiàn)實(shí)時(shí)操作速度,并確保主機(jī)處理器的計(jì)算能力仍然可以用于其他高級(jí)分析。
一種解決方案的描述
ADI的3dT自由度解決方案分四個(gè)階段運(yùn)行(見(jiàn)圖1):
1. 預(yù)處理紅外線和深度數(shù)據(jù):紅外線和深度的時(shí)間同步和預(yù)處理
2. 3d點(diǎn)云項(xiàng)目深度數(shù)據(jù):利用相機(jī)固有參數(shù)將深度數(shù)據(jù)投射到3d點(diǎn)云
3. 轉(zhuǎn)換和合并點(diǎn):使用相機(jī)的外部位置和合并重疊變換點(diǎn)
4. 項(xiàng)目點(diǎn)云為2d圖像:采用圓柱投影將點(diǎn)云投射為2d圖像。
圖1一種深度縫合算法。
系統(tǒng)和算法挑戰(zhàn)和解決方案
主機(jī)接收深度和紅外線框架
主機(jī)通過(guò)USB等高速連接連接到多個(gè)T自由度傳感器。它收集深度和紅外框架,并將它們存儲(chǔ)在一個(gè)隊(duì)列中。
同步深度和紅外數(shù)據(jù)
主機(jī)接收到的每一個(gè)傳感器的深度和紅外線框架都是在不同的時(shí)間段捕捉到的。為了避免由于物體的移動(dòng)而造成的時(shí)間不匹配,所有傳感器的輸入需要同步到同一時(shí)間的實(shí)例。使用時(shí)間同步模塊,根據(jù)隊(duì)列中的時(shí)間戳來(lái)匹配傳入框架。
點(diǎn)播云
點(diǎn)云是使用同步深度數(shù)據(jù)為每個(gè)傳感器在主機(jī)上生成的。然后根據(jù)實(shí)際世界中的攝像頭位置(見(jiàn)圖2),對(duì)每個(gè)點(diǎn)云進(jìn)行轉(zhuǎn)換(翻譯和旋轉(zhuǎn))。然后,將這些變換的點(diǎn)云合并成一個(gè)單獨(dú)的連續(xù)點(diǎn)云,覆蓋合并的傳感器Fov(見(jiàn)圖3)。
圖2外部攝像頭。
圖3合并的點(diǎn)云。
三維至二維投影
使用圓柱投影算法(又稱(chēng)前視圖投影)將Fov的結(jié)合點(diǎn)云投射到一個(gè)二維畫(huà)布上(見(jiàn)圖4)。換句話(huà)說(shuō),該算法將合并點(diǎn)云的每個(gè)點(diǎn)投射到二維平面上的一個(gè)像素上,從而產(chǎn)生一個(gè)覆蓋所有傳感器合并視野的單一連續(xù)全景圖像。這就產(chǎn)生了兩個(gè)二維拼接圖像:一個(gè)用于拼接紅外,另一個(gè)用于拼接深度圖像投射到二維平面。
圖4圓柱投影算法。
提高預(yù)測(cè)質(zhì)量
將3d組合點(diǎn)云投射到二維圖像上仍然不能提供高質(zhì)量的圖像。圖像有扭曲和噪音。這將影響視覺(jué)質(zhì)量,也將不利影響任何運(yùn)行在投影上的算法。以下各節(jié)記錄了三個(gè)關(guān)鍵問(wèn)題(見(jiàn)圖5)和修正。
圖5二維投影問(wèn)題。
投射無(wú)效深度區(qū)域
Adtf3175的深度數(shù)據(jù)對(duì)于超出傳感器工作范圍(8000毫米)的點(diǎn),其無(wú)效深度值為0毫米。這就導(dǎo)致了在深度圖像上出現(xiàn)大的空間區(qū)域,形成不完整的點(diǎn)云.一個(gè)8000mm的深度值(相機(jī)支持的最大深度)被分配給深度圖像上的所有無(wú)效點(diǎn),并由此生成一個(gè)點(diǎn)云。這確保了點(diǎn)云中沒(méi)有缺口。
填充未映射像素
在將三維點(diǎn)云投射到二維平面時(shí),在二維圖像中有未映射/未填充的區(qū)域。許多點(diǎn)云(3D)像素被映射到同一個(gè)二維像素,因此幾個(gè)二維像素仍然空白。這將導(dǎo)致圖6所示的拉伸模式。為了解決這個(gè)問(wèn)題,我們使用了一個(gè)3x3濾波器來(lái)填充未映射的像素,使其具有有效值的鄰近8像素的平均紅外/深度值。這導(dǎo)致了更完整的輸出圖像形成和工件被刪除(見(jiàn)圖6)。
圖6填充未映射的像素。
重疊點(diǎn)產(chǎn)生噪音
由于采用圓柱投影算法,重疊區(qū)域上的許多點(diǎn)在二維投影輸出上得到相同的靜息坐標(biāo)。當(dāng)背景像素重疊前景像素時(shí),會(huì)產(chǎn)生噪聲。為了解決這個(gè)問(wèn)題,將每個(gè)點(diǎn)的徑向距離與現(xiàn)有的點(diǎn)進(jìn)行比較,并且只有在離攝像頭的距離小于現(xiàn)有的點(diǎn)時(shí)才替換該點(diǎn)。TED僅保留前景點(diǎn)并提高投影質(zhì)量。
結(jié)論
該算法可以根據(jù)傳統(tǒng)的關(guān)鍵點(diǎn)匹配算法的需要,從不同的相機(jī)上對(duì)重疊小于5°的圖像進(jìn)行縫合,而重疊的最小值為20°。這種方法需要很少的計(jì)算,使它成為一個(gè)理想的候選邊緣系統(tǒng)。深度數(shù)據(jù)的完整性是保留后縫合,因?yàn)闆](méi)有圖像扭曲。該解決方案進(jìn)一步支持模塊化實(shí)現(xiàn)Adtf3175傳感器,以獲得所需的Fov最小損耗。
Fov擴(kuò)展并不局限于水平維度,同樣的技術(shù)也可以用于垂直擴(kuò)展視圖以獲得真正的球形視覺(jué)。解決方案在手臂上運(yùn)行 ® V8,6核心邊緣CPU在10FPS為4個(gè)傳感器提供275度Fov。當(dāng)只使用兩個(gè)傳感器時(shí),框架速率會(huì)上升到30FPS。