張博
(大唯機電安裝工程(蘇州)有限公司,江蘇蘇州,215000)
人體姿態行為識別是機器視覺領域重要的研究方向,在智能家居、醫療、安保、和體育運動等領域有著廣泛的應用前景[1]。人體姿態識別通常是利用經過預處理的運動視頻片斷或包含人體動作的圖像進行識別。蘇超[2]提出首先通過高斯濾波去除圖像中的高斯噪聲,然后結合注意機制的目標檢測算法檢測目標學生在圖像中的位置。然后,通過改進的openpose模型從檢測到的圖像中提取人體骨骼關節點的坐標,最后利用st-支持向量機分類器對得到的關節坐標進行分類,從而快速準確地識別學習者的行為狀態。郭天曉等[3]首先建立簡化的人體骨架模型,利用人體姿態估計技術提取骨架模型中各關節點的坐標信息;其次,采用人體中心投影法提取動作特征區域,消除人體整體位移對動作識別的影響;最后,以特征區域編碼作為特征向量,輸入多分類器進行動作識別。同時,通過優化特征向量的長度來優化識別率和識別速度。王萌萌[4]提出了提出了一種基于時空網絡的行為分類算法模型。將傳統的圖卷積網絡應用于人的行為識別,引入時間卷積進行深度學習的行為分析。Rijun Liao等人[5]提出一種新的模型PoseGait,利用卷積神經網絡從圖像中估計出的人體三維姿態作為步態識別的輸入特征,同時從三維姿態中設計時空特征來提高識別率。Hanguen Kim等人[6]提出了僅使用深度信息的人體姿態估計和手勢識別算法,該算法是通過比較輸入關鍵幀和注冊手勢的關鍵幀來實現的,產生最小比較誤差的手勢被選擇為識別手勢,因此不需要事先了解人體模型。
實驗流程框架如圖1所示。

圖1 流程框架圖
(1)人體姿態庫的采集。人體姿態庫決定著訓練模型的優劣,對于實驗結果至關重要,本文選取HMDB51運動數據庫中四類人體姿態視頻 :跑(run)、揮手(wave)、倒立(handstand)和跳(jump),將視頻按幀讀取然后調整大小為120*180的圖片。在得到的所有圖片中選出包含人體完整輪廓且人體姿態特征清晰明顯的1500張圖片作為最終的訓練樣本,將不同種類的人體姿態分別保存在文件夾中,建立標簽供后面支持向量機訓練用。
(2)圖像前置處理。圖像前置處理部分主要包括對于人體姿態ROI的提取和歸一化兩部分。
1)人體姿態ROI的提取。首先對圖像進行灰度化,單通道圖像能夠減少計算量便于特征提取,選取伽馬系數為0.5,進行伽馬校正處理,削弱光強和顏色等對于后期HOG特征提取的干擾。然后對灰度化后的圖像進行中值濾波,高斯濾波操作用以消除椒鹽噪聲和高斯噪聲,降低訓練樣本中噪音對于結果的影響。
降噪以后對于圖像進行二值化,閾值分割采用的最大類間方差作為選取閾值的方法,能夠很好的將人體姿態輪廓從圖片中提取出來,因為人與周圍環境像素值具有較大差異,提取輪廓后置人體姿態區域像素值為255,背景區域像素值為0。最后對圖像進行形態學操作,本文采用頂帽操作方式,頂帽操作可以對于圖像中人體姿態區域中像素值較低的區域填充上該像素點周圍8個像素點中像素值最大的部分即像素值置為255,從而使得人體輪廓清晰完整。如圖2是人體姿態區域分割結果。

圖2 人體姿態與背景分割提取
2)人體運動區域歸一化。首先對形態學處理結果(目標人體區域)進行標記,統計標記區域的面積分布,對于標記區域的像素值進行歸一化處理。
3)HOG特征提取。對于歸一化樣本,對四類樣本中的所有圖像依次分批處理:首先對顏色空間進行歸一化,分別計算每個像素在水平方向和垂直方向上的梯度值和角度值,總的梯度值為水平梯度和垂直梯度值的L2范數,然后再將梯度分布直方圖歸一化并且將調整后尺寸大小為64*128的灰度圖像劃分為8*8像素單元,并對180*128灰度圖像進行分割。平均分成9等分,9個方向的梯度直方圖以每個單元為單位計數,2*2個單元構成一個交替塊,每個塊具有16*9維特征,每個圖像表示為3780維特征。最后得到梯度方向直方圖特征,并將其送入支持向量機進行訓練。
4)支持向量機分類器的訓練。支持向量機分類器用于對跑步、倒立、揮手和跳躍等數據集進行分類,但是支持向量機最早是解決二值分類問題的有效方法,而訓練兩種以上的人體姿態HOG特征數據集是一個多類分類問題,因此需要將支持向量機擴展到多類分類問題,即需要利用支持向量機中的核方法來解決多分類問題。本文采用openCV軟件庫來進行訓練以實現上述功能。在每次訓練中,訓練集中的樣本數應至少占總樣本數的60%,這樣訓練后的模型就不會欠擬合,同時將剩余的樣本作為測試集。在確定每個訓練集中的樣本數后,取50次訓練后的平均值作為識別率。最后計算了每種類型樣本的平均識別率。
(3)采用支持向量機分類器對數據集中跑步、倒立、揮手和跳躍四類HOG特征數據進行訓練。由于是多分類問題故需要采用核函數將數據集映射到更高維空間中來進行分類,該實驗分別采用線性核函數,高斯核函數以及拉普拉斯核函數來進行試驗。
最終得到實驗結果如表1,表2,表3所示。

表1 線性核函數識別率

表2 高斯核函數識別率

表3 拉普拉斯核函數識別率
選擇線性核函數進行多次訓練后,各類樣本的測試結果如表1所示,可知當線性核函數被選為支持向量機的核函數時,當訓練樣本數占樣本總數的比例相同時,具有跑步和倒立這兩種特征的圖像擁有較高的識別率,揮手和跳躍識別率較低。原因是跑步和倒立的HOG特征和其他特征相比,在支持向量機映射的高維空間中歐式距離較遠容易區分,在訓練樣本類型不變的情況下,訓練樣本占樣本總數的比例越高,識別精度越高,預測效果越好。選擇高斯核函數進行多次訓練后,每個樣本的測試結果如表2所示??梢钥闯?,在選擇高斯核函數作為支持向量機的核函數進行實驗時,跑步和倒立得到的實驗結果依舊好于揮手和跳躍。然而,高斯核函數對于線性不可分的情況具有很強的魯棒性,因此用高斯核函數進行分類識別的準確率在4項人體姿態分類中比用線性核函數進行分類識別的準確率均要高。采用拉普拉斯核函數得到的結果具有和高斯核函數整體相近的識別準確率。因此,有必要選擇高斯核函數作為支持向量機姿態識別的核函數,亦可以滿足高識別準確率的要求,同時,實驗還表明,支持向量機在處理人體姿態識別問題上具有識別精度高、簡單快速等優點,適合在工業生產實際中使用。綜合上述實驗結果,利用HOG特征結合支持向量機分類器用于人體姿態識別是具有可行性的。
針對不同情況下人體姿態在空間幾何結構上的差異,本文在openCV中編程進行試驗,利用梯度方向直方圖表示不同的人體姿態特征,利用支持向量機分類器實現對不同人體姿態的分類識別。最后,還比較了線性核函數、高斯核函數和拉普拉斯核函數應用到支持向量機分類器時對不同人體姿態分類結果的影響。實驗結果表明,將HOG特征與支持向量機分類器相結合,可以有效地實現日常人體姿態的識別,具有良好的識別效果。
利用支持向量機分類器針對不同的人體姿態樣本進行訓練時,可以發現支持向量機分類器映射到高維空間中所需的核函數以及其參數的不同設置對人體姿態識別率有很大影響。當支持向量機分類器訓練不同的人體姿態樣本時,支持向量機分類器核函數的選取和核函數參數的不同設置對人體姿態識別率有很大的影響。同時樣本的數目與識別的準確率呈現正相關,收集更多的訓練樣本種類和數目,是得到一個較高準確率的前提。如何根據人體姿態樣本的種類和數量,選擇合適的核函數及其參數,目前尚未有合適的基礎研究成果來提供核函數選取準則,更多的是依靠試驗方法選取,因此是利用HOG特征和支持向量機識別日常人體姿態尚需進一步的研究。