Richer Convolutional Features for Edge Detection CVPR2017 Caffe:https://github.com/yun-liu/rcf
本文针对边缘检测问题,基于 VGG16 网络设计了一个 richer convolutional features (RCF) 用于边缘检测,效果目前是很好的。
首先来看看 VGG16不同卷积层的特征输出
3 Richer Convolutional Features (RCF) 3.1. Network Architecture 网络结构思路很简单啊
我们将卷积分为5个stage,相邻两个stage 通过池化层来降采样,得到不同尺度特征,rich hierarchical information 对边缘检测很有帮助。 随着 receptive field 尺寸的增加,每个卷积层学习到的有用信息将变得 coarser
标准VGG16中的感受野和步长
我们对VGG16的改动如下: 1)去除所有的全连接层和第五池化层。去除全连接层主要是为了得到全卷积网络,第五池化层对降采样特征图,不利于边缘定位。 2)对VGG16中的每个卷积层使用一个 kernel size 1 × 1 and channel depth 21 卷积层, 每个stage中所有的1 × 1 × 21卷积输出进行元素相加操作( eltwise layer),得到一个复合特征 3)每个 eltwise layer 后面加一个deconv layer 用于放大特征图尺寸的(up-sampling layer) 4)在每个 up-sampling layer 后面使用一个 cross-entropy loss / sigmoid layer 5)所有的 up-sampling layers 输出进行concatenated,随后使用一个 1×1 conv layer 进行特征图融合,最后使用 一个 cross-entropy loss / sigmoid layer 得到输出
下面看看每个 stage 的输出结果
3.2. Annotator-robust Loss Function 在设计损失函数时,我们对于有争议的边缘点不计入损失函数的计算中,例如有10个人标记,只有1-3个人同时标记某个像素为边缘点。那么该像素点就属于有争议的边缘点。
每个像素的损失函数定义如下
3.3. Multiscale Hierarchical Edge Detection 对尺度图像输入
we use three scales 0.5, 1.0, and 1.5 in this paper 对于 BSDS500 数据库, 精度提升: ODS F-measure from 0.806 to 0.811,速度从 30 FPS 降到 8 FPS
3.4. Comparison With HED 和 HED 的比较 下面开始 马三点: 关于这个问题我要说三点 1)HED 只考虑 VGG16 每个 stage 中的最后一个卷积层, 这样很多有用的信息就丢失了。 而 RCF 使用了所有的卷积层信息 2) 我们设计了新的损失函数,不考虑有争议的边缘点计算 3) 多尺度提升性能 multiscale hierarchy to enhance edges 2.3% improvement in ODS F-measure over HED
BSDS500 数据库上对比
NYUD dataset
Multicue dataset
图示结果:
最后有一点很有意思: non-linearity 没有帮助,甚至导致网络不收敛 In order to investigate whether including additional non-linearity helps, we connecting ReLU layer after 1 × 1 − 21 or 1 × 1 − 1 conv layers in each stage. However, the network performs worse. Especially, when we attempt to add nonlinear layers to 1 × 1 − 1 conv layers, the network can not converge properly.