(57)【要約】  認識装置は、被写体を含む距離画像に基づいて、被写体の姿勢を特定する姿勢情報を生成する。認識装置は、距離画像とともに姿勢情報を、被写体の骨格を認識するために学習された学習済みモデルに入力する。その後、認識装置は、学習済みモデルの出力結果を用いて、被写体の骨格を特定する。この結果、認識装置は、肘、手首、膝、手足の位置などの人体において左右で対になっている関節の左右の誤認識を抑制し、骨格の認識精度を向上させることができる。
2020084667.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
被写体を含む距離画像に基づいて、前記被写体の姿勢を特定する姿勢情報を生成し、
前記距離画像とともに前記姿勢情報を、前記被写体の骨格を認識するために学習された学習済みモデルに入力し、
前記学習済みモデルの出力結果を用いて、前記被写体の骨格を特定する
処理を実行することを特徴とする認識方法。
【請求項２】
前記入力する処理は、前記学習済みモデルに利用されるニューラルネットワークの入力層に前記距離画像を入力し、前記ニューラルネットワークの各中間層のうち先頭の中間層に前記姿勢情報を入力することを特徴とする請求項１に記載の認識方法。
【請求項３】
前記入力する処理は、前記学習済みモデルに利用される畳み込みニューラルネットワークの入力層に前記距離画像を入力し、前記畳み込みニューラルネットワークの各隠れ層のうち、入力された画像のサイズが最も小さくなる隠れ層に前記姿勢情報を入力することを特徴とする請求項１に記載の認識方法。
【請求項４】
前記入力する処理は、前記姿勢情報として、前記被写体の向きを示す角度値または三角関数を入力することを特徴とする請求項１に記載の認識方法。
【請求項５】
前記入力する処理は、前記被写体の背骨を軸にした回転角と前記被写体の両肩を軸にした回転角とのそれぞれの角度値、または、それぞれの回転角を用いた各三角関数を入力することを特徴とする請求項４に記載の認識方法。
【請求項６】
前記生成する処理は、前記姿勢情報を出力するために学習された学習済みモデルに、前記距離画像を入力して得られる出力結果を、前記姿勢情報として生成することを特徴とする請求項１に記載の認識方法。
【請求項７】
前記特定する処理は、前記学習済みモデルの出力結果として、前記被写体の関節位置の尤度を可視化したヒートマップ画像を取得し、前記ヒートマップ画像における尤度が最も高い位置を、前記関節位置と特定することを特徴とする請求項１に記載の認識方法。
【請求項８】
コンピュータに、
被写体を含む距離画像に基づいて、前記被写体の姿勢を特定する姿勢情報を生成し、
前記距離画像とともに前記姿勢情報を、前記被写体の骨格を認識するために学習された学習済みモデルに入力し、
前記学習済みモデルの出力結果を用いて、前記被写体の骨格を特定する
処理を実行させることを特徴とする認識プログラム。
【請求項９】
被写体を含む距離画像に基づいて、前記被写体の姿勢を特定する姿勢情報を生成する生成部と、
前記距離画像とともに前記姿勢情報を、前記被写体の骨格を認識するために学習された学習済みモデルに入力する入力部と、
前記学習済みモデルの出力結果を用いて、前記被写体の骨格を特定する特定部と
を有することを特徴とする認識装置。
【請求項１０】
コンピュータが、
学習データである被写体を含む距離画像に対応付けられる、正解情報である前記被写体の骨格情報を用いて、前記被写体の姿勢を特定する姿勢情報を生成し、
前記距離画像とともに前記姿勢情報を学習モデルに入力し、
前記学習モデルの出力結果と前記骨格情報とを用いて、前記学習モデルを学習する
処理を実行することを特徴とする学習方法。
【請求項１１】
前記骨格情報から、前記被写体の関節位置の尤度を可視化したヒートマップ画像を生成する処理を前記コンピュータにさらに実行させ、
前記学習する処理は、前記学習モデルの出力結果として前記ヒートマップ画像を取得し、前記出力結果であるヒートマップ画像と、前記骨格情報から生成されたヒートマップ画像とを比較した結果に応じて、前記学習モデルを学習する請求項１０に記載の学習方法。
【請求項１２】
前記入力する処理は、前記学習モデルに利用されるニューラルネットワークの入力層に前記距離画像を入力し、前記ニューラルネットワークの各中間層のうち先頭の中間層に前記姿勢情報を入力することを特徴とする請求項１０に記載の学習方法。
【請求項１３】
前記入力する処理は、前記学習モデルに利用される畳み込みニューラルネットワークの入力層に前記距離画像を入力し、前記畳み込みニューラルネットワークの各隠れ層のうち、入力された画像のサイズが最も小さくなる隠れ層に前記姿勢情報を入力することを特徴とする請求項１０に記載の学習方法。
【請求項１４】
前記入力する処理は、前記姿勢情報として、前記被写体の向きを示す角度値または三角関数を入力することを特徴とする請求項１０に記載の学習方法。
【請求項１５】
前記入力する処理は、前記被写体の背骨を軸にした回転角と前記被写体の両肩を軸にした回転角とのそれぞれの角度値、または、それぞれの回転角を用いた各三角関数を入力することを特徴とする請求項１４に記載の学習方法。
【請求項１６】
コンピュータに、
学習データである被写体を含む距離画像に対応付けられる、正解情報である前記被写体の骨格情報を用いて、前記被写体の姿勢を特定する姿勢情報を生成し、
前記距離画像とともに前記姿勢情報を学習モデルに入力し、
前記学習モデルの出力結果と前記骨格情報とを用いて、前記学習モデルを学習する
処理を実行させることを特徴とする学習プログラム。
【請求項１７】
学習データである被写体を含む距離画像に対応付けられる、正解情報である前記被写体の骨格情報を用いて、前記被写体の姿勢を特定する姿勢情報を生成する生成部と、
前記距離画像とともに前記姿勢情報を学習モデルに入力する入力部と、
前記学習モデルの出力結果と前記骨格情報とを用いて、前記学習モデルを学習する学習部と
を有することを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認識方法、認識プログラム、認識装置、学習方法、学習プログラムおよび学習装置に関する。
【背景技術】
【０００２】
体操や医療などの幅広い分野において、選手や患者などの人の骨格を認識することが行われている。例えば、オブジェクトを含む入力画像から、背景画像を用いて変化する変化領域画像を抽出し、入力画像と変化領域画像とを結合して畳込み型ニューラルネットワークを利用することによりオブジェクトの位置を検出する技術が知られている。また、画像を入力として、学習モデルにより手足が存在する信頼度を示すヒートマップ画像を推定し、推定結果に基づいて手足の位置を算出する技術が知られている。【０００３】
また、体操競技を例にすると、近年では、３Ｄ（Three−dimensional）レーザセンサにより選手の３次元データである距離画像を取得し、距離画像から選手の各関節の向きや各関節の角度である骨格を認識して、演技した技などを採点することが行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１９１５０１号公報
【特許文献２】特開２０１７−２１１９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、各関節を含む骨格の認識に、深層学習（ディープラーニング（DL：Deep  Learning））などの機械学習を用いることも考えられる。ディープラーニングを例にして説明すると、学習時は、３Ｄレーザセンサにより被写体の距離画像を取得し、距離画像をニューラルネットワークに入力し、ディープラーニングによって各関節を認識する学習モデルを学習する。認識時には、３Ｄレーザセンサにより取得された被写体の距離画像を学習済みの学習モデルに入力して、各関節の存在確率（尤度）を示すヒートマップ画像を取得し、各関節を認識する手法が考えられる。【０００６】
しかしながら、機械学習を用いた学習モデルを単純に骨格の認識等に適用した場合、認識精度が低い。例えば、距離画像からでは人がどちらを向いているのかがわからないので、肘、手首、膝、手足の位置などの人体において左右で対になっている関節等が、正しい関節と比較して左右反対に認識されることがある。【０００７】
一つの側面では、機械学習を用いた学習モデルを使った骨格認識の精度を向上させることができる認識方法、認識プログラム、認識装置、学習方法、学習プログラムおよび学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、認識方法は、コンピュータが、被写体を含む距離画像に基づいて、前記被写体の姿勢を特定する姿勢情報を生成する処理を実行する。認識方法は、コンピュータが、前記距離画像とともに前記姿勢情報を、前記被写体の骨格を認識するために学習された学習済みモデルに入力する処理を実行する。認識方法は、コンピュータが、前記学習済みモデルの出力結果を用いて、前記被写体の骨格を特定する処理を実行する。
【発明の効果】
【０００９】
一つの側面では、機械学習を用いた学習モデルを使った骨格認識の精度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１にかかる認識装置を含むシステムの全体構成例を示す図である。
【図２】図２は、実施例１にかかる学習処理および認識処理を説明する図である。
【図３】図３は、実施例１にかかる学習装置と認識装置の機能構成を示す機能ブロック図である。
【図４】図４は、骨格定義ＤＢに記憶される定義情報の例を示す図である。
【図５】図５は、学習データＤＢに記憶される学習データの例を示す図である。
【図６】図６は、距離画像とヒートマップ画像の一例を示す図である。
【図７】図７は、実施例１にかかる処理の流れを示すフローチャートである。
【図８】図８は、骨格情報の認識結果の比較例を説明する図である。
【図９】図９は、姿勢情報の入力を説明する図である。
【図１０】図１０は、角度値および三角関数を説明する図である。
【図１１】図１１は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかる認識方法、認識プログラム、認識装置、学習方法、学習プログラムおよび学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１２】
［全体構成］
図１は、実施例１にかかる認識装置を含むシステムの全体構成例を示す図である。図１に示すように、このシステムは、３Ｄレーザセンサ５、学習装置１０、認識装置５０、採点装置９０を有し、被写体である演技者１の３Ｄデータを撮像し、骨格等を認識して正確な技の採点を行うシステムである。なお、本実施例では、一例として、体操競技における演技者の骨格情報を認識する例で説明する。【００１３】
一般的に、体操競技における現在の採点方法は、複数の採点者によって目視で行われているが、技の高度化に伴い、採点者の目視では採点が困難になっている。近年では、３Ｄレーザセンサにより選手の３次元データである距離画像を取得し、距離画像から選手の各関節の向きや各関節の角度である骨格を認識して、演技した技などを採点する技術の開発が行われている。しかし、距離画像のみを用いた学習では、演技者がどちらを向いているのかがわからないので、肘、手首、膝、手足の位置などの人体において左右で対になっている関節の誤認識が発生することがある。このような誤認識の発生に伴い、採点者への情報提供が不正確となり、演技・技の誤認識による採点ミスの発生などが懸念される。【００１４】
そこで、実施例１にかかる認識装置５０は、３Ｄレーザセンサから得られた距離画像を用いて、ディープラーニングにより人の骨格情報を認識する際、特に、左右の関節を誤認識せずに高精度に認識する。【００１５】
まず、図１におけるシステムを構成する各装置について説明する。３Ｄレーザセンサ５は、赤外線レーザ等を用いて対象物の距離を画素ごとに測定（センシング）するセンサ装置の一例である。距離画像には、各画素までの距離が含まれる。つまり、距離画像は、３Ｄレーザセンサ（深度センサ）５から見た被写体の深度を表す深度画像である。【００１６】
学習装置１０は、骨格認識用の学習モデルを学習するコンピュータ装置の一例である。具体的には、学習装置１０は、事前に取得したＣＧデータなどを学習データとして使用して、ディープラーニングなどの機械学習を用いて学習モデルを学習する。【００１７】
認識装置５０は、３Ｄレーザセンサ５により測定された距離画像を用いて、演技者１の各関節の向きや位置等に関する骨格を認識するコンピュータ装置の一例である。具体的には、認識装置５０は、３Ｄレーザセンサ５により測定された距離画像を、学習装置１０によって学習された学習済みの学習モデルに入力し、学習モデルの出力結果に基づいて骨格を認識する。その後、認識装置５０は、認識された骨格を採点装置９０に出力する。【００１８】
採点装置９０は、認識装置５０により認識された骨格を用いて、演技者の各関節の位置や向きを特定し、演技者が演技した技の特定および採点を実行するコンピュータ装置の一例である。【００１９】
ここで、学習処理及び認識処理について説明する。図２は、実施例１にかかる学習処理および認識処理を説明する図である。図２に示すように、学習装置１０は、予め用意された学習データから、姿勢情報と、距離画像と、正解値を示すヒートマップ画像とを読み込む。そして、学習装置１０は、距離画像を入力データ、正解値を正解ラベルとする教師データを用いて、ニューラルネットワークを用いた学習モデルＡの学習を実行する際に、ニューラルネットワークに姿勢情報を入力して学習する。【００２０】
その後、認識装置５０は、３Ｄレーザセンサ５によって測定された距離画像を取得すると、予め学習された姿勢認識用の学習モデルＢに入力して、姿勢情報を取得する。そして、認識装置５０は、学習装置１０によって学習された学習済みの学習モデルＡに、測定された距離画像と取得された姿勢情報とを入力して、学習モデルＡの出力結果としてヒートマップ画像を取得する。その後、認識装置５０は、ヒートマップ画像から各関節の位置（座標値）などを特定する。【００２１】
このように、上記システムでは、学習モデル生成のために、機械学習への入力データに、距離画像だけでなく、３Ｄレーザセンサ５に対する人の向きの情報（姿勢情報）を与えることで、骨格の認識精度を向上させることができる。【００２２】
［機能構成］
図３は、実施例１にかかる学習装置１０と認識装置５０の機能構成を示す機能ブロック図である。なお、採点装置９０は、関節などの情報を用いて技の精度を判定し、演技者の演技を採点する一般的な装置と同様の構成を有するので、詳細な説明は省略する。【００２３】
（学習装置１０の機能構成）
図３に示すように、学習装置１０は、通信部１１、記憶部１２、制御部２０を有する。通信部１１は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、学習結果などを認識装置５０に出力する。【００２４】
記憶部１２は、データや制御部２０が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、骨格定義ＤＢ１３、学習データＤＢ１４、学習結果ＤＢ１５を記憶する。【００２５】
骨格定義ＤＢ１３は、骨格モデル上の各関節を特定するための定義情報を記憶するデータベースである。ここで記憶される定義情報は、３Ｄレーザセンサによる３Ｄセンシングによって演技者ごとに測定してもよく、一般的な体系の骨格モデルを用いて定義してもよい。【００２６】
図４は、骨格定義ＤＢ１３に記憶される定義情報の例を示す図である。図４に示すように、骨格定義ＤＢ１３は、公知の骨格モデルで特定される各関節をナンバリングした、１８個（０番から１７番）の定義情報を記憶する。例えば、図４に示すように、右肩関節（SHOULDER＿RIGHT）には７番が付与され、左肘関節（ELBOW＿LEFT）には５番が付与され、左膝関節（KNEE＿LEFT）には１１番が付与され、右股関節（HIP＿RIGHT）には１４番が付与される。ここで、実施例では、８番の右肩関節のＸ座標をＸ８、Ｙ座標をＹ８、Ｚ座標をＺ８と記載する場合がある。なお、例えば、Ｚ軸は、３Ｄレーザセンサ５から対象に向けた距離方向、Ｙ軸は、Ｚ軸に垂直な高さ方向、Ｘ軸は、水平方向をと定義することができる。【００２７】
学習データＤＢ１４は、骨格を認識するための学習モデルの構築に利用される学習データ（訓練データ）を記憶するデータベースである。図５は、学習データＤＢ１４に記憶される学習データの例を示す図である。図５に示すように、学習データＤＢ１４は、「項番、画像情報、骨格情報」を対応付けて記憶する。【００２８】
ここで記憶される「項番」は、学習データを識別する識別子である。「画像情報」は、関節などの位置が既知である距離画像のデータである。「骨格情報」は、骨格の位置情報であり、図４に示した１８個の各関節に対応する関節位置（３次元座標）である。すなわち、画像情報が入力データ、骨格情報が正解ラベルとして、教師有学習に利用される。図４の例では、距離画像である「画像データＡ１」には、ＨＥＡＤの座標「Ｘ３，Ｙ３，Ｚ３」などを含む１８個の関節の位置が既知であることを示す。【００２９】
学習結果ＤＢ１５は、学習結果を記憶するデータベースである。例えば、学習結果ＤＢ１５は、制御部２０による学習データの判別結果（分類結果）、機械学習等によって学習された各種パラメータを記憶する。【００３０】
制御部２０は、認識装置５０全体を司る処理部であり、例えばプロセッサなどである。制御部２０は、学習処理部３０を有し、学習モデルの学習処理を実行する。なお、学習処理部３０は、プロセッサなどの電子回路の一例やプロセッサなどが有するプロセスの一例である。【００３１】
学習処理部３０は、正解値読込部３１、ヒートマップ生成部３２、画像生成部３３、姿勢認識部３４、学習部３５を有し、各関節の認識を行う学習モデルの学習を実行する処理部である。なお、姿勢認識部３４は、生成部の一例であり、学習部３５は、入力部と学習部の一例であり、ヒートマップ生成部３２は、生成部の一例である。【００３２】
正解値読込部３１は、学習データＤＢ１４から正解値を読み込む処理部である。例えば、正解値読込部３１は、学習対象である学習データの「骨格情報」を読み込み、ヒートマップ生成部３２に出力する。【００３３】
ヒートマップ生成部３２は、ヒートマップ画像を生成する処理部である。例えば、ヒートマップ生成部３２は、正解値読込部３１から入力された「骨格情報」を用いて、各関節のヒートマップ画像を生成し、学習部３５に出力する。すなわち、ヒートマップ生成部３２は、正解値である１８個の各関節の位置情報（座標）を用いて、各関節に対応するヒートマップ画像を生成する。【００３４】
なお、ヒートマップ画像の生成には、公知の様々な手法を採用することができる。例えば、ヒートマップ生成部３２は、正解値読込部３１により読み込まれた座標位置を最も尤度（存在隔離）の高い位置とし、その位置が半径Ｘｃｍを次に尤度の高い位置、さらにその位置から半径Ｘｃｍを次に尤度の高い位置として、ヒートマップ画像を生成する。なお、Ｘは閾値であり、任意の数字である。また、ヒートマップ画像の詳細は、後述する。【００３５】
画像生成部３３は、距離画像を生成する処理部である。例えば、画像生成部３３は、学習データＤＢ１４に記憶される学習データのうち、正解値読込部３１が読み込んだ骨格情報に対応付けられる画像情報に記憶される距離画像を読み込んで、学習部３５に出力する。【００３６】
姿勢認識部３４は、学習データの骨格情報を用いた姿勢情報を算出する処理部である。例えば、姿勢認識部３４は、骨格情報である各関節の位置情報と、図４に格納される骨格の定義情報とを用いて、背骨を軸にした回転角および両肩を軸にした回転角を算出し、算出結果を学習部３５に出力する。なお、背骨の軸とは、例えば図４に示すHEAD（３）とSPINE_BASE（０）とを結ぶ軸であり、両肩の軸とは、例えば図４に示すSHOULDER_RIGHT（７）からSHOULDER_LEFT（４）とを結ぶ軸である。【００３７】
学習部３５は、多層構造のニューラルネットワークを学習モデルとして用いる深層学習、いわゆるディープラーニングを用いた学習モデルに対して、教師有学習を実行する処理部である。例えば、学習部３５は、画像生成部３３が生成した距離画像データを入力データ、姿勢認識部３４が生成した姿勢情報をニューラルネットワークに入力する。そして、学習部３５は、ニューラルネットワークの出力として、各関節のヒートマップ画像を取得する。その後、学習部３５は、ニューラルネットワークの出力である各関節のヒートマップ画像と、ヒートマップ生成部３２が生成した正解ラベルである各関節のヒートマップ画像とを比較する。そして、学習部３５は、各関節の誤差が最小となるように、誤差逆伝搬法などを用いてニューラルネットワークを学習する。【００３８】
ここで、入力データについて説明する。図６は、距離画像とヒートマップ画像の一例を示す図である。図６の（ａ）に示すように、距離画像は、３Ｄレーザセンサ５から画素までの距離が含まれるデータであり、３Ｄレーザセンサ５からの距離が近いほど、濃い色で表示される。また、図６の（ｂ）に示すように、ヒートマップ画像は、関節ごとに生成され、各関節位置の尤度を可視化した画像であって、最も尤度が高い座標位置ほど、濃い色で表示される。なお、ヒートマップ画像では、通常、人物の形は表示されないが、図６では、説明をわかりやすくするために、人物の形を図示するが、画像の表示形式を限定するものではない。【００３９】
また、学習部３５は、学習が終了すると、ニューラルネットワークにおける各種パラメータなどを学習結果として、学習結果ＤＢ１５に格納する。なお、学習を終了するタイミングは、所定数以上の学習データを用いた学習が完了した時点や誤差が閾値未満となった時点など、任意に設定することができる。【００４０】
（認識装置５０の機能構成）
図３に示すように、認識装置５０は、通信部５１、記憶部５２、制御部６０を有する。通信部１１は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部５１は、学習装置１０から学習結果を取得し、３Ｄレーザセンサ５から距離画像を取得し、演技者１の骨格情報を採点装置９０に送信する。【００４１】
記憶部５２は、データや制御部６０が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部５２は、骨格定義ＤＢ５３、学習結果ＤＢ５４、算出結果ＤＢ５５を記憶する。なお、骨格定義ＤＢ５３は、骨格定義ＤＢ１３と同様の情報を記憶し、学習結果ＤＢ５４は、学習結果ＤＢ１５と同様の情報を記憶するので、詳細な説明は省略する。【００４２】
算出結果ＤＢ５５は、後述する制御部６０によって算出された各関節の情報を記憶するデータベースである。具体的には、算出結果ＤＢ５５は、認識装置５０により距離画像から認識された結果を記憶する。【００４３】
制御部６０は、認識装置５０全体を司る処理部であり、例えばプロセッサなどである。制御部６０は、認識処理部７０を有し、学習モデルの学習処理を実行する。なお、認識処理部７０は、プロセッサなどの電子回路の一例やプロセッサなどが有するプロセスの一例である。【００４４】
認識処理部７０は、画像取得部７１、姿勢認識部７２、認識部７３、算出部７４を有し、骨格認識を実行する処理部である。なお、姿勢認識部７２は、生成部の一例であり、認識部７３は、入力部の一例であり、算出部７４は、特定部の一例である。【００４５】
画像取得部７１は、骨格認識対象の距離画像を取得する処理部である。例えば、画像取得部７１は、３Ｄレーザセンサ５が測定した距離画像を取得し、姿勢認識部７２と認識部７３とに出力する。【００４６】
姿勢認識部７２は、距離画像から姿勢情報を認識する処理部である。例えば、姿勢認識部７２は、予め学習された姿勢認識用の学習モデルに、画像取得部７１により取得された距離画像を入力する。そして、姿勢認識部７２は、当該別の学習モデルから出力された出力値を姿勢情報として、認識部７３に出力する。なお、ここで使用する姿勢認識用の学習モデルは、公知の学習モデルなどを用いることができ、学習モデルに限らず、公知の算出式などを採用することもできる。すなわち、距離画像から姿勢情報を取得できれば、その手法はどのような手法であってもよい。【００４７】
認識部７３は、学習装置１０によって学習された学習済みの学習モデルを用いて、骨格認識を実行する処理部である。例えば、認識部７３は、学習結果ＤＢ５４に記憶される各種パラメータを読み出し、各種パラメータを設定したニューラルネットワークを用いた学習モデルを構築する。【００４８】
そして、認識部７３は、画像取得部７１により取得された距離画像と、姿勢認識部７２により取得された姿勢情報とを、構築した学習済みの学習モデルに入力し、出力結果として、各関節のヒートマップ画像を認識する。すなわち、認識部７３は、学習済みの学習モデルを用いて、１８個の各関節に対応するヒートマップ画像を取得し、算出部７４に出力する。【００４９】
算出部７４は、認識部７３により取得された各関節のヒートマップ画像から各関節の位置を算出する処理部である。例えば、算出部７４は、各関節のヒートマップのうち、最大尤度の座標を取得する。つまり、算出部７４は、HEAD（３）のヒートマップ画像、SHOULDER_RIGHT（７）のヒートマップ画像のように、１８個の各関節のヒートマップ画像について、最大尤度の座標を取得する。【００５０】
そして、算出部７４は、各関節における最大尤度の座標を、算出結果として算出結果ＤＢ５５に格納する。このとき、算出部４４は、各関節について取得された最大尤度の座標（２次元座標）を３次元座標に変換することもできる。例えば、算出部７４は、右肘角度＝１６２度、左肘角度＝１７０度などと算出する。【００５１】
［処理の流れ］
図７は、実施例１にかかる処理の流れを示すフローチャートである。なお、ここでは、学習処理の後に認識処理が実行される例で説明するが、これに限定されるものではなく、別々のフローで実現することもできる。【００５２】
図７に示すように、学習装置１０は、学習開始の指示を受信すると（Ｓ１０１：Ｙｅｓ）、学習データＤＢ１４から学習データを読み込む（Ｓ１０２）。【００５３】
続いて、学習装置１０は、読み込んだ学習データから距離画像を取得し（Ｓ１０３）、学習データの骨格情報から姿勢情報を算出する（Ｓ１０４）。また、学習装置１０は、学習データから正解値である骨格情報を取得し（Ｓ１０５）、取得した骨格情報から各関節のヒートマップ画像を生成する（Ｓ１０６）。【００５４】
その後、学習装置１０は、距離画像を入力データ、各関節のヒートマップ画像を正解ラベルとして、ニューラルネットワークに入力するとともに、姿勢情報をニューラルネットワークに入力して、モデルの学習を実行する（Ｓ１０７）。ここで、学習を継続する場合（Ｓ１０８：Ｎｏ）、Ｓ１０２以降が繰り返される。【００５５】
そして、学習を終了した後（Ｓ１０８：Ｙｅｓ）、認識開始の指示を受信すると（Ｓ１０９：Ｙｅｓ）、認識装置５０は、３Ｄレーザセンサ５から距離画像を取得する（Ｓ１１０）。【００５６】
続いて、認識装置５０は、予め学習済みである姿勢認識用の学習モデルに、Ｓ１１０で取得された距離画像を入力して、その出力結果を姿勢情報として取得する（Ｓ１１１）。その後、認識装置５０は、Ｓ１０７で学習された学習済みの学習モデルに対して、Ｓ１１０で取得された距離画像とＳ１１１で取得された姿勢情報を入力し、その出力結果を各関節のヒートマップ画像として取得する（Ｓ１１２）。【００５７】
そして、認識装置５０は、取得された各関節のヒートマップ画像に基づいて、各関節の位置情報を取得し（Ｓ１１３）、取得した各関節の位置情報を２次元座標等に変換して、算出結果ＤＢ１６に出力する（Ｓ１１４）。【００５８】
その後、認識装置５０は、骨格認識を継続する場合（Ｓ１１５：Ｎｏ）、Ｓ１１０以降を繰り返し、骨格処理を終了する場合（Ｓ１１５：Ｙｅｓ）、認識処理を終了する。【００５９】
［効果］
上述したように、認識装置５０は、３Ｄレーザセンサ５から得られた距離画像を用いて、ディープラーニングにより人の関節などを認識する際に、３Ｄレーザセンサ５に対する人の向きの情報（姿勢情報）をニューラルネットワークに与える。すなわち、ディープラーニングなどの機械学習に、距離画像に映っている人のどちらが右でどちらが左なのかがわかる情報を与える。この結果、認識装置５０は、肘や手首、膝などの人体において左右で対になっている関節を左右間違えずに正しく認識することができる。【００６０】
図８は、骨格情報の認識結果の比較例を説明する図である。図８では、学習済みの学習モデルから得られた各関節のヒートマップ画像を示し、図内の黒丸は、既知である関節の正解値（位置）を示し、図内のバツ印は、最終的に認識された関節の位置を示す。また、図８では、一例として、４つの関節のヒートマップ画像を図示して説明する。【００６１】
図８の（１）に示すように、一般技術では、学習時には、左右で正確に認識して学習が行われても、認識時に、学習データと同じ向きの距離画像であっても学習データとは左右を逆に認識することがあり、正確な認識結果を得られない。【００６２】
一方、図８の（２）に示すように、実施例１による手法を用いた学習モデルでは、距離画像だけではなく、姿勢情報を用いて骨格認識の学習および推定を行う。このため、実施例１にかかる認識装置５０は、距離画像と姿勢情報を入力データとして用いて学習モデルにより骨格認識を行うことができ、左右が正確に認識された認識結果を出力できる。
【実施例２】
【００６３】
ところで、実施例１では、多層構造のニューラルネットワークを学習モデルとして用いるディープラーニングを用いた学習モデルの生成について説明したが、学習装置１０や認識装置５０では姿勢情報を入力する層を制御することができる。なお、ここでは、認識装置５０を例にして説明するが、学習装置１０についても同様に処理することができる。【００６４】
例えば、ニューラルネットワークは、入力層、中間層（隠れ層）、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値（重み係数）、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。【００６５】
また、ニューラルネットワークにおける学習とは、出力層が正しい値となるように、パラメータ、すなわち、重みとバイアスを修正していくことである。誤差逆伝播法においては、ニューラルネットワークに対して、出力層の値がどれだけ正しい状態（望まれている状態）から離れているかを示す「損失関数（loss  function）」を定め、最急降下法等を用いて、損失関数が最小化するように、重みやバイアスの更新が行われる。具体的には、入力値をニューラルネットワークに与え、その入力値を基にニューラルネットワークが予測値を計算し、予測値と教師データ（正解値）を比較して誤差を評価し、得られた誤差を基にニューラルネットワーク内の結合荷重（シナプス係数）の値を逐次修正することにより、学習モデルの学習および構築が実行される。【００６６】
上記認識装置５０は、このようなニューラルネットワークを用いた手法として、ＣＮＮ（Convolutional  Neural  Network）などを用いることができる。そして、認識装置５０は、学習時または認識時において、ニューラルネットワークが有する各中間層のうち最初の中間層に、姿勢情報を入力して学習または認識を行う。このようにすることで、姿勢情報を入力した状態で、各中間層による特徴量の抽出を実行できるので、関節の認識精度を向上させることができる。【００６７】
また、認識装置５０は、ＣＮＮを用いた学習モデルの場合、中間層の中で最もサイズが小さくなる層に、姿勢情報を入力して学習または認識を行うこともできる。ＣＮＮは、中間層（隠れ層）として、畳み込み層とプーリング層と有する。畳み込み層は、前の層で近くにあるノードにフィルタ処理を実行して特徴マップを生成し、プーリング層は、畳込み層から出力された特徴マップをさらに縮小して新たな特徴マップを生成する。つまり、畳み込み層は、画像の局所的な特徴を抽出し、プーリング層は、局所的な特徴を集約する処理を実行し、これらによって入力画像の特徴を維持しながら画像を縮小する。【００６８】
ここで、認識装置５０は、各層に入力される入力画像が最小の層に対して、姿勢情報を入力する。このようにすることで、入力層に入力される入力画像（距離画像）の特徴を最も抽出した状態のときに姿勢情報を入力することができ、その後の特徴量から元画像を復元するときに、姿勢情報を加味した復元を実行できるので、関節の認識精度を向上させることができる。【００６９】
ここで、図９を用いて具体的に説明する。図９は、姿勢情報の入力を説明する図である。図９に示すように、ニューラルネットワークは、入力層、中間層（隠れ層）、出力層から構成され、ニューラルネットワークの入力データとニューラルネットワークから出力された出力データとの誤差が最小になるように学習される。このとき、認識装置５０は、中間層の最初の層である（ａ）層に姿勢情報を入力して、学習処理および認識処理を実行する。または、認識装置５０は、各層に入力される入力画像が最小となる（ｂ）層に姿勢情報を入力して、学習処理および認識処理を実行する。
【実施例３】
【００７０】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。【００７１】
［姿勢情報の入力値］
上記実施例では、姿勢情報として、背骨を軸にした回転角および両肩を軸にした回転角を用いる例を説明したが、これらの回転角として、角度値や三角関数を用いることができる。図１０は、角度値および三角関数を説明する図である。図１０では、背骨の軸をａｂ、両肩の軸をｃｄで図示する。そして、認識装置５０は、演技者の背骨の軸がａｂ軸から角度θだけ傾いているとき、この角度θを角度値として使用する。または、認識装置５０は、演技者の背骨の軸がａｂ軸から角度θだけ傾いているとき、ｓｉｎθまたはｃｏｓθを三角関数として使用する。【００７２】
角度値を用いることで、計算コストを削減することができ、学習処理や認識処理の処理時間を短縮することができる。また、三角関数を用いることで、３６０度から０度へ変化する境目を正確に認識することができ、角度値を用いる場合と比較して、学習精度または認識精度を向上させることができる。なお、ここでは、背骨の例を軸にして説明したが、両肩の軸についても同様に処理することができる。また、学習装置１０についても同様に処理することができる。【００７３】
［適用例］
上記実施例では、体操競技を例にして説明したが、これに限定されるものではなく、選手が一連の技を行って審判が採点する他の競技にも適用することができる。他の競技の一例としては、フィギュアスケート、新体操、チアリーディング、水泳の飛び込み、空手の型、モーグルのエアーなどがある。また、スポーツに限らず、トラック、タクシー、電車などの運転手の姿勢検出やパイロットの姿勢検出などにも適用することができる。【００７４】
［骨格情報］
また、上記実施例では、１８個の各関節の位置を学習する例を説明したが、これに限定されるものではなく、１個以上の関節を指定して学習することもできる。また、上記実施例では、骨格情報の一例として各関節の位置を例示して説明したが、これに限定されるものではなく、各関節の角度、手足の向き、顔の向きなど、予め定義できる情報であれば、様々な情報を採用することができる。【００７５】
［学習モデル］
また、姿勢情報には、腰の回転角、頭の向きなど被写体の向きを示す情報であれば様々な情報を採用することができる。【００７６】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【００７７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、学習装置１０と認識装置５０とを同じ装置で実現することもできる。【００７８】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００７９】
［ハードウェア］
次に、学習装置１０や認識装置５０などのコンピュータのハードウェア構成について説明する。図１１は、ハードウェア構成例を説明する図である。図１１に示すように、コンピュータ１００は、通信装置１００ａ、ＨＤＤ（Hard  Disk  Drive）１００ｂ、メモリ１００ｃ、プロセッサ１００ｄを有する。また、図１１に示した各部は、バス等で相互に接続される。【００８０】
通信装置１００ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１００ｂは、図２に示した機能を動作させるプログラムやＤＢを記憶する。【００８１】
プロセッサ１００ｄは、図２に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１００ｂ等から読み出してメモリ１００ｃに展開することで、図２等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、認識装置５０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１００ｄは、認識処理部７０等と同様の機能を有するプログラムをＨＤＤ１００ｂ等から読み出す。そして、プロセッサ１００ｄは、認識処理部７０等と同様の処理を実行するプロセスを実行する。【００８２】
このように認識装置５０は、プログラムを読み出して実行することで認識方法を実行する情報処理装置として動作する。また、認識装置５０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、認識装置５０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。なお、学習装置１０についても同様のハードウェア構成を用いて処理することができる。
【符号の説明】
【００８３】
５  ３Ｄレーザセンサ
１０  学習装置
１１  通信部
１２  記憶部
１３  骨格定義ＤＢ
１４  学習データＤＢ
１５  学習結果ＤＢ
２０  制御部
３０  学習処理部
３１  正解値読込部
３２  ヒートマップ生成部
３３  画像生成部
３４  姿勢認識部
３５  学習部
５０  認識装置
５１  通信部
５２  記憶部
５３  骨格定義ＤＢ
５４  学習結果ＤＢ
５５  算出結果ＤＢ
６０  制御部
７０  認識処理部
７１  画像取得部
７２  姿勢認識部
７３  認識部
７４  算出部
【図１】
2020084667.tif 000003
【図２】
2020084667.tif 000004
【図３】
2020084667.tif 000005
【図４】
2020084667.tif 000006
【図５】
2020084667.tif 000007
【図６】
2020084667.tif 000008
【図７】
2020084667.tif 000009
【図８】
2020084667.tif 000010
【図９】
2020084667.tif 000011
【図１０】
2020084667.tif 000012
【図１１】
2020084667.tif 000013
【手続補正書】
【提出日】令和3年3月26日(2021.3.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータが、
被写体を含む距離画像に基づいて、前記被写体の姿勢を特定する姿勢情報を生成し、
前記距離画像とともに前記姿勢情報を、前記被写体の骨格を認識するために学習された学習済みモデルに入力し、
前記学習済みモデルの出力結果を用いて、前記被写体の骨格を特定する
処理を実行することを特徴とする認識方法。
【請求項２】
前記入力する処理は、前記学習済みモデルに利用されるニューラルネットワークの入力層に前記距離画像を入力し、前記ニューラルネットワークの各中間層のうち先頭の中間層に前記姿勢情報を入力することを特徴とする請求項１に記載の認識方法。
【請求項３】
前記入力する処理は、前記学習済みモデルに利用される畳み込みニューラルネットワークの入力層に前記距離画像を入力し、前記畳み込みニューラルネットワークの各隠れ層のうち、入力された画像のサイズが最も小さくなる隠れ層に前記姿勢情報を入力することを特徴とする請求項１に記載の認識方法。
【請求項４】
前記入力する処理は、前記姿勢情報として、前記被写体の向きを示す角度値または三角関数を入力することを特徴とする請求項１に記載の認識方法。
【請求項５】
前記入力する処理は、前記被写体の背骨を軸にした回転角と前記被写体の両肩を軸にした回転角とのそれぞれの角度値、または、それぞれの回転角を用いた各三角関数を入力することを特徴とする請求項４に記載の認識方法。
【請求項６】
前記生成する処理は、前記姿勢情報を出力するために学習された学習済みモデルに、前記距離画像を入力して得られる出力結果を、前記姿勢情報として生成することを特徴とする請求項１に記載の認識方法。
【請求項７】
前記特定する処理は、前記学習済みモデルの出力結果として、前記被写体の関節位置の尤度を可視化したヒートマップ画像を取得し、前記ヒートマップ画像における尤度が最も高い位置を、前記関節位置と特定することを特徴とする請求項１に記載の認識方法。
【請求項８】
コンピュータに、
被写体を含む距離画像に基づいて、前記被写体の姿勢を特定する姿勢情報を生成し、
前記距離画像とともに前記姿勢情報を、前記被写体の骨格を認識するために学習された学習済みモデルに入力し、
前記学習済みモデルの出力結果を用いて、前記被写体の骨格を特定する
処理を実行させることを特徴とする認識プログラム。
【請求項９】
被写体を含む距離画像に基づいて、前記被写体の姿勢を特定する姿勢情報を生成する生成部と、
前記距離画像とともに前記姿勢情報を、前記被写体の骨格を認識するために学習された学習済みモデルに入力する入力部と、
前記学習済みモデルの出力結果を用いて、前記被写体の骨格を特定する特定部と
を有することを特徴とする認識装置。
【請求項１０】
コンピュータが、
学習データである被写体を含む距離画像に対応付けられる、正解情報である前記被写体の骨格情報を用いて、前記被写体の姿勢を特定する姿勢情報を生成し、
前記距離画像とともに前記姿勢情報を学習モデルに入力し、
前記学習モデルの出力結果と前記骨格情報とを用いて、前記学習モデルを学習する
処理を実行することを特徴とする学習方法。
【国際調査報告】
2020084667.tif 000014
2020084667.tif 000015
2020084667.tif 000016