บันทึก. ที่เก็บนี้ไม่ได้รับการดูแลอย่างแข็งขันโดยฉันอีกต่อไป อย่างไรก็ตามหากคนอื่นต้องการเปลี่ยนแปลงโปรดส่งคำขอดึงและฉันจะพยายามอย่างเต็มที่เพื่อรวมการเปลี่ยนแปลงโดยเร็ว การเข้ารหัสมีความสุข! -
ที่เก็บนี้แสดงให้เห็นว่าเราสามารถตรวจจับวัตถุได้อย่างไรในเวลาจริงโดยใช้ GPU ที่มีอยู่ใน Google Cloud ฟรีโดยใช้เครดิต 1 ปีของ Google เราใช้คุณจะดูเมื่อ archictecture สำหรับการตรวจจับวัตถุที่สามารถมองเห็นได้ในเว็บเบราว์เซอร์ดังที่แสดงด้านล่าง

การตรวจจับวัตถุเป็นปัญหาที่ยากและมีราคาแพงและไม่ใช่ทุกคนที่สามารถเข้าถึง GPU เพื่อตรวจจับวัตถุแบบเรียลไทม์ นอกจากนี้ยังมีทางเลือกอื่น ตัวอย่างเช่น TensorFlow เสนอรุ่น Mobilenet ที่มีน้ำหนักเบา (ดูที่นี่) แต่พวกเขามาที่ค่าใช้จ่ายของความแม่นยำลดลง การตรวจจับวัตถุยังมีอยู่ใน iOS/Android แต่พวกเขาเผชิญกับปัญหาเดียวกันที่กล่าวถึงก่อนหน้านี้
วิธีการแก้ปัญหาที่น่าสนใจได้ถูกนำเสนอใน Webrtchacks ฉันทดสอบตัวเองแล้วและใช้งานได้ดี อย่างไรก็ตามโซลูชันนั้นส่งวิดีโอเว็บแคมเป็นชุดของภาพ JPG ที่เข้ารหัสทำให้เกิดการใช้แบนด์วิดท์ที่สำคัญและเวลาแฝงที่ไม่ได้อยู่ในโซลูชันนี้
การตรวจจับวัตถุบนคลาวด์ช่วยลดปัญหาเหล่านี้ ยิ่งไปกว่านั้นเมื่อคุณสามารถเลือก GPU ที่คุณต้องการใช้คุณสามารถใช้เครือข่ายประสาทลึก "หนัก" ได้มากในขณะที่ยังคงใกล้ชิดกับความแม่นยำแบบเรียลไทม์
การอนุมาน/การทดสอบในรุ่นต่อไปนี้ได้รับการตรวจสอบทั้งหมดที่มีเวลาแฝงน้อยกว่า 100 ms เวลาแฝงจะขึ้นอยู่กับตำแหน่งของ Google Cloud Server และที่ที่คุณอยู่ (เพิ่มเติมในภายหลัง)
asyncio ของ WebRTC ที่เรียกว่า AIORTC 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 เป็นสิ่งที่คุณได้รับในขั้นตอนที่ 2https://YOUR_IP_ADDRESS:8889 มันแค่ไหน!อย่าลืมปิด Google Cloud VM ทันทีหลังจากที่คุณทำการทดลองเสร็จแล้วเพื่อหลีกเลี่ยงการใช้เครดิต Google ของคุณและถูกเรียกเก็บเงิน (ถ้าคุณเกินเครดิตของคุณ)