我正在尝试使用object_detection from tensorflow library来检测彩色方块。对于train-eval-dataset中的每个图像,我应该有关于bounding box coordinates (with origin in top left corner) defined by 4 floating point numbers [ymin, xmin, ymax, xmax]的信息。现在,让我们假设background_image是完全白色的图像300 x 300px。我的图像生成器的代码看起来像这样(伪代码):
new_image = background_image.copy()
rand_x, rand_y = random_coordinates(new_image)
for (i = rand_x; i < rand_y + 100; ++i)
for (j = rand_y; j < rand_y + 100; ++j)
new_image[i][j] = color(red)
...所以现在我们在白色背景上有300 x 300px的红色正方形图像100 x 100px。问题是 - 我的边界框应该只包含红色像素[rand_x,rand_y,rand_x + 100,rand_y + 100]还是应该包含像[rand_x - 5,rand_y - 5,rand_x + 105,rand_y +这样的“白框” 105]?也许没关系?经过15小时的训练和评估(边界框坐标= [rand_x,rand_y,rand_x + 100,rand_y + 100])张量板显示我这样的事情:
Tensorboard表示精确度约为0.1。
我很清楚,仅仅1100步之后,结果就不会令人叹为观止。我只是想排除因我的错误导致的潜在不准确。
答案 0 :(得分:2)
理想情况下,您希望预测的框完全与地面实况框重叠。
这意味着如果A = [y_min, x_min, y_max, x_max]
是基础事实框,您希望B
(预测框)等于A
=&gt; A=B
。
在火车阶段完全正常,你的预测是&#34;周围&#34;事实并非如此。
实际上,即使在测试阶段(在火车末端)A=B
也很难实现,因为每个分类器/回归器都不完美。
简而言之:您的预测看起来很好。随着更多的火车时代,你可能会得到更好的结果