基于改进神经网络算法的蔬菜图像识别
2020-04-13芦范
芦 范
(商丘职业技术学院,河南 商丘 476000)
蔬菜图像识别在食品生产中有着非常重要的地位[1-2],不但有利于大规模化采购,还能按识别结果进行分类,大大减少人力成本。目前,蔬菜图像识别的方法主要有人工识别[3]、神经网络算法(NN)[4]、概率神经网络方法(PNN)[5]、层次聚类神经网络算法(HCNN)[6]、卷积神经网络模型(CNN)[7]、小波分析(WA)[8]、人工鱼群算法(AFS)[9]及支持向量机回归 (SVR) 预测模型[10]。人工识别存在主观性且效率较低;NN适合自适应学习及进行非线性拟合,但网络结构、神经元的初始权值和阈值随机设定使得最终结果易陷入局部极小值;PNN实现简单,同时识别结果较好,但提取蔬菜图像维度的同时对分类器要求较高;HCNN利用层次聚类结构融合神经网络解决蔬菜识别问题,但聚类的层次数无法自适应调整,且无法避免随机性权值矩阵时的死点问题;CNN的仿生结构较优越,但实现较复杂,训练所需时间较久;WA可提取蔬菜图像的纹理特征,但存在参数优化的难题;AFS由于初始参数设定以及步长因子对算法优化效果会产生较大影响,应用受限;SVR可避免维数灾难,但参数较难选择。
试验拟采用改进神经网络(Improved Neural Network,INN)算法,对神经网络的权值、隐函数中心值、核宽度参数值进行优化求解,同时对多余的神经元通过量子遗传算法删除处理,旨在提高算法的运行速度。
1 改进神经网络
1.1 径向基函数神经网络描述
径向基函数神经网络(RBFNN)具有多层结构[11],假设第i个样本点所包含的输入向量为Xi(i=1,2,…,n),n为单元数,第j个样本点的输出向量为Yj(j=1,2,…,m),m为输出层单元个数,第j个径向基函数的中心向量为cj(j=1,2,…,nc),则RBFNN输出为:
(1)
式中:
wi0——第i个节点的阈值;
wik——隐藏层与输出节点间权重;
Yij——第i个节点的输出;
f——核函数;
nc——隐藏层节点数。
RBFNN的核函数为:
(2)
式中:
σi——核宽;
ci——隐藏层函数的中心值。
1.2 基于梯度下降方法的权重参数计算
RBFNN权重参数的训练方法采用梯度下降法[12],其迭代过程为:
a[cji(t-1)-cji(t-2)],
(3)
式中:
cji(t)——第j个隐藏层的第i个输入神经元在第t次迭代的中心分量;
wkj(t)——第k个输出神经元与第j个隐藏层在第t次迭代的权重;
η——学习率;
E——神经元评价函数。
(4)
式中:
olk——第l个输入样本的第k个输出神经元的期望输出值;
ylk——输出值。
1.3 基于增大邻域半径的均值聚类方法求取ci
(1) 网络初始化:随机选取h个训练样本,计算每个样本的密度值Di。
(5)
式中:
r——样本xi的一个邻域半径。
选取最大Dc1所对应的样本xc1作为第一个聚类中心,其聚类域为W1(xc1)。
(6)
式中:
选取最大Dc2所对应的样本xc1作为第二个聚类中心,聚类域为W2(xc2);依次进行密度值更新至Dci≤0.12Dc1。
1.4 核宽度计算
对最近l个相邻聚类中心进行计算,获得核宽度:
(7)
式中:
cj——最近l个相邻点的矩心ci。
2 量子遗传算法删除冗余权重和神经元
2.1 量子遗传算法描述
2.1.1 量子比特 量子比特可表示0,1两种状态或者叠加态[13]:
|φ〉=α|0〉+β|1〉,
(8)
式中:
α——量子比特处于0状态的概率幅;
β——量子比特处于1状态的概率幅;
|0〉、|1〉——自旋向下态、自旋向上态;
α2——量子比特处于0状态的概率;
2.1.2 染色体编码方案 量子遗传中染色体采用量子位的概率幅进行编码:
(9)
式中:
θij——量子比特的相位,取2π×rand,i=1,2,…,n,j=1,2,…,k;
n——染色体数目;
k——量子位的位数;
rand——随机数,取0~1。
由量子遗传编码规则可知,量子位分上、下两行,因此每个个体可包含两个候选解,在种群规模不变的情况下,候选解的个数比遗传算法多1倍,增加了解空间的多样性,提高了寻优成功的概率[14]。
2.2 量子遗传算法操作过程
2.2.1 神经元权重量子编码方法 对每条神经元的每个节点的权重进行0或者1二进制编码,当编码均为1时,神经元的权重有效;当编码为0时,此节点需删除,以便优化神经网络。因此,神经网络是由0和1构成的多条序列染色体,染色体长度为该神经元网络权重数之和[15]。
2.2.2 适应度函数 将隐含层数量设为1,以便精简神经网络,此时适应度函数表达式为:
(10)
式中:
Qi、Qo、Qf——分别为输入层神经元数量、输出层神经元数量、反馈抽头数量;
Ci、Co、Cf——调整系数。
2.2.3 进化规则 根据优胜劣汰的操作规则,通过轮盘赌选择演变,适应性强的个体更容易遗传给下一代,适应性较低的个体不易遗传给下一代。当在突变过程中从隐含层或输入层删除神经元时,神经元的相应权重也将被删除。
3 蔬菜图像识别过程
3.1 蔬菜图像特征提取
3.1.1 形状特征 圆形度:
(11)
式中:
Num——边界的像素点数;
x——蔬菜图像的横坐标;
y——蔬菜图像的纵坐标;
X、Y——蔬菜图像的质心坐标;
S——目标图像的面积。
C越小,蔬菜形状与圆形的差别越大。
外接最小矩形:
(12)
式中:
ω——方向角,(°);
L——外接矩形长(取αmax-αmin),cm;
W——外接矩形宽(取βmax-βmin),cm。
L/W越大越能将较细长的物体与方形或圆形物体区分开。
惯量最小的矩的轴角度为:
(13)
式中:
u1,1、u2,0、u0,2——分别为(1,1)阶、(2,0)阶、(0,2)阶中心矩。
圆形性:
(14)
式中:
L——目标图像的周长,cm;
S——目标图像的面积,cm2。
圆形性与1差异越大,则其与圆的差别越大。
3.1.2 纹理特征 纹理相关性:
(15)
式中:
S1——判定提取图像像素在某个方向上的相似程度;
p(i,j)——灰度共生矩阵中位置(i,j)处的像素灰度值;
N——灰度共生矩阵的阶数;
μx、σx——图像行x处的px(i)的均值、方差;
μy、σy——图像列y处的py(j)的均值、方差。
3.1.3 颜色特征 颜色直方图只包含蔬菜图像中某一颜色值出现的频次,未考虑颜色的空间位置信息。为了避免两幅不同图像存在相同的直方图,将各颜色通道的像素值量化至G个范围内,像素值处于第g段的个数为:ζg+ψg,ζg是颜色为第g段内一致性像素个数,ψg是颜色为第g段内不一致性像素个数,颜色一致性特征矢量H为:
H=[(ζ1+ψ1),(ζ2+ψ2),…,(ζG+ψG)]。
(16)
3.2 训练过程
将量子遗传算法用于RBFNN训练学习Ci、σi、wk,加快收敛速度,优化网络连接结构。设Ii为量子神经元的第i个输入,则输出为:
(17)
式中:
arg(u)——u的相位;
λ——偏置值;
θi——输入角度的相移;
δ——角度控制;
O——输出。
蔬菜图像识别流程为:
① 对蔬菜样本预处理,产生RBFNN的学习与测试样本;
② 通过梯度下降方法获得节点间权重;
③ 通过增大邻域半径的均值聚类方法获得隐函数中心值;
④ 通过相邻聚类中心计算获得核宽度;
⑤ 通过量子遗传算法删除冗余权重和神经元;
⑥ 根据结果值对训练样本进行训练,获得蔬菜图像识别结果,若达到预先设置的识别准确率,则进行步骤⑦,否则进行步骤②;
⑦ 获得最优蔬菜图像识别模型。
4 试验仿真
输入层、输出层神经元数分别为80,40,隐含层神经元最大数目为15个, 设定目标误差10-5,训练得到的输入层至隐含层的权值为138个,阈值为25个,隐含层至输出层的权值为90个,阈值为15个,迭代次数为300,量子遗传编码长度为20,最优个体保持代数为6时算法终止。
蔬菜图像共12种:黄瓜、胡萝卜、大白菜、茄子、韭菜、红辣椒、平菇、苦瓜、丝瓜、洋葱、西红柿、菠菜,每种至少包含50个样本,在每类蔬菜中随机性选取30幅图像进行训练,送入训练程序中,提取相关特征,并以蔬菜名作为文件名称,将特征以文件形式保存,剩余图像作为测试数据,提供给分类器进行识别操作。
4.1 识别结果
算法包括NN、PNN、HCNN、CNN、WA、AFS、SVR、INN,每种算法进行50次试验,在总样本集中进行训练样本,每次随机获取测试样本,并在总样本集中进行测试。
由图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%。由于采用量子遗传算法优化RBFNN神经网络参数,对冗余神经元权重进行删除,提高了蔬菜图像的识别准确率。
由图2可知,洋葱图像平均识别率最高,菠菜图像平均识别率最低,是因为洋葱图像有其自身特殊性,洋葱图像比较接近圆形,旋转其图像变化不大,菠菜由于自身纹理、颜色等易与其他青菜混淆,不便于识别。
图1 不同算法对蔬菜图像的平均识别率
图2 各种蔬菜图像平均识别率
4.2 处理时间分析
由图3可知,INN训练时间平均为5.83 s、识别时间平均为2.18 s,与其他算法相比,试验算法消耗的时间较少。
图3 各种算法的识别性能比较
5 结论
针对基本神经网络算法在蔬菜图像识别过程中存在识别率低的问题,提出了一种改进神经网络算法。通过优化径向基函数神经网络、量子遗传算法删除冗余权重和神经元,获得最优的神经网络结构,试验仿真对12种蔬菜图像的形状特征、纹理特征、颜色特征平均识别率高于其他算法,说明该方法在蔬菜图像识别中十分有效。试验只针对常见的蔬菜图像进行识别,后续将对外观极度相近的蔬菜图像进行识别。