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

这篇具有很好参考价值的文章主要介绍了深度学习:使用UNet做图像语义分割,训练自己制作的数据集,详细教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一、 源码包下载

配套教程的源码包,下载方法为文章末扫码到公众号中回复关键字:语义分割UNet。获取下载链接。当然官网也给了源码包,官网下载链接为:官网。学者也可以下载官网提供的,建议学者直接下载我提供的学习,我已经补了一些坑,添加过一些实用代码。下载好我提供的源码包,解压后的样纸见下:

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

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

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

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

三、 准备数据集

3.1 打标签

数据集的准备,看学者自己个人想要识别什么物体,自行准备即可。我提供的源码包中有我自己喷血已经打好标签的数据集,打标签需要用到的工具叫作labelme,关于labelme工具的具体使用教程,学者看我的另外一篇博客,链接为:Labelme使用教程

准备好的数据集先存放到工程文件夹下的datasets文件下,具体的文件存放位置关系见下:

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

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

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

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

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

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

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

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

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

四、训练

4.1 训练参数的修改

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

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

4.2 开始训练

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

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

五、模型测试

5.1 保存模型权重文件

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

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

5.2 修改模型测试参数

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

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

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

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

5.3 模型推理测试

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

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

5.3.1 单帧图片测试

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

5.3.2 电脑硬盘中视频测试

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

5.3.3 调用电脑自带摄像头测试

图像分割训练自己的数据集,Python OpenCv,Pytorch,python,深度学习,计算机视觉,语义分割,python,pytorch

六、总结

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

总结不易,多多支持,谢谢!文章来源地址https://www.toymoban.com/news/detail-779265.html

到了这里,关于深度学习:使用UNet做图像语义分割,训练自己制作的数据集,详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Bubbliiiing视频记录】Pytorch 搭建自己的Unet语义分割平台

    b站 地址 语义分割:对图像每个像素点进行分类 常见神经网络处理过程:Encoder提取特征,接着Docoder恢复成原图大小的图片 分为三个部分 主干特征提取部分: 卷积和最大池化的堆叠 获得五个初步有效特征层 加强特征提取部分: 五个初步有效特征层进行上采样 + 特征融合

    2024年02月12日
    浏览(41)
  • UNet深度学习模型在医学图像分割中的应用及其Python实现细节

    第一部分:引言和UNet架构简介 引言 : 医学图像分割是医疗图像处理的重要领域,它涉及将图像划分为多个区域,以标识和隔离感兴趣的区域(如器官、肿瘤等)。近年来,随着深度学习技术的发展,多种神经网络模型被应用于这一领域。其中,UNet模型因其出色的表现而受

    2024年02月12日
    浏览(46)
  • 【论文阅读】Swin Transformer Embedding UNet用于遥感图像语义分割

    Swin Transformer Embedding UNet for Remote Sensing Image Semantic Segmentation 全局上下文信息是遥感图像语义分割的关键 具有强大全局建模能力的Swin transformer 提出了一种新的RS图像语义分割框架ST-UNet型网络(UNet) 解决方案:将Swin transformer嵌入到经典的基于cnn的UNet中 ST-UNet由Swin变压器和CNN并联

    2024年02月08日
    浏览(61)
  • 深度学习中语义分割、实例分割、目标检测和图像分类区别

    语义分割 实例分割 目标检测 语义分割:需要判断每个像素属于哪一个类别,属于像素级别分类标注 实例分割:相较于语义分割 会将同一类别的不同物体进行分离标注   目标检测:输入图像通常包含多个物体,对物体的位置与类别进行标注  图像分类:输入图像通常包含一

    2024年02月08日
    浏览(57)
  • 计算机视觉与深度学习-图像分割-视觉识别任务01-语义分割-【北邮鲁鹏】

    给每个像素分配类别标签。 不区分实例,只考虑像素类别。 滑动窗口缺点 重叠区域的特征反复被计算,效率很低。 所以针对该问题提出了新的解决方案–全卷积。 让整个网络只包含卷积层,一次性输出所有像素的类别预测。 全卷积优点 不用将图片分为一个个小区域然后再

    2024年02月07日
    浏览(82)
  • 【图像分割】Unet系列深度讲解(FCN、UNET、UNET++)

    1.1 背景介绍: 自2015年以来,在生物医学图像分割领域,U-Net得到了广泛的应用,目前已达到四千多次引用。至今,U-Net已经有了很多变体。目前已有许多新的卷积神经网络设计方式,但很多仍延续了U-Net的核心思想,加入了新的模块或者融入其他设计理念。 编码和解码,早在

    2024年02月03日
    浏览(42)
  • UNet语义分割模型的使用-Pytorch

    最近有时间,跑了一下UNet模型,因为自己的深度学习基础不扎实,导致用了一些时间。目前只停留在使用和理解别人模型的基础上,对于优化模型的相关方法还有待学习。 众所周知,UNent是进行语义分割的知名模型,它的U形结构很多人也都见过,但是如果自己没有亲自试过

    2024年02月03日
    浏览(50)
  • 论文阅读—2023.7.13:遥感图像语义分割空间全局上下文信息网络(主要为unet网络以及改unet)附加个人理解与代码解析

    前期看的文章大部分都是深度学习原理含量多一点,一直在纠结怎么改模型,论文看的很吃力,看一篇忘一篇,总感觉摸不到方向。想到自己是遥感专业,所以还是回归遥感影像去谈深度学习,回归问题,再想着用什么方法解决问题。 1、易丢失空间信息 在 Decoder 阶段输出多

    2024年02月16日
    浏览(46)
  • MMSegmentation训练自己的语义分割数据集

    然后 ctrl +N 开启多边形标注即可,命名类为person 之后会保存到同目录下json文件: 下载labelme代码里的转换代码: labels里存储的如下形式 运行指令 生成如下 mmseg/datasets里生成一个my_data.py文件,这个文件存储的是类别信息和seg颜色 需要多加一个backbone mmseg/utils/class_names.py文件

    2024年02月10日
    浏览(47)
  • 可解释深度学习:从感受野到深度学习的三大基本任务:图像分类,语义分割,目标检测,让你真正理解深度学习

    目录   前言 一、初识感受野 1.1猜一猜他是什么? 1.2人眼视觉系统下的感受野 1.3深度神经网络中的感受野 1.3.1感受野的性质 1.3.2感受野的定义 1.3.3举一个例子 1.3.4以VGG网络为例 二、感受野的计算 2.1 哪些操作能够改变感受野? 2.2 感受野的计算公式 2.3 感受野的中心位置计算

    2024年02月02日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包