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

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

▶ ネイバー コーポレーションの特許一覧 ▶ ネイバーラボス コーポレーションの特許一覧

<>
  • 特許-全身ポーズを生成するためのシステム 図1
  • 特許-全身ポーズを生成するためのシステム 図2
  • 特許-全身ポーズを生成するためのシステム 図3
  • 特許-全身ポーズを生成するためのシステム 図4
  • 特許-全身ポーズを生成するためのシステム 図5
  • 特許-全身ポーズを生成するためのシステム 図6a
  • 特許-全身ポーズを生成するためのシステム 図6b
  • 特許-全身ポーズを生成するためのシステム 図6c
  • 特許-全身ポーズを生成するためのシステム 図7
  • 特許-全身ポーズを生成するためのシステム 図8
  • 特許-全身ポーズを生成するためのシステム 図9
  • 特許-全身ポーズを生成するためのシステム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-19
(45)【発行日】2023-01-27
(54)【発明の名称】全身ポーズを生成するためのシステム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230120BHJP
   G06T 13/40 20110101ALI20230120BHJP
【FI】
G06T7/00 350C
G06T7/00 660B
G06T13/40
【請求項の数】 19
(21)【出願番号】P 2021092479
(22)【出願日】2021-06-01
(65)【公開番号】P2021190128
(43)【公開日】2021-12-13
【審査請求日】2021-06-01
(31)【優先権主張番号】16/889,873
(32)【優先日】2020-06-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(73)【特許権者】
【識別番号】319012978
【氏名又は名称】ネイバーラボス コーポレーション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】フィリップ バインザエペル
(72)【発明者】
【氏名】ハドリエン コンバルジエ
(72)【発明者】
【氏名】グレゴリー ロジェス
(72)【発明者】
【氏名】ロマン ブレジエ
(72)【発明者】
【氏名】ヴィンセント レロイ
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】特開2020-047267(JP,A)
【文献】特開2019-204476(JP,A)
【文献】Donglai Xiang, et al.,Monocular Total Capture: Posing Face, Body, and Hands in the Wild,2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR),2019年,https://ieeexplore.ieee.org/document/8953618
【文献】Gregory Rogez, et al.,LCR-Net: Localization-Classification-Regression for Human Pose,2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2017年,https://ieeexplore.ieee.org/document/8099617
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06T 13/00 - 13/80
G06V 40/10 - 40/19
(57)【特許請求の範囲】
【請求項1】
全身ポーズを生成するためのシステムであって、
記録された身体アンカーポーズから回帰推定することにより、入力イメージ内の動物の身体の第1ポーズを生成するように構成される身体回帰モジュール、
記録された顔アンカーポーズから回帰推定することにより、前記入力イメージ内の前記動物の顔の第2ポーズを生成するように構成される顔回帰モジュール、
記録された四肢アンカーポーズから回帰推定することにより、前記入力イメージ内の前記動物の四肢の第3ポーズを生成するように構成される四肢回帰モジュール
前記第1ポーズ、前記第2ポーズ、および前記第3ポーズに基づき、前記入力イメージ内の前記動物の全身ポーズを生成するように構成されるポーズモジュール
前記入力イメージを受信するように、そして前記入力イメージ内のピクセルのボックスに対する分類を生成するように構成されるイメージ分類モジュール、および
前記イメージ分類モジュールからの入力に基づいて前記ボックスを生成するように構成される領域提案ネットワーク(RPN)モジュールを含み、
前記分類は、身体分類、顔分類、および手分類で構成されるグループから選択され、
前記身体回帰モジュールは、前記ボックスのうちで前記身体分類を有する第1ボックスに基づいて人間の前記身体の前記第1ポーズを生成するように構成され、
前記顔回帰モジュールは、前記ボックスのうちで前記顔分類を有する第2ボックスに基づいて前記人間の前記顔の前記第2ポーズを生成するように構成され、そして
前記四肢回帰モジュールは、前記ボックスのうちで前記手分類を有する第3ボックスに基づいて前記人間の手の前記第3ポーズを生成するように構成される、
全身ポーズを生成するためのシステム。
【請求項2】
前記ポーズモジュールは、
前記身体の前記第1ポーズの第1キーポイントを前記顔の前記第2ポーズの第2キーポイントと連結すること、および
前記身体の前記第1ポーズの第3キーポイントを前記四肢の前記第3ポーズの第4キーポイントと連結すること
により、前記全身ポーズを生成するように構成される、
請求項1に記載の全身ポーズを生成するためのシステム。
【請求項3】
前記全身ポーズは2次元である、
請求項1に記載の全身ポーズを生成するためのシステム。
【請求項4】
前記全身ポーズは3次元である、
請求項1に記載の全身ポーズを生成するためのシステム。
【請求項5】
前記イメージ分類モジュールは、ResNet-50モデルを含む、
請求項1乃至4のいずれか1項に記載の全身ポーズを生成するためのシステム。
【請求項6】
前記入力は、前記ResNet-50モデルの第3ブロックの出力である、
請求項に記載の全身ポーズを生成するためのシステム。
【請求項7】
前記RPNモジュールは、関心領域(ROI)整列アルゴリズムを利用して前記ボックスを生成するように構成される、
請求項1乃至4のいずれか1項に記載の全身ポーズを生成するためのシステム。
【請求項8】
前記全身ポーズは、前記人間の胴体、前記人間の脚、および前記人間の腕のポーズを含む、
請求項1に記載の全身ポーズを生成するためのシステム。
【請求項9】
前記入力イメージ内の前記人間の前記全身ポーズに基づいてアニメーション化されたアバタを含むイメージを生成するように構成されるアニメーションモジュールをさらに含む、
請求項1に記載の全身ポーズを生成するためのシステム。
【請求項10】
ディスプレイ上に前記アニメーション化されたアバタを含む前記イメージを表示するように構成されるディスプレイ制御モジュールをさらに含む、
請求項に記載の全身ポーズを生成するためのシステム。
【請求項11】
前記入力イメージをキャプチャするように構成されるカメラをさらに含む、
請求項1に記載の全身ポーズを生成するためのシステム。
【請求項12】
複数の記録された身体アンカーポーズと前記入力イメージ内の前記人間の前記身体との比較に基づき、身体点数(前記身体回帰モジュールは、前記身体点数に基づいて前記複数の記録された身体アンカーポーズから前記記録された身体アンカーポーズを選択するように構成される)を決定するように構成される身体分類モジュール、
複数の記録された顔アンカーポーズと前記入力イメージ内の前記人間の前記顔との比較に基づき、顔点数(前記顔回帰モジュールは、前記顔点数に基づいて前記複数の記録された顔アンカーポーズから前記記録された顔アンカーポーズを選択するように構成される)を決定するように構成される顔分類モジュール、および
複数の記録された手アンカーポーズと前記入力イメージ内の前記人間の手との比較に基づき、手四肢点数(前記四肢回帰モジュールは、前記手四肢点数に基づいて手アンカーポーズである前記複数の記録された四肢アンカーポーズから前記記録された手アンカーポーズを選択するように構成される手四肢回帰モジュール)を決定するように構成される手四肢分類モジュールをさらに含む、
請求項1に記載の全身ポーズを生成するためのシステム。
【請求項13】
前記身体回帰モジュールは、前記記録された身体アンカーポーズの前記身体点数が前記記録された身体アンカーポーズのうちの他のすべての記録された身体アンカーポーズの前記身体点数よりも高いことに基づき、前記複数の記録された身体アンカーポーズから前記記録された身体アンカーポーズを選択するように構成され、
前記顔回帰モジュールは、前記記録された顔アンカーポーズの前記顔点数が前記記録された顔アンカーポーズの他のすべての記録された顔アンカーポーズの前記顔点数よりも高いことに基づき、前記複数の顔アンカーポーズから前記記録された顔アンカーポーズを選択するように構成され、そして
前記手四肢回帰モジュールは、前記記録された手アンカーポーズの前記手四肢点数が前記記録された手アンカーポーズの他のすべての記録された手アンカーポーズの前記手四肢点数よりも高いことに基づき、前記複数の手アンカーポーズから前記記録された手アンカーポーズを選択するように構成される、
請求項12に記載の全身ポーズを生成するためのシステム。
【請求項14】
トレーニングシステムであって、
請求項12に記載の前記システム、および
トレーニングモジュールを含み、
前記トレーニングモジュールは、
人間の身体を含むイメージを含む第1データセットに基づいて前記身体分類モジュールおよび回帰モジュールを含む身体専門家をトレーニングさせるように、
人間の顔を含むイメージを含む第2データセットに基づいて前記顔分類モジュールおよび回帰モジュールを含む顔専門家をトレーニングさせるように、そして
人間の手を含むイメージを含む第3データセットに基づいて前記手四肢分類モジュールおよび回帰モジュールを含む手四肢専門家をトレーニングさせるように
構成される、トレーニングシステム。
【請求項15】
前記トレーニングモジュールも、前記身体専門家、前記顔専門家、および前記手四肢専門家からのデータを蒸留することによって前記ポーズモジュールをトレーニングさせるように構成される、
請求項14に記載のトレーニングシステム。
【請求項16】
全身ポーズを生成するためのシステムであって、
記録された身体アンカーポーズと入力イメージ内の人間の身体との比較に基づいて身体点数を決定するように構成される身体分類モジュール、
身体回帰モジュール(前記身体回帰モジュールは、前記身体点数に基づいて前記記録された身体アンカーポーズのうちから1つを選択するように、そして前記記録された身体アンカーポーズのうちから前記選択された1つを回帰推定することによって前記入力イメージ内の前記身体の第1ポーズを生成するように構成される)、
記録された顔アンカーポーズと前記入力イメージ内の前記人間の顔との比較に基づいて顔点数を決定するように構成される顔分類モジュール、
顔回帰モジュール(前記顔回帰モジュールは、前記顔点数に基づいて前記記録された顔アンカーポーズのうちから1つを選択するように、そして前記記録された顔アンカーポーズのうちから前記選択された1つを回帰推定することによって前記入力イメージ内の前記顔の第2ポーズを生成するように構成される)、
記録された手アンカーポーズと前記入力イメージ内の前記人間の手との比較に基づいて手点数を決定するように構成される手分類モジュール、
手回帰モジュール(前記手回帰モジュールは、前記手点数に基づいて前記記録された手アンカーポーズのうちから1つを選択するように、そして前記記録された手アンカーポーズのうちから前記選択された1つを回帰推定することによって前記入力イメージ内の前記手の第3ポーズを生成するように構成される)
前記身体の前記第1ポーズ、前記顔の前記第2ポーズ、および前記手の前記第3ポーズに基づいて前記入力イメージ内の前記人間の全身ポーズを生成するように構成されるポーズモジュール
前記入力イメージを受信するように、そして前記入力イメージ内のピクセルのボックスに対する分類を生成するように構成されるイメージ分類モジュール、および
前記イメージ分類モジュールからの入力に基づいて前記ボックスを生成するように構成される領域提案ネットワーク(RPN)モジュールを含み、
前記分類は、身体分類、顔分類、および手分類で構成されるグループから選択され、
前記身体回帰モジュールは、前記ボックスのうちで前記身体分類を有する第1ボックスに基づいて前記人間の前記身体の前記第1ポーズを生成するように構成され、
前記顔回帰モジュールは、前記ボックスのうちで前記顔分類を有する第2ボックスに基づいて前記人間の前記顔の前記第2ポーズを生成するように構成され、そして
前記手回帰モジュールは、前記ボックスのうちで前記手分類を有する第3ボックスに基づいて前記人間の手の前記第3ポーズを生成するように構成される、
全身ポーズを生成するためのシステム。
【請求項17】
全身ポーズを生成する方法であって、
1つ以上のプロセッサにより、記録された身体アンカーポーズから回帰推定することによって入力イメージ内の動物の身体の第1ポーズを生成する段階、
前記1つ以上のプロセッサにより、記録された顔アンカーポーズから回帰推定することによって前記入力イメージ内の前記動物の顔の第2ポーズを生成する段階、
前記1つ以上のプロセッサにより、記録された四肢アンカーポーズから回帰推定することによって前記入力イメージ内の前記動物の四肢の第3ポーズを生成する段階
前記1つ以上のプロセッサにより、前記第1ポーズ、前記第2ポーズ、および前記第3ポーズに基づいて前記入力イメージ内の前記動物の全身ポーズを生成する段階
前記1つ以上のプロセッサにより、前記入力イメージを受信し、そして前記入力イメージ内のピクセルのボックスに対する分類を生成する段階、および
前記1つ以上のプロセッサにより、前記分類に関する入力に基づいて前記ボックスを生成する段階を含み、
前記分類は、身体分類、顔分類、および手分類で構成されるグループから選択され、
前記第1ポーズを生成する段階は、前記ボックスのうちで前記身体分類を有する第1ボックスに基づいて人間の前記身体の前記第1ポーズを生成する段階を含み、
前記第2ポーズを生成する段階は、前記ボックスのうちで前記顔分類を有する第2ボックスに基づいて前記人間の前記顔の前記第2ポーズを生成する段階を含み、
前記第3ポーズを生成する段階は、前記ボックスのうちで前記手分類を有する第3ボックスに基づいて前記人間の手の前記第3ポーズを生成する段階を含む、
全身ポーズを生成する方法。
【請求項18】
前記動物は人間であり、
前記第1ポーズは前記人間の身体のポーズであり、
前記第2ポーズは前記人間の顔のポーズであり、
前記第3ポーズは前記人間の手のポーズである、
請求項17に記載の全身ポーズを生成する方法。
【請求項19】
全身ポーズを生成するためのシステムであって、
記録された身体アンカーポーズから回帰推定することによって入力イメージ内の動物の身体の第1ポーズを生成するための手段、
記録された顔アンカーポーズから回帰推定することによって前記入力イメージ内の前記動物の顔の第2ポーズを生成するための手段、
記録された四肢アンカーポーズから回帰推定することによって前記入力イメージ内の前記動物の四肢の第3ポーズを生成するための手段
前記第1ポーズ、前記第2ポーズ、および前記第3ポーズに基づいて前記入力イメージ内の前記動物の全身ポーズを生成するための手段
前記入力イメージを受信し、そして前記入力イメージ内のピクセルのボックスに対する分類を生成する手段、および
前記分類を生成する手段からの入力に基づいて前記ボックスを生成する手段を含み、
前記分類は、身体分類、顔分類、および手分類で構成されるグループから選択され、
前記第1ポーズを生成する手段は、前記ボックスのうちで前記身体分類を有する第1ボックスに基づいて人間の前記身体の前記第1ポーズを生成するように構成され、
前記第2ポーズを生成する手段は、前記ボックスのうちで前記顔分類を有する第2ボックスに基づいて前記人間の前記顔の前記第2ポーズを生成するように構成され、
前記第3ポーズを生成する手段は、前記ボックスのうちで前記手分類を有する第3ボックスに基づいて前記人間の手の前記第3ポーズを生成するように構成される、
全身ポーズを生成するためのシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、イメージプロセッシングに関し、より詳細には、イメージ内の人間の全身(whole body)の2次元および3次元ポーズの推定に関する。
【背景技術】
【0002】
ここで提供する背景技術の説明は、本開示の背景を一般的に提示することを目的とする。この背景技術で説明される範囲において、発明者の研究だけでなく、出願時点に従来技術として認められない説明の態様は、本開示に対する従来技術として明示上にも暗示的にも認められない。
【0003】
カメラからのイメージ(デジタルイメージ)は、多様な方式に使用される。例えば、イメージから物体を識別することができ、走行する車両(navigating vehicle)が物体を避けながら移動できるようにする。例えば、イメージ内でキャプチャされる人間を識別するために、イメージが他のイメージとマッチされることがある。カメラで撮影されるイメージは、他にも多様な用途がある。
【0004】
モバイルデバイスは、1つ以上のカメラを含むことがある。例えば、モバイルデバイスは、モバイルデバイスのディスプレイ(例えば、タッチスクリーンディスプレイ)を見るときに、ユーザが存在する領域をカバーする視野を有するカメラを含むことがある。このようなカメラは、フロントフェーシング(front facing)(または、前面)カメラと呼ばれる。フロントフェーシングカメラは、ディスプレイが情報を表示しているときに、同じ方向のイメージをキャプチャすることができる。また、モバイルデバイスは、上述したカメラの反対方向の視野を有するカメラを含むこともある。このようなカメラは、リアフェーシング(rear facing)(または、背面)カメラと呼ばれる。モバイルデバイスの大体は、多数のフロントフェーシングカメラおよび/または多数のリアフェーシング(rearfacing)カメラを含む。
【発明の概要】
【発明が解決しようとする課題】
【0005】
全身ポーズを生成するためのシステムは、記録された身体アンカーポーズから回帰推定する(regressing)ことによって入力イメージ内の動物の身体の第1ポーズを生成するように構成される身体回帰モジュール(body regression module)、記録された顔アンカーポーズから回帰推定することによって入力イメージ内の動物の顔の第2ポーズを生成するように構成される顔回帰モジュール、記録された四肢(extremity)アンカーポーズから回帰推定することによって入力イメージ内の動物の四肢の第3ポーズを生成するように構成される四肢回帰モジュール(extremity regression module)、および第1ポーズ、第2ポーズ、および第3ポーズに基づいて入力イメージ内の動物の全身ポーズを生成するように構成されるポーズモジュールを含むことを特徴とする。
【0006】
ポーズモジュールは、身体の第1ポーズの第1キーポイントと顔の第2ポーズの第2キーポイントを連結すること、および身体の第1ポーズの第3キーポイントと四肢の第3ポーズの第4キーポイントを連結することにより、全身ポーズを生成するように構成されることを追加の特徴とする。
【0007】
全身ポーズは2次元であることを追加の特徴とする。
【0008】
全身ポーズは3次元であることを追加の特徴とする。
【0009】
イメージ分類モジュールは、入力イメージを受信するように、さらに入力イメージ内のピクセルのボックスに対する分類を生成するように構成され、領域提案ネットワーク(regional proposal network:RPN)モジュールは、イメージ分類モジュールからの入力に基づいてボックスを生成するように構成されることを追加の特徴とする。
【0010】
イメージ分類モジュールは、ResNet-50モデルを含むことを追加の特徴とする。
【0011】
入力は、ResNet-50モデルの第3ブロックの出力であることを追加の特徴とする。
【0012】
分類は、身体分類、顔分類、および手分類で構成されるグループから選択されることを追加の特徴とする。
【0013】
身体回帰モジュールは、ボックスのうちで身体分類を有する第1ボックスに基づいて人間の身体の第1ポーズを生成するように構成され、顔回帰モジュールは、ボックスのうちで身体分類を有する第2ボックスに基づいて人間の顔の第2ポーズを生成するように構成され、四肢回帰モジュールは、ボックスのうちで手分類を有する第3ボックスに基づいて人間の手の第3ポーズを生成するように構成されることを追加の特徴とする。
【0014】
RPNモジュールは、関心領域(region of interest:ROI)整列アルゴリズムを使用してボックスを生成するように構成されることを追加の特徴とする。
【0015】
身体ポーズは、人間の胴体(torso)、人間の脚、および人間の腕のポーズを含むことを追加の特徴とする。
【0016】
アニメーションモジュールは、入力イメージ内の人間の全身ポーズに基づいてアニメーション化されたアバタ(animated avatar)を含むイメージを生成するように構成されることを追加の特徴とする。
【0017】
ディスプレイ制御モジュールは、アニメーション化されたアバタを含むイメージをディスプレイ上に表示するように構成されることを追加の特徴とする。
【0018】
カメラは、入力イメージをキャプチャするように構成されることを追加の特徴とする。
【0019】
身体分類モジュールは、複数の記録された身体アンカーポーズと入力イメージ内の人間の身体との比較に基づいて身体点数を決定するように構成されるが、身体回帰モジュールは、身体点数に基づき、複数の記録された身体アンカーポーズから記録された身体アンカーポーズを選択するように構成され、顔分類モジュールは、複数の記録された顔アンカーポーズと入力イメージ内の人間の顔との比較に基づいて顔点数を決定するように構成されるが、顔回帰モジュールは、顔点数に基づき、複数の格納された顔アンカーポーズから記録された顔アンカーポーズを選択するように構成され、手四肢(hand extremity)分類モジュールは、複数の記録された手アンカーポーズと入力イメージ内の人間の手との比較に基づいて手四肢点数を決定するように構成されるが、四肢回帰モジュールは、手点数に基づき、手アンカーポーズである複数の記録された四肢アンカーポーズから記録された手アンカーポーズを選択するように構成される手四肢回帰モジュールであることを追加の特徴とする。
【0020】
身体回帰モジュールは、記録された身体アンカーポーズの身体点数が記録された身体アンカーポーズのうちの他のすべての記録された身体アンカーポーズの身体点数よりも高いことに基づき、複数の記録された身体アンカーポーズから記録された身体アンカーポーズを選択するように構成され、顔回帰モジュールは、記録された顔アンカーポーズの顔点数が記録された顔アンカーポーズの他のすべての記録された顔アンカーポーズの顔点数よりも高いことに基づき、複数の顔アンカーポーズから記録された顔アンカーポーズを選択するように構成され、手四肢回帰モジュールは、記録された手アンカーポーズの手点数が記録された手アンカーポーズの他のすべての記録された手アンカーポーズの手点数よりも高いことに基づき、複数の手アンカーポーズから記録された手アンカーポーズを選択するように構成されることを追加の特徴とする。
【0021】
トレーニングシステムは、人間の身体を含むイメージを含む第1データセットに基づいて身体分類モジュールおよび回帰モジュールを含む身体専門家(expert)をトレーニングさせるように構成され、人間の顔を含むイメージを含む第2データセットに基づいて顔分類モジュールおよび回帰モジュールを含む顔専門家をトレーニングさせるように構成され、人間の手を含むイメージを含む第3データセットに基づいて手四肢分類モジュールおよび回帰モジュールを含む手四肢専門家をトレーニングさせるように構成される、トレーニングモジュールを含むことを追加の特徴とする。
【0022】
また、トレーニングモジュールは、身体専門家、顔専門家、および手四肢専門家からのデータを蒸留する(distilling)ことによってポーズモジュールをトレーニングさせるように構成されることを追加の特徴とする。
【0023】
全身ポーズを生成するためのシステムは、記録された身体アンカーポーズと入力イメージ内の人間の身体との比較に基づいて身体点数を決定するように構成される身体分類モジュール、身体点数に基づいて記録された身体アンカーポーズのうちからつを選択するように、そして記録された身体アンカーポーズのうちから選択された1つを回帰推定することによって入力イメージ内の身体の第1ポーズを生成するように構成される身体回帰モジュール、記録された顔アンカーポーズと入力イメージ内の人間の顔との比較に基づいて顔点数を決定するように構成される顔分類モジュール、顔点数に基づいて記録された顔アンカーポーズのうちから1つを選択するように、そして記録された顔アンカーポーズのうちから選択された1つを回帰推定することによって入力イメージ内の顔の第2ポーズを生成するように構成される顔回帰モジュール、記録された手アンカーポーズと入力イメージ内の人間の手との比較に基づいて手点数を決定するように構成される手分類モジュール、手点数に基づいて記録された手アンカーポーズのうちから1つを選択するように、そして記録された手アンカーポーズのうちから選択された1つを回帰推定することによって入力イメージ内の手の第3ポーズを生成するように構成される手回帰モジュール、および身体の第1ポーズ、顔の第2ポーズ、および手の第3ポーズに基づいて入力イメージ内の人間の全身ポーズを生成するように構成されるポーズモジュールを含むことを特徴とする。
【0024】
全身ポーズを生成する方法は、1つ以上のプロセッサにより、記録された身体アンカーポーズから回帰推定することによって入力イメージ内の動物身体の第1ポーズを生成すること、1つ以上のプロセッサにより、記録された顔アンカーポーズから回帰推定することによって入力イメージ内の動物の顔の第2ポーズを生成すること、1つ以上のプロセッサにより、記録された四肢アンカーポーズから回帰推定することによって入力イメージ内の動物の四肢の第3ポーズを生成すること、および1つ以上のプロセッサにより、第1ポーズ、第2ポーズ、および第3ポーズに基づいて入力イメージ内の動物の全身ポーズを生成することを含むことを特徴とする。
【0025】
動物は人間であり、第1ポーズは人間の身体のポーズであり、第2ポーズは人間の顔のポーズであり、第3ポーズは人間の手ポーズであることを追加の特徴とする。
【0026】
全身ポーズを生成するためのシステムは、記録された身体アンカーポーズから回帰推定することによって入力イメージ内の動物の身体の第1ポーズを生成するための手段、記録された顔アンカーポーズから回帰推定することによって入力イメージ内の動物の顔の第2ポーズを生成するための手段、記録された四肢アンカーポーズから回帰推定することによって入力イメージ内の動物の四肢の第3ポーズを生成するための手段、および第1ポーズ、第2ポーズ、および第3ポーズに基づいて入力イメージ内の動物の全身ポーズを生成するための手段を含むことを特徴とする。
【0027】
本開示の適用可能性のさらに他の領域は、詳細な説明、特許請求の範囲、および図面によって明らかになるであろう。詳細な説明および特定の例は、例示の目的のためのものであり、本開示の範囲を制限するためのものではない。
【図面の簡単な説明】
【0028】
特許または出願ファイルは、カラーで作成される少なくとも1つの図面を含む。カラー図面(複数可)を含む特許または特許出願公開公報のコピーは、要請および必要な費用の支払いにより、特許庁から提供されるであろう。本開示は、詳細な説明および添付の図面によってより完全に理解されるはずである。
図1】例示的なコンピューティングデバイスを示した機能ブロック図である。
図2】入力イメージに基づいて生成される2Dポーズおよび3D全身ポーズの例を示した図である。
図3】ポーズ推定モジュールの例示的な実現例を示した機能ブロック図である。
図4図3のポーズ推定モジュールの例示的な実現例の一部を示した機能ブロック図である。
図5】例示的なトレーニングシステムを示した機能ブロック図である。
図6a】例示的なトレーニングモジュールを示した機能ブロック図である。
図6b】例示的なトレーニングモジュールを示した機能ブロック図である。
図6c】例示的なトレーニングモジュールを示した機能ブロック図である。
図7図6のトレーニングモジュールの例示的な一部を示した機能ブロック図である。
図8】入力イメージに基づいて生成される2Dおよび3Dポーズの例示した図である。
図9】全身ポーズを生成する例示的な方法を示したフローチャートである。
図10】(全身)ポーズ推定モジュールをトレーニングさせる例示的な方法を示したフローチャートである。 図面において、参照番号は、類似および/または同一のエレメントを識別するために繰り返し使用されることがある。
【発明を実施するための形態】
【0029】
本出願は、イメージからキャプチャされた人間の2次元(two-dimensional:2D)および3次元(three dimensional:3D)全身ポーズを生成することに関する。全身ポーズは、身体ポーズ、顔ポーズ、および手ポーズを含む。身体ポーズは、胴体、腕、脚を含む。2Dポーズの推定は、人間の関節に対応するそれぞれのキーポイントをどのピクセルが含んでいるかを推定する。3Dポーズの推定は、身体に対して異なることのある原点中心と関連して中心を置く3D世界の座標を決定する。身体の中心はその殆どが胴体の中央であってよい。手首はその殆どが手の中心であってよく、顔の中心はその殆どが顔の中心であってよい。
【0030】
手、顔、および身体のポーズに対してトレーニングデータセットが利用されてよい。しかし、これらのトレーニングデータセットに基づいて全身ポーズを推定するためのモデルをトレーニングさせることは、トレーニングデータセットが特定の身体部分に対するものであるし、注釈のない(unannotated)部分が否定的なものと見なされることに起因して不良な性能を提供することがある。
【0031】
本出願は、それぞれの身体部分に対する独立的な専門家、すなわち身体専門家、手専門家、および顔専門家をトレーニングさせること、および専門家の知識を蒸留して全身ポーズを共同で生成するように構成されるモデルを生成する。部分的な注釈があるか注釈がないトレーニングイメージが与えられれば、それぞれの部分専門家は、そのキーポイントのサブセットを2Dおよび/または3Dで検出および推定し、結果的に現われる推定値を結合して全身ポーズを共同で生成するモデルに対する全身疑似地上検証ポーズ(whole-body pseudo ground-truth pose)を取得する。モデル出力を専門家の予測に近づけて維持するために、モデル出力に対して蒸留損失(distillation loss)が適用される。
【0032】
図1は、コンピューティングデバイス100の例示的な実現例を示した機能ブロック図である。コンピューティングデバイス100は、例えば、スマートフォン、タブレットデバイス、ラップトップコンピュータ、デスクトップコンピュータ、または他の適切なタイプのコンピューティングデバイスであってよい。
【0033】
カメラ104は、イメージをキャプチャするように構成される。例えば、ディスプレイ108上に表示するためのビデオを生成するために一連のイメージが使用されてよい。多様なタイプのコンピューティングデバイスの場合、カメラ104、ディスプレイ108、またはこれらの両方は、コンピューティングデバイス100に含まれないこともある。カメラ104は、フロントフェーシングカメラまたはリアフェーシングカメラであってよい。図面では1つのカメラだけを示しているが、コンピューティングデバイス100は、多数のカメラ、例えば、少なくとも1つのリアフェーシングカメラおよび少なくとも1つのフロントフェーシングカメラを含んでもよい。
【0034】
ポーズ推定モジュール112は、イメージ内の人間の2次元(2D)および3次元(3D)ポーズのうちの少なくとも1つを生成する。イメージは、例えば、カメラ104からのイメージ、コンピューティングデバイス100のメモリに記録されたイメージ、または、例えば、ネットワーク(例えば、インターネット)を介して他のコンピューティングデバイスから受信したイメージであってよい。カメラ104は、例えば、ビデオを生成するために予め決定されたレート(例えば、60Hz、120Hzなどに対応する)でイメージをキャプチャしてよい。カメラ104からのイメージの一例として、ポーズ推定モジュール112は、受信されるそれぞれの新たなイメージに対するポーズをアップデートしてもよい。
【0035】
ポーズ推定モジュール112によって生成されるそれぞれのポーズは、ポーズを生成するために使用されるイメージに顔、身体、および1つまたは2つの手が存在する場合、身体ポーズ、顔ポーズ、および1つまたは2つの手ポーズを含む。手ポーズ、身体ポーズ、および顔ポーズは、ポーズ推定モジュール112によって生成されるポーズで(例えば、キーポイントによるワイヤフレームで)連結される。ポーズ推定モジュール112およびポーズ推定モジュール112のトレーニングについては、以下でより詳しく説明する。
【0036】
アニメーションモジュール116は、ポーズにそれぞれ基づくアバタイメージ(アバタを含むイメージ)のようなアニメーション化されたイメージ、およびアバタデータ120のようなアニメーションデータを生成してよい。アバタは、高い忠実度と高いディテールを有してよい。アバタデータ120はメモリに記録されてよく、ポーズと同じ方式によってアバタを生成するかアバタのポーズを取るためのデータを含む。例えば、アバタは、イメージまたはビデオにおいて人間のアニメーション化された表現を含む。
【0037】
アニメーションモジュール116は、例えば、アバタを含むアニメーション化されたビデオを生成するために、生成されるそれぞれの新たなポーズに対するアニメーション化されたイメージをアップデートしてよい。手および顔ポーズの詳細事項は、これらが感情または優れたボディーランゲージ(fine body language)に関する情報を伝達するときに、アバタの増加された表現度(expressivity)を提供してよい。
【0038】
ディスプレイ制御モジュール124(例えば、ディスプレイドライバを含む)は、ディスプレイ108上にアニメーション化されたイメージを表示する。ディスプレイ制御モジュール124は、ディスプレイ108上にビデオを表示するために予め決定されたレートで表示されるものをアップデートしてよい。多様な実施形態において、ディスプレイ108は、タッチスクリーンディスプレイであってもよいし、非タッチスクリーンディスプレイであってもよい。
【0039】
アニメーション化されたイメージを生成するためのポーズの使用例が提供されるが、本出願は、他の用途にも適用可能である。例えば、人間のポーズは、ロボットのモーションとグリップエレメント(gripping element)の作動をトレーニングさせるために追跡および使用されてもよい。例えば、全身ポーズは腕と指の両方に関する情報を有するが、これは微細にチューニングされたジェスチャ制御をデバイスに許容する。全域的姿勢および手ポーズの両方を検出することは、ロボットが人間、例えば、場面内で移動する方法、物体を掴む方法などからトレーニングされることを許容する。
【0040】
顔ポーズを検出することは、人間が眺めている方向、場面で発言する人間、感情認識などの決定を可能にする。ポーズには多様な用途がある。例えば、全身ポーズは、例えば、ビデオインデキシングのため使用されるアクションをビデオから検出するために、イメージングおよびビデオインデキシングの脈絡で適用されて使用されてよい。他の例として、全身ポーズは、衣類のバーチャル着用を許容するために使用されてもよい。他の例として、人間の位置および動きが識別され、回避しなければならない物体として車両のために使用されてもよい。
【0041】
入力イメージに基づいてポーズ推定モジュール112が生成する2Dポーズ(イメージ上に提示される)および3Dポーズ(イメージの前面に投影される)の例を図2に示した。
【0042】
図3は、ポーズ推定モジュール112の例示的な実現例を示した機能ブロック図である。イメージはイメージ分類モジュール304に入力される。イメージ分類モジュール304は、入力イメージに基づき、畳み込み特徴(例えば、ベクトル表現)を生成する畳み込みニューラルネットワーク(convolutional neural network:CNN)を含む。イメージ分類モジュール304は、例えば、ResNet50イメージ分類アルゴリズム、または他の適切なタイプのイメージ分類アルゴリズムを含んでよい。畳み込み特徴を生成するために、ResNet50アルゴリズムのブロック3(または、第3ステージ)まで使用されてもよい。
【0043】
畳み込み特徴は、領域提案ネットワーク(RPN)モジュール308に提供される。畳み込み特徴に基づき、RPNモジュール308は、候補ボックスのリストを生成する。それぞれの候補ボックスは、人間の身体の可能なインスタンス、人間の手の可能なインスタンス、および人間の顔の可能なインスタンスのうちの少なくとも1つを含む。手、身体、顔が同一人間に属することもあるが、その部分は、イメージにおいて、顔だけが、手だけが、身体だけが、または顔、手、および身体のうちの2つだけが存在する場合のインスタンスにも適合するように個別のオブジェクトとして取り扱われる。しかし、イメージは、1人よりも多くの人間を含むこともあり、1人よりも多くの人間に対する候補ボックスが識別されることもある。言い換えれば、イメージ内に多数の人間が含まれる場合、多数の人間に対するポーズが生成されてよい。
【0044】
RPNモジュール308によって生成される候補ボックスは、関心領域(ROI)整列アルゴリズム、例えば、RoI Align(RoIアライン)を使用して畳み込み特徴をプーリング(pool)するため、イメージ分類モジュール304によって使用される。ResNet50アルゴリズムの残りのブロック(または、ステージ)は、最終的な畳み込み出力を生成する。最終的な畳み込み出力は、それぞれの分類分岐(classification branch)に供給される。
【0045】
最終的な畳み込み出力は、身体分類モジュール312、身体回帰モジュール316、手分類モジュール320、手回帰モジュール324、顔分類モジュール328、および顔回帰モジュール332に入力される。分類は、3つの異なる下位作業、すなわち、身体、手、および顔を分類するために実行される。ポーズ分類は、3Dポーズ空間でクラスタリングによって定義される。クラスタリングは、3つの部分(身体、手、顔)に対応する3つのポーズ空間で独立的に適用され、身体、手、および顔に対するK、K、およびK個のクラスのセットを取得する。同じ検出器を使用して左手と右手をハンドリングするために、それぞれの手に対してK個である2×K個の手クラスが考慮されてもよい。
【0046】
それぞれの分類分岐(および、モジュール)に対し、分類器を検出器として使用するために追加的な背景クラスが考慮されてもよい。それぞれの候補ボックスは、身体クラスの場合はK+1個のラベル、手の場合は2K+1個のラベル、顔の場合はK+1個のラベルに分類される。
【0047】
身体分類モジュール312は、最終的な畳み込み出力に基づいて分類を生成する。ポーズクラスは、3Dポーズ空間でポーズのトレーニングセットをクラスタリングすることによって定義される。これは、身体に対するK個のクラスのセットに帰結する。身体回帰モジュール316は、2Dおよび3Dで身体ポーズを推定するためにクラス固有の回帰を適用する。先ず、身体のそれぞれのクラスに対して身体アンカーポーズ336が定義されて記録される。身体アンカーポーズ336は、対応するクラスタ内のすべてのエレメントの2Dおよび3Dポーズの平均として決定されてよい。身体回帰モジュール316は、すべての2D身体アンカーポーズ336を候補ボックスのそれぞれに適合させる。身体回帰モジュール316は、それぞれのボックスで(イメージの)実際の2Dおよび3Dポーズをマッチさせるように身体アンカーポーズ336を変形するためにクラス固有の回帰を実行する。身体回帰モジュール316は、イメージ内の身体に対して5×J×K個の出力を生成する。数字5は次元(2D+3D)の数に対応する。Jは、身体ポーズに対するキーポイントの数である。
【0048】
身体回帰モジュール316は、1つ以上のポスト(事後)プロセッシング機能(post processing function)を実行してよい。身体に対して多数の提案(例えば、身体アンカーポーズ336)を重ねることにより、有効な(ポーズ)予測を生成することができる。身体回帰モジュール316は、これらの2D重畳、3D類似性、および分類点数のうちの少なくとも1つに基づいてこれらのポーズを結合してよい。
【0049】
手分類モジュール320は、最終的な畳み込み出力に基づいて分類を生成する。ポーズクラスは、3Dポーズ空間でポーズのトレーニングセットをクラスタリングすることによって定義される。これは、手に対するK個のクラスのセットに帰結する。手回帰モジュール324は、2Dおよび3Dで手ポーズを推定するためにクラス固有の回帰を適用する。先ず、手のそれぞれのクラスに対して手アンカーポーズ340が定義されて記録される。手アンカーポーズ340は、対応するクラスタ内のすべてのエレメントの2Dおよび3Dポーズの平均として決定されてよい。手回帰モジュール324は、すべての2D手アンカーポーズ340を候補ボックスのそれぞれに適合させる。手回帰モジュール324は、それぞれのボックスで(イメージの)実際の2Dおよび3Dポーズをマッチさせるように手アンカーポーズ336を変形するためにクラス固有の回帰を実行する。手回帰モジュール324は、イメージ内の手に対して5×2×J×K個の出力を生成する。数字5は次元(2D+3D)の数に対応する。数字2は両手(左手および右手)に対するものである。Jは、1つの手ポーズに対するキーポイントの数である。
【0050】
手回帰モジュール324は、1つ以上のポストプロセッシング機能を実行してよい。手に対して多数の提案(例えば、手アンカーポーズ340)を重ねることにより、有効な(ポーズ)予測を生成することができる。手回帰モジュール324は、これらの2D重畳、3D類似性、および分類点数のうちの少なくとも1つに基づいてこれらのポーズを結合してよい。
【0051】
顔分類モジュール328は、最終的な畳み込み出力に基づいて分類を生成する。ポーズクラスは、3Dポーズ空間でポーズのトレーニングセットをクラスタリングすることによって定義される。これは、顔に対するK個のクラスのセットに帰結づる。顔回帰モジュール332は、2Dおよび3Dで顔ポーズを推定するためにクラス固有の回帰を適用する。先ず、顔のそれぞれのクラスに対して顔アンカーポーズ340が定義されて記録される。顔アンカーポーズ344は、対応するクラスタ内のすべてのエレメントの2Dおよび3Dポーズの平均として決定されてよい。顔回帰モジュール332は、すべての2D顔アンカーポーズ344を候補ボックスのそれぞれに適合させる。顔回帰モジュール332は、それぞれのボックスで(イメージの)実際の2Dおよび3Dポーズをマッチさせるように顔アンカーポーズ344を変形するためにクラス固有の回帰を実行する。顔回帰モジュール332は、イメージ内の顔に対して5×J×K個の出力を生成する。数字5は次元(2D+3D)の数に対応する。Jは、顔ポーズのキーポイントの数である。
【0052】
顔回帰モジュール332は、1つ以上のポストプロセッシング機能を実行してよい。顔に対して多数の提案(例えば、顔アンカーポーズ344)を重ねることにより、有効な(ポーズ)予測を生成することができる。顔回帰モジュール332は、これらの2D重畳、3D類似性、および分類点数のうちの少なくとも1つに基づいてこれらのポーズを結合してよい。
【0053】
一般的に言えば、分類モジュールは、それぞれの入力をアンカーポーズと比較する。分類モジュールは、それぞれのアンカーポーズとそれぞれの入力との比較に基づいて点数を生成してもよい。アンカーポーズに対する点数は、それぞれの入力とそのアンカーポーズとの類似性が増加することによって増加してよく、その反対も可能である。例示的な点数は、図4の棒グラフに示した。回帰モジュール316は、それぞれのアンカーポーズのうちで最も高い点数の1つを選択してよく、選択されたアンカーポーズに基づいてそれぞれの入力を回帰推定してよい。回帰の結果は、それぞれの身体、手、および顔ポーズを生成する。
【0054】
ポーズモジュール348は、イメージに対する全身ポーズを生成するために身体、手、および顔ポーズを連結する。身体ポーズは、胴体、1つ以上の腕、および1つ以上の脚のポーズを含む。身体ポーズは、人間の頭に対応する身体ポーズが人間の身体に連結する頭キーポイントを含む。身体ポーズは、人間の腕が人間の手に連結する腕キーポイントも含む。頭ポーズは、人間の頭が人間の身体に連結する頭キーポイントも含む。手ポーズは、人間の手が人間の腕に連結する手キーポイントを含む。
【0055】
ポーズモジュール348は、例えば、2Dまたは3D空間で直線を使用しながら、身体ポーズの頭キーポイントと頭ポーズの頭キーポイントを連結する。ポーズモジュール348は、例えば、2Dまたは3D空間で直線を使用しながら、身体ポーズの腕キーポイントと手ポーズの腕キーポイントを連結する。例示的な2Dおよび3D全身ポーズは、図2に示すとおりである。ポーズ推定モジュール112は、検出される物体が2Dおよび3Dで推定されるそれぞれのJ、J、およびJ個のキーポイントをもつ身体、手、および顔である局所化-分類-回帰ネットワーク(localization-classification-regression network)を利用する。身体ポーズは、少なくとも8点のキーポイントを含んでよい。顔ポーズは、少なくとも8点のキーポイントを含んでよい。手ポーズは、少なくとも6点のキーポイントを含んでよい。
【0056】
図4は、ポーズモジュール112の例示的な実現例を示した機能ブロック図である。図4は、例示的な候補ボックス、例示的な身体、手、および顔アンカーポーズ、および選択された身体アンカーポーズから回帰推定される例示的な身体、手、および顔ポーズを示している。
【0057】
図5は、例示的なトレーニングシステムを示した機能ブロック図である。トレーニングモジュール504は、トレーニングデータセット508を利用してポーズ推定モジュール112をトレーニングさせる。トレーニングモジュール504は、それぞれの部分に対して独立的にトレーニングされる身体、手、および顔の専門家、すなわち、身体専門家、手専門家、および顔専門家を含む。専門家の知識は、上述したように、全身ポーズを共同で決定するようにポーズ推定モジュール112をトレーニングさせるために蒸留される。
【0058】
トレーニングデータセット508は、手のトレーニングデータセット、身体のトレーニングデータセット、および顔のトレーニングデータセットを含む。トレーニングデータセットは、これらそれぞれの部分に対する注釈を含んでもよいし、含まなくてもよい。言い換えれば、手のトレーニングデータセットは手ポーズに関する注釈を含んでよく、身体のトレーニングデータセットは身体ポーズに関する注釈を含んでよく、および/または顔トレーニングデータセットは顔ポーズに関する注釈を含んでよい。多様な実施形態において、注釈は省略されてもよい。しかし、トレーニングデータセットは、他の部分のポーズに関する注釈は含まない。例えば、手のトレーニングデータセットは、身体ポーズまたは顔ポーズに関する注釈は含まない。身体のトレーニングデータセットは、手ポーズまたは顔ポーズに関する注釈は含まない。顔のトレーニングデータセットは、手ポーズまたは身体ポーズに関する注釈は含まない。注釈がついていない部分は、これらの実際のクラスに対してネガティブとして見なされる。
【0059】
図6a~6cは、トレーニングモジュール504の例示的な実施例を示した機能ブロック図である。トレーニングモジュール504は、事後推定モジュール112と同じ基本構造を含む。トレーニングモジュール504は、身体専門家604(図6a)、手専門家608(図6b)、および顔専門家612(図6c)を含む。イメージ分類モジュール616-A、616-B、616-C、およびRPNモジュール620-A、620-B、620-Cは、上述したイメージ分類モジュール304およびRPNモジュール308と同じ方式で機能する。トレーニングデータセット508からのトレーニングイメージは、トレーニングモジュール504に入力される。
【0060】
身体専門家604は、トレーニングイメージ内の身体のポーズを生成するように構成される。身体専門家604は、身体データセット630を利用しながら、身体分類モジュール312および身体回帰モジュール316と同じ方式で機能する身体分類モジュール624および身体回帰モジュール628を含んでよい。
【0061】
手専門家608は、トレーニングイメージ内の片手または両手のポーズを生成するように構成される。手専門家608は、手データセット640を利用しながら、身体分類モジュール312および身体回帰モジュール316と同じ方式で機能する手分類モジュール632および身体回帰モジュール636を含んでよい。
【0062】
顔専門家612は、トレーニングイメージ内の顔のポーズを生成するように構成される。顔専門家612は、顔データセット652を利用しながら、顔分類モジュール328および顔回帰モジュール332と同じ方式で機能する顔分類モジュール644および顔回帰モジュール648を含んでよい。身体専門家604、手専門家608、および顔専門家612は、アップデート/調整されず、凍結するものとして指称されてよい。
【0063】
ポーズモジュール656は、身体ポーズ、手ポーズ、および顔ポーズからトレーニングイメージに対する全身ポーズを生成するように構成される。ポーズモジュール656は、ポーズモジュール348と同じ方式で機能する。
【0064】
図7は、身体専門家604、手専門家608、および顔専門家612を示した機能ブロック図であり、例示的なトレーニングイメージを示している。図7は、トレーニングイメージが与えられると身体専門家604、手専門家608、および顔専門家612によって生成される例示的な身体、手、および顔ポーズ(トレーニングイメージ上に示される)も示している。図7は、ポーズモジュール656によって生成される例示的な全身ポーズも示している。
【0065】
部分的に固有のデータセット630、640、652を活用するために、トレーニングモジュール504は、ポーズ推定モジュール112の専門家(それぞれの専門家は、分類モジュールおよび回帰モジュールを含む)を独立的にトレーニングさせ、専門家の知識を蒸留して全身ポーズを共同で生成するようにポーズモジュール112をトレーニングさせる。同じ数のクラスおよび関節がトレーニングのために使用されてよい。例えば、身体に対してはJ=13個の身体関節が使用されてよく、K=10個のクラスが使用されてよい。顔に対してはK=10個のクラスが使用されてよい。顔に対しては、3D顔追跡用Menpoベンチマークから84個のランドマーク(例えば、目、眉毛、鼻、唇、および輪郭)が使用されてよい。手に対しては、手首に対する1点のキーポイントと、それぞれの指に対する4点のキーポイントに対応するJ=21個の手関節が使用されてよい。手に対しては、K=5個のクラス(アンカーポーズ)が使用されてよい。
【0066】
トレーニングモジュール504は、専門家604、608、612の知識をポーズ推定モジュール656(または、究極的にはポーズモジュール312)によって蒸留する。
【0067】
【数1】
および
【0068】
【数2】
を、3つそれぞれの作業である身体、手、および顔ポーズの検出のために利用されるトレーニングデータセット630、640、652とする。これらはそれぞれ、身体b、手h、および顔fに対する地上検証2Dおよび3Dポーズの注釈と関連する。言い換えれば、身体専門家604は、
【0069】
【数3】
すなわち、地上検証注釈bを有するイメージIのセットに対してトレーニングされる。手専門家608および顔専門家612も同じようにトレーニングされる。
【0070】
ポーズ推定モジュール112をトレーニングさせるために、トレーニングモジュール504は、全身に対する地上検証注釈wを使用する。トレーニングの間、専門家604、608、612によって検出されるポーズは、部分的に固有のデータセット630、640、652の注釈を増大させるために使用される。
【0071】
【数4】
および
【0072】
【数5】
はそれぞれ、身体、手、および顔専門家604、608、612とともに、イメージIに基づいて決定されるポーズである。トレーニングモジュール504は、以下の数式(1)を利用してポーズモジュール656(および、ポーズモジュール348)をトレーニングさせる。
【0073】
【数6】
【0074】
ここで、
【数7】
【0075】
専門家604、608、612によって決定されるポーズ
【0076】
【数8】
【0077】
【数9】
は、2Dおよび3Dに存在しない、キーポイントに対する疑似地上検証として見なされる。例えば、いくつかの注釈が間違ってラベリングされるかラベリングされていない場合、地上検証注釈はポーズを使用して完成となる。注釈のないトレーニングイメージは、疑似地上検証注釈である
【0078】
【数10】

だけを用いることにより、ネットワークをトレーニングさせるために使用されてよい。
【0079】
ポーズ推定モジュール112のトレーニングに使用される損失
【0080】
【数11】
は、損失
【0081】
【数12】
をそれぞれの部分
【0082】
【数13】
{身体、手、顔}に対する3つの項、すなわち、(a)分類分岐(モジュール)に対する損失
【0083】
【数14】
、(b)回帰分岐(モジュール)に対する損失
【0084】
【数15】
および(c)蒸留損失
【0085】
【数16】
の和と結合する。これは、次のような数式(2)によって作成されてよい。
【0086】
【数17】
【0087】
RPNモジュール308の損失
【0088】
【数18】
は、標準の予め決定された損失である。それぞれの部分pに対する分類損失
【0089】
【数19】
は、すべてのボックスに対して平均化されるソフトマックス(softmax)である。ボックスが地上検証ボックスと十分に重なる場合、その地上検証ラベルは地上検証ポーズから最も近いアンカーポーズを探索することによって得られる。そうでなければ、それには0のような背景ラベルが割り当てられてもよい。それぞれの部分に対する回帰損失
【0090】
【数20】
は、すべてのボックスに平均される、それぞれのボックスに対する地上検証2D-3Dポーズと回帰推定された2D-3Dポーズとの差に対するL1損失である。トレーニングモジュール504は、アンカーポーズから回帰推定された2D-3Dポーズと地上検証ポーズとの距離を最小化するようにトレーニングしてよい。回帰はクラスに固有し、損失は、それぞれのポジティブボックスに対する地上検証クラスに固有の回帰変数(regressor)の出力だけに適用される。
【0091】
蒸留損失
【0092】
【数21】
は、2つの損失成分、すなわち、分類点数の蒸留に対する損失成分
【0093】
【数22】
および回帰に対する損失成分
【0094】
【数23】
【0095】
を含み、次のように表現されてよい。
【数24】
【0096】
ボックスが与えられれば、蒸留損失は、ポーズモジュール656(および、究極的にはポーズモジュール348)の出力を、部分専門家pの出力に可能な限り近づけてよい。分類成分
【0097】
【数25】
【0098】
は、対応する部分専門家によって生成される予測と部分pに対してポーズモジュール656によって推定されるものの間の蒸留損失であってよい。言い換えれば、
【数26】
というハードラベル損失
【0099】
【数27】
のソフトバージョンである。回帰成分
【0100】
【数28】
は、部分に対して専門家によって推定されるポーズと地上検証クラスに対し、その部分に対するポーズモジュール656によって推定されるポーズの間のL1損失である。疑似地上検証ポーズは、部分専門家によって生成されるすべての重複推定値を平均することによって得られる。
【0101】
【数29】
が疑似地上検証ポーズの回帰を実施する反面、
【0102】
【数30】
は、与えられたボックスに対して部分専門家によって予測される、正確に同じポーズの回帰を選好する。
【0103】
RPNモジュールとポーズモジュール656によって提案されるボックス(候補ボックス)が異なることもある。ボックスは、ポーズ推定モジュール112によって生成されるものを含まなければならない。トレーニングの間、トレーニングモジュール504は、部分専門家604、608、612からのポジティブボックスを使用することでポーズモジュール656の提案を増大させ、これらのボックスだけに基づいて減を決定する。
【0104】
まとめると、トレーニングイメージが与えられれば、トレーニングモジュール504は、(a)それぞれの部分専門家を実行させ、そのポーズ検出だけでなく分類確率および回帰出力をもつポジティブボックスのリストを維持し、(b)ポーズモジュール656を実行させ、部分専門家の出力が与えられれば全身ポーズを決定し、部分専門家からのポジティブボックスを提案のリストに追加する。疑似地上検証に基づく損失はすべてのボックスに平均される反面、蒸留損失は部分専門家からのポジティブボックスだけに平均される。トレーニングは、それぞれの部分専門家を先に独立的にトレーニングさせることを含むが、これは、身体データセットを使用して身体データセットに対するイメージ分類+RPN+身体分類+身体回帰で構成される身体専門家をトレーニングさせること、顔データセットを使用して顔データセットに対するイメージ分類+RPN+顔分類+顔回帰で構成される顔専門家をトレーニングさせること、および手データセットを使用して手データセットに対するイメージ分類+RPN+手分類+手回帰で構成される手専門家をトレーニングさせることを意味する。全身ネットワークをトレーニングさせるために専門家は凍結されるため、損失を使用して調整されず、全身ネットワークだけをトレーニングさせる。
【0105】
トレーニングモジュール504は、損失を最小化するために1つ以上の特性を調整する。特性は、例えば、身体専門家604の少なくとも1つの特性、手専門家608の少なくとも1つの特性、顔専門家612の少なくとも1つの特性、およびポーズモジュール656の少なくとも1つの特性であってもよい。トレーニングが完了すれば、分類モジュール624、632、644、回帰モジュール628、636、648、およびポーズモジュール656の特性は、(例えば、野生イメージ(wild image)における)入力イメージに基づいて全身ポーズを推定するためのポーズ推定モジュール112に記録される。
【0106】
身体専門家604は、MPII、COCO、LSP、LSPE、Human3.6M、およびSurrealデータセットの組み合わせを利用してトレーニングモジュール504によってトレーニングされてよい。マッチングにより、2Dデータセットに対して疑似3D地上検証が得られる。トレーニングモジュール504は、身体専門家604のトレーニングの間、例えば、50回のエポック(epoch)の間、トレーニングイメージに対して水平フリップ(または、他の幾何学的変換)をランダムに実行してよい。トレーニングモジュール504は、100回のエポックの間、RHデータセットを利用して手専門家608をトレーニングさせてよい。トレーニングモジュール504は、手専門家608のトレーニングの間、データ増強、例えば、カラージッタリング(color jittering)、ランダム水平フリッピング(random horizontal flipping)、およびランダム遠近変換(random perspective transformation)を実行してよい。トレーニングモジュール504は、トレーニングデータセットから右手および裏返った左手の3DポーズをクラスタリングすることによってK=5個のアンカーポーズを生成してよい。トレーニングモジュール504は、トレーニングの間、ランダム水平フリップおよびカラージッタリングを使用しながら、3D顔追跡Menpoデータセットに対して50回のエポックの間に顔専門家612をトレーニングしてよい。
【0107】
トレーニングモジュール504は、ResNet50バックボーンを含んでよい。トレーニングは、それぞれの部分専門家のデータセット(データセット630、640、652)の統合を使用する50回のエポックであってよい。部分専門家のそれぞれのトレーニングのために、同じデータ増強戦略が利用されてよい。トレーニングモジュール504は、例えば、0.9の運動量、0.0001の加重値減衰、および0.02の初期学習率を有する確率的勾配下降法(stochastic gradient descent:SGD)を利用してよい。学習率は、30回のエポックおよび45回のエポックの後に10で割られてよい。トレーニングおよびテストの間の最も小さいイメージ値が800ピクセルであり、1000個の提案がテストで維持されるように、イメージサイズが再調整されてよい。
【0108】
ポーズ推定モジュール112は、(トレーニング後)NvidiaによるT4GPU(graphics processing unit:グラフィックプロセッシングユニット)を使用して実行されてよい。イメージは400ピクセルに減少されてよく、ボックス提案の数が50個に制限されてよい。これは、ポーズ推定モジュール112が、リアルタイムで1秒あたり25フレームに対応する、イメージあたり40msで実行されることを許容してよい。
【0109】
ポーズ推定モジュール112は、それぞれの部分ポーズ推定器(estimator)よりも優れるかこれに匹敵するポーズ推定を提供するだけでなく、それぞれの部分ポーズ推定器が達成できなかった全身ポーズの推定も生成する。全身ポーズ推定は、例えば、全身(または、より大きな身体セクション)アバタを生成するために、または他の適切な用途のために利用されてよい。図8は、ポーズ推定モジュール112に入力されるイメージの一例を示している。上の3行は、ポーズ推定モジュール112によって推定される身体、手、および顔ポーズの一例を示している。下の2行は、ポーズ推定モジュール112によって推定される2Dおよび3D全身ポーズを示している。
【0110】
図9は、イメージ内の人間の全身ポーズを生成する例示的な方法を示したフローチャートである。制御は、イメージが受信されたかどうかをポーズ推定モジュール112が決定するための段階904から始まる。段階904が真であれば、制御は段階908に続く。段階904が偽であれば、制御は段階904を維持する。
【0111】
段階908で、RPNモジュール308は候補ボックスを決定し、イメージ分類モジュール304は候補ボックスに対する分類を決定する。分類モジュール304は、ResNet-50モデルまたは他の適切なイメージ分類モデルのようなイメージ分類モデルによって分類を決定する。分類は、身体、手、および顔で構成されるグループから選択される。
【0112】
段階912で、身体分類モジュール312および回帰モジュール316は、身体データセットに対するイメージ分類+RPN+身体分類+身体回帰で構成される身体専門家をトレーニングさせるために、身体データセットを利用しながら、候補ボックスに基づいてイメージに対する身体ポーズ(複数可)を生成する。頭分類モジュール320および回帰モジュール324は、候補ボックスに基づいてイメージに対する頭ポーズ(複数可)を生成する。顔分類モジュール328および回帰モジュール332は、候補ボックスに基づいてイメージに対する顔ポーズ(複数可)を生成する。
【0113】
段階916で、ポーズモジュール348は、身体、顔、および手ポーズ(複数可)に基づいて全身ポーズ(複数可)を生成する。ポーズモジュール348は、身体、顔、および手ポーズのキーポイントを連結して全身ポーズ(複数可)を生成する。例えば、ポーズモジュール348は、身体ポーズの頭キーポイントと顔ポーズの頭キーポイントを連結する。ポーズモジュール348は、手ポーズ(複数可)と身体ポーズの腕キーポイントを連結する。
【0114】
全身ポーズに基づいて1つ以上のアクションが採択される。例えば、段階920で、アニメーションモジュール116は、ポーズ推定モジュール112によって決定された全身ポーズと同じポーズの身体を有するアバタを含むイメージを生成してよい。ディスプレイ制御モジュール124は、ディスプレイ108上にアバタイメージを表示してよい。ここではアバタを表示する例を提供したが、全身ポーズは、追加的にまたは代案的に、1つ以上の他の方式で使用されてもよい。また、図9に示した例において、制御は段階904に戻ってもよい。イメージは、1秒あたり25フレーム(イメージ)のような予め決定されたレートで受信されてもよく、他の適切なレートで受信されてもよい。
【0115】
図10は、ポーズ推定モジュール112をトレーニングさせる例示的な方法を示したフローチャートである。制御は、トレーニングモジュール504が身体イメージ(または、身体データセット630)を利用して身体専門家604をトレーニングさせるための段階1004から始まる。段階1008で、トレーニングモジュール504は、手イメージ(または、手データセット640)を利用して手専門家608をトレーニングさせる。段階1012で、トレーニングモジュール504は、顔イメージ(または、顔データセット652)を利用して顔専門家612をトレーニングさせる。段階1004~1012に対する例示的な順序が提供されているが、他の適切な順序が適用されてもよいし、専門家が同時に(並列で)トレーニングされてもよい。
【0116】
段階1016で、トレーニングモジュール504は、ポーズモジュール112をトレーニングさせるために専門家からの情報を蒸留する。トレーニングが完了すれば(例えば、予め定められた数のトレーニングイメージの完了、あるいは予め定められた数のエポックの完了を意味する。ここで、それぞれのエポックは、予め定められた数のトレーニングイメージに基づくトレーニングを含む)、ポーズ推定モジュール112は、入力イメージに基づいて全身ポーズを決定するように構成される。
【0117】
上述した説明は、本質的に例示的なものに過ぎず、本開示、この応用、または用途を制限することを意図するものではない。本開示の広範囲な教示は、多様な形態で実現可能である。例えば、開示される実施形態では、人間に対する全身ポーズを生成するためのシステムおよび方法について説明しているが、当技術分野において通常の知識を有する者であれば、適切なトレーニングによって他のタイプの動物に対する全身ポーズを生成することにも使用可能であることが理解できるであろう。また、当技術分野において通常の知識を有する者であれば、アプリケーションにより、追加的な専門家モジュールが人間に対する全身ポーズを生成するための開示された実施形態に追加可能であるということが理解できるであろう。例えば、専門家足分類モジュールおよび回帰モジュールが、人間の足のポーズを推定することを目的とするポーズ推定モジュール112に追加されてもよい。代案的な実施形態において、所望するアプリケーション(例えば、身体+手+顔、身体+手+足、または身体+手+足+顔)により、専門家モジュールの異なる組み合わせがポーズ推定モジュール112に追加されてもよいし、ポーズ推定モジュール112から除去されてもよい。例えば、顔よりも手および足のポーズの関節運動(articulation)とより多くの関連があるスポーツアプリケーションに対し、アニメーションモジュール116は、アニメーション化されたイメージを生成してもよい。他の実施形態において、アニメーションモジュール116は、四肢として足(foot)(または、足(paw))だけがあり、人間にあるような手のない動物(例えば、犬や猫など)に対するアニメーション化されたイメージを生成してもよい。
【0118】
したがって、本開示は特定の例を含んでいるが、本開示の真正な範囲は、図面、明細書、および添付する特許請求の範囲の研究に基づくことによって他の修正が明らかになるはずであるため、このように制限されてはならない。方法における1つ以上の段階は、本開示の原理を変更しない範囲内で異なる順序で(または、同時に)実行されてもよいということが理解されなければならない。また、実施形態のそれぞれは所定の特徴を有するものと上述したが、本開示の任意の実施形態と関連して説明した特徴のうちの任意の1つ以上は、他の実施形態の任意の特徴で、および/または組み合わせが明らかに説明されていなくても、他の実施形態の任意の特徴と組み合わされて実現されてもよい。言い換えれば、上述した実施形態は相互排他的なものでなく、1つ以上の実施形態との相互置換(permutation)は本開示の範囲内で維持される。
【0119】
エレメント同士の(例えば、モジュール、回路エレメント、半導体層など)空間的および機能的関係は、「連結する(connected)」、「結合する(engaged)」、「カップルリングする(coupled)」、「隣接する(adjacent)」、「横の(next to)」、「上の(on top of)」、「上の(above)」、「下の(below)」、および「配置される(disposed)」を含んだ多様な用語によって説明される。「直接的な(direct)」ものであるという明らかな説明がない限り、第1エレメントと第2エレメントのとの関係が上述した開示で説明されるときには、その関係が、第1エレメントと第2エレメントとの間に介在するいかなる他のエレメントも存在しない直接的な関係であってもよいが、第1エレメントと第2エレメントとの間に1つ以上のエレメントが(空間的にまたは機能的に)介在する間接的な関係であってもよい。本願で使用されるとき、語句A、B、およびCのうちの少なくとも1つは、非排他的論理的和によって論理(A OR B OR C)を意味するものと解釈されなければならず、「Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、およびCのうちの少なくとも1つ」を意味するように解釈されてはならない。
【0120】
図面において、矢頭(arrowhead)によって示される矢印の方向は、一般的には、例示において重要な情報(例えば、データまたは命令語)の流れを示すものである。例えば、エレメントAとエレメントBが多様な情報を交換するとき、エレメントAからエレメントBに送信される情報が例示に関連する場合には矢印がエレメントAからエレメントBを指すことがある。この単方向矢印は、エレメントBからはエレメントAに他の情報が一切送信されないということを暗示するものでない。エレメントAからエレメントBに情報が送信される場合、エレメントBは、エレメントAの情報に対する要請、またはその情報の受信確認の応答(receipt acknow ledgement)を送信することもある。
【0121】
本出願において、後述する定義を含み、用語「モジュール」または用語「コントローラ」は用語「回路」に置き換えられてもよい。用語「モジュール」は、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、デジタル、アナログ、または混合されたアナログ/デジタル離散回路、デジタル、アナログ、または混合アナログ/デジタル集積回路、組み合わせ論理回路、フィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)、コードを実行するプロセッサ回路(共有される、専用される、またはグループ)、プロセッサ回路によって実行されるコードを記録するメモリ回路(共有される、専用される、またはグループ)、上述した機能性(functionality)を提供する他の適切なハードウェアコンポーネント、または、例えば、システムオンチップにおける上述したものの一部またはすべての組み合わせを示してもよいが、これらの一部であってもよいし、これらを含んでもよい。
【0122】
モジュールは、1つ以上のインタフェース回路を含んでよい。いくつかの例において、インタフェース回路は、ローカル・エリア・ネットワーク(local area network:LAN)、インターネット、ワイド・エリア・ネットワーク(wide area network:WAN)、またはこれらの組み合わせによって接続される有線または無線インタフェースを含んでよい。本開示の任意の与えられたモジュールの機能性は、インタフェース回路によって接続される多数のモジュールに分散されてよい。例えば、多数のモジュールが負荷分散を許容してもよい。また他の例において、サーバ(遠隔またはクラウド、または周知の)モジュールは、クライアントモジュールの代わりに複数の機能を実行してもよい。
【0123】
上述したような用語「コード」は、ソフトウェア、ファームウェア、および/またはマイクロコードを含んでよく、プログラム、ルーチン、関数、クラス、データ構造、および/またはオブジェクトを指称してよい。用語が共有されたプロセッサ回路は、多数のモジュールからのいくつかのまたはすべてのコードを実行する単一のプロセッサ回路を包括する。用語「グループプロセッサ回路」は、追加のプロセッサ回路と結合し、1つ以上のモジュールからのコードのうちの一部またはすべてを実行するプロセッサ回路を包括する。多数のプロセッサ回路に対する言及は、個別ダイ上の多数のプロセッサ回路、単一ダイ上の多数のプロセッサ回路、単一プロセッサ回路の多数のコア、単一プロセッサ回路の多数のスレッド、または上述したものの組み合わせを包括する。用語「共有されたメモリ回路」は、多数のモジュールからのいくつかのまたはすべてのコードを記録する単一のメモリ回路を包括する。用語「グループメモリ回路」は、追加のメモリと結合し、1つ以上のモジュールからのいくつかのまたはすべてのコードを記録するメモリ回路を包括する。
【0124】
用語「メモリ回路」は、用語「コンピュータ読み取り可能な媒体」のサブセットである。用語「コンピュータ読み取り可能な媒体」は、本願で使用されるときには、媒体を介して(例えば、搬送波(carrier wave)上で)伝達される一時的な電気または電磁気信号は含まず、したがって、用語「コンピュータ読み取り可能な媒体」は、類型であって非一時的なものとして見なされてもよい。非一時的な類型のコンピュータ読み取り可能な媒体の非制限的な例としては、揮発性メモリ回路(例えば、フラッシュメモリ回路、消去可能プログラミング可能なROM回路、またはマスクROM回路)、揮発性メモリ回路(例えば、スタックRAM回路またはダイナミックRAM回路)、磁気記録媒体(例えば、アナログまたはデジタル磁気テープ、またはハードディスクドライブ)、および光学記録媒体(例えば、CD、DVD、またはブルーレイディスク)などが挙げられる。
【0125】
本出願で説明される装置および方法は、コンピュータプログラムによって具体化される1つ以上の特定の機能を実行するように汎用コンピュータを構成することによって生成される特殊目的コンピュータにより、部分的にまたは完全に実現されてよい。上述した機能ブロック、フローチャートコンポーネント、および他のエレメントは、当技術分野において通常の知識を有する者やプログラマの日常的な作業により、コンピュータプログラムに変換可能なソフトウェアとしての役割をする。
【0126】
コンピュータプログラムは、少なくとも1つの非一時的な類型のコンピュータ読み取り可能な媒体上に記録されるプロセッサ実行可能な命令語を含む。コンピュータプログラムも、記録されたデータを含んでもよいし、依存してもよい。コンピュータプログラムは、特殊目的コンピュータのハードウェアと相互作用する基本入力/出力システム(basic input/output system:BIOS)、特殊目的コンピュータの特定のデバイスと相互作用するデバイスドライバ、1つ以上のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーションなどを含んでよい。
【0127】
コンピュータプログラムは、(i)HTML(hypertext markup language)、XML(extensible markup language)、またはJSON(JavaScript Object Notation)のようなパーシングされる技術テキスト(descriptive text)、(ii)アセンブリコード、(iii)コンパイラによってソースコードで生成されるオブジェクトコード、(iv)インタプリタによる実行のためのソースコード、(v)適時の(just-in-time)コンパイラによるコンパイルおよび実行のためのソースコードなどを含んでよい。一例として、ソースコードは、C、C++、C#、Objective C、Swift、Haskell、Go、SQL、R、Lisp、JavaR、Fortran、Perl、Pascal、Curl、OCaml、JavascriptR、HTML5(Hypertext Markup Language 5th revision)、Ada、ASP(Active Server Pages)、PHP(Hypertext Preprocessor)、Scala、Eiffel、Smalltalk、Erlang、Ruby、FlashR、Visual BasicR、Lua、MATLAB、SIMULINK、およびPythonRを含む言語からの構文を使用して作成されてもよい。
図1
図2
図3
図4
図5
図6a
図6b
図6c
図7
図8
図9
図10