公開最終類別 BoundingBoxUtil
用於將代表定界框轉換成矩形的值的輔助類別。
類別提供靜態函式,可從不同類型的設定建立定界框 RectF
。
一般來說,定界框可以用 4 個浮點值表示,但這些值能以多種方式解讀。我們現在支援 3 種 BoundingBoxUtil.Type
的設定,您也可以調整每種類型的元素順序。
巢狀類別
列舉 | BoundingBoxUtil.CoordinateType | 表示座標是實際像素或相對比例。 | |
列舉 | BoundingBoxUtil.Type | 表示定界框的表示方式。 |
公用方法
static List<RectF> |
convert(TensorBuffer tensor, 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 類型, BoundingBoxUtil.Type 類型, BoundingBoxUtil.CoordinateType CoordinateType, CoordinatetUtil.CoordinateType)
從 TensorBuffer
建立定界框清單,該方塊代表定界框。
參數
張量 | 包含代表部分盒子的資料 |
---|---|
valueIndex | 表示元素在各個定界框類型中定義的元素順序。空的索引陣列代表各個定界框類型的預設順序。舉例來說,如要表示「BOUNDARIES」的預設順序:{left, top,right,bottom},索引應為 {0, 1, 2, 3}。如要表示訂單 {left,right, top,bottom},順序應為 {0, 2, 1, 3}。 索引陣列可套用至所有定界框類型,藉此調整對應基礎元素的順序。 |
boundingBoxAxis | 會指定代表定界框的維度索引。該維度的大小必須為 4。此處的索引從 0 開始。舉例來說,如果張量的形狀為 4x10,定界框的軸可能是 0。同時也支援負軸:-1 代表最後軸,-2 代表第二軸,以 .以此類推。如果是形狀 10x4,軸可能為 1 (或 -1,相等)。 |
類型 | 定義值應如何轉換為方塊。查看「BoundingBoxUtil.Type 」 |
coordinateType | 會定義值如何解譯至座標。查看「BoundingBoxUtil.CoordinateType 」 |
高度 | 方塊所屬圖片的高度。只有在coordinateType 是「BoundingBoxUtil.CoordinateType.RATIO 」時才會產生效果 |
寬度 | 方塊所屬圖片的寬度。只有在coordinateType 是「BoundingBoxUtil.CoordinateType.RATIO 」時才會產生效果 |
傳回
tensor
代表的定界框清單。「boundingBoxAxis
」以外的所有維度都會收合並保留順序。舉例來說,假設tensor
的形狀為 {1, 4, 10, 2},且為boundingBoxAxis = 1
,則結果會是包含 20 個定界框的清單。
擲回
IllegalArgumentException | 如果定界框尺寸 (由 boundingBoxAxis 設定) 不是 4。 |
---|---|
IllegalArgumentException | 如果 boundingBoxAxis 不是在 (-(D+1), D) 中,其中 D 是 tensor 的維度數量。 |
IllegalArgumentException | 如果 tensor 採用 DataType.FLOAT32 以外的資料類型。 |