深度学习:使用UNet做图像语义分割,训练自己制作的数据集,详细教程

news2024/11/26 0:34:10

语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支。与分类任务不同,语义分割需要判断图像每个像素点的类别,进行精确分割。语义分割目前在自动驾驶、自动抠图、医疗影像等领域有着比较广泛的应用。我总结了使用UNet网络做图像语义分割的方法,教程很详细,学者耐心学习。

目录

  • 一、 源码包下载
  • 二、安装训练必要的库文件
  • 三、 准备数据集
    • 1、打标签
    • 2、复制数据集和标签文件到VOCdevkit文件中
    • 3、提取训练集和验证集图片名称
  • 四、训练
    • 1、训练参数的修改
    • 2、开始训练
  • 五、模型测试
    • 1、保存模型权重文件
    • 2、修改模型测试参数
    • 3、开始模型测试
      • 3.1、图片测试
      • 3.2、电脑硬盘中视频测试
      • 3.3、调用电脑自带摄像头测试
  • 六、总结

一、 源码包下载

配套教程的源码包,下载链接为:添加链接描述,提取码:17pb。当然官网也给了源码包,官网下载链接为:添加链接描述。学者也可以下载官网提供的,建议学者直接下载我提供的学习,我已经补了一些坑,添加过一些实用代码。下载好我提供的源码包,解压后的样纸见下:

在这里插入图片描述

二、安装训练必要的库文件

Python的版本选用3.7或者3.8都可以。

在这里插入图片描述

三、 准备数据集

1、打标签

数据集的准备,看学者自己个人想要识别什么物体,自行准备即可。我提供的源码包中有我自己喷血已经打好标签的数据集,打标签需要用到的工具叫作labelme,关于labelme工具的具体使用教程,学者看我的另外一篇博客,链接为:添加链接描述
准备好的数据集先存放到工程文件夹下的datasets文件下,具体的文件存放位置关系见下:

在这里插入图片描述

2、复制数据集和标签文件到VOCdevkit文件中

通过上面步骤制作好标签文件后,将数据集和标签文件从datasets文件中复制一份到VOCdevkit文件中,具体见下:

在这里插入图片描述

在这里插入图片描述

3、提取训练集和验证集图片名称

代码中需要修改到的地方见下:

在这里插入图片描述

学者只要运行源码包中的voc_annotion.py文件后,就可以在 ./VOCdevkit/VOC2007/ImageSets/Segmentation目录下自动生成train.txt和val.txt文件,具体见下:

在这里插入图片描述

四、训练

1、训练参数的修改

下面有很多的参数可以修改,学者根据自己的训练情况进行修改即可,训练修改的参数都在train.py文件中,具体见下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、开始训练

上面的参数修改好后,直接运行train.py文件就开始训练了,见下:

在这里插入图片描述
在这里插入图片描述

五、模型测试

1、保存模型权重文件

上面的训练好后,模型都会被保存到工程文件夹根目录中的logs文件中,见下:

在这里插入图片描述

2、修改模型测试参数

测试模型时,需要修改到的地方见下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

学者在测试的时候,有三种模式可以选择,(1)测试图片;(2)测试电脑硬盘中的视频;(3)调用电脑自带摄像头测试。三种模式的选择,学者修改下面代码即可,见下:

在这里插入图片描述

3、开始模型测试

上面的模型测试参数修改好后,直接运行predict.py即可开始预测:

在这里插入图片描述

3.1、图片测试

在这里插入图片描述

3.2、电脑硬盘中视频测试

在这里插入图片描述

3.3、调用电脑自带摄像头测试

在这里插入图片描述

六、总结

以上就是使用UNet做图像语义分割,自己打标签训练的详细教程,参数调整部分,学者根据需求自行调整,很多参数保持默认即可,参数name_classes的数量和类名一定要根据自己数据集修改。希望我总结的教程帮你快速上手使用,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/621661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我们不一样-康耐视visionpro和apple vision pro

​ 机器视觉Halcon-不同颜色快速识别 康耐视Visionpro是美国cognex visionpro。 康耐视 VisionPro 是领先的计算机式视觉软件。它主要用于设置和部署视觉应用 - 无论是使用相机还是图像采集卡。借助 VisionPro,用户可执行各种功能,包括几何对象定位和检测、识别、测量和对准…

【Web服务应用】LVS负载均衡集群

LVS负载均衡集群 一、企业级集群含义1.1集群的含义1.2LVS一些专业术语 二、企业集群分类2.1负载均衡集群2.2高可用集群2.3高性能运算集群(High Performance Computer Cluster) 三、负载均衡的架构3.1负载均衡的结构 四、负载均很集群的工作模式4.1NAT模式…

JDBC连接数据库步骤(入门到进阶全)

目录 一、JDBC是什么? 二,JDBC的本质是什么? 为什么要用面向接口编程? 三、JDBC实现原理 四、使用idea开发JDBC代码配置驱动 ​编辑 五、JDBC编程六步概述 六、JDBC编程实现 1.插入实现 2.删除与更新实现 3 .类加载的方式注…

Jetson AGX Orin安装Anaconda、Cuda、Cudnn、Pytorch、Tensorrt最全教程

文章目录 一:Anaconda安装二:Cuda、Cudnn安装三:Pytorch安装四:Tensorrt安装 一:Anaconda安装 Jetson系列边缘开发板,其架构都是arm64,而不是传统PC的amd64,深度学习的环境配置方法…

chatgpt赋能python:Python对接技术在SEO中的应用

Python对接技术在SEO中的应用 Python作为一种高性能的编程语言,被广泛应用于各种领域,其中也包括了搜索引擎优化(SEO)领域。Python对接技术,也称为API对接技术,是指通过调用API接口来获取数据、信息或实现…

AI数字人打造之sadtalker让照片开口说话

1 sadtalker介绍 西安交通大学也开源了人工智能SadTalker模型,通过从音频中学习生成3D运动系数,使用全新的3D面部渲染器来生成头部运动,可以实现图片音频就能生成高质量的视频。 论文地址:Learning Realistic 3D Motion Coefficie…

chatgpt赋能python:Python屏蔽语句的重要性

Python屏蔽语句的重要性 Python是一种高级程序设计语言,被认为是开发Web应用程序、数据科学和人工智能的最佳语言之一。在编写Python程序时,每个人都会遇到需要屏蔽语句的情况。在本文中,我们将详细介绍Python屏蔽语句的重要性和用法。 什么…

chatgpt赋能python:Python建模仿真:优秀的工具与技巧

Python建模仿真:优秀的工具与技巧 在现代科技时代,建模仿真是许多不同行业的核心部分,帮助工程师和科学家研究解决许多问题。Python作为一种简单易学且强大的语言,已经被广泛应用于建模仿真领域。 Python的优点 Python在建模仿…

用Python进行数学建模(一)

一、导入数据 1.直接赋值 2.读取 Excel 文件 3.代码示例 import pandas as pd# 读取数据文件 def readDataFile(readPath): # readPath: 数据文件的地址和文件名try:if (readPath[-4:] ".csv"):dfFile pd.read_csv(readPath, header0, sep",") # 间隔…

chatgpt赋能python:Python嵌入C:一个高效的编程技巧

Python嵌入C:一个高效的编程技巧 作为一名有10年Python编程经验的工程师,我发现在某些情况下,Python嵌入C是一种高效的编程技巧。这种技巧可以使您利用Python的简洁性和高级功能,同时仍然保持程序的执行速度。在本文中&#xff0…

chatgpt赋能python:Python对接硬件:从入门到精通

Python对接硬件:从入门到精通 Python是一门极为强大的编程语言,它不只是用来进行数据分析和Web开发的,也可以用来对接各种硬件设备。这是因为Python具有简单易学,语法简洁,库众多的优点。 什么是Python对接硬件 Pyt…

通过AI工具(ChatGPT接口)生成一字未改的论文,查重率4.2%,可以直接当作论文使用

论文题目:基于AIOT技术的能源控制器的设计以及应用 查重结果:4.2% AI工具国内体验,关注:码视野,回复关键字:1002 一、引言 随着全球经济的快速发展和人口的增长,对能源的需求日益增加。然而&…

nodejs环境变量配置问题记录

问题一:Error: EPERM: operation not permitted, open ‘D:\Program Files\nodejs\node_cache\_cacache\tmp\bccd20 这个问题主要是没有权限导致的。 问题二:使用node命令提示 ‘node‘ 不是内部或外部命令,也不是可运行的程序 这个错误是环…

chatgpt赋能python:Python如何将文件另存为:让您的文件管理更便捷

Python如何将文件另存为:让您的文件管理更便捷 随着数字化时代的来临,文件管理已经成为我们日常工作不可缺少的一部分。当涉及到大量的文件管理时,手动操作可能会浪费大量的时间和精力。 在这种情况下,自动化的解决方案将会是很有…

【玩转Linux操作】用户管理(命令讲解配上样例解释)

🎊专栏【玩转Linux操作】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题🥰 文章目录 🍔添加用户⭐命令🎈useradd 用户名 ⭐演示…

【日志解析】【启发式】Drain:一种用于日志解析的深度解析树

Drain:An Online Log Parsing Approach with Fixed Depth Tree 文章目录 Drain:An Online Log Parsing Approach with Fixed Depth Tree1 论文出处2 背景2.1 背景介绍2.2 针对问题2.3 创新点 3 主要设计思路3.1 Drain整体结构3.2 具体步骤 4 实验设计5 个…

pycharm利用快捷键,快速注释多行代码的方法分享

最近在pycharm的新手学习群里,发现有些小伙伴依然在“手工”进行代码的注释,效率较低。 下面分享pycharm利用快捷键,快速注释多行代码的方法。可以帮助pycharm初学者加倍提升代码的注释效率。 代码注释快捷键 pycharm代码注释的快捷键为 c…

Anaconda 下载安装

文章目录 Anaconda下载Anaconda安装 Anaconda下载 进入官网 https://www.anaconda.com/ ,往下滑动,找到下载地址 2. 根据自己的系统,选择相应的安装包 直接从官网下载的话,下载速度较慢,可以使用国内镜像快速下载 百…

chatgpt赋能python:Python-基础知识:如何在Python中建立一个文件

Python-基础知识:如何在Python中建立一个文件 在Python中,创建文件是一个非常常见和重要的基础操作。Python提供了多种方法来创建文件,包括使用内置函数和第三方库。在本文中,我们将探讨如何使用Python建立一个文件。 使用内置函…

Linux启动nginx

Linux启动nginx 一、下载并解压安装包 1.首先我们需要安装nginx所需要的依赖 yum install pcre pcre-devel gcc openssl openssl-devel zlib zlib-devel2.在/usr/local/下创建文件nginx文件 mkdir /usr/local/nginx/3.进入/usr/local/nginx/ cd /usr/local/nginx/4.在网上…