语义分割(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做图像语义分割,训练自己制作的数据集,详细教程相关推荐

  1. 深度学习100问:图像语义分割有哪些经典的上采样方法?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 大家都知道目前主流的语义分割模型都是编码-解码框架的.通过编码器不 ...

  2. 深度学习实战23(进阶版)-语义分割实战,实现人物图像抠图的效果(计算机视觉)

    大家好,我是微学AI,今天给大家带来深度学习实战23(进阶版)-语义分割实战,实现人物图像抠图的效果.语义分割是计算机视觉中的一项重要任务,其目标是将图像中的每个像素都分配一个语义类别标签.与传统的目 ...

  3. 深度卷积网络CNN与图像语义分割

    转载请注明出处:  http://xiahouzuoxin.github.io/notes/html/深度卷积网络CNN与图像语义分割.html 级别1:DL快速上手 级别2:从Caffe着手实践 级 ...

  4. 制作用于图像语义分割训练的标签数据【图像分割】【labelme】

    制作用于图像语义分割训练的标签数据 *写在前面 一.使用labelme制作json数据 1.安装labelme 2.利用labelme制作json数据 二.将json数据转化为图像数据 1.单个jso ...

  5. 毕业设计 U-Net遥感图像语义分割(源码+论文)

    文章目录 0 项目说明 1 研究目的 2 研究方法 3 研究结论 4 论文目录 5 项目源码 6 最后 0 项目说明 **基于 U-Net 网络的遥感图像语义分割 ** 提示:适合用于课程设计或毕业设 ...

  6. 了解图像分割的深度学习技术(2019年语义分割论文综述)

    论文名称:Understanding Deep Learning Techniques for Image Segmentation 论文链接:https://arxiv.org/abs/1907.0 ...

  7. AI深度学习入门与实战19 语义分割:打造简单高效的人像分割模型

    上一讲,我向你介绍了语义分割的原理.在理解上一课时中 U-Net 语义分割网络的基础上,这一讲,让我们来实际构建一个人像分割模型吧. 语义分割的评估 我们先简单回顾一下语义分割的目的:把一张图中的每一 ...

  8. 深度学习(u-net)在细胞核分割中的应用

    这是2020的春节,实在是闲的无聊,写个贴子吧. 这篇文章主要是一个类似于综述性质的文章,里面会讲一下细胞核分割的图像,算法,当然也会给出引用的文献. 细胞核分割是个很久远的课题了.细胞核的分割在应用 ...

  9. ps语义分割_图像语义分割训练经验总结--图像语义分割

    最近一直在学pytorch,copy了几个经典的入门问题.现在作一下总结. 首先,做的小项目主要有 分类问题:Mnist手写体识别.FashionMnist识别.猫狗大战 语义分割:Unet分割肝脏图 ...

最新文章

  1. java substring 性能_《Java程序性能优化》subString()方法的内存泄露
  2. NeurIPS TAPE | 用于评估蛋白质表示学习性能的多任务平台
  3. php猜数游戏63,PHP实现猜数游戏的代码实例分享
  4. java 获取网络带宽_Java开发网 - 一个测网络延迟和带宽的程序,发10M的数据有问题...
  5. c6011取消对null指针的引用_C++中的引用
  6. 『ACM--算法--KMP』信息竞赛进阶指南--KMP算法(模板)
  7. 选择技术栈构建通用平台
  8. Windows 关闭进程例子
  9. Leetcode--342. 4的幂
  10. mlock - 将页面锁入内存
  11. PAIP.ecshop file_put_contents Warning notice解决方法
  12. EnableQ在企业员工满意度调查上的贡献
  13. VS2019企业版密钥
  14. 超大文件调用讯飞语音听写解决方案
  15. SqlServer2008操作总结
  16. 玩转移远SC60 Android开发板------(1)LCD
  17. 论如何在网页中插入一张图片
  18. java网络编程---使用URL爬取歌曲
  19. VS Code中将自定义的Snippets绑定到自定义的快捷键上
  20. linux下开机自动启动,定时运行shell脚本

热门文章

  1. Android中自定义popuWindow
  2. 葡萄牙寻求豁免欧盟国家援助规则以帮助银行
  3. linux centos 下载安装yum
  4. Python爬虫——使用正则表达式爬取西安7天的天气预报,并使用prettytable模块输出
  5. 在计算机显示桌面快捷方式,电脑显示桌面的快捷图标不见了怎么办?
  6. 电子印章让地产行业的“用纸、人工、快递、时间”成本全面缩减
  7. meta标签的作用是什么
  8. ssh经常一段时间就断掉解决办法
  9. 推荐系统遇上深度学习(九十二)-[腾讯]RecSys2020最佳长论文-多任务学习模型PLE
  10. Spark Streaming揭秘 Day14 State状态管理