边缘检测之HED

article/2025/10/20 12:53:04

出自论文,Holistically-Nested Edge Detection ,ICCV2015,Marr奖提名,非常值得看的一篇。

 

 

边缘检测的工作分为以下3个研究方向:

(1)传统的检测算子:Sobel ,Canny

(2)基于信息理论设计的手工特征:Statistical Edges ,Pb ,gPb

(3)基于学习方法设计的手工特征:BEL , Multi-scale , Sketch Tokens, Structured Edges

  

 

 

从上图中可以看出,canny检测会存在断开线的情况,而HED基本没有这种现象,HED的效果明显优于canny。

 

 

整体嵌套的边缘检测holistically-nested edge detection (HED) 。

 

insight: 

(1)端到端:image-to-image

(2)基于FCN和VGG 改进,同时引出6个loss进行优化训练,通过多个side output输出不同scale的边缘,然后通过一个训练的权重融合函数得到最终的边缘输出。可以solve edge 和物体boundaries的ambiguity

(3)样本不平衡处理方法:class-balanced_sigmoid_cross_entropy

 

 

网络整体结构:

 

作者在conv1_2, conv2_2, conv3_3, conv4_3,conv5_3后面分别引出,然后接入sigmoid_cross_entropy_loss,并且在最后一层,对上面的5层的输出做了concat,同时也接入sigmoid_cross_entropy_loss,这样所有的Loss都等概率的同时训练,从而使得最终得到比较好的模型。

这里一个需要注意的就是,这里6个loss是同时训练的,如果只训练最后一个loss,精度会有所下降。

 

在预测阶段,可以直接取最后一层的输出结果最为最终结果。也可以将所有的层的输出结果都得到,然后求一个平均作为最终结果。这样做的优势就是会使得精度进一步提高,缺点就是加入额外操作,时间会增加。

如下图所示,side-output1-5分别为第1-5个卷积层的输出。Fusion-output为最后一层的输出,Average1-4 为第1-4个卷积的输出求平均,Average1-5,Average2-4,Average2-5, 依次类推。Merged result为所有层的结果求平均合并后的结果。

可以看出,

(1) 对于每个单独的层,最后一层做过特征融合后的结果是最好的。

(2) 将所有层的结果求平均,对最终准确率会有提升。

 

训练过程中,由于边缘检测实际是对每个像素进行2分类任务。大部分像素为非边缘,只有少部分像素为边缘,为了进行正负样本的平衡,这里作者引入了class-balanced_sigmoid_cross_entropy。

 

上图为作者论文中的公式,作者这里没有将label的数值y_hat写进去。进行整理如下。

sigmoid_cross_entropy:

-y_hat* log(sigmoid(y)) - (1 - y_hat) * log(1 - sigmoid(y))

Class_balanced_sigmoid_cross_entropy:

-β*y_hat* log(sigmoid(y)) -(1-β) * (1 - y_hat) * log(1 - sigmoid(y))

 

其中,|Y-|为非边缘的label,|Y+|为边缘的label

β = |Y-|/|Y|

1 - β = |Y+|/|Y |

 

最终,论文实现了BSD500 dataset (ODS F-score of :782),NYU Depth dataset (ODS F-score of :746) ,gpu:0.4s,cpu:12s的state-of-the-art结果。

 

 

 

References:

https://github.com/s9xie/hed

 

 

 


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

相关文章

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台机器…

Otter配置说明

Otter配置说明 标签: Otter 下载 最新版Otter下载地址 CSDN下载地址 需要下载manager.deployer-4.2.13.tar.gz,node.deployer-4.2.13.tar.gz和Source code (zip) 需要安装zookeeper和jdk支持,canal已经内置,不需要安装 manage…

mysql otter_MySQL数据库实现远程同步的工具alibaba otter

MySQL数据库实现远程同步的工具alibaba otter 发布时间:2020-06-03 15:46:57 来源:51CTO 阅读:291 作者:三月 本篇文章给大家主要讲的是关于MySQL数据库实现远程同步的工具alibaba otter的内容,感兴趣的话就一起来看看…

Otter源码深入详解(三)

分析Node的代码前,需要理解Node的工作机制,需要先了解其工作原理: https://github.com/alibaba/otter/wiki/Otter调度模型 这里用到了SEDA模型,SEDA模型这里有偏文章介绍的很好: https://www.jianshu.com/p/e184fdc0ad…