劉建明, 劉 煌
(桂林電子科技大學(xué) 計(jì)算機(jī)與信息安全學(xué)院,廣西 桂林 541004)
利用人工智能對(duì)魚類識(shí)別可以替代利用聲吶的方法,減少對(duì)魚類的傷害,然后通過(guò)直接分析觀測(cè)代替出海調(diào)研,不僅保持獲得數(shù)據(jù)的實(shí)時(shí)性,還加速了科研的進(jìn)展。同時(shí),精準(zhǔn)有效的魚類識(shí)別能夠幫助相關(guān)科研人員了解其分布情況,節(jié)省大量人力物力,對(duì)漁業(yè)資源開發(fā)利用具有重大的學(xué)術(shù)價(jià)值和經(jīng)濟(jì)價(jià)值。
以往傳統(tǒng)的方法是從魚類圖像中提取人工設(shè)置的特征,再將提取到的特征向量輸入分類器進(jìn)行訓(xùn)練和識(shí)別。然而,傳統(tǒng)方法的性能取決于手工特征的選擇、制作是否合理,不僅耗時(shí)耗力,而且泛化能力較弱,分類精度不高。近年來(lái),隨著深度學(xué)習(xí)的快速發(fā)展,Ding等[1]通過(guò)改變網(wǎng)絡(luò)結(jié)構(gòu)的深度,設(shè)計(jì)了3種簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)(CNN)結(jié)構(gòu)對(duì)魚類進(jìn)行識(shí)別;Qin等[2]提出了一個(gè)5層的深度魚類識(shí)別網(wǎng)絡(luò),前幾層由卷積層、非線性層、特征池化層、空間金字塔池化層構(gòu)成,最后采用支持向量機(jī)(SVM)進(jìn)行分類。但此類網(wǎng)絡(luò)結(jié)構(gòu)相對(duì)簡(jiǎn)單,不能很好地提取魚類圖像細(xì)節(jié)特征,仍需進(jìn)一步改善。
鑒于生成對(duì)抗網(wǎng)絡(luò)能夠通過(guò)原始數(shù)據(jù)生成偽魚類樣本,大大增加了魚類樣本,從而有效地提升了模型的泛化性;雙線性網(wǎng)絡(luò)通過(guò)點(diǎn)積融合2個(gè)卷積神經(jīng)網(wǎng)絡(luò)的特征圖,使網(wǎng)絡(luò)對(duì)魚類的細(xì)節(jié)部位掌握得更精準(zhǔn)(如魚身或魚尾)。因此,基于對(duì)對(duì)抗雙線性的細(xì)粒度魚類圖像網(wǎng)絡(luò)(generative adversarial bilinear fish net,簡(jiǎn)稱 GBN)對(duì)細(xì)粒度魚類圖像進(jìn)行分類。
GBN模型框架如圖1所示,主要由2大模塊組成:
1)生成對(duì)抗網(wǎng)絡(luò)。該模塊主要用來(lái)生成偽魚類數(shù)據(jù)。
2)雙線性網(wǎng)絡(luò)。通過(guò)融合2個(gè)CNN網(wǎng)絡(luò)的特征圖作為最終的雙線性特征,融合后的特征圖對(duì)圖像特定部位有較強(qiáng)的響應(yīng),因此能夠高效準(zhǔn)確地識(shí)別魚類物種。
圖1 GBN模型框架
自注意力生成對(duì)抗網(wǎng)絡(luò)[3](self-attention generative adversarial network,簡(jiǎn)稱SAGAN)是在傳統(tǒng)的GAN[4]上引入自注意力機(jī)制,通過(guò)自注意力機(jī)制驅(qū)動(dòng)的遠(yuǎn)程依賴來(lái)建模,獲取所有的要素點(diǎn),生成高分辨率的細(xì)節(jié),同時(shí)加入光譜歸一化來(lái)提升訓(xùn)練強(qiáng)度。自注意力模塊以卷積神經(jīng)網(wǎng)絡(luò)創(chuàng)建的特征圖作為輸入,并將它們轉(zhuǎn)化為3個(gè)特征空間,分別是key:f(x)、value:h(x)、 query:g(x);用3個(gè)1×1的卷積進(jìn)行線性變換和通道壓縮,將f(x)和g(x)重設(shè)為矩陣形式,再轉(zhuǎn)置相乘,對(duì)得到的結(jié)果采用Softmax轉(zhuǎn)化,生成圖像中被關(guān)注區(qū)域的注意力圖,
(1)
注意力圖與h(x)相乘得到注意力特征圖,
(2)
將原始輸入特征圖和縮放的自注意力圖相加來(lái)計(jì)算輸出。注意力模塊如圖2所示,其計(jì)算公式為
yi=γoi+xi,
(3)
其中縮放參數(shù)γ在開始時(shí)被初始化為0,讓網(wǎng)絡(luò)在開始時(shí)首先關(guān)注局部信息。當(dāng)參數(shù)γ在訓(xùn)練過(guò)程中進(jìn)行更新時(shí),網(wǎng)絡(luò)就會(huì)逐漸學(xué)習(xí)注意一幅圖像的非局部區(qū)域。
圖2 SAGAN的注意力機(jī)制
SAGAN還對(duì)生成器和判別器采用譜一化來(lái)穩(wěn)定訓(xùn)練及提升生成的圖片質(zhì)量。在用SAGAN對(duì)魚類圖像訓(xùn)練時(shí),由于單類圖像樣本較少,且一些類圖像之間具有較大相似性,全部一起訓(xùn)練的效果會(huì)產(chǎn)生較大誤差,采用對(duì)每類別單獨(dú)訓(xùn)練。在訓(xùn)練過(guò)程中,每隔50個(gè)epoch輸出生成的偽魚類圖像,觀察其圖像質(zhì)量,判斷是否達(dá)到收斂。經(jīng)實(shí)驗(yàn)驗(yàn)證,一般訓(xùn)練范圍為500~800輪效果最佳。
雙線性網(wǎng)絡(luò)(BCNN)應(yīng)用VGG-16[5]網(wǎng)絡(luò)作為基準(zhǔn)網(wǎng)絡(luò),本研究用2個(gè)VGG-16網(wǎng)絡(luò)對(duì)魚類圖像進(jìn)行特征提取,將提取到的特征圖轉(zhuǎn)置后與原特征圖做點(diǎn)積運(yùn)算,得到雙線性特征,最后將其輸送到分類器進(jìn)行分類。
BCNN網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。雙線性模型M可表示為M=(fA;fB;P;C)。其中:fA、fB分別為卷積網(wǎng)絡(luò)A和卷積網(wǎng)絡(luò)B的特征提取函數(shù);P為池化函數(shù);C為分類函數(shù)。
圖3 BCNN的網(wǎng)絡(luò)結(jié)構(gòu)
特征提取函數(shù)f(·)由卷積層、池化層和激活函數(shù)相互作用構(gòu)成,可看作一個(gè)函數(shù)映射f:L×I→RK×D,將輸入圖像i∈I與位置區(qū)域l∈L映射為單維特征,K為特征圖的通道數(shù),D為每個(gè)通道的特征圖展開的一維特征向量的大小。通過(guò)雙線性操作對(duì)2個(gè)特征提取函數(shù)輸出的特征圖進(jìn)行聚合, 得到一個(gè)雙線性特征:
B(l,i,fA,fB)=fA(l,i)TfB(l,i)。
(4)
池化函數(shù)P將所有位置的雙線性特征進(jìn)行累加操作,則圖像的全局特征可表示為
(5)
雙線性網(wǎng)絡(luò)模型對(duì)于細(xì)粒度圖像分類效果是顯著的。一方面,CNN網(wǎng)絡(luò)經(jīng)過(guò)不斷迭代訓(xùn)練,去除圖像中的復(fù)雜背景,獲得高層語(yǔ)義特征;另一方面,更為關(guān)鍵的是,卷積網(wǎng)絡(luò)A和卷積網(wǎng)絡(luò)B可起到相互協(xié)調(diào)的作用,卷積網(wǎng)絡(luò)A檢測(cè)到圖像中物體的位置,而卷積網(wǎng)絡(luò)B對(duì)卷積網(wǎng)絡(luò)A檢測(cè)到的物體提取特征。通過(guò)這種方式,2個(gè)網(wǎng)絡(luò)的相互配合能夠更好地對(duì)魚類的特征點(diǎn)(如魚身與魚尾)進(jìn)行響應(yīng),以達(dá)到更好的識(shí)別效果。BCNN的特征圖可視化如圖4所示。從圖4可看出,BCNN能夠一步步找到其關(guān)注特征點(diǎn)。
圖4 BCNN的特征圖可視化
離群值標(biāo)簽平滑正則化(label smoothing regularization for outliers,簡(jiǎn)稱LSRO)方法[6]為無(wú)標(biāo)簽的圖片分配了一個(gè)均勻分布的標(biāo)簽,在形式上對(duì)應(yīng)于生成的圖像,其類標(biāo)簽分布定義為
(6)
將其應(yīng)用到損失計(jì)算中,交叉熵?fù)p失為
(7)
對(duì)于真實(shí)的訓(xùn)練圖像,Z=0,對(duì)于生成的訓(xùn)練圖像,Z=1,則有真實(shí)的圖像、生成的圖像共2種類型的損失。
利用LSRO,可以處理樣本空間中位于真實(shí)訓(xùn)練圖像附近的更多訓(xùn)練圖像(離群值),并引入更多的顏色、光照和姿態(tài)方差來(lái)調(diào)整模型。若在訓(xùn)練集中只有一類綠色的魚類樣本,則網(wǎng)絡(luò)可能會(huì)被誤導(dǎo),認(rèn)為綠色是一個(gè)鑒別特征,這限制了模型的鑒別能力。通過(guò)添加生成的訓(xùn)練樣本,如一個(gè)未標(biāo)記的綠色魚類,若分類器對(duì)該標(biāo)記的綠色魚類做出了錯(cuò)誤預(yù)測(cè),則會(huì)受到懲罰。通過(guò)這種方式,鼓勵(lì)網(wǎng)絡(luò)尋找更多的潛在原因,減少過(guò)度擬合的傾向。
采用公開Fish100數(shù)據(jù)集評(píng)估GBN模型,該數(shù)據(jù)集中包含100種類別的魚類,共有6 358張魚類圖像,每張圖像分辨率不一樣。數(shù)據(jù)分割方式按照文獻(xiàn)[7]的方式進(jìn)行劃分,4/5作為訓(xùn)練集,1/5作為測(cè)試集。
1)SAGAN訓(xùn)練和測(cè)試。本階段使用原始訓(xùn)練集中提供的數(shù)據(jù)進(jìn)行訓(xùn)練,未進(jìn)行預(yù)處理。在訓(xùn)練時(shí),所有的圖像大小都調(diào)整為64×64,生成器和判別器采用Adam優(yōu)化器,其參數(shù)設(shè)置為betas=(0.0,0.9),生成器的學(xué)習(xí)率為0.000 1,判別器的學(xué)習(xí)率為0.000 4,800個(gè)epochs之后停止訓(xùn)練;在測(cè)試時(shí),輸入一個(gè)100維的隨機(jī)向量,每個(gè)條目的取值范圍為[-1,1],模型輸出大小為64×64的偽魚類圖像,用于BCNN訓(xùn)練。SAGAN生成的部分魚類圖像如圖5所示。
圖5 SAGAN生成的部分魚類圖像
2)GBN訓(xùn)練和測(cè)試。將偽魚類圖像與原始魚類圖像的大小調(diào)整為224×224,batch_size設(shè)置為16。訓(xùn)練分為2個(gè)步驟:a)應(yīng)用ImageNet訓(xùn)練好的參數(shù)初始化VGG-16網(wǎng)絡(luò),只微調(diào)最后一層,設(shè)置其學(xué)習(xí)率為0.9,動(dòng)量為0.9,當(dāng)損失達(dá)到收斂極限時(shí),保存模型參數(shù)。b)將學(xué)習(xí)率重新設(shè)置為0.001,繼續(xù)微調(diào)整個(gè)網(wǎng)絡(luò),當(dāng)損失收斂后,保存模型參數(shù)。用測(cè)試集進(jìn)行精度驗(yàn)證。
3)不同數(shù)量的生成圖像訓(xùn)練及測(cè)試。為了比較加入不同數(shù)量的生成圖像對(duì)魚類測(cè)試集準(zhǔn)確度的影響,本實(shí)驗(yàn)設(shè)置了5組不同生成圖像數(shù)量來(lái)訓(xùn)練模型,分別為20 000、15 000、10 000、5 000、2 000張,對(duì)應(yīng)的每個(gè)類別分別為200、150、100、50、20張。
表1為GBN模型與其他模型在Fish100數(shù)據(jù)集上的準(zhǔn)確率。從表1可看出,GBN模型在細(xì)粒度魚類圖像分類上的準(zhǔn)確率優(yōu)于其他模型,比當(dāng)前最好的STB fish-net方法高2.59%,而比BCNN、VGG-16高3.57%和12.2%。從表1還可看出,BCNN方法優(yōu)于VGG-16,表明相比于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò),BCNN方法對(duì)于細(xì)粒度圖像識(shí)別有更佳的表現(xiàn),其提取到的雙線性特征具有更強(qiáng)的區(qū)分性。STB fish-net是在BCNN方法基礎(chǔ)上增加了空間變換,空間變換可幫助網(wǎng)絡(luò)更準(zhǔn)確地關(guān)注到對(duì)圖像分類有明顯區(qū)分特征的特定區(qū)域,同時(shí)還可去除一些復(fù)雜背景的干擾,因此其結(jié)果優(yōu)于BCNN。GBN方法是先用SAGAN方法對(duì)數(shù)據(jù)進(jìn)行擴(kuò)增,再與原數(shù)據(jù)一起進(jìn)行訓(xùn)練。由于魚類品種多,樣本總量又少,平均每個(gè)類別只有60多張圖片,這對(duì)于深度學(xué)習(xí)來(lái)說(shuō)遠(yuǎn)不夠。因此,增加偽魚類圖像可以增強(qiáng)模型的泛化性,減少過(guò)擬合,也能令模型學(xué)到更多的圖像細(xì)節(jié),進(jìn)一步提升魚類識(shí)別精度。
表1 各個(gè)算法準(zhǔn)確率比較 %
不同數(shù)量的生成圖像比較結(jié)果如表2所示。從表2可看出,當(dāng)每類增加100張圖像時(shí),精度達(dá)到了峰值,而當(dāng)增加偽魚類樣本過(guò)少時(shí),精度較低。這是因?yàn)楫?dāng)樣本數(shù)過(guò)少時(shí),LSRO的正則化能力不足。相反,當(dāng)偽魚類圖像過(guò)多時(shí),模型傾向于向所有的訓(xùn)練樣本分配均勻的預(yù)測(cè)概率,這是不可取的。因此,為了避免過(guò)度的正則化和對(duì)標(biāo)簽均勻分布的過(guò)度擬合,每種類別增加100張是最好的。
表2 不同數(shù)量的生成圖像比較結(jié)果
提出了一個(gè)基于對(duì)抗雙線性神經(jīng)網(wǎng)絡(luò)的細(xì)粒度魚類識(shí)別模型。本方法利用生成對(duì)抗網(wǎng)絡(luò)生成偽魚類樣本,與原始魚類樣本一同輸入雙線性網(wǎng)絡(luò)中,增強(qiáng)了網(wǎng)絡(luò)的泛化能力,減少了過(guò)擬合,使得提取到的雙線性特征更加精準(zhǔn)有效,最后將其送進(jìn)分類器分類。通過(guò)在深海魚類圖像數(shù)據(jù)集上的實(shí)驗(yàn)表明,本方法對(duì)細(xì)粒度魚類識(shí)別精度有一定的提高。在未來(lái)的工作中,將繼續(xù)研究視覺質(zhì)量更好的GAN圖像集成到監(jiān)督學(xué)習(xí)中是否會(huì)產(chǎn)生更好的效果。