王 梅,李東旭,陳琳琳,范思萌,許傳海,楊二龍
(1.東北石油大學計算機與信息技術(shù)學院,黑龍江 大慶 163318;2東北石油大學石油工程學院,黑龍江 大慶 163318)
大數(shù)據(jù)的蓬勃發(fā)展,推動了無人駕駛、圖像搜索以及室內(nèi)檢測等檢測領(lǐng)域的快速發(fā)展[1 - 5]。但是,大數(shù)據(jù)也給檢測領(lǐng)域帶來了新的挑戰(zhàn),其中包括室內(nèi)人員的目標檢測。在室內(nèi)人員的檢測中數(shù)據(jù)常常會存在姿態(tài)、背景和遮擋等不確定性問題,這些都會對檢測精度產(chǎn)生巨大影響,因此提高目標檢測精度一直受到極大的關(guān)注[6 - 10]。
Figure 1 Mask RCNN structure圖1 Mask RCNN結(jié)構(gòu)
目標檢測主要分為2種,一種是單階段檢測方法,其檢測速度快,但是檢測精度不高,主要有YOLO(You Only Look Once)[11]、SSD(Single Shot MultiBox Detector)[12]、CornerNet[13]和ExtremeNet[14]等方法;另一種是兩階段檢測方法,主要是通過區(qū)域建議網(wǎng)絡(luò)RPN(Region Proposal Network)生成候選目標,再對目標進行識別及定位,主要有RCNN[15]、Fast RCNN[16]和Faster RCNN[17]等方法。為滿足實際分割需求,He等人[18]通過在Faster RCNN基礎(chǔ)上添加實例分割分支和ROI Align,提出了Mask RCNN算法。
Mask RCNN算法使用非極大值抑制NMS(Non-Maximum Suppression)算法進行候選框濾除,其思想是“非黑即白”,只選取分類目標得分最高的候選框,因為閾值固定不變,一定程度上提高了目標在高度重疊時被漏檢的風險。在此基礎(chǔ)上,soft-NMS算法[19]采用“權(quán)值懲罰”來解決該問題,但soft-NMS算法會增加候選框數(shù)量,從而出現(xiàn)了同一目標被重復(fù)檢測的新問題。通常,研究人員通過多次實驗選取最優(yōu)結(jié)果的固定閾值,但閾值過大,容易出現(xiàn)目標漏檢問題;閾值過小,又容易出現(xiàn)重復(fù)檢測問題。
針對以上問題,本文基于自適應(yīng)閾值-非極大值抑制AT-NMS(Adaptive Threshold Non- Maximum Suppression)算法提出了Mask RCNNAT-NMS算法。本文主要工作如下:(1)針對目標特征提取問題,在Mask RCNN中加入可變形卷積增強目標特征提取能力;(2)在NMS閾值設(shè)定時,利用區(qū)間離散二階差分方程計算合理閾值,降低漏檢概率。
Mask RCNN是基于候選區(qū)域的目標檢測算法,如圖1所示,首先通過ResNet(Residual Network)[20]對圖像進行特征提取并通過全卷積網(wǎng)絡(luò)構(gòu)成特征金字塔網(wǎng)絡(luò)FPN(Feature Pyramid Network);然后通過RPN對提取到的卷積特征生成候選區(qū)域;最后利用Mask RCNN的3個分支對目標進行識別與分割,其中2個分支分別是全連接層(進行分類)和邊框(回歸),另一個分支經(jīng)過全卷積網(wǎng)絡(luò)進行上采樣得到分割圖像。
Mask RCNN定義一個如式(1)所示的多任務(wù)的損失函數(shù):
L=Lcls+Lreg+Lmask
(1)
其中,Lcls是RPN網(wǎng)絡(luò)中分類損失,采用的是二分類交叉熵損失,如式(2)所示:
(2)
Lreg是RPN邊界框回歸計算的正則化L1損失,如式(3)所示:
(3)
Lmask是采用對預(yù)測掩膜(mask)的每個像素點求Sigmoid函數(shù)均值,定義為平均二值交叉熵損失函數(shù),如式(4)所示,此函數(shù)僅在第k個類別上有定義,其它的k個mask輸出對損失沒有貢獻:
(4)
RPN網(wǎng)絡(luò)是Mask RCNN中至關(guān)重要的一部分,RPN的關(guān)鍵在于錨點機制,如圖2所示。首先用滑動窗口在特征圖像上進行遍歷,以錨點為中心選定9種錨箱,其中滑窗滑動一次會預(yù)測k個區(qū)域建議,回歸層需要預(yù)測出錨箱的寬、高和中心坐標,分類層需要區(qū)分是前景還是背景的概率,因此回歸層需要輸出4k個坐標,分類層需要輸出2k個得分。
Figure 2 RPN anchor mechanism圖2 RPN錨點機制
RPN網(wǎng)絡(luò)可以針對生成檢測建議框的任務(wù)進行端到端的訓練,同時預(yù)測出圖像中每個目標的類別分數(shù)和邊界。RPN中采用smoothL1損失函數(shù),相比L1損失函數(shù)在離群點、異常值不敏感等問題上有更好的表現(xiàn),并且魯棒性更好,在訓練的過程中比較穩(wěn)定。其中損失函數(shù)smoothL1如式(5)所示:
(5)
Figure 3 Improved Mask RCNN圖3 改進后的 Mask RCNN
改進的Mask RCNN的結(jié)構(gòu)如圖3所示,在原始網(wǎng)絡(luò)的ResNet階段中加入可變形卷積核[21],在原有卷積核的基礎(chǔ)上增加了模塊對空間采樣的位置信息,在RPN階段加入自適應(yīng)閾值-非極大值抑制算法計算合理閾值;然后經(jīng)過ROI Align 2次量化處理;最后經(jīng)過Mask branch、Box regression和classification 3個分支得到最后結(jié)果。
本文算法中,可變形卷積模塊以大小為3*3的卷積核為例,標準的方塊卷積核落在圖像上表示為M,用于該區(qū)域的特征提取。區(qū)域M可以表示為:
M={(-1,-1),(-1,0),…,(0,1),(1,1)}
(6)
對于在輸出結(jié)果Y上的每個位置z0,通過式(7)進行計算:
(7)
其中,x()表示輸入特征映射,w()表示采樣點的權(quán)重,zi是特征圖上點的位置,Δzi是zi的偏移變量。可變形卷積可以根據(jù)圖像中物體的形狀特征進行自適應(yīng)調(diào)整,可以靈活地提取不同的形態(tài)特征。
由于采樣在不規(guī)則區(qū)域中進行,會導(dǎo)致偏離層特征點位置不連續(xù),因此采用雙線性插值的方法把任意的輸出轉(zhuǎn)化為連續(xù)的。對式(7)使用雙線性插值得到式(8):
(8)
其中,G(·,·)是雙線性插值函數(shù),p表示離散的采樣點,q表示雙線性插值之后的連續(xù)點集。
3.3.1 算法流程
在目標檢測中采用NMS算法選取候選框,并計算出該候選框的最終得分sf,如式(9)所示:
(9)
其中,si為候選框的原始得分,C為得分最高的候選框,bi為待檢測框,UIOU(C,bi)為待檢測框bi和C的交并比,Nt為固定閾值。
本文針對Nt提出Mask RCNNAT-NMS算法,計算最終得分sf,如式(10)所示:
(10)
其中,NAT是將每個目標的置信度最高得分進行歸一化后作為區(qū)間數(shù),然后使用二階差分公式計算出的閾值,其中區(qū)間數(shù)定義如下:
k=2,3,…,n-1
(11)
即在此時設(shè)定的閾值,使得目標置信度得分區(qū)別較大,可以在一定程度上減少目標漏檢和重復(fù)檢測。
3.3.2 收斂性分析
Mask RCNNAT-NMS是在Mask RCNN算法的基礎(chǔ)上采用離散二階差分計算閾值,因此在Mask RCNN停止時算法終止,只需證明Mask RCNN的收斂性。
Lcls和Lreg分別是分類損失和邊框回歸損失,其中分類損失采用的是二分類交叉熵損失,回歸損失采用smoothL1損失。Lmask是采用平均二值交叉熵損失,已知3個損失是可以收斂的,本文不再證明。因此,本文算法也是收斂的。
綜合上述對Mask RCNNAT-NMS算法關(guān)鍵部分的描述,本文算法的具體檢測步驟如算法1所示。
算法1一種基于AT-NMS的Mask RCNN改進算法Mask RCNNAT-NMS
輸入:圖像數(shù)據(jù)。
輸出:帶有類標簽、掩膜和目標邊框的圖像數(shù)據(jù)。
步驟1通過加入可變形卷積的ResNet網(wǎng)絡(luò)提取特征,得到輸入圖像的特征圖;
步驟2在RPN網(wǎng)絡(luò)中使用AT-NMS算法獲取特征圖的建議信息;
步驟3將建議信息的深層信息映射回特征圖;
步驟4采用ROI Align對特征圖上不同大小的建議信息進行量化處理,以固定到一個統(tǒng)一的大??;
步驟5通過Mask branch中的全卷積網(wǎng)絡(luò)輸出實例分割圖像;
步驟6通過全連接層輸出目標的類標簽和目標位置信息。
本文實驗數(shù)據(jù)集采用PASCAL-VOC2012[23]和Indoor CVPR_09[24]。PASCAL-VOC2012數(shù)據(jù)集包含了擁有標簽的trainval(11 540幅圖像)和沒有標簽的test(10 991幅圖像),提取數(shù)據(jù)集中10 000幅不同的person圖像。隨機抽取8 000幅圖像作為訓練集,1 000幅圖像作為驗證集,1 000幅圖像作為測試集。Indoor CVPR_09數(shù)據(jù)集包含67個室內(nèi)類別,總共15 620幅圖像,挑選出帶有people的圖像4 000幅,隨機抽取2 500幅圖像作為訓練集,500幅圖像作為驗證集,1 000幅圖像作為測試集,在對應(yīng)的測試集上進行實驗結(jié)果測試,使用精確度、目標漏檢率和重復(fù)檢測率作為性能評測指標。本實驗所用框架為Keras和TensorFlow,處理器為AMD R5 2600,內(nèi)存32 GB,顯卡為NVIDIA 1080Ti。
本文選取目標檢測中重要的評價指標之一精確度P,其主要表示正確識別目標個數(shù)與總識別目標個數(shù)之比,其計算公式如式(12)所示:
(12)
其中,XTP是正確識別目標的個數(shù),XNP是識別目標個數(shù)總和。
為了對比Mask RCNNAT-NMS在目標重復(fù)檢測和漏檢等問題上的可靠性,另外選擇重復(fù)檢測率和目標漏檢率作為衡量標準,其計算公式如式(13)和式(14)所示:
(13)
(14)
其中,Rt表示重復(fù)檢測次數(shù)總和,Rr表示重復(fù)檢測率,Cer為目標漏檢概率,Ce為漏檢目標總和。
為驗證Mask RCNNAT-NMS的檢測性能,在數(shù)據(jù)集PASCAL-VOC2012和Indoor CVPR_09中選取生活的場景圖進行實驗,將Mask RCNNAT-NMS算法的檢測結(jié)果與Mask RCNN算法的檢測結(jié)果進行對比。本文進行了大量實驗,并隨機選取實驗結(jié)果圖像進行對比,選取的實驗結(jié)果如圖4和圖5所示。
由圖4可知,在圖4a中包含8個目標,Mask RCNN算法只檢測出5個目標,左側(cè)目標、右上側(cè)目標和右側(cè)目標因遮擋而漏檢;Mask RCNNAT-NMS算法檢測出6個目標,左上側(cè)漏檢1個目標,右側(cè)漏檢1個目標。在圖4d中包含10個目標,MaskRCNN算法檢測出9個目標,左下角的1個目標漏檢,右下角漏檢1個目標,右下角重復(fù)檢測1個目標;Mask RCNNAT-NMS算法檢測出10個目標,無漏檢。
由圖5可知,在圖5a中包含5個檢測目標,Mask RCNN算法檢測出6個目標,重復(fù)檢測1個目標;Mask RCNNAT-NMS算法檢測出5個目標,無重復(fù),其中Mask RCNNAT-NMS算法檢測精確度相對Mask RCNN有所提升。在圖5d中包含12個目標,Mask RCNN算法左側(cè)漏檢1個目標,共檢測出11個目標;Mask RCNNAT-NMS算法左側(cè)漏檢1個目標,共檢測出11個目標。
為了進一步分析算法的性能,在PASCAL-VOC2012和Indoor CVPR_09 2個數(shù)據(jù)集上分別對Mask RCNN和Mask RCNNAT-NMS進行多次實驗,并對結(jié)果進行分析其目標漏檢率和重復(fù)檢測率如表1和表2所示,檢測精確度如表3所示。
Figure 4 Comparison of experiment results between Mask RCNNAT-NMS and Mask RCNN on the Indoor CVPR_09 dataset圖4 Mask RCNNAT-NMS與Mask RCNN在Indoor CVPR_09數(shù)據(jù)集上的實驗結(jié)果對比
Figure 5 Comparison of experiment results between Mask RCNNAT-NMS and Mask RCNN on the PASCAL-VOC2012 dataset圖5 Mask RCNNAT-NMS與Mask RCNN在PASCAL-VOC2012數(shù)據(jù)集上的實驗結(jié)果對比
Table 1 Comparison of detection results between Mask RCNNAT-NMS and Mask RCNN on the PASCAL-VOC2012 dataset
由表1可知,在PASCAL-VOC2012數(shù)據(jù)集上,Mask RCNNAT-NMS算法的重復(fù)檢測率為8.7%,漏檢率為7.3%;Mask RCNN算法的重復(fù)檢測率為10.2%,漏檢率為8.5%。相比于Mask RCNN算法,Mask RCNNAT-NMS算法的重復(fù)檢測率降低了1.5%,漏檢率降低了1.2%。
Table 2 Comparison of detection results between Mask RCNNAT-NMS and Mask RCNN on the Indoor CVPR_09 dataset
由表2可知,在 Indoor CVPR_09 數(shù)據(jù)集上,Mask RCNNAT-NMS算法的重復(fù)檢測率為11.9%,漏檢率為9.3%;Mask RCNN算法的重復(fù)檢測率為12.7%,漏檢率為10.4%。相比于Mask RCNN算法,Mask RCNNAT-NMS算法重復(fù)檢測率降低了1.2%,漏檢率降低了1.1%。
Table 3 Comparison of detection accuracy between Mask RCNNAT-NMS and Mask RCNN on different datasets
由表3可知,在PASCAL-VOC2012數(shù)據(jù)集上,Mask RCNN選取閾值為AP50的檢測精確度是78.8%,Mask RCNNAT-NMS的檢測精確度是80.2%,精確度提升1.4%。在Indoor CVPR_09數(shù)據(jù)集上,Mask RCNN選取閾值為AP50的檢測精確度是80.6%,Mask RCNNAT-NMS算法的檢測精確度是81.1%,精確度提升0.5%。
綜上所述,在多種場景的室內(nèi)人員檢測中出現(xiàn)人員重疊、遮擋時,本文提出的Mask RCNNAT-NMS算法都比Mask RCNN算法的檢測效果好。具體如下:
(1)本文算法能夠在一定程度上檢測出2個目標疊加而導(dǎo)致的漏檢目標;
(2)對同樣的目標,本文算法的檢測精確度更高。
本文提出了一種基于AT-NMS的Mask RCNN改進算法Mask RCNNAT-NMS,根據(jù)自適應(yīng)調(diào)整閾值的方法有效地平衡因固定閾值帶來的目標漏檢和目標重復(fù)檢測問題。在PASCAL-VOC2012數(shù)據(jù)集和Indoor CVPR_09數(shù)據(jù)集上,將本文算法與Mask RCNN算法進行了對比分析,相比于Mask RCNN算法,在2個數(shù)據(jù)集上,本文算法重復(fù)檢測率分別降低了1.5%和1.2%,目標漏檢率分別降低了1.2%和1.1%,精確度提升了1.4%和0.5%。實驗結(jié)果表明,本文算法能在一定程度上降低目標漏檢和重復(fù)檢測概率,并在檢測精確度上也有著良好表現(xiàn)。但是,在測試的過程中發(fā)現(xiàn),目標實例的邊緣、輪廓等方面的分割精度并不是很好,仍然存在較大的誤差,這也是接下來的工作中需要解決的問題。