王蕾
(新鄉(xiāng)市質(zhì)量技術(shù)監(jiān)督檢驗測試中心,河南新鄉(xiāng)453000)
基于機器視覺的馬鈴薯自動分檢系統(tǒng)
王蕾
(新鄉(xiāng)市質(zhì)量技術(shù)監(jiān)督檢驗測試中心,河南新鄉(xiāng)453000)
利用機器視覺的自動分檢技術(shù),設(shè)計馬鈴薯采摘后的商品化處理的解決方案。系統(tǒng)先準(zhǔn)確抓取馬鈴薯圖像,經(jīng)二值化后提取圖像邊緣,然后使用特定的算法求出邊緣的最小外接圓和最大內(nèi)切圓,最終實現(xiàn)馬鈴薯等級自動評估分類。系統(tǒng)實現(xiàn)了每分鐘50個馬鈴薯的分級速度,錯誤分類在2%以內(nèi),大大提高了農(nóng)產(chǎn)品質(zhì)量檢測、品種的識別和分級效率。
機器視覺;自動分檢;馬鈴薯檢測
中國馬鈴薯種植面積和總產(chǎn)量居世界首位,也是全球第十大馬鈴薯出口國[1]。要使馬鈴薯作為高質(zhì)量、高附加值農(nóng)產(chǎn)品進入流通領(lǐng)域,就必須減少采后損失、提高附加值,而高度重視馬鈴薯采摘后的商品化處理技術(shù)的自動化、精細化是農(nóng)產(chǎn)品檔次提高和增值的重要途徑。
近年來,隨著機器視覺技術(shù)的發(fā)展,基于機器視覺的農(nóng)產(chǎn)品質(zhì)量檢測、品種識別和分級的設(shè)備已在發(fā)達國家實現(xiàn)商品化。Marchant等研制出根據(jù)馬鈴薯尺寸進行分級的機器視覺系統(tǒng),通過測量馬鈴薯的最大、最小寬度,并估計其質(zhì)量,每分鐘可實現(xiàn)對40個馬鈴薯的在線分級[2];Tao等研究了基于傅里葉變換的馬鈴薯形狀分級的品質(zhì)檢測系統(tǒng)[3];Deck等把馬鈴薯按照形狀、尺寸和發(fā)綠程度進行分類,其結(jié)果好于統(tǒng)計分類[4]。目前,國內(nèi)機器視覺技術(shù)相對于發(fā)達國家有一定的差距,農(nóng)業(yè)機械自動化水平也相對滯后[5]。本研究是根據(jù)馬鈴薯等級規(guī)格的相關(guān)要求,從形狀上對馬鈴薯進行自動分級。
1.1研究方向
馬鈴薯從形狀上可被看作是橢球體。從數(shù)學(xué)角度看,只要知道長軸和短軸的數(shù)值,就可以完全描述橢球。嚴(yán)格地講,必須測量出同一個馬鈴薯在無數(shù)個正交方向上的長軸和短軸(長軸即是圖像邊緣的最小外接圓直徑,短軸即是圖像邊緣的最大內(nèi)切圓直徑),才可以準(zhǔn)確確定其形狀,但考慮到實際中無法獲取無數(shù)個方向上的圖像,且三個正交方向的圖片足以滿足精度要求,本文只取三個正交方向的圖像,也就是抓取馬鈴薯的三視圖圖像,并測量三個方向上的軸長,以此評估其大小和形狀。
根據(jù)以上分析,作如下定義:最小外接圓半徑Rw為長半軸;最大內(nèi)切圓半徑Rn為短半軸;變量A=Rw× Rn表征馬鈴薯大小,值越大表示馬鈴薯越大;變量R= Rn/Rw表征馬鈴薯形狀的好壞,值越接近于1表示形狀越好。具體算法為Rw=max{Rw1,Rw2,Rw3},Rn=max{Rn1,Rn2,Rn3}。這里,Rwi(i=1,2,3)是從三個方向獲取的圖像輪廓的最小外接圓半徑,Rni(i=1,2,3)是從三個方向獲取的圖像輪廓的最大內(nèi)切圓半徑。
1.2研究步驟
本文要實現(xiàn)的馬鈴薯分級速度為每分鐘50個,錯誤分類的比值在2%以內(nèi)。實現(xiàn)過程如下。
(1)根據(jù)各類標(biāo)準(zhǔn)(如視頻標(biāo)準(zhǔn))的規(guī)定,選擇合適的視覺傳感器、采集卡、電路模塊、總線等,并選用柯拉照明方式,搭建圖像采集平臺。
(2)編寫程序?qū)崿F(xiàn)圖像分析處理。依次是均衡化、濾波、二值化、膨脹腐蝕操作、提取邊緣、做出內(nèi)切圓和外接圓、計算、分級。
(3)做好硬件和軟件的接口,驅(qū)動傳動帶式機械結(jié)構(gòu)對馬鈴薯進行分級歸類。
2.1系統(tǒng)功能
系統(tǒng)分為圖像采集、信號傳輸與校正、圖像分析與處理和機械結(jié)構(gòu)四個子系統(tǒng)。
圖像采集子系統(tǒng)包括攝像頭、采集卡、照明裝置以及輔助機械結(jié)構(gòu)等,主要用于抓取馬鈴薯最初的圖像。因為最初圖像的好壞直接影響到后續(xù)信號處理的繁簡程度及最終結(jié)果的準(zhǔn)確性,所以必須保證拍攝環(huán)境干凈、照明良好。
信號傳輸與校正子系統(tǒng)主要用于傳輸采集到的圖像信息。因為圖像在傳輸過程中會產(chǎn)生失真并會有噪聲加入,所以必須設(shè)置校正電路,常見的有孔闌校正電路、超前滯后校正電路等,具體的校正方式需根據(jù)實際情況而定。另外,在信號傳輸?shù)倪^程中可根據(jù)實際情況需要設(shè)計特定的電路,如邊緣增強電路、濾波電路等。需要說明的是,信號傳輸與校正子系統(tǒng)的好壞直接影響程序的繁簡程度。如果傳輸電路可以對圖像進行有效校正,那么程序就可以相對簡單高效,當(dāng)然,也不宜為了使程序簡單而使電路過于復(fù)雜,軟硬件需均衡匹配。
圖像分析與處理子系統(tǒng)主要指計算機及所需軟件,它用于對接收到的圖像進行信號處理和分析,并給出最終評定指標(biāo)。軟件部分可以自主開發(fā)或基于成熟的商品軟件進行二次開發(fā)獲得。復(fù)雜系統(tǒng)采用二次開發(fā)模式,可縮短開發(fā)周期,且能保證軟件的可靠性。本文中的系統(tǒng)相對簡單,故采用自主開發(fā)的模式,使用的軟件為MATLAB。
影響圖像分析與處理子系統(tǒng)的關(guān)鍵因素是算法,算法的優(yōu)劣直接影響到評定結(jié)果的準(zhǔn)確性。
機械結(jié)構(gòu)是代替人力分揀馬鈴薯的最終執(zhí)行單元。此部分由單片機或PLC控制,單片機或PLC接收到上位機的分級信號,調(diào)用相應(yīng)的程序,驅(qū)動機械部分動作,實現(xiàn)對馬鈴薯的分級。
2.2技術(shù)指標(biāo)
技術(shù)指標(biāo)主要有兩個:速度和準(zhǔn)確性。下面分析影響這兩項指標(biāo)的因素。
(1)設(shè)計要求約1 s檢測一個馬鈴薯,即在約1 s的時間內(nèi)要完成以下過程:首先由機械結(jié)構(gòu)將一個馬鈴薯送至圖像采集點,然后由攝像頭采集馬鈴薯圖片并將圖片送至計算機進行分析處理,接著由計算機判斷出馬鈴薯的等級,并發(fā)出相應(yīng)的信號給PLC,最后通過PLC控制機械結(jié)構(gòu)的運行,將馬鈴薯送到規(guī)定的區(qū)域。整個過程中任何的錯誤都會造成生產(chǎn)率下降和經(jīng)濟損失。
檢測速度受軟件和硬件兩方面的影響。在硬件方面,信道的寬度、計算機內(nèi)存都會影響計算速度。機械的執(zhí)行時間也是重點考慮的問題,這是因為對馬鈴薯等農(nóng)產(chǎn)品的加工動作必須靈活而柔和,故運行時間會較長。軟件方面,在優(yōu)化算法時,首先應(yīng)考慮穩(wěn)定性,其次是快速性(本算法的執(zhí)行時間須在毫秒級),最后才是準(zhǔn)確性。這是因為,從控制論的角度講,系統(tǒng)只能在穩(wěn)、快、準(zhǔn)三方面做出權(quán)衡選擇,而無法做到同時滿足三方面的要求。穩(wěn)定性是必需的要求,故往往在快與準(zhǔn)之間權(quán)衡。因馬鈴薯分類不需要非常精確,可以允許一定程度的誤判,故本系統(tǒng)更傾向于快。
(2)在誤判率方面也存在硬件和軟件兩方面的影響。圖像從采集到被傳送至計算機之前,其失真度取決于硬件。就本文中的設(shè)計來說,系統(tǒng)的工作環(huán)境較好,圖像傳輸距離短,硬件造成的圖像失真很小,故失真程度主要取決于算法,只要算法能準(zhǔn)確提取邊緣,找到最大內(nèi)切圓和最小外接圓,誤判率就會比較小。
綜上所述,要達到設(shè)計標(biāo)準(zhǔn)就需要在保證算法準(zhǔn)確性的前提下,提高機械結(jié)構(gòu)的靈活性與速度,提高硬件水平,例如:增加帶寬,提高數(shù)據(jù)傳輸速度;增大內(nèi)存,提高計算速度等。
3.1硬件組成
根據(jù)系統(tǒng)功能劃分,各硬件組成部分描述如下。(1)圖像采集子系統(tǒng)主要包括CCD和照明裝置,用以完成三個正交方向的圖像的采集。
(2)信號傳輸與校正子系統(tǒng)主要包括傳輸信號的總線及硬件接口,其主要任務(wù)是將采集到的圖像傳輸?shù)接嬎銠C,輔助功能是校正圖像,改善圖像品質(zhì)。
(3)圖像分析與處理子系統(tǒng)主要是通過計算機來完成圖像的分析處理,并將信號送入PLC。PLC用于驅(qū)動攝像頭拍照和機構(gòu)動作,是整個系統(tǒng)的控制核心,也是整個系統(tǒng)有序運行的關(guān)鍵。
(4)機械執(zhí)行機構(gòu)子系統(tǒng)是最終動作的執(zhí)行者,受控于來自PLC的信號。這里設(shè)計了一個三自由度的馬鈴薯分級裝置,包括兩個步進電機及一個滑塊裝置,以便對馬鈴薯進行多角度拍攝。
3.2系統(tǒng)主要參數(shù)
系統(tǒng)機械結(jié)構(gòu)部分如圖1所示。圖1中,鐵盤體積V1=62 765 mm3,直徑D1=200 mm;塑料盤體積V2=156 871 mm3,直徑D2=200 mm;平臺托體積V3=42 400 mm3,最大直徑D3=90 mm;鋁合金聯(lián)軸器體積V4=10 130 mm3,最大直徑D4=24 mm。
圓柱轉(zhuǎn)動慣量的計算公式為J=1/8×M×D2(M為圓柱體質(zhì)量、D為直徑),將機械結(jié)構(gòu)部分的參數(shù)代入得J1=0.00245 kg·m2,J2=0.000 95 kg·m2,J3=0.000 33kg·m2,J4太小可忽略??梢?,系統(tǒng)總體轉(zhuǎn)動慣量J<0.004 kg·m2,電機最大轉(zhuǎn)速為1.57rad/s,角加速度α=1.57/0.1=15.7rad/s2,則轉(zhuǎn)矩為T=J·α=0.004×15.7=0.062 8 N·m。通過比較不同型號的步進電機的各項參數(shù),筆者選擇了型號為57HS04的電機,其保持轉(zhuǎn)矩為0.4N·m,可承擔(dān)較大的負載。
圖1 系統(tǒng)機械結(jié)構(gòu)示意圖
3.3程序設(shè)計
程序分為兩個主程序和多個子程序。界面以及相應(yīng)程序均采用MATLAB R2010b進行編寫[6-7]。運行程序bianyuantitu.m,可完成對采集圖像的優(yōu)化,提取圖像邊緣信息并儲存邊緣圖像。提取的馬鈴薯圖像如圖2和圖3所示。
[bianyuantitu.m]
clear;clc;
A=imread('1.jpg');
I=rgb2gray(A);
I2=histeq(I);
I3=im2bw(I2);
SE=strel('square',15);
I4=imclose(I3,SE);
Iedge=edge(I4);
Iedge=edge(I4);
[X,map]=gray2ind(Iedge);
Irgb=ind2rgb(X,map);
imwrite(Irgb,'3.jpg');
圖2 馬鈴薯灰度圖
圖3 馬鈴薯邊緣
運行程序mainfcn.m,可獲得馬鈴薯邊緣的最小外接圓參數(shù)和最大內(nèi)切圓參數(shù),效果如圖4(a)和(b)所示。
[mainfcn.m]
clear all;clc;
IOrig=imread('3.jpg');
Igray=rgb2gray(IOrig);
[accum,circen,cirrad]=CircularHough_Grd (Igray,[20 30]);
len=length(circen);
kx=circen(:,1);
sumx=sum(kx);
c_x=sumx/len;
ky=circen(:,2);
sumy=sum(ky);
c_y=sumy/len;
D_f=zeros(len,1);
for i=1:len
D_f(i)=sqrt((kx(i)-c_x)^2+(ky(i)-c_y)^2);
i=i+1;
end
Dmax=max(D_f);
ro=sum(cirrad)/length(cirrad);
Rw=Dmax-ro;
figure;
imshow(Igray);
hold on;
DrawCircle(c_x,c_y,Rw,Rw,'g');hold off;
disp('最小外接圓半徑和圓心');
Rw
c_x
c_y
[m,n]=size(Igray);
Ibin=im2bw(Igray,graythresh(Igray));
Iedg=edge(Ibin,'canny');
Igray(:,:)=0;
Igray(find(Iedg))=255;
[Rn cx cy]=max_inscribed_circle(Igray);
disp('最大內(nèi)切圓半徑和圓心');
Rn
cx
cy
程序中,Rw為最小外接圓半徑,c_x和c_y為最小外接圓圓心,Rn為最大內(nèi)切圓半徑,cx和cy為最大內(nèi)切圓圓心。程序運行結(jié)果如下:
Rw=88.968 7
c_x=181.009 8
c_y=129.762 5
Rn=53.600 4
cx=176
cy=125
圖4 mainfcn.m函數(shù)運行結(jié)果
3.4人機交互界面
人機交互界面如圖5所示。
圖5 系統(tǒng)人機界面圖
在圖5中,面板的圖形顯示區(qū)用于顯示馬鈴薯分級頻率圖。左下角的單選框用于設(shè)置顯示內(nèi)容和形式:直方圖和立體直方圖用于顯示各級別馬鈴薯的頻數(shù),餅圖和立體餅圖用于顯示各級別馬鈴薯的百分比。右上角用于實時顯示檢測的馬鈴薯總數(shù)和各級馬鈴薯所占百分比。右下角清零按鈕可清除所有已檢測的數(shù)據(jù),使系統(tǒng)從零開始統(tǒng)計。面板上的下拉框可以設(shè)置圖形顯示區(qū)參數(shù),以便達到讓用戶滿意的可視化效果。關(guān)閉按鈕可關(guān)閉界面。
表2為1 min內(nèi)對隨機選取的50個馬鈴薯進行系統(tǒng)自動分檢分級和人工分級后的結(jié)果。由表2可知,視覺分級與人工分級結(jié)果一致的有49個,不一致的有1個,誤差在2%以內(nèi)。
表2 視覺分級與人工分級對比表
本文利用機器視覺實現(xiàn)了馬鈴薯快速分級檢測系統(tǒng)。系統(tǒng)由圖像采集、信號傳輸與校正、圖像分析與處理和機械結(jié)構(gòu)四大子系統(tǒng)組成,能夠準(zhǔn)確抓取馬鈴薯圖像,提取圖像邊緣,計算出邊緣的最小外接圓和最大內(nèi)切圓的直徑,并根據(jù)所得數(shù)值,自動將馬鈴薯按大小分為三個等級。
系統(tǒng)實現(xiàn)了每分鐘50個的分級速度,錯誤分類的比值在2%以內(nèi),實現(xiàn)了馬鈴薯的自動分級及檢測功能。
[1]盧育華.馬鈴薯史話[J].世界農(nóng)業(yè),1985(5):50-52.
[2]楊飛,祝詩平,邱青苗.基于計算機視覺的花椒外觀品質(zhì)檢測及其MATLAB實現(xiàn)[J].農(nóng)業(yè)工程學(xué)報,2008(1):198-202.
[3]郝敏,郝小冬.基于Zernike矩的馬鈴薯薯形檢測[J].農(nóng)業(yè)工程學(xué)報,2010(2):347-350.
[4]RIQUELME M T,BARREIRO P,RUIZ-ALTISENT M,et al.Olive Classification According to External Damage Using Image Analysis[J].Journal of Food Engineering,2008,87(3):371-379.
[5]李中華,王國占,齊飛.我國設(shè)施農(nóng)業(yè)發(fā)展現(xiàn)狀及發(fā)展思路[J].中國農(nóng)機化,2012(1):7-10.
[6]徐飛,施曉紅.MATLAB應(yīng)用圖像處理[M].西安:西安電子科技大學(xué)出版社,2002:85-112.
[7]張廣軍.機器視覺[M].北京:科學(xué)出版社,2005:33-45.
【責(zé)任編輯梅欣麗】
The Auto-classification of Potato on the Basis of Machine Vision
WANG Lei
(Xinxiang Quality and Technical Supervision and Inspection Center,Xinxiang 453000,China)
In this article,using auto-classification based on machine vision,solution to commercialized processing technology is provided.Machine vision technology was used to accurately grasp the potato image and extract the edge information in order to obtain the maximum inscribed circle and minimum circumscribed circle by specific algorithm so as to realize the auto-classification of potato.This system could classify 50 potatoes per minute,with the misclassification ratio within 2%.
machine vision;auto-classification;potato identification
TH113
A
2095-7726(2016)03-0052-05
2015-09-11
王蕾(1978-),女,河南新鄉(xiāng)人,工程師,研究方向:機械工程。