(57)【要約】【課題】プロジェクタ・カメラシステムを活用する際に、ロバストな拘束条件を使用して、プロジェクタから投影された画像から元の３次元形状を復元する。【解決手段】プロジェクタによって投影すべき物体の画像に対して、物体の３次元形状と、該物体を照明する照明の方向情報とから照度差ステレオの原理に基づき生成した物体の陰影画像を生成する陰影画像生成手段と、陰影画像を所定の矩形面に投影するプロジェクタに対して出力する画像出力手段と、矩形面に投影された陰影画像がカメラによって撮像されることにより生成された撮像画像を得る画像入力手段と、撮像画像から生成した画像データ行列を行列分解することにより仮の表面法線行列と仮の光源方向行列とに分解し、仮の表面法線行列に対して線形変換行列を用いて線形変換を行うことによって表面法線行列を求め、該表面法線行列に基づき物体の３次元形状を復元する３次元形状復元手段とを備えた。【選択図】図１
2014042210.tif 000002
【特許請求の範囲】
【請求項１】
プロジェクタによって投影すべき物体の画像に対して、前記物体の３次元形状と、該物体を照明する照明の方向情報とから照度差ステレオの原理に基づき生成した前記物体の陰影画像を生成する陰影画像生成手段と、
前記陰影画像を所定の矩形面に投影する前記プロジェクタに対して出力する画像出力手段と、
前記矩形面に投影された前記陰影画像がカメラによって撮像されることにより生成された撮像画像を得る画像入力手段と、
前記撮像画像から生成した画像データ行列を行列分解することにより仮の表面法線行列と仮の光源方向行列とに分解し、前記仮の表面法線行列に対して線形変換行列を用いて線形変換を行うことによって表面法線行列を求め、該表面法線行列に基づき前記物体の３次元形状を復元する３次元形状復元手段と
を備えたことを特徴とする投影型３次元形状復元装置。
【請求項２】
前記プロジェクタと前記矩形面との間の平面射影変換を用いて、前記陰影画像の幾何歪みを補正する第１の平面射影補正手段と、
前記矩形面と前記カメラとの間の平面射影変換を用いて、前記撮像画像の幾何歪みを補正する第２の平面射影補正手段と
をさらに備えたことを特徴とする請求項１に記載の投影型３次元形状復元装置。
【請求項３】
プロジェクタによって投影すべき物体の画像に対して、前記物体の３次元形状と、該物体を照明する照明の方向情報とから照度差ステレオの原理に基づき生成した前記物体の陰影画像を生成する陰影画像生成ステップと、
前記陰影画像を所定の矩形面に投影する前記プロジェクタに対して出力する画像出力ステップと、
前記矩形面に投影された前記陰影画像がカメラによって撮像されることにより生成された撮像画像を得る画像入力ステップと、
前記撮像画像から生成した画像データ行列を行列分解することにより仮の表面法線行列と仮の光源方向行列とに分解し、前記仮の表面法線行列に対して線形変換行列を用いて線形変換を行うことによって表面法線行列を求め、該表面法線行列に基づき前記物体の３次元形状を復元する３次元形状復元ステップと
を有することを特徴とする投影型３次元形状復元方法。
【請求項４】
コンピュータを、請求項１または２に記載の投影型３次元形状復元装置として機能させるための投影型３次元形状復元プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロジェクタからの投影像をカメラを使って撮影するとき、その複数の時系列画像から、元の３次元形状とその表面テクスチャを同時に復元する投影型３次元形状復元装置、投影型３次元形状復元方法及び投影型３次元形状復元プログラムに関する。
【背景技術】
【０００２】
ある被写体を照明して得た陰影画像から元の３次元形状を復元する技術は照度差ステレオ（photometric stereo）として知られている。照度差ステレオについて、その概略を以下に説明する。図７は、照度差ステレオの原理を示す図である。図７は、３次元物体の表面法線と照明の方向を表す方向ベクトルの関係を示している。この図において、物体の表面はＬａｍｂｅｒｔｉａｎ面（任意の方向からの照明に対して等方的に反射する面）であるとし、無限遠に設置した光源によって照明されており（すなわち、平行光によって照明されている）、カメラは正射影によって物体表面の反射光を観測して画像を得ると仮定する。被写体表面の各点からの反射光は、画像上の画素値として観測される。ここでは、各画素の位置を表現するため、便宜上、画像上の座標を指すためのサフィックスｊを使う。
【０００３】
図７の観測画像は横×縦のサイズがＭ×Ｎ画素であるとした場合、画像上の１画素はサフィックスｊによって順番ｊ＝１，２，…，Ｐ（＝ＭＮ）が付与されるので、ｊ番目の画素に対応する被写体上の表面の法線ベクトルをｎｊとする。この物体に対して、それぞれ異なる方向からの照明光によって被写体を照明する。照明の方向を表すサフィックスとしてｉ∈｛１，２，…，Ｆ｝を使い、ｉ番目の光源からの照明を方向ベクトルｌｉで表現する。ｉ番目の照明によってｊ番目の法線の箇所が照らされるとき、正射影のカメラによって、画像上では、その画素値、
【数１】
2014042210.tif 000003
を観測する。ここで、ρｊ（λ）はｊ番目の画素に対応する物体表面の反射分布であり、λは波長を表す。ω（λ）は入射光のスペクトル分布を表し、￣ν（λ）（￣はνの上に付く）はカメラのνチャネルのスペクトル感度分布を表す。
【０００４】
式（１）において、括弧で囲んだ積分項は表面法線と照明の方向ベクトルとは無関係なのでνｊで表すことにする。νｊはアルベド（ａｌｂｅｄｏ）と呼ばれており、通常、被写体は一定のアルベドを有すると考えて、νｊ＝νとおく。従来の照度差ステレオとは、式（１）に基づきカメラ観測値Ｃνｉｊから被写体の表面を表す法線ベクトルｎｊを復元する方法である。その代表的な方法を以下に説明する。
【０００５】
照明方向を変えながら、逐次、カメラを使って陰影画像を観測したとすると、上記の説明に従えば、Ｆフレームの画像を得る。従来方法では濃淡画像から３次元形状を復元するため、このうち緑チャネル（ν＝ｇ）の画像を扱う。各フレームの緑チャネルの各画素を、画像データ行列（image data matrix）と呼ばれる行列形式に並べて、
【数２】
2014042210.tif 000004
を用意する。通常、被写体のアルベドは一定と考えるためν＝１とする。
【０００６】
行列ＩはＰ×Ｆの行列サイズとなる。観測する画像の枚数が増えたり、あるいは各画像サイズが大きくなると、行列Ｉの行列サイズも大きくなる。ところで、式（２）の行列要素は、式（１）に示したように被写体の表面法線と照明の方向ベクトルの内積で表現できるため、式（２）の行列は、
【数３】
2014042210.tif 000005
【数４】
2014042210.tif 000006
【数５】
2014042210.tif 000007
と記述することができる。すなわち、観測する画像の枚数が増えたり、あるいは各画像サイズが大きくなったとしても、行列ＮはＰ×３の行列、行列Ｌは３×Ｆの行列であるため、行列Ｉのランクはたかだか３である。
【０００７】
この行列のランクに着目して、画像データ行列Ｉから法線を集めた行列Ｎと照明の方向ベクトルを集めた行列Ｌを同時に推定する方法が知られている（例えば、非特許文献１参照）。さらに、行列Ｎの行列要素（それぞれの法線）から、経路積分計算を使って物体表面の３次元形状を復元することができる。
【０００８】
照度差ステレオでは環境光は雑音となるため、暗室空間の中で被写体を照明する。これに対して、照明光にプロジェクタを使ったプロジェクタ・カメラシステムが知られている。プロジェクタ・カメラシステムは、様々な用途に利用されている。例えば、会議や学会発表でのプレゼンテーションにプロジェクタを利用する以外に、ヒューマンインタラクションや拡張現実感の表示システムとしても利用でき、近年ではＨＤＲ（High Dynamic Range）画像を表示するアプリケーションとしても期待されている。
【０００９】
プロジェクタ・カメラシステムでは、所定の画像を得るようにプロジェクタから投影する画像のＲＧＢ輝度を補正する。従来の輝度補正とは、プロジェクタからのＲＧＢ輝度値とカメラで観測されたＲＧＢ輝度値間の相関関係に着目し、カラー混合行列（Color Mixing Matrix）と呼ばれる３×３の行列Ｖを使って、所定のＲＧＢ輝度値Ｃ＝（ＣＲ，ＣＧ，ＣＢ）をカメラが観測するようにプロジェクタからのＲＧＢ出力値Ｐ＝（ＰＲ，ＰＧ，ＰＢ）を補正する。
【００１０】
このとき、観測した画像の輝度値Ｃと各プロジェクタからの出力輝度Ｐは、
【数６】
2014042210.tif 000008
が成り立つ。Ｖはプロジェクタのカラー混合行列であり、Ｆ＝（Ｆｒ，Ｆｇ，Ｆｂ）はプロジェクタ以外の光源からの照明を含む環境光である。プロジェクタへの入力輝度と出力輝度の間で線形化作業が行われていることを前提として、カラー混合行列Ｖと環境光Ｆを算出する。この算出方法は、例えば非特許文献２に開示されている方法を用いることができる。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】H. Hayakawa:“Photometric stereo under a light source with arbitrary motion”, Journal of the Optical Society of America A vol.11, no.11, pp.3079-3089, 1994.
【非特許文献２】K. Fujii, M. D. Grossberg, and S. K. Nayar: “A Projector-Camera System with Real-Time Photometric Adaptation for Dynamic Environments”, Proc. of IEEE Computer Vision and Pattern Recognition (CVPR), vol.1, pp.814-821, 2005.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
一般に、非特許文献１に代表される照度差ステレオでは、図７に示すように無限遠光源で被写体を照明することを前提とする。さらに、環境光は雑音となるため、暗室の中で照明された被写体を撮影する必要がある。従来技術（非特許文献１）では、カメラ観測で得た３チャネルの画像を全て使う必要はなく、画像の濃淡情報を最も反映するＧチャネルの画像を使って３次元形状を復元する。これに対して、プロジェクタ・カメラシステムにおいては、蛍光灯などのプロジェクタ投影光以外の環境光を考慮する必要がある。
【００１３】
図８は、プロジェクタ・カメラシステムを使用した陰影画像投影を示す図である。図８に示すように、プロジェクタ・カメラシステムでは、スクリーンの前には被写体が存在しないが、図７に示すカメラ観測で得られる同様の画像を観測する。すなわち、被写体の３次元形状とその表面テクスチャが何らかの手段によって与えられたとき、照度差ステレオの原理によって再び３次元形状とその表面テクスチャを復元できるように、時系列画像を自動生成してプロジェクタからスクリーンなどの平面へ画像を投影する。そして、照度差ステレオにおいて、画像雑音に対してロバストに３次元形状を復元する必要がある。
【００１４】
上記照度差ステレオにおいて、式（３）の行列分解では、
【数７】
2014042210.tif 000009
なる線形変換行列Ｑの不定性が残る。３×３の線形変換行列Ｑを決定しないと、行列Ｉから一意に行列分解することはできない。非特許文献１では、物体表面（Ｎ）に関する拘束条件を課して線形変換行列Ｑを算出している。
【００１５】
しかしながら、プロジェクタ・カメラシステムを使って平面なスクリーン上に陰影画像を投影する際には、物体表面に関する拘束条件を利用できないという問題がある。さらに、非特許文献１において物体表面の拘束性は理想的であるため、実際の凸形状物体では当てはまらないことが多い。
【００１６】
本発明は、このような事情に鑑みてなされたもので、プロジェクタ・カメラシステムを活用する際に、ロバストな拘束条件を使用して、プロジェクタから投影された画像から元の３次元形状を復元することができる投影型３次元形状復元装置、投影型３次元形状復元方法及び投影型３次元形状復元プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明は、プロジェクタによって投影すべき物体の画像に対して、前記物体の３次元形状と、該物体を照明する照明の方向情報とから照度差ステレオの原理に基づき生成した前記物体の陰影画像を生成する陰影画像生成手段と、前記陰影画像を所定の矩形面に投影する前記プロジェクタに対して出力する画像出力手段と、前記矩形面に投影された前記陰影画像がカメラによって撮像されることにより生成された撮像画像を得る画像入力手段と、前記撮像画像から生成した画像データ行列を行列分解することにより仮の表面法線行列と仮の光源方向行列とに分解し、前記仮の表面法線行列に対して線形変換行列を用いて線形変換を行うことによって表面法線行列を求め、該表面法線行列に基づき前記物体の３次元形状を復元する３次元形状復元手段とを備えたことを特徴とする。
【００１８】
本発明は、前記プロジェクタと前記矩形面との間の平面射影変換を用いて、前記陰影画像の幾何歪みを補正する第１の平面射影補正手段と、前記矩形面と前記カメラとの間の平面射影変換を用いて、前記撮像画像の幾何歪みを補正する第２の平面射影補正手段とをさらに備えたことを特徴とする。
【００１９】
本発明は、プロジェクタによって投影すべき物体の画像に対して、前記物体の３次元形状と、該物体を照明する照明の方向情報とから照度差ステレオの原理に基づき生成した前記物体の陰影画像を生成する陰影画像生成ステップと、前記陰影画像を所定の矩形面に投影する前記プロジェクタに対して出力する画像出力ステップと、前記矩形面に投影された前記陰影画像がカメラによって撮像されることにより生成された撮像画像を得る画像入力ステップと、前記撮像画像から生成した画像データ行列を行列分解することにより仮の表面法線行列と仮の光源方向行列とに分解し、前記仮の表面法線行列に対して線形変換行列を用いて線形変換を行うことによって表面法線行列を求め、該表面法線行列に基づき前記物体の３次元形状を復元する３次元形状復元ステップとを有することを特徴とする。
【００２０】
本発明は、コンピュータを、前記投影型３次元形状復元装置として機能させるための投影型３次元形状復元プログラムである。
【発明の効果】
【００２１】
本発明によれば、プロジェクタ・カメラシステムを使った映像投影において、スクリーン平面上にあたかも３次元物体が存在するかのように陰影画像を提示することができる。また、カメラ観測で得た陰影情報から物体の３次元形状とそのテクスチャ画像を同時に復元できるため、その立体情報を使った拡張現実や映像コミュニケーションを実現することが可能になるという効果が得られる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態の構成を示すブロック図である。
【図２】図１に示す画像送信部の動作を示すフローチャートである。
【図３】図１に示す画像受信部の動作を示すフローチャートである。
【図４】図１に示す陰影画像生成部の動作を示すフローチャートである。
【図５】図１に示す平面射影補正部の動作を示すフローチャートである。
【図６】図１に示す３次元形状復元部の動作を示すフローチャートである。
【図７】照度差ステレオの原理を示す説明図である。
【図８】プロジェクタ・カメラシステムを使用した陰影画像投影を示す図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して、本発明の一実施形態による投影型３次元形状復元装置を説明する。図１は同実施形態の構成を示すブロック図である。この図において、符号１は、画像を投影するプロジェクタである。符号２は、テクスチャ付き３次元データが予め記憶されたテクスチャ付き３次元データ記憶部である。符号３は、画像を送信する画像送信部である。符号３１は、テクスチャ付き３次元データ記憶部２から取り出したテクスチャ付き３次元データと照明の方向情報から照度差ステレオの原理に基づいて、新たな陰影画像列を生成する陰影画像生成部である。符号３２は、陰影画像生成部３１が生成した陰影画像をスクリーン等の所定の矩形面に投影するために、プロジェクタ１とスクリーン平面間の平面射影変換を使って、用途に応じて観測画像の幾何歪みを補正する平面射影補正部である。符号３３は、所定の画像を観測できるように生成した陰影画像の輝度を補正して、プロジェクタ１へ出力する画像出力部である。
【００２４】
符号４は、プロジェクタ１によって投影された画像を撮像するカメラである。符号５は、画像を受信する画像受信部である。符号５１は、カメラ４から出力する画像データを入力する画像入力部である。符号５２は、スクリーン平面とカメラ４間の平面射影変換を使って、用途に応じて観測画像の幾何歪みを補正する平面射影補正部である。符号５３は、平面射影補正部５２から出力する画像列から物体の３次元形状データとそのテクスチャ画像を復元する３次元形状復元部である。
【００２５】
図１に示す装置構成は、プロジェクタ１と接続された画像送信部３と、カメラ４と接続された画像受信部５に分かれて構成されており、双方においてデータの交換は行わない構成である。この構成において、プロジェクタ１、カメラ４、テクスチャ付き３次元データ記憶部２は必ずしも構成要素として接続している必要はなく、処理に必要なデータを取得すればよく、陰影画像生成部３１、平面射影補正部３２、画像出力部３３からそれぞれの矢印のデータの流れ、並びに、画像入力部５１、平面射影補正部５２、３次元形状復元部５３からそれぞれの矢印のデータの流れは、ハードディスク、ＲＡＩＤ装置、ＣＤ−ＲＯＭなどの記録媒体を利用する形態、または、ネットワークを介してリモートなデータ資源を利用する形態でもどちらでも構わない。
【００２６】
次に、図２を参照して、図１に示す画像送信部３の処理動作を説明する。図２は、図１に示す画像送信部３の処理動作を示すフローチャートである。まず、陰影画像生成部３１は、テクスチャ付き３次元データ記憶部２からテクスチャ付き３次元データを入力する（ステップＳ１）。また、陰影画像生成部３１は、生成された照明データを入力する（ステップＳ２）。そして、陰影画像生成部３１は、テクスチャ付き３次元データと照明データ（照明方向のデータ）とから陰影画像を生成する（ステップＳ３）。
【００２７】
次に、平面射影補正部３２は、陰影画像生成部３１から出力する陰影画像をスクリーン等の所定の矩形面に投影するために、プロジェクタ１とスクリーン平面間の平面射影変換を使って、用途に応じて観測画像の幾何歪みを補正する（ステップＳ４）。続いて、画像出力部３３は、平面射影補正部３２から出力する平面射影変換後の陰影画像の輝度を補正する（ステップＳ５）。そして、画像出力部３３は、輝度補正後の陰影画像をプロジェクタ１に対して出力する（ステップＳ６）。画像送信部３は、この処理動作を処理の停止命令が出されない限り、照明の方向情報を変えて（ステップＳ２）、陰影画像を逐次生成（ステップＳ３〜Ｓ５）し、生成された陰影画像をプロジェクタ１へ出力する（ステップＳ６）という処理動作を繰り返す（ステップＳ７）。
【００２８】
次に、図３を参照して、図１に示す画像受信部５の処理動作を説明する。図５は、図１に示す画像受信部５の処理動作を示すフローチャートである。まず、画像入力部５１は、カメラ４において撮像（観測）されて出力された時系列画像を入力する（ステップＳ１１）。続いて、平面射影補正部５２は、スクリーン平面とカメラ４間の平面射影変換を使って、用途に応じて観測画像の幾何歪みを補正した画像を出力する（ステップＳ１２）。
【００２９】
次に、画像入力部５１と平面射影補正部５２は、所定枚数の画像が得られるまで、画像の入力と平面射影変換の処理を繰り返す（ステップＳ１３）。そして、所定枚数の画像が得られた時点で、３次元形状復元部５３は、平面射影補正部５２から出力する画像列から物体の３次元形状データとそのテクスチャ画像を復元する（ステップＳ１４）。
【００３０】
次に、図４を参照して、図１に示す陰影画像生成部３１の処理動作の詳細を説明する。図４は、図１に示す陰影画像生成部３１の処理動作を示すフローチャートである。陰影画像生成部３１は、テクスチャ付き３次元データ記憶部２からテクスチャ付きの３次元形状データを取り出して、式（１）の画像照度の式に基づいて陰影画像を生成する。陰影画像生成部３１は、処理を開始すると、カウンタ値ｉを１に初期化する（ステップＳ２１）。そして、陰影画像生成部３１は、現時点でのカウンタ値ｉが偶数か否かを判定する（ステップＳ２２）。カウンタ値ｉが奇数ならば（ｉ＝２ｋ−１、ｋは自然数）、陰影画像生成部３１は、照明データとしてその方向ベクトルｌ２ｋ−１を与える（ステップＳ２４）。方向ベクトルは半球面座標の１点で表現できるため、その奇数フレームの照明ベクトルｌ２ｋ−１を、
【数８】
2014042210.tif 000010
と与える。ここで、θ２ｋ−１、φ２ｋ−１は球面座標を表現する２つの角度であるが、角θ２ｋ−１をθ２ｋ−１＝π／４と固定し、角φ２ｋ−１を乱数を使って−π≦φｉ＜πの範囲内においてランダムに選んでよい。
【００３１】
もし、カウンタ値ｉが偶数ならば（ｉ＝２ｋ）、陰影画像生成部３１は、一つ前の奇数フレーム（ｉ＝２ｋ−１）での照明ベクトルｌ２ｋ−１を使って、θ２ｋ＝θ２ｋ−１に固定して、φ２ｋ−１の位相をπ／２だけシフトする（ステップＳ２３）。すなわち、偶数フレームの照明ベクトルｌ２ｋを、
【数９】
2014042210.tif 000011
と与える。
【００３２】
一方、陰影画像生成部３１は、物体の３次元形状データとそのテクスチャ画像をテクスチャ付き３次元データ記憶部２から取り出す（ステップＳ２５）。ここでいう３次元形状データとは、格子状に並んだ各点（Ｘ，Ｙ）の奥行き値ＺがＺｊ＝ｆ（Ｘｊ，Ｙｊ）と与えれているデータであり、格子点の合計数をＰ個とする。さらに、その物体のテクスチャ画像とは、奥行き値と同時に各点（Ｘ，Ｙ）のＲＧＢ値が付与されている。３次元形状データはＺｊ＝ｆ（Ｘｊ，Ｙｊ）の関数形であるとき、法線ベクトルｎｊは、
【数１０】
2014042210.tif 000012
で表される。
【００３３】
陰影画像生成部３１は、法線ベクトルの計算において、３次元形状データからＸ軸方向とＹ軸方向の偏微分値を求め、式（１０）を使って各座標（ｊ＝１，２，…，Ｐ）の法線ベクトルｎｊを算出する（ステップＳ２６）。ここでは、任意の凸形の３次元データを前提とするので、偏微分値
【数１１】
2014042210.tif 000013
を、
【数１２】
2014042210.tif 000014
【数１３】
2014042210.tif 000015
の差分計算により得る。
【００３４】
なお、データの端では、例えば、ｊ＝Ｐのときは
【数１４】
2014042210.tif 000016
としてデータの整合性をとっておく。この差分計算は、奇数フレームと偶数フレームで同じであるため、全ての格子点について予め計算しておき、奇数フレームまたは偶数フレームでの照明ベクトルとの内積計算の際に、その偏微分値を適宜使う。
【００３５】
次に、陰影画像生成部３１は、方向ベクトルｌｉと法線ベクトルｎｊの内積を計算する（ステップＳ２７）。続いて、陰影画像生成部３１は、テクスチャ付き３次元データ記憶部２から取り出しておいた物体のテクスチャ画像から、ｊ番目の画素に対応する画素値（ｒｊ，ｇｊ，ｂｊ）を抽出する。そして、このＲＧＢ輝度値に、方向ベクトルｌｉと法線ベクトルｎｊの内積をかけて、
【数１５】
2014042210.tif 000017
【数１６】
2014042210.tif 000018
【数１７】
2014042210.tif 000019
を陰影画像の画素値（Ｃｒｉｊ，Ｃｇｉｊ，Ｃｂｉｊ）とする（ステップＳ２８）。
【００３６】
次に、３次元形状データの各点とテクスチャ画像の各画素は１対１に対応しているとし、全ての画素について、式（１５）〜式（１７）によりそのＲＧＢ輝度値を計算して、陰影画像の各画素を埋めることにより陰影画像を生成する（ステップＳ２９）。
【００３７】
以上の処理を、奇数フレームと偶数フレームを交互に実行し、停止命令が出るまでカウンタ値ｉを更新しながら（ステップＳ３０、Ｓ３１）陰影画像の画像系列を生成する。停止命令とは、プロジェクタのスイッチを切った場合や装置の動作そのものを停止することを意味する。以降では、画像系列の陰影画像を時系列画像と呼ぶ。
【００３８】
次に、図５を参照して、図１に示す平面射影補正部３２の処理動作の詳細を説明する。図５は、図１に示す平面射影補正部３２の処理動作を示すフローチャートである。平面射影補正部３２では、プロジェクタ１がスクリーン面上の所定領域を投影するよう、プロジェクタ１に対して出力する時系列画像上の画素とスクリーン面上の所定領域中の点を１対１に対応付けるための射影変換を行う。
【００３９】
ここで、この射影変換処理について説明する。プロジェクタ画面の点の２次元座標を（ｕ，ｖ）、その点がＺ＝０のＸＹ平面（スクリーン）上に投影されたときの３次元座標を（Ｘ，Ｙ，０）とすると、プロジェクタ１と平面間の平面射影変換Ｈｐｓによって、
【数１８】
2014042210.tif 000020
の計算により各画素をそれぞれ対応付けることができる。
【００４０】
さらに、プロジェクタ１から出力する画像の２次元座標（ｕ，ｖ）と時系列画像上の点の２次元座標（ｕ′，ｖ′）と、
【数１９】
2014042210.tif 000021
の計算により両画素を対応付けることができる。Ｈｉｐは時系列画像とプロジェクタ画面間の平面射影変換である。これらの平面射影変換は、事前のキャリブレーション作業において、公知の平面射影変換推定方法により得られる。それらのデータは平面射影補正部３２において保持されており、平面射影計算の際には必要に応じて利用する。
【００４１】
次に、図５を参照して、処理動作を説明する。まず、陰影画像生成部３１において生成した時系列画像が逐次転送されると、平面射影補正部３２は、平面射影変換のＨｐｓとＨｉｐをロードする（ステップＳ４１）。そして、平面射影補正部３２は、時系列画像の画像座標値（ｕ′，ｖ′）に（０，０）をセットして初期化する（ステップＳ４２）。
【００４２】
次に、平面射影補正部３２は、ロードしたＨｐｓとＨｉｐを使って、式（１８）、式（１９）に従って画像座標値（ｕ′，ｖ′）からスクリーン面上の座標（Ｘ，Ｙ）を算出する（ステップＳ４３）。スクリーン面には所定の枠が設定され、幅が−Ｗ／２≦Ｘ≦−Ｗ／２、高さが−Ｈ／２≦Ｙ≦−Ｈ／２の範囲であるとする。平面射影補正部３２は、算出した座標（Ｘ，Ｙ）がこの有効範囲内か否かを判定して（ステップＳ４４）、その有効範囲内の点だと判定された場合は、時系列画像の画像座標値（ｕ′，ｖ′）の画素値（Ｒ，Ｇ，Ｂ）を取り出し（ステップＳ４５）、プロジェクタ画面の２次元座標値（ｕ，ｖ）の画素値にコピーする（ステップＳ４６）。
【００４３】
次に、平面射影補正部３２は、時系列画像の画像座標値をｕ′←ｕ′＋１へシフトさせる（ステップＳ４７）。もし、ｕ′が画像幅であった場合は次のラインへ移行してｖ′←ｖ′＋１とシフトさせる。画像座標値をシフトした後、スクリーン面上の座標（Ｘ，Ｙ）を再び算出して、有効範囲内か否かを判定する。この処理を全ての画像座標値について処理して、時系列画像の順に平面射影補正画像を生成する。平面射影補正画像は画像出力部３３へ逐次転送される。
【００４４】
次に、図１に示す画像出力部３３の処理動作の詳細を説明する。画像出力部３３は、平面射影補正部３２において得られた画像をプロジェクタ１で投影する際、時系列画像と同じ輝度値を有する画像をカメラ４で観測できるようにプロジェクタ１へ出力する画像の輝度を補正する。ここでは、プロジェクタ１への入力輝度と出力輝度の間で線形化作業が行われていることを前提として、カラー混合行列Ｖと環境光Ｆを公知の手法（例えば、非特許文献２）を使って算出しておく。
【００４５】
そして、画像出力部３３に平面射影補正部３２から画像が転送されるたびに、カラー混合行列Ｖと環境光Ｆを使って、その画像の各ＲＧＢ値Ｃを、
【数２０】
2014042210.tif 000022
により輝度の補正を行って、プロジェクタ１へ出力する画像の各画素のＲＧＢ輝度値Ｐで与える。この輝度補正を全ての画素値について処理して輝度補正画像を生成する。輝度補正が完了した画像は、逐次、プロジェクタ１へ時系列画像が逐次出力されて、プロジェクタ１はその補正画像をスクリーン面へ投影する。
【００４６】
次に、図１に示す画像入力部５１の処理動作の詳細を説明する。画像入力部５１はカメラ４等の画像入力手段を利用して画像を取得するものである。カメラ４はプロジェクタ１によって画像が投影されているスクリーン面の一部が欠落することなく、所定の枠を含めて撮像する。画像送信部３から逐次投影されている時系列画像に対して、画像入力部は１フレームずつ画像を取得し、取得した画像は、逐次、平面射影補正部５２へ転送する。
【００４７】
次に、図１に示す平面射影補正部５２の処理動作の詳細を説明する。平面射影補正部５２は、平面射影補正部３２の処理と同様の処理を行うものであり、プロジェクタ１をカメラ４に置き換えて、同様に動作する。プロジェクタ画面の点がＺ＝０のＸＹ平面（スクリーン）上に投影されたときの３次元座標を（Ｘ，Ｙ，０）、その投影点をカメラで観測したときの点の２次元座標を（ｘ，ｙ）とすると、スクリーン平面とカメラ間の平面射影変換Ｈｓｃによって、
【数２１】
2014042210.tif 000023
の計算により各画素をそれぞれ対応付けることができる。
【００４８】
画像受信側においても、画像送信部３の平面射影変換ＨｐｓとＨｉｐを保持していれば、それらの平面射影変換を使って、観測した画像座標値（ｘ，ｙ）から時系列画像上の画像座標値（ｕ′，ｖ′）と対応付けることができる。すなわち、カメラ観測した時系列画像は平面射影で変換された画像であるが、平面射影補正部５２によって元の時系列画像と同じサイズの画像へ補正することができる。
【００４９】
平面射影補正部５２は図５に示す処理動作に従って動作するため、プロジェクタ１をカメラ４に置き換えて説明する。画像入力部５１から時系列画像が逐次転送されると、まず、平面射影変換のＨｓｃ，Ｈｐｓ，Ｈｉｐをロードし（ステップＳ４１）、時系列画像の大きさの画像バッファを用意する。その画像サイズは元の時系列画像のサイズと同じとする。時系列画像の画像座標値（ｕ′，ｖ′）に（０，０）をセットして初期化する（ステップＳ４２）。
【００５０】
次に、Ｈｓｃ，Ｈｐｓ，Ｈｉｐを使って、式（１８）、式（１９）、式（２１）に従って、（ｕ′，ｖ′）からカメラ観測での２次元座標値（ｘ，ｙ）、並びに、スクリーン面上の座標（Ｘ，Ｙ）を算出する（ステップＳ４３）。スクリーン面には所定の枠が設定され、幅が−Ｗ／２≦Ｘ≦−Ｗ／２、高さが−Ｈ／２≦Ｙ≦−Ｈ／２の範囲であるとする。算出した座標（Ｘ，Ｙ）がこの有効範囲内か否かを判定して（ステップＳ４４）、その範囲の点だと判定された場合は、カメラ画面の２次元座標値（ｘ，ｙ）の画素値を取り出し（ステップＳ４５）、元の時系列画像の画像座標値（ｕ′，ｖ′）の画素値（Ｒ，Ｇ，Ｂ）にコピーする（ステップＳ４６）。
【００５１】
次に、時系列画像の画像座標値をｕ′←ｕ′＋１へシフトさせる（ステップＳ４７）。もし、ｕ′が画像幅であった場合は次のラインへ移行してｖ′←ｖ′＋１とシフトさせる。画像座標値をシフトした後、スクリーン面上の座標（Ｘ，Ｙ）を再び算出して、範囲内か否かを判定する。この処理を全ての画像座標値について処理して、観測した時系列画像の順に平面射影補正画像を生成する。平面射影補正画像は３次元形状復元部５３へ逐次転送される。
【００５２】
次に、図６を参照して、図１に示す３次元形状復元部５３の処理動作の詳細を説明する。図６は、図１に示す３次元形状復元部５３の処理動作を示すフローチャートである。ここでは、平面射影補正部５２から転送された時系列画像が２Ｆ枚のフレーム画像とする。Ｆは整数であり、Ｆ＝１０またはＦ＝２０とする。３次元形状復元部５３は、画像データ行列と称する入力データ形式を扱うため、３次元形状復元部５３の処理動作を説明する前に、画像データ行列とそのランクに基づいた行列分解について補足する。
【００５３】
ｉ番目の照明に関する画像上のｊ番目の画素（全画素数をＰとする）のＲＧＢ値を（Ｃｒｉｊ，Ｃｇｉｊ，Ｃｂｉｊ）とすると、縦方向に時系列の順に、横方向に画素順に並べて、画像データ行列Ｉ：
【数２２】
2014042210.tif 000024
とする。画像データ行列Ｉの第１行目から第Ｆ行までは奇数フレームの画像のＲＧＢ値が画素の順番に並べて、画像データ行列Ｉの第Ｆ＋１行目から第２Ｆ行までは偶数フレームの画像のＲＧＢ値が画素の順番に並べるので、画像データ行列Ｉは２Ｆ×３Ｐの行列となる。
【００５４】
そもそも、各ＲＧＢ値（Ｃｒｉｊ，Ｃｇｉｊ，Ｃｂｉｊ）は、式（１）で与えられているので、式（２２）は、次に示す行列Ｌと行列Ｎの積として、
【数２３】
2014042210.tif 000025
【数２４】
2014042210.tif 000026
【数２５】
2014042210.tif 000027
と表現できる。
【００５５】
行列Ｌは光源方向行列であり、行列Ｎは各要素がテクスチャ画像の画素値（ｒｊ，ｇｊ，ｂｊ）でスケール倍された表面法線行列である。式（２３）〜式（２５）により、２Ｆ×３Ｐの行列Ｉは２Ｆ×３の行列Ｌと３×３Ｐの行列Ｎに分解でき、行列Ｉのランクはたかだか３となる。３次元形状復元部５３は、式（２３）〜式（２５）に示した行列分解に基づいて処理を行う。
【００５６】
まず、３次元形状復元部５３は、処理を開始すると、平面射影補正部５２から転送された２Ｆ枚の時系列画像から、式（２２）のデータフォーマットに従った画像データ行列Ｉを生成する（ステップＳ５１）。この行列を特異値分解により、
【数２６】
2014042210.tif 000028
【数２７】
2014042210.tif 000029
と行列分解を行う（ステップＳ５２）。Ｆ′は便宜上２Ｆ−３と置換している。特異値分解は公開されている数学ライブラリ等を使用する。
【００５７】
次に、３次元形状復元部５３は、式（２３）〜式（２５）において行列Ｉのランクはたかだか３であるので、それ以上の高次の行列要素は雑音と見なして、
【数２８】
2014042210.tif 000030
のランク３の部分空間の近似を得る（ステップＳ５３）。
【００５８】
ここで、仮の表面法線行列〜Ｎ（〜はＮの上に付く）と仮の光源方向行列〜Ｌ（〜はＬの上に付く）を、
それぞれ、
【数２９】
2014042210.tif 000031
【数３０】
2014042210.tif 000032
で得る。
【００５９】
仮の行列として得たのは、式（２９）の〜Ｌ（〜はＬの上に付く）は必ずしも式（２４）の行列Ｌと一致しないからである。そこで、３×３の線形変換行列Ｑを算出し、この線形変換行列Ｑによって、
【数３１】
2014042210.tif 000033
【数３２】
2014042210.tif 000034
の変換を行って、光源方向行列Ｌと表面法線行列Ｎを得る必要がある。
【００６０】
ここで、線形変換行列Ｑを決定するための拘束条件について補足する。奇数フレームの照明方向ベクトルｌ２ｋ−１は式（８）で与えられ、偶数フレームの照明方向ベクトルｌ２ｋは式（９）で与えられるので、式（２４）は、
【数３３】
2014042210.tif 000035
と表現できる。
【００６１】
式（３３）から、ペアとなる奇数フレームの照明方向ベクトルｌ２ｋ−１と偶数フレームの照明方向ベクトルｌ２ｋは、
【数３４】
2014042210.tif 000036
【数３５】
2014042210.tif 000037
【数３６】
2014042210.tif 000038
を満たすことが分かる。線形行列変換Ｑの算出では、式（３４）〜式（３６）の拘束条件を使う。
【００６２】
次に、線形変換行列Ｑの算出の詳細を説明する。ペアフレームに該当する式（３４）〜式（３６）は、式（２９）と式（３１）を使って、
【数３７】
2014042210.tif 000039
【数３８】
2014042210.tif 000040
【数３９】
2014042210.tif 000041
と得られる。式（３７）〜式（３９）はＦフレームにわたって存在し、未知数はＱＱＴであることが分かる。ＱＱＴは対称行列となるため、その独立な未知数は６個である。すなわち、式（３７）〜式（３９）は未知数が６個の連立方程式を構成する。そこで、３Ｆ×６サイズの行列Ａを用意する。
【００６３】
説明の都合上、
【数４０】
2014042210.tif 000042
【数４１】
2014042210.tif 000043
【数４２】
2014042210.tif 000044
とする。行列Ａの各要素には、式（３７）〜式（３９）に従って、
【数４３】
2014042210.tif 000045
を代入する。
【００６４】
次に、式（３４）〜式（３６）の右辺で与えられる定数項としての３Ｆ×１の行ベクトル、
【数４４】
2014042210.tif 000046
を用意する。ただし、α＝ｃｏｓ２（θ０）と置換した。すなわち、式（３７）〜式（３９）から構成される連立方程式は、
【数４５】
2014042210.tif 000047
となる。
【００６５】
したがって、式（４５）から、行ベクトルｑは、
【数４６】
2014042210.tif 000048
の計算で得ることができる。行ベクトルｑの各要素を、式（４０）のＱＱＴの各要素に代入する。この代入して得た対称行列をＢとする。この行列Ｂから線形変換行列Ｑを得るには、行列Ｂを固有値分解して、
【数４７】
2014042210.tif 000049
を計算する。
【００６６】
この固有値分解によって、線形変換行列Ｑは
【数４８】
2014042210.tif 000050
と求まる（ステップＳ５４）。以上により、線形変換行列Ｑを得たので、３次元形状復元部５３は、式（３２）を使って表面法線行列Ｎを算出する（ステップＳ５５）。
【００６７】
次に、３次元形状復元部５３は、カウンタ値ｊに１をセットし（ステップＳ５６）、ｊ≦Ｐであるかを判定しながら（ステップＳ５７）、表面法線行列Ｎから表面法線ｎｊとそれに対応する画素値（ｒｊ，ｇｊ，ｂｊ）を復元する。説明の便宜上、式（３２）で得た表面法線行列Ｎを、
【数４９】
2014042210.tif 000051
とする。
【００６８】
各画素に対する表面法線ｎｊは式（１０）で表すことができるので、行列Ｎのｊ番目の画素に該当する３つの行ベクトル：＾ｎｒｊ，＾ｎｇｊ，＾ｎｂｊ（＾はｎの上に付く）の第３番目の要素は、その画素値（ｒｊ，ｇｊ，ｂｊ）に対応することが明らかである。そこで、ここでは、ｍＴ＝［０，０，１］のベクトルを用意して、
【数５０】
2014042210.tif 000052
の内積計算より、画素値（ｒｊ，ｇｊ，ｂｊ）を得る（ステップＳ５８）。
【００６９】
さらに、式（２５）が示しているように、行列Ｎのｊ番目の３つの行ベクトル：＾ｎｒｊ，＾ｎｇｊ，＾ｎｂｊ（＾はｎの上に付く）はそれぞれの輝度値ｒｊ，ｇｊ，ｂｊでスケール倍されている事を利用して、
【数５１】
2014042210.tif 000053
の計算により、それぞれの画素の表面法線ベクトルｎｊを計算する（ステップＳ５９）。
【００７０】
そして、３次元形状復元部５３は、カウンタ値ｊを更新しながら（ステップＳ６０）、上記の計算を全ての画素（ｊ＝１，２，…，Ｐ）に対して行い、全ての点の表面法線ベクトルを得る。
【００７１】
最後に、テクスチャ画像の復元を行う（ステップＳ６１）とともに、求めた表面法線データを入力し（ステップＳ６２）、経路積分によって元の奥行き値Ｚｊ＝ｆ（Ｘｊ，Ｙｊ）を復元することにより３次元形状データ復元する（ステップＳ６３）。この計算は一般に公知であるため、ここでは詳細な説明を省略する。
【００７２】
このように、任意の凸形状の３次元形状データとその各点に付随するテクスチャ画像から時系列の陰影画像を生成してプロジェクタで投影したとき、その時系列にカメラ観測で得た画像から元の３次元形状とそのテクスチャ画像を同時に復元することができる。これにより、プロジェクタ・カメラシステムを使った映像投影において、スクリーン平面上にあたかも３次元物体が存在するかのように陰影画像を提示することができる。さらに、カメラ観測で得た陰影情報から物体の３次元形状とそのテクスチャ画像を同時に復元できるため、その立体情報を使った拡張現実や映像コミュニケーションを実現することが可能になる。
【００７３】
なお、図１における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより３次元形状復元処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７４】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００７５】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行っても良い。
【産業上の利用可能性】
【００７６】
プロジェクタの投影画像をカメラで観測し、その複数の観測画像から、投影画像に重畳されている元の３次元形状を復元することが不可欠な用途に適用できる。
【符号の説明】
【００７７】
１・・・プロジェクタ、２・・・テクスチャ付き３次元データ記憶部、３・・・画像送信部、３１・・・陰影画像生成部、３２・・・平面射影補正部、３３・・・画像出力部、４・・・カメラ、５・・・画像受信部、５１・・・画像入力部、５２・・・平面射影補正部、５３・・・３次元形状復元部
【図１】
2014042210.tif 000054
【図２】
2014042210.tif 000055
【図３】
2014042210.tif 000056
【図４】
2014042210.tif 000057
【図５】
2014042210.tif 000058
【図６】
2014042210.tif 000059
【図７】
2014042210.tif 000060
【図８】
2014042210.tif 000061