如何在fastrcnn中调整地面真相框的大小

2024-05-16 23:54:12 发布

您现在位置:Python中文网/ 问答频道 /正文

快速rcnn是一种用于图像中目标检测的算法,在该算法中,我们将图像馈送给神经网络,然后它根据称为“地面真值框”的边界框列表为我们输出图像中的对象及其类别列表。 该算法将地面真值盒与快速rcnn算法生成的真值盒进行比较,只保留与gt盒充分重叠的真值盒。 这里的问题是,我们必须调整图像的大小,以便输入CNN, 我的问题是,我们是否应该在比较步骤之前调整地面真相框的大小,以及如何做到这一点? 请回答


Tags: 对象图像gt算法目标列表步骤神经网络
1条回答
网友
1楼 · 发布于 2024-05-16 23:54:12

如果边界框是相对的,则不需要更改它们,因为旧高度的0.2与新高度的0.2相同,依此类推

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import load_sample_image

china = load_sample_image('china.jpg')

relative_boxes = [0.2, 0.2, 0.8, .8]

original = tf.image.draw_bounding_boxes(
    tf.image.convert_image_dtype(tf.expand_dims(china, axis=0), tf.float32),
    np.array(relative_boxes).reshape([1, 1, 4]),
    [[1., 0., 1.], [1., 1., 1.]]
)

plt.imshow(tf.squeeze(original))
plt.show()

enter image description here


resized = tf.image.draw_bounding_boxes(
    tf.divide(
        tf.expand_dims(
            tf.image.resize(china, (200, 200)), axis=0),
        255),
    np.array(relative_boxes).reshape([1, 1, 4]),
    [[1., 0., 1.], [1., 1., 1.]]
)

plt.imshow(tf.squeeze(resized))
plt.show()

enter image description here

相关问题 更多 >