基于机器视觉的金银花图像识别处理算法研究*
2022-04-24郑如新孙青云肖国栋
郑如新,孙青云,肖国栋
(1. 南京林业大学机械电子工程学院,南京市,210037; 2. 天津微深科技有限公司,天津市,300000)
0 引言
随着科技水平的逐渐提高,不仅要求机器视觉能够在工业上面有所应用,而且还要应用于农林业领域,对复杂背景下机器视觉的应用提出了更高的要求[1-3]。当前,利用机器视觉识别一些植物和林果已成为研究热点。由于金银花属清热解毒药中的重要药物,且在面对2020年初突发的新冠肺炎疫情方面,金银花在治疗患者方面也发挥了其重要的作用[4]。因此,金银花的需求量逐渐增加,但是,在金银花生产产业化方面,金银花的采摘工作一直是难以克服的问题,因为金银花从花蕊到开花也就短短几天的时间,而金银花的花蕊才是可以采摘下来做成中药的重要的成份,一旦开了花就失去了其意义,所以要在有限的时间内采摘尽可能多的金银花,不仅劳动强度大,而且时间也紧迫,耗时费力,将金银花种植的成本抬高了。
在进行植物采摘的过程中,首先要对图像进行预处理,提高图像质量。苏博妮等[5]对草莓进行了图像处理,添加了0.02的椒盐噪声,分别利用中值滤波、维纳滤波和均值滤波去降噪,最后发现中值滤波的效果最好。王丽丽[6]对番茄的识别定位进行了研究,通过利用Otsu算法来从背景中分割出成熟番茄,再选择番茄所在的特征区域,得到了匹配点的三维坐标,识别番茄成功率达到99%。金理钻[7]研究了黄瓜采摘机器人,对于黄瓜,采用了识别提取纹理的方法进行了特征匹配并定位,最后灰度共生矩阵能够算出14种纹理特征,由于计算量大,实际中不可取,因此也需要不断改进。张瑞华等[8]针对猕猴桃的识别,由于猕猴桃自身呈现椭圆状,所以采用了Hough变换的方法来对猕猴桃进行特征匹配。由于猕猴桃的种植背景复杂,非目标物体太多,故采用最小外接矩形法来缩小目标区域,运用椭圆形拟合猕猴桃果实的处理面积,同时也提高运行效率。然而在针对金银花的识别采摘技术还停留在人工操作阶段,缺少对金银花识别的研究,无法达到自动化程度[9],因此本文将着手对金银花的识别进行研究。通过机器视觉的基础,研究了金银花的识别。首先利用了图像预处理的方法对金银花图像金银处理,再利用颜色空间模型的方法结合形态学运算对金银花进行阈值分割操作,成功将金银花从背景中分割出来。之后利用边缘检测Canny算法金银花进行检测,再对传统的Canny算法进行改进,将改进后的Canny算法运用到金银花的检测中,最后进行试验对比。
1 试验条件
试验硬件设施:大恒水晶系列相机(型号为MER—500—7UC),其分辨率为2 592 dpi×1 944 dpi,帧率为14 fps,像元尺寸为2.2 μm×2.2 μm,与镜头的接口为C接口。同时搭载了型号为gx—0816,焦距为8 mm的光学镜头,工作距离在300 mm左右,一台内存为8 G并且装配有Windows操作系统与HALCON软件的工业计算机,相机是通过USB2.0标准接口与计算机相连接并实时采集图像。将采集到的图像通过USB2.0传输到计算机上面,开始对图像进行处理操作,图像处理系统为HALCON,如图1(a)所示,同时采集的金银花实物图如图1(b)所示。由于试验条件有限,将金银花移植在实验室中进行试验,针对简单背景下的金银花识别研究,流程图如图2所示。
(a) 金银花图片采集实际环境 (b) 金银花采集图片图1 金银花采集设备Fig. 1 Honeysuckle collection equipment
图2 流程图Fig. 2 Flow chart
2 图像颜色分割方法
通过相机采集金银花图片,使用HALCON图像处理软件进行读取,在得到彩色图片之后,将图片转到RGB模型空间中,之后再将图片转到HSV颜色空间中与RGB模型空间进行对比,找出金银花与背景分离效果最好的颜色分量,通过阈值分割将金银花从背景中分割出来,再运用形态学处理方法对金银花进一步处理。
2.1 图像滤波算法
本文采用的是中值滤波算法来对图像进行杂点和噪音的消除。中值滤波算法是以像素为中心,取一个指定形状的领域作为滤波器。然后将该区域内的像素灰度值进行排序,以排序结果的中间值作为灰度计算结果赋值给该区域内的像素。具体数学表达式如式(1)所示。
Y(i,j)=median(X(i,j))
(1)
式中:X(i,j)——输入图像的灰度值;
Y(i,j)——输出图像的灰度值;
median函数——返回该窗口总像素值的平均值。
对原图像进行中值滤波处理,如图3所示。
图3 中值滤波处理Fig. 3 Median filtering processing
2.2 颜色空间模型
RGB[10]是最为熟悉的一种表示颜色的方式。彩色图像的每个像素拥有3个通道,各8位,分别表示红色、绿色、蓝色3个分量,各自的取值范围都为0~255。因此,任意颜色F都可以由三种基本色不同程度的混合而成,即
F=r(R)+g(G)+b(B)
(2)
式中:R——红色分量;
G——绿色分量;
B——蓝色分量。
该颜色模型空间对颜色的表达较为准确,因为没有进过其他色彩空间的转换,图像信息几乎没有丢失。具体的模型图如图4所示。
图片预处理过后再通过RGB颜色空间模型对图像进行处理,结果如图5所示。
图4 RGB颜色空间模型Fig. 4 RGB color space model
(a) R分量 (b) G分量
(c) B分量图5 RGB分割图Fig. 5 RGB partition diagram
HSV[11]颜色空间模型为六角锥体模型,其中模型参数:色调(H)、饱和度(S)、纯度(V)。其中色调H为色彩信息,其取值范围为0~360°。具体的模型图如图6所示。
图6 HSV颜色空间模型Fig. 6 HSV color space model
该模型沿水平轴测量饱和度,100就代表颜色饱和。取值范围为0.0~0.1,值越大越饱和。明度V表示颜色明亮的程度,通常取值范围为0%(黑)~100%(白),在模型中,V是从圆锥底部的0变化到顶部的1,表示的是所选色彩与该色彩最大明度的比率。其中H分量的计算公式如式(3)所示。
(3)
接着再对预处理后的图片进行HSV颜色空间处理,比较RGB空间模型与HSV中的分量,得出最容易从背景中分割出金银花的分量,如图7所示。
(a) H分量 (b) S分量
(c) V分量图7 HSV分割图Fig. 7 HSV segmentation diagram
通过比较可以看出,在6个分量中,可以看出分量B与背景和金银花的枝叶、枝干区分较为明显。
3 识别算法研究
通过第2节可以知道,B分量区分效果最佳。因此可以对B分量进行阈值分割,通过阈值分割来将金银花识别出来。阈值分割是一种按图像像素灰度幅度进行分割的方法,把图像的灰度分成不同等级,然后设置灰度门限(阈值)的方法确定目标区域或边界,阈值法也是一种简单有效的图像分割方法[12-14]。本文采用根据直方图谷底确定阈值法来将图像从背景中分割开来,达到提取目标的目的。按下式进行二值化,就可将目标有效的提取出来,具体计算公式如式(4)所示。
(4)
式中:g(x)——阈值运算后的二值图像;
f(x,y)——原始灰度图像的二元函数;
T——分割阈值。
按照上述阈值分割方法在拍摄的图像中将工件与背景分割开来如图8所示。
(a) 金银花图像分割图
(b) 金银花图像灰度直方图图8 金银花提取Fig. 8 Honeysuckle extract
在HALCON中调用算子threshold,并设定阈值在109~255,在这范围之内的像素都会被选中,这样就可以将金银花成功地从背景中分割开来。
4 形态学运算
在对金银花进行阈值分割之后,往往其目标的完整性不能达到理想状态,因此需要利用形态学运算,使目标变得更为完整。
腐蚀与膨胀是形态学的基础,在图像处理过程之中,往往需要将腐蚀与膨胀相结合起来运用对图像进行处理[15]。腐蚀与膨胀都是属于一次运算,而一次运算往往不能达到令人满意的图像处理效果,所以就需要涉及开运算和闭运算的二次运算,所谓的开运算就是先腐蚀后膨胀,减少图像像素,闭运算就是先膨胀后腐蚀,增加图像像素。
集合A被结构元素B作开运算,记为A∘B,其定义如式(5)所示。
A∘B=(AΘB)⊕B
(5)
集合A被结构元素B作闭运算,记为A•B,其定义如式(6)所示。
A•B=(A⊕B)ΘB
(6)
对金银花图像进行阈值分割后,由于非目标信息也被分割出一部分,因此只需对其进行闭运算将其去除即可,闭运算结果如图9所示。
图9 金银花闭运算效果图Fig. 9 Effect picture of honeysuckle closed operation
5 图像边缘分割方法
提取金银花目标,由于通过阈值分割法会识别连通区域,导致识别出的目标物体误差稍大。因此还可以通过提取边缘的方式来获得目标。在图像处理中,边缘信息也是重要的图像特征信息,一般是使用Canny算法对图像的边缘进行提取。
5.1 Canny算法基本原理
Canny算法首先使用二维高斯平滑滤波对图像进行去噪处理,其表达式如式(7)所示。
(7)
式中:σ——高斯标准差,控制着平滑去噪的程度;
G(i,j)——像素点(i,j)的灰度值。
在通过平滑滤波处理后,需要计算图像梯度值,往往是利用求偏导数的方法,采用2×2邻域一阶偏导的有限差分来计算数据阵列(x,y)平滑后的梯度幅值和梯度方向。点(i,j)处两个方向的偏导数Gx(i,j)和Gy(i,j)分别表示如式(8)和式(9)所示。
Gx(i,j)=[I(i,j+1)-I(i,j)+I(i+1,j+1)-I(i+1,j)]/2
(8)
式中:I(i,j)——卷积运算滤波后的图像。
Gy(i,j)=[I(i,j)-I(i+1,j)+I(i,j+1)-I(i+1,j+1)]/2
(9)
其中,梯度方向和梯度值计算如式(10)和式(11)所示。
(10)
(11)
5.2 Canny算法的改进
在Canny算法的高斯平滑滤波中,由于高斯标准差σ是随机选取的,导致图像平滑滤波效果不理想,噪点去除不充分,存在一些检测上的缺陷。因此,针对此缺陷,提出了一种使用自适应高斯—中值滤波算法代替传统的高斯平滑滤波算法,主要为了解决标准差σ随机选取的问题[15-19]。具体算法步骤如下。
1) 首先定义G(x,y)为像素点(x,y)的图像灰度值大小,并对图像进行中值滤波处理。
2) 在对图像进行中值滤波后,再进行自适应高斯滤波处理,先利用二维高斯滤波函数生成高斯核,公式如式(12)所示。
(12)
式中:k——高斯核半径。
可根据方差大小求得高斯标准差σ,方差大小的计算如式(13)所示。
(13)
式中:Si,j——中心点(i,j)的卷积窗口。
由式(9)和式(10)可得到式(14)。由于方差是一个常数量,所以W(i,j)和G(i,j)是一个反比例关系。对W(i,j)取不同数值,反复迭代,从而形成一种自适应高斯滤波。
(14)
通过HALCON软件来实现目标边缘信息的提取,如图10所示。
(a) 改进的Canny算法 (b) 经典Canny算法图10 金银花边缘检测结果Fig. 10 Edge detection results of honeysuckle
可以看出,经典Canny算法在使用的过程中会标记出对目标物理无用的轮廓,而有用的轮廓中边缘杂线较多,无法做到对目标的正确识别。
6 试验验证
此次识别主要是针对金银花而言,而非金银花部分,如树枝、树叶、背景等等则需要过滤掉。因此本文通过试验来验证上述算法的实用性。试验结果图如图11所示,图11(a)在阈值分割下智能识别出4朵金银花;图11(b)在传统Canny算法程序下识别出4朵金银花,存在许多杂乱线条,导致结果不理想;图11(c)在改进的Canny算法下,识别出了6朵金银花,且效果较好。最后通过选取8株金银花,每株上存在6朵金银花,试验结果如表1所示。
(a) 阈值分割 (b) 传统Canny算法
(c) 改进的Canny算法图11 试验结果Fig. 11 Experimental results
表1 算法识别结果Tab. 1 Algorithm recognition results
对于阈值分割法识别率为79.17%,传统Canny算法识别率为66.67%,改进Canny算法识别率为93.75%,对于阈值分割法,由于光线和颜色的原因所以导致识别率不高,而传统的Canny算法会使得识别出的边缘较多,线条砸乱,不能够完全识别出目标。对于改进过后的Canny算法可以看出,识别率明显增加。
7 结论
本文研究了基于图像处理技术的金银花识别方法,通过阈值分割和边缘检测方法对金银花进行了识别研究。包括颜色阈值分割和边缘检测两种方法,可以看出,在颜色空间试验模型中,B分量可以很好地将金银花从背景中分割开来,达到识别效果,但是由于阈值分割法会识别连通区域,导致识别结果出现误差,因此又采用了经典的Canny算法试验来对金银花进行识别研究,之后又通过改进Canny算法,进一步对金银花进行识别试验。最后对于阈值分割法试验的识别率为79.17%,传统Canny算法试验的识别率为66.67%,改进Canny算法识别率为93.75%,最终改进的Canny算法相对于前两种方法,效果较好,同时也增加了Canny算法的实用性。