基于NAO机器人的红球识别与定位算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于NAO机器人的红球识别与定位算法作者:褚光耀陈中徐佳妮郑涛涛唐智科
来源:《卫星电视与宽带多媒体》2019年第20期
【摘要】NAO全自主仿人机器人将传感器、视觉系统和控制器集于一体,是目前世界学术界应用最广泛的仿人机器人。
在国家定期进行的标准高尔夫球比赛中,NAO机器人主要通过两个摄像头获取球场上的信息,然后通过对所获取目标信息进行颜色识别处理得到有效信息。
这就要求机器人的图像处理算法有较高的实时性和准确性。
比赛中,其能识别目标红球,并能准确而迅速的定位红球,是高尔夫球比赛过程中非常重要的两个环节。
【关键词】NAO机器人;视觉传感;图像识别与处理
衡阳师范学院课外学术科技项目(编号:16)支助
1. 引言
近年来,机器人技术作为高新技术产业发展的代表得到了快速的进步,其中全自主仿人机器人是机器人技术的最先进代表。
仿人机器人的研究工作始于1960年代,现在软银公司开发的NAO机器人已成为世界上人型机器人的代表。
该类机器人被机器人世界杯组委会定为RobotCup参赛机器人,当然是对这款机器人的认可。
选定NAO机器人为参赛平台可以在一定程度上反映机器人的智力水平,它主要体现在以下几个方面:识别目标对象,平衡处理,避让障碍物,感知环境以及相应事件的决策等。
目前,国内外提出的许多研究算法还不够成熟,无法实现快速的目标识别定位。
本文打算利用计算机视觉技术和多传感器系统来实现目标的检测定位等功能。
2. NAO机器人视觉系统
NAO机器人视觉系统通过分析处理摄像机拍摄的彩色图像获取有关周围环境的信息,例如通过图像处理获得机器人自己的位置以及是否有障碍物和障碍物的位置等重要信息。
NAO的两个摄像头:一个在额头上,负责距离机器人较远的地点的水平观察,视野范围宽广,另一个摄像头位于NAO嘴部,负责距离机器人较近处的环境扫视。
NAO机器人两台摄像头的分辨率皆为640*480,两个摄像头之间的夹角为40度。
系统可以提供30帧/秒的图像帧率。
当机器人移动时,摄像头的水平和垂直视图跟随头部转身而改变。
在实际运动中,由于系统原因,两台摄像头不能同时工作,但可以随时切换。
NAO机器人拍摄和输出的图像格式为YUV422,该类图像的每个像素只占用2个字节。
3. 红球识别
3.1 色彩空间
目前,色彩空间通常可分为RGB空间、CMY空间、HSV空间和YUV空间等。
在这四种颜色空间中,最常用的是RGB颜色空间,它是由R(红)、G(绿)、B(蓝)三种颜色组合而成,其它的颜色都由它们变换得来。
但由于RGB 颜色空间没有考虑光照强度的影响,所以若采用RGB颜色空间获取图像,环境中的光照强度将会对识别产生较大影响。
实验结果表明,在不同环境(物体反射特性、光源的种类和光照强度等)下,对具有相同颜色的物体,测得的R、G、B三个分量值彼此联系,RGB颜色值很分散且波段非常宽。
因此很难确定RGB 颜色空间的阈值范围,从而导致漏掉本应被识别的部分物体,或者将环境中并非目标颜色的物体识别成目标。
所以在比赛中,若采用RGB颜色空间,则可能会因为场地光照不均匀导致目标丢失。
为加强识别效果,在高尔夫球赛中通常利用OpenCV库中cvtColor()函数将RGB 颜色空间转化为HSV颜色空间。
3.2 红球颜色阈值的选择
选择红色作为识别的目标颜色,机器人自动获取并确定红色特征点的阈值,然后根据目标阈值识别获取的图像颜色。
为获取其颜色特征中相对稳定的范围,应对不同成像距离和光照等环境条件下的目标颜色多次进行测量,然后将得到的稳定范围进行进一步转换。
在比赛中根据转换规则直接确定目标阈值,这样不仅可以提高确定阈值效率,而且避免了当场调整阈值的不确定性和其他偶然因素的影响,从而提升机器人在比赛中的识别效果。
3.3 红球识别过程
对NAO机器人拍摄的图片,通过颜色识别,获取满足预设阈值范围的红色像素点。
然后按下列步骤处理获取的红色点来检测红球:
3.3.1 初步处理红色特征点
理由:由于光照的影响,识别到的红色像素点周围会出现一些干扰噪声。
这些噪声点较分散,但红球红色像素点较集中。
我们通过判断红色点的相邻点,即选择周围有代表性的八个
点,来判定其是否是满足条件的红色点。
如果其周围有5个及以上点是红色特征点,那么我们判定该点是满足条件的红球像素点,反之判定其为噪声点。
3.3.2 获得图片中的圆形
NAO机器人识别的这个物体,既是红的又是圆的。
具体做法是:对采集到的每一帧图像,如图1所示,我们称为原始图,将其背景设置为(0,0,0),红色像素设置为(255,255,255)。
在预处理后我们采用高斯滤波平滑图像,处理效果图如图2所示。
高斯滤波实质上是一种信号的滤波器,其主要用来对信号进行平滑处理。
然后采用霍夫变换检测圆形,这一步骤通过OpenCV库中的霍夫圆检测函数实现,如图3所示。
从图中我们可以得到以下信息:处于图片下方的红球都能被较好的识别,同时确定球心的位置,且上面一颗干扰绿球也被还原成了绿色。
通过上述步骤已经完成了NAO对目标红球的识别以及定位。
红球识别具体实现过程如下:
1)获取图像;
2)通过颜色空间的转换:将BGR颜色空间转换为HSV颜色空间;
3)高斯模糊:利用OpenCV中的GaussianBlur()函數进行高斯模糊,让局部信息模糊;
4)图像二值化:利用inRange()函数进行图像二值化(由于红色对应的HSV的区间范围有两个,所以在代码实现上用了“并”操作);
5)红球筛选:霍夫圆检测筛选符合条件的红球;
6)是否检测到符合条件的红球?是到7),否到1);
7)返回红球在图片中的坐标。
4 红球定位算法
传统的单目测距方法主要针对 NAOv3以前的机器人,原理简单且易实现,但其缺点是仅适用于对静止物体的跟踪,对移动物体的追踪则显得十分笨拙。
单目测距的基本思想是:机器人检测到目标红球后,调节其HeadPitch和HeadYaw关节值使目标红球处于视野中心。
假定此时机器人身高为 h,目标红球半径为 r,再求出目标红球
在機器人某一摄像头处形成的垂直夹角,最后利用勾股定理计算出目标红球与机器人的水平距离s,如图4所示,在追踪目标过程中重复此计算过程。
比赛用红球为标准的半径为3cm的专用球,根据上述分析可以得出以下计算机器人与红球的距离的具体步骤:
设摄像头距离红球的空间距离为(1)
那根据勾股定理,NAO机器人距离红球的水平距离s:
由(1)(2)公式得出公式(3)
求出水平距离s后,NAO再去寻找红球,对红球定位及实施击球过程如下:
1)视野中是否发现红球?发现了到2)否则回1);
2)对准红球,行走到距离红球特定距离处;
3)转头找到Mark?找到转4)没有转3);
4)寻找黄?找到转5)没有找到转4);
5)机器人、红球、球洞三点一线:根据获取的机器人相对于Mark的角度以及相对于黄杆的距离,并计算机器人需要转动的角度和移动距离;
6)击球,是否进球?进了转7)没有进球转3);
8)结束。
结合前面对红球的定位,可以对定位过程进行必要的改进。
在比赛中,机器人找球时要考虑红球滚动的情况。
况且机器人行走时可能会出现方向偏移等误差情况,所以要执行多次测距以减小误差。
为此提出了改进的目标定位算法,即让机器人在追踪走近红球过程中一直将红球置于视野中心,直到红球的球心在机器人视野中线上且满足相关的初始的条件才完成。
同时,需要提取目标红球与机器人视野中心的水平偏角和垂直偏角,根据前面提到的机器人视野角度范围可以得出计算公式,其中水平偏角为,垂直偏角为β。
一般来说,NAO机器人的水平视野范围度数为47.8,即视野中心点距离两边的水平视野范围是23.9。
设s表示NAO机器人摄像头到视野中心点的距离,则水平偏角的计算公式为:(4)根据公式(4)与(5)得出
根据已知的红球圆心(x,y),我们可以求出目标红球距离NAO机器人视野中心的水平偏角,同理可以通过公式,求出目标红球距离NAO机器人视野中心的垂直偏角β。
将求得的值设为函数moveTo(0.1,0,)的第三个参数,并将β值设为NAO机器人HeadPitch关节值,这样就可以使目标红球一直处于机器人的视野中心,让机器人一直朝着目标红球的方向前进。
NAO走近红球后,再次识别红球,并计算α值和β值,然后通过设定HeadPitch关节值来控制NAO机器人做下一步动作。
5. 总结
本文设计了红球识别和定位算法,在识别红球的同时确定球心所在位置。
由于官网提供的API识别算法有较大的不稳定性,因此本文提出了基于HSV颜色空间的彩色图像处理技术。
该技术避免了光照条件对机器人红球识别的影响。
对机器人拍摄的图片,我们通过红色阈值设定,红色噪声点过滤,图像二值化,图像高斯平滑,霍夫圆变换检测圆形等操作,识别和定位目标红球。
通过讨论单目测距追踪红球的优缺点,提出了一种更为简单的,不进行测距,直接通过实时调整机器人的头部关节值,使目标红球动态处于其视野中心的红球跟踪方法。
我们通过实践检验得出该方式更具实用性,能够满足NAO机器人高尔夫球赛的要求。
参考文献:
[1] 孟宪龙. RoboCup中NAO红球识别追踪及自定位研究[D].安徽大学,2014.
[2] 孟宪龙,李龙澍,罗罹.RoboCup中NAO机器人球场目标红球识别与快速找球策略[J].电脑知识与技术,2013,9(24):5515-5519.
[3] 王中意,朱小波,车进.NAO机器人的视觉系统与图像处理分析[J].电子世界,2017(22):63+65.
[4] 赵谦,朱华伟,曾召华,等. 基于 YUV 颜色空间特征的目标跟踪融合算法[J]. 电视技术, 2013, 37( 9) .
[5] 柏雪峰,杨斌.基于NAO机器人目标识别与定位算法[J].成都信息工程学院学报,2014,29(06):625-629.
[6] 张文彬,宋爱国.一种用于高尔夫赛的NAO机器人比赛系统设计[J].测控技术,2018,37(03):32-35.
[7] 张一鸣,秦世引.基于单目视觉的移动机器人测距方法[J].微计算机信息,2008(29):224-225+205.。