蔡 建, 周 军, 史建新, 王 勇, 郭 政, 刘 航
(1.新疆农业大学机械交通学院,新疆乌鲁木齐 830052; 2.新疆维吾尔自治区农牧业机械产品质量监督管理站,新疆乌鲁木齐 830000)
核桃仁营养丰富,含有大量的磷脂、蛋白质和维生素,油脂含量高达60%以上,具有很高的经济价值和营养价值[1]。核桃成熟后由采摘到储藏,中间一般要经过脱青皮、漂洗、干燥等工序,每道工序都可能影响核桃的质量,并且由于其较高的油脂含量,在贮藏期间常发生霉烂、虫害和变质现象。同时,由于核桃破壳技术尚不成熟,核桃运用机械方式(破壳)取仁时也容易造成核桃仁碎裂。市面上一般鉴别核桃仁的品质主要以观察为主,仁衣色泽以黄白为上,暗黄为次,褐黄更次,而泛油、色黑褐的已严重变质,不能食用。LY/T 1992—2010《中华人民共和国林业行业标准》中对核桃仁的外观主要是从颜色和完整度上划分质量等级[2]。随着计算机技术的快速发展,在产品自动检测技术上应用机器视觉的研究越来越广泛。可见光范围类的机器视觉可以代替肉眼,并模拟人的大脑完成产品的检测分级。与人工检测相比,机器视觉检测技术具有效率高、精度高、工作稳定等优点[3-4]。
近年来,机器视觉在农产品检测上的发展十分迅速,极大地促进了农产品的标准化与商品化。在国内,冯斌利用计算机视觉建立神经网络模型对水果大小、形状、颜色等进行分级,平均正确率达到95.2%[5];庞江伟对脐橙表面缺陷裂果、腐烂、病斑等进行特征提取,建立决策树模型进行分级,5种缺陷的分类准确率都在80%以上[6];Yang对苹果的果梗、花萼与缺陷进行识别,建立多层神经网络模型,识别准确率达95%以上[7]。Bennedsen等对水果在不同角度采集4幅图像,并用贝叶斯判别分析方法对每类水果进行决策,对水果大小的检测精度达93%以上[8]。
目前,核桃仁外观的分级主要依靠人工目测法来实现,费时费力,采用机器进行核桃仁自动分级刻不容缓,本研究通过机器视觉的方法从图像获取、图像处理、图像分割、特征提取到决策树模型的建立,代替人工检测对核桃仁的颜色及完整度进行分级。
基于机器视觉的自动分级技术涉及图像获取、图像处理、模式识别等多方面的内容,合适的硬件与综合性的软件平台是必要的。
硬件上,采用中国大恒(集团)有限公司开发的MER-030-120U彩色相机,其集成了I/O接口,不需要额外使用图像采集卡,提供了免费的软件开发工具包(software development kit,简称SDK),方便二次开发。光源采用白色发光二极管(light emitting diode,简称LED)条形光源,色温为 6 600 K,寿命可达50 000 h以上。
软件上,作为目前最流行的Windows平台应用程序的集成开发环境,Microsoft Visual Studio(简称VS)可以帮助开发人员迅速创建先进的软件。在图像处理方面,开源的计算机视觉库OpenCV提供的视觉处理算法非常丰富,其优化的C代码在图像的实时处理上具有较大优势。本研究采用VS 2010以及OpenCV 2.4.9完成图像处理、特征提取、分级建模等工作。
结合核桃仁的人工分级方法,从颜色与完整度上确定本次研究对核桃仁的等级划分(表1)。相机采集核桃仁图像分级流程如图1所示。
表1 核桃仁等级划分情况
相机获取的单幅图像中存在背景以及核桃仁前景(感兴趣的目标),须将核桃仁图像从原图中分割出来处理,背景颜色的选择往往决定分割效果的好坏,通常选择与分割目标颜色差距较大的颜色作为背景。不同等级核桃仁的颜色范围较宽,难以直接通过固定阈值的方法分割图像,通过分析不同等级核桃仁图片的RGB(red,green,blue) 三通道图像颜色分布发现,各等级核桃仁图像的B分量值均较小,R分量值较大,所以选取蓝色作为背景色。
中值滤波是一种减少边缘模糊的非线性平滑方法[9],采用3×3掩膜的中值滤波可以在滤除噪声的同时较好的保护信号边缘。经多次试验,对单幅彩色图像可以作B通道与R通道的减法获得单通道图像来增加背景与目标图像的差异,有利于图像固定阈值的分割[10]。
理想状态情况下,对于蓝色背景,每个像素的蓝色通道值为255,红色通道值为0;对于前景,由于各等级核桃仁图像R分量大于B分量,则作图像通道减法有:
图像经通道减法运算后可以看到前景与背景达到较大差异,此时对图像采用固定阈值的二值化可以达到较好的效果,图像形态学闭运算用来消除纯粹由噪声引起的部分,开运算用来连接邻近的区域[11],二者可提高图像分割的鲁棒性。图片中可能出现位于边界处不完整的核桃仁轮廓,此时需要去除边界处的轮廓。边界去除后可以得到效果较好的二值图像,以此为掩膜在原图中完成背景的去除。最后通过最小外接矩形的方法将原图中各个核桃仁分割成多幅核桃仁图片进行特征提取并分级。对分割出来的仅含单个核桃仁的图像,在下面的特征提取中全部采用掩膜处理,即仅处理核桃仁区域。图像处理过程及效果如图2所示。
相机拍摄的数字图像使用RGB颜色空间表达,但RGB空间结构并不符合人们对颜色相似性的主观判断,本研究将RGB空间转换为符合人眼对颜色主观认识的HSV(hue,saturation,value)颜色空间[12],即用色调、饱和度、亮度表示颜色(图3),并在HSV颜色空间进行颜色特征提取。
给定RGB颜色空间的值(r,g,b),其中r,g,b∈[0,255],设m=max(r,g,b),n=min(r,g,b),其转换到HSV空间的h、s、v值算法为:
v=m/255;
if(h<0)h=h+360。
这里h∈[0,360],s∈[0,1],v∈[0,1]
OpenCV中使用颜色空间转换函数cvtColor()可以实现RGB到HSV的转换。图像颜色特征提取主要有颜色直方图、颜色矩、颜色集等方法。颜色直方图描述不同色彩在图像中所占的比例,具有图像缩放不变性、旋转不变性等优点。颜色的低阶矩能够表达图像的颜色分布。
由图3可知,色调分布在0°~360°的圆上。将色调等间隔量化为180等份,分别取淡黄色仁、淡琥珀色仁以及深色仁各10个,作色调直方图。由图4可以看出,各等级核桃仁的色调主要分布在0~30范围内,即红色到黄色(0°~60°)的范围,本研究首先提取0~30共31个色调频率作为色调特征,然后分别计算饱和度和明度的一、二阶矩,作为图像的饱和度与明度特征, 组成与颜色有关的35个特征,通过OpenCV决策树建模并计算特征的重要性,选取重要的颜色特征用于决策树分级模型的建立。图像颜色直方图使用函数calcHist()计算,饱和度与明度一、二阶矩使用函数meanStdDev()计算。
通过分析不同完整度核桃仁的特点,可以选取2个特征表征核桃仁完整度的差异,分别是核桃仁轮廓面积与其最小外接圆面积的比值以及轮廓最小外接矩形长宽比。
由图5可知,核桃仁轮廓最小外接矩形长宽比为:
K1=w/l。
其中,轮廓最小外接矩形由OpenCV中minAreaRec()函数求得。核桃仁轮廓面积与其最小外接圆轮廓面积之比为:
K2=S/(πr2)。
其中,核桃仁轮廓面积(S)由轮廓面积函数contoursArea()计算,最小外接圆由函数minEnclosingCircle()求得。
分别对10个四分仁和二分仁的这2种形状特征的K1、K2作散点图。由图6和图7可以看出,这2个特征值可以比较容易的区分这2种不同的完整度。
OpenCV决策树使用分类回归树(classification and regression tree,简称CART)算法实现是一种二分递归分割技术,生成的决策树是结构简洁的二叉树。CART算法采用基尼不纯度(GiNi impurity)来构建决策树,基尼不纯度表示一个随机选中的样本在子集中被错分的可能性,一个树节点的基尼不纯度定义为:
式中:C表示样本总类别;Pi表示属于第i类的概率。决策树搜寻整个特征向量,计算样本中每个特征各个取值(连续型特征为取值范围)的基尼不纯度,找到使基尼不纯度最小特征的取值或取值范围作为非叶节点的分裂标准,此过程在子节点上重复进行,直到不可再分成为叶节点为止,从而构建决策树。
用以上提取的35个颜色特征与2个形状特征组成的37维特征向量作为输入量,使用OpenCV决策树类CvDtree建立决策树模型来预测未知样本。建立决策树模型的步骤如下:
(1)取白头路、白二路、浅头路、浅二路及深色仁(等外)各50个样本,共计250个样本,对每个样本提取以上37个特征组成特征向量,组成250行37列特征数据的矩阵。
(2)人工分级并赋予数字表示,组成250行1列的标签数据矩阵(与特征数据一一对应)。
(3)设置OpenCV决策树参数,通过类CvDTreeParams的初始化决策树参数,设置决策树最大深度为4,树节点持续分裂的最小样本数量为4,可能取值的聚类上限为15,并设置获取变量重要性与剪枝(防止过拟合)。
(4)将特征数据矩阵与标签数据矩阵作为决策树类的训练函CvDtree::train()的输入参数训练模型。
(5)使用CvDtree::getVarImportance()函数计算特征的重要性,去除重要性较小或为0的特征,留下重要性较高的3个特征:4(6°~7°)和16(30°~31°)等2个色调区间的像素频率以及轮廓面积与其最小外接圆轮廓面积之比,用留下的3个特征重新训练模型并保存到本地。
模型建立后,每个等级分别取30个样本,调用预测函数CvDtree::predict()->value进行等级预测,与人工分级结果进行对比,测试模型自动分级的正确率。预测效果如表2所示。
表2 决策树模型自动分级与人工分级对照
从核桃仁图像自动分割效果来看,将含多个核桃仁的图像分割为单幅核桃仁图像算法简单、效果较好,可应用于核桃仁动态分级检测中。
从模型计算的特征重要性来看,影响颜色等级的特征主要是色调范围为4(6°~7°)和16(30°~31°)区间像素对应的色调频率,其饱和度与明度对分级影响较小。
采用OpenCV决策树类建立决策树模型并用于核桃仁的自动分级,5个等级总的正确率为92.00%,分级效果较好,可用于核桃仁在线检测分级中。
参考文献:
[1]马文强,张漫,李忠新. 基于近红外光谱的核桃仁品种快速分类方法[J]. 农业机械学报,2015,46(增刊1):128-133.
[2]中华人民共和国林业行业标准:LY/T1992—2010[S]. 北京:中国标准出版社.
[3]黎萍,朱军燕,刘燕德,等. 机器视觉在农产品检测与分级中的应用与展望[J]. 江西农业大学学报,2005,27(5):796-800.
[4]童钊,廖桂平,李锦卫,等. 机器视觉技术在农产品检测中的应用研究[J]. 农业网络信息,2008(11):18-21.
[5]冯斌. 计算机视觉信息处理方法与水果分级检测技术研究[D]. 北京:中国农业大学,2002.
[6]庞江伟. 基于计算机视觉的脐橙表面常见缺陷种类识别的研究[D]. 杭州:浙江大学,2006.
[7]Yang T. Method and apparatus for sorting objects by color including stable color transformation:5533628[P]. United States,1996.
[8]Bennedsen B S,Peterson D L. Indentification of apple stem and calyx using unsupervised feature extraction[J]. Transactions of the ASAE, 2004,47(3):889-894
[9]Sonka M, Hlavac V,Boyle R.图像处理、分析与机器视觉[M]. 3版. 北京:清华大学出版社,2011.
[10]Bradski G, Kaehler A. 学习OpenCV (中文版)[M]. 北京:清华大学出版社,2009.
[11]余文勇,石绘. 机器视觉自动检测技术[M]. 北京:化学工业出版社,2013.
[12]巩艳华,朱爱红,代凌云. 基于颜色直方图的颜色特征提取[J]. 福建电脑,2007(5):96-97.