สร้างกล่องขอบเขตที่บิดเบี้ยวแบบสุ่มสำหรับรูปภาพที่กำหนด
การเพิ่มคำอธิบายประกอบของกล่องที่มีขอบเขตมักจะให้มานอกเหนือจากป้ายกำกับจริงในการจดจำรูปภาพหรืองานการแปลวัตถุ เทคนิคทั่วไปสำหรับการฝึกอบรมระบบดังกล่าว คือการสุ่มบิดเบือนรูปภาพในขณะที่ยังคงรักษาเนื้อหาไว้ เช่น การเสริมข้อมูล Op นี้ได้รับ `seed' เดียวกันโดยกำหนดเอาท์พุตการแปลวัตถุที่ถูกบิดเบือนแบบสุ่ม เช่น bounding box กำหนด `image_size`, `bounding_boxes` และชุดของข้อจำกัด
ผลลัพธ์ของ Op นี้เป็นกล่องที่มีขอบเขตเดียวที่อาจใช้ในการครอบตัดรูปภาพต้นฉบับ ผลลัพธ์จะถูกส่งกลับเป็น 3 เทนเซอร์: 'เริ่มต้น', 'ขนาด' และ 'bboxes' สามารถป้อนเทนเซอร์ 2 ตัวแรกลงใน tf.slice
เพื่อครอบตัดรูปภาพได้โดยตรง หลังอาจถูกส่งไปยัง tf.image.draw_bounding_boxes
เพื่อให้เห็นภาพว่ากล่องขอบเขตมีลักษณะอย่างไร
มีการส่งกรอบล้อมรอบและส่งกลับเป็น `[y_min, x_min, y_max, x_max]` พิกัดของกรอบล้อมรอบจะลอยอยู่ใน `[0.0, 1.0]` ซึ่งสัมพันธ์กับความกว้างและความสูงของรูปภาพต้นแบบ
ผลลัพธ์ของ Op นี้รับประกันว่าจะเหมือนกันเมื่อให้ `seed' เดียวกัน และไม่ขึ้นกับจำนวนครั้งที่เรียกใช้ฟังก์ชัน และไม่ขึ้นกับการตั้งค่า global seed (เช่น tf.random.set_seed
)
ตัวอย่างการใช้งาน:
>>> image = 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]) >>> เมล็ด = (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) โปรดทราบว่าหากไม่มีข้อมูลกล่องขอบเขต การตั้งค่า `use_image_if_no_bounding_boxes = true` จะถือว่ามีกรอบล้อมรอบโดยนัยเพียงกล่องเดียวที่ครอบคลุมทั้งภาพ หาก `use_image_if_no_bounding_boxes` เป็นเท็จและไม่ได้ระบุกล่องขอบเขตไว้ จะเกิดข้อผิดพลาดขึ้น
คลาสที่ซ้อนกัน
ระดับ | StatelessSampleDistortedBoundingBox.Options | แอ็ตทริบิวต์ทางเลือกสำหรับ StatelessSampleDistortedBoundingBox |
วิธีการสาธารณะ
คง StatelessSampleDistortedBoundingBox.Options | areaRange (รายการ<Float> areaRange) |
คง StatelessSampleDistortedBoundingBox.Options | widthRatioRange (รายการ <Float> widthRatioRange) |
เอาท์พุต <โฟลต> | กล่องข้อความ () 3-D ที่มีรูปร่าง `[1, 1, 4]` ที่มีกล่องขอบเขตที่บิดเบี้ยว |
เอาท์พุต <T> | เริ่ม () 1-D ประกอบด้วย `[offset_height, offset_width, 0]` |
คงที่ <T ขยายจำนวน U ขยายจำนวน> StatelessSampleDistortedBoundingBox <T> | สร้าง ( ขอบเขต ขอบเขต, ตัวถูกดำเนินการ <T> imageSize , ตัวถูกดำเนิน การ <Float> boundingBoxes, ตัวถูกดำเนินการ <Float> minObjectCovered , ตัวถูกดำเนิน การ <U> เมล็ด, ตัวเลือก... ) วิธีการ Factory เพื่อสร้างคลาสที่ปิดการดำเนินการ StatelessSampleDistortedBoundingBox ใหม่ |
คง StatelessSampleDistortedBoundingBox.Options | maxAttempts (ลอง maxAttempts นาน) |
เอาท์พุต <T> | ขนาด () 1-D ประกอบด้วย `[target_height, target_width, -1]` |
คง StatelessSampleDistortedBoundingBox.Options | useImageIfNoBoundingBoxes (บูลีน useImageIfNoBoundingBoxes) |
วิธีการสืบทอด
วิธีการสาธารณะ
ส แตติกสาธารณะ StatelessSampleDistortedBoundingBox.Options areaRange (List<Float> areaRange)
พารามิเตอร์
พื้นที่ช่วง | พื้นที่ครอบตัดของรูปภาพต้องมีเศษส่วนของรูปภาพที่ให้มาภายในช่วงนี้ |
---|
ส แตติกสาธารณะ StatelessSampleDistortedBoundingBox.Options widthRatioRange (List<Float> widthRatioRange)
พารามิเตอร์
มุมมองอัตราส่วนช่วง | พื้นที่ครอบตัดของรูปภาพต้องมีอัตราส่วนกว้างยาว = กว้าง / สูงภายในช่วงนี้ |
---|
เอาต์พุต สาธารณะ <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> ตัวเลือก... )
วิธีการ Factory เพื่อสร้างคลาสที่ปิดการดำเนินการ StatelessSampleDistortedBoundingBox ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
ขนาดรูปภาพ | 1-D ประกอบด้วย `[ความสูง ความกว้าง ช่อง]` |
boundingBoxes | 3-D ที่มีรูปร่าง `[batch, N, 4]` ที่อธิบายกล่องล้อมรอบ N ที่เกี่ยวข้องกับรูปภาพ |
minObjectCovered | พื้นที่ครอบตัดของรูปภาพต้องมีอย่างน้อยเศษส่วนของกรอบล้อมรอบที่ให้มา ค่าของพารามิเตอร์นี้ไม่ควรเป็นค่าลบ ในกรณีของ 0 พื้นที่ที่ครอบตัดไม่จำเป็นต้องซ้อนทับกล่องล้อมรอบที่ให้มา |
เมล็ดพันธุ์ | 1-D ที่มีรูปร่าง `[2]` เมล็ดพันธุ์สู่เครื่องกำเนิดตัวเลขสุ่ม ต้องมี dtype "int32" หรือ "int64" (เมื่อใช้ XLA จะอนุญาตเฉพาะ "int32" เท่านั้น) |
ตัวเลือก | ดำเนินการค่าแอตทริบิวต์ทางเลือก |
คืนสินค้า
- ตัวอย่างใหม่ของ StatelessSampleDistortedBoundingBox
ส แตติกสาธารณะ StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)
พารามิเตอร์
maxAttempts | จำนวนครั้งที่พยายามสร้างพื้นที่ครอบตัดของรูปภาพตามข้อจำกัดที่ระบุ หลังจาก `max_attempts` ล้มเหลว ให้ส่งคืนรูปภาพทั้งหมด |
---|
ขนาด เอาท์พุท สาธารณะ <T> ()
1-D ประกอบด้วย `[target_height, target_width, -1]` ระบุเป็นข้อมูลเข้า tf.slice
ส แตติก StatelessSampleDistortedBoundingBox.Options สาธารณะแบบคงที่ useImageIfNoBoundingBoxes (ใช้บูลีน ImageIfNoBoundingBoxes)
พารามิเตอร์
useImageIfNoBoundingBoxes | ควบคุมพฤติกรรมหากไม่มีกรอบล้อมรอบ ถ้าเป็นจริง ให้สมมติกล่องขอบเขตโดยนัยที่ครอบคลุมอินพุตทั้งหมด หากเป็นเท็จ ทำให้เกิดข้อผิดพลาด |
---|