【2017CS231n】第十一讲:图像分割、定位、识别

一.语义分割

1.1对每个像素进行分类


    对语义分割来讲,我们希望对图像的每一个像素进行分类,而不是像分类问题一样对整个图片进行一个分类。


    语义分割不区分同类目标。两个奶牛被分到了一起。

1.2滑动窗口分类


    不止可以对每个像素分类实现语义分割,还可以使用滑动窗口进行分割。还可以将图片分成很多小块,利用图像块来进行分类。但是该方法计算复杂度较高。

1.3全连接卷积网络


    很多卷积层堆叠在一起,网络对每个像素进行分类预测给出评分。(我们需要对图像的每个像素进行标记,得到训练标签,可以使用软件工具对图像进行标记)。


    使用原始图像会使运算效率很低,所以我们会在图像内使用下采样,对特征做上采样。

1.3.1 实现上采样


    去池化。
    之前的池化是下采样,上采样做的是最近距离去池化(展开)。左边的图输入是2*2,输出是4*4,输出是输入的去池化(在输出区域中重复元素)。
    右边图是钉床函数上采样,2*2区域对应于去池化区域,在去池化输出的其他元素设为0,去池化区域的元素保持不变(就像平面的床上有钉子)。


    在许多网络中,下采样和上采样是对称的(先进行下采样再进行上采样)。

    在网络前半部分,下采样时采用最大池化,会记住区域中的哪个元素在最大池化中被使用,在网络后半部分会执行类似钉床函数的操作,将池化后剩余的元素放在池化过程中的位置(看图比较直观),其他区域填零。

卷积置换:

    卷积转置
    之前说的上采样方法都不是可学习的神经层,而是用固定的公式处理(钉床函数,近邻法,最大去池化法),不是在学习如何采样。
1.跨卷积:可学习如何下采样

    先看下传统的卷积方法,4*4的输入,3*3的卷积核,4*4的输出。输入图像的每个像素我们都做卷积。

    跨卷积:输入4*4,输出2*2区域,3*3卷积核。
    跨卷积不对每个元素都做卷积,而是每隔两个像素单位做一次,在输入中过滤器每次移动一格,输出也是每次移动一格。每次都相差两个单位。
2.转置卷积


    转置卷积取特征池左上方的输入值,用这个值乘卷积核,然后在3*3的区域内复制这些值作为输出。

    移动输入的一个单元,移动输出卷积核的两个单元。输入与卷积核运算,输出是带有权重的卷积核叠加。红色和蓝色重叠的部分叠加输出。


    如果在一维中做转置卷积,输入2*1,卷积核3*1,输出是对输入做加权,最后对输出中的感受野重叠部分进行叠加。

二.图像分类和定位



    输入一幅图像,Alex网络,现在有两个全连接层,一个是图像目标分类的预测,还有一个是向量(高度,宽度,x,y坐标)代表了目标在图像中的位置。

    训练网络时有两组损失,目标分类用softmax损失函数,边界输出损失用L2损失,评定预测边界和真实边界之间的差距。


    另一个应用就是人体姿态估计问题,实际就是分类人体,输出人体关节的位置。


    输入图片,输出14个关节的xy坐标。

三.对象识别

    在对象识别中,不确定图像中有几个对象(之前的分类问题和定位图片中只有一个目标)。所以要输出多个目标的分类预测和边界预测。 

3.1滑动窗口


    类似于图像分割中将图片分割成小块。
    将左下角的图片输入网络,进行判决预测。在分类中除了我们关心的分类,还有一个背景分类。


    但是存在问题:对象数目不确定,并且可能以任何大小比例位置出现在图像中,如果输入所有可能的分割区域,那么计算量很大, 所以实际中一般不采用。

3.2候选区域法


    首先采用一个候选区域网络将图像分割成许多候选区域,再用卷积神经网络对候选区域进行分类。这样做比穷举所有可能的位置和范围更容易。

3.2.1 R-CNN

    


    给定输入,运行区域选择网络。这些区域的尺寸大小可能不一致,在卷积网络中因为全连接层的特性我们希望所有输入尺寸一致,所以要对这些区域调整为固定尺寸,使之与下游网络输入相匹配。

    调整尺寸后输入卷积神经网络,然后使用支持向量机基于样本做分类。网络不止对区域做分类,还会对边界做修正和补偿。


3.2.2 FAST R-CNN


    不再按感兴趣区域分,而是将图片输入卷积层,得到高分辨率特征映射,针对备选区域切分图像像素,基于备选区域投影到卷积特征映射,从卷积特征映射提取属于备选区域的卷积块,而不是直接截取备选区域。

    从卷积层映射提取到的图像块的尺寸进行调整(感兴趣区域池化),然后输入到全连接层预测分类结果和边界包围盒的线性补偿。


    在反向传播阶段有一个多任务损失,在两者间做取舍。


    感兴趣区域池化与最大区域池化很类似。


    Fast R-CNN耗时在计算备选区域上了,之前使用固定方法计算备选区域,现在让网络自身去学习预测。
    在卷积层中运行整个图像,获取特征映射来表示整个高清晰度图像。分离备选区域网络工作在卷积特征上层,在网络中预测备选区域。从这些备选区域及特征映射中取出块,作为输入传至下一层。
    多任务损失及多任务训练网络,区域选择网络做两件事:1.对每个备选区域,他们是否是待识别物体;2.对包围盒进行校正。网络最后还需要做这两件事。

3.3前馈模型(YOLO/SSD)


    作为回归问题进行处理。
    将输入图像分成网格,例子中采用7*7网格,在每一个单元中有一系列边界框,对每个单元和每个基本边界框预测几种目标物体:1.预测边界框偏移,2.从而预测出边界框与目标物体位置的偏差,3.预测目标对应的分类。
    输出:7*7*(5*B+C):B个基本边界框,每个边界框对应5个值,分别对应边界框的差值和我们的置信度,C对应C类目标类别的分数。

3.4 其他



这篇论文比较了几种目标检测的方法。

3.5物体分割


    现在我们想要的是每个目标物体对应的像素是哪些,就像图片最右边的例子。语义分割和目标检测的混合。

3.6Mask R-CNN


    将图像输入卷积网络和训练好的边框标注网络,得到候选边框后,把候选框投射到卷积特征图上,接下来想做的是对每一个候选框预测出一个分割区域。
    将候选框对齐到特征后,对应的候选框就有了正确的尺寸,这样得到了两个分支,一个是预测类别分数,告诉我们候选框对应哪个分类,也预测边界框坐标;另一个分支对输入候选框的像素进行分类,确定是不是属于某个目标物体。

    Mask R-CNN是在原有的Fast R-CNN的添加。Mask R-CNN结合了所讲的所有内容,还可以做人体姿态检测。


  • 7
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值