以下に図面を参照して、本発明にかかる範囲指定プログラム、範囲指定方法および範囲指定装置の実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる範囲指定方法の一実施例を示す説明図である。図1の範囲指定装置101は、文書画像内の位置の指定を受け付けると、指定を受け付けた位置に対応する文字を含む文字領域を選択する装置である。具体的に、範囲指定装置101は、PC、タブレット端末等のコンピュータである。
ここで、文書画像とは、文書が写った画像である。例えば、文書画像は、PDF(Portable Document Format)等のPCの画面上に表示された電子文書、スキャナで取得した紙文書の画像、またはデジタルカメラで撮影された文書を含む写真である。また、位置の指定とは、文書画像内の一点を決めることである。例えば、範囲指定装置101は、文書画像に座標軸を設定し、座標により位置を指定することができる。また、文字領域とは、文書の中で文字が連なった領域である。具体的には、例えば、文字領域は、文字が並んだ文字列の領域のことである。
従来、PC、タブレット端末や、スマートフォンに表示される文字列の中に調べたい単語があった場合など、画面に表示した文字列をコピーして利用したい場合がある。このため、表示される文字列を選択する技術がある。
例えば、表示している文書が、文書中に文字コードが格納されている電子文書であれば、目的とする単語の始点にカーソルを合わせてマウスでドラッグし、単語の文字列をコピーすることができる。
一方、文書画像に表示される文書や、文字コードのコピーを許さないアプリケーションの画面に表示される文書の場合には、文字コードを利用することができない。このため、例えば、ユーザは、文字列を囲む領域の頂点を2箇所指定することで、選択したい文字列を含む領域を画像に基づいて選択することができる。この場合、ユーザは、領域の頂点を2箇所指定するため、ユーザ操作が煩雑になる。また、スマートフォン等の小さな画面を指で操作する場合、ユーザが文字列を囲む領域の2頂点を指定するという操作は困難である。
このため、2頂点を指定するのではなく、ユーザが指定した文書データの位置の属性を獲得して、獲得した文字の属性と同じ属性の文字を選択範囲とする技術がある。ここで、文字の属性とは、文字に、文字の性質や設定などを示す付加的な情報である。例えば、文字の属性は、ゴシック体や明朝体等の文字のフォントの属性、アンダーライン等の文字の設定などがある。
しかしながら、文書画像の場合、文字属性は存在しないため、文字属性で文字を判断することができない。このため、例えば、文字の領域を、ユーザが指定した領域と近似する大きさの領域と判断することができる。しかし、この場合、アイコンが同じような大きさであると、アイコンなどの文字以外の領域も文字として誤って認識されてしまう。
そこで、実施の形態では、範囲指定装置101は、文書画像から文字領域を選択する際、指定された文字候補領域に連なり、当該文字候補領域の色数以下の文字候補領域を選択する。これにより、範囲指定装置101は、文書画像から文字を選択する際、文字以外の部分を文字と誤って選択することを軽減することができる。このため、文字コードを含まない、また、文字の属性を抽出することができない場合でも、ユーザは、文書画像内の1点を指定することで、文字領域を選択することができる。
以下、実施の形態にかかる範囲指定装置101の一実施例について説明する。図1の例では、範囲指定装置101は、文書画像110の文字列「file1」の範囲を指定する例である。
(1)範囲指定装置101は、文書画像110内の位置の指定を受け付ける。例えば、範囲指定装置101は、ユーザが文書画像110の一点を、指でタッチクリックする操作で、位置の指定を受け付ける。
図1の例では、アイコンと文字列「file1」が文書画像110に表示され、範囲指定装置101は、文書画像110内の「l」が表示されている領域と最も距離が短い位置の指定を受け付ける。
(2)範囲指定装置101は、文書画像110から、文字候補領域を抽出する。ここで、文字候補領域とは、文書画像110の中で文字が存在する可能性のある領域のことである。例えば、範囲指定装置101は、文書画像110の画素の連結成分を生成し、近接する連結成分を統合した領域の大きさに基づいて、文字候補領域を抽出する。
図1の例では、範囲指定装置101は、文書画像110から、文字候補領域111〜文字候補領域116を抽出する。ここでは、範囲指定装置101は、アイコンの領域の大きさが文字の領域と近似するため、アイコンの領域も文字候補領域111として抽出する。
(3)範囲指定装置101は、文字候補領域のうち、指定を受け付けた位置に対応する文字候補領域の色数を抽出する。
図1の例では、範囲指定装置101は、文字候補領域111〜文字候補領域116とユーザから指定された位置との距離を算出して、距離が最も短い文字候補領域114を特定し、文字候補領域114の色数を抽出する。図1では、ハッチングで文字候補領域114が特定されたことを示す。ここで、文字候補領域114は、白画素と黒画素から構成されているため、文字候補領域114の色数として2を抽出する。
(4)範囲指定装置101は、指定を受け付けた位置に対応する文字候補領域に連なる文字候補領域のうち、文字候補領域の色数が、抽出した前記色数以下の文字候補領域を特定する。ここで、指定を受け付けた位置に対応する文字候補領域に連なる文字候補領域とは、指定を受け付けた位置に対応する文字候補領域から近接して続いている文字候補領域のことである。
ここで、範囲指定装置101は、文字候補領域に文字がある場合と、文字候補領域に文字がない場合とでは、色数が異なることを利用して、文字候補領域に文字があるか否かを判断する。
図2は、画像による色数の違いを示す説明図である。図2(a)は、外接矩形領域で囲まれた二色の画素で構成される文字画像である。ここで、外接矩形領域とは、文字画像を囲む矩形の領域である。また、文字画像とは、文書画像の文書に含まれる文字を含む画像のことである。文字画像は、文字本体を表す前景画素と背景を表す背景画素とを有する。前景画素は単一色であることが多い。また、背景画素に様々な色が使われていると文字が読みづらいため、背景画素も単一色であることが多い。このため、文字画像は、二色の画素を有することが多い。
図2(b)は、外接矩形領域で囲まれた三色の画素を有する文字画像である。ここで、文字には影などの飾り表現が用いられることがある。このため、文字が影を含む二色の画素を有する場合がある。図2(b)において、第一前景画素は通常の文字画素であり、第二前景画素が影を表す画素を示す。この場合、文字画像には、背景画素も含めると三色の画素が用いられている。
これに対して、文字画像以外の画像は、文字画像の色数よりも多くの色数が用いられていることが多い。例えば、図2(c)は、ファイル名の前に置かれたアイコンを拡大した図である。アイコンは、ユーザが文字と区別できるように多色で目立つようになっている。例えば、図2(c)に示すように、背景画素にグラデーションがかかっているため、背景画素は、濃い領域と薄い領域に分かれている。このため、背景画素は、複数の色が用いられている。
以上のように、特殊なデザインの文字を除けば、文字画像は、黒文字、赤文字、青文字のように、文字は一色で表現される。さらに影付きの場合でも文字は二色で表現される。このように、文字画像は背景を含めて二色または三色で表現される。
一方、アイコンなどの文字ではない画像は、一色で表現されることは少なく、文字画像より多くの色数が使われることが多い。これは、画像が例えば、色彩成分の無いグレイ画像である場合でも同様である。文字画像では二種類または三種類の明度値が使われるのに対して、文字でない画像では複数の明度値の画素が使われるという点で、カラー画像と同様である。
ここで、図1に戻ると、図1の例では、範囲指定装置101は、指定を受け付けた位置に対応する文字候補領域114に連なる文字候補領域111〜113、115、116の色数を求める。ここで、文字候補領域111は、アイコンであり背景にグラデーションが使用されているため、色数は二色より多くなる。一方、文字候補領域112、113、115、116は、文字であるため、色数は2である。このため、範囲指定装置101は、文字候補領域114の色数以下の文字候補領域112、113、115、116を特定する。図1では、ハッチングで文字候補領域112、113、115、116が特定されたことを示す。
(5)範囲指定装置101は、指定を受け付けた位置に対応する文字候補領域と、特定した文字候補領域とを選択範囲にする。また、範囲指定装置101は、指定を受け付けた位置に対応する文字候補領域と、特定した文字候補領域とを含む領域を選択範囲にすることができる。
図1の例では、範囲指定装置101は、指定を受け付けた位置に対応する文字候補領域114と、特定した文字候補領域112、113、115、116を含む領域117を選択範囲とする。
以上説明したように、範囲指定装置101は、文書画像110内の位置の指定を受け付け、文書画像110から、文字候補領域111〜116を抽出し、文字候補領域111〜116のうち、指定を受け付けた位置に対応する文字候補領域114の色数を抽出する。この後、範囲指定装置101は、指定を受け付けた位置に対応する文字候補領域114に連なる文字候補領域111〜113、115、116のうち、文字候補領域の色数が、抽出した色数以下の文字候補領域112、113、115、116を特定する。最後に、範囲指定装置101は、指定を受け付けた位置に対応する文字候補領域114と、特定した文字候補領域112、113、115、116と、を選択範囲にする。
これにより、範囲指定装置101は、文書画像中の文字列をマウスや指などによる指定によって簡単に選択することができ、従来と比較して文字ではない領域を誤って選択することによる不適切な領域選択を軽減することができる。
このため、ユーザは、文書画像内の1点を指定することで、文字領域を選択することができる。ユーザは、スマートフォン等の小さな画面を指で操作する場合でも、文字領域を選択することが容易になる。
(範囲指定装置101のハードウェア構成例)
図3は、範囲指定装置101のハードウェア構成例を示すブロック図である。図3において、範囲指定装置101は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、ディスクドライブ304と、ディスク305と、ディスプレイ306と、入力装置307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、範囲指定装置101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMは記憶部としてCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
I/F303は、通信回線を通じてLAN、WAN、インターネットなどのネットワーク310に接続され、ネットワーク310を介して他のコンピュータに接続される。そして、I/F303は、ネットワーク310と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
ディスプレイ306は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ306は、例えば、液晶ディスプレイ、有機EL(Electroluminescence)ディスプレイなどを採用することができる。
入力装置307は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置307は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
なお、範囲指定装置101は、上述した構成部のうち、例えば、ディスクドライブ304、ディスク305などを有さないことにしてもよい。また、範囲指定装置101は、上述した構成部のほか、例えば、SSD(Solid State Drive)、スキャナ、プリンタなどを有することにしてもよい。
(範囲指定装置101の機能的構成例)
図4は、範囲指定装置101の機能的構成例を示すブロック図である。図4において範囲指定装置101は、抽出部401と、属性抽出部402と、特定部403と、生成部404と、を含む構成である。抽出部401と、属性抽出部402と、特定部403と、生成部404と、を含む制御部は、具体的には、例えば、図3に示したメモリ302などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302などの記憶装置に記憶される。
抽出部401は、入力された画像から文字候補領域を抽出する機能を有する。例えば、抽出部401は、入力装置307から文書画像を入力し、ディスプレイ306に表示し、入力装置307から座標の指定を受け付ける。また、抽出部401は、I/F303を介してネットワーク310から文書画像を入力することも可能である。抽出部401は、画像から文字候補領域を抽出する。ここで、抽出部401は、文書画像内に部分領域を設定して、部分領域から文字候補領域を抽出することもできる。また、範囲指定装置101が入力して処理する画像は、文書画像であるため、これ以降の記載では文書画像を画像と略することもある。
例えば、抽出部401は、画像を二値化して、連結成分を生成し、連結成分の画像属性を抽出する。抽出部401は、画像属性により、連結成分が文字部分領域であるか否かの判定を行い、文字部分領域である連結成分の近接領域を統合する。ここで、文字部分領域とは、文字の部分が存在する可能性のある領域のことである。また、近接領域について、図12を用いて詳しく後述する。
例えば、抽出部401は、統合した領域が文字候補領域であるか否かを判断し、文字候補領域であると判断した統合した領域を抽出する。
属性抽出部402は、抽出部401が抽出した文字候補領域から文字候補領域に含まれる画像の属性を抽出する機能を有する。例えば、属性抽出部402は、代表の文字候補領域を選択し、選択した文字候補領域から属性を抽出する。また、例えば、属性抽出部402は、属性として、文字候補領域の色数、文字サイズ、黒画素濃度、線幅または複雑度を抽出する。ここで、属性抽出部402は、抽出部401が画像を二値化する処理を行う前の画像を用いて、属性を抽出する。
属性抽出部402は、抽出した画像の属性のなかで、入力装置307から受け付ける座標の位置に対応する文字候補領域に含まれる画像の属性を代表属性とする。ここで、例えば、属性抽出部402は、入力装置307から受け付ける座標の位置に最も近い文字候補領域に含まれる画像の属性を代表属性とする。
例えば、属性抽出部402は、文字候補領域内の文字画像を切り出し、切り出した文字画像内の画素を色クラスタリングによって分類し、文字画像のノイズを除去して、色数をカウントする。
特定部403は、属性抽出部402が抽出した属性に基づいて、文字候補領域が文字領域であるか否かを決定する機能を有する。ここで、文字領域とは、文字を含む文字候補領域である。
例えば、特定部403は、文字候補領域の相対的な位置関係に基づいて隣接する文字候補領域を順に探索し、文字列を構成する文字領域を特定する。また、特定部403は、文字列が縦書きか横書きかを判定して、検索方向を決定する。特定部403は、文字列が縦書きの場合、上方向および下方向に探索し、横書きの場合、右方向および左方向に探索する。
また、例えば、特定部403は、探索で隣接領域が検索された場合、隣接領域に含まれる画像が文字であるか文字でないかの判定を行う。ここで、隣接領域とは、所定の隣接条件を満たす領域のことである。具体的には、隣接領域は、同一の文字列に属する可能性のある文字を含む領域である。
例えば、特定部403は、隣接領域の属性と代表属性とを比較することにより、隣接領域に含まれる画像が文字であるか文字でないかの判定を行う。ここで、属性が色数である場合、特定部403は、隣接領域の色数が代表属性の色数以下である場合、隣接領域に含まれる画像が文字であると判定する。
また、例えば、特定部403は、代表属性の色数が二色であった場合は、隣接領域の色数が三色である場合、隣接領域に含まれる画像が文字であると判定することもできる。
また、例えば、特定部403は、文字と判定された文字候補領域を文字領域と特定する。この後、特定部403は、文字と判定された文字候補領域の属性を用いて、代表属性を更新することもできる。
生成部404は、特定部403が決定した文字領域から文字列座標を生成する機能を有する。例えば、生成部404は、特定された文字候補領域の外接矩形を全て囲む矩形領域を生成し、矩形領域の左上の座標と右下の座標を生成する。
(範囲指定処理手順の一例)
図5は、範囲指定装置101の範囲指定処理手順の一例を示すフローチャートである。図5において、まず、範囲指定装置101は、画像を入力し、表示する(ステップS501)。例えば、範囲指定装置101は、スキャナでスキャンした画像や、デジタルカメラで撮影した画像を入力装置307またはI/F303から入力し、ディスプレイ306に表示する。
次に、範囲指定装置101は、画像内の座標を受け付ける(ステップS502)。例えば、範囲指定装置101は、入力装置307から画像内の座標を受け付ける。具体的には、入力装置307がマウス等のポインティングデバイスである場合、範囲指定装置101は、表示した画像内の1点をユーザがクリックする操作で画像内の座標を受け付ける。また、入力装置307がディスプレイ306と一体となったタッチパネルである場合、範囲指定装置101は、表示した画像内の1点をユーザがタッチクリックする操作で画像内の座標を受け付ける。
次に、範囲指定装置101は、文字候補領域を抽出する(ステップS503)。ここで、範囲指定装置101による文字候補領域抽出処理手順については、図6を用いて後述する。
また、範囲指定装置101は、文字候補領域を抽出する前に部分領域を設定することもできる。ここで、部分領域とは、画像内の事前に設定した範囲内の領域である。例えば、画像内で、受け付けた座標から所定の距離内にある領域を部分領域とすることができる。この場合、例えば、範囲指定装置101は、これ以降の処理を部分領域内で行うため、範囲指定処理を高速に行うことができる。
次に、範囲指定装置101は、文字画像の属性を抽出する(ステップS504)。ここで、文字画像とは、抽出した文字候補領域に含まれる文字を含む画像のことである。また、範囲指定装置101は、ステップS503の中で行われる画像を二値化する処理を行う前の画像を用いて、属性を抽出する。また、範囲指定装置101による文字画像の属性として色数を抽出する処理は、図7を用いて後述する。
さらに、範囲指定装置101は、文字画像の属性として、文字サイズ、黒画素濃度、線幅および複雑度をさらに、抽出することもできる。例えば、範囲指定装置101は、文字サイズを文字候補領域の縦横のサイズから算出することができる。また、例えば、範囲指定装置101は、黒画素濃度を、文字候補領域の二値画像の白画素と黒画素の数を数えることで算出することができる。
また、例えば、範囲指定装置101は、文字候補領域の二値画像を縦横にスキャンして、黒画素が連続する長さ(run length)の平均値を求めることで、線幅を求めることができる。これは、太字と細字の文字は線幅に応じて異なった値を示すので、線幅は、文字か否かを判定するための情報とすることができる。
図9は、文字画像の線幅を示す説明図である。図9(a)は、横方向に二値画像をスキャンして、黒画素が連続する長さを求める例であり、図9(b)は、縦方向に二値画像をスキャンして、黒画素が連続する長さを求める例である。ここで、線幅の詳細は、下記参考文献1に記載されている。
(参考文献1:電子情報通信学会論文誌 Vol.J96−D No.4 pp1029−1038)
また、例えば、範囲指定装置101は、文字候補領域の二値画像を縦横にスキャンして、黒画素から白画素に変化する回数および白画素から黒画素に変化する回数に基づいて、文字候補領域の複雑度を求めることができる。
次に、範囲指定装置101は、代表属性を抽出する(ステップS505)。例えば、範囲指定装置101は、ユーザから受け付けた座標から最も近い文字候補領域から得られた文字画像属性を代表属性とする。ここで、ユーザから受け付けた座標を(xr,yr)として、一つの文字候補領域の矩形座標を左上角と右下角の座標で表して(x1,y1)−(x2,y2)とする。
この場合、範囲指定装置101は、矩形の中心座標(xc,yc)を、
xc=(x1+x2)/2,yc=(y1+y2)/2
で求めることができる。範囲指定装置101は、受け付けた座標と文字候補領域との距離dを
d=√((xc−xr)2+(yc−yr)2)
から算出して、距離dが最も小さい文字候補領域の文字画像属性を代表属性とすることができる。
次に、範囲指定装置101は、文字領域を探索する(ステップS506)。ここで、文字領域の探索は、範囲指定装置101が文字候補領域の相対的な位置関係に基づいて隣接する文字候補領域を順に探索し、文字列を構成する文字領域を特定する処理である。例えば、範囲指定装置101は、文字列が縦書きか横書きかを判定して、検索方向を決定することができる。ここで、文字列が縦書きか横書きかを判定する方法の詳細は、下記参考文献2に記載されている。
(参考文献2:特開平06−089330号公報)
図10は、文字候補領域の探索を示す説明図である。図10(a)に示すように、範囲指定装置101は、最初、文字候補領域の指定を受け付ける。次に、図10(b)に示すように、範囲指定装置101は、最初、右方向に文字候補領域を探索する。ここで、図10(b)の一番左の文字候補領域は、図13で後述する隣接領域でないため、範囲指定装置101は探索を行わない。図10(b)では、文字候補領域と探索された領域は、太い線の四角で表されている。次に、図10(c)に示すように、範囲指定装置101は、左方向に文字候補領域を探索する。ここで、範囲指定装置101は、最初右から探索を行ったが、最初に左から行ってもよい。
範囲指定装置101による文字候補を右方向に探索する処理は、図8を用いて後述する。ここで、図8では、文字候補を右方向に探索する処理を説明しているが、文字候補を左方向、上方向および下方向に探索する処理は、右方向に探索する処理と同様に行うことができる。
最後に、範囲指定装置101は、文字列領域の座標を生成する(ステップS507)。例えば、範囲指定装置101は、特定された文字領域の外接矩形の座標を生成する。また、例えば、範囲指定装置101は、特定された文字領域の外接矩形を全て囲む矩形領域の座標を生成する。例えば、範囲指定装置101は、矩形領域の左上の座標と右下の座標を生成する。
図11は、文字列領域の座標生成を示す説明図である。ここで、四角で表される領域が、文字候補領域であり、太い線の四角が特定された文字候補領域である。範囲指定装置101は、太い線の四角を含む点線の矩形領域の座標を生成する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、範囲指定装置101は、受け付けた座標に対応する文字列領域の座標を生成することができる。
(文字候補領域抽出処理手順の一例)
図6は、範囲指定装置101の文字候補領域抽出処理手順の一例を示すフローチャートである。まず、範囲指定装置101は、画像を二値化する(ステップS601)。具体的には、範囲指定装置101は、画像内の画素を白画素と黒画素のいずれかに分類する。ここで、画像に部分領域が設定されている場合、範囲指定装置101は、画像内の部分領域を二値化することができる。
次に、範囲指定装置101は、連結成分を生成する(ステップS602)。具体的には、範囲指定装置101は、黒画素が4近傍(上下左右)で隣接しているものを連結成分としてグループ化する。
次に、範囲指定装置101は、連結成分の画像属性を抽出する(ステップS603)。例えば、範囲指定装置101は、連結成分の外接矩形領域において、矩形サイズや黒画素の濃度などの画像属性を求める。ここで、外接矩形領域とは、例えば、連結成分を含む最小の矩形の領域である。また、矩形サイズは、外接矩形領域の高さおよび幅の大きさである。
次に、範囲指定装置101は、すべての連結成分に対して、文字部分領域であるか否か判定する(ステップS604)。例えば、範囲指定装置101は、連結成分の画像属性が一定の範囲内にあるものを文字または文字の一部を構成する要素として、文字部分領域であると判断する。
次に、範囲指定装置101は、文字部分領域であると判定した連結成分の近接領域を統合する(ステップS605)。例えば、範囲指定装置101は、外接矩形領域が重なっているものや近接しているものを統合する。
図12は、連結成分の近接領域の統合を示す説明図である。図12の例では、図12(a)は、外接矩形領域が近接しているものを統合した例であり、図12(b)は、外接矩形領域が重なっているものを統合した例である。
次に、範囲指定装置101は、統合した領域が文字候補領域であるか否かを判断する(ステップS606)。例えば、範囲指定装置101は、統合した領域の大きさで文字候補領域であるか否かを判定する。具体的には、範囲指定装置101は、文字サイズを縦がH画素、横がW画素のように事前に決めておき、「高さ=0.2×H〜2×H画素」、「幅=0.1×W〜2×W画素」の両方の条件に合致したものを文字候補領域と判定する。ここで、文字サイズとは、矩形の縦横の画素数のことである。
統合した領域が文字候補領域であると判定した場合(ステップS606:Yes)、範囲指定装置101は、統合した領域を文字候補領域として抽出する(ステップS607)。統合した領域が文字候補領域でないと判定した場合(ステップS606:No)、範囲指定装置101の処理は、ステップS608に進む。
次に、範囲指定装置101は、統合した領域すべてに対して判定が終了したか否かを判断する(ステップS608)。統合した領域すべてに対して判定が終了しない場合(ステップS608:No)、範囲指定装置101の処理は、ステップS606に戻る。統合した領域すべてに対して判定が終了した場合(ステップS608:Yes)、範囲指定装置101の処理は、終了する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、範囲指定装置101は、画像から文字候補領域を抽出する。ここで、文字候補領域抽出処理の詳細は、上述した参考文献2に記載されている。
(文字画像色数抽出処理手順の一例)
図7は、範囲指定装置101の文字画像色数抽出処理手順の一例を示すフローチャートである。まず、範囲指定装置101は、文字候補領域内の文字画像を切り出す(ステップS701)。
次に、範囲指定装置101は、切り出した文字画像内の画素を色クラスタリングによって分類する(ステップS702)。例えば、範囲指定装置101は、文字画像内で同一色とみなすことができる色のグループを作成する。
次に、範囲指定装置101は、文字画像のノイズを除去する(ステップS703)。例えば、範囲指定装置101は、色のグループごとに属する画素数をカウントし、一定の画素数に満たないグループを削除することによってノイズを除去する。ここで、一定の画素数は、例えば総画素数の5%とすることができる。これにより、範囲指定装置101は、文字画像のボケや色ズレなどによる局所的な変動によるノイズを削除することができる。
次に、範囲指定装置101は、文字画像の色数をカウントする(ステップS704)。例えば、範囲指定装置101は、ノイズを除去した後に残った色のグループの数を、文字画像の色数としてカウントする。
次に、範囲指定装置101は、すべての文字候補領域の色数を抽出したか否かを判断する(ステップS705)。すべての文字候補領域の色数を抽出しない場合(ステップS705:No)、範囲指定装置101の処理は、ステップS701に戻る。すべての文字候補領域の色数を抽出した場合(ステップS705:Yes)、範囲指定装置101の処理は、終了する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、範囲指定装置101は、文字候補領域内の文字画像の色数を抽出する。ここで、画素を色クラスタリングによって分類する方法の詳細は、下記参考文献3に記載されている。
(参考文献3:特開2002−042055号公報)
(文字領域探索処理手順の一例)
図8は、範囲指定装置101の文字領域探索処理手順の一例を示すフローチャートである。まず、範囲指定装置101は、現在文字領域を設定する(ステップS801)。例えば、範囲指定装置101は、現在文字領域として、代表属性を抽出した文字候補領域を設定する。
次に、範囲指定装置101は、右方向に隣接領域を探索する(ステップS802)。ここで、隣接領域とは、同一の文字列に属する可能性のある文字を含む領域である。具体的には、隣接領域は、現在文字領域と、以下に説明する隣接条件を満たす文字候補領域である。
図13は、文字候補領域の位置関係を示す説明図である。図13を用いて、隣接条件を説明する。図13において、dを文字候補領域間の間隔、vを文字候補領域の重なり範囲の長さ、h1を左側の文字候補領域の高さ、h2を右側の文字候補領域の高さとし、hを2つの文字候補領域の高さの平均(h=(h1+h2)/2)とする。この場合、現在文字領域と隣接条件を満たす文字候補領域とは、d<hかつv>h/2を満たす文字候補領域である。
次に、範囲指定装置101は、隣接領域が探索されたか否かを判断する(ステップS803)。隣接領域が探索されない場合(ステップS803:No)、範囲指定装置101の処理は、終了する。
隣接領域が探索された場合(ステップS803:Yes)、範囲指定装置101は、文字非文字の判定を行う(ステップS804)。ここで、範囲指定装置101は、探索された隣接領域に含まれる画像が文字であるか文字でないかの判定を行う。
例えば、範囲指定装置101は、隣接領域の属性と代表属性とを比較することにより、隣接領域に含まれる画像が文字であるか文字でないかの判定を行う。例えば、属性が色数である場合、範囲指定装置101は、隣接領域の色数が代表属性の色数以下である場合、隣接領域に含まれる画像が文字であると判定する。
また、例えば、範囲指定装置101は、代表属性の色数が二色であった場合は、隣接領域の色数が二色または三色である場合、隣接領域に含まれる画像が文字であると判定することもできる。これは、代表属性の色数が二色であった場合は、文字の影による色数も考慮して、範囲指定装置101は、二色または三色の文字候補領域を文字だと判定する。また、代表属性の色数が三色であった場合は、同様にして、範囲指定装置101は、二色または三色の文字候補領域を文字だと判定する。また、代表属性の色数が四色以上の場合、範囲指定装置101は、代表属性の色数以下の文字候補領域を文字だと判定することができる。
これをまとめると、下記のようになる。
代表属性の色数:二色→文字と判定する色数:二色〜三色
代表属性の色数:三色→文字と判定する色数:二色〜三色
代表属性の色数:N色→文字と判定する色数:二色〜N色
また、例えば、範囲指定装置101は、色数の条件を満たす隣接領域に含まれる画像に対して、文字サイズ、黒画素濃度、線幅および複雑度等の属性を使用して、さらに、隣接領域に含まれる画像が文字であるか文字でないかの判定を行うこともできる。
非文字の判定が行われた場合(ステップS804:非文字)、範囲指定装置101の処理はステップS802に戻る。文字の判定が行われた場合(ステップS804:文字)、範囲指定装置101は、隣接領域を文字領域として特定する(ステップS805)。
次に、範囲指定装置101は、現在文字領域を更新する(ステップS806)。例えば、範囲指定装置101は、ステップS805で特定された文字領域を現在文字領域にする。
次に、範囲指定装置101は、代表属性を更新する(ステップS807)。例えば、範囲指定装置101は、特定した文字候補領域の属性値の平均や中央値を求め、平均や中央値で代表属性を更新する。この場合、最初に受け付けた文字候補領域の属性が特殊なものであった場合でも、文字列探索を行うにつれて、適正な代表属性へと次第に近づくことができる。この後、範囲指定装置101の処理は、ステップS802に戻り、隣接領域が探索されなくなると、範囲指定装置101の処理は、終了する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、範囲指定装置101は、画像の文字候補領域を探索して、文字領域を特定することができる。
以上説明したように、範囲指定装置101は、文書画像内の位置の指定を受け付け、文書画像から、文字候補領域を抽出し、文字候補領域のうち、指定を受け付けた位置に対応する文字候補領域の色数を抽出する。この後、範囲指定装置101は、指定を受け付けた位置に対応する文字候補領域に連なる文字候補領域のうち、文字候補領域の色数が、抽出した色数以下の文字候補領域を特定する。最後に、範囲指定装置101は、指定を受け付けた位置に対応する文字候補領域と、特定した文字候補領域と、を選択範囲にする。
これにより、範囲指定装置101は、文書画像中の文字列をマウスや指などによる指定によって簡単に選択することができ、従来と比較して文字ではない領域を誤って選択することによる不適切な領域選択を軽減することができる。
このため、範囲指定装置101は、ユーザがPCやスマートフォンなどの画面に表示された文字列を簡単な操作で選択する機能を実現できる。また、範囲指定装置101は、色数の比較だけで、文字を選択できるため、範囲指定装置101の負荷を上げることなく、文字の選択を行うことができる。ここで、範囲指定装置101が選択した文字列は、文字認識機能によってテキストに変換することが容易にできるので、例えば、調べたい単語をカメラで撮影してワンタッチで認識とWeb検索を実行することができる。さらに、範囲指定装置101により、外国人旅行者がガイドブックや看板、メニューなどの文字列の意味や発音を簡単に知ることができ実世界の文字画像情報の有効活用が可能になる。
ここで、範囲指定装置101は、最初に文字候補領域を抽出し、当該文字候補領域の色数を、指定を受け付けた位置に対応する文字候補領域から抽出した色数と比較する。このため、指定を受け付けた位置に対応する文字候補領域に連なる文字候補領域のなかにノイズがあって、抽出した色数を超える文字候補領域があったとしても、その先の文字候補領域を文字として選択することができる。
また、範囲指定装置101は、色数以下の文字候補領域を特定したことに応じて、抽出した色数を、特定した文字候補領域の色数に基づいて更新することもできる。
これにより、最初に受け付けた文字候補領域の色数が特殊なものであった場合でも、範囲指定装置101は、文字列探索を行うにつれて、色数を適正な代表属性の色数へと次第に近づけることができる。
また、範囲指定装置101は、文字候補領域の色数が、抽出した色数以下であり、かつ、文字候補領域の複雑度または文字候補領域内の線の線幅が所定の条件を満たす文字候補領域を特定することができる。
これにより、範囲指定装置101は、複雑度または線幅を用いることで、文字候補領域が、文字領域であるか否かを、より正確に判断することができる。
また、範囲指定装置101は、抽出した色数が2である場合、色数が3以下の文字候補領域を特定することができる。
これにより、範囲指定装置101は、最初に受け付けた文字候補領域の色数が2であっても、影等の装飾があり、色数が3以上の文字を特定することができる。
なお、本実施の形態で説明した範囲指定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本範囲指定プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本範囲指定プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)文書画像内の位置の指定を受け付け、
前記文書画像から、文字候補領域を抽出し、
抽出した前記文字候補領域のうち、前記指定を受け付けた位置に対応する文字候補領域の色数を抽出し、
前記指定を受け付けた位置に対応する文字候補領域に連なる文字候補領域のうち、文字候補領域の色数が、抽出した前記色数以下の文字候補領域を特定し、
前記指定を受け付けた位置に対応する文字候補領域と、前記特定した文字候補領域と、を選択範囲にする、
処理をコンピュータに実行させることを特徴とする範囲指定プログラム。
(付記2)前記特定する処理は、前記色数以下の文字候補領域を特定したことに応じて、前記色数を、特定した前記文字候補領域の色数に基づいて更新し、更新した前記色数以下の文字候補領域を特定することを特徴とする付記1に記載の範囲指定プログラム。
(付記3)前記特定する処理は、前記指定を受け付けた位置に対応する文字候補領域に連なる文字候補領域のうち、文字候補領域の色数が、前記色数以下であり、かつ、文字候補領域の複雑度または文字候補領域内の線の線幅が所定の条件を満たす文字候補領域を特定することを特徴とする付記1または2に記載の範囲指定プログラム。
(付記4)前記特定する処理は、前記色数が2である場合、色数が3以下の文字候補領域を特定することを特徴とする付記1〜3のいずれか一項に記載の範囲指定プログラム。
(付記5)文書画像内の位置の指定を受け付け、
前記文書画像から、文字候補領域を抽出し、
抽出した前記文字候補領域のうち、前記指定を受け付けた位置に対応する文字候補領域の色数を抽出し、
前記指定を受け付けた位置に対応する文字候補領域に連なる文字候補領域のうち、文字候補領域の色数が、抽出した前記色数以下の文字候補領域を特定し、
前記指定を受け付けた位置に対応する文字候補領域と、前記特定した文字候補領域と、を選択範囲にする、
処理をコンピュータに実行させる範囲指定プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
(付記6)文書画像内の位置の指定を受け付け、
前記文書画像から、文字候補領域を抽出し、
抽出した前記文字候補領域のうち、前記指定を受け付けた位置に対応する文字候補領域の色数を抽出し、
前記指定を受け付けた位置に対応する文字候補領域に連なる文字候補領域のうち、文字候補領域の色数が、抽出した前記色数以下の文字候補領域を特定し、
前記指定を受け付けた位置に対応する文字候補領域と、前記特定した文字候補領域と、を選択範囲にする、
処理をコンピュータが実行することを特徴とする範囲指定方法。
(付記7)文書画像内の位置の指定を受け付け、
前記文書画像から、文字候補領域を抽出し、
抽出した前記文字候補領域のうち、前記指定を受け付けた位置に対応する文字候補領域の色数を抽出し、
前記指定を受け付けた位置に対応する文字候補領域に連なる文字候補領域のうち、文字候補領域の色数が、抽出した前記色数以下の文字候補領域を特定し、
前記指定を受け付けた位置に対応する文字候補領域と、前記特定した文字候補領域と、を選択範囲にする、
処理部を有することを特徴とする範囲指定装置。