Object detection is to localize each object as a bounding box with a category label
二阶段检测:1、对输入图像进行获取特征、判断是否存在东西 2、存在的东西的话,进行roi (region of interest)池化,进行后续的分类与回归
典型的网络有:faster R-cnn image pyramid mask-R-cnn cascade R-cnn SNIP
基于二阶段的思想,去除冗余的思想,直接认为每个区域都有东西,进行检测,这样就形成了一阶段的检测,典型的网络有:SSD YOULOV2 DSOD DSSSD RETINANET REFINEDET
two-stage detector
Faster R-CNN [Girshick et al. CVPR’14], Image Pyramid [He et al. ECCV’14], Mask R-CNN [He et al. ICCV’17], Cascade R-CNN [Cai & Vasconcelos, CVPR’18], SNIP [Singh & Davis, CVPR’18]on
one-stage detector
SSD [Liu et al. ECCV’16], YOLOv2 [Redmon & Farhadi, CVPR’17], DSOD [Shen et al. ICCV’17], DSSD [Fu et al. arXiv’17], RetinaNet [Lin et al. ICCV’17], RefineDet [Zhang et al. CVPR’18]
1、faster r-cnn
知识点 一、ROI Pooling
对一张640*480*3 的RGB图片进行卷积,产生20*15 深度为512的feature map ,然后进行 提取 ROI (感兴趣区域)7*7 深度为512的feature map ,通过一个全连接层输入 7*7 * 512 ,完成 ROI 池化的过程。
知识点二、9 anchor boxes per location
三个点 分别使用不同的比例 1:1 1:2 2:1 进行,框着,对图片大小为600*800进行128*128,256*256,512*512的框进行,使用步长16,产生1989个位置,然后生成17901个boxes 去处理。对256层的特征图 提取的9个anchor 输入到 RPN 区域生成网络,产生类别分数与预测的bounding box。
知识点三、区域生成网络的过程:分类是否存在物体,回归bounding box的位置
在feature map,滑动窗口提供 anchor的位置信息,box 回归提供最终的定位
总体框架:
在最后的卷积积层后面加入 区域生成网络,训练的区域生成网络可以直接的产品区域,无需外部的区域提出,在区域生成网络之后,使用roi 池化和一个upstream 分离器 一个bounding box回归
在此过程中,产生了四个loss:
1、rpn 分类是否存在物体 2、rpn 回归box的坐标 3、最终的物体识别分数 4、最终的box的坐标
2、single shout detector SSD
ssd 的特点:
(1)、基于feature map的不同,在每个位置 使用默认的 box 进行评估
(2)、对于每个默认的box,我们对于所有类别预测,预测出 形状的偏移与置信度
(3)、使用了3*3 的卷积核
(4)、使用不同尺度的feature map 做预测
ssd 的训练;
(1)、训练阶段,首先匹配这些默认的boxes 与 标准的ground truth 。两个默认的boxes 分布是猫狗,其别分类为正样本与负样本
(2)、这个model的损失由 bounding boxes 的定位损失和置信度损失 两个组成
3.yolo (you only look once)
基于网格的预测的神经网络 直接从一整张图片,预测bounding box与类的可能性
把一张图片分成S*S的网格,如果物体的中心在网格中,这个格子就负责探测物体(这个格子被称为正样本postive)
每个网格预测bounding box 和 置信度,同时也预测类的可能性
回归:对于每个postive的位置,这个网络进行位置和范围的回归预测,在yolo v2,这些预测涉及到位置和anchor的大小 产生更好的性能
类别可能性预测:在postive 条件下,在box中的物体进行类别预测,训练作为置信度
网络的输出分为三个部分:坐标、置信度、类别的可能性 三个部分组成的。
损失函数:如果物体在指定的网格内部,则只累积类别错误,如果这个预测 能涉及到 标准box,则只累加边界坐标错误
欢迎大家讨论留言
语义分割下一篇