IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社半導体エネルギー研究所の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-09
(45)【発行日】2024-08-20
(54)【発明の名称】画像検索システム、及び画像検索方法
(51)【国際特許分類】
   G06F 16/58 20190101AFI20240813BHJP
   G06N 3/04 20230101ALI20240813BHJP
【FI】
G06F16/58
G06N3/04
【請求項の数】 14
(21)【出願番号】P 2021510572
(86)(22)【出願日】2020-03-17
(86)【国際出願番号】 IB2020052405
(87)【国際公開番号】W WO2020201866
(87)【国際公開日】2020-10-08
【審査請求日】2023-03-13
(31)【優先権主張番号】P 2019065757
(32)【優先日】2019-03-29
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000153878
【氏名又は名称】株式会社半導体エネルギー研究所
(72)【発明者】
【氏名】秋元 健吾
(72)【発明者】
【氏名】玉木 滋
(72)【発明者】
【氏名】山本 一宇
(72)【発明者】
【氏名】茂森 勇
【審査官】松尾 真人
(56)【参考文献】
【文献】国際公開第2009/060722(WO,A1)
【文献】特開2018-073429(JP,A)
【文献】特開2018-045517(JP,A)
【文献】特開2018-206376(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
データベースと、処理部と、入力部と、を有し、
前記データベースは、文書データと、複数のデータベース画像データと、を記憶する機能を有し、
前記処理部は、前記データベース画像データの特徴量を表すデータベース画像特徴量データを、前記複数のデータベース画像データのそれぞれについて取得する機能を有し、
前記処理部は、前記文書データを用いてデータベースタグを複数生成し、前記データベースタグを前記データベース画像データに紐づける機能を有し、
前記処理部は、前記データベースタグを表すデータベースタグベクトルを、前記複数のデータベースタグのそれぞれについて取得する機能を有し、
前記処理部は、前記入力部にクエリ画像データが入力された場合に、前記クエリ画像データの特徴量を表すクエリ画像特徴量データを取得する機能を有し、
前記処理部は、前記データベース画像データの、前記クエリ画像データに対する類似度である第1の類似度を、前記複数のデータベース画像データのそれぞれについて算出する機能を有し、
前記処理部は、前記第1の類似度に基づき、前記データベースタグの一部を用いて、前記クエリ画像データに紐付けられるクエリタグを取得する機能を有し、
前記処理部は、前記クエリタグを表すクエリタグベクトルを取得する機能を有し、
前記処理部は、前記データベース画像特徴量データと、前記データベースタグベクトルと、を含む第1のデータを取得する機能を有し、
前記処理部は、前記クエリ画像特徴量データと、前記クエリタグベクトルと、を含む第2のデータを取得する機能を有し、
前記処理部は、前記第1のデータの、前記第2のデータに対する類似度である第2の類似度を算出する機能を有する画像検索システム。
【請求項2】
請求項1において、
前記データベースタグには、単語が含まれる画像検索システム。
【請求項3】
請求項1又は2において、
前記処理部は、前記文書データに対して形態素解析を行うことにより、前記データベースタグを生成する機能を有する画像検索システム。
【請求項4】
請求項1乃至3のいずれか一項において、
前記処理部は、第1のニューラルネットワークと、第2のニューラルネットワークと、を有し、
前記データベース画像特徴量データ、及び前記クエリ画像特徴量データは、前記第1のニューラルネットワークを用いて取得され、
前記データベースタグベクトル、及び前記クエリタグベクトルは、前記第2のニューラルネットワークを用いて取得される画像検索システム。
【請求項5】
請求項4において、
前記第1のニューラルネットワークは、畳み込み層と、プーリング層と、を有し、
前記データベース画像特徴量データ、及び前記クエリ画像特徴量データは、前記プーリング層から出力される画像検索システム。
【請求項6】
請求項4又は5において、
前記データベースタグベクトル、及び前記クエリタグベクトルは、分散表現ベクトルである画像検索システム。
【請求項7】
請求項1乃至6のいずれか一項において、
前記第1の類似度、及び前記第2の類似度は、コサイン類似度である画像検索システム。
【請求項8】
文書データ、及び複数のデータベース画像データが記憶されているデータベースと、処理部と、入力部と、を有する画像検索システムを用いた画像検索方法であって、
前記処理部は、前記データベース画像データの特徴量を表すデータベース画像特徴量データを、前記複数のデータベース画像データのそれぞれについて取得し、
前記処理部は、前記文書データを用いてデータベースタグを複数生成し、前記データベースタグを前記データベース画像データに紐づけ、
前記処理部は、前記データベースタグを表すデータベースタグベクトルを、前記複数のデータベースタグのそれぞれについて取得し、
前記処理部は、前記入力部にクエリ画像データを入力し、
前記処理部は、前記クエリ画像データの特徴量を表すクエリ画像特徴量データを取得し、
前記処理部は、前記データベース画像データの、前記クエリ画像データに対する類似度である第1の類似度を、前記複数のデータベース画像データのそれぞれについて算出し、
前記処理部は、前記第1の類似度に基づき、前記データベースタグの一部を用いて、前記クエリ画像データに紐付けられるクエリタグを取得し、
前記処理部は、前記クエリタグを表すクエリタグベクトルを取得し、
前記処理部は、前記データベース画像特徴量データ、及び前記データベースタグベクトルを含む第1のデータと、
前記クエリ画像特徴量データと、前記クエリタグベクトルと、を含む第2のデータと、を取得し、
前記処理部は、前記第1のデータの、前記第2のデータに対する類似度である第2の類似度を算出する画像検索方法。
【請求項9】
請求項8において、
前記データベースタグには、単語が含まれる画像検索方法。
【請求項10】
請求項8又は9において、
前記処理部は、前記文書データに対して形態素解析を行うことにより、前記データベースタグを生成する画像検索方法。
【請求項11】
請求項8乃至10のいずれか一項において、
前記処理部は、前記データベース画像特徴量データ、及び前記クエリ画像特徴量データを、第1のニューラルネットワークを用いて取得し、
前記処理部は、前記データベースタグベクトル、及び前記クエリタグベクトルを、第2のニューラルネットワークを用いて取得する画像検索方法。
【請求項12】
請求項11において、
前記第1のニューラルネットワークは、畳み込み層と、プーリング層と、を有し、
前記データベース画像特徴量データ、及び前記クエリ画像特徴量データは、前記プーリング層から出力される画像検索方法。
【請求項13】
請求項11又は12において、
前記データベースタグベクトル、及び前記クエリタグベクトルは、分散表現ベクトルである画像検索方法。
【請求項14】
請求項8乃至13のいずれか一項において、
前記第1の類似度、及び前記第2の類似度は、コサイン類似度である画像検索方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の一態様は、画像検索システム、及び画像検索方法に関する。
【0002】
なお、本発明の一態様は、上記の技術分野に限定されない。本発明の一態様の技術分野としては、半導体装置、表示装置、発光装置、蓄電装置、記憶装置、電子機器、照明装置、それらの駆動方法、又はそれらの製造方法を一例として挙げることができる。
【背景技術】
【0003】
出願前の発明に関し先行技術調査を行うことで、関連する知的財産権が存在するか否かを調査することができる。先行技術調査を行うことで得られた、国内外の特許文献及び論文等の先行技術文献は、発明の新規性及び進歩性の確認、並びに、特許を出願するか否かの判断に利用することができる。また、先行技術文献の無効資料調査を行うことで、自身の所有する特許権が無効化する恐れが無いか、或いは、他者の所有する特許権を無効化できるか、調査することができる。
【0004】
例えば、出願前の技術を具現する図面と類似する図面が掲載された先行技術文献を検索することにより、上記先行技術調査を行うことができる。具体的には、例えば画像検索システムに使用者が図面を入力することで、入力された図面と類似する図面を含む先行技術文献を検索することができる。
【0005】
入力された画像と類似する画像の検索は、例えばニューラルネットワークを用いて行うことができる。例えば、特許文献1には、画像間の類似度を、ニューラルネットワークを用いて判定する方法が開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2017-207947号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
入力された画像と、検索対象の画像と、の類似度を画像データのみを用いて算出すると、例えば入力された画像と異なる概念の画像が検索される場合がある。これにより、検索結果にノイズとなる画像が混入し、検索したい画像が出力されなくなる場合がある。よって、類似画像の検索精度が低くなる場合がある。
【0008】
そこで、本発明の一態様は、検索精度が高い画像検索システムを提供することを課題の一つとする。又は、本発明の一態様は、短時間で検索を行うことができる画像検索システムを提供することを課題の一つとする。又は、本発明の一態様は、検索を簡便に行うことができる画像検索システムを提供することを課題の一つとする。又は、本発明の一態様は、新規な画像検索システムを提供することを課題の一つとする。
【0009】
又は、本発明の一態様は、検索精度が高い画像検索方法を提供することを課題の一つとする。又は、本発明の一態様は、短時間で検索を行うことができる画像検索方法を提供することを課題の一つとする。又は、本発明の一態様は、検索を簡便に行うことができる画像検索方法を提供することを課題の一つとする。又は、本発明の一態様は、新規な画像検索方法を提供することを課題の一つとする。
【0010】
なお、これらの課題の記載は、他の課題の存在を妨げるものではない。本発明の一態様は、必ずしも、これらの課題の全てを解決する必要はないものとする。明細書、図面、請求項の記載から、これら以外の課題を抽出することが可能である。
【課題を解決するための手段】
【0011】
本発明の一態様は、データベースと、処理部と、入力部と、を有し、データベースは、文書データと、複数のデータベース画像データと、を記憶する機能を有し、処理部は、データベース画像データの特徴量を表すデータベース画像特徴量データを、複数のデータベース画像データのそれぞれについて取得する機能を有し、処理部は、文書データを用いてデータベースタグを複数生成し、データベースタグをデータベース画像データに紐づける機能を有し、処理部は、データベースタグを表すデータベースタグベクトルを、複数のデータベースタグのそれぞれについて取得する機能を有し、処理部は、入力部にクエリ画像データが入力された場合に、クエリ画像データの特徴量を表すクエリ画像特徴量データを取得する機能を有し、処理部は、データベース画像データの、クエリ画像データに対する類似度である第1の類似度を、複数のデータベース画像データのそれぞれについて算出する機能を有し、処理部は、第1の類似度に基づき、データベースタグの一部を用いて、クエリ画像データに紐付けられるクエリタグを取得する機能を有し、処理部は、クエリタグを表すクエリタグベクトルを取得する機能を有し、処理部は、データベース画像特徴量データと、データベースタグベクトルと、を含む第1のデータを取得する機能を有し、処理部は、クエリ画像特徴量データと、クエリタグベクトルと、を含む第2のデータを取得する機能を有し、処理部は、第1のデータの、第2のデータに対する類似度である第2の類似度を算出する機能を有する画像検索システムである。
【0012】
又は、上記態様において、データベースタグには、単語が含まれてもよい。
【0013】
又は、上記態様において、処理部は、文書データに対して形態素解析を行うことにより、データベースタグを生成する機能を有してもよい。
【0014】
又は、上記態様において、処理部は、第1のニューラルネットワークと、第2のニューラルネットワークと、を有し、データベース画像特徴量データ、及びクエリ画像特徴量データは、第1のニューラルネットワークを用いて取得され、データベースタグベクトル、及びクエリタグベクトルは、第2のニューラルネットワークを用いて取得されてもよい。
【0015】
又は、上記態様において、第1のニューラルネットワークは、畳み込み層と、プーリング層と、を有し、データベース画像特徴量データ、及びクエリ画像特徴量データは、プーリング層から出力されてもよい。
【0016】
又は、上記態様において、データベースタグベクトル、及びクエリタグベクトルは、分散表現ベクトルであってもよい。
【0017】
又は、上記態様において、第1の類似度、及び第2の類似度は、コサイン類似度であってもよい。
【0018】
又は、本発明の一態様は、文書データ、及び複数のデータベース画像が記憶されているデータベースと、入力部と、を有する画像検索システムを用いた画像検索方法であって、データベース画像データの特徴量を表すデータベース画像特徴量データを、複数のデータベース画像データのそれぞれについて取得し、文書データを用いてデータベースタグを複数生成し、データベースタグをデータベース画像データに紐づけ、データベースタグを表すデータベースタグベクトルを、複数のデータベースタグのそれぞれについて取得し、入力部にクエリ画像データを入力し、クエリ画像データの特徴量を表すクエリ画像特徴量データを取得し、データベース画像データの、クエリ画像データに対する類似度である第1の類似度を、複数のデータベース画像データのそれぞれについて算出し、第1の類似度に基づき、データベースタグの一部を用いて、クエリ画像データに紐付けられるクエリタグを取得し、クエリタグを表すクエリタグベクトルを取得し、データベース画像特徴量データ、及びデータベースタグベクトルを含む第1のデータと、クエリ画像特徴量データと、クエリタグベクトルと、を含む第2のデータと、を取得し、第1のデータの、第2のデータに対する類似度である第2の類似度を算出する画像検索方法である。
【0019】
又は、上記態様において、データベースタグには、単語が含まれてもよい。
【0020】
又は、上記態様において、文書データに対して形態素解析を行うことにより、データベースタグを生成してもよい。
【0021】
又は、上記態様において、データベース画像特徴量データ、及びクエリ画像特徴量データを、第1のニューラルネットワークを用いて取得し、データベースタグベクトル、及びクエリタグベクトルを、第2のニューラルネットワークを用いて取得してもよい。
【0022】
又は、上記態様において、第1のニューラルネットワークは、畳み込み層と、プーリング層と、を有し、データベース画像特徴量データ、及びクエリ画像特徴量データは、プーリング層から出力されてもよい。
【0023】
又は、上記態様において、データベースタグベクトル、及びクエリタグベクトルは、分散表現ベクトルであってもよい。
【0024】
又は、上記態様において、第1の類似度、及び第2の類似度は、コサイン類似度であってもよい。
【発明の効果】
【0025】
本発明の一態様により、検索精度が高い画像検索システムを提供することができる。又は、本発明の一態様により、短時間で検索を行うことができる画像検索システムを提供することができる。又は、本発明の一態様により、検索を簡便に行うことができる画像検索システムを提供することができる。又は、本発明の一態様により、新規な画像検索システムを提供することができる。
【0026】
又は、本発明の一態様により、検索精度が高い画像検索方法を提供することができる。又は、本発明の一態様により、短時間で検索を行うことができる画像検索方法を提供することができる。又は、本発明の一態様により、検索を簡便に行うことができる画像検索方法を提供することができる。又は、本発明の一態様により、新規な画像検索方法を提供することができる。
【0027】
なお、これらの効果の記載は、他の効果の存在を妨げるものではない。本発明の一態様は、必ずしも、これらの効果の全てを有する必要はない。明細書、図面、請求項の記載から、これら以外の効果を抽出することが可能である。
【図面の簡単な説明】
【0028】
図1は、画像検索システムの構成例を示すブロック図である。
図2は、検索用データの生成方法の一例を示すフローチャートである。
図3A、及び図3Bは、ニューラルネットワークの構成例を示す図である。
図4は、畳み込み処理、及びプーリング処理の一例を示す図である。
図5は、ニューラルネットワークの構成例を示す図である。
図6A、及び図6Bは、検索用データの生成方法の一例を示す図である。
図7Aは、検索用データの生成方法の一例を示す図である。図7Bは、ニューラルネットワークの構成例を示す図である。
図8A、及び図8Bは、検索用データの生成方法の一例を示す図である。
図9は、画像検索方法の一例を示すフローチャートである。
図10は、画像検索方法の一例を示す図である。
図11A、及び図11Bは、画像検索方法の一例を示す図である。
図12A、及び図12Bは、画像検索方法の一例を示す図である。
図13は、画像検索方法の一例を示す図である。
図14は、画像検索方法の一例を示すフローチャートである。
図15は、画像検索方法の一例を示す図である。
図16A、及び図16Bは、画像検索方法の一例を示す図である。
図17は、画像検索方法の一例を示すフローチャートである。
図18A、及び図18Bは、画像検索方法の一例を示す図である。
図19は、画像検索方法の一例を示す図である。
図20A図20B1、及び図20B2は、画像検索方法の一例を示す図である。
図21A、及び図21Bは、画像検索方法の一例を示す図である。
図22A、及び図22Bは、画像検索方法の一例を示す図である。
図23は、画像検索方法の一例を示すフローチャートである。
図24A、及び図24Bは、画像検索方法の一例を示す図である。
図25は、画像検索方法の一例を示す図である。
図26は、画像検索方法の一例を示す図である。
【発明を実施するための形態】
【0029】
実施の形態について、図面を用いて詳細に説明する。但し、本発明は以下の説明に限定されず、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。
【0030】
(実施の形態1)
本実施の形態では、本発明の一態様の画像検索システム、及び画像検索方法について、図面を用いて説明する。
【0031】
本発明の一態様の画像検索システムは、入力部と、データベースと、処理部と、を有する。処理部は第1のニューラルネットワークと、第2のニューラルネットワークと、を有する。第1及び第2のニューラルネットワークには、ニューロンを有する層が設けられる。
【0032】
本明細書等において、ニューラルネットワークとは、生物の神経回路網を模し、学習によってニューロン同士の結合強度を決定し、問題解決能力を持たせるモデル全般を指す。
【0033】
本明細書等において、ニューラルネットワークについて述べる際に、既にある情報からニューロンとニューロンの結合強度(重み係数ともいう)を決定することを「学習」という。
【0034】
また、本明細書等において、学習によって得られた結合強度を用いてニューラルネットワークを構成し、そこから新たな結論を導くことを「推論」という。
【0035】
データベースには、画像データが記憶されている。本発明の一態様の画像検索システムの使用者が画像データを入力部に入力すると、本発明の一態様の画像検索システムは、入力された画像データと類似する画像データを、データベースから検索して出力する。
【0036】
本明細書等において、データベースに記憶されている画像データを、データベース画像データと呼ぶ。また、入力部に入力された画像データを、クエリ画像データと呼ぶ。さらに、データベース画像データ、及びクエリ画像データをまとめて、単に画像データと呼ぶ場合がある。
【0037】
以下では、本発明の一態様の画像検索システムを用いた画像検索方法について説明する。
【0038】
画像データを、処理部が有する第1のニューラルネットワークに入力することにより、画像特徴量データを取得することができる。
【0039】
本明細書等において、画像データの特徴量を表すデータを、画像特徴量データと呼ぶ。例えば、データベース画像データの特徴量を表すデータをデータベース画像特徴量データと呼び、クエリ画像データの特徴量を表すデータをクエリ画像特徴量データと呼ぶ。
【0040】
第1のニューラルネットワークは、例えば畳み込み層と、プーリング層と、を有する、畳み込みニューラルネットワークとすることができる。第1のニューラルネットワークを畳み込みニューラルネットワークとする場合、画像データを第1のニューラルネットワークに入力することによりプーリング層から出力されるデータを、画像特徴量データとすることができる。
【0041】
また、データベース画像データに対して、タグを紐付ける。例えば、データベース画像データに紐付けられる文書データをデータベースに記憶させておき、当該文書データに対して形態素解析を行うことにより、タグの紐付けを行うことができる。当該タグは、データベース画像データに対応する画像の概念、技術的内容、注目点等を表すキーワードとすることができる。例えば、1つのタグは、1つの単語を表すものとすることができる。データベース画像データには、複数のタグを紐付けることができる。
【0042】
本明細書等において、データベース画像データに紐付けられているタグを、データベースタグと呼ぶ。また、クエリ画像データに紐付けられているタグを、クエリタグと呼ぶ。
【0043】
タグを、処理部が有する第2のニューラルネットワークに入力することにより、タグをベクトルにより表すことができる。例えば、タグを300次元の分散表現ベクトルにより表すことができる。
【0044】
本明細書等において、タグを表すベクトルを、タグベクトルと呼ぶ。例えば、データベースタグを表すベクトルをデータベースタグベクトルと呼び、クエリタグを表すベクトルをクエリタグベクトルと呼ぶ。また、1つのタグベクトルとは、1つのタグに対応するタグベクトルを示す。
【0045】
本明細書等において、ベクトルという用語は、複数の値の集合を示す。また、1つのベクトルを構成する値の個数を、次元数と呼ぶ。例えば、(5,1,4,3,2)で表されるベクトルは、5次元のベクトルであるということができる。なお、ベクトルを構成する値を、成分と呼ぶ場合がある。
【0046】
本発明の一態様の画像検索システムを用いた画像検索方法では、データベース画像データの他、当該データベース画像の特徴量を表すデータベース画像特徴量データが、あらかじめデータベースに記憶されている。また、データベース画像データに対して紐付けられているデータベースタグ、及び当該データベースタグを表すデータベースタグベクトルも、あらかじめデータベースに記憶されている。なお、データベースタグそのものは、データベースに記憶されていなくてもよい。
【0047】
本発明の一態様の画像検索システムを用いた画像検索方法では、画像検索システムの使用者が入力部にクエリ画像データを入力すると、クエリ画像データが第1のニューラルネットワークに入力され、クエリ画像特徴量データが生成される。次に、データベース画像特徴量データ及びクエリ画像特徴量データを用いて、データベース画像データの、クエリ画像データに対する類似度を算出する。例えば、コサイン類似度を算出する。クエリ画像データに対する類似度の算出は、例えば全てのデータベース画像データのそれぞれに対して行うことができる。
【0048】
その後、上記類似度の算出結果に基づき、データベースタグを用いてクエリタグを取得する。例えば、類似度が高いデータベース画像データに紐付けられているデータベースタグの中から、出現頻度が高いデータベースタグを、クエリタグとすることができる。なお、クエリタグの個数は、例えば1つのデータベース画像データに紐付けられているデータベースタグの個数と同数とすることができる。
【0049】
本明細書等において、1つの画像データとは、例えば1フレーム期間に表示される1枚の画像を表す画像データを示す。
【0050】
次に、データベース画像特徴量データと、データベースタグベクトルと、を含む第1のデータを取得する。また、クエリ画像特徴量データと、クエリタグベクトルと、を含む第2のデータを取得する。その後、第1のデータと、第2のデータと、の類似度を算出することにより、データベース画像データの、クエリ画像データに対する類似度を補正する。例えば、第1のデータと、第2のデータと、のコサイン類似度を算出することにより、当該補正を行う。
【0051】
ここで、1つの第1のデータには、例えば1つのデータベース画像特徴量データと、当該データベース画像特徴量データに対応するデータベース画像データに紐付けられたデータベースタグに対応するデータベースタグベクトルと、を含むことができる。つまり、第1のデータの個数は、データベース画像特徴量データの個数と同数とすることができる。また、1つの第2のデータには、クエリ画像特徴量データと、1つの第1のデータが有するデータベースタグベクトルと同数のクエリタグベクトルと、を含むことができる。
【0052】
次に、上記補正後の類似度の順位に関する情報を含むランキングデータを生成し、検索結果として本発明の一態様の画像検索システムの外部に出力する。以上のようにデータベース画像データの、クエリ画像データに対する類似度を補正することにより、例えば特徴量はクエリ画像と類似するが、概念が異なるデータベース画像が検索されることを抑制することができる。これにより、検索結果にノイズとなる画像が混入し、検索したい画像が出力されなくなることを抑制することができる。よって、本発明の一態様の画像検索システムは、高精度に検索を行うことができる。
【0053】
また、本発明の一態様の画像検索システムを用いた画像検索方法では、データベースタグを用いてクエリタグを取得する。当該取得方法は、例えばクエリ画像特徴量データを基にしてクエリタグを取得する方法と比較して、簡便な方法である。よって、本発明の一態様の画像検索システムは、短時間で検索を行うことができる。また、データベースタグを用いてクエリタグを取得する方法は、例えば本発明の一態様の画像検索システムの使用者が全てのクエリタグを指定する方法と比較して、クエリ画像データに対応する画像の概念、技術的内容、注目点等を表すタグを網羅的に取得することができる。よって、本発明の一態様の画像検索システムは、簡便かつ高い精度で検索を行うことができる。
【0054】
<1-1.画像検索システム>
図1は、画像検索システム10の構成例を示すブロック図である。なお、本明細書に添付した図面では、構成要素を機能ごとに分類し、互いに独立したブロックとしてブロック図を示しているが、実際の構成要素は機能ごとに完全に切り分けることが難しく、一つの構成要素が複数の機能に係わることもあり得る。また、一つの機能が複数の構成要素に係わることもあり得、例えば、処理部13で行われる複数の処理は、互いに異なるサーバによって実行されることがある。
【0055】
画像検索システム10は、少なくとも、処理部13を有する。図1に示す画像検索システム10は、さらに、入力部11、伝送路12、記憶部15、データベース17、及び出力部19を有する。
【0056】
[入力部11]
入力部11には、画像検索システム10の外部から画像データ等が供給される。入力部11に供給された画像データ等は、伝送路12を介して、処理部13、記憶部15、又はデータベース17に供給される。前述のように、入力部11に入力された画像データをクエリ画像データと呼ぶ。
【0057】
[伝送路12]
伝送路12は、画像データ等を伝達する機能を有する。入力部11、処理部13、記憶部15、データベース17、及び出力部19の間の情報の送受信は、伝送路12を介して行うことができる。
【0058】
[処理部13]
処理部13は、入力部11、記憶部15、データベース17等から供給された画像データ等を用いて、演算、推論等を行う機能を有する。処理部13はニューラルネットワークを有し、当該ニューラルネットワークを用いて演算、推論等を行うことができる。また、処理部13はニューラルネットワークを用いない演算等を行うことができる。処理部13は、演算結果、推論結果等を記憶部15、データベース17、出力部19等に供給することができる。
【0059】
処理部13には、チャネル形成領域に金属酸化物を有するトランジスタを用いることが好ましい。当該トランジスタはオフ電流が極めて低いため、当該トランジスタを記憶素子として機能する容量素子に流入した電荷(データ)を保持するためのスイッチとして用いることで、データの保持期間を長期にわたり確保することができる。当該トランジスタを、処理部13が有するレジスタ及びキャッシュメモリのうち少なくとも一方に用いることで、必要なときだけ処理部13を動作させ、他の場合には直前の処理の情報を当該記憶素子に待避させることにより処理部13をオフにすることができる。すなわち、ノーマリーオフコンピューティングが可能となり、画像検索システムの低消費電力化を図ることができる。
【0060】
本明細書等において、金属酸化物(metal oxide)とは、広い意味での金属の酸化物である。金属酸化物は、酸化物絶縁体、酸化物導電体(透明酸化物導電体を含む)、酸化物半導体(Oxide Semiconductor又は単にOSともいう)等に分類される。例えば、トランジスタの半導体層に金属酸化物を用いた場合、当該金属酸化物を酸化物半導体と呼称する場合がある。つまり、金属酸化物が増幅作用、整流作用、及びスイッチング作用の少なくとも1つを有する場合、当該金属酸化物を、金属酸化物半導体(metal oxide semiconductor)、略してOSということができる。
【0061】
また、本明細書等において、チャネル形成領域に酸化物半導体又は金属酸化物を用いたトランジスタをOxide Semiconductorトランジスタ、あるいはOSトランジスタという。
【0062】
チャネル形成領域が有する金属酸化物はインジウム(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)を含む金属酸化物であると好ましい。亜鉛を含む金属酸化物は結晶化しやすくなる場合がある。
【0063】
チャネル形成領域が有する金属酸化物は、インジウムを含む金属酸化物に限定されない。半導体層は、例えば、亜鉛スズ酸化物、ガリウムスズ酸化物等の、インジウムを含まず、亜鉛を含む金属酸化物、ガリウムを含む金属酸化物、スズを含む金属酸化物等であっても構わない。
【0064】
処理部13は、例えば、演算回路、又は中央演算装置(CPU:Central Processing Unit)等を有する。
【0065】
処理部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のうち少なくとも一方に格納される。
【0066】
処理部13はメインメモリを有していてもよい。メインメモリは、RAM(Random Access Memory)等の揮発性メモリ、及びROM(Read Only Memory)等の不揮発性メモリのうち少なくとも一方を有する。
【0067】
RAMとしては、例えばDRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等が用いられ、処理部13の作業空間として仮想的にメモリ空間が割り当てられ利用される。記憶部15に格納されたオペレーティングシステム、アプリケーションプログラム、プログラムモジュール、プログラムデータ、及びルックアップテーブル等は、実行のためにRAMにロードされる。RAMにロードされたこれらのデータ、プログラム、及びプログラムモジュールは、それぞれ、処理部13に直接アクセスされ、操作される。
【0068】
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)、フラッシュメモリ等が挙げられる。
【0069】
[記憶部15]
記憶部15は、処理部13が実行するプログラムを記憶する機能を有する。また、記憶部15は、処理部13が生成した演算結果及び推論結果、並びに、入力部11に入力された画像データ等を記憶する機能を有していてもよい。
【0070】
記憶部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)等の記録メディアドライブを有していてもよい。
【0071】
[データベース17]
データベース17は、検索対象となる画像データを記憶する機能を有する。前述のように、データベースに記憶されている画像データを、データベース画像データと呼ぶ。また、データベース17は、処理部13が生成した演算結果及び推論結果を記憶する機能を有する。さらに、入力部11に入力された画像データ等を記憶する機能を有していてもよい。なお、記憶部15及びデータベース17は互いに分離されていなくてもよい。例えば、画像検索システム10は、記憶部15及びデータベース17の双方の機能を有する記憶ユニットを有していてもよい。
【0072】
[出力部19]
出力部19は、画像検索システム10の外部に情報を供給する機能を有する。例えば、処理部13における演算結果又は推論結果等を外部に供給することができる。
【0073】
<1-2.画像検索方法-1>
まず、画像検索システム10を用いて検索を行うために事前に行う処理について説明する。図2は、当該処理の方法の一例を示すフローチャートである。
【0074】
[ステップS01]
まず、データベース17から伝送路12を介して、データベース画像データGDDBが処理部13に入力される。データベース画像データGDDBは、知的財産の情報が有する図面を表すデータとすることができる。ここで、知的財産の情報としては、例えば特許文献(公開特許公報、特許公報等)、実用新案公報、意匠公報、及び論文等の刊行物が挙げられる。国内で発行された刊行物に限られず、世界各国で発行された刊行物を、知的財産の情報として用いることができる。
【0075】
知的財産の情報は、刊行物に限られない。例えば、画像検索システムの使用者又は使用団体が独自に有する画像ファイル等の各種ファイルも、データベース画像データGDDBとして用いることができる。さらに、知的財産の情報としては、発明、考案、又は意匠を説明する図面等が挙げられる。
【0076】
また、データベース画像データGDDBは、例えば、特定の出願人の特許文献に記載されている図面を表すデータ、又は特定の技術分野の特許文献に記載されている図面を表すデータを有することができる。
【0077】
画像検索システム10は、クエリ画像データと類似するデータベース画像データGDDBを検索する機能を有する。よって、画像検索システム10を用いることにより、例えば出願前の発明と類似する特許文献、論文、又は工業製品を検索することができる。これにより、出願前の発明に係る先行技術調査をすることができる。関連する先行技術を把握し再検討することで、発明を強化し、他社が回避困難な強い特許になる発明とすることができる。
【0078】
また、画像検索システム10を用いることにより、例えば発売前の工業製品と類似する特許文献、論文、又は工業製品を検索することができる。データベース画像データGDDBが自社の特許文献に記載されている画像に対応するデータを有する場合、発売前の工業製品に係る技術が社内で十分に特許出願できているかを確認することができる。又は、データベース画像データGDDBが他社の特許文献に記載されている画像に対応するデータを有する場合、発売前の工業製品が他社の知的財産権を侵害していないかを確認することができる。関連する先行技術を把握し再検討することで、新たな発明を発掘し、自社の事業に貢献する強い特許になる発明とすることができる。なお、発売前の工業製品に限らず、発売後の工業製品について、検索してもよい。
【0079】
また、例えば、画像検索システム10を用いて、特定の特許と類似する特許文献、論文、又は工業製品を検索することができる。特に、当該特許の出願日を基準に調べることで、当該特許が無効理由を含まないか、簡便かつ高い精度で調査することができる。
【0080】
[ステップS02]
次に、データベース画像データGDDBを、処理部13が有するニューラルネットワークに入力する。
【0081】
図3Aは、処理部13が有するニューラルネットワークであるニューラルネットワーク30の構成例を示す図である。ニューラルネットワーク30は、層31[1]乃至層31[m](mは1以上の整数)を有する。
【0082】
層31[1]乃至層31[m]は、ニューロンを有し、各層に設けられているニューロン同士が結合されている。例えば、層31[1]に設けられているニューロンは、層31[2]に設けられているニューロンと結合されている。また、層31[2]に設けられているニューロンは、層31[1]に設けられているニューロン、及び層31[3]に設けられているニューロンと結合されている。つまり、層31[1]乃至層31[m]により、階層型のニューラルネットワークが構成されている。
【0083】
データベース画像データGDDBは層31[1]に入力され、層31[1]は入力された画像データに対応するデータを出力する。当該データは層31[2]に入力され、層31[2]は入力されたデータに対応するデータを出力する。層31[m]には層31[m-1]から出力されたデータが入力され、層31[m]は当該入力されたデータに対応するデータを出力する。以上より、層31[1]を入力層、層31[2]乃至層31[m-1]を中間層、層31[m]を出力層とすることができる。
【0084】
ニューラルネットワーク30は、例えば層31[1]乃至層31[m]から出力されるデータが、ニューラルネットワーク30に入力された画像データの特徴量を表すようにあらかじめ学習されている。学習は、教師なし学習、教師あり学習等により行うことができる。特に、教師なし学習は、教師データ(正解ラベルともいう)が不要であるため好ましい。また、教師なし学習、教師あり学習のどちらの方法で学習を行う場合であっても、学習アルゴリズムとして誤差逆伝播方式等を用いることができる。
【0085】
ここで、学習データとして、データベース画像データGDDBを用いることが好ましい。これにより、例えば層31[1]乃至層31[m]から出力されるデータを、ニューラルネットワーク30に入力された画像データの特徴量を正確に表すものとすることができる。例えば、データベース17に記憶されているデータベース画像データGDDBの全てを学習データに用いて、ニューラルネットワーク30は学習を行うことができる。例えば、データベース画像データGDDBの一部を学習データに用いて、ニューラルネットワーク30は学習を行うことができる。例えば、データベース画像データGDDBの他に、記憶部15に記憶されている画像データ、及び画像検索システム10の外部から入力部11を介して処理部13に入力された画像データを学習データに用いて、ニューラルネットワーク30は学習を行うことができる。
【0086】
なお、学習データとして、データベース画像データGDDBを用いなくてもよい。例えば、画像検索システム10の外部から入力部11を介して処理部13に入力された画像データのみを学習データに用いて、ニューラルネットワーク30は学習を行うことができる。
【0087】
ニューラルネットワーク30は、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)とすることができる。図3Bは、ニューラルネットワーク30としてCNNを適用した場合の、ニューラルネットワーク30の構成例を示す図である。ここで、CNNを適用したニューラルネットワーク30を、ニューラルネットワーク30aとする。
【0088】
ニューラルネットワーク30aは、畳み込み層CL、プーリング層PL、及び全結合層FCLを有する。図3Bでは、ニューラルネットワーク30aが、畳み込み層CLとプーリング層PLをそれぞれm層(mは1以上の整数)ずつ有し、全結合層FCLを1層有する例を示している。なお、ニューラルネットワーク30aは、全結合層FCLを2層以上有してもよい。
【0089】
畳み込み層CLは、当該畳み込み層CLに入力されたデータに対して畳み込みを行う機能を有する。例えば、畳み込み層CL[1]は、処理部13に入力された画像データに対して畳み込みを行う機能を有する。また、畳み込み層CL[2]は、プーリング層PL[1]から出力されたデータに対して畳み込みを行う機能を有する。また、畳み込み層CL[m]は、プーリング層PL[m-1]から出力されたデータに対して畳み込みを行う機能を有する。
【0090】
畳み込みは、畳み込み層CLに入力されたデータと、重みフィルタと、の積和演算を繰り返すことにより行われる。畳み込み層CLにおける畳み込みにより、ニューラルネットワーク30aに入力された画像データに対応する画像の特徴等が抽出される。
【0091】
畳み込みが施されたデータは、活性化関数によって変換された後、プーリング層PLに出力される。活性化関数としては、ReLU(Rectified Linear Units)等を用いることができる。ReLUは、入力値が負である場合は“0”を出力し、入力値が“0”以上である場合は入力値をそのまま出力する関数である。また、活性化関数として、シグモイド関数、tanh関数等を用いることもできる。
【0092】
プーリング層PLは、畳み込み層CLから入力されたデータに対してプーリングを行う機能を有する。プーリングは、データを複数の領域に分割し、当該領域ごとに所定のデータを抽出してマトリクス状に配置する処理である。プーリングにより、畳み込み層CLによって抽出された特徴を残しつつ、データ量を小さくすることができる。また、入力データの微小なずれに対するロバスト性を高めることができる。なお、プーリングとしては、最大プーリング、平均プーリング、Lpプーリング等を用いることができる。
【0093】
全結合層FCLは、プーリング層PL[m]から出力されたデータを用いて、画像の判定を行う機能を有する。全結合層FCLは、ある層の全てのノードが、次の層の全てのノードと接続された構成を有する。畳み込み層CL又はプーリング層PLから出力されたデータは2次元の特徴マップであり、全結合層FCLに入力されると1次元に展開される。そして、全結合層FCLによる推論によって得られたベクトルが、全結合層FCLから出力される。
【0094】
なお、ニューラルネットワーク30aの構成は図3Bの構成に限定されない。例えば、プーリング層PLが複数の畳み込み層CLごとに設けられていてもよい。つまり、ニューラルネットワーク30aが有するプーリング層PLの数は、畳み込み層CLの数より少なくてもよい。また、抽出された特徴の位置情報を極力残したい場合は、プーリング層PLを設けなくてもよい。
【0095】
ニューラルネットワーク30aは学習を行うことにより、重みフィルタのフィルタ値、全結合層FCLの重み係数等を最適化することができる。
【0096】
次に、畳み込み層CLにおいて行われる畳み込み処理、及びプーリング層PLにおいて行われるプーリング処理の一例について、図4を用いて説明する。図4において、畳み込み層CLに入力されたデータは、3行3列の入力データ値(入力データ値i11、入力データ値i12、入力データ値i13、入力データ値i21、入力データ値i22、入力データ値i23、入力データ値i31、入力データ値i32、入力データ値i33)を有するとする。また、重みフィルタは、2行2列のフィルタ値(フィルタ値f11、フィルタ値f12、フィルタ値f21、フィルタ値f22)を有するとする。
【0097】
ここで、例えば畳み込み層CL[1]に入力されるデータは、画像データとすることができる。この場合、上記入力データ値は、画像データに含まれる画素値とすることができる。
【0098】
本明細書等において、画素値とは、画素が射出する光の輝度の階調を表す値を示す。例えば、画素値が8ビットの値である場合、画素は256階調の輝度の光を射出することができる。画像データは、画素値の集合を含むということができ、例えば画素と同数の画素値を含むことができる。例えば、画像の画素数が2×2である場合、当該画像を表す画像データは、2×2の画素値を含むということができる。
【0099】
また、例えば畳み込み層CL[2]に入力される上記入力データ値は、プーリング層PC[1]の出力値とすることができ、畳み込み層CL[m]に入力される上記入力データ値は、プーリング層PC[m-1]の出力値とすることができる。
【0100】
畳み込みは、入力データ値とフィルタ値との積和演算によって行われる。フィルタ値は、所定の特徴を示すデータ(特徴データという)とすることができる。この場合、入力データ値とフィルタ値を比較することにより、ニューラルネットワーク30aに入力された画像データに対して特徴抽出を行うことができる。
【0101】
図4では、畳み込み層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を取得する様子を示している。以上より、図4に示す畳み込み処理のストライドは1であるということができる。
【0102】
畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22は、それぞれ下式に示す積和演算により取得することができる。
【0103】
【数1】
【0104】
【数2】
【0105】
【数3】
【0106】
【数4】
【0107】
畳み込み層CLが取得した畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22は、アドレスに従ってマトリクス状に配列された後、プーリング層PLに出力される。具体的には、畳み込み値C11は1行1列目に配置され、畳み込み値C12は1行2列目に配置され、畳み込み値C21は2行1列目に配置され、畳み込み値C22は2行2列目に配置される。
【0108】
図4では、プーリング層PLに畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22が入力され、当該4個の畳み込み値を基に1個の値をプーリング値Pとする様子を示している。例えば、畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22のうち、最大値をプーリング値Pとすることができる。又は、畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22の平均値をプーリング値Pとすることができる。プーリング値Pは、プーリング層PLから出力される出力値となる。
【0109】
図4では、畳み込み層CLに入力されるデータを1個の重みフィルタにより処理する例を示しているが、2個以上の重みフィルタにより処理してもよい。この場合、ニューラルネットワーク30aに入力された画像データに含まれる複数の特徴を抽出することができる。畳み込み層CLに入力されるデータを2個以上の重みフィルタにより処理する場合、フィルタごとに図4に示す処理を行う。また、前述のように図4ではストライドは1としたが、ストライドを2以上としてもよい。
【0110】
図5は、ニューラルネットワーク30aが有する畳み込み層CL、及びプーリング層PLの構成例を示す図である。図5では、畳み込み層CL及びプーリング層PLが図4に示す動作を行う例を示している。
【0111】
図5には、ニューロン32を示している。具体的には、ニューロン32として、ニューロン32a、ニューロン32b、及びニューロン32cを示している。図5において、ニューロン32から出力される値を、当該ニューロン32の内部に記載している。当該値は、矢印の方向に出力される。また、当該値に重み係数を乗ずる場合は、矢印の近傍に重み係数を記載している。図5では、フィルタ値f11、フィルタ値f12、フィルタ値f21、及びフィルタ値f22を重み係数としている。
【0112】
ニューロン32aは、図5に示す畳み込み層CLの前の層である層Lが有するニューロン32である。層Lは、例えば図5に示す畳み込み層CLが畳み込み層CL[1]である場合は入力層とすることができ、畳み込み層CL[2]である場合はプーリング層PL[1]とすることができ、畳み込み層CL[m]である場合はプーリング層PL[m-1]とすることができる。
【0113】
図5では、ニューロン32aとして、ニューロン32a[1]乃至ニューロン32a[9]を示している。図5に示す場合において、ニューロン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を出力する。
【0114】
ニューロン32bは、図5に示す畳み込み層CLが有するニューロン32である。図5では、ニューロン32bとして、ニューロン32b[1]乃至ニューロン32b[4]を示している。
【0115】
図5に示す場合において、ニューロン32b[1]には、入力データ値i11にフィルタ値f11を乗じた値と、入力データ値i12にフィルタ値f12を乗じた値と、入力データ値i21にフィルタ値f21を乗じた値と、入力データ値i22にフィルタ値f22を乗じた値と、が入力される。そして、これらの値の和である畳み込み値C11が、ニューロン32b[1]から出力される。
【0116】
また、ニューロン32b[2]には、入力データ値i12にフィルタ値f11を乗じた値と、入力データ値i13にフィルタ値f12を乗じた値と、入力データ値i22にフィルタ値f21を乗じた値と、入力データ値i23にフィルタ値f22を乗じた値と、が入力される。そして、これらの値の和である畳み込み値C12が、ニューロン32b[2]から出力される。
【0117】
また、ニューロン32b[3]には、入力データ値i21にフィルタ値f11を乗じた値と、入力データ値i22にフィルタ値f12を乗じた値と、入力データ値i31にフィルタ値f21を乗じた値と、入力データ値i32にフィルタ値f22を乗じた値と、が入力される。そして、これらの値の和である畳み込み値C21が、ニューロン32b[3]から出力される。
【0118】
さらに、ニューロン32b[4]には、入力データ値i22にフィルタ値f11を乗じた値と、入力データ値i23にフィルタ値f12を乗じた値と、入力データ値i32にフィルタ値f21を乗じた値と、入力データ値i33にフィルタ値f22を乗じた値と、が入力される。そして、これらの値の和である畳み込み値C22が、ニューロン32b[4]から出力される。
【0119】
図5に示すように、ニューロン32b[1]乃至ニューロン32b[4]のそれぞれは、ニューロン32a[1]乃至ニューロン32a[9]の一部と結合されている。よって、畳み込み層CLは部分結合層であるということができる。
【0120】
ニューロン32cは、図5に示すプーリング層PLが有するニューロン32である。図5に示す場合において、ニューロン32cには、畳み込み値C11、畳み込み値C12、畳み込み値C21、及び畳み込み値C22が入力される。そして、プーリング値Pがニューロン32cから出力される。なお、ニューロン32bから出力される畳み込み値には、重み係数は乗じない。前述のように、重み係数は、ニューラルネットワークの学習によって最適化されるパラメータである。よって、プーリング層PLが演算の際用いるパラメータには、学習によって最適化されるパラメータが存在しない構成とすることができる。
【0121】
以上より、データベース画像データGDDBをニューラルネットワーク30に入力することにより、データベース画像データGDDBの特徴量を表すデータベース画像特徴量データGFDDBを、処理部13が取得することができる。例えば、図3Aに示すように、層31[m]から出力されるデータを、データベース画像特徴量データGFDDBとすることができる。又は、図3Bに示すように、プーリング層PL[m]から出力されるデータを、データベース画像特徴量データGFDDBとすることができる。なお、データベース画像特徴量データGFDDBは、2層以上の出力データを含んでいてもよい。データベース画像特徴量データGFDDBが多くの層の出力データを含むことにより、データベース画像特徴量データGFDDBを、データベース画像データGDDBの特徴をより正確に表すものとすることができる。処理部13が取得したデータベース画像特徴量データGFDDBは、データベース17に記憶することができる。
【0122】
[ステップS03]
次に、データベース画像データGDDBに紐付けられるデータベースタグTAGDBを、処理部13が取得する。データベース画像データGDDBに対応する画像の概念、技術的内容、注目点等を表すタグがデータベースタグTAGDBとなるように、データベースタグTAGDBを取得することが好ましい。図6Aは、データベースタグTAGDBを取得する方法の一例を示す図である。なお、図6Aに示す各データの図示は一例であり、これに限定されない。また、他の図で示す各データ、ベクトル等の図示も一例であり、図示する内容に限定されない。
【0123】
本明細書等において、複数の要素に同じ符号を用いる場合、特にそれらを区別する必要があるときは、符号に[1]、[2]等、識別用の符号を付して記載する。
【0124】
図6Aに示す方法では、一例として、データベース画像データGDDB[1]乃至データベース画像データGDDB[100]のそれぞれに、タグを紐付けるとする。また、データベース画像データGDDBに対応する文書データTDDBが、データベース17にあらかじめ記憶されているものとする。さらに、データベース画像データGDDBには、図番号が紐付けられているものとする。
【0125】
文書データTDDBは、例えばデータベース画像データGDDBが表す図面が掲載された特許文献、実用新案公報、意匠公報、及び論文等の刊行物に記載された文書に対応するデータとすることができる。例えば、データベース画像データGDDBが表す図面が掲載された刊行物が特許文献、又は実用新案公報である場合は、明細書に対応するデータを文書データTDDBとすることができる。又は、特許請求の範囲、実用新案登録請求の範囲、若しくは要約書に対応するデータを文書データTDDBとすることができる。また、データベース画像データGDDBが掲載された刊行物が意匠公報である場合は、願書に対応するデータを文書データTDDBとすることができる。
【0126】
例えば、文書データTDDBを明細書、又は論文等に対応するデータとする場合、データベースタグTAGDBは、データベース画像データGDDBが表す図面を説明する段落に対して形態素解析を行うことにより取得することができる。図6Aでは、データベース画像データGDDB[1]に対応する画像の図番号が「図1」であり、データベース画像データGDDB[1]に紐付けられた文書データTDDB[1]が表す文書の段落[0xx0]に「図1は、」と記載されている例を示している。よって、例えば段落[0xx0]に、データベース画像データGDDB[1]が表す図面の説明が記載されているとみなして、段落[0xx0]に記載されている文章に対して形態素解析を行うことにより、データベースタグTAGDB[1]を取得することができる。また、図6Aでは、画像データGDDB[100]に対応する画像の図番号が「図15」であり、データベース画像データGDDB[100]に紐付けられた文書データTDDB[100]が表す文書の段落[0xx7]に「図15は、」と記載されている例を示している。よって、例えば段落[0xx7]に、データベース画像データGDDB[100]が表す図面の説明が記載されているとみなして、段落[0xx7]に記載されている文章に対して形態素解析を行うことにより、データベースタグTAGDB[100]を取得することができる。
【0127】
なお、全ての文書データTDDBが異なるものでなくてもよい。例えば、データベース画像データGDDB[1]が所定の刊行物の「図1」に対応し、データベース画像データGDDB[2]が同一の刊行物の「図2」に対応する場合、文書データTDDB[1]が表す文書と文書データTDDB[2]が表す文書は同一のものとすることができる。
【0128】
形態素解析では、自然言語で書かれた文章を、形態素(言語として意味を持つ最小単位)に分割し、形態素の品詞等を判別することができる。これにより、例えば段落[0xx0]に記載された名詞のみを抽出し、データベースタグTAGDB[1]を取得することができる。図6Aに示す場合では、「回路図」、「aaa」、「bbb」、「ccc」、「ddd」等の単語が、データベースタグTAGDB[1]であるとしている。また、「ブロック図」、「ggg」、「aaa」、「ccc」、「hhh」等の単語が、データベースタグTAGDB[100]であるとしている。
【0129】
以上のように、データベースタグTAGDBは、例えばデータベース画像データGDDBに紐付けられた文書データTDDBに対して形態素解析を行うことにより取得することができる。当該方法でデータベースタグTAGDBを取得することにより、データベース画像データGDDBに対応する画像の概念、技術的内容、注目点等を表すタグを網羅的に取得することができる。
【0130】
本明細書等において、1つのタグは、例えば1つの単語を意味する。例えば、図6Aに示す場合では、データベースタグTAGDB[1]の個数は5個以上とすることができる。また、データベースタグTAGDB[100]の個数は5個以上とすることができる。
【0131】
なお、例えば形態素解析によって抽出された単語のすべてを、データベースタグTAGDBとしなくてもよい。例えば、抽出された単語の中から、所定の個数の単語を抽出して、抽出した単語をデータベースタグTAGDBとすることができる。例えば、抽出された単語の中から、TF-IDF(Term Frequency-Inverse Document Frequency)が高い単語を所定の個数だけ抽出して、抽出した単語をデータベースタグTAGDBとすることができる。データベース画像データGDDBに紐付けられるデータベースタグTAGDBの個数を、複数のデータベース画像データGDDBのそれぞれに対して等しくすることにより、画像検索システム10を用いた画像検索方法を簡便なものとすることができる。
【0132】
TF-IDFは、単語の出現頻度(TF)と逆文書頻度(IDF)という2つの指標に基づいて算出される。よって、文書全体でよく出現する単語は、TFは高いがIDFが低くなる。したがって、データベースタグTAGDBの候補となる単語を抽出した段落等での出現頻度が高く、他の段落等での出現頻度が低い単語より、TF-IDFが低くなる。例えば文書全体でよく出現する単語は、概念、技術的内容、注目点といった画像の特徴を、強く表す単語ではない可能性がある。よって、TF-IDFを用いてデータベースタグTAGDBを取得すると、例えばTFのみを用いてデータベースタグTAGDBを取得する場合より、データベース画像の特徴を強く表すデータベースタグTAGDBを取得することができる。したがって、画像検索システム10は高い精度で検索を行うことができる。なお、TF-IDFを算出せず、例えばTFのみを用いてデータベースタグTAGDBを取得してもよい。この場合、処理部13が行う計算を簡便なものとすることができる。
【0133】
なお、2段落以上の文章に対して形態素解析を行ってもよい。例えば、データベース画像データGDDBが表す図面の説明が記載されているとみなされた段落の他、当該段落の前後の段落に対しても形態素解析を行ってもよい。例えば、図6Aに示す文書データTDDB[1]に対して形態素解析を行う場合には、段落[0xx0]の他、次の段落である段落[0xx1]に対して形態素解析を行ってもよい。この場合、例えば段落[0xx1]に記載されている単語「eee」をデータベースタグTAGDB[1]とすることができる。また、例えば図6Aに示す文書データTDDB[100]に対して形態素解析を行う場合には、段落[0xx7]の他、前の段落である段落[0xx6]に対して形態素解析を行ってもよい。この場合、例えば段落[0xx6]に記載されている単語「fff」をデータベースタグTAGDB[100]とすることができる。
【0134】
又は、データベース画像データGDDBに紐付けられた図番号が記載されたすべての段落に対して形態素解析を行ってもよい。又は、データベース画像データGDDBに紐付けられた図番号が記載され、かつ他の図番号が記載されていない段落に対して形態素解析を行ってもよい。
【0135】
又は、所定の段落に記載された文章に含まれる、一部の文に対してのみ形態素解析を行ってもよい。例えば、図6Aに示す場合では、段落[0xx0]に記載された文章のうち、「図1は、」を含む文に対してのみ、形態素解析を行ってもよい。この場合、単語「ddd」は、データベースタグTAGDB[1]とはならない。
【0136】
なお、文書データTDDBが表す文書に記載されている単語そのものだけでなく、当該単語の類義語を、データベースタグTAGDBとしてもよい。例えば、記憶部15、又はデータベース17にあらかじめ類義語辞書データを記憶させておき、形態素解析によって抽出された単語と、当該単語の類義語として類義語辞書に登録されている単語と、をデータベースタグTAGDBとすることができる。ここで言う類義語としては、一般に入手可能な類義語辞書を用いてもよいが、単語の分散表現を用いて抽出した類義語を用いてもよい。また、分散表現を用いた類義語の抽出は、検索対象の文書が属する分野の、他の文書を含むデータベースを用いて行ってもよい。
【0137】
文書データTDDBが表す文書に記載されている単語そのものだけでなく、当該単語の類義語をデータベースタグTAGDBとすることにより、データベースタグTAGDBを、データベース画像データGDDBの概念、技術的内容、注目点といった特徴を強く表すものとすることができる。
【0138】
なお、形態素解析を用いずにデータベースタグTAGDBを取得してもよい。例えば、データベース画像特徴量データGFDDBを基に、データベースタグTAGDBを取得してもよい。
【0139】
図6Bは、データベース画像データGDDBに図番号を紐付ける方法の一例を示す図である。図6Bでは、刊行物データPDに、画像データGDDB[1]及び画像データGDDB[2]、並びに文書データTDDBが含まれているとする。また、刊行物データPDが表す刊行物には、テキスト「図1 xxx」と、テキスト「図2 yyy」が記載されているとする。なお、テキスト「図1 xxx」を表すデータと、テキスト「図2 yyy」を表すデータは、文書データTDDBには含まれないとする。また、図6Bに示す「x1」、「x2」、「x1<x2」、及び破線、矢印等は、説明の便宜のために付したものであり、実際には刊行物データPDが表す刊行物に記載されていないものとする。
【0140】
図6Bに示す方法では、例えば図面から所定の距離以内にテキスト「図N」が記載されていた場合、テキスト「図N」と最も近い距離に設けられた図面の図番号を「N」とすることができる。ここで、例えばテキストの中心を表す座標(中心座標)と、図面の中心座標と、の間の距離を、テキストから図面までの距離とすることができる。なお、「N」は整数に限らず、例えば文字を含んでいてもよい。例えば、Nが「1(A)」であってもよい。
【0141】
図6Bに示す場合では、テキスト「図1 xxx」の中心座標と、データベース画像データGDDB[1]に対応する図面の中心座標と、の間の距離x1は、テキスト「図1 xxx」の中心座標と、データベース画像データGDDB[2]に対応する図面の中心座標と、の間の距離x2より短い。よって、テキスト「図1 xxx」と最も近い距離に設けられた図面は、データベース画像データGDDB[1]であるということができる。よって、データベース画像データGDDB[1]に紐付けられる図番号は「1」とすることができる。
【0142】
また、図6Bでは、文書データTDDBが表す文書の段落[0zz3]に「図1は、」と記載され、段落[0zz4]に「図2は、」と記載されている例を示している。以上より、図6Bに示す場合では、データベース画像データGDDB[1]に紐付けられるデータベースタグTAGDB[1]は、例えば段落[0zz3]に記載されている文章に対して形態素解析を行うことにより取得することができる。図6Bでは、段落[0zz3]に記載されている、「ブロック図」、「iii」、「kkk」、「hhh」、「ppp」等の単語が、データベースタグTAGDB[1]であるとしている。
【0143】
なお、例えば全ての図面の中心座標を並べて第1の1次元配列とし、例えば全てのテキスト「図N」の中心座標を並べて第2の1次元配列としてもよい。そして、第1の1次元配列に含まれる座標と、第2の1次元配列に含まれる座標と、を比較して、各図面に対して、最も近い座標に記載されているテキスト「図N」を紐付けてもよい。つまり、テキスト「図N」の位置を表す座標と最も近い座標に位置する図面の図番号を「N」とすることができる。第1の1次元配列に含まれる座標と、第2の1次元配列に含まれる座標と、の比較は、例えばx座標の差の2乗と、y座標の差の2乗と、の和を算出することにより行うことができる。当該方法により比較を行う場合、例えば上記和の値が最も小さい要素を、最も近い座標に位置する要素とすることができる。
【0144】
以上の方法により、処理部13がデータベースタグTAGDBを取得することができる。処理部13が取得したデータベースタグTAGDBは、データベース17に記憶することができる。
【0145】
[ステップS04]
次に、データベースタグTAGDBをベクトルにより表す。データベースタグTAGDBを表すベクトルを、データベースタグベクトルTAGVDBと呼ぶ。図7Aは、図6Aに示すデータベースタグTAGDBが、ベクトルにより表現されている様子を示す図である。
【0146】
データベースタグベクトルTAGVDBは、データベースタグTAGDBを、例えば処理部13が有するニューラルネットワークに入力することにより取得することができる。この場合、データベースタグベクトルTAGVDBは、例えば分散表現ベクトルとすることができる。分散表現ベクトルとは、単語を、各特徴要素(次元)に対して、定量化した連続値で表現したベクトルである。意味の近い単語同士は、ベクトルも近くなる。
【0147】
分散表現ベクトルを取得するために用いるニューラルネットワークは、前述の画像特徴量データを取得するために用いるニューラルネットワークとは異なる構成とすることができる。図7Bは、分散表現ベクトルを取得するために用いるニューラルネットワークである、ニューラルネットワーク40の構成例を示す図である。
【0148】
本明細書等において、例えば画像特徴量データを取得するために用いるニューラルネットワークを第1のニューラルネットワークと呼び、分散表現ベクトルを取得するために用いるニューラルネットワークを第2のニューラルネットワークと呼ぶ場合がある。なお、序数はあくまで一例であり、例えば分散表現ベクトルを取得するために用いるニューラルネットワークを第1のニューラルネットワークと呼び、画像特徴量データを取得するために用いるニューラルネットワークを第2のニューラルネットワークと呼んでもよい。また、例えば画像特徴量データを取得するために用いるニューラルネットワークを第3のニューラルネットワーク等と呼んでもよいし、例えば分散表現ベクトルを取得するために用いるニューラルネットワークを第3のニューラルネットワーク等と呼んでもよい。
【0149】
図7Bに示すように、ニューラルネットワーク40は、入力層ILと、中間層MLと、出力層OLと、を有する。ここで、ニューラルネットワーク40は、中間層MLを1層有する構成とすることができる。ニューラルネットワーク40は、入力層ILに入力された単語を表す分散表現ベクトルを、例えばオープンソース化されているアルゴリズムであるWord2Vecを用いて取得することができる。以下では、図7Bに示す構成のニューラルネットワーク40が、入力層ILに入力されたデータベースタグTAGDBを表すデータベースタグベクトルTAGVDBを取得する方法の一例を説明する。
【0150】
入力層ILには、データベースタグTAGDBをone-hotベクトルで表したベクトルが入力される。ここで、one-hotベクトルは、1成分が1単語を表し、入力層ILに入力する単語に対応する成分を1、他の成分を0とすることができる。つまり、one-hotベクトルは、1つの成分が1で、他の成分がすべて0であるベクトルということができる。入力層ILが有するニューロンの個数は、当該one-hotベクトルを構成する成分の数と同数とすることができる。
【0151】
中間層MLは、入力層ILに入力されたone-hotベクトルを基にして、分散表現ベクトルを生成する機能を有する。例えば、one-hotベクトルに、所定の重みを乗じることにより、中間層MLは分散表現ベクトルを生成することができる。当該重みは、行列により表すことができるので、one-hotベクトルと、重み行列と、の間で積和演算を行うことにより、ニューラルネットワーク40は分散表現ベクトルを生成することができる。
【0152】
なお、中間層MLが有するニューロンの個数は、分散表現ベクトルの次元数と同数とすることができる。例えば、分散表現ベクトルの次元数が300である場合は、中間層MLは300個のニューロンを有する構成とすることができる。
【0153】
上記重み行列は、学習、例えば教師あり学習によって取得することができる。具体的には、ある単語をone-hotベクトルで表したものを入力層ILに入力し、入力層ILに入力した単語の周辺語をone-hotベクトルで表したものを出力層OLに入力する。ここで、入力層ILに入力する単語1つあたり、複数の周辺語を出力層OLに入力する。そして、出力層OLが、入力層ILに入力した単語の周辺語となる確率を出力できるようになるように、ニューラルネットワーク40の重み行列の値を調整する。なお、例えば出力層OLが有するニューロン1つは1単語に対応する。以上がニューラルネットワーク40の学習方法の一例である。
【0154】
以上のように、入力層IL、及び出力層OLのいずれも、ニューロン1つを1単語に対応させることができる。よって、入力層ILが有するニューロンの個数と、出力層OLが有するニューロンの個数と、は同数とすることができる。
【0155】
また、中間層MLが有するニューロンの個数は、入力層ILが有するニューロンの個数より少なくすることができる。例えば、ニューラルネットワーク40により処理を行うことができる単語数、つまり入力層ILが有するニューロンの個数を10000個とし、分散表現ベクトルの次元数、つまり中間層MLが有するニューロンの個数を300個とすることができる。よって、分散表現では、表現可能な単語数が増えても次元数を少ないままとすることができるので、表現可能な単語数が増えても計算量が増加しにくい。よって、画像検索システム10は短時間で検索を行うことができる。
【0156】
以上の方法により、処理部13がデータベースタグベクトルTAGVDBを取得することができる。処理部13が取得したデータベースタグベクトルTAGVDBは、データベース17に記憶することができる。
【0157】
以上、ステップS01乃至ステップS04により、処理部13がデータベース画像特徴量データGFDDB、データベースタグTAGDB、及びデータベースタグベクトルTAGVDBを取得し、データベース17に記憶される。これにより、画像検索システム10がクエリ画像と類似するデータベース画像を検索できるようにすることができる。なお、データベースタグTAGDBは、データベース17に記憶しなくてもよい。
【0158】
図2に示す方法では、ステップS01及びステップS02により処理部13がデータベース画像特徴量データGFDDBを取得した後、ステップS03及びステップS04により処理部13がデータベースタグTAGDB、及びデータベースタグベクトルTAGVDBを取得しているが、本発明の一態様はこれに限らない。例えば、処理部13がデータベースタグTAGDB、及びデータベースタグベクトルTAGVDBを取得した後、データベース画像特徴量データGFDDBを取得してもよい。
【0159】
また、図2に示す方法では、データベースタグTAGDBをニューラルネットワーク40に入力することによりニューラルネットワーク40から出力されたベクトルそのものを、データベースタグベクトルTAGVDBとしているが、本発明の一態様はこれに限らない。以下では、データベースタグベクトルTAGVDBの取得方法の変形例を説明する。
【0160】
まず、処理部13が、データベースタグTAGDBの候補となる単語を取得する。データベースタグTAGDBの候補となる単語は、例えば図6A、及び図6Bに示すように形態素解析により取得することができる。
【0161】
次に、取得した単語をベクトルにより表す。例えば、取得した単語をニューラルネットワーク40に入力することにより、分散表現ベクトルで表すことができる。
【0162】
その後、分散表現ベクトルに対してクラスタリングを行うことにより、所定の個数のクラスタを生成する。例えば、取得したいデータベースタグTAGDBの個数と同数のクラスタを生成する。クラスタリングは、K-means法、DBSCAN(Density-Based Spatial Clustering of Applications with Noise)法等により行うことができる。
【0163】
図8Aでは、データベース画像データGDDB[1]に紐付けられるタグの候補として、20個の単語が処理部13により取得され、これらの単語がそれぞれデータベース単語ベクトルWORDVDBで表される例を示している。また、図8Aでは、20個のデータベース単語ベクトルWORDVDBを基にして、5個のクラスタ(クラスタCST1、クラスタCST2、クラスタCST3、クラスタCST4、及びクラスタCST5)を生成する例を示している。なお、説明の便宜のため、図8Aに示すベクトルは2次元のベクトルとして、横軸方向が2次元のベクトルの一方の成分、縦軸方向が2次元のベクトルの他方の成分を表しているが、実際にはデータベース単語ベクトルWORDVDB等は例えば300次元のベクトルとすることができる。
【0164】
次に、クラスタCST1乃至クラスタCST5のそれぞれについて、代表点を表すベクトルを求める。そして、当該代表点を表すベクトルを、データベースタグベクトルTAGVDB[1]とすることができる。図8Aでは、クラスタCST1の代表点を表すベクトルをデータベースタグベクトルTAGV1DB[1]とし、クラスタCST2の代表点を表すベクトルをデータベースタグベクトルTAGV2DB[1]とし、クラスタCST3の代表点を表すベクトルをデータベースタグベクトルTAGV3DB[1]とし、クラスタCST4の代表点を表すベクトルをデータベースタグベクトルTAGV4DB[1]とし、クラスタCST5の代表点を表すベクトルをデータベースタグベクトルTAGV5DB[1]とする例を示している。
【0165】
上記代表点を表すベクトルの各成分は、例えば、クラスタに含まれるデータベース単語ベクトルWORDVDBの各成分の平均値とすることができる。例えば、あるクラスタに、(0.1,0.7)、(0.2,0.5)、(0.3,0.5)、(0.4,0.2)、(0.5,0.1)という5つのデータベース単語ベクトルWORDVDBが含まれている場合、当該クラスタの代表点を表すベクトルは、例えば(0.3,0.4)とすることができる。以上の手順により、処理部13がデータベースタグベクトルTAGVDB[1]を取得することができる。
【0166】
データベースタグベクトルTAGVDB[2]以降も、同様の方法により取得することができる。図8Bは、データベース画像データGDDB[1]乃至データベース画像データGDDB[100]のそれぞれについて、データベースタグベクトルTAGVDBを5個ずつ(データベースタグベクトルTAGV1DB、データベースタグベクトルTAGV2DB、データベースタグベクトルTAGV3DB、データベースタグベクトルTAGV4DB、及びデータベースタグベクトルTAGV5DB)取得する場合の、各ベクトルの成分を示す表である。なお、図8Bに示す成分は、説明の便宜のための一例である。
【0167】
図8Bに示すように、データベースタグベクトルTAGVDBには、重み付けをすることができる。当該重みは、例えば1つのクラスタに含まれるデータベース単語ベクトルWORDVDBの個数を、データベース画像データGDDBに紐付けられるタグの候補として処理部13が取得した単語の合計数で割った値とすることができる。例えば、図8A、及び図8Bでは、データベース画像データGDDB[1]に紐付けられるタグの候補として、20個の単語を処理部13が取得した例を示している。また、クラスタCST1には8個のデータベース単語ベクトルWORDVDBが含まれ、クラスタCST2には4個のデータベース単語ベクトルWORDVDBが含まれ、クラスタCST3には2個のデータベース単語ベクトルWORDVDBが含まれ、クラスタCST4には3個のデータベース単語ベクトルWORDVDBが含まれ、クラスタCST5には3個のデータベース単語ベクトルWORDVDBが含まれる例を示している。よって、図8Bに示すように、例えばデータベース画像データGDDB[1]については、クラスタCST1に含まれるデータベースタグベクトルTAGV1DB[1]の重みを8/20、クラスタCST2に含まれるデータベースタグベクトルTAGV2DB[1]の重みを4/20、クラスタCST3に含まれるデータベースタグベクトルTAGV3DB[1]の重みを2/20、クラスタCST4に含まれるデータベースタグベクトルTAGV4DB[1]の重みを3/20、クラスタCST5に含まれるデータベースタグベクトルTAGV5DB[1]の重みを3/20とすることができる。
【0168】
上記の方法により、例えばデータベース画像データGDDBの概念、技術的内容、注目点といった特徴を強く表すタグベクトルの重みを大きくすることができる。これにより、画像検索システム10は高い精度で検索を行うことができる。
【0169】
次に、画像検索システム10を用いた画像検索方法について説明する。図9は、当該処理の方法の一例を示すフローチャートである。
【0170】
[ステップS11]
まず、画像検索システム10の使用者が、入力部11にクエリ画像データGDを入力する。クエリ画像データGDは、入力部11から、伝送路12を介して処理部13に供給される。又は、クエリ画像データGDは、伝送路12を介して記憶部15又はデータベース17に保存され、記憶部15又はデータベース17から伝送路12を介して処理部13に供給されてもよい。
【0171】
クエリ画像データGDは、例えば、出願前の発明、考案もしくは意匠、発売前の工業製品、技術情報、又は技術的思想を説明する画像等を有することができる。
【0172】
[ステップS12]
次に、クエリ画像データGDを、処理部13が有するニューラルネットワークに入力する。例えば、図3A又は図3Bに示す構成のニューラルネットワーク30に、クエリ画像データGDを入力することができる。これにより、処理部13が、クエリ画像データGDの特徴量を表すクエリ画像特徴量データGFDを取得することができる。例えば、図3Aに示す層31[m]から出力されるデータを、クエリ画像特徴量データGFDとすることができる。又は、図3Bに示すプーリング層PL[m]から出力されるデータを、クエリ画像特徴量データGFDとすることができる。なお、クエリ画像特徴量データGFDは、データベース画像特徴量データGFDDBと同様に、2層以上の出力データを含んでいてもよい。クエリ画像特徴量データGFDが多くの層の出力データを含むことにより、クエリ画像特徴量データGFDを、クエリ画像データGDの特徴をより正確に表すものとすることができる。
【0173】
[ステップS13]
次に、データベース画像データGDDBの、クエリ画像データGDに対する類似度を処理部13が算出する。
【0174】
図10は、データベース画像データGDDBの、クエリ画像データGDに対する類似度の算出について示す図である。図10では、一例として、1つのクエリ画像データGDと、100個のデータベース画像データGDDBと、が図3Bに示すニューラルネットワーク30aに入力される例を示している。また、図10では、クエリ画像特徴量データGFD、及びデータベース画像特徴量データGFDDBが、それぞれx行y列(x、yは1以上の整数)のプーリング値Pを有する例を示している。
【0175】
本明細書等において、クエリ画像特徴量データGFDが有するプーリング値をプーリング値Pと記載し、データベース画像特徴量データGFDDBが有するプーリング値をプーリング値PDBと記載する。また、例えばデータベース画像特徴量データGFDDB[1]が有するプーリング値をプーリング値P1DBと記載し、データベース画像特徴量データGFDDB[100]が有するプーリング値をプーリング値P100DBと記載する。
【0176】
図10に示す場合では、データベース画像特徴量データGFDDB[1]乃至データベース画像特徴量データGFDDB[100]のそれぞれについて、クエリ画像特徴量データGFDに対する類似度が算出される。そして、当該類似度を、データベース画像データGDDB[1]乃至データベース画像データGDDB[100]の、クエリ画像データGDに対する類似度とすることができる。なお、データベース17に記憶されている全てのデータベース画像特徴量データGFDDBについて、クエリ画像特徴量データGFDに対する類似度を算出してもよい。又は、データベース17に記憶されているデータベース画像特徴量データGFDDBの一部について、クエリ画像特徴量データGFDに対する類似度を算出してもよい。
【0177】
上記類似度は、例えばコサイン類似度とすることが好ましい。又は、ユークリッド類似度、ミンコフスキー類似度としてもよい。例えば、データベース画像特徴量データGFDDB[1]の、クエリ画像特徴量データGFDに対するコサイン類似度は、以下の式で算出することができる。コサイン類似度の値が大きいほど、データベース画像データGDDBがクエリ画像データGDに類似しているといえる。
【0178】
【数5】
【0179】
データベース画像特徴量データGFDDB[2]乃至データベース画像特徴量データGFDDB[100]の、クエリ画像特徴量データGFDに対するコサイン類似度も同様の方法で算出することができる。以上により、データベース画像データGDDB[1]乃至データベース画像データGDDB[100]の、クエリ画像データGDに対する類似度を算出することができる。
【0180】
類似度としてコサイン類似度を算出することにより、画像検索システム10は高い精度で検索を行うことができる。また、コサイン類似度は、簡便な計算で算出することができる。よって、処理部13がGPUを有する場合、類似度をGPUで求めることができる。したがって、類似度を短時間で算出することができ、画像検索システム10は短時間で検索を行うことができる。
【0181】
[ステップS14]
次に、データベース画像データGDDBのクエリ画像データGDに対する類似度の算出結果に基づき、クエリ画像データGDに紐付けられるタグであるクエリタグTAGを処理部13が取得する。
【0182】
図11A、及び図11Bは、クエリタグTAGの取得方法の一例を示す図である。まず、図11Aに示すように、ステップS13で算出した類似度に基づき、データベース画像データGDDB[1]乃至データベース画像データGDDB[100]を並び替える。例えば、最もクエリ画像データGDに対する類似度が高いデータベース画像データGDDBから降順で並び替える。図11Aに示す場合では、データベース画像データGDDB[2]の類似度が0.999で最も高く、データベース画像データGDDB[31]の類似度が0.971で2番目に高く、データベース画像データGDDB[73]の類似度が0.964で3番目に高く、データベース画像データGDDB[52]の類似度が0.951で4番目に高く、データベース画像データGDDB[28]の類似度が0.937で5番目に高いとしている。
【0183】
次に、類似度が高いデータベース画像データGDDBに紐付けられているデータベースタグTAGDBを抽出する。図11Aに示す場合では、類似度が1乃至5番目に高いデータベース画像データGDDBに紐付けられているデータベースタグTAGDBを抽出している。具体的には、データベース画像データGDDB[2]に紐付けられているタグ「aaa」、「bbb」、「ccc」、「ddd」、及び「eee」と、データベース画像データGDDB[31]に紐付けられているタグ「aaa」、「ccc」、「fff」、「ggg」、及び「hhh」と、データベース画像データGDDB[73]に紐付けられているタグ「aaa」、「bbb」、「fff」、「iii」、及び「kkk」と、データベース画像データGDDB[52]に紐付けられているタグ「aaa」、「ccc」、「ggg」、「ppp」、及び「qqq」と、データベース画像データGDDB[28]に紐付けられているタグ「aaa」、「kkk」、「rrr」、「sss」、及び「ttt」と、を抽出している。図11Aに示すように、抽出するタグは重複していてもよい。
【0184】
なお、上記では、データベースタグTAGDBを抽出するデータベース画像データGDDBの個数を、所定の個数に定めているが、本発明の一態様はこれに限らない。例えば、類似度が所定の値以上のデータベース画像データGDDBに紐付けられたデータベースタグを抽出してもよい。つまり、データベースタグTAGDBを抽出するデータベース画像データGDDBの個数を、固定しなくてもよい。
【0185】
その後、図11Bに示すように、抽出したタグのそれぞれについて、出現回数を算出する。例えば、タグ「aaa」は、データベース画像データGDDB[2]、データベース画像データGDDB[31]、データベース画像データGDDB[73]、データベース画像データGDDB[52]、及びデータベース画像データGDDB[28]のいずれにも紐付けられているため、出現回数は5となる。タグ「ddd」は、データベース画像データGDDB[2]、データベース画像データGDDB[31]、データベース画像データGDDB[73]、データベース画像データGDDB[52]、及びデータベース画像データGDDB[28]の中では、データベース画像データGDDB[2]のみに紐付けられているため、出現回数は1となる。
【0186】
次に、図11Bに示すように、例えば出現回数が最も多いタグから順に、所定の個数のタグをさらに抽出し、当該抽出したタグをクエリタグTAGとする。図11Bに示す場合では、出現回数が最も多いタグから順に、クエリタグTAGとして5個タグを抽出している。具体的には、出現回数が5回で最も多いタグ「aaa」と、出現回数が3回で2番目に多いタグ「ccc」と、を抽出している。
【0187】
出現回数が同一のタグが複数存在するが、当該複数のタグをすべて抽出することができない場合、例えばより類似度が高いデータベース画像データGDDBに紐付けられたタグを抽出することができる。例えば、データベース画像データGDDBの類似度の順位を数値で表す。そして、出現回数が同一のタグ同士で、紐付けられたデータベース画像データGDDBの類似度の順位を表す数値の合計を比較し、合計値が小さいタグから順に抽出することができる。
【0188】
図11Bに示す場合では、クエリタグTAGの個数を5個とし、タグ「aaa」の出現回数を5、タグ「ccc」の出現回数を3としている。したがって、出現回数が2以下のタグから3個のタグを抽出する必要がある。しかしながら、出現回数が2のタグは、「bbb」、「fff」、「ggg」、及び「kkk」の4個である。よって、当該4個のタグの中から、3個のタグを選ぶ必要がある。ここで、タグ「bbb」が紐付けられているデータベース画像データGDDB[2]の類似度の順位は1で、データベース画像データGDDB[73]の類似度の順位は3である。よって、タグ「bbb」に係る類似度の順位の合計は4となる。同様に、タグ「fff」に係る類似度の順位の合計は5となり、タグ「ggg」に係る類似度の順位の合計は6となり、タグ「kkk」に係る類似度の順位の合計は8となる。以上より、出現回数が2のタグに係る類似度の順位の合計値が最も小さいタグはタグ「bbb」であり、昇順にタグ「fff」、「ggg」、「kkk」となる。よって、タグ「bbb」、「fff」、及び「ggg」をクエリタグTAGとすることができる。
【0189】
以上まとめると、図11Bに示す場合では、出現回数が5のタグ「aaa」と、出現回数が3のタグ「ccc」と、出現回数が2のタグのうち、類似度の順位の合計が1乃至3番目に小さいタグ「bbb」、「fff」、及び「ggg」と、をクエリタグTAGとすることができる。
【0190】
なお、データベースタグTAGDBに含まれる単語そのものだけでなく、データベースタグTAGDBに含まれる単語の類義語を、クエリタグTAGに含めてもよい。例えば、記憶部15、又はデータベース17にあらかじめ類義語辞書データを記憶させておき、データベースタグTAGDBに含まれる単語と、当該単語の類義語として類義語辞書に登録されている単語と、をクエリタグTAGに含めることができる。
【0191】
図11Bに示す場合では、抽出したデータベースタグTAGDBの中から、処理部13がクエリタグTAGを自動で選択しているが、本発明の一態様はこれに限らない。例えば、画像検索システム10の使用者に抽出したデータベースタグTAGDBを提示し、提示されたタグの中からクエリタグTAGとするタグを、画像検索システム10の使用者が選択してもよい。又は、例えば類似度が高いデータベース画像を画像検索システム10の使用者に提示し、提示されたデータベース画像を画像検索システム10の使用者に選択させてもよい。そして、選択されたデータベース画像を表すデータベース画像データGDDBに紐付けられているデータベースタグTAGDBの全部又は一部を、クエリタグTAGとしてもよい。
【0192】
図11A、及び図11Bに示す方法では、クエリタグTAGを、データベースタグTAGDBの中から選択しているが、本発明の一態様はこれに限らない。例えば、データベースタグTAGDBを基に新たなタグを生成し、当該タグをクエリタグTAGとしてもよい。以下では、データベースタグTAGDBを表すデータベースタグベクトルTAGVDBを用いて、クエリタグTAGを表すクエリタグベクトルTAGVを処理部13が取得する方法の一例を説明する。
【0193】
図11Aで説明した方法は、以下で説明する方法でクエリタグベクトルTAGVを取得する場合においても適用することができる。つまり、データベースタグTAGDBの抽出は、図11Aに示す方法と同様の方法で行うことができる。
【0194】
データベースタグTAGDBの抽出後、抽出したデータベースタグTAGDBを表すデータベースタグベクトルTAGVDBに対してクラスタリングを行うことにより、所定の個数のクラスタを生成する。例えば、取得したいクエリタグTAGの個数と同数のクラスタを生成する。クラスタリングは、K-means法、DBSCAN法等により行うことができる。
【0195】
図12Aでは、図11Aに示す25個のデータベースタグTAGDBが処理部13により取得される例を示している。また、図12Aでは、図11Aに示すデータベースタグTAGDBに対応するデータベースタグベクトルTAGVDBを基にして、5個のクラスタ(クラスタCST1、クラスタCST2、クラスタCST3、クラスタCST4、及びクラスタCST5)を生成する例を示している。なお、説明の便宜のため、図12Aに示すベクトルは2次元のベクトルとして、横軸方向が2次元のベクトルの一方の成分、縦軸方向が2次元のベクトルの他方の成分を表しているが、実際には例えば300次元のベクトルとすることができる。また、図12Aに示す括弧内の数字は、抽出したデータベースタグTAGDBの出現回数を示している。例えば、「aaa(5)」は、タグ「aaa」の出現回数が5であることを示している。
【0196】
次に、クラスタCST1乃至クラスタCST5のそれぞれについて、代表点を表すベクトルを求める。そして、当該代表点を表すベクトルを、クエリタグベクトルTAGVとすることができる。図12Aでは、クラスタCST1の代表点を表すベクトルをクエリタグベクトルTAGV1とし、クラスタCST2の代表点を表すベクトルをクエリタグベクトルTAGV2DBとし、クラスタCST3の代表点を表すベクトルをクエリタグベクトルTAGV3とし、クラスタCST4の代表点を表すベクトルをクエリタグベクトルTAGV4とし、クラスタCST5の代表点を表すベクトルをクエリタグベクトルTAGV5とする例を示している。
【0197】
上記代表点を表すベクトルの各成分は、例えば、クラスタに含まれるデータベースタグベクトルTAGVDBの各成分の平均値とすることができる。以上の手順により、処理部13がクエリタグベクトルTAGVを取得することができる。
【0198】
図12Bは、クエリタグベクトルTAGV1乃至クエリタグベクトルTAGV5の成分を示す表である。なお、図12Bに示す成分は、説明の便宜のための一例である。
【0199】
図12Bに示すように、クエリタグベクトルTAGVには、重み付けをすることができる。当該重みは、例えば1つのクラスタに含まれるデータベースタグベクトルTAGVDBの個数を、図12A等に示す方法により抽出したデータベースタグTAGDBの合計数で割った値とすることができる。例えば、図12A、及び図12Bでは、25個のデータベースタグTAGDBを抽出した例を示している。また、クラスタCST1には11個のデータベースタグベクトルTAGVDBが含まれ、クラスタCST2には4個のデータベースタグベクトルTAGVDBが含まれ、クラスタCST3には5個のデータベースタグベクトルTAGVDBが含まれ、クラスタCST4には2個のデータベースタグベクトルTAGVDBが含まれ、クラスタCST5には3個のデータベースタグベクトルTAGVDBが含まれる例を示している。よって、図12Bに示すように、クラスタCST1に含まれるクエリタグベクトルTAGV1の重みを11/25、クラスタCST2に含まれるクエリタグベクトルTAGV2の重みを4/25、クラスタCST3に含まれるクエリタグベクトルTAGV3の重みを5/25、クラスタCST4に含まれるクエリタグベクトルTAGV4の重みを2/25、クラスタCST5に含まれるクエリタグベクトルTAGV5の重みを3/25とすることができる。
【0200】
上記の方法により、例えばクエリ画像データGDの概念、技術的内容、注目点といった特徴を強く表すタグベクトルの重みを大きくすることができる。これにより、画像検索システム10は高い精度で検索を行うことができる。
【0201】
ステップS13及びステップS14に示すクエリタグTAGの取得方法は、例えばデータベースタグTAGDBを基にせずにクエリタグTAGを取得する方法と比較して、簡便な方法である。よって、画像検索システム10は、短時間で検索を行うことができる。また、ステップS13及びステップS14に示す方法によるクエリタグTAGの取得は、例えば画像検索システム10の使用者が全てのクエリタグTAGを指定し、かつ当該使用者へのクエリタグTAGの候補の提示も行わない場合と比較して、クエリ画像データGDに対応する画像の概念、技術的内容、注目点等を表すタグを網羅的に取得することができる。よって、画像検索システム10は、簡便かつ高い精度で検索を行うことができる。
【0202】
[ステップS15]
次に、処理部13が、データベース画像特徴量データGFDDBと、データベースタグベクトルTAGVDBと、を含むデータDDBを取得する。また、処理部13が、クエリ画像特徴量データGFDと、クエリタグベクトルTAGVと、を含むデータDを取得する。
【0203】
図13は、データDDB、及びデータDの構成例を示す図である。データベース画像特徴量データGFDDB、及びクエリ画像特徴量データGFDは、図10に示す構成と同様の構成とすることができる。データベースタグベクトルTAGVDBは、成分VCDB[1]乃至成分VCDB[h](hは2以上の整数)を有する構成とすることができる。クエリタグベクトルTAGVは、成分VC[1]乃至成分VC[h]を有する構成とすることができる。ここで、例えば1つの画像データに、300次元のベクトルで表されるタグが5個紐付けられている場合、hは1500となる。
【0204】
本明細書等において、例えばデータベースタグベクトルTAGVDB[1]が有する成分を成分VC1DBと記載し、データベースタグベクトルTAGVDB[100]が有する成分を成分VC100DBと記載する。
【0205】
前述のように、成分という用語は、値という用語に言い換えることができる場合がある。この場合、画像特徴量データと、タグベクトルと、は共に複数の値の集合であるということができる。よって、データという用語と、ベクトルという用語は、入れ換えて用いることができる場合がある。
【0206】
[ステップS16]
次に、データDDBの、データDに対する類似度を処理部13が算出する。図13に示す場合では、データDDB[1]乃至データDDB[100]のそれぞれについて、データDに対する類似度が算出される。そして、当該類似度を、データベース画像データGDDB[1]乃至データベース画像データGDDB[100]の、クエリ画像データGDに対する類似度とすることができる。よって、ステップS13で処理部13が算出した、データベース画像データGDDBの、クエリ画像データGDに対する類似度を補正することができる。
【0207】
ここで、図8B、及び図12Bに示すようにタグベクトルに重みを付けた場合、例えば当該タグベクトルが有する成分に重みを乗じることにより、重み付けを行うことができる。
【0208】
データDDBの、データDに対する類似度は、ステップS13で処理部13が算出した類似度と同じ種類とすることが好ましい。例えば、ステップS13でコサイン類似度を算出した場合は、データDDBの、データDに対する類似度として、コサイン類似度を算出することが好ましい。
【0209】
例えば、データDDB[1]の、データDに対するコサイン類似度は、以下の式で算出することができる。
【0210】
【数6】
【0211】
データDDB[2]乃至データDDB[100]の、データDに対するコサイン類似度も同様の方法で算出することができる。以上により、データDDB[1]乃至データDDB[100]の、データDに対する類似度を算出することができる。これにより、ステップS13で算出した、データベース画像データGDDB[1]乃至データベース画像データGDDB[100]の、クエリ画像データGDに対する類似度を補正することができる。
【0212】
なお、画像特徴量データが有する値の数と、タグベクトルが有する成分の数と、の比を調整することにより、検索結果を変更することができる。例えば、クエリ画像特徴量データGFDが有する値、及びデータベース画像特徴量データGFDDBが有する値の数を増加させる、又はクエリタグベクトルTAGVが有する成分の数、及びデータベースタグベクトルTAGVDBが有する成分の数を減少させると、補正後の類似度は画像特徴量を重視した結果となる。例えば、データベース画像データGDDBの特徴量が、クエリ画像データGDの特徴量と類似していれば、データベースタグTAGDBがクエリタグTAGと多少異なっているとしても、当該データベース画像データGDDBのクエリ画像データGDに対する、補正後の類似度は高くなる。一方、クエリ画像特徴量データGFDが有する値の数、及びデータベース画像特徴量データGFDDBが有する値の数を減少させる、又はクエリタグベクトルTAGVが有する成分の数、及びデータベースタグベクトルTAGVDBが有する成分の数を増加させると、補正後の類似度はタグを重視した結果となる。例えば、データベースタグTAGDBがクエリタグTAGと類似していれば、データベース画像データGDDBの特徴量が、クエリ画像データGDの特徴量と多少異なっているとしても、当該データベース画像データGDDBのクエリ画像データGDに対する、補正後の類似度は高くなる。
【0213】
タグベクトルが有する成分の数を増加又は減少させるためには、画像データに紐付けられるタグの個数を増加又は減少させればよい。また、例えば画像特徴量データが有する値のうち、一部の値のみを類似度の算出に用いることにより、タグを重視した類似度を算出することができる。例えば、画像を見た場合に強い印象を与えない部分の特徴量を表す値を、類似度の算出に用いないことにより、クエリ画像と見た目の印象が大きく異なるデータベース画像の類似度が高くなることを抑制しつつ、タグを重視した類似度を算出することができる。よって、画像検索システム10は高い精度で検索を行うことができる。
【0214】
また、画像特徴量データが有する値、又はタグベクトルが有する成分に所定の係数を乗じることによっても、検索結果を変更することができる。例えば、クエリ画像特徴量データGFDが有する値、及びデータベース画像特徴量データGFDDBが有する値に1より大きい実数を乗じることにより、補正後の類似度を、画像特徴量を重視した結果とすることができる。また、クエリタグベクトルTAGVが有する成分、及びデータベースタグベクトルTAGVDBが有する成分に0以上1未満の実数を乗じることにより、補正後の類似度を、画像特徴量を重視した結果とすることができる。例えば、クエリ画像特徴量データGFDが有する値、及びデータベース画像特徴量データGFDDBが有する値に0以上1未満の実数を乗じることにより、補正後の類似度を、タグを重視した結果とすることができる。また、クエリタグベクトルTAGVが有する成分、及びデータベースタグベクトルTAGVDBが有する成分に1より大きい実数を乗じることにより、補正後の類似度を、タグを重視した結果とすることができる。
【0215】
[ステップS17]
次に、ステップS16で算出した、補正後の類似度の順位に関する情報を含むランキングデータを処理部13が生成し、検索結果として画像検索システム10の外部に出力する。
【0216】
処理部13は、ランキングデータを、伝送路12を介して、記憶部15又はデータベース17に供給することができる。また、処理部13は、ランキングデータを、伝送路12を介して出力部19に供給することができる。これにより、出力部19は、画像検索システム10の外部にランキングデータを供給することができる。
【0217】
ランキングデータは、各データベース画像の、クエリ画像に対する類似度の順位、類似度の値等を含むことができる。なお、ランキングデータは、データベース画像へのファイルパスを含むことが好ましい。これにより、画像検索システム10の使用者は、ランキングデータから目的の画像に容易にアクセスすることができる。また、クエリ画像、及び出力されたデータベース画像に紐付けられたタグを確認できるようにしてもよい。さらに、例えばデータベース画像が掲載された刊行物を表す刊行物データがデータベース17等に記憶されている場合は、画像検索システム10の使用者は、ランキングデータに紐付けられたデータベース画像が掲載されている刊行物に容易にアクセスすることができる。以上が画像検索システム10を用いた画像検索方法の一例である。
【0218】
画像検索システム10を用いた画像検索方法では、まず、タグを紐付けずに、データベース画像データGDDBの、クエリ画像データGDに対する類似度を算出する。その後、タグを紐付けて、当該類似度を補正する。これにより、例えば特徴量はクエリ画像と類似するが、概念、技術的内容、注目点等が異なるデータベース画像が検索されることを抑制することができる。
【0219】
例えば、クエリ画像データGDに対する類似度が1乃至5番目に高いデータベース画像データGDDBに紐付けられているデータベースタグTAGDBを基にして、処理部13がクエリタグTAGを取得するとする。この場合、類似度が6番目以下のデータベース画像データGDDBに、クエリ画像と概念、技術的内容、注目点等が異なる画像データが混入することを抑制することができる。よって、検索結果にノイズとなる画像が混入し、検索したい画像が出力されなくなることを抑制することができる。以上により、画像検索システム10は高い精度で検索を行うことができる。
【0220】
また、画像検索システム10を用いた画像検索方法では、データベースタグTAGDBを基にしてクエリタグTAGを取得する。当該取得方法は、データベースタグTAGDBを基にせずにクエリタグTAGを取得する方法と比較して、簡便な方法である。よって、画像検索システム10は、短時間で検索を行うことができる。また、データベースタグTAGDBを基にしてクエリタグTAGを取得する方法は、例えば画像検索システム10の使用者が全てのクエリタグTAGを指定し、かつ当該使用者へのクエリタグTAGの候補の提示も行わない場合と比較して、クエリ画像データGDに対応する画像の概念、特徴、技術的内容、注目点等を表すタグを網羅的に取得することができる。よって、画像検索システム10は、簡便かつ高い精度で検索を行うことができる。
【0221】
<1-3.画像検索方法-2>
図9等に示す画像検索方法では、画像検索システム10の使用者は、クエリタグTAGを入力していないが、本発明の一態様はこれに限らない。図14は、画像検索システム10の使用者がクエリタグTAGの一部を手作業で入力する場合の、画像検索システム10を用いた画像検索方法の一例を示すフローチャートである。なお、図14に示す方法で画像検索システム10を動作させる場合であっても、図9に示す画像検索方法で画像検索システム10を動作させる場合と同様に、図2に示す処理をあらかじめ行っておくとよい。
【0222】
[ステップS21]
まず、画像検索システム10の使用者が、クエリ画像データGDの他、クエリタグTAGを入力部11に入力する。画像検索システム10の使用者が入力するクエリタグTAGの個数、及びクエリタグTAGの内容は、当該使用者が任意に設定することができる。また、後のステップで自動的に取得されるクエリタグTAGも含めた、クエリタグTAGの個数を使用者が設定できるようにしてもよい。
【0223】
図15は、クエリ画像データGD、及びクエリタグTAGの、入力部11への入力について示す図である。図15に示す場合では、画像検索システム10の使用者が、クエリ画像データGDの他、クエリ画像データGDを表す「回路図」、「半導体」という2つのクエリタグTAGを入力している。
【0224】
ここで、入力部11へ入力するクエリタグTAGを変えることにより、データベース画像データGDDBのクエリ画像データGDに対する類似度の算出結果を変えることができる。例えば、「容量素子」というクエリタグTAGを入力部11に入力する場合、容量素子が描かれていない回路図を表すデータベース画像データの類似度を低くすることができる。
【0225】
[ステップS22]
次に、クエリ画像データGDを、処理部13が有するニューラルネットワークに入力する。例えば、図3A又は図3Bに示す構成のニューラルネットワーク30に、クエリ画像データGDを入力することができる。これにより、処理部13が、クエリ画像データGDの特徴量を表すクエリ画像特徴量データGFDを取得することができる。
【0226】
[ステップS23]
次に、処理部13が、データベース画像特徴量データGFDDBと、データベースタグベクトルTAGVDBと、を含むデータDDBを取得する。また、処理部13が、クエリ画像特徴量データGFDと、クエリタグベクトルTAGVと、を含むデータDを取得する。
【0227】
ここで、1つのデータベース画像データGDDBに紐付けられたデータベースタグTAGDBの個数が、入力部11に入力されたクエリタグTAGの個数よりも多い場合は、データDDBに含むタグを、データベース画像データGDDBに紐付けられたタグの中から選択する。例えば、1つのデータベース画像データGDDBに5個のデータベースタグTAGDBが紐付けられているとする。そして、入力部11に入力されたクエリタグTAGの個数が2個であるとする。この場合は、5個のデータベースタグTAGDBのうち、例えば最もTF-IDFが高いタグと、2番目にTF-IDFが高いタグと、をデータDDBが有するタグとすることができる。
【0228】
[ステップS24]
次に、データGDDBの、データGDに対する類似度を処理部13が算出する。当該類似度は、図13に示す方法と同様の方法で算出することができる。
【0229】
[ステップS25]
次に、データDDBのデータDに対する類似度の算出結果に基づいて、クエリタグTAGを追加、修正する。
【0230】
図16A、及び図16Bは、クエリタグTAGの追加方法の一例を示す図である。まず、図16Aに示すように、ステップS24で算出した類似度に基づき、データDDBを並び替える。図16Aでは、100個のデータDDBを並び替える例を示している。例えば、最もデータDに対する類似度が高いデータDDBから降順で並び替える。図16Aに示す場合では、データDDB[2]の類似度が0.999で最も高く、データDDB[41]の類似度が0.971で2番目に高く、データDDB[53]の類似度が0.964で3番目に高く、データDDB[22]の類似度が0.951で4番目に高く、データDDB[88]の類似度が0.937で5番目に高いとしている。
【0231】
次に、類似度が高いデータDDBが有するデータベース画像データGDDBに紐付けられているデータベースタグTAGDBを抽出する。図16Aに示す場合では、類似度が1乃至5番目に高いデータDDBが有するデータベース画像データGDDBに紐付けられているデータベースタグTAGDBを抽出している。具体的には、データベース画像データGDDB[2]に紐付けられているタグ「aaa」、「bbb」、「ccc」、「ddd」、及び「eee」と、データベース画像データGDDB[41]に紐付けられているタグ「aaa」、「ccc」、「fff」、「ggg」、及び「hhh」と、データベース画像データGDDB[53]に紐付けられているタグ「aaa」、「bbb」、「fff」、「iii」、及び「kkk」と、データベース画像データGDDB[22]に紐付けられているタグ「aaa」、「ccc」、「ggg」、「ppp」、及び「qqq」と、データベース画像データGDDB[88]に紐付けられているタグ「aaa」、「kkk」、「rrr」、「sss」、及び「ttt」と、を抽出している。図11Aに示す場合と同様に、抽出するタグは重複していてもよい。
【0232】
その後、図16Bに示すように、抽出したタグのそれぞれについて、出現回数を算出する。
【0233】
次に、図16Bに示すように、上記抽出したタグの中から、所定の個数のタグをさらに抽出し、当該抽出したタグを新たなクエリタグTAGとする。図16Bに示す場合では、ステップS21で既に2個のタグ(「回路図」、及び「半導体」)がクエリタグTAGとして取得されている。そして、タグを3個追加することにより、クエリタグTAGの個数を、1つのデータベース画像データGDDBに紐付けられているデータベースタグTAGDBの個数と等しく5個とするとする。
【0234】
新たなクエリタグTAGとするタグの抽出は、図11Bに示す方法と同様の方法で行うことができる。例えば、出現回数が最も多いタグから順に抽出することができる。また、出現回数が同一のタグが複数存在するが、当該複数のタグをすべて抽出することができない場合、例えばより類似度が高いデータDDBが有するデータベース画像データGDDBに紐付けられたタグを抽出することができる。図16Bに示す場合では、タグ「aaa」、「bbb」、「ccc」を、新たなクエリタグTAGとして抽出することができる。
【0235】
以上まとめると、図16Bに示す場合では、ステップS21で画像検索システム10の使用者が入力部11に入力したタグ「回路図」、「半導体」の他、タグ「aaa」、「bbb」、「ccc」を追加した5つのタグを、新たなクエリタグTAGとすることができる。
【0236】
なお、画像検索システム10の使用者が入力部11に入力した一部又は全部を、クエリタグTAGから削除してもよい。例えば、タグ「回路図」、「半導体」をタグTAGから削除し、図16Bに示すタグの中から5個のタグを抽出して新たなタグTAGとしてもよい。この場合、例えばタグ「aaa」、「bbb」、「ccc」、「fff」、「ggg」を、新たなタグTAGとすることができる。
【0237】
[ステップS26]
次に、クエリタグTAGの追加、修正に対応して、データDDBが有するタグを追加、修正する。例えば、1つのデータDDBが有するデータベースタグベクトルTAGVDBの個数を、クエリタグTAGの個数と等しくする。
【0238】
[ステップS27]
次に、データGDDBの、データGDに対する類似度を処理部13が再度算出する。当該類似度は、ステップS24に示す方法と同様の方法で算出することができる。これにより、データGDDBの、データGDに対する類似度を補正することができる。
【0239】
[ステップS28]
次に、ステップS27で算出した、補正後の類似度の順位に関する情報を含むランキングデータを処理部13が生成し、検索結果として画像検索システム10の外部に出力する。これにより、画像検索システム10の使用者は、例えば、各データベース画像のクエリ画像に対する類似度の順位、類似度の値、検索されたデータベース画像、タグ等を確認することができる。
【0240】
[ステップS29、ステップS30]
次に、画像検索システム10の使用者が、ランキングデータが期待した結果であるか確認する。期待した結果であれば、検索を終了する。期待した結果が得られなかった場合、画像検索システム10の使用者が、クエリタグTAGを追加、修正等した後、ステップS23に戻る。以上が画像検索システム10を用いた画像検索方法の一例である。
【0241】
本実施の形態は、他の実施の形態と適宜組み合わせることができる。また、本明細書において、1つの実施の形態の中に、複数の構成例が示される場合は、構成例を適宜組み合わせることが可能である。
【0242】
(実施の形態2)
実施の形態1では、画像検索システム10はデータベース画像データGDDBの領域全体と、クエリ画像データGDの領域全体と、を比較することにより、データベース画像データGDDBに対するクエリ画像データGDの類似度を算出したが、本発明の一態様はこれに限らない。例えば、データベース画像データGDDBの一部の領域と、クエリ画像データGDの領域全体と、を比較することにより、データベース画像データGDDBのクエリ画像データGDに対する類似度を算出してもよい。又は、データベース画像データGDDBの領域全体と、クエリ画像データGDの一部の領域と、を比較することにより、データベース画像データGDDBのクエリ画像データGDに対する類似度を算出してもよい。
【0243】
<2-1.画像検索方法-3>
図17は、データベース画像データGDDBの一部の領域と、クエリ画像データGDの領域全体と、を比較することにより、データベース画像データGDDBのクエリ画像データGDに対する類似度を算出する場合の、画像検索システム10を用いた画像検索方法の一例である。まず、画像検索システム10は、図9に示すステップS11、又は図14に示すステップ21を行う。
【0244】
[ステップS31]
次に、処理部13が、クエリ画像データGDとデータベース画像データGDDBとを比較し、クエリ画像データGDに対する一致度が高い領域を含むデータベース画像データGDDBを抽出する。ここで、抽出したデータベース画像データGDDBを、抽出画像データGDExとする。クエリ画像データGDとデータベース画像データGDDBとの比較は、例えば領域ベースマッチングにより行うことができる。
【0245】
ステップS31の動作の一例について、図18乃至図20を用いて詳細に説明する。ステップS31では、図18Aに示すように、クエリ画像データGDをn個(nは1以上の整数)のデータベース画像データGDDBのそれぞれと比較する。ここで、nは、データベース17に記憶されているデータベース画像データGDDBの個数と同数でもよいし、それより少なくてもよい。また、nは、データベース17に記憶されているデータベース画像データGDDBの個数よりも多くてもよい。この場合は、データベース17に記憶されているデータベース画像データGDDBの他に、記憶部15に記憶されている画像データ、又は画像検索システム10の外部から入力部11を介して処理部13に入力された画像データと、クエリ画像データGDとを比較する。なお、nがデータベース画像データGDDBの個数以下であっても、記憶部15に記憶されている画像データ、又は画像検索システム10の外部から入力部11を介して処理部13に入力された画像データと、クエリ画像データGDとを比較してもよい。
【0246】
nが小さい場合、ステップS31の動作を短時間で行うことができる。一方、nが大きい場合、クエリ画像データGDに対する一致度が高い領域を含むデータベース画像データGDDBの抽出を高い精度で行うことができる。
【0247】
図18Bは、クエリ画像データGDと、データベース画像データGDDBとを領域ベースマッチングにより比較する場合の手順について説明する図である。ここで、クエリ画像データGDに対応する画像の画素数は2×2、データベース画像データGDDBに対応する画像の画素数は4×4とする。つまり、クエリ画像データGDは2×2の画素値を有し、データベース画像データGDDBは4×4の画素値を有するとする。
【0248】
図18Bにおいて、クエリ画像データGDが有する2×2の画素値を、それぞれ画素値vq11、画素値vq12、画素値vq21、画素値vq22とする。例えば、クエリ画像データGDにおいて、1行1列目の画素に対応する画素値を画素値vq11、1行2列目の画素に対応する画素値を画素値vq12、2行1列目の画素に対応する画素値を画素値vq21、2行2列目の画素に対応する画素値を画素値vq22とする。また、データベース画像データGDDBが有する4×4の画素値を、それぞれ画素値vdb11乃至画素値vdb44とする。例えば、データベース画像データGDDBにおいて、1行1列目の画素に対応する画素値を画素値vdb11、1行4列目の画素に対応する画素値を画素値vdb14、4行1列目の画素に対応する画素値を画素値vdb41、4行4列目の画素に対応する画素値を画素値vdb44とする。
【0249】
まず、画素値vq11、画素値vq12、画素値vq21、及び画素値vq22と、画素値vdb11、画素値vdb12、画素値vdb21、及び画素値vdb22と、を比較する。これにより、クエリ画像データGDと、データベース画像データGDDBのうち画素値vdb11、画素値vdb12、画素値vdb21、及び画素値vdb22から構成される領域と、の一致度を算出することができる。なお、図18Bでは、データベース画像データGDDBが有する画素値のうち、クエリ画像データGDと比較される画素値を、比較データ領域21として点線で囲って示している。
【0250】
次に、比較データ領域21をデータベース画像データGDDBが有する画素値に対して1列分移動させ、同様に画素値を比較し、一致度を算出する。具体的には、画素値vq11、画素値vq12、画素値vq21、及び画素値vq22と、画素値vdb12、画素値vdb13、画素値vdb22、及び画素値vdb23と、を比較する。これにより、クエリ画像データGDと、データベース画像データGDDBのうち画素値vdb12、画素値vdb13、画素値vdb22、及び画素値vdb23から構成される領域と、の一致度を算出することができる。
【0251】
その後も、比較データ領域21をデータベース画像データGDDBが有する画素値に対して1列分移動させ、同様に画素値を比較し、一致度を算出する。具体的には、画素値vq11、画素値vq12、画素値vq21、及び画素値vq22と、画素値vdb13、画素値vdb14、画素値vdb23、及び画素値vdb24と、を比較する。これにより、クエリ画像データGDと、データベース画像データGDDBのうち画素値vdb13、画素値vdb14、画素値vdb23、及び画素値vdb24から構成される領域と、の一致度を算出することができる。
【0252】
次に、比較データ領域21をデータベース画像データGDDBが有する画素値に対して1行分移動させ、データベース画像データGDDBの2行目の画素値、及び3行目の画素値と、クエリ画像データGDを構成する画素値とを上記と同様に1列ごとに比較する。これにより、データベース画像データGDDBの、2行目及び3行目の画素値から構成される領域と、クエリ画像データGDとの一致度を上記と同様に1列ごとに算出することができる。
【0253】
その後、比較データ領域21をデータベース画像データGDDBが有する画素値に対して1行分移動させ、データベース画像データGDDBの3行目の画素値、及び4行目の画素値と、クエリ画像データGDを構成する画素値とを上記と同様に1列ごとに比較する。これにより、データベース画像データGDDBが有する、3行目及び4行目の画素値と、クエリ画像データGDとの一致度を上記と同様に1列ごとに算出することができる。
【0254】
以上の動作を行った後、例えば最も高い一致度を、データベース画像データGDDBのクエリ画像データGDに対する一致度とする。以上をn個のデータベース画像データGDDBのそれぞれについて行う。その後、n個のデータベース画像データGDDBの中から、クエリ画像データGDとの一致度が高いデータベース画像データGDDBを、抽出画像データGDExとして抽出する。例えば一致度が高いデータベース画像データGDDBから順に、規定の個数を抽出画像データGDExとして抽出してもよい。又は、例えばクエリ画像データGDとの一致度が規定値以上のデータベース画像データGDDBを、抽出画像データGDExとして抽出してもよい。
【0255】
また、データベース画像データGDDBの抽出を行わなくてもよい。これは、クエリ画像データGDとの比較を行ったデータベース画像データGDDBの全てを、抽出画像データGDExとすると言い換えることができる。
【0256】
図19は、データベース画像データGDDBの抽出について説明する図である。図19は、データベース画像データGDDB[1]乃至データベース画像データGDDB[3]から、1個の画像データを抽出画像データGDExとして抽出する例を示している。
【0257】
図19に示すクエリ画像データGDに対応する画像には、例えばトランジスタの記号が含まれているものとする。また、図19に示すデータベース画像データGDDB[2]に対応する画像にはトランジスタの記号が含まれているが、データベース画像データGDDB[1]に対応する画像、及びデータベース画像データGDDB[3]に対応する画像にはトランジスタの記号が含まれていないものとする。この場合、データベース画像データGDDB[2]のクエリ画像データGDに対する一致度は、データベース画像データGDDB[1]及びデータベース画像データGDDB[3]のクエリ画像データGDに対する一致度より高くなる。よって、データベース画像データGDDB[2]を、抽出画像データGDExとして抽出することができる。
【0258】
なお、クエリ画像データ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)等により行うことができる。
【0259】
また、図18Bでは比較データ領域21をデータベース画像データGDDBが有する画素値に対して1列分、又は1行分ずつ移動させているが、本発明の一態様はこれに限らない。比較データ領域21をデータベース画像データGDDBが有する画素値に対して2列分以上移動させてもよいし、2行分以上移動させてもよい。例えば、画素値vq11、画素値vq12、画素値vq21、及び画素値vq22と、画素値vdb11、画素値vdb12、画素値vdb21、及び画素値vdb22と、を比較した直後に、画素値vq11、画素値vq12、画素値vq21、及び画素値vq22と、画素値vdb13、画素値vdb14、画素値vdb23、及び画素値vdb24と、を比較してもよい。この場合、画素値vq11、画素値vq12、画素値vq21、及び画素値vq22と、画素値vdb12、画素値vdb13、画素値vdb22、及び画素値vdb23と、の比較は行わないこととなる。また、画素値vq11、画素値vq12、画素値vq21、及び画素値vq22と、画素値vdb13、画素値vdb14、画素値vdb23、及び画素値vdb24と、を比較した直後に、画素値vq11、画素値vq12、画素値vq21、及び画素値vq22と、画素値vdb31、画素値vdb32、画素値vdb41、及び画素値vdb42と、を比較してもよい。
【0260】
比較データ領域21の移動幅を大きくすることにより、クエリ画像データGDが有する画素値と、データベース画像データGDDBが有する画素値と、の比較演算の回数を減少させることができる。これにより、データベース画像データGDDBのクエリ画像データGDに対する一致度の算出を短時間で行うことができる。
【0261】
図18Aでは、1個のクエリ画像データGDを、n個のデータベース画像データGDDBとそれぞれ比較する例を示しているが、本発明の一態様はこれに限られない。図20Aに示すように、処理部13に入力されたクエリ画像データGDを基にして、画素値の数が異なる複数のクエリ画像データGDを生成してもよい。図20Aは、処理部13に入力されたクエリ画像データGDを基にして、それぞれ画素値の数が異なるクエリ画像データGD[1]、クエリ画像データGD[2]、及びクエリ画像データGD[3]を生成する例を示している。図20Aに示すように、クエリ画像データGD[1]に対応する画像の画素数と、クエリ画像データGD[2]に対応する画像の画素数と、クエリ画像データGD[3]に対応する画像の画素数と、はそれぞれ異なる。つまり、クエリ画像データGD[1]乃至クエリ画像データGD[3]に対応する画像は、処理部13に入力されたクエリ画像データGDに対応する画像を拡大又は縮小したものであるということができる。
【0262】
複数のクエリ画像データGDを生成する場合、当該複数のクエリ画像データGDのそれぞれについて、データベース画像データGDDB[1]乃至データベース画像データGDDB[n]のそれぞれと比較する。これにより、データベース画像データGDDB[1]乃至データベース画像データGDDB[n]のそれぞれについて、複数のクエリ画像データGDのそれぞれに対する一致度を算出することができる。そして、例えば上記複数のクエリ画像データGDに対する一致度のうち最も高い一致度を、データベース画像データGDDBの、処理部13に入力されたクエリ画像データGDに対する一致度とすることができる。
【0263】
例えば、図20Aに示す場合では、クエリ画像データGD[1]をデータベース画像データGDDB[1]乃至データベース画像データGDDB[n]のそれぞれと比較し、クエリ画像データGD[2]をデータベース画像データGDDB[1]乃至データベース画像データGDDB[n]のそれぞれと比較し、クエリ画像データGD[3]をデータベース画像データGDDB[1]乃至データベース画像データGDDB[n]のそれぞれと比較する。これにより、データベース画像データGDDB[1]乃至データベース画像データGDDB[n]のそれぞれについて、クエリ画像データGD[1]に対する一致度、クエリ画像データGD[2]に対する一致度、及びクエリ画像データGD[3]に対する一致度を算出することができる。
【0264】
そして、例えばクエリ画像データGD[1]に対する一致度、クエリ画像データGD[2]に対する一致度、及びクエリ画像データGD[3]に対する一致度のうち最も高い一致度を、データベース画像データGDDBの、処理部13に入力されたクエリ画像データGDに対する一致度とすることができる。例えば、データベース画像データGDDB[1]のクエリ画像データGD[1]に対する一致度、クエリ画像データGD[2]に対する一致度、及びクエリ画像データGD[3]に対する一致度のうち最も高い一致度を、データベース画像データGDDB[1]の、処理部13に入力されたクエリ画像データGDに対する一致度とすることができる。
【0265】
クエリ画像データGDに対応する画像と、データベース画像データGDDBに対応する画像と、に同一の要素が示されている場合であっても、両要素の大きさが異なる場合、当該データベース画像データGDDBには、クエリ画像データGDに対する一致度が高い領域が含まれないと判断される可能性がある。図20B1に示す場合では、クエリ画像データGDに対応する画像と、データベース画像データGDDBに対応する画像と、の両方に、トランジスタの記号という同一の要素が示されている。しかし、クエリ画像データGDに対応する画像に示されているトランジスタの記号の大きさと、データベース画像データGDDBに対応する画像に示されているトランジスタの記号の大きさとが異なっている。この場合、データベース画像データGDDBのクエリ画像データGDに対する一致度が低いと判断される可能性がある。
【0266】
一方、図20B2に示す場合では、クエリ画像データGDに対応する画像と、データベース画像データGDDBに対応する画像と、の両方に、トランジスタの記号という同一の要素が示されており、さらに両要素の大きさも等しい。よって、データベース画像データGDDBに、クエリ画像データGDに対する一致度が高い領域が含まれると処理部13が判断することができる。
【0267】
図20Aに示すように、画素値の数が異なる複数のクエリ画像データGDを生成することで、クエリ画像データGDに対応する画像に示されている要素の大きさを拡大、又は縮小することができる。よって、処理部13に入力されたクエリ画像データGDに対応する画像と、データベース画像データGDDBに対応する画像と、に同一の要素が異なる大きさで示されている場合であっても、両画像データの一致度を高いものとすることができる。例えば、処理部13に図20B1に示すクエリ画像データGDが入力された場合、当該クエリ画像データGDが有する画素値の数を異ならせて図20B2に示すクエリ画像データGDを生成することにより、データベース画像データGDDBのクエリ画像データGDに対する一致度を高いものとすることができる。以上により、データベース画像データGDDBの、処理部13に入力されたクエリ画像データGDに対する一致度を高い精度で算出することができる。
【0268】
[ステップS32]
次に、抽出画像データGDExから、クエリ画像データGDに対する一致度が高い領域のデータである部分画像データGDpartを処理部13が抽出する。例えば、図18Bに示す方法により、データベース画像データGDDBの各領域のクエリ画像データGDに対する一致度をそれぞれ算出した場合、一致度が最も高い領域を部分画像データGDpartとして抽出する。よって、部分画像データGDpartが有する画素値の数は、クエリ画像データGDが有する画素値の数と等しくすることができる。
【0269】
図21A、及び図21Bは、ステップS32の動作の一例を示す図である。図21A、及び図21Bに示す抽出画像データGDEx[1]乃至抽出画像データGDEx[4]において、クエリ画像データGDに対する一致度が高い領域を、ハッチングを付して示している。図21A、及び図21Bに示すように、ハッチングを付した領域を抽出して、部分画像データGDpart[1]乃至部分画像データGDpart[4]とすることができる。図21A、及び図21Bでは、抽出画像データGDEx[1]乃至抽出画像データGDEx[4]から抽出した画像データを、それぞれ部分画像データGDpart[1]乃至部分画像データGDpart[4]としている。
【0270】
図21Aは、図18Aに示すように1個のクエリ画像データGDに対して、データベース画像データGDDBとの比較を行った例を示している。この場合、部分画像データGDpartに対応する画像の画素数は、全て等しくすることができる。
【0271】
図21Bは、図20Aに示すように画素値の数が異なる複数のクエリ画像データGDに対して、データベース画像データGDDBとの比較を行った例を示している。この場合、部分画像データGDpartに対応する画像の画素数は、例えば一致度が最も高いクエリ画像データGDに対応する画像の画素数と等しくすることができる。よって、部分画像データGDpartが複数存在する場合、部分画像データGDpartに対応する画像の画素数が、部分画像データGDpartごとに異なる場合がある。図21Bでは、部分画像データGDpart[1]乃至部分画像データGDpart[4]に対応する画像の画素数がそれぞれ異なる例を示している。
【0272】
なお、部分画像データGDpartの抽出を行わなくてもよい。この場合は、部分画像データGDpartを適宜抽出画像データGDExと読み替えることで、以降の説明を適用することができる。又は、抽出画像データGDExの全体を部分画像データGDpartとすることができるということができる。例えばクエリ画像データGD及び抽出画像データGDExの一方又は両方の画像データが有する画素値の数を増加又は減少させることにより、部分画像データGDpartの抽出を行わなくても画像検索システム10を用いた画像検索方法を実行することができる。
【0273】
[ステップS33]
次に、クエリ画像データGDを処理部13が有するニューラルネットワークに入力することにより、処理部13がクエリ画像特徴量データGFDを取得する。また、部分画像データGDpartを処理部13が有するニューラルネットワークに入力することにより、処理部13がデータベース画像特徴量データGFDDBを取得する。クエリ画像データGD、及び部分画像データGDpartは、例えば、図3A、又は図3Bに示す構成のニューラルネットワーク30に入力することができる。なお、画像検索システム10を図17に示す方法で動作させる場合、図2に示すステップS02は行わなくてよい。つまり、データベース画像データGDDBの領域全体の特徴量を表すデータベース画像特徴量データGFDDBは取得しなくてもよい。
【0274】
実施の形態1で説明したように、ニューラルネットワーク30の学習データとして、データベース画像データGDDBを用いることができる。ここで、学習データに用いる画像データが有する画素値の数と、ニューラルネットワーク30に入力する画像データが有する画素値の数とは等しいことが好ましい。よって、ニューラルネットワーク30が学習を行う際には、学習データに用いるデータベース画像データGDDB等は、必要に応じて画素値の数を増加又は減少させて調整することが好ましい。また、ニューラルネットワーク30にクエリ画像データGD、又は部分画像データGDpartを入力する際には、必要に応じて当該クエリ画像データGD、又は部分画像データGDpartが有する画素値の数を増加又は減少させることが好ましい。ここで、画素値の増加は、例えばパディングにより行うことが好ましく、例えばゼロパディングにより行うことが好ましい。
【0275】
図22Aは、データベース画像データGDDBが有する画素値の数の調整について説明する図である。図22Aに示す場合では、データベース画像データGDDB[1]乃至データベース画像データGDDB[4]が有する画素値の数が、全て異なっている。この場合、データベース画像データGDDB[1]乃至データベース画像データGDDB[4]をニューラルネットワーク30の学習データに用いる際には、図22Aに示すようにこれらの画像データが有する画素値の数を揃えることが好ましい。
【0276】
図22Bは、部分画像データGDpartが有する画素値の数の調整について説明する図である。部分画像データGDpartが有する画素値の数は、ニューラルネットワーク30の学習に用いた画像データが有する画素値の数と等しくすることが好ましい。同様に、ニューラルネットワーク30にクエリ画像データGDを入力する際には、当該クエリ画像データGDが有する画素値の数は、ニューラルネットワーク30の学習に用いた画像データが有する画素値の数と等しくすることが好ましい。
【0277】
ステップS33を行った後、画像検索システム10は図9に示すステップS13、又は図14に示すステップS23を行う。具体的には、ステップS31の前にステップS11を行った場合はステップS33の後にステップS13を行い、ステップS31の前にステップS21を行った場合はステップS33の後にステップS23を行う。以上がデータベース画像データGDDBの一部の領域と、クエリ画像データGDの領域全体と、を比較することにより、データベース画像データGDDBに対するクエリ画像データGDの類似度を算出する場合の、画像検索システム10を用いた画像検索方法の一例である。
【0278】
図17に示す方法では、クエリ画像データGDとデータベース画像データGDDBとを領域ベースマッチング等により比較し、クエリ画像データGDに対する一致度が高い領域を含むデータベース画像データGDDBを、抽出画像データGDExとして抽出している。その後、抽出画像データGDExから、上記一致度が高い領域を部分画像データGDpartとして抽出し、クエリ画像データGDと部分画像データGDpartを、処理部13が有するニューラルネットワークに入力している。このように、データベース画像データGDDBの抽出を行うことにより、クエリ画像データGDに対応する画像と一致度が高い画像を含まないデータベース画像を表すデータベース画像データGDDBが、処理部13が有するニューラルネットワークに入力されることを抑制することができる。よって、クエリ画像データGDに対応する画像と類似する画像を一部に含むデータベース画像を、高い精度で短時間に検索することができる。なお、クエリ画像データGDと比較するデータベース画像データGDDBの個数が少ない場合等は、データベース画像データGDDBの抽出を行わなくても、高い精度で短時間に上記検索を行うことができる。
【0279】
<2-2.画像検索方法-4>
図23は、データベース画像データGDDBの領域全体と、クエリ画像データGDの一部の領域と、を比較することにより、データベース画像データGDDBのクエリ画像データGDに対する類似度を算出する場合の、画像検索システム10を用いた画像検索方法の一例である。まず、画像検索システム10は、図9に示すステップS11、又は図14に示すステップ21を行う。
【0280】
[ステップS41]
次に、処理部13が、クエリ画像データGDとデータベース画像データGDDBとを比較し、クエリ画像データGDの一部に対する一致度が高いデータベース画像データGDDBを、抽出画像データGDExとして抽出する。クエリ画像データGDとデータベース画像データGDDBとの比較は、ステップS31と同様に例えば領域ベースマッチングにより行うことができる。
【0281】
ステップS41の動作の一例について、図24及び図25を用いて詳細に説明する。ステップS41では、図24Aに示すように、クエリ画像データGDをn個のデータベース画像データGDDBのそれぞれと比較する。
【0282】
図24Bは、クエリ画像データGDと、データベース画像データGDDBとを領域ベースマッチングにより比較する場合の手順について説明する図である。ここで、クエリ画像データGDに対応する画像の画素数は4×4、データベース画像データGDDBに対応する画像の画素数は2×2とする。つまり、クエリ画像データGDは4×4の画素値を有し、データベース画像データGDDBは2×2の画素値を有するとする。
【0283】
図24Bにおいて、クエリ画像データGDが有する4×4の画素値を、それぞれ画素値vq11乃至画素値vq44とする。例えば、クエリ画像データGDにおいて、1行1列目の画素に対応する画素値を画素値vq11、1行4列目の画素に対応する画素値を画素値vq14、4行1列目の画素に対応する画素値を画素値vq41、4行4列目の画素に対応する画素値を画素値vq44とする。また、データベース画像データGDDBが有する2×2の画素値を、それぞれ画素値vdb11、画素値vdb12、画素値vdb21、画素値vdb22とする。例えば、データベース画像データGDDBにおいて、1行1列目の画素に対応する画素値を画素値vdb11、1行2列目の画素に対応する画素値を画素値vdb12、2行1列目の画素に対応する画素値を画素値vdb21、2行2列目の画素に対応する画素値を画素値vdb22とする。
【0284】
まず、画素値vdb11、画素値vdb12、画素値vdb21、及び画素値vdb22と、画素値vq11、画素値vq12、画素値vq21、及び画素値vq22と、を比較する。これにより、データベース画像データGDDBと、クエリ画像データGDのうち画素値vq11、画素値vq12、画素値vq21、及び画素値vq22から構成される領域と、の一致度を算出することができる。なお、図24Bでは、クエリ画像データGDが有する画素値のうち、データベース画像データGDDBと比較される画素値を、比較データ領域21として点線で囲って示している。
【0285】
次に、比較データ領域21をクエリ画像データGDが有する画素値に対して1列分移動させ、同様に画素値を比較し、一致度を算出する。具体的には、画素値vdb11、画素値vdb12、画素値vdb21、及び画素値vdb22と、画素値vq12、画素値vq13、画素値vq22、及び画素値vq23と、を比較する。これにより、データベース画像データGDDBと、クエリ画像データGDのうち画素値vq12、画素値vq13、画素値vq22、及び画素値vq23から構成される領域と、の一致度を算出することができる。
【0286】
その後も、比較データ領域21をクエリ画像データGDが有する画素値に対して1列分移動させ、同様に画素値を比較し、一致度を算出する。具体的には、画素値vdb11、画素値vdb12、画素値vdb21、及び画素値vdb22と、画素値vq13、画素値vq14、画素値vq23、及び画素値vq24と、を比較する。これにより、データベース画像データGDDBと、クエリ画像データGDのうち画素値vq13、画素値vq14、画素値vq23、及び画素値vq24から構成される領域と、の一致度を算出することができる。
【0287】
次に、比較データ領域21をクエリ画像データGDが有する画素値に対して1行分移動させ、クエリ画像データGDの2行目の画素値、及び3行目の画素値と、データベース画像データGDDBを構成する画素値とを上記と同様に1列ごとに比較する。これにより、クエリ画像データGDの、2行目及び3行目の画素値から構成される領域と、データベース画像データGDDBとの一致度を上記と同様に1列ごとに算出することができる。
【0288】
その後、比較データ領域21をクエリ画像データGDが有する画素値に対して1行分移動させ、クエリ画像データGDの3行目の画素値、及び4行目の画素値と、データベース画像データGDDBを構成する画素値とを上記と同様に1列ごとに比較する。これにより、クエリ画像データGDの、3行目及び4行目の画素値から構成される領域と、データベース画像データGDDBとの一致度を上記と同様に1列ごとに算出することができる。
【0289】
以上の動作を行った後、例えば最も高い一致度を、データベース画像データGDDBのクエリ画像データGDに対する一致度とする。以上をn個のデータベース画像データGDDBのそれぞれについて行う。その後、ステップS31と同様に、n個のデータベース画像データGDDBの中から、クエリ画像データGDとの一致度が高いデータベース画像データGDDBを、抽出画像データGDExとして抽出する。なお、ステップS31と同様に、データベース画像データGDDBの抽出を行わなくてもよい。
【0290】
図25は、データベース画像データGDDBの抽出について説明する図である。図25は、データベース画像データGDDB[1]乃至データベース画像データGDDB[3]から、1個の画像データを抽出画像データGDExとして抽出する例を示している。
【0291】
図25に示すクエリ画像データGDに対応する画像には、例えばトランジスタの記号、及び容量素子の記号が含まれているものとする。また、図25に示すデータベース画像データGDDB[2]に対応する画像にはトランジスタの記号が含まれているが、データベース画像データGDDB[1]に対応する画像、及びデータベース画像データGDDB[3]に対応する画像には、トランジスタの記号、及び容量素子の記号のいずれもが含まれていないものとする。この場合、データベース画像データGDDB[2]のクエリ画像データGDに対する一致度は、データベース画像データGDDB[1]及びデータベース画像データGDDB[3]のクエリ画像データGDに対する一致度より高くなる。よって、データベース画像データGDDB[2]を、抽出画像データGDExとして抽出することができる。
【0292】
なお、クエリ画像データGDとデータベース画像データGDDBの比較、及び一致度の算出は、ステップS31で用いることができる方法と同様の方法を用いることができる。また、図24Bでは比較データ領域をクエリ画像データGDが有する画素値に対して1列分、又は1行分ずつ移動させているが、ステップS31と同様に、比較データ領域21をクエリ画像データGDが有する画素値に対して2列分以上移動させてもよいし、2行分以上移動させてもよい。さらに、図20Aに示す場合と同様に、処理部13に入力されたクエリ画像データGDを基にして、画素値の数が異なる複数のクエリ画像データGDを生成してもよい。
【0293】
[ステップS42]
次に、クエリ画像データGDから、抽出画像データGDExに対する一致度が高い領域のデータである部分画像データGDpart-Qを処理部13が抽出する。例えば、図24Bに示す方法で、クエリ画像データGDの各領域の、データベース画像データGDDBに対する一致度をそれぞれ算出した場合、一致度が最も高い領域を部分画像データGDpart-Qとして抽出する。よって、部分画像データGDpart-Qが有する画素値の数は、抽出画像データGDExが有する画素値の数と等しくすることができる。
【0294】
図26は、ステップS42の動作の一例を示す図である。図26に示す場合では、クエリ画像データGDに対応する画像の左上部分が、抽出画像データGDEx[1]に対する一致度が最も高い領域となる。したがって、クエリ画像データGDのうち、左上の領域に対応するデータを部分画像データGDpart-Q[1]とする。一方、クエリ画像データGDに対応する画像の右下部分が、抽出画像データGDEx[2]に対する一致度が最も高い領域となる。したがって、クエリ画像データGDのうち、右下の領域に対応するデータを部分画像データGDpart-Q[2]とする。つまり、1個のクエリ画像データGDから複数の部分画像データGDpart-Qが抽出されている。
【0295】
ステップS42において、抽出画像データGDExと同数の画像データを、クエリ画像データGDから部分画像データGDpart-Qとして抽出してもよい。又は、抽出画像データGDExより少ない数の画像データを、クエリ画像データGDから部分画像データGDpart-Qとして抽出してもよい。例えば、複数の抽出画像データGDExに対して、一致度が高いクエリ画像データGDの領域が同一である場合には、当該同一の領域については、クエリ画像データGDから抽出される部分画像データGDpart-Qの個数は1個とすることができる。つまり、同一の部分画像データGDpart-Qを、クエリ画像データGDから複数抽出しなくてもよい。
【0296】
なお、部分画像データGDpart-Qの抽出を行わなくてもよい。この場合は、部分画像データGDpart-Qを適宜クエリ画像データGDと読み替えることで、以降の説明を適用することができる。又は、クエリ画像データGDの全体を部分画像データGDpart-Qとすることができるということができる。例えばクエリ画像データGD及び抽出画像データGDExの一方又は両方の画像データが有する画素値の数を増加又は減少させることにより、部分画像データGDpart-Qの抽出を行わなくても画像検索システム10を用いた画像検索方法を実行することができる。
【0297】
[ステップS43]
次に、部分画像データGDpart-Qと抽出画像データGDExとを、処理部13が有するニューラルネットワークに入力する。
【0298】
ステップS43における動作は、適宜クエリ画像データGDを部分画像データGDpart-Qと読み替え、部分画像データGDpartを抽出画像データGDExと読み替えること等により、ステップS33の説明を参照することができる。なお、クエリ画像データGDを抽出画像データGDExと読み替え、部分画像データGDpartを部分画像データGDpart-Qと読み替える場合もある。
【0299】
以上がデータベース画像データGDDBの領域全体と、クエリ画像データGDの一部の領域と、を比較することにより、データベース画像データGDDBに対するクエリ画像データGDの類似度を算出する場合の、画像検索システム10を用いた画像検索方法の一例である。
【0300】
図23に示す方法では、クエリ画像データGDとデータベース画像データGDDBとを領域ベースマッチング等により比較し、クエリ画像データGDの一部に対する一致度が高いデータベース画像データGDDBを、抽出画像データGDExとして抽出している。その後、クエリ画像データGDから、上記一致度が高い領域を部分画像データGDpart-Qとして抽出し、部分画像データGDpart-Qと抽出画像データGDExを、処理部13が有するニューラルネットワークに入力している。このように、データベース画像データGDDBの抽出を行うことにより、クエリ画像データGDに対応する画像と一致度が高い画像を含まないデータベース画像を表すデータベース画像データGDDBが、処理部13が有するニューラルネットワークに入力されることを抑制することができる。よって、クエリ画像データGDに対応する画像の一部と類似するデータベース画像を、高い精度で短時間に検索することができる。なお、クエリ画像データGDと比較するデータベース画像データGDDBの個数が少ない場合等は、データベース画像データGDDBの抽出を行わなくても、高い精度で短時間に上記検索を行うことができる。
【0301】
本実施の形態は、他の実施の形態と適宜組み合わせることができる。また、本明細書において、1つの実施の形態の中に、複数の構成例が示される場合は、構成例を適宜組み合わせることが可能である。
【実施例
【0302】
本実施例では、画像検索システムに画像を入力し、当該画像と類似するデータベース画像を検索した結果について説明する。
【0303】
本実施例では、画像検索システムに、クエリ画像として1枚の画像を入力した。その後、当該画像と類似するデータベース画像を、条件1と条件2により100枚ずつ検索した。条件1、条件2のいずれにおいても、クエリ画像は半導体製造装置を表す模式図とした。また、データベース画像として、半導体製造装置を表す模式図の他、回路図、回路レイアウト図、ブロック図等を用意した。さらに、データベース画像は、特許文献に掲載された図面とした。
【0304】
条件1では、図9に示すステップS11乃至ステップS13を行い、データベース画像の、クエリ画像に対する類似度を算出した。その後、ステップS17を行い、当該類似度が高い方から1番目乃至100番目のデータベース画像を表すランキングデータを生成した。
【0305】
条件2では、まず、図2に示すステップS01乃至ステップS04により、データベース画像が掲載された特許文献と同一の特許文献に掲載された明細書から、データベースタグを取得した。次に、図9に示すステップS11乃至ステップS13を行い、データベース画像の、クエリ画像に対する類似度を算出した後、ステップS14乃至ステップS16を行い、当該類似度を補正した。その後、ステップS17を行い、補正後の類似度が高い方から1番目乃至100番目のデータベース画像を表すランキングデータを生成した。
【0306】
条件1では、クエリ画像との類似度が1番目乃至100番目のデータベース画像のうち、クエリ画像と同じく半導体製造装置を表す画像は14枚であり、残りの86枚は回路図、回路レイアウト図、ブロック図等を表す画像であった。一方、条件2では、100枚とも半導体製造装置を表す画像であった。
【0307】
以上より、条件2では、クエリ画像と概念が類似するデータベース画像を、条件1より多く検索することができることが確認された。
【符号の説明】
【0308】
10:画像検索システム、11:入力部、12:伝送路、13:処理部、15:記憶部、17:データベース、19:出力部、21:比較データ領域、30:ニューラルネットワーク、30a:ニューラルネットワーク、31:層、32:ニューロン、32a:ニューロン、32b:ニューロン、32c:ニューロン、40:ニューラルネットワーク
図1
図2
図3A
図3B
図4
図5
図6A
図6B
図7A
図7B
図8A
図8B
図9
図10
図11A
図11B
図12A
図12B
図13
図14
図15
図16A
図16B
図17
図18A
図18B
図19
図20A
図20B1
図20B2
図21A
図21B
図22A
図22B
図23
図24A
図24B
図25
図26