NOTA. Este repositorio ya no es mantenido activamente por mí. Sin embargo, si otros quisieran hacer cambios, coloque una solicitud de extracción y haré todo lo posible para fusionar los cambios lo antes posible. ¡Feliz codificación! :)
Este repositorio demuestra cómo se puede hacer la detección de objetos en tiempo real utilizando GPU que están disponibles en Google Cloud de forma gratuita utilizando los créditos de 1 año de Google. Utilizamos un solo aspecto de la Arquicectura para la detección de objetos que se puede visualizar en un navegador web como se muestra a continuación.

La detección de objetos es un problema difícil y computacionalmente costoso y no todos tienen acceso a las GPU para hacer la detección de objetos en tiempo real. Además, hay alternativas. Por ejemplo, TensorFlow ofrece modelos de MobileNet livianos (ver aquí), pero tienen costo de una precisión reducida. La detección de objetos también está disponible en iOS/Android, pero enfrentan los mismos problemas mencionados anteriormente.
También se ha presentado una solución interesante en Webrtchacks. Lo he probado yo mismo y funciona bien. Sin embargo, esa solución envía video webcam como una serie de imágenes JPG codificadas que dan como resultado un uso y latencia de ancho de banda significativo que no está presente en esta solución.
Hacer la detección de objetos en la nube elimina estos problemas. Lo que es más es que, dado que puede elegir qué GPU desea usar, puede ejecutar muchas redes neuronales profundas "pesadas" y al mismo tiempo alcanzar la precisión cercana a tiempo real.
Se ha verificado la inferencia/prueba en los siguientes modelos, todo con una latencia de menos de 100 ms. La latencia dependerá de la ubicación del servidor en la nube de Google y dónde se encuentra (más sobre esto más adelante).
asyncio de WebRTC llamada AIORTC. AIORTC debe instalarse de acuerdo con sus instrucciones y trabajar antes de que este repositorio sea utilizable. Aquí hay un resumen de los pasos que he compilado: Cree una instancia de la máquina virtual ejecutando lo siguiente en Google Cloud Shell. Reemplace YOUR_PROJECT_NAME con el nombre de su proyecto, la VM debe implementarse.
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 Abra un terminal SSH de la instancia recién creada como se muestra a continuación. También anote también la IP externa . Lo necesitará para más tarde. 
Obtendrá un mensaje solicitando instalar los controladores NVIDIA. Ingrese y . 
Instale FFMPEG y paquetes adicionales.
sudo apt install ffmpegsudo apt install libavdevice-dev libavfilter-dev libopus-dev libvpx-dev pkg-configUna vez que se completa la instalación, clone el repositorio de Git e instale las dependencias. Toma una taza de café. Esto tomará unos minutos.
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 es el que obtuvo en el paso 2.https://YOUR_IP_ADDRESS:8889 ¡Eso es todo!Recuerde apagar la VM de Google Cloud inmediatamente después de haber terminado de experimentar para evitar usar sus créditos de Google y ser cobrado (si excede sus créditos)