謝秀齊,何演權(quán),奉彥文,何曉昀
(廣東理工學院,廣東 肇慶 526000)
Azure Kinect DK 是一款開發(fā)人員工具包,配有先進的 AI 傳感器,適用于復(fù)雜的計算機視覺和語音模型。Azure Kinect組合了先進的深度傳感器、空間麥克風陣列、攝像機和方向傳感器相結(jié)合,提供了多種功能。
圖1 Azure Kinect 深度相機圖
與上一代的產(chǎn)品Kinect for Windows相比,Azure Kinect設(shè)備具有更高的硬件規(guī)格,同時具備音頻、視頻、深度和運動傳感器,可以全方位感知環(huán)境,構(gòu)建豐富的解決方案。特別提供的深度相機支持工作模式最大提供角度120°×120°,分辨率1024×1024的3D測距功能。
Azure Kinect DK 使用的測距原理為飛行時間(ToF),其原理與結(jié)構(gòu)光類似采用主動探測機制,通過向待測空間投射光脈沖,根據(jù)接收到反射光的相位差計算反射點的深度數(shù)據(jù)。
ToF 測量原理公式如下
式中,d為深度相機與被測目標之間的距離;c為光速;f為調(diào)制頻率;Δψ為相位差。
由于光速c和調(diào)制頻率是確定的,相位差Δψ直接影響著深度傳感器的測距精度。依據(jù)ToF測距原理可得,光信號通過的光路徑與深度數(shù)據(jù)成正比例關(guān)系,表現(xiàn)為光路徑越長所獲取的深度數(shù)據(jù)越大,而透鏡與被測平面間深度值一致,因此透鏡外圍部分的測量誤差明顯大于中心部分的測量誤差。如果該深度誤差不能得到較好的改正,則深度信息將明顯失真,從而影響到三維重建的精度和質(zhì)量。
Azure Kinect DK測距的主要誤差來源可分為系統(tǒng)誤差和隨機誤差。
系統(tǒng)誤差定義為消噪后測得的距離與真實距離之差。 系統(tǒng)誤差定義為:
其中,dt表示時間t處的測量距離,N是求平均過程使用的幀數(shù),dgt是真實距離。
假設(shè)在沒有移動相機的情況下拍攝了同一對象的100 張圖像。 在這 100 張圖像中,每張圖像的對象深度略有不同。 這種差異是散粒噪聲造成的。將靜態(tài)場景中的這種隨機誤差定義為一段時間內(nèi)的深度標準偏差,其計算公式為:
其中,N表示深度測量值數(shù),dt表示時間t處的深度測量值,d表示基于所有深度測量值dt計算出的平均值。
實驗以激光測距儀作為校準設(shè)備,其測量精度為1mm。將Azure Kinect DK設(shè)備與激光測距儀置于同一水平面,在0.4~12m的方位內(nèi)移動標靶位置,測得多組測量數(shù)據(jù)。將測量數(shù)據(jù)與激光測距儀相對比,得到不同測距范圍下深度傳感器的測距誤差。
將Azure Kinect DK深度傳感器獲取的測量數(shù)據(jù)減去由激光測距儀獲取的測量數(shù)據(jù),得到測距誤差隨距離分布如圖2所示。由圖可知Azure Kinect DK測量的深度誤差當測量距離小于8.5m時誤差較小,基本在2.0mm以內(nèi);當測量距離超過8.5m后,深度誤差增長明顯。
通過對Azure Kinect DK測量的深度數(shù)據(jù)誤差的分析,對比激光測距儀測量數(shù)據(jù)可以對Azure Kinect DK進行標定,完成對設(shè)備的深度數(shù)據(jù)進行修正,提高深度數(shù)據(jù)測量的精度。如圖1所示,采用多項式曲線擬合算法對測量數(shù)據(jù)進行擬合獲得擬合曲線及擬合公式。其中y為修正后的測量結(jié)果,x對應(yīng)距離。
如圖3所示,依據(jù)擬合結(jié)果對Azure Kinect DK測量的深度數(shù)據(jù)進行誤差修正,使得深度數(shù)據(jù)在8.5m以內(nèi)時,其誤差小于20mm,在8.5~12m內(nèi)時,其誤差小于50mm,且誤差分布較為均衡。
圖2 測量誤差分布及曲線擬合
圖3 修正后的測量誤差分布圖
本文將Azure Kinect DK深度傳感器獲取的深度數(shù)據(jù)與激光測距儀采集的深度數(shù)據(jù)進行了對比分析,了解其誤差與距離變化的關(guān)系,并進行了誤差修正。實驗證明,Azure Kinect DK傳感器測量的深度數(shù)據(jù)誤差在8.5m內(nèi)誤差較?。划斁嚯x超過8m后,深度誤差存在一個較明顯的增長,且隨距離增加誤差也快速增加,測量距離到達12.5m的時候,誤差可以達到100mm,且誤差均偏向一邊。對測量誤差結(jié)果進行分析可認為誤差主要來源是系統(tǒng)誤差,可采用多項式曲線擬合方式對測距誤差進行修正。修正結(jié)果如圖3所示,修正后距離在8.5m以內(nèi)時,誤差小于20mm;在8.5~12.5m內(nèi)時,誤差小于50mm,且誤差均勻分布在0值上下。修正后Azure Kinect DK的測距精度得到了明顯的提高。