謝秀齊,何演權,奉彥文,何曉昀
(廣東理工學院,廣東 肇慶 526000)
Azure Kinect DK 是一款開發人員工具包,配有先進的 AI 傳感器,適用于復雜的計算機視覺和語音模型。Azure Kinect組合了先進的深度傳感器、空間麥克風陣列、攝像機和方向傳感器相結合,提供了多種功能。

圖1 Azure Kinect 深度相機圖
與上一代的產品Kinect for Windows相比,Azure Kinect設備具有更高的硬件規格,同時具備音頻、視頻、深度和運動傳感器,可以全方位感知環境,構建豐富的解決方案。特別提供的深度相機支持工作模式最大提供角度120°×120°,分辨率1024×1024的3D測距功能。
Azure Kinect DK 使用的測距原理為飛行時間(ToF),其原理與結構光類似采用主動探測機制,通過向待測空間投射光脈沖,根據接收到反射光的相位差計算反射點的深度數據。
ToF 測量原理公式如下

式中,d為深度相機與被測目標之間的距離;c為光速;f為調制頻率;Δψ為相位差。
由于光速c和調制頻率是確定的,相位差Δψ直接影響著深度傳感器的測距精度。依據ToF測距原理可得,光信號通過的光路徑與深度數據成正比例關系,表現為光路徑越長所獲取的深度數據越大,而透鏡與被測平面間深度值一致,因此透鏡外圍部分的測量誤差明顯大于中心部分的測量誤差。如果該深度誤差不能得到較好的改正,則深度信息將明顯失真,從而影響到三維重建的精度和質量。
Azure Kinect DK測距的主要誤差來源可分為系統誤差和隨機誤差。
系統誤差定義為消噪后測得的距離與真實距離之差。 系統誤差定義為:

其中,dt表示時間t處的測量距離,N是求平均過程使用的幀數,dgt是真實距離。
假設在沒有移動相機的情況下拍攝了同一對象的100 張圖像。 在這 100 張圖像中,每張圖像的對象深度略有不同。 這種差異是散粒噪聲造成的。將靜態場景中的這種隨機誤差定義為一段時間內的深度標準偏差,其計算公式為:

其中,N表示深度測量值數,dt表示時間t處的深度測量值,d表示基于所有深度測量值dt計算出的平均值。
實驗以激光測距儀作為校準設備,其測量精度為1mm。將Azure Kinect DK設備與激光測距儀置于同一水平面,在0.4~12m的方位內移動標靶位置,測得多組測量數據。將測量數據與激光測距儀相對比,得到不同測距范圍下深度傳感器的測距誤差。
將Azure Kinect DK深度傳感器獲取的測量數據減去由激光測距儀獲取的測量數據,得到測距誤差隨距離分布如圖2所示。由圖可知Azure Kinect DK測量的深度誤差當測量距離小于8.5m時誤差較小,基本在2.0mm以內;當測量距離超過8.5m后,深度誤差增長明顯。
通過對Azure Kinect DK測量的深度數據誤差的分析,對比激光測距儀測量數據可以對Azure Kinect DK進行標定,完成對設備的深度數據進行修正,提高深度數據測量的精度。如圖1所示,采用多項式曲線擬合算法對測量數據進行擬合獲得擬合曲線及擬合公式。其中y為修正后的測量結果,x對應距離。
如圖3所示,依據擬合結果對Azure Kinect DK測量的深度數據進行誤差修正,使得深度數據在8.5m以內時,其誤差小于20mm,在8.5~12m內時,其誤差小于50mm,且誤差分布較為均衡。

圖2 測量誤差分布及曲線擬合

圖3 修正后的測量誤差分布圖
本文將Azure Kinect DK深度傳感器獲取的深度數據與激光測距儀采集的深度數據進行了對比分析,了解其誤差與距離變化的關系,并進行了誤差修正。實驗證明,Azure Kinect DK傳感器測量的深度數據誤差在8.5m內誤差較小;當距離超過8m后,深度誤差存在一個較明顯的增長,且隨距離增加誤差也快速增加,測量距離到達12.5m的時候,誤差可以達到100mm,且誤差均偏向一邊。對測量誤差結果進行分析可認為誤差主要來源是系統誤差,可采用多項式曲線擬合方式對測距誤差進行修正。修正結果如圖3所示,修正后距離在8.5m以內時,誤差小于20mm;在8.5~12.5m內時,誤差小于50mm,且誤差均勻分布在0值上下。修正后Azure Kinect DK的測距精度得到了明顯的提高。