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