3

私は現在、テーブルの上にある紙を認識するカメラアプリのプロトタイプを構築しています。これに関する手がかりは、リアルタイムで認識を行う必要があるということです。そのため、カメラのビデオ ストリームをキャプチャします。これは、iOS 5 では AV Foundation で簡単に実行できます。私はここここを見ました

彼らはそこで基本的な物体認識を行っています。

このリアルタイム環境で OpenCV ライブラリを使用すると、パフォーマンスが向上しないことがわかりました。

したがって、OpenCV を使用せずに画像のエッジを決定するアルゴリズムが必要です。

これを行う方法を説明したり、私を正しい方向に向けたりするサンプルコードスニペットを持っている人はいますか?

どんな助けでも大歓迎です。

4

2 に答える 2

10

iOS の現在の Core Image 実装では、これを行うことはできません。コーナー検出には、Core Image がまだサポートしていない操作が必要になるためです。ただし、必要な機能を備えたGPUImageというオープン ソース フレームワークを開発してきました。

オブジェクトのコーナーを見つけるには、GPU で高速化されたハリス コーナー検出アルゴリズムの実装を使用できます。特定のアプリケーションで動作するように、しきい値、感度、および入力画像サイズを微調整する必要がある場合がありますが、シーンで見つかった紙片の角を返すことができます。

ハリスコーナー

また、そのシーンの他のコーナーも検出するため、バイナリしきい値操作またはその後の処理を使用して、どのコーナーが長方形の紙に属し、どのコーナーが他のオブジェクトに属しているかを識別する必要がある場合があります。

興味があれば、 Signal Processingでこれが機能するプロセスについて説明しますが、これをアプリケーションで使用するには、GitHub から GPUImage の最新バージョンを取得し、GPUImageHarrisCornerDetectionFilter を GPUImageVideoCamera インスタンスのターゲットにするだけです。次に、このフィルターから返されたコーナー配列を処理するためのコールバックを追加するだけです。

iPhone 4 では、コーナー検出プロセス自体は 640x480 ビデオで ~15 ~ 20 FPS で実行されますが、現在の CPU バウンドのコーナー集計ルーチンでは ~10 FPS まで遅くなります。私はそれをはるかに高速な GPU ベースのルーチンに置き換えることに取り組んでいます。iPhone 4S は現在 20 ~ 25 FPS ですべてを処理しますが、ここでも速度を大幅に改善できるはずです。願わくば、それがアプリケーションのリアルタイムに十分近いと見なされることを願っています。

于 2012-05-16T17:25:25.357 に答える
2

私はブラッドのライブラリ GPUImage を使用してそれを行います。結果は完璧ですが、十分です。

検出されたハリス コーナーの中から、次のように選択します。

  • シートの左上隅の左上の最大値
  • シートの右上隅の右上にある最大

@Mirco - より良い解決策を見つけましたか?

@Brad - スクリーンショットで、Harris フィルターのどのパラメーターを使用して、5 つのコーナーのみを検出しますか? 私はそれよりもたくさん持っています...

于 2012-06-21T10:33:02.763 に答える