当前位置: 首页 > news >正文

代码讲解系列-CV(五)——语义分割基础

文章目录

  • 一、图像分割标注
    • 1.1 Labelme标注
    • 1.2 SAM辅助
    • 1.3 json格式
  • 二、数据解析
    • 2.1 Dataset
    • 2.2 train.py
      • 2.2.1 取参
      • 2.2.2 分割和数据集的读取
  • 三、Unet网络搭建
    • 3.1 Unet
    • 3.2 Network
  • 四、损失函数和指标
    • 4.1 DICE系数
    • 4.2 损失函数
    • 4.3 半精度训练
  • 五、SAM
  • 六、作业

语义分割是图片下进行分割出所检测的目标,而实例分割就是更进一步,对分割出来的图像进行分组。
数据集:https://www.kaggle.com/competitions/carvana-image-masking-challenge/
是在kaggle上的数据集

一、图像分割标注

1.1 Labelme标注

与上一次一样
在这里插入图片描述
但是由于有些更精细的目标需要更精确的边界,所以需要SAM进行辅助。

1.2 SAM辅助

  1. edit-创建AI多边形
  2. 等待SAM模型下载完成
  3. 点击鼠标添加query点
  4. 保存
    在这里插入图片描述

1.3 json格式

可以通过json里面的点,输出成mask。
在这里插入图片描述
就是像这样

二、数据解析

2.1 Dataset

读取image-mask对。总体就是对于,mask和image进行配对,并且对于image进项下采样,因为实际上,我们用不到这么高清晰度的情况(所以设置成scale)
在这里插入图片描述
下面这就是图像预处理
在这里插入图片描述

在这里插入图片描述


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

2.2 train.py

训练脚本

amp就是为了优化显存和速度

2.2.1 取参

在这里插入图片描述

2.2.2 分割和数据集的读取

在这里插入图片描述

三、Unet网络搭建

3.1 Unet

Unet是比较早做语义分割的
U-Net: Convolutional Networks for Biomedical Image Segmentation
https://arxiv.org/abs/1505.04597
在这里插入图片描述
下面就是根据图,复现Unet

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

tqdm就是进度条


3.2 Network

组件
在这里插入图片描述
模型
在这里插入图片描述

四、损失函数和指标

4.1 DICE系数

跟IOU很像

Dice 系数是一种衡量两个集合相似度的指标,在图像分割任务中用于评估分割结果与真实标签的相似程度
在这里插入图片描述
缺点:对边界噪声较敏感(边界不精确可能显著降低 Dice 系数)
在这里插入图片描述

4.2 损失函数

交叉熵损失+DICE损失
在这里插入图片描述

4.3 半精度训练

在这里插入图片描述

五、SAM

https://github.com/facebookresearch/segment-anything
在这里插入图片描述

六、作业

一、基于本课内容,搭建unet网络训练以下数据。
https://www.kaggle.com/competitions/carvana-image-masking-challenge/
二、尝试使用
SAM推理当前数据集。

http://www.lryc.cn/news/540187.html

相关文章:

  • 在mfc中使用自定义三维向量类和计算多个三维向量的平均值
  • RDMA ibverbs_API功能说明
  • 【C++语言】string 类
  • 快速上手gdb/cgdb
  • 《养生》(二)
  • JAVA:集成 Drools 业务规则引擎的技术指南
  • GeoHD - 一种用于智慧城市热点探测的Python工具箱
  • 记一次Ngnix配置
  • 2024年国赛高教杯数学建模C题农作物的种植策略解题全过程文档及程序
  • java基础语知识(8)
  • 室内定位精度方案对比
  • Pytorch深度学习教程_5_编写第一个神经网络
  • ImportError: cannot import name ‘FixtureDef‘ from ‘pytest‘
  • 改BUG:Mock测试的时候,when失效
  • 【自动化脚本工具】AutoHotkey (Windows)
  • 专题--Linux体系
  • 【DeepSeek】Mac m1电脑部署DeepSeek
  • Spring AI + Ollama 实现调用DeepSeek-R1模型API
  • 如何在本地和服务器新建Redis用户和密码
  • jmeter接口测试(一)
  • Java-11
  • js中常用方法整理
  • umi react+antd 判断渲染消息提示、input搜索、多选按钮组
  • Day15-后端Web实战-登录认证——会话技术JWT令牌过滤器拦截器
  • 【嵌入式常用工具】Srecord使用
  • SwiftUI基础组件之HStack、VStack、ZStack详解
  • 第2章 深入理解Thread构造函数
  • PLC扫描周期和工作原理
  • 玩转Docker | 使用Docker部署本地自托管reference速查表工具
  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 2