OpenCVで画像処理するために、USBを介してRaspberry Jessieに接続したSJ4000カメラを使用して、画像処理を検討しています。私はウェブカメラを使ってかなりの成果を上げましたが、今ではSJ4000の環境に移植する必要がありますが、この障害に悩まされています。画像処理用のSJ4000 + OpenCV + Raspberry Pi
私が使用したコードは、この質問に対する回答と同じです:rotated face detection。
私のラップトップのウェブカメラでは、かなり良いフレームレートが得られます。 SJ4000がUSB経由でノートパソコンに接続されると、良いフレームレートが得られます。しかし、Raspberry Piでは、同じコードを実行すると、何らかの理由でイメージがちょうど凍ってしまいます。私はそれが単に凍っているので、表示するビデオビューアウィンドウを強制的に終了する必要があります。
編集1:Spyder IDEを閉じてもう一度数回ロードした後、同じコードを実行すると、フィードが表示されますが、フレームレートは非常に低く(1フレームあたり2〜3秒)、それはしばらくしてから凍りつくでしょう。
EDIT 2:私は、顔検出コードを含めると、TEN秒遅れがあるため、フィードが表示されるまでに時間がかかります。フィードを処理せずに転送すると、非常に反応します。
この問題を回避するにはどうすればよいですか?よりパワフルなプロセッサを得る唯一の方法はありますか?
ありがとうございました!
最初にビデオフィードを処理せずに.... btwどの解像度の色深度/エンコードとビットレートを使用する必要がありますか?私はラズベリーパイを使用しないが、私の賭けはUSB帯域幅がCPUによって制限されている(DMAなし)。フィードがうまくいけば、どれくらいの計算能力が残っているか見積もることができます。そうしないと大きなボトルネックが発生し、大幅な減速や凍結が発生します。だからあなたがいくつかのfpsを持っているなら、 'T = 1/fps'があなたのタイムスロットです。あなたが実際にCPUからどれくらいの時間を要するかを測定します。もし10%であれば 'T'の90%以下を得て、それに収まる必要があります。 – Spektre
あなたが悪い解像度/エンコーディングを選んだ場合、それは95%カメラから画像を取得するだけで...内部帯域幅にも適合しなければならない – Spektre
@Spektre - 処理せずに試してみたところ、フィードは非常にスムーズです。 1秒間に処理するフレーム数を制限する方法はありますか? –