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

OSCHINA-MIRROR/mumuU1156-yolov5-mask-detect

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

yolov5-mask-detect

Реализация Yolov5 на C++ для обнаружения маски, работающая на Jetson Xavier nx и Jetson nano. На Jetson Xavier Nx она может достигать 33 FPS.

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

Если вы хотите попробовать обучить свою собственную модель, вы можете обратиться к yolov5-mask-detection-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

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

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

  • Int8.
  • yolov5-s
  • yolov5-m

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

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

Скорость

Общее время процесса от чтения изображения до завершения обработки (включая все предварительную и постобработку изображений). Все результаты можно получить на Jetson Xavier nx. Для модели и кода Python вы можете найти их в этом проекте yolov5-mask-detection-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-mask-detect
cd yolov5-mask-detect
mkdir build 
cmake ..
make 

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

Модель

Вам нужны две модели: одна — это модель для обнаружения yolov5, генерируемая из tensorrtx.

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

Для модели обнаружения yolov5 я выбираю yolov5s и выбираю yolov5s.pt->yolov5s.wts->yolov5s.engine Обратите внимание, что используемые модели можно получить из yolov5 и использовать этот проект yolov5-mask-detection-python, чтобы получить вашу модель. Также вы можете увидеть официальное руководство по 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
// скачать 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 до 2 в yololayer.h 
// nc: 2  # количество классов
// names: ['nomask','mask']  # имена классов

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, и вы можете поместить yolov5s.engine в свой проект. Например

cd

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

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

Введение

Реализация Yolov5 на C++ для обнаружения маски, работающая на Jetson Xavier nx и Jetson nano. Развернуть Свернуть
C++ и 3 других языков
MIT
Отмена

Обновления

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

Участники

все

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

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