盧亞軍,李天松,黃艷虎
(桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林 541004)
基于Kinect的車載手勢識別輔助系統(tǒng)設(shè)計
盧亞軍,李天松,黃艷虎
(桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林 541004)
車聯(lián)網(wǎng)作為戰(zhàn)略性新興產(chǎn)業(yè)中智能化汽車和物聯(lián)網(wǎng)兩大領(lǐng)域的重要交集,受到廣泛關(guān)注。通過車聯(lián)網(wǎng)、地理位置服務(wù)(Location Based Service)、手勢感應(yīng)三種技術(shù)的分析,將其整合成綜合系統(tǒng),實現(xiàn)手勢操作在車載系統(tǒng)中的多媒體功能和地理位置服務(wù)。采用Kinect作為手勢感應(yīng)設(shè)備,建立WPF工程,設(shè)計界面并進行具體功能編程。通過百度LBS開發(fā)者平臺提供的相關(guān)API進行數(shù)據(jù)調(diào)用,實現(xiàn)LBS服務(wù)。測試結(jié)果表明,系統(tǒng)具有功能多樣、靈活方便的特點,具有良好的應(yīng)用前景。
Kinect;車聯(lián)網(wǎng);手勢識別;地理位置服務(wù)
信息領(lǐng)域正經(jīng)歷著由互聯(lián)網(wǎng)到物聯(lián)網(wǎng)的新一輪技術(shù)革命。車聯(lián)網(wǎng)作為戰(zhàn)略性新興產(chǎn)業(yè)中物聯(lián)網(wǎng)和智能化汽車兩大領(lǐng)域的重要交集,受到國內(nèi)外相關(guān)研究機構(gòu)的高度重視[1]。車聯(lián)網(wǎng)是裝載在車輛上的電子標(biāo)簽通過無線識別等技術(shù)構(gòu)建的一種特殊移動自組織網(wǎng)絡(luò)。車聯(lián)網(wǎng)通過車輛和道路之間進行有效的信息交互, 實現(xiàn)智能交通的管理和信息服務(wù)[2]。
隨著汽車和公路的日益智能化,越來越多的汽車和路邊基礎(chǔ)設(shè)施裝備了通信設(shè)備,整個車聯(lián)網(wǎng)以及針對車聯(lián)網(wǎng)的相關(guān)應(yīng)用發(fā)展已經(jīng)成為必然的趨勢[3]。車聯(lián)網(wǎng)可應(yīng)用在緊急信息通告、避免交通事故發(fā)生、實時交通路況監(jiān)測等多種方面。車聯(lián)網(wǎng)不僅可以保證輔助駕駛[4],還可以為車主提供豐富的娛樂服務(wù),如何實現(xiàn)車內(nèi)設(shè)備的多功能化也是近來的研究熱點。
同時,處理信息的方式也正在發(fā)生不斷改變。虛擬現(xiàn)實技術(shù)成為人類處理信息的重要產(chǎn)物,并且?guī)又畔r代新的發(fā)展。手勢識別作為一種重要的人機交互方式,受到了廣泛關(guān)注。近年來,基于Kinect的開發(fā)應(yīng)用成為人機交互領(lǐng)域的研究熱點之一。 手勢識別可以促進體感游戲、機器人控制、手語識別等諸多方面的應(yīng)用發(fā)展[5]。
通過對車聯(lián)網(wǎng)、LBS服務(wù)、手勢感應(yīng)三種技術(shù)的特點分析整合,各取其優(yōu),整合成綜合系統(tǒng),能夠使用手勢操作在車載系統(tǒng)進行操作,如音視頻播放等,對于車外聯(lián)網(wǎng)系統(tǒng)進一步完成信息交互、交通導(dǎo)航、衛(wèi)星定位等服務(wù)功能。
車聯(lián)網(wǎng)系統(tǒng)根據(jù)服務(wù)功能的不同大致可分為車內(nèi)系統(tǒng)和車外系統(tǒng)。車內(nèi)系統(tǒng)主要實現(xiàn)車內(nèi)設(shè)備的操作,車外系統(tǒng)要聯(lián)系到車外設(shè)備和空間,包括互聯(lián)網(wǎng)的通信等。車內(nèi)系統(tǒng)的功能包括音頻播放、視頻播放、照片查看、攝像功能,車外系統(tǒng)的功能包括導(dǎo)航定位、周邊信息檢索、地圖查看、三維圖顯示、衛(wèi)星圖查看等。
Kinect硬件作為傳感器采集信號,開發(fā)語言選用C#編程語言建立WPF工程,由XAML文件進行界面設(shè)計,CS文件進行算法設(shè)計和具體功能編程,這一切在PC端使用Windows7系統(tǒng)開發(fā)。聯(lián)網(wǎng)部分交互端利用百度車聯(lián)網(wǎng)API進行指定功能的調(diào)用,編寫相關(guān)代碼即可。
搭建好系統(tǒng)環(huán)境后,將所有功能操作集成到一個應(yīng)用軟件中,系統(tǒng)結(jié)構(gòu)總圖如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)總圖
本系統(tǒng)用到的硬件主要是Kinect,它是一種能獲取實時景深數(shù)據(jù)的3D體感攝影機。隨著現(xiàn)代生活中的攝像頭、重力傳感器、指紋識別等各類傳感器的廣泛應(yīng)用,虛擬現(xiàn)實技術(shù)有很大的發(fā)展空間。Kinect將這些技術(shù)加以融合,對于人機交互領(lǐng)域具有新的啟示意義。
Kinect傳感器設(shè)備可以搜集傳輸以下3種原始的數(shù)據(jù)信息(或稱為數(shù)據(jù)流),分別為深度流、圖像流、原始音頻流,這3種方式收集的數(shù)據(jù)流信息又分別對應(yīng)3種信息處理方式,即骨骼追蹤、語音識別、身份識別。動作識別的基礎(chǔ)是骨骼追蹤,動作可以抽象理解為骨骼關(guān)節(jié)點的狀態(tài)或運動序列。Kinect通過基于“像素級”的分析識別出人體部位,然后計算得到人體骨骼點,采集所有的骨骼點繪制“火柴人”。Kinect骨骼點分布圖[5-6]如圖2所示。

圖2 Kinect骨骼點分布圖
實現(xiàn)用手勢感應(yīng)操作系統(tǒng),要對某個動作進行定義,然后觸發(fā)相關(guān)的程序?qū)崿F(xiàn)相應(yīng)的功能。同時,骨骼數(shù)據(jù)流本身具有一定程度上的抖動,引起信號的噪聲,所以要進行優(yōu)化處理。一般從兩個角度考慮:1)設(shè)計大的噪聲閾值,使操作動作能夠嚴格地區(qū)分識別出來;2)設(shè)計平滑降噪算法,對噪聲壓縮處理,使識別范圍精確[7]。
例如,系統(tǒng)中將“左手與頭部呈45度角”這個動作定義為退出動作,實現(xiàn)的步驟如下。
1)定義骨骼點
Skeleton[] allSkeleton = new Skeleton[6];//定義骨骼數(shù)據(jù)數(shù)組
SkeletonPointhandRight=s.Joints[JointType.HandRight].Position; //定義右手節(jié)點
SkeletonPointhandLeft=s.Joints[JointType.HandLeft].Position;
//定義左手節(jié)點
SkeletonPoint head=s.Joints[JointType.Head].Position;
//定義頭部節(jié)點
SkeletonPointshouldCenter=s.Joints[JointType.ShoulderCenter].Position; //定義肩部節(jié)點
2)骨骼消抖
Smoothing = 0.5f; //平滑差值運算
Correction = 0.5f; //改正 糾正
Prediction = 0.5f; //改正修正值
JitterRadius = 0.05f; //極點半徑
MaxDeviationRadius = 0.04f; //偏差半徑
3)骨骼閾值
double escapeThreshhold = 0.5d; //偏差閾值為0.5 m
4)錄像數(shù)據(jù),分辨率640×480幀數(shù)30
This.sensor.ColorStream.Enable(ColorImageFormat.RgbResolution640×480Fps30);
5)動作觸發(fā)
bool IsEscape = head.Y-handLeft.Y>escapeThreshhold && ((handLeft.X-ead.X)*(handLeft.X-head.X)>(escapeThreshhold *escapeThreshhold)); //選擇該觸發(fā)動作為作為退出動作
Kinect的開發(fā)是通過Developer Toolkit Browser v1.8.0 (Kinect for Windows)軟件進行的。Kinect for windows SDK提供了非常龐大具體的軟件庫和工具。Kinect傳感器通過該軟件庫與應(yīng)用層程序API進行交互,交互過程如圖3所示。

圖3 Kinect軟件庫與API交互過程
車聯(lián)網(wǎng)用戶可以通過移動網(wǎng)絡(luò)訪問電子地圖,同時對地圖中添加數(shù)據(jù)層和興趣點,也豐富了服務(wù)內(nèi)容,用戶可以方便地查詢周邊信息(餐飲、住宿、導(dǎo)航、路徑等)來幫助自己做出更加合理可行的決策,這就是地理位置服務(wù)(Location Based Service)。通過調(diào)用HTTP API實現(xiàn)LBS應(yīng)用服務(wù)器的功能。
LBS模塊主要實現(xiàn)車外系統(tǒng)與互聯(lián)網(wǎng)的交互,包括如下功能:地圖查看(移動、放大、縮小),導(dǎo)航定位,3D全景圖切換,關(guān)鍵字檢索,熱力圖查看,衛(wèi)星圖切換。該功能主要通過html語言編寫,通過調(diào)用百度LBS開發(fā)者平臺提供的相關(guān)API實現(xiàn)數(shù)據(jù)的調(diào)用。
其中,關(guān)鍵字檢索功能需要進行文本輸入,但是對于手勢感應(yīng)來說較為困難。Kinect本身具有傳聲器陣列,使用語音輸入再配以現(xiàn)成的語音識別軟件可以較為輕易地實現(xiàn),達到良好的演示效果。同時語音輸入門檻低、執(zhí)行效率高,對于不同文化的人都較為適用,大大降低了打字輸入的工作量。
系統(tǒng)主界面模塊主要完成系統(tǒng)的初始化功能,即啟動傳感器使其能夠正常檢測手勢信號,同時設(shè)定良好的用戶界面,將其余各模塊的功能顯示在主頁面上供用戶選擇,并且實現(xiàn)相應(yīng)的觸發(fā)事件。系統(tǒng)初始化實現(xiàn)以下過程,首先判斷是否連接,進而接收用戶的深度流數(shù)據(jù)和骨骼流數(shù)據(jù),同時外加Kinect控件追蹤手勢信息,流程圖如圖4所示。

圖4 系統(tǒng)初始化流程圖
系統(tǒng)主界面的界面設(shè)計,考慮到手勢感應(yīng)操作范圍較大,所以采用WIN8的metro風(fēng)格,界面區(qū)分度大,易于辨認和操作,設(shè)定中同時考慮應(yīng)用的可擴展性,特意預(yù)留相應(yīng)的板塊接口,所以引入了翻頁滾動操作。
音樂播放模塊實現(xiàn)音頻文件的播放操作,具備基本的播放器功能。音樂播放模塊功能示意圖如圖5所示。音樂播放模塊用到的主要布局控件有以下幾個:1)KinectScrollViewer為滾動顯示控件,通過握拳操作可以實現(xiàn)磁性連接,滑行滾動運行,從而很容易地觀察歌曲曲目,選擇時進行停留選擇按鍵即可。2)Wrappanel為滑動軌道布局接口,將所需條目按一定順序擺放在該布局下即可。3)ProgressBar為進度條顯示控件,該控件可以用于顯示當(dāng)前進度,它會自動讀取歌曲時長。

圖5 音樂播放模塊功能示意圖
視頻播放模塊總的功能中基本與音頻播放模塊類似,代碼實現(xiàn)主要將文件操作中的音頻文件改成視頻文件。利用控件Media Element可以實現(xiàn)基本的音頻視頻播放功能,可以注冊相關(guān)的事件處理方法進行相應(yīng)操作。在手勢識別實現(xiàn)方面,調(diào)用工具箱中的控件如KinectRegion和KinectTitleButton等組件進行相關(guān)的替代操作,實現(xiàn)點擊觸發(fā)功能。
車載監(jiān)視模塊主要依托彩色攝像頭的數(shù)據(jù),實現(xiàn)車載情況的監(jiān)視,并且定時間隔7 s抓拍圖像,也可以實現(xiàn)自拍、幫拍等功能。該模塊用到了對時間的操作,分別是讀取用戶時間和設(shè)定定時器實現(xiàn)相關(guān)動作。
圖片查看模塊中,對于手勢感應(yīng)的圖片查看來說仍然以簡便設(shè)計為主,盡可能地保留必要的功能。在此僅保留翻頁操作即上一頁、下一頁、返回退出,分別用揮動左手、揮動右手、雙手過頂實現(xiàn)。使用骨骼數(shù)據(jù)點定義觸發(fā)動作實現(xiàn),骨骼數(shù)據(jù)可以通過Image控件顯示,從而節(jié)約了空間資源。
連接好Kinect,搭建環(huán)境、加載完成后,運行Developer Toolkit Browser v1.8.0 (Kinect for Windows)軟件,骨骼顯示調(diào)試界面如圖6所示。

圖6 骨骼顯示調(diào)試界面圖(截圖)
為測試Kinect手勢識別功能,進行了大量的實驗和調(diào)整。對影響手勢識別精度的光照因素進行了分析和實驗對比,旨在驗證本系統(tǒng)手勢識別效果。實驗中對環(huán)境光照條件進行改變,粗略地模擬實際應(yīng)用中,白天晴天車內(nèi)、白天陰雨天車內(nèi)、夜晚車內(nèi)燈開啟、黑夜車內(nèi)燈關(guān)閉(路上有路燈)4種應(yīng)用環(huán)境,利用照度測量儀測量照度,其他條件保持理想不變,測試手勢識別成功率。從表1(不同光照條件下手勢識別成功率對比)中可以看出,前3種應(yīng)用環(huán)境手勢識別成功率基本達到使用要求。
表1 不同光照條件下手勢識別成功率對比

照度范圍/lx模擬應(yīng)用環(huán)境實驗次數(shù)識別成功次數(shù)成功率/%700~800晝-晴天車內(nèi)504794100~200晝-陰天車內(nèi)50448840~60夜-車內(nèi)燈開5039785~15夜-車內(nèi)燈關(guān)5000
另外,系統(tǒng)界面和多媒體功能方面,打開應(yīng)用軟件主界面,可以通過手勢感應(yīng)進行功能選擇。經(jīng)測試,能夠?qū)崿F(xiàn)預(yù)期的音頻播放、視頻播放、照片查看、攝像拍照、LBS服務(wù)等功能。圖7為應(yīng)用軟件主界面測試效果圖,圖8為LBS功能界面測試效果圖。系統(tǒng)能夠通過麥克風(fēng)語音輸入的方式,獲得要搜索的地點信息,然后通過手勢,實現(xiàn)進一步的擴大、縮小功能。系統(tǒng)基本能夠?qū)崿F(xiàn)預(yù)期的功能,達到良好的試驗效果。

圖7 應(yīng)用軟件主界面測試效果圖(截圖)

圖8 LBS功能界面測試效果圖(截圖)
經(jīng)過整合調(diào)試,可以達到目標(biāo)效果,通過手勢感應(yīng)實現(xiàn)相應(yīng)功能。可以脫離一定的設(shè)備,比如鼠標(biāo)、數(shù)據(jù)手套、鍵盤等,讓人體完全發(fā)揮其輸入功能,人機交互更加方便快捷。界面顯示部分采用Metro風(fēng)格,既方便手勢傳感操作,又可以明顯顯示,而且這種顯示可以方便地應(yīng)用到各種顯示設(shè)備上。相對于其他利用鍵盤等輸入方式的車載電子設(shè)備,本設(shè)計利用手勢識別輸入能夠為用戶帶來更方便的體驗。同時,為Kinect在車聯(lián)網(wǎng)等多領(lǐng)域的實際應(yīng)用打下基礎(chǔ)。
在有些方面還有待完善,手勢感應(yīng)實時操作仍存在一定的誤差和延時。另外,由于LBS對個人權(quán)限的部分限制,目前實現(xiàn)的LBS服務(wù)功能還不是非常豐富。
[1] 劉小洋,伍民友. 車聯(lián)網(wǎng):物聯(lián)網(wǎng)在城市交通網(wǎng)絡(luò)中的應(yīng)用[J]. 計算機應(yīng)用,2012(4):900-904.
[2] GERLA M, LEE E K, PAU G, et al. Internet of vehicles: from intelligent grid to autonomous cars and vehicular clouds[C]//Proc.2014 IEEE World Forum on Internet of Things (WF-IoT). [S.l.]:IEEE, 2014: 241-246.
[3] 程剛,郭達. 車聯(lián)網(wǎng)現(xiàn)狀與發(fā)展研究[J]. 移動通信,2011(17): 23-26.
[4] 何蔚.面向物理網(wǎng)時代的車聯(lián)網(wǎng)研究與實踐[M].北京:科學(xué)出版社,2013.
[5] 余濤.Kinect應(yīng)用開發(fā)實戰(zhàn):用最自然的方式與機器對話[M].北京:機械工業(yè)出版社,2013.
[6] 陳翰雄,黃雅云,劉宇,等. 基于Kinect的空中手勢跟蹤識別的研究與實現(xiàn)[J]. 電視技術(shù),2015, 39(21): 91-94.
[7] 吳國斌,李斌,閻驥洲. Kinect人機交互開發(fā)實戰(zhàn)[M].北京:人民郵電出版社,2013
盧亞軍(1991— ),女,碩士生,主研計算機控制與應(yīng)用、無線定位技術(shù);
李天松(1975— ),碩士生導(dǎo)師,主研無線定位、通信和導(dǎo)航等方面;
黃艷虎(1991— ),碩士生,主研通信網(wǎng)絡(luò)、室內(nèi)可見光定位技術(shù)。
責(zé)任編輯:薛 京
Design of gesture recognition aided system in vehicle network
LU Yajun , LI Tiansong , HUANG Yanhu
(SchoolofInformationandCommunication,GuilinUniversityofElectronicandTechnology,GuangxiGuilin541004,China)
The Internet of vehicles, as an important intersection of the Internet of things and intelligent vehicles, attracts lots of attention. By analyzing and integrating three kinds of technologies, the based service location service, gesture sensing technology and the Internet of vehicles, the integrated system can be used to realize the multimedia function and the location service in the vehicle system. Using Kinect as a gesture sensing equipment, after the establishment of WPF engineering, the design of interface and specific functional programming, the design is achieved. To achieve LBS services, the relevant API provided the LBS developer platform is used to call the data. Test results show that the system is functional, flexible and practical with a good application prospect.
Kinect; Internet of vehicle; gesture sense; LBS
盧亞軍,李天松,黃艷虎.基于Kinect的車載手勢識別輔助系統(tǒng)設(shè)計[J]. 電視技術(shù),2017,41(2):50-53. LU Y J , LI T S , HUANG Y H. Design of gesture recognition aided system in vehicle network [J]. Video engineering,2017,41(2):50-53.
TN368.2
B
10.16280/j.videoe.2017.02.011
廣西高校科學(xué)技術(shù)研究項目(KY2015ZD042);桂林電子科技大學(xué)研究生教育創(chuàng)新計劃資助項目(YJCXS201520);桂林電子科技大學(xué)創(chuàng)新訓(xùn)練計劃資助項目(20151059512)
2016-03-13