張 珊,韓 溦,劉薇芳,朱宇鵬
(1.海南大學(xué)旅游學(xué)院,海南 ???570208;2.海南超圖科技有限公司,海南 ???570220)
以往對(duì)于海洋魚類資源監(jiān)測(cè)常通過現(xiàn)場(chǎng)采樣法[1]、漁獲法[2]、水聲學(xué)遙測(cè)等方法,這些方法不同程度地存在依賴專家經(jīng)驗(yàn)、破壞生物資源、無法判斷魚的類型等缺點(diǎn)[3]。得益于數(shù)據(jù)處理技術(shù)、評(píng)價(jià)模型和方法的完善,海洋生物資源監(jiān)測(cè)評(píng)價(jià)步入精準(zhǔn)化、無損化時(shí)代[4]。建立水下視頻深度學(xué)習(xí)系統(tǒng),將是智能化監(jiān)測(cè)海洋魚類資源最為有效的方法。
計(jì)算機(jī)視覺捕捉分析技術(shù)作為一種非破壞性技術(shù),在監(jiān)測(cè)中可以保持海洋生物資源完整、帶來最少的環(huán)境擾動(dòng),被廣泛應(yīng)用到海洋生物監(jiān)測(cè)研究之中。人們通過攝影、攝像獲取海底圖像并采用圖像處理方法研究海洋生物特征[5-7]。相較于傳統(tǒng)方法,利用計(jì)算機(jī)技術(shù)進(jìn)行海洋生物監(jiān)測(cè)是一種自動(dòng)、非入侵、經(jīng)濟(jì)且有效的方法。
雖然基于圖像的目標(biāo)檢測(cè)技術(shù)近些年得到了廣泛的研究,但是基于海底非約束環(huán)境下圖像的目標(biāo)檢測(cè)技術(shù)仍然面臨很大的挑戰(zhàn)。由于魚類的快速自由運(yùn)動(dòng)、天氣、光照等外界因素經(jīng)常變化[8]導(dǎo)致視頻影像對(duì)比度低、紋理細(xì)節(jié)模糊,不利于訓(xùn)練網(wǎng)絡(luò)提取圖像特征。
魚類圖像識(shí)別基本流程:輸入魚類圖像、選擇魚類特征、構(gòu)建分類器、分類識(shí)別。早期的方法過度依賴人工選擇特征,人工選擇特征主要依靠專家的先驗(yàn)知識(shí),通過魚的輪廓、形狀、顏色等特征進(jìn)行檢測(cè)[9-10],特征設(shè)計(jì)中允許出現(xiàn)的參數(shù)數(shù)量十分有限,難以準(zhǔn)確獲取高層次特征[5],從而影響分類識(shí)別結(jié)果的準(zhǔn)確性。隨著人工智能技術(shù)的發(fā)展,深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域取得了巨大成功,傳統(tǒng)的機(jī)器學(xué)習(xí)法正逐漸被基于深度學(xué)習(xí)的方法替代。深度學(xué)習(xí)可以從大數(shù)據(jù)中自動(dòng)學(xué)習(xí)特征的表示,可以包含成千上萬的參數(shù),通過深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)將數(shù)據(jù)從像素級(jí)低維特征映射到語義層高維特征,這使得它在提取圖像的全局特征和上下文信息方面具有突出優(yōu)勢(shì)[11],為解決傳統(tǒng)的計(jì)算機(jī)視覺問題(如圖像分割和關(guān)鍵點(diǎn)檢測(cè))帶來了新的思路。
2012年后,尤其是以卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)為代表的神經(jīng)網(wǎng)絡(luò)模型得到了廣泛應(yīng)用[12-14]。CNN 是由交替卷積層和子采樣層組成的一種流行的深度學(xué)習(xí)體系結(jié)構(gòu),由于它能夠提取復(fù)雜、高維的圖像特征,已經(jīng)被證明在許多計(jì)算機(jī)視覺應(yīng)用中有效,如分割[15]、對(duì)象識(shí)別和分類[16]、目標(biāo)跟蹤[17]。2017 年,谷歌和NASA 通過CNN 技術(shù)在開普勒-90 海量影像中發(fā)現(xiàn)了一顆新行星。Frederic[12]等亦通過CNN 從數(shù)十萬張衛(wèi)星影像中找到了瀕危物種海牛。Spampinato[18]等提出了一種在無約束環(huán)境下跟蹤魚類的算法,基于協(xié)方差模型描述被檢測(cè)對(duì)象,比較當(dāng)前對(duì)象的協(xié)方差矩陣與候選對(duì)象的協(xié)方差矩陣,通過模板匹配生成軌跡,平均準(zhǔn)確率約為80%,有待進(jìn)一步提高。針對(duì)這些問題,Chuang[19]等進(jìn)一步提出了一種基于可變形多核的跟蹤算法,通過對(duì)顏色和紋理特征的均值偏移算法,有效地估計(jì)核的運(yùn)動(dòng),實(shí)現(xiàn)魚類跟蹤,但文中并沒有給出具體的測(cè)試結(jié)果。在此基礎(chǔ)上,Jager[20]等通過兩階段圖形法,用激活的CNN實(shí)現(xiàn)無約束環(huán)境下魚類跟蹤,具有較高的跟蹤精度和效率,但模型的14個(gè)超參數(shù)無法自動(dòng)調(diào)整,從而降低了模型的可移植性。Wang[21]等針對(duì)視頻幀中每條魚的頭部圖像,定制CNN 并在跟蹤過程中對(duì)CNN 參數(shù)進(jìn)行自適應(yīng)更新,以適應(yīng)輕微的光照和魚的外觀變化,該方法被證明對(duì)斑馬魚有較好的識(shí)別和追蹤效果,然而實(shí)驗(yàn)仍然局限在水族箱環(huán)境內(nèi)。賈宇霞[22]等通過圖像增強(qiáng)和遷移學(xué)習(xí)在Fish4Knowledge 數(shù)據(jù)集上進(jìn)行魚類識(shí)別實(shí)驗(yàn),識(shí)別精度達(dá)到99.63%,但僅限于單個(gè)魚類主體,對(duì)無法解決魚類重疊和遮擋。Pan[23]等構(gòu)建了多尺度ResNet 實(shí)現(xiàn)水下目標(biāo)對(duì)象定位,實(shí)現(xiàn)了實(shí)時(shí)識(shí)別,但對(duì)有遮擋對(duì)象和微小對(duì)象的識(shí)別效果不佳。Zhao[24]等通過改進(jìn)ResNet,實(shí)現(xiàn)在低質(zhì)量水下環(huán)境中的魚類識(shí)別,但該實(shí)驗(yàn)對(duì)硬件要求較高。
項(xiàng)目組從2017 年起在海南省三亞市蜈支洲島周圍,根據(jù)不同礁型、不同材質(zhì)、不同水深等選取了5處人工礁進(jìn)行海洋魚類的拍攝觀測(cè),如圖1 所示。水下電子艙布置在5 個(gè)觀測(cè)點(diǎn),一個(gè)艙內(nèi)布置有兩臺(tái)光電式HB-HM-02 水下攝像機(jī)從不同角度進(jìn)行數(shù)據(jù)采集。視頻分辨率為648×480,即寬度和高度,幀速率為50。目前,五套設(shè)備已全部布置并運(yùn)行良好,實(shí)現(xiàn)了視頻數(shù)據(jù)和水質(zhì)監(jiān)測(cè)數(shù)據(jù)的連續(xù)不間斷記錄和傳輸。
圖1 蜈支洲島水下視頻監(jiān)控布點(diǎn)位置圖
10 臺(tái)攝像機(jī)每min 產(chǎn)生150+MB 的視頻數(shù)據(jù)(夜間光照欠佳期間攝像機(jī)不拍攝視頻),在12 h 的監(jiān)控下,每天產(chǎn)生100 GB以上的視頻數(shù)據(jù),每年產(chǎn)生35+TB的視頻數(shù)據(jù),這個(gè)地區(qū)擁有豐富的魚類生物資源如圖2所示。
圖2 蜈支洲島數(shù)據(jù)庫(kù)視頻幀視覺效果示意圖
從蜈支洲島數(shù)據(jù)庫(kù)中選取不同時(shí)間段對(duì)24個(gè)視頻片段,共計(jì)3 100 個(gè)標(biāo)記視頻幀,其中75%作為訓(xùn)練集,25%的數(shù)據(jù)作為測(cè)試集,標(biāo)簽數(shù)據(jù)使用麻省理工計(jì)算機(jī)科學(xué)與人工智能實(shí)驗(yàn)室研發(fā)的LabelMe 深度學(xué)習(xí)圖像標(biāo)注工具完成。如表1所示。
表1 蜈支洲島數(shù)據(jù)庫(kù)概況
數(shù)據(jù)是深度學(xué)習(xí)的關(guān)鍵,有足夠可利用的訓(xùn)練樣本是計(jì)算機(jī)通過學(xué)習(xí)能夠獲得好的分類器的前提。大多現(xiàn)有可用數(shù)據(jù)是針對(duì)特定課題而設(shè)計(jì)的,如手寫數(shù)字?jǐn)?shù)據(jù)庫(kù)MINIST,圖片數(shù)據(jù)集ImageNet,圖像語義理解數(shù)據(jù)集COCO 等,這些開源數(shù)據(jù)不能完全滿足本研究所需的深度學(xué)習(xí)訓(xùn)練數(shù)據(jù)要求,因此要針對(duì)特定魚類進(jìn)行訓(xùn)練數(shù)據(jù)的補(bǔ)充。然而手動(dòng)標(biāo)注圖像非常耗時(shí),在對(duì)無人駕駛數(shù)據(jù)集Cityscapes 中單個(gè)圖像的精細(xì)像素級(jí)的標(biāo)注平均需要花費(fèi)1.5 h。此外,由于人的主觀因素也容易出現(xiàn)錯(cuò)誤標(biāo)注。因此,項(xiàng)目引入遷移學(xué)習(xí)來解決目前目標(biāo)領(lǐng)域僅有少量有標(biāo)簽樣本數(shù)據(jù)的問題。
遷移學(xué)習(xí)是運(yùn)用已經(jīng)訓(xùn)練好的知識(shí)對(duì)不同但相關(guān)領(lǐng)域問題進(jìn)行求解的一種新的機(jī)器學(xué)習(xí)的方法,以解決目標(biāo)領(lǐng)域中僅有少量有標(biāo)簽樣本數(shù)據(jù)的問題。以往,針對(duì)不同的領(lǐng)域問題需要重新訓(xùn)練深度學(xué)習(xí)模型,一方面需要耗費(fèi)大量的時(shí)間和計(jì)算資源;另一方面,在圖像識(shí)別領(lǐng)域,圖像底層特征相似性高,這些底層特征被組合成為不同的更復(fù)雜的特征用于圖像分類識(shí)別。因此,可以將經(jīng)過其他大型訓(xùn)練集預(yù)訓(xùn)練之后的網(wǎng)絡(luò)模型作為底層圖像特征提取器,從而實(shí)現(xiàn)將通用圖像特征提取知識(shí)遷移到熱帶魚類分類識(shí)別領(lǐng)域,減少對(duì)標(biāo)注數(shù)據(jù)的依賴。斯坦福大學(xué)吳恩達(dá)教授在2016年NIPS會(huì)議上說:“遷移學(xué)習(xí)將會(huì)是繼監(jiān)督學(xué)習(xí)之后的下一個(gè)機(jī)器學(xué)習(xí)商業(yè)成功的驅(qū)動(dòng)力”。
ImageNet圖像數(shù)據(jù)集始于2009年,是目前世界上圖像識(shí)別最大的數(shù)據(jù)庫(kù),由美國(guó)斯坦福的計(jì)算機(jī)科學(xué)家模擬人類的識(shí)別系統(tǒng)建立。包含約1 500萬張圖片,2.2萬個(gè)類型,每張圖片都經(jīng)過嚴(yán)格的人工篩選與標(biāo)記。從2010年起,每年都基于ImageNet舉辦全世界的大規(guī)模視覺知識(shí)挑戰(zhàn)賽(ILSVRC),世界各地的研究團(tuán)隊(duì)在給定的數(shù)據(jù)集上評(píng)估其算法,并在視覺識(shí)別任務(wù)中爭(zhēng)奪更高的準(zhǔn)確性,2017年后比賽由Kaggle社區(qū)主持。在圖像分類上,ImageNet競(jìng)賽已經(jīng)是計(jì)算機(jī)視覺分類算法事實(shí)上的評(píng)價(jià)標(biāo)準(zhǔn)。Keras 是一個(gè)由Python 編寫的開源人工神經(jīng)網(wǎng)絡(luò)庫(kù),主要提供了基于ImageNet訓(xùn)練的5 種開箱即用型的CNN 網(wǎng)絡(luò)——VGG16、VGG19、 ResNet50、 Inception V3、 Xception。 與AlexNet、OverFeat還有VGG這些傳統(tǒng)順序型網(wǎng)絡(luò)架構(gòu)不同,ResNet50的網(wǎng)絡(luò)結(jié)構(gòu)依賴于微架構(gòu)模組,因?yàn)槭褂昧巳制骄鼗?,而不是全連接層。盡管ResNet50 比VGG16 還 有VGG19 要 深,weights 卻 更小。本文使用Keras 庫(kù)中的ResNet50 網(wǎng)絡(luò),利用其自帶已訓(xùn)練好的imagenet 作為權(quán)重來初始化訓(xùn)練目標(biāo)模型參數(shù),實(shí)現(xiàn)將已經(jīng)學(xué)到知識(shí)共享給新模型,然后根據(jù)目標(biāo)任務(wù)調(diào)整輸出層,用熱帶魚類圖像樣本精調(diào)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,提高檢測(cè)算法的精度和效度,最終得到熱帶海域魚類分類識(shí)別模型,遷移學(xué)習(xí)流程如圖3所示。
圖3 遷移學(xué)習(xí)流程圖
整個(gè)ResNet 深度卷積神經(jīng)網(wǎng)絡(luò)由初始卷積(Conv)層、若干個(gè)Residual Block 和最后的全連接層(fully connected,F(xiàn)C)組成。第一個(gè)Conv layer 不需要進(jìn)行歸一化和ReLU 非線性激活。首先按照均值和標(biāo)準(zhǔn)差,對(duì)圖像進(jìn)行歸一化處理。考慮到梯度下降的訓(xùn)練時(shí)間,使用ReLU 非線性激活作為激活函數(shù),比tanh 激活函數(shù)效果更好[28],然后進(jìn)行第一次3×3 卷積運(yùn)算,對(duì)卷積結(jié)果再次進(jìn)行batch normalization,ReLU非線性激活后再進(jìn)行第二次3×3卷積運(yùn)算,執(zhí)行跳遠(yuǎn)連接,將第一層的激活迅速傳遞給第六層后的下一個(gè)Residual Block。模 型 總 訓(xùn) 練 次 數(shù)(train steps) 為300,圖片通過一系列3×3的濾波器進(jìn)行卷積運(yùn)算,卷積滑動(dòng)步長(zhǎng)固定為1,使用mini_batch對(duì)算法性能進(jìn)行優(yōu)化。考慮到內(nèi)存有限,訓(xùn)練集和測(cè)試集的batch_size均設(shè)置為24,padding size 為same 進(jìn)行圖像填充。模型總參數(shù)23 587 712 個(gè),固定參數(shù)53 120 個(gè),可訓(xùn)練參數(shù)13 534 592個(gè),模型結(jié)構(gòu)及參數(shù)設(shè)置如圖4所示。
圖4 ResNet熱帶魚類識(shí)別模型架構(gòu)圖
為了評(píng)估遷移學(xué)習(xí),在蜈支洲島數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),在網(wǎng)絡(luò)結(jié)構(gòu)、學(xué)習(xí)效率、損失函數(shù)等保持不變的情況下,對(duì)比了遷移學(xué)習(xí)前后的各項(xiàng)學(xué)習(xí)指標(biāo)。實(shí)驗(yàn)使用了一臺(tái)Intel(R)Xeon(R)X5675 3.06 GHz 計(jì)算機(jī)系統(tǒng)型處理器,32 GB 內(nèi)存和NVIDA GeForce GTX 1050 Ti GPU。實(shí)驗(yàn)所得部分?jǐn)?shù)據(jù)如表2所示。
表2 遷移學(xué)習(xí)前后不同訓(xùn)練次數(shù)下的各指標(biāo)數(shù)值
train loss 代表訓(xùn)練數(shù)據(jù)上的損失,使用交叉熵作為損失函數(shù),主要用來衡量訓(xùn)練集上的擬合能力,train loss 值越低,說明模型在訓(xùn)練集上的擬合能力越高。validation loss 代表驗(yàn)證集上的損失,使用交叉熵作為損失函數(shù),主要用來衡量模型在未知數(shù)據(jù)上的擬合能力,即模型的泛化能力,validation loss 值越低,說明模型的泛化能力越高。由圖5 可見,在引入imagenet 已訓(xùn)練好的模型作為網(wǎng)絡(luò)的初始權(quán)重下,train loss 值和validation loss 值迅速降低,并且隨著訓(xùn)練次數(shù)的增加,train loss 值和validation loss 值均保持持續(xù)下降的趨勢(shì)。在訓(xùn)練到150 次后,validation loss 值在0.41~0.37 區(qū)間震蕩,隨著訓(xùn)練的深入,loss 值進(jìn)一步震蕩下行,說明本方法具有較好的擬合能力和泛化能力。
圖5 遷移學(xué)習(xí)訓(xùn)練后的train loss和validation loss變化圖
Train accuracy 代表訓(xùn)練數(shù)據(jù)上的準(zhǔn)確率,validation accuracy代表驗(yàn)證集上的準(zhǔn)確率,accuracy的值越高,說明模型對(duì)熱帶魚類分類識(shí)別的準(zhǔn)確度越高。由圖6 可見,在引入imagenet 已訓(xùn)練好的模型作為網(wǎng)絡(luò)的初始權(quán)重下,train accuracy 值和validation accuracy值迅速升高,并且隨著訓(xùn)練次數(shù)的增加,train accuracy 值和validation accuracy 值均保持持續(xù)增加的趨勢(shì)。在訓(xùn)練到150次后,validation accuracy值在0.85~0.90區(qū)間震蕩,隨著訓(xùn)練的深入,accuracy 值進(jìn)一步震蕩上行,說明本方法具有較好的識(shí)別精度。
圖6 遷移學(xué)習(xí)訓(xùn)練后的train accuracy和validation accuracy變化圖
在保持網(wǎng)絡(luò)結(jié)構(gòu)和其他超參數(shù)相同的情況下,本文對(duì)比了使用遷移學(xué)習(xí)前后的train loss 和validation loss 指標(biāo)的變化。從圖7 中可見,在使用遷移學(xué)習(xí)前后,train loss值均隨著訓(xùn)練次數(shù)的增加而減小至0.2~0.3左右。在訓(xùn)練起始階段,loss會(huì)有一個(gè)較為明顯的下降,當(dāng)訓(xùn)練到約100 次后,train loss 就基本降低到30%以下,validation loss在0.25~0.45之間震蕩。遷移學(xué)習(xí)后的loss明顯低于遷移學(xué)習(xí)前。
圖7 遷移學(xué)習(xí)前后的train loss和validation loss對(duì)比圖
在保持網(wǎng)絡(luò)結(jié)構(gòu)和其他超參數(shù)相同的情況下,本文對(duì)比了使用遷移學(xué)習(xí)前后的train accuracy 和validation accuracy指標(biāo)的變化。從圖8可見,在使用遷移學(xué)習(xí)前后,train accuracy 值均隨著訓(xùn)練次數(shù)的增加而增加至0.9左右。在訓(xùn)練起始階段,accuracy會(huì)有一個(gè)較為明顯的上升,當(dāng)訓(xùn)練到約50次后,train accuracy就基本穩(wěn)定在0.8以上。遷移學(xué)習(xí)后的accuracy明顯高于遷移學(xué)習(xí)前。
圖8 遷移學(xué)習(xí)前后的train accuracy和validation accuracy對(duì)比圖
本文以非約束條件下海洋視頻監(jiān)控?cái)?shù)據(jù)中的熱帶魚類為研究對(duì)象,構(gòu)建了基于遷移學(xué)習(xí)的熱帶魚類識(shí)別模型,以ResNet50 作為基礎(chǔ)訓(xùn)練網(wǎng)絡(luò)。結(jié)果表明,遷移學(xué)習(xí)對(duì)非約束環(huán)境下熱帶魚類的計(jì)算機(jī)識(shí)別具有較好的效果,有助于提高識(shí)別準(zhǔn)確度并縮短學(xué)習(xí)時(shí)間。今后將進(jìn)一步獲取超高清視頻數(shù)據(jù),優(yōu)化算法,解決收斂到局部最優(yōu)而不是全局最優(yōu)的問題。同時(shí)改善硬件條件,進(jìn)一步提高處理精度。