(57)【要約】【課題】オブジェクトに特殊なマーカを装着することなく、高精度に当該オブジェクトの部位の位置判定を行う。【解決手段】画像処理装置であって、複数の撮像装置から取得された複数の画像のうち対象時点に撮像された画像群に含まれるオブジェクトの３次元形状モデルを生成する生成手段と、前記３次元形状モデルに基づいて、前記オブジェクトを構成する複数の部位の位置を判定する判定手段であって、判定済の部位に対応する前記３次元形状モデルの一部分を除外して得られる変更されたモデルに基づいて、別の部位の位置を判定する判定手段と、前記判定手段による判定の結果に基づく判定情報を取得する取得手段とを有する。【選択図】  図６
2019197278.tif 000002
【特許請求の範囲】
【請求項１】
複数の撮像装置から取得された複数の画像のうち対象時点に撮像された画像群に含まれるオブジェクトの３次元形状モデルを生成する生成手段と、
前記３次元形状モデルに基づいて、前記オブジェクトを構成する複数の部位の位置を判定する判定手段であって、判定済の部位に対応する前記３次元形状モデルの一部分を除外して得られる変更されたモデルに基づいて、別の部位の位置を判定する判定手段と、
前記判定手段による判定の結果に基づく判定情報を取得する取得手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記判定情報は、身体を構成する関節の３次元位置の情報を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判定情報は、身体を構成する関節間を結ぶ線分である骨格線の情報を含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記判定手段は、前記オブジェクトの前記３次元形状モデルの断面をクラスタリングし、クラスタリングの結果に基づいて各部位の位置を判定することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記判定情報は、身体を構成する関節間を結ぶ線分である骨格線の情報を含み、
前記判定手段は、前記対象時点よりも前の撮像時点について判定された前記オブジェクトの骨格線の情報と、前記３次元形状モデルとに基づいて、前記対象時点についての前記オブジェクトの部位の位置を判定することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記判定手段は、部位ごとの判定の結果の信頼度をさらに算出し、前記信頼度が閾値以下であると判定された部位がある場合、前記対象時点よりも前の撮像時点について判定された前記オブジェクトの部位の位置に基づいて、前記信頼度が閾値以下であると判定された部位の位置を判定し直すことを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記判定手段は、前記３次元形状モデルの断面の代表位置から構成される曲線の曲率に基づいて前記オブジェクトの部位の位置を判定することを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記判定手段は、既知の関節間距離に基づいて、前記オブジェクトの部位の位置を判定することを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項９】
前記判定手段により位置が判定された各部位を色分けして表示させるように表示装置を制御する表示制御手段をさらに備えることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
前記取得手段により取得された判定情報に基づいて、各部位の位置を示す情報の上に、関節の湾曲角度を示す情報を重畳表示させるように表示装置を制御する表示制御手段をさらに備えることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１１】
前記取得手段により取得された判定情報に基づいて、各部位の位置を示す情報の上に、前記オブジェクトの画像又は前記オブジェクトの前記３次元形状モデルを、半透明で重畳表示させるように表示装置を制御する表示制御手段をさらに備えることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１２】
画像処理装置の制御方法であって、
複数の撮像装置から取得された複数の画像のうち対象時点に撮像された画像群に含まれるオブジェクトの３次元形状モデルを生成する生成工程と、
前記３次元形状モデルに基づいて、前記オブジェクトを構成する複数の部位の位置を判定する判定工程であって、判定済の部位に対応する前記３次元形状モデルの一部分を除外して得られる変更されたモデルに基づいて、別の部位の位置を判定する判定工程と、
前記判定工程による判定の結果に基づく判定情報を取得する取得工程と
を有することを特徴とする画像処理装置の制御方法。
【請求項１３】
コンピュータを、請求項１乃至１１の何れか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の制御方法およびプログラムに関するものである。
【背景技術】
【０００２】
人体の運動計測の分野ではモーションキャプチャが一般的に用いられている。光学式モーションキャプチャは高精度かつリアルタイムでの計測が可能であるが、再帰反射性のマーカを身体に装着する必要がある。
【０００３】
特許文献１では、人体の両手首にマーカが装着されており、マーカと３次元形状の断面形状とから人体の骨格を推定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２２４３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の手法では、人体などのオブジェクトに特殊なマーカを装着することなく、高精度に当該オブジェクトの部位の位置判定を行うことが難しいという課題がある。
【０００６】
本発明は、上記の課題に鑑みてなされたものであり、オブジェクトに特殊なマーカを装着することなく、高精度に当該オブジェクトの部位の位置判定を行うための技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成する本発明に係る画像処理装置は、
複数の撮像装置から取得された複数の画像のうち対象時点に撮像された画像群に含まれるオブジェクトの３次元形状モデルを生成する生成手段と、
前記３次元形状モデルに基づいて、前記オブジェクトを構成する複数の部位の位置を判定する判定手段であって、判定済の部位に対応する前記３次元形状モデルの一部分を除外して得られる変更されたモデルに基づいて、別の部位の位置を判定する判定手段と、
前記判定手段による判定の結果に基づく判定情報を取得する取得手段と
を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、オブジェクトに特殊なマーカを装着することなく、高精度に当該オブジェクトの部位の位置判定を行うことが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るシステムの構成例を示す図。
【図２】（ａ）本発明の一実施形態に係る画像処理装置のハードウェア構成例を示すブロック図、（ｂ）本発明の一実施形態に係る画像処理装置の機能構成例を示すブロック図。
【図３】本発明の一実施形態に係る画像処理装置が実施する処理の手順を示すフローチャート。
【図４】身体部位と骨格情報との関係を説明する図。
【図５】第１の実施形態を説明する図。
【図６】第１の実施形態を説明する図。
【図７】第２の実施形態を説明する図。
【図８】第２の実施形態に係る骨格推定処理の詳細を示すフローチャート。
【図９】第３の実施形態を説明する図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら実施形態を説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１１】
［第１の実施形態］
＜概要＞
本実施形態では、複数の撮像装置から取得された複数の画像のうち対象時点に撮像された画像群に含まれるオブジェクトの３次元形状モデルを生成し、当該３次元形状モデルに基づいてオブジェクトを構成する複数の部位の位置を判定する。その際、判定済の部位に対応する３次元形状モデルの一部分を除外して得られる変更されたモデルに基づいて、別の部位の位置を判定する。そして判定の結果に基づく判定情報（例えば骨格情報）を取得する。より具体的には、複数の撮像装置から取得された複数の画像のうち、処理の対象となる対象時点に撮像された画像群に含まれるオブジェクト（例えば人体）の３次元形状モデルを生成する。そして、当該３次元形状モデルに基づいて、オブジェクトを構成する各身体部位（体幹、頭部等）の骨格情報（関節位置、骨格線等）を、身体部位ごとに推定する。その際、推定済の身体部位に対応する３次元形状モデルの一部分を除外して、次の身体部位の骨格情報を推定する。
【００１２】
このように、既に推定が完了した身体部位に対応する３次元形状モデルの部分を除外して次の身体部位の骨格情報を推定することで、身体部位の特定の間違いを低減することができるので、骨格情報の推定精度を向上させることができる。また、処理時間を短縮することもできる。
【００１３】
なお、本実施形態では、オブジェクトとは人体である。また、骨格情報とは、身体を構成する関節群の関節位置（３次元位置）の情報と、身体を構成する関節間を結ぶ線分である骨格線の情報とを含むものとする。ただし骨格情報の内容はこれに限らず、オブジェクトを構成する複数の部位の位置に応じた情報であればよい。また、本発明に係るオブジェクトは人体に限られるものではなく、接続される複数の部位を有する他の動物やロボット等にも適用可能である。
【００１４】
＜システム構成＞
まず、図１を参照しながら、本実施形態に係るシステムの構成例を説明する。カメラ１０１ａ〜１０１ｊのそれぞれは動画像を撮像するカメラ（撮像装置）であり、図１に示すように、フィールド１９９（競技場などのフィールド）の周囲に該フィールド１９９に向けて配置されている。カメラ１０１ａ〜１０１ｊのそれぞれが撮像した各撮像時点の画像は画像処理装置１０２に対して送出される。図１ではオブジェクトとして一人の人１０５を示しているが、本実施形態では、複数の人がオブジェクトとしてフィールド１９９内に位置しているものとする。
【００１５】
画像処理装置１０２は、カメラ１０１ａ〜１０１ｊのそれぞれから送出された同撮像時点の画像群ごとに、該画像群からオブジェクトの輪郭を抽出し、抽出した輪郭を用いてオブジェクトの３次元形状モデルを生成する。つまり、画像処理装置１０２は、撮像時点ごとに、該撮像時点におけるオブジェクトの３次元形状モデルを生成する。３次元形状モデルは、例えば、オブジェクト上の点群によって構成されるものである。なお、画像内に複数のオブジェクトが含まれている場合には、それぞれのオブジェクトについて３次元形状モデルを生成する。複数枚の画像（すなわち、略同時点に撮像された画像群）におけるオブジェクトの輪郭から該オブジェクト上の点群を取得する技術については周知であるため、この技術に関する説明は省略する。なお、オブジェクトの３次元形状モデルを取得するための方法は上記の方法に限らず、他の方法を採用してもよい。
【００１６】
また、３次元形状モデルは、ボクセルやポリゴンなど、点群以外の形式を用いて表現してもよい。
【００１７】
そして、画像処理装置１０２は、生成した３次元形状モデルを用いて、各身体部位（体幹、頭部...）に対して骨格情報（関節位置、骨格線等）を推定する。推定方法の詳細は後述する。
【００１８】
表示装置１０３は、ＣＲＴや液晶画面などにより構成されており、画像処理装置１０２が生成した３次元形状モデルや、各身体部位、骨格情報等、各種の情報を表示することができる。キーボード１０４ａ及びマウス１０４ｂは画像処理装置１０２に各種の指示や情報を入力するためにユーザが操作するユーザインターフェースの一例である。
【００１９】
なお、図１に示したシステムの構成は一例に過ぎず、例えば、カメラの数やカメラが注視する位置、カメラと画像処理装置１０２との間のネットワーク構成などは図１に示したものに限らない。
【００２０】
＜画像処理装置のハードウェア構成＞
次に、画像処理装置１０２のハードウェア構成例について、図２（ｂ）のブロック図を用いて説明する。
【００２１】
ＣＰＵ２０１は、ＲＡＭ２０２やＲＯＭ２０３に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりＣＰＵ２０１は、画像処理装置１０２全体の動作制御を行うと共に、画像処理装置１０２が行うものとして後述する各処理を実行若しくは制御する。
【００２２】
ＲＡＭ２０２は、二次記憶装置２０４、外部記憶装置２０９、ＲＯＭ２０３等からロードされたコンピュータプログラムやデータを格納するためのエリアを有する。更にＲＡＭ２０２は、ＣＰＵ２０１が各種の処理を実行若しくは制御する際に用いるワークエリアを有する。このようにＲＡＭ２０２は各種のエリアを適宜提供することができる。ＲＯＭ２０３には、書き換え不要の設定データやコンピュータプログラムなどが格納されている。
【００２３】
二次記憶装置２０４は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。二次記憶装置２０４には、ＯＳ（オペレーティングシステム）や、画像処理装置１０２が行うものとして後述する各処理をＣＰＵ２０１に実行させるためのコンピュータプログラムやデータが保存されている。このデータには、以下の説明において既知の情報として説明するものが含まれている。二次記憶装置２０４に保存されているコンピュータプログラムやデータは、ＣＰＵ２０１による制御に従って適宜ＲＡＭ２０２にロードされ、ＣＰＵ２０１による処理対象となる。
【００２４】
操作部２１１は、上記のマウス１０４ｂやキーボード１０４ａを含むものであり、ユーザが操作することで各種の指示を入力インターフェース２０５を介してＣＰＵ２０１に対して入力することができる。
【００２５】
図２では、上記のカメラ１０１ａ〜１０１ｊを撮像装置２０８として表している。以下の説明において、撮像装置２０８から出力される対象時点の画像群とは、対象時点においてカメラ１０１ａ〜１０１ｊにより撮像された画像群を意味する。撮像装置２０８から出力される各撮像時点の画像群は、ＲＡＭ２０２や二次記憶装置２０４に格納される。
【００２６】
外部記憶装置２０９は、ＣＤ−ＲＷ、ＤＶＤ−ＲＷなどの記憶媒体に対するコンピュータプログラムやデータの読み書きを行う。外部記憶装置２０９が記憶媒体から読み出したコンピュータプログラムやデータは入力インターフェース２０５を介してＲＡＭ２０２や二次記憶装置２０４に出力される。一方、外部記憶装置２０９が記憶媒体に書き込むコンピュータプログラムやデータは、ＲＡＭ２０２や二次記憶装置２０４から出力インターフェース２０６を介して外部記憶装置２０９に送出される。また、二次記憶装置２０４に保存されているものとして説明したコンピュータプログラムやデータの一部若しくは全部を上記の記憶媒体に格納しておき、外部記憶装置２０９によって記憶媒体からＲＡＭ２０２や二次記憶装置２０４に読み出すようにしてもよい。
【００２７】
ＣＰＵ２０１による処理結果は、画像や文字などで表示装置１０３に表示される。なお、操作部２１１と表示装置１０３とを一体化させてタッチパネル画面を構成してもよい。ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、二次記憶装置２０４、入力インターフェース２０５、出力インターフェース２０６、は何れもバス２０７に接続されている。
【００２８】
＜画像処理装置の機能構成＞
画像処理装置１０２は、画像取得部２５１と、３次元形状モデル生成部２５２と、推定部２５３と、表示制御部２５４とを備えている。各処理部の機能は、ＣＰＵ２０１がＲＡＭ２０２やＲＯＭ２０３に格納されているコンピュータプログラムを読み出して実行することにより実現される。
【００２９】
画像取得部２０１は、カメラ１０１ａ〜１０１ｊを含む撮像装置２０８から複数の画像を取得する。この例では、略同一の撮像時点について、異なる角度から撮像された１０枚の画像群が取得される。
【００３０】
３次元形状モデル生成部２５２は、画像取得部２０１により取得された同時点の画像群ごとに、該画像群からオブジェクトの輪郭を抽出し、抽出した輪郭を用いてオブジェクトの３次元形状モデルを生成する。
【００３１】
推定部２５３は、３次元形状モデル生成部２５２により生成された３次元形状モデルに基づいて、オブジェクトを構成する各身体部位の骨格情報を、身体部位ごとに推定する。その際、推定済の身体部位に対応する３次元形状モデルの一部分を除外して、一部分が除外された３次元形状モデルに基づいて次の身体部位の骨格情報を推定する。
【００３２】
表示制御部２５４は、画像取得部２０１により取得された画像、３次元形状モデル生成部２５２により生成されたオブジェクトの３次元形状モデル、推定部２５３により推定されたオブジェクトの骨格情報等を表示装置１０３に表示させる制御を行う。
【００３３】
＜処理＞
次に、撮像装置２０８からＮ（Ｎは２以上の整数）フレーム目の画像群（Ｎ番目の撮像時点に撮像された画像群）が画像処理装置１０２に入力された場合に、画像処理装置１０２が行う処理について、図３のフローチャートを用いて具体的に説明する。なお、各画像には複数のオブジェクトが含まれているものとする。
【００３４】
ここで、ＣＰＵ２０１は３次元形状モデルごとに、該３次元形状モデルを生成する際に参照した画像領域内のオブジェクトの顔や、オブジェクトがスポーツ選手である場合にはユニフォームの背番号などを認識する。そして、該認識した顔や背番号に固有の情報を、該３次元形状モデルの識別情報として発行する。そしてＣＰＵ２０１は、３次元形状モデルごとに、３次元形状モデルの大きさ、３次元形状モデルの位置、３次元形状モデルの識別情報、を関連づけてＲＡＭ２０２や二次記憶装置２０４などに格納する。以降、情報の格納先となるＲＡＭ２０２や二次記憶装置２０４をまとめてメモリと称する。
【００３５】
ステップＳ３０１では、３次元形状モデル生成部２５２は、Ｎフレーム目の画像群に含まれているそれぞれのオブジェクトの３次元形状モデルを生成する。以下では、ステップＳ３０１で生成したそれぞれの３次元形状モデルをＭ（１），Ｍ（２），...，Ｍ（Ｉ）と表記する（ＩはステップＳ３０１で生成した３次元形状モデルの総数である）。また、ステップＳ３０１では、３次元形状モデル生成部２５２は、以下の説明で用いる変数ｉを「１」に初期化する。
【００３６】
ステップＳ３０２では、３次元形状モデル生成部２５２は、Ｎフレーム目の画像群に含まれているそれぞれのオブジェクトの中から、ｉ番目のオブジェクトの３次元形状モデルＭ（ｉ）を特定する。３次元形状モデルの特定方法としては、３次元形状モデルを生成する際に参照した画像におけるｉ番目のオブジェクトをトラッキングして、画像上の座標に基づいて３次元座標を算出してもよいし、３次元空間上でトラッキングしてもよい。オブジェクトの３次元形状モデルの特定方法は上記の方法に限らず、如何なる方法を採用してもよい。
【００３７】
ステップＳ３０３では、推定部２５３は、ｉ番目のオブジェクトの３次元形状モデルを構成する各身体部位の骨格線の推定を行う。本実施形態では、身体部位とは、図４（ａ）に示すように、体幹４０１、頭部４０２、左上腕部４０３、左前腕部４０４、右上腕部４０５、右前腕部４０６、左大腿部４０７、左下腿部４０８、右大腿部４０９、右下腿部４１０を表すものとする。但し、この分け方に限られるものではない。身体部位は、推定する順番によってインデックスｋが付与されているものとする。すなわち、ステップＳ３０２ではｋ番目の身体部位の骨格線の推定を行う。例えば、体幹４０１はｋ＝１、頭部４０２はｋ＝２のように番号が付与されている。また、一人あたりの身体部位の総数をＫとする。また、図４（ｂ）は骨格情報（関節位置、骨格線）の概念図を示したものである。図４（ｂ）において、黒丸４１０は関節群であり、線分４１１は関節同士を結ぶ骨格線を表している。骨格線の推定方法の詳細については後述する。
【００３８】
ステップＳ３０４では、推定部２５３は、インデックスｋの身体部位の３次元形状モデルに対して、関節位置の推定を行う。例えば、ｋ＝１である場合、体幹４０１の関節位置の推定を行う。関節位置の推定方法については後述する。
【００３９】
ステップＳ３０５では、推定部２５３は、全ての身体部位の骨格情報の推定を完了しているか否かを判定する。この判定の結果、未推定の身体部位が残っている場合（ｋ＜Ｋ）には、推定部２５３は、ステップＳ３０６において身体部位のインデックスｋを１つインクリメントし、処理はステップＳ３０３に戻る。一方、すべての身体部位の推定が完了している場合（ｋ≧Ｋ）には、処理はステップＳ３０７に進む。
【００４０】
ステップＳ３０７では、３次元形状モデル生成部２５２は、ステップＳ３０１において生成したそれぞれの３次元形状モデルのうち未選択の３次元形状モデルが残っているか否かを判定する。この判定の結果、ステップＳ３０１において生成したそれぞれの３次元形状モデルのうち未選択の３次元形状モデルが残っている場合（ｉ＜Ｉ）には、ステップＳ３０８に進む。ステップS３０８において、３次元形状モデル生成部２５２は、オブジェクトのインデックスｉを１つインクリメントし、処理はステップＳ３０２に戻る。一方、ステップＳ３０１で生成したそれぞれの３次元形状モデルのうち未選択の３次元形状モデルが残っていない場合（ｉ≧Ｉ）には、全てのオブジェクトについて推定が完了したので、Ｎフレーム目の画像群についての図３の処理は終了する。そして、（Ｎ＋１）フレーム目の画像群について再びステップＳ３０１以降の処理が行われる。
【００４１】
＜骨格情報（骨格線、関節位置）の推定方法＞
以下では、ステップＳ３０３及びステップＳ３０４で行われる骨格線の推定方法および関節位置の推定方法について詳細に説明する。
【００４２】
＜体幹・頭部＞
まず、体幹及び頭部の骨格情報の推定方法について説明する。すなわち、体幹４０１を構成する関節である首関節、腰関節の推定方法、頭部４０２を構成する関節である首関節、頭頂部の推定方法、および、体幹４０１又は頭部４０２の特定方法について述べる。
【００４３】
図５（ａ）は、平面５０１によって、身体を地面に平行にスライスした状態を示している。断面５０２、断面５０３は、それぞれ体幹４０１の断面、左前腕４０４の断面を表している。矢印５０４は、スライスする高さを変えるときの順序を表している。ここでは、鉛直方向の上から下に向かって、地面に平行な平面で身体をスライスするものとする。
【００４４】
そして、オブジェクトの３次元形状モデルの断面をクラスタリングし、クラスタリングの結果に基づいて各身体部位を推定する。図５（ｂ）は、平面５０１による断面図の様子を表している。平面５０１において、画素数が最も多いクラスタ（以下、最大クラスタ）かつ、最大クラスタの画素数が他のクラスタの画素数の定数倍ａ（例えば３倍）より多い場合、そのクラスタを体幹４０１、もしくは頭部４０２として推定するものとする。図５（ｂ）の場合は、クラスタ５０２が体幹クラスタとして推定される。体幹４０１と頭部４０２とを識別する方法としては、例えばクラスタ形状が楕円に近ければ体幹４０１と識別し、円に近ければ頭部４０２と識別することができる。また、クラスタのサイズによっても、体幹４０１か頭部４０２かを識別することも可能である。もちろん、これ以外の方法で識別しても構わない。以下では、体幹４０１と頭部４０２との識別が完了したものとして説明を行う。
【００４５】
体幹４０１から頭部４０２に切り替わる高さにおいて、クラスタの重心位置を算出することにより、首関節の３次元位置を求めることができる。また、最大クラスタの画素数が、他のクラスタの画素数のａ倍より少なくなる高さを算出することで、腰の高さの推定が可能である。次に、その高さにおける最大クラスタの重心を算出することで、腰関節の３次元位置を算出することができる。なお、本実施形態では関節位置を算出する際に、クラスタ重心に基づいて算出しているが、クラスタに属する点の２次元座標の中間値など、クラスタの位置を表す数値であれば別の値を用いても構わない。
【００４６】
次に、腰関節から首関節の高さまでにおいて、断面上の体幹クラスタに該当する３次元形状を体幹４０１に属するものとしてラベリングするか、或いは削除する。骨格線は、首関節と腰関節とをつなぐ線分として与えられる。以上が、体幹４０１に属する骨格線及び関節位置の推定方法と、体幹４０１の3次元形状の特定方法である。
【００４７】
頭部４０２については、クラスタが存在しなくなる高さを推定することにより、頭頂部の位置を算出し、首関節から頭頂部の高さまでについて、断面上の頭クラスタに該当する３次元形状を頭部４０２に属するものとしてラベリングするか、或いは削除する。
【００４８】
＜左右の腕等＞
次に、左右の腕の骨格情報（骨格線、関節位置）を推定する場合について説明する。図６は、体幹４０１、頭部４０２の３次元形状を削除した状態を表している。このように、既に推定した身体部位（この場合、体幹や頭部）に対応する３次元形状モデルの一部分を除外した上で、次の身体部位の骨格情報の推定を行うことで、推定精度を向上させることができるとともに、処理時間を短縮することができる。
【００４９】
図６（ａ）は、平面６０１でスライスした状態を表しており、図６（ｂ）は、平面６０１による断面図を表している。体幹４０１の断面が楕円であると仮定すると、肩関節の位置は、首関節の位置と体幹４０１の形状とから算出することができるので、左右肩関節に最も近いクラスタをそれぞれ左上腕部４０３、右上腕部４０５のクラスタとして推定することができる。図６（ｂ）の場合は、６０２が左上腕部クラスタ、６０３が右上腕部クラスタに該当する。
【００５０】
また、ある高さｈにおいて、上腕部のクラスタを推定することができれば、別の高さｈ'でスライスした場合においても、高さｈにおける上腕部クラスタの重心に近いクラスタを上腕部クラスタとして推定することが可能である。体の向きがどちらを向いているか不明な場合は、左右を推定することができないが、前撮像時点の情報があれば、前撮像時点の左上腕部に近い方を現撮像時点の左上腕部として推定することが可能である。図６（ａ）の場合は、右上腕部４０５に関しては、ある高さにおいて、断面図上で右上腕部クラスタが消失するため、そこを右肘関節として定めることができる。一方、左腕に関しては、真っ直ぐに伸びているため、右肘のように関節位置を定めることができない。そこで、左上腕部４０３に関しては、人の平均的な関節間の距離に基づいて左肘関節の位置を定める。各オブジェクトの関節間距離が既知である場合は、すべての関節位置を関節間距離に基づいて決めてもよい。また、３次元形状モデルの断面の代表位置から構成される曲線の曲率に基づいて骨格情報を推定してもよい。例えば、特定の身体部位に属するクラスタの重心位置の集合から曲線を導出し、曲線の曲率が大きい位置を関節位置として推定してもよい。
【００５１】
左右の肘関節の位置を推定した後、左右の上腕部４０３、４０５のクラスタに該当する３次元形状を削除する。左右の上腕部４０３、４０５の骨格線は、肘関節と肩関節とをつなぐ線分として推定してもよい。
【００５２】
左右の上腕部４０３、４０５と同様にして、左右の前腕部４０４、４０６を構成する関節位置・骨格線を推定することができる。左右の上腿部４０７、４０９、左右の下腿部４０８、４１０に関しても同様である。
【００５３】
以上説明したように、本実施形態では、既に推定が完了した身体部位に対応する３次元形状モデルの部分を除外して、その部分が除外された３次元形状モデルに基づいて次の身体部位の骨格情報を推定する。これにより、身体部位の特定の間違いを低減することができるので、骨格情報の推定精度を向上させることができる。また、処理時間を短縮することもできる。
【００５４】
また、特定が容易な身体部位（体幹、頭部等）から順に３次元形状モデルの一部分を除外（ラベリングもしくは削除）することにより、前腕部や下腿部など推定が困難な身体部位に関しても高精度に骨格情報（関節位置及び骨格線）を推定することが可能になる。
【００５５】
なお、本実施形態では、形状断面をクラスタリングすることにより、身体部位の特定を行ったが、既知の身体部位形状をフィッティングすることにより、身体部位を特定してもよい。その際も、推定が完了した身体部位形状をラベリング・削除することにより、フィッティングが容易になり、高精度に骨格情報（関節位置、骨格線）を推定することが可能になる。
【００５６】
［第２の実施形態］
第１の実施形態では、地面に平行な平面で身体のスライスを行う例を説明した。しかし、体が倒れたり、腕や足の骨格線が地面に平行に近かったりする場合は、推定精度が低下する可能性がある。また、特定の関節位置の推定に失敗した場合、その影響が他の身体部位に波及する可能性がある。
【００５７】
本実施形態に係る画像処理装置は、この点に対処したものである。以下では第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。
【００５８】
図７は、地面に平行にスライスした場合に精度が劣化する例を示したものである。図７(ａ)、図７（ｂ）において、７０１〜７０４は、それぞれ体幹４０１、右上腕部４０５、左前腕部４０４、右大腿部４０９の骨格線を表している。
【００５９】
図７（ａ）のように体幹４０１が横になった状態で地面に平行にスライスしても、首関節や腰関節の位置を推定することが困難である。また、図７（ｂ）のように腕や足が地面と平行に近い場合も身体部位や関節位置を精度よく求めることが難しい。
【００６０】
そこで、本実施形態では、図３のステップＳ３０３及びステップＳ３０４において、図８のフローチャートに従った処理を行う。
【００６１】
ステップＳ８０１では、推定部２５３は、対象時点より一つ前の撮像時点における、各身体部位の骨格線情報をメモリから取得する。
【００６２】
ステップＳ８０２において、推定部２５３は、ステップＳ８０１で取得した骨格線情報により示される、一つ前の撮像時点における骨格線（例えば体幹４０１の骨格線）と交差する（例えば垂直になる）ようにスライスして関節位置の推定を行う。この場合、図５の矢印５０４に対応する方向は、骨格線と平行になる。関節位置の推定方法は第１の実施形態と同様である。なお、スライスする際は、必ずしも骨格線の軸に垂直に行う必要はなく、関節位置の推定精度が劣化しなければ、如何なる方向にスライスしてもよい。
【００６３】
ステップＳ８０３において、推定部２５３は、推定した関節位置の情報から対象時点における骨格線を算出し、メモリに格納する。
【００６４】
なお、ここでは、形状をスライスする方法について説明したが、前撮像時点の骨格線を参考にして、事前に取得した各身体部位の３次元形状モデルをフィッティングして骨格線を算出してもよい。また、一つ前の撮像時点だけでなく、対象時点より前の複数の撮像時点における情報を参照してもよい。
【００６５】
ステップＳ８０４において、推定部２５３は、関節位置・骨格線の信頼度を算出する。信頼度の指標としては、関節間距離の規定値からの外れ度合、骨格線同士の成す角度が人体の構造から規定される拘束条件を満たすか否か、前撮像時点からの関節位置・骨格線の変位量・変位角度の大きさなどを用いることができる。
【００６６】
ステップＳ８０５において、推定部２５３は、信頼度が閾値以下であると判定された関節位置・骨格線の補正を行う（すなわち、推定し直す）。例えば、対象時点であるＮフレーム目の撮像時点の肩関節の信頼度が高く、肘関節の信頼度が低い場合は、肩関節と肘関節を結ぶ骨格線において、Ｎ−１フレーム目の撮像時点における骨格線Ｌ（Ｎ−１）を取得し、肩関節の位置と既知の関節間距離とに基づいて肘関節位置を算出する。若しくは、Ｎ−１フレーム目の撮像時点における骨格線Ｌ（Ｎ−１）と、Ｎ−２フレーム目の撮像時点における骨格線Ｌ（Ｎ−２）の情報から差分ベクトルΔＬを算出し、以下の式（１）によってＮフレーム目の撮像時点における骨格線Ｌ（Ｎ）を予測してもよい。
【００６７】
Ｌ（Ｎ）＝Ｌ（Ｎ−１）＋ΔＬ     （１）
以上説明したように、本実施形態によれば、対象時点より前の撮像時点の骨格線の情報を用いることにより、高精度に身体部位の特定・骨格情報（骨格線及び関節位置）の推定を行うことが可能になる。
【００６８】
［第３の実施形態］
本実施形態では、身体部位や骨格情報（関節位置、骨格線等）の表示ＵＩについて述べる。表示制御部２５４は、表示装置１０３を制御して各種の情報を表示させる。図９は表示ＵＩの例である。図９において、ウィンドウ９０１は、ＣＰＵ２０１がステップＳ３０３及びステップＳ３０４で推定した身体部位（体幹、頭部...）の骨格情報に基づいて体を色分け表示したものである。色分け以外にも、部位ごとに異なる模様を割り当てたり、対応する数字や文字、記号をラベリングしたりするなど、各身体部位が識別可能な状態で表示されれば別の方法でも構わない。図９では、図示の都合上、左右の色分けは行わなかったが、左右で色分け表示してもよい。例えば、右・左上腕部で色を変えてもよい。
【００６９】
また、ウィンドウ９０２は、骨格情報（関節位置、骨格線等）を表示したものである。９０３は関節、９０４は骨格線、９０５は、骨格線同士の成す角度（湾曲角度）を示している。９０６はディスプレイ表示の場合は、骨格情報の上に画像を重畳したものであり、３次元立体表示の場合は、３次元形状を重畳表示したものである。重畳の仕方としては、半透明で重畳するなど、骨格情報が分かりやすい形で重畳すればよい。また、骨格情報のみ表示して、重畳表示は行わなくてもよい。また、関節位置と骨格線とのうち何れか一方のみを表示してもよい。
【００７０】
なお、図９では推定のオブジェクト（人物）についてのみ表示されているが、複数人を同時表示してもよい。また、オブジェクトに属する複数の部位のうち、特定の部位（例えば足や腕）のみを表示してもよい。そして、表示制御部２５４は、表示方法を選択するためのユーザ操作に応じて、上述した複数の表示方法の中から選択された表示方法で表示を行ってもよい。表示装置１０３上にＵＩを表示する際には、ディスプレイ以外にも、ヘッドマウントディスプレイなどを用いて３次元立体表示を行ってもよい。また、骨格情報を時系列で取得している場合は、動画を表示することも可能である。
【００７１】
これらの表示により、例えば、スポーツ選手がプレイ中に怪我をした場合には、骨格の向きが身体的な許容範囲を逸脱したことによる怪我の発生要因、及びその程度を知ることが可能となる。また、本実施形態におけるオブジェクトの骨格の推定結果を、スポーツの判定にも用いることができる。例えば地面に手をついてはいけないルールの競技において、選手の手が地面についたか否かの判定に用いることができる。また、複数の人物それぞれの骨格の推定結果を並べたり重ねたりして表示してもよいし、推定されたそれぞれの骨格の比較結果を示す情報を表示してもよい。これにより例えば、模範となる選手のフォームと対象人物のフォームとの比較を可能とし、その対象人物のフォームの改善に使用することも可能である。さらに、骨格情報に対して、身体部位の動きの速度や角速度を重畳して表示してもよい。例えば、手首や足首関節の速度を表示することで、パンチやキックのスピードを知ることができる。また、肩関節の角速度から、フィギュアスケートなどで身体を回転させたときの角速度を知ることができる。
【００７２】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７３】
１０２：画像処理装置、２５１：画像取得部、２５２：３次元形状モデル生成部、２５３：推定部、２５４：表示制御部
【図１】
2019197278.tif 000003
【図２】
2019197278.tif 000004
【図３】
2019197278.tif 000005
【図４】
2019197278.tif 000006
【図５】
2019197278.tif 000007
【図６】
2019197278.tif 000008
【図７】
2019197278.tif 000009
【図８】
2019197278.tif 000010
【図９】
2019197278.tif 000011