HED边缘检测:Holistically-nested Edge Detection 解读

article/2025/10/20 12:44:59

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)。

https://img2018.cnblogs.com/blog/1365470/201903/1365470-20190307201654594-510842148.png
图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结构图:

 

https://img2018.cnblogs.com/blog/1365470/201903/1365470-20190307201654594-510842148.png

https://img2018.cnblogs.com/blog/1365470/201903/1365470-20190307201517501-751836953.png

 

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


http://chatgpt.dhexx.cn/article/PPrtEQ6i.shtml

相关文章

HED 和 RCF 图像边缘检测

HED 和 RCF 图像边缘检测 引言 虽然传统边缘检测算法在不断发展的过程中也取得了很大的进步,但仍然无法做到精细的边缘检测处理。随着近年来深度学习的快速发展,计算机视觉领域因此获益颇丰,当下最先进的计算机视觉应用几乎都离不开深度学习…

hed

一、编译caffe cd进入hed-master文件夹目里下 (1) cp Makefile.config.example Makefile.config (2) make all 出现错误a 解决: 打开Makefile.config文件 将 INCLUDE_DIRS : $(PYTHON_INCLUDE) /usr/local/incl…

边缘检测之HED

出自论文,Holistically-Nested Edge Detection ,ICCV2015,Marr奖提名,非常值得看的一篇。 边缘检测的工作分为以下3个研究方向: (1)传统的检测算子:Sobel ,Canny (2)基于信息理论设计的手工特征:Statisti…

HED神经网

本篇论文提出了一种新的网络结构进行边缘检测,论文这种网络结构称为Holistically-nested network。HED能够实现图像到图像的训练,输入一个图像,输出这个图像的边缘检测图。 1.现有的Multi-Scale和Multi-level学习的网络结构 2. (e)图是论文提…

身体证检测与识别(二)——HED边缘检测与矫正

前言 1.关于边缘检测,我这里用了HED这个边缘检测网络,HED创作于2015年,骨干网络是state-of-the-art的VGG-16,并且使用迁移学习初始化了网络权重。关于HED的算法原理与训练模型代码可以转到github。 2.OpenCV也有好几边缘检测算法可用&#x…

mysql otter 数据同步_MySQL数据同步之otter

一、otter介绍 基于日志数据,用于MySQL或者ORACLE之间准实时同步数据。 用途: mysql/oracle互相同步 中间表/行记录同步 二、原理及架构图 otter整体模块 manager (提供web页面进行同步管理) arbitrate (分布式调度,可跨IDC机房) node (同步过…

Otter简介

原文地址:http://m635674608.iteye.com/blog/2314908 Otter它是一个数据同步解决方案,可以解决本地跨网络跨机房跨地域的数据同步问题,并且拥有可观的效率,web管理工具等特点,而且背景也很优秀,据说阿里B2B内部的本地/异地机房的同步需求基本全上了 otte…

Canal和Otter

问题一: 跨公网部署Otter 参考架构图 解析 ​ a. 数据涉及网络传输,S/E/T/L几个阶段会分散在2个或者更多Node节点上,多个Node之间通过zookeeper进行协同工作 (一般是Select和Extract在一个机房的Node,Transform/Load落在另一个机房的Node&a…

otter学习(一)——otter原理

1.otter原理: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统 原理描述: 1. 基于Canal开源产品,获取数据库增量日志数据。 2. 典型管理系统架构,manager(web管理…

otter数据同步

一、Otter目前支持了什么 1. 单向同步, mysql/oracle互相同步 2. 双向同步,无冲突变更 3. 文件同步,本地/aranda文件 4. 双A同步,冲突检测&冲突补救 5. 数据迁移,中间表/行记录同步 导历史表还需要程序代码实现吗&…

数据同步 之 Otter

一、Otter 语言:java 定位:基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库,一个分布式数据库同步系统。 1.工作原理: 2.原理描述 1. 基于Canal开源产品,获取数据库增量日志…

otter:分布式数据库同步系统

一、otter介绍 阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写&#x…

Otter 下载安装

简介 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。 原理 1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击 2. 典型管理系统架构,manager(web管理)node(工…

otter使用手册

目录 1.机器管理 1.1 zookeeper管理 1.2 Node管理 2.配置管理 2.1数据源配置 2.2数据表配置(添加数据库表) 2.3 Canal配置(添加Canal) 3.同步管理 3.1 Channel管理 3.2 Pipeline管理 1.机器管理 1.1 zookeeper管理 添加z…

Otter 双向同步mysql

一、Otter目前支持了什么 1. 单向同步, mysql/oracle互相同步 2. 双向同步,无冲突变更 3. 文件同步,本地/aranda文件 4. 双A同步,冲突检测&冲突补救 5. 数据迁移,中间表/行记录同步 实际测试中,otter的…

Otter安装说明

Otter安装说明 Mysql安装(如果已安装则无需再安装):【忽略安装Mysql】 安装依赖 yum -y install perl perl-devel autoconf #下载Mysql包 https://github.com/alibaba/otter/releases【Otter最新版本下载】 wget https://dev.mysql.com/g…

otter mysql hbase_otter自定义扩展

otter自定义扩展 otter支持数据处理自定义过程。 Extract模块: EventProcessor : 自定义数据处理,可以改变一条变更数据的任意内容 FileResolver : 解决数据和文件的关联关系 目前两者都只支持java语言编写,但都支持运行时动态编译&lib包…

otter搭建

一、安装zookeeper的单机版 apache-zookeeper-3.6.1-bin.tar.gz 如果下载的是3.5及以后的,需要下载包名带有-bin的版本,从3.5.5开始,带有bin的包才是解压以后可以直接使用的里面有编译后二进制的包,而之前的普通的tar.gz里面只是…

otter安装

译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统 otter的环境需要:mysql,jdk&#x…

Otter 安装部署维护

介绍 淘宝开源的产品,基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库,一个分布式数据库同步系统。 目前同步规模: 同步数据量6亿 文件同步1.5TB(2000w张图片) 涉及200个数据库实例之间的同步 80台机器…