常用的三種類(lèi)型的深度相機(jī)[1],大致分為以下三種:基于主動(dòng)投射結(jié)構(gòu)光的深度相機(jī)(如Kinect 1.0, Intel RealSense, Enshape, Ensenso等)、被動(dòng)雙目相機(jī)(如STEROLABS 推出的 ZED 2K Stereo Camera, Point Grey 公司推出的 BumbleBee)以及ToF[2]相機(jī)(如微軟的Kinect 2.0, MESA 的 SR4000 , Google Project Tango 中使用的PMD Tech 的TOF相機(jī),Intel 的 SoftKinect DepthSense, Basler基于松下的芯片開(kāi)發(fā)的TOF相機(jī)以及國(guó)內(nèi)一些初創(chuàng)公司基于TI的方案開(kāi)發(fā)的TOF相機(jī)等等)
目前市面上常有的 3D 相機(jī)方案就就是下面3種,對(duì)應(yīng)上面的:
(1) 結(jié)構(gòu)光(Structured-light),代表公司有奧比中光(國(guó)產(chǎn),比較推薦,性價(jià)比可以,也有高分辨率的款),蘋(píng)果(Prime Sense),微軟 Kinect-1,英特爾RealSense, Mantis Vision 等。
(2) 雙目視覺(jué)(Stereo),代表公司 Leap Motion, ZED, 大疆;
(3) 光飛行時(shí)間法(TOF),代表公司微軟 Kinect-2,PMD,SoftKinect, 聯(lián)想Phab。

image_1cs5el5cb14m9bhr9ts11rvgve4i.png-82.7kB
1. Kinect
先給出結(jié)論,KinectV2的精度在2mm~4mm左右,距離越近精度越高,越遠(yuǎn)精度稍微差點(diǎn);kinectV1誤差約2mm~30mm。
Kinectv2 for Mobile Robot Navigation: Evaluationand Modeling

image_1cs6h8fbdokn1ljf1npuogg1g2b5p.png-1587.5kB
如上圖所示,右側(cè)大三角是KinectV2在縱向(垂直于地面)的精度分布,下側(cè)大三角是KinectV2在水平面(平行于地面)上的精度分布。在綠色區(qū)域精度最高,誤差小于2mm,在黃色區(qū)域誤差在2~4mm,紅色區(qū)域誤差大于4mm。所以在設(shè)計(jì)交互場(chǎng)景時(shí),在黃色區(qū)域以內(nèi)會(huì)達(dá)到最好的效果(3.5m內(nèi))。如果對(duì)精度要求很高,如控制機(jī)械,最好在綠色區(qū)域進(jìn)行交互。
2 Kinect v2和Kinect v1

性能表對(duì)比
Kinect v2的rgb視場(chǎng)(FOV[3])是84.1 x 53.8,關(guān)于FOV的建模和模型可以參考。

image_1cs6hgs884u61c4cs061tp61d9466.png-274.2kB
如圖所示,KinectV1隨著距離增加,誤差指數(shù)性增加,在距離達(dá)到4m時(shí),kinectV1誤差接近0.2m。而KinectV2的誤差幾乎不隨距離增加而變化。V2比V1追蹤準(zhǔn)確度好20%。V2可以在戶外進(jìn)行人體跟蹤,最遠(yuǎn)到4m。V2在近距離有比V1高2倍的精度,在6m有高數(shù)十倍的精度。
3. LeapMotion
LeapMotion的精度平均下來(lái)是0.7mm的精度,也是達(dá)不到所謂的0.01mm的。
Analysis of the Accuracy and Robustness of the Leap
Motion Controller
上面的論文對(duì)初步版本中的Leap Motion控制器進(jìn)行研究,分別在靜態(tài)與動(dòng)態(tài)設(shè)置下的精度和準(zhǔn)確性,考慮到人手的可達(dá)到的平均約為0.4mm,實(shí)驗(yàn)用設(shè)備使用參考筆,位置精度可達(dá)0.2mm,且參考筆對(duì)儀器精度測(cè)量無(wú)可觀察到的影響。在基于靜態(tài)設(shè)置的測(cè)量下,獲得了期望的3D位置與小于0.2mm的測(cè)量位置之間的與軸無(wú)關(guān)的偏差。在動(dòng)態(tài)情況下,獨(dú)立于平面,可以獲得小于2.5mm的精度(平均1.2毫米)。重復(fù)性平均小于0.17毫米。在基于姿勢(shì)的用戶界面方面,在實(shí)際條件下不可能實(shí)現(xiàn)0.01mm的理論精度,而是高精度(總平均精度為0.7mm)。
最后比較一下以上設(shè)備的優(yōu)缺點(diǎn)
1. Microsoft Kinect

image_1cs835f4eiaa4gb1ln31cndcb2an.png-99.9kB
優(yōu)點(diǎn):
- 可以獲取深度數(shù)據(jù)(320*240)、rgb
- 數(shù)據(jù)(640*480)、聲音、骨骼節(jié)點(diǎn)(20個(gè))
- 擁有三套 SDK:微軟 SDK、OpenNI、libfreenect
- 后兩個(gè) SDK 是跨平臺(tái),支持各種開(kāi)發(fā)語(yǔ)言
- 價(jià)格便宜
- 社區(qū)成熟,開(kāi)發(fā)資源豐富
缺點(diǎn):
- 傳感器分辨率不夠,看不清手指
- 由于使用結(jié)構(gòu)光技術(shù),深度傳感器的可視范圍無(wú)法重疊
- OpenNI 和 libfreenect 雖然跨平臺(tái),但是功能遠(yuǎn)不如微軟 SDK
- 設(shè)備尺寸大,需要一坨電源線
- 致命缺點(diǎn),微軟已宣布停止生產(chǎn) Kinect 一代
2. Microsoft Kinect One

image_1cs83c41h1bpip0qjqvc2s1aub4.png-84.5kB
優(yōu)點(diǎn):
- 分辨率更大、可以看到更廣闊的場(chǎng)景
- 可以檢測(cè)到的人體關(guān)節(jié)點(diǎn)更多(25個(gè)),能看清手指
- 擁有兩套 SDK:微軟 SDK、libfreenect2
- 可以開(kāi)發(fā) Windows Store 應(yīng)用
缺點(diǎn):
- libfreenect2 基本不能檢測(cè)骨骼,功能缺太多,同時(shí) OpenNI 也不支持它,因此局限于 Windows 平臺(tái)
- 設(shè)備尺寸比一代更大,需要一坨電源線,比一代貴一些
- 致命缺點(diǎn):只能運(yùn)行在 64 位 Windows 8 系統(tǒng)上,必須使用 USB 3.0 端口
3. Intel / Creative / SoftKinetic

image_1cs83s6uv6941lg0gaonlg1ocp19.png-259.3kB
優(yōu)點(diǎn):
- 小巧,普通 USB 攝像頭的尺寸
- 不需要外界電源線
- 近距離使用,可實(shí)現(xiàn)表情分析和手勢(shì)識(shí)別
缺點(diǎn):
- 不適合遠(yuǎn)距離交互,也無(wú)法檢測(cè)完整的身體
- 只能在中高端的 Intel CPU 上才能運(yùn)行
4. Leap Motion

image_1cs83t6bukpppr9f021dtt1cdo1m.png-170.4kB
優(yōu)點(diǎn):
- 小巧,一根 usb 線就可以使用
- 跨平臺(tái)
- 支持的開(kāi)發(fā)語(yǔ)言比較多,甚至通過(guò) WebSocket
- 實(shí)現(xiàn)了瀏覽器中的 JavaScript API
- 跟蹤手指和手掌,精度較高
缺點(diǎn):
- 檢測(cè)范圍小,手臂酸疼(見(jiàn)上圖)
- 不能檢測(cè)身體和臉部
- 作為生產(chǎn)力工具,完全無(wú)法替代鼠標(biāo)鍵盤(pán)
- 致命缺點(diǎn):找不到合適的使用場(chǎng)景
5. PrimeSense / Apple / 華碩(ASUS)

image_1cs8479dm6sncqr1ulgb1e1l5r23.png-80.6kB
和 Kinect 一代的優(yōu)缺點(diǎn)類(lèi)似,
-
https://zhuanlan.zhihu.com/p/28274727 ↩
-
https://baike.baidu.com/item/TOF/19952376?fr=aladdin ↩
-
http://www.coloreye.cn/wiki/doc-view-716.html ↩