Django-OpenCV:需要处理时如何提供视频?

vwr*_*bel 5 python django video opencv django-rest-framework

我正在从事一个Web项目,该项目旨在使用户能够上传视频,训练机器学习算法以检测和跟踪视频中的某些对象,检索(流式传输或下载)包括跟踪框的视频。

我的计算机视觉程序基于带有Python 3.5的OpenCV 3.1。对于给定的视频,许多操作(渐变,高斯金字塔等)都意味着从视频中捕获帧并将其作为图片或视频发送给用户。

我想找到一种托管视频的有效方法。

目前,我正在开发React / Redux前端,并在后端使用Django Rest Framework。我当时在考虑使用Media Hosting Service在需要OpenCV处理时将视频提供给前端用户和Django服务器。

一个用例示例-跟踪视频上的感兴趣区域:

  1. 用户将他的视频上传到媒体托管服务器,
  2. Django服务器下载视频,
  3. 我的OpenCV应用提取了特定的帧,
  4. 框架通过REST API传递到前端,
  5. 用户选择要跟踪的感兴趣区域,
  6. ROI通过API传递到后端,
  7. 我的OpenCV应用处理每个帧以跟踪ROI…
  8. …并渲染视频…
  9. …与一起上传到媒体托管服务器,
  10. 用户可以通过媒体托管服务器跟踪其流媒体视频。

单击此链接以查看相应的流程图。

典型的视频将是5-20 Mb。最多会有数十个用户查看此项目,但我想找到一个可扩展的解决方案。

我是提出服务问题的新手,所以我想从知道这一点的人那里得到一些意见,并避免建立在不稳定的基础上。

我希望收到您关于我所提供的解决方案的可行性以及更好的替代方案的消息。

当服务器端需要进行某些处理时,提供视频的最佳方法是什么?

谢谢您的帮助。