Как сохранить вывод dlib.get_frontal_face_detector () (dlib.rectangles) в скрипте Python (Flask Server)? - PullRequest
0 голосов
/ 30 сентября 2019

Я создаю веб-приложение с помощью Flask.

На стороне клиента (JavaScript) у меня есть скрипт, который с помощью веб-камеры клиента «захватывает» кадр и отправляет его на сервер. На стороне сервера (Flask) , у меня есть скрипт Python, который использует DLib для обнаружения лица в этом кадре.

Приложение работает, но, поскольку я использую dlib .get_frontal_face_detector () (для обнаружения лица) в каждом отдельном кадре, это увеличивает время отклика сервера (ответ занимает в общей сложности 125 мс, из которых 83% используются dlib.get_frontal_face_detector ()).

Я пытаюсь реализовать решение, представленное Дэвисом Кингом (автором DLib) в GitHub Issue # 1556: «запускать детектор только каждые несколько кадров». Однако я не могу сохранить выходные данные dlib.get_frontal_face_detector () в объекте Session.

Вот ошибка, которую я получаю:

TypeError: Object of type 'rectangle' is not JSON serializable

Я думаю, что проблема как-то связана с тем фактом, что вывод dlib.get_frontal_face_detector () имеет тип: class 'dlib.rectangles. Однако я не могу найти решение.

Любая помощь?

1 Ответ

0 голосов
/ 03 октября 2019

Вот решение *: Вывод dlib.get_frontal_face_detector () должен быть преобразован в JSON-совместимый объект для сохранения в сеансе. Позже (т. Е. Для использования в следующих запросах) его необходимо снова преобразовать в исходный тип.

(* Кредит Мигелю Гринбергу)

...