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