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

2023-11-04

深度学习边缘检测 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 os

dir = 'data/wire/train/edge'
edge = 'data/wire/train/edge1607'

def canny(path):
    out = edge + '/' + path.split('.')[0] + '.png'
    print(out)
    path = dir + '/' + path
    img = 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 使用PAM保障开发运营安全

    硬编码凭据和 DevOps 系统中缺乏凭据安全性是组织的巨大漏洞 以明文形式访问凭据的恶意内部人员可以在 IT 中建立和扩展其立足点 基础设施 构成巨大的数据被盗风险 什么是PAM 特权访问管理 PAM 是指一组 IT 安全管理原则 可帮助
  • Markdown 技能树(2):段落及强调

    Markdown 技能树 2 段落及强调 在 Markdown 中 段落是由一个以上相连接的行句组成 而一个以上的空行则会切分出不同的段落 一般的段落不需要用空白或换行缩排 空行的定义是显示上看起来像是空行 便会被视为空行 比如 若某一行只
  • 再谈Linux epoll惊群问题的原因和解决方案

    转自 https blog csdn net dog250 article details 80837278 缘起 近期排查了一个问题 epoll惊群的问题 起初我并不认为这是惊群导致 因为从现象上看 只是体现了CPU不均衡 一共fork了
  • linux批量修改文件编码格式(包含子目录)

    背景 项目工程文件编码格式有utf 8 也有gb2312 在通过Source Insight 4 0打开文件只能设置一种默认编码格式UTF 8 Windows ANSI GB2312 不能自动识别文件本身的编码格式 这就导致总有一部分文件打
  • 【转载】爬虫篇:获取数据——urllib库的基础知识(总结)

    注 本文章大部分代码的案例节选于 Python3网络爬虫开发实战 第2版 一 发出请求 1 urlopen方法 Python版本 3 6 coding utf 8 urlopen 方法的API urllib request urlopen
  • 深度解析shell脚本的命令的原理之cp

    cp 是 Unix 或 Linux 中的一个基本命令 用于复制文件或目录 以下是对这个命令的深度解析 基本操作 cp 命令的基本操作是将一个或多个源文件或目录复制到一个目标文件或目录 它通过读取源文件的内容 并将这些内容写入到目标文件来完成
  • 利用Caffe创建自己的lmdb数据集

    用Caffe进行模型训练时 除了用现有的公开数据集 如MNIST CIFAR等 有时候我们还需要创建自己的数据集进行训练 本篇博客讲的就是如何利用Caffe中的模块创建自己lmdb数据集 数据集准备 我们需要自己准备好带类别标签的图片数据
  • 架构设计(数据层)

    架构设计 数据层 关系数据库 关系数据库 需要事先定义表 读写数据时 表中字段不可动态变更 表中的每个行记录代表一个关系 1 海贼王 20 2 瓜田李下 20 表与表之间也可建立关联关系 一对一 一对多 多对一 多对多 关系型数据库进行读写
  • uboot 中内存测试,内存检测方法

    DDR内存子系统常见硬件错误及Uboot中检测流程 在 U Boot中 Denx U Boot的开发商 针对常见的DDR内存故障进行了严格的检测处理 下图描述了该检测处理过程的三个步骤 检测数据线 地址线和DDR物理存储部件 主要涉及这三个
  • 给大家介绍几个好的软件包下载网站

    RPM SEARCH http rpm pbone net PKG SEARCH http pkgs org 两个都非常的好
  • 51单片机:用ADC0832做模数转换,测量电压大小

    51单片机 用ADC0832做模数转换 测量外界电压大小 问题要求 利用51单片机 外加一个ADC0832模数转换器 设计一个可以实时测量电压的电路 测量电压的范围是0 5V 允许误差 要求测出的电压用数码管实时显示 精确到小数点后两位 代
  • 【计算机视觉】PixelRNN 讲解

    任何的书写错误 排版错误 概念错误等 希望大家包含指正 PixelRNN 论文信息 作者 Aaron van den Oord Google DeepMind 期刊 PMLR JMLR 发布时间与更新时间 2016 01 25 2016 0
  • SQL列属性

    列属性 真正的约束字段的是数据类型 但是数据类型的约束很单一 需要有一些额外的约束 来保证数据的合法性 列属性有很多 NULL NOT NULL default primary key unique key auto increment c
  • Leetcode-4. Median of Two Sorted Arrays

    Topic background Given two sorted arrays nums1 and nums2 of size m and n respectively return the median of the two sorte
  • vue使用element plus引入ElMessage样式失效的问题

    样式失效如图 我使用的是按需引用 所以在main js中直接导入下面样式就行 import element plus theme chalk index css
  • 装饰模式与代理区别

    学着学着真容易懵 相同点 装饰者类与目标类要求实现同一接口 静态代理类与目标类要求也实现同一接口 装饰者类与静态代理类都可以实现增强目标类的功能 装饰者类与静态代理类中都具有目标类的引用 目的都是为了在其中调用目标类的方 法 不同点 装饰者
  • JSP 点击量统计

    2019独角兽企业重金招聘Python工程师标准 gt gt gt JSP 点击量统计 有时候我们需要知道某个页面被访问的次数 这时我们就需要在页面上添加页面统计器 页面访问的统计一般在用户第一次载入时累加该页面的访问数上 要实现一个计数器
  • 第5章 使用图像(html)

    第5章 使用图像 html 目录标题 5 1 有序列表 5 1 1 ol标签 5 1 2 有序列表的序号类型type 5 1 3 有序列表的起始数值start 5 2 无序列表 5 3 定义列表dl 5 4 列表的嵌套 5 5 练习题 5
  • windows 8 pro vl_微软MSDN原版Windows10/8/7/XP系统镜像与office下载地址大全

    相信如今大多数的用户开始讨厌GHOST形式安装操作系统 而使用微软MSDN原版系统进行安装 原因是网上分享的GHOST系统已经形成了一个黑色产业链 由于系统被删减过 众多功能缺失 并捆绑了众多无用的软件程序 还强制修改浏览器主页等让人讨厌的
  • 深度学习边缘检测 HED 训练自己的数据

    深度学习边缘检测 HED 训练自己的数据 数据集制作 使用labelme标注 选择lineStrip 线条束 标注 生成json文件 之后使用批量处理脚本将json文件转为边缘数据集 具体过程如下 首先将所有的json文件放入一个文件夹内