Holistically-nested Edge Detection (以下简称HED)

HED通过深度学习网络实现边缘检测,网络主要有以下两个特点

Holistically:指端到端(end-to-end 或者image-to-image)的学习方式,也就是说,网络的输入为原图,输出为边缘检测得到的二值化图像。

Nested:意思是嵌套的。在论文中指,在每层卷积层后输出该层的结果(responses produced at hidden layers ),这个结果在论文中称为side outputs。不同隐藏层的Side output尺度不同,而且,HED不止要求最后输出的边缘图像好,也要求各side output的结果要好,即学习对象是最终的输出和各Side outputs(参考后面损失函数部分)。因此,论文中称HED学习网络是multi-scale and multi-level。可参考HED的网络结构理解,如下图。

  • 网络结构:

   

图1 HED网络结构                                图2 网络结构简单图示(方框是Input Data,论文写错了)

如上面图中所示,HED是在VGG网络基础上改造的,卷积层后添加side output。网络层次越深,卷积核越大,side output越小,最终的输出是对多个side output特征的融合。图1中粗虚线路径被称为Deep supervision(或者说hidden layer supervision)。细虚线路径称为weight-fusion supervision。下图3为VGG16网络结构。图3中每个颜色是一个Stage,HED去掉了最后一个池化层及后面的FC层(即论文中所说的FCN--fully convolutional neural networks),保留了前面5个stage,每个stage的最后一个conv后添加一个side output。Side output层的卷积核大小为1*1,通道数与每阶段最后一层conv的通道数相同。也就是说每个side output的输出通道数为1。至于说不同大小的Side output怎么融合为输出—答案是会进行反卷积或者说进行双线性插值(反卷积理论上可拟合任何插值函数,Bilinear interpolate 可理解为反卷积的一种,论文中采用bilinear)。

图3 VGG16网络结构

图片中有提到感受野(receptive field size),是指每层的一个神经元对原始图像映射区域的大小,其值与Padding和stride有关。不在展开描述。

  • 目标函数:

Side output损失函数:

Weight-fusion损失函数:

HED总的目标函数:

公式参数说明:M--Side output层数  W—相应vggnet卷积核参数  w—每层side output卷积核的参数

h—fusion 融合层参数,维数为M   Y—矩阵,groud truth图像值,各像素取值0或1

Yhat—HED网络预测值  Dist—distance between Y and Yhat,采用cross-entropy

  • 精度分析:

HED精度的实现主要来源于Deep supervision。如下两图展示deep supervision对精度的贡献。去掉deep supervision即图1中去掉粗线所示的训练路径。图4表格中分别列出了有无Deep supervision的精度,网络中加入Deep supervision的精度更好。图5是一个直观显示。

图4 (指标说明参考附录)

图5

图5每行图片从上到下是网络层次从低到高hidden layer 的side output。左右两列分别是有/无deep supervision的结果。从图片可以看出,添加deep supervision后各层的输出是逐渐递进的,side output逐渐更粗化,更全局化;没有deep supervision各层的输出不是逐渐递进的,比如第二层检测出的边缘比第一层要细化,而且学习过程会丢失一部分边缘特征的信息(比如第三层开始北极熊腿部的edge的部分信息丢失)。

图6 HED和其他边缘检测方法精度比较

图7 HED和canny比较

图6中可以看到HED的精度高于Canny不少。Canny的精度主要依赖于阈值的设置,通过人为的阈值设置可以检测到细粒度的边缘,很依赖图片像素值。但是相比于神经网络,Canny缺失语义方面的理解,神经网络对边缘的理解是更多层次的。HED属于深度学习网络的一种,而且加入了Deep supervision,每个Side output继承上一层的特征,最后对多层特征融合,进一步取得了精度的提升。

  • 附录:

1.边缘检测评价指标9

ODS:固定轮廓阈值(optimal dataset scale)选取一个固定的P(置信度),使整个数据集上F-score最大

OIS:单图像最佳阈值(optimal image scale)在每一张图片上选区不同的P使F-score最大

AP:平均精度(average precision )

F-score=2*Precision·Recall / (Precision + Recall) 是评价机器学习结果的一项指标

2.VGG16结构图:

特别说明:禁止转载。任何错误欢迎指出,一起交流学习。

HED边缘检测:Holistically-nested Edge Detection 解读相关推荐

  1. 计算机视觉理论笔记 (5) - 边缘检测 (Edge Detection)

    边缘检测 - Edge Detection 总览 边缘(edges) 基于梯度 (gradient)的边缘检测 检测不连续性(detection of discontinuities) 1D 2D 梯 ...

  2. CNN边缘检测--Richer Convolutional Features for Edge Detection

    Richer Convolutional Features for Edge Detection CVPR2017 Caffe:https://github.com/yun-liu/rcf 本文针对边 ...

  3. 【边缘检测】BDCN:Bi-Directional Cascade Network for Perceptual Edge Detection

    CVPR 2019 Bi-Directional Cascade Network for Perceptual Edge Detection github链接:https://github.com/p ...

  4. python canny检测_【数字图像分析】基于Python实现 Canny Edge Detection(Canny 边缘检测算法)...

    Canny 边缘检测算法 Steps: 高斯滤波平滑 计算梯度大小和方向 非极大值抑制 双阈值检测和连接 代码结构: Canny Edge Detection |Gaussian_Smoothing ...

  5. 基于深度学习的CNN边缘检测RCF--Richer Convolutional Features for Edge Detection

    Richer Convolutional Features for Edge Detection CVPR2017 Caffe:https://github.com/yun-liu/rcf 本文针对边 ...

  6. 边缘检测:更丰富的卷积特征 Richer Convolutional Features for Edge Detection

    边缘检测:更丰富的卷积特征 Richer Convolutional Features for Edge Detection Source code and paper address Abstrac ...

  7. (Pytorch)环境配置与代码学习1—边缘检测:更丰富的卷积特征 Richer Convolutional Features for Edge Detection

    (Pytorch)环境配置与代码学习1 - 边缘检测:更丰富的卷积特征 Richer Convolutional Features for Edge Detection Source code and ...

  8. OpenCV Laplace point/edge detection拉普拉斯点/边缘检测的实例(附完整代码)

    OpenCV Laplace point/edge detection拉普拉斯点/边缘检测的实例 OpenCV Laplace point/edge detection拉普拉斯点/边缘检测的实例 Op ...

  9. 2022CVPR边缘检测——EDTER: Edge Detection with Transformer文章阅读

    EDTER: Edge Detection with Transformer文章阅读 今天阅读了一篇文章,名为EDTER: Edge Detection with Transformer,作者将ViT ...

最新文章

  1. python将局部变量转为全局变量
  2. 《算法设计》二、算法分析基础
  3. 计算机组成原理:中央处理器
  4. 加强路由器的安全访问控制
  5. 学习jquery的一些笔记
  6. leetcode 在排序数组中查找元素的第一个和最后一个位置
  7. 内容生态变现价值凸显,“长期主义者”触宝驶入快车道
  8. Vite与webpack优势
  9. [逆向][Writeup]ISG2015 flagfinder - .NET程序逆向
  10. 最小代价(区间dp)(ybtoj)
  11. kcp-go源码解析
  12. 【机器学习技术】高斯过程初探
  13. POJ-1904-King's Quest(强连通图)
  14. HTML学习二_HTML常用的行级标签,常用实体字符及表单标签
  15. Microsoft Excel 不能访问文件
  16. 拓端tecdat|新能源车主数据图鉴
  17. 网管必用的10款软件系统
  18. 如何构建创新文化——技术视角
  19. c语言remainder函数,【总结】C/C++取余操作:%、fmod()、remainder()的区别和联系
  20. ERROR: Failed building wheel for ctcdecode

热门文章

  1. matlab 参数方程绘图,用matlab绘图已知椭圆参数方程
  2. 关于OneDrive一直显示“正在登陆”的一种可能解决方法
  3. win7系统计算机虚拟内存不足,Win7系统虚拟内存不足的应对办法
  4. 大脑神经网络图高清,大脑神经网络图片
  5. Learning to Detect A Salient Object (学习探测显著性物体)
  6. “宝付金融知识普及月”利益相关请务必关注
  7. 谷歌科学家:目标优化不好使?今天聊聊泛化这件事儿
  8. win7局域网自建ftp服务器,win7系统搭建FTp服务器局域网内传输文件的解决教程
  9. 如何用计算机算p,‎App Store 上的“计算器++P”
  10. win7安装oracle 黑屏,苹果电脑装Windows7黑屏的原因和解决方案