陳子文,李卓璐,楊志鵬,何佳琦,曹立杰,3,蔡克衛(wèi),3,王其華
(1.大連海洋大學(xué)機(jī)械與動(dòng)力工程學(xué)院,遼寧大連 116023;2.大連海洋大學(xué)信息工程學(xué)院,遼寧大連 116023;3.遼寧省海洋信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,遼寧大連 116023;4.濟(jì)寧醫(yī)學(xué)院醫(yī)學(xué)信息工程學(xué)院,山東日照 276800)
蝦的工廠化養(yǎng)殖系統(tǒng)開(kāi)發(fā)起源于20世紀(jì)90年代,國(guó)外主流工廠化養(yǎng)殖系統(tǒng)有美國(guó)德克薩斯海洋科學(xué)研究所研發(fā)的跑道式養(yǎng)蝦系統(tǒng)[1]。我國(guó)工廠化養(yǎng)殖發(fā)展尚處于初級(jí)階段,自動(dòng)化程度低,亟需開(kāi)發(fā)相關(guān)智能化系統(tǒng)[2]。目前,蝦的工廠化養(yǎng)殖仍采用人工投喂方式,餌料投喂量需根據(jù)池內(nèi)蝦群密度確定[3]。傳統(tǒng)養(yǎng)殖蝦計(jì)數(shù)一般采用人工隨機(jī)采樣方式進(jìn)行,勞動(dòng)強(qiáng)度大,效率低,且易對(duì)蝦的生長(zhǎng)和循環(huán)水系統(tǒng)的凈化負(fù)荷造成影響。
基于計(jì)算機(jī)視覺(jué)的養(yǎng)殖蝦計(jì)數(shù)方法具有全程無(wú)接觸、計(jì)數(shù)速度快等優(yōu)勢(shì),可有效解決人工計(jì)數(shù)耗時(shí)耗力且對(duì)蝦有一定損傷等問(wèn)題。目前,計(jì)算機(jī)視覺(jué)技術(shù)在水產(chǎn)養(yǎng)殖中已經(jīng)得到了較為廣泛的應(yīng)用。郭顯久等[4]根據(jù)海洋微藻顯微圖像的特點(diǎn),提出使用小波去噪、最大類間方差法等圖像處理技術(shù)自動(dòng)統(tǒng)計(jì)海洋微藻數(shù)量的方法;王文靜等[5]對(duì)魚苗圖像進(jìn)行閾值分割和目標(biāo)提取后計(jì)算出每幀圖像中的魚苗數(shù)量。楊眉等[6]用canny算子提取扇貝邊界像素,并使用BP算法對(duì)扇貝圖像進(jìn)行識(shí)別分類。王碩等[7]提出一種基于曲線演化的圖像處理方法,實(shí)現(xiàn)對(duì)大菱鲆(Scophthalmusmaximus)魚苗準(zhǔn)確計(jì)數(shù)。
上述傳統(tǒng)計(jì)算機(jī)視覺(jué)方法均在水產(chǎn)領(lǐng)域取得很好的應(yīng)用,但仍存在計(jì)數(shù)誤差較大、對(duì)重疊個(gè)體和差異較大個(gè)體計(jì)數(shù)不準(zhǔn)確等缺點(diǎn)。隨著深度卷積神經(jīng)網(wǎng)絡(luò)的迅速發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)已經(jīng)超越傳統(tǒng)方法,成為當(dāng)前目標(biāo)檢測(cè)的主流方法,并已被廣泛應(yīng)用于不同領(lǐng)域?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法框架主要有R-CNN(region-convolutional neural networks)系列[8-10]、SSD(single shotmulti box detector)[11-12]和YOLO系列(you only look once)[13-16]等。目前,已有學(xué)者將其引入到農(nóng)業(yè)工程領(lǐng)域,并取得較好效果。薛月菊等[17]使用改進(jìn)的Fast R-CNN(fast regionconvolutional neural networks)針對(duì)深度圖像設(shè)計(jì)了全天候的哺乳母豬姿態(tài)的自動(dòng)識(shí)別。王羽徵等[18]利用改進(jìn)式VGG16網(wǎng)絡(luò)對(duì)水體中的單細(xì)胞藻類進(jìn)行有效識(shí)別。一段式(one-stage)檢測(cè)的代表算法YOLO在目標(biāo)檢測(cè)速度和算法效率上都有著不錯(cuò)的表現(xiàn),該算法已在農(nóng)業(yè)設(shè)施智能化研究中得到廣泛應(yīng)用;CAI等[19]使用改進(jìn)版的YOLOv3深度神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)了工廠化養(yǎng)殖環(huán)境下的紅鰭東方鲀(Takifugu rubripes)的識(shí)別和計(jì)數(shù)。劉芳等[20]使用改進(jìn)的多尺度YOLO實(shí)現(xiàn)了復(fù)雜環(huán)境下的番茄果實(shí)的快速識(shí)別。本文基于YOLOv5框架,采用少量高清圖像樣本,試圖實(shí)現(xiàn)養(yǎng)殖蝦的精準(zhǔn)目標(biāo)檢測(cè)與計(jì)數(shù)。
工廠化養(yǎng)殖環(huán)境下,蝦的游動(dòng)速度較快,游動(dòng)過(guò)程中的蝦體形狀和姿態(tài)存在較大的差異,需要利用高分辨率工業(yè)相機(jī)對(duì)養(yǎng)殖池進(jìn)行抓拍,保證圖像樣本質(zhì)量。然而,由于養(yǎng)殖環(huán)境差、樣本采集成本高、所采集圖像樣本數(shù)量有限,且高分辨率圖像直接壓縮進(jìn)行訓(xùn)練會(huì)導(dǎo)致圖像細(xì)節(jié)缺失,直接影響檢測(cè)精度。因此,針對(duì)上述問(wèn)題,本文提出自適應(yīng)裁片算法進(jìn)行數(shù)據(jù)預(yù)處理,增強(qiáng)高分辨率下對(duì)蝦的細(xì)節(jié)特征的學(xué)習(xí)效果,并基于YOLOv5框架進(jìn)行數(shù)據(jù)集訓(xùn)練,實(shí)現(xiàn)養(yǎng)殖池內(nèi)蝦精準(zhǔn)識(shí)別與計(jì)數(shù),以期為實(shí)現(xiàn)科學(xué)喂養(yǎng)、定量投餌提供數(shù)據(jù)基礎(chǔ)。
蝦的工廠化養(yǎng)殖圖像采用??低旸S-2CD3T86FWDV2-15S攝像頭,2.8 mm焦距鏡頭,114.5度視角進(jìn)行拍攝采集。攝像頭垂直固定于蝦養(yǎng)殖盤正上方進(jìn)行俯視拍攝,所采集圖像為PNG格式,圖像高度為3 000 Pixl,寬度為4 000 Pixl,2 min間隔拍攝,共采集圖像181張。采集圖像樣本及其標(biāo)注結(jié)果如圖1所示。
圖1 采集圖像樣例Fig.1 Example of captured images
本文數(shù)據(jù)集采用“LabelImg”標(biāo)注工具進(jìn)行人工標(biāo)注,標(biāo)注信息存儲(chǔ)至txt標(biāo)簽文件,每個(gè)標(biāo)簽文件與圖像文件一一對(duì)應(yīng),其中每行存放一個(gè)目標(biāo)信息,信息依次為:目標(biāo)類別、檢測(cè)框中心點(diǎn)X、Y軸坐標(biāo)以及目標(biāo)寬度、高度。
本文基于YOLOv5目標(biāo)檢測(cè)框架(圖2)進(jìn)行養(yǎng)殖蝦圖像分析并計(jì)數(shù)研究,該檢測(cè)框架首先將圖像劃分成S×S個(gè)網(wǎng)格,然后判斷目標(biāo)檢測(cè)框中心點(diǎn)是否處于某一網(wǎng)格內(nèi),再預(yù)測(cè)目標(biāo)的坐標(biāo)位置和目標(biāo)置信度,最終實(shí)現(xiàn)多目標(biāo)檢測(cè),在檢測(cè)速度及準(zhǔn)確率上相對(duì)前代算法有很大提升。
圖2 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Structure of YOLOv5
本文采用平均精度均值(mean average precision,mAP)、準(zhǔn) 確 率(precision)、召 回 率(recall)作為訓(xùn)練模型性能的評(píng)價(jià)指標(biāo)。對(duì)于分類問(wèn)題,可以根據(jù)真實(shí)的類別情況與模型預(yù)測(cè)的類別情況的組合將樣例劃分為真正例(true positive,TP)、假正例(false positive,F(xiàn)P)、真反例(true negative,TN)、假反例(false negative,F(xiàn)N)4種情況,分類結(jié)果混淆矩陣如表1所示。
準(zhǔn)確率和召回率是一對(duì)矛盾的度量標(biāo)準(zhǔn),準(zhǔn)確率越高,召回率一般會(huì)偏低,反之亦然,由表1可得準(zhǔn)確率P與召回率R計(jì)算公式為:
表1 分類結(jié)果混淆矩陣Tab.1 Classification results of confusion matrix
平均精度(AP)是衡量模型檢測(cè)效果的常用標(biāo)準(zhǔn),AP是召回率取值0到1時(shí)準(zhǔn)確率的平均值,綜合考慮了準(zhǔn)確率和召回率,能夠很好的衡量目標(biāo)檢測(cè)效果。mAP為所有類別的檢測(cè)精度的平均值,是衡量模型預(yù)測(cè)目標(biāo)的位置以及類別的度量標(biāo)準(zhǔn),mAP的計(jì)算公式為:
式(3)中,J(P,R)k為平均精度函數(shù),計(jì)算方式為類別為編號(hào)k時(shí)的準(zhǔn)確率P與召回率R構(gòu)成的P-R曲線下方面積。
本文檢測(cè)算法框圖如圖3所示。原始高清圖像經(jīng)過(guò)自適應(yīng)裁切與標(biāo)簽映射后生成裁切圖像數(shù)據(jù)集,并與原始圖像混合作為總數(shù)據(jù)集,按照訓(xùn)練集70%與驗(yàn)證集30%的比例劃分并輸入檢測(cè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,獲得模型后,對(duì)養(yǎng)殖蝦圖像進(jìn)行分析,實(shí)現(xiàn)目標(biāo)檢測(cè)與計(jì)數(shù)。
圖3 養(yǎng)殖蝦目標(biāo)檢測(cè)算法框圖Fig.3 Block diagram of shrim p object detection algorithm
2.2.1 圖像裁切
為解決直接壓縮高清圖像導(dǎo)致細(xì)節(jié)丟失以及只有少量圖像樣本問(wèn)題,本文設(shè)計(jì)提出一種根據(jù)網(wǎng)絡(luò)輸入圖像尺寸自適應(yīng)調(diào)節(jié)的高分辨率圖像裁切算法,算法流程如圖4所示。該算法根據(jù)原圖尺寸與網(wǎng)絡(luò)預(yù)處理輸入圖尺寸計(jì)算出裁切數(shù)量與裁切窗口滑動(dòng)步長(zhǎng),計(jì)算公式為:
圖4 自適應(yīng)圖片裁切算法流程Fig.4 Adaptive image clipping algorithm flow
式(4)~式(7)中,Nw代表水平方向最終生成的裁切框的數(shù)量,Nh代表豎直方向最終生成的裁切框的數(shù)量,Iw代表原圖的寬度,Ih代表原圖的高度,F(xiàn)w代表網(wǎng)絡(luò)預(yù)處理后輸入圖的寬度,F(xiàn)h代表網(wǎng)絡(luò)預(yù)處理后輸入圖的高度,Sw為裁切框沿橫向滑動(dòng)的步長(zhǎng),Sh為裁切框沿縱向滑動(dòng)的步長(zhǎng)。
裁切所得圖像與原圖共同組成了檢測(cè)模型數(shù)據(jù)集。本研究中原始圖像分辨率為3 000×4 000,網(wǎng)絡(luò)預(yù)處理輸入圖像尺寸為640×640,因此水平方向裁切框的數(shù)量為7,豎直方向裁切框數(shù)量為5,裁切框沿橫向滑動(dòng)的步長(zhǎng)為602,裁切框沿縱向滑動(dòng)的步長(zhǎng)為552。原始圖像數(shù)量為181,經(jīng)過(guò)算法處理后,最終得到的圖像樣本量為6 516張。
2.2.2 標(biāo)簽映射
由于算法需要對(duì)圖像進(jìn)行裁切生成單獨(dú)的圖像,所以需要對(duì)標(biāo)簽文件內(nèi)的坐標(biāo)信息進(jìn)行重新計(jì)算,在裁切圖像的同時(shí)計(jì)算裁切后新圖像的坐標(biāo)信息,將原圖的坐標(biāo)映射到新生成的裁切圖中。標(biāo)簽映射算法流程見(jiàn)算法1:
算法1標(biāo)簽映射Labelmapping輸入:原圖目標(biāo)框(x1,y1,x2,y2),滑動(dòng)窗口坐標(biāo)(x3,y3,x4,y4)輸出:裁切圖目標(biāo)框(xtop,ytop,xbot,ybot)1:function Labelmapping(x1,y1,x2,y2,x3,y3,x4,y4)2: if IoU([x1,y1,x2,y2],[x3,y3,x4,y4])>0 then 3: xtop=max(x1,x3)4: xbot=min(x2,x4)5: ytop=max(y1,y3)6: ybot=min(y2,y4)7: return xtop,ytop,xbot,ybot
其中,原圖目標(biāo)框?yàn)槠渥笊辖亲鴺?biāo)(x1,y1)及右下角坐標(biāo)(x2,y2),當(dāng)前滑動(dòng)裁切窗口坐標(biāo)為其左上角坐標(biāo)(x3,y3)與右下角坐標(biāo)(x4,y4)。IoU函數(shù)用于計(jì)算兩個(gè)矩形框的交集與并集的比值,計(jì)算公式為為原圖目標(biāo)框面積,B為滑動(dòng)裁切窗口面積。max(x,y)為最大值函數(shù),返回x、y中的最大值,min(x,y)為最小值函數(shù),返回x,y中的最小值。經(jīng)過(guò)計(jì)算獲得裁切圖目標(biāo)檢測(cè)框的標(biāo)注映射坐標(biāo)分別為左上角坐標(biāo)(xtop,ytop)及右下角坐標(biāo)(xbot,ybot)。
為獲得更快的收斂速度,減少訓(xùn)練時(shí)間成本,本文基于YOLOv5框架下YOLOv5s預(yù)訓(xùn)練權(quán)重進(jìn)行遷移學(xué)習(xí)。其中,硬件平臺(tái)參數(shù)中央處理器為Intel i7 7700k,圖形計(jì)算卡為Nvidia GeForce GTX 1070 Ti,批量數(shù)為16,訓(xùn)練100輪,共迭代28 507次。
經(jīng)過(guò)訓(xùn)練之后,得到目標(biāo)檢測(cè)模型,模型識(shí)別效果如圖5所示。訓(xùn)練過(guò)程誤差函數(shù)以及mAP曲線如圖6曲線所示。
圖5 檢測(cè)效果展示Fig.5 Detection effect display
圖6 模型訓(xùn)練參數(shù)Fig.6 Model training parameters
本文將原始圖像與自適應(yīng)裁切算法生成的圖像混合作為模型訓(xùn)練數(shù)據(jù)集,訓(xùn)練所得模型記為模型1。為證明本文提出自適應(yīng)裁切算法的有效性,本文設(shè)計(jì)了另兩組對(duì)比實(shí)驗(yàn),分別使用原始圖像作為訓(xùn)練集,訓(xùn)練所得模型2。以及僅使用自適應(yīng)裁切算法生成的圖像作為訓(xùn)練集,訓(xùn)練所得模型3。
3.2.1 模型參數(shù)分析
本文采用均值平均精度mAP、召回率、準(zhǔn)確率作為評(píng)價(jià)指標(biāo),對(duì)3個(gè)模型訓(xùn)練效果進(jìn)行評(píng)價(jià),最終訓(xùn)練參數(shù)如表2所示。
表2 模型預(yù)測(cè)參數(shù)對(duì)比Tab.2 Comparison of prediction parameters of 3 models
經(jīng)過(guò)100輪的訓(xùn)練之后,最終分別得到對(duì)應(yīng)訓(xùn)練集1、訓(xùn)練集2、訓(xùn)練集3的3個(gè)模型——模型1、模型2、模型3。訓(xùn)練過(guò)程損失函數(shù)變化曲線如圖7所示。結(jié)果顯示,模型1可以很快收斂,并在第10輪訓(xùn)練的時(shí)候基本趨于穩(wěn)定,模型2在訓(xùn)練開(kāi)始階段有較大的波動(dòng),并且在第28輪訓(xùn)練之后基本趨于穩(wěn)定,模型3則波動(dòng)范圍較大,不易收斂。
圖7 誤差函數(shù)對(duì)比Fig.7 Loss function comparison
圖8為3個(gè)模型的平均精度均值(IoU=0.5)與平均精度均值(IoU=0.95)的折線圖。由圖8中可以看到,模型1的平均精度均值(IoU=0.5)在第10輪訓(xùn)練時(shí)已經(jīng)基本達(dá)到穩(wěn)定,最大值為97.5%,而模型2的平均精度均值(IoU=0.5)在第80輪訓(xùn)練才基本到達(dá)穩(wěn)定,最大值為96.4%。模型3僅為85.2%。
圖8 平均精度均值對(duì)比Fig.8 m AP comparison
平均精度均值(IoU=0.95)能更好的衡量一個(gè)模型的實(shí)際檢測(cè)性能,模型1的平均精度均值(IoU=0.95)的最大值為62.36%,模型2最大值為59.5%,而模型3只有46.7%。表明模型1在輸出的預(yù)測(cè)框與真實(shí)的目標(biāo)框有著很高的交并比,預(yù)測(cè)效果與真實(shí)值很接近。
準(zhǔn)確率為對(duì)目標(biāo)預(yù)測(cè)值與真實(shí)值的比值,是1個(gè)目標(biāo)檢測(cè)網(wǎng)絡(luò)對(duì)目標(biāo)識(shí)別準(zhǔn)確性的評(píng)價(jià)標(biāo)準(zhǔn)。3個(gè)模型的準(zhǔn)確率如圖9-a所示,由曲線可見(jiàn),得益于訓(xùn)練集圖片自適應(yīng)裁切算法,模型1僅僅訓(xùn)練了20輪就達(dá)到92.55%。模型3僅使用自適應(yīng)裁切算法裁切后的圖片進(jìn)行訓(xùn)練,缺乏對(duì)整體特征的學(xué)習(xí),最高準(zhǔn)確率為89.02%。模型2僅使用高分辨率原圖進(jìn)行訓(xùn)練,壓縮后無(wú)法學(xué)習(xí)到細(xì)節(jié)特征,最高準(zhǔn)確率為85.43%。
圖9 準(zhǔn)確率與召回率對(duì)比Fig.9 Com parison of precision and recall
召回率為檢測(cè)的目標(biāo)數(shù)量與所有目標(biāo)數(shù)量的比值,是評(píng)價(jià)一個(gè)模型能否檢測(cè)出所有目標(biāo)的衡量標(biāo)準(zhǔn)。3個(gè)模型的召回率如圖9-b所示,模型1的最大召回率為98.78%,模型2的最大召回率為98.42%,模型3的最大召回率為81.85%。由此可得,模型1在檢測(cè)目標(biāo)的查全度方面優(yōu)于模型2與模型3。
3.2.2 檢測(cè)效果分析
通過(guò)使用3個(gè)模型對(duì)高清圖像進(jìn)行預(yù)測(cè),挑選出6組不同干擾環(huán)境下的預(yù)測(cè)圖像進(jìn)行對(duì)比。如圖10所示,(a)組中模型1的檢測(cè)與人工計(jì)數(shù)結(jié)果相同,相對(duì)于模型2,模型1成功檢測(cè)到了圖像下方有水面反光干擾的目標(biāo),而模型2與模型3均未檢測(cè)到所有的蝦;(b)組中模型1可以準(zhǔn)確檢測(cè)到被泡沫遮擋的蝦。模型3出現(xiàn)了對(duì)重疊目標(biāo)無(wú)法分辨的情況;(c)組中模型1檢測(cè)到了圖中被遮擋僅露出蝦尾的目標(biāo),模型2與模型3均未檢出全部目標(biāo);(d)組中模型1準(zhǔn)確分開(kāi)了1組高密度目標(biāo),并正確標(biāo)記數(shù)量,而模型2與模型3出現(xiàn)了漏檢;(e)組中模型1同樣準(zhǔn)確檢出了被泡沫遮擋和水面反光干擾的目標(biāo);(f)組中模型1對(duì)非正常體位的蝦進(jìn)行了精確識(shí)別,而模型2與模型3因缺少此部分細(xì)節(jié)所以未能實(shí)現(xiàn)全部檢出。
圖10 檢測(cè)計(jì)數(shù)效果對(duì)比Fig.10 Com parison of detection and counting effect
由此可見(jiàn),使用自適應(yīng)裁切算法訓(xùn)練的模型1無(wú)論是在蝦被遮擋,或者是被水面反光干擾、扭曲變形的情況下,均能準(zhǔn)確的檢測(cè)出所有目標(biāo),并且能精確計(jì)數(shù)。
本文算法僅僅在數(shù)據(jù)預(yù)處理部分進(jìn)行了部分創(chuàng)新實(shí)驗(yàn),證明了數(shù)據(jù)預(yù)處理算法對(duì)目標(biāo)檢測(cè)算法的影響。因此,如果將本文算法進(jìn)行遷移到網(wǎng)絡(luò)檢測(cè)部分是否可行?以及如何有效減少高分辨率檢測(cè)過(guò)程中的網(wǎng)絡(luò)結(jié)構(gòu)引起的特征損失,如何平衡分塊檢測(cè)的精度與檢測(cè)時(shí)間的關(guān)系?將是下一步的主要方向。