Gatling
Qu’est-ce que Gatling ?
Gatling est un puissant outil de test de charge open source conçu pour les performances et la fiabilité. Il offre une solution complète pour simuler le comportement réel des utilisateurs et mesurer les performances de vos applications sous contrainte.
Motivation
Gatling vous permet de :
1. Comprenez les limites de votre application : identifiez les goulots d'étranglement et les problèmes de performances avant qu'ils n'affectent vos utilisateurs.
2. Améliorez l'expérience utilisateur : assurez-vous que votre application peut gérer les pics de trafic et offrir des performances fluides à tous les utilisateurs.
3. Obtenez des informations précieuses : analysez les résultats des tests pour optimiser les performances, l'évolutivité et la fiabilité de votre application.
Des questions, de l'aide ?
Pour obtenir de l'aide et du soutien, vous pouvez :
1. Consultez la documentation officielle : explorez des didacticiels détaillés, des guides et des références API.
2. Rejoignez le forum communautaire Gatling : connectez-vous avec d'autres utilisateurs, partagez des expériences et demandez des conseils.
3. Signaler les problèmes : si vous rencontrez un bug, signalez-le sur le référentiel officiel Gatling GitHub.
Partenaires
Gatling collabore avec divers partenaires pour fournir des solutions complètes de tests de charge. Explorez l'écosystème de partenaires pour des intégrations spécialisées et des services de support.
Cadre de détection d'objets Darknet et YOLO
Darknet est un framework de réseau neuronal open source écrit en C, C++ et CUDA, réputé pour sa rapidité et son efficacité.
YOLO (You Only Look Once) est un système de détection d'objets en temps réel de pointe qui s'intègre parfaitement au framework Darknet.
Explorez l'écosystème Darknet/YOLO :
1. Contribution de Hank.ai : Découvrez comment Hank.ai contribue activement à la communauté Darknet/YOLO.
2. Site officiel : accédez aux dernières informations, ressources et actualités sur le site Web Darknet/YOLO.
3. FAQ complète : trouvez les réponses aux questions fréquemment posées sur Darknet/YOLO.
4. Rejoignez le serveur Discord : connectez-vous avec d'autres passionnés de Darknet/YOLO, discutez d'idées et obtenez de l'aide.
Papiers
1. YOLOv7 : découvrez les dernières avancées de YOLOv7.
2. Scaled-YOLOv4 : Plongez dans l'architecture Scaled-YOLOv4 et ses améliorations de performances.
3. YOLOv4 : Comprenez les principales fonctionnalités et innovations de YOLOv4.
4. YOLOv3 : découvrez les origines de YOLO et les principes fondateurs de YOLOv3.
Informations générales
Le framework Darknet/YOLO surpasse systématiquement les autres frameworks et versions YOLO en termes de vitesse et de précision.
Il est entièrement gratuit et open source, vous permettant de l'intégrer dans vos projets et produits sans restrictions de licence.
Darknet V3 « Jazz », sorti en octobre 2024, atteint des performances remarquables, en traitant les vidéos des ensembles de données LEGO jusqu'à 1 000 FPS à l'aide d'un GPU NVIDIA RTX 3090.
Version Darknet
1. Version 0.x : L'outil Darknet original développé par Joseph Redmon de 2013 à 2017.
2. Version 1.x : le référentiel Darknet populaire maintenu par Alexey Bochkovskiy entre 2017 et 2021.
3. Version 2.x « OAK » : Le référentiel Darknet sponsorisé par Hank.ai et maintenu par Stéphane Charette à partir de 2023. Il a introduit la numérotation des versions et a apporté des améliorations significatives, notamment :
- Processus de build unifié utilisant CMake pour Windows et Linux.
- Conversion de la base de code vers le compilateur C++.
- Amélioration de la visualisation chart.png pendant la formation.
- Corrections de bugs et optimisations des performances.
4. Version 2.1 : La dernière branche de la version 2.x, disponible dans la branche v2.
5. Version 3.x « JAZZ » : La dernière version sortie en octobre 2024, comprenant :
- Suppression des commandes héritées et non maintenues.
- Optimisations approfondies des performances pour la formation et l'inférence.
- API C héritée modifiée.
- Nouvelle API Darknet V3 C et C++.
- Exemples de code et applications étendus dans les exemples src.
Poids pré-entraînés MSCOCO
Plusieurs versions populaires de YOLO sont pré-entraînées sur l'ensemble de données MSCOCO, fournissant 80 classes d'objets répertoriées dans le fichier cfg/coco.names.
D'autres ensembles de données et poids pré-entraînés sont disponibles pour les tests, notamment :
Engrenages LEGO
Rolodex
Téléchargez les poids pré-entraînés MSCOCO à partir de divers emplacements, y compris ce référentiel :
| Version | Minuscule | Complet |
|---|---|---|
| YOLOv2 (novembre 2016) | yolov2-tiny.poids | yolov2-full.poids |
| YOLOv3 (mai 2018) | yolov3-tiny.poids | yolov3-full.poids |
| YOLOv4 (mai 2020) | yolov4-tiny.poids | yolov4-full.poids |
| YOLOv7 (août 2022) | yolov7-tiny.poids | yolov7-full.poids |
Exemples utilisant des poids pré-entraînés MSCOCO :
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
N'oubliez pas que les utilisateurs sont encouragés à former leurs propres réseaux et que MSCOCO est principalement destiné aux tests.
Bâtiment
Darknet nécessite C++ 17 ou version ultérieure, OpenCV et utilise CMake pour l'automatisation de la construction.
Remarque importante : ces instructions sont mises à jour pour la création de Darknet après août 2023. Si vous rencontrez des problèmes après des didacticiels plus anciens, reportez-vous à ce README pour connaître les dernières étapes de création.
Google Colab
Suivez les instructions Linux ci-dessous. Explorez les notebooks Jupyter dans le sous-répertoire colab pour des tâches spécifiques telles que la formation.
Méthode Linux CMake
1. Installez les dépendances nécessaires :
- sudo apt-get install build-essential git libopencv-dev cmake
2. Clonez le référentiel Darknet :
- mkdir ~/srccd ~/src git clone https://github.com/hank-ai/darknet
3. Créez un répertoire de build :
- cd darknet mkdir buildcd construire
4. Configurez et créez Darknet :
- cmake -DCMAKEBUILDTYPE=Version ..
- créer le paquet -j4
5. Installez le package .deb :
- sudo dpkg -i darknet-VERSION.deb
6. Vérifiez l'installation :
- version darknet
Facultatif : installez CUDA ou CUDA+cuDNN pour l'accélération GPU :
1. Téléchargez et installez CUDA :
- https://developer.nvidia.com/cuda-downloads
2. Téléchargez et installez cuDNN :
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview
3. Vérifiez l'installation de CUDA :
- nvcc
- nvidia-smi
4. Reconstruisez Darknet :
- cmake -DCMAKEBUILDTYPE=Version ..
- créer le paquet -j4
5. Installez le package .deb mis à jour :
- sudo dpkg -i darknet-VERSION.deb
Méthode Windows CMake
1. Installez les dépendances nécessaires :
- Winget installe Git.Git
- Winget installe Kitware.CMake
- Winget installe nsis.nsis
- Winget installe Microsoft.VisualStudio.2022.Community
2. Modifiez l'installation de Visual Studio :
- Ouvrez "Visual Studio Installer".
- Sélectionnez "Modifier".
- Choisissez « Développement de postes de travail avec C++ ».
- Cliquez sur "Modifier" et "Oui".
3. Installez Microsoft VCPKG :
- Ouvrez l'invite de commande du développeur pour VS 2022 (pas PowerShell).
- cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg bootstrap-vcpkg.bat .vcpkg.exe intégrer l'installation .vcpkg.exe intégrer powershell.vcpkg.exe installer opencv[contrib ,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
4. Clonez le référentiel Darknet :
- cd c:src git clone https://github.com/hank-ai/darknet.gitcd darknet
5. Créez un répertoire de build :
- mkdir buildcd construire
6. Configurez et créez Darknet :
- cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
- msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
- msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
7. Copiez les DLL CUDA si nécessaire :
- Si vous rencontrez des erreurs DLL CUDA manquantes, copiez-les dans le répertoire de sortie :
- copier "C: Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
8. Réexécutez msbuild pour générer le package d'installation NSIS :
- msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
9. Exécutez l'assistant d'installation NSIS :
- darknet-VERSION.exe
10. Vérifiez l'installation :
- Version C:Program FilesDarknetbindarknet.exe
Facultatif : installez CUDA ou CUDA+cuDNN pour l'accélération GPU :
1. Téléchargez et installez CUDA :
- https://developer.nvidia.com/cuda-downloads
2. Téléchargez et installez cuDNN :
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows
3. Décompressez cuDNN et copiez les répertoires :
- C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[version]
4. Reconstruisez Darknet :
- Répétez les étapes 6 à 8 après avoir installé CUDA.
Utiliser le Darknet
CLI
Commandes :
aide sur le darknet
version darknet
Prédiction d'images :
V2 : test du détecteur darknet cars.data cars.cfg cars_best.weights image1.jpg
V3 : darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp : DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
Coordonnées de sortie :
V2 : test du détecteur darknet animal.data animaux.cfg animauxbest.weights -extoutput dog.jpg
V3 : darknet01inference_images animaux chien.jpg
DarkHelp : DarkHelp --json animaux.cfg animaux.names animaux_best.weights dog.jpg
Traitement vidéo :
V2 : démo du détecteur darknet animaux.data animaux.cfg animauxbest.weights -extoutput test.mp4
V3 : darknet03display_videos animaux.cfg test.mp4
DarkHelp : DarkHelp animaux.cfg animaux.names animaux_best.weights test.mp4
Webcam :
V2 : démo du détecteur darknet animaux.data animaux.cfg animaux_best.weights -c 0
V3 : animaux darknet08display_webcam
Enregistrement des résultats dans la vidéo :
V2 : démo du détecteur darknet animaux.data animaux.cfg animauxbest.weights test.mp4 -outfilename res.avi
V3 : darknet05processvideosmultithreaded animaux.cfg animaux.noms animaux_best.weights test.mp4
DarkHelp : DarkHelp animaux.cfg animaux.names animaux_best.weights test.mp4
Sortie JSON :
V2 : démo du détecteur darknet animal.data animaux.cfg animauxbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3 : darknet06imagestojson animaux image1.jpg
DarkHelp : DarkHelp --json animaux.names animaux.cfg animaux_best.weights image1.jpg
GPU spécifique :
V2 : démo du détecteur darknet animaux.data animaux.cfg animaux_best.weights -i 1 test.mp4
Précision:
Carte du détecteur Darknet Driving.data Driving.cfg Driving_best.weights ...
carte du détecteur darknet animaux.data animaux.cfg animauxbest.weights -iouthresh 0,75
Ancres :
détecteur darknet calcanchors animaux.data -numof_clusters 6 -largeur 320 -hauteur 256
Entraînement
DarkMark : utilisez DarkMark pour l'annotation et la formation. C'est l'approche recommandée pour former de nouveaux réseaux de neurones.
Configuration manuelle :
1. Créez un répertoire de projet : par exemple, ~/nn/animals/.
2. Copiez un fichier de configuration : cfg/yolov4-tiny.cfg
3. Créez un fichier animaux.names : répertoriez les classes (une par ligne) comme :
- chien
- chat
- oiseau
- cheval
4. Créez un fichier animaux.data :
- cours = 4
- train = /home/username/nn/animals/animals_train.txt
- valide = /home/username/nn/animals/animals_valid.txt
- noms = /home/username/nn/animaux/animaux.names
- sauvegarde = /home/nom d'utilisateur/nn/animaux
5. Créez un dossier d'ensemble de données : stockez les images et les fichiers d'annotation correspondants (.txt) au format YOLO.
6. Créez animauxtrain.txt et animauxvalid.txt : répertoriez les images pour la formation et la validation.
7. Modifiez animaux.cfg :
- lot = 64
- subdivisions = 1
- max_batches = 8000 (4 classes * 2000)
- pas = 6400,7200
- largeur = ...
- hauteur = ...
- cours = 4
- Mettre à jour les valeurs des filtres (par exemple, (4 + 5) * 3 = 27).
8. Commencez la formation : cd ~/nn/animals/ darknet detector -map -dont_show train animals.data cats.cfg
Paramètres de formation :
--verbose pour une sortie détaillée
Autres outils et liens
DarkMark : gestion de projet, annotation d'images et génération de fichiers pour Darknet.
DarkHelp : CLI alternative, mosaïque d'images, suivi d'objets et API C++ robuste.
FAQ Darknet/YOLO : ressource complète pour les questions courantes.
Chaîne YouTube de Stéphane : Tutoriels et exemples de vidéos.
Serveur Discord Darknet/YOLO : support et discussions de la communauté.
Feuille de route
Complété:
std::sort() pour qsort() pendant la formation
Suppression de check_mistakes, getchar() et system()
Prise en charge du compilateur C++ (g++ sous Linux, VisualStudio sous Windows)
Correctif de build Windows
Correctif de prise en charge de Python
Création de la bibliothèque Darknet
Libellés sur les prédictions (code "alphabet")
Réactivation du code CUDA/GPU
CUDNN réactivé
CUDNN à moitié réactivé
Architecture CUDA non codée en dur
Informations améliorées sur la version CUDA
Réactivation d'AVX
Suppression des anciennes solutions et Makefile
OpenCV en tant que dépendance non facultative
Suppression de l'ancienne dépendance de la bibliothèque pthread
Suppression du STB
Réécriture de CMakeLists.txt pour une nouvelle détection CUDA
Suppression du code "alphabet" et des images de données/étiquettes
Construction hors source
Sortie améliorée du numéro de version
Optimisations des performances pour la formation et l'inférence
Passage par référence si possible
Fichiers .hpp nettoyés
Darknet.h réécrit
cv::Mat utilisation au lieu du casting void*
Corrections concernant l'utilisation de la structure d'image interne
Correctif de build pour les appareils Jetson basés sur ARM
Correctif de l'API Python dans la V3
Objectifs à court terme :
std :: cout pour printf ()
Prise en charge de la caméra Zed
Analyse de ligne de commande améliorée
Objectifs à moyen terme :
Suppression du code char* au profit de std::string
Nettoyage des avertissements du compilateur
Utilisation améliorée de cv::Mat
Remplacement de l'ancienne fonctionnalité de liste par std :: vector ou std :: list
Prise en charge des images en niveaux de gris à 1 canal
Prise en charge des images à canal N (N > 3)
Nettoyage du code en cours
Objectifs à long terme :
Correctifs CUDA/CUDNN pour tous les GPU
Réécriture du code CUDA+cuDNN
Prise en charge des GPU non NVIDIA
Cadres de délimitation pivotés et support d'angle
Points clés et squelettes
Cartes thermiques
Segmentation