À propos du projet

YoloDotNet est une bibliothèque modulaire de vision par ordinateur .NET 8 pour exécuter des modèles YOLO exportés au format ONNX. Implémentée en C#, elle utilise ONNX Runtime et SkiaSharp, sans nécessiter d'environnement d'exécution Python ni OpenCV. La bibliothèque cible les applications de bureau, les services backend et les pipelines de vision en temps réel sur Windows, Linux et macOS. Les tâches d'inférence prises en charge incluent la classification d'images, la détection d'objets standard, la détection de boîtes englobantes orientées, la segmentation et l'estimation de pose. La documentation liste la prise en charge des familles de modèles YOLOv5u à YOLOv26, YOLO-World, YOLO-E et RT-DETR, avec un tableau de modèles vérifiés couvrant des variantes spécifiques de classification, détection, segmentation, pose et OBB. L'utilisation d'images et de flux vidéo est démontrée dans les projets de démonstration du dépôt. Le package principal YoloDotNet est indépendant du fournisseur, et les utilisateurs installent exactement un package de fournisseur d'exécution. Les fournisseurs disponibles sont CPU, CUDA avec prise en charge optionnelle de TensorRT, OpenVINO, CoreML et DirectML. La disponibilité des plateformes varie : CPU fonctionne sur Windows, Linux et macOS ; CUDA et OpenVINO prennent en charge Windows et Linux ; CoreML prend en charge macOS ; et DirectML prend en charge Windows. Le README note que le mélange de fournisseurs peut provoquer des conflits d'exécution natifs. L'API est conçue pour un contrôle explicite du chargement du modèle, du prétraitement, des seuils, de la mémoire et du comportement d'exécution. Un flux typique de détection d'objets crée une instance Yolo avec YoloOptions et un fournisseur d'exécution, décode une image avec SkiaSharp, appelle RunObjectDetection avec des paramètres de confiance et d'IoU, dessine les résultats et enregistre la sortie. Le paramètre IoU s'applique aux modèles basés sur NMS et est ignoré pour les modèles tels que YOLOv10 et YOLOv26 qui gèrent le post-traitement pertinent en interne. La version 4.2 ajoute l'inférence par région d'intérêt pour des zones d'image ou vidéo sélectionnées, le dessin optionnel des bords sur les objets segmentés, l'extraction ordonnée des points de contour, les assistants ToJson et SaveJson pour les résultats, ainsi que les assistants ToYoloFormat et SaveYoloFormat pour produire des annotations au format YOLO. D'autres fonctionnalités documentées incluent la mise en cache du moteur et les paramètres configurables de redimensionnement et d'échantillonnage. Les utilisateurs fournissent leurs propres modèles ONNX ; le projet ne télécharge, n'inclut ni ne regroupe de poids pré-entraînés. Le README recommande l'opset d'exportation Ultralytics 17 pour YOLOv5u à YOLOv12 et l'opset 18 pour YOLOv26. YoloDotNet lui-même est sous licence MIT, tandis que les modèles produits avec les outils Ultralytics peuvent être sous licence AGPL-3.0 ou nécessiter une licence commerciale ; les utilisateurs sont donc responsables de vérifier la conformité de la licence du modèle.