本發(fā)明涉及模式識(shí)別技術(shù)領(lǐng)域,具體涉及一種基于無監(jiān)督深度模型與層次屬性的行人再識(shí)別方法。
背景技術(shù):
隨著人們對(duì)社會(huì)公共安全的日益關(guān)注以及視頻采集技術(shù)和大規(guī)模數(shù)據(jù)存儲(chǔ)技術(shù)的發(fā)展,大量的監(jiān)控?cái)z像頭應(yīng)用在商場(chǎng)、公園、學(xué)校、醫(yī)院、公司、體育場(chǎng)館、大型廣場(chǎng)、地鐵站等人群密集易發(fā)生公共安全事件的場(chǎng)所。監(jiān)控?cái)z像的出現(xiàn)無疑給人們帶來了極大便利。監(jiān)控視頻可為公安部門提供諸如商場(chǎng)盜竊、聚眾斗毆、銀行卡盜竊等重大刑事案件的線索;同時(shí)也可為交通協(xié)管部門提供大量實(shí)時(shí)交通路況信息方便其對(duì)交通進(jìn)行監(jiān)管;對(duì)于個(gè)人和商戶監(jiān)控也成為其保護(hù)財(cái)產(chǎn)維護(hù)權(quán)益的重要手段。然而,普通的視頻監(jiān)控系統(tǒng)往往面臨著一個(gè)操作人員需要負(fù)責(zé)多個(gè)攝像頭的監(jiān)控視頻,從而造成監(jiān)控工作枯燥無味,且監(jiān)控效果易受人為因素,如責(zé)任心、情感因素等的影響;此外人工已難以應(yīng)對(duì)海量增長(zhǎng)的監(jiān)控視頻,因此利用計(jì)算機(jī)對(duì)監(jiān)控視頻中的行人進(jìn)行再識(shí)別的需求應(yīng)運(yùn)而生。
行人再識(shí)別涉及的主要技術(shù)包括特征提取和分類器設(shè)計(jì)。在特征提取方面,傳統(tǒng)方法是對(duì)大量有標(biāo)簽的數(shù)據(jù)進(jìn)行有監(jiān)督的模型訓(xùn)練,但考慮到在監(jiān)控視頻中出現(xiàn)的行人眾多,對(duì)所有行人都提供大量有標(biāo)簽的訓(xùn)練圖像是一個(gè)不可能完成的任務(wù),因此,只有依靠無監(jiān)督的模型訓(xùn)練來實(shí)現(xiàn)對(duì)視頻中行人的特征提取。
而在分類器設(shè)計(jì)方面,傳統(tǒng)的hog特征,sift特征等雖然已取得了較好的成績(jī),但是這些底層特征由于缺乏語義特性,使得行人再識(shí)別系統(tǒng)的應(yīng)用受到了限制。富有語義表達(dá)能力的屬性作為高于顏色、紋理等低層特征的中層特征,在行人再識(shí)別方法中是個(gè)不錯(cuò)的選擇。但是由于人類的認(rèn)知具有一個(gè)層次過程,也就是先對(duì)粗略的特征有感知,而后才對(duì)更細(xì)化的特征進(jìn)行感知,在記憶過程中也是如此,能夠記住一些大致的特征,卻往往遺忘一些細(xì)節(jié)特征。例如,在對(duì)疑犯進(jìn)行描述時(shí),目擊者會(huì)遺忘一些詳細(xì)的外貌信息,只對(duì)一些粗粒度信息保留印象。因此,僅僅利用單層的屬性來進(jìn)行再識(shí)別大大限制了行人再識(shí)別的應(yīng)用范圍。
技術(shù)實(shí)現(xiàn)要素:
為了克服上述現(xiàn)有技術(shù)的缺陷,本發(fā)明在深度學(xué)習(xí)和屬性學(xué)習(xí)的基礎(chǔ)上,提出利用cae無監(jiān)督學(xué)習(xí)方式訓(xùn)練cnn模型,并引入層次屬性的概念,提出一種基于無監(jiān)督深度模型與層次屬性的行人再識(shí)別方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明具體技術(shù)方案如下:一種基于無監(jiān)督深度模型與層次屬性的行人再識(shí)別方法,包括深度模型訓(xùn)練、行人特征提取、層次屬性學(xué)習(xí)和分類識(shí)別四個(gè)步驟,其中,深度模型訓(xùn)練還包括如下步驟:
1)對(duì)預(yù)訓(xùn)練數(shù)據(jù)集cuhk和微調(diào)數(shù)據(jù)集viper中圖像分別進(jìn)行預(yù)處理和分塊;
2)將預(yù)處理和分塊后的viper數(shù)據(jù)集等分為8份,隨機(jī)選擇其中7份作為訓(xùn)練樣本viper_train,另1份作為測(cè)試樣本viper_test;
3)構(gòu)建一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò)(convolutionalneuralnetwork,cnn)模型,模型包含三個(gè)隱含層,每個(gè)隱含層都由多個(gè)卷積自動(dòng)編碼器((convolutionalauto-encode,cae)構(gòu)成;其中,第一隱含層包括20個(gè)cae,第二隱含層包括50個(gè)cae,第三隱含層包括100個(gè)cae;
4)利用預(yù)處理后的cuhk和viper_train對(duì)cnn進(jìn)行模型訓(xùn)練,訓(xùn)練方法采用cae的無監(jiān)督重構(gòu)方式,得到訓(xùn)練完畢的cnn模型;
行人特征提取還包括如下步驟:
5)將viper_train輸入訓(xùn)練完畢的cnn模型,得到關(guān)于每張圖像5個(gè)分塊的共500張?zhí)卣鲌D,其中,每個(gè)分塊有100張?zhí)卣鲌D;
6)對(duì)特征圖進(jìn)行轉(zhuǎn)化,將每張?zhí)卣鲌D的二維矩陣按照每列相接的方式轉(zhuǎn)化為一維特征向量,再將每個(gè)分塊中100個(gè)特征向量相連接成為一個(gè)一維分塊特征向量;
層次屬性學(xué)習(xí)還包括如下步驟:
7)設(shè)計(jì)行人層次屬性,行人層次屬性包括粗粒度屬性{a1,a2,…ak,…an}和細(xì)粒度屬性{a1,a2,…al,…am};其中,n=17,m=16;
8)對(duì)viper數(shù)據(jù)集中的每一個(gè)行人圖像進(jìn)行屬性標(biāo)注;
9)為每一個(gè)屬性分配一個(gè)支持向量機(jī)(supportvectormachine,svm)作為屬性分類器,并利用分塊特征向量和相應(yīng)的屬性標(biāo)注對(duì)每一個(gè)屬性分類器進(jìn)行訓(xùn)練,得到訓(xùn)練完畢的屬性分類器;
分類識(shí)別還包括如下步驟:
10)根據(jù)屬性標(biāo)注,統(tǒng)計(jì)viper_test數(shù)據(jù)集中每一個(gè)行人的屬性類別映射概率,得到屬性類別映射關(guān)系表,其中,屬性類別映射關(guān)系表中粗粒度屬性對(duì)應(yīng)的概率為
11)設(shè)定層次屬性的權(quán)值,粗粒度屬性權(quán)值用w1表示,細(xì)粒度屬性權(quán)值用w2表示;
12)將viper_test中樣本xt輸入訓(xùn)練完畢的cnn得到對(duì)應(yīng)的分塊特征圖,再將每個(gè)分塊中的所有特征圖轉(zhuǎn)化一維分塊特征向量,并輸入訓(xùn)練完畢的各屬性分類器,得到樣本具有粗粒度屬性ak的后驗(yàn)概率p(ak|xt)和細(xì)粒度屬性al的后驗(yàn)概率p(al|xt),結(jié)合屬性類別映射關(guān)系表,通過貝葉斯公式得到在粗粒度屬性下類別yj關(guān)于樣本xt的后驗(yàn)概率p1(yj|xt)和在細(xì)粒度屬性下類別yj關(guān)于樣本xt的后驗(yàn)概率p2(yj|xt),其中,樣本xt為viper_test測(cè)試樣本{x1,x2,...,xt,...,xp}中的第t張分塊行人圖像,貝葉斯公式為:
13)計(jì)算樣本關(guān)于類別的最終后驗(yàn)概率,計(jì)算公式為:
p(yj|xt)=w1p1(yj|xt)+w2p2(yj|xt);
14)選擇最大的概率對(duì)應(yīng)的類別作為樣本的識(shí)別類別,選擇公式為:
進(jìn)一步地,上述步驟1)中圖像預(yù)處理和分塊還包括如下步驟:
1.1)將cuhk和viper中的行人圖像大小統(tǒng)一為128×48像素;
1.2)將統(tǒng)一后的圖像根據(jù)人體部位分割成具有重疊部分的5個(gè)分塊,從上到下,第一個(gè)分塊高度為1到36像素,寬度為1到48像素,包含行人的頭部和發(fā)型;第二個(gè)分塊高度為14到73像素,寬度為1到48像素,包含行人的上半身;第三個(gè)分塊高度為36到103像素,寬度為1到48像素,包含行人上半身的一部分和下半身的一部分;第四分塊高度為60到111像素,寬度為1到48像素,包含行人的腿部;第五分塊高度為101到128像素,寬度為1到48像素,包含行人的腳部。
1.3)將行人圖像的每個(gè)分塊進(jìn)行歸一化處理。
進(jìn)一步地,上述步驟3)中,三個(gè)隱層的第一隱含層20個(gè)cae,對(duì)應(yīng)20個(gè)特征平面,卷積核大小為5×5,最大池化窗口大小為2×2;第二隱含層50個(gè)cae,對(duì)應(yīng)50個(gè)特征平面,卷積核大小為5×5,最大池化窗口大小為2×2;第三隱含層100個(gè)cae,對(duì)應(yīng)100個(gè)特征平面,卷積核大小為5×4,最大池化窗口大小為2×2。
進(jìn)一步地,上述步驟4)中,對(duì)cnn進(jìn)行模型訓(xùn)練包括如下步驟:
4.1)將預(yù)處理過的cuhk數(shù)據(jù)集圖像對(duì)cnn進(jìn)行預(yù)訓(xùn)練;
4.2)將預(yù)處理過的viper_train數(shù)據(jù)集對(duì)cnn進(jìn)行微調(diào)。
進(jìn)一步地,上述步驟7)中,粗粒度屬性有17個(gè),包括:“帶帽”、“非長(zhǎng)發(fā)”、“長(zhǎng)發(fā)”、“長(zhǎng)袖”、“短袖”、“無袖”、“穿外套”、“上衣花紋”、“有l(wèi)ogo”、“長(zhǎng)下裝”、“短下裝”、“下裝花紋”、“背包”、“手拿物”、“涼鞋”、“單鞋”、“靴子”;細(xì)粒度屬性有16個(gè),包括:“禿頭”、“短發(fā)”、“盤發(fā)”、“齊肩”、“披頭”、“馬尾”、“非條紋”、“密集條紋”、“稀疏條紋”、“長(zhǎng)褲”、“長(zhǎng)裙”、“雙肩包”、“單肩包”、“手提包”、“手拿物品”、“行李箱”;其中,粗粒度和細(xì)粒度屬性對(duì)應(yīng)關(guān)系如下:粗粒度屬性“非長(zhǎng)發(fā)”對(duì)應(yīng)細(xì)粒度屬性(“禿頭”、“短發(fā)”、“盤發(fā)”),粗粒度屬性“長(zhǎng)發(fā)”對(duì)應(yīng)細(xì)粒度屬性(“齊肩”、“披頭”、“馬尾”),粗粒度屬性“上衣花紋”對(duì)應(yīng)細(xì)粒度屬性(“非條紋”、“密集條紋”、“稀疏條紋”),粗粒度屬性“長(zhǎng)下裝”對(duì)應(yīng)細(xì)粒度屬性(“長(zhǎng)褲”、“長(zhǎng)裙”),粗粒度屬性“背包”對(duì)應(yīng)細(xì)粒度屬性(“雙肩包”、“單肩包”),粗粒度屬性“手拿物”對(duì)應(yīng)細(xì)粒度屬性(“手提包”、“手拿物品”、“行李箱”)。
本發(fā)明的有益效果在于:利用cae的無監(jiān)督學(xué)習(xí)方法預(yù)訓(xùn)練cnn模型,有效解決了缺乏訓(xùn)練樣本的問題;利用cae能夠較好地重構(gòu)圖像的特點(diǎn),有效提高了行人再識(shí)別的準(zhǔn)確率;通過引入層次屬性使得對(duì)行人的再識(shí)別更加符合人類認(rèn)知規(guī)律,讓行人再識(shí)別方法富有語義表達(dá)能力的同時(shí)更加具有實(shí)際應(yīng)用價(jià)值。
附圖說明
圖1是本發(fā)明所述的行人再識(shí)別方法結(jié)構(gòu)示意圖。
圖2是本發(fā)明所述cae無監(jiān)督訓(xùn)練過程示意圖。
圖3是本發(fā)明所述層次屬性樣例圖。
圖4是本發(fā)明所述屬性類別映射關(guān)系示例表。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。
圖1為本發(fā)明提出的基于無監(jiān)督深度模型與層次屬性的行人再識(shí)別方法結(jié)構(gòu)示意圖。分為深度模型訓(xùn)練、行人特征提取、層次屬性學(xué)習(xí)和分類識(shí)別四個(gè)階段。
在模型訓(xùn)練階段,包括如下步驟:
1)對(duì)預(yù)訓(xùn)練數(shù)據(jù)庫(kù)cuhk和微調(diào)數(shù)據(jù)庫(kù)viper中圖像分別進(jìn)行預(yù)處理和分塊;其中,圖像預(yù)處理和分塊的方法是:
1.1)將cuhk和viper中的行人圖像大小統(tǒng)一為128×48像素;
1.2)將統(tǒng)一后的圖像根據(jù)人體部位分割成具有重疊部分的5個(gè)分塊,從上到下,第一個(gè)分塊高度為1到36像素,寬度為1到48像素,包含行人的頭部和發(fā)型;第二個(gè)分塊高度為14到73像素,寬度為1到48像素,包含行人的上半身;第三個(gè)分塊高度為36到103像素,寬度為1到48像素,包含行人上半身的一部分和下半身的一部分;第四分塊高度為60到111像素,寬度為1到48像素,包含行人的腿部;第五分塊高度為101到128像素,寬度為1到48像素,包含行人的腳部。
1.3)將行人圖像的每個(gè)分塊進(jìn)行歸一化處理。
2)將預(yù)處理和分塊后的viper數(shù)據(jù)集分為訓(xùn)練樣本viper_train和測(cè)試樣本viper_test;具體實(shí)施中,將viper數(shù)據(jù)集中的共1264張行人圖像隨機(jī)等分為8份,每份擁有158張分塊行人圖像,將其中7份共1106張分塊行人圖像作為訓(xùn)練樣本viper_train,另外1份共158張分塊行人圖像作為測(cè)試樣本viper_test。
3)構(gòu)建一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò)cnn模型,模型包含三個(gè)隱含層,每個(gè)隱含層都由多個(gè)卷積自動(dòng)編碼器cae構(gòu)成;本發(fā)明實(shí)施例中,三個(gè)隱層的第一個(gè)隱含層包括20個(gè)cae,對(duì)應(yīng)20個(gè)特征平面,卷積核大小為5×5,最大池化窗口大小為2×2;第二隱含層包括50個(gè)cae,對(duì)應(yīng)50個(gè)特征平面,卷積核大小為5×5,最大池化窗口大小為2×2;第三隱含層包括100個(gè)cae,對(duì)應(yīng)100個(gè)特征平面,卷積核大小為5×4,最大池化窗口大小為2×2。
4)利用預(yù)處理后的cuhk和viper_train對(duì)cnn進(jìn)行模型訓(xùn)練,訓(xùn)練方法采用cae的無監(jiān)督重構(gòu)方式,得到訓(xùn)練完畢的cnn模型;其中,進(jìn)行模型訓(xùn)練包括如下步驟:
4.1)將預(yù)處理過的cuhk數(shù)據(jù)集圖像對(duì)cnn進(jìn)行預(yù)訓(xùn)練,本發(fā)明具體實(shí)施例中,學(xué)習(xí)率為0.001,迭代次數(shù)為1000次;
4.2)將預(yù)處理過的viper_train數(shù)據(jù)集對(duì)cnn進(jìn)行微調(diào),本發(fā)明具體實(shí)施例中,學(xué)習(xí)率為0.0001,迭代次數(shù)為1000次。
圖2所示為是本發(fā)明具體實(shí)施例cae無監(jiān)督訓(xùn)練過程,每一層的輸入圖像x進(jìn)行卷積操作得到一系列特征圖h,經(jīng)過max-pooling后通過反卷積操作重構(gòu)原輸入圖像得到y(tǒng),x與y的誤差作為該隱含層的參數(shù)調(diào)整依據(jù),權(quán)值和偏置的更新通過bp算法獲得。max-pooling后的圖像將作為下一層的輸入,再次進(jìn)行一輪學(xué)習(xí)過程,本方法總共需要進(jìn)行如此的三輪學(xué)習(xí)過程。
在特征提取階段,包括如下步驟:
5)將viper_train輸入訓(xùn)練完畢的cnn模型,得到關(guān)于每張圖像5個(gè)分塊共500張?zhí)卣鲌D,其中,每個(gè)分塊有100張?zhí)卣鲌D;
6)將特征圖轉(zhuǎn)化為一維分塊特征向量,方法是將每張?zhí)卣鲌D的二維矩陣按照每列相接的方式轉(zhuǎn)化為一維特征向量,再將每個(gè)分塊中100個(gè)特征向量相連接成為一個(gè)一維分塊特征向量。
在層次屬性學(xué)習(xí)階段,包括如下步驟:
7)設(shè)計(jì)行人層次屬性,行人層次屬性包括粗粒度屬性{a1,a2,…ak,…an}和細(xì)粒度屬性{a1,a2,…al,…am},n為粗粒度屬性個(gè)數(shù),m為細(xì)粒度屬性個(gè)數(shù);具體實(shí)施中,n=17,m=16,17個(gè)粗粒度屬性包括:“帶帽”、“非長(zhǎng)發(fā)”、“長(zhǎng)發(fā)”、“長(zhǎng)袖”、“短袖”、“無袖”、“穿外套”、“上衣花紋”、“有l(wèi)ogo”、“長(zhǎng)下裝”、“短下裝”、“下裝花紋”、“背包”、“手拿物”、“涼鞋”、“單鞋”、“靴子”;16個(gè)細(xì)粒度屬性包括:“禿頭”、“短發(fā)”、“盤發(fā)”、“齊肩”、“披頭”、“馬尾”、“非條紋”、“密集條紋”、“稀疏條紋”、“長(zhǎng)褲”、“長(zhǎng)裙”、“雙肩包”、“單肩包”、“手提包”、“手拿物品”、“行李箱”;粗粒度和細(xì)粒度屬性對(duì)應(yīng)關(guān)系如圖3所示:粗粒度屬性“非長(zhǎng)發(fā)”對(duì)應(yīng)細(xì)粒度屬性(“禿頭”、“短發(fā)”、“盤發(fā)”),粗粒度屬性“長(zhǎng)發(fā)”對(duì)應(yīng)細(xì)粒度屬性(“齊肩”、“披頭”、“馬尾”),粗粒度屬性“上衣花紋”對(duì)應(yīng)細(xì)粒度屬性(“非條紋”、“密集條紋”、“稀疏條紋”),粗粒度屬性“長(zhǎng)下裝”對(duì)應(yīng)細(xì)粒度屬性(“長(zhǎng)褲”、“長(zhǎng)裙”),粗粒度屬性“背包”對(duì)應(yīng)細(xì)粒度屬性(“雙肩包”、“單肩包”),粗粒度屬性“手拿物”對(duì)應(yīng)細(xì)粒度屬性(“手提包”、“手拿物品”、“行李箱”)。
8)對(duì)viper數(shù)據(jù)集中的每一個(gè)行人圖像進(jìn)行屬性標(biāo)注,將行人圖像所具有的屬性標(biāo)注為1,不具有的屬性標(biāo)注為0;
9)為每一個(gè)屬性分配一個(gè)支持向量機(jī)svm作為屬性分類器,并利用分塊特征向量和相應(yīng)的屬性標(biāo)注對(duì)每一個(gè)屬性分類器進(jìn)行訓(xùn)練,得到訓(xùn)練完畢的屬性分類器;
在分類識(shí)別階段,包括如下步驟:
10)根據(jù)屬性標(biāo)注,統(tǒng)計(jì)viper_test數(shù)據(jù)集中每一個(gè)行人的屬性類別映射概率,得到屬性類別映射關(guān)系表,其中,屬性類別映射關(guān)系表中粗粒度屬性對(duì)應(yīng)的概率為
11)設(shè)定層次屬性的權(quán)值,粗粒度屬性權(quán)值用w1表示,細(xì)粒度屬性權(quán)值用w2表示;本發(fā)明具體實(shí)施例中,當(dāng)缺乏細(xì)粒度屬性描述時(shí),w1=1,w2=0;當(dāng)存在細(xì)粒度屬性描述時(shí),w1=0.6,w2=0.4;
12)將viper_test中樣本xt輸入訓(xùn)練完畢的cnn得到對(duì)應(yīng)的分塊特征圖,再將每個(gè)分塊中的所有特征圖轉(zhuǎn)化一維分塊特征向量,并輸入訓(xùn)練完畢的各屬性分類器,得到樣本具有粗粒度屬性ak的后驗(yàn)概率p(ak|xt)和細(xì)粒度屬性al的后驗(yàn)概率p(al|xt),結(jié)合屬性類別映射關(guān)系表,通過貝葉斯公式得到在粗粒度屬性下類別yj關(guān)于樣本xt的后驗(yàn)概率p1(yj|xt)和在細(xì)粒度屬性下類別yj關(guān)于樣本xt的后驗(yàn)概率p2(yj|xt),其中,樣本xt為viper_test測(cè)試樣本{x1,x2,...,xt,...,xp}中的第t張分塊行人圖像,貝葉斯公式為:
13)計(jì)算樣本關(guān)于類別的最終后驗(yàn)概率,計(jì)算公式為:
p(yj|xt)=w1p1(yj|xt)+w2p2(yj|xt);
14)選擇最大概率對(duì)應(yīng)的類別作為樣本的識(shí)別類別,選擇公式為: