我正在尝试使用Tensorflow对象检测API来识别吉尼斯徽标。该过程类似于此处显示的过程-https://towardsdatascience.com/building-a-toy-detector-with-tensorflow-object-detection-api-63c0fdf2ac95。
我已经准备了100幅训练图像,我使用增强来获得大约5000幅训练图像。 (使用Imgaug)。在张量板上进行训练时,我看到了一条看起来不错的学习曲线,损失了<0.1,但是当我导出并测试该图时,我得到了很多误报和非常不准确的结果。我正在尝试找出原因。
张量板性能图
请注意,为了自动标记图像,我将原始的100个标记整齐地裁剪在徽标周围,然后以编程方式将其放置在随机背景图像上,并带有边框。示例-
所有训练图像均为800x600,但实际的边界框和徽标会小得多。
这是同一张图片的xml注释文件-
<?xml version="1.0" encoding="utf-8"?>
<annotation>
<folder>images</folder>
<filename>57.png</filename>
<path>model\images\57.png</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>800</width>
<height>600</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>guinness</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>225</xmin>
<ymin>329</ymin>
<xmax>516</xmax>
<ymax>466</ymax>
</bndbox>
</object>
</annotation>
有人知道为什么张量流会正确地对测试图像进行分类,但是当我在真实世界的图像上进行测试时,检测结果也不准确吗?欢迎提供任何建议,并随时要求更多信息。
答案 0 :(得分:0)
思想夫妇
您的测试图像是否也尺寸为800 * 600?
您可能想使用配置文件中的image_resizer值
答案 1 :(得分:0)
最终,我放弃了将徽标图像放置在随机背景上的方法,而是手动对其进行了标记,然后使用图像增强来增加训练集的大小。这似乎大大改善了我的结果。我认为这与上下文准确的背景有关,实际上在培训中非常重要。
希望这对某些人有帮助,谢谢您的帮助。