【本学期选修国科大高伟老师的计算机视觉课程,本人方向也是cv,因此想通过博客方式记录课程中比较重要的点,巩固并且进行一些扩展学习】
【本章节内容针对图像分割进行讲解】
因为上篇已经介绍了早期的图像分割方法和基于特定理论的方法,
这章节我将详细介绍基于深度神经网络的图像分割 :FCN、SegNet、R-CNN
首先我们先介绍相应的基础内容:
一般视觉方面的用途包括分割、分类等等,如下图
【左图只考虑像素来进行分类,右图对多个对象进行分类,并且设置不同的方框来划分】
语义分割思想:滑动窗口
但是问题也极其明显,在对全图每个窗口都必须进行CNN卷积,这个操作量无疑是很大,不高效
所以引入了全卷积网络
其中H和W表示图片的高和宽,C表示分类数量,即Predictions这边的分类颜色数量。
但是同样存在两个问题:
1.有效的接受域大小与转换层数成线性关系,即层数越多一般精度越高
2.在高分辨率图像上的卷积是昂贵的
在改进过程就引入了下采样(Downsampling)和上采样(Upsampling)
下采样原理:对于一幅图像I尺寸为M*N,对其进行s倍下采样,即得到(M/s)*(N/s)尺寸的得分辨率图像,当然s应该是M和N的公约数才行,如果考虑的是矩阵形式的图像,就是把原始图像s*s窗口内的图像变成一个像素,这个像素点的值就是窗口内所有像素的均值:
上采样原理:图像放大几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。
【双线性插值】
1.Fully convolutional networks(FCN)
【Long, J., Shelhamer, E., and Darrell, T. Fully convolutional networks for semantic segmentation, CVPR, 2015】
分类和分割的区别就在于最后面有无全连接
【上为分类,下为分割】
流程:先进行三次卷积,最后通过上采样将大小还原
【Fully convolutional流程】
(1)FCN-32s过程
对conv7的特征图进行上采样,使它扩大32倍。
(2)FCN-16s过程
由于conv7的输出维度是等于pool5的,而pool5的输出维度又是pool4输出的二分之一,因此现将conv7上采样扩大2倍,然后和pool4的输出进行融合,最后对融合之后的上采样扩大16倍,得到与原始图像相同的大小。
(3)FCN-8s过程
同上理,由于conv7的输出尺寸是pool3的输出尺寸的四分之一,pool4的输出又是pool3的二分之一,所以先将conv7的输出上采样4倍,然后将pool4的输出上采样2倍,得到和pool3一样的输出大小,最后将三个融合起来,再进行上采样8倍,得到和输入图像一样的大小。
【摘录于【个人整理】一文看尽全卷积网络FCN设计架构以及设计思想_LoveMIss-Y的博客-CSDN博客_fcn架构】
【FCN实验结果】
2.SegNet
【Badrinarayanan V , Kendall A , Cipolla R . SegNet: A Deep Convolutional Encoder-Decoder Architecture for Scene Segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017】
在SegNet中的Pooling与其他Pooling多了一个index功能(该文章亮点之一)
即:在做pooling(比如max)时记住选出该权值的位置,在Upsamping层中可以得到在Pooling中相对Pooling filter的位置。
在目标检测过程中,我们即需要知道其是什么,还需要找到相对应的位置,画出所需要的框框
但问题所在是一幅图一般不单单只有一个物体 【物体检测过程】
![](https://i-blog.csdnimg.cn/blog_migrate/7f57311d8193ffb934a91dd1bdb6e886.png)
3.R-CNN: Region-Based CNN
bbox 的值其实就是物体方框的位置,预测它就是回归问题,而不是分类问题。
class是对object的分类
过程如下:
1.生成多个候选区域
2.将每个候选区域调整到224*224,并且独立让CNN预测分类数值和Bbox变换
3.使用这些分数去选择区域的子集(这里有很多选择:阈值、背景,还是每个类别? 或采取每张图片的前 K 个提案?)
4.与真实框比较
1.选择下一个得分最高的框
2.消除低分框 IoU > 阈值(例如 0.7)
3. 如果还有任何方框,请转到 1
4. Fast R-CNN
过程如下:
1.先做卷积得到图像特征
2.在进行区域推荐
3.调整区域到统一大小,利用CNN再一次进行卷积
4.class与Bbox
Fast-R CNN与RCNN比较
5.Faster R-CNN: Learnable Region Proposals :
针对区域(比如是不是推荐框两类)进行推荐和学习