2012-05-04 6 views
5

クラウドの開発経験者にとっては疑問に思えるかもしれませんが、デスクトップの世界から来ている私は、自分自身で解決策を見つけられません。 私はopencvを使用してコードを大量に持っていますが、そのうちのいくつかにはapiが付いています。OpenCV in the cloud

質問ですが、リモートサーバ上でopencvを実行することは可能でしょうか(herokuやS3と言えば)?
コード内に依存関係を送信する唯一の方法があると思います。

私はPythonで開発しています。

ありがとうございます!

EDIT:

私の非常に最初のアイデアは、このいずれかになります。 https://github.com/jlengrand/FaceMovie

私は、画像中の顔を検出し、それらを中心とそこからムービーを作成して、自動的にできる小さなアプリケーションを開発しています。 しかし、コンピュータエンジニアとして、私はクラウドで行うことができる簡単なもののアイデアをたくさん持っています。

私は、この種のものではデータの転送が巨大である可能性があることを認識しています。

私はこのペイロードを "減らす"方法を考えていました。イメージを撮影した画像の品質をクラウドのどこかから減らしていますか? (ピカサのアルバム、...)

私には、実際にはかなりの可能性があります。

+1

ウェブアプリケーションを構築しているのですか、それともクラウドで処理するだけですか? – Sharun

+0

基本的な考え方は、クラウド内の自分のコンピューター上でできることを転送したいということです。これはWebアプリケーションのためのものです – jlengrand

+0

私はApp EngineをPythonベースの使いやすいものとして提案していましたが、opencvのインストールページを見てみました.Numpyに依存していると思うCライブラリが必要ですアップロードを許可しない可能性があります。あなたのコードがnumpy呼び出しを使用していない場合は、おそらくオプションのappengineを呼び出します。 – Sharun

答えて

3

間違いなく可能です。 PythonのWebサービスについては、Pistonが私のgo-toです。そこから、あなたは何らかの種類のウェブサーバー上にそれを展開する必要があります。 EC2にデプロイする場合は、bitami AMI preconfigured with Django and Apache.を使うことができます。もちろん、opencv ubuntuパッケージをapt-getする必要があります。

これで、Webサービスでこれを「クラウド内で」行うことは意味をなさないかもしれません。おそらくHTTP POSTを介して、処理したい画像を転送する必要があります。そのため、時間と帯域幅が多少必要になります。あなたが返すものに応じて、多くのデータが戻ってきて、独自のコストがかかるかもしれません。あなたのアプリケーションが何をするのか分かりますか?あなたが達成しようとしていることが分かっていれば、より良いアドバイスを提供することができました。

ご存知のように、ubuntu OpenCVパッケージは古くなっています。もっと最近のものが必要な場合は、とその依存関係を含むROSを簡単にインストールできることが分かりました。

+0

コメントはありません。つまり、ubuntuで利用可能なopencvパッケージは古くなっており、実際には新しいバージョンが必要です。私はまだそれをホスト上でコンパイルすることができますし、それを一方向に送信しようとします。 – 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?