คลาสตัวช่วยสำหรับการแปลงค่าที่แสดงถึงกล่องที่มีขอบเขตเป็นรูปสี่เหลี่ยมผืนผ้า
คลาสนี้มีฟังก์ชันคงที่เพื่อสร้างกล่องขอบเขตเป็น RectF
จากการกำหนดค่าประเภทต่างๆ
โดยทั่วไป กล่องขอบเขตสามารถแสดงด้วยค่าทศนิยม 4 ค่า แต่ค่าสามารถตีความได้หลายวิธี ตอนนี้เรารองรับ 3 BoundingBoxUtil.Type
แล้ว ประเภทของการกำหนดค่า และลำดับขององค์ประกอบในแต่ละประเภทก็สามารถกำหนดค่าได้เช่นกัน
คลาสที่ซ้อนกัน
แจกแจง | BoundingBoxUtil.CoordinateType | แสดงว่าพิกัดเป็นพิกเซลจริงหรืออัตราส่วนสัมพันธ์ | |
แจกแจง | BoundingBoxUtil.Type | แสดงถึงวิธีการแสดงกรอบขอบเขต |
วิธีการสาธารณะ
รายการ คงที่ <RectF> | แปลง ( TensorBuffer tensor, int[] valueIndex, int boundingBoxAxis, BoundingBoxUtil.Type type, BoundingBoxUtil.CoordinateType CoordinatType, int height, int width) สร้างรายการกล่องที่มีขอบเขตจาก TensorBuffer ซึ่งแสดงถึงกล่องที่มีขอบเขต |
วิธีการสืบทอด
วิธีการสาธารณะ
รายการ คงที่สาธารณะ <RectF> แปลง ( TensorBuffer tensor, int [] valueIndex, int boundingBoxAxis, BoundingBoxUtil.Type type, BoundingBoxUtil.CoordinateType CoordinatType, int height, int width)
สร้างรายการกล่องที่มีขอบเขตจาก TensorBuffer
ซึ่งแสดงถึงกล่องที่มีขอบเขต
พารามิเตอร์
เทนเซอร์ | เก็บข้อมูลที่แสดงถึงบางกล่อง |
---|---|
ดัชนีมูลค่า | หมายถึงลำดับขององค์ประกอบที่กำหนดไว้ในแต่ละประเภทกรอบขอบเขต อาร์เรย์ดัชนีว่างแสดงถึงลำดับเริ่มต้นของกล่องขอบเขตแต่ละประเภท ตัวอย่างเช่น หากต้องการแสดงลำดับเริ่มต้นของ BOUNDARIES, {left, top, right, below} ดัชนีควรเป็น {0, 1, 2, 3} หากต้องการแสดงลำดับ {left, right, top, bottom} ลำดับควรเป็น {0, 2, 1, 3} อาร์เรย์ดัชนีสามารถนำไปใช้กับประเภทกล่องขอบเขตทั้งหมดเพื่อปรับลำดับขององค์ประกอบพื้นฐานที่สอดคล้องกัน |
boundingBoxAxis | ระบุดัชนีของมิติที่แสดงถึงกรอบขอบเขต ขนาดของมิตินั้นต้องเป็น 4 ดัชนีที่นี่เริ่มต้นจาก 0 ตัวอย่างเช่น หากเทนเซอร์มีรูปร่าง 4x10 แกนสำหรับกรอบขอบก็น่าจะเป็น 0 แกนลบก็รองรับเช่นกัน: -1 ให้แกนสุดท้าย และ -2 ให้อันที่สอง .etc สำหรับรูปร่าง 10x4 แกนน่าจะเป็น 1 (หรือ -1 เท่ากัน) |
พิมพ์ | กำหนดวิธีการแปลงค่าลงในกล่อง ดู BoundingBoxUtil.Type |
ประเภทพิกัด | กำหนดวิธีการตีความค่าเป็นพิกัด ดู BoundingBoxUtil.CoordinateType |
ความสูง | ความสูงของภาพที่กล่องนั้นอยู่ จะมีผลเฉพาะเมื่อ coordinateType เป็น BoundingBoxUtil.CoordinateType.RATIO |
ความกว้าง | ความกว้างของรูปภาพที่เป็นของกล่อง จะมีผลเฉพาะเมื่อ coordinateType เป็น BoundingBoxUtil.CoordinateType.RATIO |
การส่งคืน
- รายการกรอบขอบเขตที่
tensor
เป็นตัวแทน มิติข้อมูลทั้งหมดยกเว้นboundingBoxAxis
จะถูกยุบโดยคงลำดับไว้ ตัวอย่างเช่น เมื่อกำหนดtensor
ที่มีรูปร่าง {1, 4, 10, 2} และboundingBoxAxis = 1
ผลลัพธ์จะเป็นรายการกล่องที่มีขอบเขต 20 กล่อง
ขว้าง
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย | ถ้าขนาดของมิติกล่องขอบเขต (กำหนดโดย boundingBoxAxis ) ไม่ใช่ 4 |
---|---|
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย | หาก boundingBoxAxis ไม่ได้อยู่ใน (-(D+1), D) โดยที่ D คือจำนวนขนาดของ tensor |
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย | หาก tensor มีประเภทข้อมูลอื่นที่ไม่ใช่ DataType.FLOAT32 |