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

第五章 深度学习

九、图像分割

3. 常用模型

3.4 DeepLab 系列
3.4.1 DeepLab v1(2015)
3.4.1.1 概述

图像分割和图像分类不一样,要对图像每个像素进行精确分类。在使用CNN对图像进行卷积、池化过程中,会导致特征图尺寸大幅度下降、分辨率降低,通过低分辨率特征图上采样生成原图的像素分类信息,容易导致信息丢失,分割边界不精确。DeepLab v1采用了空洞卷积、条件随机场等技术,有效提升了分割准确率。在 Pascal VOC 2012 的测试集 IOU 上达到了 71.6%,排名第一。速度方面,在GPU设备下推理可达每秒8帧。

3.4.1.2 空洞卷积

Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积) ,是在标准的 convolution map 里注入空洞,以此来增加感受野。以下是一个空洞卷积示例图:

在这里插入图片描述

空洞卷积示例图

在空洞卷积中,通过添加空洞,在不增加参数、不进行降采样的情况下,增加感受野。空洞卷积有两种理解,一是可以理解为将卷积核扩展,如图卷积核为 3*3 但是这里将卷积核变为 5*5 即在卷积核每行每列中间加0。二是理解为在特征图上每隔1行或一列取数与 3*3 卷积核进行卷积。当不填充空洞时,dilation rate为1,当填充1时,dilation rate为2,当填充2时,dilation rate为3。如下图所示:

在这里插入图片描述

不同膨胀率的空洞卷积

空洞卷积最初的提出是为了解决图像分割的问题而提出的,常见的图像分割算法通常使用池化层和卷积层来增加感受野(Receptive Filed),同时也缩小了特征图尺寸(resolution),然后再利用上采样还原图像尺寸,特征图缩小再放大的过程造成了精度上的损失,因此需要一种操作可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样操作。

3.4.1.3 条件随机场

条件随机场(Conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。

马尔科夫随机场是具有马尔科夫特性的随机场。马尔科夫性质指的是一个随机变量序列按时间先后关系依次排开的时候,第N+1时刻的分布特性,与N时刻以前的随机变量的取值无关。拿天气来打个比方。如果我们假定天气是马尔可夫的,其意思就是我们假设今天的天气仅仅与昨天的天气存在概率上的关联,而与前天及前天以前的天气没有关系。其它如传染病和谣言的传播规律,就是具有马尔可夫性质的。

3.4.1.4 网络结构

DeepLab v1使用VGG-16作为基础模型,为了更适合图像分割任务,做出了以下修改:

  • 将最后三个全连接层(fc6, fc7, fc8)改成卷积层
  • 将最后两个池化层(pool4, pool5)步长由2改成1
  • 将最后三个卷积层(conv5_1, conv5_2, conv5_3)的dilate rate 设置为2
  • 输出层通道数改为21(20个类别,1个背景)
3.4.1.5 能量函数

在这里插入图片描述

条件随机场对分割边沿的改善效果

DeepLab v1使用了全连接条件随机场(Fully-connected Conditional Random Field)来保证分类准确和位置准确。其能量函数:

E ( x ) = ∑ i θ i ( x i ) + ∑ i j θ i j ( x i , x j ) E(x)=\sum_i \theta_i(x_i) + \sum_{ij} \theta_{ij} (x_i, x_j) E(x)=iθi(xi)+ijθij(xi,xj)

训练的目标要最小化能量函数,函数第一项:

θ i ( x i ) = − l o g P ( x i ) \theta_i(x_i) = -logP(x_i) θi(xi)=logP(xi)

第一项用来保证分类的准确率,其中 x i x_i xi表示像素的标签值, P ( x i ) P(x_i) P(xi)表示DCNN的计算结果,准确率越高P(x)越接近1,该项值越小。函数第二项:

θ i j ( x i , x j ) = μ ( x i , x j ) ∑ m = 1 K w m . k m ( f i , f j ) μ ( x i , x j ) = 1 i f x i ≠ x j , o t h e r w i s e 0 \theta_{ij}(x_i, x_j) = \mu (x_i, x_j) \sum_{m=1}^{K} w_m.k^m(f_i, f_j) \\ \mu (x_i, x_j) = 1 \ \ if \ \ x_i \ne x_j,otherwise \ 0 θij(xi,xj)=μ(xi,xj)m=1Kwm.km(fi,fj)μ(xi,xj)=1  if  xi=xjotherwise 0

其中, μ ( x i , x j ) \mu(x_i, x_j) μ(xi,xj)表示只考虑标签不相同的两个像素点, k m ( f i , f j ) k^m (f_i, f_j) km(fi,fj)为一个高斯核函数,具体表示为:

w 1 e x p ( − ∣ ∣ p i − p j ∣ ∣ 2 2 σ α 2 − ∣ ∣ I i − I j ∣ ∣ 2 2 σ β 2 ) + w 2 e x p ( − ∣ ∣ p i − p j ∣ ∣ 2 2 σ γ 2 ) w_1 \ \ exp(-\frac{||p_i - p_j||^2}{2 \sigma_{\alpha}^2}-\frac{||I_i - I_j||^2}{2 \sigma_{\beta}^2}) + w_2 \ \ exp(-\frac{||p_i - p_j||^2}{2 \sigma_{\gamma}^2}) w1  exp(2σα2∣∣pipj22σβ2∣∣IiIj2)+w2  exp(2σγ2∣∣pipj2)

此函数主要由两个像素点的位置和颜色决定,位置为主、颜色为辅。该公式第一部分由位置(p表示)、颜色共同确定(I表示),第二项由位置确定, σ α , σ β , σ γ \sigma_\alpha, \sigma_\beta, \sigma_\gamma σα,σβ,σγ控制高斯核的比例。

在这里插入图片描述

条件随机场边沿精修效果
3.4.1.6 效果
  • 自对比试验

在这里插入图片描述

左表为采用不同策略下的IOU均值,其中,MSc表示多尺度融合,CRF表示条件随机场,LargFOV表大范围视野。右表为其它模型与该模型各种策略对比。

  • 与FCN-8s和TTI-Zoomout-16的效果对比

在这里插入图片描述

从上到下依次为原图、真实标记、被对比的模型分割效果、DeepLab-CRF分割效果。

3.4.2 DeepLab v2(2017)

DeepLab v2在DeepLab v1的基础上,主要引入了ASPP(Atrous Spatial Pyramid Pooling,膨胀空间金字塔池化)策略,在给定的输入上以不同采样率的空洞卷积并行采样,相当于以多个比例捕捉图像的上下文,从而获得更好的分割性能。ASPP原理如下图所示:

在这里插入图片描述

以下是PASCAL VOC 2012数据集上不同kernel size以及不同大小的膨胀率(atrous sampling rate)的实验对比:

在这里插入图片描述

以下是PASCAL VOC 2012数据集上分割效果展示:

在这里插入图片描述

以下是使用ResNet-101在PASCAL VOC 2012数据集上的实验对比:

在这里插入图片描述

其中,MSC表示多尺度输入最大融合,COCO表示采用在MS-COCO上预训练的模型,Aug表示通过随机缩放增加数据。以下是跟其它模型的对比:

在这里插入图片描述

以下是在Cityscapes数据集上的分割效果:
在这里插入图片描述

以下是分割失败的示例:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rocketmq的顺序消息开发注意事项

1. 参考消息重试,要对 MaxReconsumeTimes进行设置。之前就是因为没有进行设置,导致了队头阻塞问题。 rokcetmq和kafka一样,当顺序消息写入的多个队列中后,如果是顺序消息,当前的队列的队头一直消费失败的时候&#x…

PCIe规格1M/4M 1553B总线适配卡

1553B是面向测试仿真应用开发的1553B总线适配卡,支持1M和4M总线速率。该产品提供1 ~ 4个双冗余1553B通道,支持单功能/全功能。产品采用高速SRAM和大容量DDR3缓存,提高了总线消息的响应性能,可实现对多通道全功能应用以更好的支持。…

只用了三天就入门了Vue3?

"真的我学Vue3,只是为了完成JAVA课设" 环境配置 使用Vue3要去先下载Node.js。 就像用Python离不开pip包管理器一样。 Node.js — Run JavaScript Everywhere (nodejs.org) 下完Node.js去学习怎么使用npm包管理器,放心你只需要学一些基础的…

React: memo

React.memo 允许你的组件在 props 没有改变的情况下跳过重新渲染。 const MemoizedComponent memo(SomeComponent, arePropsEqual?)React 通常在其父组件重新渲染时重新渲染一个组件。你可以使用 memo 创建一个组件,当它的父组件重新渲染时,只要它的新…

「ETL实战」搭建数仓,解决多源业务系统关联分析难题(定制化业务)

在大数据分析盛行的今天,关联分析作为数据挖掘和业务洞察的重要手段,受到了极大关注。然而,随着数据量的激增和源业务系统的复杂性增加,关联分析的性能问题逐渐成为了一个不可忽视的挑战。 本文将介绍借助ETL工具,如何…

Ardupilot Rpanion 4GLTE 网络性能测试 - 国内中转

Ardupilot Rpanion 4GLTE 网络性能测试 - 国内中转 1. 源由2. 视频效果2.1 整体刷新率不高2.2 网络延迟可接受2.3 带宽增加丢包明显2.4 实测效果流畅 3. 总结 1. 源由 上一次,由于ZeroTier使用了国外服务器,延迟~ 569 ms,花屏、卡顿。 本着…

谷歌Gemini时代来了!加固搜索护城河、赋能全家桶,Gemini 1.5 Pro升级至200万token

3 月中旬,谷歌宣布 Google I/O 定档北京时间 5 月 15 日凌晨 1 点。而当大会开幕时间临近,本应是讨论度最高的时候,「宿敌」OpenAI 却半路杀出,抢先一天,仅耗时 27 分钟就发布了颠覆性巨作 GPT-4o,将新一轮…

数据结构与算法-排序算法3-插入排序

目录 1.插入排序: 1.介绍: 2.动态图解 3.举例 4.小结插入排序规则 5.插入排序代码 6.运行时间 代码: 运行结果: 1.插入排序: 1.介绍: 数组中n个元素,把这n个待排序元素看成一个有序序…

虚拟化技术 在vCenter Server创建数中心、添加主机

一、实验内容 1.安装Flash 2.在vCenter Server创建数中心、添加主机 二、实验主要仪器设备及器材 1.安装有64位Windows操作系统的台式电脑或笔记本电脑,建议4C8G或以上配置 2.在Windows Server 2008 R2已安装vCenter Server 3.Adobe Flash Player 12.0.0.70.e…

Tomcat Server无法连通的调试方法1

作者:私语茶馆 1.局域网Tomcat服务不通 组网如下: 问题: Tomcat Server 服务方式启动后,无法访问,但命令行方式启动可以。IP地址都在同网段或不同网段现象都一样。 调试手段: (1)…

基于Django实现的(bert)深度学习文本相似度检测系统设计

基于Django实现的(bert)深度学习文本相似度检测系统设计 开发语言:Python 数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat、Maven 系统功能实现 登录页面 注册页面:用户账号,密码…

HyperLogLog的使用做UV统计

使用Jedis连接Redis并操作HyperLogLog import redis.clients.jedis.Jedis;public class RedisHyperLogLogExample {public static void main(String[] args) {// 连接到本地的Redis服务Jedis jedis new Jedis("localhost", 6379);String hyperLogLogKey "hll…