ステートレスサンプル歪んだ境界ボックス

パブリック最終クラスStatelessSampleDistortedBoundingBox

画像に対してランダムに歪んだ境界ボックスを決定論的に生成します。

多くの場合、境界ボックスの注釈は、画像認識タスクやオブジェクト位置特定タスクでグラウンドトゥルース ラベルに加えて提供されます。このようなシステムをトレーニングするための一般的な手法は、コンテンツを維持しながら画像をランダムに歪ませる、つまりデータ拡張です。この Op は、同じ `seed` が与えられると、ランダムに歪んだオブジェクトの位置、つまり、`image_size`、`bounding_boxes` および一連の制約を与えられたバウンディング ボックスを決定的に出力します。

この Op の出力は、元の画像をトリミングするために使用できる単一の境界ボックスです。出力は、`begin`、`size`、および `bboxes` の 3 つのテンソルとして返されます。最初の 2 つのテンソルを `tf.slice` に直接入力して、画像をトリミングできます。後者は、境界ボックスがどのように見えるかを視覚化するために `tf.image.draw_bounding_boxes` に指定できます。

境界ボックスは `[y_min, x_min, y_max, x_max]` として指定され、返されます。境界ボックスの座標は、下にある画像の幅と高さを基準とした `[0.0, 1.0]` の浮動小数点数です。

この Op の出力は、同じ `seed` が与えられた場合には同じであることが保証されており、関数の呼び出し回数やグローバル シード設定 (例: `tf.random.set_seed`) には依存しません。

使用例:

>>> image = np.array([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9] ]]) >>> bbox = tf.constant( ... [0.0, 0.0, 1.0, 1.0], dtype=tf.float32,shape=[1, 1, 4]) >>> シード = (1, 2) ) >>> # 単一の歪んだ境界ボックスを生成します。 >>> bbox_begin, bbox_size, bbox_draw = ( ... tf.image.stateless_sample_distorted_bounding_box( ... tf.shape(image),bounding_boxes=bbox, seed=seed)) >>> # バウンディングボックスを使用して画像を歪ませる。 >>> tf.slice(image, bbox_begin, bbox_size) >>> # 画像の概要に境界ボックスを描画します。 >>> 色 = np.array([[1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) >>> tf.image.draw_bounding_boxes( ... tf.expand_dims(tf.cast(image, tf) .float32),0)、bbox_draw、色)

境界ボックス情報が利用できない場合、「use_image_if_no_bounding_boxes = true」を設定すると、画像全体をカバーする単一の暗黙的な境界ボックスがあると想定されることに注意してください。 `use_image_if_no_bounding_boxes` が false で、境界ボックスが指定されていない場合、エラーが発生します。

ネストされたクラス

クラスStatelessSampleDistortedBoundingBox.Options StatelessSampleDistortedBoundingBoxのオプションの属性

パブリックメソッド

静的StatelessSampleDistortedBoundingBox.Options
areaRange (List<Float> areaRange)
静的StatelessSampleDistortedBoundingBox.Options
アスペクト比範囲(List<Float> アスペクト比範囲)
出力<浮動小数点>
bbox ()
歪んだ境界ボックスを含む形状 `[1, 1, 4]` の 3-D。
出力<T>
始める()
1-D、`[offset_height, offset_width, 0]` を含みます。
static <T extends Number, U extends Number> StatelessSampleDistortedBoundingBox <T>
create (スコープscope、オペランド<T>imageSize、オペランド<Float>boundingBoxes、オペランド<Float>minObjectCovered、オペランド<U>シード、オプション...オプション)
新しい StatelessSampleDistortedBoundingBox オペレーションをラップするクラスを作成するファクトリ メソッド。
静的StatelessSampleDistortedBoundingBox.Options
maxAttempts (長い maxAttempts)
出力<T>
サイズ()
1-D、`[target_height, target_width, -1]` を含みます。
静的StatelessSampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (ブール型 useImageIfNoBoundingBoxes)

継承されたメソッド

パブリックメソッド

public static StatelessSampleDistortedBoundingBox.Options areaRange (List<Float> areaRange)

パラメーター
エリア範囲画像のトリミングされた領域には、この範囲内の指定された画像の一部が含まれている必要があります。

public static StatelessSampleDistortedBoundingBox.Options のアスペクト比範囲(List<Float> アスペクト比範囲)

パラメーター
アスペクト比範囲画像のトリミングされた領域のアスペクト比 = 幅 / 高さがこの範囲内である必要があります。

public Output <Float> bboxes ()

歪んだ境界ボックスを含む形状 `[1, 1, 4]` の 3-D。 `tf.image.draw_bounding_boxes` への入力として提供します。

public出力<T> begin ()

1-D、`[offset_height, offset_width, 0]` を含みます。 `tf.slice` への入力として提供します。

public static StatelessSampleDistortedBoundingBox <T> create (スコープscope、オペランド<T>imageSize、オペランド<Float>boundingBoxes、オペランド<Float>minObjectCovered、オペランド<U>シード、オプション...オプション)

新しい StatelessSampleDistortedBoundingBox オペレーションをラップするクラスを作成するファクトリ メソッド。

パラメーター
範囲現在のスコープ
画像サイズ1-D、`[高さ、幅、チャネル]` を含みます。
境界ボックス画像に関連付けられた N 個の境界ボックスを表す形状 `[batch, N, 4]` を持つ 3-D。
minObjectCovered画像のトリミングされた領域には、指定された境界ボックスの少なくともこの部分が含まれている必要があります。このパラメータの値は負ではない必要があります。 0 の場合、トリミングされた領域は、指定された境界ボックスのいずれとも重なる必要はありません。
シード形状 `[2]` の 1-D。乱数発生器のシード。 dtype `int32` または `int64` が必要です。 (XLA を使用する場合、`int32` のみが許可されます。)
オプションオプションの属性値を持ちます
戻り値
  • StatelessSampleDistortedBoundingBox の新しいインスタンス

public static StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)

パラメーター
最大試行数指定された制約のイメージのトリミングされた領域の生成を試行する回数。 `max_attempts` が失敗した後、画像全体を返します。

public出力<T>サイズ()

1-D、`[target_height, target_width, -1]` を含みます。 `tf.slice` への入力として提供します。

public static StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (ブール型 useImageIfNoBoundingBoxes)

パラメーター
useImageIfNoBoundingBoxes境界ボックスが指定されていない場合の動作を制御します。 true の場合、入力全体をカバーする暗黙的な境界ボックスがあると見なされます。 false の場合、エラーが発生します。