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

第五章 深度学习

九、图像分割

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.xdnf.cn/news/1424500.html

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

相关文章

使用TerraScan静态扫描KubernetsIaC文件

terrascan https://github.com/tenable/terrascan Terrascan 是基础架构即代码的静态代码分析器。Terrascan 允许: 将基础架构作为代码无缝扫描,以查找错误配置。监控已配置的云基础架构,以查找引入终端安全评估漂移的配置更改&#xff0…

Java面试八股之Collection和Collections的区别

Java中Collection和Collections的区别 Collection 是一个接口,位于 java.util 包中,它是 Java 集合框架的顶层接口之一,代表了一组对象的集合。Collection 接口定义了所有集合类型(如 List、Set、Queue 等)所共有的基…

每周一算法:恰好经过K条边的最短路

题目描述 牛站 给定一张由 M M M 条边构成的无向图,点的编号为 1 ∼ 1000 1\sim 1000 1∼1000 之间的整数。 求从起点 S S S 到终点 E E E 恰好经过 K K K 条边(可以重复经过)的最短路。 注意: 数据保证一定有解。 输入格式 第 1 …

AquaCrop模型运行及结果分析、代码解析;气象、土壤、作物和管理措施等数据的准备和输入;农业水资源管理

目录 专题一 模型原理与数据要求 专题二 模型数据准备 专题三 模型运行及结果分析 专题四 参数分析 专题五 源代码分析 更多应用 AquaCrop是由世界粮食及农业组织(FAO)开发的一个先进模型,旨在研究和优化农作物的水分生产效率。这个模型…

海外住宅IP适用场景

海外住宅IP是指海外互联网服务提供商分配给海外家庭的IP地址,通常长期部署在特定区域的公网中,网络连接稳定,能够快速浏览指定网页内容,请求响应成功。它的适用场景十分广泛,接下来将详细介绍哪些领域会使用海外住宅IP…

错误: 找不到或无法加载主类问题(已解决)

今天在虚拟机中安装了idea2023.2的版本,运行代码时发现错误找不到主类! 直接说结论: 我先clean了一下target,然后重新build,发现maven报错了,idea2023.2默认使用了内置的maven,然后我切换了一下…

垃圾分类管理系统java项目

文章目录 垃圾分类管理系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目(9.9¥带走) 垃圾分类管理系统 一、项目演示 垃圾分类管理系统 二、项目介绍 系统角色:管理员、用户 1、登录、注册功能…

单位个人如何向期刊投稿发表文章?

在单位担任信息宣传员一职以来,我深感肩上的责任重大。每月的对外信息宣传投稿不仅是工作的核心,更是衡量我们部门成效的重要指标。起初,我满腔热血,以为只要勤勉努力,将精心撰写的稿件投至各大报社、报纸期刊的官方邮箱,就能顺利登上版面,赢得读者的青睐。然而,现实远比理想骨…

谷歌全力反击 OpenAI:Google I/O 2024 揭晓 AI 新篇章,一场激动人心的技术盛宴

🚀 谷歌全力反击 OpenAI:Google I/O 2024 揭晓 AI 新篇章,一场激动人心的技术盛宴! 在这个人工智能的全新时代,只有谷歌能让你眼前一亮!来自全球瞩目的 Google I/O 2024 开发者大会,谷歌用一场…

54.指针

目录 一.什么是指针? 二.定义一个指针变量 三.指针变量类型 四.取地址运算符& 五.取值运算符* 六.视频教程 一.什么是指针? 口语中的指针一般指指针变量,指针变量存放的是一个地址。普通变量存放…

Nacos+GateWay 搭建微服务架构

文章目录 1.当前项目架构分析1.请求多个模块的方式1.请求renren-fast模块开发环境生产环境 2.请求sunliving-commodity模块1.使用环境变量资源路径的方式2.开发环境 dev.env.js3.生产环境 prod.env.js 3.文件上传请求 sunliving-service模块1.请求后端接口(开发环境…

上班族兼职新篇章:10大实战攻略,轻松年赚1-20万

对于众多上班族而言,如何在工作之余赚取额外收入,开启自己的第一份副业,已成为许多人心中的疑问。每个人的才能和兴趣点不尽相同,但都有机会找到适合自己的兼职方式。接下来,就让我们一起探索这10大实战攻略&#xff0…

那些年我与c++的叫板(一)--string类自实现

引子:我们学习了c中的string类,那我们能不能像以前数据结构一样自己实现string类呢?以下是cplusplus下的string类,我们参考参考! 废话不多说,直接代码实现:(注意函数之间的复用&…

20232803 2023-2024-2 《网络攻防实践》实践九报告

目录 1.实践内容2.实践过程2.1 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数2.2 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数2.3 注入一个自己制作的shellcode并运行…

从独立开发者到成为SeaTunnel社区的贡献者,我做对了哪些事儿?

个人介绍 大家好,我是闫成雨,目前是一名独立开发者。专注于数据开发、机器学习、资源调度算法和分布式系统。 GitHub ID: CheneyYin 个人主页:https://cheneyyin.github.io/ 为社区做了哪些贡献 加强了Spark引擎和Flink引擎对SeaTunnel数据…

链接表存储图(C++注释详解): 构建表 深度优先遍历 (DFS)

链接表的结构体单元: #define size 100 typedef struct node {int idx;//下一个节点的索引int wt;//权重, 也可根据实际情景存储边的信息struct node* next; }Node; Node* hd[size]; // 存储图的邻接表 链接表的的构建: int main() {int n, m;cin >> n >> m; //…

script标签以及defer和async属性

1. <script>标签 将JavaScript代码嵌入到HTML中主要方式是使用<script>元素。 使用<script>的方式有两种&#xff1a; &#xff08;1&#xff09;直接在网页中嵌入JavaScript代码&#xff1a; <script>function sayHi() {console.log("Hi"…

slugify,slug格式转换工具

目录 前言 安装 特性 基本功能 生成简单的Slug 处理特殊字符 Unicode支持 高级功能 自定义替换规则 过滤停用词 使用不同的分隔符 处理多种语言 实际应用场景 网站和博客的SEO优化 电子商务平台的产品链接 数据清洗和预处理 总结 前言 在Web开发中&#xff0c;生成易于…

在另外一个页面,让另外一个页面弹框显示操作(调佣公共的弹框)vue

大概意思是&#xff0c;登录弹框在另外一个页面中&#xff0c;而当前页面不存在&#xff0c;在当前页面中判断如果token不存在&#xff0c;就弹框出登录的弹框 最后一行 window.location.href … 如果当前用户已登录&#xff0c;则执行后续操作(注意此处&#xff0c;可不要)