艾正茂,譚鶴群,2,萬鵬
1.華中農(nóng)業(yè)大學工學院/農(nóng)業(yè)農(nóng)村部長江中下游農(nóng)業(yè)裝備重點實驗室,武漢 430070;2.長江經(jīng)濟帶大宗水生生物產(chǎn)業(yè)綠色發(fā)展教育部工程研究中心,武漢 430070
日本鯖(Scomber japonicus)在中國海洋漁業(yè)中占有相當重要的位置,為海洋中上層的主要經(jīng)濟魚類之一。1990 年后,我國日本鯖年產(chǎn)量基本維持在30 萬t 左右[1],日本鯖加工機械化裝備特別是前處理加工裝備的需求十分迫切。魚體定向整理是前處理加工的重要工序[2],目前此工序主要由人工完成,存在勞動強度大、生產(chǎn)效率低等缺陷,在一定程度上制約了魚體自動化加工的發(fā)展。因此,研究魚體定向整理方法和自動化裝備具有重要意義。
魚體定向整理包括魚體頭尾定向整理和魚體腹背定向整理兩部分,其目的是使魚體在輸送過程中通過整理使其頭尾和腹背朝向特定的方向,以便利后續(xù)去鱗、剖切、去內(nèi)臟等前處理加工工序的執(zhí)行。魚體的機械化頭尾定向整理主要依據(jù)魚體頭尾厚度、重心位置、魚鱗排列方向的差異來實現(xiàn)[3]。例如,徐頌波等[4]根據(jù)魚體頭部朝前和魚體尾部朝前兩種不同姿態(tài)接觸壓輪時產(chǎn)生的不同彎曲形變量來完成魚體頭尾的判斷工作。Webster 等[5]利用魚體重心靠近頭部的原理,將魚放置在旋流中,最后魚體保持頭部一致向外排出。萬鵬等[6]利用魚體在摩擦帶上的順鱗和逆鱗摩擦系數(shù)的差異,通過往復振動的方式實現(xiàn)魚體沿其逆鱗方向輸出。Pegoraro 等[7]利用魚體頭尾部分在輸送帶垂直方向上的高度差異,布置傳感器檢測輸送帶上魚體的頭尾朝向,結(jié)合相應執(zhí)行機構(gòu),實現(xiàn)魚體頭尾定向。魚體的機械化腹背定向整理,主要依據(jù)魚體腹背形狀、腹背重心位置的差異來實現(xiàn)。Leander[8]設計了一種魚體腹背定向系統(tǒng),利用腹背判斷機構(gòu)和翻轉(zhuǎn)機構(gòu)共同作用實現(xiàn)魚體腹背定向。萬鵬等[9]依據(jù)魚體的腹部與背部重心不在同一水平的特點,利用對輥裝置施加扭矩實現(xiàn)魚體的腹背定向。高星星等[10]利用漸變滑道對魚體腹背同時施加擠壓力,促使魚體向背部翻轉(zhuǎn)從而達到腹背定向的目的。綜上所述,國內(nèi)外學者針對魚體定向整理方法進行了較多研究并設計了一些裝置,但大多數(shù)裝置基本依靠純機械結(jié)構(gòu)組成,工作環(huán)境嘈雜,效率較低,設備運行成本高且只能用于固定的處理對象,普適性不強。
隨著計算機技術(shù)的快速發(fā)展,圖像處理和機器學習等技術(shù)應用逐漸成熟[11-13]。其中,卷積神經(jīng)網(wǎng)絡作為圖像分類算法的重要方法之一,具有識別精度高、檢測速度快等優(yōu)點,已廣泛應用于自動駕駛、農(nóng)產(chǎn)品檢測、醫(yī)療判斷、工業(yè)檢查等領域[14-18]。其在魚的目標檢測及種類識別等方面也有很好的應用。吳建輝等[19]采用鄰域邊界算法對魚體的輪廓進行提取,再利用魚體背部彎曲潛能算法,對4 種主要淡水魚的識別精度達到96%以上。顧?quán)嵠降龋?0]利用卷積神經(jīng)網(wǎng)絡提取魚體圖像特征,再結(jié)合SVM 算法形成混合分類模型,在F4K 數(shù)據(jù)集上取得了98.6%的準確率。李均鵬等[21]基于InceptionV3 網(wǎng)絡模型,使用遷移學習的方法在特征提取器后接入Average Pooling 層和SoftMax 分類層,新的訓練網(wǎng)絡對復雜場景海洋魚類識別準確率達到97.4%,比單純InceptionV3 網(wǎng)絡模型的識別準確率提高了29.8%。丁順榮等[22]基于多特征相結(jié)合及粒子群優(yōu)化SVM 的魚類分類方法,在實際采集的數(shù)據(jù)集上的準確率達到94.7%。陳英義等[23]基于改進VGG16 卷積神經(jīng)網(wǎng)絡的魚類識別方法,針對魚類目標很小、背景干擾很強的圖像,平均準確率能達到97.66%。
目前機器視覺技術(shù)在魚體的定向整理上的應用還僅停留在魚的種類識別階段,還未對相關(guān)的機械結(jié)構(gòu)及控制模塊進行研究。本研究針對上述魚體定向整理裝置存在的問題,以圖像處理和深度學習算法為核心設計了一種魚體自動定向整理的裝置,并進行了樣機試驗,以期為魚體智能化定向整理裝置的設計提供參考。
1)整體結(jié)構(gòu)。本研究設計的基于深度學習和圖像處理的日本鯖頭尾及腹背定向裝置整體結(jié)構(gòu)如圖1 所示。整機主要由一級輸送帶、擋板、二級輸送帶、圖像采集及處理系統(tǒng)、單片機控制系統(tǒng)、氣缸推桿裝置、W 型滑槽裝置等組成。一級輸送帶和擋板等組成魚體分離裝置,其功能是將落入一級輸送帶時呈堆疊狀態(tài)的魚體分隔開來,使其保持逐條向前輸送的狀態(tài)進入二級輸送帶。兩級輸送帶之間的速度差可使魚體間距增大,便于后續(xù)的定向處理。圖像采集及處理系統(tǒng)的作用是當魚體經(jīng)過相機下方時采集圖像發(fā)送至上位機儲存并處理。單片機控制系統(tǒng)完成與上位機信號通訊,并控制對應的執(zhí)行元件。氣缸推桿機構(gòu)由3 個氣缸組成,其中1 號氣缸的功能是將尾部朝前的魚體推出剔除以完成魚體的頭尾篩分,2 號氣缸和3 號氣缸的功能是將魚體推至相應限位板邊緣。
圖1 魚體定向裝置結(jié)構(gòu)示意圖Fig.1 Schematic diagram of the structure of the fish orientation device
2)工作原理。裝置的工作流程為:輸送帶穩(wěn)定運行后,打開PC 端的處理軟件,接通Arduino 控制板。將魚送入喂料槽,經(jīng)一級輸送帶上的魚體分離裝置調(diào)整后,魚體逐條分離并保持平行于輸送帶的姿態(tài)進入二級輸送帶,當魚體觸發(fā)光電傳感器時,圖像采集系統(tǒng)拍攝魚體圖片并輸送至PC 端的處理軟件完成魚體的頭尾及腹背朝向的識別。以輸送帶前進方向朝右為基準,從俯視的角度,魚體平躺在輸送帶上,其姿態(tài)包括如下4種情況:頭部朝前背部朝上、頭部朝前腹部朝上、尾部朝前背部朝上以及尾部朝前腹部朝上。Arduino 控制板通過串口協(xié)議控制對應引腳的氣缸推桿,當魚體頭部朝前時,1 號氣缸推桿不動作;當魚體尾部朝前時,氣缸推桿將其推出剔除,確保魚體頭部朝向與輸送帶前進方向一致,以完成魚體頭尾定向。當魚體腹部朝上時,2 號氣缸推桿動作將其推至上限位板邊緣;當魚體背部向上時,3號氣缸推桿動作將其推至下限位板邊緣,最后魚體在慣性作用下離開輸送帶進入W 型滑槽完成腹背定向。
1)魚體分離裝置。魚體分離裝置如圖2所示,其主要由限位板、擋板、絲桿、伺服電機、機架、草坪紋輸送帶等組成。其中,限位板間寬度約為魚體的寬度,擋板的下表面距離輸送帶的高度約為魚體的厚度。通過草坪紋輸送帶對魚體的摩擦力以及隔離擋板的阻力作用,可以保證落入輸送帶堆疊的魚體逐條分離,便于后續(xù)的魚體定向處理。
圖2 魚體分離裝置Fig.2 Fish separating device
2)圖像采集裝置。圖像采集裝置由輸送帶、光源、工業(yè)相機組成,如圖3 所示。選用UI-2210RE-CHQ 型面陣工業(yè)相機(IDS 公司,最高分辨率為600×480,幀率為75FPS)、配套鏡頭(IDS 公司,C 口,光圈范圍F1.4-F1.6),LED 條形光源,照明方式選擇暗場漫射照明。
圖3 圖像采集裝置Fig.3 Image acquisition device
3)腹背定向裝置。腹背定向裝置結(jié)構(gòu)如圖4 所示,主要由支撐機架和W 型滑槽組成?;鄄捎谜w流型設計,形狀近似為對稱的梯形。裝置整體寬度和輸送帶寬度相等,約為350 mm,斜面寬度略大于魚體寬度,傾角約為60°,槽底部寬度和深度略大于魚體的厚度和寬度。裝置位于輸送帶末端,魚體在慣性作用下落入斜面,滑入梯形槽中完成腹背定向。
圖4 腹背定向裝置Fig.4 Ventral-dorsal orientation device
4)控制裝置??刂蒲b置硬件選型如表1 所示。控制系統(tǒng)用于實現(xiàn)對圖像采集、氣缸推桿裝置動作等過程的控制,硬件連接圖如圖5所示。魚體到達拍照區(qū)域,觸發(fā)光電傳感器,控制裝置通過程序控制攝像頭對魚體姿態(tài)進行圖像采集,PC 端通過魚體頭尾朝向識別算法和魚體腹背朝向識別算法對魚體姿態(tài)進行判斷,判斷結(jié)果通過RS-485電纜輸出給Arduino控制器。當魚體尾部朝前時,單片機引腳輸出高電平使繼電器得電,電磁閥動作控制氣缸推桿動作,將魚推出剔除;當魚體頭部朝前,則繼續(xù)向前運輸,以保證在對應生產(chǎn)線上魚體姿態(tài)始終為頭部朝前,實現(xiàn)頭尾定向。隨后利用魚體腹背判斷結(jié)果,控制氣缸推桿將魚體推至限位板邊緣,使魚體腹部靠邊,最后魚體在慣性作用下滑入腹背定向裝置完成腹背定向。
圖5 控制系統(tǒng)硬件連接圖Fig.5 Hardware connection diagram of the control system
表1 控制器硬件選型與參數(shù)Table1 Hardware selection and parameters
1)圖像采集與處理。采集日本鯖4 種不同姿態(tài)下魚體圖像,如圖6A-D 所示,每種姿態(tài)各500 張,共2 000張。圖像分辨率為448像素×224像素,圖片格式為.png。為提高模型的泛化能力,對圖像數(shù)據(jù)集進行預處理,調(diào)用Tensorflow2 算法工具庫對圖像數(shù)據(jù)集進行數(shù)據(jù)增強,其中主要包括對魚體圖像進行添加噪聲、角度旋轉(zhuǎn)、變換亮度和對比度等處理,經(jīng)數(shù)據(jù)增強后共得到3 000 張圖片。為對魚體頭尾姿態(tài)進行識別,其實質(zhì)是對魚體頭部朝前或尾部朝前的圖像進行分類,因此,將每張圖片分割為224 像素×224像素的2張圖片,如圖6E-F所示。其中“頭部”和“尾部”圖片各3 000 張,共6 000 張。最后將數(shù)據(jù)集按照6∶2∶2比例分為訓練集、驗證集和測試集。制作后的數(shù)據(jù)集如表2所示。
表2 魚體姿態(tài)數(shù)據(jù)集Table 2 Fish posture data set
圖6 魚體圖像采集Fig.6 Fish image capture
2)基于Resnet-18的魚體頭尾朝向識別。相較于傳統(tǒng)的其他分類網(wǎng)絡,Resnet 通過引入殘差模塊解決了網(wǎng)絡加深導致特征丟失,進而引起的梯度彌散或梯度爆炸等問題[24],其模型的復雜度降低,所需參數(shù)量也大幅下降,模型更易訓練且泛化性更強。考慮到設備后續(xù)的工程化應用,該網(wǎng)絡模型未來可用于嵌入式設備。因此,本研究選取殘差網(wǎng)絡結(jié)構(gòu)中含參數(shù)量較少的Resnet-18輕量網(wǎng)絡作為魚體頭部和尾部的分類模型,以利于在維持高準確率的同時提升分類及檢測速度。本研究使用224像素×224像素魚體圖片作為Resnet-18模型輸入。首先對圖片進行卷積,卷積核大小為7×7,卷積核個數(shù)為64,激活函數(shù)為ReLU,步長為2。經(jīng)池化后得到的56×56×64特征圖輸入到一系列的殘差單元塊中,其中包括8個3×3 的殘差塊,卷積核的數(shù)量分別為64、128、256、512,得到大小為7×7×512 的特征圖。再通過全局平均池化使特征變?yōu)橐痪S特征。輸出特征矩陣變?yōu)?×1×512,然后輸入到全連接層Fc,最后由Softmax分類器輸出2個類別的對應概率值,從而給出種類識別結(jié)果。
Resnet-18在制作的魚體頭尾朝向分類數(shù)據(jù)集上進行訓練。上位機軟件運行環(huán)境為:基于Python3 編程語言的Tensorflow2 深度學習框架,操作系統(tǒng)為Windows10 64 位專業(yè)版,CPU 為AMD Ryzen R5 1400,GPU 為內(nèi)存4GB 的NVIDIA 顯卡(GTX1050 Ti),基礎環(huán)境配置為Anaconda3、PyCharm。在模型訓練過程中選擇Adam 優(yōu)化器對模型進行優(yōu)化,初始學習率設為0.001,動量為0.9,權(quán)重衰減為0.000 1,批大小為16,迭代次數(shù)為50。訓練結(jié)果如圖7 所示。訓練后的模型在驗證集的識別準確率為99.5%。
圖7 Resnet-18損失值和準確率曲線Fig.7 Resnet-18 loss value and accuracy curve
3)基于圖像處理的魚體腹背朝向識別。針對日本鯖樣本明顯的腹背顏色差異,本研究通過圖像處理的方式分割采集圖像中的魚體區(qū)域,對其進行網(wǎng)格劃分,分別提取魚體腹部和背部的顏色特征值,比較其灰度值大小從而判斷魚體腹背方向。魚體腹背朝向沿輸送帶前進方向分別為魚體背部朝上和魚體腹部朝上2 種。此處以腹部朝上的魚體為例(圖8A),其處理過程如圖8所示。
對圖像進行灰度化處理,對于像素點中的3個顏色分量值R、G、B,采用加權(quán)平均的灰度化公式(式1)計算出該點的灰度值代替原始的像素值,得到該圖像的灰度圖。
式(1)中,Gray 為灰度值,R、G、B分別為各顏色分量值。
為解決實際生產(chǎn)加工中輸送帶上水污漬對準確分割圖像中的目標區(qū)域造成的影響,須對圖像進行濾波降噪。根據(jù)濾波公式(式2),采用不同的濾波器g(x,y)可實現(xiàn)不同的濾波效果。經(jīng)過圖像預處理,當使用5×5卷積核的高斯濾波時,其降噪效果較好,如圖8B所示。
式(2)中,f(x,y)為點(x,y)原像素值,g(x,y)為濾波器,n、m為卷積核長寬,N、M為圖片長寬的像素點個數(shù)。
以Sobel 算子(Sobel operator)[25]計算x,y方向上的梯度后,在x方向上減去y方向上的梯度,留下具有高水平梯度和低垂直梯度的圖像區(qū)域,如圖8C所示。
在數(shù)字圖像處理中,二值圖像占有非常重要的地位。調(diào)用OpenCV 庫函數(shù)中全局二值化的方法對每幅圖像計算單一的閾值。其計算公式(式3)如下。
式(3)中,dst(x,y)為點(x,y)二值化后的像素值,maxval為最大像素值,src(x,y)為點(x,y)原始像素值,thresh 為分割閾值。當灰度級大于閾值時,像素置為255,否則置為0。經(jīng)過圖像預處理發(fā)現(xiàn),分割閾值的大小會影響目標區(qū)域分割框的大小,當分割閾值(thresh)大小取15時,在完整保留魚體腹部和背部信息的同時,分割邊界與魚體上下邊緣最為接近,利于后續(xù)較準確獲取魚體腹部與背部像素值,效果較好,如圖8D所示。
為更好尋找圖像邊緣,通過圖像形態(tài)學處理(包括膨脹、腐蝕、開運算和閉運算)填補圖像內(nèi)部空缺,去除外部多余的雜點。本研究選取ELLIPSE 卷積核[26],首先對圖像進行閉運算操作并在此基礎上依次執(zhí)行4 次形態(tài)學腐蝕與膨脹,效果如圖8E 所示。調(diào)用OpenCV 庫函數(shù)分割目標區(qū)域,截取采樣框的最小外接矩形,如圖8F 所示。根據(jù)外接矩形的4 個點的橫縱坐標截取目標區(qū)域如圖8G所示。
圖8 圖像處理流程圖Fig.8 Image processing flow chart
為驗證此方法的準確性,從上述采集圖片中隨機選擇30 張圖片提取魚體腹部與背部的灰度平均值,結(jié)果如圖9 所示。由圖9 可知,在隨機選擇的30張魚體圖片中,圖像處理算法所提取的腹部灰度值均大于背部灰度值,即此方法判斷準確率為100%。
圖9 魚體腹背灰度值對比圖Fig.9 Comparison of gray values on the ventral and dorsal sides of the fish
1)試驗材料與設備。為驗證基于深度學習與圖像處理技術(shù)的日本鯖頭尾及腹背定向整理裝置的作業(yè)效果,于2021 年7 月在華中農(nóng)業(yè)大學工科基地實驗室開展了樣機試驗。以網(wǎng)上購買的30條冷凍日本鯖作為試驗材料,質(zhì)量為498.2~593.4 g、長度分布在36.9~40.3 cm、寬度分布在6.78~7.32 cm、厚度分布在4.67~5.26 cm。為避免魚體表面附著的冰晶以及魚體僵硬造成形變過大對試驗的影響,試驗前將冷凍日本鯖置于0~4 ℃水中解凍30 min,用干毛巾擦拭后備用。
2)試驗方法與評價指標。將調(diào)整后魚體頭部向前,背部向上的姿態(tài)定義為定向整理成功。啟動試驗裝置,魚體定向整理成功的數(shù)量通過試驗觀察統(tǒng)計得到,魚體定向整理成功率計算公式如下(式4)。
式(4)中,S1為魚體定向整理成功率,%;N0為試驗魚體總尾數(shù);N1為魚體定向整理成功的尾數(shù)。
識別成功率指魚體頭尾和腹背朝向識別準確的概率,計算公式如下(式5)。
式(5)中,S2為魚體姿態(tài)識別成功率,%;N2為魚體姿態(tài)識別正確的尾數(shù)。
算法識別時間為采集圖像到魚體頭尾及腹背識別完成所需的時間;整理時間為圖像采集完成到魚體定向排列完成所需要的總時間,包括圖像采集時間、算法識別時間和控制板驅(qū)動執(zhí)行機構(gòu)運動所需要的時間。
試驗結(jié)果如表3 所示。由表3 可知,魚體頭尾朝向的識別成功率93.3%,魚體腹背朝向的識別成功率100.0%,魚體頭尾及腹背定向整理的總成功率為93.3%。即當網(wǎng)絡模型能準確識別魚體姿態(tài)時,調(diào)整機構(gòu)能依照指令實現(xiàn)定向整理的功能。算法識別時間的均值為0.038 s,調(diào)整時間的均值為3.725 s,其中,魚體頭部朝前時的調(diào)整時間均值為3.48 s,魚體尾部朝前時的調(diào)整時間均值為3.97 s。魚體頭部朝前和魚體尾部朝前時的調(diào)整時間相差較大,這是因為需要將尾部朝前的魚體通過氣缸推出剔除,而頭部朝前的魚體則直接進入后續(xù)的腹背調(diào)整裝置,因此尾部朝前時的調(diào)整時間比頭部朝前的長。
表3 魚體頭尾定向試驗結(jié)果Table 3 Results of fish head-to-tail orientation tests
本研究基于實際生產(chǎn)加工喂料方式設計了一種簡易的魚體分離裝置,利用草坪紋輸送帶對魚體表面的摩擦作用,在擋板的作用下實現(xiàn)魚體的逐條分離。依據(jù)魚體在輸送帶上向前運輸時存在頭部朝前和尾部朝前2種狀態(tài),將完整的魚體圖片分為“頭部”和“尾部”構(gòu)建數(shù)據(jù)集,Resnet-18 網(wǎng)絡模型在該數(shù)據(jù)集上的準確率達到了99.50%。針對日本鯖腹背顏色差異明顯的特點,通過網(wǎng)格劃分經(jīng)圖像處理得到的魚體區(qū)域后,比較魚體腹背各取3 個點的灰度平均值,可以有效判斷魚體腹背朝向,成功率達到100%。通過樣機進行魚體頭尾及腹背定整理試驗,試驗結(jié)果表明,魚體定向整理成功率為93.3%,算法的判斷時間為0.038 s,平均每尾魚的定向整理時間為3.725 s,理論上魚體定向整理的效率可達到15~16尾/min。該裝置運用機器視覺技術(shù),通過傳統(tǒng)圖像處理和深度學習方法,識別魚體在生產(chǎn)線上的姿態(tài)信息,應用Arduino 控制技術(shù)實現(xiàn)魚體的頭尾及腹背定向整理。對比于國內(nèi)外同類設備,所采用的基于機器視覺的裝置設計能極大簡化純機械裝置的復雜度,降低了使用及維護成本,優(yōu)化工作環(huán)境。同時本裝置采用Arduino 控制板作為核心控制器,成本低,操作簡單,易于維護。目前,本研究僅以日本鯖為試驗對象,針對復雜多樣的魚體種類,此方法存在一定局限性,后續(xù)還可以就不同顏色和外形的魚體進一步研究。