以下、図面を参照して開示の技術に係る実施形態の一例を詳細に説明する。なお、本実施形態では、横書きの文書を示す文書画像を検索する場合を例として説明する。
図1に示すように、本実施形態に係る文書画像検索装置10は、登録部20及び照合部30を備える。
登録部20は、図1に示すように、第1特徴抽出部21、及び第1特徴変換部22を機能部として備える。図2に、登録部20における処理の概要を示す。登録部20には、識別情報が既知の文書をスキャンした文書画像(以下、「登録文書画像」という)が複数入力される。登録部20では、登録文書画像の各々から特徴が抽出され、特徴データベース(DB)23に記憶される。また、特徴DB23に記憶された特徴から、特徴ベクトル系列が算出され、さらに、特徴ベクトル系列がハッシュ値に変換される。ハッシュ値は、文書画像の識別情報(文書画像ID)と対応付けられてハッシュテーブル25に登録される。以下、登録部20の各機能部について詳述する。
第1特徴抽出部21は、以下の処理を行って、文書画像から、一文字の少なくとも一部に相当する部分に外接する領域毎の特徴を抽出する。
1.登録文書画像における連結成分の外接矩形を抽出
2.連結成分の外接矩形から重なり矩形を抽出
3.重なり矩形毎に、内部パターンの特徴ベクトルを算出
4.重なり矩形毎に、所定方向に隣り合う重なり矩形を探索
5.特徴ベクトル及び隣り合う重なり矩形の識別情報を、重なり矩形毎の特徴として、特徴DB23に記憶
具体的には、第1特徴抽出部21は、入力された登録文書画像に対して二値化処理を行って二値画像に変換する。図3の(1)に、二値画像に変換された登録文書画像の一例の一部を示す。
また、第1特徴抽出部21は、得られた二値画像から連結成分の外接矩形を抽出する。ここで、連結成分とは、二値画像における黒画素(文字画像における文字部分)の塊、すなわち白画素(文字画像における背景部分)により寸断されることなく連なった黒画素群を意味する。連結成分は、一文字の少なくとも一部に相当し、文字によっては、一文字が一つの連結成分に相当する場合もある。このような連結成分の外接矩形を抽出することで、一文字を少なくとも一つ以上の領域に分割することができる。図3の(2)に、図3の(1)に示す二値画像から連結成分の外接矩形を抽出した一例を示す。第1特徴抽出部21は、抽出した連結成分の外接矩形毎に、文書画像における座標を求め、所定の記憶領域に記憶する。
また、第1特徴抽出部21は、連結成分の外接矩形から重なり矩形を抽出する。異なる連結成分同士は、画素としてはつながっていないが、連結成分の外接矩形同士は重なっている場合がある。例えば、図3の(2)の例では、連結成分の外接矩形Aと連結成分の外接矩形Bとが重なっている。第1特徴抽出部21は、このように重なった連結成分の外接矩形の各々を、全ての外接矩形を包含する一つの矩形にまとめ、この矩形を重なり矩形として抽出する。
第1特徴抽出部21は、他の連結成分の外接矩形と重なっていない連結成分の外接矩形については、そのまま重なり矩形として抽出する。第1特徴抽出部21は、抽出した重なり矩形毎に、文書画像における座標を求めると共に、重なり矩形毎の識別情報である重なり矩形IDを付与して、所定の記憶領域に記憶する。図3の(3)に、図3の(2)に示す連結成分の外接矩形の各々から、重なり矩形の各々を抽出した一例を示す。図3の(3)において、各重なり矩形の左部または上部に記載した数字は、各重なり矩形の重なり矩形IDである。
また、第1特徴抽出部21は、重なり矩形毎に、内部パターンの特徴ベクトルを算出する。特徴ベクトルとしては、OCRの文字認識において使用される特徴ベクトル等を用いることができる。例えば、第1特徴抽出部21は、重なり矩形内部をメッシュ状の小領域に区切り、小領域内の文字ストロークの方向成分の頻度をヒストグラム化し、各方向成分の頻度を成分とする特徴ベクトルを算出することができる。なお、このような特徴ベクトルとしては、通常、数百次元程度の高次元の特徴ベクトルが用いられる場合が多い。
また、第1特徴抽出部21は、重なり矩形毎に、所定方向に隣り合う重なり矩形を探索する。一般に、ある文字に対して隣り合う文字は、横書きの文書の場合は右に、縦書きの文書の場合は下に位置する。本実施形態では横書きの文書を示す文書画像を処理対象としている。そのため、第1特徴抽出部21は、所定方向を右方向とし、ある重なり矩形の右隣に位置する最も近い重なり矩形を探索し、探索された重なり矩形の重なり矩形IDを、隣矩形IDとして抽出する。図3の(4)に、隣り合う重なり矩形の一例を示す。図3の(4)では、隣り合う重なり矩形同士を矢印で結ぶことにより表現している。第1特徴抽出部21は、矢印の始点に対応する重なり矩形に対して、矢印の終点に対応する重なり矩形の重なり矩形IDを隣矩形IDとして抽出する。
また、第1特徴抽出部21は、重なり矩形毎に抽出した特徴ベクトル及び隣矩形IDに特徴IDを付与し、特徴ID、特徴ベクトル、及び隣矩形IDを、特徴DB23に記憶する。特徴IDは、重なり矩形ID及び重なり矩形が属する登録文書画像の文書画像IDの2つを特定可能な識別情報とする。図4に、特徴DB23のデータ構造の一例を示す。また、図5に、図3の(1)に示す文書画像から抽出された特徴が記憶された特徴DB23の一例を示す。図5の例では、特徴IDを、(文書画像ID,重なり矩形ID)で記述している。隣矩形IDも同様である。また、図5では、特徴ベクトルを、重なり矩形IDが示す重なり矩形及び内部パターンで表している。
第1特徴変換部22は、特徴DB23に記憶された特徴から得られる所定の大きさの特徴ベクトル系列に基づくハッシュ値を、特徴ID毎に算出して、ハッシュテーブル25を作成する。
上述のように、重なり矩形は、一文字を少なくとも一つ以上に分割した領域に相当する。そこで、本実施形態では、文書画像において、連続するn個の重なり矩形の連なり(系列)を、擬似的な文字列と考える。具体的に、n=5とした例を、図6を参照して説明する。図6の(0)に示すように、重なり矩形及び隣り合う重なり矩形が得られている場合には、図6の(1)から(5)に示すような重なり矩形の系列が存在し得る。なお、ここでは、重なり矩形の連続数が5に満たない場合は対象外とする。そして、重なり矩形の系列の各々を擬似的な文字列と捉え、各擬似的な文字列を表す特徴として、特徴ベクトル系列を用いる。
特徴ベクトル系列は、所定方向に隣り合う複数の重なり矩形の各々から抽出された特徴ベクトルを、重なり矩形の系列における重なり矩形の配列順に並べたものである。特徴ベクトル系列の次元は、特徴ベクトルの次元×nとなる。図7に、図6の(1)に示す重なり矩形の系列に対応する特徴ベクトル系列を示す。
本実施形態では、上記のような特徴ベクトル系列を用いて文書画像間の照合を行うことにより、文字認識処理を行うことなく、擬似的な文字列を用いた照合が可能となり、内容が類似する文書画像を検索することができる。
第1特徴変換部22は、まず、特徴DB23から大きさnの疑似的な文字列の特徴に相当する特徴ベクトル系列を算出する。具体的には、第1特徴変換部22は、特徴DB23から1つの特徴IDを選択し、その特徴IDに対応する重なり矩形の特徴ベクトルを取得する。次に、第1特徴変換部22は、その特徴IDに対応する隣矩形IDを参照して、隣り合う重なり矩形を選択し、その隣り合う重なり矩形の特徴ベクトルを取得する。この隣矩形IDを参照して特徴ベクトルを取得する処理をn−1回繰り返す。そして、第1特徴変換部22は、取得した特徴ベクトルを取得した順に並べた大きさnの特徴ベクトル系列を算出する。第1特徴変換部22は、算出した特徴ベクトル系列を所定の記憶領域に記憶しておく。第1特徴変換部22は、特徴DB23内の特徴ID毎に特徴ベクトル系列を算出する。この結果、特徴ベクトルの次元×n(以下、この次元数をpとおく)の特徴ベクトル空間において、m個の特徴ベクトル系列が得られることになる。なお、mは、特徴DB23に特徴が記憶された重なり矩形のうち、その重なり矩形を先頭とする大きさnの重なり矩形系列が抽出可能な重なり矩形の数である。
第1特徴変換部22は、p次元ベクトル空間におけるm個の特徴ベクトル系列から、q個のアンカーを抽出する。例えば、第1特徴変換部22は、p次元ベクトル空間におけるm個の特徴ベクトル系列を、K−meansクラスタリング等によりq個のクラスタに分割し、各クラスタの代表点をアンカーとして抽出することができる。
また、第1特徴変換部22は、ラプラシアン固有マップ法を用いて、高次元の特徴ベクトル系列を低次元空間に写像して、ハッシュ値を算出する。ラプラシアン固有マップ法は、データをサンプル間の類似度に基づいて行列表現し、その行列の固有値を用いて、データ間の関係を保ったまま、データを低次元空間に写像する方法である。本実施形態では、ラプラシアン固有マップ法の1つであるアンカーグラフハッシングの方法(参考文献「Hashing with Graphs, Liu. W., Wang. J., Kunmar. S., and Chang, S.-F. ICML '11, 2011」)を用いる場合について説明する。
具体的には、第1特徴変換部22は、m個の特徴ベクトル系列の各々と、q個のアンカーの各々との類似度を示す類似度行列Zを算出する。図8に示すように、類似度行列Zは、m行q列の行列で、(i,j)成分は、i番目の特徴ベクトル系列とj番目のアンカーとの類似度を意味する。ここで、i番目の特徴ベクトル系列とは、特徴ベクトル系列が示す重なり矩形系列における先頭の重なり矩形が、特徴DB23においてi番目の特徴IDに対応する重なり矩形であることを表す。特徴ベクトル系列をベクトルvで表す。また、アンカーは、p次元ベクトルであるが、特徴ベクトル系列vに対応させるため、特徴ベクトルの次元毎に区切って表す。j番目のアンカーをベクトルaで表すと、下記(1)式のようになる。
また、重なり矩形の特徴ベクトルをベクトルvtとするとき、その重なり矩形に対して隣矩形IDで対応付けられた重なり矩形の特徴ベクトルを、下記(2)式のように表す。また、アンカーについても同様である。
類似度行列Zの算出について、より具体的には、第1特徴変換部22は、まず、i番目の特徴ベクトル系列vとj番目のアンカーを示すベクトルaとの類似度を(i,j)成分とする行列Sを算出する。そして、第1特徴変換部22は、行列Sを正規化することにより、類似度行列Zを算出する。具体的には、第1特徴変換部22は、行列Sのi行について、値の大きさが上位s個となる成分の値を残し、その他の成分の値を0とする。これは、類似度がある程度低いものは、類似度0とみなすことに相当する。さらに、第1特徴変換部22は、下記(3)式に示すように、行毎の各成分の和が1となるように正規化を行い、正規化して得られる行列を類似度行列Zとする。
次に、第1特徴変換部22は、類似度行列Zから、下記(4)式によって行列Λを算出し、さらに、下記(5)式によって行列Mを算出する。
ここで、diag(x)とは、ベクトルxの各成分を行列の対角成分として並べ、他の成分を全て0とした行列を表す。また、(4)式における行列1はm行1列の各成分が全て1の行列である。また、Tは行列の転置を表す。従って、行列1Tは、1行m列の各成分が全て1の行列となる。また、行列Λ−1/2は、行列Λの各成分を−1/2乗した行列を表す。
第1特徴変換部22は、行列Mを固有値分解することにより、行列Mの固有値及び固有ベクトルを算出する。そして、第1特徴変換部22は、固有値1を除いて、値の大きな固有値から順にk個の固有値を求め、σ1,σ2,・・・,σkとし、各固有値に対応する固有ベクトルをv1,v2,・・・,vkとする。
第1特徴変換部22は、算出した固有値を用いて、下記(6)式により、行列Σkを求め、算出した固有ベクトルを用いて、下記(7)式により、行列Vkを求める。さらに、第1特徴変換部22は、行列Λ、行列Σk、及び行列Vkを用いて、下記(8)式により、行列Wを求める。
第1特徴変換部22は、類似度行列Z及び行列Wを用いて、下記(9)式によりm行k列の行列Gを算出する。
さらに、第1特徴変換部22は、行列Gの各成分について、正のものを1に、負のものを0に変換して、m行k列の行列Hを得る。この行列Hのm個の各行は、成分が0または1のk次元ベクトルであり、これがm個の特徴ベクトル系列の各々に対応したハッシュ値となる。
第1特徴変換部22は、各特徴ベクトル系列に対応したハッシュ値と、特徴ベクトル系列が示す重なり矩形系列が属する文書画像の文書画像IDとを対応付けたハッシュテーブル25を作成し、所定の記憶領域に記憶する。文書画像IDは、特徴ベクトル系列を算出する際に特徴DB23から選択した特徴IDにより特定される文書画像IDを用いればよい。図9に、ハッシュテーブル25のデータ構造の一例を示す。
照合部30は、図1に示すように、第2特徴抽出部31、第2特徴変換部32、及び検索部33を機能部として備える。図10に、照合部30における処理の概要を示す。照合部30には、識別情報が未知の文書をスキャンした文書画像(以下、「対象文書画像」という)が入力される。照合部30では、対象文書画像から特徴ベクトル系列が抽出され、特徴ベクトル系列がハッシュ値に変換されて、ハッシュテーブル25に登録されたハッシュ値と照合され、照合結果に基づいて、対象文書画像に類似する登録文書画像が検索される。以下、照合部30の各機能部について詳述する。
第2特徴抽出部31は、第1特徴抽出部21と同様の処理により、対象文書画像から重なり矩形毎の特徴ベクトル及び隣矩形IDを抽出する。第2特徴抽出部31は、抽出した重なり矩形毎の特徴ベクトル及び隣矩形IDに、特徴IDを対応付けて特徴メモリ34に記憶する。対象文書画像は、文書画像IDが未知であるため、ここでの特徴IDは、重なり矩形IDと同一とする。
第2特徴変換部32は、第1特徴変換部22と同様の処理により、特徴メモリ34から特徴IDを1つずつ選択し、特徴ベクトル系列を算出し、特徴ベクトル系列に対応するハッシュ値を算出する。なお、第2特徴変換部32は、算出した特徴ベクトル系列をベクトルxと表し、(3)式によって算出されるq次元ベクトルをベクトルz(x)とする。ベクトルz(x)は、第1特徴変換部22で算出される行列Zの各行ベクトルに相当する。そして、第2特徴変換部32は、行列W及びベクトルz(x)を用いて、下記(10)式により、ベクトルg(x)を算出する。
そして、第2特徴変換部32は、第1特徴変換部22と同様に、ベクトルg(x)の各成分について、正のものを1に、負のものを0に変換して、k次元ベクトルh(x)を得る。このベクトルh(x)は、成分が0または1のk次元ベクトルであり、対象文書画像から抽出された特徴ベクトル系列に対応したハッシュ値となる。第2特徴変換部32は、特徴メモリ34に記憶された特徴IDから算出される全ての特徴ベクトル系列に対応するハッシュ値を算出し、ハッシュ値メモリ35に記憶する。
検索部33は、ハッシュ値メモリ35に記憶されたハッシュ値の各々と、ハッシュテーブル25に登録されているハッシュ値の各々とを照合する。そして、検索部33は、ハッシュテーブル25において、第2特徴変換部32で算出されたハッシュ値と最も近いハッシュ値に対応する文書画像IDに投票を行う。第2特徴変換部32で算出されたハッシュ値と最も近いハッシュ値の求め方は、一致するハッシュ値がハッシュテーブル25に存在する場合には、そのハッシュ値とすることができる。また、一致するハッシュ値がハッシュテーブル25に存在しない場合は、ハッシュテーブル25に登録されているハッシュ値の各々と、第2特徴変換部32で算出されたハッシュ値とのハミング距離を算出する。そして、ハミング距離が最も小さいハッシュ値を、最も近いハッシュ値として選択することができる。なお、ハミング距離に代えて、レーベンシュタイン距離など、二つの文字列がどの程度異なっているかを示す他の指標を用いて、最も近いハッシュ値を選択してもよい。
検索部33は、第2特徴変換部32で算出された全てのハッシュ値について、ハッシュテーブル25に登録されたハッシュ値との照合、及び最も近いハッシュ値に対応する文書画像IDへの投票を行う。そして、検索部33は、最終的に最も投票を集めた文書画像IDを出力する。すなわち、出力された文書画像IDが示す登録文書画像が、対象文書画像に最も類似する文書画像として検索される。
文書画像検索装置10は、例えば図11に示すコンピュータ40で実現することができる。コンピュータ40はCPU42、メモリ44、不揮発性の記憶部46、入出力インターフェース(I/F)47、及びネットワークI/F48を備えている。CPU42、メモリ44、記憶部46、入出力I/F47、及びネットワークI/F48は、バス49を介して互いに接続されている。
記憶部46はHDD(Hard Disk Drive)やフラッシュメモリ等によって実現できる。記憶媒体としての記憶部46には、コンピュータ40を文書画像検索装置10として機能させるための文書画像検索プログラム50が記憶されている。文書画像検索プログラム50は、登録プログラム60及び照合プログラム70を含む。また、記憶部46は、特徴DB記憶領域63及びハッシュテーブル記憶領域65を有する。CPU42は、登録文書画像の登録時には、登録プログラム60を記憶部46から読み出してメモリ44に展開し、登録プログラム60が有するプロセスを順次実行する。また、CPU42は、対象文書画像の照合時には、照合プログラム70を記憶部46から読み出してメモリ44に展開し、照合プログラム70が有するプロセスを順次実行する。
登録プログラム60は、第1特徴抽出プロセス61、及び第1特徴変換プロセス62を有する。また、照合プログラム70は、第2特徴抽出プロセス71、第2特徴変換プロセス72、及び検索プロセス73を有する。CPU42は、第1特徴抽出プロセス61を実行することで、図1に示す第1特徴抽出部21として動作する。また、CPU42は、第1特徴変換プロセス62を実行することで、図1に示す第1特徴変換部22として動作する。また、CPU42は、第2特徴抽出プロセス71を実行することで、図1に示す第2特徴抽出部31として動作する。また、CPU42は、第2特徴変換プロセス72を実行することで、図1に示す第2特徴変換部32として動作する。また、CPU42は、検索プロセス73を実行することで、図1に示す検索部33として動作する。
文書画像検索装置10がコンピュータ40で実現される場合、特徴DB記憶領域63は、図1に示す特徴DB23が記憶される記憶領域として用いられる。また、ハッシュテーブル記憶領域65は、図1に示すハッシュテーブル25が記憶される記憶領域として用いられる。また、図1に示す特徴メモリ34及びハッシュ値メモリ35は、メモリ44の所定領域に設けられる。なお、特徴メモリ34及びハッシュ値メモリ35に記憶される情報の各々が記憶される記憶領域を、記憶部46に設けてもよい。これにより、文書画像検索プログラム50を実行したコンピュータ40が、文書画像検索装置10として機能することになる。
なお、文書画像検索装置10は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
次に本実施形態に係る文書画像検索装置10の作用について説明する。登録文書画像の登録の際には、文書画像検索装置10に登録文書画像が入力される。そして、登録部20により、図12に示す登録処理が実行される。また、対象文書画像の照合の際には、文書画像検索装置10に対象文書画像が入力される。そして、照合部30により、図17に示す照合処理が実行される。以下、各処理について詳述する。
図12に示す登録処理のステップS10で、第1特徴抽出部21は、入力された登録文書画像を取得して、図13に詳細を示す特徴抽出処理を実行する。
図13に示す特徴抽出処理のステップS11で、第1特徴抽出部21が、登録文書画像に対して二値化処理を行って二値画像に変換する。次に、ステップS12で、第1特徴抽出部21が、二値画像に変換された登録文書画像から連結成分の外接矩形を抽出する。次に、ステップS13で、第1特徴抽出部21が、連結成分の外接矩形から重なり矩形を抽出する。次に、ステップS14で、第1特徴抽出部21が、重なり矩形毎に、内部パターンの特徴ベクトルを算出する。
次に、ステップS15で、第1特徴抽出部21が、図14に詳細を示す隣矩形探索処理を実行する。隣矩形探索処理は、重なり矩形IDがi(i=0,1,・・・,I、Iは抽出された重なり矩形の総数)の重なり矩形(以下、「重なり矩形i」という)と隣り合う重なり矩形を探索する処理である。重なり矩形0、重なり矩形1、・・・、重なり矩形Iの各々について、隣矩形探索処理を実行することにより、重なり矩形の各々について、隣り合う重なり矩形を探索する。
図14に示す隣矩形探索処理のステップS151で、第1特徴抽出部21が、個々の重なり矩形に対応した変数jに0を設定する。また、第1特徴抽出部21が、重なり矩形間の距離の最小値minに非常に大きな値(例えば、文書画像の幅に相当する値、無限大等)を設定する。また、第1特徴抽出部21が、重なり矩形iとの距離が最小となる右隣の重なり矩形の重なり矩形IDを示すarg_minに、0,1,・・・,I以外の適当な値(例えば、−1)を設定する。
次に、ステップS152で、第1特徴抽出部21が、重なり矩形jが、重なり矩形iと同一行に存在する重なり矩形か否かを判定する。具体的には、第1特徴抽出部21は、例えば所定の記憶領域に記憶された、重なり矩形jの左端座標Left(j)、右端座標Right(j)、上端座標Up(j)、及び下端座標Down(j)を取得する。重なり矩形iの座標についても同様に取得する。なお、ここでは、文書画像の左上角を原点とし、原点から右へ行くほど左右方向の座標値が大きくなり、原点から下へ行くほど上下方向の座標値が大きくなる座標系を用いる。そして、第1特徴抽出部21は、Up(j)≦Down(i)、かつDown(j)≧Up(i)か否かを判定する。肯定判定の場合には、処理はステップS153へ移行し、否定判定の場合には、処理はステップS158へ移行する。
ステップS153では、第1特徴抽出部21が、重なり矩形jが、重なり矩形iより右側に存在するか否かを判定する。具体的には、第1特徴抽出部21は、Left(j)>Right(i)か否かを判定する。肯定判定の場合には、処理はステップS154へ移行し、否定判定の場合には、処理はステップS158へ移行する。
ステップS154では、第1特徴抽出部21が、Left(j)−Right(i)を、重なり矩形iと重なり矩形jとの距離dfとして算出する。次に、ステップS156で、第1特徴抽出部21が、距離dfが最小値minとして設定されている値より小さいか否かを判定する。df<minの場合には、処理はステップS157へ移行し、df≧minの場合には、処理はステップS158へ移行する。
ステップS157では、第1特徴抽出部21が、最小値minに、上記ステップS154で算出した距離dfの値を設定すると共に、arg_minに現在の変数jの値を設定する。次に、ステップS158で、第1特徴抽出部21が、jを1インクリメントする。次に、ステップS159で、第1特徴抽出部21が、変数jが重なり矩形の総数Iを超えたか否かを判定する。j≦Iの場合には、処理はステップS152へ戻る。j>Iの場合には、隣矩形探索処理を終了し、図13に示す特徴抽出処理へリターンする。
次に、ステップS16で、第1特徴抽出部21が、重なり矩形毎に、上記ステップS14で算出した特徴ベクトル及び隣矩形IDに、特徴IDを付与して、特徴DB23に記憶して、図12に示す登録処理へリターンする。なお、隣矩形IDは、上記ステップS15の隣矩形探索処理において、最終的にarg_minに設定された変数jの値である。
次に、ステップS20で、第1特徴変換部22が、図15に詳細を示す特徴変換処理を実行する。
図15に示す特徴変換処理のステップS21で、第1特徴変換部22が、特徴DB23から1つの特徴IDを選択し、その特徴IDに対応する重なり矩形の特徴ベクトルを取得する。そして、第1特徴変換部22は、その特徴IDに対応する隣矩形IDを参照して、隣り合う重なり矩形を選択し、その隣り合う重なり矩形の特徴ベクトルを取得する。第1特徴変換部22は、この隣矩形IDを参照して特徴ベクトルを取得する処理をn−1回繰り返す。そして、第1特徴変換部22は、取得した特徴ベクトルを取得した順に並べた大きさnの特徴ベクトル系列を算出する。第1特徴変換部22は、特徴DB23に特徴が記憶された重なり矩形のうち、その重なり矩形を先頭とする大きさnの重なり矩形系列が作成可能な重なり矩形の数(ここでは、m個とする)分の特徴ベクトル系列を算出し、所定の記憶領域に記憶する。
次に、ステップS22で、第1特徴変換部22が、p次元ベクトル空間におけるm個の特徴ベクトル系列から、q個のアンカーを抽出する。例えば、第1特徴変換部22は、p次元ベクトル空間におけるm個の特徴ベクトル系列を、K−meansクラスタリング等によりq個のクラスタに分割し、各クラスタの代表点をアンカーとして抽出することができる。
次に、ステップS23で、第1特徴変換部22が、図16に詳細を示す行列S算出処理を実行する。行列Sは、類似度行列Zの正規化前の行列であり、i番目の特徴ベクトル系列vとj番目のアンカーを示すベクトルaとの類似度を(i,j)成分とするm行q列の行列である。行列S算出処理では、i番目の特徴ベクトル系列vとj番目のアンカーを示すベクトルaとの類似度s、すなわち(i,j)成分を算出する。行列S算出処理を成分数分(m×q回)実行することで、行列Sが算出される。
図16に示す行列S算出処理のステップS231で、第1特徴変換部22が、特徴ベクトル系列vとアンカーを示すベクトルaとの距離に対応した変数dに0を設定する。また、第1特徴変換部22が、特徴ベクトル系列v及びアンカーを示すベクトルaの各々の成分を識別するための変数tに0を設定する。ここで、特徴ベクトル系列vの成分をベクトルvt、及びアンカーを示すベクトルaの成分をベクトルatとする。tはt=0,1,・・・,n−1(nは成分の数)である。また、第1特徴変換部22が、i番目の特徴ベクトル系列vをベクトルvt(t=0,1,・・・,n−1)に設定し、j番目のアンカーを示すベクトルaをベクトルat(t=0,1,・・・,n−1)に設定する。
次に、ステップS232で、第1特徴変換部22が、現在の変数dの値に、ベクトルvt−ベクトルatのノルムの2乗を加算する。
次に、ステップS233で、第1特徴変換部22が、変数tを1インクリメントする。次に、ステップS234で、第1特徴変換部22が、変数tがnより小さいか否かを判定する。t<nの場合には、処理はステップS235へ移行し、t≧nの場合には、処理はステップS236へ移行する。
ステップS235では、第1特徴変換部22が、ベクトルvt−1が示す重なり矩形に対して隣矩形IDで対応付けられた重なり矩形の特徴ベクトルを、ベクトルvtに設定する。また、第1特徴変換部22は、同様に、ベクトルat−1が示す重なり矩形に対して隣矩形IDで対応付けられた重なり矩形の特徴ベクトルを、ベクトルatに設定する。すなわち、特徴ベクトル系列v及びアンカーを示すベクトルaの各々の次の成分に処理対象を移す。そして、処理はステップS232へ戻る。
ステップS236では、第1特徴変換部22が、変数dの値が所定の閾値thを超えたか否かを判定する。d>thの場合には、処理はステップS237へ移行し、d≦thの場合には、処理はステップS238へ移行する。
ステップS237では、第1特徴変換部22が、i番目の特徴ベクトル系列vとj番目のアンカーを示すベクトルaとの類似度sを0として算出する。これは、i番目の特徴ベクトル系列vとj番目のアンカーを示すベクトルaとの類似度がある程度低いものは、類似度0とみなすことに相当する。
一方、ステップS238では、第1特徴変換部22が、変数d、すなわち特徴ベクトル系列vとアンカーを示すベクトルaとの距離が近いほど値が大きくなる類似度sを算出する。例えば、第1特徴変換部22は、類似度sを、s=exp(−d/T)として算出することができる。この場合、類似度sは0〜1の値をとり、1に近いほど類似度が高いことを示す。
特徴ベクトル系列vとアンカーを示すベクトルaとの全ての組み合わせについて類似度sの算出が終了すると、処理は図15に示す特徴変換処理へリターンする。
次に、ステップS24で、第1特徴変換部22が、上記ステップS23で算出した特徴ベクトル系列vとアンカーを示すベクトルaとの全ての組み合わせについて類似度sを成分とする行列Sを正規化する。具体的には、第1特徴変換部22は、行列Sのi行について、値の大きさが上位s個となる成分の値を残し、その他の成分の値を0とする。さらに、第1特徴変換部22は、(3)式により各成分を正規化し、正規化して得られる行列を類似度行列Zとする。
次に、ステップS25で、第1特徴変換部22が、類似度行列Zから、(4)式によって行列Λを計算し、さらに(5)式によって行列Mを算出する。次に、ステップS26で、第1特徴変換部22が、行列Mを固有値分解することにより、行列Mの固有値及び固有ベクトルを算出する。そして、第1特徴変換部22が、固有値1を除いて、値の大きな固有値から順にk個の固有値を求め、σ1,σ2,・・・,σkとし、各固有値に対応する固有ベクトルをv1,v2,・・・,vkとする。
次に、ステップS27で、第1特徴変換部22が、算出した固有値を用いて、(6)式により、行列Σkを求め、固有ベクトルを用いて、(7)式により、行列Vkを求める。さらに、第1特徴変換部22は、行列Λ、行列Σk、及び行列Vkを用いて、(8)式により、行列Wを算出する。
次に、ステップS28で、第1特徴変換部22が、類似度行列Z及び行列Wを用いて、(9)式によりm行k列の行列Gを算出する。そして、第1特徴変換部22は、行列Gの各成分について、正のものを1に、負のものを0に変換して、各行が特徴ベクトル系列の各々に対応したハッシュ値となる、m行k列の行列Hを得る。そして、処理は図12に示す登録処理へリターンする。
次に、ステップS30で、第1特徴変換部22が、上記ステップS20の処理で得た各特徴ベクトル系列に対応したハッシュ値と、特徴ベクトル系列が示す重なり矩形系列が属する文書画像の文書画像IDとを対応付けたハッシュテーブル25を作成する。そして、第1特徴変換部22は、作成したハッシュテーブル25をハッシュテーブル記憶領域65に記憶して、登録処理は終了する。
次に、照合処理について説明する。図17に示す照合処理のステップS40で、第2特徴抽出部31が、入力された対象文書画像を取得して、特徴抽出処理を実行する。ステップS40で第2特徴抽出部31が実行する特徴抽出処理は、第1特徴抽出部21により実行される図13に示す特徴抽出処理と以下の点を除いて同様であるため、詳細な説明を省略する。第1特徴抽出部21により実行される特徴抽出処理と異なる点は、処理対象が対象文書画像である点、及び特徴メモリ34に特徴を記憶する点である。さらに、特徴メモリ34に特徴を記憶する際に特徴に付与する特徴IDが文書画像IDを特定可能な情報を含まない点も異なる。
次に、ステップS50で、第2特徴変換部32が、特徴変換処理を実行する。ステップS50で第2特徴変換部32が実行する特徴変換処理は、第1特徴変換部22により実行される図15に示す特徴変換処理と以下の点を除いて同様であるため、詳細な説明を省略する。第1特徴変換部22により実行される特徴変換処理と異なる点は、類似度行列Zの算出に変えて、(3)式によりq次元のベクトルz(x)を算出する点、及び(9)式の行列Gを算出することに変えて、(10)式のベクトルg(x)を算出する点である。また、ベクトルg(x)の成分を1または0に変換したk次元のベクトルh(x)が、対象文書画像から抽出された特徴ベクトル系列に対応したハッシュ値となる。さらに、算出したハッシュ値を、ハッシュ値メモリ35に記憶する点も異なる。
次に、ステップS60で、検索部33が、ハッシュ値メモリ35に記憶されたハッシュ値の各々と、ハッシュテーブル25に登録されているハッシュ値の各々とを照合する。そして、検索部33は、ハッシュテーブル25において、上記ステップS50で算出されたハッシュ値と最も近いハッシュ値に対応する文書画像IDに投票を行う。
次に、ステップS70で、検索部33が、最終的に最も投票を集めた文書画像IDを出力する。すなわち、出力された文書画像IDが示す登録文書画像が、対象文書画像に最も類似する文書画像として検索される。そして、照合処理は終了する。
以上説明したように、本実施形態に係る文書画像検索装置によれば、文書画像から、一文字を少なくとも一つ以上に分割した領域に相当する重なり矩形を抽出し、隣り合う重なり矩形の系列を、擬似的な文字列と想定する。そして、重なり矩形の系列の特徴として、各重なり矩形の内部パターンから算出した特徴ベクトルを、重なり矩形の配列順に並べた特徴ベクトル系列を用いる。そして、文書画像IDが既知の登録文書画像から抽出された特徴ベクトル系列と、対象文書画像から抽出された特徴ベクトル系列とを照合することにより、対象文書画像と類似する登録文書画像を検索する。このように、文字認識処理を行うことなく、擬似的な文字列を用いた照合を行うため、文書画像に対する文字認識処理を行う場合よりも高速に、内容が類似した文書画像を検索することができる。
また、本実施形態では、登録文書画像から抽出された特徴ベクトル系列と、対象文書画像から抽出された特徴ベクトル系列とを最近傍識別処理により照合し、対象文書画像に最も類似する登録文書画像を検索する。このため、高速に文書画像を検索することができる。
また、高次元の特徴ベクトル系列を低次元空間に写像し、低次元化したベクトル(ハッシュ値)を用いて最近傍識別処理により照合を行うため、より高速に文書画像を検索することができる。
なお、開示の技術は、縦書きの文書を示す文書画像、または横書きと縦書きとが混在する文書を示す文書画像にも適用することができる。縦書きの場合には、隣り合う重なり矩形を探索する際の所定方向を下方向とすればよい。また、横書きと縦書きとが混在している場合には、右方向及び下方向の2つの方向の各々について隣り合う重なり矩形を探索し、右方向の隣矩形ID及び下方向の隣矩形IDの両方を特徴DB23または特徴メモリ34に記憶しておけばよい。そして、特徴ベクトル系列を算出する際、右方向に連なる重なり矩形の特徴ベクトルを並べた特徴ベクトル系列と、下方向に連なる重なり矩形の特徴ベクトルを並べた特徴ベクトル系列とを算出すればよい。そして、右方向の特徴ベクトル系列と下方向の特徴ベクトル系列とをまとめて、または右方向の特徴ベクトル系列、及び下方向の特徴ベクトル系列のそれぞれについて、上記実施形態と同様に処理すればよい。
また、上記実施形態では、高次元の特徴ベクトル系列を低次元のハッシュ値に変換して照合を行う場合について説明したが、低次元への変換を行うことなく、算出した特徴ベクトル系列同士をそのまま照合に用いてもよい。
また、上記実施形態では、登録部及び照合部を含む文書画像検索装置を、1つのコンピュータで実現する場合について説明したが、登録部及び照合部を、それぞれ別々のコンピュータで実現するようにしてもよい。この場合、登録部として機能するコンピュータの記憶部には、登録プログラムが記憶され、照合部として機能するコンピュータの記憶部には、照合プログラムが記憶される。なお、この場合、照合部として機能するコンピュータは、開示の技術の文書画像検索装置の一例であり、照合プログラムは、開示の技術の文書画像検索プログラムの一例である。
なお、上記では、文書画像検索プログラム50が記憶部46に予め記憶(インストール)されている態様を説明したが、CD−ROMやDVD−ROM等の記憶媒体に記録された形態で提供することも可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
文書画像から、一文字の少なくとも一部に相当する部分に外接する領域の各々を抽出し、所定方向に隣り合う複数の領域の各々の特徴を、領域の配列順に並べた特徴系列を抽出する抽出部と、
複数の登録文書画像の各々から抽出され、登録文書画像の識別情報と対応付けて記憶部に記憶された複数の特徴系列の各々と、前記抽出部により対象文書画像から抽出された特徴系列とを照合し、前記対象文書画像に類似する登録文書画像を検索する検索部と、
を含む文書画像検索装置。
(付記2)
前記抽出部により前記特徴系列として抽出された高次元の特徴ベクトル系列を、低次元の特徴ベクトル系列に変換する変換部を含む付記1記載の文書画像検索装置。
(付記3)
前記変換部は、ラプラシアン固有マップ法を用いて、前記高次元の特徴ベクトル系列を前記低次元の特徴ベクトル系列に変換する付記2記載の文書画像検索装置。
(付記4)
前記検索部は、前記登録文書画像の特徴系列の各々と、前記対象文書画像の特徴系列との最近傍識別により、前記対象文書画像に類似する登録文書画像を検索する付記1〜付記3のいずれか1項記載の文書画像検索装置。
(付記5)
コンピュータに、
文書画像から、一文字の少なくとも一部に相当する部分に外接する領域の各々を抽出し、所定方向に隣り合う複数の領域の各々の特徴を、領域の配列順に並べた特徴系列を抽出し、
複数の登録文書画像の各々から抽出され、登録文書画像の識別情報と対応付けて記憶部に記憶された複数の特徴系列の各々と、対象文書画像から抽出された特徴系列とを照合し、前記対象文書画像に類似する登録文書画像を検索する
ことを含む処理を実行させる文書画像検索方法。
(付記6)
前記コンピュータに、前記特徴系列として抽出された高次元の特徴ベクトル系列を、低次元の特徴ベクトル系列に変換することを含む処理を実行させる付記5記載の文書画像検索方法。
(付記7)
ラプラシアン固有マップ法を用いて、前記高次元の特徴ベクトル系列を前記低次元の特徴ベクトル系列に変換する付記6記載の文書画像検索方法。
(付記8)
前記登録文書画像の特徴系列の各々と、前記対象文書画像の特徴系列との最近傍識別により、前記対象文書画像に類似する登録文書画像を検索する付記5〜付記7のいずれか1項記載の文書画像検索方法。
(付記9)
コンピュータに、
文書画像から、一文字の少なくとも一部に相当する部分に外接する領域の各々を抽出し、所定方向に隣り合う複数の領域の各々の特徴を、領域の配列順に並べた特徴系列を抽出し、
複数の登録文書画像の各々から抽出され、登録文書画像の識別情報と対応付けて記憶部に記憶された複数の特徴系列の各々と、対象文書画像から抽出された特徴系列とを照合し、前記対象文書画像に類似する登録文書画像を検索する
ことを含む処理を実行させるための文書画像検索プログラム。
(付記10)
前記コンピュータに、前記特徴系列として抽出された高次元の特徴ベクトル系列を、低次元の特徴ベクトル系列に変換することを含む処理を実行させるための付記9記載の文書画像検索プログラム。
(付記11)
ラプラシアン固有マップ法を用いて、前記高次元の特徴ベクトル系列を前記低次元の特徴ベクトル系列に変換する付記10記載の文書画像検索プログラム。
(付記12)
前記登録文書画像の特徴系列の各々と、前記対象文書画像の特徴系列との最近傍識別により、前記対象文書画像に類似する登録文書画像を検索する付記5〜付記7のいずれか1項記載の文書画像検索プログラム。