tensorflow::ops::SampleDistortedBoundingBox

#include <image_ops.h>

Tạo một khung bao ngẫu nhiên bị biến dạng cho một hình ảnh.

Bản tóm tắt

Thông tin về hộp giới hạn thường được cung cấp bổ sung cho nhãn dữ liệu thực trong các tác vụ nhận dạng hình ảnh hoặc định vị đối tượng. Một kỹ thuật phổ biến để huấn luyện hệ thống như vậy là làm biến dạng ngẫu nhiên hình ảnh 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 xuất ra một vị trí 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, dựa trên kích image_size ), số lượng hộp giới hạn bounding_boxes và một loạt các ràng buộc.

Kết quả của thao tác 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. Kết quả được trả về dưới dạng 3 tensor: begin , size và bboxes . Hai tensor đầu tiên có thể được đưa trực tiếp vào tf.slice để cắt ảnh. Tensor cuối cùng có thể được cung cấp cho tf.image.draw_bounding_boxes để trực quan hóa hình dạng của hộp giới hạn.

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ố thực trong khoảng [0.0, 1.0] so với chiều rộng và chiều cao của ảnh nền.

Ví dụ,

    # Generate a single distorted bounding box.
    begin, size, bbox_for_draw = tf.image.sample_distorted_bounding_box(
        tf.shape(image),
        bounding_boxes=bounding_boxes)

    # Draw the bounding box in an image summary.
    image_with_box = tf.image.draw_bounding_boxes(tf.expand_dims(image, 0),
                                                  bbox_for_draw)
    tf.summary.image('images_with_box', image_with_box)

    # Employ the bounding box to distort the image.
    distorted_image = tf.slice(image, begin, size)

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ẽ giả định có một hộp giới hạn ngầm định duy nhất bao phủ toàn bộ hình ảnh. Nếu use_image_if_no_bounding_boxes là false và không có hộp giới hạn nào được cung cấp, lỗi sẽ được báo cáo.

Luận điểm:

  • phạm vi: Một đối tượng Phạm vi
  • image_size: 1 chiều, bao gồm [height, width, channels] .
  • bounding_boxes: 3-D với hình dạng [batch, N, 4] mô tả N hộp giới hạn liên quan đến hình ảnh.

Các thuộc tính tùy chọn (xem Attrs ):

  • seed: Nếu seed hoặc seed2 được đặt thành giá trị khác 0, bộ tạo số ngẫu nhiên sẽ được gieo hạt bằng seed đã cho. Nếu không, nó sẽ được gieo hạt bằng một seed ngẫu nhiên.
  • seed2: Một seed thứ hai để tránh xung đột seed.
  • min_object_covered: Vùng ảnh được cắt phải chứa ít nhất một phần nhỏ này của bất kỳ khung giới hạn nào được cung cấp. Giá trị của tham số này phải là số không âm. Trong trường hợp bằng 0, vùng được cắt không cần phải chồng lấn lên bất kỳ khung giới hạn nào được cung cấp.
  • aspect_ratio_range: Vùng ảnh được cắt phải có tỷ lệ khung hình = chiều rộng / chiều cao nằm trong phạm vi này.
  • area_range: Vùng ảnh được cắt phải chứa một phần của ảnh gốc nằm trong phạm vi này.
  • max_attempts: Số lần thử tạo vùng cắt của ảnh theo các ràng buộc đã chỉ định. Sau max_attempts thất bại, trả về toàn bộ ảnh.
  • use_image_if_no_bounding_boxes: Điều khiển hành vi nếu không cung cấp hộp giới hạn. Nếu true, giả định có một hộp giới hạn ngầm định bao phủ toàn bộ đầu vào. Nếu false, báo lỗi.

Trả về:

  • Output bắt đầu: 1 chiều, chứa [offset_height, offset_width, 0] . Cung cấp làm đầu vào cho tf.slice .
  • Kích thước Output : 1 chiều, chứa [target_height, target_width, -1] . Cung cấp làm đầu vào cho tf.slice .
  • Output : 3D 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 .

Hàm khởi tạo và hàm hủy

SampleDistortedBoundingBox (const :: tensorflow::Scope & scope, :: tensorflow::Input image_size, :: tensorflow::Input bounding_boxes)
SampleDistortedBoundingBox (const :: tensorflow::Scope & scope, :: tensorflow::Input image_size, :: tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::Attrs & attrs)

Thuộc tính công khai

bboxes
begin
operation
size

Các hàm tĩnh công khai

AreaRange (const gtl::ArraySlice< float > & x)
AspectRatioRange (const gtl::ArraySlice< float > & x)
MaxAttempts (int64 x)
MinObjectCovered (float x)
Seed (int64 x)
Seed2 (int64 x)
UseImageIfNoBoundingBoxes (bool x)

Cấu trúc

tensorflow::ops::SampleDistortedBoundingBox::Attrs

Các thiết lập thuộc tính tùy chọn cho SampleDistortedBoundingBox .

Thuộc tính công khai

hộp b

::tensorflow::Output bboxes

bắt đầu

::tensorflow::Output begin

hoạt động

Operation operation

kích cỡ

::tensorflow::Output size

Chức năng công cộng

Hộp giới hạn bị biến dạng mẫu

 SampleDistortedBoundingBox(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes
)

Hộp giới hạn bị biến dạng mẫu

 SampleDistortedBoundingBox(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes,
  const SampleDistortedBoundingBox::Attrs & attrs
)

Các hàm tĩnh công khai

Khu vực phạm vi

Attrs AreaRange(
  const gtl::ArraySlice< float > & x
)

AspectRatioRange

Attrs AspectRatioRange(
  const gtl::ArraySlice< float > & x
)

Số lần thử tối đa

Attrs MaxAttempts(
  int64 x
)

MinObjectCovered

Attrs MinObjectCovered(
  float x
)

Hạt giống

Attrs Seed(
  int64 x
)

Hạt giống2

Attrs Seed2(
  int64 x
)

UseImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)