(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023141303
(43)【公開日】2023-10-05
(54)【発明の名称】骨格認識プログラム、骨格認識方法および骨格認識装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20230928BHJP
【FI】
G06T7/00 660B
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022047542
(22)【出願日】2022-03-23
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】石川 優
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA08
5L096CA04
5L096DA02
5L096FA66
5L096FA69
5L096HA09
5L096JA11
5L096JA18
(57)【要約】
【課題】3D骨格認識の精度を向上させること。
【解決手段】骨格認識装置100は、画像に含まれる人物の関節が存在する位置の尤度を示す複数方向からの2次元の特徴量に基づいて、人物の3次元の骨格情報を生成する。骨格認識装置100は、人物の関節の位置情報を有する3次元の骨格モデルに基づいて、生成した人物の3次元の骨格情報に含まれる複数の関節の中から、関節の位置が異常である関節を特定する。骨格認識装置100は、人物の関節の位置の時系列の変化から予測される関節の位置と、2次元の特徴量とに基づいて、異常である関節の位置を補正する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
画像に含まれる人物の関節が存在する位置の尤度を示す複数方向からの2次元の特徴量に基づいて、前記人物の3次元の骨格情報を生成し、
前記人物の関節の位置情報を有する3次元の骨格モデルに基づいて、生成した前記人物の3次元の骨格情報に含まれる複数の関節の中から、前記関節の位置が異常である関節を特定し、
前記人物の関節の位置の時系列の変化から予測される関節の位置と、前記2次元の特徴量とに基づいて、前記異常である関節の位置を補正する
処理をコンピュータに実行させることを特徴とする骨格認識プログラム。
【請求項2】
前記3次元の骨格情報を生成する処理は、前記2次元の特徴量と、前記画像を撮影したカメラのパラメータを基にして、3次元座標と前記3次元座標に所定の関節が存在する尤度とを対応付けた3次元の特徴量を生成し、前記3次元の特徴量を基にして、前記3次元の骨格情報を生成することを特徴とする請求項1に記載の骨格認識プログラム。
【請求項3】
3次元の骨格情報を生成する処理は、時系列の画像を基に生成される時系列の2次元の特徴量を基にして、時系列の3次元の骨格情報を生成し、前記特定する処理は、前記3次元の骨格情報に含まれる関節間の長さ、または、時系列の3次元の骨格情報における同一関節の前後の変位を基にして、前記3次元座標に異常を有する関節を特定することを特徴とする請求項1または2に記載の骨格認識プログラム。
【請求項4】
前記補正する処理は、前記骨格モデルによる運動予測に基づいて、前記異常を有する関節の予測される3次元座標を特定し、前記異常を有する関節の親関節の3次元座標と、前記異常を有する関節の3次元座標と、予測される前記3次元座標との関係から、前記異常を有する関節の3次元座標を補正することを特徴とする請求項1に記載の骨格認識プログラム。
【請求項5】
前記補正する処理は、前記親関節の3次元座標および前記異常を有する関節の3次元座標の距離と前記骨格モデルに基づく関節間の距離との差分値、および、前記異常を有する関節の3次元座標と予測される前記3次元座標との距離の合計値が最小となるように、前記異常を有する関節の3次元座標を補正することを特徴とする請求項4に記載の骨格認識プログラム。
【請求項6】
画像に含まれる人物の関節が存在する位置の尤度を示す複数方向からの2次元の特徴量に基づいて、前記人物の3次元の骨格情報を生成し、
前記人物の関節の位置情報を有する3次元の骨格モデルに基づいて、生成した前記人物の3次元の骨格情報に含まれる複数の関節の中から、前記関節の位置が異常である関節を特定し、
前記人物の関節の位置の時系列の変化から予測される関節の位置と、前記2次元の特徴量とに基づいて、前記異常である関節の位置を補正する
処理をコンピュータが実行することを特徴とする骨格認識方法。
【請求項7】
画像に含まれる人物の関節が存在する位置の尤度を示す複数方向からの2次元の特徴量に基づいて、前記人物の3次元の骨格情報を生成し、
前記人物の関節の位置情報を有する3次元の骨格モデルに基づいて、生成した前記人物の3次元の骨格情報に含まれる複数の関節の中から、前記関節の位置が異常である関節を特定し、
前記人物の関節の位置の時系列の変化から予測される関節の位置と、前記2次元の特徴量とに基づいて、前記異常である関節の位置を補正する制御部を有する
ことを特徴とする骨格認識装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、骨格認識プログラム等に関する。
【背景技術】
【0002】
体操などのスポーツ、ヘルスケアやエンターテイメントの分野において、骨格認識のニーズが高まっている。また、Deep Learning技術の向上により、画像方式によって、2次元(2D)または3次元(3D)の骨格認識の精度も向上しつつある。
【0003】
画像方式では、CMOS(Complementary Metal Oxide Semiconductor)イメージャによって、各ピクセルのRGB(Red Green Blue)データを取得する方式であり、安価なRGBカメラを用いることができる。
【0004】
ここで、複数カメラによる2D特徴を用いた3D骨格認識の従来技術について説明する。従来技術では、事前に定義された骨格モデルに従って、各カメラで2D特徴を取得した後、各2D特徴を統合した結果を用いて、3D骨格を認識する。たとえば、2D特徴は、2D骨格情報、heatmap情報が上げられる。
【0005】
図17は、骨格モデルの一例を示す図である。
図17に示すように、骨格モデルM1は、21個の関節で構成される。骨格モデルM1では、各関節をノードで示し、0~20の番号を割り当てる。ノードの番号と、関節名との関係は、テーブルTe1に示す関係となる。たとえば、ノード0に対応する関節名は「SPINE_BASE」となる。ノード1~20に対する関節名の説明を省略する。
【0006】
従来技術には、三角測量を用いて骨格認識を行う手法、機械学習を用いて骨格認識を行う手法がある。三角測量を用いた手法には、カメラ2台による三角測量と、カメラ3台以上による三角測量がある。便宜的に、カメラ2台による三角測量を、従来技術1、カメラ3台以上による三角測量を、従来技術2、機械学習を用いた手法を、従来技術3とする。
【0007】
図18は、カメラ2台による三角測量を説明するための図である。従来技術1において、三角測量とは、2台のカメラCa1A,Ca1Bの特徴を使って、三角形の関係から被写体Pの3次元座標を測定する方法である。カメラCa1Aのカメラ画像をIm2Aとし、カメラCa1Bのカメラ画像をIm2Bとする。
【0008】
被写体Pのカメラ画像Im2Aの2D関節座標をpl(xl,yl)とする。被写体Pのカメラ画像Im2Aの2D関節座標をpr(xr,yr)とする。また、カメラ間の距離をbとし、焦点距離をfとする。従来技術1では、2D関節座標をpl(xl,yl)、pr(xr,yr)を特徴とし、3次元関節座標P(X,Y,Z)を、式(1)、式(2)、式(3)により算出する。(X,Y,Z)の原点は、2つのカメラCa1A,Ca1Bの光学中心の中央にあるものとする。
【0009】
【0010】
図18で説明した従来技術1では、3D骨格を求める際に誤った2D特徴が使用されると3D骨格の精度が低下してしまう。
【0011】
図19は、カメラ3台による三角測量を説明するための図である。カメラ3台による三角測量では、
図18で説明した三角測量を、3台以上のカメラに拡張し、RANSAC(Random Sample Consensus)と呼ばれるアルゴリズムにより、最も良いカメラの組み合わせを推定する。
【0012】
図19に示すように、従来技術2の装置は、全てのカメラ1-1,1-2,1-3,1-4で、被写体の2D関節座標を取得する(ステップS1)。従来技術2の装置は、全てのカメラ1-1~1-4から、2つのカメラの組み合わせを選択し、
図18で説明した三角測量によって、3D関節座標を算出する(ステップS2)。
【0013】
従来技術2の装置は、3D骨格を全てのカメラ1-1~1-4に再投影して、2D関節座標とのずれが閾値以下となるカメラの数をカウントする(ステップS3)。従来技術2の装置は、ステップS2、S3の処理を繰り返し実行し、2D関節座標とのずれが閾値以下となるカメラの数が最も多い2つのカメラの組み合わせを、最も良いカメラの組み合わせとして採用する(ステップS4)。
【0014】
図19で説明した従来技術2では、3D骨格を求める際に最適な2つのカメラを探索するために処理時間を要してしまう。
【0015】
一方、機械学習を用いた手法では、三角測量を用いた手法と比較して、高精度かつ高速に、3D骨格を認識することが可能となる。
【0016】
図20は、機械学習を用いた手法を説明するための図である。機械学習を用いた従来技術3では、各カメラが撮影した各入力画像21に対して、2D backbone処理21aをかけることで、各関節特徴を表す2D特徴(2D features)22を取得する。従来技術3では、各2D特徴22をカメラパラメータに従って3Dcubeに逆投影することで、aggregated volumes23を取得する。
【0017】
従来技術3では、aggregated volumes23を、V2V(ニューラルネットワーク、P3)24に入力することで、各関節の尤度を表すprocessed volumes25を取得する。processed volumes25は、各関節の3Dでの尤度を表すheatmapに対応する。従来技術3では、processed volumes25に対して、soft-argmax26を実行することで、3D骨格情報27を取得する。
【先行技術文献】
【特許文献】
【0018】
【特許文献1】米国特許出願公開第2012/0139925号明細書
【特許文献2】特開2017-182615号公報
【発明の概要】
【発明が解決しようとする課題】
【0019】
しかしながら、従来技術のように、複数視点の画像フレームを用いて3D骨格認識を行う場合、2視点以上の画像フレームにおいて、正常な2D骨格認識を行えていないと、3D骨格認識の精度が低下するという問題がある。
【0020】
1つの側面では、本発明は、3D骨格認識の精度を向上させることができる骨格認識プログラム、骨格認識方法および骨格認識装置を提供することを目的とする。
【課題を解決するための手段】
【0021】
第1の案では、コンピュータが次の処理を実行する。コンピュータは、画像に含まれる人物の関節が存在する位置の尤度を示す複数方向からの2次元の特徴量に基づいて、人物の3次元の骨格情報を生成する。コンピュータは、人物の関節の位置情報を有する3次元の骨格モデルに基づいて、生成した人物の3次元の骨格情報に含まれる複数の関節の中から、関節の位置が異常である関節を特定する。コンピュータは、人物の関節の位置の時系列の変化から予測される関節の位置と、2次元の特徴量とに基づいて、異常である関節の位置を補正する。
【発明の効果】
【0022】
3D骨格認識の精度を向上させることができる。
【図面の簡単な説明】
【0023】
【
図1】
図1は、本実施例に係る骨格認識システムの一例を示す図である。
【
図2】
図2は、本実施例に係る骨格認識装置の処理を説明するための図である。
【
図3】
図3は、骨格認識処理部を説明するための図である。
【
図5】
図5は、2D特徴を説明するための図である。
【
図7】
図7は、対象選択部の処理を説明するための図である。
【
図8】
図8は、各関節の優先度の一例を示す図である。
【
図9】
図9は、運動予測に基づいて3D関節座標を算出する処理を説明するための図(1)である。
【
図10】
図10は、運動予測に基づいて3D関節座標を算出する処理を説明するための図(2)である。
【
図11】
図11は、運動予測に基づいて3D関節座標を算出する処理を説明するための図(3)である。
【
図12】
図12は、本実施例に係る骨格認識装置の構成を示す機能ブロック図である。
【
図14】
図14は、本実施例に係る骨格認識装置の処理手順を示すフローチャートである。
【
図15】
図15は、従来技術の問題を説明するための図である。
【
図16】
図16は、実施例の骨格認識装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図18】
図18は、カメラ2台による三角測量を説明するための図である。
【
図19】
図19は、カメラ3台による三角測量を説明するための図である。
【
図20】
図20は、機械学習を用いた手法を説明するための図である。
【発明を実施するための形態】
【0024】
以下に、本願の開示する骨格認識プログラム、骨格認識方法および骨格認識装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例0025】
図1は、本実施例に係る骨格認識システムの一例を示す図である。
図1に示すように、この骨格認識システム35は、カメラ30a,30b,30c,30dと、骨格認識装置100とを有する。カメラ30a~30dと、骨格認識装置100とは、有線または無線によってそれぞれ接続されている。
図1では、カメラ30a~30dを示すが、この骨格認識システム35は、他のカメラを更に有していてもよい。
【0026】
本実施例では一例として、被写体H1が、器具上で一連の演技を行うものとするがこれに限定されるものではない。たとえば、被写体H1は、器具の存在しない場所で演技を行ってもよいし、演技以外の動作を行ってもよい。
【0027】
カメラ30aは、被写体H1の画像を撮影するカメラである。カメラ30aは、CMOSイメージャ、RGBカメラ等に対応する。カメラ30aは、所定のフレームレート(frames per second:FPS)によって、画像を連続して撮影し、時系列に画像のデータを骨格認識装置100に送信する。以下の説明では、連続する複数の画像のデータのうち、ある一つの画像(静止画像)のデータを「画像フレーム」と表記する。画像フレームには、時系列にフレーム番号が付与される。
【0028】
カメラ30b,30c,30dに関する説明は、カメラ30aに関する説明と同様である。以下の説明では、適宜、カメラ30a~30dをまとめて「カメラ30」と表記する。
【0029】
骨格認識装置100は、カメラ30から取得する画像フレームを基にして、被写体H1の2D特徴を生成する。2D特徴は、被写体H1の2次元の関節座標の尤度を示すheatmapである。骨格認識装置100は、2D特徴を基にして、被写体H1の3次元の関節座標を設定した3D骨格データを生成する。骨格認識装置100は、カメラ30から取得する画像フレームを取得する度に、3D骨格データを生成する処理を繰り返し実行する。以下の説明では、適宜、2次元の関節座標を2D関節座標、3次元の関節座標を3D関節座標と表記する。2D特徴は、たとえば、画像に含まれる人物の関節が存在する位置に関連する尤度を複数の方向から投影した2次元の特徴量である。
【0030】
ここで、骨格認識装置100は、3D骨格データを生成する際に、3D骨格データに設定された複数の関節の3D関節座標を基にして、複数の関節のうち、異常のある関節の特定を行う。骨格認識装置100は、2D特徴と、骨格モデルによる運動予測とを基にして、特定した異常のある関節の3D関節座標を補正する。
【0031】
図2は、本実施例に係る骨格認識装置の処理を説明するための図である。
図2に示すように、骨格認識装置100は、骨格認識処理部151と、異常特定部152と、補正部153と有する。
【0032】
骨格認識処理部151は、カメラ30から画像フレームIM30を取得し、骨格認識処理を実行することで、3D骨格データ32を生成する。骨格認識処理部151は、生成した3D骨格データ32を、異常特定部152に出力する。骨格認識処理については後述する。
【0033】
骨格認識処理部151は、骨格認識処理を実行する過程で生成する2D特徴31を、補正部153に出力する。骨格認識処理部151は、画像フレームIM30を取得する度に、2D特徴31、および、3D骨格データ32を生成し、上記処理を繰り返し実行する。
【0034】
以下の説明では適宜、N番目の画像フレームIM30-Nから生成される3D骨格データ、2D特徴を適宜、3D骨格データ32-Nと、2D特徴31-Nと表記する。Nは自然数である。特に区別しない場合には、単に、3D骨格データ32、2D特徴31と表記する。
【0035】
異常特定部152は、3D骨格データ32に含まれる複数の関節の3D関節座標を基にして、異常のある関節の特定を行う。以下の説明では、異常のある関節を「異常関節」と表記する。異常特定部152は、たとえば、以下の処理を行って、異常関節を特定する。
【0036】
異常特定部152は、3D骨格データ32の各関節の長さをそれぞれ算出する。異常特定部152は、基準となる骨格モデルの位置情報を基にして、各関節の長さの基準値を予め算出しておき、3D骨格データ32の各関節のうち、関節の長さが基準値の±10%に収まらない関節を、異常関節として特定する。
【0037】
異常特定部152は、1フレーム前の「3D骨格データ32-N-1」の各関節の3次元座標と、現フレームの「3D骨格データ32-N」の各関節の3次元座標とを比較して、各関節の変位を算出する。異常特定部152は、変位が予め設定した閾値以上となる関節を、異常関節として特定する。異常特定部152は、各関節について、移動可能な方向を定義しておき、かかる移動可能な方向以外の方向に変位した関節を、異常関節として特定してもよい。
【0038】
異常特定部152は、異常関節の情報を、補正部153に出力することで、異常関節の補正を依頼する。異常関節の情報には、異常関節の識別番号、異常関節を含む3D骨格データ32のフレーム番号等が含まれる。異常関節の識別番号は、異常関節に対応する関節を一意に識別する識別番号が設定される。
図17で示したように、各関節には、関節番号1~20が割り当てられる。3D骨格データ32-Nのフレーム番号をフレーム番号Nとする。
【0039】
異常特定部152は、異常関節が含まれない正常な3D骨格データ32については、正常な3D骨格データ32のフレーム番号を、補正部153に通知する。異常特定部152は、時系列の3D骨格データ32を、補正部153に出力してもよい。
【0040】
補正部153は、異常関節の情報を基にして、補正の対象となる関節を特定し、2D特徴31を基にして、特定した関節の3D関節座標の補正を行う。たとえば、補正部153は、フレーム番号N-2からフレーム番号N(現フレーム)に至る骨格モデルの運動予測に基づいて、現フレームの異常関節の予測される3D関節座標を特定する。現フレームの異常関節の予測される3D関節座標を「予測3D関節座標」と表記する。たとえば、「予測3D関節座標」は、人物の関節の位置の時系列の変化から予測される関節の位置である。
【0041】
補正部153は、異常関節の親関節の3D関節座標と、異常関節の3D関節座標と、予測3D関節座標と、2D特徴との関係から、異常関節の3次元座標を補正する。補正部153は、異常関節の3次元座標を、補正後の3次元座標に置き換えた3D骨格データを生成し、生成した3D骨格データを異常特定部152に出力する。
【0042】
異常特定部152は、異常関節を含まない3D骨格データ32については、そのまま出力し、異常関節を含む3D骨格データ32については、補正部153によって補正された3D骨格データ32に置き換えて、出力する。異常特定部152は、時系列(フレーム番号の順)に、3D骨格データを出力するものとする。
【0043】
上記のように骨格認識装置100は、3D骨格データ32に含まれる関節の3D関節座標の異常を特定した場合に、2D特徴と骨格モデルの運動予測とを基にして、異常関節の3D関節座標を修正する。これによって、3D骨格認識の精度を向上させることができる。
【0044】
次に、
図2で説明した骨格認識処理部151についてより具体的に説明する。
図3は、骨格認識処理部を説明するための図である。
図3に示すように、骨格認識処理部151は、人検知部51、2D骨格推定部52、統合部53、3D骨格推定部54を有する。
【0045】
骨格認識処理部50は、カメラ30によって撮影された画像フレームIM30の入力を受け付ける。
【0046】
人検知部51は、画像フレームIM30から、人物の領域を特定し、人物の領域の情報と画像フレームIM30とを、2D骨格推定部52に出力する。2D骨格推定部52は、画像フレームIM30の人物の領域を基にして、人物の2D骨格を推定し、各2D関節座標の尤度を示す2D特徴31を生成する。
【0047】
図4は、2D骨格の一例を示す図である。一例として、カメラ30a,30b,30c,30dが撮影した画像フレームをそれぞれ、画像フレームIM30a,IM30b,IM30c,IM30dとする。
【0048】
画像フレームIM30aから、人物の2D骨格30a-1が推定されている。画像フレームIM30bから、人物の2D骨格30b-1が推定されている。画像フレームIM30cから、人物の2D骨格30c-1が推定されている。画像フレームIM30dから、人物の2D骨格30d-1が推定されている。
【0049】
なお、2D特徴31は、2D骨格の各関節座標の尤度を示すheatmapである。1つのカメラ30から取得した1つの画像フレームから、各関節に対応する2D特徴が生成される。たとえば、関節数を21個、カメラの数を4個とすると、画像フレーム毎に、84個の2D特徴が生成される。
【0050】
図5は、2D特徴を説明するための図である。たとえば、
図5に示す画像フレームIm30a1は、カメラ30aに撮影された画像である。画像フレームIm30b1は、カメラ30bに撮影された画像である。画像フレームIm30c1は、カメラ30cに撮影された画像である。画像フレームIm30d1は、カメラ30dに撮影された画像である。
【0051】
2D骨格推定部52は、画像フレームIm30a1を基にして、特徴群情報G1aを生成する。特徴群情報G1aには、各関節に対応する21個の2D特徴が含まれる。2D骨格推定部52は、画像フレームIm30b1を基にして、特徴群情報G1bを生成する。特徴群情報G1bには、各関節に対応する21個の2D特徴が含まれる。
【0052】
2D骨格推定部52は、画像フレームIm30c1を基にして、特徴群情報G1cを生成する。特徴群情報G1cには、各関節に対応する21個の2D特徴が含まれる。2D骨格推定部52は、画像フレームIm30d1を基にして、特徴群情報G1dを生成する。特徴群情報G1dには、各関節に対応する21個の2D特徴が含まれる。
【0053】
図5では、2D特徴について、詳細に説明したが、以下の説明では、カメラ30の画像フレーム毎に生成される2D特徴をまとめて、単に、2D特徴と表記する。
【0054】
たとえば、人検知部51および2D骨格推定部52は、画像フレームを入力、2D特徴を出力とするNN(Neural Network)であり、事前に訓練されている。2D骨格推定部52は、2D特徴31を、統合部53および補正部153に出力する。人検知部51および2D骨格推定部52の処理は、
図20で説明した2D backbone処理に対応する。
【0055】
統合部53は、2D特徴31を、カメラ30のカメラパラメータに従って、3Dcubeに逆投影することで、aggregated volumesを生成する。aggregated volumesは、
図20で説明した、aggregated volumes23等に対応する。統合部53は、aggregated volumesを、3D骨格推定部54に出力する。
【0056】
3D骨格推定部54は、aggregated volumesを、V2V(訓練済みのニューラルネットワーク、P3)に入力することで、各関節の尤度を表すprocessed volumesを取得する。processed volumesは、各関節の3D関節座標の尤度を表すheatmapに対応する。たとえば、ある関節のheatmapでは、ある関節の3D関節座標として、最も確からしい3D関節座標に対応する尤度が最も大きい値となる。3D骨格推定部54は、各関節の最も確からしい3D関節座標を特定していくことで、3D骨格データ32を推定する。3D骨格データ32は、3次元の関節座標を示す情報である。
【0057】
次に、
図2で説明した補正部153についてより具体的に説明する。
図6は、補正部を説明するための図である。
図6に示すように、補正部153は、対象選択部61と、推定部62と、置換部63とを有する。
【0058】
対象選択部61は、異常関節の情報を取得し、補正の対象となる異常関節の選択を行う。対象選択部61は、所定の選択条件を満たす3D骨格データを、修正対象骨格データとして選択する。
【0059】
図7は、対象選択部の処理を説明するための図である。所定の選択条件は、前2フレームで、該当関節が正常判定を受けているという条件である。たとえば、対象選択部61は、3D骨格データ32-Tに異常関節が含まれ、3D骨格データ32-T-1、32-T-2において、異常関節と同一の関節が正常な関節であると判定されている場合に、3D骨格データ32-Tを、修正対象骨格データとして選択する。
【0060】
対象選択部61は、後述する推定部62、置換部63によって、3D骨格データ32-Tの異常関節の3D関節座標が補正された場合には、3D骨格データ32-Tの各関節を正常な関節として取り扱う。
【0061】
3D骨格データ32-Tが補正される前は、3D骨格データ32-T+1に異常関節が含まれている場合でも、3D骨格データ32-T+1は所定の選択条件を満たさない。しかし、3D骨格データ32-Tが補正されることで、3D骨格データ32-T+1は、所定の選択条件を満たし、修正対象骨格データとして選択される。たとえば、対象選択部61は、連続して異常関節が特定されても、異常関節を有する3D骨格データを順次、補正対象骨格データとして選択できる。
【0062】
対象選択部61は、時系列の3D骨格データ32と、選択した修正対象骨格データのフレーム番号と、異常関節となる関節の識別番号とを推定部62に出力する。
【0063】
推定部62は、2D特徴と、骨格モデルの運動予測に基づいて、補正対象骨格データに含まれる異常関節の正しい3D関節座標を推定し、3D関節座標を補正する。推定部62は、補正対象骨格データに複数の異常関節が含まれる場合には、優先度の高い異常関節から順に、3D関節座標の推定、補正を行う。
【0064】
図8は、各関節の優先度の一例を示す図である。
図8において、関節番号1~20に対応する各関節には、優先度を示す数値(0)~(4)が設定され、カッコ内の数値が小さい関節ほど優先度が高いことを示す。親子関係にある関節については、親関節の方が優先度が高くなる。たとえば、関節番号17番の関節「FOOT_RIGHT」には数値(4)であり、関節番号16番の関節「ANKLE_RIGHT」には数値(3)が設定されている。このため、関節番号16番の関節「ANKLE_RIGHT」の方が、関節番号17番の関節「FOOT_RIGHT」よりも優先度が高いことを示す。なお、数値(0)が設定された、関節番号0番の関節「spine_base」は、補正の対象外とする。
【0065】
推定部62が、骨格モデルの運動予測に基づいて、予測3D関節座標を算出する処理について説明する。たとえば、フレーム番号Tの修正対象骨格データに含まれる異常関節の関節番号を「i」とした場合、フレーム番号T-2、T-1の関節番号iの関節の3D関節座標から、フレーム番号Tの関節番号iの予測3D関節座標を運動法則により算出する。
【0066】
図9、
図10、
図11は、運動予測に基づいて3D関節座標を算出する処理を説明するための図である。
図9について説明する。
図9では一例として、フレーム番号Tの関節番号i=6の関節が、異常関節として特定されている場合について説明を行う。フレーム番号T-2の関節番号i=6の関節の3D関節座標をJ
T-2とする。フレーム番号T-1の関節番号i=6の関節の3D関節座標をJ
T-1とする。推定部62は、ステップS2-1、S2-2の順に、処理を実行する。
【0067】
ステップS2-1の処理について説明する。推定部62は、3D関節座標JT-2と、3D関節座標JT-1との距離、および、フレーム間の時間を基にして、関節番号i=6の関節の移動速度v(速度ベクトル)を算出する。推定部62は、3D関節座標JT-1と、移動速度vとを基にして、フレーム番号Tにおける関節番号i=6の3D関節座標Jp,Tを算出する。
【0068】
ステップS2-1の処理について説明する。推定部62は、関節番号i=6の関節と、親関節となる関節番号i=6の関節との長さに合わせて、関節番号i=6の3D関節座標Jp,Tの座標を調整することで、予測3D関節座標Jpred,Tを算出する。
【0069】
図10の説明に移行する。
図10の説明では、異常関節の関節番号を「i」とし、関節番号iの関節(異常関節)を関節iと表記する。推定部62は、骨格認識処理部151から取得する2D特徴31-Nを基にして、視点毎に、各関節の2D関節座標を算出する。フレーム番号T、視点vにおける関節iの2D関節座標を「J
2d v,i,t」とする。フレーム番号T、視点v’における関節iの2D関節座標を「J
2d v’,i,t」とする。
【0070】
図10の説明では、
図9で算出された、関節iの予測3D関節座標を「J
pred,i,t」とする。推定部62は、カメラパラメータを基にして、予測3D関節座標「J
pred,i,t」を、視点vに対応する2次元座標に再投影することで、2D関節座標「J
v,i,t」を算出する。推定部62は、カメラパラメータを基にして、予測3D関節座標「J
pred,i,t」を、視点v’に対応する2次元座標に再投影することで、2D関節座標「J
v’,i,t」を算出する。
【0071】
図10では、説明を省略するが、推定部62は、他の視点についても同様に、予測3D関節座標「J
pred,i,t」を該当する視点の2次元座標に再投影する。
【0072】
推定部62は、予測3D関節座標「J
pred,i,t」を2次元座標に再投影した座標と、該当視点の関節iの座標との距離をそれぞれ算出し、最も距離の小さい関節iの2次元座標を特定する。
図10に示す例では、予測3D関節座標「J
pred,i,t」を2次元座標に再投影した座標との距離が最小となる関節iの座標は、視点vの「J
2d v,i,t」となる。
【0073】
図11の説明に移行する。推定部62は、前準備として、
図10で求めた視点vの「J
2d v,i,t」を3次元座標に逆投影し、カメラ30の原点と、2D関節座標「J
2d v,i,t」の逆投影結果の座標とを通過する3次元の直線40を求める。また、フレーム番号Tの異常関節(関節番号iの関節)の3D関節座標を「J
i,t」とし、異常関節の親関節の3D関節座標を「J
parent,i,t」とする。
【0074】
推定部62は、式(4)に示す目的関数を基にして、関節iの調整後の3D関節座標「J’
i,t」を算出する。推定部62は、実験的に定めた閾値(threshold)を用いて、目的関数を切替えて利用する。式(4)の「r
i、t」は、
図10で説明した、予測3D関節座標を2次元座標に再投影した座標と、各視点の関節iの座標との距離のうち、最小の距離に対応する。たとえば、「J
2d v,i,t」と「J
v,i,t」との距離がr
i、tに対応する。式(4)のw
p、w
l、w
dは、事前に設定される重みである。
【0075】
【0076】
r
i、tが、閾値未満である場合には、式(4)の上段の式が選択される。上段の式において、第1項のw
pp
iは、運動予測の誤差を考慮した項である。「p
i」は、
図11に示すように、予測3D関節座標「J
pred,i,t」と3D関節座標「J’
i,t」との距離である。
【0077】
式(4)の上段の式において、第2項のw
l(L
i-l
i)
2は、関節長さや親関節の認識結果の誤差を考慮した項である。「L
i」は、骨格モデル上の該当関節の長さであり、たとえば関節iと関節iの親関節との長さである。「l
i」は、
図11に示すように、異常関節の親関節の3D関節座標「J
parent,i,t」と、3D関節座標「J’
i,t」との距離である。
【0078】
式(4)の上段の式において、第3項のhiwddiは、2D骨格座標の誤差項である。2D特徴(2Dheatmap)の尤度項(hi)を追加することで、2D骨格認識の精度が低い場合に、推定結果が悪化することを抑止する。hiは、2D特徴31-Tに設定された関節iの尤度である。「di」は、3D関節座標「J’i,t」と直線40との距離である。
【0079】
なお、ri、tが、閾値未満でない場合には、式(4)の下段の式が選択される。
【0080】
推定部62は、式(4)に示す目的関数の値が最小となるような3D関節座標「J’i,t」を探索し、推定結果を置換部63に出力する。推定結果には、フレーム番号、異常関節の関節番号i、関節番号iの関節の調整後の3D関節座標が含まれる。
【0081】
推定部62は、異常関節が複数存在する場合には、
図8で説明した優先度を基にして、順に異常関節の3D関節座標「J’
i,t」を推定し、推定結果を、置換部63に出力する。
【0082】
図6の説明に戻る。置換部63は、推定結果を基にして、異常関節の3D関節座標を、調整後の3D関節座標に置換することで、補正した3D骨格データを生成する。置換部63は、補正した3D骨格データを異常特定部152に出力する。
【0083】
次に、上述した処理を実行する骨格認識装置100の構成例について説明する。
図12は、本実施例に係る骨格認識装置の構成を示す機能ブロック図である。
図12に示すように、この骨格認識装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
【0084】
通信部110は、カメラ30から画像フレームを受信する。通信部110は、受信した画像フレームを制御部150に出力する。通信部110は、通信装置の一例である。通信部110は、図示しない他の外部装置からデータを受信してもよい。
【0085】
入力部120は、骨格認識装置100の制御部150に各種の情報を入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。利用者は、入力部120を操作して、画面情報の表示要求、画面操作などを行う。
【0086】
表示部130は、制御部150から出力される情報を表示する表示装置である。たとえば、表示部130は、各種競技の技認定、採点結果等の画面情報を表示する。表示部130は、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ、タッチパネル等に対応する。
【0087】
記憶部140は、技認識テーブル141等を有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0088】
技認識テーブル141は、各骨格認識結果に含まれる各関節座標の時系列変化と、技の種別とを対応付けるテーブルである。また、技認識テーブル141は、技の種別の組み合わせと、スコアとを対応付ける。スコアは、D(Difficulty)スコアとE(Execution)スコアとの合計で算出される。たとえば、Dスコアは、技の難易度に基づいて算出されるスコアである。Eスコアは、技の完成度に応じて、減点法により算出されるスコアである。
【0089】
制御部150は、骨格認識処理部151、異常特定部152、補正部153、技認識部154を有する。制御部150は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジック等によって実現される。
【0090】
骨格認識処理部151は、カメラ30から画像フレームIM30を取得し、骨格認識処理を実行することで、3D骨格データ32を生成する。骨格認識処理部151は、生成した3D骨格データ32を、異常特定部152に出力する。骨格認識処理部151のその他の処理は、上述した処理と同様である。
【0091】
異常特定部152は、3D骨格データ32に含まれる複数の関節の3D関節座標を基にして、異常のある関節の特定を行う。異常特定部152は、特定した異常のある関節に関する異常関節の情報を、補正部153に出力する。異常特定部152は、異常関節を含まない3D骨格データ32については、そのまま出力し、異常関節を含む3D骨格データ32については、補正部153によって補正された3D骨格データ32に置き換えて、技認識部154に出力する。
【0092】
技認識部154は、フレーム番号の順に3D骨格データ32を取得し、連続する3D骨格データ32を基にして、各関節座標の時系列変化を特定する。技認識部154は、各関節位置の時系列変化と、技認識テーブル141とを比較して、技の種別を特定する。また、技認識部154は、技の種別の組み合わせと、技認識テーブル141とを比較して、被写体H1の演技のスコアを算出する。
【0093】
技認識部154は、演技のスコアと、演技の開始から終了までの骨格認識結果データとを基にして、画面情報を生成する。技認識部155は、生成した画面情報を、表示部130に出力して表示させる。
【0094】
図13は、画面情報の一例を示す図である。
図13に示すように、この画面情報60には、領域60a,60b,60cが含まれる。領域60aは、被写体H1が行った演技において、認識された技の種別を表示する領域である。技の種別に加えて、技の難度も表示してもよい。領域60bは、演技のスコアを表示する領域である。領域60aは、演技の開始から終了までの骨格認識結果データに基づく3次元モデルをアニメーション表示する領域である。利用者は、入力部120を操作して、アニメーションの再生、停止等を指示する。
【0095】
次に、本実施例に係る骨格認識装置100の処理手順の一例について説明する。
図14は、本実施例に係る骨格認識装置の処理手順を示すフローチャートである。
図14に示すように、骨格認識装置100の骨格認識処理部151は、カメラ30から画像フレームを取得する(ステップS101)。骨格認識処理部151は、画像フレームを基にして、2D特徴を生成する(ステップS102)。
【0096】
骨格認識処理部151は、2D特徴を基にして、3D骨格データを推定する(ステップS103)。骨格認識装置100の異常特定部152は、3D骨格データから異常関節を特定した場合には(ステップS104,Yes)、ステップS105に移行する。一方、異常特定部152は、3D骨格データから異常関節を特定しない場合には(ステップS104,No)、ステップS106に移行する。
【0097】
骨格認識処理部151の補正部153は、2D特徴と骨格モデルの運動予測とを基にして、異常関節の3D関節座標を補正する(ステップS105)。異常特定部152は、3D骨格データを出力する(ステップS106)。
【0098】
骨格認識装置100の技認識部154は、3D骨格データを基にして、技認識を実行し、画面情報を生成する(ステップS107)。技認識部154は、画面情報を表示部130に出力して表示させる。
【0099】
次に、本実施例に係る骨格認識装置の効果について説明する。たとえば、従来技術では、複数視点の画像フレームを用いて3D骨格認識を行う場合、2視点以上の画像フレームにおいて、正常な2D骨格認識を行えていないと、3D骨格認識の精度が低下するという問題があった。
【0100】
図15は、従来技術の問題を説明するための図である。
図15に示す2D骨格認識結果70-1は、第1視点の画像フレームから予測された2D骨格認識結果である。2D骨格認識結果70-2は、第2視点の画像フレームから予測された2D骨格認識結果である。2D骨格認識結果70-3は、第3視点の画像フレームから予測された2D骨格認識結果である。2D骨格認識結果70-1,70-2では、右足の骨格認識結果が誤っている。一方、2D骨格認識結果70-3では、右足の骨格認識結果が適切なものとなっている。
【0101】
従来技術において、2D骨格認識結果70-1,70-2,70-3を用いて、3D骨格認識を行うと、3D骨格認識結果71-1,71-2,71-3が得られる。3D骨格認識結果71-1,71-2,71-3では、右足の骨格認識結果が誤っており、3D骨格認識の精度が低下している。
【0102】
これに対して、本実施例に係る骨格認識装置100は、3D骨格データ32に含まれる関節の3D関節座標の異常を特定した場合に、2D特徴と骨格モデルの運動予測とを基にして、異常関節の3D関節座標を修正する。これによって、3D骨格認識の精度を向上させることができる。
【0103】
骨格認識装置100は、画像フレームを基にして生成した2D特徴と、カメラ30のパラメータとを基にして、3D骨格データを推定する。骨格認識装置100は、かかる3D骨格データに異常関節が含まれている場合でも、異常関節を修正して正しい3D骨格データを生成できる。
【0104】
骨格認識装置100は、時系列に3D骨格データを生成し、3D骨格データの関節間の長さ、前後の関節座標の変位を基にして、異常関節を特定する。これによって、異常関節を精度よく特定することができる。
【0105】
骨格認識装置100は、骨格モデルによる運動予測に基づいて、予測3D関節座標Jpred,Tを算出し、式(4)を基にして、異常関節の3D関節座標を推定する。これによって、異常関節の3D関節座標を適切に修正することができる。
【0106】
骨格認識装置100は、2D特徴と骨格モデルの運動予測とを基にして、異常関節の3D関節座標を修正するため、たとえば、骨格認識処理部151で利用するNN等の再訓練を行わなくても、3D骨格データの精度を保つことができ計算コストを削減できる。
【0107】
次に、上記実施例に示した骨格認識装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図16は、実施例の骨格認識装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0108】
図16に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行う通信装置204と、インタフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201~207は、バス208に接続される。
【0109】
ハードディスク装置207は、骨格認識処理プログラム207a、異常特定プログラム207b、補正プログラム207c、技認識プログラム207dを有する。また、CPU201は、各プログラム207a~207dを読み出してRAM206に展開する。
【0110】
骨格認識処理プログラム207aは、骨格認識処理プロセス206aとして機能する。異常特定プログラム207bは、異常特定プロセス206bとして機能する。補正プログラム207cは、補正プロセス206cとして機能する。技認識プログラム207dは、技認識プロセス206dとして機能する。
【0111】
骨格認識処理プロセス206aの処理は、骨格認識処理部151の処理に対応する。異常特定プロセス206bの処理は、異常特定部152の処理に対応する。補正プロセス206cの処理は、補正部153の処理に対応する。技認識プロセス206dの処理は、技認識部154の処理に対応する。
【0112】
なお、各プログラム207a~207dについては、必ずしも最初からハードディスク装置207に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a~207dを読み出して実行するようにしてもよい。
【0113】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0114】
(付記1)画像に含まれる人物の関節が存在する位置の尤度を示す複数方向からの2次元の特徴量に基づいて、前記人物の3次元の骨格情報を生成し、
前記人物の関節の位置情報を有する3次元の骨格モデルに基づいて、生成した前記人物の3次元の骨格情報に含まれる複数の関節の中から、前記関節の位置が異常である関節を特定し、
前記人物の関節の位置の時系列の変化から予測される関節の位置と、前記2次元の特徴量とに基づいて、前記異常である関節の位置を補正する
処理をコンピュータに実行させることを特徴とする骨格認識プログラム。
【0115】
(付記2)前記3次元の骨格情報を生成する処理は、前記2次元の特徴量と、前記画像を撮影したカメラのパラメータを基にして、3次元座標と前記3次元座標に所定の関節が存在する尤度とを対応付けた3次元の特徴量を生成し、前記3次元の特徴量を基にして、前記3次元の骨格情報を生成することを特徴とする付記1に記載の骨格認識プログラム。
【0116】
(付記3)3次元の骨格情報を生成する処理は、時系列の画像を基に生成される時系列の2次元の特徴量を基にして、時系列の3次元の骨格情報を生成し、前記特定する処理は、前記3次元の骨格情報に含まれる関節間の長さ、または、時系列の3次元の骨格情報における同一関節の前後の変位を基にして、前記3次元座標に異常を有する関節を特定することを特徴とする付記1または2に記載の骨格認識プログラム。
【0117】
(付記4)前記補正する処理は、前記骨格モデルによる運動予測に基づいて、前記異常を有する関節の予測される3次元座標を特定し、前記異常を有する関節の親関節の3次元座標と、前記異常を有する関節の3次元座標と、予測される前記3次元座標との関係から、前記異常を有する関節の3次元座標を補正することを特徴とする付記1に記載の骨格認識プログラム。
【0118】
(付記5)前記補正する処理は、前記親関節の3次元座標および前記異常を有する関節の3次元座標の距離と前記骨格モデルに基づく関節間の距離との差分値、および、前記異常を有する関節の3次元座標と予測される前記3次元座標との距離の合計値が最小となるように、前記異常を有する関節の3次元座標を補正することを特徴とする付記4に記載の骨格認識プログラム。
【0119】
(付記6)画像に含まれる人物の関節が存在する位置の尤度を示す複数方向からの2次元の特徴量に基づいて、前記人物の3次元の骨格情報を生成し、
前記人物の関節の位置情報を有する3次元の骨格モデルに基づいて、生成した前記人物の3次元の骨格情報に含まれる複数の関節の中から、前記関節の位置が異常である関節を特定し、
前記人物の関節の位置の時系列の変化から予測される関節の位置と、前記2次元の特徴量とに基づいて、前記異常である関節の位置を補正する
処理をコンピュータが実行することを特徴とする骨格認識方法。
【0120】
(付記7)前記3次元の骨格情報を生成する処理は、前記2次元の特徴量と、前記画像を撮影したカメラのパラメータを基にして、3次元座標と前記3次元座標に所定の関節が存在する尤度とを対応付けた3次元の特徴量を生成し、前記3次元の特徴量を基にして、前記3次元の骨格情報を生成することを特徴とする付記6に記載の骨格認識方法。
【0121】
(付記8)3次元の骨格情報を生成する処理は、時系列の画像を基に生成される時系列の2次元の特徴量を基にして、時系列の3次元の骨格情報を生成し、前記特定する処理は、前記3次元の骨格情報に含まれる関節間の長さ、または、時系列の3次元の骨格情報における同一関節の前後の変位を基にして、前記3次元座標に異常を有する関節を特定することを特徴とする付記6または7に記載の骨格認識方法。
【0122】
(付記9)前記補正する処理は、前記骨格モデルによる運動予測に基づいて、前記異常を有する関節の予測される3次元座標を特定し、前記異常を有する関節の親関節の3次元座標と、前記異常を有する関節の3次元座標と、予測される前記3次元座標との関係から、前記異常を有する関節の3次元座標を補正することを特徴とする付記6に記載の骨格認識方法。
【0123】
(付記10)前記補正する処理は、前記親関節の3次元座標および前記異常を有する関節の3次元座標の距離と前記骨格モデルに基づく関節間の距離との差分値、および、前記異常を有する関節の3次元座標と予測される前記3次元座標との距離の合計値が最小となるように、前記異常を有する関節の3次元座標を補正することを特徴とする付記9に記載の骨格認識方法。
【0124】
(付記11)画像に含まれる人物の関節が存在する位置の尤度を示す複数方向からの2次元の特徴量に基づいて、前記人物の3次元の骨格情報を生成し、
前記人物の関節の位置情報を有する3次元の骨格モデルに基づいて、生成した前記人物の3次元の骨格情報に含まれる複数の関節の中から、前記関節の位置が異常である関節を特定し、
前記人物の関節の位置の時系列の変化から予測される関節の位置と、前記2次元の特徴量とに基づいて、前記異常である関節の位置を補正する制御部を有する
ことを特徴とする骨格認識装置。
【0125】
(付記12)前記3次元の骨格情報を生成する処理は、前記2次元の特徴量と、前記画像を撮影したカメラのパラメータを基にして、3次元座標と前記3次元座標に所定の関節が存在する尤度とを対応付けた3次元の特徴量を生成し、前記3次元の特徴量を基にして、前記3次元の骨格情報を生成することを特徴とする付記11に記載の骨格認識装置。
【0126】
(付記13)3次元の骨格情報を生成する処理は、時系列の画像を基に生成される時系列の2次元の特徴量を基にして、時系列の3次元の骨格情報を生成し、前記特定する処理は、前記3次元の骨格情報に含まれる関節間の長さ、または、時系列の3次元の骨格情報における同一関節の前後の変位を基にして、前記3次元座標に異常を有する関節を特定することを特徴とする付記11または12に記載の骨格認識装置。
【0127】
(付記14)前記補正する処理は、前記骨格モデルによる運動予測に基づいて、前記異常を有する関節の予測される3次元座標を特定し、前記異常を有する関節の親関節の3次元座標と、前記異常を有する関節の3次元座標と、予測される前記3次元座標との関係から、前記異常を有する関節の3次元座標を補正することを特徴とする付記11に記載の骨格認識装置。
【0128】
(付記15)前記補正する処理は、前記親関節の3次元座標および前記異常を有する関節の3次元座標の距離と前記骨格モデルに基づく関節間の距離との差分値、および、前記異常を有する関節の3次元座標と予測される前記3次元座標との距離の合計値が最小となるように、前記異常を有する関節の3次元座標を補正することを特徴とする付記14に記載の骨格認識装置。