王福任,李洪璠
(三亞學院,海南三亞,572000)
隨著硬件技術和通信技術的飛速發展,增強現實、虛擬現實交互逐漸成為下一代人機交互技術的主流。本文旨在設計一種三維指尖跟蹤方式,借用深度學習模型、雙目同步相機模組及雙目測距原理,完成三維指尖跟蹤。在后續研究中,使用者或可以此實現增強現實、虛擬現實設備的人機交互,即隔空點觸、隔空劃動、隔空拉伸等相應操作。
指尖關鍵點檢測的目的是,找出待檢測畫面或視頻流中手指的指尖關鍵點。其原理類似于人體關鍵點檢測或面部關鍵點檢測。不過,在指尖關鍵點檢測中,手部將一個目標物體。
本文使用OpenPose 作為指尖跟蹤模型。OpenPose 人體姿態識別項目是世界上首個基于深度學習的實時二維姿態估計應用,其擁有良好的魯棒性,可用于單個或多個目標。OpenPose 可以實現臉部表情、人體活動、手指活動等姿態估計。目前,基于OpenPose 的實例大量涌現,該技術在VR 試衣、體育評估、動作采集等領域擁有非常廣闊的應用前景。
雙目視覺廣泛應用在機器人導航、精密工業測量、物體識別、虛擬現實、場景重建,勘探領域。雙目視覺是模擬人類視覺原理,使用計算機被動感知距離的方法。從兩個或多個點觀察一個物體,獲取在不同視角下的圖像,根據圖像之間像素的匹配關系,通過三角測量原理計算出像素之間的偏移來獲取物體的三維信息。得到了物體的景深信息,就可以計算出物體與相機之間的實際距離,物體3 維大小,兩點之間實際距離。[3]
本文主要使用的是雙目測距原理。雙目測距的操作分為四個步驟,即相機標定—雙目校正—雙目匹配—計算深度信息。
本文使用了可進行手部關鍵點識別的深度學習模型進行手指關鍵點標注,在此基礎上用雙目測距原理完成視差數據的收集,并計算深度信息以獲得食指指尖的三維數據。
獲得食指指尖的三維立體數據后,應對數據進行處理,使得數據可對應AR、VR 眼鏡中的虛擬屏幕。其中,本文所用的處理方式包含中點坐標計算等。
三維指尖跟蹤的總體流程如圖1 所示。

圖1 三維指尖跟蹤流程圖
本文設計的三維指尖跟蹤系統是以OpenPose 為基礎,利用Python 語言進行腳本編寫。本文所用OpenPose 的版本是1.6.0, Python 版本是3.7.6,且安裝有OpenCV-Python庫及相關依賴。CPU 為Intel E3-1285lv4, GPU 為Nvidia GTX1060,內存為16GB,系統為Windows10。相機模組采用的是搭載兩顆OV9570 的雙目同步攝像頭模組。
在本文中,為簡化模型,僅提取了食指指尖作為模型的目標。在實際操作中,可將手指其他關鍵點設為目標,以完成更加復雜的操作。
2.2.1 輸入圖像
輸入圖像如圖2 所示,由雙目同步攝像頭模組拍攝,該模組采取拼疊的方式將兩個1280720 的視頻流橫向拼疊為總分辨率為2560720 的視頻流。在本此操作中,OpenPose 模型將使用OpenCV 調用相機視頻流。

圖2 輸入圖像
2.2.2 模型進行處理
在OpenPose 中,視頻流經過卷積網絡提取特征,得到一組特征圖,然后分別使用CNN 網絡提取局部置信圖和局部親和域并進行二元分配,以得出高置信區域,如圖3 所示。

圖3 模型處理過程中輸出的熱力圖
在本文中,分辨率為2560720 視頻流將會被切割為兩個1280720 的視頻流同時處理,以此提高性能。
2.2.3 輸出結果
得到高置信區域后,模型將高置信區域標記并輸出坐標,同時進行視差測算。以此得到同一坐標系下的兩個二維坐標“position of left”、“position of right”和距離參數“distance”。
在這之后,應對兩個二維坐標進行中點坐標計算,獲得兩坐標的連線中點坐標,并將所得中點坐標系進行裁切,使裁切后的坐標系等效于1280720 的坐標系,并以[x,y]格式輸出。此時模型輸出了一個三維坐標系下的坐標,即二維坐標[x,y]和距離參數“distance” ,如圖4 所示。

圖4 坐標打印結果
需注意的是,在實際操作中受限于雙目同步相機的鏡頭特性,目標放置于某些角度時不能保證目標被完整錄入。本文為簡化模型,暫未考慮此方面的影響。
本文所述方法可以解決增強現實和虛擬現實設備進行指尖跟蹤的問題。本文根據深度學習模型和雙目視覺算法,使用雙目相機模組,實現了三維指尖跟蹤。在本文所展望的實際應用中,使用者或可以此實現隔空的點觸、劃動、拉伸、旋轉等操作,這將簡化增強現實和虛擬現實設備的可操作性與實用性。不過,經測試后發現,軟件在所述配置中運行十分緩慢。例如,測試用視頻流分辨率為2560*720,但在測試中發現,整體方案無法達到預期的30HZ 采樣率,原因是OpenPose模型處理高分辨率視頻流時有較強的性能要求,超過了本文所使用平臺的硬件性能。為此,本文嘗試了多種方法解決,包括隔幀處理和圖像拆分等。
本文的思路與方向是正確的,但在投入實用前,尚需解決手指關鍵點識別模型的精簡化與輕量化的問題,并使用深度學習的專用加速芯片對模型進行加速,才能達到在移動設備中使用的目的。