
三维立体视觉的提取.docx
7页三维立体视觉信息的提取一、问题背景实现方法 11. 图像的获取与预处理 12. 边缘信息提取 23, 边缘检测与轮廓连结 34, 利用线条分类识别三维物体 4从二维图像中提取三维特征的局限性 6一、问题背景机器视觉是机器人感知周围环境的主要途径之一所谓机器人视觉即:使机器人具有视觉感知功能的系统机器人视觉可以通过 视觉传感器获取环境的二维图像,并通过视觉处理器进行分析和解释,进而转换为 符号,让机器人能够辨识物体,并确定其位置为了判断一个物体在空间的位置和 形状,机器人往往需要获取两类信息,即明暗信息和距离信息目前成熟的光电成 像技术都只能捕获二维明暗信息,而不能获得距离信息,所以直接通过这种途径获 得的机器视觉也只能是二维的随着科学技术的发展,三维立体视觉的解决方案也如雨后春笋般涌出,其中就 包括双目立体视觉(多镜头法),狭缝光投影法,时间差法等,但是如果能够要通 过对二维图像(准确地说是2.5维图像,即含有透视关系的二维图像)的特征进行 提取,并进而得到三维信息的话,无疑可以大幅度降低系统的复杂度本文将论述一种从二维图像中提取三维信息的方法这种方法对二维图像的边 缘进行识别的处理,通过边缘的连接模式判断出视野中物体的三维特征。
这种方式 输出的输出结果是一种与物体的三维结构相对应的二维特征组,后续处理也较为方 便一、实现方法1. 图像的获取与预处理用于进行三维特征提取的图像是一幅常规的二维灰度图,所以使用一个常规的 CCD或CMOS图像传感器即可满足要求图像需要进行量化处理,即把图像信息分 成许多像素点,这些亮点经过A/D转换后即可输入计算机进行处理大多数情况下,图像传感器获得的图像并不完美,其中难免会出现暗点或亮点 图像中的这些暗点和亮点统称“噪点”噪点不仅降低了图像的分辨率,还会对后 期的特征提取等处理造成很大的干扰,甚至引起识别错误此外由于外界光线强度 的变化,图像的亮度分布也时刻在变化,为了给形态学处理的图像提供统一的条件, 计算机在把获得图像进行形态学处理前,必须先对其进行预处理降噪是一种常见的预处理形式,与其对应的算法成为滤波算法常见的滤波算 法分为线性滤波和非线性滤波,线性滤波又分为均值滤波和高斯滤波等线性滤波 器的主要原理是二维卷积,也就是把某一像素点的亮度用周围一定范围的像素的亮 度的某种运算组合来表示,下式就表示了一个3x3的均值滤波器的算子:非线性滤波器(如中值滤波器)虽然没有采用卷积运算,但它也类似的在原始 图像中取出一个范围,并对这个把处于这个范围的中心的像素的亮度用这个范围内所有像素的亮度的某种关系表示。
这些滤波器都能够在很大程度上降低噪点的出现 频率,为后期的形态学处理提供条件亮度均衡化则是用来弥补获取的图像曝光错误的一种方式众所周知,图像如 果曝光不足会导致信息不明确,而曝光过度则会导致细节丢失,这都是形态学处理 时不愿意遇到的情况亮度均衡化算法就是统计一幅图像的灰度直方图,并对其做 一定的变换,使其曝光正确2. 边缘信息提取二维图像的信息量非常大,直接处理的难度非常大,所以我们必须从一副图像 中提取出部分有用的信息,再对这些信息进行处理边缘轮廓信息是图像中非常重 要的一种信息,所以往往被作为形态学处理的第一步所谓边缘提取算法就是把一副灰度图像转化为二值图像,灰度图像中的轮廓在 二值图像中用1表示,而非轮廓位置用0表示边缘提取算法的种类非常地多,《机 器人技术基础》一书中提到的算法称为Robert算子卷积法Robert算子可以表示 为:把Robert算子与二维图像卷积,可以得到图像的梯度图实际应用中,Robert算 子边缘定位准,但是对噪声敏感适用于边缘明显且噪声较少的图像分割Roberts 边缘检测算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结 果边缘不是很平滑。
由于Robert算子通常会在图像边缘附近的区域内产生较宽的 响应,故采用上述算子检测的边缘图像常需做细化处理,边缘定位的精度不是很高 图2所示为利用Robert算子提取出的图1边缘的图像(使用MATLAB处理)图1:图像传感器拍摄到的原始图像图2:用ROBERT算子提取边缘的结果3. 边缘检测与轮廓连结边缘检测方法的基本思想是先检测图像的边缘点,再按照一定的策略连接成轮廓,从而构成分割区域边缘检测主要采用各种算子来发现、强化图像中那些可能 存在边缘的像素点边缘检测算子除了有Roberts算子外,还有Sobel算子和Prewitt 算子、高斯偏导滤波器以及Canny边缘检测器等这里采用了一种简单的梯度边缘检测算法首先利用Y(亮度分量)构建256级 灰度图像,再通过设定一阈值将该图像化成只有0和1的二值图像,然后根据一个 点与其周围点的关系来判断它是否在物体轮廓上如下图:O kP(i ,P(i +1,P(i , j+1)P(i +1, j+1)判断轮廓点方法示意图f(i,j) - f(i+1,j+1)图像中有一个点P(i,j),灰度为f(i,j),与它相邻的3个点分别为P(i,j+1)、 P(i+1,j)、P(i+1,j+1),灰度分别是 f(i,j+1) f(i+1,j) f(i+1,j+1)。
这些点 的灰度非0即1,则该四个点的灰度梯度为f(i+1,j) - f(i,j+1)D(i,j)=当D\i,j) = 0时,认为P点为非轮廓点,而当D(i,j) = 0时,认为P点为轮 廓点计算机对图像中的每一点均按此算法予以处理后,便可知哪些点在轮廓上, 哪些点不在轮廓上把判断出在轮廓上的点连结起来,即成为物体的轮廓轮廓连结的一种方法如下图所示:在数字图像上每一像素可以和它周围的8个像素发生联系,如果中心点判定是 轮廓点,而8个点中有一个被判定也是轮廓点,那么就把这两个连结起来接着再 去判断被连结的那个点和它周围8个点的关系,如此类推,便可将整个轮廓连结起 来下图为该种算法的Matlab仿真图:(a)待分割原图 由)边缘检测效果图4. 利用线条分类识别三维物体提取出二维图像的轮廓信息,还不足以分析出其中的三维特征,我们必须对轮廓 信息进行进一步的模式化处理从轮廓中提取特征为此,可以将线条进行分类一种方法是将线条分成以下五种类型,我们把轮廓的连接点分为如图3所示的5种 类型:图3:五种轮廓连接点类型一幅二维图像的三维特征往往使用轮廓连接点的拓扑图表示,然后再把图4中的轮廓连接点归类到这五种类型下,结果如图4所示:图4:轮廓图中连接点的分类 最后,我们在根据各个轮廓节点之间的连接关系,把图 个拓扑的形式:4中所示的节点归纳成一图5:轮廓连接点拓扑图计算机中可以储存有多种物体的拓扑图模板,计算出这个拓扑图后,程序只需 把这幅拓扑图与内存中的各种拓扑进行比较,即可得知这是一个立方体的物体。
二、从二维图像中提取三维特征的局限性虽然从二维图像中提取图像的三维特征的算法对设备的要求低,处理的数据量 相对较小,输出地结果也比较规整但是这种算法也有其局限性首先,这种机器视觉智能识别由各种边缘组成的较有规则的物体,而对于一些 圆滑的物体,如球等的识别效果就很不理想了其次,这种机器视觉依赖于特定的透视角度,如果机器人的视角发生变化,处 理得到的节点拓扑图可能也会发生巨大的变化,适应性不强最后,这种算法虽然能够识别三维物体,但仍然无法获得深度信息也就是说, 机器人虽然认出了这是一个立方体,但仍然无法获知它的厚度由此可见,二维图像提取三维特征的算法的确能够区别少数几个物件,但若要 进一步获得物体的三维信息,还是需要结合一些其他的三维立体视觉算法。
