เลือกชุดย่อยของกล่องขอบเขตอย่างตะกละตะกลามโดยเรียงลำดับจากมากไปน้อย
การดำเนินการนี้ดำเนินการ non_max_suppression กับอินพุตต่อแบตช์ ในทุกคลาส ตัดช่องทิ้งที่มีทางแยก-เหนือ-สหภาพสูง (IOU) ทับซ้อนกับกล่องที่เลือกไว้ก่อนหน้านี้ ขอบเขตของกล่องถูกจัดให้เป็น [y1, x1, y2, x2] โดยที่ (y1, x1) และ (y2, x2) เป็นพิกัดของคู่มุมของกล่องในแนวทแยงใด ๆ และสามารถจัดเตรียมพิกัดให้เป็นมาตรฐานได้ (เช่น นอนใน ช่วงเวลา [0, 1]) หรือค่าสัมบูรณ์ โปรดทราบว่าอัลกอริธึมนี้ไม่เชื่อเรื่องพระเจ้ากับที่มาอยู่ในระบบพิกัด โปรดทราบว่าอัลกอริธึมนี้ไม่แปรผันกับการแปลงมุมฉากและการแปลของระบบพิกัด ดังนั้นการแปลหรือการสะท้อนของระบบพิกัดส่งผลให้กล่องเดียวกันถูกเลือกโดยอัลกอริทึม ผลลัพธ์ของการดำเนินการนี้คือกล่องสุดท้าย คะแนน และเทนเซอร์คลาสที่ส่งคืนหลังจากดำเนินการ non_max_suppression
คลาสที่ซ้อนกัน
ระดับ | รวมNonMaxSuppression.Options | คุณลักษณะที่จำเป็นสำหรับการ CombinedNonMaxSuppression |
วิธีการสาธารณะ
คง CombinedNonMaxSuppression.Options | clipBoxes (บูลีน clipBoxes) |
คง CombinedNonMaxSuppression | |
เอาท์พุท <ลอย> | nmsedBoxes () [batch_size, max_detections, 4] float32 เทนเซอร์ที่มีกล่องที่ถูกระงับที่ไม่สูงสุด |
เอาท์พุท <ลอย> | nmsedClasses () [batch_size, max_detections] float32 เทนเซอร์ที่มีคลาสสำหรับกล่อง |
เอาท์พุท <ลอย> | nmsedScores () [batch_size, max_detections] float32 เทนเซอร์ที่มีคะแนนสำหรับกล่อง |
คง CombinedNonMaxSuppression.Options | padPerClass (บูลีน padPerClass) |
เอาท์พุท <Integer> | validDetections () [batch_size] int32 tensor ระบุจำนวนการตรวจจับที่ถูกต้องต่อรายการแบทช์ |
วิธีการสืบทอด
วิธีการสาธารณะ
สาธารณะคง CombinedNonMaxSuppression.Options clipBoxes (บูลีน clipBoxes)
พารามิเตอร์
คลิปบ็อกซ์ | หากเป็นจริง ให้ถือว่าพิกัดของกล่องอยู่ระหว่าง [0, 1] และตัดกล่องเอาต์พุตหากอยู่เกิน [0, 1] หากเป็นเท็จ อย่าตัดและส่งออกพิกัดของกล่องตามที่เป็นอยู่ |
---|
สาธารณะคง CombinedNonMaxSuppression สร้าง ( ขอบเขต ขอบเขต Operand <ลอย> กล่อง Operand <ลอย> คะแนน Operand <Integer> maxOutputSizePerClass, Operand <Integer> maxTotalSize, Operand <ลอย> iouThreshold, Operand <ลอย> scoreThreshold, ตัวเลือก ... ตัวเลือก)
วิธีการ Factory เพื่อสร้างคลาสที่ปิดการดำเนินการ CombinedNonMaxSuppression ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
กล่อง | เทนเซอร์รูปร่าง 4 มิติ `[batch_size, num_boxes, q, 4]` ถ้า `q` เป็น 1 กล่องเดียวกันจะถูกใช้สำหรับทุกคลาส มิฉะนั้น ถ้า `q` เท่ากับจำนวนคลาส จะใช้กล่องเฉพาะคลาส |
คะแนน | เมตริกซ์ลอยตัว 3 มิติของรูปร่าง `[batch_size, num_boxes, num_classes]` แทนคะแนนเดียวที่สอดคล้องกับแต่ละกล่อง (แต่ละแถวของกล่อง) |
maxOutputSizePerClass | เทนเซอร์จำนวนเต็มสเกลาร์ซึ่งแสดงจำนวนกล่องสูงสุดที่จะเลือกโดยไม่ใช่การปราบปรามสูงสุดต่อคลาส |
maxTotalSize | สเกลาร์ int32 ที่แสดงถึงจำนวนกล่องสูงสุดที่ยังคงอยู่ในทุกคลาส โปรดทราบว่าการตั้งค่านี้เป็นจำนวนมากอาจส่งผลให้เกิดข้อผิดพลาด OOM ทั้งนี้ขึ้นอยู่กับเวิร์กโหลดของระบบ |
iouThreshold | เมตริกซ์โฟลต 0-D แสดงถึงเกณฑ์สำหรับการตัดสินใจว่ากล่องคาบเกี่ยวกันมากเกินไปหรือไม่เมื่อเทียบกับ IOU |
คะแนนเกณฑ์ | เมตริกซ์โฟลต 0-D แสดงถึงเกณฑ์ในการตัดสินใจว่าจะถอดกล่องออกโดยพิจารณาจากคะแนนเมื่อใด |
ตัวเลือก | ดำเนินการค่าแอตทริบิวต์ทางเลือก |
คืนสินค้า
- อินสแตนซ์ใหม่ของ CombinedNonMaxSuppression
ประชาชน เอาท์พุท <ลอย> nmsedBoxes ()
[batch_size, max_detections, 4] float32 เทนเซอร์ที่มีกล่องที่ถูกระงับที่ไม่สูงสุด
ประชาชน เอาท์พุท <ลอย> nmsedClasses ()
[batch_size, max_detections] float32 เทนเซอร์ที่มีคลาสสำหรับกล่อง
ประชาชน เอาท์พุท <ลอย> nmsedScores ()
[batch_size, max_detections] float32 เทนเซอร์ที่มีคะแนนสำหรับกล่อง
สาธารณะคง CombinedNonMaxSuppression.Options padPerClass (บูลีน padPerClass)
พารามิเตอร์
padPerClass | หากเป็นเท็จ กล่องเอาต์พุต nmsed คะแนน และคลาสจะถูกเสริม/ตัดเป็น "max_total_size" หากเป็น true กล่องเอาต์พุต nmsed คะแนน และคลาสจะถูกหุ้มให้มีความยาว `max_size_per_class`*`num_classes` เว้นแต่จะเกิน `max_total_size' ซึ่งในกรณีนี้จะถูกตัดเป็น `max_total_size' ค่าเริ่มต้นเป็นเท็จ |
---|
ประชาชน เอาท์พุท <Integer> validDetections ()
[batch_size] int32 tensor ระบุจำนวนการตรวจจับที่ถูกต้องต่อรายการแบทช์ เฉพาะรายการ num_detections[i] ระดับบนสุดใน nms_boxes[i], nms_scores[i] และ nms_class[i] เท่านั้นที่ถูกต้อง รายการที่เหลือไม่มีช่องว่างภายใน