多标签图像分类与对象检测

Multi-label image classification vs. object detection

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

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

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

由于您不需要对象定位,因此只坚持 class化。

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

但是,如果你的数据少,你需要从头开始训练(例如医学图像、奇怪的物体),那么物体检测就有点矫枉过正了,会让你处于劣势结果。

请记住,大多数对象检测网络重复使用 class化架构,并在最后一层添加了修改,以合并对象检测坐标的额外输出。这些额外的输出有一个损失函数。在训练期间,为了获得最佳损失值,为了获得更好的对象定位坐标,一些 class 化精度会受到影响。你不需要那种妥协。因此,您可以修改对象检测网络的最后一层并删除坐标的输出。

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