gpt4 book ai didi

tensorflow - 对象检测 API : random_image_scale 中的数据增强

转载 作者:行者123 更新时间:2023-12-04 21:05:21 24 4
gpt4 key购买 nike

我正在尝试使用对象检测 API 的数据增强功能,特别是 random_image_scale。

挖掘了一下,我发现了实现它的功能(粘贴在下面)。我遗漏了一些东西,或者这里没有处理盒子的基本事实?我环顾四周,没有发现任何东西。如果没有根据对图像进行的缩放来相应地修改地面实况,它将与正在训练的模型混淆,不是吗?

如果我遗漏了什么,请告诉我,或者我应该避免使用此功能来训练我的网络。

该文件是/object_detection/core/preprocessor.py

def random_image_scale(image,
masks=None,
min_scale_ratio=0.5,
max_scale_ratio=2.0,
seed=None):
"""Scales the image size.

Args:
image: rank 3 float32 tensor contains 1 image -> [height, width, channels].
masks: (optional) rank 3 float32 tensor containing masks with
size [height, width, num_masks]. The value is set to None if there are no
masks.
min_scale_ratio: minimum scaling ratio.
max_scale_ratio: maximum scaling ratio.
seed: random seed.

Returns:
image: image which is the same rank as input image.
masks: If masks is not none, resized masks which are the same rank as input
masks will be returned.
"""
with tf.name_scope('RandomImageScale', values=[image]):
result = []
image_shape = tf.shape(image)
image_height = image_shape[0]
image_width = image_shape[1]
size_coef = tf.random_uniform([],
minval=min_scale_ratio,
maxval=max_scale_ratio,
dtype=tf.float32, seed=seed)
image_newysize = tf.to_int32(
tf.multiply(tf.to_float(image_height), size_coef))
image_newxsize = tf.to_int32(
tf.multiply(tf.to_float(image_width), size_coef))
image = tf.image.resize_images(
image, [image_newysize, image_newxsize], align_corners=True)
result.append(image)
if masks:
masks = tf.image.resize_nearest_neighbor(
masks, [image_newysize, image_newxsize], align_corners=True)
result.append(masks)
return tuple(result)

最佳答案

如果您使用的是 tfrecord 文件,则框边界不是绝对像素,而是相对百分比。所以如果你缩放图像,框保持不变。

所以使用它应该没问题。

关于tensorflow - 对象检测 API : random_image_scale 中的数据增强,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47332675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com