BoundingBoxUtil

BoundingBoxUtil คลาสสุดท้ายสาธารณะ

คลาสตัวช่วยสำหรับการแปลงค่าที่แสดงถึงกล่องที่มีขอบเขตเป็นรูปสี่เหลี่ยมผืนผ้า

คลาสนี้มีฟังก์ชันคงที่เพื่อสร้างกล่องขอบเขตเป็น 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