殷素峰,陈洵凛
(东莞理工学院城市学院 智能制造学院,广东 东莞 523419)
随着我国经济发展战略结构的调整,农业发展逐渐开始向规模化、自动化的方向转变。水果消费随着经济的发展与人民生活水平的提高,在整个食物消费中的比重逐步上升。但水果依靠人工分级,作业效率低下,随着国家经济结构的调整,农业劳动力正在逐步减少,农业劳动力不足将会影响水果的分拣效率,而利用机器视觉技术取代传统的人工水果分级方式能有效地解决这一问题。目前国内外有关机器视觉技术的水果分级研究都是针对苹果、柑桔等大型水果,且设备还限于机械分级阶段,主要进行大小、重量的分级。由于技术投入不够,存在局限性多、不灵活、设置困难、易产生错误、无法适应现代的质量控制和统计流程控制等方面的弊端。而水果分级是在上市销售之前的一个操作环节,对水果的销售价格和种植前景有着重要的影响[1-2]。
因此,国内外学者对这一问题进行了广泛的理论研究与实践。Rizon等[3]利用随机Hough变换的方法从二值图像中识别芒果对其进行分级,Hough变换涉及到图像空间到参数空间的转换,并依据投票机制进行累积,计算耗时,无法应用于实时处理。彭红星等[4]提出了一种改进的SSD深度学习水果检测模型,实现了自然环境下多类水果的精准检测。Unay等[5]提出了通过提取苹果的几何特征,使用统计分类器训练的方式进行苹果的识别分级。庄路路[6]提出了基于SURF算法和BP神经网络的水果识别方法,该方法可对各种各样的水果进行有效的识别分类。虽然这些方法的识别率能达到很高,但对分类器的训练需要消耗较多的时间。谈文艺[7]采用了高光谱成像技术对苹果的外部损伤进行早期识别与分级。王利平等[8]提出了基于红外热波无损伤检测技术的水果分级方法,有效地提高了水果分级效率。这些方法虽然大大提高了分级效率,但却引进了红外遥感设备,增加了硬件成本。
基于此,本文提出了一种基于颜色空间的分割识别与基于BP神经网络分级相结合的水果识别分级方法,该方法事先提取成熟水果的颜色分量值作为参照值,依据该参照值在众多水果中识别出所期望的成熟水果,再结合BP神经网络进行分级,从而有效地避免了上述方法的不足。
1.1.1 成熟水果的筛选
首先,对采集到的水果样本图像进行中值滤波预处理,以消除样本图像中孤立的噪声点,同时保留图像的边缘细节,本文算法设置中值滤波的滤波模板尺寸为(5×5)像素;并对预处理后的样本图像进行通道转换,将样本图像转换成RGB三个单通道图像,以便于根据成熟水果的特有颜色特征对应于相似的单通道图像上进行颜色分割,如图1所示。
图1 样本图像转换成RGB三个单通道图像
然后,将成熟水果颜色特征对应于相似的单通道图像进行二值化,本文中实验水果的成熟颜色特征相似于R通道图像,因此二值化后以成熟水果的颜色范围灰度值作为参照值进行颜色空间分割,排除掉未成熟和过成熟的水果,筛选出成熟水果的颜色特征区域,再对其进行形态学开运算处理,以消除与成熟水果颜色特征相似的小杂物的干扰。本文算法设置开运算的内核类型为MORPH_ELLIPSE(椭圆形),且定义内核大小为(13×13)像素进行开运算操作处理。将开运算的结果图像与样本图像进行区域相交运算,从而筛选出样本图像中的成熟水果。图2为筛选出的成熟水果。
图2 筛选出的成熟水果
1.1.2 基于BP神经网络的成熟水果等级分级
典型的BP神经网络包括输入层、隐含层和输出层,各层之间通过传递函数连接,通过一定的学习算法来训练网络。
输入层:对筛选出的成熟水果进行基于BP神经网络等级分级,首先将成熟水果图像由RGB格式转换成HIS格式,由于H通道表示图像的色度信息,通过求取H通道图像中水果目标的色度均值μH和色度均方差σH,将这两个水果色彩特征参数作为神经网络的输入特征变量。
输出层:根据GB/T26906-2011,樱桃等级可分为特级、一级和二级,因此设计3个输出层节点,表示3个不同等级的樱桃。其中00代表特级,01代表一级,10代表二级。
隐含层设计与网络训练:本文选择单一隐层,隐含层神经元节点数可通过公式(1)来确定[9]:
(1)
其中:N为隐含层节点数;n为输入层维数;m为输出层维数;k为一个常数,取值[1,10]。
由本文中BP神经网络输入与输出层可知,n=2,m=3,因此由公式(1)计算可得N的取值为4~13。隐含层节点数N的具体取值可根据训练的结果来确定。 本文中BP神经网络输入层到隐含层的传递函数使用tansig函数,隐含层到输出层采用纯线性purelin函数。由于SCG算法具有相对较快的处理速度[10],因此本文采用SCG算法的训练函数trainscg对BP神经网络进行训练。实验选择60个含有特级、一级和二级三个等级的樱桃作为训练样本。训练函数的参数设置如下:迭代次数10 000,误差性能目标值为0.008。在训练集相同的情况下,改变隐含层节点数进行训练,并记录训练结果如表1所示。
表1 BP神经网络在不同隐含层节点数下的训练结果
根据表1可知,只有隐含层节点数为7、8、10时才能达到误差性能目标值,综合考虑网络的收敛速度和训练误差,当选取8个隐含层节点数时,训练网络收敛速度最快。
基于颜色空间的分割识别与BP神经网络分级相结合的水果识别分级算法流程如图3所示。
图3 水果识别分级算法流程
为了验证算法的实用性,对获取的20幅样本图像进行了实验。实验的硬件环境为:Lenovo笔记本电脑,处理器为Intel(R)Pentium(R)CPU 2.16GHz,内存为8 GB。实验的软件环境为:Visual Studio 2010和OpenCV。颜色空间分割识别成熟水果的实验结果如图4所示。
图4 颜色空间分割识别成熟水果实验结果
对20幅样本图像进行实验,分别记录其成熟樱桃的识别量及识别率见表2;并从筛选出的成熟樱桃中人工挑选出含有特级20个、一级20个和二级20个等三个等级共60个樱桃作为测试样本,按照上文方法提取色度均值和均方差输入到训练好的BP神经网络进行分级测试,记录分级结果见表3。
表2 实验测试数据
表3 分级实验测试结果
由表2的实验结果可以看出,本文所提出的基于颜色空间的分割识别与水果轮廓特征大小相结合的水果识别分级算法对成熟水果的识别率能达到93.16%。对于未能识别出的成熟水果,主要原因在于定义成熟水果的颜色特征值范围相对比较狭窄,若定义成熟水果的颜色特征值范围宽松,则识别率能达93.16%以上。而从表3的分级实验测试结果中可知,基于BP神经网络对成熟樱桃分级,特级品分级,正确率是100%,一级品与二级品分级的正确率都是90%,因此平均分级正确率为93.3%,总耗时为2.66 s。
为了对小型水果进行快速、准确的自动识别分级,本文提出了一种快速识别分级算法。算法包括对成熟水果的颜色分割以筛选出成熟水果和基于BP神经网络的成熟水果分级两个主要部分。并以小型水果樱桃为例进行了实验验证,从算法对成熟水果的识别率、分级正确率和实时性来看,本算法能满足自动化装置作业时的准确率和实时性要求。