(58)【調査した分野】(Int.Cl.,DB名)
前記マッチング手続きを行うステップは、前記特徴のサブセットを遠隔デバイスに送信するステップと、前記遠隔デバイスから前記結果を受け取るステップとを含む、請求項1に記載の方法。
【発明を実施するための形態】
【0014】
一般に、本開示は画像における物体識別のための技術について説明する。これらの技術は、画像における物体識別の計算量を減少させ、物体検出パイプラインからの早期脱出を支持することが可能である。本開示の技術では、全体画像を分析した後、特徴記述子を抜粋することではなく、タイル(すなわち画像のサブセット)内の特徴を検出することが規定されている。各タイルが処理された後、検出された特徴の数が閾値と比較され、次いで物体データベースと比較され得る。1つまたは複数のオクターブにタイリングを適用できる。一般に、各オクターブは画像の特定のサイズ(たとえば、ピクセル解像度)に対応する。あるオクターブにおいて、入力画像は分解能に関連するサイズに調整され得る。2011年7月28日に出願された、同時係属中である米国特許出願第13/193,294号で述べられているように、本明細書において記載された空間分割技術はスケールベースの特徴抽出と組み合わせることができる。
【0015】
物体認識について、訓練画像から特徴記述子の集合、および/または他の判別情報に関するデータベースを得ることができる。次いで、あるクエリ画像(すなわち、データベースに保存された画像)の内容にアクセスするために、特徴記述子を目標画像から抽出し、データベースへの照会に使用することができる。拡張現実感あるいは画像検索アプリケーションについて、クライアント(たとえば、携帯電話)は、対象物体の画像を取り込み、それを画像、特徴、および/またはメタデータ情報のデータベースと比較することができる。このデータベースはネットワーク上のサーバに保存可能で、クライアントによってローカル処理のために検索可能であり、またあるいは、サーバに照会してネットワーク資源を利用して処理され得る。一般に本開示の技術において、タイル内でキーポイントの局所化と特徴記述子の抽出を行うスケール不変特徴変換(SIFT)アルゴリズムについて説明する。各SIFT特徴は、二次元(x、y)の特徴位置、特徴が検出されるスケール、特徴の周囲において最も強い画像勾配によって与えられるような特徴の回転配向、および/または、たとえば局所画像勾配のヒストグラムのような区分によって局所的なピクセル変化について説明するベクトルといった属性を含み得る。いくつかの実施形態において、特徴記述子は、SIFT以外の方法かアルゴリズムを用いて識別され、抽出され、および/または局所化され得る。
【0016】
キーポイント識別および記述子抽出は計算処理上、要求され得る。たとえば、典型的なハーフサイズのビデオグラフィックス配列(HVGA)画像は何千ものSIFT特徴を作り出すことができる。繰り返しマッチング処理を含むSIFTアルゴリズムを実施すると、いくつかのモバイルプラットフォーム上で利用可能な計算資源を上回ることがある。しかしながら、ほとんどの実施事例では、データベースと合致する実際の特徴記述子の数は、実際に算出された特徴記述子の数よりはるかに少ない傾向にある。すなわち、算出された特徴記述子のセットのうち、小さなサブセットから物体識別の結果がもたらされ得る。これは、ほんの少しでもデータベースの特徴と合致するように、特徴記述子に影響するクエリ画像における撮像条件の違い(たとえば、照明、見方など)によって一部起こり得る。本開示の技術は、物体を識別するのに使用され得るキーポイントが全体画像のうちの小さな領域だけに存在可能な空間現実を作ることができ、そして全体画像を処理する計算要件を減らすことができる。
【0017】
図1Aは、空間ベースの特徴抽出のための技術が適用され得る実例システム2を示すブロック図である。この例で、システム2は、ネットワーク40を通じて通信するクライアントデバイス10とサーバデバイス50を含む。この例で、クライアントデバイス10はラップトップ、いわゆるネットブック、タブレットコンピュータ、携帯情報端末(PDA)、携帯あるいは移動電話またはハンドセット(いわゆる「スマートフォン」を含む)、全地球測位システム(GPS)デバイス、デジタルカメラ、デジタルメディアのプレーヤー、ゲームデバイス、またはサーバデバイス50と通信できる他のモバイルデバイスのようなモバイルデバイスを表す。移動クライアントデバイス10について本開示で説明されているが、本開示で説明された技術はここでの移動クライアントデバイスに限定されない。代わりに、本技術は、局所的な物体データベースを保存することができ、および/またはネットワーク40を通じてサーバデバイス50と通信できる任意のデバイス、あるいは他の任意の通信媒体によっても実装され得る。
【0018】
サーバデバイス50は、接続、たとえば伝送制御プロトコル(TCP)接続を受け付け、自身のTCP接続に応じてクエリデータを受け取って識別データを提供するTCPセッションを形成するサーバデバイスを表す。サーバデバイス50は画像検索アルゴリズムを実行するか、または実装して、画像中の1つまたは複数の特徴あるいは物体を識別する点で、サーバデバイス50は画像検索サーバデバイスと表記できる。別々のデバイスとして図示されて説明されるが、たとえば、クライアントデバイス10がサーバデバイス50と通信せずに物体を識別するように構成されると、サーバデバイス50の構成要素および/または機能性はクライアントデバイス10に含まれ得る。
【0019】
ネットワーク40はインターネットなどの、クライアントデバイス10とサーバデバイス50を相互接続する公共ネットワークである。一般的に、ネットワーク40は、クライアントデバイス10とサーバデバイス50との間の通信あるいはデータの転送を容易にするために、開放型システム間相互接続(OSI)モデルの様々なレイヤを実装する。ネットワーク40は、通常、スイッチ、ハブ、ルータ、サーバなど様々なネットワークデバイスを含み、クライアントデバイス10とサーバデバイス50との間のデータ転送を可能にする。単一のネットワークとして示されるが、ネットワーク40はネットワーク40を形成するために相互接続される1つまたは複数のサブネットワークを含み得る。これらのサブネットワークはサービスプロバイダネットワーク、アクセスネットワーク、バックエンドネットワーク、またはネットワーク40中でデータ転送を提供する公共ネットワークで一般的に採用される他の任意の種類のネットワークを含み得る。この例で公共ネットワークと説明されているが、ネットワーク40は一般に大衆がアクセス可能でない専用ネットワークを含み得る。
【0020】
図1Aの例に示されているように、クライアントデバイス10は、カメラ12、センサ14、制御ユニット20、局所物体データベース30、およびネットワークインターフェース32を含み得る。この例では、制御ユニット20は特徴抽出ユニット22、タイルパターンユニット24、および姿勢調整ユニット26を含む。処理のためにクライアントデバイス10からサーバデバイス50に特徴を送り、サーバデバイス50から物体識別および/または信用情報(たとえば、物体が識別可能であるかどうかについての命令、および/または物体識別の信用)を受け取ることができる。いくつかの例では、制御ユニット20は、サーバデバイス50の特徴マッチングユニット62と信用評定ユニット64と同様のユニットを含み得る。例の目的のため、これらのユニットはサーバデバイス50について説明されるが、同様のユニットがクライアントデバイス10の制御ユニット20内に含まれ得ることを理解すべきである。
【0021】
制御ユニット20、制御ユニット60、およびそのサブユニットに属する機能性は、ハードウェア、ソフトウェア、および/またはファームウェアの任意の組合せによっても実装され得る。制御ユニット20に属する1つまたは複数の特徴がソフトウェアあるいはファームウェアによって実装されると、制御ユニット20は、ソフトウェアを実行するための1つまたは複数のハードウェアベースの処理装置と同様に、ソフトウェアへの命令を保存するための、コンピュータ読み取り可能な1つまたは複数の記憶媒体を含み得る。そのような処理装置は1つまたは複数の汎用プロセッサ、アプリケーションプロセッサ、および/または、他の種類のプロセッサを含み得る。いくつかの実施形態において、コンピュータ読み取り可能な記憶媒体は、少なくとも処理装置の1つの内部にある。制御ユニット20と制御ユニット60は、さらにまたは代わりに、1つまたは複数のデジタルシグナルプロセッサ(DSPs)、画像シグナルプロセッサ(ISPs)、汎用マイクロプロセッサ、特定用途向け集積回路(ASICs)、フィールドプログラマブル論理アレイ(FPGAs)、他の集積あるいは別個の論理回路と同等のものなど、1つまたは複数のハードウェアユニットを含み得る。制御ユニット20と制御ユニット60に属する機能性のいずれかまたはすべては、任意のハードウェア、ソフトウェア、あるいはそのファームウェアによっても実行され得る。このように、
図1Aの例では制御ユニット20と60内に別々のユニットが示されるが、実際には、そのような別々のユニットが、より多くのモジュールやコンポーネント内で合理的あるいは分離的に結合され得ることを理解すべきである。
【0022】
カメラ12は、たとえば行と列に配置された、個々のイメージセンサ素子の二次元配列を含み得る。カメラ12は、たとえば、相補型金属酸化膜半導体(CMOS)センサ、他のセンサ素子など、固体センサ素子の配列を含み得る。カメラ12内のイメージセンサ素子はシーンに対して露光され、そのシーンから光情報を得て、シーンのデジタル画像を取り込む。デジタル画像は、たとえば、赤、緑、青値または画素輝度(強度あるいは明度)値および画素色度(色)値を有する特定色空間において規定され得る画素値の二次元行列を含み得る。
【0023】
センサ14は制御ユニット20に情報を提供する1つまたは複数の環境センサを含み得る。制御ユニット20は、カメラ12によって取り込まれる画像における物体のスケールを近似するのに、この情報を使用し得る。いくつかの例において、センサ14は、クライアントデバイス10の地理的位置を決定するためにGPS衛星と相互作用する全地球測位システム(GPS)ユニットなど、衛星測位システム(SPS)ユニットを含み得る。他のセンサ14と組み合わせたGPSユニットは、画像が取り込まれた時にカメラ12が向いた方向の指示を供給できる。制御ユニット20は、カメラ12の視線方向に存在し得る潜在的物体の検索を限定するのに、この位置および検出情報を使用できる。
【0024】
たとえば、遠隔物体データベース52は、遠隔物体データベース52の物体の地理的位置を保存できる。センサ14のGPSユニットがカメラ12の地理的位置および方向を決定すると、制御ユニット20は、カメラ12の視線方向または近傍の領域において地理的位置を有する遠隔物体データベース52からデータのサブセットを検索し、検索されたデータを局所物体データベース30に保存できる。特徴抽出ユニット22は、次いで、画像から特徴記述子を抽出し、これらの抽出された特徴記述子を用いて局所物体データベース30に照会できる。
【0025】
別の例として、特徴抽出ユニット22は、地理的位置の方向を利用してカメラ12の視線方向における物体の初期スケールを近似できる。たとえば、センサ14のGPSユニットによって決定されたクライアントデバイス10の位置に基づき、遠隔物体データベース52は、クライアントデバイス10近くの地理的位置およびカメラ12の視線方向において最もあり得る物体のスケールを保存できる。特徴抽出ユニット22は、次いで、この初期スケールを使用して最初にタイルから特徴記述子を抽出し、遠隔物体データベース52に照会するためにネットワーク40を通じてサーバデバイス50に照会を送ることができる。いくつかの例において、照会は特徴記述子に加えて位置情報を含み得る。
【0026】
センサの他の例として、たとえば、温度センサ、圧力センサ(たとえば、気圧センサ)、光センサ、赤外線センサ、紫外線センサ、湿度センサ、炭酸ガス(CO2)センサ、他の環境センサがあり、そのいずれかまたはすべては、それぞれの感知値に対して値を提供し得る。制御ユニット20は、屋内および屋外の環境を示す、これらのセンサのいずれかまたはすべてのデータ範囲を含み得る。制御ユニット20は、いずれかまたはすべてのセンサの現在値と対応するデータ範囲とを比較して、カメラ12がクエリ画像を取り込んだときにクライアントデバイス10が屋内にあったか屋外にあったかを決定できる。
【0027】
特徴抽出ユニット22は、スケール不変特徴変換(SIFT)アルゴリズム、勾配圧縮ヒストグラム(CHoG)アルゴリズム、他のキーポイントまたは特徴記述抽出アルゴリズムなど、特徴抽出アルゴリズムに従って特徴抽出を行うユニットである。一般に、特徴抽出ユニット22は、クライアントデバイス10内のカメラ12あるいは他の撮像デバイスを使用して局所的に取り込まれ得る画像データを操作する。あるいは、たとえばネットワーク40を通じて、局所的に別の計算デバイスとのワイヤード接続を通じて、あるいは他のワイヤードまたはワイヤレス形式の通式を通じて画像データをダウンロードすることにより、クライアントデバイス10は、この画像データ自体を得ることなく画像データを保存することができる。
【0028】
タイルパターンユニット24は、たとえば、カメラ12によって取り込まれる画像におけるタイル処理順序を決定するユニットである。たとえば、あるスケールについて、タイルパターンユニット24は、第1のタイル(すなわち、開始タイル)の初期位置および以後のタイルの位置を決定できる。タイルパターンユニット24は、初期のオクターブで検出された潜在的キーポイントに基づくタイル順序を決定できる。最初に特徴(たとえば、潜在的キーポイント)を含む画像の位置を処理できるように画像の空間レイアウトを優先するタイルパターンユニット24を構成できる。特徴のおおまかな位置は、より高いスケール(たとえば、ダウンサンプル)で画像を処理し、位置決めアルゴリズム(たとえば、SIFT)を実行することによって決定することができる。
【0029】
本開示の技術によれば、特徴抽出ユニット22は、あらかじめ設定されたパターン(たとえば、ラスタ走査)に対応する初期タイル、あるいはタイルパターンユニットによって決定される通りに初期タイルを処理できる。特徴抽出ユニット22は、タイルから抽出されたキーポイントを使用して特徴記述子を抽出できる。次いで、制御ユニット20は、クエリ画像における物体のIDがこれらの特徴記述子のみを使用して決定できるかどうかを判定でき、決定でなければ、後続のタイルについての特徴記述子の抽出に進む。
【0030】
姿勢調整ユニット26は、物体の姿勢を決定するユニットである。一般に、より低いオクターブの処理に基づいて物体の姿勢を決定する一方で、高いオクターブでキーポイントの検出と特徴の決定を行うことができる。正規相関関係(NCC)あるいは他の特徴追跡技術を利用するように姿勢調整ユニット26を構成でき、特徴記述子の姿勢をよくするために、より低いオクターブ(たとえば、自然オクターブ)でタイル内の周囲を処理する。対応する姿勢情報を使用して、クエリ画像の検索を改善することができる。
【0031】
以下で説明するように、ネットワークインターフェース32はワイヤレスネットワークインターフェースを含み得る。ネットワークインターフェース32がワイヤレスネットワークインターフェースを含むとき、ワイヤレスネットワークインターフェースは、1つまたは複数のIEEE 802.11標準(たとえば、802.11 a/b/g/n)、第3世代モバイル通信(3G)標準、第4世代通信標準(mobile Worldwide Interoperability for Microwave Access (mobile WiMAX), 3G Long Term Evolution (LTE), LTE Advanced,およびWirelessMAN-Advanced (IEEE 802.16)を含み得る)、または他のワイヤレスネットワークプロトコルなど、1つまたは複数のワイヤレスネットワークプロトコルを実装し得る。一般に、ワイヤレスネットワークが利用可能である場合、制御ユニット20は、クライアントデバイス10が屋内にある可能性が高いと判定できる。クライアントデバイス10が屋内にあるとき、制御ユニット20は、カメラ12によって取り込まれた画像における物体のサイズが比較的小さい傾向にあることを判定できる。したがって、クエリ画像の特徴記述子を抽出する始めのオクターブを決定する際にワイヤレスネットワークが要素として利用可能であるかを取り扱えるように、特徴抽出ユニット22は構成され得る。
【0032】
図1の例では、サーバデバイス50は遠隔物体データベース52を保存する一方、クライアントデバイス10は局所物体データベース30を保存する。クライアントデバイス10は、サーバデバイス50からネットワーク40を通じて局所物体データベース30のデータを検索できる。したがって、局所物体データベース30は、遠隔物体データベース52のすべてまたは一部であり得る。いくつかの例において、局所物体データベース30は、他のサーバデバイス(
図1Aに図示せず)の他の遠隔物体データベースのデータと同様に遠隔物体データベース52のデータを含み得る。一般に、本開示の技術では、局所物体データベース30および/または遠隔物体データベース52に照会し、画像における物体のIDを判定できる。
【0033】
以下でさらに詳細に説明するように、特徴抽出ユニット22は、原画像に基づいて様々なフィルタ画像の組からキーポイントを抽出できる。いくつかの例において、原画像はガウスフィルタを用いてフィルタ処理され、1組のガウスぼかし画像を作ることができる。様々なフィルタリング技術が適用され得ることを理解するべきであるが、本開示は、一例として、主にガウスフィルタに焦点を合わせる。しかしながら、本開示の技術から逸脱しない範囲で、他のフィルタリング技術も適用され得る。さらに、特徴抽出ユニット22は、いくつかの例において、フィルタ処理がされていない画像を処理できる。一般に、1組のフィルタ処理された画像の各々は、同様のサイズ(たとえば、ピクセル解像度の点で)を有し、その組の各画像は累進的に、さらにフィルタ処理され得る。組の各々は「オクターブ」と呼ばれ得る。一般に、ガウスぼかしは、規定されたスケールでガウスぼかし機能を有する特定のオクターブの画像データの畳み込みを伴う。特徴抽出ユニット22は、画像データを漸増的に畳み込むことができ、変数シグマ(σ)と呼ばれる固定の乗数的因子は、オクターブ内で結果としてのガウスフィルタを増加させる。特徴抽出ユニット22は、特定のオクターブの各ガウスぼかし画像を有する「ガウスピラミッド」と呼ばれるものを形成し得る。特徴抽出ユニット22は、次いで、ガウス差分(DoG)画像を作るためのピラミッドにおいて、2つの連続して積み重ねられたガウスぼかし画像を比較し得る。DoG画像は「DoG空間」と呼ばれるものを形成し得る。
【0034】
このDoG空間に基づいて、特徴抽出ユニット22はキーポイントを検出でき、キーポイントは特定の標本点の周りの画素か幾何学的な見地から潜在的に興味深い画像データにおける画素の領域あるいはパッチである。一般に、特徴抽出ユニット22は、キーポイントを構成されたDoG空間における極大値および/または極小値であると認識する。次いで、特徴抽出ユニット22は、キーポイントが検出されたパッチの局所画像勾配の方向に基づいて、これらのキーポイントに1つまたは複数の方向あるいは方角を割り当て得る。これらの方向を特徴付けるために、特徴抽出ユニット22は、勾配方向ヒストグラムの見地から方向を定義し得る。次いで、特徴抽出ユニット22は、特徴記述子を位置と方向(たとえば、勾配方向ヒストグラムによって)定義し得る。特徴記述子を定義した後、たとえば、特徴記述子で局所物体データベース30あるいは遠隔物体データベース52に照会することにより、特徴抽出ユニット22は特徴記述子を出力し得る。特徴抽出ユニット22は、このプロセスを利用することで1組の特徴記述子を出力し得る。
【0035】
ネットワークインターフェース32は、ワイヤレスインターフェースとワイヤードインターフェースを含むネットワーク40を通じてサーバデバイス50と通信できる任意型のインターフェースである。ネットワークインターフェース32はワイヤレスセルラーインターフェースであり、アンテナや変調器など必要なハードウェアあるいは他のコンポーネントを含み、ワイヤレスセルラーインターフェースを通じてネットワーク40と通信し、ネットワーク40を通じてサーバデバイス50と通信することができる。この場合、
図1Aの例では示されていないが、ネットワーク40は、ワイヤレスセルラーネットワークインターフェース32がネットワーク40と通信するワイヤレスセルラーアクセスネットワークを含む。
図1Aに示されていないが、クライアントデバイス10はさらにディスプレイ、たとえば、物体IDが判定される画像データや他の任意の種類のデータなどの画像を表示可能な任意型のディスプレイユニットを含み得る。たとえば、ディスプレイは発光ダイオード(LED)表示デバイス、有機LED(OLED)表示デバイス、液晶ディスプレイ(LCD)デバイス、プラズマ表示デバイス、または任意の他の種類の表示デバイスを含み得る。
【0036】
サーバデバイス50は、ネットワークインターフェース54、遠隔物体データベース52、および制御ユニット60を含む。この例において、制御ユニット60は特徴マッチングユニット62と信用評定ユニット64を含む。ネットワークインターフェース54は、ネットワークインターフェース54がネットワーク40のようなネットワークと通信できる任意型のインターフェースであり得るという点で、クライアントデバイス10のネットワークインターフェース32と同様であり得る。特徴マッチングユニット62は、クライアントデバイス10から受け取られた特徴記述子に基づいて、画像データにおける1つまたは複数の特徴あるいは物体を識別するために特徴マッチングを行うユニットである。
【0037】
特徴マッチングユニット62は、この特徴識別を実行するために遠隔物体データベース52にアクセスすることができ、遠隔物体データベース52は、特徴記述子を定義するデータを保存し、少なくともいくつかの受信した特徴記述子と画像データから抽出された対応する特徴または物体を識別する識別データとを関連させる。信用評定ユニット64は、受信した特徴識別子に対応すると識別された物体が画像データにおける物体の実際のIDであるという信用を示す信頼値を決定する。
【0038】
遠隔物体データベース52に保存された物体は、複数の特徴記述子を含むことができ、クライアントデバイス10から受け取った特徴記述子は、遠隔物体データベース52における物体の特徴記述子のサブセットのみに合致し得る。一般に、信頼値は、受信した特徴記述子と対応する物体に関連する特徴記述子との一致度である。したがって、信頼値が高ければ、受信した特徴記述子が遠隔物体データベース52に保存された物体の、比較的多くの特徴記述子に合致するということを示し得、信頼値が低ければ、受信した特徴記述子が遠隔物体データベース52に保存された物体の、比較的少ない数の特徴記述子に合致するということを示し得る。
【0039】
クライアントデバイス10から受け取った特徴記述子の物体のIDを判定した後、特徴マッチングユニット62は、判定したIDを示す識別データを提供する。同様に、信用評定ユニット64は、判定されたIDが受信した特徴記述子に適切に合致することの信用を評価し、対応する信頼値を生成し、クライアントデバイス10にその信頼値を供給する。クライアントデバイス10は、信頼値が閾値を超えているかを判定し、超えていなければ、画像データのさらなるオクターブから追加的な特徴記述子を抽出し、さらなる解析のためにこれらの追加的な特徴記述子をサーバデバイス50に送ることができる。
【0040】
最初に、クライアントデバイス10のユーザは、クライアントデバイス10にインターフェース接続して画像検索を開始できる。ユーザは、ユーザインターフェースあるいはクライアントデバイス10のディスプレイで提示される他の種類のインターフェースにインターフェース接続して画像データを選択し、次いで画像検索を開始して、画像データとして保存された画像の中心である1つまたは複数の特徴あるいは物体を識別できる。たとえば、画像データは1つの有名なアートワークの画像に対応し得る。ユーザは、この画像をクライアントデバイス10のカメラ12を使用して取り込み、ネットワーク40からこの画像をダウンロードし、あるいは別の計算デバイスとのワイヤードまたはワイヤレス接続を通じて画像を局所的に検索できる。いずれにしても、画像データを選択した後、この例においてユーザは画像検索を開始して、たとえば、名前、アーティスト、および完成期日によって1つの有名なアートワークを識別できる。いくつかの実施形態では、たとえば、デバイスが拡張現実感アプリケーションのある実施形態を実行しているとき、画像検索は、カメラ12によって取り込まれた画像に対して自動的に開始される。
【0041】
画像検索の開始に応じて、クライアントデバイス10は特徴抽出ユニット22を呼び出して、画像データの分析で見つけたキーポイントの1つについて述べる少なくとも1つの特徴記述子を抽出する。制御ユニット20は、特徴記述子を使用して局所物体データベース30に照会し、および/または、ネットワーク40を通じて特徴記述子をサーバデバイス50に送付し、特徴記述子を使用して遠隔物体データベース52に照会できる。いくつかの例では、特徴抽出ユニット22は、ネットワーク40を通じた特徴記述子の送信前の特徴記述子を圧縮できる特徴圧縮ユニット(この例では図示せず)に特徴記述子を転送する。サーバデバイス50に送られると、制御ユニット20は特徴記述子をネットワークパケット、たとえば、TCP/IPパケットとしてカプセル化できる(カプセル化の前に圧縮され得る)。
【0042】
様々なコンポーネント、モジュール、またはユニットが本開示で説明されて、開示された技術を実行するよう構成されたデバイスの機能面を強調するが、これらのユニットは必ずしも異なったハードウェアユニットで実現される必要はない。むしろ、コンピュータ読み取り可能な媒体に保存された適切なソフトウェア、および/または、ファームウェアと一体となって、様々なユニットをハードウェアユニットと組み合わせるか、あるいは上記で説明される1つまたは複数プロセッサを含む、稼働中のハードウェアユニットの集合により提供され得る。この点で、本開示におけるユニットを参照すると、別々のハードウェアユニット、および/または、ハードウェアおよびソフトウェアユニットとして実装されてもされなくてもよい異なった機能ユニットが提案されている。
【0043】
上記で述べられるように、本開示の技術によれば、特徴抽出ユニット22は、カメラ12によって取り込まれた画像から特徴記述子を連続で抽出するように構成され得る。すなわち、特徴抽出ユニット22は第1のタイルから特徴記述子を抽出し、画像における物体のIDを正確に判定するのにそれらの特徴記述子を使用できるかを決定し、使用できなければ、1つまたは複数の後続のタイルから特徴記述子を抽出できる。異なるタイリングパターンは異なるオクターブ内で使用できる。
【0044】
訓練画像あるいは試験画像からの特徴属性は、特徴の生成および合致における複雑さを減少させるのに使用できる。これらの統計は、特徴抽出過程にかかわるパラメータを初期化するのに使用され得る。一度初期化されると、特徴抽出ユニット22は特徴を漸増的に抽出し、認識および/または推論を行い、そして、画像における物体IDの確実な決定に関しての認識が十分でないなら、次の組の特徴抽出のための特徴抽出パラメータを更新できる。訓練データ(局所物体データベース30に保存され、および/または、遠隔物体データベース52から検索され得る)と過去のクエリ統計を使用して、クエリ画像における物体の認識をより少ないステップで達成でき、それが計算の節約につながる。
【0045】
本開示の技術は1つまたは複数の利点を有する。たとえば、これらの技術は、たとえば、SIFTよりも速く局所的にSIFTの特徴記述子を抽出できる。これらの技術は、処理のスケール空間レベル(たとえば、オクターブレベル)の最も関連するサブセットを推定でき、それにより物体認識のスピードと複雑さを改善できる。さらに、これらの技術は、クライアントデバイス10(たとえば、携帯電話)の局所物体データベース30において、より早い検索を可能にする。すなわち、これらの技術は、最初に上位レベルからの特徴記述子の抽出を許可し、そして、十分な精度であるときに、アルゴリズムを止める。このように、
図1Aのシステム2のような分配型画像検索システムには比較的短い応答があり得る。最初に上位レベルから、特徴記述子がネットワーク40を通じてサーバデバイス50に累進的に送信され、サーバデバイス50は受信データにおける検索を何度か反復して実行し、一度十分な精度で合致すれば、結果または終了信号を送り返すことができる。検索結果または終了信号が受け取られた後、クライアントデバイス10は、サーバデバイス50に特徴記述子を送るのを止めることができる。
【0046】
図1Bを参照すると、4つのオーダを有する画像ピラミッドの概念
図100が示されている。
図100はスケールの概念を示し、異なる分解能オクターブにおいて入力画像102をどう処理できるかを強調するために提供される。たとえば、表されたオクターブ104、106、108、110の各々は、分解能(たとえば、75%、20%、4%、1%)を連続して抑える際の画像102である。固有の画像102は、0次画像であると考慮され、ピラミッドにおける後続の画像は、より高次またはより高いオクターブであると考慮される。画像のオーダ(たとえば、スケール、オクターブ)が増加するにつれて、分解能と対応するメモリ要件は減少する。高次画像106、108、110は、キーポイントのおおまかな合致に使用できる。より高いオクターブの処理では、クライアントデバイス10の計算力は保持される。低次画像104の位置および0次画像102は、姿勢調整ユニット26によって使用することができ、物体の姿勢を決定する。
【0047】
図2を参照すると、ラスタ走査パターンの画像におけるタイルの処理を示す概念
図200が示されている。
図200は、画像領域202と注目領域204を含み、タイルまたは周囲と呼ばれる。タイルパターンユニット24は、画像領域202を受信し、初期の注目領域204および対応する走査パターンを決定するよう構成される。たとえば、注目領域204は、頭上‘P'の対応領域を有する幅‘Q'とすることができる。特徴抽出ユニット22は、タイル204(たとえば、+/-δと共に(x、y)で定義される領域)を考慮してキーポイントを抽出できる。すなわち、キーポイントは局所的な周囲で抽出され、周囲は1回に1度だけ処理される。画像202は、タイル204が1回に1度だけ処理されるように、連続して処理される。一般に、この技術は、本明細書においてタイリングあるいはストライピングと呼ばれる。タイルという用語は、現在処理されている画像の周囲であると考慮できる。一般に、タイル204は、(たとえば、サブセットの)画像202内の注目領域である。画像202は、0次または高次で表示され得る。タイル204のサイズは一定であり、高位における画像の、より大きい位置をカバーできる。タイルパターンユニット24は、画像202においてタイル204を移動または走査できる。たとえば、
図200は、タイル204が画像部分領域(たとえば、ストライプ)を垂直に進む垂直なラスタ走査を示す。部分領域の最も下の位置に達しているとき、タイルは、画像領域202の先頭で始まる次のストライプおよび第1の重複領域Pの始めに移動する。そのプロセスを全体画像202に対して繰り返すことができる。
【0048】
特徴抽出ユニット22の性能により、寸法‘Q'と‘P'が成立できる。タイル204のサイズは、その処理とモバイルデバイス10で利用可能なフィルタリングパワーとに基づかせることができる。‘P'は画像処理に要するオーバヘッドである。大量のメモリを使用せずにタイルを処理するのは有益であり得る。例では、特徴抽出ユニット22は2つのシーケンス(たとえば、フィルタや入力サンプル)を畳み込む。この例において、タイル204は、任意の時間において処理される入力画像の局所的な周囲である。タイルの垂直サイズは、周囲で動作する最も長いフィルタのサイズに基づき得る。タイル(‘Q'または‘P+Q')の水平側面は、相対処理オーバヘッドP/Qを最小にするために、より長くなっている。例として、特徴を抽出するための入力画像に対する最も長いフィルタリング操作はサンプル25個分の長さであり、これは局所的平滑化、局所的差異、および極値検索を実行するのに必要なフィルタの組合せである。この例では、タイル204のサイズは、横方向に100ピクセル、垂直に25ピクセルであり得る。オーバヘッドPは約25である。第1のタイル位置を処理する結果的な出力は、より小さい約75ピクセル(たとえば、100-25に等しい)の行およびたった1ピクセルの高さを有する。これらは潜在的な特徴位置であり得る(たとえば、特徴位置である必要はない)。次の75ピクセルの行を第1の位置のすぐ下のタイルの第2の位置で処理できる。垂直ラスタ走査は例にすぎず、たとえば連続したタイル位置を処理するとき、走査パターンは限定されずに確定的に選ぶことができ、それは現在のスケールに基づくことができ、および/または、局所的な(たとえば、キャッシュされた)メモリの再利用を最大限にしようと試みることができる。
【0049】
最小値(たとえば、上記例における25)より大きいタイルの垂直サイズを維持できる一方、処理オーバヘッドの観点から利益が出ず、局所的なキャッシュ最小サイズを増やす必要性が出てくることがあり得る。上記の例のように垂直寸法が25にすぎなければ、第1のタイル位置で抽出されたすべての特徴は、最初に処理される75ピクセルの同じ行上にほぼ配置される。タイルを下向きにスライドさせると、第1のストライプ202内にすべて位置する特徴がより多く集められる。タイルが第1のストライプの底部に着くと、202に含まれるすべての特徴が抽出されて、記述子において暗号化される。たとえば、フィルタ、処理能力、および/または、利用可能なキャッシュメモリの設計に基づいて、タイルのスケールおよび形状は変化し、および/または変更され得る。
【0050】
図2をさらに参照しながら
図3を参照すると、拡張円のパターンに従った画像のタイル処理を示す概念
図300が示されている。
図300は、画像302および注目領域304を含む。上で述べられているように、注目領域304の寸法は、モバイルデバイス10が利用可能な処理能力に基づくことができる。この例において、タイルパターンユニット24は、画像302内の位置でタイリング処理を開始して、拡張円パターンで追加タイルを処理できることを決定できる。この処理パターンでは処理能力を最も効率的に使用できないことが認識できるが、パターンは一例にすぎず、タイルパターンユニット24を限定せずに構成して他のパターンを利用できる。実施形態において、タイルパターンユニット24は、大きくダウンサンプリングされたバージョンの画像に基づく初期タイルを選択できる。すなわち、画像のより低いオクターブバージョンでの走査の初期位置として、ダウンサンプリングされた画像における特徴の位置を使用できる。検索パターンは、ダウンサンプリングされた画像における1つまたは複数の特徴に基づくことができる。たとえば、初期特徴の周りの領域を処理することができ、次いで、第2の特徴の周りの領域を処理することができる。付加的な特徴を連続的に処理することができる。タイルパターンユニット24は、処理されるタイルの列と位置を対象とする他のパターンおよび基準を含み得る。初期タイルの位置は、画像内の相対位置(たとえば、中心、左上、右下)に基づくことができ、または、ユーザがディスプレイを触れるまたは起動するなど、ユーザによって識別された領域に基づくことができる。初期タイルは、クライアントデバイス10の方向および位置に基づいてディスプレイの地理的参照領域を識別するなど、位置サービス情報に基づくことができる。実施形態において、焦点長、ズーム比、コントラストなどの画像関連変数に基づいて、初期タイルは選択され得る。たとえば、広角であれば、初期タイルが画像の境界に位置するべきであることを示し得る一方、より高いズーム比であれば、初期タイルが画像の中心にあるべきであることを示し得る。いくつかの実施形態において、前画像内の位置、あるいは物体または特徴が検出または識別された前画像のスケールに基づいて、初期タイル、および/または、初期スケールを決定できる。クライアントデバイスと画像に関連する他の変数は、初期タイルを決定するのに使用され得る。
【0051】
動作中、
図2と
図3をさらに参照しながら
図4を参照すると、システム2を使用した画像の空間処理に基づいて検出パイプラインからの早期脱出を実行するための実例プロセス400を示すフローチャートが示されている。しかしながら、プロセス400は一例にすぎず、限定されない。プロセス400は、たとえば、段階を加えるか、取り除くか、または再配置することによって変更され得る。
図4は、クライアントデバイス10の構成要素について説明する。しかしながら、
図4の方法は他のデバイスによって実行され得る、または様々なデバイスによって共同で実行され得ることは理解されるべきである。たとえば、サーバデバイス50(
図1A)の制御ユニット60は、
図4の方法を実行するように構成され得る。
【0052】
一般に、プロセス400は画像における物体を検出するのに要する時間を短くできる。検出時間は、画像202内のキーポイントの位置と性質に依存することができる。特徴抽出ユニット24は、タイル204から特徴を抽出するための抽出アルゴリズムを含み、制御ユニット20は、ジオメトリを接続することに基づいて特徴を互いに関連させる照会形式で抽出された特徴を提供する。これらの特徴とジオメトリは、同様に抽出された特徴を有する1つまたは複数の物体データベース30と52に保存された参照画像と比較できる。その目的は、特徴と、クエリ画像からデータベースの画像まで特徴を繋ぐ基本的なジオメトリとを比較して、最も合致するものを見つけることである。プロセス400は直接0次画像に実行され、および/または高次画像に実行され得る。実施形態では、初期タイルの位置、および/または、低次画像で使用されるラスタ走査パターンを決定するために、プロセス400に従って高次画像を処理することができる。いくつかの実施形態では、初期タイル、および/または、使用されるラスタ走査パターンが決定した後、決定した初期タイル、および/または、ラスタ走査パターンを使用して、低次画像をプロセス400に従って処理する。
【0053】
段階402では、制御ユニット20は物体の画像を受け取る。たとえば、カメラ12は物体の画像202を取り込むことができ、制御ユニット20はカメラモードを経て、または以前に保存した画像ファイルから画像を受け取る。段階404では、特徴抽出ユニット22はオクターブを選択することができ、または受け取った画像をより低いスケール(すなわち、高次)へダウンサンプリングして処理を開始できる。プロセス400が画像のゼロオクターブで利用できる時は、段階404は任意である。より高いオクターブ(すなわち、ダウンサンプリングされた画像)では、特徴認識が十分であり、低いオクターブでの処理を補助する特徴定位情報を提供できる。
【0054】
段階406では、タイルパターンユニット24は、処理される初期タイル204を決定できる。実施形態において、初期タイルは画像202の左上隅にあり、後続のタイルはラスタ走査パターンで処理できる。別の実施形態において、
図3を参照すると、初期タイル304は、大きくダウンサンプリングされた画像の複雑性の低い検索に基づくことができ、追加タイルはタイル処理パターンに従って、低次画像で処理できる。タイルは順番にまたは連続して処理できるので、タイル処理パターンは、
図3に示すように絶え間なく連続する必要はない。
【0055】
初期タイル(たとえば、204、304)を決定した後、特徴抽出ユニット22は、初期タイルからキーポイントを抽出できる。特徴抽出ユニットは、特徴を抽出するよう構成されたアルゴリズム、およびタイルの対応するジオメトリを適用できる。一実施形態において、特徴抽出モジュール22は単一のタイルを処理し、次いで制御ユニット20は、シーケンス(たとえば、ラスタ走査、拡張円、または他のパターン)で次のタイルに移行する前にデータベース(たとえば、局所物体データベース30か遠隔物体データベース52のどちらか)において特徴が合致しているかを判定する。たとえば、段階408では、特徴抽出ユニット22は、タイルから特徴を抽出するのにガウスぼかしフィルタリングなどの特徴検知アルゴリズムを利用できる。段階410において、特徴抽出ユニット22は、もしあれば、タイル204で抽出された特徴の数を決定し、処理されるタイル毎に抽出された特徴の合計を保持できる。一般に、タイルが初期位置から前方へ進むので、抽出された特徴の総数はリニアに増え、合致するクエリを形成する際に累積する特徴のすべてが考慮される。たとえば、特徴抽出ユニット22はN個のタイルを繰り返し処理し、N個のタイルにおいて検出された特徴の累積合計を保存できる。
【0056】
段階412において、特徴抽出ユニット22は、処理されたタイルに対して検出された特徴の数と閾値とを比較できる。十分な数の特徴が検出される場合(たとえば、3、4、5、10、15、50)、次いで制御ユニット20は、段階414でマッチング手続きを実行できる。たとえば、検出された特徴と対応するジオメトリを1つまたは複数の物体データベース30および52に保存された特徴と比較することができる。制御ユニット20が物体は段階416で認識されたと判定すると、検出パイプラインは段階418で抜け出すことができる。一実施形態において、認識された物体の数が所定の閾値(たとえば、1、2、5、10個の物体)になるまで、プロセス400は継続し得る。たとえば、所定の閾値は、クライアント10で実行される拡張現実感アプリケーションによって確立され得る。物体検出(すなわち、マッチング手続き)の結果をユーザあるいは別のアプリケーションに提示できる。たとえば、マッチング手続きの結果はテキストまたは増加物としてクライアントデバイスに表示するか、またはネットワーク40を通して別の局所あるいは遠隔アプリケーション(たとえば、Webサービス)に提示できる。一実施形態において、マッチング手続きの結果は、後続のアクセス用のメモリにアプリケーションによって保存できる。
【0057】
一実施形態において、物体が段階416で認識されているとき、任意の段階416aで姿勢調整ユニット26は、物体の姿勢が物体データベース30、52の情報と幾何学的に一致しているかどうかを決定するよう構成される。たとえば、姿勢調整ユニット26は、最も低いオクターブに基づいて物体の姿勢の調整を試みることができる。姿勢調整情報が幾何学上一貫していない場合、次いでプロセス400は物体が認識されないと判定できる。姿勢調整ステップ416aでは、高オクターブ検索で見つかった誤検知に対してセーフガードを追加できる。物体が認識されない場合、姿勢情報が幾何学的に一致していないか、または特徴の数は十分でなく、段階420でシーケンスにおける次のタイルを処理できる。
【0058】
いくつかの実施形態において、自然オクターブ以外のオクターブはプロセス400に従って最初に処理されており、物体の閾値数が認識されていない場合、および/または、物体の閾値数の姿勢が幾何学的に一致していない場合、次いで、より低いオクターブはプロセス400に従って処理され得る。いくつかの実施形態において、第1のオクターブ(たとえば、最も高いオクターブ)が選択され、より低いオクターブは、プロセス400が検出パイプラインから抜け出る、物体の閾値数が認識されて幾何学的に一致するまで、プロセス400に従って連続して処理される。
【0059】
図5を参照すると、スケールおよび空間画像処理後の早期脱出を示す概念
図500が示されている。
図500は、カメラ視点を表す低オクターブ画像502(たとえば、ゼロか自然オクターブ)、またはモバイルデバイス10によって取り込まれた画像ファイルを含む。画像502は画像の上半分に位置する注目物体504(すなわち、自転車)を含む。一般に、特徴を含み得る画像502内の領域を検出するように特徴抽出ユニット22は構成され、初期タイル位置の領域を選択するようにタイルパターンユニット24を構成できる。また、特徴抽出ユニット22は初期タイルのスケールも決定できる。画像502に示されるように、物体は画像502の上半分に位置しており、画像の下半分でタイルを処理する理由はほとんどない。タイルパターンユニット24は走査パターンを決定する。一例では、第1のタイル508は、大きくダウンサンプリングされたオクターブ画像506(たとえば、ゼロオクターブ画像502の画素の約1%、5%、10%または15%を使用する)に位置できる。一般に、画像506は、いくつかの実施形態において画像502より高いオクターブである。原画像502は、最も低い(あるいは、自然な)スケール/オクターブとして記述され得る。一例において、画像506は、画像502のサイズの約4分の1であり(すなわち、各寸法が2分の1)、そして、第1のオクターブ(すなわち、原画像より高い1つのオクターブ)と呼ばれる。画像512は別の高オクターブであり、タイリングプロセスが別のオクターブで実施可能であることを証明するために提供される。たとえば、画像512は、原画像502のサイズの約16分の1(すなわち、各寸法が4分の1)であり得る。特徴抽出ユニット22は、周囲514で低複雑度の特徴検索を実行できる。制御ユニット20は局所統計を実行でき、注目物体504の位置は保存できる。たとえば、位置は画像の部分領域を識別できる。部分領域は(x1、y1)および(x2、y2)と定義でき、タイリングは部分領域内で発生できる。
【0060】
稼働中、特徴抽出ユニット22は、高オクターブ画像506、512(すなわち、大きくダウンサンプリングされた画像)を処理し、おおまかなレベルのマッチングを行うよう構成される。たとえば、特徴抽出ユニット22は、最初に特徴510と、第2の(より高い)オクターブ画像512における関連ジオメトリとを検出できる。第2のオクターブ画像512を使用した、おおまかなマッチングの結果が成功しない場合、特徴抽出ユニット22は、低オクターブ画像(たとえば、初期オクターブ画像506)を処理するよう構成される。一般に、特徴抽出ユニット22の出力は、カメラ視点502における目標物体が注目物体である(たとえば、物体データベース30および52のうちの1つにおける情報と相互関連がある)かどうかを示すものである。
【0061】
述べられたように、特徴抽出ユニット22は高オクターブ画像506、512を処理することができ、特徴510が注目物体504であるかどうかを決定する。姿勢調整ユニット26は、物体の姿勢を決定するために低オクターブ画像516からタイルを処理するよう構成される。たとえば、低オクターブ516は画素レベルドメイン(たとえば、自然オクターブ502)にあり得る。一般に、高オクターブ画像(たとえば、506、512)は、より大きくダウンサンプリングされたオクターブである。一般に、高オクターブ画像512は、物体504のおおまかな位置を決定するのに十分である。たとえば、特徴抽出ユニット22は、ダウンサンプリングされた画像512のだいたいの位置での処理に基づいて領域518を識別するよう構成される。姿勢調整ユニット26は、物体504の特徴510を含む領域518を処理するよう構成され、物体504良姿勢を決定する。一実施形態では、姿勢調整ユニット26は、ダウンサンプリングされた画像512からの物体の推定位置について、おおまかなホモグラフィ射影を利用し、低オクターブ画像の領域518で局所検索を行う。姿勢調整ユニット26は、正規化相互相関(NCC)あるいは他の安価な特徴追跡技術を使用して、オリジナル分解能(たとえば、オクターブ0)における姿勢調整のための局所検索を行うことができる。領域518のサイズは、物体特徴510を検出するのに使用されるオクターブに基づき得る。たとえば、第1のオクターブ画像506がおおまかな局所化に使用されるなら、領域518はタイル508のサイズの4倍であり得る。同様に、タイル514がおおまかな局所化に使用されるなら、領域518のサイズはタイル514のサイズの16倍になる。タイルのサイズと割合は一例にすぎず、他のサイズや割合も限定せずに利用できる。
【0062】
1つまたは複数の例において、説明された機能はハードウェア、ソフトウェア、ファームウェア、またはそれらの如何なる組合せでも実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ読み取り可能な媒体に1つまたは複数の命令あるいはコードとして保存され、または送信され、ハードウェアベースの処理装置によって実行され得る。コンピュータ読み取り可能な媒体は、データ記憶媒体などの有形的表現媒体に相当するコンピュータ読み取り可能な記憶媒体、または、たとえば通信プロトコルに従って、ある位置から別の位置までのコンピュータプログラムの転送を容易にする如何なる媒体も含む通信媒体を含み得る。このように、一般に、コンピュータ読み取り可能な媒体は(1)非一時的な、有形のコンピュータ読み取り可能な記憶媒体か、(2)信号または伝送波などの通信媒体に一致し得る。データ記憶媒体は、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る、如何なる利用可能な媒体であり、本開示で説明された技術の実施のための命令、コード、および/または、データ構造を検索する。コンピュータプログラム製品は、コンピュータ読み取り可能な媒体を含み得る。
【0063】
例として、限定なく、有形のコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、CD-ROM、他の光ディスク記憶装置、磁気ディスク記憶装置、他の磁気記憶デバイス、フラッシュメモリ、または、命令あるいはデータ構造の形式で望ましいプログラムコードを保存するのに使用でき、コンピュータからアクセスできる如何なる他の媒体も含むことができる。また、如何なる接続も適切にコンピュータ読み取り可能な媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、あるいは赤外線、無線、マイクロ波などのワイヤレス技術を用いて、命令をウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、あるいは赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ読み取り可能な記憶媒体およびデータ記憶媒体は、接続、伝送波、信号、または他の一時的な媒体を含んでいないが、代わりに非一時的な、有形の記憶媒体に向けられていることを理解すべきである。本明細書において使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピー(登録商標)ディスク、ブルーレイディスクを含み、通常、ディスク(disk)はデータを磁気的に再生し、ディスク(disc)はレーザによって光学的にデータを再生する。また、上記の組合せは、コンピュータ読み取り可能な媒体の範囲に含まれるべきである。
【0064】
1つまたは複数のデジタルシグナルプロセッサ(DSPs)、汎用マイクロプロセッサ、特定用途向け集積回路(ASICs)、フィールドプログラマブル論理アレイ(FPGAs)、または他の同等な集積あるいは別個の論理回路など、1つまたは複数プロセッサによって、命令は実行され得る。したがって、本明細書において使用される「プロセッサ」という用語は、前述の如何なる構造、あるいは、本明細書において説明された技術の実施に適した、他の如何なる構造を意味する。さらに、いくつかの面で、本明細書において説明された機能性は、専用ハードウェア、および/または、符号化および復号化のために構成されたソフトウェアモジュール内で提供でき、あるいは組合せコーデックに組み込まれ得る。また、1つまたは複数の回路あるいは論理素子で本技術を完全に実施できた。
【0065】
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)またはICセット(たとえば、チップセット)を含む様々なデバイスまたは装置で実装できる。様々な構成要素、モジュール、またはユニットが本開示で説明され、開示された技術を実行するよう構成されたデバイスの機能面を強調するが、必ずしも異なるハードウェアユニットで実現される必要はない。むしろ、上記で説明されるように、適切なソフトウェア、および/または、ファームウェアと一体となって、様々なユニットがコーデックハードウェアユニットで組み合わせられるか、または上記で説明される1つまたは複数のプロセッサを含む稼働中のハードウェアユニットの集合によって提供され得る。
【0066】
様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内である。