(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024170173
(43)【公開日】2024-12-06
(54)【発明の名称】学習装置、サーバ装置、及びプログラム
(51)【国際特許分類】
G06T 7/55 20170101AFI20241129BHJP
G06T 19/00 20110101ALI20241129BHJP
G06V 10/82 20220101ALI20241129BHJP
G06T 7/00 20170101ALI20241129BHJP
【FI】
G06T7/55
G06T19/00 A
G06V10/82
G06T7/00 350C
【審査請求】有
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023087190
(22)【出願日】2023-05-26
(11)【特許番号】
(45)【特許公報発行日】2023-10-13
(71)【出願人】
【識別番号】520442690
【氏名又は名称】bestat株式会社
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】松田 尚子
(72)【発明者】
【氏名】大橋 良右
【テーマコード(参考)】
5B050
5L096
【Fターム(参考)】
5B050AA10
5B050BA09
5B050BA13
5B050CA08
5B050DA04
5B050EA09
5B050EA19
5B050EA27
5B050FA02
5B050FA05
5L096FA67
5L096FA69
5L096HA11
5L096KA04
(57)【要約】
【課題】複数の視点のそれぞれから物体を撮影して得られる画像を教師データとして、仮想空間におけるその物体の立体モデルを推定する機械学習モデルを学習させる際に、各画像からそれぞれ背景を削除する処理を不要にする。
【解決手段】視点画像DB120は、複数の視点と、それら複数の視点のそれぞれから物体を撮影して得られる画像とを対応付けて記憶する。取得手段111は、視点画像DB120を読み出し、生成手段112に供給する。生成手段112は、初期状態、又は学習途中の機械学習モデル121を用いて、仮想視点から仮想物体を撮影した場合に得られる仮想画像を生成する。学習手段113は、視点画像DB120に記憶された画像と、生成手段112により生成された仮想画像との差分に応じて、背景点、及び想視点における密度がそれぞれ予め決められた定数になるように拘束されている機械学習モデル121を更新する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
複数の視点と、該複数の視点のそれぞれから物体を撮影して得られる画像と、をそれぞれ対応付けた教師データを取得する取得手段と、
仮想空間において、前記視点に対応する仮想視点から、前記物体に対応する仮想物体を撮影した場合に得られる仮想画像を、該仮想物体の背景にある背景点から該仮想物体を通過して前記仮想視点へ至る視線上の位置ごとの密度を含む機械学習モデルを用いて生成する生成手段と、
前記仮想視点ごとに、生成された前記仮想画像と、該仮想視点に対応する前記視点から撮影された前記画像と、を比較して、前記機械学習モデルを学習させる学習手段と、
を有し、
前記機械学習モデルは、前記背景点、及び前記仮想視点における前記密度がそれぞれ予め決められた定数になるように拘束されている
ことを特徴とする学習装置。
【請求項2】
前記機械学習モデルは、多層パーセプトロンによって前記仮想物体の表面を定義する曲面関数と、前記曲面関数を用いて前記密度を示す密度関数と、を含み、
前記学習手段は、誤差逆伝播法により前記曲面関数を更新することにより、前記機械学習モデルを学習させ、
前記密度関数は、前記背景点における前記密度が1、かつ前記仮想視点における前記密度が0になるように拘束されている
ことを特徴とする請求項1に記載の学習装置。
【請求項3】
前記機械学習モデルにおいて、
前記視線上を進んで前記仮想視点に至った光の透過率を示す透過率関数T、及び
前記視線上の任意の位置における不透明度を示す不透明度関数αは、
前記視線上の任意の位置における密度を示す密度関数Φ、及び
前記仮想物体の表面を定義する曲面関数f、
を用いた場合に式(1)及び式(2)で表される
ことを特徴とする請求項2に記載の学習装置。
【請求項4】
複数の撮影点から対象物を撮影した撮影画像をそれぞれ取得する撮影画像取得手段と、
前記撮影画像のそれぞれから抽出される特徴点に基づいて前記撮影点を推定する推定手段と、
推定された前記撮影点と、該撮影点に対応する前記撮影画像と、請求項1から3のいずれか一項に記載された機械学習モデルと、を用いて前記対象物の立体データを生成する立体データ生成手段と、
を有するサーバ装置。
【請求項5】
端末の要求を受け付ける受付手段と、
前記要求に応じて前記立体データ生成手段が生成した前記立体データを前記端末に供給する供給手段と、
を有することを特徴とする請求項4に記載のサーバ装置。
【請求項6】
端末から前記対象物を撮影する仮想視点の指定を受け付ける受付手段と、
前記指定が示す前記仮想視点から、前記立体データ生成手段が生成した前記立体データにより示される前記対象物を撮影した場合に得られる仮想画像を生成する仮想画像生成手段と、
前記指定に応じて前記仮想画像生成手段が生成した前記仮想画像を前記端末に供給する供給手段と、
を有することを特徴とする請求項4に記載のサーバ装置。
【請求項7】
コンピュータを、
複数の視点と、該複数の視点のそれぞれから物体を撮影して得られる画像と、をそれぞれ対応付けた教師データを取得する取得手段と、
仮想空間において、前記視点に対応する仮想視点から、前記物体に対応する仮想物体を撮影した場合に得られる仮想画像を、該仮想物体の背景にある背景点から該仮想物体を通過して前記仮想視点へ至る視線上の位置ごとの密度を含む機械学習モデルを用いて生成する生成手段と、
前記仮想視点ごとに、生成された前記仮想画像と、該仮想視点に対応する前記視点から撮影された前記画像と、を比較して、前記機械学習モデルを学習させる学習手段、
として機能させるとともに、
前記背景点、及び前記仮想視点における前記密度がそれぞれ予め決められた定数になるように、前記機械学習モデルを拘束することを特徴とするプログラム。
【請求項8】
コンピュータを、
複数の撮影点から対象物を撮影した撮影画像をそれぞれ取得する撮影画像取得手段と、
前記撮影画像のそれぞれから抽出される特徴点に基づいて前記撮影点を推定する推定手段と、
推定された前記撮影点と、該撮影点に対応する前記撮影画像と、請求項7に記載されたプログラムにより学習させられた機械学習モデルと、を用いて前記対象物の立体データを生成する立体データ生成手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体を撮影した複数の画像から、その物体の立体形状を推定する技術に関する。
【背景技術】
【0002】
フォトグラメトリーは、物体を撮影した複数の画像から、その物体の立体形状を推定する技術である。例えば、特許文献1は、フォトグラメトリーの技術として、複数台のカメラの映像から被写体の三次元(3D)モデルを生成する装置及び方法を開示する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
物体の形状、材質、色、及び光源の位置、光の強さ等がわかった状態で、指定した視点からその物体を見たときに見えるはずの画像を生成する処理をレンダリングという。これに対してフォトグラメトリーは、物体を撮影した複数の画像からその物体の立体形状、色彩、質感等を推定する処理を行う。この処理は、レンダリングの逆であるため、逆レンダリングとも呼ばれる。このようなフォトグラメトリーにおける逆レンダリング問題には、人工ニューラルネットワーク(ANN:artificial neural network)の技術が応用されることがある。
【0005】
ANNを応用したフォトグラメトリー技術は、複数の視点のそれぞれから物体を撮影して得られる画像を教師データとして用いて光学的な仮定を含んだ機械学習モデルを学習させる。この機械学習モデルは、例えば、多層パーセプトロン(MLP:Multilayer Perceptron)により構成される。学習済みのこの機械学習モデルを用いると、複数の視点から物体を撮影した新たな画像から、仮想空間におけるその物体(仮想物体ともいう)の立体モデルを生成することができる。そして、生成されたこの立体モデルを用いると、仮想空間における任意の視点(仮想視点ともいう)からこの仮想物体を撮影した場合に得られる画像(仮想画像ともいう)を生成することができる。
【0006】
MLPにより三次元仮想空間の密度場・輝度場を表現し、この仮想空間における任意の仮想視点から仮想物体を撮影した仮想画像を生成する手法にNeRF(Neural Radiance Fields)がある。NeRFは、ボリュームレンダリングにより上述した二次元の仮想画像を生成する。NeRFは、例えば、三次元の仮想空間を格子状に区画した、いわゆるボクセルを単位とする「ボリュメトリックな表現」を用いる。そのため、NeRFに基づく逆レンダリングは,曲面表現(後述)に基づく方式より最適化を安定して行いやすいと言われている。
【0007】
一方、上述した仮想画像を生成する他の手法として、NeuS(Neural Scene Representation)がある。NeuSは、曲面表現に基づいて仮想空間上に仮想物体を生成する方式の一つである。NeuSは、物体の表面をMLPで近似された符号付き距離関数(SDF:signed distance function)のゼロレベル集合として表現し、複数視点から撮影された画像を教師データとして用いてこの表面のモデルを学習させることで、点群やメッシュなどの形式で仮想物体を生成する手法である。NeuSは、物体の表面をMLPで近似された連続関数であるSDFで表現するため、ボリュメトリックな表現を用いるNeRFと比較して曲面で構成される物体表面の表現に優位性がある。
【0008】
NeRF、及びNeuS等、深層学習により上記の機械学習モデルを学習させる場合、従来では仮想物体を視る視線の両端(背景点・仮想視点)における密度が成り行きで決まっていた。そのため、従来技術では、教師データの画像に背景が含まれていると、その背景が学習を妨げてしまうので、背景を適当な前景マスクにより削除するか、NeRFでモデリングする必要があった。例えば、特許文献1に記載の技術は、物体を撮影した複数の画像から、その物体の立体形状を推定する際に、その物体とそれ以外の部分とを互いに異なる階調(例えば、白と黒)で表した2値のマスク画像を必要とする。
【0009】
本発明の目的の一つは、複数の視点のそれぞれから物体を撮影して得られる画像を教師データとして、仮想空間におけるその物体の立体モデルを推定する機械学習モデルを学習させる際に、各画像からそれぞれ背景を削除する処理を不要にすること、である。
することである。
【課題を解決するための手段】
【0010】
本発明の請求項1に係る学習装置は、複数の視点と、該複数の視点のそれぞれから物体を撮影して得られる画像と、をそれぞれ対応付けた教師データを取得する取得手段と、仮想空間において、前記視点に対応する仮想視点から、前記物体に対応する仮想物体を撮影した場合に得られる仮想画像を、該仮想物体の背景にある背景点から該仮想物体を通過して前記仮想視点へ至る視線上の位置ごとの密度を含む機械学習モデルを用いて生成する生成手段と、前記仮想視点ごとに、生成された前記仮想画像と、該仮想視点に対応する前記視点から撮影された前記画像と、を比較して、前記機械学習モデルを学習させる学習手段と、を有し、前記機械学習モデルは、前記背景点、及び前記仮想視点における前記密度がそれぞれ予め決められた定数になるように拘束されていることを特徴とする学習装置である。
【0011】
本発明の請求項2に係る学習装置は、請求項1に記載の態様において、前記機械学習モデルは、多層パーセプトロンによって前記仮想物体の表面を定義する曲面関数と、前記曲面関数を用いて前記密度を示す密度関数と、を含み、前記学習手段は、誤差逆伝播法により前記曲面関数を更新することにより、前記機械学習モデルを学習させ、前記密度関数は、前記背景点における前記密度が1、かつ前記仮想視点における前記密度が0になるように拘束されていることを特徴とする学習装置である。
【0012】
本発明の請求項3に係る学習装置は、請求項2に記載の態様において、前記機械学習モデルにおいて、前記視線上を進んで前記仮想視点に至った光の透過率を示す透過率関数T、及び前記視線上の任意の位置における不透明度を示す不透明度関数αは、前記視線上の任意の位置における密度を示す密度関数Φ、及び前記仮想物体の表面を定義する曲面関数f、を用いた場合に以下の式で表されることを特徴とする学習装置である。
【0013】
本発明の請求項4に係るサーバ装置は、複数の撮影点から対象物を撮影した撮影画像をそれぞれ取得する撮影画像取得手段と、前記撮影画像のそれぞれから抽出される特徴点に基づいて前記撮影点を推定する推定手段と、推定された前記撮影点と、該撮影点に対応する前記撮影画像と、請求項1から3のいずれか一項に記載された機械学習モデルと、を用いて前記対象物の立体データを生成する立体データ生成手段と、を有するサーバ装置である。
【0014】
本発明の請求項5に係るサーバ装置は、請求項4に記載の態様において、端末の要求を受け付ける受付手段と、前記要求に応じて前記立体データ生成手段が生成した前記立体データを前記端末に供給する供給手段と、を有することを特徴とするサーバ装置である。
【0015】
本発明の請求項6に係るサーバ装置は、請求項4に記載の態様において、端末から前記対象物を撮影する仮想視点の指定を受け付ける受付手段と、前記指定が示す前記仮想視点から、前記立体データ生成手段が生成した前記立体データにより示される前記対象物を撮影した場合に得られる仮想画像を生成する仮想画像生成手段と、前記指定に応じて前記仮想画像生成手段が生成した前記仮想画像を前記端末に供給する供給手段と、を有することを特徴とするサーバ装置である。
【0016】
本発明の請求項7に係るプログラムは、コンピュータを、複数の視点と、該複数の視点のそれぞれから物体を撮影して得られる画像と、をそれぞれ対応付けた教師データを取得する取得手段と、仮想空間において、前記視点に対応する仮想視点から、前記物体に対応する仮想物体を撮影した場合に得られる仮想画像を、該仮想物体の背景にある背景点から該仮想物体を通過して前記仮想視点へ至る視線上の位置ごとの密度を含む機械学習モデルを用いて生成する生成手段と、前記仮想視点ごとに、生成された前記仮想画像と、該仮想視点に対応する前記視点から撮影された前記画像と、を比較して、前記機械学習モデルを学習させる学習手段、として機能させるとともに、前記背景点、及び前記仮想視点における前記密度がそれぞれ予め決められた定数になるように、前記機械学習モデルを拘束することを特徴とするプログラムである。
【0017】
本発明の請求項8に係るプログラムは、コンピュータを、複数の撮影点から対象物を撮影した撮影画像をそれぞれ取得する撮影画像取得手段と、前記撮影画像のそれぞれから抽出される特徴点に基づいて前記撮影点を推定する推定手段と、推定された前記撮影点と、該撮影点に対応する前記撮影画像と、請求項7に記載されたプログラムにより学習させられた機械学習モデルと、を用いて前記対象物の立体データを生成する立体データ生成手段、として機能させることを特徴とするプログラムである。
【図面の簡単な説明】
【0018】
【
図1】本発明の実施形態に係る仮想画像生成システム9の全体構成の例を示す図。
【
図2】学習装置1及びサーバ装置2の構成の例を示す図。
【
図4】視点画像DB120に記憶される画像を説明するための図。
【
図6】機械学習モデル121で採用されるSDFを説明するための図。
【
図7】機械学習モデル121に用いる教師データに背景マスクが不要であることを説明するための図。
【
図9】立体データから仮想画像が生成される様子の例を示す図。
【
図10】端末4によって撮影される新たな対象物Jnの例を示す図。
【
図11】サーバ装置2が機械学習モデル221を用いて生成する仮想物体Jnvの立体データを示す図。
【
図12】変形例に係るサーバ装置2の機能的構成の例を示す図。
【発明を実施するための形態】
【0019】
<実施形態>
<仮想画像生成システムの全体構成>
図1は、本発明の実施形態に係る仮想画像生成システム9の全体構成の例を示す図である。仮想画像生成システム9は、複数の視点と、それら視点のそれぞれから物体を撮影した画像(写真)とを対応付けた教師データにより学習させた機械学習モデルを用いて、仮想空間において、その物体に対応する仮想物体を撮影した仮想画像を生成するシステムである。
図1に示すこの仮想画像生成システム9は、学習装置1、サーバ装置2、通信回線3、及び端末4を有する。仮想画像生成システム9は、複数の端末4を備えていてもよく、これら端末4の中には、カメラ5と接続可能なものがあってもよい。
【0020】
学習装置1は、上述した教師データにより機械学習モデルを学習させる装置であり、例えば、コンピュータである。
【0021】
サーバ装置2は、学習装置1で学習済みとなった機械学習モデルのコピーを利用して、端末4から供給される、新たな物体(対象物ともいう)を撮影した複数の画像から、その物体に対応する仮想物体の立体データを生成する装置である。サーバ装置2、又は端末4は、この立体データを用いると、仮想空間において仮想物体を任意の仮想視点から撮影した場合に得られるはずの仮想画像を生成することができる。
【0022】
端末4は、仮想画像生成システム9のユーザが所持する端末装置であり、例えば、スマートフォン、パーソナルコンピュータ等である。端末4は、カメラ等の物体を撮影する撮影機能を予め備えていてもよい。また、端末4は、デジタルスチルカメラ、ビデオカメラ等であるカメラ5と接続して、それらで撮影された画像を取得可能であってもよい。
【0023】
通信回線3は、有線又は無線により学習装置1、サーバ装置2、及び端末4のそれぞれを相互に通信可能に接続する回線である。通信回線3は、例えばLAN(Local Area Network)のほか、WAN(Wide Area Network)であってもよいし、インターネットであってもよいし、これらの組合せであってもよい。また、通信回線3は、公衆交換通信網(PSTN:Public Switched Telephone Networks)、サービス統合デジタル網(ISDN:Integrated Services Digital Network)等を含むものでもよい。
【0024】
<学習装置、サーバ装置の構成>
図2は、学習装置1及びサーバ装置2の構成の例を示す図である。学習装置1は、プロセッサ11、メモリ12、及びインタフェース13を有する。これらの構成は、例えばバスで、互いに通信可能に接続されている。
【0025】
プロセッサ11は、メモリ12に記憶されているコンピュータプログラム(以下、単にプログラムという)を読出して実行することにより学習装置1の各部を制御する。プロセッサ11は、例えばCPU(Central Processing Unit)又はGPU(Graphics Processing Unit)である。
【0026】
インタフェース13は、有線又は無線により学習装置1を、通信回線3に通信可能に接続する通信回路である。
【0027】
メモリ12は、プロセッサ11に読み込まれるオペレーティングシステム、各種のプログラム、データ等を記憶する記憶手段である。メモリ12は、RAM(Random Access Memory)、又はROM(Read Only Memory)を有する。なお、メモリ12は、ソリッドステートドライブ、ハードディスクドライブ等を有してもよい。また、メモリ12は、視点画像DB120、及び機械学習モデル121を記憶する。
【0028】
視点画像DB120は、複数の視点と、それら複数の視点のそれぞれから物体を撮影して得られる画像とを対応付けて記憶するデータベースである。視点画像DB120に記憶される画像は、実際に物体を撮影して得られたデータであり、GT(Ground truth)データ等とも呼ばれる。機械学習モデル121は、視点画像DB120に記憶されている視点と画像との組を教師データとして用いることで学習させられる機械学習モデルである。この機械学習モデル121は、上述した画像にそれぞれ撮影されている物体の立体データを推論することに利用される。
【0029】
サーバ装置2は、プロセッサ21、メモリ22、及びインタフェース23を有する。プロセッサ21は、メモリ22に記憶されているプログラムを読出して実行することによりサーバ装置2の各部を制御する。プロセッサ21は、例えばCPU又はGPUである。
【0030】
インタフェース23は、有線又は無線によりサーバ装置2を、通信回線3に通信可能に接続する通信回路である。
【0031】
メモリ22は、プロセッサ21に読み込まれるオペレーティングシステム、各種のプログラム、データ等を記憶する記憶手段である。メモリ22は、RAM、又はROMを有する。なお、メモリ22は、ソリッドステートドライブ、ハードディスクドライブ等を有してもよい。また、メモリ22は、機械学習モデル221、及び撮影画像DB222を記憶する。
【0032】
機械学習モデル221は、学習装置1において生成され学習済みとなった機械学習モデル121のコピーである。サーバ装置2は、学習装置1から学習済みの機械学習モデル121のコピーを取得し、メモリ22に記憶する。
【0033】
撮影画像DB222は、サーバ装置2が、端末4から取得する複数の撮影画像を記憶するデータベースである。この撮影画像DB222に記憶される撮影画像は、実空間に存在する対象物を複数の撮影点から撮影した写真等である。この撮影画像は、上述した視点画像DB120と異なり、対象物を撮影した撮影点と対応付けられている必要がない。
【0034】
なお、学習装置1、及びサーバ装置2は、いずれも操作部、表示部を有してもよい。操作部は、操作を受付けてその操作内容に応じた信号をプロセッサ11に送る構成である。この操作部は、例えば、各種の指示をするための操作ボタン、キーボード、タッチパネル、マウス等の操作子を備えてもよい。
【0035】
この表示部は、プロセッサ11の制御の下で画像を表示する構成である。この表示部は、液晶ディスプレイ等の表示画面を有してもよい。また、この表示画面の上には、上述した操作部の透明のタッチパネルが重ねて配置されてもよい。なお、学習装置1、及びサーバ装置2は、それぞれインタフェース13、及びインタフェース23を介して外部の装置から操作され、又は外部の装置に情報を提示してもよい。
【0036】
<視点画像DBの構成>
図3は、視点画像DB120の例を示す図である。
図3に示すこの視点画像DB120は、ID、視点、及び画像の各項目を対応付けて記憶する。視点画像DB120における「ID」の項目は、画像を識別する識別情報である。
【0037】
視点画像DB120における「視点」の項目は、画像が撮影された視点を示す情報である。この情報は、例えば、撮影対象である物体の中心点を原点とした場合の視点の座標を含む。また、この情報は、視点における視野角の情報を含んでもよい。
【0038】
視点画像DB120における「画像」の項目は、上述したIDで識別され、上述した視点から物体を撮影した場合に得られた画像データである。
【0039】
図4は、視点画像DB120に記憶される画像を説明するための図である。仮想画像生成システム9のユーザは、例えば、端末4に搭載されているカメラを使って、実空間Spに存在している物体J(
図4の例では自動車)を様々な視点P1、P2…から撮影する。
図4に示す実空間Spにおける物体J及び視点P1、P2…の各位置は、例えば、xyz右手系座標空間で表現される。
【0040】
このとき、端末4は、視点P1、P2…の各位置を特定する。視点の特定は、例えば、LiDAR等の測距装置を用いて行われてもよいし、ステレオカメラにより撮影空間内に予め設置されたマーカー等を三角測量することで行われてもよい。また、物体Jを撮影するカメラ自体を所定の軌道に沿って駆動するアームに取り付け、端末4は、このアームの駆動情報を取得することで、上記の視点の特定を行ってもよい。
【0041】
そして、端末4は、撮影された複数の画像G1、G2…と、これらの各画像を撮影した視点P1、P2…の座標とを対応付け、これらのデータを通信回線3経由で学習装置1に供給する。学習装置1は、端末4が複数の視点から物体Jを撮影した画像を、そのそれぞれの視点の座標情報とともに取得すると、視点画像DB120にこれらを記憶する。学習装置1のプロセッサ11は、この視点画像DB120に記憶された内容を教師データとして機械学習モデル121を学習させる。なお、端末4は、外部接続されたカメラ5から上述した複数の画像G1、G2…を取得して学習装置1に供給してもよい。
【0042】
<学習装置の機能的構成>
図5は、学習装置1の機能的構成の例を示す図である。学習装置1のプロセッサ11は、メモリ12に記憶されたプログラムを読出して実行することにより、
図5に示す取得手段111、生成手段112、及び学習手段113として機能する。
【0043】
取得手段111は、メモリ12から上述した視点画像DB120を読み出し、生成手段112に供給する。この視点画像DB120は、生成手段112により教師データとして利用される。したがって、この取得手段111は、複数の視点と、これら複数の視点のそれぞれから物体を撮影して得られる画像と、をそれぞれ対応付けた教師データを取得する取得手段の例である。
【0044】
生成手段112は、メモリ12に記憶されている初期状態、又は学習途中の機械学習モデル121を用いて、視点画像DB120に含まれる複数の視点に対応する仮想視点から、物体に対応する仮想物体を撮影した場合に得られる仮想画像を生成する。
【0045】
学習手段113は、生成手段112が生成した仮想画像と、視点画像DB120に記憶されている画像とを比較して、その差が縮まるように機械学習モデル121を更新する。この差が所定の条件を満たしたときに、機械学習モデル121は学習済みとなる。
【0046】
機械学習モデル121の詳細な例は、以下の通りである。機械学習モデル121は、学習手段113が視点画像DB120を参照して、実空間Spに存在する物体Jを撮影した写真等の画像と、その撮影時の視点と、を取得し、これらを教師データとして深層学習をさせることによって更新される。学習による更新の結果、この機械学習モデル121は、物体Jに対応する仮想空間上の仮想物体の形状、質感、色等の立体データの生成を可能にする。生成された立体データは、仮想空間における任意の仮想視点から仮想物体を撮影した場合に得られる仮想画像を生成するのに用いられる。
【0047】
また、この機械学習モデル121は、仮想物体の表面を上述したSDFによって表現する物理モデルを採用する。
図6は、機械学習モデル121で採用されるSDFを説明するための図である。
【0048】
図6に示す通り、仮想空間Svにおいて仮想物体の表面は、それ自体が曲面関数fにより表現される。この曲面関数fは、例えば、上述したMLPにおける各層の重みパラメータ群によって表現される。
【0049】
また、仮想空間Svにおいて光が従う物理法則は、透過率関数T、不透明度関数α、及び密度関数Φによりモデル化される。密度関数Φは、仮想空間の任意の位置における密度を示す関数であり、その位置における仮想物体の表面を表した曲面関数fを用いて求められる。密度関数Φは、例えば、シグモイド関数が用いられるが、曲面関数fが0のときに勾配が最大になる関数であればこれに限らない。例えば、密度関数Φは、erf関数(ガウス分布の累積分布関数)、ラプラス分布の累積分布関数であってもよい。
【0050】
したがって、ここで説明するこの機械学習モデル121は、多層パーセプトロンによって仮想物体の表面を定義する曲面関数と、この曲面関数を用いて密度を示す密度関数と、を含む、機械学習モデルの例である。
【0051】
図6に示す視線Rは、仮想視点Pに向かって進む光線を表す。視線Rは、光線が進む光路をパラメータtで表現した三次元ベクトル関数p(t)によって表したものである。p(t)の値域は、例えば、仮想空間Svを表すXYZ右手座標系によって、三次元ベクトルとして表現される。
【0052】
図6に示す点p(t0)は、視線Rが開始される点である。点p(t0)は、仮想視点Pから見て仮想物体の背面(背景側)に存在する点であるため「背景点」と呼ばれる。背景点は、例えば視点Pからの距離で決められる。
【0053】
また、
図6に示す点p(tn)は、三次元ベクトル関数p(t)における仮想視点Pの表現である。なお、点p(tm)は、視線Rが仮想視点Pに向かって進む途中で結像する面(結像面という)と交差する点である。この結像面における光は、仮想視点Pにおいて観察される画像を構成する。
【0054】
生成手段112は、教師データとして用いる視点画像DB120の各視点に対応する、複数の仮想視点Pごとに、それぞれ初期状態、又は学習途中の機械学習モデル121を適用して、光が背景点から仮想物体を通過して仮想視点Pへ至る視線R上の位置ごとの密度、光の透過率、及び不透明度を算出し、これにより結像面に形成される仮想画像を生成する。
【0055】
したがって、この生成手段112は、仮想空間において、実空間における複数の視点に対応する仮想視点から、実空間における物体に対応する仮想物体を撮影した場合に得られる仮想画像を、この仮想物体の背景にある背景点から仮想物体を通過して仮想視点へ至る視線上の位置ごとの密度を含む機械学習モデルを用いて生成する生成手段の例である。
【0056】
学習手段113は、視点画像DB120に記憶された画像と、生成手段112により生成された仮想画像との差分に応じて目的関数を算出する。そして、この学習手段113は、この目的関数が、例えば最小値になるように誤差伝播法等を用いて機械学習モデル121を更新する。これにより、学習手段113は、機械学習モデル121の深層学習を進め、その結果、学習済みの機械学習モデル121が完成する。
【0057】
すなわち、この学習手段113は、仮想視点ごとに、生成された仮想画像と、この仮想視点に対応する視点から撮影された画像と、を比較して、機械学習モデルを学習させる学習手段の例である。
【0058】
また、この学習手段113は、誤差逆伝播法により曲面関数を更新することにより、機械学習モデルを学習させる学習手段の例である。
【0059】
ここで、本発明に係る機械学習モデル121は、上述した背景点、及び仮想視点における密度がそれぞれ予め決められた定数になるように拘束されている。すなわち、この機械学習モデル121は、背景点、及び仮想視点における密度がそれぞれ予め決められた定数になるように拘束されている機械学習モデルの例である。
【0060】
例えば、この機械学習モデル121は、背景点における密度が1、かつ、仮想視点Pにおける密度が0になるように、密度関数Φを拘束している。このため、仮想視点Pから仮想物体越しに一定の距離にある背景点における密度は常に1となる。この結果、この機械学習モデル121は、仮想視点Pから見て背景点よりも遠くにある物体を無視することになるため、教師データに用いられる画像において物体Jよりも遠くにある背景は演算に寄与しなくなる。また、仮想視点Pにおいて密度は常に0となるので、視線R上を進む光が仮想視点Pに到達するまでの途中に必ず仮想物体の表面が定義される。
【0061】
したがって、機械学習モデル121に含まれるこの密度関数Φは、背景点における密度が1、かつ仮想視点における密度が0になるように拘束されている密度関数の例である。
【0062】
図7は、機械学習モデル121に用いる教師データに背景マスクが不要であることを説明するための図である。機械学習モデル121を学習させる教師データは、実空間Spに存在する物体Jを撮影した画像Gを含むが、この画像Gには、
図7の(a)に示すように、物体J以外にも、背景において何らかのモノ(背景物体Bという)が写り込んでいることが多い。
【0063】
従来の物理モデルのうち、例えば、NeRFは、この背景物体Bも含めてボクセルで表現する場合があり、これにより物体Jの表現の精度低下を招くことがあった。また、従来のNeuSは、物体Jのみの表面形状を演算させるために、撮影された画像に写り込む背景物体Bを教師データから除外する必要がある。そのため、従来のNeuSは、
図7の(b)に示すような背景マスクMを画像Gごとに用意する必要があった。
【0064】
従来技術において、
図7の(a)に示す画像Gに対し、
図7の(b)に示す背景マスクMを適用してマスク領域を除外すると、
図7の(c)に示すようなクリッピング画像Gmが得られる。このクリッピング画像Gmは、物体Jのみを写しているため、これを教師データに用いると、機械学習モデル121による物体Jの立体データの推測精度は向上する。しかし、教師データに採用される複数の画像Gの数は一般に膨大であり、そのそれぞれに適切な背景マスクMを設定することは困難である。また、
図7の(b)に示す背景マスクMは、
図7の(a)に示す画像Gそのものの特徴量等から自動的に作成されることもあるが、この場合、意図しない部分が前景、又は背景として定義されることが多い。
【0065】
本発明に係る機械学習モデル121は、上述した通り、背景点、及び仮想視点における密度がそれぞれ予め決められた定数になるように拘束されているので、仮想視点Pから見て背景点よりも遠くにある物体は、学習の過程で無視される。そのため、この機械学習モデル121は、教師データを構成する画像Gのそれぞれにマスク処理を施す必要がない。
【0066】
以下に説明する物理モデルは、上述した機械学習モデル121に含まれる物理モデルの一例である。機械学習モデル121は、以下の式(1)に示す透過率関数Tと、式(2)に示す不透明度関数αとを用いた物理モデルを含む。
【0067】
【0068】
【0069】
この式(1)に示す透過率関数Tは、視線R上を進んで仮想視点Pに至った光の透過率を算出する関数であり、視線Rにおける全ての点の透明度の総乗で求められる。ここで、透明度は、1から不透明度関数αを減算した値である。
【0070】
また、不透明度関数αは、式(2)で示される関数である。この不透明度関数αは、視線R上における任意の位置での不透明度を求める関数であって、その位置における密度Φsと、その位置よりも仮想視点Pに離散距離だけ近づいた位置における密度Φsとの差に応じて求められる値と0のいずれか大きい方になるように定義される。
【0071】
すなわち、この例に示す物理モデルを採用した機械学習モデル121を学習させる学習装置1は、機械学習モデルにおいて、視線上を進んで仮想視点に至った光の透過率を示す透過率関数T、及び視線上の任意の位置における不透明度を示す不透明度関数αは、視線上の任意の位置における密度を示す密度関数Φ、及び仮想物体の表面を定義する曲面関数f、を用いた場合に上述した式(1)及び式(2)で表されることを特徴とする学習装置の例である。
【0072】
<サーバ装置の機能的構成>
図8は、サーバ装置2の機能的構成の例を示す図である。サーバ装置2のプロセッサ21は、メモリ22に記憶されたプログラムを読出して実行することにより、
図8に示す撮影画像取得手段211、特徴点抽出手段212、推定手段213、立体データ生成手段214、受付手段215、及び供給手段216として機能する。なお、
図8において端末4とサーバ装置2とを通信可能に接続する通信回線3は省略されている。
【0073】
撮影画像取得手段211は、複数の撮影点から対象物を撮影した撮影画像をそれぞれ取得する。この撮影画像取得手段211は、取得した撮影画像をメモリ22の撮影画像DB222に記憶する。この撮影画像取得手段211は、複数の撮影点から対象物を撮影した撮影画像をそれぞれ取得する撮影画像取得手段の例である。
【0074】
特徴点抽出手段212は、撮影画像取得手段211が取得した複数の撮影画像を撮影画像DB222から読み出して、そのそれぞれから特徴点を抽出する。この特徴点抽出手段212は、例えば、撮影画像に写り込んでいる対象物の輪郭を、例えば、ソーベル法、ガウスのラプラシアン法、キャニー法等のエッジ検出アルゴリズムにより検出し、検出されたそれらの輪郭から共通する特徴を示す点を特徴点として抽出する。
【0075】
推定手段213は、特徴点抽出手段212が抽出した特徴点に基づいて、複数の撮影画像のそれぞれの撮影点を推定する。複数の撮影画像は、それぞれの撮影点が異なっており、そのそれぞれから抽出される特徴点は、撮影点が近いほど類似する傾向がある。したがって、推定手段213は、特徴点の類似度に基づいて、複数の撮影画像を撮影した位置である撮影点の近さを推算し、これにより各撮影点の空間における配置を推定する。つまり、この推定手段213は、撮影画像のそれぞれから抽出される特徴点に基づいて撮影点を推定する推定手段の例である。
【0076】
立体データ生成手段214は、撮影画像DB222から読み出された複数の撮影画像と、それらを撮影した位置として推定された撮影点とを、入力データとして受け付け、機械学習モデル221を参照して、複数の撮影画像に写っている対象物の立体データを生成する。なお、この機械学習モデル221は、上述した通り、学習装置1により学習済みとなった機械学習モデル121のコピーである。すなわち、この立体データ生成手段214は、推定された撮影点と、この撮影点に対応する撮影画像と、学習装置により学習済みとなった機械学習モデルと、を用いて対象物の立体データを生成する立体データ生成手段の例である。
【0077】
受付手段215は、端末4から撮影画像に写っている対象物の立体データの要求を受け付ける。つまり、この受付手段215は、端末の要求を受け付ける受付手段の例である。
【0078】
供給手段216は、受け付けた要求に応じて生成された立体データを端末4に供給する。端末の要求に応じて立体データ生成手段が生成した立体データをこの端末に供給する供給手段の例である。
【0079】
図9は、立体データから仮想画像が生成される様子の例を示す図である。例えば、端末4が
図4に示した物体J(この場合、教師データに利用された自動車と同じ)を対象物として撮影して、その撮影画像をサーバ装置2に供給すると、サーバ装置2は、仮想空間Svにおいて、仮想物体Jvの立体データを生成する。端末4は、この立体データを取得して、例えば、任意の仮想視点Pvから仮想物体Jvを撮影した場合の仮想画像Gvを生成することができる。
【0080】
また、端末4は、教師データに利用された物体Jと異なる物体を対象物として撮影してもよい。
図10は、端末4によって撮影される新たな対象物Jnの例を示す図である。
図10に示す対象物Jnは、実空間Spに存在する物体であり、例えば、バイオリン等の楽器である。これは教師データを構成する視点画像に含まれていない物体である。端末4は、この対象物Jnを様々な撮影点Pn1、Pn2…で撮影し、その撮影画像Gn1、Gn2…を生成して、サーバ装置2に供給する。
【0081】
図11は、サーバ装置2が機械学習モデル221を用いて生成する仮想物体Jnvの立体データを示す図である。サーバ装置2は、撮影画像Gn1、Gn2…を取得すると、これを入力データとして機械学習モデル221を参照することにより、仮想空間Svにおいて対象物Jnに対応する仮想物体Jnvの立体データを生成する。端末4は、この立体データをサーバ装置2から取得して、これに基づいて任意の(仮想の)撮影点Pnvからこの立体データが示す仮想物体Jnvを撮影した場合に得られる仮想画像Gnvを生成することができる。
【0082】
なお、立体データから仮想画像を生成する処理は、例えば、以下の式(3)に従って行われる。
【0083】
【0084】
ここで、Tiは、視線R上においてiで指定された位置の透過率であり、αiは、その位置の不透明度であり、ciはその位置の色である。式(3)は、Ti、αi、及びciの積を視線R上に積算することにより、視線Rに沿って進む光が仮想視点の結像面に形成仮想画像の画素の色が得られることを示している。なお、この画素の色は、光の三原色である赤、緑、青を用いたRGB色空間、輝度信号Yと2つの色差信号とで表されるYUV色空間、YCbCr色空間等で表される。
【0085】
従来技術では、本発明のように仮想空間上の決められた点の密度に定数を設定してこれを拘束することは行われていなかった。例えば、NeRFの場合、仮想空間において定義された全ての座標の密度にそれぞれランダムに初期値を与えることが多い。そして、NeRFは最適化の安定性が高いため、いずれかの座標の密度を特に拘束しなくても、適切な学習回数があればそれらの密度は望ましい値に収束し易い。したがって、NeRFでは、仮想空間におけるいずれかの座標の密度を定数に設定する必要がなかった。
【0086】
一方、NeuSの場合、仮想物体の表面を表現するSDFを抽出するので、この仮想物体に相当する物体が写っている背景のない画像を教師データとして用いることが多い。そして、NeuSは、一般にNeRFと比較して最適化の安定性が低く、処理が遅い。そのため、機械学習モデルを用いて画像から仮想物体の表面の表現を得る際に、この画像に対して予め物体以外の情報を除去するマスキング処理等が行われていた。
【0087】
本発明に係る仮想画像生成システム9の学習装置1は、複数の視点のそれぞれから物体を撮影して得られる画像を教師データとして、仮想空間におけるその物体の立体モデルを推定する機械学習モデルを学習させる際に、背景点、及び仮想視点における密度がそれぞれ予め決められた定数になるように拘束されている機械学習モデルを学習させる。そのため、この学習装置1は、機械学習モデルの学習の過程で、教師データを構成する各画像からそれぞれ背景を削除する処理を行う必要がない。
【0088】
特に、実施形態で示した本発明は、背景点、及び仮想視点における密度がそれぞれ1、0になるように拘束されている機械学習モデルを学習させる。本発明は、NeuSを基礎としている。NeuSの場合、演算過程において視線Rのどこかで必ず密度が0になるから、透過率関数Tにおいて何もない箇所の密度が0であることを保証する必要がない。そのため、NeuSを基礎とする従来技術では、仮想視点を他の座標と区別してその密度の値を0に設定する必要がなかった。本発明は、仮想視点を他の座標と区別してその密度の値を0に設定しているため、透過率関数Tにおいて何もない箇所の密度が0に収束し易くなる、という効果を奏する。
【0089】
また、本発明に係るサーバ装置は、ユーザがスマートフォン等で複数の視点のそれぞれから対象物を撮影した未加工の撮影画像(写真等)を入力しても、学習済みの機械学習モデルを用いて、その撮影画像から対象物の立体データを生成することができる。
【0090】
未加工の撮影画像は、背景も含んでいるが、これをNeuSで扱う場合、その撮影画像を構成する、どのピクセルから射出された光線(視線R上を進む光)も何らかの物体に衝突するので、そこで透過率関数Tが0に落ち込むはずである。本発明により学習された機械学習モデルは、背景点における密度が1になるように拘束されているので、上述したそれぞれ光線が物体に衝突した各位置で透過率関数Tが0になる収束解が得やすい、という効果を奏する。
【0091】
<変形例>
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例は組み合わされてもよい。
【0092】
<1>
上述した実施形態において、仮想画像生成システム9は、学習装置1、及びサーバ装置2をそれぞれ個別に有していたが、これらの一方が他方の機能を兼ねてもよい。例えば、サーバ装置2は、メモリ22に上述した視点画像DB120に相当する教師データを記憶してもよい。この場合、サーバ装置2のプロセッサ21は、この教師データに基づいて機械学習モデル221を学習させればよい。
【0093】
<2>
上述した実施形態においてプロセッサ11、及びプロセッサ21は、いずれもCPU又はGPUであったが、これらの両方が協同する構成であってもよいし、他の構成であってもよい。例えば、これらのプロセッサは、FPGA(Field Programmable Gate Array)であってもよいし、FPGAを含んでもよい。また、これらのプロセッサは、ASIC(Application Specific Integrated Circuit)、又は他のプログラマブル論理デバイスを有してもよい。
【0094】
<3>
上述した実施形態において端末4は、撮影された対象物の立体データを要求していたが、この対象物を撮影する仮想視点を指定して、その仮想視点から対象物を撮影した場合に得られる仮想画像を要求してもよい。この場合、サーバ装置2は、立体データ生成手段によって生成された立体データが示す仮想空間内の対象物を、指定された仮想視点から撮影した仮想画像をレンダリングによって生成して端末4に供給すればよい。
【0095】
図12は、変形例に係るサーバ装置2の機能的構成の例を示す図である。
図12に示すサーバ装置2のプロセッサ21は、
図8に示したプロセッサ21が実現する機能に加えて、仮想画像生成手段217を実現する。この仮想画像生成手段217は、立体データ生成手段214で生成された立体データを用いて仮想画像を生成する。
【0096】
この場合、受付手段215は、端末4から、仮想空間において対象物を撮影する仮想視点の指定を受け付ける。すなわち、この受付手段215は、端末から対象物を撮影する仮想視点の指定を受け付ける受付手段の例である。
【0097】
仮想画像生成手段217は、受付手段215により受け付けられた指定に基づいて、指定された仮想視点から立体データが示す対象物を撮影した場合の仮想画像を生成する。すなわち、この仮想画像生成手段217は、端末から受け付けた指定が示す仮想視点から、立体データ生成手段が生成した立体データにより示される対象物を撮影した場合に得られる仮想画像を生成する仮想画像生成手段の例である。
【0098】
そして、供給手段216は、生成された仮想画像を端末4に供給する。すなわち、この供給手段216は、端末から受け付けた指定に応じて仮想画像生成手段が生成した仮想画像を端末に供給する供給手段の例である。この場合においても、端末4は、撮影した対象物を指定した仮想視点から見た仮想画像を得ることができる。
【0099】
<4>
上述したプロセッサ11により実行されるプログラムは、コンピュータを、複数の視点と、該複数の視点のそれぞれから物体を撮影して得られる画像と、をそれぞれ対応付けた教師データを取得する取得手段と、仮想空間において、視点に対応する仮想視点から、物体に対応する仮想物体を撮影した場合に得られる仮想画像を、該仮想物体の背景にある背景点から該仮想物体を通過して仮想視点へ至る視線上の位置ごとの密度を含む機械学習モデルを用いて生成する生成手段と、仮想視点ごとに、生成された仮想画像と、該仮想視点に対応する視点から撮影された画像と、を比較して、機械学習モデルを学習させる学習手段、として機能させるとともに、背景点、及び仮想視点における密度がそれぞれ予め決められた定数になるように、機械学習モデルを拘束することを特徴とするプログラムとして観念される。
【0100】
また、上述したプロセッサ21により実行されるプログラムは、コンピュータを、複数の撮影点から対象物を撮影した撮影画像をそれぞれ取得する撮影画像取得手段と、撮影画像のそれぞれから抽出される特徴点に基づいて撮影点を推定する推定手段と、推定された撮影点と、該撮影点に対応する撮影画像と、プロセッサ11により実行されるプログラムにより学習装置において学習させられた機械学習モデルと、を用いて対象物の立体データを生成する立体データ生成手段、として機能させることを特徴とするプログラムとして観念される。
【符号の説明】
【0101】
1…学習装置、11…プロセッサ、111…取得手段、112…生成手段、113…学習手段、12…メモリ、120…視点画像DB、121…機械学習モデル、13…インタフェース、2…サーバ装置、21…プロセッサ、211…撮影画像取得手段、212…特徴点抽出手段、213…推定手段、214…立体データ生成手段、215…受付手段、216…供給手段、217…仮想画像生成手段、22…メモリ、221…機械学習モデル、222…撮影画像DB、23…インタフェース、3…通信回線、4…端末、5…カメラ、9…仮想画像生成システム。