(57)【特許請求の範囲】
【請求項１】
複数のカラーマーカが設けられた被写体の動作を撮影するカラーカメラと、
前記カラーカメラからのカラー映像出力に基づく動画データの各フレームにおいて、前記カラーマーカの色として予め指定された色（以下、マーカ指定色という）の画素のデータを抽出するマーカ指定色抽出手段と、
前記動画データの各フレームを複数のブロックに分割するフレーム分割手段と、
前記マーカ指定色を有する画素領域（以下、マーカ領域という）を前記ブロック毎に見出して、該マーカ領域の重心位置を演算する重心演算手段と、
各ブロックのマーカ領域のうち同一マーカに関係したものを、前記重心演算結果に基づいて識別するマーカ領域識別手段と、
該識別された同一マーカに関係する各マーカ領域の重心演算結果に基づいて、それらマーカ領域の統合体の重心位置を演算する重心統合手段と、
前記統合体の重心位置を、被写体の動作データであるマーカ位置データとして出力するマーカ位置出力手段と、
を備えたことを特徴とする動作データ作成システム。
【請求項２】
前記マーカ指定色抽出手段は、
前記カラーカメラからの映像出力に基づくデジタルカラー映像信号を、前記マーカ指定色を有したマーカ領域の信号と、前記マーカ指定色以外を有する非マーカ領域の信号とにデコードし、これを画素信号として出力する画素信号出力回路を有し、
前記フレーム分割手段は、
前記画素信号を指定されたアドレスに画素データとして格納するフレームメモリと、
前記画素データの格納に際して、該画素データを書き込むべき画素アドレスを生成して前記フレームメモリに入力する書き込み側画素アドレス生成回路と、
前記フレームメモリに記憶された画素データの読み出しに際して、該画素データを読み出すべき画素アドレスを生成して前記フレームメモリに入力するためのものであって、前記画素データを読み出すべきブロックのアドレス（以下、ブロックアドレスという）を生成して前記フレームメモリに入力するブロックアドレス生成回路と、同じく該ブロックアドレスが指定したブロック内にて読み出すべき画素データの画素アドレスを生成するブロック内画素アドレス生成回路とを含む読み出し側画素アドレス生成回路と、
を有する請求項１記載の動作データ作成システム。
【請求項３】
前記画素信号出力回路は、前記デジタルカラー映像信号の前記デコード処理を行なうルックアップテーブルを有する請求項２記載の動作データ作成システム。
【請求項４】
前記ルックアップテーブルは、ＲＧＢ信号として入力される前記デジタルカラー映像信号を、入力される当該デジタルカラー映像信号よりもビット数の減じられた色信号として出力するものである請求項３記載の動作データ作成システム。
【請求項５】
前記書き込み側画素アドレス生成回路、前記読み出し側画素アドレス生成回路に含まれる前記ブロックアドレス生成回路及び前記ブロック内画素アドレス生成回路は、それぞれ画面をＸ−Ｙ走査するためのＸカウンタ及びＹカウンタを含むＸ−Ｙカウンタ回路により構成され、
前記ブロックアドレス生成回路は前記ブロック内画素アドレス生成回路の後段側に縦続接続されてなり、当該ブロック内画素アドレス生成回路の桁上がり信号を受けてカウントアップするものである請求項２ないし４のいずれか１項に記載の動作データ作成システム。
【請求項６】
前記書き込み側画素アドレス生成回路と前記フレームメモリとの間、及び前記読み出し側画素アドレス生成回路と前記フレームメモリとの間に、前記フレームメモリへのアドレス入力を待機させるためのアドレスバッファが設けられている請求項２ないし５のいずれか１項に記載の動作データ作成システム。
【請求項７】
前記重心演算手段は、
前記マーカ領域に含まれる画素のＸ方向座標和ＳＸ、Ｙ方向座標和ＳＹ、及び画素総数和ＮＤを、前記ブロック毎に前記ブロックアドレス及びマーカ指定色アドレスと対応付けて記憶する個別のデータメモリと、
各データメモリに前記ブロックアドレス及びマーカ指定色アドレスを入力するアドレス入力部と、
各データメモリに対応して設けられ、個々のデータメモリに格納されている前記ブロック及びマーカ指定色毎のＸ方向座標和ＳＸ、Ｙ方向座標和ＳＹ、又は画素総数和ＮＤの出力に、新たに入力されたＸ方向座標値、Ｙ方向座標値、又は画素計数信号を加算して、その加算値を各データメモリに上書き入力する加算器とを有する請求項１ないし６のいずれか１項に記載の動作データ作成システム。
【請求項８】
前記マーカ領域識別手段は、同一マーカ指定色に関して前記マーカ領域が存在する互いに隣接したブロック（以下、隣接マーカブロックという）を見出し、それら隣接マーカブロックの一方について、そのブロックのマーカ領域の画素総数和ＮＤに基づき当該マーカ領域の寸法を反映した寸法パラメータを算出し、該マーカ領域の重心位置と前記算出された寸法パラメータとに基づいて、他方のブロックのマーカ領域が同一マーカに基づくものであるか否かを判定する請求項１ないし７のいずれか１項に記載の動作データ作成システム。
【請求項９】
前記マーカ領域識別手段は、前記寸法パラメータが表す前記マーカ領域の寸法と、前記重心位置から前記他方のブロックとの境界までの距離との大小関係に基づいて前記判定を行なう請求項８記載の動作データ作成システム。
【請求項１０】
前記寸法パラメータは、前記マーカ領域と同一面積を有する円の半径が採用される請求項８又は９に記載の動作データ作成システム。
【発明の詳細な説明】
【０００１】
本発明は、被写体に形成されたカラーマーカの動作軌跡を検出し、その検出情報に基づいて被写体の動作データを作成する動作データ作成システム（いわゆるモーションキャプチャシステム）に関するものである。
【０００２】
【従来の技術】
近年、アニメーションやバーチャルリアリティ、あるいはコンピュータグラフィックス（ＣＧ）を利用した映画等の分野において、合成した動画キャラクタに実際の人間の動作データを入力して、よりリアルな動画の動きを実現する技術が普及しつつある。この場合、身体中に多数のセンサを取り付けた人間が演技した動きをカメラ撮影し、その撮影された動画像上でのセンサの動きを解析して動作データを作成する、いわゆるモーションキャプチャシステムと呼ばれるシステムが使用される。このようなデータを、ＣＧ等で作成したキャラクタに適用することにより、例えば実際には存在しないモンスターと人間が格闘するようなシーンもリアルな動きで表現することができる。
【０００３】
このようなモーションキャプチャシステムにおけるデータの入力には、例えば装着した磁気センサによって空間上の位置やねじれの方向を三次元計測する方法がある。しかしながら、この方法では、磁気センサを用いるのでシステムが複雑化する問題がある。
【０００４】
そこで、上述のような問題点を解消すべく、個々のターゲットをカラーマーカとして被写体に取り付け、これらのカラーマーカをビデオカメラで撮影しながらモニタ用としてのビデオレコーダーを介して、そのマーカの色と形状の情報信号をビデオボードに抽出し、例えば、その情報信号に基づいて重心位置を求めていくことで、測定対象部位の二次元的あるいは三次元的な動きを知るようにしたモーションキャプチャシステムが、特開平４−９３７０４号、特開平６−５０９８３号、特開平１１−８３４４０号及び特開２０００−１６３５９６号の各公報に開示されている。
【０００５】
【発明が解決しようとする課題】
ところで、映画などでのＣＧの採用が進むにつれ、ＣＧ映像の動作のリアリティに対する要求はますます高まりつつある。このためには、モーションキャプチャにより動作データをより緻密に取り込む必要が生ずる。具体的には、細部の動き等をより正確にかつスムーズにトレースするために、被写体に取り付けるカラーマーカの数を増やすことが求められる。
【０００６】
しかしながら、取り付けられるカラーマーカは、当然に異なる色に着色されていないとモーションキャプチャ側ではその識別ができない。従って、カラーマーカは全て異なる色とする必要があるが、マーカの数が増えると近接した色のマーカを採用せざるを得なくなり、照明光量や反射ノイズ等の影響により誤検出の危険性が増大する。また、識別すべき色が増えるということは、当然のことながら取り扱う色データのビット数が増加することにつながり、データ処理装置の負担が増えるので、一連の動画フレームについて動作データを取得するのに膨大な処理時間を要するようになる。また、特開平１１−８３４４０号及び特開２０００−１６３５９６号に開示されたリアルタイムによる動作データの作成も、色データの肥大により処理速度が低下すると不可能になる問題がある。なお、特開２０００−１６３５９６号のように、１つのマーカを複数色に塗り分けて識別可能なマーカパターンを増加させる方法もあるが、識別のための処理アルゴリズムが複雑化することは自明であり、リアルタイム処理における追従性等に問題が生ずることは避けがたい。このように、従来のモーションキャプチャにおいては、一度に取付け可能なマーカ数が限られているために、動作トレースの精度を上げたくとも上げられない事情があった。
【０００７】
本発明の課題は、カラーマーカの設定色を少数に留めつつ、被写体に取付け可能なマーカ数を従来よりも大幅に増加させることができ、ひいては動作トレースの精度を格段に向上させることができる動作データ作成システムを提供することをにある。
【０００８】
【課題を解決するための手段及び作用・効果】
上記の課題を解決するために、本発明の動作データ作成システムは、
複数のカラーマーカが設けられた被写体の動作を撮影するカラーカメラと、
カラーカメラからのカラー映像出力に基づく動画データの各フレームにおいて、カラーマーカの色として予め指定された色（マーカ指定色）の画素のデータを抽出するマーカ指定色抽出手段と、
動画データの各フレームを複数のブロックに分割するフレーム分割手段と、
マーカ指定色を有する画素領域（マーカ領域）をブロック毎に見出して、該マーカ領域の重心位置を演算する重心演算手段と、
各ブロックのマーカ領域のうち同一マーカに関係したものを、前記重心演算結果に基づいて識別するマーカ領域識別手段と、
該識別された同一マーカに関係する各マーカ領域の重心演算結果に基づいて、それらマーカ領域の統合体の重心位置を演算する重心統合手段と、
統合体の重心位置を、被写体の動作データであるマーカ位置データとして出力するマーカ位置出力手段と、
を備えたことを特徴とする。
【０００９】
上記の構成においては、動画データの各フレームを複数のブロックに分割し、１つのマーカの画像領域を複数ブロックにまたがる領域として捉え、ブロックのマーカ領域を個別に抽出するとともに、マーカ領域毎に重心位置を求める。それらマーカ領域が同一マーカに由来したものであれば、画像上に現われるマーカ領域は、例えば隣接するブロックなど必ず近接して現われ、別のマーカに由来したものであれば一定以上の距離を隔てて現われる。従って、各ブロックのマーカ領域は、同一マーカに関係したものであるか否かを、マーカ領域毎の重心演算結果に基づいて識別することができる。識別された各マーカ領域の重心演算結果を用いれば、ブロック分割しないマーカ画像の重心位置（つまり、マーカ領域の統合体の重心位置）は簡単に演算できる。
【００１０】
従来の動作データ作成システム（モーションキャプチャ）においては、同一色のマーカを被写体に複数取り付けると、色抽出によりマーカを識別しようとした場合、それら複数のマーカはどんなに遠くに離れていても同じマーカに属するものとみなされるから、マーカの個々の重心を合成した演算結果しか得られなかった。しかし、上記の方式によると、動画データのフレームがブロックに分割されることで、離れたマーカ領域と近接したマーカ領域とを、それらが現われるブロック位置を媒介として容易に区別でき、同一色の別のマーカであっても分離して識別できる。つまり、同じ色のカラーマーカを複数被写体に取り付けることが可能となり、カラーマーカの設定色を少数に留めつつ、被写体に取付け可能なマーカ数を従来よりも大幅に増加させることができる。これにより、動作トレースの精度を格段に向上させることが可能となる。例えば、従来は異色識別を確実に行なうために、使用可能なマーカ色つまりマーカ個数は、１６個程度が限度であったが、本発明では、同じ色のマーカを６個使用すれば、８色程度の識別で６×８＝４８個ものマーカが使用可能となる。
【００１１】
【発明の実施の形態】
図１は、本発明の一実施例たる動作データ作成システム１の電気的構成を示す全体ブロック図である。動作データ作成システム１は、大きく分けて画像入力部４、画像抽出部５、抽出画像データ出力制御部６及びマーカ画素計数部７の４つの部分を含むハードウェアシーケンス部２と、Ｉ／Ｆボード９を介してこれらが接続されるアニメーションやＣＧ動画等を作成するためのホストコンピュータ８とを有する。また、ハードウェアシーケンス部２には、画素転送クロックパルスを与えるクロックパルス発生回路が組み込まれた、画像入出力部４における各種制御を司るシステムコントローラ３が設けられている。ホストコンピュータ８は、ＣＰＵ、ＲＯＭ、ＲＡＭを有する本体１１と、モニタ１０及びハードウェアシーケンス部２からの重心演算用データや最終的に作成された動作データを記憶するＣＧデータ記憶部（ハードディスクドライブ、ＭＯ−ドライブ、ＣＤ−Ｒドライブ、ＤＶＤ−ＲＡＭドライブ等で構成される）１２を有する。
【００１２】
動作データ作成システム１は、モーションキャプチャとして動作データを生成するために、人間や動物などの被写体にカラーマーカ（以下、単にマーカともいう）を取り付けてこれを撮影する。カラーマーカとしては、例えば全体が単色に着色されたものを使用し、取り込むべき動作に関与する必要部位にピン止めあるいは面ファスナ等により適宜取り付ける。このように複数のカラーマーカが設けられた被写体の動作を、図２のカラーカメラ１５により撮影する。
【００１３】
そして、その基本機能を以下のような実現手段により構成するものである。
・マーカ指定色抽出手段：カラーカメラ１５からのカラー映像出力に基づく動画データの各フレームにおいて、カラーマーカの色として予め指定された色（マーカ指定色）の画素のデータを抽出する。
・フレーム分割手段：動画データの各フレームを、図７に示すように複数のブロックに分割する、
・重心演算手段：ブロック毎にマーカ指定色を有する画素領域（以下、マーカ領域という）を見出して、該マーカ領域の重心位置を演算する。
・マーカ領域識別手段：各ブロックのマーカ領域のうち同一マーカに関係したものを識別する。
・重心統合手段：該識別された同一マーカに関係する各マーカ領域の重心演算結果に基づいて、それらマーカ領域の統合体の重心位置を演算する。
・マーカ位置出力手段：統合体の重心位置を、被写体の動作データであるマーカ位置データとして出力する。
これら個々の機能実現手段が、どのようなハードウェアあるいはソフトウェア構成により実現されるかの一例を、以下に詳細に説明する。
【００１４】
まず、採用するマーカであるが、例えば２以上のマーカの取付け位置が十分に離れており、かつ、動作中もそれらが過度に近接する惧れがない場合は、それらのマーカを互いに同じマーカ指定色に設定できる。例えば人体の全体動作を取得する場合、頭と胴体、腕と足などの位置関係にあるマーカ同士である。他方、上腕と下碗、両足、片手の複数の指同士など、過剰な近接が生じやすくなると思われる部位同士は、異なる色のマーカを装着することが望ましい（特に、明度や色相においてなるべく離れた色を用いると、照明や反射等の影響も受けにくくできる）。
【００１５】
次に、マーカ指定色抽出手段の中核をなすのは、図１の画像入力部４及び画像抽出部５である。図２は、その詳細を示すブロック図である。この部分は、カラーカメラ１５からの映像出力に基づくデジタルカラー映像信号ＤＳを、マーカ指定色を有したマーカ領域の信号と、マーカ指定色以外を有する非マーカ領域の信号とにデコードし、これを画素信号ＭＫＤとして出力する画素信号出力回路として構成されている。このようにすることで、出力される全ての画素信ＭＫＤは、個々のマーカ指定色の画素かマーカ指定色以外の画素のいずれかに属するものとなり、以下の画素分離に係るデジタル処理を格段に容易に進めることができる。カラーカメラ１５からの映像出力は、例えばカラーＣＣＤセンサからのアナログＲＧＢ信号であるが、本実施形態では、これを個別のＡ／Ｄ変換器１６，１７，１８によりデジタルＲＧＢ信号ＤＳに変換しており、これらカラーカメラ１５とＡ／Ｄ変換器１６，１７，１８とが画像入力部４を構成する。
【００１６】
また、画像抽出部５（画素信号出力回路）は、デジタルカラー映像信号のデコード処理を行なうルックアップテーブル（以下、ＬＵＴと略記する）１９，２０を有する。ルックアップテーブルの使用により、入力されるデジタルカラー映像信号ＤＳの上記デコード処理を、ハードウェアロジックにより迅速に実行できる。本実施形態において、ＬＵＴ１９，２０は、ＲＧＢ信号（本実施形態では各８ビット）として入力されるデジタルカラー映像信号ＤＳを、入力される当該デジタルカラー映像信号ＤＳよりもビット数の減じられた色信号ＭＫＤ（本実施形態では４ビット）として出力するものとして構成されている。非マーカ領域により１色が占有されることを考慮して、２４−１＝１５通りのマーカ色の採用が可能である。
【００１７】
ＲＧＢ信号は３次元データであるが、図２の構成では、二次元ＬＵＴの組合せにより回路全体を安価に構成するため、前段側のＬＵＴ１９により２色（１６ビット）の信号成分（ここではＲとＢであるが、これに限られるものではない）をデコード（８ビット）する第一のデコード処理を経た後、そのデコード後のＲ−Ｂ信号をさらに後段側のＬＵＴ２０により、残余の１色（ここではＧ）と組合せてデコードする第二のデコード処理（４ビット）を行なうようにしている。
【００１８】
なお、ＲＧＢ信号に代えて輝度信号Ｙと、ＲＧＢのいずれか２色とその輝度Ｙとの色差信号を用いたり、あるいはその色差信号をさらに色相及び彩度の信号に変換した後、上記と同様のデコード処理を行なってもよい。これは、特開平１１−８３４４０号及び特開２０００−１６３５９６号の各公報に開示されている方式であり、近接した色彩のマーカの識別に問題が生ずる場合に、照明むらや反射などによるかく乱の影響を軽減する上で効果を発揮する。しかしながら、色差信号を生成するために余分な回路を付加しなければならないデメリットもある。本発明によると、色による識別が本質的に不可能な同一色マーカ同士であっても、前記ブロック分割方式を採用することで、画素平面上にて問題なく識別できるから、安価なＲＧＢデコード方式でも十分に目的を達成できる利点がある。
【００１９】
図２の各ＬＵＴ回路１９又は２０は同一のハードウェア構成を有し、これをより詳細に示したものが図３である。また、図４は、そのＬＵＴ回路のメモリセル部の一例をごく概念的に示すものであり、１６ビットの入力データをデータＡ及びデータＢとして、それらの内容に対応したアドレス線の選択により、対応するセルの登録データＤＲ11，ＤＲ12‥‥等のいずれかが読み出される二次元テーブルとなっている。図３でデータＡ及びデータＢの各入力信号は、ＬＵＴ回路１９ではＲとＢ、ＬＵＴ回路２０ではＲ−ＢとＧに相当するもので、それがＯＤ信号となって出力される。ＬＵＴメモリ１６０には、ＬＵＴメモリコントローラ１５９（以下、ＬＭＣＮと記す：この実施例では、図１のシステムコントローラ３に組み込まれている）が付属し、また、そのデータの入力側に、Ｄ型フリップフロップ回路１６１，１６２が、また、出力側にＤ型フリップフロップ回路１６４が設けられている（以下、本明細書ではＤ型フリップフロップ回路のことをＤラッチと称する）。これらのＤラッチは、いずれもアウトプットコントロール端子（インヒビット入力端子）ＯＣを有するものが使用されている。
【００２０】
ホストコンピュータ８からのデータバスは、双方向バストランシーババッファ１６６を介してＬＵＴメモリ１６０に接続される。また、ホストコンピュータ８からのアドレスバスは、バスバッファ１６８，１６９を介してＬＵＴメモリ１６０のデータＡ用のアドレスとデータＢ用のアドレスとにそれぞれつながっている。
【００２１】
ＬＵＴ回路に初期設定を行なう場合、ホストコンピュータ８はＬＵＴメモリ制御信号を用いてＬＵＴメモリコントローラ１５９にバス要求命令を送る。これに従い、ＬＵＴメモリコントローラ１５９は、Ｄラッチ１６１，１６２，１６４のアウトプットコントロール信号（ＯＣ）を制御し、Ｄラッチ１６１，１６２，１６４の出力を非能動状態とするとともに、双方向バストランシーババッファ１６６及びバスバッファ１６８，１６９の出力イネーブル信号Ｇを制御し、これらの出力を能動状態にする。これにより、ホストコンピュータ８がＬＵＴメモリ１６０に対し読み書きができる状態になり、初期設定が行われる。
【００２２】
ＬＵＴメモリ１６０へのデータ入力終了後、ホストコンピュータ８は前記ＬＵＴメモリ制御信号を用いてＬＵＴメモリコントローラ１５９にバス解放命令（演算実行命令）を送る。これにより、ＬＵＴメモリコントローラ１５９は双方向バストランシーババッファ１６６及びバスバッファ１６８，１６９の出力イネーブル信号Ｇを制御し、Ｄラッチ１６１，１６２，１６４のアウトプットコントロール信号（ＯＣ）を制御し、Ｄラッチ１６１，１６２，１６４の出力を能動状態にする。その結果、ＬＵＴメモリ１６０への入力データＡとデータＢにより字引的に求められた演算結果がＯＤに出力されるようになる。ここで、Ｄラッチ１６１，１６２その他は処理を行なう画素の転送クロックパルスを用いてこれに同期して動作させることで、高速演算処理を実現している。なお、各ＤラッチにおけるＣＫはクロックパルス入力の端子であり、双方向バストランシーババッファ１６６のＤＩＲはバス方向制御信号入力の端子である。そして、前述の通りクロックパルスは、システムコントローラ３（図２）に組み込まれたパルス発生回路が発する画素転送クロックパルスが使用される。
【００２３】
図１に戻り、フレーム分割手段は、本実施形態では抽出画像データ出力制御部６によりハードウェア的に実現されている。これは、動作データの作成処理を、リアルタイム処理が可能となるように高速化することが狙いである。図５は、その詳細を示すものである。この回路には、画素信号を指定されたアドレスに画素データとして格納するフレームメモリ２２，２３が設けられている。フレームメモリが２系統設けられているのは、片側のメモリに画素データＭＫＤの書き込みを行なっている間に、他方のメモリからすでに書き込まれている前画面の画素データを読み出して、画像出力ＭＫとして出力することにより、絶え間なく処理が継続できるようにするためである。Ｄラッチ４４〜４７は、この書き込みと読み出しの制御を行なうために設けられたものであり、すべてインヒビット入力端子を有している。これらは、インヒビット入力端子への出力イネーブル信号ＯＥの入力（システムコントローラ３により制御される）により、書き込み側のＤラッチ４４，４７と読み出し側のＤラッチ４５，４６は、一方のメモリの書き込み側Ｄラッチ出力が能動化されているとき、常に他方のメモリの読み出し側Ｄラッチ出力が能動化されるよう、それぞれ交互に切り替えられる。Ｄラッチ４４〜４７はいずれもクロック端子を省略して描いており、画素クロックを受ける毎に、メモリへの書き込みもしくはメモリからの読み出しのために画素データを４ビット単位で出力する。
【００２４】
次に、抽出画像データ出力制御部６には、画素データのフレームメモリ２２，２３への格納に際して、該画素データを書き込むべき画素アドレスを生成してフレームメモリ２２，２３に入力する書き込み側画素アドレス生成回路３０が設けられている。フレームメモリ２２，２３は、それぞれ１フレーム全ブロック（つまり全画面）の画素が格納可能とされており、書き込み側画素アドレス生成回路３０はＸ−Ｙ走査により画素の格納先となるアドレスを順次フレームメモリ２２又は２３に入力する。入力先となるメモリ２２，２３の切替えは、各メモリ２２，２３に対応するバッファ４０，４２のいずれかの出力が、システムコントローラ３からの出力イネーブル信号ＯＥを受けて能動化されることにより行なわれる。
【００２５】
他方、抽出画像データ出力制御部６には、フレームメモリ２２，２３に記憶された画素データの読み出しに際して、該画素データを読み出すべき画素アドレスを生成してフレームメモリ２２，２３に入力するための、読み出し側画素アドレス生成回路３５が設けられている。読み出し側画素アドレス生成回路３５は、画素データを読み出すべきブロックのアドレス（ブロックアドレス）を生成してフレームメモリ２２，２３に入力するブロックアドレス生成回路３８，３９と、同じく該ブロックアドレスが指定したブロック内にて読み出すべき画素データの画素アドレスを生成するブロック内画素アドレス生成回路３６，３７とを含む。これにより、フレームメモリ２２，２３内の領域のうち、ブロックアドレスが指定するブロックの画素を選択的に読み出し、１ブロック分の画素のみを切り出す形で画像出力ＭＫとして出力することが可能となる。
【００２６】
書き込み側画素アドレス生成回路３０、読み出し側画素アドレス生成回路３５に含まれるブロックアドレス生成回路３８，３９及びブロック内画素アドレス生成回路３６，３７は、それぞれ画面をＸ−Ｙ走査するためのＸカウンタ３１，３６，３８及びＹカウンタ３２，３７，３９を含むＸ−Ｙカウンタ回路として構成されている。このうち、書き込み側画素アドレス生成回路３０は、飛越し走査にて出力されてくるカメラ１５（図２）からの映像信号を合成して、順次走査信号に走査変換するために、Ｘカウンタ３１とＹカウンタ３２とが互いに独立したカウンタとして構成されている。Ｙカウンタ３２は、偶数走査時と奇数走査時において互いに異なる画素アドレスを生成し、フレームメモリ２２，２３に入力する。本実施形態では、Ｘカウンタ３１が１ライン分６４０画素を入力するために１０ビット出力とされ、Ｙカウンタは４８０ライン分を入力するために９ビット出力とされている。
【００２７】
他方、読み出し側画素アドレス生成回路３５は、合成後の画面からの画素読み出しとなるので、ブロック内画素アドレス生成回路３６，３７をなすＸカウンタ３６とＹカウンタ３７、及びブロックアドレス生成回路３８，３９をなすＸカウンタ３８とＹカウンタ３９は、いずれも従属接続されるとともに、ＹカウンタがＸカウンタからの桁上がり信号を受けてカウントアップするものとなっている。また、ブロックアドレス生成回路３８，３９はブロック内画素アドレス生成回路３５，３６の後段側に縦続接続されてなり、当該ブロック内画素アドレス生成回路３５，３６の桁上がり信号を受けてカウントアップするようになっている。
【００２８】
これにより、以下のような本発明に適した出力処理が、単一のクロックパルス列によるハードウェアシーケンスによりきわめて迅速に行なわれる。すなわち、各ブロックではＸ方向（例えば左から右）の画素データが順次出力され、端まで行くとＹ方向に１画素分（例えば下側へ）移動して、再びＸ方向（例えば左から右）の画素データが順次出力される。そして、１つのブロックで画素データ出力が終了すると、次のブロックに移動して同じ処理が繰り返される。このブロックの移動もＸ方向に順次的になされ、端まで行くとＹ方向に１ブロック分移動して再びＸ方向へ移動する動作の繰り返しとされる。本実施形態では、図７に示すように、１画面がＸ方向に４０ブロック、Ｙ方向に３０ブロックの計１２００ブロックに分割されるようになっている。また、１ブロックの画素数は、Ｘ方向及びＹ方向のいずれも１６画素である。従って、ブロック内画素アドレス生成回路のＸカウンタ３６及びＹカウンタ３７の出力はいずれも４ビット、ブロックアドレス生成回路のＸカウンタ３８の出力は６ビット、同じくＹカウンタ３９の出力は５ビットである。なお、データの読み出し先となるフレームメモリ２２，２３の切替えは、各カウンタ３６〜３９のアドレス入力を切り替えることにより行なわれ、その切替えは、各メモリ２２，２３に対応するバッファ４１，４３のいずれかの出力を、システムコントローラ３からの出力イネーブル信号ＯＥを受けて能動化することにより行なわれる。
【００２９】
図１に戻り、マーカ画素計数部７は重心演算手段の要部をなすものである。図６にその回路の詳細を示す。まず、該回路には、マーカ領域に含まれる画素のＸ方向座標和ＳＸ、Ｙ方向座標和ＳＹ、及び画素総数和ＮＤを、それぞれブロック毎にブロックアドレス及びマーカ指定色アドレスと対応付けて記憶する個別のデータメモリ７０，７１，７２が設けられている。各データメモリ７０，７１，７２には、ブロックアドレス及びマーカ指定色アドレスを入力するアドレス入力部が設けられている。ブロックアドレスは、前段の抽出画像データ出力制御部６のブロックアドレス生成回路３８，３９のＸカウンタ出力ＸＢと、同じくＹカウンタ出力ＹＢとが流用されている。また、マーカ指定色アドレスは、読み出される画素データの画像出力ＭＫがマーカ色そのものを表すので、これを流用してアドレス設定を行なうとともに、画像出力ＭＫをそのままアドレス信号として用いている。
【００３０】
また、各データメモリ７０，７１，７２に対応する形で加算器５５，５６，５７が設けられている。これら加算器５５，５６，５７は、個々のデータメモリ７０，７１，７２に格納されているブロック及びマーカ指定色毎のＸ方向座標和ＳＸ、Ｙ方向座標和ＳＹ、又は画素総数和ＮＤの出力に、新たに入力されたＸ方向座標値、Ｙ方向座標値、又は画素計数信号を加算して、その加算値を各データメモリ７０，７１，７２に上書き入力するものである。
【００３１】
データメモリ７０は、指定された色のマーカ領域をなす画素のＸ方向座標和ＳＸを記憶するためのもので、画像出力ＭＫによりマーカ指定色を識別し、指定色毎に異なるＳＸの記憶エリアが確保されている（アドレスＡ１１〜Ａ１４により指定される）。また、記憶されるＳＸがどのブロックに係るものかが、ブロックアドレスＸＢ（Ａ０〜Ａ５）及びＹＢ（Ａ６〜Ａ１０）により特定され、ブロック別にＳＸが記憶される。加算器５５は、ＸＢ，ＹＢ及びＭＫにより特定されるブロック及び指定色のマーカ領域の、現在のＳＸの値をメモリ７０から読み出して、これが第一入力端子Ａに入力される一方、第二入力端子Ｂには次に加算すべき画素のＸ座標値が入力され、ＳＸに加算する。Ｘ座標値は、図５のブロック内画素アドレス生成回路のＸカウンタ３６の出力値（つまり、対応する画素のＸ方向アドレスである）を流用している。
【００３２】
なお、加算器５５とメモリ７０との間に設けられたＤラッチ６１，６２は、メモリ７０からのＳＸの読み出しと書き換えとの処理を制御するためのものであり、Ｄラッチ６２はインヒビット入力端子を有したものが使用される。そして、読み出しの際にはＤラッチ６２の出力が非能動化され、メモリ７０内のＳＸが上書き更新されないようにする。他方、書き換えの際には、Ｄラッチ６２の出力を能動化し、加算器５５の出力をメモリ７０に入力する。Ｄラッチ６１は、システムコントローラ７０からのクロックパルスを受ける毎に、メモリ７０からその時点でのＳＸの値が入力されてこれをラッチ保持し、加算器５５に向けて出力する。こうして、指定されたブロック内における指定されたマーカ色の全ての画素について、ＳＸへの新たな画素のＸ座標の加算演算が、メモリ７０内のＳＸの値を更新しながら繰り返し行なわれる。１つのブロックの加算演算が終了したら、ブロックアドレスＸＢ，ＹＢの切替えにより、次のブロックに切り替えて同じ処理を繰り返す。なお、画素の読み出しは、１ブロック内にてＸ−Ｙ走査により全ての画素について順次的に行なわれるが、個々の画素に対応してＭＫが切り替わりながら入力されるので、各画素のＸアドレスは、対応するマーカ色のエリアに分別されながら加算されることになる。つまり、画素を走査方向に順次転送しながら加算処理を並行して行なうことができるので、リアルタイム処理を行なう上で好都合である。他方、リアルタイム処理を行なわないのであれば、個々のブロック内にて、指定されたマーカ色のみを検索／加算する処理を、全てのマーカ色について繰り返す方式も採用可能である。
【００３３】
また、データメモリ７１は、指定された色のマーカ領域をなす画素のＹ方向座標和ＹＸを記憶するためのもので、データメモリ７０と同様、加算器５６とＤラッチ６３，６４が随伴している。その動作は、加算値がＹ座標（図５のブロック内画素アドレス生成回路のＹカウンタ３７の出力値を流用する）となる以外は、データメモリ７１側と動作は同じである。従って、詳細な説明は省略する。さらに、データメモリ７２は、指定された色のマーカ領域の総画素数ＮＤを記憶するものであり、データメモリ７０と同様、加算器５７とＤラッチ６５，６６が随伴している。これは、画素の座標と関係なく、その個数を計数したいので、加算値は＋１に固定されている。
【００３４】
上記のようにハードウェア的に算出されたＳＸ、ＳＹ、ＮＤを用いることにより、マーカ指定色別に各ブロックのマーカ領域の重心位置座標を（ＳＸ／ＮＤ，ＳＹ／ＮＤ）として算出できることは明らかである。この重心算出処理も、除算器を用いたハードウェア処理により行なうことができるが、その演算自体は非常に簡単なので、本実施形態ではＳＸ、ＳＹ、ＮＤの組をホストコンピュータ８に転送し、そこでマーカ指定色各ブロックのマーカ領域の重心位置座標を演算するようにしている。図８のフローチャートはその処理の流れを示すものであり、Ｓ１で着目しているブロックにつきマーカ指定色（ＭＫ）を出力し、Ｓ２〜Ｓ４で、そのカラーマーカのＳＸ、ＳＹ及びＮＤの値をリードする。そして、これを用いることにより、Ｓ５において、指定されたマーカ指定色及びブロックのマーカ領域の重心座標Ｇを演算し、マーカ指定色ＭＫ及びブロックアドレス（ＸＢ，ＹＢ）と対応付けた形で、図１のＣＧデータ記憶部１２に記憶する。この処理をすべてのブロックについて繰り返す（Ｓ６）。
【００３５】
図７は、１フレームの画像例を示している。フレームはＸ方向に４０個、Ｙ方向に３０個の計１２００個のブロックに分割されている。各ブロックを、Ｘ方向のブロック番号をｉ、Ｙ方向のブロック番号をｊとして、二次元配列Ｂｉｊにより表す。このフレーム中には第一色の３つのマーカＭ１−１、Ｍ１−２、Ｍ１−３と、第二色のマーカＭ２−１の計４つの画像領域が現われている。フレームがブロック分割されていることで、個々のマーカの画像領域は特別な場合を除き、複数ブロックにまたがって現われる。そして、上記の説明からも明らかなように、本発明のシステム１では、ブロック別にマーカ領域を個別に抽出し、マーカ領域毎に重心位置を求める。図９に示すように、マーカ領域Ａ１〜Ａ４が同一マーカに由来したものであれば、画像上に現われるマーカ領域Ａ１〜Ａ４は、互いに隣接するブロックＢ１〜Ｂ４に近接した形で現われる。他方、図７のマーカＭ１−１、Ｍ１−２、Ｍ１−３のように、別のマーカに由来したマーカ領域は、一定以上の距離を隔てて現われる。従って、各ブロックのマーカ領域は、同一マーカに関係したものであるか否かを、マーカ領域毎の重心演算結果に基づいて識別することができる。
【００３６】
本実施形態では、マーカ領域識別手段を以下のような機能を有するものとして、ホストコンピュータ８上にてソフトウェア的に実現している。すなわち、図９に示すように、同一マーカ指定色に関してマーカ領域が存在する互いに隣接したブロック（隣接マーカブロック）Ｂ１，Ｂ２を見出し、それら隣接マーカブロックの一方Ｂ１について、そのブロックＢ１のマーカ領域Ａ１の画素総数和ＮＤに基づき、当該マーカ領域Ａ１の寸法を反映した寸法パラメータｒ１を算出し、該マーカ領域Ａ１の重心位置Ｇ１と算出された寸法パラメータｒ１とに基づいて、他方のブロックＢ２のマーカ領域Ａ２が同一マーカに基づくものであるか否かを判定する。重心位置Ｇ１と寸法パラメータｒ１とを用いた単純な比較処理により、同一マーカに基づくマーカ領域であるか否かを判定することができる。
【００３７】
具体的には、寸法パラメータｒ１が表すマーカ領域Ａ１の寸法と、重心位置Ｇ１から他方のブロックＢ２との境界Σまでの距離ｄｎとの大小関係に基づいて判定を行なうことができる。ｄｎとｒ１とは直接比較を行なってもよいし、ｒ１に一定の重み計数を乗じて比較することもできる。しかし、寸法パラメータは、図９にＣ１〜Ｃ４にて示されるような、マーカ領域と同一面積を有する円（以下、等価円という：正方形あるいはそれ以上の辺数を有する正多角形を用いてもよい）の半径ｒ１を採用したとき、ｄｎとｒ１とを直接比較により同一マーカに基づくマーカ領域であるか否かを判定でき、判定制度も高めることができる。具体的には、図９（ａ）に示すように、ｄｎ≦ｒ１のときマーカ領域Ａ１，Ａ２は同一マーカに由来するものとして判定し、（ｂ）に示すように、ｄｎ＞ｒ１であれば異なるマーカに由来するものとして判定する。
【００３８】
図１０は、マーカ領域毎の重心演算結果に基づいて個々のマーカの重心位置すなわち動作データを求めるソフトウェアの処理の流れを一例として示すものである。各ブロックを前記した二次元配列Ｂｉｊにて表す。まず。Ｓ１０１では、マーカ指定色ＭＫを選択し、Ｓ１０２、Ｓ１０３では最初のブロック（図７の左上端）を指定するため、ｉ＝ｊ＝１とする。Ｓ１０４では、指定されたブロックＢｉｊ（現在はＢ１１になっている）にマーカ領域があるかどうかを確認する（ＮＤがゼロになっていないものを見出せばよい）。Ｓ１０５では、Ｓ１０５’に示すように、そのブロックＢｉｊの周囲に隣接する８ブロックを、処理の便宜を図るためにＢ１〜Ｂ８の一次元配列に変換する（画面外にはみ出すブロックもｉ，ｊの定義範囲を拡張して、仮想ブロックとして取扱い可能にしておく。ただし、その仮想ブロックは、常にＮＤがゼロである）。
【００３９】
Ｓ１０６では、それら８ブロックＢ１〜Ｂ２のうち、指定されたマーカ色のマーカ領域の存在するものを抽出する。また、Ｓ１０７において、それらマーカ領域の存在するブロックにつき、図９に示した方法に従い、画素数ＮＤから等価円半径ｒを求め、また、隣接ブロックにマーカ領域が存在していれば、マーカ領域の重心Ｇから該隣接ブロックとの境界までの距離ｄｎを算出する。そして、Ｓ１０８にて、ｒ≧ｄｎとなっている隣接ブロックを抽出し、それら隣接ブロックに統合フラグを付与する。
【００４０】
そして、Ｓ１０９では、統合フラグの確認により、抽出されたブロックのマーカ領域の重心Ｇを１つのマーカの重心として統合する演算を行なう。抽出されたブロックがｋ個であり、各マーカ領域の重心座標Ｇ及び総画素数ＮＤを（Ｘ１，Ｙ１）；ＮＤ１，（Ｘ２，Ｙ２）；ＮＤ２，‥‥，（Ｘｋ，Ｙｋ）；ＮＤｋとしたとき、統合後の重心位置（つまり統合体の重心位置）ＧｓのＸ座標Ｘｓ及びＹ座標Ｙｓは、それぞれ
Ｘｓ＝（ＮＤ１・Ｘ１＋‥＋ＮＤｋ・Ｘｋ）／（ＮＤ１＋‥ＮＤｋ）
Ｙｓ＝（ＮＤ１・Ｙ１＋‥＋ＮＤｋ・Ｙｋ）／（ＮＤ１＋‥ＮＤｋ）
により求めることができる。なお、Ｓ１０４にてマーカ領域のないブロックであった場合は、上記Ｓ１０５〜Ｓ１０９の処理をスキップする。
【００４１】
Ｓ１１０以下は、各ブロックについて上記の処理を繰り返す処理を記述したものであり、Ｓ１１０ではｉを１加算することにより、Ｘ方向にブロックを１だけ移動させる。また、Ｓ１１１でその加算後のｉがＸ方向のブロック数ｉmax（本実施形態では４０）を超えたときは、Ｓ１１３に進み、ｊを１加算してＹ方向に１ブロック分移動し、さらにｉ＝１としてＸ方向の先頭のブロックに戻る。Ｓ１１４で加算後のｊがＹ方向のブロック数ｊmax（本実施形態では３０）を超えたときは、処理終了となる。
【００４２】
移動先のブロックでは、Ｓ１１２において統合フラグの有無を確認することで、すでに重心統合済みのブロックであるか否かを確認する。統合済みならばＳ１１０に戻って次のブロックに移動する。そして、重心統合済みでないブロックが見出された時点でＳ１０４に戻り、そのブロックにつき以降の処理を繰り返す。
【００４３】
こうして演算されたマーカ（統合体）の重心位置は、フレーム毎にＣＧデータ記憶部１２（図１）に記憶され、必要に応じて読み出されて、被写体の動作データであるマーカ位置データとして出力される（つまり、ホストコンピュータ８は、マーカ位置出力手段として機能している）。
【図面の簡単な説明】
【図１】本発明の一実施例たる動作データ作成システムの電気的構成を全体的に示すブロック図。
【図２】その画像入出力部の内容を示すブロック図。
【図３】ルックアップテーブルメモリ回路の具体的な構成例を示す回路図。
【図４】二次元ルックアップテーブルのデータ内容を概念的に示す図。
【図５】画像抽出部の一例を示す回路図。
【図６】マーカ画素計数部の構成例を示す回路図。
【図７】フレームをブロック分割する例を示す概念図。
【図８】マーカ領域別の重心演算処理の流れを示すフローチャート。
【図９】マーカ領域が同一マーカに属するか否かの判定原理を説明する図。
【図１０】マーカ領域別の重心演算結果から、最終的なマーカ重心を求める処理の一例を示すフローチャート。
【符号の説明】
１  動作データ作成システム
４  画像入力部（マーカ指定色抽出手段）
５  画像抽出部（マーカ指定色抽出手段）
６  抽出画像データ出力制御部（フレーム分割手段）
７ マーカ画素計数部（重心演算手段）
８  ホストコンピュータ（重心演算手段、マーカ領域識別手段、重心統合手段、マーカ位置出力手段）
１５  カラーカメラ
【図１】
0003745306.tif 000002
【図２】
0003745306.tif 000003
【図３】
0003745306.tif 000004
【図４】
0003745306.tif 000005
【図５】
0003745306.tif 000006
【図６】
0003745306.tif 000007
【図７】
0003745306.tif 000008
【図８】
0003745306.tif 000009
【図９】
0003745306.tif 000010
【図１０】
0003745306.tif 000011