Skip to main content

机器人视觉

9.1 机器人视觉概述

9.1.1 视觉系统

机器人视觉是利用摄像机等成像仪器获取被测物的形状或图像信息,利用计算机、嵌入式系统等完成图像处理,将有效数据进行辨识,形成机器人运动指令的技术。

  • 计算机视觉(通用算法研究):更侧重于研究如何从图像中提取信息并且理解感知它们。
  • 机器视觉(工业领域应用): 机器视觉偏重于技术工程化,能够自动获取和分析特定的图像,以控制相应的行为。
  • 机器人视觉(机器人场景理解与交互中提供系统化的关于数据和算法的解决方案):不仅要考虑如何捕获输入视觉信息,而且还要对这些信息进行处理分析,进而提取出有用的信息给机器人。更强调将机器人运动学,机器人动力学、坐标转换等技术纳入到其技术和算法中。

视觉系统基本组成:

  1. 视觉采集系统(照明、镜头、摄像机、通信接口)
  2. 图像处理系统(工控主机、视觉处理软件,图形交互界面,等等)
  3. 其它外部设备(电传单元、机械单元、机器人本体)

功能与应用

  • 传感:即在任何条件下可感知外部的工作环境信息或者其感兴趣目标的信息,记录这些信息作为决策依据。
  • 理解:机器人仅仅具备感知能力是不足的,还需要具备对获取的信息进行解析的能力,将其解读为机器人语言,即识别、判断能力。例如,通过感知环境信息,可进行地图构建或者识别障碍物;通过目标感知,能够识别操作目标物体的位置,形状,运动状态、身份等,以此作为后续轨迹规划提供决策基础;
  • 行动:机器人可根据获取信息执行相对应的任务或动作;
  • 学习:外部的世界是非结构化、动态的,因此需要通过不断地学习来提高自身,以适应环境。

分类

按图像传感器数量区分:

  • 单目视觉:只有一个图像传感器,如摄像头。
  • 双目视觉:有两个图像传感器,如双目摄像头。
  • 多目视觉:有多个图像传感器,如多目摄像头。
  • 混合视觉

按图像信息分类:

  • 二维视觉系统:普通相机,视觉特征,平面信息
  • 三维立体视觉系统:单眼观测法、被动双目立体视觉法、主动光学三角测距、激光雷达测距、结构光法测距等

其它:

  • 根据视觉伺服控制中,摄像头是固定在手部还是固定位置,视觉系统可分为眼在手eye-in-hand和眼看手eye-to-hand两种视觉系统。

  • 根据观察者是否主动调整观测场景或者自身的参数来提高感知结果的质量(视觉系统还可以分为被动和主动视觉两种形式)。

  • 根据镜头不同,分为全景视觉系统,普通视觉系统。

  • 根据应用区分,分为导航视觉系统、抓取视觉系统、定位视觉系统、跟踪视觉系统等等。

案例

  1. 基于机器人视觉的果蔬采摘机器人目标定位和分类

  2. 基于机器人视觉的机械臂视觉伺服跟踪

  3. 基于全景机器人视觉的足球比赛机器人定位

机器人足球比赛,全自主形式,采集并处理场地环境的图像,目标识别和机器人自定位,其它机器人的位置、球的位置等信息,以供建立和维护环境模型并提交机器人决策系统进行运动规划和策略生成。

warning

请设计一套基于全景机器人视觉的足球比赛机器人定位方案。

解析

方案一:由全向反射镜与摄像机联合使用构建全向视觉系统。

方案二:由组合反射镜面和摄像机组成

9.1.2 视觉传感器

  1. 图像传感器
  • 主要作用:将光子转换成电子,是视觉传感器的核心部分。
  • 主要类型:CCDCMOS,两者的主要区别是从芯片中读出数据的方式不同。
  1. 视觉传感器
  • 主要作用:将图像采集功能和计算机处理能力相结合,能够执行检测,测量等任务。
  • 使用方式:视觉传感器通常无需编程,通过视觉软件界面完成配置。

CCD VS CMOS

9.2 视觉算法与图像处理

9.2.1 数据结构

数字图像:把连续的模拟图像在坐标空间和性质空间都离散化了的图像,数字图像可以简单地看作一个二维数组,每一个元素具有坐标(r,c)(r,c),幅值g(r,c)g(r,c)

一般来说,如果用bb位来表示像素的灰度值,一个单通道图像可以视为某个函数f:RGbf:R \rightarrow G_bR={1,2,...,h}×{1,2,...,w}R=\{1,2,...,h\} \times \{1,2,...,w\}是离散二维平面的一个矩形子集,Gb={0,1,...,2b1}G_b = \{0,1,...,2^b-1\}是灰度值集合。

将模拟图像转化为数字图像的过程。对连续图像空间进行离散化处理,每个采样点称为像素。每个采样点上的反射光强的值,称为该像素的灰度值。

9.2.2 灰度值变换

一种图像增强的手段,目的是通过调整图像的灰度值来提高对比度

灰度值变换的两种主要方式:灰度值线性变换灰度直方图均衡化

  • (1)灰度值线性变换:一种点变换,变换后的灰度值仅仅依赖于输入图像上同一位置的原始值 。
  • (2)灰度直方图均衡化:统计灰度值在图像中出现的频率,通过累积直方图进行灰度值映射的方法。
warning

假设一幅大小为64×6464\times64的图像,灰度等级为8,灰度值分布如下所示,对图像进行灰度直方图均衡化。 9 11

Details

解析 9 26

9.2.3 图像平滑

每幅图像都包含某种程度的噪声。噪声是叠加在灰度值上的随机变量。一般把噪声看作平稳随机过程,即对每个像素都是同分布。平滑的目的是减少和抑制图像噪声。

图像平滑(空间域增强)是基于图像中的每一个范围(邻域)内的像素进行灰度变换运算,某个点变换之后的灰度由该点邻域内的点的灰度值共同决定。

假设像素灰度值为gr,cg_{r,c}nr,cn_{r,c}为叠加在每个像素值上均值为0,方差为σ2\sigma^2的随机变量,则实际的灰度值表示为:

gr,c^=gr,c+nr,c\hat{g_{r,c}} = g_{r,c} + n_{r,c}

均值滤波

由概率论的知识可以知道,经过平均以后噪声的方差降低到原来的1/n1/n,标准差相应地降低到原来的1/n1/\sqrt{n}

假设随机过程是遍历的,那么空间均值可以通过像素数是(2n+1)(2m+1)(2n+1)(2m+1)的一个窗口(或掩码)按如下方法计算:

gr,c=1(2n+1)(2m+1)i=nnj=mmgr+i,c+jg_{r,c} = \frac{1}{(2n+1)(2m+1)}\sum_{i=-n}^{n}\sum_{j=-m}^{m}g_{r+i,c+j}

对于图像来说,均值滤波器可表示为

hr,c={1(2n+1)(2m+1)r<=nc<=m0othersh_{r,c} = \begin{cases} \frac{1}{(2n+1)(2m+1)} & |r|<= n ∩ |c|<= m \\ 0 & others \end{cases}

邻域平均法

滤波的思想和计算机视觉中的卷积模板的思想类似,都涉及窗口运算。所谓卷积是用一个卷积核和图像中对应位置做卷积运算,而滤波就是在在窗口内做相应的操作达到去除图像噪声的目的。

高斯滤波

在所有平滑滤波器中,高斯滤波器是最理想的平滑滤波器。

中值滤波

虽然均值滤波器对噪声有抑制作用,但同时会使图像变得模糊。即使是加权均值滤波,改善的效果也是有限的。中值滤波是一种非线性平滑方法,可以减少边缘的模糊。

gr,c=median{gri,cj}g_{r,c} = median\{g_{r-i,c-j}\}

中值滤波算法举例

将模板区域内的像素排序,求出中间值。例如:3x3的模板,第5大的是中值,对于同值像素,连续排列。

(10,15,20,20,20,20,20,25,100)(10,15,20,20,20,20,20,25,100)

中值滤波可理解为用一个窗口在图像上扫描,把窗口内包含的象素灰度按照升或降序排列,取灰度值居中的象素灰度代替窗口中心象素的灰度的过程

warning

如图所示是中值滤波原理示意图,你知道下次窗口扫描中心像素120,中值滤波后的像素值是多少吗?

9 15

Details

解析 90

warning

如下图所示为一幅图的像素值,使用大小为3×3的掩膜窗口分别对它进行平均值滤波和中值滤波。 9 18

Details

解析 9 27

多图像平均法

多图像平均法以噪声干扰的统计学特征为基础,即假定图像包含的噪声相对于每一象素是不相关的,且其数学期望为零(也就是说当取无穷多图像平均后,噪声值应为0,因为期望可用平均值来估计)

9.2.4 傅里叶变换

  • 可以利用频率成分和图像外表之间的对应关系。一些在空间域表述困难的增强任务,在频率域中变得非常普通
  • 滤波在频率域更为直观,它可以解释空间域滤波的某些性质
  • 可以在频率域指定滤波器,做反变换,然后在空间域使用结果滤波器作为空间域滤波器的指导
  • 一旦通过频率域试验选择了空间滤波,通常实施都在空间域进行

在图像处理中,二维离散傅里叶变换及反变换为

傅里叶变换的最重要的性质:

傅里叶变换在空间域的卷积等价于在频率域的相乘,通过将图像及使用的滤波器变换到频率域,将此二者在频率域的转换结果相乘后再转换回空间域,就实现了空间域的滤波。

9.2.5 几何变换

  • 图像的几何变换:是指用数学建模的方法来描述图像的位置、大小、形状等变换的方法,是通过数学建模来实现对数字图像进行几何变换处理。

  • 几何变换的内容:图像的空间平移、比例缩放、旋转、仿射变换和图像插值。

  • 几何变换的实质:改变像素的空间位置或估算新空间位置上的像素值。

插值方法

warning

例:如下图所示为一幅2x2的图像,以左下角像素点为原点,逆时针旋转30°,对旋转以后的图像采用最近邻域插值和双线性插值法进行像素灰度值估计。 9 19

解析

9 20

图像锐化

突出图像中的高频成分、或者使轮廓增强。图像锐化有助于我们在一个场景图像中找出目标物体的边缘。 边沿检测:局部微分算子思想。借用梯度的概念,用像素的一阶或者二阶导数来描述和检测边缘。

在图像处理技术中,通过模板卷积计算来获得一幅图像的每个位置的梯度

梯度算子:例如用[1,0,1][-1 ,0 , 1]对每一个1×3图像像素区域进行加权求和运算,可以得到行的方向上每个像素位置处的梯度像素

除了上述行、列梯度算子,还可以用以下算子进行多行或者多列的梯度运算。

图像分割

一种把图像分成若干个独立子区域的过程。

在实际应用中,关注图像中的目标或前景,对应图像中特定的、具有独特性质的区域。我们需要将这些区域分离提取出来,然后进一步对该区域进行特征提取、目标识别等。

例如,利用机器人检查传送带上的水果品质,需要检查水果是否有损坏,而且需要将直径大于一定阈值的水果识别出来并单独分拣包装,就需要先找到图像中水果的区域,将其分割出来后才能进一步计算尺寸等特征。

图像分割方法有边缘分割、阈值分割、区域分割、聚类分割等。

固定阈值分割:将图像内灰度值处于某一指定灰度值范围内全部点选到输出区域S中。

S={(r,c)Rgmin<=fr,c<=gmax}S=\{(r,c)∈R|g_{min}<=f_{r,c}<=g_{max}\}

动态阈值分割:指定一个像素比其所处的背景亮多少或暗多少。对平滑窗口内的像素作平滑处理,输出结果作为背景灰度的估计。将图像与背景进行比较, 是输入图像, 是平滑后的图像,用它来代表局部背景图像。

S={(r,c)Rfr,cgr,c>=T}S=\{(r,c)∈R|f_{r,c}-g_{r,c}>=T\}

特征提取

图像分割只是对分割结果的原始描述。通常,我们还需要进一步从分割结果中选出某些区域或轮廓,去除分割结果中不想要的部分。我们需要从区域确定一个或多个特征量。特征量有多种不同类型,区域特征是能够从区域自身提取出来的特征,灰度值特征还需要区域内的灰度值。

常用特征量:区域特征