【文献翻译】LSD: A Fast Line Segment Detector with a False Detection Control

前言

博主译文水平不好,为了学习,所以进行论文翻译和研究,博文以译文为主。如果有翻译不对之处,还请各位指出,便于我修改。

文献信息

引用格式:Gioi R G V, Jakubowicz J, Morel J M, et al. LSD: A Fast Line Segment Detector with a False Detection Control[J]. IEEE Trans Pattern Anal Mach Intell, 2010, 32(4):722-732.
所属级别:CCF A类
发表期刊:TPAMI
发表年份:2010
原文链接LSD: A Fast Line Segment Detector with a False Detection Control

LSD:具有假检测控制的快速线段检测器

摘要: 我们提出了一种线性时间线段检测器,可提供准确的结果,可控数量的错误检测,并且不需要参数调整。 该算法经过测试并与大量自然图像中的最新算法进行比较。
关键字: 线段检测,NFA,亥姆霍兹原理,反向检测。

引言


   线段提供有关图像几何内容的重要信息。 首先,因为大多数人造物体都是由平面构成的; 其次,因为许多形状接受直线方面的经济描述。 线段可以用作低级特征以从图像中提取信息,或者可以作为分析和检测更复杂的形状的基本工具。 作为特征,它们可以帮助解决立体分析[14],材料裂缝检测[17],图像压缩[11]和卫星图像索引[19]等几个问题。
   理想情况下,人们希望有一种算法能够精确检测图像中存在的线段,而不会发生错误检测,也无需手动调整每个图像或每组图像的参数。 为了评估本文提出的线段检测器(LSD)在这个方向上的趋势,所有的实验将使用相同的参数进行,无论图像来源,场景和分辨率如何。
   线段检测是计算机视觉中的一个老旧且经常出现的问题。 标准方法首先应用Canny边缘检测器[4],接着进行Hough变换[1],提取所有包含多个边界点的线条,这些线条超过阈值。 这些线条之后通过使用间隙和长度阈值切割成线段。 霍夫变换方法具有严重的缺陷。 具有高边缘密度的纹理区域会导致许多错误检测(参见图1树上的斜线)。 忽略边缘点的方向,这种算法获得具有异常方向的线段。 而且,设定阈值是所有检测方法的基本问题。 使用固定的阈值会导致大量的误报或漏报(见图1)。
图1
图 1

图1.各种线段检测方法的比较。 指示Apple PowerBook G4 1.5 GHz的处理时间。 Hough变换,Etemadi和Burns等人。 方法检测树上许多不相关的小线段。 PPHT不会产生错误检测,但无法检测到小线段。 Desolneux等人 控制错误的检测,但在对齐的线段出现时给出不准确的解释。 Multisegments检测器给出了一个好的结果,但是时间过长。 LSD在线性时间中给出了类似的结果。

   另一种经典方法是从边缘点开始,将它们链接成曲线,然后用直线标准将链条切割成线段[10]。 一个标准的链接方法是由于Etemadi [9]。 这种方法是无参数的,通常会给出准确的结果。 此外,它是同时检测线段和弧线的少数几种算法之一[1]。然而,结果并不完全令人满意,如图1所示。许多检测到的直线和小边缘曲线都是误报: 再次出现基本的阈值问题。
   Burns等人 [3]引入了一个关键新思想的线性时间线段检测方法。 他们的算法不是从边缘点开始的,实际上只使用梯度方向来忽略梯度幅度。 Kahn等人对这种算法进行了改进 [15],[16]。 这个算法给出的线段很好的定位,但是阈值问题仍然存在。 图1中的树叶可以被描述为一个纹理,作为一个对象,但肯定不是一组线段。 对这些方法的检查表明,应该添加一个选择标准作为最后一步。
   这些经典方法有一些这样的标准规则。一个很好的例子是由Matas等人提出的渐进概率霍夫变换(PPHT)[18],[12]。像许多类似的方法一样,它通过随机选择边缘点来加速计算时间。但是改进来自于使用图像梯度信息和错误检测控制。图1显示了对标准霍夫变换方法的明显改进。尽管如此,所使用的错误检测控制并不完全令人满意。首先,该机制适用于整条线,而不适用于线段检测。长线段(与图像中线的长度相似)会产生检测结果,但小线段不会。结果,许多短线段缺失,如图1所示。其次,该方法的检测参数是每次分析边缘点时获得错误检测的概率。但是,分析的边缘点数量取决于图像大小以及错误检测的预期数量。该参数的默认值被设置为控制图像大小约为 256 × 256 的错误检测.对于较大的图像,错误检测不再被控制,如图 10和11显示。任何固定值都会在大图像上产生错误的检测结果,在小图像上漏掉。
   这个阈值问题由Desolneux,Moisan和Morel [6]彻底分析。他们的线段检测方法成功地控制了误报的数量。该方法计算对齐点的数量(梯度方向与线段大致正交的点),并在非结构化,反向(contrario)模型中找到线段为异常值。这种方法是基于一般感知原理,亥姆霍兹原理[8],据此观测到的几何结构在噪声期望值小于1时具有感知上的意义。应用亥姆霍兹原理可以保证弱感知中没有误报,意味着平均而言,在与分析图像大小相同的白噪声图像中只能进行一次错误检测。它也保证不会出现假阴性,因为噪声中可能出现的线段必须被视为真阴性。用亥姆霍兹原理检测线段受到与人类感知的受控心理视觉比较[7],[8]。该比较使用合成图像。地面真实是由确定性对齐组成的。它叠加到由小随机线段组成的背景杂波上。通过改变背景和地面实况的参数,该设置提供了实验检测 - 拒绝曲线,可以与亥姆霍兹原理预测的理论曲线进行比较。 [7],[8]中的结果显示了20个主题的预测曲线和观察曲线之间的令人信服的定性和定量的一致性。
   Desolneux等人方法已经过广泛的测试。实验证据(包括此处显示的所有图像)证实,它确实找到图像中直观存在的线段(无假阴性)。由于该方法的保证,它几乎没有误报。不幸的是,它往往会曲解对齐线段的数组(参见例如图1中的窗口)。对这种缺陷进行了详细的分析,并在[21],[22]中找到了令人满意的解决方案。该解决方案涉及更复杂的亥姆霍兹原理计算,并比较每条线上所有可能的线段(多段)数组的意义。对Desolneux等人的误解方法进行了校正,得到了更准确的线段检测器(见图1)。不幸的是,Desolneux 等人而多分段检测器是穷举的算法。 Desolneux等人方法测试图像中所有可能的线段,并具有 O ( N 4 ) 复杂度,其中 N 是图像周长。多段式具有 O ( N 5 ) 复杂性。因此,这些检测器注定只能用于离线应用。
   本文的目的是提出一种线性时间算法,该算法可以累积以前算法的大部分优点而不存在缺点。 Burns等人 在线段提取方面取得突破的线段查找器将得到改进,并与来自Desolneux等人的验证标准相结合。 其结果是LSD,线性时间线段检测器,不需要参数调整,并提供准确的结果(见图1)。
   第2节和第3节介绍了Burns等人的改进版本。 提供线段候选的算法。 第4节描述了验证标准。 第5节给出了该算法的全局图,并讨论了其最重要的属性。 第6节评论实验结果,第7节结束本文。

2、线支撑区域(LINE-SUPPORT REGIONS)

   与经典的边缘检测器相比,Burns等人 方法将线段定义为图像区域,即线支撑区域,即其点共享大致相同的图像梯度角的直线区域。 这样的线段大致沿平均水平线方向取向。 Burns等人算法分三步提取线段:

  1. 通过将共享相同梯度角的连贯的像素分组到达一定的公差,将图像划分为线支撑区域。
  2. 找到最接近每个线支撑区域的线段。
  3. 根据线支撑区域中的信息验证或不验证每个线段。

   考虑到这种方法是一个真正的突破,所提出的算法共享步骤1和2的核心思想,并进行了一些改进。 然而,步骤3是完全不同的,并且基于Desolneux 等人相反的方法。 本节介绍步骤1的新版本。 步骤2和3将在以下两节中进行介绍。
  我们的步骤1的版本是一个区域增长算法。 图2说明了该过程。 每个区域仅仅是以一个像素开始,并且该区域角度(region angle)设置为该像素处的水平线角度(与梯度角正交)。 然后,测试与该区域相邻1的像素; 水平线方向等于区域角度达到一定精度2的区域被添加到该区域。 在每次迭代中,区域角度更新为区域像素的伪平均水平线方向,由此定义

a r c t a n ( i s i n ( a n g i ) i ( a n g i ) )

图2
图 2

图2.对齐点区域的生长过程。 水平线方向场(与梯度方向场正交)用虚线表示。 标记像素是形成该区域的像素。 从左到右:第一次,第二次和第三次迭代,以及最终结果。

  重复该过程直到不能添加新点。 伪码算法1给出了更多细节。 首先测试 3, 具有较大梯度幅度的种子像素,因为它们更可能属于直线边缘。 当一个像素被添加到一个区域时,它会被标记并且再也不会被访问。 这个关键属性使算法变得贪婪和因此线性。

算法1
算法1

  无论何时在图像中存在大且对比度良好的直边,该算法通常会找到相同的线支撑区域,无论起点如何。 相反,结果可能取决于非线性曲线通过线段进行近似时的起始点(例如,当图像中出现圆时)。 在这种情况下,将圆分解成线段的分解将与从不同种子点获得的任何其他分段一样好。 由于Burns等人的观点,具有共同方向的连接区域几乎总是与直线边缘重合的事实是令人惊讶的经验发现。 我们提到曲线的情况是一个无害的第一反例。 自古以来,光滑的曲线已经作为(小)直段的连接处理。

3、区域的矩形逼近

  在验证步骤之前,线支撑区域(一组像素)必须与一个线段(实际上是一个矩形)相关联。 线段由其端点及其宽度或等效的中心,角度,长度和宽度决定。 其如图3所示的矩形近似包括所有这些参数。

图3
图3

图3.线段的特点是由其中心点,角度,长度和宽度决定的矩形。

  想到的第一个想法是使用平均平行线角度作为线段的主要方向。 当背景显示出缓慢的强度变化时,这个过程可能导致错误的线角度估计,参见[20]。 在LSD中(这个想法最初由Kahn等人在[15],[16]中提出),质心用于选择矩形的中心,第一个惯性轴用于选择矩形的方向。 梯度大小被用作像素的质量(mass)。 具有较大梯度范数的点与观察边缘(edges)更好地对应。 然后,以覆盖线支撑区域的方式选择长度和宽度。 图4显示了结果的一个例子。

图4
图4

图4.线支撑区域的矩形近似示例。 左图:图像。 中:线支撑区域之一。 右:矩形近似重叠到线支撑区域。

4、线段验证

  Desolneux等人方法的两个关键点 [6]是使用梯度方向和一个新的框架来处理参数设置。 他们的方法如图5所示。计算输入图像的梯度,只保留水平线方向。 在图5中,这些信息被编成了破折号的角度。 给定一条线段,该算法计算对齐点(aligned point)的数量,即具有等于线段角度的水平线方向的点,计算该数量直至某个公差 τ 。 必须测试图像上所有可能的线段; 满足基于长度 l 和它们的对齐点 k 的数量的阈值标准的那些线段被认为为有效检测。

图5
图5

图5.左:水平线方向场上方显示的一条线段(与梯度方向场正交)。 右:计算每个线段达到角度公差 τ 的对齐点的数量。 显示的线段有七个中的四个对准点。

  在自然图像上,对应于边缘的灰度级过渡可以是许多密集像素。 例如,这发生在焦点对象的直线边界上。 在那种情况下,Desolneux 等人的算法给出了许多并行检测,并且需要很大的努力才能回到正确的解释[8]。 为了解决这个问题,将使用矩形(rectangles,具有一定宽度的线段)而不是线段。 图6说明了这个概念。

图6
图6

图6.在水平线方向场上显示的一个矩形(与梯度方向场正交)。 该矩形有20个中有9个对齐的点。

  在Desolneux et al等人的一个相反(contrario)的方法,检测被视为一个简化的假设检验问题。 事实上,在经典决策框架中,需要两个概率模型:一个用于背景,另一个用于要检测的对象。 在相反(contrario)的方法中,对象直接被检测为背景模型的异常值。 另外,背景模型被简化为最简单的,即白噪声。 正如Desolneux等人表明,合适的背景模型只是其中所有梯度角度是独立且均匀分布的模型。 他们表明这是高斯白噪声图像的情况。 更正式地说,在背景模型 H 0 下的图像 X 是随机图像(在网格上定义为 Γ = [ 1 , N ] × [ 1 , M ] Z 2

  1. m Γ , A n g l e ( X ( m ) ) 均匀分布在 [ 0 , 2 π ]
  2. { A n g l e ( X ( m ) ) } m Γ 族由独立的随机变量组成。

  对于通常由于采集过程而呈现的平坦图像区域来说,这确实是一个很好的模型,它具有白噪声分布。 但是,更重要的是,这个模型代表了很好的等向性(isotropic)区域,而直边则完全相反:高度各向异性(anisotropic)的区域。 因此,实际上,如果一组像素可能已经由等向性过程形成,则其不被接受为线段。 一个很好的例子如图1所示。树的叶子远非白色噪音过程,而是等向性的结构; 因此,在那里没有检测到线段。
  有多少个统计测试 T r 要在图像中作为潜在的矩形 r 执行。 每个测试都依赖于统计数据 k ( r , x ) ,,其是矩形 r 和图像 x 中的对齐点的数量。 检测步骤如下:如果 k ( r , x ) k r 则拒绝 H 0 ,否则接受 H 0 。 对于这个测试,非 H 0 也将用 H r 表示,即矩形检测。 因此,我们导致了为每个矩形 r 确定阈值 k r 的问题。 在Desolneux等人之后, k r 必须以确保在 H 0 下预期的误报数量的控制的方式被固定。 我们定义了一个矩形 r R 和一个图像 x 的误报警数量,如

N F A ( r , x ) = # R I P H 0 [ k ( r , X ) k ( r , x ) ]

  其中 x 是观察图像, X H 0 下的随机图像, # R 是图像中潜在矩形的数量。 N F A ( r , x ) 越小, r 越有意义,即在 H 0 模型下绘制的图像中出现的可能性越小。 拒绝 H 0 当且仅当 N F A ( r , x ) ε 。 我们把 ε 称为有意义的矩形(meaningful rectangles)。

  该方法通过以下命题是合理的:
命题.

I E r R l l N F A ( r , X ) ε ε

   换句话说,背景模型下的预期检测次数少于 ε ,因此,根据亥姆霍兹原理,只有偶然发生的极少数检测( ε )。

  在实践中,只有算法步骤1中找到的线支撑区域被测试为线段检测的候选。 但是,这并不意味着可以将 # R 设置为等于有效测试的线支撑区域的数量。 这些线支撑区域具有复杂的统计数据,与白噪声统计数据不同。 实际上,它们中的每一个都被选为共享相同方向的像素的连接分量的边界框。 让我们称 B ( r ) 为r是这样一个边界框的事件。 只有当我们知道如何计算条件概率 I P H 0 [ k ( r , X ) k ( r , x ) | B ( r ) ] 时,计算适用于有效测试包围框的NFA才是可能的。这个概率在直观上远高于 I P H 0 [ k ( r , X ) k ( r , x ) ] 。在没有这个复合概率的闭合公式的情况下,我们必须满足上述命题给出的估计值,计算图像中潜在矩形的数量。

  考虑到一个像素的精度,在 N × N 图像 (在网格 Γ 的一个点上开始和结束)中有 N 4 个潜在导向线段。 如果我们将矩形的可能宽度值的数量设置为N(过高估计),则潜在测试的数量将上升到 # R = N 5 。 这个估计很粗糙,确切的数字取决于所考虑的确切精度。 这里重要的是数量级,它允许阈值适应不同的图像大小。 见[8]进一步讨论测试次数。

  如果角度公差 τ 被设定为 τ = π p ,给定点的水平线与矩形对齐的概率(在 H 0 下)为 p 。 由于梯度在 H 0 下的不同图像点处是独立的,因此 k ( r ) 遵循具有参数 n ( r ) p 的二项定律(binomial law),其中 n ( r ) 是矩形中的点的总数。 使用之前估计的测试数量,我们可以记为

N F A ( r ) = N 5 b ( n ( r ) , k ( r ) , p )
   其中 b ( n , k , p ) = i = k n ( n r ) p i ( 1 p ) n i 代表二项式尾项。
   该方法对 ε 的依赖性非常弱(实际上是对数),见[6]。因此,正如Desolneux等人所建议的那样,可以仅限一次去固定 ε = 1 。 这通常对应于在非结构化模型上接受每个图像的一个假阳性(false positive)检测。 它还保证所有丢弃的线段确实可能出现在噪声中(在这个意义上没有误报(false negatives))。

5、完整的LSD算法

5.1、算法的细节

   算法2显示了完整算法的伪代码。 子程序 G r a d 计算图像梯度并给出三个输出:水平线角度,梯度幅度和像素的有序列表。 参数 ρ 是一个阈值:梯度幅度小于 ρ 的点被丢弃(为了验证,这些点被认为不是边缘的一部分,因此是非对齐的。)。这个参数将在5.2节中讨论。 为了构造该列表,按照它们的梯度幅度将像素分类为箱(bins); 该列表以属于高梯度箱的像素开始,并以属于低梯度箱的像素结束。 该列表大致按递减的大小顺序排序。
算法2
算法2

  像素列表用于在搜索线支撑区域时优先考虑像素作为种子。 列表中的第一个像素是具有较高梯度大小的像素,因为它们更可能属于边缘。 从该像素开始,第2部分 R e g i o n G r o w 中描述的算法用于获取线支撑区域。 然后,第3节 R e c t A p p r o x 中描述的算法给出该区域的矩形近似值,第4节中描述的方法计算线段的NFA。

  在我们的上下文中,线支撑区域的最佳矩形近似值是给出较小NFA值的矩形近似值。 程序 I m p r o v e R e c t 尝试对最初的近似进行几次扰动以获得更好的近似值。 这个步骤对于大型且对比度良好的线段并不重要,但它扩展了对小型和嘈杂型线段的检测限制。 被测试的扰动是宽度和横向位置的变化4。理由是线段的宽度是第一个矩形近似中最差的估计参数,但也是一个非常有影响的参数。 使矩形变大一个像素的错误会增加大量的非对齐点,与线段的长度一样多。 这可以增加NFA的价值,增加非检测风险。

  NFA值的第一次计算使用概率 p (即一个点偶然对齐)完成,等于 p = τ π ,其中 τ 是用于获得线支撑区域的公差。 但是,观察到的水平线角度可能更精确,导致更好的NFA值。 从 p = τ π 开始, I m p r o v e R e c t 也会尝试二元精度级别(dyadic precision levels),覆盖 p 值的实际范围5。精度越高,某些点可能会停止对齐,所以 k ( r ) 可能会减小; 根据情况,较小的 p 和较小的 k ( r ) 之间的平衡可以增加或减少NFA值。 保留最好的一个。 请注意,此循环消除了 p 作为方法参数。

   S t a t u s 用于跟踪由线支撑区域使用或测试的像素,如第2节中所述。但是,添加了第三种可能的状态: N o t I n i ,它被分配给没有被认定为检测的线支撑区域中的像素。 这将防止它们被用作新地区的种子点,但是如果邻居地区增长起来,就可以使用它们。 在某些情况下,这有助于改进搜索,参见[20]。

5.2、内部参数

  LSD涉及三个参数: ρ , τ ε
   ρ 是梯度大小的阈值:不考虑具有小梯度的像素。 原因是要处理图像强度值的量化。Desolneux等人 [5]表明,灰度量化会产生梯度方向角的误差。 当梯度幅度很大时,这个误差可以忽略不计,但对于小梯度幅度可以占主导地位。 它可以创建模式(patterns)并因此产生虚假检测。 阈值 ρ 的副作用是通过减少所考虑像素的数量来提高速度。
  我们用来设定 ρ 的标准是在角度误差大于角度公差的情况下省略掉点。 让 u 表示图像和 u ~ 量化的图像。 然后, u ~ = u + n ,而且

u ~ = u + n

   其中 n 是量化噪声。 在[5]中,显示了图像梯度角度的误差可以被约束。

| a n g l e e r r o r | a r c s i n ( q | u | )
   其中 q | u | 的边界,参见图7。
图7
图7

图7.图像噪声和梯度角度误差之间的关系。

  要使 | a n g l e e r r o r | τ ,则可得

ρ = q s i n τ

   例如,在量化图像灰度值为 0 , 1 , 2 , . . . , 255 ; | u | 可以有确界 q = 2 (最坏的情况是当相邻点得到+ 1和-1的误差时)。 如果 τ 设置为22.5度(对应于八个不同的角度箱),梯度幅度的阈值是 ρ = 5.2
   τ 是用于搜索线支撑区域的角度公差。 小值更具限制性,导致线段过度分割。 大值会导致大的地区和无关联的地区的融合。 当图像中存在一个对比度足够好且足够大的线段时,线支撑区域在这个参数上很少取决于这个参数(并且由于使用了梯度量值加权,矩形近似甚至更少)。 在临界尺寸区域或存在较多噪声时,此参数更重要。

  Burns等人 [3]建议使用对应于八个不同角度箱的22.5度角。 独立地,我们达到了与提供最佳结果的值相同值。 这个参数值背后没有任何理论,但它在成千上万的图像上得到了支持。

  注意 τ 也用于设置在NFA计算中使用的第一个角度公差。 但是, p 的所有实际值的范围也被测试。 结果是, τ 在验证步骤和线段的理论定义中都没有影响。

  最后,如第4节所述,检测参数 ε 不是一个关键因素;可以安全地将其值设置为1,这意味着平均而言,每个图像的一次偶然检测是可以接受的。

  总而言之,LSD可以在没有参数调整的情况下使用,并且所有上述参数都可以被视为内部参数。 这一事实得到了成千上万种不同种类和来源图像的测试的支持。

5.3、算法的复杂性

  梯度大小和角度的计算与像素的数量成正比。像素通过分类可以伪分类成箱,操作可以在线性时间完成。线支撑区域查找算法的计算时间与访问像素的数量成正比。如果区域之间没有重叠,则该数字将等于区域中的像素总数加上每个区域的边界像素。 N o t I n i 条件允许区域之间的某些重叠。这种重叠等同于区域之间具有较厚的(thicker)边界。因此,访问像素的数量与图像的总像素数成比例。其余的处理可以分为两类任务。第一种,例如,对区域质量进行求和或计数对齐点,与所有区域中涉及的像素总数成比例。第二种,例如计算惯性矩或从对齐点的数量计算NFA值,与区域的数量成比例。涉及的像素总数和区域数最多等于像素数。总而言之,LSD的执行时间与图像中像素的数量成正比。

6、实验

   512 × 512 大小的图像的处理时间是一秒钟的一小部分。 这允许在数千个图像,不同种类的图像,来源,尺寸和噪声水平上测试算法; 还对视频进行了一些测试。 应该强调的是,所有的实验都是在不调整任何参数的情况下完成的。 参见[20]对实验进行更深入的分析。 可以在http://iie.fing.edu.uy/~jirafa/lsd找到更多结果,包括一些视频,演示版本和算法的源代码。 本文中显示的结果是在一些最具挑战性的图像上获得的。

  图8显示了Apple PowerBook G4 1.5 GHz上的计算时间(以秒为单位)与图像大小的关系图。 对于大多数图像来说,计算时间比相同大小的白噪声图像(图上斜线性的一系列点)短。 主要原因是,在自然图像中,许多像素被梯度阈值丢弃。 然而,一些图像比白噪声图像需要更长的处理时间,如图中所示。 在噪声类结构(如草地背景)和长距离结构(如前景物体)的图像中通常会出现这种情况。

图8
图8

图8. LSD处理1,297个图像所需的计算时间(以秒为单位)作为图像大小(像素总数)的函数。 计算是在Megawave2版本2.31a上执行的LSD完成的,运行在Apple PowerBook G4 1.5 GHz上,。 斜线性系列对应于高斯白噪声图像。 垂直线性系列对应于大小为3的图像 3 , 072 × 2 , 304 ,今天流行的相机分辨率。

  图9显示了一系列关于自然图像的实验。请注意,检测到的线段很好地代表了这些不同图像的结构。左栏中的图像包含高度几何内容。几乎所有预期的线段都被找到了,感知的例外就是超出意义限制的小线段。按照这个理论,很少有错误的检测。右侧栏中的图像显示了一些非几何图像的结果。这第二组图像中的大多数检测结果不对应于真正的直的或平坦的物体;它们对应于局部笔直的边缘。在像手臂轮廓那样的情况下,从手臂不直的意义上讲,线段解释并不严格正确,但是对于给定分辨率的图像呈现的二维结构而言,这是一个合理的解释。对于弯曲的边缘,就像中右图像中的轮子,线段解释只是对曲线的经济近似。这样的结果是可以接受的,即每个检测对应于图像中的局部直线结构,并且每个局部直线结构具有相关联的线段。

图9
图9

图9.自然图像LSD的结果。

  噪音的存在会降低LSD的性能。 亥姆霍兹原理规定,不应对白噪声图像进行检测。 结果,当增加方差增加的噪声时,有意义的线段的NFA值增加。 最终,噪声在图像中占主导地位,NFA变得大于1,并且线段不再被检测到。 参见[20]了解更多细节。

  噪声也会影响区域增长算法,并且这种影响对于LSD至关重要。 噪音会产生水平线角度的变化。 低功耗噪声产生的微小变化并且结果不受影响。 噪声功率适中时,水平线角度的变化会变大,角度差可以达到角度公差值 τ 。 然后,区域增长算法不再能够跟随边缘,并且线支撑区域变得碎片化。 在存在强噪声的情况下,仅形成小的线支撑区域并且不进行检测。 图10(上)显示了一个合成噪声图像的例子; LSD只能检测到边缘的两个小部分。 然而,没有发现错误的检测结果,与现有技术的方法形成鲜明对比,参见图10.同样的效果发生在真实图像上,见图11。

图10
图10

图10.用五个线段检测算法分析两个不同尺度的噪声边缘图像。 当存在很多噪声时(这里的高斯噪声为 σ = 50 ),LSD不会检测到我们可以看到的一些线段; 它也不会产生错误的检测结果。 没有错误检测控制的方法会产生很多错误的检测结果,导致结果无用。 在这种情况下,PPHT错误检测控制失败。 PPHT和Etemadi的方法的确在全分辨率下检测边缘; 这是因为检测依赖于Canny边缘点,其涉及高斯滤波。 处理噪声的标准方法是高斯子采样。 当LSD处理半分辨率图像(第二行)时,它成功检测边缘; 霍夫变换方法,Etemadi方法和Burns等人 方法仍会产生错误的检测结果。

图11
图11

图11.在嘈杂的自然图像上可以看到图10所示的相同效果。 三行分别对应全尺寸,1/2分辨率和1/4分辨率的高斯滤波分析。 在全分辨率下,LSD无法检测图像的结构,但不会产生错误检测。 没有错误检测控制的算法,如霍夫变换方法,Etemadi方法和Burns等人的方法会产生无用的结果。 PPHT错误检测控制在此图像中失败并产生许多错误检测。 当噪声占主导地位时,无法以全分辨率获得图像结构。 但是图像可以用不同的尺度进行分析(可能是人类视觉)。 LSD在半分辨率下检测到大部分结构。 请注意,PPHT方法和Etemadi方法以全分辨率检测图像的部分结构; 原因是两种方法都使用Canny点,这涉及到高斯滤波。

  可以对这个理论提出批评:在 10和11的全分辨率图像中几乎没有检测到线段,即使它们对我们来说完全可见。答案是人类视觉系统使用多尺度分析。为了公平比较,我们必须授权线段检测理论也在不同尺度上来分析图像。 (霍夫变换方法,Etemadi方法和PPHT包括这样一个步骤,因为它们依赖于Canny点,其处理意味着高斯滤波。)。图10(底部)和11(中间和底部)显示被噪声遮蔽的线段可以通过在较粗尺度上的相同算法来检测。以较粗糙的比例进行分析也可能有助于在全尺度上通过图像细节检测全局结构。见[20]。然而,用强烈的人造噪声进行的这个实验并不意味着线段检测的多尺度理论是必要的。它只指出应该检测噪声,并且当噪声异常强烈时执行去噪步骤或放大。

  图12显示了在自然图像上的七个线段检测算法的比较。 显示了Apple PowerBook G4 1.5 GHz的所有计算时间以及找到的线段数量。 所使用的算法是:在免费提供的Xhoughtool软件包[13]中实现的Hough变换方法; Etemadi的算法在其原始实现ORT-2.3中; Burns等人的算法,使用Ross Beveridge [2](个人通信)的实现; 在免费提供的RAVL库中实施PPHT; Desolneux等人的算法,在免费提供的图像处理框架MegaWave2中包含的模块align_mdl中实现; http://gawave.cmla.ens-cachan.fr; multisegment检测器; 最后是LSD的实施,可在http://iie.fing.edu.uy/~jirafa/lsd上找到。

图12
图12

图12.各种线段检测方法的比较。 指示Apple PowerBook G4 1.5 GHz的处理时间。 Etemadi的方法同时检测线段和弧线; 这里只显示线段。 霍夫和埃特马迪有很多错误的检测。Burns等人的方法是准确的,但有大量的错误检测。 PPHT不会产生错误检测,但无法检测到多条线段。 Desolneux等人的方法没有错误检测,但是太全局化了。 Multisegments和LSD在非常不同的时间给出类似的结果。

  如上所示,霍夫变换方法通常会产生错误检测,因为它不考虑边缘方向:查看人的头发上的水平方向。 Etemadi和Burns等人的方法存在阈值问题:需要一个决策规则来选择好的线段;否则,检测无效(分别检测到1,517和3,677个线段)。由于检测阈值过于严格,PPHT无法检测到许多小线段,非常适合线检测,但不适用于线段检测。 Desolneux等人的方法没有产生错误的检测,但是当存在对齐的线段时没有得到正确的解释,如在图12的背景中的栏杆处。而且,当缓慢梯度出现时,如在在图像左侧的表格中,这会产生多个平行检测,而不是一个更宽的线段。Multisegment检测可以产生良好的结果(即使并行检测问题仍然存在,并且在某些情况下幻觉全局对齐结构(hallucinates global aligned structures)不存在,参见[20])。然而它的计算时间是过高。目的LSD在0.7秒内对716条线段的图像结构进行了很好的描述。

  multisegment检测器和LSD的结果在大多数情况下是相似的。让我们简要地评论一下主要的区别。multisegment检测器处理穿过图像的每条线,为每一条线生成全局解释。这个过程偶尔会导致图像中不存在的全局结构的幻觉(hallucination of a global structure)。图1显示了一个例子:叶子中水平或垂直的小线段,并与图像上存在的一些真实对齐线保持一致。这种明显的随意对齐加强了该线的意义。因此,小的线段本身无意义,被解释为更大的多段的一部分。由于局部更多,LSD不会出现这个问题。但是,multisegment探测器的全局分析需要掌握对其他案例的正确解释,如图13所示。在此图像中,LSD无法检测到太短的小线段,而multisegment算法成功地重构了全局结构。

图13
图13

图13.multisegment检测器比LSD产生更好结果的情况。 有些线段太小而不适合LSD。 这意味着他们的线路支持区域可能会产生噪音。 在每条线上进行的全局分析允许multisegment检测器获得正确的线解释。

7、结论

  对实验结果(以及读者可能希望在线执行的许多其他实验结果)的检查表明,线段检测可以是准确的并且具有少量的误报(false positive)和漏报(false negative)检测。这一有希望的结果可以主要归因于Burns等人,他们将右边缘表示作为对齐的定位像素的区域,并且Desolneux等人提出了一种消除误报(false positives)的通用方法。实验结果证实了可靠的原始的最初的草图(raw
primal sketch)在数字图像中可行的想法。然而,实验也表明,这个理论并不完整,而是刚刚开始。圆板被检测为直线段的串联。这种表示必须引出曲线的概念。更准确的表示应该区分真实的多边形和曲线。它还应该允许构建更精细的格式,例如条形,规则多边形,周期性网格或条纹等,这些只是本文提供的测试图像中可见的几个。



  1. 我们使用8连接的像素邻域。
  2. 我们使用22.5度公差。 这个参数的相关性以及如何设置它将在第5节中加以评论。
  3. 排序算法具有典型的 O ( N l o g N ) 复杂性。 通过严格的梯度幅度值来排序像素在计算上会过于昂贵。 取而代之的是伪排序:根据像素的梯度幅度值将像素分类为有限数量的箱体,然后来自较高箱体的像素首先被访问,而较低箱体中的像素稍后被访问。
  4. 在我们目前的实现中,测试了宽度的五个半像素变化,并且测试了每一侧的五个四分之一像素的横向变化。
  5. 在调整矩形宽度之前考虑五个二元精度步骤,之后再考虑五个二元精度步骤。 因此,测试从 p = 1 8 p = 1 8.192 的精度。 在实践中,很少获得 p 1 256

猜你喜欢

转载自blog.csdn.net/YuYunTan/article/details/80036289