یک جعبه مرزی با تحریف تصادفی برای یک تصویر به طور قطعی ایجاد کنید.
حاشیهنویسیهای جعبه مرزی اغلب علاوه بر برچسبهای حقیقت پایه در وظایف تشخیص تصویر یا محلیسازی شی ارائه میشوند. یک تکنیک رایج برای آموزش چنین سیستمی تحریف تصادفی یک تصویر در حالی که محتوای آن حفظ می شود، یعنی افزایش داده ها است. این عملیات، با توجه به همان "seed"، به طور قطعی محلی سازی تصادفی تحریف شده از یک شی را خروجی می دهد.
خروجی این 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]» شناور هستند.
خروجی این عملیات با توجه به همان "seed" یکسان است و مستقل از چند بار فراخوانی تابع و مستقل از تنظیمات جهانی seed است (به عنوان مثال 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]) >>> seed = (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 (تصویر، bbox_begin، bbox_size) توجه داشته باشید که اگر هیچ اطلاعات جعبه مرزی در دسترس نباشد، تنظیم «use_image_if_no_bounding_boxes = true» فرض را بر این میگذارد که یک کادر محدود ضمنی وجود دارد که کل تصویر را پوشش میدهد. اگر «use_image_if_no_bounding_boxes» نادرست باشد و هیچ کادر محدودکنندهای ارائه نشده باشد، خطایی ایجاد میشود.
کلاس های تو در تو
کلاس | StatelessSampleDistortedBoundingBox.Options | ویژگی های اختیاری برای StatelessSampleDistortedBoundingBox |
روش های عمومی
Static StatelessSampleDistortedBoundingBox.Options | areaRange (List<Float> areaRange) |
Static StatelessSampleDistortedBoundingBox.Options | AspectRatioRange (List<Float> AspectRatioRange) |
خروجی <Float> | bboxes () 3-بعدی با شکل «[1، 1، 4]» که حاوی جعبه مرزی تحریف شده است. |
خروجی <T> | شروع () 1-D، حاوی «[offset_height, offset_width, 0]». |
static <T شماره را گسترش می دهد، U عدد را گسترش می دهد> StatelessSampleDistortedBoundingBox <T> | |
Static StatelessSampleDistortedBoundingBox.Options | maxAttempts (Long maxAttempts) |
خروجی <T> | اندازه () 1-D، حاوی «[ارتفاع_هدف، پهنای_هدف، -1]». |
Static StatelessSampleDistortedBoundingBox.Options | useIfNoBoundingBoxes ImageIfNoBoundingBox (استفاده بولی ImageIfNoBoundingBoxes) |
روش های ارثی
روش های عمومی
استاتیک عمومی StatelessSampleDistortedBoundingBox.Options areaRange (List<Float> areaRange)
مولفه های
محدوده محدوده | ناحیه برش خورده تصویر باید دارای کسری از تصویر ارائه شده در این محدوده باشد. |
---|
استاتیک عمومی StatelessSampleDistortedBoundingBox.Options aspectRatioRange (List<Float> aspectRatioRange)
مولفه های
Aspect Ratio Range | ناحیه برش خورده تصویر باید دارای نسبت تصویر = عرض / ارتفاع در این محدوده باشد. |
---|
خروجی عمومی <Float> bboxes ()
3-بعدی با شکل «[1، 1، 4]» که حاوی جعبه مرزی تحریف شده است. به عنوان ورودی tf.image.draw_bounding_boxes
ارائه دهید.
خروجی عمومی <T> شروع ()
1-D، حاوی «[offset_height, offset_width, 0]». به عنوان ورودی به tf.slice
ارائه دهید.
عمومی ایستا StatelessSampleDistortedBoundingBox <T> ایجاد ( Scope scope, Operand <T> imageSize, Operand <Float> boundingBox, Operand <Float> minObjectCovered, Operand <U> seed, Options... گزینه ها)
روش Factory برای ایجاد کلاسی که یک عملیات StatelessSampleDistortedBoundingBox جدید را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
اندازه تصویر | 1-D، حاوی «[ارتفاع، عرض، کانالها]». |
جعبه های مرزی | 3-بعدی با شکل «[دسته، N، 4]» که N کادر محدود مرتبط با تصویر را توصیف میکند. |
minObject Covered | ناحیه برش خورده تصویر باید حداقل شامل این کسری از هر جعبه محدود ارائه شده باشد. مقدار این پارامتر باید غیر منفی باشد. در مورد 0، ناحیه برش داده شده نیازی به همپوشانی با هیچ یک از جعبه های محدود کننده ارائه شده ندارد. |
دانه | 1-D با شکل «[2]». دانه به مولد اعداد تصادفی. باید دارای dtype «int32» یا «int64» باشد. (هنگام استفاده از XLA، فقط «int32» مجاز است.) |
گزینه ها | مقادیر ویژگی های اختیاری را حمل می کند |
برمی گرداند
- یک نمونه جدید از StatelessSampleDistortedBoundingBox
استاتیک عمومی StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)
مولفه های
حداکثر تلاش | تعداد تلاش برای ایجاد یک ناحیه برش خورده از تصویر محدودیت های مشخص شده. پس از شکست «max_ttempts»، کل تصویر را برگردانید. |
---|
اندازه خروجی عمومی <T> ()
1-D، حاوی «[ارتفاع_هدف، پهنای_هدف، -1]». به عنوان ورودی به tf.slice
ارائه دهید.
عمومی ایستا StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxs (استفاده بولیImageIfNoBoundingBox)
مولفه های
از جعبه های ImageIfNoBounding استفاده کنید | در صورت عدم ارائه جعبه محدود کننده، رفتار را کنترل می کند. اگر درست است، یک جعبه مرزی ضمنی را فرض کنید که کل ورودی را پوشش می دهد. اگر نادرست است، یک خطا را مطرح کنید. |
---|