(57)【要約】【課題】インタラクティブなパーティクルシミュレーションはプログラミングが難しく処理の負荷が重い。【解決手段】情報処理装置１０において外部情報取得部４２は、画像、音声、文字情報、数値情報などの外部情報を入力装置３２から取得する。フィールド画像生成部４４は、パーティクルに作用する「場」を、外部情報に基づき所定の時間ステップごとに画像として生成する。中間画像記憶部５２はフィールド画像生成部４４がフィールド画像を生成する途中で生成した中間画像を記憶する。フィールド画像記憶部５４はフィールド画像生成部４４が生成したフィールド画像を記憶する。パーティクル画像生成部５６はフィールド画像記憶部５４が記憶するフィールド画像を用いて、最終的に出力すべきパーティクル画像のデータを生成する。【選択図】図３
2012032951.tif 000002
【特許請求の範囲】
【請求項１】
パーティクルを時間変化させた画像データを出力する情報処理装置であって、
経時変化する入力情報を取得する入力情報取得部と、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成するフィールド画像生成部と、
ある時間ステップにおけるパーティクルの位置座標に基づき各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するパーティクル描画部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記フィールド画像生成部は、画素値が加速度ベクトルの成分を表す加速度場の画像、画素値が速度ベクトルの成分を表す速度場の画像、画素値が加速度および速度の低減率を表す摩擦場の画像、画素値がパーティクルの色の情報を表す色場の画像、画素値がパーティクルのサイズを表すサイズ場の画像の少なくともいずれかを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記入力情報取得部は、画像データ、音声信号、文字情報、数値情報の少なくともいずれかを取得し、
前記フィールド画像生成部は、
前記入力情報取得部が取得した入力情報の内容に対応する画像を中間画像として出力する生成部と、
前記中間画像に加工を施し合成することにより前記フィールド画像を生成する合成部と、
を備えたことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記入力情報取得部は、マイクロホンがサンプリングした音声信号を取得し、
前記フィールド画像生成部は、
所定の周期を２πとしたときの各サンプリング時刻を角度θ、音声レベルを径ｒとする極座標において、サンプリングされた音声信号を表す座標を直線で結んだ音声特性図形の画像を生成する音声／画像変換器と、
前記音声特性図形があらかじめ定めた条件に合致する形状となったときにイベントの発生を検知し、当該イベントに対応づけられたイベント用画像を出力するイベント画像生成器と、
前記イベント用画像が前記フィールド画像に反映されるように画像を合成する合成部と、
を備えたことを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
前記入力情報取得部は、ネットワークを介して取得した気圧の値を表す数値情報を取得し、
前記フィールド画像生成部は、
気圧の値に応じて画素値の勾配が異なるグラデーション画像を生成する情報／画像変換器と、
前記グラデーション画像が前記フィールド画像に反映されるように画像を合成する合成部と、
を備えたことを特徴とする請求項１または２に記載の情報処理装置。
【請求項６】
前記入力情報取得部は、対象物の動きを撮影した画像データを取得し、
前記フィールド画像生成部は、
取得した画像データに前景抽出処理を施して抽出した前記対象物の領域に含まれる画素とその他の領域に含まれる画素に互いに異なる所定の画素値を与えた前景画像を生成する前景画像生成器と、
前記前景画像における画素値を高さ情報に変換することにより前記対象物の領域をその他の領域より低くした高さ画像を生成し、当該高さ画像空間に重力場を仮定したときに発生する速度ベクトルおよび加速度ベクトルをそれぞれ画素値とする前記フィールド画像を生成する重力画像生成器と、
を備えたことを特徴とする請求項１または２に記載の情報処理装置。
【請求項７】
前記フィールド画像生成部は、
取得した画像データのうち現在の画像と所定フレーム分過去の画像とからそれらの差分画像を生成することにより、差分が生じている領域を前記対象物の動き領域として取得し、当該動き領域に含まれる画素とその他の領域に含まれる画素に異なる所定の画素値を与えた動き画像を、前記動き領域において速度および加速度を低減させるための摩擦場のフィールド画像として生成する動き画像生成器をさらに備えたことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記フィールド画像生成部は、
前記動き画像生成器が生成する前記差分画像において、前記対象物の動きがないと判断される条件を満たす状態が所定期間継続したら、画像の上から下へ向けて画素値が変化するグラデーション画像を生成する加工用画像生成器をさらに備え、
前記重力画像生成器は、前記前景画像に代わり前記グラデーション画像における画素値を高さ情報に変換することにより画面の上から下へ向かって低くなる高さ画像を生成することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記フィールド画像生成部は、前記パーティクル描画部が描画したパーティクルの画像を、次の時間ステップにおける前記フィールド画像の生成に用いることを特徴とする請求項１から８のいずれかに記載の情報処理装置。
【請求項１０】
前記入力情報取得部は、ネットワークを介して取得した天気を表す文字情報を取得し、
前記フィールド画像生成部は、
天気の種類に対応づけられた色で塗りつぶした画像を、パーティクルの色を決定づける色場のフィールド画像として生成する情報／画像変換器を備えたことを特徴とする請求項１または２に記載の情報処理装置。
【請求項１１】
前記入力情報取得部は、ネットワークを介して取得した気圧を表す数値情報を取得し、
前記フィールド画像生成部は、
気圧の値に反比例する大きさの画素値を全ての画素に与えた画像を、パーティクルの大きさを決定づけるサイズ場のフィールド画像として生成する情報／画像変換器を備えたことを特徴とする請求項１または２に記載の情報処理装置。
【請求項１２】
前記パーティクル描画部は、各フィールド画像をパーティクルを描画するスクリーン座標系にマッピングすることにより各パーティクルの属性値を取得することを特徴とする請求項１から１１のいずれかに記載の情報処理装置。
【請求項１３】
パーティクルを時間変化させた画像データを出力する情報処理方法であって、
経時変化する入力情報を取得するステップと、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成しメモリに格納するステップと、
ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するステップと、
を含むことを特徴とする情報処理方法。
【請求項１４】
パーティクルを時間変化させた画像データを出力する機能をコンピュータに実現させるコンピュータプログラムであって、
経時変化する入力情報を取得する機能と、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成しメモリに格納する機能と、
ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１５】
パーティクルを時間変化させた画像データを出力する機能をコンピュータに実現させるコンピュータプログラムを記録した記録媒体であって、
経時変化する入力情報を取得する機能と、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成しメモリに格納する機能と、
ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きを伴う画像を生成する情報処理装置、および当該装置で用いる情報処理方法に関する。
【背景技術】
【０００２】
煙や雲などの粒子の挙動を時間発展的に計算し、画像として表現するパーティクルシミュレーションの技術は、工学的な用途のみならず、ゲーム、アニメーション、ビジュアルアートなどの娯楽、芸術の分野にも用いられるようになっている。それに従い多くのシミュレータが提案されている（例えば非特許文献１参照）。例えばＣＵＤＡ（Compute Unified Device Architecture, 登録商標）によるパーティクルシミュレーションは、空間を分割して並列計算を行うことにより大量のパーティクルを扱える。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Andreas Kolb, et al., Dynamic Particle Coupling for GPU-based Fluid Simulation, Proc. 18th Symposium on Simulation Technique, 2005, pages 722-727
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら上記の技術は、適用できるプロセッサが限られている。一般的に、様々な外力に対する影響や、パーティクル間の引力などを考慮してシミュレーションを行う場合、それらを踏まえた方程式を全てのパーティクルについて解く必要がある。そのためパーティクルの数を増やしたり、よりリアルに表現しようとすることは、プログラミングの手間、演算処理の負荷の増大に直結する。外力が変化するような場合、その変化をパーティクルに反映させるのはプログラム構成、演算処理の点でさらに困難である。
【０００５】
本発明はこのような課題に鑑みてなされたものであり、その目的は、安価かつ効率的に、パーティクルによって様々な表現を行うことのできる情報処理技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は情報処理装置に関する。この情報処理装置は、パーティクルを時間変化させた画像データを出力する情報処理装置であって、経時変化する入力情報を取得する入力情報取得部と、パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに入力情報に基づき生成するフィールド画像生成部と、ある時間ステップにおけるパーティクルの位置座標に基づき各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するパーティクル描画部と、を備えたことを特徴とする。
【０００７】
本発明のさらに別の態様は情報処理方法に関する。この情報処理方法は、パーティクルを時間変化させた画像データを出力する情報処理方法であって、経時変化する入力情報を取得するステップと、パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに入力情報に基づき生成しメモリに格納するステップと、ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するステップと、を含むことを特徴とする。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によると、多様な入力情報を利用してパーティクルを用いた画像表現を安価かつ容易に実現できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態の情報処理技術を適用できる情報処理システムの構成例を示す図である。
【図２】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図３】本実施の形態における情報処理装置の機能ブロック図と入力装置、出力装置の関係を示す図である。
【図４】本実施の形態におけるフィールド画像とパーティクル画像の関係を模式的に示す図である。
【図５】本実施の形態におけるフィールド画像生成部の詳細な構成を示す図である。
【図６】本実施の形態の音声／画像変換部がマイクロホンから取得した音声信号を変換して生成した画像の例を示す図である。
【図７】本実施の形態のイベント画像生成器が音声変換画像を解析してイベントの発生を検出する手法を説明するための図である。
【図８】本実施の形態において天気情報を変換して生成した画像の例を示す図である。
【図９】本実施の形態においてカメラによって撮影中の画像から加速度場のフィールド画像を生成する処理手順の例を示す図である。
【図１０】本実施の形態のフィールド画像生成部の各機能ブロックによって構成される処理のネットワークの例を示す図である。
【図１１】本実施の形態の情報処理装置が外部情報からパーティクル画像を生成する処理手順を示すフローチャートである。
【図１２】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【図１３】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【図１４】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【図１５】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【発明を実施するための形態】
【００１１】
図１は本実施の形態の情報処理技術を適用できる情報処理システムの構成例を示す。情報処理システム２は、ユーザ４を撮影するカメラ６、カメラ６からの画像を取得しユーザ４の動きに反応する画像を生成する情報処理装置１０、情報処理装置１０が生成した画像を表示する表示装置８を含む。
【００１２】
情報処理装置１０と、カメラ６、表示装置８とは、有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）などにより無線接続されてもよい。カメラ６、情報処理装置１０、表示装置８のうちいずれか２つ、または全てが組み合わされて一体的に装備されていてもよい。また、カメラ６は必ずしも表示装置８の上に設置されていなくてもよい。さらにユーザ４は人でなくてもよく、その数も限定されない。表示装置８は、液晶ディスプレイやプラズマディスプレイなど単体で画像を表示する装置でもよいし、画像を投影するプロジェクターとスクリーンとの組み合わせなどでもよい。
【００１３】
本実施の形態の情報処理装置１０は、外部情報にリアルタイムで反応するパーティクルを含む画像を生成する。ここで「外部情報」は、情報処理システム２が電子的に取得できる情報をであればそのいずれでもよい。ユーザ４の動きは外部情報の一つであるが、本実施の形態では、人や物の動きなど画像として表される情報のほか、音声や文字情報、数値情報なども外部情報に含める。ユーザ４の動きを外部情報とした場合、例えばランダムに散らばっていたパーティクルがユーザ４の形をなすように集まってきたり、ユーザ４の後を追ったりする画像が生成できる。
【００１４】
そこに外部情報として音声を加えた場合、例えばユーザの形に集まっていたパーティクルが、手を打つ音に反応してはじけるように分散したり、音楽に合わせて浮遊したり、といった画像が生成できる。このように本実施の形態では、画像、音声、文字情報、数値情報などを一元的に処理することにより、外部の様々な変化に反応する画像を生成する。
【００１５】
このような画像はゲームやアニメーションのほか、空間で芸術を表現するインスタレーション、パーティなどで映像を演出するＶＪ（Video Jockey）、メデイアアート、スクリーンセーバーなど、芸術やグラフィックス関係の様々な分野に適用できる。また、鳥、魚、虫などの群衆アニメーションの作成にも適用できる。
【００１６】
図２は情報処理装置１０の内部回路構成を示している。情報処理装置１０は、ＣＰＵ（Central Processing Unit）１２、ＧＰＵ（Graphics Porcessing Unit)１４、メインメモリ１６を含む。ＣＰＵ１２は、オペレーティングシステムやアプリケーションなどのプログラムに基づいて、信号処理や内部構成要素を制御する。ＧＰＵ１４は画像処理を行う。
【００１７】
これらの各部は、バス２０を介して相互に接続されている。バス２０にはさらに入出力インターフェース１８が接続されている。入出力インターフェース１８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インタフェースや、有線又は無線ＬＡＮのネットワークインタフェースからなる通信部２２、ハードディスクドライブや不揮発性メモリなどの記憶部２４、表示装置やスピーカなどの出力装置へデータを出力する出力部２６、キーボード、マウス、マイクロホン、カメラなどの入力装置からデータを入力する入力部２８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部３０が接続される。
【００１８】
ＣＰＵ１２は、記憶部２４に記憶されているオペレーティングシステムを実行することにより情報処理装置１０の全体を制御する。ＣＰＵ１２はまた、リムーバブル記録媒体から読み出されてメインメモリ１６にロードされた、あるいは通信部２２を介してダウンロードされた各種プログラムを実行する。
【００１９】
ＧＰＵ１４は、ジオメトリトランスファエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ１２からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部２６などに出力する。
【００２０】
図３は情報処理装置１０の機能ブロック図と入力装置、出力装置の関係を示している。図３において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ、ＧＰＵ、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、画像処理を行うプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２１】
本実施の形態においてパーティクルの挙動を決定づける外部情報は上述のとおり、画像、音声、文字情報、数値情報などを含む。そのため情報処理装置１０へ必要なデータを入力する入力装置３２は、カメラ６のほか、マイクロホン３６、ネットワーク３８を含む。これらの入力装置３２は、情報処理装置１０の通信部２２や入力部２８と接続している。カメラ６やマイクロホン３６などはゲーム機や携帯電話機などに搭載されているものでもよい。この場合、それらの機器のデータ出力機構を介して情報処理装置１０への入力がなされる。
【００２２】
出力装置６２は代表的には、生成された画像をその場で表示する表示装置であるが、後に再生するための動画ファイルを格納するハードディスクドライブや記録媒体でもよい。従ってこれらの出力装置６２は出力部２６に接続されているか、記録媒体駆動部３０と記録媒体との組み合わせ、または記憶部２４自体でもよい。
【００２３】
情報処理装置１０は、外部情報取得部４２、フィールド画像生成部４４、中間画像記憶部５２、フィールド画像記憶部５４、およびパーティクル画像生成部５６を含む。外部情報取得部４２はＣＰＵ１２と通信部２２や入力部２８との協働によって実現され、入力装置３２からアプリケーションにおける設定やユーザの選択に従い、１種類または複数種類の外部情報を取得する。
【００２４】
例えばカメラ６からは、撮影中の画像のデータを逐次取得する。マイクロホン３６からは、その場の音声信号を逐次取得する。ネットワーク３８からは、ネットワーク３８を介して接続したサーバなどから提供される天気など各種情報をＲＳＳ（RDF Site Summary）の形式で取得する。外部情報取得部４２はそのほか、動画像データや楽曲のオーディオデータなどを、図示しないアンテナで受信したテレビ放送波やラジオ放送波から取得したり、記録媒体から読み出したりしてもよい。
【００２５】
フィールド画像生成部４４はＣＰＵ１２によって実現され、パーティクルに作用する「場」を、外部情報に基づき所定の時間ステップごとに画像として生成する。具体的には、画像、音声、文字情報、数値情報など種類の異なる外部情報を画像化し、それらを合成したり加工したりすることによって最終的なフィールド画像を生成する。「場」はパーティクルの属性ごとに、パーティクルが存在する２次元空間内での分布を表したものである。具体例は後に述べるが、例えば加速度、速度の２次元空間分布を画素値とする「加速度場」、「速度場」の画像を生成する。
【００２６】
このような場を、同じ２次元空間に存在する多数のパーティクルに時間ステップごとに作用させることにより、パーティクルはそれらの場の影響を受けて移動したり姿が変化したりすることになる。外部情報が時間とともに変化すれば、場もそれに応じて変化し、結果としてパーティクルの挙動を、外部情報の時間変化に応じて変化させることができる。以後、このような場を表す画像を「フィールド画像」と呼ぶ。
【００２７】
フィールド画像生成部４４には、画像を合成したり加工したりするための最小単位の処理機構を複数用意しておく。そしてアプリケーションにおける設定やユーザの選択などにより、用いる処理機能の組み合わせや順番を適宜変化させることによって、パーティクルを用いた多様な表現が可能になる。すなわちフィールド画像生成部４４では、最小単位の処理機構をノードとするネットワークが構築され、あるノードの出力画像はまた別のノードの入力画像となりネットワークを進むことにより、最終的なフィールド画像が生成される。以後、ノード間で一時的に生成される画像を「中間画像」と呼ぶ。
【００２８】
中間画像記憶部５２はメインメモリ１６によって実現され、フィールド画像生成部４４がフィールド画像を生成する途中で生成した中間画像を記憶する。さらに、最終的に生成したパーティクル画像もまた、中間画像として中間画像記憶部５２に格納し、その後の処理に用いてよい。フィールド画像記憶部５４はメインメモリ１６によって実現され、フィールド画像生成部４４が生成したフィールド画像を記憶する。
【００２９】
パーティクル画像生成部５６はＧＰＵ１４によって実現され、フィールド画像記憶部５４が記憶するフィールド画像を用いて、最終的に出力すべきパーティクル画像のデータを生成する。パーティクル画像生成部５６は、各時間ステップにおいて、各パーティクルの属性値を、２次元空間内の位置に基づき各フィールド画像から取得する属性値取得部５８と、パーティクルごとの属性値に従い、次の時間ステップにおけるパーティクルの位置、色、大きさなどを決定し描画するパーティクル描画部６０を含む。
【００３０】
本実施の形態では、パーティクル画像生成部５６をＧＰＵ１４によって実現することにより、フィールド画像をテクスチャデータとして読み出す。そして画素ごとまたは画素ブロックごとに、各フィールド画像から必要な値を取得しパーティクルに作用させる、という処理を並列に実行する。このようにすることで一般的な情報処理装置であっても、フィールド画像からの属性値の取得や、パーティクル描画が高速に行える。各パーティクルについて方程式を解く場合と比較すると、パーティクルの数に対する処理時間の依存性が小さく、最終的に生成するパーティクル画像のサイズによっておよその処理時間を見積もることができる。
【００３１】
図４はフィールド画像とパーティクル画像の関係を模式的に示している。ある時間ステップｔ−１において、パーティクル画像６６が生成されている。一方、次の時間ステップｔのためのフィールド画像６４ａ、６４ｂ、６４ｃが生成されている。ここでフィールド画像６４ａ、６４ｂ、６４ｃは、前述の加速度場、速度場のほか、摩擦場、色場、サイズ場など、アプリケーションやユーザによる選択によってパーティクルに与えられた属性に対応する。
【００３２】
このとき図に示すように、スクリーン座標系（ｘ，ｙ）に存在するパーティクルの属性値を、各フィールド画像６４ａ、６４ｂ、６４ｃの同じ位置における画素値を読み出すことによって取得する。上述のとおりフィールド画像６４ａ、６４ｂ、６４ｃをテクスチャとすれば、当該処理はＧＰＵのテクスチャルックアップの機能により高速に実施できる。
【００３３】
すなわちフィールド画像およびパーティクル画像における位置座標は、縦方向、横方向にそれぞれ正規化したＵＶ座標系で表現する。このようにすることで、ディスプレイの解像度、やフィールド画像のサイズによらず、各フィールド画像をスクリーン座標系にマッピングすることによって位置の対応を容易にとることができる。次にフィールド画像として準備する場とデータ構成の具体例を示す。
【００３４】
【表１】
2012032951.tif 000003
【００３５】
上記のように、加速度場、速度場、摩擦場、色場、サイズ場などのフィールド画像を用意する。加速度場は加速度ベクトルの成分（X, Y, Z）の３つの変数で表されるため、その画像はＲＧＢの３チャンネル２４ビットを利用した画素値を有する。速度場も同様である。摩擦場はこの例では加速度および速度を低減させる割合を表すｆ（０≦ｆ≦１）なる１つの変数とする。そのためその画像はDepthの１チャンネル８ビットを利用した画素値を有する。
【００３６】
色場は一般的な画素の色情報と同じでよく、その画像はＲＧＢＡの４チャンネル３２ビットを利用した画素値を有する。サイズ場はパーティクルのサイズを表すSizeなる１つの変数であるため、その画像はDepthの１チャンネル８ビットを利用した画素値を有する。なお最終的に生成するパーティクル画像は２次元平面であるため、パーティクルの動きを求める際の奥行き方向（Ｚ方向）の加速度、速度は考慮しなくてもよいが、それらの値を利用して何らかの処理を行う場合を考慮して、画素値のチャンネルとしては確保しておく。一方、奥行き方向の移動をパーティクルのサイズに反映させてもよい。
【００３７】
中間画像も、元の外部情報や、合成、加工など処理の内容に応じて様々な画素値を有してよい。３チャンネルの画素値を有する中間画像に対し、所定の１チャンネルのみを選択して処理するなどでもよい。またＲＧＢの画像をグレースケールに変換する際に用いられる変換式などを利用してチャンネル数を制御してもよい。
【００３８】
上記のようなフィールド画像を用いると、ある時間ステップｔ−１に位置座標ｘｔ−１に存在したパーティクルの、次の時間ステップｔにおける位置座標ｘｔは、時間間隔をｄｔとして例えば以下のように求められる。
【００３９】
【数１】
2012032951.tif 000004
【００４０】
ここでαは加速度場から取得した加速度ベクトル、ｖは速度場から取得した速度ベクトルである。初期分布を与えたパーティクルに対し、上記のような計算を各時間ステップで実施することにより、場に応じたパーティクルの挙動を画像として表現することができる。なお上述のようにフィールド画像自体も外部情報に応じて変化する。
【００４１】
図５はフィールド画像生成部４４の詳細な構成を示している。フィールド画像生成部４４は、外部情報から最初の中間画像を生成する生成部４６、中間画像を合成する合成部４８、中間画像を加工したり必要な情報を抜き出した画像を生成する変換部５０を含む。生成部４６は、外部情報から最初の中間画像を生成して中間画像記憶部５２へ格納する。あるいは、生成した画像をそのままフィールド画像とする場合はフィールド画像記憶部５４へ格納する。
【００４２】
合成部４８、変換部５０は、中間画像記憶部５２から中間画像を読み出し、処理を施したうえ、中間画像記憶部５２へ再び格納する。あるいは、生成した画像をフィールド画像とする場合はフィールド画像記憶部５４へ格納する。このように生成部４６、合成部４８、変換部５０が生成する画像は、設定された処理の組み合わせや順序によって、中間画像である場合とフィールド画像である場合がある。図５に関しては以後、中間画像として説明する。
【００４３】
生成部４６は、画像／画像変換器７０、音声／画像変換器７２、情報／画像変換器７４、および加工用画像生成器７６を含む。画像／画像変換器７０は、入力装置３２から取得した画像に対し、画像の属性、例えばサイズ、階調、フレームレートなどを、中間画像として好適な値に調整した画像へ変換する処理を行う。音声／画像変換器７２は、マイクロホンから取得した音声信号を所定の規則で画像化する。情報／画像変換器７４は、ネットワークを介して取得した文字や数値の情報を所定の規則で画像化する。加工用画像生成器７６は、中間画像へ加工を施すために合成の対象とする画像を生成する。音声や文字情報、数値情報を画像化する具体例や中間画像への加工については後に述べる。
【００４４】
合成部４８は、複数の中間画像を合成して一つの中間画像を生成する。詳細には、複数の画像の画素値を画素ごとに加算する加算器７８、画素ごとに乗算する乗算器８０、画素ごとに論理和をとるＯＲ回路８２、画素ごとに論理積をとるＡＮＤ回路８４を含む。すなわち加算器７８、乗算器８０、ＯＲ回路８２、ＡＮＤ回路８４はそれぞれ次に示す演算を行う。
【００４５】
【数２】
2012032951.tif 000005
【００４６】
上記の式では合成対象の中間画像を全ておなじ重み付けで合成しているが、表現意図などに応じて所定の中間画像を強調するなどの重み付けを行ってもよい。また重み付け係数に０を許容することにより、複数の入力された中間画像から一つを選択して出力するなど、中間画像の切り替え器として利用してもよい。このようにすることで、後述のイベント発生時などにフィールド画像の生成に用いる画像を切り替えることができる。
【００４７】
変換部５０は、一つまたは複数の中間画像を加工したり必要な情報のみを抽出したりして新たな画像を生成する。詳細にはぼかし画像生成器８６、動き画像生成器８８、前景画像生成器９０、イベント画像生成器９２、重力画像生成器９４を含む。
【００４８】
ぼかし画像生成器８６は、入力された中間画像をぼかした画像を生成する。ぼかす手法はガウシアンブラーなど既存の記述を採用してよい。動き画像生成器８８は、現在の中間画像と所定の時間ステップ分過去の中間画像との差分画像を生成し、差分が発生している領域に含まれる画素とそれ以外の領域に含まれる画素とで異なる所定の画素値を与えた動き画像を生成する。
【００４９】
動き画像は、後に述べるように動きのある領域のみパーティクルの移動を遅らせたり、画素値の平均値にしきい値を設定するなどして動きの有無を検出するのに用いることができる。前景画像生成器９０は、内部で記憶した背景画像と入力された中間画像との差分から、当該中間画像における前景を抽出し、前景と背景とで異なる画素値を与えた前景画像を生成する。前景の抽出には従来技術を利用できる。
【００５０】
イベント画像生成器９２は、入力された中間画像を解析して所定のイベントが発生したか否かを判定し、イベント発生の有無を画像によって表す。例えばイベントの内容ごとに全ての画素値が「０」である画像を準備しておき、イベントが発生したときに、全ての画素値を「１」に更新する。準備する画像は１画素のみとし、後段の処理で所望の画像サイズに引き伸ばしてもよい。あるいはイベントの発生に対応づけられた画像をメインメモリ１６などから読み出して中間画像として出力してもよい。
【００５１】
重力画像生成器９４は、入力された中間画像の画素値を高さ情報に変換した高さ画像を生成し、重力を仮定したときの、高さに応じた速度場または加速度場の画像を生成する。高さ画像は、後述の例では、入力された画像の画素値の大きさを深さとみなすことで、画素値が大きいほど低い画像としている。そして画素値が変化している箇所は高さに差があるとして重力加速度を発生させ、画素値が急激に変化している箇所は高さの勾配が大きいとして速度を大きくする。実際に生成する速度場や加速度場のフィールド画像における画素値は、このような定性的な特徴を所定の規則で数値に落とし込んでいれば、その値自体は実際の物理量でなくてもよい。
【００５２】
図６は音声／画像変換器７２がマイクロホンから取得した音声信号を変換して生成した画像の例を示している。音声変換画像１２０は、音声特性図形１２２を含む。音声特性図形１２２は、画像の中心を原点１２４とし、所定の周期を２πとたときの各サンプリング時刻を角度θ、音声レベルを径ｒとする極座標において、各サンプリング結果を表す座標を直線で結んだ図形である。角度の周期をフレーム表示周期、例えば１６ｍｓｅｃに対応づけると、音声特性図形１２２は当該フレーム表示周期ごとに更新される。音声／画像変換器７２は例えば、音声特性図形１２２の内部の領域に含まれる画素に「１」、外部の領域に含まれる画素に「０」など、所定の画素値を与えた画像を生成する。
【００５３】
この音声変換画像１２０を利用して、音声に特定のイベントが発生したか否かを判定することができる。図７はイベント画像生成器９２が、音声変換画像を解析してイベントの発生を検出する手法を説明するための図である。ここではイベントとして、手を打ったり物が破裂したときの、微小時間の大きな音の発生を検出する例を説明する。以後、このような音を「破裂音」と呼ぶ。図６を参照して説明したように、音声変換画像１２０ａには、音声特性図形１２２ａが表されている。
【００５４】
破裂音が発生すると、音声信号においては微小時間だけ急激に音声レベルの振幅が大きくなる。これを音声特性図形１２２ａに当てはめると、図７に示すように、ある微小角度で経ｒが正負に大きく触れる図形となる。すなわち破裂音のない場合と比較すると全体的に長細い形となる。そこでイベント画像生成器９２は、音声特性図形１２２ａに外接する矩形１２６を求め、当該矩形の大きさと縦横の辺の長さの比によって破裂音の発生を検出する。
【００５５】
例えば矩形１２６の短手方向の辺の長さ、および、短手方向の辺に対する長手方向の辺の長さの割合にしきい値を設定しておき、双方がしきい値より大きければ破裂音が発生したと判定する。このようにして破裂音を検出したら、上述のように、画素値が「０」であった破裂音発生用の画像の画素値を「１」に更新するなどして、イベントが発生したことを示す画像を生成したり、あらかじめ生成しておいた画像を読み出して出力したりする。なお音声特性図形１２２が特徴的な変化を示すイベントであれば、破裂音以外でも同様の手法で検出できる。
【００５６】
次に情報／画像変換器７４が文字情報、数値情報などテキストベースの情報を画像に変換する例を説明する。図８は天気情報を変換して生成した画像の例を示している。この例では「天気情報」として、各地の「現在の天気」および「現在の気圧」の情報を随時取得している。「現在の天気」については、天気を表す言葉を象徴する画像を出力する。例えば「晴れ」であれば晴れを象徴する画像１３０、「曇り」であれば曇りを象徴する画像１３２、「雨」であれば雨を象徴する画像１３４を出力する。
【００５７】
そのため、「晴れ」や「雨」など天気を表す言葉に、それを象徴する画像のデータを対応づけたテーブルを用意しておき、情報／画像変換器７４は、取得した情報に対応する画像データをメインメモリ１６などから読み出し中間画像として出力する。「象徴する画像」は図８に示したように、絵や写真のほか、象徴する色で塗りつぶした画像などでもよい。このようにして出力した中間画像は、パーティクルそのものを、天気を象徴する図形や色としたり、天気を象徴する図形の形をなすようにパーティクルが集まったりする画像を表示する際に利用できる。
【００５８】
一方、「現在の気圧」を示す数値情報の場合は、画面の上から下へ向けて濃淡が徐々に変化するグラデーション画像１３６において、気圧の値ｐに応じて濃淡の勾配を変化させた画像を生成する。例えば、画像の最下段の画素値を２５５で固定し、気圧の値ｐが大きいほど最上段の画素値を小さくしたグラデーション画像を生成する。画素値の勾配は線形でもよいし曲線でもよい。またグラデーション画像の後段における使用方法によって、グレースケールでもＲＧＢ画像でもよい。
【００５９】
次にフィールド画像生成部４４の上述の構成によってなされる処理手順の例を、加速度場のフィールド画像を生成する場合を例にとって説明する。図９はカメラによって撮影中の画像から加速度場のフィールド画像を生成する処理手順の例を示している。図９の処理手順および後述する図１１のフローチャートにおいては、各部の処理手順を、ステップを意味するＳ（Ｓｔｅｐの頭文字）と数字との組み合わせによって表示する。
【００６０】
まず画像１４０は、カメラが撮影したフレーム画像に対応する。このとき画像／画像変換器７０によってサイズなどが適宜調整してある。当該画像１４０に対し、前景画像生成器９０は、前景抽出処理を施し、２階調で表現した前景画像１４２を生成する（Ｓ１０）。図９の例では、部屋にいる人物を撮影した画像１４０から抽出した、前景である人物の領域を白、背景となる領域を黒とした前景画像１４２が生成されている。
【００６１】
次にぼかし画像生成器８６は、前景画像１４２をぼかしたぼかし画像１４４を生成する（Ｓ１２）。次に加算器７８は、前景画像１４２、ぼかし画像１４４、加工用画像生成器７６が生成した乱気流ノイズ画像１４６を加算した加算画像１４８を生成する（Ｓ１４）。ぼかし画像１４４を加算することにより、前景画像１４２における前景のエッジ部分に色調の勾配をつけている。また乱気流ノイズ画像１４６を加算することにより、画像全体にランダム性をもたせ最終的なパーティクルの動きが自然になるようにしている。
【００６２】
次に重力画像生成器９４が、加算画像１４８の画素値の大きさを深さとみなしたときの高さ画像１５０を生成する（Ｓ１６）。そして当該高さ画像１５０から上述のように加速度場のフィールド画像を生成する。このように生成された加速度場の画像を用いてパーティクル画像生成部５６が各パーティクルを描画すると（Ｓ１８）、高さ画像１５０における低い部分にパーティクルが落ちていくことになり、時間を追うに従いパーティクルが集まり人物の形を形成していくような画像１５２を生成できる。
【００６３】
加算画像１４８から高さ画像１５０を生成する過程Ｓ１６において、合成部４８がさらに別の中間画像を合成して何らかの加工を施すようにしてもよい。例えば情報／画像変換器７４が生成した、気圧の値ｐに応じたグラデーション画像を合成することにより、加算画像１４８において画面の上側から下側へ向けて全体的な白さが増すような画像が生成される。その結果、高さ画像１５０は画面の下になるほど高さが低くなるような画像となり、パーティクルには画面下方向への力が生じる。このようにすると、気圧が高いほどパーティクルが画面下側へ沈殿していくような演出ができる。
【００６４】
また、破裂音などのイベントが発生したとき、合成部４８はその期間のみ、イベント発生に対応して生成した画像、または当該イベントに対応づけて準備された画像を合成してもよい。上述のようにイベント発生に対応して画素値を更新した塗りつぶし画像を生成すると、イベント発生期間を特定することができる。
【００６５】
例えば破裂音が発生したら、イベント画像生成器９２は、前景から外側へ放射状に画素値が小さくなるようなグラデーション画像を生成し、加算画像１４８に合成する。このとき、合成時の重み付けを調整し、グラデーション画像の影響が大きく出るようにすると、人の形に集まっていたパーティクルがはじけ、画面の外側へ散っていくような演出ができる。速度場のフィールド画像生成処理において同様の合成を行うと、破裂音発生の影響をより早くパーティクルの挙動に反映させることができる。
【００６６】
図１０はフィールド画像生成部４４の各機能ブロックによって構成される処理のネットワークの例を示している。図９で示した処理は破線矩形１６０に主に示されている。図１０の例ではそのほか、動き画像生成器８８が生成した、動きが検出された領域のみに所定の画素値を与えた画像に、加工用画像生成器７６が生成した乱気流ノイズ画像を合成した画像を、摩擦場のフィールド画像として生成している（破線１６２）。このようにすると、動きのある領域の速度、加速度を緩め、動いている人物などの後を遅れながら追うパーティクルを演出できる。
【００６７】
一方、文字情報、数値情報からサイズ場や色場のフィールド画像を生成している（破線１６４）。例えば気圧の値に反比例する画素値の塗りつぶし画像を生成し、それをサイズ場のフィールド画像とする。これにより、気圧が低いほど膨らむ風船のようにパーティクルを表現できる。また、天気に対応する色で塗りつぶした画像を生成し、それを色場のフィールド画像とする。これにより、「晴れ」の時は黄色、「雨」のときは青など、天気に応じて色が変化するパーティクルを表現できる。
【００６８】
なお天気情報を画像へ変換する例としてはこのほかに、風速が大きいほど画素値を大きくすることで速度場における速度を増加させたり、湿度が大きいほど画素値を大きくすることでパーティクルの粘性が増加するように粘性率のフィールド画像を生成し、パーティクルの挙動に反映させたりしてもよい。ここでは文字情報、数値情報として天気情報を例に挙げたが、天気情報に限らず、情報の種類と生成する画像との対応づけをしておくことにより、いかなる情報でも同様に、パーティクルを利用した表現に組み入れることができる。
【００６９】
図１０で示した処理のネットワークは、本実施の形態で実現できる態様の一部であり、図５で示した各機能ブロックが行う処理の結びつきを様々に変化させることにより、パーティクル画像の使用目的や表現意図などに応じて多様な処理を容易に実現することができる。さらに、パーティクル画像生成部５６が描画したパーティクル画像自体を中間画像として処理のネットワークに入力してもよい。
【００７０】
例えば一つ前の時間ステップのパーティクル画像におけるパーティクルの位置で画素値が小さくなる画像を生成して合成することにより、パーティクル同士に斥力が発生した、加速度場、速度場のフィールド画像を生成できる。これにより意図しない領域に偶然、パーティクルが凝集するといった現象の発生を抑え、意図した領域へパーティクルが自然に集まってくるように見せることができる。
【００７１】
次にこれまで述べた構成によって実現できる情報処理装置１０の動作について説明する。図１１は情報処理装置１０が外部情報からパーティクル画像を生成する処理手順を示すフローチャートである。図１１のフローチャートは、パーティクル画像の出力を開始する指示を情報処理装置１０に対しユーザが入力したときに開始される。まず時間ステップを表す変数ｔに０を代入すると（Ｓ３０）、パーティクルに所定の初期分布を与えた初期画像を表示する（Ｓ３２）。そして外部情報取得部４２は、カメラ６、マイクロホン３６、ネットワーク３８などから外部情報の取得を開始する（Ｓ３４）。
【００７２】
するとフィールド画像生成部４４は、アプリケーションやユーザの設定に従った処理を順次行い、所定のフィールド画像を生成する（Ｓ３６）。するとパーティクル画像生成部５６の属性値取得部５８は、テクスチャルックアップの機能により各フィールド画像にアクセスし、各パーティクルの位置における各場の値を、当該パーティクルの属性値としてそれぞれ取得する（Ｓ３８）。そしてパーティクル描画部６０は、各パーティクルの属性値に従い、初期分布を与えたパーティクルを移動させたり、色や大きさを変化させたりすることによりパーティクル画像を更新する（Ｓ４０）。
【００７３】
ユーザによる処理終了の指示がない場合（Ｓ４２のＮ）、時間ステップをインクリメントしながら（Ｓ４４）、Ｓ３６からＳ４０の処理を繰り返す。その間、Ｓ３４で開始した外部情報取得は継続する。ここでの時間ステップの間隔は表示装置８によって決定できるフレーム表示周期などとする。ユーザによる処理終了の指示入力がなされたら処理を終了する（Ｓ４２のＹ）。
【００７４】
図１２から図１５は最終的に出力装置６２へ出力される画像の例を示している。まず図１２に示すパーティクル画像１７０では、撮影対象の人の形にパーティクルが集まっている。これは上述のとおり、前景抽出処理によって抽出した人の領域が他の領域より低くなった高さ画像から、速度場、加速度場を決定し、それに応じて時間間隔分移動したパーティクルを描画することによって得られる。
【００７５】
図１３は、撮影対象の人が画面左方向へ歩いている場合に、人の動きに合わせて後を追うパーティクル画像１７２を示している。上述のように、過去のフレームからの差分によって動きが検出された人の後側の領域において、速度、加速度を低くする摩擦場を生成することにより、パーティクルの“遅れ感”を演出できる。
【００７６】
図１４は撮影対象の人が止まって所定時間経過した場合に、パーティクルの凝集が溶けていくパーティクル画像１７４を示している。この場合、動き検出処理によって動きがない状態が所定時間継続したら、加工用画像生成器７６は、図８のグラデーション画像１３６のように、画面上から下へ向かって画素値が大きくなるようなグラデーション画像を出力する。そして重力画像生成器９４は高さ画像を生成する際に、当該グラデーション画像を用いるようにする。あるいは加速度場を生成する過程でそのような画像を大きな重み付けで合成する。これにより集まっていたパーティクルが、画面下方向へ落ちていくように見せることができる。
【００７７】
図１５は音声信号から破裂音の発生が検出された場合に、パーティクルがはじけているパーティクル画像１７６を示している。これは上述のとおり破裂音発生時に、前景から外側へ向かう加速度、速度を有する画像を生成し、用いるフィールド画像を切り替えたり、フィールド画像生成過程において重み付け合成を行うことによって実現できる。パーティクルを鳥、虫、魚などの形として同様の処理を行うことにより、人の動きによって鳥が集まったり音に反応して逃げたりといった群衆アニメーションの表現も実現できる。
【００７８】
以上述べた本実施の形態によれば、カメラによって撮影された画像のデータのみならず、音声データ、文字情報、数値情報など多様な情報を画像として統一的に扱い、最終的なパーティクル画像を生成する。これにより情報の種類によって特別な処理機構を設けることなく全ての情報を中間画像として同様に処理し、最終的な結果に組み入れることができる。
【００７９】
画像データ、音声データ、文字情報、数値情報など多角的に得られた情報は、パーティクルの挙動を決定づけるフィールド画像の生成に利用する。フィールド画像はパーティクル画像と同様の２次元平面内で各位置に対する速度、加速度、摩擦、サイズ、色を表した画像である。このような画像を用意することにより、ＧＰＵにおけるテクスチャルックアップの機能を利用して、各パーティクルとその属性を高速に結びつけることができる。そしてＧＰＵにおいて画素ごと、または画素ブロックごとに並列処理を行うことにより、多数のパーティクルであっても画像のサイズで処理時間を見積もることができる。また従来のＧＰＵを利用してこのような処理が可能となるため、低コストで実現可能である。
【００８０】
音声データは、サンプリングした音声信号を、サンプリング時刻を角度θ、音声レベルを径ｒとして極座標で表したときの各点を結んで得られた音声特性図形によって画像化する。これにより音声の特徴を図形の特徴として捉えることができる。例えば音声特性図形の外接矩形の縦横比によって破裂音の発生を検出すると、それに応じて速度場、加速度場を変化させ、破裂音に応じてパーティクルもはじけるような演出が可能となる。これらの処理はそのほとんどが画像処理であるため、上述のようにその他の画像処理と同様の機構によって実施できる。
【００８１】
また画像を合成する、というシンプルな処理によって、パーティクルの挙動に反映させる情報を組み入れているため、イベント発生時に合成時の重み付けを変化させたり、どのような情報によってどのような結果が得られるのか試してみたり、といった処理の変更も容易かつ効率的に行える。
【００８２】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８３】
例えば実施の形態では画像や音声など情報処理装置が外部から取得した情報に基づきフィールド画像を生成しパーティクルに作用させた。一方、情報処理装置内部の情報に基づき同様の処理を行ってもよい。例えばＣＰＵやメモリの使用率に応じた勾配のグラデーション画像や単色の塗りつぶし画像をフィールド画像として生成することにより、それらの経時変化に応じてパーティクルが変化する態様を実現できる。外部情報と当該装置内部の情報とを組み合わせて導入してもよい。これらの場合も実施の形態で述べたのと同様の効果を得ることができる。
【符号の説明】
【００８４】
２  情報処理システム、  ６  カメラ、  ８  表示装置、  １０  情報処理装置、  １２  ＣＰＵ、  １４  ＧＰＵ、  １６  メインメモリ、  １８  入出力インターフェース、  ２２  通信部、  ２４  記憶部、  ２６  出力部、  ２８  入力部、  ３０  記録媒体駆動部、  ３２  入力装置、  ３６  マイクロホン、  ３８  ネットワーク、  ４２  外部情報取得部、  ４４  フィールド画像生成部、  ５２  中間画像記憶部、  ５４  フィールド画像記憶部、  ５６  パーティクル画像生成部、  ５８  属性値取得部、  ６０  パーティクル描画部、  ６２  出力装置、  ７０  画像／画像変換器、  ７２  音声／画像変換器、  ７４  情報／画像変換器、  ７６  加工用画像生成器、  ７８  加算器、  ８０  乗算器、  ８２  ＯＲ回路、  ８４  ＡＮＤ回路、  ８６  ぼかし画像生成器、  ８８  動き画像生成器、  ９０  前景画像生成器、  ９２  イベント画像生成器、  ９４  重力画像生成器。
【図１】
2012032951.tif 000006
【図２】
2012032951.tif 000007
【図３】
2012032951.tif 000008
【図４】
2012032951.tif 000009
【図５】
2012032951.tif 000010
【図６】
2012032951.tif 000011
【図７】
2012032951.tif 000012
【図１０】
2012032951.tif 000013
【図１１】
2012032951.tif 000014
【図８】
2012032951.tif 000015
【図９】
2012032951.tif 000016
【図１２】
2012032951.tif 000017
【図１３】
2012032951.tif 000018
【図１４】
2012032951.tif 000019
【図１５】
2012032951.tif 000020