(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-15
(45)【発行日】2024-05-23
(54)【発明の名称】プログラム、情報処理方法、情報処理装置及びモデル生成方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20240516BHJP
【FI】
G06T7/00 660B
G06T7/00 350C
(21)【出願番号】P 2020121381
(22)【出願日】2020-07-15
【審査請求日】2023-04-13
(73)【特許権者】
【識別番号】512200217
【氏名又は名称】GO株式会社
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】加藤 直樹
(72)【発明者】
【氏名】内田 祐介
(72)【発明者】
【氏名】本多 浩大
【審査官】小太刀 慶明
(56)【参考文献】
【文献】国際公開第2020/096941(WO,A1)
【文献】Georgios Pavlakos et al.,Ordinal Depth Supervision for 3D Human Pose Estimation,2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition,2018年,pp. 7307-7316
【文献】Dario Pavllo et al.,3D human pose estimation in video with temporal convolutions and semi-supervised training,arXiv [online],2019年03月29日,[令和6年2月21日検索], インターネット<URL: https://arxiv.org/pdf/1811.11742.pdf>
【文献】Xiao Sun et al.,Integral Human Pose Regression,arXiv [online],2018年09月18日,[令和6年2月21日検索], インターネット<URL: https://arxiv.org/pdf/1711.08229.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 40/70
(57)【特許請求の範囲】
【請求項1】
人物が撮像された動画像を取得し、
前記動画像を構成するフレーム画像を入力した場合に、前記フレーム画像における前記人物の各関節点の2次元座標値及び深度を出力するよう学習済みの第1モデルに、取得した前記動画像を構成する複数のフレーム画像を入力して、前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を出力し、
前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を入力した場合に、前記各関節点の3次元座標値を出力するよう学習済みの第2モデルに、前記第1モデルから出力された前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を入力して、前記3次元座標値を出力する
処理をコンピュータに実行させるプログラムであって、
前記フレーム画像を前記第1モデルに入力して、一の前記フレーム画像に対し、前記各関節点に対応する複数の3次元ヒートマップを生成し、
生成した前記複数の3次元ヒートマップに基づき、前記各関節点の2次元座標値及び深度を出力し、
前記第2モデルは、複数の畳み込み層それぞれに、所定のカーネルサイズ及び拡張係数の畳み込みフィルタを適用した拡張畳み込みニューラルネットワークであり、
時系列で連続する前記複数のフレーム画像の前記2次元座標値及び深度を、前記複数の畳み込み層それぞれにおいて所定数ずつ畳み込み、前記複数のフレーム画像のうち、一の前記フレーム画像に対応する前記3次元座標値を出力する
処理をコンピュータに実行させるプログラム。
【請求項2】
人物が撮像された動画像を構成する各フレーム画像における前記人物の各関節点の2次元座標値及び深度を示す訓練データを取得し、
訓練用の複数の前記フレーム画像それぞれに対応する前記2次元座標値及び深度を前記第2モデルに入力することで、前記3次元座標値を出力し、
出力した前記3次元座標値を前記2次元座標値に逆変換する処理を行うことで、正解の前記3次元座標値が既知の訓練データを生成し、
正解の前記3次元座標値が既知の訓練データを用いた教師あり学習と、正解の前記3次元座標値が未知の訓練データを用いた教師なし学習とを組み合わせた半教師あり学習を行うことで、前記第2モデルをトレーニングする
請求項1に記載のプログラム。
【請求項3】
前記第2モデルは、前記畳み込み層を含む残差ブロックを複数有する残差ネットワークであり、
一の前記残差ブロックの入力及び出力の残差を、前記一の残差ブロックに続く次の前記残差ブロックに入力して該次の残差ブロックの出力を計算する
請求項
1又は2に記載のプログラム。
【請求項4】
人物が撮像された動画像を取得し、
前記動画像を構成するフレーム画像を入力した場合に、前記フレーム画像における前記人物の各関節点の2次元座標値及び深度を出力するよう学習済みの第1モデルに、取得した前記動画像を構成する複数のフレーム画像を入力して、前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を出力し、
前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を入力した場合に、前記各関節点の3次元座標値を出力するよう学習済みの第2モデルに、前記第1モデルから出力された前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を入力して、前記3次元座標値を出力する
処理をコンピュータに実行させる情報処理方法であって、
前記フレーム画像を前記第1モデルに入力して、一の前記フレーム画像に対し、前記各関節点に対応する複数の3次元ヒートマップを生成し、
生成した前記複数の3次元ヒートマップに基づき、前記各関節点の2次元座標値及び深度を出力し、
前記第2モデルは、複数の畳み込み層それぞれに、所定のカーネルサイズ及び拡張係数の畳み込みフィルタを適用した拡張畳み込みニューラルネットワークであり、
時系列で連続する前記複数のフレーム画像の前記2次元座標値及び深度を、前記複数の畳み込み層それぞれにおいて所定数ずつ畳み込み、前記複数のフレーム画像のうち、一の前記フレーム画像に対応する前記3次元座標値を出力する
処理をコンピュータに実行させる情報処理方法。
【請求項5】
人物が撮像された動画像を取得する取得部と、
前記動画像を構成するフレーム画像を入力した場合に、前記フレーム画像における前記人物の各関節点の2次元座標値及び深度を出力するよう学習済みの第1モデルに、取得した前記動画像を構成する複数のフレーム画像を入力して、前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を出力する第1出力部と、
前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を入力した場合に、前記各関節点の3次元座標値を出力するよう学習済みの第2モデルに、前記第1モデルから出力された前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を入力して、前記3次元座標値を出力する第2出力部と
を備え
、
前記第1出力部は、
前記フレーム画像を前記第1モデルに入力して、一の前記フレーム画像に対し、前記各関節点に対応する複数の3次元ヒートマップを生成し、
生成した前記複数の3次元ヒートマップに基づき、前記各関節点の2次元座標値及び深度を出力し、
前記第2モデルは、複数の畳み込み層それぞれに、所定のカーネルサイズ及び拡張係数の畳み込みフィルタを適用した拡張畳み込みニューラルネットワークであり、
前記第2出力部は、時系列で連続する前記複数のフレーム画像の前記2次元座標値及び深度を、前記複数の畳み込み層それぞれにおいて所定数ずつ畳み込み、前記複数のフレーム画像のうち、一の前記フレーム画像に対応する前記3次元座標値を出力する
情報処理装置。
【請求項6】
人物が撮像された動画像と、該動画像を構成する各フレーム画像における前記人物の各関節点の2次元座標値及び深度とを含む訓練データを取得し、
前記訓練データに基づき、前記フレーム画像を入力した場合に、前記各関節点の2次元座標値及び深度を出力する第1モデルを生成し、
前記訓練データに基づき、複数の前記フレーム画像それぞれに対応する前記2次元座標値及び深度を入力した場合に、前記各関節点の3次元座標値を出力する第2モデルを生成する
処理をコンピュータに実行させるモデル生成方法であって、
前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を前記第2モデルに入力することで、前記3次元座標値を出力し、
出力した前記3次元座標値を前記2次元座標値に逆変換する処理を行うことで、正解の前記3次元座標値が既知の訓練データを生成し、
正解の前記3次元座標値が既知の訓練データを用いた教師あり学習と、正解の前記3次元座標値が未知の訓練データを用いた教師なし学習とを組み合わせた半教師あり学習を行うことで、前記第2モデルをトレーニングする
処理をコンピュータに実行させるモデル生成方法。
【請求項7】
前記訓練データが示す深度を、所定のノイズを付加した値に変換し、
前記訓練データが示す前記2次元座標値と、変換後の前記深度とに基づき、前記第2モデルを生成する
請求項
6に記載のモデル生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理方法、情報処理装置及びモデル生成方法に関する。
【背景技術】
【0002】
被写体人物を撮像した2次元画像から、当該人物の骨格点(関節点)の3次元座標を推定する姿勢検出技術がある。例えば特許文献1では、被写体の2次元画像から被写体の骨格点の2次元座標を推定し、推定した2次元座標に基づいて3次元座標を推定する3次元特徴点情報生成装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に係る発明は、推定の途中で関節点の奥行きに関する情報を喪失するため、関節点の3次元座標を正確に推定することができない。
【0005】
一つの側面では、被写体人物の各関節点の3次元座標値を好適に推定することができるプログラム等を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの側面に係るプログラムは、人物が撮像された動画像を取得し、前記動画像を構成するフレーム画像を入力した場合に、前記フレーム画像における前記人物の各関節点の2次元座標値及び深度を出力するよう学習済みの第1モデルに、取得した前記動画像を構成する複数のフレーム画像を入力して、前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を出力し、前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を入力した場合に、前記各関節点の3次元座標値を出力するよう学習済みの第2モデルに、前記第1モデルから出力された前記複数のフレーム画像それぞれに対応する前記2次元座標値及び深度を入力して、前記3次元座標値を出力する処理をコンピュータに実行させるプログラムであって、前記フレーム画像を前記第1モデルに入力して、一の前記フレーム画像に対し、前記各関節点に対応する複数の3次元ヒートマップを生成し、生成した前記複数の3次元ヒートマップに基づき、前記各関節点の2次元座標値及び深度を出力し、前記第2モデルは、複数の畳み込み層それぞれに、所定のカーネルサイズ及び拡張係数の畳み込みフィルタを適用した拡張畳み込みニューラルネットワークであり、時系列で連続する前記複数のフレーム画像の前記2次元座標値及び深度を、前記複数の畳み込み層それぞれにおいて所定数ずつ畳み込み、前記複数のフレーム画像のうち、一の前記フレーム画像に対応する前記3次元座標値を出力する処理をコンピュータに実行させる。
【発明の効果】
【0007】
一つの側面では、被写体人物の各関節点の3次元座標値を好適に推定することができる。
【図面の簡単な説明】
【0008】
【
図1】情報処理装置の構成例を示すブロック図である。
【
図5】第2モデルのネットワーク構造を示す説明図である。
【
図6】モデル生成処理の手順を示すフローチャートである。
【
図7】座標推定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態1)
図1は、情報処理装置1の構成例を示すブロック図である。本実施の形態では、人物を撮像した動画像から当該人物の関節点の3次元座標値を推定する情報処理装置1について説明する。
【0010】
情報処理装置1は、種々の情報処理、情報の送受信が可能な情報処理装置であり、例えばサーバコンピュータ、パーソナルコンピュータ等である。本実施の形態では情報処理装置1がサーバコンピュータであるものとし、以下では簡潔のためサーバ1と読み替える。サーバ1は、例えば外部の端末2から動画像を取得し、動画像に写る人物の各関節点(手首、肘、肩等)の3次元座標値を推定し、推定結果を端末2に出力する。具体的には後述のように、サーバ1は、機械学習モデルである第1モデル51及び第2モデル52(
図2参照)を用いて3次元座標値を推定する。
【0011】
サーバ1は、制御部11、主記憶部12、通信部13、及び補助記憶部14を備える。制御部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置であり、補助記憶部14に記憶されたプログラムPを読み出して実行することにより、種々の情報処理、制御処理等を行う。主記憶部12は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の一時記憶領域であり、制御部11が演算処理を実行するために必要なデータを一時的に記憶する。通信部13は、通信に関する処理を行うための通信モジュールであり、外部と情報の送受信を行う。
【0012】
補助記憶部14は、大容量メモリ、ハードディスク等の不揮発性記憶領域であり、制御部11が処理を実行するために必要なプログラムP、その他のデータを記憶している。また、補助記憶部14は、第1モデル51、第2モデル52を記憶している。第1モデル51は、所定の訓練データを学習済みの機械学習モデルであり、動画像を構成するフレーム画像を入力した場合に、フレーム画像内の人物の各関節点の2次元座標値及び深度を出力する学習済みモデルである。第2モデル52は、所定の訓練データを学習済みの機械学習モデルであり、動画像を構成する複数のフレーム画像それぞれにおける各関節点の2次元座標値及び深度を入力した場合に、各関節点の3次元座標値を出力する学習済みモデルである。第1モデル51及び第2モデル52は、人工知能ソフトウェアの一部として機能するソフトウェアモジュールとしての利用が想定される。
【0013】
なお、補助記憶部14はサーバ1に接続された外部記憶装置であってもよい。また、サーバ1は複数のコンピュータからなるマルチコンピュータであっても良く、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【0014】
また、本実施の形態においてサーバ1は上記の構成に限られず、例えば操作入力を受け付ける入力部、画像を表示する表示部等を含んでもよい。また、サーバ1は、CD(Compact Disk)-ROM、DVD(Digital Versatile Disc)-ROM等の可搬型記憶媒体1aを読み取る読取部を備え、可搬型記憶媒体1aからプログラムPを読み取って実行するようにしても良い。あるいはサーバ1は、半導体メモリ1bからプログラムPを読み込んでも良い。
【0015】
また、本実施の形態では動画解析用のコンピュータがサーバコンピュータであるものとして説明するが、例えば車載コンピュータ、ロボット制御用コンピュータ等に適用してもよい。
【0016】
図2は、実施の形態の概要を示す説明図である。
図2では、人物を撮像した動画像から、当該人物の各関節点の3次元座標値が推定される様子を概念的に図示している。
図2に基づき、本実施の形態の概要を説明する。
【0017】
サーバ1は、上述の如く、第1モデル51及び第2モデル52を用いて、動画像に写る人物の各関節点の3次元座標値を推定する。第1モデル51及び第2モデル52は共に、所定の訓練データを学習済みの機械学習モデルであり、例えば深層学習により生成されたニューラルネットワークである。
【0018】
関節点の3次元座標値を推定する場合、サーバ1はまず、動画像を構成する複数のフレーム画像をそれぞれ第1モデル51に入力し、各フレーム画像における各関節点の2次元座標値及び深度を推定する。なお、2次元座標値は画像面に平行なx軸方向及びy軸方向の座標値であり、深度は画像面に垂直なz軸方向の座標値(奥行き)である。なお、各関節点の深度は、関節点の一つである腰を基準(z=0)に表現される。サーバ1は、フレーム毎に各関節点の2次元座標値及び深度を推定する。
【0019】
次にサーバ1は、第1モデル51で推定した各フレーム画像の2次元座標値及び深度を第2モデル52に入力し、各フレーム画像における各関節点の3次元座標値を推定する。具体的には後述のように、サーバ1は、時系列に沿って連続する複数のフレーム画像のデータ(2次元座標値及び深度)を時系列方向に畳み込み、各フレーム画像における3次元座標値を推定する。
【0020】
図3は、第1モデル51に関する説明図である。
図3では、フレーム画像から関節点毎にヒートマップが生成され、各ヒートマップから各関節点の2次元座標値及び深度が推定される様子を概念的に図示している。
【0021】
第1モデル51は、上述の如く訓練データを学習済みの機械学習モデルであり、例えばCNN(Convolutional Neural Network;畳み込みニューラルネットワーク)である。本実施の形態では第1モデル51として、Integral Pose Regressionと呼ばれるモデルを用いる。当該モデルは、関節点を特徴点として抽出したヒートマップ(
図3中央参照)をフレーム画像から生成するタスクと、生成したヒートマップから関節点の座標値を推定するタスクとを行うモデルである。第1モデル51は、入力されたフレーム画像からヒートマップを生成し、生成したヒートマップに対してSoftmax関数を適用して正規化し、正規化されたヒートマップの重心位置を求めることにより各関節点の座標値を得る。
【0022】
具体的には、第1モデル51は、フレーム画像から各関節点の2次元座標値及び深度(すなわち、3次元座標値)を得るため、関節点毎に3次元ヒートマップを生成する。なお、
図3では図示の便宜上、ヒートマップを2次元で図示している。第1モデル51は、各関節点に対応する複数の3次元ヒートマップから、各関節点の2次元座標値及び深度を推定する。具体的には、第1モデル51は、以下の数式(1)に基づき各関節点の座標値を計算する。
【0023】
【0024】
なお、Jkは関節点の3次元座標値(kは関節点の番号)、Hkはヒートマップ、pはヒートマップ内の位置を表す。詳細な説明は省略するが、第1モデル51は、3次元のヒートマップHkをx,y,z軸それぞれに対応する1次元のベクトル値に変換し、各ベクトル値から関節点の座標値(x,y,z)を算出する。
【0025】
サーバ1は、訓練用の人物の動画像と、動画像を構成する各フレーム画像における各関節点の2次元座標値及び深度(3次元座標値)とを含む訓練データ(例えばHuman3.6M)を用いて、第1モデル51を生成する。サーバ1は、訓練用の動画像のフレーム画像を第1モデル51に入力し、ヒートマップを生成して各関節点の2次元座標値及び深度を推定する。サーバ1は、推定した2次元座標値及び深度を、正解の2次元座標値及び深度と比較し、両者が近似するように第1モデル51のパラメータ(ニューロン間の重み等)を最適化する。これによりサーバ1は、第1モデル51を生成する。
【0026】
上述の如く、本実施の形態に係る第1モデル51はフレーム画像からヒートマップを生成し、生成したヒートマップから関節点の座標値を推定する。ヒートマップ表現は学習が容易であるが、ヒートマップにおいて値が最大の位置を関節点の座標と推定する処理は微分不可能であるため、End-to-Endの推定が難しい。一方で、画像から直接的に関節点の座標を推定する処理(回帰)は学習が難しい。本実施の形態ではこれらの手法を統合し、学習が容易なヒートマップ表現を用いつつ、End-to-Endの推定を可能にする。
【0027】
図4は、第2モデル52に関する説明図である。
図4では、時系列で連続する複数のフレーム画像それぞれに対応する関節点の2次元座標値(及び深度)から、3次元座標値を推定する様子を概念的に図示している。
【0028】
第2モデル52は、第1モデル51と同様に機械学習モデルであり、例えば複数の畳み込み層を有するCNNである。本実施の形態では第2モデル52として、VideoPose3Dと呼ばれるモデルを用いる。当該モデルは、時系列データを取り扱う畳み込みニューラルネットワーク(Temporal Convolutional Network)であり、関節点の2次元座標値の時系列データから関節点の3次元座標値を推定するフレームワークである。
【0029】
具体的には、第2モデル52は、複数の畳み込み層それぞれに、拡張畳み込み(Dilated Covolution)と呼ばれる特殊な畳み込みフィルタを適用した拡張畳み込みニューラルネットワークにより構成される。より詳細には、直列的に接続された各畳み込み層に適用される畳み込みフィルタに、拡張係数(Dilation Factor)と呼ばれるハイパーパラメータが設定され、各畳み込み層では拡張係数dに応じて、di(iは畳み込み層の順序)ずつ入力データを畳み込む。
【0030】
図4ではd=3として、3
iずつ入力データが畳み込まれる様子を図示している。
図4の例では、1番目の畳み込み層で3フレーム分のデータが畳み込まれ、続く2番目の畳み込み層で、3×3=9フレーム分のデータが畳み込まれている。最終的に第2モデル52は、3
iフレーム分のデータを畳み込み、3
iフレームのうち、中央1フレーム(例えば3
i=9であれば5番目のフレーム)の3次元座標値を推定する。
【0031】
上述の如く、本実施の形態では拡張畳み込みニューラルネットワークを用いて、時系列で連続する複数フレームのデータを処理する。拡張畳み込みを採用することで、RNN(Recurrent Neural Network)等と比較して、複数フレームのデータを並列的に処理することができ、また、学習時のメモリ消費を抑えることもできる。
【0032】
図5は、第2モデル52のネットワーク構造を示す説明図である。
図5に、第2モデル52の具体的なネットワーク構造を図示する。本実施の形態に係る第2モデル52は、Skip-connectionを利用した残差ネットワーク(Residual Network)で構成され、中間層の各残差ブロック(以下、単に「ブロック」と呼ぶ)において入力と出力との残差を取りながら畳み込みを行う。
【0033】
図5において、太線で示すレイヤは畳み込み層である。
図5に示すように、入力層及び中間層は、畳み込み層及びその他のレイヤ(BatchNorm, ReLU, Dropout)から成るブロックで構成される。例えば入力層は1ブロック、中間層は4ブロックで構成される。入力層は所定のフレーム数(例えば243フレーム)の各関節点(例えばJ(Joints)=17の関節点)の座標値の入力を受け付ける。なお、畳み込み層に示す「3J,3d1,1024」はそれぞれ、入力チャネル数(3軸×関節数)、カーネルサイズ及び拡張係数(カーネルサイズが3、拡張係数が1)、及び出力チャネル数を表す。中間層も入力層と同様のブロック構造を有するが、拡張畳み込みを行うブロック(カーネルサイズが3diの畳み込み層を有するブロック)と、カーネルサイズが1のブロックとを1単位(1ブロック)として構成される。
図5に示すように、中間層では一のブロックの入力が次のブロックの入力にスキップされ、当該一のブロックの入力及び出力の残差が次のブロックに入力され、当該次のブロックの出力が計算される。
【0034】
上述の如く、本実施の形態では第2モデル52に残差ネットワークを用いる。これにより、ネットワークの層数を深くした場合の勾配消失や勾配発散の問題に好適に対処することができる。
【0035】
図5において中間層の各ブロックの先頭の畳み込み層に「3d3」、「3d9」、「3d27」、及び「3d81」と示すように、各ブロックの先頭の畳み込み層で、カーネルサイズを3として3フレーム、9フレーム、27フレーム、及び81フレーム分のデータが畳み込まれる。最終的に第2モデル52は、出力層に相当する最後尾の畳み込み層において、各関節点の3次元座標値(3J)を計算する。
【0036】
VideoPose3Dは関節点の2次元座標値を3次元座標値に変換するフレームワークであるが、本実施の形態では第2モデル52の入力に関節点の深度を加え、2次元座標値及び深度から3次元座標値を推定する。すなわち、通常は入力チャネル数が「2J」(x,y)であるところを、本実施の形態では「3J」(x,y,z)とする。サーバ1は、第1モデル51で推定した各フレーム画像の2次元座標値及び深度を第2モデル52に入力し、中央1フレームの3次元座標値を推定する。
【0037】
例えばサーバ1は、第1モデル51の学習に用いた訓練データ(Human3.6M)を第2モデル52の訓練データに用いて、第2モデル52を生成する。なお、第1モデル51及び第2モデル52で異なる訓練データを用いてもよい。サーバ1は、訓練用の動画像を構成する複数のフレーム画像それぞれの2次元座標値及び深度を第2モデル52に入力し、一のフレーム画像の3次元座標値を推定する。サーバ1は、推定した3次元座標値を正解の3次元座標値と比較し、両者が近似するように第2モデル52のパラメータ(ニューロン間の重み等)を最適化する。
【0038】
なお、詳細な説明は省略するが、サーバ1は、推定した3次元座標値を2次元座標値に逆変換する処理を行うこと(Back-Projection)で、正解の3次元座標値が既知の訓練データを用いた教師あり学習と、正解の3次元座標値が未知の訓練データを用いた教師なし学習とを組み合わせた半教師あり学習を行うようにしてもよい。
【0039】
本実施の形態でサーバ1は、学習を行う際に、訓練データが示す深度に所定のノイズを付加して第2モデル52に与える。例えばサーバ1は、ガウシアンノイズ(σ=0.1)を付加した値に深度を変換し、変換した深度と、訓練データが示す2次元座標値とを第2モデル52に与え、学習を行う。深度にノイズを付加して学習することで、過学習を抑制することができる。
【0040】
上述の如く、サーバ1は、2次元座標値及び深度を推定する第1モデル51と、3次元座標値を推定する第2モデル52とを利用して、動画像を構成する各フレーム画像における各関節点の3次元座標値を推定する。2次元座標値以外に深度を第2モデル52の入力に加えることで、人物の外観(奥行き)の情報を与え、3次元座標値を精度良く推定することができる。
【0041】
図6は、モデル生成処理の手順を示すフローチャートである。
図6に基づき、第1モデル51及び第2モデル52を生成する機械学習処理について説明する。
サーバ1の制御部11は、第1モデル51及び第2モデル52を生成するための訓練データを取得する(ステップS11)。訓練データは、人物を撮像した動画像と、動画像を構成する各フレーム画像における人物の各関節点の2次元座標値及び深度(3次元座標値)とを含む。
【0042】
制御部11は訓練データに基づき、動画像を構成するフレーム画像を入力した場合に、フレーム画像に写る人物の各関節点の2次元座標値及び深度を出力する第1モデル51を生成する(ステップS12)。具体的には、制御部11は、ヒートマップ推定と回帰とを統合したCNNを生成する。制御部11は、訓練用の動画像を構成する各フレーム画像を第1モデル51に入力して関節点毎に3次元ヒートマップを生成し、生成した3次元ヒートマップから各関節点の2次元座標値及び深度を推定する。制御部11は、推定した関節点の2次元座標値及び深度と、訓練データが示す正解の2次元座標値及び深度とを比較し、両者が近似するように第1モデル51のパラメータを最適化する。
【0043】
制御部11は、訓練データが示す関節点の深度を、ガウシアンノイズを付加した値を変換する(ステップS13)。制御部11は、深度を変換した訓練データに基づき、複数のフレーム画像それぞれに対応する各関節点の2次元座標値及び深度を入力した場合に、一のフレーム画像に対応する各関節点の3次元座標値を出力する第2モデル52を生成する(ステップS14)。具体的には、制御部11は、残差ネットワーク構造を有し、かつ、各畳み込み層で拡張畳み込みを行うCNNを生成する。制御部11は、訓練用の動画像を構成する複数のフレーム画像の2次元座標値と、変換後の深度とを第2モデル52に与え、中央1フレームに対応する各関節点の3次元座標値を推定する。制御部11は、推定した3次元座標値が、正解の3次元座標値に近似するように第2モデル52のパラメータを最適化する。制御部11は一連の処理を終了する。
【0044】
図7は、座標推定処理の手順を示すフローチャートである。
図7に基づき、動画像から各関節点の3次元座標値を推定する際の処理内容について説明する。
サーバ1の制御部11は、人物が撮像された動画像を端末2から取得する(ステップS31)。制御部11は、動画像を構成する各フレーム画像を第1モデル51に入力し、各フレーム画像に対応する各関節点の2次元座標値及び深度を推定する(ステップS32)。制御部11は、第1モデル51で推定された2次元座標値及び深度であって、連続する複数のフレーム画像それぞれに対応する2次元座標値及び深度を第2モデル52に入力し、一のフレーム画像に対応する各関節点の3次元座標値を推定する(ステップS33)。制御部11は一連の処理を終了する。
【0045】
以上より、本実施の形態によれば、動画像から2次元座標値及び深度を推定する第1モデル51と、複数フレームの2次元座標値及び深度から3次元座標値を推定する第2モデル52とを組み合わせることで、動画像に写る人物の各関節点の3次元座標値を好適に推定することができる。
【0046】
また、本実施の形態によれば、学習が容易なヒートマップ表現を用いつつ、End-to-Endで関節点の2次元座標及び深度を推定することができる。
【0047】
また、本実施の形態によれば、関節点毎に3次元ヒートマップを生成することで、各関節点の2次元座標値及び深度を精度良く推定することができる。
【0048】
また、本実施の形態によれば、第2モデル52に拡張畳み込みネットワークを用いることで、時系列データを好適に処理することができる。
【0049】
また、本実施の形態によれば、第2モデル52に残差ネットワークを用いることで、第2モデル52の層数が深くなった場合でも好適に処理することができる。
【0050】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0051】
1 サーバ(情報処理装置)
11 制御部
12 主記憶部
13 通信部
14 補助記憶部
P プログラム
51 第1モデル
52 第2モデル