《HED:Holistically-Nested Edge Detection》原文翻译

注:本人水平有限,如有错误,恳请指正,谢谢
源代码和预训练模型获取地址: https://github.com/s9xie/hed
论文地址:https://arxiv.org/abs/1504.06375

Holistically-Nested Edge Detection

摘要

       本文研究了一种新的边缘检测算法,解决了这个长期存在的视觉问题中的两个重要问题:
(1)基于整体图像的训练和预测;
(2)多尺度,多层次的特征学习。
本文提出的方法——整体嵌套边缘检测(HED),通过深度学习模型执行图像到图像的预测,该模型利用完全卷积神经网络和deep supervision的网络。HED自动学习丰富的层次表示(在侧面响应的深层监督的指导下),这对于解决边缘和对象边界检测中的模糊性是重要的。本文在BSD500数据集(ODS F-得分为.782)和纽约大学深度数据集(ODS F-score为.746)上使用最先进的技术,大大提高了检测速度(每张图像0.4s),比一些最近的基于CNN的边缘检测算法快几个数量级。

1.引言

       本文解决了在自然图像中检测边缘和目标边界的问题。这个问题对于各种计算机视觉领域都具有根本性和重要性,这些领域包括了视觉显著性、分割、目标检测/识别、跟踪和运动分析、医学成像、运动结构和3D重建等传统任务,以及自动驾驶、移动计算和图像-文本分析。人们早就明白,精确定位自然图像中的边缘涉及各种“层次”(levels)的视觉感知。相对全面的数据收集和认知研究表明虽然不同的目标却是在边缘和边界的位置上有不同的偏好,但是目标之间仍然存在特殊的一致性。例如文献[28]在一致性研究中达到F-score 080。
        计算边缘检测的历史非常浩瀚;本文现在强调一些已被证明具有重大实际意义的代表性著作。广泛地说,人们可以将作品归类为几个类别:Ⅰ:早期开拓性的方法,如Sobel算子、过零检测,以及广泛采用的Canny算子;Ⅱ:基于信息理论的方法人工设计得出的特征,如统计边缘,Pb以及gPb;Ⅲ:基于学习的方法仍然依赖于人工设计的特征,如BEL,Muti-scale,SketchTokens和Structured Edges。此外,最近使用卷积神经网络的发展浪潮表明了自动分层特征学习的重要性,包括了 N 4 − F i e l d s N^4-Fields N4Fields,Deepcontour,DeepEdge和CSCNN。在深度学习的爆炸式发展之前,结构化边缘方法(通常缩写为SE)凭借其在BSD500数据集上的最先进性能,成为最着名的边缘检测系统之一,其F-score达到了0.746,同时实际计算速度为每秒2.5帧。最近基于CNN的方法表明与SE方法相比,F-score显著提升。然而,在这些基于CNN的方法中,在F-score和速度方面仍然存在很大的改进空间——目前,预测的时间范围从几秒到几个小时(即使使用现代GPU)。

        本文开发了一套端到端边缘检测系统——HED,自动学习丰富的层次特征的类型,如果我们要接近人类解决自然图像边缘模糊性和目标边界检测的能力,这是至关重要的。本文使用术语“holistic”,因为尽管没有明确地对结构化输出进行建模,但HED旨在以图像到图像的方式训练和预测边缘。对于“nested”,本文强调作为side output产生的继承和逐步细化的边缘图——本文打算证明每个预测所做的流程对于每个边缘图是共同的,连续的边缘图也更简洁。这种对分层特征的综合学习与以前的多尺度方法有所区别。其中,尺度空间边缘字段既不自动学习也不是分层连接。图1 给出了一个示例图像以及人工标注的GT图示,以及所提出的HED边缘检测器的结果(包括各个层的侧面响应),以及具有不同的参数Canny边缘检测的结果。不同尺度的Canny边缘不直接连接,它们也表现出空间偏移和不一致性。

        本文所提出的整体嵌套边缘检测(HED)解决了两个关键问题:(1)基于整体图像的训练和预测,受完全卷积神经网络的启发,用于图像到图像的分类(系统将图像作为输入,并直接产生边缘图图像作为输出);(2)嵌套式多尺度特征学习,受deep supervision的网络启发,执行深层监督以“指导”早期分类结果。发现利用这些基础技术的提取的有用特征在HED中表现出较高的准确率以及计算效率。

2.Holistically-Nested Edge Detection

        在本节中,本文将详细描述我们提出的边缘检测系统。首先讨论基于神经网络的相关方法,特别是那些强调多尺度和多层次特征学习的方法。边缘和目标边界检测的任务本质上具有挑战性。经过数十年的研究,已经出现了许多关键的属性,这些属性很可能在一个成功的系统中发挥作用:(1)精心设计和/或学到的特征,(2)多尺度响应融合(3)不同层次的视觉感知的参与,如中级Gestalt定律信息,(4)结合结构信息(输入数据和输出数据中存在的内在相关性)和背景(短期和长期互动),(5)进行整体图像预测(指通过全局和直接拍摄图像内容来执行预测的方法),(6)利用三维几何,和解决遮挡边界。
        结构边缘(SE)主要关注以下三个方面:使用大量手工设计的特征(属性1),融合多尺度响应(属性2),以及合并结构信息(属性4)。使用CNN进行基于块的边缘预测的最近的工作,包含一个备选的共同思路,侧重于三个方面:自动特征学习(属性1),多尺度响应融合(属性2),以及不同级别的视觉感知(属性3)的参与。但是,由于缺乏深层监督(本文在方法中包含),在隐藏层中产生的多尺度响应因为反馈必须通过中间层反向传播,所以在语义上意义较小。更重要的是,块到像素或块到块的策略会导致训练和预测效率显着降低。通过“holistically-nested”,本文提出的端到端边缘检测系统,这是一种受完全卷积神经网络启发的策略,但在修剪的VGG网络顶部进行额外的deep supervision(如图3所示)。在没有深刻监督和侧面输出的情况下,完全卷积网络(FCN)由于边缘检测需要高度精确的边缘像素定位,因此(FCN)产生的结果不如HED(例如BSD500上的F-score .745)。值得一提的是,本文的图像到图像训练和预测策略仍然没有明确地使用上下文信息,因为在HED中不直接强制对相邻像素标签的约束。除了基于块的CNN边缘检测方法的速度增益之外,性能增益主要归功于三个方面:(1)类似FCN的图像到图像训练允许我们同时训练大量的样本(见表4);(2)我们模型中的deep supervision指导学习更明显的特征(见表2);(3)在端到端学习中插入side output,激励每层的连续影响(见表3)。

2.1.Existing multi-scale and multi-level NN

        由于深度卷积神经网络中层次学习的本质,多尺度和多层次学习的概念可能因情况而异。例如,多尺度学习可以在神经网络的“inside”,以越来越大的感受野和下采样(跨步)层的形式。在这种“inside”情况下,每层中学习的特征表示自然是多尺度的。另一方面,多尺度学习可以在神经网络的“outside”,例如通过“调整输入图像的尺度”。虽然这两个变体有一些显着的相似之处,但我们已经看到它们都适用于各种任务。

        接下来,我们继续将多尺度深度学习分为四类,即multi-stream learning,skip-net learning,在多个输入上运行的single model,以及independent networks的训练。如图2所示,考虑到这些可能性将有助于更清楚地阐明我们提出的整体嵌套网络方法与以前的成果不同的方式,并将有助于突出表示和效率方面的重要好处。
        multi-stream learning典型的学习架构如图2(a)所示。注意,多个(并行)网络流具有不同的参数编号和感受域大小,对应于多个尺度。输入数据被同时馈送到多个流中,之后由各种流产生的级联特征响应被馈送到全局输出层以产生最终结果。
        skip-layer network learning这种形式的网络示例包括文献[26, 14, 2, 33, 10]。skip-layer network learning中的关键概念如图2(b)所示。skip-net 网络架构的拓扑不是训练多个并行流,而是以主流为中心。添加链接以合并来自主要网络流的不同级别的特征响应,然后将这些响应组合在共享输出层中。
        上述两种设置中的一个共同点是,在两种架构中,只有一个输出损失函数,并且产生了单个预测。然而,在边缘检测中,多个预测组合为边缘图通常是有利的(并且实际上是普遍的)。
       Single model on multiple inputs:为了获得多尺度预测,还可以在多个(缩放的)输入图像上运行单个网络(或具有绑定权重的网络),如图2(\c)。该策略可以在训练阶段(作为数据增加)和测试阶段(作为集成测试)。一个值得注意的例子是tied- weight pyramid networks。这种方法在非基于深度学习的方法中也很常见。请注意,集成测试会削弱学习系统的预测效率,尤其是对于更深层的模型。
       Training independent networks:作为图2(a)的极端变体,可能逼近图2(d),其中通过训练具有不同深度和不同输出损耗层的多个独立网络来进行多尺度预测。实施这种方案可能实际上非常具有挑战性,因为这种重复会增加培训所需的资源量。
       Holistically-nested networks:列出这些变体以帮助阐明现有方法与我们提出的Holistically-nested networks方法之间的区别,如图2(e)所示,在表现和计算复杂性方面,现有方法通常存在明显的冗余。本文提出的Holistically-nested networks是一个相对简单的变体,能够从多个尺度产生预测。该体系结构可以被解释为图2(d)中“independent networks”方法的“Holistically-nested”版本。本文的架构包括具有多个side output的single stream deep network。这种架构类似于以前的几个工作,特别是deeply-supervised的网络表明,隐藏层监督可以改善图像分类任务的优化和泛化。如果需要统一输出,多个side output还可以灵活地添加额外的融合层。

2.2.Formulation

       本文定义了边缘预测方法。
训练阶段
       本文使用 S = { ( X n , Y n ) , n = 1 , … , N } S=\{(X_n,Y_n),n=1,\dots,N\} S={(Xn,Yn),n=1,,N}表示输入训练数据集,其中,样本 X n = { x j ( n ) , j = 1 , … , ∣ X n ∣ } X_n=\{x_j^{(n)},j=1,\dots,\left|X_n\right|\} Xn={xj(n),j=1,,Xn}表示原始输入图像, Y n = { y j ( n ) , j = 1 , … , ∣ X n ∣ } , y j ( n ) ∈ { 0 , 1 } Y_n=\{y_j^{(n)},j=1,\dots,\left|X_n\right|\},y_j^{(n)}\in\{0,1\} Yn={yj(n),j=1,,Xn},yj(n){0,1}表示图像 X n X_{n} Xn对应的实际的二值边缘图。本文随后删除了下标 n n n以简单表示,因为本文从整体上独立地考虑每个图像。本文的目标是建立一个网络,该网络可以学习并可以生成接近基本GT(ground truth)的边缘图的特征。为简单起见,本文表示所有标准网络层参数集合为 W W W。假设在网络中本文有 M M M个side output层。每个side output层也与一个分类器相关联,其中
响应权重表示为 w = ( w ( 1 ) , … , w ( M ) ) w=(w^{(1)},\dots,w^{(M)}) w=(w(1),,w(M))。本文目标函数为:
(1) L s i d e ( W , w ) = ∑ m = 1 M α m ℓ s i d e ( m ) ( W , w ( m ) ) \begin{array}{l}\mathcal{L}_{side}(W,w)=\sum_{m=1}^M\alpha_m\mathcal \ell_{side}^{(m)}(W,w^{(m)})\\\end{array} \tag{1} Lside(W,w)=m=1Mαmside(m)(W,w(m))(1)
其中, L s i d e \mathcal{L}_{side} Lside表示sideoutputs层的损失函数。在本文的图像到图像训练中,训练损失函数使用了图像 X    = ( x j , j    =    1 , . . . , ∣ X ∣ ) \begin{array}{l}X\;=(x_j,j\;=\;1,...,\left|X\right|)\\\end{array} X=(xj,j=1,...,X)和图像 Y = { y j , j = 1 , … , ∣ X ∣ } , y j ∈ { 0 , 1 } \begin{array}{l}Y_{}=\{y_j^{},j=1,\dots,\left|X\right|\},y_j^{}\in\{0,1\}\\\end{array} Y={yj,j=1,,X},yj{0,1}中的所有像素。对于自然图像,边缘像素和非边缘像素是严重失衡的:90%的像素不属于边缘。在文献[19]中提出了一个代价敏感的损失函数,为偏采样引入了额外的权衡参数。
       本文使用更简单的策略来自动平衡正/负类之间的损失。本文在每个像素项的基础上引入一个类平衡权重 β \beta β。索引 j j j 在图像 X X X 的图像空间维度上。然后本文使用这个类平衡权重作为抵消边缘和非边缘之间的这种不平衡的简单方法。具体来说,本文定义了以下等式(1)中使用的类平衡交叉熵损失函数:
(2) ℓ s i d e ( m ) ( W , w ( m ) ) = − β ∑ j ∈ Y + log ⁡ P r ( y j = 1 ∣ X ; W , w ( m ) ) − ( 1 − β ) ∑ j ∈ Y + log ⁡ P r ( y j = 0 ∣ X ; W , w ( m ) ) \mathcal \ell_{side}^{(m)}(W,w^{(m)})=-\beta\sum_{j\in Y_+}\log Pr(y_j=1|X;W,w^{(m)})\\ -(1-\beta)\sum_{j\in Y_+}\log P r(y_j=0|X;W,w^{(m)})\tag{2} side(m)(W,w(m))=βjY+logPr(yj=1X;W,w(m))(1β)jY+logPr(yj=0X;W,w(m))(2)
其中, β = ∣ Y − ∣ / ∣ Y ∣ \beta=\left|Y_{-}\right|/\vert Y\vert β=Y/Y 1 − β = ∣ Y − ∣ / ∣ Y ∣ 1-\beta=\left|Y_{-}\right|/\vert Y\vert 1β=Y/Y 。边缘/非边缘GT标注数据集用 ∣ Y + ∣ |Y_{+}| Y+ ∣ Y + ∣ |Y_{+}| Y+表示。 P r ( y j = 1 ∣ X ; W , w ( m ) ) = σ ( a j ( m ) ∈ [ 0 , 1 ] ) Pr(y_{j}=1|X;W,w^{(m)})=\sigma(a_{j}^{(m)} \in[0,1]) Pr(yj=1X;W,w(m))=σ(aj(m)[0,1])使用激活函数 σ ( . ) \sigma(.) σ(.)在像素 j j j 上的值进行计算。在每一个sideoutput层上,进行边缘图预测 Y ^ s i d e ( m ) = σ ( A ^ s i d e ( m ) ) \hat Y_{side}^{(m)}=\sigma(\hat A_{side}^{(m)}) Y^side(m)=σ(A^side(m)),其中, A ^ s i d e ( m ) ≡ { a j ( m ) , j = 1 , . . . , ∣ Y ∣ } \hat A_{side}^{(m)}\equiv \{a_{j}^{(m)},j=1,...,|Y|\} A^side(m){aj(m),j=1,...,Y}表示layer m m m上的side-output输出。
       为了直接利用side-output预测,本文添加了一个“weighted-fusion”层到网络并且(同时)在训练期间学习融合权重。本文损失函数在融合层面 L f u s e \mathcal{L}_{fuse} Lfuse为:
(3) L f u s e ( W , w , h ) = D i s t ( Y , Y ^ u s e ) \mathcal{L}_{fuse}(W,w,h)=Dist(Y,\hat Y_{use})\tag{3} Lfuse(W,w,h)=Dist(Y,Y^use)(3)
其中, Y ^ u s e ≡ σ ( ∑ m = 1 M h m A ^ s i d e ( m ) ) \hat Y_{use}\equiv\sigma(\sum_{m=1}^{M}h_{m}\hat A_{side}^{(m)}) Y^useσ(m=1MhmA^side(m)) h = ( h 1 , . . . , h M ) h=(h_{1},...,h_{M}) h=(h1,...,hM)是融合权重。 D i s t ( . , . ) Dist(.,.) Dist(.,.)是融合后的预测和实际标注之间的距离,本文设置为交叉熵损失。总之,本文通过标准(反向传播)随机梯度下降法以最小化一下目标函数:
(4) ( W , w , h ) ⋆ = a r g m i n ( L s i d e ( W , w ) + L f u s e ( W , w , h ) ) (W,w,h)^{\star}=argmin(\mathcal{L}_{side}(W,w)+\mathcal L_{fuse}(W,w,h))\tag{4} (W,w,h)=argmin(Lside(W,w)+Lfuse(W,w,h))(4)
测试阶段
       在测试期间,给定图像 X X X,本文获得来自side-output层和权重融合层的边缘预测图像:
(5) ( Y ^ f u s e , Y ^ s i d e ( 1 ) , . . . , Y ^ s i d e ( M ) ) = C N N ( X , ( W , w , h ) ⋆ ) (\hat Y_{fuse},\hat Y_{side}^{(1)},...,\hat Y_{side}^{(M)})=CNN(X,(W,w,h)^{\star})\tag{5} (Y^fuse,Y^side(1),...,Y^side(M))=CNN(X,(W,w,h))(5)
其中 C N N ( . ) CNN(.) CNN(.)表示由本文网络产生的边缘地图。可以通过进一步聚合这些生成的边缘图来获得最终的统一的输出。细节将在第4部分详细说明。
(6) Y ^ H E D = A v e r a g e ( Y ^ f u s e , Y ^ s i d e ( 1 ) , . . . , Y ^ s i d e ( M ) ) \hat Y_{HED}=Average(\hat Y_{fuse},\hat Y_{side}^{(1)},...,\hat Y_{side}^{(M)})\tag{6} Y^HED=Average(Y^fuse,Y^side(1),...,Y^side(M))(6)

3.Network Architecture

3.1.Trimmed network for edge detection

       本文框架的层次结构选择值得一些思考。本文需要架构(1)更深入,以便有效地生成感知上的多级特征;(2)具有不同stages的多个阶段,一遍获得边缘图的固有尺度。本文还必须考虑训练这种深度神经网络的潜在困难,因为它从头开始便有多个stages的网络。最近,VGGNet在ImageNet挑战中体现了最先进的性能,其具有很大的深度(16 convolutional layer),高密度(stride-1 con- volutional kernels)和多个阶段(five 2-stride down- sampling layer)。最近的文献 [2]也证明了在一般图像分类任务上预训练的微调深度神经网络对于低级边缘检测任务是有用的。因此,本文采用VGGNet架构,但做出以下修改:(a)本文将side output层连接到每个级中的最后一个卷积层,分别为conv1_2,conv2_2,conv3_3,conv4_3,conv5_3。感知区间大小与这些卷积层中的每一个与相应的side output层相同;(b)本文减掉了VGGNet的最后一个阶段,包括第五个池化层r和所有全连接的层。“修剪”VGGNet的原因是有两点的。首先,因为本文期望具有不同尺度的有意义的side output,所以具有stride 32的层产生太小的输出平面,结果是插值的预测图将太模糊而无法使用。其次,完全连接的层(即使在重铸为卷积时)也是强度密集的计算,因此从pool5开始修剪层可以显着减少训练和测试期间的内存/时间成本。本文的最终HED网络架构有5个stages,分别有1,2,4,8和16 strides,并且具有不同的感知区间大小,全部嵌套在VGGNet中。表1 有关可接受的fields和strides的设置总结。

### 3.2.Architecture alternatives        下面本文讨论架构设计中的一些可能的替代方案,特别是HED deep supervision对边缘检测任务的作用。 **FCN and skip-layer architecture**        FCN模型中使用的结构在几个方面与本文的HED模型中的结构不同。正如本文已经讨论过的,虽然FCN重新解释了每像素预测的分类网络,但它只有一个输出损失函数。因此,在FCN中,尽管skip net结构是将粗略的高层信息与精细的低层信息组合在一起的DAG,但它没有明确地产生多尺度输出预测。本文将探讨如何将此体系结构用于边缘检测任务并与本文的HED模型做相同的实验设置。本文首先尝试通过将损失函数替换为用于边缘检测的交叉熵损失函数来直接应用FCN-8s模型。结果显示在表2的第一行,实验结果不满意,这是预期的,因为这种架构仍然不够好。本文进一步探讨是否可以通过从低级层添加更多链接层来提高性能。然后,本文创建一个FCN-2s网络,从pool1和pool2层添加额外的链接层。不过,直接应用FCN skip net结构落后于本文提出的HED架构(参见表格2的第二行)。随着FCN的大量调整,人们才有可能在边缘检测上获得有竞争力的性能,但HED中的多尺度side output被认为是自然且直观的边缘检测。

The role of deep supervision
       因为本文加入了连接每个side output layer的加权融合输出层,在此需要证明采用deep supervision(尤其是, ℓ s i d e ( m ) ( W , w ( m ) ) \mathcal \ell_{side}^{(m)}(W,w^{(m)}) side(m)(W,w(m)):现在整个网络是连通的,输出层的参数可以通过加权融合层误差传播路径的反向传播来更新(受公式3影响)。本文表明deep supervision对于获得所需的边缘图很重要。本文提出的网络的关键特点是每个网络层应该扮演一个单一网络的角色,负责产生一定比例的边缘图。以下是基于上述两种变体的定性结果:(1)加权融合监督和deep supervision训练,(2)仅加权融合监督训练。本文观察到,在deep supervision下,嵌套的side output 是自然而直观的,获得的边缘图是由粗略到精细,从局部到整体的。另一方面,仅利用加权融合输出损失的训练给出了缺乏这种可辨别的顺序的边缘预测:在较高层side output处不存在许多临界边缘;在完全相同的实验设置下,基准数据集的结果(表格2的第三行)在F-score中仅略有差异,但显示出严重退化的平均精度;如果没有跨多个尺度的直接控制和指导,该网络严重偏向于学习大型结构边缘。

4.Experiments

注:该部分未翻译,以后有时间再做

5. Conclusion

       在本文中,本文开发了一种新的基于卷积神经网络的边缘检测系统,该系统在自然图像上展示了先进的性能。其实际相关的速度(例如,使用GPU为0.4秒,使用CPU为12秒)。本文的算法建立在完全卷积神经网络的思想之上
和deep supervision的网络。本文还通过采用预先训练的修剪后的VGGNet来初始化本文的网络结构和参数。本文的方法通过结合多尺度和多级视觉响应,在执行图像到图像学习方面显示出较好的结果,即使没有实施明确的上下文和高级信息。源代码和预训练模型获取地址: https://github.com/s9xie/hed

  • 13
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值