Données synthétiques
Libérez la puissance des données synthétiques pour l'IA/ML ! Surmontez la pénurie de données, les problèmes de confidentialité et les coûts, tout en stimulant la formation de modèles et l'innovation.
Les données synthétiques sont des informations générées artificiellement qui imitent les propriétés et les modèles statistiques des données réelles.
données du monde réel. Dans les domaines de
l 'apprentissage automatique (ML) et
de la vision artificielle (CV), elles constituent une
de développement de modèles performants lorsque l'obtention de données authentiques est difficile, coûteuse ou limitée par des considérations de confidentialité.
par des problèmes de confidentialité. Contrairement aux ensembles de données traditionnels collectés à partir d'événements physiques, les données synthétiques sont programmées ou simulées, ce qui permet aux développeurs de créer de vastes ensembles de données.
simulées, ce qui permet aux développeurs de créer à la demande de vastes dépôts de données d'entraînement
parfaitement étiquetées. Les analystes industriels de
Gartner prédisent
que d'ici 2030, les données synthétiques éclipseront les données réelles dans les modèles d'IA, ce qui entraînera un changement majeur dans la manière dont les systèmes intelligents sont construits.
intelligents.
Comment les données synthétiques sont-elles générées ?
La création d'ensembles de données synthétiques de haute qualité fait appel à des techniques sophistiquées qui vont de l'infographie classique à l'IA générative moderne.
à l'IA générative moderne. Ces méthodes garantissent que
les données artificielles sont suffisamment diversifiées pour aider les modèles à bien se généraliser à de nouveaux scénarios inédits.
-
Simulation et rendu 3D : Moteurs de jeux tels que
Unity et
Unreal Engine permettent aux développeurs de créer des
des environnements virtuels photoréalistes. Ici, les moteurs physiques simulent la lumière, la gravité et les interactions entre les objets pour
produire des images qui semblent authentiques. Ces moteurs sont souvent utilisés en conjonction avec des flux de travail de détection d'objets en 3D.
flux de travail de détection d'objets en 3D.
-
Modèles génératifs : Algorithmes avancés tels que
les réseaux adversoriels génératifs (GAN)
et les modèles de diffusion apprennent la structure
structure sous-jacente d'un petit ensemble de données réelles pour générer une infinité de nouvelles variations. Des outils tels que
Stable Diffusion illustrent la façon dont ces modèles peuvent créer des données visuelles complexes à partir de zéro.
à partir de rien.
-
Randomisation du domaine : Pour éviter
l'ajustement excessif à un aspect simulé spécifique, les développeurs
utilisent la randomisation du domaine. Cette technique fait varier des paramètres tels que l'éclairage, la texture et l'angle de la caméra.
l'éclairage, la texture et l'angle de la caméra, forçant ainsi l'IA à apprendre les caractéristiques essentielles d'un objet plutôt que le bruit de fond.
le bruit de fond.
Applications concrètes
Les données synthétiques révolutionnent les secteurs où la collecte de données constitue un goulot d'étranglement.
-
Véhicules autonomes : Pour former les voitures autonomes, il faut les exposer à des millions de scénarios de conduite.
de conduite, y compris des événements rares et dangereux tels que des piétons s'engageant dans la circulation ou des conditions météorologiques difficiles.
La collecte physique de ces données n'est pas sûre. Des entreprises comme Waymo utilisent
simulation pour tester leurs
véhicules autonomes sur des milliards de
de milliards de kilomètres virtuels, affinant leurs
systèmes de détection d'objets sans mettre des vies en danger.
-
Soins de santé et imagerie médicale : Les dossiers des patients sont protégés par des réglementations strictes telles que
HIPAA. Le partage de radiographies réelles ou d'IRM à des fins de recherche est souvent
souvent complexe sur le plan juridique. Les données synthétiques permettent aux chercheurs de générer des
d'analyse d'images médicales réalistes qui
qui conservent les marqueurs statistiques des maladies sans contenir d'informations
sans contenir d'informations personnelles identifiables (PII). Cela préserve la confidentialité des données tout en faisant progresser les outils de diagnostic.
la confidentialité des données tout en faisant progresser les outils de diagnostic.
Données synthétiques vs. Augmentation des données
Il est important de distinguer les données synthétiques de
l'augmentation des données, les deux étant utilisées pour
les ensembles de données.
-
L'augmentation des données prend des images existantes du monde réel et les modifie - en les retournant, en les faisant pivoter ou en changeant l'équilibre des couleurs - afin d'accroître la variété,
ou en changeant l'équilibre des couleurs, afin d'accroître la variété. Pour en savoir plus, consultez le
Guide de l'augmentation des donnéesYOLO .
-
Les données synthétiques sont créées à partir de zéro. Elles ne reposent pas sur la modification d'une image source spécifique, mais génèrent des instances entièrement nouvelles.
des instances entièrement nouvelles, ce qui permet de créer des scénarios qui n'auraient jamais été capturés par une caméra.
caméra.
Intégration avec Ultralytics YOLO
Les ensembles de données synthétiques sont formatés de la même manière que les ensembles de données réels, généralement avec des images et des fichiers d'annotation correspondants. Vous pouvez
pouvez entraîner de manière transparente des modèles de pointe tels que YOLO11 sur
sur ces données afin d'améliorer les performances dans des tâches de niche.
L'exemple suivant montre comment générer une image synthétique simple à l'aide d'un code et comment effectuer une inférence sur cette image à l'aide du logiciel
le ultralytics l'emballage.
import cv2
import numpy as np
from ultralytics import YOLO
# 1. Generate a synthetic image (black background, white rectangle)
# This mimics a simple object generation process
synthetic_img = np.zeros((640, 640, 3), dtype=np.uint8)
cv2.rectangle(synthetic_img, (100, 100), (400, 400), (255, 255, 255), -1)
# 2. Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# 3. Run inference on the synthetic data
# The model attempts to detect objects within the generated image
results = model.predict(synthetic_img)
# Display result count
print(f"Detected {len(results[0].boxes)} objects in synthetic image.")