Развертывание модели tensorrt с использованием yolov5

искусственный интеллект

содержание

1. Версия среды

1.1 Обзор

1.2 Версия Ubuntu

1.3 версии python, pytorch и tensorrt

1.4 cudnn версия

1.5 версия драйвера

1.6 версия opencv

Во-вторых, установка среды TensorRT и opencv.

2.1 установка opencv

2.2 Установка TensorRT

Три, йолов5 в тензоррт

3.1 Скачать проект yolov5

3.2 Загрузите проект tensorrtx

3.3 Начать подготовку к компиляции

3.4 Получите модель wts

3.5 Команда компиляции

3.6 Тестирование


1. Версия среды

1.1 Обзор

Системная среда: Ubuntu18.04 python=3.8.5 torch=1.10.0 TensorRT=7.2.3.4 opencv=4.5.1

cuda=11.2 cudnn=8.2.2 Версия драйвера: 460.32.03 Видеокарта: RTX 3090

1.2 Версия Ubuntu

Запустить в терминале: lsb_release -a

image.png

1.3 версии python, pytorch и tensorrt

Запустить в терминале: lsb_release -a

image.png

1.4 cudnn версия

Запустите в терминале: dpkg -L libcudnn8

image.png

1.5 версия драйвера

Запустите в терминале: смотреть -n 1 nvidia-smi

image.png

1.6 версия opencv

Запустите в терминале: pkg-config --modversion opencv

image.png

Во-вторых, установка среды TensorRT и opencv.

2.1 установка opencv

  1. Справочный веб-сайт:Home - OpenCV
  2. пакет ippicv:GitHub.com/OpenCV/открыть…
  3. Команда компиляции: cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D BUILD_TIFF=ON

ПРИМЕЧАНИЕ. В условиях CODA, благодаря установке Pytorch, «Libtiff» будет автоматически установлена ​​автоматически. После удаления Pytorch нельзя использовать, а затем OpenCV сообщит об ошибке во время процесса компиляции, следующим образом:


/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFWriteEncodedStrip@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFIsTiled@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFWriteScanline@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFGetField@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFScanlineSize@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFWriteDirectory@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFReadEncodedTile@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFReadRGBATile@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFClose@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFClientOpen@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFRGBAImageOK@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFOpen@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFReadEncodedStrip@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFSetField@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFSetWarningHandler@LIBTIFF_4.0'
/usr/local/lib/libopencv_imgcodecs.so.4.5.1: undefined reference to `TIFFSetErrorHandler@LIBTIFF_4.0

Решение:

  1. Когда исходный код opencv установлен и скомпилирован, убедитесь, что в среде conda нет имени пакета libtiff.
  2. Включите BUILD_TIFF во время компиляции cmake.

Ссылка на ссылку:

  1. LIBTIFF_4.0 link errors - OpenCV Q&A Forum
  2. stackoverflow.com/questions/2…
  3. Ошибки ссылки OpenCV LIBTIFF_4.0
  4. Установите OpenCV + OpenCV_Contrib в Linux (Ubuntu 18.04)
  5. blog.51CTO.com/U_14587161/…

2.2 Установка TensorRT

  1. Справочный веб-сайт:developer.NVIDIA.com/This-talent/Это так неудобно…, существует два метода установки: пакет tar и deb.В этой статье для распаковки и установки выбран пакет tar.
  2. Распаковать и установить согласно tar-пакету: tar -xvf TensorRT-7.2.3.4.Ubuntu-18.04.x86_64-gnu.cuda-11.1.cudnn8.1.tar.gz
  3. Команда установки: введите python, uff и graphsurgeon соответственно.В зависимости от среды python pip установите соответствующий пакет
  4. vi ~/.bashrc add export LD_LIBRARY_PATH=/usr/local/TensorRT-7.2.3.4/lib:/usr/local/cuda/bin:LDLIBRARYPATH exportINCLUDEPATH=/usr/local/TensorRT7.2.3.4/include:/usr/local/cuda/lib64:LD_LIBRARY_PATH\ export INCLUDE_PATH=/usr/local/TensorRT-7.2.3.4/include:/usr/local/cuda/lib64:INCLUDE_PATH
  5. source ~/.bashrc

Три, йолов5 в тензоррт

3.1 Скачать проект yolov5

GitHub.com/ultra Еще одна ICS…

3.2 Загрузите проект tensorrtx

GitHub.com/king-credibility/…

3.3 Начать подготовку к компиляции

В проекте tensorrx войдите в каталог yolov5 и измените Cmakelists.txt:

修改自己tcuda和tensorrt路径:

# cuda

include_directories(/usr/local/cuda/include)

link_directories(/usr/local/cuda/lib64)

# tensorrt

include_directories(/usr/local/TensorRT-7.2.3.4/include)

link_directories(/usr/local/TensorRT-7.2.3.4/lib)

image.png

3.4 Получите модель wts

Запустите в терминале: ****python gen_wts.py

image.png

3.5 Команда компиляции

Запустите в терминале: mkdir build && cd build:

Запустите в терминале: cmake..

image.png

Запустите в терминале: make -j128

image.png

Запустите в терминале: ./yolov5 -s // сериализовать модель в файл плана, т.е. 'yolov5s.engine' сериализовать модель

image.png

3.6 Тестирование

Выполнить в терминале: ./yolov5 -d ../data/images // десериализовать файл плана и запустить вывод, изображения в образцах будут обработаны.

image.png

Или запустите в терминале: CUDA_VISIBLE_DEVICES=6 python yolov5_trt.py

image.png