คลาสตัวช่วยสำหรับการแปลงค่าที่แสดงกรอบล้อมรอบเป็นสี่เหลี่ยมผืนผ้า
คลาสมีฟังก์ชันแบบคงที่เพื่อสร้างกรอบล้อมรอบเป็น RectF
จากการกำหนดค่าประเภทต่างๆ
โดยทั่วไป กรอบล้อมรอบอาจแสดงด้วยค่าทศนิยม 4 ค่า แต่ค่าดังกล่าวสามารถตีความได้หลายวิธี ตอนนี้เรารองรับการกำหนดค่า BoundingBoxUtil.Type
3 รายการ และลำดับขององค์ประกอบในแต่ละประเภทสามารถกำหนดค่าได้ด้วย
ชั้นเรียนที่ซ้อนกัน
enum | BoundingBoxUtil.CoordinateType | ระบุว่าพิกัดเป็นพิกเซลจริงหรืออัตราส่วนสัมพัทธ์ | |
enum | BoundingBoxUtil.Type | แสดงถึงการแสดงกรอบล้อมรอบ |
วิธีการสาธารณะ
static รายการ<RectF> |
convert(TensorBuffer tensor, int[] valueIndex, int boundingBoxAxis, ประเภท BoundingBoxUtil.Type, BoundingBoxUtil.CoordinateType coordinateType, ความสูง int, ความกว้าง int)
สร้างรายการกรอบล้อมรอบจาก
TensorBuffer ซึ่งแสดงถึงกรอบล้อมรอบ |
วิธีการที่รับช่วงมา
วิธีการสาธารณะ
สาธารณะ คงที่ รายการ<RectF> convert (TensorBuffer tensor, int[] valueIndex, int boundingBoxAxis, ประเภท BoundingBoxUtil.Type, BoundingBoxUtil.CoordinateTypeความกว้างในพิกัด
สร้างรายการกรอบล้อมรอบจาก TensorBuffer
ซึ่งแสดงถึงกรอบล้อมรอบ
พารามิเตอร์
Tensor | เก็บข้อมูลที่แสดงถึงช่องบางช่อง |
---|---|
valueIndex | แสดงลำดับขององค์ประกอบที่กำหนดไว้ในประเภทกรอบล้อมรอบ อาร์เรย์ดัชนีที่ว่างเปล่าจะแสดงลำดับเริ่มต้นของกรอบล้อมรอบแต่ละประเภท ตัวอย่างเช่น หากต้องการแสดงลำดับเริ่มต้นของ BOUNDARIES ซึ่งก็คือ {left, top, right, below} ดัชนีควรเป็น {0, 1, 2, 3} ในการแสดงลำดับ {left, right, top, below} ลำดับควรเป็น {0, 2, 1, 3}
คุณใช้อาร์เรย์ดัชนีกับกรอบล้อมรอบทุกประเภทได้เพื่อปรับลำดับขององค์ประกอบเบื้องหลังที่เกี่ยวข้อง |
boundingBoxAxis | ระบุดัชนีของมิติข้อมูลที่แสดงถึงกรอบล้อมรอบ ขนาดของมิติข้อมูลต้องเป็น 4 ดัชนีในที่นี้เริ่มต้นจาก 0 เช่น หาก Tensor มีรูปร่าง 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
|