Richer Convolutional Features for Edge Detection论文笔记
总结
使用CNN进行边缘检测,主要在数据库BSD500实验。主要贡献如下:
- 网络开始阶段,细节边缘丰富。网络后续阶段,细节(内部)边缘减少,轮廓信息更明显。所以利用FPN思想结合高层和底层的Feature Map进行边缘检测。
- 优化LOSS FUNCTION,使其更具有一般性。
在BSDS500 benchmark,得到 ODS F-measure 0.811 (8FPS)
简化版本ODS F-measure 0.806 (30FPS)
得到2017年最好边缘检测的效果。
网络结构
网络主干为VGG16, 每个ConvGroup即一个stage后接pooling下采样。
每个stage的各个conv层后接1x1conv降维,再将group中所有降维后的feature maps相加(eltwise)得到融合特征。再接一个deconv恢复尺寸记为Stage feature map,用其计算loss。
最后阶段concat每个stage得到的Stage feature map,然后接一个1x1conv降维,计算loss。
网络具体结构及感受野如下表格所示
优化LOSS FUNCTION
Edge Detection任务中,每个图像有多个Anotation,因为每个标注者对边缘的标注可能不统一。
所以本文整合多个标注信息:
将所有人标注为0的区域设定为背景,将标注均值大于的pixel定义为edge。平均标注介于二者之间的pixels定义为模糊点,不计算loss。
公式如下
其他细节
1. 实验中使用了dilated conv以及一些超参数具体设置如下
2. 评价指标ODS、OIS
通过预测结果生成最终edge map的时候,置信度是一个超参数,记为p,p的选取可以通过ODS和OIS两种方法,当然这两种方法得到的F score也不一样。
ODS是选取一个固定的p应用于所有图片,使得整个数据集上的F score最大。
OIS是在每一张图片上均选取不同的使得该图片F score最大的p。
通常使用ODS作为测评指标。
吐槽
Edge detection任务上另一个有代表性的工作为HED,Holistically-Nested Edge Detection。发表于ICCV2015。
RCF与HED的区别其实很小,无非就是将每个conv层后的结果利用起来。HED是用group conv后的结果。
另外一点就是LOSS FUNCTION的计算改进。
不管黑猫白猫能抓耗子就是好猫,RCF也将HED效果提升了不少。