【解決手段】 コンピュータシステムが実現するイメージ検索のためのフレームワークは、畳み込みニューラルネットワーク(CNN)から抽出された互いに異なる複数のグローバルディスクリプタを連結して学習するメインモジュール、および複数のグローバルディスクリプタのうちのいずれか1つの特定のグローバルディスクリプタを追加学習する補助モジュールを含む。
前記CNNは、与えられたイメージの特徴マップを提供するバックボーンネットワークとして、前記バックボーンネットワークの最後の段階以前にはダウンサンプリングを作動させない、
請求項1に記載のイメージ検索のためのフレームワーク。
前記CNNは、与えられたイメージの特徴マップを提供するバックボーンネットワークとして、前記バックボーンネットワークの最後の段階以前にはダウンサンプリングを作動させない、
請求項8に記載のディスクリプタ学習方法。
【背景技術】
【0002】
畳み込みニューラルネットワーク(CNN)を基盤としたイメージディスクリプタは、分類(classification)、オブジェクト検出(object detection)、セマンティックセグメンテーション(semantic segmentation)を含んだコンピュータビジョン技術において一般的なディスクリプタとして利用されている。この他にも、イメージキャプション(image captioning)やビジュアル質問応答(visual question answering)のように極めて意味のある研究にも利用されている。
【0003】
CNN基盤のイメージディスクリプタを活用する最近の研究では、ローカルディスクリプタマッチング(local descriptor matching)に依存する従来の方法の適用により、空間検証(spatial verification)によって再び順位を付ける即刻性のあるレベルイメージ検索に適用されている。
【0004】
イメージ検索(image retrieval)分野において、CNN以後にプーリング(average pooling、max pooling、generalized mean poolingなど)結果として出た特徴をグローバルディスクリプタ(global descriptor)として使用することがある。また、畳み込み層(convolution layers)以後に全結合層(FC層:fully connected layers)を追加し、FC層から出た特徴をグローバルディスクリプタとして使用することもある。ここで、FC層は、次元数(dimensionality)を減らすために使用されるものであるため、次元数を減らす必要がない場合にはFC層を省略してもよい。
【0005】
一例として、特許文献1(登録日2018年11月05日)には、畳み込みニューラルネットワークを利用した映像検索技術が開示されている。
【0006】
グローバルプーリング方法(global pooling method)によって生成された代表的なグローバルディスクリプタには、畳み込みの合計プーリング(SPoC:sum pooling of convolution)、畳み込みの最大活性化(MAC:maximum activation of convolution)、さらに一般化平均プーリング(GeM:generalized−mean pooling)が含まれる。各グローバルディスクリプタの性能はそれぞれ属性が異なるため、データセットによって異なる。例えば、SPoCはイメージ表現でより大きな領域を活性化させる反面、MACはより多くの集中領域を活性化させる。能力を高めるために、加重値合計プーリング(weighted sum pooling)、加重値GeM、領域(regional)MAC(R−MAC)などのような代表的なグローバルディスクリプタの変形が存在する。
【0007】
最近の研究は、イメージ検索のためのアンサンブル技法(ensemble techniques)に焦点を合わせている。従来には、複数の学習者(learner)を個別に教育し、モデルリードを使用して性能を高める従来のアンサンブル技法が主流であったが、最近では、個別に教育を受けた多様なグローバルディスクリプタを組み合わせて検索性能を向上させる接近方式が多く見られる。言い換えれば、現在には、イメージ検索分野において検索性能を高めるために、互いに異なるCNNバックボーン(backbone)モデルと複数のグローバルディスクリプタを組み合わせて(ensemble)使用している。
【0008】
しかし、アンサンブルのために互いに異なる学習者(CNNバックボーンモデルあるいはグローバルディスクリプタ)を明示的に訓練させるとなると、訓練時間が長くなる上にメモリ消耗量が増加する。これに加え、学習者間のダイバシティ(diversity)を統制するために特別にデザインされた戦略や損失が必要となるため、厳密かつ困難な訓練過程を招くようになる。
【発明を実施するための形態】
【0023】
以下、本発明の実施形態について、添付の図面を参照しながら詳しく説明する。
【0024】
本発明の実施形態は、イメージ検索のためのディープラーニングモデルのフレームワークに関し、より詳細には、イメージ検索のためのマルチグローバルディスクリプタを組み合わせる技術に関する。
【0025】
本明細書において具体的に開示される事項を含む実施形態は、エンドツーエンド方式によって訓練可能な複数のグローバルディスクリプタを活用することでアンサンブルと同様の効果を得ることができるフレームワークを提案するものであり、これによって柔軟性、拡張性、時間短縮、費用節減、検索性能などの側面において相当な長所を達成する。
【0026】
図1は、本発明の一実施形態における、コンピュータシステムの内部構成の一例を説明するためのブロック図である。例えば、本発明の実施形態に係るディスクリプタ学習システムは、
図1のコンピュータシステム100によって実現されてよい。
図1に示すように、コンピュータシステム100は、ディスクリプタ学習方法を実行するための構成要素として、プロセッサ110、メモリ120、永続的記録装置130、バス140、入力/出力インタフェース150、およびネットワークインタフェース160を含んでよい。
【0027】
プロセッサ110は、ディスクリプタ学習のための構成要素として命令語であるシーケンスを処理することのできる任意の装置を含んでもよいし、その一部であってもよい。プロセッサ110は、例えば、コンピュータプロセッサ、移動装置、または他の電子装置内のプロセッサおよび/またはデジタルプロセッサを含んでよい。プロセッサ110は、例えば、サーバコンピュータデバイス、サーバコンピュータ、一連のサーバコンピュータ、サーバファーム、クラウドコンピュータ、コンテンツプラットフォームなどに含まれてよい。プロセッサ110は、バス140を介してメモリ120に接続してよい。
【0028】
メモリ120は、コンピュータシステム100によって使用されるか、これから出力される情報を記録するための揮発性メモリ、永続的、仮想、またはその他のメモリを含んでよい。メモリ120は、例えば、RAM(random access memory)および/またはDRAM(dynamic RAM)を含んでよい。メモリ120は、コンピュータシステム100の状態情報のような任意の情報を記録するのに使用されてよい。メモリ120は、例えば、ディスクリプタ学習のための命令語を含むコンピュータシステム100の命令語を記録するのに使用されてよい。コンピュータシステム100は、必要によって、または適切な場合に、1つ以上のプロセッサ110を含んでよい。
【0029】
バス140は、コンピュータシステム100の多様なコンポーネント間の相互作用を可能にする通信基盤構造を含んでよい。バス140は、例えば、コンピュータシステム100のコンポーネント間、例えば、プロセッサ110とメモリ120との間でデータを運搬してよい。バス140は、コンピュータシステム100のコンポーネント間の無線および/または有線通信媒体を含んでよく、並列、直列、または他のトポロジ配列を含んでよい。
【0030】
永続的記録装置130は、(例えば、メモリ120に比べて)所定の延長された期間中にデータを記録するために、コンピュータシステム100によって使用されるもののようなメモリまたは他の永続的記録装置のようなコンポーネントを含んでよい。永続的記録装置130は、コンピュータシステム100内のプロセッサ110によって使用されるもののような非揮発性メインメモリを含んでよい。永続的記録装置130は、例えば、フラッシュメモリ、ハードディスク、光ディスク、または他のコンピュータ読み取り可能媒体を含んでよい。
【0031】
入力/出力インタフェース150は、キーボード、マウス、音声命令入力、ディスプレイ、または他の入力または出力装置に対するインタフェースを含んでよい。構成命令および/またはディスクリプタ学習のための入力が、入力/出力インタフェース150に受信されてよい。
【0032】
ネットワークインタフェース160は、近距離ネットワークまたはインターネットのようなネットワークに対する1つ以上のインタフェースを含んでよい。ネットワークインタフェース160は、有線または無線接続に対するインタフェースを含んでよい。構成命令および/またはディスクリプタ学習のための入力が、ネットワークインタフェース160に受信されてよい。
【0033】
また、他の実施形態において、コンピュータシステム100は、
図1の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータシステム100は、上述した入力/出力インタフェース150と連結する入力/出力装置のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ(transceiver)、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。
【0034】
本発明の実施形態は、互いに異なるグローバルディスクリプタを単一モデルによって一度に学習して使用することのできるディープラーニングモデルのフレームワークに関する。
【0035】
最近のイメージ検索研究において、深層学習CNNに基盤を置いたグローバルディスクリプタは、SIFT(Scale Invariant Feature Transform)のような従来技術よりも完全な特徴を有する。SPoC(sum pooling of convolution)は、CNNの最後の特徴マップで合計プーリング(sum pooling)を施したものである。MAC(maximum activation of convolution)は、また違った強力なディスクリプタである反面、R−MAC(regional−MAC)は、領域内の最大値プーリングを実行した後、最後に領域内のMACディスクリプタを合計する。GeM(generalized−mean pooling)は、プーリングパラメータによって最大および平均値プーリングを一般化する。他のグローバルディスクリプタ方法としては、weighted sum pooling、weighted−GeM、Multiscale R−MACなどがある。
【0036】
一部の研究では、特徴マップにおいて重要な特徴の活性化を最大化するために追加戦略(additional strategy)または注意機構(attention mechanism)を利用して試したり、他の領域の特徴表現を最適化するようにネットワークを強制するBFEという戦略を提示したりしている。また、特徴表現を同時に最適化するとともに、柔らかいピクセルと困難な領域的注意を有するモデルを適用したりもする。上述した技術には、ネットワークの大きさと訓練時間を増加させるだけでなく、訓練のために追加の媒介変数を要求するという短所がある。
【0037】
言い換えれば、イメージ検索作業に関する最近の研究は、互いに異なるモデルを組み合わせて複数のグローバルディスクリプタを組み合わせるものであるが、このようなアンサンブルのために互いに異なるモデルを訓練させることは困難なだけでなく、時間やメモリの側面においても効率的でない。
【0038】
本実施形態では、エンドツーエンド方式によって訓練する間、複数のグローバルディスクリプタを活用することでアンサンブルと同様の効果を得ることができる新たなフレームワークを提案する。本発明に係るフレームワークは、グローバルディスクリプタ、CNNバックボーン、損失、およびデータセットによって柔軟かつ拡張可能である。また、本発明に係るフレームワークは、訓練のために数種類の追加の媒介変数を要求するだけで、追加の戦略や注意機構は必要としない。
【0039】
アンサンブルとは、数名の学習者を訓練させることで成果を上昇させ、訓練された学習者から組み合わされた結果を得るという周知の技法であり、ここ数十年にわたってイメージ検索で広く利用されている。しかし、従来のアンサンブル技法は、モデルの複雑性の増加が演算費用の増加に繋がり、学習者間のダイバシティを算出するために追加の制御が必要となるという短所がある。
【0040】
本発明に係るフレームワークは、ダイバシティの統制なく、エンドツーエンド方式によって訓練されるときにアンサンブル技法のアイディアを活用することができる。
【0041】
図2は、本発明の一実施形態における、イメージ検索のためのCGD(combination of multiple global descriptors)フレームワークを示した図である。
【0042】
本発明に係るCGDフレームワーク200は、上述したコンピュータシステム100によって実現されてよく、ディスクリプタ学習のための構成要素としてプロセッサ110に含まれてよい。
【0043】
図2を参照すると、CGDフレームワーク200は、CNNバックボーンネットワーク201と、2つのモジュールであるメインモジュール210、および補助モジュール220で構成されてよい。
【0044】
このとき、メインモジュール210は、イメージ表現(image representation)を学習する役割をし、ランキング損失(ranking loss)のための複数のグローバルディスクリプタの組み合わせで構成される。補助モジュール220は、分類損失(classification loss)によってCNNを微調整するための役割をする。
【0045】
CGDフレームワーク200は、分類損失方式によるメインモジュール210からのランキング損失と補助モジュール220からの分類損失の合計である最終損失として訓練されてよい。
【0046】
1.CNNバックボーンネットワーク201
CNNバックボーンネットワーク201としては、すべてのCNNモデルが使用可能である。CGDフレームワーク200は、BN−Inception、ShuffleNet−v2、ResNet、またはこの他の変形モデルなどのようなCNNバックボーンが使用されてよく、例えば、
図2に示すように、ResNet−50がCNNバックボーンネットワーク201として使用されてよい。
【0047】
一例として、CNNバックボーンネットワーク201は、4段階からなるネットワークを利用してよく、このとき、最後の特徴マップ(feature map)でより多くの情報を記録するために、3段階(stage 3)と4段階(stage 4)の間のダウンサンプリングを作動させないことにより該当のネットワークを修正してよい。これにより、224×224の入力サイズに対する14×14サイズの特徴マップを提供するようになるため、個別グローバルディスクリプタの性能が向上するようになる。言い換えれば、グローバルディスクリプタの性能向上のために、ResNet−50の3段階(stage 3)以後から最後の段階(stage 4)以前まではダウンサンプリングを行わないことでより多くの情報が含まれるようにするのである。
【0048】
2.メインモジュール210:複数のグローバルディスクリプタ
メインモジュール210は、CNNバックボーンネットワーク201の最後の特徴マップにおいて複数の特徴総合(feature aggregation)方法によってグローバルディスクリプタを抽出し、FC層と正規化(normalization)を経る。
【0049】
メインモジュール210で抽出されたグローバルディスクリプタは連結され(concatenate)、正規化を経て1つの最終グローバルディスクリプタを形成してよい。このとき、最終グローバルディスクリプタは、ランキング損失によってインスタンスレベル(instance level)に学習される。ここで、ランキング損失は、メトリックラーニング(metric learning)のための損失と代替可能であり、代表的にはトリプレット(triplet)損失を使用してよい。
【0050】
より詳細には、メインモジュール210には、最後の畳み込み層で互いに異なるグローバルディスクリプタを使用して各イメージ表現を出力する複数のブランチ(分岐、branch)が含まれる。一例として、メインモジュール210は、SPoC(sum pooling of convolution)、MAC(maximum activation of convolution)、GeM(generalized−mean pooling)を含み、各ブランチで最も代表的なグローバルディスクリプタの3つの類型を使用する。
【0051】
メインモジュール210に含まれるブランチの個数は、増減可能であり、ユーザのニーズに合うように使用しようとするグローバルディスクリプタを変形したり組み合わせたりしてよい。
【0052】
イメージIが与えられたとき、最後の畳み込み層の出力は、C×H×W次元の3Dテンソル(tensor)xとなるが、ここで、Cは特徴マップの個数である。x
cを特徴マップc∈{1...C}のH×W活性化セットであると仮定する。ネットワーク出力は、2D特徴マップのCチャンネルで構成される。グローバルディスクリプタはxを入力として使用し、プーリングプロセスによる出力としてベクトルfを生成する。このようなプーリング方法は、数式(1)のように一般化してよい。
【0054】
p
c=1のときにはSPoCをf
(s)、p
c→∞のときにはSPoCをf
(m)として定義し、残りの場合に対してGeMをf
(m)として定義する。GeMの場合、実験によって固定されたp
cパラメータ3を使用してよく、実施形態によっては、パラメータp
cをユーザが手動で設定してもよいし、パラメータp
c自体を学習してもよい。
【0056】
【数2】
は、FC層による次元減少およびl
2−正規化(normalization)層による正規化によって生成される。
【0058】
i∈{1...n}とするとき、nはブランチの数であり、W
iはFC層の加重値であって、グローバルディスクリプタ
【0059】
【数4】
は、a
i=sのときにSPoC、a
i=mのときにMAC、a
i=gのときにGeMであってよい。
【0060】
本発明に係るCGDフレームワーク200の組み合わせディスクリプタψCGDの最終特徴ベクトルは、多様なブランチの出力特徴ベクトルを連結し、順にl
2−正規化を実行する。
【0063】
【数6】
は連結(concatenation)である。
【0064】
このような組み合わせディスクリプタは、どのような類型のランキング損失であっても訓練可能であり、一例として、batch−hard triplet損失を代表的に使用する。
【0065】
CGDフレームワーク200では、多数のグローバルディスクリプタを組み合わせることで2つの長所が得られる。1つ目に、数種類の追加の媒介変数だけでアンサンブルと同様の効果が得られる。上述した研究と同じようにアンサンブル効果が得られるが、これをエンドツーエンド方式によって訓練できるようにするために、CGDフレームワーク200は、単一のCNNバックボーンネットワーク201から複数のグローバルディスクリプタを抽出している。2つ目に、ダイバシティの統制がなくても、各ブランチの出力に対して自動で他の属性を提供する。最近の研究では、学習者間のダイバシティを奨励するために特別にデザインされた損失を提案しているが、CGDフレームワーク200は、ブランチ間のダイバシティを統制するために特別にデザインされた損失は要求しない。
【0066】
グローバルディスクリプタに対する複数の組み合わせの性能を比較実験することにより、ディスクリプタ組み合わせを見つけ出せるようになる。ただし、データごとに出力特徴次元による性能の差が大きくない場合がある。例えば、SPoC 1536次元と768次元の性能が大きくなければ、SPoC 1536次元(単一グローバルディスクリプタ)よりもSPoC 768次元+GeM 768次元(マルチグローバルディスクリプタ)の組み合わせを使用する方が、より優れた性能を得ることができる。
【0067】
3.補助モジュール220:分類損失
補助モジュール220は、エンベディングの範疇レベル(categorical level)で学習するために、メインモジュール210の1番目のグローバルディスクリプタから出力されるイメージ表現を分類損失によって学習してよい。このとき、分類損失を利用した学習時の性能向上のために、ラベルスムージング(label smoothing)と温度スケーリング(temperature scaling)技術が適用されてよい。
【0068】
言い換えれば、補助モジュール220は、補助分類損失を利用することにより、メインモジュール210の1番目のグローバルディスクリプタを基盤としてCNNバックボーンを微調整する。補助モジュール220は、メインモジュール210に含まれるグローバルディスクリプタのうちの1番目のグローバルディスクリプタから出るイメージ表現を分類損失によって学習してよい。これは、2つの段階で構成された接近法によるものであり、これは、CNNバックボーンを分類損失とともに微調整して畳み込みフィルタを改善した後、ネットワークを微調整してグローバルディスクリプタの性能を改善する。
【0069】
CGDフレームワーク200では、このような処理方式を修正することにより、エンドツーエンド訓練のための単一の段階を有するようにする。補助分類損失のある訓練は、等級間の分離属性を有するイメージ表現を可能とし、ランキング損失だけに対して使用するよりも、ネットワークをより迅速かつ安定に訓練できるようにサポートする。
【0070】
ソフトマックス交差エントロピー損失(softmax loss)における温度スケーリングとラベルスムージングは、分類損失訓練をサポートするものであり、ソフトマックス損失は数式(4)のように定義される。
【0072】
ここで、N、M、y
iはそれぞれ、配置の大きさ、クラスの個数、およびi番目の入力のIDラベルを意味する。Wとbはそれぞれ、訓練可能な加重値とバイアス(bias)である。さらに、fは、1番目のブランチのグローバルディスクリプタであるが、ここで、Tは、基本値(default value)1の温度パラメータである。
【0073】
数式(4)で温度パラメータTを使用した温度スケーリングは、さらに困難な例にさらに大きな勾配(gradient)を割り当てることで、クラス内のコンパクトおよびクラス間のスプレッド−アウトエンベディングに有用となる。ラベルスムージングは、モデルを強化し、訓練中のラベルドロップアウトの限界効果を推定して一般化を改善する。したがって、オーバーフィッティングを防いでより優れたエンベディング方法を学習するために、補助分類損失にラベルスムージングと温度スケーリングを追加する。
【0074】
分類損失計算のための1番目のグローバルディスクリプタは、各グローバルディスクリプタの性能を考慮した上で決定してよい。一例として、組み合わせに使用しようとするグローバルディスクリプタを単一ブランチとして使用して学習を進めた後、その中でも性能が優れたグローバルディスクリプタを分類損失計算のための1番目のグローバルディスクリプタとして使用してよい。例えば、SPoC、MAC、GeMをそれぞれ学習した結果性能がGeM>SPoC>MACとなれば、GeM+MACの組み合わせがMAC+GeMの組み合わせよりもより優れた性能を出す傾向にあるため、これを考慮した上で、GeMを分類損失計算のためのグローバルディスクリプタとして使用してよい。
【0075】
4.フレームワーク構成
CGDフレームワーク200は、グローバルディスクリプタのブランチの個数によって拡張されてよく、グローバルディスクリプタの構成によって他の類型のネットワークを許容する。例えば、3個のグローバルディスクリプタ(SPoC、MAC、GeM)を使用し、補助分類損失に対して単独で最初のグローバルディスクリプタを使用するため12個の可能な構成を生成してよい。
【0076】
説明の便宜のために、SPoCはS、MACはM、GeMはGと略称し、表記のうちの1番目の文字は、補助分類損失に使用される1番目のグローバルディスクリプタを意味する。CGDフレームワーク200は、1つのCNNバックボーンネットワーク201から3種類のグローバルディスクリプタS、M、Gを抽出してよく、このとき、グローバルディスクリプタS、M、Gを基準として12種の構成が可能となる(S、M、G、SM、MS、SG、GS、MG、GM、SMG、MSG、GSM)。すべてのグローバルディスクリプタの組み合わせがランキング損失によって学習され、1番目のグローバルディスクリプタだけが分類損失によって付加的に学習されてよい。例えば、SMGの場合、グローバルディスクリプタのSだけが分類損失によって付加的に学習され、すべてのS、M、およびGの組み合わせ(SM、MS、SG、GS、MG、GM、SMG、MSG、GSM)はランキング損失によって学習される。
【0077】
したがって、複数のグローバルディスクリプタをアンサンブルするために複数のモデルを別途で学習する従来の方法とは異なり、本発明は、1つのモデルだけをエンドツーエンドによって学習することで、アンサンブルと同様の効果を得ることができる。従来の方法は、アンサンブルのために別途で製作された損失によってダイバシティを統制する反面、本願の方法は、ダイバシティの統制がなくてもアンサンブルと同様の効果を得ることができる。本発明によると、最終グローバルディスクリプタをイメージ検索に使用してよく、必要によっては、より小さな次元を使用するために連結(concatenate)直前のイメージ表現を使用してよい。ユーザのニーズによって多様なグローバルディスクリプタの使用が可能であり、グローバルディスクリプタの個数を調節してモデルを拡張および縮小することが可能である。
【0078】
上述したCGDフレームワーク200の実施例は、次のとおりとなる。
【0079】
イメージ検索のためのデータセットとして、文献“C.Wah,S.Branson,P.Welinder,P.Perona,and S.Belongie.The caltech−ucsd birds−200−2011 dataset.2011.”で利用されたデータセット(CUB200)と、文献“J.Krause,M.Stark,J.Deng,and L.Fei−Fei.3d objectrepresentations for fine−grained categorization.In Proceedings of the IEEE International Conference on Computer Vision Workshops,pages 554−561,2013.”で利用されたデータセット(CARS196)を利用しながら、本発明に係るCGDフレームワーク200を評価する。CUB200とCARS196の場合、境界ボックス(bounding box)情報のある切り取られた映像を使用する。
【0080】
すべての実験は、24GBメモリのTesla P40 GPUでMXNetを使用して実行される。さらに、MXNet GluonCVのImageNet ILSVRC事前加重値とともに、BNInception、ShuffleNet−v2、ResNet−50、SEResNet−50を使用する。すべての実験において、224×224の入力サイズと1536次元のエンベディングを使用する。訓練段階において、入力映像は252×252に調整し、任意で224×224に切った後、水平にランダムでフリップする。学習速度が1e−4であるアダムオプティマイザを用い、学習速度をスケジューリングするのに段階的減衰が使用される。すべての実験において、triplet損失のマージンmは0.1であり、ソフトマックス損失の温度は0.5である。配置の大きさはすべてのデータセットに128個が使用され、クラスあたりのインスタンスはCARS196、CUB200に64個が使用され、基本入力サイズである224×224にのみイメージサイズを調整する。
【0081】
1.アキテクチャデザイン実験
(1)訓練順位と分類損失
分類損失
CGDフレームワーク200は、1番目のグローバルディスクリプタの分類損失とともに、ランキング損失によって訓練される。
図3のテーブルは、CARS196でランキング損失だけを使用する場合(Rank)と、補助分類損失とランキング損失の両方を使用する場合(Both)の成果を比べたものである。この実験では、ラベルスムージングと温度スケーリングを、すべての場合に分類損失には適用しない。これは、2つの損失をすべて使用する方が、ランキング損失を単独で使用するよりもさらに高い性能を提供するということを立証する。分類損失は、範疇型水準で各クラスを閉鎖されたエンベディング空間にクラスタリングすることに焦点を合わせる。ランキング損失は、同じ等級でサンプルを収集し、インスタンスレベルの互いに異なる等級でサンプル間の距離を置くことに焦点を合わせる。したがって、ランキング損失を補助分類損失とともに訓練すれば、範疇型および細分化された特徴エンベディングに対する最適化が改善される。
【0082】
ラベルスムージングおよび温度スケーリング
図4のテーブルは、CARS196でラベルスムージングと温度スケーリングの両方とも使用しない場合(notrick)(None)、ラベルスムージングを使用する場合(LS)、温度スケーリングを使用する場合(TS)、さらにラベルスムージングと温度スケーリングの両方を使用する場合(bothtricks)(Both)の成果を比べたものである。これは、グローバルディスクリプタSMを使用してResNet−50バックボーンで実行され、各ラベルスムージングと温度スケーリングを使用する方が、「notricks」に比べて性能が向上することを示している。さらに、ラベルスムージングと温度スケーリングをともに適用すれば、それぞれの性能が向上し、最高の性能が得られるようになることが分かる。
【0083】
(2)マルチグローバルディスクリプタの組み合わせ
組み合わせの位置
CGDフレームワーク200は、複数のグローバルディスクリプタを使用するため、最高のアキテクチャを選択するために複数のグローバルディスクリプタの組み合わせの他の位置によって実験を行う。
【0084】
図5は、マルチグローバルディスクリプタを訓練するための第1類型のアキテクチャを示しており、
図6は、マルチグローバルディスクリプタを訓練するための第2類型のアキテクチャを示している。
【0085】
図5に示すように、第1類型のアキテクチャは、各グローバルディスクリプタを個別のランキング損失によって訓練させた後、推論段階において組み合わせるが、各ブランチに対して同じグローバルディスクリプタを使用し、分類損失は使用しない。
【0086】
一方、
図6に示した第2類型のアキテクチャは、グローバルディスクリプタの遠眼出力を組み合わせて単一ランキング損失によって訓練するが、複数のグローバルディスクリプタは使用しない。
【0087】
この反面、本発明に係るCGDフレームワーク200は、
図2に示すように、FC層以後の多数のグローバルディスクリプタとl
2−正規化を組み合わせる。
【0088】
図7のテーブルは、CUB200でグローバルディスクリプタSMを使用するものであり、CGDフレームワークの性能を第1類型のアキテクチャAおよび第2類型のアキテクチャBと比べたものである。CGDフレームワークの性能が最も高いことが分かる。
【0089】
第2類型のアキテクチャBは、複数のブランチ特性と出力特徴ベクトルのダイバシティを含んでいる。CGDフレームワークとは対照的に、訓練段階において第1類型のアキテクチャAの最終エンベディングは、推論段階とは異なり、第2類型のアキテクチャBの最終エンベディングは、連結後のFC層によってグローバルディスクリプタの各属性を失う。
【0090】
組み合わせ方法
組み合わせ方法の観点において、多数のグローバルディスクリプタの連結(concatenation)と要約(summation)は、モデル成果を向上させる。したがって、本発明に係るCGDフレームワークは、2つの組み合わせ方法を比べ、より優れた方法を選択してよい。
【0091】
図8のテーブルは、CUB200でグローバルディスクリプタSMを使用するものであり、組み合わせ方法である要約方法(Sum)と連結方法(Concat)の成果を比べたものである。多数のグローバルディスクリプタの連結方法(Concat)は、要約方法(Sum)に比べてより優れた性能を提供する。要約方法(Sum)は、グローバルディスクリプタの活性化が互いに混合するため(mix)各グローバルディスクリプタの特性を失うことがある反面、連結方法(Concat)は、各グローバルディスクリプタの属性を記録してダイバシティを保持することができる。
【0092】
2.組み合わせディスクリプタの効果
(1)定量分析
本発明に係るCGDフレームワークの核心は、マルチグローバルディスクリプタを活用することにある。CGDフレームワークが補助分類損失に温度スケーリングを使用する各イメージ検索データセットに対し、12種類の可能な構成を実験する。
【0093】
図9は、CARS196に対するCGDフレームワークの多様な構成の性能を比べたものであり、
図10は、CUB200に対するCGDフレームワークの多様な構成の性能を比べたものである。本実験は、クラスあたり100個のインスタンスをサンプリングしたテストセットを利用した。ディープラーニングモデルの不確実性により、箱ひげ図を用いて10回以上の結果を示した。
【0094】
図9および
図10を参照すると、組み合わせディスクリプタ(SG、GSM、SMG、SM、GM、GS、MS、MSG、MG)が、単一グローバルディスクリプタ(S、M、G)よりも超越した性能を示すことが分かる。CUB200の場合、単一グローバルディスクリプタGとMは相対的に高い性能を示す反面、最高の性能構成は組み合わせディスクリプタMGである。性能は、データセットの属性、分類損失に使用される特徴、入力の大きさ、および出力次元などによって異なる。主な本質は、多数のグローバルディスクリプタを活用すれば、単一グローバルディスクリプタに比べて性能が向上するということにある。
【0095】
図11のテーブルは、CARS196に対する組み合わせディスクリプタ(SG、GSM、SMG、SM、GM、GS、MS、MSG、MG)と単一グローバルディスクリプタ(S、M、G)の性能を比べたものである。個別ディスクリプタは、各ブランチの出力特徴ベクトルを意味する。組み合わせディスクリプタは、CGDフレームワークの最終特徴ベクトルである。
【0096】
図11は、組み合わせ前の個別グローバルディスクリプタの性能と組み合わせ後に算出される性能向上の程度を示したものである。すべての組み合わせディスクリプタは、1536次元エンベッドベクトルを有している反面、それぞれの個別ディスクリプタは、SM、MS、SG、GS、MG、GMのための1536次元エンベッドベクトルとSMG、MSG、GS、MG、GS、GMのための512次元のエンベッドベクトルを有している。より大きなエンベッドベクトルの殆どは、より優れた性能を提供する。しかし、大きなエンベッドと小さなインベットとの性能の差が大きくない場合、異なるグローバルディスクリプタの多数の小さなエンベッドを使用する方が好ましいことがある。例えば、768次元のエンベッドSGの個別ディスクリプタGeMは、1536次元のエンベッドの単一ディスクリプタGと類似の性能を有しているため、SGはSPCとGeMの他の特徴を組み合わせて大きな性能向上を得る。
【0097】
3.CGDフレームワークの柔軟性
図12は、本発明に係るCGDフレームワークが多様なランキング損失(batch−hard triplet損失、HAP2S損失、加重サンプリングマージン損失など)を使用できることを示したものである。単一グローバルディスクリプタSとマルチグローバルディスクリプタSMの性能を比べるとき、すべての場合において、マルチグローバルディスクリプタSMの性能の方が単一グローバルディスクリプタSよりも優れるという点において、多様な損失を適用することができ、柔軟であるということが分かる。
【0098】
ランキング損失の他にも、本発明に係るCGDフレームワークは、多様な種類のCNNバックボーンネットワークはもちろん、多様なイメージ検索データセットを適用してよい。マルチグローバルディスクリプタを適用したCGDフレームワークは、大部分のバックボーンやデータセットにおいて、従来のモデルよりもさらに高い性能を提供する。
【0099】
このように、本発明の実施形態によると、複数のグローバルディスクリプタを組み合わせた新たなフレームワーク、すなわち、分類損失方式によって訓練可能な多数のグローバルディスクリプタを組み合わせたCGDを適用することにより、各グローバルディスクリプタに対する明示的なアンサンブルモデルやダイバシティの統制がなくても、アンサンブルと同様の効果を達成することができる。本発明に係るCGDフレームワークは、グローバルディスクリプタ、CNNバックボーン、損失、およびデータセットによって柔軟かつ拡張可能な特性を備え、組み合わせディスクリプタを使用することによって他の類型の特徴を使用することが可能になるため、単一グローバルディスクリプタよりも性能が優れる上に、イメージ検索性能を向上させることもできる。
【0100】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0101】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置に具現化されてよい。ソフトウェアは、ネットワークに接続したコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に格納されてよい。
【0102】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。ここで、媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例は、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD−ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。
【0103】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって代替されたり置換されたとしても、適切な結果を達成することができる。
【0104】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。