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

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

▶ インテル・コーポレーションの特許一覧

特許7537058改良されたポーズ追跡を用いた運動学的インタラクションシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-13
(45)【発行日】2024-08-21
(54)【発明の名称】改良されたポーズ追跡を用いた運動学的インタラクションシステム
(51)【国際特許分類】
   G06V 10/34 20220101AFI20240814BHJP
   G06V 10/82 20220101ALI20240814BHJP
   G06T 7/00 20170101ALI20240814BHJP
   G06T 7/20 20170101ALI20240814BHJP
   G06T 13/40 20110101ALI20240814BHJP
【FI】
G06V10/34
G06V10/82
G06T7/00 350C
G06T7/20 300A
G06T7/00 660B
G06T13/40
【請求項の数】 32
(21)【出願番号】P 2022542299
(86)(22)【出願日】2020-04-23
(65)【公表番号】
(43)【公表日】2023-06-15
(86)【国際出願番号】 CN2020086412
(87)【国際公開番号】W WO2021212411
(87)【国際公開日】2021-10-28
【審査請求日】2023-03-02
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ワン、シャンドン
(72)【発明者】
【氏名】カン、ヤンギュシュアン
(72)【発明者】
【氏名】ヤオ、アンバン
(72)【発明者】
【氏名】ル、ミン
(72)【発明者】
【氏名】チェン、ユロン
【審査官】▲柳▼谷 侑
(56)【参考文献】
【文献】特表2013-533537(JP,A)
【文献】米国特許出願公開第2019/0295305(US,A1)
【文献】Junying Wang et al.,Img2Motion: Learning to Drive 3D Avatars using Videos,[online],2019年10月11日,https://easychair.org/publications/preprint_open/rf9K
【文献】Zhe Cao et al.,OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields,[online],2019年03月30日,https://arxiv.org/pdf/1812.08008.pdf
【文献】Dario Pavllo et al.,3D human pose estimation in video with temporal convolutions and semi-supervised training,[online],2019年03月29日,https://arxiv.org/pdf/1811.11742.pdf
【文献】Ruben Villegas et al.,Neural Kinematic Networks for Unsupervised Motion Retargetting,[online],2018年12月16日,https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8578999
【文献】Ching-Hang Chen et al.,Unsupervised 3D Pose Estimation with Geometric Self-Supervision,[online],2020年01月09日,https://ieeexplore.ieee.org/document/10042785/
(58)【調査した分野】(Int.Cl.,DB名)
G06V 10/34
G06V 10/82
G06T 7/00
G06T 7/20
G06T 13/40
(57)【特許請求の範囲】
【請求項1】
対象の3Dポーズを生成するように構成されたシステムであって、
前記対象の1つまたは複数の画像を撮像するように構成された撮像デバイスから前記1つまたは複数の画像を受信することと、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成することであって、前記2D骨格マップは複数の2D関節位置を含む、生成することと、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含む、生成することと、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、テンプレート3D骨格マップの対応する1つまたは複数のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、改良された3D骨格マップを生成することであって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有する、生成することと、
前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化することと
を実行するように構成された少なくとも1つのプロセッサ
備え、
前記改良された3D骨格マップを生成することは、前記推定3D骨格マップの投影と前記2D骨格マップの前記複数の2D関節位置との間の距離に関連する目的関数の誤差を最小化することを含む、
システム。
【請求項2】
対象の3Dポーズを生成するように構成されたシステムであって、
前記対象の1つまたは複数の画像を撮像するように構成された撮像デバイスから前記1つまたは複数の画像を受信することと、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成することであって、前記2D骨格マップは複数の2D関節位置を含む、生成することと、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含む、生成することと、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、テンプレート3D骨格マップの対応する1つまたは複数のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、改良された3D骨格マップを生成することであって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有する、生成することと、
前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化することと
を実行するように構成された少なくとも1つのプロセッサ
を備え、
前記少なくとも1つのプロセッサは、前記テンプレート3D骨格マップを生成するようにさらに構成されており、前記テンプレート3D骨格マップを生成することは、前記テンプレート3D骨格マップの高さを設定することと、人体測定統計を使用して前記テンプレート骨セグメントの長さを決定することとを含む、
システム。
【請求項3】
対象の3Dポーズを生成するように構成されたシステムであって、
前記対象の1つまたは複数の画像を撮像するように構成された撮像デバイスから前記1つまたは複数の画像を受信することと、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成することであって、前記2D骨格マップは複数の2D関節位置を含む、生成することと、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含む、生成することと、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、テンプレート3D骨格マップの対応する1つまたは複数のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、改良された3D骨格マップを生成することであって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有する、生成することと、
前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化することと
を実行するように構成された少なくとも1つのプロセッサ
を備え、
前記リターゲットすることは、リターゲット3D骨格マップを生成し、前記少なくとも1つのプロセッサは、前記リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換するようにさらに構成され、
前記改良された3D骨格マップを生成することは、前記リターゲット3D骨格マップ、前記推定3D骨格マップ、および前記2D骨格マップに関連する目的関数の誤差を最小化して、前記改良された3D骨格マップの前記関節角度および前記ルート関節位置について解くことを含む、
システム。
【請求項4】
前記撮像デバイスをさらに備え、前記撮像デバイスは、単一のRGBカメラを有する、請求項1から3のいずれか一項に記載のシステム。
【請求項5】
前記少なくとも1つのプロセッサは、前記2D骨格マップに関連付けられたデータをニューラルネットワークに入力することによって前記推定3D骨格マップを生成するように構成されており、前記ニューラルネットワークは、少なくとも前記複数の3D関節位置を出力するように構成されている、請求項1から4のいずれか一項に記載のシステム。
【請求項6】
前記少なくとも1つのプロセッサは、前記テンプレート3D骨格マップを生成するようにさらに構成されており、前記テンプレート3D骨格マップを生成することは、前記テンプレート3D骨格マップの高さを設定することと、人体測定統計を使用して前記テンプレート骨セグメントの長さを決定することとを含む、
請求項2を引用しない請求項1から5のいずれか一項に記載のシステム。
【請求項7】
前記リターゲットすることは、リターゲット3D骨格マップを生成し、前記少なくとも1つのプロセッサは、前記リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換するようにさらに構成されている、請求項3を引用しない請求項1から6のいずれか一項に記載のシステム。
【請求項8】
前記改良された3D骨格マップを生成することは、前記リターゲット3D骨格マップ、前記推定3D骨格マップ、および前記2D骨格マップに関連する目的関数の誤差を最小化して、前記改良された3D骨格マップの前記関節角度および前記ルート関節位置について解くことを含む、請求項に記載のシステム。
【請求項9】
前記少なくとも1つのプロセッサは、前記2D関節位置の各々と2Dルート関節位置との間の距離に基づいて前記2D関節位置を正規化するようにさらに構成されている、請求項1からのいずれか一項に記載のシステム。
【請求項10】
前記2Dルート関節位置は、前記対象の骨盤関節を表す、請求項に記載のシステム。
【請求項11】
前記少なくとも1つのプロセッサは、
前記1つまたは複数の画像内の第2の対象に関連付けられた第2の2D骨格マップを生成することであって、前記第2の2D骨格マップは、第2の複数の2D関節位置を含む、生成することと、
前記第2の複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記第2の対象に関連付けられた第2の推定三次元(3D)骨格マップを生成することであって、前記第2の推定3D骨格マップは、第2の複数の3D関節位置と、第2の3D関節位置の対応する対の間の第2の複数の骨セグメントとを含む、生成することと、
前記第2の推定3D骨格マップの前記第2の複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、第2のテンプレート3D骨格マップの1つまたは複数の対応する第2のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、第2の改良された3D骨格マップを生成することであって、前記第2のテンプレート3D骨格マップは、第2の複数のテンプレート3D関節位置と、第2のテンプレート3D関節位置の対応する対の間の第2の複数のテンプレート骨セグメントとを有する、生成することと、
前記第2の対象の対応する動きに基づいて、前記第2の改良された3D骨格マップをアニメーション化することと
を実行するようにさらに構成されている、
請求項1から10のいずれか一項に記載のシステム。
【請求項12】
対象の3Dポーズを生成するコンピュータ実装方法であって、
撮像デバイスによって撮像された前記対象の1つまたは複数の画像を受信する段階と、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成する段階であって、前記2D骨格マップは複数の2D関節位置を含む、生成する段階と、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成する段階であって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含む、生成する段階と、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つまたは複数の長さを少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントの長さにより厳密に一致させることによって、改良された3D骨格マップを生成する段階であって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有する、生成する段階と、
前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化する段階と
備え、
前記改良された3D骨格マップを生成することは、前記推定3D骨格マップの投影と前記2D骨格マップの前記複数の2D関節位置との間の距離に関連する目的関数の誤差を最小化することを含む、
コンピュータ実装方法。
【請求項13】
対象の3Dポーズを生成するコンピュータ実装方法であって、
撮像デバイスによって撮像された前記対象の1つまたは複数の画像を受信する段階と、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成する段階であって、前記2D骨格マップは複数の2D関節位置を含む、生成する段階と、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成する段階であって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含む、生成する段階と、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つまたは複数の長さを少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントの長さにより厳密に一致させることによって、改良された3D骨格マップを生成する段階であって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有する、生成する段階と、
前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化する段階と、
前記テンプレート3D骨格マップを生成する段階をさらに備え、前記テンプレート3D骨格マップを生成する段階は、前記テンプレート3D骨格マップの高さを設定する段階と、人体測定統計を使用して前記テンプレート骨セグメントの長さを決定する段階とを有する、
コンピュータ実装方法。
【請求項14】
対象の3Dポーズを生成するコンピュータ実装方法であって、
撮像デバイスによって撮像された前記対象の1つまたは複数の画像を受信する段階と、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成する段階であって、前記2D骨格マップは複数の2D関節位置を含む、生成する段階と、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成する段階であって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含む、生成する段階と、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つまたは複数の長さを少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントの長さにより厳密に一致させることによって、改良された3D骨格マップを生成する段階であって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有する、生成する段階と、
前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化する段階と
を備え、
前記リターゲットすることは、リターゲット3D骨格マップを生成し、前記コンピュータ実装方法は、前記リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換する段階をさらに備え、
前記改良された3D骨格マップを生成する段階は、前記リターゲット3D骨格マップ、前記推定3D骨格マップ、および前記2D骨格マップに関連する目的関数の誤差を最小化して、前記改良された3D骨格マップの前記関節角度および前記ルート関節位置について解く段階を有する、
コンピュータ実装方法。
【請求項15】
前記推定3D骨格マップを生成する段階は、前記2D骨格マップに関連付けられたデータをニューラルネットワークに入力する段階であって、前記ニューラルネットワークは、少なくとも前記複数の3D関節位置を出力するように構成されている、入力する段階を有する、請求項12から14のいずれか一項に記載のコンピュータ実装方法。
【請求項16】
前記テンプレート3D骨格マップを生成する段階をさらに備え、前記テンプレート3D骨格マップを生成する段階は、前記テンプレート3D骨格マップの高さを設定する段階と、人体測定統計を使用して前記テンプレート骨セグメントの長さを決定する段階とを有する、請求項13を引用しない請求項12から15のいずれか一項に記載のコンピュータ実装方法。
【請求項17】
前記リターゲットすることは、リターゲット3D骨格マップを生成し、前記コンピュータ実装方法は、前記リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換する段階をさらに備える、請求項14を引用しない請求項12から16のいずれか一項に記載のコンピュータ実装方法。
【請求項18】
前記改良された3D骨格マップを生成する段階は、前記リターゲット3D骨格マップ、前記推定3D骨格マップ、および前記2D骨格マップに関連する目的関数の誤差を最小化して、前記改良された3D骨格マップの前記関節角度および前記ルート関節位置について解く段階を有する、請求項17に記載のコンピュータ実装方法。
【請求項19】
前記2D関節位置の各々と2Dルート関節位置との間の距離に基づいて前記2D関節位置を正規化する段階をさらに備える、請求項12から18のいずれか一項に記載のコンピュータ実装方法。
【請求項20】
前記2Dルート関節位置は、前記対象の骨盤関節を表す、請求項19に記載のコンピュータ実装方法。
【請求項21】
前記1つまたは複数の画像内の第2の対象に関連付けられた第2の2D骨格マップを生成する段階であって、前記第2の2D骨格マップは、第2の複数の2D関節位置を含む、生成する段階と、
前記第2の複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記第2の対象に関連付けられた第2の推定三次元(3D)骨格マップを生成する段階であって、前記第2の推定3D骨格マップは、第2の複数の3D関節位置と、第2の3D関節位置の対応する対の間の第2の複数の骨セグメントとを含む、生成する段階と、
前記第2の推定3D骨格マップの前記第2の複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、第2のテンプレート3D骨格マップの1つまたは複数の対応する第2のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、第2の改良された3D骨格マップを生成する段階であって、前記第2のテンプレート3D骨格マップは、第2の複数のテンプレート3D関節位置と、第2のテンプレート3D関節位置の対応する対の間の第2の複数のテンプレート骨セグメントとを有する、生成する段階と、
前記第2の対象の対応する動きに基づいて、前記第2の改良された3D骨格マップをアニメーション化する段階と、
をさらに備える、請求項12から20のいずれか一項に記載のコンピュータ実装方法。
【請求項22】
1つまたは複数のプロセッサによって実行された場合、対象の3Dポーズを生成するための処理を実行させるエンコードされた命令を含むコンピュータプログラムであって、前記処理は、
撮像デバイスによって撮像された前記対象の1つまたは複数の画像を受信することと、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成することであって、前記2D骨格マップは複数の2D関節位置を含む、生成することと、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含む、生成することと、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つの長さを少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、改良された3D骨格マップを生成することであって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有する、生成することと
含み、
前記改良された3D骨格マップを生成することは、前記推定3D骨格マップの投影と前記2D骨格マップの前記複数の2D関節位置との間の距離に関連する目的関数の誤差を最小化することを含む、
コンピュータプログラム。
【請求項23】
1つまたは複数のプロセッサによって実行された場合、対象の3Dポーズを生成するための処理を実行させるエンコードされた命令を含むコンピュータプログラムであって、前記処理は、
撮像デバイスによって撮像された前記対象の1つまたは複数の画像を受信することと、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成することであって、前記2D骨格マップは複数の2D関節位置を含む、生成することと、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含む、生成することと、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つの長さを少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、改良された3D骨格マップを生成することであって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有する、生成することと
を含み、
前記処理は、前記テンプレート3D骨格マップを生成することと、前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化することとのうちの一方またはその両方をさらに含み、前記テンプレート3D骨格マップを生成することは、前記テンプレート3D骨格マップの高さを設定すること、および/または人体測定統計を使用して前記テンプレート骨セグメントの長さを決定することを含む、
コンピュータプログラム。
【請求項24】
1つまたは複数のプロセッサによって実行された場合、対象の3Dポーズを生成するための処理を実行させるエンコードされた命令を含むコンピュータプログラムであって、前記処理は、
撮像デバイスによって撮像された前記対象の1つまたは複数の画像を受信することと、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成することであって、前記2D骨格マップは複数の2D関節位置を含む、生成することと、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含む、生成することと、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つの長さを少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、改良された3D骨格マップを生成することであって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有する、生成することと
を含み、
前記リターゲットすることは、リターゲット3D骨格マップを生成し、前記処理は、前記リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換することをさらに含み、
前記改良された3D骨格マップを生成することは、前記リターゲット3D骨格マップ、前記推定3D骨格マップ、および前記2D骨格マップに関連する目的関数の誤差を最小化して、前記改良された3D骨格マップの前記関節角度および前記ルート関節位置について解くことを含む、
コンピュータプログラム。
【請求項25】
前記推定3D骨格マップを生成することは、前記2D骨格マップに関連付けられたデータをニューラルネットワークに入力することであって、前記ニューラルネットワークは、少なくとも前記複数の3D関節位置を出力するように構成されている、入力することを含む、請求項22から24のいずれか一項に記載のコンピュータプログラム。
【請求項26】
前記処理は、前記テンプレート3D骨格マップを生成することと、前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化することとのうちの一方またはその両方をさらに含み、前記テンプレート3D骨格マップを生成することは、前記テンプレート3D骨格マップの高さを設定すること、および/または人体測定統計を使用して前記テンプレート骨セグメントの長さを決定することを含む、請求項23を引用しない請求項22から25に記載のコンピュータプログラム。
【請求項27】
前記リターゲットすることは、リターゲット3D骨格マップを生成し、前記処理は、前記リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換することをさらに含む、請求項24を引用しない請求項22から26のいずれか一項に記載のコンピュータプログラム。
【請求項28】
前記改良された3D骨格マップを生成することは、前記リターゲット3D骨格マップ、前記推定3D骨格マップ、および前記2D骨格マップに関連する目的関数の誤差を最小化して、前記改良された3D骨格マップの前記関節角度および前記ルート関節位置について解くことを含む、請求項27に記載のコンピュータプログラム。
【請求項29】
前記処理は、前記2D関節位置の各々と2Dルート関節位置との間の距離に基づいて前記2D関節位置を正規化することをさらに含む、請求項22から28のいずれか一項に記載のコンピュータプログラム。
【請求項30】
前記2Dルート関節位置は、前記対象の骨盤関節を表す、請求項29に記載のコンピュータプログラム。
【請求項31】
前記処理は、
前記1つまたは複数の画像内の第2の対象に関連付けられた第2の2D骨格マップを生成することであって、前記第2の2D骨格マップは、第2の複数の2D関節位置を含む、生成することと、
前記第2の複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記第2の対象に関連付けられた第2の推定三次元(3D)骨格マップを生成することであって、前記第2の推定3D骨格マップは、第2の複数の3D関節位置と、第2の3D関節位置の対応する対の間の第2の複数の骨セグメントとを含む、生成することと、
前記第2の推定3D骨格マップの前記第2の複数の骨セグメントのうち1つの対応する長さを少なくともリターゲットして、第2のテンプレート3D骨格マップの対応する第2のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、第2の改良された3D骨格マップを生成することであって、前記第2のテンプレート3D骨格マップは、第2の複数のテンプレート3D関節位置と、第2のテンプレート3D関節位置の対応する対の間の第2の複数のテンプレート骨セグメントとを有する、生成することと
をさらに含む、請求項22から30のいずれか一項に記載のコンピュータプログラム。
【請求項32】
請求項22から31のいずれか一項に記載のコンピュータプログラムを格納した1または複数の機械可読格納媒体。
【発明の詳細な説明】
【背景技術】
【0001】
三次元(3D)の人のポーズの推定技術は、人間とコンピュータとのインタラクション、スポーツにおける生体力学解析、映画、ゲーム、およびソーシャル仮想現実(VR)の3Dキャラクタアニメーションなどの多くの用途で使用されている。この技術の1つの目標は、3D空間内の二次元(2D)ビデオで撮像された1人または複数の人間の人体関節を位置特定することである。しかしながら、これは実際には非常に困難である。撮像された2D画像から身体関節の3D位置を予測することは、典型的には、対応する3Dポーズ注釈を有する画像のデータセットを使用するが、そのようなデータセットから予測を行おうとすると、隣接するビデオフレームにわたって目に見えるジッタおよび非現実的な人のポーズを伴う、時間的に一貫性のない出力がしばしばもたらされる。したがって、撮像された2Dビデオまたは画像から、再現された3D画像に人の動作を正しくマッピングすることに関して、多くの重大な課題がある。
【図面の簡単な説明】
【0002】
特許請求される主題の実施形態の特徴および利点は、以下の詳細な説明が進行するにつれて、かつ図面を参照すると明らかになるであろう。
【0003】
図1】本開示の一実施形態による、2人の個人について3Dポーズ追跡が行われる例示的な環境を示す図である。
【0004】
図2】本開示の一実施形態に従って構成された例示的な運動学的インタラクションシステムのブロック図である。
【0005】
図3】本開示の一実施形態による、対象の3Dポーズを生成する方法を示す図である。
【0006】
図4A】本開示の一実施形態による、2D画像から撮像された、対象の例示的なポーズを示す図である。
【0007】
図4B】本開示の一実施形態による、対象の上に重ね合わされた2D骨格マップを示す図である。
【0008】
図4C】本開示の一実施形態による、図4Bの2D骨格マップから導出された3D骨格マップを示す図である。
【0009】
図4D】本開示の一実施形態による、より正確な骨セグメントを説明する改良された3D骨格マップを示す図である。
【0010】
図5A】本開示の一実施形態による、テンプレート3D骨格マップの一例を示す図である。
【0011】
図5B】本開示の一実施形態による、一セットの関節角度として表される3D骨格マップの一例を示す図である。
【0012】
図6】本開示の一実施形態による、目的関数を最小化することによって推定3D骨格マップを改良する方法を示す図である。
【0013】
図7A】本開示の一実施形態に従って構成された運動学的インタラクションシステムの例示的な利用を示す図である。
図7B】本開示の一実施形態に従って構成された運動学的インタラクションシステムの例示的な利用を示す図である。
図7C】本開示の一実施形態に従って構成された運動学的インタラクションシステムの例示的な利用を示す図である。
【0014】
以下の詳細な説明は、例示的な実施形態を参照して進行するが、その多くの代替形態、修正形態、および変形形態は、本開示に照らして明らかであろう。
【発明を実施するための形態】
【0015】
二次元(2D)カメラを使用して画像に撮像された対象の改良されたポーズ追跡を提供し、対象のポーズを再現する三次元(3D)画像を生成するための技術が開示される。これらの技術は、例えば、一実施形態によれば、RGBカメラなどの単一の撮像デバイスを使用して対象の画像またはビデオを撮像するように構成された運動学的インタラクションシステムとして実装することができる。運動学的インタラクションシステムは、撮像された対象のポーズまたは動きを表示された3D画像上にマッピングするようにプログラムされた、または他の方法でそのように構成された少なくとも1つのプロセッサを含む。より詳細には、および一実施形態によれば、少なくとも1つのプロセッサは、1つまたは複数の画像内の対象に関連付けられた2D骨格マップを生成し、2D骨格マップから導出された複数の2D関節位置に少なくとも基づいて、対象に関連付けられた推定3D骨格マップを生成するようにプログラムされる。いくつかのそのような実施形態では、3D骨格マップは、例えばディープニューラルネットワーク(DNN)または畳み込みニューラルネットワーク(CNN)などの訓練されたニューラルネットワークを使用して2D骨格マップから推定される。推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含む。本明細書で理解されるように、推定3D骨格マップは、洗練させることができるいくつかの不自然な、または非現実的な様相を含む可能性がある。より詳細には、一実施形態によれば、少なくとも1つのプロセッサは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有するテンプレート3D骨格マップにアクセスする。テンプレート3D骨格マップは、例えば、プロセッサによって生成されてもよく、またはメモリを介してアクセスされる場合もあり、テンプレート3D骨格マップの所与の高さに基づく人体測定統計を使用して設定された長さを有する骨セグメントを含むことができる。テンプレート3D骨格マップを用いて、プロセッサは、推定3D骨格マップの複数の骨セグメントのうち1つまたは複数を少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントをより厳密に一致させることによって、改良された3D骨格マップを生成することができる。改良された3D骨格マップはその後、対象の対応する動きを追跡するために、様々な方法(例えば、様々なスキンまたはグラフィックを使用する)でアニメーション化することができる。本開示に照らして、多数の用途、変形形態、および代替の実施形態が理解されよう。
[概要]
【0016】
これ以前に記載したように、対象の動きを正確に追跡する3D画像を生成することに関して、多数の重大な問題が残っている。既存の3Dの人のポーズ推定方法の最大の問題の1つは、3Dポーズを推定するために使用される訓練セットが現実のシナリオに適用できないことが多いことである。例えば、対応する3Dポーズ注釈を有する多くの画像を有する訓練データセットを有する深層学習方法を使用して、対象の撮像された2D画像が与えられた3Dポーズを推定する。しかし、そのような訓練データセットは、典型的には、屋内、または何らかの他の適切に制御された環境において撮像されたモデルを使用する。データ訓練セットモデルと実際の環境において撮像された実際のライブモデルとの間のギャップのために、訓練されたモデルは、堅牢な3D追跡結果を生成できないことが頻繁にある。さらに、ディープラーニングモデルからの3Dポーズの直接の予測は、身体構造および動作を管理する解剖学的制約の欠如に起因して、目に見えるジッタ、変動する骨セグメント、および隣接するビデオフレームにわたる非現実的な人間のポーズを伴う、時間的に一貫性のない出力をもたらす可能性がある。
【0017】
したがって、一実施形態によれば、推定3D骨格マップに対して実際の解剖学的制約を使用することによって、対象にマッピングされた改良された3Dポーズをもたらす技術が本明細書で提供される。簡単に言えば、推定3D骨格マップは、解剖学的に正しい骨セグメントおよび位置を有するテンプレート3D骨格マップを使用して調整される。一実施形態によれば、調整された3D骨格マップの様々な関節位置は関節角度に変換され、関節角度の改良されたセットは、様々な骨格マップ間の関係性を表す目的関数を最小化することによって見出される。改良された3D骨格マップが生成されると、対象の動きを追跡するためにそれをアニメーション化することができる。様々なスキンを改良された3D骨格マップに適用して、様々な異なるアバターアニメーションを作成することができる。アニメーションは、任意の標準的な3Dアニメーションソフトウェア、例えば、Maya、Blender、Unreal Engine、またはUnityを使用して実行することができる。理解されるように、任意の数の用途が、この技術から利益を得ることができるが、それらはゲームおよび仮想現実用途の文脈において特に有用である。
【0018】
さらに理解されるように、本明細書における説明は人である対象の追跡に焦点を当てているが、運動学的インタラクションシステムを使用して、(例えば、DNNまたはCNNを訓練する際に使用するために)画像の何らかの格納されたデータセットが存在する任意の対象の動きを追跡することができる。これらの対象は、生物としての存在または生物以外の存在であり得る。したがって、「骨セグメント」などの用語の使用は、無生物の対象(例えば、使い捨てのマネキンもしくはダミー、またはロボット、または擬似骨格構造を有する任意の他の物体)を含む任意の対象の関節位置間のセグメントのものとより広く考えることができる。さらに、いくつかの実施形態では、2つ以上の対象の両方とも、撮像された2D画像内に一緒に存在する場合、彼らは同時に追跡され得る。本明細書で使用される場合、2D画像の撮像は、単一の画像、およびビデオ、または一連の時間的に関連する画像を生成するために連続して撮像された複数画像の両方を包含する。
【0019】
いくつかの特定の例示的な実施形態によれば、対象の3Dポーズを生成するように設計されたシステムは、撮像デバイスと、少なくとも1つのプロセッサとを含む。撮像デバイスは、対象の1つまたは複数の画像を撮像するように構成される。少なくとも1つのプロセッサは、撮像デバイスから1つまたは複数の画像を受信し、1つまたは複数の画像内の対象に関連付けられた二次元(2D)骨格マップを生成し、この場合2D骨格マップは複数の2D関節位置を含み、複数の2D関節位置に少なくとも基づいて、1つまたは複数の画像内の対象に関連付けられた推定三次元(3D)骨格マップを生成し、この場合推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含み、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有するテンプレート3D骨格マップにアクセスし、推定3D骨格マップの複数の骨セグメントのうち1つまたは複数を少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントにより厳密に一致させることによって、改良された3D骨格マップを生成し、対象の対応する動きに基づいて、改良された3D骨格マップをアニメーション化するように構成される。
【0020】
別の例示的な実施形態によれば、対象の3Dポーズを生成するコンピュータ実装方法は、撮像デバイスによって撮像された対象の1つまたは複数の画像を受信することと、1つまたは複数の画像内の対象に関連付けられた二次元(2D)骨格マップを生成することであって、2D骨格マップは複数の2D関節位置を含むことと、複数の2D関節位置に少なくとも基づいて、1つまたは複数の画像内の対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含むことと、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有するテンプレート3D骨格マップにアクセスすることと、推定3D骨格マップの複数の骨セグメントのうち1つまたは複数を少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントにより厳密に一致させることによって、改良された3D骨格マップを生成することと、対象の対応する動きに基づいて、改良された3D骨格マップをアニメーション化することとを含む。
【0021】
別の例示的な実施形態によれば、1つまたは複数のプロセッサによって実行されるとき、対象の3Dポーズを生成するための処理を実行させる、エンコードされた命令を有する1つまたは複数の非一時的機械可読媒体を含むコンピュータプログラム製品が開示される。処理は、上述の方法のいずれかを含むことができる。
【0022】
説明は、それぞれが同じまたは異なる実施形態のうち1つまたは複数を指す場合がある「一実施形態では、」または「実施形態では、」という語句を使用する。さらに、本開示の複数の実施形態に関して使用される「備える」、「含む」、「有する」等の用語は、同義である。寸法の範囲を説明するために使用される場合、「XとYとの間」という語句は、XおよびYを含む範囲を表す。
【0023】
同様に、特許請求される主題を理解するのに最も役立つように、様々な動作は、複数の別個のアクションまたは動作として説明され得る。しかしながら、説明の順序は、これらの動作が必ずしも順序に依存していることを示唆するものと解釈すべきではない。特に、これらの動作は、提示の順序で実行されなくてもよい。説明した動作は、説明した実施形態とは異なる順序で実行されてもよい。様々な追加の動作が実行されてもよく、および/または説明された動作は、追加の実施形態では省略されてもよい。
[運動学的インタラクションシステムの概要]
【0024】
図1は、一実施形態による、1つまたは複数の対象の動きが追跡され、表示画面上の対象の3D表現を生成するために使用される例示的な運動学的環境100を示す。運動学的環境100は、リビングルームなどの家庭内の部屋を表してよい、またはスポーツイベントなどで対象が動き回っている屋外の場所であってもよい。
【0025】
一実施形態によれば、対象104-1および104-2の2D画像を撮像するための撮像デバイス102が存在する。この例では2つの対象が存在するが、任意の数の対象の画像を撮像デバイス102で撮像することができることを理解されたい。一実施形態によれば、撮像デバイス102は、対象104-1および104-2の2D画像のみを撮像するための単一のカメラを表す。例えば、撮像デバイス102は、単一のRGBカメラであってもよい。
【0026】
撮像デバイス102は、対象104-1および104-2の3D表現を表示するために、有線または無線のいずれかでディスプレイ106に接続されてよい。いくつかの実施形態によれば、撮像デバイス102内の少なくとも1つのプロセッサは、対象104-1および104-2の動きをそれぞれ追跡するために、ディスプレイ106上に3Dアバター108-1および108-2を作成する。いくつかの実施形態によれば、少なくとも1つのプロセッサがディスプレイ106内に存在する。いくつかの他の実施形態では、少なくとも1つのプロセッサは、撮像デバイス102およびディスプレイ106の両方とは別個のデバイス内に配置される。
【0027】
3Dアバター108-1および108-2は、アバターが、何らかの方法で表示された環境と相互作用するように生成されてよい。例えば、ディスプレイ106がアバター108-1に向かって飛んでくる物体を示した場合、3Dアバター108-1がディスプレイ106上の飛行物体を回避するために同様に頭を下げるために、対象104-1は、頭を下げるか、または何らかの他の行動を行う必要があり得る。任意の他の同様の相互作用が容易に明らかであろう。
【0028】
図2は、本開示の特定の実施形態に従って構成された例示的な運動学的インタラクションシステム200を示す。いくつかの実施形態では、運動学的インタラクションシステム200は、パーソナルコンピュータ、ワークステーション、サーバシステム、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、携帯電話とPDAとの組み合わせ、スマートデバイス(例えば、スマートフォンまたはスマートタブレット)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス、撮像デバイス、ウェアラブルデバイス、組み込みシステムなどをホストするか、そうでなければそれらに組み込まれてもよい。特定の実施形態では、異なるデバイスの任意の組み合わせを使用することができる。いくつかの実施形態では、運動学的インタラクションシステム200は、外部カメラ201およびディスプレイ203とインターフェース接続する独立型コンピューティングシステムである。いくつかの実施形態では、運動学的インタラクションシステム200は、カメラ201およびディスプレイ203のいずれか、またはその両方を含む。カメラ201は、1人または複数の対象の2D画像を撮像する単一のRGBカメラを表すことができる。ディスプレイ203は、視覚画像を提供する任意のディスプレイデバイスであってもよい。ディスプレイ203の例は、タッチスクリーンディスプレイ、コンピュータモニタ、テレビディスプレイ、高精細ディスプレイ、プロジェクタシステム、ホログラフィックディスプレイ、ヘッドアップディスプレイ(HUD)、液晶ディスプレイ(LCD)、または発光ダイオード(LED)ディスプレイを含むことができる。
【0029】
いくつかの実施形態では、運動学的インタラクションシステム200は、プロセッサ202、メモリ204、ネットワークインターフェース206、入/出力(I/O)システム208、ユーザインターフェース210、および記憶システム212の任意の組み合わせを含むことができる。さらに分かるように、上に列挙した様々なコンポーネントおよび/または図示されていない他のコンポーネント間の通信を可能にするためにバスおよび/または相互接続も設けられる。運動学的インタラクションシステム200は、他のコンピューティングデバイス、プラットフォーム、またはリソースとの通信を可能にするために、ネットワークインターフェース206を介してネットワーク216に結合することができる。図2のブロック図に反映されていない他のコンポーネントおよび機能が、本開示に照らして明らかであり、他の実施形態は、いかなる特定のハードウェア構成にも限定されないことが理解されよう。
【0030】
プロセッサ202は、任意の適切なプロセッサとすることができ、運動学的インタラクションシステム200に関連付けられた制御および処理動作を支援するための1つまたは複数のコプロセッサまたはコントローラを含むことができる。いくつかの実施形態では、プロセッサ202は、任意の数のプロセッサコアとして実装されてもよい。プロセッサ(またはプロセッサコア)は、例えば、マイクロプロセッサ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、グラフィックスプロセッサ(GPU)、ネットワークプロセッサ、フィールドプログラマブルゲートアレイ、またはコードを実行するように構成された他のデバイスなどの、任意のタイプのプロセッサであってもよい。プロセッサは、コアごとに2つ以上のハードウェアスレッドコンテキスト(または「論理プロセッサ」)を含み得るという点で、マルチスレッドコアであり得る。
【0031】
プロセッサ202は、カメラ201から撮像された画像内の対象に対して2D骨格マップを生成し、2D骨格マップに基づいて3D骨格マップを形成するソフトウェアを実行するように設計されてもよい。本明細書で考察するように、いくつかの実施形態によれば、3D骨格マップを形成する処理は、解剖学的異常を補正するためにテンプレート3D骨格マップを使用することによって改良される。いくつかの実施形態では、プロセッサ202は、様々な対象のポーズのデータセットを使用して訓練されたDNNまたはCNNを使用して、2D骨格マップから3D骨格マップを推定する。いくつかの実施形態では、プロセッサ202は、最終的な3D骨格マップを直接(例えば、骨格画像)または何らかの形のスキンと共にディスプレイ203上に出力して、ディスプレイ203上に3Dアバターを作成する。
【0032】
メモリ204は、例えばフラッシュメモリおよび/またはランダムアクセスメモリ(RAM)を含む任意の適切なタイプのデジタル記憶装置を使用して実装することができる。いくつかの実施形態では、メモリ204は、メモリ階層および/またはメモリキャッシュの様々な層を含んでもよい。メモリ204は、限定はしないが、RAM、ダイナミックRAM(DRAM)、またはスタティックRAM(SRAM)デバイスなどの揮発性メモリデバイスとして実装されてもよい。記憶システム212は、限定はしないが、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ユニバーサルシリアルバス(USB)ドライブ、光ディスクドライブ、テープドライブ、内部記憶デバイス、取り付け式の記憶デバイス、フラッシュメモリ、バッテリバックアップされた同期DRAM(SDRAM)、および/またはネットワークアクセス可能な記憶デバイスのうち1つまたは複数などの不揮発性記憶デバイスとして実装されてもよい。いくつかの実施形態では、記憶システム212は、複数のハードドライブが含まれる場合、貴重なデジタル媒体に対するストレージ性能向上保護を向上させる技術を備えてもよい。メモリ204は、任意の数のメモリデバイスを表すことができる。
【0033】
いくつかの実施形態では、メモリ204は、3D骨格マップを作成するためにプロセッサ202によってアクセスされるニューラルネットワーク(例えば、DNNまたはCNN)の様々な層およびノードを格納する。いくつかの実施形態では、プロセッサ202は、カメラ202によって撮像された2D画像のうち1つまたは複数、2D骨格マップのうち1つまたは複数、および/または3D骨格マップのうち1つまたは複数をメモリ204に格納する。より一般的には、メモリ204は、カメラ201から撮影された1つまたは複数の2D画像に撮像された対象のポーズを追跡する改良された3D骨格マップを生成するためにプロセッサ202によって実行されるべき動作を含む3Dポーズアプリケーション205を含むことができる。3Dポーズアプリケーション205によって実行される様々な動作の少なくともいくつかは、図3を参照して本明細書で説明される。いくつかの実施形態では、メモリ204は、ニューラルネットワークを訓練または更新するために使用され得る、ポーズの関節位置と共に、異なる3Dポーズのデータベースを有する画像セット207を含む。
【0034】
プロセッサ202は、Google Android(登録商標)(カリフォルニア州マウンテンビューのGoogle Inc.)、Microsoft Windows(登録商標)(ワシントン州レドモンドのMicrosoft Corp.)、Apple OS X(登録商標)(カリフォルニア州クパチーノのApple Inc.)、Linux(登録商標)、または real-time operating system(RTOS)などの任意の適切なオペレーティングシステムを含み得るオペレーティングシステム(OS)214を実行するように構成されてよい。本開示に照らして理解されるように、本明細書で提供される技術は、運動学的インタラクションシステム200に関連して提供される特定のオペレーティングシステムに関係なく実装することができ、したがって、任意の適切な既存のプラットフォームまたは後に開発されるプラットフォームを使用して実装することもできる。
【0035】
ネットワークインターフェース206は、運動学的インタラクションシステム200および/またはネットワーク216の他のコンポーネント間の有線および/または無線接続を可能にし、それによって運動学的インタラクションシステム200が他のローカルおよび/またはリモートコンピューティングシステム、サーバ、クラウドベースのサーバ、および/または他のリソースと通信することを可能にする任意の適切なネットワークチップまたはチップセットとすることができる。有線通信は、例えばイーサネット(登録商標)などの既存の(またはまだ開発されていない)規格に準拠することができる。無線通信は、例えば、LTE(ロングタームエボリューション)、ワイヤレスフィデリティ(Wi-Fi(登録商標))、Bluetooth(登録商標)、および/または近距離無線通信(NFC)を含むセルラー通信などの既存の(またはまだ開発されていない)規格に準拠することができる。例示的な無線ネットワークには、限定はしないが、無線ローカルエリアネットワーク、無線パーソナルエリアネットワーク、無線メトロポリタンエリアネットワーク、セルラーネットワーク、および衛星ネットワークが含まれる。
【0036】
I/Oシステム208は、様々なI/Oデバイスと運動学的インタラクションシステム200の他のコンポーネントとの間をインターフェース接続するように構成されてもよい。I/Oデバイスは、限定はしないが、ユーザインターフェース210を含むことができる。ユーザインターフェース210は、例えば、表示要素、タッチパッド、キーボード、マウス、およびスピーカなどのデバイス(図示せず)を含むことができ、I/Oシステム208は、表示要素上でレンダリングするための画像の処理を実行するように構成されたグラフィックスサブシステムを含むことができる。グラフィックスサブシステムは、例えば、グラフィックス処理ユニットまたは視覚処理ユニット(VPU)であってもよい。アナログまたはデジタルインターフェースを使用して、グラフィックスサブシステムと表示要素とを通信可能に結合することができる。例えば、インターフェースは、高精細度マルチメディアインターフェース(HDMI(登録商標))、DisplayPort、無線HDMI(登録商標)、および/または無線高精細度準拠技術を使用する任意の他の適切なインターフェースのいずれかとすることができる。いくつかの実施形態では、グラフィックスサブシステムを、プロセッサ202または運動学的インタラクションシステム200の任意のチップセットに統合することができる。
【0037】
いくつかの実施形態では、運動学的インタラクションシステム200の様々なコンポーネントは、システムオンチップ(SoC)アーキテクチャに組み合わされてもよい、またはそれに統合されてもよいことが理解されよう。いくつかの実施形態では、コンポーネントは、ハードウェアコンポーネント、ファームウェアコンポーネント、ソフトウェアコンポーネント、またはハードウェア、ファームウェアもしくはソフトウェアの任意の適切な組み合わせであってもよい。
【0038】
様々な実施形態において、運動学的インタラクションシステム200は、無線システムとして、有線システムとして、またはその両方の組み合わせとして実装されてもよい。無線システムとして実装される場合、運動学的インタラクションシステム200は、例えば、1つまたは複数のアンテナ、送信機、受信機、トランシーバ、増幅器、フィルタ、制御ロジックなどの無線共有媒体を介して通信するのに適したコンポーネントおよびインターフェースを含むことができる。無線共有媒体の例は、例えば無線周波数スペクトルなどの無線スペクトルの部分を含み得る。有線システムとして実装される場合、運動学的インタラクションシステム200は、例えば、入/出力アダプタ、入/出力アダプタを対応する有線通信媒体と接続するための物理コネクタ、ネットワークインターフェースカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなどの、有線通信媒体を介して通信するのに適したコンポーネントおよびインターフェースを含むことができる。有線通信媒体の例は、ワイヤ、ケーブル金属リード、プリント回路基板(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、光ファイバなどを含むことができる。
[3D骨格マップを改良するための方法論]
【0039】
図3は、本開示の一実施形態による、対象の3Dポーズを生成するための例示的な方法300のフロー図である。方法300は、例えば、運動学的インタラクションシステム200の図示されたコンポーネントのうち1つまたは複数を使用して実行することができる。より一般的には、方法300および本明細書に記載の他の方法は、ハードウェアまたはハードウェアとソフトウェアとの組み合わせで実装することができる。別の実施形態では、方法300は、方法300を実行するように構成された1つまたは複数の特定用途向け集積回路(ASIC)などのカスタム処理回路を有するカスタム回路によって実装することができる。さらに、本明細書に記載される方法は、それらの動作に対して特定の順序を有するように見える場合があるが、他の実施形態はそのように限定されなくてもよい。したがって、本開示に照らして明らかなように、動作の順序は実施形態間で変えることができる。
【0040】
方法300は、一実施形態によれば、対象の1つまたは複数の画像が撮像される動作302から開始する。撮像された画像は、単一の画像であってもよいし、ビデオであってもよい。一実施形態によれば、画像は、単一のRGBカメラなどの単一のカメラを使用して撮像される。図4Aは、特定のポーズでの対象402の撮像された画像の一例を示す。撮像された画像には、対象402の全体が含まれていてもよいし、対象402の一部しか含まれなくてもよい。追加の対象が、単一の撮像された画像またはビデオフレーム内に存在してもよい。
【0041】
方法300は、一実施形態によれば、対象の2D骨格マップが生成される動作304に続く。OpenPoseなどの2Dポーズ検出器ソフトウェアを使用して、対象の撮像された画像に基づいて2D骨格マップを生成することができるが、任意の他の2Dポーズ検出ソフトウェアまたはアルゴリズムも同様に使用することができる。2D骨格マップ(S2d)は、画像空間内のJ個の総関節位置に対して、
【数1】
のような一連の2D関節位置として表すことができる。図4Bは、一実施形態による、対象402に重ね合わされた例示的な2D骨格マップ404を示す。2D骨格マップは、2D空間において対象402のポーズを再現するための複数の2D関節位置406を含む。さらに、いくつかの実施形態では、2D関節位置406の各々間のマッピングを形成するために骨長セグメントが提供される。
【0042】
いくつかの実施形態によれば、様々な2D関節位置の位置を予測することに加えて、2Dポーズ検出器ソフトウェアはまた、各スコア
【数2】
がその関連付けられた2D関節位置
【数3】
の検出信頼度を表す一セットの信頼スコアを出力する。信頼スコアは、対象402の撮像された画像において特定の2D関節位置がどの程度良好に認識されるかに基づくことができる。例えば、それ自体で塞がれる2D関節位置については低い信頼スコアが予想され、塞がれない2D関節位置についてはより高い信頼スコアが予想される。いくつかのポーズは、対象上の特定の2D関節位置を識別するのに他のポーズよりも困難である場合があるため、信頼スコアは、対象のポーズによっても影響される可能性がある。
【0043】
いくつかの実施形態によれば、追跡アルゴリズムは、撮像された画像内に存在する2つ以上の対象を識別するために使用される。個々の2D骨格マップが、各識別された対象について生成され、固有のラベルが各対象に割り当てられて、後に撮像される画像内の対象が識別される。いくつかの実施形態では、1つまたは複数のノイズフィルタアルゴリズムを2D骨格マップに適用して、より安定した滑らかな結果を提供することができる。いくつかの例示的なノイズフィルタアルゴリズムは、ユーロフィルタまたはカルマンフィルタを含む。
【0044】
いくつかの実施形態によれば、2D骨格マップは、撮像された2D画像からの環境または対象のわずかな変動を考慮するために、3D骨格マップを推定するために使用される前に正規化される。2D関節位置の正規化手順は、以下の式
【数4】
を使用して実行することができる。
【0045】
0番目の2D関節位置(
【数5】
)は骨盤関節位置であるように設定され、他のすべての2D関節位置は、0番目の2D関節位置からのその距離に基づいて正規化される。スケール係数(1/λ)は、0番目の2D関節位置と他のすべての2D関節位置との間の最大距離として設定されてよい。
【0046】
方法300は、一実施形態によれば、2D骨格マップに基づいて対象の3D骨格マップが推定される動作306に進む。3D骨格マップの推定は、入力された2D関節位置に基づいて最も適合する3Dポーズ表現を識別するように訓練されたニューラルネットワークへの入力として、様々な2D関節位置(
【数6】
)の位置を使用することができる。いくつかの実施形態によれば、上記で考察したように、2D関節位置の正規化バージョンは3D骨格マップを生成するために使用される。いくつかの実施形態によれば、2D関節位置から3D骨格マップを推定するために使用されるニューラルネットワークは、任意の公的に利用可能な3Dポーズデータセットを使用して訓練されてもよい。いくつかの例示的なデータセットは、H3.6M、MPI-INF-3DHP、およびHumanEvaデータセットを含む。いくつかの実施形態によれば、ニューラルネットワークによって生成された出力は、3D骨格マップを構築するために使用される複数の3D関節位置を少なくとも含む。
【0047】
図4Cは、一実施形態による、2D骨格マップ404に基づいて推定され得る対象402の例示的な3D骨格マップ408を示す。3D骨格マップ408は、骨セグメント412を使用して互いに接続された複数の3D関節位置410を含む。推定3D骨格マップ408は、対象402を表現するために使用され得るが、さらなる最適化なしでは、表現の精度が損なわれる可能性がある。したがって、いくつかの実施形態によれば、3D骨格マップ408は、改良された3D骨格マップを提供するために追加の処理を受ける。
【0048】
方法300は、一実施形態によれば、テンプレート3D骨格マップがアクセスされる動作308に進む。テンプレート3D骨格マップは、図5Aの例示的なテンプレート3D骨格マップ501のように、「静止」ポーズで準備されてもよい。この例では、テンプレート3D骨格マップ501は、複数のテンプレート関節位置504と、テンプレート関節位置504を互いに接続する複数のテンプレート骨セグメント506とを含む。テンプレート3D骨格マップのポーズは、各テンプレート関節位置504が塞がれないことを保証するように選択されてよい。理解されるように、図5Aに示すポーズ以外の他の塞がれない「静止」ポーズを使用することも可能である。一実施形態によれば、3D骨格マップ501の高さが既知である場合、人体測定統計を使用して様々なテンプレート骨セグメント506の長さを決定することができる。いくつかの実施形態では、成人の平均身長を表すことができる165cmのデフォルトの高さなど、デフォルトの高さがテンプレート3D骨格マップに使用される。いくつかの実施形態では、テンプレート3D骨格マップの高さは、所与の対象の正確な高さを提供して、所与の対象のサイズにより厳密に適合するテンプレート3D骨格マップを形成することができるように、ユーザによって設定された任意の値であってもよい。いくつかの実施形態では、身長は、対象の性別および年齢などのいくつかの入力されたパラメータに基づいて導出されてよい。さらに他の実施形態では、場合によっては2D画像に描写された他の物体を含む、描写された特徴に基づいて対象の高さを推定するアルゴリズムなどの高さ推定アルゴリズムを使用することができる。テンプレート3D骨格マップの高さがどのように決定されても、テンプレート関節位置の間のテンプレート骨セグメントは、高さに基づいて計算されて完全なテンプレート3D骨格マップを生成することができる。
【0049】
テンプレート3D骨格マップは、メモリに格納されてよく、したがって、(例えば、テンプレートが対象402に対してそれ以前に受注製作されている状況では)メモリからアクセスされてよい。別の例では、テンプレート3D骨格マップは、静止ポーズおよび高さに基づいて生成され、高さは、上述の異なる方法のうちのいずれかで取得することができる。
【0050】
方法300は、一実施形態によれば、改良された3D骨格マップが生成される動作310に続く。一実施形態によれば、改良された3D骨格マップは、テンプレート3D骨格マップを使用してニューラルネットワークから出力される推定3D骨格マップを変更することによって生成される。改良された3D骨格マップがどのように生成されるかについてのより詳細な処理は、図6を参照して本明細書でさらに説明される。一般的には、この処理は、テンプレート3D骨格マップ内の骨セグメントの人体測定的に正しい長さに基づいて、推定3D骨格マップ内の骨セグメントのうち1つまたは複数の長さを更新することと、それに応じて関節角度を調整することとを伴う。対象402の改良された3D骨格マップの例を図4Dに示す。改良された3D骨格マップ414は、更新された骨セグメント418(例えば、より適切に間隔をおいた脚部および屈曲した膝の位置)と共に、更新された関節位置416(例えば、より真っ直ぐな脊柱)を含む。右腕の肘の角度の変化にさらに留意されたく、右腕の肘の角度は、外側よりも内側に自然に曲がるようになっている。
【0051】
方法300は、動作312に続き、一実施形態によれば、動作310で生成された改良された3D骨格マップは画面上に表示される、またはアニメーション化される。いくつかの例では、改良された3D骨格マップは、骨格フレームを覆うスキンまたは他のグラフィックスなしで表示される。いくつかの例では、改良された3D骨格マップに対してスキンが適用されて、対象の動きを追跡するようにアニメーション化できるよりリアルな外観のフォームを生成する。いくつかの例を挙げると、マヤ、ブレンダ、アンリアルエンジン、またはユニティを含む任意の既存のアニメーションソフトウェアを使用することができる。
【0052】
図6は、一実施形態による、推定3D骨格マップおよびテンプレート3D骨格マップに基づいて改良された3D骨格マップを生成するための例示的な方法600のフロー図である。理解されるように、この方法600は、方法300からの動作310のさらなる詳細を示す。方法600は、例えば、運動学的インタラクションシステム200の図示されたコンポーネントのうち1つまたは複数を使用して実行することができる。より一般的には、方法600および本明細書に記載の他の方法は、ハードウェアまたはハードウェアとソフトウェアとの組み合わせで実装することができる。別の実施形態では、方法600は、方法600を実行するように構成された1つまたは複数の特定用途向け集積回路(ASIC)などのカスタム処理回路を有するカスタム回路によって実装することができる。さらに、本明細書に記載される方法は、それらの動作に対して特定の順序を有するように見える場合があるが、他の実施形態はそのように限定されなくてもよい。したがって、本開示に照らして明らかなように、動作の順序は実施形態間で変えることができる。
【0053】
方法600は、一実施形態によれば、推定3D骨格マップ内の骨セグメントのうち1つまたは複数の長さがリターゲットされて、テンプレート3D骨格マップ内の対応する骨セグメントの長さにより厳密に一致させる動作602で始まる。実際の人体測定統計に基づいて骨セグメントの長さを変更することは、ニューラルネットワークの出力が、解剖学的に可能であり、実際の身体の物理学により厳密に一致する結果を生み出すことを確実にするのに役立つ。一実施形態によれば、推定3D骨格マップの骨セグメントは、それらの相対方向を同じに維持したままで変更される。リターゲットされた骨セグメントの長さを有する推定3D骨格マップは、本明細書ではリターゲット3D骨格マップと呼ばれる。
【0054】
方法600は、一実施形態によれば、リターゲット3D骨格マップの様々な関節位置の3D座標がそれらの対応する関節角度に変換される動作604に続く。例えば、リターゲットされた3D骨格マップ(
【数7】
)は、代わりに
【数8】
で表されてもよく、ここで
【数9】
であり、
【数10】
は、運動学的ツリー内のその親に対する各番号付けされた3D関節位置(k)の相対回転の軸角度表現を示す。例えば、図5Aのテンプレート3D骨格マップ501は、
【数11】
のゼロベクトルを使用して骨格マップを表すことができるが、図5Bからのリターゲット3D骨格マップ502は、様々なリターゲット3D関節位置508およびリターゲット骨セグメント510の位置および向きに影響を及ぼすいくつかの関節回転
【数12】
を含む。いくつかの実施形態では、様々な関節角度は、ルート関節位置を参照して提供される。いくつかの例では、ルート関節位置は対象の骨盤関節である。
【0055】
方法600は、動作606に続き、一実施形態によれば、ルート関節の3D座標
【数13】
と共にリターゲット3D骨格マップの様々な関節角度
【数14】
が、改良された3D骨格マップを生成するために決定される。一実施形態によれば、様々なパラメータは、目的関数
【数15】
の誤差を最小化することによって決定することができる。目的関数は、以下の式で提供されるように定義することができる。
【数16】
【数17】
【数18】
【数19】
【数20】
【0056】
上記の式において、
【数21】
は、絶対3Dポーズの投影と2D骨格マップからの入力2D関節位置との間の距離を測定し、
【数22】
は、カメラ固有のパラメータが既知である場合に与えられ得る、カメラ3D空間から2D画像平面への投影関数を表す。上記の式において、
【数23】
は、改良された3D骨格マップとニューラルネットワークによって予測された推定3D骨格マップとの間の類似性の尺度を表す。関数
【数24】
は、ニューラルネットワークによって使用される3Dの人間のポーズデータセットから事前に学習され得る、推定3D骨格マップからのポーズの妥当性のレベルを表す確率分布を定義するガウス関数である。したがって、関数
【数25】
は、可能性のないポーズよりも可能性のあるポーズを優先するために使用される。関数
【数26】
は、時間領域(例えば、時間tとt-1との間に対象が動くことによるポーズの変化)における3Dポーズの変化を表し、より時間的に安定した結果を達成するために提供されてよい。パラメータ
【数27】
はスカラ重みとして使用される。一実施形態によれば、目的関数
【数28】
における誤差は、非線形最小二乗回帰を使用して
【数29】
を解くために最小化される。例えば、初期関節角度
【数30】
は、リターゲット3D骨格マップ
【数31】
から算出されてよく、ルート関節位置
【数32】
の初期3D座標セットは、関数
【数33】
を最小化することによって達成されてよく、S2dは、2D骨格マップからの2D関節位置のセットを表し、C2dは、2D関節位置の各々の信頼区間を表す。
【0057】
方法600は動作608に進み、関節角度の最適化されたセットが、3Dルート関節位置
【数34】
(例えば、対象の骨盤関節)と共に、改良された3D骨格マップ
【数35】
として出力される。パラメータのこの最適化されたセットから、最終的な3D骨格マップは、ディスプレイに表示される画像を形成するために、様々なスキンまたはグラフィックスのアニメーションおよび/またはアプリケーションの準備ができている。
[例示的な用途]
【0058】
図7A図7Cは、一実施形態による、インタラクティブゲームの一部として動いている対象の改良された3D骨格マップを使用する例示的な用途を示す。図7Aに示すように、人間のアバター702をディスプレイに示すことができる。アバター702は、ディスプレイ上で起こっていることと相互作用するために、ディスプレイを見ている対象のポーズを模倣することができる。したがって、アバター702は、対象の改良された3D骨格マップ上にグラフィックスをレンダリングすることによって生成され、改良された3D骨格マップは、本明細書に開示される技術のいずれかを使用して生成される。この例では1人のアバター702のみが示されているが、撮像デバイスによって撮像された2D画像内に存在する任意の数のユーザに対して任意の数のアバターが生成されてもよい。
【0059】
図示の用途は、開口部706を有する表示された壁704がアバター702に向かって移動する、移動する壁のゲームである。開口部706は、開口部706を通過するためにアバター702からの特定のポーズを必要とする特有の形状を有する。図示の例では、開口部706は逆「L」字形状を有し、アバター702は、開口部706を通過するために真っ直ぐに立ちながら腕を外向きに伸ばす必要がある。インタラクティブゲームの目的は、壁704のいかなる部分にも触れることなく、壁704に形成された開口部を通過するために異なるポーズを使用することである。図7Bは、アバター702が開口部706を通過するようにアバター702に向かって移動した壁704を示す。1つの壁を通過した後、別の壁が、異なる形状を有する開口部と共に前に進んでくる場合がある。例えば、図7Cは、アバター702が第1の壁704を通過した後に生成される第2の壁708を示す。第2の壁は、対象が、新しい開口部710を通過するために、アバター702の対応するポーズを変更するためにポーズを変更する必要があるように、異なる形状の開口部710を有することができる。図から分かるように、この次の開口部は「X」形状であり、アバター702によるX形状のポーズを必要とする。壁がアバター702に向かって来る速度は、時間と共に増加し得る。アバター702のポーズは、本明細書で開示される技術のいずれかを使用することによって、インタラクティブゲームをプレイ中の実際の対象のポーズを模倣する。
【0060】
本明細書で考察される実施形態のいくつかは、例えば、機械によって実行された場合に、機械に実施形態による方法および/または動作を実行させることができる命令または命令のセットを格納することができる機械可読媒体または機械可読物品を使用して実装することができる。そのような機械は、例えば、任意の適切な処理プラットフォーム、コンピューティングプラットフォーム、コンピューティングデバイス、処理デバイス、コンピューティングシステム、処理システム、コンピュータ、処理などを含むことができ、ハードウェアおよび/またはソフトウェアの任意の適切な組み合わせを使用して実装することができる。機械可読媒体または機械可読物品は、例えば、メモリ、取り外し可能または取り外し不可能な媒体、消去可能または消去不可能な媒体、書き込み可能または書き換え可能な媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピーディスク、コンパクトディスク読み出し専用メモリ(CD-ROM)、コンパクトディスク記録可能(CD-R)メモリ、コンパクトディスク書き換え可能(CR-RW)メモリ、光ディスク、磁気媒体、光磁気媒体、取り外し可能なメモリカードまたはディスク、様々なタイプのデジタル多用途ディスク(DVD)、テープ、カセットなどの任意の適切なタイプのメモリユニット、メモリデバイス、メモリ物品、メモリ媒体、記憶デバイス、記憶物品、記憶媒体、および/または記憶ユニットを含むことができる。命令は、任意の適切な高レベル、低レベル、オブジェクト指向、視覚、コンパイル、および/または解釈されたプログラミング言語を使用して実装された、ソースコード、コンパイルされたコード、解釈されたコード、実行可能コード、静的コード、動的コード、暗号化されたコードなどの任意の適切なタイプのコードを含むことができる。
【0061】
特に明記しない限り、「処理する」、「算出する」、「計算する」、「決定する」などの用語は、コンピュータシステムのレジスタおよび/またはメモリユニット内の物理量(例えば、電子機器)として表されるデータを、コンピュータシステムのレジスタ、メモリユニット、またはコンピュータシステムの他のそのような情報記憶伝送装置もしくはディスプレイ内の物理量として同様に表される他のデータになるように操作する、および/または変換するコンピュータまたはコンピューティングシステム、あるいは同様の電子コンピューティングデバイスの動作および/または処理を指すことが理解されよう。実施形態は、この文脈に限定はされない。
【0062】
本明細書の任意の実施形態で使用される「回路」または「電子回路」という用語は機能的装置であり、例えば、単独でまたは任意の組み合わせで、ハードワイヤード電子回路、1つまたは複数の個々の命令処理コアを備える1つまたは複数のコンピュータプロセッサなどのプログラム可能な電子回路、ステートマシン電子回路、および/またはプログラム可能な電子回路によって実行される命令を格納するファームウェアを含むことができる。電子回路は、本明細書に記載の1つまたは複数の動作を実行するために1つまたは複数の命令を実行するように構成されたプロセッサおよび/またはコントローラを含むことができる。命令は、例えば、電子回路に前述の動作のうちいずれかを実行させるように構成されたアプリケーション、ソフトウェア、ファームウェアなどとして具現化されてもよい。ソフトウェアは、コンピュータ可読記憶デバイスに記録されたソフトウェアパッケージ、コード、命令、命令セットおよび/またはデータとして具現化されてもよい。ソフトウェアは、任意の数の処理を含むように具現化または実装されてもよく、処理は、階層的に任意の数のスレッドなどを含むように具現化または実装されてもよい。ファームウェアは、メモリデバイス内にハードコードされた(例えば、不揮発性)コード、命令もしくは命令セットおよび/またはデータとして具現化されてもよい。電子回路は、集合的または個別に、より大きなシステム、例えば、集積回路(IC)、特定用途向け集積回路(ASIC)、システムオンチップ(SoC)、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンなどの一部を形成する回路として具現化することができる。他の実施形態は、機械可読媒体に格納され、プログラム可能な制御デバイスによって実行することができるソフトウェアとして実装することができる。本明細書に記載されるように、様々な実施形態は、ハードウェア要素、ソフトウェア要素、またはそれらの任意の組み合わせを使用して実装されてよい。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含み得る。したがって、回路または電子回路は、集積電子回路、プリント回路基板電子回路、ゲートレベル論理アナログ電子回路および/またはゲートレベル論理デジタル回路、1つまたは複数のプログラムされたプロセッサまたは処理エンティティ(例えば、命令と、それらの命令を実行するように構成された1つまたは複数のプロセッサとの組み合わせ)のいずれかであり得る機能的物理装置である。
[さらなる例示的な実施形態]
【0063】
以下の実施例は、多数の変形および構成が明らかになるさらなる実施形態に関する。
【0064】
実施例1は、対象の3Dポーズを生成するように設計されたシステムである。システムは、対象の1つまたは複数の画像を撮像するように構成された撮像デバイスから1つまたは複数の画像を受信し、
1つまたは複数の画像内の対象に関連付けられた二次元(2D)骨格マップを生成し、この場合2D骨格マップは複数の2D関節位置を含み、複数の2D関節位置に少なくとも基づいて、1つまたは複数の画像内の対象に関連付けられた推定三次元(3D)骨格マップを生成し、この場合推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含み、推定3D骨格マップの複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、テンプレート3D骨格マップの対応する1つまたは複数のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、改良された3D骨格マップを生成し、テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有し、対象の対応する動きに基づいて、改良された3D骨格マップをアニメーション化するように構成された少なくとも1つのプロセッサを含む。
【0065】
実施例2は、実施例1の主題を含み、撮像デバイスをさらに備え、撮像デバイスは、単一のRGBカメラを備える。
【0066】
実施例3は、実施例1または実施例2の主題を含み、少なくとも1つのプロセッサは、2D骨格マップに関連付けられたデータをニューラルネットワークに入力することによって推定3D骨格マップを生成するように構成され、ニューラルネットワークは、少なくとも複数の3D関節位置を出力するように構成される。
【0067】
実施例4は、実施例1から実施例3のいずれか1つの主題を含み、少なくとも1つのプロセッサは、テンプレート3D骨格マップを生成するようにさらに構成される。
【0068】
実施例5は、実施例4の主題を含み、テンプレート3D骨格マップを生成することは、テンプレート3D骨格マップの高さを設定することと、人体測定統計を使用してテンプレート骨セグメントの長さを決定することとを含む。
【0069】
実施例6は、実施例1から実施例5のいずれか1つの主題を含み、リターゲットすることは、リターゲット3D骨格マップを生成し、少なくとも1つのプロセッサは、リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換するようにさらに構成される。
【0070】
実施例7は、実施例6の主題を含み、改良された3D骨格マップを生成することは、リターゲット3D骨格マップ、推定3D骨格マップ、および2D骨格マップに関連する目的関数の誤差を最小化して、改良された3D骨格マップの関節角度およびルート関節位置について解くことを含む。
【0071】
実施例8は、実施例1から実施例7のいずれか1つの主題を含み、アニメーション化された改良された3D骨格マップのバージョンを示すように構成されたディスプレイをさらに備える。
【0072】
実施例9は、実施例1から実施例8のいずれか1つの主題を含み、少なくとも1つのプロセッサは、2D関節位置の各々と2Dルート関節位置との間の距離に基づいて2D関節位置を正規化するようにさらに構成される。
【0073】
実施例10は、実施例9の主題を含み、2Dルート関節位置は、対象の骨盤関節を表す。
【0074】
実施例11は、実施例1から実施例10のいずれか1つの主題を含み、少なくとも1つのプロセッサは、1つまたは複数の画像内の第2の対象に関連付けられた第2の2D骨格マップを生成し、この場合第2の2D骨格マップは、第2の複数の2D関節位置を含み、第2の複数の2D関節位置に少なくとも基づいて、1つまたは複数の画像内の第2の対象に関連付けられた第2の推定三次元(3D)骨格マップを生成し、この場合第2の推定3D骨格マップは、第2の複数の3D関節位置と、第2の3D関節位置の対応する対の間の第2の複数の骨セグメントとを含み、第2の推定3D骨格マップの第2の複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、第2のテンプレート3D骨格マップの1つまたは複数の対応する第2のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、第2の改良された3D骨格マップを生成し、第2のテンプレート3D骨格マップは、第2の複数のテンプレート3D関節位置と、第2のテンプレート3D関節位置の対応する対の間の第2の複数のテンプレート骨セグメントとを有し、第2の対象の対応する動きに基づいて、第2の改良された3D骨格マップをアニメーション化するようにさらに構成される。
【0075】
実施例12は、対象の3Dポーズを生成するコンピュータ実装方法である。方法は、撮像デバイスによって撮像された対象の1つまたは複数の画像を受信することと、1つまたは複数の画像内の対象に関連付けられた二次元(2D)骨格マップを生成することであって、この場合2D骨格マップは複数の2D関節位置を含むことと、複数の2D関節位置に少なくとも基づいて、1つまたは複数の画像内の対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、この場合推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含むことと、推定3D骨格マップの複数の骨セグメントのうち1つまたは複数の長さを少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントの長さにより厳密に一致させることによって、改良された3D骨格マップを生成することであって、テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有することと、対象の対応する動きに基づいて、改良された3D骨格マップをアニメーション化することとを含む。
【0076】
実施例13は、実施例12の主題を含み、推定3D骨格マップを生成することは、2D骨格マップに関連付けられたデータをニューラルネットワークに入力することを含み、ニューラルネットワークは、少なくとも複数の3D関節位置を出力するように構成される。
【0077】
実施例14は、実施例13または実施例14の主題を含み、テンプレート3D骨格マップを生成することをさらに含む。
【0078】
実施例15は、実施例14の主題を含み、テンプレート3D骨格マップを生成することは、テンプレート3D骨格マップの高さを設定することと、人体測定統計を使用してテンプレート骨セグメントの長さを決定することとを含む。
【0079】
実施例16は、実施例15の主題を含み、テンプレート3D骨格マップの高さを設定することは、所定の高さを設定することを含む。
【0080】
実施例17は、実施例15の主題を含み、テンプレート3D骨格マップの高さを設定することは、ユーザ入力を介して高さの値を取得することを含む。
【0081】
実施例18は、実施例12から実施例17のいずれか1つの主題を含み、リターゲットすることは、リターゲット3D骨格マップを生成し、方法は、リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換することをさらに含む。
【0082】
実施例19は、実施例18の主題を含み、改良された3D骨格マップを生成することは、リターゲット3D骨格マップ、推定3D骨格マップ、および2D骨格マップに関連する目的関数の誤差を最小化して、改良された3D骨格マップの関節角度およびルート関節位置について解くことを含む。
【0083】
実施例20は、実施例12から実施例19のいずれか1つの主題を含み、2D関節位置の各々と2Dルート関節位置との間の距離に基づいて2D関節位置を正規化することをさらに含む。
【0084】
実施例21は、実施例20の主題を含み、2Dルート関節位置は、対象の骨盤関節を表す。
【0085】
実施例22は、実施例12から実施例21のいずれか1つの主題を含み、1つまたは複数の画像内の第2の対象に関連付けられた第2の2D骨格マップを生成することであって、この場合第2の2D骨格マップは、第2の複数の2D関節位置を含むことと、第2の複数の2D関節位置に少なくとも基づいて、1つまたは複数の画像内の第2の対象に関連付けられた第2の推定三次元(3D)骨格マップを生成することであって、この場合第2の推定3D骨格マップは、第2の複数の3D関節位置と、第2の3D関節位置の対応する対の間の第2の複数の骨セグメントとを含むことと、第2の推定3D骨格マップの第2の複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、第2のテンプレート3D骨格マップの1つまたは複数の対応する第2のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、第2の改良された3D骨格マップを生成することであって、第2のテンプレート3D骨格マップは、第2の複数のテンプレート3D関節位置と、第2のテンプレート3D関節位置の対応する対の間の第2の複数のテンプレート骨セグメントとを有し、第2の対象の対応する動きに基づいて、第2の改良された3D骨格マップをアニメーション化することとをさらに含む。
【0086】
実施例23は、1つまたは複数のプロセッサによって実行されるとき、対象の3Dポーズを生成するための処理を実行させる、エンコードされた命令を有する1つまたは複数の非一時的機械可読媒体を含むコンピュータプログラム製品である。処理は、撮像デバイスによって撮像された対象の1つまたは複数の画像を受信することと、1つまたは複数の画像内の対象に関連付けられた二次元(2D)骨格マップを生成することであって、この場合2D骨格マップは複数の2D関節位置を含むことと、複数の2D関節位置に少なくとも基づいて、1つまたは複数の画像内の対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、この場合推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含むことと、推定3D骨格マップの複数の骨セグメントのうち1つの長さを少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、改良された3D骨格マップを生成することであって、テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有することとを含む。
【0087】
実施例24は、実施例23の主題を含み、推定3D骨格マップを生成することは、2D骨格マップに関連付けられたデータをニューラルネットワークに入力することであって、ニューラルネットワークは、少なくとも複数の3D関節位置を出力するように構成されることを含む。
【0088】
実施例25は、実施例23または実施例24の主題を含み、処理はテンプレート3D骨格マップを生成することをさらに含む。
【0089】
実施例26は、実施例25の主題を含み、テンプレート3D骨格マップを生成することは、テンプレート3D骨格マップの高さを設定すること、および/または人体測定統計を使用してテンプレート骨セグメントの長さを決定することを含む。
【0090】
実施例27は、実施例26の主題を含み、テンプレート3D骨格マップの高さを設定することは、所定の高さを設定することを含む。
【0091】
実施例28は、実施例26の主題を含み、テンプレート3D骨格マップの高さを設定することは、ユーザ入力を介して高さの値を取得することを含む。
【0092】
実施例29は、実施例23から実施例28のいずれか1つの主題を含み、リターゲットすることは、リターゲット3D骨格マップを生成し、処理は、リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換することをさらに含む。
【0093】
実施例30は、実施例29の主題を含み、改良された3D骨格マップを生成することは、リターゲット3D骨格マップ、推定3D骨格マップ、および2D骨格マップに関連する目的関数の誤差を最小化して、改良された3D骨格マップの関節角度およびルート関節位置について解くことを含む。
【0094】
実施例31は、実施例23から実施例30のいずれか1つの主題を含み、処理は、2D関節位置の各々と2Dルート関節位置との間の距離に基づいて2D関節位置を正規化することをさらに含む。
【0095】
実施例32は、実施例31の主題を含み、2Dルート関節位置は、対象の骨盤関節を表す。
【0096】
実施例33は、実施例23から実施例32のいずれか1つの主題を含み、処理は、1つまたは複数の画像内の第2の対象に関連付けられた第2の2D骨格マップを生成することであって、この場合第2の2D骨格マップは、第2の複数の2D関節位置を含むことと、第2の複数の2D関節位置に少なくとも基づいて、1つまたは複数の画像内の第2の対象に関連付けられた第2の推定三次元(3D)骨格マップを生成することであって、この場合第2の推定3D骨格マップは、第2の複数の3D関節位置と、第2の3D関節位置の対応する対の間の第2の複数の骨セグメントとを含むことと、第2の推定3D骨格マップの第2の複数の骨セグメントのうち1つの対応する長さを少なくともリターゲットして、第2のテンプレート3D骨格マップの対応する第2のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、第2の改良された3D骨格マップを生成することであって、第2のテンプレート3D骨格マップは、第2の複数のテンプレート3D関節位置と、第2のテンプレート3D関節位置の対応する対の間の第2の複数のテンプレート骨セグメントとを有することとをさらに含む。
【0097】
実施例34は、実施例33の主題を含み、処理は、第2の対象の対応する動きに基づいて第2の改良された3D骨格マップをアニメーション化することをさらに含む。
【0098】
実施例35は、実施例23から実施例34のいずれか1つの主題を含み、処理は、対象の対応する動きに基づいて、改良された3D骨格マップをアニメーション化することをさらに含む。
【0099】
実施形態の完全な理解を提供するために、多数の具体的な詳細が本明細書に記載されている。しかしながら、これらの具体的な詳細なしで実施形態を実施することができることは、当業者には理解されよう。他の例では、実施形態を不明瞭にしないように、周知の動作、コンポーネントおよび回路は詳細に説明されていない。本明細書に開示の具体的な構造的および機能的な詳細は、典型であってよく、必ずしも実施形態の範囲を限定するものではないことを理解されたい。さらに、主題は、構造的特徴および/または方法論的行為に特有の言語で説明されているが、添付の特許請求の範囲に定義された主題は、必ずしも本明細書に記載された特定の特徴または行為に限定されないことを理解されたい。むしろ、本明細書に記載の特定の特徴および行為は、特許請求の範囲を実装する例示的な形態として開示されている。
[他の考えられる項目]
(項目1)
対象の3Dポーズを生成するように構成されたシステムであって、
前記対象の1つまたは複数の画像を撮像するように構成された撮像デバイスから前記1つまたは複数の画像を受信し、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成し、前記2D骨格マップは複数の2D関節位置を含み、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成し、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含み、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、テンプレート3D骨格マップの対応する1つまたは複数のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、改良された3D骨格マップを生成し、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有し、
前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化する
ように構成された少なくとも1つのプロセッサを備える、システム。
(項目2)
前記撮像デバイスをさらに備え、前記撮像デバイスは、単一のRGBカメラを備える、項目1に記載のシステム。
(項目3)
前記少なくとも1つのプロセッサは、前記2D骨格マップに関連付けられたデータをニューラルネットワークに入力することによって前記推定3D骨格マップを生成するように構成され、前記ニューラルネットワークは、少なくとも前記複数の3D関節位置を出力するように構成される、項目1に記載のシステム。
(項目4)
前記少なくとも1つのプロセッサは、前記テンプレート3D骨格マップを生成するようにさらに構成され、前記テンプレート3D骨格マップを生成することは、前記テンプレート3D骨格マップの高さを設定することと、人体測定統計を使用して前記テンプレート骨セグメントの長さを決定することと
を含む、項目1に記載のシステム。
(項目5)
前記リターゲットすることは、リターゲット3D骨格マップを生成し、前記少なくとも1つのプロセッサは、前記リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換するようにさらに構成される、項目1から4のいずれか1つに記載のシステム。
(項目6)
前記改良された3D骨格マップを生成することは、前記リターゲット3D骨格マップ、前記推定3D骨格マップ、および前記2D骨格マップに関連する目的関数の誤差を最小化して、前記改良された3D骨格マップの前記関節角度および前記ルート関節位置について解くことを含む、項目5に記載のシステム。
(項目7)
前記少なくとも1つのプロセッサは、前記2D関節位置の各々と2Dルート関節位置との間の距離に基づいて前記2D関節位置を正規化するようにさらに構成される、項目1から4のいずれか1つに記載のシステム。
(項目8)
前記2Dルート関節位置は、前記対象の骨盤関節を表す、項目7に記載のシステム。
(項目9)
前記少なくとも1つのプロセッサは、
前記1つまたは複数の画像内の第2の対象に関連付けられた第2の2D骨格マップを生成し、前記第2の2D骨格マップは、第2の複数の2D関節位置を含み、
前記第2の複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記第2の対象に関連付けられた第2の推定三次元(3D)骨格マップを生成し、前記第2の推定3D骨格マップは、第2の複数の3D関節位置と、第2の3D関節位置の対応する対の間の第2の複数の骨セグメントとを含み、
前記第2の推定3D骨格マップの前記第2の複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、第2のテンプレート3D骨格マップの1つまたは複数の対応する第2のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、第2の改良された3D骨格マップを生成し、前記第2のテンプレート3D骨格マップは、第2の複数のテンプレート3D関節位置と、第2のテンプレート3D関節位置の対応する対の間の第2の複数のテンプレート骨セグメントとを有し、
前記第2の対象の対応する動きに基づいて、前記第2の改良された3D骨格マップをアニメーション化する
ようにさらに構成される、項目1から4のいずれか1つに記載のシステム。
(項目10)
対象の3Dポーズを生成するコンピュータ実装方法であって、
撮像デバイスによって撮像された前記対象の1つまたは複数の画像を受信することと、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成することであって、前記2D骨格マップは複数の2D関節位置を含むことと、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含むことと、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つまたは複数の長さを少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントの長さにより厳密に一致させることによって、改良された3D骨格マップを生成することであって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有することと、
前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化することと、
を含む、コンピュータ実装方法。
(項目11)
前記推定3D骨格マップを生成することは、前記2D骨格マップに関連付けられたデータをニューラルネットワークに入力することであって、前記ニューラルネットワークは、少なくとも前記複数の3D関節位置を出力するように構成されることを含む、項目10に記載のコンピュータ実装方法。
(項目12)
前記テンプレート3D骨格マップを生成することをさらに含み、前記テンプレート3D骨格マップを生成することは、前記テンプレート3D骨格マップの高さを設定することと、人体測定統計を使用して前記テンプレート骨セグメントの長さを決定することと、
を含む、項目10に記載のコンピュータ実装方法。
(項目13)
前記リターゲットすることは、リターゲット3D骨格マップを生成し、前記方法は、前記リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換することをさらに含む、項目10から12のいずれか1つに記載のコンピュータ実装方法。
(項目14)
前記改良された3D骨格マップを生成することは、前記リターゲット3D骨格マップ、前記推定3D骨格マップ、および前記2D骨格マップに関連する目的関数の誤差を最小化して、前記改良された3D骨格マップの前記関節角度および前記ルート関節位置について解くことを含む、項目13に記載のコンピュータ実装方法。
(項目15)
前記2D関節位置の各々と2Dルート関節位置との間の距離に基づいて前記2D関節位置を正規化することをさらに含む、項目10から12のいずれか1つに記載のコンピュータ実装方法。
(項目16)
前記2Dルート関節位置は、前記対象の骨盤関節を表す、項目15に記載のコンピュータ実装方法。
(項目17)
前記1つまたは複数の画像内の第2の対象に関連付けられた第2の2D骨格マップを生成することであって、前記第2の2D骨格マップは、第2の複数の2D関節位置を含むことと、
前記第2の複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記第2の対象に関連付けられた第2の推定三次元(3D)骨格マップを生成することであって、前記第2の推定3D骨格マップは、第2の複数の3D関節位置と、第2の3D関節位置の対応する対の間の第2の複数の骨セグメントとを含むことと、
前記第2の推定3D骨格マップの前記第2の複数の骨セグメントのうち1つまたは複数の対応する長さを少なくともリターゲットして、第2のテンプレート3D骨格マップの1つまたは複数の対応する第2のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、第2の改良された3D骨格マップを生成することであって、前記第2のテンプレート3D骨格マップは、第2の複数のテンプレート3D関節位置と、第2のテンプレート3D関節位置の対応する対の間の第2の複数のテンプレート骨セグメントとを有し、
前記第2の対象の対応する動きに基づいて、前記第2の改良された3D骨格マップをアニメーション化することと、
をさらに含む、項目10から12のいずれか1つに記載のコンピュータ実装方法。
(項目18)
1つまたは複数のプロセッサによって実行されるとき、対象の3Dポーズを生成するための処理を実行させる、エンコードされた命令を有する1つまたは複数の非一時的機械可読媒体を含むコンピュータプログラム製品であって、前記処理は、
撮像デバイスによって撮像された前記対象の1つまたは複数の画像を受信することと、
前記1つまたは複数の画像内の前記対象に関連付けられた二次元(2D)骨格マップを生成することであって、前記2D骨格マップは複数の2D関節位置を含むことと、
前記複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記対象に関連付けられた推定三次元(3D)骨格マップを生成することであって、前記推定3D骨格マップは、複数の3D関節位置と、3D関節位置の対応する対の間の複数の骨セグメントとを含むことと、
前記推定3D骨格マップの前記複数の骨セグメントのうち1つの長さを少なくともリターゲットして、テンプレート3D骨格マップの対応するテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、改良された3D骨格マップを生成することであって、前記テンプレート3D骨格マップは、複数のテンプレート3D関節位置と、テンプレート3D関節位置の対応する対の間の複数のテンプレート骨セグメントとを有することと、
を含む、コンピュータプログラム製品。
(項目19)
前記推定3D骨格マップを生成することは、前記2D骨格マップに関連付けられたデータをニューラルネットワークに入力することであって、前記ニューラルネットワークは、少なくとも前記複数の3D関節位置を出力するように構成されることを含む、項目18に記載のコンピュータプログラム製品。
(項目20)
前記処理は、
前記テンプレート3D骨格マップを生成することと、前記対象の対応する動きに基づいて、前記改良された3D骨格マップをアニメーション化することのうちの一方またはその両方をさらに含み、前記テンプレート3D骨格マップを生成することは、前記テンプレート3D骨格マップの高さを設定すること、および/または人体測定統計を使用して前記テンプレート骨セグメントの長さを決定することを含む、項目18に記載のコンピュータプログラム製品。
(項目21)
前記リターゲットすることは、リターゲット3D骨格マップを生成し、前記処理は、前記リターゲット3D骨格マップの3D関節位置を、ルート関節位置に対する複数の関節角度に変換することをさらに含む、項目18から20のいずれか1つに記載のコンピュータプログラム製品。
(項目22)
前記改良された3D骨格マップを生成することは、前記リターゲット3D骨格マップ、前記推定3D骨格マップ、および前記2D骨格マップに関連する目的関数の誤差を最小化して、前記改良された3D骨格マップの前記関節角度および前記ルート関節位置について解くことを含む、項目21に記載のコンピュータプログラム製品。
(項目23)
前記処理は、前記2D関節位置の各々と2Dルート関節位置との間の距離に基づいて前記2D関節位置を正規化することをさらに含む、項目18から20のいずれか1つに記載のコンピュータプログラム製品。
(項目24)
前記2Dルート関節位置は、前記対象の骨盤関節を表す、項目23に記載のコンピュータプログラム製品。
(項目25)
前記処理は、
前記1つまたは複数の画像内の第2の対象に関連付けられた第2の2D骨格マップを生成することであって、前記第2の2D骨格マップは、第2の複数の2D関節位置を含むことと、
前記第2の複数の2D関節位置に少なくとも基づいて、前記1つまたは複数の画像内の前記第2の対象に関連付けられた第2の推定三次元(3D)骨格マップを生成することであって、前記第2の推定3D骨格マップは、第2の複数の3D関節位置と、第2の3D関節位置の対応する対の間の第2の複数の骨セグメントとを含むことと、
前記第2の推定3D骨格マップの前記第2の複数の骨セグメントのうち1つの対応する長さを少なくともリターゲットして、第2のテンプレート3D骨格マップの対応する第2のテンプレート骨セグメントの対応する長さにより厳密に一致させることによって、第2の改良された3D骨格マップを生成することであって、前記第2のテンプレート3D骨格マップは、第2の複数のテンプレート3D関節位置と、第2のテンプレート3D関節位置の対応する対の間の第2の複数のテンプレート骨セグメントとを有することと
をさらに含む、項目18から20のいずれか1つに記載のコンピュータプログラム製品。
図1
図2
図3
図4A
図4B
図4C
図4D
図5A
図5B
図6
図7A
図7B
図7C