石先讓?zhuān)K 洋,提 艷,宋廷倫,2,戴振泳
(1.南京航空航天大學(xué) 能源與動(dòng)力學(xué)院,南京 210001;2.奇瑞前瞻與預(yù)研技術(shù)中心,安徽 蕪湖 241006)
基于深度卷積神經(jīng)網(wǎng)絡(luò)的物體檢測(cè)方法已經(jīng)在各種數(shù)據(jù)集[1-3]上取得了較好的成果,其中很多方法都有一個(gè)共同的、重要的組成結(jié)構(gòu)——錨框(Anchor),錨框是各種大小的預(yù)選框。當(dāng)單階段(One-stage)方法[4-6]使用錨框后,可以實(shí)現(xiàn)與兩階段(Two-stage)目標(biāo)檢測(cè)方法[7-8]極具競(jìng)爭(zhēng)力的結(jié)果,同時(shí)檢測(cè)速度更快。One-stage 方法將錨框密集地放置在圖像上,根據(jù)對(duì)錨框評(píng)分并通過(guò)回歸方法修正坐標(biāo)來(lái)生成最終的預(yù)測(cè)框。需要錨框的方法稱(chēng)之為Anchor-based 方法。One-stage 目標(biāo)檢測(cè)算法將可能的邊界框(稱(chēng)為錨框)復(fù)雜地排列在圖像上,并采用滑動(dòng)窗口的方法直接對(duì)其進(jìn)行分類(lèi),而無(wú)需指定框的內(nèi)容。Two-stage 目標(biāo)檢測(cè)算法是為每個(gè)潛在的框重新計(jì)算圖像特征,然后對(duì)這些特征進(jìn)行分類(lèi)。當(dāng)檢測(cè)方法對(duì)潛在的錨框進(jìn)行檢測(cè)和分類(lèi)后,一般都需要進(jìn)行非最大值抑制(NMS)[9]后處理才能得到最終的檢測(cè)目標(biāo)的各種屬性。
雖然在近年來(lái)該方法取得了一定的成功,但是錨框還存在缺點(diǎn)。首先,在目前錨框的目標(biāo)檢測(cè)算法中,通常使用基于滑動(dòng)窗口的方法,這就需要大量的錨框,如DSSD 算法[10]中超過(guò)4 萬(wàn),而在RetinaNet算法[11]中超過(guò)10 萬(wàn)。當(dāng)采用錨框時(shí),只有小部分的錨框滿(mǎn)足于標(biāo)注的真實(shí)值重疊程度,這會(huì)造成正錨框與負(fù)錨框的失衡,往往都是負(fù)錨框的數(shù)量遠(yuǎn)多于正錨框,同時(shí)還會(huì)增加訓(xùn)練時(shí)間。其次,錨框的使用會(huì)引入很多超參數(shù),以及增加如何選擇這些超參數(shù)的難點(diǎn),這些超參數(shù)的選擇很大程度上是通過(guò)經(jīng)驗(yàn)和啟發(fā)式方法[5-8]得到的,當(dāng)與多尺度目標(biāo)檢測(cè)結(jié)合使用時(shí)會(huì)變得更加復(fù)雜。
鑒于錨框存在的缺點(diǎn),考慮設(shè)計(jì)一個(gè)不需要錨框同時(shí)可以取得良好的目標(biāo)檢測(cè)速度和準(zhǔn)確度的目標(biāo)檢測(cè)方法顯得很有必要,即Anchor-free 方法。
目前已經(jīng)產(chǎn)生了許多不需要錨框的方法[12-14]。2019 年,ZHOU 等[15]提 出CenterNet 目標(biāo)檢測(cè)算法。該算法通過(guò)對(duì)一張圖片進(jìn)行全卷積操作,輸出熱值圖,直接檢測(cè)目標(biāo)的中心和大小,不需要NMS 方法,減少了計(jì)算量。CenterNet 目標(biāo)檢測(cè)算法通過(guò)3 個(gè)網(wǎng)絡(luò)構(gòu)造來(lái)輸出預(yù)測(cè)值,分別輸出目標(biāo)的類(lèi)、中心點(diǎn)與大小,完全實(shí)現(xiàn)了Anchor-free。CenterNet 算法[15]采用了4 種Backbone,在不同的Backbone 下,其最終的目標(biāo)檢測(cè)性能有著明顯的差異。因此,設(shè)計(jì)同時(shí)兼顧目標(biāo)檢測(cè)速度和準(zhǔn)確度的Backbone,顯得很有必要。在原CenterNet 目標(biāo)檢測(cè)方法中,只采用一個(gè)特征圖進(jìn)行目標(biāo)檢測(cè),這樣不可避免地會(huì)造成圖像特征丟失。為充分利用深度卷積神經(jīng)網(wǎng)絡(luò)提取后的特征,采用特征圖融合非常重要。
本文在Hour-glasss-104 模型的基礎(chǔ)上,構(gòu)建Hourglass-208 模型。該模型基于原CenterNet 算法減少參數(shù)量和計(jì)算量,在此基礎(chǔ)上給出特征圖融合方法,并設(shè)計(jì)一種新的Backbone,通過(guò)對(duì)損失函數(shù)進(jìn)行改進(jìn),提出一種T_CenterNet 目標(biāo)檢測(cè)算法。
在Hourglass-104 模型[15]中,輸入為原始圖像大小的4 倍下采樣,依次經(jīng)過(guò)8 倍、16 倍、32 倍、64 倍、128 倍的下采樣,然后再依次經(jīng)過(guò)上采樣,最后只輸出一個(gè)特征圖,大小為輸入圖像的4 倍下采樣。
與CenterNet[15]相比,本文設(shè) 計(jì)的Hourglass-208模型最后進(jìn)行特征圖的輸出數(shù)量和大小不同于原Hourglass-104。在Hourglas-208 模型中,輸入圖像的大小為416×416×3,在進(jìn)行卷積預(yù)處理后,再輸入Hourglass-208 模型。Hourglass-208 輸入的張量的大小為208×208×128,經(jīng)過(guò)全卷積[16]操作后輸出4 個(gè)特征圖,分別為P1、P2、P3、P4。對(duì)于特征圖Pi,對(duì)應(yīng)為原輸入圖像的2i倍下采樣,即輸出特征圖的寬和高分別為輸入圖像的1/2i。最大特征圖P1的寬和高的大小為208,相對(duì)于輸入圖像寬和高的大小416,只有2 倍的下采樣,相比原Hourglass-104,保留了更多的特征圖和特征圖更高的分辨率。
在Hourglass-208 模型中,主要計(jì)算為卷積操作以及殘差網(wǎng)絡(luò)[17]的短接,由7 個(gè)殘差塊構(gòu)成,只經(jīng)過(guò)了2 倍、4 倍、8 倍和16 倍下采 樣,和hourglass-104 相比,省去了32 倍、64 倍和128 倍的下采樣。同時(shí),基于Hourglass-208 模型,在旁路卷積中,直接采用短接連接,省去了卷積操作,減少了參數(shù)量和計(jì)算量。Hourglass-208 模型如圖1 所示。

圖1 Hourglass-208 模型Fig.1 Hourglass-208 model
在圖1 中,Conv 表示卷積層,BN 表示BN層[18],Leaky relu表示Leaky relu 激活函數(shù)層,Upsample 表示上采樣層,圓形為張量的相加操作,斜杠矩形表示由卷積層、BN 層和激活函數(shù)層構(gòu)成的卷積塊,為Hourglass-208 的主要組成結(jié)構(gòu)。
在CenterNet 中,使用最大的特征圖進(jìn)行目標(biāo)檢測(cè),不可避免地?fù)p失了圖像的一些特征。為充分利用經(jīng)過(guò)卷積操作后產(chǎn)生的特征圖,本文將Hourglass-208 輸出的4 個(gè)特征圖進(jìn)行融合。文獻(xiàn)[19]提出特征金字塔網(wǎng)絡(luò)(FPN)的特征圖融合方法,隨后FPN廣泛運(yùn)用于各種卷積網(wǎng)絡(luò)中。
傳統(tǒng)特征圖融合方法都是平等對(duì)待各個(gè)特征圖,未考慮不同特征圖對(duì)最后目標(biāo)檢測(cè)性能的區(qū)別。但通過(guò)研究發(fā)現(xiàn),各個(gè)特征圖對(duì)最后融合輸出特征圖的貢獻(xiàn)是不平等的,TAN 等[20]在EfficientDet 中提出一種對(duì)各個(gè)特征圖的加權(quán)特征融合方法BiFPN。在對(duì)特征圖進(jìn)行融合時(shí),對(duì)每個(gè)輸入的特征圖增加可以學(xué)習(xí)的權(quán)重,以便網(wǎng)絡(luò)在學(xué)習(xí)時(shí),通過(guò)學(xué)習(xí)改變各個(gè)特征圖的融合權(quán)重,研究每個(gè)特征圖的最后目標(biāo)檢測(cè)性能的重要性。
對(duì)每個(gè)特征圖進(jìn)行學(xué)習(xí)的權(quán)重融合,可采用快速歸一化融合,計(jì)算公式為:

其中:ωi可用ReLU 函數(shù)保證其ωi≥0,同時(shí)設(shè)置一個(gè)極小值ε=0.000 1,避免分母為零的數(shù)值不穩(wěn)定;Ii為輸入的特征圖;O為融合輸出的特征圖,每個(gè)歸一化權(quán)重的值范圍為0~1。
本文通過(guò)2 種方法進(jìn)行特征圖的加權(quán)融合:
1)雙特征金字塔網(wǎng)絡(luò)(TFPN)方法
TFPN 結(jié)構(gòu)如圖2 所示。在圖2 中,圓形為卷積操作,點(diǎn)劃線(xiàn)箭頭代表上采樣,虛線(xiàn)箭頭表示跳層連接。

圖2 雙特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Structure of twin feature pyramid network
具體計(jì)算實(shí)例如式(2)所示:

在圖2 所示的融合方法中,由高層到低層的特征圖經(jīng)過(guò)的卷積操作逐漸增加,整體呈三角形結(jié)構(gòu),所以對(duì)該融合方法命名為雙特征金字塔網(wǎng)絡(luò)(TFPN)。
TFPN 特征圖融合不同于BiFPN[20],只有單向連接和跳層連接,因?yàn)樽詈笫峭ㄟ^(guò)熱值圖來(lái)實(shí)現(xiàn)目標(biāo)的檢測(cè)和定位,考慮一張?zhí)卣鲌D實(shí)現(xiàn),所以只采用了上采樣操作,沒(méi)有下采樣。在TFPN 中,最后輸出的只有一個(gè)融合后的特征圖Pout。不同于CenterNet 只用了最后一層單個(gè)特征圖進(jìn)行目標(biāo)檢測(cè),本文用于目標(biāo)檢測(cè)的特征圖是通過(guò)更高層的特征圖通過(guò)上采樣以及可學(xué)習(xí)的權(quán)重融合得到的。
2)FPN_o1 方法
FPN_o1 結(jié)構(gòu)如圖3 所示。在圖3 中,圓形為卷積操作,點(diǎn)劃線(xiàn)箭頭代表上采樣。

圖3 FPN_o1 結(jié)構(gòu)Fig.3 FPN_o1 structure
具體計(jì)算實(shí)例如式(3)所示:

在圖3 所示的融合方法中,由高層到低層的特征圖是經(jīng)過(guò)上采樣后,然后通過(guò)相加得到,最后輸出的只有一個(gè)融合后的特征圖Pout,原理類(lèi)似TFPN,但結(jié)構(gòu)相對(duì)于TFPN 較簡(jiǎn)單,所以對(duì)該融合方法命名為FPN_o1。
對(duì)輸出的特征圖進(jìn)行權(quán)重融合時(shí)也采用快速歸一融合法,計(jì)算公式如式(4)所示:

權(quán)重融合示意圖如圖4 所示。

圖4 權(quán)重融合結(jié)構(gòu)Fig.4 Structure of weight fusion
在圖4 中,輸出的特征圖經(jīng)過(guò)卷積,該卷積不改變特征圖維度的大小,然后通過(guò)可學(xué)習(xí)的權(quán)重相加,其中:Pij代表第i個(gè)Hourglass-208 模型中第j個(gè)特征圖;ωij代表第i個(gè)Hourglass-208 模型中第j個(gè)特征圖的權(quán)重;Pij′為融合后的輸出,即式(4)中的Pout;Add代表特征圖的相加。
熱值圖(heatmap)主要通過(guò)顏色去表現(xiàn)數(shù)值的大小,熱值圖中的顏色越暖,表示值越大,顏色越冷,表示值越小,熱值圖示意圖如圖5 所示。

圖5 熱值圖示意圖Fig.5 Schematic diagram of heatmap
本文需要將卷積神經(jīng)網(wǎng)絡(luò)提取到的中心點(diǎn)的特征轉(zhuǎn)化為熱值圖。在熱值圖中,顏色越暖,表示該處存在目標(biāo)中心點(diǎn)的概率越大;顏色越冷,表示該處為背景的概率越大(彩圖效果見(jiàn)《計(jì)算機(jī)工程》官網(wǎng)HTML 版)。
本文通過(guò)端到端堆棧多個(gè)Hourglass-208 模型,將上一個(gè)Hourglass-208 模型的輸出作為下一個(gè)Hourglass-208 模型的輸入。這種方式為網(wǎng)絡(luò)提供了一種重復(fù)的自下而上、自上而下推理的機(jī)制,從而允許重新評(píng)估整個(gè)輸入圖像的初始估計(jì)和特征。
每個(gè)Hourglass-208 模型的輸出特征圖融合后,都生成一個(gè)由關(guān)鍵點(diǎn)構(gòu)成的熱值圖。在訓(xùn)練時(shí),每個(gè)熱值圖都進(jìn)行目標(biāo)檢測(cè),生成損失函數(shù)。這種方法就可以對(duì)中間產(chǎn)生的熱值圖進(jìn)行預(yù)測(cè)和監(jiān)督,即中繼監(jiān)督[21-22]。中繼監(jiān)督可以減輕深度神經(jīng)網(wǎng)絡(luò)帶來(lái)的梯度消失和梯度爆炸等[23-24]問(wèn)題。因?yàn)橥ㄟ^(guò)對(duì)每個(gè)Hourglass-208 模型的輸出都添加中繼監(jiān)督,所以可以保證底層的神經(jīng)網(wǎng)絡(luò)參數(shù)正常更新。
預(yù)測(cè)是通過(guò)每個(gè)Hourglass-208 模型在本地和全局環(huán)境下對(duì)輸入圖像或者特征圖處理之后產(chǎn)生的。后續(xù)的Hourglass-208 模塊再次處理上一個(gè)Hourglass-208 模塊輸出的特征圖,以進(jìn)一步評(píng)估和重新評(píng)估更高階的特征信息。這種方法類(lèi)似于一些人體姿勢(shì)估計(jì)方法[21-22],在多個(gè)迭代階段和中間監(jiān)督下均表現(xiàn)出出色的性能。
在進(jìn)行中繼監(jiān)督后,將中間產(chǎn)生的熱值圖映射到更大數(shù)量的通道(通過(guò)額外的1×1 卷積),然后重新集成到特征空間中,并將這些熱值圖從Hourglass-208 中添加到特征空間中,以及前一個(gè)Hourglass-208模型輸出的特征圖中,最后輸出到下一個(gè)Hourglass-208 模塊中,將該Hourglass-208 模塊生成下一組熱值圖進(jìn)行預(yù)測(cè)。
基于錨框與基于中心點(diǎn)目標(biāo)檢測(cè)都是將目標(biāo)從背景中分離出來(lái),但是采用的方法不同,區(qū)別如圖6所示。

圖6 基于標(biāo)準(zhǔn)錨框的檢測(cè)與基于中心點(diǎn)的檢測(cè)的區(qū)別Fig.6 Difference of standard anchor-based detection and center point-based detection
在圖6(a)中,當(dāng)錨框與標(biāo)注的目標(biāo)邊界框的IoU>0.7 時(shí),記該錨框包含的內(nèi)容為前景;當(dāng)IoU<0.3 時(shí),記該錨框包含的內(nèi)容為背景;否則忽略該錨框忽略[7-8]。在圖6(b)中,將目標(biāo)中心像素表示檢測(cè)的目標(biāo)對(duì)象,周?chē)南袼攸c(diǎn)為背景,目標(biāo)對(duì)象的大小回歸得到。
設(shè)輸入圖片為I?RW×H×3,其中,W為圖片的寬;H為圖片的高。最后輸出預(yù)測(cè)為圖像關(guān)鍵點(diǎn)構(gòu)成的熱值圖,該熱值圖的值為。這里圖像的中心點(diǎn)為關(guān)鍵點(diǎn)。在關(guān)鍵點(diǎn)構(gòu)成的熱值圖中,其熱值圖的值,其中:R為圖像下采樣倍數(shù),在本文中R=2;C為關(guān)鍵點(diǎn)的類(lèi)型,即目標(biāo)的類(lèi)型,在MS COCO 數(shù)據(jù)集[3]上C=80。當(dāng)=1 時(shí)表示該點(diǎn)為目標(biāo)中心點(diǎn),當(dāng)=0 時(shí)為該點(diǎn)為背景。
CenterNet 算法原理如圖7 所示。

圖7 CenterNet 算法原理Fig.7 Principle of CenterNet algorithm
目標(biāo)的中心點(diǎn)如圖7(a)所示。在訓(xùn)練時(shí),每一個(gè)標(biāo)注的真實(shí)點(diǎn)為p?R2,根據(jù)輸出的下采樣倍數(shù)R,將真實(shí)點(diǎn)變換成,然后將真實(shí)值通過(guò)一個(gè)高斯核,如式(5)所示:


其中:α、β為Focal loss 損失函數(shù)的超參數(shù);N為每張圖片上關(guān)鍵點(diǎn)的數(shù)量,以進(jìn)行歸一化將所有損失值歸一化為1。根據(jù)Cornernet[13]目標(biāo)檢測(cè)算法,取α=2,β=4。
在最后輸出熱值圖時(shí),因?yàn)檫M(jìn)行了下采樣,所以輸出的特征圖不可避免地產(chǎn)生了偏移。為解決產(chǎn)生的偏移,可以通過(guò)對(duì)偏移進(jìn)行預(yù)測(cè),最后進(jìn)行平衡,抵消輸出偏移的影響。對(duì)所有的類(lèi)C進(jìn)行偏移預(yù)測(cè),則設(shè)輸出偏移為。如圖7(b)所示。
在訓(xùn)練時(shí),采用L1損失函數(shù),如式(7)所示:

為對(duì)目標(biāo)大小進(jìn)行預(yù)測(cè),可通過(guò)增加預(yù)測(cè)輸出分支,設(shè)輸出的目標(biāo)大小為,同時(shí)使 用smoothL1損失函數(shù)[7]進(jìn)行目標(biāo)大小學(xué)習(xí)和訓(xùn)練,smoothL1如式(8)所示:

目標(biāo)大小的損失函數(shù)如式(9)所示:

由2.2 節(jié)~2.4 節(jié)可知,總損失函數(shù)包括中心點(diǎn)的損失函數(shù)、中心點(diǎn)的偏移損失函數(shù)和目標(biāo)大小的損失函數(shù)。總損失函數(shù)表示如下:

在本文的算法模型中,設(shè)置λsize=0.1,λoff=1。
本文中的網(wǎng)絡(luò)所有輸出共享一個(gè)通用的全卷積Backbone 網(wǎng)絡(luò),使用該Backbone 網(wǎng)絡(luò)來(lái)預(yù)測(cè)目標(biāo)的關(guān)鍵 點(diǎn)、偏移和大小,每個(gè)特征圖上的 點(diǎn)輸出維度為C+4,C為目標(biāo)類(lèi)型數(shù)量。
在進(jìn)行目標(biāo)檢測(cè)時(shí),首先提取每個(gè)類(lèi)的熱值圖的峰值,選取所有值大于或等于其8 個(gè)連通鄰居的響應(yīng),并保持前100 個(gè)峰值,通過(guò)3×3 的最大池化層實(shí)現(xiàn)。

所有輸出都是直接從關(guān)鍵點(diǎn)預(yù)測(cè)產(chǎn)生的,而無(wú)需基于IoU 的非最大值抑制(NMS)或其他后處理。因?yàn)榉逯店P(guān)鍵點(diǎn)提取可以作為NMS 的替代方案,并且可以使用3×3 最大池化操作實(shí)現(xiàn)。
在本文的實(shí)驗(yàn)中,實(shí)驗(yàn)條件均為:Ubuntu16.04系統(tǒng),CPU 為Intel Core i7-8086K,GPU 采用英偉達(dá)的TITAN XP 12 GB 的獨(dú)立顯卡,安裝CUDA8.0、CUDNN5.1、OpenCV3.2 等。
為了對(duì)新設(shè)計(jì)Hourglass-208 的性能進(jìn)行測(cè)試,在這里對(duì)單個(gè)的Hourglass-208 模型進(jìn)行圖像的分類(lèi)實(shí)驗(yàn)和測(cè)試并與原來(lái)的Hourglass 模型[15]進(jìn)行比較。為了在ImageNet 數(shù)據(jù)集[1]上進(jìn)行圖像分類(lèi)實(shí)驗(yàn),在模型最后增加Softmax 全連接層。測(cè)試結(jié)果如表1所示。其中,Top-1 表示在ImageNet 數(shù)據(jù)集上的分類(lèi)準(zhǔn)確率,t表示模型對(duì)一張圖片的識(shí)別時(shí)間。

表1 Hourglass 性能測(cè)試Table 1 Hourglass performance test
從表1 可以看出,雖然Hourglass-208 的準(zhǔn)確率降低了19.9%,但是運(yùn)算速度卻提高了47.8%,這對(duì)于提高目標(biāo)檢測(cè)的實(shí)時(shí)性具有很大的優(yōu)勢(shì)。因此,為提高目標(biāo)檢測(cè)的速度,本文采用Hourglass-208 模型。
為得到最佳的網(wǎng)絡(luò)架構(gòu)設(shè)計(jì),本文設(shè)計(jì)了一系列實(shí)驗(yàn)進(jìn)行測(cè)試和驗(yàn)證。在驗(yàn)證測(cè)試時(shí),采用PASCAL VOC 數(shù)據(jù)集[2]進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)集遠(yuǎn)小于MS COCO 數(shù)據(jù)集[3],為了能更快地得到實(shí)驗(yàn)結(jié)果,選擇PASCAL VOC 數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試,根據(jù)結(jié)果對(duì)算法的架構(gòu)進(jìn)行評(píng)估,并選擇最優(yōu)的架構(gòu)結(jié)果。本文實(shí)驗(yàn)將對(duì)是否考慮中繼監(jiān)督、特征圖融合、綜合考慮2 個(gè)Hourglass-208 模型輸出特征圖的歸一化融合以及采用soomthL1損失函數(shù)來(lái)選擇最優(yōu)的網(wǎng)絡(luò)架構(gòu)。
在PASCAL VOC 數(shù)據(jù)集上進(jìn)行目標(biāo)檢測(cè)實(shí)驗(yàn)。訓(xùn)練時(shí)在訓(xùn)練圖像集上進(jìn)行算法模型訓(xùn)練,采用數(shù)據(jù)增強(qiáng)技術(shù),對(duì)訓(xùn)練集的圖像進(jìn)行隨機(jī)翻轉(zhuǎn)、隨機(jī)縮放、裁剪和色彩抖動(dòng)等方法,算法模型的優(yōu)化器選擇Adam[25]優(yōu)化,批量大小(Batch size)為32,學(xué)習(xí)率設(shè)置為指數(shù)衰減,初始值設(shè)置為1.0e-3,每經(jīng)過(guò)5epoch,學(xué)習(xí)率下降0.96 倍。以416像素×416像素的分辨率進(jìn)行輸入訓(xùn)練,在進(jìn)行2 倍下采樣后輸入到Hourglass-208 模型中,最后模型的輸出分辨率為208像素×208像素。
本文實(shí)驗(yàn)將從中繼監(jiān)督、Hourglass-208 輸出特征圖的選擇、FPN_o1、TFPN 及smoothL1損失函數(shù)等方面選擇出最優(yōu)的構(gòu)件,設(shè)計(jì)了12 種不同的算法架構(gòu),進(jìn)而篩選出目標(biāo)檢測(cè)算法的最優(yōu)架構(gòu)。本文設(shè)計(jì)的12 種架構(gòu),都使用了2 個(gè)Hourglass-208,其中對(duì)第1 個(gè)Hourglass-208 模型進(jìn)行了外部短接,2 個(gè)Hourglass-208 模塊之間沒(méi)有共享權(quán)重,對(duì)每個(gè)Hourglass-208 模型輸出的特征圖進(jìn)行權(quán)重融合、FPN_o1 及TFPN 融合等操作,然后通過(guò)1×1 卷積層生成熱值圖。在進(jìn)行模型的訓(xùn)練時(shí),每個(gè)中繼監(jiān)督都使用相同的目標(biāo)真實(shí)值計(jì)算損失函數(shù),其中目標(biāo)大小的損失函數(shù)采用L1或者smoothL1損失函數(shù)。在模型的測(cè)試時(shí),只需要將熱值圖進(jìn)行目標(biāo)中心點(diǎn)以及大小的預(yù)測(cè)即可。如果使用中繼監(jiān)督,則需將2 個(gè)熱值圖進(jìn)行相加求平均值,重新生成一個(gè)熱值圖進(jìn)行目標(biāo)檢測(cè)。
本文設(shè)計(jì)的12 種目標(biāo)檢測(cè)算法架構(gòu)如圖8 所示。

圖8 目標(biāo)檢測(cè)算法架構(gòu)Fig.8 Architecture of target detection algorithm
在圖8 中,空白矩形表示輸入圖像;Conv 表示卷積層;BN 表示BN 層;Leaky relu 表示Leaky relu 激活函數(shù)層;1×1Conv 表示1×1 卷積層;Add 表示張量的相加;熱值圖表示預(yù)測(cè)生成的熱值圖;斜杠矩形表示由卷積層、BN 層和激活函數(shù)層構(gòu)成的卷積塊;交叉矩形表示Hourglass-208 模塊;TFPN 表示TFPN 特征圖融合方法;FPN_o1 表示FPN_o1 特征圖融合方法;圓角雙點(diǎn)劃線(xiàn)矩形表示權(quán)重融合。
測(cè)試結(jié)果如表2 所示,其中:√表示采用。在表2中,中繼監(jiān)督表示是否采用中繼監(jiān)督方法;P1 表示只采用Hourglass-208 輸出的分辨率最高的特征圖進(jìn)行目標(biāo)檢測(cè),即P1 特征圖,如圖8 架構(gòu)1~架構(gòu)4 所示;FPN_o1 表示采用FPN_o1 特征圖融合方法,如架構(gòu)5~架構(gòu)8 所示;TFPN 表示采用TFPN 特征圖融合方法,如圖8 架構(gòu)9~架構(gòu)12 所示;加權(quán)融合表示是否考慮將2 個(gè)Hourglass-208 模型輸出的特征圖進(jìn)行歸一化融合;SmoothL1表示是否采用smoothL1損失函數(shù)。

表2 12 種架構(gòu)的測(cè)試結(jié)果Table 2 Test results of twelve architecture
通過(guò)表2,在類(lèi)似結(jié)構(gòu)下可得到如下結(jié)論:
1)通過(guò)對(duì)比實(shí)驗(yàn)架構(gòu)11、12 可知,采用中繼監(jiān)督后,mAP 值最高可以提高18.2 個(gè)百分點(diǎn)。
2)通過(guò)對(duì)比實(shí)驗(yàn)架構(gòu)4、12 可知,采用特征圖融合方法相比只采用P1 特征圖,mAP 值最高可以提高17.1 個(gè)百分點(diǎn)。
3)通過(guò)對(duì)比實(shí)驗(yàn)架構(gòu)8、12 可知,采用TFPN 特征圖融合方法相比采用FPN_o1 特征圖融合方法,mAP 值最高可以提高2.9 個(gè)百分點(diǎn)。
4)通過(guò)對(duì)比實(shí)驗(yàn)架構(gòu)10 和12 可知,采用smoothL1損失函數(shù)代替L1損失函數(shù)時(shí),mAP 值最高可以提高1.1 個(gè)百分點(diǎn)。
綜上所述,考慮中繼監(jiān)督、TFPN、加權(quán)融合和smoothL1時(shí),架構(gòu)12 在VOC 數(shù)據(jù)集上得到了最優(yōu)的結(jié)果,mAP 值達(dá)到了85.4%。
根據(jù)實(shí)驗(yàn)結(jié)果,架構(gòu)12 為最優(yōu)的架構(gòu),即在最終選擇的網(wǎng)絡(luò)架構(gòu)計(jì)中,使用了2 個(gè)Hourglass-208,其中對(duì)第3 個(gè)Hourglass-208 模型進(jìn)行了外部短接,2 個(gè)Hourglass-208 模塊之間沒(méi)有共享權(quán)重,對(duì)每個(gè)Hourglass-208 模型輸出的特征圖進(jìn)行權(quán)重融合以及TFPN 融合,然后通過(guò)1×1 卷積層生成熱值圖。在進(jìn)行模型的訓(xùn)練時(shí),每個(gè)中繼監(jiān)督都使用相同的目標(biāo)真實(shí)值計(jì)算損失函數(shù),其中目標(biāo)大小的損失函數(shù)采用smoothL1損失函數(shù)。
因?yàn)樵撍惴軜?gòu)采用了本文設(shè)計(jì)的TFPN 特征圖融合方法,所以命名為T(mén)_CenterNet。架構(gòu)模型如圖9 所示(圖例含義同圖8)。

圖9 T_CenterNet 架構(gòu)模型Fig.9 T_CenterNet architectural model
下文將在MSCOCO 數(shù)據(jù)集上對(duì)該架構(gòu)目標(biāo)檢測(cè)的速度和準(zhǔn)確度進(jìn)行評(píng)估,并與知名的目標(biāo)檢測(cè)算法進(jìn)行比較。
本文實(shí)驗(yàn)在Ubuntu16.04 系統(tǒng)下進(jìn)行,CPU 為Intel Core i7-8086K,GPU 采用英偉達(dá)的TITAN XP 12 GB 的獨(dú)立顯卡,安裝CUDA8.0、CUDNN5.1、OpenCV3.2 等。數(shù)據(jù)集采用更大的ImageNet 圖像分類(lèi)數(shù)據(jù)集[1]和MS COCO 目標(biāo)檢測(cè)數(shù)據(jù)集[3]。
為提高Hourglass-208 特征提取能力,本次實(shí)驗(yàn)在ImageNet 數(shù)據(jù)集上進(jìn)行圖像分類(lèi)的預(yù)訓(xùn)練。在預(yù)訓(xùn)練時(shí),由于ImageNet 數(shù)據(jù)集的目標(biāo)種類(lèi)遠(yuǎn)多于MS COCO 數(shù)據(jù)集,因此選取和MS COCO 具有相同的物體類(lèi)型進(jìn)行預(yù)訓(xùn)練,從ImageNet 數(shù)據(jù)集中選取約80 種和MS COCO 數(shù)據(jù)集具有相同物體的圖片集。對(duì)于預(yù)訓(xùn)練,需要將原T_CenterNet 目標(biāo)檢測(cè)模型進(jìn)行改進(jìn)。對(duì)于每一個(gè)Hourglass-208 的輸出,經(jīng)過(guò)TFPN 處理后,只需將2 個(gè)TFPN 的輸出Pout特征圖進(jìn)行拼接(Concat)處理,然后經(jīng)過(guò)一個(gè)卷積塊的處理,再經(jīng)過(guò)平均池化層(Avgpool),最后通過(guò)Softmax 全連接層進(jìn)行分類(lèi)輸出,共輸出80 個(gè)類(lèi)別,如圖10 所示。其中:空白矩形表示輸入圖像;Conv表示卷積層;BN 表示BN層;Leaky relu 表示Leaky relu 激活函數(shù)層;Add 表示張量的相加;Concat 表示張量的拼接操作,Avgpool 表示平均池化層;Softmax表示Softmax 全連接層;Hourglass 模型表示Hourglass-208 模塊;TFPN 表示TFPN 特征圖融合方法;雙點(diǎn)劃線(xiàn)圓角矩形表示權(quán)重融合;斜杠矩形表示由卷積層、BN層和激活函數(shù)層構(gòu)成的卷積塊。

圖10 Hourglass-208 特征提取預(yù)訓(xùn)練模型Fig.10 Hourglass-208 feature extraction pre-training model
在ImageNet 數(shù)據(jù)集上訓(xùn)練完成后,去掉拼接層、池化層和全連接層,添加熱值圖和中繼監(jiān)督,然后在MS COCO 數(shù)據(jù)集上進(jìn)行目標(biāo)檢測(cè)訓(xùn)練和測(cè)試。
在MS COCO 數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試,該數(shù)據(jù)集包含118k 訓(xùn)練圖像(train201-7)、5k 驗(yàn)證圖像(val2017)和20k 支持測(cè)試圖像(test-dev)。
在訓(xùn)練圖像集(train2017)上進(jìn)行算法模型訓(xùn)練,以416像素×416像素的分辨率進(jìn)行輸入訓(xùn)練,模型的輸出分辨率為208像素×208像素。采用數(shù)據(jù)增強(qiáng)技術(shù),對(duì)訓(xùn)練集的圖像進(jìn)行隨機(jī)翻轉(zhuǎn)、隨機(jī)縮放、裁剪、色彩抖動(dòng)等方法,算法模型的優(yōu)化器選擇Adam。學(xué)習(xí)率設(shè)置為指數(shù)衰減,初始值設(shè)置為1.0e-3,每經(jīng)過(guò)5epoch,學(xué)習(xí)率下降0.96 倍,批量大小(Batch size)設(shè)置為32。
損失函數(shù)的收斂趨勢(shì)如圖11 所示。從圖11 可以看出,其損失函數(shù)L(size)、L(off)、L(k)和L(det)分別在迭代數(shù)(Iteration)為1.35×107、1.24×107、2.4×107和2.5×107時(shí)趨于收斂,其損失函數(shù)值分別收斂于0.2、0.1、0.78 和0.9。另一方面可以得出L(off)的收斂速度最快,L(size)其次,最后是L(k),總損失函數(shù)L(det)最后在迭代數(shù)為2.5×107時(shí)最后收斂。其總損失函數(shù)的值最終穩(wěn)定在0.9 左右,即T_CenterNet 模型達(dá)到穩(wěn)定和最優(yōu)。

圖11 損失函數(shù)的收斂曲線(xiàn)Fig.11 Convergence curve of loss function
對(duì)于測(cè)試,同樣是在MS COCO 數(shù)據(jù)集上評(píng)估了目標(biāo)檢測(cè)的性能。最后的測(cè)試結(jié)果的指標(biāo)為FPS(Frame Per Second),表示每秒檢測(cè)圖像的幀數(shù),是實(shí)時(shí)性的衡量參數(shù)。AP、AP50、AP75、APs、APM、APL為對(duì)MS COCO 數(shù)據(jù)集圖像上目標(biāo)檢測(cè)準(zhǔn)確性的評(píng)價(jià)指標(biāo),如表3 所示。其中:AP(Average Precision)為目標(biāo)檢測(cè)的平均精度:APs為小目標(biāo)的檢測(cè)精度;APM為中等大小目標(biāo)的檢測(cè)精度:APL為大目標(biāo)的檢測(cè)精度。具體請(qǐng)參考MS COCO 數(shù)據(jù)集官網(wǎng)(http://cocodataset.org/#detections-eval)。在表3 中:加粗?jǐn)?shù)字代表排名第1;加粗斜體數(shù)字代表排名第2;斜體數(shù)字代表排名第3;R_T_CenterNet 為未對(duì)T_CenterNet目標(biāo)檢測(cè)算法預(yù)訓(xùn)練;T_CenterNet/off 為不考慮對(duì)目標(biāo)中心點(diǎn)的偏移的預(yù)測(cè),即去掉T_CenterNet 中對(duì)目標(biāo)中心點(diǎn)預(yù)測(cè)的分支(經(jīng)過(guò)預(yù)訓(xùn)練);T_CenterNet為本文設(shè)計(jì)的目標(biāo)檢測(cè)算法。
通過(guò)表3 可以得知:
1)T_CenterNet 算法模型的AP50達(dá)到63.6%,APS達(dá)到31.6%,APM達(dá)到45.8%,在表2 中的目標(biāo)檢測(cè)算法中排名第1。
2)雖 然T_CenterNet 算法模型的FPS 值低于EfficientDet-D0 的47,但是也達(dá)到了36%,排名第3,具有實(shí)時(shí)性。
3)T_CenterNet 算法模型的目標(biāo)檢測(cè)各項(xiàng)指標(biāo)均高于EfficientDet-D2,雖然AP、AP75和APL指標(biāo)低于 EfficientDet-D3,但是FPS值卻遠(yuǎn)高于EfficientDet-D3 的28 frame/s。
4)T_CenterNet 算法模型的目標(biāo)檢測(cè)各項(xiàng)指標(biāo)均高于原CenterNet 算法模型。這個(gè)結(jié)果與改進(jìn)的Hourglass-208 和采用了加權(quán)特征圖融合方法有關(guān)。
5)從T_CenterNet/off 的檢測(cè)結(jié)果可以看出,去掉中心點(diǎn)偏移的預(yù)測(cè)后,對(duì)目標(biāo)的檢測(cè)速度影響不大,只有1 幀的速率的提升。各個(gè)檢測(cè)精度的指標(biāo)均有降低,其中AP 值降低了5.49 個(gè)百分點(diǎn),特別是對(duì)大目標(biāo)和中等大小的目標(biāo)影響很大,分別降低了11.3、7.86 個(gè)百分點(diǎn),但對(duì)小目標(biāo)的檢測(cè)準(zhǔn)確度影響很小,只降低了0.1個(gè)百分點(diǎn)。總體來(lái)講,增加對(duì)目標(biāo)中心點(diǎn)偏移的預(yù)測(cè)有利于增加目標(biāo)檢測(cè)的準(zhǔn)確性。
通過(guò)實(shí)驗(yàn)可知,本文提出的T_CenterNet 算法模型在進(jìn)行目標(biāo)檢測(cè)之前先在ImageNet 數(shù)據(jù)集上對(duì)Hourglass-208 進(jìn)行了預(yù)訓(xùn)練,通過(guò)預(yù)訓(xùn)練的方法,可以很好地提高目標(biāo)檢測(cè)的性能。從表3 可以看出,T_CenterNet 目標(biāo)檢測(cè)算法最后的測(cè)試結(jié)果超過(guò)了原CenterNet 算法模型,也優(yōu)于最新的EfficientDet 目標(biāo)檢測(cè)算法,總體上達(dá)到了理想的結(jié)果。但是在目標(biāo)檢測(cè)的準(zhǔn)確度上,T_CenterNet 算法模型的部分指標(biāo)稍落后于EfficientDet-D3 算法模型,由于EfficientDet 算法模型綜合考慮了復(fù)合模型縮放方法[20]。

表3 在MS COCO 數(shù)據(jù)集測(cè)試圖像上的目標(biāo)檢測(cè)結(jié)果Table 3 Object detection results on test images of MS COCO dataset
該算法模型采用TFPN 特征圖融合策略后,對(duì)于原CenterNet 中多個(gè)中心點(diǎn)在同一位置的目標(biāo)檢測(cè)效果不是很理想,改善不明顯,這是因?yàn)樽詈蟮哪繕?biāo)檢測(cè)還是在一個(gè)特征圖上進(jìn)行的(TFPN 的目標(biāo)檢測(cè)并不是嚴(yán)格意義上的用特征金字塔網(wǎng)絡(luò)(FPN)進(jìn)行目標(biāo)檢測(cè))。關(guān)于該問(wèn)題解決,還要考慮使用多個(gè)分辨率不同的特征圖進(jìn)行目標(biāo)檢測(cè)。同時(shí)發(fā)現(xiàn),當(dāng)不考慮在ImageNet 數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練時(shí),T_CenterNet 算法模型在目標(biāo)檢測(cè)準(zhǔn)確度的各項(xiàng)指標(biāo)均有5%~20%的降低。因此,該算法模型經(jīng)過(guò)預(yù)訓(xùn)練后,可以取得更好的效果。另一方面也可以得到,當(dāng)模型考慮對(duì)目標(biāo)中心點(diǎn)偏移的預(yù)測(cè)時(shí),有利于增加該模型進(jìn)行目標(biāo)檢測(cè)的準(zhǔn)確率。
本文針對(duì)CenterNet 算法中以Hourglass 為Backbone 的目標(biāo)檢測(cè)模型檢測(cè)速度慢的問(wèn)題,提出改進(jìn)的T_CenterNet 算法。在原CenterNet 算法的基礎(chǔ)上對(duì)Hourglass 以及特征圖融合等方法進(jìn)行改進(jìn),將目標(biāo)大小的損失函數(shù)改進(jìn)為smoothL1。在MS COCO 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文提出的T_CenterNet 算法與One-stage 和Two-stage 算法相比具有競(jìng)爭(zhēng)優(yōu)勢(shì),綜合性能優(yōu)于EfficientDet 系列目標(biāo)檢測(cè)算法。下一步將對(duì)本文所提模型進(jìn)行輕量化設(shè)計(jì),以應(yīng)用于嵌入式設(shè)備與移動(dòng)設(shè)備。