جریان تنسور:: عملیات:: 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
)