淘新聞

單目視覺的運動目標跟蹤定位(附視頻+PPT)|硬創公開課

市場上空間定位的技術方案分為單目、雙目以及雷射雷達三大陣營,其中雷射雷達由於成本高昂市場接受度較低,而在都是基於電腦視覺的單目和雙目中,雙目則顯得更受歡迎。在國內做電腦視覺技術方案的企業如圖漾、速感、人加智慧等大多選擇了雙目,而選擇了單目的歡創科技則成為了少數派。那麼,雙目為何比單目更受市場青睞,兩者之間的技術差異在哪裡,單目又是如何實現空間定位與位置追蹤?本期雷鋒網硬創公開課邀請到歡創科技CEO周琨,詳細講解單目定位技術。

內容介紹

本期公開課包含但不限於以下內容:

視覺目標定位(位元姿測量)

單目視覺定位

基於PnP的單目視覺定位

單目與雙目比較

單目視覺定位在VR中的應用

嘉賓介紹:

周琨,清華大學深圳研究生院碩士生導師,深圳市高層次人才,南山區領航人才,深圳市歡創科技有限公司CEO,清華大學本科、碩士,師從973首席科學家,長江學者戴瓊海教授。十餘年IT和人機交互技術行業產品研發和技術管理經驗。先後就職于貝爾實驗室,中國移動,對視覺人機交互技術進行了非常深入的研究,作為主要發明人,擁有二十余項國際和國家專利,並先後獲得山東省科技進步二等獎和深圳市科學技術專利獎。2014年初創辦歡創科技,擔任CEO職位,引領公司致力於電腦視覺空間定位與位置追蹤技術的研究和產業化,目前產品已經廣泛應用於電視機、VR與機器人領域。

公開課直播完整視頻:

以下為嘉賓分享內容實錄。相對視頻文中做了刪減,完整內容可觀看視頻。關注雷鋒網旗下微信公眾號「新智造」,回復「PPT」可獲取嘉賓完整PPT。

視覺目標定位(位元姿測量)

從工程意義上來說,測量一個物體相對於另一個物體的位置與姿態,即所謂的位姿測量。從數學意義上來講,測量兩個坐標系間的平移與旋轉變換關係,包括3個位置(Translational)和3個旋轉角(Rotational)共6個位姿量(即6DOF)。理論上,只要已知空間不共線的3點在兩個坐標系下的座標,就能唯一確定兩坐標系間的位姿關係,因此,位姿測量的關鍵就是如何得到特徵點在這兩個坐標系下的座標。 

視覺空間定位的常見類型

自定位(inside-out),即通過相機拍攝視野坐標系,以及坐標系的特徵點,從而判斷相機相對座標系自身的座標。比如我們常用的SLAM,這方面雷鋒網之前也有嘉賓做過介紹,它的特點是便攜、視角理論無限大、定位精度不高。主要應用領域包括移動機器人、無人機、VR、AR。

外定位(outside-in),比較常見的是OptiTrack,特點是安裝複雜、視角有限、定位精度高。主要應用領域包括影視動捕、VR、工業機器人。

常見的不同硬體定位方案

單目定位(mono camera)

特點:系統簡單,運算量小,需要目標點之間有幾何約束關係,應用場景有限制,成本較低。

雙目定位(stereo camera)

特點:系統複雜,運算量大,可以單幀單目標點定位,對目標物體無幾何約束,,應用場合靈活,成本較高。

多目定位(multiple camera)

特點:系統非常複雜,運算量特別巨大,對目標物體無幾何約束要求,應用場合受限,成本很高。

目前關於雙目定位的研究與市場應用相對比較多,而單目定位則相對比較少,所以,今天我就重點講下單目定位。

單目視覺定位

顧名思義,單目視覺定位就是僅利用一台攝像機完成定位工作。單目視覺定位的方法主要有兩種:基於單幀圖像的定位方法和基於兩幀或多幀的定位方法。

基於單幀圖像的定位方法包括基於特徵點的定位(Perspective-n-Point)、基於直線特徵的定位,關鍵點在於快速準確地實現範本與投影圖像之間的特徵匹配。

基於兩幀或多幀的定位方法的關鍵在於實現多幀投影圖像之間的對應特徵元素匹配,如SLAM。

基於PnP的單目視覺定位

什麼是P-n-P問題?

P-n-P,即Perspective-n-Points,指給定世界(剛體)坐標系下的n個3d座標點,以及這些點在圖像中的2d投影座標,求解世界(剛體)相對相機的姿態和位置(求解R,t)。要想求解出世界(剛體)相對相機的姿態和位置,必須知道至少4個點,也就是n要大於等於4,當然這是必要條件,不是充分條件,充分必要條件是n等於6。

求解PnP問題的前提

PnP的求解路徑

單目與雙目比較

雙目視覺定位

雙目視覺定位原理是指通過三角測量原理來對目標點的三維空間位置進行定位。雙目視覺定位的演算法流程:相機標定、雙目標定、影像處理、特徵檢測、立體匹配、三維測量、姿態測量。

單目和雙目視覺的共同難題

圖像提取精度問題

單目&雙目:如何提取目標的高精度圖像

匹配問題

單目:如何將剛體目標點同投影點匹配

雙目:如何將兩個攝像機中的目標點匹配

標定問題

單目:如何將相機內參估計準確

雙目:如何將相機內參和外參估計準確

有趣的系統問題

單目:攝像機簡單,目標複雜,需解決剛體目標點佈局問題

雙目:攝像機複雜,目標簡單,需解決攝像機基線設置問題

單目視覺與雙目視覺的區別

由於存在幾何模型約束優勢,單目視覺會有更高精度與魯棒性(以下為模擬實驗結果)

單目視覺有效視場更大:剛體定位不僅不依賴多個相機,定位空間還可以通過多個相機進行擴展而不發生視場範圍損失。

如何選擇單目還是雙目視覺定位

應用場景需要知道3DOF還是6DOF?

單目視覺:要麼不能輸出位姿,要麼輸出6DOF

雙目視覺:可輸出3DOF、6DOF(滿足一定條件)

應用場景對目標物體有無約束?

單目視覺:必須已知剛體上4個及以上的目標點的幾何約束

雙目視覺:無須知道幾何約束,適應範圍廣

應用場景對成本、視角要求如何?

單目視覺:成本更低、有效視角更大

雙目視覺:成本更高、有效視角更小

單目視覺定位在VR中的應用

三大主流VR廠商現有位置追蹤方案

Oculus:單目光學攝像頭 + 數十個LED主動光源

Sony PSVR:雙目光學攝像頭+ 9個LED主動光源

HTC Vive:鐳射 +光敏二極體陣列

詳解Oculus 定位方案

定位器:1百萬圖元,全域曝光攝像頭,52fps.

手柄:環形紅外定位點帶+IMU

頭盔:面板紅外定位點+頭盔後部三角形上的紅外定位點+IMU

定位方式:手柄和頭盔通過無線控制紅外定位點發光時間與攝像頭曝光時間同步;PC使用從圖像獲得的定位點資訊與IMU資料融合,獲得頭盔和手柄的位置資訊。

缺陷:覆蓋範圍比HTC小,達到roomscale需要更多的定位器;所有定位資訊統一計算,不利於擴展到多人或更多設備。

VR空間定位的幾個關鍵指標

穩定性(Robustness)

定位精度(Precision):靜態精度(HTC:Translational RMSE: 1.5mm)和動態精度

靜態抖動(Static jitter)

範圍(Range)

成本(Cost)

我們是如何測量VR定位精度的?

六軸工業機器人測量,以工業機器人輸出值為Ground truth,並以此為准進行比對。

如何提高定位精度?

提高標定精度——高幀率連續空間採樣

提高圖像提取精度——亞亞圖元級的圖像提取精度

多感測器融合——加入IMU,利用IMU資訊提高信噪比

去除干擾點——通過調製光線,去除環境光照影響

Q&A環節

新智造:對於機器人是移動避障來說,單目是否比雙目更好?

周琨:

從定位精度和魯棒性來說,雙目還是比單目好一些,如果從單目的場景來說,物體的複雜性會更高,而且單目的成本更低,但是對於機器人來說,成本不是太大問題,所以用雙目做機器人的移動避障會更好些。

新智造:做ADAS的話,單目和雙目的差別在哪裡?

周琨:

ADAS我研究的不多,我就以我認知的來說下。因為汽車是高速移動的物體,所以ADAS的反應速度非常快,單目的好處是視角範圍比較大,雙目的局限就在於它的視角會受限,不過單目只有一隻“眼睛”,3D定位的話尺度問題不好解決,雙目的定位範圍要大些,精度可以做的比較高些。所以說兩者之間還是有差別的。

新智造:跟蹤定位未來有什麼有前景的研究方向嗎?

周琨:

目前主要是兩個方向,一個是SLAM,這個是非常大的研究方向,不過到現在其實都不太成熟,到目前為止我見過最成熟的產品就是微軟的HoloLens,就是有很多攝像頭才能做到魯棒性比較好,閉環做的比較好,無論是tango還是高通在VR上的的SLAM,都容易受到歡迎因素的影響,包括光照、白牆等等,離實用還是有比較大的距離,所以說這是一個比較大的研究方向。

第二個就是在工業應用領域,這個時候需要解決的問題是精度,也就是說不用考慮成本問題,研究方向就是如何提高精度,毫米不夠就亞毫米。

新智造:在工業機器人中視覺應用廣嗎,有哪些常用的應用?

周琨:

在工業機器人領域,視覺應用會越來越廣泛,比如倉儲機器人都是無人值守的,自己完成搬運工作,那麼它需要“眼睛”來識別環境,目前比較常見的定位方案是Kiva的標記點,未來一定是使用SLAM方案,機器人可以自行規劃路線;第二個場景是製造,雖然說機械臂可以進行定位,但是僅適用於大批量重複性的製造,如果你需要經常對這個加工的目標不停的改變,你就需要輔助定位裝置幫你進行重新設定,這個時候它的優勢就出來了。

新智造:能否通過其他感測器獲得攝像頭的位姿,而不是通過圖像計算獲得?

周琨:

實際上現在我們常見的應用都會加入多個感測器來獲得攝像頭的位姿,最常見的就是MU,六軸或九軸的感測器輔助獲得攝像頭的位姿,比如攝像頭出現遮擋,往往需要MU輔助獲得攝像頭的位姿,還有一種假如在室外,通過GPS獲得經緯度,通過氣壓計獲得高度資訊,其實這也是多感測器融合的情況。

新智造:在圖像採集完後對影像處理,放大靶心圖表像的灰度值,縮小非目標的灰度值中,如何使這個比例能更協調,而不只是根據主觀推斷?

周琨:

根據我們的經驗比較難做,因為很難區分目標與非目標,所以我們常見的做法是盡可能在原始資料時讓目標與非目標的區分度更大一些,方法很多,比如說可以通過增大目標物體的特徵,比如亮度,或者通過調製光,把目標的特徵點與非目標的特徵點放大,然後再去放大灰度值,就是第一步就把問題解決,就很容易區分目標與非目標。所以,我傾向於解決問題解決前面,而不是放到後面去解決,這樣會很難的。

新智造:對於小目標如何提取穩定特徵點?

周琨:

最笨的方法是提高相機的解析度,很容易把目標的圖元點提高,獲得的資訊就多了,特徵點容易穩定,帶來的壞處就是增加成本,如果在不增加成本的情況下獲取穩定的特徵點呢?其實我們也做了一些工作,就像PPT裡講的做到了亞亞圖元的精度,採用的策略是盡可能採集樣本的數量,帶來的壞處就是可能資料量增加幀數會下降,那麼如何在樣本數量增加的同時保障幀數不下降,這個是需要解決的問題,但是方法無外乎就是這些!

新智造:圖像匹配過程中有什麼方法可以提高匹配精度?特徵比較少的場景怎麼解決?

周琨:

圖像匹配過程中首先要找特徵點,要想提高匹配精度就要盡可能找出更多的特徵點。無論是雙目還是單目,最難的場景是面對一面白牆,沒有任何特徵點,這個時候要想提高匹配精度就很難,這個也是一個世界難題,目前就我所知還沒有特別好的辦法能解決,如果非要去解決,那就人為製造特徵點,比如打散斑,也就是結構光,這個時候能夠提高匹配精度。簡單來說就是儘量找特徵,沒有特徵的話就人為製造特徵。

新智造:多感測器的時間戳記同步問題怎麼解決?

周琨:

如果你用CMOS感測器它就比較容易實現,因為好多CMOS感測器都有時間戳記同步功能,如果CMOS感測器你還需要用到MU,想要實現時間戳記同步,就需要確定一個同步的中心元,像在VR裡面,比如我有兩個攝像機和手柄,這個時候你需要用頭盔做這個同步的中心,它發射命令出來,所有攝像頭也好手柄也好向它對齊,關鍵是做到這一步,其他方面我覺得沒什麼。