Ce référentiel a été archivé et fusionné dans le SDK Label Studio : https://github.com/HumanSignal/label-studio-sdk/tree/master/src/label_studio_sdk/converter
Site Web • Documents • Twitter • Rejoignez la communauté Slack
Introduction
Exemples
JSON
CSV
CoNLL 2003
COCO
Pascal COV XML
Convertisseur YOLO en Label Studio
Usage
Tutoriel : Importation d'images pré-annotées YOLO dans Label Studio à l'aide du stockage local
Contribuer
Licence
Label Studio Format Converter vous aide à encoder des étiquettes au format de votre bibliothèque d'apprentissage automatique préférée.
Exécuté à partir de la ligne de commande :
pip install -U label-studio-converter python label-studio-converter export -i exported_tasks.json -c examples/sentiment_analysis/config.xml -o output_dir -f CSV
Exécuté depuis python :
depuis label_studio_converter import Converterc = Converter('examples/sentiment_analysis/config.xml')c.convert_to_json('examples/sentiment_analysis/completions/', 'tmp/output.json')
Obtention du fichier de sortie : tmp/output.json
[ {"reviewText": "Bon dossier, Excellent rapport qualité/prix.","sentiment": "Positif" }, {"reviewText": "Quelle perte de temps et d'argent !","sentiment": "Négatif" }, {"reviewText": "Le col de cygne a besoin d'être un peu cajolé","sentiment": "Neutre" } ]
Cas d'utilisation : toutes les tâches
Exécuté à partir de la ligne de commande :
python label_studio_converter/cli.py --input examples/sentiment_analysis/completions/ --config examples/sentiment_analysis/config.xml --output output_dir --format CSV --csv-separator $'t'
Exécuté depuis python :
depuis label_studio_converter import Converterc = Converter('examples/sentiment_analysis/config.xml')c.convert_to_csv('examples/sentiment_analysis/completions/', 'output_dir', sep='t', header=True)
Obtention du fichier de sortie tmp/output.tsv
:
avisTextesentimentBon cas, Excellent rapport qualité-prix.PositifQuelle perte d'argent et de temps !NégatifLe col de cygne a besoin d'un peu de cajolerieNeutre
Cas d'utilisation : toutes les tâches
Exécuté à partir de la ligne de commande :
python label_studio_converter/cli.py --input examples/named_entity/completions/ --config examples/named_entity/config.xml --output tmp/output.conll --format CONLL2003
Exécuté depuis python :
depuis label_studio_converter import Converterc = Converter('examples/named_entity/config.xml')c.convert_to_conll2003('examples/named_entity/completions/', 'tmp/output.conll')
Obtention du fichier de sortie tmp/output.conll
-DOCSTART- -X- O
Showers -X- _ O
continued -X- _ O
throughout -X- _ O
the -X- _ O
week -X- _ O
in -X- _ O
the -X- _ O
Bahia -X- _ B-Location
cocoa -X- _ O
zone, -X- _ O
...
Cas d'utilisation : balisage de texte
Exécuté à partir de la ligne de commande :
python label_studio_converter/cli.py --input examples/image_bbox/completions/ --config examples/image_bbox/config.xml --output tmp/output.json --format COCO --image-dir tmp/images
Exécuté depuis python :
depuis label_studio_converter import Converterc = Converter('examples/image_bbox/config.xml')c.convert_to_coco('examples/image_bbox/completions/', 'tmp/output.conll', output_image_dir='tmp/images')
Les images de sortie peuvent être trouvées dans tmp/images
Obtenir le fichier de sortie tmp/output.json
{ "images": [ { "largeur": 800, "hauteur": 501, "id": 0, "nom_fichier": "tmp/images/62a623a0d3cef27a51d3689865e7b08a"} ], "catégories": [ { "id": 0, "name": "Planète"}, { "id": 1, "name": "Moonwalker"} ], "annotations": [ { "id": 0, "image_id": 0, "category_id": 0, "segmentation": [], "bbox": [299,6,377,260 ], "ignore": 0, "iscrowd": 0, "area " : 98020}, { "id": 1, "image_id": 0, "category_id": 1, "segmentation": [], "bbox": [288,300,132,90 ], "ignore": 0, "iscrowd": 0, "area " : 11880} ], "info": {"année": 2019,"version": "1.0","contributeur": "Label Studio" } }
Cas d'utilisation : détection d'objets image
Exécuté à partir de la ligne de commande :
python label_studio_converter/cli.py --input examples/image_bbox/completions/ --config examples/image_bbox/config.xml --output tmp/voc-annotations --format VOC --image-dir tmp/images
Exécuté depuis python :
depuis label_studio_converter import Converterc = Converter('examples/image_bbox/config.xml')c.convert_to_voc('examples/image_bbox/completions/', 'tmp/output.conll', output_image_dir='tmp/images')
Les images de sortie peuvent être trouvées dans tmp/images
Les annotations correspondantes peuvent être trouvées dans tmp/voc-annotations/*.xml
:
tmp/images 62a623a0d3cef27a51d3689865e7b08a NULL Studio d'étiquettes 800 501 3 0 Planète Non spécifié 0 0 299 6 676 266 Marcheur sur la Lune Non spécifié 0 0 288 300 420 390
Cas d'utilisation : détection d'objets image
Vérifiez d'abord la structure du dossier YOLO, gardez à l'esprit que la racine est /yolo/datasets/one
.
/yolo/datasets/one images - 1.jpg - 2.jpg - ... labels - 1.txt - 2.txt classes.txt
exemple classes.txt
Airplane Car
label-studio-converter import yolo -i /yolo/datasets/one -o ls-tasks.json --image-root-url "/data/local-files/?d=one/images"
Où le chemin de l'URL de ?d=
est relatif au chemin que vous avez défini dans LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT
.
Remarque pour les stockages locaux
Il est très important de définir LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/yolo/datasets
( pas sur /yolo/datasets/one
, mais sur /yolo/datasets
) pour que Label Studio s'exécute.
Ajoutez un nouveau stockage local dans les paramètres du projet et définissez le chemin local absolu sur /yolo/datasets/one/images
(ou c:yolodatasetsoneimages
pour Windows).
Remarque concernant les stockages cloud
Utilisez --image-root-url
pour créer des préfixes corrects pour les URL de tâches, par exemple --image-root-url s3://my-bucket/yolo/datasets/one
.
Ajoutez un nouveau Cloud Storage dans les paramètres du projet avec le bucket et le préfixe correspondants.
Commande d'aide
label-studio-converter import yolo -h usage: label-studio-converter import yolo [-h] -i INPUT [-o OUTPUT] [--to-name TO_NAME] [--from-name FROM_NAME] [--out-type OUT_TYPE] [--image-root-url IMAGE_ROOT_URL] [--image-ext IMAGE_EXT] optional arguments: -h, --help show this help message and exit -i INPUT, --input INPUT directory with YOLO where images, labels, notes.json are located -o OUTPUT, --output OUTPUT output file with Label Studio JSON tasks --to-name TO_NAME object name from Label Studio labeling config --from-name FROM_NAME control tag name from Label Studio labeling config --out-type OUT_TYPE annotation type - "annotations" or "predictions" --image-root-url IMAGE_ROOT_URL root URL path where images will be hosted, e.g.: http://example.com/images or s3://my-bucket --image-ext IMAGE_EXT image extension to search: .jpg, .png
Ce didacticiel vous guidera tout au long du processus d'importation d'un dossier contenant des annotations YOLO dans Label Studio pour des annotations ultérieures. Nous couvrirons la configuration de votre environnement, la conversion des annotations YOLO au format Label Studio et leur importation dans votre projet.
Label Studio installé localement
YOLO a annoté les images et les fichiers d'étiquettes .txt correspondants dans le répertoire /yolo/datasets/one
.
label-studio-converter installé (disponible via pip install label-studio-converter
)
Avant de démarrer Label Studio, définissez les variables d'environnement suivantes pour activer le service de fichiers de stockage local :
Systèmes Unix :
export LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true export LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/yolo/datasets label-studio
Fenêtres :
set LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true set LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=C:yolodatasets label-studio
Remplacez /yolo/datasets
par le chemin réel vers votre répertoire de jeux de données YOLO.
Créez un nouveau projet.
Accédez aux paramètres du projet et sélectionnez Cloud Storage .
Cliquez sur Ajouter un stockage source et sélectionnez Fichiers locaux dans les options Type de stockage .
Définissez le chemin local absolu sur /yolo/datasets/one/images
ou c:yolodatasetsoneimages
sous Windows.
Cliquez sur Add storage
.
Vérifiez plus de détails sur les stockages locaux dans la documentation.
Avant d'importer les annotations converties depuis YOLO, vérifiez que vous pouvez accéder à une image depuis votre stockage local via Label Studio. Ouvrez un nouvel onglet de navigateur et saisissez l'URL suivante :
http://localhost:8080/data/local-files/?d=one/images/.jpg
Remplacez one/images/
par le chemin d'accès à l'une de vos images. L'image devrait s'afficher dans le nouvel onglet du navigateur . Si vous ne parvenez pas à ouvrir une image, la configuration du stockage local est incorrecte. La raison la plus probable est que vous avez commis une erreur en spécifiant votre Path
dans les paramètres de stockage local ou dans LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT
.
Remarque : Le chemin de l'URL de ?d=
doit être relatif à LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/yolo/datasets
, cela signifie que le chemin réel sera /yolo/datasets/one/images/
et cette image devrait exister sur votre disque. conduire.
Utilisez le convertisseur label-studio-converter pour convertir vos annotations YOLO dans un format que Label Studio peut comprendre :
label-studio-converter import yolo -i /yolo/datasets/one -o output.json --image-root-url "/data/local-files/?d=one/images"
Importez maintenant le fichier output.json
dans Label Studio :
Accédez à votre projet Label Studio.
Dans le gestionnaire de données, cliquez sur Importer .
Sélectionnez le fichier output.json
et importez-le.
Après l'importation, vous devriez voir vos images avec les cadres de délimitation pré-annotés dans Label Studio. Vérifiez que les annotations sont correctes et effectuez les ajustements nécessaires.
Si vous rencontrez des problèmes avec les chemins ou l'accès aux images, assurez-vous que :
Le LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT est défini correctement.
Le --image-root-url
dans la commande de conversion correspond au chemin relatif :
`Absolute local path from Local Storage Settings` - `LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT` = `path for --image_root_url`
par exemple :
/yolo/datasets/one/images - /yolo/datasets/ = one/images
Le stockage local dans Label Studio est correctement configuré avec le chemin local absolu vers vos images ( /yolo/datasets/one/images
)
Pour plus de détails, reportez-vous à la documentation sur l'importation de données pré-annotées et la configuration de Cloud Storages.
Nous serions ravis d'obtenir votre aide pour créer des convertisseurs vers d'autres modèles. N'hésitez pas à créer des demandes de tirage.
Ligne directrice de contribution
Code de conduite