北理工贾云德《计算机视觉》chapter03二值图像分析
- 格式:doc
- 大小:1.17 MB
- 文档页数:20
第29卷第3期2003年5月 光学技术OPTICAL TECHN IQU E Vol.29No.3May 2003文章编号:100221582(2003)0320354204一种双目立体视觉系统的误差分析方法Ξ刘佳音,王忠立,贾云得(北京理工大学视觉与智能系统实验室,北京 100081)摘 要:基于摄像机透视成像的针孔模型,分析了立体视觉中摄像机标定和三维重建过程的主要误差来源。
基于各主要误差源的模型分析,建立了双目视觉系统3D 测量误差与摄像机参数、基线长度、测量距离等因素之间的关系式。
如已知相关参数,可以估算出双目视觉系统的3D 测量精度,或根据3D 测量精度要求,初步确定摄像机的内部各项参数和基线长度、测量距离等参数。
关键词:双目立体视觉;针孔模型;标定;三维重建;误差分析;中图分类号:TP242.6+2 文献标识码:AError analysis of binocular stereo vision systemLI U Jia 2yin ,WANG Zhong 2li ,J I A Y un 2de(Department of Computer and Science ,Beijing Institute of Technology ,Beijing 100081,China )Abstract :Various error sources of binocular stereo system are analyzed based on pinhole camera model for estimation of the depth error.The relationship between the depth error of a stereo vision system and other factors such as baseline ,depth and camera parameters ,are presented.The computation of the precision of stereo vision is also discussed.The proposed method is able to approximate depth error according to the camera parameters or compute the camera parameters according to the pre 2de 2termined precision.K ey w ords :stereo vision ;pinhole model ;calibration ;reconstruct ;error analysis1 简 介物体的三维形态特征是物体最重要的特征之一[1],人们一直在研究各种方法对物体三维表面进行测量。
基于互补子空间线性判别分析的人脸识别
张小洵;贾云得
【期刊名称】《北京理工大学学报》
【年(卷),期】2006(26)3
【摘要】基于随机子空间,提出了一种用于人脸识别的互补子空间线性判别分析方法.与Fisherface和零空间线性判别分析相比,该方法同时在主元子空间和零空间中进行判别分析,并在特征层融合这两个子空间的判别特征.根据最适宜的零空间状态构建随机子空间,随机子空间的融合在决策层进行.多个人脸数据库上的实验结果表明,本算法能够有效地解决线性判别分析中的小样本规模问题.
【总页数】5页(P206-210)
【关键词】线性判别分析;随机子空间;互补子空间;人脸识别
【作者】张小洵;贾云得
【作者单位】北京理工大学计算机科学技术学院
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.基于核双子空间线性判别分析人脸识别方法 [J], 葛熠;王亭亭;韩月;李峰
2.基于半监督LDA特征子空间优化的人脸识别算法 [J], 纪明君;刘漫丹;才乐千
3.基于图像子空间和核稀疏表示的人脸识别及同态加密方案设计与研究 [J], 王素健;王晅;
4.基于子空间的人脸识别方法的分析与研究 [J], 吕芳芳
5.基于特征子空间直和的跨年龄人脸识别方法 [J], 叶继华;郭祺癑;江爱文;黎欣因版权原因,仅展示原文概要,查看原文内容请购买。
第六章边缘检测边缘(edge)是指图像局部强度变化最显著的部分.边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础.图像分析和理解的第一步常常是边缘检测(edge detection).由于边缘检测十分重要,因此成为机器视觉研究领域最活跃的课题之一.本章主要讨论边缘检测和定位的基本概念,并使用几种常用的边缘检测器来说明边缘检测的基本问题.图像中的边缘通常与图像强度或图像强度的一阶导数的不连续性有关.图像强度的不连续可分为:(1) 阶跃不连续,即图像强度在不连续处的两边的像素灰度值有着显著的差异;(2) 线条不连续,即图像强度突然从一个值变化到另一个值,保持一个较小的行程后又返回到原来的值.在实际中,阶跃和线条边缘图像是很少见的,由于大多数传感元件具有低频特性,使得阶跃边缘变成斜坡型边缘,线条边缘变成屋顶形边缘,其中的强度变化不是瞬间的,而是跨越一定的距离,这些边缘如图6.1所示.(a)(b)图6.1 两种常见的边缘,(a) 阶跃函数,(b) 线条函数.其中第一排为理想信号,第二排对应实际信号对一个边缘来说,有可能同时具有阶跃和线条边缘特性.例如在一个表面上,由一个平面变化到法线方向不同的另一个平面就会产生阶跃边缘;如果这一表面具有镜面反射特性且两平面形成的棱角比较圆滑,则当棱角圆滑表面的法线经过镜面反射角时,由于镜面反射分量,在棱角圆滑表面上会产生明亮光条,这样的边缘看起来象在阶跃边缘上叠加了一个线条边缘.由于边缘可能与场景中物体的重要特征对应,所以它是很重要的图像特征。
比如,一个物体的轮廓通常产生阶跃边缘,因为物体的图像强度不同于背景的图像强度.在讨论边缘算子之前,首先给出一些术语的定义:边缘点:图像中具有坐标],[j i 且处在强度显著变化的位置上的点.边缘段:对应于边缘点坐标],[j i 及其方位θ,边缘的方位可能是梯度角.边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法.轮廓:边缘列表,或是一条表示边缘列表的拟合曲线.边缘连接:从无序边缘表形成有序边缘表的过程.习惯上边缘的表示采用顺时针方向来排序.边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程.边缘点的坐标可以是边缘位置像素点的行、列整数标号,也可以在子像素分辨率水平上表示.边缘坐标可以在原始图像坐标系上表示,但大多数情况下是在边缘检测滤波器的输出图像的坐标系上表示,因为滤波过程可能导致图像坐标平移或缩放.边缘段可以用像素点尺寸大小的小线段定义,或用具有方位属性的一个点定义.请注意,在实际中,边缘点和边缘段都被称为边缘.由边缘检测器生成的边缘集可以分成两个子集:真边缘集和假边缘集.真边缘集对应场景中的边缘,假边缘集不是场景中的边缘.还有一个边缘子集,即场景中漏检的边缘集.假边缘集称之为假阳性(false Positive ),而漏掉的边缘集则称之为假阴性(false Negative ). 边缘连接和边缘跟踪之间的区别在于:边缘连接是把边缘检测器产生的无序边缘集作为输入,输出一个有序边缘集;边缘跟踪则是将一幅图像作为输入,输出一个有序边缘集.另外,边缘检测使用局部信息来决定边缘,而边缘跟踪使用整个图像信息来决定一个像素点是不是边缘.6.1 梯度边缘检测是检测图像局部显著变化的最基本运算.在一维情况下,阶跃边缘同图像的一阶导数局部峰值有关.梯度是函数变化的一种度量,而一幅图像可以看作是图像强度连续函数的取样点阵列.因此,同一维情况类似,图像灰度值的显著变化可用梯度的离散逼近函数来检测.梯度是一阶导数的二维等效式,定义为向量⎥⎥⎦⎤⎢⎢⎣⎡=⎥⎦⎤⎢⎣⎡=f x f y x G G y x G ∂∂∂),((6.1)有两个重要的性质与梯度有关:(1) 向量),(y x G 的方向就是函数),(y x f 增大时的最大变化率方向;(2) 梯度的幅值由下式给出:22|),(|y x G G y x G += (6.2)在实际应用中,通常用绝对值来近似梯度幅值:y x G G y x G +=|),(| (6.3)或),max(|),(|y x G G y x G ≈ (6.4)由向量分析可知,梯度的方向定义为)/arctan(),(x y G G y x a = (6.5)其中α角是相对x 轴的角度.注意梯度的幅值实际上与边缘的方向无关,这样的算子称为各向同性算子(isotropic operators).对于数字图像,方程6.1的导数可用差分来近似.最简单的梯度近似表达式为],1[],[],[]1,[j i f j i f G j i f j i f G y x +-=-+= (6.6)请注意j 对应于x 轴方向,而i 对应于负y 轴方向.这些计算可用下面的简单卷积模板来完成 11-=x G 11-=y G (6.7) 在计算梯度时,计算空间同一位置x 和y 处的真实偏导数是至关重要的.然而采用上面公式计算的梯度近似值x G 和y G 并不位于同一位置,x G 实际上是内插点 [,/]i j +12处的梯度近似值,y G 是内插点],2/1[j i +处的梯度近似值.由于这个缘故,人们常常使用22⨯一阶差分模板(而不用21⨯或 12⨯模板)来求x 和y 的偏导数:1111--=x G 1111--=y G (6.8) 用上式计算x 和y 方向梯度的位置是相同的,这一点位于内插点]2/1,2/1[++j i 处,即在22⨯邻域的所有四个像素点之间.不过这种计算可能会导致一些混淆,所以,通常用33⨯邻域计算梯度值.这一方法将在下一节讨论.6.2 边缘检测算法边缘检测算法有如下四个步骤:滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能.需要指出,大多数滤波器在降低噪声的同时也导致了边缘强度的损失,因此,增强边缘和降低噪声之间需要折衷.增强:增强边缘的基础是确定图像各点邻域强度的变化值.增强算法可以将邻域(或局部)强度值有显著变化的点突显出来.边缘增强一般是通过计算梯度幅值来完成的.检测:在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点.最简单的边缘检测判据是梯度幅值阈值判据.定位:如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来.在边缘检测算法中,前三个步骤用得十分普遍。
一种基于特征跟踪的图像稳定方法
朱玉文;王俊;贾云得
【期刊名称】《北京理工大学学报》
【年(卷),期】2003(23)5
【摘要】根据摄像机透视投影模型,通过提取特征点进行摄像机的运动估计,提出一种基于FMA(frame-to-mosaicalgorithm)的补偿方法.该方法针对图像连续帧间晃动幅度较大的情况,通过均值滤波合成当前帧及其前几帧的运动进行补偿.实验结果表明该方法有较好的稳定效果,而且能够做到实时处理.
【总页数】5页(P596-600)
【关键词】图像稳定;摄像机稳定;特征跟踪;运动估计;运动补偿
【作者】朱玉文;王俊;贾云得
【作者单位】北京理工大学信息科学技术学院计算机科学工程系
【正文语种】中文
【中图分类】TP391
【相关文献】
1.一种基于特征匹配的目标识别跟踪方法 [J], 赵高鹏;薄煜明;陈益
2.一种基于特征点匹配的目标跟踪方法 [J], 管学伟
3.一种基于特征跟踪的彩色序列图像拼接方法 [J], 沈项军;李峰;陈金华
4.一种基于特征光流检测的运动目标跟踪方法 [J], 李金宗;原磊;李冬冬
5.一种基于特征点稳定跟踪的三维注册方法 [J], 查晨东; 张雷; 袁博
因版权原因,仅展示原文概要,查看原文内容请购买。
第四章 区域分析(qq584883658)图像中的区域是指相互连结的具有相似特性的一组像素.由于区域可能对应场景中的物体,因此,区域的检测对于图像解释十分重要.一幅图像可能包含若干个物体,而每一个物体又可能包含对应于物体不同部位的若干个区域.为了精确解释一幅图像,首先要把一幅图像划分成对应于不同物体或物体不同部位的区域.4.1 区域和边缘图像区域划分有两种方法:一种是基于区域的方法,另一种是使用边缘检测的轮廓预估方法.在基于区域的方法中,把所有对应于一个物体的像素组合在一起,并进行标记,以表示它们属于一个区域,这一处理过程称为分割.在某一评判标准下,把像素分配给某一区域,就可以把这些像素同图像其余部分分开.图像分割中的两个最基本的原则是数值相似性和空间接近性.如果两个像素具有相似的强度特性,或它们之间十分靠近,则可以把它们分配到同一区域,例如,两个像素之间的数值相似性度量可以是它们的灰度值之差,也可以是区域灰度值分布;它们的空间接近性度量可以是欧几里德距离,也可以是区域致密度. 相似性和接近性原则来源于如下假设:同一物体上的点投影到图像上得到的像素点在空间上十分靠近,且具有相似的灰度值.很显然,这一假设并不是在任何情况下都成立.然而可以使用这一假设来组合图像中的像素,然后利用相关域知识来匹配物体模型和区域.在简单的情况下,可以通过阈值法和连通成份标记法来进行图像分割,这一点在第三章讨论过了.对于复杂的图像,可以使用更高级的方法实现图像分割.分割也可以通过求取区域边界上的像素来进行.这些像素点(也称为边缘)可以通过搜寻邻近像素的方法来得到.由于边缘像素是在边界上,在边界两边的区域具有不同的灰度值,这样,区域的边界可以通过测量邻近像素差值来求取.尽管边缘检测可能使用诱导特性(如纹理和运动)来检测边缘.但大多数边缘检测器仅使用强度特性作为边缘检测的基础. 在理想的图像中,一个区域是由一条封闭轮廓线包围着.原则上,区域分割和边缘检测应该产生相同的结果,即使用边界跟踪算法可以得到区域的边缘(或封闭的轮廓线);反过来,使用区域填充算法也可以得到边缘所包围的区域.但在实际的图像中,很少能够从区域中得到正确的边缘,反之亦然.由于噪声和其它因素的影响,不论是区域分割还是边缘检测,都无法提供完整的信息.本章将讨论区域的基本概念,主要集中在两个问题上:图像分割和区域表示.4.2 分割已知一幅图像像素集I 和一个一致性谓词)(⋅P ,求图像I 表示成n 个区域i R 集合的一种划分:I Rn i i == 1 (4.1)一致性谓词和图像划分具有如下特性,即任何区域满足如下谓词:True )(=i R P (4.2)任何两个相邻区域不能合并成单一区域,必满足谓词:False )(=j i R R P (4.3)一致性谓词)(⋅P 定义了在区域i R 上的所有点与区域模型的相似程度.把一幅灰度图像转换成二值图像是图像分割的最简单形式.用于求取二值图像的阈值算法可以推广到求取多值图像,其中的阈值算法已经在第三章中讨论过了.为了在各种变化的场景中都能得到鲁棒的图像分割,阈值分割算法应能根据图像强度取样来自动选取合适的阈值.阈值分割法不要过分依赖于物体的灰度知识,且使用有关灰度值的相对特性来选取合适的阈值.这一简单的思想在许多计算机视觉算法中十分有用.4.2.1 自动阈值化法为了使分割更加鲁棒,系统应能自动选择阈值.基于场景中的物体、环境和应用域等知识的图像分割算法比基于固定阈值算法更具有普遍性.这些知识包括:对应于物体的图像灰度特性,物体的尺寸,物体在图像中所占的比例,图像中不同类型物体的数量等.图像灰度直方图就是一种灰度特性,它是指图像所有灰度值出现的相对频率.使用上述知识并在无人介入的情况下自动选取阈值的方法称为自动阈值化方法.自动阈值化算法通常使用灰度直方图来分析图像中灰度值的分布,并使用特定应用域知识来选取最合适的阈值.由于所用的知识具有普遍性,因此大大增加了算法的应用范围.假设一幅图像中包含有n 个物体n O O O ,,,21⋅⋅⋅,包括背景,并假设不同的区域n πππ,,,21⋅⋅⋅的灰度值具有概率分布函数)(,),(),(21z p z p z p n ⋅⋅⋅.在许多应用中,物体在图像中出现的概率n ,P ,,P P ⋅⋅⋅21也许是已知的.使用这些知识来严格地计算阈值是完全可能的.由于场景中的照明控制着图像中强度值的概率分布函数)(z p i , 因此预先计算阈值是不可能的.我们将要看到,大多数自动阈值的选取算法使用了物体尺寸和出现概率,并通过计算灰度直方图估算强度分布.下面将讨论几种常用的自动阈值化方法.为了简化表示,我们将遵循物体在图像中的表示惯例,即物体相对于光亮背景是黑的.也就是说,低于某一阈值的灰度值属于物体,而高于这一阈值的灰度值属于背景.下面将要讨论的算法稍作改动就可以应用到其它场合,如光亮物体相对于黑暗背景,灰暗物体相对于光亮和黑暗背景,光亮或黑暗物体相对于灰暗背景.一些算法还可以推广到由任意像素值集合组成的物体.(1) 模态方法如果图像中的物体具有同一灰度值,背景具有另一个灰度值,图像被零均值高斯噪声污染,那么就可以假定灰度分布曲线是由两个正态分布函数),(),(222211σμσμ和叠加而成.图像直方图将会出现两个分离的峰值,如图4.1所示.在理想恒定灰度值情况下,021==σσ,其直方图为两条线分别对应两个峰值,这时的阈值可以设置在两个最大值之间的任何位置.在实际应用中,两个最大值并不是分得很开,此时需要检测直方图曲线的波谷和波峰,并把阈值设置成波谷对应的像素值.可以证明,当物体的尺寸和背景相等时,这样选取阈值可使误分类概率达到极小值.在大多数情况下,由于直方图在波谷附近的像素很稀疏,因此,阈值的选取对图像分割影响不大.这一方法可推广到具有不同灰度均值的多物体图像中.假设有n 个物体,其强度值的正态分布参数为),(,),,(),,(2222211n n σμσμσμ⋅⋅⋅,背景也服从正态分布),(200σμ.如果这些均值明显的不同,方差值很小,且没有小尺寸物体,那么图像直方图将包含n+1个波峰,并可确定波谷的位置n T T T ,...,,21,落入每一个间隔),(1+i i T T 中的所有像素被分配给对应的物体,如图4.2所示.图4.1(a) 理想情况下,背景和物体的灰度值可以分的很开.(b)大多数情况下,物体和背景的强度值相互重叠.图4.2 具有不同灰度值的多物体图像直方图(2) 迭代式阈值选择迭代式阈值选择方法如下:首先选择一个近似阈值作为估计值的初始值,然后连续不断地改进这一估计值.比如,使用初始阈值生成子图像,并根据子图像的特性来选取新的阈值,再用新阈值分割图像,这样做的效果将好于用初始阈值分割的图像.阈值的改进策略是这一方法的关键.算法4.1给出了这一方法的步骤.算法4.1 迭代式阈值选择算法选择一个初始阈值的估算值T ,比如,图像强度均值就是一个较好的初始值. 利用阈值T 把图像分割成两组,1R 和2R .计算区域1R 和2R 的均值21,μμ.选择新的阈值T)(2121μμ+=T 重复2-4步,直到1μ和2μ的均值不再变化.(3) 自适应阈值化方法如果场景中的照明不均匀,那么上述的自动阈值化方法就不能使用.显然,在这种情况下,一个阈值无法满足整幅图像的分割要求。
一种弱纹理图像特征跟踪的鲁棒方法
贾云得;Marti.,H
【期刊名称】《北京理工大学学报》
【年(卷),期】1999(19)2
【摘要】目的提出一种用于弱纹理图像的特征提取和跟踪的鲁棒方法.方法选取包含若干表面片的结构化特征,并假设结构化特征中的表面片之间的关系在图像运动时保持不变.使用基于梯度的方法和基于相关性的方法在另一幅图像中求取对应的结构化特征.利用结构化特征不变性判据,评价对应结构化特征的有效性.结果与结论该算法能有效地跟踪一般表面片特征,非常适合于在室外获取的一般图像序列和弱纹理图像序列运动分析.
【总页数】5页(P190-194)
【关键词】图像运动估计;特征跟踪;特征提取;弱纹理图像
【作者】贾云得;Marti.,H
【作者单位】北京理工大学机电工程系;卡内基-梅隆大学计算机科学学院
【正文语种】中文
【中图分类】TP391.1
【相关文献】
1.弱纹理环境双目视觉稠密视差鲁棒估计方法 [J], 杜英魁;刘成;田丹;韩晓微;原忠虎
2.一种基于鲁棒局部纹理特征的背景差分方法 [J], 金静;党建武;王阳萍;翟凤文
3.一种基于孪生网络的高鲁棒性实时单目标船舶跟踪方法 [J], 张云飞; 黄润辉; 单云霄; 周晓梅
4.复杂环境下一种基于改进核相关滤波的视觉鲁棒目标跟踪方法 [J], 何容;赖际舟;吕品;刘国辉;王博
5.高光弱纹理物体表面鲁棒重建方法 [J], 乔玉晶;张思远;赵宇航
因版权原因,仅展示原文概要,查看原文内容请购买。
第三章 二值图像分析一幅数字图像是一个二维阵列,阵列元素值称为灰度值或强度值.实际上,图像在量化成数字图像前是一个连续强度函数的集合,场景信息就包含在这些强度值中.图像强度通常被量化成256个不同灰度级,对某些应用来说,也常有32、64、128或512个灰度级的情况,在医疗领域里甚至使用高达4096(12bits )个灰度级.很明显,灰度级越高,图像质量越好,但所需的内存也越大.在机器视觉研究的早期,由于内存和计算能力非常有限,而且十分昂贵,因此视觉研究人员把精力主要集中在研究输入图像仅包含两个灰度值的二值视觉系统上.人们注意到,人类视觉在理解仅由两个灰度级组成的线条、轮廓影像或其它图像时没有任何困难,而且应用场合很多,这一点对研究二值视觉系统的研究人员是一个极大的鼓舞.随着计算机计算能力的不断增强和计算成本的不断下降,人们普遍开始研究基于灰度图像、彩色图像和深度图像的视觉系统.尽管如此,二值视觉系统还是十分有用的,其原因如下:⑴ 计算二值图像特性的算法非常简单,容易理解和实现,并且计算速度很快.⑵ 二值视觉所需的内存小,对计算设备要求低.工作在256个灰度级的视觉系统所需内存是工作在相同大小二值图像视觉系统所需内存的八倍.如若利用游程长度编码等技术(见3.4节)还可使所需内存进一步减少.由于二值图像中的许多运算是逻辑运算而不是算术运算,所以所需的处理时间很短.(3)许多二值视觉系统技术也可以用于灰度图像视觉系统上.在灰度或彩色图像中,表示一个目标或物体的一种简易方法就是使用物体模板(mask),物体模板就是一幅二值图像,其中1表示目标上的点,0表示其它点.在物体从背景中分离出来后,为了进行决策,还需要求取物体的几何和拓扑特性,这些特性可以从它的二值图像计算出来.因此,尽管我们是在二值图像上讨论这些方法,但它们的应用并不限于二值图像.一般来说,当物体轮廓足以用来识别物体且周围环境可以适当地控制时,二值视觉系统是非常有用的.当使用特殊的照明技术和背景并且场景中只有少数物体时,物体可以很容易地从背景中分离出来,并可得到较好的轮廓,比如,许多工业场合都属于这种情况.二值视觉系统的输入一般是灰度图像,通常使用阈值法首先将图像变成二值图像,以便把物体从背景中分离出来,其中的阈值取决于照明条件和物体的反射特性.二值图像可用来计算特定任务中物体的几何和拓扑特性,在许多应用中,这种特性对识别物体来说是足够的.二值视觉系统已经在光学字符识别、染色体分析和工业零件的识别中得到了广泛应用.在下面的讨论中,假定二值图像大小为n m ⨯,其中物体像素值为1,背景像素值为0.3.1 阈值视觉系统中的一个重要问题是从图像中识别代表物体的区域(或子图像),这种对人来说是件非常容易的事,对计算机来说却是令人吃惊的困难.为了将物体区域同图像其它区域分离出来,需要首先对图像进行分割.把图像划分成区域的过程称为分割,即把图像],[j i F 划分成区域k p p p ,,,21⋅⋅⋅,使得每一个区域对应一个候选的物体.下面给出分割的严格定义. 定义 分割是把像素聚合成区域的过程,使得:==i ki P 1 整幅图像 (}{i P 是一个完备分割 ).●j i P P j i ≠∅=, ,(}{i P 是一个完备分割). ● 每个区域i P 满足一个谓词,即区域内的所有点有某种共同的性质.● 不同区域的图像,不满足这一谓词.正如上面所表明的,分割满足一个谓词,这一谓词可能是简单的,如分割灰度图像时用的均匀灰度分布、相同纹理等谓词,但在大多数应用场合,谓词十分复杂.在图像理解过程中,分割是一个非常重要的步骤.二值图像可以通过适当地分割灰度图像得到.如果物体的灰度值落在某一区间内,并且背景的灰度值在这一区间之外,则可以通过阈值运算得到物体的二值图像,即把区间内的点置成1,区间外的点置成0.对于二值视觉,分割和阈值化是同义的.阈值化可以通过软件来实现,也可以通过硬件直接完成.通过阈值运算是否可以有效地进行图像分割,取决于物体和背景之间是否有足够的对比度.设一幅灰度图像],[j i F 中物体的灰度分布在区间],[21T T 内,经过阈值运算后的图像为二值图像],[j i F T ,即:⎩⎨⎧≤≤=其它如果0],[ 1],[21T j i F T j i F T (3.1) 如果物体灰度值分布在几个不相邻区间内时,阈值化方案可表示为:⎩⎨⎧∈=其它如果0],[ 1],[Z j i F j i F T (3.2) 其中Z 是组成物体各部分灰度值的集合.图3.1是对一幅灰度图像使用不同阈值得到的二值图像输出结果.阈值算法与应用领域密切相关.事实上,某一阈值运算常常是为某一应用专门设计的,在其它应用领域可能无法工作.阈值选择常常是基于在某一应用领域获取的先验知识,因此在某些场合下,前几轮运算通常采用交互式方式来分析图像,以便确定合适的阈值.但是,在机器视觉系统中,由于视觉系统的自主性能(autonomy )要求,必须进行自动阈值选择.现在已经研究出许多利用图像灰度分布和有关的物体知识来自动选择适当阈值的技术.其中的一些方法将在3.2节介绍.图3.1 一幅灰度图像和使用不同阈值得到的二值图像结果.上左:原始灰度图像,上右:阈值T=100;左下:T=128.右下:T1=100|T2=128.3.2 几何特性通过阈值化方法从图像中检测出物体后,下一步就要对物体进行识别和定位.在大多数工业应用中,摄像机的位置和环境是已知的,因此通过简单的几何知识就可以从物体的二维图像确定出物体的三维位置.在大多数应用中,物体的数量不是很多,如果物体的尺寸和形状完全不同,则可以利用尺度和形状特征来识别这些物体.实际上在许多工业应用中,经常使用区域的一些简单特征,如大小、位置和方向,来确定物体的位置并识别它们.3.2.1 尺寸和位置一幅二值图像区域的面积(或零阶矩)由下式给出:∑∑-=-==1010],[n i m j j i B A (3.3)在许多应用中,物体的位置起着十分重要的作用.工业应用中,物体通常出现在已知表面(如工作台面)上,而且摄像机相对台面的位置也是已知的.在这种情况下,图像中的物体位置决定了它的空间位置.确定物体位置的方法有许多,比如用物体的外接矩形、物体矩心(区域中心)等来表示物体的位置.区域中心是通过对图像进行“全局”运算得到的一个点,因此它对图像中的噪声相对来说是不敏感的.对于二值图像,物体的中心位置与物体的质心相同,因此可以使用下式求物体的中心位置:∑∑∑∑∑∑∑∑-=-=-=-=-=-=-=-=-==1010101010101010],[],[],[],[n i n i m j m j n i m j n i m j j i iB j i B y j i jB j i B x (3.4)其中x 和y 是区域相对于左上角图像的中心坐标.物体的位置为: Aj i iB y Aj i jB x n i m j n i m j ∑∑∑∑-=-=-=-=-==10101010],[],[ (3.5)这些是一阶矩.注意,由于约定y 轴向上,因此方程3.4和3.5的第二个式子的等号右边加了负号. 3.2.2 方向计算物体的方向比计算它的位置稍微复杂一点.某些形状(如圆)的方向不是唯一的,为了定义唯一的方向,一般假定物体是长形的,其长轴方向被定义为物体的方向.通常,二维平面上与最小惯量轴同方向的最小二阶矩轴被定为长轴.图像中物体的二阶矩轴是这样一条线,物体上的全部点到该线的距离平方和最小.给出一幅二值图像],[j i B ,计算物体点到直线的最小二乘方拟合,使所有物体点到直线的距离平方和最小:χ220101==-=-∑∑r B i j ij j m i n [,] (3.6)其中r ij 是物体点],[j i 到直线的距离.为了避免直线处于近似垂直时所出现的数值病态问题,人们一般把直线表示成极坐标形式:θθρsin cos y x += (3.7)如图3.2所示,θ是直线的法线与x 轴的夹角,ρ是直线到原点的距离.把点),(j i 坐标代入直线的极坐标方程得出距离r :22)sin cos (ρθθ-+=y x r (3.8)图3.2 直线的极坐标表示将方程3.8代入方程3.6并求极小化问题,可以确定参数ρ和θ:∑∑-=-=-+=101022],[)sin cos (n i m j ij ij j i B y x ρθθχ (3.9) 令2χ对ρ的导数等于零求解ρ得:)sin cos (θθρy x += (3.10) 它说明回归直线通过物体中心),(y x .用这一ρ值代入上面的2χ,则极小化问题变为:θθθθχ222sin cos sin cos c b a ++= (3.11)其中的参数: ],[)(],[))((2],[)(10210101010102j i B y y c j i B y y x x b j i B x x a n i m j ij n i m j ij ij n i m j ij ∑∑∑∑∑∑-=-=-=-=-=-=-=--=-= (3.12)是二阶矩.表达式2χ可重写为:θθχ2sin 212cos )(21)(212b c a c a +-++=(3.13) 对2χ微分,并置微分结果为零,求解θ 值:ca b -=θ2tan (3.14) 因此,惯性轴的方向由下式给出:2222)(2cos )(2sin c a b ca c ab b -+-±=-+±=θθ (3.15) 所以由2χ的最小值可以确定方向轴.注意,如果c a b ==,0,那么物体就不会只有唯一的方向轴.物体的伸长率E 是2χ的最大值与最小值之比:minmax χχ=E (3.16) 3.2.3 密集度和体态比区域的密集度(compact )可用下面的式子来度量:2pA C = (3.17) 其中,p 和A 分别为图形的周长和面积.根据这一衡量标准,圆是最密集的图形,其密集密度为最大值π4/1,其它一些图形的比值要小一些.让我们来看一下圆,当圆后仰时,形状成了一椭圆,面积减小了而周长却不象面积减小的那么快,因此密集度降低了.在后仰到极限角时,椭圆被压缩成了一条无限长直线,椭圆的周长为无穷大,故密集度变成了零.对于数字图像, 2p A 是指物体尺寸(像素点数量)除以边界长度的平方.这是一种很好的散布性或密集性度量方法.这一比值在许多应用中被用作为区域的一个特征.密集度的另一层意义是:在给定周长的条件下,密集度越高,围成的面积就越大.注意在等周长的情况下,正方形密集度大于长方形密集度.体态比定义为区域的最小外接矩形的长与宽之比,正方形和圆的体态比等于1,细长形物体的体态比大于1.图3.3所示的是几种形状的外接矩形.图3.3 几种外接矩形示意图 3.3 投影给定一条直线,用垂直该直线的一簇等间距直线将一幅二值图像分割成若干条,每一条内像素值为1的像素个数为该条二值图像在给定直线上的投影(projection ).当给定直线为水平或垂直直线时,计算二值图像每一列或每一行上像素值为1的像素数量,就得到了二值图像的水平和垂直投影,如图3.4所示.由于投影包含了图像的许多信息,所以投影是二值图像的一种简洁表示方式.显然,投影不是唯一的,同样的投影可能对应不同的图像.图3.4 一幅二值图像及其水平投影图在某些应用中,投影可以作为物体识别的一个特征.投影既是一种简洁的图像表示,又可以实现快速算法.下面介绍对角线投影的求解方法.对角线投影的关键是计算当前行和列对应的投影分布图位置标号.设行和列的标号分别用i 和j 表示.若图像矩阵为n 行m 列,则i 和j 的范围分别为0到1-n 和0到1-m .假设对角线的标号d 用行和列的仿射变换(线性组合加上常数)计算,即:c bj aid ++= (3.18) 对角线投影共对应1-+m n 个条,其中仿射变换把右上角像素映射成对角线投影的第一个位置,把左下角像素映射成最后一个位置,如图3.5所示,则当前行列对应的标号d 的公式为:1-+-=m j i d (3.19)图3.5 二值图像及其对角线上的投影图3.4 游程长度编码游程长度编码(run-length encoding)是另一种二值图像的简洁表示方法,它是用图像像素值连续为1的个数(像素1的长度)来描述图像.这种编码已被用于图像传输.另外,图像的某些性质,如物体区域面积,也可以从游程长度编码直接计算出来.在游程长度编码中经常运用两种方法,一种是使用1的起始位置和1的游程长度,另一种是仅仅使用游程长度,但须从1的游程长度开始描述,如图3.6所示.1的游程(2,2) (6,3) (13,6) (20,1)(4,6) (11,10)(1,5 ) (11,1) (17,4)1和0的游程长度:0,2,2,3,4,6,1,10,3,6,1,105,5,1,5,4图3.6 一幅简单二值图像的游程长度编码.如果用第二种方法来表示图像每行的游程长度,并用k i r ,代表图像第i 行的第k 个游程长度,则全部1的游程长度之和就是所求物体的面积.∑∑-=⎥⎦⎤⎢⎣⎡-=+=1021012,n i m k k i i r A (3.20)其中i m 是第i 行游程个数,2/)1(-i m 取整,表示1的游程个数.由游程长度编码能很容易地计算水平投影而无需变成原来的图像.使用更巧妙的方法也能从游程长度编码计算出垂直和对角线投影.3.5 二值图像算法从背景中分离出物体是一个困难的问题,在此将不讨论这个问题.这里假设物体可以从背景中分离,并且使用某一谓词,可以对图像中属于物体的点进行标记.因此,问题就变为如何将一幅图像中所有被标记的点组合成物体图像.这里还假设物体点在空间上是非常接近的.利用空间接近概念可以严格定义,利用此定义研究的算法可以把空间上非常接近的点聚合在一起,构成图像的一个成分(component ).下面首先引进一些定义,然后讨论有关算法.3.5.1 定义(1) 近邻在数字图像中,一个像素在空间上可能非常接近其它一些像素.在用方格表示的数字图像中,一个像素与其它四个像素有公共边界,并与另外四个像素共享顶角.如果两个像素有公共边界,则把它们称为4-近邻(4-neighbors).同样,如果两个像素至少共享一个顶角,则称它们为8-近邻.例如,位于],[j i 的像素有四个4-近邻:],1[j i -,],1[j i +,]1,[-j i ,]1,[+j i .它的8-近邻包括这四个4-近邻,再加上]1,1[--j i ,]1,1[-+j i ,]1,1[+-j i ,]1,1[++j i .一个像素被认为与它的4-近邻是4-连通(4-connected)关系,与它的8-近邻是8-连通关系(如图3.7).图3.7 矩形像素网格的4-近邻和8-近邻示意图.像素],[j i 位于图的中心.(2) 路径从像素],[00j i 到像素],[n n j i 的路径(path)是指一个像素序列],[00j i ,],[11j i ,..., ],[n n j i ,其中像素],[k k j i 是像素],[11++k k j i 的近邻像素,10-≤≤n k .如果近邻关系是4-连通的,则路径是4-路径;如果是8-连通的,则称为8-路径.图3.8即为路径的两个简单例子.图3.8 4-路径和8—路径示意图(3) 前景图像中值为1的全部像素的集合称为前景(foreground),用S 表示.(4) 连通性已知像素S q p ∈,,如果存在一条从p 到q 的路径,且路径上的全部像素都包含在S 中,则称p 与q 是连通的.注意,连通性(connectivity)是等价关系.对属于S 的任意三个像素p 、q 和r ,有下列性质:1.像素p 与p 本身连通(自反性).2.如果p 与q 连通,则q 与p 连通(互换性).3.如果p 与q 连通且q 与r 连通,则p 与r 连通(传递性).(5) 连通成份一个像素集合,如果集合内的每一个像素与集合内其它像素连通,则称该集合为一个连通成份(connected component).[i-1, j ][i, j-1] [i, j ] [i, j+1][i+1, j ] [i-1,j-1] [i-1,j ] [i-1,j+1] [i,j-1] [i, j ] [i,j+1] [i+1,j-1] [i+1,j ] [i+1,j+1](6) 背景⎺S(S的补集)中包含图像边界点的所有连通成份的集合称为背景(background).⎺S中所有其它元称为洞.考虑下面的两个图像.首先看左图中有几个洞和几个物体.如果从前景和背景来考虑4-连通,有四个大小为-个像素的物体和一个洞.如果考虑8-连通,那么有一个物体而没有洞.直观地,在这两种情况下出现了不确定性情况.右图为另一个类似的不确定问题.其中如果1是连通的,那么0就应该是不连通的.为了避免这种难以处理的情况,对物体和背景应使用不同的连通.如果我们对S使用8-连通,那么对⎺S就应使用4-连通.(7) 边界S的边界(boundary)是S中与⎺S中有4-连通关系的像素集合.边界通常记为S'.(8) 内部内部(interior)是S中不属于它的边界的像素集合.S的内部等于S-S'.(9) 包围如果从S中任意一点到图像边界的4-路径必须与区域T相交,则区域T包围(surrounds)区域S(或S在T内).图3.9即为一幅简单二值图像和它的边界、内部、包围示意图.图3.9 ,内部和包围3.5.2连通成份标记在一幅图像中找出连通成份是机器视觉中最常见的运算之一.连通区域内的点构成表示物体的候选区域.机器视觉中的大多数物体都有表面,显然,物体表面点投影到图像平面上会形成空间上密集的点集.这里应该指出,连通成份算法常常会在二值视觉系统中形成瓶颈效应,原因是连通成份运算是一个全局性的运算,这种算法在本质上是序贯的.如果图像中仅有一个物体,那么找连通成份就没有必要;如果图像中有许多物体,且需要求出物体的特性与位置,则必须确定连通成份.连通标记算法可以找到图像中的所有连通成份,并对同一连通成份中的所有点分配同一标记.图3.10表示的是一幅图像和已标记的连通成份.在很多应用中,要求在标记连通成份的同时算出连通成份的特征,如尺寸、位置、方向和外接矩形.下面介绍两种连通成份标记算法:递归算法和序贯算法[Jain 1995].图3.10 一副图像及其连通成分图像(1)递归算法递归算法在串行处理器上的计算效率是很低的,因此,这一算法主要用于并行机上.算法3.1连通成份递归算法1.扫描图像,找到没有标记的1点,给它分配一个新的标记L.3.递归分配标记L给1点的邻点.3.如果不存在没标记的点,则停止.4.返回第一步.(2)序贯算法序贯算法通常要求对图像进行二次处理.由于这一算法一次仅运算图像的两行,因此当图像以文件形式存贮且空间不允许把整幅图像载入内存时也能使用这一算法.这一算法(见算法3.2)可以查看某一点的邻点,并且可以给像素值为1的邻点分配一个已经使用过的标记.如果图像的邻点有两种不同的标记,则用一个等价表(equivalent table)来记录所有的等价标记.在第二次处理过程中,使用这一等价表来给某一连通成份中所有像素点分配唯一的标记.本算法在从左到右、从上到下扫描图像时,算法仅能查询到某一像素点的4-近邻中的两个近邻点,即上点与左点.设算法已经查到了该像素的这两个近邻点,此时出现三种情况:(1) 如果这两个近邻点中没有一点为1,则该像素点需要一个新的标记.(2) 如果这两个近邻点中只有一点为1,且分配了标记L,那么该像素点的标记也为L.(3) 如果这两个邻点都为1,且已分配了标记L,则该像素点的标记还是L;但是当近邻点被分配了不同标记M与N,则这两个标记被用于了同一组元,应该把它们合并.在这种情况下,应把其中的一个标记(一般选用最小的那个标记)分配给该像素点,并在等价表中登记为等价标记.等价表包含了给每一连通成份分配唯一标记的信息.在第一次扫描中,所有属于同一连通成份的标记被视为是等价的.在第二次扫描中,从一个等价集(equivalent set)中选择一个标记并分配给连通成份中所有像素点.通常将最小的标记分配给一个连通成份.第二次扫描将给每一连通成份分配唯一的标记.在找到所有的连通成份后,应该统计等价表,以便删除其中的空格;然后将等价表作为查找表对图像重新进行扫描,以便重新统计图像中的标记.计算每一连通成份的面积、一阶矩、二阶矩是序贯连通成份算法的一个部分.当然,必须使用分离变量来累加每一区域的矩信息.当区域合并后,每一区域的矩累计值也应加到一起.算法3.24-连通序贯连通成份算法1.从左至右、从上到下扫描图像.2.如果像素点为1,则:(a) 如果上面点和左面点有一个标记,则复制这一标记.(b) 如果两点有相同的标记,复制这一标记.(c) 如果两点有不同的标记,则复制上点的标记且将两个标记输入等价表中作为等价标记.(d) 否则给这一个像素点分配一新的标记并将这一标记输入等价表.3.如果需考虑更多的点,则回到第二步.4.在等价表的每一等价集中找到最低的标记.5.扫描图像,用等价表中的最低标记取代每一标记.3.5.3 欧拉数在许多应用中,亏格数(genus)或欧拉数可作为识别物体的特征.亏格数定义为连通成份数减去空洞数,E-=(3.21)CH其中,E,C和H分别是欧拉数、连通成份数与空洞数.这个式子给出了一个简单的拓朴特征,这种拓扑特征具有平稳、旋转和比例不变特性.图3.11给出了一些例子及其对应的欧拉数.==EE2=E1-图3.11 字母“A”、“B”、“i”及它们的欧拉数.注意前景用了8-连通,而背景用了4-连通.3.5.4 区域边界连通成份S的边界是那些属于S且与⎺S邻接的点集.使用简单的局部运算就可找到边界点.在大多数应用中,我们都想用一特定的顺序跟踪边界点.一般的算法是按顺时针方向跟踪区域的所有点.此处讨论一个简单的边界跟踪算法.假定物体边界不在图像的边界上(即物体完全在图像内部),边界跟踪算法先选择一起始点S s ∈,然后跟踪边界直到回到起始点.这种算法概括在算法3.3中.这种算法对尺寸大于1个象素的所有区域都是有效的.用这种算法求区域8-邻点的边界如图3.12(a)所示.为了得到平滑的图像边界,可以在检测和跟踪图像边界后,利用边界点的方向信息来平滑边界。