ПРИМЕЧАНИЕ. Этот репозиторий больше не поддерживается мной. Однако, если другие хотели бы внести изменения, пожалуйста, поставьте запрос на тягу, и я сделаю все возможное, чтобы объединить изменения как можно скорее. Счастливого кодирования! :)
Этот репозиторий демонстрирует, как можно определить обнаружение объектов в режиме реального времени, используя графические процессоры, которые доступны в Google Cloud бесплатно, используя 1 -летние кредиты Google. Мы используем только то, что вы смотрите только один раз архиктуру для обнаружения объектов, которые можно визуализировать в веб -браузере, как показано ниже.

Обнаружение объекта является сложной и вычислительной дорогой проблемой, и не у всех есть доступ к графическим процессорам для определения обнаружения объектов в реальном времени. Кроме того, есть альтернативы. Например, Tensorflow предлагает легкие модели Mobilenet (см. Здесь), но они поставляются за счет снижения точности. Обнаружение объекта также доступно на iOS/Android, но они сталкиваются с теми же проблемами, упомянутыми ранее.
Интересное решение также было представлено на WebrtChacks. Я сам проверил это, и это работает хорошо. Тем не менее, это решение отправляет видео веб -камеры как серию кодируемых изображений JPG, что приводит к значительному использованию полосы пропускания и задержке, которых нет в этом решении.
Выявление объектов в облаке устраняет эти проблемы. Более того, поскольку вы можете выбрать, какой графический процессор вы хотите использовать, вы можете запустить «тяжелые» глубокие нейронные сети, при этом достигая точности в реальном времени.
Вывод/тестирование на следующих моделях был проверен, все с задержкой менее 100 мс. Задержка будет зависеть от местоположения сервера Google Cloud и там, где вы находитесь (подробнее об этом позже).
asyncio WebRTC под названием AIORTC. AIORTC должен быть установлен в соответствии с их инструкцией и работы до того, как этот репозиторий будет использован. Вот краткое изложение шагов, которые я составил: Создайте экземпляр виртуальной машины, запустив следующее в Google Cloud Shell. Замените YOUR_PROJECT_NAME с именем вашего проекта, в виртуальной машине следует развернуть.
gcloud beta compute --project=YOUR_PROJECT_NAME instances create instance-1 --zone=us-east1-b --machine-type=n1-standard-2 --subnet=default --network-tier=PREMIUM --maintenance-policy=TERMINATE --service-account=740303654106-compute@developer.gserviceaccount.com --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append --accelerator=type=nvidia-tesla-p100,count=1 --tags=http-server,https-server --image=c2-deeplearning-tf-1-12-cu100-20181120 --image-project=ml-images --boot-disk-size=60GB --boot-disk-type=pd-standard --boot-disk-device-name=instance-1 Откройте терминал SSH недавно созданного экземпляра, как показано ниже. Также обратите внимание на внешний IP . Вам понадобится на потом. 
Вы получите подсказку с просьбой установить драйверы NVIDIA. Введите y 
Установите FFMPEG и дополнительные пакеты.
sudo apt install ffmpegsudo apt install libavdevice-dev libavfilter-dev libopus-dev libvpx-dev pkg-configПосле завершения установки клонируйте репозиторий GIT и установите зависимости. Возьмите чашку кофе. Это займет несколько минут.
cd ~git clone https://github.com/omarabid59/YOLO_Google-Cloud.gitcd ~/YOLO_Google-Cloudpip3 install -r requirements.txtmkdir -p ~/YOLO_Google-Cloud/mlserver/modelcd ~/YOLO_Google-Cloud/mlserver/modelwget https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov3.cfgwget https://pjreddie.com/media/files/yolov3.weightswget https://raw.githubusercontent.com/pjreddie/darknet/master/data/coco.namesnohup python3 ~/YOLO_Google-Cloud/mlserver/mlserverclient.py &cd ~/YOLO_Google-Cloud/webserver/ && python3 httpserver.py
YOUR_IP_ADDRESS - это то, что вы получили на шаге 2.https://YOUR_IP_ADDRESS:8889 Вот и все!Не забудьте отключить виртуальную машину Google Cloud сразу после того, как вы закончите экспериментировать, чтобы избежать использования ваших кредитов Google и взимать плату (если вы превышаете свои кредиты)