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