NOTE. Ce référentiel n'est plus activement maintenu par moi. Cependant, si d'autres souhaitaient apporter des modifications, veuillez présenter une demande de traction et je ferai de mon mieux pour fusionner les modifications dès que possible. Codage heureux! :)
Ce référentiel montre comment on peut faire la détection d'objets en temps réel à l'aide de GPU qui sont disponibles gratuitement sur Google Cloud en utilisant les crédits de 1 an de Google. Nous utilisons un que vous ne regardez qu'une fois archirictural pour la détection d'objets qui peut être visualisé dans un navigateur Web comme indiqué ci-dessous.

La détection d'objets est un problème difficile et coûteux en calcul et tout le monde n'a pas accès aux GPU pour faire la détection d'objets en temps réel. De plus, il existe des alternatives. Par exemple, TensorFlow propose des modèles de mobilenet légers (voir ici), mais ils ont le prix d'une précision réduite. La détection d'objets est également disponible sur iOS / Android, mais ils sont confrontés aux mêmes problèmes mentionnés précédemment.
Une solution intéressante a également été présentée sur Webbrtchacks. Je l'ai testé moi-même et cela fonctionne bien. Cependant, cette solution envoie une vidéo webcam comme une série d'images JPG codées résultant en une utilisation et une latence de bande passante significatives qui ne sont pas présentes dans cette solution.
Faire la détection d'objets sur le nuage élimine ces problèmes. De plus, puisque vous pouvez choisir le GPU que vous souhaitez utiliser, vous pouvez exécuter beaucoup de réseaux de neurones profonds "lourds" tout en atteignant une précision proche de la réalité.
L'inférence / test sur les modèles suivants a été vérifié, le tout avec une latence inférieure à 100 ms. La latence dépendra de l'emplacement du serveur Google Cloud et de l'endroit où vous vous trouvez (plus à ce sujet plus tard).
asyncio de WebRTC appelé AIORTC. AIORTC doit être installé en fonction de leurs instructions et de leur travail avant que ce référentiel ne soit utilisable. Voici un résumé des étapes que j'ai compilées: Créez une instance de la machine virtuelle en exécutant ce qui suit dans le shell Google Cloud. Remplacez YOUR_PROJECT_NAME par le nom de votre projet dans lequel la machine virtuelle doit être déployée.
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 Ouvrez un terminal SSH de l'instance nouvellement créée comme indiqué ci-dessous. Notez également l' IP externe . Vous en aurez besoin pour plus tard. 
Vous obtiendrez une invite pour installer des pilotes NVIDIA. Entrez y . 
Installez FFMPEG et les packages supplémentaires.
sudo apt install ffmpegsudo apt install libavdevice-dev libavfilter-dev libopus-dev libvpx-dev pkg-configUne fois l'installation terminée, clonez le référentiel GIT et installez les dépendances. Prenez une tasse de café. Cela prendra quelques minutes.
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 est celui que vous avez obtenu à l'étape 2.https://YOUR_IP_ADDRESS:8889 c'est tout!N'oubliez pas d'arrêter la machine virtuelle Google Cloud immédiatement après avoir fini d'expérimenter pour éviter d'utiliser vos crédits Google et d'être facturé (si vous dépassez vos crédits)