جریان تنسور:: عملیات:: SampleDistortedBoundingBox
#include <image_ops.h>
یک جعبه مرزی منفرد با تحریف تصادفی برای یک تصویر ایجاد کنید.
خلاصه
حاشیهنویسیهای جعبه مرزی اغلب علاوه بر برچسبهای حقیقت پایه در وظایف تشخیص تصویر یا محلیسازی شی ارائه میشوند. یک تکنیک رایج برای آموزش چنین سیستمی تحریف تصادفی یک تصویر در حالی که محتوای آن حفظ می شود، یعنی افزایش داده ها است. این Op یک محلی سازی تصادفی تحریف شده از یک شی را خروجی می دهد، به عنوان مثال جعبه محدود، با توجه به image_size
، bounding_boxes
و یک سری محدودیت.
خروجی این Op یک جعبه محدود است که ممکن است برای برش تصویر اصلی استفاده شود. خروجی به صورت 3 تانسور برگردانده می شود: begin
، size
و bboxes
. 2 تانسور اول را می توان مستقیماً به tf.slice
وارد کرد تا تصویر را برش دهد. دومی ممکن است به tf.image.draw_bounding_boxes
ارائه شود تا بتوانید شکل جعبه مرزی را تجسم کنید.
جعبههای مرزبندی به صورت [y_min, x_min, y_max, x_max]
ارائه و برگردانده میشوند. مختصات جعبه مرزی نسبت به عرض و ارتفاع تصویر زیرین در [0.0, 1.0]
شناور هستند.
به عنوان مثال،
# 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)
توجه داشته باشید که اگر هیچ اطلاعات جعبه مرزی در دسترس نباشد، با تنظیم use_image_if_no_bounding_boxes = true
فرض میکنیم که یک کادر محدود ضمنی وجود دارد که کل تصویر را پوشش میدهد. اگر use_image_if_no_bounding_boxes
نادرست باشد و هیچ جعبه محدودکننده ای ارائه نشده باشد، یک خطا ایجاد می شود.
استدلال ها:
- scope: یک شی Scope
- image_size: 1-D، حاوی
[height, width, channels]
. - bounding_boxes: 3-D با شکل
[batch, N, 4]
که N کادر محدود مرتبط با تصویر را توصیف می کند.
ویژگی های اختیاری (به Attrs
مراجعه کنید):
- seed: اگر
seed
یاseed2
روی غیر صفر تنظیم شود، مولد اعداد تصادفی توسطseed
داده شده بذر می شود. در غیر این صورت، توسط یک بذر تصادفی بذر می شود. - seed2: دانه دوم برای جلوگیری از برخورد دانه.
- min_object_covered: ناحیه برش خورده تصویر باید حداقل شامل این کسری از هر جعبه محدود ارائه شده باشد. مقدار این پارامتر باید غیر منفی باشد. در مورد 0، ناحیه برش داده شده نیازی به همپوشانی با هیچ یک از جعبه های محدود کننده ارائه شده ندارد.
- aspect_ratio_range: ناحیه برش خورده تصویر باید دارای نسبت ابعاد = عرض / ارتفاع در این محدوده باشد.
- area_range: ناحیه برش خورده تصویر باید شامل کسری از تصویر ارائه شده در این محدوده باشد.
- max_attempts: تعداد تلاش برای ایجاد یک ناحیه برش خورده از تصویر محدودیت های مشخص شده. پس از شکست
max_attempts
، کل تصویر را برگردانید. - use_image_if_no_bounding_boxes: در صورت عدم ارائه کادر محدود، رفتار را کنترل می کند. اگر درست است، یک جعبه مرزی ضمنی را فرض کنید که کل ورودی را پوشش می دهد. اگر نادرست است، یک خطا را مطرح کنید.
برمی گرداند:
- شروع
Output
: 1-D، حاوی[offset_height, offset_width, 0]
. به عنوان ورودی بهtf.slice
ارائه دهید. - اندازه
Output
: 1-D، حاوی[target_height, target_width, -1]
. به عنوان ورودی بهtf.slice
ارائه دهید. - bboxهای
Output
: 3-بعدی با شکل[1, 1, 4]
حاوی جعبه مرزی تحریف شده. به عنوان ورودیtf.image.draw_bounding_boxes
ارائه دهید.
سازندگان و ویرانگرها | |
---|---|
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) |
صفات عمومی | |
---|---|
bboxes | |
begin | |
operation | |
size |
توابع استاتیک عمومی | |
---|---|
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) |
سازه ها | |
---|---|
tensorflow:: ops:: SampleDistortedBoundingBox:: Attrs | تنظیم کننده های ویژگی اختیاری برای SampleDistortedBoundingBox . |
صفات عمومی
bboxes
::tensorflow::Output bboxes
آغاز شود
::tensorflow::Output begin
عملیات
Operation operation
اندازه
::tensorflow::Output size
توابع عمومی
SampleDistortedBoundingBox
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes )
SampleDistortedBoundingBox
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::Attrs & attrs )
توابع استاتیک عمومی
محدوده مساحتی
Attrs AreaRange( const gtl::ArraySlice< float > & x )
Aspect Ratio Range
Attrs AspectRatioRange( const gtl::ArraySlice< float > & x )
MaxAttempts
Attrs MaxAttempts( int64 x )
MinObject Covered
Attrs MinObjectCovered( float x )
بذر
Attrs Seed( int64 x )
دانه 2
Attrs Seed2( int64 x )
از جعبه های ImageIfNoBounding استفاده کنید
Attrs UseImageIfNoBoundingBoxes( bool x )
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2024-11-18 بهوقت ساعت هماهنگ جهانی.