3.7.4.1. renom.utility.image.data_augmentation package

class DataAugmentation ( converter_list , random=False )

ベースクラス: renom.utility.image.data_augmentation.image.Image

Data Augmentationを実行するクラス。Augmentationの変換関数は下記モジュールから選択できる。[“Flip”, “Resize”, “Crop”, “Color_jitter”, “Rescale”, “Rotate”, “Shift”].Rotate関数は、ランダムのLabel変換に対応していないため、bounding boxを伴う物体認識には使わないでください。

パラメータ:
  • converter_list ( list ) – 変換クラスのインスタンスのリスト
  • random ( bool ) – ランダム変換を実行するか決定するBool値
create ( x , labels=None , num_class=0 )

Numpy ImageにData Augmentationを実行する。物体認識でラベルも変換したい場合はラベル変換も同時に実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、各変換関数のランダム変換を順に実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。 ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
戻り値:

変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される。

戻り値の型:

ndarray

>>> import matplotlib.pyplot as plt
>>> from PIL import Image as im
>>> from renom.utility.image.data_augmentation import *
>>> image = im.open("/Users/tsujiyuuki/env_python/code/my_code/Utilities/doc/img_autodoc/2007_000027.jpg")
>>> image = np.array(image, dtype=np.float32)
>>> datagenerator = DataAugmentation([
...     Flip(1),
...     Rotate(20),
...     Crop(size=(300, 300)),
...     Resize(size=(500, 500)),
...     Shift((20, 50)),
...     Color_jitter(v = (0.5, 2.0)),
...     Zoom(zoom_rate=(1.2, 2))
...     # Rescale(option='zero'),
... ], random = True)
>>> augment_image = datagenerator.create(image)
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(augment_image[0] / 255); axes[1].set_title("Shift One Image")
>>> plt.show()
color_jitter ( x , h=None , s=None , v=None , random=False , labels=None , **kwargs )

画像xに対してカラー変換を実行する。RGB画像をHSV画像に変換し、各チャンネルに対し指定された値を掛ける。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、変換する値を一枚毎に決定し、変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • h ( float or tuple ) – hチャンネルに掛ける値。ランダム変換を行う場合、tupleを使用して(min, max)と指定してください。
  • s ( float or tuple ) – sチャンネルに掛ける値。ランダム変換を行う場合、tupleを使用して(min, max)と指定してください。
  • v ( float or tuple ) – vチャンネルに掛ける値。ランダム変換を行う場合、tupleを使用して(min, max)と指定してください。
  • random ( bool ) – ランダム変換を実行するか決定するBool値。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
戻り値:

変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.color_jitter import color_jitter
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> jitter_image = color_jitter(image, v=2)
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(jitter_image[0] / 255); axes[1].set_title("Jitter One Image")
>>> plt.show()
class ColorJitter ( h=None , s=None , v=None )

ベースクラス: renom.utility.image.data_augmentation.image.Image

カラー変換を実行するクラス。

パラメータ:
  • h ( float or tuple ) – hチャンネルに掛ける値。ランダム変換を行う場合、tupleを使用して(min, max)と指定してください。
  • s ( float or tuple ) – sチャンネルに掛ける値。ランダム変換を行う場合、tupleを使用して(min, max)と指定してください。
  • v ( float or tuple ) – vチャンネルに掛ける値。ランダム変換を行う場合、tupleを使用して(min, max)と指定してください。
transform ( x , random=False , labels=None , **kwargs )

画像xに対してカラー変換を実行する。RGB画像をHSV画像に変換し、各チャンネルに対し指定された値を掛ける。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、変換する値を一枚毎に決定し、変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • random ( bool ) – ランダム変換を実行するか決定するBool値。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
戻り値:

変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.color_jitter import ColorJitter
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> cj = ColorJitter(v=2)
>>> jitter_image = cj.transform(image)
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(jitter_image[0] / 255); axes[1].set_title("Jitter One Image")
>>> plt.show()
crop ( x , left_top=(0 , 0) , size=(0 , 0) , labels=None , num_class=0 , random=False )

画像xに対してクロップ変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、指定されたサイズを元にクロップする場所を一枚毎に決定し、変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • left_top ( tuple ) – クロップする左上の座標 (y, x)
  • size ( tuple ) – クロップするサイズ (Height, Width)
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
  • random ( bool ) – ランダム変換を実行するか決定するBool値。実行する場合、 指定されたサイズを元にクロップする場所を一枚毎に決定し、変換を実行する
戻り値:

クロップ変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.crop import crop
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> crop_image = crop(image, left_top=(10, 10), size=(100, 100))
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(crop_image[0] / 255); axes[1].set_title("Crop One Image")
>>> plt.show()
class Crop ( left_top=(0 , 0) , size=(0 , 0) )

ベースクラス: renom.utility.image.data_augmentation.image.Image

クロップ変換を実行するクラス。

パラメータ:
  • left_top ( tuple ) – クロップする左上の座標 (y, x)
  • size ( tuple ) – クロップするサイズ (Height, Width)
transform ( x , random=False , labels=None , num_class=0 )

画像xに対してクロップ変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、指定されたサイズを元にクロップする場所を一枚毎に決定し、変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • ( bool ) ( random ) – ンダム変換を実行するか決定するBool値。実行する場合、 指定されたサイズを元にクロップする場所を一枚毎に決定し、変換を実行する”
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
戻り値:

クロップ変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.crop import Crop
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> cr = Crop(left_top=(10, 10), size=(100, 100))
>>> crop_image = cr.transform(image)
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(crop_image[0] / 255); axes[1].set_title("Crop One Image")
>>> plt.show()
flip ( x , flip=0 , random=False , labels=None , num_class=0 )

画像xに対してフリップ変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、フリップを実行するかを一枚毎に決定し、変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • flip ( int ) – 1は水平フリップ. 2は垂直フリップ. 3は両方を合わせたフリップ.
  • random ( bool ) – ランダム変換を実行するか決定するBool値。実行する場合、 一枚ごとにフリップを実行するか決定し、変換を行う。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
戻り値:

フリップ変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.flip import flip
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> flip_image = flip(image, flip=1) # Horizontal Flip
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(flip_image[0] / 255); axes[1].set_title("Flip One Image")
>>> plt.show()
class Flip ( flip )

ベースクラス: renom.utility.image.data_augmentation.image.Image

フリップ変換を実行するクラス。

パラメータ: flip ( int ) – 1は水平フリップ. 2は垂直フリップ. 3は両方を合わせたフリップ.
transform ( x , random=False , labels=None , num_class=0 )

画像xに対してフリップ変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、フリップを実行するかを一枚毎に決定し、変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • random ( bool ) – ランダム変換を実行するか決定するBool値。実行する場合、 一枚ごとにフリップを実行するか決定し、変換を行う。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
戻り値:

フリップ変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.flip import Flip
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> fl = Flip(flip=1) # Horizontal Flip
>>> flip_image = fl.transform(image)
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(flip_image[0] / 255); axes[1].set_title("Flip One Image")
>>> plt.show()
class Image

ベースクラス: object

Imageモジュールの親クラス

check_x_dim ( x )

入力の次元をcheckする。

rescale ( x , option='' , labels=None , **kwargs )

画像xに対してrescale変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • option ( str ) – リスケールする際のオプション。”zero”: 画像の値を [-0.5, 0.5] に変換する。 “vgg” : vggデータセットのRGB平均値を画像から引く。 other : 画像の値を [0.0, 1.0] に変換する。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。 ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
戻り値:

rescale変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from rescale import rescale
>>> from PIL import Image as im
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> rescale_image = rescale(image, option="zero")
>>> print(rescale_image.min(), rescale_image.max())
(-0.5, 0.5)
class Rescale ( option='' )

ベースクラス: renom.utility.image.data_augmentation.image.Image

rescale変換を実行するクラス。

パラメータ: option ( str ) – リスケールする際のオプション。”zero”: 画像の値を [-0.5, 0.5] に変換する。 “vgg” : vggデータセットのRGB平均値を画像から引く。 other : 画像の値を [0.0, 1.0] に変換する。
transform ( x , labels=None , **kwargs )

画像xに対してrescale変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
戻り値:

rescale変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

>>> from renom.utility.image.data_augmentation.rescale import Rescale
>>> from PIL import Image as im
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> rs = Rescale(option="zero")
>>> rescale_image = rs.transform(image)
>>> print(rescale_image.min(), rescale_image.max())
(-0.5, 0.5)
resize ( x , size=(0 , 0) , labels=None , num_class=0 , **kwargs )

画像xに対してリサイズ変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
戻り値:

リサイズ変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.resize import resize
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> resize_image = resize(image, size=(300, 500))
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(resize_image[0] / 255); axes[1].set_title("Resize One Image")
>>> plt.show()
class Resize ( size=(0 , 0) )

ベースクラス: renom.utility.image.data_augmentation.image.Image

リサイズ変換を実行する関数.

パラメータ: size ( tuple ) – リサイズの値 (‘Height’, “Width”)
transform ( x , labels=None , num_class=0 , **kwargs )

画像xに対してリサイズ変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
戻り値:

リサイズ変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.resize import Resize
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> rs = Resize(size=(300, 500))
>>> resize_image = rs.transform(image)
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(resize_image[0] / 255); axes[1].set_title("Resize One Image")
>>> plt.show()
rotate ( x , degree , fill_mode='constant' , fill_val=0 , random=False , labels=None )

画像xに対して回転変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、回転角度を一枚毎に決定し、変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • degree ( int ) – 回転角度。値の範囲は[-180 : 180]
  • fill_mode ( str ) – 回転変換後の補間方法。 defaultは”constant”。方法は[‘constant’, ‘nearest’]から選択する。
  • fill_val ( float ) – 補間方法が”constant”の場合、補間値を指定する。defaultは0。
  • random ( bool ) – 回転角度。値の範囲は[-180 : 180]
  • labels ( ndarray ) – degree=90の時のみlabel変換が可能。
戻り値:

回転変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される。

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.rotate import rotate
>>> from PIL import Image as im
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> rotate_image = rotate(image, degree=10)
class Rotate ( degree , fill_mode='constant' , fill_val=0 )

ベースクラス: renom.utility.image.data_augmentation.image.Image

画像の回転変換を実行するクラス。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • degree ( int ) – 回転角度。値の範囲は[-180 : 180]
  • fill_mode ( str ) – 回転変換後の補間方法。 defaultは”constant”。方法は[‘constant’, ‘nearest’]から選択する。
  • fill_val ( float ) – 補間方法が”constant”の場合、補間値を指定する。defaultは0。
>>> from rotate import rotate
>>> from PIL import Image as im
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> rt = Rotate(degree=10)
>>> rotate_image = rt.transform(image)
transform ( x , random=False , labels=None , num_class=0 , **kwargs )

画像xに対して回転変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、回転角度を一枚毎に決定し、変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • random ( bool ) – 回転角度。値の範囲は[-180 : 180]
  • labels ( ndarray ) – degree=90の時のみlabel変換が可能。
戻り値:

回転変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される。

戻り値の型:

ndarray

shift ( x , shift , fill_mode='constant' , fill_val=0 , random=False , labels=None , num_class=0 )

画像xに対してシフト変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、シフトする幅を一枚毎に決定し、変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • shift ( tuple ) – シフトする幅。(y, x)
  • fill_mode ( str ) – シフト変換後の補間方法。 defaultは”constant”。方法は[‘constant’, ‘nearest’]から選択する。
  • fill_val ( float ) – 補間方法が”constant”の場合、補間値を指定する。defaultは0。
  • random ( bool ) – ランダム変換を実行するか決定するBool値。実行する場合、 一枚ごとにシフトする幅はランダムに[-shift, +shift]の範囲で決定する。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
戻り値:

シフト変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.shift import shift
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> shift_image = shift(image, shift=(50, 50))
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(shift_image[0] / 255); axes[1].set_title("Shift One Image")
>>> plt.show()
class Shift ( shift , fill_mode='constant' , fill_val=0 )

ベースクラス: renom.utility.image.data_augmentation.image.Image

シフト変換を実行するクラス。

パラメータ:
  • shift ( tuple ) – シフトする幅。(y, x)
  • fill_mode ( str ) – シフト変換後の補間方法。 defaultは”constant”。方法は[‘constant’, ‘nearest’]から選択する。
  • fill_val ( float ) – 補間方法が”constant”の場合、補間値を指定する。defaultは0。
transform ( x , random=0 , labels=None , num_class=0 )

画像xに対してシフト変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、シフトする幅を一枚毎に決定し、変換を実行する。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • random ( bool ) – ランダム変換を実行するか決定するBool値。実行する場合、 一枚ごとにシフトする幅はランダムに[-shift, +shift]の範囲で決定する。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。  ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
戻り値:

シフト変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.shift import Shift
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> sh = Shift(shift=(50, 50))
>>> shift_image = sh.transform(image)
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(shift_image[0] / 255); axes[1].set_title("Shift One Image")
>>> plt.show()
zoom ( x , zoom_rate=(1 , 1) , random=False , labels=None , num_class=0 )

画像xに対してズーム変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、ズームする割合を一枚毎に決定し、変換を実行する。その際、ズームの値はzoom_rateがfloatの場合[1, zoom_rate]、tupleの場合[tuple[0], tuple[1]]となる。 zoom_rateの値は1以上を指定してください。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • zoom_rate ( float or tuple ) – ズームする割合。1以上の値を指定してください。
  • random ( bool ) – ランダム変換を実行するかのbool値。実行する場合、ズームの値はzoom_rateがfloatの場合は[1, zoom_rate]、tupleの場合は[tuple[0], tuple[1]]となる。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。 ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
戻り値:

ズーム変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.zoom import zoom
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> zoom_image = zoom(image, zooom_rate=2, random=True)
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(zoom_image[0] / 255); axes[1].set_title("Zoom One Image")
>>> plt.show()
class Zoom ( zoom_rate=(1 , 1) )

ベースクラス: renom.utility.image.data_augmentation.image.Image

ズーム変換を実行するクラス。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • zoom_rate ( float or tuple ) – ズームする割合。1以上の値を指定してください。
transform ( x , random=False , labels=None , num_class=0 )

画像xに対してズーム変換を実行する。もし、入力画像xがバッチの場合、バッチ全体に変換を実行する。もし、ランダム変換を実行する場合、ズームする割合を一枚毎に決定し、変換を実行する。その際、ズームの値はzoom_rateがfloatの場合[1, zoom_rate]、tupleの場合[tuple[0], tuple[1]]となる。 zoom_rateの値は1以上を指定してください。

パラメータ:
  • x ( ndarray ) – 3次元または4次元の画像。データタイプはfloat32、最小値0.0, 最大値255.0。
  • random ( bool ) – ランダム変換を実行するかのbool値。実行する場合、ズームの値はzoom_rateがfloatの場合は[1, zoom_rate]、tupleの場合は[tuple[0], tuple[1]]となる。
  • labels ( ndarray ) – 物体認識用の2次元配列のラベル。 ex:) np.array([[center x, center y, x_top_left, height, 0, 0, 0, 1, 0]])
  • num_class ( int ) – データセットに含まれるクラスの数。labelsを使用するときのみ指定する。
戻り値:

ズーム変換された画像。出力は必ず4次元配列となる。もしラベルが指定されている場合、ラベルも出力される

戻り値の型:

ndarray

Example:
>>> from renom.utility.image.data_augmentation.zoom import Zoom
>>> from PIL import Image as im
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> image = im.open(image path) # ex:) "./image_folder/camera.jpg"
>>> image = np.array(image).astype(np.float32)
>>> zo = Zoom(zoom_rate=2)
>>> zoom_image = zo.transform(image, random=True)
>>> fig, axes = plt.subplots(2, 1)
>>> axes[0].imshow(image/255); axes[0].set_title("Original Image")
>>> axes[1].imshow(zoom_image[0] / 255); axes[1].set_title("Zoom One Image")
>>> plt.show()