5

おそらくopenCVを使用して、Boggleボードの文字を認識することに興味があります。文字はすべて同じフォントですが、回転させることができるため、標準のテキスト認識ライブラリを使用するのは少し問題です。さらに、M と W にはそれらを区別するためのアンダースコアがあり、Q は実際には Qu です。画像内の個別の文字を分離できるとかなり確信しています。認識部分をどのように行うのか疑問に思っています。

4

3 に答える 3

6

それは、どれだけ速くする必要があるかによって異なります。文字の正方形を分離して回転させて、文字を含む正方形の辺が水平および垂直になるようにすることができる場合は、次のことをお勧めします。

  • 画像を黒/白に変換します(文字が一方の色で、ダイの残りが他方の色になります)
  • 4 つの可能なすべての方向 (つまり、直立し、90、180、および 270 度回転) のすべての文字の参照画像のデータセットを作成します。
  • cvMatchTemplateなどのテンプレート マッチング関数を使用して、新しい画像ごとにデータセットから最適な画像を見つけます。

これには少し時間がかかるため、最適化は可能ですが、妥当な結果が得られると思います。それらを適切な向きにすることが難しい場合は、新しい入力の回転バージョンをオンザフライで生成し、それらを参照データセットに一致させることもできます。

文字のスケールが異なる場合、次の 2 つのオプションが考えられます。

  • 向きが問題にならない場合 (つまり、ボグル ブロックの検出によってブロックを適切な向きにすることもできます)、文字の色を持つ領域のバウンディング ボックスを、入力画像の縮尺の大まかな指標として使用できます。参照画像の境界ボックスと同じサイズにします (これは参照画像ごとに異なる場合があります)。
  • 向きが問題になる場合は、検索空間のパラメータとしてスケーリングを追加してください。したがって、すべての回転 (0 ~ 360 度) とすべての適切なサイズを検索します (おそらく、画像から適切な範囲を推測できるはずです)。
于 2011-06-24T13:35:14.827 に答える
4

Tesseractのような単純な OCR を使用できます。使い方は簡単で、かなり高速です。ただし、4回のローテーションを行う必要があります(@ jilles de witの回答で述べたように)。

于 2011-06-25T17:15:55.540 に答える
2

OpenCVに基づいて、これを行うiOSアプリを作成しました。それはSnapSolveと呼ばれます。検出の仕組みについてブログを書きました。基本的に、各図形に 26x4 の可能なすべての文字と回転を重ねて、どの文字が最も重なっているかを確認します。これを少し調整して、オーバーレイ画像を滑らかにし、文字がほとんど重なり合っているが完全ではないアーティファクトを取り除きます。

于 2014-05-09T11:55:58.770 に答える