CN108416786A - 一种基于人形机器人识别物体形状和色彩的方法 - Google Patents
一种基于人形机器人识别物体形状和色彩的方法 Download PDFInfo
- Publication number
- CN108416786A CN108416786A CN201810107611.4A CN201810107611A CN108416786A CN 108416786 A CN108416786 A CN 108416786A CN 201810107611 A CN201810107611 A CN 201810107611A CN 108416786 A CN108416786 A CN 108416786A
- Authority
- CN
- China
- Prior art keywords
- target object
- anthropomorphic robot
- color
- image
- body form
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000004438 eyesight Effects 0.000 claims abstract description 24
- 238000006243 chemical reaction Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 75
- 238000012549 training Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 19
- 238000000605 extraction Methods 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 230000007797 corrosion Effects 0.000 claims description 5
- 238000005260 corrosion Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 claims description 5
- 238000013461 design Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 3
- 239000003086 colorant Substances 0.000 description 9
- 238000002474 experimental method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000005530 etching Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000272525 Anas platyrhynchos Species 0.000 description 1
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 210000001061 forehead Anatomy 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 238000012916 structural analysis Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
- G06T5/30—Erosion or dilatation, e.g. thinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/90—Dynamic range modification of images or parts thereof
- G06T5/92—Dynamic range modification of images or parts thereof based on global image properties
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种基于人形机器人识别物体形状和色彩的方法,包括:安装在所述人形机器人上的摄像头发送捕获的目标物体图像信息到处理器;所述处理器通过与所述人形机器人平台相连接的OpenCV视觉库函数对接收到的所述目标物体图像信息进行色彩空间转换和外部轮廓特征提取,并与已建立的物体特征数据库进行比对获得目标物体形状,及与已建立的色彩空间进行比对获得目标物体的色彩;所述人形机器人根据识别的形状及色彩进行语音反馈。本发明将OpenCV视觉库函数与人形机器人平台相结合,实现人形机器人对物体形状和色彩的识别。
Description
技术领域
本发明涉及智能机器人技术领域,特别涉及一种基于人形机器人识别物体形状和色彩的方法。
背景技术
自20世纪60年代以来,世界开始了各种类人机器人的研究,投入了大量的成果,开发了一系列类人机器人,现在国内外有很多学者进入这个领域;随着更多的学者和机构在人形机器人技术的研究和投入,利用高科技不断提高机器人的性能,同时成本也成为不容忽视的课题;因此,小型人形机器人已经成为很多研究人员和业务关注点;小型人形机器人,是指大型人形机器在体积,功能等方面缩小了简化的人形机器人;与大型人形机器人相比,小型人形机器人可以更容易地进入人们的日常生活中,他的娱乐,教学,服务等方面应用范围广泛,成本相对较低,机器人系统简单完善,已经成为其独特的优势。
现在在人形机器人领域,Aldebaran Robotics公司开发了一种小型人形机器人NAO是世界知名的作品;这种机器人的结构设计形状和运动受到广泛的认可,使用知名的低功耗x86平台处理器;主要特点包括语音合成,定位捕捉,目标定位,避障等等,还可以移动NAO小型人形机器人联合教学功能,运行python程序,机器人行为进行更深入的编程;他有一个非常成熟和完善的配套编程平台,由于其优秀的二次开发能力成为学术教育领域的领导者。
NAO机器人是身高57cm的可编程人形机器人,主要内容如下:
具有机身25度自由度(DOF),电机和执行器的关键部件;
一系列传感器:2个摄像头,4个麦克风,1个超声波距离传感器,2个红外发射器和接收器,1个惯性板,9个触觉传感器和8个压力传感器;
用于自我表达的设备:语音合成器,LED灯和2个高品质扬声器;
一个CPU(位于机器人头部),运行Linux内核,并支持ALDEBARAN自己的专有中间件(NAOqi);
第二个CPU(位于机器人躯干内部);
一个55瓦的电池,可以提供1.5小时甚至更长时间;NAO的视觉技术,使用两个高清摄像头,有效像素高达920万,每秒30帧,其中一台摄像头位于机器人的前额,拍摄了前面的水平屏幕;另一个位于嘴里,用于扫描周围的环境。目前,虽然NAO包含了一些用于检测和识别不同面部和物体形状的算法,但在实际应用时,NAO自身的算法使用起来不够灵活或不能满足实际需求;而且,在开发过程中,力求尽量减少处理器资源的使用。
发明内容
本发明目的在于克服现有技术的不足,提出一种基于人形机器人识别物体形状和色彩的方法,通过将OpenCV视觉库函数与人形机器人平台相结合,实现NAO机器人对物体形状和色彩的识别。
本发明解决其技术问题所采用的技术方案是:
一种基于人形机器人识别物体形状和色彩的方法,包括:
安装在所述人形机器人上的摄像头发送捕获的目标物体图像信息到处理器;
所述处理器通过与所述人形机器人平台相连接的OpenCV视觉库函数对接收到的所述目标物体图像信息进行色彩空间转换和外部轮廓特征提取,并与已建立的物体特征数据库进行比对获得目标物体形状,及与已建立的色彩空间进行比对获得目标物体的色彩;
所述人形机器人根据识别的形状及色彩进行语音反馈。
优选的,所述处理器通过与所述人形机器人平台相连接的OpenCV视觉库函数对接收到的所述目标物体图像信息进行色彩空间转换,包括:
通过cvLoadImage或imread函数将目标物体图像加载至内存并提取图像像素点的RGB值;
通过cvCvtColor函数对所述目标物体图像进行HSV处理。
优选的,所述处理器通过与所述人形机器人平台相连接的OpenCV视觉库函数对接收到的所述目标物体图像信息进行外部轮廓特征提取,包括:
通过cvLoadImage或imread函数将目标物体图像加载至内存;
通过cvCvtColor函数对所述目标物体图像进行灰度化处理;使用bitwise_not进行反色处理;
通过cvThreshold函数对所述目标物体图像进行二值化处理;
通过函数getStructuringElement制作操作内核;然后再通过erode函数与dilate函数进行腐蚀与膨胀处理;
通过Canny函数检测图像边缘;
通过findContours提取目标轮廓,得到一个连通区域的轮廓点的集合;再通过drawContours函数画出轮廓并将其直观的展现出来。
优选的,与已建立的物体特征数据库进行比对获得目标物体形状,具体为在OpenCV视觉库中通过LIBSVM模式的SVM算法或轮廓比对算法实现目标物体形状的识别。
优选的,通过LIBSVM模式的SVM算法实现目标物体形状的识别,包括:
设计一个svm训练机并配置训练机参数,训练机参数配置完成时设置svm训练机路径;
定义样本测试与分类方法,分别训练正负样本,用经过处理的一维矩阵图片比对样本矩阵,通过数据比拟相似度,来确定读取图像更接近哪一个样本,进而识别目标物体形状;其中,样本来自物体特征数据库。
优选的,通过轮廓比对算法实现目标物体形状的识别,包括:
通过cvApproxPoly函数对轮廓进行多边形逼近处理;
通过cvFindDominantPoints函数实现轮廓上的关键点的查找提取;
通过cvContourPerimeter或cvArcLength函数获取轮廓的周长;通过cvContourArea函数获取轮廓的面积;
基于轮廓的Hu矩匹配法,通过cvMatchShapes函数实现2个轮廓的匹配,进而物体形状。
优选的,所述OpenCV视觉库运行在Linux、Windows、Android或Mac OS操作系统上。
优选的,所述人形机器人为NAO机器人。
与现有技术相比,本发明具有如下有益效果:
本发明一种基于人形机器人识别物体形状和色彩的方法,通过将OpenCV视觉库函数与NAO机器人平台相结合,实现NAO机器人对物体形状和色彩的识别,并通过语音反馈。
附图说明
图1是本发明的方法流程图;
图2是本发明颜色空间HSV值图;
图3是本发明的颜色空间对应值分布图;
图4是本发明的建立对各种颜色的范围识别代码图;
图5是本发明的目标物体图像特征提取代码图;
图6是本发明的svm训练机参数配置代码图;
图7是本发明的路径设置代码图;
图8是本发明的编程平台界面图;
图9是本发明的Opencv环境配置图;
图10是本发明的pycharm环境配置图;
图11是本发明的修改模式框架代码图;
图12是本发明的颜色空间的建立以及初步的配置设定代码图;
图13是本发明的对几何形的判定代码图;
图14是本发明的对各种颜色球体的识别代码图。
具体实施方式
参见图1所示,本发明一种基于人形机器人识别物体形状和色彩的方法,包括:
步骤101,安装在所述人形机器人上的摄像头发送捕获的目标物体图像信息到处理器;
步骤102,所述处理器通过与所述人形机器人平台相连接的OpenCV视觉库函数对接收到的所述目标物体图像信息进行色彩空间转换和外部轮廓特征提取,并与已建立的物体特征数据库进行比对获得目标物体形状,及与已建立的色彩空间进行比对获得目标物体的色彩;
步骤103,所述人形机器人根据识别的形状及色彩进行语音反馈。
Nao机器人应用程序是建立在大量先进的复杂技术之上,如语音识别、物体识别、地图构建等并利用有限的资源、在有限的环境中运行的一种应用程序。用户可在Windows、Mac或Linux系统下开发代码,并通过C++、Python、Urbi、.Net等多种语言进行调用以实现nao机器人之间与人与机器人之间的互动,通过NAOqi,不同模块(如运动、音频、视频等)之间可协调沟通,还可实现齐次规划,并与ALMemory模块共享信息。基于机器人视觉交流,实现机器人的视觉互动则需要Opencv来完成实现。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。其主要应用体现在人机互动,物体识别,图像分割,人脸识别,动作识别,运动跟踪,运动分析,机器视觉结构分析等诸多方面。机器人视觉交流则是通过视觉获取目标物体的形状及色彩。
本实施例中,Nao机器人摄像头完成对目标物体及其主体颜色的辨识,通过建立起所识别物体的特征数据库以及色彩空间,包括:(1)建立起合适的颜色空间,减少不同颜色以及不同环境(光照)下的互相干扰;(2)正确获取目标物体的外部轮廓以及特征。
1、图像中色彩的辨识
1.1OpenCV的图像色彩空间
通常,颜色空间中的图像处理在HSV空间中完成,然后需要对基本颜色的相应HSV分量给出严格的范围。参见图2所示,为实验计算出的颜色空间HSV值范围。
H:0—180
S:0—255
V:0—255此处把部分红色归为紫色范围。
参见图3所示,为颜色空间对应值分布。
1.2色彩空间的选取
色彩空间的用法是以某种标准下一般可以接受的方式对颜色进行描述。常用的色彩空间有RGB,CMY,HSV,HSI等。本文采用的色彩空间为RGB与HSV。
RGB(红色,绿色,蓝色)可以说R,G,B作为三维坐标系,其中每个坐标点表示一种颜色。HSV颜色空间,H是指颜色,通常使用一个有角度的圆来指代。S是指饱和度,圆的中心值为0,颜色非常浅,沿圆的半径增加颜色越来越深。V是指颜色的亮度,在底部的锥体值是指黑色,在顶部是白色。实际上,RGB颜色易被强光,低光,阴影等环境条件影响。相较下,HSV空间在面对这些变化的光线更加稳定,可以体现色彩的本质。
1.3转换色彩空间
OpenCV中有超过150种进行颜色空间转换的方法。然而你会发现我们经常使用这两个:BGR$Gray与BGR$HSV。我们要用到的函数是:cv2.cvtColor(input_image,flag),其中flag就是转换形式。对于BGR$Gray的转换,我们要使用的flag就是cv2.COLOR_BGR2GRAY。同样对于BGR$HSV的转换,我们用的flag就是cv2.COLOR_BGR2HSV。
1.4利用python建立色彩空间
参见图4所示,通过指令,可以通过各种颜色的HSV值利用python建立对各种颜色的范围识别。
2、目标物体的识别辨识
本实施例中,需要对摄像头抓取的目标物体图像进行特征提取,参见图5所示,包括:
(1)通过cvLoadImage或imread函数将目标物体图像加载至内存。
OpenCV在应用cvLoadImage函数将图像文件加载至内存后,可以调用cvShowImage函数来显示图片(cvNamedWindow函数可以改变显示图像的大小)。当不再需要加载到内存中的图像文件时,调用cvRealeaseImage函数以释放分配给该图像的内存(以矩阵的形式)。读取图片时,可以选择不同的读入效果和方式(主要是通过函数来实现与完成的),例如:函数CV_LOAD_IMAGE_GRAYSCALE将图像读取为灰度图,CV_LOAD_IMAGE_COLOR函数读取为彩图。一般采用读入灰色值较多,因为灰色图像会占用比彩色图像更少的的内存空间。
在读取图片时,imread函数读取图片可以获得与cvLoadImage同样的显示效果。cvLoadImage与imread的区别是:imread返回的是一个Mat数据对象而cvLoadImage返回的是指针,返回数据对象的特点是在生存周期结束时无用手动释放。
(2)通过cvCvtColor函数对所述目标物体图像进行灰度化处理;使用bitwise_not进行反色处理。
图像的灰度化是将彩色图像转换成为灰色图。众所周知,R(red)、G(green)、B(blue)是色彩的三原色,而opencv图像像素也遵循三原色模型,当RGB三值相等时,彩色表为灰色,R=G=B的值叫灰度值,灰度范围为0-255。
OpenCV中采用函数cvCvtColor,将第二个参数设置为COLOR_BGR2GRAY来完成彩色图像的灰度化;将第二个参数设置为COLOR_BGR2HSV来完成彩色图像到HSV空间的转换。
反色实现原理:求得图片的像素值S,再去运行像素的减法255-S来求得反色,并存入路径;灰度图像一般只会有一个通道即gay2[a,b]=(255-gay[a,b]);而彩色图片则拥有三种通道,即255-gay[a,b][0],255-gay[a,b][1],255-gay[a,b][2],反色处理函数为bitwise_not。
(3)通过cvThreshold函数对所述目标物体图像进行二值化处理;
在图像特征获取(如后续会用到的轮廓边缘检测)时,必须先对图像进行二值化处理。图像的二值化即是将彩色图片转换为灰白效果的图片,要想达到这种效果可以将图像像素点设置为255(0亦可)。图像的二值化使图像中数据量大为减少,使得目标轮廓更为明显的呈现出来。
OpenCV中对图像进行二值化处理会调用二值化关键函数cvThreshold()。
(4)通过函数getStructuringElement制作操作内核;然后再通过erode函数与dilate函数进行腐蚀与膨胀处理。
二值图像的腐蚀和膨胀讲就是拿一个一般为3*3的二值图与另目标二值图像进行像素点的比较,根据比对得到结果对图像进行更深层次的处理。膨胀算法:用一个一般为3X3或者稍大一些的小二值图与另外一张二值图像的像素点做“与”运算,如果结果都0,则最后的结构图像的像素为0,else为1。在膨胀化后二值图像通常会向外扩大一圈。膨胀操作会使物体的边界向外扩张,这种膨胀操作会使物体图像内部的一些小洞被补满。如果此时再对其进行腐蚀操作的话,外部边界会变回原来的样子,但是那些图像中的内部空洞会永远消失。腐蚀算法:同样使用了3X3或者稍大的(11*11)的二值图像的像素点与目标二值图像的每一个像素做“与”运算,当运算结果为1时,结构图像的该像素为1,else为0结果。如果结果为零,二值图像则会大幅减少与缩减。腐蚀操作通常被用来去掉物体的边缘点,图像中通常会将细小物体像素点被认为是边缘点,因此会整个被删去。此时再运行膨胀算法时,留下来的大物体会变回原来的大小,而那些被认作被删除的边缘点则会消失。
开运算就是上述先腐蚀再膨胀的过程,可以消除图像上细小的噪声,并平滑物体的边界
同理,闭运算是先膨胀后腐蚀的过程,可以填充物体内细小的空洞,并平滑物体边界。
本实施例中,由于噪声的干扰和影响极为严重,图像在阈值化后所得到边界不平滑的现象,通常物体区域会存在部分噪声孔,或者背景区域上散落的一些小的噪声物体。多次的开和闭运算可以有效地改善噪声的干扰,如果需要,会进行多次腐蚀之后再加上相同次数的膨胀。
参见图2所示,本实施例中可以先使用函数getStructuringElement来制作操作内核,然后再进行erode函数腐蚀与dilate膨胀。
(5)通过Canny函数检测图像边缘。
(6)通过findContours提取目标轮廓,得到一个连通区域的轮廓点的集合;再通过drawContours函数画出轮廓并将其直观的展现出来。
本实施例中,首先依据颜色与纹理等特征提取出目标的前景图,然后再对前景图进行深度提取查找出特征目标。OpenCV里提取目标轮廓需要调用的函数是findContours,函数会输入一个结果二值化处理过的图像,结果处理得出一个连通区域的轮廓点的集合:vector<vector<Point>>。最终再通过drawContours函数画出轮廓并将其直观的展现出来。
进一步的,使用opencv视觉图像辨别算法实现目标物体形状识别。
在完成视频图像的获取与图像形态处理与特征抓取后,主要考虑的问题是如何通过特征辨别(比对等算法)来对图片信息有效的归类,统筹与识别,并完成目标物体形状识别。
本实施例用到的方法包括SVM算法和轮廓比法。
a、SVM算法
SVM向量机其实一种分类算法,它可以将两种不同的类划分开来,还可以用于模式识别与回归分析。SVM分类机可以将特征空间进行分割并可以实现间隔最大化,将问题转化为一个凸二次规划问题的求解。
本实施例中基于svm算法采用了LIBSVM模式,包括:
按照LIBSVM软件包所要求的格式准备数据集;对数据进行简单的缩放操作;考虑选用RBF核函数;采用交叉验证选择最佳参数C与g;采用最佳参数C与g对整个训练集进行训练获取支持向量机模型;利用获取的模型进行测试与预测。
后面识别机器人形状实验中,将物体特征图片放入指定文件夹,形成了物体特征的图片库,以方便之后svm训练来识别图像形状。
svm训练机原理包括:
参见图6所示,首先设计一个svm训练机并配置训练机参数,并设定svm训练器路径;
开始训练正负样本,应用相应的opencv图像处理的矩阵思想,将图像样本文件(样本库)训练成为一组一维数组,分类并加以不同数字定义(0和1),同时机器人读入图像亦采用类似方法变换与处理。参见图7所示,注意定义好测试、加载和训练路径;
定义样本测试与分类方法,分别训练正负样本,用经过处理的图片一维矩阵求比对样本矩阵,通过数据比拟相似度,来确定读取图像更为接近哪一个样本,进而判断目标物体形状。
b、轮廓比对法
本实施例中用到的轮廓的特性包括:
b1轮廓的多边形逼近
轮廓的多边形逼近指的是:函数定义一个多边形来重新描绘图像中轮廓,从而大量削减了图像轮廓中的顶点数目。其实我们可以将多边形轮廓看作一种模糊化的轮廓,只是不再那么精细与特征明显,可以使用方法cvApproxPoly。
b2轮廓的关键点
轮廓的关键点是:关键点即指轮廓中突出顶点,一般会将它定义到一个轮廓关键点集合中,并使用cvFindDominantPoints函数来实现轮廓上的关键点的查找提取。
b3轮廓的周长和面积
轮廓的周长可以用cvContourPerimeter或者cvArcLength函数来获取。轮廓的面积可以用cvContourArea函数来获取。
本实施例中,使用轮廓Hu矩匹配法得到了相应的匹配效果。轮廓的Hu矩对包括缩放、旋转和镜像映射在内的变化具有不变性。cvMatchShapes函数可以很方便的实现对2个轮廓间的匹配。
如下将通过具体实验对本发明一种基于人形机器人识别物体形状和色彩的方法进行说明。
为了实现机器人通过视觉识别物体形状和色彩,研究opencv基于nao机器人平台带来的效果。实验以spyder为编程平台,Choregraphe为搭建模拟环境,提供svm库里的对比资源。
(1)环境编程与代码编程
本实验基于spyder进行编程,编程平台(含路径)参见图8所示。
该过程主要分为三步:环境配置、python32位skd配置与模块安装、代码编程。
环境配置:主要是为搭建开发环境。在操作系统中设置和指定一些环境参数,sypder也不例外,同样要进行大量的环境配置来实现path路径查询。当运行一段完整的代码时,很少能够得到完整的路径,path此时可以告知除了当下目录运行的程序,还可以去哪些目录寻找,寻找相应的文件。本次实验环境配置参见图9和图10所示。
python32位skd配置与模块安装:为代码运行安装相应的库import来维持代码的运行。前面有提到,opencv是一种跨平台计算机视觉库,它本身就带有很多由c和c++构成的库,每个库里有相应的算法来供python等接口语言调用来实现相应的功能。实现相应的代码则必须需要相应的库,而实验中无论是图像的识别处理,以及最终连接机器人摄像头与接口等都需要相应的库和模块支持。
(2)机器人svm训练机的搭建与正负样本库的建立
所以svm的训练机搭建与正负样本库的搭建成为实验前必要的准备,具体参见图6所示。
由上图可知,训练机采用了LIBSVM模式;对于线性核函数,没有专门需要设置的参数;核函数参数有三个参数,-d用来设置多项式核函数的最高此项次数,默认值是3。-g用来设置核函数中的gamma参数设置,默认值是1/k(k是类别数),实验中是分别对一个形状的辨识,所以参数置1。-r用来设置核函数中的coef0,默认值是0。
本次实验主要通过Choregraphe模拟获取所要识别的目标物体形状,加以保存并存入svm训练库中,作为识比对的样本。注意样本库越丰富(图片不限,但是越多越好),进行矩阵比对时,越精确。
(3)代码环境修改实现操控机器人
在spyder完成代码编程与svm库建立后,则要将编程代码里的摄像头,语音输出等转换为nao机器人的模式。这里需要注意的是,因为每台电脑和每个机器人定义的视频大小不一样,所以识别时要可以在机器人视觉恰当的位置截取部分图像来保持与库里的图像像素大小接近,或者可以根据个人喜好并重新调整库里样本的大小,并加以训练。像素的大小比例接近可以极大的提高识别的准确性。随后在代码编程里接入nao机器人的ip地址与端口,输入交流语音,在cmd命令行端口或者python直接运行代码,就实现机器人的识别与交流。具体修改模式框架参见图11所示。
(4)实验展示
a、颜色空间的建立以及初步的配置设定,具体参见图12所示;
b、对几何形的判定,具体参见图13所示;
c、对各种颜色球体的识别,具体参见图14所示。
以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (8)
1.一种基于人形机器人识别物体形状和色彩的方法,其特征在于,包括:
安装在所述人形机器人上的摄像头发送捕获的目标物体图像信息到处理器;
所述处理器通过与所述人形机器人平台相连接的OpenCV视觉库函数对接收到的所述目标物体图像信息进行色彩空间转换和外部轮廓特征提取,并与已建立的物体特征数据库进行比对获得目标物体形状,及与已建立的色彩空间进行比对获得目标物体的色彩;
所述人形机器人根据识别的形状及色彩进行语音反馈。
2.根据权利要求1所述的基于人形机器人识别物体形状和色彩的方法,其特征在于,所述处理器通过与所述人形机器人平台相连接的OpenCV视觉库函数对接收到的所述目标物体图像信息进行色彩空间转换,包括:
通过cvLoadImage或imread函数将目标物体图像加载至内存并提取图像像素点的RGB值;
通过cvCvtColor函数对所述目标物体图像进行HSV处理。
3.根据权利要求1所述的基于人形机器人识别物体形状和色彩的方法,其特征在于,所述处理器通过与所述人形机器人平台相连接的OpenCV视觉库函数对接收到的所述目标物体图像信息进行外部轮廓特征提取,包括:
通过cvLoadImage或imread函数将目标物体图像加载至内存;
通过cvCvtColor函数对所述目标物体图像进行灰度化处理;使用bitwise_not进行反色处理;
通过cvThreshold函数对所述目标物体图像进行二值化处理;
通过函数getStructuringElement制作操作内核;然后再通过erode函数与dilate函数进行腐蚀与膨胀处理;
通过Canny函数检测图像边缘;
通过findContours提取目标轮廓,得到一个连通区域的轮廓点的集合;再通过drawContours函数画出轮廓并将其直观的展现出来。
4.根据权利要求1所述的基于人形机器人识别物体形状和色彩的方法,其特征在于,与已建立的物体特征数据库进行比对获得目标物体形状,具体为在OpenCV视觉库中通过LIBSVM模式的SVM算法或轮廓比对算法实现目标物体形状的识别。
5.根据权利要求4所述的基于人形机器人识别物体形状和色彩的方法,其特征在于,通过LIBSVM模式的SVM算法实现目标物体形状的识别,包括:
设计一个svm训练机并配置训练机参数,训练机参数配置完成时设置svm训练机路径;
定义样本测试与分类方法,分别训练正负样本,用经过处理的一维矩阵图片比对样本矩阵,通过数据比拟相似度,来确定读取图像更接近哪一个样本,进而识别目标物体形状;其中,样本来自物体特征数据库。
6.根据权利要求4所述的基于人形机器人识别物体形状和色彩的方法,其特征在于,通过轮廓比对算法实现目标物体形状的识别,包括:
通过cvApproxPoly函数对轮廓进行多边形逼近处理;
通过cvFindDominantPoints函数实现轮廓上的关键点的查找提取;
通过cvContourPerimeter或cvArcLength函数获取轮廓的周长;通过cvContourArea函数获取轮廓的面积;
基于轮廓的Hu矩匹配法,通过cvMatchShapes函数实现2个轮廓的匹配,进而物体形状。
7.根据权利要求1所述的基于人形机器人识别物体形状和色彩的方法,其特征在于,所述OpenCV视觉库运行在Linux、Windows、Android或Mac OS操作系统上。
8.根据权利要求1所述的基于人形机器人识别物体形状和色彩的方法,其特征在于,所述人形机器人为NAO机器人。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810107611.4A CN108416786A (zh) | 2018-02-02 | 2018-02-02 | 一种基于人形机器人识别物体形状和色彩的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810107611.4A CN108416786A (zh) | 2018-02-02 | 2018-02-02 | 一种基于人形机器人识别物体形状和色彩的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108416786A true CN108416786A (zh) | 2018-08-17 |
Family
ID=63126808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810107611.4A Pending CN108416786A (zh) | 2018-02-02 | 2018-02-02 | 一种基于人形机器人识别物体形状和色彩的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108416786A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109318227A (zh) * | 2018-09-21 | 2019-02-12 | 厦门理工学院 | 一种基于人形机器人的掷骰子方法及人形机器人 |
CN109720381A (zh) * | 2018-12-28 | 2019-05-07 | 深圳华侨城卡乐技术有限公司 | 一种轨道车防撞方法及其系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2964771A1 (fr) * | 2010-09-13 | 2012-03-16 | Aldebaran Robotics S A | Procede de vision par ordinateur base sur des contraintes valides en geometrie projective pour un filtre de coherence spatiale |
CN104932683A (zh) * | 2015-05-28 | 2015-09-23 | 重庆大学 | 一种基于视觉信息的游戏体感控制方法 |
CN107194395A (zh) * | 2017-05-02 | 2017-09-22 | 华中科技大学 | 一种基于颜色识别和轮廓提取的物体动态定位方法 |
CN107358026A (zh) * | 2017-06-14 | 2017-11-17 | 中国人民解放军信息工程大学 | 一种基于脑机接口和物联网的残疾人智能陪护系统 |
-
2018
- 2018-02-02 CN CN201810107611.4A patent/CN108416786A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2964771A1 (fr) * | 2010-09-13 | 2012-03-16 | Aldebaran Robotics S A | Procede de vision par ordinateur base sur des contraintes valides en geometrie projective pour un filtre de coherence spatiale |
CN104932683A (zh) * | 2015-05-28 | 2015-09-23 | 重庆大学 | 一种基于视觉信息的游戏体感控制方法 |
CN107194395A (zh) * | 2017-05-02 | 2017-09-22 | 华中科技大学 | 一种基于颜色识别和轮廓提取的物体动态定位方法 |
CN107358026A (zh) * | 2017-06-14 | 2017-11-17 | 中国人民解放军信息工程大学 | 一种基于脑机接口和物联网的残疾人智能陪护系统 |
Non-Patent Citations (1)
Title |
---|
白雪冰: "《NAO机器人单目视觉研究及其在物体搜救中的应用》", 《万方知识服务平台》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109318227A (zh) * | 2018-09-21 | 2019-02-12 | 厦门理工学院 | 一种基于人形机器人的掷骰子方法及人形机器人 |
CN109318227B (zh) * | 2018-09-21 | 2021-03-26 | 厦门理工学院 | 一种基于人形机器人的掷骰子方法及人形机器人 |
CN109720381A (zh) * | 2018-12-28 | 2019-05-07 | 深圳华侨城卡乐技术有限公司 | 一种轨道车防撞方法及其系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108416268A (zh) | 一种基于双机器人视觉沟通的动作识别方法 | |
CN1894703B (zh) | 模式识别方法和设备 | |
CN103914699B (zh) | 一种基于色彩空间的自动唇彩的图像增强的方法 | |
CN102799901B (zh) | 一种多角度人脸检测方法 | |
CN108717524B (zh) | 一种基于双摄手机和人工智能系统的手势识别系统 | |
Konwar et al. | An American sign language detection system using HSV color model and edge detection | |
CN106485222A (zh) | 一种基于肤色分层的人脸检测方法 | |
CN108274476A (zh) | 一种人形机器人抓取球体的方法 | |
CN110956099B (zh) | 一种动态手势指令识别方法 | |
CN112906550B (zh) | 一种基于分水岭变换的静态手势识别方法 | |
EP3772038A1 (en) | Augmented reality display method of simulated lip makeup | |
KR20100113651A (ko) | 생물학 기반의 돌출맵을 이용한 점진적 시각 환경 인지를 통한 얼굴 검출과 점진적 얼굴 인지 방법 | |
CN110287787A (zh) | 图像识别方法、装置及计算机可读存储介质 | |
Mao et al. | Classroom micro-expression recognition algorithms based on multi-feature fusion | |
Fernando et al. | Low cost approach for real time sign language recognition | |
CN108830908A (zh) | 一种基于人工神经网络的魔方颜色识别方法 | |
CN108416786A (zh) | 一种基于人形机器人识别物体形状和色彩的方法 | |
KR101344851B1 (ko) | 영상처리장치 및 영상처리방법 | |
Manaf et al. | Color recognition system with augmented reality concept and finger interaction: Case study for color blind aid system | |
KR20210128358A (ko) | 인공지능 기반 감정 인식 장치 및 방법 | |
CN110147764A (zh) | 一种基于机器学习的静态手势识别方法 | |
Shengze et al. | Research based on the HSV humanoid robot soccer image processing | |
Wibawa | Vector quantization based color blindness test images | |
Liu et al. | Multi-face detection based on improved gaussian distribution | |
Zhao et al. | Face detection based on skin color |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180817 |