Créer un projet personnalisé
Pour créer un modèle Azure AI Vision personnalisé, vous avez d’abord besoin d’une ressource Azure AI Services (ou d’une ressource Azure AI Vision). Une fois cette ressource déployée sur votre abonnement, vous devez créer un projet personnalisé.
Composants d’un projet Vision personnalisé
Le premier composant d’un projet personnalisé est le jeu de données. Le jeu de données est votre collection d’images à utiliser lors de l’entraînement de votre modèle, en plus du fichier COCO qui définit les informations d’étiquette relatives à ces images. Votre jeu de données est stocké dans un conteneur de stockage d’objets blob Azure, et nous aborderons en détail le fichier COCO plus loin dans cette unité.
Une fois que vos images et étiquettes de classe sont définies, vous pouvez entraîner votre modèle personnalisé. Lors de l’entraînement de votre modèle, vous spécifiez le type de modèle à entraîner, le jeu de données à utiliser et votre budget d’entraînement (en terme de temps). Une fois l’entraînement du modèle terminé, vous pouvez afficher les performances et utiliser le modèle pour effectuer des prédictions.
Dans la plupart des cas, vous effectuerez les étapes suivantes :
- Créer votre conteneur de stockage d’objets blob et charger les images d’entraînement uniquement.
- Créer le jeu de données pour votre projet et connexion de ce jeu à votre conteneur de stockage d’objets blob. Lors de la création de votre jeu de données, vous définissez le type de projet (classification d’images, détection d’objet ou reconnaissance de produit).
- Étiqueter vos données dans votre projet d’étiquetage de données Azure Machine Learning, ce qui crée le fichier COCO dans votre conteneur de stockage d’objets blob.
- Connecter votre fichier COCO pour les images étiquetées à votre jeu de données.
- Entraîner votre modèle personnalisé sur le jeu de données et les étiquettes créés.
- Vérifier les performances et effectuer une itération si les performances de l’entraînement ne répondent pas aux attentes.
Une fois que vous êtes satisfait des performances, vous pouvez utiliser le modèle dans Vision Studio ou dans votre propre application.
Fichiers COCO
Un fichier COCO est un fichier JSON avec un format spécifique qui définit ce qui suit :
- images : définit l’emplacement de l’image dans le stockage d’objets blob, le nom, la largeur, la hauteur et l’ID.
- annotations : définit les classifications (ou objets), y compris la catégorie dans laquelle l’image est classifiée, la zone et le rectangle englobant (en cas d’étiquetage pour la détection d’objet).
- categories : définit l’ID de la classe d’étiquette nommée.
Dans la plupart des cas, les fichiers COCO sont créés en étiquetant vos images d’entraînement dans un projet d’étiquetage de données Azure Machine Learning. Si vous migrez à partir d’un ancien projet Custom Vision, vous pouvez utiliser le script de migration pour créer votre fichier COCO.
Voici un exemple de fichier COCO :
{
"images": [
{
"id": 1,
"width": 1024,
"height": 768,
"file_name": "abc.jpg",
"coco_url": "AmlDatastore://fruit/abc.jpg",
"absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/abc.jpg",
"date_captured": "<date>"
},
{
"id": 2,
"width": 1024,
"height": 768,
"file_name": "xyz.jpg",
"coco_url": "AmlDatastore://fruit/xyz.jpg",
"absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/xyz.jpg",
"date_captured": "<date>"
},
<...>
],
"annotations": [
{
"id": 1,
"category_id": 1,
"image_id": 1,
"area": 0.0
},
{
"id": 2,
"category_id": 1,
"image_id": 2,
"area": 0.0
},
<...>
],
"categories": [
{
"id": 1,
"name": "apple"
},
{
"id": 2,
"name": "orange"
},
{
"id": 3,
"name": "banana"
}
]
}
Si vous étiquetez un jeu de données de détection d’objet, chaque annotation dans le fichier COCO contient également un tableau de rectangles englobants, les valeurs du tableau étant Left, Top, Width et Height.
"bbox": [
0.11803319477782331,
0.41586723392402375,
0.7765206955096307,
0.3483334397217212
]
Création de votre jeu de données
Une fois que vous avez des images dans votre conteneur de stockage d’objets blob, vous pouvez créer votre jeu de données pour l’entraînement à l’aide de l’API REST ou de Vision Studio. La requête REST serait similaire à l’appel REST suivant :
curl -X PUT https://<endpoint>/computervision/datasets/<dataset-name>?api-version=<version>\
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <subscription-key>" \
--data-ascii "
{
'annotationKind':'imageClassification',
'annotationFileUris':['<URI>']
}"
Si vous utilisez Vision Studio, vous accédez à la vignette de modèle personnalisé, sélectionnez votre ressource et créez votre jeu de données. À partir de là, vous pouvez ouvrir ou créer un projet d’étiquetage de données Azure Machine Learning, ou charger un fichier COCO existant. L’exercice de ce module explique pas à pas comment créer votre jeu de données de cette manière.
L’utilisation de Vision Studio vous permet de vous connecter à votre projet d’étiquetage dans Azure Machine Learning au lieu de spécifier le fichier COCO dans la requête REST. Le reste des exemples de ce module utilisent Vision Studio, mais si REST est votre méthode de prédilection, des exemples sont disponibles dans les pages de documentation.