1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mumuU1156-yolov5-fire-smoke-detect

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Реализация Yolov5 на C++ для обнаружения огня или дыма в дикой природе на Jetson Xavier nx и Jetson nano

Этот репозиторий использует Yolov5 для обнаружения огня и дыма в дикой природе, который может работать на Jetson Xavier NX и Jetson Nano. На Jetson Xavier Nx он может достигать 33 FPS.

Вы можете посмотреть видео на BILIBILI или YOUTUBE.

Если вы хотите попробовать обучить свою собственную модель, вы можете обратиться к yolov5-fire-smoke-detect-python. Следуйте инструкциям в файле readme, чтобы получить свою собственную модель.

Требования

  1. Jetson nano или Jetson Xavier nx.
  2. Jetpack 4.5.1.
  3. Python3 с дефолтными настройками (Jetson nano и Jetson xavier nx имеют дефолтный python3 с tensorrt 7.1.3.0).
  4. TensorRT 7.1.3.0.
  5. Torch 1.8.0.
  6. Torchvision 0.9.0.
  7. Torch2trt 0.3.0.
  8. ONNX 1.4.1.
  9. OpenCV-Python 4.5.3.56.
  10. Protobuf 3.17.3.
  11. Scipy 1.5.4.

Если у вас возникли проблемы с этим проектом, вы можете ознакомиться с этой статьёй.

Достижения и эксперименты

  • Int8.
  • YOLOv5-s.
  • YOLOv5-m.

В ближайшее время

  • Быстрее и использовать меньше памяти.

Скорость

Весь процесс времени от чтения изображения до завершения процесса (включая все предварительные и последующие процессы изображений). И все результаты могут быть получены на Jetson Xavier nx. Для модели и кода Python вы можете найти их в этом проекте yolov5-fire-smoke-detect-python:

Backbone before TensorRT TensortRT(detection) FPS(detection)
Yolov5s-640-float16 100ms 60-70ms 14 ~ 18
Yolov5m-640-float16 120ms 70-75ms 13 ~ 14
Yolov5s-640-int8 30-40ms 25 ~ 33
Yolov5m-640-int8 50-60ms 16 ~ 20

Сборка и запуск

git clone https://github.com/RichardoMrMu/yolov5-fire-smoke-detect.git
cd yolov5-fire-smoke-detect
mkdir build 
cmake ..
make 

Если вы столкнулись с некоторыми ошибками в cmake и make, пожалуйста, ознакомьтесь с этой статьей или см. раздел «Внимание».

Модель

Вам нужна модель YOLOv5 для обнаружения, созданная с помощью tensorrtx.

Генерация модели YOLOv5

Для модели обнаружения YOLOv5 я выбираю YOLOv5s и выбираю yolov5s.pt->yolov5s.wts->yolov5s.engine. Обратите внимание, что используемые модели можно получить из yolov5, а если вам нужно использовать свою собственную модель, следуйте инструкции «Запустить свою пользовательскую модель». Также вы можете увидеть официальное руководство tensorrtx.

  1. Получите репозиторий YOLOv5.

Обратите внимание, здесь используется официальная модель. Я использую YOLOv5-5, v5.0. Поэтому, если вы обучаете свою собственную модель, убедитесь, что ваш код YOLOv5 соответствует версии v5.0.

git clone -b v5.0 https://github.com/ultralytics/yolov5.git
cd yolov5
mkdir weights
cd weights
// download https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt
wget https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt
  1. Получите tensorrtx.
git clone https://github.com/wang-xinyu/tensorrtx
  1. Получите xxx.wst модель
cp tensorrtx/gen_wts.py yolov5/
cd yolov5 
python3 gen_wts.py -w ./weights/yolov5s.pt -o ./weights/yolov5s.wts
// файл 'yolov5s.wts' будет создан.

Вы можете получить модель yolov5s.wts в папке yolov5/weights/

  1. Создайте tensorrtx / yolov5 и получите движок tensorrt
cd tensorrtx/yolov5
// обновите CLASS_NUM в yololayer.h, если ваша модель обучена на пользовательском наборе данных
mkdir build
cd build
cp {ultralytics}/yolov5/yolov5s.wts {tensorrtx}/yolov5/build
cmake ..
make
// yolov5s
sudo ./yolov5 -s yolov5s.wts yolov5s.engine s
// протестируйте свой файл движка
sudo ./yolov5 -d yolov5s.engine ../samples

Затем вы получаете файл yolov5s.engine, который можно использовать для запуска модели на Jetson.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

This is a c++ implement of yolov5 and fire/smoke detect. Развернуть Свернуть
C++ и 4 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mumuU1156-yolov5-fire-smoke-detect.git
git@api.gitlife.ru:oschina-mirror/mumuU1156-yolov5-fire-smoke-detect.git
oschina-mirror
mumuU1156-yolov5-fire-smoke-detect
mumuU1156-yolov5-fire-smoke-detect
main