今天的任务案安装 AlexeyAB/darknet 版本的 YOLO,这是 YOLOV4 的主要作者,而这个版本的可以产生更多的衡量指标,当然,也可以使用 YOLOV4 来进行影像辨识,只是安装难度比较高。
以下的安装设定需使用下列的 AWS EC2:
- EC2 Instance type: g4dn.2xlarge
- AMI ID: ami-0cccf4ac9f2e9bd92
- AMI 名称: Deep Learning AMI (Amazon Linux 2) Version 49.0
图 1、EC2 组态资讯
启动 EC2 后,透过 ssh 协定登录到 EC2 的主机上,首先更新所有套件。
sudo yum update -y
根据 AlexeyAB/darknet github 官网上的说明,需要先安装下列元件:
- CMake >= 3.18。
- Powershell:与 Windows 环境相关,不需安装。
- CUDA >= 10.2。
- OpenCV >= 2.4。
- cuDNN >= 8.0.2。
- GPU with Compute Capability (CC) >= 3.0:
检查 cmake 版本 >= 3.18
检查版本是否符合系统需求,检查 cmake,版本为 3.20.4,符合大于 3.18 的需求,使用 rpm 指令检查的结果为自行安装,非用 yum 安装的。
cmake --version which cmake rpm -qf /usr/local/bin/cmake
图 2、检查 cmake 版本
以下为将原先的 cmake 更新到 3.21 版,到 cmake 官方网站下载原始档,并安装需要的开发套件,重新编译、安装。原则上我们的安装都是在使用者目录下,所以下载前都会先到使用者目录。
sudo yum remove cmake cmake3 sudo yum install mesa-libGL mesa-libGL-devel -y cd ~ mkdir cmake && cd cmake wget https://github.com/Kitware/CMake/releases/download/v3.21.0/cmake-3.21.0.tar.gz tar zxfv cmake-3.21.0.tar.gz cd cmake-3.21.0/ ./bootstrap # 找寻目前系统所拥有的组态,大约要 20 分钟左右,产生 Makefile make # 需要 20 分钟左右编译 sudo make install # 安装需要有管理者权限,因为会安装到 /usr/local/bin 目录 cd ~
检查 CUDA 版本 >= 10.2
检查 CUDA 的版本,发现在这个 AMI 中安装了多个版本的 CUDA 版本,使用 nvidia-smi 观看 GPU 的运行,发现 GPU 使用的是 11.0 ,但是目前可用的版本却是 10.0 ,整个系统安装了 10.0, 10.1, 10.2, 11.1. 11.1 等 5 个版本。
nvidia-smi nvcc --version ls -ld /usr/local/cuda*
图 3、检查 CUDA 版本
删掉原来的链结,并重新指定,这样就可以对应到 CUDA 11.0 版。
sudo rm /usr/local/cuda sudo ln -s /usr/local/cuda-11.0 /usr/local/cuda export CUDA_BIN_PATH="/usr/local/cuda-11.0/bin" export CUDA_HOME="/usr/local/cuda-11.0/" export CUDA_PATH="/usr/local/cuda-11.0/"
图 4、设定 CUDA 版本为 11.0
检查 cuDNN 版本 >= 8.0.2
cuDNN 的版本检查为下列指令,会显示出 cuDNN 的版本号,这个 AMI 中安装的版本是比 8.0.2 还少,可以参考 Installing cuDNN On Linux 这个来安装,因为还要去 nVidia 注册,才能下载,所以就不去管它了。 (很任性的作者,讨厌一直注册新帐号)
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
检查 OpenCV 版本>= 2.4
使用以下三种方法来找:
- 透过套件管理程式: rpm
- linux内的套件组态:pkg-config
- 整个磁盘的文件:locate / find
前两种都没有找到,第三种有找到,但是不完整,所以只好自行安装。
rpm -qa | grep opencv pkg-config --cflags --libs opencv4 sudo updatdb locate opencv4
安装 opencv 4.2 的指令如下,安装的内容包含了 opencv 与他的延伸模组 contrib :
sudo yum install git cmake gcc-c++ mkdir opencv && cd opencv # 下载原始档 wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip unzip opencv.zip unzip opencv_contrib.zip mv opencv-4.2.0/ opencv mv opencv_contrib-4.2.0/ opencv_contrib mkdir -p build && cd build # ../opencv_contrib/modules/ 是额外模组, -DOPENCV_GENERATE_PKGConFIG=ON 是建立套件的安装组态档,../opencv 是 opencv 原始档所在目录, cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DOPENCV_GENERATE_PKGConFIG=ON ../opencv make # 大约需要一个小时编译 sudo make install # 安装OpenCV,这个很快 # 确认 opencv 的分享库 (share library) 可以让其他程式存取 more /etc/ld.so.conf.d/opencv.conf sudo ldconfig -v
图 5、启用 OpenCV 的分享库
设定 OpenCV 的安装环境,在使用者目录下的 .bashrc 中加上这两行,如下图所示。
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib64/pkgconfig/ export PKG_CONFIG_PATH
图 6、设定使用者启动档
最后再来检查 opencv 安装情形,结果如下图。
pkg-config --cflags --libs opencv4
图 7、设定使用者启动档
检查 GPU with Compute Capability (CC)>= 3.0
直接连上 GPU with Compute Capability (CC) 网站,直接找 Tesla T4 的 GPU 型号,就可以看到,如下图,版本号是 7.5。
图 8、GPU 计算架构型号
安装 AlexeyAB/darknet
检查完相关软体后,开始安装 AlexeyAB/darknet,输入以下指令分别为设定好目录,下载原始档,建立编译环境,编译安装。接着就是下载训练好的 yolov4 的权重档,然后进行辨识,执行画面如下图,可以发现跟 yolov3 比起来,多辨识出了一个盆栽植物 (potted plant)。
cd mkdir AlexeyAB && cd AlexeyAB git clone https://github.com/AlexeyAB/darknet . mkdir build_release&& cd build_release cmake .. cmake --build . --target install --parallel 8 cd .. wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights ./darknet detector test ./cfg/coco.data ./cfg/yolov4.cfg ./yolov4.weights data/dog.jpg
图 9、执行 yolov4 进行辨识
图 10、 yolov4 辨识结果
- Install Cmake 3 on AWS Linux, https://www.matbra.com/2017/12/07/install-cmake-on-aws-linux.html
- Yolo v4, v3 and v2 for Windows and Linux, https://github.com/AlexeyAB/darknet
- How to install OpenCV on Amazon Linux?, https://stackoverflow.com/questions/34244606/how-to-install-opencv-on-amazon-linux/34245634
- Installation in Linux, https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
- Package opencv was not found in the pkg-config search path, https://stackoverflow.com/questions/15320267/package-opencv-was-not-found-in-the-pkg-config-search-path
- cmake-3.18.1, https://cmake.org/files/v3.18/cmake-3.18.1.tar.gz
- Installing cuDNN On Linux, https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#installlinux-tar
- Library for Windows and Linux, Ubuntu(x86_64, armsbsa, PPC architecture), https://developer.nvidia.com/rdp/cudnn-archive
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)