เทนเซอร์โฟลว์:: ปฏิบัติการ:: ครอบตัดและปรับขนาด

#include <image_ops.h>

แยกพืชผลจากเทนเซอร์รูปภาพอินพุตและปรับขนาด

สรุป

แยกการครอบตัดจากเทนเซอร์รูปภาพอินพุตและปรับขนาดโดยใช้การสุ่มตัวอย่างแบบไบลิเนียร์หรือการสุ่มตัวอย่างใกล้เคียงที่สุด (อาจมีการเปลี่ยนแปลงอัตราส่วนภาพ) เป็นขนาดเอาต์พุตทั่วไปที่ระบุโดย crop_size นี่เป็นเรื่องทั่วไปมากกว่า crop_to_bounding_box op ซึ่งจะแยกส่วนขนาดคงที่ออกจากรูปภาพอินพุต และไม่อนุญาตให้ปรับขนาดหรือเปลี่ยนอัตราส่วนภาพ

ส่งกลับเทนเซอร์ที่มี crops จาก image ที่ป้อนในตำแหน่งที่กำหนดไว้ที่ตำแหน่งกรอบขอบใน boxes กล่องที่ครอบตัดจะถูกปรับขนาดทั้งหมด (ด้วยการแก้ไขแบบไบลิเนียร์หรือเพื่อนบ้านที่ใกล้ที่สุด) เป็น size = [crop_height, crop_width] ผลลัพธ์ที่ได้คือเทนเซอร์ 4 มิติ [num_boxes, crop_height, crop_width, depth] การปรับขนาดจะจัดชิดมุม โดยเฉพาะอย่างยิ่ง หาก boxes = [[0, 0, 1, 1]] วิธีการจะให้ผลลัพธ์ที่เหมือนกันกับการใช้ tf.image.resize_bilinear() หรือ tf.image.resize_nearest_neighbor() (ขึ้นอยู่กับอาร์กิวเมนต์ method ) ด้วย align_corners=True

ข้อโต้แย้ง:

  • ขอบเขต: วัตถุ ขอบเขต
  • ภาพ: เทนเซอร์ 4 มิติของรูปร่าง [batch, image_height, image_width, depth] ทั้ง image_height และ image_width จะต้องเป็นบวก
  • กล่อง: เทนเซอร์ 2 มิติของรูปร่าง [num_boxes, 4] แถวที่ i ของเมตริกซ์ระบุพิกัดของกล่องในภาพ box_ind[i] และระบุไว้ในพิกัดปกติ [y1, x1, y2, x2] ค่าพิกัดที่ทำให้เป็นมาตรฐานของ y ถูกแมปกับพิกัดของภาพที่ y * (image_height - 1) ดังนั้นเนื่องจากช่วง [0, 1] ของความสูงของรูปภาพที่ทำให้เป็นมาตรฐานจะถูกแมปกับ [0, image_height - 1] ในพิกัดความสูงของภาพ เราอนุญาต y1 > y2 ซึ่งในกรณีนี้การครอบตัดตัวอย่างจะเป็นเวอร์ชันพลิกขึ้นและลงของรูปภาพต้นฉบับ มิติความกว้างได้รับการปฏิบัติในทำนองเดียวกัน อนุญาตให้ใช้พิกัดที่ทำให้เป็นมาตรฐานนอกช่วง [0, 1] ได้ ซึ่งในกรณีนี้เราใช้ extrapolation_value เพื่อคาดการณ์ค่าภาพที่ป้อนเข้า
  • box_ind: เทนเซอร์ 1-D ของรูปร่าง [num_boxes] ที่มีค่า int32 ใน [0, batch) ค่าของ box_ind[i] ระบุรูปภาพที่กล่อง i -th อ้างถึง
  • crop_size: เทนเซอร์ 1-D ของ 2 องค์ประกอบ size = [crop_height, crop_width] แพตช์ภาพที่ครอบตัด ทั้งหมด จะถูกปรับขนาดเป็นขนาดนี้ อัตราส่วนภาพของเนื้อหาภาพไม่คงอยู่ ทั้ง crop_height และ crop_width จะต้องเป็นบวก

แอ็ตทริบิวต์ทางเลือก (ดู Attrs ):

  • วิธีการ: สตริงที่ระบุวิธีการสุ่มตัวอย่างสำหรับการปรับขนาด อาจเป็น "bilinear" หรือ "nearest" และตั้งค่าเริ่มต้นเป็น "bilinear" ปัจจุบันรองรับวิธีการสุ่มตัวอย่างสองวิธี: Bilinear และ Nearest Neighbor
  • extrapolation_value: ค่าที่ใช้สำหรับการประมาณค่า เมื่อมี

ผลตอบแทน:

  • Output : เทนเซอร์ 4 มิติของรูปร่าง [num_boxes, crop_height, crop_width, depth]

ตัวสร้างและผู้ทำลาย

CropAndResize (const :: tensorflow::Scope & scope, :: tensorflow::Input image, :: tensorflow::Input boxes, :: tensorflow::Input box_ind, :: tensorflow::Input crop_size)
CropAndResize (const :: tensorflow::Scope & scope, :: tensorflow::Input image, :: tensorflow::Input boxes, :: tensorflow::Input box_ind, :: tensorflow::Input crop_size, const CropAndResize::Attrs & attrs)

คุณลักษณะสาธารณะ

crops
operation

งานสาธารณะ

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

ฟังก์ชันคงที่สาธารณะ

ExtrapolationValue (float x)
Method (StringPiece x)

โครงสร้าง

เทนเซอร์โฟลว์ :: ops :: CropAndResize :: Attrs

ตัวตั้งค่าแอตทริบิวต์เพิ่มเติมสำหรับ CropAndResize

คุณลักษณะสาธารณะ

พืชผล

::tensorflow::Output crops

การดำเนินการ

Operation operation

งานสาธารณะ

ครอบตัดและปรับขนาด

 CropAndResize(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image,
  ::tensorflow::Input boxes,
  ::tensorflow::Input box_ind,
  ::tensorflow::Input crop_size
)

ครอบตัดและปรับขนาด

 CropAndResize(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image,
  ::tensorflow::Input boxes,
  ::tensorflow::Input box_ind,
  ::tensorflow::Input crop_size,
  const CropAndResize::Attrs & attrs
)

โหนด

::tensorflow::Node * node() const 

ตัวดำเนินการ::tensorflow::อินพุต

 operator::tensorflow::Input() const 

ตัวดำเนินการ::tensorflow::เอาต์พุต

 operator::tensorflow::Output() const 

ฟังก์ชันคงที่สาธารณะ

การคาดการณ์ค่า

Attrs ExtrapolationValue(
  float x
)

วิธี

Attrs Method(
  StringPiece x
)