袁紅春,張碩
(上海海洋大學(xué) 信息學(xué)院,上海 201306)
近年來,水下探測作業(yè)技術(shù)已成為海洋技術(shù)領(lǐng)域的研究熱點,要實現(xiàn)水下探測和作業(yè),水下機器人必須能快速對水下環(huán)境中需要捕獲信息的目標(biāo)進(jìn)行精確識別和定位[1-4]。傳統(tǒng)方法中,人們依靠延繩釣探捕、拖網(wǎng)探捕等常用海洋捕撈技術(shù)進(jìn)行魚類密度及分布測算或利用相關(guān)性分析篩選出顯著影響魚類資源量的關(guān)鍵網(wǎng)格點建立模型進(jìn)行預(yù)測[5]。此外,海洋科學(xué)家也通過水下攝像機拍攝視頻錄像帶,然后通過人工標(biāo)注魚類分析漁情[6]。精確的漁情預(yù)測數(shù)據(jù)能夠解決目前多數(shù)漁業(yè)標(biāo)準(zhǔn)服務(wù)系統(tǒng)中缺少基于標(biāo)準(zhǔn)體系的漁業(yè)標(biāo)準(zhǔn)服務(wù)的問題,并能夠為漁業(yè)標(biāo)準(zhǔn)修訂指南提供數(shù)據(jù)決策依據(jù)[7]。隨著水下拍攝技術(shù)的發(fā)展與相關(guān)設(shè)備的普及,水下拍攝在魚群監(jiān)測、魚類資源量預(yù)測等漁業(yè)方面的應(yīng)用日益廣泛。利用水下拍攝視頻圖像自動處理,極大地節(jié)省了時間和成本[8],但這項工作面臨著許多挑戰(zhàn),如復(fù)雜的水下背景、變形、低對比度、低分辨率和光傳播細(xì)節(jié)不充分等因素,給魚類目標(biāo)檢測帶來了困難。因此,針對水下拍攝圖片中魚類目標(biāo)快速檢測方法的研究具有重要意義。
傳統(tǒng)機器學(xué)習(xí)方法是通過人工方法提取魚類特征,然后將特征輸入支持向量機、boosting等分類器進(jìn)行檢測分類。Rova等[9]提出一種基于模板匹配的可變形提取技術(shù)可用于魚類檢測;張志強等[10]提出一種一般化方法,將魚類圖像中各顏色分量和長短軸之比作為魚類特征;姚潤璐等[11]則從魚類圖像中分割出魚各部位的圖像模塊,然后提取關(guān)聯(lián)度更高的特征,但其提取過程非常復(fù)雜,需要人工制定魚類各部位的匹配規(guī)則,不適用于分析海量數(shù)據(jù);Dalal等[12]提出HOG(Histogram of oriented gradients)特征具有較好的分類特性等。然而,上述人工方法提取到的魚類特征通常只適用于光照充足、清晰度高、背景環(huán)境對比度高的情景下,在水下較難產(chǎn)生作用。而且機器學(xué)習(xí)方法提取魚類特征是通過人類的先驗知識實現(xiàn)的,挖掘特征的能力差,在檢測效果達(dá)到一定程度后無法隨數(shù)據(jù)量的擴(kuò)增而提高。
相較于傳統(tǒng)機器學(xué)習(xí)方法,深度學(xué)習(xí)方法在特征提取方面具有極大優(yōu)勢。近年來,深度卷積神經(jīng)網(wǎng)絡(luò)算法[13]的發(fā)展使目標(biāo)檢測的精度得到顯著提高,并能在無須任何先驗知識下對數(shù)據(jù)本身特征進(jìn)行自我學(xué)習(xí),自動逐層提取,當(dāng)數(shù)據(jù)規(guī)模足夠大、網(wǎng)絡(luò)層數(shù)足夠深時能夠?qū)?shù)據(jù)深度挖掘, 提取出具有分辨力的高質(zhì)量特征。但深度學(xué)習(xí)需要數(shù)據(jù)支撐,在數(shù)據(jù)規(guī)模較小時很難提取出具有較強泛化能力的特征,而水下拍攝的魚類圖像數(shù)目少、拍攝成本高,數(shù)據(jù)量難以支撐訓(xùn)練網(wǎng)絡(luò)。通過遷移學(xué)習(xí)[14]可解決水下拍攝魚類圖像數(shù)據(jù)量不足的問題,即采用Faster R-CNN[15]算法,首先通過預(yù)訓(xùn)練模型對Open Images高清魚類數(shù)據(jù)集進(jìn)行一次遷移學(xué)習(xí)初步訓(xùn)練網(wǎng)絡(luò),然后固定訓(xùn)練好的檢測模型的低3層卷積網(wǎng)絡(luò)參數(shù),再用水下拍攝的小規(guī)模魚類數(shù)據(jù)集進(jìn)行二次遷移學(xué)習(xí)訓(xùn)練、微調(diào)網(wǎng)絡(luò)[16],最后通過帶色彩恢復(fù)的多尺度視網(wǎng)膜增強算法(Multi-Scale Retinex with Color Restoration,MSRCR)對水下拍攝的低清晰度、低對比度、低質(zhì)量圖像進(jìn)行處理以增大其與高清魚類圖像的相似性,使二次遷移學(xué)習(xí)高效進(jìn)行,從而得到能準(zhǔn)確檢測水下圖像中魚類目標(biāo)的網(wǎng)絡(luò)。為此,本研究提出了一種基于Faster R-CNN二次遷移學(xué)習(xí)和MSRCR算法的方法,用于水下低清晰度圖像中魚類目標(biāo)的快速檢測,旨在為深海探測作業(yè)與海底魚類等生物資源的監(jiān)測、保護(hù)、可持續(xù)開發(fā)等工程應(yīng)用提供參考。
Faster R-CNN可看作“區(qū)域生成網(wǎng)絡(luò)Fast R-CNN[17]+RPN[18]”的系統(tǒng),兩者相互協(xié)調(diào)對圖像中目標(biāo)進(jìn)行檢測。其最大創(chuàng)新在于增加目標(biāo)區(qū)域提取網(wǎng)絡(luò)RPN(region proposal network),其本質(zhì)是基于滑窗的無類別目標(biāo)檢測器,通過錨點機制來生成候選框以替代選擇搜索、Edge Box等傳統(tǒng)方法,然后通過 CNN 來預(yù)測檢測目標(biāo)可能存在的區(qū)域,可極大地提升檢測框的生成速度。
RPN網(wǎng)絡(luò)采用端到端的訓(xùn)練方式,能夠輸出感興趣區(qū)域的邊框位置和可能存在目標(biāo)的概率值。在結(jié)構(gòu)上,F(xiàn)aster R-CNN將特征抽取、邊框回歸及分類都整合在一個網(wǎng)絡(luò)中,從而有效提高檢測精度和檢測效率,在檢測速度方面提升尤為明顯。如圖1所示,基于Faster R-CNN的魚類目標(biāo)檢測步驟如下:(1)將魚類圖像縮放后輸入到卷積層提取特征圖,然后將特征圖輸入后續(xù)的Fast R-CNN與RPN網(wǎng)絡(luò)中共享。(2)在特征圖傳入RPN后,使用滑窗生成特征向量,然后將特征向量輸入分類層和回歸層。(3)在分類層中,使用Softmax分類器執(zhí)行二分類任務(wù),對錨點進(jìn)行前景或背景的判斷;在回歸層中,調(diào)整錨點邊框中心,擬合推算回歸得到候選框位置。(4)Fast R-CNN綜合候選框與特征圖的信息,判斷前景所屬類別,并生成最終魚類圖像檢測框的確切位置。
圖1 Faster R-CNN模型結(jié)構(gòu)Fig.1 Structure of the Faster R-CNN model
由于采用交替訓(xùn)練使兩個網(wǎng)絡(luò)卷積層實現(xiàn)了共享,使用Faster R-CNN極大地縮短了檢測時間的同時又提高了精度。依據(jù)其在ImageNet數(shù)據(jù)集的檢測結(jié)果能夠看出,到目前為止,F(xiàn)aster R-CNN依然是檢測精度與檢測速度綜合性能最高的算法,故本研究中采用Faster R-CNN算法,選用VGG16網(wǎng)絡(luò)[19]及ResNet101[20]網(wǎng)絡(luò)進(jìn)行魚類目標(biāo)檢測,實現(xiàn)水下拍攝圖像中魚類目標(biāo)的有效檢測。
為縮短訓(xùn)練時間和提高檢測精度,使用遷移學(xué)習(xí)的方法:用超大規(guī)模源域ImageNet數(shù)據(jù)集訓(xùn)練好的VGG16與ResNet101網(wǎng)絡(luò)參數(shù)用于初始化,然后利用目標(biāo)域數(shù)據(jù)集對參數(shù)微調(diào)。Faster R-CNN遷移學(xué)習(xí)訓(xùn)練具體步驟如下:
第一步:使用上述初始化好的參數(shù)來訓(xùn)練RPN網(wǎng)絡(luò),然后生成感興趣區(qū)域。
第二步:對于第一步中得到的感興趣區(qū)域,利用ImageNet數(shù)據(jù)集初始化完畢的網(wǎng)絡(luò)進(jìn)行回歸訓(xùn)練和分類。由于此時RPN網(wǎng)絡(luò)和Fast R-CNN網(wǎng)絡(luò)各自獨立訓(xùn)練,故訓(xùn)練后各自對網(wǎng)絡(luò)參數(shù)的更新不同,兩個網(wǎng)絡(luò)參數(shù)不共享。
第三步:使用第二步生成的網(wǎng)絡(luò)參數(shù)來訓(xùn)練RPN網(wǎng)絡(luò),此時只調(diào)優(yōu)RPN獨有的網(wǎng)絡(luò)層參數(shù),并生成感興趣區(qū)域。
第四步:使用生成的感興趣區(qū)域訓(xùn)練網(wǎng)絡(luò),然后進(jìn)行分類和回歸,期間固定卷積層共享的參數(shù),最終實現(xiàn)目標(biāo)域Faster R-CNN檢測模型的訓(xùn)練。
獲取水下拍攝大規(guī)模魚類圖像比較困難,成本較高,現(xiàn)有的水下拍攝樣本量很難訓(xùn)練出符合要求的模型。在常規(guī)深度學(xué)習(xí)訓(xùn)練中,若數(shù)據(jù)量不足,通常方法是通過隨機裁剪、翻轉(zhuǎn)、亮度與對比度設(shè)置及顏色轉(zhuǎn)換等方法對數(shù)據(jù)集進(jìn)行擴(kuò)充,雖然一定程度上能提高檢測精度,但是提高有限。借助數(shù)據(jù)量相對充足的Open Images高清魚類圖像,采用遷移學(xué)習(xí)的方法,利用水下拍攝的魚類圖像微調(diào)Open Images高清魚類目標(biāo)檢測網(wǎng)絡(luò),進(jìn)而實現(xiàn)對水下圖像中魚類目標(biāo)的檢測。遷移學(xué)習(xí)所連接的兩個目標(biāo)的相似程度越高,就越利于遷移學(xué)習(xí)的進(jìn)行。Open Images高清魚類圖像與水下拍攝魚類圖像最主要的差別在于光。與普通圖像不同,水下由于光隨距離和深度呈指數(shù)衰減,從而產(chǎn)生霧靄、水下介質(zhì)吸收光能、散射改變光的方向,故水下圖像對比度低、清晰度低、顏色褪色。提高兩者之間相似度的關(guān)鍵是處理光線條件及恢復(fù)水下顏色色彩,而MSRCR算法能夠減弱光線對圖像中物體的影響,恢復(fù)物體本來的清晰度、對比度、色彩、邊緣等信息。故本研究中使用MSRCR算法對水下拍攝魚類圖像增強,增大其與Open Images高清魚類圖像的相似度。
MSRCR是對Retinex算法的極大改進(jìn)。依據(jù)Retinex理論,圖像可看作由入射光線和反射光線組成,數(shù)學(xué)表達(dá)式如下:
I(x,y)=L(x,y)×R(x,y)。
(1)
其中:I(x,y)為觀察者感知的物體圖像信息;L(x,y)為環(huán)境光的照度分量;R(x,y)為物體的反射分量。Retinex算法的核心思想是消去照射光線的影響,保留物體本身的反射屬性。對式(1)兩邊取對數(shù),即可拋除入射光線的影響,從而得到目標(biāo)物體的原本面貌,關(guān)系式如下:
lg[R(x,y)]=lg[I(x,y)]-lg[L(x,y)]。
(2)
對于已獲取的一張圖像I(x,y),計算圖像增強后的對應(yīng)R(x,y),關(guān)鍵是獲取L(x,y)。Retinex理論提出L(x,y)能夠通過對圖像I(x,y)和一個高斯核的卷積進(jìn)行高斯模糊來近似表示,關(guān)系式如下:
R(x,y)=exp{lg[I(x,y)]-
lg[I(x,y)*G(x,y)]}。
(3)
其中:*為卷積;G(x,y)為高斯核。
然后將lg[R(x,y)]量化成0~255范圍之內(nèi)的像素值輸出。計算出lg[R(x,y)]的最小值與最大值,然后對每個lg[R(x,y)]值采用線性方式量化,計算公式如下:
R(x,y)={lg[R(x,y)]-lg[R(x,y)]min}/
{lg[R(x,y)]max-lg[R(x,y)]min}×
(255-0)。
(4)
為了獲得更好的增強效果,在其基礎(chǔ)上又衍生出多尺度視網(wǎng)膜增強算法MSR(Multi-Scale Retinex),其優(yōu)點是能夠在保持圖像高保真度和對圖像的動態(tài)范圍進(jìn)行壓縮的同時也能夠?qū)崿F(xiàn)色彩增強。MSR算法在計算lg[R(x,y)]時需要對輸入圖像進(jìn)行每個尺度的高斯模糊,得到模糊后的圖像Li(x,y)(下標(biāo)i表示尺度數(shù)),然后對每個尺度進(jìn)行累加計算,計算公式如下:
lg[R(x,y)]=lg[R(x,y)]+W(i)×
(lg[Ii(x,y)]-lg[Li(x,y)])。
(5)
其中:W(i)為每個尺度對應(yīng)的權(quán)重,各尺度權(quán)重之和為1,經(jīng)典取值為等權(quán)重。其他的計算步驟與單尺度相同。
MSRCR是對MSR結(jié)果做了色彩平衡、歸一化及增益和偏差線性加權(quán),解決了MSR普遍存在的偏色問題。MSRCR算法,首先是計算出lg[R(x,y)]中R/G/B各通道數(shù)據(jù)的平均值(Mean)和均方差(Var),設(shè)置動態(tài)參數(shù)(Dynamic),然后通過lg[R(x,y)max=Mean-Dynamic×Var和lg[R(x,y)max=Mean+Dynamic×Var計算各通道的最小和最大值,最后對lg[R(x,y)]的每一個值用式(4)進(jìn)行映射,通過判斷語句:if(R(x,y)>255)R(x,y)=255;else if(R(x,y)<0)R(x,y)=0做溢出判斷。經(jīng)上述處理,在水下拍攝圖像即可取得非常好的效果。
MSRCR不同尺度數(shù)對比試驗結(jié)果(圖2)表明,尺度(scale)數(shù)對結(jié)果的影響不大,且在實際網(wǎng)絡(luò)模型檢測魚類圖像中精度差別甚微,但隨尺度數(shù)的增加,算法耗時將線性增加,為滿足魚類圖像快速檢測的需求,一般選取尺度數(shù)為3比較合適。
圖2 MSRCR尺度數(shù)對比試驗圖Fig.2 Test diagram of MSRCR scale number comparison
MSRCR不同動態(tài)參數(shù)對比試驗結(jié)果(圖3)表明,動態(tài)對比參數(shù)Dynamic取值越小,水下圖像增強后的對比度越強,當(dāng)其取值在2~3之間時能取得很自然的過渡效果,保持圖像的清晰度適度增強。對于最大尺度,針對水下拍攝魚類數(shù)據(jù)集,本試驗中總結(jié)出取值以大于100為好。
圖3 MSRCR動態(tài)參數(shù)對比試驗圖Fig.3 Comparison test diagram of MSRCR dynamic parameters
使用谷歌Open Images訓(xùn)練集中共計13 443張有單獨魚類邊界框的高清魚類圖片作為訓(xùn)練數(shù)據(jù),如圖4所示,像素尺寸為1920×1080,其中魚類種類多樣、背景復(fù)雜、對比度強、清晰度高。從Open Images的測試集選取500 張魚類測試圖片,共計2253個樣本作為測試集,并從訓(xùn)練集的圖片中隨機選取500張圖片作為交叉驗證集。通過python腳本讀取Open Images中谷歌開源標(biāo)注好的邊界框信息,轉(zhuǎn)換成本研究中訓(xùn)練所需的數(shù)據(jù)格式。
圖4 Open Images數(shù)據(jù)集中帶有單獨魚類邊界框的高清魚類圖片F(xiàn)ig.4 High definition fish pictures with individual fish boundary frame in Open Images data set
利用超大規(guī)模ImageNet數(shù)據(jù)集訓(xùn)練好的VGG16、ResNet101網(wǎng)絡(luò)模型對網(wǎng)絡(luò)參數(shù)初始化, 并利用高清魚類數(shù)據(jù)集對網(wǎng)絡(luò)微調(diào),完成基于一次遷移學(xué)習(xí)的Open Images高清魚類目標(biāo)檢測。
試驗環(huán)境配置參數(shù)如下:處理平臺為臺式計算機,CPU為AMD Ryzen Threadripper 1950X,CPU主頻3.4 GHz,動態(tài)加速頻率4 GHz。GPU為NVIDIA GTX1080Ti,運行環(huán)境為Windows 10(64位)系統(tǒng),Python 3.6,TensorFlow 1.8.0。通過CUDA 9.0.176版并行計算架構(gòu)進(jìn)行加速運算。采用mAP(mean average precision)檢測模型評估指標(biāo),mAP是不同score閾值下準(zhǔn)確率-查全率曲線和坐標(biāo)軸圍成的面積,然后對各類別的面積值取平均值,這是目前應(yīng)用最廣泛、最合理、最穩(wěn)定的檢測模型評估指標(biāo)。利用交叉驗證集的檢測結(jié)果對VGG16與ResNet101這兩種網(wǎng)絡(luò)進(jìn)行超參數(shù)分析與調(diào)優(yōu),擇取最優(yōu)超參數(shù),最后通過測試集數(shù)據(jù)對網(wǎng)絡(luò)的檢測精度進(jìn)行無偏估計,采用的評價指標(biāo)為查準(zhǔn)率、查全率和調(diào)和函數(shù)F1度量,以及每張圖像的平均檢測耗時。對于二分類問題,可將樣例根據(jù)其真實類別與學(xué)習(xí)器預(yù)測類別的組合劃分為真正例(true positive,TP)、假正例(false positive,F(xiàn)P)、真反例(true negative,TN)、假反例(false negative,F(xiàn)N)4種情形。查準(zhǔn)率(precision,P)又稱準(zhǔn)確率,是針對預(yù)測結(jié)果而言的,其表示預(yù)測為正的樣例中有多少是真正的正樣例,計算公式為P=TP/(TP+FP)。查全率(recall,R)又稱召回率,是針對原來樣本而言的,其表示樣本中的正例有多少被預(yù)測正確,計算公式為R=TP/(TP+FN)。F1度量是查準(zhǔn)率與查全率的調(diào)和平均數(shù),其計算公式為F1=2×P×R/(P+R)。
檢測結(jié)果如表1所示,可以看出,ResNet101網(wǎng)絡(luò)的查準(zhǔn)率及查全率均高于VGG16網(wǎng)絡(luò),并且查全率與查準(zhǔn)率均高于90%, 同時ResNet101網(wǎng)絡(luò)相對于VGG16網(wǎng)絡(luò)檢測耗時更短,這是由于ResNet101引入殘差結(jié)構(gòu),并且網(wǎng)絡(luò)深度遠(yuǎn)大于 VGG-16 網(wǎng)絡(luò)但參數(shù)空間較小。
表1 對Open Images高清魚類數(shù)據(jù)集的檢測結(jié)果
圖5為RestNet101網(wǎng)絡(luò)對高清魚類圖像的部分檢測結(jié)果,可以看出,該網(wǎng)絡(luò)模型能夠精確地識別出清晰度高、對比度強的魚類目標(biāo),并對光照、背景、陰影等因素具有一定程度的魯棒性,在海草遮蔽魚身及水底環(huán)境復(fù)雜的情況下亦可檢測到目標(biāo),但是當(dāng)目標(biāo)與背景顏色相近或者與背景環(huán)境對比不強時有可能發(fā)生較小的漏檢和誤檢。
圖5 高清魚類圖像識別結(jié)果Fig.5 Recognition results of high-definition fish image
由于目前還沒有較為完備的、公開的水下魚類數(shù)據(jù)集,因此,利用水下攝像機拍攝魚類圖片,共600張圖片,像素尺寸為 1000×600,場景主要是本文背景項目養(yǎng)殖基地。從中隨機選取100張,共計324個樣本,作為測試集;從剩余的圖片中隨機選取100張,共計433個樣本,作為交叉驗證集;其余400張圖片,共計1838個樣本作為訓(xùn)練集。并對每幅圖片中的所有樣本統(tǒng)一歸為魚類目標(biāo)類別,用labelImg圖像標(biāo)注工具進(jìn)行人工標(biāo)注并制作成所需的xml格式,結(jié)果如圖6所示。
圖6 使用labelImg制作標(biāo)簽圖Fig.6 Using labelImg to create labels
網(wǎng)絡(luò)模型的低層卷積層是用來提取識別目標(biāo)的紋理、色彩、邊緣等底層特征的,對于不同的數(shù)據(jù)集影響較小,一般預(yù)訓(xùn)練模型對底層特征的提取能力非常強,基于對圖像識別時提取底層特征通用的特點,在進(jìn)行參數(shù)遷移時會保留并固定低層卷積模塊結(jié)構(gòu)與參數(shù),并將靠近分類層的高層卷積的模塊與結(jié)構(gòu)參數(shù)設(shè)置為可訓(xùn)練的狀態(tài),然后將模型放入目標(biāo)域中進(jìn)行再訓(xùn)練,由于可訓(xùn)練參數(shù)繼承自源模型,因此,在進(jìn)行微調(diào)時無須從初始值開始梯度下降,一般經(jīng)過小幅調(diào)整后即可達(dá)到新的最優(yōu)值。針對已經(jīng)訓(xùn)練好的Open Images高清魚類目標(biāo)檢測模型固定前3層卷積網(wǎng)絡(luò)參數(shù),根據(jù)水下拍攝魚類數(shù)據(jù)集,僅對更高層次的網(wǎng)絡(luò)參數(shù)做微調(diào),并觀察其在交叉驗證集中的檢測效果,結(jié)果如表2所示。
從表2可以看出,相較于直接利用水下拍攝數(shù)據(jù)集進(jìn)行訓(xùn)練,進(jìn)行二次遷移學(xué)習(xí)后對魚類目標(biāo)檢測效果有較為明顯的提高,由于VGG16的網(wǎng)絡(luò)規(guī)模與層數(shù)相對較小,其包含的抽象信息較少,因此,在微調(diào)時權(quán)值更新數(shù)量相較總參數(shù)量占比重較大,對模型檢測能力的提升作用明顯。當(dāng)對數(shù)據(jù)采用簡單的增強圖片明亮度方法將水下拍攝的魚類圖像亮度提高30%時,對比不進(jìn)行圖像增強時,這兩種網(wǎng)絡(luò)模型均有提高,但是mAP提升并不大,因該算法沒有提高水下魚類圖像的清晰度,無法大幅提高遷移源域高清魚類圖像和目標(biāo)域水下低清晰度魚類圖像的相似度。而使用MSRCR算法進(jìn)行水下圖像增強后,二次遷移學(xué)習(xí)后的效果有了進(jìn)一步的提高,特別是在網(wǎng)絡(luò)規(guī)模更深的ResNet101網(wǎng)絡(luò)上檢測效果提升更加明顯。這是由于更深的網(wǎng)絡(luò)具有更多的網(wǎng)絡(luò)參數(shù),需求更大的數(shù)據(jù)量,圖像增強一定程度上是等效數(shù)據(jù)量的增大,并且在引入殘差結(jié)構(gòu)后解決了模型的退化問題,其映射對最終檢測輸出的變化更敏感,因此,ResNet101網(wǎng)絡(luò)檢測效果提升明顯。此外,由于遷移學(xué)習(xí)的本質(zhì)就是在原有網(wǎng)絡(luò)模型已有的基礎(chǔ)上做網(wǎng)絡(luò)層數(shù)的凍結(jié)及對參數(shù)更精細(xì)的調(diào)整,因此,降低學(xué)習(xí)率后能夠進(jìn)行更為精細(xì)的參數(shù)學(xué)習(xí)。本研究中,降低學(xué)習(xí)率至10-4后檢測效果有進(jìn)一步提高,其中VGG16網(wǎng)絡(luò)的mAP達(dá)到0.821,而更深的ResNet101網(wǎng)絡(luò)則能夠達(dá)到0.917。
表2 不同處理方法下水下拍攝魚類圖片檢測mAP結(jié)果
為對VGG16和ResNet101兩種網(wǎng)絡(luò)的魚類檢測效果進(jìn)行無偏估計,使用與魚類圖像訓(xùn)練集、驗證集都互斥的測試集測試網(wǎng)絡(luò)。訓(xùn)練與測試時的參數(shù)設(shè)置及訓(xùn)練時間見表3,檢測結(jié)果見表4。
表3 網(wǎng)絡(luò)訓(xùn)練與檢測參數(shù)、方式、時間
表4 水下魚類圖像測試集檢測結(jié)果Tab.4 Detection results of underwater fish image test set
使用基于Haar-like特征的Adaboost傳統(tǒng)水下圖像魚類檢測方法[21],在本文魚類監(jiān)測數(shù)據(jù)集中檢測準(zhǔn)確率僅為75%,其對于復(fù)雜水下環(huán)境有較差的魯棒性,而使用Faster R-CNN目標(biāo)檢測算法的兩種模型準(zhǔn)確率比Adaboost目標(biāo)檢測方法均提高了約20%。同時能夠看出,ResNet101網(wǎng)絡(luò)的查準(zhǔn)率和查全率均優(yōu)于VGG16網(wǎng)絡(luò)(表4),但由于網(wǎng)絡(luò)深度和結(jié)構(gòu)存在一定差別,特別是ResNet101引入了殘差結(jié)構(gòu),能夠大幅加速訓(xùn)練與檢測。在使用一塊顯存為11 GB的NVIDIA GTX1080Ti顯卡預(yù)熱后,ResNet101網(wǎng)絡(luò)檢測一張圖片比VGG-16網(wǎng)絡(luò)要節(jié)省大約76 ms。但VGG16的功耗與內(nèi)存需求相對于ResNet101網(wǎng)絡(luò)較低,這與其較慢的推理時間相關(guān),因此,如果對魚類圖像檢測精度的要求不高,在電池及硬件資源等設(shè)備有限制的情況下,可選擇VGG-16網(wǎng)絡(luò)。VGG-16網(wǎng)絡(luò)雖相對ResNet101網(wǎng)絡(luò)檢測耗時較長,但仍能滿足魚類圖像快速檢測的要求。
在輸出檢測結(jié)果前,網(wǎng)絡(luò)會依據(jù)score閾值進(jìn)行判斷,然后丟棄結(jié)果小于score閾值的目標(biāo),保留大于score閾值的目標(biāo)。如圖7所示,對于ResNet101網(wǎng)絡(luò),隨著score閾值的增加,查準(zhǔn)率基本是以線性方式增長,而查全率先是一定程度的緩慢下滑,然后急劇下降;而對于F1度量而言,當(dāng)score閾值小于0.90時,F(xiàn)1度量隨著score閾值的增大先緩慢升高,然后又平穩(wěn)下降,幅度較??;但當(dāng)socre閾值大于0.90之后,查全率下降迅速,由于其查準(zhǔn)率始終保持在較高的水平,波動幅度較小,所以此時查全率對F1度量影響較大,在score閾值為0.30時,其值約為0.975。
圖7 不同score閾值對水下魚類圖像檢測結(jié)果的影響Fig.7 Effects of different score thresholds on the detection results of underwater fish images
圖8為ResNet101網(wǎng)絡(luò)最終的檢測結(jié)果,可以看出,對水下魚類圖像增強后的圖片檢測效果令人滿意,無論是在魚類游動速度較快的情況下拍攝的帶有殘影的模糊魚類圖像,還是在水下環(huán)境對比度較差、魚類密集甚至重疊的情況下,ResNet101網(wǎng)絡(luò)均能夠較為精準(zhǔn)全面地檢測出魚類目標(biāo)。相較于傳統(tǒng)機器學(xué)習(xí)提取魚類特征的方法,本研究中所采用的Faster R-CNN方法無須人工設(shè)計魚類特征的提取規(guī)則,檢測網(wǎng)絡(luò)可以自動挖掘出魚類信息,從中提取出高區(qū)分度、高聚類、低耦合的魚類特征。通過二次遷移學(xué)習(xí)的方法解決了水下魚類數(shù)據(jù)集不足的問題,網(wǎng)絡(luò)的查準(zhǔn)率與查全率也都得到了不同程度的提高,并且隨著以后水下魚類圖像數(shù)據(jù)的搜集與擴(kuò)充,該網(wǎng)絡(luò)依然能夠繼續(xù)提高檢測精度,傳統(tǒng)機器學(xué)習(xí)方法不具備的此優(yōu)點,這對水下魚類檢測具有重要意義。
圖8 ResNet101增強前(A)、增強后(B)水下拍攝魚類數(shù)據(jù)集的對比Fig.8 Comparison of underwater fish data sets before(A) and after(B) ResNet101 enhancement
(1)本文中首先完成了ImageNet超大規(guī)模數(shù)據(jù)集到大規(guī)模Open Images中高清魚類數(shù)據(jù)集的一次遷移學(xué)習(xí),實現(xiàn)了對Open Images中高清魚類目標(biāo)的有效檢測。在VGG-16上的查全率、查準(zhǔn)率、F1度量及檢測耗時分別為0.948、0.852、0.897、183 ms,在ResNet101上則分別為0.959、0.911、0.934、108 ms。
(2)然后完成了大規(guī)模高清魚類數(shù)據(jù)集到小規(guī)模水下拍攝魚類數(shù)據(jù)集的二次遷移學(xué)習(xí),并對水下拍攝圖像使用MSRCR算法進(jìn)行數(shù)據(jù)增強,以便二次遷移學(xué)習(xí)的高效進(jìn)行。在VGG-16上的查全率、查準(zhǔn)率、F1度量及檢測耗時分別為0.949 6、0.929 9、0.939 6、172 ms,在ResNet101上則分別為0.981 2、0.950 8、0.965 8、96 ms。
(3)在不同圖像增強算法對比上,Brightness增強算法在VGG16與ResNet101網(wǎng)絡(luò)的mAP分別為0.772、0.824,而MSRCR算法則分別是0.813、0.902,高下立判,MSRCR算法具有明顯優(yōu)勢。同時,進(jìn)行二次遷移學(xué)習(xí)后,相較于一次遷移學(xué)習(xí),在VGG16與ResNet101兩種網(wǎng)絡(luò)的mAP結(jié)果上分別提升了0.056與0.012。
(4)不同score閾值對ResNet101網(wǎng)絡(luò)檢測魚類圖像結(jié)果影響較大,隨著score閾值增加,查準(zhǔn)率基本呈線性增長,而查全率先輕微下滑再急劇下降。而對于F1度量而言,當(dāng)score閾值小于0.90時,對F1度量影響較小,但當(dāng)socre閾值大于0.90時,對F1度量影響較大,在score閾值為0.30時,其值約為0.975。
本研究表明,該網(wǎng)絡(luò)具有較高的檢測精度并可以滿足水下魚類目標(biāo)的快速檢測需求,具有較強的工程應(yīng)用參考價值。下一步的工作將在水下魚類成功檢測的基礎(chǔ)上,對水下魚類進(jìn)行分類識別,從而實現(xiàn)對水下魚類豐富度的檢測,繼續(xù)為海底魚類等生物資源的檢測、保護(hù),以及可持續(xù)開發(fā)等方面提供一定的技術(shù)支持。