dòng chảy :: hoạt động :: SampleDistortedBoundsBox

#include <image_ops.h>

Tạo một hộp giới hạn bị bóp méo ngẫu nhiên cho một hình ảnh.

Tóm lược

Các chú thích của hộp giới hạn thường được cung cấp cùng với các nhãn xác thực trong các tác 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 để đào tạo một hệ thống như vậy là làm sai lệch ngẫu nhiên một hình ảnh trong khi vẫn bảo toàn nội dung của nó, tức là tăng dữ liệu . Op này xuất ra một nội địa hóa bị bóp méo một cách ngẫu nhiên của một đối tượng, tức là bounding box, đưa ra một image_size , bounding_boxes và một loạt các trở ngại.

Đầ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 tensors đầu tiên có thể được đưa trực tiếp vào tf.slice để cắt hình ảnh. Phần sau có thể được cung cấp cho tf.image.draw_bounding_boxes để hình dung 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ề là [y_min, x_min, y_max, x_max] . Tọa độ hộp giới hạn được thả nổi 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ẽ giả sử có một hộp giới hạn ngầm 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, thì sẽ xảy ra lỗi.

Tranh luận:

  • phạm vi: Một đối tượng Phạm vi
  • image_size: 1-D, chứa [height, width, channels] .
  • các hộp giới hạn: 3-D với shape [batch, N, 4] mô tả N hộp giới hạn được liên kết với hình ảnh.

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

  • hạt giống: Nếu một trong hai seed hoặc seed2 được thiết lập để không, các bộ tạo số ngẫu nhiên được cấy bằng cho seed . Nếu không, nó được gieo bởi một hạt ngẫu nhiên.
  • seed2: Hạt giống thứ hai để tránh hạt bị va chạm.
  • min_object_covered: Vùng được 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 không được âm. Trong trường hợp bằng 0, vùng đã 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 được 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.
  • area_range: Vùng được cắt của hình ảnh phải chứa một phần nhỏ của hình ảnh được cung cấp trong phạm vi này.
  • max_attempts: Số lần cố gắng tạo vùng cắt của hình ảnh của các ràng buộc được chỉ định. Sau khi lỗi max_attempts , hãy trả lại toàn bộ hình ảnh.
  • use_image_if_no_bounds_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, hãy giả sử một hộp giới hạn ngầm bao phủ toàn bộ dữ liệu đầu vào. Nếu sai, hãy nêu ra lỗi.

Lợi nhuận:

  • Output bắt đầu: 1-D, chứa [offset_height, offset_width, 0] . Cung cấp dưới dạng đầu vào cho tf.slice .
  • Kích thước Output : 1-D, chứa [target_height, target_width, -1] . Cung cấp dưới dạng đầu vào cho tf.slice .
  • Output hộp Output : 3-D với hình dạng [1, 1, 4] chứa hộp giới hạn bị méo. Cung cấp dưới dạng đầu vào cho tf.image.draw_bounding_boxes .

Người xây dựng và Người phá 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 chức năng 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 :: SampleDistortedBoundsBox :: Attrs

Bộ thiết lập thuộc tính tùy chọn cho SampleDistortedBoundsBox .

Thuộc tính công khai

bboxes

::tensorflow::Output bboxes

bắt đầu

::tensorflow::Output begin

hoạt động

Operation operation

kích thước

::tensorflow::Output size

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

SampleDistortedBoundsBox

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

SampleDistortedBoundsBox

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

Các chức năng tĩnh công khai

AreaRange

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

AspectRatioRange

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

MaxAttempts

Attrs MaxAttempts(
  int64 x
)

MinObjectCovered

Attrs MinObjectCovered(
  float x
)

Hạt giống

Attrs Seed(
  int64 x
)

Seed2

Attrs Seed2(
  int64 x
)

UseImageIfNoBoundsBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)