เทนเซอร์โฟลว์:: ปฏิบัติการ:: NonMaxSuppressionV5
#include <image_ops.h>
เลือกชุดย่อยของกรอบขอบเขตอย่างตะกละตะกลามโดยเรียงลำดับคะแนนจากมากไปหาน้อย
สรุป
การตัดกล่องที่มีจุดตัดกันเกินสหภาพ (IOU) สูงซ้อนทับกับกล่องที่เลือกไว้ก่อนหน้านี้ กล่องขอบเขตที่มีคะแนนน้อยกว่า score_threshold
จะถูกลบออก กล่องกำหนดขอบเขตจะถูกกำหนดเป็น [y1, x1, y2, x2] โดยที่ (y1, x1) และ (y2, x2) เป็นพิกัดของมุมกล่องคู่ในแนวทแยงใดๆ และพิกัดสามารถให้มาได้ตามปกติ (เช่น อยู่ใน ช่วง [0, 1]) หรือสัมบูรณ์ โปรดทราบว่าอัลกอริทึมนี้ไม่เชื่อเรื่องต้นกำเนิดที่อยู่ในระบบพิกัด และโดยทั่วไปแล้วจะไม่แปรเปลี่ยนกับการแปลงมุมฉากและการแปลของระบบพิกัด ดังนั้นการแปลหรือการสะท้อนของระบบพิกัดส่งผลให้อัลกอริธึมเลือกกล่องเดียวกัน ผลลัพธ์ของการดำเนินการนี้คือชุดของจำนวนเต็มที่สร้างดัชนีลงในคอลเลกชันอินพุตของกล่องขอบเขตที่แสดงถึงกล่องที่เลือก พิกัดกล่องขอบเขตที่สอดคล้องกับดัชนีที่เลือกสามารถรับได้โดยใช้ tf.gather operation
ตัวอย่างเช่น: 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
ข้อโต้แย้ง:
- ขอบเขต: วัตถุ ขอบเขต
- กล่อง: เทนเซอร์โฟลต 2 มิติของรูปร่าง
[num_boxes, 4]
- คะแนน: เทนเซอร์โฟลต 1 มิติของรูปร่าง
[num_boxes]
แทนคะแนนเดียวที่สอดคล้องกับแต่ละกล่อง (แต่ละแถวของกล่อง) - max_output_size: เทนเซอร์จำนวนเต็มสเกลาร์ซึ่งแสดงถึงจำนวนกล่องสูงสุดที่จะเลือกโดยการปราบปรามแบบไม่สูงสุด
- iou_threshold: เทนเซอร์โฟลต 0-D แสดงถึงเกณฑ์ในการตัดสินใจว่ากล่องทับซ้อนกันมากเกินไปเมื่อเทียบกับ IOU หรือไม่
- Score_threshold: เทนเซอร์โฟลต 0-D แสดงถึงเกณฑ์ในการตัดสินใจว่าจะลบกล่องเมื่อใดโดยพิจารณาจากคะแนน
- soft_nms_sigma: เทนเซอร์โฟลต 0-D แทนพารามิเตอร์ซิกมาสำหรับ Soft NMS; ดู Bodla และคณะ (cf https://arxiv.org/abs/1704.04503 ) เมื่อ
soft_nms_sigma=0.0
(ซึ่งเป็นค่าเริ่มต้น) เราจะถอยกลับไปใช้ NMS มาตรฐาน (ยาก)
แอ็ตทริบิวต์ทางเลือก (ดู Attrs
):
- pad_to_max_output_size: หากเป็นจริง เอาต์พุต
selected_indices
จะถูกเสริมให้มีความยาวmax_output_size
ค่าเริ่มต้นเป็นเท็จ
ผลตอบแทน:
-
Output
Selected_indices: เทนเซอร์จำนวนเต็ม 1 มิติของรูปร่าง[M]
แทนดัชนีที่เลือกจากกล่องเทนเซอร์ โดยที่M <= max_output_size
-
Output
Selected_scores: เทนเซอร์โฟลต 1 มิติของรูปร่าง[M]
แทนคะแนนที่สอดคล้องกันสำหรับแต่ละกล่องที่เลือก โดยที่M <= max_output_size
คะแนนจะแตกต่างจากคะแนนอินพุตที่สอดคล้องกันเมื่อใช้ Soft NMS (เช่น เมื่อsoft_nms_sigma>0
) -
Output
valid_outputs: เทนเซอร์จำนวนเต็ม 0-D แทนจำนวนองค์ประกอบที่ถูกต้องในselected_indices
โดยองค์ประกอบที่ถูกต้องจะปรากฏก่อน
ตัวสร้างและผู้ทำลาย | |
---|---|
NonMaxSuppressionV5 (const :: tensorflow::Scope & scope, :: tensorflow::Input boxes, :: tensorflow::Input scores, :: tensorflow::Input max_output_size, :: tensorflow::Input iou_threshold, :: tensorflow::Input score_threshold, :: tensorflow::Input soft_nms_sigma) | |
NonMaxSuppressionV5 (const :: tensorflow::Scope & scope, :: tensorflow::Input boxes, :: tensorflow::Input scores, :: tensorflow::Input max_output_size, :: tensorflow::Input iou_threshold, :: tensorflow::Input score_threshold, :: tensorflow::Input soft_nms_sigma, const NonMaxSuppressionV5::Attrs & attrs) |
คุณลักษณะสาธารณะ | |
---|---|
operation | |
selected_indices | |
selected_scores | |
valid_outputs |
ฟังก์ชันคงที่สาธารณะ | |
---|---|
PadToMaxOutputSize (bool x) |
โครงสร้าง | |
---|---|
เทนเซอร์โฟลว์ :: ops :: NonMaxSuppressionV5 :: Attrs | ตัวตั้งค่าแอ็ตทริบิวต์ทางเลือกสำหรับ NonMaxSuppressionV5 |
คุณลักษณะสาธารณะ
การดำเนินการ
Operation operation
ดัชนีที่เลือก
::tensorflow::Output selected_indices
เลือกแล้ว_คะแนน
::tensorflow::Output selected_scores
valid_outputs
::tensorflow::Output valid_outputs
งานสาธารณะ
NonMaxSuppressionV5
NonMaxSuppressionV5( const ::tensorflow::Scope & scope, ::tensorflow::Input boxes, ::tensorflow::Input scores, ::tensorflow::Input max_output_size, ::tensorflow::Input iou_threshold, ::tensorflow::Input score_threshold, ::tensorflow::Input soft_nms_sigma )
NonMaxSuppressionV5
NonMaxSuppressionV5( const ::tensorflow::Scope & scope, ::tensorflow::Input boxes, ::tensorflow::Input scores, ::tensorflow::Input max_output_size, ::tensorflow::Input iou_threshold, ::tensorflow::Input score_threshold, ::tensorflow::Input soft_nms_sigma, const NonMaxSuppressionV5::Attrs & attrs )
ฟังก์ชันคงที่สาธารณะ
PadToMaxOutputSize
Attrs PadToMaxOutputSize( bool x )