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

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

▶ 株式会社JVCケンウッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024008130
(43)【公開日】2024-01-19
(54)【発明の名称】アバター制御装置
(51)【国際特許分類】
   G06T 13/40 20110101AFI20240112BHJP
   G06F 3/01 20060101ALI20240112BHJP
   G06F 3/04815 20220101ALI20240112BHJP
【FI】
G06T13/40
G06F3/01 510
G06F3/04815
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022109720
(22)【出願日】2022-07-07
(71)【出願人】
【識別番号】308036402
【氏名又は名称】株式会社JVCケンウッド
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】山本 俊輔
(72)【発明者】
【氏名】滝脇 愛子
(72)【発明者】
【氏名】藤島 もゑ
(72)【発明者】
【氏名】松本 祐一
(72)【発明者】
【氏名】キム ヒョンジュン
(72)【発明者】
【氏名】林下 裕
(72)【発明者】
【氏名】佐藤 由佳子
(72)【発明者】
【氏名】関 和哉
(72)【発明者】
【氏名】志賀 実
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050BA09
5B050BA12
5B050CA07
5B050DA04
5B050EA07
5B050EA12
5E555AA04
5E555AA62
5E555BA02
5E555BA06
5E555BB02
5E555BB06
5E555BC04
5E555BD01
5E555BE16
5E555CA42
5E555CB23
5E555CB80
5E555CC01
5E555DA02
5E555DB32
5E555DC19
5E555DD06
5E555EA14
5E555EA22
5E555FA00
(57)【要約】
【課題】メタバース内のアバターを操作する利用者の煩わしさを低減させる。
【解決手段】仮想空間内に表示されるアバターを制御する装置であって、カメラによって撮影されたユーザの顔画像を取得し、前記ユーザの顔の基準姿勢を示す初期設定情報を取得し、前記顔画像に基づいて、前記カメラに対する前記ユーザの顔の姿勢を示す姿勢情報を取得し、前記初期設定情報と前記姿勢情報とが示す、前記カメラと前記ユーザの顔との距離に基づいて、前記仮想空間内におけるアバターの前後方向の移動を制御する。
【選択図】図1
【特許請求の範囲】
【請求項1】
仮想空間内に表示されるアバターを制御する装置であって、
カメラによって撮影されたユーザの顔画像を取得し、
前記ユーザの顔の基準姿勢を示す初期設定情報を取得し、
前記顔画像に基づいて、前記カメラに対する前記ユーザの顔の姿勢を示す姿勢情報を取得し、
前記初期設定情報と前記姿勢情報とが示す、前記カメラと前記ユーザの顔との距離に基づいて、前記仮想空間内におけるアバターの前後方向の移動を制御する
アバター制御装置。
【請求項2】
仮想空間内にユーザの分身として表示されるアバターを制御する装置であって、
表示部に表示された仮想空間の画像を視認するユーザの顔がカメラによって撮影された画像である顔画像を取得し、
前記ユーザの顔の基準姿勢を示す初期設定情報を取得し、
前記顔画像に基づいて、前記カメラに対する前記ユーザの顔の姿勢を示す姿勢情報を取得し、
前記初期設定情報と前記姿勢情報とが示す、前記ユーザの顔の前記基準姿勢からの変位方向に基づいて、前記仮想空間内におけるアバターの横方向の移動を制御する
アバター制御装置。
【請求項3】
前記カメラと前記ユーザの顔との距離の大きさ、または当該距離の変化速度に応じて、前後方向の移動速度または加速度を制御する
請求項1に記載のアバター制御装置。
【請求項4】
前記カメラに対する前記ユーザの顔の向きに基づいて、前記仮想空間内におけるアバターの移動方向を制御する
請求項1または請求項2に記載のアバター制御装置。
【請求項5】
前記カメラによって撮影された前記ユーザの所定の動作を検出し、
前記所定の動作が検出された場合、アバターの移動制御を行わない
請求項1または請求項2に記載のアバター制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アバター制御装置に関する。
【背景技術】
【0002】
従来、メタバース(仮想空間)内において、利用者の分身であるアバターを操作する技術が提案されている。例えば、利用者にヘッドマウント型の装置を装着することにより、利用者の操作を検出する技術が提案されている(例えば、特許文献1を参照。)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2017-144038号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来の技術のように、操作検出装置(例えば、ヘッドマウント型の装置)を体に装着することや、コントローラを手に持って操作することは、利用者にとって煩わしいものであった。
【0005】
本発明は、このような状況に鑑みてなされたものであって、メタバース内のアバターを操作する利用者の煩わしさを低減させることができるアバター制御装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様は、仮想空間内に表示されるアバターを制御する装置であって、カメラによって撮影されたユーザの顔画像を取得し、前記ユーザの顔の基準姿勢を示す初期設定情報を取得し、前記顔画像に基づいて、前記カメラに対する前記ユーザの顔の姿勢を示す姿勢情報を取得し、前記初期設定情報と前記姿勢情報とが示す、前記カメラと前記ユーザの顔との距離に基づいて、前記仮想空間内におけるアバターの前後方向の移動を制御するアバター制御装置である。
【0007】
本発明の一態様は、仮想空間内にユーザの分身として表示されるアバターを制御する装置であって、表示部に表示された仮想空間の画像を視認するユーザの顔がカメラによって撮影された画像である顔画像を取得し、前記ユーザの顔の基準姿勢を示す初期設定情報を取得し、前記顔画像に基づいて、前記カメラに対する前記ユーザの顔の姿勢を示す姿勢情報を取得し、前記初期設定情報と前記姿勢情報とが示す、前記ユーザの顔の前記基準姿勢からの変位方向に基づいて、前記仮想空間内におけるアバターの横方向の移動を制御するアバター制御装置である。
【0008】
本発明の一態様に係るアバター制御装置は、前記カメラと前記ユーザの顔との距離の大きさ、または当該距離の変化速度に応じて、前後方向の移動速度または加速度を制御する。
【0009】
本発明の一態様に係るアバター制御装置は、前記カメラに対する前記ユーザの顔の向きに基づいて、前記仮想空間内におけるアバターの移動方向を制御する。
【0010】
本発明の一態様に係るアバター制御装置は、前記カメラによって撮影された前記ユーザの所定の動作を検出し、前記所定の動作が検出された場合、アバターの移動制御を行わない。
【発明の効果】
【0011】
本発明によれば、メタバース(仮想空間)内のアバターを操作する利用者の煩わしさを低減させることができる。
【図面の簡単な説明】
【0012】
図1】本実施形態のアバター制御システムの機能構成の一例を示す図である。
図2】本実施形態のアバターの構成の一例を示す図である。
図3】本実施形態の初期設定モードにおける処理の流れの一例を示す図である。
図4】本実施形態のアバター制御モードにおける処理の流れの一例を示す図である。
図5】本実施形態の撮影画像の一例を示す図である。
図6】本実施形態の顔画像の一例を示す図である。
図7】本実施形態の顔画像の特徴点の一例を示す図である。
図8】基準位置にいるユーザとカメラとの相対的な位置関係の一例を示す図である。
図9】基準位置にいるユーザをカメラが撮影した撮影画像の一例を示す図である。
図10】ユーザが基準位置にいる場合のアバターの移動制御の結果の一例を示す図である。
図11】基準位置よりも顔を前にずらした場合のユーザとカメラとの相対的な位置関係の一例を示す図である。
図12】基準位置よりも顔を前にずらした場合のカメラが撮影した撮影画像の一例を示す図である。
図13】基準位置よりも顔を前にずらした場合のアバターの移動制御の結果の一例を示す図である。
図14】基準位置よりも顔を後ろにずらした場合のユーザとカメラとの相対的な位置関係の一例を示す図である。
図15】基準位置よりも顔を後ろにずらした場合のカメラが撮影した撮影画像の一例を示す図である。
図16】基準位置よりも顔を後ろにずらした場合のアバターの移動制御の結果の一例を示す図である。
図17】基準位置にいるユーザとカメラとの相対的な位置関係の一例を示す図である。
図18】基準位置にいるユーザをカメラが撮影した撮影画像の一例を示す図である。
図19】ユーザが基準位置にいる場合のアバターの移動制御の結果の一例を示す図である。
図20】左方向に頭を回転させた場合のユーザとカメラとの相対的な位置関係の一例を示す図である。
図21】左方向に頭を回転させたユーザをカメラが撮影した撮影画像の一例を示す図である。
図22】左方向に頭を回転させた場合のアバターの移動制御の結果の一例を示す図である。
図23】右方向に頭を回転させた場合のユーザとカメラとの相対的な位置関係の一例を示す図である。
図24】右方向に頭を回転させたユーザをカメラが撮影した撮影画像の一例を示す図である。
図25】右方向に頭を回転させた場合のアバターの移動制御の結果の一例を示す図である。
図26】特徴点間の距離の変化の大きさに基づく制御の切り替えの一例を示す図である。
図27】右方向に頭を傾げたユーザをカメラが撮影した撮影画像の一例を示す図である。
図28】右方向に頭を傾げた場合のアバターの移動制御の結果の一例を示す図である。
図29】左方向に頭を傾げたユーザをカメラが撮影した撮影画像50の一例を示す図である。
図30】左方向に頭を傾げた場合のアバターの移動制御の結果の一例を示す図である。
図31】左方向に移動したユーザをカメラが撮影した撮影画像の一例を示す図である。
図32】右方向に移動したユーザをカメラが撮影した撮影画像の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について、図面を参照しながら説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
【0014】
[アバター制御システム1の機能構成]
図1は、本実施形態のアバター制御システム1の機能構成の一例を示す図である。アバター制御システム1は、ネットワークNを介して、制御装置10(アバター制御装置)と、端末装置20とが双方向通信することにより、ユーザ30が仮想空間VS内のアバター40を制御する。アバター40の構成の一例について、図2を参照して説明する。
【0015】
[アバター40の構成]
図2は、本実施形態のアバター40の構成の一例を示す図である。アバター40は、顔パーツ41と、手パーツ42と、状態表示パーツ43とを有する。
顔パーツ41は、ユーザ30の顔を撮影(撮像ともいう。以下の説明において同じ。)することによって得られる画像(すなわち、顔画像51)に基づいて生成される。顔パーツ41は、アバター40の正面に配置され、仮想空間VS内におけるアバター40の向きを表す。顔パーツ41が示すアバター40の表情は、ユーザ30の表情の変化に伴ってリアルタイムに更新されてもよい。
手パーツ42は、アバター40の左右に配置され、アバター40の仮想的な手として機能する。例えば、手パーツ42は、仮想空間VS内に配置される仮想物体や他のアバター40に触れるなどの機能を有する。なお、手パーツ42は、必要な場合に表示されればよく、常時表示されていなくてもよい。
状態表示パーツ43は、アバター40の状態を示す仮想パーツである。状態表示パーツ43は、例えば、形状や色彩の変化によって、アバター40の状態(例えば、うれしい、悲しいなどの心理状態)を表現する。状態表示パーツ43は、アバター40を操作するユーザ30の状態(例えば、心理状態)と連動して変化してもよい。
なお、アバターの形状は同図に示すように、顔パーツ41によってアバターの向きが認識できる形状であれば、どのような形状であってもよい。例えば、アバターの形状は人間の身体を模した形状でもよい。アバターの形状は、ユーザ30によって選択可能としてもよく、後述するカメラ21によって撮影されるユーザの画像(例えば、顔画像51)を顔パーツ41に反映させてもよい。
【0016】
アバター40は、ユーザ30の分身として仮想空間VS内に表示される。アバター40は、制御装置10の制御に基づいて、仮想空間VS内を移動する。複数のユーザ30がアバター制御システム1を利用している場合、仮想空間VS内には、ユーザ30に対応する複数のアバター40が配置される。同図の一例では、仮想空間VS内には、第1ユーザ(ユーザ30-1)のアバター40であるアバター40-1と、第2ユーザ(ユーザ30-2)のアバター40であるアバター40-2と、第3ユーザ(ユーザ30-3)のアバター40であるアバター40-3とが配置されている。
以下の説明において、これら複数のユーザ30-1~ユーザ30-3を区別しない場合には、ユーザ30と総称する。また、これら複数のアバター40-1~アバター40-3を区別しない場合には、アバター40と総称する。
【0017】
図1に戻り、アバター制御システム1の構成についての説明を続ける。アバター制御システム1は、ユーザ30の顔の動きに応じて、仮想空間VS内のアバター40の移動を制御する機能(つまり、フェイストラッキング機能)を備える。制御装置10および端末装置20は、フェイストラッキング機能を実現するための構成を備える。
【0018】
端末装置20は、例えば、スマートフォンやパーソナルコンピュータなどのコンピュータ装置であり、カメラ21と、表示部22と、通信部23と、制御部24とを備える。
制御部24は、例えば、中央演算処理装置(CPU)などの演算機能を備えており、端末装置20の各部を制御する。
通信部23は、通信回路を備えており、制御部24の制御に基づいて、ネットワークNを介して制御装置10との間において情報通信する。
【0019】
表示部22は、例えば、液晶ディスプレイを備えており、制御部24の制御に基づいて画像を表示する。
本実施形態の一例では、上述した仮想空間VSの様子を示す情報が、制御装置10から端末装置20に送信される。通信部23が仮想空間VSの様子を示す情報を制御装置10から受信すると、制御部24は、表示部22に仮想空間VSの様子を示す画像を表示させる。表示部22には、仮想空間VSの様子が表示される。
カメラ21は、画像を撮影し、撮影した画像を制御部24に出力する。本実施形態のカメラ21は、表示部22に表示された仮想空間VSの画像を視認するユーザ30の顔が撮影できる位置に配置されている。例えば、端末装置20がスマートフォンである場合、カメラ21は、いわゆるインカメラとして、表示部22が配置される面と同じ面に配置される。
【0020】
以下の説明において、カメラ21が撮影したユーザ30の顔の画像のことを、顔画像51ともいう。すなわち、顔画像51とは、表示部22に表示された仮想空間VSの画像を視認するユーザ30の顔がカメラ21によって撮影された画像である。
制御部24は、カメラ21が撮影した顔画像51を、通信部23を介して制御装置10に送信する。
【0021】
制御装置10は、例えば、サーバコンピュータ装置であり、記憶部11と、通信部12と、制御部13とを備える。
制御部13は、例えば、中央演算処理装置(CPU)などの演算機能を備えており、制御装置10の各部を制御する。
記憶部11は、半導体メモリなどの記憶装置を備えており、各種の情報を記憶する。
通信部12は、通信回路を備えており、制御部13の制御に基づいて、ネットワークNを介して端末装置20との間において情報通信する。
【0022】
[制御部の動作モードについて]
制御部13は、「初期設定モード」と「アバター制御モード」との2種類の動作モードを有する。
初期設定モードとは、ユーザ30の顔画像51に基づいて、ユーザ30の顔の基準姿勢を示す情報(初期設定情報)を、記憶部11に記憶させる動作モードである。
アバター制御モードとは、フェイストラッキング機能によって、仮想空間VS内のアバター40を移動させる動作モードである。アバター制御モードにおいて、制御部13は、記憶部11に記憶された初期設定情報(つまり、ユーザ30の顔の基準姿勢)と、端末装置20において撮影された顔画像51とに基づいて、ユーザ30の操作内容を判定することにより、ユーザ30の操作内容に応じて、仮想空間VS内のアバター40を移動させる。この制御部13の機能構成の詳細について説明する。なお、以下の説明において、仮想空間VS内におけるアバター40の位置、移動方向、移動速度などを制御することを単に、アバター40を制御する、またはアバター40を移動させる、ともいう。
【0023】
[制御部の機能構成]
本実施形態の制御部13は、画像取得部131と、初期設定情報取得部132と、姿勢情報取得部133と、移動制御部134と、画像生成部135とを、ソフトウエア機能部あるいはハードウエア機能部として備える。
【0024】
画像取得部131は、端末装置20が送信したユーザ30の顔画像51を取得する。上述したように、顔画像51とは、表示部22に表示された仮想空間VSの画像を視認するユーザ30の顔がカメラ21によって撮影された画像である。
【0025】
初期設定モードにおいて、画像取得部131は、取得した顔画像51を初期設定情報取得部132に出力する。
初期設定情報取得部132は、画像取得部131が出力した顔画像51に基づいて、ユーザ30の顔の基準姿勢を取得する。初期設定情報取得部132は、例えば、後述するユーザ30の顔の基準方向、ユーザ30の顔の基準特徴点間距離などを、ユーザ30の基準姿勢を示す情報として取得する。初期設定情報取得部132は、ユーザ30の顔の基準方向、ユーザ30の顔の基準特徴点間距離などから得られる基準姿勢を初期設定情報として、記憶部11に記憶させる。
【0026】
アバター制御モードにおいて、初期設定情報取得部132は、記憶部11に記憶されている初期設定情報を取得する。すなわち、初期設定情報取得部132は、ユーザ30の顔の基準姿勢を示す初期設定情報を取得する。
画像取得部131は、取得した顔画像51を姿勢情報取得部133に出力する。
姿勢情報取得部133は、顔画像51に基づいて、カメラ21に対するユーザ30の顔の姿勢を判定する。姿勢情報取得部133は、ユーザ30の顔の姿勢の判定結果を、姿勢情報として取得する。すなわち、姿勢情報取得部133は、顔画像51に基づいて、カメラ21に対するユーザ30の顔の姿勢を示す姿勢情報を取得する。
【0027】
移動制御部134は、初期設定情報と姿勢情報とに基づいて、仮想空間VS内におけるアバター40の移動を制御する。具体的には、移動制御部134は、姿勢情報が示すユーザ30の顔の位置や方向と、初期設定情報が示すユーザ30の顔の基準姿勢とを比較する。移動制御部134は、比較の結果として得られる、基準姿勢からのユーザ30の顔の位置や方向のずれを、ユーザ30の操作内容として判定する。移動制御部134は、あらかじめ定められた規則に基づいて、ユーザ30の操作内容をアバター40の移動方向や移動量に変換する。移動制御部134は、算出したアバター40の移動方向や移動量を、画像生成部135に出力する。
画像生成部135は、移動制御部134が算出したアバター40の移動方向や移動量に基づいて、仮想空間VS内でのアバター40の方向や位置を求め、仮想空間VS内にアバター40を配置した画像を生成する。画像生成部135は、生成した画像を、通信部12を介して端末装置20に送信する。
この結果、端末装置20の表示部22には、ユーザ30の操作意思に対応したアバター40の画像が表示される。
上述した初期設定モードおよびアバター制御モードにおける各処理の具体的な流れについて、図3および図4を参照して説明する。
【0028】
[初期設定モードでの処理の流れ]
図3は、本実施形態の初期設定モードにおける処理の流れの一例を示す図である。
(ステップS10)端末装置20は、カメラ21によってユーザ30を撮影する。
【0029】
図5は、本実施形態の撮影画像50の一例を示す図である。カメラ21は、表示部22を視認するユーザ30の顔を含む領域を撮影する。カメラ21が撮影した画像を撮影画像50ともいう。カメラ21は、撮影画像50を制御部24に出力する。
制御部24は、撮影画像50の中から、ユーザ30の顔の部分を切り出して顔画像51を生成する。
【0030】
図6は、本実施形態の顔画像51の一例を示す図である。制御部24は、撮影画像50から切り出した顔画像51を、制御装置10に送信する。ここで、初期設定モードにおいて切り出された顔画像51のことを、基準顔画像ともいう。すなわち、制御部24は、基準顔画像を、制御装置10に送信する。制御装置10の画像取得部131は、基準顔画像を取得する。
【0031】
(ステップS20)図3に戻り、制御装置10の初期設定情報取得部132は、ステップS10において画像取得部131が取得した顔画像51(つまり、基準顔画像)に含まれる特徴点Pを検出する。特徴点Pとは、顔画像51に含まれる点のうち、ユーザ30の顔の位置や方向を示す際に用いられる点である。例えば、特徴点Pには、ユーザ30の左右の目、左右の頬骨、あご先などが含まれる。
【0032】
図7は、本実施形態の顔画像51の特徴点Pの一例を示す図である。この一例において、顔画像51には、特徴点P11(右目)と、特徴点P12(左目)とが含まれる。初期設定情報取得部132は、顔画像51から特徴点P11と特徴点P12とを検出する。初期設定情報取得部132は、検出した2つの特徴点Pどうしを結ぶ線分に直交する軸を垂直軸ax1とし、平行な軸を水平軸ax2とすることにより、顔画像51の垂直軸ax1と水平軸ax2とを算出する。
【0033】
なお、顔画像51の方向は、顔座標軸(fx、fy、fz)の三次元直交座標系によって示される。顔座標軸fzは、垂直軸ax1に平行な軸であり、顔の上下方向を示す。顔座標軸fxは、水平軸ax2に平行な軸であり、顔の左右方向を示す。顔座標軸fyは、垂直軸ax1と水平軸ax2とがなす平面の法線方向の軸であり、顔の前後方向を示す。
【0034】
初期設定情報取得部132は、算出した垂直軸ax1と水平軸ax2とがなす平面の法線(つまり、顔座標軸fy)の方向を、ユーザ30の顔の方向として算出する。初期設定情報取得部132は、算出した顔の方向を基準方向として定める。
【0035】
(ステップS30)図3に戻り、初期設定情報取得部132は、基準顔画像における、特徴点P11と特徴点P12と間の距離L1を、特徴点P間の基準長さとして算出する。特徴点P間の基準長さのことを、基準特徴点間距離ともいう。
【0036】
なお、特徴点Pは、特徴点P11(右目)と特徴点P12(左目)との2点だけに限られない。例えば、特徴点P21(眉間)、特徴点P22(右頬骨)、及び特徴点P23(左頬骨)の3点を、特徴点Pとしてもよい。すなわち、初期設定情報取得部132は、特徴点P21、特徴点P22及び特徴点P23がなす三角形を検出することによって、基準方向を定めてもよい。この場合、初期設定情報取得部132は、特徴点P21、特徴点P22及び特徴点P23がなす三角形に基づいて、垂直軸ax1と水平軸ax2とを算出する。初期設定情報取得部132は、算出した垂直軸ax1と水平軸ax2とがなす平面の法線(つまり、顔座標軸fy)の方向を、ユーザ30の顔の方向として算出する。
また、初期設定情報取得部132は、基準顔画像における、特徴点P21と特徴点P22との間の距離L22、特徴点P22と特徴点P23と間の距離L23、特徴点P23と特徴点P21との間の距離L21を、それぞれ特徴点P間の基準長さ(つまり、基準特徴点間距離)として算出する。
【0037】
(ステップS40)初期設定情報取得部132は、ステップS20で算出されたユーザ30の顔の基準方向と、ステップS30で算出された特徴点P間の基準長さ、すなわち基準特徴点間距離とを記憶部11に記憶させて、初期設定モードの処理を終了する。この結果、記憶部11には、ユーザ30の顔が基準方向に向いた場合の基準特徴点間距離が記憶される。ユーザ30の顔の基準方向と、基準特徴点間距離とに幾何学的な演算を施すことにより、ユーザ30の顔の基準姿勢を求めることができる。換言すれば、初期設定情報取得部132は、ユーザ30の顔の基準方向と、基準特徴点間距離とを、ユーザ30の顔の基準姿勢を示す情報として記憶部11に記憶させる。
【0038】
[アバター制御モードでの処理の流れ]
図4は、本実施形態のアバター制御モードにおける処理の流れの一例を示す図である。
(ステップS110)端末装置20は、カメラ21によってユーザ30の顔を撮影する。制御部24は、撮影された画像からユーザ30の顔の部分を切り出して、顔画像51を生成する。制御部24は、生成した顔画像51を、制御装置10に送信する。
制御装置10の画像取得部131は、端末装置20が送信した顔画像51を取得する。
【0039】
(ステップS120)姿勢情報取得部133は、画像取得部131が取得した顔画像51に含まれる特徴点Pを検出する。
(ステップS130)姿勢情報取得部133は、検出した特徴点P間の距離を算出する。
なお、姿勢情報取得部133による特徴点Pの検出手順および特徴点P間の距離の算出手順は、上述した初期設定モードにおいて、初期設定情報取得部132が行う特徴点Pの検出手順および特徴点P間の距離の算出手順と同様であるため、説明を省略する。
【0040】
ここで、特徴点P間の距離は、カメラ21に対するユーザ30の姿勢の変化に応じて変化する。例えば、ユーザ30がカメラ21に近づけば、カメラ21の画角の範囲内に占めるユーザ30の顔の面積の割合が増加し、特徴点P間の距離は大きくなる。また、ユーザ30がカメラ21から遠ざかれば、特徴点P間の距離は小さくなる。すなわち、特徴点P間の距離は、ユーザ30の顔の姿勢を示す姿勢情報として機能する。
姿勢情報取得部133は、特徴点P間の距離を、ユーザ30の姿勢情報として取得する。
換言すれば、姿勢情報取得部133は、顔画像51に基づいて、カメラ21に対するユーザ30の顔の姿勢を示す姿勢情報を取得する。
【0041】
(ステップS140)姿勢情報取得部133は、ステップS130において算出した特徴点P間の距離が、所定値以上変化したか否かを判定する。姿勢情報取得部133は、特徴点P間の距離が、所定値以上変化したと判定した場合(ステップS140;YES)には、処理をステップS150に進める。姿勢情報取得部133は、特徴点P間の距離が、所定値以上変化していないと判定した場合(ステップS140;NO)には、処理をステップS110に戻す。
上述のように構成された制御装置10によれば、ユーザ30が意図していない小さな動きを、アバター40の移動制御から除外することができる。
【0042】
なお、特徴点P間の距離が所定値以上変化したか否かの判定は、基準顔画像の特徴点P間の距離との比較によって行ってもよいし、互いに異なるタイミングで撮影された顔画像51どうしの比較(例えば、数フレーム前の顔画像51と、最新フレームの顔画像51との比較)によって行ってもよい。
【0043】
(ステップS150)姿勢情報取得部133は、カメラ21によって撮影された画像に、所定の動作が含まれているか否かを判定する。
ここで、所定の動作とは、例えば、ユーザ30が目を閉じている時間が所定時間以上である場合や、ユーザ30が顔を左右に素早く振る動作や、ユーザ30がカメラ21に対して所定の距離以下に顔を近づける動作などが含まれる。
【0044】
なお、制御装置10が、顔画像51だけではなく、カメラ21が撮影した撮影画像50を端末装置20から受信している場合には、撮影画像50に含まれるユーザ30の動作を、所定の動作の対象にしてもよい。例えば、ユーザ30が手で顔を覆う動作、ユーザ30が両手を広げる動作や、ユーザ30が腕組みする動作や手を挙げる動作などが、所定の動作に含まれていてもよい。
【0045】
姿勢情報取得部133は、カメラ21によって撮影された画像に、所定の動作が含まれていると判定した場合(ステップS150;YES)には、処理をステップS110に戻す。姿勢情報取得部133は、所定の動作が含まれていないと判定した場合(ステップS150;NO)には、処理をステップS160に進める。
【0046】
ここで、ステップS160以降の処理は、アバター40の移動制御に関する処理である。つまり、姿勢情報取得部133は、ユーザ30が所定の動作をしたか否かに基づいて、アバター40の移動制御を行うか行わないかを判定する。姿勢情報取得部133は、カメラ21によって撮影されたユーザ30の所定の動作を検出し、所定の動作が検出された場合、アバター40の移動制御を行わない。あるいは、姿勢情報取得部133は、所定の動作が所定時間以上継続した場合に、アバター40の移動制御を行わない。
また、姿勢情報取得部133は、ユーザ30が所定の動作を行っている間、アバター40の移動制御を行わないように構成されていてもよい。
【0047】
例えば、ユーザ30による所定の動作を、アバター40の移動制御以外の制御に割り当てることにより、アバター40の移動制御をするか、アバター40の移動制御以外の制御をするかを、ユーザ30が選択することができる。このように構成された制御装置10によれば、ユーザ30の動作によって様々な種類の制御を行うことができる。
【0048】
また、姿勢情報取得部133は、ユーザ30が急な動作を行った場合には、アバター40の移動制御を行わないように構成されていてもよい。ユーザ30の急な動作とは、例えば、ユーザ30の顔の方向や傾き、または顔とカメラ21との距離等が、所定時間内に、所定のしきい値以上の変化があった場合をいう。
【0049】
[アバターの移動制御(前後方向の移動)]
ステップS160~ステップS190における、アバター40の移動制御の具体例について説明する。
【0050】
図8は、基準位置にいるユーザ30とカメラ21との相対的な位置関係の一例を示す図である。基準位置とは、上述した初期設定モードにおいて基準顔画像が撮影された際の位置のことである。
同図に示すようにユーザ30とカメラ21とが対向している場合において、実空間内におけるユーザ30の顔の位置や方向は、実空間座標軸(x、y、z)の三次元直交座標系によって示される。実空間座標軸zは、ユーザ30の上下方向を示す。実空間座標軸xは、ユーザ30の左右方向を示す。実空間座標軸yは、ユーザ30の前後方向を示す。
【0051】
図9は、基準位置にいるユーザ30をカメラ21が撮影した撮影画像50の一例を示す図である。撮影画像50には、ユーザ30の顔の特徴点P11(右目)と特徴点P12(左目)とが撮影されている。ユーザ30が基準位置にいる場合、特徴点P11(右目)と特徴点P12(左目)との間の距離は、距離L1(つまり、基準特徴点間距離)である。
【0052】
図10は、ユーザ30が基準位置にいる場合のアバター40の移動制御の結果の一例を示す図である。ここで、仮想空間VS内におけるアバター40の位置や方向は、アバター座標軸(vx、vy、vz)の三次元直交座標系によって示される。アバター座標軸vzは、アバター40の上下方向を示す。アバター座標軸vxは、アバター40の左右方向を示す。アバター座標軸vyは、アバター40の前後方向を示す。
ユーザ30が基準位置にいる場合、アバター40は、アバター座標軸(vx、vy、vz)のいずれの方向にも移動しない。ユーザ30が基準位置からずれた位置に顔を動かした場合に、制御装置10は、アバター40を移動させる。アバター40の移動制御の具体例について、図4のステップS160~ステップS190を参照して説明する。
【0053】
(ステップS160)姿勢情報取得部133は、ステップS130において算出した特徴点P間の距離の変化に基づいて、アバター40の移動を制御する。具体的には、姿勢情報取得部133は、特徴点P間の距離が大きくなったと判定した場合(ステップS160;YES)には、処理をステップS170に進める。姿勢情報取得部133は、特徴点P間の距離が大きくなっていないと判定した場合(ステップS160;NO)には、処理をステップS180に進める。
【0054】
図11は、基準位置よりも顔を前にずらした場合のユーザ30とカメラ21との相対的な位置関係の一例を示す図である。ユーザ30が基準位置よりも前(+y方向)に顔をずらした場合、ユーザ30の顔とカメラ21とが接近する。
【0055】
図12は、基準位置よりも顔を前にずらした場合のカメラ21が撮影した撮影画像50の一例を示す図である。ユーザ30の顔とカメラ21とが接近すると、カメラ21の画角に占めるユーザ30の顔の面積の割合が増加する。この場合、ユーザ30の特徴点P11と特徴点P12との間の距離が、距離L1-1になる。距離L1-1は、図9に示した距離L1(すなわち、基準距離)よりも大きい。つまり、ユーザ30の顔とカメラ21とが接近すると、ユーザ30の特徴点P11と特徴点P12との間の距離が大きくなる。
【0056】
(ステップS170)特徴点P間の距離が大きくなった場合、移動制御部134は、アバター40を前進させる。画像生成部135は、移動制御部134が前進させたアバター40の画像を生成して、端末装置20に送信する。
【0057】
図13は、基準位置よりも顔を前にずらした場合のアバター40の移動制御の結果の一例を示す図である。図13に示すように、アバター40は、アバター座標軸vyの+(プラス)方向に移動する。すなわち、ユーザ30がカメラ21に顔を近づけると、アバター40は、前進する。
【0058】
(ステップS180)姿勢情報取得部133は、ステップS130において算出した特徴点P間の距離の変化に基づいて、アバター40の移動を制御する。具体的には、姿勢情報取得部133は、特徴点P間の距離が小さくなったと判定した場合(ステップS180;YES)には、処理をステップS190に進める。姿勢情報取得部133は、特徴点P間の距離が小さくなっていないと判定した場合(ステップS180;NO)には、処理をステップS200に進める。
【0059】
図14は、基準位置よりも顔を後ろにずらした場合のユーザ30とカメラ21との相対的な位置関係の一例を示す図である。ユーザ30が基準位置よりも後ろ(-y方向)に顔をずらした場合、ユーザ30の顔とカメラ21とが離れる。
【0060】
図15は、基準位置よりも顔を後ろにずらした場合のカメラ21が撮影した撮影画像50の一例を示す図である。ユーザ30の顔とカメラ21とが離れると、カメラ21の画角に占めるユーザ30の顔の面積の割合が減少する。この場合、ユーザ30の特徴点P11と特徴点P12との間の距離が、距離L1-2になる。距離L1-2は、図9に示した距離L1(すなわち、基準距離)よりも小さい。つまり、ユーザ30の顔とカメラ21とが離れると、ユーザ30の特徴点P11と特徴点P12との間の距離が小さくなる。
【0061】
(ステップS190)特徴点P間の距離が小さくなった場合、移動制御部134は、アバター40を後退させる。画像生成部135は、移動制御部134が後退させたアバター40の画像を生成して、端末装置20に送信する。
【0062】
図16は、基準位置よりも顔を後ろにずらした場合のアバター40の移動制御の結果の一例を示す図である。図16に示すように、アバター40は、アバター座標軸vyの-(マイナス)方向に移動する。すなわち、ユーザ30がカメラ21から顔を遠ざけると、アバター40は、後退する。
【0063】
(ステップS200)制御部13は、アバター40の移動制御を終了するか否かを判定する。制御部13は、アバター40の移動制御を終了しないと判定した場合(ステップS200;NO)には、処理をステップS110に戻す。制御部13は、アバター40の移動制御を終了すると判定した場合(ステップS200;YES)には、一連のアバター40の移動制御処理を終了する。
【0064】
上述した一例において、移動制御部134は、初期設定情報が示す特徴点P間の基準長さ(基準特徴点間距離ともいう。例えば、距離L1。)と、姿勢情報が示す特徴点P間の距離(例えば、距離L1-1や距離L1-2)とに基づいて、アバター40の前後方向の移動を制御する。つまり、移動制御部134は、カメラ21とユーザ30の顔との距離に基づいて、仮想空間VS内におけるアバター40の前後方向の移動を制御する。
【0065】
上述のようにアバター制御システム1は、ユーザ30の顔をトラッキングすることでアバター40の移動を制御する。このように構成されたアバター制御システム1によれば、ユーザ30がコントローラを操作したり、操作を検出するヘッドセットをユーザ30に装着したりしなくても、ユーザ30の操作をアバター40の移動制御に反映させることができる。
【0066】
なお、姿勢情報取得部133は、カメラ21とユーザ30の顔との距離の大きさ、または当該距離の変化速度を検出してもよい。この場合、移動制御部134は、カメラ21とユーザ30の顔との距離の大きさ、または当該距離の変化速度に応じて、前後方向の移動速度または加速度を制御するように構成されていてもよい。
【0067】
また、姿勢情報取得部133は、カメラ21とユーザ30の顔との距離が近づくほど、アバター40の前進速度を速めてもよい。姿勢情報取得部133は、カメラ21とユーザ30の顔との距離が遠ざかるほど、アバター40の後退速度を速めてもよい。
姿勢情報取得部133は、カメラ21とユーザ30の顔との距離の変化に基づいて、アバター40の移動速度を連続的に変化させてもよい。また、姿勢情報取得部133は、カメラ21とユーザ30の顔との距離を複数の所定範囲に区切り、カメラ21とユーザ30の顔との距離に応じて、アバター40の移動速度を段階的に変化させてもよい。
【0068】
また、上述した一例では、カメラ21とユーザ30との距離が小さくなるとアバター40が前進し、カメラ21とユーザ30との距離が大きくなるとアバター40が後退するとして説明したが、これに限られない。制御装置10は、例えば、カメラ21とユーザ30との距離が小さくなるとアバター40を後退させ、カメラ21とユーザ30との距離が大きくなるとアバター40を前進させてもよい。
また、表示部22に表示されるアバター40の画像の視点が、アバター40から見た画像(いわゆる一人称視点)の場合と、アバター40を俯瞰した画像(いわゆる三人称視点)の場合とがある。この場合、制御装置10は、一人称視点の場合には、カメラ21とユーザ30との距離が小さくなるとアバター40を前進させ、三人称視点の場合には、カメラ21とユーザ30との距離が小さくなるとアバター40を後退させる、というように、表示部22に表示されている仮想空間VSのアバター40の画像の視点に基づいて操作方向を切り替えてもよい。
また、複数のユーザ30が仮想空間VSを利用している場合、第1ユーザ(ユーザ30-1)の操作によってアバター40-1が移動する様子を、他のユーザ30(例えば、第2ユーザ(ユーザ30-2)…第nユーザ(ユーザ30-n))が視認する仮想空間VS内の画像に反映させてもよい。
【0069】
[操作の変形例]
これまで、ユーザ30の顔の前後方向の動きに基づいて、アバター40の前後方向の移動を制御する場合について説明したが、これに限られない。図17から図32を参照して、アバター40の操作の変形例について説明する。
【0070】
[回転移動]
制御装置10は、ユーザ30の顔の実空間座標軸z周りの回転に応じて、アバター座標軸vz周りのアバター40の向きを制御してもよい。
【0071】
図17は、基準位置にいるユーザ30とカメラ21との相対的な位置関係の一例を示す図である。
図18は、基準位置にいるユーザ30をカメラ21が撮影した撮影画像50の一例を示す図である。撮影画像50には、ユーザ30の顔の特徴点P11(右目)と特徴点P12(左目)とが撮影されている。ユーザ30が基準位置にいる場合、特徴点P11と特徴点P12との間の距離は、距離L1(つまり、基準特徴点間距離)である。
図19は、ユーザ30が基準位置にいる場合のアバター40の移動制御の結果の一例を示す図である。ユーザ30が基準位置にいる場合、仮想空間VS内におけるアバター40は、正面(例えば、アバター座標軸vyの+(プラス)方向)を向いている。
【0072】
図20は、左方向に頭を回転させた場合のユーザ30とカメラ21との相対的な位置関係の一例を示す図である。
図21は、左方向に頭を回転させたユーザ30をカメラ21が撮影した撮影画像50の一例を示す図である。撮影画像50には、ユーザ30の顔の特徴点P11(右目)と特徴点P12(左目)とが撮影されている。ユーザ30が左方向に(つまり、実空間座標軸zを上から見込んだ場合の反時計周りに)頭を回転させた場合、カメラ21の画角内の特徴点P11と特徴点P12との間の距離が、距離L1-3になる。距離L1-3は、図18に示した距離L1(すなわち、基準距離)よりも小さい。つまり、ユーザ30の頭が実空間座標軸z周りに回転すると、特徴点P11と特徴点P12との間の距離が小さくなる。
【0073】
姿勢情報取得部133は、特徴点P11と特徴点P12との間の距離が小さくなったことを検出すると、ユーザ30の頭が回転したと判定する。
なお、姿勢情報取得部133は、他の特徴点P(例えば、左右の頬骨、あご先)の位置の変化を組み合わせて、ユーザ30の頭の回転方向を判定してもよい。
【0074】
図22は、左方向に頭を回転させた場合のアバター40の移動制御の結果の一例を示す図である。移動制御部134は、アバター座標軸vzを上から見込んだ場合の反時計周りに、アバター40の方向を変更する。すなわち、ユーザ30が頭を左方向に回転させると、アバター40も左方向に回転する。
【0075】
ここまで、ユーザ30が左方向に頭を回転させた場合の制御例について説明した。制御装置10は、ユーザ30が右方向に頭を回転させた場合も同様にしてアバター40を制御する。
【0076】
図23は、右方向に頭を回転させた場合のユーザ30とカメラ21との相対的な位置関係の一例を示す図である。
図24は、右方向に頭を回転させたユーザ30をカメラ21が撮影した撮影画像50の一例を示す図である。ユーザ30が右方向に(つまり、実空間座標軸zを上から見込んだ場合の時計周りに)頭を回転させた場合、カメラ21の画角内の特徴点P11と特徴点P12との間の距離が、距離L1-4になる。距離L1-4は、図18に示した距離L1(すなわち、基準距離)よりも小さい。
図25は、右方向に頭を回転させた場合のアバター40の移動制御の結果の一例を示す図である。移動制御部134は、アバター座標軸vzを上から見込んだ場合の時計周りに、アバター40の方向を変更する。すなわち、ユーザ30が頭を右方向に回転させると、アバター40も右方向に回転する。
より具体的な制御手順は、左方向に頭を回転させた場合と同様であるので、説明を省略する。
【0077】
すなわち、移動制御部134は、カメラ21に対するユーザ30の顔の向きに基づいて、仮想空間VS内におけるアバター40の移動方向を制御する。
【0078】
[特徴点間距離の変化の大きさに基づく制御]
移動制御部134は、特徴点P間の距離の変化の大きさに基づいて制御を切り替えてもよい。
図26は、特徴点P間の距離の変化の大きさに基づく制御の切り替えの一例を示す図である。移動制御部134は、特徴点P間の距離の変化がしきい値th1未満(つまり、領域A1)の場合、あるいは、しきい値th2未満(つまり、領域A2)の場合には、ユーザ30の顔の向き(頭の向き)が変化したと判定する。また、移動制御部134は、特徴点P間の距離の変化がしきい値th1以上(つまり、領域B1)の場合、あるいは、しきい値th2以上(つまり、領域B2)の場合には、ユーザ30の顔とカメラ21との距離が変化したと判定する。
すなわち、移動制御部134は、特徴点P間の距離の変化がしきい値th未満である場合には、上述した回転移動の制御を行い、特徴点P間の距離の変化がしきい値th以上である場合には、上述した前後移動の制御を行う。
【0079】
[左右方向の移動操作]
ユーザ30が頭を左右に傾げる動作に基づいて、アバター40を左右方向に移動させる制御について説明する。姿勢情報取得部133は、撮影画像50の鉛直軸と、特徴点P間を結ぶ線分とがなす角度が所定範囲を超えた場合に、ユーザ30が頭を左右に傾げたことを検出する。
【0080】
図27は、右方向に頭を傾げたユーザ30をカメラ21が撮影した撮影画像50の一例を示す図である。姿勢情報取得部133は、ユーザ30が右方向に(つまり、実空間座標軸yを上から見込んだ場合の反時計周りに)頭を傾げたことを検出する。
図28は、右方向に頭を傾げた場合のアバター40の移動制御の結果の一例を示す図である。移動制御部134は、アバター40を右方向(つまり、アバター座標軸vxの+(プラス)方向)に移動させる。すなわち、ユーザ30が頭を右方向に頭を傾げると、アバター40も右方向に移動する。
【0081】
図29は、左方向に頭を傾げたユーザ30をカメラ21が撮影した撮影画像50の一例を示す図である。姿勢情報取得部133は、ユーザ30が左方向に(つまり、実空間座標軸yを上から見込んだ場合の時計周りに)頭を傾げたことを検出する。
図30は、左方向に頭を傾げた場合のアバター40の移動制御の結果の一例を示す図である。移動制御部134は、アバター40を左方向(つまり、アバター座標軸vxの-(マイナス)方向)に移動させる。すなわち、ユーザ30が頭を左方向に頭を傾げると、アバター40も左方向に移動する。
【0082】
すなわち、移動制御部134は、ユーザ30の顔の基準姿勢からの変位方向に基づいて、仮想空間VS内におけるアバター40の横方向の移動を制御する。
【0083】
[左右方向の移動操作(変形例)]
姿勢情報取得部133は、顔画像51の左右方向の位置が、撮影画像50の中心線CLから所定の距離離れた場合に、ユーザ30が左右に移動したことを検出する。
【0084】
図31は、左方向に移動したユーザ30をカメラ21が撮影した撮影画像50の一例を示す図である。姿勢情報取得部133は、ユーザ30が左方向(つまり、実空間座標軸xの-(マイナス)方向)に移動したことを検出する。この場合、移動制御部134は、アバター40を左方向(つまり、アバター座標軸vxの-(マイナス)方向)に移動させる。
【0085】
図32は、右方向に移動したユーザ30をカメラ21が撮影した撮影画像50の一例を示す図である。姿勢情報取得部133は、ユーザ30が右方向(つまり、実空間座標軸xの+(プラス)方向)に移動したことを検出する。この場合、移動制御部134は、アバター40を右方向(つまり、アバター座標軸vxの+(プラス)方向)に移動させる。
【0086】
以上説明したように、本実施形態のアバター制御システム1は、ユーザ30の頭や顔をトラッキングすることにより、ユーザ30の操作意思を検出する。本実施形態のアバター制御システム1によれば、装着型の操作検出装置や、手持ちのコントローラなどを使用しなくても、仮想空間VS内のアバター40の移動を制御できる。
したがって、本実施形態のアバター制御システム1によれば、メタバース(仮想空間)内のアバターを操作する利用者の煩わしさを低減させることができる。
【0087】
なお、上述した実施形態におけるアバター制御システム1を構成する制御装置10(アバター制御装置)と端末装置20との機能の切り分けは一例であって、図1に示した例に限られない。例えば、制御装置10が、初期設定情報取得部132と、姿勢情報取得部133と、移動制御部134とを備えるとして説明したが、これに限られない。端末装置20が、初期設定情報取得部132、姿勢情報取得部133および移動制御部134に相当する機能を備えていてもよい。
【0088】
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能であり、また、上述した各実施形態を適宜組み合わせてもよい。
【0089】
なお、上述した実施形態におけるアバター制御システム1の各部の機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウエアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶部のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【符号の説明】
【0090】
1…アバター制御システム、10…制御装置、13…制御部、20…端末装置、30…ユーザ、40…アバター、131…画像取得部、132…初期設定情報取得部、133…姿勢情報取得部、134…移動制御部、135…画像生成部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32