それではここからはプロジェクションマッピング原理の話をします。
マッピングの基本:1. 手動で行う場合
プロジェクションマッピングは、任意の(3D形状を持つ)対象に対して、その対象の3D形状に対応付け(マッピング)を事前に行ってある映像を投影します。以下の図に、対象の物体(2個の直立した直方体)の正面側の表面に、マッピング済みの映像を投影する例の様子を図示しました。
投影する2つの領域のパターン(この図では左側の大きな直方体と、右側の直方体)を、それぞれ投影した際に、ターゲットとなる直方体の正面側領域に投影されるようにマッピングすることとなります。この例では投影先の長方形の各頂点同士が、投影パターンと対象物体で一致するようにマッピングをあらかじめ行っておくことになります。この例のように、投影する領域と対象が四角形の場合は、四角形の4つの頂点同志のペアをそれぞれ対応付けすれば、四角形全体が位置合わせされてうまく投影されるようにすることができます。
マッピング作業が済めば、あとは、領域ごとにパターンが個別に変化する映像を作成して、作成済みの映像を本番で投影します。例えば、図中右の撮影対象では、「撮影中1」の時刻では赤の縞模様を投影し、図中の「撮影中2」の時刻では緑色のタイル模様を投影するといったように、対象領域ごとに模様を変化させることができるわけです。また、ここでは詳細は述べませんが、画像変換を用いて、投影したときに「自然に映るように」映像側を編集しておく必要もあります。例えば、プロジェクター方向から見て斜め向きである面に投影する際には、その面が斜めに向いた角度によって投影した元の映像も変形します。従って、その変形度合いを考慮した映像を製作することになります。プロジェクションマッピングには正面から投影しないと、こうした画像変換の必要性が発生したり、また対象が曲面だとさらに画像変換がややこしくなります。従って、マッピングや映像製作が行いやすい「平らな面」や「四角形に近い物体」ほど、プロジェクションマッピングでは投影対象の形状として好まれる傾向があります。
マッピング作業は、映像編集ソフト上で手作業にて行うのが基本的な実施方法です。しかし、対象の形が複雑であったり、同時に使用するプロジェクターの総数が多いほど、手作業で1つずつ行っていては相当な時間がかかってしまいます。そこで、コンピュータビジョンの技術である「プロジェクターとカメラ間のステレオキャリブレーション」を利用することで、マッピングの自動化を行う場合があります。
マッピングの作業:2. ステレオキャリブレーションを用いる場合
2個のカメラ間で行うステレオキャリブレーションと同じく、プロジェクターとカメラの間でも(ステレオ)3次元幾何としての3D位置関係を自動的に計算しておくことができます。ステレオキャリブレーションを行うと、「対象物体の(カメラ画像上の) 各点に、プロジェクターから投影する映像のどの座標が対応しているか」という密なマッピング情報が計算されます。この対応情報をもとに映像を作成すれば、「3次元空間的に」かつ「(ステレオ幾何に基づいて)精度よく」、投影する映像を実世界にマッピングすることができます。
ただし、プロジェクターとカメラ間でステレオキャリブレーションを行っても、カメラ画像と投影画像の間でマッピングが成立しただけで、対象物体の3D形状は(必ずしも)求まっていないことには注意です。従って、対象形状の方が3Dモデル化、もしくは3Dスキャナーで3D点群化されていれば、その3D形状モデルをもとに、「(真に)3D的に」投影映像の全点を、対象物体の表面の対応する点へマッピングすることができます(注:どの程度実際に行われているかは私も詳しくは知りませんが、寺院や城など形状が複雑な対象にプロジェクションマッピングを行う場合には、レーザースキャナーで事前に3D点群化した形状を用いてマッピングしているそうです)。
林 昌希(はやし まさき)
慶應義塾大学大学院 理工学研究科、博士課程。
チームスポーツ映像解析プロジェクトにおいて、動画からの選手の姿勢の推定、およびその姿勢情報を用いた選手の行動認識の研究に取り組み中。(所属研究室が得意とする)コンピュータビジョン技術によって、人間の振る舞いや属性を機械学習・パターン認識により計算機で理解する「ヒューマンセンシング技術」全般に明るい。技術商社でエンジニアをしていたこともあり、海外のIT事情にも詳しい
一方、デプスセンサー等で撮影した実世界の3D点群データの活用を推進するための「Point Cloud コンソーシアム」での活動など、3Dコンピュータビジョンのビジネスでの普及にも力を入れている。また、有料メルマガ「DERiVE メルマガ 別館」では、コンピュータビジョン・機械学習の初~中級者のエンジニア向けの、他人と大きな差がつく情報やアイデアを発信中(メルマガでは、わかりやすい理論や使いどころの解説込みの、OpenCVの初心者向け連載なども展開中)。
翻訳書に「コンピュータビジョン アルゴリズムと応用 (3章前半担当)」。