À propos du projet

Labelme est un outil graphique d'annotation d'images écrit en Python avec une interface Qt, inspiré du projet LabelMe du MIT. Il est distribué sur PyPI et également proposé comme application autonome payante pour les utilisateurs qui préfèrent ne pas installer Python ou Qt. Les primitives d'annotation incluent polygone, rectangle, cercle, ligne et point, ainsi que l'annotation par drapeau d'image pour la classification et le nettoyage. L'annotation vidéo est prise en charge. L'interface graphique peut être personnalisée avec des étiquettes et des drapeaux prédéfinis, la sauvegarde automatique et la validation des étiquettes. Les annotations sont stockées sous forme de fichiers JSON. Les fonctionnalités assistées par IA incluent l'annotation point-vers-polygone ou masque à l'aide des modèles SAM et EfficientSAM, et l'annotation texte-vers-annotation à l'aide des modèles YOLO-world et SAM3. Les jeux de données peuvent être exportés au format VOC pour la segmentation sémantique et d'instances, et au format COCO pour la segmentation d'instances. Des exemples de flux de travail couvrent la classification d'images, la détection de boîtes englobantes, la segmentation sémantique, la segmentation d'instances et l'annotation vidéo. L'interface est disponible dans environ 20 langues, dont l'anglais, le japonais, le coréen, le chinois simplifié et traditionnel, l'allemand, le grec, le français, l'espagnol, l'italien, le portugais, le néerlandais, le hongrois, le russe, le thaï, le vietnamien, le turc, l'ukrainien, le polonais et le persan, sélectionnables via la variable d'environnement LANG. Les options d'installation sont pip (`pip install labelme`), un exécutable autonome, ou les paquets natifs des distributions Linux suivis par Repology. La version 7.x cible Python 3.12-3.14 avec Qt6 via PySide6 sur macOS, Windows et Linux 64 bits ; la version 6.3.x est une ligne de maintenance pour Qt5 et Python 3.10/3.11. Le projet suit SPEC 0 pour abandonner les versions de Python en phase avec numpy, scipy et scikit-image. Labelme est une application plutôt qu'une bibliothèque : les interfaces stables sont l'interface en ligne de commande, le format d'annotation JSON sur disque et le format de configuration `~/.labelmerc`. Les modules Python internes ont été privatisés dans la v7, de sorte que les imports tels que `labelme.app` ou `labelme.utils` ne fonctionnent plus ; un code de référence pour lire le format JSON sans dépendre de labelme est fourni dans les exemples. Les booléens de configuration suivent désormais l'analyse YAML 1.2, donc `yes`/`no`/`on`/`off` doivent être écrits comme `true`/`false`. Le développement utilise just et uv, avec des commandes telles que `just setup`, `just lint` et `just test`. Le dépôt est un fork de mpitid/pylabelme.