IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 解读FCN模型用于语义分割 (Fully Convolutional Networks) -> 正文阅读

[人工智能]解读FCN模型用于语义分割 (Fully Convolutional Networks)

up convolutionFCN论文标题:Fully Convolutional Networks for Semantic Segmentation

代码地址:https://github.com/shelhamer/fcn.berkeleyvision.org

经典CNN由哪几部分 组成?

????????convolution, pooling, and activation functions

什么是语义分割:

给每一个像素点都分类成一个label

与图片分类的区别?——分类网络是把一整张图分成一类,而分割网络是把一张图每一个像素点都分成一类。

与目标检测区别?——相似点:都标注了物体的具体分类信息。不同点:ISS是像素级颗粒度的,需要把物体的轮廓描绘出来,用轮廓来标记物体。OD标记物体是其外切框。

? 与实例分割的区别?——如果一张照片中有多个人,对于语义分割来说,只要将所有人的像素都归为一类--人这一类Person。但是实例分割还要将不同人的像素归为不同的类,Person1,Person2,Person3。也就是说实例分割比语义分割更进一步。

学术意义:ISS语义分割是计算机视觉领域的几大核心研究之一,其他的还有图像分类Classification、目标检测Object Detection、实体分割

FCN的独特之处

(1)全卷积Fully Conv:

Fuly Conv指的是舍弃掉CNN模型的最后一层,全连接层,用1*1的卷积层替代(是吗?你确定?)。

? ? ? ? ? ? ? ? 但是我们这里做的任务,是语义分割。全连接层把图片从二维拍扁成一维,损失了spatial information。我们做语义分割是在一个二维图上做的,自然希望保留二维图的结构,希望输出的是二维分割图。所以在最后一层里面用几个卷积层替换了之前的全连接层

? ? ? ? 前面的网络用的可以是VGG,也可以是AlexNet或者GoogleNet

????????不含全连接层fully connected layer的全卷积网络,可以适应任意尺寸的输入。( 为什么可以适应不同尺寸的?原来用全连接层的为什么不能适应任意尺寸输入?)(输入图片是什么尺寸,输出图片也是什么尺寸。upsampling这个过程保证了输入输出的图片的大小是一致的)
Before
????????原有的CNN图片分类模型,最后一部分是全连接层。比如说有1000个分类的类别。CNN的最后一部分,用全连接层把图片矩阵从二维矩阵拍扁成一长条的一个向量。向量的长度为1000。向量上的每一个位置的值代表的是这张图属于这个类别的概率。数值最大的那个维度,表示这张图属于这个类别。tabby cat这个类别对应的向量上位置的的概率值最大,说明对这张图片的分类结果是tabby cat.
? ? ? ? ????????convolution这个部分,长宽是图片的长宽。向后延伸的那个,代表channel通道数,输入图片是RGB彩图,通道数为3。后面channel数越变越大。
? ? ? ? ? ? ? ? FC全连接层,是相当于把conv层的图片从二维平面降维成了一个点,后面那个长度表示的是类别数量

?CNN过程

After:?

最后一部分换成了卷积层+upsampling层。upsampling用的是新卷积层不同深度卷积层的信息进行上采样和融合得出来的。最终的输出是size和原图一样,每个像素点标记了属于哪个类别。

这里写图片描述

?

?

(2)Upsampling via Deconvolution

?反卷积的输出图像大于输入图像。

反卷积也被称为up convolution,transposed convolution转置卷积

具体实现方法:在input的这个小图片的四周用0做padding,然后拿着一个卷积核对这个padding后的大图做卷积运算,最后的feature map是 一个比输入图片大的图片,从而实现了上采样。

为什么要进行上采样?因为经过好几个卷积层以后,output的size变得很小。但是我们做语义分割是要对图片上每个像素点,赋予他们属于每个类别的概率值。也就是说我们最终的输出的size应该和输入完全一致。这个时候就通过deconv的上采样把output的size变大。(不一定对,需要再去确认

优势:反卷积结构能够输出精细的结果( 个人认为,不是这样,再去验证吧

?

(3)Skip Architecture

设计这个结构的原因

????????通过Fully Cnv和Deconv两步以后进行分割,发现分割的结果很粗糙make the output label map rough。为了优化分割结果,于是加入了skip architecture。

? ? ? ? 当卷积一层层把深度增加go deeper的时候,我们可以obtain到deep feaure。但是shallow layers有更多的空间信息spatial locational information,也就是说随着深度的增加,会有一个损失,也就是空间信息丢失掉了。为了兼顾deep feature和spatial information,因此提出来skip architecture,通过数据融合fusion来兼顾两方面的信息。

怎么做:FCN在其深处的卷积层中融入了浅层卷积的特征。根据步长的不同,FCN的上采样可以分为FCN-32s, FCN-16s, FCN-8s,分别表示 stride = 32,16,8。最后发现融合次数最多的FCN-8s效果最好。注意这是上采样,做完以后图片变大。

? ? ? ? FCN-32s分割效果最差,是因为他是最深的,因此丢失了很多location information

他这个融合就是element-wise元素级的,对应元素相加在一起。

图里面的这个2x upsampled prediction是什么意思?首先2x代表什么意思?(方格,不密集那个)是把output的size扩大两倍是吧?upsample我懂是上采样。很密的那个格子进行分割所以需要predicton,这里你为什幺进行prediction?upsampled prediction是怎么做的?

既然最后分类prediction只用最后那个黑色网格(FCN-8s),为什么前面两个黑色网格(FCN-32s和FCN-16s)也要画在下面这个图里面呢?

——确实来说,要融合出FCN-8s,我们并不需要获得FCN-32s和FCN-16s的分类结果,需要的仅仅是把pool3 pool4 pool5 通过上采样先变成大小一致,然后相加,即可。这里之所以在下面这个图里面也画了FCN-32s,FCN-16s,是因为我们要对比这三个模型的效果FCN-32s,FCN-16s,FCN-8s。既然要拿FCN-32s,FCN-16s来对比,你得说明FCN-8s之外的结果是怎么来的吧,所以这里画上去了。

结合下面的模型结构图和上面的图片分割效果图,你发现了什么?

——过对比图,我们才知道使用了skip arch,融合了深层卷积(pool5)和浅层卷积(pool 3,pool4)的FCN-8s,比只有深层信息的pool4和pool5但是没有浅层信息pool3的FCN-16s 好。这就是说明,加入浅层信息的pool3会提高分割效果。

——继续对比,融合了pool4和pool5的模型FCN-16s,比只有深层信息pool5没有浅层信息的pool4的FCN-32s 要好。再次说明了,在深层信息上面,加上一点比它浅一点的信息,会提高分割效果。

——因此我们得出,只用最深的数据效果最差,多融合一点浅层数据,模型效果会变好。

很密的格子做unsampled prediction,指的是(S1)因为卷积过很多次以后,output的size变得和原图片比小很多了,所欲先做upsample,将output的维度升高到和原图片一样大小。(2)然后在这张feature map上,用softmax做分类

32x unsampled prediction是指的上采样的卷积的步长为32步吗?卷积多次后,图片已经那么小了,你32步卷积一次,那上采样出来的图片扩大的幅度也有限啊!

2x upsampled prediction指的是什么把图片的size扩大两倍吗?

? ? ? ? 他这个数据融合fusion fuse,在这里就是通过上采样(反卷积)来实现的。一个卷积核,一次卷积运算就好像融合这个一个卷积核大小的信息。很自然的stride越小,保留的信息越多,自然能够分割好的可能性会更大。

优势:同时确保了鲁棒性和精确性。

FCN是对过去CNN模型的改良(adaption),AlexNet、VGG net、GoogLeNet这些模型都借鉴了。

FCN模型有一个skip architecture,能够结合combine (1)semantic information from
a deep, coarse layer with(2) appearance information from a shallow, fine layer

次要的东西

????????Optimization方面,使用的是SGD with momentum的方法。momentum=0.9,weight decay of 5^?4 or 2^?4。minibath size=20。下面几个模型的learning rate分别是,FCN-AlexNet, FCN-VGG16, and FCN-GoogLeNet,?10^?3, 10^?4 ,5^?5

? ? ? ? 最后还是要加一个softmax,对属于不同类别的概率进行预测

FCN的不足

(1)使用了交浅层的特征,因为fuse操作会加上较上层的pool特征值,导致高维特征不能很好得以使用(为啥不能很好得以使用?

(2)也因为使用较上层的pool特征值(为啥因为这个就导致对图片大小有所要求?),导致FCN对于图像大小变化有所要求。也就是,如果测试集图片远大于或小于训练集图片,FCN的效果就会变差

我的疑问

什么是全卷积fully conv?

什么是receptive fields视觉感受野,起什么作用?;卷积神经网络里面的filter滤波器是什么?

FCN和传统的经典CNN的区别是什么?FCN是如何改进原有模型的比如AlexNet?

什么是shift-and-stitch trick?(这篇文章没有用,应该是不重要)

反复讲的overlap,是什么和什么overlap?

为什fully convolutional computation 可以speed up training?
train for segmentation的时候,是?如何通过fine-tuning来实现?
Skip net:skips between layers, 从而实现融合fuse coarse?semantic information( coarse粗糙的,high layer information) and local, appearance information( fine精细的, low layer information.)?
——具体是怎么skip的?把final prediction layer 和 lower layers with finer strides给combine在一起,把 fine精细 layers and coarse粗糙 layers combine在一起,(但是我也不知道谁是谁)
——(目的:)Refining fully convolutional nets by fusing information from (手段)l ayers with different strides
————pooling的时候stride越大意味着可以捕捉更多的全局global信息,stride约小,保留的图片信息就越多,捕捉了更多的细节的、局部的信息。二者一结合,全局的和局部的精确信息都捕捉到了。
——为什么这样做可以把后面这些信息融合到一起了?
——FCN-32s,FCN-16s,FCN-8s,的区别是什么,这数字32 16 8代表什么意思
? ? ? ? ——FCN-8s:by fusing predictions from?pool3 with a 2 × upsampling of predictions fused from pool4 and conv7,
intersection over union为什么可以作为评估语义分割的指标?
下面这个流程图Figure3.?
——pool 3和pool 4 这个两个pooling层拿过来,对conv7卷积后的结果再进行pooling。那下一步那个36x 16x 8x是在怎么做?和前面我说的这一步有什么关系?
——没看懂具体的操作流程是什么?

在这里插入图片描述

?

什么是fine-tuning?是梯度下降,参数更新吗?还是说特指在预训练模型下的参数更新?

bilinear interpolation,双线性插值吗? 具体指的是什么?怎么操作?有什么用?
什么是端到端学习end to end,是不用做特征工程,input data 到output data吗?

术语解释

Dense Prediction:图像语义分割的目标是将图像的每个像素所属类别进行标注。因为是预测图像中的每个像素,这个任务通常被称为密集预测(dense prediction)

pixelwise像素?patchwise 图片小块

receptive fields:视觉感受野

uniform sampling:均匀采样

fine:是 “精确” 的意思,不是“良好”的意思

阅读过的文章

论文解析FCN——Semantic Segmentation的开山之作_浪子私房菜的博客-CSDN博客_fcn论文解析

深度学习语义分割(一)FCN论文解读_su扬帆启航的博客-CSDN博客_fcn论文解读

Review: FCN — Fully Convolutional Network (Semantic Segmentation)

卷积神经网络CNN(3)—— FCN(Fully Convolutional Networks)要点解释_Fate_fjh的博客-CSDN博客



?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-25 23:12:38  更:2022-09-25 23:14:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:37:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码