这篇文章是本人折腾了两天之后将步骤捋顺然后记录一下。如果你的电脑刚刚装好系统,想要安装显卡驱动、编译安装ffmpeg、编译安装cuda与cudnn、编译安装opencv再或者想要使用darknet-yolov4都可以参考。废话不多说,马上开始。
终端运行以下语句安装好依赖项
sudo apt install ffmpeg unzip axel g++ build-essential make cmake pkg-config libgtk2.0-dev libjpeg-dev libtiff5-dev libavresample-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libdc1394-22-dev libv4l-dev
sudo apt install lightdm
在弹出界面选择lightdm安装即可。
英伟达显卡驱动下载链接: 英伟达显卡驱动官网下载
我笔记本是RTX2060。
图文下载步骤如下:
下载到本地的文件名是"NVIDIA-Linux-x86_64-515.76.run"。
你需要针对你自己的显卡类型和型号进行选择下载。
注:显卡驱动一定要在主目录建一个英文文件夹然后把文件放里!!!后续在纯黑终端执行命令,中文路径就找不到了。
cuda下载链接: cuda官网下载
在网站右上角搜索框搜索"cuda 11.5",在搜索结果界面选择要下载的版本,我选择的是“CUDA Toolkit 11.5 Update 2 Downloads | NVIDIA Developer”,也就是11.5.2。
注:我是安装完显卡驱动通过“nvidia-smi”查看支持cuda版本为11.7,版本太高了所以我选择使用11.5。
图文下载步骤:
官网给出下载命令:
wget https://developer.download.nvidia.com/compute/cuda/11.5.2/local_installers/cuda_11.5.2_495.29.05_linux.run
官网给出安装命令:
sudo sh cuda_11.5.2_495.29.05_linux.run
下载到本地的文件名是"cuda_11.5.2_495.29.05_linux.run"。
你需要针对你自己的显卡类型和型号进行选择下载。
cudnn下载链接: cudnn官网下载
cudnn下载的时候需要有nvidia账号,可能需要登陆,没有就注册一个。
版本选择一定要注意别选错了,我选择的“Download cuDNN v8.3.3 (March 18th, 2022), for CUDA 11.5”,点击之后选择“Local Installer for Linux x86_64 (Tar)”,可能需要登陆一下。
下载到本地的文件名是“cudnn-linux-x86_64-8.3.3.40_cuda11.5-archive.tar.xz”。
你需要针对你自己的显卡类型和型号进行选择下载。
opencv下载链接: opencv官网下载
点击"Code"后选择"Download ZIP"进行下载。
下载到本地的文件名是"opencv-4.5.5.zip"。
opencv_contrib下载链接: opencv_contrib官网下载
点击"Code"后选择"Download ZIP"进行下载。
下载到本地的文件名是"opencv_contrib-4.5.5.zip"。
darknet-master下载链接: darknet-master官网下载
点击"Code"后选择"Download ZIP"进行下载。
下载到本地的文件名是"darknet-master.zip"。
yolov4.weights下载链接: yolov4.weights官网下载
向下找到"How to evaluate FPS of YOLOv4 on GPU"后点击"yolov4.weights"进行下载。
下载到本地的文件名是"yolov4.weights"。
sudo apt remove --purge nvidia*
sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.backup
sudo gedit /etc/modprobe.d/blacklist.conf
在文件末尾添加如下内容
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
sudo update-initramfs -u
reboot
执行以下内容,没有任何输出内容则为成功禁用
lsmod | grep nouveau
sudo service lightdm stop
sudo chmod a+x NVIDIA-Linux-x86_64-515.76.run
sudo ./NVIDIA-Linux-x86_64-515.76.run -no-x-check -no-nouveau-check -no-opengl-files
安装过程中一些选项选择:
The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。
Nvidia’s 32-bit compatibility libraries? 选择 No 继续。
Any pre-existing x confile will be backed up. 选择 Yes 继续
注:重启进入bios设置:1.设置独显直连 2.关闭安全启动
sudo service lightdm start & reboot
终端输入以下内容查看
nvidia-smi
sudo chmod a+x cuda_11.5.2_495.29.05_linux.run
sudo sh cuda_11.5.2_495.29.05_linux.run
cat /usr/local/cuda/version.json
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
sudo gedit /etc/profile
在文件最后添加如下内容,保存后退出
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
source /etc/profile
nvcc -V
进入cudnn压缩包所在目录,解压文件
tar -xvf cudnn-linux-x86_64-8.3.3.40_cuda11.5-archive.tar.xz
解压后得到文件夹"cudnn-linux-x86_64-8.3.3.40_cuda11.5-archive"
将文件夹内文件拷贝到指定文件夹
进入解压后的文件夹
cd cudnn-linux-x86_64-8.3.3.40_cuda11.5-archive
sudo cp include/cudnn*.h /usr/local/cuda/include
sudo cp -P lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
cat /usr/local/cuda/include/cudnn_version.h
将压缩包解压并将opencv_contrib文件夹剪切进opencv文件夹
unzip opencv-4.5.5.zip
opencv_contrib-4.5.5.zip
将opencv_contrib-4.5.5文件夹放入opencv-4.5.5文件夹
mv opencv_contrib-4.5.5 opencv-4.5.5
cd opencv-4.5.5
mkdir build
cd build
1.CUDA_ARCH_BIN=7.5此项需要根据你自己的显卡进行修改,我的是笔记本GeForce RTX2060所以是7.5。
查询网址
2.CUDNN_VERSION=11.5此项需要根据你自己的cuda版本填写,可以看一下"/usr/local"下的cuda文件夹。
3.OPENCV_EXTRA_MODULES_PATH=/home/heqingchun/soft/opencv-4.5.5/opencv_contrib-4.5.5/modules/ …此项需要换成自己的opencv-4.5.5路径,最后的两个点不能省略。
cmake -D WITH_CUDA=ON -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D WITH_LIBV4L=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D CUDA_ARCH_BIN=7.5 -D WITH_CUBLAS=1 -D CUDNN_VERSION=11.5 -D CUDNN_INCLUDE_DIR=/usr/local/cuda/include -D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so -D WITH_FFMPEG=ON -D BUILD_opencv_world=ON -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=YES -D OPENCV_EXTRA_MODULES_PATH=/home/heqingchun/soft/opencv-4.5.5/opencv_contrib-4.5.5/modules/ ..
如果电脑配置低j后面的数字可以小一点防止电脑崩溃
sudo make -j16
sudo make install
echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf
sudo ldconfig
echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" >> /etc/profile
echo "export PKG_CONFIG_PATH" >> /etc/profile
source /etc/profile
echo "/usr/local/lib" >> /etc/ld.so.conf
sudo ldconfig
pkg-config --modversion opencv4
unzip darknet-master.zip
gedit Makefile
修改以下内容:
make -j8
将之前下载的yolov4.weight文件放到darknet-master文件夹
./darknet detect build/darknet/x64/cfg/yolov4.cfg yolov4.weights build/darknet/x64/dog.jpg
到这里darknet编译安装完毕,在文件夹中有"libdarknet.so"文件可以在项目中使用