(57)【要約】【課題】  精度の高い類似画像検索を行う。【解決手段】  類似画像検索装置１０は、入力画像を入力する画像入力部１２と、予め記憶した、ニューラルネットワークを含んで構成される互いに異なる複数の分類器に対して、入力画像に基づく入力を行って、当該入力画像の特徴量ベクトルを算出する入力画像特徴量算出部１３と、検索対象画像の特徴量ベクトルを示す情報を取得する検索対象画像特徴量取得部１４と、入力画像の特徴量ベクトル、及び検索対象画像の特徴量ベクトルに基づいて、検索対象画像から入力画像に類似する画像を検索する検索部１５と、検索結果を示す情報を出力する出力部１６とを備える。【選択図】  図１
2018165926.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を入力する画像入力部と、
予め記憶した、ニューラルネットワークを含んで構成される互いに異なる複数の分類器に対して、前記画像入力部によって入力された入力画像に基づく入力を行って、当該入力画像の特徴量ベクトルを算出する入力画像特徴量算出部と、
検索対象画像の特徴量ベクトルを示す情報を取得する検索対象画像特徴量取得部と、
前記入力画像特徴量算出部によって算出された特徴量ベクトル、及び前記検索対象画像特徴量取得部によって取得された情報によって示される特徴量ベクトルに基づいて、前記検索対象画像から前記入力画像に類似する画像を検索する検索部と、
前記検索部による検索結果を示す情報を出力する出力部と、
を備える類似画像検索装置。
【請求項２】
前記入力画像特徴量算出部は、前記ニューラルネットワークの出力層の予め設定された数の階層手前の中間層の数値を抽出し、当該中間層の数値に基づいて前記入力画像の特徴量ベクトルを算出する請求項１に記載の類似画像検索装置。
【請求項３】
前記入力画像特徴量算出部は、前記ニューラルネットワークの出力層の１階層手前の中間層の数値を抽出する請求項２に記載の類似画像検索装置。
【請求項４】
学習用画像、及び当該学習用画像の複数の属性を示す属性情報を入力して、属性毎に、入力した学習用画像及び属性情報を用いた学習を行って、前記分類器を生成する分類器生成部を更に備える請求項１〜３の何れか一項に記載の類似画像検索装置。
【請求項５】
前記入力画像特徴量算出部は、前記分類器毎の前記入力画像の特徴量ベクトルの次元数に応じて、当該特徴量ベクトルの数値に重み付けを行う請求項１〜４の何れか一項に記載の類似画像検索装置。
【請求項６】
前記検索対象画像特徴量取得部は、前記検索対象画像を入力して、前記複数の分類器に対して、入力した検索対象画像に基づく入力を行って、当該検索対象画像の特徴量ベクトルを算出して、当該検索対象画像の特徴量ベクトルを示す情報を取得する請求項１〜５の何れか一項に記載の類似画像検索装置。
【請求項７】
前記検索部は、前記入力画像の特徴量ベクトルと前記検索対象画像の特徴量ベクトルとの角度に応じた数値を算出して検索する請求項１〜６の何れか一項に記載の類似画像検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像に類似する画像を検索する類似画像検索装置に関する。
【背景技術】
【０００２】
画像を指定すると似ている画像を探し出してくれる技術が知られている。具体的には、以下のような技術が知られている。予め、大量の画像と当該画像から抽出された画像の特徴を示す特徴量ベクトルとを記憶しておく。特徴量ベクトルは、画像のデータから画像の抽象的な特徴を数値群に変換したものである。新たな画像を入力して、当該新たな画像の特徴量ベクトルを抽出する。予め記憶された画像の特徴量ベクトルと、新たな画像の特徴量ベクトルとのなす角度（類似度）を計算し、類似度に基づいて、予め記憶した画像から、新たな画像に類似する画像を探し出す。
【０００３】
このような類似画像検索技術は、スマートフォン又はデジタルカメラで撮影した画像の類似画像の検索に利用されている。例えば、特許文献１では、ニューラルネットワークを用いて画像から特徴量ベクトルを算出する方法が示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１８４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ニューラルネットワークは、例えば、画像の属性を推定するためのものである。画像の属性としては、例えば、服の画像であれば、服の種類、色、パターン及び柄等である。通常、１つのニューラルネットワークは、１つの属性を推定するためのものである。従って、特許文献１に記載された方法では、１つの属性を考慮した類似画像を検索できると考えられるものの、複数の属性を考慮した類似画像を検索しようとすると必ずしもその精度が十分でないおそれがある。例えば、入力した画像に写っている服の種類、色、パターン及び柄等が類似している服の画像を検索しようとすると、必ずしもその精度が十分でないおそれがある。
【０００６】
本発明は、上記に鑑みてなされたものであり、精度の高い類似画像検索を行うことができる類似画像検索装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明に係る類似画像検索装置は、入力画像を入力する画像入力部と、予め記憶した、ニューラルネットワークを含んで構成される互いに異なる複数の分類器に対して、画像入力部によって入力された入力画像に基づく入力を行って、当該入力画像の特徴量ベクトルを算出する入力画像特徴量算出部と、検索対象画像の特徴量ベクトルを示す情報を取得する検索対象画像特徴量取得部と、入力画像特徴量算出部によって算出された特徴量ベクトル、及び検索対象画像特徴量取得部によって取得された情報によって示される特徴量ベクトルに基づいて、検索対象画像から入力画像に類似する画像を検索する検索部と、検索部による検索結果を示す情報を出力する出力部と、を備える。
【０００８】
本発明に係る類似画像検索装置では、複数の異なる分類器によって、入力画像の特徴量ベクトルが算出されて、当該特徴量ベクトルに基づいて、検索対象画像から入力画像に類似する画像が検索される。従って、本発明に係る類似画像検索装置によれば、複数の異なる分類器に対応する複数の属性を考慮して、画像の検索が行われる。即ち、本発明に係る類似画像検索装置によれば、精度の高い類似画像検索を行うことができる。
【発明の効果】
【０００９】
本発明によれば、複数の異なる分類器に対応する複数の属性を考慮して、画像の検索が行われる。即ち、本発明によれば、精度の高い類似画像検索を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る類似画像検索装置の構成を示す図である。
【図２】分類器を模式的に示す図である。
【図３】特徴量ベクトルの結合を模式的に示す図である。
【図４】特徴量ベクトルの数値例を示す図である。
【図５】類似画像検索装置から検索結果として出力される情報の例を示す図である。
【図６】本発明の実施形態に係る類似画像検索装置において、類似画像検索が行われる前に予め実行される処理を示すフローチャートである。
【図７】本発明の実施形態に係る類似画像検索装置において、類似画像検索が行われる際に実行される処理を示すフローチャートである。
【図８】本発明の実施形態に係る類似画像検索装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面と共に本発明に係る類似画像検索装置の実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００１２】
図１に本実施形態に係る類似画像検索装置１０を示す。類似画像検索装置１０は、入力画像（入力画像の画像データ）を入力し、予め登録される登録画像である複数の検索対象画像（検索対象画像の画像データ）から、入力画像に類似する画像を検索する装置である。例えば、類似画像検索装置１０は、サーバである。この場合、類似画像検索装置１０は、移動体通信網等のネットワークを介して、ユーザ端末との間で互いに情報の送受信を行うことができる。類似画像検索装置１０は、ユーザ端末から入力画像を受信して、検索を行って、入力画像に類似する画像を示す情報をユーザ端末に送信する。あるいは、類似画像検索装置１０は、ユーザ端末であってもよい。この場合、類似画像検索装置１０は、ユーザの操作によって入力画像を入力し（例えば、撮像を行って入力画像を入力し）、自端末に記憶している検索対象画像から、入力画像に類似する画像を検索する。
【００１３】
本実施形態に係る類似画像検索装置１０は、画像の種別、即ち、画像に写ったオブジェクト毎に類似検索を行う。例えば、服が写った画像を入力画像とし、服が写った類似画像を検索する。
【００１４】
引き続いて、本実施形態に係る類似画像検索装置１０の機能を説明する。図１に示すように類似画像検索装置１０は、分類器生成部１１と、画像入力部１２と、入力画像特徴量算出部１３と、検索対象画像特徴量取得部１４と、検索部１５と、出力部１６とを備えて構成される。
【００１５】
分類器生成部１１は、複数の分類器を生成する機能部である。分類器は、当該分類器に応じた属性についての画像の分類に用いられる情報である。属性は、例えば、服の画像であれば、当該画像に写っている服の種類、色、パターン及び柄等である。例えば、服の種類についての分類器は、当該画像に写っている服の種類が、Ｔシャツであるか、ポロシャツであるかといった分類を行う。あるいは、服の色についての分類器は、当該画像に写っている服の色が、ピンクであるかであるか、白であるかといった分類を行う。本実施形態では、属性についての分類先（上記の例では、Ｔシャツ、ポロシャツ、ピンク及び白等）をカテゴリと呼ぶ。
【００１６】
分類器は、画像に基づく情報を入力して、当該画像の当該分類器に対応する属性を示す情報、即ち、当該画像が分類されるカテゴリを示す情報を出力する。例えば、当該属性についてのカテゴリ毎のスコアを出力する。カテゴリのスコアの数値が高いほど、画像は当該カテゴリに分類される可能性が高いことを示している。
【００１７】
分類器は、ニューラルネットワークを含んで構成される。例えば、分類器は、ディープラーニングを用いた分類器である。図２に分類器を模式的に示す。図２に示すように、分類器は、それぞれ入力層（最初層）Ｌ１、中間層Ｌ２及び出力層Ｌ３の何れかに含まれる複数のニューロン（ノード）によって構成されている。中間層Ｌ２は、複数の階層のニューロンを含んでいる。
【００１８】
入力層Ｌ１に含まれる複数のニューロンそれぞれには、画像Ｐに基づく入力が行われる。入力層Ｌ１のニューロンへ入力される情報は、例えば、次のように生成される。まず、画像Ｐを一定数の複数の領域Ａに分割する。例えば、画像Ｐの縦及び横を等間隔に予め設定した数に区切り、当該区切りによって生成される同一の大きさの矩形の領域Ａに分割する。それぞれの当該矩形の領域Ａの画素の画素値から、入力層Ｌ１のニューロンへ入力される情報（ベクトル）を生成する。例えば、当該領域Ａにおける画素のＲＧＢのそれぞれの数値の平均及び最大等を入力層Ｌ１のニューロンへ入力される情報とする。
【００１９】
入力層Ｌ１に入力された情報が、より深い階層に伝達されるうちに、各階層で属性の特徴が抽出される。即ち、各階層のニューロンは一定の大きさのフィルターを形成し、情報がスライドされてフィルター毎に複数の特徴が抽出される。出力層Ｌ３に含まれる複数のニューロンそれぞれから出力される情報（数値）は、各カテゴリのスコアを示している。
【００２０】
分類器生成部１１は、複数の学習用画像、及び当該学習用画像の複数の属性を示す属性情報であるラベル情報を入力して、属性毎に、入力した学習用画像及びラベル情報を用いた学習（機械学習）を行って分類器を生成する。ラベル情報は、当該画像の各属性についてのカテゴリを示す情報である。即ち、学習用画像及び当該学習用画像の複数のラベル情報は、学習の教師データである。
【００２１】
学習用画像及びラベル情報は、類似画像検索装置１０の管理者等によって用意されて、類似画像検索装置１０に入力される。また、ラベル情報は、１つの学習用画像に対して、属性（生成される分類器）毎に用意される。例えば、学習用画像として、ピンクのＴシャツが写っている画像を用意した場合、当該学習用画像の服の種類についてのラベル情報は、Ｔシャツを示す情報であり、当該学習用画像の服の色についてのラベル情報は、ピンクを示す情報である。
【００２２】
分類器生成部１１は、学習用画像、及び当該学習用画像に対応する属性毎のラベル情報を用いて、ディープラーニングを行って、属性毎の分類器を生成する。分類器生成部１１は、生成した複数の分類器を入力画像特徴量算出部１３及び検索対象画像特徴量取得部１４に出力する。なお、分類器生成部１１によって生成される分類器は、類似画像検索に用いられるため、分類器生成部１１による分類器の生成は、類似画像検索に先立って行われる。
【００２３】
画像入力部１２は、入力画像を入力する機能部である。例えば、画像入力部１２は、ユーザ端末から入力画像を受信して、入力画像を入力する。入力画像には、例えば、画像ＩＤ等の予め設定された、あるいは、類似画像検索装置１０によって設定される識別子が付与されており、識別できるようになっていてもよい。画像入力部１２は、入力した入力画像を入力画像特徴量算出部１３に出力する。
【００２４】
入力画像特徴量算出部１３は、画像入力部１２から入力した入力画像の特徴量ベクトルを算出する機能部である。入力画像特徴量算出部１３は、予め記憶した互いに異なる複数の分類器に対して、入力画像に基づく入力を行って、入力画像の特徴量ベクトルを算出する。入力画像特徴量算出部１３は、ニューラルネットワークの出力層の予め設定された数の階層手前の中間層の数値を抽出し、当該中間層の数値に基づいて入力画像の特徴量ベクトルを算出してもよい。入力画像特徴量算出部１３は、ニューラルネットワークの出力層の１階層手前の中間層の数値を抽出してもよい。入力画像特徴量算出部１３は、入力画像の特徴量ベクトルの次元数を削減してもよい。入力画像特徴量算出部１３は、分類器毎の入力画像の特徴量ベクトルの次元数に応じて、当該特徴量ベクトルの数値に重み付けを行うこととしてもよい。入力画像特徴量算出部１３は、具体的には、以下のように入力画像の特徴量ベクトルを算出する。
【００２５】
入力画像特徴量算出部１３は、分類器生成部１１から属性毎の分類器を入力して記憶しておく。入力画像特徴量算出部１３は、画像入力部１２から入力画像を入力する。入力画像特徴量算出部１３は、入力画像から、分類器（の入力層Ｌ１のニューロン）に入力する情報を生成する。入力画像特徴量算出部１３は、上述したように当該情報を生成する。即ち、入力画像特徴量算出部１３は、入力画像を、予め設定された数の矩形の領域に分割する。入力画像特徴量算出部１３は、当該矩形の領域の画素の画素値から、入力層Ｌ１のニューロンへ入力される情報（ベクトル）を生成する。例えば、当該領域における画素のＲＧＢのそれぞれの数値の平均及び最大等を入力層Ｌ１のニューロンへ入力される情報とする。
【００２６】
入力画像特徴量算出部１３は、当該情報を各分類器に入力する。入力画像特徴量算出部１３は、その際の、分類器の中間層Ｌ２のうち、出力層Ｌ３の１階層手前の階層Ｌ２ａの各ニューロンの数値を、分類器毎の入力画像の特徴量ベクトルとする。通常、ニューラルネットワークでは、出力層Ｌ３よりも、中間層Ｌ２の方が、ニューロンの数が多く、より多くの情報を含んでいる。また、中間層Ｌ２の中でも出力層Ｌ３に近い階層の方が、属性に対してより特徴化された情報を含んでいる。従って、出力層Ｌ３の１階層手前の階層Ｌ２ａの各ニューロンの数値を特徴量ベクトルとすることで、精度の高い類似画像検索を行うことができる。但し、分類器毎の入力画像の特徴量ベクトルとして、出力層Ｌ３の各ニューロンの数値、又は出力層Ｌ３の２階層以上手前の階層Ｌ２ａの各ニューロンの数値を採用することとしてもよい。
【００２７】
入力画像特徴量算出部１３は、得られた分類器毎の入力画像の特徴量ベクトルの次元数を削減する。次元数の削減は、一般的な特徴量の次元圧縮技術を用いることができる。例えば、ＰＣＡ（主成分分析）、ＬＤＡ（線形判別分析）、Auto Encoder、又はRestricted Boltzmann Machine等を用いることができる。また、上記以外にも、ニューラルネットワークを改造することで、次元数がより少ない特徴量ベクトルを取得することとしてもよい。
【００２８】
入力画像特徴量算出部１３は、得られた分類器毎の入力画像の次元数削減後の特徴量ベクトルを結合する。例えば、入力画像特徴量算出部１３は、分類器毎の入力画像の特徴量ベクトルの要素が、結合後の特徴量ベクトルの要素となるように結合する。これにより、結合後の特徴量ベクトルの次元数は、分類器毎の特徴量ベクトルの次元数の総和となる。例えば、属性Ａ及び属性Ｂの特徴量ベクトル（属性Ａ及び属性Ｂに対応する分類器によって得られる特徴量ベクトル）の次元数がＮであり、属性Ａの特徴量ベクトルが（ａ１，ａ２，…，ａＮ）であり、属性Ｂの特徴量ベクトルが（ｂ１，ｂ２，…，ｂＮ）であった場合、２つの属性の特徴量ベクトルを結合した特徴量ベクトルは（ａ１，ａ２，…，ａＮ，ｂ１，ｂ２，…，ｂＮ）である。
【００２９】
入力画像特徴量算出部１３は、分類器毎の入力画像の特徴量ベクトルの次元数に応じて、当該特徴量ベクトルの数値に重み付けを行うこととしてもよい。複数の属性の特徴量ベクトルの次元数が異なる場合、それぞれの属性の特徴量ベクトルの数値の重みが違うため、複数の属性の特徴量ベクトルをそのまま結合すると類似画像検索結果に対する属性毎の影響が異なってしまう。例えば、属性Ａの特徴量ベクトルの次元数が１０００であり、属性Ｂの特徴量ベクトルの次元数が１００であり、２つの属性の特徴量ベクトルをそのまま結合すると、属性Ａは属性Ｂよりも類似画像検索結果に対して、より大きな影響を与える。
【００３０】
これに対して、入力画像特徴量算出部１３は、各属性の特徴量ベクトルの類似画像検索結果に対する影響が均一化するように、特徴量ベクトルの数値に重み付けを行う。例えば、入力画像特徴量算出部１３は、各属性の特徴量ベクトルの要素の数値を、√（特徴量ベクトルの次元数）で割ることで上記の均一化を行う。
【００３１】
例えば、属性Ａの特徴量ベクトルの次元数がＮＡであり、属性Ａの特徴量ベクトルが（ａ１，ａ２，…，ａＮＡ）であった場合、重み付けした特徴量ベクトルは（ａ１／√ＮＡ，ａ２／√ＮＡ，…，ａＮＡ／√ＮＡ）である。属性Ｂの特徴量ベクトルの次元数がＮＢであり、属性Ｂの特徴量ベクトルが（ｂ１，ｂ２，…，ｂＮＢ）であった場合、重み付けした特徴量ベクトルは（ｂ１／√ＮＢ，ｂ２／√ＮＢ，…，ｂＮＢ／√ＮＢ）である。これら２つの特徴量ベクトルを結合した特徴量ベクトルは、（ａ１／√ＮＡ，ａ２／√ＮＡ，…，ａＮＡ／√ＮＡ，ｂ１／√ＮＢ，ｂ２／√ＮＢ，…，ｂＮＢ／√ＮＢ）である。
【００３２】
なお、上記の重み付けは、重み付けの趣旨から、各属性の特徴量ベクトルの次元数が互いに異なる場合のみに行うこととしてもよい。また、各属性の特徴量ベクトルの数値が適切に扱われるような、上記以外の重み付けを行うこととしてもよい。
【００３３】
図３に特徴量ベクトルの結合を模式的に示す。図３に示すように各分類器によって各属性の特徴量ベクトルＶ１（特徴量ベクトルＶ１１，Ｖ１２，…，Ｖ１Ｎの総称）が算出される。続いて、それらの特徴量ベクトルＶ１の重み付けがされた特徴量ベクトルＶ２（特徴量ベクトルＶ２１，Ｖ２２，…，Ｖ２Ｎの総称）が算出される。それらの特徴量ベクトルＶ２が結合されて、入力画像の特徴量ベクトルＶ３が生成される。図４に画像ＩＤ１である入力画像についての特徴量ベクトルの数値例を示す。図４（ａ）〜（ｃ）に、属性１、属性２、属性Ｎの重み付けされた特徴量ベクトル（なお、これらの特徴量ベクトル以外にも、属性３〜属性Ｎ−１の特徴量ベクトルも存在している）を示し、図４（ｄ）に、これらの重み付けされた各特徴量ベクトルから生成される結合された特徴量ベクトルを示す。
【００３４】
入力画像特徴量算出部１３は、算出した入力画像の結合後の特徴量ベクトルを示す情報を検索部１５に出力する。
【００３５】
検索対象画像特徴量取得部１４は、検索対象画像の特徴量ベクトルを示す情報を取得する機能部である。検索対象画像特徴量取得部１４は、検索対象画像を入力して、複数の分類器に対して、入力した検索対象画像に基づく入力を行って、当該検索対象画像の特徴量ベクトルを算出して、当該検索対象画像の特徴量ベクトルを示す情報を取得する。検索対象画像特徴量取得部１４は、具体的には、以下のように検索対象画像の特徴量ベクトルを示す情報を取得する。
【００３６】
検索対象画像特徴量取得部１４は、分類器生成部１１から属性毎の分類器を入力して記憶しておく。検索対象画像特徴量取得部１４は、検索対象画像を入力する。検索対象画像は、通常、複数の画像である。検索対象画像は、類似画像検索装置１０の管理者等によって用意されて、類似画像検索装置１０に入力される。上述した学習用画像が、検索対象画像として用いられてもよい。検索対象画像は、例えば、類似画像検索装置１０及びユーザ端末等によってネットワークを介して参照可能な画像である。検索対象画像は、画像ファイル名（画像名）と、ネットワーク上の位置を示す情報であるＵＲＬ（画像ＵＲＬ）とで識別できるようになっている。検索対象画像特徴量取得部１４は、検索対象画像とあわせて、これらの当該検索対象画像を識別する情報を入力する。
【００３７】
検索対象画像特徴量取得部１４は、入力画像特徴量算出部１３が入力画像の特徴量ベクトルを算出するのと同様の方法で、各検索対象画像の特徴量ベクトルを算出する。なお、特徴量ベクトルの次元数を削減する場合には、後述する入力画像の特徴量ベクトルと検索対象画像の特徴量ベクトルとの間の類似度の算出が適切に行えるように、入力画像特徴量算出部１３及び検索対象画像特徴量取得部１４は、入力画像の特徴量ベクトルと検索対象画像の特徴量ベクトルとそれぞれに対して同一の方法を用いて次元数を削減する。
【００３８】
検索対象画像特徴量取得部１４による検索対象画像の特徴量ベクトルの算出は、類似画像検索に先立って行われ得る。検索対象画像特徴量取得部１４は、類似画像検索を行う（入力画像が入力される）前に予め、検索対象画像の特徴量ベクトルを算出しておく。検索対象画像特徴量取得部１４は、算出して取得した検索対象画像の特徴量ベクトルを示す情報を検索部１５に出力する。
【００３９】
検索部１５は、入力画像の特徴量ベクトル、及び検索対象画像の特徴量ベクトルに基づいて、検索対象画像から入力画像に類似する画像を検索する機能部である。検索部１５は、入力画像の特徴量ベクトルと検索対象画像の特徴量ベクトルとの角度に応じた数値を算出して検索してもよい。検索部１５は、具体的には、以下のように検索を行う。
【００４０】
検索部１５は、検索対象画像特徴量取得部１４から検索対象画像の特徴量ベクトルを示す情報を入力して記憶しておく。検索部１５は、入力画像特徴量算出部１３から入力画像の特徴量ベクトルを示す情報を入力する。検索部１５は、入力画像の特徴量ベクトルと記憶した各検索対象画像の特徴量ベクトルとの類似度を算出する。類似度は、上記の属性を考慮した上で、入力画像が、どの程度、検索対象画像に類似（関連）しているかを示す指標値である。検索部１５は、指標値として、入力画像の特徴量ベクトルと検索対象画像の特徴量ベクトルとの角度に応じた数値を算出する。２つのベクトルの角度が小さいほど、入力画像が検索対象画像に類似していることを示す。
【００４１】
具体的には、検索部１５は、上記の角度に応じた数値として、入力画像の特徴量ベクトルと検索対象画像の特徴量ベクトルとのコサイン距離を算出する。ベクトルＡとベクトルＢとのコサイン距離ｃｏｓ（θ）は、以下の式によって算出される。
ｃｏｓ（θ）＝Ａ・Ｂ／｜Ａ｜｜Ｂ｜
【００４２】
コサイン距離の数値が大きいほど、入力画像が検索対象画像に類似していることを示し、コサイン距離の数値が小さいほど、入力画像が検索対象画像に類似していないことを示す。
【００４３】
類似度としては、コサイン距離以外のものも用いることができる。例えば、類似度として、ハミング距離、ユークリッド距離等の一般的な距離計算の手法を用いてもよい。
【００４４】
検索部１５は、類似度に基づいて、検索対象画像から入力画像に類似する画像を抽出する。例えば、検索部１５は、類似度が予め設定した閾値以上となっているか否かを判断し、類似度が閾値以上となっている検索対象画像を入力画像に類似する画像として抽出する。あるいは、検索部１５は、類似度が高い順に予め設定した数の検索対象画像を入力画像に類似する画像として抽出する。検索部１５は、入力画像に類似する画像として抽出した検索対象画像を示す情報を、検索結果として出力部１６に出力する。
【００４５】
出力部１６は、検索部１５による検索結果を示す情報を出力する機能部である。出力部１６は、例えば、入力画像に類似する画像として抽出された検索対象画像を示す情報を、検索結果としてユーザ端末に送信する。ユーザ端末に送信される情報の例を図５に示す。図５に示すように、当該情報には、入力画像に類似する検索対象画像の画像名及び画像ＵＲＬが含まれる。また、検索対象画像毎の類似度を示す情報が含められて、当該類似度が高い順に検索対象画像の情報が並べられる。例えば、ユーザ端末は、当該情報を受信し、当該情報に含まれる画像ＵＲＬに基づいて画像を取得して表示する。ユーザは、当該表示を参照することで入力画像に類似する画像を参照することができる。
【００４６】
また、類似画像検索装置１０に検索対象画像を記憶しておき、検索結果として検索対象画像を送信することとしてもよい。なお、類似画像検索は、検索対象画像の特徴量ベクトルさえあれば行うことができるので、類似画像検索を行う時点では、必ずしも検索対象画像を類似画像検索装置１０に記憶させておく必要はない。以上が、本実施形態に係る類似画像検索装置１０の機能である。
【００４７】
引き続いて、図６及び図７のフローチャートを用いて、本実施形態に係る類似画像検索装置１０で実行される処理（類似画像検索装置１０が行う動作方法）を説明する。まず、図６のフローチャートを用いて、類似画像検索の準備段階において実行される処理、即ち、類似画像検索が行われる前に予め実行される処理を説明する。
【００４８】
本処理では、まず、分類器生成部１１によって、学習用画像及び当該学習用画像に対応する複数のラベル情報が入力される（Ｓ０１）。続いて、分類器生成部１１によって、学習用画像及びラベル情報が用いられて分類器が生成される（Ｓ０２）。分類器は、各ラベル情報に対応する属性毎に生成される。生成された分類器は、入力画像特徴量算出部１３及び検索対象画像特徴量取得部１４に記憶される。
【００４９】
続いて、検索対象画像特徴量取得部１４によって、検索対象画像が入力される（Ｓ０３）。続いて、検索対象画像特徴量取得部１４によって、複数の分類器が用いられて、各検索対象画像について、属性（分類器）毎の特徴量ベクトルが算出される（Ｓ０４）。続いて、検索対象画像特徴量取得部１４によって、各検索対象画像について、属性毎の特徴量ベクトルが結合されて、検索対象画像の特徴量ベクトルが生成される（Ｓ０５）。生成された各検索対象画像の特徴量ベクトルは、検索部１５に記憶される。以上が、類似画像検索が行われる前に予め実行される処理である。
【００５０】
続いて、図７のフローチャートを用いて、類似画像検索が行われる際に実行される処理を説明する。本処理では、まず、画像入力部１２によって、入力画像が入力される（Ｓ１１）。続いて、入力画像特徴量算出部１３によって、複数の分類器が用いられて、入力画像について、属性（分類器）毎の特徴量ベクトルが算出される（Ｓ１２）。続いて、入力画像特徴量算出部１３によって、入力画像について、属性毎の特徴量ベクトルが結合されて、入力画像の特徴量ベクトルが生成される（Ｓ１３）。続いて、検索部１５によって、入力画像の特徴量ベクトル、及び検索対象画像の特徴量ベクトルに基づいて、検索対象画像から入力画像に類似する画像が検索される（Ｓ１４）。続いて、出力部１６によって、検索結果を示す情報が出力される（Ｓ１５）。以上が、類似画像検索が行われる際に実行される処理である。
【００５１】
本実施形態では、複数の異なる属性毎の分類器によって、入力画像の特徴量ベクトルが算出されて、当該特徴量ベクトルに基づいて、検索対象画像から入力画像に類似する画像が検索される。従って、本実施形態によれば、複数の属性を考慮して、画像の検索が行われる。通常、ユーザにとって画像が似ているかどうかは、一つの属性（観点）ではなく、複数の属性（観点）から判断される。例えば、ファッション雑誌に掲載されている服の画像であれば、服の色が類似していたとしても、服の種類、パターン及び柄が異なっていれば、ユーザはそれらが類似していると考えない。上述したように本実施形態では、服の画像であれば、種類、色、パターン及び柄等の類似を考慮して、類似画像検索が行われる。即ち、本実施形態では、ユーザの感覚に近い類似画像検索が行われる。従って、本実施形態によれば、精度の高い類似画像検索を行うことができる。具体的には例えば、ファッション雑誌に掲載されている服の画像に対して、精度の高い類似画像検索を行うことができる。
【００５２】
また、本実施形態のようにニューラルネットワークの中間層、特に出力層の１階層手前の中間層の数値を用いることとしてもよい。この構成によれば、更に精度の高い類似画像検索を行うことができる。
【００５３】
また、本実施形態のように特徴量ベクトルの次元数を削減することとしてもよい。この構成によれば、類似度の算出等の類似画像検索の処理負荷を軽減することができ、類似画像検索の処理速度が向上する。また、適切な次元数の削減を行うことで、更なる類似画像検索の精度向上も期待できる。
【００５４】
また、本実施形態のように学習を行って、分類器を構成する構成としてもよい。この構成によれば、確実に本発明を実施することができる。但し、分類器の生成は、必ずしも本発明に係る類似画像検索装置で行われる必要はなく、他の装置で生成された分類器を用いて、類似画像検索を行うこととしてもよい。
【００５５】
また、本実施形態のように、分類器毎の特徴量ベクトルの次元数に応じて、特徴量ベクトルの数値に重み付けを行うこととしてもよい。この構成によれば、適切な特徴量ベクトルを算出することができ、確実に精度の高い類似画像検索を行うことができる。
【００５６】
また、本実施形態のように検索対象画像を入力して、分類器を用いて、検索対象画像の特徴量ベクトルを算出することとしてもよい。この構成によれば、検索対象画像の特徴量ベクトルを示す情報を確実に取得することができ、確実に本発明を実施することができる。但し、検索対象画像の特徴量ベクトルの算出は、必ずしも本発明に係る類似画像検索装置で行われる必要はなく、他の装置で算出された検索対象画像の特徴量ベクトルを用いて、類似画像検索を行うこととしてもよい。
【００５７】
また、本実施形態のように、入力画像の特徴量ベクトルと検索対象画像の特徴量ベクトルとの角度に応じた数値を算出して検索することとしてもよい。この構成によれば、適切かつ確実に精度の高い類似画像検索を行うことができる。
【００５８】
なお、本実施形態では、服の画像を類似画像検索の対象としたが、服以外の種別の画像を類似画像検索の対象としてもよい。また、複数の種別の画像について、種別毎に類似画像検索を行えるようにしてもよい。
【００５９】
なお、上記実施の形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック（構成部）は、ハードウェア及び／又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的及び／又は論理的に結合した１つの装置により実現されてもよいし、物理的及び／又は論理的に分離した２つ以上の装置を直接的及び／又は間接的に(例えば、有線及び／又は無線)で接続し、これら複数の装置により実現されてもよい。
【００６０】
例えば、本発明の一実施の形態における類似画像検索装置１０は、本実施形態の類似画像検索装置１０の処理を行うコンピュータとして機能してもよい。図８は、本実施形態に係る類似画像検索装置１０のハードウェア構成の一例を示す図である。上述の類似画像検索装置１０は、物理的には、プロセッサ１００１、メモリ１００２、ストレージ１００３、通信装置１００４、入力装置１００５、出力装置１００６、バス１００７などを含むコンピュータ装置として構成されてもよい。
【００６１】
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。類似画像検索装置１０のハードウェア構成は、図に示した各装置を１つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
【００６２】
類似画像検索装置１０における各機能は、プロセッサ１００１、メモリ１００２などのハードウェア上に所定のソフトウェア（プログラム）を読み込ませることで、プロセッサ１００１が演算を行い、通信装置１００４による通信や、メモリ１００２及びストレージ１００３におけるデータの読み出し及び／又は書き込みを制御することで実現される。
【００６３】
プロセッサ１００１は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ１００１は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置（ＣＰＵ：Central  Processing  Unit）で構成されてもよい。例えば、類似画像検索装置１０の各機能部１１〜１６は、プロセッサ１００１を含んで実現されてもよい。
【００６４】
また、プロセッサ１００１は、プログラム（プログラムコード）、ソフトウェアモジュールやデータを、ストレージ１００３及び／又は通信装置１００４からメモリ１００２に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、類似画像検索装置１０の各機能部１１〜１６は、メモリ１００２に格納され、プロセッサ１００１で動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、１つのプロセッサ１００１で実行される旨を説明してきたが、２以上のプロセッサ１００１により同時又は逐次に実行されてもよい。プロセッサ１００１は、１以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
【００６５】
メモリ１００２は、コンピュータ読み取り可能な記録媒体であり、例えば、ＲＯＭ（Read  Only  Memory）、ＥＰＲＯＭ（Erasable  Programmable  ＲＯＭ）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ＲＯＭ）、ＲＡＭ（Random  Access  Memory）などの少なくとも１つで構成されてもよい。メモリ１００２は、レジスタ、キャッシュ、メインメモリ（主記憶装置）などと呼ばれてもよい。メモリ１００２は、本発明の一実施の形態に係る方法を実施するために実行可能なプログラム（プログラムコード）、ソフトウェアモジュールなどを保存することができる。
【００６６】
ストレージ１００３は、コンピュータ読み取り可能な記録媒体であり、例えば、ＣＤ−ＲＯＭ（Compact  Disc  ＲＯＭ）などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー（登録商標）ディスク、磁気ストリップなどの少なくとも１つで構成されてもよい。ストレージ１００３は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ１００２及び／又はストレージ１００３を含むデータベース、サーバその他の適切な媒体であってもよい。
【００６７】
通信装置１００４は、有線及び／又は無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア（送受信デバイス）であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。例えば、上述の類似画像検索装置１０の各機能部１１〜１６は、通信装置１００４を含んで実現されてもよい。
【００６８】
入力装置１００５は、外部からの入力を受け付ける入力デバイス（例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど）である。出力装置１００６は、外部への出力を実施する出力デバイス（例えば、ディスプレイ、スピーカー、LEDランプなど）である。なお、入力装置１００５及び出力装置１００６は、一体となった構成（例えば、タッチパネル）であってもよい。
【００６９】
また、プロセッサ１００１やメモリ１００２などの各装置は、情報を通信するためのバス１００７で接続される。バス１００７は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
【００７０】
また、類似画像検索装置１０は、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ：Digital  Signal  Processor）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＰＬＤ（Programmable  Logic  Device）、ＦＰＧＡ（Field  Programmable  Gate  Array）などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ１００１は、これらのハードウェアの少なくとも１つで実装されてもよい。
【００７１】
以上、本実施形態について詳細に説明したが、当業者にとっては、本実施形態が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本実施形態は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本実施形態に対して何ら制限的な意味を有するものではない。
【００７２】
本明細書で説明した各態様／実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【００７３】
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルで管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
【００７４】
判定は、１ビットで表される値（０か１か）によって行われてもよいし、真偽値（Boolean：trueまたはfalse）によって行われてもよいし、数値の比較（例えば、所定の値との比較）によって行われてもよい。
【００７５】
本明細書で説明した各態様／実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知（例えば、「Ｘであること」の通知）は、明示的に行うものに限られず、暗黙的（例えば、当該所定の情報の通知を行わない）ことによって行われてもよい。
【００７６】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【００７７】
また、ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線（ＤＳＬ）などの有線技術及び／又は赤外線、無線及びマイクロ波などの無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び／又は無線技術は、伝送媒体の定義内に含まれる。
【００７８】
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
【００７９】
なお、本明細書で説明した用語及び／又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。
【００８０】
また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。
【００８１】
上述したパラメータに使用する名称はいかなる点においても限定的なものではない。さらに、これらのパラメータを使用する数式等は、本明細書で明示的に開示したものと異なる場合もある。
【００８２】
移動通信端末は、当業者によって、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、アクセス端末、モバイル端末、ワイヤレス端末、リモート端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、またはいくつかの他の適切な用語で呼ばれる場合もある。
【００８３】
本明細書で使用する「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up)（例えば、テーブル、データベースまたは別のデータ構造での探索）、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)（例えば、情報を受信すること）、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)（例えば、メモリ中のデータにアクセスすること）した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。
【００８４】
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
【００８５】
「含む（include）」、「含んでいる（including）」、およびそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「または（or）」は、排他的論理和ではないことが意図される。
【００８６】
本明細書において、文脈または技術的に明らかに1つのみしか存在しない装置である場合以外は、複数の装置をも含むものとする。本開示の全体において、文脈から明らかに単数を示したものではなければ、複数のものを含むものとする。
【符号の説明】
【００８７】
１０…類似画像検索装置、１１…分類器生成部、１２…画像入力部、１３…入力画像特徴量算出部、１４…検索対象画像特徴量取得部、１５…検索部、１６…出力部、１００１…プロセッサ、１００２…メモリ、１００３…ストレージ、１００４…通信装置、１００５…入力装置、１００６…出力装置、１００７…バス。
【図１】
2018165926.tif 000003
【図２】
2018165926.tif 000004
【図３】
2018165926.tif 000005
【図４】
2018165926.tif 000006
【図５】
2018165926.tif 000007
【図６】
2018165926.tif 000008
【図７】
2018165926.tif 000009
【図８】
2018165926.tif 000010