(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-10
(45)【発行日】2023-03-20
(54)【発明の名称】深度画像に誘導された敵対的ネットワークに基づく3Dハンドポーズ推定
(51)【国際特許分類】
G06T 7/20 20170101AFI20230313BHJP
G06T 7/00 20170101ALI20230313BHJP
【FI】
G06T7/20 300A
G06T7/00 350C
(21)【出願番号】P 2021562366
(86)(22)【出願日】2020-09-09
(86)【国際出願番号】 US2020049855
(87)【国際公開番号】W WO2021118662
(87)【国際公開日】2021-06-17
【審査請求日】2021-10-20
(32)【優先日】2019-12-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シ-ヤオ・リン
(72)【発明者】
【氏名】ユシェン・シエ
(72)【発明者】
【氏名】フイ・タン
(72)【発明者】
【氏名】チャオ・フアン
(72)【発明者】
【氏名】リアンイ・ハン
(72)【発明者】
【氏名】ウェイ・ファン
【審査官】真木 健彦
(56)【参考文献】
【文献】米国特許出願公開第2019/0278983(US,A1)
【文献】特開2017-191576(JP,A)
【文献】特表2015-522193(JP,A)
【文献】Jiaqing Liu,An Improved Hand Gesture Recognition With Two-Stage Convolution Neural Networks Using A Hand Color Image And Its Pseudo-Depth Image,2019 IEEE International Conference on Image Processing,TW,IEEE,2019年09月22日,P.375-379
【文献】Chengde Wan,Crossing Nets: Combining GANs and VAEs with a Shared Latent Space for Hand Pose Estimation,2017 IEEE Conference on Computer Vision and Pattern Recognition,米国,IEEE,2017年07月21日,P.1196-1205
【文献】Liangjian Chen,DGGAN: Depth-image Guided Generative Adversarial Networks for Disentangling RGB and Depth Images in 3D Hand Pose Estimation,2020 IEEE Winter Conferece on Applications of Computer Vision (WACV),米国,IEEE,2020年03月01日,P.400-408
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/20
G06T 7/00
G06T 1/00
G06F 3/01
G06F 3/048
G06N 3/00
(57)【特許請求の範囲】
【請求項1】
画像内の3次元(3D)ハンドポーズを推定する方法であって、
コンピュータにより、手の画像に対応するデータを受信するステップと、
前記コンピュータにより、前記受信した手の画像データに対応する
第1の深度マップを生成するステップと、
前記コンピュータにより、前記受信した手の画像データに基づいて、2Dハンドポーズ推定器を用いて1つまたは複数の手関節ヒートマップを生成するステップと、
前記コンピュータにより、前記生成されたヒートマップに基づいて、3Dハンドポーズ推定器を用いて関節位置を推定するステップと、
前記コンピュータにより、前記推定された関節位置および前記生成された深度マップに基づいて第2の深度マップを再構築するステップと、
前記コンピュータにより、前記受信した手の画像データ
、前記第1の深度マップ及び前記第2の深度マップからハンドポーズを推定するステップと
を含む、方法。
【請求項2】
生成する前記ステップは、敵対的生成ネットワークによって実行される、請求項1に記載の方法。
【請求項3】
前記敵対的生成ネットワークは、生成器および識別器を含む、請求項2に記載の方法。
【請求項4】
前記敵対的生成ネットワークは、敵対的生成ネットワーク(GAN)損失値およびタスク損失値を訓練値として利用する、請求項3に記載の方法。
【請求項5】
前記敵対的生成ネットワークは、前記生成器が前記GAN損失値および前記タスク損失値を最小化することによって訓練される、請求項4に記載の方法。
【請求項6】
前記敵対的生成ネットワークは、前記識別器が前記GAN損失値および前記タスク損失値を最大化することによって訓練される、請求項4に記載の方法。
【請求項7】
前記生成器は、前記受信した手の画像データのみを使用して前記深度マップを生成する、請求項4に記載の方法。
【請求項8】
前記識別器は、前記生成された深度マップおよび1つまたは複数のペア化されていない深度マップを使用して前記GAN損失値を決定する、請求項7に記載の方法。
【請求項9】
前記ハンドポーズは、前記受信した手の画像データおよび前記受信した手の画像データに対応する前記生成された深度マップのみを使用することによって推定される、請求項1に記載の方法。
【請求項10】
画像内の3次元(3D)ハンドポーズを推定するためのコンピュータシステムであって、
コンピュータプログラムコードを格納するように構成された1つまたは複数のコンピュータ可読非一時的記憶媒体と、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードにより命令されるように動作するように構成された1つまたは複数のコンピュータプロセッサと
を含み、前記コンピュータプログラムコードは、
前記1つまたは複数のコンピュータプロセッサに、手の画像に対応するデータを受信させるように構成された受信するコードと、
前記1つまたは複数のコンピュータプロセッサに、前記受信した手の画像データに対応する
第1の深度マップを生成させるように構成された生成するコードと、
前記1つまたは複数のコンピュータプロセッサに、前記受信した手の画像データに基づいて、2Dハンドポーズ推定器を用いて1つまたは複数の手関節ヒートマップを生成させるように構成された生成するコードと、
前記1つまたは複数のコンピュータプロセッサに、前記生成されたヒートマップに基づいて、3Dハンドポーズ推定器を用いて関節位置を推定させるように構成された推定するコードと、
前記1つまたは複数のコンピュータプロセッサに、前記推定された関節位置および前記第1の深度マップに基づいて第2の深度マップを再構築させるように構成された再構築するコードと、
前記1つまたは複数のコンピュータプロセッサに、前記受信した手の画像データ
、前記第1の深度マップ及び前記第2の深度マップからハンドポーズを推定させるように構成された推定するコードと
を含む、コンピュータシステム。
【請求項11】
生成する
ことは、敵対的生成ネットワークによって実行される、請求項
10に記載のコンピュータシステム。
【請求項12】
前記敵対的生成ネットワークは、生成器および識別器を含む、請求項
11に記載のコンピュータシステム。
【請求項13】
前記敵対的生成ネットワークは、敵対的生成ネットワーク(GAN)損失値およびタスク損失値を訓練値として利用する、請求項
12に記載のコンピュータシステム。
【請求項14】
前記敵対的生成ネットワークは、前記生成器が前記GAN損失値および前記タスク損失値を最小化することによって訓練される、請求項
13に記載のコンピュータシステム。
【請求項15】
前記敵対的生成ネットワークは、前記識別器が前記GAN損失値および前記タスク損失値を最大化することによって訓練される、請求項
13に記載のコンピュータシステム。
【請求項16】
前記生成器は、前記受信した手の画像データのみを使用して前記深度マップを生成する、請求項
13に記載のコンピュータシステム。
【請求項17】
前記識別器は、前記生成された深度マップおよび1つまたは複数のペア化されていない深度マップを使用して前記GAN損失値を決定する、請求項
16に記載のコンピュータシステム。
【請求項18】
画像内の3次元(3D)ハンドポーズを推定するためのコンピュータプログラムを格納した非一時的コンピュータ可読媒体であって、前記コンピュータプログラムは、1つまたは複数のコンピュータプロセッサに、
手の画像データを受信させ、
前記受信した手の画像データに対応する
第1の深度マップを生成させ、
前記受信した手の画像データに基づいて、2Dハンドポーズ推定器を用いて1つまたは複数の手関節ヒートマップを生成させ、
前記生成されたヒートマップに基づいて、3Dハンドポーズ推定器を用いて関節位置を推定させ、
前記推定された関節位置および前記第1の深度マップに基づいて第2の深度マップを再構築させ、
前記受信した手の画像データ
、前記第1の深度マップ及び前記第2の前記第2の深度マップからハンドポーズを推定させるように構成される、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年12月12日に米国特許商標庁に出願された米国特許出願第16/712,228号の優先権を主張し、その開示は、その全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
本開示は、一般的にはコンピューティングの分野に関し、より詳細には3Dハンドポーズを推定することに関する。
【0003】
ハンドポーズの推定は、画像または一組のビデオフレームから手の関節を見つけるタスクである。赤-緑-青(RGB)カラー画像から3次元(3D)ハンドポーズを推定することは、コンピュータビジョン、仮想現実、拡張現実、および他の形態の人間とコンピュータとの対話などの広範囲の潜在的な用途に不可欠である。RGB画像からハンドポーズを推定することは、ウェブカメラ、モノのインターネット(IoT)カメラ、およびスマートフォンを介してRGB画像を取り込むことができるため、著しく普及している。
【発明の概要】
【課題を解決するための手段】
【0004】
実施形態は、3Dハンドポーズを推定するための方法、システム、およびコンピュータ可読媒体に関する。一態様によれば、3Dハンドポーズを推定するための方法が提供される。本方法は、手の画像に対応するデータをコンピュータによって受信するステップと、受信した手の画像データに対応する深度マップを生成するステップと、を含むことができる。コンピュータは、受信した手の画像データおよび生成された深度マップからハンドポーズを推定することができる。
【0005】
別の態様によれば、3Dハンドポーズを推定するためのコンピュータシステムが提供される。コンピュータシステムは、1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数のコンピュータ可読有形記憶装置と、1つまたは複数のメモリのうちの少なくとも1つを介して1つまたは複数のプロセッサのうちの少なくとも1つによって実行するために1つまたは複数の記憶装置のうちの少なくとも1つに格納されたプログラム命令と、を含むことができ、それによってコンピュータシステムは方法を実行することができる。本方法は、手の画像に対応するデータをコンピュータによって受信するステップと、受信した手の画像データに対応する深度マップを生成するステップと、を含むことができる。コンピュータは、受信した手のデータ画像および生成された深度マップからハンドポーズを推定することができる。
【0006】
さらに別の態様によれば、3Dハンドポーズを推定するためのコンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つまたは複数のコンピュータ可読記憶装置と、1つまたは複数の有形記憶装置のうちの少なくとも1つに格納されたプログラム命令と、を含むことができ、プログラム命令はプロセッサによって実行可能である。プログラム命令は、したがって、手の画像に対応するデータをコンピュータによって受信することと、受信した手の画像データに対応する深度マップを生成することと、を含むことができる方法を実行するためにプロセッサによって実行可能である。コンピュータは、受信した手の画像データおよび生成された深度マップからハンドポーズを推定することができる。
【0007】
これらおよび他の目的、特徴および利点は、添付の図面に関連して読まれるべき例示的な実施形態の以下の詳細な説明から明らかになるであろう。図面の様々な特徴は、当業者が詳細な説明と併せて本開示を理解するのを容易にするために、説明を明確にするためのものであるため、縮尺通りではない。
【図面の簡単な説明】
【0008】
【
図1】少なくとも1つの実施形態によるネットワーク化されたコンピュータ環境を示す図である。
【
図2】少なくとも1つの実施形態による、3Dハンドポーズを推定するプログラムの機能ブロック図である。
【
図3】少なくとも1つの実施形態による、
図2に示すような深度マップ再構築モジュールの機能ブロック図である。
【
図4】少なくとも1つの実施形態による、
図2に示すようなハンドポーズ推定モジュールの機能ブロック図である。
【
図5】少なくとも1つの実施形態による、3Dハンドポーズを推定するプログラムによって実行されるステップを示す動作フローチャートである。
【
図6】少なくとも1つの実施形態による、
図1に示すコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図7】少なくとも1つの実施形態による、
図6の例示的なクラウドコンピューティング環境の機能層のブロック図である。
【
図8】少なくとも1つの実施形態による、
図1に示すコンピュータおよびサーバの内部構成要素および外部構成要素のブロック図である。
【発明を実施するための形態】
【0009】
特許請求される構造および方法の詳細な実施形態が本明細書に開示されているが、開示された実施形態は、様々な形態で具現化され得る特許請求された構造および方法の単なる例示であることが理解され得る。しかし、本開示の態様は、多くの異なる形態で具現化されてもよく、本明細書に記載の例示的な実施形態に限定されると解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が徹底的かつ完全であり、本開示の範囲を当業者に完全に伝えるように提供されている。この説明では、提示された実施形態を不必要に不明瞭にすることを避けるために、周知の特徴および技術の詳細は省略される場合がある。
【0010】
実施形態は、一般的にはコンピューティングの分野に関し、より詳細には3Dハンドポーズを推定することに関する。以下に説明する例示的な実施形態は、とりわけ、2D RGB画像のみを使用して2D RGB画像内に存在する3Dハンドポーズを決定するためのシステム、方法、およびプログラム製品を提供する。したがって、本明細書で開示されるコンピュータにより実施される方法、コンピュータシステム、およびコンピュータ可読媒体は、対応する深度マップを使用せずにコンピュータが2D画像から3D形状を決定することを可能にすることによってコンピューティングの分野を改善する能力を有する。さらに、本明細書に開示した方法、システム、およびコンピュータ可読媒体は、ハンドポーズに関して記載されているが、記載された実施形態はまた、他の3D形状の改善された推定のために構成されてもよい。
【0011】
前述したように、ハンドポーズの推定は、画像または一組のビデオフレームから手の関節を見つけるタスクである。カラーRGB画像から3次元(3D)ハンドポーズを推定することは、コンピュータビジョン、仮想現実、拡張現実、および他の形態の人間とコンピュータとの対話などの広範囲の潜在的な用途に不可欠である。RGB画像からハンドポーズを推定することは、ウェブカメラ、モノのインターネット(IoT)カメラ、およびスマートフォンを介してRGB画像を取り込むことができるため、著しく普及している。
【0012】
しかしながら、これらのポーズを推定することは、RGB画像から深度情報を推測する際の曖昧さのために困難である。ハンドポーズ推定器は、予測された3Dポーズとグラウンドトゥルース深度マップとの間の一貫性を強制するために、訓練中に3Dハンドポーズ推定モデルを調整することができるが、これらの推定器は、訓練中のRGB画像およびペアの深度マップの両方の利用可能性に依存する。したがって、条件付き敵対的生成ネットワーク(GAN)モデルを利用して、入力RGB画像を条件とする現実的な深度マップを生成し、合成された深度マップを使用して3Dハンドポーズ推定モデルを調整することが有利であり得る。そのような深度画像誘導GAN(DGGAN)は、解析されるRGB画像と同時に深度マップをアップロードする必要性を排除することができる。DGGANはまた、ポーズ推定モデルを効果的に調整することができる。
【0013】
態様は、特定の実施形態による方法、装置(システム)、およびコンピュータ可読媒体のフローチャート図および/またはブロック図を参照して本明細書で説明される。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0014】
以下に説明する例示的な実施形態は、3Dハンドポーズを推定するシステム、方法、およびプログラム製品を提供する。本実施形態によれば、この推定は、単眼RGB画像上の深度画像誘導GANを利用して、RGB画像から深度マップを推測することによって実行され得る。
【0015】
ここで
図1を参照すると、画像内の3Dハンドポーズの改善された推定のためのハンドポーズ推定システム100(以下「システム」)を示すネットワークコンピュータ環境の機能ブロック図が示されている。
図1は、一実施態様の例示のみを提供し、異なる実施形態が実施され得る環境に関する限定を意味しないことを理解されたい。図示した環境に対する多くの修正は、設計および実施要件に基づいて行うことができる。
【0016】
システム100は、コンピュータ102およびサーバコンピュータ114を含むことができる。コンピュータ102は、通信ネットワーク110(以下「ネットワーク」)を介してサーバコンピュータ114と通信することができる。コンピュータ102は、プロセッサ104と、データ記憶装置106に格納され、ユーザとインターフェースし、サーバコンピュータ114と通信することが可能なソフトウェアプログラム108と、を含むことができる。
図8を参照して以下に説明するように、コンピュータ102は、それぞれ内部構成要素800Aおよび外部構成要素900Aを含むことができ、サーバコンピュータ114は、それぞれ内部構成要素800Bおよび外部構成要素900Bを含むことができる。コンピュータ102は、例えば、モバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、またはプログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることができる任意の種類のコンピューティングデバイスであってもよい。
【0017】
サーバコンピュータ114はまた、
図6および
図7に関して以下に説明するように、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、またはサービスとしてのインフラストラクチャ(laaS)などのクラウドコンピューティングサービスモデルで動作してもよい。サーバコンピュータ114はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、またはハイブリッドクラウドなどのクラウドコンピューティング展開モデルに配置されてもよい。
【0018】
画像内の3Dハンドポーズを推定するために使用され得るサーバコンピュータ114は、データベース112と対話することができるハンドポーズ推定プログラム116(以下、「プログラム」)を実行することが可能である。ハンドポーズ推定プログラム方法は、
図4に関して以下により詳細に説明される。一実施形態では、コンピュータ102は、ユーザインターフェースを含む入力デバイスとして動作することができ、プログラム116は、主にサーバコンピュータ114上で実行することができる。代替的な実施形態では、プログラム116は、主に1つまたは複数のコンピュータ102上で実行することができ、サーバコンピュータ114は、プログラム116によって使用されるデータの処理および格納に使用することができる。プログラム116は、スタンドアロンプログラムであってもよく、またはより大きなハンドポーズ推定プログラムに統合されてもよいことに留意されたい。
【0019】
しかしながら、プログラム116の処理は、場合によっては、コンピュータ102とサーバコンピュータ114との間で任意の比率で共有されてもよいことに留意されたい。別の実施形態では、プログラム116は、複数のコンピュータ、サーバコンピュータ、またはコンピュータとサーバコンピュータとの何らかの組み合わせ、例えば、ネットワーク110を介して単一のサーバコンピュータ114と通信する複数のコンピュータ102上で動作することができる。別の実施形態では、例えば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で動作することができる。あるいは、プログラムは、ネットワークを介してサーバおよび複数のクライアントコンピュータと通信するネットワークサーバ上で動作してもよい。
【0020】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、またはそれらの何らかの組み合わせを含むことができる。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続およびプロトコルの任意の組み合わせとすることができる。ネットワーク110は、例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)などの電気通信ネットワーク、無線ネットワーク、公衆交換網、衛星ネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動網(PLMN)、メトロポリタンエリアネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバベースのネットワークなど、および/またはこれらのもしくは他のタイプのネットワークの組み合わせなどの様々なタイプのネットワークを含むことができる。
【0021】
図1に示すデバイスおよびネットワークの数および配置は、一例として提供されている。実際には、追加のデバイスおよび/またはネットワーク、より少ないデバイスおよび/またはネットワーク、異なるデバイスおよび/またはネットワーク、あるいは
図1に示すものとは異なる配置のデバイスおよび/またはネットワークが存在してもよい。さらに、
図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、または
図1に示す単一のデバイスは、複数の分散型デバイスとして実装されてもよい。それに加えて、またはその代わりに、システム100の一組のデバイス(例えば、1つまたは複数のデバイス)は、システム100の別の一組のデバイスによって実行されるものとして説明される1つまたは複数の機能を実行することができる。
【0022】
図2を参照すると、ハンドポーズ推定プログラム116(
図1)のブロック
図200が示されている。
図2は、
図1に示す例示的な実施形態の助けを借りて説明することができる。1つまたは複数の実施形態によれば、ハンドポーズ推定プログラム116は、コンピュータ102(
図1)またはサーバコンピュータ114(
図1)に配置されてもよい。ハンドポーズ推定プログラム116は、とりわけ、深度マップ再構築モジュール202およびハンドポーズ推定モジュール204を含むことができる。一実施形態によれば、ハンドポーズ推定プログラム116は、1つまたは複数のハンドポーズ画像に対応するハンドポーズ画像データ206を、サーバコンピュータ114上のデータベース112(
図1)から取得することができる。代替的な実施形態によれば、ハンドポーズ画像データ206は、コンピュータ102上のデータ記憶装置106(
図1)に格納されてもよく、ハンドポーズ推定プログラム116は、通信ネットワーク110(
図1)を介してコンピュータ102からハンドポーズ画像データ206を受信してもよい。深度マップ再構築モジュール202は、ハンドポーズ画像データ206を入力として受信することができ、ハンドポーズ画像データ206に対応する1つまたは複数の生成された深度マップ208を出力することができる。深度マップ再構築モジュール202は、敵対的生成ネットワーク損失値L
GANをさらに計算することができる。ハンドポーズ推定モジュール204は、その後に、ハンドポーズ画像データ206および生成された深度マップ208を入力として受信し、ハンドポーズ画像データ206内の3Dハンドポーズの決定を出力することができる。ハンドポーズ推定モジュール204は、タスク損失値L
taskをさらに計算することができる。
【0023】
ここで
図3を参照すると、深度マップ再構築モジュール202(
図2)の機能ブロック図が示されている。深度マップ再構築モジュール202は、とりわけ、訓練のためにRGBとペアになった深度マップの要件を緩和するために使用され得る。深度マップ再構築モジュール202は、RGBの手の画像を受信することができ、受信したRGB画像に対応するその基礎となる深度マップを生成することができる。深度マップ再構築モジュール202によって生成された推定深度マップが実際の深度マップと同様であり得るように、深度マップ再構築モジュール202を訓練するために、一組のペア化されていない訓練デプス画像が使用され得る。
【0024】
深度マップ再構築モジュール202は、入力RGB画像に対応する深度マップを推論することができる敵対的生成ネットワークとして構築することができる。したがって、深度マップ再構築モジュール202は、それに応じて、生成器302と、識別器304と、データリンク306、308、310および312と、を含むことができる。生成器302は、データリンク306を介して入力されたRGB画像を受信し、受信したRGB画像のみに基づいて深度マップ208(
図2)を生成することができる。生成器302は、生成された深度マップ208をデータリンク308を介して出力することができる。生成器302は、L
GANおよびL
task損失値を最小化することに基づいて訓練され得る。識別器304は、実深度マップと生成された深度マップとを区別するように構成され得る。識別器304は、データリンク308を介して生成された深度マップ208を受信することができ、データリンク310を介して1つまたは複数のペア化されていない深度マップを受信することもできる。識別器304は、ペア化されていない深度マップに基づいて、生成された深度マップ208に対応するL
GAN値を決定することができる。識別器304は、データリンク312を介してL
GAN値を出力してもよい。識別器304は、L
GANおよびL
task損失値を最大化することに基づいて訓練され得る。
【0025】
ここで
図4を参照すると、ハンドポーズ推定モジュール204(
図2)の機能ブロック図が示されている。ハンドポーズ推定モジュール204は、とりわけ、推測された(すなわち、生成された)深度マップとペアになったRGB画像を受信することができる。したがって、ハンドポーズ推定モジュール204は、2Dハンドポーズ推定器402、3Dハンドポーズ推定器404、深度調整器406、ならびにデータリンク408、410、412、414、416、418、420、および422を含むことができる。2Dハンドポーズ推定器402は、データリンク408を介して入力としてRGB画像を受信することができ、データリンク410を介して手関節ヒートマップを出力することができる。手関節ヒートマップは、手関節ヒートマップから1つまたは複数の3D関節位置を推定するために、データリンク410を介して3Dハンドポーズ推定器404に送信されてもよい。推定された3D関節位置は、データリンク412を介して深度調整器406に出力することができる。深度調整器406は、受信した3D関節位置から深度マップを再構築することができ、データリンク414を介して受信することができる生成された深度マップ208(
図2)で訓練され得る。再構築された深度マップは、データリンク416を介して出力することができる。2次元損失値L
2D、z軸損失値L
z、および深度損失値L
depは、それぞれデータリンク418、420、および422を介して、2Dハンドポーズ推定器402、3Dハンドポーズ推定器404、および深度調整器406によって出力され得る。これらの損失値は、ハンドポーズ推定システムをさらに訓練するために使用することができる。
【0026】
ここで
図5を参照すると、3Dハンドポーズを推定するプログラムによって実行されるステップを示す動作フローチャート500が示されている。
図5は、
図1、
図2、
図3、および
図4を用いて説明することができる。前述したように、ハンドポーズ推定プログラム116(
図1)は、RGB画像から3Dハンドポーズを迅速かつ効果的に推定することができる。
【0027】
502において、手の画像に対応するデータがコンピュータによって受信される。手の画像データは、例えば、3Dハンドポーズを含むRGB画像であってもよい。RGBは、JPG、PNG、GIF、TIFF、BMP、SVGなどの実質的に任意のラスタ形式またはベクトル形式であってもよいことが理解されよう。動作中、ハンドポーズ推定プログラム116(
図1)は、コンピュータ102(
図1)またはサーバコンピュータ114(
図1)上に存在してもよい。ハンドポーズ推定プログラム116は、通信ネットワーク110(
図1)を介してハンドポーズ画像データ206(
図2)を受信してもよいし、データベース112(
図1)からハンドポーズ画像データ206を取得してもよい。
【0028】
504において、受信した手の画像データに対応する深度マップがコンピュータによって生成される。生成された深度マップは、受信したRGB画像のみを使用して生成されてもよく、そうでなければ対応する深度マップを有しないRGB画像内のハンドポーズを推定するために使用されてもよい。動作中、深度マップ再構築モジュール202(
図2)の生成器302(
図3)は、データリンク306(
図3)を介してハンドポーズ画像データ206(
図2)を受信することができる。生成器302は、生成された深度マップ208(
図2)をデータリンク308(
図3)を介して出力することができる。
【0029】
506において、受信した手の画像データに基づいて、コンピュータによって1つまたは複数の手関節ヒートマップが生成される。手関節ヒートマップは、手の関節の可能性のある位置を決定するために、2Dハンドポーズ推定に使用することができる。動作中、ハンドポーズ推定モジュール204(
図2)の2Dハンドポーズ推定器402(
図4)は、データリンク408を介してハンドポーズ画像データ206(
図2)を受信することができる。ハンドポーズ推定モジュール204は、受信したハンドポーズ画像データ206に基づいて1つまたは複数のヒートマップを生成することができ、生成したヒートマップをデータリンク410(
図4)を介して3Dハンドポーズ推定器404(
図4)に出力することができる。
【0030】
508において、関節位置が、生成されたヒートマップに基づいてコンピュータによって推定される。ヒートマップの確率に基づいて、手の関節の位置を推定することができる。手の関節の位置を推定することにより、ハンドポーズを決定することができる。動作中、ハンドポーズ推定モジュール204(
図2)の3Dハンドポーズ推定器404(
図4)は、データリンク410を介して2Dハンドポーズ推定器402(
図4)から生成されたヒートマップを受信することができる。3Dハンドポーズ推定器404は、ハンドポーズ画像データ206(
図2)に存在する関節の可能性のある位置を予測することができ、データリンク412を介して位置データを深度調整器406(
図4)に出力することができる。
【0031】
510において、推定された関節位置および生成された深度マップに基づいて、第2の深度マップがコンピュータによって生成される。この第2の深度マップは、可能性のある手関節位置に基づいて生成された深度マップを改良することができ、3Dハンドポーズを推定するためにシステムをさらに訓練するために使用することができる。動作中、ハンドポーズ推定モジュール204(
図2)の深度調整器406(
図4)は、データリンク412を介して3Dハンドポーズ推定器404(
図4)から位置データを受信することができる。深度調整器406は、データリンク414(
図4)を介して受信された生成された深度マップ208(
図2)を使用して、改良された深度マップを生成することができる。深度調整器406は、データリンク416(
図4)を介して再構築された深度マップを出力することができる。
【0032】
512において、ハンドポーズが、受信された手の画像データおよび生成された深度マップから推定される。上述したように、推定されたハンドポーズは、仮想現実、拡張現実、コンピュータビジョンなどのアプリケーション、および他のアプリケーションで使用することができる。動作中、ハンドポーズ推定モジュール204(
図2)は、生成された深度マップ208(
図2)、深度調整器406(
図4)によって生成された第2の深度マップ、およびハンドポーズ画像データ206(
図2)に基づいて推定されたハンドポーズを出力することができる。
【0033】
図5は、一実施態様の例示のみを提供し、異なる実施形態がどのように実施され得るかに関していかなる限定も意味しないことが理解されよう。図示した環境に対する多くの修正は、設計および実施要件に基づいて行うことができる。例えば、上述したように、3Dハンドポーズを推定することに加えて、本明細書で開示される方法、コンピュータシステム、およびコンピュータ可読媒体は、他の3D形状の検出および推定に使用されてもよい。
【0034】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に列挙された教示の実施態様はクラウドコンピューティング環境に限定されないことを事前に理解されたい。むしろ、いくつかの実施形態は、現在知られているまたは後に開発される任意の他の種類のコンピューティング環境と併せて実施することができる。
【0035】
クラウドコンピューティングは、最小限の管理労力またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースすることができる構成可能コンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするためのサービス配信のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含むことができる。
【0036】
特徴は以下の通りである。
オンデマンドセルフサービス:クラウド消費者は、サービスのプロバイダとの人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
広範なネットワークアクセス:機能は、ネットワークを介して利用可能であり、異種のシンまたはシックなクライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的な機構を介してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービスを提供するためにプールされ、異なる物理リソースおよび仮想リソースは、需要に応じて動的に割り当ておよび再割り当てされる。消費者は、一般に、提供されたリソースの正確な位置に対する制御または知識を持たないが、より高い抽象化レベル(例えば、国、州、またはデータセンター)で位置を指定することができるという点で、位置独立性の感覚がある。
迅速な弾力性:機能は、迅速にスケールアウトするために迅速かつ弾力的に、場合によっては自動的にプロビジョニングされ、迅速にスケールインするために迅速に解放され得る。消費者にとって、プロビジョニングに利用可能な機能は多くの場合無制限であるように見え、いつでも任意の量で購入することができる。
測定されたサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブユーザアカウント)に適したある抽象化レベルで計量能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用は、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供するように監視、制御、および報告され得る。
【0037】
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインターフェースを介して様々なクライアントデバイスからアクセス可能である。消費者は、限られたユーザ固有のアプリケーション構成設定を除いて、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または個々のアプリケーション機能さえも含む基盤となるクラウドインフラストラクチャを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基盤となるクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーションおよび場合によってはアプリケーションホスティング環境構成を制御する。
サービスとしてのインフラストラクチャ(laaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを提供することであり、消費者は、オペレーティングシステムおよびアプリケーションを含むことができる任意のソフトウェアを展開および実行することができる。消費者は、基盤となるクラウドインフラストラクチャを管理も制御もしないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、および場合によっては選択ネットワーキング構成要素(例えば、ホストファイアウォール)の限定された制御を制御する。
【0038】
展開モデルは以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、組織のためにのみ動作する。これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共有された関心事項(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
パブリッククラウド:クラウドインフラストラクチャは、一般の人々または大規模な業界グループに提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、独自のエンティティのままであるが、データおよびアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準化されたまたは独自の技術によって互いに結び付けられた2つ以上のクラウド(私的、共同体、または公的)の構成である。
【0039】
クラウドコンピューティング環境は、無国籍、低結合、モジュール性、およびセマンティック相互運用性に焦点を合わせたサービス指向である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0040】
図6を参照すると、例示的なクラウドコンピューティング環境600が示されている。図示するように、クラウドコンピューティング環境600は、例えば、携帯情報端末(PDA)または携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、および/または自動車コンピュータシステム54Nなどの、クラウド消費者によって使用されるローカルコンピューティングデバイスが通信することができる1つまたは複数のクラウドコンピューティングノード10を含む。クラウドコンピューティングノード10は、互いに通信することができる。それらは、上述のプライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド、またはそれらの組み合わせなどの1つもしくは複数のネットワークにおいて、物理的または仮想的にグループ化(図示せず)されてもよい。これにより、クラウドコンピューティング環境600は、クラウド消費者がローカルコンピューティングデバイス上のリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、および/またはソフトウェアを提供することができる。
図6に示すコンピューティングデバイス54A~Nのタイプは例示のみを意図しており、クラウドコンピューティングノード10およびクラウドコンピューティング環境600は、任意のタイプのネットワークおよび/またはネットワークアドレス指定可能な接続(例えば、ウェブブラウザを使用する)を介して任意のタイプのコンピュータ化されたデバイスと通信することができることが理解される。
【0041】
図7を参照すると、クラウドコンピューティング環境600(
図6)によって提供される一組の機能抽象化層700が示されている。
図7に示す構成要素、層、および機能は例示のみを意図しており、本開示の実施形態はそれに限定されないことを事前に理解されたい。図示するように、以下の層および対応する機能が提供される。
【0042】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワーク構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素は、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0043】
仮想化層70は、仮想エンティティの以下の例が提供され得る抽象化層を提供する。仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75である。
【0044】
一例では、管理層80は、以下に説明する機能を提供することができる。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を提供する。計測および価格設定82は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、およびこれらのリソースの消費に対する請求または請求書発行を提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクのための識別検証、ならびにデータおよび他のリソースのための保護を提供する。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるようにクラウドコンピューティングリソースの割り当ておよび管理を提供する。サービス水準合意(SLA)の計画および履行85は、その将来の要件がSLAに従って予想されるクラウドコンピューティングリソースの事前配置および調達を提供する。
【0045】
ワークロード層90は、クラウドコンピューティング環境を利用することができる機能の例を提供する。この層から提供され得る作業負荷および機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ解析処理94、取引処理95、ならびにハンドポーズ推定96を含む。ハンドポーズ推定96は、受信したRGB画像内の3Dハンドポーズを推定することができる。
【0046】
図8は、例示的な実施形態による、
図1に示すコンピュータ102および114の内部および外部構成要素のブロック
図1000である。
図8は、一実施態様の例示のみを提供し、異なる実施形態が実施され得る環境に関する限定を意味しないことを理解されたい。図示した環境に対する多くの修正は、設計および実施要件に基づいて行うことができる。
【0047】
コンピュータ102(
図1)およびサーバコンピュータ114(
図1)は、
図5に示す内部構成要素800A、800Bおよび外部構成要素900A、900Bのそれぞれのセットを含むことができる。内部構成要素800のセットの各々は、1つまたは複数のプロセッサ820と、1つまたは複数のバス826上の1つもしくは複数のコンピュータ可読RAM 822および1つもしくは複数のコンピュータ可読ROM 824と、1つまたは複数のオペレーティングシステム828と、1つまたは複数のコンピュータ可読有形記憶装置830と、を含む。
【0048】
プロセッサ820は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ820は、中央処理装置(CPU)、グラフィック処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別の種類の処理構成要素である。いくつかの実施態様では、プロセッサ820は、機能を実行するようにプログラムすることができる1つまたは複数のプロセッサを含む。バス826は、内部構成要素800A、800B間の通信を可能にする構成要素を含む。
【0049】
サーバコンピュータ114(
図1)上の1つまたは複数のオペレーティングシステム828、ソフトウェアプログラム108(
図1)、ならびにハンドポーズ推定プログラム116(
図1)は、それぞれのRAM 822(通常はキャッシュメモリを含む)のうちの1つまたは複数を介してそれぞれのプロセッサ820のうちの1つまたは複数によって実行されるために、それぞれのコンピュータ可読有形記憶装置830のうちの1つまたは複数に格納される。
図8に示す実施形態では、コンピュータ可読有形記憶装置830の各々は、内蔵ハードドライブの磁気ディスク記憶装置である。あるいは、コンピュータ可読有形記憶装置830の各々は、ROM 824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、ソリッドステートディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、および/またはコンピュータプログラムおよびデジタル情報を格納することができる別の種類の非一時的なコンピュータ可読有形記憶装置などの半導体記憶装置である。
【0050】
内部構成要素800A、Bの各セットはまた、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、または半導体記憶装置などの1つまたは複数のポータブルコンピュータ可読有形記憶装置936から読み書きするためのR/Wドライブまたはインターフェース832を含む。ソフトウェアプログラム108(
図1)およびハンドポーズ推定プログラム116(
図1)などのソフトウェアプログラムは、それぞれのポータブルコンピュータ可読有形記憶装置936のうちの1つまたは複数に格納され、それぞれのR/Wドライブまたはインターフェース832を介して読み取られ、それぞれのハードドライブ830にロードされ得る。
【0051】
内部構成要素800A、Bの各セットはまた、TCP/IPアダプタカード、無線Wi-Fiインターフェースカード、あるいは3G、4G、もしくは5G無線インターフェースカードまたは他の有線もしくは無線通信リンクなどのネットワークアダプタまたはインターフェース836を含む。サーバコンピュータ114(
図1)上のソフトウェアプログラム108(
図1)およびハンドポーズ推定プログラム116(
図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、または他の広域ネットワーク)およびそれぞれのネットワークアダプタまたはインターフェース836を介して外部コンピュータからコンピュータ102(
図1)およびサーバコンピュータ114にダウンロードすることができる。ネットワークアダプタまたはインターフェース836から、サーバコンピュータ114上のソフトウェアプログラム108およびハンドポーズ推定プログラム116が、それぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含むことができる。
【0052】
外部構成要素900A、900Bのセットの各々は、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934を含むことができる。外部構成要素900A、900Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、および他のヒューマンインターフェースデバイスを含むことができる。内部構成要素800A、800Bのセットの各々はまた、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934にインターフェースするためのデバイスドライバ840を含む。デバイスドライバ840、R/Wドライブまたはインターフェース832ならびにネットワークアダプタまたはインターフェース836は、(記憶装置830および/またはROM824に格納された)ハードウェアおよびソフトウェアを含む。
【0053】
いくつかの実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、および/またはコンピュータ可読媒体に関することができる。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読非一時的記憶媒体を含むことができる。
【0054】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および格納することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、またはこれらの任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、命令が記録されたパンチカードまたは溝内の隆起構造などの機械的に符号化されたデバイス、ならびに上記の任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を伝搬する電磁波、またはワイヤを介して伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0055】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークを介して外部コンピュータもしくは外部記憶装置を介してそれぞれのコンピューティング/処理装置にダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含むことができる。各コンピューティング/処理装置内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0056】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、あるいはSmalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で、または完全にリモートコンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続されてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、態様または動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行することができる。
【0057】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作を実施するための手段を作成するように、機械を製造するために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラム可能なデータ処理装置、および/または他のデバイスに特定の方法で機能するように指示することができるコンピュータ可読記憶媒体に格納されてもよく、その結果、格納された命令を有するコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製品を含む。
【0058】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他の装置上で実行される命令がフローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作を実施するように、コンピュータ、他のプログラム可能な装置、または他の装置上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成するために、コンピュータ、他のプログラム可能な装置、または他の装置上にロードされてもよい。
【0059】
図のフローチャートおよびブロック図は、様々な実施形態によるシステム、方法、およびコンピュータ可読媒体の可能な実施態様のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表すことができる。方法、コンピュータシステム、およびコンピュータ可読媒体は、図に示すものよりも、さらなるブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。いくつかの代替的な実施態様では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、同時にまたは実質的に同時に実行されてもよく、またはブロックは、関連する機能に応じて、時には逆の順序で実行されてもよい。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能または動作を実行するか、専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実装され得ることにも留意されたい。
【0060】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組み合わせの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実施態様を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0061】
本明細書で使用される要素、動作、または命令は、そのように明示的に記載されていない限り、重要または必須であると解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図しており、「1つまたは複数」と交換可能に使用され得る。さらに、本明細書で使用される場合、「セット」という用語は、1つまたは複数の項目(例えば、関連項目、無関係な項目、関連項目と無関係な項目との組み合わせなど)を含むことを意図しており、「1つまたは複数」と互換的に使用され得る。1つの項目のみが意図される場合、「1つ」という用語または同様の用語が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることを意図している。さらに、「に基づいて」という語句は、特に明記しない限り、「少なくとも部分的に、基づいて」を意味することを意図している。
【0062】
様々な態様および実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定されることを意図するものではない。特徴の組み合わせが特許請求の範囲に記載され、および/または本明細書に開示されているが、これらの組み合わせは、可能な実施態様の開示を限定することを意図するものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、および/または明細書に開示されていない方法で組み合わされてもよい。以下に列挙される各従属請求項は1つの請求項のみに直接依存してもよいが、可能な実施態様の開示は、各従属請求項を請求項セット内の他のすべての請求項と組み合わせて含む。記載された実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の用途または市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示する実施形態を理解することを可能にするために選択された。
【符号の説明】
【0063】
10 クラウドコンピューティングノード
54A 携帯電話
54B デスクトップコンピュータ
54C ラップトップコンピュータ
54N 自動車コンピュータシステム
60 ソフトウェア層
61 メインフレーム
62 サーバ
63 サーバ
64 ブレードサーバ
65 記憶装置
66 ネットワーク構成要素
67 ネットワークアプリケーションサーバソフトウェア
68 データベースソフトウェア
70 仮想化層
71 仮想サーバ
72 仮想ストレージ
73 仮想ネットワーク
74 オペレーティングシステム
75 仮想クライアント
80 管理層
81 リソースプロビジョニング
82 価格設定
83 ユーザポータル
84 サービスレベル管理
85 サービス水準合意(SLA)の計画および履行
90 ワークロード層
91 ナビゲーション
92 ライフサイクル管理
93 仮想教室教育配信
94 データ解析処理
95 取引処理
96 ハンドポーズ推定
100 ハンドポーズ推定システム
102 コンピュータ
104 プロセッサ
106 データ記憶装置
108 ソフトウェアプログラム
110 通信ネットワーク
112 データベース
114 サーバコンピュータ
116 ハンドポーズ推定プログラム
200 ブロック図
202 深度マップ再構築モジュール
204 ハンドポーズ推定モジュール
206 ハンドポーズ画像データ
208 深度マップ
302 生成器
304 識別器
306 データリンク
308 データリンク
310 データリンク
312 データリンク
402 2Dハンドポーズ推定器
404 3Dハンドポーズ推定器
406 深度調整器
408 データリンク
410 データリンク
412 データリンク
414 データリンク
416 データリンク
418 データリンク
420 データリンク
422 データリンク
500 動作フローチャート
600 クラウドコンピューティング環境
700 機能抽象化層
800 内部構成要素
800A 内部構成要素
800B 内部構成要素
820 プロセッサ
822 RAM
824 ROM
826 バス
828 オペレーティングシステム
830 ハードドライブ/コンピュータ可読有形記憶装置
832 R/Wドライブまたはインターフェース
836 ネットワークアダプタまたはインターフェース
840 デバイスドライバ
900 外部構成要素
900A 外部構成要素
900B 外部構成要素
920 コンピュータディスプレイモニタ
930 キーボード
934 コンピュータマウス
936 ポータブルコンピュータ可読有形記憶装置
1000 ブロック図