王璐璐,張 為,孫琦龍
(1.天津大學(xué) 電氣自動(dòng)化與信息工程學(xué)院,天津 300072;2.天津大學(xué) 微電子學(xué)院,天津 300072;3.青海民族大學(xué) 計(jì)算機(jī)學(xué)院,青海 西寧 810007)
近年來,人體目標(biāo)檢測(cè)作為計(jì)算機(jī)視覺領(lǐng)域的重點(diǎn)研究?jī)?nèi)容,在各類生活場(chǎng)景中得到廣泛應(yīng)用。在銀行、消防值班室等重要場(chǎng)所,工作人員持續(xù)在崗是保障居民生命財(cái)產(chǎn)安全的必要條件。使用人力對(duì)在崗情況進(jìn)行監(jiān)控成本極高,因此亟需設(shè)計(jì)一種高精度的人員檢測(cè)算法來滿足對(duì)上述目標(biāo)的支持。
很多學(xué)者嘗試在手工提取特征的方法中結(jié)合神經(jīng)網(wǎng)絡(luò)解決行人檢測(cè)問題。文獻(xiàn)[1]提出一種復(fù)雜度自感知算法來平衡速度與精度的關(guān)系。文獻(xiàn)[2-4]將區(qū)域推薦與卷積神經(jīng)網(wǎng)絡(luò)結(jié)合起來,提出針對(duì)多目標(biāo)檢測(cè)的系列檢測(cè)框架。文獻(xiàn)[5]將區(qū)域推薦與傳統(tǒng)分類器隨機(jī)森林結(jié)合起來,提出一種專門針對(duì)行人的檢測(cè)框架。但以上算法結(jié)構(gòu)復(fù)雜,檢測(cè)速度低下,無法滿足實(shí)時(shí)性要求。文獻(xiàn)[6]基于SSD算法[7]提出一種單模型的行人檢測(cè)框架,提升了行人檢測(cè)速度。以上成果對(duì)行人檢測(cè)起到了很大推動(dòng)作用,但其主要檢測(cè)目標(biāo)為室外行人,這些圖片取材場(chǎng)景開闊,攝像頭采用平行機(jī)位采樣,其中人體目標(biāo)以行走、站立為主。對(duì)室內(nèi)人員來說,攝像頭多是俯視拍攝,背景與室外行人有較大差異;另一方面,室內(nèi)人員易出現(xiàn)辦公桌等家具帶來的遮擋問題,人機(jī)距離也和目前行人檢測(cè)數(shù)據(jù)集差距較大,且室內(nèi)人員姿態(tài)多樣,致使同一個(gè)體在不同狀態(tài)下也會(huì)呈現(xiàn)較大差異,這些細(xì)節(jié)信息在目前的行人檢測(cè)數(shù)據(jù)集中無法體現(xiàn)。以上原因?qū)е虑拔乃鰴z測(cè)框架對(duì)室內(nèi)人員的檢測(cè)效果并不理想。
針對(duì)室內(nèi)人員檢測(cè)存在的問題,文獻(xiàn)[8]建立了室內(nèi)人員檢測(cè)數(shù)據(jù)集(Indoor Human Detection Dataset,IHDD),將區(qū)域推薦網(wǎng)絡(luò)融入傳統(tǒng)檢測(cè)框架,提出了一種多模型的室內(nèi)人員檢測(cè)算法。但這種方法無法支持端到端訓(xùn)練,且精度不足以支撐現(xiàn)實(shí)應(yīng)用。在目標(biāo)檢測(cè)領(lǐng)域,文獻(xiàn)[9]修改神經(jīng)網(wǎng)絡(luò)損失函數(shù),在一定程度上解決了單階段檢測(cè)網(wǎng)絡(luò)中正負(fù)樣本失衡的問題,文中所提網(wǎng)絡(luò)因此成為檢測(cè)領(lǐng)域的前沿模型之一,但也存在不適合室內(nèi)人員檢測(cè)的情況。
基于以上研究,筆者對(duì)通用網(wǎng)絡(luò)RetinaNet進(jìn)行改進(jìn),針對(duì)室內(nèi)人員檢測(cè)數(shù)據(jù)集,提出一種高精度的室內(nèi)人員實(shí)時(shí)檢測(cè)算法。文中算法的主要改進(jìn)如下:
(1)針對(duì)室內(nèi)人員數(shù)據(jù)集將通用網(wǎng)絡(luò)優(yōu)化成為專用的高精度室內(nèi)人員檢測(cè)網(wǎng)絡(luò)。同時(shí),文中算法在測(cè)試速度和內(nèi)存占用方面也優(yōu)于其他檢測(cè)方法。
(2)對(duì)基礎(chǔ)殘差網(wǎng)絡(luò)進(jìn)行改進(jìn),在Cov3、Cov4層加入通道注意力[10]模塊。同時(shí),為緩解網(wǎng)絡(luò)的過擬合問題,筆者在通道注意力模塊的全連接層加入隨機(jī)失活機(jī)制,從而增強(qiáng)網(wǎng)絡(luò)的魯棒性。
(3)通過維度聚類算法對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,找出最適合室內(nèi)人員尺寸和形狀的錨點(diǎn)來提升檢測(cè)精度,降低漏檢率。同時(shí)這些經(jīng)過篩選的錨點(diǎn)可以顯著提升算法的運(yùn)行速度。
(4)根據(jù)聚類得到的特征圖尺寸選取合適的特征層進(jìn)行預(yù)測(cè),通過捕捉更豐富的信息提升檢測(cè)精度。
實(shí)驗(yàn)結(jié)果表明,筆者提出的算法相比其他算法有更高的準(zhǔn)確性,且處理速度更快,在實(shí)踐應(yīng)用中具有極大的優(yōu)勢(shì)。
在實(shí)際場(chǎng)景中,攝像頭距離和人體姿態(tài)變換使同一個(gè)體的特征不斷改變。針對(duì)這兩個(gè)問題,筆者使用文獻(xiàn)[11]提出的特征金字塔,在合適的特征層放置錨點(diǎn)以提高多尺度檢測(cè)的性能。相比在單一特征圖上檢測(cè)不同尺寸的物體,特征金字塔可充分利用不同特征層的語意信息,從而提高室內(nèi)人員檢測(cè)的精度。對(duì)姿態(tài)多樣性問題,筆者采用室內(nèi)行人檢測(cè)專用數(shù)據(jù)集進(jìn)行訓(xùn)練。該數(shù)據(jù)集在采集樣本時(shí)著重考慮了不同姿態(tài)下多視角的問題,由于神經(jīng)網(wǎng)絡(luò)可以在大量數(shù)據(jù)集下自主學(xué)習(xí)物體特征,因此經(jīng)過適當(dāng)訓(xùn)練后即可獲得對(duì)不同姿態(tài)人員的辨別能力。相比RetinaNet網(wǎng)絡(luò)使用的基礎(chǔ)殘差網(wǎng)絡(luò),筆者使用改進(jìn)的SE-ResNet50作為模型的基礎(chǔ)網(wǎng)絡(luò),并在其中加入隨機(jī)失活機(jī)制增強(qiáng)網(wǎng)絡(luò)魯棒性,抑制過擬合。最終的檢測(cè)網(wǎng)絡(luò)如圖1所示。
卷積神經(jīng)網(wǎng)絡(luò)因其復(fù)雜性容易在小的數(shù)據(jù)集上出現(xiàn)過擬合現(xiàn)象,影響模型泛化能力。主流緩解網(wǎng)絡(luò)過擬合的方法有數(shù)據(jù)增強(qiáng)、引入批量歸一化、加入隨機(jī)失活等機(jī)制。文獻(xiàn)[7]指出,在存在池化層的情況下,數(shù)據(jù)增強(qiáng)作用有限。同時(shí),RetinaNet框架已經(jīng)在卷積之后合理使用批量歸一化層,批量標(biāo)準(zhǔn)化不適合二次加入。除以上兩種方法外,文獻(xiàn)[12]提出可使用隨機(jī)失活緩解過擬合。如圖2所示,隨機(jī)失活即以特定概率隨機(jī)選取部分神經(jīng)元,將其輸出置零,從而斷開與周邊神經(jīng)元的連接,阻止檢測(cè)器共同作用,增強(qiáng)網(wǎng)絡(luò)的魯棒性。由示意圖可以看出,隨機(jī)失活更適合在全連階層使用,而ReitnaNet網(wǎng)絡(luò)中用于特征提取的骨干網(wǎng)絡(luò)、用于類別預(yù)測(cè)和錨點(diǎn)回歸的子網(wǎng)絡(luò)都由卷積層實(shí)現(xiàn)。在實(shí)際應(yīng)用中隨機(jī)失活也較少用于卷積層,為解決這一問題,筆者引入通道注意力模塊[10]對(duì)殘差模塊進(jìn)行改進(jìn),間接實(shí)現(xiàn)隨機(jī)失活功能。改進(jìn)后的殘差模塊如圖3所示。圖中ReLU表示修正線性單元函數(shù)。
圖1 網(wǎng)絡(luò)整體結(jié)構(gòu)圖
圖2 隨機(jī)失活示意圖
圖3 改進(jìn)的殘差模塊
虛線內(nèi)為通道注意力模塊,由壓縮和激活兩部分組成。壓縮過程對(duì)應(yīng)平均池化,激活過程對(duì)應(yīng)框內(nèi)其余部分。之后,筆者加入隨機(jī)失活增強(qiáng)模型泛化能力。通道注意力模塊可挖掘特征圖各通道的相互關(guān)系來調(diào)整各通道權(quán)重,在近乎相同的計(jì)算量提升檢測(cè)精度。以下進(jìn)行詳細(xì)說明。
壓縮模塊的作用是將全局信息壓縮進(jìn)通道描述符 ,假設(shè)特征圖為u∈RH×W×C,通道描述符Z∈Rc生成方式如下:
(1)
其中,Zc為通道描述符Z的第c個(gè)元素;uc∈RH×W,為特征圖第c個(gè)通道;uc(i,j)為uc中位置 (i,j)處的取值。為更充分利用通道描述符所融入的全局信息,后續(xù)的激發(fā)層使用類似全連接的方式對(duì)通道描述符Z進(jìn)行處理,具體公式如下:
S=Fex(Z,W)=σ(g(Z,W))=σ(W2δ(W1Z)),
(2)
(3)
錨點(diǎn),即檢測(cè)過程中的候選框。自文獻(xiàn)[4]之后,基于神經(jīng)網(wǎng)絡(luò)的檢測(cè)算法都會(huì)使用各種尺寸和形狀的矩形作為錨點(diǎn),這樣會(huì)貼合數(shù)據(jù)集中樣本的形狀,提升定位精度和召回率。在整個(gè)神經(jīng)網(wǎng)絡(luò)的末端,最終會(huì)輸出各個(gè)錨點(diǎn)的類別得分向量和相對(duì)真實(shí)框的回歸向量,錨點(diǎn)根據(jù)這些向量進(jìn)行回歸,得到最終檢測(cè)結(jié)果。但這些選定的尺寸和寬高比不完全適合室內(nèi)行人,在這里筆者使用在文獻(xiàn)[13]中提出的維度聚類算法對(duì)IHDD數(shù)據(jù)集中的標(biāo)注框進(jìn)行處理。維度聚類實(shí)際為k均值聚類方法的變形,待分類樣本為訓(xùn)練集中的包圍框,兩個(gè)包圍框B1和B2之間的距離采用如下定義:
d(B1,B2)=1-IoU(B1,B2) ,
(4)
其中,IoU為兩個(gè)矩形的交并比。聚類過程如下:
(1)采用kmeans++的方法[14]選取n個(gè)包圍框初始化聚類中心。
(2)將聚類中心以外的包圍框以最小距離歸入相應(yīng)聚類中心,每個(gè)聚類中心將擁有一個(gè)聚類簇為Gi,i=1,2,…,n。
(3)計(jì)算Gi的平均值作為新的聚類中心。
(4)重復(fù)(2)~(3),直至所有包圍框所屬聚類中心不再改變。
依據(jù)平均交并比得分最高準(zhǔn)則,實(shí)驗(yàn)結(jié)果顯示最適合室內(nèi)人員的錨點(diǎn)尺寸為(1282,2562),最佳寬高比為1。使用k均值聚類方法剔除了原網(wǎng)絡(luò)中不適合室內(nèi)人員的錨點(diǎn),減小了網(wǎng)絡(luò)計(jì)算量,在加速網(wǎng)絡(luò)收斂的同時(shí)改善了檢測(cè)速度。
圖4 分類和回歸子網(wǎng)
P4、P5、P6之后都分別附有預(yù)測(cè)網(wǎng)絡(luò),預(yù)測(cè)網(wǎng)絡(luò)由兩個(gè)平行的全卷積網(wǎng)絡(luò)組成,分別為分類子網(wǎng)和回歸子網(wǎng)。兩個(gè)子網(wǎng)從預(yù)測(cè)層接收相同的特征圖,之后用3×3的卷積核對(duì)特征圖進(jìn)行卷積并執(zhí)行ReLU操作,這個(gè)過程重復(fù)4次。最終,分類子網(wǎng)生成每個(gè)錨點(diǎn)被歸為人員的概率,若此概率大于所設(shè)閾值,則判定該錨點(diǎn)為室內(nèi)人員,最終輸出的通道數(shù)為A,其中A為每個(gè)位置的錨點(diǎn)數(shù)量;回歸子網(wǎng)為每個(gè)錨點(diǎn)生成4個(gè)回歸值,用來調(diào)整錨點(diǎn)的位置,最終輸出的通道數(shù)為4×A。其中,所有分類子網(wǎng)共享一套權(quán)重,回歸子網(wǎng)共享一套權(quán)重,兩套權(quán)重相互獨(dú)立。具體連接方式如圖4所示。
文中算法直接使用文獻(xiàn)[8]制作的室內(nèi)人員檢測(cè)數(shù)據(jù)集訓(xùn)練神經(jīng)網(wǎng)絡(luò)。該數(shù)據(jù)集采自企業(yè)值班室一個(gè)月內(nèi)的監(jiān)控視頻,采集過程中充分考慮不同時(shí)間、性別以及年齡等因素,其中人員姿勢(shì)大部分為坐姿,含有多種視角,可為訓(xùn)練過程提供豐富信息。該數(shù)據(jù)集共包含14 665張圖像,其中訓(xùn)練集有8 799張圖片,驗(yàn)證集和測(cè)試集分別有2 933張圖片,共標(biāo)注人體目標(biāo)17 854個(gè)。
實(shí)驗(yàn)平臺(tái)是64 bit的Ubuntu14.04操作系統(tǒng)和英偉達(dá)TITAN Xp GPU,使用的軟件為Python 3.7,采用的深度學(xué)習(xí)框架為PyTorch 1.0。在不失一般性的情況下,算法所用主干網(wǎng)絡(luò)先在ImageNet數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,如無特殊說明,新加入的改進(jìn)模塊都采用Xavier分布進(jìn)行初始化。訓(xùn)練過程中使用隨機(jī)梯度下降尋找最優(yōu)解,基礎(chǔ)學(xué)習(xí)率為0.005,動(dòng)量大小為0.9,權(quán)重衰減設(shè)置為0.000 1,通道注意力模塊中隨機(jī)失活的概率為0.5。優(yōu)化器學(xué)習(xí)率分段遞減,前15個(gè)數(shù)據(jù)集循環(huán)過程采用基礎(chǔ)學(xué)習(xí)率,第15~25個(gè)循環(huán)的學(xué)習(xí)率降為前一階段的10%,第25-30個(gè)循環(huán)的學(xué)習(xí)率使用相同方式遞減。
筆者分別采用VOC標(biāo)準(zhǔn)和行人檢測(cè)定義的指標(biāo)來評(píng)判算法的有效性。兩種標(biāo)準(zhǔn)分別采用P-R(精確度-召回率)曲線和Miss Rate-FPPI曲線評(píng)價(jià)算法性能,兩種曲線下的面積分別表示算法的平均精確度和漏檢率。依據(jù)官方標(biāo)準(zhǔn),以上兩種方法交并比閾值都設(shè)為0.5,即當(dāng)預(yù)測(cè)框與真實(shí)框交并比大于0.5時(shí),視為預(yù)測(cè)正確。
為驗(yàn)證文中算法的有效性,選擇文獻(xiàn)[4]、[8]、[15]和[9]中的算法與文中算法進(jìn)行對(duì)比。其中,前3種方法的性能直接引用文獻(xiàn)[8]的測(cè)試結(jié)果。當(dāng)交并比閾值設(shè)為0.5時(shí),文中算法檢測(cè)精度為99.84%,漏檢率為0.045% ,遠(yuǎn)超其他方法。值得注意的是,與文獻(xiàn)[8]和文獻(xiàn)[15]提出的復(fù)雜多模型相比,文中算法僅使用單模型卷積網(wǎng)絡(luò)便可達(dá)到最佳檢測(cè)效果;與文獻(xiàn)[4]相比,筆者使用改進(jìn)的損失函數(shù)解決單階段模型正負(fù)樣本不均衡的問題,使室內(nèi)人員檢測(cè)效果大幅提升。最終精度對(duì)比結(jié)果如表1所示。
表1 不同算法的精度比較 %
筆者選取不同角度及部分遮擋的圖片進(jìn)行檢測(cè),圖5為最終的檢測(cè)效果圖??梢钥闯?,文中算法對(duì)以上復(fù)雜實(shí)例均能有效檢測(cè)。這說明筆者所選網(wǎng)絡(luò)可以有效學(xué)習(xí)數(shù)據(jù)集特征,自適應(yīng)處理多角度,遮擋等困難樣本。主要原因有以下幾點(diǎn):方向梯度直方圖等傳統(tǒng)方法主要依賴人為設(shè)計(jì)的顏色、梯度等特征,而神經(jīng)網(wǎng)絡(luò)可對(duì)其他特征進(jìn)行更加全面的學(xué)習(xí),對(duì)人體目標(biāo)具有更強(qiáng)的表征能力;其次,相比文獻(xiàn)[4]算法,筆者使用改進(jìn)的損失函數(shù),可自動(dòng)提升困難樣本所占權(quán)重,降低易分類樣本在訓(xùn)練過程中所起的作用,實(shí)現(xiàn)了高效率的難例挖掘;相比原始文獻(xiàn)[9]中的RetinaNet網(wǎng)絡(luò),使用聚類算法確定更適合室內(nèi)人員檢測(cè)數(shù)據(jù)集的錨點(diǎn),選用合適的預(yù)測(cè)層,并利用通道注意力模塊,間接引入隨機(jī)失活機(jī)制,最終達(dá)到了最好的檢測(cè)效果。
圖5 檢測(cè)效果圖
文中算法實(shí)現(xiàn)高精度檢測(cè)的同時(shí),在檢測(cè)速度及內(nèi)存占用方面也做出了很大改進(jìn)。在這里選用表1中精度達(dá)到80%以上的算法進(jìn)行比較說明,所有算法的運(yùn)行平臺(tái)與上文相同。其中,文獻(xiàn)[8]不支持端到端的訓(xùn)練方式,在這里不進(jìn)行比較。檢測(cè)圖片取自室內(nèi)人員檢測(cè)數(shù)據(jù)集,分辨率為1 280×720。具體數(shù)據(jù)如表2所示,相比當(dāng)下流行的卷積神經(jīng)網(wǎng)絡(luò),筆者借助單階段網(wǎng)絡(luò)的速度優(yōu)勢(shì),選用維度聚類進(jìn)一步優(yōu)化錨點(diǎn)選取方案,達(dá)到了最快的檢測(cè)速度。實(shí)驗(yàn)選用高分辨率檢測(cè)圖片,若降低圖片分辨率,則算法速度還有進(jìn)一步提升空間;但這已超出文中研究范圍,在此不再展開。表中第2列是測(cè)試期間顯卡內(nèi)存占用情況,從表中可以看出,以批處理量等于1作為衡量標(biāo)準(zhǔn),文中算法占用內(nèi)存比文獻(xiàn)[9]小4 MB,同時(shí)遠(yuǎn)小于文獻(xiàn)[4]的,原因是算法模型小,使用參數(shù)較少。這說明文中算法具有更強(qiáng)的并行處理能力和更好的應(yīng)用前景。
表2 不同算法速度和占用內(nèi)存比較
筆者針對(duì)現(xiàn)有行人檢測(cè)算法不適用于室內(nèi)人員檢測(cè)的問題,利用已有室內(nèi)人員數(shù)據(jù)集,使用維度聚類算法選取適合室內(nèi)人員的預(yù)選框,引入通道注意力模塊間接實(shí)現(xiàn)隨機(jī)失活,提高檢測(cè)網(wǎng)絡(luò)的泛化能力。文中算法在室內(nèi)人員檢測(cè)數(shù)據(jù)集上取得了99.8%的檢測(cè)精度,且檢測(cè)速度塊,運(yùn)行時(shí)占用內(nèi)存小,并行處理能力強(qiáng),具有很好的應(yīng)用前景。
雖然在現(xiàn)有數(shù)據(jù)集上實(shí)現(xiàn)了高精度檢測(cè),考慮到實(shí)際監(jiān)控條件和應(yīng)用場(chǎng)景的復(fù)雜性,文中算法并未完全解決室內(nèi)場(chǎng)景下人員檢測(cè)的問題。為在實(shí)際場(chǎng)景中獲得更穩(wěn)定的檢測(cè)性能,還需對(duì)IHDD數(shù)據(jù)集進(jìn)一步完善,使其包含更多復(fù)雜場(chǎng)景下的人體樣本,在此基礎(chǔ)上開發(fā)完善的實(shí)時(shí)檢測(cè)算法。