【问题标题】:Webcam in a GCP Jupyter NotebookGCP Jupyter Notebook 中的网络摄像头
【发布时间】:2020-04-15 23:02:40
【问题描述】:

我正在尝试使用 GCP Jupyter Notebook 进行一些实时网络摄像头视频处理。 我尝试了一些解决方案,包括下面我使用 openCV 但 openCV 根本不会读取它的解决方案。 我认为问题在于首先将网络摄像头视频源流式传输到虚拟机中,我不知道该怎么做。

有这个小部件吗? 附言还尝试了 ipywidgets ipywebrtc,但没有成功。

我这样做的原因是我的笔记本电脑不支持我的程序所需的 CUDA。

import cv2
from IPython.display import clear_output
import time
import PIL.Image
from io import StringIO
import IPython.display
import numpy as np
from IPython.display import HTML, Audio
from base64 import b64decode
import numpy as np
import io

VIDEO_HTML = """
<video autoplay
 width=%d height=%d style='cursor: pointer;'></video>
<script>

var video = document.querySelector('video')

navigator.mediaDevices.getUserMedia({ video: true })
  .then(stream=> video.srcObject = stream)

var data = new Promise(resolve=>{
  video.onclick = ()=>{
    var canvas = document.createElement('canvas')
    var [w,h] = [video.offsetWidth, video.offsetHeight]
    canvas.width = w
    canvas.height = h
    canvas.getContext('2d')
          .drawImage(video, 0, 0, w, h)
    video.srcObject.getVideoTracks()[0].stop()
    video.replaceWith(canvas)
    resolve(canvas.toDataURL('image/jpeg', %f))
  }
})
</script>
"""

#Code doesnt work
cap = cv2.VideoCapture(display(HTML(VIDEO_HTML % (256,256,0.8))))
cap1 = VideoRecorder(stream=display(HTML(VIDEO_HTML % (256,256,0.8))));

【问题讨论】:

    标签: python google-cloud-platform jupyter webcam


    【解决方案1】:

    您的问题确实是如何让网络摄像头视频源流式传输到虚拟机中。 GCP Jupyter Notebooks 在其后端有一个 VM 实例,所以问题是如何将您的视频数据流传输到后端 VM。

    要解决这个问题,你需要做两件事:

    第一个是您计算机中的服务器,用于从网络摄像头获取视频。我找到了这个 github repo [1] 来创建一个 RTSP 服务器。

    第二个是进入 GCP 中的 VM 实例并配置一个 RTSP 客户端,该客户端侦听正在发送视频的服务器端口。然后在您的笔记本中,您需要读取来自服务器(您的笔记本电脑)的这些数据。

    还有其他方法可以做到这一点,例如,如果您的网络摄像头是 IP 摄像头(如果不是,您也可以这样做),您可以通过 http 发送视频,然后在您的虚拟实例中创建一个 http 服务器,然后您可以在那里推送(我不知道是否实时)视频流。我一直在调查 opencv 是否已经实现了这个,但我不确定。我会多搜索一下来检查一下。

    请注意,将实时视频从网络摄像头接收到 AI 笔记本并非易事。一定要有视频直播吗?

    [1]https://github.com/revmischa/rtsp-server

    【讨论】:

      猜你喜欢
      • 2021-05-10
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多