以下、画像検査装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態における画像検査装置1のブロック図である。
画像検査装置1は、第一画像格納部11、第二画像格納部12、検出部13、閾値受付部14、評価結果受付部15、輝度値取得部16、閾値取得部17、出力部18を備える。
検出部13は、レイアウト認識手段131、文字画像取得手段132、文字データ取得手段133、文字データ比較手段134、形態素解析手段135、対応判断手段136、文字画像比較手段137、閾値格納手段138、閾値設定手段139、入替検出手段140、追加検出手段141、削除検出手段142を備える。
第一画像格納部11には、第一画像が格納される。第一画像は、比較の基準となる画像である。本実施の形態で述べる画像とは、例えば、カラーやグレースケール、白黒等の静止画である。画像は、例えば、文字の画像や、マスコットキャラクター、アイコン、模様、イラストレーション等である。本実施の形態の画像は、例えば、1以上の文字の画像を含む画像である。本実施の形態の画像は、ビットマップデータであってもベクタデータであっても良い。また、画像は、1以上の文字データ(テキストデータ)を有していても良い。文字データとは、例えば、文字の画像を出力するための情報であり、例えば、文字コードである。第一画像のファイル形式等は問わない。第一画像は、例えば、印刷用の原稿であり、例えば、この第一画像を元に、実際の印刷に用いられる画像データが作成される。第一画像は、例えば、容器等の表面に印刷される印刷データの元となる原稿である。なお、第一画像が文字データを有している場合、第一画像は、この第一画像内の文字データが配置されている各領域から抽出した1以上の文字データと、文字データが抽出された各領域を指定する情報とを、更に有していても良い。文字データが配置されている各領域とは、例えば、テキストブロックや、テキストフレームと呼ばれる領域である。ここでの格納は、一時記憶であっても良い。例えば、図示しない入力受付部等が受け付けた第一画像が、第一画像格納部11に一時記憶されても良い。第一画像格納部11は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
第二画像格納部12には、第二画像が格納される。第二画像は、第一画像と同様の画像である。第二画像は、第一画像と比較される画像である。第二画像は、例えば、第一画像を元に作成された画像である。例えば、第一画像を原稿として作成された実際の印刷に用いられる印刷データの画像である。第二画像は、例えば、容器等の表面に印刷される印刷データである。第一画像と第二画像とのファイル形式やサイズ等は、同じであっても異なるものであっても良い。ここでの格納は、一時記憶であっても良い。例えば、図示しない入力受付部等が受け付けた第二画像が、第二画像格納部12に一時記憶されても良い。第二画像格納部12は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
検出部13は、第一画像と第二画像とを比較して差異の箇所を検出する。差異の箇所とは、画像間の一致しない部分である。本実施の形態においては、検出部13が、第一画像から取得した文字の画像である1以上の第一文字画像と、第二画像から取得した文字の画像である1以上の第二文字画像とを比較して、差異の箇所を検出する処理を含む場合の一例について説明する。
レイアウト認識手段131は、第一画像と第二画像とについてそれぞれレイアウトの認識を行って、1以上の領域をそれぞれ検出する。レイアウトの認識を行うということは、例えば、画像内において、文字が配置されている1以上の領域(テキストブロック、テキストフレーム等)やテキストを含む領域等を認識することである。例えば、レイアウト認識手段131は、第一画像と、第二画像とについてそれぞれ文字が配置されている領域を認識する。領域を認識するということは、例えば、領域を定義する情報を取得することである。領域を定義する情報を取得するということは、例えば、領域の輪郭を定義可能な情報を取得することである。輪郭を定義可能な情報を取得するということは、例えば、領域の位置の情報(例えば座標)と、サイズの情報(例えば、縦横の長さの情報)との組合せや、輪郭の頂点の座標(輪郭が多角形である場合)や、領域の輪郭を示す座標群を取得することである。また、領域を定義する情報を取得するということは、領域内の全ての画素の座標情報を取得することであっても良い。以下、レイアウト認識手段131がレイアウトを認識する処理の例について説明する。なお、ここでは、レイアウト認識手段131が第一画像および第二画像から最終的に認識する各領域を認識領域と呼ぶ。
図2は、レイアウト認識手段131が、第一画像および第二画像について行うレイアウトの認識処理の一例を説明するためのフローチャートである。ここでは、例として、第一画像について領域検出を行う場合について説明するが、第二画像についても、同様の処理を行うようにして良い。
(ステップS101)レイアウト認識手段131は、第一画像について同一背景色の領域を認識する処理を行う。この処理の詳細については後述する。
(ステップS102)レイアウト認識手段131は、ステップS101で認識された領域のそれぞれについて、枠で囲まれた領域の認識を行う。この処理の詳細については後述する。
(ステップS103)レイアウト認識手段131は、ステップS101、およびステップS102で認識された各領域について登録マーカの検出を行う。登録マーカとは、予め登録されているマーカ(印、標識等)であり、具体的には画像である。そして、各領域から、検出されたマーカが配置されている領域を除外する。この処理の詳細については後述する。
(ステップS104)レイアウト認識手段131は、第一画像内の残りの領域を定義する情報を取得する。これにより、同一背景色の領域内の枠で囲まれた領域(ただし、登録マーカと一致する領域を除去した領域)と、第一画像内の残りの領域とを認識したこととなる。これにより認識された領域が認識領域である。なお、残りの領域については、他の領域とは異なる色や輝度を有する画素を含む最小矩形領域を認識するようにしてよい。最小矩形領域の認識処理は公知技術であるので、ここでは詳細の説明は省略する。そして、処理を終了する。
図3は、上記のステップS101において説明した、レイアウト認識手段131が、第一画像から同一背景色の領域を認識する処理の詳細を説明するためのフローチャートである。
(ステップS201)レイアウト認識手段131は、第一画像を構成する各画素の色の値(例えば、CMYK値や、RGB値等)を用いて、領域ラベリング処理を行う。領域ラベリング処理とは、隣接する同じ色の画素を連結して領域を検出する処理である。なお、例えば、色の値の差(例えば、色相の差等)が予め指定された閾値以下のものについては、同じ色の画素と判断するようにしても良い。領域ラベリング処理により、第一画像内から、1以上の同じ色の領域を検出する。なお、特定の色は、ラベリング対象から除外するようにしてもよい。
(ステップS202)レイアウト認識手段131は、ラベリングされた領域のうちの、一定面積以上の領域を候補領域として検出する。
(ステップS203)レイアウト認識手段131は、現在検出されている(削除されずに残っている)候補領域のうちの面積の最も小さい候補領域を選択する。現在検出されている候補領域とは、削除されずに残っている候補領域である。
(ステップS204)レイアウト認識手段131は、ステップS203で選択した候補領域の内部(例えば、候補領域で囲まれた領域も含む)を、同一色で塗りつぶす。
(ステップS205)レイアウト認識手段131は、同一色で塗りつぶされた領域を定義する情報を、同一背景色の領域を定義する情報として取得し、図示しない記憶媒体等に蓄積する。そして、この領域を候補領域から除外する。なお、ここで認識された同一背景色の各領域を、ここでは、色領域と呼ぶ。
(ステップS206)レイアウト認識手段131は、他の候補領域があるか否かを判断する。ある場合、ステップS203に戻り、ない場合、処理を終了する。
なお、上記の処理において、レイアウト認識対象となる画像が、ベクトルデータである場合、ラベリング処理等の対象となる画素として、ベクトルデータを所定の解像度にレンダリングした場合の各画素や、ベクトルデータのプレビュー画像の各画素を用いても良い。かかることは、以下の他の処理においても同様である。あるいは、同じ色を有している隣接したベクトル図形が配置されている領域を、同一背景色の領域として認識しても良い。
図4は、上記のステップS102において説明した、ステップS101で認識された色領域のそれぞれにおいて、レイアウト認識手段131が、枠で囲まれた領域の認識を行う処理を説明するためのフローチャートである。
(ステップS301)レイアウト認識手段131は、ステップS101で認識された一の色領域を選択する。
(ステップS302)レイアウト認識手段131は、ステップS301で選択した色領域内の各画素について、隣接する画素間の画素値(例えば輝度値)を比較して、画素のエッジを抽出する。例えば、画素値の差が、予め指定された閾値以上であれば、エッジであると検出する。なお、エッジ検出の差異の閾値等は、予め指定されていても良いし、動的に設定されても良い。
(ステップS303)レイアウト認識手段131は、ステップS302で抽出したエッジから、一の色領域の内部にエッジで囲まれた閉曲線が存在するか否かを判断する。存在する場合、ステップS304に進み、存在しない場合、ステップS308に進む。
(ステップS304)レイアウト認識手段131は、一の閉曲線を選択し、この閉曲線の周囲の長さが、予め指定された長さ以上であるか否かを判断する。予め指定された長さ以上である場合、ステップS305に進み、長さ未満である場合、ステップS307に進む。
(ステップS305)レイアウト認識手段131は、ステップS304で選択した一の閉曲線の内部を、一の枠で囲まれた領域と判断し、この領域を定義する情報を取得し、この領域を識別する情報である領域識別情報と対応付けて、図示しない記憶媒体等に蓄積する。
(ステップS306)レイアウト認識手段131は、ステップS301で選択した一の色領域の内部から、ステップS305で定義した領域を除外する。
(ステップS307)レイアウト認識手段131は、色領域内に別の閉曲線があるか否かを判断する。ある場合、ステップS304に戻り、ない場合、ステップS308に進む。
(ステップS308)レイアウト認識手段131は、ステップS101で検出された別の色領域が存在するか否かを判断する。存在する場合、ステップS302に戻り、存在しない場合、上位の処理にリターンする。
以上の処理により、色領域のうちの枠で囲まれた領域を認識することができる。
なお、上記の処理において、レイアウト認識対象となる画像が、ベクトルデータである場合、色領域内の直線で囲まれた領域等を、枠で囲まれた領域として認識するようにしても良い。
次に、上記のステップS103において説明した、ステップS102で認識された各領域について登録マーカの検出を行う処理について簡単に説明する。レイアウト認識手段131は、予め登録されている登録マーカの画像を、図示しない記憶媒体等から読み出す。そして、ステップS101で認識された領域と、ステップS102で認識された領域とにおいて、それぞれ、登録マーカと一致する領域の検出を行う。そして、上記の各領域から、検出されたマーカが配置されている領域を除外し、このマーカの領域を除外した領域を定義する情報を取得し、図示しない記憶媒体等に蓄積する。登録マーカと一致する領域の検出は、例えば、登録マーカの画像の位置(座標)とサイズ(スケール)とをパラメータとして変更しながら、第一画像のステップS101で認識された領域内の画像と、ステップS102で認識された領域内の画像とのマッチングを行い、予め指定された値以上の評価値を得られた場合に、登録マーカが発見されたと判断する。なお、画像間のマッチングを行う処理については公知の技術であるので、ここでは詳細な説明は省略する。
なお、レイアウト認識手段131は、上記の処理を全て行うようにしても良いし、一部だけを行うようにしても良い。例えば、色領域を認識する処理を行わずに、枠で囲まれた領域だけを検出するようにしても良い。また、レイアウト認識手段131は、他のレイアウト認識の処理を行うようにしてもよい。
文字画像取得手段132は、第一画像と第二画像とからそれぞれ文字の画像を取得する。文字画像取得手段132が取得する一の文字の画像は、好ましくは、1文字単位の文字の画像である。ここでは、第一画像から取得した文字の画像を第一文字画像、第二画像から取得した文字の画像を第二文字画像と呼ぶ。文字画像取得手段132は、例えば、レイアウト認識手段131が認識した各認識領域に含まれる文字の画像をそれぞれ取得する。また、文字画像取得手段132は、文字の画像を取得するために、第一画像や第二画像において、各文字の画像を検出する処理を行っても良く、さらに検出した各文字の画像を定義する情報(例えば、輪郭を定義する情報)を取得しても良い。なお、画像内の一の領域から、1文字単位の文字の画像を検出し取得する処理は、いわゆるOCR(Optical Character Recognition)の技術として公知の技術であるので、ここでは詳細な説明は省略する。なお、第一画像や第二画像が文字データを含む画像である場合、各文字のアウトラインデータや、各文字のビットマップデータや、各文字をラスタライズして得られたビットマップデータ等を取得するようにしても良い。また、文字画像取得手段132は、結果的に、第一画像と第二画像とに含まれる文字の画像を取得できればよく、取得の方法や手段等は問わない。例えば、第一画像に含まれる文字データを、一旦、第一画像から抽出後、その抽出した文字データを文字ごとにラスタライズして第一文字画像を取得しても良く、このような場合も第一画像の文字画像を取得したと考えて良い。
また、後述する対応判断手段136が、第一画像と第二画像とにおいて上記で認識された認識領域間における対応関係を検出した場合、文字画像取得手段132は、第一画像と第二画像とにおいてそれぞれ認識された認識領域のうちの、後述する対応判断手段136が対応する認識領域であると判断した認識領域の組ごとに、それぞれ、一文字ごとの文字の画像を取得するようにしてもよい。この場合の文字の画像を取得する際の文字の配列順番や取得方向等は、通常、第一画像と第二画像とで同じ配列順番および取得方向となるようにする。
文字データ取得手段133は、第一画像に含まれる文字の画像に対応する文字データである1以上の第一文字データと、第二画像に含まれる文字の画像に対応する文字データである1以上の第二文字データとを取得する。文字データは、例えば、文字コードである。あるいは、文字データは文字コードに対応するハッシュ等であっても良い。具体的には、文字データ取得手段133は、第一画像に含まれる各認識領域ごとに、文字画像取得手段132が取得した1以上の第一文字画像に対応する文字データを取得する。また、文字データ取得手段133は、第二画像に含まれる各認識領域ごとに、文字画像取得手段132が取得した1以上の第二文字画像に対応する文字データを取得する。これにより、第一文字画像及び第二文字画像にそれぞれ対応する第一文字データ及び第二文字データとが取得される。なお、文字画像と文字データとの対応関係を示す情報(例えば、文字画像の識別情報と、文字コードとを対応付けた情報等)は、例えば、図示しない記憶媒体等に蓄積しておくようにする。なお、第一文字画像や第二文字画像等の文字の画像に対応する文字データを取得する処理は、OCR等の技術として公知の技術であるのでここでは詳細な説明は省略する。
文字データ比較手段134は、文字データ取得手段133が取得した第一文字データと、第二文字データとを比較して差異の箇所を検出する。ここでは、文字データ比較手段134は、レイアウト認識手段131が第一画像と第二画像とからそれぞれ認識した認識領域間において、第一文字データと第二文字データとを比較して差異の箇所を検出する。文字データ比較手段134は、第一画像の一の認識領域と、第二画像の一の認識領域とから、それぞれ同じ配列順番に沿って、第一文字データと第二文字データとをそれぞれ一文字ごとに取得し、比較することで、各文字データが一致するか否かを順番に判断していく。例えば、それぞれの認識領域について取得された文字データから、上の行から下の行に向かって、左から右に向かって一文字ずつ文字データを読み出し、読み出した文字データ(例えば、文字コードや文字のハッシュ)を比較することで、文字の一致、不一致を判断していく。また、比較した文字が一致しない場合、一致する文字が現れるまで探索を行うことで、例えば、改行ずれや、文字の追加、削除等によって生じた文字データの差異がある箇所を検出するようにしてもよい。一致しない文字が検出された箇所は、差異のある箇所の一つである。また、比較した文字が一致しなかった場合において、第一文字データの比較に用いられた文字と、第二文字データの比較に用いられた文字の次の文字とが一致した場合には、第一画像のこの一致しなかった箇所の直前の箇所は文字が欠落しているために差異が検出された箇所となる。なお、文字データで構成される二つの文字列を比較して、差異の箇所を検出する処理は、文書校正や、文書比較等の技術等として、公知の技術であるのでここでは詳細な説明は省略する。文字データ比較手段134は、例えば、比較によって、一致しないと判断された箇所、即ち差異があると判断された箇所を示す情報を、図示しない記憶媒体等に蓄積する。差異があると判断された箇所を示す情報は、例えば、差異があると判断された文字データに対応する文字画像の識別情報や、差異があると判断された文字画像の位置を示す情報等である。また、同様に、一致すると判断された箇所、即ち差異がないと判断された箇所を示す情報を、同様に、図示しない記憶媒体等に蓄積するようにしてもよい。差異がないと判断された箇所の情報に関しても同様である。
文字データ比較手段134は、対応する認識領域間の比較を行う。対応する認識領域間とは、同じ内容(同じ情報)を有すると考えられる領域である。ただし、対応する認識領域がわからない場合は、文字データ比較手段134は、例えば、対応する認識領域を検出する処理も兼ねて、第一画像において認識された1以上の認識領域と、第二画像において認識された1以上の認識領域との組合せについて、各認識領域間の第一文字データと第二文字データとを比較して差異の箇所を検出する。ここでの差異の箇所を検出する処理は、一致する箇所を検出する処理と考えても良い。文字データ比較手段134は、どのような組合せについて比較を行っても良いが、第一画像の一の認識領域と、第二画像の一の認識領域との対応関係が判断可能となるような組合せについて比較を行うことが好ましい。このように認識領域の組合せについて文字データの比較を行うのは、第一画像と第二画像とで、文字の配置されている領域が入れ替わったりしている場合があり、第一画像のどの認識領域が、第二画像のどの認識領域に対応するかを、後述する対応判断手段136が判断できるようにするためである。
例えば、文字データ比較手段134は、レイアウト認識手段131が認識した第一画像の全ての認識領域と、第二画像の全ての認識領域との組合せについて、第一文字データと第二文字データとの比較を行う。
また、例えば、文字データ比較手段134は、レイアウト認識手段131が同様の処理で検出した認識領域については、同じ内容の情報が記載されている認識領域であると考えるようにして、同様の処理で検出された認識領域間のみの文字データを比較するようにしても良い。
なお、第一画像の一の認識領域と第二画像の一の認識領域との文字データ間の比較を行った時点で、両者の文字データの一致率が予め指定された比率以上であった場合に、この認識領域の組を構成する各認識領域については、他の認識領域との文字データ間の比較は行わないようにして良い。
また、第一画像と第二画像とにおいて、文字が配置される認識領域等に大きな変化がない場合には、第一画像内における認識領域と、第二画像内における認識領域との、それぞれの画像内における位置とが互いに重なる認識領域についてだけ、文字データの比較を行うようにしても良い。
また、文字データ比較手段134は、形態素解析により第一文字データおよび第二文字データについてそれぞれ得られた形態素または単語を比較して、差異の箇所を検出するようにしても良い。例えば、文字データ比較手段134は、後述する形態素解析手段135が、第一画像および第二画像の各認識領域について文字データ取得手段133が取得した文字データに対して形態素解析を行うことで取得した形態素間を比較して、形態素が一致するか否かを判断する。形態素ごとに比較を行うことで、第二画像における形態素単位の文字の違いを検出することができる。例えば、文字データ比較手段134は、上述したような一文字単位の文字データの比較に代えて、あるいは、文字データの比較に加えて、上記のような形態素または単語による比較を行うようにしても良い。文字データ比較手段134は、例えば、形態素または単語が異なると判断された箇所を示す情報、即ち差異があると判断された箇所を示す情報を、図示しない記憶媒体等に蓄積する。この差異があると判断された箇所を示す情報は、例えば、差異があると判断された1以上の文字データにそれぞれ対応する文字画像の識別情報や、文字画像の位置を示す情報等である。
形態素解析手段135は、文字データ取得手段133が取得した第一文字データおよび第二文字データについてそれぞれ形態素解析を行う。形態素解析については、公知の技術であるのでここでは詳細な説明は省略する。なお、形態素解析のシステムとしては、例えば、「"Mecab(和布蕪)"[平成24年2月28日検索]、インターネット(URL:http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html)」や、「"ChaSen(茶筌)"、[平成24年2月28日検索]、インターネット(URL:http://chasen-legacy.sourceforge.jp/)」等が利用可能である。また、文字列から単語を取得する処理等としては、コンピュータ等で利用される日本語入力システム等の技術として公知の技術である。
形態素解析手段135は、通常、MPUやメモリ等から実現され得る。形態素解析手段135の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
対応判断手段136は、レイアウト認識手段131が第一画像について認識した1以上の認識領域と、第二画像について認識した1以上の認識領域との対応関係を判断する。例えば、対応判断手段136は、文字データ比較手段134が、第一画像において認識された1以上の認識領域と、第二画像において認識された1以上の認識領域との組合せについて行った、各認識領域間の第一文字データと第二文字データとを比較して差異の箇所を検出する処理の検出結果に応じて、対応関係を判断する。例えば、第一画像の認識領域と第二画像の認識領域との組合せについて行われた第一文字データと第二文字データの差異の箇所の検出処理において、検出された差異の箇所の数または比率が最も少なかった第一画像の認識領域と第二画像の認識領域との組み合わせが、対応する認識領域であると判断する。あるいは、形態素または単語の比較において、一致しない形態素や単語が検出された数または比率が最も小さかった認識領域の組合せを、対応する認識領域と判断しても良い。
また、対応判断手段136は、第一画像と第二画像の認識領域間の1以上の文字データの類似度を取得して、この類似度が最も高い認識領域が対応する認識領域であると判断するようにしても良い。類似の判断は、例えば、動的計画法による文字列類似度計算等を行うことにより類似度を算出することで判断可能である。文字列間の類似度の計算については、以下の文献を参考にされたい「"付録A符号列の比較と照合"、[平成24年2月29日検索]、インターネット(URL:http://sslab.nuee.nagoya-u.ac.jp/~sato/lec/kisoron2/string.pdf)」。また、上記の方法の他に、N-gramを利用して領域間の類似度を判断しても良い。N-gramに関しては、以下の文献を参照されたい「"N-gramモデルを利用したテキスト分析"、[平成24年2月29日検索]、インターネット(URL:http://www.shuiren.org/chuden/teach/n-gram/index-j.html)」。
また、対応判断手段136は、第一画像と第二画像との認識領域間で第一文字画像と第二文字画像の数(あるいは、文字コードの数)を比較して、数が同じである認識領域、あるいは、数が最も近い認識領域間を対応する認識領域と判断するようにしてもよい。
なお、対応判断手段136は、結果的に、第一画像において検出された認識領域の全てと、第二画像において検出された認識領域の全てとが、それぞれ一対一で対応させるようにすることが好ましい。
文字画像比較手段137は、第一画像から取得した文字の画像である1以上の第一文字画像と、第二画像から取得した文字の画像である1以上の第二文字画像とを比較して、差異の箇所を検出する。文字画像比較手段137は、具体的には、第一画像と第二画像とをそれぞれ構成する画素の輝度値の差を閾値と比較して差異の箇所を検出する。この閾値としては、例えば、後述する閾値格納手段138に格納されている閾値が用いられる。この閾値については後述する。文字画像比較手段137は、例えば、対応判断手段136が対応すると判断した第一画像の認識領域と、第二画像の認識領域とから文字データ取得手段133が取得した第一文字データと第二文字データとを比較して差異の箇所を検出する。ここでは、例えば、文字データ比較手段134が二つの認識領域間にそれぞれ含まれる文字画像に対応する文字データの比較を行っているため、各認識領域内の、文字データの一致する箇所は予め分かっている。このため、第一画像と第二画像との文字データの一致、不一致が認識されていると判断された箇所を基準として、それぞれの認識領域から、文字データに対応する文字画像を一文字ずつ文字画像取得手段132に取得させ、文字画像比較手段137は、取得された文字画像を比較して、差異の箇所を検出する。
差異の箇所の検出は、例えば、第一文字画像と第二文字画像とのサイズや形状等をサイズ変更を行うことによって揃え、揃えた第一文字画像と第二文字画像とを重ねた場合に対応する(重なりあう)画素間の画素値(例えば、輝度値)を比較することにより行われる。例えば、画素値の差が、閾値以上である部分は、差異の箇所であると判断され、閾値未満である部分は、差異のない箇所であると判断される。また、差異のある画素や画素群の数や比率によって、第一文字画像と第二文字画像とが一致するか否かを判断する。即ち、比較した第一文字画像と、第二文字画像とが、第一画像と第二画像の差異の箇所であるか否かを判断する。例えば、差異のある画素数や、差異のある画素の文字画像全体の画素に対する比率が、予め指定された閾値を超える場合に、なお、第一文字画像と第二文字画像との比較は、画素単位で行わなくても良く、例えば、複数の画素で構成されるブロック単位等で比較が行われても良い。この場合、例えば、複数の画素値の平均値等の、複数の画素値を統計処理した値を比較するようにしても良い。
文字画像比較手段137は、一致しないと判断された第二文字画像、または第一文字画像を示す情報(例えば、これらの画像の座標や識別情報)を、図示しない記憶媒体に蓄積する。また、文字画像比較手段137は、検出した差異のある箇所を示す情報(例えば、座標)等を、図示しない記憶媒体等に蓄積するようにしても良い。また、同様に、一致すると判断された第二文字画像と第一文字画像とを示す情報(例えば、一致すると判断された第一文字画像と第二文字画像とのそれぞれの識別情報や、それぞれの座標等)を、図示しない記憶媒体に蓄積するようにしてもよい。また、文字画像比較手段137は、差異のない箇所を示す情報を、図示しない記憶媒体等に蓄積するようにしてもよい。
上記で行われた文字データ比較手段134による比較は、第一画像や第二画像からOCRで取得された文字データの比較であるが、OCRは、複数の文字データの候補から、一の候補を提示するものであることから、必ずしも、画像内の文字を正確にしめすものではないため、文字データ比較手段134で比較した後、文字画像比較手段137で比較を行うことで、より正確な比較を行うことができる。
閾値格納手段138は、文字画像比較手段137が第一文字画像の画素と、第二文字画像の画素とが一致するか否かを判断するために用いられる閾値が格納される。閾値は、例えば、輝度値やCMYK値等の画素値である。例えば、デフォルト等で予め指定された閾値が格納される。また、後述する閾値設定手段139が設定した閾値が蓄積されるようにしてもよい。また、後述する閾値受付部14がユーザ等から受け付けた閾値が蓄積されてもよい。ここでの格納は、一時記憶も含む概念である。閾値格納手段138は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
閾値設定手段139は、第一画像と第二画像とをそれぞれ構成する画素の輝度値の差の出現状況に応じて、第一文字画像の画素と、第二文字画像の画素とが一致するか否かを判断するために用いられる閾値を設定する。そして、設定した閾値を閾値格納手段138に蓄積する。閾値設定手段139は、統計処理することで得られた値を閾値に設定する。例えば、第一画像と第二画像とをそれぞれ構成する複数の画素の輝度値の差の平均値や、中央値等を閾値に設定する。また、例えば、第一画像と第二画像との対応する認識領域内におけるそれぞれの画像を構成する画素の輝度値の差の平均値や、中央値等を閾値に設定してもよい。また、比較しようとする第一文字画像と第二文字画像内の画素、あるいは、その周辺の予め指定されたサイズの領域も含めた領域内の画素の輝度値の差の平均値や中央値等を閾値に用いてもよい。また、第一画像と第二画像内(あるいは、それらの対応する領域内等)に含まれる画素間の輝度値の差をある閾値で二つのクラスに分割した場合に、クラス間分散が最も大きくなるような閾値を取得して設定するようにしてもよい。また、画素間の輝度値の差の平均値を用いる代わりに、各画像の画素の輝度値の平均値の差を閾値等に用いてもよい。
入替検出手段140は、第一文字画像に対して第二文字画像の文字が入れ替わっている箇所を検出する。例えば、入替検出手段140は、文字画像比較手段137が差異のある箇所として検出した箇所のうちの、一致しない第一文字画像または一致しない第二文字画像が、二つ以上連続して並んでいる箇所を検出し、この検出した箇所の連続した二以上の第二文字画像を異なる順番で並べて順列を生成する。そして、生成した順列と、並べ替えをおこなっていない二以上の第一文字画像とを、一文字ごとに比較し、上記と同様に、一致しているか否かを判断していく。そして、生成した順列のうちの一つを構成する二以上の第二文字画像のそれぞれが、並べ替えをおこなっていない二以上の第一文字画像のそれぞれと一致していると判断された場合に、この複数の第一文字画像と第二文字画像とが一致しなかった箇所を、第一画像に対して第二画像の文字列が入れ替わっている箇所として検出する。そして、検出した箇所を示す情報(例えば、検出された二以上の第二文字画像の識別情報や、二以上の第二文字画像が配置されていた位置や領域の情報)を、図示しない記憶媒体等に蓄積する。なお、ここでは、第二文字画像を並べ替えた順列を用いた場合について説明したが、第一文字画像を並べた順列を用いてもよい。また、他の方法によって、文字列の入れ替わった箇所を検出してもよい。また、一致しない第一文字画像または第二文字画像が連続している箇所を検出する際においては、改行を挟む場合も、文字画像が連続して並んでいると判断してよい。
なお、ここでは、文字画像比較手段137の比較結果を利用して文字列が入れ替わっている箇所を検出するようにしたが、文字データ比較手段134の比較結果を利用して文字列が入れ替わっている箇所を検出するようにしてもよい。かかることは、以下の追加検出手段141及び削除検出手段142についても同様である。
追加検出手段141は、第一文字画像に対して第二文字画像の1以上の文字が追加されている箇所を検出する。なお、ここでの、第一文字画像に対する第二文字画像の追加されている箇所とは、第二文字画像に対する第一文字画像の削除されている箇所と考えても良い。例えば、追加検出手段141は、文字画像比較手段137が差異のある箇所として検出した箇所のうちの、対応する第一文字画像が存在しなかった第二文字画像が配置されている箇所を検出する。そして、追加検出手段141は、この第二文字画像を示す情報(例えば、第二文字画像の識別情報や、座標等)を、文字が追加された箇所を示す情報として取得する。
削除検出手段142は、第一文字画像に対して第二文字画像の1以上の文字が削除されている箇所を検出する。なお、ここでの、第一文字画像に対する第二文字画像の削除されている箇所とは、第二文字画像に対する第一文字画像の削除されている箇所と考えても良い。例えば、削除検出手段142は、対応する第二文字画像が存在しなかった第一文字画像を検出する。そして、削除検出手段142は、この第一文字画像を示す情報(例えば、第一文字画像の識別情報や、座標等)を、文字が削除された箇所を示す情報として取得する。
閾値受付部14は、文字画像比較手段137が第一文字画像の画素と、第二文字画像の画素とが一致するか否かを判断するために用いられる閾値を受け付ける。例えば、ユーザ等が、図示しない入力手段等を介して入力する閾値を受け付ける。閾値受付部14は、受け付けた閾値を、閾値格納手段138に蓄積する。閾値の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。閾値受付部14は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
評価結果受付部15は、後述する出力部18が出力する1以上の差異の箇所に対するユーザの評価結果を受け付ける。具体的には、評価結果受付部15は、出力された差異の箇所あるいは差異ではない箇所が、実際に差異の箇所であるか否かを示す評価結果を、各差異の箇所について受け付ける。例えば、出力部18が、第一文字画像と第二文字画像とが一致しない箇所を、差異の箇所ではない箇所として示している場合に、この箇所に対して、マウスやタッチパネル等を利用して、差異の箇所であることを指定した場合に、評価結果受付部15は、この箇所について、差異の箇所であるという評価結果を受け付ける。また、出力部18が、第一文字画像と第二文字画像とが一致する箇所を、差異の箇所として示している場合に、この箇所に対して、マウスやタッチパネル等を利用して、差異の箇所ではないことを指定した場合に、評価結果受付部15は、指定された差異の箇所が差異の箇所でないという評価結果を受け付ける。また、差異の箇所として正しく示された箇所について、差異の箇所であることを示す評価結果を受け付けるようにしてもよい。
入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。評価結果受付部15は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
輝度値取得部16は、評価結果受付部15が受け付けた各評価結果に対応する差異の箇所についての、第一文字画像と第二文字画像との輝度値に関する情報を取得する。ここで取得する輝度値に関する情報は、例えば、評価結果を受け付けた箇所に位置する第一文字画像と第二文字画像との対応する各画素の輝度値の差の集合や、これらの輝度値の差を統計処理して得られた値(例えば平均値や、中央値、最大値、最小値、最も出現頻度の高い値等)である。また、評価結果を受け付けた箇所に位置する第一文字画像と第二文字画像とのそれぞれの画素の輝度値の値や、各文字画像を構成する1以上について得られた輝度値を上記と同様の統計処理して得られた値である。この輝度値に関する値は、複数種類の値であっても良い。また、この輝度値に関する値は、評価結果を受け付けた箇所に位置する第一文字画像と第二文字画像との対応する各画素間の輝度値の差に関する値でも良い。ここで取得する輝度値に関する値は、例えば、後述する閾値取得部17がどのような機械学習を行って、どのように閾値を設定するかによって異なる。
輝度値取得部16は、通常、MPUやメモリ等から実現され得る。輝度値取得部16の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
閾値取得部17は、評価結果受付部15が受け付けた評価結果と、評価結果に対応する箇所について(具体的には、第一文字画像と第二文字画像とについて)輝度値取得部16が取得した輝度値に関する情報と、この第一文字画像と第二文字画像とを比較する際に文字画像比較手段137が利用した閾値との組合せを学習データとして用いて学習を行う。なお、学習データを用いた学習については、SVR等の学習モデルが、公知技術として利用可能である。この場合、学習データは教師データと考えてもよい。ただし、学習はどのように行うようにしても良い。例えば、誤りであることを示す評価結果が得られた場合に、評価に用いられた閾値を、正しい評価が得られる方向の値に変動させていくことで、閾値を学習させるようにしても良い。例えば、一の輝度値で評価した場合に、異なる文字であると判断された文字間について、評価が誤っているという評価結果を受け付けた場合、この閾値の値を予め指定された値だけ下げたり上げたりしていくことで、最適な閾値を学習させるようにしても良い。閾値取得部17は、学習によって取得した閾値を閾値格納手段138に蓄積する。
閾値取得部17の学習結果を利用して閾値を利用する場合について以下に説明する。文字画像比較手段137が一の組の第一文字画像と第二文字画像との比較を行う直前に、上述した輝度値取得部16がこの第一文字画像と第二文字画像とから上記と同様の輝度値に関する情報を取得するようにする。そして、この輝度値に関する情報が、閾値取得部17に入力されるようにする。閾値取得部17は、この輝度値に関する情報を用いて、複数の閾値のそれぞれを用いて文字画像比較手段137が評価を行った場合に、どのような評価結果(即ち、文字画像比較手段137の判断結果が、正しいものであるか否かを示す値)が得られるかを、学習結果を用いて取得する。そして、文字画像比較手段137の判断結果が正しくなる閾値の一つ(例えば最も低い閾値)を取得して、閾値格納手段138に蓄積する。そして、文字画像比較手段137は、この閾値を用いて、上記の一の組の第一文字画像と第二文字画像との比較を行うようにする。
閾値取得部17は、通常、MPUやメモリ等から実現され得る。閾値取得部17の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部18は、検出部13が検出した差異の箇所を示す情報を出力する。差異の箇所を示す情報を出力するとは、例えば、第一画像や第二画像、あるいはその一部に対して、差異が検出された箇所を、差異が検出されなかった箇所と異なる出力態様で出力することである。例えば、差異が検出された第一文字画像あるいは第二文字画像を、他の文字画像とは異なる出力態様で出力することである。出力態様が異なるとは、出力する文字画像の背景色が異なることや、出力する文字画像に、他の色の画像を合成して(例えばオーバーレイして)出力することや出力と文字画像を、予め指定されたパターンの線等で囲って出力することである。例えば、差異が検出された第一文字画像や第二文字画像を、他とは異なる色の画像と合成して出力する。また、差異の箇所を示す情報を出力するということは、差異の箇所を、座標等で指定する情報を出力することであってもよい。出力が表示である場合、出力態様は表示態様と考えても良い。なお、出力部18は、第二画像や第一画像のレイアウト認識手段131が認識した認識領域のうちの、差異の箇所を含む認識領域を、他とは異なる出力態様で出力しても良い。
出力部18は、例えば、文字画像比較手段137が差異の箇所として検出した箇所を示す情報を出力する。また、出力部18は、例えば、入替検出手段140が検出した文字列が入れ替わっている箇所を示す情報を出力する。また、出力部18は、追加検出手段141が検出した文字が追加されている箇所を示す情報を出力する。また、出力部18は、削除検出手段142が検出した文字が削除されている箇所を示す情報を出力する。なお、出力部18は、文字データ比較手段134が文字コードについて検出した差異の箇所を示す情報を出力してもよい。また、出力部18は、文字データ比較手段134が形態素解析を利用して検出した形態素または単語についての差異がある箇所を示す情報を出力するようにしてもよい。なお、出力部18は、異なる検出が行われた箇所を、異なる出力態様で出力するようにしても良い。例えば、入替検出手段140が検出した文字列が入れ替わっている箇所と、追加検出手段141が検出した文字が追加されている箇所とを異なる出力態様で出力しても良い。異なる出力態様とは、視覚等で識別可能となるような出力態様(例えば、表示態様)で出力することであり、例えば、異なる色やパターンをオーバーレイ表示したり、異なる色やパターンの線で囲って表示したり、異なる色やパターンの下線等を出力することである。
ここで述べる出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。出力部18は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部18は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、画像検査装置1の動作について図5のフローチャートを用いて説明する。ここでは、第一画像格納部11と第二画像格納部12とには、比較の対象となる第一画像と第二画像とがそれぞれ予め格納されているものとする。また、ここでは一例として、第一画像は、文字データを含む画像データであるとし、第一画像格納部11には、第一画像と、第一画像内から抽出された第一文字データとが対応付けて格納されているものとする。また、抽出された文字データは、第一画像内のそれぞれが格納されていた領域(例えば、テキストボックス)等の識別情報と対応付けて第一画像格納部11に格納されているものとする。
(ステップS401)レイアウト認識手段131は、第一画像格納部11に格納されている第一画像に対するレイアウト認識の処理を行う。ここで行われるレイアウト認識の処理は、例えば、図2で示した処理と同様の処理である。レイアウト認識手段131は、認識した1以上の認識領域を定義する情報を、第一画像の識別情報(例えば、ファイル名等)と、認識領域の識別情報とに対応付けて、図示しない記憶媒体等に蓄積する。
(ステップS402)レイアウト認識手段131は、第二画像格納部12に格納されている第二画像に対するレイアウト認識の処理を行う。ここで行われるレイアウト認識の処理は、例えば、図2で示した処理と同様の処理である。レイアウト認識手段131は、認識した1以上の認識領域を定義する情報を、第二画像の識別情報と、認識領域の識別情報とに対応付けて、図示しない記憶媒体等に蓄積する。
(ステップS403)文字画像取得手段132は、第二画像の各認識領域について、それぞれ、一文字ごとの文字画像である1以上の第二文字画像を検出し、取得する。検出した各第二文字画像が配置されている領域を示す情報(例えば、各第二文字画像のコーナーの座標を示す情報等)には、第二文字画像の識別情報を付与して図示しない記憶媒体に蓄積する。
(ステップS404)文字画像取得手段132は、第二画像の各認識領域について、各認識領域から文字画像取得手段132が取得した1以上の第二文字画像を用いて、各第二文字画像に対応する第二文字データを取得する。取得した第二文字データは、対応する第二文字画像の識別情報と対応付けて、図示しない記憶媒体に蓄積する。
(ステップS405)文字データ比較手段134は、カウンターmの値に1を代入する。
(ステップS406)文字データ比較手段134は、カウンターnの値に1を代入する。
(ステップS407)文字データ比較手段134は、ステップS404で取得された第二文字データのうちの、第二画像のm番目の認識領域から取得された第二文字データと、第一画像と対応付けられて第一画像格納部11に格納されている、第一画像のn番目の認識領域から抽出された第一文字データとを比較する。例えば、予め指定された順番に、第二文字データと第一文字データとを一文字ずつ読み出して比較して、一致しているか否かを判断していく。ここでの比較は、例えば、文字コードの比較や、文字について得られたハッシュの比較である。そして、一致しているか否かを示す情報を、例えば比較に用いられた第二文字データと対応する第二文字画像の識別情報と対応付けて、図示しない記憶媒体等に蓄積する。また、比較された第一文字データを識別する情報も更に対応付けて蓄積するようにしても良い。なお、第一文字データと第二文字データとが一致しない場合、文字を一文字飛ばして再度比較等を行うようにしてもよい。
(ステップS408)文字データ比較手段134は、ステップS407の比較により得られた、第一文字データと第二文字データとが一致しているか否かを示す比較結果を示す情報を、例えば比較に用いられた第二文字データと対応する第二文字画像の識別情報と、比較された認識領域の識別情報とを対応付けて、図示しない記憶媒体等に蓄積する。また、比較された第一文字データを識別する情報も更に対応付けて蓄積するようにしても良い。
(ステップS409)文字データ比較手段134は、カウンターnの値を1インクリメントする。
(ステップS410)文字データ比較手段134は、レイアウト認識手段131が第一画像について認識した認識領域のなかにn番目の認識領域があるか否かを判断する。ある場合、ステップS407に戻り、ない場合、ステップS411に進む。
(ステップS411)文字データ比較手段134は、カウンターmの値を1インクリメントする。
(ステップS412)文字データ比較手段134は、レイアウト認識手段131が第二画像について認識した認識領域のなかに、m番目の認識領域があるか否かを判断する。ある場合、ステップS406に戻り、ない場合、ステップS413に進む。
(ステップS413)対応判断手段136は、文字データ比較手段134が取得した各認識領域ごとの比較結果を示す情報に応じて、第一画像の認識領域と、第二画像の認識領域とにおいて対応する認識領域を決定する。例えば、ステップS408で蓄積された比較結果を用いて、第二画像の一の認識領域に対して、この認識領域に含まれる第二文字データと一致する第一文字データの比率(または数)が最も高い第一画像の認識領域を検出し、この検出された認識領域と、上記の一の認識領域とを、対応する認識領域に決定する。そして、それぞれの認識領域の識別情報を有する情報を認識領域間の対応関係を示す情報として、図示しない記憶媒体等に蓄積する。
(ステップS414)形態素解析手段135は、対応判断手段136により対応付けられた第一画像と第二画像との各認識領域に対応する第一文字データと第二文字データとに対して、順次形態素解析を行う。
(ステップS415)文字データ比較手段134は、対応する各認識領域間で、形態素解析により得られた形態素間の比較を、形態素単位で順番に行い、比較結果を図示しない記憶媒体等に蓄積する。例えば、形態素単位で一致するか否かの判断が行われ、形態素の識別情報と、一致する形態素の有無を示す情報等が対応付けられて、図示しない記憶媒体等に蓄積される。
(ステップS416)文字画像比較手段137は、文字画像の比較に利用される閾値として、閾値設定手段139が学習結果を利用して取得した閾値を利用するか否かを判断する。利用する場合、ステップS420に進み、利用しない場合、ステップS417に進む。
(ステップS417)閾値受付部14は、閾値を受け付けているか否かを判断する。受け付けている場合、ステップS418に進み、受け付けていない場合、ステップS419に進む。
(ステップS418)閾値受付部14は、ステップS417で受け付けた閾値を設定する。具体的には、閾値格納手段138に蓄積する。そして、ステップS420に進む。
(ステップS419)閾値設定手段139は、ステップS413で対応付けられた各認識領域の組について、各認識領域の画素の輝度の値の出現状況を利用して各認識領域の組ごとに閾値を取得する。そして、取得した閾値を、各認識領域の組と対応付けて閾値格納手段138に蓄積する。
(ステップS420)文字画像比較手段137は、カウンターpの値に1を代入する。
(ステップS421)文字画像取得手段132は、第一画像と第二画像との、ステップS413で対応付けられた各認識領域の組のうちの、p番目の組の認識領域から、それぞれ、第一文字画像と第二文字画像とを予め指定された取得順番に従って、一文字ごとに取得する。文字画像取得手段132は、例えば、第一画像から抽出された文字データのうちの、このp番目の認識領域内の認識領域に対応付けられている文字データ(即ち、p番目の認識領域から抽出された文字データ)を、一文字ごとにラスタライズすることにより第一文字画像を取得する。ただし、ラスタライズはまとめて行うようにしてもよい。
(ステップS422)文字画像比較手段137は、ステップS421で取得された第一文字画像と第二文字画像とを一文字単位で比較して、同一文字であるか否かを判断する。そして、判断結果を、比較に用いられた第一文字画像の識別情報や、比較に用いられた第一文字画像に対応する第一文字コードの識別情報や、第二文字画像の識別情報と対応付けて図示しない記憶媒体等に蓄積する。なお、比較する際には、文字データ比較手段134による比較による判断結果が対応付けられている第一文字データと第二文字データとにそれぞれ対応する第一文字画像と第二文字画像とを比較することが好ましい。このようにすることで、文字データ比較手段134の比較結果を利用して無駄のない比較を行うことができるという効果がある。また、文字データ比較手段134の比較結果を確認できるという効果が得られる。なお、ステップS416で、閾値取得部17が取得する閾値を取得することが指定されている場合、例えば、一の第一文字画像と第二文字画像とを比較する際に、輝度値取得部16が、この第一文字画像と第二文字画像との各画素について輝度値に関する情報を取得し、この輝度値に関する情報を用いて、閾値取得部17が、学習結果を利用して、評価結果受付部15が受け付ける評価が、文字画像比較手段137の判断結果が正しいことを示す評価となると考えられる閾値を取得して、閾値格納手段138に一時記憶して、この閾値を用いて一の第一文字画像と第二文字画像とを比較するようにする。
(ステップS423)文字画像比較手段137は、カウンターpの値を1インクリメントする。
(ステップS424)文字画像比較手段137は、ステップS413で対応付けられた認識領域の組に、p番目の組があるか否かを判断する。ある場合、ステップS421に戻り、ない場合、ステップS425に進む。
(ステップS425)入替検出手段140は、文字画像比較手段137の比較結果、または、文字データ比較手段134の比較結果を利用して、第一文字画像に対して第二文字画像の文字が入れ替わっている箇所を検出する。そして、検出した箇所を示す情報を、図示しない記憶媒体等に蓄積する。
(ステップS426)追加検出手段141は、文字画像比較手段137の比較結果、または、文字データ比較手段134の比較結果を利用して、第一文字画像に対して第二文字画像の1以上の文字が追加されている箇所を検出する。そして、検出した箇所を示す情報を、図示しない記憶媒体等に蓄積する。
(ステップS427)削除検出手段142は、文字画像比較手段137の比較結果、または、文字データ比較手段134の比較結果を利用して、第一文字画像に対して第二文字画像の1以上の文字が削除されている箇所を検出する。そして、削除された箇所を示す情報を、図示しない記憶媒体等に蓄積する。
(ステップS428)出力部18は、検出部13が検出した第一画像に対する第二画像の差異のある箇所を示す情報を出力する。例えば、文字画像比較手段137が差異の箇所として検出した箇所(即ち、第一文字画像と第二文字画像とが一致しない箇所)を示す情報を出力する。また、出力部18は、例えば、入替検出手段140が検出した文字列が入れ替わっている箇所を示す情報を出力する。また、出力部18は、追加検出手段141が検出した文字が追加されている箇所を示す情報を出力する。また、出力部18は、削除検出手段142が検出した文字が削除されている箇所を示す情報を出力する。なお、出力部18は、文字データ比較手段134が文字コードについて検出した差異の箇所を示す情報を出力してもよい。また、出力部18は、文字データ比較手段134が形態素解析を利用して検出した形態素または単語についての差異がある箇所を示す情報を出力するようにしてもよい。また、これらの情報は、図示しない受付部等が受け付けるユーザの操作によって適宜切り替えて出力されるようにしても良い。また、第二画像や第一画像についてレイアウト認識手段131が認識した認識領域のうちの、差異のある認識領域を、他の認識領域と異なる出力態様で出力しても良い。
(ステップS429)評価結果受付部15は、出力部18が出力した1以上の差異の箇所についての、ユーザの評価結果を受け付けたか否かを判断する。受け付けた場合、ステップS430に進み、受け付けていない場合、ステップS432に進む。
(ステップS430)輝度値取得部16は、ステップS429で評価結果を受け付けた各箇所(例えば、文字画像)について輝度値に関する値を取得する。
(ステップS431)閾値取得部17は、ステップS429で受け付けた評価結果と、この評価結果に対応してステップS430で取得された輝度値に関する値と、評価の対象となった文字画像比較手段137の比較処理において文字画像比較手段137が用いた閾値(例えば、ステップS418でユーザが設定した閾値等)の組を学習データとして用いて、学習を行う。
(ステップS432)出力部18は、出力を終了するか否かを判断する。例えば、出力を終了する指示等を図示しない受付部等を介して受け付けた場合に、出力を終了すると判断する。出力を終了する場合、出力を終了して、処理を終了する。出力を終了しない場合、ステップS428に戻る。なお、出力を更新する必要がない場合等には、ステップS429に戻るようにしても良い。
なお、ステップS419等を省略して、閾値格納手段138にデフォルト等として格納されている閾値を、文字画像比較手段137が文字画像の比較に用いるようにしても良い。
なお、図5のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における画像検査装置1の具体的な動作について説明する。
図6は、第一画像格納部11に格納されている第一画像の一例を示す図である。ここでは、第一画像221は、文字データを含む画像であるとする。図において、テキストボックス61〜64は文字データが配置されている領域である。各テキストボックス61〜64には、図に示すように、テキストボックスの識別情報として、「T1061」から「T1064」が割り当てられているとする。本実施の形態においては、この第一画像221は、例えば、デザイン会社や、印刷の依頼者等が提出した、飲料等の缶等の容器の側面に印刷される画像の原稿の画像であるとする。具体的には、円筒形の缶の表面に印刷する原稿画像であり、この第一画像221のファイル名は、「版データ原稿」であるとする。なお、ここでは、印刷の対象となる容器が、一例として円筒形の缶とした場合について説明するが、印刷の対象となる容器は、どのような形状(直方体、球形等)のどのような材質(金属、プラスチック等)の容器であっても良い。
図7は、抽出した文字データを管理する抽出文字データ管理情報の一例を示す図である。抽出文字データ管理情報は、「ファイル名」と、「抽出文字データ」と、「ボックスID」という項目を有している。「ファイル名」は、文字データの抽出元となる第一画像221のファイル名である。「抽出文字データ」は、第一画像221の各テキストボックスから抽出された文字データである。「ボックスID」は、文字データの抽出先となるテキストボックスの識別情報である。なお、抽出された文字データは、第一画像格納部11に格納されているものとする。なお、ここでは、各行をレコードと考える。
図8は、第二画像格納部12に格納されている第二画像222の一例を示す図である。この第二画像222は、第一画像221に対応した第二画像222であるとする。この画像データ内の文字データは全てアウトライン化されており、文字データ(文字コード)の情報は有していないものとする。本実施の形態においては、この第二画像222は、容器メーカーや、容器に印刷を行う印刷会社等が作成した、実際の缶への印刷に利用される印刷データであり、第一画像221を元に作成された印刷データであるとする。この第二画像222のファイル名は、「印刷データ」であるとする。この第二画像222においては、第一画像221に対してレイアウト等の変更が加えられているものとする。
まず、ユーザが、図示しない受付部等に対して、第二画像格納部12に格納されている第二画像222「印刷データ」の、第一画像格納部11に格納されている第一画像221「版データ原稿」に対する差異を検査する指示を与えたとする。
レイアウト認識手段131は、第一画像221に対してレイアウトを認識する処理を行う。まず、図6に示した第一画像221について、同じ色の領域(色領域)を検出する。次に、レイアウト認識手段131は、検出された図形のうちの一定面積以上の領域を候補領域として検出する。次に、レイアウト認識手段131は、現在検出されている候補領域のうちの面積の最も小さい候補領域を選択し、その内部を含む領域を定義する情報を、色領域を定義する情報として取得し、図示しない記憶媒体等に蓄積する(登録する)。ここでは、領域を定義する情報は、領域の周囲の変曲点等の座標であるとする。また、領域識別情報は、予め指定されたルール等に従って付与されるものとする。蓄積した領域は、候補領域から除外する。同様にして、他の候補領域についても、順次、色領域を定義する情報を取得し、蓄積する。
例えば、第一画像221については、図9に示すような色領域91、および色領域92が検出される。
次に、レイアウト認識手段131は、上記で検出した各色領域91、92について、枠で囲まれた領域を検出する。まず、レイアウト認識手段131は、ステップS101で認識された一の色領域を選択し、選択した色領域の各画素について、隣接する画素間の画素値(例えば輝度値)を比較して、画素のエッジを抽出する。例えば、画素値の差が、予め指定された閾値以上であれば、エッジであると検出する。レイアウト認識手段131は、抽出したエッジから、一の色領域の内部にエッジで囲まれた閉曲線が存在するか否かを判断する。ここでは、閉曲線が存在するため、一の閉曲線を選択し、この閉曲線の周囲の長さが、予め指定された長さ以上であるか否かを判断する。ここでは、予め指定された長さ以上であるため、選択した一の閉曲線の内部を、一の枠で囲まれた領域と判断し、この領域を定義する情報を取得し、この領域を識別する情報である第一領域識別情報と対応付けて、図示しない記憶媒体等に蓄積する。領域を定義する情報は、例えば、領域の周囲の変曲点等の座標である。さらに、同じ色領域内で、他の閉曲線の検出を行い、検出された場合、検出された閉曲線の内部の領域を定義する情報と、領域識別情報とを対応づけて図示しない記憶媒体等に蓄積する。同様の処理を他の色領域についても順次行う。
更に検出された各領域において、予め図示しない記憶媒体等に格納されている登録マーカの画像と一致する画像を検出し、検出した領域を、各領域から除外する。なお、ここでは、登録マーカ画像と一致する画像が検出されなかったとする。
更に、レイアウト認識手段131は、色領域以外の残りの領域において、他の領域とは異なる色や輝度を有する画素(例えば、文字の画素)を、第一画像221の両端および上下方向から検出し、最も高さの高い位置の画素と、低い位置の画素と、最も左側の位置の画素と、最も右側の位置の画素とをそれぞれ検出し、これらの点を通過する辺を有する矩形領域を残りの領域として認識し、この領域を定義する情報と、第一領域識別情報とを対応づけて図示しない記憶媒体等に蓄積する。
これにより、図6に示した第一画像221については、図10に示すような四つの認識領域1001〜1004が検出される。四つの認識領域1001〜1004にそれぞれ対応づけられた第一領域識別情報は「R01」〜「R04」であるとする。
図11は、レイアウト認識手段131が第一画像221について認識した認識領域を定義する情報を管理する第一領域管理情報である。第一領域管理情報は、「ファイル名」、「領域ID」、「領域定義情報」という項目を有している。「ファイル名」は、第一画像221のファイル名である。「第一領域ID」は、第一領域識別情報である。「領域定義情報」は、領域を定義する情報である。ここでは、各領域が矩形の領域であったとし、領域を定義する情報は、領域の四隅の座標であるとする。なお、本実施の形態においては、xr、ys(r、sは1以上の整数)は、それぞれ特定の数値であるとする。
同様に、レイアウト認識手段131は、図8に示した第二画像222についても、上記の第一画像221の場合と同様に一以上の認識領域を検出する。
この処理により、図8に示した第二画像222については、図12に示すような四つの認識領域1201〜1204が検出されたとする。四つの認識領域1201〜1204にそれぞれ対応づけられた第二領域識別情報は「R21」〜「R24」であるとする。
図13は、レイアウト認識手段131が第二画像222について認識した認識領域を定義する情報を管理する第二領域管理情報である。第二領域管理情報は、「ファイル名」、「第二領域ID」、「領域定義情報」という項目を有している。「ファイル名」は、第二画像222のファイル名である。「第二領域ID」は、領域識別情報である。「領域定義情報」は、領域を定義する情報である。ここでは、各領域が矩形の領域であったとし、領域を定義する情報は、領域の四隅の座標であるとする。
次に、文字画像取得手段132は、レイアウト認識手段131が第二画像222について認識した各認識領域について、それぞれ、1以上の第二文字画像を検出する。まず、「第二領域ID」が「R21」の認識領域について、一文字ごとに、第二文字画像を検出していく。例えば、一の第二文字画像は、一の文字が収まる最小矩形画像である。このような第二文字画像を検出する処理は、OCR等の技術において公知の技術である。そして、検出した第二文字画像を管理する情報として、検出した各第二文字画像の領域を定義する情報と、検出した第二文字画像の領域の識別情報である第二文字画像識別情報とを、第二領域ID「R21」と対応づけて、図示しない記憶媒体に蓄積する。
図14は、「第二領域ID」が「R21」の認識領域1201について、文字画像取得手段132が検出した第二文字画像を示す図である。図において、斜線で示した各矩形画像が、文字画像取得手段132により検出された各第二文字画像であるとする。
同様にして、文字画像取得手段132は、「第二領域ID」が、「R22」から「R24」までの各認識領域についても第二文字画像を検出し、検出した各第二文字画像を管理する情報を、図示しない記憶媒体に蓄積する。
図15は、第二画像222の各認識領域について検出された第二文字画像を管理する第二文字画像管理情報を示す図である。第二文字画像管理情報は、第二文字画像を検出した認識領域の識別情報である「第二領域ID」と、第二文字画像識別情報である「第二文字画像ID」と、第二文字画像の領域を定義する情報である「文字領域定義」とを有する。
次に、文字データ取得手段133は、第二画像222から検出した各第二文字画像に対応する文字データを、OCRの技術を利用して取得する。ここでは、各認識領域に配置されている第二文字画像について、上の行から下の行に向かって左から右に順次文字データを取得していく。そして、各第二文字画像について取得した文字データを、対応する第二文字画像の識別情報である第二文字画像識別情報と、第二画像222内の認識領域を示す第二領域識別情報とを対応づけて、図示しない記憶媒体に蓄積する。
図16は、文字データ取得手段133が取得した第二文字データを管理する第二文字データ管理情報である。第二文字データ管理情報は、「第二領域ID」と、「第二文字画像ID」と、第二文字データである「第二文字」と、いう項目を有している。「第二領域ID」は、図13の「第二領域ID」に相当する。なお、ここでは、「第二文字」の値として、実際の文字を示しているが、「第二文字」の値は、文字コードであってもよい。
次に、文字データ比較手段134は、第二画像222の各認識領域について取得した一以上の第二文字データと、第一画像221の各認識領域に含まれる第一文字データとを比較する。そして、この比較結果から、対応判断手段136は、認識領域間の対応関係を判断する。第一画像221の各認識領域に含まれる第一文字データとしては、ここでは、レイアウト認識手段131が第一画像221について検出した各認識領域内に含まれる(あるいは重なる)テキストボックスから抽出された第一文字データを取得する。例えば、図6および図8に示すように、「第一領域ID」が「R01」である第一画像221の認識領域内には、識別情報が「T1061」であるテキストボックス61が含まれているため、「第一領域ID」が「R01」である第一画像221の認識領域内の第一文字データとしては、テキストボックス61から抽出した文字データを用いる。具体的には、「第一領域ID」が「R01」である第一画像221の認識領域に対応する第一文字データとして、図7に示した抽出文字データ管理情報から、「ボックスID」が「T1061」であるレコードの「抽出文字データ」の値を用いる。
なお、第一画像221から予め抽出した文字データが用意されていない場合や、第一画像221から文字データが抽出できない場合には、第二画像222の場合と同様に、文字画像取得手段132は、第一画像221の各認識領域についてそれぞれ一以上の第一文字画像を検出し、第二文字データを取得するようにすればよい。
文字データ比較手段134は、まず、第二画像222の「第二領域ID」が「R21」である認識領域から取得した第二文字データと、第一画像221の「第一領域ID」が「R01」である認識領域から取得した第一文字データとを一文字ごとに比較する。第二画像222の「第二領域ID」が「R21」である認識領域から取得した第二文字データとしては、第二文字データ管理情報の「第二領域ID」が「R21」であるレコードの「第二文字」の値を上から順番に取得して用いる。「第一領域ID」が「R01」である認識領域から取得した第一文字データとしては、抽出文字データ管理情報の「ボックスID」が「T1061」であるレコードの「抽出文字データ」の値を用いる。比較の結果、一致する文字と一致しない文字とを検出する。また、一致する文字がない場合に、文字をずらして比較を行うことで、文字の欠落も検出する。そして、文字の比較結果を、第一画像221の第一領域ID「R01」と第二画像222の第二領域ID「R21」とを対応づけて、図示しない記憶媒体に蓄積する。文字の比較結果は、比較された各第二文字データと、各第二文字データに対応する第二文字画像の識別情報と、比較された第一文字データと、一致または不一致を示す情報とを有する情報である。
図17は、図示しない記憶媒体に蓄積された比較結果を示す比較結果情報である。比較結果情報は、第一画像221の第一領域識別情報である「第一領域ID」と、第二画像222の第二領域識別情報である「第二領域ID」と、第二文字を示す「第二文字」と、第二文字画像の識別情報である「第二文字画像ID」と、比較された第一文字データである「第一文字」と、文字データを比較した場合の一致または不一致を示す情報である「比較結果」と、「第二文字画像」が示す第二文字画像と、「第一文字」が示す第一文字データに対応する第一文字画像とを比較した場合の一致または不一致を示す情報である「画像比較結果」と、文字が入れ替わっていることを示す情報である「入替」と、文字が追加されていることを示す情報である「追加」と、文字が削除されていることを示す情報である「削除」という項目を有している。なお、文字データの欠落により、対応する第一文字コードや、第二文字コードがない場合、「第二文字」や「第二文字画像ID」や「第一文字」の値は、空欄(例えばNULL)となる。また、ここでは、第一文字画像と第二文字画像の比較や、文字の入替、追加、削除等の検出は行われていないため、「画像比較結果」、「入替」、「追加」、「削除」の値は、空欄(例えばNULL)となっている。
同様に、文字データ比較手段134は、第二画像222の「第二領域ID」が「R21」である認識領域から取得した第二文字データと、第一画像221の「第一領域ID」が「R02」から「R04」である各認識領域からそれぞれ取得した第一文字データとを一文字ごとに比較して、比較結果情報を取得する。
さらに、文字データ比較手段134は、第二画像222の「第二領域ID」が「R22」から「R24」の各認識領域についても同様の処理を繰り返す。
次に、対応判断手段136は、図示しない記憶媒体に蓄積された比較結果情報において、「第二領域ID」が「R21」であるレコードのうちの、「比較結果」の値が「一致」であるレコードの数を、「第一領域ID」の値ごとに集計し、集計した値が最も高い「第一領域ID」が示す第一画像221の認識領域が「第二領域ID」が「R21」である第二画像222の認識領域に対応する認識領域であると判断する。「第二領域ID」が「R22」から「R24」の認識領域についても同様に、対応する第一画像221の認識領域を判断する。そして、対応する認識領域の「第一領域ID」と「第二領域ID」とを有する情報である領域対応管理情報を、図示しない記憶媒体に蓄積する。
図18は、認識領域間の対応関係を示す領域対応管理情報である。領域対応管理情報は、「第二領域ID」と「第一領域ID」とを有している。
このように、認識領域間の対応関係を取得することで、第一画像221と第二画像222とで同じ文列が配置されている認識領域に大きな変動があった場合であっても、文字の比較を行うことが可能となる。
なお、対応していない認識領域間について取得した比較結果情報のレコードについては削除してよい。
次に、形態素解析手段135は、第一画像221および第二画像222の、対応判断手段136により対応すると判断された認識領域の第一文字データと第二文字データとに対して、それぞれ、形態素解析を行う。
そして、文字データ比較手段134は、対応すると判断された各認識領域の第一文字データと第二文字データとを、形態素解析で得られた形態素ごとに、文字の配列順番に沿って比較していく。そして、文字データ比較手段134は、形態素の比較結果を示す情報である形態素比較結果情報として、比較された第一画像221の認識領域の識別情報と、比較された第二画像222の認識領域の識別情報と、比較に用いられた第一画像221の形態素と、比較に用いられた第二画像222の形態素と、比較結果である一致または不一致を示す情報とを有する情報を、図示しない記憶媒体に蓄積する。
図19は、文字データ比較手段134が図示しない記憶媒体に蓄積した形態素比較結果情報の一例を示す図である。形態素比較結果情報は、「第一領域ID」と、「第二領域ID」と、「第一形態素」と、「第二形態素」と、「比較結果」という項目を有している。「第一形態素」は、第一画像221の形態素である。「第二形態素」は、第二画像222の形態素である。「比較結果」は、対応する「第一形態素」と「第二形態素」との比較結果であり、値「一致」は、形態素が一致することを示し、「不一致」は、一致しないことを示す。
次に、閾値設定手段139は、閾値取得部17が取得する閾値を、第一文字画像と第二文字画像との比較に用いるか否かを判断する。ここでは、例えば、用いないことが、予め、初期設定等で設定されていたとすると、閾値受付部14は、ユーザからの閾値を受け付けるための入力インターフェース等をモニタ等に表示する。ここで、ユーザが、閾値を入力しない指示を入力したとすると、閾値設定手段139は、閾値設定手段139が設定した閾値を第一文字画像と第二文字画像との比較に用いることをユーザが選択したと判断して、比較に用いる閾値を取得する。ここでは、閾値設定手段139は、図18に示した領域対応管理情報で対応付けられている第一画像221の認識領域と第二画像222の認識領域との組ごとに閾値を取得し、設定する。例えば、閾値設定手段139は、領域対応管理情報で対応付けられている「第一領域ID」が「R04」である認識領域と、「第二領域ID」が「R21」である認識領域との各画素の輝度値をそれぞれ取得し、それぞれの認識領域の輝度値の平均を算出する。そして、第一領域の輝度値の平均値と第二領域の輝度値の平均値との差を「第一領域ID」が「R04」である認識領域内の第一文字画像と、「第二領域ID」が「R21」である認識領域内の第二文字画像との比較に用いる閾値に設定する。ここでは、例として、第二領域の輝度値の平均値から、第一領域の輝度値の平均値を減算した値を閾値に設定する。第一領域の輝度値を減算した差の平均値同様に、他の対応する認識領域にも、閾値設定手段139は、閾値を設定する。
なお、ユーザが閾値を入力した場合、ユーザが入力した閾値を用いるようにすればよい。また、ユーザが閾値を入力しない場合には、閾値設定手段139が設定する閾値を用いるか否かを、ダイアログ等を出してユーザに確認するようにし、ユーザが閾値設定手段139が設定する閾値を用いないことを指示した場合には、デフォルト等で設定されている閾値を用いるようにしても良い。
つぎに、文字画像取得手段132は、図18に示した領域対応管理情報で対応付けられている第一画像221の認識領域と第二画像222の認識領域との組ごとに、第一文字画像と第二文字画像とを一文字ずつ取得する。ここでは、文字画像取得手段132は、一の認識領域の第二文字画像として、上記で検出した第二文字画像を一文字ごとに取得する。また、文字画像取得手段132は、第一画像221の一の認識領域内のテキストボックスから抽出した文字データを一文字ごとにラスタライズ(すなわちビットマップ化)することで、一の認識領域の第一文字画像を取得する。ここでは、図17に示した比較結果情報の各レコードに含まれる「第二文字画像ID」が示す第二文字画像と「第一文字」が示す第一文字データから得られた第一文字画像との組を、情報のレコードから順番に取得する。
文字画像比較手段137は、文字画像取得手段132が取得した一文字ごとの第一文字画像と第二文字画像との対応する画素の輝度値の差を算出する。なお、比較する第一文字画像と第二文字画像とのサイズ(縦横の画素数)が異なる場合、画素数が一致するよう、第一文字画像および第二文字画像の一方または両方のサイズを変更する。そして、各文字画像の同じ座標の画素を対応する画素と判断する。また、ここでは例として、第二文字画像の画素の輝度値から、第一文字画像の画素の輝度値を減算した値を、画素の輝度値の差とする。そして、この認識領域の組について閾値設定手段139が上記で設定した閾値と、算出した輝度値の差とを比較し、輝度値の差が閾値以上であれば、比較した画素を一致しない画素と判断する。判断結果は、例えば、図示しない記憶媒体等に一時記憶する。そして、同様の比較を、1の組の第一文字画像と第二文字画像との対応する画素について行った後、文字画像比較手段137は、一致しないと判断された画素数の、比較した画素数に対する比率を算出し、算出した値が予め指定された閾値以上である場合に、比較した第一文字画像と第二文字画像とが一致しないと判断し、閾値未満である場合には、一致すると判断する。そして、一致する場合は、図17に示した比較結果情報と同様の、対応するレコードの「画像比較結果」の値を、一致することを示す値である「一致」に設定し、一致しない場合は、値を、一致しないことを示す値である「不一致」に設定する。
なお、この例において、文字画像比較手段137が、比較結果情報の各レコードに対応する文字画像を取得する場合において、一のレコードに「第二文字画像ID」または「第一文字」の一方がなかった際には、このレコードに対応する第一文字画像と第二文字画像とのいずれも読み出さないようにしても良いし、一方を読み出すが、文字画像間の比較は行わないようにしても良い。この場合、このレコードの「画像比較結果」の値は、「不一致」に設定する。
同様の処理を、対応付けられた一の組の認識領域の第一文字画像と第二文字画像について行った後、他の組の認識領域に関しても同様の処理を行う。
図20は、文字画像比較手段137が第一文字画像と第二文字画像との比較を行った結果得られた比較結果情報の一例を示す図である。
入替検出手段140は、図20に示したような比較結果情報を用いて、第一画像221に対して、第二画像222の文字の入替があった箇所を検出する。具体的には、入替検出手段140は、図20に示した比較結果情報の「画像比較結果」の値を、上のレコードから下のレコードに向かって順番に取得し、「画像比較結果」の値が、「不一致」である連続した複数のレコードを検出する。そして、検出した複数のレコードの「第二文字」の値の配列順番を変更して、複数の文字列を取得する。そして、取得した各文字列と、検出した複数のレコードの「第一文字」を、上のレコードから下のレコードに向かって取り出して並べた文字列とをそれぞれ比較して、一致するものがあるか否かを判断する。一致するものがあれば、文字が入れ替えられていると判断する。そして、これらの連続した複数のレコードの「入替」の値に、文字の入替があったことを示す値である「1」を入力する。一致するものが一つもなければ、文字が入れ替えられていないと判断して、「入替」の値は、空欄(例えばNULL)のままとする。
追加検出手段141は、図20に示したような比較結果情報を用いて、第一画像221に対して、第二画像222の文字の追加があった箇所を検出する。具体的には、追加検出手段141は、図20に示した比較結果情報の「第一文字」の値と、「第二文字」の値とを、上のレコードから下のレコードに向かって順番に取得し、「第一文字」の値が空欄(NULL)で、「第二文字」の値が空欄でないレコードを検出する。そして、検出した複数のレコードの「追加」の値に、文字の追加があったことを示す値である「1」を入力する。
削除検出手段142は、図20に示したような比較結果情報を用いて、第一画像221に対して、第二画像222の文字の削除があった箇所を検出する。具体的には、削除検出手段142は、図20に示した比較結果情報の「第一文字」の値と、「第二文字」の値とを、上のレコードから下のレコードに向かって順番に取得し、「第二文字」の値が空欄(NULL)で、「第一文字」の値が空欄でないレコードを検出する。そして、検出した複数のレコードの「削除」の値に、文字の削除があったことを示す値である「1」を入力する。
図21は、文字の入替や、追加や、削除の検出を行った結果得られた比較結果情報を示す図である。
出力部18は、図21に示した比較結果情報と、図15に示した第二文字画像管理情報等を用いて、第一画像221と第二画像222との比較の結果、差異があると判断した箇所を示す情報を取得して出力する。例えば、差異があると判断した箇所を示す表示用の画像を取得し、図示しないモニタ等に出力する。
例えば、出力部18は、第二画像格納部12に格納されている第二画像222を読み出し、図15に示した第二文字画像管理情報の各レコードの「文字領域定義」が示す各領域上(即ち、各第二文字画像の領域上)に、予め指定された色の画像をオーバーレイする。このとき、図21に示した比較結果情報において、「画像比較結果」の値が「不一致」であるレコードの「第二文字画像ID」の値と一致する「第二文字画像ID」を有する第二文字画像管理情報のレコードの「文字領域定義」が示す領域上には、オーバーレイされる他の画像の色と異なる予め指定された色の画像をオーバーレイする。同様に、第一画像格納部11に格納されている第一画像221を読み出し、第一画像221に配置されている文字データの各一文字を含む最小矩形領域上に,予め指定された色の画像をオーバーレイするとともに、図21に示した比較結果情報において、「画像比較結果」の値が「不一致」であるレコードに対応する第一文字データが示す文字上には、他の文字上に配置される画像の色とは異なる色の画像をオーバーレイする。なお、「画像比較結果」の値が「不一致」である一のレコードに対応する第一文字データが示す文字は、この一のレコードと同じ「第一領域ID」を有するレコード内におけるこの一のレコードの出現順番(レコードの上から数えた配列順番)と、この一のレコードの「第一領域ID」が示す第一画像221上の認識領域内に含まれる(あるいは、認識領域と重なる)テキストボックスとを検出することによって特定可能である。例えば、上記検出されたテキストボックス内に配列された1以上の文字データのうちの、先頭からの順番が、上記で検出された出現順番が示す順番である文字が、「画像比較結果」の値が「不一致」である一のレコードに対応する第一文字データが示す文字である。一の「第一領域ID」が示す第一画像221上の認識領域内に含まれる(あるいは、認識領域と重なる)テキストボックスは、第一画像221内に認識される認識領域や第一画像221内のテキストボックスが配置される領域を定義する座標等の情報を用いて取得可能である。なお、予め、文字データを第一画像221から抽出する際に、一文字ごとの文字データについて、その文字の配置されている第一画像221内の位置(あるいは領域)を示す情報を取得するようにして、この位置(あるいは領域)を示す情報を、各文字データと対応付けて抽出文字データ管理情報で管理しておくようにすることで、この情報を用いて「画像比較結果」の値が「不一致」である一のレコードに対応する第一文字データが示す文字の位置(あるいは領域)を、第一画像221内において検出できるようにしても良い。
そして、このようにして、色のついた画像をオーバーレイして取得した第一画像221と第二画像222とをモニタに表示することで、差異のある箇所を示した第一画像221と第二画像222とを表示することができる。
なお、ここでは、「画像比較結果」の値が「不一致」である文字上に、他と異なる色の画像をオーバーレイ表示するようにしたが、「比較結果」の値が「不一致」である文字上に、他と異なる色の画像をオーバーレイ表示するようにしても良い。
また、出力部18は、レイアウト認識手段131が認識した一の認識領域内に、差異のある箇所が検出された場合に、第一画像221や第二画像222のこの認識領域全体を、予め指定された色の画像でオーバーレイ表示するようにしても良い。
図22は、差異のある箇所を示した第一画像221と第二画像222との表示例を示す図である。図において、領域220は差異のある箇所をオーバーレイ表示した部分である。図においては、第一画像221と、第二画像222とを並べて表示している。これにより、差異のある箇所を、ユーザに知らせることができる。
また、ユーザが、図示しない受付部等を介して、画像検査装置1に、文字の入れ替わった箇所を表示する指示を与えたとする。出力部18は、図22に示した差異の箇所を示した表示において、「画像比較結果」の値が「不一致」である文字上に、他の文字とは異なる色の画像をオーバーレイする代わりに、図21に示した比較結果情報において、「入替」の値が「1」であるレコードの「第二文字画像ID」の値と一致する「第二文字画像ID」を有する第二文字画像管理情報のレコードの「文字領域定義」が示す領域上に、他の文字上にオーバーレイされる画像とは異なる色の画像をオーバーレイする。第一画像221についても同様である。
図23は、文字の入れ替えがあった箇所を示した第一画像221と第二画像222との表示例を示す図である。図において、領域230は差異のある箇所をオーバーレイ表示した部分である。これにより、文字の入れ替わった箇所をユーザに知らせることができる。
また、ユーザが、図示しない受付部等を介して、画像検査装置1に、文字が追加された箇所を表示する指示を与えたとする。出力部18は、図22に示した差異の箇所を示した表示において、「画像比較結果」の値が「不一致」である文字上に、他の文字とは異なる色の画像をオーバーレイする代わりに、図21に示した比較結果情報において、「追加」の値が「1」であるレコードの「第二文字画像ID」の値と一致する「第二文字画像ID」を有する第二文字画像管理情報のレコードの「文字領域定義」が示す領域上に、他の文字上にオーバーレイされる画像とは異なる色の画像をオーバーレイする。第一画像221についても同様である。
図24は、文字の追加があった箇所を示した第一画像221と第二画像222との表示例を示す図である。図において、領域240は差異のある箇所をオーバーレイ表示した部分である。これにより、文字が追加された箇所をユーザに知らせることができる。
また、ユーザが、図示しない受付部等を介して、画像検査装置1に、文字が削除された箇所を表示する指示を与えたとする。出力部18は、図22に示した差異の箇所を示した表示において、「画像比較結果」の値が「不一致」である文字上に、他の文字とは異なる色の画像をオーバーレイする代わりに、図21に示した比較結果情報において、「削除」の値が「1」であるレコードの「第二文字画像ID」の値と一致する「第二文字画像ID」を有する第二文字画像管理情報のレコードの「文字領域定義」が示す領域上に、他の文字上にオーバーレイされる画像とは異なる色の画像をオーバーレイする。第一画像221についても同様である。
図25は、文字の削除があった箇所を示した第一画像221と第二画像222との表示例を示す図である。図において、領域250は差異のある箇所をオーバーレイ表示した部分である。これにより、文字が削除された箇所をユーザに知らせることができる。
また、ユーザが、図示しない受付部等を介して、画像検査装置1に、形態素解析を利用して検出した差異の箇所を表示する指示を与えたとする。出力部18は、図19に示した形態素解析結果情報の上のレコードから下のレコードに向かって順番に、「第一形態素」と「第二形態素」との値をそれぞれ分けて取得して、取得順に従ってそれぞれを配列した文字列の画像を取得するとともに、この画像の「比較結果」の値が「一致」である形態素上の領域と、「不一致」である形態素上の領域とに、それぞれ、予め指定された異なる色の画像をオーバーレイする。このようにして取得した画像を出力部18が、図示しないモニタ等に表示する。
図26は、形態素解析による差異の箇所の検出結果を示す表示例である。図において、領域261は、検出された差異の箇所を示している。なお、ここでは、文字だけを表示したが、図22に示すように、第一画像221や第二画像222上の、各形態素に対応する文字が配置されている領域を検出して、検出した領域上に、形態素の比較結果の値に応じた色の画像をオーバーレイ表示しても良い。
ここで、例えば、図22に示すような差異が検出された箇所が表示されている状態において、誤って検出されている箇所を発見したとする。例えば、対応する一の第一文字画像と一の第二文字画像とが同じ文字であるのに、差異のある箇所として検出されている箇所、あるいは、対応する一の第一文字画像と一の第二文字画像とが異なる文字であるのに、差異のない箇所として検出されている箇所を、ユーザが発見したとする。ユーザが、第二画像222上において、このような箇所に位置する文字を、マウス等を操作してクリックすることで、画像検査装置1が誤認した箇所として指定したとすると、評価結果受付部15は、クリックされた位置の第二文字画像について、文字画像比較手段137の判断は、誤りであることを示す評価結果を受け付ける。また、評価結果受付部15は、クリックされなかった位置の第二文字画像について、判断が正しいという評価結果を受け付ける。
輝度値取得部16は、評価結果受付部15が受け付けた評価結果ごとに、評価結果を受け付けた各第二文字画像と、各第二文字画像のそれぞれと比較された第一文字画像とを取得し、評価結果ごとに、第一文字画像と第二文字画像とから輝度値に関する情報を取得する。輝度値に関する情報は、種類が多い方が好ましい。例えば輝度値に関する情報として、第一文字画像の輝度の平均値、中央値、最大値、最小値や、第二文字画像の輝度の平均値、中央値、最大値、最小値を取得する。また、第一文字画像および第二文字画像における最も出現数が多い輝度等も取得する。また、輝度値取得部16は、評価結果ごとに、文字画像比較手段137が第一文字画像と第二文字画像との各画素が一致するか否かを判断するために利用した輝度値の差の閾値を取得する。
上記で取得された評価結果ごとの、評価結果と、輝度値に関する情報と、閾値との組を、閾値取得部17は教師データとして学習する。
そして、文字画像比較手段137が、第一文字画像と第二文字画像の画素が一致するか否かを判断する閾値として、閾値設定手段139が設定した閾値を用いるよう、図示しない受付部等を介してユーザが画像検査装置1に設定を行ったとする。
この場合、文字画像比較手段137が、一の第一文字画像と一の第二文字画像との対応する画素の比較を行う直前に、毎回、輝度値取得部16は、比較対象となる各第一文字画像と第二文字画像とから、上記と同様の項目の輝度値に関する情報を取得する。そして、閾値取得部17は、この輝度値に関する情報と、予め用意された複数の閾値のそれぞれとの組合せを入力として受け付け、各閾値ごとに、評価の結果を出力する。出力される閾値ごとの評価の結果は、一の閾値を用いて、比較対象となる第一文字画像と第二画像222との対応する画素の差を評価した場合に、その評価結果が正しいものであるか、誤ったものであるかを示す値である。このため、閾値取得部17は、評価結果が正しいものとなる閾値の中から、一の閾値(ここでは、最も値が小さい閾値)を取得し、閾値格納手段138に一時記憶する。そして、文字画像比較手段137は、この一の第一文字画像と第二文字画像の画素が一致するか否かの判断をこの閾値を用いて行う。これにより、学習結果を利用した閾値による画素の比較が可能となる。
なお、本具体例においては、第一画像221から予め文字データが抽出されている場合について説明したが、本発明は、文字データが予め抽出されていなくても適用可能なものであり、例えば、文字データが予め抽出されていない場合には、第二画像222から第二文字データや第二文字画像を取得する処理と同様の処理を、第一画像221に対しても行うようにすればよい。
以上、本実施の形態によれば、第一画像221と第二画像222とから取得した文字の画像を比較することで、第一画像221と第二画像222との差異の箇所を検出するようにしたため、レイアウトの違いや文字サイズの違いの有無にかかわらず、実質的な情報の有無で画像間の内容の差異を検出することができる。
また、第一画像221と第二画像222とのそれぞれにおいてレイアウト認識を行って検出した認識領域について、対応する認識領域を判断し、対応する認識領域間において文字の比較を行うようにしたことにより、文字の配置されている認識領域が大きく変更されていても、正しく文字の比較を行うことができる。
なお、本実施の形態においては、レイアウト認識手段131が第一画像221及び第二画像222に対してレイアウト認識を行って認識領域を検出し、対応判断手段136が対応する認識領域を検出して文字画像比較手段が、対応する認識領域間で文字の画像の比較を行うようにしたが、第一画像221と第二画像222とで文字のレイアウトに大きな違いがない場合や、テキストボックスが、それぞれの画像に一つしかない場合等には、レイアウトの認識処理は行わないようにしても良く、この場合、レイアウト認識手段131等は省略可能である。また、ここでは、文字画像から取得した文字データを併用したが、文字データを用いた文字の比較は省略して、第一画像221及び第二画像222に配置されている文字について、文字画像による比較だけを行うようにしてもよい。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態では、画像検査装置がスタンドアロンである場合について説明したが、画像検査装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記各実施の形態において、検出部13、輝度値取得部16、閾値取得部17等の各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
なお、上記各実施の形態における画像検査装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、第一画像が格納される第一画像格納部と、第二画像が格納される第二画像格納部と、にアクセス可能なコンピュータを、第一画像と第二画像とを比較して、差異の箇所を検出する検出部と、検出部が検出した差異の箇所を示す情報を出力する出力部として機能させるためのプログラムであって、検出部は、第一画像と第二画像とからそれぞれ文字の画像を取得する文字画像取得手段と、第一画像から取得した文字の画像である1以上の第一文字画像と、第二画像から取得した文字の画像である1以上の第二文字画像とを比較して、差異の箇所を検出する文字画像比較手段とを備えたプログラムである。
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図27は、上記プログラムを実行して、上記実施の形態による画像検査装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図27において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図28は、コンピュータシステム900の内部構成を示す図である。図28において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態による画像検査装置等の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による画像検査装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。