logo资料库

steger高斯线检测自翻原稿.docx

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
一种曲线结构的无偏检测 Steger 摘要:曲线提取作为低尺度操作中很重要的一步有许多应用。现存的大多数操作只使用 简单的模型去进行提取,也就是说,没有考虑线周围造成的影响,这将会导致不希望的结果, 只要存在不同的横向对比度(存在灰度差),线就会被检测在错误的位置上。相比之下,本文 提出的算法使用的是关于该直线与其邻域的模型。通过分析尺度空间下的线轮廓,可以看出 如何消除不对称线带来的偏差。此外,该算法不仅返回精确地亚像素位置,还返回每个线点 的线宽,当然也是亚像素的。 关键词 特征提取,曲线结构,线,尺度空间,轮廓链接,低尺度,投影图像 1.介绍 曲线结构检测被简称为数字图像中的线检测,是一种重要的操作在机器视觉中,具有诸 多应用,在摄影和遥感中,通过卫星或低分辨率的投影图像中提取线特征例如:道路,铁路 或河流,用于捕获或更新地理系统的数据。另外,在医学图像中可用于提取解破学特征,例 如 X-射线造影形成的血管或来自 CT,MT 图像中的骨头。 以前的线检测看分为三类:第一种仅通过考虑图像的灰度值来检测线,并只使用局部标 准,例如局部灰度值差异,这将带来一些虚假的信息,因此必须选用精细和计算复杂的感知 分类器来选取图像中的突出线。此外还不能以亚像素进行分析。 第二种方法是将线看做具有平行边缘的对象,首先逐像素的确定线的方向。然后在垂直 于曲线的方向上应用两个边缘检测滤波器,用于检测左边缘和右边缘,其中滤波器是非线性 的。这种方法的优点在于,由于采用了高斯核的导数,所以可以在比例空间中通过迭代检测 离散宽度的的线。由于滤波器的连续性,所以计算很耗时?(不懂) 。 最后一种方法将图像看做平面函数同时通过微分几何的属性来提取线,这些算法的背后 是定位图像函数中的脊线与谷线并根据他们的属性来进一步划分: 第一个子类将脊定义为图像轮廓线上曲率(偏离直线的程度)最大的点,一种方法是精确 的找到轮廓线上的极大曲率点,将点连接成线。但也存在两个缺点,首先,由于具有方向性, 不能保证水平方向的轮廓线,这些脊将被标记成延伸的峰,此外对于具有小梯度的脊,轮廓 线将会变得广泛分离且难以链接。另一种提取最大曲率点的方法是给出曲率的显示公式,并 在曲率图像上搜索最大值,对于水平方向同样会失败,此外在某些位置也会发生错误。 第二个子类是将曲率图像中局部最大值处定义为脊,对于平滑轮廓的线的问题是如何找 到曲率极值。 第三种子类是通过二阶,三阶泰勒多项式局部逼近图像函数来检测脊和谷,多项式的系 数由特定窗口的模板决定,即通过多项式与特定大小窗口上的图像数据的最小二乘拟合决定。 其中线的方向由泰勒多项式的 Hessian 矩阵决定。通过选择具有垂直于线方向的二阶导的大 小来寻找线点,该方法可以基于亚像素精度,然而,因为用于确定泰勒多项式系数的卷积模 板的一阶导与二阶导很差的结果,得到多个响应?,因此,该方法不能检测比模板尺寸宽的 线,由于上述原因,很多人提出了基于高斯模板的脊线检测,可以通过选择合适的σ来调整 模板宽度,也可以为每个图像点选择合适的σ,然而,线的周围区域没被建模,因此随着 σ的增加,提取线的位置变得越来越不准确(小缺陷与大模板结果) 以往很少有线检测方法考虑提取线宽和线位置,大都是通过尺度空间的迭代来做到的, 即σ,将产生的相应的最大值的σ作为线宽,这在计算上很耗时,尤其是那些只对固定宽度 感兴趣的线宽,此外,这种方法仅产生线宽的粗略估计,因为尺度空间是以粗略的间隔进行 量化的。有一种不同的方法,同时提取线和边。对于每一个线点,得到两个对应的边缘匹配 点。该方法的优点是,线条以及对应边缘点在理论上可以通过亚像素来进行提取。然而,由
于使用了三阶模板,所以也会遇到上述问题(不懂),此外,由于该方法不使用线的显式模型, 所以线对应的边缘位置通常没有意义,因为其忽略了线与对应边的相互关系。 在本文中,提出了一种线检测模型,该方法使用线的显式模型,并讨论了复杂度越来越 高的线轮廓模型。对每个模型进行尺度空间分析,该分析可以导出一个能够以亚像素精度来 提取线及其宽度的算法,本方法使用微分几何的方法来检测线及对应边缘。因为高斯模板用 于估计图像导数,所以算法缩小到任意宽度,总是产生单响应,此外,由于线和他们相对应 边之间的相互作用是有明确建模的,因此可以分析出位置偏差并将其去除。 2.线点(line point)检测 2.1 一维线轮廓 许多一维线检测中将线认为是条形的,也就是说假设理想的 2宽,h 高的线具有下述 轮廓: bf ( ) x     h 0 x x     (1) 这种平坦的轮廓作为一种特征是很多人感兴趣的,如:投影图像或印刷字符中的道路。 然而,对于真实图片来说,两条线具有相同的对比值这种假设很少成立,因此不对称的 条形线: f ( ) x a      0 1 a x   x  x     (2) a  [0,1] 在本文中被认为是最常见的线轮廓。通常线高 h 可以被包含形成一个尺度不对 称轮廓,即: ( ) ahf x 2.2 一维线检测 为了导出线检测算法,让我们先假设线 Z(x)没有像式(1),(2)那样的边缘,而是一个 “rounded”轮廓,例如抛物线形的轮廓。这就足够去确定线的一阶导 Z’(x)的零点。然而, 通常只选择突出的线条是很方便的,一个很有用的量纲去表征突出的线条就是一阶导为 0 处的二阶导(突变的起始点?)。因为噪声,该方案对实际图像不会产生好的结果。在这种情 况下,线的一阶导与二阶导应该被估计通过将图像与高斯函数的导数,因为在普适情况下, 他的唯一核函数将含噪声函数的导数病态的问题变得合适。高斯函数如下: 注:斜坡处,一阶导会产生粗的边缘(全有),二阶导会产生细边缘(只在开始和结尾处), 对于孤立点,二阶导远大于一阶导,所以在增强细节方面,二阶导远强于一阶导,产生双 边缘。暗背景下的亮线具有二阶导小于 0(冈萨雷斯,p446),亮背景下的暗线具有二阶导大于 0。离散二阶导(a+c-2b),三个点关系。 ( ) g x   ' ( ) g x   1 2  x  3 2  2 x  e  22 (3) 2 x  e  2 2 (4)
'' ( ) g x   x 2 2   5 2  2 x  e  2 2 (5) 因此,一个线轮廓的尺度空间导数被建立了,这种方法的理想特征对应的是抛物线形的 轮廓,所提取的位置总是真实的线的位置,并且线的位置的二阶导数的大小总是最大的。三 个点才构成线,两个点那是台阶!因此突出线的选取是基于其遍历所有  的二阶导。抛物线 轮廓的分析给我们提供了线条提取算法应具备的理想特性以后,现在让我们考虑本文其余部 分更常见的条形轮廓的情况。对于一些轮廓(不含噪声),不能只基于一阶导与二阶导去判断, 因为他们在区间[ 上没有定义(why)。然而,如果线条轮廓与高斯核函数的导数卷积 以后,会在每一层上获得一个平滑的函数,其表示就是:(h 是线的最高高度,w 是缺陷宽 度,x 是最大宽度,sigma 是高斯系数) ] , , ) ( , ( ) f x r x h  b b ( )) x h        ( )* g x   ) ( x   , (  (6) ' , ) ( , , r x h   b ) ( ( h g x     ' ( )* ( ) f x g x b  ( )) g x     (7) '' ' ( )* , ) ( , , g x r x h   b  ' ' ) ( ( ( h g x g x        ( ) f x b ))  (8)  ( ) x x    2 t  dt 22 e (9)(变上限积分的导数是原函数) 图 1 条状线 fb 与 [0.2, 2]  和 [ 3,3] x   的高斯核函数导数卷积的尺度空间 图 1 展示了在 h=1 和=1 情况下的条形轮廓的尺度空间。可以看出条形轮廓在其角落 g x 支撑域为全空间,对于遍历所有  的一阶导只在 x=0 处没 处逐渐变成“圆形”。由于 ( ) , 有值。然而二阶导 ''( , h 不会在小的  处取得最大负值,事实上,对于 br x 是非常接近 0 的(这样提取出二阶导极小值的与实际不符),而且在区间[ 上有两 个极小值。但是对于二阶导这两个值是可取的,去展示在 x=0 处有明确定义的极小值,因 0.2 时, ] , ) , 为这条突出的线是由这个值决定的。 的值由等式: ''( br (0, h , )) 0  , 决定。他可以被    认为:   3 (10)。而且从二阶导图中可以看出  时,其获得最大负值。这意味着  3 也可以使用与上述相同的方案来检测条形线,σ的选取应该按照条形区域的二阶导的极值来 确定。
另外,对式 7,8 可以用来推导条形轮廓的边缘,边缘的位置被确定通过一阶导绝对值 的极大值或二阶导的过零点,在一维实例中,这两个定义是等价的,会在第 4 章中被讨论, 在 2D 中是通过垂直于线方向的梯度最大值实现的。这将给出正确的边缘位置,除非该线的 曲率比σ高太多,这种情况下,该宽度将会被提取的非常小。因为这种尺度空间的分析不能 , 1 。 用方程式求解,而是要计算根。图 2 展示了线的位置,它对应的边缘 [0, 4]  图 2 条状线与 1 和 [0, 4]  的尺度空间 从式 8 可以明显得知,线边缘与真实线的距离不会比σ更近(不太懂),所以说对于窄线 的线宽将会明显的估计过大。然而,对于当前模型,可以反转映射去描述图像边缘,因此, 一旦提取出边缘就可以精确定位而不需要反复应用滤波器。(我能懂就怪了),迄今为止的讨 论认为,线条两侧具有相同的对比度,但是实际图片很少出现该情况,现在看看图 2 给出的 非对称的条形线: ( , ar x )    , ) a   (  x ,  ( a  ) 1) (     x (11) ' ( , ar x ,  , ) a '' ( , ar x  , ) a ,  ( g x   )   ( a  1) ( g x   )  (12)  ' ( g x   )   ( a  1) ' ( g x   )  (13) 其中一阶导等于 0 的位置,也就是说线的位置被给与根据: l   2  2  ln(1  a ) (14)(得到的是什么?) 这意味着只要线条两侧对比度有明显不同,就会估计线条错误。所以需要满足: a 1 e   2 2   2  。 此时对应边缘的位置就可以通过数学的手段来计算。图 3 展示了线与边缘的例子其中 1, ,可以看出,线和边缘的位置受到线不对称性的极大影响。 随着不对 [0,1] 1,   a   称性的变大,线和边缘位置被推到弱侧,即具有较小边缘梯度的侧面。既然式(14)给出了提 取线偏差的显示公式。假设我们知道每个点的 w 和 a,就可以移除线偏差,第五章讲。 从上述分析看出,不能模拟线的边缘,由于边缘的不对称性,可能导致线位置和宽度的 误差,出现错误的结果。 2.3 一维离散情况
到目前为止分析了函数 Z(x),对于离散信号,只修要修改两次,第一个是如何在离散空 间中实现卷积,选择高斯模板作为卷积核,另一个优势就是自动归一化以及关于给定的近似 误 差 需 要 多 少 系 数 的 直 接 标 准 ( 不 懂 ) ? 如 果 将 离 散 图 像 看 成 分 段 函 数 Z(x)=Zn,x=(n-1/2~n+1/2),此时卷积如下所示, 实现后,近似误差是 10-4,因为灰度值属于[0~255],精度已经足够了。系数的数值用 x  0 (取顶符号),当然也存在其他方法。 1   2   第二个问题是离散情况下的线的位置,正常情况下,可以通过过零检测器来完成,但这 只会产生像素精度的线,为了将其变成亚像素精度,观察 Zn 的泰勒展开式。令 r,r’,r’’是图 像点 n 处的局部导数,是通过图像与模板 g,g’,g’’卷积得到的结果。下述即为泰勒多项式: p (x)   r ' r x  '' 2 r x (19) 1 2 ' r r '' 那线的位置就是 p 函数一阶导为零处: x   如果该位置落在像素的边界上,则点 n 被声明为线点,即 x=[-1/2,1/2],同时二阶导要大 于用户指定的阈值,注意一下为了提取线,r 的响应是没用必要的,因此不需要计算,关于 如何提取对应线点的边的讨论推迟到第 4 节。 2.4 二维离散情况 2D 图像上的曲线结构可以被模型化为曲线 s(t),其在线的垂直方向上呈现出 1D 线轮廓 fa,也就是说垂直于曲线的一阶导,将这个方向定义为 n(t),这就意味着 n(t)的一阶导应该消 失,二阶导存在最大的绝对值,假设不存在一阶导的衍生物。 剩下的唯一问题就是为每个图像点局部的计算线的方向,为了做到这一点,必须通过将 图像与离散高斯二维偏导数核卷积来估计图像的偏导数,z(x,y)二阶方向导数取其最大绝对 值方向作为 n(t)的方向,可以通过计算海森矩阵的特征值与特征向量来确定该方向。
图 4 a 是待检测图片,b 中的线点位置与 c 中的方向叠加在一起。 ( , H x y )  ( r xx r xy r xy r yy ) (21) 可以通过一种数值有效和稳定的方式来进行计算,通过雅可比行列式来消除 rxy,假设特 征向量对应最大绝对值的特征值?也就是说是垂直于线的方向,通过(nx,ny),令其二范数等于 1,与 1D 情况相同,二次多项式用于确定沿(nx,ny)的一阶导是否为零。这可以通过将(tnx,tny) 插入泰勒多项式并将对 t 的导数置为零。因此该点的坐标为 接下来(px,py)属于(-1/2,1/2),( -1/2,1/2)是为了将一个点声明为一个线点所必需的,还是如 1D 情况所示,沿(nx,ny)的二阶导最大绝对值即最大特征值,可用于选择显著线。 3 将线点连接成线 在提取单个像素后,将其连接成行,提取出线点之后需要立即这么做,因为在后续决定 线宽与消除偏差的数据结构上需要使用线的左侧与右侧。因此,线的法线方向必须朝向同一 侧,从图 4 可以看出来,到目前为止程序不能这么做,因为线点被认为是孤立的,无法在左 右两个不同的方向上确立优先性, 3.1 连接算法 离散的框架就是海森矩阵,从图像层面来说,对于二维图像的某点的 hessian 矩阵,其 最大特征值和其对应的特征向量对应邻域二维曲线最大曲率方向和强度。曲率越大,曲率半 径越小 Hessian 矩阵的特征值就是形容其在该点附近特征向量方向的凹凸性,特征值越大, 凸性越强。你可以把函数想想成一个小山坡,陡的那面是特征值大的方向,平缓的是特征值 小的方向。 就极值而言,一阶导为 0 是极值点的必要但不充分条件,一阶导为 0 且二阶导非负是极 小值的充要条件。为什么呢,因为泰勒展开 f ( ) x  ( f x 0 )  ' f x dx ( ) o  一阶导为 0,二阶导非负,dx 不论是多少,f(x)一定不比 f(x0)小。 获得每个像素的特征向量的方向,和亚像素位置。 1 2 f '' ( x dx 0 ) 2 。如果
分享到:
收藏