Présentation de l'ensemble de données
Cet ensemble de données a été conçu spécifiquement pour entraîner des modèles de détection d'objets à identifier les téléphones portables utilisés par des personnes dans des images. Il contient plus de 10 000 images annotées, provenant de divers environnements intérieurs et extérieurs.
Caractéristiques principales
- Volume de données : Plus de 10 000 images de haute qualité.
- Répartition des données :
- Ensemble d'entraînement : environ 8 000 images
- Ensemble de validation : environ 1 000 images
- Ensemble de test : environ 1 000 images
- Classe d'objet unique : Téléphone (ID de classe : 0).
- Type d'annotation : Boîtes englobantes (Bounding Boxes) au format YOLO.
- Compatibilité : Conçu pour YOLO, mais adaptable à d'autres architectures comme Faster R-CNN, SSD, ou DETR.
Motivation et défis techniques
L'utilisation prolongée du téléphone mobile peut présenter des risques dans des contextes tels que la conduite ou les environnements de travail industriels. Les méthodes de surveillance manuelle sont coûteuses et peu efficaces. Ce jeu de données vise à faciliter le développement de solutions automatisées basées sur la vision par ordinateur pour détecter cette activité.
Structure et format des données
Les images sont organisées selon la structure standard de YOLO pour l'entraînement.
répertoire_dataset/
├── train/
│ └── images/
├── valid/
│ └── images/
├── test/
│ └── images/
└── labels/
Chaque fichier d'annotation (.txt) contient une ligne par objet avec le format suivant :
id_classe centre_x centre_y largeur hauteur
Toutes les coordonnées sont normalisées entre 0 et 1. Exemple :
0 0.462 0.587 0.05 0.1
Le fichier de configuration YAML pour YOLO peut être structuré ainsi :
chemin_train: train/images
chemin_val: valid/images
chemin_test: test/images
nombre_classes: 1
liste_classes: ['telephone']
Domaines d'application
Cet ensemble de données peut servir de base pour :
- Surveillance de sécurité : Détecter l'utilisation du téléphone dans des zones à risque (usines, chantiers, conduite).
- Analyse du comportement : Étudier les habitudes d'utilisation dans le cadre de la recherche en interaction homme-machine.
- Développement de modèles : Entraîner et évaluer des modèles de détection d'objets dans des scènes réelles complexes.
- Systèmes de transport intelligents : Identifier les conducteurs ou piétons distractés.
Exemple d'entraînement avec YOLO
Voici un exemple d'utilisation pour entraîner un modèle YOLOv8 sur cet ensemble de données. Notez l'utilisation de variables et de noms de paramètres modifiés.
from ultralytics import YOLO
# Chargement d'un modèle pré-entraîné
modele_base = YOLO("yolov8n.pt")
# Lancement de l'entraînement
resultats_entrainement = modele_base.train(
data="configuration.yaml",
epochs=100,
imgsz=640,
batch=16,
device='0'
)
# Exemple d'inférence sur une nouvelle image
resultats_prediction = modele_base.predict(source="nouvelle_image.jpg")
predictions = resultats_prediction[0].boxes
print(f"Nombre de téléphones détectés : {len(predictions)}")
Optimisation et entraînement
Pour améliorer les performances du modèle, plusieurs stratégies peuvent être employées :
- Augmentation des données : Appliquer des transformations aléatoires (retournements, rotations, variations de luminosité) pour enrichir le jeu de données.
- Entraînement multi-échelle : Varier la taille des images d'entrée pour améliorer la détection des téléphones à différentes distances.
- Sélection du modèle : Commencer par des modèles légers (YOLOv8n/s) pour les appareils à ressources limitées, et utiliser des modèles plus grands (YOLOv8m/l/x) pour une précision accrue sur serveur.
- Stratégie d'apprentissage : Utiliser une politique de taux d'apprentissage décroissant (par exemple, cosine annealing) et une early stopping basée sur les performances sur l'ensemble de validation.
Contrôle qualité des annotations
La fiabilité des annotations est cruciale. Le processus de construction de ce jeu de données inclut :
- Annotation réalisée par des professionnels en vision par ordinateur.
- Application de directives d'ennotation strictes pour assurer la cohérence.
- Plusieurs passes de révision et de validation pour corriger les erreurs.
- Filtrage des images de mauvaise qualité (floues, surexposées).
- Vérification de la diversité des scènes et des conditions d'éclairage.
Défis techniques courants et solutions
| Défi | Solutions envisagées |
|---|---|
| Variation d'échelle des téléphones | Utiliser des pyramides de caractéristiques (FPN), entraîner avec des entrées de tailles variées. |
| Occlusions partielles | Augmenter les données avec des scènes partiellement masquées, exploiter le contexte. |
| Variations d'éclairage | Appliquer une normalisation d'éclairage, utiliser des augmentations de contraste/luminosité. |
| Arrière-plans complexes | Utiliser des réseaux extracteurs de caractéristiques plus puissants, appliquer un post-traitement NMS. |
Orientations futures
L'ensemble de données pourrait être étendu pour inclure :
- Des séquences vidéo pour l'analyse temporelle.
- Des annotations pour d'autres types de comportements liés à l'inattention.
- Des données provenant de capteurs multimodaux (audio, profondeur).