tensorflow:: ops:: SampleDistortedBoundingBox

#include <image_ops.h>

একটি ছবির জন্য এলোমেলোভাবে বিকৃত একটিমাত্র বাউন্ডিং বক্স তৈরি করুন।

সারসংক্ষেপ

ইমেজ রিকগনিশন বা অবজেক্ট লোক্যালাইজেশন টাস্কে গ্রাউন্ড-ট্রুথ লেবেলের পাশাপাশি প্রায়শই বাউন্ডিং বক্স অ্যানোটেশন সরবরাহ করা হয়। এই ধরনের সিস্টেমকে প্রশিক্ষণের জন্য একটি সাধারণ কৌশল হলো ছবির বিষয়বস্তু অক্ষুণ্ণ রেখে সেটিকে এলোমেলোভাবে বিকৃত করা, অর্থাৎ ডেটা অগমেন্টেশন । এই Op-টি একটি image_size , bounding_boxes এবং একাধিক কনস্ট্রেইন্ট দেওয়া থাকলে, কোনো বস্তুর একটি এলোমেলোভাবে বিকৃত লোক্যালাইজেশন, অর্থাৎ বাউন্ডিং বক্স, আউটপুট হিসেবে প্রদান করে।

এই Op-এর আউটপুট হলো একটি একক বাউন্ডিং বক্স যা মূল ছবিটি ক্রপ করতে ব্যবহার করা যেতে পারে। আউটপুটটি 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 মান false হয় এবং কোনো বাউন্ডিং বক্স সরবরাহ করা না হয়, তাহলে একটি ত্রুটি দেখানো হবে।

যুক্তি:

  • স্কোপ: একটি স্কোপ অবজেক্ট
  • ছবির আকার: ১-মাত্রিক, যার মধ্যে [height, width, channels] অন্তর্ভুক্ত।
  • bounding_boxes: ছবির সাথে সম্পর্কিত N-টি বাউন্ডিং বক্স বর্ণনা করে এমন [batch, N, 4] আকারের একটি ত্রিমাত্রিক চিত্র।

ঐচ্ছিক অ্যাট্রিবিউটসমূহ (দেখুন Attrs ):

  • seed: যদি seed অথবা seed2 মান অশূন্য হয়, তাহলে র‍্যান্ডম নম্বর জেনারেটরটি প্রদত্ত seed দ্বারা চালিত হয়। অন্যথায়, এটি একটি র‍্যান্ডম seed দ্বারা চালিত হয়।
  • seed2: সিড সংঘর্ষ এড়ানোর জন্য একটি দ্বিতীয় সিড।
  • min_object_covered: ছবির ক্রপ করা অংশটিতে অবশ্যই প্রদত্ত যেকোনো বাউন্ডিং বক্সের অন্তত এই ভগ্নাংশটি থাকতে হবে। এই প্যারামিটারের মান অ-ঋণাত্মক হওয়া উচিত। এর মান ০ হলে, ক্রপ করা অংশটির প্রদত্ত কোনো বাউন্ডিং বক্সের সাথে ওভারল্যাপ করার প্রয়োজন নেই।
  • aspect_ratio_range: ছবির ক্রপ করা অংশের অ্যাসপেক্ট রেশিও = প্রস্থ / উচ্চতা অবশ্যই এই সীমার মধ্যে থাকতে হবে।
  • area_range: ছবির ক্রপ করা অংশটি অবশ্যই প্রদত্ত ছবির একটি ভগ্নাংশকে এই সীমার মধ্যে ধারণ করবে।
  • max_attempts: নির্দিষ্ট সীমাবদ্ধতা সাপেক্ষে ছবির একটি ক্রপ করা অংশ তৈরি করার চেষ্টার সংখ্যা। max_attempts বার ব্যর্থ হলে, সম্পূর্ণ ছবিটি ফেরত দেওয়া হবে।
  • use_image_if_no_bounding_boxes: কোনো বাউন্ডিং বক্স সরবরাহ করা না হলে এর আচরণ নিয়ন্ত্রণ করে। যদি true হয়, তাহলে ধরে নেওয়া হবে যে একটি অন্তর্নিহিত বাউন্ডিং বক্স পুরো ইনপুটটিকে আবৃত করছে। যদি false হয়, তাহলে একটি ত্রুটি দেখানো হবে।

ফেরত:

  • Output শুরু: ১-মাত্রিক, যার মধ্যে রয়েছে [offset_height, offset_width, 0] । এটি tf.slice এ ইনপুট হিসেবে প্রদান করুন।
  • Output সাইজ: ১-ডি, যার মধ্যে থাকবে [target_height, target_width, -1] । এটি tf.slice এর ইনপুট হিসেবে প্রদান করুন।
  • Output bboxes: [1, 1, 4] আকৃতির 3-D, যার মধ্যে বিকৃত বাউন্ডিং বক্সটি থাকবে। 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-এর জন্য ঐচ্ছিক অ্যাট্রিবিউট সেটার।

জনসাধারণের বৈশিষ্ট্য

বিবক্স

::tensorflow::Output bboxes

শুরু করুন

::tensorflow::Output begin

অপারেশন

Operation operation

আকার

::tensorflow::Output size

জনসাধারণের কার্যাবলী

নমুনা বিকৃত সীমানা বাক্স

 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
)

পাবলিক স্ট্যাটিক ফাংশন

এলাকা পরিসর

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
)

বীজ২

Attrs Seed2(
  int64 x
)

বাউন্ডিংবক্স না থাকলে ছবি ব্যবহার করুন

Attrs UseImageIfNoBoundingBoxes(
  bool x
)