我正在从事图像分类机器学习的工作,并成功完成了几个项目。所有项目中的图像都只属于一个类别。现在我想尝试每张图像具有多个标签的图像。我读到我需要在图像周围绘制框(边界框)进行训练。我的问题是
- 我是否需要将这些区域裁剪成单个图像,并像以前一样用于训练?
- 绘制的框仅用于裁剪吗?
- 还是我们真的要将原始图像和框坐标(左上角[X, Y],宽度和高度)输入到训练中?
任何相关的教程或材料都将不胜感激。
回答:
基本上,你需要在图像中检测属于不同类别的各种对象。这就是对象检测发挥作用的地方。
对象检测尝试为图像中的各种对象分类标签,并预测边界框的位置。
有许多对象检测算法。如果你是TensorFlow的熟练用户,你可以直接使用TensorFlow对象检测API。你可以选择所需的架构,并将注释与图像一起输入。
要标注图像(在框周围绘制边界框并单独存储它们),你可以使用LabelImg工具。
你可以参考这些博客:
你不必训练一个全新的对象检测器,可以使用现成的预训练对象检测器。TensorFlow对象检测模型可以分类80个对象。如果你需要分类的对象包含在这些对象中,那么你就得到了一个现成的模型。该模型会在你感兴趣的对象周围绘制一个边界框。
你可以根据需要裁剪这部分图像,并在其上构建分类器。