OpenMMlab AI实战营第五、六期培训

OpenMMlab AI实战营第五、六期培训

  • OpenMMlab实战营
    • 第五、六次课2023.2.7-9
    • 学习参考
    • 第五次课笔记
    • 第六次课笔记
    • 一、什么是语义分割
    • 二、语义分割 v.s. 实例分割 v.s. 全景分割
    • 三、语义分割经典模型
      • 1.语义分割的基本思路
      • 2.**复用卷积计算**
      • 3.全连接层的卷积化
      • 4.预测图的升采样
      • 5.双线性插值
      • 6.转置卷积
    • 四、完成精细的分割任务
      • 1.基于多层特征的上采样
      • 2.上下文信息
      • **4.PSPNet 2016(提出多尺度池化)**
      • 5.空洞卷积与 DeepLab 系列算法
        • (1)空洞卷积
        • (2)DeepLab 模型
      • 6.条件随机场 Conditional Random Field, CRF
        • (1)条件随机场
      • 7.空间金字塔池化 Atrous Spatial Pyramid Pooling ASPP
      • 8.DeepLab v3+
    • 五、语义分割模型的评估
    • 总结

OpenMMlab实战营

第五、六次课2023.2.7-9

此次实战营的积分规则介绍:

学习参考

笔记建议结合ppt来学习使用,ppt中对应知识可以参照笔记的标题进行查看。

ppt(ppt_03的后半部分):lesson5_ppt
ppt:lesson6_ppt

b站回放:OpenMMLab AI 实战营

往期笔记:笔记回顾

相关学习推荐:

  • 同济子豪兄(大佬):子豪兄b站主页

  • OpenMMlab主页:OpenMMla主页

  • OpenMMlab Github仓库链接:Github OpenMMlab

  • MMSegmentation Github仓库链接:Github MMSegmentation

  • OpenMMlab 此次AI实战营的仓库:AI实战营github

第五次课笔记

本次课程主要讲解了OpenMMlab开源体系中的MMDetection目标检测相关的知识,以及如何完整的进行一次自己的目标检测任务,主要是对第四节课的理论进行代码实践,笔记较为粗糙。

主要分为一下几个方面的内容:

  • MMDetection的环境搭建
    • 下载mim工具包
    • 通过mim下载mmdet
    • 在configs目录下下载实验所需模型
  • 通过api函数测试一张图片的目标检测效果
    • init_model:加载预训练模型
    • inference_model:执行推理
  • 通过修改.py配置文件进行对特定数据集进行迁移学习
    • 修改data部分
      • 数据集的路径(json文件)
    • 修改model部分
      • 分类头数量
      • 添加预训练参数
    • 修改优化器部分
      • 学习率根据实际使用的gpu数量进行合理调整
      • epoch大小(通常由于预训练epoch都比较大,所以我们迁移学习epoch通常小一点就可以达到比较好的训练结果)
      • 打印日志的频次
  • COCO数据集的json文件格式讲解
    • images:图像的信息
    • annotations:所有标注信息存储在一个列表中,每个标注对应图像上一个物体标注
    • categories:所有类别信息
  • 最后还介绍了一些MMDetection中的常用训练策略
    • 随机裁剪的使用
    • 学习率升温、退火策略

第六次课笔记

一、什么是语义分割

表面上看语义分割的效果就是抠图,但是实际上图像分割就是在像素级别的细粒度图像分类,把每一个像素的分类结果连在一起就是最终的语义分割结果

应用:

  • 医学分割
    • 通过图像分割技术,辅助进行医疗诊断。如右图,识别脑部肿瘤异物的位置。
  • 无人驾驶
    • 自动驾驶车辆,会将行人,其他车辆,行车道,人行道、交通标志、房屋、草地与树木等等按照类别在图像中分割出来,从而辅助车辆对道路的情况进行识别与认知。
  • 智能遥感
    • 分辨地表物体的类别,通过右侧分割之后的图像可以看到,红色的部分属于湖泊水流。通过智能遥感。能够监测不同季节地表水域的变化,从而辅助农业生产,以及旱灾洪灾的预测等等。
  • 腾讯会议人像模式等等
    • 把人可以抠出来

二、语义分割 v.s. 实例分割 v.s. 全景分割

在这里插入图片描述

  • 语义分割

    • 仅考虑像素的类别
    • 不分割同一类的不同实体
  • 实例分割

    • 分割不同的实体
    • 仅考虑前景物体
    • 前一节任务中学的MMDetection就是实例分割
  • 全景分割

    • 背景仅考虑类别
    • 前景需要区分实体

如上图所示从左往右依次是”语义分割“、”实例分割“、”全景分割“

三、语义分割经典模型

1.语义分割的基本思路

  • 按颜色分割
    • 先验知识:物体内部颜色相近,物体交界颜色变化
    • 存在的问题–可解释性差
      • 先验知识不完全准确
      • 不同物体颜色可能相近,物体内也会包含多种颜色,如下图所示一个人同时红衣服黑裤子就无法清晰的分割
    • 改进
      • 添加一些额外的手段确定物体类别

在这里插入图片描述

  • 逐像素分割(滑动窗口)
    • 滑动窗口
      • 对一个窗口做分类,其类别代表了窗口中心元素的类别
      • 滑窗每次滑动就输入到CNN中进行一次预测
    • 优势
      • 可以充分利用已有的图像分类模型
    • 问题
      • 效率低,重叠区域重复计算卷积

在这里插入图片描述


2.复用卷积计算

  • 基本思路
    • 先在全图得到一个feature map
    • 滑窗的时候去feature map中去扣出自己需要的部分
    • 优势
      • 原来每次都需要输入一个固定大小的区块给CNN
      • 现在可以输入任意大小的原图
    • 问题
      • 全连接层要求固定输入大小

在这里插入图片描述

3.全连接层的卷积化

  • 基本思路
    • 参考全连接层的操作
      • 将最后一层的特征图拉直
      • 拉直之后的向量和全连接层神经元分别相乘再相加得到下一层的输入
      • 相乘再相加这个过程其实就是一个卷积操作
    • 全连接层卷积化
      • 全连接层用原来神经元数量个和最后一层特征图一样分辨率大小的卷积核
      • 与最后一层特征图进行卷积操作
      • 由于卷积核和特征图大小一致所以会变成1x1x卷积核数量的输出
    • 优势
      • 由于没有使用全连接层,所以可以兼容任意尺寸的输入,输入的尺寸大,最后的feature map大。输入的尺寸小,最后的feature map小。

在这里插入图片描述

全卷积网络(Fully Convolutional Network 2015)

在这里插入图片描述

4.预测图的升采样

  • 原始思路
    • 使用步长>1的卷积核进行降采样
    • 使得大的特征图逐渐变小
  • 升采样基本思路
    • 最终要求结果是一个大图
    • 解决方案:
      • 双线性插值
        • 类似word、ppt中放大缩小的思想,不需要可学习的参数
      • 转置卷积(可学习的升采样层)
        • 别名:升卷积/反卷积
        • 但数学上和卷积并不是逆运算

5.双线性插值

例如下图,我们已知红点的像素值想要求得绿点的像素值

  • 通过相似三角形按比例由上面两个红点求出R2的像素值
  • 通过相似三角形按比例由下面两个红点求出R1的像素值
  • 通过相似三角形按比例由R1R2求出绿点P的像素值

在这里插入图片描述

图中白色的值就是使用双线性插值法填充出来的值

双线性插值可以通过一个卷积操作实现

例如下图中使用卷积对目标5x5的矩阵进行卷积操作,就可以得到最终的矩阵

在这里插入图片描述

6.转置卷积

之前的双线性插值的卷积核是人为定义的,其中的参数不可以进行学习,而转置卷积具有可学习的参数

转置卷积:输入一个小图 ➢ 得到一个大图

注:转置卷积旨在形状上有互逆的关系,数值结果没有互逆关系

在这里插入图片描述

一个完整的全卷积网络的预测与训练如下图所示,参数逐渐迭代优化实现了一个端到端学习的语义分割神经网络:

在这里插入图片描述

四、完成精细的分割任务

  • 一般分割任务的缺陷
    • 随着下采样(卷积操作)的进行,会丢失很多的特征,使得分割效果不是很好
  • 解决思路
    • 高层次和低层次采样进行结合
      • 浅层和底层的下采样中获取更多的特征信息(空间信息、细节信息)
      • 从高层的下采样中获取更多的语义信息

1.基于多层特征的上采样

解决方案 FCN

基于低层次和高层次特征图分别产生类别预测,升采样到原图大小,再平均得到最终结果

在这里插入图片描述

成功的应用:U-Net

  • 左边相当于编码器encoder:逐级降采样获取语义信息
  • 右边相当于解码器decoder:逐级升采样恢复细节信息

在这里插入图片描述

2.上下文信息

上下文:

  • NLP中一个文字周围的文字
  • 图像上:一个图块周围的图块

有了上下文(图像周围的内容),可以帮助我们对图片内容做出更加精确的判断,而滑动窗口刚好就是丢失了这部分信息

在这里插入图片描述

4.PSPNet 2016(提出多尺度池化)

  • 对特征图进行不同尺度的池化,得到不同尺度的上下文特征
  • 上下文特征经过通道压缩和空间上采样之后拼接回原特征图 → 同时包含局部和上下文特征
  • 基于融合的特征产生预测图

在这里插入图片描述

即,通过不同大小的特征图进行卷积操作得到不同的feature map再把他们通过concat摞在一起,就相当于考虑了上下文的信息

5.空洞卷积与 DeepLab 系列算法

DeepLab 是语义分割的又一系列工作,其主要贡献为:

  • 使用空洞卷积解决网络中的下采样问题
  • 使用条件随机场 CRF 作为后处理手段,精细化分割图
  • 使用多尺度的空洞卷积(ASPP 模块)捕捉上下文信息

DeepLab v1 发表于 2014 年,后于 2016、2017、2018 年提出 v2、v3、v3+ 版本。

(1)空洞卷积

空洞卷积解决下采样问题

图像分类模型中的下采样层使输出尺寸变小

  • 如果将池化层和卷积中的步长去掉:

    • 可以减少下采样的次数

    • 特征图就会变大,需要对应增大卷积核,以维持相同的感受野,但会增加大量参数

    • 使用空洞卷积(Dilated Convolution/Atrous Convolution),在不增加参数的情况下增大感受野

具体过程如下图所示:

特征图不变,膨胀卷积核(不会产生额外的参数)

在这里插入图片描述

实际场景的效果对比

在这里插入图片描述

(2)DeepLab 模型

DeepLab 在图像分类网络的基础上做了修改:

  • 去除分类模型中的后半部分的下采样层
  • 后续的卷积层改为膨胀卷积,并且逐步增加rate来维持原网络的感受野

在这里插入图片描述

6.条件随机场 Conditional Random Field, CRF

条件随机场是一种对原始语义分割结果进行后处理的方法

  • 模型直接输出的分割图较为粗糙,尤其在物体边界处不能产生很好的分割结果。

  • DeepLab v1&v2 使用条件随机场 (CRF) 作为后处理手段,结合原图颜色信息和神经网络预测的类别得到精细化分割结果。

在这里插入图片描述

(1)条件随机场

CRF 是一种概率模型。DeepLab 使用 CRF 对分割结果进行建模,用能量函数用来表示分割结果优劣,通过最小化能量函数获得更好的分割结果。

在这里插入图片描述

其中能量函数中的参数,一部分是自己像素的贡献,另一部分是两两像素之间的贡献

在这里插入图片描述

如上图所示,能量函数鼓励在边缘产生变化,从而使得边缘更加清晰

7.空间金字塔池化 Atrous Spatial Pyramid Pooling ASPP

  • PSPNet 使用不同尺度的池化来获取不同尺度的上下文信息

  • DeepLab v2 & v3 使用不同尺度的空洞卷积达到类似的效果

在这里插入图片描述

8.DeepLab v3+

  • DeepLab v2 / v3 模型使用 ASPP 捕捉上下文特征
  • Encoder / Decoder 结构(如 UNet) 在上采样过程中融入低层次的特征图,以获得更精细的分割图
  • DeepLab v3+ 将两种思路融合,在原有模型结构上增加了一个简单的 decoder 结构

融入了encoder和decoder的**DeepLab v3+**的想法直接上图:

在这里插入图片描述

五、语义分割模型的评估

  • 分割任务和分类任务非常相似,也可以绘制出混淆矩阵,一些常见的评价指标如下所示
    • 比较预测与真值
    • 基于交并集的评估指标
      • Accuracy(类似分类任务中的召回率Recall)
      • IoU
      • Dice(类似分类任务中的F1-score)

总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/723425.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

6.深度卷积神经网络

目录 1.深度卷积神经网络ALexNet 2012AlexNetAlexNet架构AlexNet与LeNet复杂度对比总结代码实现2.使用块的网络VGG 2014 image竞猜第二VGG架构进度总结代码实现3.网络中的网络NiN全连接层的问题NiN块NiN架构总结代码实现4.含并行连结的网络(GoogLeNet)2014 image竞猜第一最好…

深信服终端安全管理系统EDR版本升级过程

EDR当前版本为3.7.12,具体参考版本详情参数。需要升级到6.0.2R1版本,该版本更改了产品名称,叫做“统一端点安全管理系统aES” 当前版本详情 版本基础信息 软件版本:3.7.12.3829 病毒库版本:20240618174426 漏洞规则库&…

LabVIEW在中国航天中的应用

​LabVIEW是一种系统设计平台及开发环境,由美国国家仪器公司(NI)开发。它在中国航天领域的应用非常广泛,涵盖了测试与测量、数据采集、控制系统设计等多个方面。以下是LabVIEW在中国航天中的几个主要应用实例: 1. 测试…

【前端项目笔记】3 用户管理

用户管理相关功能实现 涉及表单、对话框、Ajax数据请求 基本页面 用户列表开发 在router.js中导入Users.vue 解决用户列表小问题 选中(激活)子菜单后刷新不显示高亮 给二级菜单绑定单击事件,点击链接时把对应的地址保存到sessionSto…

适合企业的TTS文本转语音接口:微软TTS最新模型,发布9种更真实的AI语音

微软对Azure Al语音服务的Personal Voice功能进行了升级,引入了新的零样本学习(zero-shot)的文本到语音(TTS)模型。与初始模型相比,这些新模型提高了合成语音的自然度,并更好地模仿了提示语音中的语音特征。 微软提供了超过400种神经语音&am…

MySQL数据库的列类型

数值 tinyint 十分小的数据 1个字节 smallint 较小的数据 2个字节 mediumint 中等大小的数据 3个字节 int 标准的整数 4个字节(常用) bigint …

【送模板】5张图,帮你轻松搞懂OKR工作法

OKR是目标与关键结果法的缩写,OKR运用在工作中就是强调对业务进行逻辑思考,找到目标与关键结果之间的因果关系。这种因果关系的是否准确决定我们努力的价值。 OKR是一种高效的目标管理方法。“O”就是object,目标的意思,“kr”就…

考研计组chap4指令系统

目录 一、指令格式 155 13.操作码地址码 2.按照地址码数量 (1)零地址指令 (2)一地址指令 (3)二地址指令 (4)三地址指令 (5)四地址指令 3.指令长度 …

信号与系统概述

信号是消息的表现形式或传送载体,数学上用函数来表示。信号可以分为确定信号和随机信号、连续时间信号和离散时间信号、周期信号和非周期信号、能量信号和功率信号等。模拟信号是幅度连续的连续时间信号,而数字信号是幅度离散的离散时间信号。对于连续时…

【C#】字符串处理器

实现: 统计字符串中单词的数量。查找字符串中最长的单词,并显示其长度。将字符串中的所有单词首字母大写。将字符串中的所有单词反转。 要求: 使用面向对象的方式实现,包括至少一个类(例如 StringProcessor&#xf…

展厅设计要考虑哪些问题

1、树立醒目的标志。 展馆设计说,与众不同可以吸引更多的参观者,让参观者更容易识别和寻找,给没进过展厅的人留下印象,但不要偏离展览目标和商业形象。环顾别人的设计图,后只有一种可能。不知道应该设计什么样的图纸&a…

AI产品组件——TTS产品

语音合成TTS 序列猴子TTS,每个发音人付费标准不同,通过序列猴子开放平台使用。 微软TTS,采用信用卡后付费模式。Speech Studio,付费模式采用统一付费的形式,音效有一款女声效果逼真。 女声:晓晓&#xff…

Python8 使用结巴(jieba)分词并展示词云

Python的结巴(jieba)库是一个中文分词工具,主要用于对中文文本进行分词处理。它可以将输入的中文文本切分成一个个独立的词语,为后续的文本处理、分析、挖掘等任务提供基础支持。结巴库具有以下功能和特点: 中文分词&a…

【免费API推荐】:解锁无限创意,让您的应用更具竞争力(8)

热门高效的免费实用类API是当今开发者们追逐的宝藏。这些API提供了各种热门功能和服务,能够帮助开发者轻松地为应用程序增添实用性和吸引力。无论是人脸识别、自然语言处理、机器学习还是图像处理,这些热门高效的免费API提供了强大的功能和高效的性能&am…

图纸管理的方法、图纸管理软件

图纸管理是一个复杂且关键的过程,它涉及到图纸的创建、存储、共享、修改、审核、存档和检索等多个环节。以下是根据参考文章总结的图纸管理的具体内容和方法: 一、图纸管理的目的 1、确保图纸的准确性:通过规范的管理流程和质量控制措施&…

设计模式——观察者模式(发布/订阅模式)

观察者模式(发布/订阅模式) 是一种行为模式,允许你定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时&am…

这么多人追捧的伦敦金陷阱是什么?

我们经常说伦敦金交易是有风险的,整个伦敦金市场中随时可能会出现陷阱,如果投资者不小心掉进这些陷阱,轻则被震荡离场,丢失原来已经盈利的仓位,重则可能还会承受交易本金的亏损。下面我们就来介绍两个在伦敦金交易市场…

基于DMAIC的SMT TX插件撞伤不良改善

在快速发展的电子制造领域,SMT(表面贴装技术)已经成为电子产品组装的核心技术之一。然而,SMT TX插件撞伤不良问题一直是制约生产效率与产品质量的瓶颈。本文将基于DMAIC(定义、测量、分析、改进、控制)方法…

网格布局之网格线编号定位

网格布局之网格线编号定位 欢迎关注:xssy5431 小拾岁月 参考链接:https://mp.weixin.qq.com/s/aOO1G3r1kH-cHDXJGPzK6g 点击查看 名词解释 网格线:用与表示网格开始与结束的线。每条网格线都是从 1 开始,分为 行网格线 与 列网…

Mcgs屏幕脚本程序

目录 1.脚本程序概述1.1 脚本程序简介1.2 脚本程序编辑环境 2.脚本程序语言要素2.1 变量和常量2.2 对象2.3 事件2.4 表达式2.5 联行符2.6 运算符2.7 系统函数 3. 基本语句3.1 赋值语句3.2 条件语句3.3 循环语句3.4 跳出语句3.5 退出语句3.6 注释语句3.7 声明语句3.6 命名规则 1…