JP7019137B2 - 類似画像検索システム - Google Patents

類似画像検索システム Download PDF

Info

Publication number
JP7019137B2
JP7019137B2 JP2015167393A JP2015167393A JP7019137B2 JP 7019137 B2 JP7019137 B2 JP 7019137B2 JP 2015167393 A JP2015167393 A JP 2015167393A JP 2015167393 A JP2015167393 A JP 2015167393A JP 7019137 B2 JP7019137 B2 JP 7019137B2
Authority
JP
Japan
Prior art keywords
image
registered
feature vector
processing unit
attribute data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015167393A
Other languages
English (en)
Other versions
JP2017045291A (ja
Inventor
利文 村田
隆司 新井
美紀 長谷山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hokkaido University NUC
Original Assignee
Hokkaido University NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hokkaido University NUC filed Critical Hokkaido University NUC
Priority to JP2015167393A priority Critical patent/JP7019137B2/ja
Publication of JP2017045291A publication Critical patent/JP2017045291A/ja
Application granted granted Critical
Publication of JP7019137B2 publication Critical patent/JP7019137B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は,あらかじめ登録されている画像の中から,類似する画像を検索する類似画像検索システムに関する。
画像検索においては,ある画像(クエリ画像)(画像とは,コンピュータで表示可能な,データ化されているイメージ情報をいう)を検索条件として,クエリ画像に類似する画像が,複数の画像(登録画像)を登録しているデータベース(登録画像データベース)に存在するかを検索することが必要な場合がある。この場合,クエリ画像と,登録画像データベースに登録された登録画像とを比較することで類似する画像であるかを判定することが必要であるが,登録している画像の数が多量になるとその判定処理に大幅な処理時間を要することとなる。そのため,高速に判定する類似画像の検索システムが求められている。
そこで,多量の画像に対する高速での画像の類似検索処理を行うため,従来は,局所性鋭敏型ハッシュ技術(LSH(locality sensitive hashing))や,セントロイドからの距離でデータを管理するなどの,類似性の高い画像をグルーピングするデータ構造を利用することで,検索候補を絞る方法が一般的に用いられている。この一例として,下記非特許文献1が存在する。また,クエリ画像との類似性に基づいて類似する登録画像を検索するシステムとして特許文献1のシステムが存在している。
また,類似画像検索の際に,画像検索する利用者の所望する属性をもつ画像以外は検索結果から排除したい場合もある。そのときは,非特許文献1などの方法によって十分大きな数の類似画像の候補を得ておき,その後,属性データによって絞り込みを行う方法もある。この属性データとして,その画像に関連するテキストデータを検索キーワードとして用いて絞り込みを行う方法が存在する(特許文献2)。この方法はテキストデータに関連するキーワードをさらに特定し,検索キーワード,関連キーワードに関連づけられた画像を検索することで,類似画像を検索する方法である。
特開2001-160062号公報 特開2008-217117号公報
重村拓也,清水大輝,寺沢憲吾,"LSHによる大規模画像データからの高速類似検索",2013年3月6日,一般社団法人情報処理学会,全国大会講演論文集,2013(1),p.393-395
非特許文献1のLSHを用いた処理は,画像における特徴量に応じてハッシュ値を定め,その定めたハッシュ値に基づいて,類似画像検索を高速に実行する方法である。これはクエリ画像のハッシュ値と,登録画像のハッシュ値とが同じであれば特徴量が近い値である,すなわち2つの画像は類似していると判定できることを利用したものである。
この場合,登録画像の数が10倍に増えると,検索の結果として得られる画像の数も10倍に増え,処理時間が急増するなどの不都合が起きる。そのため,一般に,登録済みの画像をすべて新しいハッシュ値で再ハッシュするなどの処理が必要となる。
さらに,画像の属性データによる絞り込みを行う場合には,求められている検索結果数を担保するために,類似画像の検索の際に,1グループのサイズを大きくとっておく,または数グループに亘って検索するなどの対応が必要となる。その結果,動作効率の悪化や処理時間が大幅に増大するなどの問題が発生する。そのため,せっかく類似画像の検索を高速化したとしても,その効果が失われてしまう問題がある。
そこで本発明者は上記課題に鑑み,以下の発明をした。
請求項1の発明は,あらかじめ登録してある登録画像から,クエリ画像に類似する画像を検索するための類似画像検索システムであって,前記類似画像検索システムは,前記登録画像の特徴量をベクトル化した特徴ベクトルについて,前記登録画像の特徴量を行方向,次元数を列方向に配置したデータテーブルで記憶する登録画像特徴ベクトル記憶部と,クエリ画像の入力を受け付けるクエリ画像入力受付処理部と,前記入力を受け付けたクエリ画像に基づいて特徴量を抽出するクエリ画像特徴量抽出処理部と,前記抽出した特徴量をベクトル化した特徴ベクトルを算出するクエリ画像ベクトル化処理部と,前記算出したクエリ画像の特徴ベクトルに基づいて,前記登録画像特徴ベクトル記憶部の特徴ベクトルを参照して,前記クエリ画像に類似する登録画像を検索するクエリ画像特徴ベクトル検索処理部と,前記検索した結果,前記クエリ画像に類似する登録画像を出力する検索結果出力処理部と,を有しており,前記クエリ画像特徴ベクトル検索処理部は,前記クエリ画像の特徴ベクトルの処理対象とする各次元において,それぞれの登録画像について,その次元における前記クエリ画像の特徴ベクトルの要素と登録画像の特徴ベクトルの要素とを用いてそれぞれの類似度を算出する処理を実行することで,前記クエリ画像に類似する登録画像を検索する,類似画像検索システムである。
請求項8の発明は,あらかじめ登録してある登録画像から,クエリ画像に類似する画像を検索するための類似画像検索システムであって,前記類似画像検索システムは,前記登録画像の特徴量をベクトル化した特徴ベクトルについて,前記登録画像の特徴量を行方向,次元数を列方向に配置したデータテーブルで記憶する登録画像特徴ベクトル記憶部と,前記クエリ画像の特徴量をベクトル化した特徴ベクトルを算出するクエリ画像ベクトル化処理部と,前記クエリ画像の特徴ベクトルの処理対象とする各次元において,前記登録画像特徴ベクトル記憶部を参照して,それぞれの登録画像について,その次元における前記クエリ画像の特徴ベクトルの要素と登録画像の特徴ベクトルの要素とを用いてそれぞれの類似度を算出する処理を実行することで,前記クエリ画像に類似する登録画像を検索するクエリ画像特徴ベクトル検索処理部と,前記検索した結果,前記クエリ画像に類似する登録画像を出力する検索結果出力処理部と,を有する類似画像検索システムである。
これらの発明のように,従来と異なり,登録画像の特徴ベクトルをデータテーブルで記憶し,クエリ画像の特徴ベクトルと比較する処理を実行することで,データテーブルの処理のみで類似する画像を特定することができる。そのため,単純な演算のみとなるので,高速に処理を実現することができる。
またデータテーブルで特徴ベクトルを管理しているので,登録画像の追加,削除があったとしても,従来のように,局所特徴量のハッシュ値が変わってしまうことによる再ハッシュが必要ないなど,画像の管理を容易にすることもできる。
上述の発明において,前記クエリ画像特徴ベクトル検索処理部は,前記クエリ画像の特徴ベクトルの次元の初期値から次元数となるまで,その次元における前記クエリ画像の特徴ベクトルの要素が所定値でない場合には,それぞれの登録画像について,その次元における前記クエリ画像の特徴ベクトルの要素と登録画像の特徴ベクトルの要素とを用いてその次元までのそれぞれの登録画像の類似度を算出する処理を反復することで,前記クエリ画像に類似する登録画像を検索する,類似画像検索システムのように構成することができる。
本発明のように,類似する画像の検索の際には,特徴ベクトルを用いて類似度を特定し,それに基づいて類似する画像を特定することが好ましい。
上述の発明において,前記類似画像検索システムは,さらに,前記登録画像の属性データをエンコードして,前記登録画像に対応づけて記憶する登録画像属性データ記憶部と,前記クエリ画像の属性データの入力を受け付けるクエリ画像属性データ入力受付処理部と,前記入力を受け付けた属性データをエンコードするクエリ画像属性データエンコード処理部と,前記エンコードした値に基づいて,前記登録画像属性データ記憶部を参照し,属性データを用いた絞込処理を実行するクエリ画像属性データ検索処理部と,を有する類似画像検索システムのように構成することができる。
上述の発明において,前記検索結果出力処理部は,さらに,前記クエリ画像属性データ検索処理部で絞込処理を実行した結果,絞込条件を充足しない属性データに対応する登録画像の類似度を変更し,前記変更後の類似度に基づいて,類似度が所定範囲の登録画像を,前記クエリ画像に類似する登録画像として出力する,類似画像検索システムのように構成することができる。
これらの発明のように,画像の属性データを用いて絞込処理を実行することで,類似する画像の検索処理を実現することもできる。なお,本発明における属性データとは,画像に紐付けられた,その画像の属性を示すテキスト型の情報をいう。
上述の発明において,前記登録画像属性データ記憶部は,登録画像の属性データのバイナリーデータであるビット列を,データテーブルで記憶しており,前記クエリ画像属性データ検索処理部は,前記クエリ画像属性データエンコード処理部でエンコードした,前記クエリ画像の属性データのバイナリーデータであるビット列と,前記登録画像属性データ記憶部に記憶する登録画像の属性データのバイナリーデータであるビット列とを,論理演算することで,属性データを用いた絞込処理を実行する,類似画像検索システムのように構成することができる。
本発明のように属性データをテキストデータとして処理するのではなく,バイナリーデータのビット列としてデータテーブルで管理して,バイナリーデータ同士の論理演算で絞込処理を実行することで,より高速の処理を実現することができる。
上述の発明において,前記類似画像検索システムは,さらに,前記属性データの境界を示すバウンダリー情報を備えており,前記クエリ画像属性データ検索処理部は,前記クエリ画像の属性データをエンコードしたバイナリーデータのビット列と,前記登録画像属性データ記憶部に記憶する登録画像の属性データをエンコードしたバイナリーデータのビット列の論理演算の際に,前記バウンダリー情報に基づいて,属性データの境界を判定し,その属性データの境界ごとに,それぞれのバイナリーデータの比較処理を実行する,類似画像検索システムのように構成することができる。
複数の属性データを絞込の条件として用いる場合,属性データをビット列としてデータテーブルで管理していると,属性データの境界を特定することができず,ビット列同士の論理演算を実行することができない。そのため,本発明のように,属性データの境界を示すバウンダリー情報を用いることで,複数の属性データを絞込の条件として用いることができる。
上述の発明において,前記検索結果出力処理部は,前記類似度を所定範囲ごとに分類したヒストグラムを生成し,出力すべき検索結果数が前記ヒストグラムのどの範囲に含まれているかを特定し,前記特定した範囲以上の類似度を有する登録画像をソートの対象として,前記類似度に基づいてソートを行うことで,前記クエリ画像に類似する登録画像を出力する,類似画像検索システムのように構成することができる。
類似度に応じて登録画像をソートして検索結果を出力する場合,O(n log(n))の実行時間が必要となる。そのため,ソートの対象となる登録画像の数が少なくなるほど,ソートの実行時間を減らすことができる。そこで,本発明のように構成することで,類似度に基づいてソートを行う登録画像の数を減らすことができるので,より高速化した処理を実現することができる。
請求項1に記載の類似画像検索システムは,本発明のプログラムをコンピュータに読み込ませることで実現することができる。すなわち,コンピュータを,クエリ画像の入力を受け付けるクエリ画像入力受付処理部,前記入力を受け付けたクエリ画像に基づいて特徴量を抽出するクエリ画像特徴量抽出処理部,前記抽出した特徴量をベクトル化した特徴ベクトルを算出するクエリ画像ベクトル化処理部,前記算出したクエリ画像の特徴ベクトルに基づいて,登録画像の特徴量をベクトル化した特徴ベクトルについて,前記登録画像の特徴量を行方向,次元数を列方向に配置したデータテーブルで記憶する登録画像特徴ベクトル記憶部を参照して,前記クエリ画像に類似する登録画像を検索するクエリ画像特徴ベクトル検索処理部,前記検索した結果,前記クエリ画像に類似する登録画像を出力する検索結果出力処理部,として機能させる類似画像検索プログラムであって,前記クエリ画像特徴ベクトル検索処理部は,前記クエリ画像の特徴ベクトルの処理対象とする各次元において,それぞれの登録画像について,その次元における前記クエリ画像の特徴ベクトルの要素と登録画像の特徴ベクトルの要素とを用いてそれぞれの類似度を算出する処理を実行することで,前記クエリ画像に類似する登録画像を検索する,類似画像検索プログラムである。
請求項8に記載の類似画像検索システムは,本発明のプログラムをコンピュータに読み込ませることで実現することができる。すなわち,コンピュータを,クエリ画像の特徴量をベクトル化した特徴ベクトルを算出するクエリ画像ベクトル化処理部,前記クエリ画像の特徴ベクトルの処理対象とする各次元において,登録画像の特徴量をベクトル化した特徴ベクトルについて,前記登録画像の特徴量を行方向,次元数を列方向に配置したデータテーブルで記憶する登録画像特徴ベクトル記憶部を参照して,それぞれの登録画像について,その次元における前記クエリ画像の特徴ベクトルの要素と登録画像の特徴ベクトルの要素とを用いてそれぞれの類似度を算出する処理を実行することで,前記クエリ画像に類似する登録画像を検索するクエリ画像特徴ベクトル検索処理部,前記検索した結果,前記クエリ画像に類似する登録画像を出力する検索結果出力処理部,として機能させる類似画像検索プログラムである。
本発明の類似画像検索システムを用いることで,類似画像の検索の高速化を実現することができる。これは,従来のように類似性の高い画像同士のグルーピング等の前処理は行わず,画像のデータ構造の簡素化と反復処理の簡素化を用いた処理を実現することで,単純な繰り返し演算に対するCPUの高速実行の能力を活用し,類似画像の高速化を実現することができる。
また,絞り込みの条件として用いる属性データについても,類似する画像の検索と同様,データ構造の簡素化と反復処理の簡素化を用いた処理を実現することで,単純な繰り返し演算に対するCPUの高速実行の能力を活用し,類似画像の高速化を実現することができる。
本発明の類似画像検索システムの全体の概念の一例を模式的に示す概念図である。 コンピュータのハードウェア構成の一例を模式的に示す図である。 本発明の類似画像検索システムの全体の処理プロセスの一例を示すフローチャートである。 類似画像の検索処理の処理プロセスの一例を示すフローチャートである。 属性データでの絞り込み処理の処理プロセスの一例を示すフローチャートの一例である。 登録画像特徴ベクトル記憶部の一例を模式的に示す図である。 登録画像属性データ記憶部の一例を模式的に示す図である。 本発明の類似画像検索システムのデータ構造の概念を模式的に示す模式図である。 本発明の類似画像検索システムの説明のため,図8を簡易的にした模式図である。 絞込条件として用いた属性データの一例を模式的に示す図である。 特徴ベクトルQ[]の一例を模式的に示す図である。 初期化した類似度R[]の一例を模式的に示す図である。 特徴ベクトルV[][]の一例を模式的に示す図である。 j=1のときのS260の処理を模式的に示す図である。 j=3のときのS260の処理を模式的に示す図である。 j=4のときのS260の処理を模式的に示す図である。 絞込処理を行う際の概念の一例を模式的に示す図である。 絞込条件に関する概念の一例を模式的に示す図である。 依存関係がある場合の属性データを模式的に示す図である。
本発明の類似画像検索システム1の全体の概念図の一例を図1に示す。本発明の類似画像検索システム1は,登録画像の登録や削除処理などの登録画像の管理を行う登録画像管理システム2と,類似画像の検索を行う検索処理システム3とを有する。
登録画像管理システム2は,登録画像入力受付処理部20と,登録画像特徴量抽出処理部21と,登録画像ベクトル化処理部22と,登録画像特徴ベクトル登録処理部23と,登録画像特徴ベクトル記憶部24と,登録画像属性データ入力受付処理部25と,登録画像属性データエンコード処理部26と,登録画像属性データ記憶部27とを有する。
検索処理システム3は,クエリ画像入力受付処理部30と,クエリ画像特徴量抽出処理部31と,クエリ画像ベクトル化処理部32と,クエリ画像特徴ベクトル検索処理部33と,クエリ画像属性データ入力受付処理部34と,クエリ画像属性データエンコード処理部35と,クエリ画像属性データ検索処理部36と,検索結果出力処理部37と,を有する。
類似画像検索システム1,登録画像管理システム2,検索処理システム3は,サーバやパーソナルコンピュータ,可搬型通信端末などの各種のコンピュータにより実現される。図2にコンピュータのハードウェア構成の一例を示す。コンピュータには,プログラムの演算処理を実行するCPUなどの演算装置70と,情報を記憶するRAMやハードディスクなどの記憶装置71と,ディスプレイなどの表示装置72と,演算装置70の処理結果や記憶装置71に記憶する情報をインターネットやLANなどのネットワークを介して送受信する通信装置73と,キーボードやポインティングデバイス(マウスやテンキーなど)などの入力装置74の一部または全部が備えられている。
図1では類似画像検索システム1,登録画像管理システム2,検索処理システム3がそれぞれ一台のコンピュータで実現される場合を示したが,複数台のコンピュータにその機能が分散配置され,実現されても良い。
本発明における各手段は,その機能が論理的に区別されているのみであって,物理上あるいは事実上は同一の領域を為していても良い。
なお,本明細書では,説明の便宜上,登録画像管理システム2と検索処理システム3とに分けて説明するが,実際には,これらが一つのシステムとして構成されていても良いし,複数の異なるシステムとして構成されていても良い。また各システムの処理機能が共通化していても良い。
登録画像管理システム2における登録画像入力受付処理部20は,類似画像検索システム1において検索対象となる画像(登録画像)の入力を受け付ける。登録画像入力受付処理部20ではあらかじめ類似画像検索システム1で処理対象としている画像フォーマットで画像の入力を受け付ける。この際に,その画像を識別するためのIDが付与される。
登録画像特徴量抽出処理部21は,登録画像入力受付処理部20で入力を受け付けた画像に対して,あらかじめ定められた方法によりその画像の特徴量を抽出する処理を実行する。特徴量としては,類似性を判定するための諸指標であればよい。特徴量としては,たとえば0から255まで,あるいは65535までなどと上限を設定しサイズを規格化している。
本明細書および以下の説明では,特徴量として,Histogram intersectionを用いる場合を説明する。本発明の類似画像検索システム1では,特徴量として,局所特徴量,Bag-of Visual-Words,Histogram intersectionを用いると効果があるが,それらに限られず,固定長ベクトル化した特徴量(特徴ベクトル)であれば,色ヒストグラムや色コリログラム,あるいはほかの画像特徴量であっても良い。また,それらとBag-of-Visual Wordsとの組み合わせであっても良い。
登録画像ベクトル化処理部22は,登録画像特徴量抽出処理部21で抽出した特徴量をベクトル化(固定長ベクトル化)する処理を実行する。
特徴ベクトルを算出するにあたり,処理に用いる特徴とbin(選ばれた特徴の粒度)が選ばれると,各binに合致した特徴が画像内に何個存在するかを数え上げ,ヒストグラムを生成する。さらにそのヒストグラムに対して正規化を行う。正規化を行うことによって,類似性の高い画像同士が類似した値を取れるようにできる。これによって,Histogram intersection等によって,画像同士の類似性を求めることができる。
さらに,特徴ベクトルを各特徴の出現頻度に合わせて特性を歪ませて偏りを矯正すると良い。たとえば,画像のほとんどを一つの色が占める画像を母集団(登録画像の母集団)とする場合には,指数関数を乗じることで中間部分を下に押し下げ,出現頻度を全領域に亘って,平均化する。これによって,互いに独立性の高い特徴量を複合させて特徴ベクトルを構成する場合,いずれかの特徴量が強くなり,ほかの特徴量が埋もれてしまって,その特徴量が類似性判定に寄与しなくなるのを回避し,類似性の判定精度を高めることができる。
このように,特徴ベクトルの各要素のダイナミックレンジをそろえ,偏りを強制することにより,特徴ベクトルが取り得る値の上限,下限を定めて整数化を行うことが可能となる。これによって,特徴ベクトルの要素を2バイト(0~65535の値)で表現することは十分に可能であり,さらに1バイト(0~255の値)で表現することも可能となる。
登録画像特徴ベクトル登録処理部23は,登録画像ベクトル化処理部22でベクトル化した値(特徴ベクトル)と,登録画像入力受付処理部20で付与されたIDとを,後述する登録画像特徴ベクトル記憶部24に,対応づけて記憶させる。
登録画像特徴ベクトル記憶部24は,各登録画像のIDと特徴ベクトルとを対応づけて記憶している。図6に登録画像特徴ベクトル記憶部24の一例を模式的に示す。
登録画像属性データ入力受付処理部25は,登録画像入力受付処理部20で入力を受け付けた登録画像に対応する属性データがある場合に,その属性データの入力を受け付ける。
属性データとして与えるのは,類似画像の検索の際に絞込の条件として用いる情報である。そして属性データは数え上げ型の組合せである。たとえば,属性データが「都道府県」であり,その属性データの取り得る値が,「北海道」,「青森」などの47種類からなる組合せであるなど,属性データはその取り得る値があらかじめ定められている必要がある。
各属性データの関係は互いに独立でなくてもよく,依存関係があってもよい。この依存関係としては,上位レベルの属性データの値が択一であり,上位レベルによって下位レベルが取り得る値が変わる場合がある。これを模式的に示すのが図19である。
たとえば属性Aの属性データの取り得る値が「テーブル,マット」であり,属性Aの値が「テーブル」のとき,属性B(高さ)が「45cm,70cm」,属性Aの値が「マット」のとき,属性C(面積)が「2畳,4畳」などの場合が該当する。この場合,属性A,属性B,属性Cのエンコードの方法を独立に決め,属性Bと属性Cのビット数の最大長を共通領域として割り当てる。エンコード時には,属性Aの値によって属性Bのエンコードを使うか,属性Cのエンコードを使うかが定まるので,依存関係がある場合でも処理可能となる。
また,連続量(長さ,面積など)や極めて大きなバリエーションがあるもの(時刻データなど)を絞込条件として用いる場合には,それらを適当な区間で区切り,区間に対してビットを割り当てるとともに,絞込処理時には,区間単位で検索対象を絞り込むこととなる。
登録画像属性データエンコード処理部26は,登録画像属性データ入力受付処理部25で入力を受け付けた属性データをエンコード(バイナリーデータとしてビット列化)して記憶する。そしてエンコードした属性データと,当該属性データに対応する登録画像が登録画像入力受付処理部20で付与されたIDとを,後述する登録画像属性データ記憶部27に,対応づけて記憶させる。
登録画像属性データ記憶部27は,各登録画像のIDと,エンコードした属性データとを対応づけて記憶している。図7に登録画像属性データ記憶部27の一例を模式的に示す。
検索処理システム3におけるクエリ画像入力受付処理部30は,クエリ画像の入力を受け付ける。クエリ画像入力受付処理部30ではあらかじめ類似画像検索システム1で処理対象としている画像フォーマットで画像の入力を受け付ける。
クエリ画像特徴量抽出処理部31は,クエリ画像入力受付処理部30で入力を受け付けたクエリ画像に対して,あらかじめ定められた方法によりその画像の特徴量を抽出する処理を実行する。なお,画像の特徴量を抽出する処理は,登録画像特徴量抽出処理部21で登録画像から特徴量を抽出する処理と同じである。そのため,特徴量としては,登録画像の特徴量として抽出されている指標と同一の指標となる。この際の特徴量も,たとえば0から255まで,あるいは65535までなどと上限を設定しサイズを規格化している。
クエリ画像ベクトル化処理部32は,クエリ画像特徴量抽出処理部31で抽出した特徴量をベクトル化(好ましくは固定長ベクトル化)する処理を実行する。
クエリ画像特徴ベクトル検索処理部33は,クエリ画像ベクトル化処理部32でベクトル化した値(特徴ベクトル)に基づいて,登録画像管理システム2における登録画像特徴ベクトル記憶部24を参照し,各登録画像との類似度を特定する。「類似度」とは,登録画像の特徴ベクトルと,クエリ画像の特徴ベクトルとが一致する程度であり,類似度が高いと2つの画像の類似性が高いと判定できる。
クエリ画像属性データ入力受付処理部34は,クエリ画像に類似する登録画像の検索のため,絞込条件として用いる属性データがある場合に,その属性データの入力を受け付ける。
クエリ画像属性データエンコード処理部35は,クエリ画像属性データ入力受付処理部34で入力を受け付けた属性データをエンコード(バイナリーデータとしてビット列化)する。
クエリ画像属性データ検索処理部36は,クエリ画像属性データエンコード処理部35でエンコードされた属性データに基づいて,登録画像管理システム2における登録画像属性データ記憶部27を参照し,一致する登録画像のIDを特定する。
検索結果出力処理部37は,クエリ画像属性データ検索処理部36で検索して抽出した登録画像と,クエリ画像特徴ベクトル検索処理部33で検索して特定した各登録画像の類似度とに基づいて,検索結果として出力する登録画像を特定する。たとえば,クエリ画像特徴ベクトル検索処理部33における処理の結果,クエリ画像と,各登録画像との類似度が特定されているので,クエリ画像属性データ検索処理部36で特定した,属性データを充足していない登録画像の類似度を「0」に変更し,類似度をソートする。そして類似度が高い登録画像のIDを順に,検索結果として出力する。
管理者用端末4は,本発明における登録画像管理システム2で記憶させる登録画像の管理を行う管理者が利用するコンピュータである。
利用者用端末5は,本発明における類似画像検索システム1で類似する画像の検索を所望する利用者が用いるコンピュータである。また検索のほか,管理者と同様に,登録画像の登録処理を行えても良い。
本発明の類似画像検索システム1におけるデータ構造の概念を模式的に示す模式図を図8に示す。図8における配列I[]は各登録画像を識別するIDを記憶している。配列V[][]は,各登録画像の特徴量を固定長ベクトル化した値である特徴ベクトルを記憶する。配列A[][]は,各登録画像に対応づけられたエンコードした属性データの値(2進数)を記憶する。配列Q[]は,クエリ画像の特徴ベクトルである。配列C[]は,クエリ画像に対応づけられたエンコードした属性データである。
配列B[]は,バウンダリー情報であって,各絞込条件としての属性データの境界を示す。たとえば,図8の場合,B[]には値として「1」,「1」,「2」,「2」,「3」が入っている。この場合,属性の種類は3種類であり,1番目の属性の値を1バイト目と2バイト目に,2番目の属性の値を3バイト目と4バイト目に,3番目の属性の値を5バイト目に記憶させていることを示している。そのため,図8のB[]では,3つの種類の属性データが用いられていることを示している。
また,属性データ1には16ビット(2バイト),属性データ2には16ビット(2バイト),属性データ3には8ビット(1バイト)が,絞込条件として用いる属性データのバイナリーデータのビット列として用いられていることを示している。
図18に,絞込条件としての属性データを用いた絞込処理の概念図の一例を模式的に示す。図18では,絞込条件として3種類の属性データを用いる場合であり,属性データ1が「自治体名」,属性データ2が「植物名」,属性データ3が「生育状態」である場合を示す。自治体数として700,植物名として20種類,生育状態として5段階を設定したとする。そうすると,1自治体に1ビットを割り付けると属性データ1「自治体名」には700ビット必要となることから88バイト(704ビット)が割り当てられる。また,1植物名に1ビットを割り付けると属性データ2「植物名」には24ビット必要となることから3バイト(24ビット)が割り当てられる。同様に,それぞれの生育状態に1ビットを割り付けると属性データ3「生育状態」には5ビット必要となることから1バイト(8ビット)が割り当てられる。
したがって,属性データのビット列のうち,バウンダリー情報を示すB[]には先頭1バイト目から88バイト目までは属性データ1を示す「1」が,89バイト目から91バイト目までは属性データ2を示す「2」が,92バイト目は属性データ3を示す「3」が記憶されていることとなる。
さらに,登録画像の属性データを示すA[][i]には,1バイト目から88バイト目までのビット列には自治体名を示すビット列が,89バイト目から91バイト目までのビット列には植物名を示すビット列が,92バイト目のビット列には生育状態を示すビット列が記憶されている。このように,A[][i]には92バイトのビット列が記憶されることとなる。
A[][i]には単に「0」または「1」のビット列が代入されているだけなので,先頭の1ビットからどこまでのビットが属性データ1か,どこからどこまでのビットが属性データ2や属性データ3か,を特定することができない。そのため,B[]を参照することで,1バイト目(先頭の1ビット)から88バイト目(先頭から704ビット目)までが属性データ1,89バイト目(先頭から705ビット目)から91バイト目(先頭から728ビット目)までが属性データ2,92バイト目(先頭から729ビット目から736ビット目)までが属性データ3を示していることを特定することができる。
後述するクエリ画像属性データ検索処理部36における,絞込条件としての属性データC[]と,登録画像に対応する属性データA[][i]とを用いた絞込処理の際に,属性データ1の絞込条件として,C[]の先頭の1ビット目から704ビット目までのビット列と,A[][i]の先頭の1ビット目から704ビット目までの論理演算を行い,属性データ2の絞込条件としてC[]の先頭から705ビット目から728ビット目までのビット列と,A[][i]の先頭から705ビット目から728ビット目までのビット列までの論理演算を行い,属性データ3の絞込条件としてC[]の先頭から729ビット目から736ビット目までのビット列と,A[][i]の先頭から729ビット目から736ビット目までのビット列までの論理演算を行うことで,それぞれ絞込処理を実行することができる。ここでは,属性情報A[][i]と絞込条件C[]のビットの配置をそろえておき,各属性をバイト単位で割り付けることで,絞込の操作をバイト単位の論理演算命令(あるいはバイトを超える大きな単位でも良い)によって演算できることを利用して,高速演算を実現する。
このように,絞込条件としての属性データは,バイナリーデータとしてのビット列が記憶されているだけであるので,その境界がわからないと,どこまでを一単位の属性データとして処理をしたら良いのか,特定することができない。しかしB[]で各属性データの境界を管理することによって,属性データのデータ領域を動的に管理することができる。そのため,管理者が管理したい画像の内容や種類などによって,絞込条件として用いる属性データの種類を変更することが可能となる。
配列R[]は,クエリ画像の特徴ベクトル(Q[j])と,登録画像の特徴ベクトル(V[j][i])との類似度を記憶する。本明細書では特徴量として,Histogram intersectionを用いるので,類似度は,後述のS260のように,
R[i]=R[i]+min(Q[j],V[j][i])
として算出することができるが,それ以外にも,L1距離,L2距離などを用いることもできる。
類似度としてL1距離を用いる場合には,
R[i]=R[i]+|Q[j]-V[j][i]|
のように算出することができる。
また,類似度としてL2距離を用いる場合には,
R[i]=R[i]+(Q[j]-V[j][i])
のように算出することができる。
配列P[]は,属性単位の絞込の途中状態と結果を格納する。すなわち,P[]は,C[]に記憶された属性データの値とA[][]に記憶された属性データの値とに基づいて,論理演算子ORについて演算したレジスタである。たとえば属性データとして,「自治体名」,「生物名」,「生育状態」が設けられているとき,各属性データは「AND」の論理演算子で結ばれる。一方,属性データ「自治体」について,利用者は複数の自治体名,たとえば「A市」,「B市」,「C町」を絞込条件として設定できる。この絞込条件としての属性データの一例を図10に示す。したがって,絞込条件として用いた属性データが図10の場合,属性データの単位である「自治体名」に,「A市」,「B市」,「C町」が論理演算子ORでつながっているので,A[][]の属性データ「自治体名」に,「A市」,「B市」,「C町」のいずれかが含まれているかを検索し,その検索結果として,含まれている場合には「1」を,含まれていない場合には「0」として記憶される。
配列N[]は,属性データによる絞込処理の絞込の途中状態と結果を格納する。すなわち,C[]に記憶された属性データの値(2進数)とA[][]に記憶された属性データの値(2進数)とに基づいて,論理演算子ANDについて演算したレジスタである。たとえば絞込条件として用いた属性データが図10の場合,属性データ「自治体名」に「A市」,「B市」,「C町」のいずれかが含まれており,属性データ「生物名」として「イネ」が含まれており,属性データ「生育状態」に「D」,「E」のいずれかが含まれている場合に,その検索結果として,含まれている場合には「1」を,含まれていない場合には「0」として記憶される。
つぎに本発明の類似画像検索システム1の代表的な処理プロセスの一例を,図3乃至図5に示す。また図8の類似画像検索システム1の処理の概念を,以下の説明のわかりやすさのため簡易化した概念図を図9に示す。以下の説明では図9を用いる。なお,説明の都合上,あらかじめ登録画像管理システム2の各機能において,登録画像は,画像の特徴量が固定長ベクトル化された値で,登録画像特徴ベクトル記憶部24に記憶されていることとする。また,登録画像に対応する属性データはエンコードされ,バイナリーデータであるビット列として,登録画像属性データ記憶部27に記憶されている。これらの操作は管理者用端末4または利用者用端末5からなされている。
図9では登録画像数が5であり,特徴量は4つの固定長ベクトルで表現されている。また,絞込条件となる属性データは2つであり,2つの属性データは,それぞれ1バイト(8ビット)である場合を示している。
具体的には,管理者は,管理者用端末4を操作することで登録画像を登録画像管理システム2に読み込ませる。そして登録画像入力受付処理部20でその登録画像の入力を受け付ける。この際にその登録画像に対応するID(図9のI[i])を付す。登録画像入力受付処理部20で入力を受け付けると,登録画像特徴量抽出処理部21が,入力を受け付けた登録画像の特徴量を抽出し,登録画像ベクトル化処理部22がベクトル化した値を算出して,登録画像登録処理部に登録させる。この値は,図9におけるV[j][i]に値が記憶される。
また,その登録画像に絞込条件としての属性データがある場合には,管理者用端末4を操作することで登録画像に対応する属性データを登録画像管理システム2に入力し,その入力を登録画像属性データ入力受付処理部25で入力を受け付ける。そしてその属性データを,登録画像属性データエンコード処理部26がエンコードされた値(バイナリーデータのビット列)を算出する。そして算出された値が登録画像属性データ記憶部27に記憶される。この値は,図9におけるA[k][i]に値が記憶される。なお,図9では見やすさのため,ビット列ではなく10進数表記がされているが,実際には,バイナリーデータのビット列が記憶されている。
I[i],V[j][i],A[k][i]はそれぞれ対応して記憶されている。
なお,登録画像と属性データの入力操作は同時に行われることが好ましいが,別々のタイミングで行われても良い。その場合,いずれが先に入力されても良い。
なお,図8および図9では,行方向および列方向を通常とは逆に(つまり通常の行方向を列方向に,通常の列方向を行方向にした状態)示している。そのため,たとえばV[j][i]のうち,jは横方向に,iは縦方向に表現されていることとなる。これは,最後の添字がインクリメントされるとメモリ上では通常,その直後に配置されアクセスが早いこと,そのため後述するS260などの内側のループでは,最後の添字が1から登録画像数まで変わるようにすると最高速で実行できるためである。一方,図8および図9では,特徴ベクトルを横長に表現し,多量の登録画像の特徴ベクトルを縦方向に配置したほうがわかりやすいことから,V[x][y]のxは特徴ベクトルの次元数,yは登録画像数に対応させている。また内側のループの制御変数は後述するようにiを用いて処理をしたいこと,などからの理由による。これらは一般的な場合であって,実際に各種のコンピュータシステムで実現する際には,利用するコンパイラが配列をどのようにメモリ上に配置するかにしたがって,添字の順を代える必要がある場合もある。
以上の図9のように,配列I[],V[],A[],B[]に値が記憶されている場合に,類似する画像を登録画像から検索することを所望する利用者は,利用者用端末5から所定の操作を行うことで類似画像検索システム1にアクセスし,クエリ画像を検索処理システム3に入力する。そして利用者用端末5から入力されたクエリ画像は,クエリ画像入力受付処理部30で入力を受け付ける(S100)。
また,そのクエリ画像に対応する属性データを,検索処理システム3に入力する。そして利用者用端末5から入力された属性データは,クエリ画像属性データ入力受付処理部34で入力を受け付ける(S100)。なお,属性データがない場合にはその入力処理,後述の絞込処理は不要となる。
クエリ画像入力受付処理部30でクエリ画像の入力を受け付けると,類似画像の検索処理を実行する(S200)。
まずクエリ画像入力受付処理部30でクエリ画像の入力を受け付けると,クエリ画像特徴量抽出処理部31は,入力を受け付けたクエリ画像から特徴量を抽出する。そしてクエリ画像ベクトル化処理部32は,クエリ画像特徴量抽出処理部31で抽出した特徴量をベクトル化(好ましくは固定長ベクトル化)することで,特徴ベクトルQ[j](図9)を算出する(S210)。この結果,特徴ベクトルQ[]の値が図11のように,「2」,「0」,「3」,「5」であったとする。
つぎに,クエリ画像特徴ベクトル検索処理部33は,クエリ画像と各登録画像の類似度を示すR[i](図9)の値を初期化(たとえば「0」を代入する)する(S220)。なお,iは登録されている画像の識別情報を示している。図9では,最初の画像は1,2番目に登録された画像が2,最後に登録された画像が5となるように,登録順に識別情報が付されている場合を示している。初期化した類似度R[]の値を図12に模式的に示す。
そしてクエリ画像特徴ベクトル検索処理部33は,クエリ画像ベクトル化処理部32で算出した特徴ベクトルQ[j]と,登録画像特徴ベクトル記憶部24に記憶する各登録画像の特徴ベクトルV[j][i](図9における特徴ベクトルV[j][i]の一例を図13に示す)とをマッチングし,類似度をR[i]に記憶させる。
具体的には,特徴ベクトルQ[]のすべてについて,S240~S260の処理を反復実行する(S230)。なお,Q[]の値が「0」については特徴量がないことを示すのでその処理については次のQ[]の要素の処理に移る(S250)。そしてQ[]の値が「0」ではない場合,V[j][]の要素(添字i)について,
R[i]=R[i]+min(Q[j],V[j][i])
を実行する(S260)。
以上の処理をすべてのQ[]について実行することで,クエリ画像と登録画像との類似度を特定することができる。
この処理を図9を用いて説明すると,Q[]には要素として「2」,「0」,「3」,「5」が代入されており,iの最大値は5,jの最大値は4である(配列の添字の初期値は1とする)。
j=1のとき,Q[1]=「2」であるので(S250),i=1~5のそれぞれについて,S260の処理を実行する。すなわち,
R[1]=R[1]+min(Q[1],V[1][1])
R[2]=R[2]+min(Q[1],V[1][2])
R[3]=R[3]+min(Q[1],V[1][3])
R[4]=R[4]+min(Q[1],V[1][4])
R[5]=R[5]+min(Q[1],V[1][5])
を実行する。
そうするとR[1]~R[5]はいずれも初期値「0」,V[1][1]~V[1][5]はそれぞれ「2」,「0」,「7」,「1」,「2」であるので,S260の処理の結果,R[1]~R[5]の値は「2」,「0」,「2」,「1」,「2」となる。この処理を模式的に示すのが,図14である。
すべてのiについてS260の処理を実行したので,j=1について処理を終了し,jの値をインクリメントし,j=2とする(S230)。
j=2のとき,Q[2]=「0」なので(S250),S260の処理は実行せずに,jの値をインクリメントし,j=3とする(S230)。
j=3のとき,Q[3]=「3」であるので(S250),i=1~5のそれぞれについて,S260の処理を実行する。すなわち,
R[1]=R[1]+min(Q[3],V[3][1])
R[2]=R[2]+min(Q[3],V[3][2])
R[3]=R[3]+min(Q[3],V[3][3])
R[4]=R[4]+min(Q[3],V[3][4])
R[5]=R[5]+min(Q[3],V[3][5])
を実行する。
S260の処理前のR[1]~R[5]は「2」,「0」,「2」,「1」,「2」,V[3][1]~V[3][5]はそれぞれ「0」,「6」,「2」,「0」,「2」であるので,S260の処理の結果,R[1]~R[5]の値は「2」,「3」,「4」,「1」,「4」となる。この処理を模式的に示すのが,図15である。
すべてのiについてS260の処理を実行したので,j=3について処理を終了し,jの値をインクリメントし,j=4とする(S230)。
j=4のとき,Q[4]=「5」であるので(S250),i=1~5のそれぞれについて,S260の処理を実行する。すなわち,
R[1]=R[1]+min(Q[4],V[4][1])
R[2]=R[2]+min(Q[4],V[4][2])
R[3]=R[3]+min(Q[4],V[4][3])
R[4]=R[4]+min(Q[4],V[4][4])
R[5]=R[5]+min(Q[4],V[4][5])
を実行する。
S260の処理前のR[1]~R[5]は「2」,「3」,「4」,「1」,「4」V[4][1]~V[4][5]はそれぞれ「4」,「1」,「0」,「2」,「1」であるので,S260の処理の結果,R[1]~R[5]の値は「6」,「4」,「4」,「3」,「5」となる。この処理を模式的に示すのが,図16である。
以上の処理を実行することで,jが最大値4の場合についても処理を実行したので,S230~S260の処理を終了し(S240),S270以降の処理を実行する。そして,クエリ画像属性データ入力受付処理部34では絞込条件としての属性データの入力を受け付けているので(S270),クエリ画像属性データ検索処理における絞込条件での絞込処理を実行する(S280)。
絞込処理の概念を図17を用いて説明する。まずクエリ画像属性データエンコード処理部35は,クエリ画像属性データ入力受付処理部34で入力を受け付けた絞込条件としての属性データをエンコード(2進数化)し,絞込条件コードC[]にその値(2進数)を記憶させる(S400)。図9ではC[]にそれぞれ「1」,「3」が値(2進数)として記憶されている場合を示しているので,C[1]=「00000001」,C[2]=「00000011」となる。なお,A[][]も図9に対応するバイナリーデータのビット列(2進数)が記憶されている。なおここで絞込条件1は「属性1のbit1=YES」を示し,絞込条件2は「属性2のbit1またはbit2=YES」であることを示している。
つぎにクエリ画像属性データ検索処理部36は,配列N[],P[]を初期化し,配列N[]には「1」を,P[]には「0」を代入する(S410)。
そしてクエリ画像属性データ検索処理部36は,配列C[]の要素について,S430以降の処理を反復し実行することで,絞込条件に該当する各登録画像の属性データがあるかを検索する(S420)。
具体的には,図17の場合,配列C[]について属性データの種類は2であるので,添字kの最大値は2となる。まずk=1では,すべてのkについて処理を終了していないので(S430),S440の判定処理を実行する。そして,バウンダリー情報の配列であるB[1]を参照すると,新しい属性データに対する処理ではないので(属性1の処理であるので),そのままS450の処理を実行する。
具体的にはC[1]のビット列がすべて1であるか,すなわち,「11111111」であるかを判定する(S450)。図17の場合,C[1]=「00000001」なので,C[1]のビット列がすべて0であるか,すなわち「00000000」であるかを判定する(S460)。図17の場合,C[1]=「00000001」なので,A[1][]の要素である添字iについて,i=1~5について,
P[i]=P[i] OR (C[1] AND A[1][i])
の処理を実行する(S470)。
そうすると,i=1,3~5についてはA[1][i]の値が「1(ビット1が「1(YES)」)」(00000001)なので,P[1],P[3]~P[5]については「1」が記憶される。一方,i=2については,A[1][2]の値が「4(ビット1が「0(NO)」)」(00000100)なので,P[2]=0が記憶される。このときのP[]が図17である。
k=1について,i=1~5の全ての場合についてS470の処理を実行したので,kをインクリメントし,k=2となる(S420)。
そしてk=2ではまだ処理が終了しないので(S430),B[2]が新しい属性かを判定する。すなわちバウンダリー情報の配列であるB[2]を参照すると,B[2]は新しい属性データ(属性2)に対する処理なので(S440),
N[]=N[] AND P[]
の演算を行う。
すなわち,N[]については初期値としてi=1~5のそれぞれに「1」が記憶されており,P[]についてはk=1のときの演算の結果,P[1],P[3]~P[5]については「1」,P[2]については「0」が記憶されており,i=1~5についてそれぞれN[]とP[]のANDを演算してN[]に代入することになるので,N[1],N[3]~N[5]については「1」,N[2]については「0」が記憶されることとなる(S490)。
また,P[]を初期化するため,i=1~5についてP[]=0を代入する(S490)。
つぎに,C[2]のビット列がすべて1であるか,すなわち,「11111111」であるかを判定する(S450)。図17の場合,C[2]=「00000011」なので,C[1]のビット列がすべて0であるか,すなわち「00000000」であるかを判定する(S460)。図17の場合,C[2]=「00000011」なので,A[2][]の要素である添字iについて,i=1~5について,
P[i]=P[i] OR (C[2] AND A[2][i])
の処理を実行する(S470)。
そうすると,
i=1のとき,P[1]=P[1] OR (C[2] AND A[2][1])
の演算をすることになるので,A[2][1]の値が「1(ビット1が「1(YES)」)」(00000001)であることから,P[1]=1が記憶される。
i=2のとき,P[2]=P[2] OR (C[2] AND A[2][2])
の演算をすることになるので,A[2][2]の値が「2(ビット2が「1(YES)」)」(00000010)であることから,P[2]=1が記憶される。
i=3のとき,P[3]=P[3] OR (C[2] AND A[2][3])
の演算をすることになるので,A[2][3]の値が「4(ビット2が「0(NO)」)」(00000100)であることから,P[3]=0が記憶される。
i=4,5のときもi=2と同様の演算を行い,P[4]=1,P[5]=1が記憶される。
以上のようにS470の処理をi=1~5について演算を行うと,P[1],P[2],P[4],P[5]について「1」が,P[3]について「0」が記憶されることとなる。
k=1について,i=1~5の全ての場合についてS470の処理を実行したので,kをインクリメントし,k=3となる(S420)。
そしてk=3ではすべての処理が終了したので(S430),
N[]=N[] AND P[]
の演算を行う(S500)。
そうすると,N[1],N[3]~N[5]については「1」,N[2]については「0」が記憶されており,P[1],P[2],P[4],P[5]について「1」が,P[3]について「0」が記憶されていることから,これらのAND演算を行うと,N[1],N[4],N[5]には「1」が,N[2],N[3]については「0」が演算結果として代入されることとなり,これを最終的なN[]の出力結果とする(S500)。
以上のような処理を実行することで,絞込条件での絞込処理を実行することができる。
S450において,C[k]の全ビットが「1」の場合,S470の処理でORの演算をしたとしても,P[]=1となることが明らかである。そうすると,S470における,
P[i]=P[i] OR (C[k] AND A[k][i])
の演算で,
C[k] AND A[k][i]
の演算をしても,結果は同じとなる。そのため,
C[k] AND A[k][i]
の演算を省略し,S480の演算として処理をした方が,一つ演算を選らすことができるので,処理の高速化につなげることができる。その点において,S450の処理の技術的意義があるが,S450の分岐処理は設けなくても良い。
以上のようにして絞込処理を終了すると,検索結果出力処理部37は,R[]の要素であるi=1~5について,
N[i]=0ならばR[i]=0
の反復処理を実行する(S290)。これは,絞込条件を充足していない登録画像の類似度R[i]を「0」にし,類似度を低くする処理を行う。なお,類似度を低くするとは,類似画像の検索処理で特定した類似度よりも低くすればよく,必ずしも類似度R[i]を「0」にしなくても良い。
図17の場合,i=1~5についてR[i]には「6」,「4」,「4」,「3」,「5」が記憶されているが,N[1],N[4],N[5]には「1」が,N[2],N[3]については「0」が入っているので,i=2,3について,R[i]に「0」を代入する。その結果,i=1~5について,R[i]には,「6」,「0」,「0」,「3」,「5」が代入されることとなる。
以上のようにして絞込条件を加味して類似度を修正すると,R[]に基づいて類似度の高い順にソートし,それを出力結果とする(S300)。この場合,R[1]=「6」,R[5]=「5」,R[4]=「3」の順に出力結果と並び替えられ,i=1,5,4に対応する登録画像を特定し,類似画像の検索結果として,利用者用端末5に出力させる。なおこの場合,出力結果に対応する登録画像を出力結果として表示させても良いし,表示させなくても良い。
実施例1では,登録された画像に基づいて類似画像検索を行う場合を示した。そこで,本実施例では,登録画像が削除された場合でも,単にデータテーブルのデータが削除あるいは処理対象から除外されることで,類似画像の検索処理を実行する場合を示す。本実施例の処理を用いることで,検索の処理プロセスそのものには修正を要さず,検索速度は落とさず,また検索結果は正しい結果を,容易に,得られる。
すなわち,管理者用端末4または利用者用端末5から,登録画像管理システム2ですでに登録されている登録画像の削除処理の要求を受け付けた場合,登録画像管理システム2は,登録画像特徴ベクトル記憶部24,登録画像属性データ記憶部27から,その登録画像の特徴ベクトルV[][i],属性データA[][i]の値をゼロにし,検索対象から除外するフラグを立てる処理を実行する。
属性情報A[][i]の値をゼロにすることにより,削除された画像はどんなクエリ画像に対しても最も似ていない画像となるため,検索処理に特例処理を追加しなくても,実施例1の類似検索および絞込処理による検索結果から除外される。そのため,従来のように,登録画像のハッシュ値の再計算などの処理も不要となる。なお,画像を追加する際には,除外するフラグから消去済みの画像を見つけ,そのメモリ領域を再利用して登録を行うことにより,メモリの利用効率を高めることができる。
なお,本実施例のように登録画像の削除処理を行う場合であって,フラグを用いて処理対象から除外する場合には,検索処理システム3で類似画像の検索処理を実行する際に,当該フラグをチェックし,処理対象から除外することを示すフラグがある場合には検索処理の対象には含めないようにする。
S300における検索結果出力処理部37での出力処理にあたり,単に類似度に基づいてソートするのではなく,類似性のヒストグラムと,検索結果として必要な登録画像のリスト長(数)から足きりを行ってもよい。
この場合,類似度R[]のソートを単純に行った場合,そのソートに要する実行時間はO(n log(n))となる。そのため,ソートの前に,ソートの対象数(n)をあらかじめ減らしておけば,ソートに要する実行時間を大幅に減少させることができる。
検索結果出力処理部37は,S300における処理の際に,全登録画像に対する類似度R[]がすでに求められているので,まず,類似度の最小値と最大値とを含む区間を,十分に小さな粒度で区分けしたヒストグラムを作成する。たとえば,類似度の最小値が0,最大値が1000である場合,類似度が0~9,10~19,・・・,990~999,1000のように類似度が10ずつのヒストグラムを作成し,全類似度をカウントアップする。この際の粒度は適宜設定可能である。
そして,検索結果出力処理部37で出力すべき検索結果数kは,あらかじめ第k位までの類似する画像を求めるとして設定されているので,上記で作成した類似度のヒストグラムでk位がどの範囲に入っているかを求め,ソートの対象を限定する。
たとえば,k位が類似度800~809の範囲に入っていることがヒストグラムから求められた場合,ソートの対象を類似度800以上とし,あらためて,登録画像のIDであるI[]とその類似度R[]とからなるリスト(長さはk+Δ)を生成し,そのリストを,類似度R[]をキーとしてソートする。
以上のような処理を実行することで,ソートの対象数をあらかじめ減らすことができ,ソートに要する実行時間を大幅に減少させることができる。
本発明の類似画像検索システム1を用いることで,従来のように類似性の高い画像同士のグルーピング等の前処理は行わず,画像のデータ構造の簡素化と反復処理の簡素化を用いた処理を実現することで,単純な繰り返し演算に対するCPUの高速実行の能力を活用し,類似画像の高速化を実現することができる。
また,絞り込みの条件として用いる属性データについても,類似する画像の検索と同様,データ構造の簡素化と反復処理の簡素化を用いた処理を実現することで,単純な繰り返し演算に対するCPUの高速実行の能力を活用し,類似画像の高速化を実現することができる。
1:類似画像検索システム
2:登録画像管理システム
3:検索処理システム
4:管理者用端末
5:利用者用端末
20:登録画像入力受付処理部
21:登録画像特徴量抽出処理部
22:登録画像ベクトル化処理部
23:登録画像特徴ベクトル登録処理部
24:登録画像特徴ベクトル記憶部
25:登録画像属性データ入力受付処理部
26:登録画像属性データエンコード処理部
27:登録画像属性データ記憶部
30:クエリ画像入力受付処理部
31:クエリ画像特徴量抽出処理部
32:クエリ画像ベクトル化処理部
33:クエリ画像特徴ベクトル検索処理部
34:クエリ画像属性データ入力受付処理部
35:クエリ画像属性データエンコード処理部
36:クエリ画像属性データ検索処理部
37:検索結果出力処理部
70:演算装置
71:記憶装置
72:表示装置
73:通信装置
74:入力装置

Claims (10)

  1. あらかじめ登録してある登録画像から,クエリ画像に類似する画像を検索するための類似画像検索システムであって,
    前記類似画像検索システムは,
    前記登録画像の特徴量をベクトル化した特徴ベクトルについて,前記登録画像の特徴量を行方向,次元数を列方向に配置したデータテーブルで記憶する登録画像特徴ベクトル記憶部と,
    クエリ画像の入力を受け付けるクエリ画像入力受付処理部と,
    前記入力を受け付けたクエリ画像に基づいて特徴量を抽出するクエリ画像特徴量抽出処理部と,
    前記抽出した特徴量をベクトル化した特徴ベクトルを算出するクエリ画像ベクトル化処理部と,
    前記算出したクエリ画像の特徴ベクトルに基づいて,前記登録画像特徴ベクトル記憶部の特徴ベクトルを参照して,前記クエリ画像に類似する登録画像を検索するクエリ画像特徴ベクトル検索処理部と,
    前記検索した結果,前記クエリ画像に類似する登録画像を出力する検索結果出力処理部と,を有しており,
    前記クエリ画像特徴ベクトル検索処理部は,
    前記クエリ画像の特徴ベクトルの処理対象とする各次元において,
    それぞれの登録画像について,その次元における前記クエリ画像の特徴ベクトルの要素と登録画像の特徴ベクトルの要素とを用いてそれぞれの類似度を算出する処理を実行することで,前記クエリ画像に類似する登録画像を検索する,
    ことを特徴とする類似画像検索システム。
  2. 前記クエリ画像特徴ベクトル検索処理部は,
    前記クエリ画像の特徴ベクトルの次元の初期値から次元数となるまで,
    その次元における前記クエリ画像の特徴ベクトルの要素が所定値でない場合には,それぞれの登録画像について,その次元における前記クエリ画像の特徴ベクトルの要素と登録画像の特徴ベクトルの要素とを用いてその次元までのそれぞれの登録画像の類似度を算出する処理を反復することで,前記クエリ画像に類似する登録画像を検索する,
    ことを特徴とする請求項1に記載の類似画像検索システム。
  3. 前記類似画像検索システムは,さらに,
    前記登録画像の属性データをエンコードして,前記登録画像に対応づけて記憶する登録画像属性データ記憶部と,
    前記クエリ画像の属性データの入力を受け付けるクエリ画像属性データ入力受付処理部と,
    前記入力を受け付けた属性データをエンコードするクエリ画像属性データエンコード処理部と,
    前記エンコードした値に基づいて,前記登録画像属性データ記憶部を参照し,属性データを用いた絞込処理を実行するクエリ画像属性データ検索処理部と,
    を有することを特徴とする請求項1または請求項2に記載の類似画像検索システム。
  4. 前記検索結果出力処理部は,さらに,
    前記クエリ画像属性データ検索処理部で絞込処理を実行した結果,絞込条件を充足しない属性データに対応する登録画像の類似度を変更し,
    前記変更後の類似度に基づいて,類似度が所定範囲の登録画像を,前記クエリ画像に類似する登録画像として出力する,
    ことを特徴とする請求項3に記載の類似画像検索システム。
  5. 前記登録画像属性データ記憶部は,
    登録画像の属性データのバイナリーデータであるビット列を,データテーブルで記憶しており,
    前記クエリ画像属性データ検索処理部は,
    前記クエリ画像属性データエンコード処理部でエンコードした,前記クエリ画像の属性データのバイナリーデータであるビット列と,前記登録画像属性データ記憶部に記憶する登録画像の属性データのバイナリーデータであるビット列とを,論理演算することで,属性データを用いた絞込処理を実行する,
    ことを特徴とする請求項3または請求項4に記載の類似画像検索システム。
  6. 前記類似画像検索システムは,さらに,
    前記属性データの境界を示すバウンダリー情報を備えており,
    前記クエリ画像属性データ検索処理部は,
    前記クエリ画像の属性データをエンコードしたバイナリーデータのビット列と,前記登録画像属性データ記憶部に記憶する登録画像の属性データをエンコードしたバイナリーデータのビット列の論理演算の際に,前記バウンダリー情報に基づいて,属性データの境界を判定し,その属性データの境界ごとに,それぞれのバイナリーデータの比較処理を実行する,
    ことを特徴とする請求項5に記載の類似画像検索システム。
  7. 前記検索結果出力処理部は,
    前記類似度を所定範囲ごとに分類したヒストグラムを生成し,
    出力すべき検索結果数が前記ヒストグラムのどの範囲に含まれているかを特定し,
    前記特定した範囲以上の類似度を有する登録画像をソートの対象として,前記類似度に基づいてソートを行うことで,前記クエリ画像に類似する登録画像を出力する,
    ことを特徴とする請求項1から請求項6のいずれかに記載の類似画像検索システム。
  8. あらかじめ登録してある登録画像から,クエリ画像に類似する画像を検索するための類似画像検索システムであって,
    前記類似画像検索システムは,
    前記登録画像の特徴量をベクトル化した特徴ベクトルについて,前記登録画像の特徴量を行方向,次元数を列方向に配置したデータテーブルで記憶する登録画像特徴ベクトル記憶部と,
    前記クエリ画像の特徴量をベクトル化した特徴ベクトルを算出するクエリ画像ベクトル化処理部と,
    前記クエリ画像の特徴ベクトルの処理対象とする各次元において,前記登録画像特徴ベクトル記憶部を参照して,それぞれの登録画像について,その次元における前記クエリ画像の特徴ベクトルの要素と登録画像の特徴ベクトルの要素とを用いてそれぞれの類似度を算出する処理を実行することで,前記クエリ画像に類似する登録画像を検索するクエリ画像特徴ベクトル検索処理部と,
    前記検索した結果,前記クエリ画像に類似する登録画像を出力する検索結果出力処理部と,
    を有することを特徴とする類似画像検索システム。
  9. コンピュータを,
    クエリ画像の入力を受け付けるクエリ画像入力受付処理部,
    前記入力を受け付けたクエリ画像に基づいて特徴量を抽出するクエリ画像特徴量抽出処理部,
    前記抽出した特徴量をベクトル化した特徴ベクトルを算出するクエリ画像ベクトル化処理部,
    前記算出したクエリ画像の特徴ベクトルに基づいて,登録画像の特徴量をベクトル化した特徴ベクトルについて,前記登録画像の特徴量を行方向,次元数を列方向に配置したデータテーブルで記憶する登録画像特徴ベクトル記憶部を参照して,前記クエリ画像に類似する登録画像を検索するクエリ画像特徴ベクトル検索処理部,
    前記検索した結果,前記クエリ画像に類似する登録画像を出力する検索結果出力処理部,
    として機能させる類似画像検索プログラムであって,
    前記クエリ画像特徴ベクトル検索処理部は,
    前記クエリ画像の特徴ベクトルの処理対象とする各次元において,
    それぞれの登録画像について,その次元における前記クエリ画像の特徴ベクトルの要素と登録画像の特徴ベクトルの要素とを用いてそれぞれの類似度を算出する処理を実行することで,前記クエリ画像に類似する登録画像を検索する,
    ことを特徴とする類似画像検索プログラム。
  10. コンピュータを,
    クエリ画像の特徴量をベクトル化した特徴ベクトルを算出するクエリ画像ベクトル化処理部,
    前記クエリ画像の特徴ベクトルの処理対象とする各次元において,登録画像の特徴量をベクトル化した特徴ベクトルについて,前記登録画像の特徴量を行方向,次元数を列方向に配置したデータテーブルで記憶する登録画像特徴ベクトル記憶部を参照して,それぞれの登録画像について,その次元における前記クエリ画像の特徴ベクトルの要素と登録画像の特徴ベクトルの要素とを用いてそれぞれの類似度を算出する処理を実行することで,前記クエリ画像に類似する登録画像を検索するクエリ画像特徴ベクトル検索処理部,
    前記検索した結果,前記クエリ画像に類似する登録画像を出力する検索結果出力処理部,
    として機能させることを特徴とする類似画像検索プログラム。
JP2015167393A 2015-08-27 2015-08-27 類似画像検索システム Active JP7019137B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015167393A JP7019137B2 (ja) 2015-08-27 2015-08-27 類似画像検索システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015167393A JP7019137B2 (ja) 2015-08-27 2015-08-27 類似画像検索システム

Publications (2)

Publication Number Publication Date
JP2017045291A JP2017045291A (ja) 2017-03-02
JP7019137B2 true JP7019137B2 (ja) 2022-02-15

Family

ID=58210286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015167393A Active JP7019137B2 (ja) 2015-08-27 2015-08-27 類似画像検索システム

Country Status (1)

Country Link
JP (1) JP7019137B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021015317A (ja) * 2017-11-21 2021-02-12 富士フイルム株式会社 認識装置、認識方法及びプログラム
KR102035173B1 (ko) * 2017-12-13 2019-10-22 이모션코리아 주식회사 스트레스 치유 이미지 관리 시스템 및 방법
KR20200102838A (ko) * 2019-02-22 2020-09-01 삼성전자주식회사 이미지를 이용하여 콘텐트를 검색하기 위한 장치 및 그 제어 방법
CN112650775B (zh) * 2020-12-30 2024-01-05 深圳云天励飞技术股份有限公司 一种数据搜索方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344278A (ja) 2000-03-29 2001-12-14 Seiko Epson Corp 検索方法、検索装置、検索プログラムを記憶した記憶媒体、検索対象マップ作成方法、検索対象マップ作成装置、画像検索方法、画像検索装置、画像検索プログラムを記憶した記憶媒体、画像検索用データを記憶した記憶媒体、画像マップ作成方法及び画像マップ作成装置
WO2011078174A1 (ja) 2009-12-24 2011-06-30 株式会社ニコン 検索支援システム、検索支援方法及び検索支援プログラム
WO2011128947A1 (ja) 2010-04-16 2011-10-20 三菱電機株式会社 ナビゲーション装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10326286A (ja) * 1997-05-27 1998-12-08 Mitsubishi Electric Corp 類似検索装置及び類似検索プログラムを記録した記録媒体
JP6041439B2 (ja) * 2013-09-12 2016-12-07 Kddi株式会社 画像に基づくバイナリ特徴ベクトルを用いた画像検索装置、システム、プログラム及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344278A (ja) 2000-03-29 2001-12-14 Seiko Epson Corp 検索方法、検索装置、検索プログラムを記憶した記憶媒体、検索対象マップ作成方法、検索対象マップ作成装置、画像検索方法、画像検索装置、画像検索プログラムを記憶した記憶媒体、画像検索用データを記憶した記憶媒体、画像マップ作成方法及び画像マップ作成装置
WO2011078174A1 (ja) 2009-12-24 2011-06-30 株式会社ニコン 検索支援システム、検索支援方法及び検索支援プログラム
WO2011128947A1 (ja) 2010-04-16 2011-10-20 三菱電機株式会社 ナビゲーション装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吉田 忠城、外6名,類似画像検索方式の改変画像検出への適用-デジタルコンテンツ保護・流通システムへの適用と評価,情報処理学会論文誌,日本,社団法人情報処理学会,2001年 2月 6日,第42巻,第SIG1(TOD8)号,p.171-181

Also Published As

Publication number Publication date
JP2017045291A (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
US10579661B2 (en) System and method for machine learning and classifying data
Yagoubi et al. Massively distributed time series indexing and querying
US10949467B2 (en) Random draw forest index structure for searching large scale unstructured data
JP7019137B2 (ja) 類似画像検索システム
CN107567621B (zh) 用于执行数字搜索的方法、系统和计算机程序产品
US11106708B2 (en) Layered locality sensitive hashing (LSH) partition indexing for big data applications
CN107832456B (zh) 一种基于临界值数据划分的并行knn文本分类方法
US20120005234A1 (en) Storage medium, trie tree generation method, and trie tree generation device
US20130066898A1 (en) Matching target strings to known strings
US9213759B2 (en) System, apparatus, and method for executing a query including boolean and conditional expressions
CN110110119B (zh) 图像检索的方法、装置及计算机可读存储介质
JP4491480B2 (ja) インデクス構築方法、文書検索装置及びインデクス構築プログラム
WO2022007596A1 (zh) 图像检索系统、方法和装置
US8484221B2 (en) Adaptive routing of documents to searchable indexes
CN103678513A (zh) 一种交互式的检索式生成方法及系统
CN109241360B (zh) 组合字符串的匹配方法及装置和电子设备
US20220171815A1 (en) System and method for generating filters for k-mismatch search
US10235432B1 (en) Document retrieval using multiple sort orders
CN108280176A (zh) 基于MapReduce的数据挖掘优化方法
CN108256086A (zh) 数据特征统计分析方法
JP6666312B2 (ja) 多次元データ管理システム及び多次元データ管理方法
CN115730116A (zh) 一种数据检索方法及相关设备
JP6677624B2 (ja) 分析装置、分析方法、および分析プログラム
JP2020187644A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US11494093B2 (en) Method and apparatus for processing data of in-memory database

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20160106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161222

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20161222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20161222

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180814

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190827

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201012

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20201109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20201118

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20210430

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20211007

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20211221

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20220120

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20220120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220125

R150 Certificate of patent or registration of utility model

Ref document number: 7019137

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150