tensorflow::ops::SampleDistortedBoundingBox
#include <image_ops.h>Genera un singolo riquadro di delimitazione distorto in modo casuale per un'immagine.
Riepilogo
Le annotazioni dei riquadri di delimitazione vengono spesso fornite in aggiunta alle etichette di riferimento nei compiti di riconoscimento di immagini o localizzazione di oggetti. Una tecnica comune per addestrare un sistema di questo tipo consiste nel distorcere casualmente un'immagine preservandone il contenuto, ovvero tramite l'aumento dei dati . Questa operazione produce una localizzazione di un oggetto distorta in modo casuale, ovvero un riquadro di delimitazione, dati un image_size , bounding_boxes e una serie di vincoli.
L'output di questa operazione è un singolo riquadro di delimitazione che può essere utilizzato per ritagliare l'immagine originale. L'output viene restituito come 3 tensori: begin , size e bboxes . I primi due tensori possono essere passati direttamente a tf.slice per ritagliare l'immagine. L'ultimo può essere fornito a tf.image.draw_bounding_boxes per visualizzare l'aspetto del riquadro di delimitazione.
I riquadri di delimitazione vengono forniti e restituiti come [y_min, x_min, y_max, x_max] . Le coordinate del riquadro di delimitazione sono numeri in virgola mobile compresi tra [0.0, 1.0] relativi alla larghezza e all'altezza dell'immagine sottostante.
Per esempio,
# 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) Si noti che se non sono disponibili informazioni sul riquadro di delimitazione, impostando use_image_if_no_bounding_boxes = true si presume che esista un singolo riquadro di delimitazione implicito che copre l'intera immagine. Se use_image_if_no_bounding_boxes è impostato su false e non vengono forniti riquadri di delimitazione, viene generato un errore.
Argomentazioni:
- ambito: un oggetto Scope
- image_size: 1-D, contenente
[height, width, channels]. - bounding_boxes: 3-D con forma
[batch, N, 4]che descrive gli N riquadri di delimitazione associati all'immagine.
Attributi opzionali (vedere Attrs ):
- seed: Se
seedoseed2sono impostati su un valore diverso da zero, il generatore di numeri casuali viene inizializzato con ilseedspecificato. Altrimenti, viene inizializzato con un seed casuale. - seed2: Un secondo seme per evitare collisioni tra i semi.
- min_object_covered: L'area ritagliata dell'immagine deve contenere almeno questa frazione di qualsiasi riquadro di delimitazione fornito. Il valore di questo parametro deve essere non negativo. Nel caso di 0, l'area ritagliata non deve sovrapporsi a nessuno dei riquadri di delimitazione forniti.
- aspect_ratio_range: L'area ritagliata dell'immagine deve avere un rapporto d'aspetto pari a larghezza / altezza compreso in questo intervallo.
- area_range: L'area ritagliata dell'immagine deve contenere una frazione dell'immagine fornita all'interno di questo intervallo.
- max_attempts: Numero di tentativi per generare una regione ritagliata dell'immagine secondo i vincoli specificati. Dopo
max_attemptsfalliti, viene restituita l'immagine completa. - use_image_if_no_bounding_boxes: Controlla il comportamento se non vengono forniti riquadri di delimitazione. Se true, si assume un riquadro di delimitazione implicito che copre l'intero input. Se false, viene generato un errore.
Resi:
- Inizio
Output: 1-D, contenente[offset_height, offset_width, 0]. Fornire come input atf.slice. - Dimensione
Output: 1-D, contenente[target_height, target_width, -1]. Fornire come input atf.slice. - Bbox
Output: 3D con forma[1, 1, 4]contenente il bounding box distorto. Fornire come input atf.image.draw_bounding_boxes.
Costruttori e distruttori | |
|---|---|
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) |
attributi pubblici | |
|---|---|
bboxes | |
begin | |
operation | |
size | |
Funzioni statiche pubbliche | |
|---|---|
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) | |
Strutture | |
|---|---|
| tensorflow::ops::SampleDistortedBoundingBox::Attrs | Impostatori di attributi opzionali per SampleDistortedBoundingBox . |
attributi pubblici
caselle di posta
::tensorflow::Output bboxes
inizio
::tensorflow::Output begin
operazione
Operation operation
misurare
::tensorflow::Output size
Funzioni pubbliche
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 )
Funzioni statiche pubbliche
AreaRange
Attrs AreaRange( const gtl::ArraySlice< float > & x )
Intervallo di proporzioni
Attrs AspectRatioRange( const gtl::ArraySlice< float > & x )
MaxAttempts
Attrs MaxAttempts( int64 x )
MinObjectCovered
Attrs MinObjectCovered( float x )
Seme
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )
UseImageIfNoBoundingBoxes
Attrs UseImageIfNoBoundingBoxes( bool x )