JP6569452B2 - 画像生成システム、画像生成プログラム及び画像生成方法 - Google Patents

画像生成システム、画像生成プログラム及び画像生成方法 Download PDF

Info

Publication number
JP6569452B2
JP6569452B2 JP2015200553A JP2015200553A JP6569452B2 JP 6569452 B2 JP6569452 B2 JP 6569452B2 JP 2015200553 A JP2015200553 A JP 2015200553A JP 2015200553 A JP2015200553 A JP 2015200553A JP 6569452 B2 JP6569452 B2 JP 6569452B2
Authority
JP
Japan
Prior art keywords
avatar
determined
data
unit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015200553A
Other languages
English (en)
Other versions
JP2017073042A (ja
Inventor
尚子 林田
尚子 林田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015200553A priority Critical patent/JP6569452B2/ja
Priority to US15/286,089 priority patent/US10019828B2/en
Publication of JP2017073042A publication Critical patent/JP2017073042A/ja
Application granted granted Critical
Publication of JP6569452B2 publication Critical patent/JP6569452B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/58Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/157Conference systems defining a virtual conference space and using avatars or agents
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Description

本発明は、画像生成システム、画像生成プログラム及び画像生成方法に関する。
実空間において複数の人間同士がコミュニケーションを行う場合、ある人の振る舞いに対して、他の人(例えば、コミュニケーションの相手の人)がどのような反応をしたかを認識し解析することは、お互いの人間関係を推測する上で重要である。
例えば、ある人の振る舞いに対する他の人の反応が、回避傾向なのか、接近傾向なのかを解析することで、当該他の人との人間関係(例えば、親密性等)が崩れかかっていないかを把握することができる。
一方で、互いに離間した場所にいる複数の人間同士がコミュニケーションを行う仮想空間においては、実空間における人の振る舞いをアバタの画像を介して表現することになる。このような場合、お互いの人間関係を仮想空間を介して的確に把握するためには、実空間における人間関係の推測と同様の推測が仮想空間においてもできるようにすることが望ましい。このため、実空間における人の「振る舞い」に関する情報を、仮想空間における「アバタの動き」に含めて表現することが望まれる。
特表2014−522018号公報
しかしながら、実空間における人の振る舞いに関する情報を仮想空間におけるアバタの動きに含めて表現できない場合もある、例えば、実空間における人の振る舞いをセンシングする深度センサが、人の体の一部の部位をセンシングできない場合等が挙げられる。具体的には、深度センサから見て人の手首から先が机の下に隠れてしまっているような場合等が挙げられる。このような場合、深度センサの深度データに基づいて実空間における人の振る舞いを仮想空間において表現するシステムでは、アバタ全体の画像を表現するために、隠れている部位についての位置や角度を推測して出力する。
例えば、隠れている部位が繋がっているはずの他の部位(手首から先が隠れている場合にあっては、手首と連結する肘や肩)の位置に基づいて、隠れている部位の位置や角度を推測して出力する。
ところが、このような推測方法は、他の部位の位置がわずかに変化しただけでも、推測結果に影響を与える。このため、実空間における人のわずかな姿勢の変化(肘や肩の位置のわずかな変化)が生じただけで、推測された手首の位置や角度が、不自然な程度に頻繁に動いているように出力されることもある。この結果、実空間における人は、太ももの上においた手首をほとんど動かしていないにも関わらず、仮想空間におけるアバタは、頻繁に手首を裏返したり、上下させたりしているように表現されることになる。
つまり、上記推測方法によれば、実空間における人は落ち着いて相手の話を聞いている状態であるにも関わらず、仮想空間におけるアバタはイライラと落ち着かない状態であるように表現されてしまうことになる。
このように、実空間における人の振る舞いと、アバタの画像を介して表現されるアバタの動きとの間で、他人に与える印象が変わるほどの乖離が生じると、仮想空間を介して互いの人間関係を把握することは困難になる。
一つの側面では、アバタを介して他人に与える印象と、アバタの元となっている人の実際の振る舞いにより他人に与える印象とのずれを抑止することを目的としている。
一態様によれば、画像生成システムは、人の振る舞いを仮想空間で表現するアバタに含まれる部位の情報を決定する際に、前記人の体の複数箇所を測定することで得られたデータを取得する収集手段と、前記アバタの部位に、信頼度が低いと判断される部位が含まれるか否かを判定する判定手段と、前記判定手段により、前記信頼度が低いと判断される部位が含まれると判定された場合に、前記人の印象を示す情報を記憶する記憶部を参照し、該信頼度が低いと判断される部位の情報を決定するための前記人の印象を示す情報を選定する選定手段と、前記信頼度が低いと判断される部位の情報を、選定された前記人の印象を示す情報に基づいて決定し、前記信頼度が低いと判断されなかった部位の情報を、前記収集手段が取得したデータに基づいて決定して、前記アバタの画像を生成する生成手段とを有することを特徴とする。
アバタを介して他人に与える印象と、アバタの元となっている人の実際の振る舞いにより他人に与える印象とのずれを抑止することができる。
画像生成システムの全体構成の一例を示す図である。 誤りやすさ閾値領域マップを説明するための図である。 実空間における人の振る舞いと仮想空間におけるアバタの動きとの関係を示す図である。 モデル候補の選定方法を説明するための図である。 サーバ装置のハードウェア構成の一例を示す図である。 クライアント装置のハードウェア構成の一例を示す図である。 クライアント装置の機能構成の一例を示す図である。 クライアント装置により実行されるセンサデータ送信処理のフローチャートである。 クライアント装置により実行される仮想空間再生処理のフローチャートである。 サーバ装置の機能構成の一例を示す第1の図である。 頭部姿勢データテーブルの一例を示す図である。 深度データファイルテーブルの一例を示す図である。 筋電位データテーブルの一例を示す図である。 アバタの動きの一例を示す図である。 アバタの動きの種類を判定するための定義情報を示した図である。 動きの種類判定ログテーブルの一例を示す図である。 モデル候補の一例を示す図である。 モデル候補選定処理の第1のフローチャートである。 アバタの各部位の誤りやすさ判定処理及びモデル候補読み出し処理のフローチャートである。 アバタ部位変位ログテーブルの一例を示す図である。 サーバ装置の機能構成の一例を示す第2の図である。 他のアバタに対する動きの種類を判定するための定義情報を示した図である。 他のアバタに対する動きの種類と傾向との関係を定義した定義情報の一例を示す図である。 他のアバタに対する動きの種類判定ログテーブルの一例を示す図である。 モデル候補選定処理の第2のフローチャートである。 モデル候補読み出し処理の第2のフローチャートである。 サーバ装置の機能構成の一例を示す第3の図である。 想定範囲情報の一例を示す図である。 モデル候補読み出し処理の第3のフローチャートである。 サーバ装置の機能構成の一例を示す第4の図である。 動きの種類判定ログ(時系列)テーブルの一例を示す図である。 モデル候補選定処理の第3のフローチャートである。 動きの種類判定ログ(時系列)テーブル更新処理のフローチャートである。 サーバ装置の機能構成の一例を示す第5の図である。 アバタの各部位間の連結状態を示した図である。 アバタ部位変位データの各部位の位置をグルーピングした様子を示す図である。 モデル候補選定処理の第4のフローチャートである。 モデル候補一次絞り込み処理の第1のフローチャートである。 モデル候補二次絞り込み処理の第1のフローチャートである。 サーバ装置の機能構成の一例を示す第6の図である。 コスト評価部により算出されるコストを説明するための図である。 モデル候補二次絞り込み処理の第2のフローチャートである。 サーバ装置の機能構成の一例を示す第7の図である。 モデル候補二次絞り込み処理の第3のフローチャートである。 サーバ装置の機能構成の一例を示す第8の図である。 モデル候補二次絞り込み処理の第4のフローチャートである。 他のアバタに対する動きの種類と傾向と優先度との関係を定義した定義情報の一例を示す図である。 モデル候補読み出し処理の第4のフローチャートである。 他のアバタに対する動きの種類と傾向と傾向が変わる可能性のある組み合わせとの関係を定義した定義情報の一例を示す図である。 モデル候補読み出し処理の第5のフローチャートである。
はじめに、各実施形態における画像生成システムを説明する際に用いる用語の定義について簡単に説明する。以下の各実施形態において説明する画像生成システムは、互いに離間した場所にいる複数の人間同士がコミュニケーションを行うための仮想空間を提供するシステムである。
当該画像生成システムは、コミュニケーションを行うための仮想空間を提供するために、実空間における「人の振る舞い」を、仮想空間における「アバタの動き」に変換する処理を行う。「アバタの動き」は、各タイムフレームにおける「アバタの画像」を連続的に表示することで表現される。ここでいう「人の振る舞い」は、ジェスチャとして知られる手を挙げる、首を傾ける等の定型化された振る舞いも含むが、必ずしも、人からジェスチャとして認識されるものでなくてもよい。
また、「アバタの画像」は、アバタの各部位の「部位情報」に基づいて生成される。アバタの各部位の「部位情報」は、実空間において人の振る舞いをセンシングすることで得たセンサデータを、仮想空間におけるアバタの各部位の状態(位置、角度等)を示す情報に変換することで得られる。なお、「部位情報」は、部位の種類を示す情報と、部位の状態を示す値(部位値)とを含む。
つまり、仮想空間における「アバタの動き」は、時刻の経過に伴う「アバタの画像」の変化(アバタの各部位の部位値の変化)として表現される。なお、以下の実施形態では、アバタの各部位がどのように動いたのかによってアバタの動きをラベル付けした情報(実空間において人がどのような振る舞いを行ったのかについてラベル付けした情報)を、「アバタの動きの種類」と称する。
また、実空間においては、同じ振る舞いであっても、他の人との関係によっては反対の意味を持つ(異なる社会的振る舞い(Social Behavior)であると判断される)場合がある。つまり、ここでいう社会的振る舞いとは、振る舞いの中でも他の人の社会的な存在に対して行われる振る舞いを指している。
例えば、人の振る舞いが、前進する振る舞いであったとした時に、前進した先に他の人がいる場合には、当該人の振る舞いは、他の人に近づくという社会的振る舞い(接近傾向を示す社会的振る舞い)ということができる。反対に、他の人が近くにいる状態で、前進する振る舞いを行った結果、当該他の人から遠ざかる場合には、当該人の振る舞いは、他の人から遠ざかる社会的振る舞い(回避傾向を示す社会的振る舞い)ということができる。同様に、例えば、人の振る舞いが、顔の向きを右方向に向ける振る舞いであったとした時に、右側に他の人がいる場合には、当該人の振る舞いは、他の人に顔を向ける社会的振る舞い(接近傾向を示す社会的振る舞い)ということができる。反対に、当該人の左側に他の人がいる状態で、顔の向きを右方向に向ける振る舞いを行った場合、当該人の振る舞いは、他の人から顔をそむける社会的振る舞い(回避傾向を示す社会的振る舞い)ということができる。
したがって、仮想空間における「アバタの動き」も、他のアバタとの関係によっては反対の意味を持つことになる。以下の実施形態では、「他のアバタに対する動き」が、実空間における人のどのような社会的振る舞いに相当するかを判定することを、「他のアバタに対する動きの種類」を判定する、と称する。
続いて、各実施形態における画像生成システムの処理の概要について説明する。以下の各実施形態における画像生成システムは、アバタの動きを介して他人に与える印象と、アバタの元となっている人の実際の振る舞いにより他人に与える印象とのずれが大きくなるような状況が発生した場合に、モデル候補に基づいてアバタの画像を生成する。つまり、その時点で取得されたセンサデータに基づいてアバタの画像を生成するのではなく、予め定められたモデル候補に基づいてアバタの画像を生成する。
なお、モデルとは、アバタの画像を生成するのに必要な部位情報の集合であり、アバタの全ての部位の部位情報の集合である。ただし、手のみのモデル、足のみのモデル、頭のみのモデル等、アバタの一部の部位の部位情報の集合であってもよい。なお、以下の各実施形態では、1体のモデルについて着目している場合には、"モデル"と表現する一方、多数のモデルについて着目している場合には、"モデル候補"と表現するものとする。
各実施形態における画像生成システムでは、モデル候補に基づいてアバタの画像を生成するにあたり、アバタの動きを介して他人に与える印象と、アバタの元となる人の実際の振る舞いにより他人に与える印象とのずれを抑止するように、モデル候補の選定を行う。そして、選定したモデル候補の中から決定した一のモデルに基づいてアバタを生成する。つまり、選定したモデル候補は、人の振る舞いの印象が反映されたアバタの画像を生成するための情報ということができる。以下の各実施形態では、アバタの生成に際して当該選定したモデル候補を用いることで、アバタを介して他人に与える印象と、アバタの元となっている人の実際の振る舞いにより他人に与える印象とのずれを抑止している。
以下、添付の図面を参照しながら、画像生成システムにおいてモデル候補を選定するまでの処理について様々なバリエーションを説明する。
なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
[第1の実施形態]
<画像生成システムの全体構成>
はじめに、画像生成システムについて説明する。図1は、画像生成システムの全体構成の一例を示す図である。図1に示すように、画像生成システム100は、サーバ装置110と、クライアント装置120、130とを有する。サーバ装置110と、クライアント装置120、130とは、インターネットやLAN(Local Area Network)等に代表されるネットワーク160を介して接続されている。
ユーザ140(ユーザ名="A")、ユーザ150(ユーザ名="B")は、互いに離間した場所にいて、画像生成システム100を利用する。これにより、ユーザ140とユーザ150とは同じ仮想空間において互いにコミュニケーションを行うことができる。
サーバ装置110には、画像生成プログラムの一例である仮想空間用情報提供プログラムがインストールされている。サーバ装置110は、当該プログラムを実行することで、第1の仮想空間用情報提供部111及び第2の仮想空間用情報提供部112として機能する。第1の仮想空間用情報提供部111は、ユーザ140とユーザ150とが互いにコミュニケーションを行うための仮想空間を提供する。
具体的には、第1の仮想空間用情報提供部111は、ユーザ140とユーザ150の実空間における「振る舞い(Behavior)」をセンサでセンシングしたセンサデータをクライアント装置から受信する。なお、本実施形態において、「振る舞い(Behavior)」をセンシングすることで得られるセンサデータには、体の姿勢を変える振る舞いや、顔の向きや表情を変える振る舞い、発話等をセンシングすることで得られるセンサデータが含まれるものする。ただし、センサデータはこれに限定されず、上記した振る舞い以外のユーザの挙動をセンシングすることで得られるセンサデータや、ユーザの視線をセンシングすることで得られるセンサデータ等が含まれていてもよい。
また、第1の仮想空間用情報提供部111は、受信したセンサデータをセンサデータ格納部114に格納する。
また、第1の仮想空間用情報提供部111は、受信したセンサデータに基づいて、仮想空間におけるアバタ(実空間における人の振る舞いを仮想空間で表現するアバタ)の各部位の部位情報を算出し、仮想空間におけるアバタの画像を生成する。
更に、第1の仮想空間用情報提供部111は、生成したアバタの画像を含む仮想空間の画像を、受信したセンサデータに含まれる音声データとともに仮想空間用情報として他のクライアント装置に提供する。
更に、第1の仮想空間用情報提供部111は、表示されたアバタの画像に含まれるアバタの各部位の部位情報を、アバタ部位変位データ(詳細は後述)としてログ格納部116のアバタ部位変位ログテーブルに格納する。表示されたアバタの画像には、クライアント装置に提供されクライアント装置上で表示されたアバタの画像と、クライアント装置上でセンサデータに基づいて生成され表示されたアバタの画像とが含まれる。なお、このようにしてログ格納部116に格納されたアバタ部位変位データは、以降、モデル候補として用いられる。
なお、第1の仮想空間用情報提供部111は、コンテンツ格納部113に格納された背景の画像の中から選択した画像を用いて、仮想空間の画像を生成する。また、第1の仮想空間用情報提供部111は、コンテンツ格納部113に格納された複数種類のアバタの中から選択した、ユーザ140、150それぞれに対応するアバタを用いてアバタの画像を生成し、生成したアバタの画像を用いて仮想空間の画像を生成する。
このように、第1の仮想空間用情報提供部111により提供される仮想空間用情報には、少なくとも以下のものが含まれる。
・仮想空間の画像に配置されたオブジェクト。
・仮想空間の画像に配置されたオブジェクトの属性(オブジェクトを構成する部位の部位情報、オブジェクトに割り当てられた音声データ等)。
なお、背景の画像とは、仮想空間の画像に配置されたオブジェクトのうち、属性に変化のないもの(背景として配置されるオブジェクト等)をいう。また、アバタの画像とは、仮想空間の画像に配置されたオブジェクトのうち、骨格(ボーン)や表皮・服相当(メッシュ)の基本的な構造の情報を有し、別途オブジェクトの属性(ボーンやメッシュの位置、角度、表示色、表示模様等)が変化するものをいう。
第2の仮想空間用情報提供部112は、センサデータ格納部114に格納されたセンサデータに基づいて、アバタにおける監視対象の部位の部位値を算出する。また、第2の仮想空間用情報提供部112は、監視対象の部位の部位値が所定量以上変化したか(監視対象の部位が所定量以上動いたか)を判定する。第2の仮想空間用情報提供部112は、監視対象の部位の部位値が所定量以上変化したと判定した場合に、アバタの動きの種類を判定し、判定した動きの種類をログ格納部116の「動きの種類判定ログテーブル」に格納する。
また、第2の仮想空間用情報提供部112は、実空間における人の振る舞いと、アバタの画像を介して表現されるアバタの動きとで、他人に与える印象にずれが生じるような状況が発生したか否か(「印象ずれ発生状況」か否か)を判定する。第2の仮想空間用情報提供部112は、例えば、仮想空間におけるアバタの部位の位置に対応する実空間の位置が、センサによる測定において、信頼度の高いセンサデータをセンシングできない位置の域(「誤りやすさ閾値領域」と称す)に含まれるか否かを判定する。第2の仮想空間用情報提供部112は、判定の結果、誤りやすさ閾値領域に含まれると判定した場合に、印象ずれ発生状況であると判断する。印象ずれ発生状況であると判断した場合、第2の仮想空間用情報提供部112は、過去に生成したアバタの各部位の部位情報であるアバタ部位変位データを「モデル候補」として複数読み出す。更に、第2の仮想空間用情報提供部112は、読み出した複数のモデル候補について選定を行い、選定したモデル候補を第1の仮想空間用情報提供部111に通知する。
なお、第2の仮想空間用情報提供部112は、アバタを介して他人に与える印象と、アバタの元となっている人の実際の振る舞いにより他人に与える印象とが大きくずれることがないようにモデル候補の選定を行う。
クライアント装置120には、情報処理プログラムがインストールされている。クライアント装置120は、当該プログラムを実行することで、情報処理部121として機能する。
また、クライアント装置120には、深度センサ122が接続されている。深度センサ122は、ユーザ140の前方に配置され、ユーザ140の三次元の位置を計測することで、ユーザ140の実空間における振る舞い(体の姿勢を変える振る舞いや、四肢を動かす振る舞い等)に応じて変化するデータである深度データを出力する。
更に、クライアント装置120は、ユーザ140に装着されたウェアラブル型の表示装置またはセンサとの間で、無線通信を行う。第1の実施形態においてウェアラブル型の表示装置には、HMD(Head-Mounted Display)123が含まれ、ユーザ140に対して仮想空間の画像を表示する。また、第1の実施形態においてウェアラブル型のセンサには、頭部姿勢センサ124、音声センサ125、筋電位センサ126が含まれる。
頭部姿勢センサ124は、ユーザ140の実空間における振る舞いに含まれる"顔の向き"に応じたデータである頭部姿勢データを出力する。音声センサ125は、ユーザ140の実空間における振る舞いに含まれる"発話"に応じたデータである音声データを出力する。筋電位センサ126は、ユーザ140の実空間における振る舞いに含まれる"表情の変化"に応じたデータである筋電位データを出力する。
HMD123、頭部姿勢センサ124、音声センサ125、筋電位センサ126は、ユーザ140の頭部に装着される。なお、頭部姿勢センサ124、音声センサ125、筋電位センサ126は、HMD123に内蔵されていてもよい。また、ウェアラブル型のセンサには、上記した振る舞い以外のユーザ140の挙動に応じたデータを出力するセンサが含まれていてもよい。また、ウェアラブル型のセンサには、ユーザ140の視線に応じたデータを出力するセンサが含まれていてもよい。
クライアント装置120は、深度データ、頭部姿勢データ、音声データ、筋電位データ等のセンサデータを取得し、サーバ装置110に送信する。また、クライアント装置120は、サーバ装置110より送信された仮想空間用情報を受信し、受信した仮想空間用情報と、取得したセンサデータとに基づいて、ユーザ140から見た場合の仮想空間の画像(以下、"視野画像"と称す)を生成する。更に、クライアント装置120は、生成した視野画像と、仮想空間用情報に含まれる音声データとをHMD123に送信する。これにより、ユーザ140は、仮想空間の画像を視認することができるとともに、実空間において他のユーザ150が発した音声を仮想空間を介して視聴することができる。
なお、クライアント装置130が有する機能、クライアント装置130に接続される表示装置及びセンサ等は、クライアント装置120と同様であるため、ここでは説明を省略する。
<実空間内における位置と仮想空間内における位置との関係>
次に、実空間内における位置と仮想空間内における位置との関係について説明する。実空間における位置を示す座標と、仮想空間における位置を示す座標とは、互いに異なる座標系により管理されており、予め定められた座標変換関数を用いて相互に変換される。
仮想空間におけるアバタの画像の各部位の位置と、実空間における位置とを対応付けるために、画像生成システム100では、例えば、仮想空間におけるアバタの画像の代表的な1点(腰の位置等)と、実空間におけるユーザの代表的な1点とを対応付けておく。
これにより、対応付けた1点からの相対距離に基づいて、アバタの各部位が、実空間におけるどの位置に対応するのかを求めることができる。
<誤りやすさ閾値領域マップの説明>
次に、第2の仮想空間用情報提供部112が印象ずれ発生状況か否かを判断する際に用いる、誤りやすさ閾値領域を示すマップについて説明する。誤りやすさ閾値領域は、センサが設置されているそれぞれの環境ごと、及び、センサの種類ごとに予め規定されている。ここでは、説明の簡略化のため、ユーザ140を測定対象として設置された深度センサ122の誤りやすさ閾値領域を示すマップについて説明する。そこで、まず、深度センサ122により取得されるデータについて簡単に説明する。
深度センサにより取得されるデータには一般に複数種類(深度画像データ、カラー画像データ、赤外線画像データ等)あり、いずれのデータが取得されるかは、深度センサの種類によって異なる。いずれの種類のデータが取得されるかによって、二次元のxy平面における各ピクセルの情報が異なってくる。深度画像データの場合、各ピクセルの情報は、深度センサからの距離値となる。また、カラー画像データの場合、各ピクセルの情報は、RGB値となり、赤外線画像データの場合、各ピクセルの情報は、グレースケール値となる。
なお、深度センサにより取得されるデータはこれに限定されず、二次元のxy平面における各ピクセルの情報を処理することで取得される、二次元xy平面のどのピクセル位置にユーザ140が存在するかを示す情報であってもよい。あるいは、どのピクセル位置にユーザ140の顔部が存在するかを示す情報であってもよい。ただし、第1の実施形態における深度データには、深度画像データとカラー画像データとが少なくとも含まれるものとして説明する。
図2は、深度センサの誤りやすさ閾値領域を示すマップを説明するための図である。図2(a)において、実空間200には、ユーザ140を撮影する深度センサ122が配置されており(図2(a)において不図示)、紙面手前から紙面奥側に向かって撮影を行っているものとする。
このため、深度センサ122の設置位置から見て奥行き方向(z軸方向)における矢印211で示す範囲は、深度センサ122による測定において信頼度の高いデータをセンシングできない領域となる。つまり、矢印211で示す範囲に含まれる二次元xy平面は、二次元xy平面内の全領域において誤りやすさが閾値を超えることになる。このため、当該二次元xy平面の場合、全領域が誤りやすさ閾値領域となる。
また、深度センサ122の設置位置から見て奥行き方向(z軸方向)における矢印212で示す範囲は、深度センサ122による測定において信頼度の高いデータをセンシングできな領域となる。つまり、矢印212で示す範囲に含まれる二次元xy平面も、二次元xy平面内の全領域が、誤りやすさ閾値領域となる。
一方、深度センサ122の設置位置から見て奥行き方向(z軸方向)におけるD0〜D2の範囲は、深度センサ122の撮影範囲の一部を遮蔽する机201により、机201の反対側の領域の一部が遮蔽される範囲である。つまり、z軸方向における各位置D0、D1、D2における二次元xy平面の場合、一部の領域が誤りやすさ閾値領域となる。
図2(b)は、奥行き方向(z軸方向)の位置(D1)における誤りやすさ閾値領域マップの一例を示している。また、図2(c)は、奥行き方向(z軸方向)の位置(D2)における誤りやすさ閾値領域マップの一例を示している。誤りやすさ閾値領域マップ221、222において、ハッチングされた領域は、奥行き方向の位置D1及び位置D2それぞれの二次元xy平面において、誤りやすさが閾値を超えている誤りやすさ閾値領域を示している。
第2の仮想空間用情報提供部112は、仮想空間におけるアバタの画像の各部位の位置に対応する実空間200での位置が、誤りやすさ閾値領域マップにおいてハッチングされた誤りやすさ閾値領域に含まれているか否かを判定する。そして、第2の仮想空間用情報提供部112は、含まれていると判定した場合に、印象ずれ発生状況であると判断する。
なお、ここでは、深度センサ122の誤りやすさ閾値領域を示すマップについて説明したが、例えば、筋電位センサ126や頭部姿勢センサ124の誤りやすさ閾値領域を示すマップについても同様である。
また、誤りやすさ閾値領域マップは、センサデータにあわせて更新するようにしてもよい。誤りやすさ閾値領域マップの更新とは、誤りやすさが閾値を超える領域を、状況にあわせて変えることをいう。
例えば、筋電位センサ126によりセンシングされる筋電位データの場合には、ユーザ140の性質等に応じて、誤りやすさが閾値を超える範囲を変えるようにしてもよい。また、頭部姿勢センサ124により取得される頭部姿勢データの場合には、ユーザ140の頭部の可動範囲を元に誤りやすさが閾値を超える範囲を変えるようにしてもよい。
<実空間における人の振る舞いと仮想空間におけるアバタの動きとの関係>
次に、実空間における人(ユーザ140、150)の振る舞いと、仮想空間におけるアバタの動きとの関係について説明する。図3は、実空間における人の振る舞いと仮想空間におけるアバタの動きとの関係を示す図である。
図3に示すように、ユーザ140が装着するHMD123には、ユーザ150のアバタ350が仮想空間300において振る舞う視野画像301が表示される。図3の例では、実空間においてユーザ150が直立の状態を維持しているため、仮想空間300においてもアバタ350は直立の状態を維持することとなる。なお、ユーザ140のHMD123に表示された視野画像には、ユーザ140自身のアバタの一部(手等)が表示されていないが、ユーザ140自身のアバタの一部(手等)が表示されてもよい。
一方、ユーザ150が装着するHMD133には、ユーザ140のアバタ340が仮想空間300において振る舞う視野画像302が表示される。図3に示すように、実空間においてユーザ140は椅子に着座した状態を維持しているため、仮想空間300においてもアバタ340は着座した状態を維持することとなる。なお、ユーザ150のHMD133に表示された視野画像には、ユーザ150自身のアバタの一部(手等)が表示されていないが、ユーザ150自身のアバタの一部(手等)が表示されてもよい。
ここで、視野画像302におけるアバタ340は、ユーザ140の振る舞いをセンシングすることで得たセンサデータに基づいて、第1の仮想空間用情報提供部111が各部位の部位情報を算出したものである。視野画像302のアバタ340の場合、ユーザ140の姿勢がわずかに変化したり、肘や肩の位置がわずかに変化するだけで、肘から先が不自然な程度に頻繁に動いたり、肘から先が実際とは異なる位置に表示されたりする。このため、ユーザ140は実際には落ち着いて着座している状態にあるにもかかわらず、視野画像302におけるアバタ340は、例えばイライラと落ち着かない状態で着座しているように表現される。
これに対して、視野画像303のアバタ340は、ユーザ140の振る舞いをセンシングすることで得たセンサデータに基づいて、第2の仮想空間用情報提供部112が、モデル候補を決定して各部位の部位情報を算出したものである。第2の仮想空間用情報提供部112の場合、実空間におけるユーザ140の振る舞いと、アバタ340の動きとで、他人に与える印象が大きくずれることがないようにモデル候補の選択を行い、アバタ340の画像を生成している。このため、視野画像303におけるアバタ340は、実空間におけるユーザ140の振る舞いと同様に、落ち着いて着座している状態が表現されることになる。
<モデル候補の選定方法>
次に、印象ずれ発生状況になった場合に、実空間におけるユーザ140の振る舞いと、アバタ340の動きとで、他人に与える印象が変わることがないようにモデル候補を選定する選定方法について説明する。図4は、モデル候補の選定方法を説明するための図である。
図4に示すように、第2の仮想空間用情報提供部112は、センサデータ(深度データ、頭部姿勢データ、筋電位データ)を取得すると、アバタの監視対象の部位の部位情報を算出する。また、第2の仮想空間用情報提供部112は、監視対象の部位の部位情報に基づいて、監視対象の部位が所定量以上動いたかを判定する。更に、第2の仮想空間用情報提供部112は、監視対象の部位が所定量以上動いたと判定した場合に、動きの種類を判定し、「動きの種類判定ログテーブル」を更新する。
また、第2の仮想空間用情報提供部112は、動きの種類判定ログテーブルを更新すると、印象ずれ発生状況になっていないかを判定し、印象ずれ発生状況になっていると判定した場合に、図4の点線400で示す処理を実行する。
図4の点線400に示すように、第2の仮想空間用情報提供部112は、深度センサ122から取得したカラー画像データに基づいて、実空間における印象評価値を算出する。印象評価値とは、人の印象を評価した値である。人の状態を数値として表現する場合に一般に用いられる方法の一つとしてVADと呼ばれる3つの軸で表現する表現方法がある。VADの各軸は、感情価(Valence)、覚醒(Arousal)、支配(Dominance)である。ただし、第1の実施形態では、感情価(Valence)と覚醒(Arousal)の2軸のみ(感情価(Valence)のプラス側を"positive"、マイナス側を"negative"、覚醒(Arousal)のプラス側を"active"、マイナス側を"passive"とする2軸平面)を用いて表現するものとする。
印象評価値の算出方法は任意であり、例えば、頭部姿勢データの変化量に基づいて、Arousal値/Valence値を算出してもよい。具体的には、変化量が多く前傾に近いほどArousal値/Valence値が高く、変化量が小さく後傾に近いほどArousal値/Valence値が低くなるAPI(Application Programming Interface)を用いて算出してもよい。
あるいは、深度データに含まれるカラー画像データを用いてArousal値/Valence値を算出してもよい。具体的には、活発で明るい印象を与える表情ほどArousal値/Valence値が高く、物静かで暗い印象を与える表情ほどArousal値/Valence値が低くなるAPIを用いて算出してもよい。
また、第2の仮想空間用情報提供部112は、ログ格納部116に既に格納されているアバタ部位変位データのうち、今回判定した動きの種類に応じたアバタ部位変位データを、モデル候補として読み出す。なお、ログ格納部116に既に格納されているアバタ部位変位データとは、サーバ装置110の第1の仮想空間用情報提供部111が、過去に、センサデータに基づいて生成したアバタの各部位の部位情報である。
第2の仮想空間用情報提供部112は、読み出したモデル候補それぞれについて、仮想空間における印象評価値を算出する。
第2の仮想空間用情報提供部112は、実空間における印象評価値と、仮想空間における印象評価値とを比較する。また、第2の仮想空間用情報提供部112は、実空間における印象評価値に近い仮想空間における印象評価値が算出されたモデル候補を、アバタの画像の生成に用いるモデル候補として選定する。なお、サーバ装置110では、最終的に1のモデルを決定してアバタの画像を生成する。
このように、画像生成システム100では、実空間における人の振る舞いを反映させたアバタの画像を生成するにあたり、印象ずれ発生状況にある場合には、第2の仮想空間用情報提供部112が、印象評価値に基づいてモデル候補を選定する。この結果、画像生成システム100によれば、印象ずれ発生状況であっても、アバタの動きを介して他人に与える印象と、アバタの元になっている人の振る舞いにより他人に与える印象とのずれを抑止することができる。
<サーバ装置のハードウェア構成>
次に、サーバ装置110のハードウェア構成について説明する。図5は、サーバ装置のハードウェア構成の一例を示す図である。図5に示すように、サーバ装置110は、CPU501、ROM(Read Only Memory)502、RAM(Random Access Memory)503を備える。また、サーバ装置110は、補助記憶部504、通信部505、表示部506、操作部507、ドライブ部508を備える。なお、サーバ装置110の各部は、バス509を介して相互に接続されている。
CPU501は、補助記憶部504にインストールされた各種プログラム(例えば、仮想空間用情報提供プログラム)を実行するコンピュータである。ROM502は、不揮発性メモリである。ROM502は、補助記憶部504に格納された各種プログラムをCPU501が実行するために必要な各種プログラム、データ等を格納する主記憶部として機能する。具体的には、ROM502はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を格納する。
RAM503は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリであり、主記憶部として機能する。RAM503は、補助記憶部504に格納された各種プログラムがCPU501によって実行される際に展開される、作業領域を提供する。
補助記憶部504は、サーバ装置110にインストールされた各種プログラムや、各種プログラムを実行する際に用いる情報(仮想空間の画像の生成に用いる画像(背景の画像、アバタの画像)、定義情報等)を格納する。また、補助記憶部504は、各種プログラムを実行することで取得される情報(センサデータ、各種ログテーブル等)を格納する。
通信部505は、サーバ装置110に接続するクライアント装置120、130と通信するためのデバイスである。表示部506は、サーバ装置110の処理結果や処理状態を表示する。操作部507は、サーバ装置110に対して各種指示を入力する際に用いられる。
ドライブ部508は記録媒体510をセットするためのデバイスである。ここでいう記録媒体510には、CD−ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体510には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等も含まれる。
なお、補助記憶部504に格納される各種プログラムは、例えば、配布された記録媒体510がドライブ部508にセットされ、記録媒体510に記録された各種プログラムがドライブ部508により読み出されることで格納されるものとする。あるいは、通信部505を介してネットワーク160より受信することで格納されてもよい。
<クライアント装置のハードウェア構成>
次に、クライアント装置120、130のハードウェア構成について説明する。図6は、クライアント装置のハードウェア構成の一例を示す図である。図6に示すように、クライアント装置120、130は、CPU601、ROM(Read Only Memory)602、RAM(Random Access Memory)603を備える。また、クライアント装置120、130は、補助記憶部604、通信部605、操作部606、表示部607、音声データ転送部608、音声データ取得部609を備える。更に、クライアント装置120、130は、頭部姿勢データ取得部610、深度データ取得部611、筋電位データ取得部612を備える。なお、これらの各部は、バス613を介して相互に接続されている。
CPU601は、補助記憶部604にインストールされた各種プログラム(例えば、情報処理プログラム)を実行するコンピュータである。ROM602は、不揮発性メモリである。ROM602は、補助記憶部604に格納された各種プログラムをCPU601が実行するために必要な各種プログラム、データ等を格納する主記憶部として機能する。具体的には、ROM602はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を格納する。
RAM603は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリであり、主記憶部として機能する。RAM603は、補助記憶部604に格納された各種プログラムがCPU601によって実行される際に展開される、作業領域を提供する。
補助記憶部604は、インストールされた各種プログラムや、各種プログラムを実行する際に用いる情報を格納する。
通信部605は、クライアント装置120、130が接続するサーバ装置110と通信するためのデバイスである。操作部606は、クライアント装置120、130に対して各種指示を入力する際に用いられる。表示部607は、クライアント装置120、130の処理結果や処理状態を表示する。
音声データ転送部608は、サーバ装置110より送信される仮想空間用情報に含まれる音声データを抽出し、HMD123(またはHMD133)に送信する。これにより、HMD123(またはHMD133)が有するスピーカにおいて、音声データが出力される。
音声データ取得部609は、音声センサ125(または音声センサ135)より送信された音声データを取得する。頭部姿勢データ取得部610は、頭部姿勢センサ124(または頭部姿勢センサ134)より送信された頭部姿勢データを取得する。深度データ取得部611は、深度センサ122(または深度センサ132)より送信された深度データを取得する。筋電位データ取得部612は、筋電位センサ126(または筋電位センサ136)より送信された筋電位データを取得する。
なお、取得された音声データ、頭部姿勢データ、深度データ、筋電位データ等のセンサデータは、通信部605によりサーバ装置110に送信される。
<クライアント装置の機能構成>
次に、クライアント装置120、130の情報処理部121、131の機能構成について説明する。図7は、クライアント装置の機能構成の一例を示す図である。図7に示すように、クライアント装置120、130の情報処理部121、131は、仮想空間用情報取得部701、センサデータ取得部702、センサデータ送信部703、視野画像生成部704、視野画像表示制御部705、音声出力制御部706を有する。
仮想空間用情報取得部701は、サーバ装置110より送信される仮想空間用情報を取得し、視野画像生成部704及び音声出力制御部706に通知する。
センサデータ取得部702は、頭部姿勢データ取得部610において取得された頭部姿勢データを、時刻情報と対応付けて取得する。また、センサデータ取得部702は、深度データ取得部611において取得された深度データを、時刻情報と対応付けて取得する。更に、センサデータ取得部702は、筋電位データ取得部612において取得された筋電位データ、音声データ取得部609において取得された音声データを、それぞれの時刻情報と対応付けて取得する。
センサデータ取得部702は、取得した頭部姿勢データと深度データとを、視野画像生成部704に通知する。また、取得した頭部姿勢データと深度データと筋電位データと音声データとを、それぞれ時刻情報と対応付けて、センサデータとして、センサデータ送信部703に通知する。
センサデータ送信部703は、センサデータ取得部702より通知されたセンサデータをサーバ装置110に送信する。センサデータ送信部703は、センサデータが取得されたユーザのユーザ名や、センサデータを取得したクライアント装置を識別するための識別子(クライアント装置ID)等をセンサデータと対応付けて、サーバ装置110に送信する。
視野画像生成部704は、センサデータ取得部702より通知された頭部姿勢データ及び深度データに基づいて、仮想空間用情報に含まれる仮想空間の画像に対する、ユーザ140(またはユーザ150)の視野画像を生成する。
視野画像表示制御部705は、視野画像生成部704により生成された視野画像を、HMD123(またはHMD133)に表示するよう制御する。
音声出力制御部706は、仮想空間用情報に含まれる音声データを抽出し、HMD123(またはHMD133)が有するスピーカにおいて出力されるよう制御する。
<クライアント装置により実行されるセンサデータ送信処理>
次に、クライアント装置120により実行されるセンサデータ送信処理の流れについて説明する。図8は、クライアント装置により実行されるセンサデータ送信処理のフローチャートである。
ステップS801において、センサデータ取得部702は、頭部姿勢データ取得部610により取得された頭部姿勢データを取得し、時刻情報と対応付けてセンサデータ送信部703に通知する。
ステップS802において、センサデータ取得部702は、深度データ取得部611により取得された深度データを取得し、時刻情報と対応付けてセンサデータ送信部703に通知する。
ステップS803において、センサデータ取得部702は、筋電位データ取得部612により取得された筋電位データを取得し、時刻情報と対応付けてセンサデータ送信部703に通知する。
ステップS804において、センサデータ取得部702は、音声データ取得部609により取得された音声データを取得し、時刻情報と対応付けてセンサデータ送信部703に通知する。なお、ステップS801からS804における各処理の順序については、これらに限定されるものではなく、他の順序で行っても、あるいは、並行して行っても、別々のタイミングで開始・終了してもよい。
ステップS805において、センサデータ送信部703は、センサデータ取得部702より通知されたセンサデータを、ユーザ名、クライアント装置ID等と対応付けて、センサデータとしてサーバ装置110に送信する。
ステップS806において、センサデータ取得部702は、センサデータ送信処理を終了するか否かを判定する。センサデータ送信処理を終了しないと判定した場合には(ステップS806においてNo)、ステップS801に戻り、センサデータ送信処理を継続する。一方、終了すると判定した場合には(ステップS806においてYes)、センサデータ送信処理を終了する。
<クライアント装置により実行される仮想空間再生処理>
次に、クライアント装置により実行される仮想空間再生処理の流れについて説明する。クライアント装置120、130により実行される仮想空間再生処理はいずれも同様の処理であるため、ここでは、クライアント装置120により実行される仮想空間再生処理について説明する。図9は、クライアント装置により実行される仮想空間再生処理のフローチャートである。
ステップS901において、仮想空間用情報取得部701は、サーバ装置110より送信される仮想空間用情報を新たに取得したか否かを判定する。ステップS901において、仮想空間用情報を新たに取得していないと判定した場合には、ステップS904に進む。一方、ステップS901において、仮想空間用情報を新たに取得したと判定した場合には、ステップS902に進む。
ステップS902において、仮想空間用情報取得部701は、新たに取得した仮想空間用情報を用いて、現在保持している仮想空間用情報を更新する。
ステップS903において、音声出力制御部706は、更新された仮想空間用情報に含まれる音声データを取得し、音声データ転送部608を介してHMD123に出力する。
ステップS904において、センサデータ取得部702は、頭部姿勢データ取得部610において取得された頭部姿勢データ及び深度データ取得部611において取得された深度データを取得する。
ステップS905において、視野画像生成部704は、ステップS904において取得された頭部姿勢データ及び深度データに基づいて、更新された仮想空間用情報に含まれる仮想空間の画像に対するユーザ140の視野画像を生成する。
ステップS906において、視野画像表示制御部705は、ステップS905において生成された視野画像を、HMD123に表示するよう制御する。
ステップS907において、仮想空間用情報取得部701は、仮想空間再生処理の終了指示の有無を判定する。ステップS907において、仮想空間再生処理の終了指示がないと判定した場合には(ステップS907においてNo)、ステップS901に戻る。一方、ステップS907において、仮想空間再生処理の終了指示が入力されたと判定した場合には(ステップS907においてYes)、仮想空間再生処理を終了する。
<サーバ装置の機能構成>
次に、サーバ装置110の機能構成(第1の仮想空間用情報提供部111、第2の仮想空間用情報提供部112)について説明する。図10は、サーバ装置の機能構成の一例を示す第1の図である。
図10に示すように、サーバ装置110の第1の仮想空間用情報提供部111は、センサデータ収集部1001、仮想空間用情報生成部1002、仮想空間用情報送信部1003を有する。
センサデータ収集部1001は、クライアント装置120、130それぞれより送信されるセンサデータを収集し、センサデータ格納部114に格納する。
仮想空間用情報生成部1002は、センサデータ収集部1001により収集されたセンサデータに基づいてアバタの各部位の部位情報を算出し、アバタの画像を生成する。また、仮想空間用情報生成部1002は、生成したアバタの画像を含む仮想空間用情報を生成する。なお、仮想空間用情報生成部1002は、アバタの画像の生成において算出した、アバタの各部位の部位情報であるアバタ部位変位データを、モデル候補として、ログ格納部116に格納する。
仮想空間用情報送信部1003は、仮想空間用情報生成部1002により生成された仮想空間用情報を、仮想空間用情報の更新に用いたセンサデータを送信した送信元のクライアント装置以外のクライアント装置に送信する。仮想空間用情報送信部1003は、クライアント装置120により送信されたセンサデータに基づいてアバタの画像が生成されて仮想空間用情報が更新された場合には、更新された仮想空間用情報をクライアント装置130に送信する。また、仮想空間用情報送信部1003は、クライアント装置130により送信されたセンサデータに基づいてアバタの画像が生成されて仮想空間用情報が更新された場合には、更新された仮想空間用情報をクライアント装置120に送信する。
また、図10に示すように、サーバ装置110の第2の仮想空間用情報提供部112は、センサデータ読み出し部1011、動き(変化)判定部1012、誤りやすさ判定部1013を有する。更に、第2の仮想空間用情報提供部112は、モデル候補読み出し部1014、印象評価値(実空間)算出部1015、印象評価値(仮想空間)算出部1016、モデル候補選定部1017を有する。
センサデータ読み出し部1011は、センサデータ格納部114に所定量のセンサデータが蓄積された場合に、当該所定量のセンサデータを読み出す。あるいは、センサデータ読み出し部1011は、所定時間ごとに、センサデータ格納部114に蓄積された所定時間分のセンサデータを読み出す。
動き(変化)判定部1012は、センサデータ読み出し部1011により読み出されたセンサデータに基づいて、仮想空間におけるアバタの監視対象の部位の部位情報を算出する。また、動き(変化)判定部1012は、監視対象の部位の部位情報に含まれる部位値が所定量以上変化したか否かを判定し、所定量以上変化したと判定した場合には、監視対象の部位の動きの種類を判定する。更に、動き(変化)判定部1012は、判定した動きの種類をログ格納部116の「動きの種類判定ログテーブル」に格納する。
誤りやすさ判定部1013は、動き(変化)判定部1012により動きの種類が判定された場合に、誤りやすさ閾値領域マップを参照し、印象ずれ発生状況であるか否かを判断する。例えば、誤りやすさ判定部1013は、動き(変化)判定部1012により算出されたアバタの各部位の部位情報により、仮想空間におけるアバタの各部位の位置を特定する。また、誤りやすさ判定部1013は、特定した位置に対応する実空間の位置が、誤りやすさ閾値領域マップにおける誤りやすさ閾値領域に含まれるか否かを判定する。誤りやすさ判定部1013は、含まれると判定した場合には、印象ずれ発生状況であると判断し、含まれないと判定した場合には、印象ずれ発生状況ではないと判断する。なお、誤りやすさ判定部1013は、印象ずれ発生状況であると判断した場合、モデル候補読み出し部1014に、印象ずれ発生状況であることを通知する。
モデル候補読み出し部1014は、誤りやすさ判定部1013より、印象ずれ発生状況である旨の通知を受けると、ログ格納部116にモデル候補として格納されているアバタ部位変位データを読み出す。なお、モデル候補読み出し処理の詳細は、図26を用いて後述する。
印象評価値(実空間)算出部1015は、センサデータ読み出し部1011により読み出されたセンサデータを、印象評価値を算出するためのAPIに入力することで、印象評価値を算出し、モデル候補選定部1017に通知する。
なお、印象評価値を算出するためのAPIに入力するセンサデータは、センサデータ読み出し部1011により読み出されたセンサデータのうち、動きの種類の判定に用いられたセンサデータが取得された時間帯に取得されたセンサデータを用いる。動きの種類の判定に用いられたセンサデータが取得された時間帯とは、動きの種類の判定に用いられたセンサデータが取得された時刻及び当該データ取得時刻に近接する時刻を含む時間帯をいう。また、動きの種類の判定に用いられたセンサデータが取得された時間帯に取得されたセンサデータとは、当該時間帯に取得された全てのセンサデータであってもよい。あるいは、当該時間帯に取得されたセンサデータのうち、動きの種類の判定に用いられたセンサデータであってもよい。
印象評価値(仮想空間)算出部1016は、モデル候補読み出し部1014によりモデル候補として読み出されたアバタ部位変位データを印象評価値を算出するためのAPIに入力することで印象評価値を算出し、モデル候補選定部1017に通知する。
モデル候補選定部1017は、印象評価値(実空間)算出部1015より通知された印象評価値と、印象評価値(仮想空間)算出部1016より通知された印象評価値とを比較する。モデル候補選定部1017は、印象評価値(実空間)算出部1015より通知された印象評価値に近い印象評価値が算出されたモデル候補を選定する。更に、モデル候補選定部1017は、選定したモデル候補を仮想空間用情報生成部1002に通知する。
なお、仮想空間用情報生成部1002は、モデル候補選定部1017より、モデル候補が通知された場合には、通知されたモデル候補を用いてアバタの画像を生成する。このとき、仮想空間用情報生成部1002は、選定されたモデル候補の中から1のモデル候補を決定してアバタの画像を生成する。1のモデル候補は、ランダムに決定しても、モデル候補生成時に各モデルに割り当てられた優先順位の高い順に決定しても、表示しようとするアバタの直前に表示されたアバタの画像との動きの差分が最も小さいものを決定してもよい。
なお、上記説明では、仮想空間用情報生成部1002が、更新されたアバタの画像と動きが更新されないアバタの画像とを含む仮想空間用情報を生成し、仮想空間用情報送信部1003が、当該仮想空間用情報をクライアント装置120に送信するものとした。しかしながら、仮想空間用情報送信部1003が仮想空間用情報を一旦送信した後は、更新情報(更新されたアバタの画像や、仮想空間内のオブジェクトの属性情報(ボーンやメッシュの位置、角度、表示色や表示模様等))のみを送信するようにしてもよい。この場合、クライアント装置120では、更新情報に基づいて仮想空間におけるアバタの画像を更新する。
また、クライアント装置上の仮想空間再生処理においては、視野画像生成(ステップS905)においてクライアント装置上でセンサデータに基づいてアバタの画像が更新された後にモデル候補の選定が行われる場合もある。
つまり、クライアント装置上でアバタの画像の更新に用いられたセンサデータと同じセンサデータがサーバ装置上で処理されてモデル候補が選定され、仮想空間用情報としてサーバ装置よりアバタの画像が送信される場合もある。
例えば、クライアント装置とサーバ装置との間の通信の遅延等の問題により、当該クライアント装置上のセンサデータに基づくアバタの画像の生成処理と、サーバ装置上のアバタの画像の生成処理との間で齟齬が生じる場合がある。このような場合、アバタの画像の2つの生成処理を異なるアバタの部位に反映させる等の形態があってもよい。
例えば、クライアント装置上でセンサデータに基づいて生成されたアバタの画像は、アバタの影のように表現されたアバタの部位に反映させ、サーバ装置上で生成されたアバタの画像は、アバタの本体として表現されたアバタの部位に反映させてもよい。
また、取得したセンサデータがサーバ装置上で処理された結果、アバタの画像が生成されなかった場合にのみ、クライアント装置上でアバタの画像を生成するようにしてもよい。これにより、同一のセンサデータに基づいて、クライアント装置上でアバタの画像の生成が2回行われることを回避することができる。
<センサデータの説明>
次に、センサデータ格納部114に格納されるセンサデータのうち、音声データを除くセンサデータ(頭部姿勢データ、深度データ、筋電位データ)について、図11〜図13を用いて説明する。なお、以降の説明において、音声データについての説明は省略し、センサデータには、頭部姿勢データ、深度データ、筋電位データが含まれるものとして説明する。
また、以下の説明における(位置、角度)のうち、位置は、仮想空間において一意に決まるものであり、角度は、仮想空間におけるXYZ軸に対する回転を指すものとする。
(頭部姿勢データテーブルの説明)
図11は、頭部姿勢データテーブルの一例を示す図である。図11に示すように、頭部姿勢データテーブル1100は、情報の項目として、"記録時刻"と、"データ取得時刻"と、"ユーザ名"と、"クライアント装置ID"と、"頭部姿勢データ(位置、角度)"とを含む。
"記録時刻"には、頭部姿勢データが、センサデータ格納部114に格納された時刻が記録される。"データ取得時刻"には、頭部姿勢データが、センサデータ取得部702により取得された時刻が記録される。
"ユーザ名"には、頭部姿勢センサを使用するユーザのユーザ名が記録される。センサデータ送信部703は、センサデータとして頭部姿勢データを送信する際に、あわせて頭部姿勢センサを使用するユーザのユーザ名を送信する。
"クライアント装置ID"には、頭部姿勢データを含むセンサデータを送信したクライアント装置を識別するための識別子が記録される。センサデータ送信部703は、センサデータをサーバ装置110に送信する際に、クライアント装置を識別するための識別子を、センサデータと対応付けて送信する。なお、センサデータ送信部703は、クライアント装置を識別するための識別子に加え、頭部姿勢センサを識別するための識別子を送信するようにしてもよい。この場合、"クライアント装置ID"には、クライアント装置を識別するための識別子に加え、頭部姿勢センサを識別するための識別子が合わせて記録されることになる。
"頭部姿勢データ(位置、角度)"には、頭部姿勢データである、位置データと角度データとが記録される。具体的には、頭部姿勢データを、仮想空間上のベクトルの位置、各XYZ軸に対する角度として算出したものが時系列に記録される。
図11の例は、"2015年7月27日11時00分00秒000"に、ユーザ名="A"であるユーザ140の頭部姿勢データとして、センサデータ取得部702が((位置),(角度))="((0,18,−18)、(0,0,0))"を取得したことを示している。また、当該頭部姿勢データが、クライアント装置ID="c1"のクライアント装置120より送信され、"2015年7月27日11時00分01秒030"にセンサデータ収集部1001によりセンサデータ格納部114に格納されたことを示している。
(深度データファイルテーブルの説明)
図12は、深度データファイルテーブルの一例を示す図である。図12に示すように、深度データファイルテーブル1200は、情報の項目として、"記録時刻"と、"データ取得開始時刻"と、"データ取得終了時刻"とを含む。更に、情報の項目として、"ユーザ名"と、"クライアント装置ID"と、"深度データファイルURI(Uniform Resource Identifier)"とを含む。
"記録時刻"には、深度データファイルが、センサデータ格納部114に格納された時刻が記録される。"データ取得開始時刻"には、所定時間内に深度センサから取得されたデータのうち、はじめのデータが取得された時刻(例えば、所定時間の開始時刻)が記録される。"データ取得終了時刻"には、所定時間内に深度センサから取得されたデータのうち、最後のデータが取得された時刻(例えば、所定時間の終了時刻)が記録される。また、深度センサから取得されたこれらのデータは、深度センサデータファイルとして記録される。深度データファイルの内部は、深度センサの種類によって異なり、一例として、深度画像データ、カラー画像データ、赤外線画像データ等、二次元xy平面の各ピクセルの情報が異なるデータが挙げられる。各ピクセルの情報とは、深度画像データであれば深度センサからの距離値、カラー画像データであればRGB値、赤外線画像であればグレースケール値となる。また、他の例として、深度画像データ、カラー画像データ、赤外線画像データ等の画像データを処理し、画像内のどのピクセル位置にユーザが存在するか、顔パーツが存在するか等の情報を収めたデータが挙げられる。なお、第1の実施形態では、深度データファイルに、深度画像データとカラー画像データとが少なくとも含まれていることを前提として説明するが、これに限定されるものではない。
"ユーザ名"には、深度センサ122を使用するユーザのユーザ名が記録される。センサデータ送信部703は、センサデータとして深度データファイルを送信する際に、あわせて深度センサ122を使用するユーザのユーザ名を送信する。
"クライアント装置ID"には、深度データファイルを含むセンサデータを送信したクライアント装置を識別するための識別子が記録される。センサデータ送信部703は、センサデータをサーバ装置110に送信する際に、クライアント装置を識別するための識別子を、センサデータと対応付けて送信する。なお、センサデータ送信部703は、クライアント装置を識別するための識別子に加え、深度センサを識別するための識別子を送信するようにしてもよい。この場合、"クライアント装置ID"には、クライアント装置を識別するための識別子に加え、深度センサを識別するための識別子が合わせて記録されることになる。
"深度データファイルURI"には、深度データファイルの格納先のフォルダの参照アドレスとファイル名とが規定のフォーマットで記録される。このうち、図12では、ファイル名のみを示した。
図12の例は、深度データファイルとして、ファイル名="001.xef"の深度データファイルがセンサデータ格納部114に格納されたことを示している。また、深度データファイル(001.xef)は、"2015年7月27日11時00分00秒000"から"2015年7月27日11時00分01秒000"までの間のデータが含まれていることを示している。また、深度データファイル(001、xef)は、ユーザ名="A"であるユーザ140が利用するクライアント装置(クライアント装置ID="c1")に接続された深度センサ(s1)において取得されたデータであることを示している。更に、深度データファイル(001.xef)は、クライアント装置ID="c1"のクライアント装置120により送信され、"2015年7月27日11時00分01秒030"にセンサデータ格納部114に格納されたことを示している。
(筋電位データテーブルの説明)
図13は、筋電位データテーブルの一例を示す図である。図13に示すように、筋電位データテーブル1300は、情報の項目として、"記録時刻"と、"データ取得時刻"と、"ユーザ名"と、"クライアント装置ID"と、"筋電位データ(EMG(μV))"とを含む。
"記録時刻"には、筋電位データがセンサデータ格納部114に格納された時刻が記録される。"データ取得時刻"には、筋電位データが、センサデータ取得部702により取得された時刻が記録される。
"ユーザ名"には、筋電位センサを使用するユーザのユーザ名が記録される。センサデータ送信部703は、筋電位データを送信する際に、あわせて筋電位センサを使用するユーザのユーザ名を送信する。
"クライアント装置ID"には、筋電位データを含むセンサデータを送信したクライアント装置を識別するための識別子が記録される。センサデータ送信部703は、センサデータをサーバ装置110に送信する際に、クライアント装置を識別するための識別子を、センサデータと対応付けて送信する。"筋電位データ(EMG(μV))"には、筋電位データの値が記録される。なお、センサデータ送信部703は、クライアント装置を識別するための識別子に加え、筋電位センサを識別するための識別子を送信するようにしてもよい。この場合、"クライアント装置ID"には、クライアント装置を識別するための識別子に加え、筋電位センサを識別するための識別子が合わせて記録されることになる。更に、1のユーザに対して複数種類の筋電位センサを装着する場合にあっては、筋電位センサの種類を識別するための識別子も合わせて記録されることになる。
図13の例は、"2015年7月27日11時00分01秒000"に、ユーザ名="A"であるユーザ140の筋電位データが"zygomaticus(cheek)"によって特定される種類の筋電位センサによりセンシングされたことを示している。また、センシングされた筋電位データがEMG(μV)="33.9"であることを示している。更に、クライアント装置ID="c1"のクライアント装置120より送信され、"2015年7月27日11時00分01秒035"にセンサデータ格納部114に格納されたことを示している。
<アバタの動きの説明>
次に、動き(変化)判定部1012にて監視対象となるアバタの部位の動きについて説明する。動き(変化)判定部1012は、センサデータに基づいて算出されるアバタの所定の部位の部位値を監視し、アバタの所定の部位の部位値が所定量以上変化したか否かを判定する。
動き(変化)判定部1012にて監視対象となるアバタの所定の部位の動きには、アバタの体全体の動きと、アバタの体の一部の動きと、アバタの体の一部(顔)において表情が変化する動きとが含まれる。
アバタの体全体の動きには、例えば、アバタが前方または後方、左方または右方に移動する動きや、アバタが体全体の向きを変える動き等が含まれる。アバタが前方または後方、左方または右方に移動する動きは、例えば、アバタの中心位置に配置されている骨格の位置の変化として表すことができる。また、アバタが進行方向を変える時のように位置を動かずに体全体の向きを右や左へ変える動きは、床面に対して垂直方向に延びる軸の軸周りの角度の変化として表すことができる。
アバタの体の一部の動きには、例えば、アバタの上半身が前傾または後傾する動きや、アバタが左右を見回すように上半身の向きを変える動き、上半身全体で左右に揺れる動き等が含まれる。また、アバタの体の一部の動きには、例えば、アバタが顔の向きを上向きまたは下向きにする動きや、アバタが顔の向きを左方向または右方向に変える動き等が含まれる。
このうち、アバタの上半身が前傾または後傾する動きや、アバタが左右を見回すように上半身の向きを変える動き、上半身全体で左右に揺れる動きは、例えば、アバタの腰の位置を原点とする3軸方向の軸周りの角度の変化("Bone_Chest"の変化)で表される。同様に、アバタが顔の向きを上向きまたは下向きにする動きや、アバタが顔の向きを左方向または右方向に変える動きは、例えば、アバタの頭の位置に配置された骨格の位置を原点とする3軸方向の軸周りの角度の変化("Bone_Head"の変化)で表される。
更に、アバタの体の一部(顔)において表情が変化する動きには、例えば、アバタが視線を上方向または下方向、左方向または右方向に向ける動きや、アバタの口角が上がるまたは下がる動き、ユーザの眉毛の角度が変わる動き等が含まれる。これらの動きは、例えば、アバタの顔面中の複数の点群の位置及び当該位置に囲まれた平面(例えば唇の皮膚相当)の状態変化に紐づいたスコアとして表される。具体的には、"Shape_Mouse"の所定の状態から他の状態への遷移に紐づけた"IsSmile"というスコアで表される。
なお、アバタの動きについての上記の表現方法は一例であり、他の表現方法により表わされてもよい。図14は、アバタの動きの表現方法の一例を示す図であり、アバタの上半身が前傾または後傾する動き、アバタが左右を見回すように上半身の向きを変える動き、及び上半身全体で左側面や右側面に揺れる動きを表している。より具体的には、これらの動きをアバタの腰の位置を原点とする3軸方向の軸周りの角度の変化("Bone_Chest"の変化)として表している。
なお、図14では、仮想空間で一意である座標系のX軸、Y軸、Z軸が、それぞれアバタの左右方向、上下方向、前後方向と対応しており、アバタの腰の位置に配置された骨格を回転の中心としている。
このうち、画像1401は、x軸上で+α度回転した場合に、アバタがどのような姿勢となるのかを表しており、画像1402は、x軸上で−α度回転した場合に、アバタがどのような姿勢となるのかを表している。
また、画像1411は、y軸上で+α度回転した場合に、アバタがどのような姿勢となるのかを表しており、画像1412は、y軸上で−α度回転した場合に、アバタがどのような姿勢となるのかを表している。
更に、画像1421は、z軸上で+α度回転した場合に、アバタがどのような姿勢となるのかを表しており、画像1422は、z軸上で−α度回転した場合に、アバタがどのような姿勢となるのかを表している。
<アバタの動きの種類を判定するための定義情報>
次に、アバタの動きの種類を判定するための定義情報について説明する。図15は、定義情報格納部に格納された定義情報のうち、アバタの動きの種類を判定するための定義情報を示した図である。
図15に示すように、定義情報(振る舞い用)1500には、動きの種類の判定に用いる"センサデータ"と、当該センサデータを取得するためのセンサの識別子("センサID")とが定義されている。更に、定義情報(振る舞い用)1500には、アバタの各部位のうち、"監視対象"の部位と、監視対象の部位が所定量以上動いたか否かを判定するための"閾値"とが定義されている。更に、定義情報(振る舞い用)1500には、監視対象の部位が所定量以上動いたと判定された場合に特定される、"動きの種類"が定義されている。
例えば、動き(変化)判定部1012は、アバタの腰の位置を原点とする3軸方向の軸周りの角度の変化("Bone_Chest"の変化)を監視する。動き(変化)判定部1012は、センサID="s2"の深度センサにより取得された深度データに基づいて当該監視を行い、"Bone_Chest"がX軸周りに+5度以上回転したことを検出すると、前傾変化があったと判定する。
また、動き(変化)判定部1012は、アバタの頭の位置に配置された骨格の位置を原点とする3軸方向の軸周りの角度の変化("Bone_Head"の変化)を監視する。動き(変化)判定部1012は、センサID="s1"の頭部姿勢センサにより取得された頭部姿勢データに基づいて当該監視を行い、"Bone_Head"がいずれかの軸周りに+5度以上回転したことを検出すると、顔向き変化があったと判定する。
更に、動き(変化)判定部1012は、アバタの口角を含む口の周囲の点群の変化("Shape_Mouse"の変化)を監視する。"Shape_Mouse"の変化は口表情変化の度合いを示すパラメータ(IsSmile)と紐付けられている。なお、IsSmileの値は、"IsSmile"=0が、口を閉じた状態での点群の位置を示し、"IsSmile"=1が、口を大きく開いた状態での点群の位置を示すように割り当てられているものとする。
動き(変化)判定部1012は、センサID="s3"の筋電位センサにより取得された筋電位データに基づいて"IsSmile"の監視を行い、"IsSmile"が0.5より大きくなったことを検出すると、口表情変化があったと判定する。
<動きの種類判定ログテーブルの説明>
次に、動きの種類判定ログテーブルについて説明する。ユーザの振る舞いに応じて、アバタの監視対象の部位の部位値が所定量以上変化し、動き(変化)判定部1012により動きの種類が判定されると、ログ格納部116の動きの種類判定ログテーブルには、判定された動きの種類等が格納される。
図16は、動きの種類判定ログテーブルの一例を示す図である。図16に示すように、動きの種類判定ログテーブル1600には、情報の項目として、"記録時刻"、"変化発生時刻"、"ユーザ名"、"クライアント装置ID"、"変化前及び変化後の部位情報"が含まれる。
"記録時刻"には、ログ格納部116に新たなデータ行が追加され、動きの種類が格納された時刻が記録される。"変化発生時刻"には、動きの種類の判定に用いられたセンサデータが取得された時刻が記録される。
"ユーザ名"には、アバタの元となるユーザのユーザ名が記録される。"クライアント装置ID"には、動きの種類の判定に用いられたセンサデータを送信したクライアント装置を識別するための識別子が記録される。
"変化前及び変化後の部位情報"には、動きの種類が判定された際の、変化前の部位情報と変化後の部位情報とが記録される。
図16の例(データ行1601)は、"2015年7月27日11時02分00秒000"に、ログ格納部116の動きの種類判定ログテーブル1600に当該データ行1601が追加されたことを示している。また、図16の例(データ行1601)は、ユーザ名="A"であるユーザ140の振る舞いに応じて発生した口表情変化であることを示している。また、図16の例(データ行1601)は、"2015年7月27日11時00分01秒000"に取得されたセンサデータに基づいて、口表情変化があったと判定されたことを示している。また、図16の例(データ行1601)は、当該センサデータが、クライアント装置ID="c1"のクライアント装置120により送信されたセンサデータであることを示している。また、図16の例(データ行1601)は、アバタの部位情報である"Shape_Mouse"と紐付けられたパラメータ"IsSmile"が、"0.5"から"0.8"に変化したことを示している。
<モデル候補の説明>
次に、仮想空間用情報生成部1002によりログ格納部116に格納される、モデル候補について説明する。図17は、モデル候補の一例を示す図である。
図17に示すように、モデル候補は、アバタの各部位の部位情報を含む。図17のモデル候補1700は、部位の種類を特定するための情報として、"<Head><Bone>"が含まれ、部位値として、位置=(0,18,−10)、角度=(0,1,0)が含まれたデータ部位変位データであることを示している。
<サーバ装置の第2の仮想空間用情報提供部が実行するモデル候補選定処理>
次に、サーバ装置110の第2の仮想空間用情報提供部112が実行する、モデル候補選定処理の流れについて説明する。図18は、モデル候補選定処理のフローチャートである。
ステップS1801において、センサデータ読み出し部1011は、センサデータ格納部114に所定量以上のセンサデータが蓄積されたか否かを判定する。ステップS1801において、所定量以上のセンサデータが蓄積されていないと判定した場合には(ステップS1801においてNo)、所定量以上のセンサデータが蓄積されるまで待機する。
一方、ステップS1801において、所定量以上のセンサデータが蓄積されたと判定した場合には(ステップS1801においてYes)、ステップS1802に進む。ステップS1802において、センサデータ読み出し部1011は、所定量のセンサデータを読み出し、動き(変化)判定部1012は、読み出されたセンサデータに基づいて仮想空間におけるアバタの各部位(監視対象の各部位)の部位情報を生成する。
ステップS1803において、動き(変化)判定部1012は、定義情報(振る舞い用)1500に規定された各"閾値"と各部位情報とを対比することで、アバタの監視対象の部位の部位値が所定量以上変化したか否かを判定する。ステップS1803において、所定量以上変化していないと判定した場合には(ステップS1803においてNo)、ステップS1801に戻る。一方、ステップS1803において、所定量以上変化したと判定した場合には(ステップS1803においてYes)、ステップS1804に進む。
ステップS1804において、動き(変化)判定部1012は、動きの種類判定ログテーブル1600に新たなデータ行を追加し、判定した動きの種類等を格納する。
ステップS1805において、誤りやすさ判定部1013は、誤りやすさ閾値領域マップを参照し、「アバタの各部位の誤りやすさ判定処理」を行い、印象ずれ発生状況であるか否かを判断する。なお、アバタの各部位の誤りやすさ判定処理の詳細は、図19(a)を用いて後述する。
ステップS1805における判定処理の結果、印象ずれ発生状況でないと判断した場合には、ステップS1806からステップS1811に進む。一方、印象ずれ発生状況であると判断した場合には、ステップS1806からステップS1807に進む。
ステップS1807において、モデル候補読み出し部1014は、ログ格納部116に格納されたアバタ部位変位データの中から、ステップS1803において判定した動きの種類に応じたアバタ部位変位データを読み出す処理(「モデル候補読み出し処理」)を行う。なお、モデル候補読み出し処理の詳細は、図19(b)を用いて後述する。
ステップS1808において、印象評価値(仮想空間)算出部1016は、ステップS1807において読み出されたモデル候補それぞれについて、仮想空間における印象評価値を算出する。
ステップS1809において、印象評価値(実空間)算出部1015は、ステップS1802において読み出されたセンサデータに基づいて、実空間における印象評価値を算出する。
ステップS1810において、モデル候補選定部1017は、ステップS1808において算出された仮想空間におけるモデル候補の印象評価値それぞれと、ステップS1809において算出された実空間におけるユーザの印象評価値とを比較する。モデル候補選定部1017は、比較の結果、実空間におけるユーザの印象評価値に近い仮想空間におけるモデル候補の印象評価値を抽出する。更に、モデル候補選定部1017は、当該印象評価値に対応するモデル候補を、アバタの画像の生成に用いるモデルの候補に選定し、仮想空間用情報生成部1002に通知する。
ステップS1811において、センサデータ読み出し部1011は、モデル候補選定処理を終了するか否かを判定する。ステップS1811において、終了しないと判定した場合には(ステップS1811においてNo)、ステップS1801に戻り、モデル候補選定処理を継続する。一方、終了すると判定した場合には(ステップS1811においてYes)、モデル候補選定処理を終了する。
<アバタの各部位の誤りやすさ判定処理の流れ>
次に、アバタの各部位の誤りやすさ判定処理(図18のステップS1805)の詳細について説明する。図19(a)は、アバタの各部位の誤りやすさ判定処理のフローチャートである。
ステップS1901において、誤りやすさ判定部1013は、図18のステップS1803において、動きの種類を判定するのに用いたセンサデータの現状の状況に合わせて、誤りやすさ閾値領域マップを更新する。
ステップS1902において、誤りやすさ判定部1013は、仮想空間におけるアバタの各部位の位置に対応する実空間の位置が、更新された誤りやすさ閾値領域マップの誤りやすさ閾値領域に含まれるか否かを判定する。誤りやすさ閾値領域に含まれる場合、誤りやすさ判定部1013は、印象ずれ発生状況であると判断する。一方、誤りやすさ閾値領域に含まれない場合、誤りやすさ判定部1013は、印象ずれ発生状況でないと判断する。なお、誤りやすさ判定部1013は、アバタの各部位の位置のうち、一部の部位の位置に対応する実空間の位置が、誤りやすさ閾値領域に含まれると判定した場合に、印象ずれ発生状況であると判断する。ただし、判断方法はこれに限定されず、総合的に誤りやすさが閾値を超えるか否かを判定することで、印象ずれ発生状況であるか否かを判断するようにしてもよい。
なお、アバタの所定の部位の位置に対応する実空間の位置が、誤りやすさ閾値領域に含まれる場合、アバタの当該部位を、以下では「誤りやすさ閾値を超える部位」と称する。
<モデル候補読み出し処理の流れ>
次に、モデル候補読み出し処理(図18のステップS1807)の詳細について説明する。図19(b)は、モデル候補読み出し処理のフローチャートである。
ステップS1911において、モデル候補読み出し部1014は、動きの種類判定ログテーブル1600を参照し、ステップS1804において追加したデータ行に記録された"動きの種類"と同じ"動きの種類"が記録された他のデータ行を検索する。
ステップS1912において、モデル候補読み出し部1014は、ステップS1911において検索されたデータ行それぞれに記録された"変化発生時刻"を抽出する。
ステップS1913において、モデル候補読み出し部1014は、アバタ部位変位ログテーブル2000を参照し、ステップS1912において抽出された"変化発生時刻"と同じ時刻が"データ取得時刻"に記録されているデータ行を検索する。
ステップS1914において、モデル候補読み出し部1014は、アバタ部位変位ログテーブル2000を参照し、ステップS1013において検索されたデータ行に含まれるアバタ部位変位データを、モデル候補として読み出す。これにより、モデル候補読み出し部1014では、動きの種類に応じたモデル候補を読み出すことができる。
<アバタ部位変位ログテーブルの説明>
次に、アバタ部位変位データが格納されたアバタ部位変位ログテーブルについて説明する。図20は、アバタ部位変位ログテーブルの一例を示す図である。
図20に示すように、アバタ部位変位ログテーブル2000は、情報の項目として、"記録時刻"、"データ取得時刻"、"ユーザ名"、"クライアント装置ID"、"アバタ部位変位タイプ"、"アバタ部位変位データ"が含まれる。
"記録時刻"には、アバタの画像が生成され、アバタの画像の生成に用いられたアバタの各部位の部位情報が、アバタ部位変位データとしてログ格納部116のアバタ部位変位ログテーブル2000に格納された時刻が記録される。
"データ取得時刻"には、アバタ部位変位データに含まれる部位情報の生成に用いられたセンサデータが取得された時刻が記録される。
"ユーザ名"には、アバタの元となるユーザのユーザ名が記録される。"クライアント装置ID"には、アバタの元となるユーザが利用するクライアント装置を識別するための識別子が記録される。
"アバタ部位変位タイプ"には、アバタの画像の各部位の部位情報の種類が記録される。アバタ部位変位タイプ="particle"とは、部位情報の種類が、アバタの表面構造や内部構造を無数の点群の集合によって表現したデータであることを示している。また、アバタ部位変位タイプ="bone"とは、部位情報の種類が、アバタの決められた骨格構成で表現したデータであることを示している。更に、アバタ部位変位タイプ="mesh"とは、部位情報の種類が、アバタの表層の皮膚や衣服等を複数の点や面の集合として表現したデータであることを示している。
なお、アバタ部位変位タイプ="particle"または"mesh"の場合、アバタの各部位の部位情報は行列(仮想空間内におけるxyz座標の値)で示される。また、アバタ部位変位タイプ="bone"の場合、アバタの各部位の部位情報は、各骨格の位置と角度とによって示される。
"アバタ部位変位データ"には、生成されたアバタの画像の各部位の部位情報が記録される。"アバタ部位変位データ"に記録された部位情報は、モデル候補として用いられる。
なお、上記説明では、アバタの画像を生成する場合の処理について説明したが、アバタの音声やアバタの触覚(アバタが他のアバタから触られたときに提示する感触)を生成する場合についても、同様である。つまり、アバタ部位変位ログテーブル2000の"アバタ部位変位タイプ"に、"utterance(発話)"や"touch(感触)"が格納され、"アバタ部位変位データ"として、音声データや触覚データが格納されても同様の処理を実行することができる。
以上の説明から明らかなように、第1の実施形態における画像生成システム100は、印象ずれ発生状況であると判断した場合に、複数のモデル候補の中から決定したモデルを用いてアバタの画像を生成する。このとき、画像生成システム100は、アバタの動きの種類に基づいて読み出したモデル候補の中から、実空間における人の振る舞いに基づいて算出される実空間の印象評価値に近い印象評価値を有するモデル候補を選定する。
これにより、第1の実施形態によれば、アバタの動きを介して他人に与える印象が、実空間における人の振る舞いにより他人に与える印象からずれることがないように、モデルを決定することが可能となる。つまり、アバタの動きを介して他人に与える印象と、アバタの元となっている人の実際の振る舞いにより他人に与える印象とのずれを抑止することができる。
[第2の実施形態]
上記第1の実施形態では、動きの種類判定ログテーブル1600に新たにデータ行が追加された場合に、追加されたデータ行に含まれる動きの種類と同じ動きの種類を有する過去のデータ行を検索した。これにより、上記第1の実施形態では、アバタの動きの種類に応じたアバタ部位変位データを、モデル候補として読み出した。
これに対して、第2の実施形態では、動きの種類判定ログテーブル1600に新たにデータ行が追加された場合に、センサデータに基づいて、「他のアバタに対する動きの種類」を判定する。そして、判定した他のアバタに対する動きの種類に対応する"傾向"を判定し、判定した"傾向"に応じたアバタ部位変位データをモデル候補として読み出す。これにより、第2の実施形態によれば、他のアバタに対する動きの傾向(実空間でいうところの社会的振る舞いの傾向に相当する)に応じたアバタ部位変位データを、モデル候補として読み出すことができる。以下、第2の実施形態について、第1の実施形態との相違点を中心に説明する。
<サーバ装置の機能構成>
はじめに、第2の実施形態におけるサーバ装置110の機能構成について説明する。図21は、サーバ装置の機能構成の一例を示す第2の図である。
図21に示す機能構成のうち、図10に示した機能構成との相違点は、動き(傾向)判定部2101である。また、モデル候補読み出し部2102の機能が、図10のモデル候補読み出し部1014の機能とは異なっている点である。更に、定義情報格納部115が、「他のアバタに対する動きの種類についての定義情報」及び「他のアバタに対する動きの種類と傾向との関係を定義した定義情報」を格納している点である。
動き(傾向)判定部2101は、動きの種類判定ログテーブル1600に新たなデータ行が追加された場合、センサデータ読み出し部1011により読み出されたセンサデータに基づいて、他のアバタに対する動きの種類を判定する。具体的には、動き(傾向)判定部2101は、定義情報格納部115に格納された、他のアバタに対する動きの種類を判定するためのAPIを読み出す。そして、動き(傾向)判定部2101は、読み出したAPIにセンサデータを入力することで、他のアバタに対する動きの種類を判定する。なお、センサデータ読み出し部1011により読み出されたセンサデータのうち、APIに入力されるセンサデータの時間範囲を規定する開始時刻を、以下では、"判定時刻(開始)"と称し、終了時刻を、"判定時刻(終了)"と称する。
また、動き(傾向)判定部2101は、判定した他のアバタに対する動きの種類を、ログ格納部116の「他のアバタに対する動きの種類判定ログテーブル」に新たにデータ行を追加して格納する。
モデル候補読み出し部2102は、他のアバタに対する動きの傾向を判定する。定義情報格納部115には、「他のアバタに対する動きの種類と傾向との関係を定義した定義情報」が格納されており、モデル候補読み出し部2102は、定義情報格納部115を参照することで、他のアバタに対する動きの傾向を判定する。
モデル候補読み出し部2102は、ログ格納部116にモデル候補として格納されているアバタ部位変位データの中から、判定した傾向に応じたアバタ部位変位データを読み出す。
例えば、動き(傾向)判定部2101により判定された、他のアバタに対する動きの傾向が、"接近傾向"であったとする。この場合、モデル候補読み出し部2102は、ログ格納部116にモデル候補として格納されているアバタ部位変位データの中から、"接近傾向"に応じたアバタ部位変位データを、モデル候補として読み出す。
<他のアバタに対する動きの種類を判定するための定義情報>
次に、定義情報格納部115に格納され、動き(傾向)判定部2101が、他のアバタに対する動きの種類を判定する際に用いる定義情報について説明する。図21は、他のアバタに対する動きの種類を判定するための定義情報を示した図である。
図22(a)に示すように、定義情報(API)2201には、他のアバタに対する動きの種類を判定する際に用いるAPIが"動きの種類"ごとに定義されている。動き(変化)判定部1012により動きの種類が判定されると、動き(傾向)判定部2101は、対応するAPIを実行する。図22(a)の例では、動きの種類="前傾変化"の場合、姿勢解析APIが実行され、他のアバタに対する動きの種類が判定される。
また、図22(b)に示すように、定義情報(社会的振る舞い用)2202には、"API"とそれぞれのAPIに入力される"センサデータ"と、センサデータを入力したことで判定される"他のアバタに対する動きの種類"とが定義されている。更に、定義情報(社会的振る舞い用)2202には、それぞれのセンサデータを出力するセンサの"センサID"が定義されている。
例えば、姿勢解析APIに対しては、センサID="s2"の深度センサ132から送信された深度データが入力される。これにより、動き(傾向)判定部2101は、他のアバタに対する動きが、他のアバタに対して近づく動き("body-close-to")であるのか否かを判定する。また、姿勢解析APIを用いて、動き(傾向)判定部2101は、他のアバタに対する動きが、他のアバタから遠ざかる動き("body-far-to")であるのか否かを判定する。
更に、顔向き解析APIに対しては、センサID="s1"の頭部姿勢センサ124から送信された頭部姿勢データが入力される。これにより、動き(傾向)判定部2101は、他のアバタに対する動きが、他のアバタに対して顔を向ける動き("face-close-to")であるのか否かを判定する。
なお、図22(b)の例では、他のアバタに対する動きの種類を1種類判定するのに、1種類のセンサデータを用いる場合について示したが、他のアバタに対する動きの種類を1種類判定するのに、複数種類のセンサデータを用いるようにしてもよい。
<他のアバタに対する動きの種類と傾向との関係を定義した定義情報>
次に、定義情報格納部115に格納され、他のアバタに対する動きの種類と傾向との関係を定義した定義情報について説明する。図23は、他のアバタに対する動きの種類と傾向との関係を定義した定義情報の一例を示す図である。
図23に示すように、定義情報2300は情報の項目として、"他のアバタに対する動きの種類"、"接近傾向/回避傾向"を含む。"他のアバタに対する動きの種類"には、動き(傾向)判定部2101により判定されうる他のアバタに対する動きの種類が格納される。"接近傾向/回避傾向"には、他のアバタに対する動きの種類ごとに、接近傾向または回避傾向のいずれかが格納される。
<他のアバタに対する動きの種類判定ログテーブル>
次に、動き(傾向)判定部2101により判定された他のアバタに対する動きの種類が格納される、ログ格納部116の「他のアバタに対する動きの種類判定ログテーブル」について説明する。図24は、他のアバタに対する動きの種類判定ログテーブルの一例を示す図である。図24に示すように、他のアバタに対する動きの種類判定ログテーブル2400には、情報の項目として、"ログID"、"記録時刻"、"判定時刻(開始)"、"判定時刻(終了)"が含まれる。更に、情報の項目として、"ユーザ名"、"クライアント装置ID"、"他のアバタに対する動きの種類"、"他のアバタのユーザ名"、"開始時及び終了時の部位情報"が含まれる。
"ログID"には、他のアバタに対する動きの種類判定ログテーブル2400の各データ行を識別するための識別子が記録される。
"記録時刻"には、ログ格納部116の他のアバタに対する動きの種類判定ログテーブル2400に新たにデータ行が追加された際の時刻が記録される。"判定時刻(開始)"には、他のアバタに対する動きの種類の判定に用いられる所定の時間範囲のセンサデータ(APIに入力されるセンサデータ)のうち、開始の時刻が記録される。"判定時刻(終了)"には、他のアバタに対する動きの種類の判定に用いられる所定の時間範囲のセンサデータ(APIに入力されるセンサデータ)のうち、終了の時刻が記録される。
"ユーザ名"には、アバタの元となるユーザのユーザ名が記録される。"クライアント装置ID"には、他のアバタに対する動きの種類の判定に用いられたセンサデータを送信したクライアント装置を識別するための識別子が記録される。
"他のアバタに対する動きの種類"には、動きの種類に応じたAPIにセンサデータを入力することで判定された他のアバタに対する動きの種類が記録される。"他のアバタのユーザ名"には、他のアバタの元となるユーザのユーザ名が記録される。
"開始時及び終了時の部位情報"には、"判定時刻(開始)"時の部位情報と、"判定時刻(終了)"時の部位情報とが記録される。これにより、他のアバタに対する動きの種類判定ログテーブル2400を参照すれば、他のアバタに対する動きの種類が判定された際のアバタの動きの内容を把握することができる。
図24のデータ行2401の例は、"2015年7月27日11時02分03秒020"に、ログ格納部116の他のアバタに対する動きの種類判定ログテーブル2400に新たにデータ行が追加され、ログID="100"が付与されたことを示している。また、データ行2401の例は、ユーザ名="A"であるユーザ140のアバタの他のアバタ(ユーザ名="B")に対する動きの種類が判定されたこと、判定に用いられたセンサデータがクライアント装置ID="c1"から送信されたことを示している。
また、データ行2401の例は、他のアバタに対する動きの種類の判定に用いられたセンサデータが"2015年7月27日11時00分04秒000"から"2015年7月27日11時01分05秒000"までの時間帯に取得されたことを示している。また、データ行2401の例は、他のアバタに対する動きの種類の判定のトリガとなった部位情報(部位値が変化した部位情報)が、"Bone_Chest"であったことを示している。また、データ行2401の例は、上記時間帯において、アバタの腰の骨が、位置=(0,8,−10)を変えずに、X軸に対して、4度の傾きから12度の傾きになるまで動いたことを示している。更に、データ行2401の例は、他のアバタに対する動きの種類が"body-close-to"と判定されたことを示している。
<サーバ装置の第2の仮想空間用情報提供部が実行するモデル候補選定処理>
次に、サーバ装置110の第2の仮想空間用情報提供部112が実行する、モデル候補選定処理の流れについて説明する。図25は、モデル候補選定処理のフローチャートである。なお、図18を用いて説明したフローチャートと同じ工程については同じ符号を付し、ここでは説明を省略する。図18との相違点は、ステップS2501、S2502である。
ステップS2501において、動き(傾向)判定部2101は、動きの種類判定ログテーブル1600に新たに追加されたデータ行に含まれる動きの種類を識別し、識別した動きの種類に対応するAPIを判定する。また、動き(傾向)判定部2101は、判定したAPIに対して、定義情報(社会的振る舞い用)2202において定義されたセンサデータを入力し、他のアバタに対する動きの種類の判定を行う。APIに入力されるセンサデータの時間範囲は、例えば、動きの種類判定ログテーブル1600に新たに追加されたデータ行に含まれるデータ取得時刻から、一定時間を遡った定量の時間範囲であってもよい。あるいは、APIに入力されるセンサデータの時間範囲のうち、判定時刻(開始)は、当該アバタの直前の動きに基づいて動きの種類判定ログテーブル1600に記録されたデータ行に含まれる"データ取得時刻"であってもよい。あるいは、APIに入力されるセンサデータの時間範囲のうち、判定時刻(開始)は、当該アバタの直前の動きに基づいて、他のアバタに対する動きの種類判定ログテーブル2400に記録されたデータ行に含まれる"判定時刻(終了)"であってもよい。動き(傾向)判定部2101は、判定した他のアバタに対する動きの種類等を含むデータ行を、ログ格納部116の他のアバタに対する動きの種類判定ログテーブル2400に追加する。
ステップS2502において、モデル候補読み出し部2102は、他のアバタに対する動きの傾向に基づいてモデル候補の読み出し処理を行う(モデル候補の読み出し処理の詳細は後述する)。
<モデル候補の読み出し処理>
図26は、モデル候補の読み出し処理のフローチャートである。ステップS2601において、モデル候補読み出し部2102は、他のアバタに対する動きの種類判定ログテーブル2400を参照し、図25のステップS2501において追加したデータ行に記録された、"他のアバタに対する動きの種類"を識別する。
ステップS2602において、モデル候補読み出し部2102は、定義情報2300を参照し、ステップS2601において識別した"他のアバタに対する動きの種類"に対応する"傾向"を判定する。
ステップS2603において、モデル候補読み出し部2102は、定義情報2300を参照し、ステップS2602において判定した"傾向"と同じ傾向を有する"他のアバタに対する動きの種類"を抽出する。
ステップS2604において、モデル候補読み出し部2102は、他のアバタに対する動きの種類判定ログテーブル2400を参照し、ステップS2603において抽出した"他のアバタに対する動きの種類"と同じ種類が記録されているデータ行を検索する。
ステップS2605において、モデル候補読み出し部2102は、他のアバタに対する動きの種類判定ログテーブル2400を参照し、ステップS2604において検索されたデータ行それぞれの"判定時刻(開始)"と"判定時刻(終了)"を抽出する。
ステップS2606において、モデル候補読み出し部2102は、ステップS2605において抽出された時刻に基づいて、ステップS2604において検索されたデータ行それぞれの時間帯を識別する。
ステップS2607において、モデル候補読み出し部2102は、アバタ部位変位ログテーブル2000を参照し、"データ取得時刻"に記録された時刻が、ステップS2606において識別したそれぞれの時間帯に含まれるデータ行を検索する。
ステップS2608において、モデル候補読み出し部2102は、アバタ部位変位ログテーブル2000を参照し、ステップS2607において検索されたデータ行に含まれるアバタ部位変位データを、モデル候補として読み出す。
このように、第2の実施形態における画像生成システム100は、他のアバタに対する動きの傾向に応じたモデル候補を読み出す。
これにより、第2の実施形態によれば、上記第1の実施形態において読み出されたモデル候補とは異なるモデル候補(動きの種類ではなく他のアバタに対する動きの傾向が同じモデル候補)の中から、印象評価値の近いモデル候補を選定することが可能となる。
[第3の実施形態]
上記第1及び第2の実施形態では、動きの種類または他のアバタに対する動きの種類に基づいて、読み出すモデル候補を絞り込む場合について説明した。これに対して、第3の実施形態では、動きの種類または他のアバタに対する動きの傾向に基づいて読み出したモデル候補に対して、更に、モデル候補により特定される部位情報そのものに基づいて、モデル候補の絞り込みを行う。動きの種類または他のアバタに対する動きの傾向に基づいて読み出したモデル候補の中には、ユーザがあまり行わない振る舞いに対応するモデル候補が含まれている場合があるからである。そこで、第3の実施形態では、このような振る舞いに対応するモデル候補を排除し、モデル候補の更なる絞り込みを行う。なお、第3の実施形態では、動きの種類に基づいて読み出したモデル候補のうち、ユーザがあまり行わない振る舞いに対応するモデル候補を排除する処理について説明するが、他のアバタに対する動きの傾向に基づいて読み出したモデル候補の場合も同様である。以下、第3の実施形態について、第1の実施形態との相違点を中心に説明する。
<サーバ装置の機能構成>
はじめに、第3の実施形態におけるサーバ装置110の機能構成について説明する。図27は、サーバ装置の機能構成の一例を示す第3の図である。図10に示す機能構成との相違点は、想定範囲算出部2701を有する点、及び、モデル候補読み出し部2702の機能が、モデル候補読み出し部1014の機能とは異なっている点である。
想定範囲算出部2701は、ログ格納部116のアバタ部位変位ログテーブル2000に基づいて、アバタの各部位の部位値として想定される想定範囲(発生頻度の高い値を含む範囲)を算出する。想定範囲算出部2701は、アバタ部位変位ログテーブル2000の各データ行のうち、アバタ部位変位タイプとして"bone"や"mesh"が格納されているデータ行を対象として、想定範囲値の算出を行う。なお、想定範囲算出部2701は、一定時間間隔で想定範囲値の算出を行うものとする。ただし、想定範囲値の算出タイミングはこれに限定されず、想定範囲算出部2701は、アバタ部位変位ログテーブル2000に一定量以上のデータ行が格納された場合に、想定範囲値を算出するようにしてもよい。
モデル候補読み出し部2702は、アバタ部位変位ログテーブル2000に格納されているアバタ部位変位データのうち、動きの種類判定ログテーブル1600に新たに格納されたデータ行に含まれる"動きの種類"に応じたアバタ部位変位データを読み出す。また、モデル候補読み出し部2702は、読み出したアバタ部位変位データのうち、想定範囲算出部2701より算出された想定範囲値内の部位値を含むアバタ部位変位データを抽出する。
更に、モデル候補読み出し部2702は、抽出したアバタ部位変位データを、モデル候補として印象評価値(仮想空間)算出部1016に通知する。
<想定範囲情報の説明>
次に、想定範囲算出部2701により算出された想定範囲値を記録した想定範囲情報について説明する。図28は、想定範囲情報の一例を示す図である。図28に示すように、想定範囲情報2800は、情報の項目として、"記録時刻"、"アバタ部位範囲想定範囲判定時刻(開始)"、"アバタ部位変位想定範囲判定時刻(終了)"、"ユーザ名"、"クライアント装置ID"、"対象部位"、"想定範囲値"を含む。
"記録時刻"には、想定範囲算出部2701により想定範囲値が算出され、ログ格納部116に格納された時刻が記録される。
"アバタ部位変位想定範囲判定時刻(開始)"には、想定範囲算出部2701による想定範囲値の算出対象となったアバタ部位変位データ群のうち、アバタ部位変位ログテーブル2000への記録時刻が最も古い時刻が記録される。"アバタ部位変位想定範囲判定時刻(終了)"には、想定範囲算出部2701による想定範囲値の算出対象となったアバタ部位変位データ群のうち、アバタ部位変位ログテーブル2000への記録時刻が最も新しい時刻が記録される。
"ユーザ名"には、想定範囲値の算出に用いられたアバタ部位変位データに対応付けられたユーザ名が記録される。"クライアント装置"には、"ユーザ名"に記録されたユーザが利用したクライアント装置のクライアント装置IDが記録される。
"対象部位"には、想定範囲値が算出されたアバタの部位が格納される。"想定範囲値"には、想定範囲算出部2701により算出されたそれぞれの対象部位についての想定範囲値が記録される。
<モデル候補読み出し処理>
次に、モデル候補読み出し処理(図18のステップS1807)の詳細(第3の実施形態の場合の処理の詳細)について説明する。図29は、モデル候補読み出し処理のフローチャートである。
ステップS2901において、想定範囲算出部2701は、ログ格納部116に格納されているアバタ部位変位ログテーブル2000に基づいて、アバタの各部位について部位値として想定される想定範囲値を算出する。
ステップS1901からステップS1914までの各工程の処理は、図19(b)を用いて説明済みであるため、ここでは説明を省略する。
ステップS2902において、モデル候補読み出し部2702は、ステップS1914において読み出したアバタ部位変位データのうち、ステップS2901において算出した想定範囲値内のアバタ部位変位データを抽出する。
これにより、モデル候補選定処理(図18)のステップS1808において、印象評価値(仮想空間)算出部1016は、想定範囲値内のアバタ部位変位データをモデル候補として、仮想空間における印象評価値を算出することができる。
このように、第3の実施形態における画像生成システム100は、動きの種類または他のアバタに対する動きの傾向に基づいてモデル候補として読み出したアバタ部位変位データのうち、想定範囲値内の部位値を有するアバタ部位変位データを抽出する。
これにより、第3の実施形態によれば、上記第1または第2の実施形態と比較して、より絞り込まれたモデル候補の中から、印象評価値の近いモデル候補を選定することが可能となる。
[第4の実施形態]
上記第1乃至第3の実施形態において、動き(変化)判定部1012は、動きの種類を判定するごとに、動きの種類判定ログテーブル1600に新たにデータ行を追加して、アバタの各部位が所定量以上動いたことを管理するようにした。これに対して、第4の実施形態における動き(変化)判定部1012は、動きの種類判定ログテーブル1600に新たにデータ行を追加する一方で、他のデータ行とまとめることができるか否かを判定する。そして、他のデータ行とまとめることができると判定した場合には、他のデータ行とまとめて「動きの種類判定ログ(時系列)テーブル」にて管理する。動きの種類の判定に用いられたセンサデータが取得された"データ取得時刻"が十分に近い場合には、連動した動きと判断できるからである。
なお、第4の実施形態によれば、時系列のアバタ部位変位データをモデル候補として読み出して、仮想空間における印象評価値を算出し、選定した時系列のアバタ部位変位データを仮想空間用情報生成部1002に通知することができる。以下、第4の実施形態について、上記第1の実施形態との相違点を中心に詳細を説明する。
<サーバ装置の機能構成>
はじめに、第4の実施形態におけるサーバ装置110の機能構成について説明する。図30は、サーバ装置の機能構成の一例を示す第4の図である。図10に示す機能構成との相違点は、動き(時系列変化)判定部3001を有する点、及び、ログ格納部116に「動きの種類判定ログ(時系列)テーブル」が格納されている点である。
動き(時系列変化)判定部3001は、動き(変化)判定部1012によりログ格納部116の動きの種類判定ログテーブル1600に新たに追加されたデータ行を取得し、ログ格納部116の「動きの種類判定ログ(時系列)テーブル」に追加する。なお、動きの種類判定ログ(時系列)テーブルの詳細は、図31を用いて後述する。
動き(時系列変化)判定部3001は、「動きの種類判定ログ(時系列)テーブル」に新たにデータ行を追加するにあたり、動きの種類判定ログ(時系列)テーブルの他のデータ行とまとめることができるか否かを判定する。動き(時系列変化)判定部3001は、まとめることができると判定した場合に、取得したデータ行を他のデータ行とまとめて動きの種類判定ログ(時系列)テーブルに格納する。
<動きの種類判定ログ(時系列)テーブルの説明>
次に、動きの種類判定ログ(時系列)テーブルについて説明する。図31は、動きの種類判定ログ(時系列)テーブルの一例を示す図である。図16に示した動きの種類判定ログテーブル1600との違いは、図31の場合、情報の項目として、"変化発生時刻"に代えて、"変化発生時刻(最初)"と"変化発生時刻(最後)"とが含まれている点である。
動き(時系列変化)判定部3001は、動きの種類が判定されることで動きの種類判定ログテーブル1600に追加されたデータ行を、動きの種類判定ログ(時系列)テーブル3100に追加するにあたり、他のデータ行とまとめる処理を行う。このため、動きの種類判定ログ(時系列)テーブル3100の各データ行には、動きの種類判定ログテーブル1600におけるデータ行、複数行分が含まれることになる。
"変化発生時刻(開始)"には、動きの種類判定ログテーブル1600におけるデータ行、複数行分のうち、最初に追加されたデータ行が有する"変化発生時刻"が記録される。また、"変化発生時刻(終了)"には、動きの種類判定ログテーブル1600におけるデータ行、複数行分のうち、最後に追加されたデータ行が有する"変化発生時刻"が記録される。
<サーバ装置の第2の仮想空間用情報提供部が実行するモデル候補選定処理>
次に、サーバ装置110の第2の仮想空間用情報提供部112が実行する、モデル候補選定処理の流れについて説明する。図32は、モデル候補選定処理のフローチャートである。なお、図18を用いて説明したフローチャートと同じ工程については同じ符号を付し、ここでは説明を省略する。図18との相違点は、ステップS3201である。
ステップS3201において、動き(時系列変化)判定部3001は、ステップS1804において動きの種類判定ログテーブル1600に新たに追加されたデータ行を取得し、動きの種類判定ログ(時系列)テーブル3100を更新する。動きの種類判定ログ(時系列)テーブル3100の更新処理の詳細は、図33を用いて後述する。
なお、ステップS3201において、動きの種類判定ログ(時系列)テーブル3100が更新された場合、ステップS1805において、誤りやすさ判定部1013は、アバタの各部位の部位情報として時系列の部位情報に基づいて判定を行う。
具体的には、誤りやすさ判定部1013は、動きの種類判定ログ(時系列)テーブル3100に新たに格納されたデータ行に含まれる、変化発生時刻(最初)と変化発生時刻(最後)とを識別する。更に、誤りやすさ判定部1013は、識別した変化発生時刻(最初)と変化発生時刻(最後)との間の1タイムフレームごとに、アバタの画像の各部位が誤りやすさ閾値を超える部位であるか否かを判定する。なお、判定方法はこれに限定されず、例えば、変化発生時刻(最初)と変化発生時刻(最後)との間の全てのタイムフレームのデータを総合して各部位が誤りやすさ閾値を超える部位であるか否かを判定するようにしてもよい。つまり、誤りやすさ閾値を超える部位があるか否かの判定は、1タイムフレームごとに行ってもよいし、総合的に判定してもよい。
また、ステップS3201において、動きの種類判定ログ(時系列)テーブル3100が更新された場合、ステップS1807において、モデル候補読み出し部1014は、モデル候補の読み出しにおいて、動きの種類判定ログ(時系列)テーブル3100を用いる。このときモデル候補読み出し部1014は、動きの種類判定ログ(時系列)テーブル3100の変化発生時刻(最初)と変化発生時刻(最後)とにより識別される時間帯に基づいて、時系列のアバタ部位変位データをモデル候補として読み出す。
更に、印象評価値(仮想空間)算出部1016では、ステップS1809において時系列のアバタ部位変位データについて印象評価値を算出する(例えば、時系列のアバタ部位変位データそれぞれについて算出した印象評価値の平均値を算出する)。
<動きの種類判定ログ(時系列)テーブル更新処理>
次に、動きの種類判定ログ(時系列)テーブル更新処理(ステップS3201)の詳細について説明する。図33は、動きの種類判定ログ(時系列)テーブル更新処理のフローチャートである。
ステップS3301において、動き(時系列変化)判定部3001は、動きの種類判定ログテーブル1600に新たに追加されたデータ行を読み出す。
ステップS3302において、動き(時系列変化)判定部3001は、ステップS3301において読み出したデータ行の"変化発生時刻"に記録された時刻を識別する。
ステップS3303において、動き(時系列変化)判定部3001は、動きの種類判定ログ(時系列)テーブル3100を参照し、ステップS3302において識別した時刻に十分近い時刻が"変化発生時刻(終了)"に記録されたデータ行を検索する。
ステップS3304において、動き(時系列変化)判定部3001は、ステップS3303における検索の結果、他のデータ行を検索できたか否かを判定する。ステップS3304において、他のデータ行を検索できたと判定した場合には(ステップS3304においてYes)、ステップS3305に進む。
ステップS3305において、動き(時系列変化)判定部3001は、検索されたデータ行と、読み出したデータ行とを連結する。これにより、動きの種類判定ログ(時系列)テーブルが更新される。
一方、ステップS3304において、他のデータ行を検索できなかったと判定した場合には(ステップS3304においてNo)、ステップS3306に進む。ステップS3306において、動き(時系列変化)判定部3001は、ステップS3301において読み出したデータ行を、動きの種類判定ログ(時系列)テーブル3100に新たなデータ行として追加する。これにより、動きの種類判定ログ(時系列)テーブル3100が更新される。
このように、第4の実施形態における画像生成システム100は、十分に近い時間内にアバタの部位の部位値が所定量以上変化した場合に、それぞれの変化が発生したことで動きの種類判定ログテーブル1600に追加されたデータ行を1つにまとめる。そして、第4の実施形態における画像生成システム100では、1つにまとめたデータ行を、動きの種類判定ログ(時系列)テーブル3100として管理する。これにより、モデル候補読み出し部1014は、動きの種類判定ログ(時系列)テーブル3100の各データ行により特定される時間帯の時系列のアバタ部位変位データを、モデル候補として読み出すことが可能になる。
この結果、第4の実施形態によれば、アバタが連続的に行う動きにより他人に与える印象と、実空間における人が連続的に行う振る舞いにより他人に与える印象とのずれを抑止するように、モデル候補を選定することが可能となる。つまり、連続的に動くアバタを介して他人に与える印象と、アバタの元となっている人が実際にとっている連続的な振る舞いにより他人に与える印象とのずれを抑止することができる。
[第5の実施形態]
上記第1及び第2の実施形態では、動きの種類または他のアバタに対する動きの傾向に基づいてモデル候補を読み出す場合について説明した。これに対して、第5の実施形態では、動きの種類または他のアバタに対する動きの傾向に基づいて読み出したモデル候補の部位値について、更に、動き(変化)判定部1012により算出されたアバタの各部位の部位値との類似度を算出する。そして、算出した類似度に基づいて、モデル候補の絞り込みを行う。また、第5の実施形態では、更に、モデル候補の階層構成を用いて誤りやすさ閾値を超える部位に連結する部位を特定し、特定した部位の部位値に基づいて、モデル候補の絞り込みを行う。以下、第5の実施形態について、第1の実施形態との相違点を中心に説明する。
<サーバ装置の機能構成>
はじめに、第5の実施形態におけるサーバ装置110の機能構成について説明する。図34は、サーバ装置の機能構成の一例を示す第5の図である。図10に示す機能構成との相違点は、類似度算出部3401、連結部位判定部3402、を有する点である。
類似度算出部3401は、誤りやすさ判定部1013により、誤りやすさ閾値を超える部位ではないと判定されたアバタの部位を特定する。また、類似度算出部3401は、誤りやすさ閾値を超える部位ではないと判定されたアバタの部位それぞれの部位値について、読み出されたモデル候補それぞれの同部位の部位値との類似度を算出する。更に、類似度算出部3401は、算出した類似度が所定の閾値以上となるモデル候補を、連結部位判定部3402に通知する。
連結部位判定部3402は、類似度算出部3401より通知された複数のモデル候補を識別する。また、連結部位判定部3402は、複数のモデル候補の各部位のうち、誤りやすさ閾値を超える部位に連結する部位について、それぞれの部位値(例えば、位置)を抽出し、部位ごとにグルーピングする。これにより、複数のモデル候補の部位のうち、誤りやすさ閾値を超える部位に連結する部位のそれぞれの部位値を、複数のグループにグルーピングすることができる。
連結部位判定部3402は、更に、動き(変化)判定部1012により算出されたアバタの各部位の部位値が、複数のグループのいずれに分類されるかを判定する。
また、連結部位判定部3402は、動き(変化)判定部1012により算出されたアバタの各部位の部位値が分類されたグループにグルーピングされているモデル候補を抽出する。更に、連結部位判定部3402は、抽出したモデル候補を印象評価値(仮想空間)算出部1016に通知する。
なお、連結部位判定部3402は、アバタの各部位間の連結状態を示す情報を参照することで、連結する部位を認識する。図35は、アバタの各部位間の連結状態を示す情報の一例を示す図である。
図35に示すように、アバタの各部位間の連結状態は複数の階層により表すことができ、図35において、上の部位は上の階層に、下の部位は下の階層に配置して示している。上の階層に配置された部位と下の階層に配置された部位とが直線で接続されている場合、各部位は、用語の上下方向に連結されていることを示している。また、同じ階層に配置された部位が直線で接続されている場合、各部位は、用語の左右方向に連結されていることを示している。なお、足の指及び手の指の連結状態については、左足の指の連結状態のみを記載し、右足の指の連結状態、左手の指及び右手の指の連結状態については省略している。
また、図36は、モデル候補の各部位の部位値をグルーピングした様子を示す図である。具体的には、連結部位判定部3402に通知されたモデル候補の各部位のうち、誤りやすさ閾値を超える部位に連結する部位の部位値(ここでは位置)を、複数のグループにグルーピングした様子を示す図である。図36の例では、連結部位判定部3402が、誤りやすさ閾値を超える部位(左側の肘)から下(左下腕以下の階層の部位が相当)に連結する部位として、"首"、"左肩"、"左上腕"を抽出し、通知されたモデル候補の各部位の位置を、白丸でプロットしている。
なお、図36の例では、連結部位判定部3402は、通知されたモデル候補の部位=首の部位値(位置)を1つのグループ(グループ3601)にグルーピングしている。また図36の例では、通知されたモデル候補の部位=左肩の部位値(位置)を、2つのグループ(グループ3611、3612)にグルーピングしている。更に、図36の例では、通知されたモデル候補の部位=左上腕の部位値(位置)を、4つにグループ(グループ3621〜3624)にグルーピングしている。動き(変化)判定部1012により算出された表示前のアバタの各階層のデータは、太い点線で示されるグループ(首は3601、左肩は3611、左上腕は3622)に類似していると分類された。これらの太い点線で示されるグループ(首は3601、左肩は3611、左上腕は3622)全てに属するモデルによって示される左下腕の座標値も図中の白丸として示した。全ての座標値を次の処理のモデル候補として採用してもよいし、図中に示したように、ここで得られた左下腕のデータもグルーピングし、グループ中のデータの中央値として黒い丸で示した座標を求めるような実装の形態があってもよい。
<サーバ装置の第2の仮想空間用情報提供部が実行するモデル候補選定処理>
次に、サーバ装置110の第2の仮想空間用情報提供部112が実行する、モデル候補選定処理の流れについて説明する。図37は、モデル候補選定処理のフローチャートである。なお、図18を用いて説明したフローチャートと同じ工程については同じ符号を付し、ここでは説明を省略する。図18との相違点は、ステップS3701〜S3702である。
ステップS3701において、類似度算出部3401は、ステップS1807において読み出された複数のモデル候補を、部位値の類似度に基づいて絞り込む、モデル候補一次絞り込み処理を行う。
ステップS3702において、連結部位判定部3402は、ステップS3701において絞り込まれたモデル候補を、誤りやすさ閾値を超える部位に連結する部位の部位値に基づいて絞り込む、モデル候補二次絞りこみ処理を行う。
なお、モデル候補一次絞りこみ処理(ステップS3701)とモデル候補二次絞り込み処理(ステップS3702)の詳細は、図38及び図39を用いて以下に説明する。
<モデル候補一次絞り込み処理>
図38は、モデル候補一次絞りこみ処理のフローチャートである。ステップS3801において、類似度算出部3401は、動き(変化)判定部1012により算出されたアバタの各部位のうち、誤りやすさ閾値を超える部位ではないと判定されたアバタの各部位を処理対象として識別し、当該処理対象の部位の部位値を抽出する。また、類似度算出部3401は、ステップS1807において読み出されたモデル候補それぞれについて、処理対象となった各部位についての部位値を抽出する。更に、類似度算出部3401は、アバタの処理対象の部位の部位値と、モデル候補の同部位の部位値との類似度を算出する。なお、部位値の類似度は、例えば外部APIの呼び出しによって算出してもよい。あるいは、処理対象の各部位ごとに部位値を比較し、部位値の差異を正規化することで類似度スコアを求め、処理対象の部位全体の類似度スコアを求める等のような計算を行ってもよい。あるいは、処理対象の部位のうち、いくつかの部位をグルーピング(隣り合う2つの部位や、連動する3つの部位を事前に取り決める等)して、それらの類似度スコアを求めるような計算を行ってもよい。
ステップS3802において、類似度算出部3401は、算出した類似度が所定の閾値以上であるか否かを判定する。ステップS3802において、所定の閾値未満であると判定した場合には(ステップS3802においてNo)、ステップS3804に進む。この場合、当該モデル候補は、連結部位判定部3402に通知されない。
一方、ステップS3802において、所定の閾値以上であると判定した場合には(ステップS3802においてYes)、ステップS3803に進む。ステップS3803において、類似度算出部3401は、当該モデル候補を連結部位判定部3402に通知する。
ステップS3804において、類似度算出部3401は、図37のステップS1807において読み出された全てのモデル候補について、類似度を算出したか否かを判定する。ステップS3804において、類似度を算出していないモデル候補があると判定した場合には(ステップS3804においてNo)、ステップS3801に戻り、モデル候補一次絞り込み処理を継続する。
一方、ステップS3804において、類似度を算出していないモデル候補がないと判定した場合には(ステップS3804においてYes)、モデル候補一次絞り込み処理を終了する。
<モデル候補二次絞り込み処理>
図39は、モデル候補二次絞り込み処理のフローチャートである。ステップS3901において、連結部位判定部3402は、誤りやすさを超える部位であると判定されたアバタの部位と連結している部位を識別する。例えば、誤りやすさ閾値を超える部位が左下腕であった場合、連結している部位として、左上腕、左肩、首を識別する。
ステップS3902において、連結部位判定部3402は、類似度算出部3401より通知されたモデル候補について、連結している部位と識別された部位の部位値を、階層毎にグルーピングする。
例えば、類似度算出部3401より通知されたモデル候補が100個ある場合、階層ごとに部位=首の部位値が100個、部位=左肩の部位値が100個、部位=左上腕の部位値が100個ある。各階層100個ずつの部位値間の類似度によって、階層ごとに部位値をグルーピングする。グルーピングの方法は、グループ内の部位値の平均を用いてもよいし、1つのグループと判定する部位値の数を定めてもよい。図36の例では、各階層は、部位=首の場合1つ、部位=左肩の場合2つ、部位=左上腕の場合4つにグルーピングされている。
ステップS3903において、連結部位判定部3402は、センサデータに基づいて算出されたアバタの各部位の部位値が、各階層でどのグループに分類されるかを判定する。なお、図36の例では、アバタの各部位の部位値は、太い点線で示されるグループに類似していると判定され、当該グループに分類されたことを示している。
ステップS3904において、連結部位判定部3402は、分類されると判定されたグループに属するモデル候補を、印象評価値(仮想空間)算出部1016に通知する。上述したとおり、図36の例では、アバタの各部位の部位値が分類されると判定されたグループは、部位=首ではグループ3601、部位=左肩ではグループ3611、部位=左上腕ではグループ3622である。したがって、当該グループに属するモデル候補が、印象評価値(仮想空間)算出部1016に通知される。なお、図36の例は、類似度算出部3401より通知されたモデル候補の各部位の部位値のうち、誤りやすさ閾値を超える部位である左下腕の部位値も同時に図示している。ここで示した首がグループ3601、左肩がグループ3611、左上腕がグループ3622にそれぞれ属し、左下腕が図中の白丸で示した部位値であるモデル候補の全てを次の処理で採用するようにしてもよい。もしくは、図36中に示したように、左下腕の部位値もグルーピングし、各グループの部位値の中央値として、黒丸で示した位置を求めるようにしてもよい。そして、モデル候補には、首がグループ3601、左肩がグループ3611、左上腕がグループ3622に属し、左腕下が図中の黒丸で示した部位値となるモデルを用いる実装の形態があってもよい。
以上のとおり、第5の実施形態における画像生成システム100は、読み出した複数のモデル候補から、アバタの各部位の部位値に対する類似度が高いモデル候補を抽出する。
また、第5の実施形態において、画像生成システム100は、抽出したモデル候補について、誤りやすさ閾値を超える部位に連結する部位の部位値をグルーピングする。また、第5の実施形態において、画像生成システム100は、グルーピングした各グループのうち、アバタの各部位の部位値が類似するグループに属するモデル候補を更に抽出する。
これにより、第5の実施形態によれば、第1または第2の実施形態と比較して、より絞り込まれたモデル候補の中から印象評価値の近いモデル候補を選定することが可能となる。
なお、例示した100個の部位値の左下腕と連結している部位の部位値をグルーピングするにあたり、例えば"bone"の部位値のように位置と角度等1つの部位が複数の部位値を含む場合には、個々の部位値について、グルーピングを行う形態があってもよい。図36の例は、当該100個の部位値として、位置を用いてグルーピングを行った場合を示したものである。
[第6の実施形態]
上記第5の実施形態では、モデル候補の絞り込み処理として、誤りやすさ閾値を超える部位以外の部位についての類似度を用いた一次絞り込み処理と、誤りやすさ閾値を超える部位に連結する部位についての類似度を用いた二次絞り込み処理を行った。
これに対して、第6の実施形態では、モデル候補の姿勢に応じたコストを用いる二次絞り込み処理を行う。モデル候補の姿勢に応じたコストとは、実空間における人の振る舞いのしにくさを示したパラメータである。具体的には、実空間において人があまり意識せずに振る舞うことで生じる姿勢と、実空間において人が意識的に振る舞わなければ生じない姿勢とが区別されるように数値化したものである。第6の実施形態では、コストの低い(つまり、振る舞いがしやすい)モデル候補を抽出することで二次絞り込み処理を行う。以下、第6の実施形態について、第5の実施形態との相違点を中心に説明する。
<サーバ装置の機能構成>
はじめに、第6の実施形態におけるサーバ装置110の機能構成について説明する。図40は、サーバ装置の機能構成の一例を示す第6の図である。図34に示す機能構成との相違点は、コスト評価部4001を有する点である。
コスト評価部4001は、類似度算出部3401より通知された複数のモデル候補によりそれぞれ特定されるアバタの姿勢について、コストを算出する。また、コスト評価部4001は、算出したコストが所定の閾値以下となるモデル候補を、モデル候補として抽出する。
<コスト評価部により算出されるコスト>
図41は、コスト評価部により算出されるコストを説明するための図である。コスト評価部4001は、予めアバタの各部位に重さを割り当てる。ここでは、アバタの頭部に、重さ=4kgを割り当て、アバタの胸部に、重さ=8kgを割り当てたとする。
図41(a)に示すように、背筋と頭部とをまっすぐに伸ばした姿勢の場合、上半身(頭部及び胸部)の重さは、下半身に支えられている状態となり、上半身は最もコストが小さい状態である。具体的には、上半身の重さm=4kg+8kg=12kgであるが、上半身のコストは、コストC=m×cosθ=12×cos90°=0となる。
一方、図41(b)、(c)に示すように、腰を折り曲げて上半身を傾けた姿勢の場合、上半身の重さは、上半身自体が支える必要があり、上半身のコストは大きくなる。例えば、床面に対する上半身の傾きがθであった場合、上半身の上端である頭部にかかるコストは、コストC=1/2×m×cosθ×cosθとなる。
なお、上半身のコストは、上半身が何かによって支えられた状態にあるのか否かによっても変わってくる。図41(d)は、上半身が椅子の背もたれ等に支えられている状態を示している。この場合、支えられている位置より下側の重さは、椅子の背もたれ等により相殺されているものと考えることができ、コストの算出には入れない。つまり、図41(d)の場合、コストの算出に用いるのは、頭部の重さ(m=4kg)のみである。
同様に、図41(e)は、肘を机の上につくことで、上半身が支えられている状態を示している。この場合も、支えられている位置より下側の重さは、肘を机につけることで相殺されているものと考えることができるため、コストの算出には入れない。つまり、図41(e)の場合、コストの算出に用いるのは、頭部の重さ(m=4kg)のみである。
更に、図41(f)は、肘を机の上につくことで、頭部が支えられている状態を示している。この場合、支えられている位置が頭部であるため、頭部より下側の重さはコストの算出に入れない。つまり、図41(f)の場合、コストCはゼロとなる。
<モデル候補二次絞り込み処理>
次に、第6の実施形態におけるモデル候補二次絞り込み処理について説明する。図42は、モデル候補二次絞り込み処理の第2のフローチャートである。ステップS4201において、コスト評価部4001は、類似度算出部3401より通知されたモデル候補により特定される姿勢について解析し、アバタが何かによって支えられた状態にあるのか否かを各部位の角度を用いて判定する。例えば、胸部より下の部位が椅子の背もたれに支えられている角度か、腕の上腕や下腕の角度が胸部や頭部を支えている角度かで簡易に判定をする。他の形態として、センサデータ入力中のカラー画像データ等を用いて判定を行ってもよい。
ステップS4201における判定の結果、支えられた状態にないと判定した場合には(ステップS4202においてNo)、ステップS4202からステップS4204に進む。ステップS4204において、コスト評価部4001は、アバタの各部位に割り当てた重さを合算することで合計値wを算出する。
一方、ステップS4201における判定の結果、支えられた状態にあると判定した場合には(ステップS4202においてYes)、ステップS4202からステップS4203に進む。ステップS4203において、コスト評価部4001は、アバタの各部位に割り当てられた重さのうち、支えられている位置よりも上側の各部位に割り当てられた重さを合算することで合計値wを算出する。
ステップS4205において、コスト評価部4001は、合計値wに基づいて、処理対象のモデル候補についてのコストを算出する。この重さの数値をそのままコストとして用いてもよいし、θが0の時を最大値として正規化した数値を用いてよい。
ステップS4206において、コスト評価部4001は、類似度算出部3401より通知された全てのモデル候補について、コストを算出したか否かを判定する。
ステップS4206において、コストを算出していないモデル候補があると判定した場合には(ステップS4206においてNo)、ステップS4201に戻り、次のモデル候補についてコストを算出する。一方、ステップS4206において、全てのモデル候補についてコストを算出したと判定した場合には(ステップS4206においてYes)、ステップS4207に進む。
ステップS4207において、コスト評価部4001は、算出したコストが所定の閾値以下のモデル候補を抽出し、印象評価値(仮想空間)算出部1016に通知したうえで、モデル候補二次絞り込み処理を終了する。
このように、第6の実施形態における画像生成システム100は、モデル候補により特定される姿勢から算出されるコストに基づいてモデル候補の二次絞り込み処理を行う。これにより、実空間において人が意識的に振る舞いをしなければ生じない姿勢を含むモデル候補よりも、実空間において人が意識せずに振る舞うことで生じる姿勢を含むモデル候補を優先的にモデル候補として抽出することができる。
[第7の実施形態]
上記第6の実施形態では、モデル候補により特定される姿勢から算出されるコストに基づいて、モデル候補の二次絞り込み処理を行った。これに対して、第7の実施形態では、モデル候補により特定される姿勢から算出されるコストに、所定の重み付けを行うことで、重み付きコストを算出し、算出した重み付きコストに基づいて、モデル候補の二次絞り込み処理を行う。以下、第7の実施形態について、第6の実施形態との相違点を中心に説明する。
<サーバ装置の機能構成>
はじめに、第7の実施形態におけるサーバ装置110の機能構成について説明する。図43は、サーバ装置の機能構成の一例を示す第7の図である。図40に示す機能構成との相違点は、重み算出部4301を有する点である。
重み算出部4301は、類似度算出部3401より通知された複数のモデル候補によりそれぞれ特定されるアバタの姿勢を、複数種類のグループに分類し、それぞれのグループに属するモデル候補を識別する。
また、重み算出部4301は、各グループに分類されたモデル候補の数をカウントすることで、各グループの頻度値(重み係数)を算出する。重み算出部4301は、コスト評価部4001において算出したそれぞれのモデル候補のコストに、それぞれのモデル候補が属するグループの頻度値(重み係数)をかけあわせることで、重み付きコストを算出する。
更に、重み算出部4301は、算出した重み付きコストが所定の閾値以下のモデル候補を抽出し、印象評価値(仮想空間)算出部1016に通知する。
<モデル候補二次絞り込み処理>
次に、第7の実施形態におけるモデル候補二次絞り込み処理について説明する。図44は、モデル候補二次絞り込み処理の第3のフローチャートである。ステップS4401において、重み算出部4301は、類似度算出部3401より通知されたモデル候補により特定される姿勢について解析し、複数種類のグループに分類し、それぞれのグループに属するモデル候補を識別する。
ステップS4402において、重み算出部4301は、ステップS4401において分類したそれぞれのグループに属するモデル候補の数をカウントする。ステップS4403において、重み算出部4301は、カウントしたモデル候補の数に基づいて、それぞれのグループの頻度値(重み係数)を算出し、ステップS4201に進む。
ステップS4201からステップS4206までの処理は、図42のステップS4201からステップS4206の処理と同じであるため、ここでは説明を省略する。
ステップS4404において、重み算出部4301は、ステップS4206において算出されたそれぞれのモデル候補の正規化されたコストに、それぞれのモデル候補が属するグループの頻度値(重み係数)をかけ合わせることで、重み付きコストを算出する。
ステップS4405において、重み算出部4301は、類似度算出部3401より通知された全てのモデル候補について、重み付きコストを算出したか否かを判定する。
ステップS4405において、重み付きコストを算出していないモデル候補があると判定した場合には(ステップS4405においてNo)、ステップS4301に戻り、次のモデル候補について重み付きコストを算出する。一方、ステップS4405において、全てのモデル候補について重み付きコストを算出したと判定した場合には(ステップS4405においてYes)、ステップS4406に進む。
ステップS4406において、重み算出部4301は、算出した重み付きコストが所定の閾値以下のモデル候補を抽出し、印象評価値(仮想空間)算出部1016に通知したうえで、モデル候補二次絞り込み処理を終了する。
このように、第7の実施形態における画像生成システム100は、モデル候補により特定される姿勢から算出されるコストに、それぞれの姿勢が発生する頻度に応じた重み係数をかけ合わせることで重み付けコストを算出する。また、第7の実施形態における画像生成システム100は、算出した重み付けコストに基づいてモデル候補の二次絞り込み処理を行う。これにより、実空間において人が意識せずに振る舞うことで生じる姿勢を含むモデル候補が優先的に抽出されるため、実際に当該環境でよく行われている振る舞いに類似するモデル候補を選定することが可能となる。
[第8の実施形態]
上記第5の実施形態では、誤りやすさ閾値を超える部位に連結する部位の部位値に基づいて、モデル候補を抽出した。しかしながら、このような抽出方法の場合、モデル候補の数が少ない結果となることも考えられる。そこで、第8の実施形態では、誤りやすさ閾値を超える部位に連結する部位の部位値に基づいて抽出したモデル候補の数が少ない場合に、連結部位に連動する可能性が高い連動部位の部位値に基づいてモデル候補を抽出する。以下、第8の実施形態について、第5の実施形態との相違点を中心に説明する。
<サーバ装置の機能構成>
はじめに、第8の実施形態におけるサーバ装置110の機能構成について説明する。図45は、サーバ装置の機能構成の一例を示す第8の図である。図34に示す機能構成との相違点は、連動部位確認処理部4501を有する点である。
連動部位確認処理部4501は、連結部位判定部3402によるモデル候補二次絞り込み処理(図39)により抽出されたモデル候補の数が所定数以下か否かを判定する。また、連動部位確認処理部4501は、モデル候補二次絞り込み処理(図39)により抽出されたモデル候補の数が所定数以下であると判定した場合に、類似度算出部3401より通知されたモデル候補より、他のモデル候補を抽出する。
具体的には、連動部位確認処理部4501は、誤りやすさ閾値を超える部位に連結する部位と連動する可能性の高い連動部位を特定し、特定した連動部位の部位値に基づいて、類似度算出部3401より通知されたモデル候補の中からモデル候補を抽出する。これにより、印象評価値(仮想空間)算出部1016では、連結部位判定部3402により抽出されたモデル候補と、連動部位確認処理部4501により抽出されたモデル候補とについて、印象評価値を算出することができる。
<モデル候補二次絞り込み処理>
次に、第8の実施形態におけるモデル候補二次絞り込み処理について説明する。図46は、モデル候補二次絞り込み処理の第4のフローチャートである。ステップS3901〜S3904における処理は、図39のステップS3901〜S3904における処理と同じである。
ステップS4601において、連動部位確認処理部4501は、ステップS3904において抽出したモデル候補の数が、所定の閾値以下であるか否かを判定する。
ステップS4601において、所定の閾値以下でないと判定した場合には(ステップS4601においてNo)、モデル候補の数が少なくないと判定し、モデル候補二次絞り込み処理を終了する。
一方、ステップS4601において、所定の閾値以下であると判定した場合には(ステップS4601においてYes)、ステップS4602に進む。ステップS4602において、連動部位確認処理部4501は、誤りやすさ閾値を超える部位と連結する各部位(連結部位)に対して連動する可能性が高い部位のスコアを読み出す。なお、各部位と連動する可能性の高い部位のスコアは予め定められているものとする。
ステップS4603において、連動部位確認処理部4501は、ステップS4502において読み出したスコアに基づいて、連結部位と連動する可能性の高い連動部位を特定する。
ステップS4604において、連動部位確認処理部4501は、類似度算出部3401より通知されたモデル候補の中から、ステップS4503において特定した連動部位の部位値に基づいて、モデル候補を抽出する。
これにより、印象評価値(仮想空間)算出部1016は、ステップS3904において抽出されたモデル候補と、ステップS4604において抽出されたモデル候補とについて、印象評価値(仮想空間)を算出することができる。
具体例を挙げて更に詳細に説明する。第5の実施形態で部位ごとの部位値のグルーピングの対象が、連結部位であったのに対し、第8の実施形態では、連結部位と合わせて連結部位と連動する部位も含めれる。連結部位が左上腕、左肩、首元であり、それぞれの部位と連動する可能性が高い上位5部位がシステムデータにより以下のように定められていたとする(部位の横の数字が、連動する可能性の順位に応じたスコア)。
・(左上腕:左下腕5、左肩4、右肩3、右下腕2、左手首1)
・(左肩:左上腕5、左下腕4、首元3、左手首2、右肩1)
・(首元:首5、頭部4、左肩3、右肩2、胸部1)
連動部位確認処理部4501は、スコアを算出する。(例えば合算値や平均値等)。下記は連結部位(左上腕、左肩、首元の3つの部位)のスコアを部位ごとに合算した場合を示している。
・(左上腕、左肩、首元:[左下腕9]、[左肩7]、右肩6、[左上腕5]、首5、頭部4、[首元3]、[左手首3]、右下腕2、胸部1)
連動部位確認処理部4501は、算出したスコアに基づいて連動部位を特定する。更に、連動部位確認処理部4501は、類似度算出部3401より通知されたモデル候補の各部位のうち、連動部位として特定した部位(右肩、首、頭部、右下腕、胸部)それぞれの部位値を抽出し、部位ごとにグルーピングする。更に、連動部位確認処理部4501は、アバタの同部位の部位値が類似するグループに属するモデル候補を抽出する。
つまり、上記第5の実施形態では、連結部位(左上腕、左肩、首元)の部位値に基づいて、モデル候補を抽出したが、第8の実施形態では、左上腕、左肩、首の連動部位の部位値に基づいてモデル候補を抽出する。
なお、連動部位として特定した全ての部位について、アバタの同部位の部位値が類似するモデル候補を抽出してもよいし、連動部位として特定した部位のうちの一部の部位の部位値が、アバタの当該部位の部位値と類似するモデル候補を抽出してもよい。
このように、第8の実施形態において画像生成システム100は、連結部位の部位値に基づいて抽出したモデル候補の数が少なかった場合に、連結部位に連動する可能性の高い連動部位の部位値に基づいてモデル候補を抽出する。
これにより、第8の実施形態によれば、左腕の微妙な変化だけでは部位ごとの部位値のグルーピングによるモデル候補の分類がうまくいかないような場合であっても、左腕側と連動した右腕側の部位値のばらつきによってモデル候補の分類ができる。また、第8の実施形態によれば、動き(変化)判定部1012により算出された表示前のアバタと真に類似しているモデル候補を抽出することが可能となる。この結果、例えば、両腕を同様のフォームで動かしている場合と片腕を動かさずに片腕のみを動かしている場合とを類別すること等が容易になり、その後に各モデル候補に対して行う印象評価値の処理等も印象にバラつきが生まれる。これにより、連結部位近辺では部位が類似しているが、トータルでは印象の異なるモデルを誤ってモデル候補として選定する可能性を低減させることができる。
[第9の実施形態]
上記第2の実施形態では、他のアバタに対する動きの傾向に基づいてモデル候補を読み出した。これに対して、第9の実施形態では、他のアバタに対する動きの傾向に優先度を設定しておき、他のアバタに対する動きの傾向と優先度とに基づいてモデル候補を読み出す。以下、第9の実施形態について、第2の実施形態との相違点を中心に説明する。
<他のアバタに対する動きの種類と傾向と優先度との関係を定義した定義情報>
はじめに、他のアバタに対する動きの傾向の優先度について説明する。図47は、他のアバタに対する動きの種類と傾向と優先度との関係を定義した定義情報の一例を示す図である。
図47に示すように、定義情報4700は情報の項目として、"他のアバタに対する動きの種類"、"接近傾向/回避傾向"に加え、"優先度"を含む。"優先度"には、他のアバタに対する動きの種類の優先度が格納されている。
<モデル候補読み出し処理>
次に、モデル候補読み出し処理(図25のステップS2502)について説明する。図48は、モデル候補読み出し処理の第4のフローチャートである。なお、図26を用いて詳細に説明したフローチャートと同じ工程については同じ符号を付し、ここでは説明を省略する。図26との相違点は、ステップS4801、S4802である。
ステップS4801において、モデル候補読み出し部2102は、定義情報4700を参照し、ステップS2601において識別した"他のアバタに対する動きの種類"に対応する"他のアバタに対する動きの傾向"を判定する。
ステップS4802において、モデル候補読み出し部2102は、定義情報4700を参照し、ステップS4801において判定した"傾向"と同じ傾向であって、同じ優先度を有する"他のアバタに対する動きの種類"を抽出する。なお、同じ優先度がない場合には、例えばプラスマイナス1以内の優先度を有する"他のアバタに対する動きの種類"を抽出する、というように優先度の近いものを抽出するようにしてもよい。
このように、第9の実施形態における画像生成システム100は、他のアバタに対する動きの傾向と優先度とに基づいて、モデル候補の読み出しを行う。
これにより、第9の実施形態によれば、ユーザの振る舞いとアバタの動きとで、コミュニケーションの相手に与える印象を、接近傾向/回避傾向を同じにすることができるだけでなく、その社会的振る舞いの優先度も類似したものを表示することが可能となる。
[第10の実施形態]
上記第2の実施形態では、アバタの複数の部位それぞれにおいて、部位値が同じタイミングで変化した場合でも、それぞれの変化について、他のアバタに対する動きの種類を判定した。また、上記第2の実施形態では、それぞれの変化について判定した他のアバタに対する動きの種類に対応する傾向に基づいて、それぞれモデル候補の読み出しを行った。
しかしながら、実空間における社会的振る舞いの傾向(接近傾向/回避傾向)は、他の社会的振る舞いと同時に行われたり、連続して行われたりすることによって変わる可能性がある。したがって、仮想空間においても、他のアバタに対する動きの傾向は、異なる種類の動き(他のアバタに対する動き)が複数組み合わさることで変わる可能性がある。
そこで、第10の実施形態では、異なる種類の動き(他のアバタに対する動き)が複数組み合わさることで傾向が変わる可能性がある場合、他のアバタに対する動きの傾向に基づくモデル候補の読み出しは行わない。
<他のアバタに対する動きの種類と傾向と傾向が変わる可能性のある組み合わせとの関係を定義した定義情報>
図49は、他のアバタに対する動きの種類と傾向と傾向が変わる可能性のある組み合わせとの関係を定義した定義情報の一例を示す図である。
図49に示すように、定義情報4900は情報の項目として、"他のアバタに対する動きの種類"、"接近傾向/回避傾向"に加え、"傾向が変わる可能性のある組み合わせ"が格納されている。"傾向が変わる可能性のある組み合わせ"には、"他のアバタに対する動きの種類"に格納された動きと組み合わさることで、傾向が変わる可能性のある動きの種類(他のアバタに対する動きの種類)が格納される。
<モデル候補読み出し処理>
次に、モデル候補読み出し処理(図25のステップS2502)の詳細について説明する。図50は、モデル候補読み出し処理の第5のフローチャートである。なお、図26を用いて詳細に説明したフローチャートと同じ工程については同じ符号を付し、ここでは説明を省略する。図26との相違点は、ステップS5001、S5002である。
ステップS5001において、動き(傾向)判定部2101は、定義情報4900を参照することで、他のアバタに対する動きの傾向が変わる可能性があるか否かを判定する。具体的には、動き(傾向)判定部2101は、他のアバタに対する動きの種類判定ログテーブル2400を参照し、ステップS2501において追加されたデータ行より、"判定時刻(開始)"と"判定時刻(終了)"に記録された時刻を抽出する。また、動き(傾向)判定部2101は、他のアバタに対する動きの種類判定ログテーブル2400を参照する。そして、動き(傾向)判定部2101は、抽出した時刻により識別される時間帯("判定時刻(開始)"と"判定時刻(終了)"の間の時間帯)と重複する時間帯の"判定時刻(開始)"と"判定時刻(終了)"を有するデータ行を検索する。また、動き(傾向)判定部2101は、検索されたデータ行の"他のアバタに対する動きの種類"と、ステップS2501において追加されたデータ行の"他のアバタに対する動きの種類"との組み合わせを対比する。更に、動き(傾向)判定部2101は、定義情報4900を参照し、当該組み合わせが他のアバタに対する動きの傾向が変わる可能性があるか否かを判定する。
ステップS5001において、傾向が変わる可能性ないと判定した場合には(ステップS5001においてNo)、ステップS1805に進む。
一方、ステップS5001において、傾向が変わる可能性があると判定した場合には(ステップS5001においてYes)、ステップS5002に進む。
ステップS5002において、モデル候補読み出し部2102は、検索されたデータ行に基づいて既に読み出されているモデル候補を削除する。
このように、第10の実施形態における画像生成システム100は、異なる種類の動き(他のアバタに対する動き)が複数組み合わさることで、他のアバタに対する動きの傾向が変わる可能性がある場合には、モデル候補の読み出しは行わない。また、既に読み出されたモデル候補については削除する。モデル候補の読み出し以降の処理を行わないことで、仮想空間用情報の更新は行われないため、他のユーザに対して、他のアバタに対する動きの傾向が変わる可能性がある動きは、提示されない。
これにより、第10の実施形態によれば、上記第2の実施形態と比較して、意味合いが変わってしまいそうな社会的振る舞いを他のユーザへ提示することを避けることが可能となる。
[その他の実施形態]
上記各実施形態では、仮想空間用情報生成部1002によりアバタの画像が生成されるごとに、ログ格納部116のアバタ部位変位ログテーブル2000を更新し、以降のモデル候補の読み出し対象とした。しかしながら、ログ格納部116のアバタ部位変位ログテーブル2000に格納したアバタ部位変位データのうち、所定の条件を満たさないアバタ部位変位データは、ログ格納部116から削除するようにしてもよい。
また、上記各実施形態は、任意に組み合わせることで新たな実施形態としてもよい。例えば、第5乃至第8の各実施形態は、第9または第10の実施形態と組み合わせてもよい。
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
人の振る舞いを仮想空間で表現するアバタに含まれる部位の情報を決定する際に、前記人の体の複数箇所を測定することで得られたデータを取得する収集手段と、
前記アバタの部位に、信頼度が低いと判断される部位が含まれるか否かを判定する判定手段と、
前記判定手段により、前記信頼度が低いと判断される部位が含まれると判定された場合に、前記人の印象を示す情報を記憶する記憶部を参照し、該信頼度が低いと判断される部位の情報を決定するための前記人の印象を示す情報を選定する選定手段と、
前記信頼度が低いと判断される部位の情報を、選定された前記人の印象を示す情報に基づいて決定し、前記信頼度が低いと判断されなかった部位の情報を、前記収集手段が取得したデータに基づいて決定して、前記アバタの画像を生成する生成手段と
を有することを特徴とする画像生成システム。
(付記2)
前記生成手段は、選定された前記人の印象を示す情報に基づいて、前記信頼度が低いと判断される部位の位置または角度を決定して、前記アバタの画像を生成することを特徴とする付記1に記載の画像生成システム。
(付記3)
前記アバタの部位の情報が変化した場合に、前記アバタの部位の動きの種類を判定する第1の判定手段を更に有し、
前記選定手段は、判定された前記アバタの部位の動きの種類に基づいて、前記人の印象を示す情報を選定することを特徴とする付記1に記載の画像生成システム。
(付記4)
前記アバタの部位の情報が変化した場合に、前記アバタの部位の他のアバタに対する動きの種類を判定する第2の判定手段を更に有し、
前記選定手段は、判定された前記アバタの部位の他のアバタに対する動きの傾向に基づいて、前記人の印象を示す情報を選定することを特徴とする付記1に記載の画像生成システム。
(付記5)
人の振る舞いを仮想空間で表現するアバタの部位に、信頼度が低いと判断される部位が含まれるか否かを判定し、
前記信頼度が低いと判断される部位が含まれると判定した場合に、前記人の印象を示す情報を記憶する記憶部を参照し、該信頼度が低いと判断される部位の情報を決定するための前記人の印象を示す情報を選定し、
選定された前記人の印象を示す情報に基づいて前記部位の情報を決定して、前記アバタの画像を生成する、
処理をコンピュータに実行させるための画像生成プログラム。
(付記6)
コンピュータが、
人の振る舞いを仮想空間で表現するアバタの部位に、信頼度が低いと判断される部位が含まれるか否かを判定し、
前記信頼度が低いと判断される部位が含まれると判定した場合に、前記人の印象を示す情報を記憶する記憶部を参照し、該信頼度が低いと判断される部位の情報を決定するための前記人の印象を示す情報を選定し、
選定された前記人の印象を示す情報に基づいて前記部位の情報を決定して、前記アバタの画像を生成する、
処理を実行する画像生成方法。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
100 :画像生成システム
110 :サーバ装置
111 :第1の仮想空間用情報提供部
112 :第2の仮想空間用情報提供部
120、130 :クライアント装置
121、131 :情報処理部
122、132 :深度センサ
123、133 :HMD
124、134 :頭部姿勢センサ
125、135 :音声センサ
126、136 :筋電位センサ
200 :実空間
221、222 :誤りやすさ閾値領域マップ
300 :仮想空間
301、302 :視野画像
340〜350 :アバタ
1001 :センサデータ収集部
1002 :仮想空間用情報生成部
1003 :仮想空間用情報送信部
1011 :センサデータ読み出し部
1012 :動き(変化)判定部
1013 :誤りやすさ判定部
1014 :モデル候補読み出し部
1015 :印象評価値(実空間)算出部
1016 :印象評価値(仮想空間)算出部
1017 :モデル候補選定部
1600 :動きの種類判定ログテーブル
1700 :アバタ部位変位データ(モデル候補)
2000 :アバタ部位変位ログテーブル
2101 :動き(傾向)判定部
2102 :モデル候補読み出し部
2400 :他のアバタに対する動きの種類判定ログテーブル
2701 :想定範囲算出部
2702 :モデル候補読み出し部
2800 :想定範囲情報
3001 :動き(時系列変化)判定部
3100 :動きの種類判定ログ(時系列)テーブル
3401 :類似度算出部
3402 :連結部位判定部
4001 :コスト評価部
4301 :重み算出部

Claims (6)

  1. 人の振る舞いを仮想空間で表現するアバタに含まれる部位の情報を決定する際に、前記人の体の複数箇所を測定することで得られたデータを取得する収集手段と、
    前記アバタの部位に、信頼度が低いと判断される部位が含まれるか否かを判定する判定手段と、
    前記判定手段により、前記信頼度が低いと判断される部位が含まれると判定された場合に、前記人の印象を示す情報を記憶する記憶部を参照し、該信頼度が低いと判断される部位の情報を決定するための前記人の印象を示す情報を選定する選定手段と、
    前記信頼度が低いと判断される部位の情報を、選定された前記人の印象を示す情報に基づいて決定し、前記信頼度が低いと判断されなかった部位の情報を、前記収集手段が取得したデータに基づいて決定して、前記アバタの画像を生成する生成手段と
    を有することを特徴とする画像生成システム。
  2. 前記生成手段は、選定された前記人の印象を示す情報に基づいて、前記信頼度が低いと判断される部位の位置または角度を決定して、前記アバタの画像を生成することを特徴とする請求項1に記載の画像生成システム。
  3. 前記アバタの部位の情報が変化した場合に、前記アバタの部位の動きの種類を判定する第1の判定手段を更に有し、
    前記選定手段は、判定された前記アバタの部位の動きの種類に基づいて、前記人の印象を示す情報を選定することを特徴とする請求項1に記載の画像生成システム。
  4. 前記アバタの部位の情報が変化した場合に、前記アバタの部位の他のアバタに対する動きの種類を判定する第2の判定手段を更に有し、
    前記選定手段は、判定された前記アバタの部位の他のアバタに対する動きの傾向に基づいて、前記人の印象を示す情報を選定することを特徴とする請求項1に記載の画像生成システム。
  5. 人の振る舞いを仮想空間で表現するアバタの部位に、信頼度が低いと判断される部位が含まれるか否かを判定し、
    前記信頼度が低いと判断される部位が含まれると判定した場合に、前記人の印象を示す情報を記憶する記憶部を参照し、該信頼度が低いと判断される部位の情報を決定するための前記人の印象を示す情報を選定し、
    選定された前記人の印象を示す情報に基づいて、前記信頼度が低いと判断される部位の情報を決定して、前記アバタの画像を生成する、
    処理をコンピュータに実行させるための画像生成プログラム。
  6. コンピュータが、
    人の振る舞いを仮想空間で表現するアバタの部位に、信頼度が低いと判断される部位が含まれるか否かを判定し、
    前記信頼度が低いと判断される部位が含まれると判定した場合に、前記人の印象を示す情報を記憶する記憶部を参照し、該信頼度が低いと判断される部位の情報を決定するための前記人の印象を示す情報を選定し、
    選定された前記人の印象を示す情報に基づいて、前記信頼度が低いと判断される部位の情報を決定して、前記アバタの画像を生成する、
    処理を実行する画像生成方法。
JP2015200553A 2015-10-08 2015-10-08 画像生成システム、画像生成プログラム及び画像生成方法 Expired - Fee Related JP6569452B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015200553A JP6569452B2 (ja) 2015-10-08 2015-10-08 画像生成システム、画像生成プログラム及び画像生成方法
US15/286,089 US10019828B2 (en) 2015-10-08 2016-10-05 Image generating apparatus, image generating system, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015200553A JP6569452B2 (ja) 2015-10-08 2015-10-08 画像生成システム、画像生成プログラム及び画像生成方法

Publications (2)

Publication Number Publication Date
JP2017073042A JP2017073042A (ja) 2017-04-13
JP6569452B2 true JP6569452B2 (ja) 2019-09-04

Family

ID=58498799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015200553A Expired - Fee Related JP6569452B2 (ja) 2015-10-08 2015-10-08 画像生成システム、画像生成プログラム及び画像生成方法

Country Status (2)

Country Link
US (1) US10019828B2 (ja)
JP (1) JP6569452B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9500865B2 (en) * 2013-03-04 2016-11-22 Alex C. Chen Method and apparatus for recognizing behavior and providing information
JP6724582B2 (ja) * 2016-06-15 2020-07-15 富士通株式会社 画像生成装置、画像生成プログラム及び画像生成方法
US11315375B2 (en) 2017-03-31 2022-04-26 Nec Corporation Facial authentication system, apparatus, method and program
JPWO2018216355A1 (ja) * 2017-05-24 2020-05-21 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP6983639B2 (ja) * 2017-05-26 2021-12-17 株式会社コロプラ 仮想空間を介して通信するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP6890524B2 (ja) * 2017-10-31 2021-06-18 株式会社ソニー・インタラクティブエンタテインメント 姿勢制御システム
JP7077603B2 (ja) * 2017-12-19 2022-05-31 富士通株式会社 判定プログラム、判定方法及び画像生成装置
CN111670431B (zh) 2018-02-07 2024-04-26 索尼公司 信息处理装置、信息处理方法以及程序
JP2020065229A (ja) * 2018-10-19 2020-04-23 西日本電信電話株式会社 映像通信方法、映像通信装置及び映像通信プログラム
JP7168757B2 (ja) * 2019-02-26 2022-11-09 マクセル株式会社 映像表示装置及び映像表示方法
US11206505B2 (en) * 2019-05-06 2021-12-21 Universal City Studios Llc Systems and methods for dynamically loading area-based augmented reality content
JP2022132896A (ja) * 2021-03-01 2022-09-13 トヨタ自動車株式会社 仮想空間共有システム、仮想空間共有方法及び仮想空間共有プログラム
US11775066B2 (en) * 2021-04-22 2023-10-03 Coapt Llc Biometric enabled virtual reality systems and methods for detecting user intentions and manipulating virtual avatar control based on user intentions for providing kinematic awareness in holographic space, two-dimensional (2D), or three-dimensional (3D) virtual space
US20240096033A1 (en) * 2021-10-11 2024-03-21 Meta Platforms Technologies, Llc Technology for creating, replicating and/or controlling avatars in extended reality

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8243116B2 (en) * 2007-09-24 2012-08-14 Fuji Xerox Co., Ltd. Method and system for modifying non-verbal behavior for social appropriateness in video conferencing and other computer mediated communications
US20100277470A1 (en) 2009-05-01 2010-11-04 Microsoft Corporation Systems And Methods For Applying Model Tracking To Motion Capture
US8253746B2 (en) * 2009-05-01 2012-08-28 Microsoft Corporation Determine intended motions
KR101671900B1 (ko) * 2009-05-08 2016-11-03 삼성전자주식회사 가상 세계에서의 객체를 제어하는 시스템, 방법 및 기록 매체
US8744121B2 (en) * 2009-05-29 2014-06-03 Microsoft Corporation Device for identifying and tracking multiple humans over time
US8390680B2 (en) * 2009-07-09 2013-03-05 Microsoft Corporation Visual representation expression based on player expression
US7961910B2 (en) * 2009-10-07 2011-06-14 Microsoft Corporation Systems and methods for tracking a model
JP2011258158A (ja) * 2010-06-11 2011-12-22 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
AU2011203028B1 (en) * 2011-06-22 2012-03-08 Microsoft Technology Licensing, Llc Fully automatic dynamic articulated model calibration
US20130249947A1 (en) * 2011-08-26 2013-09-26 Reincloud Corporation Communication using augmented reality
JP2013225245A (ja) * 2012-04-23 2013-10-31 Sony Corp 画像処理装置、画像処理方法及びプログラム
US20140002580A1 (en) * 2012-06-29 2014-01-02 Monkeymedia, Inc. Portable proprioceptive peripatetic polylinear video player

Also Published As

Publication number Publication date
JP2017073042A (ja) 2017-04-13
US10019828B2 (en) 2018-07-10
US20170103564A1 (en) 2017-04-13

Similar Documents

Publication Publication Date Title
JP6569452B2 (ja) 画像生成システム、画像生成プログラム及び画像生成方法
CN110325949A (zh) 用于预测触摸解释的多任务机器学习
KR102223693B1 (ko) Nui 관여의 검출
CN104520849A (zh) 使用外在物理表达的搜索用户界面
JP6756236B2 (ja) アクション指示プログラム、アクション指示方法及び画像生成装置
US10514752B2 (en) Methods and apparatus to determine objects to present in virtual reality environments
US20220291753A1 (en) Spatial Gesture Recognition using Inputs from Different Devices to Control a Computing Device
JP7077603B2 (ja) 判定プログラム、判定方法及び画像生成装置
AU2015201056B2 (en) Identifying movements using a motion sensing device coupled with an associative memory
Hansberger et al. A multimodal interface for virtual information environments
Xia et al. Using the virtual data-driven measurement to support the prototyping of hand gesture recognition interface with distance sensor
JP5910249B2 (ja) インタラクション装置およびインタラクション制御プログラム
Postawka et al. Lifelogging system based on Averaged Hidden Markov Models: dangerous activities recognition for caregivers support
JP6623366B1 (ja) 経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体
Priandani et al. Real time advanced head movement recognition for application controller based on Android internal gyroscope sensor
Sung et al. Motion quaternion-based motion estimation method of MYO using K-means algorithm and Bayesian probability
Fernando et al. Computer vision based privacy protected fall detection and behavior monitoring system for the care of the elderly
Li et al. Continuous dynamic gesture spotting algorithm based on Dempster–Shafer Theory in the augmented reality human computer interaction
Rustagi et al. Virtual Control Using Hand-Tracking
JPWO2022024272A5 (ja)
WO2017116878A1 (en) Multimodal interaction using a state machine and hand gestures discrete values
Shen et al. Towards Open-World Gesture Recognition
JP7390891B2 (ja) クライアント装置、サーバ、プログラム、及び、情報処理方法
Bahrii et al. Implementing alternative communication using a limited number of simple sign language gestures
Srivastava et al. Robust approach for emotion classification using gait

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190607

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190722

R150 Certificate of patent or registration of utility model

Ref document number: 6569452

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees