Python 全栈体系【四阶】(四十四)

news2024/12/23 6:35:09

第五章 深度学习

九、图像分割

3. 常用模型

3.4 DeepLab 系列
3.4.3 DeepLab v3(2017)

在DeepLab v3中,主要进行了以下改进:

  • 使用更深的网络结构,以及串联不同膨胀率的空洞卷积,来获取更多的上下文信息
  • 优化Atrous Spatial Pyramid Pooling
  • 去掉条件随机场
3.4.3.1 串联结构

在这里插入图片描述

上图演示了ResNet结构中,不使用空洞卷积(上)和使用不同膨胀率的空洞卷积(下)的差异,通过在Block3后使用不同膨胀率的空洞卷积,保证在扩大视野的情况下,保证特征图的分辨率。

3.4.3.2 并行结构

作者通过实验发现,膨胀率越大,卷积核中的有效权重越少,当膨胀率足够大时,只有卷积核最中间的权重有效,即退化成了1x1卷积核,并不能获取到全局的context信息。为了解决这个问题,作者在最后一个特征上使用了全局平均池化(global everage pooling)(包含1x1卷积核,输出256个通道,正则化,通过bilinear上采样还原到对应尺度)。修改后的ASPP结构图如下:

在这里插入图片描述

3.4.3.3 Mult-grid策略

作者考虑了multi-grid方法,即每个block中的三个卷积有各自unit rate,例如Multi Grid = (1, 2, 4),block的dilate rate=2,则block中每个卷积的实际膨胀率=2* (1, 2, 4)=(2,4,8)。

3.4.3.4 训练策略
  • 采用变化的学习率,学习率衰减策略如下(其中,power设置为0.9):

( 1 − i t e r m a x _ i t e r ) p o w e r (1 - \frac{iter}{max\_iter})^{power} (1max_iteriter)power

  • 裁剪。在训练和测试期间,在PASCAL VOC 2012数据集上采用的裁剪尺寸为513,以保证更大的膨胀率有效。
  • Batch Normalization。先在增强数据集上output stride = 16(输入图像与输出特征大小的比例),batch size=16,BN参数衰减为0.9997,训练30k个iter。之后在官方PASCAL VOC 2012的trainval集上冻结BN参数, output stride = 8,batch size=8,训练30k个iter。
  • 采用上采样真值计算Loss。DeepLabv1/v2中都是下采样的真值来计算loss,这样会让细节标记产生损失,本模型使用上采样最后的输出结果计算。
  • 数据随机处理。在训练阶段,对输入的图像进行随机缩放(缩放率在0.5-2.0之间),并随机执行左右翻转。
3.4.3.5 效果
  • ResNet-50和ResNet-101结构比较,更多的级联采样能获得 更高的性能
    在这里插入图片描述

  • 各种优化测略效果实验
    在这里插入图片描述
    其中,MG表示Multi-grid,ASPP 表示Atrous spatial pyramid pooling ,OS表示output stride ,MS表示Multiscale inputs during test ,Flip表示镜像增强,COCO表示MS-COCO 预训练模型。

  • 其它模型对比(PASCAL VOC 2012 测试集)
    在这里插入图片描述

  • 分割效果展示
    在这里插入图片描述

3.4.4 DeepLab v3+
3.4.4.1 深度可分离卷积

采用深度可分离卷积,大幅度降低参数数量。

在这里插入图片描述

普通卷积。对一个三通道图像,采用4个3*3*3的卷积核,获得4个特征图,总参数量为4 × 3 × 3 × 3 = 108

在这里插入图片描述

深度可分离卷积第一步

在这里插入图片描述

深度可分离卷积第二步

深度可分离卷积分为两步:第一步逐通道卷积(参数数量3 × 3 × 3 = 27),第二步逐点卷积(参数数量1 × 1 × 3 × 4 = 12),输出4个特征图,共39个参数。

3.4.4.2 网络结构

在这里插入图片描述

  • Encoder:同DeepLabv3。

  • Decoder:先把encoder的结果上采样4倍,然后与resnet中下采样前的Conv2特征进行concat融合,再进行3*3卷积,最后上采样4倍得到输出结果。

  • 融合低层次信息前,先进行1*1卷积,目的是减少通道数,进行降维。

  • 主干网部分:采用更深的Xception网络,所有max pooling结构为stride=2的深度可卷积代替;每个3*3的depthwise卷积都跟BN和Relu。改进后的主干网结构如下:

在这里插入图片描述

3.4.4.3 结果
  • 与其它模型的对比

在这里插入图片描述

  • 在Cityspaces数据集上实验结果如下:

在这里插入图片描述

  • 分割效果展示(最后一行是失败的分割)

在这里插入图片描述

3.5 其它模型

在这里插入图片描述

4. 数据集

4.1 VOC2012

Pascal VOC 2012:有 20 类目标,这些目标包括人类、机动车类以及其他类,可用于目标类别或背景的分割。

4.2 MSCOCO

是一个新的图像识别、分割和图像语义数据集,是一个大规模的图像识别、分割、标注数据集。它可以用于多种竞赛,与本领域最相关的是检测部分,因为其一部分是致力于解决分割问题的。该竞赛包含了超过80个物体类别。

4.3 Cityscapes

50 个城市的城市场景语义理解数据集,适用于汽车自动驾驶的训练数据集,包括19种都市街道场景:road、side-walk、building、wal、fence、pole、traficlight、trafic sign、vegetation、terain、sky、person、rider、car、truck、bus、train、motorcycle 和 bicycle。该数据库中用于训练和校验的精细标注的图片数量为3475,同时也包含了 2 万张粗糙的标记图片。

4.4 Pascal Context

有 400 多类的室内和室外场景。

4.5 Stanford Background Dataset

至少有一个前景物体的一组户外场景。

5. 图像分割标注工具

labelme
  • 安装

    pip3 install labelme
    
  • 运行

    labelme
    
  • 运行界面

在这里插入图片描述

6. 代码实现

见专栏 -> 全栈资料包 -> 资源包/03_dl/DeepLab3_plus.zip

7. 附录:术语表

英文简称英文全称中文名称
Semantic Segmentation语义分割
Instance Segmentation实例分割
Panoptic Segmentation全景分割
ASPPAstrous Spatial Pyramid Pooling空洞金字塔池化
FOVField of View视野
CRFFully-connected Conditional Random Field全连接条件随机场
DSCDepthwise Separable Convolution深度可分离卷积

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用管道通信(pipe)测量进程间的上下文切换(context switch)开销

利用管道通信(pipe)测量进程间的上下文切换(context switch)开销 《https://pages.cs.wisc.edu/~remzi/OSTEP/cpu-mechanisms.pdf》 Measuring the cost of a context switch is a little trickier. The lmbench benchmark does so by running two processes on a single CPU…

【LabVIEW FPGA入门】NI 环境安装教程

注意:安装软件之前关闭杀毒软件,避免安装时损坏,安装完成在使用杀毒软件。 步骤1:判断自己是否需要LabVIEW 编程。 下面这几种情况可以调过安装LabVIEW: 不需要LabVIEW或其他语言编程,直接在MAX或仪器软面板…

短视频素材该去哪里找?分享8个短视频剪辑必备的素材大全

在短视频创作与运营中,素材的找寻常常成为创作者的最头疼的事,因为它既要求不侵犯版权,又追求内容的优质性。然而,今天我要为大家揭晓一些剪辑短视频素材库的宝藏网站,它们将成为你创作旅程中的得力帮手,让…

动态手势识别(VGG11)

学校的大作业要做一个视频图像处理相关的,就做了动态手势识别 VGG代码 import torch import torch.nn as nnclass VGG_11_3D(nn.Module):def __init__(self, num_classes, pretrainedFalse):super(VGG_11_3D, self).__init__()self.conv1 nn.Conv3d(3, 64, kernel…

猫狗分类识别①将文件夹中图像统一转化为某一固定格式

一、 导入库 pip install Image 二、确保库中存在Image库,可以在Terminal或控制台中查看 pip list 三、图像后缀处理 import os from PIL import Image def convert_to_png(input_folder, output_folder):if not os.path.exists(output_folder):os.makedirs(outp…

虚拟机安装麒麟系统

官网:https://www.kylinos.cn/ 系统:银河麒麟高级服务器操作系统V10(Kylin-Server-10-8.2) 安装介质:虚拟机 兼容版下载地址: https://distro-images.kylinos.cn:8802/web_pungi/download/share/phHF6x7rta…

一物一码数字化营销进军调味品行业,五丰黎红“星厨俱乐部”火啦!

近日,由五丰黎红联合纳宝科技精心打造的小程序“星厨俱乐部”火啦!一经上线就吸引了大量用户注册和参与,可以说取得了非常成功的市场反馈,那究竟是一个什么样的小程序,竟然有这么大的吸引力呢? 介绍小程序之…

【Mysql数据库进阶02】第一范式~第四范式 Normal Form

第一范式~第四范式Normal Form 0 引言1 第一范式2 第二范式3 第三范式4 BC范式5 第四范式总结 0 引言 因为软考,我又重新拾起了数据库,那么到底如何去判断它属于第几范式呢 1 第一范式 设R是一个关系模式,R属于第一范式当且仅当R中每一个…

P8805 [蓝桥杯 2022 国 B] 机房

P8805 [蓝桥杯 2022 国 B] 机房 分析 是一道lca题目,可以直接套模板 前缀和处理点权 具体思路: 1.n台电脑用n-1条网线相连,任意两个节点之间有且仅有一条路径(拆分成各自到公共祖先节点的路径——lca);…

MLP的代替:KAN

受柯尔莫哥洛夫-阿诺德表示定理的启发,作者提出柯尔莫哥洛夫-阿诺德网络(KAN)作为多层感知器(MLP)有前途的替代品。MLP 在节点(“神经元”)上具有固定的激活函数,而 KAN 在边&#x…

SAP CS07复制BOM简介

在比较大型的集团公司中会应用到这样一个场景,所有的BOM都是由总部研发统一管控,然后在下发到下属的工厂进行生产,当发生变更的时候BOM也是会随之进行变更。 同样的在相同的两家工厂中,使用的是一套的设计方案,并且当物料发起变更的时候BOM也要随之进行变更处理。 在对BO…

Linux程序开发(一):Linux基础入门安装和实操手册

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

C语言之旅:自定义类型(联合和枚举)

目录 一.联合体 1.1 联合体的声明 1.2 联合体的使用 1.3 为什么输出 4呢? 1.4 相同成员的结构体和联合体对比 1.5 联合体大小对比 1.6使用联合体判断大小端 二.枚举类型 2.1枚举类型的例举: 2.2枚举类型的优点 2.3 枚举类型的使用 在上篇文章中…

如何利用命令提示符列出文件?这里提供了几个实例供你参考

序言 什么命令可以用来列出目录中的文件?如何在命令提示符Windows 10/11中列出文件?很多人对这些问题感到困惑。在这篇文章中,我们详细解释了命令提示符列出文件的主题。 CMD(命令提示符)是一个功能强大的Windows内置…

Python学习之路 | Python基础语法(二)

Python3 面向对象 封装、继承、多态。 基础 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中…

与禹老师学前端vue3学习汇总

24.5.15: 创建Vue3工程 1.确定自己电脑有没有nodejs环境,在cmd中输入node,如果出现Node.js的版本号说明已经有这个环境了,否则搜索Node.js安装 2.先在D盘创建一个文件夹Vue3_Study,然后在这个空文件夹中右键选择终端…

【069】基于SpringBoot+Vue实现的企业资产管理系统

系统介绍 基于SpringBootVue实现的企业资产管理系统管理员功能有个人中心,用户管理,资产分类管理,资产信息管理,资产借出管理,资产归还管理,资产维修管理。用户可以对资产进行借出和归还操作。因而具有一定…

Git系列:Git Switch 高效使用技巧

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

实时网络监控 - 一目了然网络状况

网络问题排查一直是IT管理员头痛的问题。随着网络规模的不断扩大和业务复杂度的提升,如何快速定位和解决网络故障变得尤为关键。本文详细介绍了一款名为 AnaTraf 的网络流量分析工具,它能提供全流量回溯分析、实时网络监控、性能分析等功能,助力企业快速诊断和解决各…

每日两题 / 236. 二叉树的最近公共祖先 124. 二叉树中的最大路径和(LeetCode热题100)

236. 二叉树的最近公共祖先 - 力扣(LeetCode) dfs统计根节点到p,q节点的路径,两条路径中最后一个相同节点就是公共祖先 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* …