码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 深度学习:使用UNet做图像语义分割,训练自己制作的数据集,详细教程


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

    目录

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

    一、 源码包下载

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

    在这里插入图片描述

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

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

    在这里插入图片描述

    三、 准备数据集

    3.1 打标签

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

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

    在这里插入图片描述

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

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

    在这里插入图片描述

    在这里插入图片描述

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

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

    在这里插入图片描述

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

    在这里插入图片描述

    四、训练

    4.1 训练参数的修改

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

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    4.2 开始训练

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

    在这里插入图片描述

    在这里插入图片描述

    五、模型测试

    5.1 保存模型权重文件

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

    在这里插入图片描述

    5.2 修改模型测试参数

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

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

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

    在这里插入图片描述

    5.3 模型推理测试

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

    在这里插入图片描述

    5.3.1 单帧图片测试

    在这里插入图片描述

    5.3.2 电脑硬盘中视频测试

    在这里插入图片描述

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

    在这里插入图片描述

    六、总结

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

    总结不易,多多支持,谢谢!

  • 相关阅读:
    Cilium系列-12-启用 Pod 的 BBR 拥塞控制
    Git 分支管理规范
    给重装系统后卡顿该怎么调整
    记-flink sink to pg卡住且日志没有报错问题排查【参数引起】
    一篇文章讲清楚 Mendix 与 SAP 集成开发流程
    仿闪照功能娱乐微信小程序源码下载-带外卖CPS功能和流量主
    数据库基本概念
    tomcat
    生成式人工智能促使社会转变
    数组第 k 大子序列
  • 原文地址:https://blog.csdn.net/qq_40280673/article/details/127449624
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号