Transformation d'un COCO ensemble de données en un format de fichier manifeste - Rekognition

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Transformation d'un COCO ensemble de données en un format de fichier manifeste

COCOest un format permettant de spécifier des ensembles de données de détection, de segmentation et de sous-titrage d'objets à grande échelle. Cet exemple Python vous montre comment transformer un ensemble de données au format de détection d'COCOobjets en un fichier manifeste au format boîte de délimitation Amazon Rekognition Custom Labels. Cette section inclut également des informations que vous pouvez utiliser pour écrire votre propre code.

Un JSON fichier de COCO format se compose de cinq sections fournissant des informations pour un ensemble de données complet. Pour de plus amples informations, veuillez consulter Le format du COCO jeu de données.

  • info : informations générales sur le jeu de données.

  • licenses  : informations de licence pour les images du jeu de données.

  • images : liste des images du jeu de données.

  • annotations : liste d’annotations (y compris les cadres de délimitation) présentes dans toutes les images du jeu de données.

  • categories : liste des catégories d’étiquettes.

Vous aurez besoin d’informations provenant des listes images, annotations et categories pour créer un fichier manifeste Étiquettes personnalisées Amazon Rekognition.

Un fichier manifeste d'étiquettes personnalisées Amazon Rekognition JSON est au format de lignes, chaque ligne contenant le cadre et les informations d'étiquette pour un ou plusieurs objets d'une image. Pour de plus amples informations, veuillez consulter Localisation d’objets dans les fichiers manifestes.

Associer COCO des objets à une JSON ligne d'étiquettes personnalisées

Pour transformer un ensemble de données COCO formaté, vous mappez le COCO jeu de données à un fichier manifeste Amazon Rekognition Custom Labels pour la localisation d'objets. Pour de plus amples informations, veuillez consulter Localisation d’objets dans les fichiers manifestes. Pour créer une JSON ligne pour chaque image, le fichier manifeste doit mapper le COCO jeu de données image et annotation le champ category d'objetIDs.

Voici un exemple de fichier COCO manifeste. Pour de plus amples informations, veuillez consulter Le format du COCO jeu de données.

{ "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"} ] }

Le schéma suivant montre comment les listes d'un COCO jeu de données correspondent aux lignes Amazon Rekognition JSON Custom Labels d'une image. Chaque JSON ligne d'une image possède une référence source, un champ de métadonnées de tâche et un champ de métadonnées de tâche. Les couleurs qui sont les mêmes indiquent des informations relatives à une seule image. Notez que dans le manifeste, une image individuelle peut comporter plusieurs annotations et métadonnées/catégories.

Schéma montrant la structure de Coco Manifest, avec les images, les annotations et les catégories qu'il contient.
Pour obtenir les COCO objets d'une seule JSON ligne
  1. Pour chaque image de la liste d’images, récupérez l’annotation dans la liste d’annotations où la valeur du champ d’annotation image_id correspond à celle du champ id de l’image.

  2. Pour chaque annotation ayant une correspondance dans l’étape 1, parcourez la liste categories et récupérez chaque category où la valeur du champ category id correspond au champ category_id de l’objet annotation.

  3. Créez une JSON ligne pour l'image à l'aide des category objets correspondants imageannotation, et. Pour mapper les champs, consultez Associer des champs d'COCOobjet à une JSON ligne d'étiquettes personnalisées.

  4. Répétez les étapes 1 à 3 jusqu'à ce que vous ayez créé JSON des lignes pour chaque image objet de la images liste.

Pour obtenir un exemple de code, consultez Transformation d'un COCO jeu de données.

Associer des champs d'COCOobjet à une JSON ligne d'étiquettes personnalisées

Après avoir identifié les COCO objets d'une ligne Amazon Rekognition JSON Custom Labels, vous devez mapper les champs d'objet aux champs d'objet de COCO la ligne Amazon Rekognition Custom Labels respectifs. JSON Dans l'exemple suivant, la ligne Amazon Rekognition JSON Custom Labels fait correspondre une id image 000000245915 (=) à l'exemple précédent. COCO JSON Notez les informations suivantes.

  • source-ref correspond à l’emplacement de l’image dans un compartiment Amazon S3. Si vos COCO images ne sont pas stockées dans un compartiment Amazon S3, vous devez les déplacer vers un compartiment Amazon S3.

  • La liste annotations contient un objet annotation pour chaque objet de l’image. Un objet annotation comprend des informations relatives à un cadre de délimitation (top, left, width, height) et un identifiant d’étiquette (class_id).

  • L’identifiant d’étiquette (class_id) correspond à la liste class-map figurant dans les métadonnées. Il répertorie les étiquettes utilisées sur l’image.

{ "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" } }

Utilisez les informations suivantes pour mapper les champs du fichier manifeste Amazon Rekognition Custom Labels aux champs du jeu de données. COCO JSON

Source-réf.

Le format S3 URL pour l'emplacement de l'image. L’image doit être stockée dans un compartiment S3. Pour de plus amples informations, veuillez consulter source-ref. Si le coco_url COCO champ pointe vers un emplacement de compartiment S3, vous pouvez utiliser la valeur de coco_url pour la valeur desource-ref. Vous pouvez également source-ref mapper le champ file_name (COCO) et ajouter dans votre code de transformation le chemin S3 requis vers l'endroit où l'image est stockée.

bounding-box

Nom d’attribut d’étiquette de votre choix. Pour plus d’informations, consultez bounding-box.

image_size

Taille de l’image, en pixels. Correspond à un objet image dans la liste des images.

  • height-> image.height

  • width-> image.width

  • depth-> Pas utilisé par Étiquettes personnalisées Amazon Rekognition, mais une valeur doit être fournie.

annotations

Liste d’objets annotation. Il y a une annotation pour chaque objet de l’image.

annotation

Contient les informations relatives au cadre de délimitation pour une instance d’un objet sur l’image.

  • class_id -> mappage d’ID numérique avec la liste class-map d’Étiquettes personnalisées.

  • top -> bbox[1]

  • left -> bbox[0]

  • width -> bbox[2]

  • height -> bbox[3]

bounding-box-métadonnées

Métadonnées pour l’attribut d’étiquette. Inclut les étiquettes et les identifiants d’étiquettes. Pour plus d’informations, consultez bounding-box-métadonnées.

Objets

Tableau des objets de l’image. Correspond à la liste annotations par index.

Objet
  • confidence-> Pas utilisé par Étiquettes personnalisées Amazon Rekognition, mais une valeur (1) doit être fournie.

class-map

Mappage des étiquettes (classes) qui s’appliquent aux objets détectés dans l’image. Correspond aux objets de catégorie dans la liste des catégories.

type

Doit être groundtruth/object-detection

human-annotated

Spécifiez yes ou no. Pour plus d’informations, consultez bounding-box-métadonnées.

creation-date -> image.date_captured

Date et heure de création de l’image. Correspond au champ image .date_captured d'une image dans la liste des COCO images. Les étiquettes personnalisées Amazon Rekognition s'attendent à ce que le creation-date format de soit Y-M-:M:S. DTH

job-name

Nom de tâche de votre choix.