Доступ к камере из системы, на которой запущено приложение - PullRequest
0 голосов
/ 21 ноября 2018

Я создаю веб-приложение с django и opencv для компьютерного зрения.В веб-приложении есть кнопка, которая при нажатии запускает веб-камеру моего компьютера.Проблема заключается в том, что когда я размещаю веб-приложение, используя свой IP-адрес, получаю доступ к приложению с другого компьютера и нажимаю кнопку «Запускается веб-камера на моем компьютере».

Я знал, что проблема заключалась в этой строке кода

cam = cv2.VideoCapture(0)

Я посмотрел онлайн и нашел сообщение , которое просит меня использоватьJavaScript для доступа к веб-камере.

  1. Это лучший вариант или я могу как-то изменить эту строку кода opencv для доступа к камере в системе, на которой работает приложение?

  2. Если нет лучшего способа сделать это, чем javascript, то я также хотел бы знать, как только я получаю доступ к веб-камере и отображаю канал на экране, как мне связать оставшуюся часть кода Python, как детекторы лица иклассификаторы к коду javascript?

Я только начал замазывать руки на python, и мне еще есть чему поучиться.

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

1 Ответ

0 голосов
/ 21 ноября 2018

Существует множество различных способов выполнить то, что вы пытаетесь сделать, поэтому вам нужно сосредоточиться на как вы хотите создать свое приложение.

Если вам нужно толькодля обнаружения и отслеживания лица на клиентской камере вы можете обратиться к https://trackingjs.com/, библиотеке JS, способной выполнять различные простые задачи компьютерного зрения на стороне клиента.

Если вам нужно выполнить более сложные задачи обработки или классификации изображений для входящего видеопотока, вы можете сделать что-то вроде:

ШАГ 1: Получить клиентПодача камеры с помощью JS на стороне клиента.

ШАГ 2: Служите веб-приложению в режиме HTTPS (вам нужно будет создать сертификат SSL): если вы этого не сделаетефункция JS getUserMedia() не будет работать, и вы получите

getusermedia больше не работает с небезопасными источниками

Если вы не знаете, как сгенерироватьSSL-сертификат в Python, https://pypi.org/project/pyOpenSSL/ это путь.

ШАГ 3: Теперь, когда клиентская камера открыта, используйте WebSocket для потоковой передачи клиентского видеопотока на ваш внутренний сервер

ШАГ 4: Теперь вы находитесь на стороне сервера, и вы можете выполнить всю обработку funcy здесь и передать обратно клиенту через WebSocket результат ваших вычислений.

ШАГ 5: Слушатель JS WebSocket на стороне клиента получит всю входящую информацию и отобразит окончательный результат на экране клиента.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...