羅志翔 胡蓉 趙全友 鄧雄昌
摘要:近些年,計(jì)算機(jī)視覺發(fā)展迅速,在水果識別方向進(jìn)行了廣泛的應(yīng)用和研究。本文設(shè)計(jì)基于BP神經(jīng)網(wǎng)絡(luò)的水果識別系統(tǒng),選取生活中常見的三種水果:蘋果、橘子、香蕉作為對象。首先,通過網(wǎng)絡(luò)資源等搜集水果圖像建立樣本庫;然后通過MATLAB對圖像進(jìn)行預(yù)處理,為后續(xù)的特征提取做好準(zhǔn)備。水果特征的提取選擇紋理、形狀、顏色三種特征進(jìn)行提取;同時在每種特征中選用不同的特征值作為特征向量。通過提取三種特征后輸入到BP神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練、識別。經(jīng)測試,識別的成功率可以達(dá)到93.18%,證明了可行性以及未來的可實(shí)用性。
關(guān)鍵詞: 水果識別;MATLAB;特征提取;BP神經(jīng)網(wǎng)絡(luò)
中圖分類號: TP391? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)04-0187-03
Abstract: Computer vision has developed rapidly in recent years, and has been widely used and researched in the direction of fruit recognition. This paper designs a fruit recognition system based on BP neural network. Choose three common fruits in life: apples, oranges, and bananas as objects. First, collect fruit images through network resources to establish a sample library. Then the image is preprocessed by MATLAB software to prepare for subsequent feature extraction. For the extraction of fruit features, three features of texture, shape, and color are selected for extraction; at the same time, different feature values are selected as feature vectors in each feature. After three kinds of features are extracted, they are input into BP neural network for training and recognition. After the recognition test, the recognition success rate can reach 93.18%, which proves the feasibility and practicality in the future.
Key words: fruit recognition; MATLAB; feature extraction; BP neural network
我國地域廣闊、水果資源豐富,隨著科技發(fā)展和社會需求的加大,水果的種植規(guī)模也在不斷增大;同時也出現(xiàn)了復(fù)合型果園。在復(fù)合型果園場景中,借助水果識別系統(tǒng)配合機(jī)械化設(shè)備可以完成自動采摘、分揀等操作;盡管人工同樣能實(shí)現(xiàn)相同的操作,但是效率不高、需要的勞動力也較大。而且,隨著勞動力結(jié)構(gòu)的轉(zhuǎn)變,從事農(nóng)業(yè)的勞動力也在不斷減少。所以將其應(yīng)用到生產(chǎn)當(dāng)中可以代替大量的勞動力,可以達(dá)到高效、方便的特點(diǎn)[1]。
在當(dāng)前,國內(nèi)外對水果識別以及神經(jīng)算法的研究已經(jīng)取得了不錯的成績;在實(shí)際應(yīng)用中也是不斷地得到完善和提高。基于社會的發(fā)展和科技水平的不斷提升,人民的需求也在不斷變化,從而讓物體識別技術(shù)也在不斷發(fā)生改變。在5G熱潮的推動下,應(yīng)用于各種場景的水果識別的技術(shù)一定會具有更高的精度、應(yīng)用場景更加的普及。
1 圖像識別基本理論
數(shù)字圖像識別主要是在計(jì)算機(jī)視覺的基礎(chǔ)上,通過收集圖像的輪廓、特征、色彩、紋理等信息來進(jìn)行識別。一般的圖像識別流程如圖1所示。
其中,預(yù)處理主要是灰度化、二值化、濾波等操作,目的是減少計(jì)算量,突出圖像中目標(biāo)區(qū)域的信息。圖像分割則是將圖像中的背景與目標(biāo)區(qū)域分割開,使目標(biāo)區(qū)域更好的顯示出來。特征提取步驟常用的特征值有:紋理特征、顏色特征、形狀特征等;之后將特征值輸入到識別器中進(jìn)行訓(xùn)練識別。選擇數(shù)字圖像作為處理對象,是因?yàn)橄鄬τ谀M圖像,數(shù)字圖像具有存儲,傳輸方便可壓縮、傳輸過程中不易失真、處理方便等巨大優(yōu)勢,這些都為圖像識別技術(shù)的發(fā)展提供了強(qiáng)大的動力以及良好的基礎(chǔ)[2]。
2 水果識別器的設(shè)計(jì)
本次水果識別的設(shè)計(jì)主要分為六大步驟,具體的流程圖如圖2所示:
2.1 樣本庫的建立
本次課題設(shè)計(jì)以蘋果、香蕉、橘子的數(shù)字圖像作為對象進(jìn)行研究。但是研究的初始階段因?yàn)槿鄙賵D像樣本庫,所以需要自建樣本庫來實(shí)現(xiàn)目標(biāo)。
在CSDN、PUDN、百度圖片、互聯(lián)網(wǎng)搜索等方式來獲得不同環(huán)境下(光照、角度、背景)下的水果原始圖像,構(gòu)建水果圖像樣本庫共299張格式為JPEG的彩色圖像。
2.2 圖像的目標(biāo)分割
在讀取圖像并完成尺寸變化后,為減少計(jì)算量,灰度化是不可缺少的一項(xiàng)處理。圖像在進(jìn)行特征識別前,由于圖像在獲取時的角度、光線以及圖像背景等問題的存在,直接進(jìn)行特征提取往往效果不佳。所以要事先對圖像進(jìn)行目標(biāo)分割,將圖像與背景相分離,將水果區(qū)域凸顯出來,然后進(jìn)行圖像填充、標(biāo)記等方式將目標(biāo)與背景完全分割開。
2.3圖像特征提取
(1)顏色特征提取
數(shù)字圖像的顏色特征包括顏色直方圖 、顏色矩、顏色相關(guān)圖和顏色聚合向量等。本次采用的是顏色矩來進(jìn)行顏色特征的提取,在圖像中顏色的分布信息主要是集中在低階矩中,所以采用顏色的一階矩、二階矩、三階矩就足夠表達(dá)顏色的分布[3];相比于顏色直方圖優(yōu)點(diǎn)在于無須向量化,顏色矩一共是提取9個分量(RGB三個分量,每個分量三個低階矩),所以相對于其他的顏色特征來說更為簡潔。
(2)紋理特征提取
紋理特征是一種反映圖像表面相同性質(zhì)的特征,它體現(xiàn)了物體的表面具有緩慢變化或者周期變化的結(jié)構(gòu)排列屬性[4]。紋理可以認(rèn)為是灰度分布在空間位置上的反復(fù)出現(xiàn)而形成的,在圖像中相隔距離的兩個像素之間會存在一定的灰度關(guān)系,也就是灰度相關(guān)性。所以本次采用灰度共生矩陣來進(jìn)行紋理特征的提取。
灰度共生矩陣就是一種通過灰度的空間相關(guān)性來描述紋理的常用方法。它是根據(jù)像素的距離和角度形成的矩陣函數(shù),通過計(jì)算圖像中距離和方向的兩點(diǎn)灰度之間的相關(guān)性,來反映圖像在方向、間隔等方面的綜合信息[5]。
(3)形狀特征提取
物體和區(qū)域的形狀是圖像表達(dá)和圖像檢索中的另一重要的特征。但不同于顏色或紋理等底層特征,形狀特征的表達(dá)必須以圖像中物體或區(qū)域的劃分為基礎(chǔ)。形狀特征的提取有:傅立葉形狀描述法、幾何參數(shù)法、形狀不變矩法。本次設(shè)計(jì)選用幾何參數(shù)法進(jìn)行形狀特征提取。
2.4水果分類器的建立
BP神經(jīng)網(wǎng)絡(luò)是一種按照誤差逆向傳播數(shù)據(jù)算法來訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò)。前饋神經(jīng)網(wǎng)絡(luò)的基本特點(diǎn)是,節(jié)點(diǎn)按照一定的層次排列,信號的傳輸只有單一的方向從上層節(jié)點(diǎn)傳輸?shù)较聦庸?jié)點(diǎn),網(wǎng)絡(luò)的連接部分是單向的。在網(wǎng)絡(luò)運(yùn)行中,可以將每一層網(wǎng)絡(luò)節(jié)點(diǎn)作為一次對特征值的轉(zhuǎn)換或者計(jì)算,變化的方式取決于節(jié)點(diǎn)傳遞函數(shù)。最后的結(jié)果則是由網(wǎng)絡(luò)的最后一層節(jié)點(diǎn)做出決策[6]。
BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)可以大致分為三層即輸入層、隱含層、輸出層。其中隱含層就是處于輸入層和輸出層中間的層,一個神經(jīng)網(wǎng)絡(luò)中可以有一個或者多個隱含層;有多少隱含層就稱為幾層前饋神經(jīng)網(wǎng)絡(luò)。并且,隱含層和輸出層都是具有激活函數(shù)的功能神經(jīng)元。BP神經(jīng)網(wǎng)絡(luò)被大量應(yīng)用在模式識別、故障檢測、智能控制、函數(shù)逼近等鄰域,是目前應(yīng)用最成功、最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。
本次課題選用BP神經(jīng)網(wǎng)絡(luò)作為水果分類器,相比于其他算法BP神經(jīng)網(wǎng)絡(luò)具有誤差反饋的優(yōu)勢,在訓(xùn)練時會不斷地將出現(xiàn)的誤差返還,以此來調(diào)節(jié)網(wǎng)絡(luò)層之間的權(quán)值,以達(dá)到最佳識別效果。
3 仿真結(jié)果及分析
3.1 水果圖像的訓(xùn)練及識別
本次仿真都是在64 位WIN10操作系統(tǒng)下,采用MATLAB2019a軟件進(jìn)行仿真測試。樣本庫來自CSDN、PUDN、百度圖片等渠道,為JPEG格式的299張彩色圖像,共分為三種水果(蘋果、香蕉、橘子)。圖像均轉(zhuǎn)換為128×128大小的圖像,采用OSTU法進(jìn)行二值化處理后用Canny算子進(jìn)行邊緣檢測,并對其進(jìn)行閉運(yùn)算,最后進(jìn)行填充和標(biāo)簽化。其結(jié)果如圖3所示。
本次設(shè)計(jì)共選用四種特征值進(jìn)行訓(xùn)練識別,即顏色特征、紋理特征、形狀特征。其在提取出相應(yīng)的特征值之后將特征值用矩陣的方式封裝起來,生成樣本庫作為訓(xùn)練識別數(shù)據(jù)。訓(xùn)練識別器是選用的BP神經(jīng)網(wǎng)絡(luò)來進(jìn)行訓(xùn)練識別。由于在訓(xùn)練識別已經(jīng)將特征值與標(biāo)簽打包放到了一起,訓(xùn)練前要進(jìn)行數(shù)據(jù)集分割。本次選用30%數(shù)據(jù)集作為測試集,70%數(shù)據(jù)集作為訓(xùn)練集。
在訓(xùn)練前將數(shù)據(jù)集進(jìn)行數(shù)據(jù)歸一化,選用模式識別函數(shù)patternnet來搭建識別分類器所需的識別網(wǎng)絡(luò)。隱含層的層數(shù)很大程度上影響著識別率,隱含層中的神經(jīng)元的多少同樣也會對識別率有影響。在測試中神經(jīng)元并不是越多越好,本次采用四層隱含層的神經(jīng)網(wǎng)絡(luò),不同隱含層對應(yīng)的識別率如表1所示:
在表1中可以很明顯地看出來,在隱含層增加到第4層后,識別率不僅沒有提高,反而在不斷降低,所以本次網(wǎng)絡(luò)建立選擇的隱含層數(shù)為3層。經(jīng)過測試,隱含層中的神經(jīng)元個數(shù)為[20,50,91]時識別率最高也最穩(wěn)定在93.18%。識別網(wǎng)絡(luò)圖,訓(xùn)練曲線分別如圖4、圖5所示。
圖5中有三條曲線,分別為:Train曲線(表示訓(xùn)練集在訓(xùn)練過程中誤差的下降程度)、Validation曲線(表示驗(yàn)證集的訓(xùn)練過程中的誤差下降程度)、Test曲線(是輸入的測試集的訓(xùn)練曲線)。本次訓(xùn)練的迭代次數(shù)為38次,即所有訓(xùn)練樣本通過了神經(jīng)網(wǎng)絡(luò)訓(xùn)練一次(一個正向傳遞和一個反向傳遞)。在32次訓(xùn)練迭代時,驗(yàn)證集的錯誤率降至最低,在繼續(xù)訓(xùn)練6次后錯誤率沒有降到更低的情況下結(jié)束訓(xùn)練,所以本次訓(xùn)練的迭代次數(shù)為38次。
3.2 系統(tǒng)測試
在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,將識別率達(dá)到最高時的網(wǎng)絡(luò)模型保存下來為一個net.mat文件。該文件作為后續(xù)系統(tǒng)中的識別模塊使用,根據(jù)測試集的誤差輸出顯示,該模型的最大精度為93.18%;符合要求,可以作為識別模塊使用。
3.2.1 GUI界面展示
本次借助Matlab軟件中的GUI設(shè)計(jì)功能,設(shè)計(jì)了一個水果識別系統(tǒng)界面。該界面可以實(shí)現(xiàn)優(yōu)秀的人機(jī)交互功能。本次設(shè)計(jì)制作了三個按鈕、兩個圖像顯示界面、一個靜態(tài)文本界面。三個按鈕分別實(shí)現(xiàn):輸入圖像、識別圖像、清除圖像三種功能。水果識別GUI 界面如圖6所示。
3.2.2 水果識別系統(tǒng)的測試
將訓(xùn)練好的模型輸入到GUI中后,隨機(jī)提取樣本庫中的蘋果、香蕉、橘子三張圖像作為識別對象,測試結(jié)果如圖7所示。
4 結(jié)束語
本文設(shè)計(jì)出一種基于BP神經(jīng)網(wǎng)絡(luò)的水果識別系統(tǒng),獲得了較高的識別率。但是因本人的學(xué)術(shù)水平有限,并未考慮到復(fù)雜環(huán)境下的圖像識別,在后續(xù)的學(xué)習(xí)和研究中將不斷完善,不斷進(jìn)步。
參考文獻(xiàn):
[1] 王前程.基于深度學(xué)習(xí)的水果圖像識別算法研究[D].河北大學(xué),2016.
[2] Kondo, Naoshi, Yata, Koki, Iida, Michihisa. Development of an End-Effector for a Tomato Cluster Harvesting Robot[J]. Engineering in Agriculture Environment & Food, 2010, 3(1):20-24.
[3] 胡文錦.圖像邊緣檢測方法研究[D].北京:北京交通大學(xué),2009.
[4] 蔡健榮,趙杰文.自然場景下成熟水果的計(jì)算機(jī)視覺識別[J].農(nóng)業(yè)機(jī)械學(xué)報,2005,36(2):61-64.
[5] 焦蓬蓬,郭依正,劉麗娟,等.灰度共生矩陣紋理特征提取的Matlab實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(11):169-171,175.
[6] 陳源,張長江.水果自動識別的BP神經(jīng)網(wǎng)絡(luò)方法[J].微型機(jī)與應(yīng)用,2010,29(22):40-43,48.
【通聯(lián)編輯:唐一東】