杜樹林,邱衛根
(廣東工業大學計算機學院,廣州 510006)
作為一種自然的交互手段,手勢交互是一種應用廣泛的人機交互方式,手勢識別是實現手勢交互不可或缺的關鍵技術,基于計算機視覺的手勢識別是機器視覺領域的一項重要的研究內容[1]。
作為數學形態學理論及方法的進一步發展,組件樹[2]方法通過閾值截集產生連通分量,并構造其上的層次樹關系,發展出一系列高效的基于樹的圖像處理算法。組件樹是一類應用廣泛的連通算子,它通過合并圖像的平坦區域而實現形態學濾波,它既不會使圖像產生新的輪廓,也不會使輪廓的位置發生改變。因此,它們具有非常好的輪廓保持特性,能夠用于基礎的圖像濾波和高級的對象識別任務等。組件樹被廣泛應用于對象識別[2]、圖像分類[3]、車牌的檢測、跟蹤與識別[4]等領域。
基于組件樹的對象識別和分類的方法,通常首先構建圖像的組件樹,然后提取組件樹的結點屬性特征,最后結合先驗知識設定閾值條件對圖像中符合條件的對象進行識別和分類。本文提出一種針對靜態手勢圖像的分類方法,該方法首先采用高效的灰度圖像組件樹構建算法對手勢圖像建立組件樹;由于原始圖像通常存在大量噪聲,組件樹的結構相對復雜,存在大量葉子結點,因此采取基于組件樹的圖像濾波方法對圖像進行濾波,再對濾波后的圖像建立組件樹并對組件樹做進一步簡化;在此基礎上,提取組件樹結點的屬性,并對組件樹結點的梯度屬性和面積屬性進行分析,找出對應于圖像中手部的組件樹結點;然后提取上述結點的其他屬性信息,并構成此手勢圖像的特征向量,同時將特征向量存儲在數據集中;最后采用全連接的神經網絡訓練分類器,通過實驗檢驗該分類器的分類效果。
設f:Ω→V是規則域Ω上的圖像,具有完全預序集(V,≤ )上的值,并且令N為Ω上的鄰域。設λ∈V,把集合p∈Ω,f(p)≤λ記為[f≤λ]。設X?Ω,把X相對于鄰域N的連通分量集記為CC(X)?P(Ω),P(Ω )是Ω的所有可能子集的冪集。記CC([f=λ] ),λ∈V為灰度級λ下的連通分量,則Ψ=CC([f≥λ]),λ∈V是灰度不小于λ的連通分量的集合。由于包含關系,Ψ可由樹結構表示,這種樹結構即組件樹。這種樹結構被稱為連通分量樹(Connected Component Tree)[5],簡稱組件樹(Component Tree)。圖1所示是一個灰度圖像組件樹的例子。

圖1 灰度圖像組件樹示例
在上述定義中,組件樹的葉子結點存儲局部最大灰度值,因此這種樹結構也被稱為最大樹(max-tree)。根據對稱性,如果用像素值小于給定閾值的點的集合來構成連通分量,則葉子點存儲局部最小值,這種樹結構就被稱為最小樹(min-tree)。最大樹(或最小樹)的結點通常只保存某一特定灰度值的點,最大樹是組件樹去除重復元素后的緊湊版本,最大樹能夠有效節省存儲空間。通常,在設計算法和應用程序時考慮完整的組件樹,而在進行運算和處理時采用更高效的最大樹結構。組件樹與最大樹之間的關系如圖2所示。

圖2 組件樹與最大樹
組件樹本身足以進行某些圖像變換,但是對于圖像濾波等更復雜的圖像處理任務,則需要有關每個組件的一些匯總知識。這些知識由組件樹的結點屬性表示,所謂結點屬性就是表征每個結點的數值。相關文獻中常見的一些組件樹結點屬性如下:
●面積(area):結點所包含的像素個數總數,在3D圖像中,這個數目又被稱為體積(volume);
●最小值(minimum):結點中各像素的灰度最小值,也被稱為水平(level)或者海拔(altitude);
●最大值(maximum):與最小值相對應,即結點中的最大灰度值;
●高度(height或range):結點中灰度最大值與最小值之間的差;
●深度(depth):與二叉樹的定義類似,它表示組件樹中結點到根之間的距離。
自組件樹理論形成以來,許多高效的組件樹構建和處理算法以及用以提取組件樹結點的屬性的高效算法被相繼提出[6]。按算法所使用的數據結構,可以將建立灰度圖像組件樹的算法分為兩大類,即基于優先隊列的算法和基于并查集的算法。本文采用Berger等人[7]提出的算法建立手勢圖像的組件樹。建樹算法首先對圖像中的點按灰度值逆序排序,然后按照并查集的思想依次為每個點建立一個新的集合作為組件樹的一個結點,根據選定的鄰接規則查找已經處理的鄰域點所屬集合(即父結點),如果當前點與鄰域點分別屬于兩個不同的集合,則將它們合并到一個結點,最后再將生成的組件樹做正則化處理。算法的偽代碼如圖3所示,其中f表示灰度圖像,R、parent和zpar是和f大小相同的數組,R存儲結點的順序,parent用以保存圖像中每個點對應的父結點,zpar是建樹過程中用于尋找父節點時保存額外信息的數組,undef表示未定義,實際應用中可將其值取為-1。FIND-ROOT(x)

受光照、采集設備、背景等多方面的因素影響,自然圖像中不可避免地存在噪聲,而組件樹對噪聲極為敏感,因此自然圖像的組件樹通常具有非常復雜的結構,結點數量成千上萬,其中存在大量的葉子結點和面積很小的非葉子結點。對于圖像處理任務來說,使用原始的組件樹是不現實的[1]。
實際應用中,通常需要選取濾波規則,對組件樹做一定的簡化。首先選擇適當的連通規則(4鄰接或8鄰接)構建圖像的組件樹,然后根據大小或形狀等濾波條件移除組件樹中的部分結點,最后根據簡化后的組件樹重建圖像。相對于中值濾波器和均值濾波器會對圖像造成模糊的不良影響,基于組件樹的區域開操作能夠很好地保持圖像的輪廓特性同時不會造成圖像模糊,并能夠去除噪聲。圖3展示的是組件樹濾波方法對圖像進行濾波操作的結果,圖3(a)是帶有椒鹽噪聲的原始圖像,圖3(b)是對組件樹中面積小于25的結點過濾后重建的圖像。

圖3 組件樹濾波
為了簡化組件樹同時不丟失相關信息且保留拓撲結構,Souza等人提出了最大組件樹簡化方法(Maximal Max-tree Simplification,MMS)[3]。MMS 方法是一種非常實用且高效的組件樹簡化方法,通常能夠大幅減少組件樹結點的數量,并且保留圖像中最重要的部分。對于在手勢圖像中尋找手勢目標,MMS方法能夠大幅減少遍歷時間。
對手勢圖像建立組件樹之后,接下來的工作是計算組件樹的結點屬性特征。為便于屬性數據保存和結點遍歷,本文采用Souza等人[8]提出的一種基于數組的面向結點的最大樹表示方法,這種方法使用兩個數組,即存儲結點屬性的結點數組(Node Array,NA)和表示每個像素所屬結點的結點索引(Node Index,NI)。結點數組和結點索引能夠方便高效地從上一節所用算法的返回值(R,parent)生成。
實驗中,考慮到手勢圖像的輪廓特性和計算復雜度,本文所采用的組件樹結點屬性除結點面積和高度之外,還使用了以下幾個特征:
●矩形比(Rectangularity Ratio):結點對應連通分量的面積與其外接矩形面積之間的比值;
●離心率:結點對應圖像區域的離心率;
●形心:結點對應圖像區域的形心位置;
●長寬比:結點對應圖像區域外接矩形長和寬的比值;
●區域位置:結點對應區域外接矩形的頂點位置。
本文的實驗中所采用的數據集包括兩部分:手勢圖像數據集和組件樹結點屬性數據集。
手勢圖像數據集來源于Jochen Triesch靜態手勢數據集(JTD)[9],由24個人在3種不同的背景(明、暗和復雜)下各作10個手勢,共計720張圖像,圖像大小為128×128像素。圖4為該數據集中的部分示例圖像。由于實際應用中通常使用最大樹來表示組件樹,因此本文選取暗背景的圖像進行實驗。

圖4 JTD中的手勢圖像示例
結點屬性數據集為自建數據集?;谏弦还澨岢龅慕M件樹構建算法和結點屬性提取方法,對JTD數據集中的暗色背景圖像建立組件樹,采用基于組件樹的區域開操作對圖像進行濾波及MMS方法對組件樹做簡化,然后提取簡化后的組件樹中對應于手勢部分結點的屬性,最后保存提取的屬性特征向量到結點屬性數據集中。數據集的樣本隨機打亂次序后,按8:2的比例劃分訓練集和測試集。
本文的實驗采用全連接神經網絡,網絡深度為8,輸入層為圖像組件樹得結點屬性,各隱藏層的神經元個數分別為 64、128、256、512、256 和 128,輸出層為分類結果。由于結點的不同屬性在數值上差異較大,因此先將各屬性的數值做歸一化處理。
實驗中,采用隨機梯度下降法,訓練過程中動態調整學習率,激活函數為ReLU。訓練10000代之后,分類準確率趨于穩定,在參數量僅為330K的情況下,分類的平均準確率達95.83%。
本文采用一種稱為組件樹的樹形結構來表示圖像,定位樹結構中的關鍵結點并提取其屬性特征,并將該特征作為圖像的特征描述,最后通過訓練全連接神經網絡對組件樹的結點屬性特征進行學習,作為分類依據。作為一種高效的數據結構和圖像表示方法,組件樹結構能夠很好地表達圖像中的層次關系,方便提取圖像中的連通區域。由于圖像中包含大量的冗余信息,直接在圖像上使用CNN的方法包含了許多不必要的計算,增加了計算量,而使用組件樹的方法去除了圖像中的大量冗余信息,同時又保留了圖像的關鍵特征。實驗結果表明,本文提取的組件樹結點屬性能夠較好地作為圖像的特征并用于圖像分類任務。