(57)【特許請求の範囲】
【請求項１】
透過型ディスプレイを有する装置のユーザーによって視認されている人物に関するコンテンツ情報を、当該透過型ディスプレイ上に表示する情報処理システムであって、
前記ユーザーの位置情報および前記ユーザーとは異なる人物の位置情報に基づいて、当該異なる人物が前記ユーザーによって視認されていると判定する第１の判定手段と、
前記ユーザーの、所定の情報投稿サービスにおける投稿内容に関する情報、および、前記視認されていると判定された人物の、前記所定の情報投稿サービスにおける投稿内容に関する情報を記憶している記憶手段と、
前記記憶手段に記憶されている前記ユーザーの前記情報および前記視認されていると判定された人物の前記情報に基づいて、前記ユーザーが前記所定の情報投稿サービスに投稿した投稿内容に対する前記視認されていると判定された人物の反応があるかを判定する第２の判定手段と、
前記第２の判定手段による前記反応があるとの判定に基づいた、前記反応を表すコンテンツ情報を、前記透過型ディスプレイ上に表示する表示制御手段と、
を有することを特徴とする情報処理システム。
【請求項２】
前記第１の判定手段は、前記ユーザーの位置情報、および、前記ユーザーとは異なる人物の位置情報、および、前記ユーザーの視線の向きに関する情報に基づいて、当該異なる人物が前記ユーザーによって視認されていると判定することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記視認されていると判定された人物の像は、前記透過型ディスプレイを通して前記ユーザーによって視認されており、
前記表示制御手段は、前記視認されていると判定された人物の像の前記透過型ディスプレイ上の位置に基づく、前記透過型ディスプレイ上の表示位置に、前記コンテンツ情報を表示することを特徴とする請求項１または２に記載の情報処理システム。 
【請求項４】
透過型ディスプレイを有する装置のユーザーによって視認されている人物に関するコンテンツ情報を、当該透過型ディスプレイ上に表示する情報処理システムの制御方法であって、
前記ユーザーの位置情報および前記ユーザーとは異なる人物の位置情報に基づいて、当該異なる人物が前記ユーザーによって視認されていると判定する第１の判定工程と、
記憶手段に記憶されている前記ユーザーの、所定の情報投稿サービスにおける投稿内容に関する情報、および、前記視認されていると判定された人物の、前記所定の情報投稿サービスにおける投稿内容に関する情報に基づいて、前記ユーザーが前記所定の情報投稿サービスに投稿した投稿内容に対する前記視認されていると判定された人物の反応があるかを判定する第２の判定工程と、
前記反応があるとの前記判定に基づいた、前記反応を表すコンテンツ情報を、前記透過型ディスプレイ上に表示する表示制御工程と、
を有することを特徴とする情報処理システムの制御方法。
【請求項５】
前記第１の判定工程は、前記ユーザーの位置情報、および、前記ユーザーとは異なる人物の位置情報、および、前記ユーザーの視線の向きに関する情報に基づいて、当該異なる人物が前記ユーザーによって視認されていると判定することを特徴とする請求項４に記載の情報処理システムの制御方法。
【請求項６】
前記視認されていると判定された人物の像は、前記透過型ディスプレイを通して前記ユーザーによって視認されており、
前記表示制御工程は、前記視認されていると判定された人物の像の前記透過型ディスプレイ上の位置に基づく、前記透過型ディスプレイ上の表示位置に、前記コンテンツ情報を表示することを特徴とする請求項４または５に記載の情報処理システムの制御方法。 
【請求項７】
請求項１乃至３の何れか１項に記載の各手段として、１つ以上のコンピュータを機能させるためのコンピュータプログラム。
【請求項８】
透過型ディスプレイを有する装置を装着しているユーザーによって視認されている人物に関するコンテンツ情報を、当該透過型ディスプレイに表示させる情報処理装置であって、
前記ユーザーの位置情報および前記ユーザーとは異なる人物の位置情報に基づいて、当該異なる人物が前記ユーザーによって視認されていると判定する判定手段と、
前記ユーザーが前記所定の情報投稿サービスに投稿した投稿内容に対する前記視認されていると判定された人物の反応があるとの判定に基づいた、前記反応を表すコンテンツ情報を、前記透過型ディスプレイに表示させる制御手段とを有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人物間のコミュニケーションを促進するための情報処理技術に関する。
【背景技術】
【０００２】
人物間のコミュニケーションを促進させることを目的とした情報処理システムがある。
特許文献１の開示する情報処理システムは、各人物の位置情報を取得して各人物間の物理的距離が近い人物どうしについて、その人物間の関わり度合いを表す情報距離を算出する。そして、算出された情報距離が近い（つまり関わり度合いが大きい）場合に、近くに関わり度合いが大きい人物がいることをディスプレイに表示する。このようにすることで、関わり度合いの大きい人物と積極的に接触することが可能になり、人物間のコミュニケーションを促進する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−３０１４０７
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では関わり度合いの大きい人物が近くにいることが示されるものの、その人物がどのような関係性を有している人物であるのかはわかりにくい。また、近くに複数の人物がいた場合に、どの人物が関わり度合いの大きい人物であるのかが分かりにくい。
そこで、本発明では、近くにいる人物が自分とどのような関係を持った人物であるかというコンテンツ情報を、実際に近くにいる人物に紐づけて表示する情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の情報処理システムは、透過型ディスプレイを有する装置のユーザーによって視認されている人物に関するコンテンツ情報を、当該透過型ディスプレイ上に表示する情報処理システムであって、前記ユーザーの位置情報および前記ユーザーとは異なる人物の位置情報に基づいて、当該異なる人物が前記ユーザーによって視認されていると判定する第１の判定手段と、前記ユーザーの、所定の情報投稿サービスにおける投稿内容に関する情報、および、前記視認されていると判定された人物の、前記所定の情報投稿サービスにおける投稿内容に関する情報を記憶している記憶手段と、前記記憶手段に記憶されている前記ユーザーの前記情報および前記視認されていると判定された人物の前記情報に基づいて、前記ユーザーが前記所定の情報投稿サービスに投稿した投稿内容に対する前記視認されていると判定された人物の反応があるかを判定する第２の判定手段と、前記第２の判定手段による前記反応があるとの判定に基づいた、前記反応を表すコンテンツ情報を、前記透過型ディスプレイ上に表示する表示制御手段と、を有することを特徴とする。
【発明の効果】
【０００６】
被観測者との関係性に基づいたコンテンツ情報を、被観測者の画像とともに表示するため、被観測者がどのような関係性を持っている人物であるかをユーザにわかりやすく提示することができる。
【図面の簡単な説明】
【０００７】
【図１】実施例１のシステム構成を示す図
【図２】本実施形態で用いるタブレット端末のハードウェアブロック図
【図３】本実施形態で用いる処理サーバーのハードウェアブロック図
【図４】本実施形態において処理サーバーが記憶装置に保持する個人情報データベースを示す図
【図５】本実施形態で用いるコンテンツ表示スクリプトの一例を示す図
【図６】実施例１における全体処理のフロー
【図７】本実施形態における処理サーバーの顔認識処理のフローを示す図
【図８】本実施形態における処理サーバーのコンテンツ生成処理のフローを示す図
【図９】実施例１におけるコンテンツ表示の例を示す図
【図１０】実施例２及び実施例３のシステム構成を示す図
【図１１】本実施形態で用いるＨＭＤのハードウェアブロック図
【図１２】本実施形態で用いるネットワークカメラのハードウェアブロック図
【図１３】実施例２及び実施例３の撮影画像処理と個人特定処理のフローを示す図
【図１４】実施例２の情報表示処理のフローを示す図
【図１５】図１４のＳ１９０７記載の観測者がＨＭＤディスプレイを通して見ている被観測者を導出する方法の概念図
【図１６】図１４のＳ１９０９で処理サーバーがＨＭＤのディスプレイ上のコンテンツ表示位置を算出する方法の概念図
【図１７】実施例２におけるコンテンツ表示の例を示す図
【図１８】実施例３の情報表示処理のフローを示す図
【図１９】実施例３におけるコンテンツ表示の例を示す図
【図２０】実施例４における処理サーバーがコンテンツ表示スクリプトをユーザに設定させる画面の例
【図２１】実施例４における処理サーバーのコンテンツ表示スクリプト設定処理のフローを示す図
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための形態について図面を用いて説明する。
【０００９】
（実施例１）
＜実施例１のシステム構成＞
図１は実施例１のシステム構成を示す図である。本実施例のシステムは、ユーザＣとユーザＤの２名が持つタブレット端末０２００、ワイヤレスアクセスポイント０４００、処理サーバー０３００、ネットワーク９０００を有する。各タブレット端末０２００とワイヤレスアクセスポイント０４００は無線通信を行い、各タブレット端末０２００はワイヤレスアクセスポイント０４００を介して有線のネットワーク９０００と接続されている。処理サーバー０３００とワイヤレスアクセスポイント０４００は有線のネットワーク９０００を介して接続されている。ユーザＡは、ユーザＣ及びユーザＤの方向を向いており、ユーザＣおよびユーザＤの持つタブレット端末０２００の有するカメラ０２０３はユーザＡの顔を撮像出来るものとする。
【００１０】
＜タブレット端末＞
図２は本実施形態で用いるタブレット端末０２００のハードウェアブロック図である。タブレット端末０２００は、コントローラ０２２０、ディスプレイ兼タッチパネル０２０１、ＬＡＮポート０２０２、カメラ０２０３を有する。
【００１１】
コントローラ０２２０の構成についてさらに説明する。
【００１２】
内部バス０２１１は、メモリコントローラ０２０７、Ｉ／Ｏコントローラ０２０９間で情報の伝達が出来るよう、電気信号を送受信する。メモリコントローラ０２０７は、メインメモリ０２０８に対するメモリアクセス全般を統括する。Ｉ／Ｏコントローラ０２０９は、フラッシュメモリ０２１０、ＬＡＮポート０２０２、ディスプレイ兼タッチパネル０２０１（以下ディスプレイ０２０１と呼ぶ）のタッチパネル、カメラ０２０３、内部バス０２１１を介して接続している処理部との情報の送受信を行う。
【００１３】
ＬＡＮポート０２０２は、ワイヤレスアクセスポイント０４００と無線通信することで、ネットワーク９０００を介して接続されている処理サーバー０３００などの他の機器と、Ｉ／Ｏコントローラ０２０９との情報の送受信を中継する。
【００１４】
フラッシュメモリ０２１０にはブートローダプログラム及びタブレット端末制御プログラムが格納されている。メインメモリ０２０８は揮発性メモリであり、高速アクセスが可能であるので、フラッシュメモリ０２１０に記憶されている情報やカメラで撮像した画像など一時的に使用する情報はここに格納される。
【００１５】
タブレット端末０２００の電源投入時には、ＣＰＵ０２０４がブートローダプログラムを読み出して実行し、フラッシュメモリ０２１０に格納されているタブレット端末制御プログラムを取り出し、メインメモリ０２０８に格納する。そして、ＣＰＵ０２０４がメインメモリ０２０８に格納されているタブレット端末制御プログラムを実行し、タブレット端末の有する各機能および図６のＳ０９０１〜Ｓ０９０７の処理を実行する。
【００１６】
以上がコントローラ０２２０についての構成の説明である。
【００１７】
タブレット端末０２００は、情報を表示するディスプレイ０２０１とユーザからの情報入力を受けるタッチパネルが一体化したディスプレイ０２０１を備える。グラフィックコントローラ０２０６は、ディスプレイ０２０１の表示領域への表示を制御する。タブレット端末０２００は、ユーザに情報を提示する際にはディスプレイ０２０１の表示領域上に情報を表示し、ユーザは、ディスプレイ０２０１に対するタッチ操作でタブレット端末０２００への情報入力が可能である。
【００１８】
またタブレット端末０２００は、カメラ（撮像手段）０２０３を備えている。カメラ０２０３は撮像画像をデジタル変換する。カメラ０２０３は、Ｉ／Ｏコントローラ０２０９との情報の送受信を行う。
【００１９】
＜処理サーバー＞
図３は本実施形態で用いる処理サーバーのハードウェアブロック図である。０３００は処理サーバーである。処理サーバー０３００はコントローラ０３２０、ディスプレイ０３０１、キーボード０３０２、マウス０３０３を有する。
【００２０】
コントローラ０３２０の構成についてさらに説明する。
【００２１】
内部バス０３１１は、メモリコントローラ０３０７、Ｉ／Ｏコントローラ０３０９間で情報の伝達が出来るよう、電気信号を送受信する。
【００２２】
メモリコントローラ０３０７は、メインメモリ０３０８に対するメモリアクセス全般を統括する。Ｉ／Ｏコントローラ０３０９は、ＨＤＤ０３１０、ＬＡＮポート０３０４、キーボード０３０２、マウス０３０３、内部バス０３１１を介して接続している処理部との情報の送受信を行う。ＬＡＮポート０３０４は、ネットワーク９０００やワイヤレスアクセスポイントを介して接続されている他の機器、Ｉ／Ｏコントローラ０３０９との情報の送受信を行う。
【００２３】
ＨＤＤ０３１０にはブートローダプログラム及び処理サーバー制御プログラムが格納されている。メインメモリ０３０８は揮発性メモリであり、高速アクセスが可能であるので、ＨＤＤ０３１０に記憶されている情報や一時的に使用する情報はここに格納される。処理サーバー０３００の電源投入時には、ＣＰＵ０３０５がブートローダプログラムを読み出して実行し、ＨＤＤ０３１０に格納されている処理サーバー制御プログラムを取り出し、メインメモリ０３０８に格納する。そして、ＣＰＵ０３０５がメインメモリ０３０８に格納されている処理サーバー制御プログラムを実行し、処理サーバーの有する各機能を実行する。また、ＣＰＵ０３０５がこの処理サーバー制御プログラムを実行することで、図６、１１、１８、１９、２３、２６に示される処理サーバーの行う処理が実行される。
【００２４】
以上がコントローラ０３２０の構成についての説明である。
【００２５】
処理サーバー０３００は、情報を表示するディスプレイ０３０１を備える。グラフィックコントローラ０３０６は、ディスプレイ０３０１のディスプレイ０３０１への表示を制御する。
【００２６】
処理サーバー０３００は、ユーザに情報を提示する際にはディスプレイ０３０１に情報を表示し、ユーザは、キーボード０３０２又はマウス０３０３に対する操作で処理サーバー０３００への情報入力が可能である。
【００２７】
＜個人情報データベース＞
図４は本実施形態において処理サーバーがＨＤＤ０３１０に保持する個人情報データベースとして管理するデータテーブル０７００である。このデータテーブルは図４のデータテーブルの１行を１レコードとして、以下の８つの属性の情報を管理する。なお１ユーザにつき、１レコードのデータが個人情報として管理される。
【００２８】
ａ−１）ｎｏｄｅ．ｉｄ：ユーザの個人情報はｎｏｄｅ．ｉｄ列に示す固有のＩＤで管理する。このＩＤはユーザを他のユーザと区別して一意に特定するために用いられるものであり、ユーザが予めタブレット端末０２００に対して設定するものとする。例えばユーザの社員番号などがＩＤとして予めタブレット端末０２００に設定されていてもよい。なお設定されるＩＤは、コントローラ０２２０内のメインメモリ０２０８に格納され、必要に応じて読みだされる。
【００２９】
ａ−２）ｎｏｄｅ．ｎａｍｅ：各ユーザの名前はｎｏｄｅ．ｎａｍｅ列で管理する。例えば、ｎｏｄｅ．ｉｄが０００１でｎｏｄｅ．ｎａｍｅが“Ａ”となっているのは、ｎｏｄｅ．ｉｄ＝０００１として管理されている個人情報はユーザＡのものであることを示す。
【００３０】
ａ−３）ｎｏｄｅ．ｅｄｇｅ：ｎｏｄｅ．ｅｄｇｅ列ではユーザどうしの顔見知り関係が管理される。例えばｎｏｄｅ．ｉｄ＝０００１として個人情報が管理されるユーザＡのレコードのｎｏｄｅ．ｅｄｇｅの情報には｛ｎｏｄｅ．ｉｄ＝２，  ０｝が設定されているので、ユーザＡは、ｎｏｄｅ．ｉｄ＝０００２として個人情報が管理されるユーザＢと顔見知りではないことが示される。また、ｎｏｄｅ．ｉｄ＝０００１として個人情報が管理されるユーザＡのレコードのｎｏｄｅ．ｅｄｇｅの情報には｛ｎｏｄｅ．ｉｄ＝３，  １｝および｛ｎｏｄｅ．ｉｄ＝４，  １｝も設定されているので、ユーザＡは、ｎｏｄｅ．ｉｄ＝０００３およびｎｏｄｅ．ｉｄ＝０００４として個人情報が管理されるユーザＣおよびＤと顔見知りであることが示される。つまりあるユーザＸについて１レコードのｎｏｄｅ．ｅｄｇｅの情報に設定される｛ｎｏｄｅ．ｉｄ＝Ｙ，  Ｚ｝はＺが１であれば、ユーザＸは、ｎｏｄｅ．ｉｄ＝Ｙとして個人情報が管理されるユーザと顔見知りであることが示される。また、ｎｏｄｅ．ｅｄｇｅの情報に設定される｛ｎｏｄｅ．ｉｄ＝Ｙ，  Ｚ｝はＺが０であれば、ユーザＸは、ｎｏｄｅ．ｉｄ＝Ｙとして個人情報が管理されるユーザとは顔見知りでないことが示される。
【００３１】
ａ−４）ｎｏｄｅ．ｔｏｄｏ：各ユーザの管理するＴｏＤｏリストの内容はｎｏｄｅ．ｔｏｄｏ列として管理する。各ユーザが、処理サーバー０３００と接続している情報処理端末（不図示）上で動作するスケジューラアプリによって管理されるＴｏＤｏリストを編集すると、その内容がこのｎｏｄｅ．ｔｏｄｏ列に反映される。例えば、ｎｏｄｅ．ｉｄ＝０００３（ユーザＣ）のＴｏＤｏリストは、タイトルが「ＸＸ社との契約作業の進捗確認」で、詳細内容が「２０日までに完了させる必要あり。契約課ユーザＡに確認。」という内容になる。
【００３２】
ａ−５）ｎｏｄｅ．ｓｎｓ：各ユーザがＳＮＳ（Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋ  Ｓｅｒｖｉｃｅ）に投稿した内容はｎｏｄｅ．ｓｎｓ列として管理する。各ユーザが、処理サーバー０３００と接続している情報処理端末（不図示）を介して、ＳＮＳ（例えば社内ＳＮＳ）にコメントを投稿すると、投稿コメントがこのｎｏｄｅ．ｓｎｓ列に反映される。
【００３３】
ａ−６）ｎｏｄｅ．ｓｃｈｅｄｕｌｅ：各ユーザの管理するスケジュールの内容はｎｏｄｅ．ｓｃｈｅｄｕｌｅ列として管理する。各ユーザが、処理サーバー０３００と接続している情報処理端末上で動作するスケジューラアプリによって管理されるスケジュールリストを編集すると、その編集結果がこのｎｏｄｅ．ｓｃｈｅｄｕｌｅ列に反映される。例えば、ｎｏｄｅ．ｉｄ＝０００２（ユーザＢ）とｎｏｄｅ．ｉｄ＝０００３（ユーザＣ）は共にタイトルが「新製品デザインレビュー」で開催日時が「２０１２／３／１５の１５：００〜１７：００」というミーティングに出席予定ということになる。
【００３４】
ａ−７）ｎｏｄｅ．ｆａｃｅ＿ｉｍａｇｅ：各ユーザの顔画像はｎｏｄｅ．ｆａｃｅ＿ｉｍａｇｅ列として管理する。例えば、企業では社員証用に撮影された写真が登録される。
【００３５】
ａ−８）ｎｏｄｅ．ｔｒａｃｅ＿ｉｎｆｏ：各ユーザが建物内などの物理空間（例えばオフィス）内のどこにいるかを示す物理位置情報はｎｏｄｅ．ｔｒａｃｅ＿ｉｎｆｏで管理する。例えば、図４のデータテーブルにおいてｎｏｄｅ．ｉｄ＝０００１（ユーザＡ）の物理位置情報として、後述するネットワークカメラの撮像から人体を検出した際に割り振られるＩＤはｓｋｅｌｅｔｏｎＩＤという属性で表されて、値は０である。また、システムの管理するユーザＡの物理空間における位置座標はｃｏｏｒｄという属性で表され、ｘ座標は１ｍ、ｙ座標は１ｍ、ｚ座標（高さ）は０ｍの位置にユーザＡがいることを表している。また、システムの管理するユーザＡの向いている方角はｄｉｒｅｃｔｉｏｎという属性で表され、ユーザＡは物理空間における座標系で９０度方向の向きを向いていることを表している。
【００３６】
＜コンテンツ表示スクリプト＞
図５は本実施形態で用いるコンテンツ表示スクリプトの一例を示す図である。ユーザは本スクリプト言語仕様で予め定義された複数のコマンドを組み合わせることで、ユーザの望む処理を表現可能である。図５の左に書いてある数字は行番号を示しており、右に書いてある文字列群がコマンドで表現されたスクリプトの内容である。本スクリプトは図８に示すフローに従い、処理サーバー０３００によって解釈実行される。
【００３７】
＜実施例１の処理フロー＞
図６を用いて実施例１における全体処理のフローを説明する。図６のＳ０９０１〜Ｓ０９０７の処理はタブレット端末０２００のコントローラ０２２０によって実行され、図６のＳ０９０８〜Ｓ０９１１の処理は処理サーバー０３００のコントローラ０３２０によって実行される。
【００３８】
Ｓ０９０１で、ユーザによる操作で、コントローラ０２２０がカメラ０２０３を制御することで人物を撮像し、処理をＳ０９０２に進める。
【００３９】
Ｓ０９０２で、コントローラ０２２０が、撮像画像から人物の顔を検出し、撮像画像中における人物の顔の位置座標情報を算出し、コントローラ０２２０内のメインメモリ０２０８に保持する。そして、コントローラ０２２０は撮像画像中の人物の顔の画像を抽出し、処理をＳ０９０３に進める。
【００４０】
Ｓ０９０３で、コントローラ０２２０が、前記撮像画像中の人物の顔の画像から、人物を特定するための顔の特徴情報を算出し、処理をＳ０９０４に進める。本実施例では、撮像画像から人物の顔を検出し、顔の特徴情報を算出する方法として、顔の画像を特徴空間ベクトルに変換する方法を用いる。しかし、その他の公知の方法を用いて顔の特徴情報を算出してもよい。
【００４１】
Ｓ０９０４で、コントローラ０２２０が、観測者（タブレット端末０２００のカメラ０２０３で人物を撮像しているユーザ）の個人情報を特定するための情報と共に、前記撮像画像中の人物の顔の特徴情報を処理サーバー０３００に送信する。観測者の個人情報を特定するための情報とは、データテーブル０７００で管理されている複数の個人情報から観測者であるユーザの個人情報を一意に特定するための情報である。本実施例では、例えば観測者であるユーザの個人情報を管理する図４のｎｏｄｅ．ｉｄの値であって、予めタブレット端末０２００に設定されている情報が用いられる。
【００４２】
ここで、処理サーバー０３００のコントローラ０３２０が、Ｓ０９０８でタブレット端末０２００から観測者の個人情報を特定するための情報と、撮像中の人物の顔の特徴情報を受信し、処理をＳ０９０９に進める。ここで撮像画像中の人物の顔画像の特徴情報は、後述するＳ０９０９での顔認識処理で用いられる、撮像画像中の人物の個人情報を特定するために用いられる情報である。
【００４３】
Ｓ０９０９で、コントローラ０３２０が、図７に示す顔認識処理を実施し、処理をＳ０９１０に進める。
【００４４】
Ｓ０９１０で、コントローラ０３２０が、図８に示すコンテンツ生成処理を行い、処理をＳ０９１１に進める。
【００４５】
Ｓ０９１１で、コントローラ０３２０が、Ｓ０９１０で生成したコンテンツ情報をタブレット端末０２００に送信し、処理サーバー０３００の処理が終了する。
【００４６】
ここで、タブレット端末のコントローラ０２２０が、Ｓ０９０５で処理サーバー０３００からコンテンツ情報を受信し、処理をＳ０９０６に進める。
【００４７】
Ｓ０９０６でコントローラ０２２０が、カメラ０２０３によって撮像された撮像画像をディスプレイ０２０１に表示し、処理をＳ０９０７に進める。
【００４８】
Ｓ０９０７で、コントローラ０２２０は、前記撮像画像中の人物の顔画像の位置座標近傍の位置座標を算出する。そしてコントローラ０２２０は、撮像画像上の算出された位置座標の表示領域上に、コンテンツ情報を重畳して表示する。すなわちコントローラ０２２０は、コンテンツ情報を被観測者の画像とともにディスプレイ０２０１に表示することで、コンテンツ情報を被観測者と紐づけて表示する手段として機能する。なお人物の顔の位置座標近傍とは、例えば、Ｓ０９０２でメインメモリ０２０８に保持されている顔の位置座標から、所定の距離オフセットさせた位置の座標である。これにより、コンテンツ情報が撮像画像中の人物（被観測者）に紐づいて表示されることになる。
【００４９】
＜顔認識処理＞
図７は本実施形態における処理サーバー０３００の実行する顔認識処理のフローを示す図である。
【００５０】
Ｓ１００１で処理サーバーのコントローラ０３２０が、記憶装置（ＨＤＤ０３１０）のデータテーブル０７００から各ユーザの顔情報画像（図４のｎｏｄｅ．ｆａｃｅ＿ｉｍａｇｅの情報）をｎｏｄｅ．ｉｄごとに読み出し、顔情報画像から顔の特徴情報を算出し、処理をＳ１００２に進める。
【００５１】
Ｓ１００２で、コントローラ０３２０が、Ｓ１００１で算出した特徴情報と撮像画像中の人物の顔画像の特徴情報の類似度を算出し、処理をＳ１００３に進める。本実施例では、人物の顔の特徴情報の類似度を算出する方法として、例えば、２つの特徴空間ベクトルの成す角度の相関を求める方法を用いるが、他の公知の方法を用いてもよい。
【００５２】
Ｓ１００３で、コントローラ０３２０が、Ｓ１００２で算出した類似度が一定値以上かどうかを判定し、一定値以上であれば処理をＳ１００４に進める。一定値未満であれば、コントローラ０３２０は処理をＳ１００１に進め、Ｓ１００１でこれまでに読み出していないｎｏｄｅ．ｉｄで管理される個人情報の中から、次の個人情報を読み出して、上述したＳ１００１、Ｓ１００２の処理を繰り返す。
【００５３】
Ｓ１００４で、コントローラ０３２０は、現在参照しているｎｏｄｅ．ｉｄで管理される個人情報（データテーブル０７００のレコード）が、撮像されている人物の個人情報であると特定し、本処理を終了する。
【００５４】
＜コンテンツ生成処理＞
図８は本実施形態における処理サーバー０３００のコンテンツ生成処理のフローを示す図である。
【００５５】
Ｓ１１０１で、処理サーバーのコントローラ０３２０が、記憶装置（ＨＤＤ０３１０）から例えば図５に示したコンテンツ表示スクリプトを読み込み、１コマンドずつ解釈し、Ｓ１１０２に進む。
【００５６】
Ｓ１１０２で、コントローラ０３２０が、解釈したコマンド種類に応じて、処理をＳ１１０３からＳ１１１０の８つの処理に分岐させる。
【００５７】
ｂ−１）：コントローラ０３２０が、解釈したコマンド種類が“ｉｆ”の場合、Ｓ１１０３で、“ｉｆ”に続く（）内の真偽を判定し、真であれば続く処理ブロックを処理し、偽であれば続く処理ブロックは読み飛ばし、Ｓ１１１１に進む。
【００５８】
ｂ−２）：コントローラ０３２０の解釈したコマンド種類が“ｔｏｄｏ．ｓｅａｒｃｈ”の場合、Ｓ１１０４で、“ｔｏｄｏ．ｓｅａｒｃｈ”コマンドの属するクラスのＴｏＤｏの中から、続く（）内のテキスト情報を含むものを返し、なければＮＵＬＬを返し、Ｓ１１１１に進む。前記コマンドの属するクラスとは、コマンド記載の前の“．”（ピリオド）の前に書かれている情報を示しており、その情報がコマンドの処理対象となる。例えば、図５の１５０行目の“ｏｂｓｅｒｖｅｒ．ｔｏｄｏ．ｓｅａｒｃｈ（）”という記載は、“ｓｅａｒｃｈ”コマンドは“ｏｂｓｅｒｖｅｒ．ｔｏｄｏ”（観察者のＴｏＤｏ）情報を対象に“ｓｅａｒｃｈ”処理を行う。
【００５９】
ｂ−３）：コントローラ０３２０の解釈したコマンド種類が“ｍｅｅｔｉｎｇ．ｓｅａｒｃｈ”の場合、Ｓ１１０５で、“ｍｅｅｔｉｎｇ．ｓｅａｒｃｈ”コマンドの属するクラスのミーティングの中から、続く（）内の同じｔｉｔｌｅ、ｄａｙ、ｓｔａｒｔ＿ｔｉｍｅ、ｅｎｄ＿ｔｉｍｅ属性を有するものを返す、なければＮＵＬＬを返し、Ｓ１１１１に進む。
【００６０】
ｂ−４）：コントローラ０３２０の解釈したコマンド種類が“ｂｌａｎｋ．ｓｅａｒｃｈ”の場合、Ｓ１１０６で、“ｂｌａｎｋ．ｓｅａｒｃｈ”コマンドの属するクラスの何もスケジュールが入っていない時間帯を検索し、その中から、続く（）内の時間帯と重複する時間帯を返す、なければＮＵＬＬを返し、Ｓ１１１１に進む。
【００６１】
ｂ−５）  ：コントローラ０３２０の解釈したコマンド種類が“ｔｅｒｍ．ｓｅａｒｃｈ”の場合、Ｓ１１０７で、“ｔｅｒｍ．ｓｅａｒｃｈ”コマンドの属するクラスの時間帯から、続く（）内の時間帯と重複する時間帯を返す、なければＮＵＬＬを返し、Ｓ１１１１に進む。
【００６２】
ｂ−６）：コントローラ０３２０の解釈したコマンド種類が“ａｒｔｉｃｌｅ．ｓｅａｒｃｈ”の場合、Ｓ１１０８で、“ａｒｔｉｃｌｅ．ｓｅａｒｃｈ”コマンドの属するクラスのＳＮＳ投稿情報から、続く（）内のＳＮＳ投稿情報を含むものを返す、なければＮＵＬＬを返し、Ｓ１１１１に進む。
【００６３】
ｂ−７）：コントローラ０３２０の解釈したコマンド種類が“ｎｅｘｔ”の場合、Ｓ１１０９で、“ｎｅｘｔ”コマンドの属するクラス関して複数の候補があれば次の候補を返す、なければＮＵＬＬを返し、Ｓ１１１１に進む。
【００６４】
ｂ−８）：コントローラ０３２０の解釈したコマンド種類が“ｄｉｓｐｌａｙ”の場合、ｓ１１１０で、“ｄｉｓｐｌａｙ”コマンドに続く（）内のコンテンツひな形を採用し、Ｓ１１１１に進む。
【００６５】
そして上記ｂ−１）からｂ−８）のいずれかの処理を実行した後、Ｓ１１１１で、コントローラ０３２０は、採用するコンテンツひな形が決定したかどうかを判定し、決定していれば処理をＳ１１１２に進め、決定していなければ処理をＳ１１０１に進める。
【００６６】
Ｓ１１１２で、コントローラ０３２０は、図７の顔認識処理によって特定された個人情報（特定されたｎｏｄｅ．ｉｄのレコード）を読み込み、この個人情報をコンテンツひな形の文章に、ひな形の書式指定に従って合成することで、コンテンツ情報を生成する。
【００６７】
以上の処理は、観測者であるユーザと被観測者であるユーザの個人情報から、ユーザどうしがどのような関連性を有しているのかを判定する処理と、判定された関連性に基づいた内容をディスプレイ０２０１に表示するためのコンテンツ情報を生成する処理である。すなわち、ここでコントローラ０３２０はユーザどうしの個人情報に基づいて、ユーザ間の関連性を判定する手段および判定された関連性に基づいてコンテンツ情報を生成する手段として機能している。
【００６８】
なお図５に示されるコンテンツ表示スクリプトに基づいて実行されるコンテンツ生成処理において、行番号１００に記載のコマンドによって、観測者であるユーザと被観測者であるユーザが顔見知りであるかどうかを判定する処理が行われる。
【００６９】
観測者であるユーザが被観測者であるユーザと顔見知りであると判定された場合、行番号１１０〜４８０までの処理が実行される。この行番号１１０〜４８０の処理は、観測者と被観測者との関連性を判定する処理および判定された関連性に基づいてコンテンツ情報を生成する処理である。
【００７０】
一方で、観測者であるユーザが被観測者であるユーザと顔見知りでないと判定された場合、行番号５００〜５４０の処理が実行される。この行番号５００〜５４０の処理は、観測者と被観測者との関連性を判定せずに、観測者と被観測者との関連性を示さないコンテンツ情報（例えば被観測者が誰であるかを示すだけのコンテンツ情報）を生成する処理である。
【００７１】
＜コンテンツ情報の表示＞
図９は実施例１におけるコンテンツ情報の表示の例を示す図である。
【００７２】
図９（ａ）は、ユーザＣがタブレット端末０２００のカメラ０２０３でユーザＡを撮影すると、ディスプレイ０２０１にユーザＡの画像に紐付けて、図８で生成されたコンテンツ情報が表示されることを示している。このコンテンツ情報の表示内容は、図４で示す個人情報データベースのデータテーブル０７００の内容とコンテンツ生成処理において実行される図５に示すコンテンツ表示スクリプトにもとづいて決まる。
【００７３】
表示されるコンテンツ情報について、図５のスクリプトの流れに沿って説明する。まず１００行目で、ｏｂｓｅｒｖｅｒ．ｅｄｇｅ．ｔａｒｇｅｔ即ち、観察者（例えばユーザＣ）のｅｄｇｅ情報の中の被観察者（例えばユーザＡ）の情報、即ち、図４のｎｏｄｅ．ｉｄ＝０００３のｎｏｄｅ．ｅｄｇｅの属性の中を参照し、｛ｎｏｄｅ．ｉｄ＝１，  １｝を得る。｛ｎｏｄｅ．ｉｄ＝１，  １｝はｎｏｄｅ．ｉｄ（ユーザＡ）とは“１”（顔見知り）の関係であることを示している。従って、図５の１００行目の条件はｔｒｕｅとなり、処理は１１０行目からのブロックに進む。スクリプト中の“／／”はコメント行を示しており、処理には反映されない。
【００７４】
次に、１５０行目のｉｆ（  ｒｅｓｕｌｔ１  ＝  ｏｂｓｅｒｖｅｒ．ｔｏｄｏ．ｓｅａｒｃｈ（  ｔａｒｇｅｔ．ｎａｍｅ  ））が処理される。図８のＳ１１０４に従い、ユーザＣのＴｏＤｏ、つまり図４のｎｏｄｅ．ｉｄ＝０００３のｎｏｄｅ．ｔｏｄｏ属性の中に、ユーザＡの名前、つまり図４のｎｏｄｅ．ｉｄ＝０００１のｎｏｄｅ．ｎａｍｅが含まれるかを判定する。ユーザＣのＴｏＤｏにはユーザＡの名前が含まれるので、ｒｅｓｕｌｔ１にはｏｂｓｅｒｖｅｒ．ｔｏｄｏが代入される。“ｉｆ”コマンド判定で、ｒｅｓｕｌｔ１は真であるので、処理は１６０行目からのブロックに進む。
【００７５】
１７０、１８０行目で、ｄｉｓｐｌａｙ（  “あなたのＴｏＤｏ「￥ｓ」の関係者です”，ｒｅｓｕｌｔ１．ｔｉｔｌｅ  ）を処理する。図８のＳ１１１０に従い、“あなたのＴｏＤｏ「￥ｓ」の関係者です”というコンテンツひな形を採用する。“￥ｓ”に部分には、ｒｅｓｕｌｔ１．ｔｉｔｌｅの内容が代入される。先ほどｒｅｓｕｌｔ１にはｏｂｓｅｒｖｅｒ．ｔｏｄｏが代入されているので、ｒｅｓｕｌｔ１．ｔｉｔｌｅとはｏｂｓｅｒｖｅｒ．ｔｏｄｏ．ｔｉｔｌｅの意味となり、これはユーザＣのＴｏＤｏのタイトル、即ち、図４のｎｏｄｅ．ｉｄ＝０００３のｎｏｄｅ．ｔｏｄｏ属性の中のｔｉｔｌｅの内容”ＸＸ社との契約作業の進捗確認”となる。
【００７６】
図５の２１０、２９０、４３０行目の“ｅｌｓｅ  ｉｆ”コマンドは、既にその前の“ｉｆ”コマンドの条件判定が真になっていた場合には読み飛ばされるため処理されない。これにより、図８のＳ１１１２で生成するコンテンツは、“あなたのＴｏＤｏ「ＸＸ社との契約作業の進捗確認」の関係者です”という内容になる。タブレット端末が、該コンテンツを、ユーザＡのビデオ映像に紐付けて表示することで、図９（ａ）のように表示される。
【００７７】
図１２（ｂ）は、ユーザＤがタブレット端末０２００のカメラ０２０３でユーザＡを撮影すると、ディスプレイ０２０１にユーザＡの画像に紐付けて、図８のコンテンツ生成処理で生成されたコンテンツ情報が表示されることを示している。図９（ｂ）のコンテンツ情報がディスプレイ０２０１に表示される処理の流れは、前述の、ユーザＣがユーザＡを撮影するケースと同様であるので、詳細な説明は割愛する。ユーザＤのタブレット端末０２００は、“あなたのＳＮＳのスキー旅行の記事にお気に入りマークを残してくれた方です”というコンテンツ情報をユーザＡの画像に紐付けて表示する。
【００７８】
このように、他のユーザとの関係性を反映したコンテンツ情報を、他のユーザを撮影するだけで得られる。そのため、本実施例の情報処理システムによれば、他のユーザを見かけた際に手軽に相手との共通話題を得られ、会話のきっかけを作りやすいという効果を得ることができる。
【００７９】
なお、本実施例においては、被観察者となるユーザは１人であったが、本発明はこれに限られない。すなわち、カメラ０２０３で複数のユーザ（被観測者）を撮像した場合、タブレット端末０２００および処理サーバー０３００は、撮像画像に含まれる複数のユーザそれぞれに対して、これまでの実施例で説明した処理を実行する。
【００８０】
具体的には、撮像画像に含まれる複数の被観測者の顔画像からそれぞれの被観測者の個人情報を特定し、特定されたそれぞれの被観測者の個人情報および観測者であるユーザの個人情報に基づいて、複数の被観測者それぞれに対応するコンテンツ情報をそれぞれ生成する。そして生成された複数のコンテンツ情報に対して、それぞれの被観測者の顔画像の位置座標近傍の座標を算出し、算出されたそれぞれの位置に、対応するコンテンツ情報それぞれを重畳して表示することになる。
【００８１】
例えばユーザＣがユーザＡとユーザＢをタブレット端末のカメラで撮像すると、ユーザＣのタブレット端末には図９（ｃ）のようなコンテンツ情報が表示される。すなわち、ユーザＡ（図９（ｃ）の右側）の顔画像の位置座標近傍にユーザＡとユーザＣとの関係性に基づいて生成されたコンテンツ情報が表示される。さらに、ユーザＢ（図９（ｃ）の右側）の顔画像の位置座標近傍にユーザＢとユーザＣとの関係性に基づいて生成されたコンテンツ情報が表示される。
【００８２】
このように複数のユーザを撮像した場合であっても、撮像画像におけるユーザのそれぞれの位置に対応した位置にそれぞれのコンテンツ情報が表示される。そのため、複数のコンテンツ情報が表示されても、コンテンツ情報が対応する被観測者であるユーザと紐づいて表示されて、撮像画像に写っている複数のユーザと複数のコンテンツ情報との対応が分かりやすくなる。
【００８３】
（実施例２）
＜実施例２のシステム構成＞
図１０は実施例２のシステム構成を示す図である。本実施例のシステムは、ユーザＣとユーザＤの２名が装着するＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）１５００と、ネットワークカメラ１７００、ワイヤレスアクセスポイント０４００、処理サーバー０３００、ネットワーク９０００を有する。各ＨＭＤ１５００とワイヤレスアクセスポイント０４００は無線で接続されており、処理サーバー０３００とワイヤレスアクセスポイント０４００はネットワーク９０００で接続されている。実施例１との違いとして、ユーザＢは、ユーザＣ及びユーザＤに背を向けており、ユーザＣおよびユーザＤのいずれからも顔を観測出来ないものとする。
【００８４】
＜ＨＭＤ＞
本実施形態で用いるＨＭＤ１５００は市販されているものと同様のものであり、フレームで頭部に装着するようになっている。又、片目若しくは両目に透過型のディスプレイ１５０１が取り付けられた構造になっており、ユーザはディスプレイに表示された人工像（表示画像）と、ディスプレイ１５０１の先にある実像を同時に見ることが出来る。ＨＭＤ１５００にはカメラ１５０２も取り付けられており、ユーザの目に近い視点で撮影することが可能である。
【００８５】
図１１は本実施形態で用いるＨＭＤ１５００のハードウェアブロック図である。ＨＭＤ１５００は、コントローラ１５２０、透過型のディスプレイ１５０１、カメラ１５０２を有する。
【００８６】
コントローラ１５２０の構成についてさらに説明する。
【００８７】
内部バス１５１２は、メモリコントローラ１５０７、Ｉ／Ｏコントローラ１５０９間で情報の伝達が出来るよう、電気信号を送受信する。メモリコントローラ１５０７は、メインメモリ１５０８に対するメモリアクセス全般を統括する。Ｉ／Ｏコントローラ１５０９は、ＲＯＭ１５１０、ＬＡＮポート１５０３、透過型ディスプレイ１５０１、地磁気センサ１５１１、内部バス１５１２を介して接続している処理部との情報の送受信を行う。ＬＡＮポート１５０３は、アクセスポイント０４００および／またはネットワーク９０００を介して接続されている処理サーバ０３００などの他の機器、Ｉ／Ｏコントローラ１５０９との情報の送受信を行う。
【００８８】
ＲＯＭ１５１０にはブートローダプログラム及びＨＭＤ制御プログラムが格納されている。メインメモリ１５０８は揮発性メモリであり、高速アクセスが可能であるので、ＲＯＭ１５１０に記憶されている情報や一時的に使用する情報はここに格納される。ＨＭＤ１５００の電源投入時には、ＣＰＵ１５０４がブートローダプログラムを読み出して実行し、ＲＯＭ１５１０に格納されているＨＭＤ制御プログラムを取り出し、メインメモリ１５０８に格納する。そして、ＣＰＵ１５０４がメインメモリ１５０８に格納されているＨＭＤ制御プログラムを実行し、ＨＭＤ１５００の有する各機能を実行する。また、ＣＰＵ１５０４がこのＨＭＤ制御プログラムを実行することで、図１４、２３に示されるＨＭＤ１５００の行う処理が実行される。
【００８９】
以上がコントローラ１５２０の構成についての説明である。
【００９０】
ＨＭＤ１５００は、情報を表示する透過型ディスプレイ１５０１を備える。グラフィックコントローラ１５０６は、透過型ディスプレイ１５０１への表示を制御する。ＨＭＤ１５００は、ユーザに情報を提示する際には透過型ディスプレイ１５０１に情報を表示する。ＨＭＤ１５００は、カメラ１５０２を備えている。カメラ１５０２は撮影した撮像画像をデジタル変換する。カメラ１５０２は、Ｉ／Ｏコントローラ１５０９との情報の送受信を行う。ＨＭＤ１５００は、地磁気センサ１５１１を備えている。地磁気センサ１５１１は、東西南北の方角と、三次元方向の傾きを計測することが可能であり、計測した情報をデジタル情報に変換する。地磁気センサ１５１１は、Ｉ／Ｏコントローラ１５０９との情報の送受信を行う。地磁気センサ１５１１により、ＨＭＤ１５００を装着しているユーザが、物理空間上でどの方向に顔を向けているのかが把握可能である。バッテリー１５０５は、電力をＨＭＤ１５００全体に供給する。
【００９１】
＜ネットワークカメラ＞
本実施形態で用いるネットワークカメラ１７００は天井に取り付けられるようになっており、建物空間内を広く撮影することが可能である。勿論、ネットワークカメラとしては、天井取り付け型ではなく、壁面に埋め込んだものであったり、スタンドに設置したものであっても良い。図１２は本実施形態で用いるネットワークカメラ１７００のハードウェアブロック図である。ネットワークカメラ１７００は、コントローラ１７２０、カメラ１７０１を有する。以下でコントローラ１７２０の構成についてさらに説明する。
【００９２】
内部バス１７０９は、メモリコントローラ１７０５、Ｉ／Ｏコントローラ１７０７間で情報の伝達が出来るよう、電気信号を送受信する。メモリコントローラ１７０５は、メインメモリ１７０６に対するメモリアクセス全般を統括する。Ｉ／Ｏコントローラ１７０７は、ＲＯＭ１７０８、ＬＡＮポート１７０２、カメラ１７０１、内部バス１７０９を介して接続している処理部との情報の送受信を行う。
【００９３】
ＬＡＮポート１７０２は、アクセスポイント０４００および／またはネットワーク９０００を介して接続されている処理サーバー０３００などの他の機器、Ｉ／Ｏコントローラ１７０７との情報の送受信を行う。
【００９４】
ＲＯＭ１７０８にはブートローダプログラム及びネットワークカメラ制御プログラムが格納されている。メインメモリ１７０６は揮発性メモリであり、高速アクセスが可能であるので、ＲＯＭ１７０８に記憶されている情報や一時的に使用する情報はここに格納される。ネットワークカメラ１７００の電源投入時には、ＣＰＵ１７０３がブートローダプログラムを読み出して実行し、ＲＯＭ１７０８に格納されているネットワークカメラ制御プログラムを取り出し、メインメモリ１７０６に格納する。そして、ＣＰＵ１７０３がメインメモリ１７０６に格納されているネットワークカメラ制御プログラムを実行し、ネットワークカメラの有する各機能を実行する。また、ＣＰＵ１７０３がこのネットワークカメラ制御プログラムを実行することで、図１３に示されるネットワークカメラ１７００の行う処理が実行される。
【００９５】
以上がコントローラ１７２０の構成についての説明である。
【００９６】
ネットワークカメラ１７００は、カメラ１７０１を備えている。カメラ１７０１は撮影した撮像画像をデジタル変換する。カメラ１７０１は、Ｉ／Ｏコントローラ１７０７との情報の送受信を行う。
【００９７】
なお、処理サーバー０３００、ワイヤレスアクセスポイント０４００、ネットワーク９０００は実施例１と同様の構成を有するため、説明はしない。
【００９８】
＜実施例２の処理フロー＞
図１３は実施例２の撮影画像処理と個人特定処理のフローを示す図である。Ｓ１８０１からＳ１８０８はネットワークカメラ１７００のコントローラ１７２０によって実行される撮影画像処理である。
【００９９】
Ｓ１８０１で、ネットワークカメラ１７００のコントローラ１７２０がカメラ１７０１を制御することで、建物内の空間（物理空間）を撮像し、処理をＳ１８０２に進める。
【０１００】
Ｓ１８０２で、コントローラ１７２０が、撮像画像から人物の人体を検出し、新規に検出された人体に対しては、ｓｋｅｌｅｔｏｎＩＤを新規に割り当てる。既に検出済みの人体であればコントローラ１７２０は既存のｓｋｅｌｅｔｏｎＩＤを、検出された人体に対して割り当て、処理をＳ１８０３に進める。撮像画像からの人物の人体を検出する方法としては様々な方式があり、本実施例においては、カメラ１７０１から被写体までの距離を測定することができる深度センサを用いた技術を用いるが、本発明はこれに限定されない。前記ｓｋｅｌｅｔｏｎＩＤとは、コントローラ１７２０が検出した人体を、以下の処理において区別して一意に特定するために、各人体に自動的に割り振る個別の番号である。なお、以下の処理には検出された人体に対して割り振られたｓｋｅｌｅｔｏｎＩＤが用いられる。
【０１０１】
Ｓ１８０３で、コントローラ１７２０が、撮像画像から物理空間における人物の位置を算出し、処理をＳ１８０４に進める。物理空間における位置を算出する方法としては様々な方式があり、本実施例においては、先述の深度センサを用いて、測定対象に関する深度情報と、深度センサ撮影面の法線と測定対象の成す角度から算出する方法を用いる。しかし本発明は人物の位置を算出する方法によって限定されない。
【０１０２】
Ｓ１８０４で、コントローラ１７２０が、算出した人物の位置情報をｓｋｅｌｅｔｏｎＩＤに紐付けて処理サーバー０３００に送信し、処理をＳ１８０５に進める。
【０１０３】
Ｓ１８０５で、コントローラ１７２０が人物の顔が観測できるかどうかを判定し、出来る場合は処理をＳ１８０６に進め、出来ない場合はネットワークカメラ１７００の処理を終了する。人物の顔が観測できるかどうかは、例えば実施例１でも言及した特徴空間ベクトルを用いた検出方法を用いればよく、検出出来た場合は観測できるものとして扱う。
【０１０４】
Ｓ１８０６で、コントローラ１７２０が、撮像画像から人物の顔を検出し、撮像画像中の人物の顔の画像を抽出し、処理をＳ１８０７に進める。
【０１０５】
Ｓ１８０７で、コントローラ１７２０が、前記撮像画像中の人物の顔の画像から、人物の顔の特徴情報を算出し、処理をＳ１８０８に進める。
【０１０６】
Ｓ１８０８で、コントローラ１７２０が、前記撮像画像中の人物の顔の特徴情報をｓｋｅｌｅｔｏｎＩＤに紐付けて処理サーバーに送信し、ネットワークカメラの処理を終了する。
【０１０７】
Ｓ１８０９からＳ１８１０は処理サーバー０３００のコントローラ０３２０によって実行される撮影画像処理である。
【０１０８】
Ｓ１８０９で、コントローラ０３２０が、ネットワークカメラ１７００から人物の位置情報とｓｋｅｌｅｔｏｎＩＤを受信し、Ｓ１８１０に進む。
【０１０９】
Ｓ１８１０で、コントローラ０３２０が、ＨＤＤ０３１０に記憶されているデータテーブル０７００の各レコードから個人の物理位置情報（図４のｎｏｄｅ．ｔｒａｃｅ＿ｉｎｆｏ列の属性）を読み出す。そして、コントローラ０３２０は、Ｓ１８０９で受信したｓｋｅｌｅｔｏｎＩＤと一致するｓｋｅｌｅｔｏｎＩＤを有するレコードを探す。一致するｓｋｅｌｅｔｏｎＩＤが見つかった場合、コントローラ０３２０は、見つかったｓｋｅｌｅｔｏｎＩＤと共に管理されている位置情報（ｎｏｄｅ．ｔｒａｃｅ＿ｉｎｆｏのｃｏｏｒｄ情報）を、Ｓ１８０９で受信した位置情報で更新し、撮影画像処理を終了する。また、一致するｓｋｅｌｅｔｏｎＩＤが見つからなかった場合（つまり受信したｓｋｅｌｅｔｏｎＩＤが新規だった場合）、コントローラ０３２０は、メインメモリ０３０８にＳ１８０９で受信したｓｋｅｌｅｔｏｎＩＤおよび位置情報を一時的に記憶する。この一時的に記憶されるｓｋｅｌｅｔｏｎＩＤおよび位置情報は、後述のＳ１８１３での処理で個人情報と紐づけられる。以上でコントローラ０３２０は撮影画像処理を終了する。
【０１１０】
Ｓ１８１１からＳ１８１３は処理サーバー０３００のコントローラ０３２０が実行する個人特定処理である。
【０１１１】
Ｓ１８１１で、コントローラ０３２０が、ネットワークカメラ１７００から撮像画像中の人物の顔の特徴情報とｓｋｅｌｅｔｏｎＩＤを受信し、処理をＳ１８１２に進める。
【０１１２】
Ｓ１８１２で、コントローラ０３２０が、図７に示す顔認識処理を実施して撮像画像中の人物の個人情報（データテーブル０７００のレコード）を特定し、処理をＳ１８１３に進める。
【０１１３】
Ｓ１８１３で、コントローラ０３２０が、ＨＤＤ０３１０のデータテーブル０７００から、Ｓ１８１２で特定した個人情報の物理位置情報（図４のｎｏｄｅ．ｔｒａｃｅ＿ｉｎｆｏ列の属性）を読み出す。そしてコントローラ０３２０は、読み出した物理位置情報にｓｋｅｌｅｔｏｎＩＤが割り当てられているかを判定する。ｓｋｅｌｅｔｏｎＩＤが割り当てられている場合、コントローラ０３２０は処理を終了する。一方、ｓｋｅｌｅｔｏｎＩＤが割り当てられていない場合、コントローラ０３２０は、Ｓ１８１２で特定した個人情報の物理位置情報に対して、Ｓ１８１１で受信したｓｋｅｌｅｔｏｎＩＤを新たに割り当てる。この際にコントローラ０３２０は、Ｓ１８０９でｓｋｅｌｅｔｏｎＩＤに紐づけられて受信された人物の位置情報で、新たに割り当てられたｓｋｅｌｅｔｏｎＩＤを含む物理位置情報のｃｏｏｒｄ情報を更新する。以上で処理サーバー０３００の個人特定処理を終了する。
【０１１４】
なお本実施例において、処理サーバーの撮影画像処理と個人特定処理は非同期に動作させている。その理由は、顔認識処理が成功するかどうかは、カメラが人物の顔を観測出来る位置と向きに人物が存在する必要があり、顔を認識できないことが多々あるためである。そのため、まずは人物の位置を把握しておき、顔認識が成功し個人が特定できた時点で、人物の位置情報と個人情報を結びつけられることが重要になる。本実施例で図１０に示す通りネットワークカメラを４台異なる方向に設置しているのは、人物の顔を観測出来る条件を増やし、個人認識の確率を向上させるためである。
【０１１５】
＜情報表示処理＞
図１４は実施例２の情報表示処理のフローを示す図である。Ｓ１９０１からＳ１９０５はＨＭＤ１５００のコントローラ１５２０が実行する情報表示処理である。
【０１１６】
Ｓ１９０１で、コントローラ１５２０が、透過型ディスプレイ１５０１を通して観察者であるユーザに被観察者であるユーザを視認させ、Ｓ１９０２に進む。これは、コントローラ１５２０が処理を行うというわけではなく、観察者が透過型ディスプレイ越しに被観察者を見るという動作になる。
【０１１７】
Ｓ１９０２で、コントローラ１５２０が、地磁気センサ１５１１からの地磁気センサ情報から観測者の顔の向きを導出し、処理をＳ１９０３に進める。
【０１１８】
Ｓ１９０３で、コントローラ１５２０が、予めメインメモリ１５０８に設定された観測者であるユーザの個人情報を特定するための情報と、この情報と共に観測者の視線の向きの情報を処理サーバーに送信し、処理をＳ１９０４に進める。なお、個人情報を特定するための情報とは、図４のデータテーブル０７００でのｎｏｄｅ．ｉｄ列の属性のＩＤであり、このＩＤはユーザを他のユーザと区別して一意に特定するために用いられるものである。このＩＤは前述の実施例１においては、ユーザが予めタブレット端末０２００に対して設定したものであったが、本実施襟においては、ユーザが予めＨＭＤ１５００に対して設定したものを用いる。例えばユーザの社員番号などがＩＤとして予めタブレット端末０２００に設定されていてもよい。なお設定されるＩＤは、コントローラ１５２０内のメインメモリ１５０８に格納されている。
【０１１９】
Ｓ１９０４で、コントローラ１５２０が、処理サーバー０３００からコンテンツ情報とコンテンツ表示位置を受信し、処理をＳ１９０５に進める。
【０１２０】
Ｓ１９０５で、コントローラ１５２０が、受信したコンテンツ情報を透過型ディスプレイ１５０１のコンテンツ表示位置に表示し、コントローラ１５２０の情報表示処理を終了する。
【０１２１】
Ｓ１９０６からＳ１９１０は処理サーバー０３００のコントローラ０３２０が実行する情報表示処理である。
【０１２２】
Ｓ１９０６で、コントローラ０３２０が、Ｓ１９０３にてＨＭＤ１５００が送信した観測者の個人情報を特定するための情報および向き情報を受信し、処理をＳ１９０７に進める。
【０１２３】
Ｓ１９０７で、コントローラ０３２０が、ＨＤＤ０３１０のデータテーブル０７００から、受信した観測者の個人情報を特定するための情報を含むレコード（個人情報）を読み出す。そしてコントローラ０３２０は、読み出したレコードから物理位置情報（図４のｎｏｄｅ．ｔｒａｃｅ＿ｉｎｆｏ属性の情報）を取得する。そしてコントローラ０３２０は、取得した物理位置情報のｄｉｒｅｃｔｉｏｎ情報を、Ｓ１９０６で受信した向き情報で更新する。またコントローラ０３２０は、更新した物理位置情報に基づいて、観測者であるユーザがＨＭＤ１５００の透過型ディスプレイ１５０１を通して見ている被観測者を導出する。そしてコントローラ０３２０は、該被観測者の個人情報をデータテーブル０７００から抽出し、処理をＳ１９０８に進める。なお、被観測者を導出する方法については、図１５を用いて後述する。
【０１２４】
Ｓ１９０８で、コントローラ０３２０が、図８に示したコンテンツ生成処理を実施してコンテンツ情報を生成して、処理をＳ１９０９に進める。
【０１２５】
Ｓ１９０９で、コントローラ０３２０が、観測者の向き情報と被観測者の物理位置情報からＨＭＤ１５００の透過型ディスプレイ１５０１上のコンテンツ表示位置を算出し、処理をＳ１９１０に進める。なお、コンテンツ表示位置の算出方法については、図１６を用いて後述する。
【０１２６】
Ｓ１９１０で、コントローラ０３２０が、生成したコンテンツ情報とコンテンツ表示位置をＨＭＤ１５００に送信し、本処理を終了する。
【０１２７】
＜被観測者の導出＞
図１５は図１４のＳ１９０７記載の観測者がＨＭＤ１５００の透過型ディスプレイ１５０１を通して見ている被観測者を導出する方法について説明する図である。
【０１２８】
ここで処理サーバー０３００のコントローラ０３２０は、図１３で説明した処理によって、ネットワークカメラ１７００が検出した全ての人物の物理位置情報をデータテーブル０７００から取得する。また、コントローラ０３２０は、図１４のＳ１９０７で更新された物理位置情報のｄｉｒｅｃｔｉｏｎ情報（観測者の向き情報）を取得する。
【０１２９】
これらの人物の物理位置情報および観測者の向き情報から、コントローラ０３２０は、図１５に示すようなマップを内部生成する。図１５のマップは観測者と他の人物の位置関係を上から見た図である。すなわち、コントローラ０３２０は、人物の物理位置情報のｃｏｏｒｄ情報から建物内の空間（物理空間）において、観測者であるユーザの位置座標（Ｘｏ，  Ｙｏ）を他の人物であるユーザの位置座標（Ｘｔ，  Ｙｔ）を取得する。また、コントローラ０３２０は、観測者であるユーザの向き（以下ではＨＭＤ１５００の法線２００１と表記する）θをｄｉｒｅｃｔｉｏｎ情報から取得する。なおここでθはｒａｄｉａｎ単位とするが、ｄｉｒｅｃｔｉｏｎ情報はｄｅｇｒｅｅ単位であり、相互に変換可能である。
【０１３０】
次にコントローラ０３２０は、図１５に示される角度γを求める。角度γは、観測者の装着するＨＭＤ１５００の法線２００１に対する他の人物（非観測者）の位置する方向の角度となる。γは以下の式で求める。
【０１３１】
【数１】
0006021366.tif 000002
【０１３２】
そして、コントローラ０３２０は、ＨＭＤ１５００の透過型ディスプレイ１５０１のカバーする視野角αと角度γを比較することで、他の人物（非観測者）が被観測者であるかどうかを判定する。ここでいう被観測者とは、観測者の装着するＨＭＤ１５００の透過型ディスプレイ１５０１越しに見える人物のことである。コントローラ０３２０は、｜γ｜＜α／２であれば他の人物が被観測者であると判定し、そうでない場合に他の人物は被観測者ではないと判定する。
【０１３３】
＜コンテンツ情報の表示位置の算出＞
図１６は、図１４のＳ１９０９で処理サーバー０３００のコントローラ０３２０が、ＨＭＤ１５００の透過型ディスプレイ１５０１上のコンテンツ情報の表示位置を算出する方法について説明する図である。
【０１３４】
図１６のように観測者の目の法線２１０１（ＨＭＤの法線２００１と等しい）に基づいて図１５で算出した他の人物（非観測者）の位置する方向の角度γの傾き方向を示す線２１０２と、ＨＭＤのディスプレイの交点が、コンテンツ表示位置Ｐｄｉｓｐｌａｙとなる。この位置Ｐｄｉｓｐｌａｙは、観測者から見た被観測者がＨＭＤ１５００の透過型ディスプレイ１５０１越しに視認される位置であり、コンテンツ情報が透過型ディスプレイ１５０１上に表示されるコンテンツ表示位置である。
【０１３５】
コントローラ０３２０は、このコンテンツ表示位置Ｐｄｉｓｐｌａｙを次の式に基づいて算出する。
【０１３６】
【数２】
0006021366.tif 000003
【０１３７】
このＤは、観測者の目から透過型ディスプレイ１５０１までの距離であって、予め決まった値である。
【０１３８】
＜実施例２のコンテンツ情報の表示＞
図１７は実施例２におけるコンテンツ情報の表示の例を示す図である。
図１７（ａ）は、ユーザＣがＨＭＤ１５００越しにユーザＢを見た際に、透過型ディスプレイ１５０１にユーザＢの実像に紐付けてコンテンツ情報が表示されることを示している。コンテンツ情報の表示内容は、実施例１で説明したように図４で示す個人情報データベースの内容と図５に示すコンテンツ表示スクリプトで決まる。コンテンツ生成処理の流れは、実施例１のケースと同様であるので、詳細な説明は割愛する。
【０１３９】
ユーザＣのＨＭＤ１５００は、“本日、１５：００からユーザＢと新製品デザインレビュー件に関して打ち合わせ予定です”というコンテンツをユーザＢの実像に紐付けて表示する。図１７（ｂ）は、ユーザＤがＨＭＤ１５００越しにユーザＢを見た際に、透過型ディスプレイ１５０１にユーザＢの実像に紐付けてコンテンツ情報が表示されることを示している。コンテンツ生成処理の流れは、実施例１のケースと同様であるので、詳細な説明は割愛する。ユーザＤのＨＭＤは、“本日、あなたがユーザＢと直接会話出来るチャンスは今から１５：００までです”というコンテンツ紹鴎をユーザＢの実像に紐付けて表示する。
【０１４０】
このように、実世界上で人を見かけた際に、相手の顔が視認できない場合や物陰にいるなど観測者側から個人を判別出来ない場合であっても、相手の存在を確認でき、自分と相手の共通話題を得られるため、会話のきっかけを作りやすいという効果が得られる。
【０１４１】
なお、本実施例においては、被観察者となるユーザは１人であったが、本発明はこれに限られない。すなわち、観察者が透過型ディスプレイ越しに複数のユーザを見た場合、ＨＭＤ１５００および処理サーバー０３００は、観測者が見ている複数の被観測者を特定し、それぞれの被観測者に対して、これまでの実施例で説明した処理を実行する。すると、それぞれの被観測者ごとに生成されたコンテンツ情報が、透過型ディスプレイ１５０１上の、透過型ディスプレイ１５０１越しに見える被観測者の実像の近傍の位置に表示されることになる。この場合の表示は、透過型ディスプレイとタブレット端末の違いはあるが、例えば、図９（ｃ）のように複数の被観測者の実像の近傍位置にコンテンツ情報が表示されるものと類似した表示が行われる。
【０１４２】
（実施例３）
実施例３の構成は実施例２と特に断りがなければ同様である。但し、実施例２とは異なり、物理空間上の人物位置をＨＭＤ１５００の透過型ディスプレイ１５０１上にアイコンとして表示することで、自分も含めた人物の位置関係を俯瞰的に把握可能にしている。
【０１４３】
＜実施例３の情報表示処理＞
図１８は実施例３の情報表示処理のフローを示す図である。
【０１４４】
Ｓ２３０１からＳ２３０３は、ＨＭＤ１５００のコントローラ１５２０の実行する情報表示処理である。
【０１４５】
Ｓ２３０１で、コントローラ１５２０が、観測者の個人情報を特定するための情報を処理サーバーに送信し、Ｓ２３０２に進む。
【０１４６】
Ｓ２３０２で、コントローラ１５２０が、被観測者ごとのコンテンツ情報と、観測者および被観測者の物理位置情報を受信し、Ｓ２３０３に進む。
【０１４７】
Ｓ２３０３で、コントローラ１５２０が、観測者と被観測者の物理位置情報に基づいて観測者および被観測者を示すアイコンを二次元平面上にマッピングする。そしてコントローラ０３２０は、マッピング後のアイコン画像を透過型ディスプレイ１５０１に表示し、情報表示処理を終了する。
【０１４８】
Ｓ２３０４からＳ２３０７は、処理サーバー０３００のコントローラ０３２０の実行する情報表示処理である。
【０１４９】
Ｓ２３０４で、コントローラ０３２０が、観測者の個人情報を特定するための情報を受信し、Ｓ２３０５に進む。
【０１５０】
Ｓ２３０５で、コントローラ０３２０が、ＨＤＤ０３１０のデータテーブル０７００からＳ２３０４で受信した情報に基づいて各個人の個人情報を特定し、特定した個人情報から物理位置情報を読み出す。そしてコントローラ０３２０は、観測者の位置の近傍にいる人物から被観測者を導出し、該被観測者の個人情報を抽出して、Ｓ２３０６に進む。なお観測者の位置の近傍にいる人物から被観測者を導出するには、コントローラ０３２０は、観測者と他の人物それぞれの物理位置情報のｃｏｏｒｄ情報を読み出す。そしてコントローラ０３２０は、観測者のｃｏｏｒｄ情報で示される位置座標と他の人物のｃｏｏｒｄ情報で示される位置座標との距離が所定の距離内であるかを判定する。コントローラ０３２０は、位置座標間の距離が所定の距離内となる人物を被観測者とする。
【０１５１】
Ｓ２３０６で、コントローラ０３２０が、図８に示したコンテンツ生成処理を実施し、Ｓ２３０７に進む。
【０１５２】
Ｓ２３０７で、コントローラ０３２０は、Ｓ２３０６で生成した被観測者ごとのコンテンツ情報と、観測者および被観測者の物理位置情報をタブレット端末に送信し、処理サーバーの情報表示処理を終了する。
【０１５３】
＜実施例３のコンテンツ情報の表示＞
図１９は実施例３におけるコンテンツ情報の表示の例を示す図である。図は、ユーザＣのＨＭＤ１５００の透過型ディスプレイ１５０１に表示されるコンテンツ情報であり、ユーザＡ、ユーザＢ、ユーザＣの３名が近くにいることが俯瞰図として表示される。
【０１５４】
図１９中の符号（ａ）は、ユーザＡのアイコン表示に紐付けてコンテンツ情報が表示されることを示している。図１９中の符号（ｂ）は、ユーザＢのアイコン表示に紐付けてコンテンツ情報が表示されることを示している。また、図１９中の符号（ｃ）は、自分（この場合はユーザＣ）のアイコン表示である。コンテンツ情報の表示内容は、実施例１で説明したように、図４で示す個人情報データベースの内容と図５に示すコンテンツ表示スクリプトで決まる。なおコンテンツ生成処理の流れは、実施例２と同様である。
【０１５５】
このようにして、実施例３では、実施例１や実施例２とは異なり、俯瞰的に人の情報を見ることが可能となり、自分の用事のある相手に話しかけに行く前に、その相手がどこにいるのかを把握しやすくなり、相手にたどり着きやすくなる。
【０１５６】
（実施例４）
実施例４は、図５に示したコンテンツ表示スクリプトをユーザに設定させる動作の例である。
【０１５７】
＜コンテンツ表示スクリプトの設定画面の表示＞
図２０は、実施例４における処理サーバーのコントローラ０３２０が、コンテンツ生成処理に用いられるコンテンツ表示スクリプトを、ユーザに設定させる画面を表示する例である。画面にはスクリプトを入力する領域と、保存ボタンとキャンセルボタンがある。スクリプトはユーザがキーボード０３０２で入力し、保存ボタンとキャンセルボタンはユーザがマウス０３０３で押下する。ユーザは、本画面のスクリプトを入力する領域で新規にスクリプトを記載するか編集し、保存することで、コンテンツ表示スクリプトを設定することが可能である。
【０１５８】
＜コンテンツ表示スクリプト設定処理＞
図２１は実施例４における処理サーバー０３００のコントローラ０３２０の実行するコンテンツ表示スクリプト設定処理のフローを示す図である。
【０１５９】
Ｓ２６０１で、コントローラ０３２０はが、ＨＤＤ０３１０からコンテンツ表示スクリプトを読み出し、Ｓ２６０２に進む。
【０１６０】
Ｓ２６０２で、コントローラ０３２０はが、コンテンツ表示スクリプトの入力を促すメッセージ、スクリプト入力エリア、保存ボタン、キャンセルボタンから成るコンテンツ表示スクリプト設定画面をディスプレイ０３０１表示し、Ｓ２６０３に進む。
【０１６１】
Ｓ２６０３で、コントローラ０３２０は、ユーザの操作を判別する。
【０１６２】
ユーザの操作がコンテンツ表示スクリプトの編集であれば、Ｓ２６０４で、コントローラ０３２０は、キーボード入力を画面に反映し、Ｓ２６０３に進む。
【０１６３】
ユーザの操作が保存であれば、Ｓ２６０５で、コントローラ０３２０は、入力されたコンテンツ表示スクリプトをＨＤＤ０３１０に書き込み、本処理を終了する。
【０１６４】
ユーザの操作がキャンセルであれば、何もせずに本処理を終了する。
【０１６５】
尚、実施例４ではスクリプトをユーザに入力させたが、より簡易的にシステムの挙動の選択肢をディスプレイに表示し、その選択肢の中からユーザに選択させても良い。
【０１６６】
以上のように本実施例では、図５に例示したコンテンツ表示スクリプトを、ユーザによって自由に編集可能にする。そのため、コンテンツ生成処理によって生成されるコンテンツ情報をユーザが自由にカスタマイズ出来るようになり、ユーザの目的に合ったコンテンツ情報をディスプレイの表示することができる。
【０１６７】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0006021366.tif 000004
【図２】
0006021366.tif 000005
【図３】
0006021366.tif 000006
【図４】
0006021366.tif 000007
【図５】
0006021366.tif 000008
【図６】
0006021366.tif 000009
【図７】
0006021366.tif 000010
【図８】
0006021366.tif 000011
【図９】
0006021366.tif 000012
【図１０】
0006021366.tif 000013
【図１１】
0006021366.tif 000014
【図１２】
0006021366.tif 000015
【図１３】
0006021366.tif 000016
【図１４】
0006021366.tif 000017
【図１５】
0006021366.tif 000018
【図１６】
0006021366.tif 000019
【図１７】
0006021366.tif 000020
【図１８】
0006021366.tif 000021
【図１９】
0006021366.tif 000022
【図２０】
0006021366.tif 000023
【図２１】
0006021366.tif 000024