APP下载

基于OpenMV的视觉识别系统在六足机器人中的应用

2019-09-10储泽楠王伟蔡胜宇

河南科技 2019年34期
关键词:模拟仿真

储泽楠 王伟 蔡胜宇

摘 要:为解决六足机器人自主识别的问题,实现机器人智能化、人性化的发展,以OpenMV为主要平台,以六足机器人为主要机器载体,同时以Python为主要开发语言,以C语言为辅助开发语言,加上对图像处理技术的合理应用,设计了一个简易的基于OpenMV的视觉识别系统,从而实现视觉识别的应用。

关键词:六足机器人;OpenMV;视觉识别;模拟仿真

中图分类号:TP301 文献标识码:A 文章编号:1003-5168(2019)34-0026-04

Application of Vision Recognition System Based on

OpenMV in Hexapod Robot

CHU Zenan WANG Wei CAI Shengyu

(Anyang Institute of Technology,Anyang Henan 455000)

Abstract: In order to solve the problem of autonomous recognition of hexapod robot and realize the development of intelligent and humanized robot, a simple visual recognition system based on openmv was designed with openmv as the main platform, hexapod robot as the main machine carrier, python as the main development language, C as the auxiliary development language, and the reasonable application of image processing technology realize the application of visual recognition.

Keywords: hexapod robot;OpenMV;visual recognition;simulation

隨着机器人的热起,相关技术也不断发展,其中视觉信息处理技术是移动机器人研究的关键技术之一。目前,视觉信息处理的内容主要包括视觉信息的压缩和滤波、道路检测和障碍物检测、特定交通道路标志的识别、三维信息感知与处理[1-4]。视觉信息的获取是机器人规划和导航的基础,同时也是决定机器人正确识别当前道路环境信息的依据。获取到有效的视觉信息可以正确规划路线并为正常的行走打下基础[5]。视觉信息的过滤是基础的视觉处理过程,能为其他视觉功能提供基础的信息反馈,从而实现相应功能[6]。

因此,把视觉识别系统放到六足机器人进行研究,对实现机器人的智能化、人性化提供了新的思路。加强视觉识别系统的应用,可以在环境因素多变的情况下使机器人做出自主决策,让机器人更好地服务于社会、服务于人类,促进时代的发展,推动科技的进步。

1 视觉识别基本理论

简单来说,视觉识别就是对摄像头获取到的图像进行处理和分析。摄像头其实就是一个将光学信号转变成电信号的装置[7]。RGB三原色的原理不是出于物理原因,而是由于生理原因造成的。人的眼睛内有几种辨别颜色的锥形感光细胞,分别对黄绿色、绿色和蓝紫色(或称紫罗兰色)的光最敏感(波长分别为564、534nm和420nm)。虽然三种细胞并不是分别对红色、绿色和蓝色最敏感,但这三种光可以分别对三种锥形细胞产生刺激。所以,RGB经常用于显示器上,用来显示图片。图1为RGB三原色图。

感光元件是由很多个感光点构成的,如有320×240个点,每个点就是一个像素,把所有的像素点整合到一块就组成了一幅320×240的图像,如图2所示。帧率(FPS)就是每秒处理的图片数量,如果超过20帧,人眼基本分辨不出卡顿。

Lab颜色空间是由国际照明委员会(CIE)制定的一种色彩模式。Lab颜色空间中,L表示亮度;a和b分别代表两个颜色通道。L的值域是0~100,而a和b的值域都是+127至-128。a的正数代表红色,负端代表绿色;b的正数代表黄色,负端代表蓝色。因此,L分量可以调整亮度,修改a和b分量的输出色阶来进行精确的颜色平衡。物理上,颜色就是不同波长的电磁波,但人们通过对电磁波运用RGB、LAB等颜色模型,使电磁波描述出人眼能识别的各种颜色。图3是可见光的光谱。有了这些图像的基本知识,就可以对图像进行识别和分析。

2 视觉识别基本算法

2.1 颜色识别

颜色识别是OpenMV识别的最基本的功能[8],而颜色识别最核心的是颜色阈值的选取。不同颜色有不同的颜色阈值,OpenMV通过对颜色阈值的判断实现对同种颜色的识别。所谓颜色的阈值就是首先设定一个颜色,图像的转换是比较像素的过程[9],图像分析的过程就是通过所得到的像素点与预先设定的阈值进行分析和计算,从而判断是否为设定颜色。因此,颜色阈值越高,颜色数量越少。例如:寻找红色的阈值,就可以进行如下操作,图4中(5,100,-64,40,-61,70)就是红色阈值,在相应的颜色阈值中实现颜色的识别,实现颜色的跟踪。

2.2 模板匹配

模板匹配采用的是NCC算法(Normalized Cross Correlation),只能匹配与模板图片大小和角度基本一致的图案。但是,该算法的局限性相对来说比较大,如视野中的目标图案稍微比模板图片大一些或者小一些就可能匹配不成功。

模板匹配适用于摄像头与目标物体之间距离确定、不需要动态移动的情况[8]。比如,适用于流水线上特定物体的检测,而不适用于小车追踪一个运动的排球(因为运动的排球与摄像头的距离是动态的,摄像头看到的排球大小会变化,不会与模板图片完全一样)。对于多角度、多大小匹配,可以尝试保存多个模板,采用多模板匹配。

基于NCC算法用来比较两幅图像的相似程度是一种常见的图像处理手段。取值范围为[-1,1],每个像素价值图像不合,如果它有一个子集与另外一个样本数据相互匹配,则其NCC值为1,表示相关性很高,如果是-1则表示完全不相关。NCC是基于相似度度量的匹配算法,在工业领域已被广泛采纳。

NCC算法的计算公式为:

[NCC(x,y)=i=1Mj=1N{[Ix+i,y+j-Ix,y]g[T(i,j)-T]}i=1Mj=1N[Ix+i,y+j-Ix,y]2i=1Mj=1N[Ti,j-T]2](1)

其中,[I]为目标图像;[T]为模板图像,模板大小为[M×N]。根据NCC算法,就可以比较模板与图像的特征,得出是否匹配。

2.3 特征点检测

在实际应用中,对单个图像固定距离的图像识别应用比较单一,而动态识别应用比较普遍,根据这一情况引出特征点检测这一概念。特征点检测不再局限于特定距离、特定大小物体的识别,使准确识别动态物体成为可能,对物体与图像的比例进行算法比对,实现识别的功能。FAST算法在特征点检测中应用比较广泛,本设计中就是用该算法实现特征点检测。

FAST,即Features from Accelerated Segment Test,加速分割测试获得特征。只有比较几个像素,才能确定该点是不是一个关键。快速算法来自于各点的定义,围绕一个点形成一个圆,根据一个圆的像素值来判断这一点是否关键。如果存在这样一段圆弧,其连续长度超过周长的3/4,并且其上面所有像素的强度值都与圆心的强度值明显不同(全部更黑或更亮),那么就认定这是一个关键点。用这个算法检测关键点的速度非常快,因此十分适合需要优先考虑速度的应用。这些应用包括实时视觉跟踪、目标识别等。

3 实验验证

3.1 视觉识别实验

对于视觉识别功能的实验方法,首先测试程序的完整性,检查程序是否有错,接着运行程序。本文以红色物体为例,首先找到红色的阈值填入程序中,接着把物体放到离摄像头不远处,运行程序,可以看到电脑端会显示摄像头的图像,并且把红色物体用绿色矩形框标识出来,反复测试几次。图5是摄像头与实物的位置图片,反映第三人称视角的观看角度。图6是OpenMV摄像头的识别图片,检测到的红色物体用矩形框标注出反映正面视角的观看角度。

从图5和图6设置的实验条件进行分析,本文所设计的六足机器人对物体的识别有良好的精度。

3.2 视觉测距实验

对视觉测距功能进行检测,同样先检查程序的正确性。以上述红色物体为例,笔者先检测物体的距离,把物体放到已知距离的某处,运行程序,这时在电脑端会标记红色物体同时会输出此时的距离,如图7所示,再观察实物图的位置,如图8所示。接着把红色物体再移动多次,比较测得数据与实际数据的差值。

从图7和图8不难看出,设计的机器人测距的效果明显,这对于六足机器人的行走是至关重要的部分,也是物体识别的一个应用。

3.3 目标跟踪实验

相对其他功能来说,目标跟踪实验需要用STM32单片机来完成,其他功能都是给这个功能做基础,通过图像分析返回数据,再通过串口发送数据给STM32单片机,单片机再控制舵机板实现目标跟踪。同样,采用红色物体进行目标跟踪测试,运行代码,把红色物体放到摄像头前,设置一定的临界值,当距离大于最大临界值时,机器人会向物体移动,当距离小于最小临界值时,机器人会向后移动,当摄像头的视野找不到设定物体时,机器人会原地转圈寻找标识物体,具体效果如图9至10所示,多测几次检测功能的稳定性与准确性。

从图9和图10可以看出,设计的机器人对于目标识别,借助于硬件板子的设计,加上软件模式的功能,研究的目标跟踪效果是非常明显的。

4 结论

本文以六足机器人作为研究对象,描述了在OpenMV平台开发视觉识别简易系统,把该系统搭建到六足机器人上进行应用,实现了六足机器人的视觉识别和目标跟踪。通过对机器人识别的研究和应用,对六足机器人的真正行走具有至关重要的现实意义。但目前,如何适应多环境、多角度的目标跟踪,仍然是下一步需要研究的目标。

参考文献:

[1]张海庆,韩军.基于激光视觉识别的红外多目标智能跟踪方法研究[J].激光杂志,2019(7):19-23.

[2] Tamborrino M,Ditlevsen S,Markussen B,et al. Gaussian counter models for visual identification of briefly presented, mutually confusable single stimuli in pure accuracy tasks[J]. Journal of Mathematical Psychology,2017(3):628-642.

[3]张乾,肖永菲,杨玉成,等.基于计算机视觉的室外停车场车位检测实验设计[J].实验技术与管理,2019(7):138-140,146.

[4]张磊,谢子琼,张健.基于机器视觉的目标跟随六足机器人[J].重庆邮电大学学报(自然科学版),2017(4):557-562.

[5]朱佩,徐巧玉,王军委,等.一种嵌入式智能视觉系统的设计[J].河南科技大学学报(自然科学版),2019(4):46-51,7.

[6]曾锦乐,都东.基于多视觉特征获取与融合的焊道轨迹自动识别[J].机械工程学报,2019(7):127.

[7]Qingguo X,Guangyao L,Li X,et al. Real-world plant species identification based on deep convolutional neural networks and visual attention[J]. Ecological Informatics,2018(48):117-124.

[8]Carpinteri A,Invernizzi S,Lacidogna G . Historical brick-masonry subjected to double flat-jack test: Acoustic emissions and scale effects on cracking density[J]. Construction & Building Materials,2009(8):2813-2820.

[9]安颯,廉小亲,成开元,等.基于OpenMV的无人驾驶智能小车模拟系统[J].信息技术与信息化,2019(6):16-20.

猜你喜欢

模拟仿真
Labview在通信设备中的应用与模拟仿真
运用蒙特卡洛模拟仿真算法分析机电系统技术
基于计算机专业的大学物理仿真教学研究
基于DEM的谷物联合收割机抖动板性能研究
基于Vericut的五轴动数控编程及加工仿真研究
基于CFD计算的核电厂半管水位运行工况余排接管入口涡流吸气效应研究
信息化教学设计在经管类专业的应用
基于匈牙利算法的城市商业网点最优布设问题研究