馮 娟 梁翔宇 曾立華 宋小鹿 周璽興
(1.河北農(nóng)業(yè)大學(xué)信息科學(xué)與技術(shù)學(xué)院,保定 071001;2.河北省農(nóng)業(yè)大數(shù)據(jù)重點實驗室,保定 071001;3.華南師范大學(xué)生命科學(xué)學(xué)院,廣州 510631;4.廣東省水產(chǎn)健康安全養(yǎng)殖重點實驗室,廣州 510631;5.河北農(nóng)業(yè)大學(xué)機電工程學(xué)院,保定 071001)
單環(huán)刺螠?zhǔn)侵袊狈窖睾3R姷囊环N海洋底棲無脊椎動物,俗名海腸,體壁富含多種人體需要的生物活性肽,肉味鮮美,具有很高的營養(yǎng)價值及經(jīng)濟價值[1]。單環(huán)刺螠有潛沙穴居習(xí)性,在海底營造非標(biāo)準(zhǔn)的U型洞穴生活,洞口向上,身體能潛到40 cm深度,洞口直徑約3 cm[2]。目前我國仍采用手工挖捕成體的方式,其缺陷較多,容易造成單環(huán)刺螠死亡或殘損,且采捕效率低、成本高,影響池塘內(nèi)刺參的生態(tài)混養(yǎng)等[3]。本文對單環(huán)刺螠洞口進行識別研究,是實現(xiàn)自動化采捕、養(yǎng)殖池塘內(nèi)產(chǎn)量預(yù)測、確定最佳單環(huán)刺螠投放比例的必要準(zhǔn)備,目前尚未見相關(guān)報道。
水下圖像質(zhì)量退化是準(zhǔn)確識別單環(huán)刺螠洞口的主要難點。此前,國內(nèi)外學(xué)者對水下目標(biāo)識別進行了廣泛的研究。QIAO等[4]利用對比度受限的自適應(yīng)直方圖均衡化(Contrast limited adaptive histogram equalization, CLAHE)算法增加海參刺和海參體的對比度,利用主動輪廓法對海參進行分割。吳健輝等[5]提出一種基于圖像處理技術(shù)的魚種類自動識別方法,識別4種主養(yǎng)魚類,對團頭魴的識別精度為100%,對鯽、鯉、草魚的識別精度為96%。在實際應(yīng)用中,由于水下圖像信息的復(fù)雜性,傳統(tǒng)目標(biāo)檢測算法只能適用于某種特定環(huán)境,無法應(yīng)用在不同場景,算法檢測的精確率和速度都有待提高[6]。深度學(xué)習(xí)給水下目標(biāo)識別帶來了新的發(fā)展方向,在農(nóng)業(yè)[7-10]、工業(yè)[11-13]等多個領(lǐng)域得到了廣泛應(yīng)用。DAI等[14]使用帶有內(nèi)部特征和核校準(zhǔn)模塊的殘差網(wǎng)絡(luò)進行水生生物識別,在自建數(shù)據(jù)集上識別Top-1準(zhǔn)確率提高至95.7%。張明華等[15]通過改進Cascade R-CNN和圖像增強進行夜晚魚類的檢測。張佳林等[16]利用機器視覺進行魚類攝食分類,綜合準(zhǔn)確率達到了89%。
上述研究對象多為水中生物,對于水下洞口識別暫無涉及,且圖像采集多在水質(zhì)清的環(huán)境下進行。但養(yǎng)殖塘塘底受光線較弱和存在雜質(zhì)等因素的影響,目標(biāo)檢測效果并不理想。當(dāng)前基于深度學(xué)習(xí)的目標(biāo)檢測算法主要分為兩類,基于Two-stage的RCNN系列算法,基于One-stage的SSD和YOLO系列算法?;赥wo-stage的檢測算法具有高檢測精度的特點,缺點是檢測速度較慢;基于One-stage的檢測算法檢測精度相對較低,但檢測速度快,能夠滿足實時檢測需求。采捕船采捕時模型需部署在船上的嵌入式設(shè)備中進行實時檢測,模型尺寸與檢測速度要求較高。
針對上述問題,選擇One-stage系列綜合表現(xiàn)最穩(wěn)定的YOLO v4為基礎(chǔ)目標(biāo)檢測模型,替換其主干網(wǎng)絡(luò)為輕量型網(wǎng)絡(luò),在此基礎(chǔ)上使用深度可分離卷積塊替換原網(wǎng)絡(luò)中的普通卷積塊,降低模型參數(shù)量,提高檢測速度;采用MSRCR增強算法對數(shù)據(jù)集進行圖像增強,提高圖像質(zhì)量;對錨點框尺寸進行優(yōu)化,降低預(yù)設(shè)錨點框尺寸帶來的誤差,進一步提升檢測精度。最后,將研究模型部署在嵌入式設(shè)備上,測試模型效果。
實驗地點位于河北省秦皇島市附近的一塊單環(huán)刺螠養(yǎng)殖池塘。模擬實際場景下采捕船的采捕,搭建了一套由水下相機、自主游弋式巡航無人船、Jetson AGX Xavier構(gòu)成的圖像采集裝置,獲取單環(huán)刺螠養(yǎng)殖塘底影像。自主游弋式巡航無人船(圖1a)(山一科技)配備兩個電池供電的無刷電機,由采集人員在池塘內(nèi)遙控航行。無人船搭載成像設(shè)備——水下攝像頭,鏡頭分辨率為352像素×240像素,獲取塘底視頻保存至嵌入式設(shè)備Jetson AGX Xavier上。
圖1 圖像采集裝置
視頻獲取時間為2020年11月15日,采用垂直攝影的方式,共獲取視頻21.55 min,利用Python程序每間隔25幀截取一幅圖像,人工復(fù)檢刪除質(zhì)量較低的圖像后共保留782幅圖像。為豐富數(shù)據(jù)集、提高模型泛化能力,對圖像進行數(shù)據(jù)增強操作,每幅圖像進行水平鏡像、垂直鏡像及水平垂直鏡像,將數(shù)據(jù)集擴增至3 128幅。將3 128幅圖像隨機劃分為訓(xùn)練集、測試集和驗證集,其中(訓(xùn)練集+驗證集)與測試集圖像數(shù)量比例為9∶1;訓(xùn)練集與驗證集圖像比例為9∶1,訓(xùn)練集2 533幅,驗證集282幅,測試集313幅。
使用目標(biāo)檢測算法訓(xùn)練前,需要對采集的原始圖像進行人工標(biāo)注。選擇當(dāng)前常用的LabelImg標(biāo)注工具對水下單環(huán)刺螠洞口進行標(biāo)注,選定圖像中僅有單環(huán)刺螠洞口一個分類,使洞口中心點位于標(biāo)注框中心,標(biāo)注完成后自動生成含有類別和位置信息的xml文件。為滿足YOLO v4神經(jīng)網(wǎng)絡(luò)的訓(xùn)練要求,將制作好的數(shù)據(jù)集保存為PASCAL VOC格式,以便用于網(wǎng)絡(luò)訓(xùn)練與測試,在3 128幅圖像中共含邊框標(biāo)注樣本30 896個。
水下圖像由于水中介質(zhì)吸收光能、散射改變光的方向等,圖像對比度低、清晰度低、質(zhì)量退化[17]。為提升檢測精度,對數(shù)據(jù)集進行圖像增強處理。目前主流的水下圖像增強方法包括3類:①基于空間域的增強方法,包括灰度變化和直方圖均衡化等。②基于顏色恒常性的增強方法,包括色域映射和Retinex理論等。③基于先驗知識的增強方法,包括暗通道先驗去霧和基于R通道的先驗顏色恢復(fù)等[18]。
選取當(dāng)前主流的CLAHE算法[19]、暗通道先驗去霧算法[20]、MSRCR算法[21]對數(shù)據(jù)集進行圖像增強對比實驗,其效果見圖2。結(jié)果顯示,MSRCR算法增強后的數(shù)據(jù)集檢測精度提升最多。
圖2 不同方法增強效果對比
根據(jù)GIMP中MSRCR的思想, MSRCR算法有動態(tài)對比參數(shù)Dynamic、最大尺度、尺度數(shù)3個超參數(shù)可以對增強后的圖像質(zhì)量進行動態(tài)調(diào)整。經(jīng)不同參數(shù)組對比實驗,如圖3所示,尺度數(shù)與Dynamic對增強圖像質(zhì)量的影響最大,針對此數(shù)據(jù)集,結(jié)果顯示Dynamic取1時目視增強效果最好,尺度數(shù)取值越大,水下圖像增強后的對比度越強,當(dāng)其取值在6~8之間時能保持圖像最適宜的清晰度增強。對于最大尺度,針對此數(shù)據(jù)集,實驗結(jié)果顯示取值以大于300效果最佳,300~500目視效果接近。最終采用Dynamic為1,最大尺度為500,尺度數(shù)為8作為MSRCR選定參數(shù)對數(shù)據(jù)集進行圖像增強處理。
圖3 MSRCR算法不同參數(shù)效果對比
相比于Two-stage方法,One-stage是通過基于回歸的方式來提取特征,無需生成大量的候選窗口,直接對輸入圖像進行目標(biāo)檢測和分類,屬于端到端的目標(biāo)檢測。YOLO v4是One-stage系列中最為先進的目標(biāo)檢測方法之一,綜合表現(xiàn)穩(wěn)定。
YOLO v4[22]由主干網(wǎng)絡(luò)(Backbone)、頸部網(wǎng)絡(luò)(Neck)和預(yù)測頭網(wǎng)絡(luò)(Detection head)3部分組成,整體上是基于YOLO v3的改進,采用了很多新的目標(biāo)檢測算法思想,如Mosaic數(shù)據(jù)增強、標(biāo)簽平滑、余弦退火算法等。在檢測精度方面,由于YOLO v4模型預(yù)設(shè)錨點框是基于COCO數(shù)據(jù)集獲取,與單環(huán)刺螠洞口目標(biāo)在尺寸上差距較大,導(dǎo)致檢測精度有所下降。在檢測速度與模型尺寸方面,自動采捕船嵌入式設(shè)備算力及存儲空間資源有限,采捕時洞口檢測實時性要求較高,而YOLO v4模型主干網(wǎng)絡(luò)CSPDarkNet53網(wǎng)絡(luò)參數(shù)量大,特征提取過程中計算量大,計算時間長,導(dǎo)致整體YOLO v4模型檢測速度與模型尺寸無法滿足要求。針對以上問題,在YOLO v4模型的基礎(chǔ)上進行了針對性改進,使其更適用于采捕船嵌入式設(shè)備的部署。
2.2.1主干特征提取網(wǎng)絡(luò)替換
YOLO v4原始主干特征提取網(wǎng)絡(luò)CSPDarkNet53模型復(fù)雜、檢測實時性差、模型尺寸大。為滿足模型部署到采捕船的嵌入式設(shè)備上實現(xiàn)單環(huán)刺螠洞口實時檢測的要求,需要將YOLO v4主干網(wǎng)絡(luò)替換為更高效的輕量型網(wǎng)絡(luò)。
MobileNet v2是MobileNet v1的改進版,在MobileNet v1的基礎(chǔ)上利用Inverted residual策略加入了反向殘差模塊(Inverted residual block),利用Linear bottleneck策略將最后的ReLU6層變成了Linear形式,利用Expansion layer策略使深度卷積可以在更高維度進行。經(jīng)一系列改進后的MobileNet v2網(wǎng)絡(luò)模型的參數(shù)量與計算量明顯降低,檢測速度有所提升,使用Mobilenet v2替換YOLO v4的主干特征提取網(wǎng)絡(luò)CSPDarkNet53。Mobilenet v2[23]作為輕量型神經(jīng)網(wǎng)絡(luò),使用3×3逐通道卷積與1×1逐點卷積的結(jié)構(gòu)組合,實現(xiàn)目標(biāo)的特征提取及特征信息的融合,3×3的逐通道卷積層參數(shù)占比少,網(wǎng)絡(luò)層的計算量及參數(shù)占比主要集中在1×1的逐點卷積。逐通道卷積參數(shù)占比的減少使得Mobilenet v2能夠提高網(wǎng)絡(luò)訓(xùn)練效率,加快運算速度實現(xiàn)快速檢測,解決因硬件設(shè)備限制導(dǎo)致的目標(biāo)檢測速度緩慢問題。
2.2.2深度可分離卷積
Mobilenet v2等輕量型網(wǎng)絡(luò)結(jié)構(gòu)中,會有深度可分離卷積(Depthwise separable convolution,DSC)[24],由逐通道卷積和逐點卷積兩部分結(jié)合起來提取特征。相比常規(guī)的卷積操作,深度可分離卷積可以減少網(wǎng)絡(luò)參數(shù)量,節(jié)約計算成本,提高檢測速度。例如輸入特征圖尺寸為H×W、輸入通道數(shù)為M,卷積核尺寸為K×K,輸出通道數(shù)為N,輸出特征圖尺寸為DF×DF。普通卷積計算量Ns為
Ns=K×K×M×N×DF×DF
(1)
深度可分離卷積計算量由逐通道卷積與逐點卷積組成。逐通道卷積計算量Nd為
Nd=DF×DF×M×K×K
(2)
逐點卷積計算量Np為
Np=DF×DF×M×N
(3)
深度可分離卷積與普通卷積計算量比值為
(4)
由計算結(jié)果可以看出,深度可分離卷積的計算量減少與輸出通道數(shù)和使用的卷積核尺寸相關(guān),如當(dāng)卷積核為3×3時,深度可分離卷積的計算量約為普通卷積的1/9,有利于提高模型的推理速度。
2.2.3反向殘差模塊
Mobilenet v2的一個重要改進就是反向殘差模塊的使用,整個Mobilenet v2都由反向殘差模塊組成。反向殘差模塊可以分為兩部分:左邊是主干部分,首先利用1×1的普通卷積進行升維,使用批量標(biāo)準(zhǔn)化(Batch normalization,BN)層對特征進行歸一化處理,然后利用3×3的深度可分離卷積進行特征提取,接上批次BN層與ReLU 6激活函數(shù),最后再利用1×1的普通卷積實現(xiàn)降維,并使用BN層進行歸一化處理。右邊是殘差邊部分,反向殘差模塊將輸入與左半部分的輸出直接融合作為殘差邊。當(dāng)步長為2時,為使輸入與輸出的維度匹配,不采用短連接,如圖4所示。
圖4 反向殘差模塊
為簡化網(wǎng)絡(luò)結(jié)構(gòu),降低模型尺寸,滿足模型部署在嵌入式設(shè)備上實現(xiàn)單環(huán)刺螠洞口實時檢測的要求,利用輕量型網(wǎng)絡(luò)Mobilenet v2替換YOLO v4的CSPDarkNet53網(wǎng)絡(luò),將其輸出作為頸部網(wǎng)絡(luò)部分的輸入,Mobilenet v2主要由3個6層、7層、4層的反向殘差模塊構(gòu)成,同時為進一步減少模型參數(shù)量,使用深度可分離卷積塊替換YOLO v4中Neck和Detection Head部分的3×3和5×5普通卷積塊,改進后的YOLO v4網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。其中DWconv代表一個3×3的深度可分離卷積和一個 1×1的普通卷積組成的深度可分離卷積塊,CBR由卷積層(Convolutional)、BN層和激活函數(shù)層(ReLU 6)組成。
圖5 改進后的YOLO v4算法網(wǎng)絡(luò)結(jié)構(gòu)圖
YOLO v4網(wǎng)絡(luò)按大中小比例預(yù)設(shè)了9個共3類錨點框,分別用于3個不同尺度的YOLO Head來預(yù)測目標(biāo),預(yù)設(shè)錨點框尺寸是在COCO數(shù)據(jù)集上通過聚類獲得。預(yù)設(shè)的錨點框尺寸在常規(guī)場景下的目標(biāo)檢測任務(wù)已經(jīng)具有較好的適用性,但在極端場景小目標(biāo)識別方面,使用預(yù)設(shè)的錨點框會增大誤差,影響模型的檢測精度。為提升單環(huán)刺螠洞口檢測精度,針對數(shù)據(jù)集重新進行錨點框聚類。利用K-means聚類算法對數(shù)據(jù)集進行聚類獲取錨點框,尺寸為(5,6)、(6,7)、(7,6)、(7,7)、(8,8)、(10,7)、(8,9)、(10,10)、(14,13),經(jīng)訓(xùn)練測試發(fā)現(xiàn),檢測精度相較預(yù)設(shè)錨點框有所下降。分析原因是K-means對初始聚類中心的選取敏感,不同初始聚類中心聚類的結(jié)果差別較大,易造成選取不準(zhǔn)確。
針對K-means選取初始聚類中心的弊端,利用K-means++算法解決該弊端。K-means++從輸入寬高的集合N中隨機選擇一個作為第一個聚類中心O1,然后計算每個點x到已有最近聚類中心點的距離D(x),同時計算出每個樣本被確定為下一個聚類中心的概率P(x)為
(5)
其中
D(x)=1-IOU
(6)
式中IOU——聚類中心與每個標(biāo)注框的交并比
選擇P(x)最大的樣本作為下一個聚類中心,即距離當(dāng)前n個聚類中心越遠的點會有更高的概率被選為第n+1個聚類中心,重復(fù)上述操作直到選定K個中心點。最后不斷重復(fù)計算每個樣本到K個聚類中心點的距離,將樣本點劃分至距離最近的聚類中心的類中并更新聚類中心,直到錨點框的大小不再發(fā)生改變,得到新的錨點框尺寸為(7,12)、(7,10)、(7,8)、(8,12)、(10,10)、(10,17)、(11,13)、(14,20)、(18,26)。
經(jīng)訓(xùn)練測試發(fā)現(xiàn),經(jīng)過K-means++算法重新聚類后的錨點框?qū)τ谀繕?biāo)檢測的mAP略有提升,但召回率和調(diào)和平均值(F1值)有所下降。分析是由于數(shù)據(jù)集目標(biāo)類型單一,標(biāo)記框尺寸集中,導(dǎo)致K-means++聚類的錨框尺寸集中,無法體現(xiàn)YOLO v4模型的多尺度輸出優(yōu)勢。針對此問題,采用對錨框線性縮放擴展的方法,將錨框尺寸進行縮放拉伸,計算公式為
(7)
式中Xi——第i個經(jīng)聚類獲得的錨點框?qū)?/p>
Yi——第i個經(jīng)聚類獲得的錨點框高
X′i——經(jīng)過縮放擴展后的錨點框?qū)?/p>
Y′i——經(jīng)過縮放擴展后的錨點框高
α——錨點框縮放倍數(shù)
β——錨點框擴展倍數(shù)
為確定最佳的比例參數(shù),將參數(shù)α固定設(shè)置為0.3,參數(shù)β依次設(shè)置為2、3、…、10進行對比實驗。如表1所示,當(dāng)α設(shè)置為0.3時,隨著β的變化,mAP呈現(xiàn)非標(biāo)準(zhǔn)的折線變化,mAP最高點時α=0.3,β=5。如表2所示,設(shè)置參數(shù)β為5,α取不同值進行實驗(α設(shè)為0.1時縮放后部分錨點框為0,舍棄該參數(shù)),由實驗結(jié)果可得,當(dāng)α=0.7、β=5時能夠取得對于單環(huán)刺螠洞口的最佳識別精度,此時錨點框尺寸為(4,8)、(4,5)、(4,4)、(11,17)、(27,27)、(27,46)、(35,41)、(58,83)、(90,130)。
表1 α=0.3時不同β的實驗結(jié)果
表2 β=5時不同α的實驗結(jié)果
利用Jetson AGX Xavier進行模型嵌入式設(shè)備部署,將在PC端訓(xùn)練的YOLO v4和改進模型導(dǎo)入Jetson AGX Xavier開發(fā)板,并配置相應(yīng)的運行環(huán)境。在直接運行模型測試時發(fā)現(xiàn)改進模型相比于YOLO v4檢測速度確實有很大提升,但仍無法滿足實時檢測要求。針對該問題,利用嵌入式平臺廣泛應(yīng)用的TensorRT進行模型推理加速,TensorRT是NVIDIA高性能深度學(xué)習(xí)推理優(yōu)化器,可為深度學(xué)習(xí)模型的推理提供低延遲、高吞吐量的加速度,支持包括Pytorch在內(nèi)的多種深度學(xué)習(xí)框架部署推理。利用TensorRT加速需將模型轉(zhuǎn)換為TensorRT支持格式,轉(zhuǎn)換過程為Pytorch格式(Pth)—開放神經(jīng)網(wǎng)絡(luò)交換格式(Onnx)—TensorRT格式(Trt),轉(zhuǎn)換時模型計算精度為半精度計算(FP16),利用Python API實現(xiàn)trt文件的導(dǎo)入與初始化。模型運行檢測圖像如圖6所示。
圖6 Jetson AGX Xavier部署測試
模型訓(xùn)練和PC端測試均在同一臺計算機進行,CPU 為Intel Core i5 9300H,GPU為 NVIDIA GeForce GTX 1650,使用Pytorch 1.6.0作為深度學(xué)習(xí)框架,CUDA 10.2,CUDNN 7.5.6,Windows 10操作系統(tǒng),運行內(nèi)存12 GB。
模型的嵌入式端部署測試在Jetson AGX Xavier上進行,搭載64個Tensor Core的512核NVIDIA Volta GPU, CPU為8核NVIDIA Carmel ARMv8.2 64位CPU, 內(nèi)存為32 GB,顯存為32 GB。相應(yīng)配置系統(tǒng)為ARM版Ubuntu 18.04操作系統(tǒng),模型運行環(huán)境的配置為Python 3.8、Pytorch 1.6.0、CUDA 10.2、TensorRT 7.1。
訓(xùn)練參數(shù)設(shè)置如下:訓(xùn)練集樣本2 533幅,測試集樣本313幅,驗證集282幅,為防止過擬合,訓(xùn)練共設(shè)置100個迭代周期(Epoch),前50個周期的初始學(xué)習(xí)率為0.001,樣本批量大小(Batchsize)為8,后50個周期學(xué)習(xí)率設(shè)置為0.000 1,Batchsize為4,非極大值抑制(Non-maximum suppression, NMS)為0.3,置信度閾值為0.5,交并比(Intersection over union,IOU)閾值為0.5。
利用精確率(Precision,P)、召回率(Recall,R)、F1值、平均精度均值(mAP)、模型尺寸和檢測速度來評估模型的綜合性能。
精確率是指在所有檢測出的單環(huán)刺螠洞口目標(biāo)中檢測正確的概率,召回率是指所有的正樣本中正確識別的概率,F(xiàn)1值表示精確率與召回率的調(diào)和平均數(shù),平均精度均值表示模型在各個召回率下的精確率平均值。檢測目標(biāo)僅為單環(huán)刺螠洞口,平均精度(Average precision,AP)也等于mAP,檢測精度的各指標(biāo)優(yōu)先級由高到低為mAP、F1值、P、R。
由水下環(huán)境復(fù)雜、能見度低等因素導(dǎo)致圖像質(zhì)量較低不利于模型對目標(biāo)的識別,使用當(dāng)前主流的3種水下圖像增強算法:CLAHE算法、暗通道先驗去霧算法、MSRCR算法對數(shù)據(jù)集進行圖像增強。增強算法的選擇在相關(guān)水下目標(biāo)識別研究中[25-26]多為研究者目視估計選擇,受研究者個人因素影響較大。為評價算法性能,利用3種算法增強后的圖像與原始圖像在相同軟硬件環(huán)境下進行目標(biāo)檢測效果對比實驗,對比實驗結(jié)果見表3。
表3 不同增強算法檢測結(jié)果對比
由表3可知,CLAHE算法增強后的圖像mAP略有提升,但召回率有所下降。MSRCR算法與暗通道先驗去霧算法在檢測精度方面提升效果接近,但MSRCR算法對單環(huán)刺螠洞口目標(biāo)檢測精度提升最高且顏色分布更加平衡,保持了較好的視覺觀感,最終選用MSRCR算法作為模型的圖像增強算法。
利用YOLO v4預(yù)設(shè)錨點框、K-means聚類得到的錨點框、K-means++聚類得到的錨點框以及K-means++聚類后線性縮放優(yōu)化的錨點框(K-means++E)共4種錨點框在相同軟硬件環(huán)境下進行訓(xùn)練并測試,對單環(huán)刺螠洞口目標(biāo)的檢測性能結(jié)果如表4所示。
表4 不同算法獲得的錨點框檢測效果對比
由圖7可以看出,使用K-means++E錨點框模型的P-R曲線下包含的面積明顯高于其他3組,說明mAP更高,更適合作為單環(huán)刺螠洞口數(shù)據(jù)集的錨點框。
圖7 不同錨點框的檢測結(jié)果P-R曲線
3.5.1訓(xùn)練損失值對比與最優(yōu)模型確定
使用相同訓(xùn)練集、驗證集和測試集分別在YOLO v4與改進模型上進行訓(xùn)練,對比迭代損失值變化曲線,如圖8所示。
圖8 YOLO v4和改進模型訓(xùn)練的損失值曲線
由圖8可見,改進模型與YOLO v4模型的損失值曲線均能夠在前10個迭代周期中迅速下降,表明輕量化后的改進模型能夠快速收斂。從第11到第50個周期損失值逐步下降,在第50個周期由于學(xué)習(xí)率與Batchsize的改變出現(xiàn)振蕩。之后直到第90個周期仍處于緩慢下降狀態(tài),在第90個周期之后,改進模型損失值穩(wěn)定在1.6左右,模型擬合結(jié)束。為確定實驗最優(yōu)模型,所有對比實驗?zāi)P驮谟?xùn)練穩(wěn)定后的5個最低損失值模型為最優(yōu)模型前提下,綜合考慮mAP與其他3項精度指標(biāo)確定最優(yōu)模型,最終選用第98個迭代周期迭代完成后保存的模型為單環(huán)刺螠洞口識別模型,此時模型具有最高的mAP與召回率,也具有較高的F1值和精確率。
3.5.2模型輕量化效果
為展示模型輕量化效果,將YOLO v4與僅替換主干網(wǎng)絡(luò)為Mobilenet v2的模型以及進一步替換網(wǎng)絡(luò)內(nèi)Neck和Detection Head部分普通卷積塊為深度可分離卷積塊的改進模型進行參數(shù)量和模型尺寸的對比,對比結(jié)果如表5所示。
表5 網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)量對比
由表5可得,改進模型參數(shù)量由63 937 686降低至11 975 749,而模型尺寸由244 MB降低至 46.5 MB,可見模型輕量化效果明顯,有效減小了模型尺寸,更適于部署在資源有限的嵌入式設(shè)備。
3.5.3不同模型性能指標(biāo)比較
為測試模型效果,在相同軟硬件環(huán)境下將改進模型與輕量化YOLO v4和當(dāng)前主流的One-stage目標(biāo)檢測算法SSD、YOLO v3、YOLO v4、YOLO v4-tiny進行對比實驗,對模型進行綜合評估。在檢測精度方面,由于mAP和F1值均同時兼顧了檢測模型的精確率和召回率,主要采用mAP和F1值來評價模型的檢測精度,評估結(jié)果如表6所示。
表6 不同模型綜合效果對比
由表6可知,在檢測精度方面,改進模型的平均精度均值達到92.48%,相比One-stage的SSD、YOLO v4-tiny、YOLO v3提高24.35、24.36、0.59個百分點,相比YOLO v4降低1.01個百分點;F1值達到90.99%,相比SSD、YOLO v4-tiny、YOLO v3分別提高64.76、18.02、1.08個百分點,相比YOLO v4降低3.19個百分點。在檢測速度方面,改進模型為45.31 f/s,比SSD、YOLO v3、YOLO v4提高30.08、24.56、28.34 f/s。改進模型的內(nèi)存占用量僅為46.5 MB,相比SSD、YOLO v3和YOLO v4分別減小44.1、188.5、197.5 MB,更適用于嵌入式設(shè)備的部署。
3.5.4不同模型檢測效果對比
為直觀展示模型檢測性能,分別采用表6中YOLO v4、輕量化YOLO v4與改進模型對不同的單環(huán)刺螠洞口圖像進行檢測。
如圖9所示,模型輕量化后,目標(biāo)檢測精確率有所下降,在第1幅圖像中左下角出現(xiàn)錯檢,在第2幅最右側(cè)和第3幅最上方出現(xiàn)漏檢,但在改進之后模型沒有錯檢且完全檢測出所有單環(huán)刺螠洞口,模型檢測目標(biāo)的置信度在0.9以上的更多,表明改進模型對檢測目標(biāo)的置信度有一定加強作用,檢測效果更好,檢測能力更強,滿足實際應(yīng)用場景下單環(huán)刺螠洞口的實時檢測精度要求。
圖9 不同模型單環(huán)刺螠洞口識別效果
3.5.5模型嵌入式設(shè)備部署測試
為驗證模型是否滿足部署在嵌入式設(shè)備實時檢測的要求,在Jetson AGX Xavier開發(fā)板進行模型部署對比實驗。對YOLO v4、改進模型和經(jīng)過TensorRT加速的YOLO v4(trt)、改進模型(trt)進行性能評估,實驗結(jié)果如表7所示,其中模型尺寸為模型文件在Ubuntu系統(tǒng)的實際占用空間。
表7 模型嵌入式設(shè)備部署效果對比
由表7可知,未經(jīng)TensorRT加速的YOLO v4與改進模型在Xavier開發(fā)板上由于硬件條件的限制檢測速度大幅下降,經(jīng)TensorRT加速的模型由于模型轉(zhuǎn)換導(dǎo)致檢測精度略微降低,但模型尺寸與推理時間大大減少。經(jīng)TensorRT加速后的YOLO v4(trt)相較于YOLO v4,檢測速度提升2.11倍,為19.14 f/s,無法滿足單環(huán)刺螠洞口實時檢測的要求。經(jīng)TensorRT加速后的改進模型(trt)在精確率、召回率、F1值、mAP分別下降0.02、0.21、0.11、0.22個百分點,但檢測速度達到36.00 f/s,相較于直接推理的18.55 f/s,加速比約為1.94,且模型尺寸僅為22.2 MB。實驗結(jié)果表明,經(jīng)過TensorRT加速后的改進模型滿足部署在嵌入式設(shè)備上實時檢測單環(huán)刺螠洞口的需求。
將YOLO v4主干網(wǎng)絡(luò)替換為輕量型網(wǎng)絡(luò)會導(dǎo)致mAP一定程度的下降,但在經(jīng)過圖像增強和錨點框優(yōu)化后,在檢測精度方面,模型平均精度均值能達到92.48%,低于YOLO v4模型1.01個百分點,檢測速度提升約3倍,且模型尺寸僅為YOLO v4模型的1/5;而在檢測速度與模型尺寸方面,YOLO v4-tiny雖然獲得了110.67 f/s的最高檢測速度與22.4 MB的最小模型內(nèi)存占用量,但是對于小目標(biāo)或遮擋目標(biāo)的檢測效果遠差于YOLO v4網(wǎng)絡(luò),mAP僅為68.12%,無法滿足檢測精度要求。最后,通過嵌入式端設(shè)備檢測效果對比實驗,經(jīng)過TensorRT加速后的改進模型在檢測精度方面F1值為90.88%,mAP為92.26%,檢測速度為36.00 f/s,模型滿足部署在單環(huán)刺螠自動采捕船嵌入式設(shè)備上實時檢測的檢測精度及檢測速度要求。
(1)以單環(huán)刺螠洞口為研究對象,提出了適于移植到采捕船嵌入式設(shè)備的、基于深度學(xué)習(xí)的單環(huán)刺螠洞口識別方法。在嵌入式設(shè)備上,改進模型的F1值為90.88%,mAP為92.26%,滿足實際生產(chǎn)需要,可用于水下單環(huán)刺螠洞口實時識別,是實現(xiàn)養(yǎng)殖環(huán)境中單環(huán)刺螠自動采捕和產(chǎn)量預(yù)測的必要前提,其研究思路為后續(xù)研發(fā)相關(guān)自動化設(shè)備提供了技術(shù)支持。
(2)針對水下圖像質(zhì)量退化問題,在網(wǎng)絡(luò)訓(xùn)練前對圖像采用MSRCR增強方法,圖像增強后F1值提升1.4個百分點,mAP提升2.26個百分點。
(3)針對YOLO v4模型冗余,模型尺寸大,檢測速度慢的問題,將YOLO v4的特征提取網(wǎng)絡(luò)由CSPDarkNet53替換為Mobilenet v2,并將模型中Neck和Detection Head部分的普通卷積塊替換為深度可分離卷積塊,減小模型尺寸,提升檢測速度。嵌入式端模型內(nèi)存占用量僅為22.2 MB,檢測速度為36.00 f/s,單幅圖像的推理時間為27.78 ms,滿足實時檢測的要求。
(4)針對數(shù)據(jù)集中多為小目標(biāo)的特點,使用K-means++聚類算法對數(shù)據(jù)集進行重新聚類,并將聚類獲得的錨點框進行線性縮放擴展,以獲取更適合數(shù)據(jù)集的錨點框,改進后的錨點框相比預(yù)設(shè)錨點框F1值提升1.64個百分點,mAP提升4.69個百分點。