(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-08
(45)【発行日】2024-11-18
(54)【発明の名称】画像検索システム及び画像検索方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20241111BHJP
G06N 3/0464 20230101ALI20241111BHJP
G06F 16/583 20190101ALI20241111BHJP
【FI】
G06T7/00 350C
G06N3/0464
G06F16/583
(21)【出願番号】P 2023186817
(22)【出願日】2023-10-31
(62)【分割の表示】P 2020556362の分割
【原出願日】2019-11-06
【審査請求日】2023-11-29
(31)【優先権主張番号】P 2018212899
(32)【優先日】2018-11-13
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000153878
【氏名又は名称】株式会社半導体エネルギー研究所
(72)【発明者】
【氏名】秋元 健吾
(72)【発明者】
【氏名】福留 貴浩
(72)【発明者】
【氏名】林 健太郎
【審査官】橘 高志
(56)【参考文献】
【文献】特開2018-124740(JP,A)
【文献】特開2017-062781(JP,A)
【文献】特開2016-018444(JP,A)
【文献】国際公開第2018/179338(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 3/0464
G06F 16/583
(57)【特許請求の範囲】
【請求項1】
処理部を有し、
前記処理部は、ニューラルネットワークを有し、
前記ニューラルネットワークは、畳み込み層と、プーリング層と、を有し、
前記処理部は、画像データと、複数のデータベース画像データと、が前記処理部に入力された場合に、前記画像データと、前記データベース画像データと、を比較する機能を有し、
前記処理部は、前記画像データに対する一致度が高い領域を含む前記データベース画像データを、抽出画像データとして抽出する機能を有し、
前記処理部は、前記抽出画像データから、前記画像データに対する一致度が高い領域のデータを、部分画像データとして抽出する機能を有し、
前記プーリング層は、前記画像データが前記ニューラルネットワークに入力された場合に、前記画像データに対応する第1の出力値を出力する機能を有し、
前記プーリング層は、前記部分画像データが前記ニューラルネットワークに入力された場合に、前記部分画像データに対応する第2の出力値を出力する機能を有し、
前記処理部は、前記第1の出力値と、前記第2の出力値と、を比較する機能を有し、
前記処理部は、前記部分画像データの、前記画像データに対する類似度を算出する機能を有する画像検索システム。
【請求項2】
請求項1において、
前記画像データが有する画素データの数は、前記データベース画像データが有する画素データの数以下である画像検索システム。
【請求項3】
請求項1において、
前記画像データと、前記データベース画像データと、の比較は、領域ベースマッチングにより行う画像検索システム。
【請求項4】
請求項1において、
前記画像データは、複数の画素データを有し、
前記処理部は、入力された前記画像データを基に、前記画素データの数が異なる複数の画像データを生成する機能を有する画像検索システム。
【請求項5】
請求項1において、
前記ニューラルネットワークは、前記データベース画像データを用いて学習を行う機能を有する画像検索システム。
【請求項6】
画像データを、複数のデータベース画像データと比較し、
前記画像データに対する一致度が高い領域を含む前記データベース画像データを、抽出画像データとして抽出し、
前記抽出画像データから、前記画像データに対する一致度が高い領域のデータを、部分画像データとして抽出し、
畳み込み層と、プーリング層と、を有するニューラルネットワークに前記画像データを入力することにより、前記プーリング層から出力される第1の出力値を取得し、
前記ニューラルネットワークに前記部分画像データを入力することにより、前記プーリング層から出力される第2の出力値を取得し、
前記第1の出力値と、前記第2の出力値と、を比較し、
前記部分画像データの、前記画像データに対する類似度を算出する画像検索方法。
【請求項7】
請求項6において、
前記画像データが有する画素データの数は、前記データベース画像データが有する画素データの数以下である画像検索方法。
【請求項8】
請求項6において、
前記画像データを、前記データベース画像データと領域ベースマッチングにより比較する画像検索方法。
【請求項9】
請求項6において、
前記画像データは、複数の画素データを有し、
前記画像データを基にして、設けられる前記画素データの数が異なる複数の画像データを生成した後、前記画像データを、前記複数のデータベース画像データと比較する画像検索方法。
【請求項10】
請求項6において、
前記ニューラルネットワークは、前記データベース画像データを用いて学習を行う画像検索方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の一態様は、画像検索システム、及び画像検索方法に関する。
【0002】
なお、本発明の一態様は、上記の技術分野に限定されない。本発明の一態様の技術分野としては、半導体装置、表示装置、発光装置、蓄電装置、記憶装置、電子機器、照明装置、それらの駆動方法、又はそれらの製造方法を一例として挙げることができる。
【背景技術】
【0003】
大量の画像が記憶されているデータベースの中から、検索対象の画像(クエリ画像)と類似する画像を一部に含む画像を探し出すために、テンプレートマッチングという方法が用いられている。例えば、特許文献1には、照合用画像の一部と、参照用画像と、に対してテンプレートマッチングを行うことにより、双方の画像の類似度を算出するという発明が記載されている。
【0004】
また、様々な用途において、人工知能の活用が検討されている。特に、ニューラルネットワーク等を利用することで、従来のノイマン型コンピュータよりも高性能なコンピュータが実現できると期待されており、近年、電子回路上でニューラルネットワークを構築する種々の研究が進められている。
【0005】
例えば、特許文献2には、畳み込みニューラルネットワークの畳み込み演算のための行列データを、しきい値を基準に前半部分と後半部分に2分割することにより、演算量を削減する発明が開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2005-284731号公報
【文献】特開2018-160086号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
テンプレートマッチングの方法として、特徴ベースマッチング、及び領域ベースマッチングが挙げられる。特徴ベースマッチングでは、画像から特徴点を抽出して特徴量を計算することにより画像間のマッチングを行う。領域ベースマッチングでは、クエリ画像と、テンプレートとなる画像(テンプレート画像)と、を逐一比較することにより、クエリ画像と類似する画像を一部に含むテンプレート画像を抽出する。
【0008】
しかしながら、特徴ベースマッチングでは、特徴点の抽出に時間がかかる場合がある。また、領域ベースマッチングでは、特に画像の変形に弱く、画像検索を高い精度で行えない場合がある。
【0009】
そこで、本発明の一態様は、高い精度で画像を検索できる、画像検索システムを提供することを課題の一つとする。又は、本発明の一態様は、画像検索を短時間で行える、画像検索システムを提供することを課題の一つとする。又は、本発明の一態様は、新規な画像検索システムを提供することを課題の一つとする。
【0010】
又は、本発明の一態様は、高い精度で画像を検索できる、画像検索方法を提供することを課題の一つとする。又は、本発明の一態様は、画像検索を短時間で行える、画像検索方法を提供することを課題の一つとする。又は、本発明の一態様は、新規な画像検索方法を提供することを課題の一つとする。
【0011】
なお、これらの課題の記載は、他の課題の存在を妨げるものではない。本発明の一態様は、必ずしも、これらの課題の全てを解決する必要はないものとする。明細書、図面、請求項の記載から、これら以外の課題を抽出することが可能である。
【課題を解決するための手段】
【0012】
本発明の一態様は、処理部を有し、処理部は、ニューラルネットワークを有し、ニューラルネットワークは、中間層を有し、中間層は、第1の画像データがニューラルネットワークに入力された場合に、当該第1の画像データに対応する第1の出力値を出力する機能を有し、中間層は、第2の画像データがニューラルネットワークに入力された場合に、当該第2の画像データに対応する第2の出力値を出力する機能を有し、処理部は、第1の出力値と、第2の出力値と、を比較する機能を有する画像検索システムである。
【0013】
本発明の一態様は、処理部を有し、処理部は、ニューラルネットワークを有し、ニューラルネットワークは、畳み込み層と、プーリング層と、を有し、プーリング層は、第1の画像データがニューラルネットワークに入力された場合に、当該第1の画像データに対応する第1の出力値を出力する機能を有し、プーリング層は、第2の画像データがニューラルネットワークに入力された場合に、当該第2の画像データに対応する第2の出力値を出力する機能を有し、処理部は、第1の出力値と、第2の出力値と、を比較する機能を有する画像検索システムである。
【0014】
本発明の一態様は、処理部を有し、処理部は、ニューラルネットワークを有し、ニューラルネットワークは、中間層を有し、処理部は、画像データと、複数のデータベース画像データと、が当該処理部に入力された場合に、画像データと、データベース画像データと、を比較する機能を有し、処理部は、画像データに対する一致度が高い領域を含むデータベース画像データを、抽出画像データとして抽出する機能を有し、中間層は、画像データがニューラルネットワークに入力された場合に、当該画像データに対応する第1の出力値を出力する機能を有し、中間層は、抽出画像データがニューラルネットワークに入力された場合に、当該抽出画像データに対応する第2の出力値を出力する機能を有し、処理部は、第1の出力値と、第2の出力値と、を比較する機能を有する画像検索システムである。
【0015】
本発明の一態様は、処理部を有し、処理部は、ニューラルネットワークを有し、ニューラルネットワークは、畳み込み層と、中間層と、を有し、処理部は、画像データと、複数のデータベース画像データと、が当該処理部に入力された場合に、画像データと、データベース画像データと、を比較する機能を有し、処理部は、画像データに対する一致度が高い領域を含むデータベース画像データを、抽出画像データとして抽出する機能を有し、プーリング層は、画像データがニューラルネットワークに入力された場合に、当該画像データに対応する第1の出力値を出力する機能を有し、プーリング層は、抽出画像データがニューラルネットワークに入力された場合に、当該抽出画像データに対応する第2の出力値を出力する機能を有し、処理部は、第1の出力値と、第2の出力値と、を比較する機能を有する画像検索システムである。
【0016】
本発明の一態様は、処理部を有し、処理部は、ニューラルネットワークを有し、ニューラルネットワークは、中間層を有し、処理部は、画像データと、複数のデータベース画像データと、が当該処理部に入力された場合に、画像データと、データベース画像データと、を比較する機能を有し、処理部は、画像データに対する一致度が高い領域を含むデータベース画像データを、抽出画像データとして抽出する機能を有し、処理部は、抽出画像データから、画像データに対する一致度が高い領域のデータを、部分画像データとして抽出する機能を有し、中間層は、画像データがニューラルネットワークに入力された場合に、当該画像データに対応する第1の出力値を出力する機能を有し、中間層は、部分画像データがニューラルネットワークに入力された場合に、当該部分画像データに対応する第2の出力値を出力する機能を有し、処理部は、第1の出力値と、第2の出力値と、を比較する機能を有する画像検索システムである。
【0017】
本発明の一態様は、処理部を有し、処理部は、ニューラルネットワークを有し、ニューラルネットワークは、畳み込み層と、プーリング層と、を有し、処理部は、画像データと、複数のデータベース画像データと、が当該処理部に入力された場合に、画像データと、データベース画像データと、を比較する機能を有し、処理部は、画像データに対する一致度が高い領域を含むデータベース画像データを、抽出画像データとして抽出する機能を有し、処理部は、抽出画像データから、画像データに対する一致度が高い領域のデータを、部分画像データとして抽出する機能を有し、プーリング層は、画像データがニューラルネットワークに入力された場合に、当該画像データに対応する第1の出力値を出力する機能を有し、プーリング層は、部分画像データがニューラルネットワークに入力された場合に、当該部分画像データに対応する第2の出力値を出力する機能を有し、処理部は、第1の出力値と、第2の出力値と、を比較する機能を有する画像検索システムである。
【0018】
画像データが有する画素データの数は、データベース画像データが有する画素データの数以下であってもよい。
【0019】
画像データと、データベース画像データと、の比較は、領域ベースマッチングにより行ってもよい。
【0020】
画像データは、複数の画素データを有し、処理部は、入力された画像データを基に、設けられる画素データの数が異なる複数の画像データを生成する機能を有してもよい。
【0021】
ニューラルネットワークは、データベース画像データを用いて学習を行う機能を有してもよい。
【0022】
本発明の一態様は、中間層を有するニューラルネットワークに第1の画像データを入力することにより、中間層から出力される第1の出力値を取得し、ニューラルネットワークに第2の画像データを入力することにより、中間層から出力される第2の出力値を取得し、第1の出力値と、第2の出力値と、を比較する画像検索方法である。
【0023】
本発明の一態様は、畳み込み層と、プーリング層と、を有するニューラルネットワークに第1の画像データを入力することにより、プーリング層から出力される第1の出力値を取得し、ニューラルネットワークに第2の画像データを入力することにより、プーリング層から出力される第2の出力値を取得し、第1の出力値と、第2の出力値と、を比較する画像検索方法である。
【0024】
本発明の一態様は、画像データを、複数のデータベース画像データと比較し、画像データに対する一致度が高い領域を含むデータベース画像データを、抽出画像データとして抽出し、中間層を有するニューラルネットワークに画像データを入力することにより、層から出力される第1の出力値を取得し、ニューラルネットワークに抽出画像データを入力することにより、中間層から出力される第2の出力値を取得し、第1の出力値と、第2の出力値と、を比較する画像検索方法である。
【0025】
本発明の一態様は、画像データを、複数のデータベース画像データと比較し、画像データに対する一致度が高い領域を含むデータベース画像データを、抽出画像データとして抽出し、畳み込み層と、プーリング層と、を有するニューラルネットワークに画像データを入力することにより、層から出力される第1の出力値を取得し、ニューラルネットワークに抽出画像データを入力することにより、プーリング層から出力される第2の出力値を取得し、第1の出力値と、第2の出力値と、を比較する画像検索方法である。
【0026】
本発明の一態様は、画像データを、複数のデータベース画像データと比較し、画像データに対する一致度が高い領域を含むデータベース画像データを、抽出画像データとして抽出し、抽出画像データから、画像データに対する一致度が高い領域のデータを、部分画像データとして抽出し、中間層を有するニューラルネットワークに画像データを入力することにより、中間層から出力される第1の出力値を取得し、ニューラルネットワークに部分画像データを入力することにより、中間層から出力される第2の出力値を取得し、第1の出力値と、第2の出力値と、を比較する画像検索方法である。
【0027】
本発明の一態様は、画像データを、複数のデータベース画像データと比較し、画像データに対する一致度が高い領域を含むデータベース画像データを、抽出画像データとして抽出し、抽出画像データから、画像データに対する一致度が高い領域のデータを、部分画像データとして抽出し、畳み込み層と、プーリング層と、を有するニューラルネットワークに画像データを入力することにより、プーリング層から出力される第1の出力値を取得し、ニューラルネットワークに部分画像データを入力することにより、プーリング層から出力される第2の出力値を取得し、第1の出力値と、第2の出力値と、を比較する画像検索方法である。
【0028】
画像データが有する画素データの数は、データベース画像データが有する画素データの数以下であってもよい。
【0029】
画像データを、データベース画像データと領域ベースマッチングにより比較してもよい。
【0030】
画像データは、複数の画素データを有し、画像データを基にして、設けられる画素データの数が異なる複数の画像データを生成した後、当該画像データを、データベース画像データと比較してもよい。
【0031】
ニューラルネットワークは、データベース画像データを用いて学習を行ってもよい。
【発明の効果】
【0032】
本発明の一態様により、高い精度で画像を検索できる、画像検索システムを提供できる。又は、本発明の一態様により、画像検索を短時間で行える、画像検索システムを提供できる。又は、本発明の一態様により、新規な画像検索システムを提供できる。
【0033】
又は、本発明の一態様により、高い精度で画像を検索できる、画像検索方法を提供できる。又は、本発明の一態様により、画像検索を短時間で行える、画像検索方法を提供できる。又は、本発明の一態様により、新規な画像検索方法を提供できる。
【0034】
なお、これらの効果の記載は、他の効果の存在を妨げるものではない。本発明の一態様は、必ずしも、これらの効果の全てを有する必要はない。明細書、図面、請求項の記載から、これら以外の効果を抽出することが可能である。
【図面の簡単な説明】
【0035】
【
図1】
図1は、画像検索システムの構成例を示すブロック図である。
【
図2】
図2は、画像検索方法の一例を示すフローチャートである。
【
図4】
図4は、画像検索方法の一例を示す図である。
【
図9】
図9は、画像検索方法の一例を示す図である。
【
図10】
図10は、ニューラルネットワークの構成例を示す図である。
【
図12】
図12は、画像検索方法の一例を示すフローチャートである。
【
図16】
図16は、実施例に係るニューラルネットワークの構成を示す図である。
【発明を実施するための形態】
【0036】
実施の形態について、図面を用いて詳細に説明する。但し、本発明は以下の説明に限定されず、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。
【0037】
なお、以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、その繰り返しの説明は省略する。また、同様の機能を指す場合には、ハッチパターンを同じくする場合がある。
【0038】
(実施の形態)
本実施の形態では、本発明の一態様の画像検索システム、及び画像検索方法について、図面を用いて説明する。
【0039】
本発明の一態様の画像検索システムは、処理部と、データベースと、を有する。処理部はニューラルネットワークを有し、当該ニューラルネットワークは、ニューロンが設けられた層を有する。
【0040】
本明細書等において、ニューラルネットワークとは、生物の神経回路網を模し、学習によってニューロン同士の結合強度を決定し、問題解決能力を持たせるモデル全般を指す。
【0041】
本明細書等において、ニューラルネットワークについて述べる際に、既にある情報からニューロンとニューロンの結合強度(重み係数ともいう)を決定することを「学習」という。
【0042】
また、本明細書等において、学習によって得られた結合強度を用いてニューラルネットワークを構成し、そこから新たな結論を導くことを「推論」という。
【0043】
処理部には、クエリ画像を表すクエリ画像データと、データベースに記憶されているデータベース画像データとが入力される。本発明の一態様の画像検索システムの使用者は、クエリ画像を処理部に入力する。ここで、クエリ画像の画素数は、例えばデータベース画像の画素数以下とすることができる。本発明の一態様の画像検索システムは、クエリ画像と類似する画像を含むデータベース画像を検索する機能を有する。
【0044】
処理部は、例えば1個のクエリ画像データと、複数のデータベース画像データとを比較する機能を有する。具体的には、まず、クエリ画像データと、データベース画像データと、を領域ベースマッチング等により比較することにより、各データベース画像データの各領域について、クエリ画像データに対する一致度を算出する。次に、一致度が高い領域を含むデータベース画像データを、抽出画像データとして抽出する。その後、抽出画像データから、クエリ画像データに対する一致度が高い領域のデータである部分画像データを抽出する。
【0045】
本明細書等において、1個の画像データとは、例えば1枚の画像に対応する画像データを示す。
【0046】
次に、クエリ画像データと部分画像データとを、処理部が有するニューラルネットワークに入力する。これにより、ニューラルネットワークが有する層から出力される出力値を、処理部が取得することができる。ニューラルネットワークが有する層から出力される出力値は、例えばニューラルネットワークに入力した画像データの特徴量を示す。
【0047】
その後、部分画像データを入力した場合の上記出力値を、それぞれの部分画像データについて、クエリ画像データを入力した場合の上記出力値と比較する。これにより、それぞれの部分画像データについて、クエリ画像データに対する類似度を数値として算出することができる。よって、それぞれの抽出画像データについて、クエリ画像データに対する類似度を数値として算出することができる。
【0048】
以上、本発明の一態様の画像検索システムでは、ニューラルネットワークが有する層から出力される出力値を比較することにより、高い精度で短時間に上記類似度を算出することができる。よって、例えばクエリ画像とデータベース画像とを領域ベースマッチングのみにより比較する場合より、クエリ画像と類似する画像を一部に含むデータベース画像を、高い精度で検索することができる。また、例えばクエリ画像とデータベース画像とを特徴ベースマッチングのみにより比較する場合より、クエリ画像と類似する画像を一部に含むデータベース画像を、短時間で検索することができる。さらに、上記類似度を数値として算出することができることから、例えばそれぞれのデータベース画像において、クエリ画像に対する一致度の順位付けを行うことができる。
【0049】
<1.画像検索システム>
図1は、画像検索システム10の構成例を示すブロック図である。画像検索システム10は、少なくとも、処理部13を有する。
図1に示す画像検索システム10は、さらに、入力部11、伝送路12、記憶部15、データベース17、及び出力部19を有する。
【0050】
[入力部11]
入力部11には、画像検索システム10の外部から画像データ等が供給される。入力部11に供給された画像データ等は、伝送路12を介して、処理部13、記憶部15、又はデータベース17に供給される。
【0051】
[伝送路12]
伝送路12は、画像データ等を伝達する機能を有する。入力部11、処理部13、記憶部15、データベース17、及び出力部19の間の情報の送受信は、伝送路12を介して行うことができる。
【0052】
[処理部13]
処理部13は、入力部11、記憶部15、データベース17等から供給された画像データ等を用いて、演算、推論等を行う機能を有する。処理部13はニューラルネットワークを有し、当該ニューラルネットワークを用いて演算、推論等を行うことができる。また、処理部13はニューラルネットワークを用いない演算等を行うことができる。処理部13は、演算結果、推論結果等を、記憶部15、データベース17、出力部19等に供給することができる。
【0053】
処理部13には、チャネル形成領域に金属酸化物を有するトランジスタを用いることが好ましい。当該トランジスタはオフ電流が極めて低いため、当該トランジスタを記憶素子として機能する容量素子に流入した電荷(データ)を保持するためのスイッチとして用いることで、データの保持期間を長期にわたり確保することができる。この特性を、処理部13が有するレジスタ及びキャッシュメモリのうち少なくとも一方に用いることで、必要なときだけ処理部13を動作させ、他の場合には直前の処理の情報を当該記憶素子に待避させることにより処理部13をオフにすることができる。すなわち、ノーマリーオフコンピューティングが可能となり、画像検索システムの低消費電力化を図ることができる。
【0054】
本明細書等において、金属酸化物(metal oxide)とは、広い意味での金属の酸化物である。金属酸化物は、酸化物絶縁体、酸化物導電体(透明酸化物導電体を含む)、酸化物半導体(Oxide Semiconductor又は単にOSともいう)等に分類される。例えば、トランジスタの半導体層に金属酸化物を用いた場合、当該金属酸化物を酸化物半導体と呼称する場合がある。つまり、金属酸化物が増幅作用、整流作用、及びスイッチング作用の少なくとも1つを有する場合、当該金属酸化物を、金属酸化物半導体(metal oxide semiconductor)、略してOSということができる。
【0055】
また、本明細書等において、チャネル形成領域に酸化物半導体又は金属酸化物を用いたトランジスタをOxide Semiconductorトランジスタ、あるいはOSトランジスタという。
【0056】
チャネル形成領域が有する金属酸化物はインジウム(In)を含むことが好ましい。チャネル形成領域が有する金属酸化物がインジウムを含む金属酸化物の場合、OSトランジスタのキャリア移動度(電子移動度)が高くなる。また、チャネル形成領域が有する金属酸化物は、元素Mを含む酸化物半導体であると好ましい。元素Mは、好ましくは、アルミニウム(Al)、ガリウム(Ga)又はスズ(Sn)等とする。そのほかの元素Mに適用可能な元素としては、ホウ素(B)、シリコン(Si)、チタン(Ti)、鉄(Fe)、ニッケル(Ni)、ゲルマニウム(Ge)、イットリウム(Y)、ジルコニウム(Zr)、モリブデン(Mo)、ランタン(La)、セリウム(Ce)、ネオジム(Nd)、ハフニウム(Hf)、タンタル(Ta)、タングステン(W)等がある。ただし、元素Mとして、前述の元素を複数組み合わせても構わない場合がある。元素Mは、例えば、酸素との結合エネルギーが高い元素である。例えば、酸素との結合エネルギーがインジウムよりも高い元素である。また、チャネル形成領域が有する金属酸化物は、亜鉛(Zn)を含む金属酸化物であると好ましい。亜鉛を含む金属酸化物は結晶化しやすくなる場合がある。
【0057】
チャネル形成領域が有する金属酸化物は、インジウムを含む金属酸化物に限定されない。半導体層は、例えば、亜鉛スズ酸化物、ガリウムスズ酸化物等の、インジウムを含まず、亜鉛を含む金属酸化物、ガリウムを含む金属酸化物、スズを含む金属酸化物等であっても構わない。
【0058】
処理部13は、例えば、演算回路、又は中央演算装置(CPU:Central Processing Unit)等を有する。
【0059】
処理部13は、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)等のマイクロプロセッサを有していてもよい。マイクロプロセッサは、FPGA(Field Programmable Gate Array)、FPAA(Field Programmable Analog Array)等のPLD(Programmable Logic Device)によって実現された構成であってもよい。処理部13は、プロセッサにより種々のプログラムからの命令を解釈し実行することで、各種のデータ処理及びプログラム制御を行うことができる。プロセッサにより実行しうるプログラムは、プロセッサが有するメモリ領域及び記憶部15のうち少なくとも一方に格納される。
【0060】
処理部13はメインメモリを有していてもよい。メインメモリは、RAM(Random Access Memory)等の揮発性メモリ、及びROM(Read Only Memory)等の不揮発性メモリのうち少なくとも一方を有する。
【0061】
RAMとしては、例えばDRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等が用いられ、処理部13の作業空間として仮想的にメモリ空間が割り当てられ利用される。記憶部15に格納されたオペレーティングシステム、アプリケーションプログラム、プログラムモジュール、プログラムデータ、及びルックアップテーブル等は、実行のためにRAMにロードされる。RAMにロードされたこれらのデータ、プログラム、及びプログラムモジュールは、それぞれ、処理部13に直接アクセスされ、操作される。
【0062】
ROMには、書き換えを必要としない、BIOS(Basic Input/Output System)及びファームウェア等を格納することができる。ROMとしては、マスクROM、OTPROM(One Time Programmable Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)等が挙げられる。EPROMとしては、紫外線照射により記憶データの消去を可能とするUV-EPROM(Ultra-Violet Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュメモリ等が挙げられる。
【0063】
[記憶部15]
記憶部15は、処理部13が実行するプログラムを記憶する機能を有する。また、記憶部15は、処理部13が生成した演算結果及び推論結果、並びに、入力部11に入力された画像データ等を記憶する機能を有していてもよい。
【0064】
記憶部15は、揮発性メモリ及び不揮発性メモリのうち少なくとも一方を有する。記憶部15は、例えば、DRAM、SRAM等の揮発性メモリを有していてもよい。記憶部15は、例えば、ReRAM(Resistive Random Access Memory、抵抗変化型メモリともいう)、PRAM(Phase change Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory、磁気抵抗型メモリともいう)、又はフラッシュメモリ等の不揮発性メモリを有していてもよい。また、記憶部15は、ハードディスクドライブ(Hard Disc Drive:HDD)及びソリッドステートドライブ(Solid State Drive:SSD)等の記録メディアドライブを有していてもよい。
【0065】
[データベース17]
データベース17は、画像データを記憶する機能を有する。また、データベース17は、処理部13が生成した演算結果及び推論結果、並びに、入力部11に入力された画像データ等を記憶する機能を有していてもよい。なお、記憶部15及びデータベース17は互いに分離されていなくてもよい。例えば、画像検索システム10は、記憶部15及びデータベース17の双方の機能を有する記憶ユニットを有していてもよい。
【0066】
本明細書等において、データベース等に記憶されている画像データをデータベース画像データという。また、データベース画像データに対応する画像をデータベース画像という。
【0067】
[出力部19]
出力部19は、画像検索システム10の外部に情報を供給する機能を有する。例えば、処理部13における演算結果又は推論結果等を外部に供給することができる。
【0068】
<2.画像検索方法-1>
図2は、画像検索システム10を用いた画像検索方法の一例を示すフローチャートである。
【0069】
[ステップS01]
まず、処理部13に、画像データGDとデータベース画像データGDDBとが入力される。
【0070】
画像データGDは、画像検索システム10の外部から入力部11に入力される。その後、画像データGDは、入力部11から、伝送路12を介して処理部13に供給される。又は、画像データGDは、伝送路12を介して記憶部15又はデータベース17に記憶され、記憶部15又はデータベース17から、伝送路12を介して処理部13に供給されてもよい。
【0071】
データベース画像データGDDBは、データベース17から、伝送路12を介して処理部13に供給される。又は、データベース画像データGDDBは、記憶部15から、伝送路12を介して処理部13に供給されてもよい。
【0072】
ここで、画像データGDは、例えばクエリ画像データということができる。画像データGDに対応する画像の画素数は、データベース画像の画素数以下とすることができる。つまり、クエリ画像の画素数は、データベース画像の画素数以下とすることができる。画像検索システム10は、画像データGDに対応する画像と類似する画像を一部に含むデータベース画像を検索することができる。つまり、画像検索システム10は、例えばクエリ画像と類似する画像を一部に含むデータベース画像を検索することができる。
【0073】
画像データGD及びデータベース画像データGDDBは、知的財産の情報が有する図面を表すデータとすることができる。ここで、知的財産の情報としては、例えば特許文献(公開特許公報、特許公報など)、実用新案公報、意匠公報、及び論文などの刊行物が挙げられる。国内で発行された刊行物に限られず、世界各国で発行された刊行物を、知的財産の情報として用いることができる。
【0074】
知的財産の情報は、刊行物に限られない。例えば、画像検索システムの使用者又は使用団体が独自に有する画像ファイルなどの各種ファイルも、画像データGD又はデータベース画像データGDDBとして用いることができる。
【0075】
さらに、知的財産の情報としては、発明、考案又は意匠を説明する図面等が挙げられる。これらは、画像データGD及びデータベース画像データGDDBのいずれにも好適である。
【0076】
画像データGDは、例えば、出願前の発明、考案又は意匠を説明する図面に対応するデータとすることができる。
【0077】
データベース画像データGDDBは、例えば、特定の出願人の特許文献に記載されている図面を表すデータ、又は特定の技術分野の特許文献に記載されている図面を表すデータを有することができる。
【0078】
画像検索システム10を用いることにより、例えば出願前の発明と類似する特許文献、論文、又は工業製品を検索することができる。これにより、出願前の発明に係る先行技術調査をすることができる。関連する先行技術を把握し再検討することで、発明を強化し、他社が回避困難な強い特許になる発明とすることができる。
【0079】
また、画像検索システム10を用いることにより、例えば発売前の工業製品と類似する特許文献、論文、又は工業製品を検索することができる。データベース画像データGDDBが自社の特許文献に記載されている画像に対応するデータを有する場合、発売前の工業製品に係る技術が社内で十分に特許出願できているかを確認することができる。又は、データベース画像データGDDBが他社の特許文献に記載されている画像に対応するデータを有する場合、発売前の工業製品が他社の知的財産権を侵害していないかを確認することができる。関連する先行技術を把握し再検討することで、新たな発明を発掘し、自社の事業に貢献する強い特許になる発明とすることができる。なお、発売前の工業製品に限らず、発売後の工業製品について、検索してもよい。
【0080】
また、例えば、画像検索システム10を用いて、特定の特許と類似する特許文献、論文、又は工業製品を検索することができる。特に、当該特許の出願日を基準に調べることで、当該特許が無効理由を含まないか、簡便かつ高い精度で調査することができる。
【0081】
[ステップS02]
次に、処理部13が、画像データGDとデータベース画像データGDDBとを比較し、画像データGDに対する一致度が高い領域を含むデータベース画像データGDDBを抽出する。ここで、抽出したデータベース画像データGDDBを、抽出画像データGDExとする。画像データGDとデータベース画像データGDDBとの比較は、例えば領域ベースマッチングにより行うことができる。
【0082】
ステップS02の動作の一例について、
図3乃至
図5を用いて詳細に説明する。ステップS02では、
図3Aに示すように、画像データGDをn個(nは1以上の整数)のデータベース画像データGD
DBのそれぞれと比較する。ここで、nは、データベース17に記憶されているデータベース画像データGD
DBの数と同数でもよいし、それより少なくてもよい。また、nは、データベース17に記憶されているデータベース画像データGD
DBの数よりも多くてもよい。この場合は、データベース17に記憶されているデータベース画像データGD
DBの他に、記憶部15に記憶されている画像データ、及び/又は画像検索システム10の外部から入力部11を介して処理部13に入力された画像データと、画像データGDとを比較する。なお、nがデータベース画像データGD
DBの数以下であっても、記憶部15に記憶されている画像データ、及び/又は画像検索システム10の外部から入力部11を介して処理部13に入力された画像データと、画像データGDとを比較してもよい。
【0083】
nが小さい場合、ステップS02の動作を短時間で行うことができる。一方、nが大きい場合、画像データGDに対する一致度が高い領域を含むデータベース画像データGDDBの抽出を高い精度で行うことができる。
【0084】
本明細書等において、複数の要素を区別するために、符号の後に[1]、[2]等を記載する場合がある。例えば
図3Aでは、データベース画像データGD
DB[1]、データベース画像データGD
DB[2]、データベース画像データGD
DB[n]と記載して、n個のデータベース画像データGD
DBを区別している。
【0085】
図3Bは、画像データGDと、データベース画像データGD
DBとを領域ベースマッチングにより比較する場合の手順について説明する図である。ここで、画像データGDに対応する画像の画素数は2×2、データベース画像データGD
DBに対応する画像の画素数は4×4とする。つまり、画像データGDは2×2の画素データを有し、データベース画像データGD
DBは4×4の画素データを有するとする。
【0086】
図3Bにおいて、画像データGDが有する2×2の画素データを、それぞれ画素データd11、画素データd12、画素データd21、画素データd22とする。例えば、画像データGDにおいて、1行1列目の画素に対応する画素データを画素データd11、1行2列目の画素に対応する画素データを画素データd12、2行1列目の画素に対応する画素データを画素データd21、2行2列目の画素に対応する画素データを画素データd22とする。また、データベース画像データGD
DBが有する4×4の画素データを、それぞれ画素データddb11乃至画素データddb44とする。例えば、データベース画像データGD
DBにおいて、1行1列目の画素に対応する画素データを画素データddb11、1行4列目の画素に対応する画素データを画素データddb14、4行1列目の画素に対応する画素データを画素データddb41、4行4列目の画素に対応する画素データを画素データddb44とする。
【0087】
本明細書等において、画素データとは、画素毎の輝度を表すデータを示す。例えば、画素データが8ビットの場合、各画素の輝度を256階調で表すことができる。画像データは、画素データの集合を含むということができ、例えば画素と同数の画素データを含むことができる。例えば、画像の画素数が2×2である場合、当該画像を表す画像データは、2×2の画素データを含むということができる。
【0088】
まず、画素データd11、画素データd12、画素データd21、及び画素データd22と、画素データddb11、画素データddb12、画素データd21、及び画素データddb22と、を比較する。これにより、画像データGDと、データベース画像データGD
DBのうち画素データddb11、画素データddb12、画素データddb21、及び画素データddb22から構成される領域と、の一致度を算出することができる。なお、
図3Bでは、データベース画像データGD
DBが有する画素データのうち、画像データGDと比較される画素データを、比較データ領域21として点線で囲って示している。
【0089】
次に、比較データ領域21をデータベース画像データGDDBが有する画素データに対して1列分移動させ、同様に画素データを比較し、一致度を算出する。具体的には、画素データd11、画素データd12、画素データd21、及び画素データd22と、画素データddb12、画素データddb13、画素データddb22、及び画素データddb23と、を比較する。これにより、画像データGDと、データベース画像データGDDBのうち画素データddb12、画素データddb13、画素データddb22、及び画素データddb23から構成される領域と、の一致度を算出することができる。
【0090】
その後も、比較データ領域21をデータベース画像データGDDBが有する画素データに対して1列分移動させ、同様に画素データを比較し、一致度を算出する。具体的には、画素データd11、画素データd12、画素データd21、及び画素データd22と、画素データddb13、画素データddb14、画素データddb23、及び画素データddb24と、を比較する。これにより、画像データGDと、データベース画像データGDDBのうち画素データddb13、画素データddb14、画素データddb23、及び画素データddb24から構成される領域と、の一致度を算出することができる。
【0091】
次に、比較データ領域21をデータベース画像データGDDBが有する画素データに対して1行分移動させ、データベース画像データGDDBが有する画素データのうち、2行目の画素データ、及び3行目の画素データと、画像データGDとを上記と同様に1列ごとに比較する。これにより、データベース画像データGDDBが有する、2行目及び3行目の画素データと、画像データGDとの一致度を上記と同様に1列ごとに算出することができる。
【0092】
その後、比較データ領域21をデータベース画像データGDDBが有する画素データに対して1行分移動させ、データベース画像データGDDBが有する画素データのうち、3行目の画素データ、及び4行目の画素データと、画像データGDとを上記と同様に1列ごとに比較する。これにより、データベース画像データGDDBが有する、3行目及び4行目の画素データと、画像データGDとの一致度を上記と同様に1列ごとに算出することができる。
【0093】
以上の動作を行った後、例えば最も高い一致度を、データベース画像データGDDBの画像データGDに対する一致度とする。以上をn個のデータベース画像データGDDBのそれぞれについて行う。その後、n個のデータベース画像データGDDBの中から、画像データGDとの一致度が高いデータベース画像データGDDBを、抽出画像データGDExとして抽出する。例えば一致度が高いデータベース画像データGDDBから順に、規定の数を抽出画像データGDExとして抽出してもよい。又は、例えば画像データGDとの一致度が規定値以上のデータベース画像データGDDBを、抽出画像データGDExとして抽出してもよい。
【0094】
また、データベース画像データGDDBの抽出を行わなくてもよい。これは、画像データGDとの比較を行ったデータベース画像データGDDBの全てを、抽出画像データGDExとすると言い換えることができる。
【0095】
図4は、データベース画像データGD
DBの抽出について説明する図である。
図4は、データベース画像データGD
DB[1]乃至データベース画像データGD
DB[3]から、1個の画像データを抽出画像データGD
Exとして抽出する場合を示している。
【0096】
図4に示す画像データGDに対応する画像には、例えばトランジスタの記号が含まれているものとする。また、
図4に示すデータベース画像データGD
DB[2]に対応する画像にはトランジスタの記号が含まれているが、データベース画像データGD
DB[1]に対応する画像、及びデータベース画像データGD
DB[3]に対応する画像にはトランジスタの記号が含まれていないものとする。この場合、データベース画像データGD
DB[2]の画像データGDに対する一致度は、データベース画像データGD
DB[1]及びデータベース画像データGD
DB[3]の画像データGDに対する一致度より高くなる。よって、データベース画像データGD
DB[2]を、抽出画像データGD
Exとして抽出することができる。
【0097】
なお、画像データGDとデータベース画像データGDDBの比較、及び一致度の算出は、SAD(Sum of Absolute Differences)、SSD(Sum of Squared Differences)、NCC(Normalized Cross Correlation)、ZNCC(Zero-mean Normalized Cross Correlation)、POC(Phase-Only Correlation)等により行うことができる。
【0098】
また、
図3Bでは比較データ領域21をデータベース画像データGD
DBが有する画素データに対して1列分、又は1行分ずつ移動させているが、本発明の一態様はこれに限らない。比較データ領域21をデータベース画像データGD
DBが有する画素データに対して2列分以上移動させてもよいし、2行分以上移動させてもよい。例えば、画素データd11、画素データd12、画素データd21、及び画素データd22と、画素データddb11、画素データddb12、画素データddb21、画素データddb22と、を比較した直後に、画素データd11、画素データd12、画素データd21、及び画素データd22と、画素データddb13、画素データddb14、画素データddb23、及び画素データddb24と、を比較してもよい。この場合、画素データd11、画素データd12、画素データd21、及び画素データd22と、画素データddb12、画素データddb13、画素データddb22、及び画素データddb23と、の比較は行わないこととなる。また、画素データd11、画素データd12、画素データd21、及び画素データd22と、画素データddb13、画素データddb14、画素データddb23、及び画素データddb24と、を比較した直後に、画素データd11、画素データd12、画素データd21、及び画素データd22と、画素データddb31、画素データddb32、画素データddb41、画素データddb42と、を比較してもよい。
【0099】
比較データ領域21の移動幅を大きくすることにより、画像データGDが有する画素データと、データベース画像データGDDBが有する画素データと、の比較演算の回数を減少させることができる。これにより、データベース画像データGDDBの画像データGDに対する一致度の算出を短時間で行うことができる。
【0100】
図3Aでは、1個の画像データGDを、n個のデータベース画像データGD
DBとそれぞれ比較する場合を示しているが、本発明の一態様はこれに限られない。
図5Aに示すように、処理部13に入力された画像データGDを基にして、画素データ数が異なる複数の画像データを生成してもよい。
図5Aは、処理部13に入力された画像データGDを基にして、それぞれ画素データ数が異なる画像データGD[1]、画像データGD[2]、及び画像データGD[3]を生成する場合を示している。
図5Aに示すように、画像データGD[1]に対応する画像の画素数と、画像データGD[2]に対応する画像の画素数と、画像データGD[3]に対応する画像の画素数と、はそれぞれ異なる。つまり、画像データGD[1]乃至画像データGD[3]に対応する画像は、処理部13に入力された画像データGDに対応する画像を拡大又は縮小したものであるということができる。
【0101】
複数の画像データGDを生成する場合、当該複数の画像データGDのそれぞれについて、データベース画像データGDDB[1]乃至データベース画像データGDDB[n]のそれぞれと比較する。これにより、データベース画像データGDDB[1]乃至データベース画像データGDDB[n]のそれぞれについて、複数の画像データGDのそれぞれに対する一致度を算出することができる。そして、例えば上記複数の画像データGDに対する一致度のうち最も高い一致度を、データベース画像データGDDBの、処理部13に入力された画像データGDに対する一致度とすることができる。
【0102】
例えば、
図5Aに示す場合では、画像データGD[1]をデータベース画像データGD
DB[1]乃至データベース画像データGD
DB[n]のそれぞれと比較し、画像データGD[2]をデータベース画像データGD
DB[1]乃至データベース画像データGD
DB[n]のそれぞれと比較し、画像データGD[3]をデータベース画像データGD
DB[1]乃至データベース画像データGD
DB[n]のそれぞれと比較する。これにより、データベース画像データGD
DB[1]乃至データベース画像データGD
DB[n]のそれぞれについて、画像データGD[1]に対する一致度、画像データGD[2]に対する一致度、及び画像データGD[3]に対する一致度を算出することができる。
【0103】
そして、例えば画像データGD[1]に対する一致度、画像データGD[2]に対する一致度、及び画像データGD[3]に対する一致度のうち最も高い一致度を、データベース画像データGDDBの、処理部13に入力された画像データGDに対する一致度とすることができる。例えば、データベース画像データGDDB[1]の画像データGD[1]に対する一致度、画像データGD[2]に対する一致度、及び画像データGD[3]に対する一致度のうち最も高い一致度を、データベース画像データGDDB[1]の、処理部13に入力された画像データGDに対する一致度とすることができる。
【0104】
画像データGDに対応する画像と、データベース画像データGD
DBに対応する画像と、に同一の要素が示されている場合であっても、両要素の大きさが異なる場合、当該データベース画像データGD
DBには、画像データGDに対する一致度が高い領域が含まれないと判断される可能性がある。
図5B1に示す場合では、画像データGDに対応する画像と、データベース画像データGD
DBに対応する画像と、の両方に、トランジスタの記号という同一の要素が示されている。しかし、画像データGDに対応する画像に示されているトランジスタの記号の大きさと、データベース画像データGD
DBに対応する画像に示されているトランジスタの記号の大きさとが異なっている。この場合、データベース画像データGD
DBの画像データGDに対する一致度が低いと判断される可能性がある。
【0105】
一方、
図5B2に示す場合では、画像データGDに対応する画像と、データベース画像データGD
DBに対応する画像と、の両方に、トランジスタの記号という同一の要素が示されており、さらに両要素の大きさも等しい。よって、データベース画像データGD
DBに、画像データGDに対する一致度が高い領域が含まれると処理部13が判断することができる。
【0106】
図5Aに示すように、画素データ数が異なる複数の画像データGDを生成することで、画像データGDに対応する画像に示されている要素の大きさを拡大、又は縮小することができる。よって、処理部13に入力された画像データGDに対応する画像と、データベース画像データGD
DBに対応する画像と、に同一の要素が異なる大きさで示されている場合であっても、両画像データの一致度を高いものとすることができる。例えば、処理部13に
図5B1に示す画像データGDが処理部13に入力された場合、当該画像データGDが有する画素データの数を異ならせて
図5B2に示す画像データGDを生成することにより、データベース画像データGD
DBの画像データGDに対する一致度を高いものとすることができる。以上により、データベース画像データGD
DBの、処理部13に入力された画像データGDに対する一致度を高い精度で算出することができる。
【0107】
[ステップS03]
次に、抽出画像データGD
Exから、画像データGDに対する一致度が高い領域のデータである部分画像データGD
partを処理部13が抽出する。例えば、
図3Bに示す方法により、データベース画像データGD
DBの各領域の画像データGDに対する一致度をそれぞれ算出した場合、一致度が最も高い領域を部分画像データGD
partとして抽出する。よって、部分画像データGD
partが有する画素データの数は、画像データGDが有する画素データの数と等しくすることができる。
【0108】
図6A、
図6Bは、ステップS03の動作の一例を示す図である。
図6A、
図6Bに示す抽出画像データGD
Ex[1]乃至抽出画像データGD
Ex[4]において、画像データGDに対する一致度が高い領域を、ハッチングを付して示している。
図6A、
図6Bに示すように、ハッチングを付した領域を抽出して、部分画像データGD
part[1]部分画像データGD
part[4]とすることができる。
図6A、
図6Bでは、抽出画像データGD
Ex[1]乃至抽出画像データGD
Ex[4]から抽出した画像データを、それぞれ部分画像データGD
part[1]乃至部分画像データGD
part[4]としている。
【0109】
図6Aは、
図3Aに示すように1個の画像データGDに対して、データベース画像データGD
DBとの比較を行った場合を示している。この場合、部分画像データGD
partに対応する画像の画素数は、全て等しくすることができる。
【0110】
図6Bは、
図5Aに示すように画素データの数が異なる複数の画像データGDに対して、データベース画像データGD
DBとの比較を行った場合を示している。この場合、部分画像データGD
partに対応する画像の画素数は、例えば一致度が最も高い画像データGDに対応する画像の画素数と等しくすることができる。よって、部分画像データGD
partが複数存在する場合、部分画像データGD
partに対応する画像の画素数が、部分画像データGD
partごとに異なる場合がある。
図6Bでは、部分画像データGD
part[1]乃至部分画像データGD
part[4]に対応する画像の画素数がそれぞれ異なる場合を示している。
【0111】
なお、部分画像データGDpartの抽出を行わなくてもよい。この場合は、部分画像データGDpartを適宜抽出画像データGDExと読み替えることで、以降の説明を適用することができる。又は、抽出画像データGDExの全体を部分画像データGDpartとすることができるということができる。例えば、画像データGDが有する画素データの数が、抽出画像データGDExが有する画素データの数と等しい場合は、部分画像データGDpartの抽出を行わなくても本発明の一態様の画像検索方法を実行することができる。また、画像データGDが有する画素データの数と、抽出画像データGDExが有する画素データの数とが異なる場合であっても、部分画像データGDpartの抽出を行わなくても本発明の一態様の画像検索方法を実行することができる。この場合、例えば画像データGD及び抽出画像データGDExの一方又は両方の画像データが有する画素データの数を増加又は減少させることにより、本発明の一態様の画像検索方法を実行することができる。
【0112】
[ステップS04]
次に、画像データGDと部分画像データGDpartとを、処理部13が有するニューラルネットワークに入力する。
【0113】
図7Aは、処理部13が有するニューラルネットワークであるニューラルネットワーク30の構成例を示す図である。ニューラルネットワーク30は、層31[1]乃至層31[m](mは1以上の整数)を有する。
【0114】
層31[1]乃至層31[m]は、ニューロンを有し、各層に設けられているニューロン同士が結合されている。例えば、層31[1]に設けられているニューロンは、層31[2]に設けられているニューロンと結合されている。また、層31[2]に設けられているニューロンは、層31[1]に設けられているニューロン、及び層31[3]に設けられているニューロンと結合されている。つまり、層31[1]乃至層31[m]により、階層型のニューラルネットワークが構成されている。
【0115】
画像データGD及び部分画像データGDpartは層31[1]に入力され、層31[1]は入力された画像データに対応するデータを出力する。当該データは層31[2]に入力され、層31[2]は入力されたデータに対応するデータを出力する。層31[m]には層31[m-1]から出力されたデータが入力され、層31[m]は当該入力されたデータに対応するデータを出力する。以上より、層31[1]を入力層、層31[2]乃至層31[m-1]を中間層、層31[m]を出力層とすることができる。
【0116】
ステップS04では、画像データGDをニューラルネットワーク30に入力した場合に層31[1]乃至層31[m]から出力されるデータの値(出力値)を、処理部13が取得する。また、部分画像データGDpartをニューラルネットワーク30に入力した場合に層31[1]乃至層31[m]から出力される出力値を、例えば全ての部分画像データGDpartについて処理部13が取得する。ここで、層31[1]乃至層31[m]から出力される出力値は、例えばニューラルネットワーク30に入力された画像データの特徴量を表す。
【0117】
ニューラルネットワーク30は、例えば層31[1]乃至層31[m]から出力される出力値が、ニューラルネットワーク30に入力された画像データの特徴量を表すようにあらかじめ学習されている。学習は、教師なし学習、教師あり学習等により行うことができる。特に、教師なし学習は、教師データ(正解ラベルともいう)が不要であるため好ましい。また、教師なし学習、教師あり学習のどちらの方法で学習を行う場合であっても、学習アルゴリズムとして誤差逆伝播方式等を用いることができる。
【0118】
ここで、学習データとして、データベース画像データGDDBを用いることが好ましい。これにより、例えば層31[1]乃至層31[m]から出力される出力値を、ニューラルネットワーク30に入力された画像データの特徴量を正確に表すものとすることができる。例えば、データベース17に記憶されているデータベース画像データGDDBの全てを学習データに用いて、ニューラルネットワーク30は学習を行うことができる。例えば、データベース画像データGDDBの一部を学習データに用いて、ニューラルネットワーク30は学習を行うことができる。例えば、データベース画像データGDDBの他に、記憶部15に記憶されている画像データ、及び画像検索システム10の外部から入力部11を介して処理部13に入力された画像データを学習データに用いて、ニューラルネットワーク30は学習を行うことができる。
【0119】
なお、学習データとして、データベース画像データGDDBを用いなくてもよい。例えば、画像検索システム10の外部から入力部11を介して処理部13に入力された画像データのみを学習データに用いて、ニューラルネットワーク30は学習を行うことができる。
【0120】
学習データに用いる画像データが有する画素データの数と、ニューラルネットワーク30に入力する画像データが有する画素データの数とは等しいことが好ましい。よって、ニューラルネットワーク30が学習を行う際には、学習データに用いるデータベース画像データGDDB等は、必要に応じて画素データの数を増加又は減少させて調整することが好ましい。また、ニューラルネットワーク30に画像データGD又は部分画像データGDpartを入力する際には、当該画像データGD又は部分画像データGDpartは必要に応じて画素データの数を増加又は減少させて調整することが好ましい。ここで、画素データの増加は、例えばパディングにより行うことが好ましく、例えばゼロパディングにより行うことが好ましい。
【0121】
図8Aは、データベース画像データGD
DBが有する画素データの数の調整について説明する図である。
図8Aに示す場合では、データベース画像データGD
DB[1]乃至データベース画像データGD
DB[4]が有する画素データの数が、全て異なっている。この場合、データベース画像データGD
DB[1]乃至データベース画像データGD
DB[4]をニューラルネットワーク30の学習データに用いる際には、
図8Aに示すようにデータベース画像データGD
DB[1]乃至データベース画像データGD
DB[4]が有する画素データの数を揃えることが好ましい。
【0122】
図8Bは、部分画像データGD
partが有する画素データの数の調整について説明する図である。部分画像データGD
partは、データベース17等に記憶されているデータベース画像データGD
DBが有する画素データの一部である。
図8Bに示す場合では、部分画像データGD
part[1]乃至部分画像データGD
part[4]が有する画素データの数が、全て異なっている。このような場合であっても、パディング等により、部分画像データGD
partが有する画素データの数は、ニューラルネットワーク30の学習に用いた画像データが有する画素データの数と等しくすることが好ましい。同様に、ニューラルネットワーク30に画像データGDを入力する際には、当該画像データGDが有する画素データの数は、ニューラルネットワーク30の学習に用いた画像データが有する画素データの数と等しくすることが好ましい。
【0123】
ニューラルネットワーク30は、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)とすることができる。
図7Bは、ニューラルネットワーク30としてCNNを適用した場合の、ニューラルネットワーク30の構成例を示す図である。ここで、CNNを適用したニューラルネットワーク30を、ニューラルネットワーク30aとする。
【0124】
ニューラルネットワーク30aは、畳み込み層CL、プーリング層PL、及び全結合層FCLを有する。
図7Bでは、ニューラルネットワーク30aが、畳み込み層CLとプーリング層PLをそれぞれm層(mは1以上の整数)ずつ有し、全結合層FCLを1層有する場合を示している。なお、ニューラルネットワーク30aは、全結合層FCLを2層以上有してもよい。
【0125】
畳み込み層CLは、当該畳み込み層CLに入力されたデータに対して畳み込みを行う機能を有する。例えば、畳み込み層CL[1]は、画像データに対して畳み込みを行う機能を有する。また、畳み込み層CL[2]は、プーリング層PL[1]から出力されたデータに対して畳み込みを行う機能を有する。また、畳み込み層CL[m]は、プーリング層PL[m-1]から出力されたデータに対して畳み込みを行う機能を有する。
【0126】
畳み込みは、畳み込み層CLに入力されたデータと、重みフィルタのフィルタ値と、の積和演算を繰り返すことにより行われる。畳み込み層CLにおける畳み込みにより、ニューラルネットワーク30aに入力された画像データに対応する画像の特徴等が抽出される。
【0127】
畳み込みが施されたデータは、活性化関数によって変換された後、プーリング層PLに出力される。活性化関数としては、ReLU(Rectified Linear Units)等を用いることができる。ReLUは、入力値が負である場合は“0”を出力し、入力値が“0”以上である場合は入力値をそのまま出力する関数である。また、活性化関数として、シグモイド関数、tanh関数等を用いることもできる。
【0128】
プーリング層PLは、畳み込み層CLから入力されたデータに対してプーリングを行う機能を有する。プーリングは、データを複数の領域に分割し、当該領域ごとに所定のデータを抽出してマトリクス状に配置する処理である。プーリングにより、畳み込み層CLによって抽出された特徴を残しつつ、データ量を小さくすることができる。また、入力データの微小なずれに対するロバスト性を高めることができる。なお、プーリングとしては、最大プーリング、平均プーリング、Lpプーリング等を用いることができる。
【0129】
全結合層FCLは、畳み込み及びプーリングが行われた画像データを用いて、画像の判定を行う機能を有する。全結合層FCLは、ある層の全てのノードが、次の層の全てのノードと接続された構成を有する。畳み込み層CL又はプーリング層PLから出力されたデータは2次元の特徴マップであり、全結合層FCLに入力されると1次元に展開される。そして、全結合層FCLによる推論によって得られたデータが、全結合層FCLから出力される。
【0130】
なお、ニューラルネットワーク30aの構成は
図7Bの構成に限定されない。例えば、プーリング層PLが複数の畳み込み層CLごとに設けられていてもよい。つまり、ニューラルネットワーク30aが有するプーリング層PLの数は、畳み込み層CLの数より少なくてもよい。また、抽出された特徴の位置情報を極力残したい場合は、プーリング層PLを設けなくてもよい。
【0131】
ニューラルネットワーク30aは学習を行うことにより、重みフィルタのフィルタ値、全結合層FCLの重み係数等を最適化することができる。
【0132】
次に、畳み込み層CLにおいて行われる畳み込み処理、及びプーリング層PLにおいて行われるプーリング処理の一例について、
図9を用いて説明する。
図9において、畳み込み層CLに入力されたデータは、3行3列の入力データ値(入力データ値i11、入力データ値i12、入力データ値i13、入力データ値i21、入力データ値i22、入力データ値i23、入力データ値i31、入力データ値i32、入力データ値i33)を有するとする。また、重みフィルタは、2行2列のフィルタ値(フィルタ値f11、フィルタ値f12、フィルタ値f21、フィルタ値f22)を有するとする。ここで、例えば畳み込み層CL[1]に入力される上記入力データ値は、画素データが表す階調値とすることができる。また、例えば畳み込み層CL[2]に入力される上記入力データ値は、プーリング層PC[1]の出力値とすることができ、畳み込み層CL[m]に入力される上記入力データ値は、プーリング層PC[m-1]の出力値とすることができる。
【0133】
畳み込みは、入力データ値とフィルタ値との積和演算によって行われる。フィルタ値は、所定の特徴を示すデータ(特徴データという)とすることができる。この場合、入力データ値とフィルタ値を比較することにより、ニューラルネットワーク30aに入力された画像データに対して特徴抽出を行うことができる。
【0134】
図9では、畳み込み層CLが、入力データ値i11、入力データ値i12、入力データ値i21、及び入力データ値i22に対してフィルタ処理を行うことにより、畳み込み層CLから出力される出力値である畳み込み値C11を取得する様子を示している。また、畳み込み層CLが、入力データ値i12、入力データ値i13、入力データ値i22、及び入力データ値i23に対してフィルタ処理を行うことにより、畳み込み層CLから出力される出力値である畳み込み値C12を取得する様子を示している。また、畳み込み層CLが、入力データ値i21、入力データ値i22、入力データ値i31、及び入力データ値i32に対してフィルタ処理を行うことにより、畳み込み層CLから出力される出力値である畳み込み値C21を取得する様子を示している。さらに、畳み込み層CLが、入力データ値i22、入力データ値i23、入力データ値i32、及び入力データ値i33に対してフィルタ処理を行うことにより、畳み込み層CLから出力される出力値である畳み込み値C22を取得する様子を示している。以上より、
図9に示す畳み込み処理のストライドは1であるということができる。
【0135】
畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22は、それぞれ下式に示す積和演算により取得することができる。
【0136】
(数1)
C11=i11・f11+i12・f12+i21・f21+i22・f22 (1)
【0137】
(数2)
C12=i12・f11+i13・f12+i22・f21+i23・f22 (2)
【0138】
(数3)
C21=i21・f11+i22・f12+i31・f21+i32・f22 (3)
【0139】
(数4)
C22=i22・f11+i23・f12+i32・f21+i33・f22 (4)
【0140】
畳み込み層CLが取得した畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22は、アドレスに従ってマトリクス状に配列された後、プーリング層PLに出力される。具体的には、畳み込み値C11は1行1列目に配置され、畳み込み値C12は1行2列目に配置され、畳み込み値C21は2行1列目に配置され、畳み込み値C22は2行2列目に配置される。
【0141】
図9では、プーリング層PLに畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22が入力され、当該4個の畳み込み値を基に1個の値をプーリング値Pとする様子を示している。例えば、畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22のうち、最大値をプーリング値Pとすることができる。又は、畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22の平均値をプーリング値Pとすることができる。プーリング値Pは、プーリング層PLから出力される出力値となる。
【0142】
図9では、畳み込み層CLに入力されるデータを1個の重みフィルタにより処理する場合を示しているが、2個以上の重みフィルタにより処理してもよい。この場合、ニューラルネットワーク30aに入力された画像データに含まれる複数の特徴を抽出することができる。畳み込み層CLに入力されるデータを2個以上の重みフィルタにより処理する場合、フィルタごとに
図9に示す処理を行う。また、前述のように
図9ではストライドは1としたが、ストライドを2以上としてもよい。
【0143】
図10は、ニューラルネットワーク30aが有する畳み込み層CL、及びプーリング層PLの構成例を示す図である。
図10では、畳み込み層CL及びプーリング層PLが
図9に示す動作を行う場合を示している。
【0144】
図10には、ニューロン32を示している。具体的には、ニューロン32として、ニューロン32a、ニューロン32b、及びニューロン32cを示している。
図10において、ニューロン32から出力される出力値を、当該ニューロン32の内部に記載している。当該出力値は、矢印の方向に出力される。また、当該出力値に重み係数を乗ずる場合は、矢印の近傍に重み係数を記載している。
図10では、フィルタ値f11、フィルタ値f12、フィルタ値f21、及びフィルタ値f22を重み係数としている。
【0145】
ニューロン32aは、
図10に示す畳み込み層CLの前の層である層Lが有するニューロン32である。層Lは、例えば
図10に示す畳み込み層CLが畳み込み層CL[1]である場合は入力層とすることができ、畳み込み層CL[2]である場合はプーリング層PL[1]とすることができ、畳み込み層CL[m]である場合はプーリング層PL[m-1]とすることができる。
【0146】
図10では、ニューロン32aとして、ニューロン32a[1]乃至ニューロン32a[9]を示している。
図10に示す場合において、ニューロン32a[1]は入力データ値i11を出力し、ニューロン32a[2]は入力データ値i12を出力し、ニューロン32a[3]は入力データ値i13を出力し、ニューロン32a[4]は入力データ値i21を出力し、ニューロン32a[5]は入力データ値i22を出力し、ニューロン32a[6]は入力データ値i23を出力し、ニューロン32a[7]は入力データ値i31を出力し、ニューロン32a[8]は入力データ値i32を出力し、ニューロン32a[9]は入力データ値i33を出力する。
【0147】
ニューロン32bは、
図10に示す畳み込み層CLが有するニューロン32である。
図10では、ニューロン32bとして、ニューロン32b[1]乃至ニューロン32b[4]を示している。
【0148】
図10に示す場合において、ニューロン32b[1]には、入力データ値i11にフィルタ値f11を乗じた値と、入力データ値i12にフィルタ値f12を乗じた値と、入力データ値i21にフィルタ値f21を乗じた値と、入力データ値i22にフィルタ値f22を乗じた値と、が入力される。そして、これらの値の和である畳み込み値C11が、ニューロン32b[1]から出力される。
【0149】
また、ニューロン32b[2]には、入力データ値i12にフィルタ値f11を乗じた値と、入力データ値i13にフィルタ値f12を乗じた値と、入力データ値i22にフィルタ値f21を乗じた値と、入力データ値i23にフィルタ値f22を乗じた値と、が入力される。そして、これらの値の和である畳み込み値C12が、ニューロン32b[2]から出力される。
【0150】
また、ニューロン32b[3]には、入力データ値i21にフィルタ値f11を乗じた値と、入力データ値i22にフィルタ値f12を乗じた値と、入力データ値i31にフィルタ値f21を乗じた値と、入力データ値i32にフィルタ値f22を乗じた値と、が入力される。そして、これらの値の和である畳み込み値C21が、ニューロン32b[3]から出力される。
【0151】
さらに、ニューロン32b[4]には、入力データ値i22にフィルタ値f11を乗じた値と、入力データ値i23にフィルタ値f12を乗じた値と、入力データ値i32にフィルタ値f21を乗じた値と、入力データ値i33にフィルタ値f22を乗じた値と、が入力される。そして、これらの値の和である畳み込み値C22が、ニューロン32b[4]から出力される。
【0152】
図10に示すように、ニューロン32b[1]乃至ニューロン32b[4]のそれぞれは、ニューロン32a[1]乃至ニューロン32a[9]の一部と結合されている。よって、畳み込み層CLは部分結合層であるということができる。
【0153】
ニューロン32cは、
図10に示すプーリング層PLが有するニューロン32である。
図10に示す場合において、ニューロン32cには、畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22が入力される。そして、プーリング値Pがニューロン32cから出力される。なお、ニューロン32bから出力される畳み込み値には、重み係数は乗じない。前述のように、重み係数は、ニューラルネットワークの学習によって最適化されるパラメータである。よって、プーリング層PLが演算の際用いるパラメータには、学習によって最適化されるパラメータが存在しない構成とすることができる。
【0154】
[ステップS05]
次に、処理部13が有するニューラルネットワークに画像データGDを入力した場合に当該ニューラルネットワークが有する層から出力される出力値と、部分画像データGDpartを入力した場合に当該ニューラルネットワークが有する層から出力される出力値と、を比較する。これにより、部分画像データGDpartの、画像データGDに対する類似度を数値として算出する。
【0155】
処理部13が
図7Aに示す構成のニューラルネットワーク30を有する場合、例えば、層31[1]乃至層31[m]のいずれかから出力される出力値を比較する。例えば、層31[m]から出力される出力値を比較する。なお、層31[1]乃至層31[m]のうち、1層の出力値のみを比較してもよいし、2層以上の出力値を比較してもよい。多くの層31の出力値を比較することにより、部分画像データGD
partの、画像データGDに対する類似度を高い精度で算出することができる。
【0156】
本明細書等において、処理部13が有するニューラルネットワークに画像データGDを入力した場合に当該ニューラルネットワークが有する層から出力される出力値のうち、上記比較を行う出力値を出力値VGDとする。また、処理部13が有するニューラルネットワークに部分画像データGDpartを入力した場合に当該ニューラルネットワークが有する層から出力される出力値のうち、上記比較を行う出力値を出力値VGDpartとする。つまり、ステップS05では、出力値VGDと出力値VGDpartとを比較する。
【0157】
図7Aでは、出力値VGD及び出力値VGD
partを、層31[m]からの出力値としている。
【0158】
処理部13が
図7Bに示す構成のニューラルネットワーク30aを有する場合、例えば、プーリング層PL[1]乃至プーリング層PL[m]のいずれかから出力される出力値を比較する。例えば、プーリング層PL[m]からの出力値を比較する。なお、畳み込み層PL[1]乃至畳み込み層PL[m]のいずれか出力される出力値を比較してもよいし、全結合層FCLから出力される出力値を比較してもよい。
【0159】
また、畳み込み層CL[1]乃至畳み込み層CL[m]、プーリング層PL[1]乃至プーリング層PL[m]、及び全結合層FCLのうち、1層の出力値のみを比較してもよいし、2層以上の出力値を比較してもよい。多くの層の出力値を比較することにより、部分画像データGDpartの、画像データGDに対する類似度を高い精度で算出することができる。
【0160】
図7Bでは、出力値VGD及び出力値VGD
partを、プーリング層PL[m]からの出力値としている。
【0161】
図11は、x行y列(x、yは1以上の整数)のプーリング値Pを出力するプーリング層PLからの出力値を、出力値VGD及び出力値VGD
partとする場合を示している。
図11に示す場合では、画像データGDと、k個(kは1以上の整数)の部分画像データGD
partと、がニューラルネットワーク30aに入力されるとしている。
【0162】
本明細書等において、例えばk個の部分画像データGDpartに対応する出力値VGDpartを、それぞれ出力値VGDpart[1]乃至出力値VGDpart[k]と記載して区別している。
【0163】
図11等において、出力値VGDはプーリング値P
GD[1,1]乃至プーリング値P
GD[x,y]を有するとしている。また、例えば出力値VGD
part[1]はプーリング値P1
part[1,1]乃至プーリング値P1
part[x,y]を有し、出力値VGD
part[2]はプーリング値P2
part[1,1]乃至プーリング値P2
part[x,y]を有し、出力値VGD
part[k]はプーリング値Pk
part[1,1]乃至プーリング値Pk
part[x,y]を有するとしている。
【0164】
図11に示す場合では、出力値VGDを出力値VGD
part[1]乃至出力値VGD
part[k]のそれぞれと比較する。これにより、k個の部分画像データGD
partのそれぞれについて、画像データGDに対する類似度を算出する。例えば、コサイン類似度を算出する。又は、ユークリッド類似度、ミンコフスキー類似度等を算出してもよい。以上により、画像データGDに対応する画像と類似する画像を一部に含むデータベース画像を検索することができる。
【0165】
以上、画像検索システム10では、処理部13に設けられているニューラルネットワークが有する層の出力値を比較することにより、高い精度で短時間に上記類似度を算出することができる。よって、例えば画像データGDとデータベース画像データGDDBとを領域ベースマッチングのみにより比較する場合より、画像データGDに対応する画像と類似する画像を一部に含むデータベース画像を、高い精度で検索することができる。また、例えば画像データGDとデータベース画像データGDDBとを特徴ベースマッチングのみにより比較する場合より、画像データGDに対応する画像と類似する画像を一部に含むデータベース画像を、短時間で検索することができる。さらに、上記類似度を数値として算出することができることから、例えばそれぞれのデータベース画像において、画像データGDに対応する画像に対する一致度の順位付けを行うことができる。
【0166】
また、画像検索システム10では、画像データGDとデータベース画像データGDDBとを領域ベースマッチング等により比較し、画像データGDに対する一致度が高い領域を含むデータベース画像データGDDBを、抽出画像データGDExとして抽出している。その後、抽出画像データGDExから部分画像データGDpartを抽出し、画像データGDと部分画像データGDpartを、処理部13が有するニューラルネットワークに入力している。このように、データベース画像データGDDBの抽出を行うことにより、画像データGDに対応する画像と一致度が高い画像を含まないデータベース画像を表すデータベース画像データGDDBが、処理部13が有するニューラルネットワークに入力されることを抑制することができる。よって、画像データGDに対応する画像と類似する画像を一部に含むデータベース画像を、高い精度で短時間に検索することができる。なお、画像データGDと比較するデータベース画像データGDDBの数が少ない場合等は、データベース画像データGDDBの抽出を行わなくても、高い精度で短時間に上記検索を行うことができる。
【0167】
<3.画像検索方法-2>
上記では、処理部13に入力される画像データGDが有する画素データの数が、データベース画像データGDDBが有する画素データの数以下であるとして、本発明の一態様の画像検索方法を説明したが、本発明の一態様はこれに限らない。処理部13に入力される画像データGDが有する画素データの数が、データベース画像データGDDBが有する画素データの数より多くてもよい。この場合、画像検索システム10は、例えばクエリ画像の一部と類似するデータベース画像を検索することができる。
【0168】
図12は、画像データGDが有する画素データの数が、データベース画像データGD
DBが有する画素データの数より多い場合における、画像検索システム10を用いた画像検索方法の一例を示すフローチャートである。
【0169】
[ステップS11]
まず、
図2に示すステップS01と同様に、画像データGDとデータベース画像データGD
DBとが処理部13に入力される。
【0170】
[ステップS12]
次に、処理部13が、画像データGDとデータベース画像データGDDBとを比較し、画像データGDの一部に対する一致度が高いデータベース画像データGDDBを、抽出画像データGDExとして抽出する。画像データGDとデータベース画像データGDDBとの比較は、ステップS02と同様に例えば領域ベースマッチングにより行うことができる。
【0171】
ステップS12の動作の一例について、
図13及び
図14を用いて詳細に説明する。ステップS12では、
図13Aに示すように、画像データGDをn個のデータベース画像データGD
DBのそれぞれと比較する。
【0172】
図13Bは、画像データGDと、データベース画像データGD
DBとを領域ベースマッチングにより比較する場合の手順について説明する図である。ここで、画像データGDに対応する画像の画素数は4×4、データベース画像データGD
DBに対応する画像の画素数は2×2とする。つまり、画像データGDは4×4の画素データを有し、データベース画像データGD
DBは2×2の画素データを有するとする。
【0173】
図13Bにおいて、画像データGDが有する4×4の画素データを、それぞれ画素データd11乃至画素データd44とする。例えば、画像データGDにおいて、1行1列目の画素に対応する画素データを画素データd11、1行4列目の画素に対応する画素データを画素データd14、4行1列目の画素に対応する画素データを画素データd41、4行4列目の画素に対応する画素データを画素データd44とする。また、データベース画像データGD
DBが有する2×2の画素データを、それぞれ画素データddb11、画素データddb12、画素データddb21、画素データddb22とする。例えば、データベース画像データGD
DBにおいて、1行1列目の画素に対応する画素データを画素データddb11、1行2列目の画素に対応する画素データを画素データddb12、2行1列目の画素に対応する画素データを画素データddb21、2行2列目の画素に対応する画素データを画素データddb22とする。
【0174】
まず、画素データddb11、画素データddb12、画素データddb21、及び画素データddb22と、画素データd11、画素データd12、画素データd21、及び画素データd22と、を比較する。これにより、データベース画像データGD
DBと、画像データGDのうち画素データd11、画素データd12、画素データd21、及び画素データd22から構成される領域と、の一致度を算出することができる。なお、
図13Bでは、画像データGDが有する画素データのうち、データベース画像データGD
DBと比較される画素データを、比較データ領域21として点線で囲って示している。
【0175】
次に、比較データ領域21を画像データGDが有する画素データに対して1列分移動させ、同様に画素データを比較し、一致度を算出する。具体的には、画素データddb11、画素データddb12、画素データddb21、及び画素データddb22と、画素データd12、画素データd13、画素データd22、及び画素データd23と、を比較する。これにより、データベース画像データGDDBと、画像データGDのうち画素データd12、画素データd13、画素データd22、及び画素データd23から構成される領域と、の一致度を算出することができる。
【0176】
その後も、比較データ領域21を画像データGDが有する画素データに対して1列分移動させ、同様に画素データを比較し、一致度を算出する。具体的には、画素データddb11、画素データddb12、画素データddb21、及び画素データddb22と、画素データd13、画素データd14、画素データd23、及び画素データd24と、を比較する。これにより、データベース画像データGDDBと、画像データGDのうち画素データd13、画素データd14、画素データd23、及び画素データd24から構成される領域と、の一致度を算出することができる。
【0177】
次に、比較データ領域21を画像データGDが有する画素データに対して1行分移動させ、画像データGDが有する画素データのうち、2行目の画素データ、及び3行目の画素データと、データベース画像データGDDBとを上記と同様に1列ごとに比較する。これにより、画像データGDが有する、2行目及び3行目の画素データと、データベース画像データGDDBとの一致度を上記と同様に1列ごとに算出することができる。
【0178】
その後、比較データ領域21を画像データGDが有する画素データに対して1行分移動させ、画像データGDが有する画素データのうち、3行目の画素データ、及び4行目の画素データと、データベース画像データGDDBとを上記と同様に1列ごとに比較する。これにより、画像データGDが有する、3行目及び4行目の画素データと、データベース画像データGDDBとの一致度を上記と同様に1列ごとに算出することができる。
【0179】
以上の動作を行った後、例えば最も高い一致度を、データベース画像データGDDBの画像データGDに対する一致度とする。以上をn個のデータベース画像データGDDBのそれぞれについて行う。その後、ステップS02と同様に、n個のデータベース画像データGDDBの中から、画像データGDとの一致度が高いデータベース画像データGDDBを、抽出画像データGDExとして抽出する。なお、ステップS02と同様に、データベース画像データGDDBの抽出を行わなくてもよい。
【0180】
図14は、データベース画像データGD
DBの抽出について説明する図である。
図14は、データベース画像データGD
DB[1]乃至データベース画像データGD
DB[3]から、1個の画像データを抽出画像データGD
Exとして抽出する場合を示している。
【0181】
図14に示す画像データGDに対応する画像には、例えばトランジスタの記号、及び容量素子の記号が含まれているものとする。また、
図14に示すデータベース画像データGD
DB[2]に対応する画像にはトランジスタの記号が含まれているが、データベース画像データGD
DB[1]に対応する画像、及びデータベース画像データGD
DB[3]に対応する画像には、トランジスタの記号、及び容量素子の記号のいずれもが含まれていないものとする。この場合、データベース画像データGD
DB[2]の画像データGDに対する一致度は、データベース画像データGD
DB[1]及びデータベース画像データGD
DB[3]の画像データGDに対する一致度より高くなる。よって、データベース画像データGD
DB[2]を、抽出画像データGD
Exとして抽出することができる。
【0182】
なお、画像データGDとデータベース画像データGD
DBの比較、及び一致度の算出は、ステップS02で用いることができる方法と同様の方法を用いることができる。また、
図13Bでは比較データ領域を画像データGDが有する画素データに対して1列分、又は1行分ずつ移動させているが、ステップS02と同様に、比較データ領域21を画像データGDが有する画素データに対して2列分以上移動させてもよいし、2行分以上移動させてもよい。さらに、
図5Aに示す場合と同様に、処理部13に入力された画像データGDを基にして、画素データ数が異なる複数の画像データGDを生成してもよい。
【0183】
[ステップS13]
次に、画像データGDから、抽出画像データGD
Exに対する一致度が高い領域のデータである部分画像データGD
part-qを処理部13が抽出する。例えば、
図13Bに示す方法で、画像データGDの各領域の、データベース画像データGD
DBに対する一致度をそれぞれ算出した場合、一致度が最も高い領域を部分画像データGD
part-qとして抽出する。よって、部分画像データGD
part-qが有する画素データの数は、抽出画像データGD
Exが有する画素データの数と等しくすることができる。
【0184】
図15は、ステップS13の動作の一例を示す図である。
図15に示す画像データGDは、左上にトランジスタの記号が表され、右下に容量素子の記号が表された回路図に対応するものとする。そして、抽出画像データGD
Ex[1]に対応する画像はトランジスタの記号を含み、抽出画像データGD
Ex[2]に対応する画像は容量素子の記号を含むものとする。
【0185】
図15に示す場合では、画像データGDに対応する画像の左上部分が、抽出画像データGD
Ex[1]に対する一致度が最も高い領域となる。したがって、画像データGDのうち、左上の領域に対応するデータを部分画像データGD
part-q[1]とする。一方、画像データGDに対応する画像の右下部分が、抽出画像データGD
Ex[2]に対する一致度が最も高い領域となる。したがって、画像データGDのうち、右下の領域に対応するデータを部分画像データGD
part-q[2]とする。つまり、1個の画像データGDから複数の部分画像データGD
part-qが抽出されている。
【0186】
ステップS13において、抽出画像データGDExと同数の画像データを、画像データGDから部分画像データGDpart-qとして抽出してもよい。又は、抽出画像データGDExより少ない数の画像データを、画像データGDから部分画像データGDpart-qとして抽出してもよい。例えば、複数の抽出画像データGDExに対して、一致度が高い画像データGDの領域が同一である場合には、当該同一の領域については、画像データGDから抽出される部分画像データGDpart-qの数は1個とすることができる。つまり、同一の部分画像データGDpart-qを、画像データGDから複数抽出しなくてもよい。
【0187】
なお、部分画像データGDpart-qの抽出を行わなくてもよい。この場合は、部分画像データGDpart-qを適宜画像データGDと読み替えることで、以降の説明を適用することができる。又は、画像データGDの全体を部分画像データGDpart-qとすることができるということができる。例えば、画像データGDが有する画素データの数が、抽出画像データGDExが有する画素データの数と等しい場合は、部分画像データGDpart-qの抽出を行わなくても本発明の一態様の画像検索方法を実行することができる。また、画像データGDが有する画素データの数と、抽出画像データGDExが有する画素データの数とが異なる場合であっても、部分画像データGDpart-qの抽出を行わなくても本発明の一態様の画像検索方法を実行することができる。この場合、例えば画像データGD及び抽出画像データGDExの一方又は両方の画像データが有する画素データの数を増加又は減少させることにより、本発明の一態様の画像検索方法を実行することができる。
【0188】
[ステップS14]
次に、部分画像データGD
part-qと抽出画像データGD
Exとを、処理部13が有するニューラルネットワークに入力する。当該ニューラルネットワークは、
図7A、
図7Bに示す構成とすることができる。
【0189】
ステップS14における動作は、適宜画像データGDを部分画像データGDpart-qと読み替え、部分画像データGDpartを抽出画像データGDExと読み替えること等により、ステップS04の説明を参照することができる。なお、画像データGDを抽出画像データGDExと読み替え、部分画像データGDpartを部分画像データGDpart-qと読み替える場合もある。
【0190】
[ステップS15]
次に、処理部13が有するニューラルネットワークに抽出画像データGDExを入力した場合に当該ニューラルネットワークが有する層から出力される出力値と、部分画像データGDpart-qを入力した場合に当該ニューラルネットワークが有する層から出力される出力値と、を比較する。これにより、抽出画像データGDExの、部分画像データGDpart-qに対する類似度を数値として算出する。
【0191】
具体的には、抽出画像データGD
Exの、当該抽出画像データGD
Exに対応する部分画像データGD
part-qに対する類似度を算出する。例えば、
図15に示すように、画像データGDと抽出画像データGD
Ex[1]を比較して画像データGDから部分画像データGD
part-q[1]を抽出し、画像データGDと抽出画像データGD
Ex[2]を比較して画像データGDから部分画像データGD
part-q[2]を抽出したとする。この場合、例えば抽出画像データGD
Ex[1]の、部分画像データGD
part-q[1]に対する類似度を算出する。また、抽出画像データGD
Ex[2]の、部分画像データGD
part-q[2]に対する類似度を算出する。
【0192】
処理部13が
図7Aに示す構成のニューラルネットワーク30を有する場合、ステップS05と同様に、例えば、層31[1]乃至層31[m]のいずれかから出力される出力値を比較する。例えば、層31[m]から出力される出力値を比較する。なお、層31[1]乃至層31[m]のうち、1層の出力値のみを比較してもよいし、2層以上の出力値を比較してもよい。
【0193】
処理部13が
図7Bに示す構成のニューラルネットワーク30aを有する場合、ステップS05と同様に、例えば、プーリング層PL[1]乃至プーリング層PL[m]のいずれかから出力される出力値を比較する。例えば、プーリング層PL[m]からの出力値を比較する。なお、畳み込み層PL[1]乃至畳み込み層PL[m]のいずれか出力される出力値を比較してもよいし、全結合層FCLから出力される出力値を比較してもよい。
【0194】
本明細書等において、上記比較を行う出力値のうち、処理部13が有するニューラルネットワークに部分画像データGDpart-qを入力した場合に当該ニューラルネットワークが有する層から出力される出力値を出力値VGDpart-qとする。また、上記比較を行う出力値のうち、処理部13が有するニューラルネットワークに抽出画像データGDExを入力した場合に当該ニューラルネットワークが有する層から出力される出力値を出力値VGDExとする。つまり、ステップS15では、出力値VGDpart-qと出力値VGDExとを比較する。
【0195】
ステップS15における動作は、適宜出力値VGDを出力値VGDpart-qと読み替え、出力値VGDpartを出力値VGDExと読み替えること等により、ステップS05の説明を参照することができる。ステップS15を行うことにより、画像データGDに対応する画像の一部と類似するデータベース画像を検索することができる。
【0196】
前述のように、画像検索システム10では、処理部13に設けられているニューラルネットワークが有する層の出力値を比較することにより、高い精度で短時間に、抽出画像データGDExの部分画像データGDpart-qに対する類似度を算出することができる。よって、例えば画像データGDとデータベース画像データGDDBとを領域ベースマッチングのみにより比較する場合より、画像データGDに対応する画像の一部と類似するデータベース画像を、高い精度で検索することができる。また、例えば画像データGDとデータベース画像データGDDBとを特徴ベースマッチングのみにより比較する場合より、画像データGDに対応する画像の一部と類似するデータベース画像を、短時間で検索することができる。さらに、上記類似度を数値として算出することができることから、例えばそれぞれのデータベース画像において、画像データGDに対応する画像に対する一致度の順位付けを行うことができる。
【0197】
また、画像検索システム10では、画像データGDとデータベース画像データGDDBとを領域ベースマッチング等により比較し、画像データGDの一部に対する一致度が高いデータベース画像データGDDBを、抽出画像データGDExとして抽出している。その後、画像データGDから部分画像データGDpart-qを抽出し、部分画像データGDpart-qと抽出画像データGDExを、処理部13が有するニューラルネットワークに入力している。このように、データベース画像データGDDBの抽出を行うことにより、画像データGDに対応する画像の一部と一致度が高い画像を含まないデータベース画像を表すデータベース画像データGDDBが、処理部13が有するニューラルネットワークに入力されることを抑制することができる。よって、画像データGDに対応する画像の一部と類似するデータベース画像を、高い精度で短時間に検索することができる。なお、画像データGDと比較するデータベース画像データGDDBの数が少ない場合等は、データベース画像データGDDBの抽出を行わなくても、高い精度で短時間に上記検索を行うことができる。
【実施例】
【0198】
本実施例では、画像検索システムに画像を入力し、当該画像と類似する部分を含むデータベース画像を検索した結果について説明する。
【0199】
本実施例では、画像検索システムに1枚の画像を入力した。その後、当該画像と類似する部分を含むデータベース画像を、条件1と条件2により100枚ずつ検索した。条件1、条件2のいずれにおいても、画像検索システムに入力した画像は回路図とし、データベース画像として回路図、グラフ等を用意した。
【0200】
条件1では、画像検索システムに入力した画像に対応する画像データGDと、データベース画像データGDDBと、を領域ベースマッチングにより比較し、一致度が高い順に100枚のデータベース画像を検索した。
【0201】
条件2では、実施の形態の
図2に示す方法により、画像検索システムに入力した画像と類似する部分を含むデータベース画像を検索した。具体的には、まず、画像データGDとデータベース画像データGD
DBとを領域ベースマッチングにより比較し、一致度が高い順に400個のデータベース画像データGD
DBを抽出画像データGD
Exとして抽出した。次に、400個の抽出画像データGD
Exのそれぞれについて、画像データGDに対する一致度が最も高い領域のデータを部分画像データGD
partとして抽出した。次に、
図16に示すように、畳み込み層CL[1]乃至畳み込み層CL[5]、プーリング層PL[1]乃至プーリング層PL[5]、及び全結合層FCL[1]乃至全結合層FCL[3]から構成されているニューラルネットワークに、画像データGDと部分画像データGD
partとを入力した。次に、ニューラルネットワークに画像データGDを入力した場合にプーリング層PL[5]から出力される出力値を出力値VGD、部分画像データGD
partを入力した場合にプーリング層PL[5]から出力される出力値を出力値VGD
partとして、出力値VGDと出力値VGD
partとを比較して類似度を算出した。その後、画像データGDに対する類似度が高い順に100個の部分画像データGD
partを抽出し、抽出した部分画像データGD
partを含むデータベース画像を検索した。
【0202】
条件1では、検索された100枚のデータベース画像のうち、回路図を含む画像は6枚であった。一方、条件2では検索された100枚のデータベース画像のうち、30枚が回路図を含む画像であった。以上より、条件2では、画像検索システムに入力した画像と類似する部分を含むデータベース画像を、条件1より多く検索することができることが確認された。
【符号の説明】
【0203】
10:画像検索システム、11:入力部、12:伝送路、13:処理部、15:記憶部、17:データベース、19:出力部、21:比較データ領域、30:ニューラルネットワーク、30a:ニューラルネットワーク、31:層、32:ニューロン、32a:ニューロン、32b:ニューロン、32c:ニューロン