程書(shū)睿,陳翰林,胡榮春
(1.西南科技大學(xué)理學(xué)院,綿陽(yáng) 621010;2.西南科技大學(xué)信息工程學(xué)院,綿陽(yáng) 621010)
現(xiàn)代社會(huì)高層建筑的使用越來(lái)越廣泛,電梯作為一種垂直的交通運(yùn)輸工具,也得到了越來(lái)越廣泛地利用,電梯的穩(wěn)定與安全運(yùn)行也越來(lái)越受到人們的廣泛關(guān)注。為了防止電梯超載而導(dǎo)致其不能安全穩(wěn)定的運(yùn)行,常常需要控制電梯轎廂內(nèi)的人數(shù),以防止電梯超載。
目前,研究人員已經(jīng)提出了多種關(guān)于人員檢測(cè)、人員計(jì)數(shù)的方法。文獻(xiàn)[1]中根據(jù)頭部輪廓特征,提出了一種基于直徑的改進(jìn)Hough變換頭部檢測(cè)算法用于實(shí)時(shí)統(tǒng)計(jì)電梯轎廂內(nèi)人數(shù);文獻(xiàn)[2]采用攝像頭獲取視頻流,通過(guò)圖像處理技術(shù)對(duì)進(jìn)出電梯的雙向人數(shù)進(jìn)行統(tǒng)計(jì),進(jìn)而統(tǒng)計(jì)出電梯內(nèi)部的人數(shù)。文獻(xiàn)[3]利用基于多信息融合的算法對(duì)電梯內(nèi)安全帽的數(shù)量統(tǒng)計(jì)達(dá)到了較高的準(zhǔn)確度,但是需要獲得空間中極端位置處的安全帽圖像樣本,采用線性擬合的方法獲得不同位置處的最小安全帽面積以檢測(cè)不同大小輪廓的安全帽,這種方式依賴(lài)于先驗(yàn)知識(shí)的獲??;文獻(xiàn)[4]采用機(jī)器學(xué)習(xí)的方法對(duì)安全帽進(jìn)行識(shí)別,準(zhǔn)確度達(dá)到80%以上,但是需要對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,而且訓(xùn)練時(shí)間比較長(zhǎng);本文所提出的算法避免了算法在實(shí)際應(yīng)用當(dāng)中對(duì)于先驗(yàn)知識(shí)的過(guò)分依賴(lài),而且通過(guò)大量圖像實(shí)驗(yàn)驗(yàn)證,本算法具有很好的時(shí)間效率和比較高的準(zhǔn)確率,算法的適用性強(qiáng)。
對(duì)于一些特殊的場(chǎng)景,例如施工場(chǎng)地的升降梯,由于施工工人們常常帶有安全帽,而安全帽本身所具有的特殊顏色就為安全帽的識(shí)別與計(jì)數(shù)提供了一定的方便,電梯內(nèi)部人數(shù)的統(tǒng)計(jì)可以通過(guò)安全帽的個(gè)數(shù)的統(tǒng)計(jì)來(lái)實(shí)現(xiàn),這就意味著,理論上可以將顏色作為區(qū)別安全帽與電梯內(nèi)部環(huán)境空間顏色的依據(jù)。
近些年來(lái),聚類(lèi)算法方面的研究取得了很多成果,很多種模糊聚類(lèi)算法被提出,其中比較常見(jiàn)的兩種為:一種是基于模糊關(guān)系的聚類(lèi)算法;另一種是基于目標(biāo)函數(shù)的聚類(lèi)算法。而第二種由于其設(shè)計(jì)簡(jiǎn)單、應(yīng)用范圍廣,本質(zhì)可歸結(jié)為優(yōu)化問(wèn)題等優(yōu)點(diǎn),使得該方法成為模糊聚類(lèi)分析的主要方法之一[5]。而基于模糊關(guān)系的聚類(lèi)算法在數(shù)據(jù)量比較少的情形下則表現(xiàn)出更好的性能。
Ruspini最早系統(tǒng)地對(duì)模糊聚類(lèi)進(jìn)行研究,并提出了數(shù)據(jù)集的模糊劃分[6];Zadeh[7]等也提出了基于相似關(guān)系和模糊關(guān)系的聚類(lèi)方法?;谀:P(guān)系的聚類(lèi)算法首先要建立模糊等價(jià)矩陣,當(dāng)待分類(lèi)的數(shù)據(jù)量很大的時(shí)候,采用這種方法的計(jì)算量就會(huì)很大。
由于后面我們對(duì)待處理數(shù)據(jù)進(jìn)行了有效地提取,使得最終能提取出數(shù)量有限的數(shù)據(jù)點(diǎn),這樣就避免了數(shù)據(jù)量過(guò)多的問(wèn)題,所以本文采用第一種基于模糊關(guān)系的聚類(lèi)算法。
參考書(shū)籍[8]中基于模糊關(guān)系的聚類(lèi)算法的相關(guān)描述,基于模糊關(guān)系的聚類(lèi)算法的基本原理可概括如下:
設(shè)S={X1,X2,…,XN}是待聚類(lèi)的全部樣本,每一個(gè)樣本都由n個(gè)特征表示。首先是求取樣本集中任意兩個(gè)樣本Xi與Xj之間的相關(guān)系數(shù)rij,進(jìn)而構(gòu)造模糊相似矩陣如下:
其中rij=μ(Xi,Xj),表示Xi與Xj的相關(guān)性。
計(jì)算 μ(Xi,Xj)的常用方法有數(shù)量積法、相關(guān)系數(shù)法、指數(shù)相似系數(shù)法等。對(duì)于相關(guān)系數(shù)法,即[9]:
其中-xi和-xj分別表示第i個(gè)和第 j個(gè)樣本的均值,xik表示第i個(gè)樣本的第k個(gè)特征,μ( )Xi,Xj越接近于1,則這兩個(gè)變量越接近;μ( )Xi,Xj越接近于-1,則關(guān)系越疏遠(yuǎn)。
然而,此處待處理對(duì)象是一系列像素點(diǎn)的坐標(biāo),它們的相近和疏遠(yuǎn)程度的最直接表征就是像素點(diǎn)坐標(biāo)之間的歐氏距離,很明顯此處選擇歐氏距離的表達(dá)方式更方便,如果rij的表達(dá)方式選擇歐氏距離,那么rij的值越小,則表示Xi與Xj離的越近,選擇合適的距離λ,當(dāng)rij<=λ時(shí),rij=1,表明 Xi與 Xj屬于同一類(lèi),其余情形rij=0,這樣得到了相應(yīng)矩陣Rλ,根據(jù)Rλ中各個(gè)元素的值便可實(shí)現(xiàn)類(lèi)的合并。
本文所研究的情形中,安全帽區(qū)域?yàn)楦信d趣區(qū)域(ROI),而且安全帽的顏色相對(duì)固定,較為完整的提取出安全帽區(qū)域是后續(xù)進(jìn)行聚類(lèi)、計(jì)數(shù)等步驟的基礎(chǔ),攝像頭采集到的圖像往往包含著好幾種顏色的安全帽,本文則討論三種比較容易快速提取出來(lái)(紅色、棕色,黃色)的安全帽,這三種顏色的R、G、B三個(gè)通道的取值具有很明顯的有助于區(qū)別于空間中其他顏色的特征,根據(jù)這些特征提取出這些安全帽區(qū)域的二值圖像,而白色的安全帽與空間環(huán)境的背景顏色很接近,所以很難將其從圖像中提取出來(lái),而對(duì)于藍(lán)色安全帽,它的三個(gè)通道的取值非常接近,并且與背景中較暗的部分難以進(jìn)行有效的分離,所以很難在比較短的時(shí)間內(nèi)比較準(zhǔn)確的提取出藍(lán)色安全帽的區(qū)域。
顏色特征是安全帽的最明顯的特征,可以利用安全帽的顏色特征將特定顏色的安全帽從照片的背景中提取出來(lái),參考文獻(xiàn)[3]中顏色提取的方法,這里先提取原始照片中的紅色、黃棕色兩種顏色的安全帽區(qū)域,利用不同色彩R、G、B三通道的顏色值的取值范圍,可以很輕松的提取出三種(紅色、棕色,黃色)安全帽的區(qū)域,設(shè)R(i,j)、G(i,j)、B(i,j)分別為某個(gè)像素點(diǎn)(i,j)的三通道顏色取值,通過(guò)嘗試可以發(fā)現(xiàn)滿(mǎn)足下面條件的取值的像素點(diǎn)可以將紅色、棕色的區(qū)域提取出:
這里取a=30,b=c=40。通過(guò)這些條件找出的區(qū)域記為U1。
通過(guò)類(lèi)似的原理,提取出黃色安全帽的區(qū)域,具體如下:
通過(guò)經(jīng)驗(yàn)嘗試,取e=f=80,g=200。記提取出的黃色區(qū)域?yàn)閁2。
在本文所采用的實(shí)驗(yàn)圖片中藍(lán)色與白色的安全帽像素點(diǎn)都不滿(mǎn)足(3)式與(4)式那樣的明顯區(qū)別于空間背景色的特征,所以目前為止很難快速的進(jìn)行有效提取。
則接下來(lái)要研究的對(duì)象便是U=U1?U2。實(shí)踐證明,通過(guò)這種方式能夠較快的將三種(紅色、黃色、棕色)顏色的安全帽區(qū)域找出來(lái),進(jìn)而形成標(biāo)明這些安全帽的二值圖像如下:
圖1 安全帽區(qū)域提取效果圖
可以看出,根據(jù)彩色圖像的像素點(diǎn)的三個(gè)通道的取值可以將相應(yīng)的安全帽對(duì)應(yīng)的區(qū)域提取出來(lái),從圖1可以看出,安全帽區(qū)域基本完全被提取出來(lái)了,但是安全帽區(qū)域內(nèi)部出現(xiàn)了一些值為零的像素點(diǎn),這是由于光照分布不均勻,反光所造成的,如果這部分區(qū)域過(guò)大,將會(huì)影響后面安全帽實(shí)際邊緣附近點(diǎn)的消除,進(jìn)而影響靠近安全帽中心點(diǎn)的獲取,為了盡量減小這部分像素點(diǎn),考慮進(jìn)行連通域填充,膨脹或者調(diào)整a~g這幾個(gè)參數(shù),考慮此處實(shí)際場(chǎng)景,要求算法效率盡可能高,而連通域填充算法過(guò)于復(fù)雜,圖像膨脹又會(huì)將靠的很近的區(qū)域連在一起,調(diào)整參數(shù)的方法能在很短時(shí)間內(nèi)提取出相應(yīng)區(qū)域,而且通過(guò)調(diào)整相應(yīng)參數(shù)又能將安全帽內(nèi)部區(qū)域的零像素點(diǎn)數(shù)目減少到足夠少,設(shè)圖像U為h*w像素大小,本文中為提高算法運(yùn)行效率,將所有待測(cè)圖片統(tǒng)一為293×499的大小。
對(duì)于之前步驟提取到的安全帽區(qū)域的二值化圖像,安全帽有一定大小,在實(shí)際的電梯內(nèi)部情形中,兩個(gè)安全帽有可能離得比較近,更有可能出現(xiàn)相互遮擋的情形(遮擋的情形暫不討論),所以不可能直接提取這些像素點(diǎn)進(jìn)行模糊聚類(lèi),通過(guò)觀察發(fā)現(xiàn)安全帽邊緣的像素點(diǎn)的周?chē)懈嗟牧泓c(diǎn),而靠近安全帽幾何中心的像素點(diǎn)周?chē)鷦t具有更多的亮點(diǎn),基于此,可將靠近安全帽邊緣的一部分像素點(diǎn)清除,余下的像素點(diǎn)更加靠近實(shí)際的幾何中心,這樣一來(lái),就為模糊聚類(lèi)提供了很大的幫助,此處為了降低運(yùn)算復(fù)雜度,將安全帽區(qū)域的像素點(diǎn)離散化,具體如下:
將提取到的二值化圖像的非零點(diǎn)保存在一個(gè)矩陣A中,A是一個(gè)N行2列的矩陣,第一列保存著橫坐標(biāo),第二列保存著縱坐標(biāo),此處N表示非零像素點(diǎn)的個(gè)數(shù),此處沒(méi)必要將所有的像素點(diǎn)都保存,只需要選取一些有代表的像素點(diǎn),此處采取采樣的方式將連續(xù)分布的像素點(diǎn)進(jìn)行離散化,對(duì)于提取出來(lái)的隨機(jī)排序的像素點(diǎn)按照相等的坐標(biāo)間距再次提取得到保存像素點(diǎn)坐標(biāo)的矩陣E,已達(dá)到降低運(yùn)算復(fù)雜度的目的(此處根據(jù)實(shí)際情況每隔三個(gè)坐標(biāo)取定下一個(gè)坐標(biāo)),這樣得到的像素點(diǎn)基本均勻的分布在圖像中安全帽的區(qū)域范圍內(nèi),很明顯E?A,假設(shè)E中保存了k組坐標(biāo)。E中保存的坐標(biāo)點(diǎn)如下圖所示(這是只有一個(gè)安全帽的情形):
圖2 像素點(diǎn)的離散化采樣示意圖
為了得到一小部分接近安全帽實(shí)際中心的像素點(diǎn),此處采取“逐步逼近”的方法,即逐步消除安全帽邊緣的點(diǎn),這樣就可得到接近實(shí)際中心的一部分像素點(diǎn)坐標(biāo),根據(jù)邊緣附近的像素點(diǎn)周?chē)欢▍^(qū)域內(nèi)的非零點(diǎn)數(shù)量或者說(shuō)非零點(diǎn)所占的比例小于內(nèi)部的像素點(diǎn),可以將外部輪廓附近的非零點(diǎn)置零,最后得到的非零像素點(diǎn)都是非常接近安全帽中心的,具體如下:
生成一個(gè)與U完全相同的圖像,記為I,以I為背景參照計(jì)算E中保存的所有坐標(biāo)點(diǎn)的周?chē)?0個(gè)像素點(diǎn)范圍內(nèi)非零像素點(diǎn)所占的比例,記為p,即:
其中,E(i)表示矩陣E中第i行所保存的一組坐標(biāo),count(E(i))表示在二值圖I中E(i)周?chē)?0個(gè)像素距離范圍內(nèi)非零像素點(diǎn)的數(shù)量,而sum(E(i))則表示在圖I中E(i)周?chē)?0個(gè)像素距離范圍內(nèi)的像素點(diǎn)總數(shù)量。
然后設(shè)定條件如下:
根據(jù)實(shí)際情景和經(jīng)驗(yàn)嘗試,選擇e=0.8,將E中滿(mǎn)足式條件的像素點(diǎn)保存到d中,d依然是每行保存一組坐標(biāo),顯然d?E(假設(shè)d中保存了f組坐標(biāo))。在二值圖I中將距離d中所有坐標(biāo)s距離內(nèi)的像素值全部置為零(s的具體表達(dá)形式在后面討論)。具體如下:
設(shè)distance(a,b)表示a、b兩組坐標(biāo)之間的歐氏距離,則在二值圖像I中與d中某一個(gè)坐標(biāo)距離小于s的所有非零像素點(diǎn)的集合可以表示為:
如圖3,較大圓形表示安全帽輪廓,大圓內(nèi)部包含的小圓則表示通過(guò)“逐步逼近”方式尋找到的靠近安全帽幾何中心的像素點(diǎn):
圖3 尋找模糊聚類(lèi)樣本點(diǎn)示意圖
通過(guò)將安全帽邊緣附近的非零像素點(diǎn)置零這種方式來(lái)逼近安全帽的實(shí)際中心會(huì)將較小的安全帽區(qū)域完全消除。基于這種情況,此處根據(jù)安全帽的大小,不妨先將消除半徑s稍微設(shè)置的大一些,這樣較小的安全帽被完全消除,剩余一部分較大安全帽的靠近中心的區(qū)域。
找出I與E的交集部分像素點(diǎn)即:c=I?E,將c作為模糊聚類(lèi)的樣本點(diǎn),按照(1)式構(gòu)造模糊矩陣R,在R這個(gè)矩陣中,r的形式采用歐氏距離的表示方法,即:
這樣,模糊矩陣R便形成了,選定λ=18,即:
當(dāng)ri,j=1時(shí),表示c中第i個(gè)坐標(biāo)分量可以和第j個(gè)坐標(biāo)分量進(jìn)行合并,它們是屬于同一個(gè)安全帽內(nèi)部的像素點(diǎn),合并之后形成一組保存著一部分安全帽中心坐標(biāo)的矩陣center。center中依然可能存在離的很近的若干組坐標(biāo),此時(shí)只需將center中保存的坐標(biāo)再次進(jìn)行一次上面所述的模糊聚類(lèi),將離的近的中心進(jìn)行合并得到新的center,這就防止了安全帽的重復(fù)計(jì)數(shù)。
通過(guò)計(jì)算機(jī)測(cè)試發(fā)現(xiàn),對(duì)于離得比較近的兩個(gè)安全帽也會(huì)有一定的效果,但是對(duì)于安全帽之間有相互遮擋的情形很難有效果。
上面的步驟將較小的安全帽區(qū)域完全消除,未能找到它們區(qū)域內(nèi)的像素點(diǎn),很明顯接下來(lái)要適當(dāng)減小s,以防止較小的安全帽區(qū)域被完全消除,在U圖中將center中所有坐標(biāo)的周?chē)?0個(gè)像素范圍內(nèi)的非零像素點(diǎn)置為零像素點(diǎn),利用MATLAB在U與E中將center中所有坐標(biāo)的周?chē)?0個(gè)像素范圍內(nèi)的所有像素的坐標(biāo)值保存在矩陣D中,然后將U與E中屬于D的那部分像素點(diǎn)取值均置為零,即:
這樣便形成了新的U和E,將E矩陣中為零的行清空,形成新的E,之后再進(jìn)行下一輪靠近安全帽實(shí)際中心的像素點(diǎn)的提取,同樣的進(jìn)行模糊聚類(lèi),獲得聚類(lèi)中心和安全帽數(shù)量。
如此進(jìn)行下去,直到t>tmax,得到最終的安全帽個(gè)數(shù)。具體流程如下(tmax為必要的最大的邊緣消除的操作數(shù),下面有說(shuō)明):
圖4 中心點(diǎn)附近像素點(diǎn)的獲取及模糊聚類(lèi)流程示意圖
由于拍攝視角不同,不同位置的安全帽所展現(xiàn)出的大小輪廓也不盡相同,事實(shí)上,在消除安全帽邊緣非零點(diǎn)時(shí)希望得到數(shù)量盡可能少、而且離真實(shí)安全帽中心盡可能近的點(diǎn),這就要求進(jìn)行每一輪消除安全帽邊緣區(qū)域時(shí),消除半徑s盡可能大,即在不將所有像素點(diǎn)置為零的情況下,將盡可能多的像素點(diǎn)置為零,又由于之前的分析s的取值應(yīng)該是逐漸減少的,這里按照如下方式設(shè)置s:
其中t=1,2,…tmax,tmax為必要的最大的邊緣消除的操作數(shù),這里設(shè)為tmax=8,t初始值為1,每當(dāng)完成一輪邊緣附近像素點(diǎn)的消除,t的值增加1,就這樣循環(huán)下去,直到 t>tmax。
實(shí)驗(yàn)利用MATLAB在PC上運(yùn)行,實(shí)驗(yàn)所用圖像為在實(shí)驗(yàn)室中拍攝所得,圖像中人數(shù)較多,在10個(gè)以上,在圖像中安全帽沒(méi)有相互遮擋且相互之間距離不是特別近的情形下,本算法體現(xiàn)出了較好的效果,可以有效地統(tǒng)計(jì)出安全帽數(shù)量,并對(duì)安全帽進(jìn)行定位。
個(gè)人PC機(jī)配置為主頻2.40Ghz,內(nèi)存為4.00GB,程序運(yùn)行時(shí)間約為0.72秒,所采用的圖片為在教室中模擬電梯中場(chǎng)景拍攝所得,通過(guò)對(duì)50張圖片的測(cè)試,該算法的平均運(yùn)行時(shí)間為0.72秒,準(zhǔn)確率在86%以上。
通過(guò)對(duì)參與聚類(lèi)的點(diǎn)進(jìn)行上述簡(jiǎn)化與處理,再進(jìn)行模糊聚類(lèi),可以得到安全帽的數(shù)量以及各個(gè)安全帽的大概位置坐標(biāo),可以在原彩色圖像中標(biāo)出安全帽如圖5所示。
本文采用模糊聚類(lèi)算法進(jìn)行圖像中彩色安全帽的統(tǒng)計(jì)計(jì)數(shù),根據(jù)安全帽顏色特征提取出安全帽區(qū)域,此后,在這些非零的像素點(diǎn)中通過(guò)采樣將安全帽區(qū)域坐標(biāo)離散化,選取出了一些代表性坐標(biāo),從而降低了運(yùn)算復(fù)雜度,然后根據(jù)安全帽邊緣附近的點(diǎn)周?chē)阆袼攸c(diǎn)占的比例比較高這一特征,將靠近安全帽實(shí)際邊緣的非零像素點(diǎn)清除(變成零像素點(diǎn)),這樣就得到了靠近安全帽實(shí)際中心的一部分點(diǎn),這一過(guò)程相當(dāng)于對(duì)模糊聚類(lèi)進(jìn)行了優(yōu)化,通過(guò)模糊聚類(lèi),可以得出大小在一定范圍內(nèi)的安全帽數(shù)量,然后在二值圖像中將這些安全帽對(duì)應(yīng)區(qū)域的像素點(diǎn)取值變?yōu)榱?,然后使用同樣?lèi)似的方法去尋找輪廓更小的安全帽,如此進(jìn)行下去,直到滿(mǎn)足循環(huán)結(jié)束的條件。實(shí)踐證明,光照條件較好的情形下該算法對(duì)特定顏色(紅色、棕色、黃色)的安全帽表現(xiàn)出了一定的準(zhǔn)確度,對(duì)于有安全帽離得比較近甚至是一定程度輕微的粘連的情形依然表現(xiàn)出了一定的準(zhǔn)確性,與現(xiàn)有的算法相比較,可以對(duì)場(chǎng)景中不同大小和輕度粘連的情形進(jìn)行比較準(zhǔn)確的定位,對(duì)人員比較密集的情形也能較好的應(yīng)對(duì),但是該算法計(jì)數(shù)結(jié)果對(duì)參數(shù)設(shè)置比較敏感,也會(huì)受到其他相同顏色物體比如衣服顏色或者較大面積的相同或相近顏色物體的干擾,對(duì)于安全帽有比較嚴(yán)重互相遮擋的情形也不能做出正確的判斷,之后將對(duì)算法進(jìn)行改進(jìn),以期克服這些缺陷。
圖5 聚類(lèi)結(jié)果及安全帽位置示意圖
[1]應(yīng)俊.基于計(jì)算機(jī)視覺(jué)的電梯轎廂內(nèi)人數(shù)統(tǒng)計(jì)研究[D].碩士學(xué)位論文.杭州電子科技大學(xué),2012.
[2]靳海燕,熊慶宇,王楷,石為人.基于圖像處理的電梯轎廂內(nèi)人數(shù)統(tǒng)計(jì)方法研究[J].儀器儀表學(xué)報(bào),2011,32(6):161-165.
[3]楊靜,惠秦雙,徐彬.基于多信息融合的施工升降機(jī)轎廂人數(shù)統(tǒng)計(jì)方法研究[J].西安理工大學(xué)學(xué)報(bào),2015,31(2):238-241.
[4]周迅,陶青川.基于HOG的電梯人數(shù)統(tǒng)計(jì)方法研究[J].現(xiàn)代計(jì)算機(jī)(專(zhuān)業(yè)版),2014(01).
[5]曾山.模糊聚類(lèi)算法研究[D].博士學(xué)位論文.華中科技大學(xué),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]馮偉興,梁洪,王臣業(yè).Visual C++數(shù)字圖像模式識(shí)別典型案例詳解[M].第1版.北京:機(jī)械工業(yè)出版社,2012:118-120.
[9]譚穎.文本挖掘中的聚類(lèi)算法研究[D].碩士學(xué)位論文.吉林大學(xué),2009.