StatelessSampleDistortedBoundingBox

คลาสสุดท้ายสาธารณะ StatelessSampleDistortedBoundingBox

สร้างกรอบขอบที่บิดเบี้ยวแบบสุ่มสำหรับรูปภาพตามที่กำหนด

คำอธิบายประกอบแบบ Bounding Box มักจะจัดเตรียมไว้นอกเหนือจากป้ายกำกับความเป็นจริงในการจดจำรูปภาพหรืองานการแปลวัตถุ เทคนิคทั่วไปในการฝึกระบบดังกล่าวคือการสุ่มบิดเบือนรูปภาพโดยยังคงรักษาเนื้อหาไว้ เช่น การเพิ่มข้อมูล Op นี้ ซึ่งได้รับ `seed` เดียวกัน จะส่งออกการแปลออบเจ็กต์ที่บิดเบี้ยวแบบสุ่มตามที่กำหนด เช่น Bounding Box โดยให้ `image_size`, `bounding_boxes` และชุดของข้อจำกัด

ผลลัพธ์ของ Op นี้คือกล่องขอบเขตเดียวที่อาจใช้ในการครอบตัดรูปภาพต้นฉบับ เอาต์พุตจะถูกส่งกลับเป็นเทนเซอร์ 3 ตัว: `begin`, `size` และ `bboxes` เทนเซอร์ 2 ตัวแรกสามารถป้อนลงใน `tf.slice` ได้โดยตรงเพื่อครอบตัดรูปภาพ ส่วนหลังอาจถูกส่งไปยัง `tf.image.draw_bounding_boxes` เพื่อให้เห็นภาพว่ากล่องขอบเขตมีลักษณะอย่างไร

กล่องขอบเขตจะถูกจัดเตรียมและส่งกลับเป็น `[y_min, x_min, y_max, x_max]` พิกัดของกรอบขอบจะลอยอยู่ใน `[0.0, 1.0]` ซึ่งสัมพันธ์กับความกว้างและความสูงของรูปภาพที่อยู่ด้านล่าง

ผลลัพธ์ของ Op นี้รับประกันว่าจะเหมือนกันเมื่อมี `seed` เดียวกัน และไม่ขึ้นอยู่กับจำนวนครั้งที่เรียกใช้ฟังก์ชัน และไม่ขึ้นอยู่กับการตั้งค่าเมล็ดพันธุ์ส่วนกลาง (เช่น `tf.random.set_seed`)

ตัวอย่างการใช้งาน:

>>> รูปภาพ = np.array([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9] ]]) >>> bbox = tf.constant( ... [0.0, 0.0, 1.0, 1.0], dtype=tf.float32, รูปร่าง=[1, 1, 4]) >>> seed = (1, 2 ) >>> # สร้างกล่องขอบเขตที่บิดเบี้ยวเพียงกล่องเดียว >>> bbox_begin, bbox_size, bbox_draw = ( ... tf.image.stateless_sample_distorted_bounding_box( ... tf.shape(image), bounding_boxes=bbox, seed=seed)) >>> # ใช้ bounding box เพื่อบิดเบือนภาพ . >>> tf.slice (รูปภาพ, bbox_begin, bbox_size) >>> # วาดกรอบขอบในภาพสรุป >>> สี = np.array([[1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) >>> tf.image.draw_bounding_boxes( ... tf.expand_dims(tf.cast(image, tf .float32),0), bbox_draw, สี)

โปรดทราบว่าหากไม่มีข้อมูลกรอบขอบเขต การตั้งค่า `use_image_if_no_bounding_boxes = true` จะถือว่ามีกรอบขอบเขตโดยนัยเพียงกล่องเดียวที่ครอบคลุมทั้งรูปภาพ หาก `use_image_if_no_bounding_boxes` เป็นเท็จและไม่มีการระบุกรอบล้อมรอบ จะเกิดข้อผิดพลาดขึ้น

คลาสที่ซ้อนกัน

ระดับ StatelessSampleDistortedBoundingBox.Options แอ็ตทริบิวต์ทางเลือกสำหรับ StatelessSampleDistortedBoundingBox

วิธีการสาธารณะ

StatelessSampleDistortedBoundingBox.Options แบบคงที่
areaRange (รายการ <Float> areaRange)
StatelessSampleDistortedBoundingBox.Options แบบคงที่
อัตราส่วนกว้างยาว (รายการ<ลอย> อัตราส่วนกว้างยาว)
เอาท์พุต <โฟลต>
บีบ็อกซ์ ()
3-D ที่มีรูปร่าง `[1, 1, 4]` มีกรอบขอบที่บิดเบี้ยว
เอาท์พุต <T>
เริ่ม ()
1-D ประกอบด้วย `[offset_height, offset_width, 0]`
คงที่ <T ขยายหมายเลข U ขยายหมายเลข> StatelessSampleDistortedBoundingBox <T>
สร้าง ( ขอบเขต ขอบเขต , ตัวดำเนินการ <T> imageSize, ตัวดำเนินการ <Float> boundingBoxes, ตัวดำเนินการ <Float> minObjectCovered, ตัวดำเนินการ <U> seed, ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่ห่อการดำเนินการ StatelessSampleDistortedBoundingBox ใหม่
StatelessSampleDistortedBoundingBox.Options แบบคงที่
maxAttempts (ยาว maxAttempts)
เอาท์พุต <T>
ขนาด ()
1-D ประกอบด้วย `[target_height, target_width, -1]`
StatelessSampleDistortedBoundingBox.Options แบบคงที่
useImageIfNoBoundingBoxes (บูลีน useImageIfNoBoundingBoxes)

วิธีการสืบทอด

วิธีการสาธารณะ

สาธารณะแบบคงที่ StatelessSampleDistortedBoundingBox.Options areaRange (รายการ <Float> areaRange)

พารามิเตอร์
พื้นที่ช่วง พื้นที่ครอบตัดของรูปภาพจะต้องมีเศษของรูปภาพที่ให้มาภายในช่วงนี้

สาธารณะคง StatelessSampleDistortedBoundingBox.Options อัตราส่วนกว้างยาว (รายการ <ลอย> อัตราส่วนกว้างยาว)

พารามิเตอร์
อัตราส่วนกว้างยาว พื้นที่ครอบตัดของรูปภาพต้องมีอัตราส่วน = ความกว้าง / ความสูงภายในช่วงนี้

เอาท์พุท สาธารณะ <Float> bboxes ()

3-D ที่มีรูปร่าง `[1, 1, 4]` มีกรอบขอบที่บิดเบี้ยว ระบุเป็นอินพุตให้กับ `tf.image.draw_bounding_boxes`

เอาท์พุท สาธารณะ <T> เริ่มต้น ()

1-D ประกอบด้วย `[offset_height, offset_width, 0]` ระบุเป็นอินพุตของ `tf.slice`

สาธารณะคง StatelessSampleDistortedBoundingBox <T> สร้าง (ขอบเขต ขอบเขต , ตัวดำเนินการ <T> ขนาดรูปภาพ, ตัวดำเนินการ <Float> boundingBoxes, ตัวดำเนินการ <Float> minObjectCovered, ตัวดำเนินการ <U> เมล็ด, ตัวเลือก... ตัวเลือก)

วิธีการจากโรงงานเพื่อสร้างคลาสที่ห่อการดำเนินการ StatelessSampleDistortedBoundingBox ใหม่

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
ขนาดรูปภาพ 1-D ประกอบด้วย `[ความสูง ความกว้าง ช่อง]`
ขอบเขตกล่อง 3-D ที่มีรูปร่าง `[ชุด, N, 4]` อธิบายกล่องขอบ N ที่เกี่ยวข้องกับรูปภาพ
minObjectCovered พื้นที่ครอบตัดของรูปภาพต้องมีเศษของกรอบขอบที่ให้มาอย่างน้อยนี้ ค่าของพารามิเตอร์นี้ไม่ควรเป็นค่าลบ ในกรณีของ 0 พื้นที่ที่ครอบตัดไม่จำเป็นต้องซ้อนทับกับกรอบขอบเขตใดๆ ที่ให้มา
เมล็ดพันธุ์ 1-D ที่มีรูปร่าง `[2]` เมล็ดพืชไปยังเครื่องกำเนิดตัวเลขสุ่ม ต้องมีประเภท `int32` หรือ `int64` (เมื่อใช้ XLA อนุญาตให้ใช้เฉพาะ `int32` เท่านั้น)
ตัวเลือก มีค่าแอตทริบิวต์ทางเลือก
การส่งคืน
  • อินสแตนซ์ใหม่ของ StatelessSampleDistortedBoundingBox

สาธารณะแบบคงที่ StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)

พารามิเตอร์
ความพยายามสูงสุด จำนวนครั้งที่พยายามสร้างขอบเขตที่ครอบตัดของรูปภาพที่มีข้อจำกัดที่ระบุ หลังจากล้มเหลว `max_attempts` ให้ส่งคืนรูปภาพทั้งหมด

ขนาด เอาต์พุต สาธารณะ <T> ()

1-D ประกอบด้วย `[target_height, target_width, -1]` ระบุเป็นอินพุตของ `tf.slice`

สาธารณะ StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (บูลีน useImageIfNoBoundingBoxes)

พารามิเตอร์
useImageIfNoBoundingBoxes ควบคุมลักษณะการทำงานหากไม่มีกล่องขอบมาให้ หากเป็นจริง ให้ถือว่ากรอบขอบเขตโดยนัยครอบคลุมอินพุตทั้งหมด หากเป็นเท็จ ให้แจ้งข้อผิดพลาด