以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
<1.第1実施形態>
図1を参照しながら、第1実施形態について説明する。図1は、第1実施形態に係る情報処理装置の一例を示した図である。なお、図1に例示した情報処理装置10は、第1実施形態に係る情報処理装置の一例である。
図1に示すように、情報処理装置10は、記憶部11、及び演算部12を有する。
記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置、或いは、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置である。また、演算部12は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。但し、演算部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路であってもよい。演算部12は、例えば、記憶部11又は他のメモリに記憶されたプログラムを実行する。
記憶部11は、二値化の対象となる画像P0を記憶する。画像P0は、文字を含む被写体TGの撮像画像である。なお、画像P0のうち、文字を含まない領域を第1の領域、文字を含む領域を第2の領域RCと呼ぶことにする。つまり、第1の領域は、画像P0のうち第2の領域RC以外の領域である。なお、第2の領域RCは、予め画像P0内に位置が設定されているか、或いは、文字の位置などから検出可能である。また、文字の位置は、エッジ検出の結果などに基づいて推定することができる。
演算部12は、画像P0中の影領域RSのうち文字を含まない第1の領域に設定された複数の第1の画素列R11、R12の輝度に基づいて影領域RSの輝度勾配を計算する。影領域RSは、被写体TGを撮像する際に生じた影の影響により濃度が増大した領域である。影領域RSは、例えば、クロージング処理などを用いて検出することができる。
クロージング処理とは、画像P0をm×m画素のブロックに分け、ブロック内の最大輝度でブロック内の全画素の輝度を置き換える膨張処理と、ブロック内の最小輝度でブロック内の全画素の輝度を置き換える収縮処理とを繰り返し実行する処理である。但し、mは2以上の数である。クロージング処理により文字の線は消え、ある程度の大きさを持つ濃度の高い連続した領域だけが得られる。クロージング処理により得られた濃度の高い領域のエッジを検出することで、影領域RSを特定することができる。
第1の画素列R11、R12は、第1の領域のうち、上記の影領域RSに含まれる画素列である。図1の例((A)を参照)では、第1の画素列R11が第2の領域RCの上側に設定され、第1の画素列R12が第2の領域RCの下側に設定されている。また、第1の画素列R11、R12は、第1の領域と第2の領域RCとの境界に接する位置に配置されている。なお、以下では簡単のために図1の例に沿って説明を進めるが、第1の画素列R11、R12の設定方法はこの例に限定されない。
演算部12は、例えば、図1の(B)に示すように、第1の画素列R11、R12の各画素が有する輝度を利用して影領域RSの輝度勾配を計算する。例えば、演算部12は、第2の領域RCと影領域RSとが重なる領域内の画素列(以下、第2の画素列R2n)に注目し、第2の画素列R2nの位置における影領域RSの輝度勾配を計算する。影領域RSの輝度勾配は、影の影響により生じた濃度勾配であり、被写体TGに文字を含まないと仮定した場合に得られる輝度勾配である。
第2の画素列R2nの位置における影領域RSの輝度勾配は、図1の(B)に示すように、第1の画素列R11、R12のそれぞれと第2の画素列R2nとの距離d1、d2に基づいて第1の画素列R11、R12の画素が有する輝度から計算される。例えば、第1の画素列R11、R12上の画素Px1、Px2がそれぞれ有する輝度を距離d1、d2に基づいて按分した値を第2の画素列R2nの位置における輝度の推定値とする。つまり、推定値の集合が第2の画素列R2nにおける影領域RSの輝度勾配となる。
図1の(B)に示すように、第2の画素列R2nの位置における影領域RSの輝度勾配を示す輝度の分布はグラフGS(R2n)により表現される。一方、第2の画素列R2nの位置における輝度の分布は、図1の(A)に示すように、グラフG(R2n)により表現される。影領域RSの輝度勾配があるため、ある輝度を閾値に設定してグラフG(R2n)に基づく輝度の閾値判定を行うと、文字部が背景部の輝度と判定されたり、背景部が文字部の輝度と判定されたりする可能性がある。
そこで、演算部12は、計算した影領域RSの輝度勾配を打ち消すように影領域RSのうち文字を含む第2の領域RCの輝度を補正する。つまり、演算部12は、図1の(A)に示したグラフG(R2n)から図1の(B)に示したグラフGS(R2n)を減算する処理に相当する補正処理を実行する。この補正処理を実行すると、第2の画素列R2nの位置における輝度の分布は、図1の(C)に示したグラフGM(R2n)のように補正される。演算部12は、影領域RSが重なる第2の領域RC内の各画素列(R21、…、R2N)について上記の補正を実行する。
そして、演算部12は、補正後の第2の領域RCの輝度分布に基づいて画像P0の二値化に用いる閾値Thを決定する。上記の補正により影領域RSの輝度勾配が抑制されているため、補正後の第2の領域RCの輝度分布を示すヒストグラムは、図1の(D)に示すように、文字部と背景部とが分離されたものとなる。そのため、演算部12は、文字部の山と背景部の山との間に位置する輝度を閾値Thに決定する。例えば、文字部のピークと背景部のピークとの中間に位置する輝度が閾値Thに決定される。
上記のように、文字を含まない第1の領域の画素列から影領域RSの輝度勾配を推定し、その推定値を利用して第2の領域RCの輝度を補正することで、影の濃度勾配による影響を抑制することができる。上記の方法では、第1の領域に含まれる複数の画素列を用いて影領域RSの輝度勾配を推定しているため、影の濃度勾配の方向によらず、その影響を抑制することができる。
影の濃度勾配による影響が抑制されることで文字部と背景部とを分離する好適な閾値を決定することが可能になる。さらに、決定した閾値に基づく閾値判定により、影領域RSの輝度勾配を抑制した画像P0から二値化画像を生成することで、正しく文字部の形状を表した二値化画像が得られる。その結果、文字認識の精度向上に寄与する。
以上、第1実施形態について説明した。
<2.第2実施形態>
次に、第2実施形態について説明する。
[2−1.システム]
以下、第2実施形態に係る技術を適用可能なシステムの例について説明する。
(車番認識システムについて)
図2を参照しながら、第2実施形態に係る技術を適用可能なシステムの一例として、車番認識システムについて説明する。なお、図2は、第2実施形態に係る車番認識システムの一例を示した図である。
図2に示すように、車番認識システムは、被写体51を撮影する撮像装置52、及び撮像装置52が撮影した画像の処理を実行する画像処理装置100を含む。撮像装置52は、例えば、自動車やバイクなどの被写体51に設置されたナンバープレートを含む領域NRを撮影する。領域NRの画像(以下、入力画像)は、画像処理装置100に入力される。画像処理装置100は、入力画像からナンバープレートに含まれる文字、数字、記号など(以下、単に文字と称する。)を認識する。
文字認識の精度は、画像に含まれる文字の鮮明度に依存する。例えば、図2に示すように、被写体51の一部LR(例えば、バイクのテールランプなど)の影が領域NRにかかる場合、入力画像に含まれる文字が影の影響で不鮮明になる。また、光を透過する部材の影は、入力画像に濃度勾配を発生させる。影に起因する濃度勾配の方向は、光源と領域NRとの位置関係や影を作る部材の材質及び形状などにより変化する。画像処理装置100は、このような影の影響を抑制して文字認識の精度を向上させる。
(ナンバープレートの文字認識について)
ここで、図3及び図4を参照しながら、ナンバープレートの文字認識について説明する。なお、図3は、ナンバープレートの文字認識について説明するための第1の図である。また、図4は、ナンバープレートの文字認識について説明するための第2の図である。
文字認識の処理は、例えば、図3に示すような処理の流れに沿って実行される。図3に示すように、車番認識システムでは、画像が入力されると(S11)、入力された画像(入力画像)から、ナンバープレートに含まれる文字の配置を示すフォーマットが決定される(S12)。
例えば、ナンバープレートには、図4に示すように、市区町村コード(R1、R7)、用途コード(R2)、一連番号(R3、R4、R5、R6)、自賠責ステッカーなどが配置されている。また、領域R1、R2、…、R7の配置は、車種毎に設定されたフォーマットにより予め決められている。そのため、入力画像から文字又はネジ部の存在位置を検出し、検出した存在位置の組み合わせからフォーマットを決定することができる。例えば、入力画像のエッジ検出を行い、エッジが存在する位置の組み合わせからフォーマットを決定することができる。
S12でフォーマットが決定された後、文字を含む領域(以下、文字領域)が切り出され(S13)、切り出された文字領域の画像が二値化される(S14)。画像の二値化とは、設定された閾値を用いて画素毎に輝度の閾値判定を行い、その判定結果に応じて画素値を二値(黒又は白)のいずれかに設定して二値化画像を生成する処理である。二値化に用いる閾値は、例えば、入力画像の輝度分布を示すヒストグラムを用いて設定される。
影がない場合、図4に示すように、領域R1、R2、…、R7に含まれる文字部の濃度と、背景部の濃度との違いがはっきりと区別できる。そのため、入力画像の輝度分布をヒストグラムで表現すると、ヒストグラムにおける文字部の山と背景部の山とが明確に分離される。そのため、文字部の山と背景部の山とを分ける輝度をはっきりと特定することができる。この場合、特定した輝度を閾値として画像の二値化を行えば、文字部の形状がくっきりと浮き出た二値化画像が得られる。
S14で画像が二値化された後、二値化画像を用いて認識処理が実行され(S15)、認識結果が出力される(S16)。認識処理は、認識対象の文字を表した複数の辞書画像と二値化画像とを照合して、最も類似度の高い辞書画像を特定し、特定した辞書画像の文字を認識結果とする処理である。S16の処理が完了すると、図3に示した一連の処理は終了する。図4に例示したケースのように影がない場合、図3に示した処理の流れに沿って正しい文字が認識される。
(影による文字認識への影響について)
ここで、図5を参照しながら、影による文字認識への影響について説明する。なお、図5は、影による文字認識への影響について説明するための図である。
被写体51の一部LRにより影が生じた場合、図5に示すように、影の影響による濃淡を含む領域(影領域RS)が入力画像に現れる。影領域RSが文字部に重なると、入力画像のヒストグラムには、図5に示すように、文字部、背景部の他、文字部に重ならない影領域RSの部分(影部)、及び文字部と影領域RSとが重なる部分(影部+文字部)に相当する山が現れる。
上記のように、4つの山が混在したヒストグラムから二値化に用いる好適な閾値を決定することは容易でない。そこで、画像処理装置100は、文字領域と影領域RSとが重なる領域に注目し、影領域RSの影響を考慮した閾値を決定する。つまり、画像処理装置100は、文字領域と影領域RSとが重なる領域に対し、「影部+文字部」の山と「影部」の山とを分ける閾値を適用する。この閾値を用いれば、影領域RSが重なる文字領域において文字の形状がくっきりと浮き出た二値化画像が得られる。
但し、影の濃度勾配により影領域RSに輝度勾配が生じている場合には、文字領域と影領域RSとが重なる領域に注目しても好適な閾値が得られない可能性がある。そこで、第2実施形態に係る画像処理装置100は、文字領域と影領域RSとが重なる領域について、影の濃度勾配に起因する影領域RSの輝度勾配を打ち消して好適な閾値を決定する。なお、以下では「打ち消す」という表現を用いるが、完全に輝度勾配の影響が除去される場合だけでなく、輝度勾配の影響が低減される場合を意味することもある。つまり、当該表現には、輝度勾配の一部又は全部が相殺される場合を含む。
(輝度勾配の打ち消しについて)
ここで、図6〜図8を参照しながら、第2実施形態に係る輝度勾配の打ち消しについて説明する。なお、図6は、第2実施形態に係る輝度勾配の打ち消しについて説明するための第1の図である。また、図7は、第2実施形態に係る輝度勾配の打ち消しについて説明するための第2の図である。また、図8は、第2実施形態に係る輝度勾配の打ち消しについて説明するための第3の図である。
影の濃度が一定の場合、文字領域と影領域RSとが重なっている領域内の画素列X1nは、図6に示した輝度グラフG1nのような輝度分布を有する。輝度グラフG1nの中で符号c1、c2、c3、c4を付した部分は、文字が影領域RSに重なっている分だけ他の部分に比べて輝度が低下している。この例では影領域RSの輝度及び文字部の輝度が一定であるため、符号c1、c2、c3、c4を付した部分の輝度と、他の部分の輝度とがはっきりと分かれている。そのため、ある輝度に設定された閾値を利用することで文字部と背景部とを明確に区別することができる。
一方、影に濃度勾配がある場合、文字領域と影領域RSとが重なっている領域内の画素列X1nは、図7に示した輝度グラフG1nのような輝度分布を有する。輝度グラフG1nの中で符号c1、c2、c3、c4を付した部分は、文字が影領域RSに重なっている分だけ他の部分に比べて輝度が低下している。しかし、影領域RSに輝度勾配が存在するため、文字部及び背景部の輝度が一定せず、ある輝度に設定された閾値を利用して文字部と背景部とを区別しようとしても、正しく文字部と背景部とを判定されない場合がある。
図7の例では、文字部である符号c1、c4を付した部分が背景部と判定される。また、符号c1、c4を付した部分が文字部と判定されるように閾値を変更すると、背景部の一部が文字部と判定される。そこで、画像処理装置100は、図8に示すように、文字領域外に設定した画素列X21、X22を利用して文字領域内の画素列X1nの背景輝度を推定し、推定した背景輝度の勾配を打ち消すように画素列X1nの輝度を変換する。なお、背景輝度は、文字を含まない影領域RSの輝度である。
上記の変換は、画素列X1nの輝度グラフG1nから、推定した背景輝度のグラフ(背景輝度グラフGS)を差し引く処理に相当する。この変換により、画素列X1nの輝度グラフG1nは、図6に例示した輝度グラフG1nと同様の形状に補正される。その結果、ある輝度に設定された閾値を用いて文字部と背景部とを正しく分離することが可能になる。なお、画素列X1nの背景輝度を推定する際に用いる画素列X21、X22の設定は図8の例に限定されない。また、背景輝度の推定に関する処理や、変換に関する処理の内容については後段において説明する。
(その他のシステムについて)
ところで、第2実施形態に係る技術は、上記の車番認識システムの他、例えば、ランドマーク認識システムやOCR(Optical Character Recognition)システムなど、画像から文字を認識する様々なシステムに適用することができる。
ランドマーク認識システムは、街中や観光地にある看板などをスマートフォンのカメラ機能などで撮像し、撮像画像から認識した文字列に基づいて地域や施設などのランドマークに関する情報を提供するシステムである。第2実施形態に係る技術をランドマーク認識システムに適用すると、看板などの文字が影にかかっているような状況においても文字認識がより精度良く行われるため、正しい情報を提供できる可能性が高まる。
OCRシステムは、スキャナなどの光学機器で読み取った文字列の画像から個々の文字を認識してテキストデータに変換するシステムである。第2実施形態に係る技術をOCRシステムに適用すると、本などの原稿を読み取る際にスキャナのガラス面と紙面との間に隙間が生じて文字に影がかかる場合や、ガラス面の汚れが影となって濃度勾配が生じる場合でも文字認識を精度良く行うことができるようになる。
以上、第2実施形態に係る技術を適用可能なシステムの例について説明した。以下では、上記の車番認識システムを例に説明を進めるが、第2実施形態に係る技術の適用範囲はこれに限定されない。画像から文字認識を行う任意のシステムに対して第2実施形態に係る技術を適用することが可能である。
[2−2.ハードウェア]
次に、図9を参照しながら、画像処理装置100が有する機能を実現可能なハードウェアについて説明する。なお、図9は、第2実施形態に係る画像処理装置が有する機能を実現可能なハードウェアの一例を示した図である。
画像処理装置100が有する機能は、例えば、図9に示すハードウェア資源を用いて実現することが可能である。つまり、画像処理装置100が有する機能は、コンピュータプログラムを用いて図9に示すハードウェアを制御することにより実現可能である。
図9に示すように、このハードウェアは、主に、CPU902と、ROM(Read Only Memory)904と、RAM906と、ホストバス908と、ブリッジ910とを有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926とを有する。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
これらの要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
出力部918としては、例えば、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、又はELD(Electro-Luminescence Display)などのディスプレイ装置が用いられる。また、出力部918として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部918は、情報を視覚的又は聴覚的に出力することが可能な装置である。
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、HDDなどの磁気記憶デバイスが用いられる。また、記憶部920として、SSD(Solid State Drive)やRAMディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
ドライブ922は、着脱可能な記録媒体であるリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
接続ポート924は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS−232Cポート、又は光オーディオ端子など、外部接続機器930を接続するためのポートである。外部接続機器930としては、例えば、プリンタなどが用いられる。
通信部926は、ネットワーク932に接続するための通信デバイスである。通信部926としては、例えば、有線又は無線LAN(Local Area Network)用の通信回路、WUSB(Wireless USB)用の通信回路、光通信用の通信回路やルータ、ADSL(Asymmetric Digital Subscriber Line)用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークであり、例えば、インターネット、LAN、放送網、衛星通信回線などを含む。
以上、画像処理装置100が有する機能を実現可能なハードウェアについて説明した。
[2−3.画像処理装置の機能]
次に、画像処理装置100の機能について説明する。
(機能ブロック)
まず、図10〜図12を参照しながら、画像処理装置100の機能について説明する。なお、図10は、第2実施形態に係る画像処理装置が有する機能の一例を示したブロック図である。また、図11は、第2実施形態に係る座標データベースの一例を示した図である。また、図12は、第2実施形態に係る辞書データベースの一例を示した図である。
図10に示すように、画像処理装置100は、記憶部101、画像取得部102、フォーマット決定部103、クロージング処理部104、及び影領域特定部105を有する。さらに、画像処理装置100は、二値化処理部106、及び認識処理部107を有する。
なお、画像取得部102、フォーマット決定部103、クロージング処理部104、影領域特定部105、二値化処理部106、及び認識処理部107の機能は、上述したCPU902などを用いて実現できる。また、記憶部101の機能は、上述したRAM906や記憶部920などを用いて実現できる。
記憶部101は、座標データベース101a、及び辞書データベース101bを有する。座標データベース101aは、フォーマットに関する情報(以下、フォーマット情報)を含む。例えば、座標データベース101aは、図11に示すように、領域の種類を示す情報と座標の情報とを対応付けるフォーマット情報を含む。
領域の種類には、例えば、ナンバープレートの全体(プレート全体)、文字領域、文字領域以外の領域、及び背景領域が含まれる。また、文字領域以外の領域に含まれるネジ部や自賠責ステッカーなども領域の種類に含まれる。また、図11の例では、文字領域に含まれる市区町村コード#1、市区町村コード#2、一連番号1桁目、一連番号2桁目、一連番号3桁目、一連番号4桁目、用途コードなどが領域の種類として設定されている。
座標の情報は、領域を矩形で規定した場合に左上に位置する座標と右下に位置する座標とで表現されている。例えば、プレート全体を規定する矩形の左上が原点(0,0)に定められ、右下が(344,200)に定められている。また、市区町村コード#1の領域は、左上が(73,19)に定められ、右下が(271,57)に定められている。他の領域についても同様に座標の情報が定められている。なお、図11に例示したフォーマット情報は一例であり、車種などに応じて異なるフォーマット情報が用意され、座標データベース101aに格納されている。
辞書データベース101bは、文字の認識処理に利用する辞書画像を管理するデータベースである。例えば、図12に示すように、辞書データベース101bには、文字毎に文字コードと辞書画像とが対応付けて格納される。辞書画像は、文字を表した画像であり、認識処理の中で二値化画像と照合される画像である。
再び図10を参照する。画像取得部102は、撮像装置52から画像を取得する。画像取得部102により取得された画像は、フォーマット決定部103、クロージング処理部104、及び二値化処理部106に入力される。
フォーマット決定部103は、記憶部101が有する座標データベース101aを参照し、入力された画像に対応するフォーマットを決定する。例えば、フォーマット決定部103は、入力された画像のエッジ検出を実行し、エッジの位置から文字の存在位置を推定する。さらに、フォーマット決定部103は、推定した文字の存在位置の組み合わせや配置関係に適合するフォーマットを決定する。フォーマット決定部103により決定されたフォーマットのフォーマット情報は、二値化処理部106に入力される。
クロージング処理部104は、入力された画像にクロージング処理を施す。クロージング処理部104によりクロージング処理が施された画像は、影領域特定部105に入力される。影領域特定部105は、クロージング処理が施された画像から影領域を特定する。影領域特定部105により特定された影領域の情報は二値化処理部106に入力される。なお、クロージング処理及び影領域の特定については後述する。
上記のように、二値化処理部106には、画像、フォーマット情報、及び影領域の情報が入力される。二値化処理部106は、フォーマット情報及び影領域の情報に基づき、入力された画像を二値化して二値化画像を生成する。二値化処理部106により生成された二値化画像は、認識処理部107に入力される。認識処理部107は、記憶部101が有する辞書データベース101bを参照し、入力された二値化画像に最も類似する辞書画像を特定する。そして、認識処理部107は、特定した辞書画像に対応する文字を認識結果として出力する。
ここで、二値化処理部106の機能について、さらに説明する。
二値化処理部106は、輝度変換部161、閾値決定部162、及び二値化画像生成部163を含む。
輝度変換部161は、フォーマット情報及び影領域の情報に基づいて、文字領域と影領域とが重なる領域(以下、対象領域)を特定する。また、輝度変換部161は、特定した対象領域における影領域の輝度勾配を推定する。そして、輝度変換部161は、推定した影領域の輝度勾配が打ち消されるように対象領域に含まれる各画素の輝度を変換する。なお、変換の方法については後述する。輝度変換部161により画素の輝度が変換された画像は、閾値決定部162及び二値化画像生成部163に入力される。
閾値決定部162は、入力された画像の輝度分布から輝度のヒストグラムを生成する。このとき、閾値決定部162は、対象領域のヒストグラムと、対象領域を除く文字領域のヒストグラムとを生成する。そして、閾値決定部162は、対象領域のヒストグラムから文字部と背景部とを分離する対象領域用の閾値を決定する。また、閾値決定部162は、対象領域を除く文字領域のヒストグラムから、その領域用に文字部と背景部とを分離する閾値を決定する。閾値決定部162により決定された閾値の情報は、二値化画像生成部163に入力される。
二値化画像生成部163は、閾値決定部162から入力された閾値と、輝度変換部161から入力された画像の輝度とを比較し、輝度が閾値より大きい画素の画素値を第1の値に設定し、輝度が閾値より小さい画素の画素値を第2の値に設定する。つまり、二値化画像生成部163は、閾値判定により、輝度変換部161により入力された画像から第1及び第2の値の画素値で表現された二値化画像を生成する。二値化画像生成部163により生成された二値化画像は、認識処理部107に入力される。
(クロージング処理/影領域の特定)
ここで、図13を参照しながら、第2実施形態に係るクロージング処理/影領域の特定について説明する。なお、図13は、第2実施形態に係るクロージング処理/影領域の特定について説明するための図である。ここで説明するクロージング処理は、主にクロージング処理部104により実行される。また、影領域の特定に関する処理は、主に影領域特定部105により実行される。
クロージング処理とは、画像をm×m画素のブロックに分け、ブロック内の最大輝度でブロック内の全画素の輝度を置き換える膨張処理と、ブロック内の最小輝度でブロック内の全画素の輝度を置き換える収縮処理とを繰り返し実行する処理である。但し、mは2以上の数である。図13に示すように、クロージング処理を実行すると、文字などの細い線は元画像から消え、ある程度の大きさを有する濃度の高い連続した領域(ドメイン)だけが残る。
図13の例では1回の膨張処理及び収縮処理により文字部が消えているが、mの設定によっては1回の膨張処理及び収縮処理で文字部が消えない場合がある。このような場合には、文字部が消えるまで膨張処理と収縮処理とが交互に複数回繰り返し実行される。クロージング処理により文字部が消えた後、影領域特定部105によりエッジ検出が行われ、エッジで囲まれた領域が影領域として特定される。
以上、クロージング処理/影領域の特定について説明した。
(輝度の変換)
次に、対象領域の各画素が有する画素値から影領域の輝度勾配を打ち消す処理(上述した輝度の変換に相当する処理)について、さらに説明する。輝度勾配を打ち消す処理は、対象領域の画素がある位置で輝度勾配により生じている輝度の変化を推定し、推定した変化を補正する補正量(以下、オフセット)を計算して当該画素の輝度から減算する処理である。
第2実施形態では、輝度勾配の方向が不定であっても輝度勾配を打ち消すことが可能なオフセットの計算方法を提案する。以下、4通りの計算例を示すが、第2実施形態の技術的範囲はこれらの例に限定されない。また、影領域と文字領域との重なり方に応じて4通りの計算例に係る計算方法を使い分けてもよい。このように以下で説明するオフセットの計算例を組み合わせる方法についても当然に第2実施形態の技術的範囲に属する。
(オフセットの計算#1:2本の水平ラインを利用する方法)
まず、図14を参照しながら、第2実施形態に係るオフセットの計算#1について説明する。なお、図14は、第2実施形態に係るオフセットの計算#1について説明するための図である。ここで説明するオフセットの計算#1に関する処理は、主に二値化処理部106に含まれる輝度変換部161により実行される。
文字領域RCと影領域RSとが重なった領域に設定される対象領域RTに注目する。対象領域RTは、文字領域RCと影領域RSとが重なった領域を四辺形(図14の例では台形)で近似した領域である。オフセットの計算#1は、対象領域RTの上下に位置する2つの参照画素列X11、X12を用いてオフセットを計算する方法に関する。なお、説明の都合上、図面の上方向を「上」、下方向を「下」と表現する。
参照画素列X11、X12は、影領域RSのうち文字領域RC以外の領域に設定される。図14の例では、参照画素列X11が文字領域RCの上側境界(対象領域RTの上底)に接する位置に設定され、参照画素列X12が文字領域RCの下側境界(対象領域RTの下底)に接する位置に設定されている。また、参照画素列X11の長さは対象領域RTの上底と同じ長さに設定され、参照画素列X12の長さは対象領域RTの下底と同じ長さに設定されている。
また、参照画素列X11に含まれる画素の輝度をa1,…,ak、参照画素列X12に含まれる画素の輝度をc1,…,cmと表現する。ここで、対象領域RTに含まれる1つの画素列(以下、対象画素列)に注目する。また、対象画素列の位置におけるオフセットをb1,…,blと表現する。また、参照画素列X11と対象画素列との間の距離をdabと表現し、参照画素列X12と対象画素列との間の距離をdbcと表現する。
図14に示すように、輝度変換部161は、参照画素列X11に含まれる画素の輝度a1,…,akに基づき、参照画素列X11を対象画素列と同じ長さに調整した場合の各画素が有する輝度ax1,…,axlを計算する。例えば、輝度変換部161は、下記の式(1)に基づいて輝度ax1,…,axlを計算する。但し、j=1,2,…,l、及びk>lである。なお、k=lの場合、輝度変換部161はaxj=ajとする。
また、輝度変換部161は、参照画素列X12に含まれる画素の輝度c1,…,cmに基づき、参照画素列X12を対象画素列と同じ長さに調整した場合の各画素が有する輝度cx1,…,cxlを計算する。例えば、輝度変換部161は、下記の式(2)に基づいて輝度cx1,…,cxlを計算する。但し、j=1,2,…,l、及びm<lである。なお、m=lの場合、輝度変換部161はcxj=cjとする。
輝度ax1,…,axl及びcx1,…,cxlを計算した輝度変換部161は、距離dab、dbcの比に基づいて輝度ax1,…,axl及びcx1,…,cxlの重み付け平均を計算する。そして、輝度変換部161は、計算した平均を対象画素列の位置におけるオフセットb1,…,blとする。例えば、輝度変換部161は、下記の式(3)に基づいてオフセットb1,…,blを計算する。但し、j=1,2,…,lである。
同様にして、輝度変換部161は、対象領域RTに含まれる他の対象画素列を選択し、選択した対象画素列の位置におけるオフセットを計算する。計算したオフセットの集合は、対象領域RTにおける影領域RSの輝度勾配を表す。そのため、元画像の対象領域RTに含まれる画素の画素値からオフセットを減算することにより、対象領域RTに含まれる影領域RSの輝度勾配を打ち消すことができる。
(オフセットの計算#2:水平・垂直ラインを利用する方法)
次に、図15を参照しながら、第2実施形態に係るオフセットの計算#2について説明する。なお、図15は、第2実施形態に係るオフセットの計算#2について説明するための図である。ここで説明するオフセットの計算#2に関する処理は、主に二値化処理部106に含まれる輝度変換部161により実行される。
文字領域RCと影領域RSとが重なった領域に設定される対象領域RTに注目する。対象領域RTは、文字領域RCと影領域RSとが重なった領域を四辺形(図15の例では台形)で近似した領域である。オフセットの計算#2は、対象領域RTの上側に位置する参照画素列X11及び対象領域RTの右側に位置する参照画素列X13を用いてオフセットを計算する方法に関する。なお、説明の都合上、図面の上方向を「上」、下方向を「下」、右方向を「右」、左方向を「左」と表現する。
参照画素列X11、X13は、影領域RSのうち文字領域RC以外の領域に設定される。図15の例では、参照画素列X11が文字領域RCの上側境界(対象領域RTの上底)に接する位置に設定されている。また、参照画素列X11の長さは対象領域RTの上底と同じ長さに設定されている。
一方、参照画素列X13は参照画素列X11と直交する方向に沿って配置されている。図15の例では、参照画素列X13が対象領域RT(及び文字領域RC)の右側面に沿って配置されている。また、参照画素列X13の長さは対象領域RTの高さと同じに設定されている。また、参照画素列X11に含まれる画素の輝度をa1,…,ak、参照画素列X13に含まれる画素の輝度をq1,…,qsと表現する。
ここで、対象領域RTに含まれる1つの画素列(以下、対象画素列)に注目する。また、対象画素列の位置におけるオフセットをb1,…,blと表現する。図15に示すように、輝度変換部161は、参照画素列X11に含まれる画素の輝度a1,…,akに基づき、参照画素列X11を対象画素列と同じ長さに調整した場合の各画素が有する輝度ax1,…,axlを計算する。輝度ax1,…,axlの計算方法は、オフセットの計算#1の場合と同じである。
輝度変換部161は、対象画素列に対応する参照画素列X13の画素を特定する。図15の例では、対象画素列と同じ高さにある画素が特定される。特定された画素の輝度がqjである場合、輝度変換部161は、輝度qj及び輝度ax1,…,axlに基づいてオフセットb1,…,blを計算する。例えば、輝度変換部161は、輝度qjと輝度ax1,…,axlそれぞれとの積を計算し、下記の式(4)に示すように、計算した積を輝度q1で割った値をオフセットb1,…,blとする。但し、j=1,2,…,lである。
同様にして、輝度変換部161は、対象領域RTに含まれる他の対象画素列を選択し、選択した対象画素列の位置におけるオフセットを計算する。計算したオフセットの集合は、対象領域RTにおける影領域RSの輝度勾配を表す。そのため、元画像の対象領域RTに含まれる画素の画素値からオフセットを減算することにより、対象領域RTに含まれる影領域RSの輝度勾配を打ち消すことができる。
(オフセットの計算#3:2本の垂直ラインを利用する方法)
次に、図16を参照しながら、第2実施形態に係るオフセットの計算#3について説明する。なお、図16は、第2実施形態に係るオフセットの計算#3について説明するための図である。ここで説明するオフセットの計算#3に関する処理は、主に二値化処理部106に含まれる輝度変換部161により実行される。
文字領域RCと影領域RSとが重なった領域に設定される対象領域RTに注目する。対象領域RTは、文字領域RCと影領域RSとが重なった領域を四辺形(図16の例では台形)で近似した領域である。オフセットの計算#3は、対象領域RTの上側に位置する参照画素列X11、及び対象領域RTの右側に位置する2つの参照画素列X14、X15を用いてオフセットを計算する方法に関する。なお、説明の都合上、図面の上方向を「上」、下方向を「下」、右方向を「右」、左方向を「左」と表現する。
参照画素列X11、X14、X15は、影領域RSのうち文字領域RC以外の領域に設定される。図16の例では、参照画素列X11が文字領域RCの上側境界(対象領域RTの上底)に接する位置に設定されている。また、参照画素列X11の長さは対象領域RTの上底と同じ長さに設定されている。
一方、参照画素列X14、X15は参照画素列X11と直交する方向に沿って配置されている。図16の例では、参照画素列X14が対象領域RT(及び文字領域RC)の右側面に沿って配置され、さらに右側に参照画素列X15が配置されている。また、参照画素列X14、X15の長さは対象領域RTの高さと同じに設定されている。また、参照画素列X11に含まれる画素の輝度をa1,…,ak、参照画素列X14に含まれる画素の輝度をe1,…,et、参照画素列X15に含まれる画素の輝度をf1,…,ftと表現する。
ここで、対象領域RTに含まれる1つの画素列(以下、対象画素列)に注目する。また、対象画素列の位置におけるオフセットをb1,…,blと表現する。図16に示すように、輝度変換部161は、参照画素列X11に含まれる画素の輝度a1,…,akに基づき、参照画素列X11を対象画素列と同じ長さに調整した場合の各画素が有する輝度ax1,…,axlを計算する。輝度ax1,…,axlの計算方法は、オフセットの計算#1の場合と同じである。
輝度変換部161は、参照画素列X14、X15を用いて輝度勾配の上下方向における変化量を計算する。輝度変換部161は、参照画素列X11に対応する位置にある参照画素列X14、X15の画素を特定し、特定した画素の輝度ae、afを参照する。また、輝度変換部161は、対応画素列に対応する位置にある参照画素列X14、X15の画素を特定し、特定した画素の輝度eb、fbを参照する。
そして、輝度変換部161は、下記の式(5)に基づいて輝度勾配の上下方向における変化量Gを計算する。参照画素列X11に対応する位置における輝度勾配は、参照画素列X14、X15間の距離をΔとして「(ae−af)/Δ」と表現できる。一方、対象画素列に対応する位置における輝度勾配は、参照画素列X14、X15間の距離をΔとして「(eb−fb)/Δ」と表現できる。変化量Gは、これらの輝度勾配の比に相当する。
また、輝度変換部161は、対象画素列のうち輝度を変換する画素と、参照画素列X15との間の距離に基づき、輝度ax1,…,axl及び変化量Gからオフセットb1,…,blを計算する。例えば、輝度変換部161は、下記の式(6)に基づいてオフセットb1,…,blを計算する。但し、j=1,2,…,lである。
bj=axj+(aj−af)・G
…(6)
同様にして、輝度変換部161は、対象領域RTに含まれる他の対象画素列を選択し、選択した対象画素列の位置におけるオフセットを計算する。計算したオフセットの集合は、対象領域RTにおける影領域RSの輝度勾配を表す。そのため、元画像の対象領域RTに含まれる画素の画素値からオフセットを減算することにより、対象領域RTに含まれる影領域RSの輝度勾配を打ち消すことができる。
(オフセットの計算#4:オフセット値を選択する方法)
次に、図17を参照しながら、第2実施形態に係るオフセットの計算#4について説明する。図17は、第2実施形態に係るオフセットの計算#4について説明するための図である。ここで説明するオフセットの計算#4に関する処理は、主に二値化処理部106に含まれる輝度変換部161により実行される。
文字領域RCと影領域RSとが重なった領域に設定される対象領域RTに注目する。対象領域RTは、文字領域RCと影領域RSとが重なった領域を四辺形(図17の例では台形)で近似した領域である。オフセットの計算#4は、対象領域RTの上下に位置する2つの参照画素列X11、X12、対象領域RTの右側に位置する参照画素列X13を用いてオフセットを計算する方法に関する。なお、説明の都合上、図面の上方向を「上」、下方向を「下」、右方向を「右」、左方向を「左」と表現する。
参照画素列X11、X12、X13は、影領域RSのうち文字領域RC以外の領域に設定される。図17の例では、参照画素列X11が文字領域RCの上側境界(対象領域RTの上底)に接する位置に設定され、参照画素列X12が文字領域RCの下側境界(対象領域RTの下底)に接する位置に設定されている。また、参照画素列X11の長さは対象領域RTの上底と同じ長さに設定され、参照画素列X12の長さは対象領域RTの下底と同じ長さに設定されている。
一方、参照画素列X13は参照画素列X11と直交する方向に沿って配置されている。図17の例では、参照画素列X13が対象領域RT(及び文字領域RC)の右側面に沿って配置されている。また、参照画素列X13の長さは対象領域RTの高さと同じに設定されている。また、参照画素列X11に含まれる画素の輝度をa1,…,ak、参照画素列X12に含まれる画素の輝度をc1,…,cm、参照画素列X13に含まれる画素の輝度をq1,…,qsと表現する。
ここで、対象領域RTに含まれる1つの画素列(以下、対象画素列)に注目する。また、対象画素列の位置におけるオフセットをb1,…,blと表現する。図17に示すように、輝度変換部161は、参照画素列X11に含まれる画素の輝度a1,…,akに基づき、参照画素列X11を対象画素列と同じ長さに調整した場合の各画素が有する輝度ax1,…,axlを計算する。輝度ax1,…,axlの計算方法は、オフセットの計算#1の場合と同じである。
輝度変換部161は、参照画素列X12の画素数|X12|と、参照画素列X13の画素数|X13|とを比較する。|X12|<|X13|である場合、輝度変換部161は、オフセットの計算#2と同じ方法でオフセットb1,…,blを計算する。一方、|X12|>|X13|である場合、輝度変換部161は、オフセットの計算#1と同じ方法でオフセットb1,…,blを計算する。なお、|X12|=|X13|である場合、輝度変換部161は、予め設定されたオフセットの計算#1、#2のいずれかの方法でオフセットb1,…,blを計算する。
同様にして、輝度変換部161は、対象領域RTに含まれる他の対象画素列を選択し、選択した対象画素列の位置におけるオフセットを計算する。計算したオフセットの集合は、対象領域RTにおける影領域RSの輝度勾配を表す。そのため、元画像の対象領域RTに含まれる画素の画素値からオフセットを減算することにより、対象領域RTに含まれる影領域RSの輝度勾配を打ち消すことができる。
(閾値の決定)
次に、図18を参照しながら、第2実施形態に係る閾値の決定について説明する。なお、図18は、第2実施形態に係る閾値の決定について説明するための図である。ここで説明する閾値の決定に関する処理は、主に二値化処理部106に含まれる閾値決定部162により実行される。
図18に示すように、閾値決定部162は、元画像からオフセットを減算した変換後の画像について、輝度分布を示すヒストグラムを生成する。オフセットの減算により元画像に含まれていた影領域RSの輝度勾配は抑制され、文字部の山と背景部の山とが分離したヒストグラムが得られる。閾値決定部162は、文字部と背景部とを分離する輝度を特定し、特定した輝度を閾値に設定する。図18の例では、元画像の対象領域について閾値を計算する方法が示されているが、対象領域以外の文字領域についても閾値が計算される。これらの閾値を利用することで、文字部がくっきりと浮き出た二値化画像を生成することができる。
(変形例)
これまでは説明の都合上、画面の上下左右を基準に参照画素列を対象領域RTの上側、下側、右側に配置する例を前提に説明を進めてきたが、参照画素列は画面の上下左右を基準に配置されていなくてもよい。また、矩形の文字領域を意識して説明を進めてきたが、文字領域の形状は矩形に限定されない。また、背景部の輝度が高く、文字部及び影部の輝度が低いことを前提に説明してきたが、背景部の輝度が低く、文字部及び影部の輝度が高い場合にも濃度の高低を逆にして考えれば上記の技術を同様に適用可能である。このような変形についても当然に第2実施形態の技術的範囲に属する。
以上、画像処理装置100の機能について説明した。
[2−4.処理の流れ]
次に、画像処理装置100が実行する処理のうち、文字認識に関する処理の流れについて説明する。
(文字認識に関する全体的な処理について)
まず、図19を参照しながら、文字認識に関する全体的な処理の流れについて説明する。なお、図19は、第2実施形態に係る文字認識に関する全体的な処理について説明するためのフロー図である。
図19に示すように、画像処理装置100は、画像取得部102の機能により、文字認識の対象となる画像を取得する(S101)。次いで、画像処理装置100は、フォーマット決定部103の機能により、取得した画像に適合するフォーマットを決定する(S102)。次いで、画像処理装置100は、クロージング処理部104の機能により、S101で取得した画像にクロージング処理を施す(S103)。次いで、画像処理装置100は、影領域特定部105の機能により、S103でクロージング処理を施した画像から影領域を特定する(S104)。
次いで、画像処理装置100は、S104の処理で影領域が特定されたか否かを判定する(S105)。影領域が特定された場合、処理はS106へと進む。一方、影領域が特定されなかった場合、処理はS107へと進む。
処理がS106へと進んだ場合、画像処理装置100は、二値化処理部106の機能により、影領域と文字領域とが重なる対象領域のオフセットを計算する(S106)。S106の処理で、画像処理装置100は、二値化処理部106の機能により、計算したオフセットを用いて画像に含まれる影領域の輝度勾配を抑制する。つまり、画像処理装置100は、二値化処理部106の機能により、対象領域に含まれる画素の輝度からオフセットを減算する。S106の処理が完了すると、処理はS107へと進む。
処理がS107へと進んだ場合、画像処理装置100は、二値化処理部106の機能により閾値を決定し、決定した閾値を用いて二値化画像を生成する(S107)。次いで、画像処理装置100は、認識処理部107の機能により、辞書画像と二値化画像とを照合して認識処理を実行する(S108)。S108の処理で、画像処理装置100は、認識処理部107の機能により、二値化画像と最も類似度が高い辞書画像を特定し、特定した辞書画像に対応する文字を認識結果として出力する。S108の処理が完了すると、図19に示した一連の処理は終了する。
(オフセットの計算#1に関する処理について)
ここで、図20を参照しながら、オフセットの計算#1に関する処理の流れについて、さらに説明する。なお、図20は、第2実施形態に係るオフセットの計算#1に関する処理について説明するためのフロー図である。なお、図20に示した処理は、主に二値化処理部106に含まれる輝度変換部161により実行される。また、図20に示した一連の処理は、S106の処理におけるオフセットの計算に対応する。
図20に示すように、輝度変換部161は、文字領域のうち影が重なる部分を特定する(S111)。次いで、輝度変換部161は、特定した部分を台形近似して対象領域を設定する(S112)。次いで、輝度変換部161は、文字領域外に、対象領域を上下に挟む2つの参照画素列X11、X12を設定する(S113)。
次いで、輝度変換部161は、対象領域から対象画素列を選択する(S114)。次いで、輝度変換部161は、参照画素列X11、X12をそれぞれ補正して対象画素列と同じ長さの補正画素列を生成する(S115)。ここで言う補正画素列は、例えば、図14に例示した輝度ax1,…,axlを有する画素列、及び輝度cx1,…,cxlを有する画素列に相当する。
次いで、輝度変換部161は、2つの補正画素列に基づいて対象画素列の位置におけるオフセットを計算する(S116)。次いで、輝度変換部161は、対象画素列を全て選択したか否かを判定する(S117)。つまり、輝度変換部161は、対象領域内の画素を対象画素列として全て選択し終えたか否かを判定する。対象画素列を全て選択した場合、図20に示した一連の処理は終了する。一方、選択していない対象画素列がある場合、処理はS114へと進む。
(オフセットの計算#2に関する処理について)
ここで、図21を参照しながら、オフセットの計算#2に関する処理の流れについて、さらに説明する。なお、図21は、第2実施形態に係るオフセットの計算#2に関する処理について説明するためのフロー図である。なお、図21に示した処理は、主に二値化処理部106に含まれる輝度変換部161により実行される。また、図21に示した一連の処理は、S106の処理におけるオフセットの計算に対応する。
図21に示すように、輝度変換部161は、文字領域のうち影が重なる部分を特定する(S121)。次いで、輝度変換部161は、特定した部分を台形近似して対象領域を設定する(S122)。次いで、輝度変換部161は、文字領域外に、対象領域の上又は下に位置する1つの参照画素列X11を設定する(S123)。次いで、輝度変換部161は、文字領域外に、対象領域の右又は左に位置する1つの参照画素列X13を設定する(S124)。
次いで、輝度変換部161は、対象領域から対象画素列を選択する(S125)。次いで、輝度変換部161は、参照画素列X11を補正して対象画素列と同じ長さの補正画素列を生成する(S126)。ここで言う補正画素列は、例えば、図15に例示した輝度ax1,…,axlを有する画素列に相当する。次いで、輝度変換部161は、参照画素列X13及び補正画素列に基づいて対象画素列の位置におけるオフセットを計算する(S127)。
次いで、輝度変換部161は、対象画素列を全て選択したか否かを判定する(S128)。つまり、輝度変換部161は、対象領域内の画素を対象画素列として全て選択し終えたか否かを判定する。対象画素列を全て選択した場合、図21に示した一連の処理は終了する。一方、選択していない対象画素列がある場合、処理はS125へと進む。
(オフセットの計算#3に関する処理について)
ここで、図22を参照しながら、オフセットの計算#3に関する処理の流れについて、さらに説明する。なお、図22は、第2実施形態に係るオフセットの計算#3に関する処理について説明するためのフロー図である。なお、図22に示した処理は、主に二値化処理部106に含まれる輝度変換部161により実行される。また、図22に示した一連の処理は、S106の処理におけるオフセットの計算に対応する。
図22に示すように、輝度変換部161は、文字領域のうち影が重なる部分を特定する(S131)。次いで、輝度変換部161は、特定した部分を台形近似して対象領域を設定する(S132)。次いで、輝度変換部161は、文字領域外に、対象領域の上又は下に位置する1つの参照画素列X11を設定する(S133)。次いで、輝度変換部161は、文字領域外に、参照画素列X11と直交する2つの参照画素列X14、X15を設定する(S134)。
次いで、輝度変換部161は、対象領域から対象画素列を選択する(S135)。次いで、輝度変換部161は、参照画素列X11を補正して対象画素列と同じ長さの補正画素列を生成する(S136)。ここで言う補正画素列は、例えば、図16に例示した輝度ax1,…,axlを有する画素列に相当する。次いで、輝度変換部161は、参照画素列X14、X15の輝度差から輝度勾配の変化量を計算する(S137)。
次いで、輝度変換部161は、輝度勾配の変化量及び補正画素列に基づいて対象画素列の位置におけるオフセットを計算する(S138)。次いで、輝度変換部161は、対象画素列を全て選択したか否かを判定する(S139)。つまり、輝度変換部161は、対象領域内の画素を対象画素列として全て選択し終えたか否かを判定する。対象画素列を全て選択した場合、図22に示した一連の処理は終了する。一方、選択していない対象画素列がある場合、処理はS135へと進む。
(オフセットの計算#4に関する処理について)
ここで、図23〜図25を参照しながら、オフセットの計算#4に関する処理の流れについて、さらに説明する。なお、図23は、第2実施形態に係るオフセットの計算#4に関する処理について説明するための第1のフロー図である。また、図24は、第2実施形態に係るオフセットの計算#4に関する処理について説明するための第2のフロー図である。
図25は、第2実施形態に係るオフセットの計算#4に関する処理について説明するための第3のフロー図である。なお、図23〜図25に示した処理は、主に二値化処理部106に含まれる輝度変換部161により実行される。また、図23〜図25に示した一連の処理は、S106の処理におけるオフセットの計算に対応する。
図23に示すように、輝度変換部161は、文字領域のうち影が重なる部分を特定する(S141)。次いで、輝度変換部161は、特定した部分を台形近似して対象領域を設定する(S142)。次いで、輝度変換部161は、文字領域外に、対象領域を上下に挟む2つの参照画素列X11、X12を設定する(S143)。
次いで、輝度変換部161は、文字領域外に、対象領域の右又は左に位置する1つの参照画素列X13を設定する(S144)。次いで、輝度変換部161は、参照画素列X11、X12のうち短い方の長さL1を計算する(S145)。次いで、輝度変換部161は、参照画素列X13の長さL2を計算する(S146)。次いで、輝度変換部161は、L1>L2であるか否かを判定する(S147)。L1>L2である場合、処理は図24のS148へと進む。一方、L1>L2でない場合、処理は図25のS152へと進む。
処理が図24のS148へと進んだ場合、輝度変換部161は、対象領域から対象画素列を選択する(S148)。次いで、輝度変換部161は、参照画素列X11、X12をそれぞれ補正して対象画素列と同じ長さの補正画素列を生成する(S149)。ここで言う補正画素列は、例えば、図14に例示した輝度ax1,…,axlを有する画素列、及び輝度cx1,…,cxlを有する画素列に相当する。
次いで、輝度変換部161は、2つの補正画素列に基づいて対象画素列の位置におけるオフセットを計算する(S150)。次いで、輝度変換部161は、対象画素列を全て選択したか否かを判定する(S151)。つまり、輝度変換部161は、対象領域内の画素を対象画素列として全て選択し終えたか否かを判定する。対象画素列を全て選択した場合、図23〜図25に示した一連の処理は終了する。一方、選択していない対象画素列がある場合、処理はS148へと進む。
また、処理が図25のS152へと進んだ場合、輝度変換部161は、対象領域から対象画素列を選択する(S152)。次いで、輝度変換部161は、参照画素列X11を補正して対象画素列と同じ長さの補正画素列を生成する(S153)。ここで言う補正画素列は、例えば、図15に例示した輝度ax1,…,axlを有する画素列に相当する。次いで、輝度変換部161は、参照画素列X13及び補正画素列に基づいて対象画素列の位置におけるオフセットを計算する(S154)。
次いで、輝度変換部161は、対象画素列を全て選択したか否かを判定する(S155)。つまり、輝度変換部161は、対象領域内の画素を対象画素列として全て選択し終えたか否かを判定する。対象画素列を全て選択した場合、図23〜図25に示した一連の処理は終了する。一方、選択していない対象画素列がある場合、処理はS152へと進む。
以上、文字認識に関する処理の流れについて説明した。
以上、第2実施形態について説明した。
<3.付記>
以上説明した実施形態に関し、さらに以下の付記を開示する。
(付記1) 二値化の対象となる画像を記憶する記憶部と、
前記画像中の影領域のうち文字を含まない第1の領域に設定された複数の第1の画素列の輝度に基づいて前記影領域の輝度勾配を計算し、当該輝度勾配を打ち消すように前記影領域のうち文字を含む第2の領域の輝度を補正し、補正後の前記第2の領域の輝度分布に基づいて前記画像の二値化に用いる閾値を決定する演算部と、
を有する、情報処理装置。
(付記2) 前記第2の領域内に設定された第2の画素列を挟み込むように2つの前記第1の画素列が設定されており、
前記演算部は、2つの前記第1の画素列のそれぞれと前記第2の画素列との間の距離に基づく重み値を用いて、一方の前記第1の画素列の輝度と他方の前記第1の画素列の輝度との重み付き平均を計算し、当該重み付き平均を用いて前記第2の領域の輝度を補正する
付記1に記載の情報処理装置。
(付記3) 第1の方向に沿って1つの前記第1の画素列が設定され、前記第1の方向と直交する第2の方向に沿って1つの前記第1の画素列が設定されており、
前記演算部は、前記第1の方向に沿って設定された前記第1の画素列に含まれる画素の輝度と前記第2の方向に沿って設定された前記第1の画素列に含まれる画素の輝度とに基づく補正値を用いて前記第2の領域の輝度を補正する
付記1に記載の情報処理装置。
(付記4) 第1の方向に沿って1つの前記第1の画素列が設定され、前記第1の方向と直交する第2の方向に沿って2つの前記第1の画素列が設定されており、
前記演算部は、前記第2の方向に沿って設定された2つの前記第1の画素列の間で計算される輝度差に基づいて前記第1の方向に関する前記影領域の輝度勾配が前記第2の方向に沿って変化する度合いを計算し、当該度合いと前記第1の画素列に含まれる画素の輝度とに基づく補正値を用いて前記第2の領域の輝度を補正する
付記1に記載の情報処理装置。
(付記5) 前記第2の領域内に設定された第2の画素列を挟み込むように第1の方向に沿って2つの前記第1の画素列が設定されており、前記第1の方向と直交する第2の方向に沿って1つの前記第1の画素列が設定されており、
前記演算部は、
前記第1の方向に沿って設定された短い方の前記第1の画素列の画素数と、前記第2の方向に沿って設定された前記第1の画素列の画素数とを比較し、
前記第1の方向に沿って設定された短い方の前記第1の画素列の画素数が、前記第2の方向に沿って設定された前記第1の画素列の画素数より大きい場合、前記第1の方向に沿って設定された2つの前記第1の画素列に基づいて前記第2の領域の輝度を補正し、
前記第1の方向に沿って設定された短い方の前記第1の画素列の画素数が、前記第2の方向に沿って設定された前記第1の画素列の画素数より小さい場合、前記第1の方向に沿って設定された前記第1の画素列の1つと、前記第2の方向に沿って設定された前記第1の画素列とに基づいて前記第2の領域の輝度を補正する
付記1に記載の情報処理装置。
(付記6) 二値化の対象となる画像を記憶する記憶部から前記画像を取得可能なコンピュータが、
前記画像中の影領域のうち文字を含まない第1の領域に設定された複数の第1の画素列の輝度に基づいて前記影領域の輝度勾配を計算し、当該輝度勾配を打ち消すように前記影領域のうち文字を含む第2の領域の輝度を補正し、補正後の前記第2の領域の輝度分布に基づいて前記画像の二値化に用いる閾値を決定する
二値化用閾値の決定方法。
(付記7) 二値化の対象となる画像を記憶する記憶部から前記画像を取得可能なコンピュータに、
前記画像中の影領域のうち文字を含まない第1の領域に設定された複数の第1の画素列の輝度に基づいて前記影領域の輝度勾配を計算し、当該輝度勾配を打ち消すように前記影領域のうち文字を含む第2の領域の輝度を補正し、補正後の前記第2の領域の輝度分布に基づいて前記画像の二値化に用いる閾値を決定する
処理を実行させる、プログラム。
(付記8) 前記演算部は、
前記第1の方向に沿って設定された短い方の前記第1の画素列の画素数が、前記第2の方向に沿って設定された前記第1の画素列の画素数より大きい場合、
前記第1の方向に沿って設定された2つの前記第1の画素列のそれぞれと前記第2の画素列との間の距離に基づく重み値を用いて、一方の当該第1の画素列の輝度と他方の当該第1の画素列の輝度との重み付き平均を計算し、当該重み付き平均を用いて前記第2の領域の輝度を補正し、
前記第1の方向に沿って設定された短い方の前記第1の画素列の画素数が、前記第2の方向に沿って設定された前記第1の画素列の画素数より小さい場合、
前記第1の方向に沿って設定された一方の前記第1の画素列に含まれる画素の輝度と前記第2の方向に沿って設定された前記第1の画素列に含まれる画素の輝度とに基づく補正値を用いて前記第2の領域の輝度を補正する
付記5に記載の情報処理装置。
(付記9) 前記演算部は、前記影領域を四辺形で近似する
付記1〜5、8のいずれかに記載の情報処理装置。
(付記10) 前記演算部は、前記第2の領域に含まれる画素の輝度から前記輝度勾配を表す補正値を減算することで前記第2の領域の輝度を補正する
付記1〜5、8、9のいずれかに記載の情報処理装置。
(付記11) 前記記憶部は、文字認識に用いる文字画像を記憶し、
前記演算部は、前記閾値を利用した二値化処理により前記画像から二値化画像を生成し、当該二値化画像と前記文字画像とを照合して前記画像に含まれる文字を認識する
付記1〜5、8〜10のいずれかに記載の情報処理装置。
(付記12) 前記第2の領域内に設定された第2の画素列を挟み込むように2つの前記第1の画素列が設定されており、
2つの前記第1の画素列のそれぞれと前記第2の画素列との間の距離に基づく重み値を用いて、一方の前記第1の画素列の輝度と他方の前記第1の画素列の輝度との重み付き平均が計算され、当該重み付き平均を用いて前記第2の領域の輝度が補正される
付記6に記載の二値化用閾値の決定方法。
(付記13) 第1の方向に沿って1つの前記第1の画素列が設定され、前記第1の方向と直交する第2の方向に沿って1つの前記第1の画素列が設定されており、
前記第1の方向に沿って設定された前記第1の画素列に含まれる画素の輝度と前記第2の方向に沿って設定された前記第1の画素列に含まれる画素の輝度とに基づく補正値を用いて前記第2の領域の輝度が補正される
付記6に記載の二値化用閾値の決定方法。
(付記14) 第1の方向に沿って1つの前記第1の画素列が設定され、前記第1の方向と直交する第2の方向に沿って2つの前記第1の画素列が設定されており、
前記第2の方向に沿って設定された2つの前記第1の画素列の間で計算される輝度差に基づいて前記第1の方向に関する前記影領域の輝度勾配が前記第2の方向に沿って変化する度合いが計算され、当該度合いと前記第1の画素列に含まれる画素の輝度とに基づく補正値を用いて前記第2の領域の輝度が補正される
付記6に記載の二値化用閾値の決定方法。
(付記15) 前記第2の領域内に設定された第2の画素列を挟み込むように第1の方向に沿って2つの前記第1の画素列が設定されており、前記第1の方向と直交する第2の方向に沿って1つの前記第1の画素列が設定されており、
前記第1の方向に沿って設定された短い方の前記第1の画素列の画素数と、前記第2の方向に沿って設定された前記第1の画素列の画素数とが比較され、
前記第1の方向に沿って設定された短い方の前記第1の画素列の画素数が、前記第2の方向に沿って設定された前記第1の画素列の画素数より大きい場合、前記第1の方向に沿って設定された2つの前記第1の画素列に基づいて前記第2の領域の輝度が補正され、
前記第1の方向に沿って設定された短い方の前記第1の画素列の画素数が、前記第2の方向に沿って設定された前記第1の画素列の画素数より小さい場合、前記第1の方向に沿って設定された前記第1の画素列の1つと、前記第2の方向に沿って設定された前記第1の画素列とに基づいて前記第2の領域の輝度が補正される
付記6に記載の二値化用閾値の決定方法。
(付記16) 二値化の対象となる画像を記憶する記憶部から前記画像を取得可能なコンピュータに、
前記画像中の影領域のうち文字を含まない第1の領域に設定された複数の第1の画素列の輝度に基づいて前記影領域の輝度勾配を計算し、当該輝度勾配を打ち消すように前記影領域のうち文字を含む第2の領域の輝度を補正し、補正後の前記第2の領域の輝度分布に基づいて前記画像の二値化に用いる閾値を決定する
処理を実行させるプログラムが格納された、コンピュータにより読み取り可能な記録媒体。