2017-11-16 24 views
5

オブジェクト検出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) 
+0

異なる回転を使用してデータを拡張するコードはありませんか? –

答えて

1

/object_detection/core/preprocessor.pyで、ボックスの境界は絶対ピクセル、相対的な割合ではありません。画像を拡大/縮小すると、ボックスは同じままです。

これを使用すると問題はありません。

+0

コードによれば、スケール、明るさ、およびいくつかのパッドオプションしかありません。ローテーションはどうですか?データを拡大するには、データを入力する前に手動で行うことをお勧めします(各サンプルが回転し、スケールが増えてデータが増えます)。 –

関連する問題