新規記事投稿
フォロー記事投稿
記事のキャンセル
From: Akitaka HOSOMI
<hosomi@ga2.so-net.ne.jp>
Subject: スタンプ印字された文字の読み取り方法( 試案 )
Date: 1998/08/06 05:58:01
[ 夏休みの自由研究 ]
ダンボール箱にスタンプ印字( 要するに、ゴム印だ )された文字を、 CCD カメラ
を使って、画像としてパソコンに取り込み、これを読み取る方法を検討してみる。
具体的には、みかんのダンボール箱などにスタンプで押された階級文字を例として
考えてみる。みかんの階級表示は、S , M , L , 2L などの文字を使うよね。
スタンプ印字に特有の問題として、
1. 取り込んだ画像内で正確な位置に文字が印字されているとは、限らない
( つまり、印字位置はイイ加減なのだ )
2. 読み取り対象となる文字以外に、予めダンボールに印字された図形など
が、取り込んだ画像内に存在する。
3. インクの量が少ない場合は、文字のカスレ、多い場合は、文字の汚れが
発生する
4. スタンプのアタリが悪いと、印字された文字の部分的な欠けが発生する
これだけ、不利な条件が揃うと、まじめなプログラマなら、パソコンに文字を読み
取らせるなどというバカなことは考えず、別の方法を採用する筈だ。
特に、 1.に加え、 2.の条件は、全く致命的で、読み取るべき文字を探すだけで、
骨が折れる。さらに、 3.や 4.が加われば、これは、もう、非常識の極みである。
-------------------------------------------------------------------------
# まぁ、ブゥたれてても始まらないので、適当に知恵をしぼる ....
[ フーリエ変換法( 試案 ) ]
取り込んだ画像を適当にサンプリングして、濃度( ピクセルの明るさだ )について
の実数列 Sn を作る。
※ ここで、Sn の n という表記については、特に意味はなく、
数列であることを表しているに過ぎない
( つまり、Index として使っているわけではないのだ )
この実数列 Sn に対して FFT を行なう。これを FFT( Sn )とする。
フーリエ変換の性質から、FFT( Sn )は、周波数領域で、パワースペクトルと位相
成分を与える。
さて、Sn の位相( つまり、印字位置のズレだ )は、 FFT( Sn )では、位相成分と
して表現される。つまり、同じ文字なら、印字位置によらず、パワースペクトルは、
同じ特徴を持つことになる。
これで、1. の問題は、基本的にクリアできるだろう。
次に、2. の 予めダンボールに印字された図形 を Gn とする。
このとき、文字と組み合わせた画像表現は、概ね、
Sn + Gn
と書ける。
Sn と Gn は、相対的な位置関係にズレを持つため、画像内で、この Gn を除去し、
直接 Sn のみを取り出すことは難しい。
ところで、これの FFT は、フーリエ変換の線型性から
FFT( Sn + Gn ) = FFT( Sn ) + FFT( Gn )
と、周波数領域では、それぞれの和の形に分解できる。
基準文字についての FFT( Sn ) や 不要な図形についての FFT( Gn )、 これらの
パワースペクトルは、予め、おおまかに知っておくことができる。
また、相対位置のズレについても、前述のように FFT( Sn )、 FFT( Gn ) の位相
成分として、現れる。
そのため、文字とそれ以外の不要な図形とに周波数領域で分離することは、簡単かも
知れない。
残りは、 3. と 4. だ。
文字のカスレ、汚れ、欠けなどは、基準文字( キレイに印字された文字 )に対して、
適当なフィルタをかけて、基準文字を歪ませたモノだと考えられる。
とすると、このフィルタリング( Ht )は、画像についての畳み込みとして、
Sn * Ht
と書ける( ただし、* は畳み込み演算を表す )。
これの FFT は、フーリエ変換の性質から、
FFT( Sn * Ht ) = FFT( Sn ) × FFT( Ht )
と、周波数領域では、積の形になる。
このままでは、分離し難いので、これの対数をとると、
log( FFT( Sn ) × FFT( Ht ) ) = log( FFT( Sn ) ) + log( FFT( Ht ) )
和の形に書けるので、何やら光明が見えてくる。
この後、逆 FFT を行ない、実際に log( FFT( Ht ) ) を切り離すことができるなら、
楽しい世界が待っていたりもする。
フィルタの周波数成分との違いを際立たせるために、予め、画像に対して、軽くロー
パスフィルタなどをかけておいた方が良いかも知れない。
# 実際にやってみないと、判らない面はある。
以上の方法で、1. 2. 3. 4. の問題をクリアできるなら、認識すべき文字種が限られ
ることから、文字を読み取って判断することは、たやすい。
-------------------------------------------------------------------------
♪ 揺れながら、あつく、Moon Light Dance が、最近のお気に入り。