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
, size
và bboxes
. 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ặcseed2
được thiết lập để không, các bộ tạo số ngẫu nhiên được cấy bằng choseed
. 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 chotf.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 chotf.slice
. -
Output
hộpOutput
: 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 chotf.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 )