计算机视觉轮廓检测,轮廓检测

轮廓检测指在包含目标和背景的数字图像中,忽略背景和目标内部的纹理以及噪声干扰的影响,采用一定的技术和方法来实现目标轮廓提取的过程。它是目标检测、形状分析、目标识别和目标跟踪等技术的重要基础。

中文名

轮廓检测

外文名

contour detection

类    别

控制科学与工程算    法

轮廓跟踪等

性能评价

主观方法、客观方法

应    用

目标识别、目标跟踪等

轮廓检测研究现状

编辑

语音

目前轮廓检测方法有两类,一类是利用传统的边缘检测算子检测目标轮廓,另一类是从人类视觉系统中提取可以使用的数学模型完成目标轮廓检测。

基于边缘检测的轮廓检测方法是一种低层视觉行为,它主要定义了亮度、颜色等特征的低层突变,通过标识图像中亮度变化明显的点来完成边缘检测,因此很难形成相对完整和封闭的目标轮廓。边缘检测通常将图像与微分算子卷积。比如借助于Sobel算子、Prewitt算子、Canny算子等,此方法没有考虑视觉中层和高层信息,因此很难得出完整的、连续的轮廓边缘,仅仅使用这类方法很难得出完整的目标轮廓,这种过程往往复杂且精度难以保证,甚至在含有大量噪声或者纹理的情况下,无法提取轮廓。

从视网膜经典感受野推导出的DoG模型得到初步应用。该模型一般适用于图像平滑与边缘检测领域。Gabor滤波器模型来源于初级视皮层Vl区简单细胞感受野,一般适用于角点检测和纹理特征提取等。Grigorescu和Petkov运用非经典感受野的周边抑制作用,与经典的边缘检测方法结合,取得了令人瞩目的成果。他们假设非经典感受野是圆环形抑制区域,通过对经典感受野的抑制来抑制纹理。他们还提出一个将轮廓检测结果进行量化比较的方法,给以后人们研究轮廓检测或边缘检测提供了新的评价方法。桑农等人根据非经典感受野的假说,提出了蝶形抑制区,使得轮廓检测结果取得了更好的效果。

视觉信息经过加工传递,从视网膜经过LGN到达初级视皮层,这个机制十分复杂,也有许多假说。人为定义一种抑制模型忽略人类视觉感知的过程和刺激传递过程中的信息易造成轮廓断裂,Hubel和Wiesel推断简单细胞的感受野的方向选择性可以由外侧膝状体的感受野经过一种特定的组合拟合而成,因此Azwpardi等提出了CORE模型,直接用外侧膝状体的感受野模型来模拟视觉系统来进行轮廓检测。 Wei H等也根据这项发现提出了自己的计算模型,用来检测线条的方向。

对比以上所述两类方法可以发现,基于人类视觉感知模型的方法己经被广泛研究和应用,属于轮廓检测的研究趋势,效果优于第一类方法。

轮廓检测主要过程

编辑

语音

求取图像(灰度或彩色)中物体轮廓的过程主要有四个步骤。首先对输入图像做预处理,通用的方法是采用较小的二维高斯模板做平滑滤波处理,去除图像噪声,采用小尺度的模板是为了保证后续轮廓定位的准确性,因为大尺度平滑往往会导致平滑过渡,从而模糊边缘,大大影响后续的边缘检测。其次对平滑后的图像做边缘检测处理,得到初步的边缘响应图像,其中通常会涉及到亮度、颜色等可以区分物体与背景的可用梯度特征信息。然后再对边缘响应做进一步处理,得到更好的边缘响应图像。这个过程通常会涉及到判据,即对轮廓点和非轮廓点做出不同处理或用相同的程式因作用结果的不同而达到区分轮廓点和非轮廓点的效果,从而得到可以作为轮廓的边缘图像。若是此步骤之前得到的轮廓响应非常好时,该步骤往往是不用再考虑的。然而在实际应用过程中,上一步骤得到的结果往往是不尽人意的。因此,此过程往往起着至关重要的作用,最后对轮廓进行精确定位处理,这个过程通常又分成两个过程。

第一步先对边缘响应图像做细化处理,得到单像素边缘图像。这个过程普遍采用的是非最大值抑制方法(局部极大搜索)。非最大值抑制可以非常有效地细化梯度幅值图像中的屋脊带,从而只保留局部变化最大的点。本文的研究均采用此方法做细化处理。第二步为在此基础上做基于滞后门限的二值化处理,滞后门限利用递归跟踪算法可以保证最后的轮廓图像是连续的。这一个过程往往在与标准轮廓(比如图像数据库中人为勾画的轮廓)做比较时才考虑,也就是说一个完整的轮廓检测算法往往是不包括该过程的。获取轮廓信息的另一种通用方法就是先对图像做分割,图像分割处理好后,直接将分割区域的边界作为轮廓。该方法最终的结果直接依赖于图像分割的效果,因此实际中多归于分割问题。[1]

轮廓检测静态图像轮廓检测

编辑

语音

早期轮廓检测的方法通过局部的测量计算来量化一个给定图像位置的边界是否存在。Roberts算子,Sobel算子和Prewitt算子通过灰度图像和局部导数滤波器卷积进行边缘检测。Mary和Hildreth使用拉普拉斯算子的零交叉高斯算子。丰富的特征描述子可以通过对不同尺度的图像和多方向的滤波器的响应获得。比如,利用正交对偶数和奇数的对称滤波器的方向能量方法。Lindeberg则提出了一种基于带有自适应尺度选择机制的滤波器方法。

Canny检测器通过亮度通道中尖锐的不连续性定义边界,并增加非极大值抑制和迟滞效应阂值的步骤优化边界。但是对于自然场景复杂,纹理普遍存在的图象,这样的建模方式是并不合适。在一些纹理杂乱无章的区域,Canny检测器会检测出很多轮廓线条。但实际上,这个区域的确存在很多高差异性的纹理却没有真正意义上的目标边界。另一方面,在不同的纹理之间的边界无法有效的检测出来,因为有时不同的纹理之间的平均亮度值差异其实很小。因此,仅仅依靠亮度简单建模并不能检测纹理边界。

之后特征的局部描述方法开始考虑到颜色和纹理信息并利用学习方法进行线索组合。Martin等人定义亮度、颜色和纹理通道的梯度算子,并使用它们作为逻辑回归分类器的输入组合预测边缘强度。Dollar等人提出了推进式边界学习算法((Boosted Edge Learning BEL),不依赖于手工制作的特征,而是通过从成千上万个图像块计算得到的简单特征的概率推进树的形式学习获得边界分类器。这种方法的一个优点是,它可以在初始分类阶段并行处理视觉线索。Mairal等人通过学习具有判别力的稀疏表示的局部图像块,创建同时具有泛型和特定类的边缘检测器。对于每个类,他们学习一个判别字典,并使用每个词典获得的重构误差作为最终的分类器的特征输入。

目前,很多对于静态图像的目标轮廓提取,在检测过程中主要通过外观线索判断像素是否属于目标的轮廓,根据图像局部特征并基于学习策略进行轮廓判断。Arbelaez等利用一种叫做“双半圆盘”算子的梯度算子计算亮度、色彩、纹理多种外观线索的方向梯度特征,通过梯度上升得到各种外观线索的优化组合,生成的局部边缘检测器能有效去除目标内部纹理的虚假边缘。除此以外,他们还建立了一个具有轮廓和分割手工标记的图像轮廓和分割数据集作为自然场景轮廓和分割方法的统一标准。Dollar等以亮度、色彩线索为判定标准利用集成分类器对图像块分类,获取到图像块内的结构边缘信息,提升了处理效率。

同时,深度线索作为特殊的外观线索,可以辅助判断目标轮廓,Kinect深度相机得到的场景深度图像对光照变化和背景中颜色相近的物体的干扰具有鲁棒性。Leordeanu等结合图像的像素级表达和区域块表达,将不同类型边缘结构的局部定位应用于深度图像。徐玉华等采用活动轮廓对人体目标建模,提出一种新的水平集框架下自适应融合RGB-D图像的颜色和深度信息的人体轮廓跟踪方法。

静态图像轮廓检测对外观相似的目标和背景不具有识别力,背景的局部边缘干扰会导致目标的伪轮廓。因此越来越多的轮廓检测研究基于运动视频获取运动信息来区分外观一致的目标和背景,并激励运动目标的强边缘。[2]

轮廓检测动态视频轮廓检测

编辑

语音

在运动视频中,运动线索是判断运动目标轮廓的关键。相关研究己实验表明了运动线索在轮廓检测、目标识别等视觉任务中的重要性。格式塔(Gestalt)原则中的“common fate"理论,指出相似运动的点被认为是连贯一致的整体,运动线索作为几乎所有视觉类别所共有的信息,在生物学视觉系统中也一直强调其重要性。相比于亮度、色彩和立体视差这些外观线索,运动线索更有助于区分不同的运动目标。在增加了额外时间维度的视频数据中,相机的运动或场景的变化使得我们可以挖掘运动目标边界与背景间的相对运动信息并用于推断目标轮廓,即运动轮廓。

视频轮廓检测中的运动线索主要由数据驱动得到,分为两大类方法。第一类利用光流法获取运动线索。光流法基于时空梯度模型计算物体的亮度随时间和空间的变化场。光流计算像素点的瞬时变化速率,其原理是假设像素点从一个位置移动到其他位置,其灰度值保持不变,因此根据光流估计可以计算出某一像素点运动瞬时变化速率。Stein等在超像素图上建立区域光流场,结合外观特征,利用adaboost学习方法建立轮廓检测的总体框架,并且建立了具有轮廓手工标记的视频轮廓数据库用于训练学习。He等在建立光流场后基于SVD(Singular ValueDecomposition,奇异值分解)因子分解方法建立伪深度图,将运动线索转化为深度线索用于轮廓检测。

光流法的优点在于无需对场景的背景建模,就能够检测到运动目标,因此在动态场景中经常利用光流法来检测运动目标。然而,光流法基于亮度守恒假设条件,在复杂自然场景中,由于遮挡性、多光源、透明性和噪声等原因,使得光流的可靠性估计较差,获取到的运动信息误差较大。

第二类利用帧差法获取运动线索。帧差法也是运动目标检测中常见的方法之一。其基本原理非常简单,先计算前后两帧相减的像素差,利用固定闭值进行二值化处理,得到前景运动目标。如果目标没有运动,那么两帧相减的像素差为零;若目标有明显的运动,那么两帧相减的像素差大于闭值,二值化处理可得到视频帧中的运动目标位置。Sundberg等利用关键帧及其前后帧的帧间差异作为运动线索之一,同时依据Arbelaez等的静态轮廓检测结果作为初始分割图建立光流场,通过支持向量机(Support Vector Machine, SVM)学习特征权重,线性加权各个特征得到轮廓概率值。

由于帧差法利用相邻帧相减,具有很强的适应性,能够快速适应环境的变化,因此能得到较好的效果。但是正是由于这个原因,目标静止或运动幅度很小时前后两帧变化不大,从而导致无法检测出来;而且当目标表面单一时,前后帧运动目标区域大部分像素值相似,从而会产生空洞现象。此外,帧差法主要是依据关键帧及其前后帧的帧间差异建模,仅获取了三帧之间的运动信息,缺少三帧之外的运动信息,容易造成部分运动信息的缺失。

轮廓检测算法

编辑

语音

在图像处理与分析、模式识别和计算机视觉等研究领域中通常需要提取目标区域的轮廓以获得关于目标的诸多有价值的信息,因而如何快速、高效、精确地对目标进行轮廓检测也成为一个备受图像研究者关注的课题。目前己有许多研究者在此领域做了大量的研究。现有的轮廓检测算法大致可分为三类:

轮廓检测轮廓跟踪

这个算法首先是将整幅二值图像点集保存在可以随机访问的数组当中,然后按照某种准则寻找轮廓的起始点,每当找到一个轮廓起始点,便接着以顺时针或逆时针方向对其所在轮廓进行追踪查找,直到重新回到起始点。Rosenfeld于1970年最早提出了这一算法,其最大的优点就是高效、简单,且检测出来的轮廓带有序列化信息;缺点是容易占用大量内存空间。

轮廓检测基于图像子集

这类算法采用一定大小的图像子集顺序访问图像数据的方式,在图像子集“滑动”的过程中,根据图像子集中不同的数据情况进行轮廓信息的记录及提取。这类方法中比较新的为choy在1993年所提出的,他只采用了2*2的图像子集,通过从图像子集所观察到的不同数据序列进行轮廓片段的创建、合并、延伸操作来检测图像的轮廓,该方法提取出来的图像轮廓带有内外深度包含关系。这类算法最大的缺点是其所采用的图像子集的处理方法使得算法不得不对每一像素进行多次重复访问,从而导致算法效率地大大降低。

轮廓检测基于游程

这个算法也采用对图像数据进行顺序访问的方式,但不同的是基于游程的算法在扫描过程中要先对图像数据进行游程编码,并以游程作为分析对象来实现轮廓检测,此类算法大大改进了困扰着上述第二类算法的邻域运算问题,做到了对每一个像素点均只需访问一次。因为游程编码本身所带有的数据压缩特性,常常可以大规模降低所需处理的数据量,从而算法的实现往往更加高效、简单。但己有的此类算法依然存在着大量的不足,如Pavlldis和Quek所提算法均不得不经过两次扫描处理才能完成对轮廓的检测,从而使得算法的实时性大为欠缺。而Agrawala, Grant和Capson所提算法虽然都只要经过一次扫描过程,并且通过对游程左右端点进行有序地连接来实时地获取轮廓。但这些方法在对水平方向上的轮廓凹形部分的的检测存在着普遍的偏差,因此轮廓精度有所缺。[3]

轮廓检测性能评价

编辑

语音

针对目标的轮廓检测结果进行评价,有主观方法和客观方法两大类。

主观方法指通过人眼观察,根据人的主观意志得出结果,即定性比较。定性检测的结果很直观,但无法量化,最重要的是不同的人可能主观得出的结果不同,且人眼易于疲劳,并容易受光照等外界因素干扰。

客观方法指通过建立数学模型对数据库中的标准轮廓图和实验结果图像进行对比的方法。该类方法性能稳定快速。[4]

词条图册

更多图册

参考资料

1.

郭策锋. 基于中高级视觉机理的轮廓检测方法研究[D]. 电子科技大学, 2016.

2.

童昊浩. 仿生物视觉感知的视频闭合轮廓检测[D]. 合肥工业大学, 2015.

3.

周凯黎. 基于图像轮廓检测的带约束草图自动生成[D]. 浙江工业大学, 2014.

4.

李晓磊. 基于人类视觉感知的轮廓检测方法[D]. 陕西师范大学, 2014.

你可能感兴趣的:(计算机视觉轮廓检测)