关于R-CNN系列(其他模型)中可能遇到的名词解释

    xiaoxiao2022-06-27  194

    写在前面的话:文章内容来源于但不限于网络、书籍、个人心得体会等,意在总结和方便各位同行快速参考,共同学习进步,记录自己的问题。错误在所难免,有请各位批评斧正。如有侵权,烦请第一时间通知,我会立即删除相关内容,万分感谢!

    一、Selective Search for Object Recognition 

    Selective Search需要考虑的几个问题:

    1. 适应不同尺度(Capture All Scales):穷举搜索(Exhaustive Selective)通过改变窗口大小来适应物体的不同尺度,选择搜索(Selective Search)同样无法避免这个问题。算法采用了图像分割(Image Segmentation)和层次算法(Hierarchical Algorithm)有效地解决了这个问题。

    2. 多样化(Diversification):单一的策略无法应对多种类别的图像。使用颜色(color)、纹理(texture)、大小(size)等多种策略对分割好的区域进行合并。

    注意:合并应注意,颜色( RGB、灰度、HSV )、纹理(texture)、大小、吻合情况 的相似度

    3. 效率(Fast to Compute)

    二、图像分割

    图像分割(Image Segmentation)的主要目的也就是将图像(image)分割成若干个特定的、具有独特性质的区域(region),然后从中提取出感兴趣的目标(object)。

    1. 图像(image)的图(graph)表示;Spanning Tree)。       把图像中的每一个像素点看成一个顶点vi ∈ V(node或vertex),像素点之间的关系对(可以自己定义其具体关系,一般来说是指相邻关系)构成图的一条边ei ∈ E,这样就构建好了一个图 G = (V,E)。

    2. 最小生成树(Minimun )      将图像表达成图之后,将每个节点(像素点)看成单一的区域,然后进行合并。使用最小生成树方法合并像素点,然后构成一个个区域。相似的区域在一个分支(Branch)上面(有一条最边连接),大大减少了图的边数。

    三、Object proposal 转换(Warp)

    将各个Region的大小变换 到CNN 的输入尺寸

    变换,包括:

    Scale:        (B) Isotropically           各向同性地        (C)anisotropically        各向异性地

    Warp:        各向异性缩放         +16pixels

     

    四、Supervised pre-training迁移学习

    对象分类:标注好的训练数据非常多;

    目标检测:标注数据很少,如何用少量的标注数据,训练高质量的模型

    迁移学习:检测 ≈ 定位 + 分类。例如我们先对Imagenet数据集(ILSVRC 2012的数据集)进行CNN的分类预训练( pre-traing ),然后在PASCAL数据集上微调( fine-runing )。

    ILSVRC:  ImageNet Large Scale Visual Recognition Challenge (ImageNet大规模图像识别挑战赛)

    PASCAL VOC Challenge:  Pattern Analysis, Statical Modeling and Computational Learning Visual Object Classes(模式分析,统计建模,计算学习 视觉物体分类挑战赛) 

    五、CNN训练及特征提取

    1.预训练:        

    训练集: ILSVRC 2012;

    输出:1000维类别标号;

    学习率:0.01          

    提取的特征为4096维,送入一个4096->1000的全连接(fc)层进行分类

    2.调优训练        

    训练集:PASCAL VOC 2007;

    学习率:0.001        

    输入:227x227的正负样本(正:32,负:96;包括所有类别)        

    输出:21维(20类+背景);        

    同样使用上述网络,最后一层换成4096->21的全连接网络        

    正负样本的选取: IOU>0.5,标记为positive,否则标记为negative

    SVM分类器输入:4096*N或者21*N 

    六、训练SVM分类器

    1.训练特定类别的SVM分类器

    2.训练SVM的正负样本:作者同样是使用IoU阈值的方法,计算每一个region proposal与标准框的IoU,这次的阈值为0.3(实验结果),大于这个阈值的作为正样本,否则为负样本。

    3.Hard negative mining:一般来说训练一个SVM分类器,需要正负两个样本,训练集图片中作为正样本很少,但是随机产生用于训练的负样本可能远远大于正样本,这样训练出来的SVM效果并不好,所以利用Hard negative mining方法,从负样本中选取出一些有代表性的负样本,使得分类器的训练结果更好。  

               正:标注样本+IOU>0.5          

               负:不包含正样本区域

    4.输入:CNN提取的区域特征 输出:每个候选区域特征的概率输出

    七、获取每个类别的Bounding box(BBox)

    针对各个类别(N):

                   CNN生成每个Region proposal固定长度的特征向量

                   SVMs分类器计算每个Region特征向量的Score

                   每个Region(区域)的Score排序

                   NMS:选取概率最大的区域,计算与其他区域的IOU;如果IOU大于给定阈值(经验值0.3)丢弃该区域; 同样的                                    过程依次遍历所有剩余的Region。

                   用各个类指定的回归模型来细化框的位置

    八、NMS:非极大值抑制

    例如:定位一个车辆,算法就找出了若 干方框需要判别哪些矩形框是没用的。

    非极大值抑制:先假设有6个矩形框, 根据分类器分类概率做排序,从小到大 分别属于车辆的概率分别为A、B、C、 D、E、F。

    (1)从最大概率矩形框F开始,分别判断    A~E与F的重叠度IOU是否大于某个设定的阈值;

    (2)假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框F,是我们保留下来的。

    (3)从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,重叠度大于一定的阈值,那么就扔掉;并标记E是我们保留下来的第二个矩形框。

    就这样一直重复,找到所有被保留下来的矩形框。

    九、IOU交并比

    IOU表示了bounding box 与 ground truth 的重叠度,如下图所示:

    矩形框A、B的重合度IOU计算公 式:IOU=(A∩B)/(A∪B)   或  IOU=SI/(SA+SB-SI)

    考察一个候选框和当前图像上所有标定框重叠面积最大的一个。如果重叠比例大于设定阈值,则认为此候选框为此标定的类别;否则认为此候选框为背景。

    十、位置精修

    根据最后输出的feature 进一步做了regression, 采用的是之前在DPM检测中的用的Linear regression model

    例如:左图自行车的左轮, 如果我们只用rootfilter检 测出来的区域,即红色区 域,那么前轮会被切掉一 部分,但是如果能综合partfilter检测出来的bounding box就能得到更加确的bounding box如右图。 使用最小二乘(Least Squres)线性回归模型。

    十一、 回归器

     对每一类目标,使用一个线性回归器进行精修。          

    正则项 λ=10000。          

    输入:CNN网络pool5层的4096维特征          

    输出:xy方向的缩放和平移W=[x,y,w,h]。

    训练样本:        判定为本类的候选框中,和真值重叠面积大于0.6的候选框。

    其中*可以是:x,y,w,h,(x,y)是目标中心相对位置,    w,h是变换后的宽度和高度缩放比例的对数值


    最新回复(0)