本文作者:範偉亞
【目的】魚類識別對漁業資源的開發利用有著重要的意義。針對海底環境惡劣、拍攝環境亮度低、場景模糊的實際情況導致海底觀測視頻品質差,視頻中的魚類識別難的問題以及現有魚類識別方法存在的魚類標註數據集過少導致訓練的深度模型準確度不高的問題。
【方法】本文提出了一種基於百度EasyDL定製化圖像識別平臺的海底魚類識別方法。首先使用伽馬校正法和暗通道先驗算法對圖片數據進行預處理,提高圖片亮度和清晰度,接著利用百度EasyDL定製化圖像識別平臺構建初魚類識別模型,再使用數據增強等方法對模型進行調優,提高模型識別能力。
【結果】實驗結果表明,與其他識別方法相比,該方法可以有效提高魚類識別的準確率。
1 引言
魚類不但有一定的食用價值,而且還有很高的藥用價值,所以世界各國對魚類資源的開發和利用都非常重視,在對魚類資源開發過程中,必須對魚類進行識別,了解其分布情況,但魚的種類繁多,形狀大小相似,識別起來較為困難。因此研究魚類識別的方法,對我國漁業資源的開發利用具有重要的學術價值和經濟價值,對於魚類的分布情況,傳統的研究方法以出海捕撈為主,使用延繩釣探捕、拖網探捕等常用捕撈技術。這種傳統調研方式固然有效,但是對於相關科研人員來說,由於調研過程周期長,耗費資源太多,而且結果存在一定的延遲性,大大影響研究人員研究成果的質量。還有基於聲吶系統的方法,對魚體回波信號進行處理分析,從聲學信號中提取適於分類的特徵進行識別,但是由於聲吶系統會對魚類造成一定的傷害,所以也不能頻繁實施,針對上述問題,國家於「十二五」期間提出將全面推動國家海底觀測平臺的建設,其中就包括通過部署水下攝像器材來實時監控關鍵海洋生物的重要務,這樣就可以通過分析觀測視頻來代替出海調研,而且保證了獲得數據的實時性,能夠極大地提高科研人員的研究效率。
傳統的機器學習方法用於魚類識別的實現過程為:獲取魚圖像、提取特徵、構建分類器,將特徵向量輸入分類器以實現種類識別。如:Phenoix等人[1]採用貝葉斯和高斯核混合模型對魚類特徵進行分層分類的方法來實現魚的分類識別;杜偉東等人[2]提出了一種提取多方位聲散射數據的小波包係數奇異值、時域質心及離散餘弦變換係數特徵,並進行特徵融合,最後用支持向量機分類的魚識別方法;雖然這些方法都可以實現魚類識別,但是這些方法這類方法已不適用於當前的視頻或圖片數據,並且方法嚴重依賴於人工選擇特徵,而人工選擇特徵往往只能選擇表層特徵,很難挖掘出有鑑別力的特徵。
和傳統機器學習方法相比,近年來崛起的深度學習方法以數據為驅動,能夠從大量數據中通過卷積等操作自動學習特徵表示,很好的解決了人工選擇特徵的問題。Abdelouahid等人[3]和顧鄭平等人[4]都提出了採用深度網絡模型進行魚類識別的方法,雖然這些方法在識別性能上都取得了引人矚目的效果,但是依然存在以下問題:模型識別性能的提高需要大量的魚類標註數據集用於學習訓練,而標註數據工作費時且昂貴,故在實際應用中難以滿足。
為此,針對以問題,本文提出了一種基於百度EasyDL定製化圖像識別平臺的海底魚類識別方法。利用百度EasyDL定製化圖像識別平臺解決目標數據集訓練數據過小和數據分布差異問題,而且通過引入伽馬校正法和暗通道先驗算法對數據進行預處理,使數據特徵具有更好的辨別能力,同時使用數據增強方法對模型進行調優,使得訓練得到的模型的泛化性更強。
2 相關工作
2.1 海洋魚類識別系統
圖 1 海底觀測平臺
海底觀測平臺的系統結構如圖1所示,位於海面以下的水下接駁器統一接收來自各個傳感器的採集數據,包括水下攝像器材採集的視頻數據,然後將數據傳輸至位於陸地上的岸基站。岸基站接收並緩存所有來自海底的數據,按約定的協議和規則轉發給大數據中心。大數據中心由多個子系統構成,負責對不同類型數據的轉化、存儲、處理、分析,其中包括本文將要研究的海洋魚類識別系統,負責對海底觀測視頻的處理分析。本文採用開源計算機視覺工具軟體OpenCV來讀取視頻數據,將視頻分解為圖片幀,同時使用背景差分算法過濾無用幀後,針對每一幀進行預處理和識別分析。
2.2 數據預處理
由於海底圖像對各種噪聲和幹擾是比較敏感的,在不同光照條件下,懸浮物等都對最終成像和識別有很大的影響。而且從圖像的形成過程考慮,圖像採集是將一個三維目標映射成為一幅二維圖像,不可避免會有信息的丟失,所以本質上圖像就具有一種模糊性。另一方面由於海水的能見度低, 透明度只有空氣的千分之一,使得採集到的圖像信噪比較低、紋理模糊。再次由於海洋中各種懸浮物的存在, 也會對光波(也就是電磁波)產生散射和吸收作用 ,導致採集到的海底圖像產生嚴重的灰白效應。再加上海流的影響以及攝像機鏡頭的抖動等因素, 造成圖像部分失真現象等因素都會影響最終識別的效果。
下面是幾幅比較典型的海底魚類圖像,我們可以看到,採集的圖像的對比度都較低,圖像較為模糊:
圖1 海底魚類圖像圖
因此,本文先使用提高亮度、提高清晰度對數據進行預處理的方法,儘可能消除亮度低和模糊帶來的影響。對於提高亮度的方法,本文選擇伽馬校正法[5],使用指數函數調整每個灰度單元,計算公式如下:
(1)
亮度的變化由參數γ來控制:當γ<1時,pi,j[k]的值會變小,亮度會提高。反之,則pi,j[k]的值會變大,亮度會降低。
對於提高清晰度的方法,通過參考基於暗通道先驗算法去霧的研究[6]。該研究認為霧天拍攝圖片的模糊是由空氣中的雜質對光的散射造成的。而海底拍攝圖片的模糊也恰好是由水中的雜質對光的散射造成的,於是可以將其適用於海底拍攝圖片,所以在該研究的基礎上,針對海底環境的特點作了改進,對每個灰度單元進行優化,計算公式如下:
(2)
綜合上述提高亮度和清晰度的過程,預處理的步驟如下:
圖3所示展示預處理方法對圖片品質的提升效果:
a原始圖 b預處理後圖片
圖2 預處理效果對比圖
從圖3中可以看出,本文提出的預處理方法可以比較有效地提高圖片的亮度以及清晰度。但是面對品質極差的圖片,預處理方法也顯露出了局限性,無法將其品質提高到魚類各項關鍵特徵都清晰的程度。
2.3 模型構建及訓練
本文以臺灣電力公司、臺灣海洋研究所和墾丁國家公園在2010年10月1日至2013年9月30日期間,在臺灣南灣海峽、蘭嶼島和胡比湖的水下觀景臺收集的魚類圖像數據集合--Fish4Knowledge(F4K)數據集[7]作為實驗數據。該數據集包括23類魚種,共27370張魚的圖像,數據集如圖4所示。
圖3 Fish4Knowledge(F4K)數據集
將實驗數據上傳至百度EasyDL數據中心,如圖4所示,採用百度EasyDL定製化圖像識別平臺構建魚類圖像識別模型,由於魚類形狀大小相似,品種差異小,可辨識性較小,故選擇AutoDL Transfer算法進行模型訓練,AutoDL Transfer模型是百度研發的AutoDL技術之一,結合模型網絡結構搜索、遷移學習技術、並針對用戶數據進行自動優化的模型,與通用算法相比,雖然訓練時間較長,但更適用於細分類場景。如圖5所示。
圖4 數據上傳
圖5 模型構建
2.3 預處理有效性實驗
為了證明本文所提預處理方法的有效性,本文在F4K數據集上做了原始的數據和基於預處理的方法的數據模型性能對比實驗,實驗在參數相同的條件下,使用百度EasyDL定製化圖像識別平臺對數據進行訓練,評估對比結果如表1所示:
表2性能對比
表1的結果顯示,在魚類識別上本文所提的預處理方法比使用原始數據有更好的識別性能,準確率及召回率等各項指標都要遠遠好於使用原始數據訓練的模型。
2.4 模型進一步調優
為了更好的提高模型識別的準確率,本文採用數據增強的方法對數據進行擴充,增加數據的規模,提高模型的泛化性能。以前,若想對訓練數據進行數據增強的操作,需要手動調整圖片來對模型訓練樣本進行擴展,例如旋轉、移動、縮放、翻轉圖片等方式,過程如圖6所示。
圖6 數據增強處理
如今,EasyDL的圖像分類模型訓練中,可以通過平臺提供的調參功能來自動執行上述增強操作,優化數據豐富度,開發者再也不用手工重複處理原始數據啦!
表3 數據增強後數據集大小
表4 數據增強後性能對比
2.5 模型對比實驗
為了進一步證明本文模型的優勢,將本文模型與其他模型,包括目前流行的深度網絡模型VGGnet16、VGGnet19以及文獻[3]中的PreCNN-SVM魚類識別方法和文獻[4]中Alex-FT-SVM魚類識別方法,在F4K數據集上進行性能評估和比較,實驗對比結果如表2所示。
表5不同方法的魚類識別性能比較
表2的各種方法對比結果來看,本文的方法相對於其他方法識別準確率有較大提升,獲得了99.6%的魚類識別精度。本方法充分利用百度EasyDL定製化圖像識別平臺優勢,可以很好地解決魚類識別任務訓練數據不足的問題,同時通過引入伽馬校正法和暗通道先驗算法對數據進行預處理,使數據特徵具有更好的辨別能力,使用數據增強方法對模型進行調優,進一步提高了模型識別的準確率。
3 結束語
海底觀測環境亮度低、場景模糊,導致採集的視頻品質差,直接識別視頻中的海洋魚類效果不好。本文提出了預處理方法提高圖片品質、百度EasyDL定製化圖像識別等方法,實現對較差品質圖片的準確識別。針對亮度低和場景模糊的問題,在預處理時首先使用伽馬校正法提高了圖片的亮度,然後參考基於暗通道先驗算法的去霧研究針對海底環境的特點作了改進,提高了圖片的清晰度。由於目前還沒有大量標記數據,本文使用百度EasyDL定製化圖像識別及AutoDL Transfer算法,解決了訓練數據少導致模型效果差的問題。從實驗結果可以看出,本文所提方法可以以高達99.6%的準確率識別海底魚類的圖片,驗證了方法的有效性。然而,本文的方法還存在不足,其中的關鍵在於海底環境的特殊性,提高圖片品質的預處理方法還沒有完全結合海底環境的特點,提高圖片品質的能力有限。下一步的研究工作將是深入分析、挖掘海底環境的特點,提出針對性更強的、更有效的預處理方法。
參考文獻:
[1]Huang, Phoenix X., Bastiaan J. Boom, and Robert B. Fisher. "Hierarchical classification with reject option for live fish recognition." Machine Vision and Applications 2015,26(1): 89-102.
[2]杜偉東, 李海森, 魏玉闊, 等. 基於 SVM 的多方位聲散射數據協作融合魚分類與識別[J]. 農業機械學報, 2015,61(3):39-43.
[3]Tamou A B, Benzinou A, Nasreddine K, et al. Underwater Live Fish Recognition by Deep Learning[C]//International Conference on Image and Signal Processing. Springer, Cham, 2018,171(6): 275-283.
[4]顧鄭平,朱敏.基於深度學習的魚類分類算法研究[J].計算機應用與軟體,2018,35(1):200-205.
[5]蔣明敏.基於FPGA的LCD伽馬校正研究[D].南京,南京林業大學,2016:25-27.(JIANG M M.Research on LCD Gamma Correction Based on FPGA[D].Nanjing,NanjingForestryUniversity,2016:25-28.)
[6]HE K, SUN J, TANG X. Single image haze removal using dark channel prior[J]. IEEE transactions on pattern analysis and machine intelligence, 2011, 33(12): 2341-2353.
[7]B J, Huang P X, He J, etal. Supporting ground-truth annotation of image datasets using clustering[C]//ICPR. 2012,21(1): 1542-1545.