(57)【要約】【課題】高精度かつ高速な類似画像の検索を行うことが可能な画像検索装置を提供する。【解決手段】  格納部３１は、入力された画像から当該画像に関する互いに長さの異なる第１のハッシュ値および第２のハッシュ値を算出する算出モデルと、算出モデルに複数の登録画像のそれぞれを入力して得られる各登録画像に関する第１のハッシュ値および第２のハッシュ値を登録画像ごとに示す管理情報とを格納する。処理部３４は、クエリ画像を算出モデルに入力してクエリ画像に関する第１のハッシュ値および第２のハッシュ値を取得し、クエリ画像に関する第１のハッシュ値および第２のハッシュ値と管理情報とを用いて、複数の登録画像からクエリ画像に類似する類似画像を検索する。【選択図】図１
2020173640.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像から当該画像に関する互いに長さの異なる第１のハッシュ値および第２のハッシュ値を算出する算出モデルと、前記算出モデルに複数の登録画像のそれぞれを入力して得られる各登録画像に関する第１のハッシュ値および第２のハッシュ値を前記登録画像ごとに示す管理情報とを格納する格納部と、
クエリ画像を前記算出モデルに入力して前記クエリ画像に関する第１のハッシュ値および第２のハッシュ値を取得し、前記クエリ画像に関する第１のハッシュ値および第２のハッシュ値と前記管理情報とを用いて、前記複数の登録画像から前記クエリ画像に類似する類似画像を検索する処理部と、を有する画像検索装置。
【請求項２】
前記第１のハッシュ値は、前記第２のハッシュ値よりも短く、
前記処理部は、前記クエリ画像に関する第１のハッシュ値と前記登録画像に関する第１のハッシュ値とに基づいて、前記複数の登録画像から前記類似画像の候補を候補画像として検索し、前記クエリ画像に関する第２のハッシュ値と前記候補画像に関する第２のハッシュ値とに基づいて、前記候補画像から前記類似画像を選択する、請求項１に記載の画像検索装置。
【請求項３】
前記処理部は、複数の学習用画像を機械学習することにより、前記算出モデルを生成して前記格納部に格納する、請求項１に記載の画像検索装置。
【請求項４】
前記算出モデルは、入力された画像から当該画像に関する特徴量を算出する第１のモデルと、前記特徴量から前記第１のハッシュ値および前記第２のハッシュ値を算出する第２のモデルとを含む、請求項３に記載の画像検索装置。
【請求項５】
前記管理情報は、画像からハッシュ値を算出する所定のハッシュアルゴリズムに対して各登録画像を適用して算出した、各登録画像に関する第３のハッシュ値を前記登録画像ごとに示し、
前記処理部は、前記ハッシュアルゴリズムに前記クエリ画像を適用して、前記クエリ画像に関する第３のハッシュ値を算出し、前記クエリ画像に関する第３のハッシュ値をさらに用いて、前記類似画像を検索する、請求項３に記載の画像検索装置。
【請求項６】
前記第１のハッシュ値は、前記第２のハッシュ値および前記第３のハッシュ値よりも短く、
前記処理部は、前記クエリ画像に関する第１のハッシュ値と前記登録画像に関する第１のハッシュ値とに基づいて、前記複数の登録画像から前記類似画像の候補を候補画像として検索し、前記クエリ画像に関する第２のハッシュ値および第３のハッシュ値と前記候補画像に関する第２のハッシュ値および第３のハッシュ値とに基づいて、前記候補画像から前記類似画像を選択する、請求項５に記載の画像検索装置。
【請求項７】
画像検索装置が行う画像検索方法であって、
入力された画像から当該画像に関する互いに長さの異なる第１のハッシュ値および第２のハッシュ値を算出する算出モデルを格納し、
前記算出モデルに複数の登録画像のそれぞれを入力して得られる各登録画像に関する第１のハッシュ値および第２のハッシュ値を前記登録画像ごとに示す管理情報を格納し、
クエリ画像を前記算出モデルに入力して前記クエリ画像に関する第１のハッシュ値および第２のハッシュ値を取得し、
前記クエリ画像に関する第１のハッシュ値および第２のハッシュ値と前記管理情報とを用いて、前記複数の登録画像から前記クエリ画像に類似する類似画像を検索する、画像検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像検索装置および画像検索方法に関する。
【背景技術】
【０００２】
画像を検索する画像検索技術が注目されている。例えば、機器の設計および製造などの分野では、画像として設計図面を作成する際、作業工数の削減などのために、過去に作成した設計図面から所望の図面を検索することがある。この場合、例えば、過去に作成した設計図面と設計図面に関する属性情報とを対応付けたデータベースを予め用意しておき、属性情報に基づいて、データベースから設計図面が検索される。
【０００３】
しかしながら、上記の例では、画像自体を指定することによって、その画像と類似する類似画像を検索する類似画像検索を行うことができないという問題がある。
【０００４】
特許文献１には、クエリ画像に類似したリファレンス画像を検索       する画像検索装置が開示されている。この画像検索装置では、クエリ画像およびリファレンス画像のそれぞれのバイナリ特徴ベクトルを求め、予め用意したハッシュコードブックに基づいて、バイナリ特徴ベクトルに最も類似するハッシュ値を算出する。さらに画像検索装置は、ハッシュ値からハッシュ値よりも短いビット列を抽出し、そのビット列に基づいて、クエリ画像に類似したリファレンス画像を検索している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−０５６０７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献1に記載の技術では、短いビット列に基づいて、類似画像検索を行っているため、類似画像を検索する検索精度が低いという問題がある。また、ビット列を長くすると、類似画像の検索に長い時間がかかるという問題が生じる。
【０００７】
本開示の目的は、高精度かつ高速な類似画像の検索を行うことが可能な画像検索装置および画像検索方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一つの実施態様に従う画像検索装置は、入力された画像から当該画像に関する互いに長さの異なる第１のハッシュ値および第２のハッシュ値を算出する算出モデルと、前記算出モデルに複数の登録画像のそれぞれを入力して得られる各登録画像に関する第１のハッシュ値および第２のハッシュ値を前記登録画像ごとに示す管理情報とを格納する格納部と、クエリ画像を前記算出モデルに入力して前記クエリ画像に関する第１のハッシュ値および第２のハッシュ値を取得し、前記クエリ画像に関する第１のハッシュ値および第２のハッシュ値と前記管理情報とを用いて、前記複数の登録画像から前記クエリ画像に類似する類似画像を検索する処理部と、を有する。
【発明の効果】
【０００９】
本発明によれば、高精度かつ高速な類似画像の検索を行うことが可能になる。
【図面の簡単な説明】
【００１０】
【図１】本開示の一実施形態の情報処理システムを示す図である。
【図２】算出モデルの一例を模式的に示す図である。
【図３】ハッシュインデックステーブルの一例を示す図である。
【図４】モデル生成処理の一例を説明するためのフローチャートである。
【図５】ハッシュ生成モデルを生成する処理の一例を説明するための図である。
【図６】画像追加処理の一例を説明するためのフローチャートである。
【図７】画像削除処理の一例を説明するためのフローチャートである。
【図８】画像検索処理の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本開示の実施形態について画像を参照して説明する。
【００１２】
図１は、本開示の一実施形態の情報処理システムを示す図である。図１に示す情報処理システム１００は、ユーザデータベース１と、ユーザ端末２と、画像検索サーバ３とを有する。ユーザデータベース１、ユーザ端末２および画像検索サーバ３は、ネットワーク１０を介して相互に通信可能に接続される。
【００１３】
ユーザデータベース１は、複数の画像（画像データ）を格納する格納装置である。画像は、ＪＰＥＧ（Joint Photographic Experts Group）形式のようなラスタ形式でもよいし、ＣＡＤ（Computer Aided Design）形式のようなベクタ形式でもよい。画像には、画像を特定する識別情報である画像ＩＤと、画像に関する属性情報とが付けられている。属性情報は、画像の種類である画像クラスを含む。また、画像は、複数の部分画像を含み、各部分画像に画像ＩＤと属性情報とが付けられてもよい。以下、複数の部分画像を含む画像を全体画像と呼ぶこともある。部分画像は、全体画像が機器の設計図を示す場合、例えば、機器を構成する部品の設計図を示す。
【００１４】
ユーザ端末２は、情報処理システム１００を利用するユーザが使用する端末装置である。
【００１５】
ユーザ端末２は、例えば、ユーザからの操作に応じて、種々のコマンドを画像検索サーバ３に送信する。コマンドには、例えば、画像学習コマンド、画像追加コマンド、画像削除コマンドおよび画像検索コマンドがある。
【００１６】
画像学習コマンドは、画像検索（類似画像検索）を行うためのハッシュ値を算出する算出モデルの生成を要求する生成要求である。画像学習コマンドは、機械学習を用いて算出モデルを生成するための学習対象画像（学習データ）を指定する指定情報である学習指定情報を含む。学習対象画像は、例えば、ユーザデータベース１に格納された複数の画像の全部または一部である。学習対象画像は、全体画像でもよいし、部分画像でもよいし、その両方でもよい。
【００１７】
画像追加コマンドは、被検索対象となる画像の追加を要求する追加要求である。画像追加コマンドは、被検索対象として追加する追加対象画像を指定する指定情報である追加指定情報を含む。
【００１８】
画像削除コマンドは、被検索対象からの画像の削除を要求する削除要求である。画像削除コマンドは、被検索対象から削除する削除対象画像を指定する指定情報である削除指定情報を含む。
【００１９】
画像検索コマンドは、検索対象の画像であるクエリ画像と類似する類似画像を検索する画像検索を要求する検索要求である。画像検索コマンドは、クエリ画像を指定する指定情報である検索指定情報を含む。クエリ画像は、ユーザデータベース１に格納された複数の画像のいずれかでもよいし、それらの画像とは別の画像でもよい。また、クエリ画像は、全体画像でもよいし、部分画像でもよい。部分画像をクエリ画像とする場合、ユーザ端末２は、ユーザにて指定された画像から１つまたは複数の部分画像を抽出して表示し、表示された部分画像の中からユーザが選択した部分画像をクエリ画像としてもよい。また、ユーザ端末２は、ユーザにて指定された画像を表示し、表示された画像のうちユーザが指定した範囲に含まれる部分画像をクエリ画像としてもよい。
【００２０】
各コマンドにおける画像を指定する指定情報は、画像を特定する画像ＩＤを示してもよいし、画像を格納する位置を特定する位置情報を示してもよいし、画像そのものを含んでもよい。
【００２１】
また、ユーザ端末２は、画像検索サーバ３に送信したコマンドに対する応答情報を画像検索サーバ３から受信する。例えば、ユーザ端末２は、画像検索サーバ３から画像検索コマンドに対する応答情報として画像検索の検索結果を受信する。このとき、ユーザ端末２は、受信した検索結果を表示してもよい。
【００２２】
以上説明したユーザ端末２の機能は、アプリケーションプログラムにて実現されてもよい。ユーザ端末２の機能を実現するアプリケーションプログラムである画像検索アプリケーションは、画像検索サーバ３から提供されてもよい。画像検索アプリケーションが実現する機能には、例えば、ユーザがコマンドを発行するためのＧＵＩ（Graphical User Interface）を生成して表示する機能や、全体画像から部分画像を抽出する機能なども含まれる。
【００２３】
画像検索サーバ３は、画像検索を行う画像検索装置である。画像検索サーバ３は、複数の機器にて実現されてもよい。
【００２４】
画像検索サーバ３は、格納部３１と、送受信部３２と、管理部３３と、処理部３４とを有する。
【００２５】
格納部３１は、画像検索を行うための情報を格納する。例えば、格納部３１は、入力された画像からその画像に関するハッシュ値を算出する算出モデルと、ハッシュ値に関するハッシュインデックステーブルとを格納する。
【００２６】
算出モデルは、具体的には、入力された画像からその画像に関する互いに長さの異なる第１のハッシュ値および第２のハッシュ値を算出する。２つのハッシュ値の一方は、類似画像の候補である候補画像を検索するための第１のハッシュ値である検索用ハッシュ値であり、他方は、クエリ画像との類似度を算出して候補画像から類似画像を選択するための第２のハッシュ値である類似度算出用ハッシュ値である。検索用ハッシュ値は、類似度算出用ハッシュ値よりも短い。
【００２７】
図２は、算出モデルの一例を模式的に示す図である。図２に示す算出モデル２００は、画像特徴量抽出モデル２０１と、ハッシュ生成モデル２０２とを含む。
【００２８】
画像特徴量抽出モデル２０１は、入力された画像である入力画像から、その入力画像の画像クラスを算出する第１のモデルである。画像特徴量抽出モデル３０１は、本実施形態では、ＣＮＮ（Convolutional Neural Network：畳み込みニューラルネットワーク）で構成される。
【００２９】
画像特徴量抽出モデル２０１は、入力層２１１と、中間層２１２と、出力層２１３とを有する。中間層２１２は、畳み込み・プーリング層２１２ａと、全結合層２１２ｂとを有する。入力層２１１には、画像が入力される。畳み込み・プーリング層２１２ａは、入力層２１１に入力された入力画像に対して畳み込み処理とプーリング処理とを繰り返し行い、入力画像の特徴を保持したまま入力画像を縮小して出力する。全結合層２１２ｂは、畳み込み・プーリング層２１２ａの出力を重み付き結合することで、入力画像の特徴を示す特徴量である画像特徴量を算出して出力する。出力層２１３は、全結合層２１２ｂの出力から画像クラスを算出して出力する。なお、図の例では、出力層２１３の活性化関数としてソフトマックス関数（softmax）が使用されている。
【００３０】
ハッシュ生成モデル２０２は、入力層２２１と、中間層２２２と、出力層２２３と、変換層２２４とを有する。入力層２２１には、画像特徴量抽出モデル２０１の中間層２１２（全結合層２１２ｂ）から出力された画像特徴量が入力される。中間層２２２は、入力された画像特徴量を所定のデータ量に圧縮した圧縮特徴量に変換して出力する。出力層２２３は、中間層２２２の出力から画像クラスを算出して出力する。変換層２２４は、中間層２２２の出力を２値化してハッシュ値として出力する。
【００３１】
本実施形態では、中間層２２２は、画像特徴量を、互いにデータ量の異なる２つの圧縮特徴量に変換し、変換層２２４は、その２つの圧縮特徴量のそれぞれを２値化して互いに長さの異なる２つのハッシュ値（検索用ハッシュ値および類似度算出用ハッシュ値）を出力する。
【００３２】
なお、以下では、上記の算出モデルにて算出される類似度算出用ハッシュ値を、後述するハッシュアルゴリズムを用いて算出される類似度算出用ハッシュ値と区別するために、第１の類似度算出用ハッシュ値と呼ぶ。また、ハッシュアルゴリズムを用いて算出される類似度算出用ハッシュ値を第２の類似度算出用ハッシュ値と呼ぶ。
【００３３】
ハッシュインデックステーブルは、検索対象として登録された登録画像に関するハッシュ値を登録画像ごとに示す管理情報である。ハッシュ値は、本実施形態では、登録画像ごとに３つある。具体的には、ハッシュ値は、上述した検索用ハッシュ値および第１の類似度算出用ハッシュ値と、ハッシュ値を算出する所定のハッシュアルゴリズムを用いて算出される第３のハッシュ値である第２の類似度算出用ハッシュ値とを含む。第２の類似度算出用ハッシュ値は、検索用ハッシュ値よりも長いことが望ましい。また、第２の類似度算出用ハッシュ値の長さは、第１の類似度算出用ハッシュ値の長さと同じでもよいし、異なっていてもよい。ハッシュアルゴリズムは、例えば、平均ハッシュアルゴリズム（Average Hashing Algorithm）、差分ハッシュアルゴリズム（Difference Hashing Algorithm）、知覚ハッシュアルゴリズム（Perceptual Hash Algorithm）またはウェーブレットハッシュアルゴリズム（Wavelet Hashing Algorithm）などである。
【００３４】
図３は、ハッシュインデックステーブルの一例を示す図である。図３に示すハッシュインデックステーブル３００は、画像ＩＤ３０１と、画像ＩＤ３０１にて特定される画像の位置情報である画像パス３０２と、画像ＩＤ３０１にて特定される画像に関するハッシュ値３０３とを有する。ハッシュ値３０３は、検索用ハッシュ値３１１と、第１の類似度算出用ハッシュ値である類似度算出用ハッシュ値３１２と、第２の類似度算出用ハッシュ値である類似度算出用ハッシュ値３１３とを有する。図の例では、検索用ハッシュ値３１１は６４ビット、類似度算出用ハッシュ値３１２および類似度算出用ハッシュ値３１３は、２５６ビットである。
【００３５】
図１の説明に戻る。送受信部３２は、ユーザ端末２と通信可能に接続し、ユーザ端末２との間でデータの送受信を行う。例えば、送受信部３２は、ユーザ端末２からコマンドを受信する。
【００３６】
管理部３３は、ユーザ端末２の動作を規定する画像検索アプリケーションをユーザ端末２に提供することで、ユーザ端末２に表示する情報や、ユーザ端末２が送信するコマンドなどを管理する。
【００３７】
処理部３４は、算出モデルの生成、ハッシュインデックステーブルの生成、および、画像検索などを行う処理部である。
【００３８】
例えば、送受信部３２が画像学習コマンドを受信した場合、処理部３４は、画像学習コマンドに含まれる学習指定情報にて指定される学習対象画像を機械学習することにより、算出モデルを生成して格納部３１に格納する。
【００３９】
また、送受信部３２が画像追加コマンドを受信した場合、処理部３４は、画像追加コマンドに含まれる追加指定情報にて指定される追加対象画像と、格納部３１に格納された算出モデルと、ハッシュアルゴリズムとを用いて、追加対象画像に関する検索用ハッシュ値、第１の類似度算出用ハッシュ値および第２の類似度算出用ハッシュ値を取得する。そして、追加対象画像の画像ＩＤおよび位置情報を、算出した検索用ハッシュ値、第１の類似度算出用ハッシュ値および第２の類似度算出用ハッシュ値と対応付けて格納部３１に格納されたハッシュインデックステーブルに登録（追加）する。なお、ハッシュインデックステーブルにハッシュ値が登録されている画像が被検索対象である登録画像となる。
【００４０】
また、送受信部３２が画像削除コマンドを受信した場合、処理部３４は、画像削除コマンドに含まれる削除指定情報にて指定される削除対象画像に関するレコード（削除対象画像の画像ＩＤを含むレコード）をハッシュインデックステーブルから削除する。
【００４１】
また、送受信部３２が画像検索コマンドを受信した場合、処理部３４は、画像検索コマンドに含まれる検索指定情報にて指定されるクエリ画像と、格納部３１に格納された算出モデルと、ハッシュアルゴリズムとを用いて、クエリ画像に関する検索用ハッシュ値、第１の類似度算出用ハッシュ値および第２の類似度算出用ハッシュ値を取得する。処理部３４は、クエリ画像に関する検索用ハッシュ値、第１の類似度算出用ハッシュ値および第２の類似度算出用ハッシュ値と、格納部３１に格納されたハッシュインデックステーブルとに基づいて、クエリ画像に類似する類似画像を検索し、その検索結果をユーザ端末２に送信する。
【００４２】
次に動作を説明する。
【００４３】
図４は、画像検索サーバ３による算出モデルを生成するモデル生成処理の一例を説明するためのフローチャートである。
【００４４】
モデル生成処理では、先ず、送受信部３２は、ユーザ端末２から画像学習コマンドを受信する（ステップＳ４０１）。処理部３４は、画像学習コマンドに含まれる学習指定情報にて指定される学習対象画像を読み込む（ステップＳ４０２）。本実施形態では、学習指定情報は、ユーザデータベース１に格納されている複数の画像を学習対象画像として指定している。この場合、処理部３４は、送受信部３２を介してユーザデータベース１にアクセスし、ユーザデータベース１から学習対象画像を読み込む。
【００４５】
処理部３４は、読み込んだ学習対象画像を機械学習して、画像特徴量抽出モデルを生成する（ステップＳ４０３）。例えば、処理部３４は、ＣＮＮのモデル構造とＣＮＮのパラメータとを用いてＣＮＮを構成し、学習対象画像を機械学習することで、ＣＮＮのパラメータを調整（最適化）して画像特徴量抽出モデルを生成する。なお、ＣＮＮのモデル構造およびパラメータは、格納部３１に予め格納されていてもよい。また、本実施形態では、学習対象画像がベクタ形式の画像の場合、処理部３４は、学習対象画像をラスタ形式の画像に変換してから機械学習を行う。
【００４６】
処理部３４は、学習対象画像とステップＳ４０３で生成した画像特徴量抽出モデルとに基づいて、ハッシュ生成モデル（図５参照）を生成する（ステップＳ４０４）。
【００４７】
処理部３４は、生成した画像特徴量抽出モデルおよびハッシュ生成モデルを算出モデルとして格納部３１に格納する（ステップＳ４０５）。このとき、処理部３４は、学習対象画像に対応するハッシュインデックステーブルを生成して格納部３１に格納してもよい。例えば、処理部３４は、算出モデルに学習対象画像を入力して、学習対象画像に関する検索用ハッシュ値および第１の類似度算出用ハッシュ値を取得するとともに、ハッシュアルゴリズムを学習対象画像に適用して、学習対象画像に関する第２の類似度算出用ハッシュ値を取得する。そして、処理部３４は、学習対象画像ごとに、学習対象画像の画像ＩＤおよび画像パスを、取得した検索用ハッシュ値、第１の類似度算出用ハッシュ値および第２の類似度算出用ハッシュ値と対応付けて、ハッシュインデックステーブルとして格納部３１に格納する。
【００４８】
図５は、図４のステップＳ４０４におけるハッシュ生成モデルを生成する処理についてより詳細に説明するための図であり、ハッシュ生成モデルの要部のモデル構造を模式的に示している。
【００４９】
図５に示すハッシュ生成モデルの要部は、パーセプトロン層５０１〜５０７を有するＭＬＰ（Multilayer Perceptron：多層パーセプトロン）ネットワーク５００で構成される。ＭＬＰネットワーク５００では、パーセプトロン層５０１の出力がパーセプトロン層５０２〜５０４を含む第１のネットワーク５１１と、パーセプトロン層５０５〜５０７を含む第２のネットワーク５１２とに分岐される。また、図の例では、パーセプトロン層５０２および５０５の活性化関数としてレル関数（ReLU）が使用され、パーセプトロン層５０3および５０6の活性化関数としてシグモイド関数（Sigmoid）が使用され、パーセプトロン層５０４および５０７の活性化関数としてソフトマックス関数（Softmax）が使用されている。なお、パーセプトロン層５０１には活性化関数がない。
【００５０】
第１のネットワーク５１１および第２のネットワーク５１２は、例えば、ＳＳＤＨ（Semi-Supervised Deep Hashing）ネットワークである。第１のネットワーク５１１は、第１の類似度算出用ハッシュ値に対応する圧縮特徴量を算出するためのネットワークであり、第２のネットワーク５１２は、検索用ハッシュ値に対応する圧縮特徴量を算出するためのネットワークである。
【００５１】
処理部３４は、学習対象画像ごとに、学習対象画像を画像特徴量抽出モデルに入力して得られる画像特徴量をＭＬＰネットワーク５００に入力し、第１のネットワーク５１１および第２のネットワーク５１２のそれぞれにおいて、互いに異なる複数の損失計算を行う。
【００５２】
図の例では、処理部３４は、第１のネットワーク５１１において、パーセプトロン層５０３の出力に基づいて、画像特徴量をハッシュ値に変換することを目的とした、バイナリ化ロス関数（Forcing binary loss function）による損失計算および、ハッシュ値中の”0”および”1”の出現率を同程度にするための出現率調整ロス関数（50% fire rate loss function）による損失計算を実施する。またパーセプトロン層５０４の出力と学習対象画像を画像特徴量抽出モデルに入力して得られる画像クラスとに基づいて、クラスロス計算関数による画像クラスのクラス分類（Classification）の損失計算（例えば、Softmax Cross Entropy関数による損失計算）を行う。
【００５３】
また、処理部３４は、第２のネットワーク５１２において、パーセプトロン層５０６の出力に基づいて、画像特徴量をハッシュ値に変換することを目的とした、バイナリ化ロス関数による損失計算および、ハッシュ値中の”0”および”1”の出現率を同程度にするための出現率調整ロス関数による損失計算を実施する。またパーセプトロン層５０７の出力と学習対象画像を画像特徴量抽出モデルに入力して得られる画像クラスとに基づいて、クラスロス計算関数による画像クラスのクラス分類の損失計算を行う。
【００５４】
処理部３４は、各損失計算による損失の和が最小となるようにＭＬＰネットワーク５００のパラメータを調整（最適化）することで、ハッシュ生成モデルを生成する。
【００５５】
図６は、被検索対象である登録画像に画像を追加する画像追加処理の一例を説明するためのフローチャートである。
【００５６】
追加処理では、先ず、送受信部３２は、ユーザ端末２から画像追加コマンドを受信する（ステップＳ６０１）。処理部３４は、画像追加コマンドに含まれる追加指定情報にて指定される追加対象画像を読み込む（ステップＳ６０２）。本実施形態では、追加指定情報は、ユーザデータベース１に格納されている画像を追加対象画像として指定している。この場合、処理部３４は、送受信部３２を介してユーザデータベース１にアクセスし、ユーザデータベース１から追加対象画像を読み込む。
【００５７】
処理部３４は、格納部３１に格納された算出モデルを読み込み、その算出モデルに追加対象画像を入力して、追加対象画像に関する検索用ハッシュ値および第１の類似度算出用ハッシュ値を取得する（ステップＳ６０３）。
【００５８】
また、処理部３４は、ハッシュアルゴリズムを追加対象画像に適用して、追加対象画像に関する第２の類似度算出用ハッシュ値を取得する（ステップＳ６０４）。
【００５９】
処理部３４は、追加対象画像の画像ＩＤおよび画像パスを取得し、その画像ＩＤおよび画像バスと、取得した追加対象画像に関する検索用ハッシュ値、第１の類似度算出用ハッシュ値および第２の類似度算出用ハッシュ値とを対応付けて、格納部３１のハッシュインデックステーブルに追加する（ステップＳ６０５）。
【００６０】
図７は、登録画像を削除する画像削除処理の一例を説明するためのフローチャートである。
【００６１】
削除処理では、先ず、送受信部３２は、ユーザ端末２から画像削除コマンドを受信する（ステップＳ７０１）。処理部３４は、画像削除コマンドに含まれる削除指定情報にて指定される削除対象画像に関するレコードを、格納部３１のハッシュインデックステーブルから削除する（ステップＳ７０２）。
【００６２】
図８は、画像を検索する画像検索処理の一例を説明するためのフローチャートである。
【００６３】
画像検索処理では、先ず、送受信部３２は、ユーザ端末２から画像検索コマンドを受信する（ステップＳ８０１）。処理部３４は、画像検索コマンドに含まれる検索指定情報にて指定されるクエリ画像を読み込む（ステップＳ８０２）。本実施形態では、検索指定情報は、ユーザデータベース１に格納されている画像をクエリ画像として指定している。この場合、処理部３４は、送受信部３２を介してユーザデータベース１にアクセスし、ユーザデータベース１からクエリ画像を読み込む。
【００６４】
処理部３４は、格納部３１に格納された算出モデルを読み込み、その算出モデルにクエリ画像を入力して、クエリ画像に関する検索用ハッシュ値と第１の類似算出用ハッシュ値とを取得する（ステップＳ８０３）。
【００６５】
また、処理部３４は、ハッシュアルゴリズムをクエリ画像に適用して、クエリ画像に関する第２の類似度算出用ハッシュ値を取得する（ステップＳ８０４）。
【００６６】
処理部３４は、クエリ画像に関する検索用ハッシュ値と、格納部３１に格納されているハッシュインデックステーブルに含まれる登録画像に関する検索用ハッシュ値とに基づいて、類似画像の候補である候補画像を検索する（ステップＳ８０５）。例えば、処理部３４は、ハッシュインデックステーブルから、クエリ画像に関する検索用ハッシュ値と近似する、登録画像に関する検索用ハッシュ値である近似ハッシュ値を有する登録画像を候補画像として検索する。近似ハッシュ値は、クエリ画像に関する検索用ハッシュ値と異なるビット（桁）の数が所定数以下の、登録画像に関する検索用ハッシュ値である。所定数は、例えば、１または２である。
【００６７】
処理部３４は、候補画像ごとに、クエリ画像に関する第１の類似度算出用ハッシュ値と候補画像に関する第１の類似度算出用ハッシュ値とに基づいて、クエリ画像と候補画像の第１の類似度を算出する（ステップＳ８０６）。第１の類似度は、例えば、クエリ画像に関する第１の類似度算出用ハッシュ値と候補画像に関する第１の類似度算出用ハッシュ値とのハミング距離である。
【００６８】
処理部３４は、候補画像ごとに、クエリ画像に関する第２の類似度算出用ハッシュ値と候補画像に関する第２の類似度算出用ハッシュ値とに基づいて、クエリ画像と候補画像の第２の類似度を算出する（ステップＳ８０７）。第２の類似度は、例えば、クエリ画像に関する第２の類似度算出用ハッシュ値と候補画像に関する第２の類似度算出用ハッシュ値とのハミング距離である。
【００６９】
処理部３４は、各候補画像について、第１の類似度および第２の類似度を組み合わせた組合せ類似度を算出する（ステップＳ８０８）。組合せ類似度は、例えば、第１の類似度を第１の数値範囲に正規化した値と、第２の類似度を第２の数値範囲に正規化した値との積である。第１の数値範囲と第２の数値範囲とは、互いに同じでもよいし、異なっていてもよい。本実施形態では、第１の数値範囲および第２の数値範囲は、共に０から１までの範囲である。
【００７０】
処理部３４は、組合せ類似度に基づいて、候補画像の中から類似画像を選択し、その類似画像を示す情報を検索結果として、送受信部３２を介してユーザ端末２に送信する（ステップＳ８０９）。このとき、処理部３４は、例えば、組合せ類似度が高い方から所定個分の候補画像を類似画像として選択してもよいし、組合せ類似度が閾値以上の候補画像を類似画像として選択してもよい。
【００７１】
以上説明した各処理において、算出モデルに入力する画像がベクタ形式の場合、処理部３４は、画像をラスタ形式に変換してから、算出モデルに入力する。また、同様に、ハッシュアルゴリズムを適用する画像がベクタ形式の場合、処理部３４は、画像をラスタ形式に変換してからハッシュアルゴリズムを適用する。
【００７２】
以上説明したように本開示は以下の事項を含む。
【００７３】
本開示の一態様に係る画像検索装置（３）は、格納部（３１）と、処理部（３４）とを有する。格納部は、入力された画像から当該画像に関する互いに長さの異なる第１のハッシュ値および第２のハッシュ値を算出する算出モデル（２００）と、算出モデルに複数の登録画像のそれぞれを入力して得られる各登録画像に関する第１のハッシュ値（３１１）および第２のハッシュ値（３１２）を登録画像ごとに示す管理情報（３００）とを格納する。処理部は、クエリ画像を算出モデルに入力してクエリ画像に関する第１のハッシュ値および第２のハッシュ値を取得し、クエリ画像に関する第１のハッシュ値および第２のハッシュ値と管理情報とを用いて、複数の登録画像からクエリ画像に類似する類似画像を検索する。
【００７４】
上記構成によれば、クエリ画像に関する互いに長さの異なる第１のハッシュ値および第２のハッシュ値を用いて、クエリ画像に類似する類似画像が検索される。このため、短いハッシュ値による高速な検索と、長いハッシュ値による高精度な検索とを両立させることが可能になるため、高精度かつ高速な類似画像の検索を行うことが可能になる。
【００７５】
また、第１のハッシュ値は、第２のハッシュ値よりも短い。処理部は、クエリ画像に関する第１のハッシュ値と登録画像に関する第１のハッシュ値とに基づいて、複数の登録画像から類似画像の候補を候補画像として検索し、クエリ画像に関する第２のハッシュ値と候補画像に関する第２のハッシュ値とに基づいて、候補画像から類似画像を選択する。この場合、短い第１のハッシュ値に基づいて複数の登録画像から候補画像が検索され、長い第２のハッシュ値に基づいて候補画像から類似画像が選択される。このため、短い第１のハッシュ値に基づいて候補画像を絞り込み、その中から長い第２のハッシュ値に基づいて類似画像を選択することが可能になるため、高精度かつ高速で類似画像を検索することが可能になる。
【００７６】
また、処理部は、複数の学習用画像を機械学習することにより、算出モデルを生成して格納部に格納する。この場合、第１のハッシュ値および第２のハッシュ値を画像に応じた適切な値にすることが可能になる。
【００７７】
また、算出モデルは、入力された画像から当該画像に関する特徴量を算出する第１のモデルと、特徴量から第１のハッシュ値および第２のハッシュ値を算出する第２のモデルとを含む。この場合、画像の特徴量から第１のハッシュ値および第２のハッシュ値が算出されるため、第１のハッシュ値および第２のハッシュ値を画像の特徴を示すより適切な値にすることが可能になる。
【００７８】
また、管理情報は、画像からハッシュ値を算出する所定のハッシュアルゴリズムに対して各登録画像を適用して算出した、各登録画像に関する第３のハッシュ値を登録画像ごとに示す。処理部は、ハッシュアルゴリズムにクエリ画像を適用して、クエリ画像に関する第３のハッシュ値を算出し、クエリ画像に関する第３のハッシュ値をさらに用いて、類似画像を検索する。この場合、算出モデルとは別に算出された第３のハッシュ値をさらに用いて、類似画像が検索されるため、より精度の高い検索が可能となる。
【００７９】
また、第１のハッシュ値は、第２のハッシュ値および前記第３のハッシュ値よりも短く、処理部は、クエリ画像に関する第１のハッシュ値と登録画像に関する第１のハッシュ値とに基づいて、複数の登録画像から類似画像の候補を候補画像として検索し、クエリ画像に関する第２のハッシュ値および第３のハッシュ値と候補画像に関する第２のハッシュ値および第３のハッシュ値とに基づいて、候補画像から類似画像を選択する。この場合、短い第１のハッシュ値に基づいて複数の登録画像から候補画像が検索され、長い第２のハッシュ値および第３のハッシュ値に基づいて候補画像から類似画像が選択されるため、より精度の高い検索を高速で行うことが可能になる。
【００８０】
上述した本開示の実施形態は、本開示の説明のための例示であり、本開示の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の範囲を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【００８１】
例えば、ユーザデータベース１は、ユーザ端末２および画像検索サーバ３とは別に設けられていたが、ユーザ端末２に備わっていてもよいし、画像検索サーバ３に備わっていてもよい。また、画像検索サーバ３の機能の少なくとも一部がユーザ端末２に備わっていてもよい。
【符号の説明】
【００８２】
１：ユーザデータベース、２：ユーザ端末、３：画像検索サーバ、１０：ネットワーク、３１：格納部、３２：送受信部、３３：管理部、３４：処理部、１００：報処理システム
【図１】
2020173640.tif 000003
【図２】
2020173640.tif 000004
【図３】
2020173640.tif 000005
【図４】
2020173640.tif 000006
【図５】
2020173640.tif 000007
【図６】
2020173640.tif 000008
【図７】
2020173640.tif 000009
【図８】
2020173640.tif 000010