程書睿,陳翰林,胡榮春
(1.西南科技大學理學院,綿陽 621010;2.西南科技大學信息工程學院,綿陽 621010)
現代社會高層建筑的使用越來越廣泛,電梯作為一種垂直的交通運輸工具,也得到了越來越廣泛地利用,電梯的穩定與安全運行也越來越受到人們的廣泛關注。為了防止電梯超載而導致其不能安全穩定的運行,常常需要控制電梯轎廂內的人數,以防止電梯超載。
目前,研究人員已經提出了多種關于人員檢測、人員計數的方法。文獻[1]中根據頭部輪廓特征,提出了一種基于直徑的改進Hough變換頭部檢測算法用于實時統計電梯轎廂內人數;文獻[2]采用攝像頭獲取視頻流,通過圖像處理技術對進出電梯的雙向人數進行統計,進而統計出電梯內部的人數。文獻[3]利用基于多信息融合的算法對電梯內安全帽的數量統計達到了較高的準確度,但是需要獲得空間中極端位置處的安全帽圖像樣本,采用線性擬合的方法獲得不同位置處的最小安全帽面積以檢測不同大小輪廓的安全帽,這種方式依賴于先驗知識的獲取;文獻[4]采用機器學習的方法對安全帽進行識別,準確度達到80%以上,但是需要對神經網絡進行訓練,而且訓練時間比較長;本文所提出的算法避免了算法在實際應用當中對于先驗知識的過分依賴,而且通過大量圖像實驗驗證,本算法具有很好的時間效率和比較高的準確率,算法的適用性強。
對于一些特殊的場景,例如施工場地的升降梯,由于施工工人們常常帶有安全帽,而安全帽本身所具有的特殊顏色就為安全帽的識別與計數提供了一定的方便,電梯內部人數的統計可以通過安全帽的個數的統計來實現,這就意味著,理論上可以將顏色作為區別安全帽與電梯內部環境空間顏色的依據。
近些年來,聚類算法方面的研究取得了很多成果,很多種模糊聚類算法被提出,其中比較常見的兩種為:一種是基于模糊關系的聚類算法;另一種是基于目標函數的聚類算法。而第二種由于其設計簡單、應用范圍廣,本質可歸結為優化問題等優點,使得該方法成為模糊聚類分析的主要方法之一[5]。而基于模糊關系的聚類算法在數據量比較少的情形下則表現出更好的性能。
Ruspini最早系統地對模糊聚類進行研究,并提出了數據集的模糊劃分[6];Zadeh[7]等也提出了基于相似關系和模糊關系的聚類方法。基于模糊關系的聚類算法首先要建立模糊等價矩陣,當待分類的數據量很大的時候,采用這種方法的計算量就會很大。
由于后面我們對待處理數據進行了有效地提取,使得最終能提取出數量有限的數據點,這樣就避免了數據量過多的問題,所以本文采用第一種基于模糊關系的聚類算法。
參考書籍[8]中基于模糊關系的聚類算法的相關描述,基于模糊關系的聚類算法的基本原理可概括如下:
設S={X1,X2,…,XN}是待聚類的全部樣本,每一個樣本都由n個特征表示。首先是求取樣本集中任意兩個樣本Xi與Xj之間的相關系數rij,進而構造模糊相似矩陣如下:

其中rij=μ(Xi,Xj),表示Xi與Xj的相關性。
計算 μ(Xi,Xj)的常用方法有數量積法、相關系數法、指數相似系數法等。對于相關系數法,即[9]:

其中-xi和-xj分別表示第i個和第 j個樣本的均值,xik表示第i個樣本的第k個特征,μ( )Xi,Xj越接近于1,則這兩個變量越接近;μ( )Xi,Xj越接近于-1,則關系越疏遠。
然而,此處待處理對象是一系列像素點的坐標,它們的相近和疏遠程度的最直接表征就是像素點坐標之間的歐氏距離,很明顯此處選擇歐氏距離的表達方式更方便,如果rij的表達方式選擇歐氏距離,那么rij的值越小,則表示Xi與Xj離的越近,選擇合適的距離λ,當rij<=λ時,rij=1,表明 Xi與 Xj屬于同一類,其余情形rij=0,這樣得到了相應矩陣Rλ,根據Rλ中各個元素的值便可實現類的合并。
本文所研究的情形中,安全帽區域為感興趣區域(ROI),而且安全帽的顏色相對固定,較為完整的提取出安全帽區域是后續進行聚類、計數等步驟的基礎,攝像頭采集到的圖像往往包含著好幾種顏色的安全帽,本文則討論三種比較容易快速提取出來(紅色、棕色,黃色)的安全帽,這三種顏色的R、G、B三個通道的取值具有很明顯的有助于區別于空間中其他顏色的特征,根據這些特征提取出這些安全帽區域的二值圖像,而白色的安全帽與空間環境的背景顏色很接近,所以很難將其從圖像中提取出來,而對于藍色安全帽,它的三個通道的取值非常接近,并且與背景中較暗的部分難以進行有效的分離,所以很難在比較短的時間內比較準確的提取出藍色安全帽的區域。
顏色特征是安全帽的最明顯的特征,可以利用安全帽的顏色特征將特定顏色的安全帽從照片的背景中提取出來,參考文獻[3]中顏色提取的方法,這里先提取原始照片中的紅色、黃棕色兩種顏色的安全帽區域,利用不同色彩R、G、B三通道的顏色值的取值范圍,可以很輕松的提取出三種(紅色、棕色,黃色)安全帽的區域,設R(i,j)、G(i,j)、B(i,j)分別為某個像素點(i,j)的三通道顏色取值,通過嘗試可以發現滿足下面條件的取值的像素點可以將紅色、棕色的區域提取出:

這里取a=30,b=c=40。通過這些條件找出的區域記為U1。
通過類似的原理,提取出黃色安全帽的區域,具體如下:

通過經驗嘗試,取e=f=80,g=200。記提取出的黃色區域為U2。
在本文所采用的實驗圖片中藍色與白色的安全帽像素點都不滿足(3)式與(4)式那樣的明顯區別于空間背景色的特征,所以目前為止很難快速的進行有效提取。
則接下來要研究的對象便是U=U1?U2。實踐證明,通過這種方式能夠較快的將三種(紅色、黃色、棕色)顏色的安全帽區域找出來,進而形成標明這些安全帽的二值圖像如下:

圖1 安全帽區域提取效果圖
可以看出,根據彩色圖像的像素點的三個通道的取值可以將相應的安全帽對應的區域提取出來,從圖1可以看出,安全帽區域基本完全被提取出來了,但是安全帽區域內部出現了一些值為零的像素點,這是由于光照分布不均勻,反光所造成的,如果這部分區域過大,將會影響后面安全帽實際邊緣附近點的消除,進而影響靠近安全帽中心點的獲取,為了盡量減小這部分像素點,考慮進行連通域填充,膨脹或者調整a~g這幾個參數,考慮此處實際場景,要求算法效率盡可能高,而連通域填充算法過于復雜,圖像膨脹又會將靠的很近的區域連在一起,調整參數的方法能在很短時間內提取出相應區域,而且通過調整相應參數又能將安全帽內部區域的零像素點數目減少到足夠少,設圖像U為h*w像素大小,本文中為提高算法運行效率,將所有待測圖片統一為293×499的大小。
對于之前步驟提取到的安全帽區域的二值化圖像,安全帽有一定大小,在實際的電梯內部情形中,兩個安全帽有可能離得比較近,更有可能出現相互遮擋的情形(遮擋的情形暫不討論),所以不可能直接提取這些像素點進行模糊聚類,通過觀察發現安全帽邊緣的像素點的周圍有更多的零點,而靠近安全帽幾何中心的像素點周圍則具有更多的亮點,基于此,可將靠近安全帽邊緣的一部分像素點清除,余下的像素點更加靠近實際的幾何中心,這樣一來,就為模糊聚類提供了很大的幫助,此處為了降低運算復雜度,將安全帽區域的像素點離散化,具體如下:
將提取到的二值化圖像的非零點保存在一個矩陣A中,A是一個N行2列的矩陣,第一列保存著橫坐標,第二列保存著縱坐標,此處N表示非零像素點的個數,此處沒必要將所有的像素點都保存,只需要選取一些有代表的像素點,此處采取采樣的方式將連續分布的像素點進行離散化,對于提取出來的隨機排序的像素點按照相等的坐標間距再次提取得到保存像素點坐標的矩陣E,已達到降低運算復雜度的目的(此處根據實際情況每隔三個坐標取定下一個坐標),這樣得到的像素點基本均勻的分布在圖像中安全帽的區域范圍內,很明顯E?A,假設E中保存了k組坐標。E中保存的坐標點如下圖所示(這是只有一個安全帽的情形):

圖2 像素點的離散化采樣示意圖
為了得到一小部分接近安全帽實際中心的像素點,此處采取“逐步逼近”的方法,即逐步消除安全帽邊緣的點,這樣就可得到接近實際中心的一部分像素點坐標,根據邊緣附近的像素點周圍一定區域內的非零點數量或者說非零點所占的比例小于內部的像素點,可以將外部輪廓附近的非零點置零,最后得到的非零像素點都是非常接近安全帽中心的,具體如下:
生成一個與U完全相同的圖像,記為I,以I為背景參照計算E中保存的所有坐標點的周圍10個像素點范圍內非零像素點所占的比例,記為p,即:

其中,E(i)表示矩陣E中第i行所保存的一組坐標,count(E(i))表示在二值圖I中E(i)周圍10個像素距離范圍內非零像素點的數量,而sum(E(i))則表示在圖I中E(i)周圍10個像素距離范圍內的像素點總數量。
然后設定條件如下:

根據實際情景和經驗嘗試,選擇e=0.8,將E中滿足式條件的像素點保存到d中,d依然是每行保存一組坐標,顯然d?E(假設d中保存了f組坐標)。在二值圖I中將距離d中所有坐標s距離內的像素值全部置為零(s的具體表達形式在后面討論)。具體如下:
設distance(a,b)表示a、b兩組坐標之間的歐氏距離,則在二值圖像I中與d中某一個坐標距離小于s的所有非零像素點的集合可以表示為:

如圖3,較大圓形表示安全帽輪廓,大圓內部包含的小圓則表示通過“逐步逼近”方式尋找到的靠近安全帽幾何中心的像素點:

圖3 尋找模糊聚類樣本點示意圖
通過將安全帽邊緣附近的非零像素點置零這種方式來逼近安全帽的實際中心會將較小的安全帽區域完全消除。基于這種情況,此處根據安全帽的大小,不妨先將消除半徑s稍微設置的大一些,這樣較小的安全帽被完全消除,剩余一部分較大安全帽的靠近中心的區域。
找出I與E的交集部分像素點即:c=I?E,將c作為模糊聚類的樣本點,按照(1)式構造模糊矩陣R,在R這個矩陣中,r的形式采用歐氏距離的表示方法,即:

這樣,模糊矩陣R便形成了,選定λ=18,即:

當ri,j=1時,表示c中第i個坐標分量可以和第j個坐標分量進行合并,它們是屬于同一個安全帽內部的像素點,合并之后形成一組保存著一部分安全帽中心坐標的矩陣center。center中依然可能存在離的很近的若干組坐標,此時只需將center中保存的坐標再次進行一次上面所述的模糊聚類,將離的近的中心進行合并得到新的center,這就防止了安全帽的重復計數。
通過計算機測試發現,對于離得比較近的兩個安全帽也會有一定的效果,但是對于安全帽之間有相互遮擋的情形很難有效果。
上面的步驟將較小的安全帽區域完全消除,未能找到它們區域內的像素點,很明顯接下來要適當減小s,以防止較小的安全帽區域被完全消除,在U圖中將center中所有坐標的周圍30個像素范圍內的非零像素點置為零像素點,利用MATLAB在U與E中將center中所有坐標的周圍30個像素范圍內的所有像素的坐標值保存在矩陣D中,然后將U與E中屬于D的那部分像素點取值均置為零,即:

這樣便形成了新的U和E,將E矩陣中為零的行清空,形成新的E,之后再進行下一輪靠近安全帽實際中心的像素點的提取,同樣的進行模糊聚類,獲得聚類中心和安全帽數量。
如此進行下去,直到t>tmax,得到最終的安全帽個數。具體流程如下(tmax為必要的最大的邊緣消除的操作數,下面有說明):

圖4 中心點附近像素點的獲取及模糊聚類流程示意圖
由于拍攝視角不同,不同位置的安全帽所展現出的大小輪廓也不盡相同,事實上,在消除安全帽邊緣非零點時希望得到數量盡可能少、而且離真實安全帽中心盡可能近的點,這就要求進行每一輪消除安全帽邊緣區域時,消除半徑s盡可能大,即在不將所有像素點置為零的情況下,將盡可能多的像素點置為零,又由于之前的分析s的取值應該是逐漸減少的,這里按照如下方式設置s:

其中t=1,2,…tmax,tmax為必要的最大的邊緣消除的操作數,這里設為tmax=8,t初始值為1,每當完成一輪邊緣附近像素點的消除,t的值增加1,就這樣循環下去,直到 t>tmax。
實驗利用MATLAB在PC上運行,實驗所用圖像為在實驗室中拍攝所得,圖像中人數較多,在10個以上,在圖像中安全帽沒有相互遮擋且相互之間距離不是特別近的情形下,本算法體現出了較好的效果,可以有效地統計出安全帽數量,并對安全帽進行定位。
個人PC機配置為主頻2.40Ghz,內存為4.00GB,程序運行時間約為0.72秒,所采用的圖片為在教室中模擬電梯中場景拍攝所得,通過對50張圖片的測試,該算法的平均運行時間為0.72秒,準確率在86%以上。
通過對參與聚類的點進行上述簡化與處理,再進行模糊聚類,可以得到安全帽的數量以及各個安全帽的大概位置坐標,可以在原彩色圖像中標出安全帽如圖5所示。
本文采用模糊聚類算法進行圖像中彩色安全帽的統計計數,根據安全帽顏色特征提取出安全帽區域,此后,在這些非零的像素點中通過采樣將安全帽區域坐標離散化,選取出了一些代表性坐標,從而降低了運算復雜度,然后根據安全帽邊緣附近的點周圍零像素點占的比例比較高這一特征,將靠近安全帽實際邊緣的非零像素點清除(變成零像素點),這樣就得到了靠近安全帽實際中心的一部分點,這一過程相當于對模糊聚類進行了優化,通過模糊聚類,可以得出大小在一定范圍內的安全帽數量,然后在二值圖像中將這些安全帽對應區域的像素點取值變為零,然后使用同樣類似的方法去尋找輪廓更小的安全帽,如此進行下去,直到滿足循環結束的條件。實踐證明,光照條件較好的情形下該算法對特定顏色(紅色、棕色、黃色)的安全帽表現出了一定的準確度,對于有安全帽離得比較近甚至是一定程度輕微的粘連的情形依然表現出了一定的準確性,與現有的算法相比較,可以對場景中不同大小和輕度粘連的情形進行比較準確的定位,對人員比較密集的情形也能較好的應對,但是該算法計數結果對參數設置比較敏感,也會受到其他相同顏色物體比如衣服顏色或者較大面積的相同或相近顏色物體的干擾,對于安全帽有比較嚴重互相遮擋的情形也不能做出正確的判斷,之后將對算法進行改進,以期克服這些缺陷。

圖5 聚類結果及安全帽位置示意圖
[1]應俊.基于計算機視覺的電梯轎廂內人數統計研究[D].碩士學位論文.杭州電子科技大學,2012.
[2]靳海燕,熊慶宇,王楷,石為人.基于圖像處理的電梯轎廂內人數統計方法研究[J].儀器儀表學報,2011,32(6):161-165.
[3]楊靜,惠秦雙,徐彬.基于多信息融合的施工升降機轎廂人數統計方法研究[J].西安理工大學學報,2015,31(2):238-241.
[4]周迅,陶青川.基于HOG的電梯人數統計方法研究[J].現代計算機(專業版),2014(01).
[5]曾山.模糊聚類算法研究[D].博士學位論文.華中科技大學,2012.
[6]Ruspini HE.A New Approach to Clustering.Inf Cont.,1969,15:22-28.
[7]Zadeh LA.Similarity Relations and Fuzzy Orderings.Inf Sci.,1971,3:177-85.
[8]馮偉興,梁洪,王臣業.Visual C++數字圖像模式識別典型案例詳解[M].第1版.北京:機械工業出版社,2012:118-120.
[9]譚穎.文本挖掘中的聚類算法研究[D].碩士學位論文.吉林大學,2009.