识别算法Ubuntu部署手册
这是一个目标检测、人脸识别项目的部署手册,包含了一些开发环境的配置方法,相关包已经上传到了我的资源。
环境需求
- Ubuntu 18.04
- NVIDIA Driver
- CMake 3.17
- CUDA 10.0
- CUDNN 7.6.5
- FFmpeg
- OpenCV 4.2.0
- DarkNet
- SeetaFace6
安装Ubuntu18.04
- 正常安装Ubuntu 18.04
安装NVIDIA显卡驱动
- 驱动下载
- https://www.nvidia.cn/Download/index.aspx?lang=cn#
- 上述地址下载所需显卡驱动
- 环境准备
- 环境依赖
- 更新软件包列表
sudo apt update
- 安装gcc
sudo apt install gcc
- 安装make
sudo apt install make
- 禁用nouveau
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
- 在 blacklist-nouveau.conf 中插入如下两行
blacklist nouveau options nouveau modeset=0
- 使禁用生效并重启
sudo update-initramfs -u
reboot
- 验证是否生效,无输出则生效
lsmod | grep nouveau
- 禁用X-Window服务
sudo service lightdm stop
- 更新软件包列表
- 环境依赖
- 安装
- 运行安装程序
sudo sh NVIDIA-XXXX-XXXX.run
- install nvidia’s 32-bit
- no
- 其他选项
- yes
- 验证安装
nvidia-smi
- 运行安装程序
安装CMake 3.17.5
- 下载
- https://cmake.org/download/
- 上述地址下载 CMake 3.17.5
- 安装
- 解压压缩包
- 配置环境变量
vim ~/.bashrc
- 在bashrc最后添加
export PATH=XXXXXXX/bin:$PATH
- XXXXXXX 为CMake解压后的路径
source .bashrc
- 验证
cmake --version
cmake-gui --version
安装CUDA和CUDNN
- 下载
- https://developer.nvidia.com/cuda-10.0-download-archive
- 上述地址下载cuda10.0及其补丁包
- https://developer.nvidia.com/cudnn
- 上述地址下载对应cudnn
- 安装CUDA
sudo ./cuda_10.0.130_410.48_linux.run
- Do you accept the previously read EULA?
- accept
- Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
- no
- Install the CUDA 10.0 Toolkit?
- yes
- Enter Toolkit Location [ default is /usr/local/cuda-10.0 ]:
- 回车确定选择默认位置
- Do you want to install a symbolic link at /usr/local/cuda?
- yes
- Install the CUDA 10.0 Samples?
- yes
- Enter CUDA Samples Location [ default is /home/yfzx ]:
- 回车确定选择默认位置
- Do you accept the previously read EULA?
sudo ./cuda_10.0.130.1_linux.run
- Do you accept the previously read EULA?
- accept
- Enter CUDA Toolkit installation directory [ default is /usr/local/cuda-10.0 ]:
- 回车确定选择默认位置
- Do you accept the previously read EULA?
- 配置环境变量
vim ~/.bashrc
- 在bashrc后面添加
export PATH=/usr/local/cuda-10.0/bin:$PATH
exportLD_LIBRARY_PATH=/usr/local/cuda10.0/lib64:$LD_LIBRARY_PATH
source .bashrc
- 验证
nvcc -V
- 安装CUDNN
- 解压压缩包
cd cudnn-XXXX/cuda/
sudo cp include/cudnn.h /usr/local/cuda-10.0/include/
sudo cp lib64/libcudnn* /usr/local/cuda-10.0/lib64/
sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.0/lib64/libcudnn*
- 验证
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
- 修改cudnn的软连接
cd /usr/local/cuda-10.0/lib64/
sudo rm libcudnn.so.7
sudo ln -s libcudnn.so.7.6.5 libcudnn.so.7
编译安装OpenCV4.2.0
- 根据OpenCV4.2.0压缩包完成以下操作
- 环境依赖
sudo apt-get update
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install ffmpeg
sudo apt-get install libjsoncpp-dev
- 验证FFmpeg安装成功
ffmpg
- 解压压缩包
cd /opencv4.2.0/opencv4.2.0
mkdir build
cd build
cmake ..
或者cmake-gui ..
CMAKE_INSTALL_PREFIX=/usr/local/opencv4.2
OPENCV_EXTRA_MODULES_PATH=XXXX/opencv_contrib-4.2.0/modules
opencv_contrib-4.2.0文件在opencv4.2压缩包内,填入路径即可OPENCV_GENERATE_PKGCONFIG=YES
WITH_CUDA=ON
OPENCV_DNN_CUDA=ON
OPENCV_ENABLE_NONFREE=ON
- CUDA_ARCH_BIN选项中可能要根据系统提示删除几个低版本的数字
- 确保cmake信息中Video I/O下FFMPEG信息全为YES
make
sudo make install
编译安装DarkNet
- 下载
- https://github.com/AlexeyAB/darknet
- 上述地址下载DarkNet
- 安装
- 解压压缩包
- 修改makefile文件
- GPU=1
- CUDNN=1
- OPENCV=1
- LIBSO=1
- 修改 LDFLAGS中CUDA和CUDNN路径为本机安装路径
- 修改 COMMON中CUDA路径为本机安装路径
cd darknet
mkdir build
cd build
cmake ..
make
make install
- 将动态库和头文件移动到/usr/local/下
cd /usr/local
sudo mkdir darknet
cd darknet
sudo mkdir lib
- 将编译后的darknet文件夹中的libdrak.so移动到/usr/local/darknet/lib/下
- 将编译后的darknet文件夹中的include文件夹移动到/usr/local/darknet/下
安装SeetaFace6
- 下载
- https://github.com/yisampi/SeetaFace6
- 上述地址下载Ubuntu系统的压缩包
- 安装
- 解压压缩包
- 将解压后的文件夹重命名为seetaface6
- 将seetaface6文件夹移动到/usr/local/下
动态库配置
cd /etc/ld.so.conf.d
sudo vim cuda.conf
- 添加
/usr/local/cuda-10.0/lib64
- 添加
sudo vim darknet.conf
- 添加
/usr/local/darknet/lib
- 添加
sudo vim opencv4.conf
- 添加
/usr/local/opencv4.2/lib
- 添加
sudo vim seetaface6.conf
- 添加
/usr/local/seetaface6/lib64
- 添加
sudo ldconfig