Référence https://blog.csdn.net/dz4543/article/details/85255267
https://blog.csdn.net/sinat_35907936/article/details/82017127
cuda8.0 cudnn5.1 (cuda9.0 et supérieur ne sont pas compatibles avec vs2017)
vs2017 (utilise en fait le compilateur de version vs2015 V140 dans vs2017)
opencv3.3 (ne peut pas dépasser 3,4)
Ceux-ci sont préparés à l'avance
1. Téléchargez yolov3 depuis github
git clone https://github.com/AlexeyAB/darknet.git
Mon emplacement d'installation D: \ software_engineer \ darknet
2. Poids yolo_v3: https://pjreddie.com/media/files/yolov3.weights (cela sera utilisé plus tard)
1. Accédez au dossier D: \ software_engineer \ darknet \ darknet \ build \ darknet, ouvrez darknet.vcxproj et remplacez CUDA 10.0 "par CUDA 8.0 (8.0 est ma version cuda, remplacez-la simplement par la vôtre), (certains Les gens ne sont pas CUDA 10.0, mais CUDA9.1, et ils sont également remplacés par leurs propres numéros de version)
Si votre version vs est vs2013, changez 14.0 en 12.0 et V140 en V120 dans l'image ci-dessous
2. Utilisez ensuite vs2017 pour ouvrir darknet.sln, ne mettez pas à niveau
Modifiez le projet en version x64. Ensuite, vous devez rediriger le projet: clic droit sur le projet-> rediriger le projet
S'il s'agit de VS2017, vous devez modifier le jeu d'outils (voir 1.1 pour télécharger le processus du jeu d'outils), modifiez comme suit: cliquez avec le bouton droit sur le projet-> propriétés
Si vous n'avez pas choisi cet outil lors de l'installation de vs2017, peu importe, quittez VS2017. Ouvrez Visual Studio Installer dans le menu .
3. Configurer opencv dans la feuille de propriétés
4. Copiez CUDA 8.0.props et d'autres fichiers
CUDA 8.0.props et d'autres fichiers se trouvent dans le répertoire d'installation de cuda. Le chemin par défaut de cuda est: C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v8.0 \ extras \ visual_studio_integration \ MSBuildExtensions,
Copiez ces quatre fichiers dans C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ v140 \ BuildCustomizations, il s'agit du chemin après l'installation de vs2017, sinon l'erreur suivante peut être signalée:
5. Ouvrez le fichier d'en-tête darknet.h pour voir s'il contient une ligne ondulée rouge. Sinon, vous n'avez pas besoin de faire cette étape
1. Mon erreur include <pthread.h>, ne peut pas trouver le fichier d'en-tête, solution: cliquez avec le bouton droit sur le projet - "Gérer le package NuGet, recherchez pthread, puis installez
2. Mon include <cudnn.h> est également faux, la solution est (à condition que cudnn soit installé correctement):
Inclure un répertoire et un répertoire de bibliothèque dans la propriété, le chemin est à l'intérieur du répertoire d'installation de cuda
Ensuite, l'entrée connecteur- ", ajoutez cudnn.lib dans des dépendances supplémentaires
6. Générez le projet. Une fois la génération terminée, il y a plus de darknet.exe et d'autres fichiers dans le répertoire du projet × 64.
Ensuite, placez le fichier de poids yolo_v3 précédemment téléchargé dans le même dossier que darknet.exe
Ensuite, trouvez le chemin de darknet-master \ build \ darknet \ x64 \ darknet.exe sur cmd D: \> cd D: \ darknet \ build \ darknet \ x64 le mien est le suivant. Entrez ensuite les données de test du détecteur darknet.exe / coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 dog.jpg
Remarque: L'erreur suivante peut se produire lors de la compilation de darknet
错误 MSB3721 La commande "" C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v8.0 \ bin \ nvcc.exe "-gencode = arch = compute_30, code = \" sm_30, compute_30 \ "-gencode = arch = compute_75, code = \ "sm_75, compute_75 \" --use-local-env -ccbin "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin \ x86_amd64" -x cu -I \ include -IC : \ opencv_3.0 \ opencv \ build \ include -I .. \ .. \ include -I .. \ .. \ 3rdparty \ stb \ include -I .. \ .. \ 3rdparty \ pthreads \ include -I "C : \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v8.0 \ include "-I" C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v8.0 \ include "-I \ include -I \ include -I "C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v8.0 \ include"-kep-dir x64 \ Release -maxrregcount = 0 --machine 64 --compile -cudart static -DOPENCV -DCUDNN_HALF -DCUDNN -D_TIMESPEC_DEFINED -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNS-D-D-D "/ EHsc / W3 / nologo / O2 /Fdx64\Release\vc140.pdb / FS / Zi / MD" -o x64 \ Release \ activation_kernels.cu.obj "G: \ daek \ darknet-master \ src \ activation_kernels.cu "" est sorti avec le code 1. darknet C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \ BuildCustomizations \ CUDA 8.0.targets 712\ daek \ darknet-master \ src \ activation_kernels.cu "" est sorti avec le code 1. darknet C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \ BuildCustomizations \ CUDA 8.0.targets 712\ daek \ darknet-master \ src \ activation_kernels.cu "" est sorti avec le code 1. darknet C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \ BuildCustomizations \ CUDA 8.0.targets 712
Ce problème peut être résolu en supprimant les deux éléments illustrés dans la figure ci-dessous.