【文献】
中島由勝 外1名,深層学習による特徴量データベース選択に基づくカメラ位置姿勢推定の高精度化,電子情報通信学会技術研究報告 PRMU2015−115−PRMU2015−131 パターン認識・メディア理解,一般社団法人電子情報通信学会,2016年 1月14日,第115巻 第414号,第213−217頁
【文献】
飯吉建彰 外1名,パノラマ画像作成のための画像モザイク生成法 移動物体を考慮した位置合わせと張り合わせ,画像ラボ,日本工業出版株式会社,2008年 6月10日,第19巻 第6号,第6−11頁
(58)【調査した分野】(Int.Cl.,DB名)
前記画像のサブセット、前記変換された画像のサブセット、および前記ホモグラフィを前記ニューラルネットワークに送信することをさらに含む、請求項1に記載の方法。
前記画像内の位置を識別することは、前記第1の摂動領域、前記第2の摂動領域、前記第3の摂動領域、および前記第4の摂動領域が前記画像外に延在しないように、前記画像内の位置をランダムに選択することを含む、請求項7に記載の方法。
前記比較に基づいて前記ホモグラフィを決定することは、前記コーナーの第1のセットと前記コーナーの第2のセットとの間の1つ以上の変位ベクトルを決定することを含み、前記1つ以上の変位ベクトルの各々は、第1の次元および第2の次元における対応するコーナー間のオフセットを示す、請求項7に記載の方法。
前記ホモグラフィを前記画像に適用することによって前記変換された画像を生成することは、前記ホモグラフィの逆を前記画像に適用し、前記変換された画像を生成することを含む、請求項7に記載の方法。
【発明を実施するための形態】
【0022】
本発明の実施形態は、画像の対にホモグラフィ推定を実施するための深層畳み込みニューラルネットワークに関する。実施形態は、ホモグラフィ推定タスクに好適なVisual Geometry Group式(VGG式)ネットワークの使用を含む。ある実装では、4点パラメータ化が、採用され、推定性能を改良する。深層ネットワークは、最初から訓練されるための有意な量のデータを利用するため、準無限の訓練トリプレットのデータセット
【化1】
が、MS−COCOデータセットのような実画像の既存のデータセットから作成され得る。本明細書に説明されるように、訓練トリプレット
【化2】
は、ランダム射影変換を実画像の大量のデータセットに適用することによって生成されることができる。本発明の実施形態はまた、分類としてのホモグラフィ推定問題の付加的定式化を含み、これは、ホモグラフィにわたる分布を生じ、推定されるホモグラフィの信頼度を決定するために使用されることができる。
【0023】
図1は、本発明の実施形態による、2つの画像間のホモグラフィの異なるパラメータ化を図示する。いくつかのインスタンスでは、第1のカメラ姿勢106aから捕捉されたオブジェクト104の第1の画像102aおよび第2のカメラ姿勢106bから捕捉されたオブジェクト104の第2の画像102bが、ホモグラフィHによって関連可能となり得る。例えば、いくつかの実施形態では、ホモグラフィHが、第1の画像102aに適用され、第2の画像102bを生成および/または再作成してもよく、逆ホモグラフィH
−1が、第2の画像102bに適用され、第1の画像102aを生成および/または再作成してもよい。いくつかの実施形態では、オブジェクト104は、第2の画像102bがホモグラフィHを使用して完璧に作成され得るような平坦表面であり得る。いくつかの実施形態では、オブジェクト104は、非平面であり得るが、第1の画像102aおよび第2の画像102bがホモグラフィHによって近似的に関係付けられ得るような第1のカメラ姿勢106aおよび第2のカメラ姿勢106bから十分な距離にあり得る。
【0024】
ホモグラフィHをパラメータ化する最も簡単な方法は、3×3行列および固定スケールを使用するものであり得る。ホモグラフィは、左画像内のピクセル([u,v])を右画像内のピクセル([u’,v’])にマッピングし、以下の式によって定数倍に定義される。
【数1】
3×3行列ホモグラフィは、回転および平行移動項の両方を含み得る。例えば、部分行列[H
11H
12;H
21H
22]は、ホモグラフィ内の回転項を表す一方、ベクトル[H
13H
23]は、平行移動オフセットである。回転および平行移動項を最適化問題の一部として平衡することは、困難であり得る。したがって、いくつかの実施形態では、単一種類の場所変数、すなわち、コーナー場所に基づく、代替パラメータ化が、深層ホモグラフィ推定のためにより好適であり得る。
【0025】
4点パラメータ化が、Δu
1=u
1’−u
1を第1のコーナーに関するu−オフセットとし、Δu
2=u
2’−u
2を第2のコーナーに関するu−オフセットとし、Δu
3=u
3’−u
3を第3のコーナーに関するu−オフセットとし、Δu
4=u
4’−u
4を第4のコーナーに関するu−オフセットとすることによって実装されてもよい。したがって、4点パラメータ化は、以下のように、ホモグラフィを表す。
【数2】
式中、Δv
i=v
i’−v
iは、i番目のコーナーに関するv−オフセットである。ホモグラフィの行列定式化と同等に、4点パラメータ化は、8つの数を使用する。いったん4つのコーナーの変位が、既知となると、H
4pointが、H
matrixに変換されることができる。これは、種々の技法を使用して、例えば、正規化直接線形変換(DLT)アルゴリズムまたはOpenCVにおける関数getPerspectiveTransform()を使用して、遂行されることができる。
【0026】
図2は、本発明のある実施形態による、ニューラルネットワーク201を訓練するためのシステム200を図示する。システム200は、複数の画像を訓練トリプレット発生器207に提供するために使用され得る、画像データベース205を含んでもよい。いくつかのインスタンスでは、訓練トリプレット発生器207は、入力画像I
Aを画像データベース205から受信してもよく、画像I
Aのサブセット
【化3】
、変換された画像I
Bのサブセット
【化4】
、および画像I
Aと変換された画像I
Bを関連させるホモグラフィH
AB(本明細書では、訓練トリプレットと称される)を生成してもよい。訓練トリプレット発生器207によって実施される種々の動作は、
図4および5A−5Fを参照してさらに詳細に説明される。いくつかの実装では、ホモグラフィH
ABは、サブセット
【化5】
をサブセット
【化6】
に正確にマッピングするため、グラウンドトゥルースホモグラフィと称され得る。
【0027】
本発明のいくつかの用途では、ニューラルネットワーク201は、Batch−NormおよびReLUとともに、3×3畳み込みブロックを利用し、これは、Oxford VGG Netに類似し得る。ニューラルネットワーク201は、入力として、128×128×2サイズの2チャネルグレースケール画像をとってもよい。例えば、ホモグラフィH
ABによって関係付けられる、2つの入力画像が、チャネルの観点からスタックされ、ニューラルネットワーク201の中にフィードされることができる。いくつかのインスタンスでは、8つの畳み込み層が、2つの畳み込みごとの後に最大プーリング層(2×2、ストライド2)を伴って使用される。8つの畳み込み層は、層毎に、64、64、64、64、128、128、128、128の数のフィルタを有してもよい。畳み込み層後、2つの完全結合層が続き得る。第1の完全結合層は、1024ユニットを有してもよい。確率0.5を有するドロップアウトが、最終畳み込み層および第1の完全結合層後に適用されてもよい。
【0028】
いくつかの実施形態では、2つの異なるネットワーク、すなわち、回帰ネットワークおよび/または分類ネットワークが、ニューラルネットワーク201内に実装されてもよい。ネットワークは、最後の層まで同一アーキテクチャを共有してもよく、一方のネットワークは、実数値出力を生じ、他方のネットワークは、別の量を生じる。回帰ネットワークは、直接、8つの実数値の数を生じてもよく、訓練の間、ユークリッド(L2)損失を最終層として使用する。分類ネットワークは、量子化スキームを使用してもよく、ソフトマックスを最後の層に有してもよく、訓練の間、交差エントロピ損失関数を使用してもよい。量子化は、ある固有の量子化誤差が存在することを示し得るが、分類ネットワークは、分類ネットワークを使用して生じたコーナー毎に、信頼度を生じることが可能であり得る。いくつかのインスタンスでは、21の量子化ビンが、8つの出力次元毎に使用され、これは、168の出力ニューロンを伴う最終層をもたらす。
【0029】
いくつかのインスタンスでは、ニューラルネットワーク201は、反復アルゴリズムまたは反復最適化アルゴリズムを使用して訓練され、これは、確率的勾配降下法アルゴリズムと称され得る。これらの反復最適化アルゴリズムは、ニューラルネットワークの加重のためのランダム設定から開始し、ネットワーク加重に対するニューラルネットワークの誤差信号の導関数である「勾配」を使用して、方向における加重を反復的に移動させる。いくつかの実装では、勾配算出は、微分積分の連鎖律を使用して実施される。勾配は、1つの訓練トリプレットを使用して決定されることができ、その場合、バッチサイズは、1のバッチサイズである。代替として、勾配は、訓練トリプレットのセット、例えば、64のトリプレットを使用して決定されることができる。本実装では、訓練は、64のミニバッチを用いて実施される。
【0030】
図2に図示されるように、サブセット
【化7】
および
【化8】
が、ニューラルネットワーク201の中に入力され、推定されるホモグラフィ
【化9】
が、ニューラルネットワーク201によって、サブセット
【化10】
および
【化11】
に基づいて生成され、比較が、誤差信号発生器211によって、推定されるホモグラフィ
【化12】
とホモグラフィH
ABとの間で行われ、誤差信号209が、誤差信号発生器211によって生成され、ニューラルネットワーク201が、誤差信号209に基づいて修正される。いくつかのインスタンスでは、誤差信号209に基づいてニューラルネットワーク201に行われる修正は、同一入力画像を使用したニューラルネットワーク201による後続実行後、誤差信号209がゼロに向かって駆動(例えば、減少)されるようなものである。例えば、誤差信号209が
【化13】
と等しい場合、ニューラルネットワーク201は、後続実行後、推定されるホモグラフィ
【化14】
がホモグラフィH
ABにより近づくように駆動されるように修正(または自動修正)されてもよい。これは、ニューラルネットワーク201内の畳み込み層を修正することによって遂行されてもよい。
【0031】
図3は、本発明のある実施形態による、画像(画像I
A等)に基づいてニューラルネットワーク(ニューラルネットワーク201等)のための入力を生成するための方法300を図示する。方法300の動作は、任意の順序で実施されてもよく、全ての動作が、方法300の実施の際、実施される必要があるわけではない。方法300の種々の動作は、
図5A−5Fに関連して示される。
【0032】
ブロック302では、画像I
Aが、受信される(例えば、
図5Aに図示される画像510)。画像I
Aは、ベクトルまたはピクセル(例えば、ラスタ)ベースである、2次元(2D)画像であってもよい。例えば、画像I
Aの各ピクセルは、グレースケール値(ピクセルあたり1つの数値を含む)またはRGBカラーモデル(ピクセルあたり3つの数値を含む)を使用して表されてもよい。いくつかの実施形態では、画像I
Aは、深度マップであることができ、画像I
Aの各ピクセルは、深度値であることができる。画像I
Aは、正方形、長方形、またはある他の形状であってもよい。画像I
Aを受信するステップは、システム200の内部または外部のいずれかのいくつかのソースから画像I
Aを受信する、読み出す、および/または取得するステップを含んでもよい。例えば、
図2に図示されるように、訓練トリプレット発生器207は、前の画像を使用して訓練トリプレットを生成するステップに続いて(例えば、その直後)、画像データベース205から画像I
Aを読み出してもよい。
【0033】
ブロック304では、位置pが、画像I
A内で識別される。位置pは、画像I
A内の単一場所(例えば、ピクセル場所)を含んでもよい、または画像I
Aのサブセットの4つのコーナーの場所等の画像I
A内の複数の場所(例えば、複数のピクセル場所)または画像I
Aのサブセット内の全てのピクセルを含んでもよい。いくつかの実施形態では、位置pは、画像I
Aの続いて識別されるサブセットの中心ピクセル場所に対応し、中心ピクセル場所は、画像I
Aの平均垂直ピクセル場所と画像I
Aの平均水平ピクセル場所の交差点である。いくつかの実施形態では、以下により完全に説明されるように、位置pを識別するステップは、画像I
Aの続いて識別されるサブセットが画像I
A外に延在しないように、画像I
A内のピクセル場所をランダムに選択するステップを含んでもよい。いくつかの実施形態では、位置pを識別するステップは、続いて識別される摂動領域が画像I
A外に延在しないように、画像I
A内のピクセル場所をランダムに選択するステップを含んでもよい。
【0034】
ブロック306では、画像I
Aのサブセット
【化15】
が、位置pにおいて識別される。いくつかの実施形態では、サブセット
【化16】
は、
図5Aを参照して示されるサブセット520と類似してもよい、または、異なってもよい。例えば、サブセット
【化17】
は、第1のコーナー525a、第2のコーナー525b、第3のコーナー525c、および第4のコーナー525dによって定義された正方形であってもよい。サブセット
【化18】
は、
図5Aでは、正方形として描写されるが、他の実施形態では、サブセット
【化19】
は、長方形、三角形、円形、卵形、またはある他の多角形であってもよい。故に、本発明の実施形態は、正方形画像に限定されない。さらに、サブセット
【化20】
は、ピクセルの単一連続グループ化である必要はなく、ピクセルの複数の接続されていないグループ化の組み合わせであってもよい。随意に、サブセット
【化21】
(同様に、位置p)は、風景、都市の景観、人々、動物、壁、天井、床等の特徴を排他的に含む訓練画像等、所望のタイプの訓練画像に基づいて識別されてもよい。
【0035】
ブロック308では、サブセット
【化22】
を定義するコーナーのうちの少なくとも1つが、
摂動され、1つ以上の摂動されたコーナーを形成する。いくつかの実施形態では、サブセット
【化23】
を定義するコーナーのうちの少なくとも1つを摂動するステップは、
図5Bおよび5Cを参照して示されるものと類似してもよい、または、異なってもよい。例えば、
図5Bを参照すると、4つの摂動領域535が、サブセット520のコーナー525のそれぞれを囲繞するように形成されてもよい。具体的には、第1の摂動領域535aは、第1のコーナー525aを囲繞するように形成され、第2の摂動領域535bは、第2のコーナー525bを囲繞するように形成され、第3の摂動領域535cは、第3のコーナー525cを囲繞するように形成され、第4の摂動領域535dは、第4のコーナー525dを囲繞するように形成される。摂動領域はそれぞれ、摂動されたコーナー540の可能性として考えられる場所を表し、新しいコーナー場所に関するある確率分布と関連付けられてもよい。例えば、いくつかの実施形態では、ある摂動領域内の任意のピクセル場所が、ある摂動領域内の任意の他のピクセル場所が新しいコーナー場所である可能性と同様である一様分布が、採用される。他の実施形態では、コーナー525により近いピクセル場所が、新しいコーナー場所として選択される可能性がより高くなるような正規分布が、採用される。
【0036】
いくつかの実施形態では、変位ベクトル530が、コーナー525と摂動されたコーナー540を関連させるために、コーナー525毎に生成される。具体的には、第1の変位ベクトル530aが、第1の摂動領域535aによって定義された確率分布をサンプリングすることに基づいて生成されてもよく、第1のコーナー525aと組み合わせられ(例えば、加算され)、第1の摂動されたコーナー540aを形成してもよい。同様に、第2の変位ベクトル530bが、第2の摂動領域535bによって定義された確率分布をサンプリングすることに基づいて生成されてもよく、第2のコーナー525bと組み合わせられ(例えば、加算され)、第2の摂動されたコーナー540bを形成してもよい。類似動作が、第3の変位ベクトル530cおよび第4の変位ベクトル530dに対して実施されてもよい。
【0037】
いくつかのインスタンスでは、摂動領域535はそれぞれ、2ρの幅および高さを有する。言い換えると、サブセット
【化24】
を定義するコーナー525
はそれぞれ、垂直および水平方向の両方における範囲[−ρ、ρ]内の値によって摂動されてもよい。本開示のいくつかの実装では、位置pおよび摂動範囲ρは、摂動領域535が画像I
A外に延在しないように選択されてもよい。例えば、位置pは、サブセット
【化25】
の中心ピクセル場所に対応し、サブセット
【化26】
は、lの長さおよび高さを有する場合、少なくとも画像I
Aの全ての縁からρ+l/2の距離だけ離れるように位置pが選択されるとき、摂動領域535は、画像I
A外に延在しない。いくつかのインスタンスでは、位置pは、少なくとも画像I
Aの全ての縁からρ+l/2の距離だけ離れた領域によって定義される一様確率分布を使用して、画像I
A内のピクセル場所であるようにランダムに選択される。
【0038】
摂動されたコーナー540は、画像I
Aの修正されたサブセット545を定義する。コーナー525の少なくとも1つのコーナーが摂動されると、修正されたサブセット545は、修正されたサブセット545が、サブセット
【化27】
より少なくとも1つ多いピクセル、少なくとも1つ少ないピクセル、または異なる少なくとも1つのピクセルを含むように、サブセット
【化28】
と異なる。修正されたサブセット545自体が、サブセット
【化29】
のサブセットであってもよい、またはサブセット
【化30】
自体が、修正されたサブセット545のサブセットであってもよい。
図5Bおよび5Cは、サブセット520の全4つのコーナーが摂動されることを示すが、いくつかの実施形態では、1つ、2つ、または3つのコーナーが、摂動されてもよい。いくつかのインスタンスでは、変位ベクトル530は、修正されたサブセット545が、サブセット
【化31】
と同じサイズであるが、所定の方向に偏移され得るように、同じである。
【0039】
ブロック310では、ホモグラフィH
ABが、サブセット
【化32】
と修正されたサブセット545との間の比較に基づいて決定される。いくつかのインスタンスでは、サブセット
【化33】
と修正されたサブセット545との間の比較に基づいてホモグラフィH
ABを決定するステップは、コーナー525と摂動されたコーナー540との間の比較を含んでもよい。例えば、H
4pointの式(式2)を使用して、u−オフセットおよびv−オフセットが、変位ベクトル530、すなわち、コーナー525と摂動されたコーナー540との間のベクトルと等しくなるように設定されてもよい。決定された後、ホモグラフィH
ABが、1つのパラメータ化から別のパラメータ化に変換されてもよい。例えば、決定された後、ホモグラフィH
ABは、H
4pointからH
matrixまたはその逆に変換されてもよい。
【0040】
ブロック312では、変換された画像I
Bが、ホモグラフィH
ABを画像I
Aに適用することによって生成される。種々の方法が、ホモグラフィを決定するために検討されるため、ホモグラフィH
ABを画像I
Aに適用するステップは、画像I
AにホモグラフィH
ABを直接適用するステップ、またはホモグラフィH
ABの逆(例えば、(H
AB)
−1)を適用するステップのいずれかを含んでもよい。いくつかの実施形態では、変換された画像I
Bは、
図5Dを参照して示される変換された画像550と類似してもよい、または、異なってもよい。ホモグラフィH
ABを画像I
Aに適用するステップは、限定ではないが、乗算、除算、加算、減算、畳み込み、および同等物を含む、ホモグラフィH
ABと画像I
Aとの間の種々の動作のうちの1つ以上のものを実施するステップを含んでもよい。いくつかの実施形態では、画像I
Bは、I
B=I
A×(H
AB)
−1となるように、ホモグラフィH
ABの逆を画像I
Aで乗算することによって生成される。
【0041】
本明細書に説明されるように、ホモグラフィ変換H
ABが、同次座標内の3次元量として表される2次元点間で定義される(式1参照)。したがって、式x
i’=H
ABx
iは、数学的に精密である。しかしながら、ホモグラフィを高さH、幅W、および次元Dの画像に適用するとき、類似の簡潔な式:I’〜H
AB×Iが、利用されることができる。この式に関して、ホモグラフィを介したD−次元画像の変換は、(u’,v’)として参照されるI’から整数値ピクセル場所を求め、逆変換を適用し、オリジナル画像内の実数値座標(u,v)を取得し、次いで、双線形補間を使用して、オリジナル画像からのD−次元ピクセル値を補間することによって実施される。言い換えると、ホモグラフィを点に適用するとき、数学的精度が、利用されるが、しかし、ホモグラフィを画像に適用するとき、補間方法が、利用され、各ピクセルのD−次元値の値を推測する。補間は、任意の数の次元Dの画像のために類似様式で実装されるため、同一の式、すなわち、I’〜H
AB×Iが、グレースケール画像、カラー画像、RGB−D画像、および任意の大きな次元のDの画像のために利用されることができる。本明細書におけるホモグラフィを画像に適用する議論は、ホモグラフィを点に適用し、ピクセル値を補間する観点から、当業者によって理解されるであろうことを理解されたい。故に、画像ホモグラフィに関して同等物を有する式は、この点において、補間に基づく近似と理解されるべきである。
【0042】
ブロック314では、画像I
Bのサブセット
【化34】
が、位置pにおいて識別される。いくつかの実施形態では、サブセット
【化35】
は、
図5Dを参照して示されるサブセット555と類似してもよい、または、異なってもよい。例えば、サブセット
【化36】
は、サブセット
【化37】
と同じピクセル場所を有するが、同じピクセル値ではない、正方形であってもよい。例えば、サブセット
【化38】
は、サブセット
【化39】
と同じサイズ(例えば、幅および高さ)であってもよい。サブセット
【化40】
は、
図5Dでは、正方形として描写されるが、他の実施形態では、サブセット
【化41】
は、長方形、三角形、円形、卵形、またはある他の多角形であってもよい。さらに、サブセット
【化42】
は、ピクセルの単一連続グループ化である必要はなく、ピクセルの複数の接続されていないグループ化の組み合わせであってもよい。
【0043】
ブロック316では、サブセット
【化43】
が境界アーチファクト(例えば、未知のピクセル)を含むかどうかが決定される。例えば、画像I
A外のピクセル場所を含む、摂動領域535に起因して、サブセット
【化44】
は、画像I
B外に延在するピクセル場所を含んでもよい。そのような境界アーチファクトは、ニューラルネットワーク201の誤った訓練につながり得るため、境界アーチファクトを伴うサブセット
【化45】
が検出されたとき、方法300を再開することが有利であり得る(例えば、ブロック304またはブロック308において)。
図5Eを参照して示されるように、サブセット
【化46】
が、種々のコーナーを含む場合、コーナーのみが、決定が行われるために、境界アーチファクトに関してチェックされる必要がある。サブセット
【化47】
が境界アーチファクトを含まないと決定されると、方法300は、ブロック318に進んでもよい。
【0044】
ブロック318では、訓練トリプレット
【化48】
が、サブセット
【化49】
、サブセット
【化50】
、およびホモグラフィH
AB(
図5Fに示されるように)を組み合わせることによって生成される。ブロック318は、訓練トリプレット
【化51】
をニューラルネットワーク201および/または誤差信号発生器211に出力する、送信する、ルーティングする、および/または提供することによって実施されてもよい。
【0045】
図3に図示される具体的ステップは、本発明のある実施形態による、画像に基づいてニューラルネットワークのための入力を生成する特定の方法を提供することを理解されたい。ステップの他のシーケンスもまた、代替実施形態に従って実施されてもよい。例えば、本発明の代替実施形態は、異なる順序で上記に概略されたステップを実施してもよい。さらに、
図3に図示される個々のステップは、個々のステップの必要に応じて種々のシーケンスで実施され得る、複数のサブステップを含んでもよい。さらに、付加的ステップが、特定の用途に応じて、追加または除去されてもよい。当業者は、多くの変形例、修正、および代替を認識するであろう。
【0046】
図4は、本発明のある実施形態による、ニューラルネットワーク201を訓練するための方法400を図示する。方法400の動作は、任意の順序で実施されてもよく、全ての動作が、方法400の実施の際、実施される必要があるわけではない。方法400の種々の動作は、
図2および5A−5Fに関連して示される。ブロック402では、複数の画像が、受信される。複数の画像毎に、ブロック404から412が、実施されてもよい。
【0047】
ブロック404では、訓練トリプレット
【化52】
が、例えば、
図3を参照して図示される画像に基づいてニューラルネットワークのための入力を生成する方法に関連して説明されるような1つ以上の動作を実施することによって生成されてもよい。ブロック406では、訓練トリプレット
【化53】
が、例えば、訓練トリプレット
【化54】
をニューラルネットワーク201またはニューラルネットワーク201に結合される1つ以上のコンポーネント(例えば、誤差信号発生器211)に出力および/または送信することによって、ニューラルネットワーク201に提供される。
【0048】
ブロック408では、推定されるホモグラフィ
【化55】
が、ニューラルネットワーク201によって、サブセット
【化56】
および
【化57】
に基づいて生成される。ブロック410では、推定されるホモグラフィ
【化58】
が、ホモグラフィH
ABと比較される。比較は、推定されるホモグラフィ
【化59】
およびホモグラフィH
ABに基づいて、1つ以上の数学的演算を実施するステップを含んでもよい。ブロック410は、ニューラルネットワーク201、誤差信号発生器211、またはニューラルネットワーク201に結合されるある他のコンポーネントによって実施されてもよい。いくつかの実施形態では、ブロック410は、誤差信号発生器211によって、
【化60】
と等しい誤差信号209を計算するステップを含む。ブロック412では、ニューラルネットワーク201は、ブロック410において行われた比較に基づいて修正される。例えば、ニューラルネットワーク201は、後続実行後、推定されるホモグラフィ
【化61】
がホモグラフィH
ABにより近づくように駆動されるように、修正(または自動修正)されてもよい。さらに、ニューラルネットワーク201に行われる修正の程度は、誤差信号209に比例してもよい。
【0049】
ブロック414では、付加的画像が存在するかどうかが決定される。付加的画像が存在する場合、方法400は、ブロック404に戻り、訓練トリプレット
【化62】
が、次の画像I
Aに関して生成されてもよい。付加的画像が存在しない場合、方法400は、終了する。いくつかの実施形態では、付加的画像が存在しないと決定されると、方法400は、ブロック404に戻ってもよく、異なる訓練トリプレット
【化63】
が、以前に使用された画像に関して生成されてもよい。例えば、訓練トリプレット
【化64】
は、異なる摂動領域を使用して生成されてもよい、または方法400の以前の反復の間に異なるようにランダムにサンプリングされた類似摂動領域を使用して生成されてもよい。
【0050】
いくつかの実施形態では、ニューラルネットワーク201を訓練するために使用される訓練画像のタイプは、特定用途向けホモグラフィ推定エンジンが構築され得るように選択されてもよい。例えば、ホモグラフィ推定を介した平面SLAMを使用して屋内の工場の床をナビゲートする、ロボットが、屋内の工場のロボットの画像センサから捕捉された画像のみを用いて訓練され得る。
【0051】
図4に図示される具体的ステップは、本発明のある実施形態による、ニューラルネットワークを訓練する特定の方法を提供することを理解されたい。ステップの他のシーケンスもまた、代替実施形態に従って実施されてもよい。例えば、本発明の代替実施形態は、異なる順序で上記に概略されたステップを実施してもよい。さらに、
図4に図示される個々のステップは、個々のステップの必要に応じて種々のシーケンスで実施され得る、複数のサブステップを含んでもよい。さらに、付加的ステップが、特定の用途に応じて、追加または除去されてもよい。当業者は、多くの変形例、修正、および代替を認識するであろう。
【0052】
本発明の一実装では、ニューラルネットワーク201は、0.9のモーメンタムを用いた確率的勾配降下法(SGD)を使用して、単一Titan X GPU上で約8時間にわたって訓練される。0.005の基礎学習レートが、使用されてもよく、学習レートは、30,000回の反復回数毎に10倍減少されてもよい。ニューラルネットワーク201は、64のバッチサイズを使用して、90,000回の総反復回数にわたって訓練されてもよい。いくつかの実装では、Caffe等の一般的オープンソース深層学習パッケージが、利用されてもよい。訓練データを作成するために、MS−COCO訓練セットが、利用されてもよい。全ての画像は、320×240にサイズ調整され、グレースケールに変換されてもよい。いくつかの実施形態では、ホモグラフィによって関係付けられる128×128サイズの500,000対の画像パッチが、生成されてもよい。各摂動領域のρ値は、32に設定されてもよく、これは、128×128グレースケール画像の各コーナーが、総画像縁サイズの最大4分の1まで摂動され得ることを意味する。前述のように、より大きい摂動領域は、極端な画像変換を回避するために回避されてもよい。いくつかのインスタンスでは、ニューラルネットワーク201の加重は、ランダム値に初期化され、最初から訓練される(すなわち、事前訓練なし)。MS−COCO検証セットが、使用され、過剰適合を監視してもよい。
【0053】
図6は、本発明のある実施形態による、2つの画像に基づいて推定されるホモグラフィ
【化65】
を生成するための方法600を図示する。方法600の動作は、任意の順序で実施されてもよく、全ての動作が、方法600の実施の際、実施される必要があるわけではない。ステップ602では、ニューラルネットワーク201が、例えば、
図4を参照して図示されるニューラルネットワークを訓練する方法に関連して説明されるような1つ以上の動作を実施することによって、複数の画像を使用して訓練される。ステップ604では、第1のカメラ姿勢に基づく第1の画像が、受信される。第1の画像は、カメラによって捕捉された2D画像であってもよい。第1の画像を受信するステップは、第1の画像を受信する、読み出す、取得する、および/または捕捉するステップを含んでもよい。ステップ606では、第2のカメラ姿勢に基づく第2の画像が、受信される。第2の画像は、第1の画像と同一カメラまたは異なるカメラによって捕捉された2D画像であってもよい。ステップ608では、第1の画像および第2の画像が、ニューラルネットワーク201の中に入力される。ステップ610では、推定されるホモグラフィ
【化66】
が、第1の画像および第2の画像に基づいて生成されてもよい。例えば、第1の画像および第2の画像は、スタックされ、ニューラルネットワーク201の中にフィードされてもよく、これは、推定されるホモグラフィ
【化67】
を出力として生成してもよい。RGB画像に加え、本発明の実施形態は、限定ではないが、グレースケール画像、カラー画像、RGBD画像、赤外線画像、および同等物を含む、変動する次元およびモダリティの広範囲の画像に適用可能である。
【0054】
図6に図示される具体的ステップは、本発明のある実施形態による、2つの画像に基づいて推定されるホモグラフィを生成する特定の方法を提供することを理解されたい。ステップの他のシーケンスもまた、代替実施形態に従って実施されてもよい。例えば、本発明の代替実施形態は、異なる順序で上記に概略されたステップを実施してもよい。さらに、
図6に図示される個々のステップは、個々のステップの必要に応じて種々のシーケンスで実施され得る、複数のサブステップを含んでもよい。さらに、付加的ステップが、特定の用途に応じて、追加または除去されてもよい。当業者は、多くの変形例、修正、および代替を認識するであろう。
【0055】
図7は、本発明のある実施形態による、異なるコーナーの潜在的2D変位に関するスコアに対応する4つのプロットを図示する。いくつかの実施形態では(概して、分類ネットワークを利用するもの)、ニューラルネットワーク201が、特定のコーナー場所と関連付けられた信頼度が取得され得るように、潜在的2D変位毎にスコアを生成する。例えば、
図7を参照すると、コーナー4と関連付けられたスコアの分布は、コーナー3と関連付けられたスコアの分布より狭いため、コーナー4に関するコーナー場所は、コーナー3に関するコーナー場所を上回る信頼度を伴って推定され得る。
【0056】
図8は、本発明の実施形態および従来の技法の平均コーナー誤差の平均(ピクセル単位で表される)を示す、プロット800を図示する。本開示の一実装では、Warped MS−COCO14試験セットが、試験セットから5,000枚の画像を選定し、各画像をグレースケール640×480にサイズ調整することによって作成された。256×256サイズの対の画像パッチが、方法300およびρ=64を使用した対応するグラウンドトゥルースホモグラフィを用いて生成された。ニューラルネットワーク201の分類および回帰変形が、従来の技法と比較された。本開示のいくつかの実施形態は、128×128×2入力の固定サイズを予期するため、Warped MS−COCO14試験セットからの画像対は、ニューラルネットワーク201を通して通過される前に256×256×2から128×128×2にサイズ調整された。ネットワークによる4点パラメータ化ホモグラフィ出力が、次いで、これを考慮するために2倍に乗算され得る。分類ネットワークを評価するとき、最高信頼度を伴うコーナー変位が、4つの返されたコーナー毎に選定される。
【0057】
本実装の結果は、
図8に示される。平均コーナー誤差の平均は、4つのコーナー毎の推定されるコーナーと実際のコーナーとの間の平均誤差に対応する。いくつかの実施形態では、本メトリックを測定するために、グラウンドトゥルースコーナー位置と推定されるコーナー位置との間のL2距離が、算出される。
図8では、バー802は、回帰ネットワークを使用する本開示の実施形態に対応し、バー804は、従来のアプローチ(ORB+RANSAC)に対応し、バー806は、異なるコーナーの潜在的2D変位に関するスコア(
図7を参照して示されるもの等)が推定されるホモグラフィ
【化68】
に加えて生成される、分類ネットワークを使用する本開示の実施形態に対応する。回帰ネットワークは、最良性能を発揮するが、分類ネットワークは、信頼度をもたらし、結果を視覚的にデバッグする有意義な方法を提供することができる。
【0058】
図9A−9Dは、従来の技法および本発明の実施形態を使用したホモグラフィ推定結果を図示する。
図9Aおよび9Bは、ORBベースのホモグラフィ推定の出力を図示し、
図9Cおよび9Dは、本発明の実施形態の出力を示す。
図9Aを参照すると、画像905の領域910が、定義される。
図9Bを参照すると、画像905は、変換され、画像915を形成する。
図9Bでは、領域910は、画像905と画像915との間で使用されたのと同一の変換を使用して、領域920に変換された。したがって、ホモグラフィH
ABが、領域910と領域920との間に定義される。本ホモグラフィH
ABは、領域910を領域920に正確にマッピングするため、グラウンドトゥルースホモグラフィと称され得る。
図9Bでは、ORB等の従来の特徴検出器を使用して、推定されるホモグラフィを生成するための試みが成された。しかしながら、画像が、大きな割合の一様な空を含み、特徴検出器が適切に機能するための十分な数の特徴を欠いているため、推定されるホモグラフィは、生成されなかった。
【0059】
従来の方法と対照的に、
図9Cおよび9Dは、本発明の実施形態を使用して生成されたグラウンドトゥルースホモグラフィおよび推定されるホモグラフィを図示する。
図9Aと同じである、
図9Cを参照すると、画像905の領域910が、定義される。
図9Dでは、領域920は、ホモグラフィH
AB(すなわち、グラウンドトゥルースホモグラフィ)を通して、領域910に関係付けられる。加えて、
図9Dでは、領域940は、本発明の実施形態を使用して決定された推定されるホモグラフィ
【化69】
によって、領域910に関係付けられる。サブセット920とサブセット940との間の差異は、本実施例では、無視可能であって、事実上重複する領域をもたらす。故に、推定されるホモグラフィは、従来の方法が任意の推定されるホモグラフィを生成することに失敗したという事実にもかかわらず、グラウンドトゥルースホモグラフィに密接に合致する。
【0060】
図10A−10Dは、従来の技法および本発明の実施形態を使用したホモグラフィ推定結果を図示する。
図10Aおよび10Bは、ORBベースのホモグラフィ推定の出力を図示し、
図10Cおよび10Dは、本発明の実施形態の出力を示す。
図9A/9Bおよび9C/9Dに類似する様式において、画像1005の領域1010が、定義される。
図10Bを参照すると、画像1005は、変換され、画像1015を形成する。
図10Bでは、領域1010は、画像1005と画像1015との間で使用されたのと同一の変換を使用して、領域1020に変換された。したがって、(グラウンドトゥルース)ホモグラフィH
ABが、領域1010と領域1020との間に定義される。領域1010および領域1030は、ORBベースのホモグラフィ推定を使用して決定された推定されるホモグラフィ
【化70】
によって関係付けられる。
図10Aおよび10Bを参照すると、特徴検出プロセスが、領域1010内の特徴と領域1030内の特徴を接続する線1025によって図示される。ORBベースのホモグラフィ推定を使用して推定されるホモグラフィを生成するための十分な特徴が検出されたが、推定されるホモグラフィに関する平均コーナー誤差は、91.67であった。
【0061】
図10Cおよび10Dを参照すると、本発明の実施形態を使用して生成されたグラウンドトゥルースホモグラフィおよび推定されるホモグラフィが、図示および比較される。
図10Aと同じである、
図10Cを参照すると、画像1005の領域1010が、定義される。
図10Dでは、領域1020は、ホモグラフィH
AB(すなわち、グラウンドトゥルースホモグラフィ)を通して、領域1010に関係付けられる。加えて、
図10Dでは、領域1040は、本発明の実施形態を使用して決定された推定されるホモグラフィ
【化71】
によって、領域1010に関係付けられる。サブセット1020とサブセット1040との間の差異は、本実施例では、無視可能であって、事実上重複する領域をもたらす。本結果は、本発明の実施形態を使用して達成される4.10の平均コーナー誤差と比較して、
図10Bにおけるサブセット1030(91.67の平均コーナー誤差)とは際立って対照的である。
【0062】
図11A−11Dは、従来の技法および本発明の実施形態を使用したホモグラフィ推定結果を図示する。
図11Aおよび11Bは、ORBベースのホモグラフィ推定の出力を図示し、
図11Cおよび11Dは、本発明の実施形態の出力を示す。少量のガウス雑音が、カメラによって捕捉され得る実際の画像をシミュレートするための
図11Aおよび11Bにおける画像のそれぞれに追加された。
図11Aを参照すると、画像1105の領域1110が、定義される。
図11Bを参照すると、画像1105は、変換され、画像1115を形成する。
図11Bでは、領域1110は、画像1105と画像1115との間で使用されたのと同一の変換を使用して、領域1120に変換された。したがって、(グラウンドトゥルース)ホモグラフィH
ABが、領域1110と領域1120との間に定義される。領域1110および領域1130は、ORBベースのホモグラフィ推定を使用して決定された推定されるホモグラフィ
【化72】
によって関係付けられる。
図11Aおよび11Bを参照すると、特徴検出プロセスが、領域1110内の特徴と領域1130内の特徴を接続する線1125によって図示される。ORBベースのホモグラフィ推定を使用して、推定されるホモグラフィを生成するために十分な特徴が検出されたが、推定されるホモグラフィに関する平均コーナー誤差は、91.67であった。
【0063】
図11Cおよび11Dを参照すると、本発明の実施形態を使用して生成されたグラウンドトゥルースホモグラフィおよび推定されるホモグラフィが、図示および比較される。
図11Aと同じである、
図11Cを参照すると、画像1105の領域1110が、定義される。
図11Dでは、領域1120は、ホモグラフィH
AB(すなわち、グラウンドトゥルースホモグラフィ)を通して、領域1110に関係付けられる。加えて、
図11Dでは、領域1140は、本発明の実施形態を使用して決定された推定されるホモグラフィ
【化73】
によって、領域1110に関係付けられる。サブセットの有意な部分にわたって分散された多数の特徴が、ORBベースのホモグラフィ推定を使用して検出されたにもかかわらず、従来の方法から生じる平均コーナー誤差は、再び、本発明の実施形態を使用して達成されたものを有意に上回った(7.40と比較して51.92)。故に、本発明の実施形態は、異なるカメラ視点が画像変換をもたらす用途だけではなく、画像がぼけている用途および/またはぼけて/変換される用途にも使用のために好適である。
【0064】
図12は、本発明のある実施形態による、簡略化されたコンピュータシステム1200を図示する。
図12に図示されるようなコンピュータシステム1200は、ポータブル電子デバイス、携帯電話、または本明細書に説明されるような他のデバイス等のデバイスの中に組み込まれてもよい。
図12は、種々の実施形態によって提供される方法のステップの一部または全部を実施することができる、コンピュータシステム1200の一実施形態の略図を提供する。
図12は、種々のコンポーネントの一般化された例証を提供するためだけに意図され、そのいずれかまたは全てが、必要に応じて利用されてもよいことに留意されたい。
図12は、したがって、広義には、個々のシステム要素が比較的に分離された様式または比較的により統合された様式において実装され得る状況を図示する。
【0065】
コンピュータシステム1200は、バス1205を介して電気的に結合されることができる、または必要に応じて別様に通信し得る、ハードウェア要素を備えるように示される。ハードウェア要素は、限定ではないが、デジタル信号処理チップ、グラフィック加速プロセッサ、および/または同等物等の、1つ以上の汎用プロセッサおよび/または1つ以上の特殊目的プロセッサを含む、1つ以上のプロセッサ1210と、限定ではないが、マウス、キーボード、カメラ、および/または同等物を含むことができる、1つ以上の入力デバイス1215と、限定ではないが、ディスプレイデバイス、プリンタ、および/または同等物を含むことができる、1つ以上の出力デバイス1220とを含んでもよい。
【0066】
コンピュータシステム1200はさらに、限定ではないが、ローカルおよび/またはネットワークアクセス可能記憶装置を備えることができ、および/または、限定ではないが、プログラム可能である、フラッシュ更新可能である、および/または同等物であることができる、ディスクドライブ、ドライブアレイ、光学記憶デバイス、ランダムアクセスメモリ(「RAM」)等のソリッドステート記憶デバイス、および/または読取専用メモリ(「ROM」)を含むことができる、1つ以上の非一過性記憶デバイス1225を含む、および/またはそれと通信してもよい。そのような記憶デバイスは、限定ではないが、種々のファイルシステム、データベース構造、および/または同等物を含む、任意の適切なデータ記憶を実装するように構成されてもよい。
【0067】
コンピュータシステム1200はまた、限定ではないが、Bluetooth(登録商標)デバイス、802.11デバイス、WiFiデバイス、WiMaxデバイス、セルラー通信設備等、および/または同等物等のモデム、ネットワークカード(無線または有線)、赤外線通信デバイス、無線通信デバイス、および/またはチップセットを含むことができる、通信サブシステム1230を含み得る。通信サブシステム1230は、1つ以上の入力および/または出力通信インターフェースを含み、データが、一実施例として挙げるために以下に説明されるネットワーク、すなわち、他のコンピュータシステム、テレビ、および/または本明細書に説明される任意の他のデバイス等のネットワークと交換されることを可能にしてもよい。所望の機能性および/または他の実装懸念に応じて、ポータブル電子デバイスまたは類似デバイスは、通信サブシステム1230を介して、画像および/または他の情報を通信してもよい。他の実施形態では、ポータブル電子デバイス、例えば、第1の電子デバイスは、コンピュータシステム1200、例えば、電子デバイスの中に入力デバイス1215として組み込まれてもよい。いくつかの実施形態では、コンピュータシステム1200はさらに、作業メモリ1235を備え、これは、上記に説明されるようなRAMまたはROMデバイスを含むことができる。
【0068】
コンピュータシステム1200はまた、種々の実施形態によって提供されるコンピュータプログラムを備え得る、および/または本明細書に説明されるような他の実施形態によって提供される方法を実装し、および/またはシステムを構成するように設計され得る、1つ以上のアプリケーションプログラム1245等のオペレーティングシステム1240、デバイスドライバ、実行可能ライブラリ、および/または他のコードを含む、作業メモリ1235内に現在位置するものとして示される、ソフトウェア要素を含むことができる。単に、一例として、
図12に関連して説明されるもの等の前述の方法に関して説明される1つ以上のプロシージャは、コンピュータまたはコンピュータ内のプロセッサによって実行可能なコードおよび/または命令として実装され得、ある側面では、次いで、そのようなコードおよび/または命令は、説明される方法に従って1つ以上の動作を実施するように汎用コンピュータまたは他のデバイスを構成および/または適合するために使用されることができる。
【0069】
これらの命令および/またはコードのセットは、上記に説明される記憶デバイス1225等の非一過性コンピュータ可読記憶媒体上に記憶されてもよい。ある場合には、記憶媒体は、コンピュータシステム1200等のコンピュータシステム内に組み込まれ得る。他の実施形態では、記憶媒体は、コンピュータシステムと別個である、例えば、コンパクトディスク等の可撤性媒体である、および/または記憶媒体が、汎用コンピュータをその上に記憶される命令/コードを用いてプログラム、構成、および/または適合するために使用され得るように、インストールパッケージ内に提供され得る。これらの命令は、コンピュータシステム1200によって実行可能である、実行可能コードの形態をとり得る、および/または、例えば、種々の概して利用可能なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティ等のいずれかを使用したコンピュータシステム1200上へのコンパイルおよび/またはインストールに応じて、次いで、実行可能コードの形態をとる、ソースおよび/またはインストール可能コードの形態をとり得る。
【0070】
実質的な変形例が、具体的要件に従って構成されてもよいことが、当業者に明白となるであろう。例えば、カスタマイズされたハードウェアもまた、使用され得る、および/または特定の要素が、ハードウェア、アプレット等のポータブルソフトウェアを含む、ソフトウェア、または両方内に実装され得る。さらに、ネットワーク入力/出力デバイス等の他のコンピューティングデバイスへの接続も、採用されてもよい。
【0071】
前述のように、一側面では、いくつかの実施形態は、コンピュータシステム1200等のコンピュータシステムを採用し、本技術の種々の実施形態による方法を実施してもよい。一式の実施形態によると、そのような方法のプロシージャの一部または全部は、プロセッサ1210が、オペレーティングシステム1240の中に組み込まれ得る、1つ以上の命令の1つ以上のシーケンス、および/または作業メモリ1235内に含有される、アプリケーションプログラム1245等の他のコードを実行することに応答して、コンピュータシステム1200によって実施される。そのような命令は、記憶デバイス1225のうちの1つ以上のもの等の別のコンピュータ可読媒体から作業メモリ1235の中に読み取られてもよい。単に、一例として、作業メモリ1235内に含有される命令のシーケンスの実行は、プロセッサ1210に、本明細書に説明される方法の1つ以上のプロシージャを実施させ得る。加えて、または代替として、本明細書に説明される方法の一部は、特殊ハードウェアを通して実行されてもよい。
【0072】
用語「機械可読媒体」および「コンピュータ可読媒体」は、本明細書で使用されるとき、機械を具体的方式で動作させるデータを提供することに関わる、任意の媒体を指す。コンピュータシステム1200を使用して実装される、ある実施形態では、種々のコンピュータ可読媒体は、実行のための命令/コードをプロセッサ1210に提供する際に関わり得る、および/またはそのような命令/コードを記憶および/または搬送するために使用され得る。多くの実装では、コンピュータ可読媒体は、物理的および/または有形記憶媒体である。そのような媒体は、不揮発性媒体または揮発性媒体の形態をとってもよい。不揮発性媒体は、例えば、記憶デバイス1225等の光学および/または磁気ディスクを含む。揮発性媒体は、限定ではないが、作業メモリ1235等の動的メモリを含む。
【0073】
一般的形態の物理的および/または有形コンピュータ可読媒体は、例えば、フロッピー(登録商標)ディスク、可撓性ディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD−ROM、任意の他の光学媒体、パンチカード、紙テープ、孔のパターンを伴う任意の他の物理的媒体、RAM、PROM、EPROM、FLASH−EPROM、任意の他のメモリチップまたはカートリッジ、またはコンピュータが命令および/またはコードを読み取ることができる、任意の他の媒体を含む。
【0074】
種々の形態のコンピュータ可読媒体が、実行のための1つ以上の命令の1つ以上のシーケンスをプロセッサ1210に搬送する際に関わってもよい。単に、一例として、命令は、最初に、遠隔コンピュータの磁気ディスクおよび/または光学ディスク上で搬送されてもよい。遠隔コンピュータは、命令をその動的メモリの中にロードし、コンピュータシステム1200によって受信および/または実行される伝送媒体を経由して、命令を信号として送信し得る。
【0075】
通信サブシステム1230および/またはそのコンポーネントは、概して、信号を受信し、バス1205が、次いで、信号および/または信号によって搬送されるデータ、命令等を作業メモリ1235に搬送し得、そこから、プロセッサ1210が、命令を読み出し、実行する。作業メモリ1235によって受信された命令は、随意に、プロセッサ1210による実行前または後のいずれかにおいて、非一過性記憶デバイス1225上に記憶されてもよい。
【0076】
前述の方法、システム、およびデバイスは、実施例である。種々の構成は、必要に応じて、種々のプロシージャまたはコンポーネントを省略、代用、または追加してもよい。例えば、代替構成では、本方法は、説明されるものと異なる順序で実施されてもよく、および/または種々の段階は、追加される、省略される、および/または組み合わせられてもよい。また、ある構成に関して説明される特徴は、種々の他の構成において組み合わせられてもよい。構成の異なる側面および要素は、類似様式で組み合わせられてもよい。また、技術は、進歩するものであって、したがって、要素の多くは、実施例であって、本開示の範囲または請求項を限定するものではない。
【0077】
具体的詳細が、実装を含む、例示的構成の完全な理解を提供するために説明に与えられる。しかしながら、構成は、これらの具体的詳細を伴わずに実践されてもよい。例えば、周知の回路、プロセス、アルゴリズム、構造、および技法は、構成を曖昧にすることを回避するために、不必要な詳細を伴わずに示されている。本説明は、例示的構成のみを提供し、請求項の範囲、可用性、または構成を限定するものではない。むしろ、構成の前述の説明は、当業者に説明される技法を実装するための有効な説明を提供するであろう。種々の変更が、本開示の精神または範囲から逸脱することなく、要素の機能および配列に行われてもよい。
【0078】
また、構成は、概略フローチャートまたはブロック図として描写される、プロセスとして説明され得る。それぞれ、シーケンシャルプロセスとして動作を説明し得るが、動作の多くは、並行して、または同時に実施されてもよい。加えて、動作の順序は、再配列されてもよい。プロセスは、図内に含まれない付加的ステップを有してもよい。さらに、本方法の実施例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または任意のそれらの組み合わせによって実装されてもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコード内に実装されるとき、必要タスクを実施するためのプログラムコードまたはコードセグメントは、記憶媒体等の非一過性コンピュータ可読媒体内に記憶されてもよい。プロセッサは、説明されるタスクを実施してもよい。
【0079】
いくつかの例示的構成が説明されたが、種々の修正、代替構造、および均等物が、本開示の精神から逸脱することなく、使用されてもよい。例えば、前述の要素は、より大きいシステムのコンポーネントであってもよく、他のルールが、本技術の用途に優先する、または別様にそれを修正してもよい。また、いくつかのステップは、前述の要素が検討される前、間、または後に行われてもよい。故に、前述の説明は、請求項の範囲を束縛するものではない。
【0080】
本明細書および添付の請求項で使用されるように、単数形「a」、「an」、および「the」は、文脈によって明確に別様に示されない限り、複数参照を含む。したがって、例えば、「ユーザ」の言及は、複数のそのようなユーザを含み、「プロセッサ」の言及は、1つ以上のプロセッサおよび当業者に公知のその均等物等の言及を含む。
【0081】
また、単語「comprise(〜を備える)」、「comprising(〜を備える)」、「contains(〜を含有する)」、「containing(〜を含有する)」、「include(〜を含む)」、「including(〜を含む)」、および「includes(〜を含む)」は、本明細書および以下の請求項で使用されるとき、述べられた特徴、整数、コンポーネント、またはステップの存在を規定するために意図されるが、それらは、1つ以上の他の特徴、整数、コンポーネント、ステップ、行為、またはグループの存在または追加を除外するものではない。
【0082】
また、本明細書に説明される実施例および実施形態は、例証目的のみのためのものであって、それに照らして、種々の修正または変更が、当業者に示唆され、本願の精神および権限および添付の請求項の範囲内に含まれることを理解されたい。