所以我一直致力于物体检测,我已经看到像YOLO和Mask-RCNN这样的模型使用单一的深度模型来对物体进行分类。是否有可能使多个小型网络相对地分别识别每个对象,以提高准确性以及对速度的影响。我有点困惑。
发布于 2020-05-12 03:44:22
如果你看一下Yolo和Mask-RCNN等模型的“黑匣子”,你会意识到它们在一定程度上已经包含了关于目标检测的“多个小网络”。
实际上,Mask-RCNN大致是一个更快的RCNN,有一个额外的分支用于分割。然而,关于检测,“某处”有一个分类层,它给每个类对象一个分数(和一个回归层来估计盒子)。所有的对象类都是从一个共同的表示(网络的所有其余部分)中估计出来的,并且只有最后一层专门用于每个类。然而,重点在于,联合计算所有对象类的公共表示是有好处的,特别是因为类i的正样本通常也是类j的负样本。
YOLO (v1)的想法完全不同,但在网络的“某处”,有一堆神经元层。每个对象类都有一个层,它计算相应对象在图像区域中存在的概率。同样,层是从“公共表示”计算出来的,因此在这种意义上,它们是相当独立的“分类器”。但再一次,这些“分类器”受益于为所有类对象共同计算的表示。
老实说,这些解释都是非常近似的,以求清晰。如果你真的想了解,最好的方法是阅读the publication(s) of Yolo或that of mask R-CNN。然而,这是非常技术性的,需要很好地理解深度学习的基础知识。网上也有一些很好的教程。
这就是说,你可以修改Yolo和Mask R-CNN的架构,将更复杂的“小神经网络”放在现有层的替换中。它可能会提高性能,因为你会有更多的神经元,但训练起来也会更复杂。正如@jakub的评论所说,你也可以训练多个特定的网络,并在所有网络中添加一层供选择,但这将是一个“新”的架构,我怀疑你是否会比Yolo或Mask R-CNN在性能和计算效率之间取得更好的折衷
发布于 2021-06-20 01:26:23
您可以集成多个模型。我找到了一篇this文章,它对集成多个模型有更好的解释
https://stackoverflow.com/questions/61732510
复制相似问题