深度学习边缘检测 HED 训练自己的数据

article/2025/10/20 9:54:48

深度学习边缘检测 HED 训练自己的数据

数据集制作
使用labelme标注,选择lineStrip(线条束)标注
生成json文件。
之后使用批量处理脚本将json文件转为边缘数据集。具体过程如下:
首先将所有的json文件放入一个文件夹内,同时将接送json2dataset.py脚本放入文件夹内:
json2dataset.py 批量处理
可以在这个地方修改linewidth在这里插入图片描述

#-*-coding:utf-8-*-
import os
files=os.listdir('./')
files.remove('json2dataset.py')
for i in range(len(files)):os.system('labelme_json_to_dataset '+files[i])

之后会生成同等数量的文件夹,每个文件夹的内容如下:
在这里插入图片描述
其中img.png是我们所需的标注图,需要对其进行改名并将所有的标注图提取到一个文件夹内。
首先运行rename.py,放在文件夹外,此脚本将所有的label.png重命名为你原图的名字+.png

#-*-coding:utf-8-*-
# 把label.png改名为1.png
import os
for root, dirs, names in os.walk(r'json'):   # 改成你自己的json文件夹所在的目录for dr in dirs:file_dir = os.path.join(root, dr)# print(dr)file = os.path.join(file_dir, 'label.png')# print(file)new_name = dr.split('_')[0]  + '.png'new_file_name = os.path.join(file_dir, new_name)os.rename(file, new_file_name)

再运行copy.py,作用是提取所有的标注图到edge文件夹内。

#-*-coding:utf-8-*-
import os
from shutil import copyfile
for root, dirs, names in os.walk(r'json'):   # 改成你自己的json文件夹所在的目录for dr in dirs:file_dir = os.path.join(root, dr)print(dr)file = os.path.join(file_dir,'label.png')print(file)new_name = dr.split('_')[0] + '.png'new_file_name = os.path.join(file_dir, new_name)print(new_file_name)

再对标注图进行二值化:

import cv2
import osdir = 'data/wire/train/edge'
edge = 'data/wire/train/edge1607'def canny(path):out = edge + '/' + path.split('.')[0] + '.png'print(out)path = dir + '/' + pathimg = cv2.imread(path,0)img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB)print(img.shape)ret, img = cv2.threshold(img, 20, 255, cv2.THRESH_BINARY)cv2.imwrite(out, img)# for x in range(img.shape[0]):#     for y in range(img.shape[1]):#         px = img[x,y]#         if px.any() != 0:#             print(px)# print(img.shape)for path in os.listdir(dir):canny(path)

之后

git clone https://github.com/xwjabc/hed

下载预训练权重

cd hed
wget https://cseweb.ucsd.edu/~weijian/static/datasets/hed/hed-data.tar
tar xvf ./hed-data.tar

仿照HED-BSDS数据集制作自己的数据集

训练

python hed.py --vgg16_caffe ./data/5stage-vgg.py36pickle --dataset ./data/wire

测试

   python hed.py --checkpoint output/epoch-39-checkpoint.pt --output ./output3 --test --dataset ./data/wire

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

相关文章

《HED:Holistically-Nested Edge Detection》原文翻译

注:本人水平有限,如有错误,恳请指正,谢谢 源代码和预训练模型获取地址: https://github.com/s9xie/hed 论文地址:https://arxiv.org/abs/1504.06375 Holistically-Nested Edge Detection 摘要 本文研究了…

边缘检测-HED-RCF

(HED)Holistically-Nested Edge Detection 解决问题 ICCV2015的文章。主要解决两个问题: (1)基于整个图像的训练和预测; (2)多尺度和多水平(多层次)的特征学习。该算法通过深度学习模型,完成了…

论文笔记 HED:Holistically-Nested Edge Detection

同组小伙伴推荐的文章,一篇看似做边缘检测,实际做出了语义分割的文章,ICCV2015的文章。主要解决两个问题:(1)基于整个图像的训练和预测;(2)多尺度和多水平的特征学习。该…

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

Holistically-nested Edge Detection (以下简称HED) HED通过深度学习网络实现边缘检测,网络主要有以下两个特点 Holistically:指端到端(end-to-end 或者image-to-image)的学习方式,也就是说&a…

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…