(57)【要約】【課題】知覚モデルを用いて、投影対象に与える動きを自動的に調整する技術を提供する。【解決手段】動きベクトル生成装置は、動きベクトルに基づき得られる投影像を投影した投影対象を撮影した場合に得られる画像である投影結果再現画像と、投影対象を撮影して得られる画像を投影結果再現画像を見たときの知覚的な動き量分だけ歪ませて生成する画像であるワープ画像との間の知覚的な差分に基づき、動きベクトルをスケーリングするためのパラメータである第一パラメータを生成する第一パラメータ生成部と、第一パラメータを用いて動きベクトルをスケーリングする動きベクトル縮小部とを含む。【選択図】図１
2020087069.tif 000002
【特許請求の範囲】
【請求項１】
動きベクトルに基づき得られる投影像を投影した投影対象を撮影した場合に得られる画像である投影結果再現画像と、投影対象を撮影して得られる画像を前記投影結果再現画像を見たときの知覚的な動き量分だけ歪ませて生成する画像であるワープ画像との間の知覚的な差分に基づき、前記動きベクトルをスケーリングするためのパラメータである第一パラメータを生成する第一パラメータ生成部と、
前記第一パラメータを用いて前記動きベクトルをスケーリングする動きベクトル縮小部とを含む、
動きベクトル生成装置。
【請求項２】
請求項１の動きベクトル生成装置であって、
前記動きベクトルと、前記第一パラメータを用いてスケーリングされた動きベクトルである縮小動きベクトルとの差分に含まれる非剛体運動ベクトル成分を抽出する非剛性ベクトル抽出部と、
前記縮小動きベクトルと、前記非剛体運動ベクトル成分とを用いて、前記第一パラメータで前記動きベクトルを縮小することで失われた動きを前記非剛体運動ベクトル成分で補償する際、前記非剛体運動ベクトル成分をスケーリングするパラメータである第二パラメータを生成する第二パラメータ生成部と、
前記第二パラメータを用いてスケーリングされた前記非剛体運動ベクトル成分と、前記縮小動きベクトルとを加算した統合ベクトルを求める動きベクトル統合部とを含む、
動きベクトル生成装置。
【請求項３】
請求項１または請求項２の動きベクトル生成装置であって、
前記第一パラメータ生成部は、
前記知覚的な動き量となるように入力される、動きベクトルをスケーリングする係数である第三パラメータを、知覚モデルを適用して得られる、ワープ画像の知覚表象を表す特徴ベクトルと投影結果再現画像の知覚表象を表す特徴ベクトルとの間の距離が最も小さくなるときの値として推定し、前記最も小さくなるときの値を不自然さの推定値として求める不自然さ推定部と、
前記知覚的な差分が所定の閾値に最も近くなるように前記第一パラメータを更新する第一パラメータ更新部とを含む、
動きベクトル生成装置。
【請求項４】
請求項２の動きベクトル生成装置であって、
前記第一パラメータ生成部は、１フレーム前の空間方向および時間方向に平滑化済みの第一パラメータλ"(t0-1)と、現在のフレームの空間方向に平滑化済みの第一パラメータλ'(t0)との差分と第一の値との大小関係に基づき、前記第一パラメータλ"(t0-1)と前記第一の値とを用いて、前記第一パラメータλ'(t0)を時間方向に平滑化する第一パラメータ平滑化部を含み、
前記第二パラメータ生成部は、１フレーム前の空間方向および時間方向に平滑化済みの第二パラメータλ"2(t0-1)と、現在のフレームの空間方向に平滑化済みの第二パラメータλ'2(t0)との差分と第二の値との大小関係に基づき、前記第二パラメータλ"2(t0-1)と前記第二の値とを用いて、前記第二パラメータλ'2(t0)を時間方向に平滑化する第二パラメータ平滑化部を含む、
動きベクトル生成装置。
【請求項５】
請求項１の動きベクトル生成装置であって、
NPを3以上の整数の何れかとし、
NP個の第nパラメータ生成部と、
NP個の第n動きベクトル統合部と、
前記動きベクトルと、前記第一パラメータを用いてスケーリングされた動きベクトルである縮小動きベクトルとの差分に含まれるNP個のバンドパス成分を抽出する非剛性ベクトル抽出部とを含み、
第2パラメータ生成部は、前記縮小動きベクトルと、1番目のバンドパス成分とを用いて、前記第一パラメータで前記動きベクトルを縮小することで失われた動きを1番目のバンドパス成分で補償する際、1番目のバンドパス成分をスケーリングするパラメータである第2パラメータを生成し、
第2動きベクトル統合部は、前記第2パラメータを用いてスケーリングされた1番目のバンドパス成分と、前記縮小動きベクトルとを加算した第2統合ベクトルを求め、
n=3,4,…,NP+1とし、第nパラメータ生成部は、第(n-1)統合ベクトルと、(n-1)番目のバンドパス成分とを用いて、前記第一パラメータで前記動きベクトルを縮小することで失われた動きを(n-1)番目のバンドパス成分で補償する際、(n-1)番目のバンドパス成分をスケーリングするパラメータである第nパラメータを生成し、
n=3,4,…,NP+1とし、第n動きベクトル統合部は、前記第nパラメータを用いてスケーリングされた(n-1)番目のバンドパス成分と、第(n-1)統合ベクトルとを加算した第n統合ベクトルを求める、
動きベクトル生成装置。
【請求項６】
請求項３の動きベクトル生成装置であって、
前記不自然さ推定部は、
投影対象を撮影した場合に得られる画像を前記第一パラメータでスケーリングした前記動きベクトルに基づいて歪めた部分を画像の勾配情報を用いた線形近似により表すことで、前記第三パラメータを求める第三パラメータ推定部を含む、
動きベクトル生成装置。
【請求項７】
請求項１から請求項６の何れかの動きベクトル生成装置であって、
前記第一パラメータ生成部は、スケーリング前の前記動きベクトルのサイズに対するスケーリング後の前記動きベクトルによって得られる動きの知覚サイズが所定の閾値以下にならないように前記第一パラメータに制約を設ける、
動きベクトル生成装置。
【請求項８】
請求項１から請求項７の何れかの動きベクトル生成装置で生成された動きベクトルを用いて投影像を生成する投影像生成装置であって、
スケーリング後の前記動きベクトルに基づき、投影対象を撮影して得られる画像を歪ませ、歪み画像を得、前記歪み画像を再現するための理想的な投影像を求め、前記理想的な投影像を投影装置で物理的に投影可能な範囲に制限し、投影装置における座標から見た撮影装置における座標へのマッピングに基づいて、制限した前記投影像を投影装置における座標系にマッピングする投影像生成部を含む、
投影像生成装置。
【請求項９】
第一パラメータ生成部が、動きベクトルに基づき得られる投影像を投影した投影対象を撮影した場合に得られる画像である投影結果再現画像と、投影対象を撮影して得られる画像を前記投影結果再現画像を見たときの知覚的な動き量分だけ歪ませて生成する画像であるワープ画像との間の知覚的な差分に基づき、前記動きベクトルをスケーリングするためのパラメータである第一パラメータを生成する第一パラメータ生成ステップと、
動きベクトル縮小部が、前記第一パラメータを用いて前記動きベクトルをスケーリングする動きベクトル縮小ステップとを含む、
動きベクトル生成方法。
【請求項１０】
請求項１から請求項７の何れかの動きベクトル生成装置、または、請求項８の投影像生成装置として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実際には動いていない対象が動いているように感じさせる技術に関する。
【背景技術】
【０００２】
実物体の対象の見た目を変える技術として、プロジェクションマッピングが広く使われ始めている。プロジェクションマッピングでは、プロジェクタを使って物体（投影対象）の表面に画像（ないし映像）を投影することで、投影対象の見た目を操作する。この技術を応用し、特許文献１では、静止した投影対象に動きの印象を与える手法が提案されている。特許文献１では、投影対象のグレースケール画像にコンピュータ上で動きをつけた映像を生成し、その映像の各フレームと元のグレースケール画像との差分をとった映像を、投影像とする。人間の視覚系は動きの情報を主に輝度情報に基づいて知覚するため、投影像をグレースケールとすることで、人間の視覚系の動き情報検出メカニズムを選択的に刺激することができる。一方で、形状、テクスチャ、色の情報は元の見た目が保たれるため、投影対象の自然な見た目を保ったまま、動きの印象だけを与えることができる。よって、視聴者に対して実際には動いていない投影対象が動いているように感じさせることができる。
【０００３】
しかし、動きの情報を含む投影像と、元の形状、テクスチャ、色の情報（実際には動いていない投影対象）との間には、実際には多少の乖離が生じている。こうした乖離は、それほど大きくなければ人間の視覚系において許容され、見た目上問題は生じない。しかし、乖離が大きくなると、投影像が実際には動いていない投影対象と馴染んで見えず、不自然な印象を与えてしまう。一般に、投影像と投影対象の乖離の程度は、与えようとする動きのサイズが大きいほど、大きくなりやすい傾向があることが知られている。しかし、どの程度まで動きのサイズが大きくなると不自然な印象が生じるかは、投影対象の模様、プロジェクタのダイナミックレンジ、プロジェクタの解像度、環境光の強さ、人間の視覚系の感度、などといった条件に依存するため、予測することが難しい。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１５／１６３３１７号
【非特許文献】
【０００５】
【非特許文献１】Taiki Fukiage, Takahiro Kawabe, Shin'ya Nishida, "A model of V1 metamer can explain perceived deformation of a static object induced by light projection", Vision Sciences Society, Florida, U. S. A., 2016年5月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実物体に動きの印象を与えるプロジェクションマッピング技術において、特許文献１では、投影像と投影対象の間の乖離感（投影結果の不自然さ）をなくすために、人手で動きのサイズを調整している。しかし、人手で調整を行うのは時間がかかる。さらに、一般に与える動き情報の領域毎、フレーム毎に最適な動きのサイズは異なるため、これらを全て人手で最適化するのは非常に困難な作業となる。
【０００７】
一方、非特許文献１では、投影対象に与える動き情報、投影前の画像、投影結果を撮影した画像、の３つが与えられた際に、投影結果の不自然さを推定する知覚的モデルが考案されている。しかし、こうした結果に基づいて動き情報をどのように最適化すれば良いかはこれまでに提案されていない。
【０００８】
本発明は、知覚モデルを用いて、投影対象に与える動きを自動的に調整する技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明の一態様によれば、動きベクトル生成装置は、動きベクトルに基づき得られる投影像を投影した投影対象を撮影した場合に得られる画像である投影結果再現画像と、投影対象を撮影して得られる画像を投影結果再現画像を見たときの知覚的な動き量分だけ歪ませて生成する画像であるワープ画像との間の知覚的な差分に基づき、動きベクトルをスケーリングするためのパラメータである第一パラメータを生成する第一パラメータ生成部と、第一パラメータを用いて動きベクトルをスケーリングする動きベクトル縮小部とを含む。
【発明の効果】
【００１０】
本発明によれば、知覚モデルを用いて、投影対象に与える動きを自動的に調整することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】第一実施形態に係る投影像生成装置の機能ブロック図。
【図２】第一実施形態に係る投影像生成装置の処理フローの例を示す図。
【図３】第一実施形態に係る第一パラメータ生成部の機能ブロック図。
【図４】第一実施形態に係る第一パラメータ生成部の処理フローの例を示す図。
【図５】第一実施形態に係る不自然さ推定部の機能ブロック図。
【図６】第一実施形態に係る不自然さ推定部の処理フローの例を示す図。
【図７】パラメータを３次元的に平滑化するためのアルゴリズムの例を示す図。
【図８】第一実施形態に係る第二パラメータ生成部の機能ブロック図。
【図９】第一実施形態に係る第二パラメータ生成部の処理フローの例を示す図。
【図１０】プロジェクタの投影方法を説明するための図。
【図１１】パラメータを２次元的に平滑化するためのアルゴリズムの例を示す図。
【図１２】第三実施形態に係る投影像生成装置の機能ブロック図。
【図１３】第三実施形態に係る投影像生成装置の処理フローの例を示す図。
【図１４】第四実施形態に係る投影像生成装置の機能ブロック図。
【図１５】第四実施形態に係る投影像生成装置の処理フローの例を示す図。
【図１６】第五実施形態に係る不自然さ推定部の機能ブロック図。
【図１７】第五実施形態に係る不自然さ推定部の処理フローの例を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。以下の説明において、テキスト中で使用する記号「^」等は、本来直前の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直後に記載する。式中においてはこれらの記号は本来の位置に記述している。また、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
【００１３】
＜第一実施形態＞
図１は第一実施形態に係る投影像生成装置の機能ブロック図を、図２はその処理フローを示す。
【００１４】
投影像生成装置は、投影対象撮影部１１０、カメラ-プロジェクタ間画素対応取得部１２０、加算部１２５、第一パラメータ生成部１３０、動きベクトル縮小部１４０、非剛性ベクトル抽出部１５０、第二パラメータ生成部１６０、動きベクトル統合部１７０、投影像生成部１８０および投影部１９０を含む。
【００１５】
以下に、投影像生成装置の概略を説明する。投影像生成装置は、投影対象撮影部１１０に含まれるカメラを介して入力画像を取得する。これとは別に、投影像生成装置は、投影対象に与える動きベクトルv(x,y,t)を入力とする。しかし、入力した動きベクトルをそのまま使って投影像を生成すると、ベクトルサイズが大きすぎるために投影結果に見た目のズレ（不自然さ）が生じ得る場合がある。これを防ぐため、第一パラメータ生成部１３０では、不自然さが生じないように動きベクトルv(x,y,t)を縮小するパラメータ(以下、第一パラメータともいう)λ(x,y,t)を生成する。しかし、単純に動きベクトルv(x,y,t)を縮小するだけでは、投影結果で与えられる動きの印象が非常に弱くなってしまうことが多い。このため、非剛性ベクトル抽出部１５０で動きベクトルv(x,y,t)中の非剛体運動ベクトル成分Δvh(x,y,t)を抽出し、この成分を加えて動きベクトルのサイズを大きくする。このとき、縮小した動きベクトルに非剛体運動ベクトル成分Δvh(x,y,t)を加えることで再び投影結果に不自然さが生じないようにするため、第二パラメータ生成部１６０において、非剛体運動ベクトル成分Δvhをスケーリングする係数(以下、第二パラメータともいう)λ2(x,y,t)を生成する。動きベクトル統合部１７０において、λ(x,y,t)v(x,y,t)＋λ2(x,y,t)Δvh(x,y,t)を最適な動きベクトル(以下、統合ベクトルともいう)として計算する。投影像生成部１８０は、最適な動きベクトルを用いて、投影像（投影パターン）を生成する。投影部１９０は、生成した投影像を投影対象に投影する。
【００１６】
本実施形態では、投影像生成装置の投影対象撮影部１１０がカメラなどの撮影装置を含み、撮影装置で撮影した入力画像を取得する構成としたが、投影対象撮影部１１０が撮影装置を含まず、別装置の撮影装置で撮影した画像を入力として受け取る構成としてもよい。また、投影像生成装置の投影部１９０がプロジェクタなどの投影装置を含み、生成した投影像を投影対象に投影する構成としたが、別装置の投影装置に投影像を出力し、投影装置が投影像を投影対象に投影する構成としてもよい。本実施形態では、撮影装置をカメラとし、投影装置をプロジェクタとして説明する。
【００１７】
投影像生成装置は、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。投影像生成装置は、例えば、中央演算処理装置の制御のもとで各処理を実行する。投影像生成装置に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。投影像生成装置の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。投影像生成装置が備える各記憶部は、例えば、RAM（Random Access Memory）などの主記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。ただし、各記憶部は、必ずしも投影像生成装置がその内部に備える必要はなく、ハードディスクや光ディスクもしくはフラッシュメモリ（Flash Memory）のような半導体メモリ素子により構成される補助記憶装置により構成し、投影像生成装置の外部に備える構成としてもよい。
【００１８】
以下、各部について説明する。
【００１９】
[投影対象撮影部１１０]
投影対象撮影部１１０は、投影対象撮影部１１０に含まれるカメラで撮影した画像を入力とし、これらを用いて、第一パラメータ生成部１３０、投影像生成部１８０において入力として利用される最小輝度画像IMin(x,y)及び最大輝度画像IMax(x,y)を取得して、出力する。ここで、(x,y)は画素の座標を表す。
【００２０】
最小輝度画像IMin(x,y)は、プロジェクタから投影対象に向けて最小輝度を投射している際の投影対象をカメラで撮影して得られる画像から取得することができる。
【００２１】
最大輝度画像IMax(x,y)は、プロジェクタから投影対象に向けて最大輝度を投射している際の投影対象をカメラで撮影して得られる画像から取得することができる。
【００２２】
投影対象撮影部１１０は、最小輝度画像IMin(x,y)と最大輝度画像IMax(x,y)とを図示しない記憶部に保存する。なお、画像はグレースケールで取得するか、カラーで取得後にグレースケールに変換して用いるものとする。
【００２３】
さらに、カメラで撮影された領域の任意の場所の輝度を輝度計などを用いて計測する。この箇所の輝度の値を対応するカメラの画素値で割った比率ρを記憶部に保持しておく。比率ρは第一パラメータ生成部１３０及び第二パラメータ生成部１６０内の不自然さ推定部１３４，１６５において、カメラで撮影した画像の画素値を輝度の値に変換する際に利用する。このため、カメラは撮影対象の物理的な明るさ(輝度)と取得画像の画素値が線形関係となるように補正されていることが望ましい。
【００２４】
[カメラ-プロジェクタ間画素対応取得部１２０]
カメラ-プロジェクタ間画素対応取得部１２０は、カメラ座標系とプロジェクタ座標系の対応関係を取得し、出力する。例えば、カメラ-プロジェクタ間画素対応取得部１２０は、カメラ座標(cx,cy)から見たプロジェクタ座標(px,py)へのマッピング（C2Pマップ）と、プロジェクタ座標(px,py)から見たカメラ座標(cx,cy)へのマッピング(P2Cマップ)を取得し、出力する。取得方法としては、例えば、参考文献１に従って、グレーコードパターンをプロジェクタから投影しつつ、その投影結果をカメラで撮影した画像を入力とし、グレーコードをデコードすることでC2Pマップを得る方法がある。
（参考文献１）S. Inokuchi, K. Sato, and F. Matsuda, "Range-imaging for 3-D object recognition", in Proceedings of International Conference on Pattern Recognition, 1984, pp. 806-808.
【００２５】
P2Cマップはプロジェクタ座標系の各座標(px,py)が、C2Pマップ中のどの座標(cx,cy)にマップされているかを逆参照することで得られる。なお、C2Pマップに当該の座標(px,py)が存在しない場合に生じるP2Cマップの欠損は、周辺5[pixel] ×5[pixel]の値の中央値などを使って補間できる。補間に用いる画素の範囲はこれに限らず、欠損の広さに応じて調整することが望ましい。P2Cマップは第一パラメータ生成部１３０、第二パラメータ生成部１６０、投影像生成部１８０で使用される。C2Pは第一パラメータ生成部１３０、第二パラメータ生成部１６０で使用される。
【００２６】
[加算部１２５]
加算部１２５は、最小輝度画像IMin(x,y)、及び、最大輝度画像IMax(x,y)を入力とし、中間輝度画像IO(x,y)を得て、出力する。
【００２７】
加算部１２５は、最小輝度画像IMin(x,y)、最大輝度画像IMax(x,y)を以下の式に基づいて線形に重み付き加算し、中間輝度画像IO(x,y)を求める。
【００２８】
【数１】
2020087069.tif 000003
【００２９】
ここで、gは[0,1]の範囲の値をとる。最終的な投影像は、この中間輝度画像IO(x,y)の色や形の見た目を保ったまま、動きの印象を与えるように生成される。gが0の場合は、プロジェクタからの光を除いた環境光下での見た目を保った状態で動き印象を与えるが、この場合投影対象の模様のコントラスト極性が（明―＞暗）の方向にしか動かすことができない。同様に、gが1の場合は、投影対象の模様のコントラスト極性が（暗―＞明）の方向にしか動かすことができない。コントラスト極性が（明―＞暗）と（暗―＞明）の両方向に動きをつけるには、gは0より大きく1より小さい値である必要がある。環境光に対して投影光が強すぎると投影対象の自然な見た目を損なうことがあるため、多くの場合g=0.1〜0.3程度の値が適切と言える。ただし環境光が非常に明るい場合にはgをこれよりも大きく設定した方が良いこともある。
【００３０】
中間輝度画像IO(x,y)は、第一パラメータ生成部１３０と投影像生成部１８０へ出力される。
【００３１】
以上の投影対象撮影部１１０、カメラ-プロジェクタ間画素対応取得部１２０および加算部１２５における処理を動きベクトルv(x,y,t)が入力される前に行っておき、最小輝度画像IMin(x,y)、最大輝度画像IMax(x,y)、中間輝度画像IO(x,y)、P2Cマップ、C2Pマップ、比率ρを求めておく。
【００３２】
[第一パラメータ生成部１３０]
第一パラメータ生成部１３０は、最小輝度画像IMin(x,y)、最大輝度画像IMax(x,y)、中間輝度画像IO(x,y)、動きベクトルv(x,y,t)を入力とし、これらを用いて、第一パラメータλ(x,y,t)を求め（Ｓ１３０）、出力する。第一パラメータは、動きベクトルv(x,y,t)の大きさをスケーリングするパラメータである。tはフレーム番号を表す。なお、動きベクトルを歪み地図ともいう。ここで、比率ρ、P2Cマップ、C2Pマップについては、動きベクトルv(x,y,t)が入力される前に第一パラメータ生成部１３０内に予め入力され、設定されているものとする。
【００３３】
例えば、第一パラメータ生成部１３０は、後述する投影結果再現画像IPi(x,y,t)と、後述する不自然さのない理想的な歪み画像IW(α)i(x,y,t)との間の知覚的な差分di(t)に基づき、第一パラメータλ(x,y,t)を生成する。
【００３４】
図３は第一パラメータ生成部１３０の機能ブロック図を、図４はその処理フローの例を示す。第一パラメータ生成部１３０は、領域分割部１３１、投影結果生成部１３２、乗算部１３３、不自然さ推定部１３４、第一パラメータ更新部１３５および第一パラメータ平滑化部１３６を含む。
【００３５】
処理の順序としては、まず領域分割部１３１で処理が実行される。その後は、第一パラメータ更新部１３５を起点とし、第一パラメータ更新部１３５−＞乗算部１３３−＞投影結果生成部１３２−＞不自然さ推定部１３４−＞第一パラメータ更新部１３５のようにループ処理が行われる。一定の条件を満たした際にループを終え、第一パラメータ更新部１３５から第一パラメータ平滑化部１３６に処理が移る。ループの制御は第一パラメータ更新部１３５に含まれる。詳細は後述する。
【００３６】
[領域分割部１３１]
領域分割部１３１は、最小輝度画像IMin(x,y)、最大輝度画像IMax(x,y)、中間輝度画像IO(x,y)、動きベクトルv(x,y,t)を入力とし、それぞれ既定の分割数、または、既定の大きさ（例えば64[pixel]×64[pixel]）の小領域に分割する（Ｓ１３１）。小領域の大きさは、これに限るものではないが、１領域内で後述するLaplacian Pyramidを生成するのに十分な大きさである必要がある。
【００３７】
領域分割された最小輝度画像IMini(x,y)および領域分割された最大輝度画像IMaxi(x,y)は投影結果生成部１３２へ出力され、領域分割された中間輝度画像IOi(x,y)は投影結果生成部１３２と不自然さ推定部１３４へ出力され、領域分割された動きベクトルvi(x,y,t)は乗算部１３３へ出力される。
【００３８】
領域分割された最小輝度画像IMini(x,y)、領域分割された最大輝度画像IMaxi(x,y)、領域分割された中間輝度画像IOi(x,y)は、組にされ、図示しない記憶部に記憶される。記憶部に記憶された、領域分割された最小輝度画像IMini(x,y)、領域分割された最大輝度画像IMaxi(x,y)、領域分割された中間輝度画像IOi(x,y)は、第二パラメータ生成部１６０の投影結果生成部１６２と不自然さ推定部１６５で読みだされ使用される。
【００３９】
第一パラメータ生成部１３０における以後の処理は、第一パラメータ平滑化部１３６を除き、各領域iの各フレームtについて独立に実行される。第一パラメータλi(t)は各領域iの各フレームtにつき1つ出力され、全ての領域・フレームについて第一パラメータλi(t)が得られたら、それらはまとめて第一パラメータ平滑化部１３６に入力される。
【００４０】
[乗算部１３３]
乗算部１３３は、領域分割された動きベクトルvi(x,y,t)、領域iの現在の第一パラメータλi(t)を入力とする。現在の第一パラメータλi(t)は第一パラメータ更新部１３５から出力された値を使用する。
【００４１】
乗算部１３３は、領域分割された動きベクトルvi(x,y,t)と、領域iの現在の第一パラメータλi(t)とを乗算し（Ｓ１３３）、積（ベクトルλi(t)vi(x,y,t)）を投影結果生成部１３２と不自然さ推定部１３４に出力する。
【００４２】
[投影結果生成部１３２]
投影結果生成部１３２は、領域分割された最小輝度画像IMini(x,y)、領域分割された最大輝度画像IMaxi(x,y)、領域分割された中間輝度画像IOi(x,y)、現在の第一パラメータでスケーリングされた動きベクトルλi(t)vi(x,y,t)、P2Cマップ、及び、C2Pマップを入力とし、現在の第一パラメータを適用した際の、領域iにおける投影結果再現画像IPi(x,y,t)を出力する。
【００４３】
投影結果生成部１３２は、現在の第一パラメータλi(t)を適用した際の投影結果再現画像IPi(x,y,t)を以下のように生成する（Ｓ１３２）。なお、投影結果再現画像とは、動きベクトルλi(t)vi(x,y,t)に基づき得られる投影像を投影した投影対象をカメラで撮影した場合に得られると想定される画像である。投影結果生成部１３２は、計算機上でシミュレートすることで投影結果再現画像を得る。
【００４４】
投影結果生成部１３２は、現在の第一パラメータλi(t)でスケーリングされた動きベクトルλi(t)vi(x,y,t)に基づいて、中間輝度画像IOi(x,y)を歪ませ、歪み画像IWi(x,y,t)を得る。歪ませる方法は任意であるが、例えば、画像を4[pixel] ×4[pixel]サイズのグリッドで分割し、各頂点をその座標に対応する動きベクトルλi(t)vi(x,y,t)分だけ移動させ、頂点に囲まれた領域を元の正方形の画像を双線形補間法などで引き伸ばしつつ（あるいは縮めつつ）埋めていくという方法がある。グリッドサイズはこれに限らないが、上記領域分割部１３１での画像分割サイズよりも小さく、かつ動きベクトルvi(x,y,t)の特徴を表現するのに十分な解像度で分割することが望ましい。
【００４５】
次に、投影結果生成部１３２は、歪み画像IWi(x,y,t)を再現するための理想的な投影像(使用するプロジェクタの物理的な制限を考慮していない投影像)IMi(x,y,t)を以下の式によって求める。
【００４６】
【数２】
2020087069.tif 000004
【００４７】
さらに、式(2)で求めたIMi(x,y,t)の値をプロジェクタで物理的に投影可能な範囲[0,1]に制限する。
【００４８】
投影結果生成部１３２は、プロジェクタの解像度を再現するため、直前のステップで得られた画像をP2Cマップに基づいてプロジェクタ座標系にマッピングし、そこから再度C2Pマップに基づいてカメラ座標系にマッピングし直す。これにより、カメラ座標系において投影像がプロジェクタの解像度に応じた粗さとなる。正確な再現のためには、カメラの解像度がプロジェクタの解像度よりも十分に高い必要がある。ここで得られた画像をI^Mi(x,y,t)とする。
【００４９】
最後に、投影結果生成部１３２は、以下の式に基づいて、投影結果再現画像IiP(x,y,t)を得て、不自然さ推定部１３４に出力する。
【００５０】
【数３】
2020087069.tif 000005
【００５１】
投影結果再現画像IiP(x,y,t)は、プロジェクタから出る光の値を表し、領域分割された最小輝度画像IMini(x,y)の画素値と、領域分割された最大輝度画像IMaxi(x,y) の画素値とを、画像I^Mi(x,y,t)の画素値を重みとして線形補間して得ることができる。
【００５２】
[不自然さ推定部１３４]
不自然さ推定部１３４は、比率ρ、中間輝度画像IOi(x,y)、投影結果再現画像IPi(x,y,t)、第一パラメータλi(t)を乗算した動きベクトルλi(t)vi(x,y,t)を入力とし、これらを用いて、投影結果の不自然さの推定値diMin(t)を求め（Ｓ１３４）、出力する。処理は領域i、フレームt毎に独立に行われる。
【００５３】
（不自然さの推定例１）
例えば、不自然さ推定部１３４は、非特許文献１で提案された手法に基づき、投影の不自然さを推定する。以下、処理の概要を簡単に説明する。
【００５４】
不自然さ推定部１３４は、投影結果再現画像IPi(x,y,t)と、不自然さのない理想的な歪み画像（以下、ワープ画像ともいう）IW(α)i(x,y,t)との間の知覚的な差分di(t)の最小値diMin(t)を「投影結果の不自然さ」として出力する。なお、知覚的な差分di(t)の最小値を求めるとは、後述する知覚モデルを適用して得られる、ワープ画像IW(α)i(x,y,t)の知覚表象を表す特徴ベクトルと投影結果再現画像IPi(x,y,t)の知覚表象を表す特徴ベクトルとの間の距離が最も小さくなるときの値（距離）を求めることである。また、この際、「不自然さのない理想的な歪み画像IW(α)i(x,y,t)」は、「投影結果再現画像IPi(x,y,t)を見たときの知覚的な動き量αiλi(t)vi(x,y,t)」分だけ、元の中間輝度画像IOi(x,y)を計算機上で歪ませて生成する。ここで、αiは知覚的な動き量となるように入力された動きベクトルをスケーリングする係数（以後、第三パラメータと呼ぶ）である。第三パラメータαiは、投影結果再現画像IPi(x,y,t)とワープ画像IW(α)i(x,y,t)の知覚的な差分di(t)が最も小さくなるときの値として推定される。すなわち、不自然さ推定部１３４は、「投影結果再現画像IPi(x,y,t)を見たときの知覚的な動き量」を決定する第三パラメータαiと不自然さの推定値diMin(t)の同時推定を行う。
【００５５】
図５は不自然さ推定部１３４の機能ブロック図を、図６はその処理フローの例を示す。図５に示すとおり、不自然さ推定部１３４は、第三パラメータ乗算部１３４Ａ、ワープ画像生成部１３４Ｂ、第三パラメータ更新部１３４Ｃ、知覚モデル適用部１３４Ｄ、知覚差分計算部１３４Ｅを含む。処理の順序としては、第三パラメータ更新部１３４Ｃを起点とし、第三パラメータ更新部１３４Ｃ−＞第三パラメータ乗算部１３４Ａ−＞ワープ画像生成部１３４Ｂ−＞知覚モデル適用部１３４Ｄ−＞知覚差分計算部１３４Ｅ−＞第三パラメータ更新部１３４Ｃのようにループ処理が行われる。一定の条件を満たした際にループを終え、第三パラメータ更新部１３４Ｃから不自然さの推定値diMin(t)が第一パラメータ更新部１３５に向けて出力される。ループの制御は第三パラメータ更新部１３４Ｃに含まれる。以下、順に記述していく。
【００５６】
[第三パラメータ乗算部１３４Ａ]
第三パラメータ乗算部１３４Ａは、第一パラメータλi(t)を乗算した動きベクトルλi(t)vi(x,y,t)、及び、現在の第三パラメータαiを入力とする。現在の第三パラメータαiは、第三パラメータ更新部１３４Ｃから出力された値を使用する。
【００５７】
第三パラメータ乗算部１３４Ａは、第一パラメータλi(t)を乗算した動きベクトルλi(t)vi(x,y,t)と現在の第三パラメータαiを乗算し（Ｓ１３４Ａ）、積（ベクトルαiλi(t)vi(x,y,t)）をワープ画像生成部１３４Ｂに出力する。
【００５８】
[ワープ画像生成部１３４Ｂ]
ワープ画像生成部１３４Ｂは、中間輝度画像IOi(x,y)、及び、第一パラメータ及び第三パラメータでスケーリングされた動きベクトルαiλi(t)vi(x,y,t)を入力とし、動きベクトルαiλi(t)vi(x,y,t)に基づいて中間輝度画像IOi(x,y)を歪ませ、ワープ画像IW(α)i(x,y,t)を得て、出力する（Ｓ１３４Ｂ）。歪ませる方法は任意であるが、例えば、画像を4[pixel] ×4[pixel]サイズのグリッドで分割し、各頂点をその座標に対応するベクトルαiλi(t)vi(x,y,t)分だけ移動させ、頂点に囲まれた領域を元の正方形の画像を双線形補間法などで引き伸ばしつつ（あるいは縮めつつ）埋めていくという方法がある。グリッドサイズはこれに限らないが、上記領域分割部１３１での画像分割サイズよりも小さく、かつ動きベクトルvi(x,y,t)の特徴を表現するのに十分な解像度で分割することが望ましい。
【００５９】
[知覚モデル適用部１３４Ｄ]
知覚モデル適用部１３４Ｄは、ワープ画像IW(α)i(x,y,t)及び投影結果再現画像IPi(x,y,t)、比率ρを入力とし、ワープ画像IW(α)i(x,y,t)に対する知覚応答r'(x,y,t)及び投影結果再現画像IPi(x,y,t)に対する知覚応答r(x,y,t)を求めて、出力する。
【００６０】
知覚モデル適用部１３４Ｄは、ワープ画像IW(α)i(x,y,t)及び投影結果再現画像IPi(x,y,t)に対し、独立に同一の処理を行うため、以下では入力画像(ワープ画像IW(α)i(x,y,t)及び投影結果再現画像IPi(x,y,t))をI(x,y)として記述する（なお、簡略化のため、ここでは領域およびフレームを示すインデックスi,tを省略している）。知覚モデル適用部１３４Ｄは、入力画像に知覚モデルを適用し、知覚応答を求める（Ｓ１３４Ｄ）。本実施形態では、知覚モデルとして人の視覚系の初期段階に相当する第一次視覚野までのモデルを採用する。この第一次視覚野までのモデルは、任意の画像を入力とし、入力画像の各画素（領域）の各空間周波数成分、および各方位成分に対する応答（神経細胞の応答をシミュレーションした結果）を出力するモデルである。このモデルは、ワープ画像IW(α)i(x,y,t)の知覚表象を表す特徴ベクトル、および、投影結果再現画像IPi(x,y,t)の知覚表象を表す特徴ベクトルを求めるためのモデルとも言える。このモデルでは、まず、線形フィルタを用いて入力画像を複数の空間周波数帯、および方位に分解する。次に、このモデルでは、分解により得られた各成分の各画素に対応する値を、非線形に補正し（ゲインコントロール）、補正後の値を前述の応答として出力する。ただし、本実施形態では、計算速度を鑑みて画像の方位成分を分析する処理を省略などする。ただし、知覚応答のモデルとしてはここで記述する実装に限らず、方位成分の分析を含めたモデルや、より高次の視覚野の応答を再現したモデルを利用しても良い。
【００６１】
(処理１)まず、入力画像I(x,y)の画素値に投影対象撮影部１１０で取得した比率ρを乗算し、輝度単位に変換する。ここから、参考文献２に記載の方法で、輝度単位に変換した入力画像をJND(Just Noticeable Difference)スケール画像L(x,y)に変換する。
（参考文献２）R. Mantiuk, S. J. Daly, K. Myszkowski, and H.-P. Seidel. "Predicting visible differences in high dynamic range images model and its calibration". In Proceedings of SPIE, vol. 5666, pp. 204-214, 2005.
【００６２】
JNDスケールでは、変化がぎりぎり知覚できる閾値に相当する輝度変化が１と定義されるように明るさがマッピングされる。すなわち、Ψ(L)をJNDスケール値Lから輝度に変換する関数と定義すると、
【００６３】
【数４】
2020087069.tif 000006
【００６４】
と表すことができる。ここでtviは、順応輝度に対する輝度変化の閾値を与える関数である。本実施形態では、上記参考文献２に習い、tviには以下の式を用いた。
【００６５】
【数５】
2020087069.tif 000007
【００６６】
ここで、(π1,π2,π3,π4)=(30.162, 4.0627, 1.6596, 0.2712)で、Yは順応輝度である。実際には、ここからΨの逆関数、つまり輝度からJNDスケール値に変換する関数Ψ-1を求めて使用する必要がある。Ψは単調増加関数であるため、Ψ-1は一意に求めることができる。本実施形態では、Ψを式(3)の数値解として求めてルックアップテーブルに保持しておき、これを参照する形で輝度からJNDスケール値を得る。記憶領域を節約するため、ルックアップテーブルはある程度離散化して保持しておき、それらの中間値を得る際は、線形補間を用いることで十分な結果を得ることができる。
【００６７】
(処理2)次に、JNDスケール画像L(x,y)からLaplacian Pyramidを生成して、複数のバンドパス画像b0(x,y), b1(x,y), b2(x,y),…,bN-1(x,y)を得る。本実施形態では、バンドパス画像の数N = 5としたが、Nの値はこれに限るものではなく、投影対象をより高い解像度で撮影するほど、Nを増やした方が良いと考えられる。また、通常Laplacian Pyramid生成時には、より低い空間周波数帯のバンドパス画像ほどダウンサンプリングにより解像度を落としていくが、本実施形態では、精度を上げるためにダウンサンプリングを行わないこととする。
【００６８】
(処理3)次に、各空間周波数帯に対する視覚系の感度を再現するため、Laplacian Pyramidの各バンドパス画像bj(x,y), j=0,1,2,…N-1に重み付けを行い、重み付きバンドパス画像を
【００６９】
【数６】
2020087069.tif 000008
【００７０】
のように得る。ここで、重みwjは以下の関数で表される。
【００７１】
【数７】
2020087069.tif 000009
【００７２】
ここで、sとθは重み関数の形状を決定する定数で、本実施形態では、実験データへのフィッティングにより、(s,θ)=(0.75,3.0)と定めた。ただし、重み関数はこれに限るものではなく、観察条件などに応じてパラメータを設定し直しても良い。
【００７３】
(処理4)最後に、視覚系のコントラストゲイン調節を再現するため、重み付きバンドパス画像cj(x,y)を以下の式で知覚応答rj(x,y)に変換する。
【００７４】
【数８】
2020087069.tif 000010
【００７５】
ここで、pとσはコントラストゲイン調節関数の形状を決める定数で、本実施形態では、実験データへのフィッティングにより、(p,σ)=(2.38,0.156)と定めた。sign(z)はzの符号を表す関数で、z<0なら-1、z>=0なら+1となる。コントラストゲイン調節の関数はこれに限るものではなく、視覚系の応答を近似できるものなら何でも良い。
【００７６】
以上の処理をワープ画像IW(α)i(x,y,t)及び投影結果再現画像IPi(x,y,t)それぞれについて行い、ワープ画像IW(α)i(x,y,t)に対する知覚応答r'ji(x,y,t)と投影結果再現画像IPi(x,y,t)に対する知覚応答rji(x,y,t)を求め、知覚差分計算部１３４Ｅに出力する。知覚応答r'ji(x,y,t)を要素とするベクトルが前述のワープ画像IW(α)i(x,y,t)の知覚表象を表す特徴ベクトルであり、知覚応答rji(x,y,t)を要素とするベクトルが前述の投影結果再現画像IPi(x,y,t)の知覚表象を表す特徴ベクトルである。
【００７７】
[知覚差分計算部１３４Ｅ]
知覚差分計算部１３４Ｅは、ワープ画像の知覚応答r'ji(x,y,t)と投影結果再現画像の知覚応答rji(x,y,t)を入力とし、入力した知覚応答間の距離di(t)を求めて出力する。
【００７８】
知覚差分計算部１３４Ｅは、以下の式により、知覚応答間の距離di(t)を計算する（Ｓ１３４Ｅ）。
【００７９】
【数９】
2020087069.tif 000011
【００８０】
ここでNx、Nyはそれぞれ知覚応答 rji(x,y,t)または r'ji(x,y,t)の横方向のサイズと縦方向のサイズを表す。なお、知覚応答 rji(x,y,t)と r'ji(x,y,t)のサイズは同一である。lnは自然対数を計算する関数である。距離の計算方法はこれに限らず、例えば通常のユークリッド距離やマンハッタン距離などを用いても良い。また、知覚的な動き量の推定における多少の誤差を容認するため、知覚応答rji(x,y,t)とr'ji(x,y,t)を局所領域px [pixel]x py [pixel]内で空間的にプーリングし、サイズを横・縦それぞれを1/px・1/pyに縮小した上で式(7)に代入しても良い。本実施形態では、px=py=2とした。
【００８１】
[第三パラメータ更新部１３４Ｃ]
第三パラメータ更新部１３４Ｃは、第三パラメータの探索処理の制御を行う。例えば、知覚差分計算部１３４Ｅで得られる知覚的な差分di(t)が最小となるように第三パラメータの探索が行われる。別の言い方をすると、第三パラメータ更新部１３４Ｃは、第三パラメータを、ワープ画像IW(α)i(x,y,t)の知覚表象を表す特徴ベクトル(知覚応答r'ji(x,y,t)を要素とするベクトル)と投影結果再現画像IPi(x,y,t)の知覚表象を表す特徴ベクトル(知覚応答rji(x,y,t)を要素とするベクトル)との間の距離が最も小さくなるときの値(動きベクトルをスケーリングする係数)として推定する。ここでは第三パラメータの探索に黄金分割探索法を使用する例を記述するが、探索アルゴリズムとして別のもの、例えば三分探索法などを用いても良い。
【００８２】
第三パラメータ更新部１３４Ｃは、前回の第三パラメータにおける知覚的な差分di(t)を入力とし、次回の第三パラメータαiを出力する。ただし、初回は入力はなしで出力のみ行う。また、最終サイクルでは知覚的な差分di(t)の最小値を不自然さの推定値diMin(t)として出力する。
【００８３】
第三パラメータ更新部１３４Ｃは、知覚的な差分di(t)が小さくなるように第三パラメータを更新する（Ｓ１３４Ｃ）。
【００８４】
例えば、黄金分割探索法を用いる。まず、第三パラメータ更新部１３４Ｃは、kサイクル目の探索区間の下限をL(k)、上限をH(k)とする。黄金分割探索法では、探索区間を２つの地点で３区間に分割し、分割地点の値（ここでは第三パラメータ）を入力としたときの関数の出力（ここでは知覚的な差分di(t)）を比較して、探索区間を縮めていく。以後、kサイクル目の２つの分割地点のうち小さい方をA(k)、大きい方をB(k)、A(k)における知覚差分をdA(k)、B(k)における知覚差分をdB(k)とする。また、φ=(1+√5)/2とする。
【００８５】
（k=0のとき）
(L(0),H(0))=(0,1)、(A(0),B(0))= (1/(1+φ),φ/(1+φ)）とし、初回の第三パラメータαi(0)=A(0)を第三パラメータ乗算部１３４Ａに出力する。L(0),H(0),A(0),B(0)の値は記憶部に保持しておく。
【００８６】
（k=1のとき）
(L(1),H(1),A(1),B(1))= (L(0),H(0),A(0),B(0))とし、次回の第三パラメータαi(1)=B(1)を第三パラメータ乗算部１３４Ａに出力する。また、dA(1)=di(t)を記憶部に保存する。
【００８７】
（k=2のとき）
入力された知覚差分をdB(1)=di(t)として記憶部に保存する。
【００８８】
(2-i)dA(1)<dB(1)の場合
新たな探索区間を(L(2),H(2))=(L(1),B(1))と設定し、新たな分割地点を(A(2),B(2))=((φL(2)+ H(2))/(1+φ),A(1))と設定する。また、dB(2)=dA(1)として記憶部に保存する。次回の第三パラメータはαi(2)=A(2)として、記憶部に保存すると共に第三パラメータ乗算部１３４Ａに出力する。
【００８９】
(2-ii)dA(1)>dB(1)の場合
新たな探索区間を(L(2),H(2))=(A(1),H(1))と設定し、新たな分割地点を(A(2),B(2))=(B(1),(L(2)+φH(2))/(1+φ))と設定する。また、dA(2)=dB(1)として記憶部に保存する。次回の第三パラメータはαi(2)=B(2)として記憶部に保存すると共に第三パラメータ乗算部１３４Ａに出力する。
【００９０】
（k≧3のとき）
αi(k-1)=A(k-1)の場合は入力された知覚差分をdA(k-1)=di(t)として記憶部に保存する。αi(k-1)=B(k-1)の場合は入力された知覚差分をdB(k-1)=di(t)として記憶部に保存する。その後はk=2の時と同様に、
【００９１】
(3-i)dA(1)<dB(1)の場合
新たな探索区間を(L(k),H(k))=(L(k-1),B(k-1))と設定し、新たな分割地点を(A(k),B(k))=((φL(k)+ H(k))/(1+φ),A(k-1))と設定する。また、dB(k)=dA(k-1)として記憶部に保存する。次回の第三パラメータはαi(k)=A(k)として記憶部に保存すると共に第三パラメータ乗算部１３４Ａに出力する。
【００９２】
(3-ii)dA(1)>dB(1)の場合
新たな探索区間を(L(k),H(k))=(A(k-1),H(k-1))と設定し、新たな分割地点を(A(k),B(k))=(B(k-1),(L(k)+φH(k))/(1+φ))と設定する。また、dA(k)=dB(k-1)として記憶部に保存する。次回の第三パラメータはαi(k)=B(k)として記憶部に保存すると共に第三パラメータ乗算部１３４Ａに出力する。
【００９３】
上記(3-i),(3-ii)のいずれかにおいて、探索区間の幅H(k)-L(k)が一定値τα未満となった場合（Ｓ１３４Ｃ−２）に探索を終え、dA(k-1)<dB(k-1)の場合はdiMin(t)= dA(k-1)として、dA(k-1)>dB(k-1)の場合はdiMin(t)= dB(k-1)として、diMin(t)を不自然さ推定部１３４の出力とする。出力先は、不自然さ推定部が第一パラメータ生成部１３０内で用いられている場合(不自然さ推定部１３４)には第一パラメータ更新部１３５に、第二パラメータ生成部１６０内で用いられている場合（不自然さ推定部１６５）には第二パラメータ更新部１６６に出力する。ταは小さいほど推定精度が上がるが、その分計算コストは増す。本実施形態ではτα=0.05とした。
【００９４】
（不自然さの推定例２）
ワープ画像IW(α)i(x,y,t)と投影結果再現画像IPi(x,y,t)を入力として、知覚差分を直接出力するモデル（このモデルを推定例２における知覚モデルともいう）を用いて知覚的な差分di(t)を求めてもよい。つまり、不自然さの推定例１における、ワープ画像の知覚応答r'ji(x,y,t)と投影結果再現画像の知覚応答rji(x,y,t)とを求め、その間の距離di(t)を求めるのではなく、直接、ワープ画像IW(α)i(x,y,t)と投影結果再現画像IPi(x,y,t)とから知覚的な差分di(t)を求める。
【００９５】
この例では、不自然さ推定部１３４は知覚差分計算部１３４Ｅを含まず、知覚モデル適用部１３４Ｄは、ワープ画像IW(α)i(x,y,t)と投影結果再現画像IPi(x,y,t)とを入力とし、これらの値に知覚モデルを適用し、知覚的な差分di(t)を求め（Ｓ１３４Ｄ，Ｓ１３４Ｅ）、出力する。なお、不自然さ推定部１３４の他の各部の処理については、不自然さの推定例１と同様である。
【００９６】
なお、本推定例において、第三パラメータ更新部１３４Ｃにおける処理は、ワープ画像IW(α)i(x,y,t)の知覚表象を表す特徴ベクトルと投影結果再現画像IPi(x,y,t)の知覚表象を表す特徴ベクトルとを求めたり、その間の距離を求めたりすることなく、結果として、第三パラメータは、ワープ画像IW(α)i(x,y,t)の知覚表象を表す特徴ベクトルと投影結果再現画像IPi(x,y,t)の知覚表象を表す特徴ベクトルとの間の距離が最も小さくなるときの値（動きベクトルをスケーリングする係数）として推定される。
【００９７】
同様に、本推定例では、不自然さ推定部１３４において、結果として、知覚的な差分di(t)の最小値は、ワープ画像IW(α)i(x,y,t)の知覚表象を表す特徴ベクトルと投影結果再現画像IPi(x,y,t)の知覚表象を表す特徴ベクトルとの間の距離が最も小さくなるときの値（距離）として求められる。
【００９８】
[第一パラメータ更新部１３５]
第一パラメータ更新部１３５は、第一パラメータの探索処理の制御を行う。例えば、不自然さ推定部１３４で得られる不自然さの推定値diMin(t)が所定の閾値τに最も近しくなるように探索が行われる。τの値は予め固定の閾値を設定しておいても良いし、ユーザーが調節可能なインターフェースを提供しても良い。本実施形態では、経験的にτ=-2.28と定めた。例えば、第一パラメータの探索には２分探索法を使用する。
【００９９】
第一パラメータ更新部１３５は、前回の第一パラメータにおける不自然さの推定値diMin(t)を入力とし、次回の第一パラメータλi(t)を出力する。ただし、初回は入力はなしで出力のみ行う。
【０１００】
第一パラメータ更新部１３５は、不自然さの推定値diMin(t)が所定の閾値τに最も近しくなるように、第一パラメータλi(t)を更新する（Ｓ１３５）
まず、初回、第一パラメータ更新部１３５は、λi(t)=0.5、ステップサイズstp=0.25として記憶部に保存するとともに、λi(t)を乗算部１３３に出力する。
【０１０１】
以降のサイクルでは、第一パラメータ更新部１３５は、入力された不自然さの推定値diMin(t)と閾値τの比較結果に基づいて、以下のようにλi(t)を更新する。
【０１０２】
diMin(t)<τのとき、第一パラメータ更新部１３５は、λi(t)=λi(t)+stpとして第一パラメータを更新し、記憶部に保存する。
【０１０３】
diMin(t)>τのとき、第一パラメータ更新部１３５は、λi(t)=λi(t)-stpとして第一パラメータを更新し、記憶部に保存する。
【０１０４】
所定の条件を満たす場合（Ｓ１３５Ａのyes）、例えば、diMin(t)≦τまたはサイクル数がNS回目のとき、第一パラメータ更新部１３５は、探索を終了し、λi(t)を第一パラメータ平滑化部１３６へ出力する。それ以外の場合（Ｓ１３５Ａのno）は、stp=stp/2としてステップサイズを更新し、記憶部に保存すると共に、λi(t)を乗算部１３３に出力する。
【０１０５】
[第一パラメータ平滑化部１３６]
第一パラメータ平滑化部１３６は、各領域・各フレームから得られた第一パラメータλi(t)を入力として平滑化し、平滑化された画素ごとの第一パラメータλ(x,y,t)を出力する（Ｓ１３６）。例えば、第一パラメータ平滑化部１３６は、各領域・各フレームから得られた第一パラメータλi(t)を、
(i)領域iに空間的に隣接する領域、かつ、フレームtから得られた第一パラメータ
(ii)領域i、かつ、フレームtに時間的に隣接するフレームから得られた第一パラメータ
(iii)領域iに空間的に隣接する領域、かつ、フレームtに時間的に隣接するフレームから得られた第一パラメータ
を用いて、空間的かつ時間的に平滑化する。説明のため、各領域・各フレームの第一パラメータをλ(m,n,t)と記述する。ここで、mは当該領域の横方向の位置、nは当該領域の縦方向の位置、tは当該領域の属する時間フレームを表す。まず、隣り合うλ(m,n,t)同士の間で極端な値の変化が生じないように平滑化を実行する。この時、λ(m,n,t)を以下の２つの制約を満たすようにλ'(m,n,t)に置き換えることで平滑化を行う。
【０１０６】
制約１：全てのm,n,tについてλ'(m,n,t)≦λ(m,n,t)を満たさなければならない。これにより、平滑化処理によって不自然さの閾値を超えてしまわないように制約できる。
制約２：全てのm,n,tについて、以下を満たさなければならない。
【０１０７】
【数１０】
2020087069.tif 000012
【０１０８】
ここで、(m',n',t')は(m,n,t)の周囲の領域の集合を表し、m'∈{m-1,m,m+1},n'∈{n-1,n,n+1},t'∈{t-1,t,t+1}である。ss、stは隣接領域間の勾配サイズの許容値である。第一パラメータは、入力された元の動きベクトルを質的に大きく変えない（剛体の動きは剛体のままとなるように）ことが求められるため、これらの値は十分小さく設定する必要がある。本実施形態では、(ss,st)=(0.06,0.03)とした。これらの値は領域のサイズや投影時のフレームレートに応じて調節することが望ましい。領域サイズが大きくなるほどssは大きくしてもよく、フレームレートが低くなるほどstは大きくしてもよい。本実施形態では、領域サイズは64[pixel]x64[pixel]、フレームレートは60FPSを想定している。
【０１０９】
以上の制約を満たすようにλ(m,n,t)を更新するアルゴリズムとして、本実施形態では参考文献３に記載の方法を用いる。
（参考文献３）A. Majumder and R. Stevens. "Perceptual photometric seamlessness in projection-based tiled displays". ACM Transactions on Graphics, 24(1):118-139, 2005.
【０１１０】
ただし、参考文献３ではパラメータの２次元的な平滑化のみを行っていたのに対し、本実施形態では３次元的に平滑化を行なうためにアルゴリズムの拡張を行なった。具体的な処理アルゴリズムの例を図７に示す。基本的な処理の流れは、λ(m,n,t)の各領域の値を順にスキャンしていき、上記制約１と制約２を満たすようにλの値を更新していく。更新の仕方は、以下の手順で行う。
【０１１１】
１．現在の領域と時空間的に隣接する26個の領域のうち、スキャンの進行方向と逆方向の11個の領域と現在の領域との差分（現在の領域の値-隣接領域の値）をそれぞれ計算する。
２．上記１．で計算した差分が、制約２の右辺で制限される値よりも大きければ、差分が右辺の値と等しくなるまで現在の領域の値を引き下げる。
【０１１２】
上記1,2の手順をすべての可能なスキャン方向の組について実行する。具体的には、水平軸、垂直軸、時間軸のスキャン方向の組みを(dm,dn,dt)、各軸における２つの方向を{-1,1}で表現した場合、(dm,dn,dt)=[(-1,-1,-1),(1,-1,-1),(-1,1,-1),(1,1,-1),(-1,-1,1),(1,-1,1),(-1,1,1),(1,1,1)]の８通りのスキャン方向の組みについてスキャンを行う。
【０１１３】
領域単位(m,n,t)での平滑化が終わったら、これを画素単位(x,y,t)に引き延ばす処理を行う。本実施形態では、フレームt毎に、領域単位の第一パラメータλ'(m,n,t)を双線形補間によって拡大処理して画素単位の第一パラメータλ(x,y,t)を得る。ただし、拡大時に用いる補間方法はこれに限るものではなく、例えばバイキュービック補間などを用いても良い。得られたλ(x,y,t)は、差分動きベクトル演算部と第二パラメータ生成部１６０、動きベクトル統合部１７０に出力される。
【０１１４】
[動きベクトル縮小部１４０]
動きベクトル縮小部１４０は、第一パラメータλ(x,y,t)と動きベクトルv(x,y,t)とを入力とし、第一パラメータλ(x,y,t)と動きベクトルv(x,y,t)とを乗算して縮小動きベクトルvs(x,y,t)=λ(x,y,t) v(x,y,t)を求め（Ｓ１４０）、非剛性ベクトル抽出部１５０、第二パラメータ生成部１６０、動きベクトル統合部１７０に出力する。
【０１１５】
[非剛性ベクトル抽出部１５０]
非剛性ベクトル抽出部１５０は、動きベクトルv(x,y,t)と縮小動きベクトルvs(x,y,t)とを入力とし、動きベクトルv(x,y,t)と縮小動きベクトルvs(x,y,t)との差分に含まれる非剛体運動ベクトル成分Δvh(x,y,t)を抽出し（Ｓ１５０）、第二パラメータ生成部１６０と動きベクトル統合部１７０に出力する。例えば、非剛性ベクトル抽出部１５０は、図示しない差分動きベクトル演算部とフィルタリング部とを含む。非剛体運動ベクトル成分Δvh(x,y,t)は動きベクトルv(x,y,t)のハイパス成分（高空間周波数成分）に相当し、フィルタリング部はハイパスフィルタとして機能する。
【０１１６】
[差分動きベクトル演算部]
差分動きベクトル演算部は、動きベクトルv(x,y,t)と縮小動きベクトルvs(x,y,t)とを入力とし、動きベクトルの差分Δv(x,y,t)=v(x,y,t)- vs(x,y,t)を計算し、フィルタリング部に出力する。
【０１１７】
[フィルタリング部]
フィルタリング部は、動きベクトルの差分Δv(x,y,t)を入力とし、動きベクトルの差分の非剛体運動ベクトル成分Δvh(x,y,t)を求めて、出力する。
【０１１８】
フィルタリング部は、差分Δv(x,y,t)にガウシアンフィルタを畳み込み、差分Δv(x,y,t)の低空間周波数成分Δvl(x,y,t)を得る。例えば、ガウシアンフィルタのカーネルの標準偏差を8ピクセルとする。標準偏差はこれに限らず任意に設定して良いが、小さすぎると次のステップで抽出する非剛体成分がほとんど残らず、大きすぎると非剛体成分に剛体運動成分が多く含まれてしまう可能性が高くなる。
【０１１９】
フィルタリング部は、低空間周波数成分Δvl(x,y,t)を元の差分Δv(x,y,t)から差し引き、高空間周波数成分である非剛体運動ベクトル成分Δvh(x,y,t)を得る。すなわち、Δvh(x,y,t)= Δv(x,y,t)-Δvl(x,y,t)である。
【０１２０】
[第二パラメータ生成部１６０]
第二パラメータ生成部１６０は、縮小動きベクトルvs(x,y,t)、非剛体運動ベクトル成分Δvh(x,y,t)、領域分割された最小輝度画像IMini(x,y)、領域分割された最大輝度画像IMaxi(x,y)、領域分割された中間輝度画像IOi(x,y)、比率ρ、P2Cマップ、及び、C2Pマップとを入力とする。第二パラメータ生成部１６０は、動きベクトル縮小部１４０から出力された第一パラメータでスケーリングされた縮小動きベクトルvs(x,y,t)と、非剛性ベクトル抽出部１５０から出力された非剛体運動ベクトル成分Δvh(x,y,t)と用いて、第二パラメータλ2を生成し（Ｓ１６０）、出力する。第二パラメータλ2(x,y,t)は、第一パラメータで縮小することで失われた動きを非剛体運動ベクトル成分で補償する際、vs(x,y,t)+ λ2(x,y,t)Δvh(x,y,t)のように、非剛体運動ベクトル成分Δvh(x,y,t)をスケーリングするパラメータである。
【０１２１】
図８は第二パラメータ生成部１６０の機能ブロック図を、図９はその処理フローの例を示す。
【０１２２】
図８に示すように、第二パラメータ生成部１６０は、第二領域分割部１６１、投影結果生成部１６２、第二乗算部１６３、動きベクトル加算部１６４、不自然さ推定部１６５、第二パラメータ更新部１６６、第二パラメータ平滑化部１６７とを含む。以下、各部の処理内容を説明する。
【０１２３】
[第二領域分割部１６１]
第二領域分割部１６１は、第一パラメータでスケーリングされた縮小動きベクトルvs(x,y,t)と、非剛性ベクトル抽出部１５０から出力された非剛体運動ベクトル成分Δvh(x,y,t)とを入力とし、領域分割された縮小動きベクトルvsi(x,y,t)、及び、領域分割された非剛体運動ベクトル成分Δvhi(x,y,t)を得て、出力する。ここで、iは領域番号を表す。
【０１２４】
第二領域分割部１６１は、第一パラメータ生成部１３０の領域分割部１３１と同様にして、入力ベクトル（縮小動きベクトルvs(x,y,t)と非剛体運動ベクトル成分Δvh(x,y,t)）を領域分割する（Ｓ１６１）。領域分割された縮小動きベクトルvsi(x,y,t)は動きベクトル加算部１６４へ、領域分割された非剛体運動ベクトル成分Δvhi(x,y,t)は第二乗算部１６３へ出力される。
【０１２５】
第二パラメータ生成部１６０における以後の処理は、第二パラメータ平滑化部１６７を除き、各領域iの各フレームtについて独立に実行される。第二パラメータλ2i(t)は各領域iの各フレームtにつき1つ出力され、全ての領域・フレームについてλ2i(t)が得られたら、それらはまとめて第二パラメータ平滑化部１６７に入力される。
【０１２６】
[第二乗算部１６３]
第二乗算部１６３は、領域分割された非剛体運動ベクトル成分Δvhi(x,y,t)、及び、領域iの現在の第二パラメータλ2i(t)を入力とし、領域分割された非剛体運動ベクトル成分Δvhi(x,y,t)と、領域iの現在の第二パラメータλ2i(t)とを乗算し（Ｓ１６３）、積（λ2i(t)Δvhi(x,y,t)）を動きベクトル加算部１６４に出力する。現在の第二パラメータλ2i(t)は、第二パラメータ更新部１６６から出力された値を使用する。
【０１２７】
[動きベクトル加算部１６４]
動きベクトル加算部１６４は、領域分割された縮小動きベクトルvsi(x,y,t)、及び、現在の第二パラメータλ2i(t)を乗算した非剛体運動ベクトル成分λ2i(t)Δvhi(x,y,t)を入力とし、縮小動きベクトルと非剛体運動ベクトル成分を統合したベクトルv^i(x,y,t)を求めて、出力する。
【０１２８】
動きベクトル加算部１６４は、縮小動きベクトルvsi(x,y,t)と非剛体運動ベクトル成分λ2i(t)Δvhi(x,y,t)を、v^i(x,y,t)= vsi(x,y,t)+ λ2i(t)Δvhi(x,y,t)のように統合し（Ｓ１６４）、統合したベクトルv^i(x,y,t)を投影結果生成部１６２及び不自然さ推定部１６５に出力する。
【０１２９】
[投影結果生成部１６２、不自然さ推定部１６５]
第二パラメータ生成部１６０の、投影結果生成部１６２、不自然さ推定部１６５は、入力される動きベクトルが「現在の第一パラメータでスケーリングされた動きベクトルλi(t)vi(x,y,t)」から「縮小動きベクトルと非剛体運動ベクトル成分を統合したベクトルv^i(x,y,t)」に入れ替わる以外は、第一パラメータ生成部１３０の投影結果生成部１３２、不自然さ推定部１３４とそれぞれ同様の処理Ｓ１６２，Ｓ１６５を行う。
【０１３０】
[第二パラメータ更新部１６６]
第二パラメータ更新部１６６は、前回の第二パラメータにおける不自然さの推定値diMin(t)を入力とし、次回の第二パラメータλ2i(t)を求めて出力する。ただし、初回は入力はなしで出力のみ行う。
【０１３１】
第二パラメータ更新部１６６では、第二パラメータの探索処理の制御を行う。例えば、不自然さ推定部１６５で得られる不自然さの推定値diMin(t)が所定の閾値τに最も近しくなるように探索が行われる。τの値は第一パラメータ更新部１３５で使用したものと同一の値を用いる。第一パラメータ更新部１３５と同様、探索には２分探索法を使用する。
【０１３２】
第二パラメータ更新部１６６は、第一パラメータが第二パラメータに置き換わる以外は、第一パラメータ更新部１３５と同様の処理Ｓ１６６，Ｓ１６６Ａを行う。
【０１３３】
[第二パラメータ平滑化部１６７]
第二パラメータ平滑化部１６７は、第一パラメータ平滑化部１３６と同様の処理Ｓ１６７を行う。第二パラメータ平滑化部１６７は、各領域・各フレームから得られた第二パラメータλ2i(t)を入力とし、第二パラメータλ2i(t)を平滑化して（Ｓ１６７）、平滑化された画素ごとの第二パラメータλ2(x,y,t)を出力する。ただし、非剛体運動ベクトル成分は局所的に動きの大きさが変化しても質的な動きの印象は大きく変わらないため、隣接領域間の勾配サイズの許容レベルを決定するパラメータ(ss,st)は第一パラメータ平滑化部１３６の時よりも大きめに設定するとよい。本実施形態では、(ss,st)=(0.3,0.06)とした。ただし、これらのパラメータはここで定めた値に限らず、動きサイズの空間的・時間的な不連続性が気にならない範囲で任意に設定しても良い。
【０１３４】
生成した第二パラメータλ2(x,y,t)は動きベクトル統合部１７０に出力される。
【０１３５】
[動きベクトル統合部１７０]
動きベクトル統合部１７０は、第二パラメータλ2(x,y,t)、非剛体運動ベクトル成分Δvh(x,y,t)、及び、縮小動きベクトルvs(x,y,t)を入力とし、統合動きベクトルv^(x,y,t)を求めて、出力する。
【０１３６】
動きベクトル統合部１７０は、第二パラメータ生成部１６０で生成された第二パラメータλ2(x,y,t)で非剛体運動ベクトル成分Δvh(x,y,t)をスケーリングし、これと第一パラメータでスケーリングされた縮小動きベクトルvs(x,y,t)とを加算し、最終的に投影像生成で使用する動きベクトル（統合動きベクトルv^(x,y,t)）を求める（Ｓ１７０）。つまり、動きベクトル統合部１７０は、次式により動きベクトルを統合する。
【０１３７】
【数１１】
2020087069.tif 000013
【０１３８】
動きベクトル統合部１７０は、統合動きベクトルv^(x,y,t)を投影像生成部１８０に出力する。
【０１３９】
[投影像生成部１８０]
投影像生成部１８０は、最小輝度画像IMin(x,y)、最大輝度画像IMax(x,y)、中間輝度画像IO(x,y)、統合動きベクトルv^(x,y,t)、及び、P2Cマップを入力とし、投影像IP(x,y,t)を得て、出力する。
【０１４０】
投影像生成部１８０は、統合動きベクトルv^(x,y,t)に基づいて中間輝度画像IO(x,y)を歪ませ、歪み画像IW(x,y,t)を得る(Ｓ１８０)。歪ませる方法は第一パラメータ生成部１３０における投影結果生成部１３２と同様である。
【０１４１】
投影像生成部１８０は、歪み画像を再現するための理想的な投影像IM(x,y,t)を第一パラメータ生成部１３０における投影結果生成部１３２と同様、式(2)によって求める。
【０１４２】
さらに、投影像生成部１８０は、IM(x,y,t)の値をプロジェクタで物理的に投影可能な範囲[0,1]に制限する。
【０１４３】
投影像生成部１８０は、上で得られた画像をP2Cマップに基づいてプロジェクタ座標系にマッピングしてIP(x,y,t)とし、投影部１９０に出力する。
【０１４４】
[投影部１９０]
投影部１９０は、投影像IP(x,y,t)を入力とし、入力された投影像を投影対象に向けてプロジェクタから投影する（Ｓ１９０）。
【０１４５】
投影像IP(x,y,t)に含まれるエッジが投影対象の輪郭、または、投影対象に含まれるエッジと重なるよう投影される。ここでは、カメラキャリブレーションで得たP2Cマップに基づいて投影像IP(x,y,t)を生成しているため、投影像の位置合わせは不要である。なお、プロジェクタは市販のもので構わないが、明るい部屋で用いる場合は、輝度の高いプロジェクタとする必要がある。
【０１４６】
投影部１９０は、公知の光プロダクション技術（例えば、参考文献４参照）によって、投影像IP(x,y,t)を、投影対象Mstaticに投影して動画M2を表示する。
【０１４７】
【数１２】
2020087069.tif 000014
【０１４８】
（参考文献４）河邉隆寛，澤山正貴，丸谷和史，西田眞也，（2014），“静止した2次元対象を運動情報によって錯覚的に変形させる光投影手法，” 2014年映像情報メディア学会年次大会, 5-3.
【０１４９】
ただし、○は、投影対象Mstaticの輝度成分に対して投影像IP(x,y,t)が複合的に加算・乗算される状態（加味される状態）を表す。言い換えると、投影対象Mstaticの輝度成分と投影像IP(x,y,t)とに対して加算および乗算の少なくとも一方を含む演算が施される状態を表す。すなわち、印刷物に光を投影した場合、紙やインクの特性に応じて反射のパターンが異なり、部分的には乗算的に輝度が変化し、他の部分では加算的に輝度が変化することが想定されるので、この両方の輝度変化を生じさせる計算を○で表している。
【０１５０】
＜効果＞
以上の構成により、投影する動き情報を、投影対象や投影環境に合わせて、領域毎、フレーム毎に自動的に調整し、最適化できる。さらに、人手では困難だった細かい調節を短時間で行うことができる。
【０１５１】
＜変形例＞
本実施形態では、投影対象撮影部１１０、カメラ-プロジェクタ間画素対応取得部１２０、加算部１２５を別装置とし、その出力値(IMax,IMin,IO,ρ，P2Cマップ、C2Pマップ)を、残りの構成からなる投影像生成装置の入力としてもよい。また、投影部１９０を別装置とし、投影像生成装置は、別装置の投影部１９０に投影像IP(x,y,t)を出力する構成としてもよい。
【０１５２】
また、本実施形態の投影像生成装置に含まれる第一パラメータ生成部１３０、動きベクトル縮小部１４０、非剛性ベクトル抽出部１５０、第二パラメータ生成部１６０、動きベクトル統合部１７０を取り出し、動きベクトル生成装置として機能させてもよい。この場合、動きベクトル生成装置は、IMax,IMin,IO,ρ，P2Cマップ、C2Pマップ、v(x,y,t)を入力とし、統合動きベクトルv^(x,y,t)を出力する。
【０１５３】
なお、以下の実施形態においても同様の変形が可能である。
【０１５４】
＜第二実施形態＞
特許文献１のように、人手で動きのサイズを調整する場合、対象にインタラクティブに動きを与えるようなアプリケーション（例えば、カメラで人の表情をリアルタイムにキャプチャしながら、その表情変化に基づく動きを別の写真や絵画にプロジェクションマッピングで与えるようなアプリケーション）を実現することはできない。
【０１５５】
第一実施形態では、第一パラメータ生成部１３０、及び第二パラメータ生成部１６０において、各フレームにおける各領域の第一パラメータλi(t)（あるいは第二パラメータλ2i(t)）が、全フレームの全領域について得られた後に、それらをまとめて第一パラメータ平滑化部１３６（あるいは第二パラメータ平滑化部１６７）において一度に平滑化して第一パラメータλ(x,y,t)（あるいは第二パラメータλ2(x,y,t)）を得るように処理がなされている。そのため、第一実施形態の方法は、特許文献１と同じように、入力となる動きベクトルv(x,y,t)を逐次的に（リアルタイムに）最適化していくことが求められるような場合（例えば、インタラクティブ性が求められるアプリケーション）には使えない。
【０１５６】
第二実施形態では、入力となる動きベクトルv(x,y,t)を毎フレーム逐次的に最適化するような処理の方法について記述する。以下では、第一実施形態からの変更点を中心に説明する。
【０１５７】
入力となる動きベクトルは、全フレームのv(x,y,t)ではなく、現在のフレームt=t0における動きベクトルv(x,y,t0)とする。これに合わせて、動きベクトル縮小部１４０、非剛性ベクトル抽出部１５０、動きベクトル統合部１７０、投影像生成部１８０では、現在のフレームに関する処理のみ行うものとする。
【０１５８】
[第一パラメータ生成部１３０]
第一パラメータ生成部１３０では、領域分割部１３１において、現在のフレームの動きベクトルv(x,y,t0)の領域分割を第一実施形態と同様に行う。領域毎に行われる処理（乗算部１３３、投影結果生成部１３２、不自然さ推定部１３４、第一パラメータ更新部１３５における処理）は、第一実施形態と同様に行う。
【０１５９】
第一パラメータ平滑化部１３６は、以下の処理に置き換える。
【０１６０】
[第一パラメータ平滑化部１３６]
第一パラメータ平滑化部１３６は、各領域・各フレームから得られた第一パラメータλi(t)を入力とし、平滑化された画素ごとの第一パラメータλ(x,y,t0)を求めて、出力する。
【０１６１】
第二実施形態における第一パラメータ平滑化部１３６では、空間方向の平滑化と時間方向の平滑化を別々に行う。空間方向の平滑化は、第一実施形態と同様の手順で、以下のように行われる。
【０１６２】
説明のため、各領域の第一パラメータをλ(m,n)と記述する。ここで、mは当該領域の横方向の位置、nは当該領域の縦方向の位置を表す。まず、隣り合うλ(m,n)同士の間で極端な値の変化が生じないように平滑化を実行する。この時、λ(m,n)を以下の２つの制約を満たすようにλ'(m,n)に置き換えることで平滑化を行う。
制約１：全てのm,nについてλ'(m,n)≦λ(m,n)を満たさなければならない。これにより、平滑化処理によって不自然さの閾値を超えてしまわないように制約できる。
制約２：全てのm,nについて、以下を満たさなければならない。
【０１６３】
【数１３】
2020087069.tif 000015
【０１６４】
ここで、(m',n')は(m,n)の周囲の領域の集合を表し、m'∈{m-1,m,m+1},n'∈{n-1,n,n+1}である。ssは隣接領域間の勾配サイズの許容値である。第一実施形態と同様に、ss=0.06とした。λ(m,n,t)を更新するアルゴリズムとして、第一実施形態と同様に、参考文献３に記載の方法を用いることができる。具体的な処理は図１１の通りである。
【０１６５】
空間方向の平滑化の後、時間方向に平滑化を行う。このために、１フレーム前の空間方向および時間方向に平滑化済みの第一パラメータλ”(m,n,t0-1)(以下、簡単のためλ”(t0-1)とかく)を記憶部から読み出し、空間方向に平滑化済みの現在フレームの第一パラメータλ'(m,n,t0) (以下、簡単のためλ'(t0)とかく)を、以下のように平滑化し、時間方向に平滑化済みの第一パラメータλ”(m,n,t0) (以下、簡単のためλ”(t0)とかく)を得る。
【０１６６】
【数１４】
2020087069.tif 000016
【０１６７】
ここで、Fはシステム全体のフレームレートを表し、s'tは前フレームからの勾配量の許容値（最大値）を決定するパラメータである。本実施形態では、フレームレートF=60の場合を想定し、s't=2とした。この場合、第一パラメータの許容される時間方向の勾配量は0.033となる。許容勾配量は必ずしもこの値である必要はないが、大きすぎると動きサイズの不連続性が目立つ結果となり得、小さすぎると投影結果の不自然さが閾値τよりも大きくなってしまうフレームが増えてしまう。こうした要素を鑑みつつ、最適なパラメータをユーザーが選択できるようにしても良い。なお、以前のフレームが存在しない場合には、λ”(t0)= λ'(t0)として以降の処理を行う。得られた平滑化済みの第一パラメータλ”(t0)は記憶部に記憶し、次フレームの平滑化処理に用いる。
【０１６８】
つまり、第一パラメータ平滑化部１３６は、「１フレーム前の空間方向および時間方向に平滑化済みの第一パラメータλ"(t0-1)」と、「現在のフレームの空間方向に平滑化済みの第一パラメータλ'(t0)」との差分と所定の値(s't/Fまたは-s't/F)との大小関係に基づき、第一パラメータλ"(t0-1)と所定の値(s't/Fまたは-s't/F)とを用いて、第一パラメータλ'(t0)を時間方向に平滑化する。
【０１６９】
最後に、λ”(t0)を第一実施形態と同様に、双線形補間法などで引き伸ばし、画素毎の第一パラメータλ（x,y,t0）を得る。
【０１７０】
[第二パラメータ生成部１６０]
第二パラメータ生成部１６０では、第二領域分割部１６１において、現在のフレームの縮小動きベクトルvs(x,y,t0)、及び現在のフレームの非剛体運動ベクトル成分Δvh(,y,t0)の領域分割を第一実施形態と同様に行う。領域毎に行われる処理（第二乗算部１６３、動きベクトル加算部１６４、投影結果生成部１６２、不自然さ推定部１６５、第二パラメータ更新部１６６における処理）は、第一実施形態と同様に行う。
【０１７１】
[第二パラメータ平滑化部１６７]
第二パラメータ平滑化部１６７は、第二実施形態における第一パラメータ平滑化部１３６と同様の処理に置き換える。
【０１７２】
つまり、第二パラメータ平滑化部１６７は、まず空間方向の平滑化を参考文献３に記載の方法で行った後で、時間方向の平滑化を行う。空間方向の平滑化を行う際の、空間方向の勾配サイズの許容レベルを決定するパラメータは、第一実施形態における第二パラメータ平滑化部１６７と同様に、ss＝0.3とした。時間方向の平滑化は、第二実施形態における第一パラメータ平滑化部１３６と同様に、「１フレーム前の空間方向および時間方向に平滑化済みの第二パラメータλ"2(t0-1)」と、「現在のフレームの空間方向に平滑化済みの第二パラメータλ'2(t0)」との差分と所定の値(s't/Fまたは-s't/F)との大小関係に基づき、第二パラメータλ"2(t0-1)と所定の値(s't/Fまたは-s't/F)とを用いて、第二パラメータλ'2(t0)を平滑化することで行う。ただし、勾配サイズの許容レベルを決定するパラメータs'tは第一パラメータ平滑化部の時よりも大きめに設定する。本実施形態では、s't=4とした。ただし、この値はここで定めた値に限らず、動きサイズの時間的な不連続性が気にならない範囲で任意に設定しても良い。
【０１７３】
＜効果＞
このような構成により、第一実施形態と同様の効果を得ることができる。さらに、動きベクトルv(x,y,t)を逐次的に（リアルタイムに）最適化していくことができる。対象にインタラクティブに動きを与えるようなアプリケーションに本発明を適用することができる。
【０１７４】
＜第三実施形態＞
第一実施形態及び第二実施形態と異なる部分を中心に説明する。
【０１７５】
第一実施形態および第二実施形態では、非剛性ベクトル抽出部１５０のフィルタリング部において動きベクトルの高周波成分を非剛体運動ベクトル成分Δvh(x,y,t)として取り出したが、ここで、複数のバンドパスフィルタを用いて複数のバンドパス成分を取り出してもよい。
【０１７６】
例えば、非剛性ベクトル抽出部１５０において、Laplacian pyramidなどを用いて動きベクトルを複数(NP個。NPは2以上の整数の何れか)のバンドパス成分Δvb_1,Δvb_2,…, Δvb_N_Pに分解し、異なる空間周波数成分ごとに第nパラメータ（n∈2,…,Np+1）を求める構成としてもよい。
【０１７７】
図１２は第三実施形態に係る投影像生成装置の機能ブロック図を、図１３はその処理フローの例を示す。ただし、図１２では、投影対象撮影部１１０、加算部１２５、カメラ-プロジェクタ間画素対応取得部１２０、投影部１９０の記載を省略する。
【０１７８】
第三実施形態に係る投影像生成装置は、第一実施形態または第二実施形態の投影像生成装置の第二パラメータ生成部１６０と動きベクトル統合部１７０に代えてNP個の第nパラメータ生成部１６０−ｎとNP個の第n動きベクトル統合部１７０−ｎとを含む（n∈2,…,Np+1）。
【０１７９】
[第nパラメータ生成部１６０−ｎ]
第nパラメータ生成部１６０−ｎは、第一実施形態（あるいは第二実施形態）における第二パラメータ生成部１６０と、以下で記述する点以外は同一の処理を行う。
【０１８０】
第nパラメータ生成部１６０−ｎは、第n-1動きベクトル統合部１７０−（ｎ−１）から出力された統合動きベクトルvn-1(x,y,t)(ただし、n=2のとき縮小動きベクトルvs(x,y,t))、動きベクトルの第n-1番目のバンドパス成分Δvb_n-1(x,y,t)、領域分割された最小輝度画像IMini(x,y)、領域分割された最大輝度画像IMaxi(x,y)、領域分割された中間輝度画像IOi(x,y)、比率ρ、P2Cマップ、及び、C2Pマップを入力として、これらを用いて、第nパラメータλnを求め（Ｓ１６０−ｎ）、出力する。第nパラメータλn(x,y,t)は、第一パラメータで縮小することで失われた動きを第n-1番目のバンドパス成分Δvb_n-1(x,y,t)で補償する際、vs(x,y,t)+λ2(x,y,t)Δv1(x,y,t)+…+λn(x,y,t)Δvb_n-1(x,y,t)+…+λN_p+1(x,y,t)Δvb_N_p(x,y,t)のように、第n-1番目のバンドパス成分Δvb_n-1(x,y,t)をスケーリングするパラメータである。
【０１８１】
つまり、第nパラメータ生成部１６０−ｎでは、非剛体運動ベクトル成分Δvh(x,y,t)は、動きベクトルの第n-1番目のバンドパス成分Δvb_n-1(x,y,t)に置き換える。
【０１８２】
n>2の時のみ、縮小動きベクトルvs(x,y,t)は第n-1動きベクトル統合部１７０−（ｎ−１）から出力された統合動きベクトルvn-1(x,y,t)に置き換え、第二パラメータλ2は第nパラメータλnに置き換える。
【０１８３】
第nパラメータ生成部１６０−ｎ内の第二パラメータ平滑化部１６７で使用する勾配量の制約ssおよびst(第二実施形態のようにリアルタイム処理を行う場合はs't)は、nに応じて徐々に大きくしていく（例えば、nが１増える毎に２倍ずつ増大させていく）。
【０１８４】
得られた第nパラメータλn(x,y,t)は第n動きベクトル統合部１７０−ｎに出力される。
【０１８５】
[第n動きベクトル統合部１７０]
第n動きベクトル統合部１７０は、第nパラメータλn(x,y,t)、動きベクトルの第n-1番目のバンドパス成分Δvb_n-1(x,y,t)、及び、第n-1動きベクトル統合部１７０−（ｎ−１）から出力された統合動きベクトルvn-1(x,y,t)を入力とし、統合動きベクトルvn(x,y,t)を求めて、出力する。
【０１８６】
第n動きベクトル統合部１７０は、以下の式により、第nパラメータを用いてスケーリングされた(n-1)番目のバンドパス成分λn(x,y,t)Δvb_n-1(x,y,t)と、第(n-1)統合ベクトル vn-1(x,y,t)とを加算した統合動きベクトル vn(x,y,t)を計算する（Ｓ１７０−ｎ）。
【０１８７】
【数１５】
2020087069.tif 000017
【０１８８】
n<NP+1の時、統合動きベクトルvn(x,y,t)を第n+1パラメータ生成部１６０−（ｎ＋１）および第n+1動きベクトル統合部１７０−（ｎ＋１）に出力する
n=NP+1の時、統合動きベクトルvN_P+1(x,y,t)をv^(x,y,t)として投影像生成部１８０に出力する。
【０１８９】
上記処理Ｓ１６０−ｎ，Ｓ１７０−ｎをn=2からn=Np+1まで繰り返す（Ｓ１，Ｓ２，Ｓ３）。
【０１９０】
＜効果＞
このような構成により、第一実施形態または第二実施形態と同様の効果を得ることができる。さらに、第一パラメータで縮小することで失われた動きをバンドパス成分ごとに補償することで、より細かい調整を行うことができる。
【０１９１】
＜第四実施形態＞
第一実施形態及び第二実施形態と異なる部分を中心に説明する。
【０１９２】
入力とする動きベクトルv(x,y,t)に、剛体運動が多く含まれないことが事前にわかっている場合には、非剛性ベクトル抽出部１５０、第二パラメータ生成部１６０、動きベクトル統合部１７０を省略し、動きベクトル縮小部１４０で得られた動きベクトルを最終的な動きベクトルとして、投影像生成部１８０で用いても良い。この場合、第一パラメータ平滑化部で用いるパラメータ(第一実施形態ではss,st、第二実施形態ではss,s't)は、それぞれ第二パラメータ平滑化部１６７で用いていたものに置き換えて実行するとよい。
【０１９３】
図１４は第四実施形態に係る投影像生成装置の機能ブロック図を、図１５はその処理フローを示す。
【０１９４】
＜第五実施形態＞
第一実施形態と異なる部分を中心に説明する。
【０１９５】
第一実施形態で記述した不自然さ推定部１３４では、投影結果に対する知覚的な動きサイズを決定する第三パラメータαiと、不自然さの推定値diMin(t)を同時に求めるためにループを回す必要があり、処理に時間がかかってしまう。本実施形態では、第三パラメータαiをまず最初に解析的に求め、得られた第三パラメータαiを使って不自然さの推定値diMin(t)を計算することで、ループを回さずにdiMin(t)を出力できるような方法について説明する。本実施形態は不自然さ推定部１３４を図１６の不自然さ推定部５３４に差し替えるのみで、他の処理・構成については任意の形態のものを使用できる。
【０１９６】
図１６は第五実施形態に係る不自然さ推定部５３４の機能ブロック図を、図１７はその処理フローの例を示す。
【０１９７】
第一実施形態の不自然さ推定部１３４と比べると（図５，図６参照）、第三パラメータ更新部１３４Ｃがなくなり、その代わり、第三パラメータ推定部５３４Ｃが新たに加えられた形となる。それ以外の共通の処理部（第三パラメータ乗算部１３４Ａ、ワープ画像生成部１３４Ｂ、知覚モデル適用部１３４Ｄ、知覚差分計算部１３４Ｅ）については、以下の２点以外は第一実施形態の不自然さ推定部１３４と同一の処理を行う。
(1)第三パラメータ乗算部１３４Ａの入力となる第三パラメータαiが第三パラメータ推定部５３４Ｃから与えられる点
(2)知覚差分計算部１３４Ｅで得られる知覚的な差分di(t)が、不自然さの推定値dMini(t)として、そのまま不自然さ推定部５３４Ｃから出力される点
以下、第三パラメータ推定部５３４Ｃの処理について具体的に記述する。
【０１９８】
[第三パラメータ推定部５３４Ｃ]
第三パラメータ推定部５３４Ｃは、中間輝度画像IOi(x,y)、第一パラメータでスケーリングされた動きベクトルλi(t)vi(x,y,t)、及び、投影結果再現画像IPi(x,y,t)を入力とし、第三パラメータαiを求めて（Ｓ５３４Ｃ）、出力する。
【０１９９】
第三パラメータ推定部５３４Ｃは、中間輝度画像IOi(x,y)を、第一パラメータλi(t)でスケーリングされた動きベクトルλi(t)vi(x,y,t)に基づいて歪める処理をテイラー展開の一次近似により線形方程式で表現することで、知覚的な差分di(t)を繰り返し求めることなく、第三パラメータαiを一意に求める。
【０２００】
第三パラメータαiは、投影結果再現画像IPi(x,y,t)を見たときの「知覚的な動き量αiλi(t)vi(x,y,t)」を決定するパラメータである。「知覚的な動き量を決定するαi」として、投影結果再現画像IPi(x,y,t)と、元の中間輝度画像IOi(x,y)を計算機上でαiλi(t)vi(x,y,t)だけ歪ませて生成した画像IW(α)i(x,y,t)との間の知覚的な差分di(t)が最小となるαiを求める。このとき、第一実施形態では、知覚的な差分として、投影結果再現画像IPi(x,y,t)と画像IW(α)i(x,y,t)をそれぞれ知覚応答r(x,y,t)、r'(x,y,t)に変換した上で、知覚応答r(x,y,t)、r'(x,y,t)間の距離di(t)を明示的に計算し、di(t)が最小となるようなαiを繰り返し処理を含む探索によって求めている。ここでは、di(t)を計算せず、直接αiを推定する方法について述べる。以下、記述を簡略化するため、上付き記号i（領域iに属することを示す）及び時間フレームtを省略する。（処理は領域i、フレームt毎に独立に同様に行われる）
【０２０１】
まず、問題を簡単にするため、知覚的な差分ではなく、物理的な差分（画像間の平均自乗誤差）が最小となるαを求めるケースを考える。この場合、以下の誤差関数を最小化するようなαを計算するという問題として記述できる。
【０２０２】
【数１６】
2020087069.tif 000018
【０２０３】
ここで、
【０２０４】
【数１７】
2020087069.tif 000019
【０２０５】
と表せる。なお、vx(x,y),vy(x,y)は、動きベクトルλv(x,y)のx,y軸における要素をそれぞれ表す。また、ここでは説明を簡単にするため、画素移動をinverse warping(移動後の画像から元画像を参照する形式)として記述するが、本実施形態ではαは空間的にスムーズであると仮定しているため、以下で説明する近似は、forward warping(元画像から移動後の画像を参照する形式)の場合についても成立する。
【０２０６】
式(11)は、テイラー展開の一次近似により、以下のように表すことができる。
【０２０７】
【数１８】
2020087069.tif 000020
【０２０８】
式(12)にα=1を代入して、
【０２０９】
【数１９】
2020087069.tif 000021
【０２１０】
式(12),式(13)より、
【０２１１】
【数２０】
2020087069.tif 000022
【０２１２】
ここで、DP=IP-IO、DW=IW(1)-IOとおき、式(14)を式(10)に代入することにより、
【０２１３】
【数２１】
2020087069.tif 000023
【０２１４】
を得る。このeの最小化問題の解は、以下の式で一意に解くことができる。
【０２１５】
【数２２】
2020087069.tif 000024
【０２１６】
なお、本実施形態では、テイラー展開の一次近似を行っているが、これは一例であって、画像の勾配情報を用いた線形近似であれば他の近似を行ってもよい。
【０２１７】
次に、物理的な差分ではなく、知覚的な差分が最小となるαを求める問題に立ち返って考える。このとき、IP、IW(1)、IOを知覚モデル適用部１３４Ｄと同様の処理により知覚モデルの応答に変換したものに置き換えて式(16)を解くという方法がまず考えられる。しかし、知覚モデル適用部１３４Ｄの処理を全て適用して画像を変換するのではなく、式(4)で表される重み付きバンドパス画像まで変換し、これを式(16)に代入してαを求めても良い。これは、式(6)で表されるコントラストゲイン調節処理を再現しなくても、知覚的な動き量を推定するのに十分な精度が得られるためである。ただし、不自然さ推定のためには式(6)による変換は非常に重要である。第三パラメータαiを求める具体的手順は以下のようになる。
【０２１８】
第三パラメータ推定部５３４Ｃは、中間輝度画像IOi(x,y)を、第一パラメータλi(t)でスケーリングされた動きベクトルλi(t)vi(x,y,t)に基づいて歪め、IiW(1)(x,y,t)を得る。歪ませる方法は第一パラメータ生成部１３０における投影結果生成部１３２と同様である。
【０２１９】
次に、第三パラメータ推定部５３４Ｃは、IiW(1)(x,y,t)、IiP(x,y,t)、IO(x,y)を、それぞれ知覚モデル適用部１３４Ｄの処理1〜処理3に従い、重み付きバンドパス画像cj(x,y)に変換する。
【０２２０】
さらに、第三パラメータ推定部５３４Ｃは、IiW(1)(x,y,t)、IiP(x,y,t)、IO(x,y)から得られた重み付きバンドパス画像を、Ic(x,y)=Σjcj(x,y)ようにjについて加算し、それぞれ１枚のバンドパス画像WC(x,y), PC(x,y), OC(x,y)にまとめる。
【０２２１】
第三パラメータ推定部５３４Ｃは、DP=PC(x,y)-OC(x,y)、DW=WC(x,y)-OC(x,y)として式(16)に代入し、第三パラメータの推定値αiを得る（Ｓ５３４Ｃ）。第三パラメータの推定値αiを第三パラメータ乗算部１３４Ａに出力する。
【０２２２】
前述の通り、他の処理については、第一実施形態の不自然さ推定部１３４と同様である。
【０２２３】
＜効果＞
上述の構成により、第一実施形態と同様の効果を得ることができる。さらに、不自然さ推定部における処理を高速化することができる。なお、本実施形態と第二〜第四実施形態を組合せてもよい。
【０２２４】
＜第六実施形態＞
上記第一〜第五実施形態では、不自然さ推定値diMin(t)が閾値τ以下とならない限り、更新サイクル回数がNsに達するまで第一パラメータは引き下げられ続ける。従って、条件次第では第一パラメータが非常に小さくなり、動きサイズが想定以上に縮小されてしまう可能性がある。こうした可能性を排除し、最適化後の投影結果において必要最低限の動き印象を確保するため、第一パラメータがある下限未満とならないように制約を設けても良い。この制約の設け方の１例として、第六実施形態では、不自然さ推定部１３４から第三パラメータαi（知覚的な動きサイズが物理的なベクトルサイズと比べてどれくらいかを表す）も出力して、第三パラメータと第一パラメータを乗算した値（＝「元の動きベクトルのサイズ」に対する「縮小後の動きベクトルによって得られる動きの知覚サイズ」）が所定の閾値以下にならないように、第一パラメータに制約を設ける。これは、例えば、第一パラメータ更新部１３５を以下のような処理内容に置き換えることで実現できる。
【０２２５】
[第一パラメータ更新部１３５]
第一パラメータ更新部１３５は、前回の第一パラメータにおける不自然さの推定値diMin(t)、及び、第三パラメータαi（図３中、第三パラメータを（αi）で示す）を入力とし、次回の第一パラメータλi(t)を求めて（Ｓ１３５）、出力する。ただし、初回は入力はなしで出力のみ行う。
【０２２６】
第一パラメータ更新部１３５は、初回はλi(t)=0.5、ステップサイズstp=0.25として記憶部に保存するとともに、λi(t)を乗算部１３３に出力する。
【０２２７】
第一パラメータ更新部１３５は、以降のサイクルでは、入力された不自然さの推定値diMin(t)と閾値τの比較結果に基づいて、以下のようにλi(t)を更新する。
diMin(t)<τのとき、第一パラメータ更新部１３５は、λi(t)=λi(t)+stp（ただし、この処理でλi(t)が１を超えた場合はλi(t)=1と上書きする）として第一パラメータを更新し、記憶部に保存する。
diMin(t)>τのとき、第一パラメータ更新部１３５は、λi(t)=λi(t)-stp(ただし、この処理でαiλi(t)<τ2となった場合はλi(t)=τ2/αiと上書きする。）として第一パラメータを更新し、記憶部に保存する。
diMin(t)=τまたはサイクル数がNS回目であれば、第一パラメータ更新部１３５は、探索を終了し、λi(t) を第一パラメータ平滑化部１３６へ出力する。それ以外の場合は、stp=stp/2としてステップサイズを更新し、記憶部に保存すると共に、λi(t)を乗算部１３３に出力する。
【０２２８】
＜効果＞
上述の構成により、第一実施形態と同様の効果を得ることができる。さらに、必要最低限の動き印象を確保することができる。なお、本実施形態と第二〜第五実施形態を組合せてもよい。
【０２２９】
＜第七実施形態＞
投影像の生成方法を、他の方法に基づき行ってもよい。例えば、特開２０１８-５０２１６号公報の方法を用いることができる。
【０２３０】
この場合、投影部１９０は明るさB１、B２（B１＜B２）の一様光を投影対象に投影し、投影対象撮影部１１０は、それぞれの条件下で投影対象を撮影した画像IB1、IB2を得る。
【０２３１】
最小輝度画像IMin=IB1、最大輝度画像IMax=IB2として扱う。中間輝度画像もIO=IB1として扱い、加算部でIOを求める処理は省略する。
【０２３２】
投影結果生成部１３２と投影像生成部１８０において、IMは以下の式で生成する
【０２３３】
【数２３】
2020087069.tif 000025
【０２３４】
ここで、Kは投影対象の画素毎のアルベド（反射率）を反映する値であり、
【０２３５】
【数２４】
2020087069.tif 000026
【０２３６】
で計算できる。また、基本的にw=1とするのが最適であるが、ユーザーが変更して投影像のコントラストを操作できるようにしても良い。アルベドの推定に誤差が多く含まれる場合には、全画素について、K=1と固定しても良い。
【０２３７】
投影結果生成部１３２において、投影結果再現画像IPを得る際には、第一実施形態と同様の手順でI^M(x,y,t)を得た後、以下の式で計算する。
【０２３８】
【数２５】
2020087069.tif 000027
【０２３９】
＜効果＞
上述の構成により、第一実施形態と同様の効果を得ることができる。さらに、本実施形態と第二〜第六実施形態とを組合せてもよい。
【０２４０】
＜その他の変形例＞
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【０２４１】
＜プログラム及び記録媒体＞
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【０２４２】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【０２４３】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤVＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
【０２４４】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０２４５】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2020087069.tif 000028
【図２】
2020087069.tif 000029
【図３】
2020087069.tif 000030
【図４】
2020087069.tif 000031
【図５】
2020087069.tif 000032
【図６】
2020087069.tif 000033
【図７】
2020087069.tif 000034
【図８】
2020087069.tif 000035
【図９】
2020087069.tif 000036
【図１０】
2020087069.tif 000037
【図１１】
2020087069.tif 000038
【図１２】
2020087069.tif 000039
【図１３】
2020087069.tif 000040
【図１４】
2020087069.tif 000041
【図１５】
2020087069.tif 000042
【図１６】
2020087069.tif 000043
【図１７】
2020087069.tif 000044