yolov3-GPU配置运行

时间:2024-04-08 07:06:20

一.Yolov3配置运行

环境:Ubuntu14.04 +cuda8.0+cudnn5.1

  1. >>Darknet installed

          git clone https://github.com/pjreddie/darknet

         cd darknet

         make

     2.>>download the pre-trained weight file

         wget https://pjreddie.com/media/files/yolov3.weights

     3. >> run the detector

         ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

 

二.实现yolo算法在检测结果中只框选车和人

         在darknet/src/image.c 里的draw_detections函数draw_box_width函数之前

        添加判断语句 :

          if(strcmp(labelstr,"person")!=0&&strcmp(labelstr,"car")!=0&&strcmp(labelstr,"truck")!=0)

            {continue;}

 

 三.yolo 算法 GPU版本配置运行

     (一).修改makefile 文件             

     (二).解决cudnn.h问题,重新下载加入文件夹中并链接                          

     (三).解决找不到lcuda等库问题,查找并连接                        

     (四).解决显卡驱动不匹配问题:卸载,查看合适版本推荐,安装,重启,运行

具体实现过程:

     (一).修改makefile 文件  

            1.打开darknet/MakeFile文件,将GPU=0 --> GPU=1

            2.CUDNN=0 --> CUDNN=1

            3.DEBUG=0 --> DEBUG=1

           4.NVCC=/usr/local/cuda/cuda/bin/nvcc

               -->NVCC=/usr/local/cuda-8.0/bin/nvcc这里nvcc所在位置注意修改成自己的

           5.COMMON+= -DGPU -I/usr/local/cuda/include

              -->COMMON+= -DGPU -I/usr/local/cuda-8.0/include

           6.LDFLAGS+= -L/usr/local/cuda/lib64-lcuda -lcudart -lcublas -lcarand

              --> LDFLAGS+= -L/usr/local/cuda-8.0/lib64-lcuda -lcudart -lcublas -lcarand

      (二). 解决cudnn.h问题,重新下载加入文件夹中并链接

  1.   下载cudnn压缩包

             cuDNN(CUDA Deep Neural Network),

            官网:

            https://developer.nvidia.com/cudnn

           需要注册,以及找到与cuda版本和操作系统版本对应的cudnn版本 

         2. 解压文件后会看到一个cuda文件夹,里面包含了include以及lib64两个子目录。

             将这两个文件夹里的文件复制到cuda对应的安装目录。这里以cuda的安装目录为/usr/local/cuda/为例:

               sudo cp cuDNN/cuda/include/cudnn.h /usr/local/cuda/include

               sudo cp cuDNN/cuda/lib64/* /usr/local/cuda/lib64

             3.链接

            #下面的操作在/usr/local/cuda/lib64/目录下进行

               sudo rm -rf libcudnn.so libcudnn.so.7.0#删除两个符号链接;

               sudo ln -s libcudnn.so.7.0.64 libcudnn.so.7.0

               sudo ln -s libcudnn.so.7.0 libcudnn.so

 

        (三). 解决找不到lcuda等库问题,查找并连接  

               /usr/bin/ld: cannot find -lcarand

               /usr/bin/ld: cannot find -lcuda

               /usr/bin/ld: cannot find -lcudnn

            注:lcuda 意思是libcuda,用如下命令定位libcuda位置  

               》》locate libcuda

                yolov3-GPU配置运行       

 

             解决办法是将一些文件复制到/usr/local/lib文件夹下:

            #注意自己CUDA的版本号!

            sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig

             sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig

             sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

       (四).解决显卡驱动不匹配问题:卸载,查看合适版本推荐,安装,重启,运行

                 问题:CUDA driver version is insufficient for CUDA runtime version

                解决办法 : 先卸载所有驱动,再手动安装驱动

                查看当前所有显卡驱动命令: 
                sudo dpkg –list | grep nvidia-*

                卸载所有显卡驱动的命令: 

                sudo apt-get –purge remove nvidia-*

                重新安装显卡驱动: 
                 sudo add-apt-repository ppa:xorg-edgers/ppa 
                 sudo apt-get update

                 重新安装驱动: 
                 sudo apt-get install nvidia-384(这里要用命令查看适合自己显卡版本的驱动)

                 如何查看适合自己显卡版本的驱动:

         》》 sudo ubuntu-drivers devices

               yolov3-GPU配置运行

              可知,nvidia-384是推荐安装的驱动。输入下面的命令安装这个驱动。

               sudo apt-get install nvidia-352

               安装好驱动后记得重启电脑,使得新的显卡驱动生效。

检测结果:耗时20ms

               yolov3-GPU配置运行

      yolov3-GPU配置运行

yolov3-GPU配置运行

参考:

【YOLO】YOLO: You Only Look Once GPU版本的配置与实现 - CSDN博客

https://blog.csdn.net/jinlong_xu/article/details/75195810

cuDNN - CSD博客

https://blog.cdn.net/guoyunfei20/article/details/78191599

Ubuntu16.04 CDA8.0+caffe+gpu运行环境配置 - CSDN博客

https://blog.csdn.net/jiangyanting2011/article/details/78873113

ubuntu+cuda安装问题总结 - CSDN博客

https://blog.csdn.net/cv_family_z/article/details/52101992

Ubuntu如何正确地切换Intel和Nvidia显卡 - CSDN博客

https://blog.csdn.net/yan_chou/article/details/72847943