-
Notifications
You must be signed in to change notification settings - Fork 0
Lecture11 Image Segmentation, Localization, Detection
cqchu edited this page Feb 23, 2018
·
6 revisions
- Classification:输入一张图片,指出图片中主要object的所属类别
- Semantic segmentation:输入一张图片,将图片中若干个主要类别的object及背景分别染色标记(精确到像素);
- Object Detection:将图片中主要的object用bounding box标记出来,并指出所属类别;
- Instance Segmentation:对图片中每一个object进行染色,同种类别的不同个体也进行区分;
- 传统方法 - sliding window
- 具体方法:
- 对一张图片进行高密度的均采样,将得到的小的区域(fixed size)输入分类CNN中,把得到的分类结果作为这个小区域中所有像素的分类结果
- 将每个区域得到的分类结果映射回原图像,对于两个区域间的重叠像素对它们的分类scores vector进行求和,最后可能性最大的那一类作为输出
- 缺点:
- 只是节选了很小的区域,图片中的context information并没有被充分利用
- 这些小区域中很多像素是重叠的,在送入CNN计算时有很多像素被重复计算,使计算效率低下
- 这些问题造就了FCN的出现
- 具体方法:
- FCN方法 - 见链接
- 单个物体时:Classification + Localization
- 基本思路/解决模式(基于regression):将正常CNN(如AlexNet)最后得出的4096维向量分别用于Classification(class loss like softmax),及Localization(bounding box的coordinate,采用regression loss like L1/2),将这两个loss求和相加;
- 这个思路也常常被用于Pose Estimation,根据4096维feature,预测人体若干个关节点的位置,从而判断人的姿势;
- 多物体时:
- Sliding windows:
- 基础:将一张图片切割成各种各样的crop/window,送入CNN中进行分类---window的尺寸及位置该如何选择,使用不同size的window进行全局的滑动计算复杂度会很高;
- 使用Region Proposal:通过算法生成一系列可能包括对象的候选框,如Selective Search等,这些算法很多都是基于传统CV方法;
- R-CNN:使用Selective Search生成候选框,使用CNN进行分类,并对候选框的位置进行修正(Regression),很慢;
- Fast R-CNN:并不直接从原始图片中提取Region,送入ConvNet,而是先将原始图片送入ConvNet,在conv5 feature上根据ROI,提取对应feature区域进行之后的计算(避免冗余计算);
- Faster R-CNN:使用RPN,将生成ROI的task也交给神经网络来做;
- No proposals:
- YOLO/SSD等:将原图片分为7x7个grid,在每个grid上预测若干个bounding box(相对基础anchor的缩放偏移),以及这个grid所属类别的score;
- 上述两者结合:R-FCN;
- Sliding windows:
- Mask R-CNN:是将Object Detection和Semantic Segmentation结合起来,在预测出的每个bounding box(只有一个物体)中进行语义分割;
AnyWay, 很多方法间都是相互借鉴的,对于现有的方法根据自己的需要作出一些改进,新添一些分支