深度相機的精度問題及Kinect2標定

本文轉載自:https://www.jianshu.com/p/1a916ed3c503

kinect2標定:http://www.manongjc.com/article/31797.html

常用的三種類型的深度相機[1],大致分爲以下三種:基於主動投射結構光的深度相機(如Kinect 1.0, Intel RealSense, Enshape, Ensenso等)、被動雙目相機(如STEROLABS 推出的 ZED 2K Stereo Camera, Point Grey 公司推出的 BumbleBee)以及ToF[2]相機(如微軟的Kinect 2.0, MESA 的 SR4000 , Google Project Tango 中使用的PMD Tech 的TOF相機,Intel 的 SoftKinect DepthSense, Basler基於松下的芯片開發的TOF相機以及國內一些初創公司基於TI的方案開發的TOF相機等等)

目前市面上常有的 3D 相機方案就就是下面3種,對應上面的:
(1) 結構光(Structured-light),代表公司有奧比中光(國產,比較推薦,性價比可以,也有高分辨率的款),蘋果(Prime Sense),微軟 Kinect-1,英特爾RealSense, Mantis Vision 等。
(2) 雙目視覺(Stereo),代表公司 Leap Motion, ZED, 大疆;
(3) 光飛行時間法(TOF),代表公司微軟 Kinect-2,PMD,SoftKinect, 聯想Phab。

image_1cs5el5cb14m9bhr9ts11rvgve4i.png-82.7kB
image_1cs5el5cb14m9bhr9ts11rvgve4i.png-82.7kB

1. Kinect

先給出結論,KinectV2的精度在2mm~4mm左右,距離越近精度越高,越遠精度稍微差點;kinectV1誤差約2mm~30mm

Kinectv2 for Mobile Robot Navigation: Evaluationand Modeling

  • Kinect v2在不同位置的精度問題
image_1cs6h8fbdokn1ljf1npuogg1g2b5p.png-1587.5kB
image_1cs6h8fbdokn1ljf1npuogg1g2b5p.png-1587.5kB

如上圖所示,右側大三角是KinectV2在縱向(垂直於地面)的精度分佈,下側大三角是KinectV2在水平面(平行於地面)上的精度分佈。在綠色區域精度最高,誤差小於2mm,在黃色區域誤差在2~4mm,紅色區域誤差大於4mm。所以在設計交互場景時,在黃色區域以內會達到最好的效果(3.5m內)。如果對精度要求很高,如控制機械,最好在綠色區域進行交互。

2 Kinect v2和Kinect v1

性能表對比
性能表對比

Kinect v2的rgb視場(FOV[3])是84.1 x 53.8,關於FOV的建模和模型可以參考

image_1cs6hgs884u61c4cs061tp61d9466.png-274.2kB
image_1cs6hgs884u61c4cs061tp61d9466.png-274.2kB

如圖所示,KinectV1隨着距離增加,誤差指數性增加,在距離達到4m時,kinectV1誤差接近0.2m。而KinectV2的誤差幾乎不隨距離增加而變化。V2比V1追蹤準確度好20%。V2可以在戶外進行人體跟蹤,最遠到4m。V2在近距離有比V1高2倍的精度,在6m有高數十倍的精度。

  • kinectv1和kinectv2比較

  • |KinectV1|KinectV2
    ----|----|----
    檢測範圍(Range of Detecton)|0.8–6.0m|0.5 –4.5m
    深度誤差(depth Uncertainty)|2mm-30mm|<0.5% of range
    角度(Angle,horizontal-vertical)|57-43|70-60

3. LeapMotion

LeapMotion的精度平均下來是0.7mm的精度,也是達不到所謂的0.01mm的。

Analysis of the Accuracy and Robustness of the Leap
Motion Controller

上面的論文對初步版本中的Leap Motion控制器進行研究,分別在靜態與動態設置下的精度和準確性,考慮到人手的可達到的平均約爲0.4mm,實驗用設備使用參考筆,位置精度可達0.2mm,且參考筆對儀器精度測量無可觀察到的影響。在基於靜態設置的測量下,獲得了期望的3D位置與小於0.2mm的測量位置之間的與軸無關的偏差。在動態情況下,獨立於平面,可以獲得小於2.5mm的精度(平均1.2毫米)。重複性平均小於0.17毫米。在基於姿勢的用戶界面方面,在實際條件下不可能實現0.01mm的理論精度,而是高精度(總平均精度爲0.7mm)。

最後比較一下以上設備的優缺點

1. Microsoft Kinect

image_1cs835f4eiaa4gb1ln31cndcb2an.png-99.9kB
image_1cs835f4eiaa4gb1ln31cndcb2an.png-99.9kB

優點:

  • 可以獲取深度數據(320*240)、rgb
  • 數據(640*480)、聲音、骨骼節點(20個)
  • 擁有三套 SDK:微軟 SDK、OpenNI、libfreenect
  • 後兩個 SDK 是跨平臺,支持各種開發語言
  • 價格便宜
  • 社區成熟,開發資源豐富

缺點:

  • 傳感器分辨率不夠,看不清手指
  • 由於使用結構光技術,深度傳感器的可視範圍無法重疊
  • OpenNI 和 libfreenect 雖然跨平臺,但是功能遠不如微軟 SDK
  • 設備尺寸大,需要一坨電源線
  • 致命缺點,微軟已宣佈停止生產 Kinect 一代

2. Microsoft Kinect One

image_1cs83c41h1bpip0qjqvc2s1aub4.png-84.5kB
image_1cs83c41h1bpip0qjqvc2s1aub4.png-84.5kB

優點:

  • 分辨率更大、可以看到更廣闊的場景
  • 可以檢測到的人體關節點更多(25個),能看清手指
  • 擁有兩套 SDK:微軟 SDK、libfreenect2
  • 可以開發 Windows Store 應用

缺點:

  • libfreenect2 基本不能檢測骨骼,功能缺太多,同時 OpenNI 也不支持它,因此侷限於 Windows 平臺
  • 設備尺寸比一代更大,需要一坨電源線,比一代貴一些
  • 致命缺點:只能運行在 64 位 Windows 8 系統上,必須使用 USB 3.0 端口

3. Intel / Creative / SoftKinetic

image_1cs83s6uv6941lg0gaonlg1ocp19.png-259.3kB
image_1cs83s6uv6941lg0gaonlg1ocp19.png-259.3kB

優點:

  • 小巧,普通 USB 攝像頭的尺寸
  • 不需要外界電源線
  • 近距離使用,可實現表情分析和手勢識別

缺點:

  • 不適合遠距離交互,也無法檢測完整的身體
  • 只能在中高端的 Intel CPU 上才能運行

4. Leap Motion

image_1cs83t6bukpppr9f021dtt1cdo1m.png-170.4kB
image_1cs83t6bukpppr9f021dtt1cdo1m.png-170.4kB

優點:

  • 小巧,一根 usb 線就可以使用
  • 跨平臺
  • 支持的開發語言比較多,甚至通過 WebSocket
  • 實現了瀏覽器中的 JavaScript API
  • 跟蹤手指和手掌,精度較高

缺點:

  • 檢測範圍小,手臂痠疼(見上圖)
  • 不能檢測身體和臉部
  • 作爲生產力工具,完全無法替代鼠標鍵盤
  • 致命缺點:找不到合適的使用場景

5. PrimeSense / Apple / 華碩(ASUS)

image_1cs8479dm6sncqr1ulgb1e1l5r23.png-80.6kB
image_1cs8479dm6sncqr1ulgb1e1l5r23.png-80.6kB

和 Kinect 一代的優缺點類似,



  1. https://zhuanlan.zhihu.com/p/28274727

  2. https://baike.baidu.com/item/TOF/19952376?fr=aladdin

  3. http://www.coloreye.cn/wiki/doc-view-716.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章