(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-15
(45)【発行日】2023-08-23
(54)【発明の名称】生成方法、生成プログラムおよび情報処理装置
(51)【国際特許分類】
G01B 11/26 20060101AFI20230816BHJP
G06T 13/40 20110101ALI20230816BHJP
A61B 5/107 20060101ALI20230816BHJP
【FI】
G01B11/26 Z
G06T13/40
A61B5/107 300
(21)【出願番号】P 2021534464
(86)(22)【出願日】2019-07-23
(86)【国際出願番号】 JP2019028905
(87)【国際公開番号】W WO2021014587
(87)【国際公開日】2021-01-28
【審査請求日】2021-10-29
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】井上 一成
(72)【発明者】
【氏名】池田 弘
(72)【発明者】
【氏名】鯨井 翔
【審査官】山▲崎▼ 和子
(56)【参考文献】
【文献】特開2015-028702(JP,A)
【文献】特開2013-157014(JP,A)
【文献】米国特許出願公開第2013/0250050(US,A1)
【文献】国際公開第2019/030794(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01B 11/00-11/30
G06T 1/00
7/00-7/90
11/60-13/80
17/05
19/00-19/20
G06V 10/00-20/90
30/418、40/16、40/20
A61B 5/107
(57)【特許請求の範囲】
【請求項1】
コンピュータが実行する生成方法であって、
被写体の3次元の位置情報を得るセンサの計測結果から、前記被写体の表面上の3次元点群データを取得し、
前記3次元点群データを基にして、人体の各部位を複数の円筒で表現した円筒モデルの姿勢を決定し、
前記複数の円筒について、前記円筒の長さ、前記円筒の太さ、前記円筒の軸と隣接する円筒の軸との角度のうち、
前記角度に関する第1のパラメータを変化させ、前記第1のパラメータを変化させた前記円筒モデルと前記3次元点群データとの合致具合を評価する評価関数の値を算出する処理を、前記評価関数の値が第1最適解となるまで繰り返し実行し、
前記評価関数の値が前記第1最適解となった後に、
前記円筒の長さおよび前記円筒の太さに関する第2のパラメータを変化させ、前記第2のパラメータを変化させた前記円筒モデルと前記3次元点群データとの合致具合を評価する評価関数の値を算出する処理を、前記評価関数の値が第2最適解となるまで繰り返し、
前記評価関数の値が前記第1最適解および前記第2最適解を満たしたときの前記第2のパラメータを有する円筒モデルを生成し、
前記円筒モデルと前記被写体を識別する情報とを対応付けて記憶する
処理を実行することを特徴とする生成方法。
【請求項2】
前記評価関数の値が第1最適解となるまで繰り返し実行する処理は、前記複数の円筒について、前記角度を変化させ、前記角度を変化させた前記円筒モデルと前記3次元点群データとの合致具合を評価する評価関数の値を算出する処理を、前記評価関数の値が第1最適解となるまで繰り返し実行することを特徴とする請求項1に記載の生成方法。
【請求項3】
前記評価関数の値が第2最適解となるまで繰り返し実行する処理は、前記評価関数の値が第1最適解となった後に、前記複数の円筒について、前記円筒の長さおよび前記円筒の太さを変化させ、前記円筒の長さおよび前記円筒の太さを変化させた前記円筒モデルと前記3次元点群データとの合致具合を評価する評価関数の値を算出する処理を、前記評価関数の値が第2最適解となるまで繰り返し実行することを特徴とする請求項2に記載の生成方法。
【請求項4】
前記取得する処理は、同一の被写体について、異なる姿勢の複数の3次元点群データを取得し、前記評価関数の値が第2最適解となるまで繰り返し実行する処理は、前記複数の3次元点群データのうち、第1の3次元点群データを基にして、前記評価関数の値が第1最適解となる第1のパラメータを特定された後に、第2の3次元点群データを基にして、前記第1のパラメータを変化させ、前記評価関数の値が第2最適解となる第2のパラメータを特定することを特徴とする請求項1、2または3に記載の生成方法。
【請求項5】
コンピュータに、
被写体の3次元の位置情報を得るセンサの計測結果から、前記被写体の表面上の3次元点群データを取得し、
前記3次元点群データを基にして、人体の各部位を複数の円筒で表現した円筒モデルの姿勢を決定し、
前記複数の円筒について、前記円筒の長さ、前記円筒の太さ、前記円筒の軸と隣接する円筒の軸との角度のうち、
前記角度に関する第1のパラメータを変化させ、前記第1のパラメータを変化させた前記円筒モデルと前記3次元点群データとの合致具合を評価する評価関数の値を算出する処理を、前記評価関数の値が第1最適解となるまで繰り返し実行し、
前記評価関数の値が前記第1最適解となった後に、
前記円筒の長さおよび前記円筒の太さに関する第2のパラメータを変化させ、前記第2のパラメータを変化させた前記円筒モデルと前記3次元点群データとの合致具合を評価する評価関数の値を算出する処理を、前記評価関数の値が第2最適解となるまで繰り返し、
前記評価関数の値が前記第1最適解および前記第2最適解を満たしたときの前記第2のパラメータを有する円筒モデルを生成し、
前記円筒モデルと前記被写体を識別する情報とを対応付けて記憶する
処理を実行させることを特徴とする生成プログラム。
【請求項6】
被写体の3次元の位置情報を得るセンサの計測結果から、前記被写体の表面上の3次元点群データを取得する取得部と、
前記3次元点群データを基にして、人体の各部位を複数の円筒で表現した円筒モデルの姿勢を決定し、前記複数の円筒について、前記円筒の長さ、前記円筒の太さ、前記円筒の軸と隣接する円筒の軸との角度のうち、
前記角度に関する第1のパラメータを変化させ、前記第1のパラメータを変化させた前記円筒モデルと前記3次元点群データとの合致具合を評価する評価関数の値を算出する処理を、前記評価関数の値が第1最適解となるまで繰り返し実行し、
前記評価関数の値が前記第1最適解となった後に、
前記円筒の長さおよび前記円筒の太さに関する第2のパラメータを変化させ、前記第2のパラメータを変化させた前記円筒モデルと前記3次元点群データとの合致具合を評価する評価関数の値を算出する処理を、前記評価関数の値が第2最適解となるまで繰り返し、前記評価関数の値が前記第1最適解および前記第2最適解を満たしたときの前記第2のパラメータを有する円筒モデルを生成し、前記円筒モデルと前記被写体を識別する情報とを対応付けて記憶する生成部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生成方法等に関する。
【背景技術】
【0002】
近年、競技者に対して骨格認識(競技者の各関節位置を決定すること)を行い、時間経過に伴う各関節位置から得られる3Dモデルを表示することで、競技の採点支援や、トレーニング支援が行われている。骨格認識の手法一つとして、深度センサの測定結果から得られる点群データに対して、競技者の体型をモデル化した体型情報を合わせ込み、競技者の各関節の位置を推定する手法が知られている。本手法による骨格認識の精度は、体型情報が如何に競技者の体型を反映しているかに依存するため、競技者の体型を精度よく計測する技術が求められている。
【0003】
ここで、SCAPE(Shape Completion and Animation of PEople)モデルを用いた骨格認識技術および利用するSCAPEモデルの生成技術が知られている。また、人体の各部位を円筒で表現した円筒モデルを、体型情報として生成する他の従来技術がある。他の従来技術では、人物の深度画像情報をランダムフォレストに入力して、人体の部位を判別し、円筒モデルを調整する。
【先行技術文献】
【非特許文献】
【0004】
【文献】A.Weiss et al.,“Home 3D Body Scans from Noisy Image and Range Data,” IEEE ICCV,pp.1951-1958(2011)
【文献】Q.Wang et al.,“Im2Fit:Fast 3D Model Fitting and Anthropometrics using Single Consumer Depth Camera and Synthetic Data,”3DIPM-045.1-7,(2016)
【文献】X.Wei et al.,“Accurate Realtime Full-body Motion Capture Using a Single Depth Camera,”ACM Transactions on Graphics, Vol.31, No. 6,Article 188(2012)
【文献】D.Anguelov et al.(Stanford Univ),“SCAPE: Shape Completion and Animation of People,”ACM Transactions on Graphics,vol.24 no.3 pp. 408-416(2005)
【発明の概要】
【発明が解決しようとする課題】
【0005】
SCAPEモデルは体の表面まで詳細に定義する体型情報であるため、従来技術では、競技者固有の体型情報を生成する処理、および、体型情報を用いた骨格位置を推定する処理に、時間を要してしまうという問題があった。一方で、円筒モデルを用いた骨格認識技術は、体型情報の生成に要する時間を短縮することができる。
【0006】
しかしながら、円筒モデルを用いた従来技術では、円筒モデルで表現する際の被写体の体型情報を高精度に得ることができないという問題がある。
【0007】
本発明は、上記に鑑みてなされたものであって、円筒モデルで表現する際の被写体の体型情報を、従来よりも高精度に得ることができる生成方法、生成プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、コンピュータに次の処理を実行させる。コンピュータは、被写体の3次元の位置情報を得るセンサの計測結果から、被写体の表面上の3次元点群データを取得する。コンピュータは、3次元点群データを基にして、人体の各部位を複数の円筒で表現した円筒モデルの姿勢を決定する。コンピュータは、複数の円筒について、円筒の長さ、円筒の太さ、円筒の軸と隣接する円筒の軸との角度のうち、少なくとも一つのパラメータを変化させ、パラメータを変化させた円筒モデルと3次元点群データとの合致具合を評価する評価関数の値を算出する処理を、評価関数の値が所定条件を満たすまで繰り返し実行する。コンピュータは、評価関数の値が所定条件を満たしたときのパラメータを有する円筒モデルを生成する。コンピュータは、円筒モデルと被写体を識別する情報とを対応付けて記憶する。
【発明の効果】
【0009】
円筒モデルで表現する際の各被写体の体型情報を、従来よりも高精度に得られる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、本実施例に係る情報処理装置の処理を説明するための図である。
【
図2】
図2は、本実施例に係るシステムの一例を示す図である。
【
図3】
図3は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
【
図4】
図4は、円筒モデルデータのデータ構造の一例を示す図である。
【
図5】
図5は、円筒と部位識別情報との対応関係を示す図である。
【
図6】
図6は、円筒のパラメータの一例を示す図である。
【
図7】
図7は、深度画像テーブルのデータ構造の一例を示す図である。
【
図8】
図8は、円筒モデルデータテーブルのデータ構造の一例を示す図である。
【
図9】
図9は、本実施例に係る情報処理装置の処理手順を示すフローチャートである。
【
図10】
図10は、本実施例に係る生成処理の処理手順を示すフローチャートである。
【
図11】
図11は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0011】
以下に、本発明にかかる生成方法、生成プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0012】
図1は、本実施例に係る情報処理装置の処理を説明するための図である。情報処理装置は、点群データ30と、円筒モデルデータ40との入力を受け付ける。点群データ30は、1以上の深度センサの測定結果から得られる被写体の表面上の各点の3次元位置をそれぞれ示す情報である。点群データ30は、「3次元点群データ」に対応する。
【0013】
円筒モデルデータ40は、被写体の部位を円筒(あるいは楕円柱など)で表現したモデルのデータである。以下の説明では、円筒あるいは楕円柱などをまとめて、円筒と表記する。円筒モデルデータ40を構成する各円筒のパラメータの初期値は、標準的な人物の体型に合わせた値に設定されている。円筒のパラメータは、円筒の高さ、半径、長径、短径等に対応する。
【0014】
情報処理装置は、点群データ30に合うように、円筒モデルデータ40の姿勢を調整する(ステップS10)。円筒モデルデータ40の姿勢は、円筒モデルデータ40のある円筒の軸と隣接する円筒の軸との角度θ、特定部位の円筒端部の3次元位置A(Md1とMd2の接続部分(例えば、腰)など)、あらかじめ設定された基準軸に対する回転角度δ(Md1の方向を表す3次元回転角度)によって、定義される。情報処理装置は、円筒モデルデータ40の各角度θ、3次元位置A、回転角度δを変更することで、姿勢を調整する。なお、Md1、Md2は、後述する
図5で説明する。
【0015】
情報処理装置は、ステップS10において、円筒モデルデータ40の姿勢の調整を行った後に、点群データ30に合うように、円筒モデルデータ40の各円筒のパラメータを調整する(ステップS11)。情報処理装置は、ステップS10,S11で調整した円筒モデルデータ40と、点群データ30との合致度合いを評価する評価関数の解が、最適解に達するまで、ステップS10、S11の処理を繰り返し実行する。
【0016】
情報処理装置は、評価関数の解が最適解に達した場合に、最適解に達した際の、円筒のパラメータを有する円筒モデルデータ40を、体型情報として、記憶部に保存する。
【0017】
このように、本実施例に係る情報処理装置は、点群データ30と円筒モデルデータ40とに基づき、評価関数の値が最適解となる円筒モデルデータ40のパラメータを探索し、円筒モデルデータ40で表現する被写体の体型情報を生成する。円筒モデルデータ40は、SCAPEモデルと比較して、調整対象となるパラメータの数が少ないため、パラメータの探索に要する時間を削減することができる。また、生成された体型情報を用いた骨格認識における、処理時間を短縮することができる。また、円筒モデルデータ40の各円筒は、被写体の各部位に対応しており、各点の3次元位置を定義した点群データ30に基づいて、円筒のパラメータを調整しているため、従来のランダムフォレスト方式よりも、被写体の体型情報をより高精度に得られる。
【0018】
次に、本実施例に係るシステムの一例について説明する。
図2は、本実施例に係るシステムの一例を示す図である。
図2に示すように、このシステムは、深度センサ20a,20bと、情報処理装置100とを有する。深度センサ20a,20bは、情報処理装置100に、無線または有線通信によって、接続される。
【0019】
深度センサ20a,20bは、被写体5との距離を計測することで、深度画像を生成するセンサである。たとえば、深度センサ20a、20bは、被写体5の前後に設置される。深度センサ20a,20bは、深度画像の情報を、情報処理装置100に出力する。深度センサ20aの深度画像は、被写体5上の各点と、深度センサ20aとの距離をそれぞれ示す情報である。深度センサ20bの深度画像は、被写体5上の各点と、深度センサ20bとの距離をそれぞれ示す情報である。
【0020】
なお、深度センサによる計測時、被写体5は、予め指示される複数の姿勢(ポーズ)をとり、各姿勢において、所定時間、姿勢を維持する。深度センサ20a,20bは、被写体5に関する各姿勢の深度画像をそれぞれ生成し、情報処理装置100に出力する。
【0021】
図2に示す例では、深度センサ20a,20bを示すが、更に他の深度センサを用いて、深度画像を生成してもよいし、深度センサ20aは1台であっても良い。以下の説明では、深度センサ20a,20bをまとめて、深度センサ20と表記する。深度画像の情報を、深度画像情報と表記する。深度画像情報には、深度画像情報を生成した、深度センサ20を一意に識別する深度センサ識別情報が設定される。
【0022】
情報処理装置100は、深度センサ20から取得する深度画像情報を基にして、被写体5の点群データ30を算出する。情報処理装置100は、点群データ30と、円筒モデルデータ40とに基づき、評価関数の値が最適解となる円筒モデルデータ40のパラメータを探索し、円筒モデルデータ40で表現する被写体5の体型情報を生成し、被写体5を識別する情報と対応付けて保存する。情報処理装置100に生成された体型情報は、たとえば、骨格認識処理に用いられる。認識された骨格(各関節の位置)は、たとえば、競技の採点支援や、トレーニング支援を行う場合に用いられる。
【0023】
図3は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
図3に示すように、この情報処理装置100は、深度センサ20と、通信部110と、入力部120と、表示部130と、記憶部140と、制御部160とを有する。また、通信部110は、無線または有線によって、深度センサ20と接続される。
【0024】
深度センサ20は、
図2で説明した深度センサ20a,20bに対応するものである。深度センサ20は、被写体5との距離を計測することで、深度画像情報を生成するセンサである。深度センサ20は、深度画像情報を、通信部150に出力する。
【0025】
通信部110は、ネットワークを介して、深度センサ20等の外部装置とデータ通信を実行する処理部である。後述する制御部150は、通信部110を介して、外部装置とデータをやり取りする。通信部110は、通信装置の一例である。
【0026】
入力部120は、情報処理装置100に各種の情報を入力するための入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。
【0027】
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、タッチパネル等に対応する。
【0028】
記憶部140は、円筒モデルデータ40と、深度画像テーブル141と、円筒モデルデータテーブル142とを有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0029】
円筒モデルデータ40は、被写体の部位を円筒で表現したモデルのデータである。
図4は、円筒モデルデータのデータ構造の一例を示す図である。
図4に示すように、円筒モデルデータ40は、部位識別情報と、パラメータとを対応付ける。部位識別情報は、円筒モデルに含まれる各円筒を識別する情報である。パラメータは、部位識別情報によって識別される円筒のパラメータを示すものである。円筒のパラメータは、円筒の長さと、円筒の半径などを含む。
【0030】
図5は、円筒と部位識別情報との対応関係を示す図である。
図5に示すように、各部位識別情報Md1~Md14は、円筒モデルデータ40の各部位にそれぞれ対応付けられる。
図4に示した部位識別情報Md1~Md14は、
図5に示した部位識別情報Md1~Md14に対応する。
【0031】
図6は、円筒のパラメータの一例を示す図である。
図6では、複数の円筒Md1~Md11のうち、ある一つの円筒を示す。円筒のパラメータは、円筒の高さlと、円筒の半径rとを含む。円筒の半径rは、円筒の太さに対応する。なお、本実施例は、これらパラメータを調整することで、被写体それぞれの体型情報を、精度よく生成できる。
【0032】
深度画像テーブル141は、深度センサ20により生成された深度画像情報を保持するテーブルである。
図7は、深度画像テーブルのデータ構造の一例を示す図である。
図7に示すように、深度画像テーブル141は、深度センサ識別情報と、姿勢識別情報と、深度画像情報とを対応付ける。深度センサ識別情報は、深度センサを一意に識別する情報である。たとえば、深度センサ識別情報「S1」は、深度センサ20aに対応する。深度センサ識別情報「S2」は、深度センサ20bに対応する。
【0033】
姿勢識別情報は、被写体5の姿勢を一意に識別する情報である。深度画像情報は、深度センサ20により生成される深度画像情報である。
図7に示すように、深度センサ20は、姿勢毎に深度画像情報を生成するものとする。
【0034】
円筒モデルデータテーブル142は、被写体5や他の被写体の円形モデルデータを保持するテーブルである。
図8は、円筒モデルデータテーブルのデータ構造の一例を示す図である。つまり、
図8は、被写体ごとの体型情報である円形モデルデータを保持する。
図8に示すように、円筒モデルデータテーブル142は、被写体識別情報と、円筒モデルデータとを対応付ける。被写体識別情報は、被写体を一意に識別する情報である。円筒モデルデータは、被写体に対応する円筒モデルデータである。
【0035】
図3の説明に戻る。制御部150は、取得部151と、変換部152と、生成部153と、出力制御部154を有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部160は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
【0036】
取得部151は、各種の情報を取得し、取得した情報を記憶部140に格納する処理部である。
【0037】
取得部151は、深度センサ20から、深度画像情報を取得した場合、深度センサ識別情報と、姿勢識別情報と、深度画像情報とを対応付けて、深度画像テーブル141に登録する。深度センサ20から取得する深度情報が、いずれの姿勢識別情報に対応するかの情報は、ユーザが入力部120から入力して指示してもよいし、対象者の姿勢を判定する姿勢判定装置から、姿勢識別情報を取得してもよい。
【0038】
たとえば、取得部151は、入力部120から姿勢識別情報「P1」の入力を受け付けたタイミングから、所定時間後までの間に、深度センサ20から取得した深度画像情報を、姿勢識別情報「P1」に対応付ける。
【0039】
変換部152は、深度画像情報を点群データに変換する処理部である。
【0040】
変換部152が、深度画情報を点群データに変換する処理の一例について説明する。変換部152は、深度画像情報の点の位置および距離(深度)と、3次元座標との関係を定義した変換テーブル(図示略)を用いる。変換テーブルには、深度センサ20a用の第1変換テーブルと、深度センサ20b用の第2変換テーブルとが含まれる。
【0041】
変換部152は、姿勢識別情報「P1」に対応する、深度センサ20aが生成した深度画像情報と、第1変換テーブルとを比較して、深度画像情報を、第1点群データに変換する。変換部152は、姿勢識別情報「P1」に対応する、深度センサ20bが生成した深度画像情報と、第2変換テーブルとを比較して、深度画像情報を、第2点群データに変換する。変換部152は、第1点群データと、第2点群データとを組み合わせて、姿勢識別情報「P1」に対する点群データを生成する。
【0042】
変換部152は、他の姿勢識別情報に対応する深度画像情報についても、上記処理を繰り返し実行し、他の姿勢識別情報に対応する点群データを生成する。
【0043】
図3の説明に戻る。生成部153は、点群データと、円筒モデルデータ40とを比較して、合致度合いの評価関数の値が最適値となる円筒モデルデータ40のパラメータを探索することで、被写体の円筒モデルデータを生成する処理部である。生成部153は、探索した円筒モデルデータ40のパラメータと、被写体識別情報とを対応付けて、円筒モデルデータテーブル142に登録する。たとえば、被写体識別情報は、入力部120から入力されるものとする。
【0044】
たとえば、生成部153は、EM(Expectation Maximization)アルゴリズムを用いて、評価関数の値が最適値となる円筒モデルデータ40のパラメータを探索する。生成部153は、姿勢識別情報「P1」に対応する点群データと、円筒モデルデータを取得するためにあらかじめ指定された姿勢識別情報「P1」「P2」などにより用意された初期姿勢とを取得する。各円筒の関節部分は、予め設定されているものとする。
【0045】
生成部153は、初期姿勢の円筒モデルデータ40と、点群データとを比較して、点群の事後分布p
nmを算出する。事後分布p
nmは、式(1)によって定義される。「n」は、点群データに含まれる点を示すものであり、点群データに点がn
a個含まれている場合、n=1~n
aとなる。Mは、円筒モデルデータ40の各円筒(部位)を示すものであり、
図5で示したように、各部位識別情報Md1~Md14により識別される部位が14個存在する場合、m=1~14(Md1~Md14)となる。
【0046】
【0047】
式(1)に含まれるεmは、表面残差を示すものであり、ガウス分布であることが仮定される。表面残差は、点群と、m番目の円筒の表面との垂直な方向の差を示す。たとえば、1番目の円筒は、部位識別番号Md1の円筒を示す。表面残差εmは、xn、θ、lにより特定される。xnは、n番目の点の3次元座標を示す。θは、m番目の円筒の軸と、隣接する(例えばm+1番目の)円筒の軸との関節角度(全ての関節数分)を示す。
【0048】
lは、m番目の円筒のパラメータ(長さ、半径)を示す。σは、点群データに含まれる3次元座標の分散を示す。なお、姿勢を定義するθ以外の要素である、特定部位の端部の三次元位置Aと回転角度δは、点群が有するセンサ基準の3次元座標におけるθの最適化において、併せて最適化されるため、ここでは、三次元位置Aと回転角度δを単独で考慮しない。
【0049】
生成部153は、事後分布pnmを算出した後に、式(2)で定義される評価関数Qの値を算出する。式(2)において、Pは、pnmの総和を示す。
【0050】
【0051】
生成部153は、Mステップ1を実行した後に、Mステップ2を実行する。生成部153が実行するMステップ1について説明する。生成部153は、角度変化量Δθを計算し、関節角度θに角度変更量Δθを加算することで、式(1)、式(2)に含まれる関節角度θを更新する。生成部153は、更新した関節角度θにより、評価関数Qの値を算出する。生成部153は、評価関数Qの値が所定の収束条件を満たすまで、Mステップ1を繰り返し実行する。たとえば、収束条件は、評価関数Qの値が閾値Th1以上という条件である。生成部153は、収束条件を満たす場合に、Mステップ2に移行する。閾値Th1は、適宜変更してもよい。
【0052】
生成部153は、Levenberg-Marquardt(LM)法を用いて、角度変化量Δθを算出する。たとえば、生成部153は、式(3)、式(4)に基づいて角度変化量Δθを算出する。生成部153は、LM法に限らず、ランダムに角度変化量Δθを生成してもよい。
【0053】
【0054】
生成部153が実行するMステップ2について説明する。生成部153は、体型変化量Δlを計算し、パラメータlに体型変化量Δlを加算することで、式(1)、式(2)に含まれるパラメータlを更新する。生成部153は、パラメータlにより、評価関数Qの値を算出する。生成部153は、評価関数Qの値が所定の収束条件を満たすまで、Mステップ2を繰り返し実行する。たとえば、収束条件は、評価関数Qの値が閾値Th2以上という条件である。生成部153は、収束条件を満たす場合に、Mステップ2を終了する。
【0055】
生成部153は、LM法を用いて、体型変化量Δlを算出する。たとえば、生成部153は、式(5)、式(6)に基づいて体型変化量Δlを算出する。生成部153は、LM法に限らず、ランダムに体型変化量Δθを生成してもよい。
【0056】
【0057】
生成部153は、Mステップ2を終了した場合、評価関数Qの値がフィッテイング収束条件を満たすか否かを判定する。生成部153は、フィッテイング収束条件を満たす場合に、係るフィッテイング収束条件を満たすパラメータを、姿勢識別情報「P1」に対応するパラメータとして特定する。フィッテイング収束条件は、所定の閾値であってもよいし、Mステップ1、Mステップ2の実行回数であってもよい。生成部153は、フィッテイング収束条件を満たさない場合には、再度、Mステップ1を実行する。
【0058】
生成部153は、同一の被写体について、他の姿勢識別情報についても、フィッテイング収束条件を満たすパラメータを特定する。この場合、生成部153は、前回の姿勢識別情報で特定したフィッテイング収束条件を満たす円筒モデルデータのパラメータを、今回の姿勢機別情報に対応するパラメータの初期値として使用してもよい。
【0059】
たとえば、生成部153は、姿勢識別情報「P2」の点群データを用いて、パラメータを算出する場合、姿勢識別情報「P1」の点群データを用いて最終的に特定パラメータを、初期値として使用してもよい。生成部153は、各姿勢識別情報に対応する点群データを用いて、被写体の円筒モデルデータのパラメータをより精度よく求めることができる。
【0060】
生成部153は、異なる被写体毎に、上記処理を繰り返し実行することで、被写体毎のパラメータを生成し、円筒モデルデータテーブル142に登録する。
【0061】
なお、上記の説明では、生成部153は、同一の被写体について、複数の姿勢識別情報毎の点群データを用いて、円筒モデルデータのパラメータを算出する場合について説明したが、これに限定されるものではない。生成部153は、同一の被写体について、一つの姿勢識別情報に対応する点群データを基にして、円筒モデルデータのパラメータを算出してもよい。
【0062】
出力制御部154は、円筒モデルデータテーブル142の情報を、競技の採点支援や、トレーニング支援を行う外部装置(図示略)に出力する処理を制御する処理部である。出力制御部154は、円筒モデルデータテーブル142の情報を、表示部130に出力して表示させてもよい。
【0063】
次に、本実施例に係る情報処理装置100の処理手順の一例について説明する。
図9は、本実施例に係る情報処理装置の処理手順を示すフローチャートである。
図9に示すように、情報処理装置100の取得部151は、深度センサ20から深度画像情報を取得する(ステップS51)。取得部151は、深度画像情報を深度画像テーブル141に登録する(ステップS52)。
【0064】
情報処理装置100の変換部152は、深度画像情報を点群データに変換する(ステップS53)。情報処理装置100の生成部153は、生成処理を実行する(ステップS54)。情報処理装置100の出力制御部154は、円筒モデルデータを外部装置に出力する(ステップS55)。
【0065】
次に、
図9のステップS54に示した生成処理の一例について説明する。
図10は、本実施例に係る生成処理の処理手順を示すフローチャートである。
図10に示すように、情報処理装置100の生成部153は、円筒モデルデータの初期姿勢を設定する(ステップS101)。生成部153は、点群データの事後分布p
nmを算出する(ステップS102)。生成部153は、評価関数Qの値を算出する(ステップS103)。
【0066】
生成部153は、角度変化量Δθを算出する(ステップS104)。生成部153は、関節角度θを更新する(ステップS105)。生成部153は、評価関数Qの値が収束条件を満たすか否かを判定する(ステップS106)。生成部153は、評価関数Qの値が収束条件を満たさない場合には(ステップS106,No)、ステップS103に移行する。
【0067】
生成部153は、評価関数Qの値が収束条件を満たす場合には(ステップS106,Yes)、評価関数Qの値を算出する(ステップS107)。生成部153は、体型変化量Δlを算出する(ステップS108)。生成部153は、パラメータlを更新する(ステップS109)。生成部153は、評価関数Qの値が収束条件を満たすか否かを判定する(ステップS110)。生成部153は、評価関数Qの値が収束条件を満たさない場合には(ステップS110,No)、ステップS107に移行する。
【0068】
生成部153は、評価関数Qの値が収束条件を満たす場合には(ステップS110,Yes)、フィッテイング収束条件を満たすか否かを判定する(ステップS111)。生成部153は、フィッテイング収束条件を満たさない場合には(ステップS111,No)、ステップS102に移行する。
【0069】
一方、生成部153は、フィッテイング収束条件を満たす場合には(ステップS111,Yes)、フィッテイング収束条件を満たすパラメータを、円筒モデルデータテーブル142に登録する(ステップS112)。
【0070】
次に、本実施例に係る情報処理装置100の効果について説明する。情報処理装置100は、深度センサ20から取得する深度画像の情報を基にして、被写体5の点群データ30を算出する。情報処理装置100は、点群データ30と、円筒モデルデータ40とに基づき、評価関数の値が最適解となる円筒モデルデータ40のパラメータを探索する処理を行うことで、被写体5に対応する円筒モデルデータのパラメータを生成する。このように、人物の深度画像をランダムフォレストに入力して、円筒モデルを調整する従来技術と比較して、情報処理装置100は、3次元の点群データに合うように、パラメータを調整している。このため、円筒モデルで表現する際の被写体のパラメータ(体型情報)を、従来よりも高精度に得られる。
【0071】
ランダムフォレストで用いる深度画像は、被写体のシルエット画像に深度情報が与えられた画像である。従来技術は、まず、深度画像に対してランダムフォレストによる部位認識を行う。その結果、被写体のシルエットにおける各部位が認識される。従来技術は、認識された複数部位それぞれについて、深度画像におけるシルエットから各部位の太さや長さを決定する。つまり、太さや長さは、被写体が2次元に投影されたシルエット画像から得られる情報である。一方で、本実施例は、3次元点群とモデルとの距離が最小になるように最適化した結果から、各部位の太さや長さを決定する。よって、本実施例は、シルエットとして投影された体型ではなく、被写体の実際の体型を円筒モデルに反映して、体型情報を生成することができる。
【0072】
情報処理装置100は、SCAPEモデルのように、人体の表面まで詳細に定義する体型情報と異なり、円筒モデルで被写体の体型情報を生成する。このため、SCAPEモデルと比較して、計算コストを抑えて、精度のよい円筒モデルを生成することができる。そして、情報処理装置100は、円筒モデルを用いることで、高速に骨格認識をすることができる。
【0073】
情報処理装置100は、同一の被写体について、複数の姿勢識別情報に対応する点群データを用いてパラメータを特定する場合、前回の姿勢識別情報で特定したフィッテイング収束条件を満たす円筒モデルデータのパラメータを、今回パラメータ算出時の初期値として使用する。これによって、様々な姿勢に対応した点群データを用いて、パラメータを探索でき、パラメータの精度をより高めることができる。
【0074】
なお、情報処理装置100は、同一の被写体の異なる複数の姿勢識別情報の各パラメータの平均値を、被写体のパラメータとして特定してもよい。
【0075】
次に、上記実施例に示した情報処理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図11は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0076】
図11に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、深度画像情報を生成する深度センサ204と、有線または無線ネットワークを介して、外部装置との間でデータの授受を行うインタフェース装置205とを有する。コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201~207は、バス208に接続される。
【0077】
ハードディスク装置207は、取得プログラム207a、変換プログラム207b、生成プログラム207c、出力プログラム207dを有する。CPU201は、取得プログラム207a、変換プログラム207b、生成プログラム207c、出力プログラム207dを読み出してRAM206に展開する。
【0078】
取得プログラム207aは、取得プロセス206aとして機能する。変換プログラム207bは、変換プロセス206bとして機能する。生成プログラム207cは、生成プロセス206cとして機能する。出力プログラム207dは、出力プロセス206dとして機能する。
【0079】
取得プロセス206aの処理は、取得部151の処理に対応する。変換プロセス206bの処理は、変換部152の処理に対応する。生成プロセス206cの処理は、生成部153の処理に対応する。出力プロセス206dの処理は、出力制御部154の処理に対応する。
【0080】
なお、各プログラム207a~207dについては、必ずしも最初からハードディスク装置207に記憶させておかなくてもよい。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a~207dを読み出して実行するようにしてもよい。
【符号の説明】
【0081】
20a,20b 深度センサ
40 円筒モデルデータ
100 情報処理装置
110 通信部
120 入力部
130 表示部
140 記憶部
141 深度画像テーブル
142 円筒モデルデータテーブル
150 制御部
151 取得部
152 変換部
153 生成部
154 出力制御部