摘 要:特征提取一直是模式分類問題中的關(guān)鍵步驟,對(duì)基于身體碎片外形輪廓及其和人物中心相對(duì)位置特征的提取算法進(jìn)行研究。此算法操作簡單,這些特征是在所有位置和所有大小上提取的,使制作的分類器滿足平移和縮放不變性,并且他還是基于有標(biāo)注數(shù)據(jù)庫的。此算法可用于基于物體碎片特征的人臉識(shí)別系統(tǒng)、車輛和人體的自動(dòng)視頻監(jiān)測系統(tǒng)以及其他的監(jiān)控系統(tǒng)和圖像檢索中。
關(guān)鍵詞:特征提取;濾波器;邊緣檢測;物體碎片特征
中圖分類號(hào):TP391.41文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2008)08-131-04
Features Extraction Algorithm Research Based on Persons′ Patches
CHENG Lifang,ZHAO Mingchang,ZHANG Xiangwen,HE Ying
(Department of Computer and Control,Guilin ElectronicTechnology University,Guilin,541004,China)
Abstract:Features extraction is always the key step.This article describes the extraction algorithm based on the figure of persons′ patches and correlational location with the center of person.This algorithm can be performed simply.And these features are extracted at all the location and scales.So the classifier made with it is unvaried in translation and scale.And it is also built on the label database.This algorithm can be used in the face recognition system,person and vehicle automated visual surveillance,other surveillancesystem and image searches,which based on the patches feature.
Keywords:features extraction;filter;edge detection;patches feature
特征提取器通常要提取具有如下性質(zhì)的特征描述,即,來自同一類別的不同樣本的特征值應(yīng)該非常相近,而來自不同類別樣本的特征值應(yīng)該有很大的差異。所以提取的特征對(duì)于類別信息不相關(guān)的變換具有不變性(invariant),而且特征提取比分類更加依賴于具體問題和具體領(lǐng)域,因此相應(yīng)領(lǐng)域的知識(shí)是必需的。在行人檢測過程中,需要對(duì)目標(biāo)圖像進(jìn)行分析,以判斷其是否為人。在本文所述的算法中,使用特征而不是直接使用原始的像素對(duì)人體模式進(jìn)行建模。特征一般是對(duì)待分類對(duì)象所擁有的屬性知識(shí)進(jìn)行編碼得到的,就圖像而言,這些知識(shí)是從原始像素中很難獲取的。
本文采用人物的身體碎片的幾何外形輪廓及其和人物中心的相對(duì)位置作為特征對(duì)人物進(jìn)行檢測,許多文章也用到了類似的方法,比如:基于成分的汽車檢測和人臉檢測方法[1,2],這些方法是先檢測物體的部分成分(這些物體的成分是預(yù)先人工標(biāo)注好的[1]),然后再把這些成分綜合起來檢測物體,并且目前尚無這些方法應(yīng)用于人物檢測的文獻(xiàn)。下面具體介紹人體碎片的特征提取算法。
1 數(shù)據(jù)庫簡介
由于本文人物檢測采用的是對(duì)人物輪廓有標(biāo)注的LabelMe數(shù)據(jù)庫[CD2]對(duì)于圖像注釋的數(shù)據(jù)庫,并且還是基于網(wǎng)絡(luò)的。檢測自然界中、混亂圖像中普通的物體類別,是計(jì)算機(jī)視覺的神圣的任務(wù)之一。為了向這個(gè)目標(biāo)前進(jìn),最基本的是要有大量具有挑戰(zhàn)性的圖片數(shù)據(jù)庫。在這些圖片中,地面實(shí)況被標(biāo)注出來以利于公用,這些標(biāo)注應(yīng)該提供每個(gè)圖片中物體的類別信息,而且還有物體的形狀和位置,另外也可能還有其他的性質(zhì),比如,姿態(tài)。這個(gè)數(shù)據(jù)庫可以用于測試(算法比較),而且還可用于監(jiān)督學(xué)習(xí)的訓(xùn)練[3]。
這里下載LabelMe的全部數(shù)據(jù)庫,從此數(shù)據(jù)庫中提取15 592張帶有人物的圖片,選出30張圖片用于提取人物碎片和背景碎片,并且從每幅圖片提取20張人體碎片和30張背景碎片,并且選取800張用于訓(xùn)練,其余的圖片用于測試。
2 身體碎片提取的過程
人物身體碎片特征提取的一般過程如圖1所示。
2.1 邊緣檢測
本文采用Canny算子進(jìn)行邊緣檢測,Canny指出評(píng)價(jià)邊緣檢測算子性能的3個(gè)指標(biāo)[4]:
(1) 對(duì)邊緣點(diǎn)的錯(cuò)檢率和丟失率要低;
(2) 良好的定位性能,希望檢測出的邊緣點(diǎn)要盡可能地在實(shí)際邊緣的中心;
(3) 對(duì)單一邊緣要有惟一響應(yīng),希望得到的邊界為單像素寬,以便盡可能地抑制虛假邊緣。
圖1 身體碎片特征提取的過程
下面介紹Canny算子的邊緣檢測利用Matlab工具箱函數(shù)edge的實(shí)現(xiàn)。其具體的語法為[5]:
[g,t]=edge(f′,canny′,T,sigma)
這里f為輸入的圖像,T為一個(gè)向量,T=,參數(shù)T1和T2分別表示山脊像素值的閾值;這里T1 由圖2(b)圖和圖2(c)可以看出,(c)圖把原圖像的許多細(xì)節(jié)都給忽略掉了,這不利于后面的碎片提取。為了使碎片特征提取的更加精確,這里選用(b)圖的閾值,即,T取閾值[0.001 0.01],sigma取缺省值1。 圖2 Canny邊緣檢測 2.2 人物閾值模板 由于本文人物檢測采用的是對(duì)人物輪廓有標(biāo)注的LabelMe數(shù)據(jù)庫。利用人物的輪廓被事先標(biāo)注出來這一特點(diǎn),可通過讀取目標(biāo)人物的(x,y)坐標(biāo),通過邏輯運(yùn)算。即:對(duì)于坐標(biāo)點(diǎn)在輪廓多邊形上或以內(nèi)的坐標(biāo),邏輯為真,否則為假,可得到人物模板如圖3所示。 這里標(biāo)注的人物的x,y的坐標(biāo)通過自定義函數(shù)LMobjectpolygon[5]獲得,人物的掩模通過Matlab工具箱里的兩個(gè)函數(shù)來獲得的,即logical和inpolygon,其語法規(guī)則為: mask=logical(inpolygon(x,y,X{1},Y{1})) 其中mask表示人物掩模;x和y表示輸入的圖像中的坐標(biāo);X{1}和Y{1}表示標(biāo)注的人物的所有的x坐標(biāo)和y坐標(biāo)。inpolygon表示坐標(biāo)(x,y)在由X{1}和Y{1}所確定的多邊形內(nèi)或多邊形上,然后用logical來進(jìn)行邏輯判斷,如果坐標(biāo)(x,y)在多邊形內(nèi)或多邊形上就判斷為真,即邏輯賦值為1;否則為假,則邏輯賦值為0,則輸出的圖像為一幅黑白的二值化圖像如圖3所示。 2.3 實(shí)現(xiàn)邊緣分割 分割(Segmentation),指的是將圖像分成不同的區(qū)域,每個(gè)區(qū)域?qū)?yīng)著一個(gè)感興趣的物體,屬于高層次的圖像分析的研究范疇,從輸入圖像得到物體的抽象表示,他是一個(gè)很困難的問題,是目前圖像處理、圖像分析中研究的熱點(diǎn)之一。邊緣分割是通過檢測出圖像邊緣,然后再利用閾值分割算法把邊緣分割出來。 閾值分割算法是最簡單,也是最經(jīng)典、最常用的分割算法之一。即,設(shè)定一個(gè)閾值T,如果某個(gè)像素的灰度值小于或者等于T的話,將這個(gè)像素的灰度值置0;否則,將這個(gè)像素的灰度值置為255,得到的分割后的圖像是一個(gè)二值圖像(Binary Image),只包含2個(gè)灰度等級(jí)。 本文利用數(shù)組乘法來實(shí)現(xiàn)邊緣分割,即2幅圖像的對(duì)應(yīng)像素值相乘來實(shí)現(xiàn),這就要求兩幅圖像要大小一樣,本文的圖2(b)和圖3正好滿足這一要求,用Matlab實(shí)現(xiàn)為: I=g#8226;mask 其中I為輸出的圖像,如圖4所示。 圖3 人物模板圖4 邊緣分割圖像 由圖4可以看出,這個(gè)算法有效地實(shí)現(xiàn)了邊緣分割,使人物輪廓上的邊緣清晰可見,為后面碎片特征的提取打下很好的基礎(chǔ)。 2.4 身體碎片特征的提取 2.4.1 簡單特征的組合 由于人體姿態(tài)多變,并且所處的環(huán)境復(fù)雜,有很多復(fù)雜的物體和人物處于同一個(gè)環(huán)境中,比如:樹木、各種車輛、建筑物等,而且外界環(huán)境多變,容易受到許多的噪音的影響,使得圖片的質(zhì)量變差,人物的分辨率變低,要從這樣的圖片中把人物精確的檢測出來,是一件非常困難的事情。這使圖像處理扮演著一個(gè)非常重要的角色。 本文把幾個(gè)邊緣檢測及圖像增強(qiáng)算子組合在一起,構(gòu)成一個(gè)特征組合,即: {[1],… [1 2 1;0 0 0;-1 -2 -1]/2,… [1 0 -1;2 0 -2;1 0 -1]/2,… [-1 -1 -1;-1 8 -1;-1 -1 -1]} 其中, [1] 表示原圖像,顯示原圖像的特征; [1 2 1;0 0 0;-1 -2 -1]/2表示y梯度方向的Sobel算子,在y方向?qū)D像進(jìn)行邊緣增強(qiáng),增強(qiáng)人物y方向的邊緣特征; [1 0 -1;2 0 -2;1 0 -1]/2表示x梯度方向的Sobel算子,在x方向?qū)D像進(jìn)行邊緣增強(qiáng),增強(qiáng)人物x方向的邊緣特征; [-1 -1 -1;-1 8 -1;-1 -1 -1]表示Laplacian算子,對(duì)圖像進(jìn)行點(diǎn)增強(qiáng),增強(qiáng)人物中心和選中的興趣點(diǎn)的特征。 這個(gè)濾波器組從4個(gè)方面對(duì)輸入圖像進(jìn)行處理,幾乎增強(qiáng)了圖像中各個(gè)方面的細(xì)節(jié),反映了主要的圖像信息,使其泛化能力進(jìn)一步增強(qiáng)。 2.4.2 提取碎片特征 首先確定從數(shù)據(jù)庫中選出要?jiǎng)?chuàng)建碎片字典的圖像的數(shù)量,這里選出30幅圖像用于創(chuàng)建碎片字典,并從每幅圖像上提取20個(gè)小碎片,小碎片的大小從9到25個(gè)像素每隔2個(gè)像素變化。然后,從上面分割的邊緣圖像上,隨機(jī)采樣,即從圖4人物邊緣圖像上隨機(jī)選出20個(gè)點(diǎn),這20個(gè)點(diǎn)的坐標(biāo)是已經(jīng)標(biāo)注的人物上的坐標(biāo)。按照這20個(gè)點(diǎn)確定的坐標(biāo),隨機(jī)選取小碎片的大小,從被濾波器組濾波的圖像上切割出小碎片。 具體在Matlab中的實(shí)現(xiàn)步驟如下: (1) 利用find函數(shù)找到邊緣圖像上的點(diǎn)(xo,yo),其語法如下: [yo,xo]=find(g#8226;mask) 在圖像4的邊緣分割圖像上找到一系列的邊緣點(diǎn)。 (2) 把這些邊緣上的點(diǎn)任意排列,利用確定的小碎片的數(shù)量,對(duì)這些點(diǎn)進(jìn)行索引。 (3) 利用函數(shù)rand——表示均勻分布的隨機(jī)值,實(shí)現(xiàn)對(duì)小碎片大小的隨機(jī)采樣。如果用p表示采樣的小碎片的大小,則從通過convCrossConv函數(shù)[6]濾波的4張二維圖像(用out表示)上切割的小碎片如式(1)所示: patch=double(out(yo(lp)-p/2:yo(lp)+ p/2,xo(lp)-p/2:xo(lp)+p/2,lf))(1) 這里lp表示從1到每幅圖像提取的碎片的數(shù)量(這里為20)進(jìn)行變化。lf表示從1到濾波器組的數(shù)量(這里為4)變化,表示用從對(duì)應(yīng)的濾波器濾波的圖像上采樣,可以用圖5來表示,其中點(diǎn)b(xo(lp),yo(lp))為人物邊緣分割圖像上的點(diǎn)。然后,隨機(jī)選取這些碎片,建立人物碎片圖片庫,如圖6所示為人物身體碎片圖片庫的部分碎片。 圖5 切割小碎片 圖6 部分身體碎片 2.5 提取碎片和人體中心的相對(duì)位置圖像 由于本文介紹的人物檢測要利用身體碎片對(duì)身體中心位置的投票,所以確定人物身體碎片相對(duì)于人物身體中心的位置就顯得非常重要。這里利用二維可分離濾波器確定身體碎片相對(duì)于身體中心的位置。其具體的操作步驟如下: (1) 由lp從1到每幅圖像提取的碎片的數(shù)量(這里為20)進(jìn)行變化來控制一個(gè)循環(huán),以保證遍歷每幅圖像提取的碎片。 (2) 確定碎片相對(duì)于人物中心位置的寬度Lx,和高度Ly,即Lx=2|xo(lp)-cx|+1,Ly=2|yo(lp)-cy|+1,這里xo,yo表示人物身體上的坐標(biāo);cx,cy表示人物身體中心的坐標(biāo)。如圖7所示。 (3) 然后取Lx大的零向量gx,用Matlab實(shí)現(xiàn)的語法為:gx=zeros(1,Lx),并且,gx((Lx+1)/2-(xo(lp)-cx))=1,由此可以看出,當(dāng)xo(lp)≥cx時(shí),gx(1)=1;當(dāng)xo(lp) (4) 為了使gx和gy具有低通濾波的作用,現(xiàn)選取空域?yàn)V波器:locSigma=e-(-7:7)2/72和gx,gy分別卷積,并把卷積結(jié)果分別賦予gx和gy,用Matlab的語法實(shí)現(xiàn)為: gx=conv(gx,locSigma), gy=conv(gy,locSigma) 這里conv為Matlab的卷積函數(shù)。這里用到一個(gè)條件語句,如果size(gx) 最后,把上述提取的2 400個(gè)身體碎片特征及其和身體中心的相對(duì)位置以及原圖像的索引都存儲(chǔ)在碎片字典中,以利于后面的進(jìn)一步處理。 3 結(jié) 語 本文詳細(xì)介紹了人物身體碎片特征的提取過程,以及邊緣檢測和邊緣分割算法,提出利用簡單特征的組合濾波器和二維可分離濾波器來對(duì)圖像進(jìn)行濾波,這個(gè)圖像處理方法也可用于其他的特征提取器中。 圖7 碎片和人物中心的相對(duì)位置 圖8 部分碎片和人體中心的相對(duì)位置圖像 從模式分類的角度來說,利用特征對(duì)目標(biāo)進(jìn)行建模有利于減小同類目標(biāo)對(duì)象的類內(nèi)距離,增加分類對(duì)象之間的類間距離。 使用特征相比于像素更有利于建立判別函數(shù),從而得到更好的分類結(jié)果。在模式分類問題研究的發(fā)展過程中,特征的提取扮演著越來越重要的角色。 參 考 文 獻(xiàn) [1]Leung B.Componentbased Car Detection in Street Scene Images[D].EECS,MIT,2004. [2]Heisele B,Serre T,Pontil M,et al.Componentbased Face Detection[C].IEEE Conference on Computer Vision and Pattern Recognition,Hawaii,2001(1):657662. [3]Rivlin E,Rudzsky M,Goldenberg R,et al.A RealTime System for Classification of Moving Objects[J].In Proc.16th Int′l Conf.on Pattern Recognition.Quebec City,Quebec,2002,3:688691. [4]Qiang Zhu,Shai Avidan,MeiChen Yeh,et al.Fast Human Detection Using a Cascade of Histograms of Oriented Gradients[C].IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2006,2:1 4911 498. [5]Rafael C Gonzalez,Richard E Woods,Steven L Eddins.Digital Image Processing Using MATLAB[M].北京:電子工業(yè)出版社,2004. [6]http://people.csail.mit.edu/torralba/shortCourseRLOC/boosting/boosting.html.[HJ0] 作者簡介 程麗芳 女,1974年出生,山東東明人,桂林電子科技大學(xué)碩士研究生。主要研究方向?yàn)槟J阶R(shí)別與智能控制。 趙明昌 男,1977年出生,河南新鄭人,副研究員,中科院自動(dòng)化所博士后。主要研究方向?yàn)槟J阶R(shí)別、圖像圖形學(xué)。 注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文