楊喬悅 陳佳偉 殷蘭



摘要 實現了一個基于Kinect的移動平臺人臉視線追蹤系統。為了解決人臉識別技術在大多數應用場景中,難以拍攝到待識別對象正面的問題,提出了先跟蹤再識別的方法。利用Kinect獲取到待識別對象的方位信息,由移動機器人平臺搭載人臉視線追蹤系統運動到待識別對象的正面,便于人臉識別系統進行進一步識別。是一種提高傳統人臉識別正確率的改進方法。
【關鍵詞】視線跟蹤 Kinect 移動機器人
1 引言
人臉識別結合了圖像處理、模式識別、認知科學和心理學等多個研究領域。人臉識別系統利用攝像機對識別對象進行信息采集,以非接觸的方式采集到待識別對象的面部特征,系統在獲取圖像后與數據庫圖像進行比對后完成識別過程。主要運用于設備身份認證、考勤系統、機場車站的檢票等領域。
為了實現更好的識別性能,可采集面部的3D信息,相較于通用攝像機采集到的面部數據更為全面、精確。微軟Kinect for windows可獲取待識別對象的3D數據以及RGB圖像,成本低廉,易于實現,可應用于3D人臉識別系統。本文實現的系統利用Kinect對人臉視線進行追蹤,可為人臉識別提供正面、清晰的待識別圖像。
2 系統介紹
本系統中Kinect通過3D人臉識別,捕捉到其可視范圍內的待跟蹤對象的面部,并得到其相對于Kinect的視線偏角、距離等深度數據。PC通過串行通信,將待跟蹤對象的深度數據發送給機器人平臺控制器,控制器運用PID策略,使移動機器人平臺最終運動到與待跟蹤對象視線偏角接近于O,為基于圖像的人臉識別系統提供更有利的識別條件。
系統由移動機器人平臺、微軟Kinect forWindows和PC組成。Kinect固定在一個伸縮桿的滑動端上,根據捕捉到的待跟蹤對象面部的高度,控制升降平臺中導軌的長度,以調整Kinect的高度使其與面部高度保持基本一致。Kinect由網線連接到PC的USB 3.0接口,PC接收Kinect發送的面部深度數據,并解算成歐拉角,同時制定移動機器人平臺的移動方式,據此生成控制數據包通過RS485總線發送給MCU。MCU將接收到的控制數據包轉換為電機控制信號,輸出給移動機器人平臺的驅動電機。系統架構如圖2所示。
如圖3所示,Kinect使用深度傳感器獲得待跟蹤對象的深度數據。深度數據流是由一系列捕獲到的深度幀實時組合而成。每一個深度幀都包含深度像素。深度像素包含被探測到的物體的3D坐標信息。深度傳感器中,紅外發射器在一定區域內發送紅外線,紅外接收器捕獲物體反射的紅外線并計算距離。深度傳感器的可視角度為水平61.5°,垂直50.0°。在默認范圍下,深度傳感器的深度范圍是0.8-4.0米;在近景范圍下,其深度范圍是0.4-3.0米。
MCU選用STM32F103, 通過RS485總線接收到PC發出的控制數據包,定時器TIM2輸出2路PWM信號,分別控制機器人平臺的2個直流減速電機,帶動后側兩主動輪轉動。定時器TIM3輸出脈沖信號控制42H48兩相混合式步進電機,使升降平臺導軌的長度變化。
移動機器人平臺尺寸為270x210x90mm,采用大馬力的直流減速電機,額定電壓DC12V,輸出速率330rpm,由H橋電路驅動。由于整個系統重心較高,在MCU中通過程序將平臺移動速度控制在0.3-1.2m/s范圍內,使其在運動中姿態保持穩定,便于系統準確定位待測人面部位置。
升降平臺由導軌和步進電機組成。導軌長度210mm,有效行程為400mm。42H48兩相混合式步進電機額定電壓3.6V,額定電流1.2A。步進電機轉動使導軌伸長或縮短。
3 定位與跟蹤方法
Kinect深度傳感器獲取到待識別對象的深度信息以四維向量(x,y,z,w)的形式表示,其中3維向量(x,y,z)表示旋轉軸,w為一個角度分量,表示繞旋轉軸的旋轉角度。為了得到臉部視線偏角,需將該深度信息向量轉化為歐拉角,即俯仰角(Pitch)、偏航角(Yaw)、滾轉角(Roll)。
3.1 四元數到歐拉角的轉換
3.2 程序實現
PC上軟件開發環境為Visual Studio,使用C#語言進行編程。程序運行的順序為:打開Kinect深度傳感器,獲取到深度數據流。經過數學運算,將深度信息轉化為歐拉角表示,根據歐拉角以及距離信息,生成控制數據包,通過RS485串行通信協議,將其發送給MCU。如圖4所示。
MCU軟件開發環境為Keil使用C語言編程。接收到PC發送的控制數據包,據此解算出具體的移動機器人運動控制指令。輸出移動方向值、2路PWM、1路脈沖信號,分別控制移動機器人的運動方向、運動速度、升降平臺導軌的伸縮。如圖5所示。
4 實驗方法與分析
本文對搭建好的系統進行了一系列的測試實驗,分別研究面部轉向角度、機器人與待跟蹤對象之間的距離對系統追蹤準確度的影響。采用控制變量法,在機器人與待跟蹤對象保持lOOcm距離的情況下,以待跟蹤對象正前方為0°,待跟蹤對象面部向左及向右分別轉向5°、15°、25°、35°四個角度下測試系統追蹤后的角度準確率。待測對象面部朝向確定后,機器人從待跟蹤對象左側45°位置出發,分別進行10次測試,測量待跟蹤對象面部與機器人追蹤后最終位置的實際偏差角度,記錄數據。
在相同的實驗場地,待跟蹤對象面部始終朝向正前方(即轉向角度為0°)的情況下,機器人與待跟蹤對象的距離分別為lOOcm、150cm、200cm,機器人從待跟蹤對象左側450位置出發,分別進行10次測試,測量待跟蹤對象面部與機器人追蹤后最終位置的實際偏差角度,記錄數據。
機器人與待跟蹤對象的距離相同時,在待跟蹤對象面部朝向正前方的情況下,待跟蹤對象面部與機器人追蹤后最終位置的實際角度誤差在±1°內的概率高達100%。向左或向右轉向角度越大,角度誤差在±1°內的概率越低。當達到35°轉向時,角度誤差在±1°的概率只有80%。而當待跟蹤對象面部始終朝向正前方時,隨著機器人與待跟蹤對象距離的改變,角度誤差在±1°內的概率仍為100%。
實驗表明,當待跟蹤對象面部始終朝向正前方時系統的追蹤準確度最高,隨著轉向角度的增大,追蹤誤差越大。而機器人與待跟蹤對象的距離對系統追蹤準確度無明顯影響。
5 結論
通過多次實驗驗證,本系統能達到預期功能要求。在復雜應用場景下,為人臉識別系統采集待識別對象的正面3D圖像。但仍然存在一些有待改進的地方,當待跟蹤對象面部轉向角度增大時,系統追蹤準確率隨之降低。因此,還需進一步研究此問題,以期系統功能更加完善。
參考文獻
[1]蘇中.慣性技術[M].北京:國防工業出版社,2010.
[2] Microsoft. Kinect for Windows 2.0配置及參數文字資料[EB/OL].http://www.k4w.cn/news/l.html.
[3] STMicroelectronics. STM32F103x4Datasheet[EB/OL]. http://www.s tmicroelectronics.com. cn/resource/en/datasheet/stm32f103c4.pdf.