廣州海洋地質(zhì)調(diào)查局海洋技術(shù)方法研究所 林 宇 何水原
近年來(lái)海洋觀測(cè)技術(shù)快速發(fā)展,水下目標(biāo)檢測(cè)在軍事防御、水下資源勘探、海洋環(huán)境保護(hù)以及水產(chǎn)養(yǎng)殖、漁業(yè)等海洋經(jīng)濟(jì)領(lǐng)域發(fā)揮了重要作用。在水下目標(biāo)檢測(cè)領(lǐng)域,常用檢測(cè)模型對(duì)尺度差異大的目標(biāo)檢測(cè)效果較差。針對(duì)這個(gè)問題,本文提出采用改進(jìn)Cascade RCNN算法對(duì)水下目標(biāo)進(jìn)行檢測(cè)。該算法在深度網(wǎng)絡(luò)Cascade RCNN的基礎(chǔ)上,選用殘差神經(jīng)網(wǎng)絡(luò)ResNet50作為模型的骨干網(wǎng)絡(luò)、特征金字塔網(wǎng)絡(luò)(FPN)作為特征提取方式,并通過隨機(jī)搜索的方法調(diào)整超參數(shù),顯著提升了下水下目標(biāo)檢測(cè)的精度。實(shí)驗(yàn)結(jié)果表明,相同參數(shù)下本文算法與基線網(wǎng)絡(luò)模型Faster RCNN對(duì)比,能夠?qū)⑵骄鶞?zhǔn)確率從54.9%提升至73.1%,精確率從64.0%提升到84.1%,召回率從58.2%提升到70.5%;超參數(shù)調(diào)優(yōu)后,平均準(zhǔn)確率提升到83.7%,精確率提升到89.1%,召回率提升到84.5%。
目標(biāo)檢測(cè)是利用計(jì)算機(jī)視覺和圖像處理領(lǐng)域相關(guān)的技術(shù),對(duì)數(shù)字圖像和視頻中某一類語(yǔ)義對(duì)象進(jìn)行檢測(cè),是當(dāng)前人工智能領(lǐng)域的研究熱點(diǎn)。水下目標(biāo)檢測(cè)是目標(biāo)檢測(cè)的分支,是指利用目標(biāo)檢測(cè)技術(shù),從水下圖像中檢測(cè)出感興趣的物體,并確定它們的位置和大小。近年來(lái)海洋觀測(cè)技術(shù)快速發(fā)展,水下目標(biāo)檢測(cè)在軍事防御、水下資源勘探、海洋環(huán)境保護(hù)以及水產(chǎn)養(yǎng)殖、漁業(yè)等海洋經(jīng)濟(jì)領(lǐng)域發(fā)揮了重要作用。水下圖像是海洋信息的重要載體,水下目標(biāo)檢測(cè)可以結(jié)合水下機(jī)器人,利用其攜帶的水下攝像機(jī)對(duì)感興趣的目標(biāo)進(jìn)行監(jiān)測(cè)和搜尋,具有重要的研究?jī)r(jià)值和應(yīng)用前景。但水下目標(biāo)檢測(cè)也有獨(dú)特的難點(diǎn):由于水下檢測(cè)目標(biāo)種類眾多、尺度差別大且小目標(biāo)居多,使檢測(cè)任務(wù)變得困難重重。
傳統(tǒng)目標(biāo)檢測(cè)算法主要有Viola Jones Detectors、HOG Detector以及Deformable Part-based Model等。用于水下目標(biāo)檢測(cè)的典型算法有2010年由Oliver等人提出的利用哈里斯和黑暗森林檢測(cè)器的方法對(duì)水下目標(biāo)進(jìn)行區(qū)域檢測(cè)和匹配。2013年由Fabic提出的通過斑點(diǎn)計(jì)數(shù)和形狀分析的方法,對(duì)水下視頻序列中的魚類種群進(jìn)行分類。傳統(tǒng)目標(biāo)檢測(cè)算法需要人工設(shè)計(jì)圖像提取特征,針對(duì)性強(qiáng)但不具有普適性,對(duì)于多樣的目標(biāo)沒有很好的魯棒性。
2013年,Ross Girshick提出RCNN(區(qū)域卷積神經(jīng)網(wǎng)絡(luò)模型),這是一種兩階段檢測(cè)算法,首先通過傳統(tǒng)圖像算法Selective Search對(duì)圖像產(chǎn)生候選區(qū)域,再利用CNN(卷積神經(jīng)網(wǎng)絡(luò))對(duì)候選區(qū)域進(jìn)行分類并預(yù)測(cè)目標(biāo)物體位置。RCNN首次將深度學(xué)習(xí)算法應(yīng)用在目標(biāo)檢測(cè)任務(wù)上,并取得了極大的成功。隨后Ross Girshick對(duì)RCNN進(jìn)行了改進(jìn),提出了效率更高的Fast RCNN,并被后人繼續(xù)改進(jìn)為Faster RCNN。2015年,Joseph Redmon和Liu Wei分別提出了單階段檢測(cè)算法YOLOv1和SSD。單階段檢測(cè)算法只使用一個(gè)網(wǎng)絡(luò)就能同時(shí)產(chǎn)生候選區(qū)域并預(yù)測(cè)出物體的類別和位置,因此具有較快的推理速度,而兩階段檢測(cè)算法則具有較高的定位和目標(biāo)檢測(cè)精度。
目前針對(duì)水下目標(biāo)檢測(cè)的研究多以圖像增強(qiáng)為主:2019年Lin Wei Hong提出一種名為RolMix的圖像增強(qiáng)方法,為重疊、遮擋、模糊的水下目標(biāo)構(gòu)建了泛化性更好的模型;2020年Chen Long由高分辨率和語(yǔ)義豐富的超特征圖組成的SWIPENet,同時(shí)采用了反向多類Adaboost(IMA)樣本重加權(quán)算法,提升了水下小目標(biāo)樣本的檢測(cè)精度;2020年Liu Hong提出一種WQT水質(zhì)轉(zhuǎn)移數(shù)據(jù)增強(qiáng)方法,通過DG-YOLO網(wǎng)絡(luò)挖掘語(yǔ)義信息,對(duì)水質(zhì)較差的小型水下數(shù)據(jù)集檢測(cè)精度有所提升。
超參數(shù)是深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練開始前設(shè)置的參數(shù),包括學(xué)習(xí)率、權(quán)重衰減、錨框尺度、錨框高寬比等。各水下目標(biāo)檢測(cè)網(wǎng)絡(luò)已經(jīng)表現(xiàn)出了較好的性能,通過對(duì)超參數(shù)進(jìn)行合理調(diào)優(yōu),可以有效地提高檢測(cè)精度。最基礎(chǔ)的調(diào)參方法是網(wǎng)格搜索,該方法采用窮舉法的思路,遍歷所有可能的超參數(shù)組合,因而只適用于小規(guī)模超參數(shù)優(yōu)化問題。2012年Bergstra提出隨機(jī)搜索,該方法能更高效地搜索重要參數(shù),適用于少數(shù)超參數(shù)起決定作用的模型。此外還有通過對(duì)隨機(jī)初始超參數(shù)的指標(biāo)結(jié)果擬合概率模型來(lái)推斷最佳超參數(shù)的貝葉斯優(yōu)化算法以及基于種群概念,通過并行優(yōu)化多個(gè)超參數(shù)并進(jìn)行篩選最終輸出最佳超參數(shù)的遺傳算法等,這些算法對(duì)算力和數(shù)據(jù)量有很高的要求,并且可能陷入局部最優(yōu)解。
本文針對(duì)常用檢測(cè)模型對(duì)尺度差異大的目標(biāo)檢測(cè)效果較差的問題,提出采用改進(jìn)的Cascade RCNN算法對(duì)水下目標(biāo)進(jìn)行檢測(cè),該算法在深度網(wǎng)絡(luò)Cascade RCNN的基礎(chǔ)上,選用殘差神經(jīng)網(wǎng)絡(luò)ResNet50作為模型的骨干網(wǎng)絡(luò)、特征金字塔網(wǎng)絡(luò)(FPN)作為特征提取方式,并通過隨機(jī)搜索的方法調(diào)整超參數(shù),然后在相同參數(shù)下與基線網(wǎng)絡(luò)模型Faster RCNN進(jìn)行對(duì)比,驗(yàn)證該算法對(duì)提高尺度差異大的水下目標(biāo)檢測(cè)效果的有效性。
本文采用的改進(jìn)的Cascade RCNN算法網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。該算法在深度網(wǎng)絡(luò)Cascade RCNN的基礎(chǔ)上,選用殘差神經(jīng)網(wǎng)絡(luò)ResNet50作為模型的骨干網(wǎng)絡(luò)、特征金字塔網(wǎng)絡(luò)(FPN)作為特征提取方式。
圖1 改進(jìn)Cascade RCNN網(wǎng)絡(luò)結(jié)構(gòu)
目標(biāo)檢測(cè)模型網(wǎng)絡(luò)采用交并比(IOU)來(lái)定義正樣本和負(fù)樣本,當(dāng)交并比較低時(shí)會(huì)產(chǎn)生檢測(cè)噪聲,而提高交并比又會(huì)因?yàn)檫^擬合和訓(xùn)練/推理的交并比不匹配導(dǎo)致檢測(cè)表現(xiàn)變差。Cascade RCNN采用多級(jí)聯(lián)檢測(cè)結(jié)構(gòu),通過一系列可以不斷提高交并比閾值的檢測(cè)器,解決了檢測(cè)框準(zhǔn)度低、容易出現(xiàn)噪聲干擾的問題,減低近似檢測(cè)錯(cuò)誤的概率。在逐步改進(jìn)閾值的同時(shí)通過重采樣來(lái)保證所有的檢測(cè)器都有等效的正樣本,減少了過擬合的問題。并且在推理階段也采用相同的多級(jí)聯(lián)結(jié)構(gòu),防止因?yàn)榕c訓(xùn)練階段的交并比不匹配而使檢測(cè)表現(xiàn)變差。
Cascade RCNN模型損失函數(shù)包括位置損失函數(shù)和分類損失函數(shù),總體損失如公式1所示。公式1中,位置損失函數(shù)Lloc為smoothL1損失函數(shù),其中b為帶有目標(biāo)對(duì)象的圖像塊上預(yù)測(cè)的目標(biāo)邊界框坐標(biāo),g為人工標(biāo)注的目標(biāo)邊界框,通過回歸函數(shù)f(x,b)實(shí)現(xiàn)損失函數(shù)的最小化;分類損失函數(shù)Lcls為softmax函數(shù),式中y為對(duì)應(yīng)類別的標(biāo)簽,通過分類函數(shù)h(x)將圖像塊x分配為M+1個(gè)類別之一(類別0為背景),分類損失函數(shù)對(duì)模型影響更大。
在目標(biāo)檢測(cè)領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)的深度對(duì)檢測(cè)結(jié)果的精度有重要意義,但隨著網(wǎng)絡(luò)層數(shù)的加深又會(huì)帶來(lái)梯度彌散或梯度爆炸的問題,并引起精度下降。殘差神經(jīng)網(wǎng)絡(luò)是目標(biāo)分類領(lǐng)域廣泛使用的網(wǎng)絡(luò)結(jié)構(gòu),其將殘差學(xué)習(xí)的思想加入到傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)中,解決了深層網(wǎng)絡(luò)容易梯度彌散和精度下降的問題。ResNet50是常用的殘差神經(jīng)網(wǎng)絡(luò)之一,它具有50層的深度(如表1所示),其中第一層為7*7*64的卷積,然后連接3個(gè)、4個(gè)、6個(gè)、3個(gè)共16個(gè)結(jié)構(gòu)單元,每個(gè)單元為3層,共48層,加上最后一層全連接層,共50層。ResNet50網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
表1 ResNet50網(wǎng)絡(luò)結(jié)構(gòu)
檢測(cè)目標(biāo)尺寸差異大是目標(biāo)檢測(cè)領(lǐng)域的常見問題,目前常用的解決方法是采用特征圖像金字塔進(jìn)行多尺度測(cè)試來(lái)提高檢測(cè)精度,但這種方法會(huì)占用大量計(jì)算能力和內(nèi)存,且檢測(cè)效率降低了4倍,在實(shí)際生產(chǎn)作業(yè)中并不實(shí)用。為了解決水下目標(biāo)檢測(cè)任務(wù)存在檢測(cè)目標(biāo)尺寸差異大的問題,采用特征金字塔網(wǎng)絡(luò)作為特征提取的方法,該網(wǎng)絡(luò)結(jié)構(gòu)能夠在增加少量計(jì)算量的同時(shí)優(yōu)化目標(biāo)檢測(cè)中的多尺度變化問題。
特征金字塔網(wǎng)絡(luò)利用卷積網(wǎng)絡(luò)特征層的金字塔結(jié)構(gòu),通過自上而下的路徑和橫向連接將低分辨率、語(yǔ)義強(qiáng)的特征于高分辨率、語(yǔ)義弱的特征相結(jié)合,構(gòu)成不同特征層均具有豐富的語(yǔ)義信息的特征金字塔。特征金字塔網(wǎng)絡(luò)對(duì)平均精度和平均召回率有顯著的改善,是一種實(shí)用準(zhǔn)確的多尺度目標(biāo)檢測(cè)解決方案。
特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)包括自下而上的路徑、自上而下的路徑和橫向連接(如圖2所示)。在ResNet50中,自下而上的卷積層2至卷積層5使用最后一個(gè)殘差塊輸出的特征激活,而卷積層1由于占用內(nèi)存過大,不包括含在特征金字塔中。然后通過橫向連接將其與自上而下路徑的同尺寸特征圖融合,從而得到不同分辨率且語(yǔ)義豐富的特征圖。
圖2 特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)圖
超參數(shù)調(diào)優(yōu)是模型設(shè)計(jì)的最后一步,也是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的第一步。訓(xùn)練過程中對(duì)權(quán)重影響更大的超參數(shù)通常對(duì)神經(jīng)網(wǎng)絡(luò)的精度影響也更大,然而如何確定哪個(gè)超參數(shù)對(duì)最終的精度更重要,更多時(shí)候還是由經(jīng)驗(yàn)決定。
超參數(shù)可分為用于訓(xùn)練的超參數(shù)和用于模型設(shè)計(jì)的超參數(shù)。與模型訓(xùn)練相關(guān)的超參數(shù)對(duì)神經(jīng)網(wǎng)絡(luò)的收斂速度和模型性能,而模型設(shè)計(jì)的超參數(shù)則用于調(diào)整神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),如隱藏層的數(shù)量和寬度等。對(duì)超參數(shù)調(diào)優(yōu)即選擇合適的超參數(shù)λ,使泛化誤差最小,其數(shù)學(xué)表達(dá)如式2所示:
學(xué)習(xí)率是在隨機(jī)梯度下降過程中確定步長(zhǎng)的正標(biāo)量。較小的學(xué)習(xí)率會(huì)導(dǎo)致模型收斂緩慢,而過大的學(xué)習(xí)率則可能導(dǎo)致模型無(wú)法收斂。學(xué)習(xí)率通常在訓(xùn)練期間采用手動(dòng)調(diào)整,也可以采用在訓(xùn)練過程中自適應(yīng)可變的學(xué)習(xí)率。
權(quán)重衰減系數(shù)是在做梯度運(yùn)算時(shí),當(dāng)前權(quán)重減去的比例大小,是神經(jīng)網(wǎng)絡(luò)正則化的方法,其作用是降低權(quán)重值,使模型整體權(quán)重接近零,減少模型對(duì)輸入中噪聲的敏感度,避免模型出現(xiàn)過擬合,提高模型泛化能力。
錨框的概念最早出現(xiàn)在Faster RCNN網(wǎng)絡(luò)中,是指目標(biāo)檢測(cè)中用于表示目標(biāo)的邊框,以坐標(biāo)的形式表示。錨框尺度和錨框高寬比是關(guān)于錨框的超參數(shù),分別表示目標(biāo)的大小和形狀,在Faster RCNN中定義的尺度為8、16、32,高寬比為0.5、1、2,組合出9中不同形狀大小的邊框。
隨機(jī)搜索調(diào)優(yōu)算法是對(duì)可能的超參數(shù)在可能的范圍進(jìn)行隨機(jī)搜索,搜索預(yù)算(如時(shí)長(zhǎng)、算力)根據(jù)設(shè)置的時(shí)間或達(dá)到所需的精度為止。
實(shí)驗(yàn)基于PaddlePaddle深度學(xué)習(xí)框架,在TeslaGPU P40,24G顯存單卡,12核CPU,40G內(nèi)存環(huán)境中運(yùn)行,采用公開數(shù)據(jù)集對(duì)Cascade RCNN網(wǎng)絡(luò)模型進(jìn)行預(yù)訓(xùn)練,然后用數(shù)據(jù)處理后的數(shù)據(jù)集對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,從平均準(zhǔn)確率、精確率、召回率三個(gè)角度分析訓(xùn)練后網(wǎng)絡(luò)對(duì)水下目標(biāo)的檢測(cè)能力,并和基線網(wǎng)絡(luò)Faster RCNN網(wǎng)絡(luò)做了詳細(xì)的對(duì)比,最后采用隨機(jī)搜索對(duì)Cascade RCNN網(wǎng)絡(luò)進(jìn)行超參數(shù)調(diào)優(yōu),驗(yàn)證改進(jìn)Cascade RCNN網(wǎng)絡(luò)在水下目標(biāo)檢測(cè)任務(wù)中的有效性。
本文采用2020年全國(guó)水下機(jī)器人大賽數(shù)據(jù)集(如圖3所示),該數(shù)據(jù)集為真實(shí)水下環(huán)境拍攝圖像,共有5543幅訓(xùn)練圖像。數(shù)據(jù)集包含海參、扇貝和海膽以及海星共4類檢測(cè)目標(biāo)且以單個(gè)類別聚集為主,除此以外還包含大量復(fù)雜背景信息和干擾目標(biāo)(如海草、魚類等)。數(shù)據(jù)劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集,比例約為8:1:1,其中驗(yàn)證集用于超參數(shù)的調(diào)整。
圖3 水下目標(biāo)檢測(cè)部分?jǐn)?shù)據(jù)樣本
試驗(yàn)中,首先利用公開數(shù)據(jù)集ImageNet數(shù)據(jù)集對(duì)特征提取網(wǎng)絡(luò)模型進(jìn)行預(yù)訓(xùn)練,然后將水下目標(biāo)數(shù)據(jù)集中的訓(xùn)練圖像對(duì)改進(jìn)的Cascade RCNN網(wǎng)絡(luò)進(jìn)行訓(xùn)練,最后用測(cè)試圖像對(duì)模型檢測(cè)精度進(jìn)行檢測(cè)。
初始學(xué)習(xí)率為0.02,權(quán)重衰減系數(shù)為0.0001,錨框尺度為32、64、128、256、512,錨框高寬比為0.5、1、2,每次訓(xùn)練時(shí)選取的樣本數(shù)為2,最大訓(xùn)練次數(shù)為90000,每訓(xùn)練10000次進(jìn)行一次預(yù)測(cè)。
使用隨機(jī)搜索超參數(shù)調(diào)優(yōu),設(shè)置最大搜索時(shí)長(zhǎng)24h,最大搜索次數(shù)10次,數(shù)據(jù)采樣比例70%,最高平均準(zhǔn)確率為90%。搜索搜索結(jié)果顯示學(xué)習(xí)率約為0.001630,權(quán)重衰減系數(shù)約為0.00008,錨框尺度為5,錨框高寬比為2。
訓(xùn)練完成后改進(jìn)Cascade RCNN網(wǎng)絡(luò)檢測(cè)效果如圖4所示。實(shí)驗(yàn)以Faster RCNN網(wǎng)絡(luò)為基準(zhǔn),與Cascade RCNN網(wǎng)絡(luò)和調(diào)優(yōu)后網(wǎng)絡(luò)做了詳細(xì)對(duì)比,各網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果如表2所示。實(shí)驗(yàn)結(jié)果表明,相同參數(shù)下本文算法與Faster RCNN網(wǎng)絡(luò)模型相比,能夠?qū)⑵骄鶞?zhǔn)確率從54.9%提升至73.1%,精確率從64.0%提升到84.1%,召回率從58.2%提升到70.5%;超參數(shù)調(diào)優(yōu)后,平均準(zhǔn)確率提升到83.7%,精確率提升到89.1%,召回率提升到84.5%。
圖4 部分檢測(cè)結(jié)果
表2 本文方法的實(shí)驗(yàn)結(jié)果
本文采用改進(jìn)的Cascade RCNN算法對(duì)水下目標(biāo)進(jìn)行檢測(cè),該算法在深度網(wǎng)絡(luò)Cascade RCNN的基礎(chǔ)上,選用殘差神經(jīng)網(wǎng)絡(luò)ResNet50作為模型的骨干網(wǎng)絡(luò)、特征金字塔網(wǎng)絡(luò)(FPN)作為特征提取方式,改善了常用模型對(duì)水下目標(biāo)檢測(cè)任務(wù)中小尺寸目標(biāo)檢測(cè)效果差的問題,有效提高了模型檢測(cè)精度。通過隨機(jī)搜索的方式調(diào)整超參數(shù),防止由于數(shù)據(jù)樣本量少導(dǎo)致模型過擬合,進(jìn)一步提高模型檢測(cè)精度。實(shí)驗(yàn)結(jié)果表明,模型的平均準(zhǔn)確率、精確率、召回率相比基線網(wǎng)絡(luò)模型Faster RCNN均有較大幅度的提升。