تدفق التوتر:: العمليات:: SampleDistortedBoundingBox

#include <image_ops.h>

قم بإنشاء مربع محيط واحد مشوه بشكل عشوائي للصورة.

ملخص

غالبًا ما يتم توفير التعليقات التوضيحية للمربع المحيط بالإضافة إلى تسميات الحقيقة الأرضية في مهام التعرف على الصور أو تعريب الكائنات. أحد الأساليب الشائعة لتدريب مثل هذا النظام هو تشويه الصورة بشكل عشوائي مع الحفاظ على محتواها، أي زيادة البيانات . تُخرج هذه العملية توطينًا مشوهًا عشوائيًا لكائن ما، أي المربع المحيط، مع إعطاء image_size و bounding_boxes وسلسلة من القيود.

إخراج هذا Op هو مربع محيط واحد يمكن استخدامه لاقتصاص الصورة الأصلية. يتم إرجاع الإخراج على هيئة 3 موترات: begin و size و bboxes . يمكن تغذية الموترين الأولين مباشرةً في 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 خاطئة ولم يتم توفير أي مربعات محيطة، فسيظهر خطأ.

الحجج:

  • النطاق: كائن النطاق
  • image_size: 1-D، تحتوي على [height, width, channels] .
  • bounding_boxes: ثلاثي الأبعاد بالشكل [batch, N, 4] يصف المربعات المحيطة N المرتبطة بالصورة.

السمات الاختيارية (انظر Attrs ):

  • البذرة: إذا تم ضبط seed أو seed2 على قيمة غير صفرية، فسيتم تصنيف مولد الأرقام العشوائية بواسطة seed المعطاة. خلاف ذلك، يتم زرعها بواسطة بذرة عشوائية.
  • بذرة 2: بذرة ثانية لتجنب اصطدام البذور.
  • min_object_covered: يجب أن تحتوي المساحة المقصوصة من الصورة على هذا الجزء على الأقل من أي مربع محيط متوفر. يجب أن تكون قيمة هذه المعلمة غير سلبية. في حالة 0، لا تحتاج المنطقة المقصوصة إلى تداخل أي من المربعات المحيطة المتوفرة.
  • نسبة العرض إلى الارتفاع: يجب أن تكون نسبة العرض إلى الارتفاع للمنطقة المقصوصة من الصورة = العرض / الارتفاع ضمن هذا النطاق.
  • 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 .
  • صناديق Output : ثلاثية الأبعاد بالشكل [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
)

AspectRatioRange

Attrs AspectRatioRange(
  const gtl::ArraySlice< float > & x
)

محاولات ماكس

Attrs MaxAttempts(
  int64 x
)

MinObjectCovered

Attrs MinObjectCovered(
  float x
)

بذرة

Attrs Seed(
  int64 x
)

البذور2

Attrs Seed2(
  int64 x
)

استخدمImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)