【解決手段】一実施形態に係る画像処理装置は第1抽出部、第2抽出部、および特定部を備える。第1抽出部は、画像に対してストローク幅変換を実行することでSWT領域を該画像から抽出する。SWT領域は、エッジが連続しかつストローク幅が設定の範囲内である領域である。第2抽出部は、画像に対して画素値に基づくクラスタリングを実行することで単色領域を該画像から抽出する。単色領域は、画素値が設定の範囲内でありかつ連続して存在する複数の画素で構成される領域である。特定部は、単色領域の画素数に対する、SWT領域および単色領域の重複部分の画素数の割合が第1の基準値以上または該第1の基準値より大きい場合に、少なくとも該単色領域に基づいて、文字領域候補に含まれる画素群を特定する。
画像に対してストローク幅変換を実行することでSWT領域を該画像から抽出する第1抽出部であって、該SWT領域が、エッジが連続しかつストローク幅が設定の範囲内である領域である、該第1抽出部と、
前記画像に対して画素値に基づくクラスタリングを実行することで単色領域を該画像から抽出する第2抽出部であって、該単色領域が、画素値が設定の範囲内でありかつ連続して存在する複数の画素で構成される領域である、該第2抽出部と、
前記単色領域の画素数に対する、前記SWT領域および前記単色領域の重複部分の画素数の割合が第1の基準値以上または該第1の基準値より大きい場合に、少なくとも該単色領域に基づいて、文字領域候補に含まれる画素群を特定する特定部と
を備える画像処理装置。
前記第2抽出部が、前記第1抽出部により抽出されたSWT領域に基づいて前記画像の一部をクラスタリング対象領域として設定し、該クラスタリング対象領域から前記単色領域を抽出する、
請求項1〜3のいずれか一項に記載の画像処理装置。
画像に対してストローク幅変換を実行することでSWT領域を該画像から抽出する第1抽出部であって、該SWT領域が、エッジが連続しかつストローク幅が設定の範囲内である領域である、該第1抽出部と、
前記画像に対して画素値に基づくクラスタリングを実行することで単色領域を該画像から抽出する第2抽出部であって、該単色領域が、画素値が設定の範囲内でありかつ連続して存在する複数の画素で構成される領域である、該第2抽出部と、
前記単色領域の画素数に対する、前記SWT領域および前記単色領域の重複部分の画素数の割合が第1の基準値以上または該第1の基準値より大きい場合に、少なくとも該単色領域に基づいて、文字領域候補に含まれる画素群を特定する特定部と
してコンピュータを機能させるための画像処理プログラム。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【0012】
図1〜14を用いて、実施形態に係る画像処理装置10の機能及び構成を説明する。画像処理装置10は、画像データから文字領域候補を抽出するコンピュータ・システムである。
【0013】
本明細書における「画像」とは、人の視覚で捉えることができるように対象物を媒体に定着させた像である。また、「画像データ」とは、コンピュータでの処理が可能な、画像を示すデータである。したがって、本明細書における画像は、メモリなどの記憶装置に記録され、プロセッサの処理によりモニタなどの出力装置に出力されることで、視認可能となる。画像は静止画でもよいし、動画を構成する個々のフレームでもよい。静止画の例としては写真や絵画などがあり、動画の例としてはビデオ映像やアニメーションなどがあるが、画像の種類はこれらに限定されない。画像はカメラやスキャナなどの電子機器により得られたものでもよいし、コンピュータ・グラフィックスにより作成されたものでもよい。
【0014】
本明細書における「文字領域候補」とは、画像中において文字が表されていると推定される領域である。本明細書における「文字」は、任意の形状のマークや絵なども含む概念である。
【0015】
画像処理装置10の処理結果は、それに続く様々な処理に用いることができる。例えば、多数の種類の商品を取り扱う仮想商店街で用いられている大量の商品画像データの判定にその処理結果を適用することができる。一般に、仮想商店街で用いられる商品画像の中には、商品そのもののみが写っている画像(商品写真)と、商品写真に文字が重畳された画像との双方が存在する。商品写真内に描画される文字の例としては、「送料無料」などの宣伝文句や、価格、店名などが挙げられる。文字は、画像編集ソフトにより挿入されていてもよいし、主たる被写体とともに撮影されていてもよい。仮想商店街の管理者としては、文字が描画または撮影されている画像(文字有り画像(text image))を排除して、文字が描画も撮影もされていない画像(文字無し画像(non−text image))だけを使いたい場合がある。例えば、管理者は、一つの商品についての各仮想店舗での販売価格をWebページ上で見せたい場合に、その商品の代表画像として、文字無し画像(例えば、商品そのもののみを写した画像)を使いたい場合がある。
【0016】
このような要求に応える前提として、確実に文字領域候補を画像データから抽出することが望まれる。
図1は、そのような高精度の抽出を実現するための本実施形態の概念を示す図である。画像処理装置10は一つの画像データに対してストローク幅変換(Stroke Width Transform(SWT))を実行することで、その画像データから1以上のSWT領域を抽出する。また、画像処理装置10は、その画像データに対して画素値に基づくクラスタリングを実行することで該画像データから1以上の単色領域を抽出する。画像処理装置10は、このように二つの手法を独立に適用することで得たSWT領域および単色領域に基づいて最終的な文字領域候補を抽出する。SWT領域および単色領域の詳細は後で述べるが、この2種類の領域は、最終的な文字領域候補の画素群を特定するために用いられる。
【0017】
画像処理装置10の一般的なハードウェア構成を
図2に示す。画像処理装置10は、オペレーティングシステムやアプリケーション・プログラムなどを実行するCPU(プロセッサ)101と、ROMおよびRAMで構成される主記憶部102と、ハードディスクやフラッシュメモリなどで構成される補助記憶部103と、ネットワークカードあるいは無線通信モジュールで構成される通信制御部104と、キーボードやマウスなどの入力装置105と、ディスプレイやプリンタなどの出力装置106とを備える。
【0018】
後述する画像処理装置10の各機能要素は、CPU101または主記憶部102の上に所定のソフトウェアを読み込ませ、CPU101の制御の下で通信制御部104や入力装置105、出力装置106などを動作させ、主記憶部102または補助記憶部103におけるデータの読み出しおよび書き込みを行うことで実現される。処理に必要なデータやデータベースは主記憶部102または補助記憶部103内に格納される。
【0019】
なお、画像処理装置10は1台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。複数台のコンピュータを用いる場合には、これらのコンピュータはインターネットやイントラネットなどの通信ネットワークを介して接続される。
【0020】
図3に示すように、画像処理装置10は機能的構成要素として受付部11、第1抽出部12、第2抽出部13、および特定部14を備える。
【0021】
受付部11は、文字領域候補を特定する対象となる画像データを受け付ける機能要素である。画像データの取得方法は限定されず、例えば、受付部11はユーザ操作により入力された画像データを受け付けてもよいし、他の情報処理装置から通信ネットワークを介して送られてきた画像データを受信してもよい。受付部11は画像データを第1抽出部12に出力する。
【0022】
第1抽出部12は、画像データに対してSWTを実行することでその画像データからSWT領域を抽出する機能要素である。SWTそのものは上記非特許文献1に記載されているように周知技術であり、文字のストローク幅が一般的には当該文字内でほぼ一定であるという観察に基づく手法である。なお、本明細書における「ストローク幅」とは、文字を構成する線の幅(線幅)である。
【0023】
第1抽出部12は、入力された画像をグレースケールで示された画像(モノクロ画像)に変換し、文字領域と他の領域(背景領域)との境界であるエッジをキャニー法(Canny method)により推定して、エッジのペアを見つける。まず、第1抽出部12は予め設定されたエッジ閾値Taを用いて個々のエッジを特定する。続いて、第1抽出部12は、ある一つのエッジの画素を起点として、その画素の勾配方向(gradient direction)を含む所定の範囲(例えば勾配方向±π/6)において探索を行うことで、起点と同じエッジ強度を持ちかつエッジの向きが起点とは逆である反対側のエッジの画素を見つける。続いて、第1抽出部12はそれら2個の画素と、探索での走査線に沿って当該2個の画素の間に存在する1以上の画素とのそれぞれに対してストローク幅を記録する。第1抽出部12は、エッジを構成するすべての画素についてその一連の処理を実行することで、それらの画素にストローク幅を記録する。なお、複数の走査線がある一つのエッジを通るためにそのエッジに複数種類のストローク幅が記録され得る場合には、第1抽出部12はそのエッジに対してストローク幅の最小値を記録する。
【0024】
図4はストローク幅を記録する例を示す。この図では、エッジとして特定された画素をハッチングを用いて表している。この例では、第1抽出部12はエッジの画素bpを起点として走査線Aに沿って探索することで反対側のエッジの画素bqを見つけ、ペアのエッジ画素bp,bqと、走査線A上に沿ってそのペアの間に位置する3個のエッジとにストローク幅「5」を記録している。
【0025】
画像データ内の少なくとも一部の画素にストローク幅を記録すると、第1抽出部12は、エッジが連続しかつストローク幅が設定の範囲内である領域をSWT領域として抽出する。SWT領域とは、勾配方向が互いに逆向きであるエッジ間の距離であるストローク幅が設定の範囲内である連続した領域である。「ストローク幅が設定の範囲内である」とは、ストローク幅がほぼ一定であることを意味し、この条件を満たすか否かを判定するための「設定の範囲」は任意に定めてよい。用語「設定の範囲」における「設定」のタイミング、すなわち、範囲が設定される時期は限定されず、その範囲はSWT領域を抽出する処理の前に予め定められていてもよいし、その処理中に設定されてもよい。例えば、第1抽出部12は、エッジが連続し、かつストローク幅の誤差が−2〜+2の範囲内である領域をSWT領域として抽出してもよい。第1抽出部12は1以上のSWT領域を抽出し得る。
【0026】
図5は、画像G(画像データ)から抽出された複数のSWT領域e1〜e6の例を示す。この例では、SWT領域e1,e2は、ヒトが文字であると認識する部分「bd」「D」をほぼ忠実に表している。その一方で、SWT領域e3のように、ヒトが文字であると認識する部分「y」に対応してはいるものの、ストローク幅の条件を満たさない部分が欠落したSWT領域が抽出される場合もある。SWT領域e3では文字「y」におけるストロークの連結部分が欠けているが、これはSWTの一つの傾向である。また、
図5には示さないが、SWTの他の傾向として、角の部分(例えば「L」という文字における角の部分)が欠けてしまう点も挙げられる。このように連結部分や角が欠落するのは、これらの部分においてストローク幅が一定の範囲内に収まらなくなるからである。さらに、これも
図5には示さないが、文字と背景とで画素値が近いために一部のエッジを特定できず、本来は1文字に対応する部分が2以上のSWT領域に分離されて検出される場合もある。また、SWT領域e4〜e6にように、ヒトが背景であると認識する部分がSWT領域として抽出される場合もある。例えば、エッジ間の距離がほぼ一定である領域が一つの文字内に(例えばSWT領域e4)または二つの文字の間に(例えばSWT領域e5,e6)存在すると、その領域がストロークと判定され得る。
【0027】
このように、第1抽出部12により抽出されるSWT領域が常に正確であるとはいえないが、いずれにしても、第1抽出部12は1以上のSWT領域を抽出すると、各SWT領域のそれぞれについてのコンポーネントデータを生成する。一つのSWT領域を示すコンポーネントデータは以下のデータ項目を含む。
・SWT領域の外接矩形の基準座標(Xe,Ye)
・外接矩形の幅We
・外接矩形の高さHe
・SWT領域に含まれる各画素pe
iの座標およびストローク幅(xe
i,ye
i,w
i)
例えば、SWT領域が20個の画素pe
1〜pe
20で構成される場合には、コンポーネントデータは(xe
1,ye
1,w
1),(xe
2,ye
2,w
2),…,(xe
20,ye
20,w
20)を含む。
【0028】
図5では、各SWT領域の外接矩形を一点鎖線で示している。SWT領域の外接矩形の基準座標として、例えばその外接矩形の左上の頂点の座標が設定されるが、外接矩形の位置を特定できるのであれば他の座標を基準座標に設定してもよい。
【0029】
上述したように、一つのSWT領域におけるストローク幅には一定の範囲が設定され得るので、一つのSWT領域のコンポーネントデータにおいてストローク幅w
iがすべて同じとは限らない。
【0030】
第1抽出部12は、1以上のSWT領域のコンポーネントデータを画像データとともに第2抽出部13に出力する。
【0031】
第2抽出部13は、画像データに対して画素値に基づくクラスタリングを実行することでその画像データから単色領域を抽出する機能要素である。単色領域とは、画素値が設定の範囲内でありかつ連続して存在する複数の画素で示される領域である。画素値が設定の範囲である一の画素に隣接する画素(隣接する方向は縦でも横でも斜めでもよい)の画素値もその設定の範囲内であれば、これらの2画素は連続して存在するとみなされる。画素値に基づくクラスタリングにおいても、用語「設定の範囲」における「設定」のタイミング、すなわち、範囲が設定される時期は限定されず、その範囲は単色領域を抽出する処理の前に予め定められていてもよいし、その処理中に設定されてもよい。
【0032】
まず、第2抽出部13は、第1抽出部12から入力されたSWT領域のコンポーネントデータを参照して、画素値に基づくクラスタリングを実行する対象となる1以上の領域をクラスタリング対象領域として決定する。第2抽出部13はすべてのSWT領域がいずれかのクラスタリング対象領域に含まれるように個々のクラスタリング対象領域を決定する。例えば、第2抽出部13は各クラスタリング対象領域が少なくとも、一つのSWT領域と該SWT領域のマージンとを加えた領域を含むように個々のクラスタリング対象領域を決定してもよい。マージンの大きさは任意に定めてよく、例えば、SWT領域の外接矩形と、その外接矩形の高さおよび幅の25%の領域とがマージンとして設定されてもよい。
【0033】
図6は、クラスタリング対象領域の例を示す図である。
図6(a)は、
図5に示すSWT領域e1〜e6のすべてと各SWT領域のマージンとを含むクラスタリング対象領域R1を示す。
図6(b)は、SWT領域e1,e2,e4〜e6とこれら5個のSWT領域領域のマージンとを含むクラスタリング対象領域R2aと、SWT領域e3およびそのマージンを含むクラスタリング対象領域R2bを示す。このように、クラスタリング対象領域の設定方法は一つに限定されないが、いずれにしても、クラスタリング対象領域の総和は入力された画像の一部である。
【0034】
画素値に基づくクラスタリングは、文字列または個々の文字が一般的には同一色で描画されるという観察に基づく手法である。画素値に基づくクラスタリングの例として、3次元色空間における色を用いるカラー・クラスタリング(color clustering)と、1次元色空間(グレースケール)を用いるグレー・クラスタリング(gray clustering)が挙げられる。グレー・クラスタリングを用いるのであれば、第2抽出部13はそのクラスタリングを実行する前に、入力された画像をグレースケールで示された画像(モノクロ画像)に変換する。
【0035】
第2抽出部13は色数(色に関する情報量)を削減した上で画素値に基づくクラスタリングを実行する。例えば、第2抽出部13はk−平均法(k−means method)を用いたクラスタリングを実行してもよい。この手法では、第2抽出部13は、クラスタリングのためにk−平均法を用いてカラー数を削減した上でクラスタリングを実行し、そのクラスタリングの後に各カラー・クラスタ(color cluster)に対してトポロジ解析に基づく領域分割を行う。第2抽出部13はこの処理により、色がほぼ同じであり且つ連続して存在する複数の画素を一つの単色領域として特定する。
【0036】
あるいは、第2抽出部13は下記参考文献1に記載されたクラスタリングの手法を用いてもよい。参考文献1の手法では、第2抽出部13は、情報量を削減した色空間に基づいて作成した色値のヒストグラムの各ビン(色クラスタ)の中央値を求め、似た色のクラスタ同士を統合することで、複数の代表クラスタ(representative cluster)を生成する。そして、第2抽出部13は、二値画像処理の基本的な技術である結合性解析(connectivity analysis)を用いて、同じ代表クラスタに対応しかつ連続して存在する複数の画素を一つの単色領域として特定する。
(参考文献1)仙田修司,美濃導彦,池田克夫、“文字列の単色性に着目したカラー画像からの文字パタン抽出法”、電子情報通信学会技術研究報告.PRU,パターン認識・理解 94(242),17−24,1994年9月22日
【0037】
このように、画素値に基づくクラスタリングの具体的な手法は限定されず、第2抽出部13は任意の手法によりクラスタリング対象領域から単色領域を抽出してよい。一つの単色領域に対応する色クラスタは一つであるが、一つの色クラスタは複数の画素値を含み得るので、一つの単色領域を構成する個々の画素値が必ずしもすべて同じになるわけではないことに留意されたい。
【0038】
図7は、画像G(画像データ)から抽出された複数の単色領域c1〜c7の例を示す。この例では、単色領域c1は画像Gの背景の全体を示しているが、当然ながら、クラスタの設定によっては、背景部分は複数の単色領域に分割され得る。単色領域c2〜c4はそれぞれ文字「bd」「D」「y」に対応している。その一方で、単色領域c5〜c7のように、ヒトが背景であると認識する部分が単色領域として抽出される場合もある。
【0039】
このように、第2抽出部13により抽出される単色領域が常に正確であるとはいえないが、いずれにしても、第2抽出部13は1以上の単色領域を抽出すると、各単色領域のそれぞれについてのコンポーネントデータを生成する。一つの単色領域を示すコンポーネントデータは以下のデータ項目を含む。
・単色領域の外接矩形の基準座標(Xc,Yc)
・外接矩形の幅Wc
・外接矩形の高さHc
・単色領域に含まれる各画素pc
iの座標および色番号(xc
i,yc
i,c
i)
例えば、単色領域が20個の画素pc
1〜pc
20で構成される場合には、コンポーネントデータは(xc
1,yc
1,c
1),(xc
2,yc
2,c
2),…,(xc
20,yc
20,c
20)を含む。
【0040】
図7では、各単色領域の外接矩形を一点鎖線で示している。SWT領域の場合と同様に、外接矩形の基準座標をどこに設定するかは限定されない。
【0041】
色番号はクラスタの色(代表的な色)を示す数値であり、画素の元々の色を示す画素値とは異なる。一つの単色領域のコンポーネントデータにおける画素pc
iの色番号はすべて同じである。
【0042】
第2抽出部13は、1以上の単色領域のコンポーネントデータをSWT領域のコンポーネントデータとともに特定部14に出力する。
【0043】
特定部14は、SWT領域および単色領域のコンポーネントデータを参照して、文字領域候補に含まれる画素群を特定する機能要素である。本明細書における「画素群」とは、1以上の画素の集合である。
【0044】
特定部14が各SWT領域に対して実行する処理を説明する。まず、特定部14は処理対象の一つのSWT領域の外接矩形と、入力された個々の単色領域の外接矩形とを比較して、外接矩形の少なくとも一部がSWT領域の外接矩形と重なる単色領域を選択する。
図5,7の例を参照すると、現在の処理対象がSWT領域e2であれば、外接矩形がSWT領域e2と重なり合うものは単色領域c1,c3,c7であり、第2抽出部13はこれら3個の単色領域のみを選択する。
図8に示すSWT領域e2と単色領域c4との関係のように、外接矩形同士の重なりが生じない他の単色領域はこの時点で除外される。
【0045】
もし、外接矩形同士が重なる単色領域が一つも存在しない場合には、特定部14は現在のSWT領域を廃棄して次のSWT領域についての処理に移る。SWT領域が廃棄されるということは、そのSWT領域に基づいて文字領域候補が特定されないことを意味する。
【0046】
一方、1以上の単色領域を選択できた場合には、特定部14は選択した単色領域のそれぞれについて処理対象のSWT領域との重複部分の画素数A
iを求めてその値A
iの降順にその単色領域を並べる。続いて、特定部14は、重複部分の画素数A
iが最大の単色領域をその並べ替えにより特定し、該単色領域に含まれる画素数A
cを求め、値A
cに対する画素数A
iの割合Rが基準値R
t以上であるか否かを調べる。ここで、あるSWT領域とある単色領域との「重複部分」とは、そのSWT領域および単色領域の双方に含まれる部分のことをいう。「重複」とは、ある画素がそのSWT領域の構成要素であると共にその単色領域の構成要素でもあるという状況を意味する。
【0047】
この基準値R
tは、画像の背景内で抽出されてしまったSWT領域を廃棄して、SWT領域と形状および大きさが近い単色領域を特定することを目的に設定される。基準値R
tは例えば0.8と設定してもよいし、0.7と設定してもよいし、その目的に適う他の値に設定してもよい。なお、特定部14は割合Rが基準値R
tより大きいか否かを判定してもよい。特定部14は、割合Rと基準値R
tとの大小関係を比較する際に「以上」「以下」「未満」「よりも大きい」のいずれを用いてもよい。
【0048】
図9の例では背景内にSWT領域e5が存在し、このSWT領域e5は文字領域候補として処理されるべきではない。本実施形態では、背景に相当する単色領域c1がそのSWT領域e5に比べて非常に大きいので、仮にSWT領域e5の全体が単色領域c1と重なったとしても、A
i/A
cは非常に低い値になって基準値R
tを下回る。この場合、特定部14はこの時点でSWT領域e5に対する処理を終了するが、このことは、特定部14がSWT領域e5を廃棄してそのSWT領域e5から文字領域候補を特定しないことを意味する。
【0049】
これに対して、
図10の例では単色領域c4はSWT領域e3とほぼ同じ大きさであり、それら2領域は多くの部分で重なるので、A
i/A
cは大きい値をとり基準値R
t以上になり得る。実際にA
i/A
c≧R
tであれば、特定部14はSWT領域e3を文字領域候補として残す。
【0050】
重複部分の画素数A
iが最大の単色領域に関してR=A
i/A
c≧R
tが成立すれば、特定部14は現在のSWT領域を文字領域候補として残し、そのSWT領域において欠落していると推定される部分の画素を単色領域の画素を用いて埋める。このようにSWT領域の欠落を埋める処理は、画素値が空値(null)である部分を単色領域の画素値で更新することを意味する。本明細書ではこのように画素を埋める処理を「補完」ともいう。
図10の例では、特定部14は、SWT領域e3では欠けているストロークの連結部分および一部の縁を単色領域c4の画素で補完する。この補完により、文字領域候補に含まれる画素群が特定される。なお、SWT領域が完全にまたはほぼ完全に文字領域を表す場合には、単色領域の画素による補完が実際には為されないことがあり得るが、この場合でも、特定部14は文字領域候補に含まれる画素群を特定したといえる。
【0051】
選択された単色領域が複数存在する場合には、特定部14はその補完を終えると、他の単色領域についても同様の処理を実行する。すなわち、特定部14は、他の単色領域についてもR=A
i/A
c≧R
tが成立するか否かを判定し、その条件を満たす場合には、該単色領域の画素を用いてSWT領域をさらに補完する。画像データの解像度などの影響により、SWTでは複数の文字が一つのSWT領域に含まれる一方で、画素値に基づくクラスタリングでは文字毎に単色領域が得られる場合が生じ得る。
図11は、「vel」という文字列に対して、一つのSWT領域e10と3個の単色領域c11,c12,c13とが得られた例を示す。この例において、特定部14が3個の単色領域を重複部分の画素数A
iの降順に単色領域c13,単色領域c12,単色領域c11と並べたとすると、特定部14はまず単色領域c13についてR=A
i/A
c≧R
tが成立するか否かを判定し、その条件が成立すればSWT領域e10を単色領域c13の画素で補完する。さらに、特定部14は単色領域c11についてR=A
i/A
c≧R
tが成立すればSWT領域e10を単色領域c11の画素で補完し、単色領域c12についてR=A
i/A
c≧R
tが成立すればSWT領域e10を単色領域c12の画素で補完する。
【0052】
一方、重複部分の画素数A
iが最大の単色領域に関してR=A
i/A
c<R
tであれば、特定部14は更なる処理を実行することなく現在のSWT領域を廃棄して、次のSWT領域についての処理に移る。一つのSWT領域と重複する複数の単色領域が抽出された場合に、重複部分の画素数が最大の単色領域について上記の割合が基準値未満であれば、その単色領域は背景領域であると考えられる。したがって、特定部14はそのSWT領域が文字ではなく背景の一部であると推定して、他の単色領域について処理することなくそのSWT領域の処理を終えることができる。このように、重複部分の画素数が最大の単色領域についてまず最初に判断することで、無駄な処理を省くことができる。
【0053】
特定部14は入力されたSWT領域のすべてについて以上の処理を実行する。その結果、入力されたSWT領域は、文字領域候補として特定されたものと廃棄されたものとに分かれる。文字領域候補として特定されたSWT領域の中には、単色領域の画素を用いて補完されたものが存在し得る。特定部14は、R=A
i/A
c≧R
tの条件を満たし、かつ必要に応じて画素が補完されたSWT領域を最終的な文字領域候補として出力する。なお、文字領域候補の出力方法は限定されない。例えば特定部14はその文字領域候補に関する情報をモニタ上に表示してもよいし、プリンタに出力してもよいし、任意のデータベースに格納してもよいし、通信ネットワークを介して他の情報処理装置に送信してもよい。
【0054】
ところで、補完の具体的な方法はいくつか考えられる。一例として、特定部14はSWT領域および単色領域の単純な論理和を計算することでその補完を行ってもよい。この論理和による補完は、SWT領域または単色領域の少なくとも一方に属する画素の集合を文字領域候補として設定する処理である。あるいは、特定部14は単色領域そのものを文字領域候補として設定することで、SWT領域を用いることなく、単色領域を構成する画素群を文字領域候補に含まれる画素群として特定してもよい。
【0055】
あるいは、特定部14は単色領域の画素のうち、SWT領域のエッジより外側に位置する画素を用いることなく、該単色領域の残りの画素を用いて該SWT領域を補完してもよい。文字領域の色とそれに隣接する背景領域の色とのコントラストが小さくてエッジが弱い場合には、単色領域ではなくSWT領域の方が正確なエッジを得る場合がある。この場合に単に論理和を用いてしまうと、本来は補完が不要な部分まで単色領域により補完されてしまい、却って文字領域候補の形状に誤りが生ずる。そこで、特定部14は文字領域候補に含まれる画素をより正確に特定するために、単色領域の画素のうちSWT領域のエッジより外側に位置する画素を用いずに残りの画素のみを用いて補完してもよい。この処理を実現するためには、どの画素がエッジを形成するかが分かる必要がある。一例として、第1抽出部12が、SWT領域のコンポーネントデータの各画素の情報に、該画素がエッジか否かを示すフラグを付加すればよい。すなわち、SWT領域に含まれる各画素pe
iの情報が、pe
iの座標、ストローク幅、およびエッジフラグ(xe
i,ye
i,w
i,f
i)で示されればよい。例えば、その画素がエッジであればf
i=1と設定され、エッジでなければf
i=0と設定される。
【0056】
このようなSWT領域のエッジに基づく補完の例を
図12,13を参照しながら説明する。
図12の例において、SWT領域e20の境界に位置する画素がすべてエッジとして判定されたものとする。また、SWT領域e20に対応して、画素値に基づくクラスタリングにより単色領域c20が得られたとする。この場合にこれら2領域の単純な論理和を求めると、単色領域c20におけるこぶのような膨らみc20aまでが文字領域候補の画素として特定されてしまうが、SWTにおいて判定されたエッジそのものは無視せずにそのまま用いた方が良いかもしれない。したがって、特定部14はSWT領域e20のエッジよりも外側に位置する膨らみc20aの画素を用いることなく、単色領域c20の他の画素のみを用いてSWT領域e20を補完する。なお、
図12の例では結果的に、補完により画素値がnullから有意な値に更新される画素はない。
【0057】
図13では、SWT領域e30の境界部分のうち、SWTによりエッジとして判定された部分を実線で示し、エッジとは判定されなかったが結果的に境界となった部分を破線で示している。一方、そのSWT領域e30に対応して、画素値に基づくクラスタリングにより単色領域c30が得られたとする。この場合に、その単色領域c30の画素の中で、SWT領域e30のエッジよりも外側に位置するものは存在しない。したがって、特定部14は単色領域c30の画素を用いてSWT領域e30の欠落部分(角、およびストロークの連結部分)を補完する。
【0058】
なお、
図10における例は
図13と同様に考えることができる。すなわち、SWT領域e3のストローク連結部分の欠落を画する境界はSWTによりエッジとは判定されないので、特定部14は単色領域c4の画素を用いてその欠落部分を補完する。SWT領域e3の縁の補完についていうと、特定部14は、単色領域c4の画素のうち、SWT領域e3のエッジ(より具体的には、エッジと判定された画素)よりも外側に位置するものを用いず、該エッジよりも内側に位置する画素を用いてSWT領域e3を補完する。
【0059】
あるいは、特定部14は、単色領域に含まれるがSWT領域には含まれない領域(差分領域)を求め、その差分領域で追加のエッジを求めることでそのSWT領域を拡張し、拡張後のSWT領域における欠落部分を単色領域の画素で補完してもよい。具体的には、特定部14はSWT領域(これを「元のSWT領域」という)と単色領域との差分を取ることで差分領域を求める。続いて、特定部14は、その差分領域に含まれ、かつ元のSWT領域とストローク幅の範囲が同じ他のSWT領域が存在するか否かを判定し、そのような他のSWT領域が存在した場合には該他のSWT領域を拡張部分の候補とする。続いて、特定部14は、第1抽出部12によるSWTで用いたエッジ閾値Taよりも小さいエッジ閾値Tbを用いてSWTを実行することで、その差分領域内に存在しかつ元のSWT領域とストローク幅の範囲が同じ追加領域が存在するか否かを判定する。もし、そのような追加領域が存在する場合には、特定部14は、元のSWT領域と、追加領域と、もしあれば更に他のSWT領域とを接続することで元のSWT領域を拡張する。そして、特定部14は拡張後のSWT領域における欠落部分を単色領域の画素で補完する。このとき、特定部14は単色領域の画素のうち、拡張されたSWT領域のエッジの外側に位置する画素を用いることなく、該単色領域の残りの画素のみを用いて該SWT領域を補完する。一方、追加領域が存在しない場合には、特定部14は元のSWT領域を拡張することなく、そのSWT領域の欠落部分を単色領域の画素で補完する。
【0060】
このようなSWT領域の拡張を伴う補完の例を
図14に示す。この例において、SWT領域e40に対応して、画素値に基づくクラスタリングにより単色領域c40が得られ、この2領域の間で、補完を行う前提となるR=A
i/A
c≧R
tという条件が満たされたとする。この場合、特定部14は元のSWT領域e40と単色領域c40とから得られる差分領域内にある他のSWT領域e41を拡張部分の候補とする。また、特定部14はエッジ閾値Tbを用いたSWTを実行することで、エッジg40で示される追加領域を得る。そして、特定部14は二つのSWT領域e40,e41とその追加領域とをつなげることで元のSWT領域e40を拡張する。そして、特定部14は拡張されたSWT領域のエッジよりも外側に位置する膨らみc40aの画素を用いることなく、単色領域c40の他の画素のみを用いて、拡張されたSWT領域を補完する。なお、
図14の例では結果的に、補完により画素値がnullから有意な値に更新される画素はない。
【0061】
なお、特定部14は文字領域候補の画素群を特定した後に、その文字領域候補のエッジを微調整する処理を行ってもよい。例えば、特定部14はエッジの周囲の画素値に応じて周囲の画素を文字領域候補に含めてもよいし、エッジを滑らかにする処理を行ってもよい。
【0062】
次に、
図15,16を用いて、画像処理装置10の動作を説明するとともに本実施形態に係る画像処理方法について説明する。
【0063】
図15は本実施形態に係る画像処理方法の全体の流れを示す。まず、受付部11が画像データを受け付ける(ステップS11)。続いて、第1抽出部12がSWTによりその画像データから1以上のSWT領域を抽出する(ステップS12、第1抽出ステップ)。続いて、第2抽出部13がそれらのSWT領域に基づいて画像上のクラスタリング対象領域を決定し(ステップS13)、画素値に基づくクラスタリングによりそのクラスタリング対象領域から1以上の単色領域を特定する(ステップS14、第2抽出ステップ)。続いて、特定部14がこれらのSWT領域および単色領域に基づいて、文字領域候補に含まれる画素群を特定し(ステップS15、特定ステップ)、特定した結果を出力する(ステップS16)。この一連の処理により、画像中で文字が描画されていると推定される部分が抽出される。
【0064】
図16を用いて、文字領域候補の画素群を特定する処理(ステップS15)の詳細を説明する。特定部14は処理しようとする一つのSWT領域を選択し(ステップS151)、外接矩形の少なくとも一部がそのSWT領域の外接矩形と重なる単色領域を選択する(ステップS152)。
【0065】
もしそのような単色領域を1以上選択できた場合には(ステップS153;「1以上」)、特定部14はSWT領域との重複部分の画素数A
iが最大の単色領域を選択し、該単色領域の画素数A
cに対するその値A
iの割合を求める(ステップS154)。そして、その割合が基準値R
t以上であれば(ステップS155;YES)、特定部14はそのSWT領域を文字領域候補として残し、単色領域の画素を用いてそのSWT領域を補完する(ステップS156)。ステップS153において複数の単色領域を選択できた場合には、特定部14はステップS154で選択しなかった他の単色領域を用いた補完を試みる(ステップS157)。具体的には、特定部14は単色領域の画素数A
cに対する、該単色領域およびSWT領域の重複部分の画素数A
iの割合が基準値R
t以上であれば、特定部14はその単色領域も用いてSWT領域をさらに補完する。
【0066】
一方、外接矩形がSWT領域の外接矩形と重なる単色領域が存在しない場合には(ステップS153;「0」)、特定部14はステップS151で選択したSWT領域を廃棄する(ステップS158)。また、重複部分の画素数A
iが最大の単色領域に関してR=A
i/A
c<R
tである場合にも(ステップS155;NO)、特定部14は選択したSWT領域を廃棄する(ステップS158)。
【0067】
特定部14は、処理対象のSWT領域のすべてについてステップS151〜S158の処理を実行する(ステップS159参照)。
【0068】
次に、
図17を用いて、コンピュータを画像処理装置10として機能させるための画像処理プログラムP1を説明する。
【0069】
画像処理プログラムP1は、メインモジュールP10、受付モジュールP11、第1抽出モジュールP12、第2抽出モジュールP13、および特定モジュールP14を備える。
【0070】
メインモジュールP10は、画像処理の機能を統括的に制御する部分である。受付モジュールP11、第1抽出モジュールP12、第2抽出モジュールP13、および特定モジュールP14を実行することにより実現される機能はそれぞれ、上記の受付部11、第1抽出部12、第2抽出部13、および特定部14の機能と同様である。
【0071】
画像処理プログラムP1は、例えば、CD−ROMやDVD−ROM、半導体メモリ等の有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、画像処理プログラムP1は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0072】
以上説明したように、本発明の一側面に係る画像処理装置は、画像に対してストローク幅変換を実行することでSWT領域を該画像から抽出する第1抽出部であって、該SWT領域が、エッジが連続しかつストローク幅が設定の範囲内である領域である、該第1抽出部と、画像に対して画素値に基づくクラスタリングを実行することで単色領域を該画像から抽出する第2抽出部であって、該単色領域が、画素値が設定の範囲内でありかつ連続して存在する複数の画素で構成される領域である、該第2抽出部と、単色領域の画素数に対する、SWT領域および単色領域の重複部分の画素数の割合が第1の基準値以上または該第1の基準値より大きい場合に、少なくとも該単色領域に基づいて、文字領域候補に含まれる画素群を特定する特定部とを備える。
【0073】
本発明の一側面に係る画像処理方法は、プロセッサを備えた画像処理装置により実行される画像処理方法であって、画像に対してストローク幅変換を実行することでSWT領域を該画像から抽出する第1抽出ステップであって、該SWT領域が、エッジが連続しかつストローク幅が設定の範囲内である領域である、該第1抽出ステップと、画像に対して画素値に基づくクラスタリングを実行することで単色領域を該画像から抽出する第2抽出ステップであって、該単色領域が、画素値が設定の範囲内でありかつ連続して存在する複数の画素で構成される領域である、該第2抽出ステップと、単色領域の画素数に対する、SWT領域および単色領域の重複部分の画素数の割合が第1の基準値以上または該第1の基準値より大きい場合に、少なくとも該単色領域に基づいて、文字領域候補に含まれる画素群を特定する特定ステップとを含む。
【0074】
本発明の一側面に係る画像処理プログラムは、画像に対してストローク幅変換を実行することでSWT領域を該画像から抽出する第1抽出部であって、該SWT領域が、エッジが連続しかつストローク幅が設定の範囲内である領域である、該第1抽出部と、画像に対して画素値に基づくクラスタリングを実行することで単色領域を該画像から抽出する第2抽出部であって、該単色領域が、画素値が設定の範囲内でありかつ連続して存在する複数の画素で構成される領域である、該第2抽出部と、単色領域の画素数に対する、SWT領域および単色領域の重複部分の画素数の割合が第1の基準値以上または該第1の基準値より大きい場合に、少なくとも該単色領域に基づいて、文字領域候補に含まれる画素群を特定する特定部としてコンピュータを機能させる。
【0075】
このような側面においては、SWTによるSWT領域の抽出だけでなく、そのSWTとは独立に、画素値に基づくクラスタリングによる単色領域の抽出も実行される。そして、SWT領域および単色領域の重複部分が単色領域に対して一定以上の割合を示す場合に、文字領域候補に含まれる画素群が特定される。このように、エッジではなく画素値に基づく手法をSWTと併用して、これら二つの手法から得られた2種類の領域を利用することで、エッジに基づく手法の短所を補って、より確実に画像から文字領域を抽出することが可能になる。その結果、文字列の認識などの後続処理の精度を高めることも可能になる。
【0076】
SWTは文字領域を抽出するための強力な手法の一つである。しかし、上述した通り、ストロークの角または連結部分で画素の欠落が生じたり、背景の一部がストロークとして抽出されたりすることがある。また、SWTは文字のエッジが検出できることを前提とするが、文字と背景との画素値が近いなどの理由で文字のエッジが弱いとそのエッジを抽出することができず、したがって文字領域も抽出できなくなる。
【0077】
このSWTを補うための手法としてMSERがある。しかし、このMSERもSWTと同様にエッジに基づいて文字領域を抽出する技術なので、やはり、画像内に弱いエッジが存在するとそのエッジを検出できず、したがって文字領域を抽出できない。
【0078】
一方、エッジを考慮しない、画素値に基づくクラスタリングを用いると、SWT領域の欠落部分を抽出できる可能性がある。したがって、SWTと画素値に基づくクラスタリングとを併用することでSWTでは抽出しきれない領域を単色領域として抽出し、その単色領域の画素を用いてSWT領域を補完すれば、従来よりも正確に文字領域候補を抽出することができる。
【0079】
この効果を
図18の例を用いて示す。
図18に示す画像Gxには、文字領域として抽出したい前景Fと、その前景Fと似た色を持つ、背景としての水玉Dとが描かれている(同図の上段を参照)。前景Fと水玉Dとが接する部分のエッジが弱くてSWTでその部分のエッジを抽出できないと、前景Fは二つのSWT領域e50,e51に分離されてしまう(
図18の中段左を参照)。このような画像Gxに対してMSERを適用したとしても、閉曲線を見つけることができないので、結局、二つのSWT領域e50,e51の間を補うことはできない。これに対して、画素値に基づくクラスタリングを用いた場合には、クラスタリングで用いられる色の設定によっては前景Fの全体が単色領域c50として抽出され得るので(
図18の中段右を参照)、その欠落部分が補完されて前景Fを文字領域候補として特定することが可能になる(同図の下段を参照)。
【0080】
図7に示す単色領域c1のように、画素値に基づくクラスタリングでは、実際には文字ではない部分も単色領域として抽出され得る。しかし、単色領域の画素数に対する、SWT領域および単色領域の重複部分の画素数の割合を考慮することで、実際に文字が描画された箇所を文字領域候補として確実に特定することが可能になる。
【0081】
他の側面に係る画像処理装置では、特定部が、割合が第2の基準値未満である場合に、SWT領域および単色領域から文字領域候補を特定しなくてもよい。SWT領域と重なる単色領域の画素数が重複部分の画素数に比べてかなり多いために上記の割合が小さくなる場合には、そのSWT領域が実際には文字ではなく背景に位置している可能性が高い。そこで、割合が基準値未満である場合には文字領域候補を特定しないことで、背景の一部を文字として検出してしまう状況をより確実に防ぐことが可能になる。
【0082】
他の側面に係る画像処理装置では、第1の基準値と第2の基準値とが等しく、第2抽出部が複数の単色領域を抽出した場合に、特定部が、SWT領域との重複部分の画素数が最大の単色領域を選択し、選択された単色領域の画素数に対する、SWT領域および該選択された単色領域の重複部分の画素数の割合が第1の基準値以上である場合には、文字領域候補に含まれる画素群を該SWT領域および該選択された単色領域に基づいて特定し、該割合が該第1の基準値未満である場合には文字領域候補を特定しなくてもよい。
【0083】
一つのSWT領域に対して複数の単色領域が抽出された場合には、まず、SWT領域との重複部分の画素数が最大の単色領域に基づいて判断することで、文字領域候補として特定すべきかそうでないかを即時に判断することができる。例えば、重複部分の画素数が最大の単色領域について上記の割合が基準値未満であれば、その時点でそのSWT領域が文字領域候補になり得ないと判定できるので、他の単色領域について処理することなくそのSWT領域についての処理を終えることができる。これは、処理時間の短縮につながる。
【0084】
他の側面に係る画像処理装置では、第2抽出部が、第1抽出部により抽出されたSWT領域に基づいて画像の一部をクラスタリング対象領域として設定し、該クラスタリング対象領域から単色領域を抽出してもよい。一般に、画素値に基づくクラスタリングは処理の負荷が高い。文字が描画されていると推定されるクラスタリング対象領域に絞ってそのクラスタリングを実行することで単色領域の探索範囲が限定されるので、その分だけ画像処理の負荷を低減することができる。
【0085】
他の側面に係る画像処理装置では、特定部が、SWT領域の欠落部分を単色領域の画素で補完することで、文字領域候補に含まれる画素群を特定してもよい。SWT領域では抽出できなかった部分を単色領域の画素で補完することで、文字領域候補の画素群を正確に特定することができる。
【0086】
他の側面に係る画像処理装置では、特定部が、SWT領域および単色領域の論理和を文字領域候補に含まれる画素群として特定してもよい。論理和という単純な処理で文字領域候補の画素群を特定することで、簡易にかつ高速に文字領域候補を特定することができる。
【0087】
他の側面に係る画像処理装置では、特定部が、単色領域の画素のうちSWT領域のエッジの外側に位置する画素を用いることなく、該単色領域の他の画素を用いて欠落部分を補完してもよい。SWTにより特定されたエッジは実際に文字と背景との境界を示している確率が高い。したがって、そのエッジを消すことなく他の欠落部分を補完することで、文字領域候補の画素群を正確に特定することができる。
【0088】
他の側面に係る画像処理装置では、第1抽出部が第1のエッジ閾値を用いてストローク幅変換を実行し、特定部が、単色領域のうちSWT領域と重複しない領域に対して、第1のエッジ閾値よりも低い第2のエッジ閾値を用いてストローク幅変換を実行することで追加のエッジを探索し、該追加のエッジを用いて該SWT領域を拡張し、単色領域の画素のうち拡張後のSWT領域のエッジの外側に位置する画素を用いることなく、該単色領域の他の画素を用いて該拡張後のSWT領域の欠落部分を補完してもよい。
【0089】
文字と背景との画素値の関係によっては、SWTと画素値に基づくクラスタリングとの双方を用いても本来の文字のエッジを特定できない場合がある。例えば、文字色と背景色とが部分的に近いためにエッジの一部が弱い場合には、文字の一部のみがSWT領域として抽出される一方で画素値に基づくクラスタリングでも弱いエッジの部分を認識できない可能性がある。このような場合に、最初のSWTよりもエッジ閾値を低くして再度SWTを実行することで、その弱いエッジが検出される可能性が生ずる。そして、その弱いエッジを含むSWT領域、すなわち拡張後のSWT領域に対して、特定されたエッジを消すことなく他の欠落部分を補完することで、文字領域候補の画素群を正確に特定することができる。
【0090】
他の側面に係る画像処理装置では、第2抽出部が、カラー・クラスタリングを実行することで単色領域を抽出してもよい。グレー・クラスタリングでは画像をグレースケール(1次元の情報)に変換するので色に関する情報が欠落してしまうが、カラー・クラスタリングではそのような欠落が起こらないので、クラスタリングをより正確に行うことができる。
【0091】
一方で、グレー・クラスタリングでは色情報が削減されるので、その分だけ処理を高速に実行することができる。
【0092】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0093】
上記実施形態では、第2抽出部13がクラスタリング対象領域を決定した上で単色領域を抽出したが、第2抽出部13はクラスタリング対象領域を決定することなく、画像全体から直接的に単色領域を抽出してもよい。すなわち、上記ステップS13の処理は省略可能である。例えば、CPUなどのハードウェア性能が高くて単色領域を高速に抽出できるのであれば、クラスタリング対象領域を決定する処理は省略可能である。また、クラスタリング対象領域を決めないのであれば、画素値に基づくクラスタリングを行う際にSWT領域のコンポーネントデータを参照する必要がないので、単色領域を抽出する前にSWT領域を抽出しなくてもよい。すなわち、画像処理装置10はステップS12およびステップS14を並列処理してもよいし、ステップS14を実行した後にステップS12を実行してもよい。
【0094】
上記実施形態では特定部14がSWT領域の外接矩形と単色領域の外接矩形との重なりを調べることで単色領域を選択したが、特定部14はこの処理(ステップS152の処理)に代えて、SWT領域と単色領域との重複部分の画素数A
iを求めてその画素数A
iが1以上である単色領域を選択してもよい。ただし、外接矩形の重なりを調べることで、簡易にかつ高速に単色領域を選択することができる。
【0095】
上記実施形態では、単色領域の画素数に対する、SWT領域および単色領域の重複部分の画素数の割合が基準値未満である場合に、そのSWT領域を廃棄した。この処理は主に、背景の一部から抽出されたSWT領域を除外することを目的とするが、このようなSWT領域の除去は他の手法により為されてもよい。例えば、受付部11または特定部14が、画像の縁の色と同色でかつその縁から連続する領域を背景領域として特定し、その背景領域に含まれるSWT領域を廃棄してもよい。
【0096】
上記実施形態では、特定部14が、単色領域の画素数に対する、SWT領域および単色領域の重複部分の画素数の割合Rを一種類の基準値R
tと比較したが、特定部はその割合Rを二種類の基準値(第1の基準値および第2の基準値)と比較してもよい。この場合には、第2の基準値は第1の基準値よりも小さい。例えば、特定部は、その割合Rが第1の基準値以上であれば、SWT領域または単色領域の少なくとも一方に属する画素の集合を文字領域候補として特定する。その割合Rが第1の基準値未満でありかつ第2の基準値以上であれば、特定部は、単色領域の画素のうち、SWT領域のエッジより外側に位置する画素を用いることなく、該単色領域の残りの画素を用いて該SWT領域を補完する。その割合Rが第2の基準値未満であれば、特定部はSWT領域および単色領域から文字領域候補を特定しない。すなわち、特定部はそのSWT領域を廃棄する。このように、特定部は、割合Rが第1の基準値以上であれば第1の補完を実行することで文字領域候補の画素群をを特定し、割合Rが第1の基準値未満でありかつ第2の基準値以上であれば第2の補完を実行して文字領域候補の画素群を特定し、割合Rが第2の基準値未満であれば文字領域候補を特定しなくもてよい。
【0097】
この変形例と比較した場合には、上記実施形態は、第1の基準値と第2の基準値とが等しい場合の処理、すなわち、基準値R
tが第1の基準値でもあり第2の基準値でもある場合の処理であるといえる。
【0098】
画像処理装置内で二つの数値の大小関係を比較する際には、「以上」「以下」「未満」「よりも大きい」のいずれの基準が用いられてもよい。上記実施形態では特定部14が割合Rと基準値R
tとを比較する場面で同様の説明を行ったが、大小関係の比較方法が任意であることは、その場面に限定されるものではない。