【问题标题】:Multi-label image classification vs. object detection多标签图像分类与对象检测
【发布时间】:2021-02-23 16:57:08
【问题描述】:

对于我的下一个基于 TF2 的计算机视觉项目,我需要将图像分类为一组预定义的类。然而,不同类别的多个对象可以出现在一张这样的图像上。这听起来像是一个对象检测任务,所以我想我可以去做。

但是:我不需要知道每个对象在图像上的位置,我只需要知道图像上可见的对象类别即可。

现在我在考虑我应该走哪条路。我对解决方案的高精度/质量特别感兴趣。所以我更喜欢能带来更好结果的方法。因此,根据您的经验,即使我不需要知道检测到的对象在图像上的位置,我还是应该选择对象检测器,还是应该构建一个可以输出所有类别的图像分类器位于图像上?这甚至是一种选择,“正常”分类器可以输出多个类吗?

【问题讨论】:

  • 这既不是多类也不是对象检测。这是多标签分类。如果要检测图像中的对象,则需要在其周围绘制边界框,这对您的问题完全没有必要。 Here is an example
  • 是的,有可能。这就是字面意义上的多类多标签检测,你可以找到类似的问题here

标签: tensorflow deep-learning object-detection image-classification


【解决方案1】:

由于您不需要对象定位,所以只坚持分类。

虽然您会因为它的可重用性而倾向于使用标准的现成的多类多标签对象检测网络,但要意识到您要求模型做更多的事情。如果您有大量数据 - 没问题。或者,如果您的对象与 ImageNet/COCO 等中使用的对象相似,您可以简单地使用标准的现成对象检测架构并对您的数据集进行微调。

但是,如果您的数据较少并且需要从头开始训练(例如医学图像、奇怪的物体),那么物体检测将是多余的,并且会给您带来较差的结果。

请记住,大多数对象检测网络会重新循环分类架构,并在最后一层添加修改,以合并对象检测坐标的额外输出。有一个与这些额外输出相关的损失函数。在训练过程中,为了获得最佳损失值,为了获得更好的目标定位坐标,会牺牲一些分类精度。你不需要那种妥协。因此,您可以修改目标检测网络的最后一层并删除坐标的输出。

同样,只有当您拥有较少的数据并且您确实需要从头开始训练时,所有这些麻烦都是值得的。

【讨论】:

    猜你喜欢
    • 2021-10-02
    • 2020-03-07
    • 2021-02-07
    • 2018-12-13
    • 2019-03-25
    • 1970-01-01
    • 2021-09-23
    • 2020-11-12
    • 2018-05-26
    相关资源
    最近更新 更多