閆黨康
(北方工業(yè)大學(xué)信息學(xué)院 北京 100144)
魚(yú)類(lèi)是水體資源及水下生態(tài)系統(tǒng)的重要組成部分,合理開(kāi)發(fā)和利用魚(yú)類(lèi)資源對(duì)于水體生態(tài)保護(hù)和漁業(yè)資源的可持續(xù)利用進(jìn)而實(shí)現(xiàn)社會(huì)經(jīng)濟(jì)的可持續(xù)發(fā)展發(fā)展具有重要意義。而深度學(xué)習(xí)是近年來(lái)興起的主流的人工智能技術(shù)之一,在圖像識(shí)別中的優(yōu)勢(shì)尤其突出,因此,基于深度學(xué)習(xí)技術(shù)開(kāi)展水下魚(yú)類(lèi)識(shí)別的研究具有重要的學(xué)術(shù)價(jià)值和社會(huì)經(jīng)濟(jì)價(jià)值。
傳統(tǒng)的魚(yú)類(lèi)識(shí)別方法大多基于特定環(huán)境下的魚(yú)類(lèi)采用人工設(shè)計(jì)的特征使用圖像識(shí)別方法進(jìn)行分類(lèi),具有一定的局限性。由于人工設(shè)計(jì)的特征具有強(qiáng)烈的主觀性,識(shí)別效果的優(yōu)劣取決于人工設(shè)計(jì)的特征是否合理,因此,對(duì)于特定的數(shù)據(jù)集和識(shí)別任務(wù),人工設(shè)計(jì)的低級(jí)特征能在一定程度下獲得良好的性能,但隨著數(shù)據(jù)集的增長(zhǎng),基于人工設(shè)計(jì)特征的傳統(tǒng)魚(yú)類(lèi)識(shí)別方法的泛化能力迅速飽和,不僅復(fù)雜度高、魯棒性差,且產(chǎn)生大量的候選冗余區(qū)域[1]。
2012 年,Krizhevsky 等[2]提出了一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的AlexNet 算法,該方法使用仿生視覺(jué)細(xì)胞的局部感受野等手段解決了圖像處理的難題,并在ImageNet 競(jìng)賽中獲勝。2014 年,Girshick等[3]提出了基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò),它結(jié)合選擇性搜索(Selective Search)、卷積神經(jīng)網(wǎng)絡(luò)等方法進(jìn)行候選區(qū)域生成、特征提取、位置修正,提高了目標(biāo)檢測(cè)效果,改變了目標(biāo)檢測(cè)領(lǐng)域的研究思路。受此啟發(fā),特征提取網(wǎng)絡(luò)、特征表示器和檢測(cè)框架相繼出現(xiàn)。目前的深度學(xué)習(xí)目標(biāo)檢測(cè)算法可以劃分為兩類(lèi)[4]:1)一步(one-stage)目標(biāo)檢測(cè)算法,這類(lèi)檢測(cè)算法不需要生成候選區(qū)域(region proposal)階段,即僅通過(guò)一步均勻在特征圖(feature map)上進(jìn)行密集抽樣,產(chǎn)生大量的先驗(yàn)框(prior box),然后進(jìn)行分類(lèi)和回歸,因此在檢測(cè)速度上相對(duì)較快,代表算法有YOLO[5~8]、SSD[9]等;其中YOLO 算法是將原始輸入圖片進(jìn)行分割成網(wǎng)格進(jìn)而得到預(yù)測(cè)結(jié)果,SSD算法利用了多尺度的特征圖相融合的方法消除冗余得到預(yù)測(cè)結(jié)果。2)兩步(two-stage 目標(biāo)檢測(cè)算法,這類(lèi)檢測(cè)算法將檢測(cè)問(wèn)題劃分為兩步,首先,產(chǎn)生包含目標(biāo)位置信息的候選區(qū)域(region proposals),然后,對(duì)候選區(qū)域進(jìn)行分類(lèi)和位置精修。因此在檢測(cè)精度上優(yōu)勢(shì)顯著,代表算法有更快的區(qū)域卷積神經(jīng)網(wǎng)絡(luò)[10],該算法將特征提?。╢eature extraction),區(qū)域(proposal)提取,邊界框回歸(bounding box regression),分類(lèi)(classification)整合在一個(gè)卷積神經(jīng)網(wǎng)絡(luò)中,使得檢測(cè)性能大大提高。
深度學(xué)習(xí)目標(biāo)檢測(cè)算法在諸多領(lǐng)域中廣泛應(yīng)用,例如交通中的“車(chē)輛檢測(cè)”[11],人臉識(shí)別中的“多姿態(tài)識(shí)別”[12],行人檢測(cè)中的“細(xì)粒度識(shí)別”[13]等任務(wù)均獲得進(jìn)展。不同于以上類(lèi)型的識(shí)別目標(biāo),魚(yú)類(lèi)圖像為水下拍攝所得,受光照、水質(zhì)等因素的影響,圖像質(zhì)量較低,難以針對(duì)魚(yú)類(lèi)目標(biāo)進(jìn)行精確地候選框生成,并將對(duì)目標(biāo)的分類(lèi)定位任務(wù)造成一定的影響。因此,本文采用基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,提出將Mask R-CNN 結(jié)構(gòu)應(yīng)用到魚(yú)類(lèi)識(shí)別中并加以改進(jìn),主要工作包含以下幾個(gè)部分:
1)數(shù)據(jù)集的獲取與打標(biāo)階段,選擇Fish4knowledge 魚(yú)類(lèi)數(shù)據(jù)庫(kù)并利用VIA 圖像打標(biāo)工具進(jìn)行標(biāo)注,采用翻轉(zhuǎn)、剪切等幾何變換方式對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)充,實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)。
2)候選區(qū)域生成階段,采用改進(jìn)的Soft NMS替代非極大值抑制(Non Maximum Suppression,NMS)進(jìn)行感興趣區(qū)域(Region of Interest,RoI)的后處理,以降低置信度進(jìn)而提升準(zhǔn)確率。
3)分類(lèi)回歸階段,在頭部網(wǎng)絡(luò)中添加級(jí)聯(lián)結(jié)構(gòu),針對(duì)邊界框(bounding box)遞增地調(diào)用多個(gè)IOU 閾值以區(qū)分真實(shí)邊框(ground-truth bounding box)和預(yù)測(cè)框(predicted bounding box)。
本文采用Mask R-CNN 算法實(shí)現(xiàn)對(duì)魚(yú)類(lèi)進(jìn)行識(shí)別,網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。首先,使用深度殘差網(wǎng)絡(luò)(Deep Residual Network,ResNet)[14]和特征金字塔(Feature Pyramid Network,F(xiàn)PN)[15]進(jìn)行特征提取以生成特征圖(feature map)和感興趣區(qū)域;其次,輸入到區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN)中進(jìn)行二值分類(lèi)(前景或背景)和邊界框回歸,過(guò)濾掉一部分候選的感興趣區(qū)域;然后,對(duì)感興趣區(qū)域進(jìn)行雙線性插值操作(RoIAlign)操作解決特征圖和原始圖像上感興趣區(qū)域的不對(duì)準(zhǔn)問(wèn)題;最后,將感興趣區(qū)域全連接網(wǎng)絡(luò)中同時(shí)進(jìn)行分類(lèi)和回歸。
圖1 Mask R-CNN結(jié)構(gòu)
在Mask R-CNN算法頭部網(wǎng)絡(luò)的訓(xùn)練環(huán)節(jié),使用RoIAlign 替代全連接層操作,可以實(shí)現(xiàn)輸入與輸出像素的一一對(duì)應(yīng),即對(duì)每一個(gè)類(lèi)輸出一張?zhí)卣鲌D,并采用平均二進(jìn)制交叉熵?fù)p失函數(shù)替代全連接層中的Softmax 損失函數(shù)進(jìn)行訓(xùn)練。因此,Mask R-CNN 算法對(duì)感興趣區(qū)域的多任務(wù)損失函數(shù)可以定義為[16]
骨干網(wǎng)絡(luò)(backbone network)是用于提取圖像特征圖的一系列卷積層,如VGG、GoogLeNet、ResNet101 等[4]。深層的網(wǎng)絡(luò)有利于進(jìn)行復(fù)雜的特征提取,同時(shí)會(huì)出現(xiàn)梯度爆炸和模型退化等問(wèn)題。為了解決這一問(wèn)題,采用ResNet 進(jìn)行特征提取。殘差網(wǎng)絡(luò)單元如圖2所示。
圖2 殘差網(wǎng)絡(luò)單元
殘差單元可以表示為
其中Xl和Xl+1分別表示的是第L個(gè)殘差單元的輸入和輸出,F(xiàn)是殘差函數(shù),表示學(xué)習(xí)到的殘差,而h(xl)=xl表示恒等映射,f是ReLU激活函數(shù)。
在ResNet中有兩種實(shí)現(xiàn)策略:
1)采用零填充(zero-padding)增加維度,采用步距為2 的池化(pooling)進(jìn)行下采樣以減少參數(shù)量;
2)采用新的映射(projection shortcut),短路連接使用恒等映射替代1×1 的卷積操作,避免了參數(shù)量和計(jì)算量的增加。
遷移學(xué)習(xí)指的是將已訓(xùn)練好的模型參數(shù)遷移到新的模型中來(lái)幫助模型訓(xùn)練[17~18]。遷移學(xué)習(xí)不僅能夠快速地訓(xùn)練出一個(gè)相對(duì)理想的實(shí)驗(yàn)?zāi)P?,也可以在?shù)據(jù)集量不充足時(shí)學(xué)習(xí)到更豐富的特征信息。遷移學(xué)習(xí)主要作用在以下三個(gè)方面:初始性能高,學(xué)習(xí)速率塊;模型收斂強(qiáng)。
為了更好地學(xué)習(xí)到魚(yú)類(lèi)圖像的特征信息,提升泛化性能,本文在訓(xùn)練過(guò)程中載入MS-COCO 數(shù)據(jù)集的預(yù)訓(xùn)練權(quán)重訓(xùn)練本文實(shí)驗(yàn)?zāi)P椭械乃袇?shù)。
非極大值抑制算法[19]針對(duì)候選框進(jìn)行如下處理:刪除大于設(shè)定閾值的重疊候選框,保留無(wú)重疊的候選框和低于閾值的重疊候選框。非極大值抑制算法對(duì)不同閾值的候選框處理由公式表示如下:
考慮到非極大值抑制算法直接刪除大于設(shè)定閾值的重疊框?qū)е抡`檢漏檢的問(wèn)題,本文采用改進(jìn)的Soft NMS進(jìn)行替代,即在算法執(zhí)行過(guò)程中摒棄直接刪除感興趣區(qū)域大于設(shè)定閾值的候選框方式,選用降低置信度得分的方式過(guò)濾候選框。由于是在非極大值抑制算法的基礎(chǔ)上進(jìn)行改進(jìn),因此不需要重新訓(xùn)練原有模型即可集成到原識(shí)別任務(wù)中,同時(shí)改進(jìn)的Soft NMS 在閾值重置函數(shù)部分采用與非極大值抑制計(jì)算方式相同的二值化函數(shù)。
此外,改進(jìn)的非極大值抑制算法的計(jì)算方式依據(jù)權(quán)重變量的值分為線性加權(quán)和高斯加權(quán),其計(jì)算公式如下所示:
1)線性加權(quán):
2)高斯加權(quán):
為了判斷候選框的正負(fù)樣本,需要設(shè)定感興趣區(qū)域閾值,感興趣區(qū)域閾值的選擇是影響模型的識(shí)別性能的重要因素:當(dāng)感興趣區(qū)域閾值較高時(shí),正樣本數(shù)量減少,訓(xùn)練階段缺失足夠的正樣本,訓(xùn)練過(guò)程出現(xiàn)過(guò)擬合;當(dāng)感興趣區(qū)域閾值較低時(shí),檢測(cè)器難以鑒別負(fù)樣本和背景圖,導(dǎo)致誤檢情況的出現(xiàn)。同時(shí)訓(xùn)練階段和預(yù)測(cè)識(shí)別的感興趣區(qū)域閾值的不同也將導(dǎo)致識(shí)別目標(biāo)不匹配情況的出現(xiàn)。
因此考慮到在頭部網(wǎng)絡(luò)中加入級(jí)聯(lián)結(jié)構(gòu),即加入一個(gè)多階段檢測(cè)子網(wǎng)絡(luò)對(duì)區(qū)域候選網(wǎng)絡(luò)產(chǎn)生的特征區(qū)域進(jìn)行逐步的微調(diào)。由于采用了多閾值檢測(cè)子網(wǎng)絡(luò)的級(jí)聯(lián)結(jié)構(gòu),級(jí)聯(lián)順序?qū)凑臻撝涤尚〉酱笈帕?,?dāng)感興趣區(qū)域閾值為0.5時(shí),正樣本數(shù)量足夠,保證模型不會(huì)過(guò)擬合,而當(dāng)修正后的感興趣區(qū)域閾值由更高閾值的回歸器進(jìn)行修正時(shí),則能夠大大提高識(shí)別目標(biāo)位置的準(zhǔn)確性。通過(guò)添加級(jí)聯(lián)機(jī)構(gòu)解決了傳統(tǒng)單個(gè)網(wǎng)絡(luò)設(shè)定閾值時(shí)出現(xiàn)正樣本數(shù)量不夠以及候選區(qū)域修正效果不佳之間的矛盾。
本文的實(shí)驗(yàn)配置為運(yùn)行環(huán)境Anaconda3,編程語(yǔ)言Python3.6,深度學(xué)習(xí)框架TensorFlow1.4.0,keras2.1.6,CPU 為AMD R7,GPU 為GTX1650,CUDA9.0,模型參數(shù)初始化采用MS COCO 預(yù)訓(xùn)練權(quán)重。
基于深度學(xué)習(xí)的魚(yú)類(lèi)識(shí)別需要大量的數(shù)據(jù)集進(jìn)行訓(xùn)練學(xué)習(xí)識(shí)別目標(biāo)的特征信息,因此,本文從典型的Fish4knowledge 數(shù)據(jù)庫(kù)中進(jìn)行選取制作實(shí)驗(yàn)數(shù)據(jù)集,該數(shù)據(jù)庫(kù)從實(shí)時(shí)視頻數(shù)據(jù)集中獲取到魚(yú)類(lèi)圖像數(shù)據(jù),共得到27370 張魚(yú)類(lèi)圖像,劃分為23種魚(yú)類(lèi),數(shù)據(jù)顯示不同魚(yú)類(lèi)之間的數(shù)據(jù)量不平衡,其中最常見(jiàn)的物種約是最不常見(jiàn)物種的1000倍。
數(shù)據(jù)集制作過(guò)程采用VIA 圖像打標(biāo)工具進(jìn)行標(biāo)注以制作成標(biāo)準(zhǔn)的MS-COCO 數(shù)據(jù)集。首先,定義實(shí)驗(yàn)數(shù)據(jù)集中的魚(yú)類(lèi)相應(yīng)的屬性值;其次,針對(duì)圖像中的魚(yú)使用多邊形工具進(jìn)行打標(biāo);最后,將所有標(biāo)注好的魚(yú)類(lèi)信息導(dǎo)出成json 文件以備實(shí)驗(yàn)?zāi)P驼{(diào)用。
為了減少訓(xùn)練時(shí)間,提高實(shí)驗(yàn)?zāi)P途?,本文采用MS-COCO 數(shù)據(jù)集預(yù)訓(xùn)練權(quán)重進(jìn)行遷移學(xué)習(xí),MS-COCO 數(shù)據(jù)集的預(yù)訓(xùn)練權(quán)重中包含80 類(lèi)對(duì)象特征信息,有助于加速訓(xùn)練實(shí)驗(yàn)?zāi)P?,學(xué)習(xí)識(shí)別目標(biāo)特征信息。在預(yù)訓(xùn)練階段,骨干網(wǎng)絡(luò)選擇使用ResNet101 深度殘差神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,訓(xùn)練過(guò)程中設(shè)定為30 個(gè)epoch,每個(gè)epoch 設(shè)置為100step。
目標(biāo)識(shí)別算法性能的通用評(píng)價(jià)指標(biāo)可分為:交叉點(diǎn)聯(lián)合(Intersection Over Union,IOU)、平均精度(average precision)、平均精度均值(mAP)、準(zhǔn)確率(precision)、召回率(recall)[14]。其中交叉點(diǎn)聯(lián)合的度量值用來(lái)評(píng)估識(shí)別目標(biāo)的定位效果,表示為預(yù)測(cè)框(predicted bounding box)和地面真實(shí)框(ground truth bounding box)中包含的重疊區(qū)域與聯(lián)合區(qū)域的比值:
平均精度是衡量類(lèi)別精度的指標(biāo),平均精度均值是所有類(lèi)別的平均精度的平均值,準(zhǔn)確率定義為正樣本(TP)與預(yù)測(cè)負(fù)樣本總數(shù)的比率,召回率定義為預(yù)測(cè)出所有正樣本的概率。平均精度(AP)、準(zhǔn)確率(precision)、召回率(recall)的計(jì)算公式如下:
其中,TP(True Positive)表示預(yù)測(cè)為正的正樣本,F(xiàn)P(False Positive)表示預(yù)測(cè)為正的負(fù)樣本,F(xiàn)N(False Negative)表示預(yù)測(cè)為負(fù)的正樣本,TN(True Negative)表示預(yù)測(cè)為負(fù)的負(fù)樣本。
3.5.1 實(shí)驗(yàn)數(shù)據(jù)的可視化效果
本文實(shí)驗(yàn)數(shù)據(jù)的可視化效果如圖3 所示。從實(shí)驗(yàn)數(shù)據(jù)集中隨機(jī)選取一張未經(jīng)過(guò)處理的魚(yú)類(lèi)圖像與經(jīng)過(guò)改進(jìn)的Mask R-CNN 算法處理后的識(shí)別效果相對(duì)比,可以發(fā)現(xiàn)圖中的單位魚(yú)類(lèi)被清晰地識(shí)別并作為前景目標(biāo)像素級(jí)地分割出來(lái)。
圖3 可視化效果
3.5.2 數(shù)據(jù)增強(qiáng)對(duì)比實(shí)驗(yàn)
本文采用的Fish4knowledge 數(shù)據(jù)集呈現(xiàn)長(zhǎng)尾數(shù)據(jù)特征,不同魚(yú)類(lèi)的數(shù)據(jù)量呈現(xiàn)較大差異(約1000 倍),為了學(xué)習(xí)到數(shù)據(jù)體量較少的魚(yú)類(lèi)更加豐富的特征信息,提高實(shí)驗(yàn)?zāi)P偷淖R(shí)別精度和泛化能力,本文采用翻轉(zhuǎn)、旋轉(zhuǎn)、裁剪、顏色亮度變化等數(shù)據(jù)增強(qiáng)的方法對(duì)訓(xùn)練過(guò)程中的魚(yú)類(lèi)數(shù)據(jù)進(jìn)行合理的擴(kuò)充,如圖4所示。
圖4 圖像數(shù)據(jù)增強(qiáng)示例
根據(jù)表1 的結(jié)果可知,當(dāng)訓(xùn)練集經(jīng)過(guò)數(shù)據(jù)增強(qiáng)的方式從1771 張魚(yú)類(lèi)圖像增加到5313 張圖像后,魚(yú)類(lèi)識(shí)別的精度提高了10.1%。因此,對(duì)長(zhǎng)尾數(shù)據(jù)集進(jìn)行合理的數(shù)據(jù)增強(qiáng)處理,可以幫助實(shí)驗(yàn)?zāi)P统浞值貙W(xué)習(xí)到識(shí)別目標(biāo)豐富的特征信息,幫助實(shí)驗(yàn)?zāi)P吞岣咦R(shí)別性能,同時(shí)以下對(duì)比實(shí)驗(yàn)均在數(shù)據(jù)增強(qiáng)的基礎(chǔ)上進(jìn)行。
表1 數(shù)據(jù)增強(qiáng)實(shí)驗(yàn)對(duì)比
3.5.3 采用不同策略訓(xùn)練網(wǎng)絡(luò)的對(duì)比實(shí)驗(yàn)
為了驗(yàn)證本文所提出方法的有效性,分別采用不同策略對(duì)Mask R-CNN 進(jìn)行訓(xùn)練預(yù)測(cè),實(shí)驗(yàn)結(jié)果如表2所示。原始Mask R-CNN算法中使用非極大值抑制進(jìn)行后處理來(lái)篩選感興趣區(qū)域;通過(guò)分析Mask R-CNN 的算法流程和非極大值抑制算法針對(duì)感興趣區(qū)域的處理方法,本文采用改進(jìn)的Soft NMS對(duì)重疊候選框下的魚(yú)類(lèi)目標(biāo)進(jìn)行識(shí)別,實(shí)驗(yàn)結(jié)果表明:針對(duì)重疊候選框選用改進(jìn)的Soft NMS進(jìn)行后處理可使平均精度均值提升1.9%;同時(shí),考慮到感興趣區(qū)域閾值的選取對(duì)Mask R-CNN 算法的分類(lèi)效果的因素影響,在頭部網(wǎng)絡(luò)中添加級(jí)聯(lián)結(jié)構(gòu),遞增的調(diào)用上一階段學(xué)習(xí)的感興趣區(qū)域閾值,實(shí)驗(yàn)結(jié)果表明:采用級(jí)聯(lián)結(jié)構(gòu)解決感興趣區(qū)域閾值問(wèn)題,可以使平均檢測(cè)精度提升3.6%,充分地提高了魚(yú)類(lèi)識(shí)別精度。實(shí)驗(yàn)對(duì)比結(jié)果如表2所示。
表2 對(duì)比實(shí)驗(yàn)?zāi)P徒Y(jié)果
本文以Mask R-CNN 為基礎(chǔ)的目標(biāo)識(shí)別框架,使用深度殘差神經(jīng)網(wǎng)絡(luò)和特征金字塔進(jìn)行圖像的特征提取,采用區(qū)域候選網(wǎng)絡(luò)生成候選區(qū)域,采用Soft NMS 對(duì)候選區(qū)域進(jìn)行后處理減少誤檢率,并在頭部網(wǎng)絡(luò)中添加級(jí)聯(lián)結(jié)構(gòu)遞增的調(diào)用感興趣區(qū)域閾值來(lái)保證目標(biāo)識(shí)別的準(zhǔn)確率,大幅提高了魚(yú)類(lèi)識(shí)別的平均精度和平均精度均值。但本文對(duì)于魚(yú)類(lèi)識(shí)別的檢測(cè)速度低于單步檢測(cè)器的檢測(cè)速度,因此,接下來(lái)的研究工作將集中在提升模型檢測(cè)速度。同時(shí)伴隨著深度學(xué)習(xí)研究成果的不斷融入,優(yōu)秀的特征提取網(wǎng)絡(luò)和檢測(cè)框架相繼出現(xiàn),未來(lái)將對(duì)其進(jìn)行更深一步的探討。