JP2004212213A - 動作データ作成用コンピュータプログラムパッケージ、動作データ作成方法及び基準マーカーユニット - Google Patents
動作データ作成用コンピュータプログラムパッケージ、動作データ作成方法及び基準マーカーユニット Download PDFInfo
- Publication number
- JP2004212213A JP2004212213A JP2002382020A JP2002382020A JP2004212213A JP 2004212213 A JP2004212213 A JP 2004212213A JP 2002382020 A JP2002382020 A JP 2002382020A JP 2002382020 A JP2002382020 A JP 2002382020A JP 2004212213 A JP2004212213 A JP 2004212213A
- Authority
- JP
- Japan
- Prior art keywords
- marker
- frame
- color
- coordinates
- position coordinates
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Processing (AREA)
Abstract
【課題】動作データ作成プロジェクトの現場状況とは無関係に、カメラパラメータのキャリブレーション用の撮影環境を常に十分かつ容易に行なうことができる方法を提供する。
【解決手段】カメラパラメータキャリブレーション手段の機能を実現するための動作データ作成システムのコンピュータプログラムに、該動作データ作成に不可欠なカメラパラメータキャリブレーション用の基準マーカ201と、実体マーカ位置座標が特定可能な形でこれを固定するマーカ固定手段203とからなる基準マーカユニット200を組み合わせる。プログラムに添付された基準マーカユニット200を用いれば、いかなる状況にあっても、カメラパラメータのキャリブレーションに好都合な基準マーカを直ちに用意でき、さらにマーカ固定手段により、実体マーカ位置座標が把握できる形でこれを実体空間内に固定することができる。
【選択図】 図12
【解決手段】カメラパラメータキャリブレーション手段の機能を実現するための動作データ作成システムのコンピュータプログラムに、該動作データ作成に不可欠なカメラパラメータキャリブレーション用の基準マーカ201と、実体マーカ位置座標が特定可能な形でこれを固定するマーカ固定手段203とからなる基準マーカユニット200を組み合わせる。プログラムに添付された基準マーカユニット200を用いれば、いかなる状況にあっても、カメラパラメータのキャリブレーションに好都合な基準マーカを直ちに用意でき、さらにマーカ固定手段により、実体マーカ位置座標が把握できる形でこれを実体空間内に固定することができる。
【選択図】 図12
Description
【0001】
【発明の属する技術分野】
本発明は、被写体に形成されたカラーマーカーの動作軌跡を検出し、その検出情報に基づいて被写体の動作データを作成する動作データ作成システム(いわゆるモーションキャプチャシステム)の実現に使用する動作データ作成用コンピュータプログラムパッケージと、動作データ作成用のカメラパラメータのキャリブレーション方法、及びそれに使用するカメラパラメータキャリブレーション用の基準マーカーユニットに関する。
【0002】
【従来の技術】
【特許文献1】
特開平4−93704号公報
【特許文献2】
特開平6−50983号公報
【特許文献3】
特開平11−83440号公報
【特許文献4】
特開2000−163596号公報
【0003】
近年、アニメーションやバーチャルリアリティ、あるいはコンピュータグラフィックス(CG)を利用した映画等の分野において、合成した動画キャラクタに実際の人間の動作データを入力して、よりリアルな動画の動きを実現する技術が普及しつつある。この場合、身体中に多数のセンサを取り付けた人間が演技した動きをカメラ撮影し、その撮影された動画像上でのセンサの動きを解析して動作データを作成する、いわゆるモーションキャプチャシステムと呼ばれるシステムが使用される。このようなデータを、CG等で作成したキャラクタに適用することにより、例えば実際には存在しないモンスターと人間が格闘するようなシーンもリアルな動きで表現することができる。
【0004】
このようなモーションキャプチャシステムにおけるデータの入力には、例えば装着した磁気センサによって空間上の位置やねじれの方向を三次元計測する方法がある。しかしながら、この方法では、磁気センサを用いるのでシステムが複雑化する問題がある。
【0005】
そこで、上述のような問題点を解消すべく、個々のターゲットをカラーマーカーとして被写体に取り付け、これらのカラーマーカーをビデオカメラで撮影しながらモニタ用としてのビデオレコーダーを介して、そのマーカーの色と形状の情報信号をビデオボードに抽出し、例えば、その情報信号に基づいてマーカー位置を求めていくことで、測定対象部位の三次元的な動きを知るようにしたモーションキャプチャシステムが、特許文献1〜4に開示されている。
【0006】
ところで、モーションキャプチャシステムにおいてビデオボードに抽出されるデータは、二次元的な動画フレームのデータであり、マーカー位置情報もカメラ座標系によるフレーム上の二次元座標として求めることになる。しかし、コンピュータグラフィック等に使用する動作データは、被写体が存在する実体空間での三次元のマーカー位置であるから、カメラ座標系による二次元マーカー位置座標のままでは使用できない。そこで、実体空間の三次元座標とカメラ内のフレームの二次元座標との関係を特定するカメラパラメータを用いて、フレーム上のマーカー位置座標を実体空間の三次元座標に変換する演算を最終的には行なうことになる。
【0007】
【発明が解決しようとする課題】
ところで、カメラパラメータは、被写体の撮影を行なうカメラの特性とセッティング状態に応じて固有に定まるものであり、一般には、被写体の動画撮影を行なうのと同じ種類及びセッティング状態のカメラを用いて、実体空間内の三次元位置座標が知れた基準体の撮影を行い、その基準体の三次元位置座標と画像フレーム上の二次元位置座標とを用いて算出することになる(これをカメラパラメータのキャリブレーションという)。
【0008】
しかしながら、市販のモーションキャプチャシステム用のソフトウェアにおいては、カメラパラメータの演算自体は行なえても、基準体を用いたキャリブレーション用のデータ収集に関しては全く配慮がなされていない。また、動作データ作成プロジェクトの現場状況はケースによってまちまちであり、適当な基準体が見つからなかったり、見つかっても数が足りなかったりするなど、カメラパラメータのキャリブレーションを考慮した撮影環境が必ずしも整えられていない場合がある。
【0009】
本発明の課題は、動作データ作成プロジェクトの現場状況とは無関係に、カメラパラメータのキャリブレーション用の撮影環境を常に十分かつ容易に行なうことができるコンピュータプログラムパッケージと、動作データ作成用のカメラパラメータのキャリブレーション方法、及びそれに使用するカメラパラメータキャリブレーション用の基準マーカーユニットを提供することにある。
【0010】
【課題を解決するための手段及び作用・効果】
上記の課題を解決するために、本発明の動作データ作成用コンピュータプログラムパッケージは、複数のカラーマーカーが設けられた被写体の動作をカメラにより撮影したカラー動画の各フレームにおいて、カラーマーカーの色として予め指定された色であるマーカー指定色の画素のデータを抽出し、カメラの結像光軸に対し垂直なフレーム平面上に定められた二次元座標をフレーム二次元座標として、カラー動画の各フレームにおいて、マーカー指定色を有する画素領域であるマーカー領域を見出し、各カラーマーカーのマーカー領域の位置座標を、フレーム二次元座標にて表示したマーカー位置座標であるフレームマーカー位置座標として演算する動作データ作成システムに使用され、
コンピュータを、
被写体が存在する撮影用実体空間内に定められた三次元座標を撮影用実体空間座標として、フレーム二次元座標と該撮影用実体空間座標との関係を表すカメラパラメータを用い、フレームマーカー位置座標を、撮影用実体空間座標にて表示したマーカー位置である実体マーカー位置座標に変換し、動画のフレーム毎に各カラーマーカーの位置を実体マーカー位置座標にて特定した動作データを作成する動作データ作成手段と、
実体マーカー位置座標が特定可能な形で撮影用実体空間内に配置された複数の基準マーカーをカメラにより撮影して得られるキャリブレーション用画像の、画像フレーム上に表れる各基準マーカーのフレームマーカー位置座標と実体マーカー位置座標とを用いてカメラパラメータのキャリブレーションを行なうカメラパラメータキャリブレーション手段と、
を備えた動作データ作成システムとして機能させるコンピュータプログラムを格納した記録媒体と、
複数の基準マーカーと、撮影用実体空間の予め定められた位置にそれら基準マーカーを、記実体マーカー位置座標が特定可能な形で固定するマーカー固定手段と、を備えた基準マーカーユニットと、を有することを特徴とする。
【0011】
動作データ作成システムにおけるカメラパラメータキャリブレーションは、撮影用実体空間内に配置された複数の基準マーカーをカメラにより撮影し、その撮影により得られる二次元的なフレームマーカー位置座標と、三次元的な実体マーカー位置座標とを用いて行なう。上記本発明のコンピュータプログラムパッケージの構成においては、そのカメラパラメータキャリブレーション手段の機能を実現するための動作データ作成システムのコンピュータプログラムに、該動作データ作成に不可欠なカメラパラメータキャリブレーション用の基準マーカーと、実体マーカー位置座標が特定可能な形でこれを固定するマーカー固定手段とからなる基準マーカーユニットを組み合わせた。すなわち、プログラムに添付された基準マーカーユニットを用いれば、いかなる状況にあっても、カメラパラメータのキャリブレーションに好都合な基準マーカーを直ちに用意でき、さらにマーカー固定手段により、実体マーカー位置座標が把握できる形でこれを実体空間内に固定することができる。こうして固定した基準マーカーを、動作データ作成用のカメラにて撮影すれば、撮影により得られるキャリブレーション用画像のフレーム上に表れる各基準マーカーのフレームマーカー位置座標と、同じく実体マーカー位置座標とを用いてカメラパラメータのキャリブレーションを簡単かつ正確に行なうことができる。
【0012】
次に、本発明の動作データ作成方法は、複数のカラーマーカーが設けられた被写体の動作をカメラにより撮影したカラー動画の各フレームにおいて、カラーマーカーの色として予め指定された色であるマーカー指定色の画素のデータを抽出し、
カメラの結像光軸に対し垂直なフレーム平面上に定められた二次元座標をフレーム二次元座標として、カラー動画の各フレームにおいて、マーカー指定色を有する画素領域であるマーカー領域を見出し、各カラーマーカーのマーカー領域の位置座標を、フレーム二次元座標にて表示したマーカー位置座標であるフレームマーカー位置座標として演算し、
被写体が存在する撮影用実体空間内に定められた三次元座標を撮影用実体空間座標として、フレーム二次元座標と該撮影用実体空間座標との関係を表すカメラパラメータを用い、フレームマーカー位置座標を、撮影用実体空間座標にて表示したマーカー位置である実体マーカー位置座標に変換し、動画のフレーム毎に各カラーマーカーの位置を実体マーカー位置座標にて特定した動作データを作成する動作データ作成方法において、
マーカー固定用ベースと、複数の基準マーカーを、各々マーカー固定用ベース上の底面からの高さが定められた値となるようにマーカー固定用ベース上にて支持するマーカー支持体と、を有する基準マーカーユニットを、撮影用実体空間内に予め定められた基面上に、マーカー固定用ベースの該基面上での位置が特定可能な形で配置し、
該基準マーカーユニットに取り付けられた基準マーカーをカメラにより撮影する一方、マーカー固定用ベースの基面上での位置と、該固定用ベースの底面から各基準マーカーまでの高さ位置とにより、各基準マーカーの実体マーカー位置座標を求め、撮影により得られるキャリブレーション用画像のフレーム上に表れる各基準マーカーのフレームマーカー位置座標と実体マーカー位置座標とを用いてカメラパラメータのキャリブレーションを行なうことを特徴とする。
【0013】
また、本発明の基準マーカーユニットは、上記本発明の動作データ作成用方法に用いるものであり、マーカー固定用ベースと、複数の基準マーカーを、各々マーカー固定用ベース上の底面からの高さが定められた値となるようにマーカー固定用ベース上にて支持するマーカー支持体と、を有することを特徴とする。
【0014】
上記本発明の方法及び基準マーカーユニットの構成によると、基準マーカーユニットに使用するマーカー固定手段が、マーカー固定用ベースと、複数の基準マーカーを、各々マーカー固定用ベースの底面からの高さが定められた値となるようにマーカー固定用ベース上にて支持するマーカー支持体とからなる。このような基準マーカーユニットは、例えば屋内の場合は床面や、床面上に固定された基台の水平な頂面、屋外の場合は路面や地面、ないしはその上に置かれた基台の水平な頂面などを基面として用い、撮影用実体空間の原点を(例えば基面上に)適当に定めた後、その基面上にマーカー固定用ベースを載置する。マーカー固定用ベースの基面上の位置を、前記原点を基準として測定すれば、基準マーカーがマーカー支持体により、マーカー固定用ベースの底面からの高さが定められた値となるように設定されているので、高さ方向の基準マーカー位置は自動的に定まる。すなわち、マーカー固定用ベースの基面上の設置位置を測定するだけで、基準マーカーの実体マーカー位置座標を簡単に特定することができ、結果としてカメラパラメータのキャリブレーションを手軽に行なうことができる。
【0015】
前述の動作データ作成システムは、複数のカラーマーカーが設けられた被写体の動作を撮影するカラーカメラと、
カラーカメラからのカラー映像出力に基づく動画データの各フレームにおいて、カラーマーカーの色として予め指定された色(マーカー指定色)の画素のデータを抽出するマーカー指定色抽出手段と、
動画データの各フレームを複数のブロックに分割するフレーム分割手段と、
マーカー指定色を有する画素領域(マーカー領域)をブロック毎に見出して、該マーカー領域の重心位置を演算する重心演算手段と、
各ブロックのマーカー領域のうち同一マーカーに関係したものを、重心演算結果に基づいて識別するマーカー領域識別手段と、
該識別された同一マーカーに関係する各マーカー領域の重心演算結果に基づいて、それらマーカー領域の統合体の重心位置をフレームマーカー位置座標として演算する重心統合手段と、
統合体の重心位置をフレームマーカー位置座標として出力するフレームマーカー位置座標出力手段と、
を備えたものとして構成することができる。
【0016】
上記の構成においては、動画データの各フレームを複数のブロックに分割し、1つのマーカーの画像領域を複数ブロックにまたがる領域として捉え、ブロックのマーカー領域を個別に抽出するとともに、マーカー領域毎に重心位置を求める。それらマーカー領域が同一マーカーに由来したものであれば、画像上に現われるマーカー領域は、例えば隣接するブロックなど必ず近接して現われ、別のマーカーに由来したものであれば一定以上の距離を隔てて現われる。従って、各ブロックのマーカー領域は、同一マーカーに関係したものであるか否かを、マーカー領域毎の重心演算結果に基づいて識別することができる。識別された各マーカー領域の重心演算結果を用いれば、ブロック分割しないマーカー画像の重心位置(つまり、マーカー領域の統合体の重心位置)は簡単に演算できる。
【0017】
従来の動作データ作成システム(モーションキャプチャ)においては、同一色のマーカーを被写体に複数取り付けると、色抽出によりマーカーを識別しようとした場合、それら複数のマーカーはどんなに遠くに離れていても同じマーカーに属するものとみなされるから、マーカーの個々の重心を合成した演算結果しか得られなかった。しかし、上記の方式によると、動画データのフレームがブロックに分割されることで、離れたマーカー領域と近接したマーカー領域とを、それらが現われるブロック位置を媒介として容易に区別でき、同一色の別のマーカーであっても分離して識別できる。つまり、同じ色のカラーマーカーを複数被写体に取り付けることが可能となり、カラーマーカーの設定色を少数に留めつつ、被写体に取付け可能なマーカー数を従来よりも大幅に増加させることができる。これにより、動作トレースの精度を格段に向上させることが可能となる。例えば、従来は異色識別を確実に行なうために、使用可能なマーカー色つまりマーカー個数は、16個程度が限度であったが、本発明では、同じ色のマーカーを6個使用すれば、8色程度の識別で6×8=48個ものマーカーが使用可能となる。
【0018】
【発明の実施の形態】
図1は、本発明の動作データ作成システム1の電気的構成を示す全体ブロック図である。動作データ作成システム1は、大きく分けて画像入力部4、画像抽出部5、抽出画像データ出力制御部6及びマーカー画素計数部7の4つの部分を含むハードウェアシーケンス部2と、I/Fボード9を介してこれらが接続されるアニメーションやCG動画等を作成するためのホストコンピュータ8とを有する。また、ハードウェアシーケンス部2には、画素転送クロックパルスを与えるクロックパルス発生回路が組み込まれた、画像入出力部4における各種制御を司るシステムコントローラ3が設けられている。ホストコンピュータ8は、CPU、ROM、RAMを有する本体11と、モニタ10、記憶装置12(例えばハードディスクドライブ)、及び記録媒体読取装置としてのCD−ROMドライブ249を備えている。記憶装置12には、動作データ作成システムの機能を実現するコンピュータプログラム(動作データ作成プログラム)251がインストールされている。また、記憶装置12には、ハードウェアシーケンス部2からの重心演算用データをもとに作成された動作データファイル252、及び、その動作データファイル252の作成に使用するカメラパラータファイル253が記憶されている。また、コンピュータプログラム251はCD−ROM250に記録された形で供給され、CD−ROMドライブ249により読み取られて記憶装置12にインストールされる。
【0019】
動作データ作成システム1は、モーションキャプチャとして動作データを生成するために、人間や動物などの被写体にカラーマーカー(以下、単にマーカーともいう)を取り付けてこれを撮影する。カラーマーカーとしては、例えば全体が単色に着色されたものを使用し、取り込むべき動作に関与する必要部位にピン止めあるいは面ファスナ等により適宜取り付ける。このように複数のカラーマーカーが設けられた被写体の動作を、図2のカラーカメラ15により撮影する。カラーカメラ15は、被写体の動作により、死角に入って撮影不能となるカラーマーカーが生じないように、撮影アングルの異なるものを複数台(例えば2台)設けており、適宜切り替えて撮影を行なう。
【0020】
そして、その基本機能を、例えば以下のような実現手段により構成するものである。
・マーカー指定色抽出手段:複数のカラーマーカーが設けられた被写体の動作を、カラーカメラ15により撮影したカラー動画の各フレームにおいて、カラーマーカーの色として予め指定された色であるマーカー指定色の画素のデータを抽出する。
・フレームマーカー位置座標演算手段:カメラ15の結像光軸(図15のZ軸)に対し垂直なフレーム平面(図15のX−Y平面)上に定められた二次元座標をフレーム二次元座標として、カラー動画の各フレームにおいて、マーカー指定色を有する画素領域であるマーカー領域を見出し、各カラーマーカーのマーカー領域の位置座標を、フレーム二次元座標にて表示したマーカー位置座標であるフレームマーカー位置座標として演算する。
・動作データ作成手段:被写体が存在する撮影用実体空間内に定められた三次元座標を撮影用実体空間座標として、フレーム二次元座標と該撮影用実体空間座標との関係を表すカメラパラメータを用い、フレームマーカー位置座標を、撮影用実体空間座標にて表示したマーカー位置である実体マーカー位置座標に変換し、動画のフレーム毎に各カラーマーカーの位置を実体マーカー位置座標にて特定した動作データを作成する:本実施形態では、以下の各手段を含んでいる。
(フレーム分割手段):動画データの各フレームを、図7に示すように複数のブロックに分割する。
(重心演算手段):ブロック毎にマーカー指定色を有する画素領域(以下、マーカー領域という)を見出して、該マーカー領域の重心位置を演算する。
・マーカー領域識別手段:各ブロックのマーカー領域のうち同一マーカーに関係したものを識別する。
(重心統合手段):該識別された同一マーカーに関係する各マーカー領域の重心演算結果に基づいて、それらマーカー領域の統合体の重心位置をフレームマーカー位置座標として演算する。
(マーカー位置出力手段):統合体の重心位置を、被写体の動作データであるフレームマーカー位置座標として出力する。
・カメラパラメータキャリブレーション手段:実体マーカー位置座標が特定可能な形で撮影用実体空間内に配置された複数の基準マーカーをカメラ15により撮影し、その撮影により得られるキャリブレーション用画像のフレーム上に表れる各基準マーカーのフレームマーカー位置座標と実体マーカー位置座標とを用いてカメラパラメータのキャリブレーションを行なう。
【0021】
以上の個々の機能実現手段が、どのようなハードウェアあるいはソフトウェア構成により実現されるかの一例を、以下に詳細に説明する。
【0022】
まず、被写体に着用させるマーカーであるが、例えば2以上のマーカーの取付け位置が十分に離れており、かつ、動作中もそれらが過度に近接する惧れがない場合は、それらのマーカーを互いに同じマーカー指定色に設定できる。例えば人体の全体動作を取得する場合、頭と胴体、腕と足などの位置関係にあるマーカー同士である。他方、上腕と下碗、両足、片手の複数の指同士など、過剰な近接が生じやすくなると思われる部位同士は、異なる色のマーカーを装着することが望ましい(特に、明度や色相においてなるべく離れた色を用いると、照明や反射等の影響も受けにくくできる)。
【0023】
次に、マーカー指定色抽出手段の中核をなすのは、図1の画像入力部4及び画像抽出部5である。図2は、その詳細を示すブロック図である。この部分は、カラーカメラ15からの映像出力に基づくデジタルカラー映像信号DSを、マーカー指定色を有したマーカー領域の信号と、マーカー指定色以外を有する非マーカー領域の信号とにデコードし、これを画素信号MKDとして出力する画素信号出力回路として構成されている。このようにすることで、出力される全ての画素信MKDは、個々のマーカー指定色の画素か、またはマーカー指定色以外の画素のいずれかに属するものとなり、以下の画素分離に係るデジタル処理を格段に容易に進めることができる。カラーカメラ15からの映像出力は、例えばカラーCCDセンサからのアナログRGB信号であるが、本実施形態では、これを個別のA/D変換器16,17,18によりデジタルRGB信号DSに変換しており、これらカラーカメラ15とA/D変換器16,17,18とが画像入力部4を構成する。
【0024】
また、画像抽出部5(画素信号出力回路)は、デジタルカラー映像信号のデコード処理を行なうルックアップテーブル(以下、LUTと略記する)19,20を有する。ルックアップテーブルの使用により、入力されるデジタルカラー映像信号DSの上記デコード処理を、ハードウェアロジックにより迅速に実行できる。本実施形態において、LUT19,20は、RGB信号(本実施形態では各8ビット)として入力されるデジタルカラー映像信号DSを、入力される当該デジタルカラー映像信号DSよりもビット数の減じられた色信号MKD(本実施形態では4ビット)として出力するものとして構成されている。非マーカー領域により1色が占有されることを考慮して、24−1=15通りのマーカー色の採用が可能である。
【0025】
RGB信号は3次元データであるが、図2の構成では、二次元LUTの組合せにより回路全体を安価に構成するため、前段側のLUT19により2色(16ビット)の信号成分(ここではRとBであるが、これに限られるものではない)をデコード(8ビット)する第一のデコード処理を経た後、そのデコード後のR−B信号をさらに後段側のLUT20により、残余の1色(ここではG)と組合せてデコードする第二のデコード処理(4ビット)を行なうようにしている。
【0026】
なお、RGB信号に代えて輝度信号Yと、RGBのいずれか2色とその輝度Yとの色差信号を用いたり、あるいはその色差信号をさらに色相及び彩度の信号に変換した後、上記と同様のデコード処理を行なってもよい。これは、特開平11−83440号及び特開2000−163596号の各公報に開示されている方式であり、近接した色彩のマーカーの識別に問題が生ずる場合に、照明むらや反射などによるかく乱の影響を軽減する上で効果を発揮する。しかしながら、色差信号を生成するために余分な回路を付加しなければならないデメリットもある。本実施形態の構成では、色による識別が本質的に不可能な同一色マーカー同士であっても、前記ブロック分割方式を採用することで、動画のフレーム上にて問題なく識別できるから、安価なRGBデコード方式でも十分に目的を達成できる利点がある。
【0027】
図2の各LUT回路19又は20は同一のハードウェア構成を有し、これをより詳細に示したものが図3である。また、図4は、そのLUT回路のメモリセル部の一例をごく概念的に示すものであり、16ビットの入力データをデータA及びデータBとして、それらの内容に対応したアドレス線の選択により、対応するセルの登録データDR11,DR12‥‥等のいずれかが読み出される二次元テーブルとなっている。図3でデータA及びデータBの各入力信号は、LUT回路19ではRとB、LUT回路20ではR−BとGに相当するもので、それがOD信号となって出力される。LUTメモリ160には、LUTメモリコントローラ159(以下、LMCNと記す:この実施例では、図1のシステムコントローラ3に組み込まれている)が付属し、また、そのデータの入力側に、D型フリップフロップ回路161,162が、また、出力側にD型フリップフロップ回路164が設けられている(以下、D−FFと略記する)。これらのD−FFは、いずれもアウトプットコントロール端子(インヒビット入力端子)OCを有するものが使用されている。
【0028】
ホストコンピュータ8からのデータバスは、双方向バストランシーババッファ166を介してLUTメモリ160に接続される。また、ホストコンピュータ8からのアドレスバスは、バスバッファ168,169を介してLUTメモリ160のデータA用のアドレスとデータB用のアドレスとにそれぞれつながっている。
【0029】
LUT回路に初期設定を行なう場合、ホストコンピュータ8はLUTメモリ制御信号を用いてLUTメモリコントローラ159にバス要求命令を送る。これに従い、LUTメモリコントローラ159は、D−FF161,162,164のアウトプットコントロール信号(OC)を制御し、D−FF161,162,164の出力を非能動状態とするとともに、双方向バストランシーババッファ166及びバスバッファ168,169の出力イネーブル信号Gを制御し、これらの出力を能動状態にする。これにより、ホストコンピュータ8がLUTメモリ160に対し読み書きができる状態になり、初期設定が行われる。
【0030】
LUTメモリ160へのデータ入力終了後、ホストコンピュータ8は前記LUTメモリ制御信号を用いてLUTメモリコントローラ159にバス解放命令(演算実行命令)を送る。これにより、LUTメモリコントローラ159は双方向バストランシーババッファ166及びバスバッファ168,169の出力イネーブル信号Gを制御し、D−FF161,162,164のアウトプットコントロール信号(OC)を制御し、D−FF161,162,164の出力を能動状態にする。その結果、LUTメモリ160への入力データAとデータBにより字引的に求められた演算結果がODに出力されるようになる。ここで、D−FF161,162その他は処理を行なう画素の転送クロックパルスを用いてこれに同期して動作させることで、高速演算処理を実現している。なお、各D−FFにおけるCKはクロックパルス入力の端子であり、双方向バストランシーババッファ166のDIRはバス方向制御信号入力の端子である。そして、前述の通りクロックパルスは、システムコントローラ3(図2)に組み込まれたパルス発生回路が発する画素転送クロックパルスが使用される。
【0031】
図1に戻り、フレーム分割手段は、本実施形態では抽出画像データ出力制御部6によりハードウェア的に実現されている。これは、動作データの作成処理を、リアルタイム処理が可能となるように高速化することが狙いである。図5は、その詳細を示すものである。この回路には、画素信号を指定されたアドレスに画素データとして格納するフレームメモリ22,23が設けられている。フレームメモリが2系統設けられているのは、片側のメモリに画素データMKDの書き込みを行なっている間に、他方のメモリからすでに書き込まれている前画面の画素データを読み出して、画像出力MKとして出力することにより、絶え間なく処理が継続できるようにするためである。D−FF44〜47は、この書き込みと読み出しの制御を行なうために設けられたものであり、全てインヒビット入力端子を有している。これらは、インヒビット入力端子への出力イネーブル信号OEの入力(システムコントローラ3により制御される)により、書き込み側のD−FF44,47と読み出し側のD−FF45,46は、一方のメモリの書き込み側D−FF出力が能動化されているとき、常に他方のメモリの読み出し側D−FF出力が能動化されるよう、それぞれ交互に切り替えられる。D−FF44〜47はいずれもクロック端子を省略して描いており、画素クロックを受ける毎に、メモリへの書き込みもしくはメモリからの読み出しのために画素データを4ビット単位で出力する。
【0032】
次に、抽出画像データ出力制御部6には、画素データのフレームメモリ22,23への格納に際して、該画素データを書き込むべき画素アドレスを生成してフレームメモリ22,23に入力する書き込み側画素アドレス生成回路30が設けられている。フレームメモリ22,23は、それぞれ1フレーム全ブロック(つまり全画面)の画素が格納可能とされており、書き込み側画素アドレス生成回路30はX−Y走査により画素の格納先となるアドレスを順次フレームメモリ22又は23に入力する。入力先となるメモリ22,23の切替えは、各メモリ22,23に対応するバッファ40,42のいずれかの出力が、システムコントローラ3からの出力イネーブル信号OEを受けて能動化されることにより行なわれる。
【0033】
他方、抽出画像データ出力制御部6には、フレームメモリ22,23に記憶された画素データの読み出しに際して、該画素データを読み出すべき画素アドレスを生成してフレームメモリ22,23に入力するための、読み出し側画素アドレス生成回路35が設けられている。読み出し側画素アドレス生成回路35は、画素データを読み出すべきブロックのアドレス(ブロックアドレス)を生成してフレームメモリ22,23に入力するブロックアドレス生成回路38,39と、同じく該ブロックアドレスが指定したブロック内にて読み出すべき画素データの画素アドレスを生成するブロック内画素アドレス生成回路36,37とを含む。これにより、フレームメモリ22,23内の領域のうち、ブロックアドレスが指定するブロックの画素を選択的に読み出し、1ブロック分の画素のみを切り出す形で画像出力MKとして出力することが可能となる。
【0034】
書き込み側画素アドレス生成回路30、読み出し側画素アドレス生成回路35に含まれるブロックアドレス生成回路38,39及びブロック内画素アドレス生成回路36,37は、それぞれ画面をX−Y走査するためのXカウンタ31,36,38及びYカウンタ32,37,39を含むX−Yカウンタ回路として構成されている。このうち、書き込み側画素アドレス生成回路30は、飛越し走査にて出力されてくるカメラ15(図2)からの映像信号を合成して、順次走査信号に走査変換するために、Xカウンタ31とYカウンタ32とが互いに独立したカウンタとして構成されている。Yカウンタ32は、偶数走査時と奇数走査時において互いに異なる画素アドレスを生成し、フレームメモリ22,23に入力する。本実施形態では、Xカウンタ31が1ライン分640画素を入力するために10ビット出力とされ、Yカウンタは480ライン分を入力するために9ビット出力とされている。
【0035】
他方、読み出し側画素アドレス生成回路35は、合成後の画面からの画素読み出しとなるので、ブロック内画素アドレス生成回路36,37をなすXカウンタ36とYカウンタ37、及びブロックアドレス生成回路38,39をなすXカウンタ38とYカウンタ39は、いずれも縦続接続されるとともに、YカウンタがXカウンタからの桁上がり信号を受けてカウントアップするものとなっている。また、ブロックアドレス生成回路38,39はブロック内画素アドレス生成回路36,37の後段側に縦続接続されてなり、当該ブロック内画素アドレス生成回路36,37の桁上がり信号を受けてカウントアップするようになっている。
【0036】
これにより、以下のような出力処理が、単一のクロックパルス列によるハードウェアシーケンスによりきわめて迅速に行なわれる。すなわち、各ブロックではX方向(例えば左から右)の画素データが順次出力され、端まで行くとY方向に1画素分(例えば下側へ)移動して、再びX方向(例えば左から右)の画素データが順次出力される。そして、1つのブロックで画素データ出力が終了すると、次のブロックに移動して同じ処理が繰り返される。このブロックの移動もX方向に順次的になされ、端まで行くとY方向に1ブロック分移動して再びX方向へ移動する動作の繰り返しとされる。本実施形態では、図7に示すように、1画面がX方向に40ブロック、Y方向に30ブロックの計1200ブロックに分割されるようになっている。また、1ブロックの画素数は、X方向及びY方向のいずれも16画素である。従って、ブロック内画素アドレス生成回路のXカウンタ36及びYカウンタ37の出力はいずれも4ビット、ブロックアドレス生成回路のXカウンタ38の出力は6ビット、同じくYカウンタ39の出力は5ビットである。なお、データの読み出し先となるフレームメモリ22,23の切替えは、各カウンタ36〜39のアドレス入力を切り替えることにより行なわれ、その切替えは、各メモリ22,23に対応するバッファ41,43のいずれかの出力を、システムコントローラ3からの出力イネーブル信号OEを受けて能動化することにより行なわれる。
【0037】
図1に戻り、マーカー画素計数部7は重心演算手段の要部をなすものである。図6にその回路の詳細を示す。まず、該回路には、マーカー領域に含まれる画素のX方向座標和SX、Y方向座標和SY、及び画素総数和NDを、それぞれブロック毎にブロックアドレス及びマーカー指定色アドレスと対応付けて記憶する個別のデータメモリ70,71,72が設けられている。各データメモリ70,71,72には、ブロックアドレス及びマーカー指定色アドレスを入力するアドレス入力部が設けられている。ブロックアドレスは、前段の抽出画像データ出力制御部6のブロックアドレス生成回路38,39のXカウンタ出力XBと、同じくYカウンタ出力YBとが流用されている。また、マーカー指定色アドレスは、読み出される画素データの画像出力MKがマーカー色そのものを表すので、これを流用してアドレス設定を行なうとともに、画像出力MKをそのままアドレス信号として用いている。
【0038】
また、各データメモリ70,71,72に対応する形で加算器55,56,57が設けられている。これら加算器55,56,57は、個々のデータメモリ70,71,72に格納されているブロック及びマーカー指定色毎のX方向座標和SX、Y方向座標和SY、又は画素総数和NDの出力に、新たに入力されたX方向座標値、Y方向座標値、又は画素計数信号を加算して、その加算値を各データメモリ70,71,72に上書き入力するものである。
【0039】
データメモリ70は、指定された色のマーカー領域をなす画素のX方向座標和SXを記憶するためのもので、画像出力MKによりマーカー指定色を識別し、指定色毎に異なるSXの記憶エリアが確保されている(アドレスA11〜A14により指定される)。また、記憶されるSXがどのブロックに係るものかが、ブロックアドレスXB(A0〜A5)及びYB(A6〜A10)により特定され、ブロック別にSXが記憶される。加算器55は、XB,YB及びMKにより特定されるブロック及び指定色のマーカー領域の、現在のSXの値をメモリ70から読み出して、これが第一入力端子Aに入力される一方、第二入力端子Bには次に加算すべき画素のX座標値が入力され、SXに加算する。X座標値は、図5のブロック内画素アドレス生成回路のXカウンタ36の出力値(つまり、対応する画素のX方向アドレスである)を流用している。
【0040】
なお、加算器55とメモリ70との間に設けられたD−FF61,62は、メモリ70からのSXの読み出しと書き換えとの処理を制御するためのものであり、D−FF62はインヒビット入力端子を有したものが使用される。そして、読み出しの際にはD−FF62の出力が非能動化され、メモリ70内のSXが上書き更新されないようにする。他方、書き換えの際には、D−FF62の出力を能動化し、加算器55の出力をメモリ70に入力する。D−FF61は、システムコントローラ70からのクロックパルスを受ける毎に、メモリ70からその時点でのSXの値が入力されてこれをラッチ保持し、加算器55に向けて出力する。こうして、指定されたブロック内における指定されたマーカー色の全ての画素について、SXへの新たな画素のX座標の加算演算が、メモリ70内のSXの値を更新しながら繰り返し行なわれる。1つのブロックの加算演算が終了したら、ブロックアドレスXB,YBの切替えにより、次のブロックに切り替えて同じ処理を繰り返す。なお、画素の読み出しは、1ブロック内にてX−Y走査により全ての画素について順次的に行なわれるが、個々の画素に対応してMKが切り替わりながら入力されるので、各画素のXアドレスは、対応するマーカー色のエリアに分別されながら加算されることになる。つまり、画素を走査方向に順次転送しながら加算処理を並行して行なうことができるので、リアルタイム処理を行なう上で好都合である。他方、リアルタイム処理を行なわないのであれば、個々のブロック内にて、指定されたマーカー色のみを検索/加算する処理を、全てのマーカー色について繰り返す方式も採用可能である。
【0041】
また、データメモリ71は、指定された色のマーカー領域をなす画素のY方向座標和YXを記憶するためのもので、データメモリ70と同様、加算器56とD−FF63,64が随伴している。その動作は、加算値がY座標(図5のブロック内画素アドレス生成回路のYカウンタ37の出力値を流用する)となる以外は、データメモリ71側と動作は同じである。従って、詳細な説明は省略する。さらに、データメモリ72は、指定された色のマーカー領域の総画素数NDを記憶するものであり、データメモリ70と同様、加算器57とD−FF65,66が随伴している。これは、画素の座標と関係なく、その個数を計数したいので、加算値は+1に固定されている。
【0042】
上記のようにハードウェア的に算出されたSX、SY、NDを用いることにより、マーカー指定色別に各ブロックのマーカー領域の重心位置座標を(SX/ND,SY/ND)として算出できることは明らかである。この重心算出処理も、除算器を用いたハードウェア処理により行なうことができるが、その演算自体は非常に簡単なので、本実施形態ではSX、SY、NDの組をホストコンピュータ8に転送し、そこでマーカー指定色各ブロックのマーカー領域の重心位置座標を演算するようにしている。図8のフローチャートはその処理の流れを示すものであり、S1で着目しているブロックにつきマーカー指定色(MK)を出力し、S2〜S4で、そのカラーマーカーのSX、SY及びNDの値をリードする。そして、これを用いることにより、指定されたマーカー指定色及びブロックのマーカー領域の重心座標Gを演算し、マーカー指定色MK及びブロックアドレス(XB,YB)と対応付けた形で、図1のCGデータ記憶部12に記憶する。
【0043】
図7は、1フレームの画像例を示している。フレームはX方向に40個、Y方向に30個の計1200個のブロックに分割されている。各ブロックを、X方向のブロック番号をi、Y方向のブロック番号をjとして、二次元配列Bijにより表す。このフレーム中には第一色の3つのマーカーM1−1、M1−2、M1−3と、第二色のマーカーM2−1の計4つの画像領域が現われている。フレームがブロック分割されていることで、個々のマーカーの画像領域は特別な場合を除き、複数ブロックにまたがって現われる。そして、上記の説明からも明らかなように、本実施形態のシステム1では、ブロック別にマーカー領域を個別に抽出し、マーカー領域毎に重心位置を求める。図9に示すように、マーカー領域A1〜A4が同一マーカーに由来したものであれば、画像上に現われるマーカー領域A1〜A4は、互いに隣接するブロックB1〜B4に近接した形で現われる。他方、図7のマーカーM1−1、M1−2、M1−3のように、別のマーカーに由来したマーカー領域は、一定以上の距離を隔てて現われる。従って、各ブロックのマーカー領域は、同一マーカーに関係したものであるか否かを、マーカー領域毎の重心演算結果に基づいて識別することができる。
【0044】
本実施形態では、マーカー領域識別手段を以下のような機能を有するものとして、ホストコンピュータ8上にてソフトウェア的に実現している。すなわち、図9に示すように、同一マーカー指定色に関してマーカー領域が存在する互いに隣接したブロック(隣接マーカーブロック)B1,B2を見出し、それら隣接マーカーブロックの一方B1について、そのブロックB1のマーカー領域A1の画素総数和NDに基づき、当該マーカー領域A1の寸法を反映した寸法パラメータr1を算出し、該マーカー領域A1の重心位置G1と算出された寸法パラメータr1とに基づいて、他方のブロックB2のマーカー領域A2が同一マーカーに基づくものであるか否かを判定する。重心位置G1と寸法パラメータr1とを用いた単純な比較処理により、同一マーカーに基づくマーカー領域であるか否かを判定することができる。
【0045】
具体的には、寸法パラメータr1が表すマーカー領域A1の寸法と、重心位置G1から他方のブロックB2との境界Σまでの距離dnとの大小関係に基づいて判定を行なうことができる。dnとr1とは直接比較を行なってもよいし、r1に一定の重み計数を乗じて比較することもできる。しかし、寸法パラメータは、図9にC1〜C4にて示されるような、マーカー領域と同一面積を有する円(以下、等価円という:正方形あるいはそれ以上の辺数を有する正多角形を用いてもよい)の半径r1を採用したとき、dnとr1とを直接比較により同一マーカーに基づくマーカー領域であるか否かを判定でき、判定制度も高めることができる。具体的には、図9(a)に示すように、dn≦r1のときマーカー領域A1,A2は同一マーカーに由来するものとして判定し、(b)に示すように、dn>r1であれば異なるマーカーに由来するものとして判定する。
【0046】
図10は、マーカー領域毎の重心演算結果に基づいて個々のマーカーの重心位置、すなわちフレームマーカー位置座標を求めるソフトウェアの処理の流れを一例として示すものである。各ブロックを前記した二次元配列Bijにて表す。まず。S101では、マーカー指定色MKを選択し、S102、S103では最初のブロック(図7の左上端)を指定するため、i=j=1とする。S104では、指定されたブロックBij(現在はB11になっている)にマーカー領域があるかどうかを確認する(NDがゼロになっていないものを見出せばよい)。S105では、S105’に示すように、そのブロックBijの周囲に隣接する8ブロックを、処理の便宜を図るためにB1〜B8の一次元配列に変換する(画面外にはみ出すブロックもi,jの定義範囲を拡張して、仮想ブロックとして取扱い可能にしておく。ただし、その仮想ブロックは、常にNDがゼロである)。
【0047】
S106では、それら8ブロックB1〜B2のうち、指定されたマーカー色のマーカー領域の存在するものを抽出する。また、S107において、それらマーカー領域の存在するブロックにつき、図9に示した方法に従い、画素数NDから等価円半径rを求め、また、隣接ブロックにマーカー領域が存在していれば、マーカー領域の重心Gから該隣接ブロックとの境界までの距離dnを算出する。そして、S108にて、r≧dnとなっている隣接ブロックを抽出し、それら隣接ブロックに統合フラグを付与する。
【0048】
そして、S109では、統合フラグの確認により、抽出されたブロックのマーカー領域の重心Gを1つのマーカーの重心として統合する演算を行なう。抽出されたブロックがk個であり、各マーカー領域の重心座標G及び総画素数NDを(X1,Y1);ND1,(X2,Y2);ND2,‥‥,(Xk,Yk);NDkとしたとき、統合後の重心位置(つまり統合体の重心位置)GsのX座標Xs及びY座標Ysは、それぞれ
Xs=(ND1・X1+‥+NDk・Xk)/(ND1+‥NDk)
Ys=(ND1・Y1+‥+NDk・Yk)/(ND1+‥NDk)
により求めることができる。なお、S104にてマーカー領域のないブロックであった場合は、上記S105〜S109の処理をスキップする。
【0049】
S110以下は、各ブロックについて上記の処理を繰り返す処理を記述したものであり、S110ではiを1加算することにより、X方向にブロックを1だけ移動させる。また、S111でその加算後のiがX方向のブロック数imax(本実施形態では40)を超えたときは、S113に進み、jを1加算してY方向に1ブロック分移動し、さらにi=1としてX方向の先頭のブロックに戻る。S114で加算後のjがY方向のブロック数jmax(本実施形態では30)を超えたときは、処理終了となる。
【0050】
移動先のブロックでは、S112において統合フラグの有無を確認することで、すでに重心統合済みのブロックであるか否かを確認する。統合済みならばS110に戻って次のブロックに移動する。そして、重心統合済みでないブロックが見出された時点でS104に戻り、そのブロックにつき以降の処理を繰り返す。
【0051】
こうして演算されたマーカー(統合体)の重心位置は、フレームマーカー位置座標として、フレーム毎に動作データファイル252(図1)に記憶される。図15に示すように、カメラ座標系(X,Y,Z)において、カメラの結像光軸(Z軸)に対し垂直なフレーム平面(X−Y平面)上に定められた二次元座標をフレーム二次元座標とする(原点はZ軸の位置)。フレームマーカー位置座標は、フレーム二次元座標にて表示したマーカー位置座標である。他方、コンピュータグラフィック等に使用する動作データは、被写体が存在する撮影用実体空間内に定められた三次元座標を撮影用実体空間座標(x,y,z)として、該撮影用実体空間座標にて表示したマーカー位置である実体マーカー位置座標である。各フレームマーカー位置座標は、フレーム二次元座標と該撮影用実体空間座標との関係を表すカメラパラメータを用いて実体マーカー位置座標に変換され、動画のフレーム毎に各カラーマーカーの位置を実体マーカー位置座標にて特定した動作データファイルとされる。
【0052】
本実施形態においては、前述の動作データ作成プログラム251にカメラパラメータキャリブレーションのプログラムが組み込まれ、図1のCD−ROM250に格納される。該CD−ROM250は、図11に示す基準マーカーユニット200が組み合わされたコンピュータプログラムパッケージの形で供給される。
【0053】
図12に示すように、基準マーカーユニット200は、マーカー固定用ベース202と、複数の基準マーカー201を、各々マーカー固定用ベース上の底面からの高さが定められた値となるようにマーカー固定用ベース202上にて支持するマーカー支持体203とを有する。該基準マーカーユニット200は、例えば屋内の場合は床面や、床面上に固定された基台の水平な頂面、屋外の場合は路面や地面、ないしはその上に置かれた基台の水平な頂面などを基面SPとして用い、その基面SP上にマーカー固定用ベース202を載置する。他方、撮影用実体空間の原点Oを基面SP上に適宜定める。マーカー固定用ベース202の基面上の位置F(例えば基準マーカー201の直下位置)を、原点Oを基準として測定すれば、基準マーカー201がマーカー支持体203により、マーカー固定用ベース202の底面202bからの高さが、予め定められた値(d1、d1+d2、d1+d2+d3)となるように設定されているので、高さ方向(z方向)の各基準マーカー201の位置は自動的に定まる。従って、マーカー固定用ベース202の基面SP上の設置位置Fを測定するだけで、基準マーカー201の実体マーカー位置座標が簡単に特定できる。
【0054】
図11に示すように、基準マーカーユニット200に取り付けられた基準マーカー201は、被写体を撮影する際に使用するのと同じカメラ15により、同じアングルセッティングにより撮影される。各基準マーカー201の実体マーカー位置座標は、上記のように、マーカー固定用ベース202の基面SP上での位置と、該固定用ベース202の底面202bから各基準マーカー201までの高さ位置とにより特定でき、カメラ15により撮影して得られるキャリブレーション用画像のフレーム上に表れる各基準マーカー201のフレームマーカー位置座標と、前記実体マーカー位置座標とを用いて、前述の動作データ作成プログラム251内のキャリブレーションプログラムの実行により、カメラパラメータのキャリブレーションが行なわれる。
【0055】
図15に示すように、被写体に取り付けられた複数のマーカー(各マーカーの重心位置にて実体マーカー位置座標p(x,y,z)を表す)の、実体空間内での三次元的配置状態をカメラにより撮影すると、カメラ座標系ではその画像は、カメラの結像光軸に対し垂直なフレーム平面上への二次元投影となって表れる。図15においては、カメラ光軸をカメラ座標系のZ軸に合わせ、フレーム平面を、カメラ座標系のX−Y平面(Z=0)に一致させている。この場合、各マーカー位置pの配置の、フレーム平面上への二次元投影は、元の実体空間内でのマーカーの三次元的配置を斜め方向から透視変換したものに相当し、三次元アフィン変換理論により、カメラパラメータは、下記(1)〜(3)式により与えられる。
【0056】
【数1】
【0057】
(Xc,Yc)はZ=0、つまりフレーム二次元座標に投影されたマーカー位置座標、すなわちフレームマーカー位置座標Pであり、Hcはカメラ焦点距離fと実体マーカー位置座標pの高さ方向座標値zとを用いて(2)式及び(3)式により与えられる。カメラパラメータは4行3列の行列であり、(1)式の左辺のフレームマーカー位置座標Pに関係した行ベクトルを<P>、同じく実体マーカー位置座標pに関係した右辺の行ベクトルを<p>、カメラパラメータ行列を[C]にて表せば、(1)式は(1)’式のごとく簡単に表現される。また、(1)’式の両辺に右側から[C]の逆行列[C]−1を乗ずると(1)”
式が得られる。すなわち、カメラパラメータ行列[C]が既知であり、フレームマーカー位置座標Pが動画フレームの解析結果から知れている場合は、(1)”から<p>を計算することができ、その最初の三項(x,y,z)を読み取れば、実体マーカー位置座標pを求めることができる。こうして、動画のフレーム毎に各カラーマーカーの位置を実体マーカー位置座標にて特定した動作データを作成することができる。
【0058】
次に(1)式を、カメラパラメータ行列[C]が未知である状態を前提に再考する。この場合、カラーマーカーは、(動作する)被写体に取り付けたマーカーでなく、図11に示すように、実体マーカー位置座標pが既知である基準マーカー201であり、カメラ15により撮影された画像フレーム上にて、各フレームマーカー位置座標P(被写体に取り付けるマーカーと全く同様に、その重心位置にて定義する)も特定できているものとする。(4)式に示すように、n個の複数の基準マーカー(実体マーカー位置座標:p1,p2,‥,pn)が実体空間上に配置され、(5)式に示すように、画像フレーム上にその投影点(フレームマーカー位置座標:P1,P2,‥,Pn)が表れているとすれば、そのうちの1個の基準マーカーについて知れている実体マーカー位置座標pi:(xi,yi,zi)と、フレームマーカー位置座標Pi:(Xci,Yci)とを(1)式に代入することにより、カメラパラメータ行列[C]の未知成分に関して、(6)式に示す2つの方程式が得られる。
【0059】
【数2】
【0060】
【数3】
【0061】
(1)式に示すように、カメラパラメータ行列[C]は12個の成分を含んでいるから、基準マーカー1個につき2つの方程式が得られるということは、同一平面上に存在しない6個の基準マーカーの実体マーカー位置座標pと、フレームマーカー位置座標Pとが与えられることにより、6×2=12個の方程式が得られる。従って、これらを連立させて解くことにより、カメラパラメータ行列[C]の12個の成分を一義的に定めることができる。この解は、カメラパラメータ行列[C]が定義される12次元空間内にて、各方程式が規定する12個の超平面が交わってできる交点座標により与えられる。
【0062】
しかしながら、基準マーカー201の実体マーカー位置座標pとフレームマーカー位置座標Pとは、前者は実体空間内での測定により、後者は画像フレーム上での測定によりそれぞれ決定されるものであるから、求まるカメラパラメータ行列[C]の成分もその測定誤差の影響を受ける。上記基準マーカー201の数が、数学的に最小限の個数である6個に留められていると、その誤差の影響も当然に大きくなる。従って、カメラパラメータの決定制度を向上させるには、6個を超える基準マーカー201を用いる合理的な方法を考える必要がある。6個を超えるn個の基準マーカー201を全て用いて(6)式による方程式を作ると、方程式数(2n個)が未知数である[C]の成分数(12個)を上回るから、カメラパラメータ行列[C]の解を数学的に厳密に決定することは不可能であるが、最小二乗法を用いた統計的な解の決定は依然可能である。具体的には、前述の12次元空間内において、2n個の方程式が与える各超平面からの距離が最小化される点を最小二乗法により求め、該点の12次元座標値をカメラパラメータ行列[C]の成分として求めるのである。
【0063】
(1)式においては、カメラパラメータ行列[C]の成分のうちC34と、係数Hcとが、いずれも実体マーカー位置座標系とフレームマーカー位置座標系との間の拡大・縮小を表すことが三次元アフィン変換理論によりわかっているので、その一方を定数として固定しても数学的には同値である。そこで、C34を「1」とすれば、n個の基準マーカーが与える前述の2n個の方程式は未知数が1個減り、行列を用いて(7)のように表すことができる。
【0064】
【数4】
【0065】
上記(7)式に表れる<C>はカメラパラメータベクトルであり、カメラパラメータ行列[C]の成分のうちC34を除いた11個を成分とする列ベクトルである。該カメラパラメータベクトル<C>を最小二乗解の意味で解くと、その解は下記(5)式を満足するものであることがわかっている。従って、該(5)式よりカメラパラメータベクトル<C>の各成分を決定することができ、ひいてはカメラパラメータ行列[C]を決定することができる。
【0066】
【数5】
【0067】
以上説明したごとく、カメラパラメータのキャリブレーションには、同一平面上に存在しない最低でも6個の基準マーカーが必要であり、高精度なキャリブレーションを行なうにはさらに多くの基準マーカーが必要である。この場合、1つの基準マーカーユニットにより、多数の基準マーカーの三次元的な配置を一挙に形成しようとすると、マーカー支持体の形状が複雑化し、カメラによる撮影を行なったとき、マーカー支持体の影になる基準マーカーが生じやすくなる。また、マーカー支持体の寸法や方向にも狂いが生じやすくなる。これらはいずれも、正確なキャリブレーションが行ないにくくなる不具合につながる。
【0068】
そこで、図11に示すように、基準マーカーユニット200を複数用意し、基面SP上の位置が互いに異なるものとなるように、それら基準マーカーユニット200を基面SP上に一括配置して、カメラ15により各基準マーカー201の撮影を行なう方法を採用できる。複数の基準マーカー201を、基準マーカーユニット200により複数組に区分して配置することにより、マーカー支持体203の形状が複雑化したり、マーカー支持体203の寸法ないし方向の狂いによる基準マーカー201の位置決め精度の低下も生じにくくなり、上記の不具合を効果的に防止できる。
【0069】
この場合、基準マーカーユニット200としては、図12に示すように、マーカー固定用ベース202の底面からの高さが互いに異なる2以上の位置に基準マーカー201がマーカー支持体203により支持されたものを用いることができる。そして、図11に示すように、該基準マーカーユニット200を、基面SP上にて同一直線上に存在しない3つ以上の位置に配置して各基準マーカー201の撮影を行なうことが望ましい。つまり、高さ位置が異なる2以上の基準マーカー201を有した基準マーカーユニットを、基面上に3つ以上配置すれば、キャリブレーションに必要な基準マーカー数(6以上)を充足でき、かつ、3つ以上の基準マーカーユニット200に分かれることで、マーカー支持体201の複雑化や寸法ないし方向の狂いをより効果的に抑制することができる。図11の実施形態では、1つの基準マーカーユニット200に各々3つの基準マーカー201を割り当て、3台の基準マーカーユニット200により合計9個の基準マーカー201を配置できるようにしてある。また、図14は、1つの基準マーカーユニット200に各々2つの基準マーカー201を割り当て、4台の基準マーカーユニット200により合計8個の基準マーカー201を配置した例である。
【0070】
他方、図13に示すように、基準マーカーユニット200を基面SP上にて位置変更しながら、同じ基準マーカーユニット200上の基準マーカー201を(同じ)カメラ15により繰り返し撮影する方法を採用することもできる。つまり、カメラ15の仕様とアングルなどのセッティング条件が同じであれば、同じ基準マーカーユニット200を、基面SP上での位置を変えながら撮影することにより、撮影回数は増えるものの、複数の基準マーカーユニット200を一括セッティングして撮影した場合と同じ撮影情報が得られる。これにより、基準マーカーユニット200の数を減ずることができ、また、複数の基準マーカーユニット200間で影になって撮影できなくなる基準マーカー201が発生する不具合を、より効果的に防止することができる。
【0071】
この場合も、基準マーカーユニット200は、図12に示すものと同様のもの、すなわち、マーカー固定用ベース202の底面202bからの高さが互いに異なる2以上の位置に、基準マーカー201がマーカー支持体203により支持されたものを用いることが望ましい。すなわち、高さ位置が異なる2以上の基準マーカー201を有した基準マーカーユニット200を、基面SP上にて同一直線上に存在しない3以上の位置間で変更しながら各基準マーカーの撮影を行なうことにより、キャリブレーションに必要な基準マーカー数を実質的に充足でき、マーカー支持体203の構造も単純化するので、その寸法ないし方向の狂いをより効果的に抑制することができる。図13においては、図12の基準マーカーユニット200を、基面SP上にて3角形状に配置された3つの固定位置間で順次位置変更しながら、撮影を行なう例を示している(工程1→工程2→工程3)。一箇所での撮影により、3つの基準マーカー201の位置情報が撮影できるから、3回の撮影で3×3=9種類の基準マーカー201の位置情報が得られる。マーカー固定用ベース202、基準マーカー201及びマーカー支持体203は、例えば高分子材料の射出成形体として構成できる。
【0072】
図12において、マーカー支持体203は、マーカー固定用ベース202上に立設される棒状支持体203とされている。複数の基準マーカーは、該棒状支持体203の長手方向に予め定められた間隔に(d1,d2,d3)て固定することができる。棒状支持体203上に一次元的に基準マーカー201を配置した基準マーカーユニット200は、構造や形状が特に単純であり、また、水平方向にはマーカー支持体203が生じないことから、マーカー支持体203の影になる基準マーカー201が生じたり、マーカー支持体203の寸法や方向にも狂いが生じる不具合を一層効果的に防止できる。
【0073】
図12の基準マーカーユニット200は、具体的には、マーカー固定用ベース202上にベース側係合部202aが、また、基準マーカー201側に基準マーカー側係合部201aがそれぞれ設けられている。棒状支持体203は、複数の部分支持体203として長手方向に分割して形成されている。各部分支持体203の両端部に支持体側係合部203aが設けられ、それぞれベース側係合部202a又は基準マーカー側係合部201aに着脱可能に係合するようになっているものとして構成されている。棒状支持体を部分支持体203に区切って構成し、支持体側係合部203aとベース側係合部202a又は基準マーカー側係合部201aとにより、マーカー固定用ベース202あるいは基準マーカー201とに着脱可能に係合させるようにすることで、基準マーカーユニット200の分解・組立が容易になり、動作データ作成用コンピュータプログラムパッケージにおいて、分解状態でコンパクトに添付することができる。
【0074】
本実施形態では、ベース側係合部202aは、マーカー固定用ベース202に設けられたソケット部202b(この実施形態では筒状であるが、形状はこれに限定されない)の上面に開口する固定穴であり、基準マーカー側係合部201aは球状の基準マーカーの表面に開口する固定穴である。他方、支持体側係合部203aは、部分支持体203の本体部203mよりも径小に形成された嵌合突起であり、上記固定穴内に締まり嵌め形態で挿入される。また、本体部203mの端面外縁に生ずる段付き面は基準マーカー側係合部201aのストッパ面203tとされ、ベース側係合部202aないし基準マーカー側係合部201aの開口周縁部と当接するようになっている。
【0075】
以下、カメラパラメータのキャリブレーション処理の一例を、図16及び図17のフローチャートを用いて説明する。図11ないし図13に示すように、基準マーカーユニット200を用いて基準マーカー200の撮影を行い、その静止画のフレーム上にて各基準マーカーの重心位置を、被写体上のマーカーの重心位置演算と同様に演算し、フレームマーカー位置座標(Xci,Yci)として確定する。また、基準マーカーユニット200毎に、各基準マーカー201の実体空間内での位置を実測することにより実体マーカー位置座標(xi,yi,zi)を求め、フレームマーカー位置座標(Xci,Yci)と対応付けて動作データファイル252(図1)に記憶する。
【0076】
次に、図16のT1において、予め入力してあるカメラ15の焦点距離fの値を読み取り、T2で基準マーカーの番号iを1とし、T3でフレームマーカー位置座標Pi(Xci,Yci)を読み取る。T4では実体マーカー位置座標pi(xi,yi,zi)を読み取る。T5,T6では番号iをインクリメントしながらT3,T4の処理を繰り返し、全ての基準マーカーのフレームマーカー位置座標Pi及び実体マーカー位置座標piを読み出したらT7に進み、以下のカメラパラメータ演算処理に移る。
【0077】
三次元アフィン変換を用いたカメラパラメータ演算処理自体はすでに周知であるので、詳細なアルゴリズムの説明は省略するが、概略は以下の通りである。すなわち、前記(7)式の行列A、ベクトル<C>、Rを定義に従い演算・生成する。また、T8ではAの転置行列ATを演算・生成する(<C>に含まれるカメラパラメータ行列の要素は、この時点では未知数である)。そして、T9では、(8)式の左辺であるATA<C>を演算する。さらに、T10では、(8)式の右辺であるATRを演算する。そして、T11に進み、ATA<C>とATRとを比較することにより、カメラパラメータ行列の各要素を演算・決定する。得られたカメラパラメータは、図1において、カメラパラメータファイル253の形で記憶される。
【0078】
図17は、被写体の動作撮影により得られる各フレームのフレームマーカー位置座標を、上記のように求めたカメラパラメータを用いて実体マーカー位置座標に変換し、動作データとする処理の一例を示すものである。T101ではカメラパラメータベクトル<C>をカメラパラメータ行列[C]に変換し、T102ではその逆行列[C]−1を演算する。T103とT104でフレームの番号kとマーカーの番号iを初期化する。T105では、番号jのマーカーの重心位置、すなわちフレームマーカー位置座標Pj(Xcj,Ycj)を読み出し、(1)式の左辺のベクトル<P>を演算・生成する。また、T106では、既に演算してある[C]−1をベクトル<P>に乗じる。得られるベクトル<p>は、(1)”式により最初の三項が実体マーカー位置座標(x,y,z)に相当するので、T107においてこれを取り出せば着目しているマーカーの実体マーカー位置座標が得られる。上記演算を、全てのフレームの全てのマーカーについて繰り返せば(T109→T105、T111→T104)、最終的な動作データへの変換処理が終わる。
【図面の簡単な説明】
【図1】本発明の動作データ作成方法を実施するための、動作データ作成システムの電気的構成を全体的に示すブロック図。
【図2】その画像入出力部の内容を示すブロック図。
【図3】ルックアップテーブルメモリ回路の具体的な構成例を示す回路図。
【図4】二次元ルックアップテーブルのデータ内容を概念的に示す図。
【図5】画像抽出部の一例を示す回路図。
【図6】マーカー画素計数部の構成例を示す回路図。
【図7】フレームをブロック分割する例を示す概念図。
【図8】マーカー領域別の重心演算処理の流れを示すフローチャート。
【図9】マーカー領域が同一マーカーに属するか否かの判定原理を説明する図。
【図10】マーカー領域別の重心演算結果から、最終的なマーカー重心を求める処理の一例を示すフローチャート。
【図11】基準マーカーユニットを用いたカメラパラメータキャリブレーション処理の第一例を示す斜視図。
【図12】基準マーカーユニットの具体例を、分解状態と組立状態との両方により示す斜視図。
【図13】基準マーカーユニットを用いたカメラパラメータキャリブレーション処理の第二例を示す斜視図。
【図14】基準マーカーユニットを用いたカメラパラメータキャリブレーション処理の第三例を示す斜視図。
【図15】カメラ座標系と実体座標系との関係を示す説明図。
【図16】カメラパラメータキャリブレーション処理の流れの一例を示すフローチャート。
【図17】カメラパラメータを用いた動作データの変換処理の一例を示すフローチャート。
【符号の説明】
1 動作データ作成システム
4 画像入力部(マーカー指定色抽出手段)
5 画像抽出部(マーカー指定色抽出手段)
6 抽出画像データ出力制御部(フレーム分割手段)
7 マーカー画素計数部(重心演算手段)
8 ホストコンピュータ(動作データ作成手段、カメラパラメータキャリブレーション手段、重心演算手段、マーカー領域識別手段、重心統合手段、マーカー位置出力手段)
15 カラーカメラ
200 基準マーカーユニット
201 基準マーカー
201a 基準マーカー側係合部
202 マーカー固定用ベース
202a ベース側係合部
203 マーカー支持体(棒状支持体、部分支持体)
203a 支持体側係合部
250 記録媒体
【発明の属する技術分野】
本発明は、被写体に形成されたカラーマーカーの動作軌跡を検出し、その検出情報に基づいて被写体の動作データを作成する動作データ作成システム(いわゆるモーションキャプチャシステム)の実現に使用する動作データ作成用コンピュータプログラムパッケージと、動作データ作成用のカメラパラメータのキャリブレーション方法、及びそれに使用するカメラパラメータキャリブレーション用の基準マーカーユニットに関する。
【0002】
【従来の技術】
【特許文献1】
特開平4−93704号公報
【特許文献2】
特開平6−50983号公報
【特許文献3】
特開平11−83440号公報
【特許文献4】
特開2000−163596号公報
【0003】
近年、アニメーションやバーチャルリアリティ、あるいはコンピュータグラフィックス(CG)を利用した映画等の分野において、合成した動画キャラクタに実際の人間の動作データを入力して、よりリアルな動画の動きを実現する技術が普及しつつある。この場合、身体中に多数のセンサを取り付けた人間が演技した動きをカメラ撮影し、その撮影された動画像上でのセンサの動きを解析して動作データを作成する、いわゆるモーションキャプチャシステムと呼ばれるシステムが使用される。このようなデータを、CG等で作成したキャラクタに適用することにより、例えば実際には存在しないモンスターと人間が格闘するようなシーンもリアルな動きで表現することができる。
【0004】
このようなモーションキャプチャシステムにおけるデータの入力には、例えば装着した磁気センサによって空間上の位置やねじれの方向を三次元計測する方法がある。しかしながら、この方法では、磁気センサを用いるのでシステムが複雑化する問題がある。
【0005】
そこで、上述のような問題点を解消すべく、個々のターゲットをカラーマーカーとして被写体に取り付け、これらのカラーマーカーをビデオカメラで撮影しながらモニタ用としてのビデオレコーダーを介して、そのマーカーの色と形状の情報信号をビデオボードに抽出し、例えば、その情報信号に基づいてマーカー位置を求めていくことで、測定対象部位の三次元的な動きを知るようにしたモーションキャプチャシステムが、特許文献1〜4に開示されている。
【0006】
ところで、モーションキャプチャシステムにおいてビデオボードに抽出されるデータは、二次元的な動画フレームのデータであり、マーカー位置情報もカメラ座標系によるフレーム上の二次元座標として求めることになる。しかし、コンピュータグラフィック等に使用する動作データは、被写体が存在する実体空間での三次元のマーカー位置であるから、カメラ座標系による二次元マーカー位置座標のままでは使用できない。そこで、実体空間の三次元座標とカメラ内のフレームの二次元座標との関係を特定するカメラパラメータを用いて、フレーム上のマーカー位置座標を実体空間の三次元座標に変換する演算を最終的には行なうことになる。
【0007】
【発明が解決しようとする課題】
ところで、カメラパラメータは、被写体の撮影を行なうカメラの特性とセッティング状態に応じて固有に定まるものであり、一般には、被写体の動画撮影を行なうのと同じ種類及びセッティング状態のカメラを用いて、実体空間内の三次元位置座標が知れた基準体の撮影を行い、その基準体の三次元位置座標と画像フレーム上の二次元位置座標とを用いて算出することになる(これをカメラパラメータのキャリブレーションという)。
【0008】
しかしながら、市販のモーションキャプチャシステム用のソフトウェアにおいては、カメラパラメータの演算自体は行なえても、基準体を用いたキャリブレーション用のデータ収集に関しては全く配慮がなされていない。また、動作データ作成プロジェクトの現場状況はケースによってまちまちであり、適当な基準体が見つからなかったり、見つかっても数が足りなかったりするなど、カメラパラメータのキャリブレーションを考慮した撮影環境が必ずしも整えられていない場合がある。
【0009】
本発明の課題は、動作データ作成プロジェクトの現場状況とは無関係に、カメラパラメータのキャリブレーション用の撮影環境を常に十分かつ容易に行なうことができるコンピュータプログラムパッケージと、動作データ作成用のカメラパラメータのキャリブレーション方法、及びそれに使用するカメラパラメータキャリブレーション用の基準マーカーユニットを提供することにある。
【0010】
【課題を解決するための手段及び作用・効果】
上記の課題を解決するために、本発明の動作データ作成用コンピュータプログラムパッケージは、複数のカラーマーカーが設けられた被写体の動作をカメラにより撮影したカラー動画の各フレームにおいて、カラーマーカーの色として予め指定された色であるマーカー指定色の画素のデータを抽出し、カメラの結像光軸に対し垂直なフレーム平面上に定められた二次元座標をフレーム二次元座標として、カラー動画の各フレームにおいて、マーカー指定色を有する画素領域であるマーカー領域を見出し、各カラーマーカーのマーカー領域の位置座標を、フレーム二次元座標にて表示したマーカー位置座標であるフレームマーカー位置座標として演算する動作データ作成システムに使用され、
コンピュータを、
被写体が存在する撮影用実体空間内に定められた三次元座標を撮影用実体空間座標として、フレーム二次元座標と該撮影用実体空間座標との関係を表すカメラパラメータを用い、フレームマーカー位置座標を、撮影用実体空間座標にて表示したマーカー位置である実体マーカー位置座標に変換し、動画のフレーム毎に各カラーマーカーの位置を実体マーカー位置座標にて特定した動作データを作成する動作データ作成手段と、
実体マーカー位置座標が特定可能な形で撮影用実体空間内に配置された複数の基準マーカーをカメラにより撮影して得られるキャリブレーション用画像の、画像フレーム上に表れる各基準マーカーのフレームマーカー位置座標と実体マーカー位置座標とを用いてカメラパラメータのキャリブレーションを行なうカメラパラメータキャリブレーション手段と、
を備えた動作データ作成システムとして機能させるコンピュータプログラムを格納した記録媒体と、
複数の基準マーカーと、撮影用実体空間の予め定められた位置にそれら基準マーカーを、記実体マーカー位置座標が特定可能な形で固定するマーカー固定手段と、を備えた基準マーカーユニットと、を有することを特徴とする。
【0011】
動作データ作成システムにおけるカメラパラメータキャリブレーションは、撮影用実体空間内に配置された複数の基準マーカーをカメラにより撮影し、その撮影により得られる二次元的なフレームマーカー位置座標と、三次元的な実体マーカー位置座標とを用いて行なう。上記本発明のコンピュータプログラムパッケージの構成においては、そのカメラパラメータキャリブレーション手段の機能を実現するための動作データ作成システムのコンピュータプログラムに、該動作データ作成に不可欠なカメラパラメータキャリブレーション用の基準マーカーと、実体マーカー位置座標が特定可能な形でこれを固定するマーカー固定手段とからなる基準マーカーユニットを組み合わせた。すなわち、プログラムに添付された基準マーカーユニットを用いれば、いかなる状況にあっても、カメラパラメータのキャリブレーションに好都合な基準マーカーを直ちに用意でき、さらにマーカー固定手段により、実体マーカー位置座標が把握できる形でこれを実体空間内に固定することができる。こうして固定した基準マーカーを、動作データ作成用のカメラにて撮影すれば、撮影により得られるキャリブレーション用画像のフレーム上に表れる各基準マーカーのフレームマーカー位置座標と、同じく実体マーカー位置座標とを用いてカメラパラメータのキャリブレーションを簡単かつ正確に行なうことができる。
【0012】
次に、本発明の動作データ作成方法は、複数のカラーマーカーが設けられた被写体の動作をカメラにより撮影したカラー動画の各フレームにおいて、カラーマーカーの色として予め指定された色であるマーカー指定色の画素のデータを抽出し、
カメラの結像光軸に対し垂直なフレーム平面上に定められた二次元座標をフレーム二次元座標として、カラー動画の各フレームにおいて、マーカー指定色を有する画素領域であるマーカー領域を見出し、各カラーマーカーのマーカー領域の位置座標を、フレーム二次元座標にて表示したマーカー位置座標であるフレームマーカー位置座標として演算し、
被写体が存在する撮影用実体空間内に定められた三次元座標を撮影用実体空間座標として、フレーム二次元座標と該撮影用実体空間座標との関係を表すカメラパラメータを用い、フレームマーカー位置座標を、撮影用実体空間座標にて表示したマーカー位置である実体マーカー位置座標に変換し、動画のフレーム毎に各カラーマーカーの位置を実体マーカー位置座標にて特定した動作データを作成する動作データ作成方法において、
マーカー固定用ベースと、複数の基準マーカーを、各々マーカー固定用ベース上の底面からの高さが定められた値となるようにマーカー固定用ベース上にて支持するマーカー支持体と、を有する基準マーカーユニットを、撮影用実体空間内に予め定められた基面上に、マーカー固定用ベースの該基面上での位置が特定可能な形で配置し、
該基準マーカーユニットに取り付けられた基準マーカーをカメラにより撮影する一方、マーカー固定用ベースの基面上での位置と、該固定用ベースの底面から各基準マーカーまでの高さ位置とにより、各基準マーカーの実体マーカー位置座標を求め、撮影により得られるキャリブレーション用画像のフレーム上に表れる各基準マーカーのフレームマーカー位置座標と実体マーカー位置座標とを用いてカメラパラメータのキャリブレーションを行なうことを特徴とする。
【0013】
また、本発明の基準マーカーユニットは、上記本発明の動作データ作成用方法に用いるものであり、マーカー固定用ベースと、複数の基準マーカーを、各々マーカー固定用ベース上の底面からの高さが定められた値となるようにマーカー固定用ベース上にて支持するマーカー支持体と、を有することを特徴とする。
【0014】
上記本発明の方法及び基準マーカーユニットの構成によると、基準マーカーユニットに使用するマーカー固定手段が、マーカー固定用ベースと、複数の基準マーカーを、各々マーカー固定用ベースの底面からの高さが定められた値となるようにマーカー固定用ベース上にて支持するマーカー支持体とからなる。このような基準マーカーユニットは、例えば屋内の場合は床面や、床面上に固定された基台の水平な頂面、屋外の場合は路面や地面、ないしはその上に置かれた基台の水平な頂面などを基面として用い、撮影用実体空間の原点を(例えば基面上に)適当に定めた後、その基面上にマーカー固定用ベースを載置する。マーカー固定用ベースの基面上の位置を、前記原点を基準として測定すれば、基準マーカーがマーカー支持体により、マーカー固定用ベースの底面からの高さが定められた値となるように設定されているので、高さ方向の基準マーカー位置は自動的に定まる。すなわち、マーカー固定用ベースの基面上の設置位置を測定するだけで、基準マーカーの実体マーカー位置座標を簡単に特定することができ、結果としてカメラパラメータのキャリブレーションを手軽に行なうことができる。
【0015】
前述の動作データ作成システムは、複数のカラーマーカーが設けられた被写体の動作を撮影するカラーカメラと、
カラーカメラからのカラー映像出力に基づく動画データの各フレームにおいて、カラーマーカーの色として予め指定された色(マーカー指定色)の画素のデータを抽出するマーカー指定色抽出手段と、
動画データの各フレームを複数のブロックに分割するフレーム分割手段と、
マーカー指定色を有する画素領域(マーカー領域)をブロック毎に見出して、該マーカー領域の重心位置を演算する重心演算手段と、
各ブロックのマーカー領域のうち同一マーカーに関係したものを、重心演算結果に基づいて識別するマーカー領域識別手段と、
該識別された同一マーカーに関係する各マーカー領域の重心演算結果に基づいて、それらマーカー領域の統合体の重心位置をフレームマーカー位置座標として演算する重心統合手段と、
統合体の重心位置をフレームマーカー位置座標として出力するフレームマーカー位置座標出力手段と、
を備えたものとして構成することができる。
【0016】
上記の構成においては、動画データの各フレームを複数のブロックに分割し、1つのマーカーの画像領域を複数ブロックにまたがる領域として捉え、ブロックのマーカー領域を個別に抽出するとともに、マーカー領域毎に重心位置を求める。それらマーカー領域が同一マーカーに由来したものであれば、画像上に現われるマーカー領域は、例えば隣接するブロックなど必ず近接して現われ、別のマーカーに由来したものであれば一定以上の距離を隔てて現われる。従って、各ブロックのマーカー領域は、同一マーカーに関係したものであるか否かを、マーカー領域毎の重心演算結果に基づいて識別することができる。識別された各マーカー領域の重心演算結果を用いれば、ブロック分割しないマーカー画像の重心位置(つまり、マーカー領域の統合体の重心位置)は簡単に演算できる。
【0017】
従来の動作データ作成システム(モーションキャプチャ)においては、同一色のマーカーを被写体に複数取り付けると、色抽出によりマーカーを識別しようとした場合、それら複数のマーカーはどんなに遠くに離れていても同じマーカーに属するものとみなされるから、マーカーの個々の重心を合成した演算結果しか得られなかった。しかし、上記の方式によると、動画データのフレームがブロックに分割されることで、離れたマーカー領域と近接したマーカー領域とを、それらが現われるブロック位置を媒介として容易に区別でき、同一色の別のマーカーであっても分離して識別できる。つまり、同じ色のカラーマーカーを複数被写体に取り付けることが可能となり、カラーマーカーの設定色を少数に留めつつ、被写体に取付け可能なマーカー数を従来よりも大幅に増加させることができる。これにより、動作トレースの精度を格段に向上させることが可能となる。例えば、従来は異色識別を確実に行なうために、使用可能なマーカー色つまりマーカー個数は、16個程度が限度であったが、本発明では、同じ色のマーカーを6個使用すれば、8色程度の識別で6×8=48個ものマーカーが使用可能となる。
【0018】
【発明の実施の形態】
図1は、本発明の動作データ作成システム1の電気的構成を示す全体ブロック図である。動作データ作成システム1は、大きく分けて画像入力部4、画像抽出部5、抽出画像データ出力制御部6及びマーカー画素計数部7の4つの部分を含むハードウェアシーケンス部2と、I/Fボード9を介してこれらが接続されるアニメーションやCG動画等を作成するためのホストコンピュータ8とを有する。また、ハードウェアシーケンス部2には、画素転送クロックパルスを与えるクロックパルス発生回路が組み込まれた、画像入出力部4における各種制御を司るシステムコントローラ3が設けられている。ホストコンピュータ8は、CPU、ROM、RAMを有する本体11と、モニタ10、記憶装置12(例えばハードディスクドライブ)、及び記録媒体読取装置としてのCD−ROMドライブ249を備えている。記憶装置12には、動作データ作成システムの機能を実現するコンピュータプログラム(動作データ作成プログラム)251がインストールされている。また、記憶装置12には、ハードウェアシーケンス部2からの重心演算用データをもとに作成された動作データファイル252、及び、その動作データファイル252の作成に使用するカメラパラータファイル253が記憶されている。また、コンピュータプログラム251はCD−ROM250に記録された形で供給され、CD−ROMドライブ249により読み取られて記憶装置12にインストールされる。
【0019】
動作データ作成システム1は、モーションキャプチャとして動作データを生成するために、人間や動物などの被写体にカラーマーカー(以下、単にマーカーともいう)を取り付けてこれを撮影する。カラーマーカーとしては、例えば全体が単色に着色されたものを使用し、取り込むべき動作に関与する必要部位にピン止めあるいは面ファスナ等により適宜取り付ける。このように複数のカラーマーカーが設けられた被写体の動作を、図2のカラーカメラ15により撮影する。カラーカメラ15は、被写体の動作により、死角に入って撮影不能となるカラーマーカーが生じないように、撮影アングルの異なるものを複数台(例えば2台)設けており、適宜切り替えて撮影を行なう。
【0020】
そして、その基本機能を、例えば以下のような実現手段により構成するものである。
・マーカー指定色抽出手段:複数のカラーマーカーが設けられた被写体の動作を、カラーカメラ15により撮影したカラー動画の各フレームにおいて、カラーマーカーの色として予め指定された色であるマーカー指定色の画素のデータを抽出する。
・フレームマーカー位置座標演算手段:カメラ15の結像光軸(図15のZ軸)に対し垂直なフレーム平面(図15のX−Y平面)上に定められた二次元座標をフレーム二次元座標として、カラー動画の各フレームにおいて、マーカー指定色を有する画素領域であるマーカー領域を見出し、各カラーマーカーのマーカー領域の位置座標を、フレーム二次元座標にて表示したマーカー位置座標であるフレームマーカー位置座標として演算する。
・動作データ作成手段:被写体が存在する撮影用実体空間内に定められた三次元座標を撮影用実体空間座標として、フレーム二次元座標と該撮影用実体空間座標との関係を表すカメラパラメータを用い、フレームマーカー位置座標を、撮影用実体空間座標にて表示したマーカー位置である実体マーカー位置座標に変換し、動画のフレーム毎に各カラーマーカーの位置を実体マーカー位置座標にて特定した動作データを作成する:本実施形態では、以下の各手段を含んでいる。
(フレーム分割手段):動画データの各フレームを、図7に示すように複数のブロックに分割する。
(重心演算手段):ブロック毎にマーカー指定色を有する画素領域(以下、マーカー領域という)を見出して、該マーカー領域の重心位置を演算する。
・マーカー領域識別手段:各ブロックのマーカー領域のうち同一マーカーに関係したものを識別する。
(重心統合手段):該識別された同一マーカーに関係する各マーカー領域の重心演算結果に基づいて、それらマーカー領域の統合体の重心位置をフレームマーカー位置座標として演算する。
(マーカー位置出力手段):統合体の重心位置を、被写体の動作データであるフレームマーカー位置座標として出力する。
・カメラパラメータキャリブレーション手段:実体マーカー位置座標が特定可能な形で撮影用実体空間内に配置された複数の基準マーカーをカメラ15により撮影し、その撮影により得られるキャリブレーション用画像のフレーム上に表れる各基準マーカーのフレームマーカー位置座標と実体マーカー位置座標とを用いてカメラパラメータのキャリブレーションを行なう。
【0021】
以上の個々の機能実現手段が、どのようなハードウェアあるいはソフトウェア構成により実現されるかの一例を、以下に詳細に説明する。
【0022】
まず、被写体に着用させるマーカーであるが、例えば2以上のマーカーの取付け位置が十分に離れており、かつ、動作中もそれらが過度に近接する惧れがない場合は、それらのマーカーを互いに同じマーカー指定色に設定できる。例えば人体の全体動作を取得する場合、頭と胴体、腕と足などの位置関係にあるマーカー同士である。他方、上腕と下碗、両足、片手の複数の指同士など、過剰な近接が生じやすくなると思われる部位同士は、異なる色のマーカーを装着することが望ましい(特に、明度や色相においてなるべく離れた色を用いると、照明や反射等の影響も受けにくくできる)。
【0023】
次に、マーカー指定色抽出手段の中核をなすのは、図1の画像入力部4及び画像抽出部5である。図2は、その詳細を示すブロック図である。この部分は、カラーカメラ15からの映像出力に基づくデジタルカラー映像信号DSを、マーカー指定色を有したマーカー領域の信号と、マーカー指定色以外を有する非マーカー領域の信号とにデコードし、これを画素信号MKDとして出力する画素信号出力回路として構成されている。このようにすることで、出力される全ての画素信MKDは、個々のマーカー指定色の画素か、またはマーカー指定色以外の画素のいずれかに属するものとなり、以下の画素分離に係るデジタル処理を格段に容易に進めることができる。カラーカメラ15からの映像出力は、例えばカラーCCDセンサからのアナログRGB信号であるが、本実施形態では、これを個別のA/D変換器16,17,18によりデジタルRGB信号DSに変換しており、これらカラーカメラ15とA/D変換器16,17,18とが画像入力部4を構成する。
【0024】
また、画像抽出部5(画素信号出力回路)は、デジタルカラー映像信号のデコード処理を行なうルックアップテーブル(以下、LUTと略記する)19,20を有する。ルックアップテーブルの使用により、入力されるデジタルカラー映像信号DSの上記デコード処理を、ハードウェアロジックにより迅速に実行できる。本実施形態において、LUT19,20は、RGB信号(本実施形態では各8ビット)として入力されるデジタルカラー映像信号DSを、入力される当該デジタルカラー映像信号DSよりもビット数の減じられた色信号MKD(本実施形態では4ビット)として出力するものとして構成されている。非マーカー領域により1色が占有されることを考慮して、24−1=15通りのマーカー色の採用が可能である。
【0025】
RGB信号は3次元データであるが、図2の構成では、二次元LUTの組合せにより回路全体を安価に構成するため、前段側のLUT19により2色(16ビット)の信号成分(ここではRとBであるが、これに限られるものではない)をデコード(8ビット)する第一のデコード処理を経た後、そのデコード後のR−B信号をさらに後段側のLUT20により、残余の1色(ここではG)と組合せてデコードする第二のデコード処理(4ビット)を行なうようにしている。
【0026】
なお、RGB信号に代えて輝度信号Yと、RGBのいずれか2色とその輝度Yとの色差信号を用いたり、あるいはその色差信号をさらに色相及び彩度の信号に変換した後、上記と同様のデコード処理を行なってもよい。これは、特開平11−83440号及び特開2000−163596号の各公報に開示されている方式であり、近接した色彩のマーカーの識別に問題が生ずる場合に、照明むらや反射などによるかく乱の影響を軽減する上で効果を発揮する。しかしながら、色差信号を生成するために余分な回路を付加しなければならないデメリットもある。本実施形態の構成では、色による識別が本質的に不可能な同一色マーカー同士であっても、前記ブロック分割方式を採用することで、動画のフレーム上にて問題なく識別できるから、安価なRGBデコード方式でも十分に目的を達成できる利点がある。
【0027】
図2の各LUT回路19又は20は同一のハードウェア構成を有し、これをより詳細に示したものが図3である。また、図4は、そのLUT回路のメモリセル部の一例をごく概念的に示すものであり、16ビットの入力データをデータA及びデータBとして、それらの内容に対応したアドレス線の選択により、対応するセルの登録データDR11,DR12‥‥等のいずれかが読み出される二次元テーブルとなっている。図3でデータA及びデータBの各入力信号は、LUT回路19ではRとB、LUT回路20ではR−BとGに相当するもので、それがOD信号となって出力される。LUTメモリ160には、LUTメモリコントローラ159(以下、LMCNと記す:この実施例では、図1のシステムコントローラ3に組み込まれている)が付属し、また、そのデータの入力側に、D型フリップフロップ回路161,162が、また、出力側にD型フリップフロップ回路164が設けられている(以下、D−FFと略記する)。これらのD−FFは、いずれもアウトプットコントロール端子(インヒビット入力端子)OCを有するものが使用されている。
【0028】
ホストコンピュータ8からのデータバスは、双方向バストランシーババッファ166を介してLUTメモリ160に接続される。また、ホストコンピュータ8からのアドレスバスは、バスバッファ168,169を介してLUTメモリ160のデータA用のアドレスとデータB用のアドレスとにそれぞれつながっている。
【0029】
LUT回路に初期設定を行なう場合、ホストコンピュータ8はLUTメモリ制御信号を用いてLUTメモリコントローラ159にバス要求命令を送る。これに従い、LUTメモリコントローラ159は、D−FF161,162,164のアウトプットコントロール信号(OC)を制御し、D−FF161,162,164の出力を非能動状態とするとともに、双方向バストランシーババッファ166及びバスバッファ168,169の出力イネーブル信号Gを制御し、これらの出力を能動状態にする。これにより、ホストコンピュータ8がLUTメモリ160に対し読み書きができる状態になり、初期設定が行われる。
【0030】
LUTメモリ160へのデータ入力終了後、ホストコンピュータ8は前記LUTメモリ制御信号を用いてLUTメモリコントローラ159にバス解放命令(演算実行命令)を送る。これにより、LUTメモリコントローラ159は双方向バストランシーババッファ166及びバスバッファ168,169の出力イネーブル信号Gを制御し、D−FF161,162,164のアウトプットコントロール信号(OC)を制御し、D−FF161,162,164の出力を能動状態にする。その結果、LUTメモリ160への入力データAとデータBにより字引的に求められた演算結果がODに出力されるようになる。ここで、D−FF161,162その他は処理を行なう画素の転送クロックパルスを用いてこれに同期して動作させることで、高速演算処理を実現している。なお、各D−FFにおけるCKはクロックパルス入力の端子であり、双方向バストランシーババッファ166のDIRはバス方向制御信号入力の端子である。そして、前述の通りクロックパルスは、システムコントローラ3(図2)に組み込まれたパルス発生回路が発する画素転送クロックパルスが使用される。
【0031】
図1に戻り、フレーム分割手段は、本実施形態では抽出画像データ出力制御部6によりハードウェア的に実現されている。これは、動作データの作成処理を、リアルタイム処理が可能となるように高速化することが狙いである。図5は、その詳細を示すものである。この回路には、画素信号を指定されたアドレスに画素データとして格納するフレームメモリ22,23が設けられている。フレームメモリが2系統設けられているのは、片側のメモリに画素データMKDの書き込みを行なっている間に、他方のメモリからすでに書き込まれている前画面の画素データを読み出して、画像出力MKとして出力することにより、絶え間なく処理が継続できるようにするためである。D−FF44〜47は、この書き込みと読み出しの制御を行なうために設けられたものであり、全てインヒビット入力端子を有している。これらは、インヒビット入力端子への出力イネーブル信号OEの入力(システムコントローラ3により制御される)により、書き込み側のD−FF44,47と読み出し側のD−FF45,46は、一方のメモリの書き込み側D−FF出力が能動化されているとき、常に他方のメモリの読み出し側D−FF出力が能動化されるよう、それぞれ交互に切り替えられる。D−FF44〜47はいずれもクロック端子を省略して描いており、画素クロックを受ける毎に、メモリへの書き込みもしくはメモリからの読み出しのために画素データを4ビット単位で出力する。
【0032】
次に、抽出画像データ出力制御部6には、画素データのフレームメモリ22,23への格納に際して、該画素データを書き込むべき画素アドレスを生成してフレームメモリ22,23に入力する書き込み側画素アドレス生成回路30が設けられている。フレームメモリ22,23は、それぞれ1フレーム全ブロック(つまり全画面)の画素が格納可能とされており、書き込み側画素アドレス生成回路30はX−Y走査により画素の格納先となるアドレスを順次フレームメモリ22又は23に入力する。入力先となるメモリ22,23の切替えは、各メモリ22,23に対応するバッファ40,42のいずれかの出力が、システムコントローラ3からの出力イネーブル信号OEを受けて能動化されることにより行なわれる。
【0033】
他方、抽出画像データ出力制御部6には、フレームメモリ22,23に記憶された画素データの読み出しに際して、該画素データを読み出すべき画素アドレスを生成してフレームメモリ22,23に入力するための、読み出し側画素アドレス生成回路35が設けられている。読み出し側画素アドレス生成回路35は、画素データを読み出すべきブロックのアドレス(ブロックアドレス)を生成してフレームメモリ22,23に入力するブロックアドレス生成回路38,39と、同じく該ブロックアドレスが指定したブロック内にて読み出すべき画素データの画素アドレスを生成するブロック内画素アドレス生成回路36,37とを含む。これにより、フレームメモリ22,23内の領域のうち、ブロックアドレスが指定するブロックの画素を選択的に読み出し、1ブロック分の画素のみを切り出す形で画像出力MKとして出力することが可能となる。
【0034】
書き込み側画素アドレス生成回路30、読み出し側画素アドレス生成回路35に含まれるブロックアドレス生成回路38,39及びブロック内画素アドレス生成回路36,37は、それぞれ画面をX−Y走査するためのXカウンタ31,36,38及びYカウンタ32,37,39を含むX−Yカウンタ回路として構成されている。このうち、書き込み側画素アドレス生成回路30は、飛越し走査にて出力されてくるカメラ15(図2)からの映像信号を合成して、順次走査信号に走査変換するために、Xカウンタ31とYカウンタ32とが互いに独立したカウンタとして構成されている。Yカウンタ32は、偶数走査時と奇数走査時において互いに異なる画素アドレスを生成し、フレームメモリ22,23に入力する。本実施形態では、Xカウンタ31が1ライン分640画素を入力するために10ビット出力とされ、Yカウンタは480ライン分を入力するために9ビット出力とされている。
【0035】
他方、読み出し側画素アドレス生成回路35は、合成後の画面からの画素読み出しとなるので、ブロック内画素アドレス生成回路36,37をなすXカウンタ36とYカウンタ37、及びブロックアドレス生成回路38,39をなすXカウンタ38とYカウンタ39は、いずれも縦続接続されるとともに、YカウンタがXカウンタからの桁上がり信号を受けてカウントアップするものとなっている。また、ブロックアドレス生成回路38,39はブロック内画素アドレス生成回路36,37の後段側に縦続接続されてなり、当該ブロック内画素アドレス生成回路36,37の桁上がり信号を受けてカウントアップするようになっている。
【0036】
これにより、以下のような出力処理が、単一のクロックパルス列によるハードウェアシーケンスによりきわめて迅速に行なわれる。すなわち、各ブロックではX方向(例えば左から右)の画素データが順次出力され、端まで行くとY方向に1画素分(例えば下側へ)移動して、再びX方向(例えば左から右)の画素データが順次出力される。そして、1つのブロックで画素データ出力が終了すると、次のブロックに移動して同じ処理が繰り返される。このブロックの移動もX方向に順次的になされ、端まで行くとY方向に1ブロック分移動して再びX方向へ移動する動作の繰り返しとされる。本実施形態では、図7に示すように、1画面がX方向に40ブロック、Y方向に30ブロックの計1200ブロックに分割されるようになっている。また、1ブロックの画素数は、X方向及びY方向のいずれも16画素である。従って、ブロック内画素アドレス生成回路のXカウンタ36及びYカウンタ37の出力はいずれも4ビット、ブロックアドレス生成回路のXカウンタ38の出力は6ビット、同じくYカウンタ39の出力は5ビットである。なお、データの読み出し先となるフレームメモリ22,23の切替えは、各カウンタ36〜39のアドレス入力を切り替えることにより行なわれ、その切替えは、各メモリ22,23に対応するバッファ41,43のいずれかの出力を、システムコントローラ3からの出力イネーブル信号OEを受けて能動化することにより行なわれる。
【0037】
図1に戻り、マーカー画素計数部7は重心演算手段の要部をなすものである。図6にその回路の詳細を示す。まず、該回路には、マーカー領域に含まれる画素のX方向座標和SX、Y方向座標和SY、及び画素総数和NDを、それぞれブロック毎にブロックアドレス及びマーカー指定色アドレスと対応付けて記憶する個別のデータメモリ70,71,72が設けられている。各データメモリ70,71,72には、ブロックアドレス及びマーカー指定色アドレスを入力するアドレス入力部が設けられている。ブロックアドレスは、前段の抽出画像データ出力制御部6のブロックアドレス生成回路38,39のXカウンタ出力XBと、同じくYカウンタ出力YBとが流用されている。また、マーカー指定色アドレスは、読み出される画素データの画像出力MKがマーカー色そのものを表すので、これを流用してアドレス設定を行なうとともに、画像出力MKをそのままアドレス信号として用いている。
【0038】
また、各データメモリ70,71,72に対応する形で加算器55,56,57が設けられている。これら加算器55,56,57は、個々のデータメモリ70,71,72に格納されているブロック及びマーカー指定色毎のX方向座標和SX、Y方向座標和SY、又は画素総数和NDの出力に、新たに入力されたX方向座標値、Y方向座標値、又は画素計数信号を加算して、その加算値を各データメモリ70,71,72に上書き入力するものである。
【0039】
データメモリ70は、指定された色のマーカー領域をなす画素のX方向座標和SXを記憶するためのもので、画像出力MKによりマーカー指定色を識別し、指定色毎に異なるSXの記憶エリアが確保されている(アドレスA11〜A14により指定される)。また、記憶されるSXがどのブロックに係るものかが、ブロックアドレスXB(A0〜A5)及びYB(A6〜A10)により特定され、ブロック別にSXが記憶される。加算器55は、XB,YB及びMKにより特定されるブロック及び指定色のマーカー領域の、現在のSXの値をメモリ70から読み出して、これが第一入力端子Aに入力される一方、第二入力端子Bには次に加算すべき画素のX座標値が入力され、SXに加算する。X座標値は、図5のブロック内画素アドレス生成回路のXカウンタ36の出力値(つまり、対応する画素のX方向アドレスである)を流用している。
【0040】
なお、加算器55とメモリ70との間に設けられたD−FF61,62は、メモリ70からのSXの読み出しと書き換えとの処理を制御するためのものであり、D−FF62はインヒビット入力端子を有したものが使用される。そして、読み出しの際にはD−FF62の出力が非能動化され、メモリ70内のSXが上書き更新されないようにする。他方、書き換えの際には、D−FF62の出力を能動化し、加算器55の出力をメモリ70に入力する。D−FF61は、システムコントローラ70からのクロックパルスを受ける毎に、メモリ70からその時点でのSXの値が入力されてこれをラッチ保持し、加算器55に向けて出力する。こうして、指定されたブロック内における指定されたマーカー色の全ての画素について、SXへの新たな画素のX座標の加算演算が、メモリ70内のSXの値を更新しながら繰り返し行なわれる。1つのブロックの加算演算が終了したら、ブロックアドレスXB,YBの切替えにより、次のブロックに切り替えて同じ処理を繰り返す。なお、画素の読み出しは、1ブロック内にてX−Y走査により全ての画素について順次的に行なわれるが、個々の画素に対応してMKが切り替わりながら入力されるので、各画素のXアドレスは、対応するマーカー色のエリアに分別されながら加算されることになる。つまり、画素を走査方向に順次転送しながら加算処理を並行して行なうことができるので、リアルタイム処理を行なう上で好都合である。他方、リアルタイム処理を行なわないのであれば、個々のブロック内にて、指定されたマーカー色のみを検索/加算する処理を、全てのマーカー色について繰り返す方式も採用可能である。
【0041】
また、データメモリ71は、指定された色のマーカー領域をなす画素のY方向座標和YXを記憶するためのもので、データメモリ70と同様、加算器56とD−FF63,64が随伴している。その動作は、加算値がY座標(図5のブロック内画素アドレス生成回路のYカウンタ37の出力値を流用する)となる以外は、データメモリ71側と動作は同じである。従って、詳細な説明は省略する。さらに、データメモリ72は、指定された色のマーカー領域の総画素数NDを記憶するものであり、データメモリ70と同様、加算器57とD−FF65,66が随伴している。これは、画素の座標と関係なく、その個数を計数したいので、加算値は+1に固定されている。
【0042】
上記のようにハードウェア的に算出されたSX、SY、NDを用いることにより、マーカー指定色別に各ブロックのマーカー領域の重心位置座標を(SX/ND,SY/ND)として算出できることは明らかである。この重心算出処理も、除算器を用いたハードウェア処理により行なうことができるが、その演算自体は非常に簡単なので、本実施形態ではSX、SY、NDの組をホストコンピュータ8に転送し、そこでマーカー指定色各ブロックのマーカー領域の重心位置座標を演算するようにしている。図8のフローチャートはその処理の流れを示すものであり、S1で着目しているブロックにつきマーカー指定色(MK)を出力し、S2〜S4で、そのカラーマーカーのSX、SY及びNDの値をリードする。そして、これを用いることにより、指定されたマーカー指定色及びブロックのマーカー領域の重心座標Gを演算し、マーカー指定色MK及びブロックアドレス(XB,YB)と対応付けた形で、図1のCGデータ記憶部12に記憶する。
【0043】
図7は、1フレームの画像例を示している。フレームはX方向に40個、Y方向に30個の計1200個のブロックに分割されている。各ブロックを、X方向のブロック番号をi、Y方向のブロック番号をjとして、二次元配列Bijにより表す。このフレーム中には第一色の3つのマーカーM1−1、M1−2、M1−3と、第二色のマーカーM2−1の計4つの画像領域が現われている。フレームがブロック分割されていることで、個々のマーカーの画像領域は特別な場合を除き、複数ブロックにまたがって現われる。そして、上記の説明からも明らかなように、本実施形態のシステム1では、ブロック別にマーカー領域を個別に抽出し、マーカー領域毎に重心位置を求める。図9に示すように、マーカー領域A1〜A4が同一マーカーに由来したものであれば、画像上に現われるマーカー領域A1〜A4は、互いに隣接するブロックB1〜B4に近接した形で現われる。他方、図7のマーカーM1−1、M1−2、M1−3のように、別のマーカーに由来したマーカー領域は、一定以上の距離を隔てて現われる。従って、各ブロックのマーカー領域は、同一マーカーに関係したものであるか否かを、マーカー領域毎の重心演算結果に基づいて識別することができる。
【0044】
本実施形態では、マーカー領域識別手段を以下のような機能を有するものとして、ホストコンピュータ8上にてソフトウェア的に実現している。すなわち、図9に示すように、同一マーカー指定色に関してマーカー領域が存在する互いに隣接したブロック(隣接マーカーブロック)B1,B2を見出し、それら隣接マーカーブロックの一方B1について、そのブロックB1のマーカー領域A1の画素総数和NDに基づき、当該マーカー領域A1の寸法を反映した寸法パラメータr1を算出し、該マーカー領域A1の重心位置G1と算出された寸法パラメータr1とに基づいて、他方のブロックB2のマーカー領域A2が同一マーカーに基づくものであるか否かを判定する。重心位置G1と寸法パラメータr1とを用いた単純な比較処理により、同一マーカーに基づくマーカー領域であるか否かを判定することができる。
【0045】
具体的には、寸法パラメータr1が表すマーカー領域A1の寸法と、重心位置G1から他方のブロックB2との境界Σまでの距離dnとの大小関係に基づいて判定を行なうことができる。dnとr1とは直接比較を行なってもよいし、r1に一定の重み計数を乗じて比較することもできる。しかし、寸法パラメータは、図9にC1〜C4にて示されるような、マーカー領域と同一面積を有する円(以下、等価円という:正方形あるいはそれ以上の辺数を有する正多角形を用いてもよい)の半径r1を採用したとき、dnとr1とを直接比較により同一マーカーに基づくマーカー領域であるか否かを判定でき、判定制度も高めることができる。具体的には、図9(a)に示すように、dn≦r1のときマーカー領域A1,A2は同一マーカーに由来するものとして判定し、(b)に示すように、dn>r1であれば異なるマーカーに由来するものとして判定する。
【0046】
図10は、マーカー領域毎の重心演算結果に基づいて個々のマーカーの重心位置、すなわちフレームマーカー位置座標を求めるソフトウェアの処理の流れを一例として示すものである。各ブロックを前記した二次元配列Bijにて表す。まず。S101では、マーカー指定色MKを選択し、S102、S103では最初のブロック(図7の左上端)を指定するため、i=j=1とする。S104では、指定されたブロックBij(現在はB11になっている)にマーカー領域があるかどうかを確認する(NDがゼロになっていないものを見出せばよい)。S105では、S105’に示すように、そのブロックBijの周囲に隣接する8ブロックを、処理の便宜を図るためにB1〜B8の一次元配列に変換する(画面外にはみ出すブロックもi,jの定義範囲を拡張して、仮想ブロックとして取扱い可能にしておく。ただし、その仮想ブロックは、常にNDがゼロである)。
【0047】
S106では、それら8ブロックB1〜B2のうち、指定されたマーカー色のマーカー領域の存在するものを抽出する。また、S107において、それらマーカー領域の存在するブロックにつき、図9に示した方法に従い、画素数NDから等価円半径rを求め、また、隣接ブロックにマーカー領域が存在していれば、マーカー領域の重心Gから該隣接ブロックとの境界までの距離dnを算出する。そして、S108にて、r≧dnとなっている隣接ブロックを抽出し、それら隣接ブロックに統合フラグを付与する。
【0048】
そして、S109では、統合フラグの確認により、抽出されたブロックのマーカー領域の重心Gを1つのマーカーの重心として統合する演算を行なう。抽出されたブロックがk個であり、各マーカー領域の重心座標G及び総画素数NDを(X1,Y1);ND1,(X2,Y2);ND2,‥‥,(Xk,Yk);NDkとしたとき、統合後の重心位置(つまり統合体の重心位置)GsのX座標Xs及びY座標Ysは、それぞれ
Xs=(ND1・X1+‥+NDk・Xk)/(ND1+‥NDk)
Ys=(ND1・Y1+‥+NDk・Yk)/(ND1+‥NDk)
により求めることができる。なお、S104にてマーカー領域のないブロックであった場合は、上記S105〜S109の処理をスキップする。
【0049】
S110以下は、各ブロックについて上記の処理を繰り返す処理を記述したものであり、S110ではiを1加算することにより、X方向にブロックを1だけ移動させる。また、S111でその加算後のiがX方向のブロック数imax(本実施形態では40)を超えたときは、S113に進み、jを1加算してY方向に1ブロック分移動し、さらにi=1としてX方向の先頭のブロックに戻る。S114で加算後のjがY方向のブロック数jmax(本実施形態では30)を超えたときは、処理終了となる。
【0050】
移動先のブロックでは、S112において統合フラグの有無を確認することで、すでに重心統合済みのブロックであるか否かを確認する。統合済みならばS110に戻って次のブロックに移動する。そして、重心統合済みでないブロックが見出された時点でS104に戻り、そのブロックにつき以降の処理を繰り返す。
【0051】
こうして演算されたマーカー(統合体)の重心位置は、フレームマーカー位置座標として、フレーム毎に動作データファイル252(図1)に記憶される。図15に示すように、カメラ座標系(X,Y,Z)において、カメラの結像光軸(Z軸)に対し垂直なフレーム平面(X−Y平面)上に定められた二次元座標をフレーム二次元座標とする(原点はZ軸の位置)。フレームマーカー位置座標は、フレーム二次元座標にて表示したマーカー位置座標である。他方、コンピュータグラフィック等に使用する動作データは、被写体が存在する撮影用実体空間内に定められた三次元座標を撮影用実体空間座標(x,y,z)として、該撮影用実体空間座標にて表示したマーカー位置である実体マーカー位置座標である。各フレームマーカー位置座標は、フレーム二次元座標と該撮影用実体空間座標との関係を表すカメラパラメータを用いて実体マーカー位置座標に変換され、動画のフレーム毎に各カラーマーカーの位置を実体マーカー位置座標にて特定した動作データファイルとされる。
【0052】
本実施形態においては、前述の動作データ作成プログラム251にカメラパラメータキャリブレーションのプログラムが組み込まれ、図1のCD−ROM250に格納される。該CD−ROM250は、図11に示す基準マーカーユニット200が組み合わされたコンピュータプログラムパッケージの形で供給される。
【0053】
図12に示すように、基準マーカーユニット200は、マーカー固定用ベース202と、複数の基準マーカー201を、各々マーカー固定用ベース上の底面からの高さが定められた値となるようにマーカー固定用ベース202上にて支持するマーカー支持体203とを有する。該基準マーカーユニット200は、例えば屋内の場合は床面や、床面上に固定された基台の水平な頂面、屋外の場合は路面や地面、ないしはその上に置かれた基台の水平な頂面などを基面SPとして用い、その基面SP上にマーカー固定用ベース202を載置する。他方、撮影用実体空間の原点Oを基面SP上に適宜定める。マーカー固定用ベース202の基面上の位置F(例えば基準マーカー201の直下位置)を、原点Oを基準として測定すれば、基準マーカー201がマーカー支持体203により、マーカー固定用ベース202の底面202bからの高さが、予め定められた値(d1、d1+d2、d1+d2+d3)となるように設定されているので、高さ方向(z方向)の各基準マーカー201の位置は自動的に定まる。従って、マーカー固定用ベース202の基面SP上の設置位置Fを測定するだけで、基準マーカー201の実体マーカー位置座標が簡単に特定できる。
【0054】
図11に示すように、基準マーカーユニット200に取り付けられた基準マーカー201は、被写体を撮影する際に使用するのと同じカメラ15により、同じアングルセッティングにより撮影される。各基準マーカー201の実体マーカー位置座標は、上記のように、マーカー固定用ベース202の基面SP上での位置と、該固定用ベース202の底面202bから各基準マーカー201までの高さ位置とにより特定でき、カメラ15により撮影して得られるキャリブレーション用画像のフレーム上に表れる各基準マーカー201のフレームマーカー位置座標と、前記実体マーカー位置座標とを用いて、前述の動作データ作成プログラム251内のキャリブレーションプログラムの実行により、カメラパラメータのキャリブレーションが行なわれる。
【0055】
図15に示すように、被写体に取り付けられた複数のマーカー(各マーカーの重心位置にて実体マーカー位置座標p(x,y,z)を表す)の、実体空間内での三次元的配置状態をカメラにより撮影すると、カメラ座標系ではその画像は、カメラの結像光軸に対し垂直なフレーム平面上への二次元投影となって表れる。図15においては、カメラ光軸をカメラ座標系のZ軸に合わせ、フレーム平面を、カメラ座標系のX−Y平面(Z=0)に一致させている。この場合、各マーカー位置pの配置の、フレーム平面上への二次元投影は、元の実体空間内でのマーカーの三次元的配置を斜め方向から透視変換したものに相当し、三次元アフィン変換理論により、カメラパラメータは、下記(1)〜(3)式により与えられる。
【0056】
【数1】
【0057】
(Xc,Yc)はZ=0、つまりフレーム二次元座標に投影されたマーカー位置座標、すなわちフレームマーカー位置座標Pであり、Hcはカメラ焦点距離fと実体マーカー位置座標pの高さ方向座標値zとを用いて(2)式及び(3)式により与えられる。カメラパラメータは4行3列の行列であり、(1)式の左辺のフレームマーカー位置座標Pに関係した行ベクトルを<P>、同じく実体マーカー位置座標pに関係した右辺の行ベクトルを<p>、カメラパラメータ行列を[C]にて表せば、(1)式は(1)’式のごとく簡単に表現される。また、(1)’式の両辺に右側から[C]の逆行列[C]−1を乗ずると(1)”
式が得られる。すなわち、カメラパラメータ行列[C]が既知であり、フレームマーカー位置座標Pが動画フレームの解析結果から知れている場合は、(1)”から<p>を計算することができ、その最初の三項(x,y,z)を読み取れば、実体マーカー位置座標pを求めることができる。こうして、動画のフレーム毎に各カラーマーカーの位置を実体マーカー位置座標にて特定した動作データを作成することができる。
【0058】
次に(1)式を、カメラパラメータ行列[C]が未知である状態を前提に再考する。この場合、カラーマーカーは、(動作する)被写体に取り付けたマーカーでなく、図11に示すように、実体マーカー位置座標pが既知である基準マーカー201であり、カメラ15により撮影された画像フレーム上にて、各フレームマーカー位置座標P(被写体に取り付けるマーカーと全く同様に、その重心位置にて定義する)も特定できているものとする。(4)式に示すように、n個の複数の基準マーカー(実体マーカー位置座標:p1,p2,‥,pn)が実体空間上に配置され、(5)式に示すように、画像フレーム上にその投影点(フレームマーカー位置座標:P1,P2,‥,Pn)が表れているとすれば、そのうちの1個の基準マーカーについて知れている実体マーカー位置座標pi:(xi,yi,zi)と、フレームマーカー位置座標Pi:(Xci,Yci)とを(1)式に代入することにより、カメラパラメータ行列[C]の未知成分に関して、(6)式に示す2つの方程式が得られる。
【0059】
【数2】
【0060】
【数3】
【0061】
(1)式に示すように、カメラパラメータ行列[C]は12個の成分を含んでいるから、基準マーカー1個につき2つの方程式が得られるということは、同一平面上に存在しない6個の基準マーカーの実体マーカー位置座標pと、フレームマーカー位置座標Pとが与えられることにより、6×2=12個の方程式が得られる。従って、これらを連立させて解くことにより、カメラパラメータ行列[C]の12個の成分を一義的に定めることができる。この解は、カメラパラメータ行列[C]が定義される12次元空間内にて、各方程式が規定する12個の超平面が交わってできる交点座標により与えられる。
【0062】
しかしながら、基準マーカー201の実体マーカー位置座標pとフレームマーカー位置座標Pとは、前者は実体空間内での測定により、後者は画像フレーム上での測定によりそれぞれ決定されるものであるから、求まるカメラパラメータ行列[C]の成分もその測定誤差の影響を受ける。上記基準マーカー201の数が、数学的に最小限の個数である6個に留められていると、その誤差の影響も当然に大きくなる。従って、カメラパラメータの決定制度を向上させるには、6個を超える基準マーカー201を用いる合理的な方法を考える必要がある。6個を超えるn個の基準マーカー201を全て用いて(6)式による方程式を作ると、方程式数(2n個)が未知数である[C]の成分数(12個)を上回るから、カメラパラメータ行列[C]の解を数学的に厳密に決定することは不可能であるが、最小二乗法を用いた統計的な解の決定は依然可能である。具体的には、前述の12次元空間内において、2n個の方程式が与える各超平面からの距離が最小化される点を最小二乗法により求め、該点の12次元座標値をカメラパラメータ行列[C]の成分として求めるのである。
【0063】
(1)式においては、カメラパラメータ行列[C]の成分のうちC34と、係数Hcとが、いずれも実体マーカー位置座標系とフレームマーカー位置座標系との間の拡大・縮小を表すことが三次元アフィン変換理論によりわかっているので、その一方を定数として固定しても数学的には同値である。そこで、C34を「1」とすれば、n個の基準マーカーが与える前述の2n個の方程式は未知数が1個減り、行列を用いて(7)のように表すことができる。
【0064】
【数4】
【0065】
上記(7)式に表れる<C>はカメラパラメータベクトルであり、カメラパラメータ行列[C]の成分のうちC34を除いた11個を成分とする列ベクトルである。該カメラパラメータベクトル<C>を最小二乗解の意味で解くと、その解は下記(5)式を満足するものであることがわかっている。従って、該(5)式よりカメラパラメータベクトル<C>の各成分を決定することができ、ひいてはカメラパラメータ行列[C]を決定することができる。
【0066】
【数5】
【0067】
以上説明したごとく、カメラパラメータのキャリブレーションには、同一平面上に存在しない最低でも6個の基準マーカーが必要であり、高精度なキャリブレーションを行なうにはさらに多くの基準マーカーが必要である。この場合、1つの基準マーカーユニットにより、多数の基準マーカーの三次元的な配置を一挙に形成しようとすると、マーカー支持体の形状が複雑化し、カメラによる撮影を行なったとき、マーカー支持体の影になる基準マーカーが生じやすくなる。また、マーカー支持体の寸法や方向にも狂いが生じやすくなる。これらはいずれも、正確なキャリブレーションが行ないにくくなる不具合につながる。
【0068】
そこで、図11に示すように、基準マーカーユニット200を複数用意し、基面SP上の位置が互いに異なるものとなるように、それら基準マーカーユニット200を基面SP上に一括配置して、カメラ15により各基準マーカー201の撮影を行なう方法を採用できる。複数の基準マーカー201を、基準マーカーユニット200により複数組に区分して配置することにより、マーカー支持体203の形状が複雑化したり、マーカー支持体203の寸法ないし方向の狂いによる基準マーカー201の位置決め精度の低下も生じにくくなり、上記の不具合を効果的に防止できる。
【0069】
この場合、基準マーカーユニット200としては、図12に示すように、マーカー固定用ベース202の底面からの高さが互いに異なる2以上の位置に基準マーカー201がマーカー支持体203により支持されたものを用いることができる。そして、図11に示すように、該基準マーカーユニット200を、基面SP上にて同一直線上に存在しない3つ以上の位置に配置して各基準マーカー201の撮影を行なうことが望ましい。つまり、高さ位置が異なる2以上の基準マーカー201を有した基準マーカーユニットを、基面上に3つ以上配置すれば、キャリブレーションに必要な基準マーカー数(6以上)を充足でき、かつ、3つ以上の基準マーカーユニット200に分かれることで、マーカー支持体201の複雑化や寸法ないし方向の狂いをより効果的に抑制することができる。図11の実施形態では、1つの基準マーカーユニット200に各々3つの基準マーカー201を割り当て、3台の基準マーカーユニット200により合計9個の基準マーカー201を配置できるようにしてある。また、図14は、1つの基準マーカーユニット200に各々2つの基準マーカー201を割り当て、4台の基準マーカーユニット200により合計8個の基準マーカー201を配置した例である。
【0070】
他方、図13に示すように、基準マーカーユニット200を基面SP上にて位置変更しながら、同じ基準マーカーユニット200上の基準マーカー201を(同じ)カメラ15により繰り返し撮影する方法を採用することもできる。つまり、カメラ15の仕様とアングルなどのセッティング条件が同じであれば、同じ基準マーカーユニット200を、基面SP上での位置を変えながら撮影することにより、撮影回数は増えるものの、複数の基準マーカーユニット200を一括セッティングして撮影した場合と同じ撮影情報が得られる。これにより、基準マーカーユニット200の数を減ずることができ、また、複数の基準マーカーユニット200間で影になって撮影できなくなる基準マーカー201が発生する不具合を、より効果的に防止することができる。
【0071】
この場合も、基準マーカーユニット200は、図12に示すものと同様のもの、すなわち、マーカー固定用ベース202の底面202bからの高さが互いに異なる2以上の位置に、基準マーカー201がマーカー支持体203により支持されたものを用いることが望ましい。すなわち、高さ位置が異なる2以上の基準マーカー201を有した基準マーカーユニット200を、基面SP上にて同一直線上に存在しない3以上の位置間で変更しながら各基準マーカーの撮影を行なうことにより、キャリブレーションに必要な基準マーカー数を実質的に充足でき、マーカー支持体203の構造も単純化するので、その寸法ないし方向の狂いをより効果的に抑制することができる。図13においては、図12の基準マーカーユニット200を、基面SP上にて3角形状に配置された3つの固定位置間で順次位置変更しながら、撮影を行なう例を示している(工程1→工程2→工程3)。一箇所での撮影により、3つの基準マーカー201の位置情報が撮影できるから、3回の撮影で3×3=9種類の基準マーカー201の位置情報が得られる。マーカー固定用ベース202、基準マーカー201及びマーカー支持体203は、例えば高分子材料の射出成形体として構成できる。
【0072】
図12において、マーカー支持体203は、マーカー固定用ベース202上に立設される棒状支持体203とされている。複数の基準マーカーは、該棒状支持体203の長手方向に予め定められた間隔に(d1,d2,d3)て固定することができる。棒状支持体203上に一次元的に基準マーカー201を配置した基準マーカーユニット200は、構造や形状が特に単純であり、また、水平方向にはマーカー支持体203が生じないことから、マーカー支持体203の影になる基準マーカー201が生じたり、マーカー支持体203の寸法や方向にも狂いが生じる不具合を一層効果的に防止できる。
【0073】
図12の基準マーカーユニット200は、具体的には、マーカー固定用ベース202上にベース側係合部202aが、また、基準マーカー201側に基準マーカー側係合部201aがそれぞれ設けられている。棒状支持体203は、複数の部分支持体203として長手方向に分割して形成されている。各部分支持体203の両端部に支持体側係合部203aが設けられ、それぞれベース側係合部202a又は基準マーカー側係合部201aに着脱可能に係合するようになっているものとして構成されている。棒状支持体を部分支持体203に区切って構成し、支持体側係合部203aとベース側係合部202a又は基準マーカー側係合部201aとにより、マーカー固定用ベース202あるいは基準マーカー201とに着脱可能に係合させるようにすることで、基準マーカーユニット200の分解・組立が容易になり、動作データ作成用コンピュータプログラムパッケージにおいて、分解状態でコンパクトに添付することができる。
【0074】
本実施形態では、ベース側係合部202aは、マーカー固定用ベース202に設けられたソケット部202b(この実施形態では筒状であるが、形状はこれに限定されない)の上面に開口する固定穴であり、基準マーカー側係合部201aは球状の基準マーカーの表面に開口する固定穴である。他方、支持体側係合部203aは、部分支持体203の本体部203mよりも径小に形成された嵌合突起であり、上記固定穴内に締まり嵌め形態で挿入される。また、本体部203mの端面外縁に生ずる段付き面は基準マーカー側係合部201aのストッパ面203tとされ、ベース側係合部202aないし基準マーカー側係合部201aの開口周縁部と当接するようになっている。
【0075】
以下、カメラパラメータのキャリブレーション処理の一例を、図16及び図17のフローチャートを用いて説明する。図11ないし図13に示すように、基準マーカーユニット200を用いて基準マーカー200の撮影を行い、その静止画のフレーム上にて各基準マーカーの重心位置を、被写体上のマーカーの重心位置演算と同様に演算し、フレームマーカー位置座標(Xci,Yci)として確定する。また、基準マーカーユニット200毎に、各基準マーカー201の実体空間内での位置を実測することにより実体マーカー位置座標(xi,yi,zi)を求め、フレームマーカー位置座標(Xci,Yci)と対応付けて動作データファイル252(図1)に記憶する。
【0076】
次に、図16のT1において、予め入力してあるカメラ15の焦点距離fの値を読み取り、T2で基準マーカーの番号iを1とし、T3でフレームマーカー位置座標Pi(Xci,Yci)を読み取る。T4では実体マーカー位置座標pi(xi,yi,zi)を読み取る。T5,T6では番号iをインクリメントしながらT3,T4の処理を繰り返し、全ての基準マーカーのフレームマーカー位置座標Pi及び実体マーカー位置座標piを読み出したらT7に進み、以下のカメラパラメータ演算処理に移る。
【0077】
三次元アフィン変換を用いたカメラパラメータ演算処理自体はすでに周知であるので、詳細なアルゴリズムの説明は省略するが、概略は以下の通りである。すなわち、前記(7)式の行列A、ベクトル<C>、Rを定義に従い演算・生成する。また、T8ではAの転置行列ATを演算・生成する(<C>に含まれるカメラパラメータ行列の要素は、この時点では未知数である)。そして、T9では、(8)式の左辺であるATA<C>を演算する。さらに、T10では、(8)式の右辺であるATRを演算する。そして、T11に進み、ATA<C>とATRとを比較することにより、カメラパラメータ行列の各要素を演算・決定する。得られたカメラパラメータは、図1において、カメラパラメータファイル253の形で記憶される。
【0078】
図17は、被写体の動作撮影により得られる各フレームのフレームマーカー位置座標を、上記のように求めたカメラパラメータを用いて実体マーカー位置座標に変換し、動作データとする処理の一例を示すものである。T101ではカメラパラメータベクトル<C>をカメラパラメータ行列[C]に変換し、T102ではその逆行列[C]−1を演算する。T103とT104でフレームの番号kとマーカーの番号iを初期化する。T105では、番号jのマーカーの重心位置、すなわちフレームマーカー位置座標Pj(Xcj,Ycj)を読み出し、(1)式の左辺のベクトル<P>を演算・生成する。また、T106では、既に演算してある[C]−1をベクトル<P>に乗じる。得られるベクトル<p>は、(1)”式により最初の三項が実体マーカー位置座標(x,y,z)に相当するので、T107においてこれを取り出せば着目しているマーカーの実体マーカー位置座標が得られる。上記演算を、全てのフレームの全てのマーカーについて繰り返せば(T109→T105、T111→T104)、最終的な動作データへの変換処理が終わる。
【図面の簡単な説明】
【図1】本発明の動作データ作成方法を実施するための、動作データ作成システムの電気的構成を全体的に示すブロック図。
【図2】その画像入出力部の内容を示すブロック図。
【図3】ルックアップテーブルメモリ回路の具体的な構成例を示す回路図。
【図4】二次元ルックアップテーブルのデータ内容を概念的に示す図。
【図5】画像抽出部の一例を示す回路図。
【図6】マーカー画素計数部の構成例を示す回路図。
【図7】フレームをブロック分割する例を示す概念図。
【図8】マーカー領域別の重心演算処理の流れを示すフローチャート。
【図9】マーカー領域が同一マーカーに属するか否かの判定原理を説明する図。
【図10】マーカー領域別の重心演算結果から、最終的なマーカー重心を求める処理の一例を示すフローチャート。
【図11】基準マーカーユニットを用いたカメラパラメータキャリブレーション処理の第一例を示す斜視図。
【図12】基準マーカーユニットの具体例を、分解状態と組立状態との両方により示す斜視図。
【図13】基準マーカーユニットを用いたカメラパラメータキャリブレーション処理の第二例を示す斜視図。
【図14】基準マーカーユニットを用いたカメラパラメータキャリブレーション処理の第三例を示す斜視図。
【図15】カメラ座標系と実体座標系との関係を示す説明図。
【図16】カメラパラメータキャリブレーション処理の流れの一例を示すフローチャート。
【図17】カメラパラメータを用いた動作データの変換処理の一例を示すフローチャート。
【符号の説明】
1 動作データ作成システム
4 画像入力部(マーカー指定色抽出手段)
5 画像抽出部(マーカー指定色抽出手段)
6 抽出画像データ出力制御部(フレーム分割手段)
7 マーカー画素計数部(重心演算手段)
8 ホストコンピュータ(動作データ作成手段、カメラパラメータキャリブレーション手段、重心演算手段、マーカー領域識別手段、重心統合手段、マーカー位置出力手段)
15 カラーカメラ
200 基準マーカーユニット
201 基準マーカー
201a 基準マーカー側係合部
202 マーカー固定用ベース
202a ベース側係合部
203 マーカー支持体(棒状支持体、部分支持体)
203a 支持体側係合部
250 記録媒体
Claims (9)
- 複数のカラーマーカーが設けられた被写体の動作をカメラにより撮影したカラー動画の各フレームにおいて、前記カラーマーカーの色として予め指定された色であるマーカー指定色の画素のデータを抽出し、カメラの結像光軸に対し垂直なフレーム平面上に定められた二次元座標をフレーム二次元座標として、前記カラー動画の各フレームにおいて、前記マーカー指定色を有する画素領域であるマーカー領域を見出し、各カラーマーカーの前記マーカー領域の位置座標を、前記フレーム二次元座標にて表示したマーカー位置座標であるフレームマーカー位置座標として演算する動作データ作成システムに使用され、
コンピュータを、
前記被写体が存在する撮影用実体空間内に定められた三次元座標を撮影用実体空間座標として、前記フレーム二次元座標と該撮影用実体空間座標との関係を表すカメラパラメータを用い、前記フレームマーカー位置座標を、前記撮影用実体空間座標にて表示したマーカー位置である実体マーカー位置座標に変換し、前記動画のフレーム毎に各カラーマーカーの位置を前記実体マーカー位置座標にて特定した動作データを作成する動作データ作成手段と、
前記実体マーカー位置座標が特定可能な形で前記撮影用実体空間内に配置された複数の基準マーカーを前記カメラにより撮影して得られるキャリブレーション用画像の、画像フレーム上に表れる各基準マーカーのフレームマーカー位置座標と実体マーカー位置座標とを用いて前記カメラパラメータのキャリブレーションを行なうカメラパラメータキャリブレーション手段と、
を備えた動作データ作成システムとして機能させるコンピュータプログラムを格納した記録媒体と、
前記複数の基準マーカーと、前記撮影用実体空間の予め定められた位置にそれら基準マーカーを、前記記実体マーカー位置座標が特定可能な形で固定するマーカー固定手段と、を備えた基準マーカーユニットと、
を有することを特徴とする動作データ作成用コンピュータプログラムパッケージ。 - 複数のカラーマーカーが設けられた被写体の動作をカメラにより撮影したカラー動画の各フレームにおいて、前記カラーマーカーの色として予め指定された色であるマーカー指定色の画素のデータを抽出し、
カメラの結像光軸に対し垂直なフレーム平面上に定められた二次元座標をフレーム二次元座標として、前記カラー動画の各フレームにおいて、前記マーカー指定色を有する画素領域であるマーカー領域を見出し、各カラーマーカーの前記マーカー領域の位置座標を、前記フレーム二次元座標にて表示したマーカー位置座標であるフレームマーカー位置座標として演算し、
前記被写体が存在する撮影用実体空間内に定められた三次元座標を撮影用実体空間座標として、前記フレーム二次元座標と該撮影用実体空間座標との関係を表すカメラパラメータを用い、前記フレームマーカー位置座標を、前記撮影用実体空間座標にて表示したマーカー位置である実体マーカー位置座標に変換し、前記動画のフレーム毎に各カラーマーカーの位置を前記実体マーカー位置座標にて特定した動作データを作成する動作データ作成方法において、
マーカー固定用ベースと、複数の基準マーカーを、各々前記マーカー固定用ベースの底面からの高さが定められた値となるように前記マーカー固定用ベース上にて支持するマーカー支持体と、を有する基準マーカーユニットを、前記撮影用実体空間内に予め定められた基面上に、前記マーカー固定用ベースの該基面上での位置が特定可能な形で配置し、
該基準マーカーユニットに取り付けられた前記基準マーカーをカメラにより撮影する一方、前記マーカー固定用ベースの前記基面上での位置と、該固定用ベースの底面から各基準マーカーまでの高さ位置とにより、各基準マーカーの実体マーカー位置座標を求め、前記撮影により得られるキャリブレーション用画像のフレーム上に表れる各基準マーカーのフレームマーカー位置座標と前記実体マーカー位置座標とを用いて前記カメラパラメータのキャリブレーションを行なうことを特徴とする動作データ作成方法。 - 前記基準マーカーユニットを複数用意し、前記基面上の位置が互いに異なるものとなるように、それら基準マーカーユニットを前記基面上に一括配置して、前記カメラにより各基準マーカーの撮影を行なう請求項2記載の動作データ作成方法。
- 前記基準マーカーユニットとして、前記マーカー固定用ベースの底面からの高さが互いに異なる2以上の位置に前記基準マーカーが前記マーカー支持体により支持されたものを用い、該基準マーカーユニットを前記基面上にて、同一直線上に存在しない3つ以上の位置に配置して各基準マーカーの撮影を行なう請求項3記載の動作データ作成方法。
- 前記基準マーカーユニットを前記基面上にて位置変更しながら、同じ基準マーカーユニット上の基準マーカーを前記カメラにより繰り返し撮影する請求項2記載の動作データ作成方法。
- 前記基準マーカーユニットとして、前記マーカー固定用ベースの底面からの高さが互いに異なる2以上の位置に前記基準マーカーが前記マーカー支持体により支持されたものを用い、該基準マーカーユニット位置を、記基面上にて同一直線上に存在しない3以上の位置間で変更する請求項5記載の動作データ作成方法。
- 請求項2ないし6のいずれか1項に記載の動作データ作成用方法に用いる基準マーカーユニットであって、
マーカー固定用ベースと、複数の基準マーカーを、各々前記マーカー固定用ベース上の底面からの高さが定められた値となるように前記マーカー固定用ベース上にて支持するマーカー支持体と、を有することを特徴とする基準マーカーユニット。 - マーカー支持体は、前記マーカー固定用ベース上に立設される棒状支持体であり、前記複数の基準マーカーは該棒状支持体の長手方向に予め定められた間隔にて固定されている請求項7記載の基準マーカーユニット。
- 前記マーカー固定用ベース上にベース側係合部が、また、前記基準マーカー側に基準マーカー側係合部がそれぞれ設けられる一方、前記棒状支持体は、複数の部分支持体として長手方向に分割して形成され、各部分支持体の両端部に支持体側係合部が設けられ、それぞれ前記ベース側係合部又は基準マーカー側係合部に着脱可能に係合するようになっている請求項8記載の基準マーカーユニット。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002382020A JP2004212213A (ja) | 2002-12-27 | 2002-12-27 | 動作データ作成用コンピュータプログラムパッケージ、動作データ作成方法及び基準マーカーユニット |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002382020A JP2004212213A (ja) | 2002-12-27 | 2002-12-27 | 動作データ作成用コンピュータプログラムパッケージ、動作データ作成方法及び基準マーカーユニット |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004212213A true JP2004212213A (ja) | 2004-07-29 |
Family
ID=32817762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002382020A Pending JP2004212213A (ja) | 2002-12-27 | 2002-12-27 | 動作データ作成用コンピュータプログラムパッケージ、動作データ作成方法及び基準マーカーユニット |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004212213A (ja) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010223909A (ja) * | 2009-03-25 | 2010-10-07 | Fuji Xerox Co Ltd | 位置・姿勢認識方法、部品把持方法、部品配置方法、部品組立方法、位置・姿勢認識装置、部品把持装置、部品配置装置、および部品組立装置 |
WO2011014340A3 (en) * | 2009-07-31 | 2011-04-28 | Lightcraft Technology, Llc | Methods and systems for calibrating an adjustable lens |
JP2012057967A (ja) * | 2010-09-06 | 2012-03-22 | Nippon Signal Co Ltd:The | カメラ校正装置 |
JP2012181063A (ja) * | 2011-02-28 | 2012-09-20 | Sogo Keibi Hosho Co Ltd | 計算装置、計算方法及び計算プログラム |
JP2012252601A (ja) * | 2011-06-03 | 2012-12-20 | Nippon Telegr & Teleph Corp <Ntt> | 画像追跡装置及び画像追跡方法 |
JP2013079854A (ja) * | 2011-10-03 | 2013-05-02 | Topcon Corp | 3次元計測システム及び3次元計測方法 |
CN103674057A (zh) * | 2012-09-11 | 2014-03-26 | 北京航天计量测试技术研究所 | 带有反射球的标准球杆及其对相机外部参数的标定方法 |
JP5999802B1 (ja) * | 2014-11-21 | 2016-09-28 | 株式会社ネクスト | 画像処理装置および方法 |
KR101758130B1 (ko) * | 2016-07-08 | 2017-07-17 | 중앙대학교 산학협력단 | 카메라 외부 파라미터 계산을 위한 볼마커 어셈블리 |
KR20170003747U (ko) * | 2016-04-21 | 2017-10-31 | 한국전자통신연구원 | 카메라 위치 교정을 위한 탈착식 입력장치 |
KR20180044609A (ko) * | 2016-10-24 | 2018-05-03 | 한국항공우주연구원 | 카메라 캘리브레이션 시스템 및 그 동작 방법 |
WO2023013171A1 (ja) * | 2021-08-02 | 2023-02-09 | ミネベアミツミ株式会社 | 距離推定装置、アンテナ装置、給電システム、給電装置、及び給電方法 |
WO2023013160A1 (ja) * | 2021-08-02 | 2023-02-09 | ミネベアミツミ株式会社 | 距離推定装置、アンテナ装置、給電システム、給電装置、及び給電方法 |
-
2002
- 2002-12-27 JP JP2002382020A patent/JP2004212213A/ja active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010223909A (ja) * | 2009-03-25 | 2010-10-07 | Fuji Xerox Co Ltd | 位置・姿勢認識方法、部品把持方法、部品配置方法、部品組立方法、位置・姿勢認識装置、部品把持装置、部品配置装置、および部品組立装置 |
WO2011014340A3 (en) * | 2009-07-31 | 2011-04-28 | Lightcraft Technology, Llc | Methods and systems for calibrating an adjustable lens |
US8310663B2 (en) | 2009-07-31 | 2012-11-13 | Lightcraft Technology, Llc | Methods and systems for calibrating an adjustable lens |
JP2012057967A (ja) * | 2010-09-06 | 2012-03-22 | Nippon Signal Co Ltd:The | カメラ校正装置 |
JP2012181063A (ja) * | 2011-02-28 | 2012-09-20 | Sogo Keibi Hosho Co Ltd | 計算装置、計算方法及び計算プログラム |
JP2012252601A (ja) * | 2011-06-03 | 2012-12-20 | Nippon Telegr & Teleph Corp <Ntt> | 画像追跡装置及び画像追跡方法 |
JP2013079854A (ja) * | 2011-10-03 | 2013-05-02 | Topcon Corp | 3次元計測システム及び3次元計測方法 |
CN103674057A (zh) * | 2012-09-11 | 2014-03-26 | 北京航天计量测试技术研究所 | 带有反射球的标准球杆及其对相机外部参数的标定方法 |
JP5999802B1 (ja) * | 2014-11-21 | 2016-09-28 | 株式会社ネクスト | 画像処理装置および方法 |
KR20170003747U (ko) * | 2016-04-21 | 2017-10-31 | 한국전자통신연구원 | 카메라 위치 교정을 위한 탈착식 입력장치 |
KR200492987Y1 (ko) * | 2016-04-21 | 2021-01-13 | 한국전자통신연구원 | 카메라 위치 교정을 위한 탈착식 입력장치 |
KR101758130B1 (ko) * | 2016-07-08 | 2017-07-17 | 중앙대학교 산학협력단 | 카메라 외부 파라미터 계산을 위한 볼마커 어셈블리 |
KR20180044609A (ko) * | 2016-10-24 | 2018-05-03 | 한국항공우주연구원 | 카메라 캘리브레이션 시스템 및 그 동작 방법 |
KR101882092B1 (ko) * | 2016-10-24 | 2018-08-24 | 한국항공우주연구원 | 카메라 캘리브레이션 시스템 및 그 동작 방법 |
WO2023013171A1 (ja) * | 2021-08-02 | 2023-02-09 | ミネベアミツミ株式会社 | 距離推定装置、アンテナ装置、給電システム、給電装置、及び給電方法 |
WO2023013160A1 (ja) * | 2021-08-02 | 2023-02-09 | ミネベアミツミ株式会社 | 距離推定装置、アンテナ装置、給電システム、給電装置、及び給電方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110568447B (zh) | 视觉定位的方法、装置及计算机可读介质 | |
KR102487546B1 (ko) | 개선된 카메라 캘리브레이션 시스템, 타겟 및 프로세스 | |
JP4532982B2 (ja) | 配置情報推定方法および情報処理装置 | |
CN105026997B (zh) | 投影系统、半导体集成电路及图像修正方法 | |
JP6687204B2 (ja) | 投影イメージ生成方法およびその装置、イメージピクセルと深度値との間のマッピング方法 | |
Wu et al. | DodecaPen: Accurate 6DoF tracking of a passive stylus | |
US9524436B2 (en) | Augmented reality camera registration | |
US8970624B2 (en) | Entertainment device, system, and method | |
CN110230983B (zh) | 抗振式光学三维定位方法及装置 | |
CN104574350B (zh) | 三维数据撷取方法及其系统 | |
WO2019049331A1 (ja) | キャリブレーション装置、キャリブレーションシステム、およびキャリブレーション方法 | |
KR102397343B1 (ko) | 비디오에서 가상 오브젝트를 블러링하기 위한 방법 및 디바이스 | |
JP2004212213A (ja) | 動作データ作成用コンピュータプログラムパッケージ、動作データ作成方法及び基準マーカーユニット | |
CN109559349A (zh) | 一种用于标定的方法和装置 | |
JP7164968B2 (ja) | 画像処理装置、画像処理装置の制御方法及びプログラム | |
CN110648274B (zh) | 鱼眼图像的生成方法及装置 | |
JP6894707B2 (ja) | 情報処理装置およびその制御方法、プログラム | |
JP2010179403A (ja) | ロボットシミュレーション画像表示システム | |
JP2012185772A (ja) | 非固定ズームカメラを用いた自由視点映像の合成画質高精度化方法およびプログラム | |
JP2002236909A (ja) | 画像データ処理方法およびモデリング装置 | |
JP7403967B2 (ja) | 情報処理装置、映像生成装置、画像処理システム、それらの制御方法及びプログラム | |
KR20190130407A (ko) | 전방위 카메라의 캘리브레이션을 위한 장치 및 방법 | |
EP3216005B1 (en) | Image processing device and method for geometric calibration of images | |
JP2010239515A (ja) | カメラキャリブレーションの算出方法 | |
JP6906177B2 (ja) | 交点検出装置、カメラ校正システム、交点検出方法、カメラ校正方法、プログラムおよび記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080318 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080717 |