Сцепление обнаружения и классификации
В этой статье мы расширим вычислительный граф на основе модели modelserving из tutorial01, добавив обнаружение и последующую классификацию. Мы предоставляем услуги по анализу видео. Полный код можно найти в каталоге flow-python/examples/simple_det_classify.
Удаление предварительной обработки для классификации
См. раздел «Создание модели с предварительной обработкой» в appendix-C-dump-model.zh.md.
Подготовка модели обнаружения
Здесь мы будем использовать готовую модель YOLOX mge. Можно повторно использовать код обнаружения из cat_finder (https://github.com/MegEngine/MegFlow/blob/master/flow-python/examples/application/cat_finder/det.py) или загрузить последнюю версию с официального сайта YOLOX (https://github.com/Megvii-BaseDetection/YOLOX/tree/main/demo/MegEngine/python).
Настройка вычислительного графа
Добавьте файл video_cpu.toml в каталог simple_det_classify/video_cpu.toml в examples.
$ cat flow-python/examples/simple_det_classify/video_cpu.toml
main = "tutorial_02"
# Сначала объявите ресурсоёмкие узлы
[[nodes]]
name = "det"
ty = "Detect"
model = "yolox-s"
conf = 0.25
nms = 0.45
tsize = 640
path = "models/simple_det_classify_models/yolox_s.mge"
interval = 5
visualize = 1
device = "cpu"
device_id = 0
[[nodes]]
name = "classify"
ty = "Classify"
path = "models/simple_det_classify_models/resnet18_preproc_inside.mge"
device = "cpu"
device_id = 0
[[graphs]]
name = "subgraph"
inputs = [{ name = "inp", cap = 16, ports = ["det:inp"] }]
outputs = [{ name = "out", cap = 16, ports = ["classify:out"] }]
# Опишите связи
connections = [
{ cap = 16, ports = ["det:out", "classify:inp"] },
]
...
# ty изменить на VdieoServer
[[graphs.nodes]]
name = "source"
ty = "VideoServer"
port = 8085
...
При работе с конфигурацией предыдущего периода следует обратить внимание на три момента:
Запуск теста
Запустите сервис:
$ cd flow-python/examples
$ megflow_run -c simple_det_classify/video_cpu.toml -p simple_det_classify
Ресурсы
Смотрите appendix-A-graph-definition.zh.md для описания определения графа toml.
Смотрите appendix-B-python-plugin.zh.md для получения информации об определении интерфейса Python node.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )