[実施形態]
図1は、本発明の一実施形態である通信システム10の全体構成を示すブロック図である。通信システム10は、ユーザ間で音声とAR動画によるリアルタイムなコミュニケーションを実現するための情報処理システムであり、本発明に係る画像コミュニケーションシステムの一例である。本実施形態において、AR動画とは、複数のユーザによって撮影された映像を互いに合成した動画をいい、AR技術を用いて生成されるものである。なお、ここでいうリアルタイムとは、目的とする処理があらかじめ決められた時間までに終了することを意味し、当該時間が比較的短時間であるものを意味する。通信システム10は、AR動画生成装置100と、接続管理装置200と、ユーザ端末300と、ネットワーク400とを備える。
AR動画生成装置100は、複数のユーザ端末300から動画データを受信し、これらを合成した合成動画データを生成及び送信するサーバ装置である。接続管理装置200は、ユーザ端末300間の接続(ここでは呼接続)を管理し、発話や終話を制御するサーバ装置である。接続管理装置200による管理には、コミュニケーションのリアルタイム性を確保するための処理が含まれる。なお、AR動画生成装置100と接続管理装置200とは、ネットワーク400によらずに、これとは異なる通信回線で互いに接続されていてもよい。
ユーザ端末300は、通信システム10によってコミュニケーションを行うユーザが使用する通信端末である。ユーザ端末300は、通信システム10のための専用の通信端末であってもよいし、本実施形態のコミュニケーションを行うために必要な周辺機器をスマートフォンやパーソナルコンピュータに取り付けたものであってもよい。なお、ユーザ端末300は、実際にはネットワーク400に多数接続されていてもよいが、図1ではコミュニケーションを行う二者の端末のみが図示されている。以下においては、これらの端末を区別する必要がある場合には、「ユーザ端末300a」、「ユーザ端末300b」と表記するものとする。
ネットワーク400は、音声や動画などのデータを送受信するためのネットワークである。ネットワーク400は、音声を送受信するための通信回線と動画を送受信するための通信回線を別異に構成したものであってもよいが、そうでなくともよい。また、ネットワーク400は、パケット交換方式と回線交換方式のいずれの方式の通信回線を用いたものであってもよい。
図2は、ユーザ端末300のハードウェア構成を示すブロック図である。ユーザ端末300は、制御部310と、記憶部320と、通信部330と、第1撮影部340と、第2撮影部350と、表示部360と、音声入出力部370と、操作部380とを備える。図2に示す構成のことを、以下においては「標準構成」という。
制御部310は、ユーザ端末300の動作を制御する手段である。制御部310は、CPU(Central Processing Unit)などの演算処理装置やメモリを備え、所定のプログラムを実行することによって動画の撮影やデータ通信などを制御する。
記憶部320は、データを記憶する手段である。記憶部320は、補助記憶装置に相当し、例えば、ハードディスクやフラッシュメモリを含んで構成される。記憶部320は、ユーザ端末300(自装置)のリソースに関するリソース情報を記憶している。ここにおいて、リソース情報とは、ユーザ端末300がどのようなリソースを有しているかを示すデータをいう。ここでいうリソースは、ハードウェア的なリソースとソフトウェア的なリソースの双方を含み得る。リソース情報は、例えば、ユーザ端末300の識別情報(機種名など)、CPUの処理能力、第1撮影部340や第2撮影部350の性能(画素数など)、表示部360の性能(表示解像度など)、対応しているコーデック、コミュニケーションに必要なソフトウェアのバージョン情報などを示す。
通信部330は、ネットワーク400を介してデータを送受信する手段である。通信部330による通信は、無線・有線のいずれであってもよい。また、通信部330は、ユーザ端末300の一部が外付けの周辺機器によって構成される場合に当該周辺機器と通信を行う構成を含んでもよい。
第1撮影部340及び第2撮影部350は、いずれも被写体を撮影して動画データを出力する手段である。第1撮影部340及び第2撮影部350により出力される動画データは、被写体の各画素の色を表す色情報を少なくとも含んでいる。また、第1撮影部340は、ユーザを含む被写体を撮影するために用いられ、第2撮影部350は、所定の形状のマーカ(ARマーカ)を含む被写体を撮影するために用いられる。このマーカは、後述するように、第2撮影部350によって撮影された映像において3次元座標系を定義するのに用いられる。さらに、第1撮影部340は、距離画像センサを含んで構成される。一方、第2撮影部350は、通常のイメージセンサ、すなわち距離情報を出力しないイメージセンサであってもよい。
距離画像センサとは、各画素の距離情報を出力することができるイメージセンサである。距離画像センサには、あらかじめ決められたパターンの光を照射し、その反射光の歪みによってセンサと被写体との距離を測定する「パターン照射方式」と、被写体に対して光を照射し、光が被写体に反射して戻ってくるまでの所要時間によってセンサと被写体との距離を測定する「TOF(Time of Flight)方式」とがあるが、第1撮影部340にはいずれの方式が用いられてもよい。
第1撮影部340は、このような距離画像センサと通常のイメージセンサとを備え、色情報と距離情報とを出力する。距離画像センサとイメージセンサは、同じ方向を撮影し、距離画像センサの画素とイメージセンサの画素との対応付けがあらかじめ得られているものとする。また、第1撮影部340として、例えば特許文献2に記載されたような、一つのセンサ(撮像装置)で各画素毎の距離画像と色情報とを取得可能なイメージセンサ(撮像装置)を用いてもよい。
表示部360は、画像を表示する手段である。表示部360は、ユーザ端末300に備わる液晶等のディスプレイであってもよいし、ユーザ端末300とは別体のテレビのようなディスプレイであってもよい。また、表示部360は、HMD(Head Mounted Display)のようにユーザに装着される構成であってもよい。
音声入出力部370は、音声を入力及び出力する手段である。音声入出力部370は、スピーカやマイクロホンを備える。音声入出力部370は、音声の入出力をステレオ・モノラルのいずれで行ってもよい。
操作部380は、ユーザの操作を受け付ける手段である。操作部380は、キーパッド(キーボード)や、表示部360のディスプレイに重ねて設けられるタッチスクリーンを備える。
なお、ユーザ端末300は、これらの構成を全て備えるものを標準構成とするが、後述するように、当該構成の一部を有しない端末であっても、本実施形態のコミュニケーションを(制限付きで)行うことが可能である。また、ユーザ端末300は、表示解像度などの個々のリソースが一致していなくてもよい。
図3は、AR動画生成装置100及び接続管理装置200のハードウェア構成を示すブロック図である。AR動画生成装置100は、制御部110と、記憶部120と、通信部130とを備える。また、接続管理装置200は、制御部210と、記憶部220と、通信部130とを備える。制御部110、120は、自装置(AR動画生成装置100又は接続管理装置200)の動作を制御する手段である。また、記憶部120、220は、データを記憶する手段であり、通信部130、230は、データを送受信する手段である。通信部130、230は、ネットワーク400と通信するほか、ネットワーク400を介さずに互いに通信することも可能である。AR動画生成装置100の記憶部120には、後に詳述するように、被写体となる各ユーザの立体モデルを生成するときに用いられる既製立体モデル、及び、各ユーザの前回の通話までに生成された立体モデルが格納される。
図4は、AR動画生成装置100及び接続管理装置200の機能構成を示すブロック図である。AR動画生成装置100及び接続管理装置200は、所定のプログラムを実行することにより、図4に示す機能を実現させる。接続管理装置200の制御部210は、送受信部211及びデータ授受部212として機能する。また、AR動画生成装置100の制御部110は、合成制御部110a及び同期制御部110bとして機能する。
送受信部211は、音声メッセージを送受信する手段である。送受信部211は、ユーザ端末300aから送信された音声メッセージをユーザ端末300bに送信し、ユーザ端末300bから送信された音声メッセージをユーザ端末300aに送信する。また、送受信部211は、音声メッセージを送受信するために必要な接続管理を行い、必要に応じて、音量や音質の制御を行う。
データ授受部212は、AR動画生成装置100との間でデータを授受する手段である。データ授受部212は、各ユーザ端末300a、300bからリソース情報を取得し、AR動画生成装置100に回線情報と共に供給する。回線情報は、ユーザ端末300a、300bのそれぞれが使用している通信回線に関する情報であって、通信回線の伝達能力(転送帯域など)を示す。回線情報は、ユーザの通信事業者との契約内容によって異なる場合もあるし、通信回線の実際の利用状況(混雑の度合い)などによっても異なり得る。また、データ授受部212は、後述するAR動画生成装備100の解析部118による被写体の変化の解析結果を受信する。
合成制御部110aは、映像の合成を制御する手段である。合成制御部110aは、より詳細には、第1受信部111a、111bと、第2受信部112a、112bと、抽出部113a、113bと、モデリング部119a、119bと、生成部114a、114bと、送信部115a、115bとを備える。
なお、第1受信部111a、第2受信部112a、抽出部113a、モデリング部119a、生成部114a及び送信部115aは、それぞれ、ユーザ端末300aに合成動画データを送信するための構成である。一方、第1受信部111b、第2受信部112b、抽出部113b、モデリング部119b、生成部114b及び送信部115bは、それぞれ、ユーザ端末300bに合成動画データを送信するための構成である。例えば、第1受信部111aと第1受信部111bとは、動画データを受信する端末が異なるだけであって、実行する動作自体には相違がない。同様に、第2受信部112a、112b、抽出部113a、113b、モデリング部119a、119b、生成部114a、114b及び送信部115a、115bの各組み合わせも、処理対象とするデータが異なるだけで、実行可能な処理には相違がないものである。
第1受信部111a、111bは、第1撮影部340から出力された動画データを受信する手段である。すなわち、第1受信部111a、111bは、通信部130を介して受信されるデータのうち、第1撮影部340から出力された動画データを選択的に取得する。第1受信部111aは、この動画データをユーザ端末300bから取得し、第1受信部111bは、この動画データをユーザ端末300aから取得する。第1受信部111a、111bが受信する動画データは、距離情報を含む動画データである。
第2受信部112a、112bは、第2撮影部350にから出力された動画データを受信する手段である。すなわち、第2受信部112a、112bは、通信部130を介して受信されるデータのうち、第2撮影部350から出力された動画データを選択的に取得する。第2受信部112aは、この動画データをユーザ端末300aから取得し、第2受信部112bは、この動画データをユーザ端末300bから取得する。第2受信部112a、112bが受信する動画データは、その映像中にマーカを少なくとも含み、当該マーカによって定義される3次元の座標系の情報を含む動画データである。
以下においては、説明の便宜上、第1撮影部340により撮影された動画データを「第1動画データ」といい、第2撮影部350により撮影された動画データを「第2動画データ」という。つまり、第1動画データは距離情報を含み、第2動画データは(座標系を特定可能な)マーカの画像を含む。
抽出部113a、113bは、第1受信部111a、111bにより受信された第1動画データから、所定のオブジェクトに相当する画素(または、これらの画素により構成される画像)を抽出する手段である。抽出部113a、113bは、第1動画データの距離情報に基づき、センサとの距離が所定の条件を満たす画素を抽出し、当該画素の色情報と距離情報を特定する。ここにおいて、所定の条件は、センサとの距離について設定された閾値によって定まる。閾値は、距離の上限のみが設定されていてもよいし、上限と下限の双方が設定されていてもよい。尚、抽出された所定のオブジェクトに対応する画素により構成される画像であって、各画素の画素値が距離情報を表す画像を所定のオブジェクトの距離画像と言うことがある。
モデリング部119a、119bは、抽出部113a、113bにより抽出された画素の距離情報及び色情報を用いて、所定のオブジェクト(本例では、各ユーザ端末300a、300bのユーザの首から上の部分)の立体モデルを生成する。モデリング部119a、119bによるユーザの立体モデルの生成については、後に詳述する。
生成部114a、114bは、第1受信部111a、111bにより受信された第1動画データと第2受信部112a、112bにより受信された第2動画データとに基づいて、合成動画データを生成する手段である。生成部114a、114bは、第2受信部112a、112bにより受信された第2動画データが表す映像からマーカを検出し、検出したマーカの形状と実際のマーカの形状との相違(すなわち歪み)に基づいて傾きを特定することで、マーカの位置と傾きによって規定される3次元の座標系を特定する。更に、生成部114a、114bは、モデリング部119a、119bにより生成されたユーザの立体モデルに応じた画像を、当該立体モデルの座標系がマーカの座標系に一致するようにして描画(レンダリング)し、描画した画像を第2動画データが表す映像(以下、背景映像と言うこともある)に合成する。このとき、描画した画像がマーカ上に位置するようにする。
即ち、生成部114a、114bは、モデリング部119a、119bによって生成されるユーザの立体モデルの傾きや向きが、第2動画データが表す映像の座標系と対応するようにして合成動画データを生成する。具体的には、生成部114a、114bは、第2動画データについてマーカによって定義される座標系の上下方向とモデリング部119a、119bによって生成されるユーザの立体モデルの上下方向が一致し、且つ、当該座標系によって示される前後方向とユーザの立体モデルの前後方向が一致するようにして、第2動画データが表す映像と立体モデルに基づいて生成される映像とを合成する。
また、生成部114a、114bは、これらの映像を合成するときに、タイミングの調整やエフェクト等の画像処理を行ってもよい。例えば、生成部114a、114bは、第1動画データと第2動画データの受信タイミングに時間差がある場合に、その時間差が少なくなるように合成時のタイミングを調整する。また、ここでいう画像処理は、映像に対して何らかの画像を重畳する処理であってもよいし、合成する2つの映像の明るさや色合いを合わせる処理であってもよい。
送信部115a、115bは、生成部114a、114bにより生成された合成動画データをユーザ端末300a、300bに送信する手段である。送信部115aは、合成動画データをユーザ端末300aに送信し、送信部115bは、合成動画データをユーザ端末300bに送信する。このようにすることで、ユーザ端末300a、300bのユーザは、自身が送信した第2動画データ(マーカを撮影した動画データ)によって表される背景映像に対して相手方のユーザのオブジェクト(顔、上半身など)の映像が合成された動画を見ることができるようになる。
同期制御部110bは、合成動画データの再生と音声メッセージの再生とを同期させるための処理を実行する手段である。例えば、同期制御部110bは、回線情報の変化に追従するように、合成動画データの圧縮方式を異ならせることができる。また、同期制御部110bは、送受信部211が音声メッセージを合成動画データに合わせて再生するために必要なデータを接続管理装置200に供給することもできる。同期制御部110bは、より詳細には、データ授受部116と、判断部117と、解析部118とを含んで構成される。
データ授受部116は、接続管理装置200との間でデータを授受する手段である。データ授受部116は、接続管理装置200から回線情報及びリソース情報を取得し、接続管理装置200に後述する解析部118による被写体の変化の解析結果を示す情報を供給する。尚、各ユーザ端末300のリソース情報は、ユーザ端末300が他のユーザ端末300と通信を行うべくネットワーク400に接続されるとき、ネットワーク400を介して接続管理装置200に送信され、接続管理装置200からAR動画生成装置のデータ授受部116に供給される。データ授受部116に供給された各ユーザ端末300のリソース情報を、AR動画生成装置の記憶部120に格納してもよい。その場合、ユーザ端末300は、前回ネットワーク400に接続したときと変更があったリソース情報のみを送信し、接続管理装置200を介してリソース情報を受信したAR動画生成装置100では、受信したリソース情報に基づいて、記憶部120に記憶された各ユーザ端末300のリソース情報を更新する。
判断部117は、回線情報又はリソース情報に基づいて、ユーザ端末300aとユーザ端末300bとが合成動画データによるコミュニケーションを行うことができるか否かを端末毎に判断する手段である。例えば、合成制御部110aは、ユーザ端末300aとユーザ端末300bの一方の通信回線が合成動画データのリアルタイムな再生に必要な品質を満たしていないと判断部117によって判断される場合には、当該一方についての合成動画データを生成せずに、他方の合成動画データのみを生成及び送信する。また、合成制御部110aは、リソース情報に基づき、ユーザ端末300が第1撮影部340を備えていないと判断部117によって判断される場合には、合成動画データの生成を行わないようにすることも可能である。
解析部118は、第1受信部111a、111bにより受信された第1動画データにおける被写体の変化を解析し、その解析結果を表す情報を生成する手段である。同期制御部110bは、解析部118により生成された情報をデータ授受部116を介して接続管理装置200に供給する。解析部118は、例えば、被写体であるユーザの移動を解析する。あるいは、解析部118は、周知の顔認識技術(例えば、笑顔を検出する技術)を用いて、被写体であるユーザの表情の変化を解析してもよい。また、解析部118は、ユーザの変化に限らず、被写体全体の変化(例えば、明るさの変化)を解析により求めてもよい。
通信システム10の構成は、以上のとおりである。この構成のもと、ユーザは、ユーザ端末300を用いて他のユーザとリアルタイムなコミュニケーションを行う。ここでいうコミュニケーションは、音声と映像とを用いたものであり、例えば、いわゆるテレビ電話のようなものである。ただし、本実施形態のコミュニケーションは、AR技術によって合成された映像を利用可能である点において従来のテレビ電話と異なっている。
このようなコミュニケーションを実現するために、ユーザ端末300においては、被写体が異なる2種類の動画データが撮影及び送信される。動画データの一つは、上述した第1動画データであり、ユーザが自身を撮影して得られるものである。また、もう一つの動画データは、上述した第2動画データであり、ユーザがマーカを含む空間(背景)を撮影して得られるものである。
AR動画生成装置100は、これらの動画データを受信し、合成動画データを生成及び送信する。AR動画生成装置100は、一方のユーザ端末300から送信され、マーカを被写体に含む第2動画データと、他方のユーザ端末300から送信され、当該他方のユーザを被写体に含む第1動画データとを用いて合成動画データを生成し、これを当該一方のユーザ端末300に送信する。すなわち、AR動画生成装置100は、マーカを映した動画をあるユーザから受信し、これを背景に用いて、他のユーザを映した映像をここに合成する。このとき、AR動画生成装置100は、第1動画データ他のユーザに相当する所定のオブジェクトの画素を抽出し、抽出した画素の距離情報及び色情報を用いてオブジェクト(ユーザ)の立体モデルを生成し、生成した立体モデルに基づいて描画された画像を背景に重ね合わせる。
図5は、本実施形態において送受信される動画データが表す映像を説明するための模式図である。ここにおいて、映像V1a、V2a、V3aは、それぞれ、ユーザ端末300aにより送受信される動画データが表す映像であり、映像V1b、V2b、V3bは、それぞれ、ユーザ端末300bにより送受信される動画データが表す映像であるとする。また、映像V1a、V1bが第1動画データ、映像V2a、V2bが第2動画データ、映像V3a、V3bが合成動画データに、それぞれ相当する。
なお、図5において、Ma、Mbは、それぞれマーカを示している。マーカMa、Mbは、あらかじめ決められた形状の画像が印刷等によって表面に形成した小片であり、ユーザが好きな場所に配置することが可能である。マーカMa、Mbに形成された画像は、他の背景部分との識別が容易であり、かつ、座標系や傾きの特定が容易なように構成されていれば、どのようなパターンの画像であってもよい。
図5に示すように、ユーザ端末300aにおいて表示される映像V3aは、ユーザ端末300bからの第1動画データ(映像V1bを表す動画データ)に含まれる距離情報及び色情報を用いて生成されたユーザ端末300bのユーザ(オブジェクト)の立体モデルに基づいて生成された映像と、ユーザ端末300aからの第2動画データによって表される映像(V2a)とを合成して得られる映像である。一方、ユーザ端末300bにおいて表示される映像V3bは、ユーザ端末300aからの第1動画データ(映像V1aを表す動画データ)に含まれる距離情報及び色情報を用いて生成されたユーザ端末300aのユーザ(オブジェクト)の立体モデルに基づいて生成された映像と、ユーザ端末300bからの第2動画データ(V2b)とを合成して得られる映像である。
なお、図5に示すように、映像V3a、V3bに含まれる、背景映像V2a、V2bと合成されるオブジェクト(この場合、ユーザの上半身)の映像は、映像V1a、V1bに含まれるオブジェクトの映像と等しい倍率である必要はなく、拡大・縮小などを適宜に行ってよい。例えば、マーカMa、Mbの第2撮影部350からの距離が遠い場合は、合成映像V3a、V3b中のオブジェクトの映像の大きさを小さくし、マーカMa、Mbの第2撮影部350からの距離が近い場合は、合成映像V3a、V3b中のオブジェクトの映像の大きさを大きくしてよい。尚、マーカMa、Mbの第2撮影部350からの距離は、第2撮影部350により得られた映像V2a、V2b中のマーカMa、Mbの大きさから求められる。
図6は、所定のオブジェクトに相当する画素の抽出原理を説明するための図である。距離画像センサによって得られる距離情報は、図中の破線の矢印によって示すように、各画素について得られる。ここにおいて、図中のThで示した閾値を設定し、距離情報により表される距離がこの閾値よりも小さい画素を抽出するようにすれば、被写体のうちのユーザ(所定のオブジェクト)に相当する部分の画素が選択され、ユーザ以外の部分(ユーザの背後の壁など)に相当する画素は除外されるようにすることができる。
なお、この閾値は、あらかじめ設定されており、例えばユーザが距離画像センサから1m以内の場所で会話するようにしてもよいし、複数の選択肢の中からユーザが選択できるようになっていてもよい。あるいは、閾値は、抽出部113a、113bによって動的に設定されてもよい。例えば、抽出部113a、113bは、第1動画データに含まれる色情報に基づいてユーザの位置(顔など)を推定し、この推定結果に基づいて閾値を設定することも可能である。
上述したように、モデリング部119a、119bは、抽出部113a、113bにより抽出された画素の距離情報等を用いて、所定のオブジェクト(本例では、各ユーザ端末300a、300bのユーザ)の立体モデルを生成する。以下、モデリング部119a、119bの機能についてより詳細に説明する。尚、モデリング部119a、119bは処理対象とするデータが異なるだけで、実行可能な処理には相違がないので、以下の説明において、特に両者を区別する必要がない場合、単にモデリング部119と言う。合成制御部110aの他の機能部についても同様である。
図7は、モデリング部119の機能構成を示すブロック図である。モデリング部119は、部分立体モデル生成部1191と、立体モデル読出し部1192と、部分特定部1193と、データ置換部1194とを有する。部分立体モデル生成部1191、部分特定部1193、及びデータ置換部1194は、本発明の立体モデル生成部に対応する。
部分立体モデル生成部1191は、ユーザ端末300を用いたユーザ間のコミュニケーションが開始され、一方のユーザ端末300から送信される第1動画データから抽出部113によりオブジェクト(ユーザ)に対応する画素の抽出がなされると、抽出部113により抽出された画素の距離情報や色情報から、ユーザの一部の立体モデルである部分立体モデルを生成する。部分立体モデル生成部1191により立体モデルが生成されるユーザの一部は、第1撮影部により撮影された部分である。
尚、本実施形態において、オブジェクト(本例ではユーザ)の立体モデルは、任意の公知の技術に基づくものであってよい。例えば、立体モデルは、オブジェクトの3次元形状を表す複数の点の位置(座標)を示すデータを含むものとすることができる。これらの点を結ぶと複数の多角形(ポリゴン)が形成されるので、そのような立体モデルは、複数のポリゴンの集合として、オブジェクトの3次元形状を表すと言うこともできる。オブジェクトの3次元形状を表す複数の点(またはポリゴン)の数が多いほど、オブジェクトの形状を精確に表すことができるが、その分、データ量が大きくなり処理に長時間を要する。そのため、それらの点を、オブジェクトの構造上の特徴を示す部分(例えば、オブジェクトが人の顔の場合、目、耳、鼻、口、眉毛など)を表す点(特徴点と言う)に絞り、特徴点の座標によりオブジェクトの形状を表すことが考えられる。特徴点の数や位置は、対象となるオブジェクトの形状の複雑さや、求められているモデル化の精度等に応じて適宜決められる。また、立体モデルを構成するポリゴンにテクスチャの貼り付けを行うなどの公知の技術を用いて、モデル化の対象となるオブジェクトの各部の色や質感の表現の向上を図ってもよい。その場合、立体モデルはテクスチャ貼り付け等を行うのに必要な情報も含む。
立体モデル読出し部1192は、抽出部113により第1動画データから対応する画素の抽出がなされたユーザに対し既に生成された立体モデルが記憶部120に記憶されているか判定し、記憶されている場合、その立体モデルを記憶部120から読み出して部分特定部1193に供給する。一方、当該ユーザに対し生成された立体モデルが記憶部120に記憶されていない場合、当該ユーザに対応付けられた予め生成された立体モデル(以下、既製立体モデルと言う)を記憶部120から読み出して、読出した既製立体モデルを当該ユーザの立体モデルとして部分特定部1193に供給する。
図8は、既製立体モデルの一例を示す模式図である。この例では、既製立体モデルは、マネキンのようにディテールが実際の人よりも単純化された立体モデルである。本実施形態において、一つの既製立体モデルを全ユーザに対して共通に割り当ててもよいし、あるいは、例えば、性別、年齢、髪型、人種などの様々な属性の組合せに応じて複数の既製立体モデルを予め生成し、各ユーザ毎に対応付けられる既製立体モデルを設定してもよい。その場合、記憶部120には、例えば、ユーザの識別情報(ユーザID)と、既製立体モデルの識別情報(モデルID)とを対応付けるテーブルが記憶される。
各ユーザに対応付けられる既製立体モデルは、各ユーザの外観に極力近い外観を表していることが好ましく、各ユーザに対応付けられる既製立体モデルをユーザが選択可能としてもよい。具体的には、ユーザによるユーザ端末300の所定の操作に応じて、既製立体モデルを選択するためのメニュー画面を表示するのに必要なデータをAR動画生成装置100からユーザ端末300に送信し、ユーザ端末300に表示されたメニュー画面からユーザが選択した既製立体モデルを示す情報を、ユーザ端末300からAR動画生成装置100に送信するようにしてもよい。あるいは、各ユーザに対応する既存立体モデルを、各ユーザの属性(性別、年齢など)に基づいて、AR動画生成装置100が自動的に選択してもよい。
部分特定部1193は、立体モデル読出し部1192から供給された立体モデルのうち、部分立体モデル生成部1191により生成された部分立体モデルで置き換える(または更新する)部分を特定する。以下、部分特定部1193の具体的な動作の一例を図9を参照して説明する。
図9は、部分特定部1193の動作の一例を説明するための模式図である。部分特定部1193は、立体モデル読出し部1192から供給された立体モデルを様々な方向から見た場合に得られる候補画像(図8(a)〜(c))を生成する。各候補画像は、各画素毎の距離情報を含む距離画像であってもよいし、各画素毎の色情報を含む画像であってもよいし、あるいは、各画素毎の距離情報と色情報の両方を含む画像であってもよい。
続いて、部分特定部1193は、各候補画像における距離情報や色情報に基づいて公知の顔認識機能を用いてオブジェクト(ユーザ)の特徴部(例えば、目、耳、鼻など)の位置を特定する。また、同様に、抽出部113により抽出されたユーザの撮影画像(図8(d))において認識される特徴部の位置を特定する。そして、部分特定部1193は、各候補画像における特徴部の配置パターンと、抽出部113により抽出されたユーザの撮影画像における特徴部の配置パターンとを比較し、特徴部の配置パターンが撮影画像に最も類似する候補画像を特定する。図示した例では、立体モデルを左側面から見た場合に得られる図8(a)の候補画像における特徴部の配置パターンが、図8(d)に示す抽出部113により抽出されたユーザの撮影画像における特徴部の配置パターンに最も類似しているので、図8(a)の候補画像が特定される。そして、部分特定部1193は、特定された候補画像に現れる立体モデルの部分を、部分立体モデル生成部1191により生成された部分立体モデルで置き換える部分として特定する。尚、候補画像は3つに限らず、より多くてもよい。また、立体モデルを横から見た場合に得られる画像だけでなく、斜めのアングルで見た場合に得られる画像を含んでもよい。
データ置換部1194は、立体モデル読出し部1192により読み出された立体モデルのうち、部分特定部1193により特定された部分を、部分立体モデル生成部1191により生成された部分立体モデルで置き換えることにより、立体モデル読出し部1192により記憶部120から読み出された立体モデルを変形し、表示されるオブジェクト(本例ではユーザ)の画像を描画するのに用いられる立体モデルを生成する。上述したように、部分立体モデル生成部1191により生成される部分立体モデルは、距離画像センサを有する第1撮影部340によりオブジェクト(ユーザ)を撮影することにより得られる第1動画データから抽出部113により抽出された画素の距離情報に基づいて生成されるので、部分立体モデルで置き換えられた立体モデルの部分(即ち、第1撮影部340により撮影されたオブジェクトの部分に対応する立体モデルの部分)は、現実のオブジェクトの外観をリアルタイムに反映したデータを含むこととなる。一方、第1撮影部340により撮影されていないオブジェクトの部分に対応する立体モデルの部分は、既製立体モデルのデータを含むこととなる。
図10は、データ置換部1194により既製立体モデル(図8)の一部を部分立体モデルで置き換えることにより得られた立体モデルを例示する模式図である。図示されている例では、人の右正面部分の撮影データ(距離画像)に基づいて得られた部分立体モデルによって、既製立体モデルの右正面部分が置き換えられている。一方、距離画像に基づく立体モデルデータのない左側頭部及び後頭部は、既製立体モデルのデータにより表されている。従って、図10に示す立体モデルに基づいて描画される画像を用いて形成された合成映像が表示されているとき、ユーザによるユーザ端末300の操作によって画像内のオブジェクトが回転され、左側頭部及び後頭部が描画される場合、それらの部分は既製立体モデルのデータにより描画されることとなる。これにより、既製立体モデルのデータがない場合(即ち、左側頭部や後頭部が描画されない場合)と比べて、表示されるオブジェクトの画像が不自然になるのが抑制される。
尚、上述したように、立体モデル読出し部1192は、抽出部113により第1動画データから対応する画素の抽出がなされたユーザに対し既に生成された(即ち、一部が部分立体モデルで置き換えられた)立体モデルが記憶部120に記憶されている場合、その立体モデルを記憶部120から読み出して部分特定部1193に供給する。従って、既に生成された立体モデルに対し更に、新たに第1撮影部340で撮影されたオブジェクトの部分に対応する部分立体モデルによるデータの置き換えがなされる。その結果、被写体の向きが変わり第1撮影部340で撮影された部分が増えるに従い、撮影データ(距離画像)に基づく部分立体モデルで置き変えられた立体モデルの部分が増え、立体モデルがモデル化対象のオブジェクトにより近づいていく。
こうして生成された立体モデルは、上述したように、生成部114によって描画され、第2動画データが表す映像と合成され、送信部115を通じてユーザ端末300に送信される。
ユーザは、このようにして合成された映像を見ながら相手のユーザと会話することで、あたかも自分のそば(背景として撮影している位置)に相手のユーザがいるような感覚でコミュニケーションを行うことができる。これにより、ユーザは、リアリティのあるコミュニケーションをリアルタイムに行うことが可能になる。また、相手のユーザのユーザ端末の第1撮影部で撮影されておらず形状データ(立体モデルデータ)が得られていない相手のユーザの部分については、相手のユーザに関連付けられた既製立体モデルのデータに基づいて画像が形成されるため、そのような既製立体モデルのデータを用いない場合と比べて画像が不自然になるのが抑制される。また、第1撮影部で撮影されるオブジェクトの部分が増えるにつれ、距離画像に基づく形状データにより表される立体モデルの部分が拡張され、モデル化対象のオブジェクトに立体モデルをより近づけることができる。
通信システム10においては、このような映像をユーザ端末300に表示可能にするために、AR動画生成装置100が合成動画データを生成及び送信する。AR動画生成装置100は、リソース情報や回線情報を参照し、必要な合成動画データを生成する。例えば、AR動画生成装置100は、ユーザ端末300のリソースや通信回線の状況に応じて、合成動画データの圧縮方式や転送レートを決定する。また、AR動画生成装置100は、リソース情報や回線情報に基づいて、合成動画データを生成するか否かを判断することも可能である。例えば、AR動画生成装置100は、合成動画データの送信に十分な転送帯域が確保されていない場合や、そもそもユーザ端末300が合成動画データを再生する機能を有しない場合などには、合成動画データを送信しないか、合成動画データよりもデータ量が少ない代替的なデータを送信する、といったことが可能である。
図11は、AR動画生成装置100が合成動画データを生成するときに実行する処理を示すフローチャートである。AR動画生成装置100の制御部110は、まず最初に、リソース情報と回線情報の少なくともいずれかを用いて、合成動画データの生成態様を判定する(ステップSa1)。このとき、制御部110は、合成動画データの生成の可否や、合成動画データを生成するときの圧縮方式や転送レートなどを、合成動画データの送信対象であるユーザ端末300のそれぞれについて判定する。
その後、制御部110は、ステップSa1の判定結果に応じた処理を実行する。制御部110は、一方のユーザ端末300であるユーザ端末300aについて、合成動画データを生成するか否か判断し(ステップSa2)、合成動画データを生成すると判定した場合には合成動画データを生成する一方、そうでなければ生成を行わない(ステップSa3)。また、合成動画データを生成する場合、制御部110は、ステップSa1の判定結果に応じて(すなわち回線情報やリソース情報に応じて)、合成動画データの圧縮方式や転送レートなどを異ならせる。
続いて、制御部110は、他方のユーザ端末300であるユーザ端末300bについても同様に、合成動画データを生成するか否かの判断(ステップSa4)と合成動画データの生成(ステップSa5)とを実行する。そして、制御部110は、生成した合成動画データを通信部130に供給することにより、合成動画データをユーザ端末300a、300bのそれぞれに送信する(ステップSa6)。
AR動画生成装置100は、このような処理を実行することで、ユーザ端末300aとユーザ端末300bのそれぞれに応じた品質の合成動画データを生成することが可能である。また、AR動画生成装置100は、送信する必要がない合成動画データの生成を省略することが可能であり、自装置のリソースを効率的に使用して処理を進めることができる。
図12は、通信システム10の各装置における処理を示すシーケンスチャートである。なお、図12に示す例は、ユーザ端末300a、300bの双方に合成動画データを送信する場合、すなわち、図11のステップSa2、Sa4のいずれの判断も「YES」となる場合のものである。また、図12においては、図示の便宜上、AR動画生成装置100を2つ示し、ユーザ端末300aに合成動画データを送信するための構成とユーザ端末300bに合成動画データを送信するための構成とを分けているが、実際には同一の装置で同時並行的に処理が行われてもよい。
まず、ユーザ端末300aとユーザ端末300bとは、接続管理装置20を介して、呼接続を確立する(ステップSb1)。例えば、ユーザは、電話番号やこれに代替するもの(ユーザアカウントなど)を用いてコミュニケーションの相手を指定し、発話を開始することができる。
呼接続が確立すると、接続管理装置20は、ユーザ端末300a、300bに接続情報を送信する(ステップSb2)。接続情報は、ユーザ端末300aとユーザ端末300bとが接続されたときに送信される情報であって、コミュニケーションの相手に関する情報などを含んでいる。例えば、接続情報には、呼接続以降にシステム内部で呼を識別するために用いられる呼識別情報などが含まれる。また、接続情報は、上述した回線情報やリソース情報を含んでもよい。なお、回線情報やリソース情報を接続情報に含む場合、ユーザ端末300は、第1動画データや第2動画データを送信するか否かを接続情報に基づいて判断してもよい。このようにすれば、図11に示した判定の一部をユーザ端末300で行うことが可能になる。
また、ユーザ端末300a、300bは、呼接続が確立すると、映像の撮影を開始する(ステップSb3)。すなわち、ユーザ端末300a、300bは、第1撮影部340及び第2撮影部350を起動し、動画データを送信できる状態にする。そして、ユーザ端末300a、300bは、第1動画データと第2動画データを、AR動画生成装置100にそれぞれ送信する(ステップSb4、Sb5)。AR動画生成装置100は、第1動画データ及び第2動画データを受信すると、合成動画データを生成し(ステップSb6)、ユーザ端末300a、300bに送信する(ステップSb7)。
以上のとおり、本実施形態によれば、一方のユーザが撮影した背景に対して他方のユーザの映像を合成し、合成した映像を用いながら音声メッセージをやり取りすることが可能になる。また、本実施形態においては、動画データの合成をAR動画生成装置100が行うため、ユーザ端末300においてポリゴンデータのレンダリングのような比較的負荷が高い処理を実行する必要がない。
また、本実施形態において、AR動画生成装置100は、合成動画データの生成態様をリソース情報や回線情報に応じて異ならせることができる。これにより、AR動画生成装置100は、遅延するおそれがより少ない態様でデータ転送を行ったり、無駄な処理の実行を省略したりすることが可能である。また、AR動画生成装置100は、一方のユーザ端末300のみが距離画像センサを備え、他方のユーザ端末300には距離画像センサが備わっていない場合であれば、当該他方のユーザ端末300に送信する合成動画データのみを生成することができ、このような態様でのコミュニケーションも実現可能である。
[変形例]
本発明は、上述した実施形態の態様に限らず、他の態様でも実施することができる。以下に示すのは、本発明の他の態様の一例である。なお、これらの変形例は、必要に応じて、各々を適宜組み合わせてもよい。
上記実施形態では、部分特定部1193により特定された立体モデルの部分全部を、第1撮影部340の撮影データに基づいて部分立体モデル生成部1191により生成された部分立体モデルで置き換えたが、本発明はこれに限定されない。例えば、動画ではなく静止画としてオブジェクトを表示すればよく、既に撮影データに基づく部分立体モデルで置換されている部分を新たに更新する必要がない場合、部分特定部1193により特定された立体モデルの部分のうち、まだ撮影データに基づく部分立体モデルで置きかえられていない部分のみを部分立体モデルで置き換えてもよい。
図13は、本変形例に基づく、モデリング部119の動作を説明する模式図である。図13(a)は、ユーザの顔の立体モデルを斜め上から見たとき得られる画像であり、立体モデルのうち既に撮影データに基づく部分立体モデルで置換されている部分が網がけで示されている。また、図中の矢印は顔の正面方向を示す。尚、立体モデルのうち既製立体モデルのデータを含む部分は図示を省略した。図13(b)では、距離画像センサを有する第1撮影部340により新たに撮影されたユーザの画像がハッチングによりを示されている。この例では、ユーザの左側の頭部の画像が撮影されている。
本例において、部分特定部1193は、図13(a)に示される立体モデルから得られた画像と、図13(b)に示される撮影データに基づく画像とを比較し、これらの画像に含まれるオブジェクトの特徴部(本例では、ユーザの目及び鼻)の配置パターンに基づいて、これらの画像の向きが揃うように、一方の画像を回転する。回転する角度は、特徴部の配置パターンが極力近くなるように特定される。本例では、図中矢印で示すように、立体モデルから得られた画像と撮影データから得られた画像では、顔の正面方向が90度ずれており、撮影データから得られた画像を90度左に回転させた場合に、符号Aで示した部分において特徴部の配置パターンの類似度が高くなるので、回転角度として90度が特定される。
立体モデルから得られた画像と撮影データから得られた画像との向きを揃えた後、部分特定部1193は、立体モデルのうち、まだ撮影データに基づく部分立体モデルで置換されておらず、且つ、図13(b)に示した画像に表れるオブジェクトの部分に対応する部分を特定し、特定した部分を示す情報を、部分立体モデル生成部1191に供給する。部分立体モデル生成部1191は、撮影データから得られた画像のオブジェクトに対応する画素のうち、部分特定部1193により特定された立体モデルの部分に対応する画素(符号Bで示した)の距離情報及び色情報から、これらの画素に対応するオブジェクトの部分の立体モデルを生成する。
データ置換部1194は、部分特定部1193で特定された立体モデルの部分を、部分立体モデル生成部1191により生成された部分立体モデル(符号Bで示した部分の立体モデル)で置換することで、立体モデルを更新する。
このように、既に撮影データに基づく部分立体モデルで置換された立体モデルの部分の置換を行わず、新たに撮影データに基づく部分立体モデルが得られた部分のみ当該部分立体モデルで置換することにより、置換するデータ量を減らし処理を高速化することができる。
(2)本発明は、二者に限らず、三者以上のコミュニケーションにも適用可能である。この場合において、各ユーザのユーザ端末300が距離画像センサを備えていてもよいが、特定の一のユーザのみが距離画像センサで自身を撮影する態様も可能である。例えば、第1ユーザ、第2ユーザ、第3ユーザという3名のユーザがコミュニケーションを行う場合において、第1ユーザのみが距離画像センサで自身を撮影し、第2ユーザと第3ユーザは背景のみを撮影する、といった態様でコミュニケーションを行うことも可能である。この場合、AR動画生成装置100は、撮影された第1ユーザに相当する画像を抽出し、これを第2ユーザ側で撮影された第2動画データに合成する処理と、第3ユーザ側で撮影された第2動画データに合成する処理とを実行し、第2ユーザと第3ユーザのそれぞれに応じた合成動画データを生成する。
このようにすれば、第2ユーザにあっては、自身が撮影している背景に第1ユーザの映像が重畳された映像を視聴可能である一方、第3ユーザにあっては、自身が撮影している背景に第1ユーザの映像が重畳された映像(すなわち、第1ユーザの映像は重畳されているが、第2ユーザが視聴している映像とは異なる映像)を視聴可能である。
なお、このような態様においては、第1ユーザのユーザ端末300は第2撮影部350を備えていなくてもよく、また、第2ユーザ及び第3ユーザのユーザ端末300は第1撮影部340を備えていなくてもよい。
(3)上述したように、通信システム10においては、音声メッセージの音量又は音質の変化に応じて合成動画データの映像を変化させたり、あるいは第1動画データの映像の変化に応じて音声メッセージの音量又は音質を変化させることが可能である。具体的な例としては、以下のようなものがある。
例えば、AR動画生成装置100は、ユーザ端末300aに対して送信する合成動画データに関して、抽出されたオブジェクトを合成する場合において、ユーザ端末300bから送信された音声メッセージの音量が大きくなったときには、当該オブジェクトを拡大する一方、当該音声メッセージの音量が小さくなったときには、当該オブジェクトを縮小するようにしてもよい。また、AR動画生成装置100は、音声メッセージにノイズが生じるなどして音質が悪化した場合に、合成動画データが表す映像にも(意図的な)ノイズを付加したり、あるいは画質を劣化させたりしてもよい。このようにすれば、合成される映像と音声との間に感覚的な連動性を与えることが可能である。
また、接続管理装置200は、AR動画生成装置100から被写体の変化を表す情報に基づいて、抽出されたオブジェクトの大きさの変化や、距離情報の変化や、あるいは被写体全体の明るさの変化などを認識することが可能である。接続管理装置200は、このようにして認識された映像の変化に応じて、例えば、オブジェクトの大きさやその距離の変化に合わせて音量を変化させたり、被写体が明るいときと暗いときとで音質を異ならせたりしてもよい。また、接続管理装置200は、被写体であるユーザの表情の変化に応じて音質や音量を異ならせてもよい。さらに、接続管理装置200は、音声メッセージがマルチチャネル(例えばステレオ)のデータの場合であれぱ、所定のオブジェクトが抽出された位置の変化に応じて音像定位を制御し、例えば、被写体であるユーザの移動に追従するように音量やディレイを調整してもよい。
(4)抽出部113、モデリング部119、及び生成部114に相当する機能の少なくとも一部を、合成制御部110aではなく、各ユーザ端末300で行うものとしてもよい。例えば、各ユーザ端末300は、他のユーザ端末300から距離情報を含む第1動画データを受信し、受信した第1動画データによって表される映像に含まれる所望の被写体の立体モデルを生成し、この立体モデルに基づいて描画される被写体の映像を、自身の第2撮影部350によって撮影されたマーカを含む映像と合成し、合成された映像を表示してもよい。あるいは、各ユーザ端末300は、自身の第1撮影部340により得られた距離情報を含む第1動画データから所望の被写体の立体モデルを生成し、この立体モデルに基づいて描画される被写体の映像を、他のユーザ端末300から受信したマーカを含む映像と合成し、合成された映像を表すデータを他のユーザ端末300に送信してもよい。これらの場合、所望の被写体の立体モデルを生成する際に用いられる既製立体モデル及び生成された立体モデルを、AR動画生成装置100の記憶部120ではなく、立体モデルを生成する各ユーザ端末300の記憶部320に記憶するとよい。
あるいは、生成部114をユーザ端末300に設け、既製立体モデル及び撮影データに含まれる距離情報等を反映するべく立体モデルの一部を置換するためのデータ(置換データ)をAR動画生成装置100からユーザ端末300に送信し、ユーザ端末300の生成部114で、既製立体モデル及び置換データを用いて、撮影データに含まれる距離情報等を反映した立体モデルを生成し、この立体モデルを用いて画像の描画及び合成を行ってもよい。
(5)上述した実施形態では、立体モデル読出し部1192は、通話相手となるユーザに対し生成された立体モデルが記憶部120に既に記憶されているか判定し、記憶されている場合、その立体モデルを記憶部120から読み出して、部分特定部1193に供給し、当該ユーザに対し生成された立体モデルが記憶部120に記憶されていない場合、当該ユーザに対応付けられた既製立体モデルを記憶部120から読み出して、読出した既製立体モデルを当該ユーザの立体モデルとして部分特定部1193に供給したが、本発明はこれに限定されない。立体モデル読出し部1192は、通話相手となるユーザに対し生成された立体モデルが記憶部120に既に記憶されている場合において、当該立体モデルに基づき生成される所定のオブジェクトの画像と、通話相手となるユーザのユーザ端末300から受信した第1動画データから抽出される所定のオブジェクトの画像との相違が予め定められた基準より大きい場合、当該ユーザに関連付けられた既製立体モデルを記憶部120から読み出して、部分特定部1193に供給してもよい。これにより、例えば、前回の通話から数ヶ月経過している場合など、通話相手のユーザの外観(髪型など)が大幅に変わっている場合に、前に生成されたそのユーザの立体モデルを用いると、距離画像データが反映された部分と、前に生成された立体モデルのデータによって表される部分とで表示画像が大きく異なり、不自然さがかえって増大するのを防止することができる。
(6)AR動画生成装置100は、抽出したオブジェクトに所定の画像を付加し、これを背景に合成することも可能である。ここでいう所定の画像とは、例えば、ユーザの顔や身体に装着する装飾品を模した画像(サングラス、洋服など)である。このようにすれば、ユーザの顔や身体の一部を隠した映像を表示することが可能になる。また、AR動画生成装置100は、第2動画データが送信されてこなかった場合や、第2動画データの転送に遅延が生じている場合を判断し、このような場合に予め生成された背景画像(例えば、仮想空間の一部を表す画像)とオブジェクトの画像を合成してもよい。なお、これらの画像を表示するための画像データは、あらかじめAR動画生成装置100や接続管理装置200に記憶されていてもよいし、ユーザ端末300がコミュニケーションを開始するときに接続管理装置200に送信してもよい。
(7)上記実施形態では、モデリング部119により生成されたユーザの立体モデルを、各ユーザに関連付けて記憶部120に記憶し、その後当該ユーザの立体モデルを生成する必要が生じた場合に記憶部120に記憶された前に生成された立体モデルを利用できるようにしたが、本発明はこれに限定されない。例えば、各ユーザ毎に、各ユーザの通話相手となったユーザに対し生成された立体モデルを記憶部120に記憶してもよい。この場合、例えば、ユーザAとユーザBとの通話においてユーザAによる視聴用に生成されたユーザBの立体モデルは、ユーザCとユーザBとの通話においてユーザCによる視聴用に生成さたユーザBの立体モデルとは区別して記憶部120に記憶され、ユーザAとユーザBとの通話において生成されたユーザBの立体モデルは、その後に、ユーザCとユーザBとの通話においてユーザBの立体モデルを生成する際には利用されないようにすることができる。
(8)色情報の画素のサイズと距離情報の画素のサイズ、すなわち両者の解像度は、必ずしも一致していなくてもよい。例えば、距離情報の1画素は、色情報の4画素(縦2画素×横2画素)に相当していてもよい。この場合の距離情報は、色情報の4画素分について同一の値であるとしてもよいが、隣り合う画素の距離情報を参照して適当な補間処理を実行して算出されてもよい。
(9)本発明において抽出されるオブジェクトは、距離情報が所定の条件を満たすものであればどのようなものであってもよく、必ずしもユーザである必要はない。例えば、ユーザは、自身に代えて、人形や、飼育しているペットを撮影し、これを合成対象の映像とすることも可能である。
(10)AR動画生成装置100及び接続管理装置200は、別体の装置として構成されるのではなく、一体に構成されてもよい。また、本発明は、音声メッセージに代えて、アキストメッセージを交換するものであってもよい。このようにすれば、チャットのようなコミュニケーションにも本発明を適用することが可能である。この場合において、AR動画生成装置100は、音量や音質に代えて、文字のサイズや文字装飾(フォント、下線、色など)に応じて、あるいは特定の文字(感嘆符など)の有無に応じて映像を異ならせることも可能である。
(11)本発明は、AR動画生成装置やこれを備える画像コミュニケーションシステムとしてだけではなく、AR動画生成装置が実行するプログラムや、合成した動画を用いたコミュニケーション方法として把握することも可能である。また、このプログラムは、光ディスクなどの記録媒体に記録した形態や、インターネットなどのネットワークを介して、コンピュータにダウンロードさせ、これをインストールして利用可能にする形態などでも提供することができる。
制御部の機能を実現するプログラムは、磁気記録媒体(磁気テープ、磁気ディスク(HDD、FD(Flexible Disk))など)、光記録媒体(光ディスク(CD(Compact Disc)、DVD(Digital Versatile Disk))など)、光磁気記録媒体、半導体メモリなどのコンピュータ読み取り可能な記録媒体に記憶した状態で提供し、記憶部にインストールしてもよい。また、通信回線を介してダウンロードして記憶部にインストールしてもよい。