(57)【要約】【課題】演算負荷の軽減ができる情報処理装置及び類似画像検索プログラムを提供する。【解決手段】機械学習により獲得された複数のデータパターンを保持し、処理対象となるデータの入力を受けて、複数のデータパターンごとに、入力されたデータのうち、データパターンと類似すると判定される部分の数をカウントして、当該カウントの結果に基づく特徴ベクトル情報を生成する。この特徴ベクトル情報を用いて、上記データに関わる所定の処理を実行する。【選択図】図１
2020091828.tif 000002
【特許請求の範囲】
【請求項１】
機械学習により獲得された複数のデータのパターンを保持する保持手段と、
処理対象となるデータの入力を受けて、前記複数のデータのパターンごとに、前記処理対象データのうち、前記データのパターンのそれぞれと類似すると判定される部分の数をカウントして、当該カウントの結果に基づく特徴ベクトル情報を生成する特徴量生成手段と、
前記特徴ベクトル情報を用いて、前記処理対象データに関わる所定の処理を実行する実行手段と、
を含む情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、前記データは、画像データであり、
前記保持手段は、機械学習により獲得された複数の画像パターンを保持し、
前記特徴量生成手段は、処理対象となる画像データの入力を受けて、前記複数の画像パターンごとに、前記画像データに含まれる領域のうち、画像パターンと類似すると判定される領域の数をカウントして、当該カウントの結果に基づく特徴ベクトル情報を生成し、
前記実行手段は、前記特徴ベクトル情報を用いて、前記画像データに関わる所定の処理を実行する情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
ネットワークを介し、それぞれに固有なネットワークアドレスを用いてアクセス可能な複数の画像データについて、当該画像データのネットワークアドレスと、前記特徴量生成手段により生成した特徴ベクトル情報とを関連付けて保持するデータベースを保持し、
前記実行手段は、検索の対象となる画像データの入力を受けて、当該検索の対象となった画像データについて前記特徴量生成手段により生成した特徴ベクトル情報と、前記データベースに含まれる特徴ベクトル情報とを比較して、当該比較の結果に基づき、検索の結果となる画像データのネットワークアドレスを抽出する情報処理装置。
【請求項４】
機械学習により獲得された複数の画像パターンを保持するコンピュータを、
処理対象となる画像データの入力を受けて、前記複数の画像パターンごとに、前記画像データに含まれる領域のうち、画像パターンと類似すると判定される領域の数をカウントして、当該カウントの結果に基づく特徴ベクトル情報を生成する特徴量生成手段と、
前記特徴ベクトル情報を用いて、前記画像データに関わる所定の処理を実行する実行手段と、
として機能させる類似画像検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、類似画像の検索等の処理を行う情報処理装置及び類似画像検索プログラムに関する。
【背景技術】
【０００２】
近年ではディープラーニングを用いた情報処理が広く研究されている。例えば画像の分類を行うため、対象物が撮像されている位置が変化しても同じ画像と認識可能な、畳み込みニューラルネットワーク（ＣＮＮ）を用いたディープラーニングがある。
【０００３】
特許文献１には、このＣＮＮの中間層が抽出した複数種類の特徴量を用いて、決定木により画像を分類するという技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−５６３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術では、第一に、ニューラルネットワークによって得られた機械学習の結果を利用するために、ニューラルネットワークの演算が必要となるため、演算負荷が軽減できないという問題点があった。
【０００６】
本発明は上記実情等に鑑みて為されたもので、その目的の一つは、演算負荷の軽減ができる情報処理装置及び類似画像検索プログラムを提供することである。
【課題を解決するための手段】
【０００７】
上記従来例の問題点を解決するための本発明は、情報処理装置であって、機械学習により獲得された複数のデータのパターンを保持する保持手段と、処理対象となるデータの入力を受けて、前記複数のデータのパターンごとに、前記処理対象データのうち、前記データのパターンのそれぞれと類似すると判定される部分の数をカウントして、当該カウントの結果に基づく特徴ベクトル情報を生成する特徴量生成手段と、前記特徴ベクトル情報を用いて、前記処理対象データに関わる所定の処理を実行する実行手段と、を含むこととしたものである。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態に係る情報処理装置の構成例を表すブロック図である。
【図２】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
【図３】本発明の実施の形態に係る情報処理装置が保持する基底画像データの例を表す説明図である。
【図４】本発明の実施の形態に係る情報処理装置が保持する検索データベースの内容例を表す説明図である。
【発明を実施するための形態】
【０００９】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置１は、例えば図１に例示するように、制御部１１、記憶部１２、操作部１３、表示部１４、及び通信部１５を含んで構成されている。またこの情報処理装置１は、インターネット等の通信手段を介して、種々のウェブサーバ等のサーバ装置２ａ，ｂ…との間で通信可能に接続されている。
【００１０】
制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されたプログラムに従って動作する。本実施の形態の一例では、この制御部１１は、複数の画像パターンを機械学習により獲得して、記憶部１２に格納する機械学習処理を実行する。また制御部１１は、処理対象となる画像データの入力を受けて、上記の複数の画像パターンごとに、当該処理対象となった画像データに含まれる領域のうち、画像パターンと類似すると判定される領域の数をカウントして、当該カウントの結果に基づく特徴ベクトル情報を生成する。そして制御部１１は、当該特徴ベクトル情報を用いて、処理の対象となった画像データに関わる所定の処理を実行する。
【００１１】
本実施の形態のある例では、制御部１１は、各ウェブサーバ２ａ，２ｂ…が提供するウェブページをクローリングして、当該ウェブページで提供される画像データを処理の対象として上記の複数の画像パターンごとに、当該処理対象となった画像データに含まれる領域のうち、画像パターンと類似すると判定される領域の数をカウントして、当該カウントの結果に基づく特徴ベクトル情報を生成し、当該生成した特徴ベクトルと、処理対象となった画像データを提供するウェブページを特定する情報（当該ウェブページのＵＲＬでよい）とを関連付けて、検索用データベースとして記憶部１２に格納しておく。
【００１２】
そして制御部１１は、利用者から検索の対象となる画像データの入力を受けて、当該入力された画像データを処理の対象として上記の複数の画像パターンごとに、当該処理対象となった画像データに含まれる領域のうち、画像パターンと類似すると判定される領域の数をカウントして、当該カウントの結果に基づく特徴ベクトル情報（検索用データベースに既に保持されているものと区別するため、検索対象特徴ベクトル情報と呼ぶ）を生成する。制御部１１はここで生成した検索対象特徴ベクトル情報と、検索用データベースに保持された特徴ベクトル情報とを比較し、検索データベースに保持された特徴ベクトルを、検索対象特徴ベクトル情報に近い順（関連度順）に所定の数だけ抽出する。制御部１１は、抽出した特徴ベクトルに関連付けて検索データベースに保持されている、ウェブページを特定する情報の一覧を、上記関連度順に表示出力する。
【００１３】
もっともこの例は、処理の一例であり、本実施の形態の制御部１１は他の処理を行ってもよい。この制御部１１の詳しい処理の内容は、後に説明する。
【００１４】
記憶部１２は、メモリデバイスやディスクデバイス等であり、制御部１１によって実行されるプログラムを保持している。このプログラムは、コンピュータ可読かつ非一時的な記憶媒体に格納されて提供され、この記憶部１２に格納されたものであってもよい。また本実施の形態の一例では、この記憶部１２は、検索用データベースを保持しているものとする。またこの記憶部１２は、制御部１１のワークメモリとしても動作する。
【００１５】
操作部１３は、キーボードやマウス等であり、利用者の指示操作を受けて、当該指示操作の内容を表す情報を制御部１１に対して出力する。表示部１４は、ディスプレイ等であり、制御部１１から入力される指示に従って、指示された情報を表示出力する。
【００１６】
通信部１５は、ネットワークインタフェース等であり、制御部１１から入力される指示に従って、指示された情報を、指示されたあて先に宛てて送信出力する。またこの通信部１５は、ウェブサーバ２等から情報を受信して、制御部１１に対して出力する。
【００１７】
次に本実施の形態の一例に係る制御部１１の動作について説明する。ここではまず、一例として、制御部１１が、ウェブサーバ２が提供する画像データを検索する動作を行う例について説明する。
【００１８】
この例の制御部１１は、記憶部１２に格納された機械学習処理プログラムを実行することで、図２に例示するように、機械学習処理部２０及び検索処理部３０として機能する。図２は、本実施の形態の一例に係る制御部１１の機能ブロック図である。
【００１９】
機械学習処理プログラムを実行する制御部１１は、図２に例示するように、機械学習処理部２０としての動作を行う。このとき制御部１１は、機能的には受入部２１と、機械学習部２２と、中間層抽出部２３とを含んで構成される。
【００２０】
また検索処理部３０として動作する制御部１１は、機能的に、パターン保持部３１と、情報収集部３２と、特徴量演算部３３と、特徴量保持部３４と、受入部３５と、検索部３６と、情報出力部３７とを含んで構成される。
【００２１】
受入部２１は、機械学習の対象となるデータの入力を受け入れる。本実施の形態の例では、画像データを検索する動作を行うので、ここで受入部２１が受け入れるデータは画像データとなる。本実施の形態の一例では、画像データは、ウェブサイトをクローリングして得ることとすればよい。あるいは、この画像データは検索の目的となる画像を含むもの、例えば日本の風景の検索に用いるのであれば、日本国内を撮影した画像データを集積したものを用いてもよい。
【００２２】
機械学習部２２は、例えばオートエンコーダであり、中間層を少なくとも一つ含むニューラルネットワークの機械学習処理を実行する。この機械学習部２２は、受入部２１が受け入れた画像データを、所定のサイズにリサイズしてニューラルネットワークの入力層に入力する。また機械学習部２２は、当該画像データを入力したときのニューラルネットワークの出力が、元の（所定のサイズにリサイズした）画像データとなるように、ニューラルネットワークの出力と入力した画像データとの差に基づいて、ニューラルネットワーク内の入力層と中間層との間の重みの情報、及び中間層と出力層との間の重みの情報を設定する。この処理は、一般的なニューラルネットワークの機械学習処理と同じものであるので、ここでの詳しい説明は省略する。
【００２３】
中間層抽出部２３は、機械学習部２２によって機械学習されたニューラルネットワークの中間層の情報を抽出して出力する。具体的に中間層にＮ個のノードがあり、入力層にＭ個のノードがある（入力する画像データのサイズが横ｘピクセル、縦ｙピクセルであるとするとＭ＝ｘ×ｙ）とき、中間層の一つのノードｊに着目すると、Ｍ個の重みｗij（ｉ＝１，２，…，Ｍ）が存在する。そこで中間層抽出部２３は、中間層の各ノード（ｊ＝１，２，…，Ｎ）についてのこのＭ個の重みを、画像データのサイズ（横ｘピクセル、縦ｙピクセル）に配列した基底画像データ（Ｎ個の画像データ）を生成し、中間層の情報として出力する。
【００２４】
なお、ここでは中間層抽出部２３は、入力層と中間層との間の重みの情報から中間層の情報を抽出することとしたが、これに代えてあるいはこれとともに、中間層と出力層との重みの情報から中間層の情報を抽出してもよい。すなわち情報を抽出する中間層は、例えば機械学習部２２によって機械学習されるニューラルネットワークがオートエンコーダである場合、エンコーダ側の最後の層（デコーダ側の最初の層に接続される、最も深い中間層、いわゆる潜在変数を表す層）であってもよい。また中間層抽出部２３は、任意の互いに隣接する中間層間の重みの情報から中間層の情報を抽出してもよい。さらに中間層抽出部２３は、各中間層の各ノードのうちから、当該ノードに係る重み（隣接する層の各ノードとの間の重み）の情報が所定の基準に合致するノード（あるいは人為的に指定されたノード）を選択し、当該ノードに係る重みの情報に基づいて基底画像データを生成することとしてもよい。つまり、上記の最も深い中間層など、特定の中間層から中間層の情報を抽出してもよいし、複数の中間層から中間層の情報が抽出されてもよい。
【００２５】
この場合、出力層にＬ個のノードがあるとき、中間層の一つのノードｊに着目すると、Ｌ個の重みｗij（ｉ＝１，２，…，Ｌ）が存在することとなる。そこで中間層抽出部２３は、中間層の各ノード（ｊ＝１，２，…，Ｎ）についてのこのＬ個の重みをｘ×ｙのマトリクスに最も近い比率のマトリクスに配列した仮基底画像データを生成し、さらに各ノードについての仮基底画像データを、所定の方法でｘ×ｙ画素の画像データにリサイズして、基底画像データとする。そして中間層抽出部２３は、この基底画像データ（Ｎ個の画像データ）を、中間層の情報として出力する。
【００２６】
この基底画像データ（Ｎ個の画像データ）には、例えば図３に例示するように、機械学習の過程で入力された画像データ内のパターン（線分的なパターンや色彩のパターン等）が含まれるようになることが知られている（例えば、Dumitru Erhan, et.al., “Understanding Representations Leaned in Deep Architectures”, inet: https://www.researchgate.net/publication/265745969_Understanding_Representations_Learned_in_Deep_Architectures（平成３０年１０月１０日検索））。本実施の形態では、この基底画像データを画像パターンとして用いることとする。
【００２７】
検索処理部３０のパターン保持部３１は、機械学習処理部２０の中間層抽出部２３が出力した基底画像データを保持する。このパターン保持部３１は、中間層抽出部２３が出力した基底画像データのすべてを画像パターンとして保持してもよいし、中間層抽出部２３が出力した基底画像データのうちから予め定めた条件を満足する基底画像データのみを画像パターンとして保持してもよい。ここでの条件としては例えば、線分の画像を画像パターンとする場合、ハフ変換やＲＡＮＳＡＣ等の広く知られた線分検出処理を行い、検出された線分の数が予め定めた数以上となっていることを条件としてもよい。この例によると、線分としての特徴を有する基底画像データのみを選択的に画像パターンとして保持することとなる。
【００２８】
また別の例では、パターン保持部３１は、基底画像データのうち、所定の特徴量が予め定めた条件を満足するものを画像パターンとして選択して保持してもよい。ここで特徴量及び上記条件は例えば、ハール・ライク（Haar-Like）特徴量を用い、ハール・ライク特徴量の演算に用いる演算用パターン（エッジパターン、線分パターン、周辺パターンなど広く知られたものを用いればよい）との一致度が予め定めた閾値より高いとの条件であってもよい。
【００２９】
ここで一致度は、上記演算用パターンが有意画素（例えば黒色）となっている領域に対応する基底画像データ内の領域で、画素値の明度が予め定めた閾値より低くなっている画素の数ＰＢＮと、上記演算用パターンが有意画素でない（例えば白色）となっている領域に対応する基底画像データ内の領域で、画素値の明度が予め定めた閾値より高くなっている画素の数ＰＷＮとの和ＰＢＮ＋ＰＷＮなどとする。なお、領域の対応付けは、上記演算用パターンを、基底画像データのサイズに拡大または縮小（比率が一致しない場合は、演算用パターンの外接矩形を基底画像データのサイズに一致するよう拡大または縮小）して、画素を対応付けることにより行えばよい。
【００３０】
さらに、上記特徴量としてはＨＯＧ（Histograms of Oriented Gradients）特徴量を用いてもよい。この場合は、基底画像データからＨＯＧ特徴量を取り出し、取り出された輝度変化の境界線に対応する画素の数が予め定めたしきい値を超えるとの条件を満足する場合に、当該基底画像データを選択して画像パターンとして保持することとしてもよい。
【００３１】
この基底画像データのうちから画像パターンを選択する方法としては、このほかにも、ユーザの選択による方法など、種々の方法を採用し得る。
【００３２】
情報収集部３２は、予め定めた規則に基づいてウェブページをクローリングし、取得したウェブページにて提供されている画像データを処理対象画像データとして特徴量演算部３３に出力する。ここでクローリングの規則はリンクを辿る方法や、その他種々の方法が広く知られているので、ここでの詳しい説明は省略する。また、この情報収集部３２は、特徴量演算部３３により特徴量が演算された画像データの参照情報（当該画像データを取得したＵＲＬ）を、特徴量保持部３４に出力して、検索データベースへの記録を指示する。
【００３３】
特徴量演算部３３は、処理の対象となる画像データの入力を受けて、当該画像データ（処理対象画像データ）と複数の基底画像データのそれぞれとの類似度を演算する。具体的にここでの類似度の演算は、処理対象画像データ内で、基底画像データと同じサイズのウィンドウを例えば所定ドット数ずつラスタスキャンしつつ、当該ウィンドウ内の部分画像を抽出し、基底画像データと当該部分画像との相互相関を演算する等の広く知られた方法で、パターンマッチング等の処理を行うことで実現できる。
【００３４】
ここで部分画像を抽出するためのウィンドウは、縦あるいは横方向の少なくとも一方に重複を許してスキャンすることとするのも好ましい。すなわち、基底画像データとの相互層間等を演算する部分画像は、処理対象画像データから重複を許して抽出されたものであってよい。このように重複を許して抽出すると、基底画像データとの対比の対象となるパターンが縦あるいは横方向にシフトしていても検出可能となる。
【００３５】
また類似度は、例えば次のようにしても求められる。すなわち特徴量演算部３３は、部分画像ごとの方向線素特徴量を得る。具体的に特徴量演算部３３は、部分画像をさらに所定サイズのブロックに分割し、ブロックごとに方向線素特徴量を得る。ここでの方向線素特徴量は、４方向のものに限られない。４を超える多方向とする場合の方向線素特徴量の例については、ストロークを構成する特徴点間の線分の単位方向ベクトルと予め定めた種々の方向の単位ベクトル（線素パターン）との内積を得て方向線素特徴量とする例など、広く知られた方法を採用できるので、ここでの詳細な説明は省略する。
【００３６】
特徴量演算部３３は、ブロックごとに得た方向線素特徴量を参照し、予め定められた各線素パターンが表わす線分の角度ごとに、対応する角度の線素パターンに関連する方向線素特徴量となっているブロックを特定する情報のリストを関連づけたデータを生成する。このデータを、以下、比較対象位相順データと呼ぶ。
【００３７】
特徴量演算部３３は、基底画像データの各々についても、予め、この例と同様に上記所定サイズのブロックに分割し、各ブロックの方向線素特徴量を得て、上記予め定められた各線素パターンが表わす線分の角度ごとに、対応する角度の線素パターンに関連する方向線素特徴量となっているブロックを特定する情報のリストを関連づけたデータを生成して記憶しておく。このデータを以下、検索用位相順データと呼ぶ。
【００３８】
特徴量演算部３３は、比較対象位相順データの角度ごとのリスト（ブロックを特定する情報の各々）と、基底画像データごとの検索位相順用データに含まれるリストとの差を演算する。具体的な例として、角度θについての比較対象位相順データにおいて、ブロックを特定する情報（ｄｘｉ，ｄｙｉ）（ここでｉ＝０，１，２…）が含まれ、ある基底画像データの検索用位相順データにおいてブロックを特定する情報（ｘｊ，ｙｊ）（ここでｊ＝０，１，２…）が含まれているときには、
ΣiΣj｜（ｘｊ，ｙｊ）−（ｄｘｉ，ｄｙｉ）｜
を演算して、この演算結果を、さらに角度θについて総和したものを、部分画像と、当該基底画像データとの距離ｄであるとする。なお、Σiは、ｉについて和をとることを意味し、Σjはｊについて和をとることを意味する。また（ｄｘi，ｄｙi）または（ｘj，ｙj）は、リストのｉ（またはｊ）番目が、ｘ軸方向にｄｘ番目、ｙ軸方向にｄｙ番目（またはｘ軸方向にｘ番目、ｙ軸方向にｙ番目）の位置のブロックを特定する情報であることを意味する。
【００３９】
また、特徴量演算部３３は、抽出した部分画像に含まれる各画素と、それに隣接する画素との色の情報を用いて、距離ｄに対して重みを与えてもよい。
【００４０】
例えば、特徴量演算部３３は、部分画像（基底画像データと同じサイズ）内の画素と、基底画像データの対応する画素との差に基づく重みを与えてもよい。この場合、部分画像と、基底画像データとの対応する各画素について画素値の差の絶対値を総和したもの｜ｅ｜を用い、この｜ｅ｜を、先に演算した、部分画像と当該基底画像データとの距離ｄに加重して加算して補正距離Ｄ＝α｜ｅ｜＋βｄを求める（α、βは実験的に定められる正の重みの値）こととしてもよい。
【００４１】
また、画素値の差ではなく、画素値の差の差を用いてもよい。この例では、特徴量演算部３３は、抽出した部分画像に含まれる画素を順次、注目画素として選択する。そして特徴量演算部３３は、注目画素に隣接する画素と、注目画素との色の差の絶対値（色空間上の距離）を演算する。この色の差は、例えば注目画素をラスタスキャン順（映像データの左上の画素から順に、左から右へ１ライン走査し、次に一つ下のラインへ移行して左から右へ…と、順次走査する順）に走査して選択する場合、直前の注目画素の画素値と、現在の注目画素の画素値との差としてもよいし、４近傍の各画素との差の平均などとしてもよい。
【００４２】
なお、特徴量演算部３３は、距離ｄに対して、先に求めた部分画像内の画素の値（色）の差（色差）と、基底画像データの画素の値（色）の差（色差；部分画像と同様の方法で予め求めておく）との差を求める。具体的に部分画像と、ある基底画像データとにおける各対応画素の、それぞれの周辺画素との色差の値をｃｐｚ、ｃｐｄｚとしたとき、特徴量演算部３３は、その差ｆ＝ｃｐｚ−ｃｐｄｚを算出する。
【００４３】
特徴量演算部３３は、この値ｆの絶対値｜ｆ｜を用いて、補正距離Ｄを、画素値の差の絶対値｜ｅ｜とともに距離ｄに加重して加算し、
Ｄ＝α｜ｅ｜＋βｄ＋γ｜ｆ｜
としてもよい（α、β，γは実験的に定められる正の重みの値）。
【００４４】
これによると、色差が著しい部分が一致する場合とそうでない場合とを補正距離Ｄに影響させることができるようになり、例えば背景など色差が一般に大きくない部分の影響を軽減できる。
【００４５】
これらの例では、特徴量演算部３３は、ここで求められる距離ｄ（あるいは補正距離Ｄ）の逆数（ｄまたはＤに所定の正の定数を加えて逆数をとってもよい）を、部分画像と基底画像データとの類似度とする。
【００４６】
本実施の形態のこの例によると、ディープラーニングにおいて広く利用される畳み込みを採用した場合を超える効果を示す。
【００４７】
特徴量演算部３３は、基底画像データごとに、処理対象画像データ中に、当該基底画像データとの間の類似度が予め定めたしきい値を超える（基底画像データのパターンに一致するパターンを有する）部分画像がいくつ見いだされたかをカウントする。
【００４８】
そして特徴量演算部３３は、基底画像データごとの上記カウント値を得て、所定の基底画像データの順（基底画像データを追加した順でよい）に当該カウント値を配列したヒストグラムの情報（ベクトル情報）を、処理対象画像データの特徴量として出力する。
【００４９】
特徴量保持部３４は、情報収集部３２から特徴量の記録が指示されると、情報収集部３２が出力する参照情報と、当該参照情報で特定されるアドレス等から情報収集部３２が取得して出力した画像データについて特徴量演算部３３が出力する特徴量とを関連付けて検索データベースに追加して記録する（図４）。なお、以下の説明で、検索データベースに格納された特徴量を検索コードと呼ぶ。
【００５０】
本実施の形態において特徴的なことの一つは、このとき、検索データベースには処理対象画像データ（ウェブサイトから取得された画像データ）自体を記録する必要がないことである。これにより、画像データを保持するための記憶容量を削減でき、また、画像データに関わる著作権等の問題が生じることがない。
【００５１】
受入部３５は、ユーザから検索の対象となる画像データの入力を受け入れて、当該画像データを特徴量演算部３３に対して、処理対象画像データとして出力する。
【００５２】
検索部３６は、受入部３５が出力した画像データについて特徴量演算部３３が演算した特徴量（検索対象特徴量と呼ぶ）の情報を受けて、当該検索対象特徴量に類似する検索コードを、検索データベースから検索する。ここで特徴量間の類似度は例えば次のように演算できる。
【００５３】
本実施の形態のここでの例では、特徴量は、基底画像データごとのヒストグラムの情報であり、従って基底画像データの数だけの次元を有するベクトル量となっている。そこで、例えば正規化した（大きさを「１」とした）特徴量間（検索対象特徴量と検索コードとの間）の内積により特徴量の類似度を求めることができる（いわゆるコサイン類似度）。
【００５４】
検索部３６は、検索データベースに格納された検索コードの各々と、検索対象特徴量との間の類似度を演算し、類似度の高い検索コードの順に所定の数だけ、当該検索コードに関連付けられている参照情報を取得して出力する。なお、検索部３６は、類似度が予め定めたしきい値を超える場合にのみ、当該類似度に係る検索コードに関連付けられた参照情報を取得することとしてもよい。
【００５５】
情報出力部３７は、検索部３６が出力する参照情報のリスト（関連付けられた検索コードと検索対象特徴量との類似度が高い順に参照情報を配列したリスト）を、入力された画像データの検索結果として出力する。なお、類似度が予め定めたしきい値を超える場合に限ってこのリストに参照情報が含まれることとした場合、リストに参照情報が含まれない場合もある。この場合、情報出力部３７は、入力された画像データに類似する画像データが見いだせなかった旨の情報を出力してもよい。
【００５６】
［動作］
本実施の形態は基本的に以上の構成を備えており、次のように動作する。本実施の形態の情報処理装置１では、まず画像パターンを得るために、機械学習の処理が行われる。
【００５７】
すなわち情報処理装置１の制御部１１は、機械学習の対象となるデータの入力を受け入れる。ここでは機械学習の対象となるデータは画像データであるとする。制御部１１は、オートエンコーダ等、中間層を少なくとも一つ含むニューラルネットワークの機械学習処理を実行する。このニューラルネットワークは必ずしもオートエンコーダのように教師なし学習でなくてもよく、ＣＮＮ（畳み込みネットワーク）を用いた画像分類の機械学習処理が実行されてもよい。教師付きの機械学習を行う場合は、入力する画像データに対応する教師データが用意されているものとする。またこの機械学習の対象とするニューラルネットワークは、複数の中間層を有するものであってもよい。
【００５８】
情報処理装置１は、受け入れた画像データを、所定のサイズにリサイズしてニューラルネットワークの入力層に入力し、ニューラルネットワークの出力が目的のデータとなるように、当該目的のデータと出力との差に基づいて、ニューラルネットワーク内の入力層と中間層との間の重みの情報、及び中間層と出力層との間の重みの情報（複数の中間層が含まれる場合はさらに中間層の間の重みの情報）を設定する。この処理は、一般的なニューラルネットワークの機械学習処理と同じものであるので、ここでの詳しい説明は省略する。
【００５９】
なお、オートエンコーダを用いる場合は、ここでの目的のデータは入力する画像データそのものとなる。
【００６０】
情報処理装置１は、複数の画像データに基づく機械学習を行った後、機械学習されたニューラルネットワークの中間層の情報を抽出して出力する。既に述べたように、ここでの例では中間層の各ノードについて、当該ノードに入力される、あるいは当該ノードが出力する複数個の重みの情報を、所定のサイズ（横ｘピクセル、縦ｙピクセル）に配列して基底画像データを生成し、このノードごとに得られる基底画像データを中間層の情報として出力する。
【００６１】
また検索の処理を行う情報処理装置１は、次のように動作する。本実施の形態において特徴的なことの一つは、検索の処理を行う情報処理装置１では、ニューラルネットワークを用いる必要がなく、ニューラルネットワークを保持する必要も、その重みを更新したり、ニューラルネットワークに情報を入力してその出力を演算したりする必要もないことである。
【００６２】
本実施の形態の例に係る、検索の処理を行う情報処理装置１は、基底画像データを保持する。そして検索データベースの生成処理と、検索データベースからの検索処理とを実行する。
【００６３】
まず検索データベースの生成処理を行う情報処理装置１は、予め定めた規則に基づいてウェブページをクローリングし、取得したウェブページにて提供されている画像データを処理対象画像データとする。
【００６４】
そして情報処理装置１は、処理の対象となる画像データ（基底画像データより縦横のサイズが大きいものとする）の入力を受けて、当該画像データ（処理対象画像データ）と複数の基底画像データのそれぞれとの類似度を演算する。本実施の形態の一例では、類似度の演算は、処理対象画像データ内で、基底画像データと同じサイズのウィンドウをラスタスキャンしつつ、当該ウィンドウ内の部分画像を抽出し、基底画像データと当該部分画像との相互相関を演算する等の広く知られた方法で、パターンマッチング等の処理を行って実行する。
【００６５】
既に述べたように、ここで部分画像を抽出するためのウィンドウは、縦あるいは横方向の少なくとも一方に重複を許してスキャンすることとしてよい。
【００６６】
情報処理装置１は、基底画像データごとに、処理対象画像データ中に、当該基底画像データとの間の類似度が予め定めたしきい値を超える（基底画像データのパターンに一致するパターンを有する）部分画像がいくつ見いだされたかをカウントする。
【００６７】
情報処理装置１は、基底画像データごとの上記カウント値を得て、所定の基底画像データの順（基底画像データを追加した順でよい）に当該カウント値を配列したヒストグラムの情報（ベクトル情報）を、処理対象画像データの特徴量として、処理の対象として入力された画像データの取得元となったＵＲＬ（参照情報）に関連付けて、検索データベースとして蓄積して格納する。
【００６８】
情報処理装置１のこの処理により、図４に例示したように、画像データの参照情報（ＵＲＬ）と、当該画像データに含まれる基底画像データである各画像パターンの数を列挙したベクトル情報（検索コード）とが関連付けて検索データベースとして、記憶部１２に格納された状態となる。
【００６９】
情報処理装置１は、この検索データベースの生成の処理を所定のタイミングごとに繰り返して実行してもよい。
【００７０】
次に検索処理を実行する情報処理装置１は、検索の対象となる画像データの入力をユーザから受け入れて次のように動作する。
【００７１】
情報処理装置１は、検索の対象となる画像データについて当該画像データと複数の基底画像データのそれぞれとの類似度を演算する。そして情報処理装置１は、基底画像データごとに、処理対象画像データ中に、当該基底画像データとの間の類似度が予め定めたしきい値を超える（基底画像データのパターンに一致するパターンを有する）部分画像がいくつ見いだされたかをカウントする。
【００７２】
情報処理装置１は、基底画像データごとの上記カウント値を得て、所定の基底画像データの順（検索コードと同じ順）に当該カウント値を配列したヒストグラムの情報（ベクトル情報）を、検索の対象となった画像データの特徴量（検索対象特徴量）とする。
【００７３】
そして情報処理装置１は、この検索対象特徴量に類似する検索コードを、検索データベースから検索する。ここで特徴量間の類似度は正規化した（大きさを「１」とした）特徴量間（検索対象特徴量と検索コードとの間）の内積でよい。
【００７４】
情報処理装置１は、検索データベースに格納された検索コードの各々と、検索対象特徴量との間の類似度を演算し、類似度の高い検索コードの順に所定の数だけ、当該検索コードに関連付けられている参照情報を取得する。そして情報処理装置１は、当該取得した参照情報のリスト（関連付けられた検索コードと検索対象特徴量との類似度が高い順に参照情報を配列したリスト）を、入力された画像データの検索結果として出力する。
【００７５】
なお、ここまでの説明において一つの情報処理装置１が、機械学習の処理と、検索データベースの生成の処理と、検索の処理とを行う例について説明したが、本実施の形態はこれに限られず、例えば機械学習の処理を行う情報処理装置１と、その他の処理を行う情報処理装置１とは別のものであってもよい。この場合、検索データベースの生成処理や検索の処理を行う情報処理装置１は、基底画像データの情報を、機械学習の処理を行う情報処理装置１から取得する。既に述べたように、このとき検索データベースの生成処理や検索の処理を行う情報処理装置１は、基底画像データを生成するもととなったニューラルネットワークの情報（ニューラルネットワークを再現するための、全ての重みの情報等）は必ずしも必要でなく、基底画像データを保持するだけでよい。
【００７６】
また、検索データベースの生成処理を行う情報処理装置１と、検索の処理を行う情報処理装置１も別体のものであってもよい。この場合、検索の処理を行う情報処理装置１は、検索データベースの生成処理を行う情報処理装置１から検索データベースの入力を受けて保持する。
【００７７】
本実施の形態によると、検索データベースの生成や検索の処理において、画像パターンである基底画像データを用いるために、ニューラルネットワークの演算の必要がなく、パターンマッチング等の比較的軽量な処理によって各処理を実行できる。
【００７８】
［既知のデータとの照合］
また、本実施の形態の一例では、既知のデータ、例えばタイヤ、ヘッドライト、窓、などといった、何が撮影されているかが分かっている画像データとの照合が行われてもよい。
【００７９】
この例では予め、既知の物体（上記のタイヤ等）が撮像されている画像データを処理対象画像データとして入力し、特徴量演算部３３の動作を行わせて検索コードとなる特徴量を得ておく。以下、この既知の物体の画像データに基づく検索コードを、既知コードと呼ぶ。本実施の形態では、この既知コードを撮像されている物体の名称（既知の物体を特定する情報）に関連付けて記憶部１２に格納して保持しておく。
【００８０】
そしてこの例ではさらに、制御部１１は、特徴量演算部３３が処理の対象とする画像データ（処理対象画像データ）に対し、当該処理対象画像データのうち予め定めた方法で決定される部分領域を少なくとも一つ抽出する。この部分領域は例えば画像データを３２×３２のマトリクスに分割したそれぞれとしてもよいし、画像データの４つの隅をそれぞれ含む、所定サイズの領域（この場合、各部分領域は互いに重なり合う部分が含まれてもよい）であってもよい。
【００８１】
制御部１１は、ここで抽出した部分領域ごとに当該部分領域内の特徴量（部分特徴量と呼ぶ）を特徴量演算部３３に演算させる。そして記憶部１２に格納した既知コードと当該部分特徴量とを比較し、当該部分特徴量との類似度が予め定めたしきい値を超える既知コードがあれば、当該既知コードに関連付けられた物体の名称の情報を取得する。
【００８２】
制御部１１は、各部分領域について得られた物体の名称の一覧、処理対象画像データに係る物体リストとして、処理対象画像データについて情報収集部３２から特徴量の記録が指示されているときには、情報収集部３２が出力する参照情報と、当該参照情報で特定されるアドレス等から情報収集部３２が取得して出力した画像データについて特徴量演算部３３が出力する特徴量とともに、さらにここで得た物体リストを関連付けて検索データベースに追加して記録する。なお、どの部分領域からも物体の名称が得られなかったときには、物体リストとして空のリストを記録する。
【００８３】
また制御部１１は、検索部３６の処理として、受け入れた画像データについて特徴量演算部３３が演算した検索対象特徴量を取得するとともに、当該受け入れた画像データに基づいて物体リストを生成する。この検索の対象となる物体リストを、以下検索対象リストと呼ぶ。
【００８４】
制御部１１は、ここで取得した検索対象特徴量に類似する検索コードを、検索データベースから検索し、類似度の高い順に、検索コードとともに参照情報に関連付けられている物体リストを取得し、検索対象リストと比較する。
【００８５】
そして制御部１１は、検索対象特徴量に類似する検索コード（検索対象特徴量との間で特徴量間の内積が予め定めたしきい値を超える検索コード）のそれぞれについて、当該検索コードに関連付けられている物体リストに含まれる物体の名称のうち、検索対象リストにも含まれる物体の名称の数をカウントした値ｎを検索コードに関連付けられている物体リストに含まれる物体の名称の数Ｎで除した値ｎ／Ｎを、対象一致度として求める。
【００８６】
制御部１１は、検索対象特徴量に類似する検索コードのうち、対象一致度が所定のしきい値を超える検索コードについて、検索対象特徴量に対する類似度の高い順に、所定の数以下の数だけ、当該検索コードに関連付けられた参照情報を取得して出力する。
【００８７】
本実施の形態のこの例によると、例えば自動車のタイヤが撮像されている画像データを検索の対象として入力したときに、タイヤと同様の円形である（分類パターンは一致する）が、タイヤとは異なる物体が含まれる画像データの参照情報が検索の結果として出力される機会を低減できる。
【００８８】
［変形例］
またここまでの説明では、処理の対象となるデータは画像データとしていたが本実施の形態はこれに限られず、文字列やその他のデータであってもよい。この場合も、機械学習により学習されたニューラルネットワークの中間層の重みの情報をデータパターンとして、処理の対象とするデータについて、当該データに含まれる各データパターンの数をカウントする。
【００８９】
そして、このデータパターンごとのカウント値を、所定の順（データパターンについて予め定められた順）に配列してヒストグラムを表すベクトル情報を生成し、このベクトル情報を特徴量（特徴ベクトル情報）として、所定の処理を実行することとしてもよい。
【００９０】
［色成分ごとの処理を行う変形例］
またここまでに説明した本実施の形態の情報処理装置１は、画像データを色成分ごとに分けて機械学習や検索の処理を行うこととしてもよい。
【００９１】
具体的に制御部１１は、機械学習の対象となる画像データの入力を受け入れると、この画像データを所定のサイズにリサイズし、さらに例えばＲＧＢの各成分の画像データ（以下、区別のため、成分画像データと呼ぶ）に分割する。ここで、画像データをＲ成分、Ｇ成分、Ｂ成分など、色成分ごとの成分画像データに分割する方法は、広く知られているので、詳しい説明を省略する。また、以下では、ＲＧＢに分解する例について説明するが、ＲＧＢの成分でなくても、ＨＳＶ（色相、彩度、明度）に分解してもよいし、その他の色空間の各成分に分解してもよい。
【００９２】
制御部１１は、色成分ごとのニューラルネットワークのモデルの情報を保持し、これらのニューラルネットワークを機械学習する。すなわち制御部１１は、分解して得られた成分画像データを、当該成分画像データの色成分に対応するニューラルネットワークの入力層に入力し、このニューラルネットワークの出力が目的のデータとなるように、当該目的のデータと出力との差に基づいて、ニューラルネットワーク内の入力層と中間層との間の重みの情報、及び中間層と出力層との間の重みの情報（複数の中間層が含まれる場合はさらに中間層の間の重みの情報）を設定する。
【００９３】
情報処理装置１は、複数の画像データのそれぞれの成分画像データに基づいて、各成分に対応するニューラルネットワークの機械学習を行った後、機械学習された各ニューラルネットワークの中間層の情報を抽出して出力する。既に述べたように、ここでの例では中間層の各ノードについて、当該ノードに入力される、あるいは当該ノードが出力する複数個の重みの情報を、所定のサイズに配列して基底画像データを生成し、このノードごとに得られる基底画像データを中間層の情報として出力することとなる。
【００９４】
本実施の形態のここでの例では、上記中間層の情報が色成分ごとに得られることとなるので、基底画像データも色成分ごとに得られることとなる。
【００９５】
そして検索の処理を行う情報処理装置１では、上述のようにして得られる、色成分ごとの（各色成分に対応する）基底画像データを保持する。そして検索データベースの生成処理と、検索データベースからの検索処理とを実行する。
【００９６】
まず検索データベースの生成処理を行う情報処理装置１は、予め定めた規則に基づいてウェブページをクローリングし、取得したウェブページにて提供されている画像データを処理対象画像データとする。
【００９７】
そして情報処理装置１は、処理の対象となる画像データ（基底画像データより縦横のサイズが大きいものとする）の入力を受けて、当該画像データ（処理対象画像データ）を色成分（基底画像データの各色成分と同じ色成分）に分解して、処理対象成分画像データを得る。
【００９８】
情報処理装置１は、色成分のそれぞれに対応して得られた処理対象成分画像データと、対応する色成分に係る複数の基底画像データのそれぞれとの類似度を演算する。本実施の形態の一例では、類似度の演算は、色成分ごとの処理対象成分画像データ内で、基底画像データと同じサイズのウィンドウをラスタスキャンしつつ、当該ウィンドウ内の部分画像を抽出し、当該処理対象成分画像データの色成分に対応する基底画像データと当該部分画像との相互相関を演算する等の広く知られた方法で、パターンマッチング等の処理を行って実行する。
【００９９】
ここでも部分画像を抽出するためのウィンドウは、縦あるいは横方向の少なくとも一方に重複を許してスキャンすることとしてよい。つまり、基底画像データとの相互層間等を演算する部分画像は、処理対象画像データから重複を許して抽出されたものであってよい。このように重複を許して抽出すると、基底画像データとの対比の対象となるパターンが縦あるいは横方向にシフトしていても検出可能となる。
【０１００】
情報処理装置１は、対応する色成分に係る基底画像データごとに、処理対象成分画像データ中に、当該基底画像データとの間の類似度が予め定めたしきい値を超える（基底画像データのパターンに一致するパターンを有する）部分画像がいくつ見いだされたかをカウントする。
【０１０１】
情報処理装置１は、色成分ごと、かつ、基底画像データごとの上記カウント値を得て、予め定めた各色成分の基底画像データの順に当該カウント値を配列したヒストグラムの情報（ベクトル情報）を、処理対象画像データの特徴量として、処理の対象として入力された画像データの取得元となったＵＲＬ（参照情報）に関連付けて、検索データベースとして蓄積して格納する。
【０１０２】
情報処理装置１のこの処理により、図４に例示したものと同様に、画像データの参照情報（ＵＲＬ）と、当該画像データに含まれる基底画像データである各画像パターンの数を列挙したベクトル情報（検索コード）とが関連付けて検索データベースとして、記憶部１２に格納された状態となる。
【０１０３】
この例でも情報処理装置１は、この検索データベースの生成の処理を所定のタイミングごとに繰り返して実行してもよい。
【０１０４】
またこの例において検索処理を実行する情報処理装置１は、検索の対象となる画像データの入力をユーザから受け入れて次のように動作する。
【０１０５】
情報処理装置１は、検索の対象となる画像データを、機械学習に用いた色空間の成分と同じ色成分の画像データ（例えばＲＧＢの各成分の成分画像データ）に分割する。
【０１０６】
そして情報処理装置１は、分割して得られた成分画像データと、対応する色成分に係る複数の基底画像データのそれぞれとの類似度を演算する。本実施の形態の一例では、類似度の演算は、成分画像データ内で、基底画像データと同じサイズのウィンドウをラスタスキャンしつつ、当該ウィンドウ内の部分画像を抽出し、当該成分画像データの色成分に対応する基底画像データと当該部分画像との相互相関を演算する等の広く知られた方法で、パターンマッチング等の処理を行って実行する。
【０１０７】
情報処理装置１は、対応する色成分に係る基底画像データごとに、成分画像データ中に、当該基底画像データとの間の類似度が予め定めたしきい値を超える（基底画像データのパターンに一致するパターンを有する）部分画像がいくつ見いだされたかをカウントする。
【０１０８】
情報処理装置１は、基底画像データごとの上記カウント値を得て、所定の基底画像データの順（検索コードと同じ順）に当該カウント値を配列したヒストグラムの情報（ベクトル情報）を、検索の対象となった画像データの特徴量（検索対象特徴量）とする。
【０１０９】
そして情報処理装置１は、この検索対象特徴量に類似する検索コードを、検索データベースから検索する。ここで特徴量間の類似度は正規化した（大きさを「１」とした）特徴量間（検索対象特徴量と検索コードとの間）の内積でよい。
【０１１０】
情報処理装置１は、検索データベースに格納された検索コードの各々と、検索対象特徴量との間の類似度を演算し、類似度の高い検索コードの順に所定の数だけ、当該検索コードに関連付けられている参照情報を取得する。そして情報処理装置１は、当該取得した参照情報のリスト（関連付けられた検索コードと検索対象特徴量との類似度が高い順に参照情報を配列したリスト）を、入力された画像データの検索結果として出力する。
【符号の説明】
【０１１１】
１  情報処理装置、１１  制御部、１２  記憶部、１３  操作部、１４  表示部、１５  通信部、２０  機械学習処理部、２１  受入部、２２  機械学習部、２３  中間層抽出部、３０  検索処理部、３１  パターン保持部、３２  情報収集部、３３  特徴量演算部、３４  特徴量保持部、３５  受入部、３６  検索部、３７  情報出力部。
【図１】
2020091828.tif 000003
【図２】
2020091828.tif 000004
【図３】
2020091828.tif 000005
【図４】
2020091828.tif 000006