APP下载

基于机器视觉的枸杞枝条识别方法研究

2018-09-19田志超刘玉萍朱学岩

计算机测量与控制 2018年9期
关键词:质心轮廓枸杞

田志超,刘玉萍,李 娟,朱学岩

(1.青岛农业大学机电工程学院,山东青岛 266109;2.青岛农业大学校医院,山东青岛 266109)

0 引言

枸杞有着极高的药用和食用价值,深受大众的喜爱。枸杞皮薄易损,外形小、数量多并且生长密集,使得枸杞的采摘成为整个生产过程中最费时费力的环节。近年来,人工采摘的效率低、成本高以及劳动力不足等问题越来越凸显出来,种植者对自动化作业的需求越来越迫切。因此,研究枸杞果实、枝条的机器识别方法并实现自动化采迫在眉睫。

目前机器视觉已被广泛应用于国防工业、医疗科技[1]、水下图像识别[23]、尺寸测量[4]以及果蔬识别与分类[57]等领域。然而在枸杞的识别与采摘领域相关研究较少,目前已有的成果多是针对外部缺陷的检测以及产地的识别研究等,例如,文[7]通过提取枸杞的大小、形状、色泽等信息实现了枸杞的无损检测与分级;文[8]提出一种基于形态学边缘检测的枸杞外部缺陷识别方法;文[9]基于机器视觉对枸杞产地进行了识别研究等等。此外,对枝条的识别研究也非常少见,现有研究的识别目标一般是具有较高硬度的枝条,例如,文[10]采用半阈值分割以及边缘检测的方法识别出树干图像,提出一种可以分割复杂背景下树干图像的方法,初步实现了树干图像的计算机自动识别;文[11]等通过亮度转换和阈值分割完成枇杷枝条框架的提取。以我们的知识,目前还没有见到针对较软枝条进行枝条识别的报道,更没有见到针对枸杞采摘进行枸杞枝条识别研究的报道。本文旨在此方面进行尝试,目的是为了定位枝条的首端坐标,从而实枸杞的机械采摘。

1 图像采集与总体流程

1.1 图像样本的采集

本文使用佳能Powershot SX60 HS数码相机进行图像采集,采集地为青海省海西州都兰县的枸杞种植基地,图像的类型为jpeg格式,为了便于处理,将图像的分辨率设为640*480,硬件设备为联想电脑win10系统,基于OpenCV 2.4.9视觉库在Visual Studio2010开发环境上对采集的图像进行调试和处理。

1.2 方法设计

为了达到枝条可识别的目的,本研究针对枝条受遮挡情况的不同采取不同的处理方式,识别整体流程如图1所示。

图1 整体流程图

2 模型的选取与特征分析

2.1 颜色模型的选取

颜色处理模型种类也很多,目前常用的颜色模型主要包括 RGB[12-13]、YCbCr[14]、HIS[15]、HSV[16]、Lab[17]等 模型。为了增强目标与背景之间的颜色特征差异,目前多数研究方法都是使用某个颜色模型各颜色分量的组合 (多为线性组合)作为颜色特征进行图像分割等处理,根据不同的情况选用不同的颜色分量和不同的组合方式。通过分析、调试和综合对比,本文最终选用了相对简单且可行性较强的RGB颜色模型来对枸杞枝条图像进行处理。

2.2 图像特征分析

选取的枸杞树原始图像如图2(a)所示。为了改善由于光照强度和遮挡等所造成的亮、暗程度分布不均的问题,增强局部逆光条件下图像的亮度而不会对整体亮度有所影响,本文采用直方图均衡化进行图像增强。增强前后效果如图2所示。

图2(b)和图2(c)两个直方图的横坐标为灰度级,纵坐标为像素数目。由图2可以看出,均衡化后直方图的分布更加均匀,增强了整个图像的对比度,降低了顺光逆光条件下亮度对图像分割的影响。

为了分析枸杞图像中各部分颜色特征,寻找适当的区分关系更好的进行图像分割,需要对图片中涉及到的果实、枝条、树叶等各部分的颜色特征进行获取和分析,各颜色分量的强度值如表1所示。

图2 直方图分析

表1 RGB各分量的强度值

通过表1的数据可知,果实的R通道值最大,B通道值最小,明显区别于其它背景,可以很容易的将果实分割。而其它部分背景,则很难通过初始的颜色空间分量进行图像分割,此时可以将多个颜色分量进行组合 (加权或者和差运算)以增强待提取的目标与背景之间的特征差异,以找到合适的区分点进而实现图像分割。由于外界环境和选择的对象不同,使用组合的方式也大不相同,本文的图像主要涉及到枸杞果实、枝条、树叶、天空等,通过分析表1数据,我们可以得出以下结论:

(1)枸杞枝条的图像特征大部分满足R-G>0,可以作为分离枝条与背景的标准之一。

(2)枸杞果实图像特征满足R远大于G与B通道的值。可以通过R-B,2R-G-B,R-G等对图像进行阈值分割来获取果实轮廓。

(3)树叶颜色特征为G分量大于R和B分量,利用2G-R-B进行分割。

对以上公式中出现的R-G、R-B以及2R-G-B3种组合方式的色差值进行详细分析,如表2所示。

表2 RGB各分量组合的测定数据

由表2的数据可以看出,在R-G色差下天空、树叶和白云都是负值,而枝条和果实为正值,并且枝条和果实的色差值相差很大,可以很好的将背景与目标分割开来;R-B色差下枝条和树叶区分不是很明显,且因为光照强度的影响导致暗处颜色不明显的枝条无法识别出;2R-G-B色差下的识别效果则跟R-G色差下的分离数据特征基本类似,在此不在赘述。

图1为盘拉铜管在加热温度为460℃时,保温时间分别为30 ~ 45min条件下退火铜管的显微组织形貌。

3 枸杞枝条的提取与修复

3.1 去果实处理

枝条识别过程中,密集生长的枸杞果实会影响对枝条的识别效果,可以考虑先对果实进行提取和去除。同时,提取果实也利于后续对枝条的识别与定位。因此,对果实的识别与提取是不可或缺的一步,通过比较上文的几种分割方式,本设计最终选取计算相对简单并且操作容易实现的R-G方式来完成对果实的提取和去除。果实提取和消除的效果分别如图3(a)和3(b)所示。

图3 去果实过程

3.2 图像分割

对输入图像到输出图像K进行如下变换,即进行阈值分割:

通过对不同颜色空间提取并分析所得数据发现,目标和背景所对应的分量像素值在图像中的不同区域是不一样的,因此只使用单个阈值很难将目标与背景分开。这时可以对不同区域采用不同的阈值来进行分割,从而达到更好的分割效果。通过对RGB、HIS、YCrCb3种不用颜色空间下的枸杞枝条进行提取,虽然HSI和YCrCb方式都能检测出枝条的轮廓,但是图像中依然夹杂着树叶、天空、白云等大量噪声。此外。HSI方式明显噪声比较多,而另外两种方式在去除噪声方面明显突出。经反复实验发现,将Cb分量提取出来进行直方图均衡化后与其它两个分量合并,转回RGB颜色空间,再对RGB空间的组合通道进行阈值分割效果最好。经过实验比对,最终采用R-G>25或R-G<-4进行阈值分割,通过膨胀、腐蚀运算,能够去除部分树叶、天空等背景噪声;对于仍有未完全分离的部分果实的边缘轮廓和细小的外界噪声,可以通过中值滤波和形态学处理来进一步对图像进行优化,效果如图4所示。

3.3 枝条修复和拟合

自然条件下生长的枸杞总会有许多枝条受到果实和树叶的遮挡,会导致获取图像中的枝条出现间断。机械手对枸杞果实的采摘主要是通过定位枝条轮廓的首端坐标来进行抓取采摘的,遮挡所带来的间断会将图像中同一根枝条轮廓分成若干,这样以来每一个轮廓都会对应一个首端坐标,采摘时机械手就可能会对同一根枝条进行重复采摘。对枝条的非合理性间断进行修复可以很好地解决这个问题,提高采摘的效率。

在修复前需要尽可能多的去除干扰,尤其是图像中的小面积区域,去除小面积轮廓区域后的结果如图5所示。

图5 去除小面积轮廓

图6 霍夫线变换修复枝条

本设计采用累计概率霍夫变换来实现对间断枝条的修复。累计概率霍夫变换是对边缘点进行概率性的选取,执行效率高,通过定义最小直线的长度和两线段之间最大间隙的距离,跟设定阈值进行比较来判定是否是一条直线并进行连接,从而获得相对完整的枝条。

下面将枝条的检测与修复分为以下两种情况:

(1)单根枝条之间存在着间断,如图5,这种情况最好的修复方法之一就是通过霍夫线变换来实现同一枝条上间断的连接,修复结果图如图6所示.

枸杞枝条的拟合可以分为直线拟合和曲线拟合两种方式。最小二乘法直线拟合是通过提取所有果实的质心坐标,根据拟合公式求出斜率和截距,进而求出直线方程,然后通过画线函数将此直线画出。Open CV中的line函数是通过两个坐标点来进行画线的,用直线方程将直线的顶点坐标表示出来,两端分别与所求平方和的均值坐标进行相连即可定位出此处的首端枝条。

直线拟合的公式如下:

其中:y:所有果实质心纵坐标的平均值;x:所有果实质心横坐标的平均值;k:拟合直线的斜率;n:果实的个数;b:拟合直线截距。

直线拟合的结果如图8所示。由图可以看出,拟合出的线条与原枝条位置基本吻合。

图7 枝条首端完全遮挡

图8 直线拟合

图9 曲线拟合

此外,最小二乘法多项式曲线拟合是常见的曲线拟合方法,在实际生活中有着广泛的应用。根据给定的m个点,并不要求这条曲线精确地经过这些点,而是要求曲线y=f(x)的近似曲线y=φ(x)。按偏差平方和最小的原则选取拟合曲线,并且采取二项式方程为拟合曲线,拟合结果如图9所示。

3.4 枝条首端坐标和直径的获取

要想实现对果实的精准采摘,就需要提取出枝条的首端坐标以及长度,这样采摘时机械手前进的距离就可以确定。本文提出一种质心差值法来获取枸杞枝条的首端坐标,现将处理过程分为三步:1)将修复后的枝条轮廓进行提取,通过计算力矩来获取各枝条的质心坐标;2)遍历所有枝条的轮廓并对其面积进行比较,一般情况下面积最大的为枝干,提取枝干的质心坐标;3)以枝干质心坐标为中心点,计算每根枝条质心与枝干质心的横坐标之差,若差值为负值,则此枝条轮廓最左侧边缘坐标为枝条的首端坐标,若差值为正值,则此枝条轮廓最右侧边缘坐标为枝条的首端坐标。对于比较极端枝条,如正好跟枝干质心的横坐标重合,可以先不采取处理,在多角度识别采摘的过程中这种极端情况的问题就迎刃而解了。实际上采摘枸杞果实时不可能仅对一个平面进行识别就能将整棵枸杞树全部识别、采摘完,而是需要从多个角度来采集图像进行识别采摘。

对于枝条直径的测量,调用Open CV库中的contour Area()和arch Length()函数,可分别计算出各个轮廓的面积和周长。因为平面中将弯曲的枝条进行拉伸形状近似于矩形,而矩形的宽度即可认为是枝条截面的直径。因此,设S为轮廓面积,C为轮廓的周长,L为长度,J为截面直径,通过面积和周长公式列二元一次方程即可求出矩形的宽度,即枝条的直径,公式如下:

获取枝条的相关数据,如图10所示。

图10 枝条数据

4 结论

本文提出了一种基于机器视觉的枸杞枝条识别方法,实现了枸杞枝条的识别与被遮挡枝条修复,在此基础上提出了质心差值法定位枝条首端坐标,为机械手准确抓取枝条提供了必要条件,为实现枸杞的自动化采摘提供了新的思路。但该研究还处于理论阶段,枝条识别率受复杂环境的影响较大,因此,在本文的基础上,可进一步研究如何提高系统在复杂环境中的识别率等问题。

猜你喜欢

质心轮廓枸杞
重型半挂汽车质量与质心位置估计
是酸是碱?黑枸杞知道
基于GNSS测量的天宫二号质心确定
宁夏六月枸杞红
跟踪导练(三)
枸杞的最佳食用方法
巧求匀质圆弧的质心
汽车质心高度计算及误差分析方法研究
儿童筒笔画
创造早秋新轮廓