Darknet环境搭建与简单测试

最近在研究视频分析相关技术,朋友推荐了darknet开源库,其中主要使用yolo算法,想了解yolo的朋友请自行百度,下面直接说正题。

一、运行环境

  OS:Windows 10

  显卡:GTX 1070 Ti

  编译器/IDE:CMake-3.15.0-rc4-win64x64, Visual Studio 2017,C++编译工具集:V141,Python2.7

二、依赖库

  Darknet-master(从github下载,默认使用yolov3)

  OpenCV:4.1.1(从github下载)

  CUDA: 10.1

  CUDNN:10.1(使用这玩意儿做分析时占用GPU资源占用很低)

三、OpenCV编译

  OpenCV主要使用CMake生成vcxproj项目工程文件,然后使用vs2017进行编译。

  操作步骤:

  1. 使用CMake-gui.exe工具(需要下载一些东西,而且比较慢,脱机环境下要提前把依赖文件下载好)。

   Darknet环境搭建与简单测试

 

   注意:上图中BULID_opencv_world选项选中和不选中差异巨大,编译Darknet-CUDNN版本所需要OpenCV依赖库必须选中该选项才能编译出来;普通版本采用默认配置就行(不选中)。笔者是在两个目录下分别编译了两个不同的版本,免得混淆。

 

  2. 打开vs工程文件,编译版本。编译很慢,耐心等待。笔者直接使用Release x64。

   Darknet环境搭建与简单测试

 

 

  3. 配置环境变量。本人对CMAKE语法不熟悉,折腾了很久,还是配环境变量来得快。这个步骤主要是为编译Darknet,熟悉CMAKE语法的同学可以修改CMakeList.txt文件或cmake命令加参数应该也可以搞定。

   Darknet环境搭建与简单测试

 

  4. 使用CMake-gui.exe生成Darknet在windows平台工程文件,同上面操作。(如果提示OpenCV_DIR、OpenCVConfig类似的错误,就是没找到opencv目录,上面配好了应该不会有问题。)

    Darknet环境搭建与简单测试

 

     图上有CUDNN相关警告,我没有管它,后面直接改的vcxproj工程配置。

 

  5. 配置工程。注意,有两个目录下有darknet.vcxproj文件。

   Darknet环境搭建与简单测试

    这个是没有CUDNN版本的

    Darknet环境搭建与简单测试

 

     这个是带CUDNN版本的

    编译时如果通不过,多半是由于包含目录、库目录配置不对导致的,改掉就行。

 

四、测试

  1. 测试前还需要下载神经网络权重文件,笔者测试只用了yolov3.weights、yolov3-tiny.weights两个文件。

  2. 准备测试图片或视频文件,下面只帖视频文件测试命令和测试结果。

    视频文件信息:1080p h264 2Mbps 25fps

    权重文件:yolov3.weights

    Darknet环境搭建与简单测试

 

   只列出重要的,使用yolov3-tiny.weights,FPS要高得多,但准确率有所下降。

   结论:

      1. 显存基本等于单进程占用 * 进程数,max process = 3主要是因为打开4路进程显存不够用。

      2. 总的fps比较固定,开启多个进程意义不大。(使用yolov3-tiny.weights时多进程fps总和明显大于单进程fps,可能跟解码、IO速度有关,也就是说,算法复杂度低可考虑使用多进程,复杂度较高就没必要了)

      3. 内存占用、CPU虽然有消耗,但与GPU相比,瓶颈主要还是在GPU上。

      4. cudnn优势非常明显,强烈建议使用(NVIDIA自己的东西还是好用)。

 

今天先写到这里,下一步研究一下API使用和模型训练。

上一篇:window下 人工智能 Keras、TensorFlow、PyTorch、CUDA、cuDNN 的环境安装 总文章


下一篇:Win10安装Anconda 、Tensorflow、Cuda、cudnn