StatelessSampleDistortedBoundingBox

lớp cuối cùng công khai StatelessSampleDistortedBoundingBox

Tạo hộp giới hạn bị biến dạng ngẫu nhiên cho hình ảnh một cách xác định.

Các chú thích hộp giới hạn thường được cung cấp cùng với các nhãn thực tế trong các nhiệm vụ nhận dạng hình ảnh hoặc bản địa hóa đối tượng. Một kỹ thuật phổ biến để huấn luyện một hệ thống như vậy là làm biến dạng hình ảnh một cách ngẫu nhiên trong khi vẫn giữ nguyên nội dung của nó, tức là tăng cường dữ liệu . Op này, với cùng một `seed`, sẽ đưa ra một cách xác định một bản địa hóa bị biến dạng ngẫu nhiên của một đối tượng, tức là hộp giới hạn, được cung cấp một `image_size`, `bounding_boxes` và một loạt các ràng buộc.

Đầu ra của Op này là một hộp giới hạn duy nhất có thể được sử dụng để cắt ảnh gốc. Đầu ra được trả về dưới dạng 3 tensor: `begin`, `size` và `bboxes`. 2 tensor đầu tiên có thể được đưa trực tiếp vào `tf.slice` để cắt hình ảnh. Cái sau có thể được cung cấp cho `tf.image.draw_bounding_boxes` để trực quan hóa hộp giới hạn trông như thế nào.

Các hộp giới hạn được cung cấp và trả về dưới dạng `[y_min, x_min, y_max, x_max]`. Tọa độ của hộp giới hạn là các số float trong `[0,0, 1,0]` so với chiều rộng và chiều cao của hình ảnh bên dưới.

Đầu ra của Op này được đảm bảo giống nhau với cùng một `seed` và không phụ thuộc vào số lần hàm được gọi và không phụ thuộc vào cài đặt hạt giống chung (ví dụ: `tf.random.set_seed`).

Cách sử dụng ví dụ:

>>> hình ảnh = 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, shape=[1, 1, 4]) >>> Seed = (1, 2 ) >>> # Tạo một khung giới hạn bị biến dạng. >>> bbox_begin, bbox_size, bbox_draw = ( ... tf.image.stateless_sample_distorted_bounding_box( ... tf.shape(image),bounding_boxes=bbox,seed=seed)) >>> # Sử dụng hộp giới hạn để làm biến dạng hình ảnh . >>> tf.slice(image, bbox_begin, bbox_size) >>> # Vẽ khung giới hạn trong tóm tắt hình ảnh. >>> màu = 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, màu sắc)

Lưu ý rằng nếu không có thông tin về hộp giới hạn, việc đặt `use_image_if_no_bounding_boxes = true` sẽ cho rằng có một hộp giới hạn ẩn duy nhất bao phủ toàn bộ hình ảnh. Nếu `use_image_if_no_bounding_boxes` là sai và không có hộp giới hạn nào được cung cấp thì sẽ xảy ra lỗi.

Các lớp lồng nhau

lớp học StatelessSampleDistortedBoundingBox.Options Các thuộc tính tùy chọn cho StatelessSampleDistortedBoundingBox

Phương pháp công khai

tĩnh StatelessSampleDistortedBoundingBox.Options
vùngRange (Danh sách<Float> vùngRange)
tĩnh StatelessSampleDistortedBoundingBox.Options
khía cạnhRatioRange (Danh sách<Float> khía cạnhRatioRange)
Đầu ra <Float>
hộp thư ()
3-D có hình dạng `[1, 1, 4]` chứa hộp giới hạn bị biến dạng.
Đầu ra <T>
bắt đầu ()
1-D, chứa `[offset_height, offset_width, 0]`.
static <T mở rộng Số, U mở rộng Số> StatelessSampleDistortedBoundingBox <T>
tạo ( Phạm vi phạm vi, Toán hạng <T> imageSize, Toán hạng <Float> giới hạn, Toán hạng <Float> minObjectCovered, Hạt giống toán hạng <U>, Tùy chọn... tùy chọn)
Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác StatelessSampleDistortedBoundingBox mới.
tĩnh StatelessSampleDistortedBoundingBox.Options
maxAttempts (Số lần thử tối đa dài)
Đầu ra <T>
kích cỡ ()
1-D, chứa `[target_height, target_width, -1]`.
tĩnh StatelessSampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (Sử dụng BooleanImageIfNoBoundingBoxes)

Phương pháp kế thừa

Phương pháp công khai

tĩnh công khai StatelessSampleDistortedBoundingBox.Options vùngRange (Danh sách<Float> vùngRange)

Thông số
phạm vi khu vực Vùng cắt của hình ảnh phải chứa một phần hình ảnh được cung cấp trong phạm vi này.

tĩnh công khai StatelessSampleDistortedBoundingBox.Options khía cạnhRatioRange (Danh sách<Float> khía cạnhRatioRange)

Thông số
khía cạnhRatioRange Vùng bị cắt của hình ảnh phải có tỷ lệ khung hình = chiều rộng/chiều cao trong phạm vi này.

hộp đầu ra công khai <Float> ()

3-D có hình dạng `[1, 1, 4]` chứa hộp giới hạn bị biến dạng. Cung cấp làm đầu vào cho `tf.image.draw_bounding_boxes`.

Đầu ra công khai <T> bắt đầu ()

1-D, chứa `[offset_height, offset_width, 0]`. Cung cấp làm đầu vào cho `tf.slice`.

public static StatelessSampleDistortedBoundingBox <T> tạo ( Phạm vi phạm vi, Toán hạng <T> imageSize, Toán tử <Float> giới hạn Hộp, Toán hạng <Float> minObjectCovered, Hạt giống Toán hạng <U>, Tùy chọn... )

Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác StatelessSampleDistortedBoundingBox mới.

Thông số
phạm vi phạm vi hiện tại
Kích cỡ hình 1-D, chứa `[chiều cao, chiều rộng, kênh]`.
giới hạnhộp 3-D có hình dạng `[batch, N, 4]` mô tả N hộp giới hạn được liên kết với hình ảnh.
minObjectĐược che phủ Vùng bị cắt của hình ảnh phải chứa ít nhất phần này của bất kỳ hộp giới hạn nào được cung cấp. Giá trị của tham số này phải không âm. Trong trường hợp 0, vùng bị cắt không cần chồng lên bất kỳ hộp giới hạn nào được cung cấp.
hạt giống 1-D có hình dạng `[2]`. Hạt giống cho trình tạo số ngẫu nhiên. Phải có dtype `int32` hoặc `int64`. (Khi sử dụng XLA, chỉ cho phép `int32`.)
tùy chọn mang các giá trị thuộc tính tùy chọn
Trả lại
  • một phiên bản mới của StatelessSampleDistortedBoundingBox

public static StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)

Thông số
maxAttempt Số lần thử tạo vùng bị cắt của hình ảnh với các ràng buộc đã chỉ định. Sau `max_attempts` không thành công, hãy trả lại toàn bộ hình ảnh.

Kích thước đầu ra công khai <T> ()

1-D, chứa `[target_height, target_width, -1]`. Cung cấp làm đầu vào cho `tf.slice`.

public static StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (Boolean useImageIfNoBoundingBoxes)

Thông số
useImageIfNoBoundingBoxes Kiểm soát hành vi nếu không có hộp giới hạn nào được cung cấp. Nếu đúng, giả sử một hộp giới hạn ngầm bao phủ toàn bộ đầu vào. Nếu sai, hãy đưa ra một lỗi.