(57)【要約】  ３次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得し、前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第１パラメータであって、第１時点での第１パラメータを導出又は取得し、前記第１時点より後の第２時点での前記点群データと、前記第１時点での前記第１パラメータと、軸を有する幾何モデルとに基づいて、前記第２時点での前記第１パラメータを導出することを含む、コンピュータにより実行される対象物認識方法が開示される。
2018207282.tif 000002
【特許請求の範囲】
【請求項１】
３次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得し、
前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第１パラメータであって、第１時点での第１パラメータを導出又は取得し、
前記第１時点より後の第２時点での前記点群データと、前記第１時点での前記第１パラメータと、軸を有する幾何モデルとに基づいて、前記第２時点での前記第１パラメータを導出することを含む、コンピュータにより実行される対象物認識方法。
【請求項２】
前記点群データの取得は、周期毎に実行され、
前記第２時点は、前記第１時点に係る周期の次の周期を含む、請求項１に記載の対象物認識方法。
【請求項３】
前記第１時点での前記第１パラメータの導出は、前記第１時点での前記点群データに、前記幾何モデルを複数の個所で別々に当てはめ、前記第１時点での前記点群データに当てはめる複数の前記幾何モデルのそれぞれの位置及び軸方向に基づいて、前記第１時点での前記第１パラメータを導出する当てはめ処理を含み、
前記第２時点での前記第１パラメータの導出は、前記第２時点での前記点群データに当てはまる複数の前記幾何モデルのそれぞれの位置及び軸方向を、前記第２時点での前記第１パラメータを導出することを含む、請求項１又は２に記載の対象物認識方法。
【請求項４】
前記当てはめ処理は、前記点群データに含まれるノイズを一様分布でモデル化することを含む、請求項３に記載の対象物認識方法。
【請求項５】
前記幾何モデルは、円柱、円錐、台形柱、楕円柱、楕円錐、及び台形楕円柱のうちの少なくともいずれか１つに係り、
前記第２時点での前記第１パラメータの導出は、前記第１時点での前記第１パラメータの導出に用いた種類の複数の前記幾何モデルに基づく、請求項３又は４に記載の対象物認識方法。
【請求項６】
前記第２時点での前記第１パラメータの導出は、前記当てはめ処理によって第１所定基準を満たす前記第１パラメータが得られた後に実行され、
前記当てはめ処理は、前記第１所定基準を満たす前記第１パラメータが得られるまで周期毎に繰り返される、請求項３〜５のうちのいずれか１項に記載の対象物認識方法。
【請求項７】
前記当てはめ処理は、前記第１時点での前記点群データに基づく第１事後分布を算出することを含み、
前記第１所定基準は、前記複数の部位の数が所定数以上であり、かつ、前記複数の部位のそれぞれに係る前記第１事後分布のデータ和が第１所定値以上である場合に満たされる、請求項６に記載の対象物認識方法。
【請求項８】
前記第２時点での前記第１パラメータの導出結果が第２所定基準を満たすか否かを判定することを更に含み、
前記第２時点での前記第１パラメータの導出結果が前記第２所定基準を満たさない場合は、新たな前記第１時点での前記第１パラメータの導出からやり直すことを含む、請求項６又は７に記載の対象物認識方法。
【請求項９】
前記第２時点での前記点群データに基づく第２事後分布を算出することを含み、
前記複数の部位は、複数の前記幾何モデルに対応付けられる複数の第１部位と、前記幾何モデルに対応付けられない複数の第２部位とを含み、
前記第２所定基準は、前記複数の第１部位のそれぞれに係る前記第２事後分布のデータ和の合計が第２所定値以上である場合に満たされる、請求項８に記載の対象物認識方法。
【請求項１０】
前記第２事後分布の算出は、前記複数の第１部位のそれぞれごとに、前記第２時点での前記点群データのうちの、前記第１部位に対応付けられる前記幾何モデルの軸方向の中心からの軸方向の距離が所定距離以上のデータに対し、前記第２事後分布を０にすることを含む、請求項９に記載の対象物認識方法。
【請求項１１】
前記対象物は、人、又は、人型のロボットであり、
前記複数の第２部位は、前記対象物の腕部の根本の関節と、前記対象物の胴部における頭部側の関節とを結ぶ部位と、前記対象物の脚部の根本の関節と、前記対象物の胴部における前記脚部側の関節とを結ぶ部位を含む、請求項１０に記載の対象物認識方法。
【請求項１２】
前記第２時点での前記第１パラメータの導出結果が前記第２所定基準を満たす場合は、該第２時点での前記第２時点での前記第１パラメータの導出結果と、該第２時点に係る周期の次の周期の前記点群データとに基づいて、新たな前記第２時点での前記第１パラメータを導出することを更に含む、請求項８〜１１のうちのいずれか１項に記載の対象物認識方法。
【請求項１３】
前記第２時点での前記第１パラメータの導出は、前記複数の部位のそれぞれごとに、位置及び軸方向のそれぞれの変化であって、前記第１時点からの変化を表す第２パラメータを導出することを含む、請求項１２に記載の対象物認識方法。
【請求項１４】
前記第２パラメータの算出は、前記対象物の関節に対応付け可能な複数の関節を有する機構モデルを用いた順運動学に基く計算処理を含む、請求項１３に記載の対象物認識方法。
【請求項１５】
前記計算処理は、前記対象物の重心の並進、回転、及び前記複数の関節のそれぞれの回転を、微小変化するものとして扱うことを伴う、請求項１４に記載の対象物認識方法。
【請求項１６】
前記複数の部位は、可動部位と、非可動部位とを含み、
前記機構モデルは、前記複数の関節のうちの前記可動部位に係る各関節に３軸まわりの回転自由度を与えるモデルである、請求項１５に記載の対象物認識方法。
【請求項１７】
前記第２パラメータの算出は、前記計算処理のうちの、前記複数の関節のうちの前記非可動部位間の関節に係る計算部分を省略することを含む、請求項１６に記載の対象物認識方法。
【請求項１８】
前記第２パラメータの算出は、前記計算処理のうちの、前記複数の部位のうちの軸対称の幾何モデルに対応付けられる部位に係る計算部分であって、軸まわりの回転に係る計算部分を省略することを含む、請求項１６に記載の対象物認識方法。
【請求項１９】
３次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得する取得部と、
前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第１パラメータであって、第１時点での第１パラメータを導出又は取得するパラメータ導出／取得部と、
前記第１時点より後の第２時点での前記点群データと、前記第１時点での前記第１パラメータと、軸を有する幾何モデルとに基づいて、前記第２時点での前記第１パラメータを導出する導出処理部とを含む、対象物認識装置。
【請求項２０】
３次元の位置情報を得るセンサと、
前記センサから、複数の関節を有する対象物の表面に係る点群データを取得する取得部と、
前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第１パラメータであって、第１時点での第１パラメータを導出又は取得するパラメータ導出／取得部と、
前記第１時点より後の第２時点での前記点群データと、前記第１時点での前記第１パラメータと、軸を有する幾何モデルとに基づいて、前記第２時点での前記第１パラメータを導出する導出処理部とを含む、対象物認識システム。
【請求項２１】
３次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得し、
前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第１パラメータであって、第１時点での第１パラメータを導出又は取得し、
前記第１時点より後の第２時点での前記点群データと、前記第１時点での前記第１パラメータと、軸を有する幾何モデルとに基づいて、前記第２時点での前記第１パラメータを導出する
処理をコンピュータに実行させる対象物認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、対象物認識方法、対象物認識装置、対象物認識システム、及び対象物認識プログラムに関する。
【背景技術】
【０００２】
人など対象物の表面に点在する点群データに基づいて、対象物の骨格を追跡する技術が知られている（例えば、非特許文献１参照）。この技術では、点群データの分布に対し、混合ガウス分布を仮定し、かつ各ガウス分布の中心（特徴点）が対象物の表面に固定されていると仮定し、かかる仮定の下で、フレームごとに、特徴点を追跡することで、対象物の骨格を追跡している。
【先行技術文献】
【特許文献】
【０００３】
【非特許文献１】M. Ye and R. Yangによる"Real-time Simultaneous Pose and Shape Estimation for Articulated Objects Using a Single Depth Camera" in CVPR (2014)
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような従来技術では、フレームごとに、特徴点のずれを補正する反復計算が必要であるので、計算負荷が比較的高いという問題がある。例えば、上記のような従来技術では、毎フレーム10回以上の反復計算を実施するとすると、GPU（Graphics Processing Unit）を駆使しても30fpsが限度であると予測される。【０００５】
そこで、１つの側面では、本発明は、比較的低い計算負荷で対象物の関節又は骨格を精度良く認識することを目的とする。
【課題を解決するための手段】
【０００６】
本開示の一局面によれば、３次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得し、
前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第１パラメータであって、第１時点での第１パラメータを導出又は取得し、
前記第１時点より後の第２時点での前記点群データと、前記第１時点での前記第１パラメータと、軸を有する幾何モデルとに基づいて、前記第２時点での前記第１パラメータを導出することを含む、コンピュータにより実行される対象物認識方法が提供される。
【発明の効果】
【０００７】
本開示によれば、比較的低い計算負荷で対象物の関節又は骨格を精度良く認識することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】一実施例による対象物認識システムの概略構成を模式的に示す図である。
【図２】対象物認識装置のハードウェア構成の一例を示す図である。
【図３】対象物認識装置の機能の一例を示すブロック図である。
【図４】関節モデルの一例の説明図である。
【図５】ＥＭアルゴリズム部１２４による導出結果を模式的に示す図である。
【図６】長さ算出部１２８による半値全幅による決定方法の説明用の概略フローチャートである。
【図７】対象物認識システム１の全体動作の一例を示す概略フローチャートである。
【図８】部位認識処理の一例を示す概略フローチャートである。
【図９Ａ】対象物認識システムによる処理の説明図である。
【図９Ｂ】対象物認識システムによる処理の説明図である。
【図１０】χｋl'の説明図である。
【図１１】χｋl'の説明のための部位へ番号の割り当て例を示す図である。
【図１２】全体動作の一例の概略フローチャートである。
【図１３】微小フィッティング処理の一例の概略フローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら各実施例について詳細に説明する。本明細書において、特に言及しない限り、「あるパラメータ（例えば後述のパラメータθ）を導出する」とは、「該パラメータの値を導出する」ことを意味する。
【００１０】
図１は、一実施例による対象物認識システム１の概略構成を模式的に示す図である。図１には、説明用に、対象者Ｓ（対象物の一例）が示されている。
【００１１】
対象物認識システム１は、距離画像センサ２１と、対象物認識装置１００とを含む。
【００１２】
距離画像センサ２１は、対象者Ｓの距離画像を取得する。例えば、距離画像センサ２１は、３次元画像センサであり、空間全体のセンシングを行って距離を計測し、デジタル画像のように画素毎に距離情報を持つ距離画像（点群データの一例）を取得する。距離情報の取得方式は任意である。例えば、距離情報の取得方式は、特定のパターンを対象に投影してそれをイメージセンサで読み取り、投影パターンの幾何学的な歪みから三角測量の方式により距離を取得するアクティブステレオ方式であってもよい。また、レーザー光を照射してイメージセンサで反射光を読み取り、その位相のずれから距離を計測するTOF（Time-of-Flight）方式であってもよい。
【００１３】
尚、距離画像センサ２１は、位置が固定される態様で設置されてもよいし、位置が可動な態様で設置されてもよい。
【００１４】
対象物認識装置１００は、距離画像センサ２１から得られる距離画像に基づいて、対象者Ｓの関節や骨格を認識する。この認識方法については、後で詳説する。対象者Ｓは、人や人型のロボットであり、複数の関節を有する。以下では、一例として、対象者Ｓは、人であるものとする。対象者Ｓは、用途に応じて、特定の個人であってもよいし、不特定の人であってもよい。例えば、用途が体操等の競技時の動きの解析である場合、対象者Ｓは、競技選手であってよい。尚、用途が、体操やフィギュアスケート等の競技時のような激しい動き（高速かつ複雑な動作）を解析する場合、距離画像センサ２１は、好ましくは、図１に模式的に示すように、対象者Ｓの３次元形状に近い点群データが得られるように、複数個設置される。
【００１５】
対象物認識装置１００は、距離画像センサ２１に接続されるコンピュータの形態で実現されてもよい。対象物認識装置１００と距離画像センサ２１との接続は、有線による通信路、無線による通信路、又はこれらの組み合わせで実現されてよい。例えば、対象物認識装置１００が距離画像センサ２１に対して比較的遠隔に配置されるサーバの形態である場合、対象物認識装置１００は、ネットワークを介して距離画像センサ２１に接続されてもよい。この場合、ネットワークは、例えば、携帯電話の無線通信網、インターネット、World Wide Web、VPN（virtual private network）、WAN（Wide Area Network）、有線ネットワーク、又はこれらの任意の組み合わせ等を含んでもよい。他方、対象物認識装置１００が距離画像センサ２１に対して比較的近傍に配置される場合、無線による通信路は、近距離無線通信、ブルーツース（登録商標）、Ｗｉ−Ｆｉ（Wireless Fidelity）等により実現されてもよい。また、対象物認識装置１００は、異なる２つ以上の装置（例えばコンピュータやサーバ等）により協動して実現されてもよい。
【００１６】
図２は、対象物認識装置１００のハードウェア構成の一例を示す図である。
【００１７】
図２に示す例では、対象物認識装置１００は、制御部１０１、主記憶部１０２、補助記憶部１０３、ドライブ装置１０４、ネットワークＩ／Ｆ部１０６、入力部１０７を含む。
【００１８】
制御部１０１は、主記憶部１０２や補助記憶部１０３に記憶されたプログラムを実行する演算装置であり、入力部１０７や記憶装置からデータを受け取り、演算、加工した上で、記憶装置などに出力する。制御部１０１は、例えばＣＰＵ（Central Processing Unit)やＧＰＵを含んでよい。
【００１９】
主記憶部１０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部１０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００２０】
補助記憶部１０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００２１】
ドライブ装置１０４は、記録媒体１０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【００２２】
記録媒体１０５は、所定のプログラムを格納する。この記録媒体１０５に格納されたプログラムは、ドライブ装置１０４を介して対象物認識装置１００にインストールされる。インストールされた所定のプログラムは、対象物認識装置１００により実行可能となる。
【００２３】
ネットワークＩ／Ｆ部１０６は、有線及び／又は無線回線などのデータ伝送路により構築されたネットワークを介して接続された通信機能を有する周辺機器と対象物認識装置１００とのインターフェースである。
【００２４】
入力部１０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、マウスやスライスパット等を有する。入力部１０７は、音声入力やジェスチャー等の他の入力方法に対応してもよい。
【００２５】
尚、図２に示す例において、以下で説明する各種処理等は、プログラムを対象物認識装置１００に実行させることで実現することができる。また、プログラムを記録媒体１０５に記録し、このプログラムが記録された記録媒体１０５を対象物認識装置１００に読み取らせて、以下で説明する各種処理等を実現させることも可能である。なお、記録媒体１０５は、様々なタイプの記録媒体を用いることができる。例えば、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等であってよい。なお、記録媒体１０５には、搬送波は含まれない。
【００２６】
図３は、対象物認識装置１００の機能の一例を示すブロック図である。
【００２７】
対象物認識装置１００は、データ入力部１１０（取得部の一例）と、１シーン骨格認識部１２０（パラメータ導出／取得部の一例）と、幾何モデルデータベース１４０（図３では、"幾何モデルＤＢ"と表記）とを含む。また、対象物認識装置１００は、キャリブレーション情報記憶部１４２と、微小フィッティング処理部１５０（導出処理部の一例）と、出力部１６０とを含む。データ入力部１１０、１シーン骨格認識部１２０、微小フィッティング処理部１５０、及び出力部１６０は、図２に示す制御部１０１が主記憶部１０２に記憶された１つ以上のプログラムを実行することで実現できる。幾何モデルデータベース１４０は、図２に示す補助記憶部１０３により実現されてよい。また、キャリブレーション情報記憶部１４２は、図２に示す主記憶部１０２（例えばＲＡＭ）により実現されてよい。尚、対象物認識装置１００の機能の一部は、距離画像センサ２１に内蔵されうるコンピュータにより実現されてもよい。
【００２８】
データ入力部１１０には、距離画像センサ２１から距離画像（以下、「点群データ」と称する）が入力されるとともに、使用する関節モデルが入力される。点群データは、上述のとおりであり、例えばフレーム周期毎に入力されてよい。また、複数の距離画像センサ２１が用いられる場合は、点群データは、複数の距離画像センサ２１からの距離画像の集合を含んでよい。
【００２９】
使用する関節モデルは、対象者Ｓに係る任意のモデルであり、例えば、複数の関節と、関節間の骨格（リンク）とで表されるモデルである。本実施例では、一例として、図４に示すような関節モデルが用いられる。図４に示すような関節モデルは、頭部が１つ、胴部（胴体部）、両腕部、及び両脚部がそれぞれ３つの関節を持つ１６関節モデルであり、頭部は両端が関節として規定され、その他は両端及び中点の３つが関節として規定される。具体的には、１６個の関節ａ０〜ａ１５と、関節間を繋ぐ１５個の骨格ｂ１〜ｂ１５（又は「部位ｂ１〜ｂ１５」とも称する）とからなる。尚、理解できるように、例えば関節ａ４，ａ７は、左右の肩の関節であり、関節ａ２は、頸椎に係る関節である。また、関節ａ４，ａ７は、左右の股関節であり、関節ａ０は、腰椎に係る関節である。このような関節モデルでは、股関節に係る骨格ｂ１４、ｂ１５や、肩の関節に係る骨格ｂ４、ｂ７は、後述の幾何モデルを用いたフィッティングだけでは精度良く認識できない骨格（以下、「隠れた骨格」とも称する）となる。また、以下の説明において、関節や部位に関する位置関係について、「祖先」とは、体の中心に近い側を指し、「子孫」とは、体の中心から遠い側を指す。
【００３０】
１シーン骨格認識部１２０は、ある一時点（一シーン）に係る対象者Ｓの点群データに基づいて、１シーン骨格認識処理を行う。１シーン骨格認識処理は、ある一時点（一シーン）に係る対象者Ｓの点群データに対して、幾何モデルを用いたフィッティングを行うことで、フィッティング結果であるキャリブレーション情報を生成することを含む。幾何モデルを用いたフィッティングの方法は、キャリブレーション情報の生成方法とともに後述する。以下では、１シーン骨格認識部１２０によってキャリブレーション情報が生成される時点を、「キャリブレーション実施時点」と称する。キャリブレーション実施時点は、初回の１時点であってもよいし、所定時間ごとや、所定の条件が成立する場合に到来してもよい。
【００３１】
１シーン骨格認識部１２０は、キャリブレーション情報を生成すると、生成したキャリブレーション情報をキャリブレーション情報記憶部１４２に記憶する。
【００３２】
尚、１シーン骨格認識部１２０での処理は、後述の微小フィッティング処理部１５０での処理に比べて処理負荷が有意に高い。従って、対象物認識装置１００の処理能力に依存するが、キャリブレーション情報の生成には、フレーム周期よりも長い時間がかかる場合もあり得る。この場合は、微小フィッティング処理部１５０による処理が開始できる状態となるまで（即ちキャリブレーション情報の生成が完了するまで）、対象者Ｓに、しばらく静止してもらう等の措置が取られてよい。
【００３３】
微小フィッティング処理部１５０は、キャリブレーション実施時点以後のある一時点（一シーン）に係る対象者Ｓの点群データと、キャリブレーション情報記憶部１４２内のキャリブレーション情報とに基づいて、対象者Ｓの骨格情報を生成する。微小フィッティング処理部１５０は、幾何モデルを用いた微小フィッティング処理により、対象者Ｓの骨格情報を生成する。微小フィッティング処理の方法は後述する。骨格情報は、関節ａ０〜ａ１５の各位置を特定できる情報を含んでもよい。また、骨格情報は、骨格ｂ１〜ｂ１５の位置や、向き、太さを特定できる情報を含んでもよい。骨格情報の用途は任意であるが、次のフレーム周期における同骨格情報の導出に利用されてもよい。また、骨格情報は、最終的には、体操等の競技時の対象者Ｓの動きの解析に利用されてもよい。例えば体操の競技時の対象者Ｓの動きの解析では、骨格情報に基づく技の認識が実現されてもよい。また、他の用途としては、作業者を想定する対象者Ｓの動きを解析して、ロボットプログラムに利用されてもよい。或いは、ジェスチャーによるユーザインターフェースや、個人の識別、熟練技術の定量化などに利用することもできる。
【００３４】
出力部１６０は、表示装置等（図示せず）に、対象者Ｓの骨格情報（図３では、"認識結果"と表記）を出力する。例えば、出力部１６０は、フレーム周期ごとに、略リアルタイムに、対象者Ｓの骨格情報を出力してもよい。この場合、キャリブレーション実施時点では、出力部１６０は、キャリブレーション情報に基づく対象者Ｓの骨格情報を出力し、非キャリブレーション実施時点では、微小フィッティング処理部１５０からの対象者Ｓの骨格情報を出力してもよい。或いは、対象者Ｓの動きの解説用などでは、出力部１６０は、非リアルタイムで、骨格情報を時系列に出力してもよい。
【００３５】
本実施例によれば、上述のように、１シーン骨格認識部１２０による幾何モデルを用いたフィッティング結果（キャリブレーション情報）に基づいて、微小フィッティング処理部１５０が微小フィッティング処理を行うことで、対象者Ｓの骨格情報を生成できる。これにより、１シーン骨格認識部１２０による幾何モデルを用いたフィッティングをフレームごとに実行する場合に比べて、計算負荷が低減するので、比較的低い計算負荷で対象物の関節又は骨格を精度良く認識できる。これにより、体操やフィギュアスケートなど、高速かつ複雑な動作の解析等にも適用可能となる。
【００３６】
以下、１シーン骨格認識部１２０、及び，微小フィッティング処理部１５０について、順に更に説明する。
【００３７】
［１シーン骨格認識部］
１シーン骨格認識部１２０は、クラスタリング部１２２と、ＥＭアルゴリズム部１２４と、モデル最適化部１２６と、長さ算出部１２８とを含む。また、対象物認識装置１００は、更に、部位認識部１３０と、骨格整形部１３２と、キャリブレーション情報生成部１３４とを含む。
【００３８】
クラスタリング部１２２は、データ入力部１１０に入力される点群データをクラスタリングして、クラスター毎にフィッティングを行って初期あてはめ結果（後述の幾何モデルを用いたフィッティングに用いる初期値）を取得する。クラスタリング手法としては、Kmeans++法などを用いることができる。尚、クラスタリング部１２２に与えられるクラスター数は、手動による入力でもよいが、骨格モデルに応じた所定数が用いられてもよい。骨格モデルに応じた所定数は、例えば、骨格モデルに係る部位の総数から、隠れた骨格に係る部位の数を引いた値である。即ち、図４に示す16関節（15部位）モデルの場合、4部位が隠れた骨格となるため、最初のクラスター数である所定数は"11"である。この場合、クラスタリングによるフィッティング結果に応じて、モデルの一部が棄却される。棄却方法としては、モデルで説明できる点群データの数の期待値である事後分布のデータ和に対して閾値を設定し、閾値以下のモデルを棄却する方法が用いられてよい。棄却数が決まると、クラスタリング部１２２は、再びそのクラスター数でフィッティングを行うことで、後述の幾何モデルを用いたフィッティングに用いる初期値を得ることができる。
【００３９】
尚、変形例では、クラスタリング部１２２に代えて、機械学習部が用いてフィッティングに用いる初期値が取得されてもよい。この場合、機械学習部は、データ入力部１１０に入力される点群データに基づいて、15部位についてラベル分け（部位認識）を行う。機械学習方式としてランダムフォレストを用い、特徴量として注目画素と周辺画素の距離値の差が使用されてもよい。また、距離画像を入力として各画素のマルチクラス分類(Multi-class Classification)を行う方式であってもよい。また、ランダムフォレストの場合でも距離値の差以外の特徴量を使ってもよいし、特徴量に相当するパラメータも含めて学習を行う深層学習(Deep Learning)を用いてもよい。
【００４０】
ＥＭアルゴリズム部１２４は、データ入力部１１０に入力される点群データと、幾何モデルデータベース１４０内の幾何モデルと、クラスタリング部１２２で得たフィッティングの初期値とに基づいて、ＥＭアルゴリズムによりパラメータθを導出する。クラスタリング部１２２で得たフィッティングの初期値を用いるのは、EMアルゴリズムではある程度、解に近い初期値を与えることが有用であるためである。初期値は、部位数Ｍや、後述のパラメータθに係る初期値である。幾何モデルデータベース１４０内の幾何モデルは、例えば円柱であり、以下では、主に円柱である場合について説明する。他の幾何モデルの可能性は後述する。
【００４１】
ＥＭアルゴリズム部１２４は、点群データｘｎが幾何モデルの表面に最も集まるようパラメータθを決定する。点群データｘｎは、３次元の空間座標（ｘ，ｙ，ｚ）で表現されるＮ個の各点（例えば位置ベクトル）の集合（ｘ１、ｘ２、・・・、ｘＮ）である。この場合、例えば空間座標のｘ成分及びｙ成分は、画像平面内の２次元座標の値であり、ｘ成分は、水平方向の成分であり、ｙ成分は、垂直方向の成分である。また、ｚ成分は、距離を表す。
【００４２】
パラメータθは、部位ｍ（ｍ＝１，２、・・・、Ｍ'）に係る幾何モデル（ここでは円柱）の太さ（径）ｒｍ、部位ｍに係る幾何モデルの位置ｃｍ０と向きｅｍ０、及び、分散σ２の４つある。尚、部位ｍとは、幾何モデルごとの点群データの部位（一部）であり、幾何モデル及びそれに伴い対象者Ｓの部位に対応付けられる部位である。部位ｍは、対象者Ｓの２部位に同時に対応付けられる場合もある。例えば、対象者Ｓが肘を伸ばしている状態では、肘の関節から手首の関節（子孫側の関節）までの部位（図４の部位ｂ６や部位ｂ９）と、肘の関節から肩の関節（先祖側の関節）までの部位（図４の部位ｂ５や部位ｂ８）とが一の部位ｍとなりうる。
【００４３】
ｒｍ及びσ２は、スカラーであり、ｃｍ０及びｅｍ０は、ベクトルである。また、ｅｍ０は、単位ベクトルとする。即ち、ｅｍ０は、円柱の軸の向きを表す単位ベクトルである。また、位置ｃｍ０は、円柱の軸上の、任意の点の位置に係る位置ベクトルである。尚、円柱の軸方向の長さ（高さ）は不定とされる。また、幾何モデルの向きｅｍ０は、幾何モデルの軸方向と同じ概念である。
【００４４】
点群データｘｎと部位ｍの表面残差εｍ(ｘｎ,θ)（表面に垂直な方向の差）がガウス分布であることを仮定すると、幾何モデル全体は以下の通り表現できる。
【００４５】
【数１】
2018207282.tif 000003
ここで、ｐ（ｘｎ）は、点群データｘｎの混合確率分布モデルであり、上述のように、σ２は、分散であり、Ｍ'は、クラスタリング部１２２で得たクラスタ数が用いられる。このとき、対応する対数尤度関数は、以下のとおりである。
【００４６】
【数２】
2018207282.tif 000004
ここで、Ｎは、データ数（１フレームに係る点群データに含まれるデータ数）である。
【００４７】
数２は、混合ガウスモデルの対数尤度関数であるため、ＥＭアルゴリズム等を用いることができる。本実施例では、ＥＭアルゴリズム部１２４は、ＥＭアルゴリズムに基づいて、対数尤度関数を最大化するパラメータθ及び分散σ２を導出する。
【００４８】
部位ｍに係る幾何モデルが円柱であるとき、表面残差εｍ(ｘｎ,θ)は、次の通り表現できる。尚、ベクトル間の符号"×"は外積を表す。
εｍ(ｘｎ,θ)＝｜（ｘｎ−ｅｍ０）×ｅｍ０｜−ｒｍ
但し、本実施例では、線形化のため、表面残差εｍ(ｘｎ,θ)は、数２の中での指数部分が二乗の差となるように表現され、具体的には以下のとおりである。
【００４９】
【数３】
2018207282.tif 000005
ＥＭアルゴリズムは、知られているように、期待値を算出するEステップと、期待値を最大化するMステップの繰返しである。
【００５０】
Eステップでは、ＥＭアルゴリズム部１２４は、以下の事後分布ｐｎｍを計算する。
【００５１】
【数４】
2018207282.tif 000006
Mステップでは、ＥＭアルゴリズム部１２４は、以下の期待値Ｑ（θ,σ２)を最大化するパラメータθ及び分散σ２を導出する。尚、Ｍステップでは、事後分布ｐｎｍは定数として扱われる。
【００５２】
【数５】
2018207282.tif 000007
ここで、Ｐは、事後分布ｐｎｍのデータ和の全部位の和（以下、「事後分布ｐｎｍのデータ和の全部位和」とも称する）であり、以下のとおりである。
【００５３】
【数６】
2018207282.tif 000008
期待値Ｑ（θ,σ２)の分散σ２による偏微分から、期待値Ｑ（θ,σ２)を最大化する分散σ２の推定値σ２＊は、以下のとおりである。
【００５４】
【数７】
2018207282.tif 000009
この推定値σ２＊を数５の式に代入すると、以下のとおりである。
【００５５】
【数８】
2018207282.tif 000010
パラメータθの各要素（ｒｍ、ｃｍ０、及びｅｍ０）に関して、太さｒｍの推定値ｒ＊ｍは、以下の通り、直接的に最小化が可能である。
【００５６】
【数９】
2018207282.tif 000011
ここで、数９における表現〈〉ｐについて、事後分布ｐｎｍを用いた平均操作であり、任意のテンソルないし行列Ａｎｍに対して、以下の通りとする。
【００５７】
【数１０】
2018207282.tif 000012
向きｅｍ０の推定値ｅ＊ｍ０は、点群データの主成分であることに着目すると、主成分分析に基づいて導出できる。即ち、向きｅｍ０の推定値ｅ＊ｍ０は、以下の分散共分散行列σｘｘの最も固有値の大きい固有ベクトルの向きとして求めることができる。
【００５８】
【数１１】
2018207282.tif 000013
尚、数１０に示す平均操作により、ｍについては和をとっていない。従って、〈ｘｎ〉ｐは、部位ｍに対する依存性を有し、部位ｍに係る幾何モデル（円柱）の重心(中心)に対応する。同様に、分散共分散行列σｘｘも部位ｍに固有であり、部位ｍに係る幾何モデル（円柱）の向きに対応する。
或いは、期待値Ｑ（θ,σ２)は、パラメータθの各要素（ｒｍ、ｃｍ０、及びｅｍ０）に関して非線形であるので、向きｅｍ０は、線形近似により導出されてもよい。具体的には、微小回転による更新式は、ノルムが保存される態様で規定され、以下のとおりである。
【００５９】
【数１２】
2018207282.tif 000014
ここで、Δｅは、微小回転ベクトルである。このとき、Δｅの推定値Δｅ＊は、数８の式をΔｅで微分することで得られ、以下のとおりである。
【００６０】
【数１３】
2018207282.tif 000015
ここで、Ｂｍの逆行列は、以下の通りであり、
【００６１】
【数１４】
2018207282.tif 000016
数１４におけるＷは、以下の通りである。
【００６２】
【数１５】
2018207282.tif 000017
尚、数１４や数１５において（以下も同様）、Ｔは、転置を表す。数１５において、ｅ１及びｅ２は、向きｅｍ０に対して直交する単位ベクトルである。
また、数１３におけるａｎｍやｂｎｍは、以下のとおりである（図４に示した関節ａ０〜ａ１５や骨格ｂ１〜ｂ１５の表記とは無関係である）。
【００６３】
【数１６】
2018207282.tif 000018
【００６４】
【数１７】
2018207282.tif 000019
よって、向きｅｍ０の推定値ｅ＊ｍ０は、以下の通りである。
【００６５】
【数１８】
2018207282.tif 000020
このとき、太さｒｍの推定値ｒ＊ｍを数８の式に代入し、位置ｃｍ０の偏微分から、位置ｃｍ０の推定値ｃ＊ｍ０は、以下の通り、直接的に導出可能である。
【００６６】
【数１９】
2018207282.tif 000021
ここで、共分散行列σｙｙの逆行列、及び、ベクトルσｙ２ｙ（下付き「ｙ２ｙ」）、以下のとおりである。
【００６７】
【数２０】
2018207282.tif 000022
【００６８】
【数２１】
2018207282.tif 000023
尚、上記の場合、ＥＭアルゴリズム部１２４は、まず、位置ｃｍ０の推定値ｃ＊ｍ０を求めてから、太さｒｍの推定値ｒ＊ｍを求めることになる。
【００６９】
尚、変形例では、例えば他の計測によって対象者Ｓの形状情報を所持している場合などでは、パラメータθのうちの太さｒｍは、ユーザにより手入力されてもよいし、形状情報に基づいて自動的に設定されてもよい。この場合、ＥＭアルゴリズム部１２４は、パラメータθのうちの残りの要素（位置ｃｍ０及び向きｅｍ０）を導出することになる。尚、他の計測は、事前の精密な計測であってもよいし、並行して実行されるものであってもよい。
【００７０】
モデル最適化部１２６は、ＥＭアルゴリズム部１２４が一の部位に対して複数種類の幾何モデルを用いてフィッティングを実行する際、実行した複数種類のうちの、フィッティングの際のあてはまりが最も良好な種類の幾何モデルを導出する。
【００７１】
複数種類の幾何モデルは、円柱以外の幾何モデルとして、円錐、台形柱、楕円柱、楕円錐、及び台形楕円柱のうちの少なくともいずれか１つに係る幾何モデルを含む。但し、一の部位に係る複数種類の幾何モデルは、円柱を含まなくてもよい。また、一の部位に係る複数種類の幾何モデルは、部位ごとに異なってもよい。また、一部の特定の部位については、複数種類の幾何モデルを用いずに、単一の固定の幾何モデルが使用されてもよい。
【００７２】
例えば、ＥＭアルゴリズム部１２４は、まず、円柱の幾何モデルを用いて、各部位に対するフィッテングを行う。次いで、ＥＭアルゴリズム部１２４は、ある部位に係る幾何モデルを、円柱から他（例えば円錐等）に切り替え、同部位に対するフィッテングを行う。そして、モデル最適化部１２６は、対数尤度関数の最も大きな幾何モデルを、あてはまりが最も良好な種類の幾何モデルとして選択する。モデル最適化部１２６は、対数尤度関数の最も大きな幾何モデルに代えて、事後分布のデータ和の全部位和が最も大きな幾何モデルを、あてはまりが最も良好な種類の幾何モデルとして選択してもよい。
【００７３】
円錐の場合、表面残差εｍ(ｘｎ,θ)は、以下の通り表現されてよい。
【００７４】
【数２２】
2018207282.tif 000024
ここで、位置ｃｍ０は頂点位置に対応し、向きｅｍ０は、中心軸の単位ベクトルである。また、ベクトルｎｍは、円錐の表面上のある1点における法線ベクトルである。
【００７５】
台形柱の場合、表面残差εｍ(ｘｎ,θ)は、円錐の場合と同様であってよい。即ち台形柱の場合、円錐の一部に対して分布を規定することで表現できる。
【００７６】
楕円柱の場合、表面残差εｍ(ｘｎ,θ)は、以下の通り表現されてよい。
【００７７】
【数２３】
2018207282.tif 000025
ここで、ｄｍは、焦点距離であり、ａｍは、断面の楕円の長軸の長さであり、ｎｍ'は、長軸方向の単位ベクトルである。尚、同様に、位置ｃｍ０は軸上の位置に対応し、向きｅｍ０は、楕円柱の軸（軸方向）の単位ベクトルである。
【００７８】
また、楕円錐の場合、表面残差εｍ(ｘｎ,θ)は、以下の通り表現されてよい。
【００７９】
【数２４】
2018207282.tif 000026
ここで、ψｍ１及びψｍ２は、それぞれ長軸及び短軸方向への傾斜角である。また、同様に、位置ｃｍ０は頂点位置に対応し、向きｅｍ０は、中心軸の単位ベクトルである。
【００８０】
また、台形柱と円錐との関係と同様、台形楕円柱の場合、表面残差εｍ(ｘｎ,θ)は、楕円錐の場合と同様であってよい。
【００８１】
ここで、長さが無限として定式化されている円柱や楕円柱などの幾何モデルを用いる場合、Ｅステップでは、ＥＭアルゴリズム部１２４は、好ましくは、有限長処理を行う。有限長処理は、点群データｘｎのうちの、所定の条件を満たすデータについてのみ事後分布ｐｎｍを算出し、他のデータについては事後分布ｐｎｍを０とする処理である。有限長処理は、部位ｍに無関係なデータの混入を防ぐための処理であり、所定の条件は、部位ｍに無関係なデータを排除できるように設定される。これにより、実際には関係ないはずの点群データが解析に影響を及ぼすことを抑制できる。所定の条件を満たすデータは、例えば、以下の式を満たすデータであってよい。
【００８２】
【数２５】
2018207282.tif 000027
ここで、ｌｍ０は、部位ｍに係る入力長さであり、αはマージン（例えば１．２）である。数２５によれば、点群データのうちの、幾何モデルの中心（又は中心位置、以下同じ）からの軸方向の距離が所定距離（＝αｌｍ０）以上のデータに対し、事後分布が０とされる。入力長さｌｍ０は、手入力することも可能であるし、他の計測によって得られる対象者Ｓの形状情報に基づいて設定されてもよい。
【００８３】
長さ算出部１２８は、長さが無限として定式化されている円柱や楕円柱などの幾何モデルがＥＭアルゴリズム部１２４によって利用された場合に、幾何モデルの中心から端部までの長さ（部位ｍの中心から端部までの長さ）に対応する長さパラメータｌｍを導出する。例えば、長さ算出部１２８は、部位ｍの長さパラメータｌｍを、分散共分散行列σｘｘを用いて以下の通り算出してもよい。
【００８４】
【数２６】
2018207282.tif 000028
尚、Ｃは、定数倍の補正値である。
【００８５】
或いは、長さ算出部１２８は、部位ｍの軸方向に沿った点群データの分布態様に基づいて、部位ｍの長さパラメータｌｍを導出してもよい。具体的には、長さ算出部１２８は、部位ｍの長さパラメータｌｍを、半値全幅による決定によって算出してもよい。半値全幅とはデータが多いところと比べて、データ数が半分になるところまでの区間を指す。長さ算出部１２８は、部位ｍの「切れ目」を見つけることで長さパラメータを導出する。即ち、長さ算出部１２８は、部位ｍを、向きｅｍ０に係る軸方向を法線とする輪の態様で軸方向に沿って細かく輪切りにして、その中に含まれるデータ数をカウントし、所定の閾値以下になったところを「切れ目」と規定する。具体的には、半値全幅による決定では、所定の閾値は、カウント値の最大値の半分であるが、カウント値の最大値の０．１倍のような半分以外の値であってもよい。
【００８６】
ここで、図５及び図６を参照して、長さ算出部１２８による半値全幅による決定方法の一例を具体的に説明する。
【００８７】
図５は、ＥＭアルゴリズム部１２４による導出結果（幾何モデルによるフィッティング結果）を模式的に示す図であり、図６は、長さ算出部１２８による半値全幅による決定方法の説明用の概略フローチャートである。
【００８８】
図５では、頭部及び胴部がそれぞれ１つずつの円柱でフィッテングされており、両腕部及び両脚部が、それぞれ片方ずつ、１つずつの円柱でフィッテングされている。図５では、対象者Ｓの腕部が部位ｍである場合について代表して、部位ｍの長さパラメータｌｍ（ｌ＋ｍ及びｌ−ｍ）の算出方法について説明する。尚、図５に示すように、ここでは、腕部は、肘の関節が伸ばされているため、ＥＭアルゴリズム部１２４により１つの部位として認識されている（１つの幾何モデルで当てはめられている）。
【００８９】
ステップＳ６００では、長さ算出部１２８は、ｎ＝１に設定する。ｎの意義は後述する。
【００９０】
ステップＳ６０２では、長さ算出部１２８は、点群データｘｎのうちの、次の条件を満たすデータの数をカウントする。
【００９１】
【数２７】
2018207282.tif 000029
〈ｘｎ・ｅｍ０〉ｐは、部位ｍの中心に対応する。Δｌｍは、輪切りの幅（軸方向ｅｍ０に沿った幅）に対応し、例えば０．０１ｌｍ０である。尚、ｌｍ０は、上述のように、部位ｍに係る入力長さである。Ｓｍは、事後分布ｐｎｍに対する閾値であり、例えば０．１である。
【００９２】
ステップＳ６０４では、長さ算出部１２８は、ステップＳ６０２で得たカウント数に基づいて、基準値Ｃｒｅｆを設定する。例えば、長さ算出部１２８は、ステップＳ６０２で得たカウント数を、基準値Ｃｒｅｆとして設定する。
【００９３】
ステップＳ６０６では、ｎを"１"だけインクリメントする。
【００９４】
ステップＳ６０８では、長さ算出部１２８は、点群データｘｎのうちの、次の条件を満たすデータの数をカウントする。即ち、長さ算出部１２８は、Δｌｍだけずらした次の区間において、次の条件を満たすデータの数をカウントする。
【００９５】
【数２８】
2018207282.tif 000030
ステップＳ６１０では、長さ算出部１２８は、ステップＳ６０８でカウントしたデータ数が、基準値Ｃｒｅｆの所定数倍（例えば０．５倍）以下であるか否かを判定する。判定結果が"ＹＥＳ"の場合は、ステップＳ６１２に進み、それ以外の場合は、ステップＳ６０６からの処理を繰り返す。
【００９６】
ステップＳ６１２では、長さ算出部１２８は、現在のｎの値を用いて、部位ｍのうちの、中心から子孫側の端部までの長さパラメータｌ＋ｍを、ｎΔｌｍとして算出する。即ち、ｌ＋ｍ＝ｎΔｌｍとして算出する。
【００９７】
ステップＳ６２０〜ステップＳ６３２では、長さ算出部１２８は、逆方向（祖先側）に進むことで、同様の考えた方で、図５に示す部位ｍのうちの、中心から祖先側の端部までの長さパラメータｌ−ｍを算出する。
【００９８】
尚、変形例として、長さ算出部１２８は、次の通り、部位ｍの長さパラメータｌｍを算出してもよい。
【００９９】
【数２９】
2018207282.tif 000031
ここで、Ｎｍは、以下で定義されるｎの部分集合であり、ある閾値ｐｍｔｈより事後分布ｐｎｍが小さいｎの集合である。
【０１００】
【数３０】
2018207282.tif 000032
閾値ｐｍｔｈは、例えば、以下の通りである。
【０１０１】
【数３１】
2018207282.tif 000033
これは、部分集合Ｎｍは、点群データｘｎのうちの、部位ｍに属さないデータの集合を表す。従って、長さ算出部１２８は、部分集合Ｎｍのうちの、中心からの距離（数２９の｜ｘｎ・ｅｍ０−〈ｘｎ・ｅｍ０〉ｐ｜）が最小となるデータに基づいて、部位ｍの長さパラメータｌｍを算出していることになる。
【０１０２】
部位認識部１３０は、部位ｍのパラメータ（ｒｍ、ｃｍ０、及びｅｍ０）の導出結果と、部位ｍの長さパラメータｌｍの導出結果とに基づいて、部位認識処理を行う。部位認識処理は、部位ｍと対象者Ｓの各部位（図４の各部位ｂ１〜ｂ１５参照）との対応関係を認識することを含む。
【０１０３】
ここで、部位ｍの長さパラメータｌｍの導出結果及びｃｍ０及びｅｍ０の導出結果によれば、部位ｍの中心（＝〈ｘｎ・ｅｍ０〉ｐ）からの長さパラメータｌ＋ｍ、ｌ−ｍに基づいて、部位ｍの軸上の端部（長さパラメータｌｍを決める端部）の位置を導出できる。具体的には、部位ｍの軸上の端部の位置ξｍ０は、以下を満たす。
【０１０４】
【数３２】
2018207282.tif 000034
このとき、数３２の右辺第２項は、祖先側の端部と、子孫側の端部とで以下の通りとなる。
【０１０５】
【数３３】
2018207282.tif 000035
ここで、ｌ＋ｍは、上述のように、部位ｍの中心（＝〈ｘｎ・ｅｍ０〉ｐ）からの子孫側への長さパラメータであり、ｌ−ｍは、部位ｍの中心からの祖先側への長さパラメータであり、上述のように長さ算出部１２８により算出される。βは、定数であり、例えば１であってよい。
【０１０６】
以下の説明で、「関節点」とは、関節に係る代表点（関節に係る位置を表す点）を指し、このようにして導出できる部位ｍの端部（位置）も関節点に対応する。また、以下の説明で、部位ｍ＊（＊は、任意の記号）は、パラメータ（ｒｍ、ｃｍ０、及びｅｍ０）が得られた部位ｍ（ｍ＝１，２、・・・、Ｍ'）のうちの特定の部位を表す。部位認識部１３０は、太さｒｍを利用して、主部位を識別する。主部位は、太さが最も大きい部位であり、本実施例では、対象者Ｓの胴部である。
【０１０７】
部位認識部１３０は、最も太い部位、又は、太さの差が所定値未満でありかつ隣接する２つの１番目と２番目に太い部位を、対象物の主部位として認識する。具体的には、部位認識部１３０は、１番目に大きい部位ｍ１と2番目に大きい部位ｍ２との間の差が所定値未満である場合は、部位認識部１３０は、いずれの部位ｍ１、ｍ２も胴部として識別する。所定値は、部位ｍ１、ｍ２の太さの差に対応した適合値である。他方、１番目に大きい部位ｍ１と2番目に大きい部位ｍ２との間の差が所定値以上である場合は、部位認識部１３０は、１番目に大きい部位ｍ１だけを、胴部（部位ｂ１＋部位ｂ２）として識別する。この場合、部位認識部１３０は、部位ｍｌに対して、「切断フラグ」を設定する。切断フラグの意義は後述する。これにより、例えば、図４において、対象者Ｓの姿勢に応じて、部位ｂ１及び部位ｂ２が真っ直ぐ伸びている場合でも、部位ｂ１及び部位ｂ２を、部位ｍ１及び部位ｍ２に係る胴部として認識できる。
【０１０８】
部位認識部１３０は、主部位（胴部）を識別すると、胴部の底面近傍にある関節点を判定（識別）する。胴部の底面に対しては、部位認識部１３０は、胴部の底面側の端部の位置に設定される微小な円柱（あるいは楕円柱や台形柱など）内に、胴部側の端部の位置が属する２つの部位ｍｌ，ｍｒを特定する。尚、微小な円柱の高さは所定の値が使用されてもよい。そして、部位認識部１３０は、部位ｍｌ，ｍｒを、左脚部に係る部位（図４の部位ｂ１０又は、部位ｂ１０＋ｂ１１参照）と右脚部に係る部位（図４の部位ｂ１２又は、部位ｂ１２＋ｂ１３参照）として認識する。
【０１０９】
部位認識部１３０は、左脚部に係る部位ｍｌを識別すると、部位ｍｌにおける胴部から遠い側の端部の位置に設定される球（以下、「連結球」とも称する）内に、胴部に近い側の端部の位置を有する部位が存在するか否かを判定する。尚、連結球の径は所定の値が使用されてもよい。そして、連結球内に、胴部に近い側の端部の位置を有する部位ｍｌ２が存在する場合は、部位認識部１３０は、部位ｍｌを、左脚部の腿ｂ１０として認識し、部位ｍｌ２を、左脚部の脛ｂ１１として認識する。他方、連結球内に、胴部に近い側の端部の位置を有する部位が存在しない場合は、部位認識部１３０は、部位ｍｌを、左脚部の腿と脛の双方を含む部位として認識する。この場合、部位認識部１３０は、部位ｍｌに対して、「切断フラグ」を設定する。これにより、例えば、図４において、対象者Ｓの姿勢に応じて、部位ｂ１０及びｂ１１が真っ直ぐ伸びている場合でも、部位ｂ１０及びｂ１１を、左脚部に係る部位として認識できる。
【０１１０】
同様に、部位認識部１３０は、右脚部に係る部位ｍｒを識別すると、部位ｍｒにおける胴部から遠い側の端部の位置に設定される球（連結球）内に、胴部に近い側の端部の位置を有する部位が存在するか否かを判定する。尚、連結球の径は所定の値が使用されてもよい。そして、連結球内に、胴部に近い側の端部の位置を有する部位ｍｒ２が存在する場合は、部位認識部１３０は、部位ｍｒを、右脚部の腿ｂ１２として認識し、部位ｍｒ２を、右脚部の脛ｂ１３として認識する。他方、連結球内に、胴部に近い側の端部の位置を有する部位が存在しない場合は、部位認識部１３０は、部位ｍｒを、右脚部の腿と脛の双方を含む部位として認識する。この場合、部位認識部１３０は、部位ｍｒに対して、「切断フラグ」を設定する。これにより、例えば、図４において、対象者Ｓの姿勢に応じて、部位ｂ１２及びｂ１３が真っ直ぐ伸びている場合でも、部位ｂ１２及びｂ１３を、右脚部に係る部位として認識できる。
【０１１１】
また、部位認識部１３０は、主部位（胴部）を識別すると、胴部の側面近傍にある関節点を判定（識別）する。部位認識部１３０は、胴部の軸方向（主軸）の側面にあり、かつ頭部側の面から最も近い２関節点を左右の腕部の根本の関節点（肩の関節に係る関節点）として識別する。例えば、部位認識部１３０は、胴部の側面における薄いトーラス（円柱に係るトーラス）内に含まれる関節点を、腕部の根本の関節点として識別する。尚、トーラスの厚さなどは所定の値が使用されてもよい。そして、部位認識部１３０は、左右の腕部の根本の関節点を含む部位ｍｌｈ，ｍｒｈを、左手に係る部位（図４の部位ｂ５又は、部位ｂ５＋ｂ６参照）と右手に係る部位（図４の部位ｂ８又は、部位ｂ８＋ｂ９参照）として認識する。
【０１１２】
部位認識部１３０は、左手に係る部位ｍｌｈを識別すると、部位ｍｌｈにおける胴部から遠い側の端部の位置に設定される球（連結球）内に、胴部に近い側の端部の位置を有する部位が存在するか否かを判定する。なお、連結球の径は所定の値が使用されてもよい。そして、連結球内に、胴部に近い側の端部の位置を有する部位ｍｌｈ２が存在する場合は、部位認識部１３０は、部位ｍｌｈを、左手の上腕部ｂ５として認識し、部位ｍｌｈ２を、左手の前腕部ｂ６として認識する。他方、連結球内に、胴部に近い側の端部の位置を有する部位が存在しない場合は、部位認識部１３０は、部位ｍｌｈを、左手の上腕部と前腕部の双方を含む部位として認識する。この場合、部位認識部１３０は、部位ｍｌｈに対して、「切断フラグ」を設定する。これにより、例えば、図４において、対象者Ｓの姿勢に応じて、部位ｂ５及びｂ６が真っ直ぐ伸びている場合でも、部位ｂ５及びｂ６を、左手に係る部位として認識できる。
【０１１３】
同様に、部位認識部１３０は、右手に係る部位ｍｒｈを識別すると、部位ｍｒｈにおける胴部から遠い側の端部の位置に設定される球（連結球）内に、胴部に近い側の端部の位置を有する部位が存在するか否かを判定する。なお、連結球の径は所定の値が使用されてもよい。そして、連結球内に、胴部に近い側の端部の位置を有する部位ｍｒｈ２が存在する場合は、部位認識部１３０は、部位ｍｒｈを、右手の上腕部ｂ８として認識し、部位ｍｒｈ２を、右手の前腕部ｂ９として認識する。他方、連結球内に、胴部に近い側の端部の位置を有する部位が存在しない場合は、部位認識部１３０は、部位ｍｒｈを、右手の上腕部と前腕部の双方を含む部位として認識する。この場合、部位認識部１３０は、部位ｍｒｈに対して、「切断フラグ」を設定する。これにより、例えば、図４において、対象者Ｓの姿勢に応じて、部位ｂ８及びｂ９が真っ直ぐ伸びている場合でも、部位ｂ８及びｂ９を、右手に係る部位として認識できる。
【０１１４】
骨格整形部１３２は、骨格整形処理として、切断処理、結合処理、及び連結処理を行う。
【０１１５】
切断処理は、一の部位を、２つの更なる部位に分離する処理である。分離対象の部位は、部位ｍのうちの、上述の切断フラグが設定された部位である。尚、切断処理の対象となる部位に係る幾何モデル（即ち上述の切断フラグが設定された部位に係る幾何モデル）は、第１幾何モデルの一例である。切断フラグが設定された部位は、例えば上腕部と前腕部（図４の部位ｂ５及びｂ６参照）のような、真っ直ぐ伸ばした状態であるときに幾何モデルによる当てはめで一の部位として認識された部位である。切断処理は、このような本来２部位からなる部位を、２つの更なる部位に分離する。パラメータθの各要素（ｒｍ、ｃｍ０、及びｅｍ０）のうち、２つの更なる部位のｒｍ及びｅｍ０は、そのままである。他方、骨格整形部１３２は、２つの更なる部位のｃｍ０の間の関節の位置（即ち、切断フラグが設定された部位の中間の関節点）を、数３２に従って求める。中間の関節点の場合は、数３２の右辺第２項は、以下の通りである。尚、中間の関節点の導出には、ｃｍ０及びｅｍ０の導出結果が用いられる。
【０１１６】
【数３４】
2018207282.tif 000036
上述のように、βは、定数であり、例えば１であってよい。β＝１の場合は、部位ｍの中心（＝〈ｘｎ・ｅｍ０〉ｐ）が、本来２部位からなる部位ｍの中間の関節点を表すことになる。或いは、βは、他の計測によって得られる対象者Ｓの形状情報に基づいて設定されてもよい。
【０１１７】
このようにして切断処理によれば、部位ｍが、本来２部位からなる部位を含む場合でも、２つの更なる部位に切断して、３つの関節点を導出できる。従って、例えば脚部が伸ばされて肘や膝が真っ直ぐ伸びている場合でも、切断処理によって３つの関節点を導出できる。
【０１１８】
結合処理は、隠れた骨格で繋がる２つの部位ｍの位置ｃｍ０、向きｅｍ０、及び長さパラメータｌｍに基づいて、２つの部位ｍにわたる直線に対応付けれる対象者Ｓの隠れた骨格を導出する処理である。具体的には、結合処理は、隠れた骨格を、所定の２つの部位ｍに係る２関節点間を結ぶ直線として生成する処理である。尚、結合処理の対象となる所定の２つの部位ｍに係る幾何モデルは、第２幾何モデルの一例である。隠れた骨格とは、図４を参照して上述したように、股関節に係る骨格ｂ１４、ｂ１５や、肩の関節に係る骨格ｂ４、ｂ７がある。股関節に係る骨格ｂ１４については、結合処理の対象となる２関節点は、部位ｂ１の底面側の関節点ａ０と、部位ｂ１０の胴部側の関節点ａ１４とが対応する。また、股関節に係る骨格ｂ１５については、所定の２関節は、部位ｂ１の底面側の関節点ａ０と、部位ｂ１２の胴部側の関節点ａ１５とが対応する。肩の関節に係る骨格ｂ４については、所定の２関節は、部位ｂ２の頭部側の関節点ａ２と、部位ｂ５の胴部側の関節点ａ４とが対応する。肩の関節に係る骨格ｂ７については、所定の２関節は、部位ｂ２の頭部側の関節点ａ２と、部位ｂ８の胴部側の関節点ａ７とが対応する。
【０１１９】
このようにして結合処理によれば、関節モデルが隠れた骨格を含む場合でも、結合処理により隠れた骨格（リンクに対応する直線）を導出できる。
【０１２０】
連結処理は、異なる部位に係る幾何モデルから導出できる同じ関節に係る関節点（共通の関節点）を、１つの関節点に統合（連結）する処理である。例えば、連結対象の関節点は、例えば上述した連結球内の２つの関節点（図４の関節ａ５、ａ８、ａ１０、ａ１２に係る関節点）である。このような腕部及び脚部に係る連結処理は、切断フラグが設定されない場合に実行される。また、他の連結対象の関節点は、首の関節点に係り、頭部の幾何モデルと胴部の幾何モデルの両方から得られる２つの関節点（図４の関節ａ２に係る関節点）である。また、他の連結対象の関節点は、太さｒｍが１番目に大きい部位ｍ１と2番目に大きい部位ｍ２とをそれぞれ胴部として識別した場合において、部位ｍ１と部位ｍ２との間の関節点（図４の関節ａ１に係る関節点）である。即ち、胴部に係る連結処理は、切断フラグが設定されない場合に実行される。
【０１２１】
連結処理は、単にいずれか一方の関節点を選択する処理であってもよい。或いは、２つの関節点の平均値を利用する方法や、２つの関節点に係る２つの部位のうち、事後分布のデータ和が大きい方の部位の値を利用する方法、事後分布のデータ和で重み付けした値を利用する方法などであってもよい。
【０１２２】
骨格整形部１３２は、骨格整形処理として、好ましくは、更に、対称化処理を行う。対称化処理は、本来実質的に左右対称な部位に対して、パラメータについても左右対称に補正する処理である。本来実質的に左右対称な部位は、例えば左右の腕部や、左右の脚部である。例えば左右の腕部（左右の脚部についても同様）について、骨格整形部１３２は、パラメータθのうちの太さｒｍと、長さパラメータｌｍについて、事後分布のデータ和の最も大きい方に統一してよい。例えば左脚部に係る事後分布のデータ和が右脚部に係る事後分布のデータ和よりも大きい場合、左脚部に係る太さｒｍと長さパラメータｌｍに、右脚部に係る太さｒｍと長さパラメータｌｍを補正する。これにより、左右の対称性を利用して、太さｒｍや長さパラメータｌｍの精度を高めることができる。
【０１２３】
キャリブレーション情報生成部１３４は、部位ｍのパラメータθの導出結果や、部位ｍの長さパラメータｌｍの導出結果、部位認識部１３０による部位認識処理結果、骨格整形部１３２による骨格整形処理結果等に基づいて、キャリブレーション情報を生成する。
【０１２４】
キャリブレーション情報は、対象者Ｓの全部位に係る部位情報を含む。対象者Ｓの全部位とは、関節モデルに基づく全部位であり、図４に示す例では、１５部位である。以下では、対象者Ｓの全部位のうちの任意の一部位を、「部位ｋ」と表記する。尚、部位ｍは、幾何モデルによるフィッティングの対象となる部位である。
【０１２５】
部位情報は、例えば、部位ｋと対象者Ｓの各部位（図４の各部位ｂ１〜ｂ１５参照）との対応関係を表す情報（以下、「部位対応関係情報」と称する）や、部位ｋの位置、軸方向、長さ、太さ等を含んでよい。本実施例では、一例として、部位情報は、部位対応関係情報と、部位ｋの位置として部位ｋの祖先側の関節点の位置ｃｋΘ０と、部位ｋの向きｅｋΘ０と、部位ｍの長さパラメータｌｍとを含む。位置ｃｋΘ０及び向きｅｋΘ０は、ある姿勢Θにおける部位ｍの位置及び向き（第１パラメータの一例）の初期値を表す。
【０１２６】
部位ｋの位置ｃｋΘ０は、位置ｃｍ０等に基づいて導出された部位ｍの祖先側の端部（数３２、数３３参照）の位置に対応する。切断処理が実行された場合は、切断処理により分離された２つの部位のそれぞれの位置ｃｋΘ０は、同様に、当該部位における祖先側の関節点である。例えば脚部に係る部位ｍに対して切断処理が実行された場合、部位ｍを２つの分離した部位のうち、腿部に係る部位ｋの位置ｃｋΘ０は、祖先側の関節点である。また、部位ｍを２つの分離した部位のうち、脛部に係る部位ｋの位置ｃｋΘ０は、祖先側の関節点（即ち部位ｍの中間の関節点であり、膝に係る関節点）である（数３４参照）。また、隠れた骨格に係る部位ｋの位置ｃｋΘ０は、隠れた骨格に対して祖先側で繋がる部位の子孫側の関節点である。例えば、部位ｂ４に対応する部位ｋの位置ｃｋΘ０は、部位ｂ２に対応する部位ｍの子孫側の関節点ａ２に対応する。
【０１２７】
向きｅｋΘ０は、向きｅｍ０をそのまま用いることができる。部位ｍに対して切断処理が実行された場合も、切断処理により分離された２つの部位のそれぞれの向きｅｋΘ０としては、部位ｍの向きｅｍ０が用いられる。隠れた骨格に係る部位ｋの向きｅｋΘ０は、結合処理により導出される隠れた骨格に係る直線の方向が用いられる。
【０１２８】
また、キャリブレーション情報は、全部位のうちの、隠れた骨格（部位）を除く各部位について、どの部位にどの種類の幾何モデルが使用されたかを表す情報（以下、「使用幾何モデル情報」と幾何モデルを含む。部位ｍに対して切断処理が実行された場合は、切断処理により分離された２つの部位のそれぞれの幾何モデルは、部位ｍに対応付けられる幾何モデルである。尚、１種類の幾何モデル（例えば円柱）しか使用されない変形例では、使用幾何モデル情報は不要である。
【０１２９】
本実施例の１シーン骨格認識処理によれば、上述のように、幾何モデルを用いてフィッテングを行って得られる結果に対して、切断処理が実行される。これにより、例えば対象者Ｓの胴部や腕部、脚部のような、関節で繋がる２つの部位が真っ直ぐに伸ばされている場合でも、該２つの部位を繋ぐ関節を精度良く認識できる。即ち、幾何モデルを用いたフィッテングだけでは一部位としてしか認識できないような状況下（本来は２つの部位が一部位としてしか認識できないような状況下）でも、２つの部位を繋ぐ関節を精度良く認識できる。また、本実施例によれば、上述のように、幾何モデルを用いてフィッテングを行って得られる結果に対して、結合処理が実行される。これにより、幾何モデルを用いたフィッテングだけでは精度良く認識し難い隠れた骨格についても精度良く認識できる。このようにして、本実施例によれば、対象者Ｓの点群データに基づいて、対象者Ｓの関節又は骨格を精度良く認識できる。
【０１３０】
従って、本実施例によれば、精度の高いキャリブレーション情報を生成でき、この結果、キャリブレーション情報を利用する後述の微小フィッティング処理の精度も高めることができる。
【０１３１】
次に、図７以降の概略フローチャートを参照して、１シーン骨格認識部１２０の動作例について説明する。
【０１３２】
図７は、１シーン骨格認識部１２０の全体動作の一例を示す概略フローチャートであり、図８は、部位認識処理の一例を示す概略フローチャートである。図９Ａ及び図９Ｂは、図７の処理等の説明図である。図９Ａ及び図９Ｂには、ある一時点（一シーン）に係る点群データｘｎがそれぞれ示されている。
【０１３３】
ステップＳ７００では、データ入力部１１０に、ある一時点に係る点群データｘｎが入力される。
【０１３４】
ステップＳ７０２では、クラスタリング部１２２は、ステップＳ７００で得た点群データｘｎに基づいて、幾何モデルを用いたフィッティングに用いる初期値を取得する。クラスタリング部１２２の処理（初期値の取得方法）の詳細は上述のとおりである。
【０１３５】
ステップＳ７０４では、ＥＭアルゴリズム部１２４は、ステップＳ７００で得た点群データｘｎと、ステップＳ７０２で得た初期値とに基づいて、ＥＭアルゴリズムのＥステップを実行する。ＥＭアルゴリズムのＥステップの詳細は上述のとおりである。
【０１３６】
ステップＳ７０５では、ＥＭアルゴリズム部１２４は、ｊ＝１に設定する。
【０１３７】
ステップＳ７０６では、ＥＭアルゴリズム部１２４は、ｊ番目の部位ｊ（ｍ＝ｊ）について有限長処理を行う。有限長処理の詳細は上述のとおりである。
【０１３８】
ステップＳ７０８では、ＥＭアルゴリズム部１２４は、ステップＳ７０４で得たＥステップの結果と、ステップＳ７０６で得た有限長処理結果とに基づいて、ｊ番目の部位ｊ（ｍ＝ｊ）についてＥＭアルゴリズムのＭステップを実行する。ＥＭアルゴリズムのＭステップの詳細は上述のとおりである。
【０１３９】
ステップＳ７１０では、ＥＭアルゴリズム部１２４は、未処理部位が有るか否か、即ちｊ＜Ｍ'であるか否かを判定する。未処理部位が有る場合は、ステップＳ７１１を経て、ステップＳ７０６からの処理を繰り返す。未処理部位が無い場合は、ステップＳ７１２に進む。
【０１４０】
ステップＳ７１１では、ＥＭアルゴリズム部１２４は、ｊを"１"だけインクリメントする。
【０１４１】
ステップＳ７１２では、ＥＭアルゴリズム部１２４は、収束したか否かを判定する。収束条件としては、例えば、対数尤度関数が所定の値以下であることや、対数尤度関数の移動平均が所定の値以下であることなどが使用されてもよい。
【０１４２】
ステップＳ７１４では、モデル最適化部１２６は、モデル最適化処理を行う。例えば、モデル最適化部１２６は、今回の使用した幾何モデルに係る事後分布のデータ和の全部位和を算出する。そして、事後分布のデータ和の全部位和が所定基準値未満である場合は、ＥＭアルゴリズム部１２４に幾何モデルの変更を指示して、ステップＳ７０４からステップＳ７１２の処理を再度実行させる。或いは、モデル最適化部１２６は、今回の使用した幾何モデルに係る事後分布のデータ和の全部位和の如何にかかわらず、ＥＭアルゴリズム部１２４に幾何モデルの変更を指示して、ステップＳ７０４からステップＳ７１２の処理を再度実行させる。この場合、モデル最適化部１２６は、事後分布のデータ和の全部位和が最も大きな幾何モデルを、あてはまりが最も良好な種類の幾何モデルとして選択する。
【０１４３】
ステップＳ７１４までの処理が終了すると、図９Ａに示すように、点群データｘｎに対して当てはめられた複数の幾何モデルに係るパラメータθ（ｒｍ、ｃｍ０、及びｅｍ０）が得られる。図９Ａに示す例では、点群データｘｎに対して当てはめられた６つの幾何モデルＭ１〜Ｍ６が概念的に示される。幾何モデルＭ１は、対象者Ｓの頭部に係る幾何モデルであり、幾何モデルＭ２は、対象者Ｓの胴部に係る幾何モデルであり、幾何モデルＭ３及びＭ４は、対象者Ｓの両腕部に係る幾何モデルであり、幾何モデルＭ５及びＭ６は、対象者Ｓの両脚部に係る幾何モデルである。図９Ａに示す例では、幾何モデルＭ１〜Ｍ６は、全て円柱である。
【０１４４】
ステップＳ７１６では、長さ算出部１２８は、点群データｘｎと、ステップＳ７１４までの処理で得られるパラメータθとに基づいて、各幾何モデル（幾何モデルＭ１〜Ｍ６参照）の長さパラメータｌｍを導出する。長さパラメータｌｍを導出することは、上述のように、部位ｍの中心に対して、長さパラメータｌ＋ｍ及び長さパラメータｌ−ｍを導出することを含む。
【０１４５】
ステップＳ７１８では、部位認識部１３０は、部位認識処理を行う。部位認識処理は、上述のとおりであるが、一例の手順については、図８を参照して後述する。
【０１４６】
ステップＳ７２０では、骨格整形部１３２は、ステップＳ７１８で得た部位認識処理結果等に基づいて、切断処理、結合処理、及び連結処理を行う。骨格整形部１３２は、切断フラグが設定された部位については切断処理を行う。切断処理の詳細は上述のとおりである。また、結合処理は、上述のとおりであり、股関節に係る骨格ｂ１４、ｂ１５や、肩の関節に係る骨格ｂ４、ｂ７に係る各直線を導出することを含む。また、連結処理の詳細は上述のとおりである。
【０１４７】
ステップＳ７２０までの処理が終了すると、図９Ｂに概念的に示すように、切断処理に係る各関節の位置や、隠れた骨格等が導出される。
【０１４８】
ステップＳ７２２では、骨格整形部１３２は、ステップＳ７０４〜ステップＳ７１２で得られる事後分布のデータ和に基づいて、対称化処理を行う。対称化処理の詳細は上述のとおりである。
【０１４９】
ステップＳ７２２では、キャリブレーション情報生成部１３４は、今回周期でのステップＳ７０４乃至ステップＳ７２２の処理結果に基づいて、キャリブレーション情報を生成する。キャリブレーション情報の生成方法は上述のとおりである。
【０１５０】
続いて、ステップＳ７１８における部位認識処理を図８を参照して説明する。
【０１５１】
ステップＳ８００では、部位認識部１３０は、太さｒｍについて、１番目と２番目に太い部位の差が所定値以上であるか否かを判定する。判定結果が"ＹＥＳ"の場合は、ステップＳ８０２に進み、それ以外の場合は、ステップＳ８０４に進む。
【０１５２】
ステップＳ８０２では、部位認識部１３０は、太さｒｍが１番目に大きい部位ｍ１を胴部（真っ直ぐ伸びた胴部）として識別し、部位ｍ１に対して切断フラグを設定する。例えば、図９Ａに示す例では、幾何モデルＭ２が対応付けられる部位は、２番目に太い部位との差が所定値以上である１番目に太い部位ｍ１となり、切断フラグが設定されることになる。尚、このようにして部位ｍ１に切断フラグが設定されると、図７のステップＳ７２０にて部位ｍ１に対して切断処理が実行されることになる。
【０１５３】
ステップＳ８０４では、部位認識部１３０は、太さｒｍが１番目に大きい部位ｍ１と2番目に大きい部位ｍ２とを、胴部として識別する。
【０１５４】
ステップＳ８０６では、部位認識部１３０は、頭部を認識する。例えば、部位認識部１３０は、部位ｍ１の上面近傍の部位ｍｈを、頭部として認識する。例えば図９Ａに示す例では、幾何モデルＭ１が対応付けられる部位が頭部として認識されることになる。
【０１５５】
ステップＳ８０８では、部位認識部１３０は、胴部の底面近傍に左右の脚部を認識する。即ち、部位認識部１３０は、上述のように、胴部の底面近傍に左右の2関節点を各脚部の根本の関節点として識別し、該2関節点を有する部位ｍｌ，ｍｒを、左右の脚部に係る部位と認識する。
【０１５６】
ステップＳ８１０では、部位認識部１３０は、ステップＳ８０８で認識した左右の脚部に係る部位ｍｌ，ｍｒの末端側（胴部から遠い側）に、他の部位ｍｌ２，ｍｒ２に係る関節点が存在するか否かを判定する。この際、部位認識部１３０は、左右の脚部についてそれぞれ別に判定する。判定結果が"ＹＥＳ"の場合は、ステップＳ８１２に進み、それ以外の場合は、ステップＳ８１４に進む。
【０１５７】
ステップＳ８１２では、部位認識部１３０は、ステップＳ８０８で認識した左右の脚部に係る部位ｍｌ，ｍｒを、腿部として認識するとともに、ステップＳ８１０で認識した他の部位ｍｌ２，ｍｒ２を、脛部として認識する。尚、この場合、図７のステップＳ７２０にて、部位ｍｌ，ｍｌ２に対して連結処理が実行され、部位ｍｒ，ｍｒ２に対して連結処理が実行されることになる。
【０１５８】
ステップＳ８１４では、部位認識部１３０は、ステップＳ８０８で認識した左右の脚部に係る部位ｍｌ，ｍｒを、真っ直ぐ伸びた脚部であると認識し、部位ｍｌ，ｍｒに対して切断フラグを設定する。尚、このようにして部位ｍｌ，ｍｒに切断フラグが設定されると、図７のステップＳ７２０にて部位ｍｌ，ｍｒに対してそれぞれ切断処理が実行されることになる。
【０１５９】
ステップＳ８１６では、部位認識部１３０は、胴部の上側（脚部から遠い側）の左右の側面に左右の腕部を認識する。即ち、部位認識部１３０は、上述のように、胴部の側面における薄いトーラス内に含まれる２関節点を各腕部の根本の関節点として識別し、該2関節点を有する部位ｍｌｈ，ｍｒｈを、左右の腕部に係る部位と認識する。
【０１６０】
ステップＳ８１８では、部位認識部１３０は、ステップＳ８０８で認識した左右の腕部に係る部位ｍｌｈ，ｍｒｈの末端側（胴部から遠い側）に、他の部位ｍｌｈ２，ｍｒｈ２に係る関節点が存在するか否かを判定する。この際、部位認識部１３０は、左右の腕部についてそれぞれ別に判定する。判定結果が"ＹＥＳ"の場合は、ステップＳ８２０に進み、それ以外の場合は、ステップＳ８２２に進む。
【０１６１】
ステップＳ８２０では、部位認識部１３０は、ステップＳ８１６で認識した左右の腕部に係る部位ｍｌｈ，ｍｒｈを上腕部として認識するとともに、ステップＳ８１８で認識した他の部位ｍｌｈ２，ｍｒｈ２を、前腕部として認識する。尚、この場合、図７のステップＳ７２０にて、部位ｍｌｈ，ｍｌｈ２に対して連結処理が実行され、部位ｍｒｈ，ｍｒｈ２に対して連結処理が実行されることになる。
【０１６２】
ステップＳ８２２では、部位認識部１３０は、ステップＳ８１６で認識した左右の腕部に係る部位ｍｌｈ，ｍｒｈを、真っ直ぐ伸びた腕部であると認識し、部位ｍｌｈ，ｍｒｈに対して切断フラグを設定する。尚、このようにして部位ｍｌｈ，ｍｒｈに切断フラグが設定されると、図７のステップＳ７２０にて部位ｍｌｈ，ｍｒｈに対してそれぞれ切断処理が実行されることになる。
【０１６３】
図７及び図８に示す処理によれば、ある一時点（一シーン）に係る対象者Ｓの点群データｘｎに基づいて、対象者Ｓの関節又は骨格を精度良く認識することが可能となる。尚、図７及び図８に示す処理は、フレーム周期ごとに繰り返し実行されてもよいし、次のフレームに対しては、前回のフレームで得たパラメータθ及び分散σ２や前回のフレームで用いた幾何モデルを利用して、次のフレームに係るパラメータθ等が導出されてもよい。
【０１６４】
尚、上述した１シーン骨格認識処理では、点群データｘｎがすべて幾何モデル表面近傍に存在するとして定式化してきたが、点群データｘｎにはノイズなども含まれる。そのような表面から離れたデータが混入すると、Ｅステップの事後分布が数値不安定となり正しく計算されない場合がある。そこで、分布ｐ（ｘｎ）には、以下のように、ノイズ項として一様分布が追加されてもよい。
【０１６５】
【数３５】
2018207282.tif 000037
ここで、ｕは任意の重みである。このとき、事後分布は以下のように修正される。
【０１６６】
【数３６】
2018207282.tif 000038
ここで、ｕｃは、以下の通り定義される。
【０１６７】
【数３７】
2018207282.tif 000039
これにより、分母にｕｃが導入され、数値不安定が解消される。尚、Ｅステップのみの変更であり、Ｍステップはそのままでよい。
【０１６８】
［微小フィッティング処理部］
以下の［微小フィッティング処理部］の説明において用いる記号は、特に言及しない限り、上記の［１シーン骨格認識部］の説明で用いた記号と実質的に同じ意味である。尚、点群データｘｎについては、同じ記号"ｘｎ"を用いるが、上述のように、微小フィッティング処理部１５０で用いられる点群データｘｎは、１シーン骨格認識部１２０で用いる点群データｘｎよりも後の時点（フレーム）で得られるデータである。以下では、１シーン骨格認識部１２０で用いる点群データｘｎに係る時点を、「第１時点」と称し、微小フィッティング処理部１５０で用いられる点群データｘｎに係る時点を、「第２時点」と称する。繰り返しになるが、第２時点は、第１時点よりも後であり、ここでは、例えば１フレーム周期に対応する微小時間だけ後であるとする。
【０１６９】
また、以下の［微小フィッティング処理部］の説明において、部位ｍは、フィッティングの対象の部位である点は、上記の［１シーン骨格認識部］の説明と同じであるが、以下の点だけが異なる。即ち、１シーン骨格認識処理では、部位ｍは、上述のように、対象者Ｓの２部位に同時に対応付けられる場合もあるが、以下の微小フィッティング処理では、部位ｍは、対象者Ｓの２部位に同時に対応付けられることはない。従って、［微小フィッティング処理部］の説明において、部位ｍとは、図４に示す関節モデルの場合、１５部位のうちの、隠れた骨格（部位）を除く各部位に１対１で対応する。
【０１７０】
微小フィッティング処理部１５０は、上述のように、１シーン骨格認識部１２０で生成されるキャリブレーション情報を利用して、微小フィッティング処理を行う。以下では、上記のパラメータθに関連するパラメータであって、対象者Ｓの関節（関節回転）、対象者Ｓの重心の回転及び並進を表すパラメータを、「変形パラメータθａｒ」と称する。また、キャリブレーション情報は、上述のように使用幾何モデル情報（１シーン骨格認識処理で各部位に対して利用された幾何モデルを表す情報）を含む。微小フィッティング処理では、キャリブレーション情報が得られたときに利用される幾何モデルが引き継き利用される。例えば、キャリブレーション情報の生成の際に、ある部位に対して円柱が用いられた場合、微小フィッティング処理でも、該部位に対して円柱が用いられる。
【０１７１】
微小フィッティング処理部１５０は、図３に示すように、表面残差算出部１５１と、事後分布算出部１５２と、有限長処理部１５４と、分散更新部１５５と、微小変化算出部１５６と、パラメータ更新部１５８とを含む。
【０１７２】
表面残差算出部１５１は、表面残差εｎｍ及び表面残差の微分ε'ｎｍを算出する。微小フィッティングでは、上述の１シーン骨格認識処理と同様、点群データｘｎと部位ｍの表面残差εｍ(ｘｎ,θａｒ)（表面に垂直な方向の差）がガウス分布であることが仮定される。具体的には、以下のとおりである。
【０１７３】
【数３８】
2018207282.tif 000040
ここで、Ｍは、関節モデルの全部位数（隠れた部位を含む全部位の総数）であり、図４に示す関節モデルでは、"１５"である。従って、Ｍは、１シーン骨格認識部１２０で用いられるＭ'とは異なり得る。ｈは、隠れた骨格（部位）（第２部位の一例）の数であり、図４に示す関節モデルでは、"４"である。「Ｍ−ｈ」を用いるのは、フィッティングに寄与しない部位を除外するためである。即ち、Ｍ−ｈは、微小フィッティング処理でフィッティング対象となる部位（第１部位の一例）の数である。１シーン骨格認識部１２０で用いられる「Ｍ'」に代えて、「Ｍ−ｈ」を用いるのは、常にＭ'＝Ｍ−ｈとなるとは限らないためである。また、固定値「Ｍ−ｈ」とできるのは、微小フィッティング処理では、１シーン骨格認識処理とは異なり、手や脚などが真っ直ぐに伸びた状態でも、各部位を追跡できるためである。このとき、対応する対数尤度関数は、以下のとおりである。
【０１７４】
【数３９】
2018207282.tif 000041
表面残差εｎｍ、及び、表面残差の微分ε'ｎｍは、以下の通り定義される。尚、θａｒは、変形パラメータである。
【０１７５】
【数４０】
2018207282.tif 000042
尚、［微小フィッティング処理部］の説明においては、表現〈〉ｐについては、同様に事後分布ｐｎｍを用いた平均操作であるが、「Ｍ'」と「Ｍ−ｈ」との相違に関連して、任意のテンソルないし行列ａｎｍに対して、以下の通りとする。
【０１７６】
【数４１】
2018207282.tif 000043
幾何モデルが円柱の場合、表面残差は、例えば以下の通り表現されてよい。ここで、位置ｃｍΘ及び向きｅｍΘは、ある姿勢Θにおける部位ｍの位置及び向きを表す。尚、位置ｃｍΘは、既に定義したとおり、部位ｍの祖先側の関節点の位置である。
【０１７７】
【数４２】
2018207282.tif 000044
尚、数４２では右辺が二乗同士の差となっていないが、上記の数３のように二乗の項が使用されてもよい。尚、１シーン骨格認識処理では、指数部分を二乗の差とすることで式が線形化されている。
このとき、表面残差の微分は、以下のとおりである。
【０１７８】
【数４３】
2018207282.tif 000045
【０１７９】
【数４４】
2018207282.tif 000046
【０１８０】
【数４５】
2018207282.tif 000047
ここで、添字ｌ'は、可動部位を指し、総数はＭ−ｆ（例えば１３）である。ε'ｎｍｌ'ｉ'は、可動部位に関する表面残差の微分であり、ε'ｎｍ,Ｍ−ｆ＋１,i'は、対象者Ｓの重心の回転に関する表面残差の微分であり、ε'ｎｍ,Ｍ−ｆ＋２,i'は、対象者Ｓの重心の並進に関する表面残差の微分である。
【０１８１】
δｍl'は、クロネッカーのデルタであり、以下のとおりである。
【０１８２】
【数４６】
2018207282.tif 000048
また、χｍl'は、以下のとおりである。
【０１８３】
【数４７】
2018207282.tif 000049
χｍl'は、部位ｍと部位ｌ'（ｌ'＝１，２、・・・、１３）との祖先・子孫関係を表すパラメータであり、祖先・子孫関係を表すパラメータについては、部位ｋと部位ｌ'とに関連して、図１０及び図１１を参照して後述する。尚、祖先・子孫関係は、キャリブレーション情報に含まれる部位対応関係情報に基づいて判断できる。
【０１８４】
円錐の場合、表面残差εｍ(ｘｎ,θａｒ)は、以下の通り表現されてよい。尚、円錐（楕円錐の場合も同様）では、位置ｃｍΘは、ある姿勢Θにおける頂点位置に対応し、ある姿勢Θにおける向きｅｍΘは、中心軸の単位ベクトルである。
【０１８５】
【数４８】
2018207282.tif 000050
ベクトルｎｍは、数２２に関して上述した通りである。台形柱の場合、円錐の場合と同様であってよい。また、楕円柱の場合、表面残差εｍ(ｘｎ,θａｒ)は、以下の通り表現されてよい。
【０１８６】
【数４９】
2018207282.tif 000051
ｄｍ等は、数２３に関して上述した通りである。
【０１８７】
また、楕円錐の場合、表面残差εｍ(ｘｎ,θａｒ)は、以下の通り表現されてよい。
【０１８８】
【数５０】
2018207282.tif 000052
ψｍ１等は、数２４に関して上述した通りである。台形楕円柱の場合、表面残差εｍ(ｘｎ,θａｒ)は、楕円錐の場合と同様であってよい。
【０１８９】
事後分布算出部１５２は、微小フィッティング処理において事後分布ｐｎｍを算出する。微小フィッティング処理における事後分布ｐｎｍは、「Ｍ'」と「Ｍ−ｈ」との相違に関連して、以下の通りである。
【０１９０】
【数５１】
2018207282.tif 000053
有限長処理部１５４は、事後分布算出部１５２で得られる事後分布ｐｎｍに基づいて、有限長処理を行う。有限長処理は、上述のように、点群データｘｎのうちの、所定の条件を満たすデータについてのみ事後分布ｐｎｍを算出し、他のデータについては事後分布ｐｎｍを０とする処理である。微小フィッティング処理では、所定の条件を満たすデータは、例えば、以下の式を満たすデータであってよい。
【０１９１】
【数５２】
2018207282.tif 000054
ここで、ｌｍは、キャリブレーション情報に含まれる長さパラメータである（即ち長さ算出部１２８により導出される部位ｍの長さパラメータｌｍ）。
【０１９２】
分散更新部１５５は、微小変化後の分散（σ０２＋Δσ２)を導出（更新）する。尤度関数の最大化問題は、線形近似により解を導出できる。即ち、数３９の式のσ２に関する微分を０と置くことで、微小変化後の分散（σ０２＋Δσ２)が得られる。尚、分散σ０２は、初期値であり、１シーン骨格認識部１２０で得られる。例えば、微小変化後の分散（σ０２＋Δσ２)は、以下のとおりであってよい。
【０１９３】
【数５３】
2018207282.tif 000055
微小変化算出部１５６は、変形パラメータθａｒの微小変化Δθを算出する。ここで、尤度関数の最大化問題は、分散σ２と同様に、以下の通り、線形近似により解を導出できる。即ち、第２時点は、第１時点よりも微小時間だけ後であるので、第２時点での点群データｘｎは、第１時点での点群データｘｎから大きく変化しないと期待される。このため、第２時点での変形パラメータθａｒは、第１時点での変形パラメータθａｒから大きく変化しないと期待される。従って、第２時点での変形パラメータθａｒは、第１時点での変形パラメータθａｒからの微小変化Δθで表されるものとする。
【０１９４】
【数５４】
2018207282.tif 000056
よって、変形パラメータθａｒの微小変化Δθは、表面残差εｎｍ、及び、表面残差の微分ε'ｎｍ（数４０参照）を用いて、以下のとおりである。
【０１９５】
【数５５】
2018207282.tif 000057
尚、具体的な微小変化Δθの算出方法は、次のパラメータ更新部１５８の説明に関連して後述する。
【０１９６】
パラメータ更新部１５８は、微小変化算出部１５６により算出された微小変化Δθに基づいて、位置ｃｋΘ及び向きｅｋΘのそれぞれの変化ΔｃｋΘ及びΔｅｋΘ（第２パラメータの一例）を導出（更新）することで、位置ｃｋΘ＋ΔΘ及び向きｅｋΘ＋ΔΘを導出（更新）する。尚、位置ｃｋΘ及び向きｅｋΘは、上述のように、ある姿勢Θにおける部位ｋの位置及び向きを表す。位置ｃｋΘ及び向きｅｋΘの初期値は、キャリブレーション情報に含まれる位置ｃｋΘ０及び向きｅｋΘ０が用いられる。
【０１９７】
位置ｃｋΘ＋ΔΘ及び向きｅｋΘ＋ΔΘは、それぞれ以下の通り表すことができる。尚、部位ｋは、隠れた部位を含み、従って、図４に示す関節モデルでは、ｋ＝１，２、・・・、１５である。尚、向きｅｋΘ＋ΔΘについては、ノルムが保存される態様で更新されている。
【０１９８】
【数５６】
2018207282.tif 000058
【０１９９】
【数５７】
2018207282.tif 000059
ここで、ΔｃｋΘ及びΔｅｋΘは、機構モデルの順運動学に基き、以下のように導出可能である。
【０２００】
【数５８】
2018207282.tif 000060
【０２０１】
【数５９】
2018207282.tif 000061
ここで、Δθl'i'、ΔθＭ−ｆ＋１,i'、及びΔθＭ−ｆ＋２,i'は、微小変化Δθの各要素である。Δθl'i'は、部位ｌ'（ｌ'＝１，２、・・・、Ｍ−ｆ）の関節回転を表し、ΔθＭ−ｆ＋１,i'は、対象者Ｓの重心の回転を表し、ΔθＭ−ｆ＋２,i'は、対象者Ｓの重心の並進を表す。ｉ'は、回転の３自由度を表し、ｉ'＝０、Ｘ，ＸＸである。ｄは空間次元であり、ｄ＝３である。また、ｆは、可動しない関節数である。可動しない関節とは、例えば骨盤部（図４の部位ｂ１４、ｂ１５参照）に係る関節（図４の関節ａ０参照）である。
【０２０２】
幾何モデルが円柱である場合は、Δθl'i'、ΔθＭ−ｆ＋１,i'、及びΔθＭ−ｆ＋２,i'は、数４３、数４４、及び数４５の式と、数５５とに基づいて導出される。換言すると、ε'ｎｍｌ'ｉ'は、上記の数５５の式から、数５８及び数５９におけるΔθl'i'を得るための表面残差の微分である。同様に、ε'ｎｍ,Ｍ−ｆ＋１,i'は、上記の数５５の式から、数５８及び数５９におけるΔθＭ−ｆ＋１,i'を得るための表面残差の微分である。同様に、ε'ｎｍ,Ｍ−ｆ＋２,i'は、上記の数５５の式から、数５８におけるΔθＭ−ｆ＋２,i'を得るための表面残差の微分である。尚、円柱以外の幾何モデルについても、上記の表面残差を用いて同様に導出可能である。
【０２０３】
また、数５８及び数５９において用いられるベクトルや、角度変化を求めるための生成子は、以下のとおりである。尚、以下で、ｎは、任意の単位ベクトル（固定ベクトル）であり、例えば距離画像センサ２１の方向に係る単位ベクトルであってよい。
【０２０４】
【数６０】
2018207282.tif 000062
【０２０５】
【数６１】
2018207282.tif 000063
また、δｋl'は、クロネッカーのデルタであり、上述と同様である。また、χｋl'は、部位ｋ（ｋ＝１，２、・・・、１５）と部位ｌ'（ｌ'＝１，２、・・・、１３）との祖先・子孫関係を表すパラメータであり、例えば、図１０に示すとおりである。図１０における部位の番号は、図１１に示すとおりである。例えば、部位ｍ＝部位６でありかつ部位ｌ'＝部位５であるとき、χ５６＝１である。これは、部位５が部位６の祖先側にあるためである。尚、図１０及び図１１に示す例では、可動しない骨盤部の番号が最後の２つ"１４"及び"１５"とされかつが列から除外されている。尚、行と列は、同一の番号が同一の部位を指す。
【０２０６】
尚、ここで、添字の表記について整理すると、添字ｋはすべての部位を指し、総数はＭである。添字ｍは、フィッティング対象の部位を指し、総数はＭ−ｈである。添字ｌ'は、可動部位を指し、総数はＭ−ｆである。尚、これらの添字は同じ番号でも同一の部位を指すとは限らない。
【０２０７】
このようにして、ΔｃｋΘ及びΔｅｋΘは、Δθl'i'、ΔθＭ−ｆ＋１,i'、及びΔθＭ−ｆ＋２,i'を数５８及び数５９に代入することで導出可能となる。そして、ΔｃｋΘ及びΔｅｋΘが得られると、数５６及び数５７の更新式に基づいて、部位ｋの位置ｃｋΘ＋ΔΘ及び向きｅｋΘ＋ΔΘが導出可能となる。
【０２０８】
本実施例では、一例として、すべての関節が球関節のように3自由度持っているとしている。例えば、すべての関節が、肩や股関節のように、軸まわりの回転、縦振り、横振りが可能であると仮定している。しかしながら、実際には自由度が制限される関節もある。例えば肘は1自由度のみである。この点、軸対称に近い部位では可動軸を同定することは困難である。従って、本実施例では、一例として、可動軸を同定することを避け、ある固定ベクトルｎを用いて構成した軸まわりの回転をすべての関節について考慮している。但し、円柱や台形柱のような軸対称の幾何モデルでは、軸まわりの回転自由度は不定となるため除外される。具体的には、軸対称の幾何モデルでは、軸回りの自由度を除いた2自由度を有する。従って、軸対称の幾何モデルについては、Δθl'０、Δθl'Ｘ、及びΔθl'ＸＸのうちの、軸まわりの関節回転Δθl'０を除くΔθl'Ｘ及びΔθl'ＸＸのみが計算される。これにより、計算負荷を効率的に低減できる。尚、実際の可動軸における回転角度を求めたい場合には、回転行列により変換することで取得可能である。
【０２０９】
次に、図１２の概略フローチャートを参照して、本実施例による対象物認識システム１の動作例について、微小フィッティング処理とともに説明する。
【０２１０】
図１２は、対象物認識システム１の全体の動作例を示す概略フローチャートである。
【０２１１】
ステップＳ１２００では、データ入力部１１０は、使用する関節モデルを示す情報を取得する。例えば、データ入力部１１０は、図４に示す関節モデルを示す情報を取得する。関節モデルを示す情報は、関節数（部位数）、接続関係、フィッティング対象の部位、可動関節等を示す情報であってよい。
【０２１２】
ステップＳ１２０１では、データ入力部１１０は、ｊｊ＝０に設定する。
【０２１３】
ステップＳ１２０２では、データ入力部１１０は、所定の処理終了条件が成立したか否かを判定する。例えば、非リアルタイムでの処理の場合、所定の処理終了条件は、処理対象の全ての点群データ（例えば複数時点の点群データであって一連の時系列に係るデータ）の処理が終了した場合に満たされてよい。また、リアルタイムでの処理の場合、所定の処理終了条件は、ユーザから終了指示が入力された場合や、今回のフレーム周期に係る点群データが入力されない場合等に満たされてよい。判定結果が"ＹＥＳ"の場合は、そのまま終了し、それ以外の場合は、ステップＳ１２０４に進む。
【０２１４】
ステップＳ１２０３では、データ入力部１１０は、ｊｊを"１"だけインクリメントする。
【０２１５】
ステップＳ１２０４では、データ入力部１１０は、処理対象の１時点に係る点群データであって、時系列でｊｊ番目（即ちｊｊ番目のフレーム）に係る点群データを取得する。例えば、リアルタイムで処理する場合は、今回のフレーム周期に係る点群データが処理対象の１時点に係る点群データとなる。
【０２１６】
ステップＳ１２０６では、１シーン骨格認識部１２０は、ステップＳ１２０４で得た点群データに基づいて、１シーン骨格認識処理を行う。１シーン骨格認識処理は、上述のとおりである。
【０２１７】
ステップＳ１２０８では、１シーン骨格認識部１２０は、１シーン骨格認識処理が成功したか否かを判定する。具体的には、１シーン骨格認識部１２０は、１シーン骨格認識処理で第１所定基準を満たすキャリブレーション情報（位置ｃｋΘ０及び向きｅｋΘ０等）が導出されたと判定した場合に、１シーン骨格認識処理が成功したと判定する。例えば、１シーン骨格認識部１２０は、所定数の部位を認識でき、かつ、各部位の事後分布のデータ和が、それぞれ所定値Ｔｈ１以上である場合に、第１所定基準を満たすキャリブレーション情報が導出されたと判定する。所定数の部位は、隠れた部位を除くすべての部位（関節モデルで定義される全ての部位）に対応してよい。各部位の事後分布のデータ和を評価することで、全部位が精度良く認識されている際のキャリブレーション情報を生成できる。判定結果が"ＹＥＳ"の場合は、ステップＳ１２１０に進み、それ以外の場合は、ステップＳ１２１２に進む。
【０２１８】
ステップＳ１２１０では、所定の処理終了条件が成立したか否かを判定する。所定の処理終了条件は、ステップＳ１２０２と同様であってよい。判定結果が"ＹＥＳ"の場合は、そのまま終了し、それ以外の場合は、ステップＳ１２１２に進む。
【０２１９】
ステップＳ１２１１では、データ入力部１１０は、ｊｊを"１"だけインクリメントする。
【０２２０】
ステップＳ１２１２では、データ入力部１１０は、処理対象の１時点に係る点群データであって、時系列でｊｊ番目に係る点群データを取得する。
【０２２１】
ステップＳ１２１４では、微小フィッティング処理部１５０は、ステップＳ１２０８で成功となった際のキャリブレーション情報と、ステップＳ１２１２で得た点群データとに基づいて、微小フィッティング処理を行う。尚、ここで用いる点群データは、ステップＳ１２１２で得た点群データであり、ステップＳ１２０４で得た点群データに係る時点（第１時点）よりも後の時点（第２時点）に係る。
【０２２２】
ステップＳ１２１６では、微小フィッティング処理部１５０は、微小フィッティング処理が成功したか否かを判定する。具体的には、微小フィッティング処理部１５０は、微小フィッティング処理で第２所定基準を満たす位置ｃｋΘ及び向きｅｋΘが導出されたと判定した場合に、微小フィッティング処理が成功したと判定する。例えば、微小フィッティング処理部１５０は、事後分布のデータ和の全部位和が所定値Ｔｈ２以上である場合に、第２所定基準を満たす位置ｃｋΘ及び向きｅｋΘが導出されたと判定する。各部位の事後分布のデータ和に代えて、事後分布のデータ和の全部位和を評価することで、一部の部位が精度良く認識されていない状況下でも、事後分布のデータ和の全部位和が比較的良好な値である場合は、微小フィッティング処理を継続できる。これは、微小フィッティングでは、欠損部分が関節回転のみなので、対象者Ｓの動きを大きく見失うことはないためである。また、微小フィッティングでは、１シーン骨格認識処理でのフィッティングとは異なり、部分的な欠損であれば残りのデータから推定可能であるためである。これにより、例えば、対象者Ｓが、かがんだ状態など、特徴点の多くが取得できない複雑な姿勢を取った場合でも、比較的高い精度の骨格情報を継続して取得できる。判定結果が"ＹＥＳ"の場合は、ステップＳ１２１０に進み、ステップＳ１２１０で判定結果が"ＹＥＳ"の場合は、次のフレームに係る点群データに基づく微小フィッティング処理が実行される。他方、判定結果が"ＮＯ"の場合は、ステップＳ１２０２に戻り、１シーン骨格認識処理を再度行う。
【０２２３】
このようにして図１２に示す処理によれば、１シーン骨格認識処理で精度の高い認識結果（キャリブレーション情報）が得られた場合に、当該認識結果に基づいて、微小フィッティング処理を行うことができる。これにより、１シーン骨格認識処理をフレームごとに繰り返す場合に比べて、処理速度を高めることができる。また、その後の微小フィッティング処理で認識精度が悪化した場合（事後分布のデータ和の全部位和が所定値Ｔｈ２未満になった場合）は、１シーン骨格認識処理を再度行うことができる。これにより、微小フィッティング処理を必要以上に継続することに起因して生じる不都合、即ち認識精度の悪化を抑制できる。このようにして、図１２に示す処理によれば、処理速度の向上と高い精度の認識結果の確保との両立を図ることができる。
【０２２４】
図１３は、微小フィッティング処理の概略フローチャートであり、ステップＳ１２１４で実行できる処理の一例である。
【０２２５】
ステップＳ１３００では、微小フィッティング処理部１５０は、ｍ＝１に設定する。
【０２２６】
ステップＳ１３０２では、表面残差算出部１５１は、部位ｍに係る表面残差εｎｍ及び表面残差の微分ε'ｎｍを算出する。表面残差εｎｍ及び表面残差の微分ε'ｎｍの算出方法は、上述のとおりである。尚、上述の通り、部位ｍに係る表面残差εｎｍ及び表面残差の微分ε'ｎｍの算出は、部位ｍに対応付けれた幾何モデルに依存する。例えば、幾何モデルが円柱の場合は、数４２〜数４５で示した式が使用されてもよい。
【０２２７】
ステップＳ１３０４では、事後分布算出部１５２は、ステップＳ１２１２で得た点群データと、ステップＳ１３０２で得た表面残差εｎｍとに基づいて、部位ｍに係る事後分布ｐｎｍを算出する。事後分布ｐｎｍの算出方法は、上述のとおりである（数５１参照）。
【０２２８】
ステップＳ１３０６では、有限長処理部１５４は、ステップＳ１３０４で得た事後分布ｐｎｍに基づいて、有限長処理を行う。有限長処理は、上述のとおりである（数５２参照）。
【０２２９】
ステップＳ１３０８では、微小フィッティング処理部１５０は、ｍ＝Ｍ−ｈであるか否かを判定する。Ｍ−ｈは、上述のように、フィッティング対象の部位の総数である。判定結果が"ＹＥＳ"の場合は、ステップＳ１３１２に進み、それ以外の場合は、ステップＳ１３１０を介して、ステップＳ１３０２に戻る。
【０２３０】
ステップＳ１３１０では、微小フィッティング処理部１５０は、ｍを"１"だけインクリメントする。
【０２３１】
ステップＳ１３１２では、微小変化算出部１５６は、微小変化Δθを算出する。この際、微小変化算出部１５６は、微小変化Δθの各要素Δθl'i'、ΔθＭ−ｆ＋１,i'、及びΔθＭ−ｆ＋２,i'を、ｌ'＝１，２、・・・、Ｍ−ｆ、及び、ｉ'＝０、Ｘ，ＸＸの全てについて、一括で算出してよい。この算出は、例えば行列演算により実現できる。
【０２３２】
ステップＳ１３１４では、微小フィッティング処理部１５０は、ｋ＝１に設定する。
【０２３３】
ステップＳ１３１６では、パラメータ更新部１５８は、ステップＳ１３１２で得た微小変化Δθに基づいて、位置ｃｋΘ＋ΔΘ及び向きｅｋΘ＋ΔΘを導出し、位置ｃｋΘ及び向きｅｋΘを、導出した位置ｃｋΘ＋ΔΘ及び向きｅｋΘ＋ΔΘで更新する。位置ｃｋΘ＋ΔΘ及び向きｅｋΘ＋ΔΘの導出方法は、上述のとおりである。ここで、位置ｃｋΘ及び向きｅｋΘの初期値は、位置ｃｋΘ０及び向きｅｋΘ０であり、直近のステップＳ１２０６で得られる。
【０２３４】
ステップＳ１３１８では、微小フィッティング処理部１５０は、ｋ＝Ｍであるか否かを判定する。Ｍは、上述のようにすべての部位の総数である。
【０２３５】
ステップＳ１３２０では、微小フィッティング処理部１５０は、ｋを"１"だけインクリメントする。
【０２３６】
ステップＳ１３２２では、分散更新部１５５は、ステップＳ１３０２で得た表面残差εｎｍと、ステップＳ１３０４で得た事後分布ｐｎｍとに基づいて、分散σ２を更新する。分散σ２の更新方法は上述のとおりである（数５３参照）。
【０２３７】
このようにして図１３に示す処理によれば、図１２のステップＳ１２０６で得られる１シーン骨格認識処理結果を利用して、比較的高い処理速度で位置ｃｋΘ及び向きｅｋΘを更新できる。例えば、フレーム毎のＮ回の反復計算を行う場合に比べて、Ｎ倍速の処理速度を実現できる。
【０２３８】
尚、図１３に示す処理において、ステップＳ１３１６の処理は、並列処理で実現されてもよい。ところで、微小フィッティング処理では、部位ｍの長さが固定されているので、位置ｃｋΘについては、ある一の部位について求めれば他の部位についても導出できるので、ある一の部位についてだけ算出されてもよい。但し、この場合、各部位の向きｅｋΘの結果を統合して各位置ｃｋΘを算出する必要があるため、各部位の演算を並列化している場合、同期待ちが発生する。この点、一方、各部位で位置ｃｋΘと向きｅｋΘの両方を算出しておけば、そのような同期待ちを回避可能である。
【０２３９】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【符号の説明】
【０２４０】
１  対象物認識システム
２１  距離画像センサ
１００  対象物認識装置
１１０  データ入力部
１２０  １シーン骨格認識部
１２２  クラスタリング部
１２４  ＥＭアルゴリズム部
１２６  モデル最適化部
１２８  長さ算出部
１３０  部位認識部
１３２  骨格整形部
１３４  キャリブレーション情報生成部
１４０  幾何モデルデータベース
１４２  キャリブレーション情報記憶部
１５０  微小フィッティング処理部
１５１  表面残差算出部
１５２  事後分布算出部
１５４  有限長処理部
１５５  分散更新部
１５６  微小変化算出部
１５８  パラメータ更新部
１６０  出力部
【図１】
2018207282.tif 000064
【図２】
2018207282.tif 000065
【図３】
2018207282.tif 000066
【図４】
2018207282.tif 000067
【図５】
2018207282.tif 000068
【図６】
2018207282.tif 000069
【図７】
2018207282.tif 000070
【図８】
2018207282.tif 000071
【図９Ａ】
2018207282.tif 000072
【図９Ｂ】
2018207282.tif 000073
【図１０】
2018207282.tif 000074
【図１１】
2018207282.tif 000075
【図１２】
2018207282.tif 000076
【図１３】
2018207282.tif 000077
【手続補正書】
【提出日】令和1年10月31日(2019.10.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
３次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得し、
前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第１パラメータであって、第１時点での第１パラメータを導出又は取得し、
前記第１時点より後の第２時点での前記点群データと、前記第１時点での前記第１パラメータと、軸を有する幾何モデルとに基づいて、前記第２時点での前記第１パラメータを導出することを含む、コンピュータにより実行される対象物認識方法。
【請求項２】
前記点群データの取得は、周期毎に実行され、
前記第２時点は、前記第１時点に係る周期の次の周期を含む、請求項１に記載の対象物認識方法。
【請求項３】
前記第１時点での前記第１パラメータの導出は、前記第１時点での前記点群データに、前記幾何モデルを複数の個所で別々に当てはめ、前記第１時点での前記点群データに当てはめる複数の前記幾何モデルのそれぞれの位置及び軸方向に基づいて、前記第１時点での前記第１パラメータを導出する当てはめ処理を含み、
前記第２時点での前記第１パラメータの導出は、前記第２時点での前記点群データに当てはまる複数の前記幾何モデルのそれぞれの位置及び軸方向を、前記第２時点での前記第１パラメータを導出することを含む、請求項１又は２に記載の対象物認識方法。
【請求項４】
前記当てはめ処理は、前記点群データに含まれるノイズを一様分布でモデル化することを含む、請求項３に記載の対象物認識方法。
【請求項５】
前記幾何モデルは、円柱、円錐、台形柱、楕円柱、楕円錐、及び台形楕円柱のうちの少なくともいずれか１つに係り、
前記第２時点での前記第１パラメータの導出は、前記第１時点での前記第１パラメータの導出に用いた種類の複数の前記幾何モデルに基づく、請求項３又は４に記載の対象物認識方法。
【請求項６】
前記第２時点での前記第１パラメータの導出は、前記当てはめ処理によって第１所定基準を満たす前記第１パラメータが得られた後に実行され、
前記当てはめ処理は、前記第１所定基準を満たす前記第１パラメータが得られるまで周期毎に繰り返される、請求項３〜５のうちのいずれか１項に記載の対象物認識方法。
【請求項７】
前記当てはめ処理は、前記第１時点での前記点群データに基づく第１事後分布を算出することを含み、
前記第１所定基準は、前記複数の部位の数が所定数以上であり、かつ、前記複数の部位のそれぞれに係る前記第１事後分布のデータ和が第１所定値以上である場合に満たされる、請求項６に記載の対象物認識方法。
【請求項８】
前記第２時点での前記第１パラメータの導出結果が第２所定基準を満たすか否かを判定することを更に含み、
前記第２時点での前記第１パラメータの導出結果が前記第２所定基準を満たさない場合は、新たな前記第１時点での前記第１パラメータの導出からやり直すことを含む、請求項６又は７に記載の対象物認識方法。
【請求項９】
前記第２時点での前記点群データに基づく第２事後分布を算出することを含み、
前記複数の部位は、複数の前記幾何モデルに対応付けられる複数の第１部位と、前記幾何モデルに対応付けられない複数の第２部位とを含み、
前記第２所定基準は、前記複数の第１部位のそれぞれに係る前記第２事後分布のデータ和の合計が第２所定値以上である場合に満たされる、請求項８に記載の対象物認識方法。
【請求項１０】
前記第２事後分布の算出は、前記複数の第１部位のそれぞれごとに、前記第２時点での前記点群データのうちの、前記第１部位に対応付けられる前記幾何モデルの軸方向の中心からの軸方向の距離が所定距離以上のデータに対し、前記第２事後分布を０にすることを含む、請求項９に記載の対象物認識方法。
【請求項１１】
前記対象物は、人、又は、人型のロボットであり、
前記複数の第２部位は、前記対象物の腕部の根本の関節と、前記対象物の胴部における頭部側の関節とを結ぶ部位と、前記対象物の脚部の根本の関節と、前記対象物の胴部における前記脚部側の関節とを結ぶ部位を含む、請求項１０に記載の対象物認識方法。
【請求項１２】
前記第２時点での前記第１パラメータの導出結果が前記第２所定基準を満たす場合は、該第２時点での前記第２時点での前記第１パラメータの導出結果と、該第２時点に係る周期の次の周期の前記点群データとに基づいて、新たな前記第２時点での前記第１パラメータを導出することを更に含む、請求項８〜１１のうちのいずれか１項に記載の対象物認識方法。
【請求項１３】
前記第２時点での前記第１パラメータの導出は、前記複数の部位のそれぞれごとに、位置及び軸方向のそれぞれの変化であって、前記第１時点からの変化を表す第２パラメータを導出することを含む、請求項１２に記載の対象物認識方法。
【請求項１４】
前記第２パラメータの算出は、前記対象物の関節に対応付け可能な複数の関節を有する機構モデルを用いた順運動学に基く計算処理を含む、請求項１３に記載の対象物認識方法。
【請求項１５】
前記計算処理は、前記対象物の重心の並進、回転、及び前記複数の関節のそれぞれの回転を、微小変化するものとして扱うことを伴う、請求項１４に記載の対象物認識方法。
【請求項１６】
前記複数の部位は、可動部位と、非可動部位とを含み、
前記機構モデルは、前記複数の関節のうちの前記可動部位に係る各関節に３軸まわりの回転自由度を与えるモデルである、請求項１５に記載の対象物認識方法。
【請求項１７】
前記第２パラメータの算出は、前記計算処理のうちの、前記複数の部位のうちの軸対称の幾何モデルに対応付けられる部位に係る計算部分であって、軸まわりの回転に係る計算部分を省略することを含む、請求項１６に記載の対象物認識方法。
【請求項１８】
３次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得する取得部と、
前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第１パラメータであって、第１時点での第１パラメータを導出又は取得するパラメータ導出／取得部と、
前記第１時点より後の第２時点での前記点群データと、前記第１時点での前記第１パラメータと、軸を有する幾何モデルとに基づいて、前記第２時点での前記第１パラメータを導出する導出処理部とを含む、対象物認識装置。
【請求項１９】
３次元の位置情報を得るセンサと、
前記センサから、複数の関節を有する対象物の表面に係る点群データを取得する取得部と、
前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第１パラメータであって、第１時点での第１パラメータを導出又は取得するパラメータ導出／取得部と、
前記第１時点より後の第２時点での前記点群データと、前記第１時点での前記第１パラメータと、軸を有する幾何モデルとに基づいて、前記第２時点での前記第１パラメータを導出する導出処理部とを含む、対象物認識システム。
【請求項２０】
３次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得し、
前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第１パラメータであって、第１時点での第１パラメータを導出又は取得し、
前記第１時点より後の第２時点での前記点群データと、前記第１時点での前記第１パラメータと、軸を有する幾何モデルとに基づいて、前記第２時点での前記第１パラメータを導出する
処理をコンピュータに実行させる対象物認識プログラム。
【国際調査報告】
2018207282.tif 000078
2018207282.tif 000079
2018207282.tif 000080
2018207282.tif 000081