説明

画像処理装置、画像処理方法及びプログラム

【課題】文字を含む画像に対して適切なボケ度を求めること。
【解決手段】文字を含む画像に対して文字認識を行って各文字領域を抽出し、各文字領域の認識精度を示す得点を求める認識部と、各文字領域のボケの度合いを示すボケ度を算出する局所ボケ度算出部と、得点と、ボケ度とを用いて、画像のボケ度を算出するボケ度算出部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字を含む画像からボケ度を算出する画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
文書を電子化して保存する場合、画像を入力する手段としてスキャナ装置が使われることが多い。スキャナ装置は、内部に光源を持ち、文書に当てた光の反射光をCCD(Charge Coupled Device)等のセンサで読み取ることによってデジタル画像を生成する。
【0003】
スキャナ装置では、光源やセンサまでの距離などの条件が一定であるため、高品質な画像が取得できる。しかし、出力する画像の解像度が低い場合には、小さな文字を鮮明に取得することはできない。
【0004】
また、取得された画像は、データのサイズを小さくするため、例えばJPEG(Joint Photographic Experts Group)等の画像圧縮処理が施されることが多い。一方で、画像圧縮処理として不可逆圧縮を用いる場合、画像の微細な特徴が失われ、画質が低下することがある。
【0005】
さらに、近年ではデジタルカメラによって文書を撮影することによって、文書画像を取得する機会が増えている。文書画像とは、文字を含む文書を撮像した画像である。デジタルカメラで文書画像を取得する場合、スキャナ装置に比べて焦点ズレによる画像のボケが生じやすい。以下では、これら、様々な要因による画質劣化を画像のボケと呼ぶ。
【0006】
ボケた画像は、文字の輪郭が不明瞭になるため、文書の可読性が低下する。また、文書画像のコンテンツを解析するために文字認識などを行う際にも、画像がボケていると精度が落ちるという問題がある。そのため、画像のボケを補正して鮮明な画像を生成する技術が必要とされる。以下では、ボケが生じた画像をより鮮明な画像に変換する操作をボケ補正と呼ぶ。また、ボケが生じている画像をボケ画像と呼ぶ。
【0007】
画像がどの程度ボケているかが分かっている場合には、ボケの逆フィルタや画像の鮮鋭化によってボケていない画像を復元できることが知られている。そのため、入力画像のボケの程度(以下、ボケ度と呼ぶ)を求めてボケ画像を適切に補正する方法が提案されている。
【0008】
例えば、画像のボケ度を判定するために距離センサなどの付加的な装置を用いる技術がある。また、瞳画像から得られるエッジの鮮鋭度によってボケ度を判定する技術がある。また、画像から文字の位置を抽出し、文字のエッジ部分で中間階調のピクセルの幅を求めることによって、ボケの程度を判定する技術がある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2002−112099号公報
【特許文献2】特開2005−332382号公報
【特許文献3】特許第4315024号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、距離センサを用いる従来技術では、特別なセンサを必要とするため、コスト高となってしまう。そこで、入力画像そのものを用いてボケ度を判定する場合、文字領域や瞳領域を抽出する処理に誤りがあるときは、得られるボケ度は不適切な値となる。不適切なボケ度によりボケ補正を行うと、画質がさらに劣化してしまう可能性がある。
【0011】
よって、従来技術では、画像そのものを用いてボケ度を算出する場合、文字を含む画像に対して適切なボケ度を求めることができないという問題点があった。
【0012】
そこで、開示の技術では、画像そのものを用いてボケ度を算出する場合に、文字を含む画像に対して適切なボケ度を求めることができる画像処理装置、画像処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
開示の一態様における画像処理装置は、文字を含む画像に対して文字認識を行って各文字領域を抽出し、前記各文字領域の認識精度を示す得点を求める認識部と、前記各文字領域のボケの度合いを示すボケ度を算出する局所ボケ度算出部と、前記得点と、前記ボケ度とを用いて、前記画像のボケ度を算出するボケ度算出部とを備える。
【発明の効果】
【0014】
開示の技術によれば、画像そのものを用いてボケ度を算出する場合でも、文字を含む画像に対して適切なボケ度を求めることができる。
【図面の簡単な説明】
【0015】
【図1】実施例1における画像処理装置のハードウェアの一例を示すブロック図。
【図2】実施例1における画像処理装置の機能の一例を示すブロック図。
【図3】文書画像に含まれる文字の一例を示す図。
【図4】選択された文字の一例を示す図。
【図5】認識結果の文字の位置を示す図。
【図6】ソーベル・フィルタを示す図。
【図7】局所ボケ度と、勾配比との関係を示す図。
【図8】正解の頻度分布と不正解の頻度分布との一例を示す図。
【図9】正解の累積頻度分布と、不正解の累積頻度分布との一例を示す図。
【図10】高域強調空間フィルタの一例を示す図。
【図11】実施例1における画像処理の一例を示すフローチャート。
【図12】実施例1におけるボケ度算出処理の一例を示すフローチャート。
【図13】実施例2における画像処理装置の機能の一例を示すブロック図。
【図14】判定部の機能の一例(その1)を示す図。
【図15】判定部の機能の一例(その2)を示す図。
【図16】実施例2における画像処理の一例を示すフローチャート。
【図17】切替部の処理の一例を示すフローチャート。
【図18】実施例3における画像処理装置の機能の一例を示すブロック図。
【図19】文書画像の部分領域の一例を示す図。
【図20】画素毎のボケ度を算出する処理を説明するための図。
【図21】実施例3における画像処理の一例を示すフローチャート。
【図22】ボケ度補間処理の一例を示すフローチャート。
【発明を実施するための形態】
【0016】
以下、各実施例について、添付図面を参照しながら説明する。
【0017】
[実施例1]
<ハードウェア>
図1は、実施例1における画像処理装置10のハードウェアの一例を示すブロック図である。図1に示す例では、画像処理装置10は、画像入力部11、表示部12と接続される。画像入力部11は、例えばスキャナ装置や、デジタルカメラなどのデジタル画像を生成する装置である。
【0018】
例えば、画像入力部11をスキャナ装置とした場合、画像入力部11は、紙面上の画像をスキャンして二次元に配置されたx,y座標に対して一つずつ画素値を読み込む。読み込まれる画素値がカラー画像の場合、画素値はR(赤色)、G(緑色)、B(青色)の3色の組で表される。
【0019】
読み込まれる画像がグレイ画像の場合、画素値は明度値を表すことが多い。RGBの3色のカラー画素値は、例えば明度値=0.299×R+0.587×G+0.114×Bの変換式を用いて明度値へ変換することができる。
【0020】
画像のボケ補正をカラー画像に対して行う場合には、各色の相関を考慮する場合と考慮しない場合(各色は独立)がある。ここでは、各色の相関は考慮せず、明度画像に対する補正処理を、3色それぞれに独立に適用することによって、カラー画像の補正を行う場合を想定する。
【0021】
そのため、以下では、画素値としては明度値を想定し、画素ごとの明度値は0〜255の整数(すなわち1画素が1バイト)で表されるものとする。画像入力部11により読み込まれた画素値は、画像処理装置10に出力される。
【0022】
画像処理装置10は、画像入力部11から取得した画像に対して、画像のボケの程度を示すボケ度を算出する。このとき、取得される画像は、例えば文字を含む画像とする。以下、文字を含む画像を、文書画像とも呼ぶ。
【0023】
画像処理装置10は、算出したボケ度を用いてボケ補正を行う。画像処理装置10は、ボケ補正後の画像を表示部12に表示するよう制御してもよい。
【0024】
表示部12は、例えばCRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)等であり、画像処理装置10から取得したボケ補正後の画像を表示する。
【0025】
ここで、画像処理装置10は、制御部101、主記憶部102、補助記憶部103、通信部104、ドライブ装置105を有する。各部は、バスを介して相互にデータ送受信可能に接続されている。
【0026】
制御部101は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPU(Central Processing Unit)である。また、制御部101は、主記憶部102や補助記憶部103に記憶されたプログラムを実行する演算装置であり、入力装置や記憶装置からデータを受け取り、演算、加工した上で、出力装置や記憶装置に出力する。
【0027】
主記憶部102は、例えば、ROM(Read Only Memory)やRAM(Random Access Memory)などである。主記憶部102は、制御部101が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【0028】
補助記憶部103は、例えばHDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部103は、例えば画像入力部10から取得した画像を記憶する。
【0029】
通信部104は、有線又は無線で周辺機器とデータ通信を行う。通信部104は、例えばネットワークを介して、文字を含む画像を取得し、補助記憶部103に記憶する。
【0030】
ドライブ装置105は、記録媒体106、例えばフレキシブルディスクやCD(Compact Disc)から所定のプログラムを読み出し、記憶装置にインストールする。
【0031】
また、記録媒体106に、所定のプログラムを格納し、この記録媒体106に格納されたプログラムは、ドライブ装置105を介して画像処理装置10にインストールされる。インストールされた所定のプログラムは、画像処理装置10により実行可能となる。
【0032】
なお、画像処理装置10は、画像入力部11及び表示部12を別構成としたが、どちらか一方、又は両方を含む構成としてもよい。
【0033】
<機能>
図2は、実施例1における画像処理装置10の機能の一例を示すブロック図である。図2に示す例では、画像処理装置10は、メモリ201、取得部202、ボケ度判定部203、ボケ補正部210を有する。
【0034】
メモリ201は、画像入力部11や、通信部104、ドライブ装置105から取得した画像を記憶する。この画像は、例えば文書画像である。
【0035】
取得部202は、メモリ201から文書画像を取得し、取得した文書画像をボケ度判定部203に出力する。
【0036】
ボケ度判定部203は、文書画像に対して文字認識処理を行い、認識された文字の得点と、認識された文字のボケ度とに基づき画像全体のボケ度を算出する。認識された文字の得点を用いることで、認識された文字が不適切であった場合を除去することができ、適切な文字に基づいて、画像全体のボケ度を算出することができる。
【0037】
ここで、ボケ度判定部203の概要を説明する。ボケ度判定部203は、図3に示す文書画像に対してボケ度を算出する場合を想定する。図3は、文書画像に含まれる文字の一例を示す図である。図3に示す文書画像は、ボケた画像となっている。
【0038】
ボケ度判定部203は、図3に示す文書画像に対して、文字認識処理を行う。ボケ度判定部203は、「The threshold correction method consists of two submethods.」という文字に対し、「Tha ihresnold cOMctior method oonsisU of nvo submelhods.」と文字認識したとする。
【0039】
ボケ度判定部203は、認識された文字毎に、エッジ強度などを用いてボケ度を算出する。ボケ度判定部203は、正しく認識された文字のボケ度のみを用いて全体のボケ度を算出することが好ましい。そこで、ボケ度判定部203は、認識された文字の得点を用いてどの文字を用いるかを選択する。
【0040】
図4は、選択された文字の一例を示す図である。図4に示す例では、「Th hres old c ctio m thod onsis of o subme hods.」の文字が画像全体のボケ度算出に用いられる。これにより、適切に認識されていない文字によるボケ度を、画像全体のボケ度算出から除去ことができるので、適切な画像全体のボケ度を算出することができる。
【0041】
以下、上述した機能を果たすためのボケ度判定部203の機能について、詳しく説明する。
【0042】
図2に戻り、ボケ度判定部203は、認識部205、信頼度算出部207、局所ボケ度算出部206、ボケ度算出部208を有する。
【0043】
認識部205は、文書画像を入力して、文字認識処理を行い、画像中の文字の位置と認識結果とを出力する。認識結果は、文字認識された文字コードと、認識精度を示す得点とを含む。
【0044】
認識部205は、文字認識処理を実施するため、例えば市販されているOCR(Optical Character Recognition)ソフトウェアを用いればよい。例えば、ABBYY社のFineReaderは、開発キット(SDK)を提供しているので、一文字ごとの位置座標と認識結果の文字コードおよび得点をプログラム中から取得することが可能である。
【0045】
図5は、認識結果の文字の位置を示す図である。認識結果の文字は、例えば図5に示すように、文字画像の外接矩形の左上(x1,y1)及び右下(x2,y2)の座標値によって文字の位置が示される。
【0046】
ここでは、この外接矩形の中心点(cx,cy)=((x1+x2)/2,(y1+y2)/2)を、文字の位置座標とみなすこととする。認識結果は、文字コードと得点の組である。
【0047】
得点は、文字認識ソフトウェアによって定義が異なり、値が大きい方が認識結果の評価(正解可能性)が高い場合と、逆に値が小さい方が評価が高い場合とに分けられる。前者は尤度と呼ぶことが多く、後者は距離と呼ぶことが多い。ここでは説明を簡単にするため、得点は、正解の可能性が無い場合を0、最も高い場合を100として、0〜100の整数値で示されるものとする。
【0048】
認識部205は、認識された各文字の位置が示す文字領域を局所ボケ度算出部206に出力する。また、認識部205は、認識された各文字の位置と認識結果とを信頼度算出部207に出力する。
【0049】
図2に戻り、局所ボケ度算出部206は、文字の認識結果から得られた文字領域ごとに、ボケの度合いを求める。文字領域のボケ度を局所ボケ度と呼ぶ。まず、局所ボケ度算出部206は、文字領域内の全ての画素について、勾配値を求める。
【0050】
局所ボケ度算出部206は、勾配値を求めるため、ソーベル・フィルタと呼ばれる勾配フィルタと画像との積和演算結果を求め,x方向とy方向の勾配値を求める。図6は、ソーベル・フィルタを示す図である。図6(A)は、x方向のフィルタを示し、図6(B)は、y方向のフィルタを示す。
【0051】
x方向とy方向の勾配値をそれぞれSx,Syとすると、勾配値Sは式(1)で求められる。
【0052】
【数1】

【0053】
文字領域中で最大の勾配値をSmaxとする。また、文字領域中で最大の画素値をVmax、最小の画素値をVminとする。ここで、勾配比と呼ぶ値RTを式(2)により定義する。
【0054】
【数2】

【0055】
局所ボケ度算出部206は、文字領域に対して勾配比RTを求めたら、図7に示すようなグラフを用いて局所ボケ度BDを求める。図7は、局所ボケ度と、勾配比との関係を示す図である。図7に示すグラフは、任意に設定することができるが、一般的には図7に示すように水平な領域を含む単調増加グラフが用いられる。
【0056】
グラフが斜めである区間は、例えばRTが0.5〜3.0のように所定範囲を適宜設定することができる。これにより、局所ボケ度算出部206は、文字領域の画像から勾配比RTを用いて局所ボケ度BDを求めることができる。BDの値は、0〜1の間の値を取る。
【0057】
なお、局所ボケ度算出部206に入力された画像がカラーの場合には、R,G,Bの3色に対して同様の計算を行い、各色で得られた局所ボケ度の平均値を文字領域の局所ボケ度とすればよい。
【0058】
なお、局所ボケ度を算出する方法として、上記以外にも他の公知の技術を用いてもよい。例えば、文字認識の機能を用いて局所ボケ度を算出する方法もある。
【0059】
通常、文字認識で用いる認識辞書は、文字ごとに大量の学習用文字画像を用いて学習して作成する。ここで、学習用文字画像にボケ変換を施した複数の学習画像を用意し、画像のボケ度に応じて複数のグループに分けて、グループ毎に認識用辞書を学習するとする。その結果、画像のボケ度に応じて複数の認識辞書が作られる。
【0060】
文字認識を行う際には、全てのボケ度の辞書を用いて認識距離を計算し、この認識距離が最も小さな結果が、全体での認識結果だとする。ここで、最も小さな認識距離となった辞書が、いずれのボケ度の辞書を用いたものかによって、認識対象画像のボケ度を判定することもできる。この場合、局所ボケ度算出部206は、認識部205から局所ボケ度を取得する。
【0061】
上述したように、複数の画像品質に対応した辞書を用いて、文字の類似度が最も高い辞書に対するボケ度を求める方法は、例えば特開2003−145898を参照されたい。局所ボケ度算出部206は、求めた局所ボケ度をボケ度算出部208に出力する。
【0062】
信頼度算出部207は、文字認識の得点に基いて、その文字領域から得られた局所ボケ度の信頼性を示す信頼度を求める。局所ボケ度の信頼性とは、局所ボケ度がボケ度判定に用いることができるかである。
【0063】
信頼度算出部207は、例えば、文字認識の結果が正解である可能性を確率値として求め、その確率値を信頼度として用いれば良い。
【0064】
文字認識結果から得られる得点は、必ずしも正解確率を示すわけではない。よって、信頼度算出部207は、得点から正解確率を示す値への変換をするとよい。例えば、大量の文字画像を含む学習データを用いて、文字カテゴリごとに認識結果が正解である場合の得点と、不正解である場合の得点の頻度分布を求めて、認識得点から正解確率を求める技術がある。この技術は、O.Velek, S.Jaegar, M.Nakagawa: "Accuulated-Recognition-Rate Normalization for Combining Multiple On/Off-Line Japanese Character Classifiers Tested on a Large Database, " 4th. Intl. Workshop on Multiple Classifier Systems (MCS2003), pp.196-205 (2003)(参考文献1)を参照されたい。
【0065】
次に、図8と図9とを用いて、認識得点から正解確率を求める手順を簡単に説明する。まず、参考文献1のように、文字カテゴリごとに大量の学習用画像を用意し、その文字画像を、認識部205を用いて認識させる。
【0066】
次に、信頼度算出部207は、個々の画像から得られた認識得点と、認識結果が正解か不正解かによって頻度を求める。図8は、正解の頻度分布と不正解の頻度分布との一例を示す図である。図8及び図9では、実線が正解の分布であり、点線が不正解の分布を示す。
【0067】
次に、信頼度算出部207は、図8に示す頻度分布から累積頻度分布を求める。図9は、正解の累積頻度分布と、不正解の累積頻度分布との一例を示す図である。図9に示す正解の累積頻度分布は、得点が小さい方から順に累積し、不正解の累積分布は得点が大きい方から順に累積する。最大値を同じ値に正規化すると、図9に示すグラフが得られる。
【0068】
ここで、認識得点に対して正解の累積頻度をAc、不正解の累積頻度をAwだとすると、信頼度算出部207は、その認識得点に対する正解確率Pを、式(3)により求める。
P=Ac/(Ac+Aw) ・・・式(3)
【0069】
ここで、図8に示す頻度分布における正解の分布をBc(i)、不正解の分布をBw(i)、図14に示す累積頻度分布における正解の分布をAc(i)、不正解の分布をAw(i)とする。また、認識得点は最小値が0、最大値はDだとする。
【0070】
信頼度算出部207は、図9に示す累積頻度分布を、式(4)、式(5)により求める。
【0071】
【数3】

【0072】
【数4】

【0073】
信頼度算出部207は、文字領域毎に信頼度を示す正解確率Pを算出する。信頼度算出部207は、算出した信頼度をボケ度算出部208に出力する。
【0074】
図2に戻り、ボケ度算出部208は、局所ボケ度算出部206から文字領域毎の局所ボケ度BDと、信頼度算出部207から文字領域毎に信頼度とを取得する。ボケ度算出部208は、局所ボケ度と信頼度とに基いて、文書画像全体のボケ度を算出する。
【0075】
ここで、文書画像中からN個の文字領域が抽出されたものとする。それぞれの文字領域の局所ボケ度をBD(i)、信頼度をP(i)とすると、文書画像全体のボケ度Bdocは、式(6)を用いて計算される。
【0076】
【数5】

【0077】
ボケ度算出部208は、算出したボケ度Bdocをボケ補正部210に出力する。なお、ボケ度算出部208は、信頼度の代わりに、認識部205により求められた得点を用いてもよい。得点を用いる場合、ボケ度算出部208は、得点を正規化して例えば0〜1の値に変換し、この正規化された得点を用いて局所ボケ度を重み付け平均して、画像全体のボケ度を算出する。得点を用いる場合は、信頼度算出部207は必要ない。
【0078】
これにより、信頼度が高い文字領域の局所ボケ度を優先した文書画像全体のボケ度を算出することができる。
【0079】
ボケ補正部210は、ボケ度算出部208からボケ度を取得する。ボケ補正部210は、取得したボケ度に基づいて画像を鮮鋭化してボケ画像を明瞭な画像に変換する。ここで、入力画像のx,y座標の画素値をI(x,y)で表し、ボケ補正後の画素値をI'(x,y)とする。また、ボケ度算出部208から取得したボケ度をBdocとする。
【0080】
画像のボケを補正してボケ以前の画像を復元するための手法は、例えばウィーナ・フィルタや、より単純に画像の広域成分を強調する高域強調フィルタを用いればよい。このウィーナ・フィルタや高域強調フィルタは、「田村秀行「コンピュータ画像処理」(オーム社),ISBN4-274-13264-1」の109、121ページなど(参考文献2)を参照されたい。
【0081】
ここでは、高域強調フィルタを用いた方法を説明する。図10は、高域強調空間フィルタの一例を示す図である。図10に示す例は、入力画像の二次微分であるラプラシアンを入力画像から引いた差分である。この計算式を、式(7)に示す。ここで、J(x,y)は高域強調後の画素値であり、▽2I(x,y)はラプラシアンを表す。
【0082】
【数6】

【0083】
ボケ補正部210は、式(7)により高域強調後の画素値を算出する。図10に示すフィルタの値を係数として入力画像と畳み込み積和演算することを示すのが、式(7)である。
【0084】
図10を用いた変換は、ボケの程度が強い場合には画像を鮮明化するために有効である。しかし、ボケの程度が弱い場合にはかえって画像の高域成分を強調し過ぎてしまうという問題がある。そのため、ボケ補正部210は、ボケ度Bdocで強調後の画素値を重み付けして、補正画像I'(x,y)を算出する。その計算式は、式(8)である。
【0085】
【数7】

これにより、画像処理装置10は、文書画像に対して適切なボケ度を求め、適切なボケ度に基づいてボケ補正を行うことができる。
【0086】
なお、局所ボケ度算出部206は、抽出された全ての文字領域に対して局所ボケ度を算出するのではなく、得点や信頼度が所定の閾値以上である文字領域に対してのみ、局所ボケ度を算出するようにしてもよい。これにより、演算回数を減らすことができる。
【0087】
<動作>
次に、実施例1における画像処理装置10の動作について説明する。図11は、実施例1における画像処理の一例を示すフローチャートである。
【0088】
図11に示すステップS101で、取得部202は、メモリ201から文書画像を取得する。
【0089】
ステップS102で、認識部205は、文字認識処理を行って、1又は複数の文字領域を抽出する。
【0090】
ステップS103で、ボケ度判定部203は、文字領域の得点と、文字領域の局所ボケ度とに基づき、画像全体のボケ度を算出する。この処理は、図12を用いて詳しく説明する。
【0091】
ステップS104で、ボケ補正部210は、ボケ度判定部203により算出されたボケ度に基づいて、画像補正を行う。画像補正は、例えば、式(7)や式(8)に示す演算である。
【0092】
図12は、実施例1におけるボケ度算出処理の一例を示すフローチャートである。図12に示すステップS201で、認識部205は、抽出した文字領域の文字の位置座標と、認識結果(文字コードと得点)を取得する。
【0093】
ステップS202で、信頼度算出部207は、文字領域毎に文字の正解確率を求め、この正解確率を信頼度とする。
【0094】
ステップS203で、ボケ度判定部203は、信頼度が0より大きな文字の数が0であるか否かを判定する。この条件を満たす場合(ステップS203−YES)文字がないため処理を終了し、この条件を満たさない場合(ステップS203−NO)ステップS204に進む。
【0095】
ステップS204で、局所ボケ度算出部206は、信頼度が0より大きな文字の局所ボケ度を求める。
【0096】
ステップS205で、ボケ度算出部208は、信頼度と、局所ボケ度とに基づき、画像全体のボケ度を算出する。
【0097】
ステップS206で、ボケ度算出部208は、算出したボケ度をボケ補正部210に出力する。
【0098】
以上、実施例1によれば、画像そのものを用いてボケ度を算出する場合に、文字を含む画像に対して適切なボケ度を求めることができる。これにより、実施例1によれば、適切なボケ度に基づき、ボケ補正の精度を向上させることができる。
【0099】
また、実施例1によれば、センサ等の特殊な装置を用いることなく、画像自体を解析することにより、ボケの少ないより鮮明な文書画像を得ることができる。これにより、文書画像の可読性の向上や、文字認識の精度向上が見込まれる。また、デジタルカメラ等によって焦点が合わない文書画像が取得された場合や、画像圧縮などによって文字画像の鮮明度が低下した場合でも、文書画像の認識・検索や参照が精度良く実施できるようになる。
【0100】
[実施例2]
次に、実施例2における画像処理装置について説明する。実施例2では、ボケ度算出処理とボケ補正処理とを繰り返すことで、文字認識の精度が向上し、ボケ度算出に用いる文字領域の数を増やすことができる。なお、実施例2における画像処理装置のハードウェアは、実施例1と同様であるため、その説明を省略する。
【0101】
<機能>
図13は、実施例2における画像処理装置20の機能の一例を示すブロック図である。図13に示す構成で、図2に示す構成と同様のものは同じ符号を付し、その説明を省略する。
【0102】
メモリ301は、実施例1で説明した画像に加えて、ボケ補正された補正画像を記憶する。
【0103】
取得部302は、ボケ度を繰り返し算出する場合は、メモリ301に記憶されている補正画像を取得し、取得した補正画像をボケ度判定部203に出力する。
【0104】
ボケ度判定部203は、繰り返しの2回目以降は、補正画像に対してボケ度を算出する処理を行う。
【0105】
ボケ補正部303は、ボケ補正した補正画像を、メモリ301及び繰り返し制御部304に出力する。
【0106】
繰り返し制御部304は、ボケ補正された補正画像を文字認識して画像のボケ度を算出する処理とボケ補正を行う処理とを、所定の条件を満たすまで繰り返し実行する。繰り返し制御部304は、判定部305と切替部306を有する。
【0107】
判定部305は、ボケ補正を行う処理の繰り返しを終了するか否かを判定する。例えば、繰り返し回数があらかじめ設定された回数に固定されているのであれば、判定部305は、繰り返し回数をカウントして所定の回数と比較すれば良い。
【0108】
その他の終了条件を用いるのであれば、それらの条件を判定するロジックを判定部305に組み込めばよい。
【0109】
判定部305は、「繰り返しを終了する/終了しない」の判定結果と、「入力画像を出力する/補正画像を出力する」の判定結果という2つの結果を、切替部306に出力する。
【0110】
切替部306は、判定部305による判定結果に基づいて、出力する画像を切り替える。まず、切替部306は、「繰り返しを終了する」という判定が入力された場合、入力画像又は補正画像を出力する。切替部306は、「繰り返しを終了しない」という判定が入力された場合、画像を出力しない。
【0111】
繰り返し制御部304は、「繰り返しを終了しない」という判定が得られた場合、ボケ度の算出処理と、ボケ補正処理との繰り返しを実行する。例えば、繰り返し制御部304は、メモリ301に記憶された補正画像を取得部302に出力させたり、メモリ301から補正画像を取得するよう取得部302に命令したりする。これにより、補正画像に基づいてボケ度算出を繰り返すことができる。
【0112】
図14は、判定部305の機能の一例(その1)を示す図である。図14に示す例では、判定部305は、繰り返しの終了条件として繰り返し回数が所定回数になったことを用いる。
【0113】
図14に示す判定部305は、繰り返し回数カウンタ401、繰り返し回数比較部402を有する。
【0114】
繰り返し回数カウンタ401は、ボケ度の算出処理とボケ補正処理との繰り返し回数をカウントする。
【0115】
繰り返し回数比較部402は、所定回数を保持し、繰り返し回数カウンタ401によりカウントされた繰り返し回数と所定回数とを比較する。所定回数は、例えば5回とする。
【0116】
繰り返し回数比較部402は、繰り返し回数が所定回数に達していなければ、「繰り返しを終了しない」を切替部306に出力し、所定回数に達していれば、「繰り返しを終了する」を切替部306に出力する。
【0117】
なお、この場合では、判定部305は、出力する画像については常に「補正画像を出力する」を判定結果として、切替部306に出力する。
【0118】
図15は、判定部305の機能の一例(その2)を示す図である。図15に示す例では、判定部305は、繰り返し前後の認識結果を用いた終了条件を判定する。
【0119】
図15に示す判定部305は、認識結果保持部501、認識結果比較部502を有する。
【0120】
認識結果保持部501は、繰り返し直前の文字の認識結果を保持する。認識結果は、例えば、各文字領域の位置座標、文字コード、得点を含む。また、認識結果には、信頼度算出部207により算出された信頼度を含めてもよい。
【0121】
認識結果比較部502は、最新の認識結果と保持された認識結果とを比較する。例えば、認識結果比較部502は、繰り返し前後の認識結果を比較する。このとき、直前の認識結果よりも最新の認識結果の評価が向上していれば、認識結果比較部502は、「繰り返しを終了しない」を、切替部306に出力する。
【0122】
一方、直前の認識結果と最新の認識結果との評価が同じか、又は最新の認識結果の方が直前の認識結果よりも悪いと評価された場合は、認識結果比較部502は、「繰り返しを終了する」を切替部306に出力する。
【0123】
後者の場合、判定部305は、「入力画像を出力する」を切替部306に出力する。これは、最新の認識結果に基づいて得られた文字領域の信頼度が直前の結果で得られた文字領域の信頼度よりも低いことを意味するので、最新の補正画像ではなく、メモリ301に保持されている直前の補正画像を出力するということを意味する。
【0124】
ここで、認識結果比較部502による、認識結果が改善したか否かを判定する方法について説明する。認識結果の中には、抽出された文字領域の信頼度が含められるとする。認識結果比較部502は、この信頼度を用いて認識結果の比較を行う。信頼度は、上述したように0〜1の連続値を持つ。
【0125】
ここで、信頼度の閾値を例えば0.5のように定め、認識結果比較部502は、繰り返し前後における、この閾値を超える信頼度を有する文字領域の数を数える。この数が多いほど認識結果の評価値が高いものとして、認識結果比較部502は、認識結果の改善の有無を判定する。閾値を超える信頼度を有する文字領域の数が増えるということは、ボケ補正の効果が表れていることを意味する。
【0126】
これにより、ボケ度算出処理と、ボケ補正処理とを繰り返すことで、ボケ補正の効果を高めることができる。ボケ度算出に用いる文字領域の数を増やすことができ、より適切なボケ度を求めることができる。
【0127】
<動作>
次に、実施例2における画像処理装置20の動作について説明する。図16は、実施例2における画像処理の一例を示すフローチャートである。図16に示すステップS301〜304は、図11に示すステップS101〜S104と同様であるため、その説明を省略する。
【0128】
ステップS305で、判定部305は、繰り返し終了条件を満たすかを判定する。繰り返し終了条件は、上述したように、例えば繰り返し回数を用いたり、繰り返し前後の認識結果を用いたりする条件がある。
【0129】
繰り返し終了と判定された場合(ステップS305−YES)ステップS306に進み、繰り返し終了ではないと判定された場合(ステップS305−NO)ステップS301に戻る。繰り返しの場合、取得部302は、補正画像をメモリ301から取得する。
【0130】
ステップS306で、切替部306は、繰り返し前、又は繰り返し後の補正画像を出力する。出力先は、画像処理装置20内のメモリや、表示部12などである。
【0131】
図17は、切替部306の処理の一例を示すフローチャートである。図17に示すステップS401で、切替部306は、判定部305の判定結果を入力する。
【0132】
ステップS402で、切替部306は、判定結果が「入力画像を出力する」であるか否かを判定する。例えば、図15に示す判定部305であれば、「入力画像を出力する」が判定結果に含められ、図14に示す判定部305であれば、「補正画像を出力する」が判定結果に含められる。
【0133】
S402の条件が満たされれば(ステップS402−YES)ステップS403に進み、S402の条件が満たされなければ(ステップS402−NO)ステップS404に進む。
【0134】
ステップS403で、切替部306は、メモリ301に記憶されている繰り返し直前の補正画像を出力する。
【0135】
ステップS404で、切替部306は、ボケ補正部303により補正された、繰り返し後の補正画像を出力する。
【0136】
以上、実施例2によれば、ボケ度算出処理と、ボケ補正処理とを繰り返すことで、ボケ補正の効果を高めることができる。また、ボケ度算出に用いる文字領域の数を増やすことができ、より適切なボケ度を求めることができる。
【0137】
また、ボケ補正をする入力画像は画質が悪いため、文字認識の精度が低くなる場合が多いという問題点を、実施例2では解消することができる。繰り返しボケ補正を行うことで、画質が向上し、文字認識の精度が向上するためである。
【0138】
[実施例3]
次に、実施例3における画像処理装置について説明する。実施例3では、文書画像を部分領域に分割し、各領域で求めたボケ度を用いて画素ごとのボケ度を算出する。
【0139】
部分領域毎のボケ度を算出する技術は、例えば、特許文献3や、特開2005−332381号公報に記載されているように、画像を複数の部分領域に分割し、部分領域のボケ度により、判読可能か否かを判定する。また、部分領域の画素ごとのボケ度を求め、画素ごとにボケ補正を行うこともできる。
【0140】
従来技術では、文字が存在しない部分領域からはボケ度が得られず、画素ごとのボケ度を算出できないため、ボケ度によるボケ補正ができない画素が存在してしまう。また、仮に全ての部分領域内に文字が存在している場合でも、文字検出に失敗すれば、その文字は無いものとして扱われる。よって、文書画像を部分領域に分割することによって画素ごとのボケ度を求める方法では、ボケ度が得られない部分領域が存在するという問題が発生する。
【0141】
そこで、実施例3では、文字が存在しない部分領域又は文字認識に失敗した部分領域に対して、ボケ度が得られている他の部分領域からボケ度を算出して設定する。これにより、文字が存在しない、又は文字認識に失敗した部分領域に対しても、他の部分領域と同様にボケ補正を行うことができる。なお、実施例2における画像処理装置のハードウェアは、実施例1と同様であるため、その説明を省略する。
【0142】
<構成>
図18は、実施例3における画像処理装置30の機能の一例を示すブロック図である。図18に示す構成で、図2に示す構成と同様のものは同じ符号を付し、その説明を省略する。実施例3では、ボケ度判定部601とボケ補正部607とが他の実施例とは異なる。
【0143】
分割部602は、入力画像を部分領域に分割する。分割の方法は任意である。例えば、部分領域のサイズを縦サイズ×横サイズ=w×h(例:256×256)として、画像全体のサイズをW×Hとする。分割部602は、横方向を(W/w+1)個に均等分割、縦方向を(H/h+1)個に均等分割すれば、一つの部分領域はほぼw×hに近いサイズとなる。分割部602は、分割した部分領域の情報を信頼度算出部603に出力する。なお、分割部602による領域分割は、文字認識がされる前に行われてもよい。
【0144】
信頼度算出部603は、前述した信頼度算出部207と同じ動作を、各部分領域ごとに実行する。信頼度算出部603は、対象となる部分領域内に属する文字領域のみを選択する必要がある。そのため、信頼度算出部603は、先に述べた文字の位置座標(cx,cy)が対象となる部分領域内に含まれるものを選択すればよい。信頼度算出部603は、算出した部分領域毎の各文字の信頼度を部分ボケ度算出部604に出力する。
【0145】
部分ボケ度算出部604は、前述したボケ度算出部208と同じ処理を、部分領域に対して行う。部分ボケ度算出部604は、部分領域毎にボケ度を算出し、算出したボケ度をボケ度補間部605に出力する。
【0146】
ボケ度補間部605は、ボケ度がセットされていない部分領域にボケ度の補間値をセットする。ボケ度補間部605は、例えば左上から所定のスキャン順で部分領域を順に見て、ボケ度がセットされていない部分領域を見つけた場合、その部分領域に隣接する隣接領域のボケ度の平均値を、その部分領域にセットする。ボケ度補間部605は、補間後の部分領域毎のボケ度を画素ボケ度算出部606に出力する。
【0147】
画素ボケ度算出部606は、各画素に隣接する部分領域のボケ度から、線形補間によって画素ごとのボケ度を算出する。図19と図20とを用いて画素ごとのボケ度を算出する方法について説明する。
【0148】
図19は、文書画像の部分領域の一例を示す図である。図19に示す各部分領域の中心点(小さな丸)を部分領域の代表点とする。部分領域毎にボケ度が算出されたら、そのボケ度を各代表点のボケ度とみなす。
【0149】
次に、図20は、画素毎のボケ度を算出する処理を説明するための図である。図20に示す例では、部分領域の4つの代表点が示されており、それぞれのボケ度をa〜dで表すものとする。
【0150】
ここで、ボケ度を求めたい画素を菱形の点で示すと、各代表点からの距離がdx1,dy1,dx2,dy2と求められる。このとき、画素ボケ度算出部606は、菱形の位置のボケ度BPを、次の式(9)を用いて算出する。
【0151】
【数8】

画素ボケ度算出部606は、算出した画素ごとのボケ度BPをボケ補正部607に出力する。
【0152】
ボケ補正部607は、画素ボケ度算出部606から取得した画素ごとのボケ度に基づいて、画素ごとにボケ補正を行う。ボケ補正については、公知の技術を用いればよい。例えば、式(8)のBdocに画素毎のBPを代入すれば、画素毎のボケ補正を行うことができる。
【0153】
これにより、文字が存在しない、又は文字認識に失敗した部分領域に対しても、他の部分領域と同様に適切なボケ度に基づいてボケ補正を行うことができる。
【0154】
<動作>
次に、実施例3における画像処理装置30の動作について説明する。図21は、実施例3における画像処理の一例を示すフローチャートである。図21に示すステップS501は、図11に示すステップS101と同様であるため、その説明を省略する。
【0155】
ステップS502で、分割部602は、文書画像を、所定サイズの部分領域に分割する。
【0156】
ステップS503で、部分ボケ度算出部604は、部分領域毎に、文字領域の局所ボケ度を用いて領域全体のボケ度を算出する。
【0157】
ステップS504で、ボケ度補間部605は、文字が抽出されていない領域のボケ度を、隣接領域のボケ度から補間する。
【0158】
ステップS505で、画素ボケ度算出部606は、隣接領域のボケ度の線形補間で画素毎にボケ度を算出する。
【0159】
ステップS506で、ボケ補正部607は、画素毎のボケ度により、文書画像のボケ補正を行う。
【0160】
図22は、ボケ度補間処理の一例を示すフローチャートである。図22に示すステップS601で、ボケ度補間部605は、最初の部分領域を、現在領域にセットする。現在領域とは、現在の位置にある部分領域を示す。最初の部分領域は、例えば文書画像の左上の部分領域と予め決めておけばよい。
【0161】
ステップS602で、ボケ度補間部605は、現在領域にボケ度がセットされているか否かを判定する。現在領域にボケ度が設定されていれば(ステップS602−YES)ステップS606に進み、現在領域にボケ度が設定されていなければ(ステップS602−NO)ステップS603に進む。
【0162】
ステップS603で、ボケ度補間部605は、隣接領域にボケ度がセットされているか否かを判定する。隣接領域とは、現在領域に隣接する部分領域を示す。ボケ度がセットされていれば(ステップS603−YES)ステップS604に進み、ボケ度がセットされていなければ(ステップS603−NO)ステップS606に進む。
【0163】
ステップS604で、ボケ度補間部605は、隣接領域のボケ度の平均値を現在領域にセットする。
【0164】
ステップS605で、ボケ度補間部605は、現在領域が最後の部分領域であるか否かを判定する。最後の部分領域とは、所定の順序で部分領域をスキャンした場合の最後の部分領域を示す。
【0165】
最後の部分領域であれば(ステップS605−YES)ステップS607に進み、最後の部分領域でなければ(ステップS605−NO)ステップS606に進む。
【0166】
ステップS606で、ボケ度補間部605は、現在領域を次の部分領域に設定する。次の部分領域とは、所定のスキャン順に従う場合に、現在領域の次の部分領域を示す。
【0167】
ステップS607で、ボケ度補間部605は、全ての部分領域にボケ度がセットされたか否かを判定する。全ての部分領域にボケ度がセットされていれば(ステップS607−YES)この処理を終了し、全ての部分領域にボケ度がセットされていなければ(ステップS607−NO)S601に戻る。
【0168】
以上、実施例3によれば、文字が存在しない、又は文字認識に失敗した部分領域に対しても、他の部分領域と同様に適切なボケ度に基づいてボケ補正を行うことができる。また、画像中の位置によってボケの度合いが異なる場合でも、適正なボケ補正を行うことができる。
【0169】
[変形例]
なお、前述した各実施例で説明した画像処理を実現するためのプログラムを記録媒体に記録することで、各実施例での画像処理をコンピュータに実施させることができる。例えば、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータに読み取らせて、前述した画像処理を実現させることも可能である。
【0170】
なお、記録媒体は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。この記録媒体には、搬送波は含まれない。
【0171】
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した各実施例の構成要素を全部又は複数を組み合わせることも可能である。
【0172】
なお、以上の各実施例に関し、さらに以下の付記を開示する。
(付記1)
文字を含む画像に対して文字認識を行って各文字領域を抽出し、前記各文字領域の認識精度を示す得点を求める認識部と、
前記各文字領域のボケ度を算出する局所ボケ度算出部と、
前記得点と、前記ボケ度とを用いて、前記画像のボケ度を算出するボケ度算出部と
を備える画像処理装置。
(付記2)
前記各文字領域の得点に基づき、前記各文字領域のボケ度の信頼性を示す信頼度を算出する信頼度算出部をさらに備え、
前記ボケ度算出部は、
前記信頼度を用いて前記ボケ度の重み付け平均を算出することで、前記画像のボケ度を算出する付記1記載の画像処理装置。
(付記3)
前記画像のボケ度を用いてボケ補正を行う補正部と、
ボケ補正された画像を文字認識して前記画像のボケ度を算出する処理と、ボケ補正を行う処理とを、所定の条件を満たすまで繰り返し実行する繰り返し制御部とをさらに備える付記1又は2記載の画像処理装置。
(付記4)
前記所定の条件は、今回のボケ度算出に用いた前記得点又は前記信頼度が閾値以上となる文字領域の数が、前回のボケ度算出で用いた前記得点又は前記信頼度が閾値以上となる文字領域の数以下となることである付記3記載の画像処理装置。
(付記5)
前記信頼度算出部は、
前記文字領域で認識された文字が正解である可能性を示す確率値を前記信頼度とする付記2記載の画像処理装置。
(付記6)
前記局所ボケ度算出部は、
抽出された各文字領域のうち、前記得点又は前記信頼度に基づき選択された文字領域に対してボケ度を算出する付記2記載の画像処理装置。
(付記7)
文字を含む画像に対して文字認識を行って各文字領域を抽出し、
前記各文字領域の認識精度を示す得点を求め、
前記各文字領域のボケ度を算出し、
前記得点と、前記ボケ度とを用いて、前記画像のボケ度を算出する処理をコンピュータが実行する画像処理方法。
(付記8)
前記画像のボケ度を用いてボケ補正を行い、
ボケ補正された画像を文字認識して前記画像のボケ度を算出する処理と、ボケ補正を行う処理とを、所定の条件を満たすまで繰り返し実行する処理をコンピュータがさらに実行する付記7記載の画像処理方法。
(付記9)
文字を含む画像に対して文字認識を行って各文字領域を抽出し、
前記各文字領域の認識精度を示す得点を求め、
前記各文字領域のボケ度を算出し、
前記得点と、前記ボケ度とを用いて、前記画像のボケ度を算出する処理をコンピュータに実行させるためのプログラム。
(付記10)
前記画像のボケ度を用いてボケ補正を行い、
ボケ補正された画像を文字認識して前記画像のボケ度を算出する処理と、ボケ補正を行う処理とを、所定の条件を満たすまで繰り返し実行する処理をコンピュータにさらに実行させる付記9記載のプログラム。
【符号の説明】
【0173】
10、20、30 画像処理装置
11 画像入力部
12 表示部
101 制御部
102 主記憶部
103 補助記憶部
104 通信部
105 ドライブ装置
201、301 メモリ
202、302 取得部
203、601、 ボケ度判定部
205 認識部
206 局所ボケ度算出部
207、603 信頼度算出部
208 ボケ度算出部
210、303、607 ボケ補正部
304 繰り返し制御部
305 判定部
306 切替部
401 繰り返し回数カウンタ
402 繰り返し回数比較部
501 認識結果保持部
502 認識結果比較部
602 分割部
604 部分ボケ度算出部
605 ボケ度補間部
606 画素ボケ度算出部

【特許請求の範囲】
【請求項1】
文字を含む画像に対して文字認識を行って各文字領域を抽出し、前記各文字領域の認識精度を示す得点を求める認識部と、
前記各文字領域のボケの度合いを示すボケ度を算出する局所ボケ度算出部と、
前記得点と、前記ボケ度とを用いて、前記画像のボケ度を算出するボケ度算出部と
を備える画像処理装置。
【請求項2】
前記各文字領域の得点に基づき、前記各文字領域のボケ度の信頼性を示す信頼度を算出する信頼度算出部をさらに備え、
前記ボケ度算出部は、
前記信頼度を用いて前記ボケ度の重み付け平均を算出することで、前記画像のボケ度を算出する請求項1記載の画像処理装置。
【請求項3】
前記画像のボケ度を用いてボケ補正を行う補正部と、
ボケ補正された画像を文字認識して前記画像のボケ度を算出する処理と、ボケ補正を行う処理とを、所定の条件を満たすまで繰り返し実行する繰り返し制御部とをさらに備える請求項1又は2記載の画像処理装置。
【請求項4】
前記所定の条件は、今回のボケ度算出に用いた前記得点又は前記信頼度が閾値以上となる文字領域の数が、前回のボケ度算出で用いた前記得点又は前記信頼度が閾値以上となる文字領域の数以下となることである請求項3記載の画像処理装置。
【請求項5】
前記信頼度算出部は、
前記文字領域で認識された文字が正解である可能性を示す確率値を前記信頼度とする請求項2記載の画像処理装置。
【請求項6】
前記局所ボケ度算出部は、
抽出された各文字領域のうち、前記得点又は前記信頼度に基づき選択された文字領域に対してボケ度を算出する請求項2記載の画像処理装置。
【請求項7】
文字を含む画像に対して文字認識を行って各文字領域を抽出し、
前記各文字領域の認識精度を示す得点を求め、
前記各文字領域のボケ度を算出し、
前記得点と、前記ボケ度とを用いて、前記画像のボケ度を算出する処理をコンピュータが実行する画像処理方法。
【請求項8】
文字を含む画像に対して文字認識を行って各文字領域を抽出し、
前記各文字領域の認識精度を示す得点を求め、
前記各文字領域のボケ度を算出し、
前記得点と、前記ボケ度とを用いて、前記画像のボケ度を算出する処理をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2013−45178(P2013−45178A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−180856(P2011−180856)
【出願日】平成23年8月22日(2011.8.22)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】