码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 语义分割 FCN-DenseNet 应用入门


    语义分割 FCN-DenseNet 应用入门

    • 1. 简介
    • 2. 源码
    • 3. 数据集
      • 3.1 开源数据集
      • 3.2 自定义数据集
        • 3.2.1 建立数据集文件夹
        • 3.2.2 标注
        • 3.2.3 转化
    • 4. 训练
    • 5. 验证


    1. 简介

    在计算机视觉领域,语义分割指的是将数字图像细分为多个图像子区域的过程
    语义分割的目的是简化或改变图像的表示形式,使得图像更容易理解和分析
    语义分割通常用于定位图像中的物体和边界(线,曲线等)
    更精确的,语义分割是对图像中的每个像素加标签的一个过程,
    这一过程使得具有相同标签的像素具有某种共同视觉特性
    在这里插入图片描述
    语义分割的领域非常多,无人车、地块检测、表计识别等等


    2. 源码

    根据GitHub上开源的代码 Sharpiless FCN-DenseNet 进行一些更改:

    1. 调整数据集分布
    2. 新增训练和检验过程可视化
    3. 新增数据集处理工具
    4. 新增预训练模型
    5. 新增少许自定义参数等

    可以通过以下渠道下载:

    • GitHub:FCN-DenseNet
    • CSDN:FCN-DenseNet
    • Gitee:FCN-DenseNet

    3. 数据集


    3.1 开源数据集

    本案例使用飞桨里的一个例子的 Oxford-IIIT Pet数据集
    里面包含了宠物照片和对应的标签数据
    宠物图片在 /images
    标签数据在 /annotations/trimaps
    具体详情参考 飞桨官方文档说明
    在这里插入图片描述
    这边标签是灰度图,还需要在处理一下,利用 tool_img2mask.py 根据实际情况将所有标签图片转换为所需的格式

    在这里插入图片描述
    左边为原图标签,宠物为1,背景为2,边缘为3,这里处理后只保留宠物特征

    然后通过 tool_img2data.py 将原图和标签打乱并按比例分配到新的地址成为训练集和测试集
    原图训练集:/resources/images/data/train/img
    标签训练集:/resources/images/data/train/mask
    原图测试集:/resources/images/data/test/img
    标签测试集:/resources/images/data/test/mask

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


    3.2 自定义数据集


    3.2.1 建立数据集文件夹

    在工程中新建文件夹 /resources/images/data_json,将所有数据原图均放置于此

    在这里插入图片描述
    这里以Oxford-IIIT Pet数据集的第一张图片为例


    3.2.2 标注

    使用 开源的数据标注工具Labelme
    安装也比较简单,版本不要太高了,后面用的时候会有问题:

    $ pip3 install labelme==3.16.2
    
    • 1

    在 /resources/images/data_json启动 Labelme

    $ labelme
    
    • 1

    在这里插入图片描述
    保存为 json 格式,并在同一地址,后续方便转换处理

    在这里插入图片描述


    3.2.3 转化

    此时再通过 tool_json2dataset.py 转化所有文件并生成原图和标签图片
    在这里插入图片描述
    此时所有可以利用的数据均在 /resources/images/dataset 文件夹中

    然后同样通过 tool_dataset2data.py 将 dataset 中的原图和标签打乱并按比例分配到新的地址成为训练集和测试集
    原图训练集:/resources/images/data/train/img
    标签训练集:/resources/images/data/train/mask
    原图测试集:/resources/images/data/test/img
    标签测试集:/resources/images/data/test/mask


    4. 训练

    为了有足够强大的数据,这里使用处理过的Oxford-IIIT Pet数据集
    根据自己电脑硬件合理调整参数进行训练,执行train.py文件

    在这里插入图片描述
    默认每5次迭代验证并保存最优的模型于 parameters_densenet121 文件夹

    parser.add_argument('--svae_interval', type=int, default=5)  # svae interval
    
    • 1

    5. 验证

    执行test.py文件
    在这里插入图片描述
    可以在 resources/images/data/test 看到分割的效果图:
    在这里插入图片描述
    抽取mask里的图片出来对比效果:
    在这里插入图片描述
    还是可以的


    谢谢

  • 相关阅读:
    从0-1,如何用低代码搭建管理系统
    MBA-day26 数的概念与性质
    圆的面积为什么是π r²
    鸿蒙系统(HarmonyOS)--第3章:鸿蒙Aility框架
    SYS——汽车零部件从项目到软件开发过程
    有 3 个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果
    Spring Boot Admin 监控指标接入Grafana可视化
    小程序分账方案:实现商户分账的简便与灵活
    大模型部署手记(13)LLaMa2+Chinese-LLaMA-Plus-2-7B+Windows+LangChain+摘要问答
    PHP中interface关键字
  • 原文地址:https://blog.csdn.net/qq_32618327/article/details/125654652
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号