(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-04
(45)【発行日】2022-11-14
(54)【発明の名称】照明パターンを受ける物体の画像取得を最適化するための方法及び装置
(51)【国際特許分類】
H04N 5/232 20060101AFI20221107BHJP
G03B 35/08 20210101ALI20221107BHJP
G03B 7/093 20210101ALI20221107BHJP
G03B 15/00 20210101ALI20221107BHJP
G03B 15/03 20210101ALI20221107BHJP
H04N 5/225 20060101ALI20221107BHJP
G01C 3/00 20060101ALI20221107BHJP
【FI】
H04N5/232
G03B35/08
G03B7/093
G03B15/00 T
G03B15/03 V
H04N5/225 600
G01C3/00 120
【外国語出願】
(21)【出願番号】P 2019163461
(22)【出願日】2019-09-07
【審査請求日】2020-01-29
(32)【優先日】2018-09-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504382671
【氏名又は名称】コグネックス・コーポレイション
(74)【代理人】
【識別番号】100119378
【氏名又は名称】栗原 弘幸
(72)【発明者】
【氏名】ウォルフ,ロバート
(72)【発明者】
【氏名】ペニー,トーマス
(72)【発明者】
【氏名】グロッセ,マーカス
【審査官】吉田 千裕
(56)【参考文献】
【文献】特開2014-032159(JP,A)
【文献】特開2016-011930(JP,A)
【文献】特開2014-238400(JP,A)
【文献】特開2008-009769(JP,A)
【文献】特開2008-252487(JP,A)
【文献】韓国公開特許第10-2012-0000234(KR,A)
【文献】特表2014-517285(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/222-5/257
G03B 35/08
G03B 7/093
G03B 15/00
G03B 15/03
G01C 3/00
(57)【特許請求の範囲】
【請求項1】
画像取得のためのパラメータを決定するシステムであって、
前記システムは1つ以上の画像センサを有し、前記各画像センサはシーンの画像セットを取得するように配置され、かつ、前記各画像センサは調整可能な撮像パラメータのセットを備えており、
前記システムはさらにシーン上に動くパターンを投影するように構成されたプロジェクタを有し、前記プロジェクタは調整可能なプロジェクタパラメータのセットを有しており、
前記システムはさらに前記1つ以上の画像センサ及び前記プロジェクタと通信するプロセッサを有し、前記プロセッサは、画像セットに基づいて生成された3Dデータのノイズを
、そのノイズに起因する3Dデータ内の欠落したピクセルに基づくノイズ閾値を下回らせるよう低減させるために、
前記プロジェクタに関する1つ以上の
動作上の制約又は熱制約のセットに基づいて
;
前記シーン上に動くパターンを投影するように前記プロジェクタを制御するために前記調整可能なプロジェクタパラメータのセット
、及び
前記シーン上の動くパターンの画像セットを取得するように前記1つ以上の画像センサを制御するために前記調整可能な撮像パラメータのセット
を決定するように構成されている、
上記システム。
【請求項2】
前記調整可能な撮像パラメータのセットは、前記画像セット内の各画像に対する各フレームの持続時間を示すフレーム時間を含み、
前記調整可能なプロジェクタパラメータのセットは、前記パターンが前記シーン上を移動する速度を含み、かつ
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットを決定することは、前記フレーム時間を最小化する運動速度を決定することを含む、
請求項1記載のシステム。
【請求項3】
前記プロセッサは更に、前記1つ以上の画像センサの視野を読み出すために必要な最小時間に基づいて前記フレーム時間を調整するように構成されている、請求項2記載のシステム。
【請求項4】
前記プロセッサは更に、前記プロジェクタの照明装置の最大露光での露光時間に基づいて前記フレーム時間を調整するように構成されている、請求項2記載のシステム。
【請求項5】
前記プロセッサは更に、前記1つ以上の画像センサの露光時間と、照明パラメータのセットに基づいて前記フレーム時間を調整するように構成されている、請求項2記載のシステム。
【請求項6】
前記照明パラメータのセットは、露光中の照明器出力、前記照明器の最大平均出力、最大照明器出力、ピーク照明器出力が全出力に設定されている場合の前記照明器の最大平均出力のうちの1つ以上又はそれらの組み合わせを含む、請求項
5記載のシステム。
【請求項7】
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットを決定することは、
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットに対する動作パラメータの初期セットを決定することと、
前記1つ以上の
動作上の制約又は熱制約のうちの熱制約に違反する、
動作パラメータの前記初期セットにおける1つ以上のパラメータを決定することと、
前記熱制約に適合するために前記1つ以上のパラメータを調整することと、
を含む、請求項1記載のシステム。
【請求項8】
前記熱制約に適合するために前記1つ以上のパラメータを調整することは、
ユーザの選好動作を決定することと、
ユーザの選好動作に基づいて前記熱制約に適合するために前記1つ以上のパラメータを調整することと、
を含む、請求項
7記載のシステム。
【請求項9】
前記ユーザの選好動作は、低レイテンシ設定を含み、かつ
前記1つ以上のパラメータを調整することは、連続的画像シーケンスの間に遅延を付加することを含む、
請求項
8記載のシステム。
【請求項10】
前記ユーザの選好動作は、非点滅設定を含み、
前記1つ以上のパラメータを調整することは、前記1つ以上の画像センサのフレーム時間を増やすこと、前記パターンが前記シーン上を移動する速度を下げるために前記プロジェクタの速度を下げること、又はそれらの組み合わせを含む、
請求項
8記載のシステム。
【請求項11】
1以上の画像センサ及びプロジェクタを用いてシーンの画像取得のためのパラメータを決定するためのコンピュータ化された方法であって、前記方法はプロセッサによって実行され、
前記プロセッサは前記プロジェクタに関する1つ以上の動作上の制約又は熱制約のセットを保存するよう構成され、
前記プロセッサは、前記1つ以上の動作上の制約又は熱制約のセットに基づいて、前記シーン上の動くパターンの画像セットを取得するように前記1つ以上の画像センサを制御するために前記プロセッサと通信する1つ以上の前記画像センサの各々に対する調整可能な撮像パラメータのセットを決定するよう構成され、前記各画像センサはシーンの画像セットを取得するように配置されており、かつ
前記プロセッサは、前記1つ以上の動作上の制約又は熱制約のセットに基づいて、前記シーン上に動くパターンを投影するように前記プロジェクタを制御するために前記シーン上に動くパターンを投影するように構成されたプロジェクタのための調整可能な
プロジェクタパラメータのセットを決定するよう構成されており、
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットは、前記画像セットに基づいて生成された3Dデータのノイズを、そのノイズに起因する3Dデータ内の欠落したピクセルに基づくノイズ閾値を下回らせるよう低減するように決定される、
上記方法。
【請求項12】
前記調整可能な撮像パラメータのセットは、前記画像セット内の各画像に対する各フレームの持続時間を示すフレーム時間を含み、
前記調整可能なプロジェクタパラメータのセットは、前記パターンが前記シーン上を移動する速度を含み、かつ
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットを決定することは、前記フレーム時間を最小化する運動速度を決定することを含む、
請求項
11記載の方法。
【請求項13】
更に、前記1つ以上の画像センサの視野を読み出すために必要な最小時間に基づいて前記フレーム時間を調整することを含む、請求項
12記載の方法。
【請求項14】
前記プロジェクタの照明器の最大露光での露光時間に基づいて前記フレーム時間を調整することを含む、請求項12記載の方法。
【請求項15】
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットを決定することは、
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットに対する動作パラメータの初期セットを決定することと、
前記1つ以上の
動作上の制約又は熱制約のうちの熱制約に違反する、
動作パラメータの前記初期セットにおける1つ以上のパラメータを決定することと、
前記熱制約に適合するために前記1つ以上のパラメータを調整することと、
を含む、請求項
11記載の方法。
【請求項16】
プロセッサ実行可能命令を保存する少なくとも1つの非一時的コンピュータ可読記憶媒体であって、前記プロセッサ実行可能命令は、少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、前記少なくとも1つのコンピュータハードウェアプロセッサに、
プロジェクタに関する1つ以上の動作上の制約又は熱制約のセットを保存させる動作を行わせ、
さらに、前記1つ以上の動作上の制約又は熱制約のセットに基づいて
、シーン上の動くパターンの画像セットを取得するように前記1つ以上の画像センサを制御するために前記プロセッサと通信する1つ以上の画像センサの各々に対する調整可能な撮像パラメータのセットを決定させる動作であって、前記各画像センサは前記シーンの画像セットを取得するように配置されてなるものである、動作を行わせ、
さらに、前記1つ以上の動作上の制約又は熱制約のセットに基づいて、前記シーン上に動くパターンを投影するように前記プロジェクタを制御するために前記シーン上に動くパターンを投影するように構成されたプロジェクタに対する調整可能なプロジェクタパラメータのセットとを決定する動作を行わるものであり、
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットは、前記画像セットに基づいて生成された3Dデータのノイズを、そのノイズに起因する3Dデータ内の欠落したピクセルに基づくノイズ閾値を下回らせるよう低減するように決定されるものである、
上記非一時的コンピュータ可読記憶媒体。
【請求項17】
前記調整可能な撮像パラメータのセットは、前記画像セット内の各画像に対する各フレームの持続時間を示すフレーム時間を含み、
前記調整可能なプロジェクタパラメータのセットは、前記パターンが前記シーン上を移動する速度を含み、かつ
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットを決定することは、前記フレーム時間を最小化する運動速度を決定することを含む、
請求項
16記載の非一時的コンピュータ可読媒体。
【請求項18】
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットを決定することは、
前記調整可能なプロジェクタパラメータのセットと前記調整可能な撮像パラメータのセットに対する動作パラメータの初期セットを決定することと、
前記1つ以上の
動作上の制約又は熱制約のうちの熱制約に違反する、
動作パラメータの前記初期セットにおける1つ以上のパラメータを決定することと、
熱制約に適合するために1つ以上のパラメータを調整することと、
を含む、請求項
16記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に記載する技術は、一般に、ランダム化照明パターンを受ける物体の画像の取得のための最適なパラメータの決定を含む、マシンビジョンの画像取得を最適化するための方法及び装置に関する。
【背景技術】
【0002】
先進的マシンビジョンシステムとそれらの基盤となるソフトウェアは、多様な製造及び品質管理プロセスにますます多用されている。マシンビジョンにより量産製品及びカスタム製品のいずれの生産においても、より迅速に、より正確に再現可能な結果を得ることができる。典型的なマシンビジョンシステムには、関心領域に向けられた1台以上のカメラ、関心領域に適当な照明を向ける照明源、画像を取得して送信するフレームグラバー/画像処理要素、マシンビジョンソフトウェアアプリケーションを実行して取得された画像を動作するためのコンピュータ又はオンボード処理デバイス、及びインタラクションのためのユーザインタフェースを含む。
【0003】
3Dビジョンシステムの1形態は、ベースライン上に1~数インチのカメラ間隔を置いて並置された少なくとも2台のカメラを採用するステレオカメラに基づくステレオビジョンベースのシステムは、通常エピポーラジオメトリと画像修正に基づいている。それらは相関ベースの方法を使用し、又は2台以上のカメラからの修正画像における対応関係を見つける緩和技術と組み合わせることができる。しかしながら従来のステレオビジョンシステムでは、計算の労力が必要なため物体及び/又はシーンの正確かつ高速な3次元データ再構成を迅速に生み出す能力が制限されている。
【発明の概要】
【0004】
開示された主題によれば、3D処理用の画像を取得するためのマシンビジョンシステムパラメータ(例えばカメラ及び/又はプロジェクタ/照明器のパラメータを含む)を最適化するための装置、システム、及び方法が提供される。システムは、種々のパラメータを最適化して、画像の完全なシーケンスを取得するために使用される最小フレーム時間を決定する一方で、種々の制約を課すように構成できる。幾つかの実施形態で、これらの制約はパラメータが設定されることにより、システムが3D再構成に十分な情報を有する画像を取得し、システムの機械的制限に適合し、及び/又は照明出力制限を強制する(例えば過熱、システムの損傷、オペレーターの負傷などを防ぐため)ように設計される。
【0005】
幾つかの態様は、画像取得のためのパラメータを決定するシステムに関する。システムは、1つ以上の画像センサを含み、各画像センサはシーンの画像セットを取得するように配置されており、各画像センサは調整可能な撮像パラメータのセットを備えている。システムは、シーン上に動くパターンを投影するように構成されたプロジェクタを含み、プロジェクタは調整可能なプロジェクタパラメータのセットを有する。システムは、1つ以上の画像センサ及びプロジェクタと通信するプロセッサを含み、プロセッサは画像セットに基づいて生成された3Dデータのノイズを低減するために、1つ以上の制約のセットに基づいて、調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットを決定するように構成されている。
【0006】
幾つかの例では、調整可能な撮像パラメータのセットは、画像セット内の各画像に対する各フレームの持続時間を示すフレーム時間を含み、調整可能なプロジェクタパラメータのセットは、パターンがシーン上を移動する速度を含み、そして調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットを決定することは、フレーム時間を最小化する運動速度を決定することを含む。プロセッサは更に、1つ以上の画像センサの視野を読み出すために必要な最小時間に基づいてフレーム時間を調整するように構成できる。プロセッサは更に、プロジェクタの照明装置の最大露光での露光時間に基づいてフレーム時間を調整するように構成できる。プロセッサは更に、1つ以上の画像センサの露光時間と、照明パラメータのセットに基づいてフレーム時間を調整するように構成できる。照明パラメータのセットは、露光中の照明器出力、照明器の最大平均出力、最大照明器出力、ピーク照明器出力が全出力に設定されている場合の照明器の最大平均出力のうちの1つ以上又はそれらの組み合わせを含むことができる。
【0007】
幾つかの例では、調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットを決定することは、調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットに対する動作パラメータの初期セットを決定すること、パラメータの初期セットの1つ以上のパラメータを決定すると、1つ以上の制約のうちの熱制約に違反すること、そして熱制約に適合するために1つ以上のパラメータを調整することを含むことができる。熱制約に適合するために1つ以上のパラメータを調整することは、ユーザの選好動作を決定すること、及びユーザの選好動作に基づいて熱制約に適合するために1つ以上のパラメータを調整することを含むことができる。ユーザの選好動作は、低レイテンシ設定を含むことができ、1つ以上のパラメータを調整することは、連続的画像シーケンスの間に遅延を付加することを含む。ユーザの選好動作は、非点滅設定を含むことができ、1つ以上のパラメータを調整することは、1つ以上の画像センサのフレーム時間を増やすこと、パターンがシーン上を移動する速度を下げるためにプロジェクタの速度を下げること、又はそれらの組み合わせを含む。
【0008】
幾つかの態様は、画像取得のためのパラメータを決定するためのコンピュータ化された方法に関する。この方法はプロセッサによって実行され、このプロセッサは、1つ以上の制約のセットを保存し、この1つ以上の制約のセットに基づいて、プロセッサと通信する1つ以上の画像センサの各々に対する調整可能な撮像パラメータのセットと(各画像センサはシーンの画像セットを取得するように配置されている)、シーン上に動くパターンを投影するように構成されたプロジェクタのための調整可能なプロジェクトパラメータのセットとを決定するように構成されており、調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットは、画像セットに基づいて生成された3Dデータのノイズを低減する。
【0009】
幾つかの例では、調整可能な撮像パラメータのセットは、画像セット内の各画像に対する各フレームの持続時間を示すフレーム時間を含み、調整可能なプロジェクタパラメータのセットは、パターンがシーン上を移動する速度を含み、そして調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットを決定することは、フレーム時間を最小化する運動速度を決定することを含む。この方法は、1つ以上の画像センサの視野を読み出すために必要な最小時間に基づいてフレーム時間を調整することを含む。この方法は、最小フレーム間距離と最大モータ速度の組み合わせに基づいてフレーム時間を調整することを含むことができる。この方法は、プロジェクタの照明器の最大露光での露光時間に基づいてフレーム時間を調整することを含むことができる。
【0010】
幾つかの例では、調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットを決定することは、調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットに対する動作パラメータの初期セットを決定すること、パラメータの初期セット内の1つ以上のパラメータを決定すると、1つ以上の制約のうちの熱制約に違反すること、そしてこの熱制約に適合するために1つ以上のパラメータを調整することを含むことができる。
【0011】
幾つかの態様は、プロセッサ実行可能命令を保存する少なくとも1つの非一時的コンピュータ可読記憶媒体に関し、少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、少なくとも1つのコンピュータハードウェアプロセッサに、1つ以上の制約のセットを保存する動作と、1つ以上の制約のセットに基づいて、プロセッサと通信する1つ以上の画像センサの各々に対する調整可能な撮像パラメータのセットと(各画像センサはシーンの画像セットを取得するように配置されている)、シーンに動くパターンを投影するように構成されたプロジェクタに対する調整可能なプロジェクタパラメータのセットを決定する動作とを実行させ、ここで、調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットは、画像セットに基づいて生成された3Dデータのノイズを低減する。
【0012】
幾つかの例では、調整可能な撮像パラメータのセットは、画像セット内の各画像に対する各フレームの持続時間を示すフレーム時間を含み、調整可能なプロジェクタパラメータのセットは、パターンがシーン上を移動する速度を含み、そして調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットを決定することは、フレーム時間を最小化する動作速度を決定することを含む。調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットを決定することは、調整可能なプロジェクタパラメータのセットと調整可能な撮像パラメータのセットに対する動作パラメータの初期セットを決定すること、パラメータの初期セット内の1つ以上のパラメータを決定すると、1つ以上の制約のうちの熱制約に違反すること、そして熱制約に適合するために1つ以上のパラメータを調整すること含むことができる。
【0013】
以上、開示の主題の特徴をややおおまかに述べたのは、以下に続く詳細な説明においてそれらがより良く理解されるように、また本発明の技術への寄与がより適切に評価されるようにするためである。言うまでもなく開示された主題の追加の特徴があり、それらは以下に説明されるとともに、本明細書に付属する特許請求の範囲の主題をなす。本明細書で用いられる表現及び用語は説明を目的としたものと理解すべきであり、限定するものと見なされてはならない。
【0014】
図面において、様々な図に示されている同一又はほぼ同一の各構成要素は同じ参照符号で表されている。見やすさのため、各図面にはすべての構成要素が表示されているわけではない。図面は必ずしも縮尺通りではなく、代わりに本明細書に記載する技術及び装置の種々の側面を示すことに重点が置かれている。
【図面の簡単な説明】
【0015】
【
図1】幾つかの実施形態による、1台のプロジェクタと2台のカメラがステレオ画像対応を生成するのに適したやり方でシーンの画像を取得するように配置されている例示的な実施形態を示す。
【0016】
【
図2】幾つかの実施形態による例示的なプロジェクタ構成要素を示す。
【0017】
【
図3】幾つかの実施形態による、一連の投影された光パターンの1つに対応する例示的なステレオ画像のペアを示す。
【0018】
【
図4】幾つかの実施形態による、シーンの例示的なステレオ画像のペアを示す。
【0019】
【
図5】幾つかの実施形態による、シーン上に投影された一連の光パターンに対応する例示的なステレオ時間画像シーケンスのペアを示す。
【0020】
【
図6A】幾つかの実施形態による、ビジョンシステムの動作パラメータを決定するための例示的な方法を示す。
【
図6B】幾つかの実施形態による、ビジョンシステムの動作パラメータを決定するための例示的な方法を示す。
【0021】
【
図7】幾つかの実施形態による、異なる動作パラメータを使用して取得された例示的な画像を示す。
【
図8】幾つかの実施形態による、異なる動作パラメータを使用して取得された例示的な画像を示す。
【
図9】幾つかの実施形態による、異なる動作パラメータを使用して取得された例示的な画像を示す。
【発明を実施するための形態】
【0022】
本明細書に記載する技術は、カメラに関連するパラメータ(例:フレーム時間、露光時間など)及び/又はパターンプロジェクタ(例:照明器のパラメータ、パターンの速度など)などのステレオビジョンシステムの動作パラメータを分析するために使用できる。発明者は、ビジョンシステムのための設定可能なパラメータが、システムの最適な設定を見つけるための複雑な考慮事項を生成できると判断した。発明者は更に、マシンビジョンシステムでは一部のパラメータはユーザが構成できる一方で、他のパラメータはユーザによって調整できないため、ユーザが利用可能なパラメータを制御して十分なノイズレベルの画像を達成することが困難になる可能性があると判断した。発明者は更に、熱的考慮及び/又はシステムの完全性を維持するように設計された他の考慮事項が動作パラメータに関連し得ると判断した。発明者は、システム動作パラメータを分析し、システムにとって最適動作パラメータを決定するマシンビジョンシステムの技術的改善を開発した。この技術はユーザ設定可能パラメータと非ユーザ設定可能パラメータのいずれも自動的に分析して調整することを含むことができる(例えばユーザ設定可能パラメータのセットのユーザによる設定に基づいて)。この技術は、システムが熱制限及び/又はシステムの他の動作上の制約に適合して動作中のシステム完全性を維持することを保証するために、動作パラメータに種々の制約を適用することを含む。
【0023】
以下の説明では、開示された主題の完全な理解を提供するために、開示された主題のシステム及び方法、並びにそのようなシステム及び方法が動作できる環境などに関して多くの特定の詳細が述べられる。加えて、以下に示す例は例示にすぎず、開示された主題の範囲内にある他のシステム及び方法が存在することが想定されていることが理解されるであろう。
【0024】
図1は、1台のプロジェクタ104と2台のカメラ106A、106B(集合的にカメラ106と呼ぶ)が、ステレオ画像対応を生成するのに適したやり方で物体又はシーン102の画像を取得するように配置されたマシンビジョンシステムの例示的実施形態100を示す。幾つかの実施形態で、複数のカメラを使用して取得された物体の画像シーケンスを時間的にコード化するためにプロジェクタ104が使用される。例えばプロジェクタ104は物体に回転パターンを投影でき、各カメラは物体の12~16の画像(又は他の数の画像)を含む画像シーケンスを取得できる。各画像は、画像を構成するピクセルのセットを包含している。幾つかの実施形態で、光パターンはパターンが物体又はシーン上を回動するように(例えばパターン自体が時計回り又は反時計回りに回転することなく)水平方向及び/又は垂直方向に移動してよい。
【0025】
カメラ106はそれぞれ電荷結合素子(CCD)画像センサ、相補型金属酸化物半導体(CMOS)画像センサ、又はその他の適当な画像センサを包含できる。幾つかの実施形態で、カメラ106はそれぞれローリングシャッター、グローバルシャッター、又はその他の適当なシャッタータイプを持つことができる。幾つかの実施形態で、カメラ106はそれぞれGigEビジョンインターフェース、ユニバーサルシリアルバス(USB)インターフェース、同軸インターフェース、FIREWIRE(登録商標)インターフェース、又は他の適当なインターフェースを持つことができる。幾つかの実施形態で、カメラ106はそれぞれ1つ以上のスマート機能を持つことができる。幾つかの実施形態で、カメラ106はそれぞれCマウントレンズ、Fマウントレンズ、Sマウントレンズ、又はその他の適当なレンズタイプを持つことができる。幾つかの実施形態で、カメラ106はそれぞれプロジェクタ、例えばプロジェクタ104に適合したスペクトルフィルタを持ち、プロジェクタのスペクトル範囲外の環境光を遮断することができる。
【0026】
カメラ/画像センサに適用できる幾つかの一般的なパラメータがある。本明細書に記載する例は画像センサに関して説明されるが、この技術はそのように限定されるものではなく、他のタイプのカメラ及び撮像装置にも適用できる。画像センサの露光時間は、センサに光が当たる時間を指すことができ、一定期間にわたって積分されて電荷画像などの信号を形成する。幾つかの画像センサは、(例えば従来のカメラのように)センサからの光を遮断して露光時間を制御する物理的なシャッターがない場合がある。それゆえ幾つかの画像センサは、すべてのピクセルを同時に露光するグローバルシャッターモード、又は各ラインがそれぞれ前のラインの露光開始から遅れて露光されるようにローリング式に露光するローリングシャッターモードを使用できる。幾つかの実施形態で、システムは、センサで受け取られた光の積分がいつ開始して停止するかを追跡して、露光時間の終わりに画像センサが情報の積分を効果的に停止することによって、特定の露光期間の電荷画像を生成できる。幾つかの実施形態で、画像センサは、センサの感光ノードの各々からの電荷信号を転送することによって電荷画像を生成できる(例えば画像センサは光を遮断するためにセンサを隠蔽する機械的又は光学的機構がないことがあるため)。
【0027】
画像センサには読み出し時間があり、その間に画像センサは保存された電荷画像を一度に1行ずつスキャンし、電荷を信号に変換し、信号をデジタル出力する。幾つかの実施形態で、この読み出しが露光と同時に実行されるようにシステムを構成することができる。例えばタイミングが正しければ、画像センサはフレームNを読み出している間に次のフレームN+1を露光できる。幾つかの実施形態において、シャッター動作(例えばグローバルシャッター又はローリングシャッター)は、例えば読み出しを中断しないやり方でフレーム露光のタイミングを取ることができるように、露光を終了して電荷情報をフレームメモリに転送できる。例えば画像センサが読み出しを実行するのに4ミリ秒かかるが、画像センサが1ミリ秒しか露光を実行しないように構成されている場合、画像センサは3ミリ秒が読み出し時間(4ミリ秒)に入るまで露光の実行を待機するように構成できる。
【0028】
一部の画像センサでは、フレーム時間は、画像センサが一連のフレームを提供するように構成されている場合、1つのフレームから次のフレームまでの間隔を指す。同時露光と読み出しを備えたセンサでは、最小フレーム時間は露光時間と読み出し時間の大きい方に基づいて近似的に決定できる。幾つかの実施形態で、フレーム時間はミリ秒で測定される。幾つかの実施形態で、フレームレートは、特定のフレーム時間において1秒間で達成可能なフレームの数を反映するために、1秒/最小フレーム時間である。フレームレートはHzで測定できる。画像センサは、最大フレームレートよりも遅く実行するように構成できる。例えば本明細書に記載するパターンを投影するシステムを使用する場合、熱上の理由(例えばプロジェクタ内で消費される出力のため、過熱を避けるため、画像センサに損傷を与える可能性を避けるためなど)や、画像内でパターンを移動できる速度の制限などのために、画像センサを最大フレームレートよりも遅く動作するように構成することが望ましいことがある。
【0029】
一部のシステムでは、ユーザが画像センサの1つ以上のパラメータを指定できる場合がある。例えばシステムは、ユーザが露光時間、関心領域(例えば撮像装置ピクセルの矩形などピクセルのサブセット)、デジタイザスパン及び精度、解像度(例えばフル解像度、サブサンプリング、又はX次元、Y次元若しくは両次元のビニング)などを指定することを可能にする。フレーム時間など幾つかのパラメータはユーザ設定可能ではないが、それはパラメータに対して適切な動作値を選択するのことがユーザにとって難しい場合があるためである。
【0030】
幾つかの実施形態で、一部の撮像パラメータが3D再構成プロセスに関連する場合がある。例えば本明細書に論じられるように、一部の3D撮像システムは、異なるカメラのシーケンスにわたる対応を検索して、最終的に3Dデータを決定するために使用される画像のシーケンスを取得するように構成される。それゆえ一部のシステムは、シーケンス間の最小間隔、シーケンス内の画像の数、連続するシーケンス間の遅延など、画像シーケンスに関連するパラメータを含むことがある。
【0031】
図2は、幾つかの実施形態による、プロジェクタの例示的な構成要素を示す。
図2は、プロジェクタ構成要素の2つの表示、即ちプロジェクタ構成要素を上から見た斜視図である第1の表示202と、プロジェクタ構成要素をわずかに回転させて上から見た、スライド206が見えている第2の表示204を示す。構成要素は、スライド206をx方向に直線的に動かす第1の構成要素と、スライド206をy方向に直線的に動かす第2の構成要素212を用いて(例えばリニア軸受)、スライド206を制御可能に移動させるために使用されるモータ208を含んでいる。モータ208は、モータ208に玉軸受接続216を介して回転可能に取り付けられているピース214を回転させる。ピース214は偏心形状を有しており、モータがピース214のシャフト214Aと、軸外でシャフトに結合された大きい部分214Bを回転させると、大きい部分214Bによって変動が引き起こされるようになっており、モータ208がシャフト214Aを回転させると第1及び第2の構成要素210及び212が協働してスライド206をX軸とY軸に沿ってシフトするが、スライド206を回転させない。プロジェクタの構成要素はベースプレート218に取り付けられて支持されている。
【0032】
幾つかの実施形態で、プロジェクタは様々なパラメータ及び/又は制約を含むことができる。幾つかの実施形態で、パラメータ又は制約は、モータ速度、マスクの所望の移動量、プロジェクタ照明器(例えばLED照明器)に関連するパラメータなどに基づくことができる。例えば幾つかのパラメータはモータ速度、例えば最大モータ速度及び/又は最小モータ速度に関連することがある。最大モータ速度は、モータが所望の精度(例えば±20%)に制御されて達成できる最大速度を毎秒ミリ回転で指定できる(例えば6000ミル回転/秒)。最小モータ速度は、モータが所望の精度(例えば±20%)に制御されて実行できる最小速度を指定できる。
【0033】
他の例として、シーケンスの動きやフレームの動きなど幾つかのパラメータはマスクの動きに関連することがある。シーケンスの動きは、画像の全シーケンスにわたるマスクの動きの所望の量を指定できる。シーケンスの動きは、画像ピクセルの単位(例えば180ピクセル、240ピクセル、300ピクセルなど)で指定できる。幾つかの実施形態で、シーケンスの動きはモータ回転で指定できる。フレームの動きは、1つの完全なフレーム時間(例えば1つのフレームの開始から次のフレームの開始まで)の間の所望の量の動きを指定できる。フレームの動きは、画像ピクセル単位で指定できる(5ピクセル、10ピクセル、15ピクセルなど)。幾つかの実施形態で、シーケンスの動きの制約は、3D再構成のための画像シーケンスを取得する際に使用される。幾つかの実施形態で、フレームの動きの制約は、単一のフレームを取得する際に使用される(例えばチェック目的のため)。幾つかの実施形態で、プロジェクタのパラメータ及び/又は制約は製造業者によって設定されてよく、それゆえユーザによって調整されなくてもよい。
【0034】
一部のプロジェクタパラメータは、マスクを照明して、その結果生じるパターンをシーン上に投影するために使用される照明器の照明強度に基づくことができる。例示的なLED照明器の動作パラメータは、最大LED入力出力、最大連続出力、ピークパルス出力が全出力に設定されたときの最大平均出力(100%)、最大ピーク出力持続時間(例えば全出力(100%)を使用するときの最大持続時間)などを含むことができる。放射出力は入力の0.3倍として近似でき、これはLEDで消費される熱出力が入力の約0.7倍であることを意味する。LED照明器には、しばしばファン冷却ヒートシンクやパッシブヒートシンクなどの冷却デバイスを備えている。LED照明器の冷却方法に応じて、照明器の動作パラメータが変わることがある。システムは、ファンが検出され、正常に動作しているか追跡してもよい。以下にファン冷却ヒートシンクを備えたLED照明器とパッシブヒートシンクを備えたLED照明器について、LED照明器パラメータの例示的なセットを示す。
【0035】
【0036】
図3は、一連の投影された光パターンの1つに対応するステレオ画像300及び350の例示的なペアを示す。例えばプロジェクタ104は物体に光パターンを投影でき、カメラ106はステレオ画像300及び350を取得できる。幾つかの実施形態で、2台のカメラからのステレオ画像シーケンスから3次元データを再構成するために、ピクセル302及び352などの対応するピクセルのペアを各カメラからの画像間で見出すことが必要な場合もある。1組の投影光パターンの1つに対応する例示的な一対のステレオ画像300及び350を示す。例えばプロジェクタ104は物体に光パターンを投影し、カメラ106はステレオ画像300及び350を取得することができる。幾つかの実施形態で、2つのカメラからのステレオ画像シーケンスから3次元データを再構成するため、ピクセル302及び352などピクセルのペアを各カメラの画像の間で見つける必要がある。
【0037】
一般論として、幾つかの3D技術は画像300及び350の左右の特徴をマッチングする。幾つかの実施形態で、マッチングを実行するために鋭いエッジを使用して画像間の視差を決定することができる。しかしながら滑らかな表面(例えばマーキング及び/又は急角度のない表面)は、画像300及び350に示された円などの十分な情報を返さない場合がある。本明細書で述べるパターン投影技術は、左/右の画像の特徴をマッチングするのに十分な情報を有する画像のシーケンスを取得するために使用でき、例えばピクセル値の時間シーケンスは経時的な輝度を示して、マッチングするピクセルの可能なパスに沿って一意の署名を生み出す。したがって例えばシーン内で物体が通常はステレオ画像対応検索を実行するのに十分な自然に発生する特徴を持たない場合でも、パターンは対応検索を実行するのに十分な情報を提供できる。
【0038】
図4は、ステレオ画像400及び450(及び関連するピクセル)の例示的なペアと、対応するピクセル402及び452を示しており、これらのピクセルは2つの画像400及び450に投影されたパターンの同じ部分を表している。例えば上述したように、プロジェクタ104はシーン上に光パターンを投影でき、カメラ106はステレオ画像400及び450を取得できる。取得されたステレオ画像400及び450を使用して2つのピクセル間の対応を識別することができる。幾つかの実施形態で、対応を識別するために時間の経過とともに取得されたステレオ画像のシーケンスが使用される。
【0039】
図4に示された単一のステレオ画像のペアから続いて、
図5は、プロジェクタ104がシーン上に時間の経過とともに異なる光パターンを連続的に投影すると、カメラ106は経時的ステレオ画像シーケンス500及び550と、対応する経時的ピクセル502及び552を取得できることを示している。各カメラ106は、時間の経過とともに一連の画像1、2、3、4、・・・Nを取得できる。経時的ピクセル502及び552は、それぞれ経時的ステレオ画像シーケンス500及び550にわたるピクセル(i,j)及び(i’,j’)に基づいている。経時的ピクセルはそれぞれ時間の経過とともにグレー値の順序付けられたリストG_i_j_tを含み、ここでtは離散的な経時的インスタンス1、2、3、4、・・・Nを示す。システムはシーン内で生成された照明強度の変化に基づいて、カメラ間の対応を解明できる。幾つかの実施形態で、マスク/パターンのほぼ任意の動きによって3Dデータを生成することができる。
【0040】
3D撮像技術は対応検索を改善するために動くパターンを使用することができる一方で、様々なパラメータが画像のノイズレベルに影響を及ぼすことがあり、結果として対応検索と最終的な3Dデータと関連するノイズに影響する。幾つかの実施形態で、3Dデータの精度(例えば3Dデータのノイズ)が、プロジェクタ及び/又はカメラのパラメータに基づいて影響を受けることがある。例えば3Dデータは、露光時間、フレーム時間、及び照明強度の1つ以上と組み合わせたマスクの動きに基づいて影響を受けることがある。本明細書に記載する技術を使用して、プロジェクタ及び/又はカメラを含むシステムにとって最適なパラメータを決定することができる。例えばこの技術は、マスクの動きなどプロジェクタに関連するパラメータを、画像センサの露光時間及び/又はフレームレートなど他のシステムパラメータ、並びに照明強度などの他のプロジェクタパラメータに基づいて決定できる。
【0041】
画像センサ及び/又はプロジェクタの1つ以上の様々なパラメータは、(例えばユーザによって及び/又はユーザへの出荷前に工場で)調整することができる。本明細書で述べるように、パラメータの一部はユーザ設定可能であるが、他のパラメータはユーザによって設定できないことがある。例えばパラメータを調整して、物体から収集される信号の量を制御できる。収集される信号の量は多数の要因によって、例えば物体の暗さや明るさはどの位か、物体はカメラからどの位離れているか、物体を照らしているLEDはどの位強力か、レンズのf数(例えばシステムの焦点距離と瞳孔の有効径の比率)、及び/又はセンサの応答性などによって影響される。一般論として、良好な信号を持った画像を取得するために、カメラやプロジェクタを含むシステムを設定することが望ましい場合がある。例えば画像が暗すぎる場合には値を識別できないことがある一方、画像が明るすぎる場合にはセンサは飽和していた。
【0042】
図6Aは、幾つかの実施形態による、カメラ及び/又はプロジェクタを含むシステムを設定するための例示的なコンピュータ化された方法600を示す。
図6Bに関連して説明した方法600及び方法650を含む本明細書に記載の技術は、任意の適切なコンピューティングシステム(例えば汎用コンピューティングデバイス(CPU)、グラフィック処理ユニット(GPU)、フィールドプログラマブルゲートアレイデバイス(FPGA)、特定用途向け集積回路デバイス(ASIC)、ARMベースのデバイス、又はその他の適当なコンピューティングシステム)で実行されてよく、本明細書に記載された技術の態様はこの点で限定されない。コンピューティングデバイスは、カメラ及びプロジェクタ、及び/又はカメラの一部(例えばスマートカメラ)に接続されたコンピューティングデバイスであってよい。一般論として、システムは、処理用にセンサから十分な画像を取得するために、プロジェクタによって十分なパターンを作成するというやり方でプロジェクタとセンサを制御するように構成されている。
【0043】
ステップ602で、コンピューティングデバイスは、カメラのセットの各カメラ(例えば
図1のカメラ106)から画像シーケンスを受け取る。ステップ604で、コンピューティングデバイスは、画像シーケンスに基づいて3Dデータを生成する。本明細書で述べるように、3D生成プロセスは3Dデータを生成するために画像シーケンス間の対応を見つけることを含んでよい。ステップ606で、システムは3Dデータに基づいてシステムの動作パラメータに対して1つ以上のアップデートを決定する。例えばシステムは、本明細書で更に述べるように、カメラ及び/又はプロジェクタの動作パラメータを調整することができる。幾つかの実施形態で、システムは、3Dデータを生成することなく動作パラメータを調整することができる。例えばシステムはユーザ設定可能パラメータに対する変更を分析して、パラメータが適切な設定値にならない及び/又はシステムの制約に違反するかどうかを判断できる。例えばシステムは、以下に更に述べるように、
図6Bに示される方法650を実行できる。ステップ608で、システムは動作パラメータが更に精緻化を必要とするか判定する。例えば動作パラメータがノイズ閾値を下回る3Dデータのノイズレベルを達成しなかった場合、方法はステップ606に基づいてアップデートされたパラメータを用いてステップ602に戻ることができる。そうでない場合は、方法はステップ610に進んで動作パラメータを設定する。
【0044】
ステップ606を参照して、幾つかの実施形態でシステムは、3Dがノイズを含むことを判定できる。例えば幾つかの実施形態で、システムは3Dデータを分析して、例えば欠落しているピクセルがあることに注目して(例えば3D範囲を再構成できなかった場合)、欠落しているピクセルの面積を最小化するようにパラメータを最小化することによって、ノイズを判定できる。本明細書で述べるように、これらの技術は、例えば露光時間及び/又はプロジェクタの輝度を調整することにより、総露光を調整することを含むことができる。
【0045】
図6Aの方法600は、システムを構成することを決定するために、システムはどのように(例えばステップ608を経由して)フィードバックを用いて決定するように構成できるかの例を示す。この潜在的に反復的なプロセスは、例示の目的のためにのみ説明されるものであり、限定することを意図するものではない。例えば幾つかの実施形態で、これらの技術は制約のセット(例えばパターン移動の制約、熱制約)を導出して、反復プロセスを用いることなくそれらの制約を満たす取得パラメータのセットを作成することができる。
【0046】
図6Bは、幾つかの実施形態による、カメラ及び/又はプロジェクタの構成を含むパラメータの設定をチェックするための例示的なコンピュータ化された方法650を示す。上述したように、方法650は、3Dデータのノイズを分析する一部として(例えばステップ606の一部として)及び/又は3Dデータを生成することなく実行されてよい。ステップ652で、コンピューティングデバイスは、カメラ及び/又はプロジェクタの動作パラメータのセットを決定する。ステップ654で、コンピューティングデバイスは動作パラメータのセット内のいずれかの動作パラメータが、カメラの熱制約のセットに基づいて調整が必要か否かを判定する。「いいえ」の場合、方法はステップ656に進み、コンピューティングデバイスは動作パラメータのセットを維持する。「はい」の場合、方法はステップ658に進み、コンピューティングデバイスは、動作パラメータのセット内の1つ以上の動作パラメータを熱制約のセットに適合するように調整する。
【0047】
本明細書で詳細に述べるように、システムに対して画像取得シーケンスがセットアップされると、システムは初期動作パラメータの特定のセットを決定できる。幾つかの実施形態において、システムはシステムパラメータに基づいて最初にフレーム時間を設定する。例えばシステムはフレーム時間を視野の読み取りに必要な最小時間に設定できる。以下にステップ654に関連して更に述べるように、システムは次に種々の制約に対して動作パラメータの初期セットを評価する。これらの制約は、物理的なシステム制約(例えばモータ速度、照明器出力など)や、熱制約などその他の制約を含んでよい。
【0048】
ステップ652を参照して、システムは(例えば動作パラメータの計算に使用するための)センサハードウェアパラメータを決定できる。例えばシステムは露光制限時間、読み出し制限時間、及び/又は最小フレーム時間を決定してよい。最小フレーム時間は、露光制限時間と読み出し制限時間の最大値に基づいて計算できる。露光制限時間は、露光時間に短い一定のオーバーヘッド(例えば1つの露光終了と次の露光開始間の最小間隔を達成するために使用できる)を加えた合計に基づいて計算できる。読み出し制限時間は、センサによってサポートされるモードに応じてセンサごとに異なる場合がある。例えばセンサはフル解像度モードに対するフレーム読み出し時間と、サブサンプリングモード(例えば2x2ビニングモード)に対するフレーム読み出し時間を持つことができる。サブサンプリングモードは、例えば一部のピクセルのみに対する値を出力し、他のピクセルは無視できる。例えば2x2ビニンモードは関心領域を2x2ピクセルのチャンクに分割して、各チャンクの左上のピクセルのみを出力し、他の3つのピクセルは無視できる。別の例として、2x2bイニングモードは関心領域を2x2ピクセルのチャンクに分割し、各チャンクに対して1つの値のみ出力できる(例えばチャンク内の4ピクセルの合計)。
【0049】
幾つかの例では、読み出し領域はモードに応じて調整できる。例えば一部のセンサでは、読み出し領域領域をフル解像度モードのフルセンササイズより小さく調整し、それに対応して読み出し制限フレーム時間を短縮できる(例えば速度を上げるため)。別の例として、一部のセンサでは、ビニングモードが制限された読み出し領域をサポートしないこともある。
【0050】
幾つかの実施形態で、上述したようにユーザはプロジェクタ及び/又は画像センサのパラメータを制御できるが、他のパラメータはユーザによって調整できない。例えばユーザはカメラの露光時間とプロジェクタの照明強度を制御できてよい。一般論として、これら2つのパラメータの積は最終的な画像を制御すると見なすことができる。なぜなら、例えば4ミリ秒の露光時間で25%の強度は、グレースケールの明るさの点で2ミリ秒の露光時間で50%の強度と同じ画像を達成できるからである。但し、これは常にそうであるとは限らない。例えば視野内に動く物体がある場合、或いは本明細書で述べるように動くマスク/パターンがある場合は、2ミリ秒の露光時間での実行は4ミリ秒の露光時間と比較して差異がある可能性がある(例えば4ミリ秒の露光時間はぼやけを引き起こす可能性がある)。
【0051】
幾つかの実施形態で、システムはシステムの動作パラメータを決定できる。システムは、最適な画像取得を提供するために、ユーザ指定の設定値及び/又は他のシステムパラメータを確認及び/又は調整することができる(例えばプロジェクタの物理的制約に適合するためのモーションブラーの処理)。例えばシステムは、処理用に十分な明瞭な画像取得を達成するために満たす必要がある1つ以上の制約に基づいて動作パラメータを評価できる。幾つかの実施形態で、システムは投影されたパターンの最小運動量に関連する制約を決定できる。例えば幾つかの考慮事項は、フレーム間を動くパターンに対する最小量、パターンが全画像シーケンスにわたって動く最小量、及び/又は両方を含むことができる。例えばパターンが個々のフレーム及び/又はシーケンスにわたって十分動かない場合、画像が互いに近すぎて、パターンの十分な動きを取得して対応検索に対する一意の署名情報を取得することができない可能性がある。それゆえシステムは、パターンがシーケンス全体を通して及び/又は個々のフレームを通してどれだけ動くべきかの最小閾値を設定するように構成できる。
【0052】
幾つかの実施形態において、システムはシーケンスの動きの制約を決定できる。これは画像シーケンス中の画像における投影されたパターンの明白な動きの最小量を設定でき、それによって画像は互いに十分異なり、適切な深度抽出のためのシーケンスにおいて十分な情報を与えることができる。上述したように、幾つかの実施形態で、プロジェクタはパターンを動かして同じ向きを維持する(例えばパターンがレンズの焦点面にとどまり、視野に投影される直径2mmの円内で動く)。幾つかの実施形態において、シーケンスの動きはモータの毎秒回転数によって表現できる(例えばパターンは円弧内を「X」rpsで動く)。幾つかの実施形態で、シーケンスの動きは、画像シーケンス全体にわたってパターンが合計で動く特定数のピクセルで表現することができる。例えば、パターンは特徴的な空間周波数でスムーズに変化するように投影されるので、システムは、画像ピクセルの平均変化が再構成プロセスに有用な新しい情報を提供し、その運動を画像シーケンス全体にわたって外挿するのに十分であるように、画像内のパターンの運動の特定数のピクセルを取ることを決定できる。例えば黒から白に行くのに10ピクセル取るとしたら、パターンを変化させて次の画像が再構成に追加すべき十分新しい情報を持つようにするためには、5ピクセル程度取ることになろう。この数を外挿して、シーケンス全体にわたる運動量を指定できる。
【0053】
幾つかの実施形態で、制約は、単一の露光時間中に動きすぎないようにパターンを制御、することができる(例えば動きすぎるとぼやけが生じて、画像のパターンがシーケンス全体で識別できなくなる可能性がある)。例えばシステムはフレーム露光比(FER)制約を決定することができ、それにより露光中に動きの所望の量を設定して単一の画像内の過度のぼやけを回避できる。例えばFERは、露光時間に対するフレーム周期の最小比を指定できる。FERは、範囲及び/又は最小値と最大値を使用して指定することもできる。例えばFERは、最小値、既定値、及び最大値で設定できる。幾つかの実施形態で、FER制約は、動きの最大量を設定する。幾つかの実施形態で、フレームに必要な動きの計算された最小量に基づいて決定して、システムが露光中に所定の割合の動き以上に求めないように指定できる。
【0054】
幾つかの実施形態で、システムはFER制約を使用して読み出し時間を決定できる。例えばFERが2であれば、各フレームの読み出し時間は最低でも露光時間の2倍であることを指定できる。システムがFERに適合する必要がなかったら、システムは露光時間と読み出し時間によってのみ制限されたフレームレートで実行される。幾つかの実施形態で、FERは、フレーム時間を通常は読み出し時間によって許容されるフレーム時間と比較してより長くするようにシステムを構成する。例えば4ミリ秒の読み出し時間と1ミリ秒の露光時間で、その構成のシステムは2のFERを満たす。ユーザが露光時間を上げ始めると(例えば明るい画像を取得するため)、システムは露光時間を最大2ミリ秒に上げ、読み出し時間は4ミリ秒のままで2のFERを満たすことができる。システムが2ミリ秒を超えるように露光時間を設定すると、システムはフレーム時間を増してやはり2.0のFERを維持するように構成できる。例えばシステムが良好な露光のために露光時間を3ミリ秒に設定すると、システムは2.0のFERを満たすために最小フレーム時間も6ミリ秒に設定できる(即ち3ミリ秒の露光時間の2倍)。システムがデータを4ミリ秒で読み出すことができ、それゆえ3ミリ秒の露光時間を維持できる場合でも、FERはシステムに特別アイドリング時間を追加して、6ミリ秒ごとに1フレームしか取得できないようにする。
【0055】
幾つかの実施形態で、プロジェクタの速度を調整してぼやけを制御することができる。上述したように、プロジェクタはモータ速度の特定の範囲を持つことができるので、システムはモータ速度をその範囲内に設定してスムーズなパターン移動を実現できる(例えばモータがこの範囲外の速度でパターンをスムーズに動かせない)。システムは、撮像装置の設定を調整する際にモータ速度を考慮に入れることができ、及び/又はその逆である。例えば非常に高速なフレーム時間の場合(例えばシステムが画像の中央部分しか処理できず、それゆえ減少した量のデータ、例えば取得したデータの1/4しか読み出せない場合)、システムはモータ速度を上げて、システムが高速フレーム時間内に必要なパターン移動距離を獲得できるようにパターンを十分速く移動することができる。フレーム速度が増加すると、システムはモータ速度の制限を使用して、フレーム時間が長くなりすぎるのを防ぐ(例えば特定のフレーム時間に対してモータは十分速く動かせないが、それでもパターンのスムーズな動きを提供できる)。
【0056】
それゆえ本明細書で述べるように、撮像装置パラメータ及び/又はプロジェクタパラメータを含むシステムパラメータに制約を課すことができる。システムは決定された制約(例えばシーケンスの動き及び/又はフレーム露光比の制約)を使用してシステムの1つ以上の動作パラメータを選択することにより、特定の画像品質を提供すること、投影されたマスクパターンを制御することなどができる。幾つかの実施形態で、制約はシステムに、通常はシステムでの使用が許容される特定のパラメータを低減させることがある。例えばシステムはセンサに対するフレーム時間を、センサの制限によって決定される最小フレーム時間よりも長くなるように選択できる。例えばFER制約を使用して、画像内及び/又は画像全体のパターンのぼやけを補償するカメラ設定を決定できる。別の例として、システムは、たとえ最大モータ速度を使用しなくても、プロジェクタの機械的システムの有効な動作範囲内にあるモータ(例えば
図2のモータ208)のモータ速度を選択できる。例えばシステムが画像シーケンスにわたり特定量のパターン移動を維持するために露光時間を増している場合、システムはモータ速度を下げてパターンを遅く動かすことができる(例えばパターンはより長い露光時間により少なく動いてぼやけを減らす)。
【0057】
ステップ654を参照して、通常の動作中にセンサはそれぞれ単一の3D画像を作成するために使用される上述した画像(例えば12~48画像)のシーケンスを取得する。これらの画像を取得する際に、プロジェクタ内のLED照明器がオンになりスライド206からパターンをシーン上に投影する。LEDは熱に関する考慮事項を生み出すので、幾つかの実施形態でシステムは、ステップ652で決定された動作パラメータのセットを1つ以上の熱制約のセットに照らしてチェックすることができる。本明細書で述べるように、照明器の動作パラメータは、最大出力、最大連続出力、ピーク出力時の最大平均出力及び/又は最大出力持続時間などの種々のパラメータを含むことができる。幾つかの実施形態で、LED照明器の動作パラメータはユーザが調整できない。例えばLED照明器のパラメータは製造工程で調整されてよいが(例えばパラメータが緩すぎるか強すぎると判断された場合)、展開されたら調整できない。本明細書でステップ652に関連して述べたように、システムはユーザに、露光時間及び/又はLED輝度設定など撮像装置の特定のパラメータ(例えば使用する最大出力のパーセンテージが効果的である)を制御することを可能にする。ステップ654で、システムは、ユーザの所望の設定に基づいて出力制約のいずれかに違反しないか判定する(例えばシステムがユーザの所望のフレームレートでシーケンスの連続ストリームを行う場合)。その結果に従い、方法は、本明細書で更に説明されるステップ656又は658に進む。
【0058】
幾つかの実施形態で、異なるシステム構成要素に対して異なる熱的考慮事項があってよい。例えばLED照明器は150°Cの動作温度に耐えることができるが、そのような温度で動作すると画像センサが故障する可能性があり(例えば画像センサは最大60-70°Cまでしか動作できないため)、及び/又は特定の用途では撮像ボックスが高温になりすぎて人がボックスに触れることができないため安全ではない可能性がある。幾つかの実施形態で、低長時間出力制約などの長時間制約を設定することができる。例えば特定の設定ではLED照明器が問題なく動作するが、LED照明器は長時間(1秒以上の連続照明など)放置されるとバーンアウトすることがある。
【0059】
幾つかの実施形態で、システムはステップ654を実行する際に他のシステムパラメータをチェックすることができる。例えばシステムは、ユーザがステップ654-658に影響を与える可能性のある選好動作を指定できるようにする。幾つかの実施形態で、ユーザは取得タイミングを構成することができてよく、これはユーザが高いフレームレートを使用して画像シーケンスを取得することを選好するか(例えばフレームレートを所望するだけ高くしてシーケンスをできるだけ速く取得するため)、又はユーザがフレームレートを遅くするのが適当か判定する。幾つかの実施形態において、ユーザの選好は、システムがLED照明器によって引き起こされる知覚可能な点滅を有するかどうかに影響を及ぼすことがある。例えば個々の画像シーケンスをできるだけ速く取得するために、取得タイミングを低レイテンシ設定に設定できる。幾つかの実施形態で、ステップ658と併せて述べた熱制限を強制するのに必要な特別時間をシーケンスの最後に追加することができ、これにより高速シーケンス取得が可能になるが、以下に述べるようにシーケンス取得の間に知覚可能な休止が発生する可能性がある。別の例として、取得タイミングを非点滅設定に設定して、ユーザに知覚可能な照明点滅を回避することができる。幾つかの実施形態で、本明細書で更に述べるように、例えばシーケンス取得時間を遅くするが熱制約に適合できる他のパラメータを調整することが可能である。
【0060】
更にステップ654を参照して、システムは較正ステップを実行することができる。例えば較正中、センサは照明なしで画像を取得するように構成できる(例えばプロジェクタのLED照明が「オフ」状態の場合)。このような較正画像に対して、LED照明器は「オフ」であるため、システムはステップ654で述べたような熱制約をチェックする必要はない。例えばフレーム時間は、熱制約を考慮することなく、センサハードウェアの制限によって設定される最小値であることができる。システムは較正ステップを実行して、例えばセンサ上の2D座標からシステムの測定ボリューム内の3D物理座標への変換を生成できる。
【0061】
ステップ666を参照して、幾つかの実施形態においてステップ654で、システムは、決定されたフレームレートでのシーケンスのいずれも熱制約に違反しないであろうと判定し、その結果としてステップ666でシステムは動作パラメータを維持する。幾つかの実施形態で、個々の画像シーケンスは熱制約に違反しないであろうが、時間の経過とともにシーケンスはシステムに損傷を引き起こす可能性がある。例えば、LED照明器(例:ファン冷却ヒートシンクのないLED照明器)に応じて、LED照明器が50%の出力で50%のフレーム時間にオンである場合、LED照明器はすぐには過熱しないであろうが、これらの設定は最終的にシステムの過熱を引き起こす可能性がある。幾つかの実施形態で、システムは、長期間の過熱などからシステムを保護するために、動作パラメータを調整する必要があるか判定する。
【0062】
幾つかの実施形態で、システムがパラメータを調整する必要がある場合、システムはユーザ設定可能なパラメータを考慮に入れることができる。例えばシステムは、本明細書で述べるように、ユーザが個々のシーケンスをできるだけ速く取得することを選好するように、取得タイミングが低レイテンシ設定に設定されることを決定してもよい。システムはフレームレートを変更せずに維持でき、次のシーケンスがトリガされる前に各シーケンスの終了時にLED照明器が「オフ」になるように特別周期を追加できる。本明細書で述べるように、シーケンス取得の間に追加の遅延を追加すると、連続シーケンスを取得する際に照明器の知覚可能な点滅を引き起こす可能性がある。幾つかの実施形態で、追加の遅延の利点は、シーケンス取得間の遅延(例:知覚可能な点滅を含む)を上回る場合がある。高速シーケンス取得は、例えば工業的状況で望ましい場合がある。例えばロボットが部品を動かしたら、その動かされた部品に関する情報をできるだけ早く取得することが望ましい場合がある。シーケンス取得の間に遅延があろうとも、そのような遅延は無視できよう。なぜなら3D計算が行われると、ロボットが移動して次の計算を実行するのに時間がかかるからである。したがって、このような高速シーケンス取得は、システムが計算間の遅延を伴いながら、可能な限り迅速に3D計算を実行することを可能にする。
【0063】
ステップ658を参照して、画像シーケンスが熱制約に違反する場合、コンピューティングデバイスは、熱制約のセットに適合するために動作パラメータセット内の1つ以上の動作パラメータを調整する(例えばたった1つの画像シーケンスが熱制約に違反する場合も含む)。幾つかの実施形態で、システムは、ユーザ設定可能パラメータを考慮することにより、1つ以上の動作パラメータを調整することを決定できる。例えばシステムは、本明細書で述べるように、取得タイミングが非点滅設定に設定されることを決定してもよい。幾つかの実施形態で、システムは例えば動作パラメータを調整するためにフレーム時間を増すことができる。幾つかの実施形態で、システムは必要に応じてシーケンスの動きの制約を維持するために、回転子の速度を下げることができる。フレーム時間及び/又は回転子速度を含む動作パラメータを調整すると、一般にステップ656と同じシーケンスサイクルレートを達成できるが、一連の画像の取得のトリガから、シーケンス取得の完了までのレイテンシが長くなる。幾つかの実施形態で、システムはLED照明器の知覚可能な点滅を回避するために十分高いフレームレートでLED照明器をパルス化することができる。このような動作パラメータの修正は、ユーザがシステム照明を知覚する用途にとって有益である。例えば、そのような修正は人々を巻き込む画像、例えば人々が撮像に暴露される医療用途及び/又は産業用途(及び例えば絶えず知覚可能な点滅を避けるためにシュラウドが必要になる場合)に適していることがある。システムが、例えば4ミリ秒ごとに1ミリ秒点滅するように構成されている場合、このような構成は人の目には一定の明るさとして知覚されようが、50ミリ秒間一定の強い照明の後に150ミリ秒のオフ周期が続くと、強い5Hzの点滅として知覚されるであろう。
【0064】
幾つかの実施形態で、パラメータを調整するためにフレーム時間を長くすることができる。システムは、特定のプロジェクタ設定に基づいてシーケンスの露光時間を分析してパラメータをどのように調整するか決定できる。例えばシステムは、LED照明器設定と画像シーケンスに必要な露光時間の合計との積が、最大ピーク時間と最大出力の積よりも大きいかどうか判定できる。大きい場合は、システムはシーケンス中に熱制限を超える可能性があると判定してよい。システムは、フレーム時間を長くすることにより、フレームごとの平均熱制限を強制できる。
【0065】
幾つかの実施形態で、パラメータは、3Dビジョンシステムの用途に応じて調整することができる。幾つかの実施形態で、パラメータは、毎秒取得できる最高品質の画像の最大数を保証するように調整できる。これはロボットの誘導や高速機械の配置にとって望ましい場合がある。幾つかの実施形態で、特定の品質(例:必ずしも達成可能な最高品質であるとは限らない)で毎秒特定の数の画像を取得することが望ましい場合がある。例えば医療用撮像用途では、特定の数の画像を取得することが望ましい場合がある。
【0066】
ステップ606に戻ると、幾つかの実施形態で、これらの技術は再構成された3Dデータに基づいて経験的にパラメータを調整することができる。例えばこれらの技術は、3D再構成の精度を測定することにより、最適なパラメータ(例:露光時間、フレーム時間など)を経験的に決定できる。例えばシステムは、ユーザが撮像装置のフレーム時間と、プロジェクタがシーン上でパターンを動かす速度を調整できるように構成することができる。システムは、フレーム時間を最小化する運動速度を決定することにより、プロジェクタパラメータ及び/又は撮像パラメータのセットを決定できる。幾つかの実施形態で、システムは1つ以上の画像センサの視野を読み出すのに必要な最小時間に基づいて、フレーム時間を調整することができる。幾つかの実施形態で、システムは、最小フレーム間距離と最大モータ速度の組み合わせに基づいて、フレーム時間を調整することができる。例えばシステムは、フレーム時間を通常システムによって使用されるよりも長いフレーム時間に調整できる。幾つかの実施形態で、システムは、LED照明器の最大露光での露光時間に基づいてフレーム時間を調整することができる。例えばシステムはモータ速度を下げ、フレーム時間を通常システムで使用されるよりも長くすることができる(例えばモータ速度の低下に合わせるため)。幾つかの実施形態で、システムはフレーム時間を画像センサの露光時間及び照明パラメータのセット(例えば本明細書に記載するLED照明器のパラメータ)に基づいて調整することができる。
【0067】
幾つかの実施形態で、システムは単一のトリガイベントによって命令される異なる取得パラメータで、複数の連続取得シーケンス(例えば2つ以上)を可能にするように構成できる。例えばHDR(ハイダイナミックレンジ)撮像を可能にするために、連続シーケンスに対して異なるパラメータを指定することが望ましい場合がある。幾つかの実施形態において、システムはシーケンスを独立して最適化するように構成できる。例えば各シーケンスは異なるモータ速度で構成できる。幾つかの実施形態で、連続的画像シーケンスに対する異なるモータ速度のため、モータが速度を変える間にシーケンス間で短い休止が生じる可能性がある。幾つかの実施形態において、システムは、許容可能な画像を提供する両シーケンスに対して同じモータ速度を決定するように構成できる。幾つかの実施形態で、同じモータ速度を使用すると、シーケンス間の休止を回避することができる。
【0068】
幾つかの実施形態で、システムは、一般的設定を調整できるように構成することができ、その結果制約のセット(例:プロジェクタ及び/又はカメラの両方の制約)が調整される。例えば単一の設定で露光時間とLED照明器出力の両方を調整して統合された露光を提供できる。幾つかの実施形態で、設定はユーザによって調整できる。幾つかの実施形態で、設定は、自動露光制御アルゴリズム(例えば所望の画像グレースケール応答を提供するように設計されている)によって調整することができる。
【0069】
したがって、ステップ654~658を一般的に参照すると、システムは動作パラメータを調整することもしないこともある。例えばシステムが、モータ及び/又はフレーム時間パラメータにより熱制限に違反することなく連続システム動作が可能であると判定したら、システムは設定された通りに(例えば最大フレームレートで)連続的に実行できる。他の例として、システムが、熱制限のため当該レートでは単一の画像シーケンスも取得できないと判定したら、システムはフレーム時間を増やさなければならない。別の例として、システムが、熱制限は設定されたレートで単一のシーケンスを許容するが、連続動作では熱制限に違反すると判定したら、本明細書において更に述べるように、システムは動作パラメータを(例えばユーザが指定する設定に従って)調整して、フレーム時間を長くするか(例えば知覚可能な点滅がないように)、又はフレーム時間は調整しないままシーケンス間で照明器のオフ時間を追加することができる。
【0070】
以下に、2つの非限定的な例を示す。この例は、決定されたフレーム時間とシーケンス時間を提供するものであり、これらはフレームカウント(例:各シーケンスに対して取得されたフレーム数)、LED原輝度、露光時間、及び取得モード(この例では本明細書で述べられた低レイテンシ)に対して指定されたパラメータに基づいて決定する。
【0071】
例1
フレームカウウント=24
LED原輝度=255(最大出力の100%)
露光時間=1ミリ秒
取得モード=低レイテンシ
ファンなし
フレーム時間=3.6ミリ秒(読み出し速度による制限)
シーケンス中の平均出力は約27ワットである(96W*デューティサイクル28%、デューティサイクルは1ミリ秒オン、2.6ミリ秒オフ)。ファンなしの連続出力制限W12を満たすために、各シーケンスの終わりに追加の照明器オフ時間が必要とされる。
シーケンス時間=213ミリ秒(シーケンス取得を実行するトリガからシーケンス取得を完了するまでのレイテンシ88ミリ秒、及び次のトリガを受容できるまでの照明器オフ時間125ミリ秒)。
【0072】
例2
フレームカウウント=24
LED原輝度=255(最大出力の100%)
露光時間=1ミリ秒
取得モード=非点滅
ファンなし
このケースではフレーム時間が長くなり、LEDデューティサイクルはシーケンス中に12%に低下する。これにより12%の熱制限での連続動作が可能になる。
フレーム時間=8.8ミリ秒
シーケンス時間=211ミリ秒(8.8ミリ秒のフレーム時間*24フレーム)
【0073】
図7~
図9は、それぞれ画像ペア700と750、800と850、900と950の例を示している。画像700、800及び900は、第1のカメラによって連続的に取得された画像であり、画像750、850及び950は、第2のカメラによって連続的に取得された同じシーン及びパターンの画像である。一般論として、これらの画像シーケンスは第1のカメラによって取得されたパターンと、第2のカメラによって取得されたパターンとの間のある空間的シフトを示しており、画像ペアにわたる経時的なパターンの運動も示している。特に、第1のカメラによって取得された画像700、800及び900は、画像内の物体706に沿って垂直に進む、物体706の第1及び第2の輪郭702及び704の第1の視点を示している。第2のカメラによって取得された画像750、850及び950は、第1及び第2の輪郭702及び704の異なる空間的な視点を示している。例えばこれらの画像ペアを比較すると、画像内の760によってマークされたパターンの円形部分は、画像750、850及び950で輪郭704に向かっているのと比較して、画像700、800及び900ではより多く輪郭702に向かっている(例えば輪郭702、704はがページから「外側」に突出する垂直成分を含んでおり、第1のカメラは物体706を左の有利な地点から見る一方、第2のカメラは物体706を右の有利な地点から見るため)。更に、画像シーケンスを比較すると、パターンは時間の経過とともに画像ペアを右から左に横切って移動し、それぞれ
図7、
図8及び
図9の画像ペアによって取得された瞬間におけるパターンの小さいシフトを見ることができる(例えば部分760は画像700内の輪郭702に重なっていないように見えるが、画像900内の輪郭702には重なっているように見える)。
【0074】
本明細書で説明した原理に従って動作する技術は、任意の適当なやり方で実装できる。上記のフローチャートの処理及び決定ブロックは、これらの種々のプロセスを実行するアルゴリズムに含まれてよいステップと動作を表している。これらのプロセスから導出されるアルゴリズムは1つ以上の専用又は多目的プロセッサと統合されてその動作を指示するソフトウェアとして実装でき、デジタル信号処理(DSP)回路又は特定用途向け集積回路装置(ASIC)などの機能的に等価な回路として実装でき、又はその他の適当なやり方で実装できる。本明細書に含まれるフローチャートは、何らかの特定の回路又は何らかの特定のプログラミング言語又はプログラミング言語の種類の構文や動作を示していないことを理解されたい。むしろ、フローチャートは、本明細書に記載するタイプの技術を実行する特定の装置の処理を行うための回路の製造、又はコンピュータソフトウェアアルゴリズムの実装に使用できる機能情報を例示するものである。本明細書で特に明記しない限り、各フローチャートに記載されたステップ及び/又は動作の特定のシーケンスは、実装可能なアルゴリズムの例示にすぎず、本明細書に記載された原理の実装及び実施形態は変化できることも理解されたい。
【0075】
したがって幾つかの実施形態で、本明細書に記載する技術は、アプリケーションソフトウェア、システムソフトウェア、ファームウェア、ミドルウェア、埋め込みコード、又は他の任意の適切なタイプのコンピュータコードを含むソフトウェアとして実装されるコンピュータ実行可能命令において具体化できる。そのようなコンピュータ実行可能命令は、幾つかの適切なプログラミング言語及び/又はプログラミング又はスクリプトツールのいずれかを使用して記述でき、フレームワーク又は仮想マシンで実行される実行可能マシン言語コード又は中間コードとしてコンパイルすることもできる。
【0076】
本明細書に記載された技術がコンピュータ実行可能命令として具体化されると、これらのコンピュータ実行可能命令は、多くの利便機能を含む任意の適当なやり方で実装でき、それぞれがこれらの技術に従って動作するアルゴリズムの実行を完了するための1つ以上の動作を提供する。しかしながらインスタンス化された「利便機能」はコンピュータシステムの構造的要素であり、それは1つ以上のコンピュータと統合されて実行されると1つ以上のコンピュータに特定の操作上の役割を実行させる。利便機能は、ソフトウェア要素の一部又は全体であることができる。例えば利便機能はプロセスの機能として、又は個別のプロセスとして、又は他の適当な処理単位として実装されてよい。本明細書に記載された技術が複数の利便機能として実装される場合、各利便機能は独自の方法で実装されてよく、すべて同じ方法で実装する必要はない。更に、これらの利便機能は必要に応じてパラレル及び/又はシリアルに実行されてよく、及びそれらが実行されているコンピュータの共有メモリを使用して、メッセージ受け渡しプロトコルを用いるか又はその他の適当なやり方で互いの間で情報を渡すことができる。
【0077】
一般に、利便機能は、特定のタスクを実行し、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。通常、利便機能の機能性は、それらが動作するシステムにおいて所望されるように組み合わせたり配分したりできる。幾つかの実装形態では、本明細書の技術を実行する1つ以上の利便機能が一緒になって完全なソフトウェアパッケージを形成できる。これらの利便機能は、代替実施形態ではソフトウェアプログラムアプリケーションを実装するために、他の無関係な利便機能及び/又はプロセスと相互作用するように適合されてよい。
【0078】
本明細書では、1つ以上のタスクを実行するために幾つかの例示的な利便機能が説明された。しかしながら記載された利便機能及びタスクの分割は、本明細書で説明された例示的な技術を実装できる利便機能のタイプを例示するものにすぎず、実施形態は特定の数、分割又はタイプの利便機能に限定されないことを理解されたい。幾つかの実装においてすべての機能性が単一の利便機能で実装される場合がある。また、幾つかの実装では本明細書に記載された利便機能の一部を他の利便機能と一緒に又は別個に(すなわち単一ユニット又は別個のユニットとして)実装でき、或いはこれらの利便機能の一部が実装されないことも可能である。
【0079】
本明細書に記載した技術を実装するコンピュータ実行可能命令(1つ以上の利便機能として又は他のやり方で実装される場合)は、ある実施形態では1つ以上のコンピュータ可読媒体に符号化されて媒体に機能性を提供する。コンピュータ可読媒体は、ハードディスクドライブなどの磁気媒体、コンパクトディスク(CD)やデジタル多用途ディスク(DVD)などの光学媒体、永続的又は非永続的なソリッドステートメモリ(フラッシュメモリ、磁気RAMなど)、又はその他の適当な記憶媒体を含む。そのようなコンピュータ可読媒体は任意の適当なやり方で実装できる。本明細書で使用される「コンピュータ可読媒体」(「コンピュータ可読記憶媒体」とも呼ばれる)は、有形の記憶媒体を指す。有形の記憶媒体は非一時的であり、少なくとも1つの物理的構造的要素を有する。本明細書で使用される「コンピュータ可読媒体」では、少なくとも1つの物理的構造的要素は、情報が埋め込まれた媒体を作成するプロセス、その媒体に情報を記録するプロセス、又は情報を含んだ媒体を符号化するプロセスの間に何らかの方法で変更できる少なくとも1つの物理的特性を有する。例えばコンピュータ可読媒体の物理的構造の一部の磁化状態を、記録プロセス中に変更できる。
【0080】
更に、上述した幾つかの技術は、これらの技術で使用するために特定の方法で情報(例:データ及び/又は命令)を保存する動作を含む。これらの技術の幾つかの実装(技術がコンピュータ実行可能命令として実現される実装など)では、情報はコンピュータ可読記憶媒体に符号化される。本明細書で特定の構造がこの情報を保存するための有利なフォーマットとして説明されている場合、これらの構造を使用して記憶媒体上で符号化されるときに情報の物理的編成を与えることができる。次にこれらの有利な構造は、情報と相互作用する1つ以上のプロセッサの動作に影響を与えることにより、例えばプロセッサによって実行されるコンピュータ操作の効率を上げることによって記憶媒体に機能性を付与できる。
【0081】
技術をコンピュータ実行可能命令として具体化できる幾つかの実装(すべての実装ではなく)では、これらの命令は任意の適当なコンピュータシステムで動作する1つ以上の適当なコンピューティングデバイスで実行でき、又は1つ以上のコンピューティングデバイス(又は1つ以上のコンピューティングデバイスの1つ以上のプロセッサ)はコンピュータ実行可能命令を実行するようにプログラムできる。コンピューティングデバイス又はプロセッサは、命令がデータストアなどのコンピューティングデバイス又はプロセッサにアクセス可能な方法で命令が保存されたときに命令を実行するようにプログラムできる(例:オンチップキャッシュ又は命令レジスタ、バスを介してアクセス可能なコンピュータ可読ストレージ、1つ以上のネットワークを介してアクセス可能なコンピュータ可読記憶媒体、及びデバイス/プロセッサなどによってアクセス可能な媒体)。これらのコンピュータ実行可能命令を含む利便機能は、単一の多目的プログラム可能なデジタルコンピューティングデバイス、処理能力を共有して本明細書に記載した技術を共同で実行する2以上の多目的コンピューティングデバイスの協調システム、本明細書に記載された技術を実行するためだけの単一のコンピューティングデバイス又はコンピューティングデバイスの協調システム(コロケーション若しくは地理的に分散)、本明細書に記載した技術を実行するための1つ以上のフィールドプログラマブルゲートアレイ(FPGA)、又は任意の他の適当なシステムと統合されてその動作を指示することができる。
【0082】
コンピューティングデバイスは、少なくとも1つのプロセッサ、ネットワークアダプタ、及びコンピュータ可読記憶媒体を含むことができる。コンピューティングデバイスは、例えばデスクトップ又はラップトップ・パーソナルコンピュータ、パーソナルデジタルアシスタント(PDA)、スマートフォン、携帯電話、サーバ、又は他の任意の適当なコンピューティングデバイスであってよい。ネットワークアダプタは、任意の適当なコンピューティングネットワークを介して他の任意の適当なコンピューティングデバイスと有線及び/又は無線で通信するために、コンピューティングデバイスを有効にする任意の適当なハードウェア及び/又はソフトウェアであってもよい。コンピューティングネットワークには、ワイヤレスアクセスポイント、スイッチ、ルータ、ゲートウェイ、及び/又はその他のネットワーク機器、及びインターネットを含め2以上のコンピュータ間でデータを交換するための適当な有線及び/又は無線通信媒体を含む。コンピュータ可読媒体は、処理されるデータ及び/又はプロセッサによって実行される命令を保存するように適合できる。プロセッサは、データの処理や命令の実行を可能にする。データ及び命令は、コンピュータ可読記憶媒体に保存できる。
【0083】
コンピューティングデバイスは、更に入出力装置を含め1つ以上の構成要素及び周辺機器を有してよい。これらのデバイスは、とりわけユーザインタフェースを提供するために使用できる。ユーザインタフェースを提供するために使用できる出力デバイスの例は、出力を視覚的に表示するためのプリンタ又はディスプレイ画面、及び出力を聴覚的に表示するためのスピーカ又はその他の音声生成装置を含む。ユーザインタフェースに使用できる入力デバイスの例は、キーボード、マウスやタッチパッドなどのポインティングデバイス、及びデジタル化タブレットである。別の例として、コンピューティングデバイスは、音声認識又は他の可聴形式で入力情報を受け取ることができる。
【0084】
以上説明された実施形態は、技術が回路及び/又はコンピュータ実行可能命令で実装されたものである。少なくとも1つの例が提供された方法の形態で幾つかの実施形態があってもよいことを理解されたい。方法の一部として実行される動作は、任意の適切なやり方で順序付けることができる。したがって、例示の実施形態では連続した動作として示されているが、実施形態は幾つかの動作を同時に実行することも含めて、例示されたものとは異なる順序で動作が実行されるように構成できる。
【0085】
上述した実施形態の種々の態様は、単独でも、組み合わせて、又は上述した実施形態で具体的に論じられていない様々な構成で使用することができ、それゆえその応用において上記の説明に記された又は図面に示された詳細及び構成要素の配置に限定されるものではない。例えばある実施形態に記載された態様は、他の実施形態に記載される態様と任意のやり方で組み合わせることができる。
【0086】
特許請求の範囲でクレーム要素を修正するために「第1」、「第2」、「第3」などの序数詞を使用することは、それ自体はあるクレーム要素の別のクレーム要素に対する優先、優位又は順位、或いは方法の動作が実行される時間的順序を意味するものではなく、単にクレーム要素を区別するために特定の名前を持つクレーム要素を(序数詞の使用を除いて)同じ名前を持つ別の要素と区別するための表示としてのみ使用される。
【0087】
また、本明細書で使用される語法及び用語は説明を目的とするものであり、制限と見なされるべきではない。本明細書における「含む」、「有する」、「持つ」、「包含する」、「伴う」、及びそれらの変形の使用は、その後に列挙される項目、及びその同等物、並びに追加項目を網羅することを意味する。
【0088】
本明細書では、「例示的」という言葉は、例、事例又は例示としての役割を果たすことを意味するために使用される。それゆえ例示として本明細書に記載される実施形態、実装、プロセス、特徴などは、例示的な例として理解されるべきであり、特に明記しない限り選好される例若しくは有利な例として理解されるべきではない。
【0089】
以上、少なくとも1つの実施形態の幾つかの態様を説明したが、当業者には様々な変更、修正及び改善が容易に想到し得るものであることを理解されたい。そのような変更、修正及び改善は本開示の一部であることが意図されており、本明細書に記載する原理の精神及び範囲内にあることが意図されている。したがって上記の説明及び図面は例示にすぎない。