?

水下魚類品種識別模型與實時識別系統

2022-05-30 22:49李少波楊玲于輝輝陳英義
智慧農業(中英文) 2022年1期
關鍵詞:卷積神經網絡安卓

李少波 楊玲 于輝輝 陳英義

摘要:快速準確的魚類識別系統需要良好的識別模型和部署系統作為支撐。近年來,卷積神經網絡在圖像識別領域取得了巨大成功,不同的卷積網絡模型都有不同的優點和缺點,面對眾多可供選擇的模型結構,如何選擇和評價卷積神經網絡模型成為了必須考慮的問題。此外,在模型應用方面,移動終端直接部署深度學習模型需要對模型進行裁剪、壓縮處理,影響精度的同時還會導致安裝包體積增大,不利于模型升級維護。針對上述問題,本研究根據水下魚類實時識別任務特點,選取了AlexNet、GoogLeNet、ResNet和DenseNet預訓練模型進行對比試驗研究,通過在 Ground-Truth 魚類公開數據集基礎上對圖像進行隨機翻轉、旋轉、顏色抖動來增強數據,使用 Label smoothing 作為損失函數緩解模型過擬合問題,通過研究 Ranger 優化器和 Cosine 學習率衰減策略進一步提高模型訓練效果。統計各個識別模型在訓練集和驗證集上的精確度和召回率,最后綜合精確度和召回率量化模型識別效果。試驗結果表明,基于DenseNet訓練的魚類識別模型綜合評分最高,在驗證集的精確度和召回率分別達到了99.21%和96.77%,整體 F1值達到了0.9742,模型理論識別精度達到預期?;?Python 開發并部署了一套遠程水下魚類實時識別系統,將模型部署到遠程服務器,移動終端通過網絡請求進行魚類識別模型調用,驗證集圖像實際測試表明,在網絡良好條件下,移動終端可以在1 s 內準確識別并顯示魚類信息。

關鍵詞:魚類識別模型;卷積神經網絡;模型評價;安卓;Ground-Truth ;實時識別系統

中圖分類號:S964;TP183???????????? 文獻標志碼:A??????????????? 文章編號:SA202202006

引用格式:李少波, 楊玲, 于輝輝, 陳英義.水下魚類品種識別模型與實時識別系統[J].智慧農業(中英文), 2022, 4(1):130-139.

LI Shaobo, YANG Ling, YU Huihui, CHEN Yingyi. Underwater fish species identification model and real-time iden‐tification system[J]. Smart Agriculture, 2022, 4(1):130-139.(in Chinese with English abstract)

1 引言

魚類是最重要的水產品之一,世界上已知的魚類有28,000多種[1],研發快速、準確的自動化魚類識別系統在魚類知識科普、混合養殖、海洋監管等方面具有重要意義。一個完整的自動化魚類識別系統至少應該包含識別方法的構建和模型部署兩個方面。

在魚類識別方法方面,傳統的基于手工特征提取的魚類識別方法,主要依靠魚的紋理、顏色、形狀等特征進行區分[2],雖然通過應用尺度不變特征變換 ( Scale-Invariant? Feature? Trans‐form , SIFT )[3]、方向梯度直方圖(Histogram of Oriented Gradient , HOG )[4] 等方法取得了卓有成效的改進,但魚類特征需要依賴專家手動設計,當識別另一種魚類時需要重新設計這些特征,方法不具有通用性且識別精度不高[5]。近年來,卷積神經網絡( Convolution Neural Net‐ work , CNN )在圖像識別領域取得了巨大進展[6] ,Krizhevsky等[7]提出的AlexNet卷積神經網絡在 ImageNet Large? Scale Visual Recognition Challenge ( ILSVRC )比賽中大放異彩,一舉斬獲了 ILSVRC2012比賽冠軍。在AlexNet之后,研究者們陸續提出了許多優秀的改進的 CNN 模型,如VGGNet [8] 、GoogLeNet [9] 、ResNet [10]、DenseNet [11]等,這些模型在解決圖像分類問題上都取得了優異的成績。CNN 系列算法已經成為了完成圖像識別任務的最佳算法之一[12]。不同的 CNN模型有不同的特點,沒有一種模型可以在所有場景下都優于其它模型[13],例如 VGG‐ Net 相比AlexNet可以學習更多特征,但也大幅增加了模型大小[14];GoogLeNet的 Inception模塊大幅減少了模型參數,但并沒有解決隨著深度的增加可能會出現的模型退化問題[15];ResNet緩解了隨著深度增加導致的梯度消失問題,但增加了實現難度并且引入了許多需要手工設置的權重[16]。對于具體的水下魚類識別任務,CNN 結構如何選擇和評價模型成為必須考慮的問題。

在模型部署方面,將模型直接部署到安卓移動終端是一種可行的方案。隨著移動互聯網時代發展和智能終端的普及,越來越多的人習慣用手機上網?!吨袊ヂ摼W絡發展狀況統計報告》顯示,截止到2020年12月,中國手機網民規模達到了9.86億,網民中使用手機上網的比例達到了99.7%[17]。2021年安卓系統占據了將近90%手機市場份額[18],在安卓終端上實現魚類識別可方便用戶使用,大幅降低終端用戶學習成本。但安卓終端相比于服務器計算能力有限,一般的深度模型需要針對移動設備進行裁剪、壓縮處理后才能部署到移動終端,對模型進行裁剪和壓縮會影響模型精度,而且將模型直接打包到安裝包會顯著影響安裝包大小,不利于功能擴展和維護升級。

針對上述問題,本研究以實現高精度魚類識別系統為出發點,嘗試通過研究多個主流 CNN結構,結合數據集特點和任務要求初步選擇模型,通過設計模型對比試驗進一步量化模型優劣,并設計一套遠程魚類識別系統完成模型部署,以實現一套完整的高精度魚類在線識別系統。

2 研究數據與方法

2.1系統設計

魚類識別系統的整體設計如圖1所示,用戶可以通過調用安卓手機攝像頭采集魚類圖像信息,通過網絡上傳魚類圖像至服務器進行識別,服務器在成功識別魚類品種后查詢魚類信息數據庫獲取魚的簡介、分布、習性、生長周期等魚類知識庫信息返回給安卓客戶端顯示。

2.2數據處理

采用 Ground-Truth 公開數據集[19] 中圖像訓練模型。數據集包含由海洋生物學家手動標記的23種魚類共計27,370張水下圖像,圖 2展示了數據集的每種魚類的圖像和數量。將圖像分成80%的訓練數據集(21,819張圖像)和20%的驗證數據集(5474張圖像),在訓練過程中使用隨機水平翻轉、隨機旋轉、顏色抖動等數據增強技術擴大樣本大小。圖像大小縮放到260×260像素作為模型輸入。

2.3基本原理

2.3.1 卷積神經網絡模型

卷積神經網絡是圖像處理領域廣泛應用的深度學習網絡,本質上是一種層次網絡[20],其主要的特點是包含卷積層和池化層,原始輸入圖像的具象信息通過層層卷積和池化操作被提取成高層次抽象信息[21],到最后一層后根據損失函數計算預測值和真實結果的誤差再逐層向前傳播矯正模型參數,直到模型收斂[22]。卷積和最大池化操作如圖3所示。

卷積操作的計算公式為

其中,L表示神經網絡層數;Mj表示輸入特征圖;Ki,j(L)表示卷積核;bj(L)表示偏置;f (·)表示激活函數。

AlexNet、VGGNet、GoogLeNet、ResNet、DenseNet是 CNN 模型的典型代表,統計顯示[24],各個 CNN模型大小如表1所示。

2.3.2 混淆矩陣

混淆矩陣是一種比較預測類別和真實類別差異的可視化矩陣[25]。每一列的總數表示預測為該類別的數據的數目,每一行的數據總數表示該類別的數據實際的數目,二分類任務的混淆矩陣如圖4所示。

其中,? TN (True Negative) 表示預測為 Negative類正確的數量,FN (False Negative)表示預測為 Negative類錯誤的數量,FP ( False Pos‐itive)表示預測為 Positive 類錯誤的數量, TP ( True Positive )表示預測為 Positive 類正確的數量。

在混淆矩陣的基礎上延伸出了精確率( Pre‐cision)、召回率( Recall )、準確率(Accuracy)等指標,精確率的計算公式為:

召回率的計算公式為:

Recall =

準確率的計算公式為:

TP + TN

Accurary =

平衡分數 F1值是綜合考慮了精確度、召回率的調和值,一般 F1值越大說明模型效果越好,其計算公式為:

2.4模型選擇與構建

CNN 模型要想獲得較理想的識別模型,需要基于大量數據集訓練[26],而且識別任務越復雜需要的數據集越大[27]。對于水下魚類實時識別任務,由于光線的變換、水的折射等復雜水下環境,水下魚類圖像往往存在分辨率不足、噪點多等特點[2],而且不同種類的魚的生存水域和生活習性存在巨大差異,一些魚類只能生活在深海之中,獲取大規模的水下魚類圖像并不容易。由于可獲取的水下魚類數據集比較有限,而AlexNet、ResNet等著名 CNN模型已經在圖像分類問題上經過了長時間、大規模的訓練,以這些預訓練模型為起點遷移到新的訓練任務的遷移學習方法可以有效降低模型對于訓練集大小的依賴,適合計算資源緊張、數據集不多的情形[28],本試驗采用基于預訓練模型遷移學習的方法生成模型。從表2可以看出,VGGNet生成的模型最大,達到了138 Mb ,模型越大意味著模型計算量越大,從而識別速度越慢。由于本次魚類實時識別任務對模型識別速度要求較高,本試驗選擇了AlexNet、GoogLeNet、ResNet和DenseNet預訓練網絡來訓練魚類識別模型,通過對各個模型最后的全連接層進行微調適配水下魚類識別任務。

為緩解模型過度擬合,選擇 Label smooth ‐ing [29]作為損失函數。Ranger [30]優化器結合了Radam [31] 和 Lookahead [32] 到單一的優化器中,從而可以獲取更高的精度,本文選擇了 Ranger作為訓練優化器。將學習率統一設置成0.0001,并使用 Cosine 策略衰減學習率,批處理大小為64,迭代30輪,完整的超參數的配置如表2所示。

3 結果分析

根據表2參數設置,分別在AlexNet、GoogLeNet、ResNet50和 DenseNet169上進行模型訓練,并在驗證集上測試了模型準確率、精確率、召回率等,試驗結果如表3所示。

準確率可以很大程度上說明模型的優劣,對于一般的分類問題,我們希望模型越準確越好。由圖1可以看出,本試驗所采用的 Ground-Truth 數據集存在嚴重的數據不平衡問題,最少的黑嘴雀魚只有16張圖片,而最多的網紋宅泥魚則多達12, 112張圖片,相差750多倍。此種情況下,模型只需要將分類結果分成網紋宅泥魚就會得到很高的準確率,僅依靠準確率指標已經無法準確評估模型效果。由表3可以看出基于GoogLeNet訓練的模型參數量最小,AlexNet模型的浮點計算量最小但同時參數量最大, DenseNet169的模型參數量和浮點計算次數比較均衡,基于 ResNet50訓練的模型驗證集精確度最高達到了99.26%,但同時召回率低于 DenseNet169。通常精確率越高,召回率就會越低。由公式(5) 可以看到 F1值能夠更全面地衡量模型優劣,更適合用于評估本試驗模型。根據表3的結果,進一步計算各個模型整體的 F1值,結果如表4所示。

由表4可見, DenseNet169模型整體 F1值達到了0.9742,是本次試驗獲得的 F1值最高的模型。雖然基于GoogLeNet訓練的模型參數量和浮點計算次數都少于 DenseNet169模型,但考慮模型是部署到有較強計算能力的服務器端,并且優先保障魚類識別應用的精準度,本研究選擇了識別精度更高的 DenseNet169模型進行部署。

4 水下魚識別模型部署

4.1服務器實現

(1)開發平臺

操作系統:Ubuntu 20.04。

平臺環境:? Python 3.8, CUDA 11.2,Py‐Torch 1.7.0, Anaconda 2.0.3, Django 3.2.4[33] ,Gunicorn 20.0.4[34]等。

開發工具:PyCharm Professional 2019.2。

數據庫:MySQL。

為方便模型調用,本研究選擇了 Python語言進行服務器開發,在配備 GT1650顯卡的 Ubuntu系統上安裝了英偉達顯卡驅動,在 Anaconda 創建虛擬環境并在虛擬環境中安裝 Django 、Py‐Torch 、numpy、pandas 等必要工具包完成環境配置。

(2)項目搭建

在 PyCharm Professional中新建 Django項目,并將 Python 解釋器配置成上述虛擬環境,按照Django框架規范在配置文件里配置好數據庫和安全策略等各類中間件,創建FishInfo類映射到數據庫并納入 Django Admin 管理,在 urls.py 文件中完成 URL映射,服務器項目結構如圖5所示。

(3)模型集成

參考Pytorch官方文檔[35]將上述權重文件打包成*. tar 格式,創建 classifier 類,在該類的__init__方法中使用Pytorch提供的 torch系列API完成模型初始化,并新建perdict函數實現模型預測邏輯,最終通過在 Django 的 views.py 中引入classifier 類,傳遞圖像數據給 classifier 對象完成模型調用,模型集成和初始化代碼如圖6所示。

(4)魚類信息存儲

本系統采用 MySQL 來存儲結構化的魚類信息,系統所涉及的核心表為FishInfo魚類信息表,包含了 Ground-Truth數據集中魚的介紹性信息,這些魚類信息采集自樂潛無線海洋魚類資料庫[36] 和臺灣魚類資料庫[37],FishInfo表的設計如表5所示。

(5)服務發布

由于 Django本身帶的調試服務器性能較弱,為提高服務器并發效率,本研究使用Guni‐corn [34] 多線程形式來發布服務端程序,最終服務器的相關環境和提供的接口服務如圖7所示。

4.2安卓APP 實現

(1)開發平臺

操作系統:macOS 11.2。

平臺環境:? JDK 1.8.0_211, Android? SDKPlatform 30。

開發工具:AndroidStudio 4.1.2[38]。

在 Mac 電腦上安裝 JDK 、Android SDK 并配置好環境變量,在AndroidStudio IDE中完成具體的 APP程序編碼工作。

(2)項目搭建

為提高編碼效率,APP引入了OKHttp [39]輕量級網絡框架,在子線程中收發識別請求,由于谷歌規定安卓代碼在子線程中不能更新界面,為方便界面交互引入了EventBus [40]來完成跨線程事件傳遞。以上兩個依賴均為開源項目依賴,在AndroidStudio的build.gradle配置文件中添加相應的倉庫地址即可完成依賴項導入。APP項目結構如圖8所示。

(3)圖像采集和上傳

在圖像采集方面,為盡可能提高軟件兼容性,APP鎖定屏幕為豎屏,采用 Android SDK提供的 Camera 類完成相機的調用和圖像幀獲取,將原 NV21格式圖像幀包裝成 Bitmap并壓縮為固定的640×480像素大小,最終編碼成 Base64格式字符串,通過OKHttp在子線程中將 Base64編碼的圖片上傳至服務器請求識別。

(4)界面實現

當服務器放回的識別可信度達到一定閾值后,APP顯示相關魚類信息,識別結果在 APP子線程中接收,通過EventBus完成識別結果的事件分發,最終在主線程的界面完成識別結果顯示。APP的識別結果界面如圖9所示。

4.3系統測試

(1)測試環境

軟件環境:魚類在線識別系統 V1.0。

移動終端:紅米 K40手機。

服務器環境:配備 Intel i7-8700處理器和英偉達 GTX1650顯卡的聯想臺式機。

網絡環境:校園無線局域網。

場地環境:實驗室環境40 W熒光燈下。

(2)測試方法

通過在程序中加入耗時計算代碼測試識別過程耗時,計量模型識別耗時以及從手機終端發出網絡請求到收到識別信息的總時延,具體的測試操作如圖10所示,在紅米 K40手機上安裝軟件后,在臺式電腦顯示器上打開驗證集中的魚類圖片,利用手機后置攝像頭拍照進行魚類識別,手機軟件上實時顯示識別結果和識別耗時。

(3)測試結果

使用上述環境和方法對魚識別系統應用的實際測試,測試結果如表6所示。由表6可見,在上述測試環境下,APP可以在百毫秒級準確識別魚類圖片,并且延遲的主要原因是網絡傳輸耗時,基本可以滿足識別應用需要。

5 結論與展望

本研究以水下魚類實時識別任務為切入點,提供了一個完整的魚類識別任務模型選擇、訓練的評價的思路,并提出了一種基于安卓移動終端的遠程魚類識別解決方案,該方案具有良好的擴展性,可以為其它圖像識別任務提供重要參考,所實現系統可以應用于魚類知識科普、魚類養殖等各類需要識別魚類的場景。本次試驗結果表明: (1) 基于 DenseNet169訓練的模型整體 F1 值達到了0.9742,是本試驗獲得的最優模型。(2) 本試驗提出的基于安卓移動終端的遠程魚類識別解決方案取得了良好的識別效果,具有較好的識別實時性。

后續研究還可以在模型壓縮裁剪領域展開工作,對所部署模型進行裁剪壓縮,進一步提高模型識別效果。

參考文獻:

[1] NELSON J S, GRANDE T C, WILSON M V. Fishesof the? world[M]. New? Jersey: John? Wiley & Sons,2016.

[2] YANG L, LIU Y, YU H, et al. Computer vision modelsin intelligent aquaculture with emphasis on fish detec‐tion? and? behavior? analysis: A review[J]. Archives? ofComputational? Methods? in? Engineering, 2021, 28(4):2785-2816.

[3] LOWE D G. Distinctive image features from scale-in‐variant keypoints[J]. International journal of computervision, 2004, 60(2):91-110.

[4] DALAL N, TRIGGS B. Histograms of oriented gradi‐ents for human detection[C]//2005 IEEE Computer So‐ciety Conference on Computer Vision and Pattern Rec‐ognition (CVPR'05). Piscataway,? New? York,? USA:IEEE, 2005:886-893.

[5] 盧宏濤, 張秦川.深度卷積神經網絡在計算機視覺中的應用研究綜述[J].數據采集與處理 , 2016, 31(1):1-17.

LU H, ZHANG Q. Applications of deep convolutionalneural network in computer vision[J]. Data Acquisitionand Processing, 2016, 31(1):1-17.

[6] AL-SAFFAR A A M, TAO H, TALAB M A. Review ofdeep? convolution neural network? in? image? classifica‐tion[C]//2017 International Conference on Radar, An‐tenna,? Microwave,? Electronics,? and? Telecommunica‐tions (ICRAMET). Piscataway,? New? York,? USA: IEEE, 2017:26-31.

[7] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. Im‐agenet? classification? with? deep? convolutional? neural networks[J]. Advances in Neural Information Process‐ing Systems, 2012, 25:1097-1105.

[8] SIMONYAN K, ZISSERMAN A. Very deep convolu‐tional networks for large-scale image recognition[J/OL]. arXiv:1409.1556, 2014.

[9] SZEGEDY C, LIU W, JIA Y, et al. Going deeper withconvolutions[C]// The IEEE Conference on Computer vision and Pattern Recognition. Piscataway, New York, USA: IEEE, 2015:1-9.

[10] HE K, ZHANG X, REN S, et al. Deep residual learn‐ing? for? image ?recognition[C]// The? IEEE? Conference on? Computer Vision? and Pattern Recognition. Piscat‐ away, New York, USA: IEEE, 2016:770-778.

[11] HUANG? G,? LIU? Z,? VAN? DER? MAATEN? L,? et? al.Densely? connected? convolutional? networks[C]// The IEEE Conference on Computer Vision and Pattern Rec‐ognition. Piscataway,? New? York,? USA: IEEE, 2017:4700-4708.

[12] HU? H,? YANG? Y. A? Combined? GLQP? and? DBN-DRF? for? face? recognition? in? unconstrained? environ‐ments[C]//20172nd International Conference on Con‐trol,? Automation? and? Artificial? Intelligence (CAAI 2017). Paris: Atlantis Press, 2017:553-557.

[13] NOVAKOVI?? J? D,? VELJOVI? A,? ILI?? S? S,? et? al.Evaluation of classification models in machine learn‐ing[J]. Theory? and? Applications? of? Mathematics & Computer Science, 2017, 7(1):39-46.

[14] ERTOSUN? M? G,? RUBIN? D? L. Probabilistic? visualsearch for masses within mammography images using deep learning[C]//2015 IEEE International Conference on? Bioinformatics? and? Biomedicine (BIBM). Piscat‐ away, New York, USA: IEEE, 2015:1310-1315.

[15] LIN C, LIN C, WANG S, et al. Multiple convolutionalneural networks fusion using improved fuzzy integral for? facial? emotion? recognition[J]. Applied? Sciences, 2019, 9(13): ID 2593.

[16] BHATIA G S, AHUJA P, CHAUDHARI D, et al. Farm ‐guide-one-stop solution to farmers[J/OL]. Asian? Jour‐nal? For? Convergence? In? Technology, 2019, 4(1).[2021-09-06]. https://asianssr.org/index.php/ajct/article/ view/789.

[17] 中國互聯網絡信息中心.中國互聯網絡發展狀況統計報告[EB/OL].[2021-09-07]. http://www. cac.gov.cn/2021-02/03/c_1613923423079314.htm.

[18]孫彥博.2021年中國手機操作系統行業研究報告[R].南京:頭豹研究院, 2021.

[19] BOOM? B? J,? HUANG? P X,? HE? J,? et? al. Supportingground-truth annotation of image datasets using cluster‐ing[C]// The 21st International Conference on PatternRecognition? (ICPR2012). Piscataway,? New? York,USA: IEEE, 2012:1542-1545.

[20] MAKANTASIS K, KARANTZALOS K, DOULAMISA,? et? al. Deep? supervised? learning? for? hyperspectraldata? classification? through? convolutional ?neural? net‐works[C]//2015 IEEE? International? Geoscience? andRemote? Sensing? Symposium (IGARSS). Piscataway,New York, USA: IEEE, 2015:4959-4962.

[21]魏秀參.解析深度學習:卷積神經網絡原理與視覺實踐[M].北京:電子工業出版社, 2018:13-14.

[22] RUMELHART D E, HINTON G E, WILLIAMS R J.Learning representations by back-propagating errors[J].nature, 1986, 323(6088):533-536.

[23] BOUVRIE? J. Notes? on? convolutional? neural? net‐works[J/OL].(2006-11-22)[2021-09-06]. https://www.researchgate.net/publication/28765140_Notes_on_Con‐volutional_Neural_Networks.

[24] KHAN A, SOHAIL A, ZAHOORA U, et al. A surveyof the recent architectures of deep convolutional neuralnetworks[J]. Artificial? Intelligence? Review, 2020, 53(8):5455-5516.

[25] RAHMAD F, SURYANTO Y, RAMLI K. Performancecomparison? of anti-spam? technology? using? confusionmatrix classification[C]// IOP Conference Series: Mate‐rials? Science? and? Engineering. Bandung,? Indonesia:IOP Publishing, 2020:12076.

[26] WANG H, ZHAO T, LI L C, et al. A hybrid CNN fea‐ture model for pulmonary nodule malignancy risk dif‐ferentiation[J]. Journal of X-ray Science and Technolo‐gy, 2018, 26(2):171-187.

[27] KAMILARIS? A,? PRENAFETA-BOLD?? F? X. A? re‐view of the use of convolutional neural networks in ag‐riculture[J]. The Journal of Agricultural Science, 2018,156(3):312-322.

[28]梁紅, 金磊磊, 楊長生.小樣本情況基于深度學習的水下目標識別研究[J].武漢理工大學學報(交通科學與工程版), 2019, 43(1):6-10.

LIANG H, JIN L, YANG C. Research on underwatertarget recognition based on depth learning with smallsample[J]. Journal of Wuhan University of Technology(Transportation? Science & Engineering), 2019, 43(1):6-10.

[29] ZHANG C, JIANG P, HOU Q, et al. Delving deep intolabel smoothing[J]. IEEE Transactions on Image Pro‐cessing, 2021, 30:5984-5996.

[30] GitHub-lessw2020/Ranger-Deep-Learning-Optimizer:Ranger — A synergistic optimizer using RAdam (Rec‐tified Adam), Gradient Centralization and LookAhead in? one? codebase[EB/OL].[2021/8/30]. https://github. com/lessw2020/Ranger-Deep-Learning-Optimizer.

[31] LIU L, JIANG H, HE P, et al. On the variance of theadaptive? learning? rate? and? beyond[J/OL]. arXiv:1908.03265, 2019.

[32] ZHANG M R, LUCAS J, HINTON G, et al. Looka‐head? optimizer: K? steps? forward, 1 step? back[J/OL]. arXiv:1907.08610, 2019.

[33] Django overview[EB/OL].[2021-07-28]. https://www.djangoproject.com/start/overview/.

[34] Gunicorn-Python??? WSGI??? HTTP??? Server??? forUNIX [EB/OL].[2021-07-28]. https://gunicorn.org/.

[35] PyTorch documentation[EB/OL].[2021-07-28]. https://pytorch.org/docs/stable/index.html.

[36] 中文海洋魚類資料庫[EB/OL].[2021-08-30]. http://sea.fundiving.cn.

[37]臺灣魚類資料庫[EB/OL].[2021-08-30]. https://fishdb.sinica.edu.tw/chi/species.php.

[38] Android developers[EB/OL].[2021-07-28]. https://developer.android.google.cn/studio.

[39] OkHttp[EB/OL].[2021-08-30]. https://square.github.io/okhttp/.

[40] GitHub-asaskevich/EventBus:[Go] Lightweight event‐bus? with? async? compatibility? for? Go[EB/OL].[2021-08-30]. https://github.com/asaskevich/EventBus.

Underwater Fish Species Identification Model andReal-Time Identification System

LI Shaobo1,2,3 , YANG Ling1,2,3 , YU Huihui4 , CHEN Yingyi1,2,3*

(1. College of Information and Electrical Engineering, China Agricultural University, Beijing 100083, China;2. National Innovation Centerfor Digital Fishery, China Agricultural University, Beijing 100083, China;3. Beijing Engineering and Technology Research Centrefor the Internet of Things in Agriculture, Beijing 100083, China;4. School of Information Science and Technology, Beijing Forestry University, Beijing 100083, China )

Abstract: Convolutional neural network models have different advantages and disadvantages, it is becoming more and more dif‐ficult to select an appropriate convolutional neural network model in an actual fish identification project. The identification of underwater fish is a challenge task due to varies in illumination, low contrast, high noise, low resolution and sample imbalance between each type of image from the real underwater environment. In addition, deploying models to mobile devices directly will reduce the accuracy of the model sharply. In order to solve the above problems, Fish Recognition Ground-Truth dataset was used to training model in this study, which is provided by Fish4Knowledge project from University of Edinburgh. It contains 27, 370 images with 23 fish species, and has been labeled manually by marine biologists. AlexNet, GoogLeNet, ResNet and DenseNet models were selected initially according to the characteristics of real-time underwater fish identification task, then a comparative experiment was designed to explore the best network model. Random image flipping, rotation and color dithering were used to enhance data based on ground-truth fish dataset in response to the limited number of underwater fish images. Con‐sidering that there was a serious imbalance in the number of samples in each category, the label smoothing technology was used to alleviate model overfitting. The Ranger optimizer and Cosine learning rate attenuation strategy were used to further improve the training effect of the models. The accuracy and recall rate information of each model were recorded and counted. The results showed that, the accuracy and recall rate of the fish recognition model based on DenseNet reached 99.21% and 96.77% in train set and validation set respectively, its F1 value reached 0.9742, which was the best model obtained in the experiment. Finally, a remote fish identification system was designed based on Python language, in this system the model was deployed to linux server and the Android APP was responsible for uploading fish images via http to request server to identify the fishes and displaying the identification information returned by server, such as fish species, profiles, habits, distribution, etc. A set of recognition tests were performed on real Android phone and the results showed that in the same local area net the APP could show fish informa‐tion rapidly and exactly within 1 s.

Key words: fish identification model; CNN; model evaluation; Android; Ground-Truth; real-time identification system

猜你喜歡
卷積神經網絡安卓
iPhone不卡的秘密曝光:安卓也能享受
MIPS安卓平臺上ARM二進制翻譯系統
文物表情包
安卓系統或成智能汽車標配
基于卷積神經網絡溫室智能大棚監控系統的研究
基于深度卷積神經網絡的物體識別算法
一種基于安卓系統的手機側抓包分析方法
深度學習算法應用于巖石圖像處理的可行性研究
基于深度卷積網絡的人臉年齡分析算法與實現
基于卷積神經網絡的樹葉識別的算法的研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合