深度相機---(1)TOF總結
TOF是Time of flight的簡寫,直譯為飛行時間的意思。所謂飛行時間法3D成像,是通過給目標連續傳送光脈衝,然後用感測器接收從物體返回的光,通過探測光脈衝的飛行(往返)時間來得到目標物距離。這種技術跟3D鐳射感測器原理基本類似,只不過3D鐳射感測器是逐點掃描,而TOF相機則是同時得到整幅影象的深度資訊。TOF相機與普通機器視覺成像過程也有類似之處,都是由光源、光學部件、感測器、控制電路以及處理電路等幾部單元組成。與同屬於非侵入式三維探測、適用領域非常類似的雙目測量系統相比,TOF相機具有根本不同3D成像機理。雙目立體測量通過左右立體像對匹配後,再經過三角測量法來進行立體探測,而TOF相機是通過入、反射光探測來獲取的目標距離獲取。
TOF技術採用主動光探測方式,與一般光照需求不一樣的是,TOF照射單元的目的不是照明,而是利用入射光訊號與反射光訊號的變化來進行距離測量,所以,TOF的照射單元都是對光進行高頻調製之後再進行發射,比如下圖所示的採用LED或鐳射二極體發射的脈衝光,脈衝可達到100MHz。與普通相機類似,TOF相機晶片前端需要一個蒐集光線的鏡頭。不過與普通光學鏡頭不同的是這裡需要加一個帶通濾光片來保證只有與照明光源波長相同的光才能進入。同時由於光學成像系統具有透視效果,不同距離的場景為各個不同直徑的同心球面,而非平行平面,所以在實際使用時,需要後續處理單元對這個誤差進行校正。作為TOF的相機的核心,TOF晶片每一個像元對入射光往返相機與物體之間的相位分別進行紀錄。該感測器結構與普通影象感測器類似,但比影象感測器更復雜,它包含2個或者更多快門,用來在不同時間取樣反射光線。因為這種原因,TOF晶片畫素比一般影象感測器畫素尺寸要大得多,一般100um左右。照射單元和TOF感測器都需要高速訊號控制,這樣才能達到高的深度測量精度。比如,照射光與TOF感測器之間同步訊號發生10ps的偏移,就相當於1.5mm的位移。而當前的CPU 可到3GHz,相應得時鐘週期是300ps,則相應得深度解析度為45mm。運算單元主要是完成資料校正和計算工作,通過計算入射光與反射光相對相移關係,即可求取距離資訊。
TOF的優勢:與立體相機或三角測量系統比,TOF相機體積小巧,跟一般相機大小相去無幾,非常適合於一些需要輕便、小體積相機的場合。TOF相機能夠實時快速的計算深度資訊,達到幾十到100fps。TOF的深度資訊。而雙目立體相機需要用到複雜的相關性演算法,處理速度較慢。TOF的深度計算不受物體表麵灰度和特徵影響,可以非常準確的進行三維探測。而雙目立體相機則需要目標具有良好的特徵變化,否則會無法進行深度計算。TOF的深度計算精度不隨距離改變而變化,基本能穩定在cm級,這對於一些大範圍運動的應用場合非常有意義。
1.2 TOF研究機構
<1> Dynamic 3D Vision (2006-2010):
研究領域:多晶片2D/3D感測器, 動態場景重建, 目標位置識別和光場計算
<2>ARTTS (2007-2010):
全稱:“Action Recognition and Tracking based on Time-of-Flight Sensors”
研究領域:開發更加小型更加便宜的新一代TOF相機;將HDTV與TOF技術相結合(iii) 基於動作跟蹤和識別演算法的多模式介面和互動系統
<3>Lynkeus (2006-2009):
研究領域:致力於工業應用領域的高解析度和魯棒性的TOF感測器,例如自動化和機器人導航
<4>3D4YOU(2008-2010):
研究領域: 構建3D-TV產品線,從3電影中實時獲取點雲資料並且轉換為3D顯示到家庭電視中3D4YOU 應用ToF range cameras初始化估計多個高清晰度相機的深度以及初始化計算3D場景影象的深度。
<5>MOSES(2008-2012):
全稱:“Multi-Modal Sensor Systems for Environmental Ex-ploration (MOSES)”
研究領域:基於感測器的多方面的應用,包括基於TOF的人機介面和多感測器融合
TOF 相機目前的主要應用領域包括:
<1> 物流行業:通過 TOF 相機迅速獲得包裹的拋重(即體積),來優化裝箱和進行運費評估;
<2> 安防和監控:
進行 Peoplecounting 確定進入人數不超過上限;
通過對人流或複雜交通系統的counting,實現對安防系統的統計分析設計;
敏感地區的檢測物件監視;
<3> 機器視覺:工業定位、工業引導和體積預估;
替代工位上佔用大量空間的、基於紅外光進行安全生產控制的裝置;
<4> 機器人:
在自動駕駛領域提供更好的避障資訊;
機器人在安裝、質量控制、原料揀選應用上的引導;
<5>醫療和生物:足部矯形建模、病人活動/狀態監控、手術輔助、面部3D 識別;
<6>互動娛樂:動作姿勢探測、表情識別、娛樂廣告
<1>優點:
1.相對二維影象,可通過距離資訊獲取物體之間更加豐富的位置關係,即
區分前景與後景;
2.深度資訊依舊可以完成對目標影象的分割、標記、識別、跟蹤等傳統應用;
3.經過進一步深化處理,可以完成三維建模等應用;
4.能夠快速完成對目標的識別與追蹤;
5.主要配件成本相對低廉,包括CCD和普通 LED 等,對今後的普及化生產及使用有利;
6.藉助 CMOS 的特性,可獲取大量資料及資訊,對複雜物體的姿態判斷極為有效;
7.無需掃描裝置輔助工作
<2>缺點:
1.相對於普通數碼相機,其造價仍然偏高,影響該產品目前的普及使用率;
2.相機本身仍然受到硬體發展的限制,更新換代速度較快;
3.測量距離較常規測量儀器短,一般不超過 10 米;
4.測量結果受被測物性質的影響;
5.大多數機器的測量結果受外界環境干擾較為明顯,尤其是受外界光源干擾;
6.解析度相對較低,本文研究的 PMD Camcube 2.0 型號相機,為目前解析度最高的 3D 相機,其解析度僅為 204×204畫素(這個資訊比較老了。沒有實際意義);
7. 系統誤差及隨機誤差對結果影響明顯,需要進行後期資料處理。
2 深度相機比較
目前的深度相機有TOF、結構光、鐳射掃描等幾種。主要用於機器人、互動遊戲等應用。其中較多的是指TOF相機。目前主流的有TOF相機廠商有PMD、MESA、Optrima、微軟等幾家,其中MESA在科研領域使用較大,相機緊湊性好,而PMD是唯一一款能夠在戶內、戶外均能使用的TOF相機,並且能夠具有多種探測距離,可用於科研、工業等各種場合。而Optrima、微軟(還不是真正的TOF技術)的相機主要面向家庭、娛樂應用,價位較低。
<1>MESA公司:SR4000
<2>PMD公司:CamCube3.0
<3> Canesta公司:XZ422
<4> Fotonic公司
官網:http://www.fotonic.com/content/Company/Default.aspx
2.1 MESA系列介紹
MESA Imaging AG成立於2006年7月,致力於生產銷售世界領先的3D 飛行時間(TOF)深度測繪相機。該相機採用的影象晶片技術,能夠實時採集三維資料列(通常稱之為深度影象),並集成於一個緊湊的韌體內。MESA 在此領域榮獲過SwissRanger技術創新獎,眾多的成功經驗可以為客戶帶來定製相機解決方案。MESA的產品能夠進行單相機3D成像。它採用飛行時間法(Time of flight),通過給目標連續傳送光脈衝,然後用感測器接收從物體返回的光、探測光脈衝的飛行(往返)時間來得到目標物距離。相比於其它立體成像方式,這種方式具有實時性好、無死區等特點。MESA的晶片由專門的廠家生產,並引進了CCD/CMOS生產工序,保證了光電功能模組的獨立性以及優化配置。由此保證了MESA使用的晶片的底層噪聲和隨後的距離測量能力大大優於基於標準CMOS工藝製造的晶片。其型號是SR4000
SR4000 3D測距相機能以視訊幀速率實時輸出3維距離值和振幅值。基於時間飛行原理(time-of-flight TOF),相機包括一個內建的鐳射光源,發射光經場景中的物體反射後返回相機,每個影象感測器中的畫素點都分別精確測量該時間間隔,並獨立算出距離值。設計用於戶內環境,SR4000可輕易經USB2.0或者乙太網(Ethernet)介面連線到電腦或者網路中,快速生成實時深度圖。代表著MESA公司第4代時間飛行原理相機,它可輸出穩定的距離值,外形美觀、堅固,體積小(65 X 65 X 68mm)(USB版)。 SR4000隨機包括驅動和軟體介面程式,使用者可以通過介面程式建立更多的應用。
2.2 PMD Tec系列
Camcube3.0是全球第一款可應用於室外環境的高精度深度相機,這為汽車輔助駕駛、移動機器人等應用帶來了便利。在汽車等交通工具中,停車、開車執行等都一直通過駕駛員的直接觀測和經驗來完成,由於人的經驗誤差或精神狀態影響,在實際過程中,難免會出現各種狀況。而通過TOF相機3D探測,可以很方便的對外界環境進行探測,並對駕駛員起到提醒和輔助駕駛的作用。
PMDTec公司是一家德國公司,其原身是德國錫根大學一個研究感測器系統(ZESS)的中心實驗室,2002年從德國錫根大學分離出來組建了公司,後被另一家公司收購組建了現在的PMDTec公司。該公司研究3D TOF Imaging(時間飛行技術)超過了10年。2011年,Omek Interactive和PMDTechnologies宣佈達成了戰略合作伙伴關係,以提供姿態識別和身體跟蹤解決方案,這為今後的商業應用打下了堅實的基礎。該公司的產品已經開發到了第三代 - CamCube3.0。3D攝像頭的解析度為200*200,可以以每秒40幀的速度獲取場景的深度資訊和灰度影象。CamCube3.0具有非常高的靈敏度,它可以在較短的快門時間內獲得更高精度和更遠的探測距離。由於其獨家的SBI技術,TOF是少有的既可以用於室內,又可以用於室外的TOF相機,並可以探測快速運動目標。不過缺點就是價格不菲,不含稅的話,要12000美元。所以只適合搞科研,對於民用還有很長的路要走。
2.3 NATAL
Natal並不是基於ToF的原理,PrimeSense為微軟提供了其三維測量技術,並應用於Project Natal。在PrimeSense公司的主頁上提到其使用的是一種光編碼(light coding)技術。不同於傳統的ToF或者結構光測量技術,light coding使用的是連續的照明(而非脈衝),也不需要特製的感光晶片,而只需要普通的CMOS感光晶片,這讓方案的成本大大降低。Light coding,顧名思義就是用光源照明給需要測量的空間編上碼,說到底還是結構光技術。但與傳統的結構光方法不同的是,他的光源打出去的並不是一副週期性變化的二維的影象編碼,而是一個具有三維縱深的“體編碼”。這種光源叫做鐳射散斑(laser speckle),是當鐳射照射到粗糙物體或穿透毛玻璃後形成的隨機衍射斑點。這些散斑具有高度的隨機性,而且會隨著距離的不同變換圖案。也就是說空間中任意兩處的散斑圖案都是不同的。只要在空間中打上這樣的結構光,整個空間就都被做了標記,把一個物體放進這個空間,只要看看物體上面的散斑圖案,就可以知道這個物體在什麼位置了。當然,在這之前要把整個空間的散斑圖案都記錄下來,所以要先做一次光源的標定。在PrimeSense的專利上,標定的方法是這樣的:每隔一段距離,取一個參考平面,把參考平面上的散斑圖案記錄下來。假設Natal規定的使用者活動空間是距離電視機1米到4米的範圍,每隔10cm取一個參考平面,那麼標定下來我們就已經儲存了30幅散斑影象。需要進行測量的時候,拍攝一副待測場景的散斑影象,將這幅影象和我們儲存下來的30幅參考影象依次做互相關運算,這樣我們會得到30幅相關度影象,而空間中有物體存在的位置,在相關度影象上就會顯示出峰值。把這些峰值一層層疊在一起,再經過一些插值,就會得到整個場景的三維形狀了。
2.4 primeSense
今天最常見的影像捕捉裝置是數碼相機。數碼相機輸出一個畫素矩陣,每個畫素代表一個色值。這是一種二維(2D)視覺技術。3D 視覺是指除了捕捉目標的空間位置(x 軸和 y 軸)和顏色之外,還能捕捉目標的深度(又稱 Z 軸、範圍、距離)及其周圍環境。一個 3D 視覺系統同時輸出每個場景的地形檢視和色彩檢視。PrimeSense是一家無廠半導體公司。他們的技術賦予電視、機頂盒、客廳電腦等消費電子產品自然互動能力。他最得意的兩個字就是:深度。他們的 PrimeSensor 產品包含 Reference Design 和 NITE 中介軟體。PrimeSensor Reference Design 是一款成本低廉、即插即用、靠 USB 供電的裝置,可以放在電視機或顯示器的頂部或旁邊,也可以嵌入其中。ReferenceDesign 能夠實時生成客廳場景的深度、色彩和音訊資料。它能在各種室內照明條件下工作(包括一片漆黑和非常明亮的房間)。它不需要使用者佩戴或手持任何東西,無需校準,也不需要主機處理器做任何運算。PrimeSensor 的設計中包含一個先進的視覺資料處理中介軟體,它針對面向大眾市場的 CE 產品——NITE進行了優化。NITE 為開發豐富的自然互動應用程式提供了演算法框架。NITE SDK(軟體開發工具包)提供了一個文件詳細的 API 和框架,既能完成 GUI(圖形使用者介面)的設計開發,又能完成遊戲開發。
下面摘自:
Kinect v1是採用結構光方案,Kinect v2採用TOF方案。
Kinect v1和Kinect v2預覽版的感測器的配置比較在表1顯示。
Kinect v1 | Kinect v2預覽版 | ||
---|---|---|---|
顏色(Color) | 解析度(Resolution) | 640×480 | 1920×1080 |
fps | 30fps | 30fps | |
深度(Depth) | 解析度(Resolution) | 320×240 | 512×424 |
fps | 30fps | 30fps | |
人物數量(Player) | 6人 | 6人 | |
人物姿勢(Skeleton) | 2人 | 6人 | |
関節(Joint) | 20関節/人 | 25関節/人 | |
手的開閉狀態(Hand State) | △(Developer Toolkit) | ○(SDK) | |
檢測範囲(Range of Detection) | 0.8~4.0m | 0.5~4.5m | |
角度(Angle)(Depth) | 水平(Horizontal) | 57度 | 70度 |
垂直(Vertical) | 43度 | 60度 | |
(Tilt Motor) | ○ | ×(手動) | |
複數的App | ×(単一的App) | ○ |