美文网首页深度学习之目标检测
计算机视觉面试之物体检测

计算机视觉面试之物体检测

作者: 梦无音 | 来源:发表于2018-08-29 14:49 被阅读47次

一、RCNN

RCNN去掉窗口扫描,用聚类方式,对图像进行分割分组,得到多个候选框的层次组。

1. 原始图片通过Selective Search提取候选框,约2k个。

2. 候选框缩放成固定大小。

3. 经过CNN提取特征。

4. 利用SVM进行特征向量分类。

二、Fast-RCNN

RCNN中有CNN重复计算,Fast-RCNN则去掉重复计算,并微调候选框位置。

1. 整幅图经过CNN,得到特征图。

2. 提取候选框(Selective Search)。

3. 把候选框投影到特征图上,Pooling采样成固定大小(ROI Pooling)。

4. 经过两个全连接层,分类与微调候选框的位置。

三、Faster-RCNN

Faster-RCNN用CNN来预测候选框。

1. 整幅图经过CNN得到特征图。

2. 经过核为3*3*256的卷积,每个点上预测k个anchor box是否是物体,并微调anchor box的位置。(RPN的任务就是得到它是前景还是背景以及框的位置)

3. 提取出物体框后,采用Fast RCNN同样的方式进行分类。

4. 选框与分类共用一个CNN网络。

四、YOLO

YOLO将物体框的选择和识别进行了融合,一步输出。

1. 把缩放成统一大小的图片分割成S*S的单元格。

2. 每个单元格输出B个矩形框(冗余设计),包含框的位置信息(x, y, w, h)与物体的Confidence。

3. 每个单元格再输出C个类别的条件概率P(Class|Object)。

4. 最终的输出层应有S*S*(B*5+C)个单元。(论文中,S = 7, B = 2, C = 20)

Confidence的定义:

代价函数:

λ_coord = 5, λ_noobj = 0.5

五、SSD

YOLO在7*7的框架下识别物体,遇到大量的小物体时,难以处理。

SSD则在不同层级的feature map下进行识别,能够覆盖更多的范围。

考虑一个m*n*p的feature map,每个位置采用k个default box,加上背景一共有c个类别,用3*3*p的卷积去做预测,那么每个位置输出就为k*(c+4),最后得到的输出就为k*(c+4)*m*n。

这里第一点的s_k是第k层的feature map的一个位置与原图大小的比列值,通过这个值我们可以计算出第k层的feature map的各个位置对应到原图是哪些位置,一旦对应到了原图的位置,在通过respectio ratio就能把不同大小规模的default box对应回原图的位置,从而可以在训练时计算label和在预测时做NMS。

六、R-FCN

图片分类需要兼容形变,而物体检测需要利用形变,如何平衡?R-FCN利用在CNN的最后进行位置相关的特征Pooling来解决以上两个问题。

经普通CNN后,做有 k^2(C+1) 个 channel 的卷积,生成位置相关的特征(position-sensitive score maps)。C 表示分类数,加 1 表示背景,k 表示后续要pooling 得到的大小,所以生成 k^2 倍的channel,以应对后面的空间pooling。

普通CNN后,还有一个RPN(Region Proposal Network),生成候选框。假设一个候选框大小为w*h,将它投影在位置相关的特征上,并采用average-pooling的方式生成一个 k*k*k^2(C+1) 的块(与Fast RCNN一样),再采用空间相关的pooling(k*k平面上每一个点取channel上对应的部分数据),生成 k*k*(C+1)的块,最后再做average-pooling生成 C+1 的块,最后做softmax生成分类概率。

七、Mask RCNN

Mask RCNN是何凯明基于以往的Faster RCNN架构提出的新的卷积网络,一举完成了object instance segmentation. 该方法在有效地提取目标的同时完成了高质量的语义分割。

文章的主要思路就是把原有的Faster RCNN进行扩展,添加一个分支使用现有的检测对目标进行并行预测。同时,这个网络结构比较容易实现和训练,速度5fps也算比较快点,可以很方便的应用到其他的领域,像目标检测,分割和人物关键点检测等。并且比现有的算法效果都要好。

整个网络结构:

主要贡献:(实际就是ROI Align和mask分支)

1. 强化的基础网络。通过ResNeXt-101和FPN用作特征提取网络,达到state-of-the-art的效果。

2. ROIAlign解决Misalignment的问题。

3. Loss Function。

细节描述:

1. ResNet + FPN:作者替换了再Faster RCNN中使用的VGG网络,转而使用特征表达能力更强的残差网络。另外为了挖掘多尺度信息,作者还是用了FPN网络。

(a)人工设计特征金字塔;(b)正常的CNN结构;(c)SSD风格的金字塔,但是SSD为了避免使用低层特征,放弃了浅层的feature map;(d)自然的利用了CNN层级特征的金字塔形式,同时生成在所有尺度上都具有强语义信息的特征金字塔,所以FPN设计了top-down结构和横向连接。

2. ROIAlign:

对于ROI Pooling,经历了两个量化的过程:(a)从roi proposal到feature map的映射过程。方法是[x/16],这里x是原始roi的坐标值,而方框代表四舍五入。(b)从feature map划分成7*7的bin,每个bin使用max pooling。

ROI Align layer想法很简单,就是去掉ROI Pooling过程中所有的量化过程,包括从原图proposal到最后一层feature map映射,以及把feature map划分成m*m的bin过程中的量化。

3. Loss Function:回归加分类加mask预测的损失之和。

对于mask分支和其他的分类分支一样,使用全卷积网络输出,输出了k类的mask。注意这里mask的输出使用了sigmoid函数。最后可以通过与阈值0.5作比较输出二值mask。这样避免了类间的竞争,将分类的任务交给专业的classification分支。

相关文章

  • 计算机视觉面试之物体检测

    一、RCNN RCNN去掉窗口扫描,用聚类方式,对图像进行分割分组,得到多个候选框的层次组。 1. 原始图片通过S...

  • 独家回放 | 旷视“智见AI”SpringCamp—计算机视觉之

    分享会主题 “智见AI”SpringCamp ——计算机视觉之物体检测与深度神经网络模型设计专场 分享时间 线下:...

  • (11)NMS与Soft-NMS

    (1)NMS算法介绍 物体检测是计算机视觉领域的一个经典问题,它为特定类别的物体产生检测边框并对其分类打分。传统的...

  • 计算机视觉中的物体检测方法

    本文适合刚入门物体检测的人群学习,不涉及公式推理。 目录 摘要 相比于图像分类,图像中物体检测是计算机视觉中一个更...

  • 物体检测TensorFlow Object Detection

    物体检测TensorFlow Object Detection API (一)安装 在计算机视觉任务中,区分一下图...

  • 【机器学习】目标检测(1)

    最近在看目标检测相关的内容,做个简单的整理。 1、什么是目标检测 目标检测是一种计算机视觉任务,包含“物体分类”和...

  • 目标检测YOLO v1-v5演进

    目标检测介绍 目标检测是与计算机视觉和图像处理相关的计算机技术,用于在一张图片中识别出些物体的种类,同时要求标出物...

  • 目标检测导语

    什么是目标检测? 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是计算机视觉领域的核心...

  • 3.3 集成学习

    如今用于: 适合经典算法方法的一切(但效果更好) 搜索系统(★) 计算机视觉 物体检测 流行算法: 随机森林 梯度提升

  • 学习OpenCV,看这些!

    OpenCV简介: OpenCV 是一款功能强大的跨平台计算机视觉开源库,可以用于解决人机交互、物体检测、人脸识别...

网友评论

    本文标题:计算机视觉面试之物体检测

    本文链接:https://www.haomeiwen.com/subject/gkyhwftx.html