蘆 范
(商丘職業(yè)技術(shù)學(xué)院,河南 商丘 476000)
蔬菜圖像識別在食品生產(chǎn)中有著非常重要的地位[1-2],不但有利于大規(guī)?;少?,還能按識別結(jié)果進行分類,大大減少人力成本。目前,蔬菜圖像識別的方法主要有人工識別[3]、神經(jīng)網(wǎng)絡(luò)算法(NN)[4]、概率神經(jīng)網(wǎng)絡(luò)方法(PNN)[5]、層次聚類神經(jīng)網(wǎng)絡(luò)算法(HCNN)[6]、卷積神經(jīng)網(wǎng)絡(luò)模型(CNN)[7]、小波分析(WA)[8]、人工魚群算法(AFS)[9]及支持向量機回歸 (SVR) 預(yù)測模型[10]。人工識別存在主觀性且效率較低;NN適合自適應(yīng)學(xué)習(xí)及進行非線性擬合,但網(wǎng)絡(luò)結(jié)構(gòu)、神經(jīng)元的初始權(quán)值和閾值隨機設(shè)定使得最終結(jié)果易陷入局部極小值;PNN實現(xiàn)簡單,同時識別結(jié)果較好,但提取蔬菜圖像維度的同時對分類器要求較高;HCNN利用層次聚類結(jié)構(gòu)融合神經(jīng)網(wǎng)絡(luò)解決蔬菜識別問題,但聚類的層次數(shù)無法自適應(yīng)調(diào)整,且無法避免隨機性權(quán)值矩陣時的死點問題;CNN的仿生結(jié)構(gòu)較優(yōu)越,但實現(xiàn)較復(fù)雜,訓(xùn)練所需時間較久;WA可提取蔬菜圖像的紋理特征,但存在參數(shù)優(yōu)化的難題;AFS由于初始參數(shù)設(shè)定以及步長因子對算法優(yōu)化效果會產(chǎn)生較大影響,應(yīng)用受限;SVR可避免維數(shù)災(zāi)難,但參數(shù)較難選擇。
試驗擬采用改進神經(jīng)網(wǎng)絡(luò)(Improved Neural Network,INN)算法,對神經(jīng)網(wǎng)絡(luò)的權(quán)值、隱函數(shù)中心值、核寬度參數(shù)值進行優(yōu)化求解,同時對多余的神經(jīng)元通過量子遺傳算法刪除處理,旨在提高算法的運行速度。
徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)(RBFNN)具有多層結(jié)構(gòu)[11],假設(shè)第i個樣本點所包含的輸入向量為Xi(i=1,2,…,n),n為單元數(shù),第j個樣本點的輸出向量為Yj(j=1,2,…,m),m為輸出層單元個數(shù),第j個徑向基函數(shù)的中心向量為cj(j=1,2,…,nc),則RBFNN輸出為:
(1)
式中:
wi0——第i個節(jié)點的閾值;
wik——隱藏層與輸出節(jié)點間權(quán)重;
Yij——第i個節(jié)點的輸出;
f——核函數(shù);
nc——隱藏層節(jié)點數(shù)。
RBFNN的核函數(shù)為:
(2)
式中:
σi——核寬;
ci——隱藏層函數(shù)的中心值。
RBFNN權(quán)重參數(shù)的訓(xùn)練方法采用梯度下降法[12],其迭代過程為:
a[cji(t-1)-cji(t-2)],
(3)
式中:
cji(t)——第j個隱藏層的第i個輸入神經(jīng)元在第t次迭代的中心分量;
wkj(t)——第k個輸出神經(jīng)元與第j個隱藏層在第t次迭代的權(quán)重;
η——學(xué)習(xí)率;
E——神經(jīng)元評價函數(shù)。
(4)
式中:
olk——第l個輸入樣本的第k個輸出神經(jīng)元的期望輸出值;
ylk——輸出值。
(1) 網(wǎng)絡(luò)初始化:隨機選取h個訓(xùn)練樣本,計算每個樣本的密度值Di。
(5)
式中:
r——樣本xi的一個鄰域半徑。
選取最大Dc1所對應(yīng)的樣本xc1作為第一個聚類中心,其聚類域為W1(xc1)。
(6)
式中:
選取最大Dc2所對應(yīng)的樣本xc1作為第二個聚類中心,聚類域為W2(xc2);依次進行密度值更新至Dci≤0.12Dc1。
對最近l個相鄰聚類中心進行計算,獲得核寬度:
(7)
式中:
cj——最近l個相鄰點的矩心ci。
2.1.1 量子比特 量子比特可表示0,1兩種狀態(tài)或者疊加態(tài)[13]:
|φ〉=α|0〉+β|1〉,
(8)
式中:
α——量子比特處于0狀態(tài)的概率幅;
β——量子比特處于1狀態(tài)的概率幅;
|0〉、|1〉——自旋向下態(tài)、自旋向上態(tài);
α2——量子比特處于0狀態(tài)的概率;
2.1.2 染色體編碼方案 量子遺傳中染色體采用量子位的概率幅進行編碼:
(9)
式中:
θij——量子比特的相位,取2π×rand,i=1,2,…,n,j=1,2,…,k;
n——染色體數(shù)目;
k——量子位的位數(shù);
rand——隨機數(shù),取0~1。
由量子遺傳編碼規(guī)則可知,量子位分上、下兩行,因此每個個體可包含兩個候選解,在種群規(guī)模不變的情況下,候選解的個數(shù)比遺傳算法多1倍,增加了解空間的多樣性,提高了尋優(yōu)成功的概率[14]。
2.2.1 神經(jīng)元權(quán)重量子編碼方法 對每條神經(jīng)元的每個節(jié)點的權(quán)重進行0或者1二進制編碼,當編碼均為1時,神經(jīng)元的權(quán)重有效;當編碼為0時,此節(jié)點需刪除,以便優(yōu)化神經(jīng)網(wǎng)絡(luò)。因此,神經(jīng)網(wǎng)絡(luò)是由0和1構(gòu)成的多條序列染色體,染色體長度為該神經(jīng)元網(wǎng)絡(luò)權(quán)重數(shù)之和[15]。
2.2.2 適應(yīng)度函數(shù) 將隱含層數(shù)量設(shè)為1,以便精簡神經(jīng)網(wǎng)絡(luò),此時適應(yīng)度函數(shù)表達式為:
(10)
式中:
Qi、Qo、Qf——分別為輸入層神經(jīng)元數(shù)量、輸出層神經(jīng)元數(shù)量、反饋抽頭數(shù)量;
Ci、Co、Cf——調(diào)整系數(shù)。
2.2.3 進化規(guī)則 根據(jù)優(yōu)勝劣汰的操作規(guī)則,通過輪盤賭選擇演變,適應(yīng)性強的個體更容易遺傳給下一代,適應(yīng)性較低的個體不易遺傳給下一代。當在突變過程中從隱含層或輸入層刪除神經(jīng)元時,神經(jīng)元的相應(yīng)權(quán)重也將被刪除。
3.1.1 形狀特征 圓形度:
(11)
式中:
Num——邊界的像素點數(shù);
x——蔬菜圖像的橫坐標;
y——蔬菜圖像的縱坐標;
X、Y——蔬菜圖像的質(zhì)心坐標;
S——目標圖像的面積。
C越小,蔬菜形狀與圓形的差別越大。
外接最小矩形:
(12)
式中:
ω——方向角,(°);
L——外接矩形長(取αmax-αmin),cm;
W——外接矩形寬(取βmax-βmin),cm。
L/W越大越能將較細長的物體與方形或圓形物體區(qū)分開。
慣量最小的矩的軸角度為:
(13)
式中:
u1,1、u2,0、u0,2——分別為(1,1)階、(2,0)階、(0,2)階中心矩。
圓形性:
(14)
式中:
L——目標圖像的周長,cm;
S——目標圖像的面積,cm2。
圓形性與1差異越大,則其與圓的差別越大。
3.1.2 紋理特征 紋理相關(guān)性:
(15)
式中:
S1——判定提取圖像像素在某個方向上的相似程度;
p(i,j)——灰度共生矩陣中位置(i,j)處的像素灰度值;
N——灰度共生矩陣的階數(shù);
μx、σx——圖像行x處的px(i)的均值、方差;
μy、σy——圖像列y處的py(j)的均值、方差。
3.1.3 顏色特征 顏色直方圖只包含蔬菜圖像中某一顏色值出現(xiàn)的頻次,未考慮顏色的空間位置信息。為了避免兩幅不同圖像存在相同的直方圖,將各顏色通道的像素值量化至G個范圍內(nèi),像素值處于第g段的個數(shù)為:ζg+ψg,ζg是顏色為第g段內(nèi)一致性像素個數(shù),ψg是顏色為第g段內(nèi)不一致性像素個數(shù),顏色一致性特征矢量H為:
H=[(ζ1+ψ1),(ζ2+ψ2),…,(ζG+ψG)]。
(16)
將量子遺傳算法用于RBFNN訓(xùn)練學(xué)習(xí)Ci、σi、wk,加快收斂速度,優(yōu)化網(wǎng)絡(luò)連接結(jié)構(gòu)。設(shè)Ii為量子神經(jīng)元的第i個輸入,則輸出為:
(17)
式中:
arg(u)——u的相位;
λ——偏置值;
θi——輸入角度的相移;
δ——角度控制;
O——輸出。
蔬菜圖像識別流程為:
① 對蔬菜樣本預(yù)處理,產(chǎn)生RBFNN的學(xué)習(xí)與測試樣本;
② 通過梯度下降方法獲得節(jié)點間權(quán)重;
③ 通過增大鄰域半徑的均值聚類方法獲得隱函數(shù)中心值;
④ 通過相鄰聚類中心計算獲得核寬度;
⑤ 通過量子遺傳算法刪除冗余權(quán)重和神經(jīng)元;
⑥ 根據(jù)結(jié)果值對訓(xùn)練樣本進行訓(xùn)練,獲得蔬菜圖像識別結(jié)果,若達到預(yù)先設(shè)置的識別準確率,則進行步驟⑦,否則進行步驟②;
⑦ 獲得最優(yōu)蔬菜圖像識別模型。
輸入層、輸出層神經(jīng)元數(shù)分別為80,40,隱含層神經(jīng)元最大數(shù)目為15個, 設(shè)定目標誤差10-5,訓(xùn)練得到的輸入層至隱含層的權(quán)值為138個,閾值為25個,隱含層至輸出層的權(quán)值為90個,閾值為15個,迭代次數(shù)為300,量子遺傳編碼長度為20,最優(yōu)個體保持代數(shù)為6時算法終止。
蔬菜圖像共12種:黃瓜、胡蘿卜、大白菜、茄子、韭菜、紅辣椒、平菇、苦瓜、絲瓜、洋蔥、西紅柿、菠菜,每種至少包含50個樣本,在每類蔬菜中隨機性選取30幅圖像進行訓(xùn)練,送入訓(xùn)練程序中,提取相關(guān)特征,并以蔬菜名作為文件名稱,將特征以文件形式保存,剩余圖像作為測試數(shù)據(jù),提供給分類器進行識別操作。
算法包括NN、PNN、HCNN、CNN、WA、AFS、SVR、INN,每種算法進行50次試驗,在總樣本集中進行訓(xùn)練樣本,每次隨機獲取測試樣本,并在總樣本集中進行測試。
由圖1可知,INN算法高于其他算法的平均識別率,INN算法的形狀特征平均識別率為97.56%,相比NN、PNN、HCNN、CNN、WA、AFS、SVR分別提高了7.95%,5.65%,3.68%,2.15%,8.37%,9.74%,6.19%;紋理特征平均識別率為95.60%,相比NN、PNN、HCNN、CNN、WA、AFS、SVR分別提高了6.76%,4.80%,3.13%,1.83%,7.11%,8.28%,5.26%;顏色特征平均識別率為93.25%,相比NN、PNN、HCNN、CNN、WA、AFS、SVR分別提高了5.74%,4.08%,2.66%,1.55%,6.05%,7.04%,4.47%。由于采用量子遺傳算法優(yōu)化RBFNN神經(jīng)網(wǎng)絡(luò)參數(shù),對冗余神經(jīng)元權(quán)重進行刪除,提高了蔬菜圖像的識別準確率。
由圖2可知,洋蔥圖像平均識別率最高,菠菜圖像平均識別率最低,是因為洋蔥圖像有其自身特殊性,洋蔥圖像比較接近圓形,旋轉(zhuǎn)其圖像變化不大,菠菜由于自身紋理、顏色等易與其他青菜混淆,不便于識別。
圖1 不同算法對蔬菜圖像的平均識別率
圖2 各種蔬菜圖像平均識別率
由圖3可知,INN訓(xùn)練時間平均為5.83 s、識別時間平均為2.18 s,與其他算法相比,試驗算法消耗的時間較少。
圖3 各種算法的識別性能比較
針對基本神經(jīng)網(wǎng)絡(luò)算法在蔬菜圖像識別過程中存在識別率低的問題,提出了一種改進神經(jīng)網(wǎng)絡(luò)算法。通過優(yōu)化徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)、量子遺傳算法刪除冗余權(quán)重和神經(jīng)元,獲得最優(yōu)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),試驗仿真對12種蔬菜圖像的形狀特征、紋理特征、顏色特征平均識別率高于其他算法,說明該方法在蔬菜圖像識別中十分有效。試驗只針對常見的蔬菜圖像進行識別,后續(xù)將對外觀極度相近的蔬菜圖像進行識別。