深度学习:使用UNet做图像语义分割,训练自己制作的数据集,详细教程
语义分割(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的数量和类名一定要根据自己数据集修改。希望我总结的教程帮你快速上手使用,谢谢!
深度学习:使用UNet做图像语义分割,训练自己制作的数据集,详细教程相关推荐
- 深度学习100问:图像语义分割有哪些经典的上采样方法?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 大家都知道目前主流的语义分割模型都是编码-解码框架的.通过编码器不 ...
- 深度学习实战23(进阶版)-语义分割实战,实现人物图像抠图的效果(计算机视觉)
大家好,我是微学AI,今天给大家带来深度学习实战23(进阶版)-语义分割实战,实现人物图像抠图的效果.语义分割是计算机视觉中的一项重要任务,其目标是将图像中的每个像素都分配一个语义类别标签.与传统的目 ...
- 深度卷积网络CNN与图像语义分割
转载请注明出处: http://xiahouzuoxin.github.io/notes/html/深度卷积网络CNN与图像语义分割.html 级别1:DL快速上手 级别2:从Caffe着手实践 级 ...
- 制作用于图像语义分割训练的标签数据【图像分割】【labelme】
制作用于图像语义分割训练的标签数据 *写在前面 一.使用labelme制作json数据 1.安装labelme 2.利用labelme制作json数据 二.将json数据转化为图像数据 1.单个jso ...
- 毕业设计 U-Net遥感图像语义分割(源码+论文)
文章目录 0 项目说明 1 研究目的 2 研究方法 3 研究结论 4 论文目录 5 项目源码 6 最后 0 项目说明 **基于 U-Net 网络的遥感图像语义分割 ** 提示:适合用于课程设计或毕业设 ...
- 了解图像分割的深度学习技术(2019年语义分割论文综述)
论文名称:Understanding Deep Learning Techniques for Image Segmentation 论文链接:https://arxiv.org/abs/1907.0 ...
- AI深度学习入门与实战19 语义分割:打造简单高效的人像分割模型
上一讲,我向你介绍了语义分割的原理.在理解上一课时中 U-Net 语义分割网络的基础上,这一讲,让我们来实际构建一个人像分割模型吧. 语义分割的评估 我们先简单回顾一下语义分割的目的:把一张图中的每一 ...
- 深度学习(u-net)在细胞核分割中的应用
这是2020的春节,实在是闲的无聊,写个贴子吧. 这篇文章主要是一个类似于综述性质的文章,里面会讲一下细胞核分割的图像,算法,当然也会给出引用的文献. 细胞核分割是个很久远的课题了.细胞核的分割在应用 ...
- ps语义分割_图像语义分割训练经验总结--图像语义分割
最近一直在学pytorch,copy了几个经典的入门问题.现在作一下总结. 首先,做的小项目主要有 分类问题:Mnist手写体识别.FashionMnist识别.猫狗大战 语义分割:Unet分割肝脏图 ...
最新文章
- java substring 性能_《Java程序性能优化》subString()方法的内存泄露
- NeurIPS TAPE | 用于评估蛋白质表示学习性能的多任务平台
- php猜数游戏63,PHP实现猜数游戏的代码实例分享
- java 获取网络带宽_Java开发网 - 一个测网络延迟和带宽的程序,发10M的数据有问题...
- c6011取消对null指针的引用_C++中的引用
- 『ACM--算法--KMP』信息竞赛进阶指南--KMP算法(模板)
- 选择技术栈构建通用平台
- Windows 关闭进程例子
- Leetcode--342. 4的幂
- mlock - 将页面锁入内存
- PAIP.ecshop file_put_contents Warning notice解决方法
- EnableQ在企业员工满意度调查上的贡献
- VS2019企业版密钥
- 超大文件调用讯飞语音听写解决方案
- SqlServer2008操作总结
- 玩转移远SC60 Android开发板------(1)LCD
- 论如何在网页中插入一张图片
- java网络编程---使用URL爬取歌曲
- VS Code中将自定义的Snippets绑定到自定义的快捷键上
- linux下开机自动启动,定时运行shell脚本
热门文章
- Android中自定义popuWindow
- 葡萄牙寻求豁免欧盟国家援助规则以帮助银行
- linux centos 下载安装yum
- Python爬虫——使用正则表达式爬取西安7天的天气预报,并使用prettytable模块输出
- 在计算机显示桌面快捷方式,电脑显示桌面的快捷图标不见了怎么办?
- 电子印章让地产行业的“用纸、人工、快递、时间”成本全面缩减
- meta标签的作用是什么
- ssh经常一段时间就断掉解决办法
- 推荐系统遇上深度学习(九十二)-[腾讯]RecSys2020最佳长论文-多任务学习模型PLE
- Spark Streaming揭秘 Day14 State状态管理