【物体检测】R-CNN家族

7 篇文章 0 订阅
4 篇文章 0 订阅
目标检测评测指标

mAp(Mean Average Precision)
true prediction: IoU>threshold I o U > t h r e s h o l d & ypred=y y p r e d = y 而且,多个类似的预测,只取一个,其他认为是false。即对一张图的同一个物体,假设有5个预测的IoU > threshold, 且 ypred=ygroudtruth y p r e d = y g r o u d t r u t h ,我们则认为有1个true + 4个false

Recall: TPTP+FN T P T P + F N

理解R-CNN

这里写图片描述

  • 输入:图像
  • 输出:图像中每个物体的边界框(四个坐标?两个)和边框内物体的类别

R-CNN是最早的结合CNN的目标检测框架之一,当时在PASCAL, ILSVR上的评测效果达到最高。其主要思想就是判断哪些区域可能存在物体,再判断这些区域包含了那个物体。步骤如图:

  1. 生成2k个可能包含物体的边框
  2. warp图片至统一大小,训练CNN(fine-runing),然后用CNN提取fixed-size的特征
  3. 用Linear SVM对所有特征进行分类
  4. 回归模型生成边框

一些需要明确的问题:
1. 如何生成边框? Selective search《Efficient 》
2. 对2k个区域,我们截取图片并resize至227x227大小(AlexNet的输入图片大小)。然后使用在大数据集(ImageNet 或VOC2007)下pre-trained的模型,进行fine-tuning,然后提取得到4096(6x6x256)维的特征。

问:怎么构建数据集用于fine-tune CNN呢?
X:每个propsal区域的图像 fixed size(227x227)
Y:每个propsal区域,我们选和它overlap最大,且IoU>0.5的GT区域的标签作为label,这些被我们成为positive example。其他proposal都被标记为背景,是negtive examples。它们组成的数据集将被用于fine-tune CNNs

3. 存储所有上一阶段的特征,训练linear svm分类器。

问:怎么构建数据集用于训练SVM呢?
X:CNN features。
Y: 对每个类,只取GT的bbx作为positive example,取IoU<0.3的为negtive example,剩下的舍弃。
问:为什么不直接用fine-tuned CNN的最后一层softmax?
实验证明再次使用SVM效果更好。原因可能是fine_tuning的时候样本数量太少,我们通过‘jittered’增加30倍。fine-tuned的时候使用不是严格的GT,训练SVM的时候是。

4. 如何最后确定边框(class-specific bounding-box regression)

  • P=(px,py,pw,ph) P = ( p x , p y , p w , p h ) 表示一个bbx,前两个是p的坐标,后两个是bbx的宽和高。用 G=(Gx,Gy,Gw,Gh) G = ( G x , G y , G w , G h ) 表示真实值的bbx信息。我们希望学习一个 PG P → G 线性映射,或者说回归。
  • 我们只选有效的P用于训练bbx。有效的定义:

    - 与GT的IoU>threshold = 0.6
    - 如果对一个GT有多个overlap的pred,取IoU最大的一个
    - 其他的不选
    
理解Fast R-CNN
理解Faster R-CNN
理解Mask R-CNN(semantic segmentation)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值