您好, 访客   登录/注册

图像透视校正在移动机器人视觉识别中的应用

来源:用户上传      作者:

  摘  要:文章以第44届世界技能大赛移动机器人项目中的网格码识别为例,使用NI myRIO作为核心控制器,在LABVIEW集成开发环境下,对摄像头采集的图像进行二值化,提取网格码所在图像区域,运用图像透视校正的原理进行校正,对校正后的网格码像素点进行统计从而识别网格码信息。经实践,该方法对摄像头没有严格的位置角度要求,可以快速准确地识别网格码,图像透视校正在移动机器人视觉识别中有很好的使用效果。
  关键词:透视校正;移动机器人;LABVIEW;NI myRIO
  中图分类号:TP391.41 文献标志码:A         文章编号:2095-2945(2020)18-0028-03
  Abstract: This paper, taking the grid code recognition in the 44th World skills Competition mobile robot project as an example, uses NI myRIO as the core controller, under the LABVIEW integrated development environment, the image captured by the camera is binarized, the image area where the grid code is located is extracted, corrected by the principle of image perspective correction, and the corrected grid code pixels are counted to identify the grid code information. Through practice, this method has no strict position and angle requirements for the camera, and can identify the grid code quickly and accurately. The image perspective correction has a good effect in the visual recognition of mobile robot.
  Keywords: perspective correction; mobile robot; LABVIEW; NI myRIO
  1 概述
  攝像头作为移动机器人的眼睛,获取的图像经过处理后,可以提取出感兴趣的信息,进而控制移动机器人执行不同操作。由于摄像头安装的位置和角度,采集到的图像存在透视失真,所以需要对图像进行透视校正,以便更准确提取图像包含的信息。本文以第44届世界技能大赛移动机器人项目中的网格码识别为例,使用NI myRIO作为核心控制器,在LABVIEW集成开发环境下,运用图像透视校正的原理,提供了一种可以快速准确识别网格码的算法。
  2 NI myRIO控制器及LABVIEW开发环境
  世界技能大赛移动机器人项目以NI myRIO作为核心控制器,myRIO内嵌Xilinx Zynq芯片、双核ARM Cortex-A9作为处理器,是National Instruments公司生产的一款用于信号控制、机器人、机电一体化和嵌入式概念教学的便携式、实时(Real-time)嵌入式设备[1]。myRIO使用LABVIEW进行开发编程,LabVIEW是美国国家仪器公司推出的一种图形化程序开发环境[2],提供了一套功能强大的工具包,提高用户的开发效率。
  3 网格码识别程序设计
  第44届世界技能大赛移动机器人项目以网格码来作为移动机器人的任务指示,网格码如图1示例,网格码由9×9个方格组成,外围的方格全部涂黑,内部的方格图案用于记录不同的信息。
  最初的识别方案是采用模板匹配,该方法需要固定相机位置采集每个网格码的图案,根据比对相似度来识别,这种方法操作比较麻烦且准确率不高。本文提供了一种对图像透视校正后统计各方格的网格码识别算法,该算法的处理流程如图2所示,下面对算法中的关键内容进行说明。
  3.1 图像二值化
  移动机器人实际采集的图像如图3所示,图像中除了我们关系的网格码,还有其他的干扰信息,所以需要将这些干扰信息剔除掉,只保留网格码。这时就要用到了图像分割技术,而二值化是最简单的图像分割的方法[3]。本文主要关心黑白网格码,二值化保留图像中黑色部分,这样处理有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。二值化的流程为先提取图像的Intensity平面,接着对平面进行强度阈值过滤,保留网格码,到这里图像已完成了二值化,然后再去除二值化后图像上的一些噪点。二值化后的图像如图4所示,程序如图5所示。
  3.2 提取ROI
  在实际应用中,周边环境是变化的,二值化后的图像中的还会存在部分干扰块。LABVIEW提供了IMAQ Particle Analysis函数,该函数可以对二值化图像进行粒子分析,根据图像中的像素块进行分割,方便进一步对每个像素块进行分析。这里我们把所有的像素块进行后面的网格码识别,将网格码识别结果如果在网格码查找表中存在,那么该识别结果有效。
  3.3 图像标定
  图像透视校正需要找到多个现实中坐标点与图像中对应像素点,用于计算透视变换情况,这里选择网格码的四个角点作为标定点。依次从ROI的四个角按45°的方向进行扫描,第一个为1的像素点即为标定点。   3.4 图像透视校正
  假设现实世界中点的坐标为(w,z),摄像头拍得的照片发生了透视变换,对应的像素点坐标为(x,y),这两个点的坐标关系可以用下式表示:
  其中,a13和a23是非零值,x=x'/h且y=y'/h[4]。
  在LABVIEW中已经有相关的VI可以实现透视变换。“IMAQ Learn Perspective Calibration VI”这个VI实现了通过学习透视校正信息来纠正透视失真,这里需要提供一組标定点,包括标定点的像素坐标和现实世界坐标;“IMAQ Convert Real World to Pixel VI”这个VI根据已经学习的透视校正信息将现实世界坐标转换为像素点坐标;通过这两个VI我们就可以将网格码映射到图像中,这里对每个方格采样100个像素点。图像透视校正的处理程序如图6所示。
  3.5 识别网格码信息
  网格码经过透视校正后已经和标准网格非常接近,将网格码分割成9×9的区域分别进行面积计算,大于阈值的区域判断该方格为有色方格,否则为空白方格。
  4 软件测试
  上述网格码识别算法在不同结构的移动机器人上使用,均能准确识别网格码,如图7所示,摄像头位置与网格码在大角度情况下网格码依旧能准确识别。该算法在第45届世界技能大赛移动机器人项目各级选拔赛中被广泛使用,经实践表明运用透视校正方法的网格码识别算法使用简单,识别快速准确。
  5 结束语
  视觉识别是为移动机器人赋予自主运行能力的重要组成部分,图像透视校正可以有效的纠正透视失真,从而使后续的信息处理变得简单,LABVIEW作为一款强大的图形化编程工具,其IMAQVision函数库为图像处理提供了完整的应用功能[5],让复杂的图像识别技术变得简单,这对教学和技术更新有很好的促进作用。
  参考文献:
  [1]周凡.基于MyRIO嵌入式平台的双目立体视觉开发及应用[J].现代信息科技,2019,3(01):73-75.
  [2]宋铭.LabVIEW编程详解[M].电子工业出版社,2017.
  [3]吕金隆,李智.基于LabVIEW对图像采集与处理技术的研究[J].机械设计与制造工程,2016,45(08):31-34.
  [4]阮秋琦.数字图像处理的MATLAB实现[M].清华大学出版社,2013,4(01):182.
  [5]杨世凤,张旺,张立洲,等.基于Lab VIEW和IMAQ的动车车号自动识别[J/OL].天津科技大学学报:1-5[2020-05-28].http://kns.cnki.net/kcms/detail/12.1355.N.20200114.1413.006.html.
转载注明来源:https://www.xzbu.com/1/view-15252051.htm