Télécharger, prétraiter et importer l'ensemble de données COCO

COCO est un ensemble de données de détection d'objets, de segmentation et de sous-titrage à grande échelle. Les modèles de machine learning qui utilisent l'ensemble de données COCO sont les suivants :

  • Mask-RCNN
  • Retinanet
  • ShapeMask

Avant de pouvoir entraîner un modèle, vous devez préparer les données d'entraînement.

Ce document explique comment préparer l'ensemble de données COCO pour les modèles exécutés sur Cloud TPU. Vous ne pouvez suivre cette procédure qu'après avoir créé une VM Compute Engine. Le script utilisé pour préparer les données, download_and_preprocess_coco.sh, est installé sur la VM et doit être exécuté sur celle-ci.

Après avoir préparé les données en exécutant le script download_and_preprocess_coco.sh, vous pouvez faire intervenir la ressource Cloud TPU et exécuter l'entraînement.

Le téléchargement, le prétraitement complets et l'importation de l'ensemble de données COCO dans un bucket Cloud Storage prennent environ deux heures.

  1. Dans Cloud Shell, configurez gcloud avec l'ID de votre projet.

    export PROJECT_ID=project-id
    gcloud config set project ${PROJECT_ID}
  2. Dans Cloud Shell, créez un bucket Cloud Storage à l'aide de la commande suivante :

    gcloud storage buckets create gs://bucket-name --project=${PROJECT_ID} --location=us-central2
  3. Créez une VM Compute Engine pour télécharger et prétraiter l'ensemble de données. Pour en savoir plus, consultez la section Créer et démarrer une instance Compute Engine.

    $ gcloud compute instances create vm-name \
        --zone=us-central2-b \
        --image-family=ubuntu-2204-lts \
        --image-project=ubuntu-os-cloud \
        --machine-type=n1-standard-16 \
        --boot-disk-size=300GB
  4. Connectez-vous à la VM Compute Engine à l'aide de SSH:

    $ gcloud compute ssh vm-name --zone=us-central2-b

    Lorsque vous vous connectez à la VM, votre invite de shell passe de username@projectname à username@vm-name.

  5. Configurez deux variables : une pour le bucket de stockage créé précédemment et une pour le répertoire contenant les données d'entraînement (DATA_DIR) dans le bucket de stockage.

    (vm)$ export STORAGE_BUCKET=gs://bucket-name
    (vm)$ export DATA_DIR=${STORAGE_BUCKET}/coco
  6. Installez les packages nécessaires au prétraitement des données.

    (vm)$ sudo apt-get update && \
      sudo apt-get install python3-pip && \
      sudo apt-get install -y python3-tk && \
      pip3 install --user Cython matplotlib opencv-python-headless pyyaml Pillow numpy absl-py tensorflow && \
      pip3 install --user "git+https://github.com/cocodataset/cocoapi#egg=pycocotools&subdirectory=PythonAPI"
  7. Exécutez le script download_and_preprocess_coco.sh pour convertir l'ensemble de données COCO en fichiers TFRecord (*.tfrecord), ce qui correspond au format attendu par l'application d'entraînement.

    (vm)$ git clone https://github.com/tensorflow/tpu.git
    (vm)$ sudo bash tpu/tools/datasets/download_and_preprocess_coco.sh ./data/dir/coco

    Cela installe les bibliothèques requises et exécute le script de prétraitement. Il génère des fichiers *.tfrecord dans votre répertoire de données local. L'exécution du script de téléchargement et de conversion COCO prend environ une heure.

  8. Copiez les données dans votre bucket Cloud Storage.

    Après avoir converti les données au format TFRecord, copiez-les depuis l'espace de stockage local vers votre bucket Cloud Storage à l'aide de gcloud CLI. Vous devez également copier les fichiers d'annotation. Ces fichiers vous aident à valider les performances du modèle.

    (vm)$ gcloud storage cp ./data/dir/coco/*.tfrecord ${DATA_DIR}
    (vm)$ gcloud storage cp ./data/dir/coco/raw-data/annotations/*.json ${DATA_DIR}
  9. Déconnectez-vous de la VM Compute Engine :

    (vm)$ exit

    Votre invite devrait maintenant être username@projectname, indiquant que vous êtes dans Cloud Shell.

  10. Supprimez votre VM Compute Engine:

    $ gcloud compute instances delete vm-name \
    --zone=us-central2-b