私がこれをまっすぐにすると、あなたのオブジェクトは次のようになります。
- A4で印刷可能
- 4メートルまで認識可能
- 回転不変性はそれほど重要ではありません(ユーザーが電話を+/-直立させたままにすることを想定しています)
大きなチェックボードを印刷し、カラーマッチングとコーナー検出を組み合わせて使用することをお勧めします。さまざまな組み合わせを試して、さまざまな距離で何がより速く、より堅牢であるかを確認してください。
色: 1つのチャネルのみで作業する場合は、赤/緑/青*で印刷してから、それぞれのチャネルでのみ作業できます。これにより、すでに多くのフィルタリングが行われ、「無料」でコントラストが向上します。それ以外の場合、ヒストグラムの逆投影は私の経験では非常に高速です。ここを参照してください。
また、RGB +黒の正方形が4つしかない場合(画像を参照)、すべての赤の輪郭を簡単に取得して、正しい隣接色(右側の青のパッチと緑のパッチ)があるかどうかを確認できます。その下、両方ともほぼ同じエリア。これだけでも十分に堅牢であり、各ステップで1つの特定のチャネルにのみアクセスするため、1つのチャネルで作業するのと同じです(赤で輪郭を検索し、青で右をチェックし、下を緑でチェックします)。
誤検知が多い場合は、コーナーを使用してヒットをフィルタリングできます。例の画像では、すでに9つのコーナーがあります。実際、チャネルを分離するとさらに多くのコーナーがあります。十分でない場合は、コーナーを増やすために、いくつかの正方形で真のチェッカーボードを作成できます。誤検知を拒否するには、ROIで検出されたコーナーの数を確認するだけで十分です。そうでない場合は、検出されたx方向とy方向のコーナーの間隔が均一(つまりグリッドを形成)であることを確認することもできます。
コーナー:コーナーの検出は非常に調査されており、ここにはいくつかの方法があります。それぞれがどれほど効率的かはわかりませんが、十分に高速であり、色に基づいてROIを減らした後は、これは問題にはなりません。おそらく最も簡単なのは、角を見つけるために十字で単純に侵食/拡張することです。ここを参照してください。最初に画像にしきい値を設定して、おそらく上記の色に基づいてバイナリマップを作成することをお勧めします。ハリス検出器などの他のコーナー検出器は十分に文書化されています。
ああ、私はHaar分類子の使用をお勧めしません。トレーニングのための膨大な量の作業は言うまでもなく、不必要に複雑でそれほど高速ではないようです(ただし、複雑なオブジェクトに対しては非常に堅牢です。つまり、独自のパターンを使用できない場合)。