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
, 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.
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ặcseed2
được đặt thành khác 0, trình tạo số ngẫu nhiên sẽ được gieoseed
đã 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 ngầm 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 chotf.slice
. - Kích thước
Output
: 1-D, chứa[target_height, target_width, -1]
. Cung cấp làm đầu vào chotf.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 chotf.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 BoundingHộp
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes )
MẫuMéo BoundingHộp
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 )