2012-05-04 29 views
5

对于那些有云开发经验的人来说,这个问题可能看起来很愚蠢,但是来自桌面世界,我不能自己弄清楚解决方案。 我有一堆使用opencv的代码,其中一些使用api。云中的OpenCV

问题是,是否有可能在远程服务器上运行opencv(比如说heroku或S3)?
我认为唯一的办法是在代码中发送任何依赖项(并且有很多)?

我是用Python开发的。

谢谢!

编辑:

我的第一个想法是这样的一个: https://github.com/jlengrand/FaceMovie

我开发一个小应用程序自动能够检测人脸图像中,中心他们创造了电影出来。但作为一名计算机工程师,我对云计算中可以完成的一些简单的东西有很多想法。

我意识到数据的传输对于这类事情可能是巨大的,并且您可能比我更好地回答这些事情是否可行。

我在想办法通过降低从云上某个地方拍摄图像的图像质量来“减少”这个有效载荷? (picasa相册,...)

让我知道,我实际上对任何可能性都是开放的。

+1

你构建web应用程序或者你只是想处理云做了什么? – Sharun

+0

那么基本的想法是,我想转移我在云计算机上可以做的事情。因此,这将是一个Web应用程序 – jlengrand

+0

我打算建议App Engine作为其基于Python的和易于使用,但我只是看看opencv安装页面,我认为有一个依赖Numpy需要C库appengine可能不允许你上传。如果你的代码没有使用任何numpy调用appengine也许是一个选项。 – Sharun

回答

3

它绝对有可能。对于Python中的web服务,Piston是我的目标。从那里,你需要将它部署在某种网络服务器上。如果您在EC2上部署,则可以使用bitami AMI preconfigured with Django and Apache.当然,您需要apt-get安装opencv ubuntu软件包。

现在,考虑到所有这些,使用web服务“在云端”执行此操作可能会也可能没有意义。您需要传输想要处理的图像,可能需要通过HTTP POST进行处理,因此需要一些时间和带宽。根据您想要返回的内容,您可能还会返回大量数据,这会有自己的成本。您可以与我们分享您的应用程序的功能吗?如果我知道你想要完成什么,我可以提供更好的建议。

正如你所说,Ubuntu的OpenCV包已过时。如果您需要更新的内容,我发现其易于安装ROS,其中包括OpenCV 2.3及其依赖关系。

+0

Hey Nont,thqnks您的评论。事情是,在Ubuntu下可用的opencv软件包waaay过时了,我真的需要一些更新的版本。我仍然可以在主机上编译它,并尝试以这种或那种方式发送它。 – jlengrand

+0

你是对的。如果你需要一个更新版本的OpenCV,你可以自己编译它。过去我使用过的一种更简单的方法是安装ROS。 (我已经更新了我的答案,包括这个。) – nont

+0

那么你的选择会选择EC2?你对heroku有什么想法? – jlengrand

1

您应该尝试Windows Azure。它是运行c/C++的唯一PAAS(没有“服务器”的云)。

如果需要某些命令来安装它,可以使用startup tasks

至于视频流,可以打开一个套接字(使用TCP端点)和流视频长达一个蔚蓝的实例方法。如果你想要实时视频处理,这可能是最有效的方法。如果您想录制视频并上传,请使用blob storage。然后,您可以使用消息队列向工作人员发信号通知有一个视频正在等待处理。

信用:How do I install OpenCV on Windows Azure?