画像処理装置、画像処理方法および画像処理プログラム
【課題】スケールを自動的に導くこと。
【解決手段】画像処理装置100は、画像データからスケール値の異なる複数のスケール画像を生成し、各スケール画像からブロブ画像を生成する。そして、画像処理装置100は、ブロブ画像の数とスケール値との関係に基づいて、ブロブ画像の数の変化の割合が所定の閾値に収まるスケール値を固有スケール値として計算する。画像処理装置100は、固有スケール値に対応したブロブ画像の各ブロブに重心が含まれる文書画像の2値画像の連結成分全体の外接矩形に対応した、文書画像、または文書画像の2値画像上の領域を、前記固有スケールにおける画像要素領域として出力する。
【解決手段】画像処理装置100は、画像データからスケール値の異なる複数のスケール画像を生成し、各スケール画像からブロブ画像を生成する。そして、画像処理装置100は、ブロブ画像の数とスケール値との関係に基づいて、ブロブ画像の数の変化の割合が所定の閾値に収まるスケール値を固有スケール値として計算する。画像処理装置100は、固有スケール値に対応したブロブ画像の各ブロブに重心が含まれる文書画像の2値画像の連結成分全体の外接矩形に対応した、文書画像、または文書画像の2値画像上の領域を、前記固有スケールにおける画像要素領域として出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置等に関する。
【背景技術】
【0002】
近年、OCR(Optical Character Reader)を利用して紙文書を電子化することが行われている。紙文書を電子化することで、利用者は書類の保管場所を節約できる。また、紙文書を電子化することで、文書の検索が容易になったり、文書の内容を再利用したりすることができる。
【0003】
ここで、OCRが紙文書を電子化し、紙文書のレイアウトに対応した電子文書を作成するためには、文書画像から、文字、単語、行、文字ブロック等の切り出しを行う必要がある。
【0004】
従来技術には、文書画像の黒画素を投影したヒストグラムを計算し、ヒストグラムと各閾値とを比較して文書画像から行を切り出すものがある。図12〜図14は、従来技術を説明するための図である。図12の文書画像1aは、紙文書を電子化した画像である。文書画像1aの黒画素を投影してヒストグラムを計算すると、図13のヒストグラム1bとなる。
【0005】
従来技術ではヒストグラム1bを計算した後に、幅T1以下の凸部分と幅T2以下の凹部分を削除することで平滑化を行う。ヒストグラム1bに対して平滑化を行うと、図14のヒストグラム1cとなる。そして、従来技術では、隣接するヒストグラムの値の差分の絶対値と閾値T3とを比較して、絶対値が閾値T3を超えている位置を行として判定する。図14に示す例では、位置aと位置bとの間を行として判定する。
【0006】
上記従来技術では、文書画像から単語、行、文書ブロックを切り出す場合に、多くのパラメータを利用することになる。図12〜図14に示した従来技術では、行を特定するだけでT1〜T3のパラメータが必要となる。単語や文字ブロックを切り出す場合には、更に多くのパラメータを利用者が用意することになる。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】秋山照雄、増田功、「書式指定情報によらない紙面構成要素抽出法」、電子情報通信学会誌J66−D、No.1
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、画像は一般的に尺度に応じて観測される構造が異なる。以下では、この尺度をスケールと表記する。スケールは、画像の暈した場合の暈しの度合いに対応し、ガウス関数を使ったガウスフィルタで暈した場合は、ガウス関数の分散に等しい。更に、あるスケール値で暈した画像を、そのスケールでのスケール画像と表記する。また、ある構造を観測するために、最も適したスケールをその構造の固有スケールと表記する。文書画像では、この固有スケールが大局的に求まる場合がある。図15は、スケールに応じて観測される構造が異なる文書画像の一例を示す図である。図15に示すように、スケールを2aとすると、観測される構造は単一文字の「F」となり、スケールを2bとすると、観測される構造は文字の「E」の集合となり、スケールを2cとすると、観測される構造は四角の集合となる。
【0009】
図15に示したような文書画像から、文字やテクスチャ要素等の切り出しを行う場合には、利用者が文書画像を参照してスケールの値を適宜調整する必要があり、利用者にかかる負担が大きかった。なお、上記ヒストグラムを利用して文字や行等を判定する従来技術は、文字や行等を切り出す場合のパラメータを利用者自身が設定するものである。このため、従来技術では、図15に示した文書画像から文字やテクスチャ要素を切り出す場合には、所望するスケールで文字やテクスチャ要素が認識できるように、各パラメータを利用者が設定する必要があり、利用者にかかる負担を軽減することはできない。
【0010】
開示の技術は、上記に鑑みてなされたものであって、大局的な固有スケールを自動的に導くことができ、かつその大局的な固有スケールにおいて観測される構造に対応する画像要素の領域を自動的に求めることができる画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
開示の画像処理装置は、画像から暈かし具合の異なる複数のスケール画像を生成するスケール画像生成部を有する。また、開示の画像処理装置は、各スケール画像それぞれにおいて、スケール画像内で同一の濃度の持った画素の集合をブロブ画像として生成するブロブ画像生成部を有する。また、開示の画像処理装置は、画像の暈かし具合を示す値の変化に対するブロブ画像の面積または数の変化の割合が所定の閾値に収まる範囲の暈かし具合の値を計算する固有スケール計算部を有する。また、開示の画像処理装置は、固有スケール計算部が計算した暈かし具合の値に対応するスケール画像から抽出されるブロブ画像の領域を、文字認識を行う領域として出力する出力部を有することを要件とする。
【発明の効果】
【0012】
開示の画像処理装置によれば、大局的な固有スケールを自動的に導くことができ、かつその大局的な固有スケールにおいて観測される構造に対応する画像要素の領域を自動的に求めることができる。
【図面の簡単な説明】
【0013】
【図1】図1は、画像処理装置の構成を示す図である。
【図2a】図2aは、文書画像を示す図である。
【図2b】図2bは、文書画像を固有スケール値t0〜t3での各スケール画像と、スケール画像から得られた各ブロブ画像とを示す図である。
【図3】図3は、図2aの画像のブロブ数とスケール値との関係を示す図である。
【図4】図4は、図3のグラフの1次微分の計算結果を示す図である。
【図5】図5は、各スケール画像から抽出される画像要素領域の一例を示す図(1)である。
【図6】図6は、各スケール画像から抽出される画像要素領域の一例を示す図(2)である。
【図7】図7は、各スケール画像から抽出される画像要素領域の一例を示す図(3)である。
【図8】図8は、各スケール画像から抽出される画像要素領域の一例を示す図(4)である。
【図9】図9は、固有スケール値を算出する処理の処理手順を示すフローチャートである。
【図10】図10は、画像要素領域の画像を切り出す処理の処理手順を示すフローチャートである。
【図11】図11は、実施例にかかる画像処理装置を構成するコンピュータのハードウェア構成を示す図である。
【図12】図12は、従来技術を説明するための図(1)である。
【図13】図13は、従来技術を説明するための図(2)である。
【図14】図14は、従来技術を説明するための図(3)である。
【図15】図15は、スケールに応じて観測される構造の異なる階層構造を持つ画像の一例を示す図である。
【図16】図16は、画像要素領域判定部の処理を説明するための図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する画像処理装置、画像処理方法および画像処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0015】
本実施例にかかる画像処理装置の構成について説明する。図1は、画像処理装置の構成を示す図である。図1に示すように、この画像処理装置100は、入力部110、画像読み取り部120、表示部130、スケール計算処理部140、画像要素切り出し部150を有する。
【0016】
入力部110は、キーボードやマウス等の入力装置に対応する。画像読み取り部120は、紙媒体などから画像を読み取り、読み取った画像データをスケール計算処理部140、画像要素切り出し部150に出力する。例えば、画像読み取り部120は、スキャナに対応する。本実施例では、取り扱う画像をグレー画像または白黒の2値画像とする。なお、画像処理装置100は、カラー画像が入力された場合には、明度変換を行い、カラー画像をグレー画像に変換してもよい。表示部130は、ディスプレイなどの表示装置に対応する。
【0017】
スケール計算処理部140は、階層構造を有する画像データ固有の大局的なスケールを計算する処理部である。スケール計算処理部140は、スケール画像生成部141、ブロブ画像生成部142、固有スケール計算部143を有する。
【0018】
スケール画像生成部141は、スケール値を多段階に変えたガウスフィルタを画像データに適用することで、複数のスケール画像を生成する処理部である。スケール画像生成部141は、複数のスケール画像を該当するスケール値と対応付けてブロブ画像生成部142に出力する。
【0019】
ここで、スケール画像生成部141が利用するガウスフィルタは、ガウス関数を使って定義されるフィルタである。このガウスフィルタは、画像を暈かす場合に利用する。式(1)は、2次元のガウス関数gを示すものである。式(1)において、tはスケール値を示す。このスケール値は、暈かす度合いに対応するものである。また、x、yは、画像上の座標を示すものである。
【数1】
【0020】
原画像をIで表すと、この原画像Iとガウス関数で暈かした後の画像Bとの関係は、下記の式(2)、(3)で表される。式(2)の(x、y)は、着目画素の座標である。
【数2】
【数3】
【0021】
ここで、式(2)が成り立つのは、画像が連続でサイズが無限大の理想的な場合である。実際の画像は、離散的であり、サイズは有限である。このため、原画像Iと画像Bとの関係は、下記の式(4)、(5)で表される。式(4)のように、原画像Iと画像Bとの関係は、積分の代わりに和で表される。
【数4】
【数5】
【0022】
式(4)、(5)では、ガウスフィルタとして、ガウス関数の代わりに有限サイズの行列が用いられる。また、ガウスフィルタの高さ、幅のサイズを2s+1とする。sは整数である。式(4)の(i、j)は、着目画素の座標である。ガウスフィルタのサイズ2s+1のsは、一般的にtの定数倍として設計される。例えば、s=t、t=1とし、ガウスフィルタの中心を(m、n)=(0、0)とした場合のガウスフィルタは、式(6)によって表される。
【数6】
【0023】
ブロブ画像生成部142は、各スケール画像からブロブ画像を生成する処理部である。ブロブ画像生成部142は、スケール画像を2値化し連結成分解析を行うことで、一つの連結成分を一つのブロブとする。このブロブは、スケール画像内で、背景より暗い、または明るい画素の集合といえる。ブロブ画像生成部142は、抽出した全てのブロブに対し、例えば背景領域が1ならブロブ領域は0というように、背景とは異なる値を付与した画像をブロブ画像とする。
【0024】
例えば、ブロブ画像生成部142は、スケール値の各画素値と、閾値とを比較し、比較結果に基づいて、スケール画像を2値化することでブロブ画像を生成する。例えば、ブロブ画像生成部142は、スケール画像の各画素において、閾値以上となる画素値を1とし、閾値よりも小さい画素値を0に設定することでスケール画像を2値化する。ブロブ画像生成部142は、スケール画像毎に、ブロブ画像を生成する。
【0025】
図2aは、文書画像を示す図である。図2bは、文書画像からスケール値t0〜t3で得られた各スケール画像と、スケール画像から得られた各ブロブ画像とを示す図である。スケール値の大小関係は、t0<t1<t2<t3とする。図2bに示すように、ブロブ画像生成部142は、スケール値t0によって暈かされたスケール画像10bを2値化し、ブロブ画像10cを生成する。スケール値t0を0とする場合には、ブロブ画像生成部142は、図2aの文書画像をそのまま用いてもよい。
【0026】
図2bの上から2段目に示すように、ブロブ画像生成部142は、スケール値t1によって暈かされたスケール画像10dを2値化し、ブロブ画像10eを生成する。図2bの上から3段目に示すように、ブロブ画像生成部142は、スケール値t2によって暈かされたスケール画像10fを2値化し、ブロブ画像10gを生成する。図2bの上から4段目に示すように、ブロブ画像生成部142は、スケール値t3によって暈かされたスケール画像10hを2値化し、ブロブ画像10iを生成する。図2bに示すように、スケール値が大きくなるにしたがい、ブロブの数が減少し、ブロブの面積の平均値が大きくなる。
【0027】
ブロブ画像生成部142は、スケール画像毎にブロブ画像を生成した後に、スケール画像毎に全体ブロブ情報を生成し、生成した全体ブロブ情報を固有スケール計算部143に出力する。
【0028】
ここで、全体ブロブ情報は、スケール値と、スケール画像と、ブロブ画像と、ブロブ数と、個別ブロブ情報を有する。この個別ブロブ情報は、同一のブロブ画像に含まれるブロブ毎に存在する。個別ブロブ情報は、ブロブの面積、ブロブの外接矩形の頂点の座標、ブロブの重心座標、ブロブ画素座標の配列を有する。
【0029】
例えば、図2aの上から4段目に対応する全体ブロブ情報について説明すると、この全体ブロブ情報は、スケール値「t3」、スケール画像10h、ブロブ画像10i、ブロブ数「3」、ブロブ1a、1b、1cにそれぞれ対応する複数の個別ブロブ情報を含む。
【0030】
図1の説明に戻る。固有スケール計算部143は、全体ブロブ情報に基づいて、複数種類の固有スケール値を算出する処理部である。各固有スケール値は、画像データから画像要素を切り出す場合に利用される値である。例えば、固有スケール値は、文書画像に含まれる、文字、単語、行、文字ブロックの領域を切り出す場合に利用される。固有スケール計算部143は、各固有スケール値と、固有スケール値に対応するスケール画像と、固有スケール値に対応する全体ブログ情報と、元の文書画像とを画像要素切り出し部150に出力する。
【0031】
ここで、ブロブ情報に含まれるブロブ数とスケール値との関係について説明する。図3は、図2aの画像のブロブ数とスケール値との関係を示す図である。図3の横軸は、スケール値tに対応する軸であり、縦軸は、ブロブ数をスケール値の関数とみなしたとき、ブロブ数の対数ln f(t)に対応する軸である。例えば、文書画像のように、階層構造を持つ画像からブロブ数とスケール値との関係を求めると、スケール値を変化させてもブロブ数が変化しない定常状態が発生する。図3に示す例では、部分20a、20b、20c、20dにおいて定常状態となっている。この定常状態は、プラトーと呼ばれる。なお、異なる定常状態の間の状態は、急激にブロブ数が変化しており、この状態を状態遷移とする。
【0032】
固有スケール計算部143は、定常状態の開始点に対応するスケール値を固定スケール値として算出する。図3に示す例では、定常状態20aの開始点に対応するスケール値がt0となる。また、定常状態2bの開始点に対応するスケール値がt1となる。また、定常状態2cの開始点に対応するスケール値がt2となる。また、定常状態20dの開始点に対応するスケール値がt3となる。この場合には、固有スケール計算部143は、スケール値t0、t1、t2、t3を固有スケールとして算出する。
【0033】
固有スケール計算部143の処理を具体的に説明する。まず、固有スケール計算部143は、ブロブ数の対数とスケール値との関係を示すグラフに対して、1次微分df(t)/dtと2次微分d2f(t)/dtを数値的に計算する。図4は、図3のグラフの1次微分の計算結果を示す図である。
【0034】
固有スケール計算部143は、1次微分と2次微分とを計算した後に、1次微分が極小となるスケール値tmを全て検出する。1次微分が極小となる点は、2次微分の値が0となることに等しい。図4に示す例では、1次微分が極小となるスケール値は、tM0、tM1、tM2となる。
【0035】
固有スケール計算部143は、1次微分が極小となるスケール値を求めた後に、このスケール値を徐々に増加させていき、1次微分の絶対値が初めて所定の閾値より小さくなるスケール値を算出する。このスケール値が、定常状態の開始点に対応するスケール値となる。図4に示す例では、1次微分の絶対値が初めて所定の閾値より小さくなるスケール値は、t1、t2、t3となる。
【0036】
また、固有スケール計算部143は、スケール値の初期値t0を検出する。このスケール値t0は、図3の定常状態20aの開始点に対応する。t0=0として、暈かさない文書画像の明度画像としてもよい。固有スケール計算部143は、スケール値t0、t1、t2、t3を固有スケール値として、画像要素切り出し部150に出力する。1次微分の絶対値が初めて所定の閾値より小さくなるスケール値の数がM個の場合には、スケール値の初期値を合わせたM+1個のスケール値が固有スケール値として検出されることになる。
【0037】
図1の説明に戻る。画像要素切り出し部150は、固有スケール値を利用して、画像データから画像要素領域の画像を切り出す処理部である。例えば、画像要素領域の画像は、文字、単語、行、文字ブロックに対応する。この画像要素切り出し部150は、画像2値化部151、画像要素領域判定部152、切り出し部153を有する。画像要素切り出し部150は、出力部の一例である。
【0038】
画像2値化部151は、画像読み取り部120から画像データを取得した場合に、画像データに含まれる画素を白画素と黒画素に2値化する処理部である。画像2値化部151は、文書画像を2値化した画像データを画像要素領域判定部152に出力する。
【0039】
画像要素領域判定部152は、画像データと固有スケール値と全体ブロブ情報に基づいて、画像データに含まれる画像要素の領域を判定する処理部である。例えば、文書画像データに含まれる画像要素は、文字、単語、行、文字ブロックに対応する。
【0040】
具体的に、画像要素領域判定部152の処理を説明する。画像要素領域判定部152は、2値化した文書画像に対してラベリング処理をおこない、各連結成分の外接矩形を抽出する。画像要素領域判定部152は、全体ブロブ情報を基に、2値化した文書画像と、各ブロブの外接矩形とを比較して、ブロブの外接矩形に含まれる連結成分を判定する。そして、画像要素領域判定部152は、判定した連結成分全体の外接矩形を、該当する固有スケールでの画像要素領域として抽出する。画像要素領域判定部152は、抽出した外接矩形の座標を、画像要素領域の座標として切り出し部153に出力する。
【0041】
図16は、画像要素領域判定部の処理を説明するための図である。図16の2aは、ある固有スケールのブロブに対応する。画像要素領域判定部152は、2bに示すように、2値化した文書画像とブロブの外接矩形とを比較すると、ブロブの外接矩形に含まれる連結成分は「Book」となる。画像要素領域判定部152は、判定した連結成分全体の外接矩形2cを、該当する固有スケールでの画像要素領域として抽出する。
【0042】
なお、画像要素領域判定部152は、重心がブロブの外接矩形に含まれていない文字を除外する。例えば、図16の2bにおいて、「Book」の「B」の重心がブロブの外接矩形に含まれておらず、「o」、「o」、「k」の重心がブロブの外接矩形に含まれている場合には、連結成分の外接矩形は、「ook」の外接矩形となる。なお、画像要素領域判定部152は、文字の外接矩形から文字の中心を求め、文字の中心を重心の代わりに用いてもよい。
【0043】
図5〜図8は、各ブロブ画像から決定される画像要素領域の一例を示す図である。図5は、固有スケール値t1に対応するブロブ画像から決定した、文書画像上の画像要素領域を示す。図5に示す画像要素領域は、単語の領域に対応する。図6は、固有スケール値t2に対応するブロブ画像から決定した、文書像上の画像要素領域を示す。図6に示す画像領域要素領域は、行の領域に対応する。
【0044】
図7は、固有スケール値t3に対応するブロブ画像から決定した、文書画像上の画像要素領域を示す。図7に示す画像領域要素領域は、文字ブロックの領域に対応する。図8は、固有スケール値t4に対応するブロブ画像から決定した、文書画像上の画像要素領域を示す。
【0045】
切り出し部153は、画像要素領域の座標を基にして、元の文書画像、または、文書画像の2値画像から、画像要素領域の画像を切り出す処理部である。画像要素領域の画像は、例えば、文字、単語、行、文字ブロックに対応する。切り出し部153は、切り出した画像要素領域の画像を、表示部130に出力する。切り出し部153が切り出す画像要素領域は、各固有スケール値によって生成されるブロブ画像の領域に重心が含まれるもとの文書画像の2値画像の連結成分全体の外接矩形に対応する。なお、切り出し部153は、文字認識などを行う装置に、画像要素領域の画像データを出力してもよい。
【0046】
ところで、画像要素領域の切り出し対象となる画像が、図15に示したような階層構造を持つ画像の場合には、画像要素切り出し部150は、画像要素領域2a、複数の画像要素領域2b等が切り出されることとなる。画像要素切り出し部150が切り出した画像要素領域の画像は、文字認識など目的に応じて切り出される領域となる。
【0047】
次に、画像処理装置100が、固有スケール値を算出する処理の処理手順について説明する。図9は、固有スケール値を算出する処理の処理手順を示すフローチャートである。図9に示す処理は、例えば、画像読み取り部120が画像データを読み取ったことを契機として実行される。図9に示すように、画像処理装置100は、スケール値tの異なるガウスフィルタを画像データに適用することで、複数のスケール画像を生成する(ステップS101)。
【0048】
画像処理装置100は、各スケール画像から全体ブロブ画像情報を抽出する(ステップS102)。画像処理装置100は、スケールの変化に対するブロブ画像の状態変化を基にして、固有スケール値を算出する(ステップS103)。そして、画像処理装置100は、固有スケール値を出力する(ステップS104)。
【0049】
次に、画像処理装置100が、画像要素領域の画像を切り出す処理の処理手順について説明する。図10は、画像要素領域の画像を切り出す処理の処理手順を示すフローチャートである。図10に示す処理は、例えば、画像要素切り出し部150が、スケール計算処理部140から固有スケール値を取得したことを契機に実行される。
【0050】
図10に示すように、画像処理装置100は、固有スケール値を取得し(ステップS201)、未選択の固有スケール値を選択する(ステップS202)。画像処理装置100は、選択した固有スケール値において、画像要素領域を算出する(ステップS203)。
【0051】
画像処理装置100は、元の文書画像、または元の文書画像の2値画像から画像要素領域の画像を切り出し(ステップS204)、固有スケール値を全て選択したか否かを判定する(ステップS205)。画像処理装置100は、固有スケール値を全て選択していない場合には(ステップS205,No)、ステップS202に移行する。一方、画像処理装置100は、固有スケール値を全て選択した場合には(ステップS205,Yes)、切り出した画像を出力する(ステップS206)。
【0052】
次に、本実施例にかかる画像処理装置100の効果について説明する。画像処理装置100は、画像データからスケール値の異なる複数のスケール画像を生成し、各スケール画像からブロブ画像を生成する。そして、画像処理装置100は、ブロブ画像の数とスケール値との関係に基づいて、ブロブ画像の数の変化の割合が所定の閾値に収まるスケール値を固有スケール値として計算する。画像処理装置100は、固有スケール値によって生成されるブロブ画像のブロブに重心が含まれる文書画像の2値画像の連結成分全体の外接矩形を、前記固有スケールにおける画像要素領域とし、対応する文書画像、または文書画像の2値画像の領域を、前記固有スケールでの画像要素として出力する。このため、画像が階層構造を有する画像であったとしても、各階層構造での画像要素領域の切り出しをすべき固有スケール値を自動的に求めることができる。
【0053】
例えば、本実施例にかかる画像処理装置100を利用すれば、図15に示すような階層構造を有する画像であっても、文字認識を行う領域を自動的に出力することができる。画像処理装置100は、図15に示す画像から、文字認識を行う領域2a、複数の領域2bを自動的に求めることができる。
【0054】
また、本実施例にかかる画像処理装置100を利用すれば、文書画像のような階層構造を有する画像から、文字、単語、行、文字ブロックの領域を自動的に出力することができる。このうち、単語、行、文字ブロック等の領域の情報は、画像のレイアウトを電子データに復元する場合に利用することができる。また、単語の領域の情報は、レイアウトの復元のみだけではなく、該領域に対する文字認識結果に対し、単語のスペルチェックを行う場合にも利用することができる。
【0055】
ところで、固有スケール計算部143は、ブロブ数とスケール値との関係に基づいて、固有スケール値を計算していたが、これに限定されるものではない。例えば、固有スケール計算部143は、ブロブの平均面積とスケール値との関係に基づいて、固有スケール値を計算してもよい。すなわち、固有スケール計算部143は、スケール値の変化に対して、ブロブの平均面積の比が変化しない定常状態を検出し、この定常状態に対応するスケール値を固有スケール値として算出してもよい。
【0056】
また、固有スケール計算部143は、スケール画像の極大点の数と、スケール値との関係に基づいて、固有スケール値を計算してもよい。例えば、固有スケール計算部143は、スケール値の変化に対して、ブロブ画像の極大点の数が変化しない定常状態を検出し、この定常状態に対応するスケール値を固有スケール値として算出してもよい。
【0057】
なお、図1に示したスケール計算処理部140、画像要素切り出し部150は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。または、上記処理部140,150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。
【0058】
画像処理装置100は、既知のパーソナルコンピュータ、ワークステーション、携帯電話、PHS端末、移動体通信端末またはPDAなどの情報処理装置に、画像処理装置100の各機能を搭載することによって実現することもできる。
【0059】
図11は、実施例にかかる画像処理装置を構成するコンピュータのハードウェア構成を示す図である。図11に示すように、このコンピュータ30は、各種演算処理を実行するCPU31と、ユーザからのデータの入力を受け付ける入力装置32と、モニタ33を有する。また、コンピュータ30は、記憶媒体からプログラム等を読取る媒体読み取り装置34と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置35を有する。また、コンピュータ30は、画像を読み取るスキャナ36と、各種情報を一時記憶するRAM37と、ハードディスク装置38を有する。各装置31〜38は、バス39に接続される。
【0060】
そして、ハードディスク装置38は、固有スケール計算プログラム38a、画像要素切り出しプログラム38bを記憶する。固有スケール計算プログラム38aは、スケール計算処理部140と同様の機能を有する。画像要素切り出し部38bは、画像要素切り出し部150と同様の機能を有する。
【0061】
CPU31は、固有スケール計算プログラム38a、画像要素切り出しプログラム38bをハードディスク装置38から読み出してRAM37に展開する。固有スケール計算プログラム38aは、固有スケール計算プロセス37aとして機能する。画像要素切り出しプログラム38bは、画像要素切り出しプロセス37bとして機能する。
【0062】
固有スケール計算プロセス37aは、スキャナ34から画像データを取得し、この画像データを基にして、固有スケール値を算出する。画像要素切り出しプロセス37bは、固有スケール値を利用して、画像データから画像要素領域の画像を切り出す。
【0063】
なお、上記の固有スケール計算プログラム38a、画像要素切り出しプログラム38bは、必ずしもハードディスク装置38に格納されている必要はない。例えば、CD−ROM等の記憶媒体に記憶されたプログラムを、コンピュータ30が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等にこのプログラムを記憶させておき、コンピュータ30がこれらからプログラムを読み出して実行するようにしてもよい。
【0064】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0065】
(付記1)画像から暈かし具合の異なる複数のスケール画像を生成するスケール画像生成部と、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成するブロブ画像生成部と
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算する固有スケール計算部と、
を備えたことを特徴とする画像処理装置。
【0066】
(付記2)前記画像は文書画像であり、前記文書画像と前記ブロブ画像に含まれるブロブの領域とを比較し、前記ブロブの領域に含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力する出力部を更に有することを特徴とする付記1に記載の画像処理装置。
【0067】
(付記3)前記出力部は、前記ブロブの領域に含まれる文字の重心または文字列の各文字の重心と、該ブロブの領域とを比較し、ブロブの領域に重心が含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする付記2に記載の画像処理装置。
【0068】
(付記4)前記出力部は、暈かし具合の異なるスケール画像から生成された各ブロブ画像のブロブの領域と、前記文書画像とを比較することで、文字の領域、単語の領域、行の領域、文字ブロックの領域を出力することを特徴とする付記2または3に記載の画像処理装置。
【0069】
(付記5)コンピュータが実行する画像処理方法であって、
画像から暈かし具合の異なる複数のスケール画像を生成し、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成し、
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算することを特徴とする画像処理方法。
【0070】
(付記6)前記画像は文書画像であり、前記文書画像と前記ブロブ画像に含まれるブロブの領域とを比較し、前記ブロブの領域に含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする付記5に記載の画像処理方法。
【0071】
(付記7)前記ブロブの領域に含まれる文字の重心または文字列の各文字の重心と、該ブロブの領域とを比較し、ブロブの領域に重心が含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする付記6に記載の画像処理方法。
【0072】
(付記8)前記暈かし具合の異なるスケール画像から生成された各ブロブ画像のブロブの領域と、前記文書画像とを比較することで、文字の領域、単語の領域、行の領域、文字ブロックの領域を出力することを特徴とする付記6または7に記載の画像処理方法。
【0073】
(付記9)コンピュータに、
画像から暈かし具合の異なる複数のスケール画像を生成し、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成し、
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算する処理を実行させる画像処理プログラム。
【0074】
(付記10)前記画像は文書画像であり、前記文書画像と前記ブロブ画像に含まれるブロブの領域とを比較し、前記ブロブの領域に含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする付記9に記載の画像処理プログラム。
【0075】
(付記11)前記ブロブの領域に含まれる文字の重心または文字列の各文字の重心と、該ブロブの領域とを比較し、ブロブの領域に重心が含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする付記10に記載の画像処理プログラム。
【0076】
(付記12)前記暈かし具合の異なるスケール画像から生成された各ブロブ画像のブロブの領域と、前記文書画像とを比較することで、文字の領域、単語の領域、行の領域、文字ブロックの領域を出力することを特徴とする付記10または11に記載の画像処理プログラム。
【符号の説明】
【0077】
100 画像処理装置
110 入力部
120 画像読み取り部
130 出力部
140 スケール計算処理部
150 画像要素切り出し部
【技術分野】
【0001】
本発明は、画像処理装置等に関する。
【背景技術】
【0002】
近年、OCR(Optical Character Reader)を利用して紙文書を電子化することが行われている。紙文書を電子化することで、利用者は書類の保管場所を節約できる。また、紙文書を電子化することで、文書の検索が容易になったり、文書の内容を再利用したりすることができる。
【0003】
ここで、OCRが紙文書を電子化し、紙文書のレイアウトに対応した電子文書を作成するためには、文書画像から、文字、単語、行、文字ブロック等の切り出しを行う必要がある。
【0004】
従来技術には、文書画像の黒画素を投影したヒストグラムを計算し、ヒストグラムと各閾値とを比較して文書画像から行を切り出すものがある。図12〜図14は、従来技術を説明するための図である。図12の文書画像1aは、紙文書を電子化した画像である。文書画像1aの黒画素を投影してヒストグラムを計算すると、図13のヒストグラム1bとなる。
【0005】
従来技術ではヒストグラム1bを計算した後に、幅T1以下の凸部分と幅T2以下の凹部分を削除することで平滑化を行う。ヒストグラム1bに対して平滑化を行うと、図14のヒストグラム1cとなる。そして、従来技術では、隣接するヒストグラムの値の差分の絶対値と閾値T3とを比較して、絶対値が閾値T3を超えている位置を行として判定する。図14に示す例では、位置aと位置bとの間を行として判定する。
【0006】
上記従来技術では、文書画像から単語、行、文書ブロックを切り出す場合に、多くのパラメータを利用することになる。図12〜図14に示した従来技術では、行を特定するだけでT1〜T3のパラメータが必要となる。単語や文字ブロックを切り出す場合には、更に多くのパラメータを利用者が用意することになる。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】秋山照雄、増田功、「書式指定情報によらない紙面構成要素抽出法」、電子情報通信学会誌J66−D、No.1
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、画像は一般的に尺度に応じて観測される構造が異なる。以下では、この尺度をスケールと表記する。スケールは、画像の暈した場合の暈しの度合いに対応し、ガウス関数を使ったガウスフィルタで暈した場合は、ガウス関数の分散に等しい。更に、あるスケール値で暈した画像を、そのスケールでのスケール画像と表記する。また、ある構造を観測するために、最も適したスケールをその構造の固有スケールと表記する。文書画像では、この固有スケールが大局的に求まる場合がある。図15は、スケールに応じて観測される構造が異なる文書画像の一例を示す図である。図15に示すように、スケールを2aとすると、観測される構造は単一文字の「F」となり、スケールを2bとすると、観測される構造は文字の「E」の集合となり、スケールを2cとすると、観測される構造は四角の集合となる。
【0009】
図15に示したような文書画像から、文字やテクスチャ要素等の切り出しを行う場合には、利用者が文書画像を参照してスケールの値を適宜調整する必要があり、利用者にかかる負担が大きかった。なお、上記ヒストグラムを利用して文字や行等を判定する従来技術は、文字や行等を切り出す場合のパラメータを利用者自身が設定するものである。このため、従来技術では、図15に示した文書画像から文字やテクスチャ要素を切り出す場合には、所望するスケールで文字やテクスチャ要素が認識できるように、各パラメータを利用者が設定する必要があり、利用者にかかる負担を軽減することはできない。
【0010】
開示の技術は、上記に鑑みてなされたものであって、大局的な固有スケールを自動的に導くことができ、かつその大局的な固有スケールにおいて観測される構造に対応する画像要素の領域を自動的に求めることができる画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
開示の画像処理装置は、画像から暈かし具合の異なる複数のスケール画像を生成するスケール画像生成部を有する。また、開示の画像処理装置は、各スケール画像それぞれにおいて、スケール画像内で同一の濃度の持った画素の集合をブロブ画像として生成するブロブ画像生成部を有する。また、開示の画像処理装置は、画像の暈かし具合を示す値の変化に対するブロブ画像の面積または数の変化の割合が所定の閾値に収まる範囲の暈かし具合の値を計算する固有スケール計算部を有する。また、開示の画像処理装置は、固有スケール計算部が計算した暈かし具合の値に対応するスケール画像から抽出されるブロブ画像の領域を、文字認識を行う領域として出力する出力部を有することを要件とする。
【発明の効果】
【0012】
開示の画像処理装置によれば、大局的な固有スケールを自動的に導くことができ、かつその大局的な固有スケールにおいて観測される構造に対応する画像要素の領域を自動的に求めることができる。
【図面の簡単な説明】
【0013】
【図1】図1は、画像処理装置の構成を示す図である。
【図2a】図2aは、文書画像を示す図である。
【図2b】図2bは、文書画像を固有スケール値t0〜t3での各スケール画像と、スケール画像から得られた各ブロブ画像とを示す図である。
【図3】図3は、図2aの画像のブロブ数とスケール値との関係を示す図である。
【図4】図4は、図3のグラフの1次微分の計算結果を示す図である。
【図5】図5は、各スケール画像から抽出される画像要素領域の一例を示す図(1)である。
【図6】図6は、各スケール画像から抽出される画像要素領域の一例を示す図(2)である。
【図7】図7は、各スケール画像から抽出される画像要素領域の一例を示す図(3)である。
【図8】図8は、各スケール画像から抽出される画像要素領域の一例を示す図(4)である。
【図9】図9は、固有スケール値を算出する処理の処理手順を示すフローチャートである。
【図10】図10は、画像要素領域の画像を切り出す処理の処理手順を示すフローチャートである。
【図11】図11は、実施例にかかる画像処理装置を構成するコンピュータのハードウェア構成を示す図である。
【図12】図12は、従来技術を説明するための図(1)である。
【図13】図13は、従来技術を説明するための図(2)である。
【図14】図14は、従来技術を説明するための図(3)である。
【図15】図15は、スケールに応じて観測される構造の異なる階層構造を持つ画像の一例を示す図である。
【図16】図16は、画像要素領域判定部の処理を説明するための図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する画像処理装置、画像処理方法および画像処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0015】
本実施例にかかる画像処理装置の構成について説明する。図1は、画像処理装置の構成を示す図である。図1に示すように、この画像処理装置100は、入力部110、画像読み取り部120、表示部130、スケール計算処理部140、画像要素切り出し部150を有する。
【0016】
入力部110は、キーボードやマウス等の入力装置に対応する。画像読み取り部120は、紙媒体などから画像を読み取り、読み取った画像データをスケール計算処理部140、画像要素切り出し部150に出力する。例えば、画像読み取り部120は、スキャナに対応する。本実施例では、取り扱う画像をグレー画像または白黒の2値画像とする。なお、画像処理装置100は、カラー画像が入力された場合には、明度変換を行い、カラー画像をグレー画像に変換してもよい。表示部130は、ディスプレイなどの表示装置に対応する。
【0017】
スケール計算処理部140は、階層構造を有する画像データ固有の大局的なスケールを計算する処理部である。スケール計算処理部140は、スケール画像生成部141、ブロブ画像生成部142、固有スケール計算部143を有する。
【0018】
スケール画像生成部141は、スケール値を多段階に変えたガウスフィルタを画像データに適用することで、複数のスケール画像を生成する処理部である。スケール画像生成部141は、複数のスケール画像を該当するスケール値と対応付けてブロブ画像生成部142に出力する。
【0019】
ここで、スケール画像生成部141が利用するガウスフィルタは、ガウス関数を使って定義されるフィルタである。このガウスフィルタは、画像を暈かす場合に利用する。式(1)は、2次元のガウス関数gを示すものである。式(1)において、tはスケール値を示す。このスケール値は、暈かす度合いに対応するものである。また、x、yは、画像上の座標を示すものである。
【数1】
【0020】
原画像をIで表すと、この原画像Iとガウス関数で暈かした後の画像Bとの関係は、下記の式(2)、(3)で表される。式(2)の(x、y)は、着目画素の座標である。
【数2】
【数3】
【0021】
ここで、式(2)が成り立つのは、画像が連続でサイズが無限大の理想的な場合である。実際の画像は、離散的であり、サイズは有限である。このため、原画像Iと画像Bとの関係は、下記の式(4)、(5)で表される。式(4)のように、原画像Iと画像Bとの関係は、積分の代わりに和で表される。
【数4】
【数5】
【0022】
式(4)、(5)では、ガウスフィルタとして、ガウス関数の代わりに有限サイズの行列が用いられる。また、ガウスフィルタの高さ、幅のサイズを2s+1とする。sは整数である。式(4)の(i、j)は、着目画素の座標である。ガウスフィルタのサイズ2s+1のsは、一般的にtの定数倍として設計される。例えば、s=t、t=1とし、ガウスフィルタの中心を(m、n)=(0、0)とした場合のガウスフィルタは、式(6)によって表される。
【数6】
【0023】
ブロブ画像生成部142は、各スケール画像からブロブ画像を生成する処理部である。ブロブ画像生成部142は、スケール画像を2値化し連結成分解析を行うことで、一つの連結成分を一つのブロブとする。このブロブは、スケール画像内で、背景より暗い、または明るい画素の集合といえる。ブロブ画像生成部142は、抽出した全てのブロブに対し、例えば背景領域が1ならブロブ領域は0というように、背景とは異なる値を付与した画像をブロブ画像とする。
【0024】
例えば、ブロブ画像生成部142は、スケール値の各画素値と、閾値とを比較し、比較結果に基づいて、スケール画像を2値化することでブロブ画像を生成する。例えば、ブロブ画像生成部142は、スケール画像の各画素において、閾値以上となる画素値を1とし、閾値よりも小さい画素値を0に設定することでスケール画像を2値化する。ブロブ画像生成部142は、スケール画像毎に、ブロブ画像を生成する。
【0025】
図2aは、文書画像を示す図である。図2bは、文書画像からスケール値t0〜t3で得られた各スケール画像と、スケール画像から得られた各ブロブ画像とを示す図である。スケール値の大小関係は、t0<t1<t2<t3とする。図2bに示すように、ブロブ画像生成部142は、スケール値t0によって暈かされたスケール画像10bを2値化し、ブロブ画像10cを生成する。スケール値t0を0とする場合には、ブロブ画像生成部142は、図2aの文書画像をそのまま用いてもよい。
【0026】
図2bの上から2段目に示すように、ブロブ画像生成部142は、スケール値t1によって暈かされたスケール画像10dを2値化し、ブロブ画像10eを生成する。図2bの上から3段目に示すように、ブロブ画像生成部142は、スケール値t2によって暈かされたスケール画像10fを2値化し、ブロブ画像10gを生成する。図2bの上から4段目に示すように、ブロブ画像生成部142は、スケール値t3によって暈かされたスケール画像10hを2値化し、ブロブ画像10iを生成する。図2bに示すように、スケール値が大きくなるにしたがい、ブロブの数が減少し、ブロブの面積の平均値が大きくなる。
【0027】
ブロブ画像生成部142は、スケール画像毎にブロブ画像を生成した後に、スケール画像毎に全体ブロブ情報を生成し、生成した全体ブロブ情報を固有スケール計算部143に出力する。
【0028】
ここで、全体ブロブ情報は、スケール値と、スケール画像と、ブロブ画像と、ブロブ数と、個別ブロブ情報を有する。この個別ブロブ情報は、同一のブロブ画像に含まれるブロブ毎に存在する。個別ブロブ情報は、ブロブの面積、ブロブの外接矩形の頂点の座標、ブロブの重心座標、ブロブ画素座標の配列を有する。
【0029】
例えば、図2aの上から4段目に対応する全体ブロブ情報について説明すると、この全体ブロブ情報は、スケール値「t3」、スケール画像10h、ブロブ画像10i、ブロブ数「3」、ブロブ1a、1b、1cにそれぞれ対応する複数の個別ブロブ情報を含む。
【0030】
図1の説明に戻る。固有スケール計算部143は、全体ブロブ情報に基づいて、複数種類の固有スケール値を算出する処理部である。各固有スケール値は、画像データから画像要素を切り出す場合に利用される値である。例えば、固有スケール値は、文書画像に含まれる、文字、単語、行、文字ブロックの領域を切り出す場合に利用される。固有スケール計算部143は、各固有スケール値と、固有スケール値に対応するスケール画像と、固有スケール値に対応する全体ブログ情報と、元の文書画像とを画像要素切り出し部150に出力する。
【0031】
ここで、ブロブ情報に含まれるブロブ数とスケール値との関係について説明する。図3は、図2aの画像のブロブ数とスケール値との関係を示す図である。図3の横軸は、スケール値tに対応する軸であり、縦軸は、ブロブ数をスケール値の関数とみなしたとき、ブロブ数の対数ln f(t)に対応する軸である。例えば、文書画像のように、階層構造を持つ画像からブロブ数とスケール値との関係を求めると、スケール値を変化させてもブロブ数が変化しない定常状態が発生する。図3に示す例では、部分20a、20b、20c、20dにおいて定常状態となっている。この定常状態は、プラトーと呼ばれる。なお、異なる定常状態の間の状態は、急激にブロブ数が変化しており、この状態を状態遷移とする。
【0032】
固有スケール計算部143は、定常状態の開始点に対応するスケール値を固定スケール値として算出する。図3に示す例では、定常状態20aの開始点に対応するスケール値がt0となる。また、定常状態2bの開始点に対応するスケール値がt1となる。また、定常状態2cの開始点に対応するスケール値がt2となる。また、定常状態20dの開始点に対応するスケール値がt3となる。この場合には、固有スケール計算部143は、スケール値t0、t1、t2、t3を固有スケールとして算出する。
【0033】
固有スケール計算部143の処理を具体的に説明する。まず、固有スケール計算部143は、ブロブ数の対数とスケール値との関係を示すグラフに対して、1次微分df(t)/dtと2次微分d2f(t)/dtを数値的に計算する。図4は、図3のグラフの1次微分の計算結果を示す図である。
【0034】
固有スケール計算部143は、1次微分と2次微分とを計算した後に、1次微分が極小となるスケール値tmを全て検出する。1次微分が極小となる点は、2次微分の値が0となることに等しい。図4に示す例では、1次微分が極小となるスケール値は、tM0、tM1、tM2となる。
【0035】
固有スケール計算部143は、1次微分が極小となるスケール値を求めた後に、このスケール値を徐々に増加させていき、1次微分の絶対値が初めて所定の閾値より小さくなるスケール値を算出する。このスケール値が、定常状態の開始点に対応するスケール値となる。図4に示す例では、1次微分の絶対値が初めて所定の閾値より小さくなるスケール値は、t1、t2、t3となる。
【0036】
また、固有スケール計算部143は、スケール値の初期値t0を検出する。このスケール値t0は、図3の定常状態20aの開始点に対応する。t0=0として、暈かさない文書画像の明度画像としてもよい。固有スケール計算部143は、スケール値t0、t1、t2、t3を固有スケール値として、画像要素切り出し部150に出力する。1次微分の絶対値が初めて所定の閾値より小さくなるスケール値の数がM個の場合には、スケール値の初期値を合わせたM+1個のスケール値が固有スケール値として検出されることになる。
【0037】
図1の説明に戻る。画像要素切り出し部150は、固有スケール値を利用して、画像データから画像要素領域の画像を切り出す処理部である。例えば、画像要素領域の画像は、文字、単語、行、文字ブロックに対応する。この画像要素切り出し部150は、画像2値化部151、画像要素領域判定部152、切り出し部153を有する。画像要素切り出し部150は、出力部の一例である。
【0038】
画像2値化部151は、画像読み取り部120から画像データを取得した場合に、画像データに含まれる画素を白画素と黒画素に2値化する処理部である。画像2値化部151は、文書画像を2値化した画像データを画像要素領域判定部152に出力する。
【0039】
画像要素領域判定部152は、画像データと固有スケール値と全体ブロブ情報に基づいて、画像データに含まれる画像要素の領域を判定する処理部である。例えば、文書画像データに含まれる画像要素は、文字、単語、行、文字ブロックに対応する。
【0040】
具体的に、画像要素領域判定部152の処理を説明する。画像要素領域判定部152は、2値化した文書画像に対してラベリング処理をおこない、各連結成分の外接矩形を抽出する。画像要素領域判定部152は、全体ブロブ情報を基に、2値化した文書画像と、各ブロブの外接矩形とを比較して、ブロブの外接矩形に含まれる連結成分を判定する。そして、画像要素領域判定部152は、判定した連結成分全体の外接矩形を、該当する固有スケールでの画像要素領域として抽出する。画像要素領域判定部152は、抽出した外接矩形の座標を、画像要素領域の座標として切り出し部153に出力する。
【0041】
図16は、画像要素領域判定部の処理を説明するための図である。図16の2aは、ある固有スケールのブロブに対応する。画像要素領域判定部152は、2bに示すように、2値化した文書画像とブロブの外接矩形とを比較すると、ブロブの外接矩形に含まれる連結成分は「Book」となる。画像要素領域判定部152は、判定した連結成分全体の外接矩形2cを、該当する固有スケールでの画像要素領域として抽出する。
【0042】
なお、画像要素領域判定部152は、重心がブロブの外接矩形に含まれていない文字を除外する。例えば、図16の2bにおいて、「Book」の「B」の重心がブロブの外接矩形に含まれておらず、「o」、「o」、「k」の重心がブロブの外接矩形に含まれている場合には、連結成分の外接矩形は、「ook」の外接矩形となる。なお、画像要素領域判定部152は、文字の外接矩形から文字の中心を求め、文字の中心を重心の代わりに用いてもよい。
【0043】
図5〜図8は、各ブロブ画像から決定される画像要素領域の一例を示す図である。図5は、固有スケール値t1に対応するブロブ画像から決定した、文書画像上の画像要素領域を示す。図5に示す画像要素領域は、単語の領域に対応する。図6は、固有スケール値t2に対応するブロブ画像から決定した、文書像上の画像要素領域を示す。図6に示す画像領域要素領域は、行の領域に対応する。
【0044】
図7は、固有スケール値t3に対応するブロブ画像から決定した、文書画像上の画像要素領域を示す。図7に示す画像領域要素領域は、文字ブロックの領域に対応する。図8は、固有スケール値t4に対応するブロブ画像から決定した、文書画像上の画像要素領域を示す。
【0045】
切り出し部153は、画像要素領域の座標を基にして、元の文書画像、または、文書画像の2値画像から、画像要素領域の画像を切り出す処理部である。画像要素領域の画像は、例えば、文字、単語、行、文字ブロックに対応する。切り出し部153は、切り出した画像要素領域の画像を、表示部130に出力する。切り出し部153が切り出す画像要素領域は、各固有スケール値によって生成されるブロブ画像の領域に重心が含まれるもとの文書画像の2値画像の連結成分全体の外接矩形に対応する。なお、切り出し部153は、文字認識などを行う装置に、画像要素領域の画像データを出力してもよい。
【0046】
ところで、画像要素領域の切り出し対象となる画像が、図15に示したような階層構造を持つ画像の場合には、画像要素切り出し部150は、画像要素領域2a、複数の画像要素領域2b等が切り出されることとなる。画像要素切り出し部150が切り出した画像要素領域の画像は、文字認識など目的に応じて切り出される領域となる。
【0047】
次に、画像処理装置100が、固有スケール値を算出する処理の処理手順について説明する。図9は、固有スケール値を算出する処理の処理手順を示すフローチャートである。図9に示す処理は、例えば、画像読み取り部120が画像データを読み取ったことを契機として実行される。図9に示すように、画像処理装置100は、スケール値tの異なるガウスフィルタを画像データに適用することで、複数のスケール画像を生成する(ステップS101)。
【0048】
画像処理装置100は、各スケール画像から全体ブロブ画像情報を抽出する(ステップS102)。画像処理装置100は、スケールの変化に対するブロブ画像の状態変化を基にして、固有スケール値を算出する(ステップS103)。そして、画像処理装置100は、固有スケール値を出力する(ステップS104)。
【0049】
次に、画像処理装置100が、画像要素領域の画像を切り出す処理の処理手順について説明する。図10は、画像要素領域の画像を切り出す処理の処理手順を示すフローチャートである。図10に示す処理は、例えば、画像要素切り出し部150が、スケール計算処理部140から固有スケール値を取得したことを契機に実行される。
【0050】
図10に示すように、画像処理装置100は、固有スケール値を取得し(ステップS201)、未選択の固有スケール値を選択する(ステップS202)。画像処理装置100は、選択した固有スケール値において、画像要素領域を算出する(ステップS203)。
【0051】
画像処理装置100は、元の文書画像、または元の文書画像の2値画像から画像要素領域の画像を切り出し(ステップS204)、固有スケール値を全て選択したか否かを判定する(ステップS205)。画像処理装置100は、固有スケール値を全て選択していない場合には(ステップS205,No)、ステップS202に移行する。一方、画像処理装置100は、固有スケール値を全て選択した場合には(ステップS205,Yes)、切り出した画像を出力する(ステップS206)。
【0052】
次に、本実施例にかかる画像処理装置100の効果について説明する。画像処理装置100は、画像データからスケール値の異なる複数のスケール画像を生成し、各スケール画像からブロブ画像を生成する。そして、画像処理装置100は、ブロブ画像の数とスケール値との関係に基づいて、ブロブ画像の数の変化の割合が所定の閾値に収まるスケール値を固有スケール値として計算する。画像処理装置100は、固有スケール値によって生成されるブロブ画像のブロブに重心が含まれる文書画像の2値画像の連結成分全体の外接矩形を、前記固有スケールにおける画像要素領域とし、対応する文書画像、または文書画像の2値画像の領域を、前記固有スケールでの画像要素として出力する。このため、画像が階層構造を有する画像であったとしても、各階層構造での画像要素領域の切り出しをすべき固有スケール値を自動的に求めることができる。
【0053】
例えば、本実施例にかかる画像処理装置100を利用すれば、図15に示すような階層構造を有する画像であっても、文字認識を行う領域を自動的に出力することができる。画像処理装置100は、図15に示す画像から、文字認識を行う領域2a、複数の領域2bを自動的に求めることができる。
【0054】
また、本実施例にかかる画像処理装置100を利用すれば、文書画像のような階層構造を有する画像から、文字、単語、行、文字ブロックの領域を自動的に出力することができる。このうち、単語、行、文字ブロック等の領域の情報は、画像のレイアウトを電子データに復元する場合に利用することができる。また、単語の領域の情報は、レイアウトの復元のみだけではなく、該領域に対する文字認識結果に対し、単語のスペルチェックを行う場合にも利用することができる。
【0055】
ところで、固有スケール計算部143は、ブロブ数とスケール値との関係に基づいて、固有スケール値を計算していたが、これに限定されるものではない。例えば、固有スケール計算部143は、ブロブの平均面積とスケール値との関係に基づいて、固有スケール値を計算してもよい。すなわち、固有スケール計算部143は、スケール値の変化に対して、ブロブの平均面積の比が変化しない定常状態を検出し、この定常状態に対応するスケール値を固有スケール値として算出してもよい。
【0056】
また、固有スケール計算部143は、スケール画像の極大点の数と、スケール値との関係に基づいて、固有スケール値を計算してもよい。例えば、固有スケール計算部143は、スケール値の変化に対して、ブロブ画像の極大点の数が変化しない定常状態を検出し、この定常状態に対応するスケール値を固有スケール値として算出してもよい。
【0057】
なお、図1に示したスケール計算処理部140、画像要素切り出し部150は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。または、上記処理部140,150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。
【0058】
画像処理装置100は、既知のパーソナルコンピュータ、ワークステーション、携帯電話、PHS端末、移動体通信端末またはPDAなどの情報処理装置に、画像処理装置100の各機能を搭載することによって実現することもできる。
【0059】
図11は、実施例にかかる画像処理装置を構成するコンピュータのハードウェア構成を示す図である。図11に示すように、このコンピュータ30は、各種演算処理を実行するCPU31と、ユーザからのデータの入力を受け付ける入力装置32と、モニタ33を有する。また、コンピュータ30は、記憶媒体からプログラム等を読取る媒体読み取り装置34と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置35を有する。また、コンピュータ30は、画像を読み取るスキャナ36と、各種情報を一時記憶するRAM37と、ハードディスク装置38を有する。各装置31〜38は、バス39に接続される。
【0060】
そして、ハードディスク装置38は、固有スケール計算プログラム38a、画像要素切り出しプログラム38bを記憶する。固有スケール計算プログラム38aは、スケール計算処理部140と同様の機能を有する。画像要素切り出し部38bは、画像要素切り出し部150と同様の機能を有する。
【0061】
CPU31は、固有スケール計算プログラム38a、画像要素切り出しプログラム38bをハードディスク装置38から読み出してRAM37に展開する。固有スケール計算プログラム38aは、固有スケール計算プロセス37aとして機能する。画像要素切り出しプログラム38bは、画像要素切り出しプロセス37bとして機能する。
【0062】
固有スケール計算プロセス37aは、スキャナ34から画像データを取得し、この画像データを基にして、固有スケール値を算出する。画像要素切り出しプロセス37bは、固有スケール値を利用して、画像データから画像要素領域の画像を切り出す。
【0063】
なお、上記の固有スケール計算プログラム38a、画像要素切り出しプログラム38bは、必ずしもハードディスク装置38に格納されている必要はない。例えば、CD−ROM等の記憶媒体に記憶されたプログラムを、コンピュータ30が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等にこのプログラムを記憶させておき、コンピュータ30がこれらからプログラムを読み出して実行するようにしてもよい。
【0064】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0065】
(付記1)画像から暈かし具合の異なる複数のスケール画像を生成するスケール画像生成部と、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成するブロブ画像生成部と
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算する固有スケール計算部と、
を備えたことを特徴とする画像処理装置。
【0066】
(付記2)前記画像は文書画像であり、前記文書画像と前記ブロブ画像に含まれるブロブの領域とを比較し、前記ブロブの領域に含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力する出力部を更に有することを特徴とする付記1に記載の画像処理装置。
【0067】
(付記3)前記出力部は、前記ブロブの領域に含まれる文字の重心または文字列の各文字の重心と、該ブロブの領域とを比較し、ブロブの領域に重心が含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする付記2に記載の画像処理装置。
【0068】
(付記4)前記出力部は、暈かし具合の異なるスケール画像から生成された各ブロブ画像のブロブの領域と、前記文書画像とを比較することで、文字の領域、単語の領域、行の領域、文字ブロックの領域を出力することを特徴とする付記2または3に記載の画像処理装置。
【0069】
(付記5)コンピュータが実行する画像処理方法であって、
画像から暈かし具合の異なる複数のスケール画像を生成し、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成し、
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算することを特徴とする画像処理方法。
【0070】
(付記6)前記画像は文書画像であり、前記文書画像と前記ブロブ画像に含まれるブロブの領域とを比較し、前記ブロブの領域に含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする付記5に記載の画像処理方法。
【0071】
(付記7)前記ブロブの領域に含まれる文字の重心または文字列の各文字の重心と、該ブロブの領域とを比較し、ブロブの領域に重心が含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする付記6に記載の画像処理方法。
【0072】
(付記8)前記暈かし具合の異なるスケール画像から生成された各ブロブ画像のブロブの領域と、前記文書画像とを比較することで、文字の領域、単語の領域、行の領域、文字ブロックの領域を出力することを特徴とする付記6または7に記載の画像処理方法。
【0073】
(付記9)コンピュータに、
画像から暈かし具合の異なる複数のスケール画像を生成し、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成し、
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算する処理を実行させる画像処理プログラム。
【0074】
(付記10)前記画像は文書画像であり、前記文書画像と前記ブロブ画像に含まれるブロブの領域とを比較し、前記ブロブの領域に含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする付記9に記載の画像処理プログラム。
【0075】
(付記11)前記ブロブの領域に含まれる文字の重心または文字列の各文字の重心と、該ブロブの領域とを比較し、ブロブの領域に重心が含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする付記10に記載の画像処理プログラム。
【0076】
(付記12)前記暈かし具合の異なるスケール画像から生成された各ブロブ画像のブロブの領域と、前記文書画像とを比較することで、文字の領域、単語の領域、行の領域、文字ブロックの領域を出力することを特徴とする付記10または11に記載の画像処理プログラム。
【符号の説明】
【0077】
100 画像処理装置
110 入力部
120 画像読み取り部
130 出力部
140 スケール計算処理部
150 画像要素切り出し部
【特許請求の範囲】
【請求項1】
画像から暈かし具合の異なる複数のスケール画像を生成するスケール画像生成部と、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成するブロブ画像生成部と
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算する固有スケール計算部と
を備えたことを特徴とする画像処理装置。
【請求項2】
前記画像は文書画像であり、前記文書画像と前記ブロブ画像に含まれるブロブの領域とを比較し、前記ブロブの領域に含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力する出力部を更に有することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記出力部は、前記ブロブの領域に含まれる文字の重心または文字列の各文字の重心と、該ブロブの領域とを比較し、ブロブの領域に重心が含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記出力部は、暈かし具合の異なるスケール画像から生成された各ブロブ画像のブロブの領域と、前記文書画像とを比較することで、文字の領域、単語の領域、行の領域、文字ブロックの領域を出力することを特徴とする請求項2または3に記載の画像処理装置。
【請求項5】
コンピュータが実行する画像処理方法であって、
画像から暈かし具合の異なる複数のスケール画像を生成し、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成し、
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算することを特徴とする画像処理方法。
【請求項6】
コンピュータに、
画像から暈かし具合の異なる複数のスケール画像を生成し、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成し、
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算する処理を実行させる画像処理プログラム。
【請求項1】
画像から暈かし具合の異なる複数のスケール画像を生成するスケール画像生成部と、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成するブロブ画像生成部と
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算する固有スケール計算部と
を備えたことを特徴とする画像処理装置。
【請求項2】
前記画像は文書画像であり、前記文書画像と前記ブロブ画像に含まれるブロブの領域とを比較し、前記ブロブの領域に含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力する出力部を更に有することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記出力部は、前記ブロブの領域に含まれる文字の重心または文字列の各文字の重心と、該ブロブの領域とを比較し、ブロブの領域に重心が含まれる文字または文字列の外接矩形の領域を、固有スケールでの画像要素領域として出力することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記出力部は、暈かし具合の異なるスケール画像から生成された各ブロブ画像のブロブの領域と、前記文書画像とを比較することで、文字の領域、単語の領域、行の領域、文字ブロックの領域を出力することを特徴とする請求項2または3に記載の画像処理装置。
【請求項5】
コンピュータが実行する画像処理方法であって、
画像から暈かし具合の異なる複数のスケール画像を生成し、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成し、
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算することを特徴とする画像処理方法。
【請求項6】
コンピュータに、
画像から暈かし具合の異なる複数のスケール画像を生成し、
各スケール画像それぞれにおいて、スケール画像内の各画素値と所定の閾値とを比較してスケール画像を2値化することで複数のブロブを含むブロブ画像を生成し、
画像の暈かし具合を示す値と、各ブロブの面積または数との関係に基づいて、前記画像の暈かし具合を示す値の変化に対するブロブの平均面積または数の変化の割合が所定の閾値未満となる範囲の暈かし具合の値を計算する処理を実行させる画像処理プログラム。
【図1】
【図2a】
【図2b】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2a】
【図2b】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−133595(P2012−133595A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−285183(P2010−285183)
【出願日】平成22年12月21日(2010.12.21)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願日】平成22年12月21日(2010.12.21)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]