首页 > 解决方案 > (ResNet50, VGG16, etc..) 和 (RCNN, Faster RCNN, etc..) 有什么区别?

问题描述

我对 Kearas 应用程序(例如(VGG16、Xception、ResNet50 等)和(RCNN、Faster RCNN 等...))之间的区别感到困惑。因为有些地方提到 ResNet50 只是一个特征提取器而 FasterRCNN/RCN、YOLO 和 SSD 更像是“管道” Resnet 50 和 yolo 或 rcnn 有什么区别?. 在 Keras 网站上,他们将(ResNet50、VGG16、Xception 等)称为深度学习模型https://keras.rstudio.com/articles/applications.html。那么,谁能以最简单的形式告诉我这些之间的区别。

标签: machine-learningdeep-learningresnetfaster-rcnn

解决方案


您可能需要一些图像处理和计算机视觉方面的背景知识才能理解每个定义的含义。

简而言之,

VGG16、ResNet-50 等是用于图像的卷积神经网络的深层架构。

此类架构通常经过训练以将图像分类为 1000 个可能的类别中的一个类别(查看 ImageNet CLS-LOC 挑战以获取有关类别的更多信息)。

这样的架构通常会“消耗”一个大小为 224x224 的 RGB 图像,并将使用卷积层以 5 个不同的比例从中提取视觉特征(您可能需要计算机视觉/机器学习背景才能理解这句话)。图像的宽高会通过网络“缩小 2x”5 次,这样在网络的末端,宽高会比原始图像小 32x,即在我们的例子中为 7x7(注意 2^ 5 = 32)。

在原始分类网络中,然后聚合例如 7x7 的输出并用于训练最终分类器,该分类器将预测 1000 个类别中每个类别的分类分数。

但是,回到您的问题,对象检测器利用大小为 7x7(以及早期层中的 14x14、28x28)的“深度特征图”来应用不同的“头”,这些“头”经过训练可以执行除分类之外的其他任务,通常是本地化任务,因为特征图为您提供本地化信息。此类任务包括对象检测、实例分割等。

Faster R-CNN、YOLO 和 SSD 都是此类对象检测器的示例,它们可以构建在任何深度架构(在本文中通常称为“骨干”)之上。例如,您可以拥有一个基于 ResNet-50 的 SSD 对象检测器和一个基于 VGG-16 的 SSD 对象检测器。主干越好,检测器的性能通常就越好,因为它可以使用更好的视觉特征来完成它被训练完成的任务。RCNN 是一种较旧的方法,与使用深度学习训练的现代目标检测器相比,速度要慢得多,准确度也低得多。


推荐阅读