tensorflow的对象检测API支持多类多标签检测吗?

xzlaal3s  于 2023-01-31  发布在  其他
关注(0)|答案(2)|浏览(137)

经过几个小时的研究,我没有找到任何例子,多标签预测与对象检测API。基本上,我想预测一个图像中的每个示例多个标签。如下图所示:

我想预测服装的类别,还包括颜色和图案等属性。
根据我的理解,我需要为第二阶段ROI特征图的每个属性附加更多的分类头,并对每个属性的损失进行求和?然而,我在对象检测代码中实现这一点时遇到了麻烦。谁能给予我一些提示,告诉我应该开始修改哪些函数?谢谢。

2w3rbyxf

2w3rbyxf1#

根据性能要求和平台,一种方法可能是通过在管道中使用多个分类器来简化问题。例如,您可能使用多类对象检测器(在您的示例中为“tee”和“pant”)来捕获感兴趣的区域;然后基于边界框裁剪那些区域,并将那些裁剪的区域馈送到另一个模型中,在这种情况下,该模型没有局部性要求(“颜色”和“图案”)。
对于多类对象检测指导,我建议使用Tensorflow Git repo中的 Eager Few Shot Object Detection Colab。在“* 准备训练数据 *”单元格中,请注意:

num_classes = 1

category_index = {duck_class_id: {'id': duck_class_id, 'name': 'rubber_ducky'}}

更新此值将启用多类检测,而无需更改模型。例如,以下代码将创建两个类:

num_classes = 2

category_index = {
    1: {'id': 1, 
        'name': 'tee'},
    2: {'id': 2, 
        'name': 'pant'}
}

然后基于这个输出,将这些裁剪区域馈送到另一个分类器。

v7pvogib

v7pvogib2#

带盒子的迁移学习教程非常罕见,我不明白为什么。开始,我建议忘记神话般的Rubber Ducky数据鸭盒子教程和Zombie detector。这两个教程是一个单声道标签盒子**系统的奇妙。( 为什么要将形状作为标签的GT,如果是单声道标签,这是有意义的,但在多声道标签中,这个 * shape=[gt_box_np.shape[0]], dtype=np.int32) - label_id_offset * 是不可能使用的。)
如何实现,检测
学习盒转移多标签**(猫,狗和僵尸),你需要另一种相反的方法。
下面的教程是多标签与框,它是完全可伸缩的:

这些教程基于TF_v1,如果要使用TF_v2,则需要在~/models/research/object_detection/model_main.py样式命令中特别注意将其替换为model_main_tf2.py

要考虑的事项(可选):

  • 检查大多数图像的大小,并选择具有类似long_x_width的预训练模型,例如,对于我的图像,可以选择640x640 resnet101_v1_640x640并从此处下载https://tfhub.dev/
  • 使用一个注解工具,可以方便地转移到tfRecord。COCO格式可以方便地转移到tfRecord,检查您的格式转移
  • 使用一些图像增强(可选)https://www.tensorflow.org/tutorials/images/data_augmentation?hl=es-419#flip_an_image
  • TF模型可以通过2种方式保存,.pb可以收集、评估和重新训练,或者原始.h5仅用于评估图像。

注意:我想避免使用API命令model_main_tf2.py,而使用.fit(x.tfRecord, y.tfRecord),但现在似乎不太可能。

相关问题