張 珊,韓 溦,劉薇芳,朱宇鵬
(1.海南大學旅游學院,海南 海口 570208;2.海南超圖科技有限公司,海南 海口 570220)
以往對于海洋魚類資源監測常通過現場采樣法[1]、漁獲法[2]、水聲學遙測等方法,這些方法不同程度地存在依賴專家經驗、破壞生物資源、無法判斷魚的類型等缺點[3]。得益于數據處理技術、評價模型和方法的完善,海洋生物資源監測評價步入精準化、無損化時代[4]。建立水下視頻深度學習系統,將是智能化監測海洋魚類資源最為有效的方法。
計算機視覺捕捉分析技術作為一種非破壞性技術,在監測中可以保持海洋生物資源完整、帶來最少的環境擾動,被廣泛應用到海洋生物監測研究之中。人們通過攝影、攝像獲取海底圖像并采用圖像處理方法研究海洋生物特征[5-7]。相較于傳統方法,利用計算機技術進行海洋生物監測是一種自動、非入侵、經濟且有效的方法。
雖然基于圖像的目標檢測技術近些年得到了廣泛的研究,但是基于海底非約束環境下圖像的目標檢測技術仍然面臨很大的挑戰。由于魚類的快速自由運動、天氣、光照等外界因素經常變化[8]導致視頻影像對比度低、紋理細節模糊,不利于訓練網絡提取圖像特征。
魚類圖像識別基本流程:輸入魚類圖像、選擇魚類特征、構建分類器、分類識別。早期的方法過度依賴人工選擇特征,人工選擇特征主要依靠專家的先驗知識,通過魚的輪廓、形狀、顏色等特征進行檢測[9-10],特征設計中允許出現的參數數量十分有限,難以準確獲取高層次特征[5],從而影響分類識別結果的準確性。隨著人工智能技術的發展,深度學習在計算機視覺領域取得了巨大成功,傳統的機器學習法正逐漸被基于深度學習的方法替代。深度學習可以從大數據中自動學習特征的表示,可以包含成千上萬的參數,通過深度神經網絡結構將數據從像素級低維特征映射到語義層高維特征,這使得它在提取圖像的全局特征和上下文信息方面具有突出優勢[11],為解決傳統的計算機視覺問題(如圖像分割和關鍵點檢測)帶來了新的思路。
2012年后,尤其是以卷積神經網絡(convolutional neural network,CNN)為代表的神經網絡模型得到了廣泛應用[12-14]。CNN 是由交替卷積層和子采樣層組成的一種流行的深度學習體系結構,由于它能夠提取復雜、高維的圖像特征,已經被證明在許多計算機視覺應用中有效,如分割[15]、對象識別和分類[16]、目標跟蹤[17]。2017 年,谷歌和NASA 通過CNN 技術在開普勒-90 海量影像中發現了一顆新行星。Frederic[12]等亦通過CNN 從數十萬張衛星影像中找到了瀕危物種海牛。Spampinato[18]等提出了一種在無約束環境下跟蹤魚類的算法,基于協方差模型描述被檢測對象,比較當前對象的協方差矩陣與候選對象的協方差矩陣,通過模板匹配生成軌跡,平均準確率約為80%,有待進一步提高。針對這些問題,Chuang[19]等進一步提出了一種基于可變形多核的跟蹤算法,通過對顏色和紋理特征的均值偏移算法,有效地估計核的運動,實現魚類跟蹤,但文中并沒有給出具體的測試結果。在此基礎上,Jager[20]等通過兩階段圖形法,用激活的CNN實現無約束環境下魚類跟蹤,具有較高的跟蹤精度和效率,但模型的14個超參數無法自動調整,從而降低了模型的可移植性。Wang[21]等針對視頻幀中每條魚的頭部圖像,定制CNN 并在跟蹤過程中對CNN 參數進行自適應更新,以適應輕微的光照和魚的外觀變化,該方法被證明對斑馬魚有較好的識別和追蹤效果,然而實驗仍然局限在水族箱環境內。賈宇霞[22]等通過圖像增強和遷移學習在Fish4Knowledge 數據集上進行魚類識別實驗,識別精度達到99.63%,但僅限于單個魚類主體,對無法解決魚類重疊和遮擋。Pan[23]等構建了多尺度ResNet 實現水下目標對象定位,實現了實時識別,但對有遮擋對象和微小對象的識別效果不佳。Zhao[24]等通過改進ResNet,實現在低質量水下環境中的魚類識別,但該實驗對硬件要求較高。
項目組從2017 年起在海南省三亞市蜈支洲島周圍,根據不同礁型、不同材質、不同水深等選取了5處人工礁進行海洋魚類的拍攝觀測,如圖1 所示。水下電子艙布置在5 個觀測點,一個艙內布置有兩臺光電式HB-HM-02 水下攝像機從不同角度進行數據采集。視頻分辨率為648×480,即寬度和高度,幀速率為50。目前,五套設備已全部布置并運行良好,實現了視頻數據和水質監測數據的連續不間斷記錄和傳輸。

圖1 蜈支洲島水下視頻監控布點位置圖
10 臺攝像機每min 產生150+MB 的視頻數據(夜間光照欠佳期間攝像機不拍攝視頻),在12 h 的監控下,每天產生100 GB以上的視頻數據,每年產生35+TB的視頻數據,這個地區擁有豐富的魚類生物資源如圖2所示。

圖2 蜈支洲島數據庫視頻幀視覺效果示意圖
從蜈支洲島數據庫中選取不同時間段對24個視頻片段,共計3 100 個標記視頻幀,其中75%作為訓練集,25%的數據作為測試集,標簽數據使用麻省理工計算機科學與人工智能實驗室研發的LabelMe 深度學習圖像標注工具完成。如表1所示。

表1 蜈支洲島數據庫概況
數據是深度學習的關鍵,有足夠可利用的訓練樣本是計算機通過學習能夠獲得好的分類器的前提。大多現有可用數據是針對特定課題而設計的,如手寫數字數據庫MINIST,圖片數據集ImageNet,圖像語義理解數據集COCO 等,這些開源數據不能完全滿足本研究所需的深度學習訓練數據要求,因此要針對特定魚類進行訓練數據的補充。然而手動標注圖像非常耗時,在對無人駕駛數據集Cityscapes 中單個圖像的精細像素級的標注平均需要花費1.5 h。此外,由于人的主觀因素也容易出現錯誤標注。因此,項目引入遷移學習來解決目前目標領域僅有少量有標簽樣本數據的問題。
遷移學習是運用已經訓練好的知識對不同但相關領域問題進行求解的一種新的機器學習的方法,以解決目標領域中僅有少量有標簽樣本數據的問題。以往,針對不同的領域問題需要重新訓練深度學習模型,一方面需要耗費大量的時間和計算資源;另一方面,在圖像識別領域,圖像底層特征相似性高,這些底層特征被組合成為不同的更復雜的特征用于圖像分類識別。因此,可以將經過其他大型訓練集預訓練之后的網絡模型作為底層圖像特征提取器,從而實現將通用圖像特征提取知識遷移到熱帶魚類分類識別領域,減少對標注數據的依賴。斯坦福大學吳恩達教授在2016年NIPS會議上說:“遷移學習將會是繼監督學習之后的下一個機器學習商業成功的驅動力”。
ImageNet圖像數據集始于2009年,是目前世界上圖像識別最大的數據庫,由美國斯坦福的計算機科學家模擬人類的識別系統建立。包含約1 500萬張圖片,2.2萬個類型,每張圖片都經過嚴格的人工篩選與標記。從2010年起,每年都基于ImageNet舉辦全世界的大規模視覺知識挑戰賽(ILSVRC),世界各地的研究團隊在給定的數據集上評估其算法,并在視覺識別任務中爭奪更高的準確性,2017年后比賽由Kaggle社區主持。在圖像分類上,ImageNet競賽已經是計算機視覺分類算法事實上的評價標準。Keras 是一個由Python 編寫的開源人工神經網絡庫,主要提供了基于ImageNet訓練的5 種開箱即用型的CNN 網絡——VGG16、VGG19、 ResNet50、 Inception V3、 Xception。 與AlexNet、OverFeat還有VGG這些傳統順序型網絡架構不同,ResNet50的網絡結構依賴于微架構模組,因為使用了全局平均池化,而不是全連接層。盡管ResNet50 比VGG16 還 有VGG19 要 深,weights 卻 更小。本文使用Keras 庫中的ResNet50 網絡,利用其自帶已訓練好的imagenet 作為權重來初始化訓練目標模型參數,實現將已經學到知識共享給新模型,然后根據目標任務調整輸出層,用熱帶魚類圖像樣本精調網絡模型進行訓練,提高檢測算法的精度和效度,最終得到熱帶海域魚類分類識別模型,遷移學習流程如圖3所示。

圖3 遷移學習流程圖
整個ResNet 深度卷積神經網絡由初始卷積(Conv)層、若干個Residual Block 和最后的全連接層(fully connected,FC)組成。第一個Conv layer 不需要進行歸一化和ReLU 非線性激活。首先按照均值和標準差,對圖像進行歸一化處理??紤]到梯度下降的訓練時間,使用ReLU 非線性激活作為激活函數,比tanh 激活函數效果更好[28],然后進行第一次3×3 卷積運算,對卷積結果再次進行batch normalization,ReLU非線性激活后再進行第二次3×3卷積運算,執行跳遠連接,將第一層的激活迅速傳遞給第六層后的下一個Residual Block。模 型 總 訓 練 次 數(train steps) 為300,圖片通過一系列3×3的濾波器進行卷積運算,卷積滑動步長固定為1,使用mini_batch對算法性能進行優化??紤]到內存有限,訓練集和測試集的batch_size均設置為24,padding size 為same 進行圖像填充。模型總參數23 587 712 個,固定參數53 120 個,可訓練參數13 534 592個,模型結構及參數設置如圖4所示。

圖4 ResNet熱帶魚類識別模型架構圖
為了評估遷移學習,在蜈支洲島數據集上進行了實驗,在網絡結構、學習效率、損失函數等保持不變的情況下,對比了遷移學習前后的各項學習指標。實驗使用了一臺Intel(R)Xeon(R)X5675 3.06 GHz 計算機系統型處理器,32 GB 內存和NVIDA GeForce GTX 1050 Ti GPU。實驗所得部分數據如表2所示。

表2 遷移學習前后不同訓練次數下的各指標數值
train loss 代表訓練數據上的損失,使用交叉熵作為損失函數,主要用來衡量訓練集上的擬合能力,train loss 值越低,說明模型在訓練集上的擬合能力越高。validation loss 代表驗證集上的損失,使用交叉熵作為損失函數,主要用來衡量模型在未知數據上的擬合能力,即模型的泛化能力,validation loss 值越低,說明模型的泛化能力越高。由圖5 可見,在引入imagenet 已訓練好的模型作為網絡的初始權重下,train loss 值和validation loss 值迅速降低,并且隨著訓練次數的增加,train loss 值和validation loss 值均保持持續下降的趨勢。在訓練到150 次后,validation loss 值在0.41~0.37 區間震蕩,隨著訓練的深入,loss 值進一步震蕩下行,說明本方法具有較好的擬合能力和泛化能力。

圖5 遷移學習訓練后的train loss和validation loss變化圖
Train accuracy 代表訓練數據上的準確率,validation accuracy代表驗證集上的準確率,accuracy的值越高,說明模型對熱帶魚類分類識別的準確度越高。由圖6 可見,在引入imagenet 已訓練好的模型作為網絡的初始權重下,train accuracy 值和validation accuracy值迅速升高,并且隨著訓練次數的增加,train accuracy 值和validation accuracy 值均保持持續增加的趨勢。在訓練到150次后,validation accuracy值在0.85~0.90區間震蕩,隨著訓練的深入,accuracy 值進一步震蕩上行,說明本方法具有較好的識別精度。

圖6 遷移學習訓練后的train accuracy和validation accuracy變化圖
在保持網絡結構和其他超參數相同的情況下,本文對比了使用遷移學習前后的train loss 和validation loss 指標的變化。從圖7 中可見,在使用遷移學習前后,train loss值均隨著訓練次數的增加而減小至0.2~0.3左右。在訓練起始階段,loss會有一個較為明顯的下降,當訓練到約100 次后,train loss 就基本降低到30%以下,validation loss在0.25~0.45之間震蕩。遷移學習后的loss明顯低于遷移學習前。

圖7 遷移學習前后的train loss和validation loss對比圖
在保持網絡結構和其他超參數相同的情況下,本文對比了使用遷移學習前后的train accuracy 和validation accuracy指標的變化。從圖8可見,在使用遷移學習前后,train accuracy 值均隨著訓練次數的增加而增加至0.9左右。在訓練起始階段,accuracy會有一個較為明顯的上升,當訓練到約50次后,train accuracy就基本穩定在0.8以上。遷移學習后的accuracy明顯高于遷移學習前。

圖8 遷移學習前后的train accuracy和validation accuracy對比圖
本文以非約束條件下海洋視頻監控數據中的熱帶魚類為研究對象,構建了基于遷移學習的熱帶魚類識別模型,以ResNet50 作為基礎訓練網絡。結果表明,遷移學習對非約束環境下熱帶魚類的計算機識別具有較好的效果,有助于提高識別準確度并縮短學習時間。今后將進一步獲取超高清視頻數據,優化算法,解決收斂到局部最優而不是全局最優的問題。同時改善硬件條件,進一步提高處理精度。