Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020110738 - MOTION VECTOR GENERATION DEVICE, PROJECTION IMAGE GENERATION DEVICE, MOTION VECTOR GENERATION METHOD, AND PROGRAM

Document

明 細 書

発明の名称 動きベクトル生成装置、投影像生成装置、動きベクトル生成方法、およびプログラム

技術分野

0001  

背景技術

0002   0003  

先行技術文献

特許文献

0004  

非特許文献

0005  

発明の概要

発明が解決しようとする課題

0006   0007   0008  

課題を解決するための手段

0009  

発明の効果

0010  

図面の簡単な説明

0011  

発明を実施するための形態

0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204   0205   0206   0207   0208   0209   0210   0211   0212   0213   0214   0215   0216   0217   0218   0219   0220   0221   0222   0223   0224   0225   0226   0227   0228   0229   0230   0231   0232   0233   0234   0235   0236   0237   0238   0239   0240   0241   0242   0243   0244   0245  

請求の範囲

1   2   3   4   5   6   7   8   9   10  

図面

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17  

明 細 書

発明の名称 : 動きベクトル生成装置、投影像生成装置、動きベクトル生成方法、およびプログラム

技術分野

[0001]
 本発明は、実際には動いていない対象が動いているように感じさせる技術に関する。

背景技術

[0002]
 実物体の対象の見た目を変える技術として、プロジェクションマッピングが広く使われ始めている。プロジェクションマッピングでは、プロジェクタを使って物体(投影対象)の表面に画像(ないし映像)を投影することで、投影対象の見た目を操作する。この技術を応用し、特許文献1では、静止した投影対象に動きの印象を与える手法が提案されている。特許文献1では、投影対象のグレースケール画像にコンピュータ上で動きをつけた映像を生成し、その映像の各フレームと元のグレースケール画像との差分をとった映像を、投影像とする。人間の視覚系は動きの情報を主に輝度情報に基づいて知覚するため、投影像をグレースケールとすることで、人間の視覚系の動き情報検出メカニズムを選択的に刺激することができる。一方で、形状、テクスチャ、色の情報は元の見た目が保たれるため、投影対象の自然な見た目を保ったまま、動きの印象だけを与えることができる。よって、視聴者に対して実際には動いていない投影対象が動いているように感じさせることができる。
[0003]
 しかし、動きの情報を含む投影像と、元の形状、テクスチャ、色の情報(実際には動いていない投影対象)との間には、実際には多少の乖離が生じている。こうした乖離は、それほど大きくなければ人間の視覚系において許容され、見た目上問題は生じない。しかし、乖離が大きくなると、投影像が実際には動いていない投影対象と馴染んで見えず、不自然な印象を与えてしまう。一般に、投影像と投影対象の乖離の程度は、与えようとする動きのサイズが大きいほど、大きくなりやすい傾向があることが知られている。しかし、どの程度まで動きのサイズが大きくなると不自然な印象が生じるかは、投影対象の模様、プロジェクタのダイナミックレンジ、プロジェクタの解像度、環境光の強さ、人間の視覚系の感度、などといった条件に依存するため、予測することが難しい。

先行技術文献

特許文献

[0004]
特許文献1 : 国際公開第2015/163317号

非特許文献

[0005]
非特許文献1 : 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月

発明の概要

発明が解決しようとする課題

[0006]
 実物体に動きの印象を与えるプロジェクションマッピング技術において、特許文献1では、投影像と投影対象の間の乖離感(投影結果の不自然さ)をなくすために、人手で動きのサイズを調整している。しかし、人手で調整を行うのは時間がかかる。さらに、一般に与える動き情報の領域毎、フレーム毎に最適な動きのサイズは異なるため、これらを全て人手で最適化するのは非常に困難な作業となる。
[0007]
 一方、非特許文献1では、投影対象に与える動き情報、投影前の画像、投影結果を撮影した画像、の3つが与えられた際に、投影結果の不自然さを推定する知覚的モデルが考案されている。しかし、こうした結果に基づいて動き情報をどのように最適化すれば良いかはこれまでに提案されていない。
[0008]
 本発明は、知覚モデルを用いて、投影対象に与える動きを自動的に調整する技術を提供することを目的とする。

課題を解決するための手段

[0009]
 上記の課題を解決するために、本発明の一態様によれば、動きベクトル生成装置は、動きベクトルに基づき得られる投影像を投影した投影対象を撮影した場合に得られる画像である投影結果再現画像と、投影対象を撮影して得られる画像を投影結果再現画像を見たときの知覚的な動き量分だけ歪ませて生成する画像であるワープ画像との間の知覚的な差分に基づき、動きベクトルをスケーリングするためのパラメータである第一パラメータを生成する第一パラメータ生成部と、第一パラメータを用いて動きベクトルをスケーリングする動きベクトル縮小部とを含む。

発明の効果

[0010]
 本発明によれば、知覚モデルを用いて、投影対象に与える動きを自動的に調整することができるという効果を奏する。

図面の簡単な説明

[0011]
[図1] 第一実施形態に係る投影像生成装置の機能ブロック図。
[図2] 第一実施形態に係る投影像生成装置の処理フローの例を示す図。
[図3] 第一実施形態に係る第一パラメータ生成部の機能ブロック図。
[図4] 第一実施形態に係る第一パラメータ生成部の処理フローの例を示す図。
[図5] 第一実施形態に係る不自然さ推定部の機能ブロック図。
[図6] 第一実施形態に係る不自然さ推定部の処理フローの例を示す図。
[図7] パラメータを3次元的に平滑化するためのアルゴリズムの例を示す図。
[図8] 第一実施形態に係る第二パラメータ生成部の機能ブロック図。
[図9] 第一実施形態に係る第二パラメータ生成部の処理フローの例を示す図。
[図10] プロジェクタの投影方法を説明するための図。
[図11] パラメータを2次元的に平滑化するためのアルゴリズムの例を示す図。
[図12] 第三実施形態に係る投影像生成装置の機能ブロック図。
[図13] 第三実施形態に係る投影像生成装置の処理フローの例を示す図。
[図14] 第四実施形態に係る投影像生成装置の機能ブロック図。
[図15] 第四実施形態に係る投影像生成装置の処理フローの例を示す図。
[図16] 第五実施形態に係る不自然さ推定部の機能ブロック図。
[図17] 第五実施形態に係る不自然さ推定部の処理フローの例を示す図。

発明を実施するための形態

[0012]
 以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。以下の説明において、テキスト中で使用する記号「^」等は、本来直前の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直後に記載する。式中においてはこれらの記号は本来の位置に記述している。また、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
[0013]
<第一実施形態>
 図1は第一実施形態に係る投影像生成装置の機能ブロック図を、図2はその処理フローを示す。
[0014]
 投影像生成装置は、投影対象撮影部110、カメラ-プロジェクタ間画素対応取得部120、加算部125、第一パラメータ生成部130、動きベクトル縮小部140、非剛性ベクトル抽出部150、第二パラメータ生成部160、動きベクトル統合部170、投影像生成部180および投影部190を含む。
[0015]
 以下に、投影像生成装置の概略を説明する。投影像生成装置は、投影対象撮影部110に含まれるカメラを介して入力画像を取得する。これとは別に、投影像生成装置は、投影対象に与える動きベクトルv(x,y,t)を入力とする。しかし、入力した動きベクトルをそのまま使って投影像を生成すると、ベクトルサイズが大きすぎるために投影結果に見た目のズレ(不自然さ)が生じ得る場合がある。これを防ぐため、第一パラメータ生成部130では、不自然さが生じないように動きベクトルv(x,y,t)を縮小するパラメータ(以下、第一パラメータともいう)λ(x,y,t)を生成する。しかし、単純に動きベクトルv(x,y,t)を縮小するだけでは、投影結果で与えられる動きの印象が非常に弱くなってしまうことが多い。このため、非剛性ベクトル抽出部150で動きベクトルv(x,y,t)中の非剛体運動ベクトル成分Δv h(x,y,t)を抽出し、この成分を加えて動きベクトルのサイズを大きくする。このとき、縮小した動きベクトルに非剛体運動ベクトル成分Δv h(x,y,t)を加えることで再び投影結果に不自然さが生じないようにするため、第二パラメータ生成部160において、非剛体運動ベクトル成分Δv hをスケーリングする係数(以下、第二パラメータともいう)λ 2(x,y,t)を生成する。動きベクトル統合部170において、λ(x,y,t)v(x,y,t)+λ 2(x,y,t)Δv h(x,y,t)を最適な動きベクトル(以下、統合ベクトルともいう)として計算する。投影像生成部180は、最適な動きベクトルを用いて、投影像(投影パターン)を生成する。投影部190は、生成した投影像を投影対象に投影する。
[0016]
 本実施形態では、投影像生成装置の投影対象撮影部110がカメラなどの撮影装置を含み、撮影装置で撮影した入力画像を取得する構成としたが、投影対象撮影部110が撮影装置を含まず、別装置の撮影装置で撮影した画像を入力として受け取る構成としてもよい。また、投影像生成装置の投影部190がプロジェクタなどの投影装置を含み、生成した投影像を投影対象に投影する構成としたが、別装置の投影装置に投影像を出力し、投影装置が投影像を投影対象に投影する構成としてもよい。本実施形態では、撮影装置をカメラとし、投影装置をプロジェクタとして説明する。
[0017]
 投影像生成装置は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。投影像生成装置は、例えば、中央演算処理装置の制御のもとで各処理を実行する。投影像生成装置に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。投影像生成装置の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。投影像生成装置が備える各記憶部は、例えば、RAM(Random Access Memory)などの主記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。ただし、各記憶部は、必ずしも投影像生成装置がその内部に備える必要はなく、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置により構成し、投影像生成装置の外部に備える構成としてもよい。
[0018]
 以下、各部について説明する。
[0019]
[投影対象撮影部110]
 投影対象撮影部110は、投影対象撮影部110に含まれるカメラで撮影した画像を入力とし、これらを用いて、第一パラメータ生成部130、投影像生成部180において入力として利用される最小輝度画像I Min(x,y)及び最大輝度画像I Max(x,y)を取得して、出力する。ここで、(x,y)は画素の座標を表す。
[0020]
 最小輝度画像I Min(x,y)は、プロジェクタから投影対象に向けて最小輝度を投射している際の投影対象をカメラで撮影して得られる画像から取得することができる。
[0021]
 最大輝度画像I Max(x,y)は、プロジェクタから投影対象に向けて最大輝度を投射している際の投影対象をカメラで撮影して得られる画像から取得することができる。
[0022]
 投影対象撮影部110は、最小輝度画像I Min(x,y)と最大輝度画像I Max(x,y)とを図示しない記憶部に保存する。なお、画像はグレースケールで取得するか、カラーで取得後にグレースケールに変換して用いるものとする。
[0023]
 さらに、カメラで撮影された領域の任意の場所の輝度を輝度計などを用いて計測する。この箇所の輝度の値を対応するカメラの画素値で割った比率ρを記憶部に保持しておく。比率ρは第一パラメータ生成部130及び第二パラメータ生成部160内の不自然さ推定部134,165において、カメラで撮影した画像の画素値を輝度の値に変換する際に利用する。このため、カメラは撮影対象の物理的な明るさ(輝度)と取得画像の画素値が線形関係となるように補正されていることが望ましい。
[0024]
[カメラ-プロジェクタ間画素対応取得部120]
 カメラ-プロジェクタ間画素対応取得部120は、カメラ座標系とプロジェクタ座標系の対応関係を取得し、出力する。例えば、カメラ-プロジェクタ間画素対応取得部120は、カメラ座標(c x,c y)から見たプロジェクタ座標(p x,p y)へのマッピング(C2Pマップ)と、プロジェクタ座標(p x,p y)から見たカメラ座標(c x,c y)へのマッピング(P2Cマップ)を取得し、出力する。取得方法としては、例えば、参考文献1に従って、グレーコードパターンをプロジェクタから投影しつつ、その投影結果をカメラで撮影した画像を入力とし、グレーコードをデコードすることでC2Pマップを得る方法がある。
(参考文献1)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.
[0025]
 P2Cマップはプロジェクタ座標系の各座標(p x,p y)が、C2Pマップ中のどの座標(c x,c y)にマップされているかを逆参照することで得られる。なお、C2Pマップに当該の座標(p x,p y)が存在しない場合に生じるP2Cマップの欠損は、周辺5[pixel] ×5[pixel]の値の中央値などを使って補間できる。補間に用いる画素の範囲はこれに限らず、欠損の広さに応じて調整することが望ましい。P2Cマップは第一パラメータ生成部130、第二パラメータ生成部160、投影像生成部180で使用される。C2Pは第一パラメータ生成部130、第二パラメータ生成部160で使用される。
[0026]
[加算部125]
 加算部125は、最小輝度画像I Min(x,y)、及び、最大輝度画像I Max(x,y)を入力とし、中間輝度画像I O(x,y)を得て、出力する。
[0027]
 加算部125は、最小輝度画像I Min(x,y)、最大輝度画像I Max(x,y)を以下の式に基づいて線形に重み付き加算し、中間輝度画像I O(x,y)を求める。
[0028]
[数1]


[0029]
ここで、gは[0,1]の範囲の値をとる。最終的な投影像は、この中間輝度画像I O(x,y)の色や形の見た目を保ったまま、動きの印象を与えるように生成される。gが0の場合は、プロジェクタからの光を除いた環境光下での見た目を保った状態で動き印象を与えるが、この場合投影対象の模様のコントラスト極性が(明―>暗)の方向にしか動かすことができない。同様に、gが1の場合は、投影対象の模様のコントラスト極性が(暗―>明)の方向にしか動かすことができない。コントラスト極性が(明―>暗)と(暗―>明)の両方向に動きをつけるには、gは0より大きく1より小さい値である必要がある。環境光に対して投影光が強すぎると投影対象の自然な見た目を損なうことがあるため、多くの場合g=0.1~0.3程度の値が適切と言える。ただし環境光が非常に明るい場合にはgをこれよりも大きく設定した方が良いこともある。
[0030]
 中間輝度画像I O(x,y)は、第一パラメータ生成部130と投影像生成部180へ出力される。
[0031]
 以上の投影対象撮影部110、カメラ-プロジェクタ間画素対応取得部120および加算部125における処理を動きベクトルv(x,y,t)が入力される前に行っておき、最小輝度画像I Min(x,y)、最大輝度画像I Max(x,y)、中間輝度画像I O(x,y)、P2Cマップ、C2Pマップ、比率ρを求めておく。
[0032]
[第一パラメータ生成部130]
 第一パラメータ生成部130は、最小輝度画像I Min(x,y)、最大輝度画像I Max(x,y)、中間輝度画像I O(x,y)、動きベクトルv(x,y,t)を入力とし、これらを用いて、第一パラメータλ(x,y,t)を求め(S130)、出力する。第一パラメータは、動きベクトルv(x,y,t)の大きさをスケーリングするパラメータである。tはフレーム番号を表す。なお、動きベクトルを歪み地図ともいう。ここで、比率ρ、P2Cマップ、C2Pマップについては、動きベクトルv(x,y,t)が入力される前に第一パラメータ生成部130内に予め入力され、設定されているものとする。
[0033]
 例えば、第一パラメータ生成部130は、後述する投影結果再現画像I P i(x,y,t)と、後述する不自然さのない理想的な歪み画像I W(α) i(x,y,t)との間の知覚的な差分d i(t)に基づき、第一パラメータλ(x,y,t)を生成する。
[0034]
 図3は第一パラメータ生成部130の機能ブロック図を、図4はその処理フローの例を示す。第一パラメータ生成部130は、領域分割部131、投影結果生成部132、乗算部133、不自然さ推定部134、第一パラメータ更新部135および第一パラメータ平滑化部136を含む。
[0035]
 処理の順序としては、まず領域分割部131で処理が実行される。その後は、第一パラメータ更新部135を起点とし、第一パラメータ更新部135->乗算部133->投影結果生成部132->不自然さ推定部134->第一パラメータ更新部135のようにループ処理が行われる。一定の条件を満たした際にループを終え、第一パラメータ更新部135から第一パラメータ平滑化部136に処理が移る。ループの制御は第一パラメータ更新部135に含まれる。詳細は後述する。
[0036]
[領域分割部131]
 領域分割部131は、最小輝度画像I Min(x,y)、最大輝度画像I Max(x,y)、中間輝度画像I O(x,y)、動きベクトルv(x,y,t)を入力とし、それぞれ既定の分割数、または、既定の大きさ(例えば64[pixel]×64[pixel])の小領域に分割する(S131)。小領域の大きさは、これに限るものではないが、1領域内で後述するLaplacian Pyramidを生成するのに十分な大きさである必要がある。
[0037]
 領域分割された最小輝度画像I Min i(x,y)および領域分割された最大輝度画像I Max i(x,y)は投影結果生成部132へ出力され、領域分割された中間輝度画像I O i(x,y)は投影結果生成部132と不自然さ推定部134へ出力され、領域分割された動きベクトルv i(x,y,t)は乗算部133へ出力される。
[0038]
 領域分割された最小輝度画像I Min i(x,y)、領域分割された最大輝度画像I Max i(x,y)、領域分割された中間輝度画像I O i(x,y)は、組にされ、図示しない記憶部に記憶される。記憶部に記憶された、領域分割された最小輝度画像I Min i(x,y)、領域分割された最大輝度画像I Max i(x,y)、領域分割された中間輝度画像I O i(x,y)は、第二パラメータ生成部160の投影結果生成部162と不自然さ推定部165で読みだされ使用される。
[0039]
 第一パラメータ生成部130における以後の処理は、第一パラメータ平滑化部136を除き、各領域iの各フレームtについて独立に実行される。第一パラメータλ i(t)は各領域iの各フレームtにつき1つ出力され、全ての領域・フレームについて第一パラメータλ i(t)が得られたら、それらはまとめて第一パラメータ平滑化部136に入力される。
[0040]
[乗算部133]
 乗算部133は、領域分割された動きベクトルv i(x,y,t)、領域iの現在の第一パラメータλ i(t)を入力とする。現在の第一パラメータλ i(t)は第一パラメータ更新部135から出力された値を使用する。
[0041]
 乗算部133は、領域分割された動きベクトルv i(x,y,t)と、領域iの現在の第一パラメータλ i(t)とを乗算し(S133)、積(ベクトルλ i(t)v i(x,y,t))を投影結果生成部132と不自然さ推定部134に出力する。
[0042]
[投影結果生成部132]
 投影結果生成部132は、領域分割された最小輝度画像I Min i(x,y)、領域分割された最大輝度画像I Max i(x,y)、領域分割された中間輝度画像I O i(x,y)、現在の第一パラメータでスケーリングされた動きベクトルλ i(t)v i(x,y,t)、P2Cマップ、及び、C2Pマップを入力とし、現在の第一パラメータを適用した際の、領域iにおける投影結果再現画像I P i(x,y,t)を出力する。
[0043]
 投影結果生成部132は、現在の第一パラメータλ i(t)を適用した際の投影結果再現画像I P i(x,y,t)を以下のように生成する(S132)。なお、投影結果再現画像とは、動きベクトルλ i(t)v i(x,y,t)に基づき得られる投影像を投影した投影対象をカメラで撮影した場合に得られると想定される画像である。投影結果生成部132は、計算機上でシミュレートすることで投影結果再現画像を得る。
[0044]
 投影結果生成部132は、現在の第一パラメータλ i(t)でスケーリングされた動きベクトルλ i(t)v i(x,y,t)に基づいて、中間輝度画像I O i(x,y)を歪ませ、歪み画像I W i(x,y,t)を得る。歪ませる方法は任意であるが、例えば、画像を4[pixel] ×4[pixel]サイズのグリッドで分割し、各頂点をその座標に対応する動きベクトルλ i(t)v i(x,y,t)分だけ移動させ、頂点に囲まれた領域を元の正方形の画像を双線形補間法などで引き伸ばしつつ(あるいは縮めつつ)埋めていくという方法がある。グリッドサイズはこれに限らないが、上記領域分割部131での画像分割サイズよりも小さく、かつ動きベクトルv i(x,y,t)の特徴を表現するのに十分な解像度で分割することが望ましい。
[0045]
 次に、投影結果生成部132は、歪み画像I W i(x,y,t)を再現するための理想的な投影像(使用するプロジェクタの物理的な制限を考慮していない投影像)I M i(x,y,t)を以下の式によって求める。
[0046]
[数2]


[0047]
さらに、式(2)で求めたI M i(x,y,t)の値をプロジェクタで物理的に投影可能な範囲[0,1]に制限する。
[0048]
 投影結果生成部132は、プロジェクタの解像度を再現するため、直前のステップで得られた画像をP2Cマップに基づいてプロジェクタ座標系にマッピングし、そこから再度C2Pマップに基づいてカメラ座標系にマッピングし直す。これにより、カメラ座標系において投影像がプロジェクタの解像度に応じた粗さとなる。正確な再現のためには、カメラの解像度がプロジェクタの解像度よりも十分に高い必要がある。ここで得られた画像をI^ M i(x,y,t)とする。
[0049]
 最後に、投影結果生成部132は、以下の式に基づいて、投影結果再現画像I i P(x,y,t)を得て、不自然さ推定部134に出力する。
[0050]
[数3]


[0051]
投影結果再現画像I i P(x,y,t)は、プロジェクタから出る光の値を表し、領域分割された最小輝度画像I Min i(x,y)の画素値と、領域分割された最大輝度画像I Max i(x,y) の画素値とを、画像I^ M i(x,y,t)の画素値を重みとして線形補間して得ることができる。
[0052]
[不自然さ推定部134]
 不自然さ推定部134は、比率ρ、中間輝度画像I O i(x,y)、投影結果再現画像I P i(x,y,t)、第一パラメータλ i(t)を乗算した動きベクトルλ i(t)v i(x,y,t)を入力とし、これらを用いて、投影結果の不自然さの推定値d i Min(t)を求め(S134)、出力する。処理は領域i、フレームt毎に独立に行われる。
[0053]
(不自然さの推定例1)
 例えば、不自然さ推定部134は、非特許文献1で提案された手法に基づき、投影の不自然さを推定する。以下、処理の概要を簡単に説明する。
[0054]
 不自然さ推定部134は、投影結果再現画像I P i(x,y,t)と、不自然さのない理想的な歪み画像(以下、ワープ画像ともいう)I W(α) i(x,y,t)との間の知覚的な差分d i(t)の最小値d i Min(t)を「投影結果の不自然さ」として出力する。なお、知覚的な差分d i(t)の最小値を求めるとは、後述する知覚モデルを適用して得られる、ワープ画像I W(α) i(x,y,t)の知覚表象を表す特徴ベクトルと投影結果再現画像I P i(x,y,t)の知覚表象を表す特徴ベクトルとの間の距離が最も小さくなるときの値(距離)を求めることである。また、この際、「不自然さのない理想的な歪み画像I W(α) i(x,y,t)」は、「投影結果再現画像I P i(x,y,t)を見たときの知覚的な動き量α iλ i(t)v i(x,y,t)」分だけ、元の中間輝度画像I O i(x,y)を計算機上で歪ませて生成する。ここで、α iは知覚的な動き量となるように入力された動きベクトルをスケーリングする係数(以後、第三パラメータと呼ぶ)である。第三パラメータα iは、投影結果再現画像I P i(x,y,t)とワープ画像I W(α) i(x,y,t)の知覚的な差分d i(t)が最も小さくなるときの値として推定される。すなわち、不自然さ推定部134は、「投影結果再現画像I P i(x,y,t)を見たときの知覚的な動き量」を決定する第三パラメータα iと不自然さの推定値d i Min(t)の同時推定を行う。
[0055]
 図5は不自然さ推定部134の機能ブロック図を、図6はその処理フローの例を示す。図5に示すとおり、不自然さ推定部134は、第三パラメータ乗算部134A、ワープ画像生成部134B、第三パラメータ更新部134C、知覚モデル適用部134D、知覚差分計算部134Eを含む。処理の順序としては、第三パラメータ更新部134Cを起点とし、第三パラメータ更新部134C->第三パラメータ乗算部134A->ワープ画像生成部134B->知覚モデル適用部134D->知覚差分計算部134E->第三パラメータ更新部134Cのようにループ処理が行われる。一定の条件を満たした際にループを終え、第三パラメータ更新部134Cから不自然さの推定値d i Min(t)が第一パラメータ更新部135に向けて出力される。ループの制御は第三パラメータ更新部134Cに含まれる。以下、順に記述していく。
[0056]
[第三パラメータ乗算部134A]
 第三パラメータ乗算部134Aは、第一パラメータλ i(t)を乗算した動きベクトルλ i(t)v i(x,y,t)、及び、現在の第三パラメータα iを入力とする。現在の第三パラメータα iは、第三パラメータ更新部134Cから出力された値を使用する。
[0057]
 第三パラメータ乗算部134Aは、第一パラメータλ i(t)を乗算した動きベクトルλ i(t)v i(x,y,t)と現在の第三パラメータα iを乗算し(S134A)、積(ベクトルα iλ i(t)v i(x,y,t))をワープ画像生成部134Bに出力する。
[0058]
[ワープ画像生成部134B]
 ワープ画像生成部134Bは、中間輝度画像I O i(x,y)、及び、第一パラメータ及び第三パラメータでスケーリングされた動きベクトルα iλ i(t)v i(x,y,t)を入力とし、動きベクトルα iλ i(t)v i(x,y,t)に基づいて中間輝度画像I O i(x,y)を歪ませ、ワープ画像I W(α) i(x,y,t)を得て、出力する(S134B)。歪ませる方法は任意であるが、例えば、画像を4[pixel] ×4[pixel]サイズのグリッドで分割し、各頂点をその座標に対応するベクトルα iλ i(t)v i(x,y,t)分だけ移動させ、頂点に囲まれた領域を元の正方形の画像を双線形補間法などで引き伸ばしつつ(あるいは縮めつつ)埋めていくという方法がある。グリッドサイズはこれに限らないが、上記領域分割部131での画像分割サイズよりも小さく、かつ動きベクトルv i(x,y,t)の特徴を表現するのに十分な解像度で分割することが望ましい。
[0059]
[知覚モデル適用部134D]
 知覚モデル適用部134Dは、ワープ画像I W(α) i(x,y,t)及び投影結果再現画像I P i(x,y,t)、比率ρを入力とし、ワープ画像I W(α) i(x,y,t)に対する知覚応答r'(x,y,t)及び投影結果再現画像I P i(x,y,t)に対する知覚応答r(x,y,t)を求めて、出力する。
[0060]
 知覚モデル適用部134Dは、ワープ画像I W(α) i(x,y,t)及び投影結果再現画像I P i(x,y,t)に対し、独立に同一の処理を行うため、以下では入力画像(ワープ画像I W(α) i(x,y,t)及び投影結果再現画像I P i(x,y,t))をI(x,y)として記述する(なお、簡略化のため、ここでは領域およびフレームを示すインデックスi,tを省略している)。知覚モデル適用部134Dは、入力画像に知覚モデルを適用し、知覚応答を求める(S134D)。本実施形態では、知覚モデルとして人の視覚系の初期段階に相当する第一次視覚野までのモデルを採用する。この第一次視覚野までのモデルは、任意の画像を入力とし、入力画像の各画素(領域)の各空間周波数成分、および各方位成分に対する応答(神経細胞の応答をシミュレーションした結果)を出力するモデルである。このモデルは、ワープ画像I W(α) i(x,y,t)の知覚表象を表す特徴ベクトル、および、投影結果再現画像I P i(x,y,t)の知覚表象を表す特徴ベクトルを求めるためのモデルとも言える。このモデルでは、まず、線形フィルタを用いて入力画像を複数の空間周波数帯、および方位に分解する。次に、このモデルでは、分解により得られた各成分の各画素に対応する値を、非線形に補正し(ゲインコントロール)、補正後の値を前述の応答として出力する。ただし、本実施形態では、計算速度を鑑みて画像の方位成分を分析する処理を省略などする。ただし、知覚応答のモデルとしてはここで記述する実装に限らず、方位成分の分析を含めたモデルや、より高次の視覚野の応答を再現したモデルを利用しても良い。
[0061]
(処理1)まず、入力画像I(x,y)の画素値に投影対象撮影部110で取得した比率ρを乗算し、輝度単位に変換する。ここから、参考文献2に記載の方法で、輝度単位に変換した入力画像をJND(Just Noticeable Difference)スケール画像L(x,y)に変換する。
(参考文献2)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.
[0062]
JNDスケールでは、変化がぎりぎり知覚できる閾値に相当する輝度変化が1と定義されるように明るさがマッピングされる。すなわち、Ψ(L)をJNDスケール値Lから輝度に変換する関数と定義すると、
[0063]
[数4]


[0064]
と表すことができる。ここでtviは、順応輝度に対する輝度変化の閾値を与える関数である。本実施形態では、上記参考文献2に習い、tviには以下の式を用いた。
[0065]
[数5]


[0066]
ここで、(π 1234)=(30.162, 4.0627, 1.6596, 0.2712)で、Yは順応輝度である。実際には、ここからΨの逆関数、つまり輝度からJNDスケール値に変換する関数Ψ -1を求めて使用する必要がある。Ψは単調増加関数であるため、Ψ -1は一意に求めることができる。本実施形態では、Ψを式(3)の数値解として求めてルックアップテーブルに保持しておき、これを参照する形で輝度からJNDスケール値を得る。記憶領域を節約するため、ルックアップテーブルはある程度離散化して保持しておき、それらの中間値を得る際は、線形補間を用いることで十分な結果を得ることができる。
[0067]
(処理2)次に、JNDスケール画像L(x,y)からLaplacian Pyramidを生成して、複数のバンドパス画像b 0(x,y), b 1(x,y), b 2(x,y),…,b N-1(x,y)を得る。本実施形態では、バンドパス画像の数N = 5としたが、Nの値はこれに限るものではなく、投影対象をより高い解像度で撮影するほど、Nを増やした方が良いと考えられる。また、通常Laplacian Pyramid生成時には、より低い空間周波数帯のバンドパス画像ほどダウンサンプリングにより解像度を落としていくが、本実施形態では、精度を上げるためにダウンサンプリングを行わないこととする。
[0068]
(処理3)次に、各空間周波数帯に対する視覚系の感度を再現するため、Laplacian Pyramidの各バンドパス画像b j(x,y), j=0,1,2,…N-1に重み付けを行い、重み付きバンドパス画像を
[0069]
[数6]


[0070]
のように得る。ここで、重みw jは以下の関数で表される。
[0071]
[数7]


[0072]
ここで、sとθは重み関数の形状を決定する定数で、本実施形態では、実験データへのフィッティングにより、(s,θ)=(0.75,3.0)と定めた。ただし、重み関数はこれに限るものではなく、観察条件などに応じてパラメータを設定し直しても良い。
[0073]
(処理4)最後に、視覚系のコントラストゲイン調節を再現するため、重み付きバンドパス画像c j(x,y)を以下の式で知覚応答r j(x,y)に変換する。
[0074]
[数8]


[0075]
ここで、pとσはコントラストゲイン調節関数の形状を決める定数で、本実施形態では、実験データへのフィッティングにより、(p,σ)=(2.38,0.156)と定めた。sign(z)はzの符号を表す関数で、z<0なら-1、z>=0なら+1となる。コントラストゲイン調節の関数はこれに限るものではなく、視覚系の応答を近似できるものなら何でも良い。
[0076]
 以上の処理をワープ画像I W(α) i(x,y,t)及び投影結果再現画像I P i(x,y,t)それぞれについて行い、ワープ画像I W(α) i(x,y,t)に対する知覚応答r' j i(x,y,t)と投影結果再現画像I P i(x,y,t)に対する知覚応答r j i(x,y,t)を求め、知覚差分計算部134Eに出力する。知覚応答r' j i(x,y,t)を要素とするベクトルが前述のワープ画像I W(α) i(x,y,t)の知覚表象を表す特徴ベクトルであり、知覚応答r j i(x,y,t)を要素とするベクトルが前述の投影結果再現画像I P i(x,y,t)の知覚表象を表す特徴ベクトルである。
[0077]
[知覚差分計算部134E]
 知覚差分計算部134Eは、ワープ画像の知覚応答r' j i(x,y,t)と投影結果再現画像の知覚応答r j i(x,y,t)を入力とし、入力した知覚応答間の距離d i(t)を求めて出力する。
[0078]
 知覚差分計算部134Eは、以下の式により、知覚応答間の距離d i(t)を計算する(S134E)。
[0079]
[数9]


[0080]
ここでN x、N yはそれぞれ知覚応答 r j i(x,y,t)または r' j i(x,y,t)の横方向のサイズと縦方向のサイズを表す。なお、知覚応答 r j i(x,y,t)と r' j i(x,y,t)のサイズは同一である。lnは自然対数を計算する関数である。距離の計算方法はこれに限らず、例えば通常のユークリッド距離やマンハッタン距離などを用いても良い。また、知覚的な動き量の推定における多少の誤差を容認するため、知覚応答r j i(x,y,t)とr' j i(x,y,t)を局所領域p x [pixel]x p y [pixel]内で空間的にプーリングし、サイズを横・縦それぞれを1/p x・1/p yに縮小した上で式(7)に代入しても良い。本実施形態では、p x=p y=2とした。
[0081]
[第三パラメータ更新部134C]
 第三パラメータ更新部134Cは、第三パラメータの探索処理の制御を行う。例えば、知覚差分計算部134Eで得られる知覚的な差分d i(t)が最小となるように第三パラメータの探索が行われる。別の言い方をすると、第三パラメータ更新部134Cは、第三パラメータを、ワープ画像I W(α) i(x,y,t)の知覚表象を表す特徴ベクトル(知覚応答r' j i(x,y,t)を要素とするベクトル)と投影結果再現画像I P i(x,y,t)の知覚表象を表す特徴ベクトル(知覚応答r j i(x,y,t)を要素とするベクトル)との間の距離が最も小さくなるときの値(動きベクトルをスケーリングする係数)として推定する。ここでは第三パラメータの探索に黄金分割探索法を使用する例を記述するが、探索アルゴリズムとして別のもの、例えば三分探索法などを用いても良い。
[0082]
 第三パラメータ更新部134Cは、前回の第三パラメータにおける知覚的な差分d i(t)を入力とし、次回の第三パラメータα iを出力する。ただし、初回は入力はなしで出力のみ行う。また、最終サイクルでは知覚的な差分d i(t)の最小値を不自然さの推定値d i Min(t)として出力する。
[0083]
 第三パラメータ更新部134Cは、知覚的な差分d i(t)が小さくなるように第三パラメータを更新する(S134C)。
[0084]
 例えば、黄金分割探索法を用いる。まず、第三パラメータ更新部134Cは、kサイクル目の探索区間の下限をL(k)、上限をH(k)とする。黄金分割探索法では、探索区間を2つの地点で3区間に分割し、分割地点の値(ここでは第三パラメータ)を入力としたときの関数の出力(ここでは知覚的な差分d i(t))を比較して、探索区間を縮めていく。以後、kサイクル目の2つの分割地点のうち小さい方をA(k)、大きい方をB(k)、A(k)における知覚差分をd A(k)、B(k)における知覚差分をd B(k)とする。また、φ=(1+√5)/2とする。
[0085]
(k=0のとき)
 (L(0),H(0))=(0,1)、(A(0),B(0))= (1/(1+φ),φ/(1+φ))とし、初回の第三パラメータα i(0)=A(0)を第三パラメータ乗算部134Aに出力する。L(0),H(0),A(0),B(0)の値は記憶部に保持しておく。
[0086]
(k=1のとき)
 (L(1),H(1),A(1),B(1))= (L(0),H(0),A(0),B(0))とし、次回の第三パラメータα i(1)=B(1)を第三パラメータ乗算部134Aに出力する。また、d A(1)=d i(t)を記憶部に保存する。
[0087]
(k=2のとき)
 入力された知覚差分をd B(1)=d i(t)として記憶部に保存する。
[0088]
 (2-i)d A(1)<d B(1)の場合
 新たな探索区間を(L(2),H(2))=(L(1),B(1))と設定し、新たな分割地点を(A(2),B(2))=((φL(2)+ H(2))/(1+φ),A(1))と設定する。また、d B(2)=d A(1)として記憶部に保存する。次回の第三パラメータはα i(2)=A(2)として、記憶部に保存すると共に第三パラメータ乗算部134Aに出力する。
[0089]
 (2-ii)d A(1)>d B(1)の場合
 新たな探索区間を(L(2),H(2))=(A(1),H(1))と設定し、新たな分割地点を(A(2),B(2))=(B(1),(L(2)+φH(2))/(1+φ))と設定する。また、d A(2)=d B(1)として記憶部に保存する。次回の第三パラメータはα i(2)=B(2)として記憶部に保存すると共に第三パラメータ乗算部134Aに出力する。
[0090]
(k≧3のとき)
 α i(k-1)=A(k-1)の場合は入力された知覚差分をd A(k-1)=d i(t)として記憶部に保存する。α i(k-1)=B(k-1)の場合は入力された知覚差分をd B(k-1)=d i(t)として記憶部に保存する。その後はk=2の時と同様に、
[0091]
 (3-i)d A(1)<d B(1)の場合
 新たな探索区間を(L(k),H(k))=(L(k-1),B(k-1))と設定し、新たな分割地点を(A(k),B(k))=((φL(k)+ H(k))/(1+φ),A(k-1))と設定する。また、d B(k)=d A(k-1)として記憶部に保存する。次回の第三パラメータはα i(k)=A(k)として記憶部に保存すると共に第三パラメータ乗算部134Aに出力する。
[0092]
 (3-ii)d A(1)>d B(1)の場合
 新たな探索区間を(L(k),H(k))=(A(k-1),H(k-1))と設定し、新たな分割地点を(A(k),B(k))=(B(k-1),(L(k)+φH(k))/(1+φ))と設定する。また、d A(k)=d B(k-1)として記憶部に保存する。次回の第三パラメータはα i(k)=B(k)として記憶部に保存すると共に第三パラメータ乗算部134Aに出力する。
[0093]
 上記(3-i),(3-ii)のいずれかにおいて、探索区間の幅H(k)-L(k)が一定値τ α未満となった場合(S134C-2)に探索を終え、d A(k-1)<d B(k-1)の場合はd i Min(t)= d A(k-1)として、d A(k-1)>d B(k-1)の場合はd i Min(t)= d B(k-1)として、d i Min(t)を不自然さ推定部134の出力とする。出力先は、不自然さ推定部が第一パラメータ生成部130内で用いられている場合(不自然さ推定部134)には第一パラメータ更新部135に、第二パラメータ生成部160内で用いられている場合(不自然さ推定部165)には第二パラメータ更新部166に出力する。τ αは小さいほど推定精度が上がるが、その分計算コストは増す。本実施形態ではτ α=0.05とした。
[0094]
(不自然さの推定例2)
 ワープ画像I W(α) i(x,y,t)と投影結果再現画像I P i(x,y,t)を入力として、知覚差分を直接出力するモデル(このモデルを推定例2における知覚モデルともいう)を用いて知覚的な差分d i(t)を求めてもよい。つまり、不自然さの推定例1における、ワープ画像の知覚応答r' j i(x,y,t)と投影結果再現画像の知覚応答r j i(x,y,t)とを求め、その間の距離d i(t)を求めるのではなく、直接、ワープ画像I W(α) i(x,y,t)と投影結果再現画像I P i(x,y,t)とから知覚的な差分d i(t)を求める。
[0095]
 この例では、不自然さ推定部134は知覚差分計算部134Eを含まず、知覚モデル適用部134Dは、ワープ画像I W(α) i(x,y,t)と投影結果再現画像I P i(x,y,t)とを入力とし、これらの値に知覚モデルを適用し、知覚的な差分d i(t)を求め(S134D,S134E)、出力する。なお、不自然さ推定部134の他の各部の処理については、不自然さの推定例1と同様である。
[0096]
 なお、本推定例において、第三パラメータ更新部134Cにおける処理は、ワープ画像I W(α) i(x,y,t)の知覚表象を表す特徴ベクトルと投影結果再現画像I P i(x,y,t)の知覚表象を表す特徴ベクトルとを求めたり、その間の距離を求めたりすることなく、結果として、第三パラメータは、ワープ画像I W(α) i(x,y,t)の知覚表象を表す特徴ベクトルと投影結果再現画像I P i(x,y,t)の知覚表象を表す特徴ベクトルとの間の距離が最も小さくなるときの値(動きベクトルをスケーリングする係数)として推定される。
[0097]
 同様に、本推定例では、不自然さ推定部134において、結果として、知覚的な差分d i(t)の最小値は、ワープ画像I W(α) i(x,y,t)の知覚表象を表す特徴ベクトルと投影結果再現画像I P i(x,y,t)の知覚表象を表す特徴ベクトルとの間の距離が最も小さくなるときの値(距離)として求められる。
[0098]
[第一パラメータ更新部135]
 第一パラメータ更新部135は、第一パラメータの探索処理の制御を行う。例えば、不自然さ推定部134で得られる不自然さの推定値d i Min(t)が所定の閾値τに最も近しくなるように探索が行われる。τの値は予め固定の閾値を設定しておいても良いし、ユーザーが調節可能なインターフェースを提供しても良い。本実施形態では、経験的にτ=-2.28と定めた。例えば、第一パラメータの探索には2分探索法を使用する。
[0099]
 第一パラメータ更新部135は、前回の第一パラメータにおける不自然さの推定値d i Min(t)を入力とし、次回の第一パラメータλ i(t)を出力する。ただし、初回は入力はなしで出力のみ行う。
[0100]
 第一パラメータ更新部135は、不自然さの推定値d i Min(t)が所定の閾値τに最も近しくなるように、第一パラメータλ i(t)を更新する(S135)
 まず、初回、第一パラメータ更新部135は、λ i(t)=0.5、ステップサイズstp=0.25として記憶部に保存するとともに、λ i(t)を乗算部133に出力する。
[0101]
 以降のサイクルでは、第一パラメータ更新部135は、入力された不自然さの推定値d i Min(t)と閾値τの比較結果に基づいて、以下のようにλ i(t)を更新する。
[0102]
 d i Min(t)<τのとき、第一パラメータ更新部135は、λ i(t)=λ i(t)+stpとして第一パラメータを更新し、記憶部に保存する。
[0103]
 d i Min(t)>τのとき、第一パラメータ更新部135は、λ i(t)=λ i(t)-stpとして第一パラメータを更新し、記憶部に保存する。
[0104]
 所定の条件を満たす場合(S135Aのyes)、例えば、d i Min(t)≦τまたはサイクル数がN S回目のとき、第一パラメータ更新部135は、探索を終了し、λ i(t)を第一パラメータ平滑化部136へ出力する。それ以外の場合(S135Aのno)は、stp=stp/2としてステップサイズを更新し、記憶部に保存すると共に、λ i(t)を乗算部133に出力する。
[0105]
[第一パラメータ平滑化部136]
 第一パラメータ平滑化部136は、各領域・各フレームから得られた第一パラメータλ i(t)を入力として平滑化し、平滑化された画素ごとの第一パラメータλ(x,y,t)を出力する(S136)。例えば、第一パラメータ平滑化部136は、各領域・各フレームから得られた第一パラメータλ i(t)を、
(i)領域iに空間的に隣接する領域、かつ、フレームtから得られた第一パラメータ
(ii)領域i、かつ、フレームtに時間的に隣接するフレームから得られた第一パラメータ
(iii)領域iに空間的に隣接する領域、かつ、フレームtに時間的に隣接するフレームから得られた第一パラメータ
を用いて、空間的かつ時間的に平滑化する。説明のため、各領域・各フレームの第一パラメータをλ(m,n,t)と記述する。ここで、mは当該領域の横方向の位置、nは当該領域の縦方向の位置、tは当該領域の属する時間フレームを表す。まず、隣り合うλ(m,n,t)同士の間で極端な値の変化が生じないように平滑化を実行する。この時、λ(m,n,t)を以下の2つの制約を満たすようにλ'(m,n,t)に置き換えることで平滑化を行う。
[0106]
制約1:全てのm,n,tについてλ'(m,n,t)≦λ(m,n,t)を満たさなければならない。これにより、平滑化処理によって不自然さの閾値を超えてしまわないように制約できる。
制約2:全てのm,n,tについて、以下を満たさなければならない。
[0107]
[数10]


[0108]
ここで、(m',n',t')は(m,n,t)の周囲の領域の集合を表し、m'∈{m-1,m,m+1},n'∈{n-1,n,n+1},t'∈{t-1,t,t+1}である。s s、s tは隣接領域間の勾配サイズの許容値である。第一パラメータは、入力された元の動きベクトルを質的に大きく変えない(剛体の動きは剛体のままとなるように)ことが求められるため、これらの値は十分小さく設定する必要がある。本実施形態では、(s s,s t)=(0.06,0.03)とした。これらの値は領域のサイズや投影時のフレームレートに応じて調節することが望ましい。領域サイズが大きくなるほどs sは大きくしてもよく、フレームレートが低くなるほどs tは大きくしてもよい。本実施形態では、領域サイズは64[pixel]x64[pixel]、フレームレートは60FPSを想定している。
[0109]
 以上の制約を満たすようにλ(m,n,t)を更新するアルゴリズムとして、本実施形態では参考文献3に記載の方法を用いる。
(参考文献3)A. Majumder and R. Stevens. "Perceptual photometric seamlessness in projection-based tiled displays". ACM Transactions on Graphics, 24(1):118-139, 2005.
[0110]
ただし、参考文献3ではパラメータの2次元的な平滑化のみを行っていたのに対し、本実施形態では3次元的に平滑化を行なうためにアルゴリズムの拡張を行なった。具体的な処理アルゴリズムの例を図7に示す。基本的な処理の流れは、λ(m,n,t)の各領域の値を順にスキャンしていき、上記制約1と制約2を満たすようにλの値を更新していく。更新の仕方は、以下の手順で行う。
[0111]
1.現在の領域と時空間的に隣接する26個の領域のうち、スキャンの進行方向と逆方向の11個の領域と現在の領域との差分(現在の領域の値-隣接領域の値)をそれぞれ計算する。
2.上記1.で計算した差分が、制約2の右辺で制限される値よりも大きければ、差分が右辺の値と等しくなるまで現在の領域の値を引き下げる。
[0112]
 上記1,2の手順をすべての可能なスキャン方向の組について実行する。具体的には、水平軸、垂直軸、時間軸のスキャン方向の組みを(d m,d n,d t)、各軸における2つの方向を{-1,1}で表現した場合、(d m,d n,d t)=[(-1,-1,-1),(1,-1,-1),(-1,1,-1),(1,1,-1),(-1,-1,1),(1,-1,1),(-1,1,1),(1,1,1)]の8通りのスキャン方向の組みについてスキャンを行う。
[0113]
 領域単位(m,n,t)での平滑化が終わったら、これを画素単位(x,y,t)に引き延ばす処理を行う。本実施形態では、フレームt毎に、領域単位の第一パラメータλ'(m,n,t)を双線形補間によって拡大処理して画素単位の第一パラメータλ(x,y,t)を得る。ただし、拡大時に用いる補間方法はこれに限るものではなく、例えばバイキュービック補間などを用いても良い。得られたλ(x,y,t)は、差分動きベクトル演算部と第二パラメータ生成部160、動きベクトル統合部170に出力される。
[0114]
[動きベクトル縮小部140]
 動きベクトル縮小部140は、第一パラメータλ(x,y,t)と動きベクトルv(x,y,t)とを入力とし、第一パラメータλ(x,y,t)と動きベクトルv(x,y,t)とを乗算して縮小動きベクトルv s(x,y,t)=λ(x,y,t) v(x,y,t)を求め(S140)、非剛性ベクトル抽出部150、第二パラメータ生成部160、動きベクトル統合部170に出力する。
[0115]
[非剛性ベクトル抽出部150]
 非剛性ベクトル抽出部150は、動きベクトルv(x,y,t)と縮小動きベクトルv s(x,y,t)とを入力とし、動きベクトルv(x,y,t)と縮小動きベクトルv s(x,y,t)との差分に含まれる非剛体運動ベクトル成分Δv h(x,y,t)を抽出し(S150)、第二パラメータ生成部160と動きベクトル統合部170に出力する。例えば、非剛性ベクトル抽出部150は、図示しない差分動きベクトル演算部とフィルタリング部とを含む。非剛体運動ベクトル成分Δv h(x,y,t)は動きベクトルv(x,y,t)のハイパス成分(高空間周波数成分)に相当し、フィルタリング部はハイパスフィルタとして機能する。
[0116]
[差分動きベクトル演算部]
 差分動きベクトル演算部は、動きベクトルv(x,y,t)と縮小動きベクトルv s(x,y,t)とを入力とし、動きベクトルの差分Δv(x,y,t)=v(x,y,t)- v s(x,y,t)を計算し、フィルタリング部に出力する。
[0117]
[フィルタリング部]
 フィルタリング部は、動きベクトルの差分Δv(x,y,t)を入力とし、動きベクトルの差分の非剛体運動ベクトル成分Δv h(x,y,t)を求めて、出力する。
[0118]
 フィルタリング部は、差分Δv(x,y,t)にガウシアンフィルタを畳み込み、差分Δv(x,y,t)の低空間周波数成分Δv l(x,y,t)を得る。例えば、ガウシアンフィルタのカーネルの標準偏差を8ピクセルとする。標準偏差はこれに限らず任意に設定して良いが、小さすぎると次のステップで抽出する非剛体成分がほとんど残らず、大きすぎると非剛体成分に剛体運動成分が多く含まれてしまう可能性が高くなる。
[0119]
 フィルタリング部は、低空間周波数成分Δv l(x,y,t)を元の差分Δv(x,y,t)から差し引き、高空間周波数成分である非剛体運動ベクトル成分Δv h(x,y,t)を得る。すなわち、Δv h(x,y,t)= Δv(x,y,t)-Δv l(x,y,t)である。
[0120]
[第二パラメータ生成部160]
 第二パラメータ生成部160は、縮小動きベクトルv s(x,y,t)、非剛体運動ベクトル成分Δv h(x,y,t)、領域分割された最小輝度画像I Min i(x,y)、領域分割された最大輝度画像I Max i(x,y)、領域分割された中間輝度画像I O i(x,y)、比率ρ、P2Cマップ、及び、C2Pマップとを入力とする。第二パラメータ生成部160は、動きベクトル縮小部140から出力された第一パラメータでスケーリングされた縮小動きベクトルv s(x,y,t)と、非剛性ベクトル抽出部150から出力された非剛体運動ベクトル成分Δv h(x,y,t)と用いて、第二パラメータλ 2を生成し(S160)、出力する。第二パラメータλ 2(x,y,t)は、第一パラメータで縮小することで失われた動きを非剛体運動ベクトル成分で補償する際、v s(x,y,t)+ λ 2(x,y,t)Δv h(x,y,t)のように、非剛体運動ベクトル成分Δv h(x,y,t)をスケーリングするパラメータである。
[0121]
 図8は第二パラメータ生成部160の機能ブロック図を、図9はその処理フローの例を示す。
[0122]
 図8に示すように、第二パラメータ生成部160は、第二領域分割部161、投影結果生成部162、第二乗算部163、動きベクトル加算部164、不自然さ推定部165、第二パラメータ更新部166、第二パラメータ平滑化部167とを含む。以下、各部の処理内容を説明する。
[0123]
[第二領域分割部161]
 第二領域分割部161は、第一パラメータでスケーリングされた縮小動きベクトルv s(x,y,t)と、非剛性ベクトル抽出部150から出力された非剛体運動ベクトル成分Δv h(x,y,t)とを入力とし、領域分割された縮小動きベクトルv s i(x,y,t)、及び、領域分割された非剛体運動ベクトル成分Δv h i(x,y,t)を得て、出力する。ここで、iは領域番号を表す。
[0124]
 第二領域分割部161は、第一パラメータ生成部130の領域分割部131と同様にして、入力ベクトル(縮小動きベクトルv s(x,y,t)と非剛体運動ベクトル成分Δv h(x,y,t))を領域分割する(S161)。領域分割された縮小動きベクトルv s i(x,y,t)は動きベクトル加算部164へ、領域分割された非剛体運動ベクトル成分Δv h i(x,y,t)は第二乗算部163へ出力される。
[0125]
 第二パラメータ生成部160における以後の処理は、第二パラメータ平滑化部167を除き、各領域iの各フレームtについて独立に実行される。第二パラメータλ 2 i(t)は各領域iの各フレームtにつき1つ出力され、全ての領域・フレームについてλ 2 i(t)が得られたら、それらはまとめて第二パラメータ平滑化部167に入力される。
[0126]
[第二乗算部163]
 第二乗算部163は、領域分割された非剛体運動ベクトル成分Δv h i(x,y,t)、及び、領域iの現在の第二パラメータλ 2 i(t)を入力とし、領域分割された非剛体運動ベクトル成分Δv h i(x,y,t)と、領域iの現在の第二パラメータλ 2 i(t)とを乗算し(S163)、積(λ 2 i(t)Δv h i(x,y,t))を動きベクトル加算部164に出力する。現在の第二パラメータλ 2 i(t)は、第二パラメータ更新部166から出力された値を使用する。
[0127]
[動きベクトル加算部164]
 動きベクトル加算部164は、領域分割された縮小動きベクトルv s i(x,y,t)、及び、現在の第二パラメータλ 2 i(t)を乗算した非剛体運動ベクトル成分λ 2 i(t)Δv h i(x,y,t)を入力とし、縮小動きベクトルと非剛体運動ベクトル成分を統合したベクトルv^ i(x,y,t)を求めて、出力する。
[0128]
 動きベクトル加算部164は、縮小動きベクトルv s i(x,y,t)と非剛体運動ベクトル成分λ 2 i(t)Δv h i(x,y,t)を、v^ i(x,y,t)= v s i(x,y,t)+ λ 2 i(t)Δv h i(x,y,t)のように統合し(S164)、統合したベクトルv^ i(x,y,t)を投影結果生成部162及び不自然さ推定部165に出力する。
[0129]
[投影結果生成部162、不自然さ推定部165]
 第二パラメータ生成部160の、投影結果生成部162、不自然さ推定部165は、入力される動きベクトルが「現在の第一パラメータでスケーリングされた動きベクトルλ i(t)v i(x,y,t)」から「縮小動きベクトルと非剛体運動ベクトル成分を統合したベクトルv^ i(x,y,t)」に入れ替わる以外は、第一パラメータ生成部130の投影結果生成部132、不自然さ推定部134とそれぞれ同様の処理S162,S165を行う。
[0130]
[第二パラメータ更新部166]
 第二パラメータ更新部166は、前回の第二パラメータにおける不自然さの推定値d i Min(t)を入力とし、次回の第二パラメータλ 2 i(t)を求めて出力する。ただし、初回は入力はなしで出力のみ行う。
[0131]
 第二パラメータ更新部166では、第二パラメータの探索処理の制御を行う。例えば、不自然さ推定部165で得られる不自然さの推定値d i Min(t)が所定の閾値τに最も近しくなるように探索が行われる。τの値は第一パラメータ更新部135で使用したものと同一の値を用いる。第一パラメータ更新部135と同様、探索には2分探索法を使用する。
[0132]
 第二パラメータ更新部166は、第一パラメータが第二パラメータに置き換わる以外は、第一パラメータ更新部135と同様の処理S166,S166Aを行う。
[0133]
[第二パラメータ平滑化部167]
 第二パラメータ平滑化部167は、第一パラメータ平滑化部136と同様の処理S167を行う。第二パラメータ平滑化部167は、各領域・各フレームから得られた第二パラメータλ 2 i(t)を入力とし、第二パラメータλ 2 i(t)を平滑化して(S167)、平滑化された画素ごとの第二パラメータλ 2(x,y,t)を出力する。ただし、非剛体運動ベクトル成分は局所的に動きの大きさが変化しても質的な動きの印象は大きく変わらないため、隣接領域間の勾配サイズの許容レベルを決定するパラメータ(s s,s t)は第一パラメータ平滑化部136の時よりも大きめに設定するとよい。本実施形態では、(s s,s t)=(0.3,0.06)とした。ただし、これらのパラメータはここで定めた値に限らず、動きサイズの空間的・時間的な不連続性が気にならない範囲で任意に設定しても良い。
[0134]
 生成した第二パラメータλ 2(x,y,t)は動きベクトル統合部170に出力される。
[0135]
[動きベクトル統合部170]
 動きベクトル統合部170は、第二パラメータλ 2(x,y,t)、非剛体運動ベクトル成分Δv h(x,y,t)、及び、縮小動きベクトルv s(x,y,t)を入力とし、統合動きベクトルv^(x,y,t)を求めて、出力する。
[0136]
 動きベクトル統合部170は、第二パラメータ生成部160で生成された第二パラメータλ 2(x,y,t)で非剛体運動ベクトル成分Δv h(x,y,t)をスケーリングし、これと第一パラメータでスケーリングされた縮小動きベクトルv s(x,y,t)とを加算し、最終的に投影像生成で使用する動きベクトル(統合動きベクトルv^(x,y,t))を求める(S170)。つまり、動きベクトル統合部170は、次式により動きベクトルを統合する。
[0137]
[数11]


[0138]
動きベクトル統合部170は、統合動きベクトルv^(x,y,t)を投影像生成部180に出力する。
[0139]
[投影像生成部180]
 投影像生成部180は、最小輝度画像I Min(x,y)、最大輝度画像I Max(x,y)、中間輝度画像I O(x,y)、統合動きベクトルv^(x,y,t)、及び、P2Cマップを入力とし、投影像I P(x,y,t)を得て、出力する。
[0140]
 投影像生成部180は、統合動きベクトルv^(x,y,t)に基づいて中間輝度画像I O(x,y)を歪ませ、歪み画像I W(x,y,t)を得る(S180)。歪ませる方法は第一パラメータ生成部130における投影結果生成部132と同様である。
[0141]
 投影像生成部180は、歪み画像を再現するための理想的な投影像I M(x,y,t)を第一パラメータ生成部130における投影結果生成部132と同様、式(2)によって求める。
[0142]
 さらに、投影像生成部180は、I M(x,y,t)の値をプロジェクタで物理的に投影可能な範囲[0,1]に制限する。
[0143]
 投影像生成部180は、上で得られた画像をP2Cマップに基づいてプロジェクタ座標系にマッピングしてI P(x,y,t)とし、投影部190に出力する。
[0144]
[投影部190]
 投影部190は、投影像I P(x,y,t)を入力とし、入力された投影像を投影対象に向けてプロジェクタから投影する(S190)。
[0145]
 投影像I P(x,y,t)に含まれるエッジが投影対象の輪郭、または、投影対象に含まれるエッジと重なるよう投影される。ここでは、カメラキャリブレーションで得たP2Cマップに基づいて投影像I P(x,y,t)を生成しているため、投影像の位置合わせは不要である。なお、プロジェクタは市販のもので構わないが、明るい部屋で用いる場合は、輝度の高いプロジェクタとする必要がある。
[0146]
 投影部190は、公知の光プロダクション技術(例えば、参考文献4参照)によって、投影像I P(x,y,t)を、投影対象M staticに投影して動画M 2を表示する。
[0147]
[数12]


[0148]
(参考文献4)河邉隆寛,澤山正貴,丸谷和史,西田眞也,(2014),“静止した2次元対象を運動情報によって錯覚的に変形させる光投影手法,” 2014年映像情報メディア学会年次大会, 5-3.
[0149]
ただし、○は、投影対象M staticの輝度成分に対して投影像I P(x,y,t)が複合的に加算・乗算される状態(加味される状態)を表す。言い換えると、投影対象M staticの輝度成分と投影像I P(x,y,t)とに対して加算および乗算の少なくとも一方を含む演算が施される状態を表す。すなわち、印刷物に光を投影した場合、紙やインクの特性に応じて反射のパターンが異なり、部分的には乗算的に輝度が変化し、他の部分では加算的に輝度が変化することが想定されるので、この両方の輝度変化を生じさせる計算を○で表している。
[0150]
<効果>
 以上の構成により、投影する動き情報を、投影対象や投影環境に合わせて、領域毎、フレーム毎に自動的に調整し、最適化できる。さらに、人手では困難だった細かい調節を短時間で行うことができる。
[0151]
<変形例>
 本実施形態では、投影対象撮影部110、カメラ-プロジェクタ間画素対応取得部120、加算部125を別装置とし、その出力値(I Max,I Min,I O,ρ,P2Cマップ、C2Pマップ)を、残りの構成からなる投影像生成装置の入力としてもよい。また、投影部190を別装置とし、投影像生成装置は、別装置の投影部190に投影像I P(x,y,t)を出力する構成としてもよい。
[0152]
 また、本実施形態の投影像生成装置に含まれる第一パラメータ生成部130、動きベクトル縮小部140、非剛性ベクトル抽出部150、第二パラメータ生成部160、動きベクトル統合部170を取り出し、動きベクトル生成装置として機能させてもよい。この場合、動きベクトル生成装置は、I Max,I Min,I O,ρ,P2Cマップ、C2Pマップ、v(x,y,t)を入力とし、統合動きベクトルv^(x,y,t)を出力する。
[0153]
 なお、以下の実施形態においても同様の変形が可能である。
[0154]
<第二実施形態>
 特許文献1のように、人手で動きのサイズを調整する場合、対象にインタラクティブに動きを与えるようなアプリケーション(例えば、カメラで人の表情をリアルタイムにキャプチャしながら、その表情変化に基づく動きを別の写真や絵画にプロジェクションマッピングで与えるようなアプリケーション)を実現することはできない。
[0155]
 第一実施形態では、第一パラメータ生成部130、及び第二パラメータ生成部160において、各フレームにおける各領域の第一パラメータλ i(t)(あるいは第二パラメータλ 2 i(t))が、全フレームの全領域について得られた後に、それらをまとめて第一パラメータ平滑化部136(あるいは第二パラメータ平滑化部167)において一度に平滑化して第一パラメータλ(x,y,t)(あるいは第二パラメータλ 2(x,y,t))を得るように処理がなされている。そのため、第一実施形態の方法は、特許文献1と同じように、入力となる動きベクトルv(x,y,t)を逐次的に(リアルタイムに)最適化していくことが求められるような場合(例えば、インタラクティブ性が求められるアプリケーション)には使えない。
[0156]
 第二実施形態では、入力となる動きベクトルv(x,y,t)を毎フレーム逐次的に最適化するような処理の方法について記述する。以下では、第一実施形態からの変更点を中心に説明する。
[0157]
 入力となる動きベクトルは、全フレームのv(x,y,t)ではなく、現在のフレームt=t 0における動きベクトルv(x,y,t 0)とする。これに合わせて、動きベクトル縮小部140、非剛性ベクトル抽出部150、動きベクトル統合部170、投影像生成部180では、現在のフレームに関する処理のみ行うものとする。
[0158]
[第一パラメータ生成部130]
 第一パラメータ生成部130では、領域分割部131において、現在のフレームの動きベクトルv(x,y,t 0)の領域分割を第一実施形態と同様に行う。領域毎に行われる処理(乗算部133、投影結果生成部132、不自然さ推定部134、第一パラメータ更新部135における処理)は、第一実施形態と同様に行う。
[0159]
 第一パラメータ平滑化部136は、以下の処理に置き換える。
[0160]
[第一パラメータ平滑化部136]
 第一パラメータ平滑化部136は、各領域・各フレームから得られた第一パラメータλ i(t)を入力とし、平滑化された画素ごとの第一パラメータλ(x,y,t 0)を求めて、出力する。
[0161]
 第二実施形態における第一パラメータ平滑化部136では、空間方向の平滑化と時間方向の平滑化を別々に行う。空間方向の平滑化は、第一実施形態と同様の手順で、以下のように行われる。
[0162]
 説明のため、各領域の第一パラメータをλ(m,n)と記述する。ここで、mは当該領域の横方向の位置、nは当該領域の縦方向の位置を表す。まず、隣り合うλ(m,n)同士の間で極端な値の変化が生じないように平滑化を実行する。この時、λ(m,n)を以下の2つの制約を満たすようにλ'(m,n)に置き換えることで平滑化を行う。
制約1:全てのm,nについてλ'(m,n)≦λ(m,n)を満たさなければならない。これにより、平滑化処理によって不自然さの閾値を超えてしまわないように制約できる。
制約2:全てのm,nについて、以下を満たさなければならない。
[0163]
[数13]


[0164]
ここで、(m',n')は(m,n)の周囲の領域の集合を表し、m'∈{m-1,m,m+1},n'∈{n-1,n,n+1}である。s sは隣接領域間の勾配サイズの許容値である。第一実施形態と同様に、s s=0.06とした。λ(m,n,t)を更新するアルゴリズムとして、第一実施形態と同様に、参考文献3に記載の方法を用いることができる。具体的な処理は図11の通りである。
[0165]
 空間方向の平滑化の後、時間方向に平滑化を行う。このために、1フレーム前の空間方向および時間方向に平滑化済みの第一パラメータλ”(m,n,t 0-1)(以下、簡単のためλ”(t 0-1)とかく)を記憶部から読み出し、空間方向に平滑化済みの現在フレームの第一パラメータλ'(m,n,t 0) (以下、簡単のためλ'(t 0)とかく)を、以下のように平滑化し、時間方向に平滑化済みの第一パラメータλ”(m,n,t 0) (以下、簡単のためλ”(t 0)とかく)を得る。
[0166]
[数14]


[0167]
ここで、Fはシステム全体のフレームレートを表し、s' tは前フレームからの勾配量の許容値(最大値)を決定するパラメータである。本実施形態では、フレームレートF=60の場合を想定し、s' t=2とした。この場合、第一パラメータの許容される時間方向の勾配量は0.033となる。許容勾配量は必ずしもこの値である必要はないが、大きすぎると動きサイズの不連続性が目立つ結果となり得、小さすぎると投影結果の不自然さが閾値τよりも大きくなってしまうフレームが増えてしまう。こうした要素を鑑みつつ、最適なパラメータをユーザーが選択できるようにしても良い。なお、以前のフレームが存在しない場合には、λ”(t 0)= λ'(t 0)として以降の処理を行う。得られた平滑化済みの第一パラメータλ”(t 0)は記憶部に記憶し、次フレームの平滑化処理に用いる。
[0168]
 つまり、第一パラメータ平滑化部136は、「1フレーム前の空間方向および時間方向に平滑化済みの第一パラメータλ"(t 0-1)」と、「現在のフレームの空間方向に平滑化済みの第一パラメータλ'(t 0)」との差分と所定の値(s' t/Fまたは-s' t/F)との大小関係に基づき、第一パラメータλ"(t 0-1)と所定の値(s' t/Fまたは-s' t/F)とを用いて、第一パラメータλ'(t 0)を時間方向に平滑化する。
[0169]
 最後に、λ”(t 0)を第一実施形態と同様に、双線形補間法などで引き伸ばし、画素毎の第一パラメータλ(x,y,t 0)を得る。
[0170]
[第二パラメータ生成部160]
 第二パラメータ生成部160では、第二領域分割部161において、現在のフレームの縮小動きベクトルv s(x,y,t 0)、及び現在のフレームの非剛体運動ベクトル成分Δv h(,y,t 0)の領域分割を第一実施形態と同様に行う。領域毎に行われる処理(第二乗算部163、動きベクトル加算部164、投影結果生成部162、不自然さ推定部165、第二パラメータ更新部166における処理)は、第一実施形態と同様に行う。
[0171]
[第二パラメータ平滑化部167]
 第二パラメータ平滑化部167は、第二実施形態における第一パラメータ平滑化部136と同様の処理に置き換える。
[0172]
 つまり、第二パラメータ平滑化部167は、まず空間方向の平滑化を参考文献3に記載の方法で行った後で、時間方向の平滑化を行う。空間方向の平滑化を行う際の、空間方向の勾配サイズの許容レベルを決定するパラメータは、第一実施形態における第二パラメータ平滑化部167と同様に、s s=0.3とした。時間方向の平滑化は、第二実施形態における第一パラメータ平滑化部136と同様に、「1フレーム前の空間方向および時間方向に平滑化済みの第二パラメータλ" 2(t 0-1)」と、「現在のフレームの空間方向に平滑化済みの第二パラメータλ' 2(t 0)」との差分と所定の値(s' t/Fまたは-s' t/F)との大小関係に基づき、第二パラメータλ" 2(t 0-1)と所定の値(s' t/Fまたは-s' t/F)とを用いて、第二パラメータλ' 2(t 0)を平滑化することで行う。ただし、勾配サイズの許容レベルを決定するパラメータs' tは第一パラメータ平滑化部の時よりも大きめに設定する。本実施形態では、s' t=4とした。ただし、この値はここで定めた値に限らず、動きサイズの時間的な不連続性が気にならない範囲で任意に設定しても良い。
[0173]
<効果>
 このような構成により、第一実施形態と同様の効果を得ることができる。さらに、動きベクトルv(x,y,t)を逐次的に(リアルタイムに)最適化していくことができる。対象にインタラクティブに動きを与えるようなアプリケーションに本発明を適用することができる。
[0174]
<第三実施形態>
 第一実施形態及び第二実施形態と異なる部分を中心に説明する。
[0175]
 第一実施形態および第二実施形態では、非剛性ベクトル抽出部150のフィルタリング部において動きベクトルの高周波成分を非剛体運動ベクトル成分Δv h(x,y,t)として取り出したが、ここで、複数のバンドパスフィルタを用いて複数のバンドパス成分を取り出してもよい。
[0176]
 例えば、非剛性ベクトル抽出部150において、Laplacian pyramidなどを用いて動きベクトルを複数(N P個。N Pは2以上の整数の何れか)のバンドパス成分Δv b_1,Δv b_2,…, Δv b_N_Pに分解し、異なる空間周波数成分ごとに第nパラメータ(n∈2,…,N p+1)を求める構成としてもよい。
[0177]
 図12は第三実施形態に係る投影像生成装置の機能ブロック図を、図13はその処理フローの例を示す。ただし、図12では、投影対象撮影部110、加算部125、カメラ-プロジェクタ間画素対応取得部120、投影部190の記載を省略する。
[0178]
 第三実施形態に係る投影像生成装置は、第一実施形態または第二実施形態の投影像生成装置の第二パラメータ生成部160と動きベクトル統合部170に代えてN P個の第nパラメータ生成部160-nとN P個の第n動きベクトル統合部170-nとを含む(n∈2,…,N p+1)。
[0179]
[第nパラメータ生成部160-n]
 第nパラメータ生成部160-nは、第一実施形態(あるいは第二実施形態)における第二パラメータ生成部160と、以下で記述する点以外は同一の処理を行う。
[0180]
 第nパラメータ生成部160-nは、第n-1動きベクトル統合部170-(n-1)から出力された統合動きベクトルv n-1(x,y,t)(ただし、n=2のとき縮小動きベクトルv s(x,y,t))、動きベクトルの第n-1番目のバンドパス成分Δv b_n-1(x,y,t)、領域分割された最小輝度画像I Min i(x,y)、領域分割された最大輝度画像I Max i(x,y)、領域分割された中間輝度画像I O i(x,y)、比率ρ、P2Cマップ、及び、C2Pマップを入力として、これらを用いて、第nパラメータλ nを求め(S160-n)、出力する。第nパラメータλ n(x,y,t)は、第一パラメータで縮小することで失われた動きを第n-1番目のバンドパス成分Δv b_n-1(x,y,t)で補償する際、v s(x,y,t)+λ 2(x,y,t)Δv 1(x,y,t)+…+λ n(x,y,t)Δv b_n-1(x,y,t)+…+λ N_p+1(x,y,t)Δv b_N_p(x,y,t)のように、第n-1番目のバンドパス成分Δv b_n-1(x,y,t)をスケーリングするパラメータである。
[0181]
 つまり、第nパラメータ生成部160-nでは、非剛体運動ベクトル成分Δv h(x,y,t)は、動きベクトルの第n-1番目のバンドパス成分Δv b_n-1(x,y,t)に置き換える。
[0182]
 n>2の時のみ、縮小動きベクトルv s(x,y,t)は第n-1動きベクトル統合部170-(n-1)から出力された統合動きベクトルv n-1(x,y,t)に置き換え、第二パラメータλ 2は第nパラメータλ nに置き換える。
[0183]
 第nパラメータ生成部160-n内の第二パラメータ平滑化部167で使用する勾配量の制約s sおよびs t(第二実施形態のようにリアルタイム処理を行う場合はs' t)は、nに応じて徐々に大きくしていく(例えば、nが1増える毎に2倍ずつ増大させていく)。
[0184]
 得られた第nパラメータλ n(x,y,t)は第n動きベクトル統合部170-nに出力される。
[0185]
[第n動きベクトル統合部170]
 第n動きベクトル統合部170は、第nパラメータλ n(x,y,t)、動きベクトルの第n-1番目のバンドパス成分Δv b_n-1(x,y,t)、及び、第n-1動きベクトル統合部170-(n-1)から出力された統合動きベクトルv n-1(x,y,t)を入力とし、統合動きベクトルv n(x,y,t)を求めて、出力する。
[0186]
 第n動きベクトル統合部170は、以下の式により、第nパラメータを用いてスケーリングされた(n-1)番目のバンドパス成分λ n(x,y,t)Δv b_n-1(x,y,t)と、第(n-1)統合ベクトル v n-1(x,y,t)とを加算した統合動きベクトル v n(x,y,t)を計算する(S170-n)。
[0187]
[数15]


[0188]
 n<N P+1の時、統合動きベクトルv n(x,y,t)を第n+1パラメータ生成部160-(n+1)および第n+1動きベクトル統合部170-(n+1)に出力する
 n=N P+1の時、統合動きベクトルv N_P+1(x,y,t)をv^(x,y,t)として投影像生成部180に出力する。
[0189]
 上記処理S160-n,S170-nをn=2からn=N p+1まで繰り返す(S1,S2,S3)。
[0190]
<効果>
 このような構成により、第一実施形態または第二実施形態と同様の効果を得ることができる。さらに、第一パラメータで縮小することで失われた動きをバンドパス成分ごとに補償することで、より細かい調整を行うことができる。
[0191]
<第四実施形態>
 第一実施形態及び第二実施形態と異なる部分を中心に説明する。
[0192]
 入力とする動きベクトルv(x,y,t)に、剛体運動が多く含まれないことが事前にわかっている場合には、非剛性ベクトル抽出部150、第二パラメータ生成部160、動きベクトル統合部170を省略し、動きベクトル縮小部140で得られた動きベクトルを最終的な動きベクトルとして、投影像生成部180で用いても良い。この場合、第一パラメータ平滑化部で用いるパラメータ(第一実施形態ではs s,s t、第二実施形態ではs s,s' t)は、それぞれ第二パラメータ平滑化部167で用いていたものに置き換えて実行するとよい。
[0193]
 図14は第四実施形態に係る投影像生成装置の機能ブロック図を、図15はその処理フローを示す。
[0194]
<第五実施形態>
 第一実施形態と異なる部分を中心に説明する。
[0195]
 第一実施形態で記述した不自然さ推定部134では、投影結果に対する知覚的な動きサイズを決定する第三パラメータα iと、不自然さの推定値d i Min(t)を同時に求めるためにループを回す必要があり、処理に時間がかかってしまう。本実施形態では、第三パラメータα iをまず最初に解析的に求め、得られた第三パラメータα iを使って不自然さの推定値d i Min(t)を計算することで、ループを回さずにd i Min(t)を出力できるような方法について説明する。本実施形態は不自然さ推定部134を図16の不自然さ推定部534に差し替えるのみで、他の処理・構成については任意の形態のものを使用できる。
[0196]
 図16は第五実施形態に係る不自然さ推定部534の機能ブロック図を、図17はその処理フローの例を示す。
[0197]
 第一実施形態の不自然さ推定部134と比べると(図5,図6参照)、第三パラメータ更新部134Cがなくなり、その代わり、第三パラメータ推定部534Cが新たに加えられた形となる。それ以外の共通の処理部(第三パラメータ乗算部134A、ワープ画像生成部134B、知覚モデル適用部134D、知覚差分計算部134E)については、以下の2点以外は第一実施形態の不自然さ推定部134と同一の処理を行う。
(1)第三パラメータ乗算部134Aの入力となる第三パラメータα iが第三パラメータ推定部534Cから与えられる点
(2)知覚差分計算部134Eで得られる知覚的な差分d i(t)が、不自然さの推定値d Min i(t)として、そのまま不自然さ推定部534Cから出力される点
 以下、第三パラメータ推定部534Cの処理について具体的に記述する。
[0198]
[第三パラメータ推定部534C]
 第三パラメータ推定部534Cは、中間輝度画像I O i(x,y)、第一パラメータでスケーリングされた動きベクトルλ i(t)v i(x,y,t)、及び、投影結果再現画像I P i(x,y,t)を入力とし、第三パラメータα iを求めて(S534C)、出力する。
[0199]
 第三パラメータ推定部534Cは、中間輝度画像I O i(x,y)を、第一パラメータλ i(t)でスケーリングされた動きベクトルλ i(t)v i(x,y,t)に基づいて歪める処理をテイラー展開の一次近似により線形方程式で表現することで、知覚的な差分d i(t)を繰り返し求めることなく、第三パラメータα iを一意に求める。
[0200]
 第三パラメータα iは、投影結果再現画像I P i(x,y,t)を見たときの「知覚的な動き量α iλ i(t)v i(x,y,t)」を決定するパラメータである。「知覚的な動き量を決定するα i」として、投影結果再現画像I P i(x,y,t)と、元の中間輝度画像I O i(x,y)を計算機上でα iλ i(t)v i(x,y,t)だけ歪ませて生成した画像I W(α) i(x,y,t)との間の知覚的な差分d i(t)が最小となるα iを求める。このとき、第一実施形態では、知覚的な差分として、投影結果再現画像I P i(x,y,t)と画像I W(α) i(x,y,t)をそれぞれ知覚応答r(x,y,t)、r'(x,y,t)に変換した上で、知覚応答r(x,y,t)、r'(x,y,t)間の距離d i(t)を明示的に計算し、d i(t)が最小となるようなα iを繰り返し処理を含む探索によって求めている。ここでは、d i(t)を計算せず、直接α iを推定する方法について述べる。以下、記述を簡略化するため、上付き記号i(領域iに属することを示す)及び時間フレームtを省略する。(処理は領域i、フレームt毎に独立に同様に行われる)
[0201]
 まず、問題を簡単にするため、知覚的な差分ではなく、物理的な差分(画像間の平均自乗誤差)が最小となるαを求めるケースを考える。この場合、以下の誤差関数を最小化するようなαを計算するという問題として記述できる。
[0202]
[数16]


[0203]
ここで、
[0204]
[数17]


[0205]
と表せる。なお、v x(x,y),v y(x,y)は、動きベクトルλv(x,y)のx,y軸における要素をそれぞれ表す。また、ここでは説明を簡単にするため、画素移動をinverse warping(移動後の画像から元画像を参照する形式)として記述するが、本実施形態ではαは空間的にスムーズであると仮定しているため、以下で説明する近似は、forward warping(元画像から移動後の画像を参照する形式)の場合についても成立する。
[0206]
 式(11)は、テイラー展開の一次近似により、以下のように表すことができる。
[0207]
[数18]


[0208]
式(12)にα=1を代入して、
[0209]
[数19]


[0210]
式(12),式(13)より、
[0211]
[数20]



                                   
[0212]
ここで、D P=I P-I O、D W=I W(1)-I Oとおき、式(14)を式(10)に代入することにより、
[0213]
[数21]


[0214]
を得る。このeの最小化問題の解は、以下の式で一意に解くことができる。
[0215]
[数22]


[0216]
なお、本実施形態では、テイラー展開の一次近似を行っているが、これは一例であって、画像の勾配情報を用いた線形近似であれば他の近似を行ってもよい。
[0217]
 次に、物理的な差分ではなく、知覚的な差分が最小となるαを求める問題に立ち返って考える。このとき、I P、I W(1)、I Oを知覚モデル適用部134Dと同様の処理により知覚モデルの応答に変換したものに置き換えて式(16)を解くという方法がまず考えられる。しかし、知覚モデル適用部134Dの処理を全て適用して画像を変換するのではなく、式(4)で表される重み付きバンドパス画像まで変換し、これを式(16)に代入してαを求めても良い。これは、式(6)で表されるコントラストゲイン調節処理を再現しなくても、知覚的な動き量を推定するのに十分な精度が得られるためである。ただし、不自然さ推定のためには式(6)による変換は非常に重要である。第三パラメータα iを求める具体的手順は以下のようになる。
[0218]
 第三パラメータ推定部534Cは、中間輝度画像I O i(x,y)を、第一パラメータλ i(t)でスケーリングされた動きベクトルλ i(t)v i(x,y,t)に基づいて歪め、I i W(1)(x,y,t)を得る。歪ませる方法は第一パラメータ生成部130における投影結果生成部132と同様である。
[0219]
 次に、第三パラメータ推定部534Cは、I i W(1)(x,y,t)、I i P(x,y,t)、I O(x,y)を、それぞれ知覚モデル適用部134Dの処理1~処理3に従い、重み付きバンドパス画像c j(x,y)に変換する。
[0220]
 さらに、第三パラメータ推定部534Cは、I i W(1)(x,y,t)、I i P(x,y,t)、I O(x,y)から得られた重み付きバンドパス画像を、I c(x,y)=Σ jc j(x,y)ようにjについて加算し、それぞれ1枚のバンドパス画像W C(x,y), P C(x,y), O C(x,y)にまとめる。
[0221]
 第三パラメータ推定部534Cは、D P=P C(x,y)-O C(x,y)、D W=W C(x,y)-O C(x,y)として式(16)に代入し、第三パラメータの推定値α iを得る(S534C)。第三パラメータの推定値α iを第三パラメータ乗算部134Aに出力する。
[0222]
 前述の通り、他の処理については、第一実施形態の不自然さ推定部134と同様である。
[0223]
<効果>
 上述の構成により、第一実施形態と同様の効果を得ることができる。さらに、不自然さ推定部における処理を高速化することができる。なお、本実施形態と第二~第四実施形態を組合せてもよい。
[0224]
<第六実施形態>
 上記第一~第五実施形態では、不自然さ推定値d i Min(t)が閾値τ以下とならない限り、更新サイクル回数がN sに達するまで第一パラメータは引き下げられ続ける。従って、条件次第では第一パラメータが非常に小さくなり、動きサイズが想定以上に縮小されてしまう可能性がある。こうした可能性を排除し、最適化後の投影結果において必要最低限の動き印象を確保するため、第一パラメータがある下限未満とならないように制約を設けても良い。この制約の設け方の1例として、第六実施形態では、不自然さ推定部134から第三パラメータα i(知覚的な動きサイズが物理的なベクトルサイズと比べてどれくらいかを表す)も出力して、第三パラメータと第一パラメータを乗算した値(=「元の動きベクトルのサイズ」に対する「縮小後の動きベクトルによって得られる動きの知覚サイズ」)が所定の閾値以下にならないように、第一パラメータに制約を設ける。これは、例えば、第一パラメータ更新部135を以下のような処理内容に置き換えることで実現できる。
[0225]
[第一パラメータ更新部135]
 第一パラメータ更新部135は、前回の第一パラメータにおける不自然さの推定値d i Min(t)、及び、第三パラメータα i(図3中、第三パラメータを(α i)で示す)を入力とし、次回の第一パラメータλ i(t)を求めて(S135)、出力する。ただし、初回は入力はなしで出力のみ行う。
[0226]
 第一パラメータ更新部135は、初回はλ i(t)=0.5、ステップサイズstp=0.25として記憶部に保存するとともに、λ i(t)を乗算部133に出力する。
[0227]
 第一パラメータ更新部135は、以降のサイクルでは、入力された不自然さの推定値d i Min(t)と閾値τの比較結果に基づいて、以下のようにλ i(t)を更新する。
d i Min(t)<τのとき、第一パラメータ更新部135は、λ i(t)=λ i(t)+stp(ただし、この処理でλ i(t)が1を超えた場合はλ i(t)=1と上書きする)として第一パラメータを更新し、記憶部に保存する。
d i Min(t)>τのとき、第一パラメータ更新部135は、λ i(t)=λ i(t)-stp(ただし、この処理でα iλ i(t)<τ 2となった場合はλ i(t)=τ 2iと上書きする。)として第一パラメータを更新し、記憶部に保存する。
d i Min(t)=τまたはサイクル数がN S回目であれば、第一パラメータ更新部135は、探索を終了し、λ i(t) を第一パラメータ平滑化部136へ出力する。それ以外の場合は、stp=stp/2としてステップサイズを更新し、記憶部に保存すると共に、λ i(t)を乗算部133に出力する。
[0228]
<効果>
 上述の構成により、第一実施形態と同様の効果を得ることができる。さらに、必要最低限の動き印象を確保することができる。なお、本実施形態と第二~第五実施形態を組合せてもよい。
[0229]
<第七実施形態>
 投影像の生成方法を、他の方法に基づき行ってもよい。例えば、特開2018-50216号公報の方法を用いることができる。
[0230]
 この場合、投影部190は明るさB 、B (B <B )の一様光を投影対象に投影し、投影対象撮影部110は、それぞれの条件下で投影対象を撮影した画像I B1、I B2を得る。
[0231]
 最小輝度画像I Min=I B1、最大輝度画像I Max=I B2として扱う。中間輝度画像もI O=I B1として扱い、加算部でI Oを求める処理は省略する。
[0232]
 投影結果生成部132と投影像生成部180において、I Mは以下の式で生成する
[0233]
[数23]


[0234]
ここで、Kは投影対象の画素毎のアルベド(反射率)を反映する値であり、
[0235]
[数24]


[0236]
で計算できる。また、基本的にw=1とするのが最適であるが、ユーザーが変更して投影像のコントラストを操作できるようにしても良い。アルベドの推定に誤差が多く含まれる場合には、全画素について、K=1と固定しても良い。
[0237]
 投影結果生成部132において、投影結果再現画像I Pを得る際には、第一実施形態と同様の手順でI^ M(x,y,t)を得た後、以下の式で計算する。
[0238]
[数25]


[0239]
<効果>
 上述の構成により、第一実施形態と同様の効果を得ることができる。さらに、本実施形態と第二~第六実施形態とを組合せてもよい。
[0240]
<その他の変形例>
 本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
[0241]
<プログラム及び記録媒体>
 また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
[0242]
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
[0243]
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
[0244]
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
[0245]
 また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

請求の範囲

[請求項1]
 動きベクトルに基づき得られる投影像を投影した投影対象を撮影した場合に得られる画像である投影結果再現画像と、投影対象を撮影して得られる画像を前記投影結果再現画像を見たときの知覚的な動き量分だけ歪ませて生成する画像であるワープ画像との間の知覚的な差分に基づき、前記動きベクトルをスケーリングするためのパラメータである第一パラメータを生成する第一パラメータ生成部と、
 前記第一パラメータを用いて前記動きベクトルをスケーリングする動きベクトル縮小部とを含む、
 動きベクトル生成装置。
[請求項2]
 請求項1の動きベクトル生成装置であって、
 前記動きベクトルと、前記第一パラメータを用いてスケーリングされた動きベクトルである縮小動きベクトルとの差分に含まれる非剛体運動ベクトル成分を抽出する非剛性ベクトル抽出部と、
 前記縮小動きベクトルと、前記非剛体運動ベクトル成分とを用いて、前記第一パラメータで前記動きベクトルを縮小することで失われた動きを前記非剛体運動ベクトル成分で補償する際、前記非剛体運動ベクトル成分をスケーリングするパラメータである第二パラメータを生成する第二パラメータ生成部と、
 前記第二パラメータを用いてスケーリングされた前記非剛体運動ベクトル成分と、前記縮小動きベクトルとを加算した統合ベクトルを求める動きベクトル統合部とを含む、
 動きベクトル生成装置。
[請求項3]
 請求項1または請求項2の動きベクトル生成装置であって、
 前記第一パラメータ生成部は、
 前記知覚的な動き量となるように入力される、動きベクトルをスケーリングする係数である第三パラメータを、知覚モデルを適用して得られる、ワープ画像の知覚表象を表す特徴ベクトルと投影結果再現画像の知覚表象を表す特徴ベクトルとの間の距離が最も小さくなるときの値として推定し、前記最も小さくなるときの値を不自然さの推定値として求める不自然さ推定部と、
 前記知覚的な差分が所定の閾値に最も近くなるように前記第一パラメータを更新する第一パラメータ更新部とを含む、
 動きベクトル生成装置。
[請求項4]
 請求項2の動きベクトル生成装置であって、
 前記第一パラメータ生成部は、1フレーム前の空間方向および時間方向に平滑化済みの第一パラメータλ"(t 0-1)と、現在のフレームの空間方向に平滑化済みの第一パラメータλ'(t 0)との差分と第一の値との大小関係に基づき、前記第一パラメータλ"(t 0-1)と前記第一の値とを用いて、前記第一パラメータλ'(t 0)を時間方向に平滑化する第一パラメータ平滑化部を含み、
 前記第二パラメータ生成部は、1フレーム前の空間方向および時間方向に平滑化済みの第二パラメータλ" 2(t 0-1)と、現在のフレームの空間方向に平滑化済みの第二パラメータλ' 2(t 0)との差分と第二の値との大小関係に基づき、前記第二パラメータλ" 2(t 0-1)と前記第二の値とを用いて、前記第二パラメータλ' 2(t 0)を時間方向に平滑化する第二パラメータ平滑化部を含む、
 動きベクトル生成装置。
[請求項5]
 請求項1の動きベクトル生成装置であって、
 N Pを3以上の整数の何れかとし、
 N P個の第nパラメータ生成部と、
 N P個の第n動きベクトル統合部と、
 前記動きベクトルと、前記第一パラメータを用いてスケーリングされた動きベクトルである縮小動きベクトルとの差分に含まれるN P個のバンドパス成分を抽出する非剛性ベクトル抽出部とを含み、
 第2パラメータ生成部は、前記縮小動きベクトルと、1番目のバンドパス成分とを用いて、前記第一パラメータで前記動きベクトルを縮小することで失われた動きを1番目のバンドパス成分で補償する際、1番目のバンドパス成分をスケーリングするパラメータである第2パラメータを生成し、
 第2動きベクトル統合部は、前記第2パラメータを用いてスケーリングされた1番目のバンドパス成分と、前記縮小動きベクトルとを加算した第2統合ベクトルを求め、
 n=3,4,…,N P+1とし、第nパラメータ生成部は、第(n-1)統合ベクトルと、(n-1)番目のバンドパス成分とを用いて、前記第一パラメータで前記動きベクトルを縮小することで失われた動きを(n-1)番目のバンドパス成分で補償する際、(n-1)番目のバンドパス成分をスケーリングするパラメータである第nパラメータを生成し、
 n=3,4,…,N P+1とし、第n動きベクトル統合部は、前記第nパラメータを用いてスケーリングされた(n-1)番目のバンドパス成分と、第(n-1)統合ベクトルとを加算した第n統合ベクトルを求める、
 動きベクトル生成装置。
[請求項6]
 請求項3の動きベクトル生成装置であって、
 前記不自然さ推定部は、
 投影対象を撮影した場合に得られる画像を前記第一パラメータでスケーリングした前記動きベクトルに基づいて歪めた部分を画像の勾配情報を用いた線形近似により表すことで、前記第三パラメータを求める第三パラメータ推定部を含む、
 動きベクトル生成装置。
[請求項7]
 請求項1から請求項6の何れかの動きベクトル生成装置であって、
 前記第一パラメータ生成部は、スケーリング前の前記動きベクトルのサイズに対するスケーリング後の前記動きベクトルによって得られる動きの知覚サイズが所定の閾値以下にならないように前記第一パラメータに制約を設ける、
 動きベクトル生成装置。
[請求項8]
 請求項1から請求項7の何れかの動きベクトル生成装置で生成された動きベクトルを用いて投影像を生成する投影像生成装置であって、
 スケーリング後の前記動きベクトルに基づき、投影対象を撮影して得られる画像を歪ませ、歪み画像を得、前記歪み画像を再現するための理想的な投影像を求め、前記理想的な投影像を投影装置で物理的に投影可能な範囲に制限し、投影装置における座標から見た撮影装置における座標へのマッピングに基づいて、制限した前記投影像を投影装置における座標系にマッピングする投影像生成部を含む、
 投影像生成装置。
[請求項9]
 第一パラメータ生成部が、動きベクトルに基づき得られる投影像を投影した投影対象を撮影した場合に得られる画像である投影結果再現画像と、投影対象を撮影して得られる画像を前記投影結果再現画像を見たときの知覚的な動き量分だけ歪ませて生成する画像であるワープ画像との間の知覚的な差分に基づき、前記動きベクトルをスケーリングするためのパラメータである第一パラメータを生成する第一パラメータ生成ステップと、
 動きベクトル縮小部が、前記第一パラメータを用いて前記動きベクトルをスケーリングする動きベクトル縮小ステップとを含む、
 動きベクトル生成方法。
[請求項10]
 請求項1から請求項7の何れかの動きベクトル生成装置、または、請求項8の投影像生成装置として、コンピュータを機能させるためのプログラム。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]

[ 図 13]

[ 図 14]

[ 図 15]

[ 図 16]

[ 図 17]