HED神经网

本篇论文提出了一种新的网络结构进行边缘检测,论文这种网络结构称为Holistically-nested network。HED能够实现图像到图像的训练,输入一个图像,输出这个图像的边缘检测图。

 

1.现有的Multi-Scale和Multi-level学习的网络结构

2. (e)图是论文提出的HED网络体系结构,它的主要思想是每一个卷积层后面增加了一个side output layer,每个side output layer输出一个edge map,然后通过一个fusion layer将各个side output层输出的edge map进行融合,得到最后的边缘检测结果。

3. 论文HED的结构是通过对16层的VGG-Net进行修改得到的,先是为每个阶段的最后一个卷积层增加一个side output layer,然后去除VGG最后一个阶段部分(个人理解是去除第5个pooling层和所有的完全连接层),这样就得到一个类似FCN又带有side output的网络结构,最后通过权值融合层将各个side output层的输出结果进行融合。

4. 下图显示了使用HED的边缘检测输出结果,以及各个side output的结果,图中最后一行是使用Canny检测算子的边缘检测效果:

 

同组小伙伴推荐的文章,一篇看似做边缘检测,实际做出了语义分割的文章,ICCV2015的文章。主要解决两个问题:(1)基于整个图像的训练和预测;(2)多尺度和多水平的特征学习。该算法通过深度学习模型,完成了从图像到图像的预测,并通过学习到的丰富的分级特征,完成边缘检测中的细节问题。


基本想法

本文提出的end-to-end的边缘检测系统,称为holistically-nested edge detection (HED),使用holistically来表示边缘预测的结果是基于图像到图像的,端到端的过程;而nested则强调了在生成的输出过程中不断地继承和学习得到精确的边缘预测图的过程(具体算法后面再说明)。这里使用多尺度的方法进行特征的学习,多尺度下的该方法边缘检测结果示意图如下图,图中的d,e,f分别为卷积层2,3,4响应得到的边缘检测结果,HED方法的最后输出是远远优于canny算子的。



算法结构

具体算法结构上,作者提出的holistically-nested方法,主要通过几种不同的多尺度深度学习下的结构进行对比说明。在多尺度方面,有更加内部网络形成的多尺度,和外部网络形成的多尺度。前者是学习神经网络里不同层由于降采样的不同得到的不同尺度特征,结合形成多尺度,后者是通过对输入图像的尺度处理时的多尺度,获得不同尺度信息。作者将具体多尺度下的深度学习分为四种,如下图。


(a)Multi-stream learning 示意图,可以看到图中的平行的网络下,每个网络通过不同参数与receptive field大小的不同,获得多尺度的结果。输入影像是同时进入多个网络处理,得到的特征结果直接反应多尺度。

(b)Skip-layer network learning 示意图,该方法主要连接各个单的初始网络流得到特征响应,并将响应结合在一起输出。

这里(a)和(b)都是使用一个输出的loss函数进行单一的回归预测,而边缘检测可能通过多个回归预测得到结合的边缘图效果更好。

(c)Single model on multiple inputs 示意图,单一网络,图像resize方法得到多尺度进行输入,该方法在训练和test过程均可加入。同时在非深度学习中也有广泛应用。

(d)Training independent networks ,从(a)演化来,通过多个独立网络分别对不同深度和输出loss进行多尺度预测,该方法下训练样本量较大。

(e)Holistically-nested networks,本文提出的算法结构,从(d)演化来,类似地是一个相互独立多网络多尺度预测系统,但是将multiple side outputs组合成一个单一深度网络。


网络结构示意图


这个图非常形象,在卷积层后面侧边插入一个输出层 side-output 层,在side-output层上进行deep supervision,使得结果向着边缘检测方向进行。同时随着side-output层越向后大小的变小,将receptive field变大,最后通过一个weighted-fusion layer得到多尺度下的输出。