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

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

▶ 緯創資通股▲ふん▼有限公司の特許一覧

特許7571237アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体
<>
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図1
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図2
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図3
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図4
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図5
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図6
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図7
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図8
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図9A
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図9B
  • 特許-アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-10-11
(45)【発行日】2024-10-22
(54)【発明の名称】アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体
(51)【国際特許分類】
   G06T 7/00 20170101AFI20241015BHJP
   G06T 7/70 20170101ALI20241015BHJP
【FI】
G06T7/00 660B
G06T7/70 A
【請求項の数】 5
【外国語出願】
(21)【出願番号】P 2023159292
(22)【出願日】2023-09-23
【審査請求日】2023-09-23
(31)【優先権主張番号】112114686
(32)【優先日】2023-04-20
(33)【優先権主張国・地域又は機関】TW
(73)【特許権者】
【識別番号】504429600
【氏名又は名称】緯創資通股▲ふん▼有限公司
【氏名又は名称原語表記】WISTRON CORPORATION
(74)【代理人】
【識別番号】100204490
【弁理士】
【氏名又は名称】三上 葉子
(72)【発明者】
【氏名】蔡 秉辰
(72)【発明者】
【氏名】陳 遠鴻
【審査官】伊知地 和之
(56)【参考文献】
【文献】韓国公開特許第10-2021-0020499(KR,A)
【文献】特開2023-035981(JP,A)
【文献】特開2022-061910(JP,A)
【文献】特開2022-176481(JP,A)
【文献】特開2009-015671(JP,A)
【文献】米国特許出願公開第2010/0277489(US,A1)
【文献】国際公開第2021/070611(WO,A1)
【文献】宗像修平 外2名,ヨガ支援を目的とした姿勢評価システムの開発,映像情報メディア学会技術報告,日本,(一社)映像情報メディア学会,2021年10月20日,第45巻 第31号,pp.43~46
【文献】河▲崎▼雷太 外2名,3点の6自由度トラッカによる両手把持道具を利用する人体運動アニメーション生成,情報処理学会論文誌,日本,社団法人情報処理学会,2004年08月15日,第45巻 第8号,pp.2078~2086
【文献】林昌希 外1名,2段階のPoselets-Regressor適用によるチームスポーツ映像からの人物姿勢推定,第22回画像センシングシンポジウムSSII2016[USB],日本,画像センシング技術研究会,2016年06月08日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00
G06T 7/00 - 7/90
G06T 11/60 - 13/80
G06T 17/05
G06T 19/00 - 19/20
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
CSDB(日本国特許庁)
(57)【特許請求の範囲】
【請求項1】
第1骨格情報を取得するステップであって、前記第1骨格情報の第1型関節は第2型関節に基づいて推定されるステップと、
第2骨格情報を取得するステップであって、前記第2骨格情報の前記第1型関節および前記第2型関節は画像に基づいて決定されるステップと、
前記第1骨格情報と前記第2骨格情報を比較して、比較結果を得るステップと、
前記比較結果に基づいて、前記第2骨格情報が基準として提供できるかどうかが検証されたことに応じて、前記第2骨格情報における前記第1型関節に属する第1関節および第2関節の基準ベクトルに基づいて、前記第1骨格情報における前記第1型関節に属する第1関節から延伸し、前記第1骨格情報における前記第1型関節に属する第2関節の位置を修正するステップと、
を含むアバターの骨格補正方法。
【請求項2】
前記第1骨格情報と前記第2骨格情報を比較するステップが、
前記第1骨格情報から前記第2型関節の第1空間位置を取得するステップと、
前記第2骨格情報から前記第2型関節の第2空間位置を取得するステップと、
前記第1空間位置と前記第2空間位置を比較するステップであって、前記第2型関節が、少なくとも1つの目標関節を含むステップと、
を含み、
前記第1空間位置と前記第2空間位置を比較するステップが、
前記第1空間位置に基づいて、前記第1骨格情報における基準関節と前記少なくとも1つの目標関節の間の少なくとも1つの第1接続線を決定するステップと、
前記第2空間位置に基づいて、前記第2骨格情報における前記基準関節と前記少なくとも1つの目標関節の間の少なくとも1つの第2接続線を決定するステップと、
前記少なくとも1つの第1接続線と前記少なくとも1つの第2接続線を比較するステップであって、前記少なくとも1つの第1接続線が、少なくとも1つの第1ベクトルを形成し、前記少なくとも1つの第2接続線が、少なくとも1つの第2ベクトルを形成するステップと、
を含み、
前記少なくとも1つの第1接続線と前記少なくとも1つの第2接続線を比較するステップが、
前記少なくとも1つの第1ベクトルと前記少なくとも1つの第2ベクトルの間の類似性を決定するステップであって、前記第1型関節が、下半身に属し、前記第2型関節が、上半身に属し、前記基準関節が、股関節中心であり、前記少なくとも1つの目標関節が、左手関節、右手関節および頭部関節を含み、前記類似性が、コサイン類似度であるステップを含み、または、
前記第1骨格情報と前記第2骨格情報を比較するステップが、
前記少なくとも1つの第1接続線と前記少なくとも1つの第2接続線の間の前記比較に基づいて、前記比較結果を決定するステップと、
前記比較結果が、前記少なくとも1つの第1接続線と前記少なくとも1つの第2接続線の間の前記比較が閾値より小さいことを示している場合に、前記第2骨格情報を採用して、前記第1骨格情報を修正するステップと、
前記比較結果が、前記少なくとも1つの第1接続線と前記少なくとも1つの第2接続線の間の比較が前記閾値以上であることを示している場合に、前記第2骨格情報を拒否するステップと、
を含む請求項1に記載のアバターの骨格補正方法。
【請求項3】
前記第1骨格情報の前記第1関節が外側に向かってある距離だけ延伸する位置が、前記第1骨格情報における前記第2関節を修正するための前記位置であり、前記距離が、前記第2骨格情報における前記基準ベクトルと長さ変換係数の積であり、前記長さ変換係数が、前記第1骨格情報と前記第2骨格情報の間の長さ比率である、または、
前記第1骨格情報と前記第2骨格情報を比較するステップが、
前記第2骨格情報を前記第1骨格情報が属する座標系に変換するステップを含み、
前記第2骨格情報を前記第1骨格情報が属する前記座標系に変換するステップが、
基準ポーズにおける前記第1骨格情報と前記第2骨格情報の間の座標対応を決定するステップであって、前記第2骨格情報の座標変換が、前記座標対応に基づき、前記基準ポーズが、TポーズまたはPhiポーズであるステップを含む請求項1または請求項2に記載のアバターの骨格補正方法。
【請求項4】
画像を取り込むように構成された撮像装置と、
動作状態を検出するように構成されたセンサと、
前記撮像装置および前記センサと通信するように構成されるとともに、
第1骨格情報を取得する操作であって、前記第1骨格情報の第1型関節は第2型関節に基づいて推定されるとともに、前記第1骨格情報の前記第2型関節は前記センサの感知データに基づいて決定される操作と、
第2骨格情報を取得する操作であって、前記第2骨格情報の前記第1型関節および前記第2型関節は前記画像に基づいて決定される操作と、
前記第1骨格情報と前記第2骨格情報を比較して、比較結果を取得する操作と、
前記比較結果に基づいて、前記第2骨格情報が基準として提供できるかどうかが検証されたことに応じて、前記第2骨格情報における前記第1型関節に属する第1関節および第2関節の基準ベクトルに基づいて、前記第1骨格情報における前記第1型関節に属する第1関節から延伸し、前記第1骨格情報における前記第1型関節に属する第2関節の位置を修正する操作と、
を実行するように構成されたプロセッサと、
を含む仮想現実システム。
【請求項5】
プロセッサを介してプログラムコードをロードして、
第1骨格情報を取得する操作であって、前記第1骨格情報の第1型関節は第2型関節に基づいて推定される操作と、
第2骨格情報を取得する操作であって、前記第2骨格情報の前記第1型関節および前記第2型関節は画像に基づいて決定される操作と、
前記第1骨格情報と前記第2骨格情報を比較して、比較結果を取得する操作と、
前記比較結果に基づいて、前記第2骨格情報が基準として提供できるかどうかが検証されたことに応じて、前記第2骨格情報における前記第1型関節に属する第1関節および第2関節の基準ベクトルに基づいて、前記第1骨格情報における前記第1型関節に属する第1関節から延伸し、前記第1骨格情報における前記第1型関節に属する第2関節の位置を修正する操作と、
を実行する非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想現実(virtual reality, VR)技術に関するものであり、特に、アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体に関するものである。
【背景技術】
【0002】
科学技術の急速な発展に伴い、メタバース関連製品がどこでも利用可能となり、VRヘッドマウントディスプレイ(head-mounted display, HMD)は、メタバースの入口インターフェースとしてますます人気を博している。ユーザーは、VR HMDを装着することで、仮想世界に没入することができる。しかしながら、HMDがもたらす「没入感」は、ユーザーの視覚と聴覚に限定されている。つまり、ほとんどのユーザーは、上半身で没入感を体験するだけで、全身では体験しない。
【0003】
ユーザーがVR HMDを装着してVRソーシャルプラットフォームに入るとき、自分自身を代表するアバター(avatar)を作成する必要がある。しかしながら、現在の技術では、仮想アバターの上半身しか表示することができない。VR HMDのカメラは、頭と手の位置を追跡して、腕と胸の位置を推定することができるが、VR HMDは、ユーザーの足の位置を知らないため、追跡範囲が限定的である。例えば、腹部や他の障害物がカメラの視野を遮る可能性があり、ユーザーが頭を傾けたり回転させたりすると、カメラは、下半身を捉えることができない。この問題を解決するために、現在のVR HMDの位置決め技術は、アウトサイドイン(outside-in)とインサイドアウト(inside-out)の2つに分けることができる。
【0004】
アウトサイドイン技術を使用すると、より正確で広範な追跡効果を提供することができるが、システムは、複雑で費用がかかり、通常、企業向けに適している。例えば、手足または物体(例えば、テニスラケット)に取り付けられるトラッカーは、位置決め装置を備える必要があるため、システムは、複雑で非効率的である。現在、全身モーションキャプチャスーツ(full-body motion capture suit)が開発されている。このスーツは、優れたモーションキャプチャ効果を達成することができるが、コストが高い。
【0005】
インサイドアウト技術は、位置決め装置を必要とせずに位置決め方法を提供することができるため、日常のエンターテイメントや移動する場面により適しており、使用機会が増えるとともに、システムは、より単純でコストが低い。しかしながら、モーションキャプチャの効果は、正確ではない。それでもなお、企業は、解決策を見つけてきた。例えば、HMDが検出した頭部の動きに基づいて、他の部位の動きを推定することができる。しかしながら、特定のユーザーのすべての動きを正確に推定することは依然として不可能であり、結果として、アバターによって再現される動きは、不自然に見える。さらに、大量の歩行パターンデータを収集するためには、ある程度のリソースが必要である。
【0006】
VRソーシャルネットワーキングを普及させてVRを推進するためには、VRをより簡単に利用できるようにし、より現実的に見える物理的パフォーマンスを提示することが求められている。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の実施形態は、アバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体を提供し、追跡能力を向上させるための新たなシステムアーキテクチャを提供する。
【課題を解決するための手段】
【0008】
本発明の1つの実施形態におけるアバターの骨格補正方法は、第1骨格情報を取得し、第1骨格情報の第1型関節を第2型関節に基づいて推定するステップと、第2骨格情報を取得し、第2骨格情報の第1型関節および第2型関節を画像に基づいて決定するステップと、第1骨格情報と第2骨格情報を比較して、比較結果を取得するステップと、比較結果に基づいて第1骨格情報と第2骨格情報を融合し、第1骨格情報の第1型関節の位置を修正するステップと、を含む(ただし、本発明はこれに限定されない)。
【0009】
本発明の実施形態における仮想現実システムは、撮像装置、センサ、およびプロセッサを含む(ただし、本発明はこれに限定されない)。撮像装置は、画像を取り込むように構成される。センサは、動作状態を検出するように構成される。プロセッサは、撮像装置およびセンサと通信する。プロセッサは、第1骨格情報を取得し、第1骨格情報の第1型関節を第2型関節に基づいて推定するとともに、第1骨格情報の第2型関節をセンサの感知データに基づいて決定するステップと、第2骨格情報を取得し、第2骨格情報の第1型関節および第2型関節を画像に基づいて決定するステップと、第1骨格情報と第2骨格情報とを比較して、比較結果を取得するステップと、比較結果に基づいて第1骨格情報と第2骨格情報を融合し、第1骨格情報の第1型関節の位置を修正するステップと、を実行するように構成される。
【0010】
本発明の実施形態における非一時的なコンピュータ可読媒体は、プロセッサを介してプログラムコードをロードし、第1骨格情報を取得し、第1骨格情報の第1型関節を第2型関節に基づいて推定するステップと、第2骨格情報を取得し、第2骨格情報の第1型関節および第2型関節を画像に基づいて決定するステップと、第1骨格情報と第2骨格情報を比較して、比較結果を取得するステップと、比較結果に基づいて第1骨格情報と第2骨格情報を融合し、第1骨格情報の第1型関節の位置を修正するステップと、を実行する。
【発明の効果】
【0011】
以上のように、本発明の実施形態におけるアバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体は、感知データに基づく骨格情報と画像に基づく骨格情報を比較し、その比較結果に基づいて骨格情報を修正する。
【0012】
本発明の上記の特徴および利点をより理解しやすくするために、以下、添付図面と共に具体的な例について詳細に説明する。
【図面の簡単な説明】
【0013】
図1】本発明の1つの実施形態に係る仮想現実システムの構成要素のブロック図である。
図2】本発明の1つの実施形態に係るアバターの骨格補正方法のフローチャートである。
図3】本発明の1つの実施形態に係る骨格関節の概略図である。
図4】本発明の1つの実施形態に係る第1骨格情報を取得する方法のフローチャートである。
図5】本発明の1つの実施形態に係る下半身の骨格を決定するときのフローチャートである。
図6】本発明の1つの実施形態に係る骨格情報を比較するときのフローチャートである。
図7】本発明の1つの実施形態に係るコサイン類似度の概略図である。
図8】本発明の1つの実施形態に係る座標系変換の概略図である。
図9A】本発明の1つの実施形態に係るTポーズの概略図である。
図9B】本発明の1つの実施形態に係るPhiポーズの概略図である。
図10】本発明の1つの実施形態に係る補正決定のフローチャートである。
【発明を実施するための形態】
【0014】
図1は、本発明の1つの実施形態に係る仮想現実システム1の構成要素のブロック図である。図1を参照すると、仮想現実システム1は、モバイルデバイス10および仮想現実デバイス20を含む(ただし、本発明はこれに限定されない)。
【0015】
モバイルデバイス10は、スマートフォン、タブレットコンピュータ、ノートブックコンピュータ、インテリジェントアシスタントデバイス、またはウェアラブルデバイスであってもよい。
【0016】
モバイルデバイス10は、撮像装置11、通信トランシーバ12、メモリ13、およびプロセッサ14を含む(ただし、本発明はこれに限定されない)。
【0017】
撮像装置11は、カメラまたはビデオカメラであってもよい。1つの実施形態において、撮像装置11は、指定された視野内の画像を取り込むように構成される。1つのアプリケーションシナリオにおいて、撮像装置11は、仮想現実デバイス20、ウェアラブルデバイス、またはセンサを着用または保持しているユーザーの写真を撮影する。
【0018】
通信トランシーバ12は、例えば、第4世代(fourth generation, 4G)または他の世代のモバイル通信、Wi-Fi、ブルートゥース(Bluetooth)、赤外線、無線周波数識別(radio frequency identification, RFID)、イーサネット(Ethernet)、光ファイバーネットワークをサポートすることができ、あるいはユニバーサルシリアルバス(universal serial bus, USB)、サンダーボルト(Thunderbolt)、または他の通信伝送インターフェースであってもよい。1つの実施形態において、通信トランシーバ12は、他の電子デバイス(例えば、仮想現実デバイス20、ウェアラブルデバイス、またはセンサ)とデータを送受信するように構成される。
【0019】
メモリ13は、任意の種類の固定または取り外し可能なランダムアクセスメモリ(random access memory, RAM)、読み取り専用メモリ(read-only memory, ROM)、フラッシュメモリ(flash memory)、ハードディスクドライブ(hard disk drive, HDD)、ソリッドステートドライブ(solid-state drive, SSD)、または類似部品であってもよい。1つの実施形態において、メモリ13は、プログラムコード、ソフトウェアモジュール、構成、データ(例えば、画像、骨格情報、感知データなど)、またはファイルを保存するように構成されるが、その実施形態については、後で詳述する。
【0020】
プロセッサ14は、撮像装置11、通信トランシーバ12、およびメモリ13に接続される。プロセッサ14は、中央処理装置(central processing unit, CPU)、グラフィック処理装置(graphic processing unit, GPU)、または他のプログラム可能な汎用または専用マイクロプロセッサ(microprocessor)、デジタル信号プロセッサ(digital signal processor, DSP)、プログラマブルコントローラ、フィールドプログラマブルゲートアレイ(field programmable gate array, FPGA)、特定用途向け集積回路(application-specific integrated circuit, ASIC)、ニューラルネットワークアクセラレータ(neural network accelerator)、または他の類似部品、またはこれらの組み合わせであってもよい。1つの実施形態において、プロセッサ14は、モバイルデバイス10の操作の全部または一部を実行するように構成され、メモリ13に保存されたさまざまなプログラムコード、ソフトウェアモジュール、ファイル、およびデータをロードして実行することができる。いくつかの実施形態において、プロセッサ14の機能は、ソフトウェアまたはチップによって実現することができる。
【0021】
仮想現実デバイス20は、ヘッドマウントディスプレイ(head-mounted display, HMD)、ハンドヘルドコントローラ、ウェアラブルセンサ、コンピューティングコンピュータ、またはそれらの組み合わせであってもよい。
【0022】
仮想現実デバイス20は、センサ21、通信トランシーバ22、メモリ23、およびプロセッサ24を含む(ただし、本発明はこれに限定されない)。
【0023】
センサ21は、画像センサ、慣性センサ、加速度計、ジャイロスコープ(gyroscope)、磁気センサ、6軸または9軸モーションセンサであってもよい。1つの実施形態において、センサ21は、動作状態を検出するように構成され、画像、強度、速度、加速度、方向などの感知データを取得する。
【0024】
通信トランシーバ22、メモリ23、およびプロセッサ24の実施および機能は、それぞれ通信トランシーバ12、メモリ13、およびプロセッサ14の説明から導き出すことができるため、ここでは繰り返し説明しない。
【0025】
1つの実施形態において、プロセッサ24は、仮想現実デバイス20の操作の全部または一部を実行するように構成され、メモリ23に保存されたさまざまなプログラムコード、ソフトウェアモジュール、ファイル、およびデータ(例えば、感知データ、骨格情報、または比較結果)をロードして実行することができる。いくつかの実施形態において、プロセッサ24の機能は、ソフトウェアまたはチップによって実現することができる。
【0026】
1つの実施形態において、センサ21は、仮想現実デバイス20の本体から分離することができる。1つの実施形態において、別々のデバイスや部品間の通信は、通信トランシーバ12および22を介して実現することができるため、複数のデバイスおよび/または部品は、互いに通信して、信号またはデータ伝送を完了させることができる。例えば、仮想現実デバイス20は、変換係数をモバイルデバイス10に送信する。別の例において、モバイルデバイス10は、骨格情報を仮想現実デバイス20に送信する。
【0027】
以下、仮想現実システム1のさまざまなデバイス、部品、およびモジュールを用いて、本発明の実施形態において説明する方法について説明する。方法の各プロセスは、実施状況に応じて調整することができるため、本発明はそれらに限定されない。また、注意すべきこととして、異なる設計要件に基づき、本発明の実施形態において説明する方法は、プロセッサ14またはプロセッサ24のうちの1つまたは両方によって実施することができる。プロセッサ14およびプロセッサ24の処理/分析/計算結果は、それぞれ通信トランシーバ12および通信トランシーバ22を介して他方に送信することができ、それに基づいて、後続の手順を続行することができる。したがって、実行本体と2つのデバイスの間のデータ伝送については、繰り返し説明しない。
【0028】
図2は、本発明の1つの実施形態に係るアバターの骨格補正方法のフローチャートである。図2を参照すると、プロセッサ14/24は、第1骨格情報を取得する(ステップS210)。具体的に説明すると、第1骨格情報は、第1型関節(joint)および第2型関節を含む。異なる対象物体およびアプリケーションシナリオに応じて、第1型関節および第2型関節は、それぞれ対象物体の異なる部位または関節に対応し、関節は、特徴点と呼ぶこともできる。
【0029】
例えば、図3は、本発明の1つの実施形態に係る骨格関節の概略図である。図3を参照すると、例えば、人間を例に挙げると、プロセッサ14/24は、33個の骨格関節P0~P32を定義することができる。骨格関節P0は、鼻に対応し、骨格関節P1は、右眼の内側に対応し、骨格関節P2は、右眼の中心に対応し、骨格関節P3は、右眼の外側に対応するなどであるが、ここでは詳しい説明を省略する。骨格関節P0~P32を上半身と下半身に分けた場合、骨格関節P25~P32を第1型関節FTPとして使用し、骨格関節P0~P24を第2型関節STPとして使用することができる。つまり、第1型関節FTPは、下半身に対応し、第2型関節STPは、上半身に対応する。
【0030】
注意すべきこととして、実際の必要に応じて、骨格関節の分類をさらに変更することができる。別の実施形態において、骨格関節は、指関節または顔のキージョイント(key joint)であってもよい。また、短い骨格、細長い骨格、または大柄な骨格など、骨格には多様性がある。したがって、骨格関節の位置および数は、図3に示した実施形態に限定されない。
【0031】
第1骨格情報の第1型関節の位置は、第2型関節によって推定される。第2型関節は、センサ21の感知データに基づいて決定される。つまり、センサ21の感知結果は、第2型関節に対するものであって、第1型関節に対するものではない。プロセッサ14/24は、センサ21の感知結果に基づいて、第2型関節の位置を直接決定することができる。例えば、HMD上の慣性センサの感知結果は、頭部の動作情報を決定し、それに基づいて、頭部およびその骨格関節(例えば、三次元空間内の座標)の位置を決定することができる。しかしながら、この動作情報を直接採用することにより、脚部またはその骨格関節の位置を決定することはできない。
【0032】
図4は、本発明の1つの実施形態に係る第1骨格情報を取得する方法のフローチャートである。図4を参照すると、第1型関節および第2型関節の分類については、例えば、図3に示した通りである。プロセッサ14/24は、HMD上のセンサ21の感知データに基づいて、頭部の位置を取得することができる(ステップS410)。例えば、6軸センサによって得られた角速度、加速度、および磁気方向は、位置および姿勢を決定する。プロセッサ14/24は、頭部の位置に基づいて、首、腰、脊椎などの骨格関節、例えば、図3の骨格関節P0~P10およびP23~P24をマッピングすることができる(ステップS420)。
【0033】
一方、プロセッサ14/24は、ハンドヘルドコントローラ上のセンサ21の感知データに基づいて、両手の位置を取得することができ(ステップS430)、手の位置に基づいて、腕、肩、肘などの骨格関節、例えば、図3の骨格関節P11~P22をマッピングすることができる(ステップS440)。ステップS420およびS440において得られた骨格関節は、第2型関節に属する。注意すべきこととして、上述したステップは、頭部および両手のセンサ21を例に挙げているが、脚部、胸部、または背中にセンサ21を設置してもよく、本発明の実施形態は、センサ21の配置位置を限定しない。
【0034】
骨格関節のマッピングについては、1つの実施形態において、プロセッサ14/24は、所定の基準位置(親ノードの)および逆運動学(inverse kinematics, IK)に基づいて、1つまたはそれ以上の骨格関節の位置を決定することができる。骨格関節間の親子階層(parent-child hierarchy)は、身体部分、例えば、腕、頭、首などを形成することができる。IKを使用して、さまざまな身体部分の動作軌跡を定義し、リミットを設定することによって、湾曲、回転角度などの実際の人体上の動作軌跡の一貫性を確保することができる。所定の基準位置は、センサ21の感知データを介して提供または決定することができる。同様に、プロセッサ14/24は、IKに基づいて、肩、上半身、頭部、および他の部位の位置を推定することもできるが、ここでは詳しい説明を省略する。
【0035】
次に、プロセッサ14/24は、第1型関節を決定することができる(ステップS450)。具体的に説明すると、図5は、本発明の1つの実施形態に係る下半身の骨格を決定するときのフローチャートである。図5を参照すると、プロセッサ14/24は、第2型関節の位置をポーズAIモデル(例えば、BlazePose)またはポーズ推定に関連する他のモデルに入力して、第1型関節の位置を予測することができる(ステップS510)。次に、プロセッサ14/24は、IKに基づいて、第1型関節の位置に対して制約された補正を行うことにより(ステップS520)、身体動作の可能性と合理性を維持し、その後、第1型関節の位置を決定することができる。
【0036】
図4を参照すると、プロセッサ14/24は、第1型関節および第2型関節の位置に基づいて、第1骨格情報を決定する(ステップS460)。図3を例に挙げると、第1骨格情報は、身体上のすべての骨格関節P0~P32の位置を含む。次に、プロセッサ14/24は、第1骨格情報に基づいてアバターを操作することができる(ステップS470)ため、アバターのポーズは、第1骨格情報と同じである。
【0037】
しかしながら、第1型関節の位置は、推定によって生成されるため、第1型関節の位置の精度は、第2型関節の精度よりも低い可能性がある。精度を向上させるために、本発明の実施形態は、さらに、他の骨格情報を参照する。
【0038】
図2を参照すると、プロセッサ14/24は、第2骨格情報を取得する(ステップS220)。具体的に説明すると、第2骨格情報における第1型関節および第2型関節を撮像装置11の画像に基づいて決定する。この画像は、第1型関節および第2型関節を取り込むことができる。例えば、撮像装置11の視野は、人物の全身を含む。画像ベースの位置決定のために、プロセッサ14/24は、機械学習技術(例えば、深層学習、人工ニューラルネットワーク(artificial neural network, ANN)、またはサポートベクターマシン(support vector machine, SVM)など)を使用して、画像内の骨格関節の位置を識別することにより、第1型関節および第2型関節の位置を取得することができる。例えば、ポーズAIモデルを利用して、画像内の物体の空間における位置を推測することができる。しかしながら、画像ベースの位置決定技術は多く存在するため、本発明の実施形態に限定されない。
【0039】
図2を参照すると、プロセッサ14/24は、第1骨格情報と第2骨格情報を比較して、比較結果を生成する(ステップS230)。具体的に説明すると、画像に基づいて取得した第2骨格情報は、誤認識される可能性があるため、第1骨格情報の第2型関節の位置は、第2骨格情報の第2型関節の位置よりも正確である可能性がある。第2骨格情報を基準として使用できるかどうかを検証するために、まず、第1骨格情報が第2骨格情報と一致しているかどうかを比較することができる。つまり、2つの骨格情報間の一貫性を検証する。
【0040】
1つの実施形態において、プロセッサ14/24は、第1骨格情報から第2型関節の第1空間位置を取得し、第2骨格情報から第2型関節の第2空間位置を取得することができる。第1空間位置と第2空間位置は、座標であっても、相対位置、つまり、骨格関節の位置であってもよい。ステップS210およびS220の関連説明については、すでに提供しているため、ここでは繰り返し説明しない。その後、プロセッサ14/24は、第1空間位置と第2空間位置を比較することができる。つまり、第1空間位置と第2空間位置が一致しているかどうかを比較する。第1骨格情報における第2型関節の位置は、第1型関節よりも正確であるため、第1骨格情報における第2型関節の位置を基準として使用して、2つの骨格情報が互いに一致しているかどうか、または一貫しているかどうかを判断することができる。
【0041】
第2型関節は、1つまたはそれ以上の目標関節を含む。目標関節は、例えば、左/右の手、左/右の足、頭部、または他の特徴点である。上述した比較は、目標関節の空間位置間の比較である。図6は、本発明の1つの実施形態に係る骨格情報を比較するときのフローチャートである。図6を参照すると、プロセッサ14/24は、第1空間位置に基づいて、第1骨格情報における基準関節と1つまたはそれ以上の目標関節の間の1つまたはそれ以上の第1接続線を決定する(ステップS610)。基準関節は、例えば、股関節の中心、首、左/右の膝、左/右の股関節、左/右の肘、左/右の肩、または他の骨格関節である。第1接続線は、第1骨格情報の基準関節と1つまたはそれ以上の目標関節の間の接続であり、例えば、股関節中心から手および頭部までの接続線である。
【0042】
プロセッサ14/24は、第2空間位置に基づいて、第2骨格情報における基準関節と1つまたはそれ以上の目標関節の間の1つまたはそれ以上の第2接続線を決定することができる(ステップS620)。第2接続線は、第2骨格情報の基準関節と1つまたはそれ以上の目標関節の間の接続である。
【0043】
次に、プロセッサ14/24は、第1接続線と第2接続線を比較することができる(ステップS630)。つまり、第1接続線と第2接続線が一致しているかどうか、または第1接続線と第2接続線が一貫しているかどうかを比較する。
【0044】
1つの実施形態において、1つまたはそれ以上の第1接続線は、それぞれ1つまたはそれ以上の第1ベクトルを形成し、1つまたはそれ以上の第2接続線は、それぞれ1つまたはそれ以上の第2ベクトルを形成する。接続線と比較して、ベクトルは、さらに方向性を含むため、プロセッサ14/24が複数の関節間の接続線の方向(身体部分の方向に対応する)を理解するのに役立つ。プロセッサ14/24は、第1ベクトルと対応する第2ベクトルの間の類似性を決定し、第1骨格情報の第1ベクトルが第2骨格情報の第2ベクトルと一致しているかどうかを決定することができる。
【0045】
1つの実施形態において、プロセッサ12/24は、第1ベクトルと第2ベクトルの間のコサイン類似度(cosine similarity)を決定することができる。図7は、本発明の1つの実施形態に係るコサイン類似度の概略図である。図7を参照すると、基準関節Oの座標は、(x0,y0,z0)であり、目標関節Aの座標は、(x1,y1,z1)であり、目標関節Bの座標は、(x2,y2,z2)である。例えば、第1型関節は、下半身に属し、第2型関節は、上半身に属し、基準関節Oは、股関節中心の関節であり、目標関節AおよびBは、左手関節、右手関節、または頭部関節であってもよい。コサイン類似度の公式は、以下の通りである。
【0046】
【数1】
【0047】
1つの実施形態において、プロセッサ14/24は、1つまたはそれ以上の第1接続線と対応する1つまたはそれ以上の第2接続線の比較に基づいて、比較結果を決定することができる。例えば、比較結果は、類似性である。別の実施形態において、比較結果は、差異、平均二乗誤差(mean square error, MSE)、平方根平均二乗誤差(root-mean-square error, RMSE)、または最小平均二乗誤差(least-mean-square error, LMSE)であってもよい。
【0048】
1つの実施形態において、プロセッサ14/24は、第2骨格情報を第1骨格情報が属する座標系に変換することができる。第2骨格情報は、画像に基づいて取得した位置を含むため、骨格関節の元の位置は、カメラ座標系に属する。また、モバイルデバイス10および仮想現実デバイス20によって使用される座標系が異なる可能性もある。第1骨格情報と第2骨格情報を比較するために、プロセッサ14/24は、座標系変換を実行することができる。
【0049】
図8は、本発明の1つの実施形態に係る座標系変換の概略図である。図8を参照すると、第2骨格情報の骨格関節は、座標系C1に属し、第1骨格情報の骨格関節は、座標系C2に属する。第2骨格情報の骨格関節の座標Pは、(x,y,z)である。骨格関節Pが(座標系/基底)変換係数Rによって座標系C2にマッピングされた後、新しい座標P’が得られる。
【0050】
【数2】
【0051】
11~r13、r21~r23、r31~r33は、行列形式における変換係数Rの要素である。
【0052】
1つの実施形態において、プロセッサ14/24は、基準ポーズの下で第1骨格情報と第2骨格情報の間の座標対応を決定することができる。第2骨格情報の座標変換は、座標の対応関係に基づく。つまり、第2骨格情報上の座標は、座標間の対応関係に基づいて、第1骨格情報が属する座標系にマッピングすることができる。座標間の対応関係は、例えば、上述した(座標系/基底)変換係数Rまたは他の座標変換関数である。基準ポーズは、例えば、TポーズまたはPhiポーズである。例えば、図9Aは、本発明の1つの実施形態に係るTポーズの概略図であり、図9Bは、本発明の1つの実施形態に係るPhiポーズの概略図である。
【0053】
図9Aにおいて、座標間の対応関係を決定するステップを例示する。モバイルデバイス10または仮想現実デバイス20は、ビデオまたは音声を介して、図9Aに示したTポーズの姿勢をとるようにユーザーを促すことができる。プロセッサ14/24は、基準関節(例えば、股関節中心)および目標関節(例えば、頭、左手、および/または右手)を定義することができる。プロセッサ14/24がTポーズに対応する第2骨格情報を取得した後、股関節中心から頭部、股関節中心から左手、股関節中心から右手などの他の第2ベクトルを取得することが可能である。プロセッサ14/24は、1つまたはそれ以上の第2ベクトルを正規化し、それに基づいて、(座標系/基底)変換係数を決定することができる。
【0054】
【数3】
【0055】
Iは、単位行列であり、vは、2つのベクトルの積であり、[v]は、歪対称交差積行列(skew-symmetric cross-product matrix)を表し、sは、2つのベクトル間の角度の正弦(sine)を表し、cは、2つのベクトル間の角度の余弦(cosine)を表す。
【0056】
注意すべきこととして、いくつかのアプリケーションシナリオでは、機械学習モデルを使用して三次元空間の座標点を推測する際に誤差が生じる可能性がある。そのような状況下では、カブシュ(Kabsch)アルゴリズムまたは他の回転行列を最適化するためのアルゴリズムを採用し、複数セットのベクトルペアを介して変換行列の最適化を検索し、計算能力に応じてより多くのセットのベクトルペアに拡張することができる。また、画像ベースの骨格情報は、2次元画像から3次元情報を抽出する。光学効果によって引き起こされる誤差を減らすために、この基準ポーズを使用することによって、光学誤差を効果的に減らすことが可能である。ただし、基準ポーズは、TポーズまたはPhiポーズに限定されない。
【0057】
1つの実施形態において、第1骨格情報と第2骨格情報を比較する前に、プロセッサ14/24は、第2骨格情報が座標変換を行ったかどうか、および/または座標対応または(座標系/基底)変換係数が存在するかどうかを判断することができる。座標変換および/または座標対応または変換係数を取得していない場合、まず、これらの操作を行った後で、骨格情報を比較することができる。
【0058】
図2を参照すると、プロセッサ14/24は、比較結果に基づいて第1骨格情報と第2骨格情報を融合し、第1骨格情報における第1型関節の位置を修正する(ステップS240)。具体的に説明すると、プロセッサ14/24は、第1骨格情報と第2骨格情報の間の一貫性に基づいて、第2骨格情報を使用して第1骨格情報を修正するかどうかを判断する。1つの実施形態において、第1接続線と対応する第2接続線の間の比較が閾値より小さいことを比較結果が示している場合、プロセッサ14/24は、第2骨格情報を採用して、第1骨格情報を修正することができる。第1接続線と対応する第2接続線の間の比較が閾値以上であることを比較結果が示している場合、プロセッサ14/24は、第2骨格情報を拒否することができる。
【0059】
比較結果は、コサイン類似度により例示され、プロセッサ14/24は、コサイン類似度が閾値より小さいかどうかを比較することができる。コサイン類似度が閾値より小さい場合、プロセッサ14/24は、第1骨格情報の一部の骨格関節と第2骨格情報の対応する骨格関節が一致していると判断し、それに基づいて、第2骨格情報を採用することができる。コサイン類似度が閾値以上の場合、プロセッサ14/24は、第1骨格情報の一部の骨格関節が第2骨格情報の対応する骨格関節と一致していないと判断し、それに基づいて、第2骨格情報を否定/拒否/無視することができる。
【0060】
例えば、図10は、本発明の1つの実施形態に係る補正決定のフローチャートである。図10を参照すると、基準関節は、股関節の中心であり、目標関節は、頭部、右手、および左手である。プロセッサ14/24は、第1ベクトル(すなわち、第1骨格情報における股関節の中心から頭部までのベクトル、股関節の中心から右手までのベクトル、股関節の中心から左手までのベクトル)および第2ベクトル(すなわち、第2骨格情報における股関節の中心から頭部までのベクトル、股関節の中心から右手までのベクトル、股関節の中心から左手までのベクトル)のコサイン距離(cosine distance)をそれぞれ計算し(ステップS1001、S1002、S1003)、これらのコサイン距離が対応する閾値より小さいかどうかをそれぞれ判断する(ステップS1004、S1005、S1006)。
【0061】
次に、プロセッサ14/24は、これらのコサイン距離がいずれも対応する閾値より小さいかどうかを判断する(ステップS1007)。これらのコサイン距離がいずれも対応する閾値より小さい場合、プロセッサ14/24は、第1骨格情報の一部の骨格関節が第2骨格情報の対応する骨格関節と一致していると判断することができ、第2骨格情報の骨格関節を採用して、第1骨格情報における第1型関節(例えば、図3の下半身の骨格関節P25~P32または他のセンサ21によって指示された目標部分に対応する)の位置を修正または補正する(ステップS1008)。これらのコサイン距離のいずれか1つが閾値以上である場合、プロセッサ14/24は、第1骨格情報の一部の骨格関節が第2骨格情報の対応する骨格関節と一致していないと判断し、図4のステップS450に基づいて、第1型関節(例えば、図3の下半身の骨格関節P25~P32または他のセンサ21によって指示された目標部分に対応する)の位置を計算およびシミュレーションすることができる(ステップS1009)。例えば、下半身の骨格関節の位置は、ポーズAIモデルを介して予測される。
【0062】
注意すべきこととして、図10のステップは、単なる例として使用しただけであるため、別の実施形態において、異なる基準関節、目標関節、および比較結果を採用してもよい。例えば、首から頭部までのベクトル、左/右の膝から左/右の足までのベクトル、左/右の股関節から左/右の膝までのベクトル、左/右の肘から左/右の手までのベクトル、または左/右の肩から左/右の肘までのベクトルなどである。
【0063】
骨格情報の融合/補正において、1つの実施形態において、プロセッサ14/24は、第2骨格情報における第1関節および第2関節の基準ベクトルに基づいて、第1骨格情報における第1関節から延伸し、第1骨格情報における第2関節の位置を修正することができる。具体的に説明すると、人間の骨格は、関節(articulated)構造である。第1関節を関節構造の起点(すなわち、親ノード)と仮定すると、第2骨格情報の第2関節(すなわち、子ノード)の位置は、以下のように定義される。
【0064】
【数4】
【0065】
【数5】
【0066】
1つの実施形態において、ベクトルを取得した後、第1骨格情報の第1関節が外側に向かってある距離だけ延伸する位置が、第1骨格情報における第2関節を補正する位置である。
【0067】
【数6】
【0068】
【数7】
【0069】
股関節の中心を関節構造の起点とすると、骨格関節の計算順序は、例えば、1.左/右の股関節、2.左/右の膝関節、3.左/右の足首関節、4.左/右の肩関節、5.左/右の肘関節、6.左/右の手首関節、7.首、8.頭部である。つまり、この順序に基づいて親関節が順番に切り替わり、それに基づいて、対応する子関節がそれぞれ決定される。このようにして、第1型支点の位置や、さらには第2型支点の位置も修正することができる。ただし、起点および順序は、これに限定されない。
【0070】
1つの実施形態において、プロセッサ14/24は、修正/融合された骨格情報をアバターの体格比に変換し、それに基づいて、アバターのポーズを決定することができる。
【0071】
1つの実施形態において、プロセッサ14/24は、基準ポーズでの第1骨格情報と第2骨格情報の間の長さ変換係数を決定することができる。基準ポーズの説明は、変換係数の説明から導き出すことができるため、ここでは詳しい説明を省略する。プロセッサ14/24は、比較接続線を定義することができる。例えば、頭部(例えば、両耳間の中点)から首(例えば、両肩間の中点)までの長さ、首から左/右の肩までの長さ、左/右の肩から左/右の肘までの長さ、左/右の肘から左/右の手首までの長さ、左/右の肩から左/右の股関節までの長さ、股関節の中心(例えば、両股関節間の中点)から左/右の股関節までの長さの中点、左/右の股関節から左/右の膝関節までの長さ、および/または左/右の膝関節から左/右の足首関節までの長さである。長さ変換係数Cconnectの式は、以下の通りである。
【0072】
【数8】
【0073】
【数9】
【0074】
図9Aの2つの腕に対応する4つの身体部分の長さを例に挙げると、これらの長さは、左/右の肩から左/右の肘までの長さ、および左/右の肘から左/右の手首までの長さである。長さ変換係数の計算方法は、以下の通りである。
【0075】
【数10】
【0076】
【数11】
【0077】
同様にして、他の比較長さの長さ変換係数を得ることができる。いくつかのアプリケーションシナリオにおいて、モバイルデバイス10および/または仮想現実デバイス20は、さらに、他の基準ポーズ(例えば、Phiポーズ)をとるようにユーザーを促すことができるため、特定の比較長さ(例えば、肘から手首までの長さまたは股関節から膝までの長さ)の追跡がより正確になる。
【0078】
1つの実施形態において、プロセッサ14/24は、長さ変換係数が存在するかどうかを判断することができる。長さ変換係数が存在しない場合、ユーザーは、基準ポーズをとるように指導され、それに基づいて、長さ変換係数を計算することができる。
【0079】
本発明の別の実施形態において、プロセッサにロードされたコンピュータプログラムを記録して、上述した骨格補正方法の各ステップ(図2図10に示した実施形態)を実行するためのコンピュータ可読媒体を提供する。コンピュータプログラムは、複数のプログラムコードを含むことができ、プロセッサ14/24がこれらのプログラムコードをロードして実行した後、上述した骨格補正方法を達成し、仮想現実システム1の機能を実現することが可能である。
【0080】
以上のように、本発明の実施形態におけるアバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体は、一部の骨格関節上の2つの骨格情報の一貫性に基づいて、骨格情報を修正する。この方法により、人体部分の位置決めの精度を向上させることができる。
【0081】
上記の実施形態において本発明を開示したが、これらの実施形態は、本発明を限定する意図はない。当業者であれば、本発明の精神および範囲から逸脱することなく、いくつかの変更および修正を行うことができる。本発明の保護範囲は、添付された請求項によって定義されるべきである。
【産業上の利用可能性】
【0082】
本発明のアバターの骨格補正方法、仮想現実システム、およびコンピュータ可読媒体は、仮想現実(VR)技術に適用することができる。
【符号の説明】
【0083】
1 仮想現実システム
10 モバイルデバイス
11 撮像装置
12、22 通信トランシーバー
13、23 メモリ
14、24 プロセッサ
20 仮想現実デバイス
21 センサ
S210~S240、S410~S470、S510~S520、S610~S630、S1001~S1009 ステップ
P0~P32 骨格関節
FTP 第1型関節
STP 第2型関節
O 基準関節
A、B 目標関節
(x0,y0,z0)、(x1,y1,z1)、(x2,y2,z2)、(x,y,z)、P、P’ 座標
R 変換係数
11~r13、r21~r23、r31~r33 行列形式における変換係数の要素
C1、C2 目標関節

【要約】      (修正有)
【課題】骨格の追跡精度が向上するアバターの骨格補正方法、仮想現実システムおよびコンピュータ可読媒体を提供する。
【解決手段】この方法において、第1骨格情報を取得する。第1骨格情報の第1型関節を第2型関節に基づいて推定する。第2骨格情報を取得する。第2骨格情報の第1および第2型関節を画像に基づいて決定する。第1骨格情報を第2骨格情報と比較して、比較結果を取得する。比較結果に基づいて、第1骨格情報と第2骨格情報を融合し、第1骨格情報の第1型関節の位置を修正する。
【選択図】図2
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図10