dòng chảy căng:: ôi:: MẫuMéo BoundingHộp

#include <image_ops.h>

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

Bản tóm tắt

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 tạo ra 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 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 , sizebboxes . 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.

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ẽ 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.

Lập luận:

  • phạm vi: Một đối tượng Phạm vi
  • image_size: 1-D, chứa [height, width, channels] .
  • giới hạn_boxes: 3-D với 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.

Thuộc tính tùy chọn (xem Attrs ):

  • hạt giống: Nếu seed hoặc seed2 được đặt thành khác 0, trình tạo số ngẫu nhiên sẽ được gieo seed đã cho. Nếu không, nó sẽ được gieo bởi một hạt giống ngẫu nhiên.
  • Seed2: Hạt giống thứ hai để tránh va chạm hạt giống.
  • min_object_covered: 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.
  • khía cạnh_ratio_range: 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.
  • vùng_range: Vùng bị 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.
  • max_attempts: 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.
  • use_image_if_no_bounding_boxes: 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 ẩn bao phủ toàn bộ đầu vào. Nếu sai, hãy đưa ra một lỗi.

Trả về:

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

Hàm 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

Bộ cài đặt thuộc tính tùy chọn cho SampleDistortedBoundingBox .

Thuộc tính công khai

hộp thư

::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

MẫuMéo BoundingBox

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

MẫuMéo BoundingBox

 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

Phạm vi khu vực

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

Tỷ lệ khung hìnhPhạm vi

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

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

Attrs MaxAttempts(
  int64 x
)

đối tượng tối thiểu được che phủ

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
)