(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-08
(45)【発行日】2023-02-16
(54)【発明の名称】撮影に基づく3Dモデリングシステム
(51)【国際特許分類】
G06T 19/00 20110101AFI20230209BHJP
G06T 17/00 20060101ALI20230209BHJP
G06T 7/593 20170101ALI20230209BHJP
G06T 7/38 20170101ALI20230209BHJP
G06T 7/00 20170101ALI20230209BHJP
G06T 1/00 20060101ALI20230209BHJP
G06T 3/00 20060101ALI20230209BHJP
G06T 1/40 20060101ALI20230209BHJP
【FI】
G06T19/00 A
G06T17/00
G06T7/593
G06T7/38
G06T7/00 350C
G06T1/00 315
G06T3/00 750
G06T1/40
(21)【出願番号】P 2020571820
(86)(22)【出願日】2020-05-15
(86)【国際出願番号】 CN2020090469
(87)【国際公開番号】W WO2021036353
(87)【国際公開日】2021-03-04
【審査請求日】2020-12-18
(31)【優先権主張番号】201910784772.1
(32)【優先日】2019-08-23
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520502444
【氏名又は名称】上海亦我信息技術有限公司
(74)【代理人】
【識別番号】100095407
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100132883
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100148633
【氏名又は名称】桜田 圭
(74)【代理人】
【識別番号】100147924
【氏名又は名称】美恵 英樹
(72)【発明者】
【氏名】趙 明
(72)【発明者】
【氏名】向 中正
(72)【発明者】
【氏名】蔡 ▲ペイ▼
【審査官】梅本 章子
(56)【参考文献】
【文献】米国特許出願公開第2013/0104073(US,A1)
【文献】特開2009-237845(JP,A)
【文献】特表2014-507723(JP,A)
【文献】特開2014-220804(JP,A)
【文献】米国特許第09836885(US,B1)
【文献】中国特許出願公開第108961395(CN,A)
【文献】特開2011-186808(JP,A)
【文献】特表2016-528476(JP,A)
【文献】特表2019-523496(JP,A)
【文献】国際公開第2017/022033(WO,A1)
【文献】石川 智也 Tomoya ISHIKAWA,カメラと自蔵センサモジュールを併用したインタラクティブ3次元屋内環境モデラ Interactive 3D Indoor Modeler with a Camera and Self-Contained Sensors,電子情報通信学会技術研究報告 Vol.109 No.215 IEICE Technical Report,日本,社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2029年11月16日,第109巻
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00-19/20
(57)【特許請求の範囲】
【請求項1】
複数の空間に対して当該空間の第1画像をそれぞれ撮影するための撮影ユニットと、
各空間ごとに前記撮影ユニットが撮影した前記第1画像に基づいて、前記各空間の3Dモデルをそれぞれ生成する3Dモデル生成ユニットと、
前記撮影ユニットが各空間の第1画像を撮影した時の位置および撮影方向情報を取得するための撮影位置取得ユニットと、
前記位置および撮影方向情報に基づいて、前記各空間の3Dモデルを同一の三次元座標系でスティッチング処理を行い、前記各空間が含まれる3Dモデル全体を形成する3Dモデルスティッチングユニットとを含み、
前記撮影ユニットは、カメラおよび/またはカメラ機能付きモバイル機器によって実現され、
前記3Dモデル生成ユニットは、前記モバイル機器またはリモートサーバによって実現され、前記リモートサーバによって実現される場合には、ネットワークを介して、前記カメラおよび/または前記カメラ機能付きモバイル機器が撮影して送信した第1画像を受信して、前記各空間の3Dモデルを生成し、
前記撮影位置取得ユニットは、前記カメラまたは前記モバイル機器によって実現され、
前記3Dモデルスティッチングユニットは、前記モバイル機器またはリモートサーバによって実現され、前記リモートサーバによって実現される場合には、ネットワークを介して、前記撮影位置取得ユニットから送信された各空間の前記位置および撮影方向情報を受信し、当該位置および撮影方向情報に基づいて前記スティッチング処理を完了し、生成した前記3Dモデル全体を前記モバイル機器または他の機器に送信し、
前記撮影ユニットを実装したカメラと、カメラ機能付きモバイル機器とを同一の撮影スタンドに固定し、
前記スタンドを移動させる過程で、前記カメラまたは前記カメラ機能付きモバイル機器が撮影した複数の第2画像を取得し、それにより、前記カメラまたは前記カメラ機能付きモバイル機器が位置される空間に対して第1画像を撮影した時の位置および撮影方向情報を取得し、
前記撮影ユニットが第1空間の前記第1画像を撮影する前に、あるいはその後の移動中に、以下の方法、すなわち、
(1)前記モバイル機器に基づく位置決めシステムと前記カメラに基づく位置決めシステムを動作させ、前記スタンドを一定の距離で移動させ、この時、2つのシステムがそれぞれ1つの変位ベクトルを提供し、2つのベクトルの間の角度を、前記カメラのレンズと前記モバイル機器の撮影方向との間の角度とする方法、
(2)前記カメラのプレビュー画像または撮影画像を手動で回転させて、前記モバイル機器の撮影方向と一致する角度を指定する方法、
(3)前記モバイル機器と前記カメラのプレビュー画像または撮影画像を画像認識アルゴリズムで照合することによって、前記角度を見つける方法、
(4)スタンドに目盛りを付けるなど、追加のマーキングを使用して、前記モバイル機器の設置方向と一定の角度を形成し、その後、前記カメラのプレビュー画像または画像の中の当該マーキングを認識して、前記カメラのレンズと前記モバイル機器の撮影方向との間の角度を算出する方法、
(5)前記スタンドにスロットを設けることにより、前記カメラと前記モバイル機器との間の既知の固定角度を確保する方法、の1つ以上で、前記カメラのレンズと前記モバイル機器の撮影方向とのなす角度を取得することをさらに含む、
ことを特徴とする撮影に基づく3Dモデリングシステム。
【請求項2】
前記撮影ユニットは、前記各空間の間を移動する過程で複数の第2画像を撮影し、
前記撮影位置取得ユニットは、前記複数の第2画像を用いて特徴点照合を行うことにより、各撮影点の相対変位情報および撮影方向情報を取得する、ことを特徴とする請求項
1に記載の撮影に基づく3Dモデリングシステム。
【請求項3】
前記撮影ユニットは、位置決めセンサと方向センサを有し、
前記撮影位置取得ユニットは、前記撮影ユニットが位置される空間の第1画像を撮影した時に提供される位置決め情報と方向情報に基づいて、前記撮影ユニットが位置される空間の第1画像を撮影した時の位置および撮影方向情報を取得する、ことを特徴とする請求項
1に記載の撮影に基づく3Dモデリングシステム。
【請求項4】
前記撮影ユニットは、前記各空間の間を移動する過程で複数の第2画像を撮影し、
前記撮影ユニットは、位置決めセンサと方向センサを有し、
前記撮影位置取得ユニットは、前記複数の第2画像を用いて特徴点照合を行うことにより、各撮影点の相対変位情報および撮影方向情報を取得し、かつ前記撮影ユニットが位置される空間の第1画像を撮影した時の位置決め情報と方向情報に基づいて、前記相対変位情報および撮影方向情報を補正することにより、前記撮影ユニットが位置される空間の第1画像を撮影した時の位置および撮影方向情報を取得する、ことを特徴とする請求項
1に記載の撮影に基づく3Dモデリングシステム。
【請求項5】
前記撮影位置取得ユニットは、変位センサが取得した変位情報に基づいて、前記相対変位情報および撮影方向情報を補正する、ことを特徴とする請求項
4に記載の撮影に基づく3Dモデリングシステム。
【請求項6】
前記3Dモデルスティッチングユニットは、各空間を撮影する際に前記撮影位置取得ユニットが取得した前記位置および撮影方向情報に基づいて、1つの空間の前記3Dモデルのローカル座標をグローバルワールド座標に変換することで、前記複数の空間の3Dモデル全体を取得する、ことを特徴とする請求項1に記載の撮影に基づく3Dモデリングシステム。
【請求項7】
前記1つの空間の前記3Dモデルのローカル座標をグローバルワールド座標に変換することは、
前記撮影ユニットを所定距離で移動させることと、
前記撮影位置取得ユニットに前記所定距離の2つの端点の位置情報を取得させることと、
前記2つの端点の位置の差と前記所定距離との比を、前記ローカル座標と前記ワールド座標との比として取得することとを含む、ことを特徴とする請求項
6に記載の撮影に基づく3Dモデリングシステム。
【請求項8】
前記撮影ユニットは、同一の撮影点で前記第1画像をそれぞれ撮影する2眼レンズを有し、
前記3Dモデル生成ユニットは、それぞれの前記2眼レンズで撮影された前記第1画像を比較して対応する画素を決定し、前記3Dモデルの生成に用いるための対応する各画素の深さ情報を取得する、ことを特徴とする請求項
1に記載の撮影に基づく3Dモデリングシステム。
【請求項9】
前記3Dモデル生成ユニットは、ディープラーニング技術を用いて、前記第1画像における各画素の深さを予測し、前記ディープラーニング技術を計算または直接適用して前記各画素の法線方向を予測する、ことを特徴とする請求項
1に記載の撮影に基づく3Dモデリングシステム。
【請求項10】
前記撮影ユニットは、カメラおよび/またはカメラ機能付きモバイル機器によって実現され、
前記3Dモデル生成ユニットは、前記モバイル機器またはリモートサーバによって実現され、前記リモートサーバによって実現される場合には、ネットワークを介して、前記カメラおよび/または前記カメラ機能付きモバイル機器が撮影して送信した第1画像を受信して、前記各空間の3Dモデルを生成し、
前記撮影位置取得ユニットは、前記カメラまたは前記モバイル機器によって実現され、
前記3Dモデルスティッチングユニットは、前記モバイル機器またはリモートサーバによって実現され、前記リモートサーバによって実現される場合には、ネットワークを介して、前記撮影位置取得ユニットから送信された各空間の前記位置および撮影方向情報を受信し、当該位置および撮影方向情報に基づいて前記スティッチング処理を完了し、生成した前記3Dモデル全体を前記モバイル機器または他の機器に送信する、ことを特徴とする請求項2-
9のいずれか一項に記載の撮影に基づく3Dモデリングシステム。
【請求項11】
前記撮影ユニットを実装したカメラと、カメラ機能付きモバイル機器とを同一の撮影スタンドに固定し、
前記スタンドを移動させる過程で、前記カメラまたは前記カメラ機能付きモバイル機器が撮影した複数の第2画像を取得し、それにより、前記カメラまたは前記カメラ機能付きモバイル機器が位置される空間に対して第1画像を撮影した時の位置および撮影方向情報を取得する、ことを特徴とする請求項
10に記載の撮影に基づく3Dモデリングシステム。
【請求項12】
前記カメラまたは前記カメラ機能付きモバイル機器の位置決めシステムに基づいて、前記カメラまたは前記カメラ機能付きモバイル機器が撮影した第2画像を用いて、近接した撮影点の第2画像の特徴点を照合することにより、各撮影点の相対変位情報および撮影方向情報を取得し、各撮影点の相対位置および方向を提供する、ことを特徴とする請求項1または
11に記載の撮影に基づく3Dモデリングシステム。
【請求項13】
前記空間は、部屋であり、
前記第1画像は、前記部屋の室内画像であり、
前記3Dモデル生成ユニットは、ディープラーニング技術に基づいて前記第1画像中の床、天井、壁の少なくとも1つを認識し、認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて前記3Dモデルを生成し、ここで、前記第1画像中で交差する2つの平面については、算出された交差線と実際に観察された交差線との誤差を最小化する、ことを特徴とする請求項
1に記載の撮影に基づく3Dモデリングシステム。
【請求項14】
前記3Dモデル生成ユニットはさらに、コンピュータビジョン技術を用いて、前記室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成する、ことを特徴とする請求項
13に記載の撮影に基づく3Dモデリングシステム。
【請求項15】
前記3Dモデルスティッチングユニットは、複数の部屋のそれぞれの3Dモデルを統一して補正し、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれ、
前記3Dモデルスティッチングユニットは、各部屋の3Dモデルをスティッチングする時、重なり部分および/または現れた空洞を修正する、ことを特徴とする請求項
13に記載の撮影に基づく3Dモデリングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、出願日が2019年08月23日の中国特許出願第201910784772.1号に基づいて、その中国特許出願の優先権を主張しており、その内容の全体が参照により本出願に組込まれる。
【0002】
(技術分野)
本発明は、3Dモデリングシステムおよび方法に関し、特に、撮影に基づく3Dモデリングシステムおよび方法、自動3Dモデリング装置および方法に関する。
【背景技術】
【0003】
本発明が解決しようとす技術的課題は、単一空間または複数空間の3Dモデリングおよび/または2D平面図生成のための撮影に基づく三次元空間モデリングスキームを提供することである。
【0004】
従来、撮影に基づく3Dモデリング方法は主に、以下の2つがあるが、どちらも顕著な欠点があった。
【0005】
方法a)深さ情報を認識できるカメラを用いて3Dモデルを直接生成する。この方法は、より複雑なハードウェアに依存しているため、機器のコストが高くなり、プロのカメラマンが操作する必要があることが多く、普及には向いていない。
【0006】
方法b)互いに近い場所で、好ましくはセンチメートルとデシメータの間隔で2枚の写真を撮影し、照合と位置決めを連続的に行い、その後、MVS(Multi View Stereo、https://github.com/cdcseacave/openMVSを参照)を使用してモデリングを行い、その利点は、プロセス全体が完全に自動化されており、手動介入を必要としないことであるが、欠点もまた顕著である。
欠点1:計算量が多く、モバイル機器などの限られたコンピューティングリソースを持つ機器上でのモデリングは容易ではないこと、通常、サーバ(クラウド/PC)にアップロードすることで、より強いの計算能力を利用してモデリングアルゴリズムを実行する必要がある。
欠点2:撮影距離の指定ができないこと、距離が近すぎる場合、面倒で時間がかかる、可視性と感覚で距離を決定する場合、モデリングに失敗する可能性があり、撮影時にユーザにヒントを表示できない。
【0007】
また、従来から、写真に基づいて三次元空間シーンを再構成する方法が提供されているが、これらの方法では、3Dモデリングに用いられる画像に基づいて3Dモデルを自動的に生成することがほとんどできず、各空間の3Dモデルを修正するために多くの手動介入を必要とする。さらに、複数の空間の3Dモデルを自動的にスティッチングすることができないため、各空間の3Dモデルを手動で観察して共通点を見つけ、手動でスティッチングする必要があり、時間と手間がかかる。
【発明の概要】
【課題を解決するための手段】
【0008】
従来の方法における上記欠点の1つ以上を克服するために、本発明は、革新的な方法を使用し、すなわち、ディープラーニングおよび画像処理方法を使用してシングル撮影点によるモデリングを行い、これにより、モバイル機器などの限られた計算能力で実行することも、クラウドサーバに関連データをアップロードして実行することもできる。また、モバイル機器を用いたリアルタイムモデリングの場合、リアルタイム性を向上させるために、家具や小物などのモデルを復元することなく、部屋の輪郭のみをモデリングし、撮影点の位置決めシステムを構築することで、複数の撮影点のモデルをその位置と方向に応じて同一の座標系に配置し、複数の撮影点の独立したモデルを最適化し、結合された部分の処理を行うことで、3Dモデル全体と2D平面図を生成する。
【0009】
本発明は、携帯電話の魚眼レンズ、パノラマカメラ、魚眼レンズ付きカメラ、通常の携帯電話や通常のデジタルカメラなどを含むがこれらに限定されない、幅広い撮影モードに対応することができ、コストが低い。
【0010】
通常の写真(定義):通常のデジタルカメラ(通常の一眼レフカメラ、マイクロカメラ、ポイント&シュートカメラなどを含む)、パノラマカメラ、魚眼レンズ付きカメラ、通常の携帯電話、魚眼レンズ付き携帯電話、およびカメラで撮影した写真。通常の写真は両眼視とは異なり、同じ撮影点で撮影した2枚の写真に基づいて三次元情報を復元できない。以下、通常の写真を写真という。
【0011】
パノラマカメラを使用する場合、通常はパノラマ画像を取得する。直線検出などの一部のコンピュータビジョンと画像アルゴリズムでは、パノラマ画像を歪みのない画像に変換する必要がある。以下で使用する写真と画像の表現には、パノラマ写真と変換された歪みのない画像が含まれる。
【0012】
本発明は、撮影に基づく3Dモデリングシステムおよび方法、自動3Dモデリング装置および方法を提供しており、様々な撮影機器に対応し、かつ取得された各撮影点の相対位置とカメラのレンズ撮影方向情報に基づいて、各撮影点の3Dモデルを自動的にスティッチングして3Dモデル全体を生成することができる。本発明はさらに、2D平面図を生成することができる。
【0013】
具体的には、本発明は、撮影に基づく3Dモデリングシステムを提供し、複数の空間に対して各空間の第1画像をそれぞれ撮影するための撮影ユニットと、各前記空間ごとに前記撮影ユニットが撮影した前記第1画像に基づいて、各前記空間の3Dモデルをそれぞれ生成する3Dモデル生成ユニットと、前記撮影ユニットが各空間の第1画像を撮影した時の位置および撮影方向情報を取得するための撮影位置取得ユニットと、前記位置および撮影方向情報に基づいて、前記各空間の3Dモデルを同一の三次元座標系でスティッチングし、前記各空間が含まれる3Dモデル全体を形成する3Dモデルスティッチングユニットと、を含む。
【0014】
さらに、前記撮影ユニットは、前記各空間の間を移動する過程で複数の第2画像を撮影し、前記撮影位置取得ユニットは、前記複数の第2画像を用いて特徴点照合を行うことにより、各撮影点の相対変位および撮影方向情報を取得し、例えば、同一の座標系における全ての撮影点を含むロードマップを形成することにより、前記撮影ユニットが位置される空間の第1画像を撮影した時の位置および撮影方向情報を取得することができる。
【0015】
さらに、前記撮影ユニットは、位置決めセンサと方向センサを有し、前記撮影位置取得ユニットは、前記撮影ユニットが位置される空間の第1画像を撮影した時に提供される位置決め情報と方向情報に基づいて、前記撮影ユニットが位置される空間の第1画像を撮影した時の位置および撮影方向情報を取得する。
【0016】
さらに、前記撮影ユニットは、前記各空間の間を移動する過程で複数の第2画像を撮影し、前記撮影ユニットは、位置決めセンサと方向センサを有し、前記撮影位置取得ユニットは、前記撮影ユニットが撮影した複数の第2画像における近接した撮影点画像を用いて特徴点照合を行うことにより、各撮影点の相対変位情報および撮影方向情報を取得し、例えば、全ての撮影点を同一の座標系で含むロードマップを形成し、かつ前記撮影ユニットが位置される空間の第1画像を撮影した時の位置決め情報と方向情報とを結合してロードマップを補正することにより、前記撮影ユニットが位置される空間の第1画像を撮影した時の位置および撮影方向情報を取得することができる。
【0017】
さらに、前記撮影位置取得ユニットはさらに、加速度センサ、速度センサなど含む、前記撮影ユニットに搭載されたセンサから提供される加速度情報や移動速度情報などの変位情報により、前記相対変位、すなわち、ロードマップおよび撮影方向情報を補正する。
【0018】
さらに、前記3Dモデルスティッチングユニットは、各部屋を撮影する際に前記撮影位置取得ユニットが取得した前記位置および撮影方向情報に基づいて、例えば、1つの変換行列を用いて、1つの部屋の前記3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての撮影点の3Dモデル全体を取得することも可能である。
【0019】
さらに、1つの部屋の前記3Dモデルのローカル座標をグローバルワールド座標に変換する方法としては、前記撮影ユニットを所定距離で移動させ、前記撮影位置取得ユニットに前記所定距離の2つの端点の座標を取得させ、前記2つの端点の座標の差と前記所定距離との比を、前記ローカル座標と前記ワールド座標との比とする方法があり、あるいは、前記撮影位置取得ユニットによって認識された特徴点を用いて、前記空間の底面または上面が位置する平面の高さと前記撮影ユニットの高さとの比を、前記ローカル座標と前記ワールド座標との比として推定する方法がある。
【0020】
さらに、前記撮影ユニットが最初の撮影点を撮影する前に、またはその後の撮影の移動中に、所定距離を移動させて所定数の前記特徴点を取得する。
【0021】
さらに、前記撮影ユニットは、同一の撮影点で前記第1画像をそれぞれ撮影する2眼レンズを有し、前記3Dモデル生成ユニットは、それぞれの前記2眼レンズで撮影された前記第1画像を比較して対応する画素を決定し、前記3Dモデルの生成に用いるための対応する前記各画素の深さ情報を取得する。
【0022】
さらに、前記3Dモデル生成ユニットはさらに、ディープラーニング技術を用いて、前記第1画像における各画素の深さを予測し、前記ディープラーニング技術を計算または直接適用して前記各画素の法線方向を予測することにより、前記各空間の3Dモデルを生成する。
【0023】
さらに、前記撮影ユニットは、カメラおよび/または携帯電話などのカメラ機能付きモバイル機器によって実現される。前記3Dモデル生成ユニットは、前記携帯電話またはリモートサーバによって実現され、前記リモートサーバによって実現される場合には、ネットワークを介して、前記カメラおよび/または前記カメラ機能付き携帯電話が撮影して送信した第1画像を受信し、前記各空間の3Dモデルを生成する。前記撮影位置取得ユニットは、前記カメラまたは前記携帯電話によって実現される。前記3Dモデルスティッチングユニットは、前記携帯電話またはリモートサーバによって実現され、前記リモートサーバによって実現される場合には、ネットワークを介して、前記撮影位置取得ユニットから送信された各空間の前記位置および撮影方向情報を受信し、当該位置および撮影方向情報に基づいて前記スティッチング処理を完了し、生成した前記整体3Dモデルを前記携帯電話または他の機器に送信する。
【0024】
さらに、前記撮影ユニットを実装したカメラと、カメラ機能付き携帯電話とを同一の撮影スタンドに固定する。前記スタンドを移動させる過程で、前記カメラまたは前記カメラ機能付き携帯電話が撮影した複数の第2画像を取得し、それにより、前記カメラまたは前記カメラ機能付き携帯電話が位置される空間に対して第1画像を撮影した時の位置および撮影方向情報を取得する。
【0025】
さらに、前記カメラまたは前記カメラ機能付き携帯電話の位置決めシステムに基づいて、前記カメラまたは前記カメラ機能付き携帯電話が撮影した第2画像を用いて、近接した撮影点の第2画像の特徴点を照合することにより、各撮影点の相対変位情報および撮影方向情報を取得し、各撮影点の相対位置および方向を提供する。
【0026】
さらに、前記撮影ユニットが前記第1空間の前記第1画像を撮影する前に、あるいはその後の移動中に、前記カメラのレンズと前記携帯電話の撮影方向とのなす角度を、以下のいずれか1つ以上の方法で取得する。
【0027】
ここで、カメラのレンズの撮影方向とは、一般的なパノラマカメラの前面魚眼レンズおよび背面魚眼レンズのいずれかの方向、または、1つのレンズを回転させて複数枚の写真を撮影するパノラマカメラが第1枚の写真を撮影する時のレンズの方向を指してもよい。
【0028】
(1)前記携帯電話に基づく位置決めシステムと前記カメラに基づく位置決めシステムを同時に動作させ、前記スタンドを一定の距離で移動させ、この時、2つのシステムがそれぞれ1つの変位ベクトルを提供し、2つのベクトルの間の角度を、前記カメラのレンズと前記携帯電話の撮影方向との間の角度とする。
【0029】
(2)前記カメラのプレビュー画像または撮影画像を手動で回転させて、前記携帯電話の撮影方向と一致する角度を指定する。
【0030】
(3)前記携帯電話と前記カメラのプレビュー画像または撮影画像を画像認識アルゴリズムで照合することによって、前記角度を見つける。
【0031】
(4)追加のマーキングを使用して、例えば、スタンドに目盛りを付けて前記携帯電話の設置方向と一定の角度を形成し、その後、前記カメラのプレビュー画像または画像の中の当該マーキングを認識して、前記カメラのレンズと前記携帯電話の撮影方向との間の角度を算出する。
【0032】
(5)前記スタンドにスロットを設けることにより、前記カメラと前記携帯電話(モバイル機器)との間の既知の固定角度を確保する。
【0033】
さらに、前記空間は部屋であり、前記第1画像は前記部屋の室内画像である。前記3Dモデル生成ユニットは、ディープラーニング技術に基づいて前記第1画像中の床、天井、壁の少なくとも1つを認識し、認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて前記3Dモデルを生成する。ここで、前記第1画像中で交差する2つの平面については、算出された交差線と実際に観察された交差線との誤差を最小化する。
【0034】
さらに、前記3Dモデル生成ユニットはさらに、コンピュータビジョン技術を用いて、前記室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成する。
【0035】
さらに、前記3Dモデルスティッチングユニットはさらに、前記複数の部屋のそれぞれの3Dモデルを統一して補正し、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれ、前記3Dモデルスティッチングユニットは、前記各部屋の3Dモデルをスティッチングする時、重なり部分および/または現れた空洞を修正する。
【0036】
さらに、本発明の撮影に基づく3Dモデリングシステムはさらに、2D平面図生成ユニットを含み、以下のように2D平面図を生成する。生成した前記3Dモデルの各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する。得られた前記ポリゴンを補正および簡略化し、以下の方法の少なくとも1つを含む。(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除し、(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正する。前記撮影位置取得ユニットが取得した各空間の前記位置および撮影方向情報に基づいて、生成した前記各部屋の2D平面図を同一の二次元座標系でスティッチング処理を行い、前記各部屋のそれぞれの2D平面図によってスティッチングされた2D平面図全体を形成する。ドアおよび/または窓の位置を認識してラベル付け、そのうち、ディープラーニングの方法を用いて、前記室内画像上でドアおよび/または窓の位置を認識すること、または、前記撮影ユニットが同一住宅に属する複数の部屋に対して前記第1画像をそれぞれ撮影した時の移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる。
【0037】
さらに、前記2D平面図生成ユニットは、前記複数の部屋のそれぞれの2D平面図を統一して補正し、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれる。前記2D平面図生成ユニットは、前記各部屋の2D平面図をスティッチングする時、重なり部分および/または現れた空洞を修正する。
【0038】
さらに、本発明の撮影に基づく3Dモデリングシステムはさらに、2D平面図生成ユニットを含んでもく、以下のように2D平面図を生成する。前記3Dモデルスティッチングユニットが生成した前記3Dモデル全体の各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する。得られた前記ポリゴンを補正および簡略化し、以下の方法の少なくとも1つを含む。(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除し、(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正する。ドアおよび/または窓の位置を認識してラベル付け、そのうち、ディープラーニングの方法を用いて、前記室内画像上でドアおよび/または窓の位置を認識すること、または、前記撮影ユニットが同一住宅に属する複数の部屋に対して前記第1画像をそれぞれ撮影した時の移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる。
【0039】
また、本発明はさらに、自動3Dモデリング装置を提供し、モデリングオブジェクトに含まれる複数の空間のそれぞれの第1画像に基づいて、前記各空間の3Dモデルをそれぞれ生成する3Dモデル生成ユニットと、前記複数の空間のそれぞれの前記第1画像が撮影された時の位置および撮影方向情報に基づいて、前記3Dモデル生成ユニットが生成した前記各空間の3Dモデルを同一の三次元座標系でスティッチング処理を行い、前記各空間のそれぞれの3Dモデルによってスティッチングされた3Dモデル全体を形成する3Dモデルスティッチングユニットと、を含む。
【0040】
また、本発明はさらに、自動3Dモデリング方法を提供し、モデリングオブジェクトに含まれる複数の空間のそれぞれの第1画像に基づいて、前記各空間の3Dモデルをそれぞれ生成する3Dモデル生成ステップと、前記複数の空間のそれぞれの前記第1画像が撮影された時の位置および撮影方向情報に基づいて、前記3Dモデル生成ステップで生成した前記各空間の3Dモデルを同一の三次元座標系でスティッチング処理を行い、前記各空間のそれぞれの3Dモデルによってスティッチングされた3Dモデル全体を形成する3Dモデルスティッチングステップと、を含む。
【0041】
また、本発明はさらに、撮影に基づく3Dモデリング方法を提供し、以下のステップ、すなわち、S1)同一の撮影スタンドにカメラ機能付きモバイル機器およびカメラを固定するステップと、S2)スタンドを移動させる過程で、カメラまたはモバイル機器からの複数の第2画像を取得し、前記カメラまたはモバイル機器のセンサと組み合わせて各撮影点の位置および撮影方向を取得し、統一座標系を用いたロードマップを形成するステップと、S3)前記モバイル機器またはリモートサーバ側で、各撮影点で撮影された第1画像に基づいて、3Dモデリングを行うステップと、S4)S2で得られた位置および撮影方向に応じて各撮影点の前記3Dモデルを同一の三次元座標系に配置し、複数の撮影点の3Dモデル間の結合部分をスティッチングし、複数の撮影点が含まれる3Dモデル全体を形成するステップと、を含む。
【0042】
さらに、前記ステップS2では、前記モバイル機器またはカメラの位置決めシステムに基づいて、前記モバイル機器またはカメラで撮影した第2画像を用いて、近似した撮影点の第2画像の特徴点を照合することにより、撮影点の相対変位および撮影方向情報を見つけ、全ての撮影点を同一の座標系に含む前記ロードマップを形成し、各撮影点の位置および方向を提供する。
【0043】
さらに、前記ステップS2では、さらに、前記モバイル機器またはカメラを用いて、移動加速度、速度、および方向情報を取得することにより、前記ロードマップを補正する。
【0044】
さらに、前記ステップS2では、さらに、前記カメラのレンズと前記モバイル機器の撮影方向との間の角度を取得し、初期化段階で、前記モバイル機器に基づく位置決めシステムと前記カメラに基づく位置決めシステムを同時に動作させ、スタンドを一定の距離だけ移動させ、この時、2つのシステムがそれぞれ1つの変位ベクトルを提供し、2つのベクトルの間の角度を、前記カメラのレンズと前記モバイル機器の撮影方向との間の角度とする。あるいは、前記カメラのプレビュー画像または撮影画像を手動で回転させて、前記モバイル機器の撮影方向と一致する角度を指定する。あるいは、前記モバイル機器と前記カメラのプレビュー画像または撮影画像を画像認識アルゴリズムで照合することによって、その角度を見つける。あるいは、追加のマーキングを使用して、例えば、スタンドに目盛りを付けて前記モバイル機器の設置方向と一定の角度を形成し、その後、前記カメラのプレビュー画像または画像の中の当該マーキングを認識して、前記カメラのレンズと前記モバイル機器の撮影方向との間の角度を算出する。
【0045】
さらに、前記ステップS3は、以下を含む。S31)ディープラーニング技術に基づいて、画像中の床、天花板、壁の少なくとも1つを認識する。S32)認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて前記3Dモデルを生成する。画像中で交差する2つの平面については、2つの平面の交差線を制約条件とし、算出された交差線と実際に観察された交差線との誤差を最小化する。
【0046】
さらに、前記ステップS3はさらに、コンピュータビジョン技術を用いて、室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成する。
【0047】
さらに、前記ステップS4は、以下を含む。S41)各撮影点の位置と撮影方向に基づいて、例えば、1つの変換行列を用いて、シングル撮影点の3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての撮影点の3Dモデル全体を取得する。S42)複数の撮影点の3Dモデルを統一して補正し、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全ての撮影点の壁線方向を統一して補正することが含まれる。S43)各撮影点の3Dモデルをスティッチングする時、重なり部分および/または現れた空洞を修正する。
【0048】
従来技術と比較して、本発明は、多様な撮影機器に対応できること、3Dモデリングおよびスティッチング作業を、モバイル機器のような計算能力の限られた機器内で実行でき、リモートサーバ上でも実行できること、各撮影点の相対位置とカメラのレンズ撮影方向情報に基づいて、各撮影点の3Dモデルを自動的にスティッチングして3Dモデル全体を生成できること、必要に応じて2D平面図を生成できること、のうちの1つ以上の有益な効果を達成することができる。本発明によれば、モデリングの成功率が高く、1部屋につき1セットの画像のみを撮影してパノラマを合成することに対応し、モデリング効率が高く、ユーザーに良好な体験を提供でき、モデリング効率が高いため、撮影時のリアルタイムモデリングが可能であり、リモートサーバー上での正確なモデリングも可能であり、目に見えるものは手に入れるものであり、ユーザーはリアルタイムモデリング結果を参考にして撮影場所を選択し、撮り逃しを防ぐことができ、モデリングには家具などの外乱が含まれていない場合があり、正確な住宅プランの生成に資することができる。
【図面の簡単な説明】
【0049】
【
図1】本発明が適用され得る例示的なシステムのアーキテクチャ図である。
【
図2】本発明の撮影に基づく3Dモデリングシステムの一実施例の構造を示す図である。
【
図3】本発明の撮影に基づく3Dモデリングシステムの別の実施例の構造を示す図である。
【
図4】本発明の撮影に基づく3Dモデリング方法の一実施例のフローチャートである。
【
図5】本発明の自動3Dモデリング装置の一実施例の構造を示す図である。
【
図6】本発明の自動3Dモデリング装置の別の実施例の構造を示す図である。
【
図7】本発明の自動3Dモデリング方法の一実施例のフローチャートである。
【
図8】本発明の電子機器の一実施例の構造を示す図である。
【0050】
添付の図面と併せて以下の特定の実施形態を参照すると、本発明の各実施形態の上記および他の特徴、利点、態様がより明らかになるであろう。添付の図面全体を通して、同一または類似の参照番号は、同一または類似の要素を示す。添付の図面は概略図であり、原本および要素は必ずしも縮尺で描かれていないことを理解すべきである。
【発明を実施するための形態】
【0051】
別段の定義がない限り、本明細書で使用される全ての技術的および科学的用語は、当業者によって一般的に理解されるのと同じ意味を有する。本出願の明細書で使用される用語は、特定の実施例を説明するためのものであり、本発明を限定することを意図するものではない。本発明の明細書および特許請求の範囲ならびに上記図面の説明における「含む」および「有する」という用語およびそれらの変形は、非排他的な包含をカバーすることを意図している。本発明の明細書および特許請求の範囲または上記図面における「第1」、「第2」などの用語は、異なる対象物を区別するために使用され、特定の順序を説明するために使用されるものではない。
【0052】
本明細書における「実施例」への言及は、実施例と併せて記載された特定の特徴、構造、または特性が、本発明の少なくとも1つの実施例に含まれ得ることを意味する。本明細書の様々な位置に現れる句は、必ずしも全てが同じ実施例を指すものではなく、また、他の実施例と相互に排他的な独立した実施例または代替的な実施例を指すものでもない。本明細書に記載された実施例は、他の実施例と組み合わせてもよいことが、当業者によって明示的かつ暗黙的に理解される。
【0053】
当業者が本発明の技術的解決手段をよりよく理解できるようにするために、添付の図面および実施例を組み合わせて本発明をさらに説明する。
【0054】
(システム構造)
【0055】
まず、本発明の一実施例のシステムの構造について説明する。
図1に示すように、システム構造100は、モバイル機器101、102、103、104、ネットワーク105およびサーバ106を含み得る。ネットワーク105は、端末機器101、102、103、104とサーバ106との間の通信リンクを提供するための媒体である。
【0056】
本実施例では、
図1に示すモバイル機器101、102、103または104は、ネットワーク105を介して各種情報を伝送することができる。ネットワーク105は、有線、無線通信リンクまたはファイバケーブルなどの様々な接続タイプを含み得る。上記の無線接続方法は、3G/4G/5G接続、WiFi接続、Bluetooth接続、WiMAX接続、Zigbee接続、UWB接続、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、Internet(例えば、インターネット)、エンドツーエンドネットワーク(例えば、アドホックエンドツーエンドネットワーク)、および現在知られているかまたは将来開発される他のネットワーク接続方法を含み得るが、これらに限定されないことに留意すべきである。ネットワーク105は、HTTP(Hyper Text Transfer Protocolocol、ハイパーテキスト転送プロトコル)などの現在知られているまたは将来開発される任意のネットワークプロトコルを使用して通信してもよく、デジタルデータ通信の任意の形態または媒体(例えば、通信ネットワーク)と相互接続してもよい。
【0057】
ユーザは、モバイル機器101、102、103、104を使用して、ネットワーク105を介してサーバ106と対話し、メッセージの受信や送信などを行ってもよい。モバイル機器101、102、103、または104には、ライブビデオおよび再生アプリケーション、ウェブブラウザアプリケーション、ショッピングアプリケーション、検索アプリケーション、インスタントメッセンジャー、電子メールクライアント、ソーシャルプラットフォームソフトウェアなどの各種クライアントアプリケーションをインストールすることができる。
【0058】
モバイル機器101、102、103、または104は、タッチスクリーンを有し、および/またはウェブブラウジングをサポートし、カメラ機能を有する様々な電子機器であってもよく、スマートフォン、タブレット、電子書籍リーダー、MP3(Motion Picture Experts Compressed Standard Audio Level 3)プレーヤー、MP4(Motion Picture Experts Compressed Standard Audio Level 4)プレーヤー、ヘッドマウントディスプレイ、ノートパソコン、デジタルラジオ受信機、PDA(パーソナル・デジタル・アシスタント)、PMP(ポータブル・マルチメディア・プレーヤー)、車載端末などのモバイル端末、およびデジタルテレビ、デスクトップ・コンピュータなど含むが、これらに限定されない。
【0059】
サーバ106は、モバイル機器101、102、103、104上での3Dモデリングをサポートするバックエンドサーバなど、各種サービスを提供するサーバであってもよい。
【0060】
図1のモバイル機器、ネットワーク、およびサーバの数は、単なる例示であることが理解されるべきである。実装のニーズに応じて、任意の数のモバイル機器、ネットワーク、およびサーバを有してもよい。
【0061】
ここで、モバイル機器は、単独で、またはカメラなどの他の電子端末機器と同じスタンド(例えば、三脚)に固定されることにより、Androidでのアプリケーションの実行に連動して、またはiOS、Windows、Harmonyなどの他のオペレーティングシステムでのアプリケーションの実行に連動して、本発明の実施例の方法を実現することができる。
【0062】
(撮影に基づく3Dモデリングシステム)
【0063】
図2は、本発明の撮影に基づく3Dモデリングシステムの一実施例の構造を示す図である。
図2に示すように、当該実施例のカメラに基づく3Dモデリングシステムは、複数の位置される空間に対して当該空間の第1画像をそれぞれ撮影するための撮影ユニット201を含み、ここで、第1画像は、例えば、3Dモデリング用画像であってもよく、通常の写真、パノラマ写真、処理されたパノラマ写真(歪みが除去されたものなど)を含んでいてもよい。当該撮影ユニット201は、モバイル機器に搭載された撮影モジュールによって実現されてもよい。
【0064】
ここで、撮影ユニット201は、各空間の間を移動する過程で複数の第2画像を撮影してもよく、ここで、第2画像は、例えば、位置決め用画像であってもよく、通常の写真、パノラマ写真、処理されたパノラマ写真(歪みが除去されたものなど)を含んでいてもよい。ここで、第1画像と第2画像は、限定されることなく、同一の画像であってもよいし、部分的に同一の画像であってもよいし、異なる画像であってもよい。ここで、位置決め用画像はさらに、撮影ユニット201が撮影した写真、プレビュー画像、動画フレームなどであってもよく、記憶されてもよく、記憶されずに特徴点の認識や照合にのみ使用されてもよい。
【0065】
ここで、撮影ユニット201は、例えば、位置決めセンサ及び方位方向センサ、位置される空間の3Dモデリング用画像を撮影した際にの位置決め情報および方位情報を取得することができ、ここで、位置決めセンサは、例えば、加速度センサ、ジャイロセンサ、直線加速度センサ、回転ベクトルセンサ、重力センサなどのうちの1つ以上であってもよく、方向センサは、例えば、方向センサ、磁気センサなどのうちの1つ以上であってもよい。
【0066】
3Dモデル生成ユニット202は、各空間ごとに撮影ユニット201が撮影した3Dモデリング用画像に基づいて、各空間の3Dモデルをそれぞれ生成する。
【0067】
例えば、撮影ユニット201は、同一の撮影点で3Dモデリング用画像をそれぞれ撮影する2眼レンズを有し、3Dモデル生成ユニット202は、それぞれの2眼レンズで撮影された3Dモデリング用画像を比較して対応する画素を決定し、3Dモデルの生成に用いるための対応する各画素の深さ情報を取得する。
【0068】
もちろん、1つ以上の実施例では、例えば、3Dモデル生成ユニット202はさらに、ディープラーニング技術を用いて、3Dモデリング用画像における画素の各々または一部の深さを予測し、ディープラーニング技術を計算または直接適用して画素の各々または一部の法線方向を予測することにより、各空間の3Dモデルを生成することができる。
【0069】
ディープラーニング技術により、3Dモデリング用画像における各画素の深さまたは各画素の法線方向を予測する方法は、例えば、単一の室内360°画像から密な深さと表面法線および平面境界を予測するための平面認識畳み込みニューラルネットワークを訓練するための方法であってもよいし(例えば、Pano Popups:Indoor 3D Reconstruction with a Plane-Aware Networkを参照)、大規模な三次元データセットを用いて、360°画像からエンドツーエンドで深さを予測するための方法であってもよい(例えば、OmniDepth:Dense Depth Estimation for Indoors Spherical Panoramasを参照)。
【0070】
撮影位置取得ユニット203は、撮影ユニット201が各空間の3Dモデリング用画像を撮影した時の位置情報と撮影方向情報を取得するだけでなく、レンズの焦点距離やレンズの走査間隔、および画像内容の特徴量の歪みや画像内容の特徴量の相対寸法に影響を与え得る焦点距離や広角、望遠鏡ヘッドの設定など、画像内容に影響を与え得る撮影パラメータ情報を取得することもできる。
【0071】
ここで、撮影位置取得ユニット203は、例えば、撮影ユニット201が撮影した複数の位置決め用画像における近接した撮影点画像を用いて特徴点照合を行うことにより、各撮影点の相対変位および撮影方向情報を取得し、例えば、全ての撮影点を同一の座標系で含むロードマップを形成することにより、撮影ユニット201が位置される空間の3Dモデリング用画像を撮影した時の位置および撮影方向情報を取得することができる。
【0072】
ここで、撮影位置取得ユニット203は、例えば、撮影ユニット201が位置される空間の3Dモデリング用画像を撮影した時に提供される位置決め情報や方向情報に基づいて、撮影ユニット201が位置される空間の3Dモデリング用画像を撮影した時の位置や撮影方向情報を取得してもよい。
【0073】
ここで、撮影位置取得ユニット203はさらに、加速度センサや速度センサなどの変位センサ、およびジャイロセンサや気圧センサなどの動作センサを含む、撮影ユニット201に搭載されたセンサから提供される加速度情報や移動速度情報などの変位情報、または他の運動・動作情報などにより、相対変位して形成されたロードマップおよび撮影方向情報を補正する。
【0074】
3Dモデルスティッチングユニット204は、撮影位置取得ユニット203が取得した各空間の位置および撮影方向情報に基づいて、3Dモデル生成ユニット202が生成した各空間の3Dモデルを同一の三次元座標系でスティッチング処理を行い、各空間のそれぞれの3Dモデルによってスティッチングされた3Dモデル全体を形成する。
【0075】
ここで、3Dモデルスティッチングユニット204は、各部屋を撮影する際に撮影位置取得ユニット203が取得した位置情報と撮影方向情報に基づいて、例えば、1つの変換行列を用いて、1つの部屋の3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての撮影点の3Dモデル全体を取得することも可能である。
【0076】
ここで、1つの部屋の3Dモデルのローカル座標をグローバルワールド座標に変換する方法としては、撮影ユニット201を所定距離で移動させ、撮影位置取得ユニット203に所定距離(例えば1m)の2つの端点の座標を取得させ、2つの端点の座標の差と所定距離との比を、ローカル座標とワールド座標との比とする方法があり、あるいは、撮影位置取得ユニット203によって認識された特徴点を用いて、空間の底面または上面が位置する平面の高さと撮影ユニット201の高さとの比を、ローカル座標とワールド座標との比として推定し、そのうち、撮影ユニット201が最初の撮影点を撮影する前に、またはその後の撮影の移動中に、所定距離を移動させて所定数の特徴点を取得する方法がある。
【0077】
ここで、空間の底面または上面が位置する平面の高さと撮影ユニット201の高さとの比を推定する方法としては、例えば、撮影点を底面に垂直に投影した後、特徴点を(底面で)接続し、これら3点が三角形を形成する方法が挙げられる。投影線をL1、撮影点から特徴点までの接続線をL2、投射点から特徴点までの接続線をL3とし、L1とL2の間の角度は(パノラマ画像の特性に基づいて)既知であり、L3の長さと上記角度に基づいて三角関数を用いてL1を算出し、実際のカメラの高さに基づいて縮尺を算出することができる。
【0078】
ここで、所定距離とは、所定数の特徴点を取得するのに十分な距離を満たす必要がある。
【0079】
具体的には、例えば、1つ以上の実施例では、撮影ユニット201は、カメラまたは携帯電話のカメラのみを使用しており、得られた座標は相対値であるため、座標を絶対値に変換する必要がある。つまり、画像比較のためのアルゴリズムは通常、正確なスケールを持たず、座標は相対的であり、特定の寸法を持たない。また、これは、異なる画像から算出された変位やスケールに不整合が生じ、維持ずれにつながる。上記の座標変換方法は、以下のように実現してもよい。
【0080】
a)ユーザーは、所定距離(例えば1m)を移動させ、移動した距離の2つの端点の座標を取得し、その2つの端点の座標の差と移動距離の比を、ローカル座標とワールド座標の比とするができる。
【0081】
b)システムが認識した特徴点を用いて、例えば、部屋の地面や屋根が位置する平面を推定する。座標系における垂直方向の座標軸をz軸とすると、当該平面の方程式はz=aであり、撮影ユニット201の高さが既知(または撮影ユニット201から屋根までの高さが既知)で、hとすると、a/hはローカル座標とワールド座標との比である。ここで、aを推定するには、同一平面(地面や屋根)上にある一定数の特徴点を見つける必要があるため、実施中では、初期化処理を設定し、すなわち、十分に長い距離(例えば、2m以上)を移動することで、異なる環境において十分な数の特徴点を蓄積することができる。この初期化処理は、最初の撮影点の前に配置し、初期化に失敗した場合には、後続の撮影点に影響を与えることなく繰り返し行うことができ、あるいは、後続の撮影点間の移動中に初期化処理を行うことができる。
【0082】
本実施形態では、撮影ユニット201は、例えば、カメラおよび/またはカメラ機能付き携帯電話によって実現されてもよい。
【0083】
1つ以上の実施例では、例えば、撮影ユニット201を実装したカメラとカメラ機能付き携帯電話とを同一の撮影スタンドに固定し、スタンドを移動させる過程で、カメラまたはカメラ機能付き携帯電話が撮影した複数の位置決め用画像を取得し、それにより、カメラまたはカメラ機能付き携帯電話が位置される空間に対して3Dモデリング用画像を撮影した時の位置および撮影方向情報を取得するようにしてもよい。
【0084】
ここで、カメラまたは前記カメラ機能付き携帯電話の位置決めシステムに基づいて、前記カメラまたはカメラ機能付き携帯電話が撮影した位置決め用画像を用いて、近接した撮影点の位置決め用画像の特徴点を照合することにより、各撮影点の相対変位情報および撮影方向情報を取得し、各撮影点の相対位置および方向を提供することも可能である。
【0085】
1つ以上の実施形態では、撮影点の位置、方向、およびロードマップは、携帯電話によって取得される。カメラは回転ネジを介してスタンドに固定できるので、カメラと携帯電話との角度は、取り付けるたびに異なる場合がある(ただし、一組の住宅を撮影している間は角度は変わらない)。1つの部屋の3Dモデルは、この角度で回転させ、携帯電話で取得した位置と撮影方向に基づいて、グローバル座標に入れて、3Dモデル全体を形成する必要がある。
【0086】
ここで、撮影ユニット201が第1空間の3Dモデリング用画像を撮影する前に、あるいはその後の移動中に、カメラのレンズと携帯電話の撮影方向とのなす角度を、以下のいずれか1つ以上の方法で取得してもよい。
【0087】
ここで、カメラのレンズの撮影方向とは、一般的なパノラマカメラの前面魚眼レンズおよび背面魚眼レンズのいずれかの方向、または、1つのレンズを回転させて複数枚の写真を撮影するパノラマカメラが第1枚の写真を撮影する時のレンズの方向を指してもよい。
【0088】
(1)携帯電話に基づく位置決めシステムとカメラに基づく位置決めシステムを同時に動作させ、スタンドを一定の距離で移動させ、この時、2つのシステムがそれぞれ1つの変位ベクトルを提供し、2つのベクトルの間の角度を、カメラのレンズと携帯電話の撮影方向との間の角度とする。
【0089】
(2)カメラのプレビュー画像または撮影画像を手動で回転させて、携帯電話の撮影方向と一致する角度を指定する。
【0090】
(3)携帯電話とカメラのプレビュー画像または撮影画像を画像認識アルゴリズムで照合することによって、その角度を見つけ、ここで、角度を見つけるための可能な実施方法は、以下の方法のうちの少なくとも1つを含み得る。
【0091】
携帯電話とカメラの両方で撮影された画像中の特徴量を計算し、例えば、スケール不変特徴変換(Scale-invariant feature transform、SIFT)を使用して、2つの画像中の照合した特徴量の位置の差に基づいて、2つのレンズの撮影方向間の角度を計算する。または、
【0092】
2つのレンズで撮影されたビデオストリームを用いて、ビジョンベースの同期定位・マッピングシステム(Visual Simultaneous Localization And Mapping、VSLAM)をそれぞれ構築し、2つのシステム内でのカメラ変位の角度は、レンズの撮影方向の角度となる。
【0093】
(4)追加のマーキングを使用して、例えば、スタンドに目盛りを付けて携帯電話の設置方向と一定の角度を形成し、その後、カメラのプレビュー画像または画像の中の当該マーキングを認識して、カメラのレンズと携帯電話の撮影方向との間の角度を算出する。
【0094】
(5)前記スタンドにスロットを設けることにより、前記カメラと前記携帯電話(モバイル機器)との間の既知の固定角度を確保する。
【0095】
もちろん、ここで、カメラ画像から撮影点の位置、方向、ロードマップを算出することも可能であり、この場合、3Dモデルの算出はカメラと携帯電話の角度に依存しないため、携帯電話をスタンドに固定する必要がない。
【0096】
ここで、カメラに方向センサも搭載されていれば、カメラと携帯電話の方向を直接取得して、両者の角度を算出することができる。
【0097】
3Dモデル生成ユニット202は、携帯電話またはリモートサーバによって実現され、リモートサーバによって実現される場合には、ネットワークを介して、カメラおよび/またはカメラ機能付き携帯電話が撮影して送信した3Dモデリング用画像、位置決め用画像、および/または動作センサが取得した情報を受信して、前記各空間の3Dモデルを生成する。
【0098】
撮影位置取得ユニット203は、例えば、前記カメラまたは前記携帯電話によって実現されてもよい。
【0099】
3Dモデルスティッチングユニット204は、例えば、前記携帯電話または前記リモートサーバによって実現されてもよく、前記リモートサーバによって実現される場合には、ネットワークを介して、撮影位置取得ユニット203から送信された各空間の前記位置および撮影方向情報を受信し、当該位置および撮影方向情報に基づいてスティッチング処理を完了し、生成した3Dモデル全体を前記携帯電話または他の機器に送信する。
図3は、本発明の撮影に基づく3Dモデリングシステムの別の実施例の構造を示す図である。
図3に示すように、本実施形態の撮影に基づく3Dモデリングシステムにおいて、撮影に基づく3Dモデリング空間は、例えば、部屋であり、3Dモデリング用画像は、例えば、部屋の内部の画像であり、当該システムは、以下を含む。
【0100】
撮影ユニット301であって、複数の部屋に対して当該部屋の3Dモデリング用画像をそれぞれ撮影するために使用される。
【0101】
ここで、撮影ユニット301は、各部屋の間を移動する過程で複数の位置決め用画像を撮影してもよい。
【0102】
ここで、撮影ユニット301は、例えば、位置センサや方向センサを有しており、配置された部屋の3Dモデリング用画像を撮影した時の位置決め情報および方位情報を取得できる。
【0103】
3Dモデル生成ユニット302であって、各部屋ごとに撮影ユニット301が撮影した3Dモデリング用画像に基づいて、各部屋の3Dモデルをそれぞれ生成する。
【0104】
ここで、3Dモデル生成ユニット302は、ディープラーニング技術に基づいて3Dモデリング用画像中の床、天井、壁の少なくとも1つを認識し、認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて3Dモデルを生成する。ここで、3Dモデリング用画像中で交差する2つの平面については、算出された交差線と実際に観察された交差線との誤差を最小化する。
【0105】
ここで、3Dモデル生成ユニット302はさらに、コンピュータビジョン技術を用いて、室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成する。
【0106】
ここで、1つ以上の実施例では、画像内のコーナーを認識する方法は、例えば、関心点検出と自己教師付き学習フレームワーク(例えば、SuperPoint:Self-Supervised Interest Point Detection and Descriptionを参照)を使用して、コーナーを連結して部屋の大まかなモデルを形成することにより、同じ三次元空間構造の中に頻繁に現れるコーナーなどのオブジェクトを捉えることができる幾何学的な関係を可能にする。
【0107】
撮影位置取得ユニット303であって、撮影ユニット301が各部屋の3Dモデリング用画像を撮影した時の位置および撮影方向情報を取得するために使用される。
【0108】
ここで、撮影位置取得ユニット303は、例えば、撮影ユニット301が撮影した複数の位置決め用画像における近接した撮影点画像を用いて特徴点照合を行うことにより、各撮影点の相対変位および撮影方向情報を取得し、例えば、全ての撮影点を同一の座標系で含むロードマップを形成することにより、撮影ユニット301が配置された部屋の3Dモデリング用画像を撮影した時の位置および撮影方向情報を取得することができる。
【0109】
ここで、撮影位置取得ユニット303は、例えば、撮影ユニット301が配置された部屋の3Dモデリング用画像を撮影した時に提供される位置決め情報や方向情報に基づいて、撮影ユニット301が位置される空間の3Dモデリング用画像を撮影した時の位置や撮影方向情報を取得してもよい。
【0110】
ここで、撮影位置取得ユニット303はさらに、撮影ユニット301に搭載された加速度センサ、速度センサから提供される加速度情報や移動速度情報により、ロードマップを補正する。
【0111】
3Dモデルスティッチングユニット304は、撮影位置取得ユニット303が取得した各部屋の位置および撮影方向情報に基づいて、3Dモデル生成ユニット302が生成した各部屋の3Dモデルを同一の三次元座標系でスティッチング処理を行い、各部屋のそれぞれの3Dモデルによってスティッチングされた3Dモデル全体を形成する。
【0112】
ここで、3Dモデルスティッチングユニット304は、各部屋を撮影する際に撮影位置取得ユニット303が取得した位置情報と撮影方向情報に基づいて、例えば、1つの変換行列を用いて、1つの部屋の3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての撮影点の3Dモデル全体を取得することも可能である。
【0113】
ここで、3Dモデルスティッチングユニット304はさらに、複数の部屋のそれぞれの3Dモデルを統一して補正してもよく、例えば、統計的手法を用いて全部屋の壁線方向を統一して補正し、そのうち、室内シーンにおいて、各部屋の壁が平行関係と垂直関係を満たす場合がほとんどであり、各部屋の壁線方向の平均値または中央値を求めたり、RANSAC(Random Sample Consensus:ランダムサンプルコンセンサス)などのアルゴリズムを用いて、可能性の最も高い壁線方向を見つけたりすることによって、一定の範囲内の誤差を持つ部屋を均一な方向に調整して、全ての部屋が一定の偏差範囲内で平行な壁線を持つようにする。
【0114】
ここで、3Dモデルスティッチングユニット304はさらに、各部屋の3Dモデルをスティッチングする時、重なり部分および/または現れた空洞を修正してもよく、ここで、修正方法は、以下の少なくとも1つの方法を含み得る。
【0115】
部屋の位置が正確であるが、輪郭認識に誤差があると仮定する場合、重なり部分をカットして空洞部分を埋めていく。
【0116】
部屋の輪郭認識が比較的正確であるが、位置に誤差がある仮定する場合、各部屋を移動させて、なるべく重なりや空洞をなくす。
【0117】
もちろん、実情に近づけるため、実際の応用では、2つの方法を組み合わせて何度も繰り返すこともできる。
【0118】
2D平面図生成ユニット305は、以下のように2D平面図を生成する。
【0119】
1、生成した3Dモデルの各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する。
【0120】
2、得られたポリゴンを補正および簡略化し、例えば、以下の方法を含み得る。
(1)ポリゴンの主要な頂点のみを残し、小さい凹凸を削除し、例えば、壁の標準的な厚さ(例えば12cmや24cm)よりも小さい凹凸を削除してもよい。
【0121】
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正する。
【0122】
もちろん、得られたポリゴンは、他の方法でも補正したり簡略化したりすることができるが、限定されない。
【0123】
3、撮影位置取得ユニット303が取得した各部屋の位置および撮影方向情報に基づいて、生成した各部屋の2D平面図を同一の二次元座標系でスティッチング処理を行い、各部屋のそれぞれの2D平面図によってスティッチングされた2D平面図全体を形成する。
【0124】
4、ドアおよび/または窓の位置を認識してラベル付け、そのうち、ディープラーニングの方法を用いて、室内画像上でドアおよび/または窓の位置を認識すること、または、撮影ユニット301が、同一住宅に属する複数の部屋に対して3Dモデリング用画像をそれぞれ撮影した時の移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる。
【0125】
ここで、1つ以上の実施例では、ディープラーニング法を用いて室内画像上でドアおよび/または窓の位置を認識する方法では、例えば、単段キーポイント検出モデルによって、一対のキーポイントではなく3つのキーポイントを用いて、ドアおよび/または窓などの各対象物を検出して、プレシジョンおよびリコール率(Precision & Recall)を向上させてもよい。
【0126】
ここで、2D平面図生成ユニット305はさらに、複数の部屋のそれぞれの2D平面図を統一して補正してもよく、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれ、ここで、統一補正の方法は、上述したものと同様であってもよく、繰り返すことはない。
【0127】
ここで、2D平面図生成ユニット305はさらに、各部屋の2D平面図をスティッチングする時、重なり部分および/または現れた空洞を修正する。
【0128】
ここで、2D平面図生成ユニットはさらに、以下のように2D平面図を生成してもよい。
【0129】
1、3Dモデルスティッチングユニット304が生成した3Dモデル全体の各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する。
【0130】
2、得られたポリゴンを補正および簡略化し、例えば、以下の方法を含み得る。
【0131】
(1)ポリゴンの主要な頂点のみを残し、小さい凹凸を削除する。
【0132】
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正する。
【0133】
もちろん、得られたポリゴンは、他の方法でも補正したり簡略化したりすることができるが、限定されない。
【0134】
3、ドアおよび/または窓の位置を認識してラベル付け、そのうち、ディープラーニングの方法を用いて、室内画像上でドアおよび/または窓の位置を認識すること、または、撮影ユニット301が、同一住宅に属する複数の部屋に対して3Dモデリング用画像をそれぞれ撮影した時の移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる。
【0135】
ここで、1つ以上の実施例では、ディープラーニング法を用いて室内画像上でドアおよび/または窓の位置を認識する方法では、例えば、単段キーポイント検出モデルによって、一対のキーポイントではなく3つのキーポイントを用いて、ドアおよび/または窓などの各対象物を検出して、プレシジョンおよびリコール率を向上させてもよい。
【0136】
(撮影に基づく3Dモデリング方法)
【0137】
図4は、本発明の撮影に基づく3Dモデリング方法のフローチャートである。
【0138】
図4を参照し、本発明によって提供される撮影に基づく3Dモデリング方法は、以下のステップを含む。
【0139】
S1)同一の撮影スタンド(三脚を含む)にカメラ機能付きモバイル機器(携帯電話、タブレットなどを含む)および/またはカメラ(パノラマカメラ、魚眼カメラ、通常のデジタルカメラを含む)を固定する。
【0140】
S2)スタンドを移動させる過程で複数の位置決め用画像を取得し、画像処理アルゴリズムを用いて、カメラまたはモバイル機器のセンサと組み合わせて各撮影点の位置と撮影方向を取得し、統一座標系を用いたロードマップを形成する。
【0141】
ここで、ステップS2では、モバイル機器またはカメラの位置決めシステムに基づいて、モバイル機器またはカメラで撮影した位置決め用画像を用いて、近似した撮影点の位置決め用画像の特徴点を照合することにより、撮影点の相対変位および撮影方向情報を見つけ、全ての撮影点を同一の座標系に含む前記ロードマップを形成し、各撮影点の位置および方向を提供する。
【0142】
ここで、ステップS2では、さらに、モバイル機器またはカメラを用いて、移動加速度、速度、および方向情報を取得することにより、前記ロードマップを補正する。
【0143】
ここで、ステップS2では、さらに、カメラのレンズとモバイル機器の撮影方向との間の角度を取得することをさらに含み、そのうち、初期化段階で、モバイル機器に基づく位置決めシステムとカメラに基づく位置決めシステムを同時に動作させ、スタンドを一定の距離だけ移動させ、この時、2つのシステムがそれぞれ1つの変位ベクトルを提供し、2つのベクトルの間の角度を、カメラのレンズとモバイル機器の撮影方向との間の角度とすること;あるいは、モバイル機器と同じ角度を向くようにカメラを手動で調整し、例えば、カメラのプレビュー画像または撮影画像を回転させて、モバイル機器の撮影方向と一致する角度を指定すること;あるいは、モバイル機器とカメラのプレビュー画像または撮影画像を画像認識アルゴリズムで照合することによって、その角度を見つけること;あるいは、スタンドに目盛りを付けるなど、追加のマーキングを使用して、モバイル機器の設置方向と一定の角度を形成し、その後、カメラのプレビュー画像または画像の中の当該マーキングを認識して、カメラのレンズとモバイル機器の撮影方向との間の角度を算出すること、が含まれる。
【0144】
S3)モバイル機器またはリモートサーバ側で、各撮影点で撮影された3Dモデリング用画像に基づいて、ディープラーニングアルゴリズムなどによって、3Dモデリングを行い、各撮影点の3Dモデルおよび/または2D平面図を取得する。
【0145】
ここで、ステップS3は、以下を含む。
【0146】
S31)ディープラーニング技術に基づいて、画像中の床、天井、壁の少なくとも1つを認識する。
【0147】
S32)認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて3Dモデルを生成する。画像中で交差する2つの平面については、2つの平面の交差線を制約条件とし、算出された交差線と実際に観察された交差線との誤差を最小化する。
【0148】
ここで、ステップS3はさらに、コンピュータビジョン技術を用いて、室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成するステップを含む。ここで、1つ以上の実施例では、画像内のコーナーを認識する方法は、例えば、関心点検出と自己教師付き学習フレームワーク(例えば、SuperPoint:Self-Supervised Interest Point Detection and Descriptionを参照)を使用して、コーナーを連結して部屋の大まかなモデルを形成することにより、同じ三次元空間構造の中に頻繁に現れるコーナーなどのオブジェクトを捉えることができる幾何学的な関係を可能にする。
【0149】
S4)S2で得られた位置および撮影方向に応じて各撮影点の3Dモデルを同一の三次元座標系に配置し、複数の撮影点の3Dモデル間の結合部分をスティッチングし、複数の撮影点の3Dモデルおよび/または2D平面図を形成し、全部屋の壁の方向を統一して補正し、重なりや空洞を最適化する。通常の部屋モデルでは、ほとんどの部屋は平行な壁で構成されているが、一つの撮影点で形成された部屋モデルでは、もともと平行な壁にも多少のずれ(非平行)があり、複数の部屋の壁の向きを考慮することで、優勢な方向を見つけ、それに応じて全部屋の壁の方向を調整する。
【0150】
ここで、ステップS4は、以下を含む。
【0151】
S41)各撮影点の位置と撮影方向に基づいて、例えば、1つの変換行列を用いて、シングル撮影点の3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての撮影点の3Dモデル全体を取得する。
【0152】
S42)複数の撮影点の3Dモデルを統一して補正し、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全ての撮影点の壁線方向を統一して補正することが含まれる。
【0153】
S43)各撮影点の3Dモデルをスティッチングする時、重なり部分および/または現れた空洞を修正する。
【0154】
S5)は、モバイル機器上でパノラマローミング効果を自動的に生成する。
【0155】
以下、撮影に基づく3Dモデリングシステムと組み合わせて、本実施例の撮影に基づく3Dモデリング方法の応用を説明する。
【0156】
一、ハードウェアシステム
【0157】
本実施例では、携帯電話とカメラの両方が同じスタンド(例えば、三脚を含む)に固定されている。
【0158】
二、システム初期化
【0159】
本発明では、各撮影点の撮影位置およびカメラの撮影方向を取得するために、以下のいずれかの方法を用いる。
【0160】
方法一)携帯電話の位置決めシステムに基づいて、すなわち、携帯電話の画像(写真、ビデオまたはプレビュー画像)を用いて、近接した撮影点の画像の特徴点を照合して、撮影点の変位を見つけ、および好ましくはモバイル機器からのセンサ(ジャイロGyroscope、加速度計Accelerometer、コンパスCompassなどを含む)を使用して補正することにより、ロードマップを生成し、撮影点の位置および方向を提供する。
【0161】
方法二)カメラの位置決めシステムに基づいて、すなわち、カメラの画像(写真、ビデオ、またはプレビュー画像)を用いて、近接した撮影点の画像の特徴点を照合して、撮影点の変位を見つけ、好ましくはセンチメートルおよびデシメータ間隔で、照合および位置決めを連続的に行い、また、好ましくはカメラのセンサ(ジャイロGyroscope、加速度計Accelerometer、コンパスCompassなどを含む)を使用して補正することにより、ロードマップを生成し、撮影点の位置および方向を提供する。
【0162】
2つの方法の比較:方法一は、携帯電話のシステムに基づいており、携帯電話は様々なセンサを持っているため、一般的に、より正確な絶対座標情報を提供することができ、撮影点間の絶対距離を測定することができるが、使用する前に追加の初期化プロセスを必要とする。
【0163】
方法二は、カメラが完全なセンサを持っていないことが多いため、撮影位置の相対座標のみを提供することができるが、パスとシングル撮影点の3Dモデルの座標軸を揃えるために初期化を追加する必要がない。また、撮影パスにループバックがある場合には、方法二による座標誤差が小さい。
【0164】
方法一を使用する場合には、携帯電話から提供される座標は、携帯電話自身の座標系(一般的に1軸は地面に垂直な方向を指し、他の2軸はそれぞれ前後および左右方向を指す)に基づいているが、パノラマ写真に基づいて生成された3Dモデルの座標系は、カメラの座標系に基づいており、両者の座標軸が一致していない。この問題を解決するためには、システムを手動または自動的に初期化する必要があり、手動または自動的な方法を使用することができる。
【0165】
手動:ユーザは、追加の測定ツールを使用して、またはスタンドなどの機器に目盛りを追加することで、カメラのレンズと携帯電話の撮影方向との間の角度を手動で入力する。
【0166】
自動:初期化段階では、方法一と方法二の両方を同時に動作させ、装置を一定の距離、好ましくは1~3メートルで移動させ、この時、2つのシステムがそれぞれ1つのシステム変位ベクトルを提供することができ、2つのベクトルの間の角度を、カメラのレンズと電話機の撮影方向との間の角度とする。
【0167】
三、撮影点位置および撮影方向の決定
【0168】
上記システムが動作すると、撮影者が位置された撮影点や撮影方向情報を提供することができる。
【0169】
四、シングル撮影点による3Dモデルの生成
【0170】
従来、撮影に基づくモデリング方法には2つの方法があるが、どちらも大きな欠点があった。
【0171】
従来方法a)深さ情報を認識できるカメラを用いて3Dモデルを直接生成する。この方法は、より複雑なハードウェアに依存しているため、機器のコストが高くなり、プロのカメラマンが操作する必要があることが多く、普及には向いていない。
【0172】
従来方法b)互いに近い場所で、好ましくはセンチメートルとデシメータの間隔で2枚の写真を撮影し、照合と位置決めを連続的に行い、その後、MVS(Multi View Stereo、例えば、https://github.com/cdcseacave/openMVSを参照)を使用してモデリングを行い、その利点は、プロセス全体が完全に自動化されており、手動介入を必要としないことであるが、欠点もまた顕著である。
【0173】
欠点1:計算量が多く、モバイル機器上でのリアルタイムモデリングは容易ではないこと、通常、サーバ(クラウド/PC)にアップロードすることで、より強い計算能力を利用してモデリングアルゴリズムを実行する必要がある。
【0174】
欠点2:撮影距離の指定ができないこと、距離が近すぎる場合、面倒で時間がかかる、可視性と感覚で距離を決定する場合、モデリングに失敗する可能性があり、撮影時にユーザにヒントを表示できない。
【0175】
上記の欠点を克服するために、本発明は革新的な方法を採用している。リアルタイム性を向上させ、目に見えるものは手に入る(WYSIWYG)結果を達成するために、通常、家具、小物、および他の部屋のアクセサリを復元することなく、部屋の輪郭(壁の位置)のみをモデリングする。すなわち、
【0176】
i.ディープラーニング技術に基づいて、画像中の床、天井、壁や屋根などの部分、例えば、法線の方向が決定された部分(床、天井)または法線が水平面にある部分(壁)を認識する。
【0177】
ii.画像処理技術に基づいて、画像を複数のブロックに分割し、それぞれのブロックをおおよそ平面とみなしてもよい。床部のブロックについては、平面方程式が既知である。y軸を垂直と仮定すると、床部の方程式をy+1=0とする。壁部については、平面方程式をAx+Cz+D=0とし、天井部についてはy+D=0とし、その他の部分についてはAx+By+Cz+D=0とし、3Dモデルを生成する過程は、つまり、各平面方程式を解く過程である。画像中で交差する2つの平面については、画像中に1本の交差線があり、これを制約条件として、上記の方程式を解く過程を、交差する2つの平面について、算出された交差線と実際に観測された交差線との誤差が最小化されるような最小化問題にすることができる。
【0178】
iii.他の方法でシーンをモデリングすることもできる。例えば、室内では、コンピュータビジョン技術とディープラーニングを組み合わせて、図中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成することができる。ここで、1つ以上の実施例では、画像内のコーナーを認識する方法は、例えば、関心点検出と自己教師付き学習フレームワーク(例えば、SuperPoint:Self-Supervised Interest Point Detection and Descriptionを参照)を使用して、コーナーを連結して部屋の大まかなモデルを形成することにより、同じ三次元空間構造の中に頻繁に現れるコーナーなどのオブジェクトを捉えることができる幾何学的な関係を可能にする。
【0179】
iv.2D平面図を生成し、各撮影点の3Dモデルを取得した後、さらに平面図を生成することができ、特に室内のシーンでは、平面図を必要とする場合が多い。方法は次のとおりである。
【0180】
1.3Dモデルの各面を2D平面図に投影する。
【0181】
2.これらの投影を1つの大きなポリゴンに結合する。
【0182】
3.得られたポリゴンを補正および簡略化し、例えば、以下の方法を含み得る。
【0183】
a)得られるポリゴンは点数が多くなりがちであるため、2D平面図上のポリゴンの頂点のみを残し、小さい凹凸を削除することで、ポリゴンを簡略することができる。
【0184】
b)室内シーンの場合、コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正する。
【0185】
4.ドアおよび/または窓の認識。室内シーンの場合、2D平面図上でドアおよび/または窓にラベリングを付ける必要があり、以下の2つの方法を使用してもよい。
【0186】
a)ディープラーニングの方法を直接使用して、パノラマ画像上でドアおよび/または窓の位置およびサイズを認識する。
【0187】
ここで、1つ以上の実施例では、ディープラーニングを用いて室内画像上でドアおよび/または窓の位置およびサイズを認識する方法では、例えば、単段キーポイント検出モデルによって、一対のキーポイントではなく3つのキーポイントを用いて、ドアおよび/または窓などの各対象物の位置およびサイズを検出して、プレシジョンおよびリコール率を向上させてもよい。
【0188】
b)携帯電話またはカメラに基づく位置決めシステムは、各撮影点の位置と撮影方向を与えるだけでなく、撮影の全過程でカメラの移動軌跡をさらに有し、このパスと部屋自体の輪郭との交点がドアの位置でなければならない。
【0189】
五、複数の撮影点による3Dモデルおよび2D平面図の生成
【0190】
a)ステップ4では、各撮影点の3Dモデル生成を解決し、得られた3Dモデル座標は撮影点に対する相対座標である。これらのモデルを組み合わせることで、完全な3Dモデルと2D平面図を生成することができる。まず、各撮影点の位置と撮影方向が既知であるため、例えば、1つの変換行列を用いて、1つのモデルのローカル座標をグローバルワールド座標に変換することができる。
【0191】
b)これに基づいて、モデルと平面図をさらに補正することができる。
【0192】
i.各撮影点のモデルで使用されている直線補正には、通常、誤差があり、複数の撮影点を撮影した後、統計的手法を用いて、全ての撮影点を統一して補正し、例えば、RANSEC(Random Sample Consensus)などの手法を用いて、最も合理的な補正直線を求め、全部屋が一定の偏差範囲内で平行な壁線を持つようにし、偏差値の小さい角度を回避する。
【0193】
ii.モデリングの誤差により、複数の撮影点による3Dモデルと2D平面図との間に重なりや空洞が存在する場合があるが、重なり部分を自動的に除去し、2D平面図で空洞を埋めることなどができる。
【0194】
六、インスタント表示
【0195】
上記の過程を携帯電話で完全に自動化し、完了したら表示ソフトを使って携帯電話に瞬時に表示、ローミングなどを行い、クラウドにアップロードして他の人と共有することができる。
【0196】
七、手動編集
【0197】
位置決めシステム、シングル撮影点による3Dモデリングアルゴリズム、およびマルチ撮影点による3Dモデル/2D平面図の最適化に誤差が生じる可能性があるため、本発明では、より正確なモデルを得るために、ユーザは手動で撮影結果を編集することができ、手動編集では、ソフトウェアのレビューおよび編集ツールを使用することができる。
【0198】
(自動3Dモデリング装置)
【0199】
図5は、本発明の自動3Dモデリング装置の一実施例の構造を示す図であり、
図5に示すように、前記自動3Dモデリング装置は、
【0200】
モデリングオブジェクトに含まれる複数の空間のそれぞれの3Dモデリング用画像に基づいて、各空間の3Dモデルをそれぞれ生成する3Dモデル生成ユニット501と、
【0201】
複数の空間のそれぞれの3Dモデリング用画像が撮影された時の位置および撮影方向情報に基づいて、3Dモデル生成ユニット501が生成した各空間の3Dモデルを同一の三次元座標系でスティッチング処理を行い、各空間のそれぞれの3Dモデルによってスティッチングされた3Dモデル全体を形成する3Dモデルスティッチングユニット502と、を含む。
ここで、3Dモデルスティッチングユニット502はさらに、位置および撮影方向情報に基づいて、例えば、1つの変換行列を用いて、1つの空間の前記3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての空間の3Dモデル全体を取得することができる。
【0202】
図6は、本発明の自動3Dモデリング装置の別の実施例の構造を示す図である。本実施例では、自動3Dモデリング空間は、例えば部屋であり、3Dモデリング用画像は、例えば前記部屋の室内画像である。
【0203】
図6に示すように、本実施例では、モデリングオブジェクトに含まれる複数の部屋のそれぞれの3Dモデリング用画像に基づいて、各部屋の3Dモデルをそれぞれ生成する3Dモデル生成ユニット601を含む。
【0204】
ここで、3Dモデル生成ユニット601は、ディープラーニング技術に基づいて3Dモデリング用画像中の床、天井、壁の少なくとも1つを認識し、認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて前記3Dモデルを生成する。ここで、3Dモデリング用画像中で交差する2つの平面については、算出された交差線と実際に観察された交差線との誤差を最小化する。
【0205】
ここで、3Dモデル生成ユニット601はさらに、コンピュータビジョン技術を用いて、室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成する。ここで、1つ以上の実施例では、画像内のコーナーを認識する方法は、例えば、関心点検出と自己教師付き学習フレームワーク(例えば、SuperPoint:Self-Supervised Interest Point Detection and Descriptionを参照)を使用して、コーナーを連結して部屋の大まかなモデルを形成することにより、同じ三次元空間構造の中に頻繁に現れるコーナーなどのオブジェクトを捉えることができる幾何学的な関係を可能にする。
【0206】
3Dモデルスティッチングユニット602は、複数の部屋のそれぞれの3Dモデリング用画像が撮影された時の位置および撮影方向情報に基づいて、3Dモデル生成ユニット601が生成した各部屋の3Dモデルを同一の三次元座標系でスティッチング処理を行い、各空間のそれぞれの3Dモデルによってスティッチングされた3Dモデル全体を形成する。
【0207】
ここで、3Dモデルスティッチングユニット602はさらに、位置および撮影方向情報に基づいて、例えば、1つの変換行列を用いて、1つの部屋の3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての部屋の3Dモデル全体を取得することができる。
【0208】
ここで、3Dモデルスティッチングユニット602はさらに、複数の部屋のそれぞれの3Dモデルを統一して補正してもよく、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれる。
【0209】
ここで、3Dモデルスティッチングユニット602はさらに、各部屋の3Dモデルをスティッチングする時、重なり部分および/または現れた空洞を修正する。
【0210】
2D平面図生成ユニット603は、以下のように2D平面図を生成する。
【0211】
1、生成した3Dモデルの各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する。
【0212】
2、得られたポリゴンを補正および簡略化し、例えば、以下の方法を含み得る。
【0213】
(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除する。
【0214】
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正する。
【0215】
もちろん、得られたポリゴンは、他の方法でも補正したり簡略化したりすることができるが、限定されない。
【0216】
3、位置および撮影方向情報に基づいて、生成した各部屋の2D平面図を同一の二次元座標系でスティッチング処理を行い、各部屋のそれぞれの2D平面図によってスティッチングされた2D平面図全体を形成する。
【0217】
4、ドアおよび/または窓の位置を認識してラベル付け、そのうち、ディープラーニングの方法を用いて、室内画像上でドアおよび/または窓の位置を認識すること、または、同一住宅に属する複数の部屋に対して3Dモデリング用画像をそれぞれ撮影した時に取得された移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる。
【0218】
ここで、1つ以上の実施例では、ディープラーニングを用いて室内画像上でドアおよび/または窓の位置およびサイズを認識する方法では、例えば、単段キーポイント検出モデルによって、一対のキーポイントではなく3つのキーポイントを用いて、ドアおよび/または窓などの各対象物の位置およびサイズを検出して、プレシジョンおよびリコール率を向上させてもよい。
【0219】
ここで、2D平面図生成ユニット603はさらに、複数の部屋のそれぞれの2D平面図を統一して補正してもよく、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれる。
【0220】
ここで、2D平面図生成ユニット603はさらに、各部屋の2D平面図をスティッチングする時、重なり部分および/または現れた空洞を修正する。
【0221】
ここで、2D平面図生成ユニット603はさらに、以下のように2D平面図を生成してもよい。
【0222】
1、3Dモデルスティッチングユニット602が生成した3Dモデル全体の各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する。
【0223】
2、得られた前記ポリゴンを補正および簡略化し、例えば、以下の方法を含み得る。
【0224】
(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除する。
【0225】
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正する。
【0226】
もちろん、得られたポリゴンは、他の方法でも補正したり簡略化したりすることができるが、限定されない。
【0227】
3、ドアおよび/または窓の位置を認識してラベル付け、そのうち、ディープラーニングの方法を用いて、室内画像上でドアおよび/または窓の位置を認識すること、または、同一住宅に属する複数の部屋に対して前記3Dモデリング用画像をそれぞれ撮影した時の移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる。具体的な方法は、例えば、上記の単段キーポイント検出モデルによって実現され、ここでは繰り返さない。
【0228】
(自動3Dモデリング方法)
図7は、本発明の自動3Dモデリング方法の一実施例のフローチャートであり、
図7に示すように、前記自動3Dモデリング方法は、
【0229】
モデリングオブジェクトに含まれる複数の空間のそれぞれの3Dモデリング用画像に基づいて、各空間の3Dモデルをそれぞれ生成する3Dモデル生成ステップS71と、
【0230】
本実施例では、自動3Dモデリング空間は、例えば部屋であり、3Dモデリング用画像は、例えば前記部屋の室内画像である。
【0231】
3Dモデル生成ステップS71では、ディープラーニング技術に基づいて3Dモデリング用画像中の床、天井、壁の少なくとも1つを認識し、認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて3Dモデルを生成する。ここで、3Dモデリング用画像中で交差する2つの平面については、算出された交差線と実際に観察された交差線との誤差を最小化する。
【0232】
3Dモデル生成ステップS71では、さらに、コンピュータビジョン技術を用いて、室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成する。ここで、1つ以上の実施例では、画像内のコーナーを認識する方法は、例えば、関心点検出と自己教師付き学習フレームワーク(例えば、SuperPoint:Self-Supervised Interest Point Detection and Descriptionを参照)を使用して、コーナーを連結して部屋の大まかなモデルを形成することにより、同じ三次元空間構造の中に頻繁に現れるコーナーなどのオブジェクトを捉えることができる幾何学的な関係を可能にする。
【0233】
3DモデルスティッチングステップS72では、複数の部屋のそれぞれの3Dモデリング用画像が撮影された時の位置および撮影方向情報に基づいて、3Dモデル生成ステップS71で生成した各部屋の3Dモデルを同一の三次元座標系でスティッチング処理を行い、各空間のそれぞれの3Dモデルによってスティッチングされた3Dモデル全体を形成する。
【0234】
ここで、3DモデルスティッチングステップS72では、さらに、位置および撮影方向情報に基づいて、例えば、1つの変換行列を用いて、1つの空間の3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての空間の3Dモデル全体を取得することができる。
【0235】
2D平面図生成ステップS73では、以下のように2D平面図を生成する。
【0236】
1、生成した3Dモデルの各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する。
【0237】
2、得られた前記ポリゴンを補正および簡略化し、例えば、以下の方法を含み得る。
【0238】
(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除する。
【0239】
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正する。
【0240】
ここで、得られたポリゴンは、他の方法でも補正したり簡略化したりすることができるが、限定されない。
【0241】
3、位置および撮影方向情報に基づいて、生成した各部屋の2D平面図を同一の二次元座標系でスティッチング処理を行い、各部屋のそれぞれの2D平面図によってスティッチングされた2D平面図全体を形成する。
【0242】
4、ドアおよび/または窓の位置を認識してラベル付け、そのうち、ディープラーニングの方法を用いて、室内画像上でドアおよび/または窓の位置を認識すること、または、同一住宅に属する複数の部屋に対して3Dモデリング用画像をそれぞれ撮影した時に取得された移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる。具体的な方法は、例えば、上記の単段キーポイント検出モデルによって実現され、ここでは繰り返さない。
【0243】
ここで、2D平面図生成ステップS73では、さらに、複数の部屋のそれぞれの2D平面図を統一して補正してもよく、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれる。
【0244】
ここで、2D平面図生成ユニットS73では、さらに、各部屋の2D平面図をスティッチングする時、重なり部分および/または現れた空洞を修正する。
【0245】
ここで、2D平面図生成ステップS73では、さらに、以下のように2D平面図を生成してもよい。
【0246】
1、3DモデルスティッチングステップS72で生成した3Dモデル全体の各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する。
【0247】
2、得られた前記ポリゴンを補正および簡略化し、例えば、以下の方法を含み得る。
【0248】
(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除する。
【0249】
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正する。
【0250】
もちろん、得られたポリゴンは、他の方法でも補正したり簡略化したりすることができるが、限定されない。
【0251】
3、ドアおよび/または窓の位置を認識してラベル付け、そのうち、ディープラーニングの方法を用いて、室内画像上でドアおよび/または窓の位置を認識すること、または、同一住宅に属する複数の部屋に対して3Dモデリング用画像をそれぞれ撮影した時の移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる。具体的な方法は、例えば、上記の単段キーポイント検出モデルによって実現され、ここでは繰り返さない。
【0252】
(電子機器)
【0253】
以下、
図8は、本発明の実施例の実現に適用された電子機器(例えば、
図1のモバイル機器またはサーバ)800の構造を示す図である。本発明の実施例に係る電子機器は、上記システムにおける様々なモバイル機器であってもよく、好ましくは、カメラ機能を有し、単独で、またはカメラなどの他の電子端末機器と同じスタンド(例えば、三脚)に固定されることにより、各種類のモバイルオペレーティングシステムにおけるアプリケーションソフトウェアの実行に連動して、本発明の実施例の方法を実現する。
図8に示された電子機器は単なる例示であり、本発明の実施例の機能および使用範囲にいかなる制限を課すべきではない。
【0254】
図8に示すように、電子機器800は、電子機器の全体的な動作を制御するための処理装置(例えば、中央処理装置、グラフィックプロセッサなど)801を含んでもよい。処理装置は、上記方法のステップの全部または一部を完了させるための命令を実行するための1つ以上のプロセッサを含んでもよい。さらに、処理装置801は、他の装置またはユニットとの相互作用を処理するための1つ以上のモジュールを含んでもよい。
【0255】
記憶装置802は、各種類のデータを記憶するために使用され、各種類のコンピュータ読み取り可能な記憶媒体、またはそれらの組み合わせを含んでもく、例えば、電気的、磁気的、光学的、電磁的、赤外線的、半導体的システム、装置やデバイス、またはそれらの任意の組み合わせであってもよい。コンピュータ読み取り可能な記憶媒体のより具体的な例としては、1本以上のワイヤによる電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラム可能な読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバー、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光記憶デバイス、磁気記憶デバイス、またはに記載の任意の適切な組み合わせが挙げられるが、これらに限定されるものではない。本発明では、コンピュータ読み取り可能な記憶媒体は、命令実行システム、装置、またはデバイスによって使用され、またはそれと組み合わせて使用され得るプログラムを含むか、または記憶する任意の有形媒体であってもよい。
【0256】
センサ装置803は、指定された測定情報を感知し、それを特定のルールに従って使用可能な出力信号に変換するために使用され、1つ以上のセンサを含んでもよい。例えば、電子機器の開閉状態、相対位置、加減速、温度、湿度、光などの変化を検出するための加速度センサ、ジャイロセンサ、磁気センサ、圧力センサ、温度センサなどを含んでもよい。
【0257】
処理装置801、記憶装置802およびセンサ装置803は、バス804を介して互いに接続されている。入出力(I/O)インタフェース805も、バス804に接続されている。
【0258】
マルチメディア装置806は、ユーザからの入力信号を受信するためのタッチスクリーン、タッチパッド、キーボード、マウス、カメラ、マイクなどの入力装置を含んでもよく、各種入力装置は、上記センサ装置803の各種センサと協働して、例えば、ジェスチャー操作入力、画像認識入力、距離検出入力などを完了させることができる。マルチメディア装置806はさらに、液晶ディスプレイ(LCD)、スピーカ、バイブレータなどの出力装置を含んでいてもよい。
【0259】
電源装置807は、電子機器中の各種装置に電力を供給するために使用され、電源管理システム、1つ以上の電源、および他の装置に電力を分配するためのコンポーネントを含んでもよい。
【0260】
通信装置808は、電子機器800が他の機器と無線または有線で通信してデータを交換できるようにしてもよい。
【0261】
上記の各装置は、電子機器800の適用を実現するために、I/Oインターフェース805に接続されてもよい。
【0262】
図8は、各種装置を備えた電子機器800を示しているが、図示された装置の全てを実装また備える必要がないことが理解すべきである。より多くのまたはより少ない装置が代替的に実施されてもよいし、所有されてもよい。
【0263】
特に、本発明の実施例によれば、フローチャートを参照して上述した過程は、コンピュータソフトウェアプログラムとして実現されてもよい。例えば、本発明の実施例は、非一過性のコンピュータ読み取り可能な媒体に搬送されたコンピュータプログラムを備えるコンピュータプログラム製品を含み、当該コンピュータプログラムは、フローチャートに示された方法を実行するためのプログラムコードを含む。このような実施例では、当該コンピュータプログラムは、通信装置を介してネットワークからダウンロードしてインストールしてもよいし、記憶装置からインストールしてもよい。当該コンピュータプログラムが処理装置によって実行されると、本発明の実施例の方法に限定された前述の機能を実行する。
【0264】
本発明の文脈において、機械読み取り可能な媒体は、命令実行システム、装置、または機器によって、またはそれに組み合わせて使用するためのプログラムを含むか、または記憶する有形の媒体であってもよい。
【0265】
説明されるように、本発明の上記コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体またはコンピュータ読み取り可能な記憶媒体、またはこれらの任意の組み合わせであってもよい。一方、本発明では、コンピュータ読み取り可能な信号媒体は、ベースバンドまたは搬送波の一部として伝搬するデータ信号を含むことができ、その中で、コンピュータ読み取り可能なプログラムコードを搬送している。このように伝搬するデータ信号は、電磁信号、光信号、または前記の任意の適切な組み合わせを含むが、これらに限定されず、様々な形態をとることができる。コンピュータ読み取り可能な信号媒体は、コンピュータ読み取り可能な記憶媒体以外の任意のコンピュータ読み取り可能な媒体であってもよく、当該コンピュータ読み取り可能な媒体は、命令実行システム、装置、またはデバイスによって、またはそれと組み合わせて使用するためのプログラムを送信、伝搬、または伝送する。コンピュータ読み取り可能な媒体に含まれるプログラムコードは、ワイヤ、光ファイバーケーブル、RF(無線周波数)などを含むがこれらに限定されない、任意の適切な媒体、または上記の任意の適切な組み合わせで送信することができる。
【0266】
上記コンピュータ読み取り可能な媒体は、上記電子機器に含まれていてもよく、または、別個に設けられていて、上記電子機器に組み立てられていないものであってもよい。
【0267】
1つ以上のプログラミング言語またはその組み合わせによって、本発明の動作を実行するためのコンピュータプログラムコードを編集してもよく、上記のプログラミング言語には、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語や、「C」言語や類似のプログラミング言語などの従来の手続き型プログラミング言語が含まれるが、これらに限定されない。プログラムコードは、ユーザのコンピュータ上で全体的に実行されてもよいし、ユーザのコンピュータ上で部分的に実行されてもよいし、スタンドアロンパッケージとして実行されてもよいし、ユーザのコンピュータ上で部分的に実行されてリモートコンピュータ上で部分的に実行されてもよいし、リモートコンピュータまたはサーバ上で全体的に実行されてもよい。リモートコンピュータが関与する場合、リモートコンピュータは、任意の種類のネットワークを介してユーザのコンピュータに接続されてもよいし、外部のコンピュータに接続されてもよい(例えば、インターネットサービスプロバイダを使用してインターネットを介して接続される)。
【0268】
図面のフローチャートおよびブロック図は、本発明の各種実施例に従ったシステム、方法、およびコンピュータプログラム製品の可能な実施形態のアーキテクチャ、機能、および動作を示している。この点で、フローチャートまたはブロック図の各ボックスは、指定された論理機能を実現するための1つ以上の実行可能な命令を含むモジュール、セグメント、またはコードの一部を表してもよい。また、いくつかの代替の実現形態では、ボックス内でラベル付けされた機能は、図面でラベル付けされた機能とは異なる順序で発生してもよいことに留意すべきである。例えば、連続して表現された2つのボックスは、実際には大まかに並列に実行されてもよく、関係する機能によっては逆の順序で実行されることもある。また、ブロック図および/またはフローチャートの各ボックス、ならびにブロック図および/またはフローチャートの各ボックスの組み合わせは、所定の機能または動作を実行する専用のハードウェアに基づくシステムで実現されてもよいし、専用のハードウェアとコンピュータ命令の組み合わせで実現されてもよいことにも留意すべきである。
【0269】
本発明の実施例で説明したユニットは、ソフトウェアの手段によって、またはハードウェアの手段によって実現されてもよい。一定の状況下では、ユニットの名称はユニット自体を限定するものではない。
【0270】
本明細書に記載された機能は、少なくとも部分的には、1つ以上のハードウェア・ロジック・コンポーネントによって実行されてもよい。例えば、非限定的に、例示的な種類として使用され得るハードウェア・ロジック・コンポーネントには、フィールド・プログラマブル・ゲート・アレイ(FPGA)、アプリケーション専用集積回路(ASIC)、アプリケーション専用標準製品(ASSP)、システム・オン・チップ(SOC)、複雑なプログラマブル・ロジック・デバイス(CPLD)などが含まれる。
【0271】
上記の説明は、本発明の好ましい実施例および採用された技術原理の説明に過ぎない。当業者であれば、本発明に関わる開示の範囲は、上記技術的特徴の特定の組み合わせから形成される技術的解決手段に限定されるものではなく、上記開示の思想から逸脱することなく、上記技術的特徴またはそれらの等価な特徴の任意の組み合わせから形成される他の技術的解決手段をも包含するものであることを理解すべきである。例えば、上記特徴を、本発明に開示された技術的特徴(ただし、これに限定されない)と同様の機能を有する技術的特徴で相互に置換して技術的解決手段を形成する。
【0272】
さらに、動作は特定の順序で描かれているが、これは、示された特定の順序で実行されること、また、連続した実行順序で実行されることを要求していると理解されるべきではない。環境によっては、マルチタスクや並列処理が有利である場合もある。同様に、いくつかの具体的な実施形態の詳細が上記の説明に含まれているが、これらは本発明の範囲を制限するものとして解釈されるべきではない。個々の実施例の文脈で説明した特定の特徴は、個々の実施形態において組み合わせて実現されてもよい。逆に、単一の実施例の文脈で説明した各種類の特徴は、単独で、またはサブアセンブリの任意の適切な組み合わせで、複数の実施例で実現されてもよい。
【0273】
主題は、構造的特徴および/または方法の論理的動作に特有の言語を用いて記載されてきたが、添付の特許請求の範囲によって限定される主題は、必ずしも上述の特定の特徴または作用に限定されるものではないことが理解されるべきである。逆に、上述した特定の特徴および動作は、特許請求の範囲を実現するための例示的な形態に過ぎない。
【0274】
(付記)
(付記1)
複数の空間に対して当該空間の第1画像をそれぞれ撮影するための撮影ユニットと、
前記各空間ごとに前記撮影ユニットが撮影した前記第1画像に基づいて、前記各空間の3Dモデルをそれぞれ生成する3Dモデル生成ユニットと、
前記撮影ユニットが各空間の第1画像を撮影した時の位置および撮影方向情報を取得するための撮影位置取得ユニットと、
前記位置および撮影方向情報に基づいて、前記各空間の3Dモデルを同一の三次元座標系でスティッチング処理を行い、前記各空間が含まれる3Dモデル全体を形成する3Dモデルスティッチングユニットとを含む、ことを特徴とする撮影に基づく3Dモデリングシステム。
【0275】
(付記2)
前記撮影ユニットは、前記各空間の間を移動する過程で複数の第2画像を撮影し、
前記撮影位置取得ユニットは、前記複数の第2画像を用いて特徴点照合を行うことにより、各撮影点の相対変位および撮影方向情報を取得する、ことを特徴とする付記1に記載の撮影に基づく3Dモデリングシステム。
【0276】
(付記3)
前記撮影ユニットは、位置決めセンサと方向センサを有し、
前記撮影位置取得ユニットは、前記撮影ユニットが位置される空間の第1画像を撮影した時に提供される位置決め情報と方向情報に基づいて、前記撮影ユニットが位置される空間の第1画像を撮影した時の位置および撮影方向情報を取得する、ことを特徴とする付記1に記載の撮影に基づく3Dモデリングシステム。
【0277】
(付記4)
前記撮影ユニットは、前記各空間の間を移動する過程で複数の第2画像を撮影し、
前記撮影ユニットは、位置決めセンサと方向センサを有し、
前記撮影位置取得ユニットは、前記複数の第2画像を用いて特徴点照合を行うことにより、各撮影点の相対変位情報および撮影方向情報を取得し、かつ前記撮影ユニットが位置される空間の第1画像を撮影した時の位置決め情報と方向情報に基づいて、前記相対変位および撮影方向情報を補正することにより、前記撮影ユニットが位置される空間の第1画像を撮影した時の位置および撮影方向情報を取得する、ことを特徴とする付記1に記載の撮影に基づく3Dモデリングシステム。
【0278】
(付記5)
前記撮影位置取得ユニットは、変位センサが取得した変位情報に基づいて、前記相対変位および撮影方向情報を補正する、ことを特徴とする付記4に記載の撮影に基づく3Dモデリングシステム。
【0279】
(付記6)
前記3Dモデルスティッチングユニットは、各空間を撮影する際に前記撮影位置取得ユニットが取得した前記位置および撮影方向情報に基づいて、1つの空間の前記3Dモデルのローカル座標をグローバルワールド座標に変換することで、前記複数の空間の3Dモデル全体を取得する、ことを特徴とする付記1に記載の撮影に基づく3Dモデリングシステム。
【0280】
(付記7)
前記1つの空間の前記3Dモデルのローカル座標をグローバルワールド座標に変換することは、
前記撮影ユニットを所定距離で移動させることと、
前記撮影位置取得ユニットに前記所定距離の2つの端点の位置情報を取得させることと、
前記2つの端点の位置の差と前記所定距離との比を、前記ローカル座標と前記ワールド座標との比として取得することとを含む、ことを特徴とする付記6に記載の撮影に基づく3Dモデリングシステム。
【0281】
(付記8)
前記1つの空間の前記3Dモデルのローカル座標をグローバルワールド座標に変換することは、
前記撮影位置取得ユニットが前記第1画像上で特徴点を認識することと、
認識された前記特徴点に基づいて、前記空間の底面または上面が位置する平面の高さを推定することと、
前記空間の底面または上面が位置する平面の高さと前記撮影ユニットの高さとの比を、前記ローカル座標と前記ワールド座標との比として取得することとを含む、ことを特徴とする付記6に記載の撮影に基づく3Dモデリングシステム。
【0282】
(付記9)
前記撮影ユニットが最初の撮影点を撮影する前に、またはその後の撮影の移動中に、所定距離を移動させて所定数の前記特徴点を取得する、ことを特徴とする付記8に記載の撮影に基づく3Dモデリングシステム。
【0283】
(付記10)
前記撮影ユニットは、同一の撮影点で前記第1画像をそれぞれ撮影する2眼レンズを有し、
前記3Dモデル生成ユニットは、それぞれの前記2眼レンズで撮影された前記第1画像を比較して対応する画素を決定し、前記3Dモデルの生成に用いるための対応する前記各画素の深さ情報を取得する、ことを特徴とする付記1に記載の撮影に基づく3Dモデリングシステム。
【0284】
(付記11)
前記3Dモデル生成ユニットは、ディープラーニング技術を用いて、前記第1画像における各画素の深さを予測し、前記ディープラーニング技術を計算または直接適用して前記各画素の法線方向を予測する、ことを特徴とする付記1に記載の撮影に基づく3Dモデリングシステム。
【0285】
(付記12)
前記撮影ユニットは、カメラおよび/またはカメラ機能付きモバイル機器によって実現され、
前記3Dモデル生成ユニットは、前記モバイル機器またはリモートサーバによって実現され、前記リモートサーバによって実現される場合には、ネットワークを介して、前記カメラおよび/または前記カメラ機能付きモバイル機器が撮影して送信した第1画像を受信して、前記各空間の3Dモデルを生成し、
前記撮影位置取得ユニットは、前記カメラまたは前記モバイル機器によって実現され、
前記3Dモデルスティッチングユニットは、前記モバイル機器またはリモートサーバによって実現され、前記リモートサーバによって実現される場合には、ネットワークを介して、前記撮影位置取得ユニットから送信された各空間の前記位置および撮影方向情報を受信し、当該位置および撮影方向情報に基づいて前記スティッチング処理を完了し、生成した前記3Dモデル全体を前記モバイル機器または他の機器に送信する、ことを特徴とする付記1-11のいずれか一つに記載の撮影に基づく3Dモデリングシステム。
【0286】
(付記13)
前記撮影ユニットを実装したカメラと、カメラ機能付きモバイル機器とを同一の撮影スタンドに固定し、
前記スタンドを移動させる過程で、前記カメラまたは前記カメラ機能付きモバイル機器が撮影した複数の第2画像を取得し、それにより、前記カメラまたは前記カメラ機能付きモバイル機器が位置される空間に対して第1画像を撮影した時の位置および撮影方向情報を取得する、ことを特徴とする付記12に記載の撮影に基づく3Dモデリングシステム。
【0287】
(付記14)
前記カメラまたは前記カメラ機能付きモバイル機器の位置決めシステムに基づいて、前記カメラまたは前記カメラ機能付きモバイル機器が撮影した第2画像を用いて、近接した撮影点の第2画像の特徴点を照合することにより、各撮影点の相対変位情報および撮影方向情報を取得し、各撮影点の相対位置および方向を提供する、ことを特徴とする付記13に記載の撮影に基づく3Dモデリングシステム。
【0288】
(付記15)
前記撮影ユニットが前記第1空間の前記第1画像を撮影する前に、あるいはその後の移動中に、以下の方法、すなわち、
(1)前記モバイル機器に基づく位置決めシステムと前記カメラに基づく位置決めシステムを同時に動作させ、前記スタンドを一定の距離で移動させ、この時、2つのシステムがそれぞれ1つの変位ベクトルを提供し、2つのベクトルの間の角度を、前記カメラのレンズと前記モバイル機器の撮影方向との間の角度とする方法、
(2)前記カメラのプレビュー画像または撮影画像を手動で回転させて、前記モバイル機器の撮影方向と一致する角度を指定する方法、
(3)前記モバイル機器と前記カメラのプレビュー画像または撮影画像を画像認識アルゴリズムで照合することによって、前記角度を見つける方法、
(4)スタンドに目盛りを付けるなど、追加のマーキングを使用して、前記モバイル機器の設置方向と一定の角度を形成し、その後、前記カメラのプレビュー画像または画像の中の当該マーキングを認識して、前記カメラのレンズと前記モバイル機器の撮影方向との間の角度を算出する方法、
(5)前記スタンドにスロットを設けることにより、前記カメラと前記モバイル機器との間の既知の固定角度を確保する方法、の1つ以上で、前記カメラのレンズと前記モバイル機器の撮影方向とのなす角度を取得することをさらに含む、ことを特徴とする付記13に記載の撮影に基づく3Dモデリングシステム。
【0289】
(付記16)
前記空間は、部屋であり、
前記第1画像は、前記部屋の室内画像であり、
前記3Dモデル生成ユニットは、ディープラーニング技術に基づいて前記第1画像中の床、天井、壁の少なくとも1つを認識し、認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて前記3Dモデルを生成し、ここで、前記第1画像中で交差する2つの平面については、算出された交差線と実際に観察された交差線との誤差を最小化する、ことを特徴とする付記1に記載の撮影に基づく3Dモデリングシステム。
【0290】
(付記17)
前記3Dモデル生成ユニットはさらに、コンピュータビジョン技術を用いて、前記室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成する、ことを特徴とする付記16に記載の撮影に基づく3Dモデリングシステム。
【0291】
(付記18)
前記3Dモデルスティッチングユニットは、前記複数の部屋のそれぞれの3Dモデルを統一して補正し、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれ、
前記3Dモデルスティッチングユニットは、前記各部屋の3Dモデルをスティッチングする時、重なり部分および/または現れた空洞を修正する、ことを特徴とする付記16に記載の撮影に基づく3Dモデリングシステム。
【0292】
(付記19)
以下の方法、すなわち、
生成した前記3Dモデルの各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する方法と;
得られた前記ポリゴンを補正および簡略化する方法と、そのうち、以下の方法、
(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除すること、
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正すること、の少なくとも1つが含まれ;
前記撮影位置取得ユニットが取得した各空間の前記位置および撮影方向情報に基づいて、生成した前記各部屋の2D平面図を同一の二次元座標系でスティッチング処理を行い、前記各部屋のそれぞれの2D平面図によってスティッチングされた2D平面図全体を形成する方法と;
ディープラーニングの方法を用いて、前記室内画像上でドアおよび/または窓の位置を認識すること、または、前記撮影ユニットが同一住宅に属する複数の部屋に対して前記第1画像をそれぞれ撮影した時の移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる、ドアおよび/または窓の位置を認識してラベル付ける方法と、で2D平面図を生成する2D平面図生成ユニットをさらに含む、ことを特徴とする付記16に記載の撮影に基づく3Dモデリングシステム。
【0293】
(付記20)
前記2D平面図生成ユニットは、前記複数の部屋のそれぞれの2D平面図を統一して補正し、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれ、
前記2D平面図生成ユニットは、前記各部屋の2D平面図をスティッチングする時、重なり部分および/または現れた空洞を修正する、ことを特徴とする付記19に記載の撮影に基づく3Dモデリングシステム。
【0294】
(付記21)
以下の方法、すなわち、
前記3Dモデルスティッチングユニットが生成した前記3Dモデル全体の各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する方法と;
得られた前記ポリゴンを補正および簡略化する方法と、そのうち、以下の方法、
(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除すること、
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正すること、の少なくとも1つが含まれ;
ディープラーニングの方法を用いて、前記室内画像上でドアおよび/または窓の位置を認識すること、または、前記撮影ユニットが同一住宅に属する複数の部屋に対して前記第1画像をそれぞれ撮影した時の移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる、ドアおよび/または窓の位置を認識してラベル付ける方法と、で2D平面図を生成する2D平面図生成ユニットをさらに含む、ことを特徴とする付記16に記載の撮影に基づく3Dモデリングシステム。
【0295】
(付記22)
モデリングオブジェクトに含まれる複数の空間のそれぞれの第1画像に基づいて、前記複数の空間のそれぞれの3Dモデルを生成する3Dモデル生成ユニットと、
前記複数の空間のそれぞれの前記第1画像が撮影された時の位置および撮影方向情報に基づいて、前記3Dモデル生成ユニットで生成した前記各空間の3Dモデルを同一の3次元座標系でスティッチング処理を行い、前記各空間のそれぞれの3Dモデルによってスティッチングされた3Dモデル全体を形成する3Dモデルスティッチングユニットとを含む、ことを特徴とする自動3Dモデリング装置。
【0296】
(付記23)
前記3Dモデルスティッチングユニットは、前記位置および撮影方向情報に基づいて、1つの空間の前記3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての空間の3Dモデル全体を取得する、ことを特徴とする付記22に記載の自動3Dモデリング装置。
【0297】
(付記24)
前記空間は、部屋であり、
前記第1画像は、前記部屋の室内画像であり、
前記3Dモデル生成ユニットは、ディープラーニング技術に基づいて前記第1画像中の床、天井、壁の少なくとも1つを認識し、認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて前記3Dモデルを生成し、ここで、前記第1画像中で交差する2つの平面については、算出された交差線と実際に観察された交差線との誤差を最小化し、
前記3Dモデル生成ユニットはさらに、コンピュータビジョン技術を用いて、前記室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成する、ことを特徴とする付記22または23に記載の自動3Dモデリング装置。
【0298】
(付記25)
前記3Dモデルスティッチングユニットは、前記複数の部屋のそれぞれの3Dモデルを統一して補正し、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれ、
前記3Dモデルスティッチングユニットは、前記各部屋の3Dモデルをスティッチングする時、重なり部分および/または現れた空洞を修正する、ことを特徴とする付記24に記載の自動3Dモデリング装置。
【0299】
(付記26)
以下の方法、すなわち、
生成した前記3Dモデルの各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する方法と;
得られた前記ポリゴンを補正および簡略化する方法と、そのうち、以下の方法、
(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除すること、
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正すること、の少なくとも1つが含まれ;
前記位置および撮影方向情報に基づいて、生成した前記各部屋の2D平面図を同一の2次元座標系でスティッチング処理を行い、前記各部屋のそれぞれの2D平面図によってスティッチングされた2D平面図全体を形成する方法と;
ディープラーニングの方法を用いて、前記室内画像上でドアおよび/または窓の位置を認識すること、または、同一住宅に属する複数の部屋に対して前記第1画像をそれぞれ撮影した時に取得した移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる、ドアおよび/または窓の位置を認識してラベル付ける方法と、で2D平面図を生成する2D平面図生成ユニットをさらに含む、ことを特徴とする付記24に記載の自動3Dモデリング装置。
【0300】
(付記27)
前記2D平面図生成ユニットは、前記複数の部屋のそれぞれの2D平面図を統一して補正し、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれ、
前記2D平面図生成ユニットは、前記各部屋の2D平面図をスティッチングする時、重なり部分および/または現れた空洞を修正する、ことを特徴とする付記26に記載の自動3Dモデリング装置。
【0301】
(付記28)
以下の方法、すなわち、
前記3Dモデルスティッチングユニットが生成した前記3Dモデル全体の各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する方法と;
得られた前記ポリゴンを補正および簡略化する方法と、そのうち、以下の方法、
(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除すること、
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正すること、の少なくとも1つが含まれ;
ディープラーニングの方法を用いて、前記室内画像上でドアおよび/または窓の位置を認識すること、または、同一住宅に属する複数の部屋に対して前記第1画像をそれぞれ撮影した時の移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる、ドアおよび/または窓の位置を認識してラベル付ける方法と、で2D平面図を生成する2D平面図生成ユニットをさらに含む、ことを特徴とする付記24に記載の自動3Dモデリング装置。
【0302】
(付記29)
モデリングオブジェクトに含まれる複数の空間のそれぞれの第1画像に基づいて、前記各空間の3Dモデルをそれぞれ生成する3Dモデル生成ステップと、
前記複数の空間のそれぞれの前記第1画像が撮影された時の位置および撮影方向情報に基づいて、前記3Dモデル生成ステップで生成した前記各空間の3Dモデルを同一の三次元座標系でスティッチング処理を行い、前記各空間のそれぞれの3Dモデルによってスティッチングされた3Dモデル全体を形成する3Dモデルスティッチングステップとを含む、ことを特徴とする自動3Dモデリング方法。
【0303】
(付記30)
前記3Dモデルスティッチングステップでは、前記位置および撮影方向情報に基づいて、1つの空間の前記3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての空間の3Dモデル全体を取得する、ことを特徴とする付記29に記載の自動3Dモデリング方法。
【0304】
(付記31)
前記空間は、部屋であり、
前記第1画像は、前記部屋の室内画像であり、
前記3Dモデル生成ステップでは、ディープラーニング技術に基づいて前記第1画像中の床、天井、壁の少なくとも1つを認識し、認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて前記3Dモデルを生成し、ここで、前記第1画像中で交差する2つの平面については、算出された交差線と実際に観察された交差線との誤差を最小化し、
前記3Dモデル生成ステップでは、さらに、コンピュータビジョン技術を用いて、前記室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成する、ことを特徴とする付記29または30に記載の自動3Dモデリング方法。
【0305】
(付記32)
以下の方法、すなわち、
生成した前記3Dモデルの各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する方法と;
得られた前記ポリゴンを補正および簡略化する方法と、そのうち、以下の方法、
(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除すること、
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正すること、の少なくとも1つが含まれ;
前記位置および撮影方向情報に基づいて、生成した前記各部屋の2D平面図を同一の二次元座標系でスティッチング処理を行い、前記各部屋のそれぞれの2D平面図によってスティッチングされた2D平面図全体を形成する方法と;
ディープラーニングの方法を用いて、前記室内画像上でドアおよび/または窓の位置を認識すること、または、同一住宅に属する複数の部屋に対して前記第1画像をそれぞれ撮影した時に取得した移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる、ドアおよび/または窓の位置を認識してラベル付ける方法と、で2D平面図を生成する2D平面図生成ステップをさらに含む、ことを特徴とする付記31に記載の自動3Dモデリング方法。
【0306】
(付記33)
前記2D平面図生成ステップでは、前記複数の部屋のそれぞれの2D平面図を統一して補正し、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全部屋の壁線方向を統一して補正することが含まれ、
前記2D平面図生成ステップでは、前記各部屋の2D平面図をスティッチングする時、重なり部分および/または現れた空洞を修正する、ことを特徴とする付記32に記載の自動3Dモデリング方法。
【0307】
(付記34)
以下の方法、すなわち、
前記3Dモデルスティッチングステップで生成した前記3Dモデル全体の各平面を床に垂直な平面に投影し、これらの投影を1つのポリゴンに結合する方法と;
得られた前記ポリゴンを補正および簡略化する方法と、そのうち、以下の方法、
(1)前記ポリゴンの主要な頂点のみを残し、小さい凹凸を削除すること、
(2)コンピュータビジョン技術を使用して、画像内の直線を検出し、それによって壁の方向を決定し、壁の方向とほぼ平行または垂直な全てのエッジを対応する方向に修正すること、の少なくとも1つが含まれ;
ディープラーニングの方法を用いて、前記室内画像上でドアおよび/または窓の位置を認識すること、または、同一住宅に属する複数の部屋に対して前記第1画像をそれぞれ撮影した時の移動軌跡と当該部屋の輪郭との交点に基づいて、ドアの位置を決定することが含まれる、ドアおよび/または窓の位置を認識してラベル付ける方法と、で2D平面図を生成する2D平面図生成ステップをさらに含む、ことを特徴とする付記31に記載の自動3Dモデリング方法。
【0308】
(付記35)
S1)カメラ機能付きモバイル機器およびカメラを同一の撮影スタンドに固定するステップと、
S2)スタンドを移動させる過程で、カメラまたはモバイル機器からの複数の第2画像を取得し、前記カメラまたはモバイル機器のセンサと組み合わせて各撮影点の位置と撮影方向を取得し、統一座標系を用いたロードマップを形成するステップと、
S3)前記モバイル機器またはリモートサーバ側で、各撮影点撮影の第1画像に基づいて、3Dモデリングを行うステップと、
S4)S2で取得された位置および撮影方向に応じて、各撮影点の前記3Dモデルを同一の三次元座標系に配置し、複数の撮影点3Dモデル間の結合部分をスティッチングし、複数の撮影点が含まれる3Dモデル全体を形成するステップとを含む、ことを特徴とする撮影に基づく3Dモデリング方法。
【0309】
(付記36)
前記ステップS2では、前記モバイル機器またはカメラの位置決めシステムに基づいて、前記モバイル機器またはカメラで撮影した第2画像を用いて、近似した撮影点の第2画像の特徴点を照合することにより、撮影点の相対変位および撮影方向情報を見つけ、全ての撮影点を同一の座標系に含む前記ロードマップを形成し、各撮影点の位置および方向を提供する、ことを特徴とする付記35に記載の撮影に基づく3Dモデリング方法。
【0310】
(付記37)
前記ステップS2は、さらに、前記モバイル機器またはカメラを用いて、移動加速度、速度、および方向情報を取得することにより、前記ロードマップを補正することを含む、ことを特徴とする付記35または36に記載の撮影に基づく3Dモデリング方法。
【0311】
(付記38)
前記ステップS2は、前記カメラのレンズと前記モバイル機器の撮影方向との間の角度を取得することをさらに含み、そのうち、初期化段階で、前記モバイル機器に基づく位置決めシステムと前記カメラに基づく位置決めシステムを同時に動作させ、スタンドを一定の距離だけ移動させ、この時、2つのシステムがそれぞれ1つの変位ベクトルを提供し、2つのベクトルの間の角度を、前記カメラのレンズと前記モバイル機器の撮影方向との間の角度とすること;あるいは、前記カメラのプレビュー画像または撮影画像を手動で回転させて、前記モバイル機器の撮影方向と一致する角度を指定すること;あるいは、前記モバイル機器と前記カメラのプレビュー画像または撮影画像を画像認識アルゴリズムで照合することによって、その角度を見つけること;あるいは、スタンドに目盛りを付けるなど、追加のマーキングを使用して、前記モバイル機器の設置方向と一定の角度を形成し、その後、前記カメラのプレビュー画像または画像の中の当該マーキングを認識して、前記カメラのレンズと前記モバイル機器の撮影方向との間の角度を算出することが含まれる、ことを特徴とする付記36に記載の撮影に基づく3Dモデリング方法。
【0312】
(付記39)
前記ステップS3は、
S31)ディープラーニング技術に基づいて、画像中の床、天井、壁の少なくとも1つを認識するステップと、
S32)認識した画像を画像処理技術に基づいて複数のブロックに分割し、床と天井の画像ブロックが水平面内にあり、壁の画像ブロックが垂直面内にあるように、それぞれのブロックをおおよそ平面とみなし、各平面の方程式を解いて前記3Dモデルを生成し、画像中で交差する2つの平面については、2つの平面の交差線を制約条件とし、算出された交差線と実際に観察された交差線との誤差を最小化するステップとを含む、ことを特徴とする付記35に記載の撮影に基づく3Dモデリング方法。
【0313】
(付記40)
前記ステップS3はさらに、コンピュータビジョン技術を用いて、室内画像中のコーナーを認識し、コーナーを連結して部屋の大まかなモデルを生成するステップを含む、ことを特徴とする付記35に記載の撮影に基づく3Dモデリング方法。
【0314】
(付記41)
前記ステップS4は、
S41)各撮影点の位置と撮影方向に基づいて、シングル撮影点の3Dモデルのローカル座標をグローバルワールド座標に変換することで、全ての撮影点の3Dモデル全体を取得するステップと、
S42)複数の撮影点の3Dモデルを統一して補正するステップと、そのうち、統計的手法を用いて、全部屋が一定の偏差範囲内で平行な壁線を持つように、全ての撮影点の壁線方向を統一して補正することが含まれ、
S43)各撮影点の3Dモデルをスティッチングする時、重なり部分および/または現れた空洞を修正するステップとを含む、ことを特徴とする付記35に記載の撮影に基づく3Dモデリング方法。