เลือกชุดย่อยของกรอบขอบเขตอย่างตะกละตะกลามโดยเรียงลำดับคะแนนจากมากไปหาน้อย
การตัดกล่องที่มีจุดตัดกันเกินสหภาพ (IOU) สูงซ้อนทับกับกล่องที่เลือกไว้ก่อนหน้านี้ กรอบขอบเขตที่มีคะแนนน้อยกว่า `score_threshold` จะถูกลบออก กล่องกำหนดขอบเขตจะถูกกำหนดเป็น [y1, x1, y2, x2] โดยที่ (y1, x1) และ (y2, x2) เป็นพิกัดของมุมกล่องคู่ในแนวทแยงใดๆ และพิกัดสามารถระบุได้ให้เป็นมาตรฐาน (เช่น อยู่ใน ช่วง [0, 1]) หรือสัมบูรณ์ โปรดทราบว่าอัลกอริทึมนี้ไม่เชื่อเรื่องต้นกำเนิดอยู่ในระบบพิกัด และโดยทั่วไปแล้วจะไม่แปรผันกับการแปลงมุมฉากและการแปลของระบบพิกัด ดังนั้นการแปลหรือการสะท้อนของระบบพิกัดส่งผลให้อัลกอริธึมเลือกกล่องเดียวกัน ผลลัพธ์ของการดำเนินการนี้คือชุดของจำนวนเต็มที่สร้างดัชนีลงในคอลเลกชันอินพุตของกล่องขอบเขตที่แสดงถึงกล่องที่เลือก พิกัดกล่องขอบเขตที่สอดคล้องกับดัชนีที่เลือกสามารถรับได้โดยใช้การดำเนินการ `tf.gather` ตัวอย่างเช่น: Selected_indices = tf.image.non_max_suppression_v2( Boxes, Scores, max_output_size, iou_threshold, Score_threshold) Selected_boxes = tf.gather(boxes, Selected_indices) op นี้ยังรองรับโหมด Soft-NMS (พร้อมการถ่วงน้ำหนักแบบเกาส์เซียน) ด้วย (cf Bodla et al , https://arxiv.org/abs/1704.04503) โดยที่กล่องจะลดคะแนนของกล่องที่ทับซ้อนกันอื่นๆ แทนที่จะทำให้ถูกตัดโดยตรง หากต้องการเปิดใช้งานโหมด Soft-NMS นี้ ให้ตั้งค่าพารามิเตอร์ `soft_nms_sigma` ให้ใหญ่กว่า 0
คลาสที่ซ้อนกัน
ระดับ | NonMaxSuppression.ตัวเลือก | แอ็ตทริบิวต์ทางเลือกสำหรับ NonMaxSuppression |
ค่าคงที่
สตริง | OP_NAME | ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow |
วิธีการสาธารณะ
คงที่ <T ขยาย TNumber > NonMaxSuppression <T> | สร้าง (ขอบเขต ขอบเขต กล่อง ตัวดำเนินการ <T> ตัวดำเนินการ <T> คะแนน ตัว ดำเนิน การ < TInt32 > maxOutputSize ตัวดำเนินการ <T> iouThreshold ตัวดำเนินการ <T> ScoreThreshold ตัวดำเนินการ <T> softNmsSigma ตัวเลือก... ตัวเลือก) วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ NonMaxSuppression ใหม่ |
NonMaxSuppression.Options แบบคงที่ | padToMaxOutputSize (บูลีน padToMaxOutputSize) |
เอาท์พุต < TInt32 > | ดัชนีที่เลือก () เทนเซอร์จำนวนเต็ม 1 มิติของรูปร่าง `[M]` ซึ่งเป็นตัวแทนของดัชนีที่เลือกจากกล่องเทนเซอร์ โดยที่ `M <= max_output_size` |
เอาท์พุต <T> | เลือกคะแนน () เทนเซอร์โฟลต 1 มิติของรูปร่าง `[M]` ซึ่งแสดงถึงคะแนนที่สอดคล้องกันสำหรับแต่ละกล่องที่เลือก โดยที่ `M <= max_output_size` |
เอาท์พุต < TInt32 > | ผลลัพธ์ที่ถูกต้อง () เทนเซอร์จำนวนเต็ม 0-D ที่แสดงจำนวนองค์ประกอบที่ถูกต้องใน `selected_indices` โดยองค์ประกอบที่ถูกต้องจะปรากฏก่อน |
วิธีการสืบทอด
ค่าคงที่
สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME
ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow
วิธีการสาธารณะ
สร้าง NonMaxSuppression <T> แบบคงที่สาธารณะ (ขอบเขต ขอบเขต กล่องตัว ดำเนิน การ <T> ตัว ดำเนิน การ <T> คะแนน ตัว ดำเนินการ <TInt32> maxOutputSize ตัวดำเนินการ <T> iouThreshold ตัวดำเนิน การ <T> ScoreThreshold ตัวดำเนินการ <T> softNmsSigma ตัวเลือก .. . ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ NonMaxSuppression ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
กล่อง | เทนเซอร์โฟลต 2 มิติของรูปร่าง `[num_boxes, 4]` |
คะแนน | เทนเซอร์โฟลต 1 มิติของรูปร่าง `[num_boxes]` แทนคะแนนเดียวที่สอดคล้องกับแต่ละกล่อง (กล่องแต่ละแถว) |
ขนาดเอาต์พุตสูงสุด | เทนเซอร์จำนวนเต็มสเกลาร์ซึ่งแสดงถึงจำนวนกล่องสูงสุดที่จะเลือกโดยการปราบปรามที่ไม่สูงสุด |
iouThreshold | เทนเซอร์โฟลต 0-D แสดงถึงเกณฑ์ในการตัดสินใจว่ากล่องซ้อนทับกันมากเกินไปเมื่อเทียบกับ IOU หรือไม่ |
เกณฑ์คะแนน | เทนเซอร์โฟลต 0-D แสดงถึงเกณฑ์ในการตัดสินใจว่าจะถอดกล่องออกเมื่อใดโดยพิจารณาจากคะแนน |
ซอฟท์NmsSigma | เทนเซอร์โฟลต 0-D ที่แสดงพารามิเตอร์ซิกมาสำหรับ Soft NMS ดู Bodla และคณะ (cf https://arxiv.org/abs/1704.04503) เมื่อ `soft_nms_sigma=0.0` (ซึ่งเป็นค่าเริ่มต้น) เราจะถอยกลับไปใช้ NMS มาตรฐาน (ยาก) |
ตัวเลือก | มีค่าแอตทริบิวต์ทางเลือก |
การส่งคืน
- อินสแตนซ์ใหม่ของ NonMaxSuppression
NonMaxSuppression.Options แบบคงที่สาธารณะ padToMaxOutputSize (บูลีน padToMaxOutputSize)
พารามิเตอร์
padToMaxOutputSize | หากเป็นจริง เอาต์พุต `selected_indices` จะถูกเสริมให้มีความยาว `max_output_size` ค่าเริ่มต้นเป็นเท็จ |
---|
เอาท์พุท สาธารณะ <TInt32> ดัชนีที่เลือก ()
เทนเซอร์จำนวนเต็ม 1 มิติของรูปร่าง `[M]` ซึ่งเป็นตัวแทนของดัชนีที่เลือกจากกล่องเทนเซอร์ โดยที่ `M <= max_output_size`
เอาท์พุท สาธารณะ <T> คะแนนที่เลือก ()
เทนเซอร์โฟลต 1 มิติของรูปร่าง `[M]` ซึ่งแสดงถึงคะแนนที่สอดคล้องกันสำหรับแต่ละกล่องที่เลือก โดยที่ `M <= max_output_size` คะแนนจะแตกต่างจากคะแนนอินพุตที่สอดคล้องกันเมื่อใช้ Soft NMS (เช่น เมื่อ `soft_nms_sigma>0`)