16

写真から数独パズルを抽出するAndroidアプリを書いています。9x9数独グリッドの各セルについて、1から9までの数字のいずれかが含まれているか、空白であるかを判別する必要があります。私はこのような数独から始めます:

ここに画像の説明を入力してください

OpenCVを使用して数独を前処理し、個々の数字の白黒画像を抽出してから、それらをTesseractに通します。ただし、Tesseractにはいくつかの制限があります。

  1. Tesseractは大きく、私が必要としない多くの機能(つまり、全文認識)が含まれており、機能するには英語のトレーニングデータが必要です。これは、デバイスのSDカードに保存する必要があると思います。少なくとも、を使用して数字のみを検索するように指示できますtesseract.setVariable("tessedit_char_whitelist", "123456789");
  2. Tesseractは、多くの場合、1桁を数字の文字列と誤解し、多くの場合、改行を含みます。それは時々単にそれを間違えるだけです。上記の数独の例をいくつか示します。

ここに画像の説明を入力してください

私は3つの質問があります:

  1. Tesseractの制限を克服する方法はありますか?
  2. そうでない場合は、 Androidに実装できる個々の数字(k最近傍ではない)を検出するための便利で正確な方法は何ですか?これは無料のライブラリまたはDIYソリューションである可能性があります。
  3. そのメソッドを対象とする前処理をどのように改善できますか?私が検討した1つの可能性は、この投稿で提案されているように、間引きアルゴリズムを使用することですが、違いが生じない限り、わざわざ実装するつもりはありません。
4

2 に答える 2

12

私は、数字認識アルゴリズムのランキングでトップだった/トップにいるコンピュータービジョンのスーパースターの1人と一緒にクラスを受講しました。彼は、数字認識を行うための最良の方法は...

1. Get some hand-labeled training data.
2. Run Histogram of Oriented Gradients (HOG) on the training data, and produce one
    long, concatenated feature vector per image
3. Feed each image's HOG features and its label into an SVM
4. For test data (digits on a sudoku puzzle), run HOG on the digits, then ask 
    the SVM classify the HOG features from the sudoku puzzle

OpenCVには、HOG機能HOGDescriptorを計算するオブジェクトがあります。HOG機能パラメータを調整する方法に関するアドバイスについては、このペーパーを参照してくださいすべてのSVMライブラリがその役割を果たします... OpenCVに付属しているものは問題ないはずです。CvSVM

トレーニングデータには、MNIST手書き数字データベースを使用することをお勧めします。このデータベースには、グラウンドトゥルースデータを含む何千もの数字の写真があります。

少し難しい問題は、自然界に現れる数字の周りにバウンディングボックスを描くことです。幸いなことに、バウンディングボックスを実行するための戦略をすでに見つけているようです。:)

于 2012-11-10T06:21:08.617 に答える
1

最も簡単なのは、数字の認識に正規化された中心モーメントを使用することです。1つのフォント(または非常によく似たフォント)がある場合は、うまく機能します。

このソリューションを参照してください: https ://github.com/grzesiu/Sudoku-GUI

コアには、数字の認識、抽出、モーメントトレーニングを担当するものがあります。アプリケーションを初めて実行するとき、オペレーターは表示される番号に関する情報を提供する必要があります。次に、画像のモーメント(抽出された正方形のROI)が数値(オペレーター入力)に割り当てられます。モーメントの比較に基づくアプリケーションベース。

ここで最初のYouTubeムービーは、アプリケーションがどのように機能するかを示しています: http ://synergia.pwr.wroc.pl/2012/06/22/irb-komunikacja-pc/

于 2012-11-10T09:35:35.217 に答える