陳禹蒲 馬曉川 李 璇
(1.中國科學(xué)院聲學(xué)研究所中科院水下航行器信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100190;2.中國科學(xué)院大學(xué),北京 100049)
側(cè)掃聲吶技術(shù)通過對海底散射物的散射回波進(jìn)行處理獲取海底地形地貌特征[1-2]。由于側(cè)掃聲吶能夠直觀地提供海底形態(tài)的聲成像,且具有價(jià)格低廉、分辨率高等優(yōu)點(diǎn),其在水下目標(biāo)探測和識別領(lǐng)域有廣闊的應(yīng)用前景[3-4]。然而,諸如聲吶盲區(qū)、混響和多徑等復(fù)雜的水下聲傳播特點(diǎn)導(dǎo)致了聲吶圖像中目標(biāo)位置和類別的辨認(rèn)往往需要專業(yè)人士進(jìn)行解讀,這就不可避免地會耗費(fèi)大量的人力。因此,研究自主的聲圖像目標(biāo)檢測方法是十分重要的。
傳統(tǒng)的聲吶圖像目標(biāo)檢測算法主要包括基于像素的檢測,基于特征的檢測和基于回波的檢測三種[5],其基本思路為根據(jù)聲吶圖像中的高亮和陰影特性來對目標(biāo)是否存在進(jìn)行判決。當(dāng)高亮與陰影同時(shí)出現(xiàn)在某一區(qū)域時(shí),說明該區(qū)域可能存在目標(biāo)。若高亮與陰影相連,則目標(biāo)為沉底目標(biāo),若高亮與陰影分開,則目標(biāo)為懸浮目標(biāo)。然而,傳統(tǒng)的目標(biāo)檢測方法依賴于準(zhǔn)確的數(shù)學(xué)模型的建立,當(dāng)數(shù)學(xué)模型和真實(shí)的水聲環(huán)境存在差異時(shí),算法的目標(biāo)檢測性能也會隨之下降。
隨著深度學(xué)習(xí)目標(biāo)檢測技術(shù)的發(fā)展,基于深度學(xué)習(xí)的聲吶圖像目標(biāo)檢測問題獲得了諸多學(xué)者的關(guān)注。Faster R-CNN[6]作為一種兩階段的目標(biāo)檢測網(wǎng)絡(luò)于2015 年被提出。它使用RPN(Region Proposal Network)網(wǎng)絡(luò)生成候選區(qū)域,提升了RCNN系列網(wǎng)絡(luò)[7-8]的檢測速度,并利用錨框回歸預(yù)測框的位置,提升了網(wǎng)絡(luò)的目標(biāo)檢測性能。因此該網(wǎng)絡(luò)作為R-CNN 系列中性能最好的網(wǎng)絡(luò),一經(jīng)提出就受到聲吶圖像目標(biāo)檢測領(lǐng)域相關(guān)學(xué)者的關(guān)注。文獻(xiàn)[9]較早地將Faster R-CNN 應(yīng)用到聲吶圖像目標(biāo)檢測領(lǐng)域,通過對NSWC(Naval Surface Warfare Center)機(jī)構(gòu)的公開聲吶數(shù)據(jù)集進(jìn)行處理,研究了Faster R-CNN 對水下物體檢測的適用性。文獻(xiàn)[10]在Faster R-CNN 的基礎(chǔ)上設(shè)計(jì)了一個(gè)噪聲生成網(wǎng)絡(luò)和一個(gè)單獨(dú)的噪聲塊來引入特定的噪聲擾動(dòng),繼而通過對抗訓(xùn)練提高了算法對噪聲的魯棒性。之后,為解決兩階段目標(biāo)檢測網(wǎng)絡(luò)實(shí)時(shí)性和檢測精度不佳的問題,科研人員相繼提出了如SSD[11]目標(biāo)檢測網(wǎng)絡(luò)和YOLO 系列網(wǎng)絡(luò)[12-14]等單階段目標(biāo)檢測網(wǎng)絡(luò)。近年來,隨著圖像目標(biāo)檢測網(wǎng)絡(luò)的發(fā)展日趨成熟,單階段目標(biāo)檢測網(wǎng)絡(luò)引起了聲吶圖像處理領(lǐng)域相關(guān)學(xué)者的關(guān)注。YOLOv3 是一種兼具實(shí)時(shí)性和檢測精度的圖像目標(biāo)檢測網(wǎng)絡(luò)[15],具有很強(qiáng)的泛化能力[16-18]。因此,YOLOv3 作為單階段目標(biāo)檢測網(wǎng)絡(luò)的代表在聲吶圖像目標(biāo)檢測領(lǐng)域有著廣泛應(yīng)用。文獻(xiàn)[16]針對有效樣本小、信噪比低的聲吶數(shù)據(jù)集,在YOLOv3 的基礎(chǔ)上提出了YOLOv3-dpfin 網(wǎng)絡(luò)架構(gòu),該網(wǎng)絡(luò)通過雙路徑網(wǎng)絡(luò)模塊和融合過渡模塊提取到了聲吶圖像的有效特征。文獻(xiàn)[19]將YOLOv3 應(yīng)用到聲吶圖像沉船目標(biāo)的檢測問題中,在原有的YOLOv3網(wǎng)絡(luò)基礎(chǔ)上額外添加了兩個(gè)下采樣特征層,并將采到的特征與原有的三尺度特征合并,提高了檢測精度。文獻(xiàn)[20]基于YOLOv3 提出一種障礙物區(qū)域檢測算法,通過對聲吶圖像中的障礙物進(jìn)行檢測為AUV避障提供可靠信息。
為進(jìn)一步提升YOLOv3 網(wǎng)絡(luò)的目標(biāo)檢測性能,相關(guān)學(xué)者將目光轉(zhuǎn)向了錨框優(yōu)化的研究。錨框作為YOLOv3 網(wǎng)絡(luò)的一個(gè)重要先驗(yàn)信息,其設(shè)計(jì)的合理性會影響到網(wǎng)絡(luò)的檢測性能。文獻(xiàn)[21]論證了通過合理的方法對YOLOv3網(wǎng)絡(luò)錨框進(jìn)行優(yōu)化可以提升網(wǎng)絡(luò)的目標(biāo)檢測性能,進(jìn)而提出了一種基于貝葉斯的錨框優(yōu)化方法,獲得了比原YOLOv3 網(wǎng)絡(luò)更好的檢測性能。文獻(xiàn)[22]在單階段目標(biāo)檢測器的基礎(chǔ)上對錨框進(jìn)行修剪,在提高檢測效率的同時(shí)也提高了檢測精度。文獻(xiàn)[23]將錨框形狀作為網(wǎng)絡(luò)訓(xùn)練參數(shù)的一部分,能夠提高檢測器的檢測精度,但也增加了計(jì)算負(fù)擔(dān)。文獻(xiàn)[24]針對RetinaNet網(wǎng)絡(luò)無法檢測寬高比較大的小目標(biāo)問題,使用了Crow搜索策略來搜索錨框的最優(yōu)尺寸,獲得了更優(yōu)的檢測效果。文獻(xiàn)[25]在YOLOv3 的基礎(chǔ)上利用K-means++獲得了更優(yōu)的先驗(yàn)錨框尺寸。文獻(xiàn)[26]中作者也指出有更多數(shù)據(jù)集信息的錨框?qū)W(wǎng)絡(luò)檢測性能的提升是有幫助的。
本文使用的側(cè)掃聲吶數(shù)據(jù)集中小目標(biāo)占比較多。為了在該數(shù)據(jù)集上獲得更好的目標(biāo)檢測效果,本文在YOLOv3的基礎(chǔ)上,提出一種錨框優(yōu)化策略。首先使用K-Means算法對聲吶數(shù)據(jù)集的目標(biāo)框進(jìn)行聚類,得到一組包含目標(biāo)尺寸先驗(yàn)信息的錨框。然而對于本文的聲吶數(shù)據(jù)集而言,由于目標(biāo)框的尺寸相對整幅側(cè)掃圖而言偏小,得到的錨框尺寸會集中在較小的參數(shù)范圍內(nèi),這樣會導(dǎo)致YOLOv3 誤將小目標(biāo)映射到本應(yīng)檢測中大目標(biāo)的特征層,從而導(dǎo)致無法提取合理的小目標(biāo)特征。本文針對這個(gè)問題,設(shè)計(jì)了一個(gè)超參數(shù)映射關(guān)系來對聚類后的錨框進(jìn)行拉伸映射,這樣得到的錨框參數(shù)擁有著更好的先驗(yàn)信息,它既涵蓋了側(cè)掃聲吶圖像數(shù)據(jù)集的目標(biāo)信息,也能合理利用到Y(jié)OLOv3 的多尺度特征拼接特性,有效提高了網(wǎng)絡(luò)的檢測性能。
YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)首先利用Darknet-53 提取輸入圖片的特征,然后借助FPN(Feature Pyramid Networks)結(jié)構(gòu)在獲取到的特征圖上進(jìn)行目標(biāo)的分類與位置的回歸。YOLOv3 中沒有池化層,所有的下采樣都是通過卷積層完成的,通過卷積層來替代最大池化下采樣層,帶來了較好的性能提升,其整體結(jié)構(gòu)如圖1所示。
Darknet-53 由一系列卷積核為1*1 和3*3 的卷積塊組成,每個(gè)卷積塊都包含一個(gè)基本的卷積操作和一個(gè)BN(Batch Normalization)層,同時(shí)激活函數(shù)被設(shè)置為LeakyReLU,圖1 中用Conv Block 來表示一個(gè)卷積塊。此外Darknet-53 還借鑒了殘差結(jié)構(gòu),在圖中表示為Residual,它由兩個(gè)卷積塊組合而成。YOLOv3 使用了Darknet-53 的前52 層,并從中取出三個(gè)特征圖用作后續(xù)處理,假定輸入YOLOv3 的圖片大小為416*416,則得到的三個(gè)特征圖分別為52*52*256的特征圖1、26*26*512的特征圖2和13*13*1024 的特征圖3,借助FPN 的結(jié)構(gòu),YOLOv3 對得到的特征圖進(jìn)行上采樣處理,以保證兩個(gè)特征圖之間能夠維度對齊,但不同于FPN 將兩個(gè)特征圖上的對應(yīng)維度數(shù)值進(jìn)行相加的方式,YOLOv3 對得到的特征圖在通道數(shù)上直接進(jìn)行拼接。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 The overview of YOLOv3
YOLOv3 在拼接好的特征圖上又進(jìn)行了一些卷積操作,相應(yīng)得到了三個(gè)預(yù)測結(jié)果,如圖1 所示,分別為13*13*N的預(yù)測結(jié)果1、26*26*N的預(yù)測結(jié)果2和52*52*N的預(yù)測結(jié)果3,其中N=3*(4+1 +C),C代表要預(yù)測的目標(biāo)類別數(shù),這三個(gè)預(yù)測結(jié)果就包含了YOLOv3進(jìn)行分類和回歸任務(wù)的所有參數(shù)。
YOLO[12]網(wǎng)絡(luò)最早直接對預(yù)測框的寬高進(jìn)行預(yù)測,這種檢測方式下得到的定位準(zhǔn)確性是比較差的,直到Faster R-CNN 網(wǎng)絡(luò)提出使用錨框來幫助回歸預(yù)測框位置,這種回歸方式一經(jīng)提出后就被各大主流目標(biāo)檢測網(wǎng)絡(luò)所延用。錨框也是YOLOv3中的一個(gè)重要機(jī)制,它能給檢測網(wǎng)絡(luò)提供一定的先驗(yàn)信息,也有助于利用網(wǎng)絡(luò)多尺度檢測的特點(diǎn),一組好的錨框可以讓網(wǎng)絡(luò)以更快的速度學(xué)習(xí)到更好的結(jié)果[13]。在YOLOv3 中,錨框會影響到預(yù)測框的位置回歸和正負(fù)樣本的選取,進(jìn)而會影響到網(wǎng)絡(luò)訓(xùn)練過程中損失函數(shù)的計(jì)算,在整個(gè)檢測過程中起著至關(guān)重要的作用。
YOLOv3 中由9 個(gè)尺寸不一的初始框共同構(gòu)成了一組錨框,它們按大小被分為3組,每組再分配給對應(yīng)尺寸的預(yù)測特征層,分配過來的錨框?qū)捀叱叽绮蛔?,但其中心坐?biāo)會隨網(wǎng)格點(diǎn)變化,以保證預(yù)測特征層的每個(gè)網(wǎng)格點(diǎn)都匹配到初始錨框。具體的分配原則是將小尺寸的錨框分給大尺寸的特征層,而大尺寸的錨框分給小尺寸的特征層。因?yàn)殡S著網(wǎng)絡(luò)特征提取的深入,層數(shù)越高細(xì)節(jié)信息越容易被忽略,所以大尺寸的特征層更適合檢測小目標(biāo)。有了錨框的先驗(yàn)信息之后,YOLOv3 就可以在錨框的基礎(chǔ)上對預(yù)測框的位置進(jìn)行回歸,具體實(shí)現(xiàn)涉及到訓(xùn)練中的編碼過程和預(yù)測中的解碼過程。在訓(xùn)練過程中首先需要借助錨框?qū)φ鎸?shí)框進(jìn)行編碼,即求出錨框與真實(shí)框間的相對位置,記某錨框的中心坐標(biāo)與寬高分別為ax,ay,aw,ah,某目標(biāo)真實(shí)框的中心坐標(biāo)和寬高分別為gx,gy,gw,gh,則兩者相對位置dx,dy,dw,dh的計(jì)算方式如下
這一組相對位置參數(shù)就是YOLOv3在進(jìn)行回歸時(shí)的標(biāo)簽值,后續(xù)將用于計(jì)算網(wǎng)絡(luò)損失,網(wǎng)絡(luò)在訓(xùn)練的過程中會逐漸學(xué)習(xí)到錨框與真實(shí)框的相對位置關(guān)系。在預(yù)測過程中,需要結(jié)合錨框?qū)W(wǎng)絡(luò)輸出的回歸參數(shù)進(jìn)行解碼才能得到預(yù)測框真正的位置,記網(wǎng)絡(luò)輸出的回歸參數(shù)為tx,ty,tw,th,則真正的預(yù)測框中心與寬高bx,by,bw,bh的值為
其中σ(·)代表對變量做sigmoid變換,目的是將中心點(diǎn)的偏移量限制在0~1 之間,使得預(yù)測框中心只會在一個(gè)網(wǎng)格內(nèi)移動(dòng),而不會移動(dòng)到別的網(wǎng)格去,導(dǎo)致框住其他目標(biāo)。
錨框?qū)τ谀繕?biāo)特征的提取和網(wǎng)絡(luò)正負(fù)樣本的選定也起著重要作用,YOLOv3 會選定與真實(shí)框交并比(Intersection over Union,IoU)最大的錨框尺寸來幫助回歸預(yù)測框位置,同時(shí)也會將目標(biāo)對應(yīng)到該錨框所在的預(yù)測特征層來進(jìn)行預(yù)測,從而影響目標(biāo)特征的提取。YOLOv3 將與真實(shí)框IoU 值最大的錨框當(dāng)作正樣本,忽略掉IoU 值在某閾值之上的錨框,并將其余的當(dāng)作負(fù)樣本。在判定好正負(fù)樣本后,才能對網(wǎng)絡(luò)的損失函數(shù)進(jìn)行計(jì)算,YOLOv3 包含定位損失Lloc、類別損失Lcla和置信度損失Lconf,定位損失Lloc只針對正樣本,它用平方誤差和來表示
類別損失Lcla也只針對正樣本,它采用二值交叉熵來計(jì)算損失值,公式如下
除開忽略樣本外,其余的樣本都需要計(jì)算置信度損失Lconf,它同樣采用二值交叉熵來計(jì)算,公式如下
YOLOv3 為每種損失都設(shè)計(jì)了平衡系數(shù),分別為定位損失系數(shù)λloc,類別損失系數(shù)λcla和置信度損失λconf,則可得到Y(jié)OLOv3的損失函數(shù)為
可以看到在YOLOv3 損失函數(shù)的計(jì)算過程中,錨框尺寸會直接影響定位損失的數(shù)值,而類別損失和置信度損失由于與正負(fù)樣本的數(shù)目有關(guān),也會被錨框間接影響??傊?,錨框作為預(yù)測框的一種先驗(yàn)信息,在整個(gè)網(wǎng)絡(luò)的訓(xùn)練過程中都是十分重要的。
本文考慮到錨框的重要性,給出了一種超參數(shù)錨框優(yōu)化策略,首先使用K-Means 算法對側(cè)掃聲吶數(shù)據(jù)集的目標(biāo)真實(shí)框?qū)捀哌M(jìn)行聚類,隨后設(shè)計(jì)了一種超參數(shù)映射關(guān)系對得到的錨框進(jìn)行拉伸,從而得到一組較優(yōu)的先驗(yàn)錨框。在得到優(yōu)化后的錨框后,將錨框設(shè)置為YOLOv3 的先驗(yàn)參數(shù),再將數(shù)據(jù)集輸入網(wǎng)絡(luò)進(jìn)行預(yù)測,整體的流程如下圖2所示。
圖2 算法流程圖Fig.2 The flowchart of algorithm
YOLOv3 中先驗(yàn)錨框的寬高尺寸是通過KMeans 算法對COCO 數(shù)據(jù)集聚類得到的,考慮到側(cè)掃聲吶圖像數(shù)據(jù)集中的目標(biāo)大小不會和COCO數(shù)據(jù)集目標(biāo)大小相同,所以需要對聲吶數(shù)據(jù)集的目標(biāo)真實(shí)框進(jìn)行聚類,從而獲得與目標(biāo)尺寸更相關(guān)的錨框參數(shù)。K-Means算法的目標(biāo)是針對數(shù)據(jù)集聚類得到k個(gè)簇中心,記有m個(gè)目標(biāo)框的數(shù)據(jù)集為X={x1,x2,…,xm},其中分別為第i個(gè)目標(biāo)框的寬和高,聚類得到的k個(gè)簇為C={C1,C2,…,CK},則K-Means 算法的目標(biāo)是最小化誤差函數(shù)E
其中μj是簇Cj的均值點(diǎn),最小化誤差函數(shù)E即意味讓簇內(nèi)的數(shù)據(jù)點(diǎn)與簇中心的距離最近,此時(shí)聚類的效果最好。對于真實(shí)框?qū)捀叩木垲悊栴},YOLOv3沒有使用式(7)中的歐式距離,而是改用IoU 距離來衡量簇中心與簇內(nèi)數(shù)據(jù)的距離,IoU 距離DIoU的定義為
求IoU 值時(shí),默認(rèn)目標(biāo)真實(shí)框xi與類中心框μj的左上角是重合的。此時(shí)誤差函數(shù)可改寫為
在確定了K-Means 算法中誤差函數(shù)的定義后,需要最小化式(9),而該問題本質(zhì)上是一個(gè)NP 難問題,所以K-Means 算法使用了迭代優(yōu)化的方法,其優(yōu)化步驟如下:
(1)隨機(jī)選定k個(gè)點(diǎn)作為簇中心
(2)對于數(shù)據(jù)集中的每個(gè)目標(biāo)真實(shí)框xi,都計(jì)算它到各簇中心μ0的IoU距離DIoU,并將框xi歸類到距離最小的簇中心所在的簇中;
(3)對于第j個(gè)簇,將該簇的中位數(shù)當(dāng)作簇中心μj;
(4)重復(fù)步驟(2)~(3),直到按式(9)計(jì)算的誤差函數(shù)變化小于某閾值。
由于側(cè)掃聲吶圖像中小尺寸目標(biāo)比較多,所以在聚類后會得到較多尺寸分布在同一范圍的錨框,這會導(dǎo)致一些小目標(biāo)無法被分配到相應(yīng)的預(yù)測特征層進(jìn)行訓(xùn)練,從而影響小目標(biāo)的特征提取,進(jìn)而影響網(wǎng)絡(luò)的檢測性能。對此,文中在聚類后的錨框基礎(chǔ)上設(shè)計(jì)了一種超參數(shù)映射關(guān)系,使得錨框能夠在包含目標(biāo)真實(shí)框信息的同時(shí)也能更好地運(yùn)用到Y(jié)OLOv3的多尺度特性。
記聚類后獲得的k個(gè)錨框?yàn)棣?(μ1,μ2,…,μk),其中μi=分別為第i個(gè)錨框的寬和高,定義超參數(shù)映射關(guān)系為
其中i=1,2,…,9,n∈{w,h}。根據(jù)式(10)的映射關(guān)系,我們可以將聚類后獲得的錨框?qū)捀哂成錇槿我庹麛?shù),但由于圖片輸入YOLOv3 是有輸入尺寸的,在進(jìn)行映射操作時(shí)應(yīng)該考慮到最大的錨框尺寸不能超過圖片輸入尺寸,且錨框的最小尺寸也不能過小,否則會導(dǎo)致基本框不住任何目標(biāo),所以我們需要先確定映射后的錨框最值尺寸。不妨設(shè)映射后的第一個(gè)錨框?yàn)槌叽缱钚″^框記為,最后一個(gè)錨框?yàn)樽畲箦^框記為,同樣地,記分別為映射前的最小錨框和最大錨框,已知后,再給定映射關(guān)系中的指數(shù)因子γ,就能解算乘子α與偏移量?。我們可以對錨框的寬高分別做映射,記αw和?w為寬的映射參數(shù),其計(jì)算方式為
同理可計(jì)算高的映射參數(shù)αh和?h,則映射后的第i個(gè)錨框的尺寸為
文中使用的側(cè)掃聲吶圖像數(shù)據(jù)來自于2021 年夏季中國科學(xué)院聲學(xué)研究所水下航行器團(tuán)隊(duì)于某海灣進(jìn)行的海底側(cè)掃實(shí)驗(yàn)。此次實(shí)驗(yàn)的側(cè)掃區(qū)域面積為80 平方公里,實(shí)驗(yàn)時(shí)間長達(dá)2 個(gè)多月,共采集到了約26689張側(cè)掃聲吶圖像?;诒疚难芯空n題的應(yīng)用背景,我們期望能從大量的側(cè)掃聲吶成像結(jié)果中利用算法篩選出具備一定人工特征的聲吶目標(biāo),因此首先需要建立目標(biāo)特征符合課題需求的側(cè)掃聲吶圖像目標(biāo)數(shù)據(jù)集。結(jié)合側(cè)掃聲吶的成像特點(diǎn),我們按照以下幾個(gè)原則來篩選符合本課題需求的目標(biāo):(1)在聲吶圖像中,目標(biāo)區(qū)域應(yīng)包含高亮和陰影特征。(2)目標(biāo)的高亮和陰影區(qū)域尺寸不應(yīng)過小。(3)圖像輪廓具備明顯的人工特征,如條狀,塊狀和點(diǎn)狀等。在前述的目標(biāo)篩選條件下,我們從26689 張?jiān)悸晠葓D像中篩選出了符合課題需求的237 張目標(biāo)數(shù)據(jù)。為了提高檢測效果,增強(qiáng)算法的魯棒性,利用旋轉(zhuǎn)、翻轉(zhuǎn)和顏色擾動(dòng)的數(shù)據(jù)增強(qiáng)方式將數(shù)據(jù)從237 張擴(kuò)充至948 張,并將數(shù)據(jù)集按9∶1的比例劃分為訓(xùn)練集和測試集。圖3中給出了一張側(cè)掃聲吶的圖像數(shù)據(jù)示例。
圖3 側(cè)掃聲吶圖像示例Fig.3 Example of side scan sonar image
為驗(yàn)證算法的有效性,本文搭建了用于深度學(xué)習(xí)的實(shí)驗(yàn)平臺,使用的操作系統(tǒng)為Ubuntu 20.04.1LTS,深度學(xué)習(xí)框架為tensorflow1.14,同時(shí)配置了CUDA10.0 和cuDNN7.4 來加速訓(xùn)練,主機(jī)的CPU 為AMD A10 pro-7800b r7,GPU 為GeForce GTX 1080Ti。
對于網(wǎng)絡(luò)的訓(xùn)練,本文使用了遷移學(xué)習(xí)來加速網(wǎng)絡(luò)的收斂,將YOLOv3 在ImageNet 數(shù)據(jù)集上訓(xùn)練得到的主干特征提取網(wǎng)絡(luò)的權(quán)重作為初始值,首先保持主干特征提取網(wǎng)絡(luò)的權(quán)重不變,訓(xùn)練50 個(gè)epoch,學(xué)習(xí)率設(shè)為0.001,batch 大小為8 個(gè),使用早停法進(jìn)行訓(xùn)練,當(dāng)10 個(gè)epoch 內(nèi)驗(yàn)證集的損失函數(shù)值都沒有得到改進(jìn),則停止訓(xùn)練。隨后訓(xùn)練整個(gè)網(wǎng)絡(luò)的權(quán)重,仍舊使用早停法訓(xùn)練50個(gè)epoch,但學(xué)習(xí)率降為0.0001,batch 大小降為4個(gè)。檢測效果的評價(jià)指標(biāo)使用mAP(mean Average Precision),它是目標(biāo)檢測領(lǐng)域較具代表性的評價(jià)指標(biāo),指的是各類目標(biāo)P-R(Precision-Recall)曲線的平均面積。
4.2.1 錨框優(yōu)化實(shí)驗(yàn)結(jié)果與分析
在訓(xùn)練過程中,將YOLOv3 的圖像輸入尺寸設(shè)置為416*416,首先在表1 中給出分別使用聚類COCO 數(shù)據(jù)集得到的錨框和聚類側(cè)掃聲吶數(shù)據(jù)集得到的錨框時(shí),YOLOv3網(wǎng)絡(luò)的檢測效果。
表1 不同錨框的檢測結(jié)果Tab.1 Detection results of different anchors
可以看到如果直接使用在側(cè)掃聲吶數(shù)據(jù)集上聚類得到的錨框,會帶來一定程度的檢測性能下降。這是因?yàn)閭?cè)掃聲吶數(shù)據(jù)集中小目標(biāo)的數(shù)量占比是非常大的,聚類后得到的錨框也會更容易分布在較小的尺寸范圍內(nèi),而YOLOv3在訓(xùn)練過程中,會先求目標(biāo)真實(shí)框與錨框的IoU 值,再決定將目標(biāo)分配到哪一個(gè)特征層,這就有可能導(dǎo)致某一個(gè)本應(yīng)分配給小尺度特征層的目標(biāo)被誤分到中尺度特征層,但中尺度特征層對于小目標(biāo)的特征提取是不佳的,它已經(jīng)模糊掉了很多的細(xì)節(jié)信息,從而導(dǎo)致訓(xùn)練得到的網(wǎng)絡(luò)性能變差。在此之上,需要進(jìn)一步對錨框進(jìn)行優(yōu)化來獲得好的檢測性能。
下面給出對聚類后的錨框進(jìn)行映射后的實(shí)驗(yàn)結(jié)果,如圖4所示,圖中每個(gè)網(wǎng)格都代表了一組參數(shù)下映射得到的錨框,網(wǎng)格中的數(shù)值為YOLOv3 在該錨框下的檢測結(jié)果,橫坐標(biāo)為超參數(shù)映射關(guān)系中的指數(shù)因子γ,取值為0.5,0.8,1,1.2 和1.5,縱坐標(biāo)代表的是映射后的錨框最值尺寸和,間接代表了超參數(shù)映射關(guān)系中的乘子α與偏移量?,具體的錨框最值尺寸列在表2 和表3 中,在圖中用編號的形式簡代之。圖4(a)的錨框映射原則是保持原錨框的寬高比不變,以錨框的高為基準(zhǔn)進(jìn)行單維度的映射,其縱軸具體參數(shù)如表2 所示,圖4(b)保持錨框?qū)捀叩莫?dú)立性,進(jìn)行了雙維度的映射,縱軸參數(shù)如表3 所示。從圖4 中能夠得到結(jié)論,最佳的檢測結(jié)果出現(xiàn)在雙維度映射的情況,其mAP 值為83.86%。實(shí)驗(yàn)結(jié)果表明對聚類后的錨框進(jìn)行超參數(shù)的映射拉伸是有效的,映射后的mAP 值提高了3.93%,相對于直接使用COCO 數(shù)據(jù)集的錨框,檢測效果提升了1.18%。
圖4 不同參數(shù)下映射錨框后的檢測結(jié)果Fig.4 Detection results of mapping anchors under different parameters
表2 單維度映射時(shí)的參數(shù)Tab.2 Parameters for one dimension mapping
表3 雙維度映射時(shí)的參數(shù)Tab.3 Parameters for two dimensions mapping
為了進(jìn)一步分析超參數(shù)映射錨框策略的有效性,圖5 給出了數(shù)據(jù)目標(biāo)真實(shí)框,聚類COCO 數(shù)據(jù)集獲得的錨框,聚類側(cè)掃聲吶數(shù)據(jù)集獲得的錨框和經(jīng)過超參數(shù)映射優(yōu)化后的錨框的分布圖,它們分別用實(shí)心點(diǎn),倒三角,加號和五角星表示。COCO 數(shù)據(jù)集錨框在中大尺寸區(qū)域偏離樣本點(diǎn)較遠(yuǎn),而聲吶數(shù)據(jù)集錨框全部集中在小尺寸區(qū)域,基本忽略了大尺寸目標(biāo),經(jīng)過超參數(shù)映射優(yōu)化后的錨框既不會全部集中在小尺寸區(qū)域,也不會偏離中大尺寸目標(biāo)過遠(yuǎn),可以給網(wǎng)絡(luò)帶來更優(yōu)的先驗(yàn)信息。
圖5 不同錨框?qū)Ρ葓DFig.5 Comparison of different anchors
4.2.2 非目標(biāo)類數(shù)據(jù)下算法的檢測效果
受限于側(cè)掃聲吶數(shù)據(jù)集中的有效目標(biāo)樣本數(shù)據(jù)量較少的問題,結(jié)合課題的應(yīng)用背景,我們設(shè)計(jì)了非目標(biāo)類數(shù)據(jù)下使用COCO 數(shù)據(jù)集錨框的YOLOv3 和錨框優(yōu)化的YOLOv3 兩種算法的對比實(shí)驗(yàn),來驗(yàn)證本文所提算法對無目標(biāo)圖像的剔除能力。
本實(shí)驗(yàn)從未被選定為目標(biāo)數(shù)據(jù)集的其余側(cè)掃聲吶圖像數(shù)據(jù)中隨機(jī)選取了3817 張非目標(biāo)圖像數(shù)據(jù),用于測試算法剔除非目標(biāo)類圖像的正確率。這里的正確率定義為算法將圖像判為非目標(biāo)圖像的數(shù)量與非目標(biāo)圖像的總數(shù)量之間的比值。由于目標(biāo)檢測網(wǎng)絡(luò)的輸出結(jié)果是包含預(yù)測置信度的,所以當(dāng)給定不同的置信度閾值時(shí),算法的判決結(jié)果也會發(fā)生變化,圖6 給出了使用COCO 數(shù)據(jù)集錨框的YOLOv3 和錨框優(yōu)化的YOLOv3 兩種算法的檢測正確率隨置信度閾值變化的曲線。從實(shí)驗(yàn)結(jié)果可以看到,當(dāng)置信度閾值提高時(shí),兩種算法的檢測正確率都增大,這是因?yàn)橹眯哦乳撝翟O(shè)置得越高,算法越容易將圖片判決為非目標(biāo)。從圖6中兩條曲線的相對位置關(guān)系可以看出,錨框優(yōu)化的YOLOv3 檢測正確率始終高于使用COCO 數(shù)據(jù)集錨框的YOLOv3檢測正確率,直到置信度閾值點(diǎn)為1時(shí),兩者同時(shí)達(dá)到100%的正確率。因此,對比看來,本文所提錨框優(yōu)化策略能夠提高YOLOv3在聲吶數(shù)據(jù)集上的檢測性能,有更優(yōu)的檢測效果。
圖6 檢測正確率隨置信度閾值的變化曲線Fig.6 The curve of detection accuracy versus confidence threshold
4.2.3 不同檢測算法的比較
額外選取Faster R-CNN和SSD來展示本文所提算法與其他目標(biāo)檢測網(wǎng)絡(luò)的橫向?qū)Ρ刃Ч?,檢測效果如表4 所示,參與比較的算法有Faster R-CNN 目標(biāo)檢測網(wǎng)絡(luò),SSD 目標(biāo)檢測網(wǎng)絡(luò),使用COCO 數(shù)據(jù)集錨框的YOLOv3目標(biāo)檢測網(wǎng)絡(luò)和本文所提的錨框優(yōu)化YOLOv3 目標(biāo)檢測網(wǎng)絡(luò)??梢钥吹紽aster R-CNN在側(cè)掃聲吶數(shù)據(jù)集上的目標(biāo)檢測mAP 值為15.05%,是幾種算法中效果最差的,其次是SSD,本文所提的錨框優(yōu)化YOLOv3目標(biāo)檢測網(wǎng)絡(luò)有著最佳的目標(biāo)檢測性能,其mAP 值達(dá)到了83.86%。實(shí)驗(yàn)結(jié)果說明了使用YOLOv3 目標(biāo)檢測網(wǎng)絡(luò),同時(shí)利用超參數(shù)映射策略來優(yōu)化錨框,有最好的檢測效果,在側(cè)掃聲吶圖像數(shù)據(jù)集上是有效的。
表4 不同算法檢測結(jié)果Tab.4 Detection results of different algorithms
為了能夠更直觀的展示各檢測方法的檢測結(jié)果,圖7 至圖12 分別給出了不同背景,目標(biāo)數(shù)量和目標(biāo)大小情況下各算法的預(yù)測結(jié)果圖,參與對照的有Faster R-CNN 目標(biāo)檢測網(wǎng)絡(luò),SSD 目標(biāo)檢測網(wǎng)絡(luò)、使用COCO 數(shù)據(jù)集錨框的YOLOv3 目標(biāo)檢測網(wǎng)絡(luò)、使用聲吶數(shù)據(jù)集錨框的YOLOv3目標(biāo)檢測網(wǎng)絡(luò)和本文所提的錨框優(yōu)化YOLOv3目標(biāo)檢測網(wǎng)絡(luò)。由于整幅側(cè)掃聲吶圖像較大,為方便展示預(yù)測結(jié)果,我們在下面均以單側(cè)圖像為例來對比算法性能。
圖7~圖10 展示了不同情況下各算法對小目標(biāo)的檢測效果。圖7為只含有單目標(biāo)情況下不同算法對側(cè)掃聲吶圖像的檢測結(jié)果。圖7(a)展示了原始聲吶圖像,并且用黃色方框在圖中標(biāo)注了目標(biāo)位置。圖7(b)~(f)分別為不同算法對圖7(a)所示圖像的檢測輸出結(jié)果。從結(jié)果中可以看出,F(xiàn)aster RCNN 在該圖像中檢測出了兩個(gè)目標(biāo),出現(xiàn)了虛警情況;SSD 和使用聲吶數(shù)據(jù)集錨框的YOLOv3 均未檢出目標(biāo),出現(xiàn)了漏檢的情況;使用COCO數(shù)據(jù)集錨框的YOLOv3 和本文所提的錨框優(yōu)化YOLOv3 均正確檢測出了目標(biāo)位置,但是對比二者預(yù)測框的置信度可以發(fā)現(xiàn)錨框優(yōu)化YOLOv3得到的預(yù)測框置信度高于使用COCO 數(shù)據(jù)集錨框的YOLOv3。因此對比來看,本文所提的錨框優(yōu)化YOLOv3 具有最佳的檢測效果。圖8展示了側(cè)掃聲吶圖像包含多個(gè)密集目標(biāo)情況下不同算法的檢測結(jié)果。從結(jié)果可以看出,對于多目標(biāo)檢測場景,各個(gè)算法均存在不同程度的漏檢。SSD,使用聲吶數(shù)據(jù)集錨框的YOLOv3 和使用COCO 數(shù)據(jù)集錨框的YOLOv3 漏檢情況較為嚴(yán)重,SSD 和使用COCO 數(shù)據(jù)集錨框的YOLOv3 均只檢測出一個(gè)目標(biāo),使用聲吶數(shù)據(jù)集錨框的YOLOv3 則完全漏檢;Faster R-CNN 和錨框優(yōu)化YOLOv3 雖然存在漏檢情況,但是整體檢測性能仍優(yōu)于另外三種算法。對比Faster R-CNN 和錨框優(yōu)化YOLOv3 的檢測結(jié)果可以發(fā)現(xiàn),雖然兩種算法均能檢測出兩個(gè)目標(biāo),但Faster R-CNN 預(yù)測框框選區(qū)域過大,沒有錨框優(yōu)化YOLOv3精確。圖9和圖10分別展示了背景較暗和海底存在碎石區(qū)兩種情況下側(cè)掃聲吶圖像的檢測結(jié)果。從結(jié)果可以看出Faster R-CNN 在這兩種背景下的檢測性能均較差,未能檢測出目標(biāo);另外四種算法都可以正確框選出目標(biāo)位置。對比圖9 的檢測結(jié)果可以看到,錨框優(yōu)化YOLOv3 對于兩個(gè)目標(biāo)的檢測置信度均達(dá)到了0.99,獲得了最高的檢測置信度。同樣從圖10的結(jié)果中也可以看出,錨框優(yōu)化YOLOv3具有最佳的檢測性能。
圖7 實(shí)驗(yàn)結(jié)果1Fig.7 Result 1
圖8 實(shí)驗(yàn)結(jié)果2Fig.8 Result 2
圖9 實(shí)驗(yàn)結(jié)果3Fig.9 Result 3
圖10 實(shí)驗(yàn)結(jié)果4Fig.10 Result 4
圖11 和圖12 展示了各算法對較大尺寸目標(biāo)的檢測效果。從圖11 中可以看出,F(xiàn)aster R-CNN,SSD和使用COCO 數(shù)據(jù)集錨框的YOLOv3 均未檢測出目標(biāo),使用聲吶數(shù)據(jù)集錨框的YOLOv3 和本文所提的錨框優(yōu)化YOLOv3 均正確檢測出了目標(biāo)位置,且兩種方法的檢測置信度相同。從圖12中可以看出,五種檢測算法均能框選出目標(biāo),但是本文所提的錨框優(yōu)化YOLOv3 得到的檢測置信度低于使用COCO 數(shù)據(jù)集錨框的YOLOv3 和使用聲吶數(shù)據(jù)集錨框的YOLOv3。綜合上述檢測結(jié)果可以發(fā)現(xiàn),本文所提的錨框優(yōu)化YOLOv3 在對小目標(biāo)數(shù)據(jù)進(jìn)行檢測時(shí),檢測率和置信度較高,具有較好的檢測性能。但是本文方法在檢測較大尺寸目標(biāo)時(shí),出現(xiàn)了檢測置信度低于使用COCO 數(shù)據(jù)集錨框的YOLOv3 和使用聲吶數(shù)據(jù)集錨框的YOLOv3的情況。這說明相較于小目標(biāo),本文方法對較大尺寸目標(biāo)的檢測性能略有下降。綜上所述,本文算法比較適用于小目標(biāo)占比較多的側(cè)掃聲吶數(shù)據(jù)集。
圖11 實(shí)驗(yàn)結(jié)果5Fig.11 Result 5
圖12 實(shí)驗(yàn)結(jié)果6Fig.12 Result 6
針對側(cè)掃聲吶圖像的目標(biāo)檢測問題,在YOLOv3 目標(biāo)檢測網(wǎng)絡(luò)基礎(chǔ)上,設(shè)計(jì)了一種超參數(shù)錨框優(yōu)化策略,對聚類后的目標(biāo)真實(shí)框使用超參數(shù)映射。實(shí)驗(yàn)結(jié)果表明,YOLOv3 網(wǎng)絡(luò)在優(yōu)化后的錨框上能取得更優(yōu)的檢測效果,其mAP 值達(dá)到83.86%,相較原本的YOLOv3 錨框參數(shù),檢測性能提升了1.18%,說明了超參數(shù)錨框優(yōu)化策略的有效性。然而本文方法對于小目標(biāo)較為密集的區(qū)域仍然存在漏檢的情況,如何針對側(cè)掃聲吶圖像的目標(biāo)特點(diǎn)來提升檢測率將成為我們下一步的研究內(nèi)容。