【发布时间】:2020-08-27 03:50:09
【问题描述】:
所以我很长时间以来一直致力于对象检测,我见过像 YOLO 和 Mask-RCNN 这样的模型使用单个深度模型来对对象进行分类。是否可以使多个小型网络相对地分别识别每个对象以提高准确性以及对速度的影响。我有点困惑。
【问题讨论】:
-
是的,这将被称为集成网络。
标签: machine-learning deep-learning computer-vision computation
所以我很长时间以来一直致力于对象检测,我见过像 YOLO 和 Mask-RCNN 这样的模型使用单个深度模型来对对象进行分类。是否可以使多个小型网络相对地分别识别每个对象以提高准确性以及对速度的影响。我有点困惑。
【问题讨论】:
标签: machine-learning deep-learning computer-vision computation
如果你深入研究 Yolo 和 Mask-RCNN 等模型的“黑匣子”,你会发现它们在一定程度上已经包含了“多个小型网络”,就对象检测而言。
实际上,Mask-RCNN 大致是一个 Faster-RCNN,带有一个用于分割的附加分支。然而,关于检测,“某处”有一个分类层,它为每个类对象给出一个分数(以及一个回归层来估计盒子)。所有对象类都是从一个公共表示(网络的所有其余部分)估计的,并且只有最后一层专门针对每个类。关键是,联合计算所有对象类的公共表示是有优势的,特别是因为 i 类的正样本通常也是 j 类的负样本。
YOLO (v1) 的想法完全不同,但在网络末端的“某处”,有一堆神经元层。每个对象类都有一个层,它计算图像区域中相应对象存在的概率。再一次,这些层是从“通用表示”计算出来的,因此从这个意义上说,它们是非常独立的“分类器”。但再一次,这些“分类器”受益于为所有类对象联合计算的表示。
说实话,这些解释是相当近似的,为了尽量清楚。如果你真的想了解,最好阅读the publication(s) of Yolo或that of mask R-CNN。但是,它非常技术性,需要很好地理解深度学习基础知识。网上也有一些不错的教程。
话虽如此,您可以修改 Yolo 和 Mask R-CNN 的架构,以放置更复杂的“小型神经网络”来替换现有层。它可能会提高性能,因为您将拥有更多的神经元,但训练起来也会更加复杂。正如@jakub 在 cmets 中所说,您还可以训练多个特定网络并添加一个层以在所有网络之间进行选择,但这将是一个“新”架构,我怀疑您是否会在性能和计算效率之间获得比 Yolo 更好的折衷或Mask R-CNN
【讨论】:
您可以集成多个模型。我找到了一篇this 文章,其中对集成多个模型有更好的解释
【讨论】: