قم بإنشاء مربع محيط مشوه عشوائيًا للصورة بشكل حتمي.
غالبًا ما يتم توفير التعليقات التوضيحية للمربع المحيط بالإضافة إلى تسميات الحقيقة الأرضية في مهام التعرف على الصور أو تعريب الكائنات. أحد الأساليب الشائعة لتدريب مثل هذا النظام هو تشويه الصورة بشكل عشوائي مع الحفاظ على محتواها، أي زيادة البيانات . هذه العملية، بالنظر إلى نفس "البذرة"، تنتج بشكل حتمي توطينًا مشوهًا عشوائيًا لكائن، أي المربع المحيط، بالنظر إلى "حجم_الصورة" و"المربعات_المحيطة" وسلسلة من القيود.
إخراج هذا Op هو مربع محيط واحد يمكن استخدامه لاقتصاص الصورة الأصلية. يتم إرجاع الإخراج على هيئة 3 موترات: `begin` و`size` و`bboxes`. يمكن تغذية الموترين الأولين مباشرةً في tf.slice
لاقتصاص الصورة. قد يتم توفير الأخير إلى tf.image.draw_bounding_boxes
لتصور شكل المربع المحيط.
يتم توفير المربعات المحيطة وإرجاعها بالشكل `[y_min, x_min, y_max, x_max]`. إحداثيات المربع المحيط هي عوامات في `[0.0, 1.0]` بالنسبة لعرض الصورة الأساسية وارتفاعها.
يتم ضمان أن يكون مخرجات هذه العملية هو نفسه بالنظر إلى نفس "البذرة" ومستقلة عن عدد مرات استدعاء الوظيفة، ومستقلة عن إعدادات البذور العامة (على سبيل المثال tf.random.set_seed
).
مثال على الاستخدام:
>>> الصورة = np.array([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9] ]]) >>> bbox = tf.constant( ... [0.0, 0.0, 1.0, 1.0], dtype=tf.float32, Shape=[1, 1, 4]) >>> البذور = (1, 2) ) >>> # قم بإنشاء مربع محيط واحد مشوه. >>> bbox_begin, bbox_size, bbox_draw = ( ... tf.image.stateless_sample_distorted_bounding_box( ... tf.shape(image),bounding_boxes=bbox,seed=seed)) >>> # استخدم المربع المحيط لتشويه الصورة . >>> tf.slice(image, bbox_begin, bbox_size) لاحظ أنه في حالة عدم توفر معلومات حول المربع المحيط، فإن الإعداد `use_image_if_no_bounding_boxes = true` سيفترض وجود مربع محيط ضمني واحد يغطي الصورة بأكملها. إذا كانت قيمة `use_image_if_no_bounding_boxes` خاطئة ولم يتم توفير أي مربعات محيطة، فسيظهر خطأ.
فئات متداخلة
فصل | StatelessSampleDistortedBoundingBox.Options | السمات الاختيارية لـ StatelessSampleDistortedBoundingBox |
الثوابت
خيط | OP_NAME | اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي |
الأساليب العامة
static StatelessSampleDistortedBoundingBox.Options | نطاق المنطقة (قائمة<تعويم> نطاق المنطقة) |
static StatelessSampleDistortedBoundingBox.Options | نسبة العرض إلى الارتفاع (قائمة<تعويم> نسبة العرض إلى الارتفاع) |
الإخراج <TFloat32> | صناديق بي بوكس () ثلاثي الأبعاد بالشكل `[1، 1، 4]` يحتوي على المربع المحيط المشوه. |
الإخراج <T> | يبدأ () 1-D، يحتوي على `[ارتفاع_الإزاحة، عرض_الإزاحة، 0]`. |
ثابت <T يمتد TNumber > StatelessSampleDistortedBoundingBox <T> | |
static StatelessSampleDistortedBoundingBox.Options | المحاولات القصوى (المحاولات القصوى الطويلة) |
الإخراج <T> | مقاس () 1-D، يحتوي على `[target_height, target_width, -1]`. |
static StatelessSampleDistortedBoundingBox.Options | useImageIfNoBoundingBoxes (useImageIfNoBoundingBoxes المنطقية) |
الطرق الموروثة
الثوابت
السلسلة النهائية الثابتة العامة OP_NAME
اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي
الأساليب العامة
ثابت عام StatelessSampleDistortedBoundingBox.Options منطقة النطاق (قائمة<Float> منطقة النطاق)
حدود
منطقةنطاق | يجب أن تحتوي المنطقة التي تم اقتصاصها من الصورة على جزء من الصورة المتوفرة ضمن هذا النطاق. |
---|
ثابت عام StatelessSampleDistortedBoundingBox.Options facesRatioRange (قائمة<Float> AspectRatioRange)
حدود
AspectRatioRange | يجب أن يكون للمساحة التي تم اقتصاصها من الصورة نسبة عرض إلى ارتفاع = العرض / الارتفاع ضمن هذا النطاق. |
---|
الإخراج العام <TFloat32> bboxes ()
ثلاثي الأبعاد بالشكل `[1، 1، 4]` يحتوي على المربع المحيط المشوه. قم بتوفيره كمدخل إلى tf.image.draw_bounding_boxes
.
يبدأ الإخراج العام <T> ()
1-D، يحتوي على `[ارتفاع_الإزاحة، عرض_الإزاحة، 0]`. توفير كمدخل ل tf.slice
.
إنشاء عام ثابت StatelessSampleDistortedBoundingBox <T> ( نطاق النطاق ، المعامل <T> imageSize، المعامل < TFloat32 > borderBoxes، المعامل < TFloat32 > minObjectCovered، المعامل <؟ يمتد TNumber > البذور، الخيارات... خيارات)
طريقة المصنع لإنشاء فئة تغلف عملية StatelessSampleDistortedBoundingBox جديدة.
حدود
نِطَاق | النطاق الحالي |
---|---|
حجم الصورة | 1-د، يحتوي على `[الارتفاع، العرض، القنوات]`. |
boundingBoxes | ثلاثي الأبعاد بالشكل `[batch, N, 4]` الذي يصف المربعات المحيطة N المرتبطة بالصورة. |
minObjectCovered | يجب أن تحتوي المساحة المقصوصة من الصورة على هذا الجزء على الأقل من أي مربع محيط متوفر. يجب أن تكون قيمة هذه المعلمة غير سلبية. في حالة 0، لا تحتاج المنطقة المقصوصة إلى تداخل أي من المربعات المحيطة المتوفرة. |
بذرة | 1-D بالشكل `[2]`. البذرة إلى مولد الأرقام العشوائية. يجب أن يحتوي على dtype `int32` أو `int64`. (عند استخدام XLA، يُسمح فقط بـ `int32`.) |
خيارات | يحمل قيم السمات الاختيارية |
عائدات
- مثيل جديد لـ StatelessSampleDistortedBoundingBox
ثابت عام StatelessSampleDistortedBoundingBox.Options maxAttempts (طويل maxAttempts)
حدود
maxAttempts | عدد المحاولات لإنشاء منطقة مقصوصة من صورة القيود المحددة. بعد فشل `max_attempts`، قم بإرجاع الصورة بأكملها. |
---|
حجم الإخراج العام <T> ()
1-D، يحتوي على `[target_height, target_width, -1]`. توفير كمدخل ل tf.slice
.
ثابت عام StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (useImageIfNoBoundingBoxes منطقي)
حدود
useImageIfNoBoundingBoxes | يتحكم في السلوك في حالة عدم توفير مربعات محيطة. إذا كان هذا صحيحًا، فافترض وجود مربع محيط ضمني يغطي الإدخال بالكامل. إذا كاذبة، رفع خطأ. |
---|