最寄りのエンジニアリング ライブラリに画像処理、コンピュータ ビジョン、またはマシン ビジョンに関するセクションがある場合、運が良ければそのライブラリには、OCR について私が推奨する書籍のコピーがあります。
Cheriet、Kharma、Liu、および Suen による文字認識システム
この本は、OCR 技術と最近の研究のかなり包括的な概要を提供します。特定の主題について深く掘り下げることはありませんが、学術論文への参照を提供します。
画像処理に関する優れた入門書にアクセスできることを確認してください。ゴンザレスとウッズの本は、多くの大学で標準となっています。
ゴンザレスとウッズによるデジタル画像処理
「単純な」OCR でさえ、すぐに扱いにくくなります。基本的な画像処理の原理をしっかりと把握する前に、ニューラル ネットワークやベイズ定理などのクラスに飛び込むと、圧倒される可能性があります。
可能であれば、手書き文字用のアルゴリズムを作成する前に、機械印刷文字用の OCR アルゴリズムを 1 つ以上作成してみてください。
Q1 : アルゴリズム (またはチュートリアル) はどこにありますか
OCR には多数のアルゴリズムがあります。シェリエの本はあなたに良いスタートを与えるでしょう.
Q2 : 数字の分類方法を教えてください。あまり高度なものは必要ありません。最初に頭に浮かぶのは、上半身と下半身、左半身と右半身の比率を見つけることです。もっと便利で簡単な分類方法はありますか。
その手法を実装してみて、どれだけうまく機能するかを確認してください。実装が思い通りに機能しない場合でも、実装中に学んだ教訓が後で役立つ可能性があります。
文字を 2 x 2 グリッドまたは 3 x 3 グリッドに分割して、相対的なピクセル密度をチェックすることもできます。機械で印刷された文字とは異なり、手書きの文字は直線グリッドにうまく整列しません。
正規化された相関関係を使用したテンプレート マッチングは単純であり、機械で印刷された単一の既知のフォントの文字に対しては十分に機能します。実装は比較的簡単で、学ぶ価値があります:
http://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross-correlation
OCR の場合、最初のステップとしてサンプル内の文字を間引くのが一般的です。細線化は、文字 (またはその他の形状) を 1 ピクセル幅の表現に縮小する手法です。文字を細くすると、線や交点を識別しやすくなります。線 (または曲線) と交差を識別できる場合、1 つの手法は、他の線に対する各線の相対的な位置と角度を調べることです。
一般的な間引きアルゴリズムには、Stentiford と Zhang-Suen があります。これらのアルゴリズムの両方を示す WinTopo のフリーウェア バージョンがあります:
http://wintopo.com/
「脳卒中抽出」に関する学術論文を調べることができますが、それらの手法は実装がより困難になる傾向があります。
Q3 : ほとんどの論文で示されているバック プロパゲーションとレイヤーとは何ですか? 単純な OCR にそれらが必要ですか。
これらの用語は、人工ニューラル ネットワークを指します。単純な OCR アルゴリズムの場合、認識ロジックをハードコーディングするか、単純なトレーニング方法を使用します。人工ニューラル ネットワークは、ソフトウェアでハードコーディングされていない文字を認識するようにトレーニングできます。
http://en.wikipedia.org/wiki/Neural_network
単純な OCR アルゴリズムを作成するために人工ニューラル ネットワークについて学習する必要はありませんが、単純なアルゴリズムは手書き文字では限られた成功しか収めません。
なにより、手書き文字のOCRは非常に難しい問題であることを覚えておいてください。簡単な方法で手書き文字の読解率20%を達成できれば成功です。