趙丹婷,柴玉華,張長利
(東北農(nóng)業(yè)大學(xué)工程學(xué)院,哈爾濱 150030)
大豆是我國的重要經(jīng)濟(jì)作物,它用途多樣,營養(yǎng)價(jià)值高,栽培廣泛,便于出口。大豆的外觀品質(zhì)在很大程度上反映了內(nèi)部質(zhì)量。尤其大豆外部病態(tài)可以直接決定大豆內(nèi)部營養(yǎng)成分的缺失和等級(jí)評測[1]。目前,傳統(tǒng)的大豆外觀品質(zhì)檢測技術(shù)仍然依靠人工檢測,這種方法效率低精度不高,不能滿足大批量自動(dòng)化生產(chǎn)的需要。而利用圖像處理技術(shù)進(jìn)行檢測具有精確、穩(wěn)定、快速、無損等特點(diǎn),因此可大幅度提高生產(chǎn)效率和自動(dòng)化程度[2]。
灰斑病是大豆主要的外觀病態(tài)之一。種粒上病斑由豆臍擴(kuò)散呈圓形至不規(guī)則形,中央灰色,邊緣紅褐色,形成蛙眼[3]。實(shí)驗(yàn)表明灰斑病粒脂肪含量平均降低2.9%,蛋白質(zhì)含量平均降低了1.2%,千粒重降低3 g左右。目前,國內(nèi)外學(xué)者利用圖像處理技術(shù)從顏色特性對農(nóng)產(chǎn)品識(shí)別及分級(jí)的研究很多,并且取得了突出成績。方如明等提出了直方圖傅里葉系數(shù)判別法,直方圖波峰檢出法及灰度突變法,對稻米爆腰情況進(jìn)行了檢測[4]。許俐等應(yīng)用機(jī)器視覺技術(shù)與色度學(xué)理論結(jié)合,研究了染色后稻米的胚乳、皮層以及胚芽所呈現(xiàn)的不同顏色特征的區(qū)分方法[5]。
本實(shí)驗(yàn)結(jié)合數(shù)學(xué)統(tǒng)計(jì)法,數(shù)學(xué)形態(tài)學(xué)理論,圖像處理技術(shù),神經(jīng)網(wǎng)絡(luò)及模式識(shí)別技術(shù),基于VC++和MATLAB開發(fā)平臺(tái),實(shí)現(xiàn)對大豆灰斑病的自動(dòng)、無損、快速和高精度的檢測。
本研究首先搭建用于大豆灰斑病檢測的圖像處理硬件平臺(tái):照相設(shè)備、照度計(jì)、計(jì)算機(jī)、暗箱等。操作系統(tǒng)為WindowsXP,Microsoft Visual C++2005和MATLAB作為開發(fā)工具,使程序具有高性能的可靠性、移植性、可讀性及可擴(kuò)充性。
實(shí)驗(yàn)所用大豆均由東北農(nóng)業(yè)大學(xué)大豆研究所提供,共有100多個(gè)品種,800粒大豆原種材料。其中灰斑病粒400粒,籽粒飽滿的標(biāo)準(zhǔn)大豆400粒。
實(shí)驗(yàn)的主要方法和過程如圖1所示。
圖1 實(shí)驗(yàn)流程Fig.1 Flow chart of the experiment
本實(shí)驗(yàn)設(shè)計(jì)了一個(gè)高1 m,長和寬均為30 cm的暗箱,箱內(nèi)鋪設(shè)不透光,不反光的黑色棉布,固定一盞以穩(wěn)流器連接電源的環(huán)形光源,該光源穩(wěn)定、均勻,滿足了圖像采集的需要,減弱了自然光條件下,光線明暗的不確定產(chǎn)生的顏色差異和影子噪聲,使采集效果更清晰、精確,更易于分析。裝置與照相設(shè)備、照度計(jì)、計(jì)算機(jī)共同構(gòu)建了圖像采集的硬件平臺(tái)。
大豆16粒為一組,拍攝時(shí),照相設(shè)備垂直拍攝被測大豆,固定適當(dāng)?shù)慕咕?,分別拍攝標(biāo)準(zhǔn)大豆、病斑大豆。保證了拍攝角度、距離、光線,拍攝的每幅照片中大豆粒數(shù)均一致。
首先分析圖像背景中的噪聲信息特征、類型,在VC++的開發(fā)平臺(tái)上,實(shí)現(xiàn)基于平滑濾波的豆粒圖像去噪方法。平滑濾波是用濾波掩模確定的鄰域內(nèi)像素的平均灰度值取代圖像每一個(gè)像素值,這種方法可以顯著減小圖像灰度的“尖銳”變化,即“噪聲”[6]。本研究中病豆圖像應(yīng)用了線性平滑濾波方法,選擇3×3鄰域模板平滑濾波,它可以有效濾除大豆圖像噪聲且最大限度保留清晰的目標(biāo)圖像。
為了更好提取灰斑病大豆的特征,需要把目標(biāo)大豆與背景分割。背景分離的經(jīng)典方法是基于灰度閾值的分割方法。它通過設(shè)置閾值,把像素點(diǎn)按灰度級(jí)分若干類,從而實(shí)現(xiàn)圖像分割。把一幅灰度圖像轉(zhuǎn)化成二值圖像是閾值分割的最簡單形式[7]。設(shè)一幅灰度圖像為f(x,y),首先以一定準(zhǔn)則在f(x,y)中找出一個(gè)灰度值t作為閾值,將圖像分割為兩部分,即把大于等于該閾值的像素點(diǎn)的值置成1,小于該閾值的像素點(diǎn)值置成0[8]。本研究利用灰度直方圖求雙峰,選擇兩峰之間谷底處的灰度值作為閾值。
在分別得出R、G、B,H、S、V各分量直方圖后,以H分量直方圖(如圖2所示)和R分量直方圖(如圖3所示)比較為例:可以看出H分量直方圖閾值呈發(fā)散狀態(tài),不能明確地提取閾值,且分割效果不佳(如圖4);而R分量直方圖的雙峰特性明顯,易得出閾值,以同樣方法進(jìn)行測評后得出用R分量圖像進(jìn)行閾值分割,提取目標(biāo)圖像最為清晰(如圖5所示),所以選用R分量進(jìn)行分割。背景分割后圖像如圖6所示:背景去除,目標(biāo)豆粒明確,且病斑性狀明顯。這為后續(xù)提取特征參數(shù)鋪墊了良好的基礎(chǔ)。
對于粘連病豆的籽粒分割,本研究采用的是迭代式閾值選擇方法。首先選擇一個(gè)閾值作為初始估計(jì)值,然后按一定規(guī)則不斷改進(jìn)估計(jì)值,直到滿足給定的準(zhǔn)則為止[9]。在迭代的過程中,要選擇合適的閾值改進(jìn)測量。一般要滿足兩個(gè)條件:一是足夠快速收斂,二是在每個(gè)迭代過程中新產(chǎn)生閾值優(yōu)于上一次閾值。本研究首先將圖像分為若干區(qū)域,在每個(gè)區(qū)域中先求出待分割圖像的最大灰度值和最小灰度值Z1和Zk,然后求最大最小灰度值的均值T0[10];
根據(jù)均值將圖像分為兩部分A和B。再分別求出A,B兩部分的灰度均值Z0和ZB,
式(3)中 z(i,j)是圖像上(i,j)點(diǎn)的灰度值,N(i,j)是(i,j)點(diǎn)的權(quán)重系數(shù),一般取 1.0。
根據(jù)這兩部分灰度均值計(jì)算新的閾值N(i,j)=1.0。
將新的閾值Tk+1與前一閾值Tk比較,滿足一定要求則停止迭代,否則進(jìn)入循環(huán)[11]。利用VC++編程時(shí),程序設(shè)定了一個(gè)循環(huán)次數(shù)60次,以便當(dāng)無法史終止條件得到滿足時(shí),可以強(qiáng)制終止。用此方法進(jìn)行粘連籽粒分割后效果較好,如圖7所示。
分析大豆籽粒的外觀特征,顏色特征及紋理特征,通過實(shí)驗(yàn)設(shè)計(jì)和數(shù)據(jù)統(tǒng)計(jì)分析,提取識(shí)別各組分的最佳分離參數(shù)。
顏色特征:R、G、B、H、S、V各項(xiàng)的均值,R、G、B、H、S、V各項(xiàng)的偏差和R、G、B、H、S、V各項(xiàng)的三階距
形狀特征:緊實(shí)度、弧形度、橢長軸、橢短軸、蓬松度共計(jì)23個(gè)特征參數(shù)。本實(shí)驗(yàn)通過軟件編寫實(shí)現(xiàn)可視化。結(jié)果見圖8。
圖8 特征參數(shù)Fig.8 Characteristic parameter
本研究需要將灰斑病豆粒和標(biāo)準(zhǔn)豆粒進(jìn)行精細(xì)識(shí)別,這是用一個(gè)待定輸出矢量與輸入矢量聯(lián)系起來的過程[12]。因此我們基于Matlab為開發(fā)平臺(tái),利用newff函數(shù)構(gòu)建一個(gè)三層的BP神經(jīng)網(wǎng)絡(luò)。其中隱層神經(jīng)元的傳遞函數(shù)采用tan-sigmoid型函數(shù)tamsig,網(wǎng)絡(luò)的最后一層是purelin型線性神經(jīng)元,這樣整個(gè)網(wǎng)絡(luò)的輸出可以取任意實(shí)數(shù)。構(gòu)建神經(jīng)網(wǎng)絡(luò)時(shí)輸入成神經(jīng)元的個(gè)數(shù)為23,輸出層節(jié)點(diǎn)個(gè)數(shù)為1。
主要程序如下:
程序?qū)嶒?yàn)中,我們設(shè)置迭代次數(shù)為150,學(xué)習(xí)速率為0.2,動(dòng)量因數(shù)為0.9,最大訓(xùn)練次數(shù)為1 000,訓(xùn)練精度為 1×10-6。
我們選取640個(gè)樣本進(jìn)行訓(xùn)練,160個(gè)樣本進(jìn)行測試。經(jīng)過720次訓(xùn)練,由圖7可以推出均方誤差逼近誤差擬合收斂目標(biāo),達(dá)到了預(yù)定精度。
圖9 訓(xùn)練結(jié)果Fig.9 Training result
以檢測灰斑病為依據(jù),可將檢測病斑的思路應(yīng)用在檢測其他病蟲害過程中:分別選取正常大豆,霉變大豆,破碎大豆,蟲蝕大豆,混合大豆的測試樣本各100幅,效果良好。如表1所示。
表1 識(shí)別結(jié)果Table 1 Results of disease identification
利用Matlab開發(fā)平臺(tái),實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建,進(jìn)而對灰斑病樣本進(jìn)行識(shí)別。在此基礎(chǔ)上,本研究利用VC++設(shè)計(jì)實(shí)現(xiàn)了灰斑病外觀品質(zhì)檢測系統(tǒng)可視化軟件,實(shí)現(xiàn)了對灰斑病無損,精確和快速的檢測需要。
該軟件的操作窗體設(shè)計(jì)規(guī)范合理、按鈕名稱明確,操作簡便。具備消息標(biāo)題,菜單欄、工具欄、幫助菜單、熱鍵標(biāo)識(shí)等一系列基本功能。符合一般用戶的操作習(xí)慣,體現(xiàn)人性化的設(shè)計(jì)理念。
文件操作模塊的一級(jí)菜單是“圖像文件菜單”,它下面有9個(gè)二級(jí)菜單。其中“保存處理結(jié)果”,“保存模板圖像”、“保存疊加圖像”和“存儲(chǔ)圖像”都可以實(shí)時(shí)地保存原始圖片經(jīng)過處理后輸出的屏幕圖像,以便用戶查看對比圖像處理每步過程。同時(shí)圖像文件菜單還自動(dòng)保存最近四次所打開圖片的地址連接,用戶可利用此功能輕易打開以往圖片,不必再計(jì)算機(jī)中重復(fù)查找。圖片處理過程中用戶需要對圖片進(jìn)行其他并行處理,可以點(diǎn)擊該菜單中的“恢復(fù)原始圖像”鍵。除此之外,圖像文件菜單還包括打印設(shè)置、打印預(yù)覽等基本操作,極大滿足了用戶的各種不同輸出需要。
圖像處理模塊包括平滑濾波、二值圖像運(yùn)算、閾值分割和區(qū)域分割法。其中的子菜單涵蓋所有本研究應(yīng)用的圖像處理算法可及時(shí)掌握利用這些算法處理得到的每一步圖像結(jié)果和分析數(shù)據(jù)。圖10是軟件檢測大豆灰斑病的界面。
圖10 灰斑病檢測界面Fig.10 Detectiom interface
隨著計(jì)算機(jī)軟件及硬件技術(shù)的發(fā)展,圖像處理技術(shù)作為一種外觀識(shí)別技術(shù)已經(jīng)有了長足的發(fā)展,在一定程度上已經(jīng)可以滿足當(dāng)前作為谷物[13]外觀品質(zhì)檢測的手段,但是就目前來看基于此項(xiàng)技術(shù)對灰斑病大豆外觀品質(zhì)的檢測仍處于研究初期階段。
本研究搭建了操作簡單,實(shí)用性強(qiáng)的大豆灰斑病外觀檢測系統(tǒng)硬件平臺(tái),結(jié)合圖像處理技術(shù)與神經(jīng)網(wǎng)絡(luò)技術(shù),利用VC++編程,選擇了平滑濾波,閾值分割等算法對采集的大豆圖像進(jìn)行圖像去噪,目標(biāo)圖像與背景分割,粘連籽粒分割,可清晰有效地分離出較為精確的標(biāo)準(zhǔn)大豆以及病斑大豆的形態(tài)特征參數(shù)和顏色特征參數(shù)。將這些參數(shù)輸入到MATLAB開發(fā)環(huán)境下構(gòu)造的神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,可識(shí)別出病斑大豆,識(shí)別率達(dá)93%;并能根據(jù)VC++編寫的程序計(jì)算出標(biāo)準(zhǔn)豆粒與病斑豆?;旌蠒r(shí)病斑豆粒所占百分比,該系統(tǒng)可進(jìn)一步改良,推廣至其他正常大豆和霉變大豆,破碎大豆和蟲蝕大豆的外觀品質(zhì)研究中,用改進(jìn)的圖像處理算法,提取包括各品種大豆的其他特征參數(shù),實(shí)現(xiàn)對其他大豆外觀品質(zhì)的檢測系統(tǒng)開發(fā)。
[1]柴玉華,高立群,王榮,等.基于多尺度形態(tài)學(xué)大豆圖像濾波方法[J].農(nóng)業(yè)工程學(xué)報(bào),2006,6(2)∶119-120.
[2]賈迪野.基于偏微分方程的圖像平滑與分割研究[D].哈爾濱∶哈爾濱工程大學(xué),2005.
[3]劉順湖,周瑞寶,蓋鈞鎰.大豆蛋白質(zhì)及其組分含量對豆腐產(chǎn)量和品質(zhì)的影響[J].中國油脂,2004,32(2)∶65-68.
[4]方如明.計(jì)算機(jī)圖像處理與米的品質(zhì)檢測[J].農(nóng)業(yè)工程學(xué)報(bào),1992(3)∶14.
[5]許俐,錢敏娟,方如明,等.大米加工精度識(shí)別方法[J].農(nóng)業(yè)工程學(xué)報(bào),1996,12(3)∶34.
[6]Gonzalez R C.數(shù)字圖像處理[M].北京∶電子工業(yè)出版社,2003∶132-483.
[7]楊為民,李天石,賈鴻社.農(nóng)業(yè)機(jī)械機(jī)器視覺導(dǎo)航研究[J].農(nóng)業(yè)工程學(xué)報(bào),2004,20(1)∶160-165.
[8]姚敏.數(shù)字圖像處理[M].北京∶機(jī)械工業(yè)出版社,2003∶243-254.
[9]李明,張長利,王曉楠.基于圖像處理技術(shù)的小麥形態(tài)檢測方法研究[J].東北農(nóng)業(yè)大學(xué)學(xué)報(bào),2009,40(3)∶111-115.
[10]時(shí)玉強(qiáng),柴玉華,鄭先哲.基于機(jī)器視覺的大豆細(xì)菌斑點(diǎn)病粒檢測[J].東北農(nóng)業(yè)大學(xué)學(xué)報(bào),2009,40(4)∶106-110.
[11]鐘志光.盧君Visual C++.NET數(shù)字圖像處理實(shí)例與解析[M].北京∶清華大學(xué)出版社,2003∶371-372.
[12]周志華,曹存根.神經(jīng)網(wǎng)絡(luò)及其應(yīng)用[M].北京∶清華大學(xué)出版社,2004∶185-187.
[13]楊國彬,趙杰文,向忠平.利用計(jì)算機(jī)視覺對自然背景下西紅柿進(jìn)行判別[J].農(nóng)機(jī)化研究,2003,1(1)∶60-62.