public final class
BoundingBoxUtil
境界ボックスを表す値を長方形に変換するためのヘルパークラス。
このクラスには、さまざまなタイプの構成から境界ボックスを RectF
として作成する静的関数が用意されています。
通常、境界ボックスは 4 つの浮動小数点値で表現できますが、値はさまざまな方法で解釈できます。3 つの BoundingBoxUtil.Type
構成がサポートされるようになりました。また、各タイプの要素の順序も構成可能です。
ネストされたクラス
enum | BoundingBoxUtil.CoordinateType | 座標が実際のピクセル数か相対比率かを示します。 | |
enum | BoundingBoxUtil.Type | 境界ボックスの表現方法を表します。 |
パブリック メソッド
static List<RectF> |
convert(TensorBuffer テンソル、int[] valueIndex、int boundingBoxAxis、BoundingBoxUtil.Type 型、BoundingBoxUtil.CoordinateType CoordinateType、int height、int width)
境界ボックスを表す
TensorBuffer から、境界ボックスのリストを作成します。 |
継承されるメソッド
パブリック メソッド
public static List<RectF> convert (TensorBuffer tensor, int[] valueIndex, int boundingBoxAxis, BoundingBoxUtil.Type type, BoundingBoxUtil.CoordinateType dictType, int height, int
境界ボックスを表す TensorBuffer
から、境界ボックスのリストを作成します。
パラメータ
テンソル | いくつかのボックスを表すデータを保持します。 |
---|---|
valueIndex | は、各境界ボックスタイプで定義されている要素の順序を示します。空のインデックス配列は、各境界ボックスタイプのデフォルトの順序を表します。たとえば、デフォルトの順序である BOUNDARIES({left, top, right, below})を示すには、インデックスを {0, 1, 2, 3} にする必要があります。順序 {left、right、top、bottom} を示すには、順序を {0, 2, 1, 3} にする必要があります。
インデックス配列をすべての境界ボックスタイプに適用して、対応する基になる要素の順序を調整できます。 |
boundingBoxAxis | 境界ボックスを表すディメンションのインデックスを指定します。ディメンションのサイズは 4 にする必要があります。このインデックスは 0 から始まります。たとえば、テンソルの形状が 4x10 の場合、境界ボックスの軸は 0 になる可能性が高くなります。負の軸もサポートされています。-1 は最後の軸、-2 は 2 番目の軸を示します。たとえば形状が 10x4 の場合、軸は 1(または同等の -1)になる可能性が高くなります。 |
type | 値をボックスに変換する方法を定義します。BoundingBoxUtil.Type を見る |
coordinateType | 値を座標に解釈する方法を定義します。BoundingBoxUtil.CoordinateType を見る |
身長 | ボックスが属する画像の高さcoordinateType が BoundingBoxUtil.CoordinateType.RATIO の場合にのみ効果があります |
幅 | ボックスが属する画像の幅coordinateType が BoundingBoxUtil.CoordinateType.RATIO の場合にのみ効果があります |
戻り値
tensor
が表す境界ボックスのリスト。boundingBoxAxis
を除くすべてのディメンションが折りたたまれ、順序は保持されます。たとえば、形状が {1, 4, 10, 2} でboundingBoxAxis = 1
のtensor
の場合、結果は 20 個の境界ボックスからなるリストになります。
例外
IllegalArgumentException | 境界ボックスのディメンション(boundingBoxAxis で設定)のサイズが 4 でない場合。 |
---|---|
IllegalArgumentException | boundingBoxAxis が (-(D+1), D) に含まれない場合(D は tensor の次元数)。 |
IllegalArgumentException | tensor のデータ型が DataType.FLOAT32 以外の場合。 |