羅志翔 胡蓉 趙全友 鄧雄昌



摘要:近些年,計算機視覺發展迅速,在水果識別方向進行了廣泛的應用和研究。本文設計基于BP神經網絡的水果識別系統,選取生活中常見的三種水果:蘋果、橘子、香蕉作為對象。首先,通過網絡資源等搜集水果圖像建立樣本庫;然后通過MATLAB對圖像進行預處理,為后續的特征提取做好準備。水果特征的提取選擇紋理、形狀、顏色三種特征進行提取;同時在每種特征中選用不同的特征值作為特征向量。通過提取三種特征后輸入到BP神經網絡中進行訓練、識別。經測試,識別的成功率可以達到93.18%,證明了可行性以及未來的可實用性。
關鍵詞: 水果識別;MATLAB;特征提取;BP神經網絡
中圖分類號: TP391? ? ? ? 文獻標識碼: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
我國地域廣闊、水果資源豐富,隨著科技發展和社會需求的加大,水果的種植規模也在不斷增大;同時也出現了復合型果園。在復合型果園場景中,借助水果識別系統配合機械化設備可以完成自動采摘、分揀等操作;盡管人工同樣能實現相同的操作,但是效率不高、需要的勞動力也較大。而且,隨著勞動力結構的轉變,從事農業的勞動力也在不斷減少。所以將其應用到生產當中可以代替大量的勞動力,可以達到高效、方便的特點[1]。
在當前,國內外對水果識別以及神經算法的研究已經取得了不錯的成績;在實際應用中也是不斷地得到完善和提高。基于社會的發展和科技水平的不斷提升,人民的需求也在不斷變化,從而讓物體識別技術也在不斷發生改變。在5G熱潮的推動下,應用于各種場景的水果識別的技術一定會具有更高的精度、應用場景更加的普及。
1 圖像識別基本理論
數字圖像識別主要是在計算機視覺的基礎上,通過收集圖像的輪廓、特征、色彩、紋理等信息來進行識別。一般的圖像識別流程如圖1所示。
其中,預處理主要是灰度化、二值化、濾波等操作,目的是減少計算量,突出圖像中目標區域的信息。圖像分割則是將圖像中的背景與目標區域分割開,使目標區域更好的顯示出來。特征提取步驟常用的特征值有:紋理特征、顏色特征、形狀特征等;之后將特征值輸入到識別器中進行訓練識別。選擇數字圖像作為處理對象,是因為相對于模擬圖像,數字圖像具有存儲,傳輸方便可壓縮、傳輸過程中不易失真、處理方便等巨大優勢,這些都為圖像識別技術的發展提供了強大的動力以及良好的基礎[2]。
2 水果識別器的設計
本次水果識別的設計主要分為六大步驟,具體的流程圖如圖2所示:
2.1 樣本庫的建立
本次課題設計以蘋果、香蕉、橘子的數字圖像作為對象進行研究。但是研究的初始階段因為缺少圖像樣本庫,所以需要自建樣本庫來實現目標。
在CSDN、PUDN、百度圖片、互聯網搜索等方式來獲得不同環境下(光照、角度、背景)下的水果原始圖像,構建水果圖像樣本庫共299張格式為JPEG的彩色圖像。
2.2 圖像的目標分割
在讀取圖像并完成尺寸變化后,為減少計算量,灰度化是不可缺少的一項處理。圖像在進行特征識別前,由于圖像在獲取時的角度、光線以及圖像背景等問題的存在,直接進行特征提取往往效果不佳。所以要事先對圖像進行目標分割,將圖像與背景相分離,將水果區域凸顯出來,然后進行圖像填充、標記等方式將目標與背景完全分割開。
2.3圖像特征提取
(1)顏色特征提取
數字圖像的顏色特征包括顏色直方圖 、顏色矩、顏色相關圖和顏色聚合向量等。本次采用的是顏色矩來進行顏色特征的提取,在圖像中顏色的分布信息主要是集中在低階矩中,所以采用顏色的一階矩、二階矩、三階矩就足夠表達顏色的分布[3];相比于顏色直方圖優點在于無須向量化,顏色矩一共是提取9個分量(RGB三個分量,每個分量三個低階矩),所以相對于其他的顏色特征來說更為簡潔。
(2)紋理特征提取
紋理特征是一種反映圖像表面相同性質的特征,它體現了物體的表面具有緩慢變化或者周期變化的結構排列屬性[4]。紋理可以認為是灰度分布在空間位置上的反復出現而形成的,在圖像中相隔距離的兩個像素之間會存在一定的灰度關系,也就是灰度相關性。所以本次采用灰度共生矩陣來進行紋理特征的提取。
灰度共生矩陣就是一種通過灰度的空間相關性來描述紋理的常用方法。它是根據像素的距離和角度形成的矩陣函數,通過計算圖像中距離和方向的兩點灰度之間的相關性,來反映圖像在方向、間隔等方面的綜合信息[5]。
(3)形狀特征提取
物體和區域的形狀是圖像表達和圖像檢索中的另一重要的特征。但不同于顏色或紋理等底層特征,形狀特征的表達必須以圖像中物體或區域的劃分為基礎。形狀特征的提取有:傅立葉形狀描述法、幾何參數法、形狀不變矩法。本次設計選用幾何參數法進行形狀特征提取。
2.4水果分類器的建立
BP神經網絡是一種按照誤差逆向傳播數據算法來訓練的多層前饋神經網絡。前饋神經網絡的基本特點是,節點按照一定的層次排列,信號的傳輸只有單一的方向從上層節點傳輸到下層節點,網絡的連接部分是單向的。在網絡運行中,可以將每一層網絡節點作為一次對特征值的轉換或者計算,變化的方式取決于節點傳遞函數。最后的結果則是由網絡的最后一層節點做出決策[6]。
BP神經網絡的結構可以大致分為三層即輸入層、隱含層、輸出層。其中隱含層就是處于輸入層和輸出層中間的層,一個神經網絡中可以有一個或者多個隱含層;有多少隱含層就稱為幾層前饋神經網絡。并且,隱含層和輸出層都是具有激活函數的功能神經元。BP神經網絡被大量應用在模式識別、故障檢測、智能控制、函數逼近等鄰域,是目前應用最成功、最廣泛的神經網絡模型之一。
本次課題選用BP神經網絡作為水果分類器,相比于其他算法BP神經網絡具有誤差反饋的優勢,在訓練時會不斷地將出現的誤差返還,以此來調節網絡層之間的權值,以達到最佳識別效果。
3 仿真結果及分析
3.1 水果圖像的訓練及識別
本次仿真都是在64 位WIN10操作系統下,采用MATLAB2019a軟件進行仿真測試。樣本庫來自CSDN、PUDN、百度圖片等渠道,為JPEG格式的299張彩色圖像,共分為三種水果(蘋果、香蕉、橘子)。圖像均轉換為128×128大小的圖像,采用OSTU法進行二值化處理后用Canny算子進行邊緣檢測,并對其進行閉運算,最后進行填充和標簽化。其結果如圖3所示。
本次設計共選用四種特征值進行訓練識別,即顏色特征、紋理特征、形狀特征。其在提取出相應的特征值之后將特征值用矩陣的方式封裝起來,生成樣本庫作為訓練識別數據。訓練識別器是選用的BP神經網絡來進行訓練識別。由于在訓練識別已經將特征值與標簽打包放到了一起,訓練前要進行數據集分割。本次選用30%數據集作為測試集,70%數據集作為訓練集。
在訓練前將數據集進行數據歸一化,選用模式識別函數patternnet來搭建識別分類器所需的識別網絡。隱含層的層數很大程度上影響著識別率,隱含層中的神經元的多少同樣也會對識別率有影響。在測試中神經元并不是越多越好,本次采用四層隱含層的神經網絡,不同隱含層對應的識別率如表1所示:
在表1中可以很明顯地看出來,在隱含層增加到第4層后,識別率不僅沒有提高,反而在不斷降低,所以本次網絡建立選擇的隱含層數為3層。經過測試,隱含層中的神經元個數為[20,50,91]時識別率最高也最穩定在93.18%。識別網絡圖,訓練曲線分別如圖4、圖5所示。
圖5中有三條曲線,分別為:Train曲線(表示訓練集在訓練過程中誤差的下降程度)、Validation曲線(表示驗證集的訓練過程中的誤差下降程度)、Test曲線(是輸入的測試集的訓練曲線)。本次訓練的迭代次數為38次,即所有訓練樣本通過了神經網絡訓練一次(一個正向傳遞和一個反向傳遞)。在32次訓練迭代時,驗證集的錯誤率降至最低,在繼續訓練6次后錯誤率沒有降到更低的情況下結束訓練,所以本次訓練的迭代次數為38次。
3.2 系統測試
在神經網絡訓練過程中,將識別率達到最高時的網絡模型保存下來為一個net.mat文件。該文件作為后續系統中的識別模塊使用,根據測試集的誤差輸出顯示,該模型的最大精度為93.18%;符合要求,可以作為識別模塊使用。
3.2.1 GUI界面展示
本次借助Matlab軟件中的GUI設計功能,設計了一個水果識別系統界面。該界面可以實現優秀的人機交互功能。本次設計制作了三個按鈕、兩個圖像顯示界面、一個靜態文本界面。三個按鈕分別實現:輸入圖像、識別圖像、清除圖像三種功能。水果識別GUI 界面如圖6所示。
3.2.2 水果識別系統的測試
將訓練好的模型輸入到GUI中后,隨機提取樣本庫中的蘋果、香蕉、橘子三張圖像作為識別對象,測試結果如圖7所示。
4 結束語
本文設計出一種基于BP神經網絡的水果識別系統,獲得了較高的識別率。但是因本人的學術水平有限,并未考慮到復雜環境下的圖像識別,在后續的學習和研究中將不斷完善,不斷進步。
參考文獻:
[1] 王前程.基于深度學習的水果圖像識別算法研究[D].河北大學,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].北京:北京交通大學,2009.
[4] 蔡健榮,趙杰文.自然場景下成熟水果的計算機視覺識別[J].農業機械學報,2005,36(2):61-64.
[5] 焦蓬蓬,郭依正,劉麗娟,等.灰度共生矩陣紋理特征提取的Matlab實現[J].計算機技術與發展,2012,22(11):169-171,175.
[6] 陳源,張長江.水果自動識別的BP神經網絡方法[J].微型機與應用,2010,29(22):40-43,48.
【通聯編輯:唐一東】