王忠祥,姜明明,謝 偉,惠 倩,龍振宇
(山東農(nóng)業(yè)工程學(xué)院機(jī)械電子工程學(xué)院,山東 濟(jì)南 250100)
手勢(shì)識(shí)別在當(dāng)下成為熱點(diǎn)研究,足可以證明手勢(shì)識(shí)別技術(shù)的重要性,該技術(shù)不僅僅可以實(shí)現(xiàn)人機(jī)交互,還可以應(yīng)用于其他高新技術(shù),如對(duì)軟件的控制,與物聯(lián)網(wǎng)技術(shù)的結(jié)合,與5G技術(shù)的融合。手勢(shì)識(shí)別技術(shù)還可以與正在應(yīng)用中的聲音識(shí)別、指紋識(shí)別和面部識(shí)別組合成安全系數(shù)更高的電子鎖。總之,手勢(shì)識(shí)別可以應(yīng)用于生活中的方方面面,從而大大提高人們的生活幸福感。本文中所寫(xiě)的手勢(shì)識(shí)別系統(tǒng)的手勢(shì)識(shí)別流程圖,如圖1所示。
圖1 手勢(shì)識(shí)別流程圖
圖像預(yù)處理的目的是將圖像復(fù)雜的背景和噪聲去除,弱化背景和噪音等無(wú)用的信息對(duì)手勢(shì)分割和識(shí)別的干擾,突出圖片中存在的重要信息。圖像預(yù)處理的歷程包括:灰度化、邊緣檢測(cè)和平滑等。
RGB色彩空間,如圖2所示,以R(red)、G(green)、B(blue)三種基本色為基礎(chǔ)。在RBG色彩空間中,所有的顏色都是由紅、綠、藍(lán)三種色光按照不同的比例混合而成的。一組三原色光便是一個(gè)最小的表現(xiàn)單元。
圖2 RGB色彩空間
本文經(jīng)由過(guò)程使用加權(quán)平均法將手勢(shì)圖片轉(zhuǎn)換為灰度圖像,實(shí)現(xiàn)圖像灰度化。
其中,R、G、B三個(gè)分量分別表示紅、綠、藍(lán)三種顏色,Wr是R的權(quán)值,Wg是G的權(quán)值,Wb是B的權(quán)值,Wr、Wg、Wb取不同的值,將形成不同的灰度圖像[1]。
除了RGB色彩空間,還有很多其他的色彩空間,例如HSI色彩空間、YUV顏色空間、XYZ顏色空間和Lab色彩空間等。YUV色彩空間的重要性在于它的亮度信號(hào)Y和色度信號(hào)U、V是分離的。YUV色彩空間可以與RGB色彩空間相互轉(zhuǎn)換。
HIS色彩空間對(duì)顏色的描述是從色相、飽和度和亮度三個(gè)方面來(lái)說(shuō)的。HIS色彩空間是一個(gè)圓錐體的空間,此色彩空間相當(dāng)復(fù)雜,但能清晰地顯示出色相、明度、飽和度的變化。亮度與色調(diào)相比,由于前者給人的視覺(jué)沖擊更大,所以在人的視覺(jué)系統(tǒng)中為了更好地處理和識(shí)別,經(jīng)常使用HSI顏色空間。在圖像處理過(guò)程中,該顏色空間可以分別獨(dú)立地使用大量的算法,簡(jiǎn)化工作量。HSI顏色空間也可以與RGB色彩空間相互轉(zhuǎn)換,并且可以通過(guò)RGB色彩空間作為中間變量來(lái)與YUV色彩空間轉(zhuǎn)換。
手勢(shì)圖像進(jìn)行灰度化后,能夠顯現(xiàn)出較為明顯的手勢(shì)輪廓,由于手勢(shì)圖像會(huì)存在噪聲、復(fù)雜背景等多方面因素的影響,所以目標(biāo)手勢(shì)還無(wú)法被輕而易舉地提取到。因此,需要在圖像分割之前對(duì)圖像做平滑處理,移除那些多余的可能會(huì)干擾到識(shí)別的噪點(diǎn)。
圖像平滑的方法有很多,例如均值濾波、中值濾波、高斯濾波和雙邊濾波等等。其中,高斯濾波是一種線(xiàn)性平滑濾波,常用于圖像的平滑減噪處理;但在圖片邊緣時(shí),此方法并不行得通,在很多時(shí)候此方法的發(fā)揮會(huì)被限制;但即便如此,高斯濾波抑制正態(tài)分布的噪聲依舊是高效的。雙邊濾波是一種非線(xiàn)性的濾波方法,結(jié)合空域信息和灰度相似性完成去噪。與高斯濾波相比,雙邊濾波更加簡(jiǎn)單并且可以處理圖片邊緣,可應(yīng)用的場(chǎng)所更多,但是消耗的時(shí)間更長(zhǎng)。
本系統(tǒng)采用的是頻域平滑技術(shù)。經(jīng)過(guò)傅里葉二維變化之后,由于噪聲的頻譜一般在空間高頻區(qū)域,手勢(shì)圖像的頻譜處于空間低頻區(qū)域,所以圖像平滑不僅能在空域進(jìn)行,也能在頻域進(jìn)行。因此,可以通過(guò)低通濾波器抑制高頻分量,從而實(shí)現(xiàn)圖像的平滑。濾波器的數(shù)學(xué)表達(dá)式為如下。
分割方法是閾值法,是圖像處理中最常用的分割方法,經(jīng)過(guò)灰度化的手勢(shì)圖片有均勻一致的灰度值,而且處在一個(gè)具有其他等級(jí)灰度值的均勻背景下,使用閾值法可以起到不錯(cuò)的分割效果。
二值化處理就是將圖片上點(diǎn)的灰度值設(shè)為0或255,使整個(gè)圖片具有明顯的黑白效果[2]。根據(jù)圖像中的每一個(gè)像素點(diǎn)的灰度值是否滿(mǎn)足閾值的要求來(lái)判斷圖像中該像素點(diǎn)屬于手勢(shì)識(shí)別目標(biāo)還是背景,從而將灰度化圖像轉(zhuǎn)換成二值化圖像[3]。
用數(shù)學(xué)表達(dá)式來(lái)表示,則可設(shè)原始圖像f(x,y),T為閾值,滿(mǎn)足下式。
閾值法算法簡(jiǎn)單,能用封閉連通的邊界定義不交疊的區(qū)域,對(duì)手勢(shì)與背景有較顯著對(duì)比的圖像,得到較好的分割結(jié)果。
以剪刀石頭布的手勢(shì)為例,如圖3、圖4、圖5所示。
圖3 剪刀與二值化后剪刀
圖4 石頭與二值化后剪石頭
圖5 布與二值化后布
在與圖庫(kù)中的圖片進(jìn)行比對(duì)之前,需要先根據(jù)手勢(shì)的二值圖提取手勢(shì)的輪廓[4]。在手勢(shì)圖片預(yù)處理后,為了進(jìn)一步提高手勢(shì)識(shí)別的準(zhǔn)確率,需要對(duì)手勢(shì)圖片進(jìn)行特征提取。首先,需要根據(jù)手勢(shì)的二值化圖像提取手勢(shì)的輪廓,然后與圖庫(kù)中的手勢(shì)圖片進(jìn)行匹配比對(duì)。輪廓的提取不僅是為了得到目標(biāo)邊緣點(diǎn)的位置信息,而且能進(jìn)一步減少手勢(shì)圖像中的無(wú)關(guān)信息,突出重要特征,從而降低計(jì)算量,提高識(shí)別速度。
手勢(shì)識(shí)別是手勢(shì)識(shí)別研究中最為重要的一部分,目前用于識(shí)別的算法有很多,主要有基于模板匹配的方法、基于數(shù)據(jù)分類(lèi)的方法和基于深度學(xué)習(xí)的方法。本系統(tǒng)采用了相對(duì)簡(jiǎn)單且相對(duì)容易實(shí)現(xiàn)的方法,即像素逐一對(duì)比的方法。此方法在實(shí)現(xiàn)功能上相對(duì)簡(jiǎn)單,但實(shí)際中其他幾種方法更為精確。
仿真實(shí)驗(yàn)測(cè)試,限于運(yùn)算速度,僅在圖庫(kù)中導(dǎo)入六張手勢(shì)圖片,如圖6所示。
圖6 圖庫(kù)手勢(shì)素材
Matlab是一款非常強(qiáng)大的仿真軟件。Matlab具有一系列幫助使用者的函數(shù)和文件,在數(shù)據(jù)處理、圖像處理等多個(gè)方面首屈一指。Matlab對(duì)新手使用者非常友好,簡(jiǎn)單易懂,基于現(xiàn)在最為流行的C++語(yǔ)言,更加符合使用者對(duì)表達(dá)式的書(shū)寫(xiě)。并且其中包含著大量的函數(shù),從簡(jiǎn)單基本的函數(shù)到復(fù)雜的函數(shù),能夠滿(mǎn)足不同階段學(xué)習(xí)者的不同需求。開(kāi)發(fā)方面,能夠更加方便地控制多個(gè)文件和圖形窗口;編程方面,支持函數(shù)嵌套,有條件中斷等;圖形化方面,擁有強(qiáng)大處理功能;輸入輸出方面,能夠直接與Excel和HDF5進(jìn)行連接。
本文選擇了使用Matlab進(jìn)行了簡(jiǎn)單的仿真實(shí)驗(yàn),Matlab具有強(qiáng)大的圖形處理功能,編程語(yǔ)言簡(jiǎn)單自然,方便學(xué)習(xí)和掌握,且為使用者提供了很多便捷的處理工具。仿真的過(guò)程中由于不同的膚色及不同的背景,可能還需要按照實(shí)際情況對(duì)某些步驟作出調(diào)整,還有非常大的改進(jìn)空間。