Существует ли алгоритм обнаружения объектов в режиме реального времени для процессора? - PullRequest
0 голосов
/ 29 марта 2020

Мне нужно использовать некоторые алгоритмы обнаружения объектов в режиме реального времени (обнаружит вещи во время вождения). До сих пор мне удавалось использовать YOLO-v3 с pytorch на GPU p c с отличными результатами.

Есть ли алгоритм, который я могу использовать на процессоре с тактовой частотой ~ 1,6 ГГц на ноутбуке? Мой текущий net обнаруживает на процессоре ~ 5 секунд на кадр, что слишком медленно для реального времени ...

Заранее спасибо

1 Ответ

0 голосов
/ 31 марта 2020

Есть много вещей, которые вы можете сделать, чтобы получить хорошую производительность процессора. (Я должен был поместить это в комментарии, но это было бы слишком долго. Поэтому, разместив это здесь.)

  1. Квантование модели :

Квантование модели с помощью обучения с учетом квантования или квантования весов после обучения гарантирует, что с минимальным или нет снижения точности мы преобразуем веса float32 или float64 в uint8 для более быстрого выполнения на младших машинах.

Как вы сказали, ваша модель находится в PyTorch, поэтому Модель квантования была введена в PyTorch 1.4.0, а дополнительные функции с улучшениями были добавлены в 1.4.1

Вы также можете найти интересный репо в Модель квантования здесь .

OpenVino

Инструментарий OpenVINO позволяет разработчикам развертывать предварительно обученные модели глубокого обучения с помощью высокоуровневого API C ++ Inference Engine, интегрированного с логикой приложения c.

Он включает в себя два компонента, а именно Model Optimizer и Inference Engine, а также CPU, GPU и гетерогенные плагины для ускорения глубокого изучения процессоров Intel (R) и процессорной графики Intel (R).

Таким образом, вы можете перенести вашу модель в OpenVino для более быстрого вывода на процессор. Вы можете сослаться на несколько ссылок для OpenVino здесь (в README моего репозитория). Также link1 и link2 .

Построение из источника

Вы можете создать исходный код репозитория PyTorch, как в версии pip, в мультипроцессорной обработке и многопоточности существует некоторая проблема, которая снижает реальную производительность. (чего нет в случае TensorFlow)

Дополнительный подход :

Вы можете попытаться преобразовать вашу модель в TensorFlow и посмотреть, улучшит ли она вывод на ЦП. Иногда его видно, это максимизирует производительность. Вы можете обратиться к ссылке здесь для получения дополнительной информации.

...