Richer Convolutional Features for Edge Detection(RCF论文学习笔记)

介绍:

  • 做边缘检测(edge detection)的网络,实质上来讲,应该算是HED网络的改进
  • 作者提出RCF,将所有卷积特征封装成更具鉴别性的表示,很好地利用了丰富的特征层次结构,并且可以通过反向传播进行训练
  • 在BSDS500上实现SOTA结果,0.811的ODS F-measure和8fps,快速版的可以实现0.806和30fps
  • 边缘检测是计算机视觉中的一个核心低级问题
  • 传统的边缘检测方法先是提取图像的颜色、纹理、亮度或梯度等,然后使用复杂的学习范式对边缘和非边缘的像素进行分类
  • 低级信息在语义上具有重要作用,但很难表示高级信息(表示用于语义有意义的边缘检测的高级信息),CNNs,就正好有自动学习自然图像高级信息表示的能力,用它来进行边缘检测,是一种趋势
  • 然而,以前的CNN体系结构只使用最终的Conv层或神经网络池层之前的层,而忽略中间层
  • RCF的提出,是基于,以上两点和,深度网络容易导致梯度爆炸和梯度消失问题【可以继续考虑】,提出可以充分利用CNN所有层的特征,来进行像素级预测

相关工作:

  • 传统方法有Pb,gPb,SE等,CNN方法有N4-Fields、DeepContour、HED、HED的改进等
  • 这些都缺乏CNN的充分利用,只在最后一个阶段进行

RCF:

  • VGG作为主干网络,每个卷积层捕获的有用信息随着感受野大小的增加而变得更粗糙(以下5条是论文中对网络架构的介绍
  • 提出RCF,切断了所有全连接层、池化层第5层,切除全连接层是为了使用全卷积层,实现image-to-image的预测,加入pool5层会使步幅增加两倍,这通常会导致边缘定位的退化
  • VGG16中每个阶段中的每个卷积层都连接到核大小为1×1和通道深度为21的卷积层。每个阶段的特征映射都是用一个eltwise层(相加)来积累的,以获得混合特征。
  • 一个1×1个卷积层跟随每个eltwise层。然后,使用一个反卷积层对这个特征映射进行上采样。
  • 在每个阶段,交叉熵损失/Sigmoid连接到上采样层。
  • 所有上采样层都是级联的。 然后使用1×1卷积从每个阶段融合特征映射。 最后,采用交叉熵损失/Sigmoid得到融合损失/输出
    Richer Convolutional Features for Edge Detection(RCF论文学习笔记)
  • RCF提供了一种比现有机制更好的机制来学习来自各级卷积特征的多尺度信息,作者认为这些特征都与边缘检测有关
  • 在RCF中,高级特征较粗,可以在较大的对象或对象部分边界处获得强响应。
  • 提出的新的损失函数是这个
    Richer Convolutional Features for Edge Detection(RCF论文学习笔记)
  • 相比HED,RCF一是捕捉了所有conv的特征进行融合得到最终的结果,二是提出新的损失函数,三是提出多尺度测试

实验

  • 评价方法。得到一个边缘可能性图(edge probability map),需要一个阈值来得到二值边缘图(binary edge map),有两种方式来设置这个阈值,一种ODS(optimal dataset scale)即固定的阈值,使得整个数据集的F-score最大,另一种是OIS(optimal image scale),每一张图片,选取不同的阈值,使得F-score最大。作者采用的就是ODS和OIS两种方法进行评价的

接下来是实验得到的一些结果图
Richer Convolutional Features for Edge Detection(RCF论文学习笔记)
Richer Convolutional Features for Edge Detection(RCF论文学习笔记)
Richer Convolutional Features for Edge Detection(RCF论文学习笔记)
Richer Convolutional Features for Edge Detection(RCF论文学习笔记)
Richer Convolutional Features for Edge Detection(RCF论文学习笔记)
Richer Convolutional Features for Edge Detection(RCF论文学习笔记)

相关资料

1.BSDS500数据集
2.代码实现
3.pytorch版本的代码实现
4.论文