孙金风 申言鑫 杨智勇 陈龙
[收稿日期]20211019
[基金项目]国家自然科学基金(51907055); 湖北省教育厅中青年人才项目(Q20191404)
[第一作者]孙金风(1979-),男,湖北鄂州人,湖北工業大学教授,研究方向为机械设计及理论
[通信作者]杨智勇(1987-),男,湖北汉川人,工学博士,湖北工业大学讲师,研究方向为机器人技术和自动化技术
[文章编号]1003-4684(2023)02-0022-05
[摘要]针对网球收集机器人工作中识别准确率低下问题,提出一种基于网球颜色和轮廓特征的识别算法。通过分析网球图像的颜色空间,得到网球与背景的二值图像,结合网球区域特征做进一步精准识别。在重叠网球识别上,提出区域分割和轮廓拟合的算法,对重叠区域提取分割、拟合还原网球轮廓。通过实验验证算法可行性,结果表明该算法可在不同环境下精确识别网球。
[关键词]网球识别; 二值图像; 形态学; 区域分割
[中图分类号]TP242 [文献标识码]A
拾取散落在场地上的网球以人工为主,不仅劳动强度大,而且效率低下。本文通过视觉技术对机器人目标识别进行研究,提出一种基于网球颜色与轮廓的识别算法。该算法可显著提升网球识别准确率,进而提升网球爱好者的练球效率。
1 网球收集机器人总体方案设计
网球收集机器人将拾取机构及运输机构合为一体,满足了结构简单、易于加工等要求。其整体结构包括拾取机构、运输机构、行走机构等(图1)。
网球收集机器人总体设计方案包括网球识别、定位、运动控制、网球拾取等4个方面。工作时使用双目相机采集图像传输到计算机处理器,再通过识别算法对图像进行分析处理,实现网球目标的识别和定位。将定位信息传递给下位机,下位机得到信息后便驱动行走,使机器人到达指定位置进行网球收集工作。
2 网球图像分割与识别
通过双目相机采集图像传输给计算机进行处理,通过颜色分析来识别网球。对图片中的网球目标区域进行分割、提取、拟合,并设置轮廓特征参数进行筛选,提高了网球识别效率。
2.1 颜色空间
颜色空间的用途是在某些标准下用平常可以接受的方式对彩色加以描述[1]。HSI颜色空间是从人的视觉系统出发,由色度、饱和度和亮度来描述色彩[2],其中:H为色调,S为饱和度,I表示亮度。在此颜色模型中,主要因素是H分量,色调值在H发生变化时也随之变化。S分量越小,颜色越接近纯灰色;S分量越大,则颜色越纯[3]。HSI颜色空间模型见图2。
人类视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度[4]。相比RGB色彩空间,HSI色彩空间更符合人类视觉特点,因此被广泛用于图像表示和处理系统中。
2.2 基于HSI颜色特征的目标提取
在HSI空间下识别颜色具有调试简单、识别精度高等特点。HSI空间下的三通道值之间相互关联,更容易分级调试阈值、修正环境影响产生的阈值偏移问题。
Halcon是一款由德国MVTec公司研发的图像处理算法软件,有着丰富的图像处理算子和交互开发工具。在网球场上用摄像头随机捕获一张照片,采用Halcon中decompose3(Image,ImageR,ImageG,ImageB)算子将图片转化为RGB色彩空间的三个通道图像,再利用trans_from_rgb(ImageR,ImageG,ImageB,ImageH,ImageS,ImageI,'hsi')算子将RGB三通道图像转化为所需要的HSI三通道图像(图3)。
确定网球在HSI颜色空间下的颜色范围。首先从拍摄的图像中截取网球部分进行颜色分析,可以调用gen_circle()函数和reduce_domain()函数得到网球特定区域。
运用equ_histo_image()算子对截取出的网球特定区域图像进行颜色分析,得出HSI颜色分量统计直方图(图4)。
从直方图中可以观察出三通道上各颜色分量的大致分布区间,参照得到颜色分布区间,设置合理的阈值区间,对图像进行预切割。预切割的目的是要精确提取出网球,因此要利用与原图大小相同的图像矩阵,减小误差,满足阈值区域的像素点将被置彩色。对图像进行预切割效果如图5所示。
从预切割效果图中可以看出,通过对三颜色通道的初步阈值处理,可以将网球提取出来,但图像存在网球影子和其他噪声,因此还需要进一步调整。通过threshold()算子分别调整H、S、I三个通道的阈值大小,直到能够去除网球影子的干扰,分割出网球目标的基本区域为止,并去除高斯噪声。其大体效果如图6所示。
从图6来看,精调到合适的阈值进行图像处理以及简单的滤波,基本可以除去网球影子噪音干扰。但是提取的网球目标区域存在局部损失等缺陷,不利于识别定位,故需要进一步形态学处理来增强图像质量提高识别精准度。
2.3 基于形态学处理和网球轮廓的识别算法
2.3.1 形态学处理数学形态学处理中的开运算与闭运算可有效解决图像中存在的微小空隙与噪声现象。由于噪声区域与网球目标区域在形状和面积上存在明显差异,可以利用面积和形状特征进行筛选,除去噪声区域,将网球目标区域分割出来。
经闭运算closing()算子处理后,网球轮廓内部微小的空洞虽得到填充,并且外轮廓变得平滑,但未达到理想效果(图7)。
在闭运算处理时,选择模板尺寸较小,空洞修复效果不理想,而模板尺寸过大,轮廓会产生较大形变。单独的闭运算解决不了网球图像内部的较大空洞问题,因此,需要用到空洞填充算法,即建立种子点的八邻域,向邻域内各个方向上搜索,对每一个像素进行修改,将轮廓范围内所有像素点修改为目标颜色,直到遇到轮廓边界。空洞填充fill_up( )算子处理后,内部空洞完全得到填充,外轮廓变得更加平滑(图8)。
噪声区域的面积与网球区域面积存在明显差异,经过调试发现单个网球目标区域面积范围大约为17 000~25 000 像素。设计以面积[15 000,30 000]为阈值,对二值图像进行面积特征阈值处理。当区域面积低于15 000或高于30 000,则认为该区域为噪声。处理过后可明显看出噪声被完全去除,效果如图9所示。
考虑到有时噪声区域会与网球目标区域面积大小相当,简单的面积滤波则会失效。由于目标区域和噪声区域形状上也存在一些差异,利用区域圆度特征参数进行筛选,进一步提高网球识别算法的鲁棒性和准确性。
区域圆度C是区域面积与外接圆面积的比值,且
C=FπRmax2
式中:F为区域面积;Rmax为外接圆的半径。其中,0 如图10c所示,经过简单面积滤波处理后,网球轮廓虽被清晰提取,但旁边噪声区域面积较大,则需利用面积和圆度两个区域特征进行网球区域提取,其中圆度阈值设置为0.5。最终效果如图10d所示。 2.3.2 网球轮廓的识别算法对形態学处理后的灰度图像。首先使用Canny滤波器进行边缘检测,边缘检测具体步骤:1)利用高斯滤波器平滑图像,过滤噪声;2)利用sobel算子计算图像中像素点的大小方向;3)使用非极大值抑制,消除边缘检测带来的不利影响;4)双阈值检测确定真实边缘与潜在边缘;5)利用抑制孤立弱边缘完成边缘检测。然后运用gen-contour-region-xld()算子提取目标的初始轮廓(图11a)。最后使用fit-circle-contour-xld()算子和 gen-circle-contour-xld()算子进行轮廓拟合生成拟合圆形轮廓(图11b)。 通过特征提取算子,得到每个网球的拟合圆形轮廓的半径和圆心位置,再通过函数设置一个网球的半径范围。将半径比较大和比较小的轮廓圆视为错误进行剔除,将在半径范围内的网球视为正确的网球,在得到的拟合圆图形上进行填充操作并绘制在原图上,得到网球区域识别效果图(图13b)。最后使用smallest_rectangle2()算子和gen_rectangle_ccontour_xld()算子对拟合圆区域获取最小外包矩形框图和几何中点的像素坐标,从而实现网球目标的识别。识别过程如图12所示。 2.4 重叠网球目标的识别 用简单的形态学处理和轮廓筛选,只能识别出单个网球,而不会识别重叠网球。 网球从各个角度看都是一个近似于圆的椭圆。重叠网球区域的外轮廓都是由各网球未遮挡部分的外轮廓圆弧组成,只要分割出各段圆弧,就得到了每个网球的部分外轮廓,再根据该部分圆弧来拟合整个网球轮廓,即可在图像中识别重叠部分的网球。所以,对于重叠网球的识别,提出一种轮廓分割与拟合的识别算法。 2.4.1 提取重叠网球区域重叠区域的提取同单个网球的识别过程相似。首先对网球颜色空间三通道进行阈值分割,提取出初步的重叠区域,再利用形态学开运算与填充算法解决内部空洞现象,提高外轮廓平滑度,最后采用面积滤波去除多余噪声。 经过上述步骤提取出来的重叠网球区域和真实图像的网球区域基本重合。后续算法将针对重叠网球区域图像进一步处理,以完成对重叠网球的识别。 2.4.2 区域分割和拟合经过上述对重叠网球区域的提取,接下来通过区域分割和拟合的方法对重叠区域进行轮廓提取分割,并对分割后轮廓进行拟合,生成完整的网球轮廓,利用该轮廓确定其重心,重心作为网球的中心,即可完成重叠网球识别。 重叠区域中的最大内接圆一定包含无遮挡网球轮廓,对重叠网球区域进行最大内接圆操作,可得到无遮挡网球区域。对无遮挡网球区域进行重心计算得到网球中心,即可完成无遮挡网球目标的识别(图14)。 得到无遮挡网球区域后,利用区域相减得到重叠网球区域(图15a),接着提取重叠网球区域外轮廓(图15b),并对其轮廓进行拟合圆操作,再提取拟合圆区域,可得到重叠网球的拟合区域(图15d),计算出拟合圆中心点,完成重叠网球识别。 3 实验结果与分析 分别在室内外两种环境下进行实验验证。图16为室内实验效果。由于室内光照稳定,通过HSI各通道阈值调试、形态学分析处理和区域提取等操作,便可精确识别网球。 图17为室外重叠网球识别效果。利用颜色特征和形态学处理得到的网球区域,再通过面积特征提取重叠网球区域作为感兴趣区域ROI,然后单独对 ROI区域进行轮廓分割和拟合,还原每个被遮挡网球的外轮廓,计算其中心点坐标,完成网球目标的识别。其算法平均运行时间为0.14 s,网球识别速度大约为7帧/s。 从室内外场地的测试可以看出,基于颜色和网球区域特征的识别算法在不同场景较为精准地实现网球目标识别。 在光照和角度等不同的环境下进行多次网球识别实验,并对实验数据进行分析(表1),图18为部分识别效果。 4 结论 为提高网球收集机器人目标识别效率,设计了基于网球颜色和轮廓特征的识别算法。该算法通过网球的颜色特征、轮廓特征对图像进行处理,筛选出网球区域轮廓,进而完成对网球的识别。通过多次识别实验,网球整体识别正确率达到88.9%,表明基于颜色和网球区域特征的识别算法可以在不同场景较为精准地实现网球识别。 [参考文献] [1]侯宾,张文志,戴源成,等.基于OpenCV的目标物体颜色及轮廓的识别方法[J].现代电子技术,2014,37(24):76-79. [2]张志宝,孙微涛,罗文峰.基于HSI空间改进的彩色图像边缘检测方法[J].计算机与数字工程,2016,44(11):2257-2262. [3]席小刚,孙浩,钟方伟,等.基于HSI模型和最大隶属度图像分割算法的研究[J].电视技术,2018,42(10):12-16. [4]汤慧.多颜色空间融合的颜色特征提取方法及应用[D].长沙:中南大学,2011. Research on Recognition Algorithm of Tennis CollectingRobot Based on Color Contour SUN Jinfeng, SHEN Yanxin, YANG Zhiyong, CHEN Long (School of Mechanical Engineering, Hubei Univ. of Tech., Wuhan 430068,China) Abstract:Aiming at the low recognition accuracy of tennis collection robot, a tennis recognition algorithm based on tennis color and contour features is proposed. By analyzing the color space of tennis image, the binary image of tennis and background is obtained. The binary image is optimized by morphological processing, and the tennis area features are combined for further accurate tennis recognition. In the recognition of overlapping tennis balls, an algorithm of region segmentation and contour fitting is proposed to extract, segment, fit and restore the contour of tennis balls. Realize the recognition of overlapping tennis balls. Finally, the feasibility of the algorithm is verified by experiments. The results show that the recognition algorithm can accurately recognize tennis indoors and outdoors. Keywords:tennis recognition; binary image; morphology; region segmentation [責任编校: 张众]