康子洋 周沈
(宿遷學(xué)院信息工程學(xué)院 江蘇省宿遷市 223800)
隨著計(jì)算機(jī)視覺技術(shù)的快速發(fā)展,各種檢測及屬性分析方法也在不斷的突破和改進(jìn),智能監(jiān)控技術(shù)也越發(fā)成熟,為越來越多的場景提供了安全保障[1]。行人檢測及屬性分析是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)重要應(yīng)用,其研究成果對智能監(jiān)控領(lǐng)域的發(fā)展具有積極的推動(dòng)作用,目前已經(jīng)有相當(dāng)一部分的研究成果[2-3]。
本文系統(tǒng)的實(shí)現(xiàn)需要同時(shí)實(shí)現(xiàn)檢測和分類兩種方法。首先得將場景內(nèi)出現(xiàn)的行人進(jìn)行檢測,然后對檢測到的行人進(jìn)行屬性分析。而行人又往往同時(shí)具有柔性和剛性的特點(diǎn),再加上馬路、商場、車站等復(fù)雜的實(shí)際場景,又可能包含不同的光照條件,種種因素都會(huì)對檢測系統(tǒng)的實(shí)際結(jié)果產(chǎn)生各種影響。而且當(dāng)人流量密集時(shí),人與人之間會(huì)存在遮擋的情況,這就會(huì)導(dǎo)致被擋住的行人難以被檢測到,檢測不到的行人就無法分析屬性,檢測系統(tǒng)就相當(dāng)于無法發(fā)揮作用,所以在本文采用了基于深度卷積神經(jīng)網(wǎng)絡(luò)的檢測方法對行人進(jìn)行檢測,對目標(biāo)圖像中所具有的特征進(jìn)行提取,從根本上消除了過去借助手工設(shè)計(jì)特征過程中所存在的瓶頸,大幅度的增強(qiáng)了檢測效果。
CenterNet網(wǎng)絡(luò)輸入一張圖像后,首先經(jīng)過主干網(wǎng)絡(luò)(backbone)運(yùn)算得到一幅特征圖,然后分出三個(gè)分支繼續(xù)對該特征圖進(jìn)行運(yùn)算,這三個(gè)分支分別用于預(yù)測目標(biāo)的中心點(diǎn)坐標(biāo)、目標(biāo)的中心點(diǎn)坐標(biāo)從原圖到下采樣后的熱度圖上的偏置、目標(biāo)的尺寸(寬和高)。
CenterNet用于預(yù)測的特征圖僅為最后一層上采樣圖,這一類特征圖的其在高層當(dāng)中所具有的特征語義信息種類以及數(shù)量較多,不過對于目標(biāo)位置并不是那么的精確。所以在實(shí)際的應(yīng)用中一些檢測算法在一般情況下都會(huì)加入多種尺度的特征,在此基礎(chǔ)之上再去開展預(yù)測工作,如SSD就是從網(wǎng)絡(luò)的不同層來抽取不同尺度的特征進(jìn)行預(yù)測,從而使得算法能夠檢測到各種尺寸的目標(biāo)。
基于CenterNet的特點(diǎn),本文借鑒了這種低維與高維特征融合的方法,但采用了另外一種方式:上采樣得到的高維特征圖與下采樣時(shí)的低維特征圖依然進(jìn)行融合,但僅通過最后一個(gè)特征圖進(jìn)行預(yù)測。
目標(biāo)檢測和屬性分析任務(wù)在同一訓(xùn)練平臺(tái)上進(jìn)行,其中訓(xùn)練和推理的框架為PyTorch。PyTorch是一個(gè)基于Torch的Python開源機(jī)器學(xué)習(xí)庫,由Facebook人工智能研究院(FAIR)開發(fā),CenterNet檢測算法訓(xùn)練流程圖如圖1所示。
圖1:CenterNet檢測算法訓(xùn)練流程圖
用于行人屬性分析的樣本是通過檢測樣本以及檢測樣本對應(yīng)的頭肩框裁剪得到的,裁剪出的頭肩圖像需要經(jīng)過進(jìn)一步篩選才得到最終的訓(xùn)練樣本,篩選時(shí)需要過濾尺寸小、遮擋面積大、模糊、光線較暗的圖像,最終保留下來用于訓(xùn)練的樣本共50000張。行人屬性分析網(wǎng)絡(luò)的輸入數(shù)據(jù)是大小為160×160的三通道RGB圖像,訓(xùn)練階段進(jìn)行亮度,對比度、飽和度隨機(jī)變換增廣,每一步的batch大小為64。訓(xùn)練初始學(xué)習(xí)率設(shè)定為0.01,且每400000步將學(xué)習(xí)率降低為原來的1/10,共訓(xùn)練1000000步,優(yōu)化器依然選擇用隨機(jī)梯度下降。
用于行人屬性分析的網(wǎng)絡(luò)由backbone網(wǎng)絡(luò)和屬性預(yù)測分支組成,即backbone網(wǎng)絡(luò)首先提取共享特征,再通過各分支分別預(yù)測對應(yīng)的屬性。網(wǎng)絡(luò)輸入圖像是通過檢測算法檢測到的頭肩框在檢測圖像中裁剪到的頭肩圖。圖2為本文用于屬性分析的網(wǎng)絡(luò)結(jié)構(gòu)示意圖,三個(gè)屬性分類全部通過softmax+交叉熵?fù)p失來實(shí)現(xiàn)。
圖2:本文屬性分析的網(wǎng)絡(luò)結(jié)構(gòu)示意圖
檢測實(shí)驗(yàn)訓(xùn)練模型除了在監(jiān)控十字路口場景下進(jìn)行測試,同時(shí)還在商場口、室內(nèi)等場景的樣本中進(jìn)行測試,用于驗(yàn)證算法的魯棒性。
表1為原始CenterNet同本文改進(jìn)后的CenterNet在性能和精度上的對比,從上述實(shí)驗(yàn)數(shù)據(jù)中可以看出,通過添加一個(gè)FPN結(jié)構(gòu),可以大大提高檢測模型的mAP,這是因?yàn)镕PN結(jié)構(gòu)將最后預(yù)測的特征圖進(jìn)行了高維特征信息和低維特征信息的融合,從而使得對目標(biāo)的定位更加準(zhǔn)確。但FPN結(jié)構(gòu)也使得CenterNet的推理時(shí)間變慢了一些,網(wǎng)絡(luò)每秒處理幀數(shù)比沒加FPN之前少了20左右。
表1:行人與頭肩檢測模型在測試集上的精度和性能
圖3(左)是未改進(jìn)前CenterNet算法在同一場景下圖像的測試結(jié)果,可以看出,CenterNet算法的頭肩檢測框只能檢測出半身框。圖3(右)是同一場景下改進(jìn)后的CenterNet+FPN融合算法圖像的測試效果,可以看到模型能夠很好地檢測到不同狀態(tài)的人及其頭肩。
圖3:CenterNet和CenterNet+FPN融合算法檢測效果對比
行人屬性分析模型分別在年齡、口罩和表情測試集上進(jìn)行了測試,各測試集中的測試樣本數(shù)量皆為1000張。模型推理的FPS和在各屬性上的準(zhǔn)確率以及見表2。
表2:行人屬性分析模型FPS和在各屬性上的準(zhǔn)確率
圖4是CenterNet算法和CenterNet+FPN融合算法在同一圖像上的識(shí)別精度對比。CenterNet算法較CenterNet+FPN融合算法在年齡識(shí)別精度上表現(xiàn)較差。
圖4:CenterNet和CenterNet+FPN融合算法檢測效果對比
本文首先提出使用近年來在精度和性能方面表現(xiàn)都比較好的One-Stage目標(biāo)檢測算法CenterNet來實(shí)現(xiàn)對過路行人及其頭肩的檢測,并且對原始的CenterNet算法在網(wǎng)絡(luò)結(jié)構(gòu)上進(jìn)行了改進(jìn),改進(jìn)后的CenterNet比改進(jìn)前在測試集上的檢測精度有了很大的提升。然后設(shè)計(jì)了一個(gè)backbone為mobilenet-v1的多任務(wù)圖像分類網(wǎng)絡(luò),用于實(shí)現(xiàn)對檢測到的頭肩圖像進(jìn)行屬性分析,本文算法支持分析的屬性包括年齡(是否為老人)、口罩(是否戴口罩)和表情(是否微笑),經(jīng)過最終的測試,本文實(shí)現(xiàn)的算法可以較為高效地實(shí)現(xiàn)監(jiān)控場景下的行人屬性分析,且識(shí)別率較高,且各屬性識(shí)別的準(zhǔn)確率都在95%以上。