2017-08-22 33 views
0

ビデオ処理パイプラインを構築したいと思います。意味私は入力として1つのウェブカメラストリームを持っており、私はそれに顔検出や認識などの処理をしています。複数の処理があり、並列処理が可能です。これらは現在の基本的なユースケースですが、将来的には成長します。ビデオ処理パイプライン

私はそれを生きたい、私はできるだけ早く私の処理の結果が欲しいです。

Java/Springの世界から来て、私はSpring Cloud Data Flowを見ました。

私の質問:Springクラウドのデータフローは、このユースケースに適していますか? Source/Processor/Sink間の通信は、RabbitまたはKafka Binderのどちらかを介して行われることがわかりました。彼らは画像/ビデオメッセージを扱うだろうか?または、他のバインダーがうまく収まるでしょうか?

答えて

3

まあ、それは本当にあなたがあなたのコンポーネントを作成する方法によって異なり、短い答えは、はい、それはそれのために使用することができますされ

おかげで、実際の問題として、私たちは実際にこのためにそれを使用して非常に大規模な顧客を持っています使用事例。

適切なハードウェアと構成であれば、SCDFは1秒間に数十万件のメッセージを処理します。それは水平スケーラビリティをサポートするために作られているので、何らかの形でキャプチャされたビデオフレームを分割して、OpenCVやTensorFlowなどのフレームワークで解析するために各イメージをプロセッサに送ります。実際には非常に一般的な使用例です。

kafkaから始めるほうがよいでしょう。なぜなら、データがメモリ内のキューを扱うウサギにとってあまりにも大きいかもしれないからです。そのため、ディスクに書き込むブローカが適しているかもしれません。

さらに、ビデオキャプチャロジックとプロセッサを作成し、DSLを使用してそれらを結びつけるだけでよいのです。

+1

@ Bertrand88:+1はViniciusの推薦です。カフカから始まり、あなたの道を進んでください。私たちはSpring XD(従来のデザイン、SCDFの前身)でサポートしていた['videocap'モジュール](https://github.com/spring-projects/spring-xd-modules/tree/master/videocap)を使用していました。リファレンスとして利用できますが、もちろんSpring Cloud Stream [プログラミングモデル](http://docs.spring.io/spring-cloud-stream/docs/Chelsea.SR2/reference)ごとに再実装する必要があります/htmlsingle/index.html#_programming_model)。 –

+0

参照としても使用する[out-of-the-box apps](https://github.com/spring-cloud-stream-app-starters/)のすべてがここにあります。新しいアプリをOSS /コミュニティに寄付することは素晴らしいことです。 –

+0

Thanks @ vinicius-carvalhoとsabby-anandan! この非常に大規模な顧客とユースケースで共有できる情報はありますか? 私はそれを試してみましょう。しかし、カフカがディスクに画像を書き始めるとほぼリアルタイムの処理になると想像して困っています...カフカのパラメータを調整してメモリに保存し、最後の手段としてディスクに書き込む必要があります。 videocapモジュールがSCDFで再実装されていない理由は何ですか? – Bertrand88

関連する問題