馮 號(hào),黃朝兵*,文元橋
(1.武漢理工大學(xué) 信息工程學(xué)院,武漢 430070;2.武漢理工大學(xué) 智能交通系統(tǒng)研究中心,武漢,430063)
近年來,隨著計(jì)算機(jī)運(yùn)算能力的不斷提升,深度學(xué)習(xí)被廣泛應(yīng)用于目標(biāo)檢測(cè)。相較于傳統(tǒng)的目標(biāo)檢測(cè)算法,使用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測(cè)的過程就像一個(gè)黑匣子,深度學(xué)習(xí)模型通過模擬人腦的視覺感知系統(tǒng),直接從原始圖像中提取特征并逐層傳遞,以獲得圖像的高維信息。目前優(yōu)秀的深度學(xué)習(xí)檢測(cè)模型大致可以分為兩類:第一類模型將目標(biāo)檢測(cè)分為候選框選取和目標(biāo)分類兩階段[1],代表算法有R-CNN(Region-Convolutional Neural Network)[2]、Fast R-CNN[3];第二類為一階段模型,將分類與定位看作回歸任務(wù)來進(jìn)行,典型的代表算法有YOLO(You Only Look Once)[4-7]、Retina-Net[8]。
遙感圖像通常由航空航天平臺(tái)獲取,其中目標(biāo)的尺寸相對(duì)背景而言比較小,對(duì)這些小目標(biāo)進(jìn)行檢測(cè)是富有挑戰(zhàn)的研究任務(wù)[9]。小目標(biāo)的定義方式有兩種:一種是相對(duì)尺寸的定義,若目標(biāo)的長寬是原圖像的1/10,即認(rèn)為是小目標(biāo);另一種定義方式認(rèn)為面積小于32×32 像素的目標(biāo)是小目標(biāo)。小目標(biāo)檢測(cè)一直都是目標(biāo)檢測(cè)任務(wù)中的難點(diǎn),Lin 等[10]提出的特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN),首先在小尺度特征圖上采樣,然后與大尺度特征圖進(jìn)行融合,最后再進(jìn)行預(yù)測(cè),使小目標(biāo)檢測(cè)的精度提升顯著;Kisantal等[11]將包含小目標(biāo)的樣本進(jìn)行過采樣,使小目標(biāo)的檢測(cè)精度有較大提升;Liu等[12]提出了感受野塊(Receptive Field Block,RFB)結(jié)構(gòu),通過引入空洞卷積,增大感受野,進(jìn)而提高小目標(biāo)的檢測(cè)精度;邵慧翔等[13]對(duì)錨框進(jìn)行了優(yōu)化,在多尺度訓(xùn)練過程中提升目標(biāo)與錨框的貼合程度,進(jìn)而提升檢測(cè)精度;于洋等[14]通過在YOLOv2中加入直通層對(duì)船舶目標(biāo)進(jìn)行檢測(cè),與原始 YOLOv2 算法相比準(zhǔn)確率有所提高;Ye 等[15]提出自適應(yīng)空間特征融合(Adaptively Spatial Feature Fusion,ASFF)模塊,對(duì)模型中的信息流進(jìn)行重新分配權(quán)重,以獲得對(duì)檢測(cè)有用的信息。
雖然現(xiàn)有的深度學(xué)習(xí)方法在小目標(biāo)檢測(cè)任務(wù)中取得了一些的成果,但是大部分目標(biāo)檢測(cè)算法在遙感圖像小目標(biāo)檢測(cè)任務(wù)中精度不高。這是因?yàn)楣歉缮窠?jīng)網(wǎng)絡(luò)如VGG(Visual Geometry Group)系 列[16]和ResNet(Residual Network)系 列[17]都有幾次下采樣處理,導(dǎo)致小目標(biāo)在特征圖的尺寸基本上只有個(gè)位數(shù)的像素大小,最后使用分類器進(jìn)行分類的效果不佳。另外,Ye 等[15]提出的ASFF 模塊雖然對(duì)信息進(jìn)行了篩選,但是這種篩選方式并不是最有效的;邵慧翔等[13]提出的錨框優(yōu)化算法在目標(biāo)尺寸分布不均衡的復(fù)雜數(shù)據(jù)集中,容易出現(xiàn)真實(shí)框(Ground Truth Box,GTB)與檢測(cè)目標(biāo)不匹配的情況,從而影響模型的檢測(cè)能力。針對(duì)以上問題,本文使用K 均值聚類變換(K-means Transformation,K-means-T)算法對(duì)GTB 進(jìn)行聚類,增加先驗(yàn)框與GTB 之間的匹配度;優(yōu)化置信度損失函數(shù),改善難易樣本分布不均的問題;引入注意力機(jī)制以提升對(duì)小目標(biāo)物體的感知能力。綜合以上改進(jìn)思路,本文提出了一種對(duì)YOLOv3 算法引入K 均值聚類變換和注意力機(jī)制的改進(jìn)(improved YOLOv3 algorithm by adding Attention mechanism and K-means Transformation,YOLOv3-AKT)算法。
YOLOv3 作為一階檢測(cè)模型,主要是由特征提取模塊(Darknet-53 編碼模塊)和特征融合模塊(FPN 解碼模塊)組成。如圖1 所示,1 張416×416 的圖片輸入到網(wǎng)絡(luò)后首先會(huì)被Darknet53 模塊提取特征,Darknet53 對(duì)輸入圖像分別進(jìn)行8 倍、16 倍、32 倍下采樣得到3 張分辨率分別為52×52、26×26、13×13 的特征圖。接下來FPN 模塊就會(huì)對(duì)這3 個(gè)層進(jìn)行特征融合并重構(gòu)。
圖1 YOLOv3的模型結(jié)構(gòu)Fig.1 Model structure of YOLOv3
FPN 模塊主要是將提取到的抽象的語義信息和淺層位置信息相融合。首先,13×13 特征圖經(jīng)一系列卷積后流向兩個(gè)分支,一條分支流作為最終結(jié)果輸出,其輸出的特征圖的大小為(13,13,1 024);另一條分支經(jīng)過上采樣UpSampling2d后與淺層特征圖(26,26,512)按通道方向進(jìn)行特征融合。融合后的特征圖繼續(xù)進(jìn)行卷積流向兩個(gè)分支:一條作為最終結(jié)果輸出,其輸出的特征圖尺寸為(26,26,256);另一條分支繼續(xù)進(jìn)行上采樣與更淺層特征圖(52,52,128)進(jìn)行融合,融合后作為最終輸出進(jìn)行回歸預(yù)測(cè)。所以FPN 模塊一共輸出(13,13,512)、(26,26,256)、(52,52,128)3 個(gè)特征圖,接下來這3 個(gè)特征圖會(huì)經(jīng)過Yolo Head 模塊,最后輸出3 個(gè)不同的預(yù)測(cè)圖,其大小分別為(13,13,3*(num_classes+1+4)),(26,26,3*(num_classes+1+4)),(52,52,3*(num_classes+1+4))。預(yù)測(cè)圖最后一維數(shù)據(jù)中的數(shù)字3 代表了每一個(gè)特征點(diǎn)存在3個(gè)先驗(yàn)框;num_classes代表數(shù)據(jù)集的種類數(shù);1 代表了先驗(yàn)框是否包含了物體信息;4 代表了每個(gè)先驗(yàn)框的調(diào)整參數(shù)(分別為先驗(yàn)框中心坐標(biāo)x,y與先驗(yàn)框高寬h,w)。
輸入的圖片經(jīng)過YOLOv3 模型后最終預(yù)測(cè)出x、y、w、h、c、p這6 個(gè)參數(shù),其中:x、y、w、h分別代表了預(yù)測(cè)框的中心調(diào)整參數(shù)和寬高調(diào)整參數(shù),c代表了框內(nèi)是否有物體的置信度,p代表了物體種類置信度。另外,也需要把標(biāo)簽文件中關(guān)于真實(shí)框的信息轉(zhuǎn)為相應(yīng)的參數(shù)才可進(jìn)行損失函數(shù)計(jì)算。真實(shí)框映射在3 個(gè)不同的特征層上會(huì)產(chǎn)生4 個(gè)調(diào)整參數(shù)其中為真實(shí)框的中心調(diào)整參數(shù)為真實(shí)框的寬高調(diào)整參數(shù)。
YOLOv3網(wǎng)絡(luò)損失函數(shù)由三部分組成,分別為預(yù)測(cè)框定位誤差、目標(biāo)的交并比(Intersection Over Union,IOU)誤差以及分類誤差。將真實(shí)框的調(diào)整參數(shù)和網(wǎng)絡(luò)預(yù)測(cè)的調(diào)整參數(shù)x、y、w、h、c、p代入損失函數(shù)來計(jì)算損失,如式(1)所示:
YOLOv3 雖然通過特征融合輸出三種尺度的特征圖兼顧了小目標(biāo)預(yù)測(cè),但是對(duì)于以小目標(biāo)檢測(cè)為主的遙感目標(biāo)檢測(cè)任務(wù)的檢測(cè)精度仍然不能滿足實(shí)際需要。本文采用K-means-T 算法對(duì)Anchor 進(jìn)行優(yōu)化以提升錨框和目標(biāo)物體的貼合程度,對(duì)置信度損失函數(shù)進(jìn)行改進(jìn)以解決樣本難易程度分布不均問題,并且引入位置注意力(Coordinate Attention,CA)模塊來增強(qiáng)模型對(duì)細(xì)節(jié)信息的感知能力。
YOLOv3 模型會(huì)得到若干預(yù)測(cè)框,這些預(yù)測(cè)框分為3 種不同的情況:與真實(shí)框的IOU 最大的預(yù)測(cè)框會(huì)被判為正例(目標(biāo));IOU 超過門限但是并不是最高的預(yù)測(cè)框被忽略掉;IOU 低于門限的預(yù)測(cè)框被判為負(fù)樣本(背景)。這里的門限一般設(shè)為0.5。在YOLO 目標(biāo)檢測(cè)中,圖片背景數(shù)量遠(yuǎn)遠(yuǎn)大于目標(biāo)數(shù)量,盡管YOLOv3 已經(jīng)設(shè)置了閾值機(jī)制限制了負(fù)樣本的數(shù)量,但是仍然存在大量的負(fù)樣本,正負(fù)樣本數(shù)量的不平衡會(huì)影響網(wǎng)絡(luò)的訓(xùn)練。另外,不同難度樣本的分布不均衡問題也影響著YOLO 模型的訓(xùn)練。易樣本是指正負(fù)樣本中容易被模型學(xué)習(xí)并準(zhǔn)確判斷的樣本,而難樣本則是特征不明顯容易被錯(cuò)誤判斷的樣本。背景樣本雖然大部分非常容易識(shí)別,但其中也會(huì)存在著比較像某類目標(biāo)的難樣本,而前景類中也有許多難以被正確判斷的困難樣本,比如尺寸過小的目標(biāo)、與背景相似的復(fù)雜目標(biāo)。針對(duì)正負(fù)樣本數(shù)量和難易程度分布不均衡的問題,有必要對(duì)置信度函數(shù)Lconf進(jìn)行優(yōu)化,優(yōu)化后的置信度函數(shù)Lconf-c可以通過減少易分類樣本對(duì)總損失的貢獻(xiàn),增加困難樣本的懲罰權(quán)重,使得模型在訓(xùn)練時(shí)更專注于困難樣本的學(xué)習(xí)。優(yōu)化方式如下:
原置信度損失函數(shù)如式(2)所示,其中Lconf為置信度損失函數(shù),pc為樣本的置信度。易樣本在訓(xùn)練的過程中能快速地獲得較高的置信度,但即使已經(jīng)被訓(xùn)練好,它們?nèi)匀粫?huì)在下一次梯度更新中產(chǎn)生較大的影響。本文希望模型在訓(xùn)練好易樣本基礎(chǔ)上能夠?qū)δ切┑梅州^低的難樣本加大力度學(xué)習(xí),能夠重點(diǎn)訓(xùn)練這些模棱兩可的難樣本。優(yōu)化后的置信度損失函數(shù)Lconf-c可以降低得分高的樣本(易樣本)的權(quán)重,增加得分低樣本(難樣本)的權(quán)重。這樣就能把模型的注意力逐漸放在難分類樣本上。
文獻(xiàn)[8]中對(duì)置信度函數(shù)進(jìn)行了改進(jìn),本文采取另一種方式對(duì)其優(yōu)化,優(yōu)化結(jié)果如式(3)所示:
其中:σ是Sigmoid 函數(shù),pc是置信度,ε為極小常數(shù)。對(duì)于正樣本而言,當(dāng)pc接近1 時(shí)接近0,這意味著對(duì)于已經(jīng)訓(xùn)練好的得分高的易樣本它的權(quán)重很小;當(dāng)pc接近0 時(shí)接近1,意味著該樣本分類錯(cuò)誤,那么就應(yīng)該增加其懲罰權(quán)重。這樣就解決了難易樣本不平衡的問題,模型能在訓(xùn)練好容易樣本的前提下更重視難樣本的學(xué)習(xí);另外,它還可以避免模型專門對(duì)容易擬合的樣本“拼命”訓(xùn)練,所以優(yōu)化后的損失函數(shù)還能防止過擬合。修改后的總的Loss如下:
數(shù)據(jù)集中的物體目標(biāo)的面積和寬高比都是不一樣的,所以選擇合適的錨框(Anchor Box,AB)尺度對(duì)于網(wǎng)絡(luò)訓(xùn)練具有很大影響。另外YOLOv3 的預(yù)測(cè)框的大小損失、預(yù)測(cè)框的中心坐標(biāo)損失都與錨框有密切關(guān)系,所以錨框的設(shè)計(jì)是YOLOv3 算法中非常重要的部分,錨框由數(shù)據(jù)集聚類得到,通常選用的聚類算法是K-means 算法。值得注意的是,標(biāo)準(zhǔn)K-means 算法使用的是歐氏距離,而錨框聚類的目的是讓錨框(Anchor Box,AB)和真實(shí)框(GTB)越接近越好,所以改用IOU 作為新的距離公式,如式(5)所示,交并比越大,距離越小,距離越小就越可能屬于同一類。數(shù)據(jù)集中的樣本按照該距離函數(shù)劃分為M個(gè)子集,這M個(gè)子集就是M個(gè)錨框,本文M設(shè)為9。
多尺度訓(xùn)練有助于提升模型對(duì)小目標(biāo)信息的感知能力,能增強(qiáng)模型的魯棒性和泛化能力,所以在訓(xùn)練的過程中錨框和目標(biāo)的匹配尤為重要。為提高匹配程度,文獻(xiàn)[12]中提出了線性拉伸算法對(duì)預(yù)設(shè)的錨框進(jìn)行優(yōu)化,雖然對(duì)小目標(biāo)的檢測(cè)能力有一定提升,但對(duì)于目標(biāo)尺寸分布不均衡的復(fù)雜數(shù)據(jù)集的檢測(cè)性能的提升并不高。
為了使模型在多尺度訓(xùn)練過程中有更好的表現(xiàn),本文結(jié)合數(shù)據(jù)集自身的目標(biāo)尺寸分布特征提出了一種基于K均值聚類變換(K-means-T)算法,該算法是根據(jù)數(shù)據(jù)集的目標(biāo)大小分布特征將K-means聚類生成的錨框進(jìn)行縮放。w1~w9為放縮前從小到大排列的錨框的寬,h1~h9為放縮前從小到大排列的錨框的高;wi表示第i個(gè)錨框的寬,wc表示中心框的寬,wc的選取是由數(shù)據(jù)集中目標(biāo)尺寸分布特征決定~為縮放后從小到大排列的錨框的寬,~為縮放后從小到大排列的錨框的高。當(dāng)i<c時(shí),按式(6)進(jìn)行放縮;當(dāng)i>c時(shí),按式(7)進(jìn)行放縮。β、α是縮放比例,這里設(shè)α=0.5,β=2。在多尺度訓(xùn)練過程中,縮放后的Anchor 與目標(biāo)更加貼合從而能減小多尺度訓(xùn)練帶來的誤差,提升整個(gè)網(wǎng)絡(luò)選框的精確性。
經(jīng)過上述方式縮放后,這9 種Anchor 就能覆蓋多尺度訓(xùn)練過程中被縮放的物體目標(biāo)。該縮放并不會(huì)改變真實(shí)框的中心位置,且為等比例縮放(寬高比例并未發(fā)生改變)。該縮放方式會(huì)使得在多尺度訓(xùn)練過程中Anchor 和目標(biāo)更加貼合,從而增強(qiáng)網(wǎng)絡(luò)模型的魯棒性和泛化能力。中心框c的選取由數(shù)據(jù)集本身的特點(diǎn)決定,本文數(shù)據(jù)集決定了c為7。但是該放縮方式又具有一定的局限性,該錨框縮放算法是配合多尺度訓(xùn)練而設(shè)計(jì)的,能使真實(shí)框更貼合訓(xùn)練過程中不斷變化的目標(biāo)物體;反之,如果訓(xùn)練過程中本身沒有采用多尺度訓(xùn)練那么就沒有必要使用該K-means-T 算法。
錨框優(yōu)化效果如圖2 所示,深色框是真實(shí)框,淺色框是錨框,圖像縮小后空白部分由灰色補(bǔ)齊,使縮小后的圖片仍然保持原輸入大小。圖2(a)未采用多尺度訓(xùn)練,圖2(b)(c)采用了多尺度訓(xùn)練,其中:圖2(b)沒有采用本文提出的K-means-T 算法,此時(shí)3 個(gè)錨框與真實(shí)框的IOU 與圖2(a)中的IOU 產(chǎn)生了較大的差別,這樣就在訓(xùn)練的過程中增加了預(yù)測(cè)框的損失,導(dǎo)致預(yù)測(cè)結(jié)果不精確;而圖2(c)采用了K-means-T 算法,錨框與真實(shí)框的IOU 與圖2(a)中的IOU 幾乎一樣,這樣在多尺度訓(xùn)練的過程中并不會(huì)引入額外的預(yù)測(cè)框?qū)捀邠p失,最終預(yù)測(cè)結(jié)果也會(huì)更加準(zhǔn)確。
圖2 多尺度訓(xùn)練中的AnchorFig.2 Anchor in multi-scale training
遙感圖像通常是由航天平臺(tái)獲取,其中的目標(biāo)大多是小目標(biāo),為了提升小目標(biāo)檢測(cè)的精度和泛化性能,除了加深網(wǎng)絡(luò)深度還需要引入合適的注意力機(jī)制。如圖3 所示,CA 機(jī)制同時(shí)考慮了通道間關(guān)系和空間位置關(guān)系,不僅捕獲了跨通道的信息,還感知了方向和位置敏感的信息,這使得模型能夠更準(zhǔn)確地識(shí)別目標(biāo)和鎖定目標(biāo)位置。
圖3 CA模塊Fig.3 CA module
通常注意力機(jī)制會(huì)按式(8)進(jìn)行全局池化,由于它將全局空間信息壓縮到通道中,導(dǎo)致難以保存位置信息。為了使注意力模塊能夠捕獲精確的空間位置信息,CA 模塊按照式(9)(10)分解了全局池化,轉(zhuǎn)為正交方向的一維特征編碼操作。具體地,給定輸入張量x,首先使用尺寸為(H,1)和(1,W)的卷積核分別沿著水平(X)和垂直(Y)方向?qū)γ總€(gè)通道進(jìn)行編碼。因此,高度為h的第c通道的輸出如式(9)所示,寬度為w的第c通道的輸出如式(10)所示:
上述變換分別沿兩個(gè)空間方向聚合特征,得到一組包含方向信息的特征圖。這種轉(zhuǎn)換方式使得注意力模塊捕捉到空間方向的長期依賴關(guān)系,并保存另一個(gè)空間方向的精確位置信息,有助于網(wǎng)絡(luò)更準(zhǔn)確地定位感興趣的目標(biāo)。得到兩組一維特征信息后,對(duì)這兩組信息和按式(11)處理,其中[·,·]為沿空間維數(shù)的concatenate 操作,σ為非線性激活函數(shù),F(xiàn)1為1×1 卷積操作。接著沿著空間維數(shù)將f分解為兩個(gè)單獨(dú)的垂直張量,其中r為縮減率。得到兩個(gè)垂直張量后,用卷積變換將兩者的通道數(shù)調(diào)整一致。
式(12)(13)中:gh和gw分別是經(jīng)通道調(diào)整后得到的兩組正交的表征,F(xiàn)h和Fw是1×1 的卷積操作,σ是sigmoid 激活函數(shù)。最后CA 模塊的輸出可以寫成:
本文實(shí)驗(yàn)在光學(xué)遙感圖RSOD 數(shù)據(jù)集上進(jìn)行測(cè)試。RSOD 數(shù)據(jù)集以PASCAL VOC 數(shù)據(jù)集的格式進(jìn)行標(biāo)注。它包含從Google Earth 和Tianditu 下載的976 張光學(xué)遙感圖像,這些圖像的空間分辨率0.3~3.0 m 不等。如圖4 所示,它由7 400 個(gè)對(duì)象實(shí)例組成,包含了4 個(gè)對(duì)象類,分別為5 374 架飛機(jī)(aircraft),1 698 個(gè)油箱(oiltank),178 座立交橋(overpass)和150 個(gè)操場(chǎng)(playground)。
圖4 RSOD數(shù)據(jù)集樣例Fig.4 Samples of RSOD dataset
圖5 是數(shù)據(jù)集中目標(biāo)物體尺寸大小的分布情況。aircraft類的比例幾乎在0.01 以下,所以基本上是小目標(biāo);oiltank 幾乎在0.02 左右,所以部分是小目標(biāo),overpass 和playground 面積比例均在0.01 以上且分布松散,所以這兩類不是小目標(biāo)。由此可看出,RSOD 數(shù)據(jù)集絕大多數(shù)目標(biāo)是小目標(biāo)。
圖5 RSOD數(shù)據(jù)集上不同類的目標(biāo)標(biāo)注框占原圖面積的比例分布Fig.5 Proportion distribution of area of labeled box to the original image for different classes on RSOD dataset
如圖6 所示,RSOD 數(shù)據(jù)集一共7 400 個(gè)目標(biāo)(包括aircraft 類、oiltank 類、overpass 類、playground 類,圖例如圖4 所示)??v坐標(biāo)表示目標(biāo)尺寸占圖片的比例;“·”點(diǎn)代表比例大于0.01 的目標(biāo)(1 657 個(gè));“+”點(diǎn)代表占比小于0.01 的小目標(biāo)(5 584 個(gè)),數(shù)量大約占總目標(biāo)數(shù)量的7/9。根據(jù)這一比例,設(shè)定錨框優(yōu)化算法中的參數(shù)c=7,所以第7 個(gè)錨框選為中心框,該框不進(jìn)行放縮。
圖6 RSOD數(shù)據(jù)集中目標(biāo)占原圖大小的比例分布Fig.6 Distribution of proportion of target size to original image in RSOD dataset
目標(biāo)檢測(cè)的效果由預(yù)測(cè)框的分類精度和定位精度共同決定,因此目標(biāo)檢測(cè)問題既是分類問題又是回歸問題。目標(biāo)檢測(cè)算法的性能度量通常是平均精確率均值(mean Average Precision,mAP)和F1 分?jǐn)?shù)(F1 score,F(xiàn)1)。
精度(Precision,P)為分類器認(rèn)為是正類的樣本中實(shí)際是正類的比例:
召回率(Recall,R)的具體含義是:分類器認(rèn)為是正類的樣本數(shù)量占所有正樣本的比例:
精度和召回率是一對(duì)矛盾的度量。一般來說,精度高,召回率往往偏低;而召回率高時(shí),精度往往偏低。因此引入平均精確率(Average Precision,AP)作為性能度量,如式(17)所示:
但是對(duì)于多分類問題,通常引入平均精確率均值(mAP),如式(18):
F1 分?jǐn)?shù)(F1)往往作為模型泛化能力的性能度量,F(xiàn)1 為0~1 的小數(shù),F(xiàn)1 越大表明模型泛化能力越強(qiáng),表達(dá)式如下:
本文實(shí)驗(yàn)在Windows 操作系統(tǒng)下進(jìn)行,模型搭建采用PyTorch 深度學(xué)習(xí)框架,CPU 為i5-9400F,內(nèi)存為16 GB,GPU為NVIDIA GTX1660Ti。在模型的訓(xùn)練過程中Epochs(訓(xùn)練輪次)設(shè)置為70,優(yōu)化器Adam 采用默認(rèn)參數(shù)。前30 個(gè)Epochs 中Batch Size 設(shè)置為6,學(xué)習(xí)率 為0.001;后40 個(gè)Epochs 中Batch Size 設(shè)置為4,學(xué)習(xí)率為0.000 1。
本文所提YOLOV3-AKT 算法的結(jié)構(gòu)如圖7 所示。
圖7 YOLOv3-AKT的模型結(jié)構(gòu)Fig.7 Model structure of YOLOv3-AKT
圖8 反映了原始YOLOv3、YOLOv4[7]、YOLOv3[15]、本文所提的YOLOv3-AKT 和EfficientDet[18]模型在 訓(xùn)練過程中aircraft 類的AP變化情況。從圖8 中可以看出,以上算法均能夠在70 個(gè)Epoch(訓(xùn)練輪次)以內(nèi)訓(xùn)練至穩(wěn)定,穩(wěn)定后YOLOv3-AKT 表現(xiàn)效果最好,AP能夠穩(wěn)定到0.92 左右,YOLOv4 效果次之,EfficientDet 網(wǎng)絡(luò)效果最差。這是因?yàn)閅OLOv3-AKT 對(duì)細(xì)節(jié)信息的表征能力要好于其他網(wǎng)絡(luò);而EfficientDet 中的雙向特征金字塔網(wǎng)絡(luò)(Bidirectional FPN,BiFPN)雖然能夠加強(qiáng)特征提取網(wǎng)絡(luò)從而獲得更高的語義信息,但這對(duì)于檢測(cè)任務(wù)中的小目標(biāo)定位卻幫助不大。另外,YOLOv3-AKT 優(yōu)化了置信度損失函數(shù),該網(wǎng)絡(luò)在訓(xùn)練之初就重視困難樣本的學(xué)習(xí),所以在10 個(gè)Epoch 之前AP的提升效果最為明顯,并且YOLOv3-AKT 也在以上網(wǎng)絡(luò)中最先收斂。
圖8 不同算法的檢測(cè)精度比較Fig.8 Detection accuracy comparison of different algorithms
表1比較了YOLOv3、YOLOv3[15]、YOLOv3-AKT、文獻(xiàn)[19]算 法、YOLOv4[7]和EfficientDet[18]的檢測(cè)精度??梢钥?出,YOLOv3-AKT 的mAP比YOLOv3 提高約7 個(gè)百分點(diǎn),F(xiàn)1 提高4.5個(gè)百分點(diǎn),AP(aircraft)提升7.3個(gè)百分點(diǎn),F(xiàn)1(aircraft)提升5個(gè)百分點(diǎn)。EfficientDet模型的mAP較高,但是小目標(biāo)aircraft類的AP較低,所以EfficientDet算法對(duì)中、大型目標(biāo)有很好的檢測(cè)效果,但對(duì)小目標(biāo)檢測(cè)能力不強(qiáng)。YOLOv3-AKT 的mAP比YOLOv4高4.1個(gè)百分點(diǎn),F(xiàn)1高3.5個(gè)百分點(diǎn),AP(aircraft)提升5.9 個(gè)百分點(diǎn),F(xiàn)1(aircraft)提升6 個(gè)百分點(diǎn)。YOLOv3-AKT 的mAP與文獻(xiàn)[19]算法一樣,F(xiàn)1 分?jǐn)?shù)高0.5 個(gè)百分點(diǎn),但文獻(xiàn)[19]中并沒有給出aircraft類的AP和F1,所以無法比較兩者對(duì)小目標(biāo)aircraft 類的檢測(cè)能力。綜上,相較于其他對(duì)比算法,YOLOv3-AKT對(duì)小目標(biāo)檢測(cè)具有較大優(yōu)勢(shì)。
表1 不同算法的檢測(cè)精度比較Tab.1 Comparison of detection accuracy among different algorithms
圖9 給出了原始YOLOv3、YOLOv4[7]、EfficientDet[18]、YOLOv3[15]和YOLOv3-AKT 的預(yù)測(cè)結(jié)果對(duì)比。觀察可知,原始YOLOv3 對(duì)小型飛機(jī)目標(biāo)的檢測(cè)能力不足,出現(xiàn)了漏檢、錯(cuò)檢的情況。YOLOv4、YOLOv3[15]、YOLOv3-AKT 的檢測(cè)效果均比原始YOLOv3 好,其中YOLOv3-AKT 提升效果最為明顯;而EfficientDet 對(duì)小目標(biāo)的檢測(cè)能力不升反降。相較于其他對(duì)比算法,YOLOv3-AKT 能夠挖掘更多的困難樣本,有效提升對(duì)小目標(biāo)位置的感知能力。對(duì)于同一目標(biāo),YOLOv3-AKT 給出的預(yù)測(cè)分?jǐn)?shù)明顯高于其他算法的預(yù)測(cè)分?jǐn)?shù),這是因?yàn)樵撍惴▋?yōu)化了置信度函數(shù)后,模型偏向于學(xué)習(xí)困難樣本,所以減少了“模棱兩可”的預(yù)測(cè)。另外,YOLOv3-AKT 給出的預(yù)測(cè)框相較于其他對(duì)比算法更加貼合目標(biāo)尺寸,這是因?yàn)閅OLOv3-AKT 對(duì)錨框進(jìn)行了優(yōu)化,使得錨框在多尺度訓(xùn)練過程緊貼真實(shí)目標(biāo),所以在預(yù)測(cè)結(jié)果中錨框也能緊貼真實(shí)目標(biāo)。該綜合實(shí)驗(yàn)結(jié)果表明,YOLOv3-AKT 算法能夠提高目標(biāo)的檢測(cè)精度,尤其對(duì)小目標(biāo)的效果更好。
圖9 不同算法的預(yù)測(cè)結(jié)果對(duì)比Fig.9 Comparison of prediction results of different algorithms
為更好地驗(yàn)證本文提出置信度損失函數(shù)優(yōu)化算法、K-means-T 算法和注意力機(jī)制的有效性,本文在RSOD 數(shù)據(jù)集上分別單獨(dú)加入以上改進(jìn)點(diǎn)進(jìn)行消融實(shí)驗(yàn)。
實(shí)驗(yàn)1 修正的置信度損失函數(shù)。
本次實(shí)驗(yàn)設(shè)定難易樣本閾值為0.5,置信度大于閾值的正樣本和置信度小于閾值的負(fù)樣本視為容易樣本(easy positive);反之,置信度小于閾值的正樣本和置信度大于閾值的負(fù)樣本稱為困難樣本(hard positive)。圖10 記錄了原始YOLOv3 和優(yōu)化置信度損失函數(shù)的YOLOv3 算法(YOLOv3 optimized by Confidence loss function,YOLOv3-C)的困難樣本在訓(xùn)練過程中的損失占總置信度損失的比例。前10 個(gè)Epoch 內(nèi)YOLOv3-C 困難樣本損失占總置信度損失的0.1 左右,而YOLOv3 幾乎為0。這說明訓(xùn)練開始YOLOv3-C 就有意識(shí)地整合難易樣本開始訓(xùn)練,而YOLOv3 此時(shí)并沒有考慮難樣本的訓(xùn)練。在訓(xùn)練的過程中,YOLOv3-C 曲線始終在YOLOv3 之上,說明YOLOv3-C 對(duì)分類錯(cuò)誤的樣本(困難樣本)的懲罰力度比YOLOv3 大。另外,YOLOv3-C 曲線波動(dòng)較為明顯,這是因?yàn)樵摼W(wǎng)絡(luò)不斷地嘗試學(xué)習(xí)困難樣本,而YOLOv3 曲線較為平緩,說明該網(wǎng)絡(luò)并沒有刻意嘗試去學(xué)習(xí)困難樣本,始終停留在訓(xùn)練的“舒適區(qū)”。
圖10 困難樣本損失占總置信度損失的比例Fig.10 Proportion of loss of hard samples to total confidence loss
圖11 為原始YOLOv3 和YOLOv3-C 的平均精確率對(duì)比。在模型訓(xùn)練之初和模型穩(wěn)定后YOLOv3-C 的平均精確率要明顯高于YOLOv3,這是因?yàn)榍罢卟粌H完成了易樣本的學(xué)習(xí),而且還對(duì)難樣本有了很好的學(xué)習(xí)。整個(gè)訓(xùn)練過程中YOLOv3-C 的AP 曲線波動(dòng)更大,這是因?yàn)閅OLOv3-C 對(duì)難樣本更為敏感,不斷嘗試挖掘難樣本的信息。
圖11 原始YOLOv3和 YOLOv3-C的AP對(duì)比Fig.11 AP comparison of original YOLOv3 and YOLOv3-C
所以,本文提出的損失函數(shù)優(yōu)化方法能夠解決樣本難易程度分配不均的問題,使得模型訓(xùn)練更加高效,并可以收斂到更好的效果。
實(shí)驗(yàn)2 對(duì)優(yōu)化Anchor Box 的YOLOv3 訓(xùn)練和測(cè)試。
RSOD 數(shù)據(jù)集中目標(biāo)尺寸大小分布不均衡,絕大多數(shù)目標(biāo)是小目標(biāo),先對(duì)RSOD 數(shù)據(jù)集使用K-means 聚類算法進(jìn)行聚類,得到9 個(gè)不同大小的Anchor,然后對(duì)這些Anchor 進(jìn)行K-means-T 放縮,得到最終的Anchor-T。因?yàn)閿?shù)據(jù)集中小目標(biāo)數(shù)目約占全部目標(biāo)數(shù)目的7/9,所以設(shè)定第7 個(gè)錨框?yàn)橹行腻^框,此時(shí)中心錨框的寬高為(40,44)。比中心框小的錨框會(huì)被線性縮小,最多縮小至原來的1/2;比中心框大的錨框會(huì)被放大,最高放大2 倍。選定c=1,3,5,7,9 以作對(duì)比實(shí)驗(yàn)。
然后分別使用放縮前的Anchor 和放縮后的Anchor-T 與原始YOLOv3、文獻(xiàn)[13]、文獻(xiàn)[15]模型上的Anchor 進(jìn)行測(cè)試并對(duì)比,結(jié)果如表2 所示。
表2 不同中心框下的錨框Tab.2 Anchor boxes under different center anchor boxes
分別選取5 個(gè)不同錨框作為中心框,生成了5 組不同的新錨框Anchor-T(c=1,3,5,7,9),實(shí)驗(yàn)得到5 個(gè)不同的AP(aircraft),如圖12 所示。
圖12 中橫坐標(biāo)c代表了中心框,c=i表示選取第i個(gè)框?yàn)橹行目???梢园l(fā)現(xiàn)c=1,模型對(duì)小目標(biāo)aircraft 類的檢測(cè)效果最差,這是因?yàn)閹缀跛绣^框都被放大了,這導(dǎo)致了模型對(duì)小目標(biāo)的捕捉能力下降。當(dāng)c=9,幾乎所有的原錨框被縮小,這對(duì)于aircraft 類的檢測(cè)是有積極作用的,但此時(shí)的檢測(cè)效果仍不是最佳狀態(tài)。由于本文數(shù)據(jù)集中小目標(biāo)數(shù)量約占總數(shù)量的7/9,所以取第7 個(gè)框?yàn)橹行目驎r(shí)剛好滿足數(shù)據(jù)集自身的分布特征,故此時(shí)檢測(cè)效果最好。另外本文所有實(shí)驗(yàn)都默認(rèn)第7 個(gè)框?yàn)橹行目颉?/p>
圖13 中,YOLOv3-T 為采用K-means-T 錨框優(yōu)化算法后的改進(jìn)算法,其平均損失曲線由虛線表示;原始YOLOv3 的損失曲線由實(shí)線表示。從圖13 可見,兩者總體呈現(xiàn)逐漸變小的趨勢(shì),但是在第7 個(gè)訓(xùn)練輪次后,YOLOv3-T 損失函數(shù)比原始YOLOv3-T 損失函數(shù)小且下降得更快,這是因?yàn)镵-means-T 聚合的錨框在多尺度訓(xùn)練中更加貼合訓(xùn)練目標(biāo),產(chǎn)生的損失更小。
圖13 不同算法下YOLOv3的平均損失Fig.13 Average losses of YOLOv3 using different algorithms
表3 為YOLOv3-T 與文獻(xiàn)[15]、文獻(xiàn)[13]算法的檢測(cè)結(jié)果對(duì)比。YOLOv3-T 所用的錨框是經(jīng)K-means-T 算法優(yōu)化的錨框。可以看出,相較于原始YOLOv3 算法,文獻(xiàn)[15]算法在配合多尺度訓(xùn)練的檢測(cè)能力不升反降。說明了該算法不適合在多尺度訓(xùn)練中使用。文獻(xiàn)[13]算法解決了文獻(xiàn)[15]中存在的多尺度訓(xùn)練效果不佳的問題。相較于原始YOLOV3,文獻(xiàn)[13]算法在aircraft 類上的AP提升并不顯著,只有1.8 個(gè)百分點(diǎn),這是因?yàn)槲墨I(xiàn)[13]沒有把數(shù)據(jù)集分布特征考慮進(jìn)去。本文提出的YOLOv3-T 不僅解決了難以搭載多尺度訓(xùn)練的問題而且還結(jié)合了數(shù)據(jù)集目標(biāo)尺寸的分布特征,所以在幾組實(shí)驗(yàn)中aircraft 類的AP提升效果最為明顯約為3.2 個(gè)百分點(diǎn)。所以,本文所提的 K-means-T 算法更有利于提升小目標(biāo)的檢測(cè)精度。
表3 不同錨框優(yōu)化算法的精度比較Tab.3 Accuracy comparison of different anchor box optimization algorithms
圖14 比較了經(jīng)過K-means-T 錨框優(yōu)化算法后的YOLOv3和原始YOLOv3 的各類AP,可以看出,使用K-means-T 錨框優(yōu)化算法后的YOLOv3 在飛機(jī)類AP提升約3.2 個(gè)百分點(diǎn),對(duì)于油桶類的AP提升不明顯;對(duì)操場(chǎng)類的AP幾乎沒有提升。另外,立交橋類由于訓(xùn)練樣本少且特征不明顯,在優(yōu)化前后該類的AP很低,故不考慮該類的精確率。圖14 說明了K-means-T 算法更有利于提升小目標(biāo)的檢測(cè)精度。
圖14 優(yōu)化Anchor前后的YOLOv3 在數(shù)據(jù)集各類目標(biāo)上的精度Fig.14 Accuracy of YOLOv3 before and after optimizing Anchor on different classes of targets in dataset
實(shí)驗(yàn)3 對(duì)引入注意力機(jī)制的YOLOv3 進(jìn)行訓(xùn)練和測(cè)試。
注意力機(jī)制能自適應(yīng)提取顯著對(duì)象周圍的有用信息,能自動(dòng)捕獲區(qū)分性語義信息和定位精確位置信息,從而得到更好的小目標(biāo)檢測(cè)效果。如圖1 所以,本文將CA(Coordinate Attention)注意力模塊分別嵌在探測(cè)頭1,探測(cè)頭2,探測(cè)頭3上進(jìn)行測(cè)試。表4 分析了不同位置安放CA 注意力機(jī)制對(duì)精確率的提升作用,其中mAP是平均精確率,AP和F1 是小目標(biāo)飛機(jī)類的精確率和F1 分?jǐn)?shù)??梢园l(fā)現(xiàn),當(dāng)CA 模塊插入在檢測(cè)頭1 時(shí),mAP提高0.9 個(gè)百分點(diǎn),AP提升3.2 個(gè)百分點(diǎn),F(xiàn)1 提升1 個(gè)百分點(diǎn);當(dāng)CA 模塊插入在檢測(cè)頭2 時(shí),mAP提高0.6 個(gè)百分點(diǎn),AP提升3.4 個(gè)百分點(diǎn),F(xiàn)1 提升1 個(gè)百分點(diǎn);當(dāng)CA 模塊插入在檢測(cè)頭3 時(shí),mAP提高2.9 個(gè)百分點(diǎn),AP提升5.1 個(gè)百分點(diǎn),F(xiàn)1 提升3 個(gè)百分點(diǎn)。當(dāng)CA 注意力模塊加在探測(cè)頭3 位置時(shí),效果最佳。因此CA 可以提高模型對(duì)細(xì)節(jié)信息的捕獲能力,能提升模型對(duì)淺層位置信息的感知能力,從而提高對(duì)小目標(biāo)的檢測(cè)精確率。
表4 不同位置插入CA的精度比較Tab.4 Accuracy comparison of CA inserting in different positions
圖15 為檢測(cè)頭3 引入CA 模塊時(shí)各類目標(biāo)的AP比較,可以發(fā)現(xiàn),小目標(biāo)居多的飛機(jī)類的AP提高約為5.1 個(gè)百分點(diǎn),目標(biāo)相對(duì)較大的油桶類的AP提升不明顯,操場(chǎng)類下降0.51個(gè)百分點(diǎn)。說明YOLOv3 中,引入CA 注意力模塊使得網(wǎng)絡(luò)對(duì)小目標(biāo)信息感知更為敏感,提高了對(duì)小目標(biāo)檢測(cè)的能力。
圖15 引入CA前后的YOLOv3在數(shù)據(jù)集各類目標(biāo)上的APFig.15 AP of YOLOv3 before and after introducing CA on different classes of targets in dataset
本文對(duì)YOLOv3 的錨框進(jìn)行了改進(jìn),使得預(yù)測(cè)框與真實(shí)框更加貼合;又對(duì)置信度函數(shù)進(jìn)行了優(yōu)化,一定程度上改善了難易樣本分配不均衡問題;最后引入CA 機(jī)制增強(qiáng)模型對(duì)細(xì)節(jié)的感知能力。在RSOD 數(shù)據(jù)集上做了訓(xùn)練和測(cè)試,結(jié)果表明本文提出的YOLOv3-AKT 在小目標(biāo)類(aircraft)的AP和F1 兩種指標(biāo)上都優(yōu)于YOLOv3、YOLOv4、EfficientDet 和其他對(duì)比的改進(jìn)YOLOv3 算法。本文K-means-T 主要采取了縮放變換的思想對(duì)Anchor 進(jìn)行優(yōu)化,這有助于增加錨框和目標(biāo)的貼合程度,從而提升精度。但是,該優(yōu)化算法的思想是在訓(xùn)練之前對(duì)錨框進(jìn)行縮放,無法在訓(xùn)練過程中實(shí)時(shí)地縮放錨框。所以如何在多尺度訓(xùn)練過程中動(dòng)態(tài)地同比例縮放錨框以精準(zhǔn)匹配目標(biāo)物體,是進(jìn)一步需研究的問題。另外,本文實(shí)驗(yàn)中可以看出置信度損失優(yōu)化算法的訓(xùn)練過程有一定的波動(dòng)性,未來可以從置信度損失優(yōu)化算法和學(xué)習(xí)率的角度出發(fā)進(jìn)行研究。