基于机器视觉的八角颜色与果形识别研究
2021-11-22姚应方刘峰张海东李超周海俊王满
姚应方, 刘峰, 张海东, 李超, 周海俊, 王满
(云南农业大学机电工程学院,昆明 650201)
八角茴香,又称“八角”,八大香料之一,既是老百姓日常烹饪必不可少的调味料,也常用于食品加工领域,在药用和其他工业领域也有广泛的用途[1]。我国八角的种植面积、产量均位居世界前列,出口量更常年稳居全球首位。但近几年来,我国八角的出口量因品质不稳定而波动较大,与我国八角品质的检测技术有很大关系。八角外形复杂,颜色单一且色差小:大红八角颜色为棕红和褐红,果形特征为角瓣粗短;角花八角的颜色为褐红,果形特征为角瓣瘦长;干枝八角颜色为黑红,果形特征为壮瘦兼备。但品质检测特别是外观品质的检测仍然依靠人工或简单机械进行,准确率低、劳动强度大、效率不高,分检后的产品达不到进口国的品质要求。因此,探索新的八角外观品质检测技术、加强八角品质检测的机械化水平对稳定出口量、引导八角产业健康良性发展具有重要意义。
图像处理技术的发展和完善为农产品的无损、快速识别提供了可能。在颜色提取与识别方面,Angadi等[2]提取葡萄干颜色特征,并利用人工神经网络分类器建立分级模型,识别正确率达到95%。Mery等[3]提出了一种基于RGB颜色彩色模型分割算法分离梨。蔡建等[4]通过机器视觉的方法提取色调、饱和度、核桃仁轮廓面积与最小外接圆面积之比等特征,建立决策树模型预测核桃仁样本,正确率达到92%。Pauly等[5]用机器视觉技术提取芒果颜色特征,并利用色差对其成熟度进行判别,利用缺陷部位像素数来判定芒果品质,分级准确率达到了83.3%。王红雨等[6]提出,在HSV颜色空间中利用一种改进型局部二值模式(improved local binary pattern,I-LBP)算子来增强边缘提取效果,最后用矩形框圈出障碍物轮廓。在果形提取与识别方面,苗玉彬等[7]提出Zernike矩边缘检测的分水岭算法,将目标轮廓可以保留下来,从而避免了标记。杨静娴等[8]利用OTSU与Canny边缘检测算法相结合的方法,提高分级摘酒工艺的稳定性和准确性,易于实现分级摘酒工序的智能自动化。Mahale等[9]通过提取谷物边缘轮廓,识别了谷物的大小和形状并设定分级标准,明显提高了检验效率。Abirami等[10]运用数字摄像技术收集了大米的面积、周长、长短轴等参数,并利用BP神经网络对其进行训练,实现了对大米颗粒的分级,准确率达到了96%。王伟等[11]采用连续投影算法选择建模最优波长,建立多光谱偏最小二乘分类判别模型,鉴别了八角茴香与其伪品莽草。张桂梅等[12]提出一种新的基于局部轮廓特征的目标检测方法,该算法结合gPb算法和OTSU提取显著性轮廓,去除了目标附近的大量噪声边界,有效地提高了检测效率。但目前利用机器视觉对八角果形和颜色识别的研究较少,传统八角分选仍依靠人力,且标准不一。机器视觉技术最大的优点是能在无接触的情况下对物体进行检测,且在农业外观品质检测和工业上得到广泛应用。因此,本文结合机器视觉技术,探索一种快速、规范、准确识别八角颜色与果形的识别方法。
本研究对采集到的八角图像进行预处理,利用颜色空间的变换识别了不同颜色的八角;利用极坐标变换、余弦定理、傅里叶变换等方法提取了果形特征;通过标准差方法,识别了八角的均匀性。本研究采用机器视觉检测八角品质,可提高检测精度,避免人为误检,提高检测效率,也为后续八角研究提供参考。
1 材料与方法
1.1 试验材料
试验材料为大红、干枝、角花3个常见的八角品种,共394个,其中大红192个(外观颜色为棕色的101个、褐红色的91个),角花101个(褐红色),干枝101个(黑红色)。为了检验试验的结果,另选取同种类的八角(棕红、褐红、黑红各41个;角瓣粗短和角瓣瘦长的八角各35个)进行验证。
1.2 八角的外观品质标准
八角颜色和果形检测参照GB/T 7652—2016标准[13],不同类型的八角果形和颜色对应关系如表1所示。
表1 八角的颜色和果形标准
1.3 图像采集
1.3.1图像采集系统 本研究的图像采集系统其组成如图1所示,主要包括光箱、光源、工业相机和计算机等部分。
注:1—灯管;2—采集箱;3—工业相机;4—八角;5—数据通信线;6—计算机;7—载物台。
1.3.2系统参数设置 图像采集设备为方程科技FCID130C彩色工业像机,分辨率(像素)为1 280×1 024,将其置于光箱(规格为35 cm×25 cm×75 cm)顶部正中央。周围有光源,光源由4根白色LED荧光灯组成,功率30 W,色温为白色,平均分布在箱体的四侧。相机正下方为载物台,相机镜头与载物台上八角距离65 cm,采集图像时将八角平放在台上。图像的分析处理均通过VS2019+Opencv3.4.8实现。
1.4 图像预处理
1.4.1图像滤波 图像在采集、传输和处理时会受到光线、电流和噪音等不同因素的干扰,导致图像存在一些噪音或噪点,对特征参数的提取产生不利影响。八角颜色色差小且轮廓复杂,为了能最大程度保持八角图像的颜色和轮廓特征,使用中值滤波法[14]对图像进行处理,该方法不仅可以有效去除噪音,还能保留较为完整的八角颜色特征。
1.4.2图像灰度化与分割 采集图像,以R、G、B格式保存,分别对应红、绿、蓝的颜色信息。RGB颜色丰富,在图像处理时占用大量内存,且RGB对物体形状特征处理上并不突出。为了降低处理难度和计算时间,将原始图像灰度化(公式1)后提取形状特征。
Gray(x,y)=T[B(x,y),G(x,y),R(x,y)]
(1)
式中,Gray(x,y)表示灰度值,B(x,y)、G(x,y)、R(x,y)分别表示B、G、R不同的分量值[15]。
较为常见的灰度化方法有平均灰度法和最大值法,平均法是对B、G、R通道的平均值作为灰度值;最大值法是将原图像的B、G、R三通道中最亮的值作为灰度值;而较为准确的方法是设置不同的权重,将B、G、R分量按不同比例进行划分,比如人眼对蓝色敏感度低,对绿色较强。为了提高准确性且符合人们的感官,本文用加权平方对图像进行处理,计算公式如下。
Y=0.114B+0.587G+0.299R
(2)
灰度化后利用OTSU阈值分割法[16-17]对图像进行二值化,二值化图像轮廓边缘仍存在许多“毛刺”,为了后续处理八角的轮廓特征,同时去除一些干扰信息,选用3×3的椭圆核对图像进行处理去除毛边和毛刺[18]。
1.5 颜色特征提取
八角样本颜色有褐红、黑红和棕红三种,RGB值差别无明显差别。因此,先将分割后的八角RGB转化到HIS空间,再选用HIS空间颜色区别大颜色特征对八角颜色进行识别[19]。根据式(3)~(6)对101个黑红、褐红和棕红色八角样本RGB值进行转化。
(3)
(4)
(5)
(6)
式中,H为色调,以角度度量;S为饱和度,表示颜色与光谱色的接近程度,值越大则越接近饱和;I为强度,表示颜色的明暗程度,值越大表明越亮。
1.6 轮廓特征提取
轮廓对区分和识别一个物体与其他物体很重要,但直接提取的轮廓并不能表述出有效信息,结合八角形状的复杂性和规律性,对八角的轮廓特征进行提取。
1.6.1轮廓提取 利用OpenCV中的轮廓查找函数findcontours查找预处理后图像的轮廓,但是查找到的轮廓包含许多干扰轮廓,利用OpenCV中的Rect函数对查找到的轮廓进行“填装”,再遍历Rect的最大面积,即为八角的轮廓特征。
Findcontours轮廓查找函数是基于Satoshi-suzuki思路实现的[20-21]。其对二值图像进行拓扑分析,确定二值图像轮廓的围绕关系,即孔和轮廓的之间的层次关系。因为轮廓和原图的区域是一一对应的(轮廓对应的二值图像像素值为1的连通域,孔对应的值为0),将这些轮廓标记为cX和hX,其中c代表轮廓(contour),h代表空(hole),X代表数字。再对不同的孔和轮廓进行赋值,从而得到孔和轮廓的轮廓树,而轮廓树上的子树就是对应的不同轮廓编码。
1.6.2轮廓极坐标变换 ①圆心提取。考虑到八角的形状复杂,本文以最小内接圆法提取质心。首先,对前文中得到的八角轮廓进行Harris角点检测,再以检测出的角点为基础,用最小内接圆法找到八角的圆心(X0,Y0)和半径R,处理后的图像如图2所示。
图2 最小内接圆
②扫描坐标点。找到轮廓后对八角轮廓上的点进行逐点扫描,并存入vector
③极坐标变换。找到圆心和轮廓像素点位置后,以找到的圆心为中心点(X0,Y0),将轮廓上的点带入式(7)和(8)进行极坐标变换。
(7)
(8)
式中,xk为轮廓点上的行坐标,yk为轮廓点上的列坐标,X0最小内接圆下求得的圆心行坐标,Y0最小内接圆下求得的圆心列坐标,ρk为极坐标变换后的纵轴像素点坐标值,θk为极坐标变换后的横轴像素点坐标值。
1.7 八角角数特征提取
①极坐标错位相减。在进行轮廓识别和极坐标变换后,点与点之间存在许多间断点,由于不能直接对其进行求导,本文采用对转换后得到的极坐标的ρk进行错位相减,得到′ρ=ρk-ρk-1。
②归一化。因为错位相减后的数值大小不一,不利于数据处理,因此把′ρ方程进行归一化。IF导数方程中的点若大于等于0则将其变为1,小于0则为-1,归一化后如图3所示。
③滤波。从图3可以看出,二值化的点还有许多干扰点,但是有明显的区分端,采用记数法得到极值点。采用长度为10的区间对其进行遍历,根据需要调整长度,本文选用10。IF遍历中左右两端+1和-1的个数相差小于1~2,则判定为有极值点,并记录点的位置′ρ,处理后得到的点和变换后的极值点′ρ如图3所示。被识别出的极值点点数为八角角数的2倍,所以八角角数为极值点数的1/2。
图3 八角角数识别
1.8 八角果形特征参数提取
1.8.1余弦定理法提取八角果形参数 以角数建立角度特征作为特征参数描述果形,参数定义和果形特征提取如下。
图4 波峰波谷
图5 向量定义
(9)
1.8.2傅里叶法提取八角果形参数 八角形状复杂,直接识别八角肉瓣难度较大且不易于分析,但八角极坐标变换后的轮廓酷似周期信号。为了更好地识别八角肉瓣,将轮廓点θ(k)和ρ(k)带入式(10)进行转换[24-25]。
S(k)=θ(k)+jρ(k)
(10)
式中,θ(k)为极坐标点xk,为复数域的实数轴;ρ(k)为极坐标点yk,为复数域的虚轴;S(k)为复数域;k为轮廓点数,k=1,2,3,…,k-1。
为了数据处理方便,本文对所得的数据进行降维,通过公式(10)将二维的问题转化为一维问题,并将S(k)带入公式(11)。
(11)
在对八角进行分类或者分级过程中,对于八角的外观都有严格要求。利用标准差(σ)角瓣均匀度进行评价。
(12)
式中,N(波峰)为识别出的八角角数,μ为最小内接圆半径,xi为波峰到圆心μ的径向距离。
本文人工挑选角瓣均匀的90个八角进行计算,σ值越大,八角角瓣越不均匀,则八角的外观不好。
2 结果与分析
2.1 中值滤波结果分析
从图6可以看出,中值滤波处理消除了原始八角图像上的噪音或噪点,避免了后续的处理带来干扰。从图中也可以看到对不同颜色和果形的处理结果,图像更加平滑且边缘信息得到了保护,同时为OUST阈值分割提供了基础。
图6 八角分割图像
2.2 图像分割结果分析
灰度图像在很大程度上降低了图像需运算的数据量,同时也保留了较好的边缘信息。灰度图像是指每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗的黑色到最亮的白色的灰度,可以表示任何不同颜色的深浅。从图7可以看出,灰度图像不仅便于图像的处理,还保留了八角的果形、角数等特征。
根据二值化后的图像,对原图像中的点进行遍历得到只有八角前景的分割图[26-27],不同八角处理后的结果如图7所示。因八角果形轮廓与椭圆相似,所以通过3×3椭圆核对八角轮廓进行处理,能更好的提取八角的信息。
图7 八角分割图像
2.3 颜色识别结果分析
由前文可知,不同类型的八角在H分量下区别较为明显,如图8所示。从图中可知,若H值大于60则为褐红,35~60之间为黑红,小于35的则为棕红。
图8 各类八角颜色H分量
选取不同颜色的八角各41个,在H分量下对其进行识别,结果如图9所示。其中落在35~60的黑红八角为39个、大于60的褐红八角为40个,小于35的棕红八角为39个。由表2可知,在H分量下对黑红、褐红和棕红色的八角样本进行识别的比率分别为95.12%、97.56%、95.12%。表明八角颜色在H空间区别明显,造成部分重叠现象的原因主要是少量八角样本在存储过程中受到环境的影响而导致颜色发生变化,该方法能有效识别八角的颜色。
图9 不同八角颜色在H分量下的识别比率
表2 八角颜色特征识别结果
2.4 轮廓变换结果分析
八角轮廓变化后如图10所示,变换后的八角轮廓看上去更像一个周期函数,相比八角轮廓,变换后的八角轮廓直观且处理方便。
图10 八角极坐标变化
2.5 果数识别结果分析
对角数为8的八角进行识别,识别率如图11所示。可以看出,识别果数多的次数多于次数少的,造成这种原因是由于个别八角轮廓会出现小的波峰,从而导致误判,识别正确率为94.73%。
图11 八角角数识别
2.6 果形识别结果分析
2.6.1余弦定理法果形识别分析 对极坐标点进行向量标记计算复杂[28-29],不能直观地表述出八角的特征,因此本文将寻找到的波峰和波谷点进行反变换,得到笛卡尔坐标系并在八角轮廓上画出,如图5所示。通过对各个极值点距离的向量带入式(7)与式(8)得到夹角值φk,计算得到的夹角值和高(hk)为波峰到波谷的距离,利用点到直线的距离求出高hk,如图12所示。
图12 图像处理后果形标记特征
选取的角瓣瘦长和角瓣粗短的八角各91个,利用余弦定理法提取不同果形八角角度特征,结果如表3所示。角瓣瘦长的八角角度平均值在21°左右,平均高值为70 Pix,角度与高度比值为0.304 3;角瓣粗壮的八角角度平均值在39°左右,平均高值为51 Pix,角度与高度比值为0.764 7。
表3 八角果形特征识别值
2.6.2余弦定理法果形识别 另选取不同果形的八角各35个进行角瓣识别(表4),角瓣瘦长识别正确率为97.14%,角瓣粗短的识别正确率为94.29%。其中,检测错误主要发生在八角果数识别,由于果数在识别时要进行错位相减,而相减的过程中会出现小概率不规律的八角轮廓,从而导致误判。
表4 基于余弦定理的角瓣识别结果
2.6.3傅里叶变换法果形识别 将91个角瓣瘦长的八角和91个角瓣粗短八角统计分析和比较,如图13所示,粗短的八角角瓣和瘦长角瓣的信息在前6个频率值时区别较为明显,角瓣粗短的平均值均小于角瓣瘦长的频率值;8~11之间有明显区别,11~29之间区别略小,但角瓣粗短的平均值均都大于角瓣瘦长的频率值。
图13 频率-幅度对比
2.6.4傅里叶变换法果形识别 另选取角瓣瘦长和角瓣粗短的八角各35个进行图像预处理,轮廓识别与极坐标变换后,再进行傅里叶变换识别八角的形状。角瓣瘦长识别正确率为94.29%,角瓣粗短的识别正确率为94.29%,如表5所示。其中,检测错误主要是由于频率计算时,个别八角果形不规律,造成不同果形的八角频率相近。但对八角轮廓特征进行离散傅里叶变换简化了问题的方向,也为后续继续研究八角的人提供一定的思路和方法。
表5 基于傅里叶变换后的角瓣识别结果
2.6.5不同方法果形识别结果比较 通过余弦定理法和傅里叶变换法识别了角瓣瘦长、角瓣粗短的八角。利用余弦定理法识别的不同轮廓特征相比傅里叶法识别的特征在提取速度和精度上都能达到很好的效果,但是利用余弦定理提取的八角特征对波峰和波谷的提取要求较高,若不能得到较好的波峰和波谷,则会影响余弦定理法的结果,这也是后续研究需要解决的一个问题。利用傅里叶变换对极坐标变换后的不同轮廓的八角进行处理,其识别精度与正余弦定理法接近,但处理速度慢于后者,且处理复杂,但傅里叶变换已在很多领域都有应用,因此理论与实际结合较为容易。
2.7 八角均匀系数识别结果
将求取的八角果数半径带入标准差公式得,角瓣均匀的八角σ的像素小于60 Pix,如图14所示,相反大于60 Pix的则判为不均匀。通过均匀系数在很大程度上量化了八角的形状外观。
图14 均匀八角标准差图
3 讨论
本文通过机器视觉技术,利用颜色空间的变换提取了八角的颜色特征,利用极坐标变换、傅里叶变换方法提取了果形特征,探索了八角外观品质检测理论,可提高八角检测精度,避免人为误检,提高检测效率,也为后续八角研究提供参考。
王伟等[11]基于高光谱,以最优波长下的光谱数据建立了偏最小二乘判别模型对八角和伪品莽草进行鉴别。其方法主要鉴别八角和伪品莽草,缺乏对颜色的识别研究。本文通过H分量,有效地识别了不同颜色的八角,为八角颜色的识别提供了基础研究。李颀等[30]采用最小外接圆法对苹果上表面图像进行处理得到苹果果径,采用最小外接矩形法对苹果侧表面图像进行处理提取苹果果形特征;周文静等[14]采用圆形Hough变换识别葡萄果粒,并开发了可判别葡萄果穗成熟度的算法。本文利用了八角的轮廓特征,对提取的轮廓进行极坐标变化,再结合余弦定理、傅里叶变换和均匀系数。有效地识别了不同果形和八角均匀度,为后续图像特征提取与识别提供了经验。