Trasformazione di un COCO set di dati in un formato di file manifesto - Rekognition

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Trasformazione di un COCO set di dati in un formato di file manifesto

COCOè un formato per specificare set di dati di rilevamento, segmentazione e didascalia di oggetti su larga scala. Questo esempio in Python mostra come trasformare un set di dati in formato di rilevamento di COCO oggetti in un file manifest in formato riquadro di delimitazione Amazon Rekognition Custom Labels. Questa sezione contiene anche informazioni che si possono utilizzare per scrivere il proprio codice.

Un JSON file di COCO formato è composto da cinque sezioni che forniscono informazioni per un intero set di dati. Per ulteriori informazioni, consulta COCOIl formato del set di dati.

  • info: informazioni generali sul set di dati.

  • licenses : informazioni sulla licenza per le immagini nel set di dati.

  • images: un elenco di immagini nel set di dati.

  • annotations: un elenco di annotazioni (compresi i riquadri di delimitazione) presenti in tutte le immagini del set di dati.

  • categories: un elenco di categorie di etichette.

Sono necessarie le informazioni delle liste images, annotations e categories per creare un file manifest di Amazon Rekognition Custom Labels.

Un file manifest di Amazon Rekognition Custom Labels JSON è in formato righe in cui ogni riga contiene il riquadro di delimitazione e le informazioni sull'etichetta per uno o più oggetti su un'immagine. Per ulteriori informazioni, consulta Localizzazione di oggetti nei file manifest.

Mappatura COCO degli oggetti su una riga di etichette personalizzate JSON

Per trasformare un set di dati COCO in formato, mappi il COCO set di dati a un file manifest di Amazon Rekognition Custom Labels per la localizzazione degli oggetti. Per ulteriori informazioni, consulta Localizzazione di oggetti nei file manifest. Per creare una JSON linea per ogni immagine, il file manifest deve mappare il COCO set image di dati e il campo dell'oggetto. annotation category IDs

Di seguito è riportato un esempio di file COCO manifest. Per ulteriori informazioni, consulta COCOIl formato del set di dati.

{ "info": { "description": "COCO 2017 Dataset","url": "http://cocodataset.org","version": "1.0","year": 2017,"contributor": "COCO Consortium","date_created": "2017/09/01" }, "licenses": [ {"url": "http://creativecommons.org/licenses/by/2.0/","id": 4,"name": "Attribution License"} ], "images": [ {"id": 242287, "license": 4, "coco_url": "http://images.cocodataset.org/val2017/xxxxxxxxxxxx.jpg", "flickr_url": "http://farm3.staticflickr.com/2626/xxxxxxxxxxxx.jpg", "width": 426, "height": 640, "file_name": "xxxxxxxxx.jpg", "date_captured": "2013-11-15 02:41:42"}, {"id": 245915, "license": 4, "coco_url": "http://images.cocodataset.org/val2017/nnnnnnnnnnnn.jpg", "flickr_url": "http://farm1.staticflickr.com/88/xxxxxxxxxxxx.jpg", "width": 640, "height": 480, "file_name": "nnnnnnnnnn.jpg", "date_captured": "2013-11-18 02:53:27"} ], "annotations": [ {"id": 125686, "category_id": 0, "iscrowd": 0, "segmentation": [[164.81, 417.51,......167.55, 410.64]], "image_id": 242287, "area": 42061.80340000001, "bbox": [19.23, 383.18, 314.5, 244.46]}, {"id": 1409619, "category_id": 0, "iscrowd": 0, "segmentation": [[376.81, 238.8,........382.74, 241.17]], "image_id": 245915, "area": 3556.2197000000015, "bbox": [399, 251, 155, 101]}, {"id": 1410165, "category_id": 1, "iscrowd": 0, "segmentation": [[486.34, 239.01,..........495.95, 244.39]], "image_id": 245915, "area": 1775.8932499999994, "bbox": [86, 65, 220, 334]} ], "categories": [ {"supercategory": "speaker","id": 0,"name": "echo"}, {"supercategory": "speaker","id": 1,"name": "echo dot"} ] }

Il diagramma seguente mostra come il COCO set di dati elenca le righe di etichette personalizzate di Amazon Rekognition per un'immagine. JSON Ogni JSON riga di un'immagine contiene un campo di metadati source-ref, job e job. I colori corrispondenti indicano le informazioni per una singola immagine. Nota che nel manifesto una singola immagine può avere più annotazioni e metadati/categorie.

Diagramma che mostra la struttura di Coco Manifest, con immagini, annotazioni e categorie contenute al suo interno.
Per ottenere gli COCO oggetti per una singola riga JSON
  1. Per ogni immagine dell'elenco delle immagini, recuperarne l'annotazione dalla lista in cui il valore del campo di annotazione corrisponde al campo image_id dell'immagine id.

  2. Per ogni annotazione corrispondente al passaggio 1, leggere l'elenco categories e ottenere ogni category in cui il valore di category del campo id corrisponde al campo annotation dell'oggetto category_id.

  3. Crea una JSON linea per l'immagine usando gli category oggetti imageannotation, e corrispondenti. Per mappare i campi, confrontare Mappatura dei campi COCO oggetto ai campi oggetto di una linea Custom Labels JSON.

  4. Ripeti i passaggi da 1 a 3 fino a creare JSON linee per ogni image oggetto nell'elenco. images

Per il codice di esempio, consulta Trasformazione di un set di dati COCO.

Mappatura dei campi COCO oggetto ai campi oggetto di una linea Custom Labels JSON

Dopo aver identificato gli COCO oggetti per una riga Amazon Rekognition JSON Custom Labels, devi COCO mappare i campi oggetto ai rispettivi campi oggetto della linea Amazon Rekognition Custom Labels. JSON L'esempio seguente, la linea Amazon Rekognition JSON Custom Labels associa id un'immagine 000000245915 (=) all'esempio precedente. COCO JSON Osservare le seguenti informazioni.

  • source-ref è la posizione dell'immagine in un bucket Amazon S3. Se COCO le tue immagini non sono archiviate in un bucket Amazon S3, devi spostarle in un bucket Amazon S3.

  • La listaannotations contiene un oggetto annotation per ogni oggetto dell'immagine. Un oggetto annotation include informazioni sul riquadro di delimitazione (top,left,width,height) e un identificatore di etichetta (class_id).

  • L'identificatore dell'etichetta (class_id) viene mappato alla lista class-map dei metadati. Elenca le etichette utilizzate nell'immagine.

{ "source-ref": "s3://custom-labels-bucket/images/000000245915.jpg", "bounding-box": { "image_size": { "width": 640, "height": 480, "depth": 3 }, "annotations": [{ "class_id": 0, "top": 251, "left": 399, "width": 155, "height": 101 }, { "class_id": 1, "top": 65, "left": 86, "width": 220, "height": 334 }] }, "bounding-box-metadata": { "objects": [{ "confidence": 1 }, { "confidence": 1 }], "class-map": { "0": "Echo", "1": "Echo Dot" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "my job" } }

Utilizza le seguenti informazioni per mappare i campi del file manifest di Amazon Rekognition Custom Labels ai campi del set di dati. COCO JSON

source-ref

Il formato S3 URL per la posizione dell'immagine. L’immagine deve essere archiviata in un bucket S3. Per ulteriori informazioni, consulta source-ref. Se il coco_url COCO campo punta a una posizione del bucket S3, puoi utilizzare il valore di coco_url per il valore di. source-ref In alternativa, puoi mappare source-ref il campo file_name (COCO) e nel codice di trasformazione aggiungere il percorso S3 richiesto in cui è archiviata l'immagine.

bounding-box

Un nome di attributo dell'etichetta a scelta. Per ulteriori informazioni, consulta bounding-box.

image_size

Le dimensioni dell'immagine in pixel. Mappare su un image oggetto nell'elenco delle immagini.

  • height-> image.height

  • width-> image.width

  • depth-> Non utilizzare Amazon Rekognition Custom Labels, ma è necessario fornire un valore.

annotations

Elenco di oggetti annotation. C’è un’ annotation per ogni oggetto dell'immagine.

annotazione

Contiene informazioni sul riquadro di delimitazione per un'istanza di un oggetto dell'immagine.

  • class_id-> mappatura numerica degli ID della lista class-map di Custom Label.

  • top -> bbox[1]

  • left -> bbox[0]

  • width -> bbox[2]

  • height -> bbox[3]

bounding-box-metadati

Metadati per l'attributo etichetta. Includere le etichette e gli identificatori delle etichette. Per ulteriori informazioni, consulta bounding-box-metadati.

Oggetti

Un array di oggetti nell’immagine. Mappare l'elenco annotations per indice.

Oggetto
  • confidence->Non utilizzato da Amazon Rekognition Custom Labels, ma è richiesto il valore (1).

class-map

Una mappa delle etichette (classi) che si applicano agli oggetti rilevati nell'immagine. Mappare gli oggetti delle categorie nell'elenco delle categorie.

tipo

Deve essere groundtruth/object-detection

annotato dall'uomo

Specificare yes o no. Per ulteriori informazioni, consulta bounding-box-metadati.

creation-date -> image .date_capture

La data e l’ora di creazione dell’immagine. Esegue il mapping al campo image .date_capture di un'immagine nell'elenco delle immagini. COCO Amazon Rekognition Custom Labels prevede che il formato sia Y-M-:M:S. creation-date DTH

job-name

Un nome del lavoro a scelta.