手勢識別(二)--單目手勢識別演算法總結
一個基於視覺手勢識別系統的構成應包括:影象的採集,預處理,特徵提取和選擇,分類器的設計,以及手勢識別。其流程大致如下:
上面識別過程,再分解為:
其中有三個步驟是識別系統的關鍵,分別是預處理時手勢的分割,特徵提取和選擇,手勢跟蹤,以及手勢識別採用的演算法。
不管是手勢檢測,或者手勢跟蹤,識別,特徵提取和選擇是關鍵:
手勢本身具有豐富的形變,運動以及紋理特徵,選取合理的特徵對於手勢的識別至關重要。目前 常用的手勢特徵有:輪廓、邊緣、影象矩、影象特徵向量以及區域直方圖特徵等等。
《基於計算機視覺的手勢識別研究》中提到了多尺度模型,它就是採用此模型提取手勢的指尖的數量和位置,將指尖和掌心連線,採用距離公式計算各指尖到掌心的距離,再採用反餘弦公式計算各指尖與掌心連線間的夾角,將距離和夾角作為選擇的特徵。對於靜態手勢識別而言,邊緣資訊是比較常用的特徵。
《基於幾何特徵的手勢識別演算法研究》中採用的HDC提取關鍵點的識別演算法,基於用八方向鄰域搜尋法提取出手勢影象的邊緣,把影象的邊緣看成一條曲線,然後對曲線進行處理。
《基於視覺的手勢識別及其在人機互動中的應用》利用方向直方圖作為手勢識別的特徵向量。雖然方向直方圖具有平移不變性,但它不具有旋轉不變性。同一手勢影象,經過旋轉後,直方圖會不同。而且方向直方圖不具有唯一性,即不同的手勢影象可能會有相似的方向直方圖。
在進行特徵選取時我們可以考慮結合多種特徵,在《基於計算機視覺的手勢識別研究中》提出了多尺度模型與矩描繪子相結合的演算法,將指尖和重心連線,採用距離公式計算各指尖到重心的距離,再採用反餘弦公式計算各指尖與重心連線間的夾角,將距離和夾角作為選擇的特徵,從而提高了識別正確率,並減少了識別時間。《基於幾何特徵的手勢識別演算法研究》採用幾何矩和邊緣檢測的識別演算法
可以看出適當的採用多種特徵結合的演算法,可以在計算的複雜度以及精確度上有所提高。總體來說:
手勢檢測(手勢分割):
主要受複雜背景,遮擋,直接光源的亮度變化,外部反射,
常見手部檢測特徵選取:
基於膚色,基於表觀,基於模型三種手部檢測。建議,先背景去除,在結合多特徵,如膚色+紋理(類Harr)+ADABoost做手部檢測,HOG+PCA(設計分類器,左手,右手,雙手交叉)做左右手區分。
一般來講,分割方法大致分為以下三類:
一是基於直方圖的分割,即閾值法,通常取灰度直方圖的波谷作為閾值。(《hausdorff在距離在手勢識別中的運用》採用了閾值法。)
二是基於區域性區域資訊的分割,如基於邊緣和基於區域的方法;(《基於幾何特徵的手勢識別演算法研究》採用了邊緣檢測方法。)
三是基於顏色等一些物理特徵的分割方法。(《複雜背景下基於單目視覺的靜態手勢識別》採用了基於顏色空間的膚色聚類法,《基於視覺的手勢識別及其在人機互動中的應用》採用了膚色濾波法。)。
每種方法都有自己的優點,但也存在一定的問題,對於簡單背景的影象,採用閾值法能達到不錯的效果,對於複雜的影象,單一的閾值不能得到良好的分割效果。採用邊緣提取方法時,若目標物和背景灰度差別不大時,則得不到較明顯的邊緣。可以採用多種方法相結合的影象處理方法,例如對採集的影象先進行差影處理,然後進行灰度閾值分割,或者對影象按區域分成小塊,對每一塊進行設定閾值。
手勢分割是手勢識別系統中的關鍵技術之一,它直接影響系統的識別率,目前的分割技術大都需要對背景,使用者以及視訊採集加以約束。其受背景複雜度和光照變化的影響最大,可以在這些方面進行改進。
手勢跟蹤:
受快速運動,雙手遮擋,非剛體,非線性,非高斯,多模態。通俗的講,就是 手勢非剛體運動,受到縮放,形變,缺少,模糊,旋轉,亮度,視角等因素影響,建議,基於膚色的SIFT+膚色(ROI)+HOG,採用MeanShift
常見跟蹤演算法選取:
粒子濾波,MeanShift,基於Sift特徵,基於EKF,基於SVM,基於模板匹配,
手勢識別:
受尺度,角度,光照,同一手勢每次演示的差異,分靜態,動態手勢:
目前基於單目視覺的靜態手勢識別技術主要有三大類:
第一類為模板匹配技術,這是一種最簡單的識別技術。它將待識別手勢的特徵引數與預先儲存的模板特徵引數進行匹配,通過測量兩者之間的相似度來完成識別任務。《Hausdorff距離在手勢識別中的運用》中利用Hausdorff距離模板匹配思想來實現手勢的識別。將待識別手勢和模板手勢的邊緣影象變換到歐式距離空間,求出它們的Hausdorff距離或修正Hausdorff距離。用該距離值代表待識別手勢和模板手勢的相似度。識別結果取與最小距離值對應的模板手勢。
第二類為統計分析技術,這是一種通過統計樣本特徵向量來確定分類器的基於概率統計理論的分類方法。這種技術要求人們從原始資料中提取特定的特徵向量,對這些特徵向量進行分類,而不是直接對原始資料進行識別。在《基於計算機視覺的手勢識別研究》中雖然也採用了Hausdorff距離演算法,但並未提出模板手勢,而是對於每幅影象提取出指尖和重心特徵,然後計算出距離和夾角,對於不同手勢分別進行距離和夾角的統計,得到其分佈的數字特徵,根據基於
最小錯誤率的貝葉斯決策得到用於分割不同手勢的距離和夾角的值。得到分類器以後,對於採集的手勢影象進行分類識別。文中的多尺度模型和矩描繪子相結合的演算法也是運用了統計分析技術。
第三類為神經網路技術,這種技術具有自組織和自學習能力,具有分佈性特點,能有效的抗噪聲和處理不完整模式以及具有模式推廣能力。採用這種技術,在識別前都需要一對神經網路的訓練(學習)階段。
其中比較常用的是BP神經網路。BP ( Error Back Propagation Neural Network 誤差反向傳播神經網路)由它是一種能向著滿足給定的輸入輸出關係方向進行自組織的神經網路,當輸出層上的實際輸出與給定的輸入不一致時,用下降法修正各層之間舊的結合強度,直到最終滿足給定的輸入輸出關係為止,出於誤差傳播的方向與訊號傳播的方向正好相反稱為誤差反向傳播神經網路。BP神經網路的理論認為:只要不斷給出輸入和輸出之間的關係,則在神經網路的學習過程中,其內部就一定會形成表示這種關係的內部構造,並且只要使關係形成的速度達到實用值,那麼BP的應用就不存在任何的困難. 《基於視覺的手勢識別及其在人機互動中的應用》採用了基於方向直方圖的BP(誤差反向傳播)神經網路方法。
可以看出若是基於幾何分類法演算法簡單,與神經網路的方法相比,顯示出了可靠性,其允許定義一個不同手勢類別特點的特徵集,估計一個區域性最優的線性分辨器,根據手勢影象中提取的大量特徵識別相應的手勢類別,但其學習的效率不高,隨著樣本量的不斷增大,演算法識別率的提高不明顯。但BP神經網路需要一定的學習階段,處理過程中可能存在著中間層神經元的個數龐大,學習時間太長,結合係數範圍太寬等嚴重缺點。在BP神經網路的實際應用中應該合理考慮網路結構。
如基於Sift 靜態手勢 識別,即採用基於膚色的Sift特徵,用PCA降維,再用HOG特徵表述手勢,也做PCA降維,兩種特徵作為特徵向量,訓練分類器,生成靜態特徵識別庫。
基於單目視覺的動態手勢 識別技術:
基於神經網路,基於HMMs,基於CRFs.
傳統的動態手勢識別,是基於HMMs,但HMMs是與觀察無關的,也就是說,所有的情況在對模型訓練時就必須要知道,否則就無法對這些未經訓練的樣本識別。實際中,我們不可能把所有的情況都考慮清楚,也不可能把所有的訓練樣本都訓練。其次,觀察無關還導致了標註偏移。雖然MEMMS在一定程度上解決了觀察無關問題,但還是存在標註偏移問題。
基於模糊的條件隨機場FCRF可以避免觀察無關與標註偏移問題。
由於手勢序列包括內部子結構和用於區分不同手勢的外部動態結構,因此,LDCRFs不但可以辨識內部結構,同時可以辨識外部結構,針對連續手勢,修改隱函式為模糊函式,即FLDCRFs.
本文對針對基於視覺的手勢識別演算法,做一個簡單總結。後續有改進再補充。