考察:「文字認識」

by 小山明雄



 YouTubeで「名探偵ポアロ」を見ながら英語の勉強していたとき、ふと、手書きの英文レターに注意が集中しました。こんな文字でも人間には読めるんだ・・・どうしてだろう・・・というような疑問が湧いてきました。それからは、会話はそっちのけで、文字認識アルゴリズムを考えていました。前に、「雫」プロジェクトで、文字認識に挑戦したのですが、なかなか満足な結果は得られませんでした。今思うと、曖昧性への考慮が足りなかったな・・・との気づきがあります。
 
 で、考えたアルゴリズムを記していきたくおもいます。

 
 上図の「aui」という文字の認識で考えてみます。
・「a」は「o」とか「w」とかにも見えます。
・「u」は「ii」とか「m」とか「w」とかにも見えます。
・「i」は「u」とか「l」とか「u」とかにも見えます。
 
 結局、もっともらしい文字を確信度をつけて出力していき、複数の候補から前後関係(前後の図形)を見て、全体的に候補を絞っていき、最後に知識の単語と照らして、もっとも確信度の高いものを決定打とする・・・そんなアルゴリズムになるのかなという思いです。この辺は図形認識に同じです。そこで、今回は若葉で文字認識に再挑戦していくつもりです。
 
 図形の大局的な形から、単語を推定していくだけでも上記のように複数の候補が挙がるわけですが、実際、大きな図形傾向を捉えるにも細かな画素レベルの曖昧性を克服していかねば成りません。そんな細かなレベルでも、大まかな傾向の解析と同じような確信度に基づく投票法を展開していかねばなりません。特徴記号は無数に、詳細から大局まで、様々なレベルであるのです。曲率も角度も点の位置とか跳ねの向きとか、そんなレベルでの解析が画像範囲の取り方で変わってきます。それを管理するには、マップの中に、画素ごとにその画素がどの意味記号に属するかという情報を添付していくことで解決されるでしょう。意味記号範囲はその意味記号が添付された画素の集合として管理されるからです。意味記号分布もマップを解析すれば得られる情報です。「雫」ではそのようにしましたが、まだまだ、解析して得る情報が少なく、意味記号間の関係の解析も不十分でした。当面はスピードを重視せずに、とにかく、文字列を正しく認識することに集中したく思います。





おわり