單慧勇,張程皓,李晨陽,趙輝,田云臣
(1.天津農(nóng)學院工程技術(shù)學院,天津市,300384;2.天津農(nóng)學院計算機與信息工程學院,天津市,300384)
魚類前加工處理主要包括去頭、去尾、去鱗、剖切去臟及切片等環(huán)節(jié)。其中,魚類定向處理是極重要的一環(huán),能否準確可靠的進行魚體定向上料,直接關(guān)系到魚體的后續(xù)加工處理的效率和可靠性。
在魚體定向方面,陳福禮等[1]研制了鮮魚加工裝置。在其整理部分,輸送帶傾斜布置,在其輸送帶上方設有規(guī)律排列的插針。當魚體經(jīng)過傳送帶時,插針會插入魚鱗或者魚鰓中,帶動魚體向上運動,魚體在重力作用下,實現(xiàn)頭前尾后向前輸送。該裝置主要靠插針插入魚體鰓部或魚鱗處帶動魚體運動,容易造成魚體損傷。高星星等[2]利用魚體體型差異及摩擦特性,將魚體放置在傾斜的振動臺面上,可以實現(xiàn)魚體頭尾定向。但是其試驗樣機結(jié)構(gòu)較小,不能同時處理大批量的魚,難以推廣至生產(chǎn)線使用。此外振動臺僅依靠四根螺桿懸掛固定,中間再無其他支撐,在工作中,振動臺持續(xù)振動,對螺桿及機架損耗較大。向云鵬[3]針對淡水魚振動定向方面進行研究,研制出淡水魚振動定向設備。該設備主要采用往復振動的方法,對魚體實現(xiàn)頭尾定向。但是該設備若達到共振頻率時,振動設備震動情況劇烈,而且只針對單條魚體進行設計研究,難以適用于實際生產(chǎn)中的大批量魚體同時處理。
本文采用測量光幕掃描魚體圖像,通過對魚體圖像進行處理,根據(jù)圖像特征識別魚體頭尾方向,同時為方便操作者實時監(jiān)測魚體狀態(tài),設計了基于Matlab環(huán)境的人機交互GUI界面。
魚加工生產(chǎn)線頭尾定向調(diào)理上料系統(tǒng)包括檢測裝置和調(diào)整裝置。檢測裝置主要由導向裝置和測量光幕組成??刂葡到y(tǒng)整體結(jié)構(gòu)如圖1所示。魚體在傳送帶上向前輸送,經(jīng)過導向裝置梳理,魚體豎直通過測量光幕[4],待魚體完全通過測量光幕后,計算機繪制魚體圖像,計算魚體長度,判斷魚體頭尾方向,根據(jù)判斷結(jié)果向同步帶驅(qū)動電機發(fā)送相應的指令,完成魚體頭尾定向。
圖1 系統(tǒng)整體結(jié)構(gòu)示意圖
1)檢測裝置。控制系統(tǒng)中測量光幕的型號為STC-D96025測量光幕,包括發(fā)光器和受光器[5]。發(fā)光器上每隔2.5 mm有一個光束點,與之對應的,受光器每隔2.5 mm有一個接收點,共包括96個光束點,檢測范圍237.5 mm。檢測時,魚體豎直經(jīng)過測量光幕,魚寬10~15 cm不等,測量光幕檢測范圍可滿足檢測需要。發(fā)光器以固定頻率不斷的發(fā)出光束,受光器檢測接收光束。自然狀態(tài)下,受光器可完全接收到發(fā)光器發(fā)出的光束,光幕以固定頻率持續(xù)掃描讀取數(shù)據(jù)[6],待魚體通過測量光幕時,部分光束被遮擋,其遮擋的光束為一組數(shù)據(jù),待魚體完全通過測量光幕后,將所有的數(shù)據(jù)統(tǒng)計,繪制所得的魚體圖像如圖2所示。
2)頭尾調(diào)整裝置。頭尾調(diào)整裝置主要包括機架、同步帶及驅(qū)動電機等。同步帶驅(qū)動電機型號為57HBP112AL4-TFA兩相四線步進電機,外接M36J驅(qū)動器與計算機相連接。同步帶首末端均安裝有光電限位開關(guān)。
當傳送帶輸送魚體經(jīng)過測量光幕,測量光幕掃描魚體圖像,發(fā)送至控制器,判斷魚的頭尾和腹背朝向、體態(tài)數(shù)據(jù)等。如圖3所示為頭尾調(diào)整工作原理圖,若檢測結(jié)果為頭前尾后,則不向后續(xù)同步帶驅(qū)動電機發(fā)送指令,移動平板位于原點處(同步帶中心位置)。魚體在傳送帶帶動下向前輸送,在傳送帶末端掉落到弧形滑軌中,保持頭前尾后姿態(tài)輸出。檢測結(jié)果為尾前頭后,計算機向同步帶驅(qū)動電機發(fā)送運動指令,帶動移動平板向傳送帶末端移動,平板到位后觸發(fā)光電限位開關(guān),自動??吭趥魉蛶┒?。傳送帶末端布置有光電開關(guān),待魚體到達傳送帶末端時,遮擋光電開關(guān),根據(jù)繪制的魚體圖像,分析計算魚體長度及重心位置,設定合適的延遲時間,待魚體一部分移動到平板上后,同步帶驅(qū)動電機反轉(zhuǎn),速度與傳送帶速度一致,保證魚體在不掉落的情況下,向前繼續(xù)運送待魚體離開傳送帶末端,因魚體一部分搭在平板上,魚體在重力作用下掉落,翻轉(zhuǎn)落入弧形滑道,最后保證頭前尾后向前運送。
(a)頭前尾后
采用Modbus RTU通訊協(xié)議[7],通過RS485問答方式與測量光幕和步進電機M36J驅(qū)動器通訊,在Matlab環(huán)境中開發(fā)控制系統(tǒng),系統(tǒng)總體控制流程圖如圖4所示。
圖4 控制系統(tǒng)總體流程圖
為方便操作者監(jiān)測魚體狀態(tài)及各項數(shù)據(jù),實時調(diào)整各項參數(shù),設計Matlab GUI控制界面[8],如圖5所示。控制界面包括操作控制區(qū)、參數(shù)配置區(qū)、圖像顯示區(qū)及狀態(tài)顯示欄4部分。操作控制區(qū)包括開關(guān)按鈕、調(diào)整平板復位按鈕等,可以控制程序總體啟停,平板初始化。參數(shù)配置區(qū)可設置平板等待時間與魚體經(jīng)過測量光幕時間的比例參數(shù)、調(diào)整平板移動速度。
圖5 GUI控制界面
t1=t/n
(1)
式中:t1——平板等待時間;
t——魚體經(jīng)過光幕的時間;
n——比例參數(shù)。
圖像顯示區(qū)包括三個圖窗,其中上部較大的圖窗可以顯示魚體輪廓曲圖像,下側(cè)圖像分別顯示魚體頭尾曲線擬合圖,便于操作者實時監(jiān)測控制系統(tǒng)頭尾識別過程。狀態(tài)顯示欄可以顯示調(diào)整的魚體數(shù)量、時間、魚體長度及頭尾方向。
魚體圖像處理控制流程如圖6所示。
圖6 魚體圖像處理流程圖
2.2.1 圖像預處理
光幕檢測較為敏感,可精準的檢測魚體輸送過程中是否發(fā)生歪斜,同時掃描的魚體截面間隙較大,需對圖像進行預處理。魚體截面圖由多組不同長度的直線組成,將圖像轉(zhuǎn)換為二值圖像,根據(jù)圖像間隙特征,進行閾值尋優(yōu),選定構(gòu)建半徑為11的平面圓盤形的結(jié)構(gòu)元素對其執(zhí)行形態(tài)學膨脹處理[9],可保證圖像基本特征不變的前提下,將松散的直線連通。
圖7 膨脹后的圖像
圖像間隙填充完成后,需對魚體邊緣輪廓進行提取,Canny算法受噪聲影響較小,保存的邊緣信息最完整[10],因此使用Canny邊緣檢測算法提取圖像輪廓。Canny邊緣檢測分為以下四步。
1)高斯濾波:使用高斯濾波對圖像進行去噪,使圖像變得平滑,高斯函數(shù)是一個類似與正態(tài)分布的中間大兩邊小的函數(shù)。對于一個位置(m,n)的像素點,其灰度值(這里只考慮二值圖)為f(m,n)。經(jīng)高斯濾波后的灰度值
(2)
式中:gσ——經(jīng)高斯濾波后的圖像灰度值;
f(m,n)——(m,n)點處圖像的灰度值;
σ——標準差。
2)計算梯度幅值及方向:灰度值變化較大的像素點的集合即為邊緣。在圖像中,用梯度來表示灰度值的變化程度和方向。通過式(3),式(4)計算梯度幅值和方向。
(3)
(4)
式中:G(m,n)——圖像邊緣的梯度幅值;
α——圖像邊緣的梯度方向;
gx(m,n)——x方向梯度幅值;
gy(m,n)——y方向梯度幅值。
3)邊緣點過濾:采用非極大值抑制法[11],對邊緣點進行檢測,對每個像素點沿其梯度方向比較其前后的梯度值,若該像素點屬于邊緣,它在梯度方向上的梯度值是最大的,否則不是邊緣,將其灰度值設為0。
(5)
4)雙閾值法檢測邊緣:設置兩個閾值,分別為maxVal和minVal。其中大于maxVal的都被檢測為邊緣,而低于minVal的都被檢測為非邊緣。對于中間的像素點,如果與確定為邊緣的像素點鄰接,則判定為邊緣;否則為非邊緣。
經(jīng)Canny邊緣檢測算法提取后的魚體輪廓圖如圖8所示,其邊線較為模糊,對輪廓圖執(zhí)行形態(tài)學開運算[12],對圖像輪廓進行增強,優(yōu)化后圖像如圖9所示。
圖8 圖像輪廓提取
圖9 優(yōu)化圖像輪廓
在測量光幕前端有導向裝置可對魚體起到一定梳理導向的作用,測量光幕檢測精度可達2.5 mm,在外界的干擾下魚身難免會發(fā)生偏移,如圖8則為發(fā)生偏移的魚體圖像,為增加頭尾腹背檢測可靠性,對圖像進行矯正,使魚身頭尾軸水平[13]。采用Radon變換法對魚體圖像進行矯正[14],Radon變換是一種積分變換算法,其原理是將目標圖像里經(jīng)過某一點(m,n)的直線ρ=mcosθ+nsinθ,投影到對應參數(shù)空間里的一個點,其原理公式如式(6),式(7)所示。
(6)
(7)
式中:D——圖像平面;
f(m,n)——圖像中點(m,n)像素點的灰度值;
ρ——圖像中點(m,n)與原點之間的長度;
θ——該直線與原點間的垂線與x軸的角度。
Radon變換的本質(zhì)是將原函數(shù)做了一個空間轉(zhuǎn)換[15]其轉(zhuǎn)換效果可理解為將圖像順時針旋轉(zhuǎn)了θ角之后映射到水平軸上。矯正后魚體圖像如圖10所示,通過邊界點追蹤定位魚體,將背景多余部分裁剪剔除,魚體定位效果如圖11所示。
圖10 Radon變換后魚體圖像
圖11 魚體定位
2.2.2 魚體頭尾識別
通過對魚體頭尾部分輪廓進行擬合,結(jié)果如圖12、圖13所示,頭部輪廓與拋物線相似,尾部形狀與三周期內(nèi)正弦函數(shù)圖線相似,可利用頭尾圖像角點數(shù)量差別,對魚體頭尾進行識別。采用Harris算子[16]進行檢測識別魚體頭尾朝向。
圖12 魚體頭部擬合曲線
圖13 魚體尾部擬合圖線
Harris算子是1988年由Chris Harris等提出的[17],具有旋轉(zhuǎn)不變性的角點相應測度。其檢測原理如下:通過控制特定像素大小的選框在圖像中移動,選框移動過程中,計算其移動前后灰度值的變化,若選框在某一方向移動中,灰度值發(fā)生突變,則判定為該選框部分存在有角點。
圖像I(x,y)在點(x,y)處平移(u,v)后產(chǎn)生的灰度變化E(x,y,u,v)如式(8)所示。
I(x,y)]2
(8)
式中:S——移動選框的區(qū)域;
w(x,y)——窗口函數(shù)(可以為常數(shù)或是高斯函數(shù));
I(x+u,y+v)——平移后的圖像灰度;
I(x,y)——平移前的圖像灰度。
對平移后的圖像灰度公式I(x+y,u+v)進行泰勒展開
(9)
灰度變化可寫為
(10)
(11)
M是關(guān)于x,y的二階函數(shù),因此E(x,y,u,v)是一個橢圓方程,M的特征值決定了橢圓的大小及扁率,其特征矢量決定了橢圓的方向[18]。
圖14 橢圓方程示意圖
使用Harris算法對魚體輪廓圖像進行檢測,檢測結(jié)果如圖15所示,尾部角點數(shù)量大于頭部角點個數(shù),根據(jù)圖像檢測出的角點數(shù)量差別,可精準識別魚體頭尾。
圖15 頭部輪廓檢測圖
圖16 尾部輪廓檢測
為檢驗控制系統(tǒng)識別魚體頭尾的可靠性,購買淡水魚進行試驗,采集魚體參數(shù)及各種不同姿態(tài)的魚體圖像,檢測系統(tǒng)頭尾識別準確率,同時在頭尾識別成功的條件下,檢測調(diào)整裝置對魚體頭尾定向的成功率。
試驗采用市場購得的草魚進行試驗,為檢測系統(tǒng)識別準確性及調(diào)整裝置的適應性,選購的草魚長度差異較大,部分草魚參數(shù)如表1所示。
表1 草魚參數(shù)
為檢測輸送速度對系統(tǒng)識別頭尾方向的影響,同時尋找最優(yōu)輸送速度,設定不同的輸送速度,每一個輸送速度下進行150次試驗,觀察系統(tǒng)的識別結(jié)果,試驗數(shù)據(jù)如表2所示。
表2 輸送速度對檢測結(jié)果的影響
通過觀察光幕掃描圖像,輸送速度大于15 cm/s時,魚體經(jīng)過光幕時間較短,掃描的魚體圖像中像素點較為松散,膨脹處理時圖像填充效果較差,擬合出的魚體輪廓不理想。根據(jù)試驗結(jié)果分析,輸送帶速度設定為10 cm/s時,其判斷成功率接近95%,同時檢測時長為6 s,檢測時間較短,成功率較高。
在頭尾調(diào)整部分,頭前尾后時,平板不動作,魚體能穩(wěn)定掉落至弧形滑道中,頭前尾后輸送上料,其成功率為100%。尾前頭后狀態(tài),需要進行調(diào)整,設定輸送速度均為10 cm/s,通過設定不同的n值,可改變魚尾搭上平板的長度。
l1=l/n
(12)
式中:l1——魚體搭上調(diào)整平板的長度;
l——魚體總長;
n——比例參數(shù)。
試驗數(shù)據(jù)如表3所示。
表3 不同上板長度對調(diào)整結(jié)果的影響
經(jīng)試驗驗證,針對草魚,n值設置為3時,即魚體1/3搭上平板,平板開始運動,調(diào)整效果最佳,成功率可達90%,同時發(fā)現(xiàn),不同上板長度對調(diào)整時長無顯著影響。
圖17 系統(tǒng)測試
使用Matlab軟件,以Modbus RTU協(xié)議為通訊協(xié)議,設計了魚體頭尾調(diào)整控制系統(tǒng),通過光幕掃描的魚體圖像,對魚體圖像進行處理,通過提取魚體輪廓曲線,對魚體頭尾曲線進行擬合,采用Harris角點檢測算法輔助識別頭尾方向。在此基礎上,設計了調(diào)整裝置對魚體實現(xiàn)頭尾定向調(diào)整。初步實驗結(jié)果表明,根據(jù)光幕掃描的魚體圖像進行頭尾檢測識別的成功率可達95%,頭尾調(diào)整裝置對魚體定向成功率可達90%,系統(tǒng)控制精度高,處理速度較快,可靠性較好,可滿足生產(chǎn)加工需求。對比當前機械加工中單純依靠魚類體態(tài)特征和機械結(jié)構(gòu)實現(xiàn)頭尾定向,更為可靠,使用光幕掃描魚體進行頭尾定向可實現(xiàn)無損檢測,更容易保護魚體。
研究主要針對草魚,對于其他種類特征差別較大的魚體適用性有待進一步研究,后續(xù)將研究各種不同魚體的種類識別與頭尾定向算法。