Giter Club home page Giter Club logo

yolov4_inference's Introduction

Инференс модели детектирования

Данный репозиторий позволяет выполнять инференс моделей детектирования изображений Yolov4 как с помощью исходника, так и с помощью средств PyTorch.
Для моделей, обученных с помощью других исходников, может быть другой инференс.
Инференс моделей yolov4 в формате *.pt (pytorch) содержится в файле detector_inference_yolov4.ipynb. Отдельный скрипт не имеет смысла писать, так как необходим исходный код для построения модели.
Скрипт run_onnx.py позволяет делать инференс моделей yolov4 в формате *.onnx без исходного репозитория Yolov4. Содержит аргументы командной строки.
Ноутбук detector_inference_yolov4.ipynb содержит также дополнительный код для инференса моделей и сохранения моделей *.pt в формат *.onnx с помощью исходного репозитория Yolov4.

Требования к компьютеру и ПО

Репозиторий протестирован на Windows 10.
Для поддержки GPU а компьютере должна быть установлена Cuda Toolkit 10.х или 11.х (протестировано на версиях 10.1, 11.4) и CudNN. Pytorch устанавливает Cuda Toolkit отдельно, при его установке можно выбрать версию cuda. Поэтому скорее всего, версия Cuda Toolkit, установленная на компьютере, не имеет значения.
Версия Pytorch должна быть >= 1.8.1.
Для теста использовались видеокарты Nvidia GeForce GTX 1060, GTX 1660 Ti.

Установка

Установка для инференса без исходного репозитория (моделей в формате *.onnx):

  1. Установите на компьютер менеджер виртуальных сред Anaconda.
  2. Откройте командную строку Anaconda, создайте новую среду и установите необходимые библиотеки:
    • conda create -n yolov4 python=3.8
    • conda activate yolov4
      Установка pytorch с Cuda Toolkit 10.1:
    • pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/cu101/torch_stable.html
    • pip install onnxruntime pandas requests pyyaml tqdm matplotlib seaborn

Остальные библиотеки установятся при первом запуске инференса.

Дополнительная установка для инференса из исходного репозитория Yolov4:

В командной строке Anaconda:

  • Перейдите в каталог, в который хотите склонировать репозиторий Yolov4.
  • Выполните команду: git clone https://github.com/WongKinYiu/PyTorch_YOLOv4.git
  • Перейдите в скачанный репозиторий: cd PyTorch_YOLOv4
  • Доустановите пакеты: pip install -r requirements.txt

Входные данные

Необходимо изображение, и модель детектирования yolov4 в формате *.pt или *.onnx.

Инференс моделей *.pt


Активируйте рабочую среду: conda activate yolov4
Откройте ноутбук detector_inference_yolov4.ipynb. В нем содержится весь пайплайн инференса моделей *.pt из репозитория Yolov4

Инференс моделей *.onnx

В командной строке Anaconda:

  • Активируйте рабочую среду: conda activate yolov4

  • Перейдите в текущий репозиторий: cd yolov4_inference

  • Запустите в командной строке скрипт: python run_onnx.py с аргументами командной строки. Обязательных аргументов нет.
    Аргументы, которые можно указать:
    --img_path - путь к файлу изображения, по умолчанию: '*.png'
    --weights - путь к модели, по умолчанию: '*.onnx'
    --classes_file - путь к списку классов, по умолчанию: 'names.names'
    --score_thr - уровень достоверности идентификации рамок, по умолчанию 0.5
    --nms_thr - граница отсечения рамок по площади перекрытия с разметкой (IoU), по умолчанию 0.45
    --conf_thr - уровень достоверности идентификации классов, по умолчанию 0.45
    --img_size - размер входного изображения для модели, по умолчанию: [320, 320]
    --folder_to_save - имя папки, в которую нужно сохранить картинку результаты детектирования, по умолчанию: '*'
    --name - имя картинки с результатом детектирования, по умолчанию: '*.png'
    --save_txt - параметр, который определяет, нужно ли сохранять координаты рамок в текстовый файл. Это удобно, когда много детекций. По умолчанию текстовый файл не будет сохраняться. Если аргумент выбран, то текстовый файл сохранится в ту же папку, что и изображение, с тем же именем (по умолчанию: *.txt). Результаты в файл записываются в следующем виде:
    left top width height conf class

    Пример команды: python run_onnx.py --img_size 320 --nms_thr 0.5 --conf_thr 0.5 --save_txt

  • После инференса на экране появляются предсказания модели.

yolov4_inference's People

Contributors

uralskayamariya avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.