(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-15
(45)【発行日】2024-04-23
(54)【発明の名称】可動スキャナを使用したテクスチャモデルの生成
(51)【国際特許分類】
G06T 17/00 20060101AFI20240416BHJP
G06T 15/04 20110101ALI20240416BHJP
G06T 19/00 20110101ALI20240416BHJP
G01B 11/24 20060101ALI20240416BHJP
【FI】
G06T17/00
G06T15/04
G06T19/00 A
G01B11/24 K
(21)【出願番号】P 2021544727
(86)(22)【出願日】2020-01-21
(86)【国際出願番号】 IB2020000009
(87)【国際公開番号】W WO2020161540
(87)【国際公開日】2020-08-13
【審査請求日】2022-07-25
(32)【優先日】2019-02-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-04-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515121542
【氏名又は名称】アルテック・ヨーロッパ・ソシエテ・ア・レスポンサビリテ・リミテ
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100161908
【氏名又は名称】藤木 依子
(72)【発明者】
【氏名】ボスネアガ,アントン
【審査官】▲高▼橋 真之
(56)【参考文献】
【文献】特開2001-084408(JP,A)
【文献】国際公開第2017/151669(WO,A1)
【文献】米国特許出願公開第2018/0350134(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/00
G06T 15/04
G06T 19/00
G01B 11/24
(57)【特許請求の範囲】
【請求項1】
1つ以上の光学センサを備えた3次元(3D)スキャナを使用して、表面を有するオブジェクトをスキャンすることであって、前記オブジェクトに対して前記3Dスキャナの複数の向きからのカラーデータを生成する、前記スキャンすることと、
少なくとも前記カラーデータを使用して、前記オブジェクトの前記表面のピクセルマップを生成することであって、前記ピクセルマップは、複数のピクセルのそれぞれのピクセルごとに、
前記オブジェクトの前記表面上の対応するポイントのカラー値と、
前記オブジェクトの前記表面上の前記対応するポイントの非カラープロパティの値と
を含む、前記生成することと
を含む、方法
であって、
前記スキャンすることは、前記オブジェクトの前記表面の少なくとも一部の3次元(3D)形状に対応するデータを生成し、
前記方法は、
前記オブジェクトの前記表面の前記少なくとも一部の前記3次元(3D)形状に対応する前記データを使用して、前記オブジェクトの前記表面の前記形状の前記少なくとも一部の3D再構成を生成することと、
前記オブジェクトの前記表面の前記形状の前記少なくとも一部の前記3D再構成を使用して、前記カラーデータが生成された前記オブジェクトに対する前記3Dスキャナの前記複数の向きを決定することと、
をさらに含む、方法。
【請求項2】
1つ以上の光学センサを備えた3次元(3D)スキャナを使用して、表面を有するオブジェクトをスキャンすることであって、前記オブジェクトに対して前記3Dスキャナの複数の向きからのカラーデータを生成する、前記スキャンすることと、
少なくとも前記カラーデータを使用して、前記オブジェクトの前記表面のピクセルマップを生成することであって、前記ピクセルマップは、複数のピクセルのそれぞれのピクセルごとに、
前記オブジェクトの前記表面上の対応するポイントのカラー値と、
前記オブジェクトの前記表面上の前記対応するポイントの非カラープロパティの値と
を含む、前記生成することと
を含む、方法であって、
前記1つ以上の光学センサはカメラを含み、
前記オブジェクトに対して前記3Dスキャナの前記複数の向きからの前記カラーデータを生成することは、前記オブジェクトに対して前記複数の向きのそれぞれに配置された前記カメラを用いて、前記オブジェクトの前記表面の画像を取得することを含み、
前記ピクセルマップの前記複数のピクセルのピクセルごとに、前記オブジェクトの前記表面上の前記対応するポイントの前記非カラープロパティの前記値は、
1つ以上のテクスチャ方程式のセットのソルバに、前記画像が取得された前記オブジェクトに対する前記3Dスキャナの前記向きを示す情報とともに、前記オブジェクトの前記表面の前記画像を提供することと、
1つ以上のテクスチャ方程式の前記セットの前記ソルバからの出力として、前記オブジェクトの前記表面上の前記対応するポイントの前記非カラープロパティの前記値を受け取ることと
によって決定される、方法。
【請求項3】
前記ピクセルマップは前記オブジェクトの前記表面のテクスチャマップである、請求項1
または2に記載の方法。
【請求項4】
前記非カラープロパティは、反射率パラメータ、鏡面反射パラメータ、金属性パラメータ、表面粗さ、または法線方向からなる群から選択される、請求項1~
3のいずれかに記載の方法。
【請求項5】
前記スキャンすることは、前記オブジェクトに対して前記複数の向きで前記3Dスキャナを再配置することを含む、請求項1~
4のいずれかに記載の方法。
【請求項6】
単一の光学センサが、前記オブジェクトに対して前記3Dスキャナの前記複数の向きからの前記カラーデータを生成する、請求項1~
5のいずれかに記載の方法。
【請求項7】
前記オブジェクトの前記表面の前記形状の前記少なくとも一部の前記3D再構成とピクセルマップとを使用して、前記オブジェクトのテクスチャ化3D表現を生成すること
をさらに含む、請求項
1に記載の方法。
【請求項8】
前記オブジェクトの前記テクスチャ化3D表現を使用して、アニメーション内の対応するオブジェクトをアニメーション化すること
をさらに含む、請求項7に記載の方法。
【請求項9】
前記1つ以上の光学センサは第1の光学センサを含み、前記オブジェクトの前記表面の前記少なくとも一部の3次元(3D)形状に対応する前記データを生成することは、
光の空間パターンを前記オブジェクトの前記表面に投射することと、
前記光の空間パターンが前記オブジェクトの前記表面に投射されている間に、前記第1の光学センサを使用して、前記オブジェクトの前記表面の画像を取得することと、
の動作を繰り返し実行することを含む、
請求項
1~
8のいずれかに記載の方法。
【請求項10】
前記1つ以上の光学センサは第2の光学センサを含み、
前記オブジェクトに対して前記3Dスキャナの前記複数の向きからの前記カラーデータを生成することは、前記第2の光学センサを使用して、前記オブジェクトに対して前記複数の向きのそれぞれに配置された前記3Dスキャナを用いて、前記オブジェクトの前記表面の画像を取得することを含む、
請求項1~
9のいずれかに記載の方法。
【請求項11】
前記オブジェクトの前記表面の異なる画像のピクセル間のピクセルレベルの対応関係を決定すること
をさらに含む、請求項
10に記載の方法。
【請求項12】
前記ピクセルマップの前記複数のピクセルのそれぞれのピクセルごとに、前記オブジェクトの前記表面上の前記対応するポイントの前記カラー値は、補正されたカラー値であり、
前記オブジェクトの前記表面のピクセルマップを生成することは、
前記カラーデータを使用して、前記それぞれのピクセルの公称カラー値を決定することと、
前記オブジェクトの前記表面上の前記対応するポイントの前記非カラープロパティの前記値を使用して、前記ピクセルマップの前記それぞれのピクセルの前記公称カラー値を調整することによって前記補正されたカラー値を生成することと
を含む、
請求項1~
11のいずれかに記載の方法。
【請求項13】
前記非カラープロパティは法線方向であり、
前記ピクセルマップの前記複数のピクセルのそれぞれのピクセルごとに、前記カラー値は、前記それぞれのピクセルの前記法線方向に対して事前に定義された角度の範囲からのカラーデータを使用して決定される、
請求項1~
12のいずれかに記載の方法。
【請求項14】
前記事前に定義された角度の範囲は、拡散角度
の閾値よりも大きい角度の範囲であり、
前記方法は、前記ピクセルマップの前記複数のピクセルのそれぞれのピクセルごとに、
前記拡散角度
の閾値よりも小さい前記法線方向に対する角度で取得されたカラーデータを使用して、鏡面反射パラメータを決定すること
をさらに含む、
請求項
13に記載の方法。
【請求項15】
前記ピクセルマップの前記複数のピクセルのそれぞれのピクセルごとに、前記法線方向が、前記カラーデータで最大輝度が発生する前記角度を前記法線方向として選択することによって決定される、請求項
13または14に記載の方法。
【請求項16】
前記ピクセルマップの前記複数のピクセルのそれぞれのピクセルごとに、前記法線方向が、
前記カラーデータを前記カラーデータが取得された前記角度の予め定められた関数に適合させることと、
前記適合された予め定められた関数が最大輝度を有する前記角度を前記法線方向として選択することと
によって決定される、請求項
13または14に記載の方法。
【請求項17】
前記オブジェクトの前記表面上の前記対応するポイントの前記カラー値がベクトル値である、請求項1~
16のいずれか1項に記載の方法。
【請求項18】
前記オブジェクトの前記表面上の前記対応するポイントの前記非カラープロパティの前記値がスカラー値である、請求項1~
17のいずれかに記載の方法。
【請求項19】
前記3Dスキャナは、携帯型ハンドヘルド3Dスキャナである、請求項1~
18のいずれかに記載の方法。
【請求項20】
前記3Dスキャナは、30cm×30cm×30cm未満のサイズを有する、請求項1~
19のいずれかに記載の方法。
【請求項21】
1つ以上の光学センサを含む3Dスキャナと、
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、請求項1~
20のいずれかに記載の方法を実行させる命令を記憶するメモリと
を含む、電子システム。
【請求項22】
1つ以上のプロセッサ、メモリ、及び1つ以上の光学センサを含む3Dスキャナを備えた電子システムによって実行されると、前記1つ以上のプロセッサに、請求項1~
20のいずれかに記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、テクスチャモデルを生成すること、より具体的には、ストラクチャードライト3次元スキャナ及び/または写真測量スキャナなどの可動スキャナを使用してテクスチャモデルを生成することに関する。
【背景技術】
【0002】
コンピュータグラフィックスの目標は、様々な照明条件下で、カラーを含むオブジェクトの物理的外観を正確にモデル化することである。そのためには、オブジェクトのテクスチャモデルが必要である。物理的に正確なテクスチャモデルの生成は、単にオブジェクトの写真を撮ってそのカラーを観察するよりも複雑である。例えば、人がオブジェクトの写真を撮るとき、写真は、写真が撮られたときに存在した特定の照明条件下でオブジェクトがどのように見えるかしか示していない。さらに、フラッシュなどの特定の照明条件では、写真に漂遊ハイライトが残る可能性がある(例えば、オブジェクトの領域が過度に明るく光沢があるように見える)。
【0003】
したがって、オブジェクトの3Dモデルがそのような写真からテクスチャ化された場合(例えば、テクスチャモデルがそのような写真を使用して生成された場合)、追加の処理なしでは、3Dモデルは物理的に正確に見えない。物理的に正確なテクスチャモデルを生成する際の課題は、例えば単一の写真に存在する特性ではなく、オブジェクトの外観に影響を与える物理的特性のモデルを作成することである。このようなモデルは、アニメーションに特に役立ち、その結果オブジェクトのテクスチャを様々な角度から様々な照明条件で正確に表示できる。
【発明の概要】
【0004】
いくつかの実施形態によれば、オブジェクトのテクスチャモデルを生成する方法が提供される。この方法は、表面を有するオブジェクトをスキャンすることを含む。スキャンすることは、オブジェクトに対する3Dスキャナの複数の向きからのカラーデータを生成する。この方法は、少なくともカラーデータを使用して、オブジェクトの表面のピクセルマップを生成することをさらに含み、ピクセルマップは、複数のピクセルのそれぞれのピクセルごとに、オブジェクトの表面上の対応するポイントのカラー値、及びオブジェクトの表面上の対応するポイントの非カラープロパティの値を含む。
【0005】
いくつかの実施形態によれば、オブジェクトのテクスチャモデルを生成する電子システムが提供される。電子システムは、1つ以上の光学センサ、1つ以上のプロセッサ、及びメモリを含むスキャナ(例えば、可動3Dスキャナなどの可動スキャナ)を含む。メモリは、1つ以上のプロセッサによって実行されると1つ以上のプロセッサに本明細書に記載の方法のいずれかを実行させる命令を記憶する。
【0006】
いくつかの実施形態によれば、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は、1つ以上のプロセッサ、メモリ、及び1つ以上の光学センサを含む可動スキャナを備えた、電子システムによって実行されると、1つ以上のプロセッサに本明細書に説明された方法のいずれかを実行させる命令を記憶する。
【0007】
記載された様々な実施形態をよりよく理解するために、以下の発明を実施するための形態を、同様の参照番号が図全体で対応する部分を参照している以下の図面と併せて参照する必要がある。
【図面の簡単な説明】
【0008】
【
図1A】いくつかの実施形態による、3Dスキャナの様々な図を示す。
【
図1B】いくつかの実施形態による、3Dスキャナの様々な図を示す。
【
図2】いくつかの実施形態による、3Dスキャナのブロック図である。
【
図3】いくつかの実施形態による、データ取得環境の概略図である。
【
図4】いくつかの実施形態による、
図3に示されるデータ取得環境から収集されたデータの予言的な例である。
【
図5A】いくつかの実施形態による、オブジェクトのテクスチャ化3D表現を生成するために使用されるオブジェクトの表面の画像の概略例を示す。
【
図5B】いくつかの実施形態による、オブジェクトのテクスチャ化3D表現を生成するために使用されるオブジェクトの表面の画像の概略例を示す。
【
図5C】いくつかの実施形態による、オブジェクトのテクスチャ化3D表現を生成するために使用されるオブジェクトの表面の画像の概略例を示す。
【
図5D】いくつかの実施形態に従って生成された、
図5Aから
図5Cに示されるオブジェクトのテクスチャ化3D表現の概略例を示す。
【
図6】いくつかの実施形態による、3Dスキャナの機械的図面である。
【
図7A】いくつかの実施形態による、オブジェクトのテクスチャモデルを生成する方法の流れ図を示す。
【
図7B】いくつかの実施形態による、オブジェクトのテクスチャモデルを生成する方法の流れ図を示す。
【
図7C】いくつかの実施形態による、オブジェクトのテクスチャモデルを生成する方法の流れ図を示す。
【
図7D】いくつかの実施形態による、オブジェクトのテクスチャモデルを生成する方法の流れ図を示す。
【発明を実施するための形態】
【0009】
開示された実施形態は、可動スキャナによって取得されたカラーデータを使用して、オブジェクトのリアルなテクスチャマップを生成する。いくつかの実施形態では、可動スキャナは、3次元(3D)スキャナ(例えば、オブジェクトの表面の3Dモデルを構築するデバイス)である。これらの3Dスキャナは、物理オブジェクトのリアルなテクスチャ化3D表現を生成するために使用される。いくつかの3Dスキャナは、以下で説明するストラクチャードライトアプローチに基づいているが、他の3Dスキャナは写真測量アプローチに基づいている。3次元スキャナは、工業デザインと製造、コンピュータアニメーション、科学、教育、医学、芸術、デザインなど、多くの分野での用途がある。
【0010】
従来の3Dスキャナでは、ユーザが利用できるピクセルごとのマテリアル情報のタイプは、一貫性のない照明で組み立てられたカラーマップのみである。このようなスキャナでは、オブジェクトの表面の所定の領域の観測値に基づいて、ピクセルごとに赤、緑、青(RGB)の値が生成される。例えば、各ピクセルの異なるカラー値が平均化されるか、カラー値の1つ(例えば、最も明るいピクセル)が代表として選択される。別の言い方をすれば、これらのスキャナによって生成されたテクスチャは、反射光の動作や、カラーテクスチャの各ピクセルがキャプチャされた方向と強度に関係なく組み立てられる。結果として得られるカラーマップには、一貫性のない照明とシェーディングの情報が含まれ、オブジェクトのフォトリアリスティックなレンダリングに役立つであろうマテリアル情報は含まれていない。
【0011】
あるいは、マテリアルのフォトリアリスティックなテクスチャモデルを生成するように特別に設計された従来のシステムは、一般に、正確に配置され、注意深く較正されたライトとカメラの複雑なシステムを必要とする。
【0012】
本開示は、正確に配置され注意深く較正されたライト及びカメラの複雑なシステムを必要とせずに、可動スキャナ(例えば、3Dスキャナ)を使用して、一貫性のない照明及びシェーディングをオブジェクトの真の表面カラーから分離するシステム及び方法を提供する。さらに、本明細書で提供されるシステム及び方法は、マテリアルプロパティ(反射率、鏡面反射カラー、金属性、表面粗さ)が、オブジェクトのテクスチャマップの各ピクセルについて測定されることを可能にする。これは、オブジェクトの表面の様々な画像からの対応するピクセル(例えば、スキャナがオブジェクトに対して移動するときに様々な向きでキャプチャされる)と、様々な値がキャプチャされた向きに関する情報を提供するトラッキングデータを使用して行われる。別の言い方をすれば、いくつかの実施形態では、3Dスキャナは、様々なピクセルのカラー値(例えば、RGB値)を収集し、それらの値がキャプチャされる角度を記録する。対応するピクセルからのカラー値は、オブジェクトの表面に様々な角度で入射する光の動作を説明する方程式(例えば、ランバート拡散モデルまたはより複雑なテクスチャモデル)を使用して、マテリアルプロパティに関連付けられる。このプロセスにより、ピクセルポイントごとに単一の修正されたRGB値が生成されるため、漂遊ハイライトが削除される。さらに、最大鏡面反射値及びこの値が発生する角度などのプロパティを計算することができる。
【0013】
これらのシステム及び方法により、3Dスキャンによって生成されるテクスチャモデルを大幅に改善できる。さらに、これらのシステム及び方法は、様々なマテリアルプロパティの検出に役立つ。
【0014】
ここで、実施例が添付図面において例示される実施形態を参照する。以下の説明では、説明する様々な実施形態の理解を与えるために多数の具体的な詳細を記載する。しかしながら、説明する様々な実施形態が、これらの具体的な詳細なしに実施され得ることは、当業者に明らかであろう。他の例では、当業者に周知の方法、手順、構成要素、回路、及びネットワークは、実施形態の態様を不必要に曖昧にしないように、詳細には説明されていない。
【0015】
図1Aから
図1Bは、いくつかの実施形態による、3Dスキャナ100の正面図及び背面図を示す。いくつかの実施形態では、3Dスキャナ100は、オブジェクトのリアルなカラーマップを生成することができるデータを取得するために使用される。しかしながら、3Dスキャナ100は、そのようなデバイスの一例にすぎないことを理解されたい。本開示の実施形態によれば、他のデバイス(写真測量スキャナなど)を使用して、オブジェクトのリアルなカラーマップを生成することもできる。
【0016】
スキャナ100は、本体ハウジング102、ハンドル108、及び(例えば、バッテリを含む)バッテリハウジング110を含む。いくつかの実施形態では、3Dスキャナ100は、携帯型ハンドヘルドスキャナである。その目的のために、いくつかの実施形態では、3Dスキャナ100は、30cm×30cm×30cm未満の寸法を有する(例えば、30cm×30cm×30cmの寸法のボックス内に適合する)。いくつかの実施形態では、3Dスキャナ100は、片手で人が運ぶのに十分に軽い(例えば、3Dスキャナ100は、約2.5kgの重さである)。
【0017】
いくつかの実施形態では、本体ハウジング102は、ハンドル108から分離することができる。いくつかの実施形態では、本体ハウジング102は、取り付けポイント112(例えば、取り付けポイント112aから取り付けポイント112c)を介して、別個の装置(例えば、ロボット電動スキャンアーム)に(例えば、ハンドル108及びバッテリハウジング110なしで)取り付けることができる。したがって、3Dスキャナ100は、ハンドヘルドスキャナから工業用または実験室用スキャナに変換され得る。
【0018】
いくつかの実施形態では、3Dスキャナ100は、光の空間パターン(本明細書では「ストラクチャードライト」と呼ばれる)をオブジェクトの表面に投射することによってオブジェクトの3Dモデルを生成し、一方、光の空間パターンは、オブジェクトの表面に投射され、光学センサ(例えば、カメラ)を使用して、オブジェクトの表面の画像を取得する。その目的のために、本体ハウジング102は、1つ以上の内部光源(例えば、
図6のVCSELレーザー606)及び光源光学系104を収容する。1つ以上の内部光源は、光源光学系104を介して、本体ハウジング102の内部の空間的にパターン化されたスライド(例えば、
図6のスライド616)を通して、オブジェクトの表面に特定の周波数でストロボスコープ的に光を投射する(例えば、パルス光を投射する)。オブジェクトの表面に投射されたストラクチャードライトの画像は、本体ハウジング102によって収容されたカメラ光学系106を通して取得される。1つ以上のカメラ/センサ(例えば、
図6のCCD検出器602)は、オブジェクトの表面に投射されたストラクチャードライトの画像を記録する。オブジェクトの表面の形状の3Dモデルは、オブジェクトの表面に投射された光のパターンの歪みによって決定できる(つまり、歪みがオブジェクトの表面の形状によって引き起こされる)が、これは「System and Method for Three-Dimensional Measurement of the Shape of Material Objects」と題された米国特許第7,768,656号にさらに詳細に記載されており、これは参照によりその全体が本明細書に組み込まれる。
【0019】
いくつかの実施形態では、内部光源はレーザーである。いくつかの実施形態では、内部光源は、垂直共振器面発光レーザー(VCSEL)である。いくつかの実施形態では、3Dスキャナ100は、クラス1光源として動作し、これは、レーザーが、本体ハウジング102の外側のあらゆる場所でクラス1と見なされることを意味する(すなわち、本開示の出願日時点で連邦規則集(CFR)パート1040の21によって定義されるように)。
【0020】
いくつかの実施形態では、3Dスキャナ100は、屋外の昼光条件で取得された画像が、少なくともオブジェクトの一部の3D形状を(例えば、少なくとも0.1mm、0.2mm、0.3mm、0.4mm、または0.5mmの精度で、あるいは、0.25mm、0.5mm、0.75mm、または1mmの分解能で)再構築するのに十分な信号対雑音比を有するように、オブジェクトの表面の十分な照明を提供することに留意されたい。レーザーがクラス1の範囲で動作することを保証するための通常のアプローチは、レーザーを大きなハウジングに封入することであり、これにより、光がハウジングを出るときまでに、光はクラス1と見なされるほど十分に減衰する。ハンドヘルドスキャナは比較的小さいサイズ(例えば、30cm×30cm×30cm未満)である必要があるため、このアプローチはハンドヘルドスキャナでは機能しない。本開示のいくつかの実施形態は、パルス幅、ピーク電力、繰り返し率、及び/またはデューティサイクルの適切な選択を通じて、本体ハウジング102に封入された光源をクラス1光源として動作させ、スキャナ100をハンドヘルド型で、安全、及び通常の日光条件(例えば、120,000ルクス、100,000ルクス、20,000ルクス、2,000ルクス、または1,000ルクス)で操作できるようにする。これはまた、スキャナ100が比較的短い最小作動距離(例えば、35mm以下の最小作動距離)を有することを可能にする。
【0021】
さらに、ストラクチャードライトデータからの信号対雑音を増加させ、ストラクチャードライトデータをテクスチャ(例えば、カラー)データから区別するために、いくつかの実施形態では、上記のVCSELレーザーは、可視スペクトル範囲外(例えば、赤外線(IR)周波数)で動作する。そのような実施形態では、本体ハウジング102は、カメラレンズ(例えば、カメラ光学系106)に加えて、IR光を第1の光学センサ(例えば、
図6のCCD検出器602-a)に向け、可視光を第2の光学センサ(例えば、
図6のCCD検出器602-b)に向ける、IR/可視ビームスプリッタを封入する。いくつかの実施形態では、第1の光学センサからのデータは、1つ以上の内部光源からのストロボライトと同期して検出されるため、ストロボ周波数のデータは、他の周波数の情報よりも優先的に検出される。これは、例えば、光を生成する1つ以上の光源と同期してデータを収集するために同期復調を使用して、または第1の光学センサをゲート制御することによって行うことができる。
【0022】
いくつかの実施形態では、本体ハウジング102に封入された第2の光学センサ(例えば、
図6のCCD検出器602-b)は、テクスチャデータ(例えば、カラーデータ)を取得する。いくつかの実施形態では、テクスチャデータ(例えば、画像)は、3D再構成をカラーでレンダリングするため、ならびにスキャナ100の位置及び/または回転を(例えば、写真測量分析によって)追跡するための両方に使用され、これは、次に、3Dスキャナ100によって取られたストラクチャードライトデータ(例えば、3D形状データ)を、オブジェクトに対して異なる位置で登録(例えば整列)するために使用される(例えば、
図3を参照して以下に説明するように)。
【0023】
いくつかの実施形態では、本体ハウジング102はまた、スキャナ100の動きを追跡する1つ以上の動きセンサを封入する。1つ以上の動きセンサには、任意選択で3軸加速度計、3軸ジャイロスコープ、及び/または3軸磁力計が含まれ、スキャナ100の位置及び/または回転を測定する。いくつかの実施形態では、1つ以上の動きセンサは、3軸加速度計、3軸ジャイロスコープ、及び3軸磁力計の3つすべてを含み、したがって、スキャナ100が6つの機械的自由度(すなわち、3つの位置的自由度、及び3つの回転自由度)しかないという事実にもかかわらず、9自由度(DOF)センサと呼ばれる。1つ以上の動きセンサからの位置及び/または回転データを使用してスキャナ100の位置及び/または回転を(例えば、カルマンフィルタの適用によって)追跡し、これは、次に、オブジェクトに対して異なる位置でスキャナ100によって取られたストラクチャードライトデータ(例えば、3D形状データ)及びカラーデータ(例えば、画像)を登録(例えば、整列)するために使用される(例えば、
図3を参照して以下に説明するように)。
【0024】
オンボード自動処理を容易にするために(例えば、オブジェクトの少なくとも初期3D再構成を生成するために)、ユーザに完全なモバイルスキャン体験を与えるために、いくつかの実施形態では、本体ハウジング102は、1つ以上のフィールドプログラマブルゲートアレイ、1つ以上のグラフィック処理ユニット(GPU)、及び/または1つ以上のCPUを含む複数のプロセッサを収容する。いくつかの実施形態では、本体ハウジング102は、オブジェクトの3Dモデルの少なくとも初期再構成(例えば、オブジェクトの3Dモデルのプレビュー)を生成するのに十分な処理を含む。
【0025】
いくつかの実施形態では、本体ハウジング102は、スキャナ100のグラフィカルユーザインタフェースを表示するディスプレイ114をさらに収容する。とりわけ、スキャナ100がオブジェクトをスキャンするとき、スキャナ100のグラフィカルユーザインタフェースは、オブジェクトの初期3D再構成(例えば、オブジェクトの3D再構成のプレビュー)を表示する。いくつかの実施形態では、ディスプレイ114は、タッチ感知ディスプレイ(タッチスクリーンと呼ばれることもある)であり、したがって、ユーザ入力を受信することもできる(例えば、スキャンを開始し、スキャンを一時停止し、スキャンを終了し、その他の方法でスキャナ100を制御する)。
【0026】
図2は、いくつかの実施形態による、3Dスキャナ100及び/または3Dスキャナ100からデータを受信し、取得後処理を実行する3Dデータ処理コンピュータシステム310のブロック図である(総称して、スキャナ100及びシステム310は、「システム100/310」と呼ばれる)。いくつかの実施形態では、
図2に記載されている様々なモジュールが、3Dスキャナと3Dデータ処理コンピュータシステム310との間で分割されていることに留意されたい。
【0027】
システム100/310は通常、メモリ204、1つ以上のプロセッサ202、電源206、ユーザ入出力(I/O)サブシステム208、センサ209、光源211、及びこれらの構成要素を相互接続するための通信バス210を含む。プロセッサ(複数可)202は、メモリ204に記憶されているモジュール、プログラム、及び/または命令を実行し、それによって処理動作を行う。
【0028】
いくつかの実施形態では、プロセッサ(複数可)202は少なくとも1つのグラフィック処理ユニットを含む。いくつかの実施形態では、プロセッサ(複数可)202は少なくとも1つのフィールドプログラマブルゲートアレイを含む。
【0029】
いくつかの実施形態では、メモリ204は、1つ以上のプログラム(例えば、命令のセット)及び/またはデータ構造を記憶する。いくつかの実施形態では、メモリ204、またはメモリ204の非一時的コンピュータ可読記憶媒体は、以下の、
● オペレーティングシステム212、
● カルマンフィルタモジュール214、
● モーショントラッキングモジュール216、
● カラートラッキングモジュール218、
● 3D登録モジュール220、
● カラー統一モジュール222、
● 融合モジュール224、
● カラー較正モジュール226、
● テクスチャ化モジュール228、
● システム100/310によって使用及び生成されるバッファ(複数可)、RAM、ROM、及び/またはデータを記憶するその他のメモリを含むストレージ230
という、プログラム、モジュール、及びデータ構造、あるいはそれらのサブセットまたはスーパーセットを記憶する。
【0030】
上記識別されたモジュール(例えば、データ構造及び/または命令のセットを含むプログラム)は、別個のソフトウェアプログラム、手順、またはモジュールとして実装される必要はなく、したがってこれらのモジュールの様々なサブセットは、様々な実施態様で組み合わされ、または他の方法で様々な実施形態において再配置されてよい。いくつかの実施形態では、メモリ204は、上記識別されたモジュールのサブセットを記憶する。さらに、メモリ204は、上で説明されていない追加のモジュールを記憶してもよい。いくつかの実施形態では、メモリ204、またはメモリ204の非一時的コンピュータ可読記憶媒体に記憶されたモジュールは、以下に説明する方法においてそれぞれの動作を実施するための命令を提供する。いくつかの実施形態では、これらのモジュールのいくつかまたはすべては、モジュール機能の一部またはすべてを包含する専用のハードウェア回路(例えば、FPGA)で実装され得る。上記識別された要素のうちの1つ以上は、プロセッサ202の1つ以上によって実行され得る。
【0031】
いくつかの実施形態では、I/Oサブシステム208は、通信ネットワーク250を介して、及び/または有線経由及び/またはワイヤレス接続を介して、システム100/310を1つ以上のリモートデバイス236(例えば、外部ディスプレイ)などの1つ以上のデバイスに通信可能に結合する。いくつかの実施形態では、通信ネットワーク250はインターネットである。いくつかの実施形態では、I/Oサブシステム208は、システム100/310をディスプレイ114などの1つ以上の統合デバイスまたは周辺デバイスに通信可能に結合する。
【0032】
いくつかの実施形態では、センサ209は、3Dデータを収集する第1の光学センサ(例えば、
図6のCCD検出器602-aなどの第1のCCD検出器)、テクスチャ(例えば、カラー)データを収集する第2の光学センサ(例えば、
図6のCCD検出器602-bなどの第2のCCD検出器)、及びモーションセンサ(例えば、マイクロ電気機械システム(MEMS)、ジャイロスコープ、及び1つ以上のホールセンサを使用して実装され得る9DOFセンサ)を含む。
【0033】
いくつかの実施形態では、光源211は、1つ以上のレーザーを含む。いくつかの実施形態では、1つ以上のレーザーは、垂直共振器面発光レーザー(VCSEL)を含む。いくつかの実施形態では、光源211はまた、可視光を生成する発光ダイオード(LED)のアレイを含む。
【0034】
通信バス210は、任意選択で、システムコンポーネント間の通信を相互接続及び制御する回路(チップセットと呼ばれることもある)を含む。
【0035】
図3は、いくつかの実施形態による、データ取得環境300の概略図である。データ取得環境300では、3Dスキャナ100は、表面を有するオブジェクト302をスキャンする。スキャンすることは、オブジェクト302に対する3Dスキャナ100の複数の向き(例えば、位置304から)からのカラーデータ(例えば、オブジェクトの表面のカラー画像)を生成する。例えば、
図3では、3Dスキャナは、位置304a(第1のカラー画像を取得する位置)から位置304b(第2のカラー画像を取得する位置)、位置304c(第3のカラー画像を取得する位置)に再配置される。いくつかの実施形態では、カラーデータ(例えば、カラー画像)を取得すると同時に、3Dスキャナ100は、(例えば、光の空間パターンをオブジェクトの表面に投射し、光の空間パターンがオブジェクトの表面に投射されている間に(例えば、カラー画像とは異なる)オブジェクトの表面の画像を取得することによって)3次元(3D)形状に対応するデータを取得することに留意されたい。
【0036】
第1のカラー画像(位置304aで3Dスキャナ100により取得される)、第2のカラー画像(位置304bで3Dスキャナ100により取得される)、及び第3のカラー画像(位置304cで3Dスキャナ100により取得される)のそれぞれがオブジェクト302の表面上のポイント306をキャプチャすることに留意されたい。すなわち、オブジェクト302の表面上のポイント306に対応する、第1、第2、及び第3のカラー画像のそれぞれに対応するピクセルが存在する。いくつかの実施形態では、第1、第2、及び第3のカラー画像のそれぞれの対応するピクセルは、RGB値を有し、そこから、輝度は、赤(R)値、緑(G)値、及び青(B)値の線形結合(例えば、輝度関数)として計算することができる。このような輝度値は、「相対輝度」と呼ばれることもあり、1または100に正規化された値を有する。
【0037】
いくつかの実施形態では、3Dスキャナ100によって取得されたデータは、(例えば、有線または無線接続を介して)3Dデータ処理コンピュータシステム310に送信され、そこで受信される。いくつかの実施形態では、3Dデータ処理コンピュータシステム310は、オブジェクトの表面のピクセルマップ(例えば、テクスチャマップ)を生成する。あるいは、いくつかの実施形態では、ピクセルマップは、3Dスキャナ100によって生成される。
【0038】
図4は、いくつかの実施形態による、
図3に示されるデータ取得環境300から収集されたデータの予言的な例である。特に、
図4は、オブジェクト302の表面上のポイント306から収集されたデータを示している。
図4のグラフは、オブジェクトの表面に対して異なる向きで取得された異なるカラー画像からの様々なデータピクセルの輝度を示している。その目的のために、いくつかの実施形態では、3Dスキャナ100及び/または3Dデータ処理コンピュータシステム310は、オブジェクトの表面の異なる画像内のピクセル間のピクセルレベルの対応を決定する(例えば、提供されている例では、第1、第2、及び第3のカラー画像を登録する)。いくつかの実施形態では、オブジェクトの表面の異なる画像のピクセル間のピクセルレベルの対応を決定することは、第1のカラー画像の第1のピクセルが、第2のカラー画像の第2のピクセルと同じオブジェクトの表面上の位置に対応することを決定することを含む。
【0039】
輝度値は、オブジェクトの表面上のポイント306の公称法線ベクトルからの角度に対してプロットされる。いくつかの実施形態では、公称法線ベクトルは、オブジェクトの3D再構成からの法線ベクトルである(例えば、スキャン中に取得された3次元(3D)形状に対応するデータから再構成される)。
【0040】
データは、輝度404aを有する第1のカラー画像からの第1のピクセル、輝度404bを有する第2のカラー画像からの第2のピクセル、及び輝度404cを有する第3のカラー画像からの第3のピクセルを含む。いくつかの実施形態では、これらのデータから、「真の法線」方向θ
N, Tが決定される(例えば、
図7Aから
図7Cの方法700を参照してより詳細に説明されるように、最大輝度を有するデータピクセルが取得された角度を選択することによって、または、データを所定の関数(例えば、ガウス関数)に適合させて適合された所定の関数が最大となる角度を選択することによって)。いくつかの実施形態では、「真の法線」方向を使用して、拡散値が決定される(例えば、真の法線方向に対して事前定義された角度を超える角度で取得されたデータピクセルを使用することによるが、これらのデータは、
図4に黒塗りの点として示されており、一方、事前定義された角度内の角度は白抜きの点で示されている)。鏡面反射性、金属性パラメータ、表面粗さなどの他のマテリアルプロパティは、真の法線方向を使用して決定できる。
【0041】
図5Aから
図5Cは、いくつかの実施形態による、オブジェクトのテクスチャ化3D表現を生成するために使用されるオブジェクトの表面の画像の概略例(すなわち、図解)を示す。例えば、
図5Aは、第1の向きから取られたナットの画像502aを示す。画像502aでは、漂遊ハイライト504a(例えば、画像502aが取得されたときに存在する光源からの鏡のような反射)をナット上で観察することができる。漂遊ハイライト504aは、画像502aが取得されたときに存在した光源からの鏡面(例えば、鏡のような)反射である。
図5Bは、第1の向きとは異なる、第2の向きから取られた第2の画像502bを示し、
図5Cは、第1及び第2の向きとは異なる、第3の向きから取られた第3の画像502cを示している。
図5Dは、本発明のいくつかの実施形態に従って生成された、
図5Aから
図5Cに示されるオブジェクト(すなわち、ナット)のテクスチャ化3D表現506の例を示す。オブジェクトのテクスチャ化3D表現506は、漂遊ハイライトを含まない(例えば、オブジェクトの表面の画像に存在した1つ以上の漂遊ハイライトを含まない)。さらに、テクスチャ化3D表現506は、
図5Aから
図5Cの画像(生データ)と比較して、オブジェクト及びテーブルの両方のテクスチャ(カラー)をより正確に表すモデルを提供し、それにより、様々な照明条件の下で、オブジェクトとテーブルの両方のテクスチャをより正確に表示できる。
【0042】
図6は、いくつかの実施形態による、3Dスキャナ100の様々な構成要素を示す図である。特に、
図6は、本体ハウジング102(
図1)の断面を示している。
図6に示されるように、スキャナ100は、(他の構成要素の中でとりわけ)以下を含む。
● スキャンされているオブジェクトの3Dデータを収集する(例えば、オブジェクトの表面に照らされてそれによって歪められたストラクチャードライトの画像を収集し、そこからオブジェクトの3D形状の再構成を決定できる)第1の光学センサ602a(例えば、第1の電荷結合デバイス(CCD)検出器)。いくつかの実施形態では、第1の光学センサ602aは、赤外線(IR)光を感知する(ただし、第1の光学センサ602aは、可視光も感知し得る)。
● スキャンされているオブジェクトからテクスチャ(例えば、カラー)データを収集する(例えば、ストラクチャードライトがオブジェクトの表面に示されていない間に画像を収集し、例えば、オブジェクト上に照らされるストラクチャードライトのストロボパルスの間に画像を収集する)第2の光学センサ602b(例えば、第2のCCD検出器)。いくつかの実施形態では、第2の光学センサ602bは、可視光を感知する(ただし、第2の光学センサ602bは、IR光も感知し得る)。
● 可視光とIR光を分離するビームスプリッタ604。ビームスプリッタ604は、カメラ光学系106を介して受信したIR光を第1の光学センサ602aに優先的に向け、カメラ光学系106を介して受信した可視光を第2の光学センサ602bに優先的に向ける。
● 光源606。いくつかの実施形態では、光源606は、パルス光源(例えば、ストロボライト光源)である。いくつかの実施形態では、光源606は赤外線光源である。いくつかの実施形態では、光源606はレーザーである。いくつかの実施形態では、光源606は、垂直共振器面発光レーザーである。いくつかの実施形態では、光源606は、(例えば、パルス幅、ピーク電力、繰り返し率、及び/またはデューティサイクルの適切な選択によって)本体ハウジング102の外側のあらゆる場所でクラス1レーザーとして動作するように構成されている。
● 光がオブジェクトの表面に投射される空間パターンをその上に形成した(例えば、印刷またはエッチングした)スライド616(例えば、空間パターンは、スライドに不透明及び透明として形成される)。したがって、光源606によって生成された光は、スライド616を通過し、ストラクチャードライトとしてオブジェクトの表面に向かって(例えば、その上に)光源光学系104を通って投射される。
● 光源606、光学センサ602、及び位置614に配置されたGPUと位置612に配置されたFPGAとを含む複数のプロセッサに熱的に結合された単一の金属片を含む、冷却マニホールド608(図面のいくつかの場所にラベルが付けられている)。
【0043】
3Dデータを取得する方法(例えば、かなり強力な光源からストロボスコープで光を生成する方法、及び毎秒多くの画像を収集して処理する方法)のため、熱の生成と除去は、オブジェクトの3D再構成をリアルタイムでプレビューできるハンドヘルド3Dスキャナを設計する際の最大の課題の1つである。比較的低温を維持することは重要であるが、一定の温度(空間的及び時間的の両方)を維持することは少なくとも同等に重要である。冷却マニホールド608は、3Dスキャナの主要な発熱部品間の熱接続を提供することにより、3Dスキャナ100の様々な構成要素を一貫した安定した温度に維持する。したがって、冷却マニホールド608は、3Dスキャナが安定した温度に到達するのに必要な「ウォームアップ」時間を短縮し、より大きな処理能力を可能にし、3Dスキャナがデータを収集できる時間を増加させる。
【0044】
図7Aから
図7Dは、いくつかの実施形態による、オブジェクトのテクスチャモデルを生成する方法700の流れ図を示す。いくつかの実施形態では、方法700は、スキャナ(例えば、単一の可動スキャナ)(例えば、
図1Aから
図1Bの3Dスキャナ100、または写真測量スキャナ)で実行される。可動スキャナは、1つ以上の光学センサを含む。いくつかの実施形態では、可動スキャナはディスプレイを含む。いくつかの実施形態では、可動スキャナは、オブジェクトの表面の形状の少なくとも一部の3D再構成を生成するためのプロセッサを含む3Dスキャナである。いくつかの実施形態では、可動スキャナは、携帯型ハンドヘルドスキャナである(例えば、デバイス全体が30cm×30cm×30cmのボックス内に収まるように、30cm×30cm×30cm未満のサイズを有する)。いくつかの実施形態では、可動スキャナは3Dスキャナではない(例えば、可動スキャナは、オブジェクトの形状の3D再構成を生成せず、むしろオブジェクトの既存のテクスチャ化されていない3Dモデルのテクスチャマップを生成する写真測量スキャナである)。いくつかの実施形態では、スキャナは、オブジェクトの表面の3D再構成を生成する写真測量スキャナである。説明を容易にするために、方法700は、3Dスキャナ100によって実行されるものとして説明されている。しかしながら、方法700は、本開示に従って構築された任意の可動スキャナを使用して実行することができる。いくつかの実施形態では、方法700の動作のうちの1つ以上は、可動スキャナとは別のコンピュータシステム(例えば、取得後処理を実行してテクスチャモデルを生成する
図3のシステム310)で実行される。逆に、他の実施形態では、3Dスキャナ100は、本開示の教示に従って、方法700以外の方法を実行する。方法700の一部の動作は、任意選択で結合され、かつ/または一部の動作の順序は、任意選択で変更される。
【0045】
方法700を使用して、可動スキャナを用いてスキャンされたオブジェクトの真の表面カラーから一貫性のない照明及びシェーディングを分離することができる。加えて、方法700を使用して、オブジェクトのテクスチャマップの各ピクセルのマテリアルプロパティ(反射率、鏡面反射カラー、金属性、表面粗さ)を決定することができる。その目的のために、いくつかの実施形態では、方法700は、オブジェクトの表面の異なる画像からの対応するピクセル(例えば、オブジェクトに対してスキャナの異なる向きでキャプチャされたもの)を、テクスチャマップ(以下、ピクセルマップと呼ぶ)の単一ピクセルを生成するために異なる値がキャプチャされた向きの知識を提供するトラッキングデータと共に使用する。対応するデータピクセルからのカラー値は、オブジェクトの表面に様々な角度で入射する光の動作を記述する方程式(例えば、ランバート拡散モデルまたは、照明もしくはシェーディングモデルとも呼ばれる、より複雑なテクスチャモデル)を使用して、マテリアルプロパティに関連付けられる。いくつかの実施形態では、方法700は、各ピクセルポイントに対して単一の補正されたRGB値を生成し、したがって、漂遊ハイライト(すなわち、カラーデータが取得されたときに存在する、異なる照明でテクスチャ化3D再構成をレンダリングするときに必ずしも存在するとは限らない光源からの鏡面反射)を除去する。方法700はさらに、最大鏡面反射値及びこの値が発生する角度(例えば、「真の法線」)などの、非カラーマテリアルプロパティについて少なくとも1つのピクセルごとの値をもたらす。
【0046】
図7Aを参照すると、3Dスキャナ100は、表面を有するオブジェクトをスキャンする(702)。スキャンすることは、オブジェクトに対する3Dスキャナ100の複数の向きからのカラーデータを生成する。いくつかの実施形態では、3Dスキャナ100とは別の3Dデータ処理コンピュータシステム310は、オブジェクトに対して3Dスキャナ100の複数の向きから3Dスキャナ100によって生成されたカラーデータを受信する(例えば、
図3を参照して説明したように)。いくつかの実施形態では、3Dスキャナ100は、オブジェクトに対する3Dスキャナ100の向きについての先験的な知識を持たない(例えば、向きは、事前定義されておらず、あるいは正確に較正されていない)。
【0047】
いくつかの実施形態では、スキャンすることは、オブジェクトに対して複数の向きで3Dスキャナ100を再配置することを含む(704)。例えば、
図3に示すように、3Dスキャナ100は、位置304aから位置304b、そして位置304cに再配置される。3Dスキャナ100は、これらの位置のそれぞれでオブジェクト302の画像を取得する。
【0048】
いくつかの実施形態では、単一の光学センサは、オブジェクトに対する3Dスキャナ100の複数の向きからのカラーデータを取得する(706)(例えば、単一の光学センサは、スキャンプロセス中に再配置される)。以下に述べるように、いくつかのそのような実施形態では、3Dスキャナ100は、カラーデータ以外のデータを取得する追加の光学センサを含む。
【0049】
いくつかの実施形態では、スキャンすることは、オブジェクトの表面の少なくとも一部の3次元(3D)形状に対応するデータ(例えば、オブジェクトの表面の少なくとも一部の3D形状がそこから再構築できるデータ)を生成する(708)。
【0050】
いくつかの実施形態では、1つ以上の光学センサは、第1の光学センサ(例えば、第1の赤外線CCD)(例えば、
図6のCCD検出器602a)を含む(710)。いくつかの実施形態では、第1の光学センサは、オブジェクトの表面の少なくとも一部の3D形状に対応するデータを生成するためのものである。オブジェクトの表面の少なくとも一部の3次元(3D)形状に対応するデータを生成することは、光の空間パターンをオブジェクトの表面に投射する動作を繰り返し実行し、光の空間パターンがオブジェクトの表面に投射されている間、第1の光学センサを使用してオブジェクトの表面の画像を取得することを含む。
【0051】
いくつかの実施形態では、1つ以上の光学センサは、第2の光学センサ(例えば、第2の光学カメラ)(例えば、
図6のCCD検出器602b)を含む(712)。いくつかの実施形態では、第2の光学センサは、カラーデータを生成するためのものである(例えば、第2の光学センサは、動作706で説明されている単一の光学センサである)。オブジェクトに対して3Dスキャナ100の複数の向きからのカラーデータを生成することは、第2の光学センサを使用して、オブジェクトに対して複数の向きのそれぞれに配置された3Dスキャナ100を用いて、オブジェクトの表面の画像を取得することを含む。そのような実施形態では、カラーデータからの複数のピクセルを使用して、ピクセルマップの単一のピクセルの値を生成することに留意されたい(例えば、複数のピクセルが異なる画像からの対応するピクセルを含む場合)。混乱を避けるために、オブジェクトの表面の画像のピクセルは、本明細書では「データピクセル」と呼ばれることがある。
【0052】
いくつかの実施形態では、画像は、データピクセルのRGB値を提供する。いくつかの実施形態では、第2の光学センサによって取得される画像は、オブジェクトの表面の少なくとも一部の3次元(3D)形状に対応するデータを生成するために使用される第1の光学センサによって取得される画像とは異なる。いくつかの実施形態では、カラーデータを生成するために使用される画像は、光の空間パターンがオブジェクトの表面に投射されていない間に(例えば、光の空間パターンのオブジェクトの表面への投射の間に)取得される。
【0053】
いくつかの実施形態では、3Dスキャナ100は、オブジェクトの表面の異なる画像内のデータピクセル間のピクセルレベルの対応を決定する(714)(例えば、第2の光学センサによって取得されたカラー画像を登録する)。いくつかの実施形態では、オブジェクトの表面の異なる画像のピクセル間のピクセルレベルの対応を決定することは、第1の画像の第1のピクセルが、(第1の画像とは異なる)第2の画像の第2のピクセルと同じオブジェクトの表面上の位置に対応することを決定することを含む。
【0054】
図7Bを参照すると、いくつかの実施形態では、3Dスキャナ100は、オブジェクトの表面の少なくとも一部の3次元(3D)形状に対応するデータを使用して、オブジェクトの表面の形状の少なくとも一部の3D再構成を生成する(716)。いくつかの実施形態では、ピクセルレベルの対応は、オブジェクトの表面の少なくとも一部の3次元(3D)形状に対応するデータを使用して決定される(例えば、オブジェクトの表面の少なくとも一部の3次元(3D)形状に対応するデータを使用して3D再構成が生成され、それがカラー画像を登録するために使用される)。いくつかの実施形態では、ピクセルレベルの対応は、画像登録を使用して(例えば、特徴の検出及びマッチングによって、または画像間の対応を定義することによって)決定される。いくつかの実施形態では、ピクセルレベルの対応は、写真測量を使用して決定される(例えば、画像分析を使用して、異なる画像内の2つのピクセルがオブジェクトの表面上の同じ位置に対応することを決定することによって)。状況によっては、カメラの位置だけでなく表面の3D形状が既知であり、射影幾何学を使用してピクセルレベルの対応が計算される。
【0055】
いくつかの実施形態では、3D再構成は、オブジェクトのポリゴン表現(例えば、複数のポリゴンの各ポリゴンがオブジェクトの表面の領域を表す、複数のポリゴンを含むポリゴンメッシュ)である。したがって、複数のポリゴンの各ポリゴンは、公称法線ベクトルを有する。オブジェクトの表面の異なる画像内のデータピクセル間のピクセルレベルの対応を決定することは、対応するピクセルとして、同じポリゴンによって表される領域に対応する異なる画像からのピクセル(例えば、同じポリゴンを表す異なる画像からの複数のピクセルがグループ化される)を選択することを含む。
図4を参照すると、いくつかの実施形態では、公称法線ベクトルは、ポリゴンの公称法線ベクトルである。いくつかの実施形態では、対応するピクセルとして、同じポリゴンによって表される領域に対応する異なる画像からピクセルを選択することは、オブジェクトの3D再構成の座標系にカラーデータをマッピングすることを含む。
【0056】
いくつかの実施形態では、3Dスキャナ100は、オブジェクトの表面の形状の少なくとも一部の3D再構成を使用して、カラーデータが取得されたオブジェクトに対して3Dスキャナ100の複数の向きを決定する(718)。いくつかの実施形態では、モーションデータ(例えば、9DOFセンサからの)もまた、複数の向きを決定するために使用される(例えば、カラーデータのピクセルがオブジェクトの表面に対して取得された角度を決定する)。例えば、複数のソースからの情報、例えば、3Dデータ、カラーデータ、及び9DOFセンサからのモーションデータを組み合わせて、異なる画像のオブジェクトに対する3Dスキャナ100の向きを決定する。
【0057】
3Dスキャナ100は、少なくともカラーデータを使用して、オブジェクトの表面のピクセルマップを生成する(720)。ピクセルマップは、複数のピクセルのそれぞれのピクセルごとに、オブジェクトの表面上の対応するポイントのカラー値、及びオブジェクトの表面上の対応するポイントの非カラープロパティの値を含む。いくつかの実施形態では、ピクセルマップは、複数のピクセルのそれぞれのピクセルごとに、オブジェクトの表面上の対応するポイントの複数の非カラープロパティの値を含む。いくつかの実施形態では、ピクセルマップは、オブジェクトの表面のテクスチャマップである(722)(例えば、3Dモデルをフォトリアリスティックに表現するために一緒に使用されるパラメータの値のセットを含む)。いくつかの実施形態では、カラー値は、ピクセルの拡散値である。いくつかの実施形態では、拡散値(例えば、RGB値)は、すべての方向に(例えば、すべての方向に等しく)光を散乱するマテリアルの傾向を表す。ピクセルマップのピクセルは、データピクセル(つまり、画像のピクセル)とは異なり、オブジェクトの表面の領域を表すことに留意されたい。したがって、状況によっては、ピクセルマップのピクセルはサーフェル(すなわち、表面要素)と呼ばれ、ピクセルマップはサーフェルマップと呼ばれる。
【0058】
いくつかの実施形態では、非カラープロパティは、テクスチャプロパティ(例えば、オブジェクトの表面上の対応するポイントの外観に影響を与えるプロパティ)である。いくつかの実施形態では、非カラープロパティ(単数または複数)は、反射率パラメータ、鏡面反射パラメータ、金属性パラメータ、表面粗さ、または法線方向からなる群から選択される(724)。いくつかの実施形態では、鏡面反射パラメータは、鏡のように光を散乱する(例えば、入射角が反射角に等しい)マテリアルの傾向を表す傾向を表している。
【0059】
いくつかの実施形態では、ピクセルマップの複数のピクセルのそれぞれのカラー値は、ベクトル値(例えば、RGB値)である(726)。
【0060】
いくつかの実施形態では、ピクセルマップの複数のピクセルのそれぞれの非カラープロパティの値は、スカラー値(例えば、0から1の間の単一の値)である(728)。
【0061】
いくつかの実施形態では、ピクセルマップの複数のピクセルのそれぞれのピクセルごとに、オブジェクトの表面上の対応するポイントのカラー値は、補正されたカラー値(例えば、「真の拡散」値)である(730)。補正されたカラー値を生成することは、カラーデータを使用して(例えば、オブジェクトの表面の異なる画像からの対応するピクセルを使用して)、それぞれのピクセルの公称カラー値を決定することと、オブジェクトの表面上の対応するポイントの非カラープロパティの値を使用して、ピクセルマップのそれぞれのピクセルの公称カラー値を調整する(例えば、3Dスキャナ100が、カラーデータを使用して「真の法線」方向を決定し、「真の法線」方向を使用して「真の拡散」値を決定する)こととを含む。
【0062】
いくつかの実施形態では、ピクセルマップのピクセルの公称カラー値の調整を使用して、(例えば、フラッシュからの反射及び/または他の照明のために過度に明るく見えるピクセルの強度を弱めることによって)漂遊ハイライトを除去する。従来のシステムでは、そのような漂遊ハイライトは手動で(例えば、アーティストによって)削除されている。したがって、本開示のいくつかの実施形態は、テクスチャデータからホットスポットを手動で除去する必要性を取り除く。
【0063】
図7Cを参照すると、いくつかの実施形態では、非カラープロパティは法線方向である(732)。ピクセルマップの複数のピクセルのそれぞれのピクセルごとに、カラー値は、それぞれのピクセルの法線方向に対して事前定義された角度の範囲からのカラーデータを使用して決定される。
【0064】
いくつかの実施形態では、事前定義された角度の範囲は、拡散角度閾値よりも大きい角度の範囲である(734)。ピクセルマップの複数のピクセルのそれぞれのピクセルごとに、拡散角度閾値よりも小さい法線方向に対する角度で取得されたカラーデータを使用して、鏡面反射パラメータが決定される。
【0065】
いくつかの実施形態では、ピクセルマップの複数のピクセルのそれぞれのピクセルごとに、法線方向が、カラーデータで最大輝度が発生する角度を法線方向として選択することによって、決定される(736)。
【0066】
例えば、いくつかの実施形態では、方法700は、ピクセルマップの複数のピクセルのそれぞれのピクセルごとに、対応するデータピクセルのどれが最高の輝度を有するかを決定することを含む。最高の輝度を有する対応するデータピクセルが取得された角度は、法線方向(例えば、「真の法線」)であると決定される。例えば、この「真の法線」の55°より大きい角度で取得されたデータピクセルは、拡散輝度のランバートの拡散反射モデルを介して、それぞれのピクセルの調整されたカラー値を決定するために使用される。
【数1】
ここで、L
dは、法線方向に対する観察角度θ
iでの輝度であり、E
oは、表面に入射する光のエネルギーであり、ρは、表面の拡散カラー(また、時には、ピクセルまたはサーフェルの拡散アルベドと称される)である。
【0067】
いくつかの実施形態では、鏡面反射パラメータ(例えば、光沢または逆に粗さ)は、最高の輝度を有するデータピクセルの輝度から適合されたランバートの拡散反射モデルの最大値(例えば、θ
i=0値)を差し引くことによって、それぞれのピクセルについて決定され、これは次のマイクロファセット理論のレンダリング方程式による。
【数2】
ここで、L
Sは鏡面反射輝度、L
oは法線入射での輝度である。
【0068】
いくつかの実施形態では、ピクセルマップの複数のピクセルのそれぞれのピクセルごとに、法線方向は、カラーデータ(例えば、知覚される輝度)をカラーデータが取得された角度の所定の関数に適合させることと、法線方向として、適合された所定の関数が最大輝度を有する角度を選択することとによって決定される(738)。この「真の法線」の、例えば55°を超える角度で取得されたデータピクセルは、前述のように、拡散輝度のランバートの反射率モデルを介して、それぞれのピクセルの調整されたカラー値を決定するために使用される。鏡面反射パラメータ(例えば、光沢または逆に粗さ)は、適合された知覚輝度の最大値から適合されたランバートの反射率モデルの最大値(例えば、θi=0値)を差し引くことによって、それぞれのピクセルに対して決定され、これは式(2)による。
【0069】
より一般的には、いくつかの実施形態では、方法700は、ピクセルマップの複数のピクセルのそれぞれのピクセルごとに、ピクセルに対応するカラーデータの第1のサブセットを使用して、第1のパラメータ(例えば、鏡面反射パラメータまたは真の法線方向)を決定することと、カラーデータの第1のサブセットとは異なる、ピクセルに対応するカラーデータの第2のサブセットを使用して、第2のパラメータ(例えば、拡散パラメータ)を決定することとを含む。いくつかの実施形態では、上記のように、カラーデータの2つのサブセット(拡散カラーの計算のためのデータ及び鏡面反射カラー計算のためのデータ)への分離は、データが取得された角度に基づくことができる。いくつかの実施形態では、カラーデータの2つのサブセットへの分離は、絶対カラーまたはそれらの任意の変形のような他の原理に基づいて行うことができる。
【0070】
図7Dを参照すると、いくつかの実施形態では、ピクセルマップの複数のピクセルのピクセルごとに、オブジェクトの表面上の対応するポイントの非カラープロパティの値は、1つ以上のテクスチャ方程式のセット(例えば、照明及び/またはシェーディング方程式)(例えば、シェーディング方程式を含み得るテクスチャモデル及び/または反射率モデル)のソルバに、画像が取得されたオブジェクトに対する3Dスキャナ100の向きを示す情報とともに、オブジェクトの表面の画像を提供することと、1つ以上のテクスチャ方程式のセットのソルバからの出力として、オブジェクトの表面上の対応するポイントの非カラープロパティの値を受け取ることと、によって決定される(740)。
【0071】
いくつかの実施形態では、テクスチャモデルは、物理ベースのレンダリングに従来使用されている方程式のセットを含むことに留意されたい。したがって、いくつかの実施形態では、動作740は、物理ベースのレンダリング(PBR)モデルを「逆向きに」実行することに等しい。通常、このようなPBRモデルは、コンピュータアニメータによって(例えば、ビデオゲームや映画のために)使用され、コンピュータアニメータは、選択したマテリアルプロパティを入力し、アニメータが選択した照明に応じて知覚されるカラーを出力として受け取る。動作740は、入力として、様々な角度で知覚されたカラーを使用し、マテリアルプロパティを決定する。
【0072】
いくつかの実施形態では、テクスチャモデルは、双方向反射率分布関数(BRDF)モデルである。例えば、ランバート拡散反射モデルは次のように記述できる。
【数3】
ここで、lは光源の方向の単位ベクトル、vは観察者の方向の単位ベクトルである。
【0073】
いくつかの実施形態では、テクスチャモデルは、Cook-Torranceマイクロファセット鏡面シェーディングモデルまたは他のマイクロファセットモデルなどのマイクロファセット鏡面BRDFモデルである。Cook-Torranceマイクロファセット鏡面シェーディングモデルは、表面がマイクロファセットで構成されており、それぞれが鏡面反射することを想定している。Cook-Torranceマイクロファセット鏡面シェーディングモデルは次のように記述できる。
【数4】
ここで、hは、vとlの単位角二等分線であり、nは単位法線ベクトル(例えば、「真の法線」の方向の単位ベクトル)である。関数D、F、及びGは以下に定義される。状況によっては、Cook-Torranceモデルを使用して鏡面反射パラメータ(例えば、鏡面シェーディング)の値を決定し、ランバート反射モデルを使用して拡散値を決定する。
【0074】
法線が方向hにあるファセットのみが、lからvへの反射の鏡面成分に寄与する。したがって、関数D(h)は、ファセット勾配分布関数であり、方向hに向けられたファセットの割合を表す。関数Dは次のように記述できる。
【数5】
ここで、αは粗さの2乗である。
【0075】
関数Gは、あるファセットの別のファセットによるシャドウイングとマスキングを説明する幾何学的減衰係数であり、次のように記述できる。
【数6】
ここで、kはモデルに固有のパラメータである。例えば、いくつかの実施形態では、kはマテリアルの粗さに関係する。
【0076】
関数Fは、それぞれの滑らかなマイクロファセットから光がどのように反射されるかを表すフレネル項であり、次のように記述できる。
【数7】
ここで、F
oは法線入射での鏡面反射率である。
【0077】
Cook-Torranceマイクロファセット鏡面シェーディングモデルを含む上記のBRDFモデルと式は、テクスチャモデルの単なる例であることに留意されたい。当業者は、本開示の利点を与えられて、本開示の様々な実施形態に従って、任意の数のテクスチャモデルを使用できることを認識するであろう。他のテクスチャモデルには、フォン反射モデル、ガウス分布モデル、ベックマン分布モデル、ハイドリヒ-ザイデル異方性モデル、及び/またはウォード異方性モデルが含まれるが、これらに限定されない。
【0078】
したがって、本開示のいくつかの実施形態は、オブジェクト上の表面のテクスチャが(例えば、付加的に)マテリアルの複数のテクスチャプロパティ(例えば、鏡面及び拡散輝度)に分解されてもよく、それらのテクスチャプロパティがテクスチャモデルを介してカラーの観察に関連付けられ得ると想定している。しかしながら、以下の特許請求の範囲は、明示的に述べられていない限り、特定のテクスチャモデルに限定されると解釈されるべきではない。
【0079】
さらに、上記の方程式からわかるように、一部のテクスチャモデルは、1つ以上の光源の位置を観察されたカラーに関連付ける。いくつかの実施形態では、3Dスキャナは光源を含む。いくつかの実施形態では、3Dスキャナ上の光源は、3Dスキャナの外部のどの光源よりも実質的に明るい。したがって、いくつかの実施形態では、光源の位置は既知であり、この方法は、テクスチャ化方程式において光源の既知の位置を使用することを含む。例えば、この方法には、鏡面反射が3Dスキャナの光源のみによるものであると想定することと、3Dスキャナの外部の光源に関係なくテクスチャ方程式を解くこととが含まれる(例えば、テクスチャ方程式を解くことは、周囲光は3Dスキャナの光源から放出される光と比較して無視できる、と仮定することを含む)。
【0080】
いくつかの実施形態では、3Dスキャナ100は、オブジェクトの表面の形状の少なくとも一部の3D再構成とピクセルマップとを使用して、オブジェクトのテクスチャ化3D表現を生成する(742)。
【0081】
いくつかの実施形態では、3Dスキャナ100は、オブジェクトのテクスチャ化3D表現を使用して、(例えば、カラーマップをオブジェクトの3D再構成のポリゴングリッドにマッピングすることによって)アニメーション内の対応するオブジェクトをアニメーション化する(744)。
【0082】
いくつかの実施形態では、非カラープロパティは法線方向であり、ピクセルマップの法線方向は、計測、検査、及び/または品質保証の目的(例えば、表面検査、引っかき傷及び亀裂検出など)のために使用される。いくつかの実施形態では、3Dスキャナ100は、1つ以上の亀裂(または引っかき傷)を検出し、亀裂(または引っかき傷)の位置を示す視覚的しるしを伴うオブジェクトの3D表現を、(一体型ディスプレイまたは3Dスキャナ100とは別のディスプレイ上に)表示する。いくつかの実施形態では、オブジェクトが事前定義された閾値(例えば、品質保証閾値)を超えて引っかき傷がある(または亀裂が入っている)という決定に従って、3Dスキャナ100は、オブジェクトが事前定義された閾値を超えて引っかき傷がある(または亀裂が入っている)ことを示すレポートを生成する。
【0083】
いくつかの実施形態では、3Dスキャナ100は、(一体型ディスプレイまたは3Dスキャナ100とは別のディスプレイ上に)ピクセルマップを表示する(例えば、オブジェクトのテクスチャ化3D表現を表示する)。いくつかの実施形態では、3Dスキャナ100は、ピクセルマップの非カラープロパティの値を表示せずにピクセルマップのカラー値を表示する(例えば、拡散カラーのみでオブジェクトのテクスチャ化3D表現を表示する)。いくつかの実施形態では、3Dスキャナ100は、ピクセルマップのカラー値を表示せずに、ピクセルマップの非カラープロパティの値を表示する(例えば、拡散カラーのみでオブジェクトのテクスチャ化3D表現を表示する)。いくつかの実施形態では、3Dスキャナ100は、ユーザ入力を受け取り、ユーザ入力に応答して、オブジェクトのテクスチャ化3D表現の表示、ピクセルマップのカラー値の表示、及び非カラープロパティ(または複数のプロパティ)の値の間で表示を切り替える(例えば、ユーザ入力の受信に応答して、3Dスキャナ100は、オブジェクトのテクスチャ化3D表現の表示から、ピクセルマップのカラー値または非カラープロパティの値の表示に移行するか、または、ユーザ入力の受信に応答して、3Dスキャナ100は、ピクセルマップのカラー値の表示から、オブジェクトのテクスチャ化3D表現の表示または非カラープロパティの値の表示に移行するか、または、ユーザ入力の受信に応答して、3Dスキャナ100は、非カラープロパティの値の表示から、オブジェクトのテクスチャ化3D表現の表示またはピクセルマップのカラー値の表示に移行する)。
【0084】
上記記述は、説明の目的ために、具体的な実施形態及び図面を参照して説明されている。しかしながら、上記の例証的な考察は、網羅的であることを意図するものではなく、また、本発明を開示されている正確な形態に限定することを意図するものでもない。上述の教示に照らして多くの修正及び変形が可能である。実施形態は、本発明の原理及びその実際的な応用を最もよく説明するために選択されて記述されたものであり、それによって当業者が、本発明及び様々な実施形態を、考えられる特定の使用に合わせて様々な変更をしながら、最も良く使用できるようにする。
【0085】
また、第1の、第2の、などの用語は、いくつかの例で様々な要素を説明するために本明細書で使用されているが、これらの要素がこれらの用語によって制限されるべきではないことも理解されよう。これらの用語は、ある要素を別の要素と区別するためだけに使用される。例えば、記載された様々な実施形態の範囲から逸脱することなく、第1のセンサは第2のセンサと呼ぶことができ、同様に、第2のセンサは第1のセンサと呼ぶことができる。第1のセンサと第2のセンサは両方ともセンサであるが、文脈で明確に示されていない限り、同じセンサではない。
【0086】
本明細書の様々な記述された実施形態の説明に使用される用語は、特定の実施形態のみを説明する目的であり、限定することを意図するものではない。様々な記述された実施形態の説明及び添付の特許請求の範囲で使用される場合、単数形「a」、「an」、及び「the」は、文脈が別途明確に示さない限り、複数形も含むことが意図されている。また、本明細書で使用される用語「及び/または」は、関連する列挙されている項目のうちの1つ以上のあらゆる全ての可能な組み合わせを指し、包含することも理解されよう。用語「含む(includes)」、「含んでいる(including)」、「含む(comprises)」及び/または「含んでいる(comprising)」は、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、及び/または構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/またはそれらのグループの存在または追加を排除しないことがさらに理解されよう。
【0087】
本明細書で使用される場合、用語「場合(if)」は、任意選択的に、文脈に応じて、「とき(when)」または「時(upon)」または「決定することに応じて(in response to determining)」、または「検出することに応じて(in response to detecting)」を意味すると解釈される。同様に、句「と決定される場合(if it is determined)」または「[述べられている条件または事象]が検出される場合」は、任意選択的に、文脈に応じて、「決定時(upon determining)」または「決定することに応じて(in response to determining)」または「[述べられている条件または事象]を検出時(upon detecting)」または「[述べられている条件または事象]を検出することに応じて(in response to detecting)」を意味すると解釈される。