2024-05-16 23:54:12 发布
网友
快速rcnn是一种用于图像中目标检测的算法,在该算法中,我们将图像馈送给神经网络,然后它根据称为“地面真值框”的边界框列表为我们输出图像中的对象及其类别列表。 该算法将地面真值盒与快速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()
如果边界框是相对的,则不需要更改它们,因为旧高度的0.2与新高度的0.2相同,依此类推
相关问题 更多 >
编程相关推荐