В этом руководстве я покажу вам, как собрать версию AlexeyAB DarkNet YOLOv4 с поддержкой графического процессора (включая CUDNN_HALF=1 для 3-кратного ускорения) и поддержкой OpenCV.

Я тестировал это на

Операционная система: система Pop OS (Ubuntu) 22.04 LTS (NVIDIA)

Графический процессор: графический процессор ноутбука Nvidia RTX 3080

Открытый терминал

>> nvidia-smi

Наш драйвер NVIDIA GPU хорош. Но нам по-прежнему приходится вручную устанавливать CUDA, так как DarkNet не может использовать предустановленную System76.

Установите CUDA

Перейдите по этой ссылке, чтобы загрузить CUDA 11.7: https://developer.nvidia.com/cuda-downloads

Выбирать:

>> cd Downloads/
>> wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
>> sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
>> sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
>> sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
>> sudo apt-get update
>> sudo apt-get -y install cuda

Note: above command takes takes time to run (~3 minutes)

Выполните приведенные ниже команды, чтобы проверить, установлена ​​ли сейчас версия CUDA 11.7.

>> nvidia-smi

Мы видим, что версия CUDA теперь отображается как 11.7.

Добавьте CUDA в путь к среде

>> cd

Убедитесь, что вы видите папку cuda-11.7 в /usr/local/

>> ls /usr/local/

Затем добавьте CUDA в путь к среде.

>> nano ~/.bashrc

Вставьте это в конец .bashrc :

# NVIDIA CUDA Toolkit
export PATH=/usr/local/cuda-11.7/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64
export CPATH=/usr/local/cuda-11.7/targets/x86_64-linux/include:$CPATH

Убедитесь, что CUDA установлен (а также правильно добавлен в путь среды)

>> sudo apt install nvidia-cuda-toolkit
>> nvcc -V

Install cuDNN v8.4.1

Ссылка для скачивания: https://developer.nvidia.com/rdp/cudnn-download

Извлеките загруженный файл с помощью диспетчера архивов Pop OS.

Rename extracted folder `cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive` to `cuda` for simplicity.

>> cd ~/Downloads/cuda/
>> sudo cp -P lib/* /usr/local/cuda/lib64/
>> sudo cp -P include/* /usr/local/cuda/include/
>> cd ~/Downloads/

Install DarkNet with GPU support and OpenCV support

Установите Anaconda (версия для Linux): довольно просто, просто нужно запустить .sh

Примечание: после установки Anaconda вам придется закрыть и снова открыть текущую оболочку.

Установите OpenCV в среде conda

>> conda create -n opencv
>> conda activate opencv
>> sudo apt install python3-pip
>> pip install opencv-python

Note: My versions are numpy-1.22.4 opencv-python-4.6.0.66

Клонировать репозиторий AlexeyAB DarkNet

>> cd ~/Documents/
>> git clone https://github.com/AlexeyAB/darknet.git
>> cd darknet

Build DarkNet with GPU support and OpenCV

Отредактируйте Makefile в папке даркнета. набор:

GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1

У меня GeForce RTX 3080, поэтому я раскомментировал ниже в Makefile:

ARCH= -gencode arch=compute_86,code=[sm_86,compute_86]

После сохранения Makefile с изменениями запустите:

>> sudo apt-get install libopencv-dev
>> make

Вы успешно установили даркнет с поддержкой графического процессора и поддержкой OpenCV!!! 🎉

Бег по веб-камере

Загрузите веса по ссылке ниже и поместите их в папку даркнета:

https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights

Бегать:

>> ./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights

Наслаждайтесь обнаружением себя в камере при высокой частоте кадров благодаря ускорению графического процессора. Делитесь своими результатами в комментариях!

Огромное спасибо этому руководству за помощь: https://medium.com/@abhichand26/how-to-setup-cuda-in-ubuntu-for-darknet-yolo-fdd25cd70aba