Interface d'entrée et de sortie pour l'algorithme Object Detection - TensorFlow
Chacun des modèles pré-entraînés répertoriés dans les modèles TensorFlow peut être affiné sur n'importe quel jeu de données avec un nombre quelconque de classes d'image. Soyez conscient de la façon de formater vos données d'entraînement pour les entrer dans le modèle Object Detection - TensorFlow.
-
Training data input format (Format d'entrée des données d'entraînement) : vos données d'entraînement doivent être dans un sous-répertoire nommé
images, contenant un fichierannotations.json.
Voici un exemple de structure du répertoire d'entrée. Le répertoire d'entrée doit être hébergé dans un compartiment Amazon S3 avec un chemin similaire au suivant : s3://. Notez que le bucket_name/input_directory// de fin est obligatoire.
input_directory |--images |--abc.png |--def.png |--annotations.json
Le fichier annotations.json doit contenir des informations sur les cadres de délimitation et leurs étiquettes de classe sous la forme d'un dictionnaire "images" et de clés "annotations". La valeur de la clé "images" doit être une liste de dictionnaires. Il doit y avoir un dictionnaire pour chaque image avec les informations suivantes : {"file_name": . La valeur de la clé image_name,
"height": height, "width":
width, "id":
image_id}"annotations" doit également être une liste de dictionnaires. Il doit y avoir un dictionnaire pour chaque cadre de délimitation avec les informations suivantes : {"image_id": .image_id, "bbox": [xmin,
ymin, xmax, ymax], "category_id":
bbox_label}
Après la formation, un fichier de mappage d'étiquettes et un modèle entraîné sont enregistrés dans votre compartiment Amazon S3.
Entraînement incrémentiel
Vous pouvez amorcer l’entraînement d’un nouveau modèle avec les artefacts issus d’un modèle que vous avez précédemment entraîné avec SageMaker AI. L'entraînement incrémentiel permet de gagner du temps lorsque vous souhaitez entraîner un nouveau modèle avec des données identiques ou similaires.
Note
Vous pouvez amorcer un modèle Object Detection - TensorFlow SageMaker AI uniquement avec un autre modèle Object Detection - TensorFlow entraîné dans SageMaker AI.
Vous pouvez utiliser n'importe quel jeu de données pour l'entraînement incrémentiel, à condition que l'ensemble de classes reste le même. L'étape d'entraînement incrémentiel est similaire à l'étape d'affinage, mais au lieu de commencer par un modèle pré-entraîné, vous commencez par un modèle affiné existant. Pour plus d’informations sur l’utilisation de l’entraînement incrémentiel avec l’algorithme Object Detection - TensorFlow SageMaker AI, consultez le bloc-notes Introduction to SageMaker TensorFlow - Object Detection
Inférence avec l'algorithme Object Detection - TensorFlow
Vous pouvez héberger le modèle affiné résultant de votre entraînement TensorFlow Object Detection pour l'inférence. Toute image d'entrée pour l'inférence doit être au format .jpg, .jpeg ou .png et présenter un type de contenu application/x-image. L'algorithme Object Detection - TensorFlow redimensionne automatiquement les images d'entrée.
L'exécution de l'inférence donne des cadres de délimitation, des classes prédites et les scores de chaque prédiction codée au format JSON. Le modèle Object Detection - TensorFlow traite une seule image par demande et génère en sortie une seule ligne. Voici un exemple de réponse au format JSON :
accept: application/json;verbose {"normalized_boxes":[[xmin1,xmax1,ymin1,ymax1],....], "classes":[classidx1,class_idx2,...], "scores":[score_1,score_2,...], "labels": [label1,label2, ...], "tensorflow_model_output":<original output of the model>}
Si accept est défini sur application/json, le modèle ne génère que des boîtes, des classes et des scores normalisés.