1、.1.2第七章第七章 机器人的视觉及其应用机器人的视觉及其应用.3第一节第一节 概概 述述 每个人都能体会到,眼睛对人来说是每个人都能体会到,眼睛对人来说是多么重要。可以说人类从外界获得的信息,多么重要。可以说人类从外界获得的信息,大多数都是由眼睛得到的。人类视觉细胞大多数都是由眼睛得到的。人类视觉细胞的数量大约在的数量大约在 数量级,是听觉细胞的数量级,是听觉细胞的3000多倍,是皮肤感觉细胞的多倍,是皮肤感觉细胞的100多倍。从多倍。从这个角度来说,也可以看出视觉系统的重这个角度来说,也可以看出视觉系统的重要性。至于视觉的应用范围,简直可以说要性。至于视觉的应用范围,简直可以说是包罗万象。
2、是包罗万象。108.4 获取机器人周围世界的信息,人们为获取机器人周围世界的信息,人们为了从外界环境获取信息,一般是通过视觉、了从外界环境获取信息,一般是通过视觉、触觉、听觉等感觉器官来进行的,也就是触觉、听觉等感觉器官来进行的,也就是说如果想要赋予机器人较为高级的智能,说如果想要赋予机器人较为高级的智能,那么离开视觉系统是无法做到的。那么离开视觉系统是无法做到的。 .5.6对于智能机器人来说,视觉系统是必不可对于智能机器人来说,视觉系统是必不可少的。从少的。从20世纪世纪60年代开始,人们便着手年代开始,人们便着手研究机器人的视觉系统。一开始只能识别研究机器人的视觉系统。一开始只能识别平面上
3、的类似积木的物体。到了平面上的类似积木的物体。到了20世纪世纪70年代,已经可以认识某些加工部件,也能年代,已经可以认识某些加工部件,也能认识室内的桌子、电话等物品了。当时的认识室内的桌子、电话等物品了。当时的研究工作虽然进展很快,但无法应用于实研究工作虽然进展很快,但无法应用于实际。这是因为视觉系统的信息量极大,处际。这是因为视觉系统的信息量极大,处理这些信息的硬件系统十分庞大,花费的理这些信息的硬件系统十分庞大,花费的时间也很长。时间也很长。 .7.8 随着大规模集成技术的发展,计算机随着大规模集成技术的发展,计算机内存的体积不断缩小,价格急剧下降,速内存的体积不断缩小,价格急剧下降,速度
4、不断提高,视觉系统也走向了实用化。度不断提高,视觉系统也走向了实用化。进入进入20世纪世纪80年代后,由于微机的飞速发年代后,由于微机的飞速发展,实用的视觉系统已经进入各个领域,展,实用的视觉系统已经进入各个领域,其中用于机器人的视觉系统数量是很多的。其中用于机器人的视觉系统数量是很多的。 .9第二节第二节 机器人的视觉系统的组成机器人的视觉系统的组成及其原理及其原理.10.11一、机器人视觉系统的硬件系统一、机器人视觉系统的硬件系统机器人视觉系统的硬件组成:机器人视觉系统的硬件组成:(1)景物和距离传感器:常用的有摄像机、)景物和距离传感器:常用的有摄像机、CCD图像传感器、超声波传感器和结
5、构光图像传感器、超声波传感器和结构光设备等。设备等。(2)视频信号数字化设备。)视频信号数字化设备。(3)视频信号快速处理器:如)视频信号快速处理器:如DSP系统。系统。(4)计算机及其外设。)计算机及其外设。(5)机器人及其控制器。)机器人及其控制器。.12 机器人视觉的软件系统有以下几个部机器人视觉的软件系统有以下几个部分组成:分组成:(1)计算机系统软件:选用不同类型的计)计算机系统软件:选用不同类型的计算机,就有不同的操作系统和它所支撑的算机,就有不同的操作系统和它所支撑的各种语言、数据库等。各种语言、数据库等。(2)机器人视觉信息处理算法:图像预处)机器人视觉信息处理算法:图像预处理
6、、分割、描述、识别和解释等算法。理、分割、描述、识别和解释等算法。(3)机器人控制软件。)机器人控制软件。.13二、二、CCD原理原理光导摄像管工作原理光导摄像管工作原理(a)光导摄像管示意图;光导摄像管示意图;(b)电子束扫描方式电子束扫描方式 .14CCD传感器传感器(a)CCD行扫描行扫描传感器;传感器;(b)CCD面阵传面阵传感器感器 .15三、视频数字信号处理器三、视频数字信号处理器 图像信号一般是二维信号,一幅图像图像信号一般是二维信号,一幅图像通常由通常由512512个像素组成(当然有时也个像素组成(当然有时也有有256256,或者,或者10241024个像素),个像素),每个像
7、素有每个像素有256级灰度,或者是级灰度,或者是38bit,红黄兰红黄兰16兆种颜色,一幅图像就有兆种颜色,一幅图像就有256KB或者或者768KB(对于彩色)个数据。完成视(对于彩色)个数据。完成视觉处理的传感、预处理、分割、描述、识觉处理的传感、预处理、分割、描述、识别和解释。别和解释。.16 如果在通用的计算机上处理视觉信号,主要如果在通用的计算机上处理视觉信号,主要有两个局限性:一是运算速度慢,二是内存容量有两个局限性:一是运算速度慢,二是内存容量小,为了解决上述问题,可以采用如下方案:小,为了解决上述问题,可以采用如下方案:(1)利用大型高速计算机组成通用的视频信号)利用大型高速计算
8、机组成通用的视频信号处理系统。但是缺点是成本太高。处理系统。但是缺点是成本太高。(2)小型高速阵列机。)小型高速阵列机。(3)采用专用的视觉处理器。为了适应微型计)采用专用的视觉处理器。为了适应微型计算机视频数字信号处理的需要,不少厂家设计了算机视频数字信号处理的需要,不少厂家设计了专用的视觉信号处理器,它的结构简单,成本低,专用的视觉信号处理器,它的结构简单,成本低,性能指标高。多数采用多处理器并行处理,流水性能指标高。多数采用多处理器并行处理,流水线式体系结构以及基于线式体系结构以及基于DSP的方案。的方案。.17第三节 视觉信息的处理.18视觉信息的处理如图所示,包括预处理、视觉信息的处
9、理如图所示,包括预处理、分割、特征抽取和识别四个模块。分割、特征抽取和识别四个模块。 视觉处理过程及方法视觉处理过程及方法 .19一、预处理一、预处理 预处理的主要目的是清除原始图像中预处理的主要目的是清除原始图像中各种噪声等无用的信息,改进图像的质量,各种噪声等无用的信息,改进图像的质量,增强感兴趣的有用信息的可检测性,从而增强感兴趣的有用信息的可检测性,从而使后面的分割、特征抽取和识别处理得以使后面的分割、特征抽取和识别处理得以简化,并提高其可靠性,机器视觉常用的简化,并提高其可靠性,机器视觉常用的预处理包括去噪、灰度变换和锐化等。预处理包括去噪、灰度变换和锐化等。.201.去噪去噪 原始
10、图像中不可避免地会包括许多噪原始图像中不可避免地会包括许多噪声,如传感器噪声、量化噪声等。通常噪声,如传感器噪声、量化噪声等。通常噪声比图像本身包含较强的高频成分,而且声比图像本身包含较强的高频成分,而且噪声具有空间不相关性,因此简单的低通噪声具有空间不相关性,因此简单的低通滤波是最常用的一种去噪方法。滤波是最常用的一种去噪方法。 .212灰度变换灰度变换由于光照等原因,原始图像的对比度由于光照等原因,原始图像的对比度往往不理想,利用各种灰度变换处理可以往往不理想,利用各种灰度变换处理可以增强图像的对比度。增强图像的对比度。.223. 锐化锐化 与平滑处理相反,为了突出图像中的与平滑处理相反,
11、为了突出图像中的高频成分,使轮廓增强可以采用锐化处理高频成分,使轮廓增强可以采用锐化处理.23二、图像的分离二、图像的分离1. 图像的边沿检测图像的边沿检测 边沿检测作为各种物体检测算法的最初边沿检测作为各种物体检测算法的最初预处理步骤,在机器人视觉中具有重要的预处理步骤,在机器人视觉中具有重要的作用。作用。 (1)基本公式)基本公式 从原理上看,绝大多数边沿检测方法从原理上看,绝大多数边沿检测方法的主导思想是局部微分算子的计算。的主导思想是局部微分算子的计算。 .24用微分算子检测边沿的基本原理用微分算子检测边沿的基本原理 (a) 在暗背景上的亮物体;在暗背景上的亮物体;(b) 在亮背景上的
12、暗物体在亮背景上的暗物体 .25(2)梯度算子)梯度算子 图像图像f(x,y)在位置在位置(x,y)处的梯度,定义处的梯度,定义为二维矢量:为二维矢量: 对于边沿检测,我们最关心的是这个对于边沿检测,我们最关心的是这个矢量的幅值,幅值通常称为梯度矢量的幅值,幅值通常称为梯度 G ( , )f x yGGfxfyxy.26 (3)阈值化)阈值化 图像阈值是工业机器人视觉系统进行图像阈值是工业机器人视觉系统进行物体检测的主要技术之一,尤其是对于高物体检测的主要技术之一,尤其是对于高数据吞吐量的应用,阈值化更为有效。数据吞吐量的应用,阈值化更为有效。可分割的强度直方图可分割的强度直方图(a)利用单一
13、阈值分割;利用单一阈值分割;(b)多阈值分割多阈值分割 .272. 图像的边沿连接和边界检测图像的边沿连接和边界检测 在理想情况下,检测强度不连续性的在理想情况下,检测强度不连续性的方法给出的应当只是那些位于物体与背景方法给出的应当只是那些位于物体与背景之间边界处的像素。实际上,噪声的存在,之间边界处的像素。实际上,噪声的存在,不均匀照明引起的边界中断,以及其他因不均匀照明引起的边界中断,以及其他因素造成的意外强度不连续性,都会使得检素造成的意外强度不连续性,都会使得检测出的像素难以完全表征边界。因此,在测出的像素难以完全表征边界。因此,在边沿检测算法之后,通常要进行连接和用边沿检测算法之后,
14、通常要进行连接和用其它边界检测的方法进行处理,以便使边其它边界检测的方法进行处理,以便使边沿像素形成一个有意义的物体边界。沿像素形成一个有意义的物体边界。 .28 (1)用局部分析方法进行边沿连接)用局部分析方法进行边沿连接 这是最简单的一种方法。在已进行边这是最简单的一种方法。在已进行边沿检测处理的图像的每一点沿检测处理的图像的每一点(x,y)附近小邻附近小邻域(例如域(例如33或或55)内,分析像素的特)内,分析像素的特性,将所有相似的点连接在一起,这样便性,将所有相似的点连接在一起,这样便形成了具有某些共同特性的像素边界。形成了具有某些共同特性的像素边界。 有两种基本特性可用于建立边沿像
15、素有两种基本特性可用于建立边沿像素的相似性:(的相似性:(1)用于检测边沿像素对梯度)用于检测边沿像素对梯度算子的响应速度;(算子的响应速度;(2)梯度的方向。)梯度的方向。 .29【例】研究如图【例】研究如图 (a)所示的汽车后部的图像。我们的目的所示的汽车后部的图像。我们的目的是从图像中找出那些适于安置汽车牌照的矩形框。检测出是从图像中找出那些适于安置汽车牌照的矩形框。检测出相应的水平和垂直边沿,便可获得所需的矩形。相应的水平和垂直边沿,便可获得所需的矩形。.30图图 (b)和和(c)所示为所示为Sobel算子的水平和垂直分量。在算子的水平和垂直分量。在图图 (d)所示为梯度值大于所示为梯
16、度值大于25并且梯度方向差小于并且梯度方向差小于15的所有点的连接结果。应用上述准则于图的所有点的连接结果。应用上述准则于图 (c)的每一行,便求得所需水平线,然后再应用图的每一行,便求得所需水平线,然后再应用图 (b)的每一列便可得到垂直线。进一步的处理包括连接的每一列便可得到垂直线。进一步的处理包括连接具有小间断区间的边沿线段和删除孤立的短线。具有小间断区间的边沿线段和删除孤立的短线。.31(2)阈值化)阈值化 前面我们引入了阈值化的概念。在大多前面我们引入了阈值化的概念。在大多数情况下,由任意照明条件产生的图像,数情况下,由任意照明条件产生的图像,在用阈值化技术分割时,需要使用某些类在用
17、阈值化技术分割时,需要使用某些类型的局部分析,以补偿非均匀照明的影响型的局部分析,以补偿非均匀照明的影响(如阴影、反射等)。在进行阈值化时,(如阴影、反射等)。在进行阈值化时,关键是分割阈值的选择。关键是分割阈值的选择。 .32第四节第四节 数字图像的编码数字图像的编码 数字图像要占用大量的内存,实际使用时,总数字图像要占用大量的内存,实际使用时,总是希望用尽可能少的内存保存数字图像,为此,可是希望用尽可能少的内存保存数字图像,为此,可以选用适当的编码方法来压缩图像数据,目的不同,以选用适当的编码方法来压缩图像数据,目的不同,编码的方法也不同。例如在传送图像数据的时候,编码的方法也不同。例如在
18、传送图像数据的时候,应选用抗干扰的编码方法;在恢复图像的时候,因应选用抗干扰的编码方法;在恢复图像的时候,因为不要求完全恢复原来的画面,特别是机器人视觉为不要求完全恢复原来的画面,特别是机器人视觉系统,只要求认识目标物体的某些特征或图案,在系统,只要求认识目标物体的某些特征或图案,在这种情况下,为了使数据处理简单、快速,只要保这种情况下,为了使数据处理简单、快速,只要保留目标物体的某些特征,能达到区别各种物体的程留目标物体的某些特征,能达到区别各种物体的程度就可以了。这样做可以使数据量大为减少。度就可以了。这样做可以使数据量大为减少。 .33 常用的编码方法有轮廓编码和扫描编常用的编码方法有轮
19、廓编码和扫描编码。所谓轮廓编码是在画面灰度变化较小码。所谓轮廓编码是在画面灰度变化较小的情况下,用轮廓线来描述图形的特征。的情况下,用轮廓线来描述图形的特征。 具体的说,就是用一些方向不同的短具体的说,就是用一些方向不同的短线段组成多边形,用这个多边形来描绘轮线段组成多边形,用这个多边形来描绘轮廓线。各线段的倾斜度可用一组码来表示,廓线。各线段的倾斜度可用一组码来表示,称为方向码。称为方向码。 .34链链式式编编码码说说明明图图 (a)四方向码;(b)八方向码; (c)四方向码例图;(d)八方向码例图 .35 所谓扫描法,是将一个画面按一定的间距所谓扫描法,是将一个画面按一定的间距进行扫描,在
20、每条扫描线上找出浓度相同进行扫描,在每条扫描线上找出浓度相同区域的起点和长度。区域的起点和长度。 格点式编码方式 .36第六节 机器人视觉系统应用举例.37 机器人的的视觉应用可以大致分为机器人的的视觉应用可以大致分为3类:类:视觉检验,视觉导引和过程控制,以及近视觉检验,视觉导引和过程控制,以及近年来迅速发展的移动机器人视觉导航。其年来迅速发展的移动机器人视觉导航。其应用领域包括电子工业、汽车工业、航空应用领域包括电子工业、汽车工业、航空工业,以及食品和制药等各个工业领域。工业,以及食品和制药等各个工业领域。.38 例如机器人在完成装配、分类或搬运作业时,例如机器人在完成装配、分类或搬运作业
21、时,如果没有视觉反馈,给机器人提供的零件必须保如果没有视觉反馈,给机器人提供的零件必须保持精确固定的位置和方向,为此对每一特定形状持精确固定的位置和方向,为此对每一特定形状的零件要用专门的振动斗式上料器供料,这样才的零件要用专门的振动斗式上料器供料,这样才能保证机器人准确的抓取零件。但由于零件的形能保证机器人准确的抓取零件。但由于零件的形状、体积、重量等原因,有时不能保证提供固定状、体积、重量等原因,有时不能保证提供固定的位置和方向,或者对于多种零件、小批量的产的位置和方向,或者对于多种零件、小批量的产品用上料器是不经济的,这时用机器视觉系统完品用上料器是不经济的,这时用机器视觉系统完成零件的
22、识别、定位和定向,引导机器人完成零成零件的识别、定位和定向,引导机器人完成零件分类、取放,以至拧紧和装配则是一种经济有件分类、取放,以至拧紧和装配则是一种经济有效的方法。效的方法。 .39 另一种视觉导引的应用也是起始于汽另一种视觉导引的应用也是起始于汽车工业,即焊接机器人的视觉导引车工业,即焊接机器人的视觉导引焊焊缝跟踪。汽车工业使用的机器人大约一半缝跟踪。汽车工业使用的机器人大约一半是用于焊接。是用于焊接。 .40 另一典型的应用是荷兰另一典型的应用是荷兰Oldelft公司研公司研制制Seampilot视觉系统。该系统已被许多机视觉系统。该系统已被许多机器人公司用于组成视觉导引焊接机器人。
23、器人公司用于组成视觉导引焊接机器人。 .41.42 它由三个功能部件组成:激光扫描器它由三个功能部件组成:激光扫描器/摄像机、摄像机控制单元摄像机、摄像机控制单元(CCU)、信号处、信号处理计算机(理计算机(SPC)。)。 剖面轮廓数据经摄像机控制单元剖面轮廓数据经摄像机控制单元(CCU)送给信号处理计算机(送给信号处理计算机(SPC),将这一剖),将这一剖面数据与操作手预先选定的焊接接头板进面数据与操作手预先选定的焊接接头板进行比较,一旦匹配成功即可确定焊缝的有行比较,一旦匹配成功即可确定焊缝的有关位置数据,并通过串口将这些数据送到关位置数据,并通过串口将这些数据送到机器人控制器。机器人控制器。