注記。このリポジトリは、もはや私によって積極的に維持されていません。ただし、他の人が変更を行いたい場合は、プルリクエストを掲載してください。できるだけ早く変更をマージするために最善を尽くします。ハッピーコーディング! :)
このリポジトリは、Googleの1年クレジットを使用してGoogle Cloudで無料で利用できるGPUを使用して、リアルタイムでオブジェクト検出を行う方法を示しています。以下に示すように、Webブラウザーで視覚化できるオブジェクト検出のために、Archictectureを1回だけ使用します。

オブジェクトの検出は困難で計算上の高価な問題であり、誰もがGPUにアクセスしてリアルタイムオブジェクト検出を行うわけではありません。さらに、代替手段があります。たとえば、Tensorflowは軽量のMobileNetモデル(こちらを参照)を提供しますが、精度が低下します。オブジェクト検出はiOS/Androidでも利用できますが、前述の同じ問題に直面しています。
Webrtchacksでも興味深いソリューションが提示されています。私はそれを自分でテストしました、そしてそれはうまく機能します。ただし、そのソリューションは、ウェブカメラビデオをエンコードされたJPG画像のシリーズとして送信し、このソリューションには存在しない大幅な帯域幅の使用と遅延をもたらします。
クラウドでオブジェクト検出を行うと、これらの問題がなくなります。さらに、どのGPUを使用するかを選択できるため、リアルタイムの精度に近づきながら「重い」深いニューラルネットワークを実行できることです。
次のモデルでの推論/テストが検証されており、すべて100ミリ秒未満の遅延があります。レイテンシは、Google Cloudサーバーの場所とあなたがいる場所に依存します(これについては後で詳しく説明します)。
WebRTCのasyncio実装を使用します。 AIORTCは指示に従ってインストールされ、このリポジトリが使用可能になる前に作業する必要があります。ここに私がコンパイルした手順の要約は次のとおりです。Google Cloud Shellで以下を実行して、仮想マシンのインスタンスを作成します。 YOUR_PROJECT_NAMEプロジェクトの名前に置き換えます。VMは展開する必要があります。
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 VMをShut Off shut off Your Your Googleクレジットの使い切りと請求を避けるため(クレジットを超えた場合)。