iPhone iOS UIImageカメラフィード上の「レーザーポインター」ドットを検出する方法


9

追跡ロボットのおもちゃを手に入れ、iPhoneでそれを操作しています。ロボットが既知のフレームサイズのライブカメラフィードを出力し、UIImageに表示しています。

レーザーポインターをロボットに追加し、ロボットの軸に沿って固定しました。画像のレーザーポインタードットを検出して、オブジェクトの近接度を計算しようとしています。レーザードットが中心から離れている場合、ロボットが壁に貼り付いており、バックアップする必要があることがわかります。

画面上の明るい白赤のピクセルのドットを検出するにはどうすればよいですか?1つの解決策は、中心の特定の半径内のピクセルの色をサンプリングし、ブロブの明るい色を検出することです。誰かがこの活動のアルゴリズムを提案できますか?

別のアプローチは、最後の数フレームにわたるドットの平均位置を追跡して、推定半径を減らすことです。事前定義された領域内にドットがない場合、検索領域が拡大されることがあります。

最後に、ロボットに周囲のカーペットを検出するように教えたいです。カーペットはレーザーポインターを一定の方法で反射します。ロボットの周りのフレームが同様の特性を持つフレームがいくつあるかを知りたいのです。レーザーポインターが画面のどこにあるかわかっている場合は、その画像から小さな四角形を切り取り、それらを互いに比較できます。複数の小さな画像を互いに比較して、それらのシルエットが一致するかどうかを理解する効率的な方法はありますか?

レーザーが光沢のある表面で反射していることに気付きました。この反射の方向から、屈折の法則に従って、空間での表面の向きがわかります。

ありがとうございました!

レーザーポインターclose

レーザーポインター1


1
レーザーポインターをあるパターンでオンまたはオフにできますか?1つのフレームのように、それはオフになり、次のフレームはオンになり、後続のフレームを差し引いて非常に明確にします。
内部石

それはとても良い考えです!しかし、レーザーポインターをオンまたはオフに制御することはできません。
Alex Stone

@AlexStone私は同様のことを達成しようとしていますが、唯一の違いは目の瞳孔のレーザー光を検出しようとしていることです。opencvでレーザービームを追跡する際にあなたが訴えたiOSコードまたはサンプルコードを手伝ってくれませんか?AJに感謝します。
アムジャ2018

回答:


10

OpenCVはiOS用にコンパイルできます。これは最も効率的ではないかもしれませんが、アルゴリズムを移植するオプションを提供します。ConDensationアルゴリズムを使用して、同様のマーカー追跡問題を実行しました。OpenCVでマーカー追跡を調べます。これは非常に大きな研究領域であり、必要な正確なアルゴリズムはアプリケーションに完全に依存します。私の記憶が正しければ、約3000の画像処理技術が報告されています。良いものを選ぶのは本当の芸術です。

1つの解決策は、中心の特定の半径内のピクセルの色をサンプリングし、ブロブの明るい色を検出することです。誰かがこの活動のアルゴリズムを提案できますか?

ちなみに、これはいわゆるパーティクルフィルターの基本的な考え方です(凝縮はその1つの方法です)。よくやった、あなたは自分で基本的な考えを理解しました!

別のアプローチは、最後の数フレームにわたるドットの平均位置を追跡して、推定半径を減らすことです。事前定義された領域内にドットがない場合、検索領域が拡大されることがあります。

これは状態の永続化と呼ばれ、さまざまな方法でモデル化できます。凝縮アルゴリズムは、単純な古いカルマンフィルターに似た確率論的アプローチを使用します。

複数の小さな画像を互いに比較して、それらのシルエットが一致するかどうかを理解する効率的な方法はありますか?

これはもう少し難しいです。テンプレートマッチングを試すこともできますが、iOSでのテンプレートのパフォーマンスがわかりません(非常に重い計算とiOSカメラはあまり適していません)。


ポール、信じられないほど詳細な答えをありがとう!私はOpenCVフレームワークを入手し、それを使用するプロジェクトの例を探します。
Alex Stone

こんにちは、ポール、openCVを使用してiOSカメラ経由でレーザーを検出するためのサンプルアプリについて何か考えはありますか
AmJa 2018

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.