Как мне ускорить вывод данных YOLO v3-v4?
Я запускаю YOLO V3 или YOLO v4 на Jeston Xavier, версия DNN OpenCV, это очень медленно, едва достигает ~ 7-9 кадров в секунду с использованием DNN в контейнере докеров. Мне интересно, не могли бы вы рассказать мне, какой самый простой способ ускорить обнаружение? Любые рекомендации или учебники о том, как ускорить вывод?
2 ответа
Две вещи, которые вы можете попробовать ускорить вывод:
- Используйте меньший размер сети. Например, используйте yolov4-416 вместо yolov4-608. Вероятно, это происходит за счет более низкой точности.
- Попробуйте преобразовать вашу сеть в TensorRT и использовать смешанную точность (FP16 даст огромный прирост производительности, а INT8 даже больше, хотя тогда вам придется отозвать свою сеть)
Что касается последнего, я бы посоветовал подписаться на этот отличный блог:
Вы можете уменьшить размер изображения в
.cfg
width=416
height=416
- Используйте число, кратное 32 (это может повлиять на вашу точность, если объекты в вашей сцене слишком малы).
- И вы можете обрезать входное изображение, чтобы квадратная форма оставалась только в интересующей области. Это помогает предотвратить слишком сильное сжатие мелких объектов при уменьшении размера изображения, поскольку Yolo сжимает входное изображение до указанного выше
width
height
при сохранении соотношения сторон изображения.
Вы также можете попробовать Yolov3-tiny или Yolov4-tiny, это меньшая сеть, но это также может повлиять на вашу точность. (Эти решения были основаны на моем опыте. Всегда существует компромисс между скоростью и точностью при работе с Yolo или другими сверточными сетями.)