日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

yolo v4 python_YOLOv4: Darknet 如何于 Ubuntu 编译,及使用 Python 接口

發布時間:2023/12/2 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yolo v4 python_YOLOv4: Darknet 如何于 Ubuntu 编译,及使用 Python 接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文將介紹 YOLOv4 官方 Darknet 實現,如何于 Ubuntu 18.04 編譯,及使用 Python 接口。

主要內容有:

準備基礎環境: Nvidia Driver, CUDA, cuDNN, CMake, Python

編譯應用環境: OpenCV, Darknet

用預訓練模型進行推斷: darknet 執行,或 python

準備基礎環境

Nvidia Driver

推薦使用 graphics drivers PPA 安裝 Nvidia 驅動:

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

查看推薦的 Nvidia 顯卡驅動:

ubuntu-drivers devices

安裝 Nvidia 驅動:

apt-cache search nvidia | grep ^nvidia-driver

sudo apt install nvidia-driver-450

之后, sudo reboot 重啟。運行 nvidia-smi 查看 Nvidia 驅動信息。

Nvidia CUDA Toolkit

獲取地址:

建議選擇 CUDA 10.2 ,為目前 PyTorch 可支持的最新版本。

下載安裝:

wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run

sudo sh cuda_10.2.89_440.33.01_linux.run

注意:安裝時,請手動取消驅動安裝選項。

安裝輸出:

===========

= Summary =

===========

Driver: Not Selected

Toolkit: Installed in /usr/local/cuda-10.2/

Samples: Installed in /home/john/cuda-10.2/, but missing recommended libraries

Please make sure that

- PATH includes /usr/local/cuda-10.2/bin

- LD_LIBRARY_PATH includes /usr/local/cuda-10.2/lib64, or, add /usr/local/cuda-10.2/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-10.2/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-10.2/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 440.00 is required for CUDA 10.2 functionality to work.

To install the driver using this installer, run the following command, replacing with the name of this run file:

sudo .run --silent --driver

Logfile is /var/log/cuda-installer.log

添加環境變量:

$ vi ~/.bashrc

export CUDA_HOME=/usr/local/cuda

export PATH=$CUDA_HOME/bin:$PATH

export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

重啟終端后,檢查:

$ nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2019 NVIDIA Corporation

Built on Wed_Oct_23_19:24:38_PDT_2019

Cuda compilation tools, release 10.2, V10.2.89

Nvida cuDNN

獲取地址:

需選擇 CUDA 10.2 對應的版本。

安裝 deb 包:

sudo apt install ./libcudnn8_8.0.2.39-1+cuda10.2_amd64.deb

sudo apt install ./libcudnn8-dev_8.0.2.39-1+cuda10.2_amd64.deb

sudo apt install ./libcudnn8-doc_8.0.2.39-1+cuda10.2_amd64.deb

查看 deb 包:

dpkg -c libcudnn8_8.0.2.39-1+cuda10.2_amd64.deb

CMake

下載安裝:

curl -O -L https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2-Linux-x86_64.sh

sh cmake-*.sh --prefix=$HOME/Applications/

添加環境變量:

$ vi ~/.bashrc

export PATH=$HOME/Applications/cmake-3.18.2-Linux-x86_64/bin:$PATH

說明: apt 源的 cmake 太舊, darknet 編譯不過。

Python

獲取地址:

Python 建議用 Anaconda 發行版。

安裝命令:

# bash Anaconda3-2020.07-Linux-x86_64.sh

bash Anaconda3-2019.10-Linux-x86_64.sh

編譯應用環境

OpenCV 4.4.0

安裝依賴:

apt install -y build-essential git libgtk-3-dev

編譯命令:

conda deactivate

# export CONDA_HOME="/home/john/anaconda3/envs/clenv"

export CONDA_HOME=`conda info -s | grep -Po "sys.prefix:\s*\K[/\w]*"`

cd ~/Codes/

git clone -b 4.4.0 --depth 1 https://github.com/opencv/opencv.git

git clone -b 4.4.0 --depth 1 https://github.com/opencv/opencv_contrib.git

cd opencv/

mkdir _build && cd _build/

cmake -DCMAKE_BUILD_TYPE=Release \

-DCMAKE_INSTALL_PREFIX=$HOME/opencv-cuda-4.4.0 \

-DOPENCV_EXTRA_MODULES_PATH=$HOME/Codes/opencv_contrib/modules \

\

-DPYTHON_EXECUTABLE=$CONDA_HOME/bin/python3.7 \

-DPYTHON3_EXECUTABLE=$CONDA_HOME/bin/python3.7 \

-DPYTHON3_LIBRARY=$CONDA_HOME/lib/libpython3.7m.so \

-DPYTHON3_INCLUDE_DIR=$CONDA_HOME/include/python3.7m \

-DPYTHON3_NUMPY_INCLUDE_DIRS=$CONDA_HOME/lib/python3.7/site-packages/numpy/core/include \

-DBUILD_opencv_python2=OFF \

-DBUILD_opencv_python3=ON \

\

-DWITH_CUDA=ON \

\

-DBUILD_DOCS=OFF \

-DBUILD_EXAMPLES=OFF \

-DBUILD_TESTS=OFF \

..

make -j$(nproc)

make install

其中 Python 路徑請對應自己安裝的版本。

運行檢查:

conda activate

export LD_LIBRARY_PATH=$HOME/opencv-cuda-4.4.0/lib:$LD_LIBRARY_PATH

export PYTHONPATH=$HOME/opencv-cuda-4.4.0/lib/python3.7/site-packages:$PYTHONPATH

python - <

import cv2

print(cv2.__version__)

EOF

問題: libfontconfig.so.1

Traceback (most recent call last):

File "", line 1, in

File "/home/john/opencv-cuda-4.4.0/lib/python3.7/site-packages/cv2/__init__.py", line 96, in

bootstrap()

File "/home/john/opencv-cuda-4.4.0/lib/python3.7/site-packages/cv2/__init__.py", line 86, in bootstrap

import cv2

ImportError: /home/john/anaconda3/bin/../lib/libfontconfig.so.1: undefined symbol: FT_Done_MM_Var

解決辦法:

cd $HOME/anaconda3/lib/

mv libfontconfig.so.1 libfontconfig.so.1.bak

ln -s /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 libfontconfig.so.1

問題: libpangoft2-1.0.so.0

ImportError: /home/john/anaconda3/bin/../lib/libpangoft2-1.0.so.0: undefined symbol: FcWeightToOpenTypeDouble

解決辦法:

cd $HOME/anaconda3/lib/

mv libpangoft2-1.0.so.0 libpangoft2-1.0.so.0.bak

ln -s /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 libpangoft2-1.0.so.0

Darknet

編譯命令:

export OpenCV_DIR=$HOME/opencv-cuda-4.4.0/lib/cmake

cd ~/Codes/

git clone https://github.com/AlexeyAB/darknet.git

cd darknet/

./build.sh

運行檢查:

$ export LD_LIBRARY_PATH=$HOME/opencv-cuda-4.4.0/lib:$LD_LIBRARY_PATH

$ ./darknet v

CUDA-version: 10020 (10020), cuDNN: 8.0.2, CUDNN_HALF=1, GPU count: 1

CUDNN_HALF=1

OpenCV version: 4.4.0

Not an option: v

用預訓練模型進行推斷

準備模型與數據

darknet 執行

cd ~/Codes/darknet/

export LD_LIBRARY_PATH=$HOME/opencv-cuda-4.4.0/lib:$LD_LIBRARY_PATH

export MY_MODEL_DIR=~/Codes/devel/models/yolov4

export MY_COCO_DIR=~/Codes/devel/datasets/coco2017

./darknet detector test cfg/coco.data cfg/yolov4.cfg \

$MY_MODEL_DIR/yolov4.weights \

-thresh 0.25 -ext_output -show \

$MY_COCO_DIR/test2017/000000000001.jpg

推斷結果:

python 執行

Darknet 于其根目錄,提供有 Python 接口。如下執行:

cd ~/Codes/darknet/

export LD_LIBRARY_PATH=$HOME/opencv-cuda-4.4.0/lib:$LD_LIBRARY_PATH

export PYTHONPATH=$HOME/opencv-cuda-4.4.0/lib/python3.7/site-packages:$PYTHONPATH

python darknet_images.py -h

python darknet_images.py \

--batch_size 1 \

--thresh 0.1 \

--ext_output \

--config_file cfg/yolov4.cfg \

--data_file cfg/coco.data \

--weights $MY_MODEL_DIR/yolov4.weights \

--input $MY_COCO_DIR/test2017/000000000001.jpg

推斷結果,如前一小節。

結語

Let's go coding ~

分享 Coding 中實用的小技巧、小知識!歡迎關注,共同成長!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的yolo v4 python_YOLOv4: Darknet 如何于 Ubuntu 编译,及使用 Python 接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。