
一、背景
边缘检测是视觉任务中非常基础的任务,现有的基于CNN的边缘检测方法有两个明显的问题:
- 现有的方法大多只使用CNN的最后一层conv的结果,忽略了中间层的结果
- 更多的方法集中在探究更深的CNN,但边缘检测是数据比较少,而且容易发生梯度消失的现象
本文的出发点如下图所示,不同卷积层获得的结果随着深度增加而更加粗糙
本文motivation:充分使用所有CNN层的结果
提出的方法:richer convolutional features (RCF)
二、网络结构
使用训练好的模型对单张图的输出进行可视化:
result是一个长度为6的list,list中0-4储存每层的输出经过上采样后的结果,5存储前5个特征图经过1x1卷积进行通道压缩后的结果。
将上面的5组特征图经过卷积后,压缩成为一个通道,作为最终的输出边缘结果。
回顾VGG16:
正负样本区分方式:
作者对多个标注人员的标注结果进行平均来得到最终使用的标注结果(edge probability),其结果是 0~1 间的数值。
- 0:表示没有标注人员标注的像素
- 1:表示所有标注人员都进行了标注
作者定义了一个参数 η \eta η:
- 当平均后的结果大于 η \eta η 时——正样本
- 当结果为0时——负样本
- 其他的像素结果——忽略
每个像素的loss计算如下:
总loss计算如下:
三、和 HED[16] 的不同
1、HED 只使用了VGG16每个stage的最后一层卷积,RCF使用了每个layer的卷积结果,可以捕捉更多的边界信息
2、本文提出的loss和正负样本的定义方式和HED不同,HED把小于
η
\eta
η 的所有像素点都当做负样本,这样就会导致网络混淆,因为这也并非一定是非边远点。
3、本文使用多尺度测试