Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.
окрестности
- ubuntu 18.04 64bit
- GTX 1070Ti
- anaconda with python 3.8
- pytorch 1.7
- cuda 10.1
предисловие
Буквально вчера (13 октября 2021 г.)yolov5
опубликованоV6.0
версия, эта новая версия находится вV5.0
На основе интеграции многих новых функций, а также тонкой настройки сетевой структуры, новый меньший (Nano
) модельP5
(YOLOv5n
) иP6
(YOLOv5n6
).Nano
модель держитyolov5s
глубина модели (depth
),ширина(width
) уменьшается с 0,5 до 0,25, после этой операции суммарные параметры уменьшаются75%,от7.5Mсузился до1.9M, в этом случае он очень подходит для мобильных терминалов илиCPU
среда г.
По показателям эффективности,V6.0
Также улучшено, см. рисунок ниже
новые возможности
Организовано нижеV6.0
Новые ключевые функции
-
интегрированный
Roboflow
roboflow
Как мы упоминали ранее, он предоставляет множество очень полезных наборов данных вv6.0
Вы можете напрямую использовать их наборы данных, см.GitHub.com/ultra Еще одна ICS…, очень удобно -
служба поддержки
tensorflow
иkeras
экспорт моделииспользовать
python export.py --include saved_model pb tflite tfjs
это может быть сделаноtensorFlow
,keras
,tflite
иtf.js
экспорт модели -
Также поддерживает
OpenCV DNN
иONNX Runtime
экспортируется
onnx
Также поддерживаетopencv dnn
иonnx runtime
python export --weights yolov5s.pt --include onnx --opset 12 --dynamic
Вы также можете использовать указанный
onnx
,python detect.py --weights yolov5s.onnx --dnn
-
Структура модели
- использовать
Conv(k=6, s=2, p=2)
заменятьFocus
слой, в основном для облегчения экспорта модели - использовать
SPPF
заменятьSPP
Этаж - уменьшать
P3
Магистральный уровеньC3
- будет
SPPF
за багажником - напоследок
C3
Повторно ввести ярлыки на магистральном уровне - обновить гиперпараметры
- использовать
-
вырос
Flask REST API
при условии
web api
поддержка, удаленное тестирование очень удобно, это делают обычные открытые платформы
фляга API практика
скачатьV6.0
исходный код
git clone -b v6.0 https://github.com/ultralytics/yolov5.git
cd yolov5/utils/flask-rest-api
Установите необходимые зависимости и запустите службу
pip install flask
# 通过参数port可以指定特定端口,如--port 8080
python restapi.py
Скрипт будет загружен в процессе запускаyolov5
исходный код иyolov5s.pt
файл модели, хранящийся в~/.cache/torch/hub
Вниз
(base) xugaoxiang@1070Ti:~/workshop/yolov5/data/images$ ls ~/.cache/torch/hub/ultralytics_yolov5_master/
CONTRIBUTING.md detect.py export.py LICENSE __pycache__ requirements.txt tutorial.ipynb val.py
data Dockerfile hubconf.py models README.md train.py utils yolov5s.pt
Это действие загрузки по умолчанию происходит каждый раз при выполнении скрипта. может быть изменен с помощьюrestapi.py
использовать существующую версию
# 将force_reload,由原来的True改为False
model = torch.hub.load("ultralytics/yolov5", "yolov5s", force_reload=False)
После запуска сервиса подходим к клиенту и используемcurl
команда для проверки
curl -X POST -F image=@zidane.jpg 'http://192.168.1.140:5000/v1/object-detection/yolov5s'
После успеха вы можете получить результат, возвращаемый интерфейсом
(base) xugaoxiang@1070Ti:~/workshop/yolov5/data/images$ curl -X POST -F image=@zidane.jpg 'http://192.168.1.140:5000/v1/object-detection/yolov5s'
[{"xmin":752.0,"ymin":46.0,"xmax":1148.0,"ymax":716.0,"confidence":0.875,"class":0,"name":"person"},{"xmin":100.0,"ymin":201.5,"xmax":1002.0,"ymax":718.5,"confidence":0.5795898438,"class":0,"name":"person"},{"xmin":438.25,"ymin":422.0,"xmax":509.75,"ymax":720.0,"confidence":0.5219726562,"class":27,"name":"tie"}]
или
использоватьpostman
Для проверки с помощьюPOST
просить,url
даhttp://192.168.1.140
Если вы хотите использоватьpython
Сделать запрос, примеры также приведены в проектеexample_request.py
, с использованиемrequest
модуль