【CS231n】十一、计算机视觉的一些问题:分割、定位、检测

1、语义分割(Semantic Segmentation)
给图像的每一个像素(pixel)分入一个类别,每个类别有相应的语义或者标签。
分类但不区分实例(instances),比如两只重叠的猫,所有的像素都归为 cat 一类。

使用CNN来完成,结构有一些变化,如下:
【CS231n】十一、计算机视觉的一些问题:分割、定位、检测

这里需要讨论一下的不同于CNN的操作:
(1)上采样 upsampling——Unpooling 反池化
【CS231n】十一、计算机视觉的一些问题:分割、定位、检测
这样做的好处:又一次的补充了由于maxpooling损失的空间信息。

(2)Transpose Convolution(也叫deconvolution) 反卷积
input一个2*2的image,反卷积即每一个pixel乘以之前所使用的相应的filter,
【CS231n】十一、计算机视觉的一些问题:分割、定位、检测
卷积与反卷积的矩阵表示(能够看出为什么这里称为转置卷积):
【CS231n】十一、计算机视觉的一些问题:分割、定位、检测


2、Classification+Localzation 图像分类+物体定位
以AlexNet应用为例,在全连接层增加四个Box输出(x,y,w,h),方框的位置和高度宽度。
训练过程中,则需要计算两个不同的loss,称为multi-task loss(多任务损失函数),给不同的超参weights给这两个loss。(很tricky)

同样的方法也可以用在人体姿势(点位)的识别。


3、Object Detection 物体识别
在物体周围框图,并识别为类别集中的某一类。与上问题不同的是,并不能确定有多少个物体需要识别。所以不能使用输出固定个数的方框的方法。
另一个想法:对于图像的每一个区域进行判别,判别是背景还是某一种物体。问题在于 图像区域有大有小,滑过全部区域,巨大的量,通过卷积网络,就是巨大的计算量。

所以介绍一下三种基于Region 的方法。

(1)R-CNN
这里使用 Region Proposals 的方法。通过edges给出1000个可能存在物体的box。一个常见的Region Proposal算法称为 Selective Search。
有一些问题在于,给出的box具有不同的大小,而ConvNet希望输入的图像有相同的大小。所以需要将图形变形成同样的大小(warp image regions)。需要补充的是,R-CNN同样还会对之前的Box进行调整,以达到最佳的效果。同时这个方法仍然有一定的计算量。
【CS231n】十一、计算机视觉的一些问题:分割、定位、检测

(2)Fast R-CNN (减少计算量)
首先将图片通过一个ConvNet,得到的是高解析度的feature map,而后对这个feature map使用Region Proposals。接下来同样对这些大小不同的方框进行变形,这里有所不同,使用ROI pooling layer。然后通过FC层进行分类和判别。
这个结构训练和判断都非常快,在判断的阶段,Region Proposal函数的计算时间实际成了最主要的因素。于是有了下节的优化结构。
【CS231n】十一、计算机视觉的一些问题:分割、定位、检测

(3)Faster R-CNN
因为Region Proposal的计算成了瓶颈,所以我们使用神经网络去代替Region proposal算法。
【CS231n】十一、计算机视觉的一些问题:分割、定位、检测



还有不使用基于Region的方法,如YOLO(You Only Look Once)\ SSD(Single Shot Detection)

(4)SSD
想法是,不像之前独立地处理可能的region,我们想像处理回归问题一样,使用大型的ConvNet统一地进行预测。
输入一个图像,把其划分为 粗粒度 网格,如下图,分为7*7的网格。每一个网格中间,有一个box的集合,图中集合大小为3。现在我们想要预测:1、物体到box的偏移;2、分类打分,即指定分类的物体在这个box里的可能性大小。

【CS231n】十一、计算机视觉的一些问题:分割、定位、检测


4、物体分割(Instance Segmentation)
等于是 确定每一个像素点 属于哪一个物体。下面这个模型 更像之前讨论的 模型的组合。

【CS231n】十一、计算机视觉的一些问题:分割、定位、检测
可以取得非常好的结果
【CS231n】十一、计算机视觉的一些问题:分割、定位、检测


你可能感兴趣的:(【CS231n】十一、计算机视觉的一些问题:分割、定位、检测)