摘 要:為了研發(fā)基于OpenCV自動(dòng)識(shí)別畸形馬鈴薯的計(jì)算機(jī)視覺(jué)系統(tǒng),首先采集了93個(gè)的馬鈴薯樣本圖像,對(duì)其進(jìn)行HSV顏色空間轉(zhuǎn)換、顏色分割、中值濾波和輪廓提取,有效分割出馬鈴薯的邊界輪廓;然后對(duì)其輪廓進(jìn)行二維傅里葉變換,提取70個(gè)樣本構(gòu)成的訓(xùn)練集;采用廣泛運(yùn)用于計(jì)算機(jī)視覺(jué)領(lǐng)域的圖像預(yù)處理及特征提取方法提取10個(gè)傅里葉幅度值,利用其構(gòu)建并訓(xùn)練SVM分類器;最后通過(guò)訓(xùn)練好的SVM分類器對(duì)未知形狀的23個(gè)馬鈴薯進(jìn)行識(shí)別。結(jié)果表明:基于OpenCV的畸形馬鈴薯識(shí)別方法能正確判斷馬鈴薯是否為畸形,識(shí)別準(zhǔn)確率約為95.6%;其中,畸形馬鈴薯的識(shí)別率達(dá)到100%。這表明發(fā)展計(jì)算機(jī)視覺(jué)系統(tǒng)在自動(dòng)檢測(cè)和分類畸形農(nóng)產(chǎn)品中有較大應(yīng)用潛力。
關(guān)鍵詞:OpenCV;圖像識(shí)別;傅里葉變換;馬鈴薯;形狀
中圖分類號(hào):TN957.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-060X(2018)04-0085-03
Abstract:This paper aims to develop a computer vision system based on OpenCV automatic identification of malformed potatoes.. First of all, to collect a certain number of potato samples images, then carries on the HSV color space conversion, color segmentation, median filtering and contour extraction, thus effectively segment the boundary contours of the potatoes. Then the two-dimensional Fourier transform of the contour is performed to extract the training set of 70 samples. Through a certain number of potatoes 10 Fourier amplitude value of the image parameters, build and train the SVM classifier. Finally, 23 potatoes of unknown shape were identified by the trained SVM classifier.. The results show that based on OpenCV’s abnormal potato identification method, it can correctly determine whether the potato is malformed and the accuracy rate is about 95.6%. the deformed potato recognition rate reached 100%. It shows that development of the computer vision system in the automatic detection and classification of the deformity in agricultural products has a great application potential.
Key words:OpenCV; machine vision; fourier transform; potato; shape
馬鈴薯是全球四大糧食作物之一,對(duì)人類生活具有重大意義。隨著計(jì)算機(jī)視覺(jué)技術(shù)的發(fā)展,效率高、精度高、操作靈活、運(yùn)行成本低的計(jì)算機(jī)檢測(cè)將逐漸取代效率低、成本高的人工檢測(cè)在馬鈴薯分級(jí)處理中發(fā)揮重要作用。在國(guó)內(nèi),黃星奕等[1]利用線性標(biāo)記法對(duì)不合格脫水姜片進(jìn)行標(biāo)記;李革等[2]通過(guò)多視角的珍珠圖像提取特征參數(shù),進(jìn)行有效的形狀識(shí)別;鄭冠楠等[3]通過(guò)對(duì)比大小、形狀、顏色和邊界4種特性對(duì)馬鈴薯進(jìn)行綜合分級(jí);汪成龍等[4]提出了基于視覺(jué)顯著性和H維圖像的馬鈴薯區(qū)域分割方法,與H法相比,此方法能去除無(wú)效信息,降低計(jì)算量,提高分割速度。在國(guó)外,Abdullah等[5]利用傅立葉變換對(duì)楊桃形狀進(jìn)行識(shí)別;Al-Mallahi等[6]通過(guò)在收割機(jī)中獲取的帶土馬鈴薯圖像,有效檢測(cè)出土塊并去除,對(duì)馬鈴薯進(jìn)行大小分級(jí);AlOhali等[7]通過(guò)定義椰棗的外部質(zhì)量特性,使用BP神經(jīng)網(wǎng)絡(luò)分類器對(duì)椰棗進(jìn)行實(shí)時(shí)分級(jí)分類。
開放源代碼計(jì)算機(jī)視覺(jué)類庫(kù)(open source computer vision library,簡(jiǎn)稱OpenCV)是一套可免費(fèi)獲得的由一些C函數(shù)和C++類所組成的庫(kù),用來(lái)實(shí)現(xiàn)一些常用的圖像處理及計(jì)算機(jī)視覺(jué)算法。研究擬先采用OpenCV對(duì)馬鈴薯圖像進(jìn)行預(yù)處理,獲取清晰平滑的輪廓圖像,再進(jìn)行二維傅立葉變換,提取變換后圖像的10個(gè)幅度值,然后在構(gòu)建好的SVM分類器中進(jìn)行訓(xùn)練,將外形正常的馬鈴薯設(shè)定為正樣本,畸形的設(shè)定為負(fù)樣本。最后通過(guò)訓(xùn)練好的SVM分類器對(duì)未知形狀的馬鈴薯進(jìn)行識(shí)別,從而準(zhǔn)確識(shí)別畸形馬鈴薯。
1 圖像采集及預(yù)處理
供試馬鈴薯品種為紫花白馬鈴薯,共93個(gè);其中,有59個(gè)外形正常,34個(gè)外形畸形。將馬鈴薯樣本按照3︰1的比例,分為訓(xùn)練集70個(gè)(畸形馬鈴薯25個(gè)),測(cè)試集23個(gè)(畸形馬鈴薯9個(gè))。通過(guò)馬鈴薯樣本圖像采集系統(tǒng)一共獲得93 個(gè)馬鈴薯樣本彩色圖像,圖像分辨率為1 024×768,存儲(chǔ)格式為BMP。
1.1 分割馬鈴薯主體區(qū)域
根據(jù)馬鈴薯主體顏色與背景顏色有較大差別這一特性,通過(guò)轉(zhuǎn)換顏色空間來(lái)分割圖像,即將RGB的彩色圖像轉(zhuǎn)換為HSV顏色空間圖像。為盡可能地準(zhǔn)確識(shí)別出馬鈴薯所有顏色區(qū)域,在標(biāo)準(zhǔn)黃色(60)的基礎(chǔ)上,向上增加90、向下減少60作為顏色分割范圍,并將此色域范圍內(nèi)的像素點(diǎn)顏色設(shè)置為0(白色),不在范圍內(nèi)的像素點(diǎn)顏色設(shè)置為255(黑色),從而分割出馬鈴薯輪廓圖。
1.2 中值濾波
中值濾波能很好地濾除脈沖噪聲,同時(shí)也能較好地保留邊緣信號(hào),避免濾波時(shí)邊緣模糊掉。因此,獲得馬鈴薯樣本的初步輪廓圖之后,對(duì)其進(jìn)行強(qiáng)度為25的中值濾波,獲得了平滑、清晰的馬鈴薯樣本輪廓圖像(圖1),而未中值濾波提取的馬鈴薯輪廓圖像如圖2所示。
1.3 提取輪廓
利用OpenCV中的findContours和drawContours函數(shù),能夠?qū)⑤喞獑为?dú)提取出來(lái)。由于該馬鈴薯樣本表面存在面積較大的暗色區(qū)域,在區(qū)域分割和中值濾波中并不能過(guò)濾掉此部分區(qū)域,所以提取輪廓時(shí)會(huì)出現(xiàn)多條輪廓線。而多條輪廓線都是出現(xiàn)在馬鈴薯邊緣輪廓的內(nèi)部,因此可將FindContours函數(shù)的輪廓檢索模式改為RETR_EXTERNAL,即只檢測(cè)最外層輪廓,從而能夠從中值濾波后的圖像中提取唯一的輪廓線,即馬鈴薯樣本的邊緣輪廓,有效避免出現(xiàn)多條輪廓線的現(xiàn)象。最終獲得的馬鈴薯輪廓如圖3所示。
2 圖像特征提取
2.1 離散傅里葉變換(DFT)
任一函數(shù)都可表示成無(wú)數(shù)個(gè)正弦和余弦函數(shù)的和的形式,即:
由于圖像都是二維的,而二維離散序列的DFT變換可視為沿x,y 2個(gè)方向的一維DFT所構(gòu)成,因此,二維離散序列的DFT變換公式為:
式中,f是空間域值,F(xiàn)是頻域值,k、l是頻率域的頻率變量,k屬于0~N-1,l屬于0~M-1。f(i,j)表示一幅大小為N*M像素的圖像,其中i=0,1,2……N-1;j=0,1,2……M-1。由于幅度圖像包含了原圖像幾乎所有需要的幾何結(jié)構(gòu)信息,因此研究中僅使用幅度圖像即可。
2.2 圖像進(jìn)行傅里葉變換
去除圖像中的第三維信息——顏色,讀取圖像灰度圖,然后擴(kuò)大圖像到合適尺寸進(jìn)行二維傅里葉變換,當(dāng)圖像尺寸是2、3、5的整數(shù)倍時(shí),DFT的計(jì)算速度最快,同時(shí)填充邊緣像素0,能夠達(dá)到加快運(yùn)算而不影響計(jì)算結(jié)果的目的。最后計(jì)算幅值:
由于經(jīng)傅里葉變換后的幅度值太大不能很好地顯示,因此用對(duì)數(shù)尺度替代線性尺度:
2.3 提取傅里葉特征值
提取其中10個(gè)幅度值數(shù)據(jù)作為樣本的特征參數(shù),如表1所示。
3 構(gòu)建分類器
該研究將訓(xùn)練集馬鈴薯經(jīng)傅里葉變換后獲得的樣本特征參數(shù)輸入SVM分類器內(nèi),其中特征參數(shù)分為正常正樣本和畸形負(fù)樣本2類。計(jì)算所有輸入SVM的2類參數(shù),得出最優(yōu)的分割超平面,建立SVM判別模型并保存為XML文件,從而在程序中能夠直接調(diào)用。
4 軟件程序
研究采用的編譯環(huán)境為Visual Studio,使用的編程語(yǔ)言為C++,調(diào)用計(jì)算機(jī)視覺(jué)庫(kù)OpenCV,實(shí)現(xiàn)了樣本圖像的讀取和識(shí)別、輸出分類結(jié)果和傅里葉幅度值等功能。其程序流程如圖4所示,程序界面如圖5所示。
程序可以統(tǒng)計(jì)樣本總數(shù)、正常個(gè)數(shù)和畸形個(gè)數(shù),計(jì)算畸形率,顯示樣本原始圖像以及濾除背景后、濾波后、輪廓提取后的圖像,并把已識(shí)別的樣本圖像輸入SVM分類器中進(jìn)行學(xué)習(xí),從而優(yōu)化SVM分類模型。
5 分類測(cè)試
以93個(gè)馬鈴薯為樣本(訓(xùn)練集70個(gè),測(cè)試集23個(gè)),利用傅里葉變換和SVM分類器進(jìn)行識(shí)別分類。其中,70個(gè)訓(xùn)練集中正確率為100%,23個(gè)測(cè)試集中出現(xiàn)1個(gè)誤判(將正常馬鈴薯判別為畸形),正確率為95.6%。值得一提的是,在測(cè)試集中,畸形馬鈴薯樣本的識(shí)別正確率達(dá)到了100%。這表明通過(guò)訓(xùn)練的SVM分類器對(duì)測(cè)試集的識(shí)別分類達(dá)到了較好的分類效果,誤判數(shù)較少,在可接受范圍內(nèi)。對(duì)于出現(xiàn)的誤判可進(jìn)行如下改進(jìn):結(jié)合馬鈴薯樣本的表皮特征進(jìn)行綜合檢測(cè);不斷改進(jìn)圖像預(yù)處理方法使其能在背景復(fù)雜的樣本圖像中應(yīng)用;需大量樣本豐富SVM分類模型,從而保證分類的準(zhǔn)確率。
參考文獻(xiàn):
[1] 黃星奕,戴志強(qiáng). 計(jì)算機(jī)視覺(jué)在脫水姜片在線分選中的應(yīng)用[J]. 農(nóng)機(jī)化研究,2007,(10):153-156.
[2] 李 革,李 斌,王 瑩,等. 珍珠形狀的計(jì)算機(jī)視覺(jué)識(shí)別[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào),2008,39(7):129-132.
[3] 鄭冠楠,譚豫之,張俊雄,等. 基于計(jì)算機(jī)視覺(jué)的馬鈴薯自動(dòng)檢測(cè)分級(jí)[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào),2009,(4):166-168.
[4] 汪成龍,李小昱,武振中,等. 基于流形學(xué)習(xí)算法的馬鈴薯機(jī)械損傷機(jī)器視覺(jué)檢測(cè)方法[J]. 農(nóng)業(yè)工程學(xué)報(bào),2014,30(1):245-252.
[5] Abdullah M Z,Mohamad-Saleh J,F(xiàn)athinul-Syahir A S,et al. Discrimination and classification of fresh-cut starfruits(Averrhoa carambola L.)using automated machine vision system[J]. Journal of Food Engineering,2006,76(4):506-523.
[6] Al-Mallahi A,Kataoka T,Okamoto H,et al. An image processing algorithm for detecting in-line potato tubers without singulation[J]. Computers and Electronics in Agriculture,2010,70:239-244.
[7] AlOhali Y. Computer vision based date fruit grading system: design and implementation[J]. Journal of King Saud University – Computer and Information Sciences,2011,23(1):29-36.
(責(zé)任編輯:成 平)