(57)【特許請求の範囲】
【請求項１】
メッシュマーカを用いたモーションキャプチャシステムであって、
メッシュマーカを構成する線の交差部分をノード、各ノードを結ぶ線をエッジとし、ノードが特徴点の位置情報を提供し、エッジが特徴点同士の結びつきを示す結合情報を提供し、
メッシュマーカを設けた対象物を撮影してメッシュマーカの二次元画像を取得する複数のカメラと、
各カメラで撮影された二次元画像からメッシュマーカのノード・エッジ情報を検出するノード・エッジ検出部と、
異なるカメラにより撮影された複数の二次元画像から検出されたノード・エッジの情報を用いてノードの三次元位置情報を求める三次元再構成部と、
を有し、
前記二次元画像中のノードをイメージノードとして定義し、前記ノード・エッジ検出部において、前記ノード・エッジ情報には、前記イメージノードの位置情報及び当該イメージノード間の結合情報が含まれ、
カメラ位置から三次元空間上のノードに向かう直線をノードベクトルとして定義すると共に、三次元空間におけるノードをサーフェスノードと定義し、前記三次元再構成部において、各サーフェスノードの三次元位置情報を複数カメラのノードベクトルの交点として求める、モーションキャプチャシステム。
【請求項２】
複数のカメラは、複数のカメラ群から構成されており、各カメラ群毎にノードの三次元位置情報を取得することを特徴とする請求項１に記載のモーションキャプチャシステム。
【請求項３】
前記各カメラ群は、隣接する一連の複数のカメラから構成されていることを特徴とする請求項２に記載のモーションキャプチャシステム。
【請求項４】
隣位のカメラ群は、少なくとも一つの共通のカメラを有していることを特徴とする請求項２，３いずれかに記載のモーションキャプチャシステム。
【請求項５】
ノード・エッジ検出部は、
原画像に鮮鋭化処理を行って得た鮮鋭画像を二値化して二値画像を得る鮮鋭化・二値化処理部と、
二値画像に対して細線化処理を行って細線画像を得る細線化処理部と、
細線画像から線の交点にあたるノードと、交点の繋がりにあたるエッジを検出するノードの位置・連結情報抽出部と、
を有することを特徴とする請求項１乃至４いずれかに記載のモーションキャプチャシステム。
【請求項６】
三次元再構成部は、既に三次元再構成されているイメージノードの結合情報を用いて、ノードベクトル同士が交わる複数のイメージノードを探索する際に、探索候補となるイメージノード数を削減するように構成されていることを特徴とする請求項１乃至５いずれかに記載のモーションキャプチャシステム。
【請求項７】
三次元再構成部は、
複数のカメラの複数のノードベクトルの交差を判定する交差判定手段を有し、該交差判定手段は、より厳格な第１の交差判定条件とより緩い第２の交差判定条件とを有し、
第１の交差判定条件により選択された交点を初期サーフェスノードとする初期サーフェスノード生成手段と、
初期サーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から、第２の交差判定条件により選択された交点をサーフェスノードとするサーフェスノード群生成手段と、
を有することを特徴とする請求項１乃至６いずれかに記載のモーションキャプチャシステム。
【請求項８】
サーフェスノード群生成手段は、さらに、生成されたサーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から、第２の交差判定条件により選択された交点をサーフェスノードとするように構成されていることを特徴とする請求項７に記載のモーションキャプチャシステム。
【請求項９】
前記交線判定条件は、ノードベクトル間の距離を判定するための閾値を含み、第１交線判定条件で用いる閾値は、第２交線判定条件で用いる閾値よりも小さい値に設定されていることを特徴とする請求項７，８いずれかに記載のモーションキャプチャシステム。
【請求項１０】
第１交線判定条件は、初期サーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応する一組あるいは複数組のノードベクトル同士も交差するかどうかの交線判定を含むことを特徴とする請求項７乃至９いずれかに記載のモーションキャプチャシステム。
【請求項１１】
前記交線判定条件は、交線数を含むことを特徴とする請求項７乃至１０いずれかに記載のモーションキャプチャシステム。
【請求項１２】
三次元再構成部は、
複数のカメラの複数のノードベクトルの中から所定の閾値以下の距離で交差する組み合わせを見つけ、その交点を初期サーフェスノードとする初期サーフェスノード生成手段と、
初期サーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から所定の閾値以下の距離で交差する複数のノードベクトルの組み合わせを見つけ、その交点をサーフェスノードとするサーフェスノード群生成手段と、
を有することを特徴とする請求項１乃至６いずれかに記載のモーションキャプチャシステム。
【請求項１３】
初期サーフェスノード生成手段は、さらに、初期サーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応する一組あるいは複数組のノードベクトル同士も交差するかどうかの判定手段を有し、それらのノードベクトル同士が所定の閾値以下の距離で交差している場合には、初期サーフェスノードを構成するノードベクトルの組み合わせが正しい組み合わせであると判定し、その交点を初期サーフェスノードとするものであることを特徴とする請求項１２に記載のモーションキャプチャシステム。
【請求項１４】
サーフェスノード群生成手段は、さらに、生成されたサーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から所定の閾値以下の距離で交差する複数のノードベクトルの組み合わせを見つけ、その交点をサーフェスノードとするように構成されていることを特徴とする請求項１２，１３いずれかに記載のモーションキャプチャシステム。
【請求項１５】
初期サーフェスノード生成手段で用いる閾値は、サーフェスノード群生成手段で用いる閾値よりも小さい値に設定されていることを特徴とする請求項１２乃至１４いずれかに記載のモーションキャプチャシステム。
【請求項１６】
三次元再構成部は、さらに、サブサーフェスノード生成手段を有し、サブサーフェスノード生成手段は、サーフェスノード群生成手段により新たなサーフェスノード群の拡大ができなくなった場合に、生成されたサーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から所定の閾値以下の距離で交差する複数かつサーフェスノードを生成するためのノードベクトル本数より少ない数のノードベクトルの組み合わせを見つけ、その交点をサブサーフェスノードとするように構成されていることを特徴とする請求項１２乃至１５いずれかに記載のモーションキャプチャシステム。
【請求項１７】
サブサーフェスノード生成手段で用いる閾値は、初期サーフェスノード生成手段で用いる閾値よりも大きい値に設定されていることを特徴とする請求項１６に記載のモーションキャプチャシステム。
【請求項１８】
初期サーフェスノード生成手段及びサーフェスノード群生成手段において、サーフェスノードは３本以上のノードベクトルが交差する交点から構成されることを特徴とする請求項１２乃至１７いずれかに記載のモーションキャプチャシステム。
【請求項１９】
複数のカメラは、複数のカメラ群から構成されており、隣位のカメラ群は互いに少なくとも一つの共通のカメラを有しており、
三次元再構成部は、
各カメラ群毎にサーフェスノードを求めるローカル三次元再構成部と、
各ローカル三次元再構成部で求めたサーフェスノードを統合するサーフェスノード統合部と、
を有することを特徴とする請求項１乃至１８いずれかに記載のモーションキャプチャシステム。
【請求項２０】
各カメラ群は３つ以上のカメラを有しており、隣位のカメラ群は互いに少なくとも２つの共通のカメラを有していることを特徴とする請求項１９に記載のモーションキャプチャシステム。
【請求項２１】
サーフェスノード統合部は、各カメラ群間において、一致したサーフェスノードを統合し、矛盾したサーフェスノードを削除するものであることを特徴とする請求項１９，２０いずれかに記載のモーションキャプチャシステム。
【請求項２２】
サーフェスノードが一致するか矛盾するかの判定は、
二つのサーフェスノード間の距離が所定の閾値以下であること、及び、
同じカメラ画像中の異なるイメージノードを利用していないこと、
の二つの条件を満たすか否かによって判定されることを特徴とする請求項２１に記載のモーションキャプチャシステム。
【請求項２３】
サーフェスノードの統合は、一致したサーフェスノード間におけるイメージノードの統合を含み、統合されたイメージノードを用いてサーフェスノードの位置を更新することを特徴とする請求項２１，２２いずれかに記載のモーションキャプチャシステム。
【請求項２４】
二つのサーフェスノードが矛盾する場合には、使用しているノードベクトルの数が多い方を残し、少ない方を削除することを特徴とする請求項２１乃至２３いずれかに記載のモーションキャプチャシステム。
【請求項２５】
サーフェスノードの統合は、最初に初期サーフェスノードから行うことを特徴とする請求項１９乃至２４いずれかに記載のモーションキャプチャシステム。
【請求項２６】
メッシュマーカを用いた光学式モーションキャプチャにおける特徴点の三次元再構成方法であって、
メッシュマーカを構成する線の交差部分をノード、各ノードを結ぶ線をエッジとし、ノードが特徴点の位置情報を提供し、エッジが特徴点同士の結びつきを示す結合情報を提供し、
複数のカメラによって、メッシュマーカを設けた対象物を撮影してメッシュマーカの二次元画像を取得する画像取得ステップと、
各カメラで撮影された二次元画像からメッシュマーカのノード・エッジ情報を検出するノード・エッジ検出ステップと、
異なるカメラにより撮影された複数の二次元画像から検出されたノード・エッジの情報を用いてノードの三次元位置情報を求める三次元再構成ステップと、
を有し、
前記二次元画像中のノードをイメージノードとして定義し、前記ノード・エッジ検出ステップにおいて、前記ノード・エッジ情報には、前記イメージノードの位置情報及び当該イメージノード間の結合情報が含まれ、
カメラ位置から三次元空間上のノードに向かう直線をノードベクトルとして定義すると共に、三次元空間におけるノードをサーフェスノードと定義し、前記三次元再構成ステップにおいて、各サーフェスノードの三次元位置情報を複数カメラのノードベクトルの交点として求める、モーションキャプチャにおける特徴点の三次元再構成方法。
【請求項２７】
複数のカメラは、複数のカメラ群から構成されており、各カメラ群毎にノードの三次元位置情報を取得することを特徴とする請求項２６に記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項２８】
前記各カメラ群は、隣接する一連の複数のカメラから構成されていることを特徴とする請求項２７に記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項２９】
隣位のカメラ群は、少なくとも一つの共通のカメラを有していることを特徴とする請求項２７，２８いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項３０】
ノード・エッジ検出ステップは、
原画像に鮮鋭化処理を行って得た鮮鋭画像を二値化して二値画像を得るステップと、
二値画像に対して細線化処理を行って細線画像を得るステップと、
細線画像から線の交点にあたるノードと、交点の繋がりにあたるエッジを検出するステップと、
を有することを特徴とする請求項２６乃至２９いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項３１】
三次元再構成ステップは、既に三次元再構成されているイメージノードの結合情報を用いて、ノードベクトル同士が交わる複数のイメージノードを探索する際に、探索候補となるイメージノード数を削減することを特徴とする請求項２６乃至３０いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項３２】
三次元再構成ステップは、
複数のカメラの複数のノードベクトルの交差を判定する交差判定手段を有し、該交差判定手段は、より厳格な第１の交差判定条件とより緩い第２の交差判定条件とを有し、
第１の交差判定条件により選択された交点を初期サーフェスノードとする初期サーフェスノード生成ステップと、
初期サーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から、第２の交差判定条件により選択された交点をサーフェスノードとするサーフェスノード群生成ステップと、
を有することを特徴とする請求項２６乃至３１いずれかに記載のモーションキャプチャシステムにおける特徴点の三次元再構成方法。
【請求項３３】
サーフェスノード群生成ステップは、さらに、生成されたサーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から、第２の交差判定条件により選択された交点をサーフェスノードとすることを特徴とする請求項３２に記載のモーションキャプチャシステムにおける特徴点の三次元再構成方法。
【請求項３４】
前記交線判定条件は、ノードベクトル間の距離を判定するための閾値を含み、第１交線判定条件で用いる閾値は、第２交線判定条件で用いる閾値よりも小さい値に設定されていることを特徴とする請求項３２，３３いずれかに記載のモーションキャプチャシステムにおける特徴点の三次元再構成方法。
【請求項３５】
第１交線判定条件は、初期サーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応する一組あるいは複数組のノードベクトル同士も交差するかどうかの交線判定を含むことを特徴とする請求項３２乃至３４いずれかに記載のモーションキャプチャシステムにおける特徴点の三次元再構成方法。
【請求項３６】
前記交線判定条件は、交線数を含むことを特徴とする請求項３２乃至３５いずれかに記載のモーションキャプチャシステムにおける特徴点の三次元再構成方法。
【請求項３７】
三次元再構成ステップは、
複数のカメラの複数のノードベクトルの中から所定の閾値以下の距離で交差する組み合わせを見つけ、その交点を初期サーフェスノードとする初期サーフェスノード生成ステップと、
初期サーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から所定の閾値以下の距離で交差する複数のノードベクトルの組み合わせを見つけ、その交点をサーフェスノードとするサーフェスノード群生成ステップと、
を有することを特徴とする請求項２６乃至３１いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項３８】
初期サーフェスノード生成ステップは、さらに、初期サーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応する一組あるいは複数組のノードベクトル同士も交差するかどうかの判定ステップを有し、それらのノードベクトル同士が所定の閾値以下の距離で交差している場合には、初期サーフェスノードを構成するノードベクトルの組み合わせが正しい組み合わせであると判定し、その交点を初期サーフェスノードとするものであることを特徴とする請求項３７に記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項３９】
サーフェスノード群生成ステップは、さらに、生成されたサーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から所定の閾値以下の距離で交差する複数のノードベクトルの組み合わせを見つけ、その交点をサーフェスノードとすることを特徴とする請求項３７，３８いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項４０】
初期サーフェスノード生成ステップで用いる閾値は、サーフェスノード群生成ステップで用いる閾値よりも小さい値に設定されていることを特徴とする請求項３７乃至３９いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項４１】
三次元再構成ステップは、さらに、サブサーフェスノード生成ステップを有し、サブサーフェスノード生成ステップは、サーフェスノード群生成手段により新たなサーフェスノード群の拡大ができなくなった場合に、生成されたサーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から所定の閾値以下の距離で交差する複数かつサーフェスノードを生成するためのノードベクトル本数より少ない数のノードベクトルの組み合わせを見つけ、その交点をサブサーフェスノードとすることを特徴とする請求項３７乃至４０いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項４２】
サブサーフェスノード生成ステップで用いる閾値は、初期サーフェスノード生成ステップで用いる閾値よりも大きい値に設定されていることを特徴とする請求項４１に記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項４３】
初期サーフェスノード生成ステップ及びサーフェスノード群生成ステップにおいて、サーフェスノードは３本以上のノードベクトルが交差する交点から構成されることを特徴とする請求項３７乃至４２いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項４４】
複数のカメラは、複数のカメラ群から構成されており、隣位のカメラ群は互いに少なくとも一つの共通のカメラを有しており、
三次元再構成ステップは、
各カメラ群毎にサーフェスノードを求めるローカル三次元再構成ステップと、
各ローカル三次元再構成部で求めたサーフェスノードを統合するサーフェスノード統合ステップと、
を有することを特徴とする請求項２６乃至４３いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項４５】
各カメラ群は３つ以上のカメラを有しており、隣位のカメラ群は互いに少なくとも２つの共通のカメラを有していることを特徴とする請求項４４に記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項４６】
サーフェスノード統合ステップは、各カメラ群間において、一致したサーフェスノードを統合し、矛盾したサーフェスノードを削除するものであることを特徴とする請求項４４，４５いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項４７】
サーフェスノードが一致するか矛盾するかの判定は、
二つのサーフェスノード間の距離が所定の閾値以下であること、及び、
同じカメラ画像中の異なるイメージノードを利用していないこと、
の二つの条件を満たすか否かによって判定されることを特徴とする請求項４６に記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項４８】
サーフェスノードの統合ステップは、一致したサーフェスノード間におけるイメージノードの統合を含み、統合されたイメージノードを用いてサーフェスノードの位置を更新することを特徴とする請求項４６，４７いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項４９】
二つのサーフェスノードが矛盾する場合には、使用しているノードベクトルの数が多い方を残し、少ない方を削除することを特徴とする請求項４６乃至４８いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項５０】
サーフェスノードの統合は、最初に初期サーフェスノードから行うことを特徴とする請求項４４乃至４９いずれかに記載のモーションキャプチャにおける特徴点の三次元再構成方法。
【請求項５１】
請求項２６乃至５０いずれかに記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項５２】
請求項２６乃至５０いずれかに記載の方法をコンピュータに実行させるためのコンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光学式モーションキャプチャシステムに関するものである。
【背景技術】
【０００２】
モーションキャプチャ技術はエンターテイメントをはじめ、産業、医療等様々な分野で利用されている。例えばCGアニメーションの分野では、モーションキャプチャによって取得された人間の動きをCGキャラクタに適用することで、より自然な動きが実現されている。映画やゲームをはじめとしたマルチメディア・エンターテイメントにおけるCG画像の製作・開発分野では、 モーションキャプチャはもはや必須の技術といえる。その他にも、モーションキャプチャ技術は、ロボティクス、バイオメカニクス、スポーツ科学、医学などさまざまな分野で活用されている。モーションキャプチャ技術としては、光学式、磁気式、機械式などがあり、光学式モーションキャプチャはマーカの種類によってさらに受動光学式モーションキャプチャと能動光学式モーションキャプチャに分類される。【０００３】
現在のモーションキャプチャ技術の中でも、被験者の周囲に配置された複数のカメラで被験者を撮影し、その画像から得られる二次元情報を総合することによって三次元位置情報を計算する光学式モーションキャプチャが、特に高速な運動で高い精度が要求されるアプリケーションに多用されている。これは、他の方式と比較して精度が高い、被験者に対する拘束が少ない、磁気などの影響を受けないなどの理由による。【０００４】
光学式モーションキャプチャでは、画像処理を容易にするため被験者にマーカと呼ばれる特徴点を取り付けることが多い。複数の視点から得られたマーカ位置情報を総合することにより、三角測量の原理でマーカの三次元位置が計算できる。この処理を三次元再構成といい、これを行うためには複数のカメラで検出されたマーカの対応関係がわかっている必要がある。三次元再構成後、マーカの三次元位置情報を人間のリンク機構モデルの運動へマッピングすることにより、リンク機構の運動が得られる。これは通常逆運動学計算によって行うが、そのために検出された各マーカが被験者のどの部位に固定されているかがわかっている必要があり、これを求める処理をラベリングという。【０００５】
現在のモーションキャプチャ方式は、人間を剛体リンクと関節からなるリンク機構としてモデル化し、その関節角を計測することを目的としている。しかし、アプリケーションによっては運動中の人体の形状変化まで含む詳細なデータを必要とするものもあり、計測データの詳細化は重要な課題の一つである。ここでの詳細化とは計測点を増やすことで空間的に密度の高いデータを計測することをいう。【０００６】
受動光学式モーションキャプチャでは再帰性反射材で覆われたマーカを使う。再帰性反射材は常に光源の方向へ光を反射する性質があるので、カメラの近くに光源を置くことによりマーカの検出が容易になる。またマーカ自身は発光しないため、被験者に対する拘束は非常に小さい。しかし、マーカの区別がつかないため前述の三次元再構成やラベリングが困難であり、マーカ数が増加すると処理量が指数関数的に増加し、誤認識の確率も増大するという問題点がある。【０００７】
一方、能動光学式モーションキャプチャではマーカ自身が光源となっており、マーカの色や点灯のタイミングを変えることで三次元再構成やラベリングが容易になる。しかし、マーカに電力を供給するためのワイヤが必要なため被験者に対する拘束が大きい。また、一度に使用できるマーカの数に制限があり、複数の被験者の運動を同時に計測するのが難しい。【０００８】
このように、従来の光学式モーションキャプチャにおいて高詳細なデータを得るためには、マーカ数を増やす必要があるが、特に、
（１）従来の受動光学式モーションキャプチャでは、マーカを近距離に配置した場合には、マーカの三次元位置の計算における異なる視点から撮影されたカメラ画像間でのマーカの対応付けを間違える可能性が高くなり、三次元位置の計算が困難になる；
（２）従来の受動光学式モーションキャプチャでは、マーカ数が増加すると処理量が指数関数的に増加してしまう；
（３）従来の能動光学式モーションキャプチャでは、物理的にマーカ数に制限がある；
という理由から、従来の光学式モーションキャプチャ方式ではマーカ数を大幅に増加するのは困難である。【０００９】
モーションキャプチャ以外には以下のような類似技術がある。ステレオ視では画像から特徴点を自動的に抽出して三次元再構成を行っている。しかし、処理に時間がかかるため運動の計測に適用するのは難しい。またモーションキャプチャと同等の精度を得るのも困難である。多数の点の三次元位置を高精度で計測する技術としてレーザのパターンなどを対象物に照射してそれをカメラで撮影することにより物体の三次元形状を計測する三次元スキャナがある。しかし、レーザを対象物全体に照射するのに一定の時間がかかり、運動する物体の計測は難しい。また、これらの方法は現在の光学式モーションキャプチャとは全く異なる原理に基づいており、導入にはハードウェア・ソフトウェア両方の置き換えが必要となる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、モーションキャプチャシステムにおいて、計測点を増やすことで空間的に密度の高いデータを計測することを目的とするものである。【００１１】
本発明の他の目的は、モーションキャプチャシステムにおいて、空間的に密度の高いデータを計測する場合の計算量を抑えることを目的とするものである。
【課題を解決するための手段】
【００１２】
本発明が採用したモーションキャプチャシステムは、メッシュマーカを用いるものであり、メッシュマーカを構成する線の交差部分をノード、各ノードを結ぶ線をエッジとし、ノードが特徴点の位置情報を提供し、エッジが特徴点同士の結びつきを示す結合情報を提供する。本発明に係るモーションキャプチャシステムは、メッシュマーカを設けた対象物を撮影してメッシュマーカの二次元画像を取得する複数のカメラと、各カメラで撮影された二次元画像からメッシュマーカのノード・エッジ情報を検出するノード・エッジ検出部と、異なるカメラにより撮影された複数の二次元画像から検出されたノード・エッジの情報を用いてノードの三次元位置情報を求める三次元再構成部とを有する。【００１３】
本発明が採用した光学式モーションキャプチャにおける特徴点の三次元再構成方法は、メッシュマーカを用いたものであって、メッシュマーカを構成する線の交差部分をノード、各ノードを結ぶ線をエッジとし、ノードが特徴点の位置情報を提供し、エッジが特徴点同士の結びつきを示す結合情報を提供する。当該方法は、複数のカメラによって、メッシュマーカを設けた対象物を撮影してメッシュマーカの二次元画像を取得する画像取得ステップと、各カメラで撮影された二次元画像からメッシュマーカのノード・エッジ情報を検出するノード・エッジ検出ステップと、異なるカメラにより撮影された複数の二次元画像から検出されたノード・エッジの情報を用いてノードの三次元位置情報を求める三次元再構成ステップとを有する。本発明は、さらに、光学式モーションキャプチャにおける特徴点の三次元再構成方法をコンピュータに実行させるためのコンピュータプログラム、あるいは、当該コンピュータプログラムを記録した記録媒体を含む。【００１４】
本発明では、通常の光学式モーションキャプチャシステムで用いる球状のマーカ（特徴点）の代わりにメッシュ状のマーカを対象物（被験者）の表面の少なくとも一部に張り付ける点に特徴を有している。このマーカをメッシュマーカと呼び、その例を図１に示す。メッシュマーカは、これを構成する線が画像処理で検出できるほど十分コントラストの高いパターンであるのが望ましい。例えば、受動光学式モーションキャプチャにおける球状マーカと同様に再帰性反射材を用いてメッシュマーカを製作し、照明をカメラの近くに置くと最も検出が容易になるが、必ずしもこの限りではない。本発明は、受動光学式モーションキャプチャシステムに限定されるものではなく、例えば、蓄光材料からメッシュマーカを製作することで、能動光学式モーションキャプチャに適用することも可能である。メッシュマーカは、衣料や、特殊なタイツなどに貼り付けてもよいし、体の表面に直接描いてもよい。衣料は、対象物の少なくとも一部を覆うものであればよく、いかなる被服、帽子、履物が含まれる。顔の表情運動の計測では直接描くことが望まれるであろう。また、パターンは図１のような方眼紙状（各ノードが方形の頂点を、各エッジが方形の辺を、それぞれ構成する）であっても良いし、三角形等の多角形（各ノードが多角形の頂点を、各エッジが多角形の辺を、それぞれ構成する）等、他の形状であってもよい。本明細書では、メッシュマーカ上のテープの交点部分をノード、ノード間を結ぶ線をエッジと呼び、ノードを従来の球状のマーカにあたる特徴点とみなす。エッジはノード同士の結合情報を提供するものであり、直線でも曲線でもよい。また、二次元画像中のノードをイメージノード、三次元空間中のノードをサーフェスノードと呼ぶ。システムの最終的な出力は、サーフェスノードの位置情報である。ここで、１台のカメラで計測されたノードは三次元空間上においてはカメラ位置からの１本の直線（ノードベクトル）として表現され、ノードベクトルの交点を計算することでサーフェスノードの位置情報を取得する。通常、２直線（ノードベクトル）が完全に交わることはないため、一つの態様では、２直線間の距離が最小になる線分の長さと予め設定した閾値とを比較し、線分の長さが閾値よりも小さい場合には２直線は交わっていると判定し、該線分上の２点の中点を交点とする。また、エッジの三次元情報としては位置や方向があるが、これらはエッジの両端のノードの三次元位置がわかれば計算できるので、ノードの三次元再構成ができれば自動的にエッジの三次元再構成が可能である。エッジの三次元情報は、例えばポリゴンを再構成するときに用いることができる。【００１５】
本発明では、特徴点の三次元再構成（サーフェスノードの生成）において、既に三次元再構成されているイメージノードの結合情報を用いて、ノードベクトル同士が交わる複数のイメージノードを探索する際に、探索候補となるイメージノード数を削減することができる。一つの好ましい態様では、特徴点の三次元再構成（サーフェスノードの生成）においては、先ず、厳格な条件を課すことによって、より正確なノードの三次元位置情報である初期サーフェスノードを生成する。初期サーフェスノードを生成した後は、エッジによって提供されるノード同士の結合情報を利用することで、初期サーフェスノードを中心としてサーフェスノード群を拡大していく。一つの態様では、三次元再構成部は、複数のカメラの複数のノードベクトルの交差を判定する交差判定手段を有し、該交差判定手段は、より厳格な第１の交差判定条件とより緩い第２の交差判定条件とを有し、第１の交差判定条件により選択された交点を初期サーフェスノードとする初期サーフェスノード生成手段と、初期サーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から、第２の交差判定条件により選択された交点をサーフェスノードとするサーフェスノード群生成手段とを有する。サーフェスノード群生成手段は、さらに、生成されたサーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応するノードベクトルの中から、第２の交差判定条件により選択された交点をサーフェスノードとする。初期サーフェスノードの生成においても、エッジによって提供される結合情報を利用することができる。一つの態様では、初期サーフェスノード生成の交差判定条件は、初期サーフェスノードを構成するイメージノードとエッジによって結合しているイメージノードに対応する一組あるいは複数組のノードベクトル同士も交差するかどうかの交線判定を含む。また、一つの態様では、交線判定条件は、ノードベクトル間の距離を判定するための閾値を含み、初期サーフェスノードを生成するためのノードベクトル間の距離には小さい閾値を設定し、初期サーフェスノード以外のサーフェスノードを生成するためのノードベクトル間の距離には大きい閾値を設定する。さらに、交線判定条件は、交線数を含むものでもよい。例えば、２本のノードベクトルがある閾値で交わる条件よりも、３本のノードベクトルがある閾値で交わる条件の方が厳格な条件となる。【００１６】
複数のカメラは、通常、対象物を取り囲むように配置されている。一つの好ましい態様では、複数のカメラは、複数のカメラ群から構成されており、各カメラ群毎にノードの三次元位置情報を取得する。この場合、各カメラ群は、隣接する一連の複数のカメラから構成するのがよい。そして、隣位のカメラ群は、少なくとも一つの共通のカメラを有していることが望ましい。一つの例では、各カメラ群は３つのカメラから構成されており、各カメラ群は、３つの内の２つのカメラを共有している。【００１７】
一つの好ましい態様では、ノードの三次元位置を計算するための処理はイメージノード・エッジ検出部、サーフェスノード生成部（ローカル三次元再構成部）、データ統合部からなる。三次元再構成部は、サーフェスノード生成部とデータ統合部から構成される。各部で行う処理を以下に示す。【００１８】
（ａ）イメージノード・エッジ検出部
まず、各カメラで撮影された画像からイメージノード・エッジを以下の手順で検出する。
(1) カメラで撮影したグレースケール画像に対して、ラプラシアンオペレータを用いて鮮鋭化処理を行い、さらにその鮮鋭画像を二値化する。
(2) 二値画像に対して細線化処理を行う。
(3) 細線画像から線の交点にあたるイメージノードとそれらの繋がりにあたるエッジを抽出する。
アルゴリズムの詳細に関しては、後述する。但し、本発明が採用し得るイメージノード・エッジ検出部の構成およびノード・エッジ検出ステップは、このものに限定されるものではなく、ノード及びエッジが検出できるものであれば、他の画像処理手段を用いても良い。【００１９】
（ｂ）サーフェスノード生成部（ローカル三次元再構成部）
次に、隣接する複数（3台が例示される）のカメラを1つのカメラグループとし、各グループに属するカメラにおける画像から検出されたイメージノード・エッジ情報からサーフェスノードの三次元位置を計算する処理がローカル三次元再構成である。カメラが全部でN台あるとき、そのようなグループはN個あり、これらすべてについて三次元再構成を行う。【００２０】
各イメージノードに対し、対応するサーフェスノードが存在すると推定される、カメラの焦点位置を始点とするベクトルを考えることができる。これをノードベクトルと呼ぶ。複数のカメラからのノードベクトルが交差すれば、その交点にサーフェスノードが存在すると推定することができるが、実際にはカメラのキャリブレーション誤差やイメージノード抽出時の誤差により厳密に交差することは少ない。これを考慮して、以下の手順により三次元再構成を行う。【００２１】
(1) 複数（3台が例示される）のカメラのノードベクトルの中からユーザが与えた閾値以下の距離で交差する組み合わせを見つける。交差するノードベクトル数が多いほど（例えば、２本より３本）、また、閾値が小さいほど、要件が厳格となる。交差するノードベクトルの組み合わせが見つかったら、そのサーフェスノードとエッジによって結合しているサーフェスノードに対応するであろう一組あるいは複数組のノードベクトル同士も交差するかどうかを閾値を用いて確認する。それらのノードベクトル同士が交差して初めて先ほどのノードベクトルの組み合わせが正しい組み合わせであると判断し、その交点にサーフェスノードがあるとする。このノードを初期サーフェスノードと呼ぶ。【００２２】
(2) 既に見つかったイメージノードの組み合わせを元に、それらとエッジによって結合しているイメージノードに対応するノードベクトルに対して交差するかどうかの判定を行う。ここでの交差判定の閾値は初期サーフェスノード生成に用いた閾値よりも大きい値に設定しておく。結合情報を利用することにより、ひとつのイメージノードに対して探索するノードベクトルの候補はたかだか4つに絞られる。以上の処理を未調査のエッジに対して繰り返す。【００２３】
(3) まだ再構成に使われていないイメージノードが残っていたら、(1)に戻る。それ以外の場合は終了する。あるいは、さらに緩い条件でサーフェスノードを生成してもよい（サブサーフェスノードの生成）。例えば、上記(1)(2)では、３本のノードベクトルの交点にサーフェスノードを生成するが、サブサーフェスノードの生成では、３本のノードベクトルの交点にサーフェスノードを生成する。
アルゴリズムの詳細に関しては、後述する。【００２４】
（ｃ）データ統合部
ある隣接する2台のカメラを含むカメラグループは2つあり、ローカル三次元再構成部では各々のグループで独立にノードベクトルの組み合わせを求めていた。したがって、それらの組み合わせが一致している場合と矛盾する場合があり得る。一致する場合にはそれらの情報を統合し、矛盾する場合にはどちらが誤っているかを判定するのがデータ統合処理である。一つの態様では、サーフェスノードが一致するか矛盾するかの判定は、二つのサーフェスノード間の距離が所定の閾値以下であること、及び、同じカメラ画像中の異なるイメージノードを利用していないこと、の二つの条件を満たすか否かによって判定され、これらの条件を満たす場合にはサーフェスノードを統合する。また、一つの態様では、サーフェスノードの統合は、一致したサーフェスノード間におけるイメージノードの統合を含み、統合されたイメージノードを用いてサーフェスノードの位置を更新する。二つのサーフェスノードが矛盾する場合には、使用しているノードベクトルの数が多い方を残し、少ない方を削除する。また、ノードベクトル本数が同じ場合は、ノードベクトル間の平均距離が最も小さいものを選択する。アルゴリズムの詳細に関しては、後述する。【００２５】
以上の処理を行うための計算機の構成は自由であるが、複数のカメラ画像からのイメージノード・エッジ検出処理、および複数のカメラグループにおける三次元再構成処理がそれぞれ独立に実行できることを考慮すると、これらを別のCPUで並列に処理し、必要であれば計算機間をネットワーク接続するのが計算時間の点から望ましい。
そのようなシステムの実現例を図８に示す。また、この例における処理の流れを以下に示す。【００２６】
(1) データ統合部がイメージノード・エッジ検出部に対して、検出命令を送信する。イメージノード・エッジ統合部はその時点の最新の画像を利用して、イメージノードとエッジを検出する。検出結果を該当するローカル三次元再構成部とデータ統合部に送る。
(2) ローカル三次元再構成部はそれぞれ隣接するカメラ3台分のイメージノード・エッジ検出結果を受け取る。該当するカメラの検出結果を全て受け取ったら三次元再構成計算を行う。計算されたサーフェスノードの三次元位置とエッジによるノード間の結合情報はデータ統合部に送られる。
(3) データ統合部は全てのローカル三次元再構成結果を受け取ったらデータ統合処理を行う。このデータ統合部によって最終的なサーフェスノードとエッジの三次元再構成結果を得る。
詳細は、後述する。
【発明の効果】
【００２７】
本発明に係る光学式モーションキャプチャシステムでは、メッシュマーカの結合情報を特徴点（ノード）の三次元再構成に利用することにより、ノード数の増加による計算量（計算時間）の増加を抑えつつ、空間的に密度の高いデータを取得することができる。本発明に係るモーションキャプチャシステムは、通常のマーカの替わりに、特徴点間に結合情報を持つメッシュマーカを用いることで、近距離にマーカが多数存在しても誤りの少ない三次元再構成をリアルタイムに実現する。また、本発明に係るモーションキャプチャシステムは、特別なハードウェアを用いないため、ソフトウェアとマーカの変更のみで従来の光学式モーションキャプチャシステムをそのまま利用することができる。また、三次元再構成を、ローカル三次元再構成処理（例えば、３台ずつのグループによる処理）と全体を統合するサーフェスノード統合処理に分けることによって、計算の高速化とデータの信頼性の向上を実現した。
【発明を実施するための最良の形態】
【００２８】
［１］マーカの結合情報を利用したモーションキャプチャシステム
［１−１］マーカの結合情報
本システムでは通常の球状マーカの替わりに再帰性反射テープをメッシュ状に配置したマーカ（以下メッシュマーカと呼ぶ）を用いる。図１にメッシュマーカの部分図を示す。テープの交点をノード、ノード同士を結ぶ線をエッジと呼ぶ。通常の球状マーカと異なり、メッシュマーカではそれぞれのノードは結合情報を持っている。結合情報とは、どのノード同士がエッジによって結びついているかという情報である。このメッシュマーカの持つ結合情報を利用することにより、ノードの三次元位置をより正しく推定することができる。以下に結合情報を利用した場合と、結合情報を利用しない場合での三次元再構成法の違いについて述べる。【００２９】
［１−２］結合情報を利用した三次元再構成
本システムでの三次元再構成とは、メッシュマーカを異なる視点から撮影した複数枚の二次元画像をもとに、三次元上でのノードの位置とそれらを結ぶエッジを再現することである。メッシュマーカを撮影した画像からは図２に示されるような二次元画像中でのメッシュ情報が得られる。メッシュ情報は二次元画像上でのノードの位置の情報(node list)とその結合情報を記述したリスト(edge list)からなっている。例えば、node list 1(50,50)は、１番のノードの位置が座標(50,50)であることを示しており、edge list 1(2,4)は、１番のノードは２番のノード及び４番のノードに結合していることを示している。【００３０】
本明細書では、ノード及びエッジに係る用語を、以下のように定義する。
イメージノード：二次元画像上でのノードであり、ノードの二次元位置情報を構成する。
イメージエッジ：二次元画像上のノードを繋ぐエッジである。
サーフェスノード：三次元上に再構成したノードであり、ノードの三次元位置情報を構成する。
サーフェスエッジ：三次元上のノードを繋ぐエッジである。
メッシュノード：実際のメッシュマーカのノードである。
メッシュエッジ：実際のメッシュマーカのエッジである。
ノードベクトル：カメラ位置を始点としてイメージノードを通って延出するベクトルであり、このベクトル上にサーフェスノードがあると推定される。【００３１】
光学式モーションキャプチャにおいて三次元再構成は一般に次の方法で行われる。なお、以下の説明においては便宜上、球状マーカにおいても二次元画像中におけるマーカ像をイメージノード、三次元上に再構成したマーカをサーフェスノード、実際のマーカをメッシュノードと呼ぶ。カメラ画像中のイメージノードは三次元空間中ではカメラ位置から引かれる１本の直線として表現される。そのイメージノードに対応するメッシュノードは三次元空間中のこの直線上のどこかに存在すると推定される。この直線をノードベクトルと呼ぶ（図３）。サーフェスノードの三次元位置は複数カメラのノードベクトルの交点として求まる。三次元位置計算では異なる視点のカメラ画像間から同一のメッシュノードを指し示しているイメージノードを対応付ける必要があるが、これはノードベクトル同士が交わるイメージノードを探索することで行う。近距離にメッシュノードが多数存在する場合にはイメージノードの対応付けを間違える可能性が高くなる。また、マーカ数をM、カメラ台数をNとすると探索のための計算量はMNのオーダで増加するため、マーカ数が増えると爆発的に増加する。【００３２】
本発明においては、メッシュマーカの結合情報を利用することにより、間違ったノードベクトルの組を選択する可能性を減らし、マーカ数の増加に伴う計算量の増加を抑えることができる。三次元再構成にマーカの結合情報を利用しないものと、マーカの結合情報を利用したものとの違いを図４、図５に示す。図４が結合情報を利用しない三次元再構成、図５が結合情報を利用した三次元再構成の様子を示している。結合情報を利用しない三次元再構成では図中のAのマーカが再構成されている場合においても、左側カメラ画像中のbのイメージノードと対応するものを見つけるには、右側カメラ画像中の全イメージノードからイメージノードを探索しなければならない。そのため、交差するノードベクトルが複数本存在した場合には対応するイメージノードを特定することは難しい。結合情報を利用する三次元再構成においては、左側カメラ画像中のbのイメージノードと対応しているものの探索はマーカAとの結合情報により、右側カメラ画像中のβ、γに絞られる。そのため交差するノードベクトルが複数本存在する可能性が低く、またマーカ数の増加による計算量の増加も少ない。【００３３】
［１−３］システム概要
本システムの概要図を図６に示す。本システムはイメージノード抽出（Extraction）、サーフェスノード生成（Reconstruction）、サーフェスノード統合（Integration) の３つのステップからなる。各カメラで撮影された画像において、それぞれに備え付けられたPC（カメラPC）で画像処理されメッシュ情報が抽出される。サーフェスノードの生成は各カメラPCで、ある一つのカメラとその両隣のカメラの計３台分のカメラから得られたメッシュ情報をもとに行われる。各カメラPCで計算されたサーフェスノードの三次元再構成結果を統合用PCが統合することで最終的な再構成結果を得る。統合によって得られるサーフェスノードを特に統合サーフェスノードと呼ぶ。再構成計算をカメラ３台ずつのグループに分けたのは計算の高速化とデータの信頼性向上のためである。これについては後述する。本システムでは１０台のカメラを用いており、１０個のグループでそれぞれサーフェスノードが生成される。統合サーフェスノードは各カメラグループで独立に計算されたサーフェスノードから矛盾部分を排除し、一致する部分を統合して得られるため信頼性が高い。【００３４】
［１−４］  システム構成
［１−４−１］ハードウェア構成
本システムのハードウェア構成を図７に示す。
以下、各構成要素についての特徴を述べる。【００３５】
［高解像度カメラ］
Adimec社製の高解像度カメラAdimec-1000mを１０台用いる。同カメラは1000x1000画素、10[bit]グレースケールを有し、非同期モードでは50[fps]、外部パルスによる同期モードでは40[fps]の撮影が可能である。本システムでは同期モードで使用している。カメラの配置はスタジオの外周に沿った天井付近に、スタジオ中央に対して概ね等角度間隔になるようになっている。【００３６】
［LED照明］
各カメラには円形のLED照明が取り付けられている。本システムでは再帰的反射性を持つメッシュマーカを撮影対象とする。各カメラに備え付けられたLED照明から発せられた光線がメッシュマーカを構成する再帰性反射テープによってそれぞれのカメラ方向に強く反射され、マーカ部分のみの強調されたカメラ画像を得ることができる。【００３７】
［パルスジェネレータ］
各カメラにはパルスジェネレータからのトリガが送られる。このトリガによりカメラ間での撮影タイミングの同期が取られる。【００３８】
［PCクラスタ］
カメラ１台につきPC１台（以下カメラPCと称す）計１０台を、システム全体の統合用としてPC１台（以下統合PCと称す）を使用する。各々のPCの役割については後述する。なお各PC 間でのデータの送受信にはMPI（Message  Passing  Interface）を用いる。【００３９】
［１−４−２］  ソフトウェア構成
１−３で述べたようにシステムはイメージノード抽出、サーフェスノード抽出、サーフェスノード統合の３種類のプロセスからなる。このうちイメージノード抽出、サーフェスノード生成のプロセスは、それぞれカメラ、カメラグループで独立に計算できる。この２つのプロセスを各カメラPCで並列に計算し、サーフェスノード統合処理を統合PCで行う。実際の計測時のデータの流れを図８に示す。【００４０】
カメラからの画像取得はカメラプロセス中、Threadαにより以下の処理で行われる。
（ａ）パルスジェネレータが撮影のタイミングを発信すると、画像キャプチャボードを介してカメラに画像取得指令が伝わる。
（ｂ）カメラからカメラPCに画像が転送され、同PC内のループバッファメモリにイメージが書き込まれる。【００４１】
三次元再構成計算は以下の処理による。
（１）統合プロセスからカメラプロセスへ画像処理命令が送られる。
（２）画像処理命令を受信すると、カメラプロセスはループバッファメモリ内の最新のイメージ画像を使用してイメージノードを抽出する。
（３）カメラプロセスはイメージノードデータを統合プロセス、自身とその両隣の再構成プロセスに送信する。
（４−a）統合プロセス内のデータ受信監視スレッド（Threadγ）はイメージノードデータを受信したらループバッファにそのデータを保存する。
全カメラプロセスからデータを受信したら、画像処理命令を送る（Step（１）へ）。
（４−b）再構成プロセスは、カメラ３台分のイメージノードデータを受信したら再構成計算を行う。
（５）再構成計算が終了したら、 サーフェスノードデータを統合プロセスへ送る。
（６）データ受信監視スレッドはサーフェスノードデータをループバッファに保存する。全再構成プロセスからデータを受信したら、統合計算スレッド（Thread  δ) に統合計算命令を送る。
（７）統合計算を行い、統合サーフェスノードの時系列データを得る。【００４２】
(ａ)、(ｂ)は画像を撮影する処理であり、外部パルスをトリガに(１)〜(７)とは無関係に動く。(１)〜(７)は実際に画像処理、再構成、総合計算を行う処理である。統合プロセスが各カメラPCに画像処理命令を送ることで同期のタイミングを管理している。モーションキャプチャのフレームレートは画像処理プロセスの計算時間に依存する。【００４３】
［２］メッシュ情報抽出アルゴリズム
［２−１］メッシュ情報抽出の概要
撮影されたグレースケール画像からイメージノードの位置とイメージエッジを抽出する。この処理が全体のフレームレートを決定し、三次元再構成の精度にも影響を及ぼすため、高速でかつ、可能な限り正確にメッシュ情報を抽出するアルゴリズムが求められる。メッシュ情報の抽出は以下の処理に従う。
（１）鮮鋭化：画像のコントラストを強め、メッシュマーカ部とそれ以外の箇所の差異を明確にする。
（２）２値化：鮮鋭化された画像に対して値化処理を行う。
（３）細線化：２値化画像から芯線を抜き出す。
（４）情報抽出：細線化画像からイメージノードの位置とその結合情報を抽出する。
図９に原画像からメッシュ情報抽出までの流れを示す。以下、各々の処理について述べる。【００４４】
［２−２］鮮鋭化・２値化処理
イメージノードの結合情報を得るための細線化画像は２値画像をもとに得られるため、その結合性は２値化の閾値によって左右されることがある。その影響を低減するため、２値化前にエッジの鮮鋭化処理を行い、メッシュマーカが張られている部分とそれ以外の部分との差異を強調する必要がある。鮮鋭化には空間フィルタ法を用いる。空間フィルタ法は、画像fから二次微分画像f´´（ラプラシアン）を引く処理である。二次微分画像を引くことにより、濃度変化にオーバシュートとアンダシュートを形成し、結果としてエッジの傾斜を強調した画像の鮮鋭化を実現できる。【００４５】
図１０に原画像と鮮鋭化画像の濃度変化の様子を示す。図１０は画像中のある軸に沿った画像の濃度変化を表している。図中の横軸が画像中の軸、縦軸が濃度を表しており、一点鎖線が原画像fの濃度変化、鎖線が二次微分画像f´´を正負反転したもの、実線がエッジ鮮鋭化画像gである。画像中のi列j行目の画素の濃度をf（i，j）とすると、ラプラシアンオペレータは式（１）で定義される方向性差分△if，△jf、方向性二次差分△i2f，△j2fより式（２）で表される。【００４６】
【数１】
0005061350.tif 000002
【数２】
0005061350.tif 000003
したがってエッジ鮮鋭化画像g(i，j)は式（３）となり、図１１のフィルタによって実現できる。
【数３】
0005061350.tif 000004
【００４７】
鮮鋭化後の画像に対して２値化処理を行い、２値画像を得る。２値化処理は次式によって行われる。
【数４】
0005061350.tif 000005
fTが２値画像であり、１を有効領域（白領域）、０を背景領域（黒領域）の値に割り当てる。以後、有効画素といった場合にはfTの画素（白色画素）を指す。実際には効率化のため、鮮鋭化処理、２値化処理、さらに有効範囲の選択までを同時に行う。有効範囲とは有効画素の存在する画像範囲のことであり、ここでは矩形で選択している。【００４８】
［２−３］細線化処理
ノードの位置、連結情報を抽出するため、２値画像に細線化処理をほどこす。細線化処理とは位相的な連結性が変わらないように線図形の線幅を１に細める処理である。細められた線を芯線という。細線化された図形からは線分のつながりを容易に求めることができる。細線化処理には次の条件を満たすことが求められる。
●  芯線の線幅が１になる。
●  芯線の位置が線幅の中心になる。
●  図形の連結性が保存される。
細線化処理の前に隣接画素と連結数の定義を記す。以下は２値画像を対象においている。【００４９】
［隣接画素と連結性］
隣接画素には４−近傍、８−近傍の２種類の定義がある。ある画素に対して上下左右にある４画素を４−近傍という。４−近傍の画素に加え、さらに斜めの４画素を含めたものを８−近傍という。隣接画素を用い、画素同士の間には連結性の定義ができる。ある二点間に隣接する有効画素を辿る経路が存在すればその二点は連結しているという。連結性は隣接画素の定義によって異なり、４−近傍で定義したときの連結を４連結、８−近傍で定義したときの連結は８連結という。図１２（a）は８連結している２点間A−Bの経路を示している。図１２(b)のように４連結で定義した場合にはA−Bの間には経路が存在せず、これら２点は連結していない。連結した画素の集合を連結成分という。図１３に各連結定義における連結成分の解釈を示す。(a)は原画像、(b)は４−近傍の定義による連結成分、(c)は８−近傍の定義による連結成分である。連結の定義により、連結成分が結合したり分断されたりする。どちらの連結定義を用いるかは使用するケースに合わせて適宜選択する。【００５０】
［連結数］
２値画像の有効領域は背景領域と隣接する境界点の集合と背景に隣接していない内部点の集合からなる。図１４に境界点の様子を示す。図１４(a)が原画像であり、図１４(b)が有効領域を４連結で定義した場合の境界点、図１４(c)が８連結の場合の境界点を示している。図１４中で境界点は灰色で表されている。【００５１】
このように定義された連結成分の境界点をたどることを境界線追跡（図１４(d)) という。境界線追跡を利用することにより、各画素に連結数を定義することができる。連結数とは境界線追跡をしたとき、その画素を通過する回数であり、連結数により画素の特徴を表１のように分類することができる。連結数は式（５）、（６）に示す式で計算される。
【表１】
0005061350.tif 000006
【数５】
0005061350.tif 000007
ここでxkは図１５に示す位置であり、Ｃ＝１，３，５，７，ｆ（バー）＝１−ｆ，ｘ９＝ｘ１である。【００５２】
以上で定義された連結数を用いて線図形の細線化を行う。境界点に相当する画素を探し、その画素を消しても図形の位相が変わらない場合には削除する。これを繰り返すことで細線化を行う。細線化処理は以下による。【００５３】
［細線化アルゴリズム］
（１）ステップ１：  画像f中に右側境界条件を満たす画素があればステップ２へ進む。ここで右側境界条件を満たす画素とは、自身の右側の画素が背景領域である有効領域中の画素であり、同様に下側、左側、上側に背景領域を持つ有効画素を下側境界、左側境界、上側境界という。
（２）ステップ２：  画像中の右側境界を満たす全ての画素に対して、その画素の連結数を計算する。
（３）ステップ３：  ステップ２で計算した画素のうち、連結数が１以下であった画素を削除する。２以上であった画素は永久保存点とし、これ以降の反復処理では削除の対象としない。
ステップ１、２、３を下側境界、左側境界、上側境界に対しても行う。右、下、左、上側境界点削除の一連の流れの中で削除される画素がなくなるまでこれを繰り返す。【００５４】
連結数の定義によって細線化後の画像は異なる。図１６に連結数定義の違いによる細線化画像の違いを示す。図１６中の画像は左から順に原画像、２値画像、８連結定義による細線化画像、４連結定義による細線化画像となっている。２値画像中の幅１ピクセルの斜めの線は８連結定義では連結されるが、４連結定義では分断される。しかし、２値画像中で幅１ピクセルで表されるようなエッジは極めて信頼性が低いと考えられる。図１６左の原画像を見ると枠で囲まれたエッジは実際には繋がっていないものであることが確認できる。また、交点の位置も８連結定義に比べて４連結定義の方が抽出が容易である。以上の理由から、本システムでは連結数の定義に４連結を用いることにする。【００５５】
［２−４］ノードの位置・連結情報の抽出
細線化画像から交点とその交点間の連結性を抽出する。既述のように連結数によって画素の特徴を分類することができる。交点は連結数が４の画素である。しかし、実際には、細線化後の画像は図１７のように交点が２つの分岐点として表現されてしまうことがある。図１７(a)が原画像、(b)が２値画像、(c)が細線化画像であり、細線化画像中の右側のマスが交点（連結数４）の画素、左側の枠で囲まれた部分が２つの分岐点（連結数３）に分かれてしまった交点を示している。イメージノードの抽出処理では画像中から連結数が３以上である画素（分岐点、交点）を探索し、分岐点であった場合にはその点が本当に分岐点であるのか、あるいは図１７（c）のように１つの交点が分かれてできた分岐点であるのかを確認する必要がある。【００５６】
イメージノードとイメージエッジの抽出は以下の処理による。
（１）ステップ１：  画像を走査し、連結数が３以上である画素を見つける。
（２）ステップ２：  走査が終わったら見つかった交点・分岐点の画素についてそれぞれ以下の処理を行う。【００５７】
［交点に関する処理］
交点の画素から別の交点・分岐点の画素、あるいは端点に行き着くまで隣接する有効画素からなる経路を辿っていく。交点・分岐点に辿り着いたらその交点・分岐点との結合情報を記録する。【００５８】
［分岐点に関する処理］
交点画素に関する処理と同様に、分岐点の画素から別の交点・分岐点の画素、あるいは端点に行き着くまで経路を辿っていく。交点にたどり着いたらその交点との結合情報を記録する。分岐点にたどり着いたらその分岐点までの経路の長さを調べる。それが閾値以下だった場合には、この分岐点画素と辿り着いた分岐点とは１つの交点が分かれたものであると判断し、この２つの分岐点の中点を正しい交点とする。閾値以上だった場合には交点画素と同様に、その分岐点との結合情報を記録する。【００５９】
以上の処理により、画像からイメージノードとイメージエッジを抽出しメッシュ情報を得る。これらの処理は画像処理によるため、メッシュ情報を誤りなく完全に抽出することは困難である。画像によってはイメージノードやイメージエッジを抽出し損なってしまったり、逆に存在しないイメージノードやイメージエッジを抽出してしまうことも考えられる。したがって、三次元再構成法では抽出されたメッシュ情報のエラーに対してロバストな方法を考える必要がある。【００６０】
［３］三次元再構成アルゴリズム
［３−１］三次元再構成
本システムの三次元再構成は図６で示したように、各カメラPCでカメラ３台分ずつのメッシュ情報から三次元再構成を行い、統合PCでそれらの再構成結果の矛盾部分の排除、一致部分の統合を行うことによって最終的なデータである統合サーフェスノードを得る。以下、それぞれのカメラグループで行われるサーフェスノードの生成法と統合PCで行われるサーフェスノードの統合法について説明する。【００６１】
［３−２］サーフェスノードの生成
隣り合う台のカメラ画像からサーフェスノードを生成する。サーフェスノードの生成は以下の３つのステップからなる。【００６２】
［Ａ］初期サーフェスノードの生成（図１８)
３台のカメラ画像の中から一点で交わるノードベクトルの組み合わせを見つけ、それらの交点にサーフェスノードを生成する。ここで生成するサーフェスノードを初期サーフェスノードと呼ぶ。【００６３】
［Ｂ］サーフェスノード群の生成（図１９) 
結合情報を利用して初期サーフェスノードから順次新たなサーフェスノードを生成していく。ここで生成されるサーフェスノードは直接的、あるいは間接的に初期サーフェスノードと結合している。これらサーフェスノードの集まりをサーフェスノード群と呼ぶ。生成の元となった初期サーフェスノードをこのサーフェスノード群の中心と呼ぶ。【００６４】
［Ｃ］サブサーフェスノードによるサーフェスノード群の拡大
２本のノードベクトルでサーフェスノードを構成することを許してサーフェスノード群をさらに拡大していく。ここで構成される２本のノードベクトルからなるサーフェスノードをサブサーフェスノードと呼ぶ。【００６５】
以下のように記号を定義し、各々の処理について詳細を述べる。
【表２】
0005061350.tif 000008
【００６６】
サーフェスノードを１つでも構成することができれば、その周りのエッジを辿っていくことにより効率的にサーフェスノードを順次構成していくことができる。結合情報を使用することにより、探索のためのノードベクトル同士の距離計算の回数が少なくて済み、また、誤ったサーフェスノードが構成される可能性も減る。しかし、最初に構成するサーフェスノードが以降の再構成の元になるため、これは信頼性の高いものでなくてはならない。最初のステップは信頼性の高いサーフェスノードを見つけることである。初期サーフェスノードの生成は次のように行う。ここではカメラCbを中心とした処理を記す。他のカメラでも同様であり、それぞれのカメラPC中で計算を行う。【００６７】
［Ａ］初期サーフェスノードの生成
（１）  ステップ１：イメージノードＮｐｂを選ぶ。
（２）  ステップ２：カメラＣｂ＋１のイメージノードの中から以下の条件を満たすイメージノードＮｑｂ＋１を見つける。ここでＣｂ＋１はＣｂの隣に位置するカメラを表す。
●    ｄv（Ｖpb，Ｖqｂ＋１）≦ｄhardを満たす。ここで、ｄhardは、ノードベクトル同士が交わっていると判定するための閾値である。
●    ｄv（Ｖib，Ｖjｂ＋１）≦ｄhardを満たすイメージノードＮiｂ∈Ｅpｂ、Ｎｊｂ＋１∈Ｅqｂ＋１の組が２組以上存在する。
もし、Ｎqｂ＋１が見つかればステップ３へ、見つからなければステップ１へ戻る。
（３）  ステップ３：ステップ２と同様の処理をカメラＣｂ−１に対しても行う。もしＮｒｂ−１が見つかればステップ４へ、見つからなければステップ１へ戻る。
ステップ４：Ｖｐｂ，Ｖｑｂ＋１，Ｖｒｂ−１を用いてサーフェスノードＰ０を構成する。【００６８】
以上の手順により、サーフェスノード群生成の元となる初期サーフェスノードが生成される。ノードベクトルの交差に厳しい閾値ｄhardを用い、交わったノードベクトルと結合しているノードベクトル同士も交わることを生成の条件とすることで誤った初期サーフェスノードが生成される確率を減らしている。手順Ａにより初期サーフェスノードを生成したら、初期サーフェスノードの周りのエッジを利用して順次サーフェスノードを生成し、サーフェスノード群を構成していく。この処理は以下のようにして行う。【００６９】
［Ｂ］サーフェスノード群の生成
（１）  ステップ１：初期化：ｍ＝０．初期サーフェスノードに注目する。
（２）  ステップ２：現在注目しているサーフェスノードをＰα（Ｎｐｂ，Ｎｑｂ＋１，Ｎｒｂ−１）と表す。Ｎｉｂ∈（Ｅｐｂ∩Ｎｂ）のそれぞれについて以下の条件を満たすイメージノードＮｊｂ＋１∈Ｅｑｂ＋１を見つける。
●  Ｎｊｂ＋１∈Ｎｂ＋１である。
●  ｄ（Ｖｉｂ，Ｖｊｂ＋１）≦ｄeasyを満たす。ここで、ｄeasyはｄeasy＞ｄhardとなる緩めの閾値である。
これらを満たすイメージノードＮｊｂ＋１が見つかれば、ステップ３へ進む。
（３）  ステップ３：同様に、以下の条件を満たすＮｋｂ−１∈Ｅｐｂ−１を見つける。
●  Ｎｋｂ−１∈Ｎｂ−１である。
●  ｄｖ（Ｖｋｂ−１，Ｖｊｂ）≦ｄeasyかつ、ｄｖ（Ｖｋｂ−１，Ｖｊｂ＋１）≦ｄeasyを満たす。
（４）  ステップ４：Ｎｊｂ＋１とＮｋｂ−１が見つかったら、新しくサーフェスノードＰｍ＋１を構成する。注目するサーフェスノードをＰｍ＋１、さらにｍ＝ｍ＋１としてステップ２へ戻る。
（５）  ステップ５：ステップ２からステップ４を全てのエッジについてチェックするまで繰り返す。【００７０】
この手順により、初期サーフェスノードP０を中心としたサーフェスノード群を生成できる。［Ａ］、［Ｂ］の操作を繰り返し、サーフェスノード群を順次生成していく。新しい初期サーフェスノードが見つからなくなったらサーフェスノード群の生成は終了である。【００７１】
３台のカメラ中には２台のカメラからのみ見えるメッシュノードも存在し得る。［Ａ］、［Ｂ］の処理が全て完了したら［Ｃ］の処理で２本のノードベクトルで構成されるサブサーフェスノードを許してサーフェスノード群をさらに拡大する。これは次の処理による。【００７２】
［Ｃ］サブサーフェスノードによるサーフェスノード群の拡大
ステップ１：サーフェスノード群の境界端にあるサーフェスノードＰａ（Ｎｐｂ，Ｎｑｂ＋１，Ｎｒｂ−１）に注目する。境界端にあるとは、Ｎｉｂ∈ＥｐｂかつＮｉｂ∈Ｎｂを満たすイメージノードＮｉｂが存在することをいう。
ステップ２：注目したサーフェスノードＰａ（Ｎｐｂ，Ｎｑｂ＋１，Ｎｒｂ−１）（あるいは、サブサーフェスノードＰ（ハット）ａ（Ｎｐｂ，Ｎｑｂ＋１））に対して、以下の条件を満たすイメージノードＮｊｂ＋１もしくはＮｒｂ−１を見つける。
●  Ｎｊｂ＋１∈Ｎｑｂ＋１である。
●  ｄv（Ｖｉｂ，Ｖｊｂ＋１）≦ｄeasyを満たす。
もし、Ｎｊｂ＋１が見つかれば、Ｖｊｂ，Ｖｊｂ＋１を用いてサブサーフェスノードＰ（ハット）ｍを構成し、このＰ（ハット）ｍに対してもステップ２の処理を行う。見つからなければステップ１に戻り、境界端のサーフェスノードに対して全てチェックするまで繰り返す。【００７３】
以上がサブサーフェスノードを含むサーフェスノード群の拡大である。この処理を全てのサーフェスノード群に対して行う。サブサーフェスノードは２本のノードベクトルから構成されるため、サーフェスノードに比べて信頼性の低いものである。サブサーフェスノードの生成は、先の［Ａ］、［Ｂ］の処理によりサーフェスノードを全て生成した後に補足的に行われる。【００７４】
３台のカメラグループによるサーフェスノードの生成の流れを図２０にまとめる。初期サーフェスノード図２０(a)からサーフェスノードを順次生成することで、一つのサーフェスノード群を得る（図２０(b)）。この処理を繰り返し行うことで複数のサーフェスノード群を生成する（図２０(c)）。新たなサーフェスノード群を生成することができなくなったら、サブサーフェスノードを許してさらにサーフェスノード群を拡大していく（図２０(d)）。初期サーフェスノードの生成時においては厳しい閾値dhardを用いるため、これらは信頼性の高いサーフェスノードと言える。サーフェスノード群の生成過程においては、結合情報を利用して初期サーフェスノードから順々にサーフェスノードを構成していく。正しいサーフェスノードを辿って誤ったサーフェスノードが生成されるのは、図２１のように最低２台のカメラ画像中でイメージノード、あるいはイメージエッジの抽出に誤りがあり、かつその誤ったイメージノードに対応するノードベクトルを含む３本のノードベクトルが偶然一点で交わるような場合のみであるため、その可能性は極めて低い。サーフェスノードが正しいものであるかどうかは、それと連結するサーフェスノードの正しさに大きく依存する。サーフェスノード群の生成では結合情報を利用することと交線判定に緩い閾値deasyを用いることで、効率的に信頼性の高いサーフェスノードを多く再構成することができる。【００７５】
［３−３］サーフェスノードの統合
各カメラグループにおいて生成したサーフェスノードを統合し、全カメラのメッシュ情報からなる統合サーフェスノードを構成する。ここで、さらに、以下の記号を定義する。なお、以後はサーフェスノードとサブサーフェスノードを合わせてサーフェスノードと呼ぶ。
【表３】
0005061350.tif 000009
カメラグループGbから送られてくるサーフェスノードPnbの情報は以下のとおりである。
【表４】
0005061350.tif 000010
これらの情報をもとにサーフェスノードを統合し、統合サーフェスノードを構成していく。【００７６】
各カメラはそれぞれ３つのカメラグループに所属しているため、各カメラで抽出されたイメージノードは再構成計算に最大３回使われる。あるカメラグループで使用されたイメージノードが別のカメラグループでは全く別のサーフェスノードに使用されている可能性もある。その様子を図２２(a)に示す。図２２中で三角形の頂点がカメラ、底辺がカメラ投影面を表しており、カメラから伸びている直線がそのカメラのイメージノードNibに対応するノーベクトルを示している。カメラグループGb中のサーフェスノードPibは構成要素としてイメージノードNpb、Nqb+1、Nrb-1を持つ。一方、カメラグループGb+1中のサーフェスノードPjb+1はNpb、Nsb+1、Ntb+2を構成要素として持っている。PibとPjb+1は共通のイメージノードNpbを使用しているにも関わらず、カメラCb+1のイメージノードはNqb+1、Nsb+1と異なるものを使用している。この場合、PibとPjb+1のどちらか一方がNpbを誤って使用している。このような状況をサーフェスノードPibとPjb+1の矛盾という。逆に同じイメージノードを使用した異なるカメラグループのサーフェスノードが同一のものを再構成している場合、これをサーフェスノードの一致と呼ぶ。一致の様子を図２２(b)に示す。PibとPjb+1はともにイメージノードNpb、Nqb+1を使用しており、矛盾したイメージノードが存在しない。統合処理では矛盾したサーフェスノードを排除し、一致したサーフェスノードを統合することにより、より信頼性の高い統合サーフェスノードを得る。サーフェスノードの統合の流れを図２３Ａ−Ｃに示す。図２３Ａ中のQは全カメラグループで作られたサーフェスノード群の数を表しており、サーフェスノードの数の多いものから順にサーフェスノード群を並べたものをJiと表す。統合処理はサーフェスノード群J0からJQ-1まで順に次の処理を行っていく。【００７７】
［統合処理の流れ］
サーフェスノード群Jiの初期サーフェスノードPiに注目する。注目したサーフェスノードに対して処理A（Piとそれに結合するサーフェスノードPj∈Siに関する統合処理）を行う。処理Aでは、注目しているサーフェスノードPiに対して処理B（Pibを残すべきか、削除するべきかの判定）を行い、処理Bの結果、Pibを残すべきだと判定したらPiと結合しているサーフェスノードに関しても順次処理Aを繰り返していく。Piが削除するべきものであると判定した場合には、Piと結合しているサーフェスノードに対しては処理Aを行わない。既述のようにサーフェスノードが正しいものであるかどうかは連結するサーフェスノードの正しさに大きく依存する。矛盾が判明した時点でその先の処理を停止することで、誤ったサーフェスノードが残ってしまう可能性を低減している。以下、処理A、処理Bに関して詳述する。【００７８】
［処理A（Piとそれに結合するサーフェスノードPj∈Siに関する統合処理）］
先に述べたようにこの処理はサーフェスノード群の初期サーフェスノードから始める。
（１）  ステップ１：注目しているサーフェスノードPiに対して処理Bを行う。
（２）  ステップ２：処理Bの結果、Piを残すべきだと判定したらステップへ進む。削除するべきだと判定したら処理を終了する。
（３）  ステップ３：Piと結合しているサーフェスノードPj∈Si全てに対して処理Aを繰り返す。【００７９】
［処理B（Pibを残すべきか、削除するべきかのチェック）］
サーフェスノードPibと一致するサーフェスノードを別のカメラグループから探していく。この処理は図２３Ｃに示すように右回り探索、左回り探索、矛盾したサーフェスノードの削除の３つのステップからなる。それぞれの処理について以下順次述べる。【００８０】
［右回り探索］
自身と一致するサーフェスノードを右側のカメラグループのサーフェスノードの中から順次探していく。サーフェスノードPibに関する右回り探索は以下の処理からなる。【００８１】
（１）  ステップ１：初期化：k＝b．Pibに注目。【００８２】
（２）  ステップ２：右のカメラグループから探索： 
現在注目しているサーフェスノードをPik（Npk，＊，＊）と表す。ここで、＊は任意の文字を表し、Pik（Npk，＊，＊）は現在注目しているサーフェスノードPik中でイメージノードNpkが構成要素として使用されていることを表現している。Pik（Npk，＊，＊）に対して、一致するサーフェスノードをカメラグループGk+1中のサーフェスノードの中から探す。探索方法を図２４に示す。Pikの構成要素Npkに注目し、Npkを使用しているサーフェスノードをGk+1中のサーフェスノードPk+1中から探す。Npkを使用しているサーフェスノードP＊k+1(＊，＊，Npk)が存在したら以下の条件を満たすかチェックする。
●  Pikとの距離が閾値dinteg以下である。
●  Pikの構成要素との間に矛盾がない。構成要素の矛盾とは同じカメラ画像中の異なるイメージノードを利用していることをいう。【００８３】
これらの条件を満たす場合、Pik（Npk，＊，＊）とP＊k+1(＊，＊，Npk)は一致していると判断しこの２つのサーフェスノードを統合する。ここで統合とは、P＊k+1(＊，＊，Npk)の構成要素の中でPikの構成要素にないものがあれば新たにPikの構成要素として登録し、Pikの位置を再計算することをいう。統合した後、注目するサーフェスノードをP＊k+1(＊，Npk，＊)、k＝k＋1としてステップ２を繰り返す。【００８４】
条件を満たさない場合、PikとP＊k+1は矛盾していると判断する。矛盾したサーフェスノードは探索処理終了後の矛盾したサーフェスノードの削除の処理で用いるため、記憶しておく。P＊k+1(＊，＊，Npk)が存在しない場合、あるいは、Pikと矛盾していた場合には、ステップ３へ進む。【００８５】
（３）  ステップ３：２つ右のカメラグループからの探索：
現在注目しているサーフェスノードをPｉk(＊，Nｑk＋１，＊)と表す。２つ先のカメラグループGk+2からPｉk(＊，Nｑk＋１，＊)と一致するサーフェスノードを探す。Pk+2中から一致するサーフェスノードを探索する様子を図２５に示す。Pikの構成要素Nqk+1に注目し、Pb+2の中からNqb+1を使用しているサーフェスノードP＊k+２(＊，＊，Nｑk＋１)を探す。P＊k+２が存在したらステップ２で用いた一致の条件を満たすかどうか確認する。一致した場合にはPikとP＊k+２を統合し、注目するサーフェスノードをP＊k+２(＊，＊，Nｑk＋１)、k＝k+2としてステップへ戻る。【００８６】
P＊k+２(＊，＊，Nｑk＋１)が存在しなかったりPikと矛盾していたりした場合には、右回りの探索処理を終了とする。以上の処理によって一致するサーフェスノードが見つかる限り、探索する対象を右側方向のカメラグループへと進めていきサーフェスノードを統合していく。【００８７】
［左回り探索］
左側のカメラグループのサーフェスノードの中から順次探していく。探索は右回り探索と同様の方法で行う。右回り探索の処理過程におけるk+1をk−1に、k+2をk−2に置き換えればよく、右回り探索の説明を援用することができる。【００８８】
［矛盾したサーフェスノードの削除］
右方向、左方向に統合できるサーフェスノードの探索が終わったら、その探索の過程で見つかった矛盾するサーフェスノードの排除処理を行う。排除処理では矛盾の生じたサーフェスノードとPibを比較し、使用しているノードベクトルの数の多い方を残し、少ない方を削除する。一方のサーフェスノードがまだ処理Bを行っていない場合には、そのサーフェスノードに対して処理Bを行った後にこの処理を行う。【００８９】
以上の操作によって、同一のメッシュノードを指し示すサーフェスノードは統合され、サーフェスノード間に矛盾が生じているときは多数決的にどちらか一方が削除される。本システムでの三次元再構成ではノードの結合情報と種類の閾値を用いたサーフェスノードの生成、多数決による矛盾点の削除といった２重３重の誤り防止処理により、信頼性の高いデータを取得できる。【００９０】
最後に、全身にメッシュマーカをもった人間のモーションキャプチャの実験の様子を示す。図２６に示すメッシュマーカを対象にリアルタイム三次元再構成を行った。図２６左図、右図のメッシュマーカに対するリアルタイム三次元再構成の実験の様子の部分拡大図をそれぞれ図２７上図、下図に示す。大量のノードに対してもリアルタイムに三次元再構成を行えている様子が確認できる。全身に加え、指などの細かい部分まで三次元再構成できている様子が確認できる。
【産業上の利用可能性】
【００９１】
本発明は、ロボティクス、バイオメカニクス、スポーツ科学、医学、コンピュータグラフィックス等の分野に利用することができる。
【図面の簡単な説明】
【００９２】
【図１】メッシュマーカの部分図である。
【図２】二次元画像から抽出したノード情報及びエッジ情報を示す。
【図３】ノードベクトルを説明する図である。
【図４】エッジ情報を用いずに特徴点の三次元再構成を行う場合を示す図である。
【図５】エッジ情報を用いて特徴点の三次元再構成を行う場合を示す図である。
【図６】本発明に係るモーションキャプチャシステムの全体概略図である。
【図７】本発明に係るモーションキャプチャシステムのハードウェア構成を示す図である。
【図８】本発明に係るモーションキャプチャシステムのデータフロー図である。
【図９】メッシュ情報抽出アルゴリズムの各ステップにおける処理後の図を示す。左から、原画像、鮮鋭化された画像、二値化された画像、細線化された画像、抽出されたノード及びエッジ画像である。
【図１０】ラプラシアンオペレータによるエッジ鮮鋭を示す図である。
【図１１】エッジ鮮鋭のためのフィルタ行列である。
【図１２】８−近傍で定義した場合、４−近傍で定義した場合の、経路の差異を示す図である。
【図１３】８−近傍で定義した場合、４−近傍で定義した場合の、連結成分の差異を示す図である。
【図１４】図１４(a)が原画像であり、図１４(b)が有効領域を４連結で定義した場合の境界点、図１４(c)が８連結の場合の境界点を示している。図１４中で境界点は灰色で表されている。図１４(d)は境界線追跡を示す。
【図１５】連結数を計算するために用いる隣接格子の定義である。
【図１６】連結数定義の違いによる細線化画像の違いを示す。図１６中の画像は左から順に原画像、２値画像、８連結定義による細線化画像、４連結定義による細線化画像となっている。
【図１７】細線化後の画像は図１７のように交点が２つの分岐点として表現されてしまうことがある。図１７(a)が原画像、(b)が２値画像、(c)が細線化画像であり、細線化画像中の右側のマスが交点（連結数４）の画素、左側の枠で囲まれた部分が２つの分岐点（連結数３）に分かれてしまった交点を示している。
【図１８】初期サーフェスノードの生成を示す図である。
【図１９】３つのカメラからのデータを用いたメッシュの拡張を示す図である。
【図２０】特徴点のローカル三次元再構成を示す図である。
【図２１】正しいサーフェスノードに基づく誤ったサーフェスノードの三次元再構成の例を示す図である。
【図２２】（ａ）はサーフェスノードの矛盾を例示する図である。（ｂ）はサーフェスノードの一致を例示する図である。
【図２３Ａ】サーフェスノードの統合処理のフローチャートである。
【図２３Ｂ】図２３Ａの処理Ａのフローチャートである。
【図２３Ｃ】図２３Ｂの処理Ｂのフローチャートである。
【図２４】隣接するカメラからのサーフェスノードの一致あるいは矛盾の探索を示す図である。
【図２５】二つ隣りのカメラからのサーフェスノードの一致あるいは矛盾の探索を示す図である。
【図２６】メッシュマーカを設けた被服を被着した被験者を示す図である。
【図２７】図２６左図、右図のメッシュマーカに対するリアルタイム三次元再構成の実験の様子の部分拡大図をそれぞれ上図、下図に示す。
【図１】
0005061350.tif 000011
【図２】
0005061350.tif 000012
【図３】
0005061350.tif 000013
【図４】
0005061350.tif 000014
【図５】
0005061350.tif 000015
【図６】
0005061350.tif 000016
【図７】
0005061350.tif 000017
【図８】
0005061350.tif 000018
【図９】
0005061350.tif 000019
【図１０】
0005061350.tif 000020
【図１１】
0005061350.tif 000021
【図１２】
0005061350.tif 000022
【図１３】
0005061350.tif 000023
【図１５】
0005061350.tif 000024
【図１６】
0005061350.tif 000025
【図１７】
0005061350.tif 000026
【図１８】
0005061350.tif 000027
【図１９】
0005061350.tif 000028
【図２１】
0005061350.tif 000029
【図２２】
0005061350.tif 000030
【図２３Ａ】
0005061350.tif 000031
【図２３Ｂ】
0005061350.tif 000032
【図２３Ｃ】
0005061350.tif 000033
【図２４】
0005061350.tif 000034
【図２５】
0005061350.tif 000035
【図１４】
0005061350.tif 000036
【図２０】
0005061350.tif 000037
【図２６】
0005061350.tif 000038
【図２７】
0005061350.tif 000039