如何在 fast-rcnn 中调整 ground truth boxes 的大小
how to resize ground truth boxes in fast-rcnn
fast rcnn 是一种用于图像中对象检测的算法,我们将图像输入神经网络,它根据称为“ground truth”的边界框列表为我们输出图像中的对象及其类别列表箱”。
该算法将 ground truth 框与 fast-rcnn 算法生成的框进行比较,只保留那些与 gt 框充分重叠的框。
这里的问题是我们必须调整要输入 CNN 的图像的大小,
我的问题是,我们是否应该在比较步骤之前也调整地面实况框的大小,以及如何做到这一点?
坦克回复。
如果边界框是相对的,则不需要更改它们,因为旧高度的 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()
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()
fast rcnn 是一种用于图像中对象检测的算法,我们将图像输入神经网络,它根据称为“ground truth”的边界框列表为我们输出图像中的对象及其类别列表箱”。 该算法将 ground truth 框与 fast-rcnn 算法生成的框进行比较,只保留那些与 gt 框充分重叠的框。 这里的问题是我们必须调整要输入 CNN 的图像的大小, 我的问题是,我们是否应该在比较步骤之前也调整地面实况框的大小,以及如何做到这一点? 坦克回复。
如果边界框是相对的,则不需要更改它们,因为旧高度的 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()
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()