雷鋒網按:本文作者胡金暉,UCVR聯合創始人,CTO,英國King's College London電子工程系博士,專攻計算機視覺、圖像處理。
Project Tango發佈初期曾經一度被稱為黑科技,但現如今已慢慢走進我們的生活。如果説Kinect是3D感應技術的開創者,那麼Project Tango就算是3D感應技術領路人了。Project Tango將光學傳感器、慣性傳感器與計算機視覺技術進行了完美的結合。
Project Tango誕生記
説到Project Tango就要説起ATAP(All Things Are Possible,ATAP是Google收購Motorola(後來又賣給了聯想)後保留的一個重要部門),更要説起Johnny Lee。
如果你打開Project Tango的介紹視頻,第一眼看到的一個面目和藹的胖子,就是那個在2007年底把Wii玩出花的大神。07年12月John神在YouTube上傳了一系列視頻,記錄了用Wii遙控手柄追蹤人的手指,通過改裝後的Wii遙控手柄和投影儀制造出多點觸摸電子白板,還有用Wii遙控手柄追蹤人的頭部位置,與此同時,遊戲畫面也為了適應觀眾的視角而發生改變。從這幾個實驗中,我們可以看到當下Leap Motion、Oculus Rift等下一代人機交互方式的影子。
之後他加入了微軟的Project Natal(該項目的成果是風靡全球的Kinect),後來跳槽到Google X,再之後加入Motorola ATAP(All Things Are Possible),最終帶領團隊在2014年6月5日啟動Project Tango。
Project Tango三大核心技術
眾所周知Project Tango包含三塊技術:運動追蹤(Motion Tracking),深度感知(Depth Perception)和區域學習(Area Learning)。我們可以通過John神的職業道路,由簡入繁來看看Project Tango裏面的黑科技是如何一步一步實現的。
首先就是John神的成名之作:Wii實現頭動追蹤。他將Wii捕捉系統翻了個個,將含有IR相機的Wii手柄作為接收器,並把Wii的“感應棒”作為一個含有兩個紅外點光源的發射器,如下圖:
這就形成了一個典型的單目視覺系統。接收器拍攝到的圖像是三維空間的場景在二維空間的投影,要識別場景的“深度”信息,就是一種逆向求解的過程。單目視覺系統一般採用對應點標定法,即通過不同座標系中對應點的對應座標求解座標系的轉換關係,説起來很繞口,但是簡單解釋就是好比你一隻眼睛看一根木棍(我們假定木棍不會在水平面旋轉),雖然沒有了雙目的立體視覺,但是通過觀看木棍的長度和位置變化你就可以判斷木棍的大概位置。同理John神的Demo中接收器拍攝到的圖像大概是這個樣子。
可能這個例子裏面的原理非常之簡單,但要知道他提出的這個VR Display概念要比Oculus早了近5年。
運動追蹤
Project Tango的第一個核心技術“運動追蹤”的三維動態捕捉就是利用了上面提到的單目視覺技術的升級版Feature Tracking(Google稱為特徵捕捉)。特徵捕捉如何理解呢? 再回到John神的例子裏,我們不再固定接收器的位置了,反而是拿着接收器(這裏我們不再叫它接收器了,叫採集設備或相機)移動;而對面只有兩個光點的發射器也變成一個一個的光點貼在John神家裏屋子的各個角落。
當我們移動相機時不斷地一幀一幀進行拍攝,因為拍攝到的光點的相對位置在不斷變化(這裏“變化”是指拍攝到的兩幀之間同一個光點的相對位置變化),通過計算我們可以得到相機的移動距離。簡單來説Tango設備在不斷循環的一個過程就是:拍攝——識別特徵點(個人估計是SIFT點)——匹配特徵點——篩去錯誤匹配——座標換算。當然Project Tango的運動追蹤不僅如此,他還能通過一個內置的6軸慣性傳感器(加速度計和陀螺儀)來捕捉相機的加速度和運動方向。
當融合了以上兩類傳感器的數據之後Project Tango就“完美”(其實還有瑕疵)實現了三維運動追蹤。
區域學習
為什麼説還有瑕疵的?因為運動追蹤只是單純得到了相機移動的軌跡,然而對於相機所處的場景是零認知。所以一旦設備被關掉,它之前的運動軌跡就會被“忘掉”。最大的問題還是運動追蹤中所累積的誤差,或者叫漂移,在長距離使用後真實位置會和運算位置有很大差異。
為解決這個問題,John神團隊為Tango設備設定了一種學習模式。這應該是他在Google X裏面無人駕駛汽車研究成果的冰山一角。這種學習模式理解起來就簡單很多了,為了讓Tango設備具有一定記憶,而不再像一個被蒙着眼睛的人一樣需要靠數自己走了多少步來計算距離,Project Tango可以讓用户預先錄入某個場景(這裏要特別提醒的是,錄入的數據不光包括了運動追蹤裏面所識別的特徵點,還包含了場景本身),當用户重回這個場景的時候Tango設備會自動用錄入的數據來糾正運動追蹤的數據,這個糾正的過程中錄入場景裏的那些特徵點會被當作觀測點,一旦發現與當下特徵點匹配的觀測點,系統便會修正當下的追蹤數據。這就是Project Tango的第二大技術核心——區域學習。
深度感知
如果説把深度感知作為Project Tango的第三大技術核心,我覺得有點虛,畢竟Google也是採用的第三方的深度傳感器。不過對此Google並沒有掖着藏着,而是很大方的表明Tango設備可以選擇任意一種現今流行的深度感知技術。而對這項技術的順利應用多半也要歸功於John神在Project Natal的經歷了。Kinect一代的推出震動了業界,震動了學術界,同時也把結構光(Structured Light)的概念推廣了出去。那麼他到底是怎麼實現深度檢測的呢?檢測到的“深度”又是什麼概念呢?
結構光顧名思義是有特殊結構(模式)的光,比如離散光斑,條紋光,編碼結構光,等等。他們被投射到待檢測物體或平面上,看上去就好像標尺一樣。根據用處不同,投影出來的結構光也可以分為不可見的紅外光斑,黑白條紋可見光,單束線性激光,等等。比如Kinect投射出來的就是紅外光斑,設想你玩遊戲的時候要是一片黑白條紋光打到你身上,這畫面感豈不是很怪。
人們發現把這些光投到不同深度的平面上光的紋路會發生變化,那麼如果能採集到這些紋理變化,並且能精準的計算這些變化豈不是可以算出不同的深度?
迴歸正題,Kinect的離散光斑是如何實現深度檢測的呢,我們知道如果拿一個手電照射牆壁,站近或站遠,牆上的光斑是不同大小的,從不同角度照射牆,光斑也會呈現不同的橢圓。這就是基本原理了。但如何使一個紅外光源按照不同角度射出?並且還要變成一堆離散的光斑?
這就要拿出它的發明者以色列PrimeSense公司的專利圖了,他們非常聰明地在紅外發射器前面加了一個特殊設計的diffuser(光柵、擴散片)可以使紅外光線能從不同角度射出。另一個攝像頭再去拍攝這些光斑然後進行計算從而得出每一個光斑所在的深度。每種結構光的掃描精度,所對應的算法,以及應用場景都有所不同。例如用於電子產業元器件錫膏檢查(SPI/ AOI)一般就是可見的條紋光。另外幾種結構光就不多做介紹了,總之只需要知道他們對深度感知的精準度會遠遠高於Kinect這種離散光斑類型的結構光(可以達到微米級),並且算法也有很大出入。
除了結構光Project Tango還提到了TOF(Time of Flight飛翔的時間?)一個激光發射器,一個接收器,一個運算光程的芯片組成。通過計算不同的光程來獲取深度信息,它也是一種深度傳感器。
這些深度傳感器輸出稱之為“點雲”的數據,包含了所有被採集到深度的點的三維信息。
但是這裏還隱藏了一個技術難點,因為Tango設備是在一邊移動一邊採集的,如何把上一幀採集的“點雲”信息和當下幀採集的“點雲”進行匹配,並且顯示在同一世界座標中就是難點所在。Project Tango巧妙的結合運動追蹤的軌跡數據達到了對“點雲”的實時拼接。要知道“點雲”的數量一般在幾百或者上千。算法已經不易,運算量更是大的離譜,而Project Tango還把它做進了移動設備裏。
結論
當這三大技術匯聚,Project Tango為移動平台帶來了一種全新的空間感知技術,它可以讓移動設備像人眼一樣感知你所在的房間,找到行走的路,並且感知到哪裏是牆,哪裏是地,以及所有你身邊的物體。
其實這段很酷炫的話只有一個關鍵詞,那就是“移動平台”。為什麼?此時先拿出一個上文都沒有提過的詞語SLAM(Simultaneous Localization And Mapping,同步定位與地圖構建)。它是機器人領域裏面最重要的一個概念,沒有之一。
就是希望機器人能夠在某個環境中認識這個環境,找到自己的位置,並且規劃出合理的道路。然而自1986年這個概念被提出以來,運算複雜度就一直是它的一個有待解決的問題。可能大家也發現了,Tango設備就是一種SLAM設備,並且Google把它實現在了移動設備端。John神和他的團隊靠的不是魔法,而是對於光學傳感器和慣性傳感器與計算機視覺技術的巧妙結合。利用光學傳感器來校正慣性傳感器的誤差累計或者説“漂移”問題,利用慣性傳感器的小尺寸,低成本,以及實時信息輸出來降低光學傳感器的運算量,再配合上成熟的深度感應器(其實也是光學感應器的一類)從而實現了這個人們眼中的黑科技。
Project Tango的價值並不是把某個技術做到了登峰造極,而是將多種技術完美融合在一起,做到了1+1+1大於3的功效。並且把這些技術融合在了我們每天手邊拿着的設備上。在AR,VR,MR盛行的今天,Project Tango的場景掃描和運動追蹤功能正是現在AR,VR,MR設備最缺失的幾種輸入信息方式。再加上Google最近發佈的DayDream VR平台和Google移動操作系統的最新版本Android N,可見Google在移動VR上的佈局是多麼宏大。不過,此時看來Project Tango還處在“Tech Demo”階段,究竟能給AR,VR帶來多大的推動力,我們拭目以待。
本文為雷鋒網(搜索“雷鋒網”公眾號關注)獨家特約稿件,轉載請聯繫授權,註明作者、出處,不得刪改。
資料來源:雷鋒網
作者/編輯:胡金暉
Project Tango發佈初期曾經一度被稱為黑科技,但現如今已慢慢走進我們的生活。如果説Kinect是3D感應技術的開創者,那麼Project Tango就算是3D感應技術領路人了。Project Tango將光學傳感器、慣性傳感器與計算機視覺技術進行了完美的結合。
Project Tango誕生記
説到Project Tango就要説起ATAP(All Things Are Possible,ATAP是Google收購Motorola(後來又賣給了聯想)後保留的一個重要部門),更要説起Johnny Lee。
如果你打開Project Tango的介紹視頻,第一眼看到的一個面目和藹的胖子,就是那個在2007年底把Wii玩出花的大神。07年12月John神在YouTube上傳了一系列視頻,記錄了用Wii遙控手柄追蹤人的手指,通過改裝後的Wii遙控手柄和投影儀制造出多點觸摸電子白板,還有用Wii遙控手柄追蹤人的頭部位置,與此同時,遊戲畫面也為了適應觀眾的視角而發生改變。從這幾個實驗中,我們可以看到當下Leap Motion、Oculus Rift等下一代人機交互方式的影子。
之後他加入了微軟的Project Natal(該項目的成果是風靡全球的Kinect),後來跳槽到Google X,再之後加入Motorola ATAP(All Things Are Possible),最終帶領團隊在2014年6月5日啟動Project Tango。
Project Tango三大核心技術
眾所周知Project Tango包含三塊技術:運動追蹤(Motion Tracking),深度感知(Depth Perception)和區域學習(Area Learning)。我們可以通過John神的職業道路,由簡入繁來看看Project Tango裏面的黑科技是如何一步一步實現的。
首先就是John神的成名之作:Wii實現頭動追蹤。他將Wii捕捉系統翻了個個,將含有IR相機的Wii手柄作為接收器,並把Wii的“感應棒”作為一個含有兩個紅外點光源的發射器,如下圖:
這就形成了一個典型的單目視覺系統。接收器拍攝到的圖像是三維空間的場景在二維空間的投影,要識別場景的“深度”信息,就是一種逆向求解的過程。單目視覺系統一般採用對應點標定法,即通過不同座標系中對應點的對應座標求解座標系的轉換關係,説起來很繞口,但是簡單解釋就是好比你一隻眼睛看一根木棍(我們假定木棍不會在水平面旋轉),雖然沒有了雙目的立體視覺,但是通過觀看木棍的長度和位置變化你就可以判斷木棍的大概位置。同理John神的Demo中接收器拍攝到的圖像大概是這個樣子。
可能這個例子裏面的原理非常之簡單,但要知道他提出的這個VR Display概念要比Oculus早了近5年。
運動追蹤
Project Tango的第一個核心技術“運動追蹤”的三維動態捕捉就是利用了上面提到的單目視覺技術的升級版Feature Tracking(Google稱為特徵捕捉)。特徵捕捉如何理解呢? 再回到John神的例子裏,我們不再固定接收器的位置了,反而是拿着接收器(這裏我們不再叫它接收器了,叫採集設備或相機)移動;而對面只有兩個光點的發射器也變成一個一個的光點貼在John神家裏屋子的各個角落。
當我們移動相機時不斷地一幀一幀進行拍攝,因為拍攝到的光點的相對位置在不斷變化(這裏“變化”是指拍攝到的兩幀之間同一個光點的相對位置變化),通過計算我們可以得到相機的移動距離。簡單來説Tango設備在不斷循環的一個過程就是:拍攝——識別特徵點(個人估計是SIFT點)——匹配特徵點——篩去錯誤匹配——座標換算。當然Project Tango的運動追蹤不僅如此,他還能通過一個內置的6軸慣性傳感器(加速度計和陀螺儀)來捕捉相機的加速度和運動方向。
當融合了以上兩類傳感器的數據之後Project Tango就“完美”(其實還有瑕疵)實現了三維運動追蹤。
區域學習
為什麼説還有瑕疵的?因為運動追蹤只是單純得到了相機移動的軌跡,然而對於相機所處的場景是零認知。所以一旦設備被關掉,它之前的運動軌跡就會被“忘掉”。最大的問題還是運動追蹤中所累積的誤差,或者叫漂移,在長距離使用後真實位置會和運算位置有很大差異。
為解決這個問題,John神團隊為Tango設備設定了一種學習模式。這應該是他在Google X裏面無人駕駛汽車研究成果的冰山一角。這種學習模式理解起來就簡單很多了,為了讓Tango設備具有一定記憶,而不再像一個被蒙着眼睛的人一樣需要靠數自己走了多少步來計算距離,Project Tango可以讓用户預先錄入某個場景(這裏要特別提醒的是,錄入的數據不光包括了運動追蹤裏面所識別的特徵點,還包含了場景本身),當用户重回這個場景的時候Tango設備會自動用錄入的數據來糾正運動追蹤的數據,這個糾正的過程中錄入場景裏的那些特徵點會被當作觀測點,一旦發現與當下特徵點匹配的觀測點,系統便會修正當下的追蹤數據。這就是Project Tango的第二大技術核心——區域學習。
深度感知
如果説把深度感知作為Project Tango的第三大技術核心,我覺得有點虛,畢竟Google也是採用的第三方的深度傳感器。不過對此Google並沒有掖着藏着,而是很大方的表明Tango設備可以選擇任意一種現今流行的深度感知技術。而對這項技術的順利應用多半也要歸功於John神在Project Natal的經歷了。Kinect一代的推出震動了業界,震動了學術界,同時也把結構光(Structured Light)的概念推廣了出去。那麼他到底是怎麼實現深度檢測的呢?檢測到的“深度”又是什麼概念呢?
結構光顧名思義是有特殊結構(模式)的光,比如離散光斑,條紋光,編碼結構光,等等。他們被投射到待檢測物體或平面上,看上去就好像標尺一樣。根據用處不同,投影出來的結構光也可以分為不可見的紅外光斑,黑白條紋可見光,單束線性激光,等等。比如Kinect投射出來的就是紅外光斑,設想你玩遊戲的時候要是一片黑白條紋光打到你身上,這畫面感豈不是很怪。
人們發現把這些光投到不同深度的平面上光的紋路會發生變化,那麼如果能採集到這些紋理變化,並且能精準的計算這些變化豈不是可以算出不同的深度?
迴歸正題,Kinect的離散光斑是如何實現深度檢測的呢,我們知道如果拿一個手電照射牆壁,站近或站遠,牆上的光斑是不同大小的,從不同角度照射牆,光斑也會呈現不同的橢圓。這就是基本原理了。但如何使一個紅外光源按照不同角度射出?並且還要變成一堆離散的光斑?
這就要拿出它的發明者以色列PrimeSense公司的專利圖了,他們非常聰明地在紅外發射器前面加了一個特殊設計的diffuser(光柵、擴散片)可以使紅外光線能從不同角度射出。另一個攝像頭再去拍攝這些光斑然後進行計算從而得出每一個光斑所在的深度。每種結構光的掃描精度,所對應的算法,以及應用場景都有所不同。例如用於電子產業元器件錫膏檢查(SPI/ AOI)一般就是可見的條紋光。另外幾種結構光就不多做介紹了,總之只需要知道他們對深度感知的精準度會遠遠高於Kinect這種離散光斑類型的結構光(可以達到微米級),並且算法也有很大出入。
除了結構光Project Tango還提到了TOF(Time of Flight飛翔的時間?)一個激光發射器,一個接收器,一個運算光程的芯片組成。通過計算不同的光程來獲取深度信息,它也是一種深度傳感器。
這些深度傳感器輸出稱之為“點雲”的數據,包含了所有被採集到深度的點的三維信息。
但是這裏還隱藏了一個技術難點,因為Tango設備是在一邊移動一邊採集的,如何把上一幀採集的“點雲”信息和當下幀採集的“點雲”進行匹配,並且顯示在同一世界座標中就是難點所在。Project Tango巧妙的結合運動追蹤的軌跡數據達到了對“點雲”的實時拼接。要知道“點雲”的數量一般在幾百或者上千。算法已經不易,運算量更是大的離譜,而Project Tango還把它做進了移動設備裏。
結論
當這三大技術匯聚,Project Tango為移動平台帶來了一種全新的空間感知技術,它可以讓移動設備像人眼一樣感知你所在的房間,找到行走的路,並且感知到哪裏是牆,哪裏是地,以及所有你身邊的物體。
其實這段很酷炫的話只有一個關鍵詞,那就是“移動平台”。為什麼?此時先拿出一個上文都沒有提過的詞語SLAM(Simultaneous Localization And Mapping,同步定位與地圖構建)。它是機器人領域裏面最重要的一個概念,沒有之一。
就是希望機器人能夠在某個環境中認識這個環境,找到自己的位置,並且規劃出合理的道路。然而自1986年這個概念被提出以來,運算複雜度就一直是它的一個有待解決的問題。可能大家也發現了,Tango設備就是一種SLAM設備,並且Google把它實現在了移動設備端。John神和他的團隊靠的不是魔法,而是對於光學傳感器和慣性傳感器與計算機視覺技術的巧妙結合。利用光學傳感器來校正慣性傳感器的誤差累計或者説“漂移”問題,利用慣性傳感器的小尺寸,低成本,以及實時信息輸出來降低光學傳感器的運算量,再配合上成熟的深度感應器(其實也是光學感應器的一類)從而實現了這個人們眼中的黑科技。
Project Tango的價值並不是把某個技術做到了登峰造極,而是將多種技術完美融合在一起,做到了1+1+1大於3的功效。並且把這些技術融合在了我們每天手邊拿着的設備上。在AR,VR,MR盛行的今天,Project Tango的場景掃描和運動追蹤功能正是現在AR,VR,MR設備最缺失的幾種輸入信息方式。再加上Google最近發佈的DayDream VR平台和Google移動操作系統的最新版本Android N,可見Google在移動VR上的佈局是多麼宏大。不過,此時看來Project Tango還處在“Tech Demo”階段,究竟能給AR,VR帶來多大的推動力,我們拭目以待。
本文為雷鋒網(搜索“雷鋒網”公眾號關注)獨家特約稿件,轉載請聯繫授權,註明作者、出處,不得刪改。
資料來源:雷鋒網
作者/編輯:胡金暉
請按此登錄後留言。未成為會員? 立即註冊