于秋玉



摘 要:近年來,蝦類養殖發展迅速,已經成為我國水產養殖中的新型支柱產業,給國家及養殖企業帶來了巨大的經濟與社會價值。在對蝦類進行養殖的過程中,對蝦苗進行識別和數量統計為蝦苗運送銷售、科學喂養蝦苗、挑選優質蝦苗等環節提供了強力支持。因此,對蝦苗進行智能識別與統計對蝦類養殖業具有很重要的現實意義。但是,因蝦苗圖像存在反光、蝦苗個體較小等特點,對蝦苗進行智能識別與統計特別困難。本文針對蝦苗識別存在的難點,提出一種基于改進的YOLOv4的蝦苗智能識別算法,在原有的YOLOv4基礎上,通過聚類方法對蝦苗大小進行統計,獲得蝦苗大小的分布特征。基于該統計結果,對YOLOv4模型進行優化,將預設的8個錨框縮減為4個。為了讓網絡更好地關注重要特征并抑制不必要的特征,在YOLOv4網絡的輸出階段加入SAM模塊。實驗表明,本文提出的算法在準確率、召回率、mAP值的評價中均取得了最優或次優的結果。
關鍵詞:卷積神經網絡;深度學習;蝦苗識別;目標檢測
中圖分類號:TP391.41 文獻標識碼:A 文章編號:1003-5168(2021)06-0025-04
Research on Intelligent Recognition and Statistical Algorithm
of Shrimps Based on Improved YOLOv4
YU Qiuyu
(School of Information Engineering, Dalian Ocean University,Dalian Liaoning 116023)
Abstract: In recent years, shrimp culture has developed rapidly, and has become a new pillar industry in China's aquaculture, which has brought great economic and social value to the country and aquaculture enterprises. In the process of shrimp culture, the identification and quantity statistics of shrimps provide strong support for the transportation and sales of shrimps, scientific feeding of shrimps, selection of high-quality shrimps and other links. Therefore, the intelligent identification and statistics of shrimps has a very important practical significance for shrimp breeding industry. However, it is very difficult to recognize and count shrimps intelligently because of the reflection and small size of shrimps. Aiming at the difficulties of shrimp identification, this paper proposed an intelligent shrimp identification algorithm based on improved YOLOv4. Based on the original YOLOv4, the size of shrimp was counted by clustering method, and the distribution characteristics of shrimp size were obtained. Based on the statistical results, the YOLOv4 model was optimized, and the preset 8 anchor frames were reduced to 4. In order to make the network pay more attention to the important features and suppress the unnecessary features, the spatial attention module (SAM) was added to the output stage of the YOLOv4 network. Experimental results show that the proposed algorithm achieves the best or suboptimal results in the evaluation of accuracy, recall and mAP value.
Keywords: convolution neural network;deep learning;shrimp recognition;target detection
由于蝦苗智能檢測在智慧漁業中具有重要的應用,因此許多專家學者嘗試利用計算機視覺技術來解決蝦苗識別問題。其中,蝦苗的反光、多尺度等問題嚴重影響識別的準確性。
1 相關研究
張建強等[1]發明了一種對蝦苗種計數裝置。該裝置利用重量與電量轉換器和微計算機或單板機按照預先編好的程序自動計數,不會影響出苗時苗種存活率,計數成本低,但計數誤差受計數速度影響大。
胡利華等[2]發明了一種蝦苗計數裝置以及計數方法。該方法通過工業相機的圖像采集,完成蝦苗圖像數據的采集工作,然后通過圖像處理識別算法,完成對采集圖像的智能識別,從而實現蝦苗的自動計數和輸出。該裝置可降低人工成本,但智能化程度不高。
范松偉等[3]針對蝦苗個體小、密度大、易失活等特點,提出了一種基于卷積神經網絡的蝦苗自動計數方法,將訓練數據集每個蝦苗進行標注,制作真實密度圖,然后放入改進后的卷積神經網絡中學習圖像特征以獲取生成密度圖,最后由密度圖積分求和,從而得到蝦苗數量,但該方法無法對蝦苗進行識別。
針對上述方法存在的識別與計數精度較差、運行速度較慢、實驗條件比較復雜等問題,本文提出了一種基于改進的YOLOv4智能識別與統計算法。該算法可以有效提升識別精度,加快識別速度。
2 本文方法
2.1 YOLOv4網絡模型優化
根據YOLOv4的算法原理,為了讓網絡更好地學習蝦苗圖像,本文從網絡模型方面對算法進行改進并采用K均值聚類(K-means)算法對自制數據集進行聚類分析,從而得到適應訓練集的聚類數據。
圖1為研究者改進之后的YOLOv4結構圖。與傳統的YOLOv4目標檢測模型相比,研究者在模型的預測階段前將三列特征圖進行融合,然后放入設計的空間注意力模塊中,最后進行一次預測。與之前YOLOv4做3個不同尺度的預測相比,本研究采用一次預測的原因是,蝦苗圖像尺寸都特別小,不含有大中尺寸的蝦苗圖像。為了讓網絡專注于學習蝦苗圖片的特征,本研究加入了SAM(Spatial Attention Module)模塊來提升模型的預測精度(見圖2)。
SAM模塊可以利用不同特征圖之間的空間關系,使模型關注特定特征空間位置。具體來說,SAM先在軸的方向對不同特征圖的相同位置像素進行全局平均池化和最大池化操作,分別得到兩種不同的特征圖,然后將這兩種不同的特征圖連接到一起,這時特征圖的數量變為原特征圖的兩倍;之后,再利用一個7×7大小的卷積對生成的特征圖進行卷積操作,后接一個Sigmoid函數,得到一個與原特征圖相同但又加上空間注意力機制權重的空間矩陣;最后把得到的空間注意力機制矩陣對應相乘到原特征圖上,得到新的特征圖。
2.2 基于K-means聚類錨框算法
傳統的YOLOv4模型[5]使用錨框來檢測目標。在目標檢測過程中,錨框的數量和大小決定了檢測的準確度和速度,因為一個合適的錨框可以使特征學習和目標檢測更加容易。YOLOv4基于VOC數據集對錨框進行聚類,其大小分別是(10,13)、(16,30)、(33,23)、(30,61)、(62,45)、(59,119)、(116,90)、(156,198)、(373,326),這與YOLOv3的錨框選取是相同的。針對不同數據集、不同檢測物體大小和同分辨率的圖像,不能統一使用同樣的先驗框,而且VOC數據集中的先驗框大都是長寬比例相同的框。
在本文創建的蝦苗數據集中,蝦苗大多都是偏平的,完全采用基于VOC數據集格式的先驗框是不符合需求的。因此,系統需要根據自己的訓練集使用K-means算法重新對先驗框的大小進行聚類。
K-means聚類是目標檢測算法中獲取適合自己數據集的常用方法,計算公式為:
[Jb1,b2=minw1,w2minh1,h2w1h1+w2h2-minw1,w2minh1,h2]? ? ?(1)
[djb1,b2=1-Jb1,b2]? ? ? ? ? ? ? ? ? ? ?(2)
式中,[J(b1,b2)]為蝦苗檢測模型的交并比;[w1]為預測框的寬;[w2]為真實框的寬;[h1]為預測框的高;[h2]為真實框的高;[djb1,b2]為K-means算法的度量距離。
2.3 損失函數
本研究基于YOLOv4改進的蝦苗檢測算法損失分為3個部分:類別損失、置信度損失、位置損失。類別損失采用二元交叉熵損失,即對每一個類別計算交叉熵損失,進行求和;位置損失采用CIoU Loss(Distance-IoU Loss);置信度損失采用二元交叉熵損失,具體公式為:
[Llogisticy,y=-ylogy-1-ylog1-y]? ? ? ? ? ? (3)
[LCIoU=1-IoU+ρ2b,bgtc2+αυ]? ? ? ? ? ? ? ? ? ? ? (4)
[LConfidencey,y=-ylogy-1-ylog1-y]? ? ? ? ? ? (5)
[Losssum=Llogisticy,y+LCIoU+LConfidencey,y]? ? ? ? ? ? ? ?(6)
式中:[y]為真實值,[y∈0,1];[y]為預測值,其計算公式為:
[y=σy]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (7)
[σy=11+e-y]? ? ? ? ? ? ? ? ? ? ? ? ? ? (8)
[?σ?y=σ1-σ]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(9)
[y=wx+b=jwjxj+b]? ? ? ? ? ? ? ? ? ? ? ? ? (10)
[?y?wj=xj]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(11)
3 實驗結果分析
3.1 實驗評價指標
本文對目標檢測模型評價過程中每個類別的每個等級分別進行評價,使用準確率(Precision)、召回率(Recall)、平均準確率(mean Average Precision,mAP)作為衡量模型精度的評價標準。同時,使用P-R曲線直觀地顯示模型性能。目標檢測模型的檢測速度使用每秒幀數(FPS)作為衡量標準。
3.2 蝦苗數據集制作及標注
本文原始數據集包含1 000張帶注釋的圖片。這些圖像一部分是研究者在養殖企業實地拍攝的,另一部分是從互聯網上隨機抓取的。依據8.5∶1.5的比例,將數據集分成訓練集和測試集。本文采用標注工具LabelImg對圖像數據進行標注。LabelImg是一種視覺圖像校準工具,其標注界面如圖3所示。
3.3 實驗環境及參數設置
實驗環境是Windows 10操作系統,CPU處理器為AMD2600,其主頻是3.4 GHz,GPU為1 060,實驗平臺是PyCharm(2018版)。所用的深度學習框架為Pytorch。
3.4 實驗結果分析
3.4.1 基于改進的YOLOv4實驗結果。為了驗證SAM模塊在改進的YOLOv4模型中的有效性,研究者設計了一個不加SAM模塊的變體模型。不加SAM模塊和加SAM模塊的對比結果如表1和圖4所示。當改進的YOLOv4模型未使用SAM模塊時,模型的性能在蝦苗數據集上的各指標均有較大程度的回落。這說明,在識別準確性和魯棒性上,使用SAM模塊的識別效果要優于不使用SAM模塊的效果,證明了SAM模塊在解決蝦苗識別問題上的有效性。同時,從圖4也可以看出,添加SAM模塊后,蝦苗的識別精度更高。
采用改進過的YOLOv4網絡與傳統YOLOv4、YOLOv3、SSD、MobileNet網絡作對比,結果如表2所示[4-7]。從表2可以看出,與傳統YOLOv4目標檢測算法相比,使用改進的YOLOv4網絡,準確度提升了1.5%,召回率提升了2%,同時在計算量和參數上減少了5%。
3.4.2 K-means算法聚類實驗結果。研究者對蝦苗尺寸進行聚類之后,當[K]=4時,曲線趨于平滑。因此,選擇[K]=4作為錨框的個數,聚類的先驗框為[(26,65)(30,70)(35,76)(40,80)]。
使用K-means聚類算法前后的mAP結果如表3所示。從表3可知,在蝦苗數據集下,使用聚類算法后,改進的YOLOv4的檢測mAP相比之前準確率提升了1.3%,召回率提升了1.5%,mAP提升了5%。
4 結論
本文提出一種基于改進的YOLOv4的智能識別與統計算法,該算法可以提高蝦苗檢測精度,同時降低運行時間。具體來說,在YOLOv4的網絡輸出階段,將三個尺寸的特征圖進行融合,然后對融合之后的特征圖放入SAM注意力機制模型進行學習,讓網絡更好的學習蝦苗的細節信息。另一方面,針對蝦苗圖像的尺寸特點,研究者采用K-means算法對YOLOv4的錨框進行重新選擇。結果表明,本文提出的算法在準確率、召回率、mAP值的評價中均取得了最優或次優的結果。
參考文獻:
[1]張建強,周瑋,桑田成.對蝦苗種計數裝置:CN209473350U[P].2019-01-09.
[2]胡利華,閆茂倉,吳佳燕,等.一種蝦苗計數裝置及方法:CN111418537A[P].2020-05-13.
[3]范松偉,林翔瑜,周平.基于改進的卷積神經網絡的蝦苗自動計數研究[J].漁業現代化,2020(6):35-41.
[4] REDMON J,FARHADI A . YOLOv3: An Incremental Improvement[EB/OL]. (2018-04-08)[2021-02-01]. https://arxiv.org/abs/1804.02767.
[5] BOCHKOVSKIY A,WANG C Y,LIAO H . YOLOv4: Optimal Speed and Accuracy of Object Detection[EB/OL].(2020-04-23)[2021-02-01]. https://arxiv.org/abs/2004.10934.
[6]LIU W,ANGUELOV D,ERHAN D , et al. SSD: Single Shot MultiBox Detector[J]. European Conference on Computer Vision,2016(9):21-37.
[7]HOWARD A G ,ZHU M ,CHEN B ,et al. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications[EB/OL].(2017-04-17)[2021-02-01].https://arxiv.org/abs/1704.04861.