经过数小时的研究,我找不到任何关于使用对象检测 API 进行多标签预测的示例。基本上我想预测图像中每个实例的多个标签。如下图所示:
我想预测服装类别,还要预测颜色和图案等属性。
根据我的理解,我需要将每个属性的更多分类头附加到第二阶段 ROI 特征图,并对每个属性的损失求和?但是,我在对象检测代码中实现它时遇到了麻烦。有人可以给我一些关于我应该开始修改哪些功能的提示吗?谢谢。
根据性能要求和平台,一种方法可能是通过在管道中使用多个分类器来简化问题。例如,您可以使用多类对象检测器(在您的示例中为“tee”和“pant”)来捕获感兴趣的区域;然后根据边界框裁剪这些区域并将这些裁剪区域输入另一个模型,在这种情况下没有局部性要求(“颜色”和“图案”)。
对于多类对象检测指南,我可能会推荐 Tensorflow Git repo 中的 Eager Few Shot Object Detection Colab。在“Preparing data for training”单元格注释中:
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'}
}
然后基于这个输出,将这些裁剪区域输入另一个分类器。
为了mono-class detection检测教程:Rubber Ducky detector或Zombie detector。将其更改为与 multi-class 一起使用。你需要完全改变你获得
gt_classes_one_hot_tensors
的方式,需要做这些改变:
当然要更改 pipeconfig 文件的配置(如教程所示)
model_config.ssd.num_classes = num_classes
要考虑的教程(可选):
如何实现,检测learning boxes transferred multi-label (cats, dogs and zombies) .
下面的教程是multi labels with boxes,完美的scalabel:
阅读 .tfRecord 格式(如果您还没有,它会解释如何创建 它),如何编辑下载模型的pipeconfig.config, 如何保存它以及如何加载和评估它。 物体太阳能电池板探测器
另一个更长的教程,我建议将其用作对 第一个是: https://github.com/pythonlessons/TensorFlow-object-detection-tutorial (第 5 和 6 部分)
这次 TF_v2 的多标签教程很好。如何使用 TensorFlow 对象检测 API 训练您自己的对象检测器Part_1Part_2
Fantastico 训练对象检测模型,从预训练模型(坦克与战斗机)开始,最后使用 TFlite 将其部署到 Android 上。 培训链接其余检查整个github项目https://github.com/foobar167/android/blob/master/object_detection_demo/01_training_script/object_detection_demo_4.ipynb 额外的:https://github.com/PacktPublishing/Mastering-Computer-Vision-with-TensorFlow-2.0/blob/master/Chapter11/Chapter11_Tensorflow_Training_a_Object_Detector_GoogleColab_tflite_toco.ipynb
使用 TFlite 使用 TF 直到 Android:https://techzizou.com/build-android-app-for-custom-object-detection-using-tf2/
这些教程是基于TF_v1的,如果要使用TF_v2,需要特别注意
~/models/research/object_detection/model_main.py
风格的命令将它们替换为model_main_tf2.py
开始时要考虑的事项(可选):
long_x_width
的预训练模型,例如我的图像640x640resnet101_v1_640x640
可以从这里选择和下载Zoo_Models如果您正在寻找更具体的模型https://tfhub.dev/.pb
可以收集、评估和重新训练或原始.h5
仅用于评估图像。注意:我想避免使用 API 命令
model_main_tf2.py
,并使用 .fit(x.tfRecord, y.tfRecord)
但今天似乎并不容易。