这对于R-CNN,快速R-CNN,更快的R-CNN和YOLO之间的对象定位是最佳的

时间:2017-05-30 06:51:23

标签: deep-learning deeplearning4j

R-CNN,快速R-CNN,更快的R-CNN和YOLO之间的区别如下: (1)相同图像集的精度 (2)给定相同的图像大小,运行时间 (3)支持android移植

考虑这三个标准是最好的对象定位技术吗?

4 个答案:

答案 0 :(得分:5)

R-CNN是所有提到的算法的爸爸算法,它确实为研究人员提供了在其上构建更复杂和更好的算法的途径。

R-CNN,或基于区域的卷积神经网络

R-CNN包含3个简单步骤:

  • 使用称为选择性搜索的算法扫描输入图像以查找可能的对象,生成~2000区域提议
  • 在每个区域提案的基础上运行卷积神经网络(CNN)
  • 获取每个CNN的输出并将其输入a)SVM以对区域进行分类,以及b)线性回归器以收紧对象的边界框(如果存在此类对象)。

A pictorial description of R-CNN

快速R-CNN:

快速R-CNN立即跟随R-CNN。快速R-CNN通过以下几点更快更好:

  • 在提出区域之前对图像进行特征提取,因此仅在整个图像上运行一个CNN而不是2000个CNN超过2000个重叠区域
  • 用softmax图层替换SVM,从而扩展神经网络以进行预测而不是创建新模型

直观地说,删除2000转换层并使用一次卷积并在其上方制作盒子是非常有意义的。

A pictorial description of Fast R-CNN

更快的R-CNN:

快速R-CNN的一个缺点是选择性搜索速度慢,而快速R-CNN引入了一种叫做区域提议网络(RPN)的东西。

以下是RPN的工作原理:

在初始CNN的最后一层,3x3滑动窗口在特征地图上移动并将其映射到较低维度(例如256-d) 对于每个滑动窗口位置,它基于k个固定比率锚定框(默认边界框)生成多个可能的区域

每个地区提案都包含:

  • 该地区的“对象”分数和
  • 表示区域边界框的4个坐标

换句话说,我们会查看上一个特征图中的每个位置,并考虑以它为中心的k个不同的框:一个高框,一个宽框,一个大框等。对于每个框,我们输出是否或我们不认为它包含一个对象,以及该框的坐标是什么。这就是在一个滑动窗口位置看起来的样子:

Region Proposal Network

2k分数表示每个k个边界框在“对象”上的softmax概率。请注意,虽然RPN输出边界框坐标,但它不会尝试对任何潜在对象进行分类:其唯一的工作仍然是提议对象区域。如果锚箱的“对象性”得分高于某个阈值,则该框的坐标将作为区域提案传递。

一旦我们收到了我们的地区提案,我们就会将它们直接送到基本上是快速R-CNN的地方。我们添加了一个池化层,一些完全连接的层,最后是一个softmax分类层和边界框回归器。从某种意义上说,更快的R-CNN = RPN +快速R-CNN。

Faster R-CNN

YOLO:

YOLO使用单个CNN网络进行分类并使用边界框对对象进行本地化。这是YOLO的架构:

YOLO

最后你将有一个1470的张量,即7 * 7 * 30,CNN输出的结构将是:

Structure of CNN output of YOLO

1470向量输出分为三个部分,给出概率,置信度和框坐标。这三个部分中的每一个还被进一步划分为49个小区域,对应于形成原始图像的49个单元的预测。

在后处理步骤中,我们从网络中获取此1470向量输出,以生成概率高于特定阈值的框。

我希望您能够了解这些网络,回答有关这些网络性能差异的问题:

  • 在相同的数据集上:'您可以确定这些网络的性能是按照它们提到的顺序,YOLO是最好的,而R-CNN是最差的'
  • 鉴于相同的图像尺寸,运行时间:更快的R-CNN实现了更好的速度和最先进的精度。值得注意的是,虽然未来的模型在提高检测速度方面做了很多工作,但很少有模型能够以更高的优势超越更快的R-CNN。更快的R-CNN可能不是最简单或最快的物体检测方法,但它仍然是性能最佳的方法之一。然而,研究人员使用YOLO进行视频分割,到目前为止,它在视频分割方面是最好和最快的。

  • 支持Android移植:据我所知,Tensorflow有一些Android API可以移植到android但是我不确定这些网络将如何执行,甚至你能不能移植它。这再次受到硬件和data_size的影响。您能否提供硬件和尺寸,以便我能够清楚地回答。

由@A_Piro标记的youtube视频也给出了一个很好的解释。

<强> P.S。我从Joyce Xu Medium博客那里借了很多材料。

答案 1 :(得分:1)

如果您对这些算法感兴趣,您应该查看本课程,该课程将通过您命名的算法https://www.youtube.com/watch?v=GxZrEKZfW2o

PS:如果我记得哈哈,还有一个快速的YOLO!

答案 2 :(得分:0)

我已经与YOLO和FRCNN进行了大量合作。对我来说,YOLO具有最佳的准确性和速度,但是如果您要进行图像处理研究,我会建议FRCNN,因为许多以前的工作都是使用它完成的,并且您确实希望保持一致。

答案 3 :(得分:0)

对于对象检测,我正在尝试 SSD+ Mobilenet。它具有准确性和速度的平衡,因此也可以轻松地以良好的 fps 移植到 android 设备。

与更快的 rcnn 相比,它的准确度较低,但比其他算法更快。

对安卓移植也有很好的支持。