IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7533765骨格認識方法、骨格認識プログラムおよび体操採点支援システム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】骨格認識方法、骨格認識プログラムおよび体操採点支援システム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240806BHJP
   G06V 10/82 20220101ALI20240806BHJP
【FI】
G06T7/00 660B
G06T7/00 350C
G06V10/82
【請求項の数】 6
(21)【出願番号】P 2023504918
(86)(22)【出願日】2021-03-09
(86)【国際出願番号】 JP2021009267
(87)【国際公開番号】W WO2022190206
(87)【国際公開日】2022-09-15
【審査請求日】2023-07-13
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鈴木 達也
(72)【発明者】
【氏名】石川 優
【審査官】松浦 功
(56)【参考文献】
【文献】米国特許出願公開第2019/0251341(US,A1)
【文献】国際公開第2020/054442(WO,A1)
【文献】国際公開第2020/084667(WO,A1)
【文献】CHEN, Long et al.,Cross-View Tracking for Multi-Human 3D Pose Estimation at Over 100 FPS,2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) [online],IEEE,2020年06月,pp. 3276-3285,[検索日 2024.03.07],インターネット,URL:https://ieeexplore.ieee.org/document/9156586
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
A61B 5/107 - 5/11
G01C 3/06
G06T 1/00
G01B 11/00 -11/26
G06V 10/00 -20/90
Google Scholar
(57)【特許請求の範囲】
【請求項1】
コンピュータが実行する骨格認識方法であって、
被写体を撮影する複数のカメラから入力される2次元の入力画像を基にして、前記被写体の2次元の関節位置の特徴を示す複数の第1特徴を抽出し、
前記複数の第1特徴を基にして、前記被写体の所定数の関節にそれぞれ対応させた複数の第2特徴であって、座標と前記座標に所定の関節が存在する尤度とを対応付けたheatmap情報を示す前記第2特徴を含む第2特徴群情報を生成し、
前記heatmap情報と、予め特定される理想的な尤度の分布情報との差分を基にして、前記第2特徴群情報から、異常のある第2特徴を検知し、
前記第2特徴群情報から、前記異常のある第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する
処理を実行することを特徴とする骨格認識方法。
【請求項2】
前記生成する処理は、時系列に複数の第2特徴群情報を生成し、
前記検知する処理は、前回の第2特徴群情報を基に特定される所定の関節の組を始点および終点とする第1ベクトルと、今回の第2特徴群情報を基に特定される所定の関節の組を始点および終点とする第2ベクトルとを基にして、異常のある第2特徴を検知することを特徴とする請求項1に記載の骨格認識方法。
【請求項3】
前記検知する処理は、前記第2特徴群情報を基にして、所定の関節から特定される領域と、前記所定の関節以外の関節の位置との関係を基にして、異常のある第2特徴を検知することを特徴とする請求項2に記載の骨格認識方法。
【請求項4】
前記検知する処理は、前記heatmap情報を基にして、カメラ位置を視点とする複数のエピポーラ線を算出し、前記エピポーラ線の交点と、関節の位置との距離を基にして、異常のある第2特徴を検知することを特徴とする請求項に記載の骨格認識方法。
【請求項5】
コンピュータに、
被写体を撮影する複数のカメラから入力される2次元の入力画像を基にして、前記被写体の2次元の関節位置の特徴を示す複数の第1特徴を抽出し、
前記複数の第1特徴を基にして、前記被写体の所定数の関節にそれぞれ対応させた複数の第2特徴であって、座標と前記座標に所定の関節が存在する尤度とを対応付けたheatmap情報を示す前記第2特徴を含む第2特徴群情報を生成し、
前記heatmap情報と、予め特定される理想的な尤度の分布情報との差分を基にして、前記第2特徴群情報から、異常のある第2特徴を検知し、
前記第2特徴群情報から、前記異常のある第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する
処理を実行させることを特徴とする骨格認識プログラム。
【請求項6】
被写体を撮影する複数のカメラと、骨格認識装置とを有する体操採点支援システムであって、
前記骨格認識装置は、
前記複数のカメラから入力される2次元の入力画像を取得する取得部と、
前記入力画像を基にして、前記被写体の2次元の関節位置の特徴を示す複数の第1特徴を抽出し、前記複数の第1特徴を基にして、前記被写体の所定数の関節にそれぞれ対応させた複数の第2特徴であって、座標と前記座標に所定の関節が存在する尤度とを対応付けたheatmap情報を示す前記第2特徴を含む第2特徴群情報を生成する生成部と、
前記heatmap情報と、予め特定される理想的な尤度の分布情報との差分を基にして、前記第2特徴群情報から、異常のある第2特徴を検知する検知部と、
前記第2特徴群情報から、前記異常のある第2特徴を除去した残りの複数の第2特徴を合成した結果を基にして、3D骨格を認識する骨格認識部と
を有することを特徴とする体操採点支援システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、骨格認識方法等に関する。
【背景技術】
【0002】
3次元の人の動きの検出に関しては、複数台の3Dレーザセンサから人の3D骨格座標を±1cmの精度で検出する3Dセンシング技術が確立されている。この3Dセンシング技術は、体操採点支援システムへの応用や、他のスポーツ、他分野への展開が期待されている。3Dレーザセンサを用いた方式を、レーザ方式と表記する。
【0003】
レーザ方式では、レーザを1秒間に約200万回照射し、レーザの走行時間(Time of Flight:ToF)を基に、対象となる人を含めて、各照射点の深さや情報を求める。レーザ方式は、高精度な深度データを取得できるが、レーザスキャンやToF測定の構成および処理が複雑であるため、ハードウェアが複雑および高価になるという欠点がある。
【0004】
レーザ方式の代わりに、画像方式によって、3D骨格認識を行う場合もある。画像方式では、CMOS(Complementary Metal Oxide Semiconductor)イメージャによって、各ピクセルのRGB(Red Green Blue)データを取得する方式であり、安価なRGBカメラを用いることができる。
【0005】
ここで、複数カメラによる2D特徴を用いた3D骨格認識の従来技術について説明する。従来技術では、事前に定義された人体モデルに従って、各カメラで2D特徴を取得した後、各2D特徴を統合した結果を用いて、3D骨格を認識する。たとえば、2D特徴は、2D骨格情報、heatmap情報が上げられる。
【0006】
図22は、人体モデルの一例を示す図である。図22に示すように、人体モデルM1は、21個の関節で構成される。人体モデルM1では、各関節をノードで示し、0~20の番号を割り当てる。ノードの番号と、関節名との関係は、テーブルTe1に示す関係となる。たとえば、ノード0に対応する関節名は「SPINE_BASE」となる。ノード1~20に対する関節名の説明を省略する。
【0007】
従来技術には、三角測量を用いた手法、機械学習を用いた手法がある。三角測量を用いた手法には、カメラ2台による三角測量と、カメラ3台以上による三角測量がある。便宜的に、カメラ2台による三角測量を、従来技術1、カメラ3台以上による三角測量を、従来技術2、機械学習を用いた手法を、従来技術3とする。
【0008】
図23は、カメラ2台による三角測量を説明するための図である。従来技術1において、三角測量とは、2台のカメラCa1A,Ca1Bの特徴を使って、三角形の関係から被写体Pの3次元位置を測定する方法と定義する。カメラCa1Aのカメラ画像をIm2Aとし、カメラCa1Bのカメラ画像をIm2Bとする。
【0009】
被写体Pのカメラ画像Im2Aの2D関節位置をp(x,y)とする。被写体Pのカメラ画像Im2Aの2D関節位置をp(x,y)とする。また、カメラ間の距離をbとし、焦点距離をfとする。従来技術1では、2D関節位置をp(x,y)、p(x,y)を特徴とし、3次元関節位置P(X,Y,Z)を、式(1)、式(2)、式(2)により算出する。(X,Y,Z)の原点は、2つのカメラCa1A,Ca1Bの光学中心の中央にあるものとする。
【0010】
【数1】
【数2】
【数3】
【0011】
図23で説明した従来技術1では、3D骨格を求める際に誤った2D特徴が使用されると3D骨格の精度が低下してしまう。
【0012】
図24は、カメラ3台による三角測量を説明するための図である。カメラ3台による三角測量では、図23で説明した三角測量を、3台以上のカメラに拡張し、RANSAC(Random Sample Consensus)と呼ばれるアルゴリズムにより、最も良いカメラの組み合わせを推定する。
【0013】
図24に示すように、従来技術2の装置は、全てのカメラ1-1,1-2,1-3,1-4で、被写体の2D関節位置を取得する(ステップS1)。従来技術2の装置は、全てのカメラ1-1~1-4から、2つのカメラの組み合わせを選択し、図23で説明した三角測量によって、3D関節位置を算出する(ステップS2)。
【0014】
従来技術2の装置は、3D骨格を全てのカメラ1-1~1-4に再投影して、2D関節位置とのずれが閾値以下となるカメラの数をカウントする(ステップS3)。従来技術2の装置は、ステップS2、S3の処理を繰り返し実行し、2D関節位置とのずれが閾値以下となるカメラの数が最も多い2つのカメラの組み合わせを、最も良いカメラの組み合わせとして採用する(ステップS4)。
【0015】
図24で説明した従来技術2では、3D骨格を求める際に最適な2つのカメラを探索するために処理時間を要してしまう。
【0016】
機械学習を用いた手法では、三角測量を用いた手法と比較して、高精度かつ高速に、3D骨格を認識することが可能となる。
【0017】
図25は、機械学習を用いた手法を説明するための図である。機械学習を用いた従来技術3では、各カメラが撮影した各入力画像21に対して、2D backbone処理21aをかけることで、各関節特徴を表す2D特徴(2D features)22を取得する。従来技術3では、各2D特徴22をカメラパラメータに従って3Dcubeに逆投影することで、aggregated volumes23を取得する。
【0018】
従来技術3では、aggregated volumes23を、V2V(ニューラルネットワーク、P3)24に入力することで、各関節の尤度を表すprocessed volumes25を取得する。processed volumes25は、各関節の3Dでの尤度を表すheatmapに対応する。従来技術3では、processed volumes25に対して、soft-argmax26を実行することで、3D骨格情報27を取得する。
【先行技術文献】
【特許文献】
【0019】
【文献】特開平10-302070号公報
【文献】特開2000-251078号公報
【発明の概要】
【発明が解決しようとする課題】
【0020】
しかしながら、従来技術3では、誤った2D特徴を用いて3D骨格認識を実行する場合があり、正しい3D骨格認識結果を得ることができないという問題がある。
【0021】
図26は、従来技術3の問題を説明するための図である。ここでは、一例として、4台のカメラ2-1,2-2,2-3,2-4を用いて、3D骨格を認識する場合について説明する。カメラ2-1,2-2,2-3,2-4が撮影した入力画像をそれぞれ、入力画像Im2-1a,Im2-2a,Im2-3a,Im2-4aとする。このうち、入力画像Im2-3aでは、被写体の顔が見えづらく、左右の区別が難しい画像となっている。入力画像Im2-4aでは、領域Ar1において、左膝オクルージョンが発生している。
【0022】
従来技術3では、入力画像Im2-1aに、2D backbone処理21aをかけることで、2D特徴が算出され、この2D特徴により、2D骨格情報Im2-1bが生成される。入力画像Im2-2a,Im2-3a、Im2-4aについても、2D backbone処理21aをかけることで、2D特徴が算出され、この2D特徴により、2D骨格情報Im2-2b,Im2-3b,Im2-4bが生成される。2D骨格情報Im2-1b~Im2-4bは、2Dの骨格の位置を示すものである。
【0023】
ここで、入力画像Im2-3aでは、被写体の顔が見えづらいため、2D姿勢情報Im2-3bの領域Ar2において、骨格の関係が左右反転している。入力画像Im2-4aで発生した左膝オクルージョンの影響により、2D姿勢情報Im2-4bの領域Ar3において、左膝に関連した2D骨格が誤った特徴をとらえている。
【0024】
従来技術3では、2D姿勢情報Im2-1b~Im2-4bの基となる2D特徴をそのまま用いて、3D骨格認識結果Im2-1c,Im2-2c,Im2-3c,Im2-4cを算出する。すなわち、2D姿勢情報Im2-3b,Im2-4bに対応する2D特徴が誤っていても、かかる2D特徴を用いて、3D骨格を認識するため、精度が低下する。たとえば、図26に示す例では、誤りの特徴の多かった左膝に大きな精度の低下が発生する。
【0025】
1つの側面では、本発明は、正しく3D骨格認識を実行することができる、骨格認識方法、骨格認識プログラムおよび体操採点支援システムを提供することを目的とする。
【課題を解決するための手段】
【0026】
第1の案では、コンピュータは、次の処理を実行する。コンピュータは、被写体を撮影する複数のカメラから入力される2次元の入力画像を基にして、被写体の2次元の関節位置の特徴を示す複数の第1特徴を抽出する。コンピュータは、複数の第1特徴を基にして、被写体の所定数の関節にそれぞれ対応させた複数の第2特徴を含む第2特徴群情報を生成する。コンピュータは、第2特徴群情報から、異常のある第2特徴を検知する。コンピュータは、第2特徴群情報から、異常のある第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する。
【発明の効果】
【0027】
3D骨格認識結果に異常を与えてしまう2D特徴を判定することで、異常のある2D特徴を事前に除去することができ、正しく3D骨格認識を実行することができる。
【図面の簡単な説明】
【0028】
図1図1は、本実施例に係る体操採点支援システムの一例を示す図である。
図2図2は、2D特徴を説明するための図である。
図3図3は、一つの2D特徴を示す図である。
図4図4は、本実施例に係る骨格認識装置の構成を示す機能ブロック図である。
図5図5は、測定テーブルのデータ構造の一例を示す図である。
図6図6は、特徴テーブルのデータ構造の一例を示す図である。
図7図7は、生成部の処理を説明するための図である。
図8図8は、左右反転検知を説明するための図(1)である。
図9図9は、左右反転検知を説明するための図(2)である。
図10図10は、セルフオクルージョン検知を説明するための図である。
図11図11は、異常heatmapのパターンを説明するための図である。
図12図12は、第1の異常heatmap検知処理について説明するための図である。
図13図13は、ネットワークの自動重み調整の一例を説明するための図である。
図14図14は、第2の異常heatmap検知処理について説明する図(1)である。
図15図15は、第2の異常heatmap検知処理について説明する図(2)である。
図16図16は、画面情報の一例を示す図である。
図17図17は、本実施例に係る骨格認識装置の処理手順を示すフローチャートである。
図18図18は、第2特徴生成処理のフローチャートである。
図19図19は、異常検知処理のフローチャートである。
図20図20は、本実施例に係る骨格認識装置の効果を説明するための図である。
図21図21は、骨格認識装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図22図22は、人体モデルの一例を示す図である。
図23図23は、カメラ2台による三角測量を説明するための図である。
図24図24は、カメラ3台による三角測量を説明するための図である。
図25図25は、機械学習を用いた手法を説明するための図である。
図26図26は、従来技術3の問題を説明するための図である。
【発明を実施するための形態】
【0029】
以下に、本願の開示する骨格認識方法、骨格認識プログラムおよび体操採点支援システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例
【0030】
図1は、本実施例に係る体操採点支援システムの一例を示す図である。図1に示すように、この体操採点支援システム35は、カメラ30a,30b,30c,30dと、骨格認識装置100とを有する。カメラ30a~30dと、骨格認識装置100とは、有線または無線によってそれぞれ接続されている。図1では、カメラ30a~30dを示すが、この体操採点支援システム35は、他のカメラを更に有していてもよい。
【0031】
本実施例では一例として、被写体H1が、器具上で一連の演技を行うものとするがこれに限定されるものではない。たとえば、被写体H1は、器具の存在しない場所で演技を行ってもよいし、演技以外の動作を行ってもよい。
【0032】
カメラ30aは、被写体H1の画像を撮影するカメラである。カメラ30aは、CMOSイメージャ、RGBカメラ等に対応する。カメラ30aは、所定のフレームレート(frames per second:FPS)によって、画像を連続して撮影し、時系列に画像のデータを骨格認識装置100に送信する。以下の説明では、連続する複数の画像のデータのうち、ある一つの画像のデータを「画像フレーム」と表記する。画像フレームには、時系列にフレーム番号が付与される。
【0033】
カメラ30b,30c,30dに関する説明は、カメラ30aに関する説明と同様である。以下の説明では、適宜、カメラ30a~30dをまとめて「カメラ30」と表記する。
【0034】
骨格認識装置100は、カメラ30から画像フレームを取得し、画像フレームを基にして、被写体H1の関節にそれぞれ対応する複数の第2特徴を生成する。第2特徴は、各関節位置の尤度を示すheatmapである。1つのカメラから取得した1つの画像フレームから、各関節に対応する第2特徴が生成される。たとえば、関節数を21個、カメラの数を4個とすると、画像フレーム毎に、84個の第2特徴が生成される。
【0035】
図2は、第2特徴を説明するための図である。図2に示す画像フレームIm30a1は、カメラ30aに撮影された画像フレームである。画像フレームIm30b1は、カメラ30bに撮影された画像フレームである。画像フレームIm30c1は、カメラ30cに撮影された画像フレームである。画像フレームIm30d1は、カメラ30dに撮影された画像フレームである。
【0036】
骨格認識装置100は、画像フレームIm30a1を基にして、第2特徴群情報G1aを生成する。第2特徴群情報G1aには、各関節に対応する21個の第2特徴が含まれる。骨格認識装置100は、画像フレームIm30b1を基にして、第2特徴群情報G1bを生成する。第2特徴群情報G1bには、各関節に対応する21個の第2特徴が含まれる。
【0037】
骨格認識装置100は、画像フレームIm30c1を基にして、第2特徴群情報G1cを生成する。第2特徴群情報G1cには、各関節に対応する21個の第2特徴が含まれる。骨格認識装置100は、画像フレームIm30d1を基にして、第2特徴群情報G1dを生成する。第2特徴群情報G1dには、各関節に対応する21個の第2特徴が含まれる。
【0038】
図3は、一つの第2特徴を示す図である。図3に示す第2特徴Gc1-3は、第2特徴群情報G1dに含まれる第2特徴のうち、関節「HEAD」に対応する第2特徴である。第2特徴Gc1-3の各ピクセルには、尤度が設定される。図3では、尤度の値に応じた色が設定される。尤度が最大となる箇所が、該当する関節の座標となる。たとえば、特徴Gc1-3において、尤度の値が最大となる領域Ac1-3が、関節「HEAD」の座標であることが特定できる。
【0039】
骨格認識装置100は、第2特徴群情報G1aに含まれる第2特徴から、異常のある第2特徴を検知し、検知した異常のある第2特徴を、第2特徴群情報G1aから除去する。骨格認識装置100は、第2特徴群情報G1bに含まれる第2特徴から、異常のある第2特徴を検知し、検知した異常のある第2特徴を、第2特徴群情報G1bから除去する。
【0040】
骨格認識装置100は、第2特徴群情報G1cに含まれる第2特徴から、異常のある第2特徴を検知し、検知した異常のある第2特徴を、第2特徴群情報G1cから除去する。骨格認識装置100は、第2特徴群情報G1dに含まれる第2特徴から、異常のある第2特徴を検知し、検知した異常のある第2特徴を、第2特徴群情報G1dから除去する。
【0041】
骨格認識装置100は、異常のある第2特徴を除いた第2特徴群情報G1a,G1b,G1c,G1dを統合し、統合した結果を基にして、3D骨格を認識する。
【0042】
上記のように、骨格認識装置100によれば、画像フレームを基にして、被写体H1の関節とそれぞれ対応付けた複数の第2特徴を生成し、異常が検知された第2特徴を除いた残りの第2特徴を合成した結果を用いて3D骨格を認識する。このため、正しい3D骨格の認識結果を得ることができる。
【0043】
次に、本実施例に係る骨格認識装置100の構成の一例について説明する。図4は、本実施例に係る骨格認識装置の構成を示す機能ブロック図である。図4に示すように、この骨格認識装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
【0044】
通信部110は、カメラ30から画像フレームを受信する。通信部110は、受信した画像フレームを制御部150に出力する。通信部110は、通信装置の一例である。通信部110は、図示しない他の外部装置からデータを受信してもよい。
【0045】
入力部120は、骨格認識装置100の制御部150に各種の情報を入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。利用者は、入力部120を操作して、画面情報の表示要求、画面操作などを行う。
【0046】
表示部130は、制御部150から出力される情報を表示する表示装置である。たとえば、表示部130は、各種競技の技認定、採点結果等の画面情報を表示する。表示部130は、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ、タッチパネル等に対応する。
【0047】
記憶部140は、測定テーブル141、特徴テーブル142、技認識テーブル143を有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0048】
測定テーブル141は、カメラ30により撮影される画像フレームを時系列に格納するテーブルである。図5は、測定テーブルのデータ構造の一例を示す図である。図5に示すように、測定テーブル141は、カメラ識別情報と、画像フレームとを対応付ける。
【0049】
カメラ識別情報は、カメラを一意に識別する情報である。たとえば、カメラ識別情報「C30a」は、カメラ30aに対応し、カメラ識別情報「C30b」は、カメラ30bに対応し、カメラ識別情報「C30c」は、カメラ30cに対応し、カメラ識別情報「C30d」は、カメラ30dに対応する。画像フレームは、該当するカメラ30に撮影された時系列の画像フレームである。各画像フレームには、時系列にフレーム番号が設定されるものとする。
【0050】
特徴テーブル142は、第2特徴に関する情報を保持するテーブルである。図6は、特徴テーブルのデータ構造の一例を示す図である。図6に示すように、特徴テーブル142は、カメラ識別情報と、第1特徴と、第2特徴群情報とを有する。カメラ識別情報に関する説明は、図5で説明したカメラ識別情報に関する説明と同様である。
【0051】
第1特徴は、1つの画像フレームに対して、2D backbone処理を実行することで算出される被写体H1の関節に関する特徴情報である。一つの画像フレームから、一つのカメラにつき、K個の第1特徴が生成される。すなわち、画像フレーム毎、カメラ毎に、K個の第1特徴が生成され、特徴テーブル142に格納される。なお、「K」は、関節数とは異なる数となり、関節数よりも多い数となる。
【0052】
第2特徴群情報は、各関節に1対1に対応するJ個の第2特徴を有する。一つの画像フレームから生成されたK個の第1特徴から、J個の第2特徴が生成される。また、J個の第2特徴は、カメラ毎に生成される。すなわち、画像フレーム毎、カメラ毎に、J個の第2特徴が生成され、特徴テーブル142に格納される。なお、「J」は、関節数「21」と同じ数となり、各第2特徴は、各関節に対応付けられる。第2特徴群情報の説明は、図2で説明した内容に対応する。
【0053】
図示を省略するが、K個の第1特徴の情報、J個の第2特徴の情報には、対応する画像フレームのフレーム番号が設定されているものとする。
【0054】
図4の説明に戻る。技認識テーブル143は、各骨格認識結果に含まれる各関節位置の時系列変化と、技の種別とを対応付けるテーブルである。また、技認識テーブル143は、技の種別の組み合わせと、スコアとを対応付ける。スコアは、D(Difficulty)スコアとE(Execution)スコアとの合計で算出される。たとえば、Dスコアは、技の難易度に基づいて算出されるスコアである。Eスコアは、技の完成度に応じて、減点法により算出されるスコアである。
【0055】
制御部150は、取得部151、生成部152、検知部153、骨格認識部154、技認識部155を有する。制御部150は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジック等によって実現される。
【0056】
取得部151は、通信部110を介して、カメラ30から時系列に画像フレームを取得する。取得部151は、カメラ30から取得した画像フレームを、カメラ識別情報と対応付けて、測定テーブル141に格納する。
【0057】
生成部152は、画像フレームを基にして、第2特徴群情報を生成する。図7は、生成部の処理を説明するための図である。図7に示すように、生成部152は、2D特徴抽出NN142A、チャネル数変換NN142Bを利用する。
【0058】
2D特徴抽出NN142Aは、ResNet等のNN(Neural Network)に対応する。2D特徴抽出NN142Aは、画像フレームが入力された場合に、訓練済みのパラメータを基にして、K個の第1特徴を算出して、出力する。たとえば、1つの第1特徴は、96×96のピクセル画像であり、各ピクセルには、いずれかの関節に関する尤度が設定される。K個の第1特徴は、各関節と、1対1に対応しているものではない。2D特徴抽出NN142Aは、予め訓練データによって、パラメータが訓練(機械学習)されているものとする。
【0059】
チャネル数変換NN142Bは、NNのConv2D層等に対応する。チャネル数変換NN142Bは、K個の第1特徴が入力された場合に、訓練済みのパラメータを基にして、J個の第2特徴を算出して、出力する。J個の第2特徴は、各関節と1対1に対応している。チャネル数変換NN142Bは、予め訓練データによって、パラメータが訓練(機械学習)されているものとする。
【0060】
生成部152は、測定テーブル141から、カメラ30aの画像フレームを取得し、取得した画像フレームを、2D特徴抽出NN142Aに入力することで、K個の第1特徴を抽出する。生成部152は、K個の第1特徴を、カメラ識別情報C30aに対応付けて、特徴テーブル142に登録する。
【0061】
また、生成部152は、K個の第1特徴を、チャネル数変換NN142Bに入力することで、J個の第2特徴を生成する。生成部152は、J個の第2特徴を、カメラ識別情報C30aに対応付けて、特徴テーブル142に登録する。生成部152は、カメラ30aの時系列の各画像フレームに対して、上記処理を繰り返し実行することで、カメラ30aに対応するJ個の第2特徴の情報を生成する。
【0062】
生成部152は、カメラ30b,30c,30dの画像フレームについても、カメラ30aの画像フレームと同様にして、K個の第1特徴を抽出し、J個の第2特徴の情報を生成する。なお、K個の第1特徴、J個の第2特徴には、フレーム番号が付与される。
【0063】
たとえば、フレーム番号「n」の画像フレームを基に抽出されたK個の第1特徴には、フレーム番号「n」が付与される。また、フレーム番号「n」が付与されたK個の第1特徴を基に生成されるJ個の第2特徴(第2特徴群情報)には、フレーム番号「n」が付与される。
【0064】
検知部153は、特徴テーブル142に格納されたJ個の第2特徴の情報を基にして、異常な関節を検知する。たとえば、検知部153は、左右反転検知、セルフオクルージョン検知、異常heatmap検知を実行することで、異常な関節を検知する。
【0065】
検知部153が実行する左右反転検知について説明する。ここでは、カメラ30aが撮影した画像フレームに基づいて生成されたフレーム番号n-1の第2特徴群情報と、フレーム番号nの第2特徴群情報とを用いて説明を行う。
【0066】
検知部153は、フレーム番号n-1の第2特徴群情報に含まれるJ個の第2特徴を基にして、各関節の座標を算出する。たとえば、図3の関節「HEAD」に対応する第2特徴Gc1-3を用いて説明する。検知部153は、第2特徴Gc1-3の各ピクセルに設定された尤度のうち、最大の尤度が設定されたピクセルの座標を「HEAD」の座標として算出する。検知部153は、他の関節に対応する第2特徴についても、同様の処理を実行することで、フレーム番号n-1の各関節の座標(2次元の座標)を算出する。
【0067】
検知部153は、フレーム番号nの第2特徴群情報に含まれるJ個の第2特徴を基にして、各関節の座標を算出する。検知部153が、フレーム番号nの第2特徴群情報を基にして、各関節の座標を算出する処理は、フレーム番号nの第2特徴群情報を基にして、各関節の座標を算出する処理と同様である。
【0068】
図8は、左右反転検知を説明するための図(1)である。図8において、モデルM1-1は、フレーム番号n-1の各関節の座標を基に生成される2次元骨格情報である。モデルM1-2は、フレーム番号nの各関節の座標を基に生成される2次元骨格情報である。図8では、説明の便宜上、一部の関節の図示を省略する。
【0069】
検知部153は、所定の左側の関節を始点とし、所定の右側の関節を終点とするベクトルを計算する。たとえば、モデルM1-1では、ベクトルva1,va2,va3,va4,va5,va6を示す。図22で説明した関節を用いて説明すると、ベクトルva1は、ノード13を始点とし、ノード17を終点とするベクトルである。ベクトルva2は、ノード11を始点とし、ノード15を終点とするベクトルである。ベクトルva3は、ノード19を始点とし、ノード20を終点とするベクトルである。ベクトルva4は、ノード10を始点とし、ノード14を終点とするベクトルである。ベクトルva5は、ノード5を始点とし、ノード8を終点とするベクトルである。ベクトルva6は、ノード4を始点とし、ノード7を終点とするベクトルである。
【0070】
検知部153は、モデルM1-2についても同様にして、所定の左側の関節を始点とし、所定の右側の関節を終点とするベクトルを計算する。ここでは、一例として、ベクトルvb3を示す。
【0071】
検知部153は、モデルM1-1と、モデルM1-2において、始点の関節と終点の関節とが同一となるベクトルをペアとする。図8に示す例では、モデルM1-1のベクトルva3と、モデルM1-2のベクトルvb3とがペアとなる。検知部153は、ペアのベクトルのノルムを比較し、前フレーム(フレーム番号n-1)から所定値以上、ノルムが小さくなっている場合に、該当するベクトルのペアを検知する。
【0072】
たとえば、検知部153は、ベクトルva3のノルムから、ベクトルvb3のノルムを減算した値が、所定値以上である場合に、ベクトルva3,vb3を検知する。検知部153は、他のベクトルのペアについても同様の処理を実行する。この処理によって、検知部153が検知したベクトルのペアを、第1検知ベクトルペアと表記する。
【0073】
検知部153は、第1検知ベクトルペアの関節の座標の移動量を比較し、移動量の大きい方の関節を、異常関節として検知する。たとえば、検知部153は、ベクトルva3と、ベクトルvb3とを比較すると、始点の関節の移動量よりも、終点の関節の移動量の方が大きいため、モデルM1-2の終点の関節(ノード20:HAND_TIP_RIGHT)を異常関節として検知する。なお、モデルM1-2の基となる第2特徴群情報が、カメラ30aの撮影した画像フレームに基づく第2特徴群情報であるとする。この場合、検知部153は、「カメラ識別情報:C30a、フレーム番号:n、異常関節:HAND_TIP_RIGHT」を含む異常関節情報を生成する。
【0074】
図9は、左右反転検知を説明するための図(2)である。図9において、モデルM1-1は、フレーム番号n-1の各関節の座標を基に生成される2次元骨格情報である。モデルM1-2は、フレーム番号nの各関節の座標を基に生成される2次元骨格情報である。図9では、説明の便宜上、一部の関節の図示を省略する。
【0075】
検知部153は、図8と同様にして、所定の左側の関節を始点とし、所定の右側の関節を終点とするベクトルを計算する。図9では一例として、モデルM1-1のベクトルva3と、モデルM1-2のベクトルvb3を示す。
【0076】
検知部153は、モデルM1-1と、モデルM1-2において、始点の関節と終点の関節とが同一となるベクトルをペアとする。検知部153は、ペアのベクトルのなす角を算出する。検知部153は、なす角が所定のなす角以上となるベクトルのペアを検知する。
【0077】
たとえば、検知部153は、ベクトルva3とベクトルvb3とのなす角が所定のなす角以上である場合に、ベクトルva3,vb3を検知する。検知部153は、他のベクトルのペアについても同様の処理を実行する。この処理によって、検知部153が検知したベクトルのペアを、第2検知ベクトルペアと表記する。
【0078】
検知部153は、第2検知ベクトルペアの始点となる関節と、終点となる関節との双方を、異常関節として検知する。図9に示す例では、検知部153は、モデルM1-2の始点の関節(ノード19:HAND_TIP_LEFT)、終点の関節(ノード20:HAND_TIP_RIGHT)を異常関節として検知する。なお、モデルM1-2の基となる第2特徴群情報が、カメラ30aの撮影した画像フレームに基づく第2特徴群情報であるとする。この場合、検知部153は、「カメラ識別情報:C30a、フレーム番号:n、異常関節:HAND_TIP_RIGHT、HAND_TIP_LEFT」を含む異常関節情報を生成する。
【0079】
図8図9では、カメラ30aが撮影した画像フレームに基づいて生成されたフレーム番号n-1の第2特徴群情報と、フレーム番号nの第2特徴群情報とを用いて異常関節情報を生成する場合について説明したが、他のカメラ30b,30c,30dについても同様である。
【0080】
続いて、検知部153が実行するセルフオクルージョン検知について説明する。ここでは、カメラ30aが撮影した画像フレームに基づいて生成された各フレーム番号n-2,n-1の第2特徴群情報を用いて説明を行う。
【0081】
検知部153は、フレーム番号n-2の第2特徴群情報に含まれるJ個の第2特徴を基にして、各関節の座標を算出する。検知部153は、フレーム番号n-1の第2特徴群情報に含まれるJ個の第2特徴を基にして、各関節の座標を算出する。各関節の座標を算出する処理は、左右反転検知で説明した各関節の座標を算出する処理と同様である。
【0082】
検知部153は、フレーム番号n-2の各関節の座標と、フレーム番号n-1の各関節の座標とを基にして、フレーム番号nの各関節の座標を示す予測骨格情報を算出する。たとえば、検知部153は、式(4)を基にして、フレーム番号nの各関節の座標を示す予測骨格情報を算出する。式(4)において、pは、予測されるフレーム番号nの各関節の座標を示す。pn-1は、フレーム番号n-1の各関節の座標を示す。pn-2は、フレーム番号n-2の各関節の座標を示す。
【0083】
【数4】
【0084】
図10は、セルフオクルージョン検知を説明するための図である。図11において、モデルM2-1は、式(4)によって予測された、フレーム番号nの各関節の座標を示す予測骨格情報に対応する。図10では、説明の便宜上、一部の関節の図示を省略する。
【0085】
検知部153は、モデルM2-1(予測骨格情報)に含まれる所定の関節を基にして、ボックスを作成する。たとえば、図22で説明した関節を用いて説明すると、所定の関節を、ノード4,7,14,10とすると、ボックスは、ボックスB10となる。検知部153は、ボックスB10の大きさにマージンを持たせもよい。
【0086】
検知部153は、ボックスB10を構成する関節とは異なる他の関節の座標と、ボックスB10との比較を行い、他の関節の座標が、ボックスB10の領域に含まれる場合には、ボックスB10の領域に含まれる他の関節を異常関節として検知する。たとえば、他の関節を、ノード5(ELBOW_LEFT),8(ELBOW_RIGHT),6(WRIST_LEFT),9(WRIST_RIGHT),11(KNEE_LEFT),15(KNEE_RIGHT),12(ANKLE_LEFT),16(ANKLE_RIGHT)とする。
【0087】
図10に示す例では、ボックスB10に、ノード15に相当する関節「KNEE_RIGHT」が含まれている。このため、検知部153は、関節(ノード15:KNEE_RIGHT)を異常関節として検知する。なお、モデルM2-1の予測に用いた、フレーム番号n-2の各関節の座標と、フレーム番号n-1の各関節の座標とが、カメラ30aの撮影した画像フレームに基づく第2特徴群情報であるとする。この場合、検知部153は、「カメラ識別情報:C30a、フレーム番号:n、異常関節:KNEE_RIGHT」を含む異常関節情報を生成する。
【0088】
図10では、カメラ30aが撮影した画像フレームに基づいて生成されたフレーム番号n-2の第2特徴群情報と、フレーム番号n-1の第2特徴群情報とを用いて異常関節情報を生成する場合について説明したが、他のカメラ30b,30c,30dについても同様である。
【0089】
続いて、検知部153が実行する異常heatmap検知について説明する。図11は、異常heatmapのパターンを説明するための図である。図11では一例として、パターン「消失」、「ぼけ」、「分裂」、「位置ずれ」について説明する。heatmap4-1,4-2,4-3,4-4は、第2特徴に対応する。
【0090】
パターン「消失」は、heatmap4-1に示すように、尤度の高い分布が形成されないパターンである。パターン「ぼけ」は、heatmap4-2に示すように、尤度の高い分布が広範囲に広がっているパターンである。パターン「分裂」は、heatmap4-3に示すように、尤度のピークが複数存在するパターンである。パターン「位置ずれ」は、heatmap4-4に示すように、尤度のピークが間違った位置にあるパターンである。
【0091】
検知部153は、第2特徴(heatmap)が、図11で説明したいずれかのパターンに該当する場合には、かかる第2特徴に対応する関節を、異常関節として検知する。
【0092】
検知部153は、第1の異常heatmap検知処理によって、パターン「消失」、「ぼけ」、「分裂」に対応する第2特徴を検知する。検知部153は、第2の異常heatmap検知処理によって、パターン「位置ずれ」を検知する。
【0093】
検知部153が実行する第1の異常heatmap検知処理について説明する。検知部153は、フレーム番号nの第2特徴群情報に含まれる各第2特徴から、尤度が最大値となる座標を算出する。尤度が最大となる座標を「最大値座標」と表記する。たとえば、図6で説明したように、各カメラ識別情報には、J個の第2特徴が含まれているため、カメラが4つで、関節数が「21」であれば、84個の第2特徴から、84個の最大値座標が算出される。以下の説明では、カメラ30a~30dに対応する第2特徴群情報(複数の第2特徴<heatmap>)をまとめて「HMinput」と表記する。
【0094】
検知部153は、HMinputの各最大値座標を基準にして、2D特徴抽出NN142A、チャネル数変換NN142Bの訓練時と同形状の第2特徴を、「HMinput」に含まれる第2特徴分だけ作成する。作成した複数の第2特徴を「HMeval」と表記する。
【0095】
図12は、第1の異常heatmap検知処理について説明するための図(1)である。図12では、HMinputから、HMevalを生成する場合を示している。2DGaussianに従う場合、検知部153は、訓練データの尤度の値を基にして、標準偏差を算出し、平均値を、最大値座標する。たとえば、検知部153は、HMinputの第2特徴HM1-1から、HMevalの第2特徴HM2-1を生成する場合には、次の計算を行う。検知部153は、2D特徴抽出NN142A、チャネル数変換NN142Bの訓練時に用いたheatmapの尤度の値に基づく標準偏差と、第2特徴HM1-1の最大値座標を平均値とするガウス分布に従って、HMevalの第2特徴HM2-1を生成する。
【0096】
検知部153は、HMinputと、HMevalとの対応する第2特徴毎に差分を算出し、差分が閾値以上となる第2特徴に対応する関節を、異常関節として検知する。検知部153は、差分として、式(5)に示す平均二乗誤差(MSE)、または、式(6)に示す平均絶対誤差(MAE)等を算出する。式(5)に示す「xi input」は、HMinputの第2特徴の画素値(尤度)である。式(5)に示す「xi eval」は、HMevalの第2特徴の画素値(尤度)である。
【0097】
【数5】
【0098】
【数6】
【0099】
たとえば、検知部153は、図12に示した第2特徴HM1-1の各画素値と、第2特徴HM2-1の各画素値とを基にして、差分を算出し、差分が閾値以上である場合に、第2特徴HM1-1に対応する関節の異常を検知する。ここで、第2特徴HM1-1が、カメラ30aに対応する第2特徴群情報に含まれるフレーム番号nの第2特徴であって、関節「HAND_TIP_RIGHT」に対応する第2特徴である場合には、「カメラ識別情報:C30a、フレーム番号:n、異常関節:HAND_TIP_RIGHT」を含む異常関節情報を生成する。
【0100】
なお、検知部153は、ネットワークによる自動重み調整を行って、異常な第2特徴の影響度を下げるようにしてもよい。図13は、ネットワークの自動重み調整の一例を説明するための図である。図13に示すDNN(Deep Neural Network)142Cは、2D畳み込み層、ReLU層、MaxPooling層、全結合層から構成されるネットワークである。DNN142Cは、全体モデルと別途訓練するのではなく、組み込みself-learning方式で全体モデルと同時に学習するものとする。
【0101】
たとえば、DNN142Cに、j個の第2特徴を含むHMinputとDNN142Cに入力することで、各第2特徴に対応する重みw,w,・・・wを出力する。たとえば、検知部153は、各重みw,w,・・・wを、異常関節情報として生成する。重みwの重みが小さい場合(閾値未満の場合)には、重みwに対応する第2特徴の関節が異常であるといえる。
【0102】
続いて、検知部153が実行する第2の異常heatmap検知処理について説明する。検知部153は、多視点幾何の整合性を基にして、異常となる関節を検知する。たとえば、検知部153は、以下の処理を実行する。
【0103】
検知部153は、フレーム番号nの第2特徴群情報に含まれるJ個の第2特徴から、最大値座標を算出する。最大値座標は、尤度が最大となる座標である。検知部153は、視点vの第2特徴群情報に含まれる第2特徴について、次の処理を実行する。視点vは、1つのカメラ30の中心座標に対応する。
【0104】
図14は、第2の異常heatmap検知処理について説明する図(1)である。第2特徴HM3-1を、注目する視点vの第2特徴とする。第2特徴HM3-2を、他の視点v´の第2特徴とする。第2特徴HM3-3を、他の視点v´´の第2特徴とする。検知部153は、第2特徴HM3-1の最大値座標と、第2特徴HM3-2の最大値座標とを基にして、エピポーラ線lv,v´を算出する。検知部153は、第2特徴HM3-1の最大値座標と、第2特徴HM3-3の最大値座標とを基にして、エピポーラ線lv,v´´を算出する。
【0105】
検知部153は、エピポーラ線lv,v´とエピポーラ線lv,v´´との交点を算出する。検知部153は、注目する視点vの第2特徴HM3-1の最大値座標と、交点とのユークリッド距離dを算出する。検知部153は、視点毎に上記処理を繰り返し実行し、ユークリッド距離dが閾値dth以下となる視点の組み合わせを抽出する。
【0106】
図15は、第2の異常heatmap検知処理について説明する図(2)である。図15では、注目する視点(カメラ)と、視点組み合わせとを対応付ける。注目する視点は、図14の注目する視点に対応する。視点組み合わせは、注目視点の最大値座標と交点とのユーグリッド距離dが閾値dth以下となった交点を生成した視点の組み合わせを示す。
【0107】
図15では、説明の便宜上、カメラ30aの中心座標に対応する視点をv30aとする。カメラ30bの中心座標に対応する視点をv30bとする。カメラ30cの中心座標に対応する視点をv30cとする。カメラ30bの中心座標に対応する視点をv30dとする。
【0108】
図15の1行目では、注目視点v30aの最大値座標と、第1、第2のエピポーラ線の交点とのユークリッド距離dが閾値dth以下であることが示される。第1のエピポーラ線は、注目視点v30aと視点v30cとのエピポーラ線である。第2のエピポーラ線は、注目視点v30aと視点v30dとのエピポーラ線である。
【0109】
図15の2行目では、注目視点v30bの最大値座標とのユークリッド距離dが閾値以下となる、エピポーラ線の交点が存在しないことが示される。
【0110】
図15の3行目では、注目視点v30cの最大値座標と、第3、第4のエピポーラ線の交点とのユークリッド距離dが閾値dth以下であることが示される。第3のエピポーラ線は、注目視点v30cと視点v30aとのエピポーラ線である。第4のエピポーラ線は、注目視点v30cと視点v30aとのエピポーラ線である。
【0111】
図15の4行目では、注目視点v30dの最大値座標と、第5、第6のエピポーラ線の交点とのユークリッド距離dが閾値dth以下であることが示される。第5のエピポーラ線は、注目視点v30dと視点v30aとのエピポーラ線である。第6のエピポーラ線は、注目視点v30dと視点v30cとのエピポーラ線である。
【0112】
検知部153は、最も多く組み合わせに含まれる視点と、組み合わせを持たない注目視点に対応する第2特徴に対応する関節を、異常関節として検知する。
【0113】
図15に示した例では、最も多く組み合わせに含まれる視点は、視点v30aである。また、この視点v30aと組み合わせを持たない視点は、視点v30bである。このため、検知部153は、視点v30bに対応する第2特徴の関節を異常関節として、検知する。たとえば、視点v30bに対応する第2特徴に対応する関節が「HAND_TIP_RIGHT」であり、フレーム番号nに対応するものとする。この場合、検知部153は、「カメラ識別情報:C30b、フレーム番号:n、異常関節:HAND_TIP_RIGHT」を含む異常関節情報を生成する。
【0114】
ここで、エピポーラ線の算出の一例について説明する。検知部153は、視点v,v´のカメラ中心座標C,C、透視投影行列P,Pv´,視点v´の最大値座標をpv´とする場合、視点vにおけるpj,v´のエピポーラ線lv,v´を式(7)で算出する。式(7)において、[・]×は、歪非対称行列を示す。Pv´ は、Pの疑似逆行列(Pv´ (Pv´v´ -1)を表す。
【0115】
【数7】
【0116】
エピポーラ線の交点について説明する。視点vにおける視点v´、v´´の最大値座標から引いたエピポーラ線lv,v´,lv,v´´の交点qv,v´,v´´を導出するものする。検知部153は、2直線の交点の導出と同様にして、lv,v´=(av´,bv´,-cv´)、lv,v´´=(av´´,bv´´,-cv´´)とする場合、式(8)に基づいて算出する。式(8)のA-1は、式(9)によって示される。式(8)のCは、式(10)によって示される。
【0117】
【数8】
【数9】
【数10】
【0118】
検知部153は、最大座標pj,vとエピポーラ線の交点qv,v´,v´´との距離dを、式(11)を基にして算出する。
【0119】
【数11】
【0120】
上記のように、検知部153は、左右反転検知、セルフオクルージョン検知、異常heatmap検知を実行し、異常関節情報を生成する。検知部153は、上記のように、異常関節情報には、カメラ識別情報、フレーム番号、異常関節が含まれる。検知部153は、異常関節情報を、骨格認識部154に出力する。
【0121】
図4の説明に戻る。骨格認識部154は、特徴テーブル142から、各カメラ識別情報の第2特徴群情報を取得し、取得した第2特徴群情報に含まれる第2特徴から、異常関節情報に対応する第2特徴を除去する。骨格認識部154は、異常関節情報に対応する第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する。骨格認識部154は、フレーム番号毎に、上記処理を繰り返し実行し、3D骨格の認識結果を、技認識部155に出力する。
【0122】
ここで、骨格認識部154の処理の具体例を示す。骨格認識部154は、各カメラに対応する第2特徴群情報(J個の第2特徴)を、カメラパラメータに従って、3Dcubeに逆投影することで、aggregated volumesを算出する。ここでは、第2特徴群情報のフレーム番号をnとするが、他のフレーム番号に対応する第2特徴群情報に関する処理も同様である。
【0123】
たとえば、骨格認識部154は、カメラ30aのカメラパラメータに基づいて、カメラ識別情報「C30a」に対応する第2特徴群情報を、3Dcubeに逆投影することで、第1のaggregated volumeを算出する。骨格認識部154は、カメラ30bのカメラパラメータに基づいて、カメラ識別情報「C30b」に対応する第2特徴群情報を、3Dcubeに逆投影することで、第2のaggregated volumeを算出する。
【0124】
骨格認識部154は、カメラ30cのカメラパラメータに基づいて、カメラ識別情報「C30c」に対応する第2特徴群情報を、3Dcubeに逆投影することで、第3のaggregated volumeを算出する。骨格認識部154は、カメラ30dのカメラパラメータに基づいて、カメラ識別情報「C30d」に対応する第2特徴群情報を、3Dcubeに逆投影することで、第4のaggregated volumeを算出する。
【0125】
骨格認識部154は、異常関節情報に対応する第2特徴を、3Dcubeに逆投影した異常点を特定し、第1、第2、第3、第4のaggregated volume(volumes)から、異常点を除去するためのフィルタリングを実行する。
【0126】
たとえば、骨格認識部154は、異常関節情報に含まれるカメラ識別情報(異常とみなすカメラc)と、異常関節kと、式(12)とを用いて、フィルタリングを実行する。式(12)に含まれるcは、softmax時の影響を無効化する無効値である。
【0127】
【数12】
【0128】
骨格認識部154は、異常点を除去した(フィルタリングした)第1、第2、第3、第4のaggregated volume(volumes)を統合することで、V2V(ニューラルネットワーク)の入力情報を算出する。
【0129】
骨格認識部154は、統合処理を式(13)もしくは式(14)と式(15)に基づいて実行し、入力情報Vinputを計算する。式(13)、(14)、(15)に基づいて、統合処理を行う場合には、3D骨格の精度を担保するために、対向するカメラのみが残らない制約を設けてもよい。
【0130】
【数13】
【数14】
【数15】
【0131】
骨格認識部154は、入力情報を、V2Vに入力することで、各関節の3Dの位置座標を示すprocessed volumesを算出する。骨格認識部154は、processed volumesに対して、soft-argmaxを実行することで、3D骨格の認識結果を生成する。3D骨格の認識結果には、J個の関節の3D座標が含まれる。骨格認識部154は、3D骨格の認識結果となる骨格認識結果データを、技認識部155に出力する。また、骨格認識部154は、骨格認識結果データを、記憶部140に保存する。
【0132】
技認識部155は、フレーム番号の順に骨格認識結果データを、骨格認識部154から取得し、連続する骨格認識結果データを基にして、各関節座標の時系列変化を特定する。技認識部155は、各関節位置の時系列変化と、技認識テーブル145とを比較して、技の種別を特定する。また、技認識部155は、技の種別の組み合わせと、技認識テーブル143とを比較して、被写体H1の演技のスコアを算出する。
【0133】
技認識部155は、演技のスコアと、演技の開始から終了までの骨格認識結果データとを基にして、画面情報を生成する。技認識部155は、生成した画面情報を、表示部130に出力して表示させる。
【0134】
図16は、画面情報の一例を示す図である。図16に示すように、この画面情報60には、領域60a,60b,60cが含まれる。領域60aは、被写体H1が行った演技において、認識された技の種別を表示する領域である。技の種別に加えて、技の難度も表示してもよい。領域60bは、演技のスコアを表示する領域である。領域60aは、演技の開始から終了までの骨格認識結果データに基づく3次元モデルをアニメーション表示する領域である。利用者は、入力部120を操作して、アニメーションの再生、停止等を指示する。
【0135】
次に、本実施例に係る骨格認識装置100の処理手順の一例について説明する。図17は、本実施例に係る骨格認識装置の処理手順を示すフローチャートである。骨格認識装置100の取得部151は、複数のカメラ30から画像フレーム(多視点画像)を取得する(ステップS101)。
【0136】
骨格認識装置100の生成部152は、第2特徴生成処理を実行する(ステップS102)。骨格認識装置100の検知部153は、異常検知処理を実行する(ステップS103)。
【0137】
骨格認識装置100の骨格認識部154は、異常関節のフィルタリングを実行する(ステップS104)。骨格認識部154は、統合処理を実行して、入力情報を生成する(ステップS105)。骨格認識部154は、入力情報をV2Vに入力して、processed volumesを算出する(ステップS106)。
【0138】
骨格認識部154は、processed volumesに対して、soft-argmaxを実行することで、3D骨格の認識結果を生成する(ステップS107)。骨格認識部154は、骨格認識結果データを、技認識部155に出力する(ステップS108)。
【0139】
骨格認識部154は、最終フレームである場合には(ステップS109,Yes)、処理を終了する。一方、骨格認識部154は、最終フレームでない場合には(ステップS109,No)、骨格認識結果データを記憶部140に保存し(ステップS110)、ステップS101に移行する。
【0140】
次に、図17のステップS102で説明した第2特徴生成処理の一例について説明する。図18は、第2特徴生成処理のフローチャートである。図18に示すように、骨格認識装置100の生成部152は、画像フレームを、2D特徴抽出NN142Aに入力することで、K個の第1特徴を算出する(ステップS201)。
【0141】
生成部152は、K個の第1特徴を、チャネル数変換NN142Bに入力することで、J個の第2特徴を生成する(ステップS202)。生成部152は、第2特徴の情報を出力する(ステップS203)。
【0142】
次に、図17のステップS103で説明した異常検知処理の一例について説明する。図19は、異常検知処理のフローチャートである。図19に示すように、骨格認識装置100の検知部153は、第2特徴を取得する(ステップS301)。検知部153は、左右反転検知を実行する(ステップS302)。
【0143】
検知部153は、オクルージョン検知を実行する(ステップS303)。検知部153は、異常heatmap検知を実行する(ステップS304)。検知部153は、異常関節の検知結果を基にして、異常関節情報を生成する(ステップS305)。検知部153は、異常関節情報を出力する(ステップS306)。
【0144】
次に、本実施例に係る骨格認識装置100の効果について説明する。骨格認識装置100は、カメラ30から入力される画像フレームを基にして抽出した、被写体H1の2次元の関節位置の特徴を表すK個の第1特徴を、被写体のJ個の関節にそれぞれ対応したJ個の第2特徴(第2特徴群情報)を生成する。骨格認識装置100は、第2特徴群情報から、異常のある関節に対応した第2特徴を検知し、第2特徴群情報から、異常のある第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する。これによって、異常のある2D特徴を事前に除去することができ、正しく3D骨格認識を実行することができる。
【0145】
骨格認識装置100は、前回(フレーム番号n-1)の第2特徴群情報を基に生成されるベクトルと、今回(フレーム番号n)の第2特徴群情報を基に生成されるベクトルとを基にして、異常のある第2特徴を検知する。これによって、左右反転した異常な関節を検知することができる。
【0146】
骨格認識装置100は、第2特徴群情報を基にして、所定の関節から特定されるBoxと、所定の関節以外の関節の位置との関係を基にして、異常のある第2特徴を検知する。これによって、オクルージョンに影響を受けた異常な関節を検知することができる。
【0147】
骨格認識装置100は、heatmap(第2特徴)と、予め特定される理想的な尤度の分布情報との差分を基にして、異常のある第2特徴を検知する。また、骨格認識装置100は、heatmapを基にして、カメラ位置を視点とする複数のエピポーラ線を算出し、エピポーラ線の交点と、関節の位置との距離を基にして、異常のある第2特徴を検知する。これによって、パターン「消失」、「ぼけ」、「分裂」、「位置ずれ」の発生した第2特徴を検知して除去することが出来る。
【0148】
図20は、本実施例に係る骨格認識装置の効果を説明するための図である。図20では、従来技術の3D骨格認識結果Im2-1c,Im2-2c,Im2-3c,Im2-4cと、骨格認識装置100による3D骨格認識結果Im2-1d,Im2-2d,Im2-3d,Im2-4dを示す。骨格認識装置100によれば、左右反転検知、セルフオクルージョン検知、異常heatmap検知により、誤った関節に対応する第2特徴を取り除くことで、3D骨格の精度を改善している。たとえば、従来技術の3D骨格認識結果Im2-1c~Im2-4cは、被写体と3D骨格とが乖離しているが、本実施例の3D骨格認識結果Im2-1d~Im2-4dは、被写体の3D骨格を適切に特定している。
【0149】
次に、上記実施例に示した骨格認識装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図21は、骨格認識装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0150】
図21に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、カメラ30から距離画像のデータを受信する通信装置204と、各種の装置と接続するインタフェース装置205とを有する。コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201~207は、バス208に接続される。
【0151】
ハードディスク装置207は、取得プログラム207a、生成プログラム207b、検知プログラム207c、骨格認識プログラム207d、技認識プログラム207eを有する。CPU201は、取得プログラム207a、生成プログラム207b、検知プログラム207c、骨格認識プログラム207d、技認識プログラム207eを読み出してRAM206に展開する。
【0152】
取得プログラム207aは、取得プロセス206aとして機能する。生成プログラム207bは、生成プロセス206bとして機能する。検知プログラム207cは、検知プロセス206cとして機能する。骨格認識プログラム207dは、骨格認識プロセス206dとして機能する。技認識プログラム207eは、技認識プロセス206eとして機能する。
【0153】
取得プロセス206aの処理は、取得部151の処理に対応する。生成プロセス206bの処理は、生成部152の処理に対応する。検知プロセス206cの処理は、検知部153の処理に対応する。骨格認識プロセス206dの処理は、骨格認識部154の処理に対応する。技認識プロセス206eの処理は、技認識部155の処理に対応する。
【0154】
なお、各プログラム207a~207fについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム207a~207eを読み出して実行するようにしてもよい。
【符号の説明】
【0155】
35 体操採点支援システム
30a,30b,30c,30d カメラ
100 骨格認識装置
110 通信部
120 入力部
130 表示部
140 記憶部
141 測定テーブル
142 特徴テーブル
143 技認識テーブル
150 制御部
151 取得部
152 生成部
153 検知部
154 骨格認識部
155 技認識部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26