tensorflow::ops::NonMaxSuppressionV5
#include <image_ops.h>เลือกกลุ่มย่อยของกรอบล้อมรอบโดยเรียงลำดับจากคะแนนมากที่สุดไปน้อยที่สุดอย่างโลภ (Greeding selects)
สรุป
การตัดทิ้งกล่องที่มีค่าการทับซ้อน (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) ฟังก์ชันนี้ยังรองรับโหมด Soft-NMS (ด้วยการถ่วงน้ำหนักแบบเกาส์เซียน) (ดู Bodla et al, https://arxiv.org/abs/1704.04503 ) ซึ่งกล่องจะลดคะแนนของกล่องที่ทับซ้อนกันแทนที่จะตัดกล่องเหล่านั้นออกโดยตรง หากต้องการเปิดใช้งานโหมด Soft-NMS นี้ ให้ตั้งค่าพารามิเตอร์ soft_nms_sigma ให้มากกว่า 0
ข้อโต้แย้ง:
- ขอบเขต: วัตถุ ขอบเขต
- กล่อง: เทนเซอร์แบบ float 2 มิติ ที่มีรูปร่าง
[num_boxes, 4] - คะแนน: เทนเซอร์แบบ float 1 มิติ ที่มีรูปร่าง
[num_boxes]ซึ่งแสดงคะแนนเดียวที่สอดคล้องกับแต่ละกล่อง (แต่ละแถวของกล่อง) - max_output_size: เทนเซอร์จำนวนเต็มแบบสเกลาร์ที่แสดงจำนวนกล่องสูงสุดที่จะถูกเลือกโดยการระงับค่าสูงสุดที่ไม่ใช่ค่าสูงสุด
- iou_threshold: เทนเซอร์แบบ float 0 มิติ ที่แสดงถึงค่าเกณฑ์ในการตัดสินว่ากล่องต่างๆ ทับซ้อนกันมากเกินไปหรือไม่ โดยพิจารณาจากค่า IOU
- score_threshold: เทนเซอร์แบบ float 0 มิติ ที่แสดงถึงเกณฑ์ในการตัดสินใจว่าจะลบกล่องเมื่อใด โดยพิจารณาจากคะแนน
- soft_nms_sigma: เทนเซอร์แบบ float 0 มิติ ที่แสดงค่าพารามิเตอร์ sigma สำหรับ Soft NMS ดู Bodla et al (cf https://arxiv.org/abs/1704.04503 ) เมื่อ
soft_nms_sigma=0.0(ซึ่งเป็นค่าเริ่มต้น) เราจะกลับไปใช้ NMS มาตรฐาน (hard)
คุณลักษณะเสริม (ดูที่ Attrs ):
- pad_to_max_output_size: หากเป็นจริง
selected_indicesที่ได้จะถูกเติมให้มีความยาวเท่ากับmax_output_sizeค่าเริ่มต้นคือ false
การส่งคืนสินค้า:
-
Outputselected_indices: เทนเซอร์จำนวนเต็ม 1 มิติที่มีรูปร่าง[M]ซึ่งแสดงถึงดัชนีที่เลือกจากเทนเซอร์กล่อง โดยที่M <= max_output_size -
Outputselected_scores: เทนเซอร์ float 1 มิติ รูปร่าง[M]ที่แสดงคะแนนที่สอดคล้องกันสำหรับแต่ละกล่องที่เลือก โดยที่M <= max_output_sizeคะแนนจะแตกต่างจากคะแนนอินพุตที่สอดคล้องกันเฉพาะเมื่อใช้ Soft NMS (เช่น เมื่อsoft_nms_sigma>0) -
Outputvalid_outputs: เทนเซอร์จำนวนเต็ม 0 มิติที่แสดงจำนวนองค์ประกอบที่ถูกต้องใน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) | |
โครงสร้าง | |
|---|---|
| tensorflow:: ops:: NonMaxSuppressionV5:: Attrs | ตัวเลือกการตั้งค่าแอตทริบิวต์สำหรับ NonMaxSuppressionV5 |
คุณลักษณะสาธารณะ
การดำเนินการ
Operation operation
ดัชนีที่เลือก
::tensorflow::Output selected_indices
คะแนนที่เลือก
::tensorflow::Output selected_scores
เอาต์พุตที่ถูกต้อง
::tensorflow::Output valid_outputs
หน้าที่สาธารณะ
NonMaxSuppressV5
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 )
NonMaxSuppressV5
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 )