邢予權,潘今一,王 偉,劉建烽
(浙江工業(yè)大學 信息工程學院,杭州 310023)
人與人之間的溝通其實就是兩者之間互相交換信息的過程,我們在平時生活當中有很多種交流的方式,比如:我們可以用我的微笑、眨眼、手勢等方式將想要表達的信息傳達給外界,同時也可以通過我們的眼睛、觸覺等發(fā)現(xiàn)四周別人給我們傳遞的消息,例如:別人打手勢、肢體之間接觸等。所謂人人交互,顧名思義就是通過這些各種不同的方式進行人與人之間交換信息,同理,人機交互(human-computer interaction, HCI)就是人和計算機之間通過某種信息交換方式(例如:手勢)實現(xiàn)對一些機器之間的控制的目的,當前人機交互主要研究的內容是如何進行人和計算機進行交換信息的方式,傳統(tǒng)的交互方式主要是采用專用設備進行,例如:鍵盤、鼠標、觸摸屏等輸入設備,需要提前制定一些信息交換規(guī)則,按照規(guī)則進行與計算機之間互換信息,導致計算機處于被動接受信息的狀態(tài)。隨著當下技術的發(fā)展與不斷進步,人們已經(jīng)開始改變傳統(tǒng)被動接收信息,向著主動方式發(fā)展,隨著計算機視覺技術的越來越成熟,人們的生活方式也逐漸發(fā)生了變化,對生活的品質要求也發(fā)生改變,越來越火的人機交互受到人們的熱捧。手勢作為一種不用說話就可以向他人傳達一些信息的肢體語言,在生活當中很多環(huán)境下給予了大量幫助,手可以通過與身體其他部位的組合可以產(chǎn)生很多的表達信息,比如:聾啞殘障人士的交流就是通過手語進行交互,同時手勢也可以和機器之間交流等等。由于手勢是非常的靈活,不同的時間或者地點可能表達的意思就完全不同。例如,美國和歐洲可能認為對于別人指向伸出的手指是很正常的交流,但對于亞洲人來說他被定義為一種不禮貌的行為。靜態(tài)手勢從理論上來說指可以認為手的個體形狀,它不考慮在具體的哪個時間和方向,位置信息,只包括單個手的形狀,例如卡住拇指和小指,伸直其他三個指頭,就表示數(shù)字三。因此,手勢識別也成為人機交互技術研究領域的主流方向之一[1]。
傳統(tǒng)的方法是基于穿戴設備[2-4](例如:數(shù)據(jù)手套)獲取手部的位置信息和旋轉信息作為手勢信息,雖然能夠在復雜的背景和光照[5]下獲取較好的準確性和穩(wěn)定性,但是設備的成本太高,人的手勢約束較多,在人機交互過程中不能夠自然地進行交互。針對自然性交互與成本問題,基于相機采集越來越受到青睞,基于深度相機[6-7]能夠獲取人體部位多維信息(例如:RGB,深度信息),環(huán)境條件要求高,采集范圍小,采用普通相機采集,張彩珍[8]等人通過膚色模型與BP神經(jīng)網(wǎng)絡手勢識別的方法,楊紅玲[9]等人提出一種基于YCbCr空間膚色分割去除背景結合卷積神經(jīng)網(wǎng)絡進行手勢識別,其利用人體膚色與周圍環(huán)境差異快速實現(xiàn)手勢的分割,易受到光照和復雜背景的影響,類膚色或者人臉等區(qū)域的噪聲干擾,從而使基于膚色分割的閾值很難設置,從而導致手勢分割較差,卷積神經(jīng)網(wǎng)絡識別數(shù)據(jù)樣本少,識別率低。針對上述問題,提出采用語義分割深度學習模型[10-12,14]手勢分割,降低基于膚色模型等方法面對復雜場景下出現(xiàn)的難以獲取手勢區(qū)域問題,通過遷移學習[14]的方法來處理工程實踐中遇到樣本數(shù)據(jù)少等問題,從而增強圖像識別的準確率。
因為佩戴設備或者采用深度相機的很多局限性原因,當前采用普通相機進行手勢識別研究受到廣大研究者的青睞。采用普通相機的靜態(tài)手勢識別系統(tǒng),主要是通過手的形狀的分離與形狀特征提取分類兩大模塊,檢測的主要方式是通過一些算法(差分法、膚色分割等)將手型的區(qū)域凸出來,而非手勢的區(qū)域遮擋掉,這樣手勢區(qū)域非手勢區(qū)域有一個較大的凸出對比,這樣對于后面的特征提取有很大的影響,因此將手勢分割作為手勢識別的第一步是非常重要的,它的好壞對后面的手勢識別的識別準確率有很大影響[8-10]。傳統(tǒng)的識別方法利用直方圖的分割、局部區(qū)域信息的分割、顏色空間等特征進行分割,然后,手動提取一些特征采用SVM等分類器識別,但是傳統(tǒng)分割和特征提取技術往往會受到復雜光照、背景等一些影響。隨著深度學習的發(fā)展,應用于圖像的分割逐漸成為一種主流的圖像識別的預處理方法,在深度學習領域基于像素處理的語義分割近些年得到快速發(fā)展,大多數(shù)都是全卷積神經(jīng)網(wǎng)絡[11,14](Fully convolutional networks,F(xiàn)CN)為基礎不斷的更新升級換代產(chǎn)生的一系列基于卷積神經(jīng)網(wǎng)絡的語義分割方法。
根據(jù)分割算法在公共數(shù)據(jù)集的表現(xiàn),采用Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation(deeplabv3+)[11]算法進行手勢分割。
語義分割 Deeplab v3+網(wǎng)絡采用“編碼-解碼”結構。編碼模塊使用改進的Xception網(wǎng)絡進行特征提取,其后連接ASPP模塊用于提取并融合圖像的多尺度特征。解碼模塊將編碼模塊特征圖與改進的 Xception中間特征圖進行融合,然后上采樣得到分割結果[15-16]。
Deeplabv3+網(wǎng)絡架構分別如圖1所示。圖像首先經(jīng)過改進的Xception網(wǎng)絡得到寬高為原圖1/1大小的特征圖,接著進入孔洞空間金字塔池化ASPP模塊,使用4個并行的具有不同孔洞率的孔洞卷積對特征圖進行特征提取,獲得4個具有不同感受視野的特征圖。使用全局平均池化對特征圖進行融合,使得編碼模塊網(wǎng)絡最后的特征圖融合了圖像的多尺度信息,有助于提高小目標物體的分割結果。編碼模塊輸出的特征圖雖然能夠編碼豐富的語義信息,但多次下采樣步驟和不同步長的卷積計算會導致物體邊界信息的丟失,直接上采樣到原始圖像尺寸的語義分割圖片只能得到粗略的物體邊界,精度較低。因此,解碼模塊先將編碼模塊最后一層特征圖上采樣4倍,與編碼模塊改進的 Xception 網(wǎng)絡中下采樣1/4的特征圖進行融合,然后再次4倍上采樣得到最終包含精確物體邊界的語義分割圖片。
受限于硬件環(huán)境能力,實際訓練中的不訓練時間可能會很長,并且訓練樣本規(guī)模數(shù)量有限,如果隨機給定初始化模型參數(shù)權值,訓練效果不一定良好,使用Xception的骨架網(wǎng)絡通過大量公開數(shù)據(jù)集進行的預訓練好的模型,作為進行網(wǎng)絡訓練時的初始化的參數(shù)。通過遷移學習可加速網(wǎng)絡訓練速度,提高訓練精度,減少訓練時間。
圖1 deeplabv3+網(wǎng)絡結構
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡對圖像操作時首先對輸入圖像進行卷積再進行池化操作,降低輸入圖像的尺寸大小同時增大感受視野,在池化降低尺寸增大感受視野,向上采用恢復原圖大小過程中出現(xiàn)像素的丟失,因此采用空洞卷積同時可以同時進行兩步操作。如式(1)所示:
(1)
式(1)中,i為圖像像素位置,w為卷積核的大小,速率r是采樣點之間加入r-1個零。
自卷積神經(jīng)網(wǎng)路提出以來,人們在不斷研究過程當中發(fā)現(xiàn)其對圖像具有很強的特征提取性能,被廣泛應用在圖像識別、圖像分類等各方面,手勢識別采用該網(wǎng)絡主要通過多層卷積與采用來提取特征,通過分類函數(shù)將特征進行分類識別,常用的卷積神經(jīng)網(wǎng)絡主要有以下幾部分組成,如圖2所示。
圖2 卷積網(wǎng)絡基本結構
卷積層就是利用卷積核與圖像局部按照一定關系進行卷積操作提取局部視野特征,作為下一層的輸入繼續(xù)操作,逐漸獲取圖像由低到高的層級特征。假設圖像輸入大小為(X*Y),卷積公式如式(2)所示:
(2)
式中,卷積核為w*h,xa+i,b+j是輸入圖像內像素坐標,wij是卷積核(i,j)處的值,C為偏置,xab就是卷積結果。
池化層又名下采樣。提取局部視野的主要特征,丟棄次要特征,降低了特征的維數(shù)同時減少模型參數(shù)的數(shù)量,從而使主要信息得以保留。
在訓練模型過程當中,為了防止出現(xiàn)過擬合現(xiàn)象,根據(jù)生物學原理,每次進行神經(jīng)元激活時并不是所有都喚醒,因此在訓練過程當中每次隨機的丟棄一些節(jié)點,這樣每次訓練的網(wǎng)絡不同,防止出現(xiàn)擬合來提高神經(jīng)網(wǎng)絡的性能。
最后要輸出待分類目標出現(xiàn)的概率,采用softmax分類函數(shù)進行目標分類。計算目標在各類中出現(xiàn)的概率計算如式(3)所示:
(3)
采用交叉熵損失函數(shù)來計算預測值與實際值差異。如式(4):
(4)
式中,n為待訓練目標,yi是各個對象的實際標簽類型。
為了訓練過后能在目標數(shù)據(jù)集上取得良好的分類效果,具有足夠的樣本數(shù)量是一個穩(wěn)定的保障,但是實際生活當中獲取合適的樣本數(shù)據(jù)非常困難,往往需要大量的人力與物力,同時傳統(tǒng)的機器學習方法要求訓練集和測試集具有相同的特征空間和數(shù)據(jù)分布,因此導致數(shù)據(jù)樣本的充足更是難上加難,然而過去耗費大量費用制作的相似數(shù)據(jù)集又不能使用,導致資源的浪費,因此采用遷移學習的目的就是利用以前過時數(shù)據(jù)樣本作為預訓練模型,來增加網(wǎng)絡訓練過程當中網(wǎng)絡的穩(wěn)定性,提高網(wǎng)絡特征提取能力,然后利用預訓練提取特征的某部分參數(shù),采用自己的數(shù)據(jù)集訓練高層特征提取與分類層參數(shù),從而可以更好地解決訓練樣本缺失所導致的局部最優(yōu)解和過擬合等問題。本算法主要利用公開數(shù)據(jù)集ImageNet具有大量的樣本能夠更好地訓練網(wǎng)絡提取特征的能力,本文采用VGG16網(wǎng)絡在ImageNet數(shù)據(jù)集上訓練的預訓練模型進行網(wǎng)絡初始化進行提取特征本數(shù)據(jù)單獨進行訓練分類層網(wǎng)絡模型。VGG16網(wǎng)絡如表1所示。
表1 VGG16網(wǎng)絡
實驗測試環(huán)境:采用戴爾筆記本電腦Intel(R) Core(TM)i5-7300 2.50 GHz CPU處理器,采用Visual Studio 2015, OpenCV3.2.0, tensorflow1.12, python3.5,顯卡GTX1050ti 實現(xiàn)了手勢識別的方法。
1)采用labelme開源標注工具,制作滿足圖像分割要求數(shù)據(jù)集標簽如圖3所示。
圖3 標記標簽制作
2)deeplabv3+ 與基于膚色模型分割對比如圖4所示。
圖4 分割對比圖
本文使用在ImageNet上預訓練得到的網(wǎng)絡模型對VGG16模型進行特征提取層初始化操作,提取我們所做的數(shù)據(jù)集特征進行分類模型訓練。我們將初始學習率設為0.001,保存迭代100次(全部數(shù)據(jù)集訓練一遍為一次迭代)將訓練結果進行實驗對比分析。
圖5 訓練準確率
1)本次采用的數(shù)據(jù)集是Senz3D公開數(shù)據(jù)集進行手勢識別,由于數(shù)據(jù)集場景復雜性較好,但是樣本相對減少采用樣本增強方式有如下:
(1)對圖像進行30°、-30°、-60°、60°、45°、-45°等操作對樣本數(shù)據(jù)集進行擴充。
(2)采用風格遷移進行其他背景遷移到手勢圖像作為背景進行圖像特征的多樣化。
(3)通過模擬噪聲的分布,對圖像增加各種噪聲,增加擾動信息,達到樣本復雜多樣性,以便更好地提高泛化能力。
2)準確率曲線分析:分別進行原數(shù)據(jù)集進行訓練,基于遷移學習對原數(shù)據(jù)集進行訓練,擴充樣本后遷移學習進行實驗,如圖5所示。
通過觀察以上三幅曲線圖,圖5(a)明顯出現(xiàn)沒有收斂趨勢,這樣的訓練結果沒有學習的意義,圖5(b)經(jīng)過遷移學習之后出現(xiàn)逐漸收斂的趨勢,準確度明顯提高,說明遷移學習對于小樣本學習具有較好的表現(xiàn),通過圖5(c)采用遷移學習與樣本增強的方法后,準確度又有了一定的提高,實驗結果表明,面對小樣本數(shù)據(jù)時通過遷移學習與樣本擴充方法有一定的提高。
針對小樣本復雜背景下的手勢識別問題,采用普通相機有效解決了圖像采集中可穿戴設備傳感器費用高、深度相機環(huán)境要求高缺點,通過與傳統(tǒng)的不同顏色分割模型分割能力進行對比,深度學習的圖像分割技術可以替代傳統(tǒng)膚色分割模型等技術分割,避免出現(xiàn)的閾值難找,受到光照、類膚色等環(huán)境影響,導致分割中出現(xiàn)類膚色出現(xiàn)或者較少非手勢膚色區(qū)域出現(xiàn);減少很多分割圖的預處理運算,具有很好的普適性,同時采用遷移學習的方法與擴充樣本相結合準確度表現(xiàn)來看可以更好地防止樣本數(shù)量少時出現(xiàn)的過擬合現(xiàn)象,可以減少數(shù)據(jù)的收集處理成本,可以有很好的工程使用價值,同時也面臨一些不足之處,有的場景下旋轉角度并不適合擴充樣本,沒有很好的普適性,需要朝著增加數(shù)據(jù)樣本多樣性算法進一步研究,增加普適性。