Tensorflow 对象检测 api 获取按边界框坐标排序的预测

Posted

技术标签:

【中文标题】Tensorflow 对象检测 api 获取按边界框坐标排序的预测【英文标题】:Tensorflow object detection api get predictions sorted by bounding box coordinates 【发布时间】:2020-05-19 12:43:55 【问题描述】:

我使用 tensorflow 对象检测 API 训练了一个神经网络来解决简单的验证码,但是当我使用以下代码输出预测时:

for index, value in enumerate(classes[0]):
object_dict = 
if scores[0, index] > threshold:
    object_dict[(category_index.get(value)).get('name').encode('utf8')] = scores[0, index]
    objects.append(object_dict)

每个函数运行时,我都会以随机顺序获得预测。我之前问过一个问题,有人建议我尝试使用坐标,但是我找不到连接类和与该类关联的框的坐标的方法。附上已解决的验证码示例,因此我需要一种从左到右的顺序输出预测的方法。

Image

【问题讨论】:

【参考方案1】:

鉴于boxes[0] 是一个形状为 num_boxes * 4 的数组,其中框中的第一个值是 xmin,这可以让您得到框的索引,按 xmin 最低的那个(开始的那个更左)。

indices = np.argsort(boxes[0][:,0])

然后就可以使用这些索引对boxes、scores、classed进行排序了,如下:

sorted_scores = scores[0][indices]
sorted_boxes = boxes[0][indices]
sorted_classes = classes[0] indicies

例如,如果您想按 xmax 排序,则可以使用 np.argsort(boxes[0][:,2])。 您可以尝试使用 0-3 按 xmin、ymin、xmax 和 ymax 排序。

【讨论】:

过度的自我宣传可能会被社区视为垃圾邮件。看看help center,特别是What kind of behavior is expected of users? 的最后一部分:避免公开的自我推销。您可能还对How to not be a spammer 和Are taglines & signatures disallowed? 感兴趣。

以上是关于Tensorflow 对象检测 api 获取按边界框坐标排序的预测的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Tensorflow 对象检测 API 中查找边界框坐标

Tensorflow 对象检测 API 数据增强边界框

TensorFlow 对象检测 API 中未检测到任何内容

我应该包含 Tensorflow 对象检测 API 的负面示例吗?

技术使用Tensorflow对象检测接口进行像素级分类

TensorFlow 对象检测 API - 对象检测 api 中的损失意味着啥?