オブジェクト検出APIのデータ拡張機能、特にrandom_image_scaleを使用しようとしています。オブジェクト検出APIのデータ拡張:random_image_scale
少し掘り下げて、それを実装する機能が見つかりました(以下に貼り付けました)。私は何かを見逃しているか、箱の真実はここで扱われないのですか?私は周りを見て、何も見つけられませんでした。地面の真実が画像に施されたスケーリングに応じて修正されなければ、それは訓練されたモデルでうまくいかないでしょうか?
私は何かが不足している場合はお知らせください、私はネットワークを鍛えるためにこの機能を避けるべきです。あなたがtfrecordファイルを使用している場合
ファイルが
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)
異なる回転を使用してデータを拡張するコードはありませんか? –