(57)【要約】【課題】並列処理をするにあたって、照合処理における計算量を減少させるようにした情報処理装置を提供する。【解決手段】情報処理装置の基準データ記憶手段は、複数の要素によって構成されている基準データ内の要素の値の平均値を、該要素の値から減算し、該要素によって構成される多次元ベクトルの長さを正規化した基準データを複数記憶し、正規化手段は、複数の要素によって構成されている検査データ内の要素の値の平均値を、該要素の値から減算し、該要素によって構成される多次元ベクトルの長さを正規化し、照合手段は、基準データ記憶手段内に記憶されている正規化後の各基準データと正規化手段による正規化後の検査データを照合し、判定手段は、照合手段による照合結果と予め定められた閾値との比較を行って、複数の基準データと検査データとの照合結果を集約して検査データの真偽を判定し、正規化手段と照合手段を並列処理にて行う。【選択図】図１
2018037020.tif 000002
【特許請求の範囲】
【請求項１】
複数の要素によって構成されている基準データ内の要素の値の平均値を、該要素の値から減算し、該要素によって構成される多次元ベクトルの長さを正規化した基準データを複数記憶している基準データ記憶手段と、
複数の要素によって構成されている検査データ内の要素の値の平均値を、該要素の値から減算し、該要素によって構成される多次元ベクトルの長さを正規化する正規化手段と、
前記基準データ記憶手段内に記憶されている正規化後の各基準データと前記正規化手段による正規化後の検査データを照合する照合手段と、
前記照合手段による照合結果と予め定められた閾値との比較を行って、複数の前記基準データと前記検査データとの照合結果を集約して検査データの真偽を判定する判定手段
を具備し、
前記正規化手段と前記照合手段を並列処理にて行う、
情報処理装置。
【請求項２】
前記正規化後の基準データと前記正規化後の検査データは、それぞれベクトルであり、該正規化後の基準データを複数個まとめてマトリクスとし、該検査データから画像処理により変換し正規化したデータを複数個まとめたマトリクスとし、
前記照合手段は、複数の基準データに対して、前記画像処理した検査データとの相関値をまとめて算出する、
請求項１に記載の情報処理装置。
【請求項３】
前記判定手段による処理を並列計算で行う、
請求項２に記載の情報処理装置。
【請求項４】
前記判定手段による処理を並列計算におけるマッパー若しくはリデューサーで行う、又は、エクセキューター若しくはドライバーで行う、
請求項３に記載の情報処理装置。
【請求項５】
前記基準データと前記検査データは画像であり、
前記検査データに対してアフィン変換を含む画像処理を行う画像処理手段
をさらに具備し、
前記正規化手段は、前記画像処理手段によって画像処理された検査データを対象として、正規化処理を行う、
請求項２から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記アフィン変換として、予め定めた角度での回転、予め定めた倍率での拡大縮小、又はそれらの組み合わせによる変換処理と部分データの切り出し処理を行う変換用マトリクスを保存し、マトリクス演算を実行して検査データの計算用データを作成する、
請求項５に記載の情報処理装置。
【請求項７】
さらに、
画像処理により検査データから変換されて作られた複数のデータをそれぞれ正規化し、該正規化された個々のデータをベクトルとし、複数分をまとめてマトリクスを構成し、該マトリクス内の位置情報を管理する管理手段と、
前記マトリクス内の位置から元の情報に対応付ける情報を記憶しておく記憶手段と、
前記対応を用いて、前記マトリクス内の位置から元の情報を抽出する抽出手段
を具備する請求項２に記載の情報処理装置。
【請求項８】
さらに、
前記対応に基づいて行列の位置に応じた判定規則を記憶する第２の記憶手段
を具備し、
前記判定手段は、前記判定規則を用いて真偽を判定する、
請求項７に記載の情報処理装置。
【請求項９】
さらに、
複数の検査データを同時に前記判定手段に投入する場合には、元の検査データを識別する情報を該判定手段に通知する、又は、前記判定手段の処理前に照合結果を元の検査データに応じて分割する処理手段
を具備する請求項８に記載の情報処理装置。
【請求項１０】
前記正規化手段は、対象外の要素となっている値を０にする、
請求項１から９のいずれか一項に記載の情報処理装置。
【請求項１１】
複数の要素によって構成されている基準データ内の要素の値の平均値を、該要素の値である基準データを複数記憶している基準データ記憶手段と、
複数の要素によって構成されている検査データ内の要素の値の平均値を検査データとして生成する生成手段と、
前記基準データ記憶手段内に記憶されている各基準データと前記生成手段による検査データを照合する照合手段と、
前記照合手段による照合結果と予め定められた閾値との比較を行って、複数の前記基準データと前記検査データとの照合結果を集約して検査データの真偽を判定する判定手段
を具備し、
前記正規化手段と前記照合手段を並列処理にて行う、
情報処理装置。
【請求項１２】
コンピュータを、
複数の要素によって構成されている基準データ内の要素の値の平均値を、該要素の値から減算し、該要素によって構成される多次元ベクトルの長さを正規化した基準データを複数記憶している基準データ記憶手段と、
複数の要素によって構成されている検査データ内の要素の値の平均値を、該要素の値から減算し、該要素によって構成される多次元ベクトルの長さを正規化する正規化手段と、
前記基準データ記憶手段内に記憶されている正規化後の各基準データと前記正規化手段による正規化後の検査データを照合する照合手段と、
前記照合手段による照合結果と予め定められた閾値との比較を行って、複数の前記基準データと前記検査データとの照合結果を集約して検査データの真偽を判定する判定手段
として機能させ、
前記正規化手段と前記照合手段を並列処理にて行う、
情報処理プログラム。
【請求項１３】
コンピュータを、
複数の要素によって構成されている基準データ内の要素の値の平均値を、該要素の値である基準データを複数記憶している基準データ記憶手段と、
複数の要素によって構成されている検査データ内の要素の値の平均値を検査データとして生成する生成手段と、
前記基準データ記憶手段内に記憶されている各基準データと前記生成手段による検査データを照合する照合手段と、
前記照合手段による照合結果と予め定められた閾値との比較を行って、複数の前記基準データと前記検査データとの照合結果を集約して検査データの真偽を判定する判定手段
として機能させ、
前記正規化手段と前記照合手段を並列処理にて行う、
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、固体の真偽判定を簡単かつ高精度に行うことを課題とし、紙を形成する繊維質材料の絡み具合は製造時に制御できないランダム性を有しており、これに伴い紙の透明度も個々の紙固有のランダムな変化が生じており、これを利用し、紙上の基準領域（例えば、２×２ｍｍ程度のサイズの非印刷部分）を光学的に読み取り、基準データとして登録しておき、真偽判定時には、基準領域を含み基準領域よりも大サイズ（例えば、４×４ｍｍ程度）の照合領域をスキャナで読み取り、読み取りによって得られた照合データから基準領域と同サイズの部分領域のデータを抽出し、基準データとの相関値を正規化相関法により演算することを、照合領域内での部分領域の位置をずらしながら繰り返し、相関値の最大値及び該最大値のノーマライズド・スコアを各々閾値と比較することで真偽判定を行うことが開示されている。
【０００３】
特許文献２には、固体の真偽判定を簡単かつ高精度に行うことを課題とし、真物である紙上の基準領域を異なる２方向から光学的に読み取り、基準画像として登録しておき、真偽判定対象の紙に対し、基準領域を含み基準領域よりも大きいサイズの照合領域をスキャナで異なる２方向から読み取り、読み取りによって得られた各照合データから基準領域と同サイズの部分領域のデータを抽出し、同じ方向から光学的に読み取った基準画像と照合画像との組において、基準画像との相関値を正規化相関法により演算することを、照合領域内での部分領域の位置をずらしながら繰り返し、相関値の最大値及び該最大値のノーマライズド・スコアを各々閾値と比較することで真偽判定を行い、各組における真偽判定において共に「真」と判定されてはじめて真偽判定対象の紙を「真」と判定することが開示されている。
【０００４】
特許文献３には、医用画像から画像処理によって自動的に撮像装置、部位、撮像方向等の撮像属性情報を抽出して管理情報に付加し、膨大な量の医用画像の効率的な管理を可能にすることを課題とし、テンプレート画像記憶部に、分類毎に識別すべきカテゴリに関するテンプレート画像を記憶しておき、画像分類部は、医用画像の管理情報と画像サイズから入力画像を分類し、テンプレート画像選択部は、テンプレート画像記憶部から入力画像の分類結果を用いて識別の候補となる複数のカテゴリのテンプレート画像を選択し、画像識別部は、選択されたテンプレート画像と入力画像とを比較し、最もよく一致するテンプレート画像のカテゴリを判定し、管理情報付加部は、識別されたカテゴリのテンプレート画像が持つ撮像属性情報を管理情報に付加することが開示されている。
【０００５】
特許文献４には、データベースに大量の画像が格納される場合であっても、クラスタリング処理のために必要なメモリ容量が少なくて済み、また、データベースを逐次的に更新することのできる画像検索用データベース装置を提供することを課題とし、画像検索用のデータベース装置は、クラスタリング処理に用いるために、ベクトル空間における部分空間の範囲を記憶するメモリと、複数の画像の特徴量ベクトルを各特徴量ベクトルが属する部分空間に関連付けて記憶するＨＤＤとを備え、このデータベース装置では、画像に含まれる複数の特徴点の各々の局所特徴量が特徴量ベクトルとして表され、複数の特徴量ベクトルが含まれるベクトル空間においてクラスタリング処理が行われてベクトル空間が複数の部分空間に分割され、各部分空間と各画像との対応関係を示す検索テーブルが生成されることが開示されている。
【０００６】
特許文献５には、ユーザが簡単な操作でもって、大量の情報の中から自分の意図する情報を検索できるようにする情報検索技術を提供することを課題とし、ユーザに対してサンプルの情報を提示し、それに対するユーザの適否の判定情報を入力し、その適合とされた情報から例えば特徴量の平均値をとることで検索キー情報を作成し、作成した検索キー情報とサンプルの情報との間の距離から、検索キー情報と適合とされた情報との間の類似度が例えば１に近くなり、検索キー情報と不適合とされた情報との間の類似度が例えば０に近くなるようにと、特徴量毎に定義される距離から類似度への変換規則を作成し、適合とされた情報が上位になる類似度の統合形態を決定して、その統合形態と作成した変換規則とから、蓄積手段に蓄積される情報の中から検索キー情報に類似する情報を検索することが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−０３８３８９号公報
【特許文献２】特開２００６−０５３７３６号公報
【特許文献３】特開２００２−２５３５３９号公報
【特許文献４】特開２０１０−００９３３２号公報
【特許文献５】特開２００３−０７６７１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
固体の真偽判定を行う技術がある。具体的には、真の物体を撮影した基準データと検査対象（つまり、その時点では真偽不明）である物体を撮影した検査データとのマッチング処理によって、真偽判定を行う。
しかし、この真偽判定の処理として正規品の確認処理とするような場合には、膨大な数の正規品の情報と対象品の情報との間で真偽判定の処理が必要となり、さらには、位置や回転等によるずれに対応するために、多くの計算量が必要となる。あらゆるずれに対応するためには基準データが膨大となり、単に並列処理するだけでは処理時間がかかることになる。
本発明は、並列処理をするにあたって、照合処理における計算量を減少させるようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、複数の要素によって構成されている基準データ内の要素の値の平均値を、該要素の値から減算し、該要素によって構成される多次元ベクトルの長さを正規化した基準データを複数記憶している基準データ記憶手段と、複数の要素によって構成されている検査データ内の要素の値の平均値を、該要素の値から減算し、該要素によって構成される多次元ベクトルの長さを正規化する正規化手段と、前記基準データ記憶手段内に記憶されている正規化後の各基準データと前記正規化手段による正規化後の検査データを照合する照合手段と、前記照合手段による照合結果と予め定められた閾値との比較を行って、複数の前記基準データと前記検査データとの照合結果を集約して検査データの真偽を判定する判定手段を具備し、前記正規化手段と前記照合手段を並列処理にて行う、情報処理装置である。
【００１０】
請求項２の発明は、前記正規化後の基準データと前記正規化後の検査データは、それぞれベクトルであり、該正規化後の基準データを複数個まとめてマトリクスとし、該検査データから画像処理により変換し正規化したデータを複数個まとめたマトリクスとし、前記照合手段は、複数の基準データに対して、前記画像処理した検査データとの相関値をまとめて算出する、請求項１に記載の情報処理装置である。
【００１１】
請求項３の発明は、前記判定手段による処理を並列計算で行う、請求項２に記載の情報処理装置である。
【００１２】
請求項４の発明は、前記判定手段による処理を並列計算におけるマッパー若しくはリデューサーで行う、又は、エクセキューター若しくはドライバーで行う、請求項３に記載の情報処理装置である。
【００１３】
請求項５の発明は、前記基準データと前記検査データは画像であり、前記検査データに対してアフィン変換を含む画像処理を行う画像処理手段をさらに具備し、前記正規化手段は、前記画像処理手段によって画像処理された検査データを対象として、正規化処理を行う、請求項２から４のいずれか一項に記載の情報処理装置である。
【００１４】
請求項６の発明は、前記アフィン変換として、予め定めた角度での回転、予め定めた倍率での拡大縮小、又はそれらの組み合わせによる変換処理と部分データの切り出し処理を行う変換用マトリクスを保存し、マトリクス演算を実行して検査データの計算用データを作成する、請求項５に記載の情報処理装置である。
【００１５】
請求項７の発明は、さらに、画像処理により検査データから変換されて作られた複数のデータをそれぞれ正規化し、該正規化された個々のデータをベクトルとし、複数分をまとめてマトリクスを構成し、該マトリクス内の位置情報を管理する管理手段と、前記マトリクス内の位置から元の情報に対応付ける情報を記憶しておく記憶手段と、前記対応を用いて、前記マトリクス内の位置から元の情報を抽出する抽出手段を具備する請求項２に記載の情報処理装置である。
【００１６】
請求項８の発明は、さらに、前記対応に基づいて行列の位置に応じた判定規則を記憶する第２の記憶手段を具備し、前記判定手段は、前記判定規則を用いて真偽を判定する、請求項７に記載の情報処理装置である。
【００１７】
請求項９の発明は、さらに、複数の検査データを同時に前記判定手段に投入する場合には、元の検査データを識別する情報を該判定手段に通知する、又は、前記判定手段の処理前に照合結果を元の検査データに応じて分割する処理手段を具備する請求項８に記載の情報処理装置である。
【００１８】
請求項１０の発明は、前記正規化手段は、対象外の要素となっている値を０にする、請求項１から９のいずれか一項に記載の情報処理装置である。
【００１９】
請求項１１の発明は、複数の要素によって構成されている基準データ内の要素の値の平均値を、該要素の値である基準データを複数記憶している基準データ記憶手段と、複数の要素によって構成されている検査データ内の要素の値の平均値を検査データとして生成する生成手段と、前記基準データ記憶手段内に記憶されている各基準データと前記生成手段による検査データを照合する照合手段と、前記照合手段による照合結果と予め定められた閾値との比較を行って、複数の前記基準データと前記検査データとの照合結果を集約して検査データの真偽を判定する判定手段を具備し、前記正規化手段と前記照合手段を並列処理にて行う、情報処理装置である。
【００２０】
請求項１２の発明は、コンピュータを、複数の要素によって構成されている基準データ内の要素の値の平均値を、該要素の値から減算し、該要素によって構成される多次元ベクトルの長さを正規化した基準データを複数記憶している基準データ記憶手段と、複数の要素によって構成されている検査データ内の要素の値の平均値を、該要素の値から減算し、該要素によって構成される多次元ベクトルの長さを正規化する正規化手段と、前記基準データ記憶手段内に記憶されている正規化後の各基準データと前記正規化手段による正規化後の検査データを照合する照合手段と、前記照合手段による照合結果と予め定められた閾値との比較を行って、複数の前記基準データと前記検査データとの照合結果を集約して検査データの真偽を判定する判定手段として機能させ、前記正規化手段と前記照合手段を並列処理にて行う、情報処理プログラムである。
【００２１】
請求項１３の発明は、コンピュータを、複数の要素によって構成されている基準データ内の要素の値の平均値を、該要素の値である基準データを複数記憶している基準データ記憶手段と、複数の要素によって構成されている検査データ内の要素の値の平均値を検査データとして生成する生成手段と、前記基準データ記憶手段内に記憶されている各基準データと前記生成手段による検査データを照合する照合手段と、前記照合手段による照合結果と予め定められた閾値との比較を行って、複数の前記基準データと前記検査データとの照合結果を集約して検査データの真偽を判定する判定手段として機能させ、前記正規化手段と前記照合手段を並列処理にて行う、情報処理プログラムである。
【発明の効果】
【００２２】
請求項１の情報処理装置によれば、並列処理をするにあたって、照合処理における計算量を減少させる。
【００２３】
請求項２の情報処理装置によれば、複数の基準データに対して、画像処理した検査データとの相関値がまとめて算出される。
【００２４】
請求項３の情報処理装置によれば、並列計算で真偽の判定を行う。
【００２５】
請求項４の情報処理装置によれば、並列計算におけるマッパー若しくはリデューサー、又は、エクセキューター若しくはドライバーが、真偽の判定を行う。
【００２６】
請求項５の情報処理装置によれば、検査データに対して画像処理を行った後に、正規化処理が行われる。
【００２７】
請求項６の情報処理装置によれば、アフィン変換として、予め定めた角度での回転、予め定めた倍率での拡大縮小、又はそれらの組み合わせによる変換処理と部分データの切り出し処理を行う変換用マトリクスを保存し、マトリクス演算を実行して検査データの計算用データが作成される。
【００２８】
請求項７の情報処理装置によれば、マトリクス演算により、画像処理を考慮した照合計算をまとめて高速に行える。
【００２９】
請求項８の情報処理装置によれば、判定規則を用いて真偽が判定される。
【００３０】
請求項９の情報処理装置によれば、複数の検査データを同時に判定手段に投入する場合には、元の検査データを識別する情報が判定手段に通知され、又は、判定処理前に照合結果が元の検査データに応じて分割される。
【００３１】
請求項１０の情報処理装置によれば、対象外の要素となっている値を０にする正規化が行われる。
【００３２】
請求項１１の情報処理装置によれば、並列処理をするにあたって、照合処理における計算量を減少させる。
【００３３】
請求項１２の情報処理プログラムによれば、並列処理をするにあたって、照合処理における計算量を減少させる。
【００３４】
請求項１３の情報処理プログラムによれば、並列処理をするにあたって、照合処理における計算量を減少させる。
【図面の簡単な説明】
【００３５】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】真偽の判定処理例を示す説明図である。
【図３】真偽判定の並列処理例を示す説明図である。
【図４】本実施の形態による処理例を示すフローチャートである。
【図５】本実施の形態による処理例を示すフローチャートである。
【図６】本実施の形態による処理例を示すフローチャートである。
【図７】本実施の形態による処理例を示すフローチャートである。
【図８】本実施の形態による処理例を示すフローチャートである。
【図９】本実施の形態による処理例を示すフローチャートである。
【図１０】本実施の形態による処理例を示すフローチャートである。
【図１１】本実施の形態のシステム構成例を示す説明図である。
【図１２】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００３６】
まず、本実施の形態を説明する前に、その前提又は本実施の形態を利用する情報処理装置について説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
基準データと検査データを比較することによって、検査データの真偽を判定する技術がある。例えば、特許文献１では、ランダム性を有する読み取り可能な固有の特徴が表面に沿って分布している固体の真偽を判定する。基準データは、真の固体の特徴が予め読み取られることで得られた、真の固体上に分布する特徴を表すデータであり、例えば、光学的に読み取られたものである。より具体的には、真の固体に光を照射し、反射光又は透過光を読み取ることで得られた画像データである。検査データは、判定対象の固体の特徴を読み取ることで、判定対象の固体上に分布する特徴を表すデータであり、例えば、光学的に読み取られたものである。より具体的には、判定対象の固体に光を照射し、反射光又は透過光を読み取ることで得られた画像データである。
そして、基準データ及び検査データに基づき、真の固体及び判定対象の固体のうちの一方の固体上の所定サイズの第１領域に分布する特徴を表すデータと、他方の固体上で前記第１領域と同サイズの第２領域に分布する特徴を表すデータとの相関値を演算することを、他方の固体上での第２領域の位置を所定サイズよりも大きい領域内で移動させながら繰り返す。そして、その演算によって得られた複数の相関値の最大値が第１の所定値以上で、かつ、相関値の最大値から相関値の平均値を減じた値を相関値の標準偏差で除すことで得られる相関値の最大値のノーマライズド・スコアが第２の所定値以上か否かに基づいて、判定対象の固体の真偽を判定している。
より具体的には、基準データとの位置のずれに対して、１ドットずつずらして同じ処理を繰り返している。そして、回転方向のずれ、大きさのずれに対しては、検査データ（検査画像）を回転、拡大縮小させて対応する。この場合、基準データ側での回転、拡大縮小したものは必ずしも登録の必要が無くなる。登録データ（登録画像）は膨大なデータ量となるため、これらを複製して保存する必要がなくなると、記憶容量の面でもデータ転送の面でも大きな効率化効果が得られる。ただし、基準データを回転、拡大縮小させて対応させてもよい。１回の演算処理については、比較的処理負荷は軽いが、位置や回転等のずれに対しても計算の繰り返しで対応するため、実際の処理負荷は重いものとなる。より具体的に説明すると、一つの検査データを照合する際に、照合する基準データ側が膨大な数となることが、処理負荷が重くなることの主因である。基準データ側は簡単に億を越える数となり得るが、一つの検査データと一つの基準データの間の照合処理がｍｓオーダーであったとしても、億を越える基準データ全てに対して処理を終えるには何日もかかってしまうような計算となる。
【００３７】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００３８】
本実施の形態である情報処理装置１００は、検査データの真偽を判定するものであって、図１の例に示すように、基準データ処理モジュール１０５、基準データデータベース１２５、検査データ処理モジュール１４０を有している。
情報処理装置１００は、並列処理（分散処理、並列分散処理ともいわれる）を行う。例えば、Ｓｐａｒｋ、Ｓｔｏｒｍ、Ｈａｄｏｏｐ（ハドゥープ）等があり、また、画像を対象とする場合はＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いるようにしてもよい。並列処理機構で高速な並列計算処理を実現できる数値行列計算にまとめて演算を実現する。
また、検査データについて移動、回転、拡大縮小、歪等も考慮にいれて切り出したデータを用意する。テンソル計算が可能な場合には、この切り出しもテンソル計算高速処理（ＣｕＤＮＮ等のライブラリ）を用いて高速計算が可能となる。
より詳細に説明する。
１つの検査データは画素を一次元に並べると１本のベクトルとなる。このベクトルに対して、どの画素を抜き出すかを示したマトリクスを掛けると、部分画像を抜き出したベクトルを作ることができる。同様に拡大縮小、回転も指定された変換に対応したマトリクスを用意しておくことで行列計算として実現することもできる。ＧＰＵの利用などでテンソル計算が高速に実現できるのであれば、これらの行列をまとめてテンソルとして計算することで高速化が期待できる。
部分切り出し（位置をずらせて照合させることに対応）や回転、拡大縮小は組み合わせることもでき、変換の処理の総数がＮ個あれば、それぞれに対応して、検査データを変換したベクトルができる、つまり、検査画像１個から、照合計算用の検査画像Ｎ個を生成することになる。これらの照合計算用の検査画像は、それぞれをベクトルとして扱い、各ベクトル毎に正規化を行う。そして、正規化されたベクトルを並べることで検査画像側のマトリクスとし、これに対して、登録されている基準データ側のマトリクスを乗算するだけで、大量の基準データに対して相関をとる計算がまとめてできる。これらの処理を、分散処理とともに、ＧＰＵ上での並列処理で高速化することができる。なお、前述の「各ベクトル毎に正規化を行う」について詳述する。後述する式１を厳密に実行するには、各ベクトル毎の正規化が必要である。しかし、精度を多少落としてもよい場合（真偽判定できる程度の性能を得ている場合）は、複数ベクトル毎の平均値を用いてもよい。
【００３９】
基準データ処理モジュール１０５は、登録データ受付モジュール１１０、適正化処理（基準）モジュール１１５、登録モジュール１２０を有している。基準データ処理モジュール１０５は、基準データを作成する。基準データ処理モジュール１０５の処理については、図４の例に示すフローチャートを用いて後述する。
登録データ受付モジュール１１０は、適正化処理（基準）モジュール１１５と接続されている。登録データ受付モジュール１１０は、基準データを受け付けて、その基準データを適正化処理（基準）モジュール１１５へ渡す。基準データは画像であってもよい。画像を受け付けるとは、例えば、スキャナ、カメラ等で画像を読み込むこと、ファックス等で通信回線を介して外部機器から画像を受信すること、ハードディスク（コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む）等に記憶されている画像を読み出すこと等が含まれる。画像は、２値画像、多値画像（カラー画像を含む）であってもよい。受け付ける画像は、１枚であってもよいし、複数枚であってもよい。また、画像に撮影されている固体として、ランダム性を有する読み取り可能な固有の特徴が表面に沿って分布している固体であればよい、例えば、各種の紙文書（紙幣や有価証券以外に、例えば旅券、各種の権利書、住民票、出生証明書、保険証書、保証書、機密文書等）、製造物の表面（例えば、薬（特に、錠剤等））等がある。
【００４０】
適正化処理（基準）モジュール１１５は、登録データ受付モジュール１１０、登録モジュール１２０と接続されている。適正化処理（基準）モジュール１１５は、複数の要素によって構成されている基準データ内の要素の値の平均値を、その要素の値から減算し、その要素によって構成される多次元ベクトル正規化を行う。ここでの正規化は、多次元ベクトルの長さを予め定められた数値にする正規化である。この「予め定められた数値」は、例えば、１であってもよい。また、必ずしも１でなくても、例えば定数倍されていたりしても同様に計算可能である。
なお、正規化後の基準データは、マトリクス（Ｍａｔｒｉｘ）であってもよい。
また、基準データが画像である場合は、適正化処理（基準）モジュール１１５は、その基準データに対してアフィン変換を含む画像処理を行うようにしてもよい。
そして、適正化処理（基準）モジュール１１５は、画像処理された基準データを対象として、正規化処理を行うようにしてもよい。
また、アフィン変換として、予め定めた角度での回転、予め定めた倍率での拡大縮小、又はそれらの組み合わせによる変換処理と部分画像の切り出し処理を行う変換用マトリクスを保存し、その変換用マトリクスを用いてマトリクス演算を実行して検査データの計算用データを作成するようにしてもよい。
また、画像処理（例えば、部分切り出し、回転、拡大縮小、その他のアフィン変換、ゆがみ補正、画素値の変更処理等を含む（なお、本実施の形態の説明において、拡大等とあるのは、この画像処理の一例として示したものである））により検査データから変換されて作られた複数のデータをそれぞれ正規化し、その正規化された個々のデータをベクトルとし、複数分をまとめてマトリクスを構成し、そのマトリクス内の位置情報を管理するようにしてもよい。そして、マトリクス内の位置から元の情報に対応付ける情報を記憶しておき、その対応を用いて、マトリクス内の位置から元の情報を抽出するようにしてもよい。ここで、マトリクス内の位置として、行番号、又は列番号があり、元の情報として、切り出し位置の情報、回転の角度、拡大縮小の倍率等がある。
また、対応に基づいて行列の位置に応じた判定規則を記憶しておき、照合モジュール１６０は、その判定規則を用いて真偽を判定するようにしてもよい。例えば、回転や拡大縮小のずれに対応するために、小さい角度（例えば、５度刻みで７２通り等）で検査画像から変換した画像を用意した場合には、場合によっては近い変換角度の複数のものについて照合計算結果が閾値を越えてしまう場合がおきうる。この様な場合と、大きく異なる回転角度の間で複数回閾値を越えたもの等を区別した処理を実行できるためには、検査画像を変換した際の変換の仕方に応じた判定ルールを構築することが望ましくなる。
また、複数の検査データを同時に照合モジュール１６０に投入する場合には、元の検査データを識別する情報を照合モジュール１６０に通知する、又は、照合モジュール１６０の処理前に照合結果を元の検査画像に応じて分割するようにしてもよい。
適正化処理（基準）モジュール１１５の処理については、図５の例に示すフローチャートを用いて後述する。
登録モジュール１２０は、適正化処理（基準）モジュール１１５、基準データデータベース１２５と接続されている。登録モジュール１２０は、適正化処理（基準）モジュール１１５によって処理された基準データをマトリクス化して基準データデータベース１２５に登録する。登録モジュール１２０の処理については、図６の例に示すフローチャートを用いて後述する。
なお、前述したように、適正化処理（基準）モジュール１１５は、正規化処理を行わずに、複数の要素によって構成されている基準データ内の要素の値の平均値を、該要素の値である基準データとして複数生成するようにしてもよい。
【００４１】
基準データデータベース１２５は、対象部情報記憶モジュール１３０、基準データ記憶モジュール１３５を有しており、基準データ処理モジュール１０５の登録モジュール１２０、検査データ処理モジュール１４０の照合モジュール１６０、適正化処理（検査）モジュール１５５と接続されている。基準データデータベース１２５は、基準データ処理モジュール１０５による処理結果（基準データ）を記憶している。例えば、基準データデータベース１２５は、分散環境下のＤＢ（ＤａｔａＢａｓｅ）等が望ましい。
対象部情報記憶モジュール１３０は、適正化処理（検査）モジュール１５５によって処理された検査データを記憶している。照合モジュール１６０は、基準データ記憶モジュール１３５内の基準データと対象部情報記憶モジュール１３０内の検査データとの照合を行うようにしてもよい。
基準データ記憶モジュール１３５は、複数の要素によって構成されている基準データ内の要素の値の平均値を、その要素の値から減算し、その要素によって構成される多次元ベクトルの長さの正規化を行った基準データを複数記憶している。具体的には、適正化処理（基準）モジュール１１５、登録モジュール１２０による処理結果の基準データを複数記憶している。
基準データを照合処理にかける際に、基準データの複数個をまとめたマトリクスにして分散処理をかけることになる。このマトリクスにまとめて記憶しておく場合と、分散・並列計算にデータを配分する際にマトリクスに構成する場合がありえる。
また、その双方の場合とも、マトリクスのどの位置（行、列）のデータが、元の基準データのどれであるかを示す情報が保持されている必要がある。つまり、照合が確認された際に、どの基準データと一致するデータであるのかを表示するために必要だからである。
この情報は、例えば、基準データ記憶モジュール１３５内に保存されていて、結果のレポート時に参照されてもよい。なお、この際には、問い合わせるためにマトリクスのＩＤ（識別子）とマトリクス内の位置（行や列の番号の情報）が使われることになるので、マトリクスにはＩＤが付与されて配布される必要がある。また、ＩＤに相当する情報をマトリクスに直接付与せずに、ジョブ（Ｊｏｂ、処理）のＩＤとジョブ内で扱ったマトリクスの個数情報等からＩＤに相当する情報を算出するようにしてもよい。
一方で、各マトリクス内の位置ともとの基準データの識別子の対応情報を分散並列計算時に一緒に配布する構成としてもよい。この場合には、照合が成功した場合に、対応する基準データの識別子の情報を分散並列計算している装置側で選んで後の処理に送ることができるようになる。
【００４２】
検査データ処理モジュール１４０は、検査データ受付モジュール１４５、成形モジュール１５０、適正化処理（検査）モジュール１５５、照合モジュール１６０、出力モジュール１６５を有している。
なお、本実施の形態では、照合モジュール１６０が分散並列で動作することで高速化を図る。その照合モジュール１６０に対して、出力モジュール１６５、検査データ受付モジュール１４５、成形モジュール１５０、適正化処理（検査）モジュール１５５は複数である必然性は無い。つまり、照合モジュール１６０は複数あるが、他のモジュール（出力モジュール１６５、検査データ受付モジュール１４５、成形モジュール１５０、適正化処理（検査）モジュール１５５）は１つであってもよい。
検査データ処理モジュール１４０は、検査データに対する処理を行い、基準データとの照合を行って、検査データの真偽を判定する。検査データ処理モジュール１４０の処理については、図７の例に示すフローチャートを用いて後述する。
検査データ受付モジュール１４５は、成形モジュール１５０と接続されている。検査データ受付モジュール１４５は、検査データを受け付けて、その検査データを成形モジュール１５０へ渡す。検査データは画像であってもよい。画像を受け付けるとは、登録データ受付モジュール１１０で受け付ける画像と同様に、例えば、スキャナ、カメラ等で画像を読み込むこと、ファックス等で通信回線を介して外部機器から画像を受信すること、ハードディスク（コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む）等に記憶されている画像を読み出すこと等が含まれる。画像は、２値画像、多値画像（カラー画像を含む）であってもよい。受け付ける画像は、１枚であってもよいし、複数枚であってもよい。なお、この複数枚である場合、照合モジュール１６０の処理結果ともとの検査データとの対応がとれる情報を記憶している。又は、検査データ、検査データを成形・正規化したデータとともに照合モジュール１６０（又は、照合モジュール１６０を介さずに、出力モジュール１６５）へ渡すようにしてもよい。
また、画像に撮影されている固体として、検査対象であって、ランダム性を有する読み取り可能な固有の特徴が表面に沿って分布している固体であればよい、例えば、各種の紙文書（紙幣や有価証券以外に、例えば旅券、各種の権利書、住民票、出生証明書、保険証書、保証書、機密文書等）、製造物の表面（例えば、薬（特に、錠剤等））等がある。この検査対象の画像が基準画像と対応する場合、真と判定されることになり、いずれの基準画像とも異なる場合、偽と判定されることになる。なお、「検査対象の画像が基準画像と対応する」とは、同じ固体が撮影されている画像であることを示している。
【００４３】
成形モジュール１５０は、検査データ受付モジュール１４５、適正化処理（検査）モジュール１５５と接続されている。成形モジュール１５０は、検査データを照合用に成形する。
また、検査データが画像である場合は、成形モジュール１５０は、その検査データに対してアフィン変換を含む画像処理を行うようにしてもよい。
成形モジュール１５０の処理については、図８の例に示すフローチャートを用いて後述する。
【００４４】
適正化処理（検査）モジュール１５５は、基準データデータベース１２５、成形モジュール１５０、照合モジュール１６０と接続されている。適正化処理（検査）モジュール１５５は、複数の要素によって構成されている検査データ内の要素の値の平均値を、その要素の値から減算し、その要素によって構成される多次元ベクトルの長さの正規化を行う。ここでの正規化は、多次元ベクトルの長さを予め定められた数値にする正規化である。この「予め定められた数値」は、例えば、１であってもよい。また、必ずしも１でなくても、例えば定数倍されていたりしても同様に計算可能である。
なお、正規化後の検査データは、マトリクスであってもよい。なお、マトリクス化処理について、具体的には、検査用データから位置をずらしながら切り出した画像、回転させた画像、拡大又は縮小させた画像、そして、その他のアフィン変換、ゆがみ補正、画素値の変更処理等の画像処理、それらの処理を組み合わせた結果のデータを、それぞれ正規化したものをまとめてマトリクスにすればよい。このとき、予め定めた数ずつマトリクスにすることが望ましく、マトリクス化対象のデータが半端になったときには、足りない部分に値が全て０となるベクトルを追加するようにすればよい。これによって、簡単かつ悪影響が生じない処理とすることができるようになる。
また、適正化処理（検査）モジュール１５５は、成形モジュール１５０によって画像処理された検査データを対象として、正規化処理を行うようにしてもよい。
なお、適正化処理（検査）モジュール１５５による処理は、前述した適正化処理（基準）モジュール１１５と同等の処理であり、その説明において基準データを検査データと置き換えればよい。なお、正規化したベクトルデータをマトリクスにまとめる機能をどこに持たせるかにより、基準データを正規化するか、検査データを正規化するかが異なることになる。
この適正化処理モジュール１５５、照合モジュール１６０、又は対象部情報記憶モジュール１３０で、検査データをもとに成形モジュール１５０で作成されるデータ（又は、このデータを適正化したデータ）を複数個まとめてマトリクスとする処理を行い、各マトリクスとマトリクス内の位置情報から元の成形処理との対応情報を記憶するようにしてもよい。これは、どのように成形すれば登録されている基準画像と照合が成功するかの情報を出力する際に必要だからである。
なお、前述したように、  適正化処理（検査）モジュール１５５は、正規化処理を行わずに、複数の要素によって構成されている検査データ内の要素の値の平均値を、該要素の値である検査データとして生成するようにしてもよい。
【００４５】
照合モジュール１６０は、基準データデータベース１２５、適正化処理（検査）モジュール１５５、出力モジュール１６５と接続されている。照合モジュール１６０は、基準データ記憶モジュール１３５内に記憶されている正規化後の各基準データと適正化処理（検査）モジュール１５５による正規化後の検査データを照合する。
また、正規化後の基準データと正規化後の検査データは、それぞれベクトルであり、その正規化後の基準データを複数個まとめてマトリクスとし、その検査データから画像処理により変換し正規化したデータを複数個まとめたマトリクスとする。
そして、照合モジュール１６０は、複数の基準データに対して、画像処理した検査画像との相関値をまとめて算出する。なお、照合モジュール１６０は、式１の計算そのものを実行しなくても、式１の計算結果と同等の結果を得ることになる。つまり、先に正規化してあるため、単にベクトルの内積を算出するだけで式１の計算値を得ることができる。このため、マトリクス間の乗算を行うだけで、複数の基準データと検査データから画像処理した複数のデータの間での照合計算をまとめて行うことを実現できる。つまり、式１の計算を、適正化処理（検査）モジュール１５５による正規化処理と照合モジュール１６０で行われるマトリクス同士の演算（より具体的には乗算）により実現する。
【数１】
2018037020.tif 000003
ただし、Ｆは基準画像（基準データの集合の一例）、ｆｉは基準画像の個々の画素の画素値（白黒画像の明度値、特定色の明度値や彩度等を含む）、Ｌ（Ｌ＝Ｍ×Ｎ）は基準画像の総画素数、Ｇは検査画像（検査データの一例）の部分領域、ｇｉは検査画像の部分領域の個々の画素の明度値、ｆＡＶＥは基準画像の個々の画素の明度値の平均値、ｇＡＶＥは検査画像の部分領域の個々の画素の明度値の平均値である。複数の照合画像を演算対象の検査画像として上記の演算を各々行うことで、基準画像のドット数をｍ×ｎ、照合画像のドット数をＭ×Ｎとすると、単一の検査画像当たり（Ｍ―ｍ＋１）×（Ｎ−ｎ＋１）個の相関値が得られる。
【００４６】
そして、照合モジュール１６０は、照合結果と予め定められた閾値との比較を行って、複数の基準データと検査データとの照合結果を集約して検査データの真偽を判定する。
少なくとも照合モジュール１６０による処理は、並列処理にて行う。なお、画像処理の負荷が高くなる場合には、適正化処理（検査）モジュール１５５の処理を並列処理とすることが望ましい。
また、照合モジュール１６０による処理を並列計算におけるマッパー（Ｍａｐｐｅｒ）で行うようにしてもよい。具体的には、相関値の計算自体は、Ｈａｄｏｏｐの場合ではマッパーで行うようにしてもよい。また、マッパーとリデューサー（Ｒｅｄｕｃｅｒ）の両方（なお、マッパーとリデューサーとの間にコンバイナー（Ｃｏｍｂｉｎｅｒ）が入る場合もある）で行うようにしてもよい。具体的には、それらの両方で段階的に行うようにしてもよい。段階的として、例えば、計算した相関値を元に照合の判定を行う処理をマッパーで行い、照合が成功したときの情報（どの基準画像との間で照合が成功したかを示す情報、更には、どの変換を適用したものが照合に正解したかを示す情報等）を生成する処理をリデューサーで行うようにしてもよい。また、分散処理システムとして、スパーク（Ｓｐａｒｋ）を用いる場合には、並列処理するところをエクセキューター（Ｅｘｅｃｕｔｏｒ（又は、表現によりＷｏｒｋｅｒ））、まとめる部分（リデューサーで実行して入る部分）をドライバー（Ｄｒｉｖｅｒ）で実行することになる。
前述の「どの基準画像との間で照合が成功したかを示す情報」について、詳述する。複数の検査側の画像がまとめて情報処理装置１００に投入されているときには、どの検査側の画像とどの基準画像の間で照合が成功したかの情報を示す情報を生成する処理となる。さらに、付属的な情報として、検査側の画像をどのように変換した際に照合が成功したかを示す情報も生成することが望ましい。
また、「照合が成功したときの情報」として、「どの検査側の画像との間で照合が成功したかを示す情報」を含めてもよい。ここでは、検査側の複数の画像が情報処理装置１００に投入されてきた場合に、そのうちのどの検査側の画像が照合に成功したかを示すことになる。
また、「照合が成功したときの情報」として、「検査側の画像に対して画像処理（回転、移動等）によって複数作成された検査データがあり、その画像処理後のどの検査データと基準側のデータとの間で照合が成功したかを示す情報」を含めてもよい。したがって、その情報は、検査側の画像に対して、どうような画像処理（回転角度、移動方向、移動距離等）を行わせたかを示す情報ともなる。
照合モジュール１６０の処理については、図９の例に示すフローチャートを用いて後述する。
【００４７】
出力モジュール１６５は、照合モジュール１６０と接続されている。出力モジュール１６５は、照合モジュール１６０による判定結果を出力する。判定結果を出力するとは、例えば、プリンタ等の印刷装置で印刷すること、ディスプレイ等の表示装置に表示すること、判定結果データベース等の記憶装置へ書き込むこと、メモリーカード等の記憶媒体に記憶すること、他の情報処理装置へ渡すこと等が含まれる。
【００４８】
図２は、真偽の判定処理例を示す説明図である。基準画像２００に対して、検査画像２１０の真（基準画像２００が検査画像２１０内に含まれている）、偽（基準画像２００が検査画像２１０内に含まれていない）のいずれであるかを判定するものである。なお、ここでの「基準画像２００が検査画像２１０内に含まれている」の「含まれている」には、完全同一であることまでは必要としていない。つまり、厳密には撮影が別々のものであるので、基準画像の画素値列が含まれることはほとんど起こり得ない。基準画像と対応する部分が含まれているという意味である。
図２（ａ）の例に示す基準画像２００に対して、基準データ処理モジュール１０５による処理結果が、予め基準データ記憶モジュール１３５に登録されているとする。基準画像２００の基準データ処理モジュール１０５による処理結果は、画素値（図２の例では、「画素値−画素値の平均値」）を１列に並べたベクトル（一次元のベクトル）である。
図２（ｂ１）の例に示す検査画像２１０を、検査データ受付モジュール１４５が受け付ける。そして、検査画像２１０から図２（ｂ２）の例に示す切出画像２２０を切り出す。なお、この切り出し処理は、成形モジュール１５０の処理例の一つである。この他に、回転させたものを切り出す処理、拡大、縮小したものから切り出す処理、回転・拡大縮小したものから切り出す処理、画素値にノイズを入れる等の処理を施したものに対して前述の処理を行う処理等、さまざまな成形処理がある。そして、成形後の画素ベクトルに対して、平均値を減算する処理が適正化処理（検索）モジュール１５５で行われる。また、長さを適正化する処理を行ってもよい。切出画像２２０の成形モジュール１５０、適正化処理（検査）モジュール１５５による処理結果は、画素値（図２の例では、「画素値−画素値の平均値」）を一列に並べたベクトル（一次元のベクトル）である。
照合モジュール１６０は、基準画像２００と切出画像２２０の相関係数を算出する。
そして、図２（ｃ）の例は、成形モジュール１５０で部分画像を切り出す位置をＸ、Ｙ方向に変化させた場合を示す。そして、例えば、最も高い相関係数の値（図２の例では、頂点２３０）が予め定められた閾値よりも高ければ真と判定し、それ以外は偽（贋）と判定する。
このとき、更に、最も高い相関係数の値とそれ以外の値、例えば二番目に高い値をもつものとの違い（差や比率で判定できる）が予め定めた条件を満たさないときには判定を真としないようにしてもよい。
ここでの条件を判定するときに、成形時の指定の情報（例えば、回転角や拡大・縮小の比率）を参照して判定するようにしてもよい。例えば、回転角（回転の刻み）を細かくしたり、拡大・縮小の比率（倍率）の刻みを細かくしたりすると、設定の近いところで複数回照合が成功してしまう場合があり得る。その場合にも、照合を成功と判定できるようにするために、成形時の変形の指定を照合結果の判定処理で参照すればよい。
【００４９】
図３は、真偽判定の並列処理例を示す説明図である。
登録画像ＤＢ３００内には、複数の基準画像２００（図２の例では、４個）が記憶されている。そして、検査画像２１０の真偽を判定する。
図３の例では、照合モジュール１６０の、さらには、相関計算を行う部分が分散並列処理される構成である。なお、このとき、検査データ受付モジュール１４５、成形モジュール１５０等は複数個である必要はない。複数の照合モジュール１６０で、検査画像２１０と基準画像２００ａとの照合、検査画像２１０と基準画像２００ｂとの照合、検査画像２１０と基準画像２００ｃとの照合、検査画像２１０と基準画像２００ｄとの照合が行われる。
【００５０】
ただし、検査画像２１０は、切り出しが必要である。つまり、図３の例では、基準画像２００ａ、基準画像２００ｂ、基準画像２００ｃは、それぞれ別の物体に関する情報を登録したものである。例えば、検査データ処理モジュール１４０ａにあっては、切出画像２２０ａと基準画像２００ａとの照合、切出画像２２０ｂと基準画像２００ａとの照合、切出画像２２０ｃと基準画像２００ａとの照合が行われる。つまり、相関係数算出３１０ａ、相関係数算出３１０ｂ、相関係数算出３１０ｃが行われる。そして、相関係数算出３１０ａ、相関係数算出３１０ｂ、相関係数算出３１０ｃから、画素値の相関係数３２０を生成して、最大値（Ｍａｘ）３３０、平均値（Ｍｅａｎ）３４０、標準偏差（σ）３５０を算出し、以下の判定を行う。
（「最大値（Ｍａｘ）３３０」≧閾値Ａ（ｎｃｃ＿ｔｈｒｅｓｈｏｌｄ））、かつ、（（（「最大値（Ｍａｘ）３３０」−「平均値（Ｍｅａｎ）３４０」）／「標準偏差（σ）３５０」）≧閾値Ｂ（ｎｓｃｏｒｅ＿ｔｈｒｅｓｈｏｌｄ））である場合は、判定結果（真）３９０ａとして、それ以外の場合は、判定結果（贋）３９０ｂであると判定している。
各検査データ処理モジュール１４０の判定結果を取得して、判定結果（真）３９０ａとなった基準画像２００と検査画像２１０とが照合した（真）となる。このとき、回転、拡大縮小等の変換も行われる場合は、同様の計算で判定する構成としてもよい。また、相関値と変換の種類やパラメータの値を参照して判定する構成としてもよい。
【００５１】
図４は、本実施の形態による処理例を示すフローチャートである。
ステップＳ４０２では、登録データ受付モジュール１１０は、基準データである登録データ４５０を読み込む。
ステップＳ４０４では、適正化処理（基準）モジュール１１５は、適正化処理を行う。ステップＳ４０４の詳細な処理については、図５の例に示すフローチャートを用いて後述する。
ステップＳ４０６では、登録モジュール１２０は、基準データ情報を対象部情報記憶モジュール１３０、基準データ記憶モジュール１３５に登録する。ステップＳ４０６の詳細な処理については、図６の例に示すフローチャートを用いて後述する。
ステップＳ４０８では、全ての登録データ４５０についての処理を終了したか否かを判断し、終了した場合は処理を終了し（ステップＳ４９９）、それ以外の場合はステップＳステップＳ４０２へ戻る。
【００５２】
図５は、本実施の形態による処理例を示すフローチャートである。
ステップＳ５０２では、対象としている要素を整理する。ここでは、画像の例で説明する。
予め指定された大きさ（例えば、３２×３２画素、６４×６４画素等）の領域内の情報を切り出す。
そして、予め定められた値の範囲に各要素（画素）の情報を収める。例えば、その範囲外の画素を処理対象から外すようにしてもよい。つまり、その範囲外の情報を削除するようにしてもよい。
また、例えば、各要素（画素）の値をその範囲内に収めるよう変換する。照合モジュール１６０で使用する照合アルゴリズムが、なだらかに画素値が変動する場合を対象としていることに合わせた処理である。具体的には、シグモイド関数や双曲線関数のｔａｎｈを用いるようにしてもよい。
【００５３】
ステップＳ５０４では、正規化を行う。ここでの正規化は、対象とする要素の平均値を求め、その平均値を各要素の値から減算し、各要素の値を並べた多次元のベクトルに見立ててベクトルの長さを１にするように値を変換する。一般的な正規化の処理としてもよい。この際、対象外要素となっている画素の値は０にしてもよい。式１の計算をベクトルの正規化と正規化されたベクトル間の内積計算として効率的に実行するための対応方法である。
【００５４】
図６は、本実施の形態による処理例（基準データ集約処理例）を示すフローチャートである。
ステップＳ６０２では、基準データを受信する。
ステップＳ６０４では、集約処理を行う。つまり、受信した基準データをベクトルとし、予め定められた数毎（ここでの「数」として、複数種類であってもよいし、可変であってもよい）に基準データをまとめて、基準データマトリクスにする（基準データ処理単位に形成処理）。なお、対象外の要素情報を用いる構成の場合には、対象外要素情報も対応してマトリクス化する。
ステップＳ６０６では、処理後の基準データを保存する。
【００５５】
図７は、本実施の形態による処理例を示すフローチャートである。
ステップＳ７０２では、検査データ受付モジュール１４５は、検査データを受け付ける。
ステップＳ７０４では、検査データに対して、平行移動や回転、拡大縮小等に対応する成形処理を行う。ステップＳ７０４の詳細な処理については、図８の例に示すフローチャートを用いて後述する。
ステップＳ７０６では、ステップＳ７０４による処理結果のそれぞれに対して、適正化処理を行う。ステップＳ７０６の詳細な処理については、図５の例に示すフローチャートを用いて前述した。
【００５６】
ステップＳ７０８では、検査データ処理単位形成処理を行う。具体的には、ステップＳ７０６による各適正化処理結果をベクトルとして、それらをまとめたマトリクス情報を形成（検査データ処理単位に形成処理）する。
つまり、適正化処理を経た平行移動、回転、拡大縮小化後の画像情報を、各ベクトル情報とし、予め定められた個数毎にマトリクスにまとめて、検査データ処理単位とする。一つの検査データに対して、複数の検査データ処理単位となることもある。一つの検査データに対応する複数の検査データ処理単位の集まりを、検査データ処理単位列、とする。
【００５７】
ステップＳ７１０では、照合処理を行う。ステップＳ７１０の詳細な処理については、図９の例に示すフローチャートを用いて後述する。
ステップＳ７１２では、結果を出力する。例えば、ステップＳ７１０での照合処理結果をディスプレイ、プリンタ等の表示装置や、ＤＢ等の情報記憶装置等に出力して処理を終了する。
【００５８】
図８は、本実施の形態による処理例を示すフローチャートである。
ステップＳ８０２では、平行移動画像を切り出す。
ステップＳ８０４では、歪み画像を切り出す。
ステップＳ８０６では、拡大縮小画像を切り出す。
ステップＳ８０８では、回転画像を切り出す。
ステップＳ８１０では、焦点ぼけ画像を切り出す。なお、ここでの「切り出す」は、加工した画像をつくって、そこから切り出す、又は、ぼけ画像を本来の画素値を算出しながら切り出す等が含まれる。
なお、ステップＳ８０２〜ステップＳ８１０の処理は、いずれか一つ処理を行うようにしてもよいし、複数の処理を行うようにしてもよい。
【００５９】
検査データ（例えば、画像）から、照合処理の対象とする情報（部分画像）を切り出すが、その切り出し位置等に関して、平行移動、回転、拡大縮小等の予め定められた処理とパラメータの組み合わせに応じて、切り出した情報（部分画像）を生成する。
この処理は、各処理の組み合わせ等もあり得る。したがって、処理負荷が高まる場合もあり得るが、現画像をベクトルとし、そこから切り出す位置を指定するマトリクス（スパースマトリクス：ｓｐａｒｓｅ  ｍａｔｒｉｘ、疎行列）を予め準備しておくことで、高速な演算機構（ＧＰＵ等）を利用することもできるし、各出力画像に対応する処理フローの独立性が高いため、この部分と次の適正化処理を合わせて分散並列処理とする構成も可能である。ただし、前述した通り、この部分の負荷は分散並列処理をかける必要がないケースもあり得るので、分散処理は必ずしも必要ない。
ステップＳ８１２では、結果を出力する。つまり、ステップＳ７０６の処理に渡す。
【００６０】
図９は、本実施の形態による処理例（照合処理例）を示すフローチャートである。ここでは、膨大な基準データが登録されている場合の例であって、分散処理での処理フローを説明する。
ステップＳ９０２では、検査データ処理単位（列）を受け付ける。
ステップＳ９０４では、基準データ処理単位群の情報（例えば、基準データ処理単位群のＩＤ列）を取得する。
ステップＳ９０６では、検査データ処理単位と基準データ処理単位の組を構成（分散処理等のジョブを設計）する。つまり、両者（検査データ処理単位と基準データ処理単位）の組み合わせとなるジョブの列を作成する。
【００６１】
ステップＳ９０８では、照合ジョブ実行処理を行う。つまり、ジョブの列をまとめて、又は部分列毎に分散処理に投入し、照合ジョブを実行する。ステップＳ９０８の詳細な処理については、図１０の例に示すフローチャートを用いて後述する。
【００６２】
ステップＳ９１０では、各照合ジョブの処理結果に対して集約処理（照合ジョブ結果集約処理）を行う。
検査データ一つに対応する照合ジョブ出力を集め、照合計算値が予め定めた閾値を越える照合ジョブ出力要素（照合ジョブ出力は、ベクトルかマトリクス状となっており、照合ジョブ出力要素はそのベクトルの要素、又はマトリクスの要素の値となる）を調べる。
なお、検査データ処理単位が複数となっている場合には、基準データ毎に照合ジョブ出力をまとめる処理が必要となる。
基準データ毎に、以下の処理を行う。
・閾値を越えたものがない場合は、その旨を示す情報を基準データの識別子と対応させて保存する。
・閾値を越えたものが１つの場合は、その旨を示す情報を基準データの識別子と対応させて保存する。
例えば、複数の基準データで閾値を越えていた場合には、平行移動に対応する照合計算値で、周期的に閾値を越えるものが表れる場合は、一致と認められないことを出力するようにしてもよい。
また、複数の基準データで閾値を越えていた場合には、平行移動の距離が予め定められた閾値以内であれば、照合の正解（真）とするようにしてもよい。
また、複数の基準データで閾値を越えていた場合には、回転、拡大縮小のパラメータの差分が予め定められた閾値以内であれば、照合の正解（真）とするようにしてもよい。
【００６３】
全基準データに対して、以下の処理を行う。
・照合に成功したものが一つの場合は、照合成功として対応する基準データの識別子を出力する。
・照合に成功したものがない場合は、照合に成功するものがないことを示す情報を出力する。
・複数の基準データに対して照合に成功していた場合には、予め定められた方法で対応する情報を出力する。例えば、出力する情報として、エラーとしたり、複数の照合成功の情報を出力したり、様々なバリエーションがあり得る。
ステップＳ９１２では、結果を出力する。つまり、ステップＳ７１２の処理に渡す。
【００６４】
図１０は、本実施の形態による処理例（照合ジョブ実行処理例）を示すフローチャートである。
ステップＳ１００２では、ジョブ情報を受信する。
ステップＳ１００４では、基準データ処理単位と検査データ処理単位を受信する。
ステップＳ１００６では、照合値を計算（マトリクスの乗算処理、テンソルの乗算処理）する。
ステップＳ１００８では、結果を出力する。つまり、ステップＳ９１０の処理に渡す。
【００６５】
ジョブ情報を受信した計算機（Ｈａｄｏｏｐの場合はＭａｐｐｅｒ、Ｓｐａｒｋの場合にはＥｘｅｃｕｔｏｒ）は、基準データ処理単位を入手（ジョブ情報に同梱されている場合やＩＤ等を元に、ＤＢ等の格納場所から取得する場合等があり得る）すると共に、検査データ処理単位を入手する（ジョブ情報に同梱されている場合や、所定の格納場所から入手する場合等があり得る）。
入手した基準データ処理単位と検査データ処理単位は、ＧＰＵ等で高速に計算可能なマトリクス情報に成形してあるため、そのままＧＰＵ等でマトリクスの乗算計算を実行する。なお、基準データ処理単位や検査データ処理単位が列としてまとめられていた場合には、テンソル計算となる。
処理結果がベクトル情報、又は、マトリクス情報として得られ、これを出力する。なお、Ｈａｄｏｏｐの場合は、リデューサーに向けた送信となる。Ｓｐａｒｋの場合は、Ｄｒｉｖｅｒ  ｐｒｏｇｒａｍに向けた送信となる。
【００６６】
図１１は、本実施の形態のシステム構成例を示す説明図である。照合ジョブ結果集約処理の各処理装置の配置例について説明する。ここでは、並列処理環境として、Ｈａｄｏｏｐ１１２０の例を用いる。
ＨＤＦＳ（Ｈａｄｏｏｐ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）１１１０は、予め基準画像を記憶している。
クライアント１１００は、検査画像２１０をＨＤＦＳ１１１０へ送信する。ここで検査画像を送信した場合は、それぞれのＭａｐｐｅｒで平行移動、正規化等を行う構成となる。クライアント１１００で検査データ処理単位（列）にまで変換して登録してあれば、Ｍａｐｐｅｒ側では多重に検査画像の平行移動処理等を行う必要がなくなる。また、検査データ処理単位（列）作成のステップ自体を別途分散処理でＭａｐｐｅｒで行う構成としてもよい。
Ｈａｄｏｏｐ１１２０内の各Ｍａｐｐｅｒ１１３０は、各処理装置１１４０を用いて、検査画像２１０と各基準画像２００との照合を行う。具体的には、各処理装置１１４０内のＧＰＵ等１１４２で、マトリクスの乗算処理を行って相関係数を算出する。つまり、正規化したベクトルの内積計算を行い、ＧＰＵ等１１４２上の線形代数演算ライブラリを利用して実現する。
そして、照合ジョブ結果集約処理を、Ｒｅｄｕｃｅｒ１１５０で実行し、処理結果をクライアント１１００に送信する。
【００６７】
また、照合ジョブ結果集約処理を、Ｍａｐｐｅｒ１１３０に部分的に配置してもよい。
この場合、各Ｍａｐｐｅｒ１１３０が処理するジョブの単位毎に、配布されたジョブにある基準データ毎に照合ジョブ結果集約処理の「基準データ毎」の部分を実行して、その処理結果をＲｅｄｕｃｅｒ１１５０に送信する。
また、照合ジョブ結果集約処理を新たに分散処理のジョブとして構成し、「基準データ毎」や「全基準データ」に対しての一部をＭａｐｐｅｒ１１３０で分散処理させる構成としてもよい。ほとんどの基準画像に対しては照合は失敗することになるはずである。したがって、照合失敗時には結果データを送信しない、又は、照合失敗した結果を集約した情報を送信するようにしてもよい。これによって、この処理を行わない場合に比べて、照合ジョブ結果集約処理の負荷を軽くすることができる。
【００６８】
図１２を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図１２に示す構成は、例えばパーソナルコンピュータ（ＰＣ）等によって構成されるものであり、スキャナ等のデータ読み取り部１２１７と、プリンタ等のデータ出力部１２１８を備えたハードウェア構成例を示している。
【００６９】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２０１（又はＧＰＵ）は、前述の実施の形態において説明した各種のモジュール、すなわち、基準データ処理モジュール１０５、登録データ受付モジュール１１０、適正化処理（基準）モジュール１１５、登録モジュール１２０、検査データ処理モジュール１４０、検査データ受付モジュール１４５、成形モジュール１５０、適正化処理（検査）モジュール１５５、照合モジュール１６０、出力モジュール１６５等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００７０】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２０２は、ＣＰＵ１２０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２０３は、ＣＰＵ１２０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバス等から構成されるホストバス１２０４により相互に接続されている。
【００７１】
ホストバス１２０４は、ブリッジ１２０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バス等の外部バス１２０６に接続されている。
【００７２】
キーボード１２０８、マウス等のポインティングデバイス１２０９は、操作者により操作されるデバイスである。ディスプレイ１２１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）等があり、各種情報をテキストやイメージ情報として表示する。また、ポインティングデバイス１２０９とディスプレイ１２１０の両方の機能を備えているタッチスクリーン等であってもよい。
【００７３】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１２１１は、ハードディスク（フラッシュ・メモリ等であってもよい）を内蔵し、ハードディスクを駆動し、ＣＰＵ１２０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、対象部情報記憶モジュール１３０、基準データ記憶モジュール１３５等としての機能を実現させる。さらに、その他の各種データ（検査データ、照合結果等を含む）、各種コンピュータ・プログラム等が格納される。
【００７４】
ドライブ１２１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１２１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１２０７、外部バス１２０６、ブリッジ１２０５、及びホストバス１２０４を介して接続されているＲＡＭ１２０３に供給する。なお、リムーバブル記録媒体１２１３も、データ記録領域として利用可能である。
【００７５】
接続ポート１２１４は、外部接続機器１２１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１２１４は、インタフェース１２０７、及び外部バス１２０６、ブリッジ１２０５、ホストバス１２０４等を介してＣＰＵ１２０１等に接続されている。通信部１２１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部１２１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１２１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００７６】
なお、図１２に示す情報処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１２に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図１２に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器（携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む）、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００７７】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分又は全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００７８】
１００…情報処理装置
１０５…基準データ処理モジュール
１１０…登録データ受付モジュール
１１５…適正化処理（基準）モジュール
１２０…登録モジュール
１２５…基準データデータベース
１３０…対象部情報記憶モジュール
１３５…基準データ記憶モジュール
１４０…検査データ処理モジュール
１４５…検査データ受付モジュール
１５０…成形モジュール
１５５…適正化処理（検査）モジュール
１６０…照合モジュール
１６５…出力モジュール
１１００…クライアント
１１１０…ＨＤＦＳ
１１２０…Ｈａｄｏｏｐ
１１３０…Ｍａｐｐｅｒ
１１４０…処理装置
１１４２…ＧＰＵ等
１１５０…Ｒｅｄｕｃｅｒ
【図１】
2018037020.tif 000004
【図２】
2018037020.tif 000005
【図３】
2018037020.tif 000006
【図４】
2018037020.tif 000007
【図５】
2018037020.tif 000008
【図６】
2018037020.tif 000009
【図７】
2018037020.tif 000010
【図８】
2018037020.tif 000011
【図９】
2018037020.tif 000012
【図１０】
2018037020.tif 000013
【図１１】
2018037020.tif 000014
【図１２】
2018037020.tif 000015