新手安装darknet,分别在Windows和Centos7安装了darknet,中间踩了很多坑,也耽误了很久,笔记难免有遗漏或偏差,不喜勿喷,欢迎指正。
darkent源码从gitee下载,分为cpu版本和gpu版本
windows安装darknet
+++++++++++++++++++++++++++++++++++++++++++++++++ Windows 安装CPU版darknet ++++++++++++++++++++++++++++++++++++++++++++++++++
CPU版:https://github.com/pjreddie/darknet
参考博客:https://www.cnblogs.com/jackkwok/p/9045890.html
1.安装cygwin
1.配置数据源
cygwin官方源:http://www.cygwin.cn
阿里源http://mirrors.aliyun.com/cygwin/
经测试阿里源可用
2.选择组件包,在Devel分支下,有很多组件,需要选择
binutils
gcc
gcc-mingw
gdb
make # 这个组件在执行make的时候有用到
3.验证
打开cygwin命令行,
cygcheck -c cygwin检查版本和状态,status显示ok为正常
检查组件信息,如果输出版本信息安装正常
gcc –version
g++ --version
make –version
gdb –version
2.进入cygwin命令行,找到项目所在目录,这是Windows在linux下的环境,盘符全部挂载在/cygdrive下
进入项目所在目录
make
结束后,会产生darknet.exe、libdarknet.a、libdarknet.so文件。
3.回到windows中,使用darknet
具体方法参考darknet官方文档
+++++++++++++++++++++++++++++++++++++++++++++++++ Windows 安装GPU版darknet ++++++++++++++++++++++++++++++++++++++++++++++++++
GPU版:https://github.com/AlexeyAB/darknet
所有安装url在github项目上均有提供,参考readme
注:
有NVIDIA显卡且显卡算力要求高于3.0,否则CPU吧
参考文档:
哔哩哔哩:https://www.bilibili.com/video/BV1HZ4y1s7YF(半小时视频,讲解+实操非常详细,鸣谢)
知乎:https://zhuanlan.zhihu.com/p/45845454(有一些错误或者模糊的地方)
1.CMake >= 3.18
地址:https://cmake.org/download/
2.Powershell (already installed on windows)
windows已经安装了,直接跳过
3.OpenCV >= 2.4,主要是个解压缩的过程,选个风水宝地,记住就行了
地址:https://opencv.org/releases.html
设置PATH
OpenCV_DIR = C:\opencv\build # 这个地址需要写你的风水宝地,别胡乱复制粘贴
4.安装CUDA >= 10.2
看显卡支持的最大版本,CUDA版本对英伟达显卡是向下兼容的。
如果先安装CUDA在执行CMake的时候会找不到CUDA,有说法是用enable CUDA一下就行,没找到,如果找不到就再覆盖安装一下,简单粗暴管用
5.cuDNN >= 8.0.2
cuDNN需要参考CUDA的版本,安装就是把bin、lib、include下的文件分别复制到CUDA对应的目录下,直接把三个文件夹拖过去就行,半路出家的涨知识了
7.安装Visual Studio,有说法是安装VS2015,别的版本会报错,实践证明扯淡。
官网:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community
下载下来的是一个很小的工具,实际动态安装
安装时选择使用C++桌面开发就够了
安装完了,开始编译
8.打开CMake
1.选择源码地址和构建二进制文件地址,源码就是darknet加压缩的地址,二进制文件地址我就选择了当前地址
2.选择下边的Configure,
1.选择你的Visual Studio版本,装的那个就选那个
2.选择生成器平台,选择x64
3.finish完成
看看有没有完成配置
3.Generate生成
看看有没有完成生成
4.Open Project打开你的项目
如果提示没有Visual Studio说明你在Configure的时候选择了错的VS版本,在上边的File->Delete Cache删掉缓存重来
打开Visual Studio之后
1.选择生成->配置管理器
选择Release
选择x64
2.生成->生成解决方案
看看有没有生成darknet.exe
生成了就完成了编译,巴适
9.把darkent.exe复制到darknet-master\build\darknet\x64下,再放入weights权重文件,好了,人工智障,可以干活了
+++++++++++++++++++++++++++++++++++++++++++++++++ Linux安装CPU版darknet ++++++++++++++++++++++++++++++++++++++++++++++++++
linux安装darknet
cpu版本
1.上传代码
2.进入系统,make初始化
生成darknet.exe、libdarknet.a、libdarknet.so三个文件
因为不需要opencv和cuda,这个非常简单
+++++++++++++++++++++++++++++++++++++++++++++++++ Linux安装GPU版darknet ++++++++++++++++++++++++++++++++++++++++++++++++++
gpu版本
因为需要opencv和GPU,这个比较麻烦,网上的教程都是基于ubunto系统的,用到了apt-get,我用的centos7,yum还搜索不到相关的依赖包
编译darknet需要gcc gcc-c++版本
安装方式有三种CMake,PowerShell,make
1.需求:
1.CMake>=3.18
# 这里和windows有很大的不同,windows的cmake需要安装,linux直接解压缩,bin下的cmake和ccmake可直接使用,我下载了最新的3.21,然后在/usr/bin创建软连接
2.Powershell这个在windows有预装,linux如果使用powershell就需要安装,否则可以不装
3.CUDA>=10.2,需要先安装显卡驱动
4.OpenCV>=2.4 # 参考了一下https://www.linuxprobe.com/linux-install-opencv.html https://blog.csdn.net/u012072066/article/details/52765788
5.cuDNN>=8.0.2
6.GPU算力大于3.0
1.安装gcc7.5
2.安装CMake,地址:https://cmake.org/download/
选择linux版本的包,有.sh和.tar.gz两种类型的,sh类型的就用sh运行,tar.gz类型的就解压缩
获得cmake-3.21.3-linux-x86_64文件夹,下边有bin、doc、man、share四个文件夹,把bin下的cmake创建软连接到/usr/bin,这样cmake就安装好了
3.Powershell,如果使用powershell安装需要安装powershell,如果用CMake或make就不用了
安装也很简单,参考官网:https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.1
有不懂的留言,看到回复
4.安装CUDA
如果已经安装了显卡驱动,直接看显卡驱动版本就行,如果没有安装需要先确定显卡型号
1.lspci | grep -i nvidia # 查看显卡信息
3b:00.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1)
2.nvidia-smi # 查看显卡驱动版本
NVRM version: NVIDIA UNIX x86_64 Kernel Module 460.73.01 Thu Apr 1 21:40:36 UTC 2021
GCC version: gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
3.如果没有安装驱动也可以直接安装CUDA,安装过程中选择安装驱动,如果已经安装了驱动就可以忽略驱动那一项
显卡驱动地址:https://www.nvidia.cn/Download/index.aspx?lang=cn
插一个显卡驱动安装方法吧:
1.下载驱动
2.删除nvidia旧的驱动
yum remove nvidia*
3.禁用自带的 nouveau nvidia驱动
创建一个文件
vim /etc/modprobe.d/blacklist-nouveau.conf
并添加如下内容:
blacklist nouveau
options nouveau modeset=0
检查是否禁用成功
lsmod | grep nouveau # 如果输出为空就成功了
4.把系统启动至文本模式
init 3
5.安装gcc编译环境以及内核相关的包
yum install kernel-devel kernel-doc kernel-headers gcc\* glibc\* glibc-\*
6.安装驱动
./NVIDIA-Linux-x86_64-460.91.03.run # 这是我的驱动,按自己的来,不要随便复制
如果报错找不到kernel source tree,不要慌,也不用更新kernel版本或者kernel-devel和kernel-headers版本,看提示,加一个--kernel-source-path接上kernel路径就行,kernel在/usr/src/kernel/...下
这样就可以安装成功了,回到第二步,查看驱动版本,如果出现版本信息就安装好了。
4.安装CUDA
CUDA下载地址:https://developer.nvidia.com/cuda-toolkit-archive
选择对应版本,根据给出的命令行安装好就行
5,设置环境变量
export PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
6.重新加载一下环境
source .bashrc
5.安装cuDNN
下载地址:https://developer.nvidia.com/rdp/cudnn-archive,下载cuDNN需要先注册登录,cuDNN和CUDA需要保持版本一致
解压缩,把include和lib64下的文件全部复制到/usr/local/cuda下的一个的目录
6.安装OpenCV
网上各种论坛的帖子,各种说法五花八门,大部分的也是基于ubuntu的,我用的centos7,居然一个帖子都没有,自己动手丰衣足食。
官网:https://opencv.org/releases/
直接选的4.5.3,也可以选低版本的
选择Docs --> OpenCV-Python Trtorials --> Introduction to OpenCV,三个安装文档,分别是Windows,Fedora,Ubuntu,如果你是Ubuntu就去Ubuntu,里边好多内容再国内好多帖子上都能看到,我用的Centos7,选择Fedora,里面的所有命令和包在centos上可用。
这里以Fedora为例,地址:https://docs.opencv.org/4.5.3/dd/dd5/tutorial_py_setup_in_fedora.html
安装opencv有两种方法,yum安装和源码安装。我们选择源码安装。
1.安装CMake来配置安装,gcc来编译,Python-devel和Numpy创建python扩展。
这里有两点需要注意:
1.yum安装cmake默认版本是2.8.5,而darknet要求cmake版本不低于3.18,所以我们从源码安装一下cmake,我安装的cmake3.21。
2.darknet运行的时候用到了GLIBCXX_3.4.20,我一开始安装的gcc6.1,里边只到GLIBCXX_3.4.19,选择gcc7.5,最高到GLIBCXX_3.4.24,够用了。
CMake官网:https://cmake.org/,选择右上角Download,当前最新版3.21.3,选择linux平台的cmake-3.21.3.tar.gz,解压缩,把里边的bin/cmake在/usr/bin创建软连接。
cmake --version输出版本号说明安装成功。
gcc安装参考了https://www.cnblogs.com/music-liang/p/12900457.html。感谢大佬分享。过程不写了,东西太多。
2.接下来就是一马平川了,各种安装包,安安安,之前看到的都是ubuntu的教程,好多包yum里并不能直接拿来安装,现在舒服了。贴出来吧
yum install python-devel numpy
安装GKT为GUI的功能提供支持,摄像头 (libdc1394, v4l), 多媒体 (ffmpeg, gstreamer) etc.
yum install gtk2-devel
yum install libdc1394-devel
yum install ffmpeg-devel
yum install gstreamer-plugins-base-devel
安装一些对多媒体格式的支持,好像安装了ffmpeg就不用安了,没试,翻译也没详细看,有兴趣的小伙伴可以试试。
yum install libpng-devel
yum install libjpeg-turbo-devel
yum install jasper-devel
yum install openexr-devel
yum install libtiff-devel
yum install libwebp-devel
以下几个没有研究,一股脑装了,应该是不装也没事,反正我也没有启用,尝试翻译以下,自行尝试吧。
1.TBB,几个和Intel线程构建模块并行的方法,如果要启用它,需要先安装TBB,同时在使用CMake安装Opencv的时候加上-D WITH_TBB=ON这个参数
yum install tbb-devel
2.OpenCV的另一个用来优化计算的特征库,如果系统有安装Eigin,可以使用这个,同时在CMake安装的时候加上-D WITH_EIGEN=ON参数
yum install eigen3-devel
3.本地构建OpenCV官方文档,需要安装Doxygen,这样就可以在本地访问官方文档了
yum install doxygen
3.下载源码
回到下载页面https://opencv.org/releases/,这里找到要安装的包,下载,解压缩
下载扩展包https://github.com/opencv/opencv_contrib/archive/master.zip,解压缩
创建build目录
mkdir build && cd build
配置
cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-master/modules ..
make -j8
make install
安装成功了就行
7.编译darknet,如果前边的安装好了,后边就舒服了
选择
1.使用cmake方法,我用的这种方法。make没有试。
cd darknet
mkdir build_release
cd build_release
cmake ..
cmake --build . --target install --parallel 8
生成了darknet,libdarknet.so文件,可以了。
2.使用make方法
cd darknet
编辑Makefile文件,修改以下内容
GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
AVX=0
OPENMP=1
LIBSO=1
ZED_CAMERA=0
ZED_CAMERA_v2_8=0
执行make,坐等
如果生成了darknet,libdarknet.so,uselib三个文件,那你离成功只有一步之遥了,下载权重文件,运行darknet,测试一下吧。