• 欢迎浏览五点零机器人官方网站,我们主营工业机器人、协作机器人、焊接机器人、码垛机及配套设备,欢迎咨询!

视觉系统在机器人中的应用

机器人视觉系统组成及定位算法

     1. 机器人视觉

机器人视觉研究的核心内容是:视觉定位与导航、路径规划、避障、多传感器融合。视觉定位技术有多种,包括单目视觉、双目视觉、多目视觉、RGB-D等,后三种方法可以使图像具有深度信息,这些视觉“眼睛”亦可以称为VO--视觉里程计。VO在机器人乃至计算机视觉问题中,是一个通过分析处理相关图像序列来确定机器人的位置和姿态的解决方案。

    现今,随着计算机图像处理技术的不断进步以及传感器电子科学的飞速发展,使得越来越多的研究者采用摄像机作为全自主移动机器人的感知元器件,这主要是因为常见的超声或红外传感器感知信息能力有限,鲁棒性差,而视觉系统则可以弥补这些缺点。但是,现实世界是立体的、三维的,而投影在摄像头感光器件(CCD/CMOS)上的图像是二维的、平面的,因此,基于摄像机的视觉处理目标就是从感知到的二维图像中提取有关的三维世界信息,用于机器人的定位与导航。

     2. 视觉系统组成

机器人视觉系统主要由软件和硬件两部分组成,硬件方面主要有:视觉传感器(组)、图像采集卡、计算机(主处理机)、机器人及其附属的通信和控制模块等;软件方面主要包括:图像处理软件和机器人控制软件等。

     2.1 CCD/CMOS

     CCD/CMOS传感器原理:

一行硅成像元素,在一个衬底上配置光敏元件和电荷转移器件,通过电荷的依次转移,将多个象素的视频信号分时、顺序地取出来,如面阵CCD传感器采集的图像的分辨率可以从32×32到1024×1024像素等。

     2.2视频数字信号处理器

图像信号一般是离散的二维信号,一幅图像通常由512×512个像素组成(当然有时也有256×256,或者1024×1024个像素),每个像素有256级灰度,或者是3×8bits,RGB_16M种颜色,一幅图像就有256KB或者768KB(对于彩色)个数据。为了完成视觉处理的信号采样量化、编码压缩、预处理、分割、描述、识别和解释,上述前几项主要完成的数学运算可归纳为:

      (1)点处理:

      常用于对比度增强、密度非线性较正、阈值处理、伪彩色处理等。每个像素的输入数据经过一定关系映射成像素的输出数据,例如对数变换可实现暗区对比度扩张。 

     (2)空间域处理:

      二维卷积的运算常用于图像平滑、锐化、轮廓增强、空间滤波、标准模板匹配计算等。若用M×M卷积核矩阵对整幅图像进行卷积时,要得到每个像素的输出结果就需要作M2次乘法和(M2-1)次加法,由于图像像素一般很多,即使用较小的卷积和,也需要进行大量的乘加运算和访问存储器。

      (3)二维正交变换:

      常用二维正交变换有DFT、FFT、Walsh、Haar、DWT、DCT和K-L变换等,常用于图像增强、复原、二维滤波、数据压缩等。

      (4)坐标变换:

       常用于图像的放大缩小、旋转、移动、配准、几何校正和由摄影值重建图像等

      (5)统计量计算:

      如计算密度直方图分布、平均值和协方差矩阵等。在进行直方图均衡器化、面积计算、分类和K-L变换时,常常要进行这些统计量计算。

       3.视觉导航定位系统的工作原理

简单说来就是对机器人周边的环境进行光学处理,先用摄像头进行图像信息采集,将采集的信息进行压缩,然后将它反馈到一个由神经网络和统计学方法构成的学习子系统,再由学习子系统将采集到的图像信息和机器人的实际位置联系起来,完成机器人的自主导航定位功能。

   (1)摄像头标定算法:2D-3D映射求参

传统摄像机标定主要有 Faugeras 标定法、Tscai 两步法、直接线性变换方法、张正友平面标定法和 Weng迭代法。自标定包括基于 Kruppa 方程自标定法、分层逐步自标定法、基于绝对二次曲面的自标定法和 Pollefeys 的模约束法。视觉标定有马颂德的三正交平移法、李华的平面正交标定法和 Hartley 旋转求内参数标定法。

    (2)机器视觉与图像处理:

      a.预处理:灰化、降噪、增强、滤波、二值化、边缘检测....

       b.特征提取:特征空间到参数空间映射。算法有HOUGH、SIFT、SURF。

       c.图像分割:RGB-HIS。

       d.图像描述识别

   (3)定位算法:

     基于滤波器的定位算法主要有KF、SEIF、PF、EKF、UKF等。也可以使用单目视觉和里程计融合的方法。以里程计读数作为辅助信息,利用三角法计算特征点在当前机器人坐标系中的坐标位置,这里的三维坐标计算需要在延迟一个时间步的基础上进行。根据特征点在当前摄像头坐标系中的三维坐标以及它在地图中的世界坐标,来估计摄像头在世界坐标系中的位姿。这种降低了传感器成本,消除了里程计的累积误差,使得定位的结果更加精确。此外,相对于立体视觉中摄像机间的标定,这种方法只需对摄像机内参数进行标定,提高了系统的效率。

      4.定位算法基本实现过程:

简单的算法过程,可基于OpenCV进行简单实现。

      输入

      通过摄像头获取的视频流(主要为灰度图像,stereo  VO中图像既可以是彩色的,也可以是灰度的 ),记录摄像头在t和t+1时刻获得的图像为It和It+1,相机的内参,通过相机标定获得,可以通过matlab或者opencv计算为固定量。

      输出

     计算每一帧相机的位置+姿态

      基本过程

    1. 获得图像It,It+1

    2. 对获得图像进行畸变处理

    3. 通过FAST算法对图像It进行特征检测,通过KLT算法跟踪这些特征到图像It+1中,如果跟踪特征有所丢失,特征数小于某个阈值,则重新进行特征检测

    4. 通过带RANSAC的5点算法来估计两幅图像的本质矩阵

    5. 通过计算的本质矩阵进行估计R,t

    6. 对尺度信息进行估计,最终确定旋转矩阵和平移向量

在深度学习和人工智能大行其道的今天,数字图像处理技术也搭上了顺风车。主流的人工智能架构TensorFlow等,结合OpenCV强大的图像处理工具,可以衍生出非常多优异的算法,在提升处理效果的同时,处理速度和效率也大大提高。