Ultralytics YOLO27 :
Licence YOLO
Retour au glossaire Ultralytics

XML

XML est un format texte qui imbrique des balises personnalisées pour former un arbre de données structurées. Sa syntaxe, ses schémas, les annotations PASCAL VOC et sa comparaison avec JSON et YAML.

XML (langage de balisage extensible) est un format texte pour les données structurées dans lequel des balises personnalisées s’imbriquent les unes dans les autres pour former un arbre, par exemple un élément <size> contenant <width> et <height>. Le World Wide Web Consortium a publié XML 1.0 en tant que recommandation en février 1998, comme sous-ensemble simplifié de SGML (langage normalisé généralisé de balisage) destiné à l’échange de documents et de données sur le Web. Contrairement à HTML, XML ne définit aucune balise prédéfinie : chaque application définit ses propres balises pour décrire la signification de ses données. C’est pourquoi de nombreux formats de fichiers reposent sur XML, des graphiques SVG et des flux RSS aux documents Microsoft Office. En apprentissage automatique et en vision par ordinateur, XML apparaît surtout dans les fichiers d’annotation, les fichiers de modèles et les systèmes médicaux et d’entreprise qui fournissent des données d’entraînement.

Syntaxe et validation XML#

Un document XML comporte exactement un élément racine. Les éléments peuvent contenir du texte, des éléments enfants et des attributs écrits dans la balise ouvrante, comme dans <box label="car" xtl="10">, et les espaces de noms déclarés avec xmlns distinguent les balises de vocabulaires différents. Un document qui respecte les règles de syntaxe — toutes les balises sont fermées, les éléments correctement imbriqués et les valeurs d’attribut entre guillemets — est bien formé, et les analyseurs doivent s’arrêter à la première erreur de bonne formation. Un document est également valide s’il correspond à un schéma, défini par une définition de type de document (DTD) ou un schéma XML (XSD) qui répertorie les éléments autorisés, leur ordre et leurs types de données. Des expressions XPath comme size/width sélectionnent des nœuds dans l’arbre, et des feuilles de style XSLT transforment un vocabulaire XML en un autre.

XML en vision par ordinateur et en apprentissage automatique#

Le concours PASCAL VOC, organisé de 2005 à 2012, a fait du XML le format d’annotation classique pour la détection d’objets. Chaque image est associée à un fichier XML contenant son nom et sa taille, ainsi qu’un élément <object> par objet, avec le nom de classe, les indicateurs truncated et difficult, et un élément <bndbox> dont les coins en pixels xmin, ymin, xmax et ymax définissent la boîte englobante. L’outil d’annotation LabelImg enregistre ce format par défaut ; de nombreux jeux de données le fournissent donc encore et nécessitent une conversion lors du prétraitement des données. L’export CVAT for images 1.1 de CVAT stocke toutes les annotations d’une tâche dans un seul fichier XML, avec des boîtes écrites sous forme d’attributs tels que xtl, ytl, xbr et ybr.

XML décrit également des modèles et des enregistrements. La représentation intermédiaire OpenVINO d’Intel stocke les couches et les connexions d’un réseau dans un fichier .xml et ses poids dans un fichier .bin correspondant ; les détecteurs de visages préentraînés par cascade de Haar d’OpenCV sont également distribués au format XML. Les dossiers médicaux HL7 FHIR, que les projets d’IA clinique associent à des images pour l’analyse d’images médicales, peuvent être échangés au format XML ou JSON ; les fichiers Word et Excel sont, quant à eux, des archives ZIP de composants XML que les systèmes d’IA documentaire peuvent lire.

Cet exemple analyse une annotation VOC avec ElementTree, la bibliothèque intégrée à Python, et convertit chaque boîte en centre, largeur et hauteur normalisés du format d’étiquette YOLO :

import xml.etree.ElementTree as ET

# A PASCAL VOC annotation: one XML file per image, one <object> per box
voc = """
<annotation>
  <filename>000017.jpg</filename>
  <size><width>480</width><height>364</height><depth>3</depth></size>
  <object><name>person</name><difficult>0</difficult>
    <bndbox><xmin>185</xmin><ymin>62</ymin><xmax>279</xmax><ymax>199</ymax></bndbox></object>
  <object><name>horse</name><difficult>0</difficult>
    <bndbox><xmin>90</xmin><ymin>78</ymin><xmax>403</xmax><ymax>336</ymax></bndbox></object>
</annotation>
"""
root = ET.fromstring(voc)
w, h = int(root.find("size/width").text), int(root.find("size/height").text)

# Convert corner pixels to YOLO's normalized center x, center y, width, height
for obj in root.iter("object"):
    box = obj.find("bndbox")
    x1, y1, x2, y2 = (float(box.find(k).text) for k in ("xmin", "ymin", "xmax", "ymax"))
    cx, cy = ((x1 + x2) / 2 - 1) / w, ((y1 + y2) / 2 - 1) / h  # VOC pixel indices start at 1
    print(obj.find("name").text, f"{cx:.3f} {cy:.3f} {(x2 - x1) / w:.3f} {(y2 - y1) / h:.3f}")

Il affiche person 0.481 0.356 0.196 0.376 et horse 0.511 0.566 0.652 0.709 : les deux mêmes boîtes exprimées en fractions de la taille de l’image, prêtes à être écrites sous forme de lignes d’étiquettes après leurs indices de classe. Le fichier Ultralytics VOC.yaml du jeu de données exécute automatiquement cette conversion lors de sa première utilisation, en téléchargeant VOC 2007 et 2012, en analysant chaque annotation XML avec ElementTree, en ignorant les objets marqués difficult et en écrivant les étiquettes YOLO .txt pour 16 551 images d’entraînement et 4 952 images de validation.

XML, JSON et YAML comparés#

  • JSON : objets, tableaux, chaînes, nombres et booléens, avec une syntaxe plus légère que celle de XML et une correspondance directe avec les dictionnaires Python et les objets JavaScript. Les API Web et les annotations du jeu de données COCO l’utilisent.
  • YAML : l’indentation remplace les balises fermantes, les commentaires sont pris en charge et, depuis YAML 1.2, la syntaxe accepte tout document JSON. YAML est ainsi apprécié pour les fichiers de configuration modifiés manuellement, comme ceux des jeux de données et des modèles YOLO.
  • XML : plus verbeux, il propose des schémas, des espaces de noms, des attributs et du contenu mixte, c’est-à-dire du texte associé à du balisage intégré. Il convient donc aux documents et aux organismes de normalisation qui exigent une validation stricte.

Analyser du XML non fiable#

La fonctionnalité d’entités XML permet à un document de définir du texte réutilisable, ce dont les attaquants tirent parti. Dans l’attaque des « milliards de rires », une dizaine de définitions d’entités imbriquées, chacune faisant référence dix fois à la précédente, transforment un fichier de quelques centaines d’octets en plusieurs gigaoctets de texte. Une attaque par entité externe XML (XXE) déclare une entité pointant vers un fichier local ou une URL interne ; un analyseur vulnérable lit alors des informations secrètes dans le document ou envoie des requêtes depuis le réseau interne. Le module xml.etree.ElementTree de Python ne développe pas les entités externes et déclenche une erreur d’analyse lorsqu’il en rencontre une ; son analyseur Expat résiste aux attaques des milliards de rires depuis la version 2.4.1. Le paquet defusedxml va plus loin et déclenche EntitiesForbidden pour toute déclaration d’entité, interne ou externe.

Explore solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les prises de vue aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la surveillance environnementale, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Déploie l’IA visuelle pour la surveillance aérienne avec les modèles Ultralytics YOLO. Donne de la puissance aux drones, aux workflows aéronautiques, à la conservation de l’environnement et aux secteurs géospatiaux grâce à des solutions de vision par ordinateur.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus
La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les prises de vue aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la surveillance environnementale, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Déploie l’IA visuelle pour la surveillance aérienne avec les modèles Ultralytics YOLO. Donne de la puissance aux drones, aux workflows aéronautiques, à la conservation de l’environnement et aux secteurs géospatiaux grâce à des solutions de vision par ordinateur.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus
La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les prises de vue aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la surveillance environnementale, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Déploie l’IA visuelle pour la surveillance aérienne avec les modèles Ultralytics YOLO. Donne de la puissance aux drones, aux workflows aéronautiques, à la conservation de l’environnement et aux secteurs géospatiaux grâce à des solutions de vision par ordinateur.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique