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
seedhoặcseed2được đặt thành giá trị khác 0, bộ tạo số ngẫu nhiên sẽ được gieo hạt bằngseedđã 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_attemptsthấ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ề:
-
Outputbắt đầu: 1 chiều, chứa[offset_height, offset_width, 0]. Cung cấp làm đầu vào chotf.slice. - Kích thước
Output: 1 chiều, chứa[target_height, target_width, -1]. Cung cấp làm đầu vào chotf.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 chotf.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 )