IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ bestat株式会社の特許一覧

特許7729650プログラム、情報処理装置、及び適応密度制御方法
<>
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図1
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図2
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図3
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図4
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図5
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図6
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図7
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図8
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図9
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図10
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図11
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図12
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図13
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図14
  • 特許-プログラム、情報処理装置、及び適応密度制御方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-08-18
(45)【発行日】2025-08-26
(54)【発明の名称】プログラム、情報処理装置、及び適応密度制御方法
(51)【国際特許分類】
   G06T 7/70 20170101AFI20250819BHJP
   G06T 17/00 20060101ALI20250819BHJP
【FI】
G06T7/70 Z
G06T17/00
【請求項の数】 7
(21)【出願番号】P 2024168310
(22)【出願日】2024-09-27
【審査請求日】2025-06-23
【早期審査対象出願】
(73)【特許権者】
【識別番号】520442690
【氏名又は名称】bestat株式会社
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】松田 尚子
(72)【発明者】
【氏名】大橋 良右
【審査官】秦野 孝一郎
(56)【参考文献】
【文献】BERNHARD KERBL et al.,3D Gaussian Splatting for Real-Time Radiance Field Redering,arXiv,米国,Cornell Univ.,2023年08月08日,https://arxiv.org/abs/2308.04079
【文献】QIYUAN FENG et al.,A New Split Algorithm for 3D Gaussian Splatting,arXiv,米国,Cornell Univ.,2024年03月14日,https://arxiv.org/abs/2403.09143
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06T 17/00
(57)【特許請求の範囲】
【請求項1】
コンピュータを、
物体を撮影した複数の画像と、該複数の画像のそれぞれを撮影したカメラの位置、向き、及び撮影範囲を示すカメラ情報と、をそれぞれ対応付けて取得する取得手段と、
仮想空間に配置された複数の3Dガウシアンのそれぞれを、該仮想空間において前記カメラのそれぞれに対応するスクリーンに投影した投影ガウシアンを算出する算出手段と、
前記複数の3Dガウシアンのうち、前記スクリーンのそれぞれに投影した投影ガウシアンの最大のサイズが閾値以上になるものを抽出する抽出手段と、
抽出された3Dガウシアンの中から、不透明度に応じた確率で選択した3Dガウシアンを、総体積が維持されるように複数に分裂させる分裂手段、
として機能させるためのプログラム。
【請求項2】
前記分裂手段は、抽出された前記3Dガウシアンの中から、前記不透明度、及び前記投影ガウシアンの最大のサイズのそれぞれに応じた確率で選択した3Dガウシアンを、総体積が維持されるように複数に分裂させる
請求項1に記載のプログラム。
【請求項3】
前記コンピュータを、
計算負荷が所定水準未満のときに、前記複数の3Dガウシアンのうち、条件を満たすものを複製する複製手段、
として機能させるための請求項1に記載のプログラム。
【請求項4】
前記コンピュータを、
分裂した前記3Dガウシアンのそれぞれを、元の3Dガウシアンの位置に基づいて配置する配置手段、
として機能させるための請求項1に記載のプログラム。
【請求項5】
コンピュータを、
物体を撮影した複数の画像と、該複数の画像のそれぞれを撮影したカメラの位置、向き、及び撮影範囲を示すカメラ情報と、をそれぞれ対応付けて取得する取得手段と、
仮想空間に配置された複数の3Dガウシアンのそれぞれを、該仮想空間において前記カメラのそれぞれに対応するスクリーンに投影した投影ガウシアンを算出する算出手段と、
前記複数の3Dガウシアンのうち、不透明度に応じた確率で3Dガウシアンを選択する選択手段と、
選択された3Dガウシアンの中から、前記スクリーンのそれぞれに投影した投影ガウシアンの最大のサイズが閾値以上になる3Dガウシアンを、総体積が維持されるように複数に分裂させる分裂手段、
として機能させるためのプログラム。
【請求項6】
物体を撮影した複数の画像と、該複数の画像のそれぞれを撮影したカメラの位置、向き、及び撮影範囲を示すカメラ情報と、をそれぞれ対応付けて取得する取得手段と、
仮想空間に配置された複数の3Dガウシアンのそれぞれを、該仮想空間において前記カメラのそれぞれに対応するスクリーンに投影した投影ガウシアンを算出する算出手段と、
前記複数の3Dガウシアンのうち、前記スクリーンのそれぞれに投影した投影ガウシアンの最大のサイズが閾値以上になるものを抽出する抽出手段と、
抽出された3Dガウシアンの中から、不透明度に応じた確率で選択した3Dガウシアンを、総体積が維持されるように複数に分裂させる分裂手段と、
を有する情報処理装置。
【請求項7】
コンピュータが、物体を撮影した複数の画像と、該複数の画像のそれぞれを撮影したカメラの位置、向き、及び撮影範囲を示すカメラ情報と、をそれぞれ対応付けて取得するステップと、
コンピュータが、仮想空間に配置された複数の3Dガウシアンのそれぞれを、該仮想空間において前記カメラのそれぞれに対応するスクリーンに投影した投影ガウシアンを算出するステップと、
コンピュータが、前記複数の3Dガウシアンのうち、前記スクリーンのそれぞれに投影した投影ガウシアンの最大のサイズが閾値以上になるものを抽出するステップと、
コンピュータが、抽出された3Dガウシアンの中から、不透明度に応じた確率で選択した3Dガウシアンを、総体積が維持されるように複数に分裂させるステップと、
を含むことを特徴とする3Dガウシアンの適応密度制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の視点から物体を撮影した画像を使って、その物体を任意の視点から見た画像を新たに生成する技術に関する。
【背景技術】
【0002】
フォトグラメトリーは、複数の視点から物体を撮影した画像(撮影画像ともいう)から、その物体の立体形状を推定する技術である。例えば、特許文献1は、フォトグラメトリーの技術として、複数台のカメラの映像から被写体の三次元(3D)モデルを生成する装置及び方法を開示する。
【0003】
さらに、複数の視点から物体を撮影した撮影画像に基づいて、仮想空間におけるその物体(仮想物体ともいう)を任意の視点(仮想視点ともいう)から見たときの画像(仮想画像ともいう)を生成する技術が研究されている。この技術として、NeRF(Neural Radiance Fields)、及びNeuS(Neural Implicit Surface)が知られているが、機械学習にかかる負荷が大きく、時間がかかるという問題がある。
【0004】
一方、高速かつ高品質なレンダリングを実現する技術として3DGS(3D Gaussian Splatting)が注目されている。3DGSとは、3D(三次元)の仮想空間に、3Dガウシアンと呼ばれる楕円体を配置して、それら3Dガウシアンのパラメータを元の撮影画像に合うように最適化することにより、3Dシーンを再現する技術である。
【0005】
3DGSは、NeRF等が用いる暗黙的な表現と異なり、仮想空間における仮想物体を3Dガウシアンという楕円体で明示的に表現するため、レンダリング処理を短時間で行うことができる。また、3DGSは、微分可能なラスタライゼーションを使用するので、例えば、GPU(Graphics Processing Unit)を用いることで、ボリュームレンダリングを使用するNeRF等に比べて処理を高速化できる。例えば、非特許文献1~3は、この3DGSに関する各種の手法を開示している。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2021-71749号公報
【非特許文献】
【0007】
【文献】https://arxiv.org/abs/2308.04079
【文献】https://arxiv.org/abs/2404.06109
【文献】https://ubc-vision.github.io/3dgs-mcmc/
【発明の概要】
【発明が解決しようとする課題】
【0008】
3Dシーンを再現するには、3Dシーンの詳細に応じたサイズの3Dガウシアンが必要である。このような3Dガウシアンを得ることは、初期状態の3Dガウシアンのサイズを元の撮影画像との比較によって最適化するだけでは限界がある。そこで、3DGSは、この最適化処理に加えて、初期化の際に配置した3Dガウシアンを所定条件に応じて複製、又は分裂させている。3Dガウシアンを分裂・複製させて、その密度を調整する制御は、一般に「適応密度制御」と呼ばれる。
【0009】
しかし、例えば、非特許文献3のような従来の技術において、3Dガウシアンの適応密度制御は、仮想空間において一定のサイズ未満の3Dガウシアンを複製し、一定のサイズ以上の3Dガウシアンのみを分裂させる、という処理である。そのため、従来技術は、元の撮影画像に表現されていた物体の詳細を再現できない場合がある。
【0010】
本発明の目的の一つは、従来技術に比べて、撮影画像に表現されていた物体の詳細を再現するのに適した3Dガウシアンの適応密度制御を実現すること、である。
【課題を解決するための手段】
【0011】
本発明は、一の態様において、コンピュータを、物体を撮影した複数の画像と、該複数の画像のそれぞれを撮影したカメラの位置、向き、及び撮影範囲を示すカメラ情報と、をそれぞれ対応付けて取得する取得手段と、仮想空間に配置された複数の3Dガウシアンのそれぞれを、該仮想空間において前記カメラのそれぞれに対応するスクリーンに投影した投影ガウシアンを算出する算出手段と、前記複数の3Dガウシアンのうち、前記スクリーンのそれぞれに投影した投影ガウシアンの最大のサイズが閾値以上になるものを抽出する抽出手段と、抽出された3Dガウシアンの中から、不透明度に応じた確率で選択した3Dガウシアンを、総体積が維持されるように複数に分裂させる分裂手段、として機能させるためのプログラムを提供する。
【図面の簡単な説明】
【0012】
図1】本発明の実施形態に係る情報処理装置1の構成の例を示す図。
図2】画像DB121の例を示す図。
図3】カメラ情報DB122の例を示す図。
図4】撮影画像とカメラ位置と示す図。
図5】撮影画像のそれぞれにおける特徴点の対応関係を示す図。
図6】仮想空間における三次元特徴点を示す図。
図7】ガウシアンDB123の例を示す図。
図8】3Dガウシアンを説明するための図。
図9】情報処理装置1の機能的構成の例を示す図。
図10】適応密度制御手段115の構成の例を示す図。
図11】情報処理装置1の動作の流れの例を示すフロー図。
図12】分裂処理の動作の流れの例を示すフロー図。
図13】変形例における分裂処理の動作の流れの例を示すフロー図。
図14】変形例における適応密度制御手段115の構成の例を示す図。
図15】変形例における情報処理装置1の機能的構成の例を示す図。
【発明を実施するための形態】
【0013】
<実施形態>
<情報処理装置の構成>
図1は、本発明の実施形態に係る情報処理装置1の構成の例を示す図である。情報処理装置1は、複数の視点から物体を撮影した撮影画像のそれぞれに基づいて、仮想空間においてその物体に対応する仮想物体を仮想視点から見た仮想画像を生成する装置であり、例えば、コンピュータである。情報処理装置1は、プロセッサ11、メモリ12、及びインタフェース13を有する。これらの構成は、例えばバスで、互いに通信可能に接続されている。
【0014】
プロセッサ11は、メモリ12に記憶されているコンピュータプログラム(以下、単にプログラムという)を読出して実行することにより情報処理装置1の各部を制御する。プロセッサ11は、例えばCPU(Central Processing Unit)又はGPUである。
【0015】
インタフェース13は、有線又は無線により情報処理装置1を、通信回線、外部の装置等に通信可能に接続する通信回路である。
【0016】
メモリ12は、プロセッサ11に読み込まれるオペレーティングシステム、各種のプログラム、データ等を記憶する記憶手段である。メモリ12は、RAM(Random Access Memory)、又はROM(Read Only Memory)を有する。メモリ12は、ソリッドステートドライブ、ハードディスクドライブ等を有してもよい。また、メモリ12は、画像DB121、カメラ情報DB122、及びガウシアンDB123を記憶する。
【0017】
情報処理装置1は、操作部、表示部を有してもよい。操作部は、操作を受付けてその操作内容に応じた信号をプロセッサ11に送る構成である。この操作部は、例えば、各種の指示をするための操作ボタン、キーボード、タッチパネル、マウス等の操作子を備えてもよい。
【0018】
この表示部は、プロセッサ11の制御の下で画像を表示する構成である。この表示部は、液晶ディスプレイ等の表示画面を有してもよい。また、この表示画面の上には、上述した操作部の透明のタッチパネルが重ねて配置されてもよい。情報処理装置1は、インタフェース13を介して外部の装置から操作され、又は外部の装置に情報を提示してもよい。
【0019】
<画像DBの構成>
図2は、画像DB121の例を示す図である。画像DB121は、複数の視点から物体を撮影した撮影画像を記憶するデータベースである。図2に示すこの画像DB121は、画像IDに対応付けて画像データを記憶する。画像IDは、撮影画像のそれぞれを一意に識別する識別情報である。画像データは、撮影画像の内容を示すデータである。画像DB121に記憶されているこれら撮影画像は、共通の物体等を異なる視点からそれぞれ撮影した画像である。なお、画像DB121は、撮影の対象となった物体(被写体)、又はシーンごとにグループ分けされていてもよい。すなわち、画像DB121は、被写体、シーンごとに一連の撮影画像(撮影画像群)をプロセッサ11が取得できるように記憶していればよい。
【0020】
<カメラ情報DBの構成>
図3は、カメラ情報DB122の例を示す図である。カメラ情報DB122は、撮影画像のそれぞれを撮影したカメラの位置等の情報(カメラ情報という)を、その撮影画像の画像IDに対応付けて記憶するデータベースである。図3に示すこのカメラ情報DB122は、画像ID、位置、向き、撮影範囲の各項目を対応付けて記憶する。
【0021】
カメラ情報DB122における「画像ID」は、撮影画像のそれぞれを一意に識別する識別情報であって、上述した画像DB121と共通する情報である。カメラ情報DB122における「位置」は、対応する画像IDで識別される撮影画像を撮影したときの実際の空間(実空間Sp)におけるカメラの位置を示す情報であり、例えば、直交座標系における三次元座標で示される。
【0022】
例えば、このカメラ情報DB122によると、画像ID「I1」で識別される撮影画像は、(x1,y1,z1)で示される座標に存在するカメラから撮影されたことが示されている。
【0023】
カメラ情報DB122における「向き」は、撮影画像を撮影したカメラのレンズが実空間Spにおいて向いている方向を示す情報であり、例えば、三次元ベクトルで示される。カメラ情報DB122における「撮影範囲」は、撮影画像を撮影したカメラによって撮影される範囲を決定するパラメータ等の情報であり、例えば、焦点距離、画角、カメラの画像センサーの中心位置等である。
【0024】
図1に示す情報処理装置1は、複数の視点から物体を撮影した撮影画像のそれぞれをカメラから取得し画像DB121に記憶するが、その時点で、それら撮影画像を撮影したカメラの位置、向き、撮影範囲等を記憶していない。そこで、この情報処理装置1は、例えば、SfM(Structure from Motion)等により、撮影画像からそれらを撮影したカメラの位置等のカメラ情報を計算してカメラ情報DB122に記憶する。
【0025】
図4は、撮影画像とカメラ位置と示す図である。以下に示す図において、各構成が配置される実空間をxyz右手系座標空間として、仮想空間をXYZ右手系座標空間として、それぞれ表す。空間においてx軸に沿う方向をx軸方向という。また、x軸方向のうち、x成分が増加する方向を+x方向といい、x成分が減少する方向を-x方向という。y、z成分、及びX、Y、Z成分についても、上記の定義に沿ってy軸方向、+y方向、-y方向、z軸方向、+z方向、-z方向、X軸方向、+X方向、-X方向、Y軸方向、+Y方向、-Y方向、Z軸方向、+Z方向、-Z方向、が定義される。
【0026】
図4には、実空間Spに存在する物体Jを視点(x1,y1,z1)、及び視点(x2,y2,z2)からそれぞれカメラで撮影して、撮影画像I1、及び撮影画像I2を得る様子が描かれている。
【0027】
図5は、撮影画像のそれぞれにおける特徴点の対応関係を示す図である。情報処理装置1は、異なる視点から撮影された複数の撮影画像のそれぞれから、複数の特徴点を抽出する。そして、情報処理装置1は、撮影画像におけるそれら特徴点の配置関係、周囲の形状、階調値の分布、勾配等に基づいて、特徴点どうしの対応関係を推測する。例えば、情報処理装置1は、撮影画像I1における特徴点Pa1、Pb1、Pc1が、それぞれ撮影画像I2における特徴点Pa2、Pb2、Pc2に対応すると推定する。
【0028】
図6は、仮想空間における三次元特徴点を示す図である。情報処理装置1は、上述した通り、撮影画像のそれぞれにおける特徴点を特定して、それら特徴点どうしの対応関係を推定する。この対応関係とは、実空間にある物体の一点を複数の視点から撮影した、という関係である。情報処理装置1は、特徴点の対応関係を推定することで、それらの特徴点の基となった物体の一点を特定する。そして、情報処理装置1は、この一点に応じた仮想空間Sv上の点を「三次元特徴点」として算出する。
【0029】
例えば、図6に示す例において、三次元特徴点Pa、Pb、Pcは、図5に示す撮影画像I1において特徴点Pa1、Pb1、Pc1にそれぞれ対応している。また、三次元特徴点Pa、Pb、Pcは、図5に示す撮影画像I2における特徴点Pa2、Pb2、Pc2にそれぞれ対応している。そして、情報処理装置1は、算出した三次元特徴点と撮影画像における特徴点とを結ぶ線上にカメラの位置を、カメラの向き、撮影範囲とともに算出する。
【0030】
<ガウシアンDBの構成>
図7は、ガウシアンDB123の例を示す図である。ガウシアンDB123は、3Dガウシアンを記憶するデータベースである。3Dガウシアンは、仮想空間において仮想物体を再現するために使われる楕円体であり、位置、向き、形状、色、不透明度等の各種のパラメータを有する。図7に示すこのガウシアンDB123は、ガウシアンID、中心座標、回転、スケール、色、不透明度の各項目を対応付けて記憶する。
【0031】
初期化の段階で、3Dガウシアンは、例えば、上述した三次元特徴点に配置される。その結果、ガウシアンDB123は、三次元特徴点に中心座標が一致する3Dガウシアンを記憶する。例えば、図7に示す通り、ガウシアンID「E1」で識別される3Dガウシアンは、中心座標「Pa」に配置される。中心座標「Pa」は、撮影画像I1における特徴点Pa1、及び撮影画像I2における特徴点Pa2に対応する三次元特徴点Paである。このように仮想空間Svにおいて三次元特徴点に配置された3Dガウシアンにより、図6に示す仮想物体Jvが構成される。
【0032】
図8は、3Dガウシアンを説明するための図である。図8(a)には、3DガウシアンEの例が示されている。3DガウシアンEは、仮想空間Svに大きさ(すなわちスケール)と中心座標を持ち、X軸、Y軸、Z軸に対してそれぞれ回転角度を持つ楕円体である。そして、この3Dガウシアンは、見る方向に依存する色の情報と、不透明度とを有する。これらは、例えば、三次元共分散行列、調和関数、定数等により表現される。
【0033】
図8(b)には、3つの3DガウシアンE1、E2、E3がスクリーンSに投影される様子が示されている。情報処理装置1は、仮想空間Svに配置されたこれら複数の3Dガウシアンを、スクリーンSに投影する。スクリーンSは、仮想空間Svにおける任意の視点から任意の範囲を撮影したときに仮想物体が映り込む面である。3DガウシアンE1、E2、E3は、情報処理装置1によってそれぞれスクリーンSに投影され、二次元の楕円形である投影ガウシアンPj1、Pj2、Pj3になる。これら投影ガウシアンPj1、Pj2、Pj3は、仮想空間Svにおいて、スクリーンSから見た3DガウシアンE1、E2、E3の順序、配置関係に応じて重なって表示されることもある。
【0034】
<情報処理装置の機能的構成>
図9は、情報処理装置1の機能的構成の例を示す図である。情報処理装置1のプロセッサ11は、メモリ12に記憶されたプログラムを読出して実行することにより、図9に示す画像取得手段111、バンドル調整手段112、初期化手段113、学習手段114、及び適応密度制御手段115として機能する。
【0035】
画像取得手段111は、メモリ12の画像DB121から撮影画像を取得する。そして、画像取得手段111は、取得した撮影画像をバンドル調整手段112、及び学習手段114に供給する。
【0036】
バンドル調整手段112は、供給された撮影画像から上述したSfM等を用いて、それらを撮影した際のカメラ情報を計算する。
【0037】
図9に示すバンドル調整手段112は、特徴点抽出手段1121、特徴点マッチング手段1122、検証手段1123、及び推定手段1124を有する。
【0038】
特徴点抽出手段1121は、撮影画像の階調値の位置勾配等から、その撮影画像に映し出された物体の輪郭等を抽出し、それらの輪郭等から特徴点を抽出する。
【0039】
特徴点マッチング手段1122は、複数の撮影画像のそれぞれにおいて抽出された特徴点どうしを対応付け(マッチングともいう)、それらに対応する仮想空間における三次元特徴点を算出する。
【0040】
特徴点抽出手段1121、及び特徴点マッチング手段1122は、例えば、SIFT(Scale-Invariant Feature Transform)、SURF(Speeded-Up Robust Features)、ORB(Oriented FAST and Rotated BRIEF)等の特徴点マッチング技術を使用して実行される。
【0041】
検証手段1123は、例えば、RANSAC(RANdom SAmple Consensus)等の手法を用いて、マッチングされた特徴点の検証を行う。検証手段1123は、検証の結果、外れ値等の影響により誤ってマッチングされた特徴点を除外する。
【0042】
推定手段1124は、算出された仮想空間における三次元特徴点と、これに対応する撮影画像の特徴点との位置関係から、カメラ情報を推定し、これをメモリ12のカメラ情報DB122に記憶する。
【0043】
上述した通り、画像取得手段111は、物体を撮影した複数の撮影画像を取得する。そして、バンドル調整手段112は、画像取得手段111が取得した複数の撮影画像のそれぞれを撮影したカメラの位置、向き、及び撮影範囲を示すカメラ情報を推定することによって取得する。したがって、画像取得手段111、及びバンドル調整手段112は、物体を撮影した複数の画像と、それら複数の画像のそれぞれを撮影したカメラの位置、向き、及び撮影範囲を示すカメラ情報と、をそれぞれ対応付けて取得する取得手段の例である。
【0044】
初期化手段113は、撮影画像とカメラ情報とに基づいて、仮想空間に初期状態の3Dガウシアンを配置する手段である。例えば、初期化手段113は、バンドル調整手段112において算出された仮想空間における三次元特徴点に中心座標が一致するように3Dガウシアンを配置する。そして、初期化手段113は、この三次元特徴点に対応付けられる撮影画像の特徴点の階調値等を利用して、3Dガウシアンの色、及び不透明度を決定する。また、初期化手段113は、撮影画像における階調値の位置勾配、又は疑似乱数等を利用して、初期状態における3Dガウシアンの回転、スケールを決定する。初期化手段113は、3Dガウシアンの中心座標、回転、スケール、色、及び不透明度等の初期値を決定すると、メモリ12のガウシアンDB123に記憶する。
【0045】
学習手段114は、仮想空間においてカメラに対応するスクリーンに3Dガウシアンを投影させ、得られた仮想画像が元の撮影画像に近づくように3Dガウシアンのパラメータを変化させる機械学習を行う。
【0046】
図9に示す学習手段114は、算出手段1141、及び誤差最小化手段1142を有する。算出手段1141は、メモリ12のガウシアンDB123から仮想空間に配置された全ての3Dガウシアンを読み出して、撮影画像を撮影したカメラのそれぞれに対応する仮想空間上のスクリーンにこれらを投影し、投影ガウシアンをそれぞれ算出する。
【0047】
したがって、この算出手段1141は、仮想空間に配置された複数の3Dガウシアンのそれぞれを、その仮想空間において撮影画像を撮影したカメラのそれぞれに対応するスクリーンに投影した投影ガウシアンを算出する算出手段の例である。
【0048】
誤差最小化手段1142は、算出された投影ガウシアンの重ね合わせで生成される仮想画像と、画像取得手段111が取得した撮影画像とを比較し、それらの誤差(レンダリングエラーともいう)が小さくなるように3Dガウシアンのパラメータを変化させる。算出手段1141は、誤差最小化手段1142によりパラメータが変化した3Dガウシアンを、上述したスクリーンに投影し、投影ガウシアンを算出する。誤差最小化手段1142は、決められた条件を満たすまで、算出手段1141とこのやり取りを続ける。この場合、決められた条件とは、例えば、3Dガウシアンのパラメータを変化させた回数が閾値以上になる、等である。
【0049】
適応密度制御手段115は、学習手段114が上述した決められた条件を満たすまで3Dガウシアンのパラメータを変化させて学習した後、それら3Dガウシアンの中から条件を満たすものを選択して分裂させることにより、3Dガウシアンの密度を調整する。
【0050】
図10は、適応密度制御手段115の構成の例を示す図である。図10に示す適応密度制御手段115は、抽出手段1151、選択手段1152、分裂手段1153、配置手段1154を有する。
【0051】
抽出手段1151は、学習手段114によるパラメータの学習を経た3Dガウシアンのうち、上述した各スクリーンに投影した投影ガウシアンの最大サイズが閾値以上になるもののみを抽出する。つまり、この抽出手段1151は、複数の3Dガウシアンのうち、スクリーンのそれぞれに投影した投影ガウシアンの最大のサイズが閾値以上になるものを抽出する抽出手段の例である。
【0052】
ここでいう、投影ガウシアンの最大サイズと比較される「閾値」は、その投影ガウシアンが投影されるスクリーンの解像度に基づく大きさの基準値であり、例えば1ピクセル等である。すなわち、抽出手段1151は、例えば、全てのスクリーンに投影される投影ガウシアンのうち、最も大きなサイズを有するものが1ピクセル以上のものだけを抽出する。これにより、少なくとも、投影ガウシアンがいずれも1ピクセル未満の大きさしか持たない3Dガウシアンは、この抽出手段1151の抽出対象から外れる。
【0053】
選択手段1152は、抽出手段1151が抽出した3Dガウシアンの中から、それらの3Dガウシアンのパラメータ等に応じた確率で3Dガウシアンを選択する。この確率は、例えば、3Dガウシアンの不透明度に応じた確率である。ここでは、選択手段1152は、抽出手段1151が抽出した3Dガウシアンの中から、それらの3Dガウシアンの不透明度に比例した確率で、いくつかの3Dガウシアンを選択する。したがって選択手段1152は、3Dガウシアンの不透明度が高いほど、高確率でその3Dガウシアンを選択することになる。
【0054】
なお、「不透明度に比例した確率」は、「不透明度に応じた確率」の一態様であり、他の態様に代替し得る。例えば、選択手段1152は、3Dガウシアンの不透明度の対数に比例した確率で、3Dガウシアンを選択してもよい。また、例えば、選択手段1152は、3Dガウシアンの不透明度を独立変数とする単調増加関数に比例した確率で、3Dガウシアンを選択してもよい。
【0055】
分裂手段1153は、選択手段1152が選択した3Dガウシアンを分裂させる。このとき、分裂手段1153は、選択手段1152が選択した3Dガウシアンを、その総体積が維持されるように複数個に分裂させる。
【0056】
つまり、この選択手段1152、及び分裂手段1153は、抽出された3Dガウシアンの中から、不透明度に応じた確率で選択した3Dガウシアンを、総体積が維持されるように複数に分裂させる分裂手段の例である。
【0057】
配置手段1154は、分裂手段1153によって複数個に分裂した3Dガウシアンを、それぞれ、その分裂前の元の3Dガウシアンの位置に基づいて配置する。例えば、配置手段1154は、分裂した3Dガウシアンを、それぞれ元の3Dガウシアンの部分になるように配置する。この配置手段1154は、分裂した3Dガウシアンのそれぞれを、元の3Dガウシアンの位置に基づいて配置する配置手段の例である。
【0058】
3Dガウシアンは、適応密度制御手段115によって密度が調整されてメモリ12のガウシアンDB123に記憶される。学習手段114は、所定の条件が満たされるまで、密度が調整された3DガウシアンをガウシアンDB123から読み出し、仮想画像と撮影画像との差異に基づいて、これら3Dガウシアンのパラメータの最適化を繰り返す。これにより、撮影画像に近い仮想画像を生成可能な3Dガウシアンが計算される。
【0059】
図11は、情報処理装置1の動作の流れの例を示すフロー図である。情報処理装置1のプロセッサ11は、図11に示す適応密度制御を行う。
【0060】
適応密度制御を実行する前にプロセッサ11は、メモリ12の画像DB121から、3Dシーンを撮影した一連の撮影画像群を取得する。そして、プロセッサ11は、これらの撮影画像を撮影した際のカメラ情報を推定し、撮影画像と対応付け、仮想空間に初期状態の3Dガウシアンを配置する。さらに、プロセッサ11は、例えば、決められた条件を満たすまで、それらの3Dガウシアンを、仮想空間においてカメラに対応するスクリーンに投影して仮想画像を生成し、これが撮影画像に近づくように3Dガウシアンのパラメータを最適化(学習)する。
【0061】
学習過程が上述した条件を満たしたとき、プロセッサ11は、図11に示す適応密度制御の動作を開始する。まず、プロセッサ11は、未判定の3Dガウシアンの1つに注目する(ステップS101)。そして、プロセッサ11は、注目する3Dガウシアンを全てのスクリーンに投影し、得られた投影ガウシアンのそれぞれを閾値と比較する(ステップS102)。
【0062】
プロセッサ11は、上述した投影ガウシアンのうち、最もサイズが大きいものを特定し、そのサイズ(最大サイズ)が閾値以上であるか否かを判定する(ステップS103)。投影ガウシアンの最大サイズが閾値以上である、と判定する場合(ステップS103;YES)、プロセッサ11は、注目しているその3Dガウシアンを、後述する分裂処理の対象として抽出し(ステップS104)、処理をステップS105に進める。
【0063】
一方、投影ガウシアンの最大サイズが閾値以上でない、と判定する場合(ステップS103;NO)、プロセッサ11は、上述したステップS104を行わずに、処理をステップS105に進める。すなわち、この場合、注目している3Dガウシアンは分裂処理の対象として抽出されない。
【0064】
プロセッサ11は、ステップS102~S104の処理で注目していた3Dガウシアンを判定済みとし、未判定の3Dガウシアンが残っているか否かを判断する(ステップS105)。未判定の3Dガウシアンが残っている、と判断する場合(ステップS105;YES)、プロセッサ11は、処理をステップS101に戻す。
【0065】
一方、未判定の3Dガウシアンが残っていない、と判断する場合(ステップS105;NO)、プロセッサ11は、ステップS104で抽出された3Dガウシアンがあるか否かを判断する(ステップS106)。
【0066】
抽出された3Dガウシアンがない、と判断する場合(ステップS106;NO)、プロセッサ11は、処理を終了する。一方、抽出された3Dガウシアンがある、と判断する場合(ステップS106;YES)、プロセッサ11は、抽出されたそれらの3Dガウシアンに対して分裂処理を実行する(ステップS200)。
【0067】
図12は、分裂処理の動作の流れの例を示すフロー図である。プロセッサ11は、ステップS104で抽出された3Dガウシアンの不透明度をそれぞれ特定し、その不透明度に比例した確率でいくつかの3Dガウシアンを選択する(ステップS201)。プロセッサ11は、例えば、特定した不透明度のマルチノミアル分布に従って、サンプリングを行い、3Dガウシアンを選択する。
【0068】
次に、プロセッサ11は、選択された3Dガウシアンのそれぞれを、その総体積が維持されるように複数に分裂させる(ステップS202)。
【0069】
さらに、プロセッサ11は、分裂させて新たに得られた3Dガウシアンを、分裂前の元の3Dガウシアンの位置に基づいてそれぞれ配置する(ステップS203)。
【0070】
このようにして情報処理装置1は、撮影画像の特徴点に応じて初期化された3Dガウシアンを分裂させる適応密度制御を行うので、空間解像度、形状の表現力が向上し、3Dシーンの詳細をより正確に表現し易くなる。
【0071】
特に、この情報処理装置1は、学習過程において最適化された3Dガウシアンの不透明度に応じて、分裂する3Dガウシアンを選択するので、不透明度が高く、スクリーンに再構成(生成)された仮想画像に影響する割合の高い部分の空間解像度をピンポイントで向上させる。その結果、この情報処理装置1は、高速でありながら高精細な仮想画像の生成を実現することができる。
【0072】
また、情報処理装置1は、3Dガウシアンの複製を行わないので、複製にかかる処理時間を省くことができ、レンダリング速度を向上させることができる。
【0073】
<変形例>
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例は組み合わされてもよい。
【0074】
<1>
上述した実施形態において、プロセッサ11は、CPU又はGPUであったが、他の構成であってもよい。例えば、プロセッサ11は、FPGA(Field Programmable Gate Array)であってもよいし、FPGAを含んでもよい。また、プロセッサ11は、ASIC(Application Specific Integrated Circuit)、又は他のプログラマブル論理デバイスを有してもよい。また、情報処理装置1は、複数のプロセッサ、複数のメモリ、複数のインタフェースを有してもよい。情報処理装置1は、例えば、スマートフォン、スレートPC等の携帯端末であってもよい。また、情報処理装置1は、例えば、インターネット等の通信回線を介してクラウド上にある複数の計算資源が動的に協働することにより実現する仮想マシンであってもよい。
【0075】
<2>
上述した実施形態において、情報処理装置1は、不透明度に応じた確率で3Dガウシアンを選択し、選択したその3Dガウシアンの総体積が維持されるように分裂させていたが、分裂させる3Dガウシアンを選択する基準はこれに限らない。
【0076】
図13は、変形例における分裂処理の動作の流れの例を示すフロー図である。図13に示すステップS200の分裂処理は、図12に示したステップS201に代えて、ステップS201aを実行する。つまり、プロセッサ11は、不透明度のほか、投影ガウシアンの最大サイズにも比例した確率で、3Dガウシアンを選択する(ステップS201a)。これにより、情報処理装置1は、不透明度が高いほど3Dガウシアンを分裂させ易くなることに加えて、投影ガウシアンの最大サイズが大きいほど3Dガウシアンを分裂させ易くなる。そのため、情報処理装置1は、不透明度が高く、スクリーンに再構成(生成)された仮想画像に影響する割合の高い部分の空間解像度を向上させることに加えて、投影されたときにスクリーンを占める面積が大きいために仮想画像に影響する割合の高い部分の空間解像度を向上させることができる。
【0077】
すなわち、この変形例におけるプロセッサ11が実現する分裂手段1153は、抽出された3Dガウシアンの中から、不透明度、及び投影ガウシアンの最大のサイズのそれぞれに応じた確率で選択した3Dガウシアンを、総体積が維持されるように複数に分裂させる分裂手段の例である。
【0078】
<3>
上述した実施形態において、情報処理装置1は、3Dガウシアンの分裂のみを行い、複製を行わなかったが、決められた条件を満たした場合に、いずれかの3Dガウシアンを複製してもよい。
【0079】
図14は、変形例における適応密度制御手段115の構成の例を示す図である。図14に示す適応密度制御手段115は、図10に示したそれに比べて、計算負荷判定手段1155、及び複製手段1156を有する点が異なる。
【0080】
計算負荷判定手段1155は、情報処理装置1の計算負荷を監視する構成である。この計算負荷判定手段1155は、プロセッサ11、又はプロセッサ11が制御する計算資源にかかる負荷が所定の水準未満であるか否かを判定する。
【0081】
計算負荷判定手段1155は、計算負荷が所定の水準未満である、と判定すると、抽出手段で抽出されなかった3Dガウシアンを複製手段1156に供給する。複製手段1156は、計算負荷判定手段1155から供給された3Dガウシアンのうち、決められた条件を満たすものを複製する。
【0082】
例えば、複製手段1156は、仮想空間における3Dガウシアンのサイズ(三次元の大きさ)が一定のしきい値よりも小さい場合、その3Dガウシアンを複製する。これにより、情報処理装置1は、分裂では得られ難い広範囲のレンダリングの精度を向上させ、物体を仮想物体として再現する際の大まかな形状や低周波の特徴を強化することができる。また、情報処理装置1は、十分な計算資源が確保されたときにのみ、3Dガウシアンの複製を行うので、適応密度制御における3Dガウシアンの分裂処理を妨げることが少なく、レンダリングの速度を低下させ難い。
【0083】
この変形例における計算負荷判定手段1155、及び複製手段1156は、計算負荷が所定水準未満のときに、複数の3Dガウシアンのうち、条件を満たすものを複製する複製手段の例である。
【0084】
<4>
上述した実施形態において、情報処理装置1のプロセッサ11は、画像取得手段111により供給された撮影画像から、それらを撮影した際のカメラ情報を計算するバンドル調整手段112として機能していたが、カメラ情報は予め撮影画像に対応付けてメモリ12に記憶されていてもよい。
【0085】
図15は、変形例における情報処理装置1の機能的構成の例を示す図である。メモリ12に記憶されたカメラ情報DB122には、画像DB121で画像を識別する画像IDごとに、予めカメラ情報が記憶されている。この場合、プロセッサ11は、撮影画像の特徴点からカメラ情報を推定する必要はない。プロセッサ11は、図15に示す通り、単にカメラ情報DB122において、画像IDと対応付けられたカメラ情報を読み出す、カメラ情報取得手段112aとして機能すればよい。
【0086】
画像DB121は、カメラ情報DB122と一体であってもよい。例えば、カメラが物体を撮影する際に、自身のカメラ情報を撮影画像のメタデータとして記憶させてもよい。カメラ情報は、物体の撮影の際に、カメラ自身に取り付けられた気圧計、加速度センサー、ジャイロセンサー、GNSS等によって生成されてもよい。また、カメラを移動させる移動装置がある場合、カメラ情報は、この移動装置に設けられた移動量の計測器を用いて生成されてもよい。また、カメラ情報は、予めカメラが取り付けられる位置、又はカメラの識別情報等に対応付けられていてもよい。
【0087】
<5>
また、上述した実施形態において、情報処理装置1は、パラメータの学習を経た3Dガウシアンのうち、各スクリーンに投影した投影ガウシアンの最大サイズが閾値以上になるもののみを抽出し、その抽出された3Dガウシアンの中から不透明度に応じた確率でいくつかの3Dガウシアンを分裂の対象として選択していた。しかし、この抽出と選択の順序は逆であってもよい。
【0088】
例えば、図15に示す適応密度制御手段115は、選択手段1152の後に、抽出手段1151が実行され、さらにその後に、分裂手段1153、配置手段1154が続くように構成されている。この場合、選択手段1152は、学習された3Dガウシアンの中から、不透明度に応じた確率でいくつかの3Dガウシアンを選択する。
【0089】
そして、抽出手段1151は、選択手段1152によって選択された3Dガウシアンの中から、投影ガウシアンの最大サイズが閾値以上になる3Dガウシアンを抽出する。分裂手段1153は、抽出手段1151により抽出された3Dガウシアンを、総体積が維持されるように複数個に分裂する。
【0090】
したがって、図15に示す選択手段1152は、複数の3Dガウシアンのうち、不透明度に応じた確率で3Dガウシアンを選択する選択手段の例である。
【0091】
また、図15に示す抽出手段1151、及び分裂手段1153は、不透明度等に応じて選択された3Dガウシアンの中から、スクリーンのそれぞれに投影した投影ガウシアンの最大のサイズが閾値以上になる3Dガウシアンを、総体積が維持されるように複数に分裂させる分裂手段の例である。
【0092】
<6>
上述した実施形態において、プロセッサ11が実行するプログラムは、コンピュータを、物体を撮影した複数の画像と、それら複数の画像のそれぞれを撮影したカメラの位置、向き、及び撮影範囲を示すカメラ情報と、をそれぞれ対応付けて取得する取得手段と、仮想空間に配置された複数の3Dガウシアンのそれぞれを、その仮想空間においてカメラのそれぞれに対応するスクリーンに投影した投影ガウシアンを算出する算出手段と、複数の3Dガウシアンのうち、スクリーンのそれぞれに投影した投影ガウシアンの最大のサイズが閾値以上になるものを抽出する抽出手段と、抽出された3Dガウシアンの中から、不透明度に応じた確率で選択した3Dガウシアンを、総体積が維持されるように複数に分裂させる分裂手段、として機能させるためのプログラムとして観念される。
【0093】
<7>
上述したプロセッサ11に上述したプログラムを実行させる方法は、コンピュータに3Dガウシアンの密度を制御させる適応密度制御方法としても観念される。すなわち、上述した3Dガウシアンの適応密度制御方法は、コンピュータが、物体を撮影した複数の画像と、それら複数の画像のそれぞれを撮影したカメラの位置、向き、及び撮影範囲を示すカメラ情報と、をそれぞれ対応付けて取得するステップと、コンピュータが、仮想空間に配置された複数の3Dガウシアンのそれぞれを、その仮想空間においてカメラのそれぞれに対応するスクリーンに投影した投影ガウシアンを算出するステップと、コンピュータが、前記複数の3Dガウシアンのうち、スクリーンのそれぞれに投影した投影ガウシアンの最大のサイズが閾値以上になるものを抽出するステップと、コンピュータが、抽出された3Dガウシアンの中から、不透明度に応じた確率で選択した3Dガウシアンを、総体積が維持されるように複数に分裂させるステップと、を含むことを特徴とする3Dガウシアンの適応密度制御方法の例である。
【符号の説明】
【0094】
1…情報処理装置、11…プロセッサ、111…画像取得手段、112…バンドル調整手段、1121…特徴点抽出手段、1122…特徴点マッチング手段、1123…検証手段、1124…推定手段、112a…カメラ情報取得手段、113…初期化手段、114…学習手段、1141…算出手段、1142…誤差最小化手段、115…適応密度制御手段、1151…抽出手段、1152…選択手段、1153…分裂手段、1154…配置手段、1155…計算負荷判定手段、1156…複製手段、12…メモリ、121…画像DB、122…カメラ情報DB、123…ガウシアンDB、13…インタフェース。
【要約】
【課題】撮影画像に表現されていた物体の詳細を再現するのに適した3Dガウシアンの適応密度制御を実現する。
【解決手段】抽出手段1151は、学習手段114によるパラメータの学習を経た3Dガウシアンのうち、上述した各スクリーンに投影した投影ガウシアンの最大サイズが閾値以上になるもののみを抽出する。選択手段1152は、抽出手段1151が抽出した3Dガウシアンの中から、それらの3Dガウシアンの不透明度に比例した確率で、いくつかの3Dガウシアンを選択する。分裂手段1153は、選択手段1152が選択した3Dガウシアンを、その総体積が維持されるように複数個に分裂させる。配置手段1154は、分裂手段1153によって複数個に分裂した3Dガウシアンを、それぞれ、その分裂前の元の3Dガウシアンの位置に基づいて配置する。
【選択図】図10
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15