(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-08
(54)【発明の名称】ニューラルネットワークを使用した3D対象物を再構成するためのシステムおよび方法
(51)【国際特許分類】
G06T 7/543 20170101AFI20230901BHJP
G06T 7/00 20170101ALI20230901BHJP
G06T 7/529 20170101ALI20230901BHJP
G06T 7/60 20170101ALI20230901BHJP
G06V 10/82 20220101ALI20230901BHJP
【FI】
G06T7/543
G06T7/00 350C
G06T7/529
G06T7/60 150S
G06V10/82
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023511998
(86)(22)【出願日】2021-08-13
(85)【翻訳文提出日】2023-02-16
(86)【国際出願番号】 IB2021000555
(87)【国際公開番号】W WO2022043746
(87)【国際公開日】2022-03-03
(32)【優先日】2020-08-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】515121542
【氏名又は名称】アルテック・ヨーロッパ・ソシエテ・ア・レスポンサビリテ・リミテ
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100161908
【氏名又は名称】藤木 依子
(72)【発明者】
【氏名】グセフ,グレブ・アレクサンドロビチ
(72)【発明者】
【氏名】ベレズニュク,バディム
(72)【発明者】
【氏名】チェレンコバ,クセーニヤ
(72)【発明者】
【氏名】アルジャニコフ,イリヤ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA13
5L096HA11
5L096KA04
(57)【要約】
いくつかの実施形態によれば、投射パターンと対象物の表面上へと照射された投射パターンの画像との間の対応関係を決定するための方法が提供される。方法は、対象物の表面上へと投射パターンが照射されている際に、対象物の画像を取得することを含む。方法は、ニューラルネットワークを使用することにより、画像内におけるそれぞれ対応する画素と投射パターンの座標との間の対応関係を出力することを、さらに含む。方法は、画像内におけるそれぞれ対応する画素と投射パターンの座標との間の対応関係を使用することにより、対象物の表面の形状を再構成することを、さらに含む。
【選択図】
図5A
【特許請求の範囲】
【請求項1】
方法であって、
対象物の画像を取得することであって、前記画像が、画像化済みパターンの複数の画像化済み要素を含み、
前記画像化済みパターンが、前記対象物の表面上へと投射された投射パターンに対応し、
前記投射パターンが、複数の投射要素を含む、取得することと、
ニューラルネットワークを使用することにより、前記複数の画像化済み要素と前記複数の投射要素との間の対応関係を出力することと、
前記複数の画像化済み要素と前記複数の投射要素との間の前記対応関係を使用することにより、前記対象物の前記表面の形状を再構成することと、を含む、方法。
【請求項2】
前記ニューラルネットワークは、第1ニューラルネットワークであり、
前記方法は、
第2ニューラルネットワークを使用することにより、前記複数の画像化済み要素と前記複数の投射要素との間における、前記第1ニューラルネットワークによって決定された前記対応関係からのオフセットを出力することを、さらに含む、請求項1に記載の方法。
【請求項3】
前記ニューラルネットワークを使用することにより、前記複数の画像化済み要素と前記複数の投射要素との間の前記対応関係を出力することは、前記対象物の前記画像におけるそれぞれ対応する各画素に関する値を、前記ニューラルネットワークの入力層内におけるそれぞれ対応するノード上へと、入力することを含む、請求項1に記載の方法。
【請求項4】
前記対象物の前記画像におけるそれぞれ対応する各画素は、前記ニューラルネットワークの出力層内におけるそれぞれ対応するノードに対して、対応しており、
前記ニューラルネットワークの前記出力層内における前記それぞれ対応するノードに関する値は、前記それぞれ対応する画素と、前記投射パターンの前記複数の投射要素と、の間の前記対応関係を表している、請求項1に記載の方法。
【請求項5】
前記ニューラルネットワークの前記出力層は、前記対象物の前記画像と同じサイズを有している、請求項4に記載の方法。
【請求項6】
前記ニューラルネットワークの前記出力層は、前記画像のサイズよりも小さい、請求項5に記載の方法。
【請求項7】
前記ニューラルネットワークを使用することにより、前記複数の画像化済み要素と前記複数の投射要素との間の前記対応関係を出力することは、前記投射パターンに関する情報を、前記ニューラルネットワークの入力層内へと、入力することを含む、請求項6に記載の方法。
【請求項8】
前記対象物の前記表面上へと投射された前記投射パターンの前記複数の投射要素は、非符号化要素を含む、請求項1に記載の方法。
【請求項9】
前記対象物の前記表面上へと投射された前記投射パターンの前記複数の投射要素は、線を含む、請求項8に記載の方法。
【請求項10】
前記ニューラルネットワークは、模擬データを使用して訓練され、前記模擬データは、複数の模擬画像を含み、前記複数の模擬画像のそれぞれは、
複数の模擬要素を含む模擬画像化済みパターンであって、前記複数の模擬要素のそれぞれが、それぞれ対応する模擬対象物の表面上へと投射された前記複数の投射要素のそれぞれ対応する投射要素に対して、対応している、模擬画像化済みパターンと、
前記模擬画像化済みパターンの複数の模擬要素と前記投射パターンの前記複数の投射要素との間の対応関係を示すデータと、を含む、請求項1に記載の方法。
【請求項11】
前記複数の模擬画像のそれぞれに関して、前記それぞれ対応する模擬対象物は、テクスチャ情報を含む、請求項10に記載の方法。
【請求項12】
前記それぞれ対応する模擬対象物に関する前記テクスチャ情報は、前記それぞれ対応する模擬対象物の自然なテクスチャ以外のテクスチャ情報である、請求項11に記載の方法。
【請求項13】
前記それぞれ対応する模擬対象物に関する前記テクスチャ情報は、前記投射パターンの前記複数の投射要素と同様の特徴物を含む、請求項12に記載の方法。
【請求項14】
前記それぞれ対応する模擬対象物に関する前記テクスチャ情報は、テキストを含む、請求項11に記載の方法。
【請求項15】
前記それぞれ対応する模擬対象物に関する前記テクスチャ情報は、線を含む、請求項11に記載の方法。
【請求項16】
コンピュータシステムであって、1つまたは複数のプロセッサと、請求項1~15のいずれか一項に記載の方法を行うための命令を格納したメモリと、を含む、コンピュータシステム。
【請求項17】
非一過性コンピュータ可読ストレージ媒体であって、コンピュータシステムによって実行された時には請求項1~15のいずれか一項に記載の方法を前記コンピュータシステムに行わせる命令を格納している、非一過性コンピュータ可読ストレージ媒体。
【請求項18】
方法であって、
1つもしくは複数のプロセッサと、前記1つもしくは複数のプロセッサによる実行のために構成された1つまたは複数のプログラムを格納したメモリと、を有したコンピューティングデバイスで、
対象物の表面上へと投射パターンが照射されている際に、前記対象物の画像を取得することと、
ニューラルネットワークを使用することにより、前記画像内におけるそれぞれ対応する画素と前記投射パターンの座標との間の対応関係を出力することと、
前記画像内におけるそれぞれ対応する画素と前記投射パターンの座標との間の前記対応関係を使用することにより、前記対象物の前記表面の形状を再構成することと、を含む、方法。
【請求項19】
コンピュータシステムであって、1つまたは複数のプロセッサと、請求項18に記載の方法を行うための命令を格納したメモリと、を含む、コンピュータシステム。
【請求項20】
非一過性コンピュータ可読ストレージ媒体であって、コンピュータシステムによって実行された時には請求項18に記載の方法を前記コンピュータシステムに行わせる命令を格納している、非一過性コンピュータ可読ストレージ媒体。
【請求項21】
方法であって、
1つもしくは複数のプロセッサと、前記1つもしくは複数のプロセッサによる実行のために構成された1つまたは複数のプログラムを格納したメモリと、を有したコンピューティングデバイスで、
模擬データを生成することであって、
それぞれ対応する模擬対象物の表面上へと投射される投射パターンに関する複数の模擬画像であって、
前記投射パターンは、複数の投射要素を含み、前記模擬画像のそれぞれは、複数の模擬要素を有した模擬パターンを含み、前記複数の模擬要素は、前記投射パターンのそれぞれ対応する投射要素に対して、対応している、複数の模擬画像と、
前記それぞれ対応する模擬対象物の形状を示すデータと、
前記模擬要素とそれぞれ対応する投射要素との対応関係を示すデータと、を含む模擬データを、生成することと、
前記模擬データを使用して、前記投射パターンの前記複数の投射要素と前記模擬画像の前記複数の模擬要素との間の対応関係を決定するように、ニューラルネットワークを訓練することと、
後の時点で画像を再構成するに際して使用するために、前記訓練済みニューラルネットワークを格納することと、を含む、方法。
【請求項22】
前記複数の模擬画像のそれぞれは、前記それぞれ対応する模擬対象物に関するテクスチャ情報を、さらに含む、請求項21に記載の方法。
【請求項23】
前記それぞれ対応する模擬対象物に関する前記テクスチャ情報は、前記それぞれ対応する模擬対象物の自然なテクスチャ以外のテクスチャ情報である、請求項22に記載の方法。
【請求項24】
前記それぞれ対応する模擬対象物に関する前記テクスチャ情報は、前記投射パターンの前記複数の投射要素と同様の特徴物を含む、請求項22に記載の方法。
【請求項25】
前記それぞれ対応する模擬対象物に関する前記テクスチャ情報は、テキストを含む、請求項22に記載の方法。
【請求項26】
前記それぞれ対応する模擬対象物に関する前記テクスチャ情報は、線を含む、請求項22に記載の方法。
【請求項27】
前記それぞれ対応する模擬対象物は、1つまたは複数の先鋭な特徴物を含む、請求項21に記載の方法。
【請求項28】
コンピュータシステムであって、1つまたは複数のプロセッサと、請求項21~27のいずれか一項に記載の方法を行うための命令を格納したメモリと、を含む、コンピュータシステム。
【請求項29】
非一過性コンピュータ可読ストレージ媒体であって、コンピュータシステムによって実行された時には請求項21~27のいずれか一項に記載の方法を前記コンピュータシステムに行わせる命令を格納している、非一過性コンピュータ可読ストレージ媒体。
【請求項30】
方法であって、
1つもしくは複数のプロセッサと、前記1つもしくは複数のプロセッサによる実行のために構成された1つまたは複数のプログラムを格納したメモリと、を有したコンピューティングデバイスで、
模擬データを生成することであって、
それぞれ対応する模擬対象物の表面上へと投射される投射パターンに関する複数の模擬画像と、
前記それぞれ対応する模擬対象物の形状を示すデータと、
前記模擬画像内におけるそれぞれ対応する画素と前記投射パターンの座標との対応関係を示すデータと、を含む模擬データを、生成することと、
前記模擬データを使用して、画像と投射パターンとの間の対応関係を決定するように、ニューラルネットワークを訓練することと、
後の時点で画像を再構成するに際して使用するために、前記訓練済みニューラルネットワークを格納することと、を含む、方法。
【請求項31】
コンピュータシステムであって、1つまたは複数のプロセッサと、請求項30に記載の方法を行うための命令を格納したメモリと、を含む、コンピュータシステム。
【請求項32】
非一過性コンピュータ可読ストレージ媒体であって、コンピュータシステムによって実行された時には請求項30に記載の方法を前記コンピュータシステムに行わせる命令を格納している、非一過性コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、3次元走査技術に関し、より詳細には、ニューラルネットワークを利用した3次元走査技術に関する。
【背景技術】
【0002】
3次元(3D)走査技術は、物理的対象物の表面に関する3Dモデルを構築することができる。3次元走査は、工業デザインおよび製造、コンピュータ化されたアニメーション、科学、教育、医療、芸術、デザイン、ならびに他のもの、を含めた多くの分野で応用されている。
【発明の概要】
【0003】
本開示は、3D走査技術に関する。3D走査に対する1つのアプローチは、対象物の表面上へと投射器が既知の光パターン(以下、「投射パターン」)を投射する、いわゆる「構造化光」の使用である。例えば、投射器からの光は、面上に投射パターンが印刷されているスライドを通して、案内されてもよい。カメラによって取り込まれた光のパターンの歪みから、対象物の表面の形状が推定される。1つまたは複数のカメラを使用することにより、対象物上でパターンが反射した画像が、取得されてもよい。画像内のパターンの位置を測定すること(例えば、パターンの歪みを測定すること)により、コンピュータシステムは、例えば三角測量アルゴリズムなどの単純な幾何学的計算を使用して、対象物の表面上の位置を決定してもよい。
【0004】
対象物の表面上の位置を決定するためには、コンピュータシステムは、投射パターン内のどの点が画像内のどの点に対して対応しているかを知る必要がある。いくつかの実施形態によれば、画像画素と投射パターンの座標との間の対応関係は、訓練済みニューラルネットワークを使用して、推測することができる。
【0005】
いくつかの実施形態によれば、3D走査に対する構造化光アプローチにおいて画像化済み要素を明確にするための方法が提供される。方法は、対象物の画像を取得することを含む。画像は、画像化済みパターンの複数の画像化済み要素を含む。画像化済みパターンは、対象物の表面上へと投射された投射パターンに対応しており、投射パターンは、複数の投射要素を含む。方法は、また、ニューラルネットワークを使用することにより、複数の画像化済み要素と複数の投射要素との間の対応関係を出力することを含む。方法は、複数の画像化済み要素と複数の投射要素との間の対応関係を使用することにより、対象物の表面の形状を再構成することを、さらに含む。
【0006】
いくつかの実施形態によれば、投射パターンと、対象物の表面上へと照射された投射パターンの画像と、の間の対応関係を決定するための方法が、提供される。方法は、対象物の表面上へと投射パターンが照射されている際に、対象物の画像を取得することを含む。方法は、ニューラルネットワークを使用することにより、画像内におけるそれぞれ対応する画素と投射パターンの座標との間の対応関係を出力することを、さらに含む。方法は、画像内におけるそれぞれ対応する画素と投射パターンの座標との間の対応関係を使用することにより、対象物の表面の形状を再構成することを、さらに含む。
【0007】
いくつかの実施形態によれば、ニューラルネットワークを訓練するための方法が提供される。ニューラルネットワークは、模擬対象物の表面に投射される投射パターンに関する複数の模擬画像を含む模擬データを使用して、訓練される。投射パターンは、複数の投射要素を含み、模擬画像のそれぞれは、複数の模擬要素を有した模擬パターンを含む。複数の模擬要素は、投射パターンのそれぞれ対応する投射要素に対して、対応している。模擬データは、また、それぞれ対応する模擬対象物の形状を示すデータと、模擬要素とそれぞれ対応する投射要素との対応関係を示すデータと、を含む。模擬データを使用して、ニューラルネットワークは、投射パターンの複数の投射要素と模擬パターンの複数の模擬要素との間の対応関係を決定するように、訓練される。訓練済みニューラルネットワークは、後の時点で画像を再構成するに際して使用するために、格納される。
【0008】
いくつかの実施形態によれば、ニューラルネットワークを訓練するための別の方法が提供される。方法は、模擬データを生成することであり、それぞれ対応する模擬対象物の表面上へと投射される投射パターンに関する複数の模擬画像と、それぞれ対応する模擬対象物の形状を示すデータと、模擬画像内におけるそれぞれ対応する画素と投射パターンの座標との対応関係を示すデータと、を含む、模擬データを生成することを、含む。方法は、模擬データを使用して、画像と投射パターンとの間の対応関係を決定するように、ニューラルネットワークを訓練することを、さらに含む。方法は、後の時点で画像を再構成するに際して使用するために、訓練済みニューラルネットワークを格納することを、さらに含む。
【0009】
いくつかの実施形態によれば、コンピュータシステムが提供される。コンピュータシステムは、1つまたは複数のプロセッサと、本明細書で説明するいずれかの方法を行うための命令を格納したメモリと、を含む。
【0010】
いくつかの実施形態によれば、命令を格納した非一過性コンピュータ可読ストレージ媒体が提供される。非一過性コンピュータ可読ストレージ媒体は、コンピュータシステムによって実行された時には本明細書で説明するいずれかの方法をコンピュータシステムに行わせる命令を含む。
【0011】
説明する様々な実施形態に関するより良好な理解のために、同様の参照符号が図面の全体を通して対応部分を指している以下の図面と併せて、以下における発明を実施するための形態を参照されたい。
【図面の簡単な説明】
【0012】
【
図1A】
図1Aは、いくつかの実施形態による画像化システムを示している。
【
図1B】
図1Bは、いくつかの実施形態による画像化システムを示している。
【
図1C】
図1Cは、いくつかの実施形態による投射パターンを示している。
【
図1D】
図1Dは、いくつかの実施形態による画像化済みパターンを示している。
【
図2】
図2は、いくつかの実施形態による画像化システムのブロック図である。
【
図3】
図3は、いくつかの実施形態による遠隔デバイスのブロック図である。
【
図4】
図4は、いくつかの実施形態によるニューラルネットワークの入力および出力を示している。
【
図5A】
図5Aは、いくつかの実施形態による、3D再構成のための方法に関するフローチャートを示している。
【
図5B】
図5Bは、いくつかの実施形態による、3D再構成のための方法に関するフローチャートを示している。
【
図5C】
図5Cは、いくつかの実施形態による、3D再構成のための方法に関するフローチャートを示している。
【
図6A】
図6Aは、いくつかの実施形態による、ニューラルネットワークを訓練するための方法に関するフロー図を示している。
【
図6B】
図6Bは、いくつかの実施形態による、ニューラルネットワークを訓練するための方法に関するフロー図を示している。
【
図7】
図7は、いくつかの実施形態による、3D再構成のための別の方法に関するフローチャートを示している。
【発明を実施するための形態】
【0013】
ここで、添付図面に例が図示されている実施形態を参照する。以下の説明では、説明する様々な実施形態に関する徹底的な理解を提供するために、多数の具体的な詳細を記載している。しかしながら、当業者には、説明する様々な実施形態が、これらの具体的な詳細を必要とすることなく実施され得ることは、明らかであろう。他の実例では、周知の方法、周知の手順、周知の構成要素、周知の回路、および周知のネットワークについて、実施形態の発明的態様を無用に不明瞭としないよう、詳細には説明していない。
【0014】
図1A~
図1Bは、本発明の一実施形態による、投射器110と1つまたは複数のカメラ112(例えば、センサ)とを含む3次元(「3D」)画像化環境100を示している。様々な実施形態では、2つ以上の投射器および/または2つ以上のカメラが使用され得ることに、留意されたい。
図1Aに示すように、投射器110は、画像化対象をなす対象物120上へと、投射パターン(時に「構造化照明」とも称される)を投射するように構成されている。これを行うために、いくつかの実施形態では、投射器からの光は、面上に投射パターンが印刷されているスライドを通して、投射される。投射パターンは、複数の投射要素を含む。投射パターンの非限定的な例は、一連をなす複数のコントラスト線(例えば、黒色線および白色線)、一連をなす複数のコントラストジグザグ線、および、複数のドットからなるグリッドパターン、を含む。投射パターンの更なる例は、米国出願第11/846,494号明細書に記載されており、この文献は、その全体が参照により本明細書に援用される。
【0015】
光線190-1~190-4のそれぞれは、投射パターンのそれぞれ対応する投射要素(例えば、投射パターン内の異なる線)に対して、対応している。例えば、光線190-1は、投射器110から対象物120の表面121上へと投射される投射パターン内の、第1投射要素を表しており、光線190-2は、投射器110から対象物120の表面121上へと投射される別の投射要素を表している。光線190は、対象物120の表面121で反射される(光線190-1~190-4に対してそれぞれ対応する反射光線192-1~192-4として、それぞれ反射される)。光の少なくとも一部は、1つまたは複数のカメラ112によって取り込まれる。
【0016】
いくつかの実施形態では、(1つまたは複数の)カメラ112は、対象物120の表面121が投射パターンによって照明されている際に、対象物120の複数の画像を取り込む。いくつかの実施形態では、投射パターンは、対象物120の表面上へとストロボスコープ的に照射され、投射パターンが対象物120の表面上へと照射されるたびに、複数の画像の、1つの画像が、取り込まれる。本明細書で使用した際には、「ストロボスコープ的に」という用語は、固定レート(例えば、1秒間に15フレーム)で、反復的に行われることを意味する。
【0017】
図1A~
図1Bでは、投射器110およびカメラ112が別個に図示されているけれども、いくつかの実施形態では、投射器110およびカメラ112が、3D走査器200(
図2)として、単一のハウジング内に統合されていることに、留意されたい。3D走査器200のユーザは、データを収集しながら、3D走査器200を対象物120に対して移動させることによって対象物を走査してもよい。よって、いくつかの実施形態では、対象物120の画像は、異なる角度から、または異なる位置から、(1つまたは複数の)カメラ112によって取り込まれる。
【0018】
複数の画像をなす各画像は、対象物120の表面に起因して歪んだような、投射パターンに対応する画像化済みパターンを示している。よって、画像化済みパターンは、複数の画像化済み要素を含み、画像化済み要素のそれぞれは、投射パターン内のそれぞれ対応する投射要素に対して、対応している。
【0019】
図1Bは、3D画像化環境100に関する別の操作例を示している。
図1Bに示すように、投射器110は、対象物120に向けて、
図1Aと同じ投射パターンを投射している。この例では、別の対象物122が、光線190-3の経路内に配置されており、そのため、光線190-3は、対象物122の表面で反射されている。対象物122が、対象物120の一体部分(例えば、飲料用マグカップのハンドル)であってもよいことに、または別個の対象物であってもよいことに、留意されたい。(1つまたは複数の)カメラ112は、対象物120および122に関する複数の画像を取り込む。図示しているように、対象物122の存在により、光線192-3(光線190-3に対応する)は、
図1Aに示している位置とは異なる位置で、(1つまたは複数の)カメラ112に入射するものとされる。よって、(1つまたは複数の)カメラ112によって取り込まれた複数の画像は、光線190-3および192-3に対応する画像化済み要素を、画像化済みパターンの他の画像化済み要素に対して、画像化済みパターン内の異なる位置で(および場合によっては、異なる順序で)示すこととなる。
【0020】
図1Cは、投射器110から放出される投射パターン130の一例を示しており、
図1Dは、(1つまたは複数の)カメラ112によって取り込まれる画像化済みパターン132の一例を示している。
【0021】
図1Cに示す例では、投射パターン130は、複数の投射要素140を含む。例えば、
図1Cに示す投射パターン130は、
図1Bに示すように、対象物120および122上へと、投射器110によって投射され得る。この場合、投射要素140は、繰り返された複数の線である。いくつかの実施形態では、米国出願第11/846,494号明細書に記載されているように、複数の線は、太い領域と細い領域とを交互に有している。いくつかの実施形態では、交互的な太い領域と細い領域とは、線ごとに異なるけれども、それらの線は、依然として非符号化要素と見なされる。
【0022】
図1Dは、
図1Bに示すように対象物120および122に向けて投射器110が投射パターン130を投射している際に、(1つまたは複数の)カメラ112によって取り込まれる画像化済みパターン132の一例である。画像は、複数の画像化済み要素142を含む。この場合、画像化済み要素142は、歪んだ複数の線である。画像化済み要素142(例えば、歪んだ線)のそれぞれは、投射パターン130内におけるそれぞれ対応する投射要素140(例えば、それぞれ対応する線)に対して、対応している。この例では、画像化済みパターン132内における画像化済み要素142-1は、投射パターン130内における投射要素140-1に対して、対応しており、画像化済みパターン132内における画像化済み要素142-2は、投射パターン130内における投射要素140-2に対して、対応しており、画像化済みパターン132内における画像化済み要素142-3は、投射パターン130内における投射要素140-3に対して、対応しており、さらに、画像化済みパターン132内における画像化済み要素142-4は、投射パターン130内における投射要素140-4に対して、対応している。走査対象をなす対象物の幾何形状に起因して(
図1Bを参照して示すように)、画像化済み要素は、投射パターン130内におけるそれぞれ対応する投射要素140の位置に対して転置され得ることに、留意されたい。例えば、画像化済み要素142-3および142-4に関する相対的な順序は、投射要素140-3および140-4と比較して、逆となっている。
【0023】
構造化光アプローチを使用して対象物の表面に関するモデルを構築するためには、コンピュータシステムは、画像と投射パターンとの間の対応関係(例えば、画像内の各画素に対応した投射パターンの座標、および/または、画像化済み要素と投射要素との間の対応関係)を知る必要がある。この曖昧さの問題点を解決するために、一般的な2つのアプローチが存在しており、すなわち、1つの方法では、符号化済み要素を有したパターンを利用し、代替可能な方法では、非符号化要素を有したパターンに依存する。符号化済み要素を有したパターンでは、パターン内の要素は、コンピュータシステムが各画像化済み要素を識別することを可能とする何らかの独自の識別特性を有している。非符号化要素を有したパターンでは、パターン内の要素(例えば、複数の線、または、反復する複数の要素)は、パターンの特定の要素を取込画像内で識別可能とする個別的な独自の特性を有していない。非符号化要素(例えば、複数の線)の場合には、画像と投射パターンとの間の対応関係を決定するために、何らかの他の方法が必要である。
【0024】
いくつかの実施形態では、投射パターンは、投射パターンの投射要素が非符号化要素であるように、光の非符号化パターンである。いくつかの実施形態では、以下で詳細に説明するように、投射パターンと、投射パターンが上面上に照射された対象物の画像と、の間の対応関係は、ニューラルネットワークを使用して決定される。いくつかの実施形態では、光の非符号化パターンは、複数の線または他の反復する複数の要素などの、構造化された光パターンを含む。
【0025】
図1Cおよび
図1Dは、投射パターン130内における複数の投射要素140が、複数の線である例を示しているけれども、投射要素140および画像化済み要素142が、任意の形状を取り得ることは、理解されよう。例えば、投射要素140は、複数のバー、複数のジグザグ要素、複数のドット、複数の正方形、一連をなす3つの小さなバー、などであってもよい。投射パターンが照射された対象物によって形成される画像化済みパターンを示す画像に関する非限定的な例は、米国仮出願第63/070,066号明細書における付録Aの
図A1および
図A2に提供されており、この文献は、その全体が参照により本明細書に援用される。
【0026】
図2は、いくつかの実施形態による3D走査器200のブロック図である。3D走査器200は、または3D走査器200のコンピュータシステムは、典型的には、メモリ204と、1つまたは複数のプロセッサ202と、電源206と、ユーザ入出力(I/O)サブシステム208と、1つまたは複数のセンサ203(例えば、
図1Aから
図1Bにおける(1つまたは複数の)カメラ112を含む)と、投射器110と、これらの構成要素どうしを相互接続するための通信バス210と、を含む。(1つまたは複数の)プロセッサ202は、メモリ204内に格納されたモジュール、プログラム、および/または命令を実行し、それによって処理操作を行う。
【0027】
いくつかの実施形態では、(1つまたは複数の)プロセッサ202は、少なくとも1つの中央処理装置を含む。いくつかの実施形態では、(1つまたは複数の)プロセッサ202は、少なくとも1つの画像処理装置を含む。いくつかの実施形態では、(1つまたは複数の)プロセッサ202は、本明細書で説明するニューラルネットワークを実行するための少なくとも1つのニューラルプロセッシングユニット(NPU)を含む。いくつかの実施形態では、(1つまたは複数の)プロセッサ202は、少なくとも1つのフィールドプログラマブルゲートアレイを含む。
【0028】
いくつかの実施形態では、メモリ204は、1つもしくは複数のプログラム(例えば、複数セットをなす命令)および/またはデータ構造を格納している。いくつかの実施形態では、メモリ204は、またはメモリ204の非一過性コンピュータ可読ストレージ媒体は、以下のプログラム、モジュール、およびデータ構造を格納している、あるいは、それらの部分集合または上位集合を格納している。
・様々な基本システムサービスを処理する手順でありかつハードウェア依存タスクを行う手順を含むオペレーティングシステム212、
・3D走査器を、1つまたは複数の通信ネットワーク250を介して、他のコンピュータシステム(例えば、遠隔デバイス236)に対して接続するための、(1つまたは複数の)ネットワーク通信モジュール218、
・ユーザ入出力(I/O)サブシステム208を介してユーザからコマンドおよび/または入力を受領するとともに、ユーザ入出力(I/O)サブシステム208上で提示および/または表示するための出力を提供する、ユーザインタフェースモジュール220、
・方法500(
図5A~
図5C)および/または方法700(
図7)に関して説明するいずれかのもしくはすべての操作を任意選択的に行うことを含めて、センサ203からのデータを処理あるいは前処理するためのデータ処理モジュール224。
代替的には、様々な実施形態では、いずれかのまたはすべてのデータ処理のいずれかまたはすべては、3D走査器200がネットワーク250を介して結合されている遠隔デバイス236によって、行われてもよい。
・カメラ、投射器、およびセンサの読み出し、を制御するためのデータ取得モジュール226、
・3D走査器200が使用したり生成したりするデータを格納する、(1つもしくは複数の)バッファ、RAM、ROM、および/または他のメモリ、を含むストレージ230。
【0029】
上記で特定した複数のモジュール(例えば、データ構造、および/または、複数セットをなす命令のセットを含めたプログラム)は、別個の、ソフトウェアプログラム、手順、またはモジュールとして実装される必要はなく、よって、これらモジュールの様々な部分集合は、様々な実施形態において、組み合わされてもよく、さもなければ再配置されてもよい。いくつかの実施形態では、メモリ204は、上記で特定した複数のモジュールの部分集合を格納している。さらに、メモリ204は、上記で説明していない追加的なモジュールを格納してもよい。いくつかの実施形態では、メモリ204に格納されたモジュールは、またはメモリ204の非一過性コンピュータ可読ストレージ媒体内に格納されたモジュールは、以下で説明する方法におけるそれぞれ対応する操作を実装するための命令を提供する。いくつかの実施形態では、これらモジュールの一部または全部は、モジュール機能の一部または全部を包含する特殊なハードウェア回路(例えば、FPGA)によって実装されてもよい。上記で特定した要素の、1つまたは複数は、(1つまたは複数の)プロセッサ202のうちの、1つもしくは複数によって実行されてもよい。
【0030】
いくつかの実施形態では、ユーザ入力/出力(I/O)サブシステム208は、3D走査器200を、通信ネットワーク250を介して、および/または有線接続や無線接続を介して、1つもしくは複数の遠隔デバイス236などの、1つまたは複数のデバイスに対して、通信可能に結合する。いくつかの実施形態では、通信ネットワーク250は、インターネットである。いくつかの実施形態では、ユーザ入力/出力(I/O)サブシステム208は、3D走査器200を、タッチセンサ式ディスプレイなどの、1つもしくは複数の統合型デバイスに対してまたは周辺デバイスに対して、通信可能に結合する。
【0031】
いくつかの実施形態では、投射器110は、1つまたは複数のレーザを含む。いくつかの実施形態では、1つまたは複数のレーザは、垂直共振器面発光レーザ(VCSEL)を含む。いくつかの実施形態では、投射器110は、また、可視光を生成する複数の発光ダイオード(LED)からなるアレイを含む。いくつかの実施形態では、レーザの代わりに、投射器110は、フラッシュバルブまたはいくつかの他の光源を含む。
【0032】
通信バス210は、任意選択的に、システム構成要素どうしの間の通信を相互接続して制御する回路(時に、チップセットと称される)を含む。
【0033】
図3は、いくつかの実施形態による、ネットワーク250を介して3D走査器200に対して結合している遠隔デバイス236のブロック図である。遠隔デバイス236は、典型的には、メモリ304と、1つまたは複数のプロセッサ302と、電源306と、ユーザ入出力(I/O)サブシステム308と、これらの構成要素どうしを相互接続するための通信バス310と、を含む。(1つまたは複数の)プロセッサ302は、メモリ304内に格納されたモジュール、プログラム、および/または命令を実行し、それによって処理操作を行う。
【0034】
いくつかの実施形態では、(1つまたは複数の)プロセッサ302は、少なくとも1つの中央処理装置を含む。いくつかの実施形態では、(1つまたは複数の)プロセッサ302は、少なくとも1つの画像処理装置を含む。いくつかの実施形態では、(1つまたは複数の)プロセッサ302は、本明細書で説明するニューラルネットワークを実行するための少なくとも1つのニューラルプロセッシングユニット(NPU)を含む。いくつかの実施形態では、(1つまたは複数の)プロセッサ302は、少なくとも1つのフィールドプログラマブルゲートアレイを含む。
【0035】
いくつかの実施形態では、メモリ304は、1つもしくは複数のプログラム(例えば、複数セットをなす命令)および/またはデータ構造を格納している。いくつかの実施形態では、メモリ304は、またはメモリ304の非一過性コンピュータ可読ストレージ媒体は、以下のプログラム、モジュール、およびデータ構造を格納している、あるいは、それらの部分集合または上位集合を格納している。
・様々な基本システムサービスを処理する手順でありかつハードウェア依存タスクを行う手順を含むオペレーティングシステム312、
・遠隔デバイス236を、1つまたは複数の通信ネットワーク250を介して、他のコンピュータシステム(例えば、3D走査器200)に対して接続するための、(1つまたは複数の)ネットワーク通信モジュール318、
・ユーザ入出力(I/O)サブシステム308を介してユーザからコマンドおよび/または入力を受領するとともに、ユーザ入出力(I/O)サブシステム308上で提示および/または表示するための出力を提供する、ユーザインタフェースモジュール320、
・方法500(
図5A~
図5C)および/または方法700(
図7)に関して説明するいずれかのもしくはすべての操作を任意選択的に行うことを含めて、3D走査器200からのデータを処理するためのデータ処理モジュール324。
いくつかの実施形態では、データ処理モジュール324は、ニューラルネットワークモジュール340(画像と投射パターンとの間の対応関係を決定するためのもの)と、ニューラルネットワークモジュール340によって決定された対応関係を使用して対象物の空間座標を決定するために三角測量アルゴリズムを実行するための三角測量モジュール344と、を含む。いくつかの実施形態では、ニューラルネットワークモジュール340は、
図4を参照して以下で説明するニューラルネットワーク340-aおよび340-bを実行するための命令を含む。
・任意選択的に、方法600(
図6A~
図6B)に関して説明する操作の、もしくは本明細書で言及する代替可能な方法に関して説明する操作の、いずれかまたはすべてを行うことを含めて、画像化済みパターン内における画像化済み要素と、投射パターン内における投射要素と、の間の対応関係を決定するように、ニューラルネットワークを訓練するためのニューラルネットワーク訓練モジュール328、
・遠隔デバイス236が使用したり生成したりするデータを格納する、(1つもしくは複数の)バッファ、RAM、ROM、および/または他のメモリ、を含むストレージ330。
【0036】
上記で特定した複数のモジュール(例えば、データ構造、および/または、複数セットをなす命令のセットを含めたプログラム)は、別個の、ソフトウェアプログラム、手順、またはモジュールとして実装される必要はなく、よって、これらモジュールの様々な部分集合は、様々な実施形態において、組み合わされてもよく、さもなければ再配置されてもよい。いくつかの実施形態では、メモリ304は、上記で特定した複数のモジュールの部分集合を格納している。さらに、メモリ304は、上記で説明していない追加的なモジュールを格納してもよい。いくつかの実施形態では、メモリ304に格納されたモジュールは、またはメモリ304の非一過性コンピュータ可読ストレージ媒体内に格納されたモジュールは、以下で説明する方法におけるそれぞれ対応する操作を実装するための命令を提供する。いくつかの実施形態では、これらモジュールの一部または全部は、モジュール機能の一部または全部を包含する特殊なハードウェア回路(例えば、FPGA)によって実装されてもよい。上記で特定した要素の、1つまたは複数は、(1つまたは複数の)プロセッサ302のうちの、1つもしくは複数によって実行されてもよい。
【0037】
いくつかの実施形態では、ユーザ入力/出力(I/O)サブシステム308は、遠隔デバイス236を、通信ネットワーク250を介して、および/または有線接続や無線接続を介して、1つもしくは複数の3D走査器200などの、もしくは外部ディスプレイなどの、1つまたは複数のデバイスに対して、通信可能に結合する。いくつかの実施形態では、通信ネットワーク250は、インターネットである。いくつかの実施形態では、ユーザ入力/出力(I/O)サブシステム308は、遠隔デバイス236を、タッチセンサ式ディスプレイなどの、1つもしくは複数の統合型デバイスに対してまたは周辺デバイスに対して、通信可能に結合する。
【0038】
通信バス310は、任意選択的に、システム構成要素どうしの間の通信を相互接続して制御する回路(時に、チップセットと称される)を含む。
【0039】
図4は、いくつかの実施形態による、ニューラルネットワーク340-aの入力および出力を示している。上述したように、3D走査に関する構造化光アプローチの文脈で生じる1つの問題点は、対象物の表面上で画像化された要素の曖昧さである(例えば、画像内のどの要素が、スライド上のどの要素に対応しているかを知る必要がある)。いくつかの実施形態によれば、この問題点は、投射要素と、対象物の表面上で画像化された要素と、の間の対応関係(または、より一般的には、画像画素と、投射パターン内におけるそれらの対応する座標と、の間の対応関係)を決定するように訓練されたニューラルネットワークを使用することにより、解決される。その目的のために、画像化済みパターン132(
図1Cを参照して説明した)が、ニューラルネットワーク340に対しての入力として、提供される(画像化済みパターン132とは、投射パターンが対象物の表面上へと照射された際の、対象物の表面の画像である)。いくつかの実施形態では、ニューラルネットワーク340は、対応関係402を出力する。いくつかの実施形態では、対応関係402は、画像化済みパターン132と同数の画素を有した「画像」である。例えば、いくつかの実施形態では、ニューラルネットワーク340に対しての入力は、投射パターンが表面上へと照射されている際の、対象物の表面の9メガ画素写真であり、ニューラルネットワークの出力は、各画素が入力画像に対して1対1の関係で対応している9メガ画素出力「画像」である。すなわち、対応関係402をなす「画像」内における各画素は、画像化済みパターン132内で画像化されているものと、投射パターンと、の間の対応関係を表す値である。例えば、対応関係402内の値「4」は、画像化済みパターン132内におけるそれらの画素が、投射パターン内において値「4」を有した座標(または線)に対応していることを示している(投射パターンの座標系内における値の範囲は、任意であって、0~1、0~10の範囲であってもよいことに、または他の範囲を有してもよいことに、留意されたい)。
【0040】
いくつかの実施形態では、ニューラルネットワーク340-aは、追加的な入力を受領する。例えば、ニューラルネットワークは、投射パターンに関する情報を受領する。
【0041】
いくつかの実施形態では、ニューラルネットワーク340-aは、対応関係に関する大まかな値を出力し、ニューラルネットワーク340-bは、対応関係に関して精細な値を出力する。いくつかの実施形態では、ニューラルネットワーク340-bは、ニューラルネットワーク340-bが、入力として、対象物の表面の画像を受領するとともに、ニューラルネットワーク340-aの出力を受領する(例えば、ニューラルネットワーク340-aおよび340-bは、直列接続されている)ことを除いては、ニューラルネットワーク340-aと同様の態様で動作する。任意の数のニューラルネットワークが任意の配置で使用され得ることに、留意されたい。例えば、いくつかの実施形態では、3個または4個のニューラルネットワークが使用され、これらニューラルネットワークのいくつかは、直列的な態様で配置されており、いくつかは、独立して動作するように配置されている。
【0042】
図5A~
図5Cは、いくつかの実施形態による、3D画像化環境100から3D再構成を提供するための方法500に関するフローチャートを示している。方法500は、(1つまたは複数の)プロセッサと、(1つまたは複数の)プロセッサによる実行のために構成された(1つまたは複数の)プログラムを格納したメモリと、を有したコンピューティングデバイスで、行われる。いくつかの実施形態では、方法500は、3D走査器200と通信しているコンピューティングデバイスで、行われる。いくつかの実施形態では、方法500の特定の操作は、3D走査器200とは異なるコンピューティングデバイス(例えば、3D走査器200に対して受信および/または送信を行うコンピュータシステム)によって、行われる。いくつかの実施形態では、方法500の特定の操作は、(1つまたは複数の)ニューラルネットワーク340を格納しているコンピューティングデバイスにより、訓練済みの(1つまたは複数の)ニューラルネットワーク340が、3D走査器200が取り込んだ画像に基づく3D再構成の一部として使用され得るようにして、行われる。方法500におけるいくつかの操作は、任意選択的に、組み合わされる、および/または、いくつかの操作の順序は、任意選択的に、変更される。
【0043】
様々な実施形態では、以下で説明する方法700の特徴点または操作が、説明する方法500と矛盾しない限り、方法500は、方法700の特徴点または操作のいずれかを含んでもよい。簡潔さのために、方法700を参照して説明するそれらの詳細のいくつかは、ここでは繰り返さない。
【0044】
方法500は、対象物(例えば、
図1Aおよび
図1Bに示す対象物120)の画像を取得すること(510)を含む。画像は、画像化済みパターン132の複数の画像化済み要素142を含む。画像化済みパターン132は、対象物120の表面上へと投射された投射パターン130に対して、対応している。投射パターン130は、複数の投射要素140を含む。方法500は、また、ニューラルネットワーク(例えば、ニューラルネットワーク340-a)を使用することにより、複数の画像化済み要素142と、複数の投射要素140と、の間の対応関係を出力すること(520)を含む。いくつかの実施形態では、ニューラルネットワークは、対応関係を直接的に出力する(例えば、ニューラルネットワークの出力層内における少なくとも複数のノードは、入力層内における少なくとも複数のノードに対して、1対1の対応関係を有している)。いくつかの実施形態では、ニューラルネットワークは、分類ニューラルネットワークである(例えば、入力画像の各画素を、投射パターンに対する対応関係によって、分類する)。
【0045】
従来的なニューラルネットワークが、同じものに関する異なる実例を認識するように訓練されることに、留意されたい。例えば、ニューラルネットワークは、人間が書いた文字の例を使用して、人間が書いた文字を認識するように、訓練することができる。対照的に、本明細書で説明する実施形態によれば、訓練データが、その対象物に関する別の実例を含んでいなかったとしても、投射要素と、対象物の表面上で画像化された要素と、の間の対応関係を決定するように、ニューラルネットワークを訓練し得ることが、見出された。例えば、多種多様な特徴物を有した対象物からのデータによってニューラルネットワークを訓練することにより、訓練データが、その種に関する頭蓋骨を含んでいなかったとしても、それまでに未発見であった絶滅種の鯨の頭蓋骨を走査する際に、ニューラルネットワークを使用することにより、要素の対応関係を決定することができる。
【0046】
対象物の複雑な幾何形状(例えば、狭い特徴物、先鋭なエッジ、深い溝、等)は、要素の対応関係を決定することの困難さを悪化させる。ここで、本発明者らは、訓練済みニューラルネットワークを使用することにより、特に対象物内における「先鋭な」特徴物の存在下では、画像の解像度および完全性が改良されることを、追加的に見出した。
【0047】
いくつかの実施形態では、方法500は、対象物120の画像のそれぞれ対応する画素に関する値を、ニューラルネットワーク(例えば、ニューラルネットワーク304-a)の入力層内におけるそれぞれ対応するノード上へと、入力すること(522)を含む。
【0048】
いくつかの実施形態では、対象物120の画像におけるそれぞれ対応する各画素は、ニューラルネットワークの出力層内におけるそれぞれ対応するノードに対して、対応している(524)。ニューラルネットワークの出力層内におけるそれぞれ対応するノードに関する値は、それぞれ対応する画素と、投射パターン130の複数の投射要素140と、の間の対応関係を表している(例えば、値は、投射パターン上の座標を表している)。
【0049】
いくつかの実施形態では、ニューラルネットワークの出力層は、対象物120の画像と同じサイズを有している(526)(例えば、ニューラルネットワークは、
図4を参照して説明したように、入力画像と同数の画素を有した「画像」を出力する)。
【0050】
いくつかの実施形態では、ニューラルネットワークの出力層は、画像のサイズよりも小さい(528)。いくつかの実施形態では、ニューラルネットワークの出力層は、画像のサイズよりも大きい。
【0051】
いくつかの実施形態では、方法500は、投射パターン130に関する情報を、ニューラルネットワークの入力層内へと、入力すること(530)を含む。
【0052】
いくつかの実施形態では、対象物120の表面上へと投射された投射パターン130の複数の投射要素140は、非符号化要素(例えば、本明細書で説明する非符号化要素を有した投射パターンのいずれか)を含む(532)。いくつかの実施形態では、対象物120の表面上へと投射された投射パターン130の複数の投射要素140は、複数の線を含む。
【0053】
いくつかの実施形態では、ニューラルネットワークは、模擬データを使用して訓練される(535)。模擬データは、複数の模擬画像を含み、複数の模擬画像のそれぞれは、複数の模擬要素を含んだ模擬パターンを含む。複数の模擬要素のそれぞれは、それぞれ対応する模擬対象物の表面上へと投射された複数の投射要素の、それぞれ対応する投射要素に対応している。複数の模擬画像のそれぞれは、また、模擬画像の複数の模擬要素と、投射パターンの複数の投射要素と、の間の対応関係を示す対応関係データを含む。
【0054】
いくつかの実施形態では、複数の模擬画像のそれぞれは、それぞれ対応する模擬対象物に関するテクスチャ情報を含む(536)。
【0055】
いくつかの実施形態では、それぞれ対応する模擬対象物に関するテクスチャ情報は、それぞれ対応する模擬対象物の自然なテクスチャ以外のテクスチャ情報である(538)。
【0056】
いくつかの実施形態では、それぞれ対応する模擬対象物に関するテクスチャ情報は、投射パターンの複数の投射要素140と同様の特徴物を含む(540)。
【0057】
いくつかの実施形態では、それぞれ対応する模擬対象物に関するテクスチャ情報は、テキストを含む(542)。
【0058】
いくつかの実施形態では、それぞれ対応する模擬対象物に関するテクスチャ情報は、複数の線を含む(544)。
【0059】
操作534~544について、方法600(
図6A~
図6B)に関して以下でより詳細に説明する。すなわち、いくつかの実施形態では、方法500で使用されるニューラルネットワークは、方法600を使用して訓練される。
【0060】
いくつかの実施形態では、複数のニューラルネットワークが使用される。複数のニューラルネットワークは、直列接続されてもよい、または、互いに独立して動作してもよい。直列接続された複数のネットワークに関する非限定的な例として、いくつかの実施形態では、ニューラルネットワークは、第1ニューラルネットワーク(例えば、ニューラルネットワーク340-a)であり、方法500は、第2ニューラルネットワーク(例えば、ニューラルネットワーク340-b)を使用することにより、複数の画像化済み要素142と複数の投射要素140との間における、第1ニューラルネットワークによって決定された対応関係からのオフセットを(例えば、その精緻化を)、出力すること(550)をさらに含む。よって、いくつかの実施形態では、3D再構成の解像度は、(i)投射要素と対象物の表面上で画像化された要素との間の対応関係を特定する第1ニューラルネットワークと、(ii)特定された対応関係に対するオフセットを特定する第2ニューラルネットワークと、という2つのニューラルネットワークを使用することにより、高められる。いくつかの実施形態では、第2ニューラルネットワークは、オフセットを直接的に出力する(例えば、第2ニューラルネットワークの出力層内における少なくとも複数のノードは、入力画像における各画素に対して、1対1の対応関係を有している)。本発明者らは、この2段階のアプローチが、得られる画像の解像度を顕著にかつ傑出して改良することを、見出した。
【0061】
図6A~
図6Bは、いくつかの実施形態による、(1つまたは複数の)ニューラルネットワーク340を訓練するための方法600に関するフロー図を示している。方法600は、(1つまたは複数の)プロセッサと、(1つまたは複数の)プロセッサによる実行のために構成された(1つまたは複数の)プログラムを格納したメモリと、を有したコンピューティングデバイスで、行われる(601)。いくつかの実施形態では、方法600は、3D走査器200と通信しているコンピューティングデバイスで、行われる。いくつかの実施形態では、方法600の特定の操作は、3D走査器200とは異なるコンピューティングデバイス(例えば、3D走査器200に対して受信および/または送信を行うコンピュータシステム)によって、行われる。いくつかの実施形態では、方法600の特定の操作は、(1つまたは複数の)ニューラルネットワーク340を訓練して格納するコンピューティングデバイスにより、訓練済みの(1つまたは複数の)ニューラルネットワーク340が、3D走査器200が取り込んだ画像に基づく3D再構成の一部として使用され得るようにして、行われる。方法600におけるいくつかの操作は、任意選択的に、組み合わされる、および/または、いくつかの操作の順序は、任意選択的に、変更される。
【0062】
いくつかの実施形態によれば、方法600は、投射器とカメラと対象物との間の空間的関係が各訓練画像に関して既知である模擬(「合成」とも称される)データを、使用する。投射要素と対象物の表面上で画像化された要素との間の対応関係を決定するようにニューラルネットワークを訓練する際の、1つの困難さは、訓練のための「グランドトゥルース」を取得することが難しいことである。多くの場合、対象物の表面上へと、数十万個の要素が投射される。線の対応関係を決定するための既存のアルゴリズムは、本開示のニューラルネットワークが解決する問題点そのものを、抱えている。そのため、既存のアルゴリズムは、そのようなニューラルネットワークを訓練するためのグランドトゥルースを提供するに際して、使用することができない。その上、画像解析、文字認識、および同様の用途とは異なり、人間に関するタグ付けは、3D走査/再構成用途において実用的ではなく、既存のアルゴリズムと同じくらいにエラーが発生することとなる。これらの問題点は、正確な対応関係および画像取得の幾何形状が既知である模擬データを使用してニューラルネットワークを訓練することにより、解決される。このようにして、無数の異なる対象物形状に関する幾何形状に関して、ならびに、対象物に対してのカメラおよび投射器の、無数の異なる幾何形状に関して、訓練データを生成することができる。
【0063】
方法600は、模擬データを生成すること(610)を含む。模擬データは、i)複数の模擬画像(例えば、米国仮出願第63/070,066号明細書における付録Aの
図A1~
図A2に示されているようなもの)と、ii)対象物データ(例えば、米国仮出願第63/070,066号明細書における付録Aの
図A3~
図A6に示されているようなもの)と、iii)対応関係データと、を含む。複数の模擬画像は、模擬対象物の表面上へと投射される既知の投射パターンに関する画像である。投射パターンは、複数の要素を含み、画像のそれぞれは、模擬パターンの画像化済み要素を含む。画像化済み要素のそれぞれは、既知の投射パターンの、複数の要素におけるそれぞれ対応する要素に対して、対応している。対象物データは、それぞれ対応する模擬対象物の形状を示すデータを含み、対応関係データは、模擬画像内における画像化済み要素と、既知の投射パターンの、複数の要素におけるそれぞれ対応する要素と、の間の対応関係を示すデータを含む。方法600は、模擬データを使用することにより、既知の投射パターンの、複数の要素におけるそれぞれ対応する要素と、実際の対象物の表面上へと投射された既知の投射パターンの画像化済み要素(例えば、画像化済みパターン132の画像化済み要素142)と、の間の対応関係を決定するように、ニューラルネットワークを訓練すること(620)を、さらに含む。方法600は、また、後の時点で画像を再構成するに際して使用する(例えば、
図5A~
図5Cのような方法500で使用する)ために、訓練済みニューラルネットワーク340を格納すること(630)を含む。
【0064】
いくつかの実施形態では、模擬データは、また、模擬対象物に関するテクスチャ(例えば、色)情報を含む(611)。いくつかの実施形態では、複数の模擬画像は、また、それぞれ対応する模擬対象物に関するテクスチャ情報を含む。投射要素と対象物の表面上で画像化された要素との間の対応関係を決定するようにニューラルネットワークを訓練する際の、1つの困難さは、対象物自体が色を有していることであり、その色が、対象物の画像にわたって変化しやすいことである(例えば、対象物自体の色が変化するため、または、照明、影、等のため)。このことは、対象物自体のテクスチャから、パターンを識別することを困難とする。この問題点は、様々なテクスチャおよび様々な反射率を有した模擬訓練データを使用することにより、解決される(実際には、訓練段階で課題の難易度を上げ、訓練後のニューラルネットワークを、より効果的なものとする)。特に、本発明者らは、テキスト、パターン、または他の急激な(高コントラストな)テクスチャ特徴物を含むように模擬対象物に対してテクスチャを付与することが、対象物のテクスチャと投射要素とを識別するようにニューラルネットワークを教示するに際して、特に効果的であることを見出した(例えば、テキストは、投射されたパターンと同様に、明暗間での大きなコントラスト変動を伴うため)。
【0065】
いくつかの実施形態では、それぞれ対応する模擬対象物に関するテクスチャ情報は、それぞれ対応する模擬対象物の自然なテクスチャ以外のテクスチャ情報である(612)。
【0066】
いくつかの実施形態では、それぞれ対応する模擬対象物に関するテクスチャ情報は、既知の投射パターンにおける複数の要素と同様の特徴物を含む(613)。
【0067】
いくつかの実施形態では、それぞれ対応する模擬対象物に関するテクスチャ情報は、テキストを含む(614)。
【0068】
いくつかの実施形態では、それぞれ対応する模擬対象物に関するテクスチャ情報は、複数の線を含む(615)。
【0069】
いくつかの実施形態では、それぞれ対応する模擬対象物は、1つまたは複数の先鋭な特徴物を含む(616)。
【0070】
いくつかの実施形態では、ニューラルネットワークを訓練するための代替可能な方法が提供され、この代替可能な方法は、それぞれ対応する模擬対象物の表面上へと投射される投射パターンに関する複数の模擬画像と、それぞれ対応する模擬対象物の形状を示すデータと、模擬画像内におけるそれぞれ対応する画素と投射パターン上の座標との対応関係を示すデータと、を有した模擬データを、生成することを含む。代替可能な方法は、模擬データを使用して、画像と投射パターンとの間の対応関係を決定するようにニューラルネットワークを訓練することを、さらに含む。代替可能な方法は、後の時点で画像を再構成するに際して使用するために、訓練済みニューラルネットワークを格納することを、さらに含む。いくつかの実施形態では、上述した方法600の特徴点または操作が、ニューラルネットワークを訓練するための代替可能な方法と矛盾しない限り、この代替可能な方法が、方法600の特徴点または操作のいずれかを共有し得ることに、留意されたい。
【0071】
図7は、いくつかの実施形態による、3D画像化環境100から3D再構成を提供するための方法700に関するフローチャートを示している。方法700は、(1つまたは複数の)プロセッサと、(1つまたは複数の)プロセッサによる実行のために構成された(1つまたは複数の)プログラムを格納したメモリと、を有したコンピューティングデバイスで、行われる。いくつかの実施形態では、方法700は、3D走査器200と通信しているコンピューティングデバイスで、行われる。いくつかの実施形態では、方法700の特定の操作は、3D走査器200とは異なるコンピューティングデバイス(例えば、3D走査器200に対して受信および/または送信を行うコンピュータシステム)によって、行われる。いくつかの実施形態では、方法700の特定の操作は、(1つまたは複数の)ニューラルネットワーク340を格納しているコンピューティングデバイスにより、訓練済みの(1つまたは複数の)ニューラルネットワーク340が、3D走査器200が取り込んだ画像に基づく3D再構成の一部として使用され得るようにして、行われる。方法700におけるいくつかの操作は、任意選択的に、組み合わされる、および/または、いくつかの操作の順序は、任意選択的に、変更される。
【0072】
様々な実施形態では、上述した方法500の特徴点または操作が、説明する方法700と矛盾しない限り、方法700は、方法500の特徴点または操作のいずれかを含んでもよい。簡潔さのために、方法500を参照して説明するそれらの詳細のいくつかは、ここでは繰り返さない。
【0073】
方法700は、投射パターンが対象物の表面上へと照射されている際に、対象物の画像を取得すること(702)を含む。いくつかの実施形態では、投射パターンは、スライドを通して光を透過させることにより、生成される。いくつかの実施形態では、座標系が、投射パターンに対して関連付けられる。座標系は、スライド上における投射パターンの各位置に関する配置を記述する。
【0074】
方法700は、ニューラルネットワークを使用することにより、画像内におけるそれぞれ対応する画素と、投射パターンの座標と、の間の対応関係を(例えば、座標系に関して)出力すること(704)をさらに含む。そうするために、いくつかの実施形態では、画像は、ニューラルネットワーク(例えば、ニューラルネットワーク340-a)の入力層に対して提供される。いくつかの実施形態では、ニューラルネットワークの出力層は、投射パターン内における各画素のそれぞれ対応する(1つまたは複数の)座標を、直接的に生成する。例えば、ニューラルネットワークは、入力画像と同数の画素を有した出力画像を出力し、その場合、出力画像の各画素は、入力画像の画素に対して1対1の対応関係を有しているとともに、投射パターン上におけるその入力画素の(1つまたは複数の)座標に関する値を保持する。このようにして、出力画像は、入力画像に対して空間的に相関する。
【0075】
いくつかの実施形態では、ニューラルネットワークは、上述したように、方法600を使用して、または代替可能な方法を使用して、訓練される。
【0076】
いくつかの実施形態では、ニューラルネットワークは、入力画像の各画素に関して、2つの座標(例えば、スライドパターン上における、x座標およびy座標)を出力することに、留意されたい。代替的には、いくつかの実施形態では、ニューラルネットワークは、入力画像の各画素に関して、単一の座標のみを出力する。そのような実施形態では、他の座標は、既知である、または、走査器200のエピポーラ幾何から推論することができる。
【0077】
いくつかの実施形態では、複数のニューラルネットワークを使用することにより、入力画像の各画素に関する投射パターン座標が決定されてもよい。例えば、いくつかの実施形態では、第1ニューラルネットワークが、大まかな座標を決定し、他方、第2ニューラルネットワークが、精細な座標(例えば、第1ニューラルネットワークからの座標の精緻化)を決定する。様々な実施形態では、第1ニューラルネットワークおよび第2ニューラルネットワークは、直列的な態様で配置されてもよく(例えば、第1ニューラルネットワークの出力が、第2ニューラルネットワーク内へと入力されるようにして)、または、2つのニューラルネットワークは、独立して動作してもよく、それらの出力が組み合わされてもよい。様々な実施形態では、3つ以上のニューラルネットワーク(例えば、4つのニューラルネットワーク)が使用されてもよい。
【0078】
いくつかの実施形態では、入力画像は、マルチチャネル画像である。非限定的な例として、入力画像は、240×320個の画素を含み得るけれども、各画素に関して、2つ以上の値(例えば、RGB画像の場合には、3つの値)を格納してもよい。いくつかの実施形態では、追加的なチャネルが、ニューラルネットワーク内へと追加的な情報を入力するために、設けられている。非限定的な例を続けると、入力画像は、その場合、240×320×nというサイズを有することとなり、ここで、nは、チャネルの数である。例えば、いくつかの実施形態では、投射パターンに関する情報は、各画像に関する追加的な「チャネル」として、ニューラルネットワーク内へと入力される。いくつかの実施形態では、複数のチャネルの、1つまたは複数のチャネルは、対象物の表面上へと投射パターンが照射されていない際に取得された情報を、含む。例えば、対象物の表面上へと照射された投射パターンのグレースケール画像は、グレースケール画像と時間的に近接して(例えば、200ミリ秒以内に)取得されたRGB画像に対して積み重ねられてもよく、ここで、そのRGB画像は、対象物の表面上へと投射パターンが照射されていない状況で取得されたものである(いくつかの実施形態では、投射パターンが、対象物の表面上へと、ストロボスコープ的に照射されることを、思い起こされたい)。
【0079】
いくつかの実施形態では、出力画像は、マルチチャネル画像である。いくつかの実施形態では、マルチチャネル出力画像の1つのチャネルは、上述したような対応関係を提供する。上述した非限定的な例を続けると、出力画像の各チャネルは、240×320個の画素を含んでもよい。その場合、出力は、240×320×mというサイズを有することとなり、ここで、mは、チャネルの数である。複数のチャネルの、1つのチャネルは、対応関係に関する値(例えば、投射パターン上における1つまたは複数の座標に関する値)を格納する。いくつかの実施形態では、出力画像内における別のチャネルは、各画素に関しての各対応関係値に関する信頼値を格納する。各画素に関しての対応関係値に関する信頼値は、再構成に際して(例えば、データを相違して重み付けすることにより、または、信頼値が低すぎるデータを破棄することにより)使用されてもよい。いくつかの実施形態では、出力画像は、また、対象物の曲率を記述したチャネル、対象物のテクスチャを記述したチャネル、または、入力画像に対して空間的に相関している任意の他の情報、を含んでもよい。
【0080】
当業者であれば、入力画像および出力画像が任意のサイズのものであり得ることは、理解されよう。例えば、上記の非限定的な例で説明したような240×320個の画素画像よりもむしろ、いくつかの実施形態では、9メガ画素画像(または、任意の他のサイズの画像)が使用されてもよい。
【0081】
従来的なニューラルネットワークが、同じものに関する異なる実例を認識するように訓練されることに、留意されたい。例えば、ニューラルネットワークは、人間が書いた文字の例を使用して、人間が書いた文字を認識するように、訓練することができる。対照的に、本明細書で説明する実施形態によれば、訓練データが、その対象物に関する別の実例を含んでいなかったとしても、画像内におけるそれぞれ対応する画素と、投射パターンの座標と、の間の対応関係を決定するように、ニューラルネットワークを訓練し得ることが、見出された。例えば、多種多様な特徴物を有した対象物からのデータによってニューラルネットワークを訓練することにより、訓練データが、その種に関する頭蓋骨を含んでいなかったとしても、それまでに未発見であった絶滅種の鯨の頭蓋骨を走査する際に、ニューラルネットワークを使用することにより、対応関係を決定することができる。
【0082】
対象物の複雑な幾何形状(例えば、狭い特徴物、先鋭なエッジ、深い溝、等)は、対応関係を決定することの困難さを悪化させる。ここで、本発明者らは、訓練済みニューラルネットワークを使用することにより、特に対象物内における「先鋭な」特徴物の存在下では、画像の解像度および完全性が改良されることを、追加的に見出した。従来的の方法を使用した、さらに本発明によるニューラルネットワークを使用した、3D再構成画像の例は、米国仮出願第63/070,066号明細書における付録Aの
図A7~
図A18に提供されている(
図A7~
図A9が、単一画像の再構成であることに、他方、
図A10~
図A18が、複数画像の再構成であることに、留意されたい)。これらの再構成画像は、本発明に従って再構成された画像に関しての、より良好な解像度およびより良好な完全性を含めて、著しく優れた品質を示している。
【0083】
方法700は、画像内におけるそれぞれ対応する画素と、投射パターンの座標と、の間の対応関係を使用することにより、対象物の表面の形状を再構成すること(706)(例えば、三角測量アルゴリズムを使用して)をさらに含む。
【0084】
図5A~
図5Bおよび
図6A~
図6Bにおける操作に関して説明した特定の順序が、単なる例示に過ぎないこと、また、説明した順序がそれら操作を行い得る唯一の順序であることを示すことを意図していないことは、理解されるべきである。当業者であれば、本明細書で説明する操作に関して、順序を変更するための様々な態様を認識するであろう。
【0085】
上記の説明では、説明の目的のために、特定の実施形態を参照して説明した。しかしながら、上記の例示的な議論は、網羅的であることも、開示した厳密な形態へと本発明を限定することも、意図したものではない。多くの改変および変形が、上記教示に鑑みて可能である。実施形態は、本発明の原理およびその実用的用途を最良に説明するために選択して説明したものであり、それにより、当業者が、本発明および説明した様々な実施形態を、想定された特定の使用に適した様々な改変を行いつつ、最良に使用し得るものとする。
【0086】
また、第1、第2、等の用語が、いくつかの実例で、様々な構成要素を説明するために本明細書で使用されているけれども、これらの構成要素は、これらの用語によって限定されるものではないことは、理解されよう。これらの用語は、ある構成要素を別の構成要素から識別するために、使用されているに過ぎない。例えば、説明する様々な実施形態の範囲から逸脱することなく、第1ニューラルネットワークは、第2ニューラルネットワークと称することができ、同様に、第2ニューラルネットワークは、第1ニューラルネットワークと称することができる。第1ニューラルネットワークおよび第2ニューラルネットワークは、どちらもニューラルネットワークであるけれども、文脈が明瞭に別のことを示していない限り、同じニューラルネットワークではない。
【0087】
本明細書で説明する様々な実施形態に関して、説明で使用している用語は、特定の実施形態を説明する目的だけのものに過ぎず、限定することを意図したものではない。説明する様々な実施形態の説明で使用した際には、および添付の特許請求の範囲で使用した際には、「1つの(a)」、「1つの(an)」、および「その(the)」という単数形は、文脈が明瞭に別のことを示していない限り、複数形をも含むことが意図されている。また、本明細書で使用した際の、「および/または」という用語が、関連して列挙された複数の項目の、1つまたは複数についての、任意の組合せならびにすべての可能な組合せを指すことは、また、そのような任意の組合せならびにすべての可能な組合せ包含することは、理解されよう。本明細書で使用された時には、「含む」、「含んでいる」、「有する」、および/または「有している」という用語は、記載された、特徴点、完全体、ステップ、操作、構成要素、および/または成分、の存在を規定しているけれども、1つもしくは複数の他の、特徴点、完全体、ステップ、操作、構成要素、成分、および/またはこれらの群、の存在あるいは追加を排除しないことは、さらに理解されよう。
【0088】
本明細書で使用された際には、「~した場合には(if)」という用語は、任意選択的に、文脈に応じて、「~した時には(when)」、「~した時点で(upon)」、「~が決定されたことに応答して」、または「~が検出されたことに応答して」、を意味するものとして解釈される。同様に、「~が決定された場合には」または「[記述された条件または事象]が検出された場合には」という語句は、任意選択的に、文脈に応じて、「~が決定された時点で」、「~が決定されたことに応答して」、「[記述された条件または事象]が検出された時点で」、または「[記述された条件または事象]が検出されたことに応答して」、を意味するものとして解釈される。
【国際調査報告】