【问题标题】:Access clients webcam from Flask server从 Flask 服务器访问客户端网络摄像头
【发布时间】:2016-06-14 16:09:13
【问题描述】:

我正在做一个人脸识别项目,使用 Flask 作为我在 Ubuntu 14.04 机器上运行的 Web 服务器。我使用 OpenCV 2.4.9 作为我使用 Python2.7 编写的图像处理软件。我希望能够通过他们的浏览器访问客户端网络摄像头,以从网络摄像头流中捕获图像或帧并将其发送回服务器进行处理。是否有一种简单的方法使用 python 来访问客户端网络摄像头,或者是否可以将 JavaScript 与我当前的代码结合使用。

【问题讨论】:

  • 如果您觉得答案有帮助,请将其标记为已接受;)

标签: python-2.7 opencv flask face-recognition


【解决方案1】:

我假设您对特定实现细节的应用程序架构决策更感兴趣。您需要为此应用程序使用客户端服务器端

客户端是带有 javascript 的 html 页面,它将从网络摄像头捕获图像。互联网上有很多关于这个主题的资源。 This article 用一些例子解释了它是如何工作的。我建议使用一些 javascript 库like this one

接下来是决定客户端应用程序和服务器端如何传输图像数据。如果您想将网络摄像头视频流式传输到服务器,进行一些计算并将数据流式传输回客户端应用程序,WebSockets 是您的朋友。这个tutorial 描述了如何为 websockets 设置烧瓶应用程序。

更简单的方法是将POST图像数据发送到服务器,进行一些计算并响应客户端。这种方法的缺点是它不适合连续视频处理。但是您可以将其用于单个视频帧处理。否则你会用请求淹没你的服务器。

最后要决定的是在服务器端对图像进行多少处理。如果您要进行一些需要很长时间的大量计算,我建议将celery 用于后台任务。 但是这会大大改变架构。

对于概念证明,我建议您遵循。使用网络摄像头拍摄单张图像,将其发布到服务器,对图像进行快速计算,然后根据您计算的内容做出响应。

祝你好运。

【讨论】:

  • 上面的信息很棒,它确实清楚地说明了如何解决问题。我最终在回复之前找出了解决方案,并使用了 WebcamJS 库和 Post 方法将数据发送到服务器。这一切都可以与 Flask、Python 和 OpenCV 结合使用。
  • webrtc 如何符合您的描述?
  • 引用的网络摄像头 js 库现在处于维护模式。 github.com/jhuckaby/webcamjs大家好! WebcamJS v1.x 将于 2017 年 2 月 11 日进入维护模式。这个 SO 问题有一个更新的解决方案。
猜你喜欢
  • 2017-08-23
  • 2017-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
相关资源
最近更新 更多