鄒靈果,張美花
(1.廈門海洋職業(yè)技術學院,福建 廈門 361009;2.廈門華天涉外職業(yè)技術學院,福建 廈門 361100)
人機交互技術研究的是人與計算機以及二者之間的互相影響,是二者交換、傳遞信息的對話接口與媒介。自“人機緊密共棲”的觀點提出以來,這種技術得到了長足的發(fā)展,由最初的依賴鍵盤、鼠標逐漸發(fā)展至依靠各種觸摸屏、傳感器等交互設備。然而以上手段仍然是需要依靠一些中間媒介的,并不是一種自然的人機交互方式。同時隨著無線通訊技術的發(fā)展與網(wǎng)絡的逐漸普及,圖形界面交互方式已經(jīng)無法滿足人們的需求,用戶也更希望在進行人機交互時,使用更加自然、快捷、非接觸式的人機交互方式,使人機交互面臨極大機遇和挑戰(zhàn)。人機交互也是在這種背景下從最初的“人適應計算機”到后來的“計算機適應人”再到發(fā)展方向變?yōu)椤耙匀藶橹行摹?朝著更加自然的方向發(fā)展。此時,多通道交互技術誕生了。該技術主要是將表情、眼神、手勢、語音等自然性的交互方式作為人機交互方式。當前該技術主要包括語音識別、手勢識別等層面。如對交互式三維臉部表情動畫合成設計是建立在特征分析和信息融合的基礎上完成的,構建數(shù)字媒體交互式三維臉部表情動畫圖像采樣模型,在三維信息特征提取的基礎上建立信息融合模型[1]。其中手勢作為人類與生俱來的一種動作姿態(tài),是一種有特定意識的動作,以靈活多變、形象、自然的特點,使手勢識別成為該技術中的一個研究熱點。對于手勢識別技術的研究,目前主要是以計算機視覺為基礎,取得了相當豐富的研究成果。其中袁帥等[2]針對傳統(tǒng)手勢檢測算法存在的問題,提出一種基于改進YOLOV3與貝葉斯分類器的手勢識別方法,并驗證了算法的有效性。該方法在YOLOV3網(wǎng)絡中引入了空間變換網(wǎng)絡來處理手勢信息。對網(wǎng)絡提取出的特征進行降維操作后,引入貝葉斯分類器來進行手勢分類。王銀等[3]提出了一種基于改進TinyYOLOv3算法的手勢識別方法。該方法增加網(wǎng)絡層數(shù)以提取更豐富的語義信息,并使用深度可分離卷積代替?zhèn)鹘y(tǒng)卷積,通過特征融合減小網(wǎng)絡模型大小,并采用CIoU損失改進邊界框坐標預測損失,融合通道注意力模塊提高定位精度和識別準確率。同時利用數(shù)據(jù)增強方法避免過擬合,通過超參數(shù)優(yōu)化和先驗框聚類等方法加快網(wǎng)絡收斂速度。以上方法在應用中存在室外手勢識別準確率較低的問題。孫蘭蘭[4]研究了一種專門針對復雜場景中的多姿態(tài)人臉識別方法。該方法在采集圖像數(shù)據(jù)的基礎上,通過歸一化處理輸出層次特征,構建知識蒸餾損失函數(shù)。然后根據(jù)角間隔區(qū)間概率,使用三維地標檢測方法實現(xiàn)了人臉關鍵點識別。杜夢麗等[5]提出一種基于多尺度可變曲率Gabor濾波器的指靜脈圖像濾波方法,可以從中獲取指靜脈圖像特征。為了優(yōu)化人機交互圖像手勢識別性能,設計一種基于數(shù)理統(tǒng)計特征的人機交互圖像手勢識別方法。
對人機交互圖像實施一系列預處理,包括圖像灰度化處理、二值化處理、平滑處理以及邊緣檢測和輪廓提取處理。
由于彩色圖像有著較大的信息容量,會帶來處理難度大與處理速度慢的問題,因此對其實施灰度化轉(zhuǎn)換。圖像灰度化處理的轉(zhuǎn)換如式(1)所示。
(1)
式(1)中,H指的是灰度人機交互圖像的色相;?是指彩色人機交互圖像的閾值;G表示彩色人機交互圖像的綠色通道;B表示其藍色通道;S指的是灰度人機交互圖像的飽和度;R表示彩色人機交互圖像的紅色通道;V代表灰度人機交互圖像的色明度[6]。
指彩色人機交互圖像的閾值?的計算公式具體如式(2)所示。
(2)
使用中值濾波技術實施圖像平滑處理,濾除圖像中的椒鹽等噪聲,具體操作如式(3)所示。
(3)
式(3)中,hHSV(a,b)指的是灰度人機交互圖像;(a,b)是指人機交互圖像坐標;o代表中值濾波模板窗口中全部像素數(shù)的集合,所選用的中值濾波模板為9*9窗口大小的模板;pHSV(a,b)是指中值濾波后的結果圖[7]。
在灰度化處理后,人機交互圖像中共有256個灰度級,通過二值化處理使其僅保留0、255這2個灰度級,使人機交互圖像呈現(xiàn)黑白的視覺效果[8]。
用代表二值化處理閾值,則二值化圖像的表達式如式(4)所示。
(4)
式(4)中,r(a,b)代表pHSV(a,b)的像素群。
選取不同的二值化處理閾值會帶來不同的圖像處理結果,使用Otsu算法選取閾值。操作步驟如下。
(1)計算人機交互圖像整體的灰度平均值,具體如式(5)所示。
H=Q0H0+Q1H1
(5)
式(5)中,Q0代表目標手勢圖像的平均灰度值;Q1是指背景手勢圖像的平均灰度值;H0指的是整體人機交互圖像中目標圖像所占的像素點比例;H1代表整體人機交互圖像中背景圖像所占的像素點比例[9]。
(2)遍歷兩部分圖像間的分割閾值,用Z來表示,并計算兩部分圖像的方差如式(6)所示。
v=Q0(H0-H)2+Q1(H1-H)2
(6)
(3)當v取最大值時代表二者之間的差異最大,此時的Z即為k的理想值。
使用Sobel算子實施邊緣檢測處理,具體步驟如下。
(1)對像素點四個方向?qū)嵤┗叶燃訖嗵幚?
(2)利用閾值對加權結果實施處理,獲取邊緣圖像。
通過八鄰域搜索法提取輪廓,提取步驟具體如下。
(1)在圖像中尋找一個像素點,當其為白,不考慮該像素點;當其為黑,標簽其相鄰點同樣是黑色時,判斷該點是內(nèi)部點;
(2)直接刪除內(nèi)部點;
(3)不斷重復步驟(1)、(2),直到掏空全部內(nèi)部點,獲取圖像輪廓線[10]。
通過OpenCV提取二值化處理后的人機交互圖的數(shù)理統(tǒng)計特征-Hu矩,其中包括七個矩,存在平移不變形、旋轉(zhuǎn)不變形以及尺度不變形。其中含有圖像對稱性、重心、面積等數(shù)理統(tǒng)計特征,其中前四個矩主要描述手勢的主軸方向角、旋轉(zhuǎn)半徑、圖像橢圓以及面積,后三個矩主要描述的是手勢的細節(jié),即圖像對稱性、重心、中心距[11]。
在OpenCV中,主要使用兩個函數(shù)求取Hu矩特征,包括HuMoment與Moment[12]。Hu矩的提取步驟具體如下。
(1)初始化定義變量;
(2)通過Moment求得圖像的三階中心矩與二階中心矩;
(3)利用HuMoment求得Hu矩特征,具體如式(7)所示。
(7)
式(7)中,ξfg指的是f+g階的中心矩歸一化處理結果,如式(8)所示。
(8)
式(8)中,Ψfg指的是各階中心矩;Ψ00是指零階中心矩;v指的是平均階數(shù),計算結果如式(9)所示。
(9)
應用提取的Hu矩實現(xiàn)手勢的識別。
設計基于改進YOLO-V2網(wǎng)絡的手勢識別模型,實現(xiàn)人機交互圖像手勢識別,模型的輸入為人機交互圖、提取的Hu矩以及提取的手勢輪廓。在YOLO-V2網(wǎng)絡的改進中,主要調(diào)整其骨干網(wǎng)絡,以提升定位目標物體的準確率,并改變輸入圖像大小,使手勢識別模型檢測精度獲得提升。改進后的骨干網(wǎng)絡模型如圖1所示。
圖1 改進后的骨干網(wǎng)絡模型
具體改進步驟如下。
(1)數(shù)據(jù)預處理,首先對人機交互圖進行預處理,包括圖像灰度化處理、二值化處理、平滑處理以及邊緣檢測和輪廓提取處理等操作,以提高模型的訓練效果和泛化能力。同時利用已經(jīng)提取的Hu矩和手勢輪廓信息,將其與圖像進行結合,形成模型的輸入。
(2)骨干網(wǎng)絡調(diào)整,傳統(tǒng)的YOLO-V2網(wǎng)絡使用Darknet-19作為骨干網(wǎng)絡。在改進過程中,采用Darknet-19更加先進的骨干網(wǎng)絡進行調(diào)整,以提升定位目標物體的準確率和穩(wěn)定性,以提升定位目標物體的準確率和穩(wěn)定性。
(3)輸出層調(diào)整,傳統(tǒng)的YOLO-V2網(wǎng)絡將輸入圖像分割成7×7的網(wǎng)格,并通過候選框的數(shù)量進行預測。而在改進中,將模型輸出尺寸由7×7改為16×16,從而增加了預測anchor box的數(shù)量。具體來說,改進后的模型可以預測的anchor box數(shù)量為16×16×N個[13]。
基于Faster R-CNN模型構建手勢識別模型的anchor機制,以生成anchor box。構建的anchor機制具體如下。骨干網(wǎng)絡輸出數(shù)據(jù)的大小為W×W,將輸出數(shù)據(jù)劃分為網(wǎng)格形式,在各網(wǎng)格中心點處生成多個anchor box。待檢測圖像的中心所落入的網(wǎng)格負責對該圖像進行檢測。生成的anchor box相當于標桿,能夠?qū)㈩A測框出現(xiàn)的范圍直接限定在附近,從而大幅減少模型的計算量[14]。
其中anchor box大小的設置是利用K-means聚類算法來實現(xiàn)的,利用K-means聚類算法學習訓練樣本,通過對距離函數(shù)進行更改,來自動尋找更加適合樣本的anchor box[15]。
anchor box的生成總數(shù)則可以計算如式(10)所示。
υ=W×W×α
(10)
式(10)中,α指的是通過anchor機制生成的anchor box個數(shù)[16]。
(4)訓練過程,使用改進后的YOLO-V2網(wǎng)絡對手勢識別任務進行訓練。訓練過程中,使用損失函數(shù)進行模型優(yōu)化,本文將模型的損失函數(shù)設置為均方誤差形式,具體如式(11)所示。
(11)
此外,考慮到手勢識別需要對手部區(qū)域進行較為精細的檢測和定位,因此本文在改進過程中,通過增加輸入圖像的分辨率,提高手勢模型的檢測精度。
手勢識別模型的訓練過程為,利用前向傳播計算損失值[18];利用反向傳播實施模型權重優(yōu)化,使損失值逐漸收斂。
(5)模型評估與調(diào)優(yōu),訓練完成后,使用測試集數(shù)據(jù)進行推理,并評估模型性能。根據(jù)評估結果,根據(jù)需要對模型進一步的調(diào)優(yōu)。調(diào)優(yōu)完畢后模型的運作流程具體如圖2所示。
圖2 訓練完畢后模型的運作流程
通過以上流程即可實現(xiàn)人機交互圖像的手勢識別。
通過設計的基于數(shù)理統(tǒng)計特征的人機交互圖像手勢識別方法實施手勢識別實驗,測試其手勢識別精度。具體步驟如下。
(1)實驗數(shù)據(jù)采集。將樹莓派與USB攝像頭連接起來作為實驗數(shù)據(jù)集的采集設備,具體如圖3所示。
圖3 數(shù)據(jù)集采集設備
利用采集設備拍攝數(shù)字手勢的視頻序列,接著將其轉(zhuǎn)換成連續(xù)圖片形式,共收集了不同手型、不同角度、不同環(huán)境、不同光照下的3000張手勢圖片,將其分為5組,分別為數(shù)字1、2、3、4、5組,各組600張圖片。
(2)對采集的手勢數(shù)據(jù)集進行擴充。該步驟目的是提升設計方法應對不同光照、不同角度、不同環(huán)境下識別的魯棒性。通過圖片旋轉(zhuǎn)、翻轉(zhuǎn)等方式生成新的圖片,完成手勢數(shù)據(jù)集的擴充。最終的實驗數(shù)據(jù)集中共有15000張手勢圖片,均為RGB類型,分為5組,分別為數(shù)字1、2、3、4、5組,各組3000張圖片。
(3)對最終實驗數(shù)據(jù)集實施一系列預處理,并標注各圖像的手勢信息。
(4)提取各圖像的Hu矩。
(5)基于改進YOLO-V2網(wǎng)絡的手勢識別模型實施手勢識別。具體識別過程為:利用改進的YOLO-V2網(wǎng)絡對手勢圖像庫進行訓練,通過反向傳播算法不斷優(yōu)化網(wǎng)絡參數(shù),提高網(wǎng)絡的準確率和泛化能力。將訓練好的模型應用于手勢識別任務中,輸入手勢圖像并輸出相應的手勢類別和位置信息。
在利用模型識別圖像手勢時,首先對構建的模型實施訓練,訓練后的損失值如圖4所示。
圖4 訓練后的損失值
由圖4可知,此時損失值已經(jīng)開始收斂,利用訓練完畢后的模型實施最終實驗數(shù)據(jù)集的手勢識別。測試過程中,將基于改進貝葉斯分類器和YOLOV3與基于改進TinyYOLOv3算法的手勢識別方法作為對比方法,共同進行手勢識別準確率的測試,并分別用方法①、方法②表示這兩種方法。兩種對比方法的測試過程與本文方法類似,僅為步驟5中的識別和訓練過程不同。
設計方法與方法①、方法②對于五組實驗數(shù)據(jù)的室內(nèi)與室外手勢識別準確率測試結果如表1所示。
表1 室內(nèi)與室外手勢識別準確率測試結果
根據(jù)表1測試結果,設計方法在室內(nèi)和室外的手勢識別準確率均高于兩種對比方法,說明其手勢識別性能較好。同時可以看出其室內(nèi)手勢識別準確率高于室外手勢識別準確率,這是由于室外環(huán)境比較復雜,會降低手勢識別的準確率。
設計方法與方法①、方法②對于五組實驗數(shù)據(jù)的室內(nèi)與室外手勢識別時間結果,如圖5所示。
(a)室內(nèi)環(huán)境
由圖5可知,整體來看室外環(huán)境的識別時間高于室內(nèi)環(huán)境中的手勢識別時間,其主要原因可能是室外光照等干擾造成的負面影響。無論是哪種環(huán)境,設計方法獲取的室內(nèi)和室外手勢識別時間均低于兩種對比方法,證明了設計方法有著很強的實用性。
識別速度是一種用于衡量圖像或視頻處理算法性能的指標,通常以幀/秒(Frames Per Second,簡稱FPS)來表示。它表示在單位時間內(nèi)能夠處理的圖像或視頻幀數(shù)。在手勢識別領域,識別速度表示算法能夠處理和分析的手勢圖像數(shù)量。較高的識別速度意味著算法能夠更快地處理圖像,從而實時地對手勢進行準確的識別和分類。為此,對比設計方法與方法①、方法②對于五組實驗數(shù)據(jù)的識別速度,結果如表2所示。
表2 識別速度測試結果
根據(jù)表2測試結果可知,設計方法展示了更快的識別速度,相對于改進貝葉斯分類器和YOLOV3以及改進TinyYOLOv3算法,能夠更快地處理和分析手勢圖像。這是因為數(shù)理統(tǒng)計特征方法不涉及復雜的模型訓練和計算,而是通過對統(tǒng)計特征進行手動計算和分類來實現(xiàn)識別任務,從而提高了識別速度。
手勢識別主要是利用攝像頭捕獲手勢視頻內(nèi)容后的分析工作。目前手勢識別的應用領域已經(jīng)擴展至智能生活領域、休閑娛樂領域以及機器人控制領域等。設計了一種基于數(shù)理統(tǒng)計特征的手勢識別方法,通過識別結果實現(xiàn)了與機器人之間的人機交互,今后將在其他領域?qū)ζ浣换バ阅苓M行測試。在研究中,由于時間與精力的限制,使取得的研究成果仍存在很多細節(jié)問題,今后將繼續(xù)完善各種細節(jié)。