เทนเซอร์โฟลว์:: ปฏิบัติการ:: 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
)