สร้างกรอบขอบที่บิดเบี้ยวแบบสุ่มสำหรับรูปภาพตามที่กำหนด
คำอธิบายประกอบแบบ 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) โปรดทราบว่าหากไม่มีข้อมูลกรอบขอบเขต การตั้งค่า `use_image_if_no_bounding_boxes = true` จะถือว่ามีกรอบขอบเขตโดยนัยเพียงกล่องเดียวที่ครอบคลุมทั้งรูปภาพ หาก `use_image_if_no_bounding_boxes` เป็นเท็จและไม่มีการระบุกรอบล้อมรอบ จะเกิดข้อผิดพลาดขึ้น
คลาสที่ซ้อนกัน
ระดับ | StatelessSampleDistortedBoundingBox.Options | แอ็ตทริบิวต์ทางเลือกสำหรับ StatelessSampleDistortedBoundingBox |
ค่าคงที่
สตริง | OP_NAME | ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow |
วิธีการสาธารณะ
StatelessSampleDistortedBoundingBox.Options แบบคงที่ | areaRange (รายการ <Float> areaRange) |
StatelessSampleDistortedBoundingBox.Options แบบคงที่ | อัตราส่วนกว้างยาว (รายการ<ลอย> อัตราส่วนกว้างยาว) |
เอาท์พุต < TFloat32 > | บีบ็อกซ์ () 3-D ที่มีรูปร่าง `[1, 1, 4]` มีกรอบขอบที่บิดเบี้ยว |
เอาท์พุต <T> | เริ่ม () 1-D ประกอบด้วย `[offset_height, offset_width, 0]` |
คง <T ขยาย TNumber > StatelessSampleDistortedBoundingBox <T> | สร้าง (ขอบเขต ขอบเขต ตัว ดำเนินการ <T> imageSize ตัวดำเนินการ < TFloat32 > boundingBoxes ตัวดำเนินการ < TFloat32 > minObjectCovered ตัวดำเนินการ <? ขยาย TNumber > เมล็ด ตัวเลือก... ตัวเลือก) วิธีการจากโรงงานเพื่อสร้างคลาสที่ห่อการดำเนินการ StatelessSampleDistortedBoundingBox ใหม่ |
StatelessSampleDistortedBoundingBox.Options แบบคงที่ | maxAttempts (ยาว maxAttempts) |
เอาท์พุต <T> | ขนาด () 1-D ประกอบด้วย `[target_height, target_width, -1]` |
StatelessSampleDistortedBoundingBox.Options แบบคงที่ | useImageIfNoBoundingBoxes (บูลีน useImageIfNoBoundingBoxes) |
วิธีการสืบทอด
ค่าคงที่
สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME
ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow
วิธีการสาธารณะ
สาธารณะแบบคงที่ StatelessSampleDistortedBoundingBox.Options areaRange (รายการ <Float> areaRange)
พารามิเตอร์
พื้นที่ช่วง | พื้นที่ครอบตัดของรูปภาพจะต้องมีเศษของรูปภาพที่ให้มาภายในช่วงนี้ |
---|
สาธารณะคง StatelessSampleDistortedBoundingBox.Options อัตราส่วนกว้างยาว (รายการ <ลอย> อัตราส่วนกว้างยาว)
พารามิเตอร์
อัตราส่วนกว้างยาว | พื้นที่ครอบตัดของรูปภาพต้องมีอัตราส่วน = ความกว้าง / ความสูงภายในช่วงนี้ |
---|
เอาท์พุท สาธารณะ < TFloat32 > bboxes ()
3-D ที่มีรูปร่าง `[1, 1, 4]` มีกรอบขอบที่บิดเบี้ยว ระบุเป็นอินพุตให้กับ tf.image.draw_bounding_boxes
เอาท์พุท สาธารณะ <T> เริ่มต้น ()
1-D ประกอบด้วย `[offset_height, offset_width, 0]` ให้เป็นอินพุตไปยัง tf.slice
สาธารณะคง StatelessSampleDistortedBoundingBox <T> สร้าง (ขอบเขต ขอบเขต ตัว ดำเนินการ <T> ขนาดรูปภาพ ตัวดำเนินการ < TFloat32 > boundingBoxes ตัวดำเนินการ < TFloat32 > minObjectCovered, ตัวดำเนินการ <? ขยาย TNumber > เมล็ด ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่ห่อการดำเนินการ 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 | ควบคุมลักษณะการทำงานหากไม่มีกล่องขอบมาให้ หากเป็นจริง ให้ถือว่ากรอบขอบเขตโดยนัยครอบคลุมอินพุตทั้งหมด หากเป็นเท็จ ให้แจ้งข้อผิดพลาด |
---|