(57)【要約】第１プロセッサと、少なくとも１つのメモリモジュールと、を有するプロセッサインメモリ（ＰＩＭ）システムにおいて検索を実行する方法及び装置は、第１プロセッサが１つ以上の画像を受信するステップを含む。第１プロセッサは、画像を１つ以上の画像とマッチングするためのメモリの検索についてのクエリを、少なくとも１つのメモリモジュールに送信し、少なくとも１つのメモリモジュールは、受信したクエリに応じて、メモリモジュール内のメモリを検索する。少なくとも１つのメモリモジュールは、検索結果を第１プロセッサに送信し、第１プロセッサは、少なくとも１つのメモリモジュールから受信した結果と、受信した１つ以上の画像との比較を実行する。【選択図】図４
2019502982.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサと、少なくとも１つのメモリモジュールと、を有するプロセッサインメモリ（ＰＩＭ）システムにおいて実行される方法であって、
前記第１プロセッサが１つ以上の画像を受信するステップと、
前記第１プロセッサが、画像を前記１つ以上の画像とマッチングするためのメモリの検索に関するクエリを、前記少なくとも１つのメモリモジュールに送信するステップと、
前記少なくとも１つのメモリモジュールが、受信したクエリに応じて、前記メモリモジュール内のメモリに記憶された画像の検索を実行するステップと、
前記少なくとも１つのメモリモジュールが、検索結果を前記第１プロセッサに送信するステップと、
前記第１プロセッサが、前記少なくとも１つのメモリモジュールから受信した結果と、受信した前記１つ以上の画像との比較を実行するステップと、を含む、
方法。
【請求項２】
前記少なくとも１つのメモリモジュールの前記メモリに記憶された画像をアップロード及び分類するステップを更に含む、請求項１の方法。
【請求項３】
同一のクラスからアップロードされた画像は、複数のメモリモジュールに記憶される、請求項２の方法。
【請求項４】
同一のクラスからアップロードされた画像は、同一のメモリモジュールに記憶される、請求項２の方法。
【請求項５】
前記少なくとも１つのメモリモジュールによって実行される画像の検索は、グローバルディスクリプタの計算、ローカルディスクリプタの計算、及び、検証判定を実行するステップを含む、請求項１の方法。
【請求項６】
前記第１プロセッサによる受信結果の比較は、前記少なくとも１つのメモリモジュールから受信した受信結果をランク付けするステップを含む、請求項１の方法。
【請求項７】
前記第１プロセッサが、複数のメモリモジュールから受信した結果の最終的なランクを構築するステップを更に含む、請求項６の方法。
【請求項８】
１つ以上の画像を受信するように構成された回路と、
画像を前記１つ以上の画像とマッチングするためのメモリの検索についてのクエリを、少なくとも１つのメモリモジュールに送信するように構成された回路と、
受信したクエリに応じて、前記少なくとも１つのメモリモジュールから、前記メモリモジュール内のメモリに記憶された画像の検索結果を受信するように構成された回路と、
前記少なくとも１つのメモリモジュールから受信した結果と、受信した前記１つ以上の画像との比較を実行するように構成された回路と、を備える、
プロセッサ。
【請求項９】
前記少なくとも１つのメモリモジュールの前記メモリに記憶された画像をアップロード及び分類するように構成された回路を更に含む、請求項８のプロセッサ。
【請求項１０】
前記少なくとも１つのメモリモジュールから受信した受信結果をランク付けするように構成された回路を更に含む、請求項８のプロセッサ。
【請求項１１】
複数のメモリモジュールから受信した結果の最終的なランクを構築するように構成された回路を更に含む、請求項１０のプロセッサ。
【請求項１２】
プロセッサと、
少なくとも１つのメモリモジュールと、を備えるシステムであって、
前記プロセッサは、
１つ以上の画像を受信するように構成された回路と、
画像を前記１つ以上の画像とマッチングするためのメモリの検索についてのクエリを、前記少なくとも１つのメモリモジュールに送信するように構成された回路と、
前記メモリモジュール内のメモリに記憶された画像の検索結果を前記少なくとも１つのメモリモジュールから受信するように構成された回路と、
前記少なくとも１つのメモリモジュールから受信した結果と、受信した前記１つ以上の画像との比較を実行するように構成された回路と、を含み、
前記少なくとも１つのメモリモジュールは、
受信したクエリに応じて、前記メモリモジュール内のメモリに記憶された画像の検索を実行するように構成された回路と、
検索結果を前記プロセッサに送信するように構成された回路と、を含む、
システム。
【請求項１３】
前記プロセッサは、前記少なくとも１つのメモリモジュールの前記メモリに記憶された画像をアップロード及び分類するように構成された回路を更に含む、請求項１２のシステム。
【請求項１４】
同一のクラスからアップロードされた画像は、複数のメモリモジュールに記憶される、請求項１３のシステム。
【請求項１５】
同一のクラスからアップロードされた画像は、同一のメモリモジュールに記憶される、請求項１３のシステム。
【請求項１６】
前記少なくとも１つのメモリモジュールによって実行される画像の検索は、グローバルディスクリプタの計算、ローカルディスクリプタの計算、及び、検証判定を実行することを含む、請求項１２のシステム。
【請求項１７】
前記プロセッサは、前記少なくとも１つのメモリモジュールから受信した受信結果をランク付けするように構成された回路を更に含む、請求項１２のシステム。
【請求項１８】
前記プロセッサは、複数のメモリモジュールから受信した結果の最終的なランクを構築するように構成された回路を更に含む、請求項１７のシステム。
【請求項１９】
第１プロセッサと、複数のメモリモジュールと、を有するプロセッサインメモリ（ＰＩＭ）システムにおいて実行される方法であって、
１つ以上の画像を、これらの画像データによってアップロード及び分類するステップと、
前記画像データの分類に基づいて、前記画像を分割して前記複数のメモリモジュールに記憶するステップと、
前記第１プロセッサが、１つ以上のクエリ画像を受信するステップと、
前記第１プロセッサが、画像を前記１つ以上のクエリ画像とマッチングするためのメモリの検索に関するクエリを、前記複数のメモリモジュールに送信するステップと、
前記複数のメモリモジュールの各々が、受信したクエリに応じて、そのメモリモジュール内のメモリに記憶された画像の検索を実行するステップと、
前記複数のメモリモジュールの各々が、検索結果を前記第１プロセッサに送信するステップと、
前記第１プロセッサが、前記複数のメモリモジュールから受信した結果と、受信した１つ以上の画像との比較を実行するステップと、を含む、
方法。
【請求項２０】
同一のクラスからアップロードされた画像は、同一のメモリモジュールに記憶される、請求項１９の方法。
【請求項２１】
同一のクラスからアップロードされた画像は、前記複数のメモリモジュールに分配される、請求項１９の方法。
【請求項２２】
前記同一のクラスからアップロードされた画像は、隣接するメモリモジュールに分配される、請求項２１の方法。
【請求項２３】
前記複数のメモリモジュールによって実行される画像の検索は、グローバルディスクリプタの計算、ローカルディスクリプタの計算、及び、検証判定を実行するステップを含む、請求項１９の方法。
【請求項２４】
グローバルディスクリプタの計算は、前記１つ以上のクエリ画像と、前記１つ以上のクエリ画像と同一のクラスに存在するものとしてカテゴリ化されたメモリモジュール内のメモリに記憶された画像と、を比較するステップを含む、請求項２３の方法。
【請求項２５】
類似度測定値を計算し、前記類似度測定値を閾値と比較するステップを更に含む、請求項２４の方法。
【請求項２６】
前記類似度測定値が前記閾値を超える場合に、ローカルディスクリプタが計算される、請求項２５の方法。
【請求項２７】
命令を記憶するコンピュータ可読記憶媒体であって、
前記命令は、コンピューティングデバイスによって実行されると、
１つ以上の画像を受信するステップと、
画像を前記１つ以上の画像とマッチングするためのメモリの検索に関するクエリを送信するステップと、
受信したクエリに応じて、メモリモジュール内のメモリに記憶された画像の検索を実行するステップと、
検索結果を第１プロセッサに送信するステップと、
前記メモリモジュールから受信した結果と、受信した前記１つ以上の画像と、の比較を実行するステップと、
を含む動作を前記コンピューティングデバイスに実行させる、
コンピュータ可読記憶媒体。
【請求項２８】
前記メモリモジュールの前記メモリに記憶された画像をアップロード及び分類するステップを更に含む、請求項２７のコンピュータ可読記憶媒体。
【請求項２９】
同一のクラスからアップロードされた画像は、複数のメモリモジュールに記憶される、請求項２８のコンピュータ可読記憶媒体。
【請求項３０】
同一のクラスからアップロードされた画像は、同一のメモリモジュールに記憶される、請求項２８のコンピュータ可読記憶媒体。
【請求項３１】
画像の検索は、グローバルディスクリプタの計算、ローカルディスクリプタの計算、及び、検証判定を実行するステップを含む、請求項２７のコンピュータ可読記憶媒体。
【請求項３２】
受信した結果の比較は、受信した結果をランク付けするステップを含む、請求項２７のコンピュータ可読記憶媒体。
【請求項３３】
複数のメモリモジュールから受信した結果の最終的なランクを構築するステップを更に含む、請求項３２のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２０１５年１１月２３日に出願された米国特許出願第１４／９４８，８９２号の利益を主張するものであり、この内容は、本明細書中に完全に記載されているように参照により援用される。
【０００２】
本発明は、概して、検索動作を実行することに関し、より詳細には、並列検索動作を実行する方法及び装置に関する。
【背景技術】
【０００３】
デジタルカメラ、及び、それが組み込まれた携帯電話の発明は、これまで以上に多数の写真が撮影され記憶される時代を迎えた。人々は、数百、更には数千もの写真を撮影し、どのような画像を有しているか把握することができないレベルで画像をメモリ（例えば、コンピュータ等）にアップロードしている。したがって、特に従来の方法を用いて、特定の画像がメモリに記憶されているか否かを調べるためにメモリを検索することは、非常に困難な作業となり得る。
【０００４】
従来の大規模なウェブ画像検索は、概して、テキストの「バグオブワード（bag of words）」方式を利用して実行される。すなわち、画像はテキスト記述（すなわち、バグオブワード）を含む。テキスト検索が開始され（オプションで幾何学的検証又は画像検証も含まれ）、開始されたテキスト検索に基づいて画像が返される。「バグオブワード」アプローチは、ユーザが提供するメタデータ又はオブジェクトのラベル付け及び認識の精度に大きく依存する。画像の特徴は、テキストの単語の説明にタグ付けされ又は翻訳される必要がある。多くの場合、ユーザが写真をアップロードすると、画像は、例えばアップロード中にカメラによって一般名が与えられた状態でアップロードされる。ユーザは、正確なテキスト記述でメモリに記憶された全ての画像の名前を常に変更するとは限らないので、特定のタイプの画像を検索することが問題になる。
【０００５】
また、大規模なマルチメディア検索は、テキスト検索の領域が比較的成熟して良好に確立された後に、検索エンジン及びソーシャルネットワーキングのサイトが取り組もうとしている問題である。マルチメディアデータの量が増大するにつれ、（例えば、サービス品質及びエネルギー消費の両面で）効率的な、画像データセット内の画像検索、又は、非構造化データ若しくはビデオが混在した画像検索は、シーン／オブジェクト認識／再構成、著作権攻撃検出、ロボット視覚、広告配置等の目的で重要となっている。さらに、ウェブスケールの画像検索をサポートすることは、多くの電力消費を伴う重要なハードウェアを必要とする場合があるので、費用がかかる場合がある。
【０００６】
したがって、画像自体の特性に基づいて画像を検索するという画像検索を実行する方法及び装置を提供することが有益となるであろう。
【発明の概要】
【課題を解決するための手段】
【０００７】
画像検索を実行する方法に関する実施形態が開示される。この方法は、第１プロセッサと、少なくとも１つのメモリモジュールと、を有し、前記第１プロセッサが１つ以上の画像を受信するプロセッサインメモリ（ＰＩＭ）システムにおいて検索を実行するステップを含む。ホストプロセッサは、画像を１つ以上の画像とマッチングするためのメモリの検索に関するクエリを、少なくとも１つのメモリモジュールに送信し、少なくとも１つのメモリモジュールは、受信したクエリに応じて、メモリモジュール内のメモリを検索する。少なくとも１つのメモリモジュールは、検索結果を第１プロセッサに送信し、第１プロセッサは、少なくとも１つのメモリモジュールから受信した結果と、受信した１つ以上の画像との比較を実行する。
【０００８】
プロセッサに関する実施形態が開示される。プロセッサは、１つ以上の画像を受信するように構成された回路と、画像を１つ以上の画像とマッチングするためのメモリの検索に関するクエリを、少なくとも１つのメモリモジュールに送信するように構成された回路と、を含む。プロセッサは、受信したクエリに応じて、メモリモジュール内のメモリに記憶された画像の検索結果を少なくとも１つのメモリモジュールから受信するように構成された回路と、少なくとも１つのメモリモジュールから受信した結果と、受信した１つ以上の画像との比較を実行するように構成された回路と、を含む。
【０００９】
システムに関する実施形態が開示される。このシステムは、プロセッサと、少なくとも１つのメモリモジュールと、を含む。プロセッサは、１つ以上の画像を受信するように構成された回路と、画像を１つ以上の画像とマッチングするためのメモリの検索に関するクエリを、少なくとも１つのメモリモジュールに送信するように構成された回路と、メモリモジュール内のメモリに記憶された画像の検索結果を少なくとも１つのメモリモジュールから受信するように構成された回路と、少なくとも１つのメモリモジュールから受信した結果と、受信した１つ以上の画像との比較を実行するように構成された回路と、を含む。少なくとも１つのメモリモジュールは、受信したクエリに応じて、メモリモジュール内のメモリに記憶された画像の検索を実行するように構成された回路と、検索結果をプロセッサに送信するように構成された回路と、を含む。
【００１０】
第１プロセッサと複数のメモリモジュールとを有するプロセッサインメモリ（ＰＩＭ）システムにおいて実行される方法に関する実施形態が開示される。この方法は、１つ以上の画像を、これらの画像データによってアップロード及び分類するステップを含む。画像は、画像データの分類に基づいて、複数のメモリモジュール上で分割され記憶される。１つ以上のクエリ画像が第１プロセッサによって受信され、第１プロセッサは、画像を１つ以上のクエリ画像とマッチングするためのメモリの検索に関するクエリを、複数のメモリモジュールに送信する。複数のメモリモジュールの各々は、受信したクエリに応じて、メモリモジュール内のメモリに記憶された画像の検索を実行する。複数のメモリモジュールの各々は、検索結果を第１プロセッサに送信し、第１プロセッサは、複数のメモリモジュールから受信した結果と、受信した１つ以上の画像と、の比較を実行する。
【００１１】
コンピュータ可読記憶媒体に関する実施形態が開示される。コンピュータ可読記憶媒体は命令を記憶しており、当該命令は、コンピューティングデバイスによって実行されると、当該コンピューティングデバイスに対して、１つ以上の画像を受信するステップと、画像を１つ以上の画像とマッチングするためのメモリの検索に関するクエリを送信するステップと、受信したクエリに応じて、メモリモジュール内のメモリに記憶された画像の検索を実行するステップと、検索結果を送信するステップと、メモリモジュールから受信した結果と、受信した１つ以上の画像との比較を実行するステップと、を含む動作を実行させる。
【００１２】
添付の図面と併せて例として与えられる以下の説明から、より詳細な理解を得ることができるであろう。
【図面の簡単な説明】
【００１３】
【図１】１つ以上の開示された実施形態を実装可能な例示的なデバイスのブロック図である。
【図２】一実施形態による、並列検索動作を実行する例示的なアーキテクチャの概略図である。
【図３】一実施形態による、並列検索動作を実行する例示的な構造のブロック図である。
【図４】一実施形態による、図２及び３の例示的なメモリモジュールの分解図及びブロック図である。
【図５】一実施形態による、例示的な画像比較を示す図である。
【図６】一実施形態による、並列検索動作を実行する例示的な方法のフローチャートである。
【発明を実施するための形態】
【００１４】
実施形態のより詳細な説明を以下に提供するが、プロセッサインメモリ（ＰＩＭ）システムについてのハイブリッド画像検索機構が簡潔に提供される。画像の特徴／記述子（イメージディスクリプタ）を圧縮するのに利用可能な様々な方法が存在する。イメージディスクリプタは、グローバルディスクリプタ（例えば、ＧＩＳＴ）、ローカルディスクリプタ（例えば、スケール不変特徴変換（Scale Invariant Feature Transform；ＳＩＦＴ）、方向付きＦＡＳＴ及び回転ブリーフ（Oriented FAST and Rotated Brief；ＯＲＢ）、及び、ＳＵＲＦ）、又は、リージョナルディスクリプタ（例えば、平均グレースケールや分散等の領域の基本特性）等のいくつかのカテゴリを含む。グローバルディスクリプタは、記憶空間及びその計算コストの両方に関して比較的効率的に画像を表現することができるが、グローバルディスクリプタに基づく画像比較は、ローカルアプローチと比較してロバストが低く、判別可能でない場合がある。例えば、グローバルディスクリプタは、変換、視点の変化、照明変化、クラッタリング（cluttering）、クロッピング（cropping）、オクルージョン（occlusion）等にセンシティブである場合がある。しかしながら、ローカルディスクリプタアプローチは、計算に非常にコストがかかる場合があり、その特徴のセットは、記憶用のグローバル及びリージョナルディスクリプタよりもはるかに大きいことが多い。しかしながら、回転及びスケーリングに対する不変性、並びに、画像変形の他のフォーマットに対するロバスト性は、画像検索の領域、特に「バグオブフィーチャ―（Bag of Features；ＢｏＦ）」アプローチの主要なコンポーネントとして有用である可能性がある。
【００１５】
以下に説明する方法及び装置は、ユーザによって指定された追加のメタデータ又はタグを有しない画像検索に関する。すなわち、画像データのみを使用して、ユーザによって提供される情報に対する依存を排除する。画像検索の多くのコンポーネントは、例えば、特徴のセットの分類及び次元低減を比較的低い精度で効率的に行うためにグローバルディスクリプタを計算する等のように、ＰＩＭ毎のローカルメモリスタックにおいて実行されてもよい。後続のローカルディスクリプタの計算及び検証は、低減した検索空間内のローカルスタックで実行されてもよく、計算コスト及び精度レベルがより高くなる可能性がある。クエリ画像（すなわち、検索される画像）は、ＰＩＭ毎に複製され、各ＰＩＭからの検索結果は、それらをマージして最終ランクを構成するホストプロセッサに提示される。このインメモリ処理は、メモリアクセスが主にローカルスタック又はスタックに制限されるので、システム全体に亘って集約されたデータトラフィックを低減することができる。これにより、クエリ毎の検索効率が向上するとともに、クエリ毎のエネルギー消費が減少する。したがって、グローバルディスクリプタ及びローカルディスクリプタの両方が提供する利点を、ＰＩＭ対応システムにおいてこれらの欠点を制限しながら利用することができるハイブリッドな方法及び装置について以下に説明する。
【００１６】
図１は、１つ以上の開示された実施形態を実装可能な例示的なデバイス１００のブロック図である。デバイス１００は、例えば、デスクトップコンピュータ、タブレットコンピュータ、ゲームデバイス、ハンドヘルドデバイス、セットトップボックス、テレビ又は携帯電話等のコンピュータを含んでもよい。デバイス１００は、プロセッサ１０２と、メモリ１０４と、ストレージ１０６と、１つ以上の入力デバイス１０８と、１つ以上の出力デバイス１１０と、を含む。また、デバイス１００は、オプションとして、入力ドライバ１１２と、出力ドライバ１１４と、を含んでもよい。デバイス１００は、図１に示されていない追加のコンポーネントを含んでもよいことを理解されたい。
【００１７】
プロセッサ１０２は、中央処理装置（ＣＰＵ）、グラフィックプロセシングユニット（ＧＰＵ）、同じダイ上に配置されたＣＰＵ及びＧＰＵ、又は、１つ以上のプロセッサコアを含んでもよく、各プロセッサコアはＣＰＵ又はＧＰＵであってもよい。メモリ１０４は、プロセッサ１０２と同じダイ上に配置されてもよいし、プロセッサ１０２とは別に配置されてもよい。メモリ１０４は、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ若しくはキャッシュ等の揮発性又は不揮発性のメモリを含んでもよい。
【００１８】
ストレージ１０６は、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク若しくはフラッシュドライブ等の固定又は着脱可能なストレージを含んでもよい。入力デバイス１０８は、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロフォン、加速度計、ジャイロスコープ、生体スキャナ、又は、ネットワーク接続（例えば、無線ＩＥＥＥ８０２信号の送信及び／若しくは受信用の無線ローカルエリアネットワークカード）を含んでもよい。出力デバイス１１０は、ディスプレイ、スピーカ、プリンタ、触覚フィードバックデバイス、１つ以上のライト、アンテナ、又は、ネットワーク接続（例えば、無線ＩＥＥＥ８０２信号の送信及び／若しくは受信用の無線ローカルエリアネットワークカード）を含んでもよい。
【００１９】
入力ドライバ１１２は、プロセッサ１０２及び入力デバイス１０８と通信し、プロセッサ１０２が入力デバイス１０８から入力を受信することを可能にする。出力ドライバ１１４は、プロセッサ１０２及び出力デバイス１１０と通信し、プロセッサ１０２が出力デバイス１１０に出力を送信することを可能にする。入力ドライバ１１２及び出力ドライバ１１４はオプションのコンポーネントであって、デバイス１００は、入力ドライバ１１２及び出力ドライバ１１４が存在しない場合には、同じように動作することに留意されたい。説明する実施形態はメインディスプレイを含むが、本発明は、メインディスプレイ無しで実施されてもよいし、ビデオのソースデバイスのみを含んでもよい。このようにして、制御領域は、複数のポータブルデバイスを有し、メインディスプレイを有していないオフィス環境であってもよい。
【００２０】
図２は、一実施形態による、並列検索動作を実行する例示的なアーキテクチャ２００の概略図である。アーキテクチャ２００は、ホストプロセッサ２１０と、メモリモジュール２２０（２２０１〜２２０８で示されている）と、パッケージ内フォトニクスユニット２３０と、追加のメモリモジュール２４０（２４０１及び２４０２で示されている）と、を含んでもよい。ホストプロセッサ２１０は、異種の高性能加速プロセシングユニット（ＡＰＵ）であってもよい。メモリモジュール２２０は、１つ以上のダイナミックランダムアクセスメモリ（ＤＲＡＭ）のダイの下に積み重ねられた論理ダイを有するＰＩＭモジュールを含んでもよい。また、追加のメモリモジュール２４０は、１つ以上のＤＲＡＭのダイの下に積み重ねられた論理ダイを有するＰＩＭモジュールを含んでもよく、追加のメモリ容量を提供するためにチップの外部にあってもよい。メモリモジュール２４０は、リンク２５０（例えば、光リンク）を介してホストプロセッサ２１０と通信してもよく、例えば光メモリ等の第２レベルのメモリと考えられてもよい。
【００２１】
フォトニクスユニット２３０は、相互接続リンク（例えば、光リンク２５０）を介してデータを送信／受信するために使用されてもよい。光リンク２５０はリンクの一例であるが、追加のタイプのリンク（例えば、電気的なリンク）を採用してもよいことに留意されたい。また、メモリモジュール２２０内の論理ダイ２２１は、インタフェース及びＲＡＳ機能を提供することができる。
【００２２】
図３は、一実施形態による、並列検索動作を実行する例示的な構造のブロック図である。図３は、例えば、ホストメモリインタフェースを介してメモリモジュール２２０と通信するホストプロセッサ２１０を示している。また、メモリモジュール２２０は、ＰＩＭ間相互接続を介して互いに通信する。更に、図３の例示的な図において、例示的なメモリモジュール２２０は、ＰＩＭ２２１と、１つ以上のメモリダイ２２２と、を有する論理ダイを含むものとして示されている。ホストプロセッサ２１０及びメモリモジュール２２０は、インターポーザ２６０上に配置されている。図３に示す例示的な構造は、アーキテクチャ２００に基づいてもよく、メモリモジュール２２０がホストプロセッサ２１０の周りにリングパターンで配置されるリング構造と呼ばれてもよい。図４は、一実施形態による、図２及び図３の例示的なメモリモジュール２２０の分解図及びブロック図である。具体的には、図４は、論理ダイ２２１の例示的な概略図である。論理ダイ２２１は、１つ以上のグラフィックプロセシングユニット（ＧＰＵ）  コンピューティングユニット（ＣＵ）クラスタ（ＧＰＵ  ＣＵクラスタ）内の１つ以上のＧＰＵ  ＣＵコア、又は、１つ以上のＣＰＵクラスタ内の１つ以上のＣＰＵコアを含む。ＧＰＵ  ＣＵクラスタ及びＣＰＵクラスタは、１つ以上のメモリダイ２２２に配置されたメモリ領域（例えば、ＤＣＴ０、ＤＣＴ１、…、ＤＣＴ（ｎ−１））と通信可能な積み重ねられたメモリチャネル０〜（ｎ−１）を通してメモリスイッチを介してメモリダイ２２２と通信する。また、論理ダイは、ホストメモリインタフェースを通したメモリスイッチを介してホストに／ホストから通信し、ＰＩＭ間相互接続を通したメモリスイッチを介して他のメモリモジュール２２０と通信する。
【００２３】
図５は、一実施形態による、例示的な画像比較５００を示す図である。比較５００では、クエリ画像５０１は、時計回りに９０度回転した画像５０１と同じ画像である、メモリに記憶された画像５０２と比較される。
【００２４】
図６は、一実施形態による、並列検索動作を実行する例示的な方法６００のフローチャートである。方法６００は、グローバルディスクリプタ（例えばカラー等の画像全体の属性を記述するディスクリプタ）を計算し、ローカルディスクリプタのアプローチの検索空間及びコストを著しく低減するために、粗いレベルの分類及び第１レベルでの画像検索を実行する。第２に、ローカルディスクリプタのアプローチ（例えば、画像内の領域の局所化された画像属性）は、より正確なマッチング及び検証を実行するために採用される。
【００２５】
ステップ６１０では、画像がメモリにロードされ、分類される。分類は、どの画像が類似の画像属性を含むかを決定するステップと、これらの類似画像を画像のクラスとして分類するステップ（例えば、吹雪の画像は、類似の属性を含み、クラスに分類され得る）と、を含んでもよい。画像データは、全てのメモリスタック（例えば、メモリモジュール２２０及び／又は２４０）間で分割され、ランダムに配置されてもよい。画像データが分類されると、画像データを管理し、メモリスタック上で検索するための後続の配置方法に関する多くの方法が存在する。
【００２６】
例えば、同一クラスの画像は、１つに集中するのではなく、全てのスタックに散乱していてもよい。散乱アルゴリズムは、任意のタイプのランダム化、ハッシング、又は、他のアルゴリズムのマッピングであってもよい。或いは、分類後に画像がグループ化されなくてもよい。すなわち、各画像は、メモリスタック上の最初のランダムな割り当てのままである。別の代替案では、同一カテゴリの画像は、１つのメモリスタック上に配置されてもよいし、１つのメモリスタックに十分なスペースが存在しない場合には複数の隣接するメモリスタックに配置されてもよい。この配置を概略的に達成するように、階層的分類を用いてサブカテゴリを導出してもよい。例えば、Ｎ個の画像と２つのクラスとが存在する場合、第１レベルの分類は、画像を２つのカテゴリに分割する。ここで、各カテゴリはＮ／２個の画像を含む。しかしながら、各メモリモジュールは、Ｎ／２個の画像を収容することができない場合があり、したがって、第２レベルの分類を実行して、第１クラス内（すなわち、Ｎ／２個の画像内）のサブカテゴリを決定してもよく、個々のサブカテゴリに属する画像は、同一のメモリモジュールにできるだけ多く記憶されてもよい。更なるネスティング（例えば、サブカテゴリに対する追加のサブカテゴリ）を利用して、互いに類似する画像を更に分類し、これらの類似画像を同一のモジュールにできるだけ多く記憶してもよい。
【００２７】
多数の分類アルゴリズムを分類に利用することができる。例えば、ｋ最近傍法、サポートベクターマシン、カーネル法及び他のタイプの分類である。特徴ベクトルに含まれる膨大な数の次元の場合には、分類とともに、線形又は非線形次元削減アルゴリズム（例えば、多様体学習、フィッシャーカーネル及び主成分分析（ＰＣＡ）等）を採用することができる。また、線形又は非線形の削減アルゴリズムを、分類の品質を検査するために、主に視覚化目的で使用することもできる。
【００２８】
ステップ６２０では、１つ以上のクエリ画像が、メモリ内のロードされた画像との比較のためにアップロードされる。例えば、クエリ画像は、メモリに画像が記憶されているコンピュータに挿入されたフラッシュドライブ上に存在してもよい。この点において、各クエリ（ｑ）について、グローバルディスクリプタが最初に計算され、弱い分類が実行され、ベクトルＰ（ｑ）が生成される。ここで、Ｐは、ｍ個の要素を有するベクトルであり、各要素は、画像ｑが、合計でｍ個のカテゴリのうち１つのカテゴリにどの程度の確率で属しているかを表している。すなわち、画像が最初にアップロードされるトレーニングフェーズでは、データベース内の全ての画像のグローバルディスクリプタが、集合からの画像のサブセットを含む各ＰＩＭ上で計算されてもよい。例えば、図５を再度参照すると、クエリ画像５０１のグローバル属性は、メモリに記憶された画像５０２のグローバル属性と比較される。
【００２９】
クエリｑが複製され、検索のために１つ以上のＰＩＭに並列に送信される（ステップ６３０）。すなわち、画像の異なる分類が複数のメモリモジュールに記憶される場合には、クエリｑは、検索のために複数のＰＩＭ（例えば、２２０及び／又はは２４０）に送信される。
【００３０】
次いで、ＰＩＭは、グローバルディスクリプタを計算する（ステップ６４０）。例えば、各ＰＩＭにおけるインメモリ検索は、各検索エントリを、ベクトルＰ（ｑ）の最高位にランク付けされた要素と同じクラスに分類されたローカル画像と比較することで開始し、その後、順番に進んでもよい。各比較について、類似度測定値（例えば、検索されたクエリ画像と比較されたローカル画像の類似の属性）が計算され、類似度測定値が閾値を超えるか否かの判定が行われる。
【００３１】
例えば、１つのクエリ画像が与えられると、このクエリ画像のディスクリプタは、ホストプロセッサ２１０上でクエリ画像及びそのディスクリプタの何れかを用いて計算され、ランク付け及び検索のために全てのＰＩＭに分配されてもよい。或いは、クエリ画像のみが全てのＰＩＭに分配されてもよく、そのディスクリプタが各ＰＩＭ上でローカルに計算されてもよい。グループクエリ（すなわち、複数のクエリ画像がアップロードされており、同時にクエリされる場合）では、上述した２つの代替手段がグループ全体に適用されてもよい。すなわち、複数のクエリ画像のディスクリプタがホストプロセッサ２１０上で計算されてもよいし、複数のクエリ画像は、それぞれディスクリプタをローカルに計算する全てのＰＩＭに分配されてもよい。グループクエリの別の代替手段は、クエリのサブセットを各ＰＩＭに分配し、これらのディスクリプタをローカルに計算し、検索を実行し、画像及びディスクリプタを別のＰＩＭに転送して、別のＰＩＭモジュール上でランク付け／検索を再開することである。次に、各モジュールの結果は、ホスト、又は、何れか１つのＰＩＭモジュールに集約されてもよい。
【００３２】
類似度測定値が閾値を超える場合、更なる検証のために、ローカルディスクリプタに基づく比較が実行される。すなわち、ＰＩＭは、ローカルディスクリプタを計算する（ステップ６５０）。例えば、画像５０１／５０２内の太陽の部分に対応するローカライズされた点５０３ａと、画像５０１／５０２内の木の頂部に対応するローカライズされた点５０３ｂと、画像５０１／５０２内の山頂に対応するローカライズされた点５０３ｃと、が相互に比較される。次元削減方法が使用される場合、この検索の効率を高めるために、比較及び検証の数を減らすことができる。
【００３３】
ステップ６１０において同一のカテゴリの画像が１つ又は隣接するメモリスタック上に配置された場合には、クエリｑは弱い分類の順序で行われてもよく、その結果、最高位のクラスからの画像を含むＰＩＭが最初に検索を実行し、２番目に高い順位等がそれに続く。潜在的な処理遅延を抑制するためである。少数のクエリの応答を劣化させながら平均効率を高めるために、クエリとの潜在的な一致（potential matches）の再順序付けが利用されてもよい。すなわち、クエリ画像との潜在的な一致が再順序付けされてもよい。潜在的な一致は、クエリのグローバルディスクリプタと、潜在的な一致と、がどの程度類似しているかに基づいて決定されてもよい。次に、クエリのローカルディスクリプタ及びこれらの潜在的な一致を比較して、クエリと、各々の潜在的な一致との対の類似性を計算する。次いで、この類似性基準に基づいて、潜在的な一致を再順序付けしてもよい。
【００３４】
ローカルディスクリプタの計算の一部として、ターゲット画像がデータベース内の１つの潜在的な一致であり、ソース画像がクエリ画像である画像登録スキームを介した検証が採用されてもよい。様々なローカルディスクリプタに基づく検証方式が利用されてもよい。例えば、２つの画像のＳＩＦＴディスクリプタを照合することによる検証は、使用可能な１つの検証方式であり、ソース画像とターゲット画像との間のローカルな特徴を比較する。
【００３５】
特徴抽出及びディスクリプタの計算をローカルに実行することによって、各ＰＩＭプロセッサ（例えば、各メモリモジュール２２０の論理ダイ２２１）は、互いに独立して動作し、そのローカルメモリスタック内の画像のかかるディスクリプタを計算する。計算された特徴又はディスクリプタは、複数のＰＩＭ上で分類及び検索するために、ＰＩＭ間通信又はＰＩＭ−ホスト通信の前に、より小さい指紋特徴ベクトル（fingerprint feature vector）に圧縮されてもよい。また、これらを直接利用してもよい。すなわち、計算された特徴又はディスクリプタは、ホストプロセッサ２１０に送信する前に画像をランク付けするために利用されてもよい。各ローカルＰＩＭがグローバルディスクリプタ、ローカルディスクリプタ及び検証フェーズを実行すると、ステップ６６０において、検索結果がホストプロセッサ（例えば、２１０）に提供される。次いで、ホストプロセッサは、ロードされた画像が、画像を受け取る全てのＰＩＭからアップロードされた画像及び検索された画像に一致する最終的なランクを構築する（ステップ６７０）。グローバルディスクリプタ及びローカルディスクリプタの両方の計算に適用されるインメモリ処理を伴う上記のローカルに向けられた計算スキームを有すると、検証フェーズは、集約されたデータの移動を最小化することができる。これは、かかるデータ転送に関するエネルギーコストを最小限に抑え、頻繁なメモリアクセスの制限が存在することで検索効率を低下させる可能性がある。
【００３６】
本明細書の開示に基づいて、多くの変形が可能であることを理解されたい。特定の組み合わせで特徴及び要素が上記のように説明されたが、他の特徴及び要素無しに単独で、又は、他の特徴及び要素を伴うか否かにかかわらず、様々な組み合わせで各特徴又は要素が使用されてもよい。
【００３７】
例えば、図２及び図３に示されるホストプロセッサ及びメモリモジュールのトポロジは、リングトポロジと呼ばれることがある。しかしながら、任意のトポロジが利用されてもよい。また、ホストプロセッサ２１０は、１つのＰＩＭ上のプロセッサであってもよい。更に、例示的な単一のＰＩＭノードシステムについて説明したが、方法及び装置は、特定のＰＩＭシステムの構成に限定されない。例えば、複数のノードを接続してＰＩＭネットワークを形成してもよいし、二次記憶システム（例えば、メモリモジュール２４０）をＰＩＭノードに接続してもよい。ＰＩＭノードは、複数のメモリスタックとＰＩＭとを有するリング又はスター構造として配置されてもよい。また、ＰＩＭシステムは、図２に示すような２レベルのメモリで拡張されてもよく、各々のメモリのコンポーネント（例えば、メモリモジュール２４０）は、ＰＩＭであってもよい。提供される方法は、汎用コンピュータ、プロセッサ又はプロセッサコアで実行されてもよい。適切なプロセッサには、例えば、汎用プロセッサ、専用プロセッサ、従来のプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、複数のマイクロプロセッサ、ＤＳＰコアに関連する１つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）回路、他のタイプの集積回路（ＩＣ）、及び／又は、状態機械が含まれ得る。かかるプロセッサは、処理されたハードウェア記述言語（ＨＤＬ）命令の結果と、ネットリスト（コンピュータ可読媒体に記憶可能な命令）を含む他の中間データと、を用いて製造プロセスを構成することによって製造されてもよい。そのような処理の結果は、本発明の態様を実装するプロセッサを製造するために半導体製造プロセスで使用されるマスクワークであってもよい。
【００３８】
本明細書で提供される方法又はフローチャートは、汎用コンピュータ又はプロセッサによって実行されるコンピュータ可読記憶媒体に組み込まれたコンピュータプログラム、ソフトウェア又はファームウェアで実装されてもよい。コンピュータ可読記憶媒体の例としては、読み取り専用（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、レジスタ、キャッシュメモリ、半導体メモリデバイス、磁気媒体（例えば、内部ハードディスク及びリムーバブルディスク等）、磁気光学媒体、光媒体（例えば、ＣＤ−ＲＯＭディスク及びデジタル多用途ディスク（ＤＶＤ）等）が挙げられる。
【００３９】
第１プロセッサと、少なくとも１つのメモリモジュールと、を有するＰＩＭシステムで実行される方法が本明細書に開示される。この方法は、第１プロセッサと、第１プロセッサによって１つ以上の画像を受信する少なくとも１つのメモリモジュールと、を有するＰＩＭシステムにおいて検索を実行するステップを含む。ホストプロセッサは、画像を１つ以上の画像とマッチングするためのメモリの検索についてのクエリを、少なくとも１つのメモリモジュールに送信し、少なくとも１つのメモリモジュールは、受信したクエリに応じて、メモリモジュール内のメモリを検索する。少なくとも１つのメモリモジュールは、検索の結果を第１プロセッサに送信し、第１プロセッサは、少なくとも１つのメモリモジュールから受信した結果と、受信した１つ以上の画像との比較を実行する。
【００４０】
いくつかの例では、この方法は、少なくとも１つのメモリモジュールのメモリに記憶された画像をアップロード及び分類するステップを含む。いくつかの例では、同一のクラスからアップロードされた画像は、複数のメモリモジュールに記憶される。いくつかの例では、同一のクラスからアップロードされた画像は、同一のメモリモジュールに記憶される。
【００４１】
いくつかの例では、少なくとも１つのメモリモジュールによって実行される画像の検索は、グローバルディスクリプタの計算、ローカルディスクリプタの計算、及び、検証判定を実行するステップを含む。
【００４２】
いくつかの例では、第１プロセッサによる受信結果の比較は、少なくとも１つのメモリモジュールから受信した受信結果をランク付けするステップを含む。いくつかの例では、この方法は、第１プロセッサによって、複数のメモリモジュールから受信した結果の最終的なランクを構築するステップを含む。
【００４３】
プロセッサが本明細書で開示される。プロセッサは、１つ以上の画像を受信するように構成された回路と、画像を１つ以上の画像とマッチングするためのメモリの検索についてのクエリを、少なくとも１つのメモリモジュールに送信するように構成された回路と、を含む。プロセッサは、受信したクエリに応じて、少なくとも１つのメモリモジュールから、メモリモジュール内のメモリに記憶された画像の検索結果を受信するように構成された回路と、少なくとも１つのメモリモジュールから受信した結果と、受信した１つ以上の画像との比較を実行するように構成された回路と、を備える。
【００４４】
いくつかの例では、プロセッサは、少なくとも１つのメモリモジュールのメモリに記憶された画像をアップロード及び分類するように構成された回路を含む。いくつかの例では、プロセッサは、少なくとも１つのメモリモジュールから受信した受信結果をランク付けするように構成された回路を含む。いくつかの例では、プロセッサは、複数のメモリモジュールから受信した結果の最終的なランクを構築するように構成された回路を含む。
【００４５】
システムが本明細書で開示される。システムは、プロセッサと、少なくとも１つのメモリモジュールと、を備える。プロセッサは、１つ以上の画像を受信するように構成された回路と、画像を１つ以上の画像とマッチングするためのメモリの検索についてのクエリを、少なくとも１つのメモリモジュールに送信するように構成された回路と、メモリモジュール内のメモリに記憶された画像の検索結果を少なくとも１つのメモリモジュールから受信するように構成された回路と、少なくとも１つのメモリモジュールから受信した結果と、受信した１つ以上の画像との比較を実行するように構成された回路と、を含む。少なくとも１つのメモリモジュールは、受信したクエリに応じて、メモリモジュール内のメモリに記憶された画像の検索を実行するように構成された回路と、検索結果をプロセッサに送信するように構成された回路と、を含む。
【００４６】
いくつかの例では、システムのプロセッサは、少なくとも１つのメモリモジュールのメモリに記憶された画像をアップロード及び分類するように構成された回路を含む。いくつかの例では、同一のクラスからアップロードされた画像は、複数のメモリモジュールに記憶される。いくつかの例では、同一のクラスからアップロードされた画像は、同一のメモリモジュールに記憶される。
【００４７】
いくつかの例では、少なくとも１つのメモリモジュールによって実行される画像の検索は、グローバルディスクリプタの計算、ローカルディスクリプタの計算、及び、検証判定を実行することを含む。いくつかの例では、システムのプロセッサは、少なくとも１つのメモリモジュールから受信した受信結果をランク付けするように構成された回路を含む。いくつかの例では、システムのプロセッサは、複数のメモリモジュールから受信した結果の最終的なランクを構築するように構成された回路を含む。
【００４８】
第１プロセッサと、複数のメモリモジュールと、を有するプロセッサインメモリ（ＰＩＭ）システムにおいて実行される方法が本明細書に開示される。この方法は、１つ以上の画像を、これらの画像データによってアップロード及び分類するステップを含む。画像は、画像データの分類に基づいて、分割され複数のメモリモジュールに記憶される。１つ以上のクエリ画像が第１プロセッサによって受信され、第１プロセッサは、画像を１つ以上のクエリ画像とマッチングするためのメモリの検索に関するクエリを、複数のメモリモジュールに送信する。複数のメモリモジュールの各々は、受信したクエリに応じて、そのメモリモジュール内のメモリに記憶された画像の検索を実行する。複数のメモリモジュールの各々は、検索結果を第１プロセッサに送信し、第１プロセッサは、複数のメモリモジュールから受信した結果と、受信した１つ以上の画像との比較を実行する。
【００４９】
いくつかの例では、同一のクラスからアップロードされた画像は、同一のメモリモジュールに記憶される。いくつかの例では、同一のクラスからアップロードされた画像は、複数のメモリモジュールに分配される。いくつかの例では、同一のクラスからアップロードされた画像は、隣接するメモリモジュールに分配される。
【００５０】
いくつかの例では、複数のメモリモジュールによって実行される画像の検索は、グローバルディスクリプタの計算、ローカルディスクリプタの計算、及び、検証判定を実行するステップを含む。いくつかの例では、グローバルディスクリプタの計算は、１つ以上のクエリ画像と、当該１つ以上のクエリ画像と同一のクラスに存在するものとしてカテゴリ化されたメモリモジュール内のメモリに記憶された画像と、を比較するステップを含む。いくつかの例では、類似度測定値が計算され、閾値と比較される。いくつかの例では、類似度測定値が閾値を超える場合に、ローカルディスクリプタが計算される。
【００５１】
コンピュータ可読記憶媒体（non-transitory computer-readable medium）が本明細書で開示される。コンピュータ可読記憶媒体は命令を記憶しており、命令は、コンピューティングデバイスによって実行されると、１つ以上の画像を受信するステップと、画像を１つ以上の画像とマッチングするためのメモリの検索に関するクエリを送信するステップと、受信したクエリに応じて、メモリモジュール内のメモリに記憶された画像の検索を実行するステップと、検索結果を送信するステップと、メモリモジュールから受信した結果と、受信した１つ以上の画像と、の比較を実行するステップと、を含む動作をコンピューティングデバイスに実行させる。
【００５２】
いくつかの例では、メモリモジュールのメモリに記憶された画像がアップロードされ分類される。いくつかの例では、同一のクラスからアップロードされた画像は、複数のメモリモジュールに記憶される。いくつかの例では、同一のクラスからアップロードされた画像は、同一のメモリモジュールに記憶される。
【００５３】
いくつかの例では、画像の検索は、グローバルディスクリプタの計算、ローカルディスクリプタの計算、及び、検証判定を実行するステップを含む。いくつかの例では、受信した結果の比較は、受信した結果をランク付けするステップを含む。いくつかの例では、複数のメモリモジュールから受信した結果の最終的なランクが構築される。
【図１】
2019502982.tif 000003
【図２】
2019502982.tif 000004
【図３】
2019502982.tif 000005
【図４】
2019502982.tif 000006
【図５】
2019502982.tif 000007
【図６】
2019502982.tif 000008
【国際調査報告】
2019502982.tif 000009
2019502982.tif 000010