(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-30
(45)【発行日】2024-08-07
(54)【発明の名称】プログラム、情報処理装置及び方法
(51)【国際特許分類】
G06T 19/00 20110101AFI20240731BHJP
H04N 13/275 20180101ALI20240731BHJP
【FI】
G06T19/00 A
H04N13/275
(21)【出願番号】P 2021007909
(22)【出願日】2021-01-21
【審査請求日】2024-01-09
【早期審査対象出願】
(73)【特許権者】
【識別番号】518032649
【氏名又は名称】電駆ビジョン株式会社
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】坂本 竜基
(72)【発明者】
【氏名】宮田 慎也
【審査官】益戸 宏
(56)【参考文献】
【文献】特開2014-032443(JP,A)
【文献】特開2014-002645(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06T 15/00
H04N 13/275
(57)【特許請求の範囲】
【請求項1】
プロセッサを備えるコンピュータに実行され、画像を生成するための方法であって、
前記方法は、前記プロセッサが、
被写体を異なる方向からカメラで撮影した前記画像と、前記被写体を模した3次元形状モデルと、を取得または生成するステップと、
前記被写体を撮影したときの焦点距離及び前記画像のサイズに基づく内部パラメータと、前記カメラの位置情報及び姿勢情報から算出された外部パラメータと、を取得または生成するステップと、
前記画像及び前記3次元形状モデルをレンダリングした画像を、前記被写体における同一の注視点に向けた画像として合わせ込むように、前記画像及び前記3次元形状モデルをレンダリングした画像をそれぞれ変換するために前記内部パラメータ及び前記外部パラメータに基づいてそれぞれ導出された射影変換行列に基づき、前記画像及び前記3次元形状モデルをレンダリングした画像の射影変換処理を行
い、前記射影変換処理がなされた前記画像と、前記3次元形状モデルをレンダリングして前記射影変換処理がなされた画像とを重畳して表示するステップと、を実行する、方法。
【請求項2】
前記射影変換処理を行うステップにおいて、前記3次元形状モデルをレンダリングした画像に対する射影変換処理に代えて、前記3次元形状モデルにおける仮想カメラの内部パラメータ及び方向を前記カメラと一致させる、請求項1に記載の方法。
【請求項3】
前記被写体の所定の位置から垂直方向に仮想的に配置した座標軸を回転軸として、前記被写体を複数の異なる方向から撮影した複数の前記画像を取得または生成し、
前記回転軸から
複数の前記カメラまでの
撮影時の距離を
用いて、前記3次元形状モデルに対するそれぞれの仮想カメラに適用するための新たな焦点距離
を決定し、前記内部パラメータ
を生成する、請求項1または請求項2に記載の方法。
【請求項4】
前記方法は、さらに、
複数の前記画像のうち、前記被写体を表示させるために不適切な画像を除外するステップを実行する、請求項1から請求項3のいずれか1項に記載の方法。
【請求項5】
前記方法は、さらに、
複数の前記画像の一部またはすべてに対して、所定の歪み補正を行うステップを実行する、請求項1から請求項4のいずれか1項に記載の方法。
【請求項6】
前記3次元形状モデルは、点群データ、ワイヤーフレームモデル、テクスチャ付きメッシュモデル及び頂点カラー付きメッシュモデルを含む前記被写体を写実表現するモデルとしてレンダリング可能である、請求項1から請求項5のいずれか1項に記載の方法。
【請求項7】
前記方法は、さらに、
前記画像、前記3次元形状モデルのいずれかまたは両方を生成するステップを実行させ、
前記画像と、前記3次元形状モデルと、を取得するステップにおいて、前記生成した前記画像、前記3次元形状モデルのいずれかまたは両方を取得する、請求項1から請求項6のいずれか1項に記載の方法。
【請求項8】
前記方法は、さらに、
前記射影変換処理がされた前記画像と、前記3次元形状モデルをレンダリングした画像とを切り替えて表示するステップと、を実行する、請求項1から請求項7のいずれか1項に記載の方法。
【請求項9】
前記方法は、さらに、
前記画像が表示された状態で、前記被写体の注視点を中心に前記被写体を回転させるステップを実行し、
前記画像と前記3次元形状モデルをレンダリングした画像とを切り替えて表示するステップにおいて、回転後の方向に対応する前記画像を表示する、請求項8に記載の方法。
【請求項10】
前記被写体と、前記3次元形状モデルをレンダリングした画像との位置が一致する状態で、前記画像と、前記3次元形状モデルをレンダリングした画像とを切り替えて表示する、請求項8または請求項9に記載の方法。
【請求項11】
前記画像と、前記3次元形状モデルをレンダリングした画像とをそれぞれ任意の透過度で重畳して表示し、回転後の方向に対応する前記画像を表示する、請求項9に記載の方法。
【請求項12】
回転後の方向までに含まれる前記画像を、対応する前記3次元形状モデルをレンダリングした画像と重畳し、前記回転の移動量に応じて前記画像を遷移させる、請求項11に記載の方法。
【請求項13】
回転後の方向までに対応する前記3次元形状モデルをレンダリングした画像に切り替えて表示させ、回転後の方向において前記画像に切り替えて表示する、請求項11または請求項12に記載の方法。
【請求項14】
前記画像を表示した状態で、前記被写体の注視点を中心に回転させる操作指示を受け付け、前記被写体の注視点を中心に回転させる、請求項11から請求項13のいずれか1項に記載の方法。
【請求項15】
回転後の方向の前記画像を表示するとき、対応する前記3次元形状モデルをレンダリングした画像を、前記画像に重なるようにクロスディゾルブさせて表示する、請求項11から請求項14のいずれか1項に記載の方法。
【請求項16】
前記方法は、さらに、
前記画像、前記3次元形状モデルをレンダリングした画像のいずれか一方または両方に対して、アノテーションを付加するステップを実行する、請求項8から請求項15のいずれか1項に記載の方法。
【請求項17】
制御部を備え、画像を生成する情報処理装置であって、
前記制御部は、
被写体を異なる方向からカメラで撮影した前記画像と、前記被写体を模した3次元形状モデルと、を取得または生成するステップと、
前記被写体を撮影したときの焦点距離及び前記画像のサイズに基づく内部パラメータと、前記カメラの位置情報及び姿勢情報から算出された外部パラメータと、を取得または生成するステップと、
前記画像及び前記3次元形状モデルをレンダリングした画像を、前記被写体における同一の注視点に向けた画像として合わせ込むように、前記画像及び前記3次元形状モデルをレンダリングした画像をそれぞれ変換するために前記内部パラメータ及び前記外部パラメータに基づいてそれぞれ導出された射影変換行列に基づき、前記画像及び前記3次元形状モデルをレンダリングした画像の射影変換処理を行
い、前記射影変換処理がなされた前記画像と、前記3次元形状モデルをレンダリングして前記射影変換処理がなされた画像とを重畳して表示するステップと、を実行する、情報処理装置。
【請求項18】
プロセッサを備えるコンピュータに実行させ、画像を生成するためのプログラムであって、
前記プログラムは、前記プロセッサに、
被写体を異なる方向からカメラで撮影した前記画像と、前記被写体を模した3次元形状モデルと、を取得または生成するステップと、
前記被写体を撮影したときの焦点距離及び前記画像のサイズに基づく内部パラメータと、前記カメラの位置情報及び姿勢情報から算出された外部パラメータと、を取得または生成するステップと、
前記画像及び前記3次元形状モデルをレンダリングした画像を、前記被写体における同一の注視点に向けた画像として合わせ込むように、前記画像及び前記3次元形状モデルをレンダリングした画像をそれぞれ変換するために前記内部パラメータ及び前記外部パラメータに基づいてそれぞれ導出された射影変換行列に基づき、前記画像及び前記3次元形状モデルをレンダリングした画像の射影変換処理を行
い、前記射影変換処理がなされた前記画像と、前記3次元形状モデルをレンダリングして前記射影変換処理がなされた画像とを重畳して表示するステップと、を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、情報処理装置及び方法に関する。
【背景技術】
【0002】
画像処理技術及びコンピュータ処理速度の向上により、フォトグラメトリや3Dスキャナの技術を利用して物体をリアルに3次元表示させる、3次元形状モデルを取得することが可能になっている。フォトグラメトリは、デジタルカメラで被写体を様々な角度から撮影した大量の画像から、被写体の3次元形状を推定する手法であり、近年では商用モデルも提供されている。
【0003】
一方、カメラで撮影した写真画像を立体的に表示させる手法についても各種の提案がされている。写真画像を立体的に表示させる手法として、レーザー距離計等で、撮影地点から対象物までの実距離を測定する方法、2台のカメラの視差情報から距離を計測する方法等により、撮影時に被写体を含むシーンの距離情報を取得する方法が提案されている。特許文献1には、距離情報を奥行き情報として利用した高画質化手法の技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、カメラで撮影した写真画像を立体的に表示させる手法として、3次元形状モデルをレンダリングした画像と共に(重畳させ、または切り替えて)表示させることで、視覚効果により立体的に表示させる手法がある。この手法では、写真画像の被写体と、3次元形状モデルをレンダリングした画像とを同一の注視点に向けた画像として合わせ込む必要がある。すなわち、写真画像の被写体と、3次元形状モデルをレンダリングした画像とを、同一の方向、同一の大きさの画像として正確に合わせ込み、重畳させ、または切り替えて表示させる必要があるが、このように正確に合わせ込むことは非常に困難なことであった。
【0006】
そこで、本開示では、写真画像の被写体と、3次元形状モデルをレンダリングした画像とを同一の注視点に向けた画像として合わせ込むことを可能にする技術について説明する。
【課題を解決するための手段】
【0007】
本開示の一実施形態によると、プロセッサを備えるコンピュータに実行され、画像を生成するための方法が提供される。方法は、プロセッサが、被写体を複数の異なる方向からカメラで撮影した画像と、被写体を模した3次元形状モデルと、を取得または生成するステップと、被写体を撮影したときの焦点距離及び画像のサイズに基づく内部パラメータと、カメラの位置情報及び姿勢情報から算出された外部パラメータと、を取得または生成するステップと、画像及び3次元形状モデルをレンダリングした画像を、被写体における同一の注視点に向けた画像として合わせ込むように、画像及び3次元形状モデルをレンダリングした画像をそれぞれ変換するために内部パラメータ及び外部パラメータに基づいてそれぞれ導出された射影変換行列に基づき、画像及び3次元形状モデルをレンダリングした画像の射影変換処理を行うステップと、を実行する。
【0008】
本開示の一実施形態によると、制御部を備え、画像を生成する情報処理装置が提供される。制御部は、被写体を複数の異なる方向からカメラで撮影した画像と、被写体を模した3次元形状モデルと、を取得または生成するステップと、被写体を撮影したときの焦点距離及び画像のサイズに基づく内部パラメータと、カメラの位置情報及び姿勢情報から算出された外部パラメータと、を取得または生成するステップと、画像及び3次元形状モデルをレンダリングした画像を、被写体における同一の注視点に向けた画像として合わせ込むように、画像及び3次元形状モデルをレンダリングした画像をそれぞれ変換するために内部パラメータ及び外部パラメータに基づいてそれぞれ導出された射影変換行列に基づき、画像及び3次元形状モデルをレンダリングした画像の射影変換処理を行うステップと、を実行する。
【0009】
また、一実施形態によると、プロセッサを備えるコンピュータに実行させ、画像を生成するためのプログラムが提供される。プログラムは、プロセッサに、被写体を複数の異なる方向からカメラで撮影した画像と、被写体を模した3次元形状モデルと、を取得または生成するステップと、被写体を撮影したときの焦点距離及び画像のサイズに基づく内部パラメータと、カメラの位置情報及び姿勢情報から算出された外部パラメータと、を取得または生成するステップと、画像及び3次元形状モデルをレンダリングした画像を、被写体における同一の注視点に向けた画像として合わせ込むように、画像及び3次元形状モデルをレンダリングした画像をそれぞれ変換するために内部パラメータ及び外部パラメータに基づいてそれぞれ導出された射影変換行列に基づき、画像及び3次元形状モデルをレンダリングした画像の射影変換処理を行うステップと、を実行させる。
【発明の効果】
【0010】
本開示によれば、被写体を複数の異なる方向からカメラで撮影した画像、被写体を模した3次元形状モデルをレンダリングした画像のいずれかまたは両方に対して射影変換処理を行う。これにより、撮影画像の被写体と、3次元形状モデルをレンダリングした画像とを同一の注視点に向けた画像として合わせ込むことが可能になる。
【図面の簡単な説明】
【0011】
【
図1】立体画像表示システム1の全体の構成を示す図である。
【
図2】実施の形態1の立体画像表示システム1を構成する端末装置10の機能的な構成を示すブロック図である。
【
図3】実施の形態1の立体画像表示システム1を構成するサーバ20の機能的な構成を示す図である。
【
図4】実施の形態1の立体画像表示システム1による画像撮影の例を示す図である。
【
図5】実施の形態1の立体画像表示システム1による画像と3次元形状モデルとの重畳の例を示す図である。
【
図6】サーバ20が記憶する撮影画像データベース2021のデータ構造を示す図である。
【
図7】サーバ20が記憶する3Dモデルデータベース2022のデータ構造を示す図である。
【
図8】実施の形態1の立体画像表示システム1による画像処理を行う流れの一例を示すフローチャートである。
【
図9】実施の形態1の立体画像表示システム1による画像の立体表示処理を行う流れの一例を示すフローチャートである。
【
図10A】撮影画像とレンダリング画像とを切り替えて表示する例を示す図である。
【
図10B】撮影画像とレンダリング画像とを切り替えて表示する例を示す図である。
【
図10C】撮影画像とレンダリング画像とを切り替えて表示する例を示す図である。
【
図10D】撮影画像とレンダリング画像とを切り替えて表示する例を示す図である。
【
図12】実施の形態1の変形例1の立体画像表示システム1を構成する端末装置10の機能的な構成を示すブロック図である。
【
図13】実施の形態1の変形例1の立体画像表示システム1を構成するサーバ20の機能的な構成を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照しつつ、本開示の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0013】
<概要>
以下、本開示に係る立体画像表示システムについて説明する。この立体画像表示システムは、例えばフォトグラメトリにより復元された3次元形状モデルを利用するシステムであり、ある被写体を、さまざまな位置から撮影した複数の画像と、当該被写体を模した3次元形状モデルを撮影視点に対応した仮想視点位置においてレンダリングされた画像とを重ね合わせて表示し、当仮想視点を動かした際に、切り替え、もしくは、連続的に透過度を変更させて表示することで、視覚効果により立体的に表示させるためのシステムである。ここで、3次元形状モデルとは、例えば被写体の3次元空間における位置情報を点の集合体で表現した点群データ、もしくは直線の集合体で表現したワイヤーフレームモデル、または被写体を写実的に表現することが可能なモデル(例えば、テクスチャ付きメッシュモデル、または頂点カラー付きメッシュモデル)である。
【0014】
図10A~
図10Dは、このような被写体を撮影した画像(撮影画像)と、3次元形状モデルをレンダリングした画像(レンダリング画像)とを切り替えて表示する例を示す図である。本開示に係る立体画像表示システムでは、まず、立体表示させる対象物として、
図10Aに示すような被写体C1と、背景Bを含む撮影画像G0を取得する(図示は省略)。このような画像を、被写体C1の周囲を囲うように複数の視点(アングル)から撮影を行う。また、このような被写体C1を模した3次元形状モデルを取得する。さらに、撮影画像G0を後述する、撮影した三次元位置から注視点へ向いて撮影したかのような画像へと変換する射影変換処理をおこない、画像G1を生成する。
【0015】
次に、このような画像G1を表示した状態において、ユーザから、例えば
図10Bに示すようなマウスポインタMに対して、ドラッグする操作の前提となるクリックを長押し(クリックロック)する操作を受け付ける。この操作に応答して、画像G1の一部である被写体C1を、被写体C1を模した3次元形状モデルを同一の方向からレンダリングしたレンダリング画像C2に切り替えて表示する。このとき、被写体C1及びレンダリング画像C2を、任意の透過度で表示する。例えば、被写体C1の透過度を徐々に大きく、レンダリング画像C2の透過度を徐々に小さくして表示することで、被写体C1からレンダリング画像C2へ徐々に切り替わるように表示してもよい。さらに、後述するようなクロスディゾルブにより、被写体C1からレンダリング画像C2へ徐々に切り替わるように表示してもよい。なお、背景Bは、画像G1に撮影された状態そのままに表示してもよく、レンダリング画像C2に切り替えて表示する際に表示しないように制御してもよく、後述するようなクロスディゾルブにより徐々に表示しないように制御してもよい。さらに、
図10Cに示すように、マウスポインタMに対して矢印X1方向へドラッグする操作を受け付ける。この操作に応答して、レンダリング画像C2を、矢印X2方向へ回転させて表示する。このとき、視覚的にレンダリング画像C2が回転しているように表示するため、3次元形状モデルのレンダリング方向を少しずつ移動させて連続的に表示させる。このときも上記同様に、被写体C1及びレンダリング画像C2を、任意の透過度で表示する。例えば、被写体C1の透過度を徐々に大きく、レンダリング画像C2の透過度を徐々に小さくして表示することで、被写体C1からレンダリング画像C2へ徐々に切り替わるように表示してもよい。さらに、後述するようなクロスディゾルブにより、被写体C1からレンダリング画像C2へ徐々に切り替わるように表示してもよい。また、背景Bは、画像G1に撮影された状態そのままに表示してもよく、レンダリング画像C2に切り替えて表示する際に表示しないように制御してもよく、後述するようなクロスディゾルブにより徐々に表示しないように制御してもよい。
【0016】
その後、ユーザがマウスポインタMに対するドラッグを終了すると、
図10Dに示すように、回転させた状態のレンダリング画像C2の方向に対応する被写体C1が撮影された画像G1を表示させる。このように表示することで、ユーザに対して被写体の特定視点における完全な姿を印象付け、視点を動かした状態でレンダリングされた3次元形状モデルを表示する。これにより、ユーザは、元の完全な姿である被写体から出発して3次元形状モデルを見ることになるので、視覚効果により完全な状態、すなわち立体的な形状を想像しやすくなる。なお、レンダリング画像を連続的に表示する際、前後のレンダリング画像が重なるようにフェードイン及びフェードアウトさせて表示する(クロスディゾルブ)ことで、さらに視覚効果が高まる。
【0017】
本開示に係る立体画像表示システムは、このような視覚効果により、被写体をより立体的に表示させるためのシステムであり、そのために画像G1と3次元形状モデルをレンダリングした画像とを正確に合わせ込むため射影変換処理を行っている。
【0018】
<第1の実施の形態>
以下、立体画像表示システム1について説明する。以下の説明では、例えば、端末装置10がサーバ20へアクセスすることにより、サーバ20が、端末装置10で画面を生成するための情報を応答する。端末装置10は、サーバ20から受信した情報に基づいて画面を生成し表示する。なお、本開示に係る立体画像表示は、単一のコンピュータによる構成(スタンドアローン)でも実現可能であるが、本実施形態では、上記のような立体画像表示システム1の構成を例として説明する。
【0019】
<1 立体画像表示システム1の全体構成>
図1は、立体画像表示システム1の全体の構成を示す図である。
図1に示すように、立体画像表示システム1は、複数の端末装置(
図1では、端末装置10Aおよび端末装置10Bを示している。以下、総称して「端末装置10」ということもある)と、サーバ20とを含む。端末装置10とサーバ20とは、ネットワーク80を介して相互に通信可能に接続されている。ネットワーク80は、有線または無線ネットワークにより構成される。
【0020】
端末装置10は、各ユーザが操作する装置である。ここで、ユーザとは、端末装置10を使用して立体画像表示システム1の機能である立体的に表示される撮影画像及びレンダリング画像を参照する者である。端末装置10は、据え置き型のPC(Personal Computer)、ラップトップPC等により実現される。この他、端末装置10は、例えば移動体通信システムに対応したタブレットや、スマートフォン等の携帯端末であるとしてもよい。
【0021】
端末装置10は、ネットワーク80を介してサーバ20と通信可能に接続される。端末装置10は、4G、5G、LTE(Long Term Evolution)等の通信規格に対応した無線基地局81、IEEE(Institute of Electrical and Electronics Engineers)802.11等の無線LAN(Local Area Network)規格に対応した無線LANルータ82等の通信機器と通信することにより、ネットワーク80に接続される。
図1に端末装置10Bとして示すように、端末装置10は、通信IF(Interface)12と、入力装置13と、出力装置14と、メモリ15と、記憶部16と、プロセッサ19とを備える。
【0022】
通信IF12は、端末装置10が外部の装置と通信するため、信号を入出力するためのインタフェースである。入力装置13は、ユーザからの入力操作を受け付けるための入力装置(例えば、キーボードや、タッチパネル、タッチパッド、マウス等のポインティングデバイス等)である。出力装置14は、ユーザに対し情報を提示するための出力装置(ディスプレイ、スピーカ等)である。メモリ15は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。記憶部16は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ19は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【0023】
サーバ20は、ある被写体について撮影方向を動かして撮影した複数の画像の情報、及び当該被写体を模した3次元形状モデルの情報を管理する装置である。サーバ20は、ユーザに対して、ある被写体を撮影した画像を掲示し、端末装置10から回転させる操作を受け付ける。サーバ20は、回転させる操作に対応して、3次元形状モデルをレンダリングした画像を切り替えて連続的に、端末装置10に表示させる。
【0024】
サーバ20は、ネットワーク80に接続されたコンピュータである。サーバ20は、通信IF22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備える。
【0025】
通信IF22は、サーバ20が外部の装置と通信するため、信号を入出力するためのインタフェースである。入出力IF23は、ユーザからの入力操作を受け付けるための入力装置、および、ユーザに対し情報を提示するための出力装置とのインタフェースとして機能する。メモリ25は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。ストレージ26は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ29は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【0026】
<1.1 端末装置10の構成>
図2は、実施の形態1の立体画像表示システム1を構成する端末装置10の機能的な構成を示すブロック図である。
図2に示すように、端末装置10は、複数のアンテナ(アンテナ111、アンテナ112)と、各アンテナに対応する無線通信部(第1無線通信部121、第2無線通信部122)と、操作受付部130(キーボード131およびマウス132を含む)と、音声処理部140と、マイク141と、スピーカ142と、ディスプレイ150と、記憶部160と、制御部170とを含む。端末装置10は、
図2では特に図示していない機能及び構成(例えば、電力を保持するためのバッテリー、バッテリーから各回路への電力の供給を制御する電力供給回路等)も有している。
図2に示すように、端末装置10に含まれる各ブロックは、バス等により電気的に接続される。
【0027】
アンテナ111は、端末装置10が発する信号を電波として放射する。また、アンテナ111は、空間から電波を受信して受信信号を第1無線通信部121へ与える。
【0028】
アンテナ112は、端末装置10が発する信号を電波として放射する。また、アンテナ112は、空間から電波を受信して受信信号を第2無線通信部122へ与える。
【0029】
第1無線通信部121は、端末装置10が他の無線機器と通信するため、アンテナ111を介して信号を送受信するための変復調処理等を行う。第2無線通信部122は、端末装置10が他の無線機器と通信するため、アンテナ112を介して信号を送受信するための変復調処理等を行う。第1無線通信部121と第2無線通信部122とは、チューナー、RSSI(Received Signal Strength Indicator)算出回路、CRC(Cyclic Redundancy Check)算出回路、高周波回路等を含む通信モジュールである。第1無線通信部121と第2無線通信部122とは、端末装置10が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部170へ与える。
【0030】
操作受付部130は、ユーザの入力操作を受け付けるための機構を有する。具体的には、操作受付部130は、キーボード131と、マウス132とを含む。なお、操作受付部130は、例えば静電容量方式のタッチパネルを用いることによって、タッチパネルに対するユーザの接触位置を検出する、タッチスクリーンとして構成してもよい。
【0031】
キーボード131は、端末装置10のユーザの入力操作を受け付ける。キーボード131は、文字入力を行う装置であり、入力された文字情報を入力信号として制御部170へ出力する。
【0032】
マウス132は、端末装置10のユーザの入力操作を受け付ける。マウス132は、ディスプレイ150に表示されている表示物を選択等するためのポインティングデバイスであり、画面上で選択された位置情報と、ボタン押下されていることを示す情報とを入力信号として制御部170へ出力する。
【0033】
音声処理部140は、音声信号の変復調を行う。音声処理部140は、マイク141から与えられる信号を変調して、変調後の信号を制御部170へ与える。また、音声処理部140は、音声信号をスピーカ142へ与える。音声処理部140は、例えば音声処理用のプロセッサによって実現される。マイク141は、音声入力を受け付けて、当該音声入力に対応する音声信号を音声処理部140へ与える。スピーカ142は、音声処理部140から与えられる音声信号を音声に変換して当該音声を端末装置10の外部へ出力する。
【0034】
ディスプレイ150は、制御部170の制御に応じて、画像、動画、テキスト等のデータを表示する。ディスプレイ150は、例えばLCD(Liquid Crystal Display)や有機EL(Electro-Luminescence)ディスプレイによって実現される。
【0035】
記憶部160は、例えばフラッシュメモリ等により構成され、端末装置10が使用するデータおよびプログラムを記憶する。ある局面において、記憶部160は、ユーザ情報161を記憶する。
【0036】
ユーザ情報161は、端末装置10を使用して立体画像表示システム1の機能である立体的に表示される撮影画像及びレンダリング画像を参照するユーザの情報である。ユーザ情報としては、ユーザを識別する情報(ユーザID)、ユーザの氏名または名称等の情報が含まれる。
【0037】
制御部170は、記憶部160に記憶されるプログラムを読み込んで、プログラムに含まれる命令を実行することにより、端末装置10の動作を制御する。制御部170は、例えば予め端末装置10にインストールされているアプリケーションである。制御部170は、プログラムに従って動作することにより、入力操作受付部171と、送受信部172と、データ処理部173と、通知制御部174としての機能を発揮する。
【0038】
入力操作受付部171は、キーボード131等の入力装置に対するユーザの入力操作を受け付ける処理を行う。
【0039】
送受信部172は、端末装置10が、サーバ20等の外部の装置と、通信プロトコルに従ってデータを送受信するための処理を行う。
【0040】
データ処理部173は、端末装置10が入力を受け付けたデータに対し、プログラムに従って演算を行い、演算結果をメモリ等に出力する処理を行う。
【0041】
通知制御部174は、ユーザに対し情報を提示する処理を行う。通知制御部174は、表示画像をディスプレイ150に表示させる処理、音声をスピーカ142に出力させる処理等を行う。
【0042】
<1.2 サーバ20の機能的な構成>
図3は、実施の形態1の立体画像表示システム1を構成するサーバ20の機能的な構成を示す図である。
図3に示すように、サーバ20は、通信部201と、記憶部202と、制御部203としての機能を発揮する。
【0043】
通信部201は、サーバ20が外部の装置と通信するための処理を行う。
【0044】
記憶部202は、サーバ20が使用するデータ及びプログラムを記憶する。記憶部202は、撮影画像データベース2021と、3Dモデルデータベース2022等を記憶する。
【0045】
撮影画像データベース2021は、立体画像表示システム1において、ある被写体について視点を動かして撮影した複数の画像の情報を保持するためのデータベースである。詳細は後述する。
【0046】
3Dモデルデータベース2022は、立体画像表示システム1において、ある被写体を模した3次元形状モデルの情報を保持するためのデータベースである。3Dモデルデータベース2022は、3次元形状モデルとして、例えば頂点情報や面の情報、法線、UVマップ、頂点カラーの情報等を保持する。
【0047】
制御部203は、サーバ20のプロセッサがプログラムに従って処理を行うことにより、各種モジュールとして受信制御モジュール2031、送信制御モジュール2032、撮影画像取得モジュール2033、3Dモデル取得モジュール2034、画像処理モジュール2035、回転操作受付モジュール2036、及び画像表示モジュール2037に示す機能を発揮する。
【0048】
受信制御モジュール2031は、サーバ20が外部の装置から通信プロトコルに従って信号を受信する処理を制御する。
【0049】
送信制御モジュール2032は、サーバ20が外部の装置に対し通信プロトコルに従って信号を送信する処理を制御する。
【0050】
撮影画像取得モジュール2033は、ある被写体について、異なる方向からカメラで撮影した画像を取得する処理を制御する。撮影画像取得モジュール2033が取得する複数の画像は、例えば、被写体の周囲を囲うように、複数の異なる視点(アングル)からカメラで撮影を行った撮影画像である。なお、撮影画像取得モジュール2033は、端末装置10または他のカメラ等により撮影した画像を取得してもよい。
【0051】
なお、撮影画像取得モジュール2033は、取得した画像に対して、歪み補正を行ってもよく、撮影した装置(後述する
図4に示すカメラC11~C16)が歪み補正を行った画像を取得してもよい。
【0052】
3Dモデル取得モジュール2034は、撮影画像取得モジュール2033が取得した撮影画像の被写体を模した3次元形状モデルを取得する処理を制御する。なお、3Dモデル取得モジュール2034は、他の装置等により生成した3次元形状モデルを取得してもよく、フォトグラメトリ等の手段によって、撮影画像取得モジュール2033が取得した撮影画像から被写体の3次元形状モデルを生成してもよい。
【0053】
3Dモデル取得モジュール2034が取得または生成する3次元形状モデルは、具体的には、被写体の3次元形状を、レーザー・赤外光等による3Dスキャナにより取得、もしくはフォトグラメトリなどにより3次元形状が復元された、当該被写体の3次元形状を模したモデル(3次元形状モデル)の情報である。この3次元形状モデルは、例えば、多数の頂点座標からなる点群データ、もしくはこれらの点を線が結ばれて表現されたワイヤーフレーム、または、テクスチャ付きメッシュモデル、もしくは頂点カラー付きメッシュモデルなどで、レンダリングできるモデルのことである。
【0054】
なお、3Dモデル取得モジュール2034が取得または生成する3次元形状モデルは、撮影画像取得モジュール2033が取得した画像における、対象となる一部の被写体に対応するモデル情報でもよい。
【0055】
画像処理モジュール2035は、撮影画像取得モジュール2033が取得した画像の被写体を撮影したときの、焦点距離、及び画像のサイズに基づく内部パラメータと、カメラの位置情報、及び姿勢情報から算出された外部パラメータとを取得または生成する処理を制御する。内部パラメータ及び外部パラメータは、3Dモデル取得モジュール2034が取得または生成する3次元形状モデルがフォトグラメトリによって生成された場合は、そのフォトグラメトリの処理過程で取得可能なパラメータである。また、3Dモデル取得モジュール2034が取得または生成する3次元形状モデルが、別途3Dスキャナ等により、生成されたものの場合は、撮影画像取得モジュール2033が取得した画像群をStructure from Motionなどの技術により強校正(ストロングキャリブレーション)をおこない、内部パラメータと外部パラメータを推定しておく。詳細は後述する。
【0056】
また、画像処理モジュール2035は、内部パラメータ及び外部パラメータに基づき、撮影画像を被写体の注視点に向けた画像として変換するための射影変換行列を導出する処理を制御する。詳細は後述するが、他の装置等により導出された射影変換行列を取得してもよい。
【0057】
さらに、画像処理モジュール2035は、射影変換行列に基づき、撮影画像取得モジュール2033が取得した撮影画像に対する射影変換処理を制御する。画像処理モジュール2035が行う射影変換処理は、撮影画像の被写体とレンダリング画像とを正確に合わせ込むために行う処理である。なお、画像処理モジュール2035は、射影変換行列に基づき、3Dモデル取得モジュール2034が取得した3次元形状モデルをレンダリングした画像に対する射影変換処理を行ってもよい。詳細は後述する。
【0058】
なお、画像処理モジュール2035は、射影変換行列に基づき、被写体を表示させるために不適切な画像を除外してもよい。例えば、画像処理モジュール2035は、射影変換処理の結果、撮影画像内に被写体が残っていない画像や、被写体が極端に小さくなってしまう画像等を、不適切な画像として除外してもよい。
【0059】
画像処理モジュール2035が行う射影変換処理について、
図4を用いて説明する。
図4は、実施の形態1の立体画像表示システム1による画像撮影の例を示す図である。
図4に示す例では、被写体の例である人物Pを取り囲む6箇所の視点位置にそれぞれ設置された、6台のカメラC11~C16を同時に用いて人物Pを撮影する場合の例示的なカメラ配置が図示されている。6台のカメラC11~C16は、例えば、人物Pの周囲に配置され、カメラC11~C16からそれぞれ異なる方向(アングル)である軸E11~E16が示す方向に向けて人物Pを撮影するように配置される。そして、カメラC11~C16により、撮影が行われる。
【0060】
ここで、本実施形態の画像表示を実現するためには、カメラC11~C16を、人物P中の所定の位置である注視点までの距離が等しくなるように、かつ、軸E11~E16がその注視点を通過するように配置するのが望ましい。よって、実際には、
図4に示すようにカメラC11~C16は、人物P中の所定の位置である注視点までの距離は等しくなく、軸E11~E16が注視点を通過するように撮影されることはない。そのため、実際のカメラの配置が
図4に示すように特定の位置を通過しない配置であっても、画像処理モジュール2035が行う射影変換処理により、あたかもカメラが所定の位置である注視点までの距離が等しくなるように撮影したような画像として取得または生成することを可能にしている。さらに、この射影変換処理された画像における被写体と被写体の3次元形状モデルが合致するようにレンダリングされた画像を取得または生成することを可能にしている。なお、
図4では、カメラC11~C16を同一平面上に配置しているが、実際のカメラの配置は、高さ方向(
図4の紙面に対する垂直方向)も異なってもよく、人物Pを異なる仰角・俯角で撮影した画像であってもよい。
【0061】
回転操作受付モジュール2036は、注視点を中心に被写体を回転させたかのような結果画像を生成するための、ユーザの回転指示に対応する次の時間における仮想視点の位置姿勢を決定する処理をする。ユーザは、端末装置10を操作してサーバ20にアクセスし、射影変換処理が行われた撮影画像をディスプレイ150に表示させる。この状態でユーザは、画像上で、例えばマウス132でポインタを左右に移動させるドラッグ操作を行い、被写体を回転させるように指示する操作を行う。端末装置10の送受信部172からマウス132の移動量及び移動方向を受信すると、回転操作受付モジュール2036は、マウス132の移動量から被写体の回転量(回転角度)及び回転方向を判定し、その回転量及び回転方向に合わせて3DCGにおける仮想視点の位置と姿勢を決定する。この仮想視点の位置と姿勢は、撮影画像取得モジュール2033が取得した、現在の画像とは別の画像に対応する外部パラメータから計算可能な位置と姿勢であってもよい。なお、回転操作受付モジュール2036は、画像処理モジュール2035により射影変換処理が行われた撮影画像が端末装置10に表示されている状態で、ユーザによる指示ではなく自動的に生成された回転指示を受け付けて同様の処理をさせてもよい。
【0062】
画像表示モジュール2037は、画像処理モジュール2035により射影変換処理が行われた撮影画像を端末装置10に表示させるか、回転操作受付モジュール2036による処理の結果、別の仮想視点の位置に移動した結果を端末装置10に表示させる処理を制御する。画像表示モジュール2037は、ユーザが端末装置10を操作してサーバ20にアクセスしたとき、複数の異なる視点(アングル)ごとに撮影した撮影画像の中から、あらかじめ初期状態に表示するものと設定された画像を射影変換した画像を、端末装置10に表示させる。その後、回転操作受付モジュール2036により受け付けた回転量に応じて決定された次の仮想視点における適切な結果画像を表示させる。この仮想視点における結果画像は、撮影画像取得モジュール2033が取得した、現在の画像とは別の画像に対応する外部パラメータから計算可能な位置と姿勢である場合は、
図10Bのように画像処理モジュール2035により射影変換処理が行われた撮影画像とレンダリング画像とが適切な透過度で重畳、もしくは片方のみが表示され、もし、それ以外の仮想視点の位置に決定された場合は、その仮想視点の3次元位置から注視点方向に向いた仮想視点から3次元形状モデルをレンダリングした結果の画像を表示させる。
【0063】
回転操作受付モジュール2036が決めた、ユーザからの操作の結果決定された次の仮想視点の位置が、撮影画像取得モジュール2033が取得した画像に対応する外部パラメータから計算可能な位置と一致しない場合において、ユーザが回転指示を終えた場合、その仮想視点の位置姿勢から、任意の撮影画像取得モジュール2033が取得した画像に対応する位置姿勢に遷移させてもよい。その場合は、元の位置姿勢から、終着点の位置姿勢までをSpherical Linear Interpolation(Slerp)などの手法で補間して、徐々に移動させてもよい。
【0064】
図5は、画像表示モジュール2037が表示させる、実施の形態1の立体画像表示システム1による撮影画像とレンダリング画像との重畳の例を示す図である。
図5に示す例では、撮影画像取得モジュール2033による画像の被写体として戦闘機(ゼロ戦)が撮影されている。この被写体である戦闘機に対して、3次元形状モデルの例として、戦闘機の形状を模して生成されたワイヤーフレームの当該方向へのレンダリング画像が重畳されている。
【0065】
画像表示モジュール2037は、各画像を重畳させる際、射影変換後の撮影画像と、レンダリング画像との透過率を決定して重畳画像を生成する。視覚効果により重畳画像を立体的に表示させるために適した透過率が決定される。
【0066】
また、画像表示モジュール2037は、回転操作受付モジュール2036の結果、射影変換後の撮影画像とレンダリング画像とを重畳させて表示させる際、例えば仮想視点が変わるごとに透過率を変化させてフェードイン及びフェードアウトさせる、いわゆるクロスディゾルブまたはクロスフェードと呼ばれる表示効果により、端末装置10に表示させる。
【0067】
<2 データ構造>
図6は、サーバ20が記憶する撮影画像データベース2021のデータ構造を示す図である。
図7は、サーバ20が記憶する3Dモデルデータベース2022のデータ構造を示す図である。
【0068】
図6に示すように、撮影画像データベース2021のレコードのそれぞれは、項目「被写体ID」と、項目「被写体」と、項目「撮影情報詳細」等を含む。
【0069】
項目「被写体ID」は、立体画像表示システム1にて立体表示させる対象物である、被写体それぞれを識別する情報である。
【0070】
項目「被写体」は、立体画像表示システム1にて立体表示させる対象物である、被写体の名称を示す情報である。当該被写体を端末装置10に表示させる場合等に使用される項目であり、必須の項目ではない。
【0071】
項目「撮影情報詳細」は、立体画像表示システム1にて立体表示させる画像を撮影したときの撮影条件に関する情報であり、具体的には、項目「外部パラメータ」と、項目「内部パラメータ」と、項目「画像データ」と、項目「日時」等を含む。
【0072】
項目「外部パラメータ」は、画像処理モジュール2035が取得または生成した、カメラの位置情報及び姿勢情報から算出されたパラメータであり、
図6に示すように、例えば縦3×横4の行列で表される。
【0073】
項目「内部パラメータ」は、画像処理モジュール2035が取得または生成した、画像の被写体を撮影したときの、焦点距離、及び画像のサイズに基づくパラメータであり、
図6に示すように、例えば縦3×横3の行列で表される。
【0074】
項目「画像データ」は、画像を撮影したときの撮影データの情報であり、ビットマップ方式等の画像データである。画像データそのものがバイナリデータ等で格納されてもよく、画像データが格納されているサーバ20または他の装置へのリンク情報が格納されてもよい。
【0075】
項目「日時」は、画像を撮影したときの日付及び時間を示す情報である。
【0076】
サーバ20の撮影画像取得モジュール2033は、撮影した画像を取得することに伴って、撮影画像データベース2021を更新する。
【0077】
3Dモデルデータベース2022のレコードのそれぞれは、項目「被写体ID」と、項目「モデルデータ」等を含む。
【0078】
項目「被写体ID」は、立体画像表示システム1にて立体表示させる対象物である、被写体それぞれを識別する情報であり、撮影画像データベース2021の項目「被写体ID」に対応している。
【0079】
項目「モデルデータ」は、立体画像表示システム1にて立体表示させる対象物である、被写体を模した3次元形状モデルの情報である。3次元モデルデータそのものがバイナリデータ等で格納されてもよく、3次元モデルデータが格納されているサーバ20または他の装置へのリンク情報が格納されてもよい。
【0080】
サーバ20の3Dモデル取得モジュール2034は、3次元形状モデルを取得することに伴って、3Dモデルデータベース2022を更新する。
【0081】
<3 動作>
以下、
図8及び
図9を参照しながら、第1の実施の形態における立体画像表示システム1による画像処理及び画像の立体表示処理について説明する。
【0082】
図8は、実施の形態1の立体画像表示システム1による画像処理を行う流れの一例を示すフローチャートである。
【0083】
ステップS111において、サーバ20の撮影画像取得モジュール2033は、立体画像表示システム1にて立体表示させる対象物である被写体について、複数の異なる方向から撮影した画像を取得する。例えば、
図4に示すカメラC11~C16から、通信部201を介して受信することにより取得する。撮影画像取得モジュール2033は、取得した写真画像を撮影画像データベース2021へ格納する。
【0084】
ステップS112において、サーバ20の3Dモデル取得モジュール2034は、立体画像表示システム1にて立体表示させる対象物である被写体を模した3次元形状モデル、例えば点群データ、ワイヤーフレーム、メッシュモデルとしてレンダリング可能なデータを取得する。なお、実際にレンダリングする際はメッシュモデルをワイヤーフレームとしてレンダリングする、メッシュモデルを点群データでレンダリングするなどもありうる。3Dモデル取得モジュール2034は、取得した3次元形状モデルを3Dモデルデータベース2022へ格納する。このとき、3Dモデル取得モジュール2034は、認知的にみて自然な3次元形状モデルの直上方向を直行基底の1軸(例えばZY軸)となるように,3次元形状モデルを回転させておく。以下、この座標系をワールド座標系と呼び、これが右手座標系であることを前提として説明する。
【0085】
ステップS113において、サーバ20の画像処理モジュール2035は、撮影した画像の焦点距離と、当該画像データの画像サイズから計算された内部パラメータを取得する。この内部パラメータは、撮像装置C(k)(1≦k≦K)の各々を強校正して求められる行列である。また、サーバ20の画像処理モジュール2035は、撮影した画像それぞれが撮影された際のカメラの位置姿勢を示す外部パラメータを取得する。この外部パラメータは、撮像装置C(k)(1≦k≦K)の位置と姿勢を示すデータである。この内部パラメータ及び外部パラメータは、フォトグラメトリの処理過程で取得可能である。これらのパラメータにおける座標系は、上記のワールド座標系で表現されているものとする。なお、フォトグラメトリ以外でスキャンした3次元形状モデルを得た上で、多視点画像で同一の被写体を撮影した画像群を別途Structure from Motion等の手法をもちいて強校正(ストロングキャリブレーション)し、内部パラメータと外部パラメータを得た場合は、例えば互いの座標系のなかで対応する対応点を4点以上与えれば、片方を他方に変換する変換行列を導出することができる。これにより、両者を一致させることができる。よって、このようにした場合は、片方のすべての座標やパラメータをもう片方に変換し、両者の座標系を一致させておく。
【0086】
ワールド座標系で、3次元形状モデルを閲覧するための中心位置(注視点Gとする)と、仮想カメラの焦点距離(fとする)を決定する。中心位置Gは、例えば、3次元形状モデルの重心、またはワールド座標系の原点としてもよいが、入力画像群の光軸が集中する箇所から選択すると、後に利用できる画像の枚数が多くなるので望ましい。同様に、焦点距離fも、入力画像群の焦点距離の平均値、中央値、最低値等にあわせると、利用できる画像が多くなるので望ましい。具体的には、k番目の画像を撮影したカメラの焦点距離f
k、画像の中心を(u0
k,v0
k)としたときの内部パラメータを表す行列は、以下のようなA
kとなる。
【数1】
【0087】
この時、求めたいfをf
average、全画像の枚数をNとすると、以下のようになる。
【数2】
ここではfを平均値として算出した例を挙げたが、画像群の焦点距離と大きく相違ない場合には、任意の値、例えば最大値、最小値、中央値であってもよい。
【0088】
ステップS114において、サーバ20の画像処理モジュール2035は、ステップS111で取得した撮影画像に対して、上記の内部パラメータA
kと、外部パラメータにおける回転成分R
kと、中心位置Gと、焦点距離fとから、それぞれの画像を、中心位置Gに仮想的に向けたかのような画像に変換する、射影変換行列H
´
k(1≦k≦N)を、それぞれの画像に対して導出する。
【数3】
ここで、A
k
-1はA
kの逆行列、R
k
-1はR
kの逆行列を表す。A
´
kは、例えば、上記のようにfをfの平均(f
average)とした場合における、A
kの行列の要素のうち、f
kの部分が以下のようなf
´
kになったものである。
【数4】
ここで、C
kはk番目の画像を撮影したカメラの光学中心の3次元位置、|V|はベクトルVのL2ノルムである。また、z
averageは以下ように導出できる。
【数5】
なお、このz
averageは、必ずしもこの定義である必要はなく、任意の正の実数でよいが、認知的に画像の見た目を揃えたい場合、上記定義や、任意のカメラの3次元位置と中心位置Gとの距離としたほうが望ましい。例えば、fをf
averageで求めたような平均値ではなく、中央値だとした場合、その中央値として採用したカメラの光学中心の位置と中心位置Gとの距離とすればよい。
【0089】
また、R
´
kは、k番目の画像を撮影したカメラの光学中心から中心位置Gへのベクトルをe
zとした場合、それと何らかの方法で求めたベクトルe
2yとの外積からe
xを求めたうえで、そのe
zとe
xの外積からe
2yを求め、それぞれの単位ベクトルを横ベクトルとして、以下のように縦に積み上げた3×3の行列である。
【数6】
ここで、e
2yの求め方もe
zと独立していれば任意のベクトルで問題ないが、複数の射影変換を行った画像を切り替える場合は、すべての画像を撮影したそれぞれのカメラにおける画像平面の上方向のうちの平均値や代表値等から求めると自然である。
【0090】
ステップS115において、サーバ20の画像処理モジュール2035は、ステップS114で導出した射影変換行列に基づき、ステップS111で取得した撮影画像に対する射影変換処理を行う。
【0091】
ステップS116において、サーバ20の画像処理モジュール2035は、ステップS115で射影変換処理を行った画像が、射影変換の結果、画像内に元の画像が残っていない画像や、極端に小さくなってしまう画像等を除外し、以降の処理で使用する表示画像群を決定する。
【0092】
また、画像処理モジュール2035は、複数の異なる視点(アングル)ごとに生成された画像の中から、初期状態に表示させる画像を決定する。ここでは、k番目のカメラで撮影された画像とする。また、以下に説明する手法で、k番目のカメラで撮影された対象の画像における被写体と、3次元形状モデルからレンダリングされた被写体との位置を正確に合わせる。
【0093】
3次元形状モデルにおける仮想カメラの3次元位置を、当該画像の外部パラメータから求められる、当該画像を撮影したカメラの3次元位置Ckに合わせる。さらに、3次元形状モデルの仮想カメラの姿勢をRkに合わせる。
【0094】
この状態で、仮想カメラの内部パラメータをAkに一致させて3次元形状モデルを画像としてレンダリングしたとしても、射影変換行列H´
kが適用されていないため、表示画像群のk番目の画像とは一致しない。そこで、3次元形状モデルのレンダリング画像にも射影変換行列H´
kの射影変換を適用することによって、両者を正確に合わせ込むことが可能になる。
【0095】
なお、上記の方法は、レンダリング画像に対して射影変換するため、焦点距離fの与え方によっては、表示画像群が元画像を表示している範囲外の3次元形状モデルを表示することができない。よって、射影変換する処理に代えて、仮想カメラの内部パラメータをA´
kに一致させたうえで、仮想カメラの姿勢をR´
kとしてレンダリングすれば、対象の画像の被写体に正確に合わせたうえで、元画像の範囲外の3次元形状モデルをレンダリングすることが可能となる。
【0096】
以上のように、立体画像表示システム1では、複数の異なる方向から撮影した画像に対して、注視点に仮想的に向けたかのような画像に変換するための射影変換処理を行う。これにより、画像について立体的に表示するための画像を生成する。
【0097】
図9は、実施の形態1の立体画像表示システム1による画像の立体表示処理を行う流れの一例を示すフローチャートである。
【0098】
ステップS211において、ユーザが端末装置10を操作してサーバ20にアクセスするので、ステップS116で決定された初期状態に表示させる画像(本実施形態の場合、写真画像)がディスプレイ150に表示されている。この状態で、端末装置10の入力操作受付部171は、ユーザからの画像上における、被写体を回転させる操作を受け付ける。被写体を回転させる操作は、例えば、マウス132でポインタを左右に移動させるドラッグ操作を行い、被写体を回転させるように指示する操作である。送受信部172は、受け付けた操作信号をサーバ20へ送信する。
【0099】
ステップS221において、サーバ20の回転操作受付モジュール2036は、被写体を回転させる操作信号を、マウス132の移動量及び移動方向を示す情報とともに、通信部201を介して受け付ける。
【0100】
ステップS222において、サーバ20の画像表示モジュール2037は、ステップS221で受け付けた操作信号に含まれるマウス132の移動量及び移動方向から、被写体の回転量(回転角度)及び回転方向を判定し、その回転量に合わせて、3次元形状モデルを回転させた位置に対応してレンダリングしたレンダリング画像を切り替えて表示させる。画像表示モジュール2037は、連続表示させるレンダリング画像の情報を、端末装置10へ通信部201を介して送信する。
【0101】
ステップS212において、端末装置10の送受信部172は、サーバ20から送信された連続表示させるレンダリング画像の情報を受け付ける。通知制御部174は、受け付けた連続表示させるレンダリング画像の情報に基づき、画像をディスプレイ150に連続表示させる。このとき、通知制御部174は、前後の画像が重なるようにフェードイン及びフェードアウトさせる、いわゆるクロスディゾルブまたはクロスフェードと呼ばれる表示効果により表示する。
【0102】
ステップS223において、サーバ20の画像表示モジュール2037は、ステップS221で受け付けた操作信号に含まれるマウス132の移動量及び移動方向から、マウス132の操作による回転操作の終了位置を判定する。
【0103】
ステップS224において、サーバ20の画像表示モジュール2037は、ステップS223で判定したマウス132の操作による回転操作の終了位置から、画像の移動による遷移先の撮影画像を決定する。画像表示モジュール2037は、例えば、当該移動による遷移先の画像が存在しない場合、その視点の方向に近似する撮影画像を遷移先の画像として決定する。
【0104】
ステップS225において、サーバ20の画像表示モジュール2037は、ステップS224で決定した遷移先の画像の情報を、端末装置10へ通信部201を介して送信する。
【0105】
ステップS215において、端末装置10の送受信部172は、サーバ20から送信された遷移先の撮影画像の情報を受け付ける。通知制御部174は、受け付けた遷移先の撮影画像の情報に基づき、画像をディスプレイ150に表示させる。このとき、通知制御部174は、前後の画像が重なるようにフェードイン及びフェードアウトさせる、いわゆるクロスディゾルブまたはクロスフェードと呼ばれる表示効果により表示する。
【0106】
なお、ステップS212及びステップS215において表示する画像は、必要に応じて表示範囲を切り出すクロッピングを行ってもよい。
【0107】
さらに、
図9に示す画像の立体表示処理は、すべての処理を端末装置10で行うように構成してもよい。すなわち、ステップS211でユーザがサーバ20にアクセスすると、サーバ20は撮影画像と3次元形状モデルとを端末装置10へ送信し、受け付けた端末装置10は、ステップS221以降の処理を行ってもよい。このような構成により、処理速度を向上させることが可能になる。
【0108】
以上のように、立体画像表示システム1では、初期状態に表示された撮影画像において、ユーザから被写体を回転させる操作を受け付けると、3次元形状モデルを回転させた位置に対応してそれぞれレンダリングした画像を連続表示させ、遷移先まで表示させる。このとき、前後の画像が重なるようにフェードイン及びフェードアウトさせて表示する、いわゆるクロスディゾルブまたはクロスフェードと呼ばれる表示効果により表示する。これにより、視覚効果により立体的な形状に見えるように表示することが可能になる。
【0109】
<4 画面例>
以下、射影変換処理が行われた撮影画像と、3次元形状モデルをレンダリングして射影変換処理が行われた画像とを重畳して表示する例として、
図11Aないし
図11Eを参照しながら、立体画像表示システム1による重畳画像の表示例について説明する。
【0110】
図11A~
図11Eは、重畳画像の例を示す図である。
図11A~
図11Eに示す重畳画像は、例えば、
図4に示す例における、カメラC11~C15で撮影を行った写真画像に対して射影変換処理を行った画像と、それぞれの写真画像における被写体を、撮影した視点に対応して3次元形状モデルをそれぞれレンダリングして射影変換処理を行ったレンダリング画像を、それぞれ異なる透過度で重畳して生成した重畳画像である。この例では、被写体として戦闘機(ゼロ戦)が撮影されており、写真画像における戦闘機の箇所に対して、ワイヤーフレームを例とする3次元形状モデルが重畳されている。
図9に示すステップS212及びステップS215では、端末装置10のディスプレイ150にこれらの重畳画像を表示している。
【0111】
図11Aに示す例は、初期状態(
図9に示すステップS211に相当)に表示させる重畳画像である。初期状態では、ユーザに対して被写体の特定視点における完全な姿を印象付けるため、写真画像、すなわち透過率が0:100の重畳画像を表示する。
【0112】
図11B~
図11Dに示す例は、写真画像と3次元形状モデルとを、それぞれ異なる透過度で重畳して生成した重畳画像である。上記のように、
図4に示すカメラC12~C14で撮影を行った写真がベースとなっているため、被写体の戦闘機への視点が少しずつ右方向へ移動し、戦闘機の先端部分が図面の奥行方向へ回転しているように見える。また、これに伴い、ワイヤーフレームを重畳し、
図11Bから
図11Dへ進むに伴って写真画像の透過率を上昇し、ワイヤーフレームの透過度が低下して、ワイヤーフレームの視認を上げるように重畳画像を生成している。
【0113】
図11Eに示す例は、3次元形状モデルのみ表示させた、すなわち透過率が100:0の重畳画像である。この状態では、ユーザは被写体である戦闘機を視認することはできないが、
図11Aから
図11Eへ進めて連続的に表示されるので、ユーザは、元の完全な姿である被写体(
図11A)から出発して3次元形状モデルを見ることになるので、視覚効果により完全な状態、すなわち立体的な形状を想像しやすくなる。立体画像表示システム1では、このような視覚効果により、被写体をより立体的に表示させている。
【0114】
<小括>
以上のように、本実施形態によると、複数の異なる方向から撮影した撮影画像と、撮影した被写体を模した3次元形状モデルをレンダリングした画像のいずれかまたは両方に対して射影変換処理を行う。これにより、撮影画像の被写体と、3次元形状モデルをレンダリングした画像とを同一の注視点に向けた画像として合わせ込むことが可能になる。
【0115】
また、複数の異なる方向から撮影した撮影画像と、撮影した被写体を模した3次元形状モデルをレンダリングした画像とを切り替えて表示する。この撮影画像に対して、ユーザから被写体を回転させる操作を受け付けると、レンダリング画像を連続表示させ、遷移先の撮影画像まで表示させる。これにより、視覚効果により立体的な形状に見えるように表示することが可能になる。
【0116】
また、撮影画像と、レンダリング画像とを重畳して表示し、この重畳画像に対して、ユーザから被写体を回転させる操作を受け付けると、重畳画像を連続表示させ、遷移先の撮影画像まで表示させる。これにより、視覚効果により立体的な形状に見えるように表示することが可能になる。
【0117】
また、重畳画像を連続表示させる際、初期状態では写真画像、すなわち透過率が0:100の重畳画像を表示し、視点を移動させるにつれて、写真画像の透過率を上昇し、3次元形状モデルの透過度を低下して、ワイヤーフレームの視認を上げるように重畳画像を表示する。さらに、重畳画像を連続表示させる際、前後の重畳画像が重なるようにフェードイン及びフェードアウトさせて表示する、いわゆるクロスディゾルブまたはクロスフェードと呼ばれる表示効果により表示する。これにより、ユーザに対して被写体の特定視点における完全な姿を印象付け、ユーザは元の完全な姿である被写体から出発して3次元形状モデルを見ることになるので、ユーザに対して、視覚効果により完全な状態、すなわち立体的な形状を想像しやすくさせることが可能になる。
【0118】
<変形例1>
以下、立体画像表示システム1の変形例1について説明する。
【0119】
<1.1 端末装置10の構成>
図12は、実施の形態1の変形例1の立体画像表示システム1を構成する端末装置10の機能的な構成を示すブロック図である。変形例1における立体画像表示システム1の全体の構成は、第1の実施の形態と同様であるので、繰り返して説明しない。端末装置10の構成については、
図12に示すデータ処理部173の機能として、撮影画像取得モジュール1731、3Dモデル取得モジュール1732、画像処理モジュール1733、回転操作受付モジュール1734、及び画像表示モジュール1735に示す機能を発揮する以外、第1の実施の形態と同様である。以下、変形例1における上記各機能について説明する。なお、
図12に示すブロック図では、
図2に示す操作受付部130(キーボード131およびマウス132を含む)、音声処理部140、マイク141、スピーカ142、及びディスプレイ150の図示を省略する。
【0120】
撮影画像取得モジュール1731は、カメラで撮影した画像を、サーバ20から取得する処理を制御する。具体的な処理内容は、端末装置10内の機能として行う点を除き、第1の実施の形態における撮影画像取得モジュール2033と同様である。
【0121】
3Dモデル取得モジュール1732は、被写体を模した3次元形状モデルを、サーバ20から取得する処理を制御する。具体的な処理内容は、端末装置10内の機能として行う点を除き、第1の実施の形態における3Dモデル取得モジュール2034と同様である。
【0122】
画像処理モジュール1733は、内部パラメータ及び外部パラメータを、サーバ20から取得、または生成し、射影変換行列を導出し、撮影画像及びレンダリング画像に対する射影変換処理を行う処理を制御する。具体的な処理内容は、端末装置10内の機能として行う点を除き、第1の実施の形態における画像処理モジュール2035と同様である。
【0123】
回転操作受付モジュール1734は、射影変換処理が行われた撮影画像がディスプレイ150に表示されている状態で、画像における被写体の注視点を中心に回転させて表示する処理を制御する。具体的な処理内容は、端末装置10内の機能として行う点を除き、第1の実施の形態における回転操作受付モジュール2036と同様である。
【0124】
画像表示モジュール1735は、撮影画像と、3次元形状モデルをレンダリングした画像とを切り替えて表示する処理を制御する。具体的な処理内容は、端末装置10内の機能として行う点を除き、第1の実施の形態における画像表示モジュール2037と同様である。
【0125】
<1.2 サーバ20の機能的な構成>
図13は、実施の形態1の変形例1の立体画像表示システム1を構成するサーバ20の機能的な構成を示す図である。サーバ20の構成については、
図13に示す制御部203の機能として、第1の実施の形態における撮影画像取得モジュール2033、3Dモデル取得モジュール2034、画像処理モジュール2035、回転操作受付モジュール2036、及び画像表示モジュール2037に示す機能を備えない以外、第1の実施の形態と同様である。
【0126】
すなわち、変形例1は、第1の実施の形態における撮影画像取得モジュール2033、3Dモデル取得モジュール2034、画像処理モジュール2035、回転操作受付モジュール2036、及び画像表示モジュール2037の機能を端末装置10で行うように構成したものである。なお、端末装置10及びサーバ20が備える機能は、第1の実施の形態、及び変形例1に示す構成に限られず、上記のうち一部の機能を端末装置10またはサーバ20が行うように構成してもよい。
【0127】
このような構成により、サーバ20の負荷を軽減し、よりスムーズな画像処理、画像表示が可能になる。
【0128】
<変形例2>
以下、立体画像表示システム1の変形例2について説明する。
【0129】
画像処理モジュール2035により射影変換処理が行われた撮影画像を端末装置10に表示させるとき、3次元形状モデルをレンダリングした画像を端末装置10に表示させるとき、またはその両方を(切り替えて、または重畳して)表示させるとき、被写体に対してアノテーションを付加してもよい。例えば、当該被写体に対する注釈、説明文、その他各種案内をアノテーションとして、付加してもよい。このアノテーションは、対象の被写体に重畳して表示してもよく、アイコンのような形で表示し、マウスポインタを載せる(マウスオーバー)、またはクリックすることでアノテーションの内容を表示するように構成してもよい。このような構成により、立体画像表示システム1を、例えばECサイトにおける商品紹介、商品販売のような形態で実施することが可能になる。
【0130】
以上、開示に係る実施形態について説明したが、これらはその他の様々な形態で実施することが可能であり、種々の省略、置換および変更を行なって実施することが出来る。これらの実施形態および変形例ならびに省略、置換および変更を行なったものは、特許請求の範囲の技術的範囲とその均等の範囲に含まれる。
【0131】
<付記>
以上の各実施形態で説明した事項を、以下に付記する。
【0132】
(付記1)プロセッサ29を備えるコンピュータに実行され、画像を生成するための方法であって、方法は、プロセッサが、被写体を異なる方向からカメラで撮影した画像と、被写体を模した3次元形状モデルと、を取得または生成するステップ(S111,S112)と、被写体を撮影したときの焦点距離及び画像のサイズに基づく内部パラメータと、カメラの位置情報及び姿勢情報から算出された外部パラメータと、を取得または生成するステップ(S113)と、画像及び3次元形状モデルをレンダリングした画像を、被写体における同一の注視点に向けた画像として合わせ込むように、画像及び3次元形状モデルをレンダリングした画像をそれぞれ変換するために内部パラメータ及び外部パラメータに基づいてそれぞれ導出された射影変換行列に基づき、画像及び3次元形状モデルをレンダリングした画像の射影変換処理を行うステップ(S115)と、を実行する、方法。
【0133】
(付記2)射影変換処理を行うステップにおいて、3次元形状モデルをレンダリングした画像に対する射影変換処理に代えて、3次元形状モデルにおける仮想カメラの内部パラメータ及び方向をカメラと一致させる、(付記1)に記載の方法。
【0134】
(付記3)被写体の所定の位置から垂直方向に仮想的に配置した座標軸を回転軸として、被写体を複数の異なる方向から撮影した複数の画像を取得または生成し、回転軸からカメラまでの距離を焦点距離として算出された内部パラメータを取得または生成する、(付記1)または(付記2)に記載の方法。
【0135】
(付記4)方法は、さらに、複数の画像のうち、被写体を表示させるために不適切な画像を除外するステップを実行する、(付記1)から(付記3)のいずれかに記載の方法。
【0136】
(付記5)方法は、さらに、複数の画像の一部またはすべてに対して、所定の歪み補正を行うステップを実行する、(付記1)から(付記4)のいずれかに記載の方法。
【0137】
(付記6)3次元形状モデルは、点群データ、ワイヤーフレームモデル、テクスチャ付きメッシュモデル及び頂点カラー付きメッシュモデルを含む被写体を写実表現するモデルとしてレンダリング可能である、(付記1)から(付記5)のいずれかに記載の方法。
【0138】
(付記7)方法は、さらに、画像、3次元形状モデルのいずれかまたは両方を生成するステップを実行させ、画像と、3次元形状モデルと、を取得するステップにおいて、生成した画像、3次元形状モデルのいずれかまたは両方を取得する、(付記1)から(付記6)のいずれかに記載の方法。
【0139】
(付記8)方法は、さらに、射影変換処理がされた画像と、3次元形状モデルをレンダリングした画像とを切り替えて表示するステップと、を実行する、(付記1)から(付記7)のいずれかに記載の方法。
【0140】
(付記9)方法は、さらに、画像が表示された状態で、被写体の注視点を中心に被写体を回転させるステップを実行し、画像と3次元形状モデルをレンダリングした画像とを切り替えて表示するステップにおいて、回転後の方向に対応する画像を表示する、(付記8)に記載の方法。
【0141】
(付記10)被写体と、3次元形状モデルをレンダリングした画像との位置が一致する状態で、画像と、3次元形状モデルをレンダリングした画像とを切り替えて表示する、(付記8)または(付記9)に記載の方法。
【0142】
(付記11)画像と、3次元形状モデルをレンダリングした画像とをそれぞれ任意の透過度で重畳して表示し、回転後の方向に対応する画像を表示する、(付記9)に記載の方法。
【0143】
(付記12)回転後の方向までに含まれる画像を、対応する3次元形状モデルをレンダリングした画像と重畳し、回転の移動量に応じて画像を遷移させる、(付記11)に記載の方法。
【0144】
(付記13)回転後の方向までに対応する3次元形状モデルをレンダリングした画像に切り替えて表示させ、回転後の方向において画像に切り替えて表示する、(付記11)または(付記12)に記載の方法。
【0145】
(付記14)画像を表示した状態で、被写体の注視点を中心に回転させる操作指示を受け付け、被写体の注視点を中心に回転させる、(付記11)から(付記13)のいずれかに記載の方法。
【0146】
(付記15)回転後の方向の画像を表示するとき、対応する3次元形状モデルをレンダリングした画像を、画像に重なるようにクロスディゾルブさせて表示する、(付記11)から(付記14)のいずれかに記載の方法。
【0147】
(付記16)方法は、さらに、画像、3次元形状モデルをレンダリングした画像のいずれか一方または両方に対して、アノテーションを付加するステップを実行する、(付記8)から(付記15)のいずれかに記載の方法。
【0148】
(付記17)制御部303を備え、画像を生成する情報処理装置であって、制御部は、被写体を異なる方向からカメラで撮影した画像と、被写体を模した3次元形状モデルと、を取得または生成する(2033,2034)ステップと、被写体を撮影したときの焦点距離及び画像のサイズに基づく内部パラメータと、カメラの位置情報及び姿勢情報から算出された外部パラメータと、を取得または生成する(2035)ステップと、画像及び前記3次元形状モデルをレンダリングした画像を、前記被写体における同一の注視点に向けた画像として合わせ込むように、前記画像及び前記3次元形状モデルをレンダリングした画像をそれぞれ変換するために前記内部パラメータ及び前記外部パラメータに基づいてそれぞれ導出された射影変換行列に基づき、前記画像及び前記3次元形状モデルをレンダリングした画像の射影変換処理を行う(2035)ステップと、を実行する、情報処理装置。
【0149】
(付記18)プロセッサ29を備えるコンピュータにより実行させ、画像を生成するためのプログラムであって、プログラムは、プロセッサに、被写体を異なる方向からカメラで撮影した画像と、被写体を模した3次元形状モデルと、を取得または生成するステップ(S111,S112)と、被写体を撮影したときの焦点距離及び画像のサイズに基づく内部パラメータと、カメラの位置情報及び姿勢情報から算出された外部パラメータと、を取得または生成するステップ(S113)と、画像及び3次元形状モデルをレンダリングした画像を、被写体における同一の注視点に向けた画像として合わせ込むように、画像及び3次元形状モデルをレンダリングした画像をそれぞれ変換するために内部パラメータ及び外部パラメータに基づいてそれぞれ導出された射影変換行列に基づき、画像及び3次元形状モデルをレンダリングした画像の射影変換処理を行うステップ(S115)と、を実行させる、プログラム。
【符号の説明】
【0150】
10 端末装置、20 サーバ、80 ネットワーク、130 操作受付部、161 ユーザ情報、22 通信IF、23 入出力IF、25 メモリ、26 ストレージ、29 プロセッサ、201 通信部、202 記憶部、2021 撮影画像データベース、2022 3Dモデルデータベース、203 制御部