Déploiement YOLOv5 en C++ pour Windows (à l'aide de LibTorch)

avant-propos

En raison des besoins du projet, nous souhaitons déployer des programmes YOLOv5 vers C++ sous Windows. Cet article utilise LibTorch pour déployer YOLOv5 vers Visual Studios 2019.

contenu de la préparation

Tout d'abord, nous téléchargeons et préparons le contenu requis :

Environnement de configuration

Configurez l'environnement OpenCV et LibTorch, le contenu de configuration des deux est à peu près le même (l'adresse de chemin suivante est ajustée en fonction du chemin d'installation personnel).

  1. Configurez les variables d'environnement système :
    Ajoutez les chemins d'OpenCV et LibTorch respectivement dans les variables d'environnement système
    Opencv :
    D:\opencv\build\x64\vc15\bin
    Libtorch :
    D:\libtorch\lib

  2. VS2019 crée un nouveau projet vide C++ ;

  3. Propriétés du projet -> Répertoires VC++ -> Répertoires d'inclusion :
    Opencv :
    D:\opencv\build\include
    D:\opencv\build\include\opencv2
    Libtorch :
    D:\libtorch\include
    D:\libtorch\include\torch\csrc\ api\inclure

  4. Propriétés du projet -> Répertoires VC++ -> Répertoires de bibliothèque :
    Opencv :
    D:\opencv\build\x64\vc15\lib
    Libtorch :
    D:\libtorch\lib

  5. Propriétés du projet -> Linker -> Input -> Dépendances supplémentaires :
    Opencv : placez le fichier .lib
    dans le fichier D:\opencv\build\x64\vc15\lib dans les dépendances supplémentaires, deux versions et votre version de projet cohérente : opencv_world452d. lib( Debug ) opencv_world452.lib( Release ) Libtorch : placez tous les fichiers .lib dans D:\libtorch\lib dans les dépendances supplémentaires.



  6. Propriétés du projet -> C/C++ -> Répertoires d'inclusion supplémentaires :
    D:\opencv\build\include
    D:\libtorch\include
    D:\libtorch\include\torch\csrc\api\include

  7. Propriétés du projet -> C/C++ -> Vérification SDL générale sur Non

  8. Propriétés du projet -> C/C++ -> Langage -> Conforme au mode Conforme au mode Passez à Non

  9. Propriétés du projet -> Débogage -> Environnement :
    Opencv :
    D:\opencv\build\x64\vc15\lib ;
    Libtorch :
    D:\libtorch\lib ;

  10. Testez OpenCV :
    exécutez le code suivant pour vérifier si OpenCV est correctement configuré :

    #include <opencv2/opencv.hpp>
    int main() {
          
          
    	cv::Mat img = cv::imread("图片路径");
    	cv::imshow("", img);
    	cv::waitKey(0);
    	return 0;
    }
    
  11. Testez LibTorch :
    exécutez le code suivant pour vérifier que LibTorch est correctement configuré :

    #include <torch/torch.h>
    #include <iostream>
    int main() {
          
          
    	std::cout << "cuda::is_available():" << torch::cuda::is_available() << std::endl;
    	torch::Tensor tensor = torch::rand({
          
           3, 4 });
    	std::cout << tensor << std::endl;
    }
    

compiler

  1. Ouvrez CMakeLists.txt dans Libtorch-Yolov5, donnez le chemin d'OpenCV et LibTorch dans les deux lignes suivantes :
    set(OpenCV_DIR D:/opencv/build)
    set(Torch_DIR D:/libtorch/share/cmake/Torch/)
  2. ouvrir cmd
    mkdir build	# 建立build文件夹
    cd build		# 进入build文件夹
    cmake ..		# 编译
    

Détection YOLOv5

  • Remplacez le nom de la catégorie dans coco.names dans D:/libtorch-yolov5/weights par le nom de votre propre catégorie de jeu de données, et le fichier de poids formé peut être placé dans ce dossier (le fichier de poids .pt utilise d'abord export.py de yolov5 dans un .torchscript fichier .pt);
  • Les fichiers dans D:/libtorch-yolov5/src sont la fonction de détection detector.cpp et la fonction principale main.cpp, et le contenu spécifique peut être modifié en fonction des besoins individuels.

problèmes possibles

  • Impossible d'ouvrir le fichier source opencv2/opencv.hpp ou torch/torch.h : l'environnement n'est pas bien configuré.
  • Les fichiers OpenCV ou LibTorch sont introuvables lors de la compilation : vérifiez si l'adresse du chemin dans CMakeLists.txt est correctement renseignée, faites attention au sens de la barre oblique, s'il existe des symboles de commentaire et s'il est ajouté à la variable d'environnement système.
  • CUDA introuvable lors de la compilation : CUDA n'a pas été installé correctement ou n'a pas été ajouté aux variables d'environnement système.
  • Vitesse d'inférence lente ou chargement de modèle lent : vérifiez si la version de pytorch et la version de CUDA sont correctes.

Je suppose que tu aimes

Origine blog.csdn.net/lucifer479/article/details/120743124
conseillé
Classement