携帯デバイスのディスプレイに表示されるビューの向きを設定するための方法であって、前記ディスプレイの正面のエリアの画像を取得するステップと、前記ディスプレイの正面のエリアに人が位置するとき、人の顔の特徴の位置を特定するステップと、前記特徴の位置にもとづいて前記顔の軸を決定するステップと、前記顔の軸に実質的に対応するように、前記携帯デバイスの前記ディスプレイ上に表示されるビューの向きを設定するステップとを含むことを特徴とする方法。前記ビューの向きを設定するステップは、前記ビューの水平軸が実質的に前記ディスプレイの縦または横軸に対応するように、かつ、前記顔の水平軸と前記ビューの水平軸の間の角度の絶対値が45度以下であるように、ビューの向きを設定するステップをさらに含むことを特徴とする請求項1に記載の方法。前記顔の特徴の位置が変化しているとき、前記ビューの向きの設定を続けるステップをさらに含むことを特徴とする請求項1に記載の方法。前記顔の特徴は前記人の目と鼻を含むことを特徴とする請求項1に記載の方法。前記顔の軸は両目を横切り、前記鼻は前記軸の下側に位置することを特徴とする請求項4に記載の方法。前記顔の特徴は目と口を含むことを特徴とする請求項1に記載の方法。前記顔の特徴は前記人の目を含み、前記軸を決定するステップはさらに、前記両目の位置と重力を用いて前記軸を計算するステップを含むことを特徴とする請求項1に記載の方法。前記ビューの向きを設定するステップは、デバイス慣性情報と前記顔の特徴の位置とを用いて前記ビューの正しい向きを決定するステップをさらに含むことを特徴とする請求項1に記載の方法。前記人の両目を含む顔の特徴の位置を追跡し続けるステップと、前記両目のまばたきを検出するステップと、前記両目のまばたきの検出に応答して、前記携帯デバイスにおいてオペレーションを実行するステップとをさらに含むことを特徴とする請求項1に記載の方法。前記ビューの向きを設定するステップは、前記ビューの水平軸が前記顔の水平軸に対応するようにビューの向きを設定するステップをさらに含むことを特徴とする請求項1に記載の方法。前記ビューは、前記デバイスの向きに対して相対的な向きをもつ少なくとも1つのオブジェクトを含み、前記ビューは、前記顔の水平軸に対して相対的な向きをもつ少なくとも1つのオブジェクトを含むことを特徴とする請求項10に記載の方法。ディスプレイと、前記ディスプレイの正面のエリアの画像を取得するカメラと、前記ディスプレイの正面のエリアに位置する人の顔の特徴の位置を特定し、前記特徴の位置にもとづいて前記顔の軸を決定するプレイヤ位置決定モジュールとを含み、前記ディスプレイに表示されたビューの向きは、前記顔の軸に実質的に対応することを特徴とする携帯デバイス。前記携帯デバイスは、ゲームコントローラ、携帯ゲームデバイス、携帯電話、カメラ、タブレット、ラップトップ、携帯情報端末PDA、携帯音楽プレイヤ、携帯ビデオプレイヤ、リモコン、デジタルフォトフレーム、ビデオカメラ、携帯テレビ、GPSglobalpositioningsystemデバイスからなるグループから選択されることを特徴とする請求項12に記載の携帯デバイス。前記カメラは赤外線センサであり、前記顔の特徴は前記人の目を含み、前記目は前記赤外線センサで検出されることを特徴とする請求項12に記載の携帯デバイス。前記顔の特徴は前記人の鼻と口を含むことを特徴とする請求項12に記載の携帯デバイス。前記顔の特徴は、顔の輪郭を示す卵形を含み、前記顔の軸は前記卵形の短軸に対応することを特徴とする請求項12に記載の携帯デバイス。コンピュータ読み取り可能な記録媒体に格納された、1以上のプロセッサによって実行される、携帯デバイスのディスプレイに表示されるビューの向きを設定するためのコンピュータプログラムであって、前記ディスプレイの正面のエリアの画像を取得するためのプログラムインストラクションと、前記ディスプレイの正面のエリアに人が位置するとき、人の顔の特徴の位置を特定するためのプログラムインストラクションと、前記特徴の位置にもとづいて前記顔の軸を決定するためのプログラムインストラクションと、前記顔の軸に実質的に対応するように、前記携帯デバイスの前記ディスプレイ上に表示されるビューの向きを設定するためのプログラムインストラクションとを含むことを特徴とするコンピュータプログラム。前記ビューの向きを設定するためのプログラムインストラクションは、前記ビューの水平軸が実質的に前記ディスプレイの縦または横軸に対応するように、かつ、前記顔の水平軸と前記ビューの水平軸の間の角度の絶対値が45度以下であるように、ビューの向きを設定するためのプログラムインストラクションをさらに含むことを特徴とする請求項17に記載のコンピュータプログラム。前記顔の特徴は、前記人が眼鏡をかけていないときは、前記人の目を含み、前記人が眼鏡をかけているときは、前記人の眼鏡を含むことを特徴とする請求項17に記載のコンピュータプログラム。前記顔の特徴は、前記顔の両耳に着けられたヘッドセットを含むことを特徴とする請求項17に記載のコンピュータプログラム。前記カメラは赤外線センサであり、前記人が着けているヘッドセットは赤外光を照射し、前記ヘッドセットは前記赤外センサで検出されることを特徴とする請求項17に記載のコンピュータプログラム。ある携帯デバイスはジャイロスコープや加速時計などの慣性センサをもち、携帯デバイスはそれによってポジションの変化を検出することができる。携帯デバイスは、ユーザがいつデバイスを回転させ、それに応じてディスプレイ上のビューを変化させるかを検出する。この検出は慣性または重力測定にもとづくため、ディスプレイのポジションの変化の検出は多くの状況で失敗する。たとえば、携帯デバイスのプレイヤが仰向けになっていたり、携帯デバイスをテーブルに置いている場合、慣性測定は、ディスプレイにおけるビューに対する最良の向きを決定するために適切な情報を提供しない。本発明の実施の形態はこのようなコンテキストで考えられた。本発明の実施の形態は、携帯デバイスのディスプレイに表示されるビューの向きを設定するための方法、システムおよびコンピュータプログラムを提供する。携帯デバイスは、ディスプレイとユーザの方を向くカメラを含み、ユーザに関するデバイスの向きは、リアルタイムで取得されるユーザの顔のビデオ画像から決定することができる。カメラからのビデオ画像は、顔認識アルゴリズムを用いて解析され、デバイスにおけるビューの向きは、両目間の線、目から鼻への線、目から口への線、鼻から口への線などのプレイヤの特徴にもとづいて決定される。当然のことであるが、本発明は、プロセス、装置、システム、デバイス、コンピュータ読み取り可能なメディア上の方法など多数の方法で実装することができる。本発明の独創性のあるいくつかの実施の形態を以下に述べる。ある実施の形態において、方法は、前記ディスプレイの正面のエリアの画像を取得するオペレーションを含む。さらに、前記ディスプレイの正面のエリアに人が位置するとき、人の顔の特徴の位置を特定する。この方法は、前記特徴の位置にもとづいて前記顔の軸を決定する別のオペレーションを含む。前記顔の軸に実質的に対応するように、前記携帯デバイスの前記ディスプレイ上に表示されるビューの向きを設定する。別の実施の形態において、携帯デバイスは、ディスプレイとカメラとプレイヤ位置決定モジュールとを含む。カメラは、前記ディスプレイの正面のエリアの画像を取得する。プレイヤ位置決定モジュールは、前記ディスプレイの正面のエリアに位置する人の顔の特徴の位置を特定する。さらに、プレイヤ位置決定モジュールは、前記特徴の位置にもとづいて前記顔の軸を決定する。前記ディスプレイに表示されたビューの向きは、前記顔の軸に実質的に対応するように選択される。さらに別の実施の形態では、コンピュータ読み取り可能な記録媒体に格納されたコンピュータプログラムは、1以上のプロセッサによって実行されるとき、携帯デバイスのディスプレイに表示されるビューの向きを設定する。このコンピュータプログラムは、前記ディスプレイの正面のエリアの画像を取得するためのプログラムインストラクションを含む。さらに、前記ディスプレイの正面のエリアに人が位置するとき、人の顔の特徴の位置を特定する。コンピュータプログラムはまた、前記特徴の位置にもとづいて前記顔の軸を決定するためのプログラムインストラクションと、前記顔の軸に実質的に対応するように、前記携帯デバイスの前記ディスプレイ上に表示されるビューの向きを設定するためのプログラムインストラクションとを含む。本発明の他の態様は、これから述べる詳細な説明から明確になる。添付の図面と関連づけて、本発明の原則を例によって説明する。以下の実施の形態は、携帯デバイスのディスプレイに表示されるビューの向きを設定するための方法と装置を記述する。本発明の実施の形態は、携帯デバイスのユーザの方を向いている携帯デバイスのカメラで撮られたビデオ画像を解析する。顔、頭、または頭の周りの領域の1以上の特徴を検出し、プレイヤまたはプレイヤの顔の位置と、プレイヤまたはプレイヤの顔の位置に最もよく合う携帯デバイスの画面におけるビューの向きとを決定する。さらに、プロセスは、携帯デバイスに統合されたハードウェアとして、携帯デバイスのプロセッサで実行されるコンピュータ実装された方法として、あるいは特別にプログラムされたハードウェアにおいて提供されるものとして、具体的に実現することができる。たとえば、オペレーションは、アプリケーションに特化したチップ上にコードされたロジックとして定義することができる。あるいは、あるオペレーションはチップ上で処理し、他のオペレーションは携帯デバイスの一般的なプロセッサ上で処理することができる。もっとも、当該技術分野の当業者にとって、これらの具体的な詳細事項の一部またはすべてがなくても本発明を実施できることは明らかである。他の例では、本発明を必要以上に不明瞭にしないように、周知のプロセスオペレーションは詳細には記載していない。図1は、ある実施の形態にしたがって、横になって携帯デバイス104を使用しているプレイヤ102を示す。携帯デバイス104は縦長または横長モードでコンテンツを表示することができる。携帯デバイス104はアルゴリズムを用いて、ユーザにとってコンテンツを表示するための最良または最適な方法は何か決定する。携帯デバイス104が慣性または重力測定にアルゴリズムの基礎を置くなら、そのアルゴリズムはいくつかのシナリオのもとでは失敗するであろう。典型的には、そのアルゴリズムは、ユーザが立っているか、座りながらデバイスを持っていることを仮定している。もしユーザが立っていてユーザの手に横向きに携帯デバイスを持っているなら、デバイスは、横長フォーマットでコンテンツを表示すべきであると正しく決定する。しかし、ユーザが図1に示すように横になっており、デバイスを同じように持っているなら、デバイスは誤ってコンテンツを縦長フォーマットで表示するかもしれない。デバイスがモーションセンサを用いてデバイスに関して重力の方向を決定するとき、この問題が発生する。これらのデバイスは、重力に関してコンテンツの向きを調整するが、ユーザに関しては調整しない。また、これらのデバイスは逆の影響も受ける。デバイスが重力に関して正しく傾けられていないなら、デバイスは縦長モードに切り替わらないことがある。本発明の実施の形態は、ユーザの目または顔の位置を検出し、情報を表示するための最適な方法を決定する。本発明の実施の形態は、携帯ゲームデバイスなど、ある携帯デバイスに対して記載されるが、本発明の原則は、ゲームコントローラ、携帯ゲームデバイス、携帯電話、カメラ、タブレット、ラップトップ、携帯情報端末PDA、携帯音楽プレイヤ、携帯ビデオプレイヤ、リモコン、デジタルフォトフレーム、ビデオカメラ、携帯テレビ、GPSglobalpositioningsystemデバイスなど、任意のタイプのデバイスで用いることができることに留意すべきである。図2は、ある実施の形態にしたがって、テーブルの上に置いてある携帯デバイス204と相互作用するプレイヤ202を示す。携帯デバイス204が重力に対する関係を調べるなら、テーブル上でデバイスをどのように向けても、重力に関しては同じ関係が測定されるであろう。デバイスをテーブル上で回転させても、重力に対する関係は変化しないから、デバイスはビューの向きを変えることはなく、デバイスはディスプレイにおけるビューの向きを切り替えることができない。説明上の目的のために、携帯デバイスは、4つの異なるモードでディスプレイ上でビューを提示する機能をもつと仮定する。ディスプレイの任意の辺を北側に割り当て、他の3つの辺を東、南、西に割り当てるなら、携帯デバイスはビューの上辺をディスプレイにおける北、南、東、または西側のいずれかに対応づけてディスプレイ上にビューを提示することができる。このことは、2つのモードは縦長モードであり、一方は他方を180度回転したものであり、残りの2つのモードは横長モードであることを意味する。あるデバイスは縦長と横長の2つのモードだけをもつ。あるいは3つのモードだけをもち、一つの辺はビューの上辺として用いることができない。さらに、他のデバイスは、たとえば、ビューが90度ではなく45度で分けられており、8つの異なるモードをもつなど、より多くの表示モードをもってもよい。さらに、あるデバイスは、ディスプレイの位置に無関係に任意の向きにシーンを表示し、プレイヤの姿勢だけをもとにその向きを決めてもよい。特に注意しない限り、本発明の原則は、以下ではビューの向きの選択に対して4つの可能性をもつデバイスを参照して説明されるが、本発明の原則は、ありうる任意の数の表示の向きをもつデバイスに適用することができる。図3Aは、ある実施の形態にしたがって、携帯デバイスの背面を床にほぼ平行にして携帯デバイスをもっているユーザを説明する。図3Aおよび図3Bは、ユーザが携帯デバイス302を床にほぼ平行にして持っている、すなわち、ディスプレイ304の表面が床にほぼ平行であるとき、ビューの向きを正しく設定することの問題を説明する。図3Bでは、ディスプレイ304は横長モードでチャートを表示している。図3Bは、ある実施の形態にしたがって、デバイスが床にほぼ平行であるとき、デバイスの向きを変えることによる影響を説明する。図3Bでは、ユーザは、ビューが縦長モードに切り替わることを期待して、デバイス302を90度回転させた。しかしながら、携帯デバイスは床にほぼ平行であるため、デバイスは重力に関して向きをほとんど変えないから、携帯デバイス302の重力センサは向きの変化を検出することがない。その結果、ディスプレイ304は、横長モードではなく依然として縦長モードにある。ユーザがデバイスの振る舞いに慣れてくるにつれて、ユーザは、向きの変化を引き起こすために携帯デバイスを垂直ポジションに傾けることを学ぶ。ときには、ユーザはデバイスを垂直ポジションに傾け、その後、素早く水平ポジションに戻すので、携帯デバイスはビューの向きを依然として変えない。この傾けたり戻したりすることは、ユーザにとって面倒なことであり、気まぐれな携帯デバイスをもつことに対するユーザの経験は不満足なものになってしまう。さらに、携帯電話のような携帯デバイス用の多くのゲームは、コマンドを入力するために、傾ける操作を用いる。たとえば、デバイスをある辺に関して上または下に傾けることによって車を運転してもよい。中立位置は決め打ちされているため、これらのデバイスは、プレイヤが真っ直ぐに座っていることを要求する。本発明の実施の形態によれば、デバイスは、プレイヤの顔の特徴を検出することによって中立位置を任意の場所に設定することができる。ゲームは、プレイヤの顔に対する相対的な位置にもとづいてディスプレイにおけるビューの向きを設定することができる。重力はファクタではないため、これらのゲームを宇宙空間でプレイすることも可能になる。図4は、ある実施の形態にしたがって、プレイヤの姿勢にもとづいてビューの向きを選択する方法を説明する。携帯デバイス406は、ディスプレイ414と、ユーザの方を向いたビデオ撮影できるカメラ408とを含む。カメラ408からのビデオ画像上の顔認識ソフトウェアは、顔の向きを決定するために使うことのできる顔の1以上の特徴を検出することができる。一般に、顔認識システムは、デジタル画像またはビデオソースからのビデオフレームから人の頭の位置を自動的に特定または検証するためのコンピュータアプリケーション、ハードウェア、あるいはハードウェアおよびソフトウェアの組み合わせで定めることができる。ある実施の形態は、画像から選択された顔の特徴を顔データベースと比較する。データベースは、特徴の期待された配置にバリエーションを許容しつつ、特定の顔の特徴の識別を可能にするロジックと連結することができる。たとえば、ある人々は両目の間隔が広かったり、狭かったりする。ユーザの年齢もデータベースと相互作用するときの許容範囲に影響を与えることがある。別の実施の形態では、顔認識アルゴリズムは、対象者の顔の画像から目印や特徴を抽出することにより顔を特定する。たとえば、あるアルゴリズムは、目、鼻、頬骨、あごなどの相対的な位置、大きさ、あるいは形を解析する。そして、これらの特徴を用いて、特徴と合致する他の画像を探したり、特定の人間の特徴が存在する可能性を計算した後、それらの位置を計算する。さらに別の実施の形態では、あるアルゴリズムを用いて、顔の画像の集まりを正規化し、顔のデータを圧縮することで、顔検出のために有益な画像のデータだけを取っておく。これにより、すばやくインデックスしてサーチすることのできる顔メタデータが提供される。プローブ画像を顔データと比較することもできる。ある実施の形態では、顔認識に加えて、ユーザの頭の上または回りにあるオブジェクトを用いて向きを検出してもよい。例として、これに限定しないが、眼鏡、帽子、イヤホン、ヘッドホン、シャツの襟、ネックレス、ヘアピンなどがある。これらの特徴だけ、あるいは顔の特徴と組み合わせて用いて、携帯デバイスの画面に対する相対的な向きおよび/または姿勢を検出することもできる。ここで使われる顔認識とは、目、鼻、口などのプレイヤの顔の特徴を検出することを指すことに留意すべきである。さらに別の実施の形態では、ビューの向きを設定するために特定のユーザを現実に認識することは必要ではない。しかしながら、他の実施の形態は、各ユーザが携帯デバイスの使用のためのプレファレンスや他の制御を定義することを可能にするためにユーザ認識を提供することもある。したがって提示される実施の形態は、排他的または限定的に解釈すべきではなく、むしろ例示または実例と解釈すべきである。検出された特徴には、1以上の目、鼻、口、耳、顔の輪郭、眼鏡などが含まれる。顔の向きは、これらの特徴のいくつかを結ぶ線、たとえば、左右の目を結ぶ線、目と鼻を結ぶ線、鼻と口を結ぶ線、目と口を結ぶ線、左右の耳を結ぶ線などにもとづいて決定することができる。線404は、ユーザ402の両目を結ぶ。ビデオカメラ408はプレイヤ402の画像を取得する。プレイヤの画像はディスプレイ414に表示される。プレイヤ402は自分の手にデバイス406をもっていることに留意する。ここでは説明の目的のためだけに、プレイヤ402の絵をデバイス406の隣に示している。さらに、プレイヤ412の取得された画像がディスプレイ414に表示されるが、本発明の他の実施の形態は、プレイヤをディスプレイに表示しないでバックグラウンドで顔認識解析を実行し、他のアプリケーションがディスプレイ414に何を表示するかを決める。デバイス406はプレイヤの両目を検出し、プレイヤの両目をつなぐ線410を生成する。線410は、プレイヤの両目を結ぶ現実の線に平行か、平行に近い。携帯デバイスは、線410がディスプレイ上の仮想的な水平線と平行であり、したがって、ビューの向きは横長モードで正しいと決定する。説明の目的のため、ディスプレイに示されたビューの水平線は、ビューがユーザの姿勢に関してプログラムが意図するように表示されているとき、ここではディスプレイの上側の線と下側の線に平行な線とする。ディスプレイの上辺は水平線よりも上にあり、ディスプレイの下辺は水平線よりも下にある。多くの場合、ビューの水平線は、ディスプレイに表示されたものの水平線に対応する。たとえば、ユーザが自然のシーンを見ており、そのシーンを撮ったカメラが床に平行に設置されていた場合、ビューにおける水平線はシーンにおける水平線に対応する。しかし、カメラが45度の角度で自然のシーンを撮っていたなら、ビューの実際の水平線はシーンの水平線に対応しない。説明上の目的のために、ビューの水平線はディスプレイ上の向きを定めるとする。水平線は、水平線の上にあるものと水平線の下にあるものに関する情報を伝達するものでもあることに留意すべきである。このようにして、ビューの向きは正しい水平線をもつが上下逆さまであり、ビューの向きはディスプレイにおける表示に対しては正しくないということがある。顔認識は異なる周波数で実行される。たとえば、顔認識をビデオフレーム毎、10フレーム毎、毎秒、その他で実行することができる。顔認識解析の周波数は、要求される処理量とデバイスの応答性に依存する。解析をより頻繁にすればするほど、要求されるコンピューティングリソースの量が多くなり、デバイスが位置を変えるときにビューの向きの要求される変化を検出するためにデバイスがより高速になる。ある実施の形態では、ビューの向きにおける変化の要求が数フレームにわたって検出されるまではビューの向きを変えない。これにより、ユーザがゲームをプレイしており、以前の姿勢に戻る前にデバイスを急に動かすこれは、プレイヤがデバイスの向きを変えることを意図していなかったことを意味するとき、ビューを切り替えてしまう問題を避けることができる。別の実施の形態では、デバイスが向きの変化が必要であることを検出したときは、顔認識周波数を増加させる。これにより、誤検出を避けることができる。図5A~5Bは、ある実施の形態にしたがって、ユーザがデバイスのポジションを変えるときにビューの向きを調整する様子を説明する。図5Aでは、カメラ506はカメラの正面のエリアのビデオ画像を取得する。この画像にはプレイヤの顔が含まれる。デバイス502は縦向きのポジションにある。デバイス502の顔認識アルゴリズムはカメラ506からのビデオ画像を解析し、プレイヤの両目の位置を検出する。その結果、デバイス502はビュー504を縦長モードで表示する。プレイヤがデバイスを90度回転させると、画像解析は、デバイスに関して両目の位置が変化したことを検出し、ビューは、デバイスの回転に応答して90度回転する。たとえデバイス504が床にほとんど平行に保たれていても、ビュー504は図5Bでは横長モードで表示される。これは、アルゴリズムが重力測定に依存していないからである。プレイヤが別の人にデバイスを向けた場合もビューの向きが調整されることがあることに留意すべきである。たとえば、ユーザが写真を見ていて、別の人に写真を見せたい場合、プレイヤは他の人にディスプレイを向けることができる。顔検出アルゴリズムは他人の顔を検出し、画像をそれに合わせて表示する。図6は、ある実施の形態にしたがって、プレイヤの顔の特徴にもとづいたビューの向きの選択を説明する。ユーザに関するデバイス604の角度は大まかに、顔の特徴線の一つとビデオ画像の軸を進む仮想的な線とがなす角度として計算することができる。デバイス上のコンテンツの向きは、この計算された角度に最も近い右方向の角度を見つけることで選択することができる。また、ビューの水平線に最も近い角度を選択することにより、この向きを検出することができる。この後者のアプローチを以下に述べるが、本発明の原則は、ビューの垂直軸に適用したり、ユーザの顔の別の軸に適用することもできる。プレイヤ612の画像を解析した後、携帯デバイスは、プレイヤの目と口を検出しており、それは目と口を×印で示した肖像シンボル620で表現されている。線616は、両目を結ぶことで形成される。線616は画像平面を二つの半平面に分ける。口の位置を用いて、いずれの半平面が両目よりも上の頭の部分を含むものであり、いずれの半平面が口を含むものであるかを決定する。線616の正の方向は、ここでは、プレイヤの右目画像では左に現れるからプレイヤの左目画像では右に現れるに進む方向とする。別の実施の形態では、口は検出されず、重力を用いて、プレイヤが立っていると仮定して、どちらの方向が上か下かを決定する。この方法は、線616とディスプレイの軸に平行な線との間の角度を計算し、顔とディスプレイの相対的な位置を決定し、ディスプレイ604におけるビュー606に対して最適な向きを選択する。ディスプレイ604は軸608および610をもち、これらはそれぞれ線618および614と平行である。ディスプレイ604におけるビューに対して4つの向きがありうるため、4つの角度が計算される。ここで、各角度は、両目を結ぶ線が考えうるビュー水平線からどれくらい離れているかを示す。このようにして、線616の正の部分から線618および614の正および負の方向に向けて角α1~α4が計算される。図6の例では、α4はα1~α4の中で最も小さい。その結果、線614がビュー606に対する水平線として選ばれる。ここで、線614の正の方向はα4に関連づけられた方向に対応するから、ビューの向きを右方向に設定することができ、上下逆さまになることはない。軸610は線614に平行であり、軸610がビューの向きに対する水平線として選択される。この処理をリアルタイムで実行することにより、携帯デバイスは、いつでもユーザに表示されるコンテンツの正しい向きを維持することができる。画像認識にもとづいたビューの方向付けにより、モーションセンサジャイロスコープ、加速時計を用いる既存システムと比較して、よりロバストなシステムを提供できる。ある実施の形態では、補間を用いて、顔の特徴をより良く決定する。数枚の画像からの画像データを用いて顔認識を改良するために、数枚の画像からの情報を相互に関連付ける。これにより、特に微光または逆光の環境のような難しい状況において、顔認識が改良される。図7は、ある実施の形態にしたがって、第2の姿勢にもとづいたビューの向きの選択を説明する。角度α4がすべての角度α1~α4の中で最も小さいから、プレイヤの目を結ぶ線616は線618に最も近い。したがって線618に平行であるディスプレイの短辺方向の軸608がビューの水平線になるように、ビュー606に対する向きを設定する。ここで、水平線より上の半平面は、プレイヤの額が位置する半平面に対応する。言い換えれば、水平線の正の方向は、左から右に向かう方向として定義され、線616の正の方向について最小の角度αを形成する。図6および図7で説明した実施の形態は、プレイヤの顔の特定の特徴とディスプレイの位置にもとづいたビューの向きの計算例である。他の実施の形態は異なる特徴を用いるかもしれないし、異なる角度を計算するかもしれないが、依然として何らかの計算を実行する。たとえば、顔の特徴は、両目をつなぐ線、鼻と口をつなぐ線、目から口への線などによって定められてもよい。ディスプレイの位置は長辺方向の軸、短辺方向の軸、ディスプレイの左上の隅からディスプレイの右下の隅への対角線、ディスプレイの辺のいずれか、デバイスの辺のいずれかなどに関して比較される。ある場合、最も近い角度は、上述のように、ある参照線に関して調べられるが、他の場合は、異なる角度が用いられ、垂直軸と比較するときは90度、目から口への線を用いるときは30度のようなより好ましい角度が用いられる。したがって、図6および図7で説明した実施の形態は、排他的または限定的に解釈すべきではなく、むしろ例示または実例と解釈すべきである。図8は、ある実施の形態にしたがって、別の顔の特徴の検出を説明する。図8において、携帯デバイスはユーザの目と口を検出する。ビューの向きを決定するために、両眼を結ぶ線と、左右それぞれの目と口を結ぶ線とが生成される。携帯デバイスにおけるプレイヤ位置決めモジュールがこれらの線を用いて、プレイヤの姿勢を決定し、図6および図7を参照して前述したように、ディスプレイに対する最も適切な向きを選択する。図6および図7では、プレイヤの両眼に関してただ一つの計算を実行した。ある実施の形態では、方向を選択するため2以上の計算を実行する。たとえば、一つの計算が右目と口を結ぶ線に関して実行され、別の計算が左目と口を結ぶ線に関して実行される。そして、両方の計算の結果を評価して結果を平均するなど最適な向きを選択する。別の実施の形態では、目と鼻が検出される。両眼を結ぶ第1の線を計算し、次に第1の線と直交し、鼻を通る第2の線を計算する。図6および図7を参照して述べたアルゴリズムに似たアルゴリズムを用いてビューの向きを計算する。図9は、ある実施の形態にしたがって、プレイヤの顔の輪郭を検出するための実施の形態を説明する。顔認識アルゴリズムは、プレイヤの顔の位置を決定するために画像を解析する。顔の輪郭を決定した後、顔の位置を近似する幾何学的な図形を定める。ある実施の形態では、顔の輪郭には、輪郭によく合う卵形を割り当てられる。そして、卵形の対称軸である長軸および短軸を用いて向きを選択する。たとえば、短軸は両眼を結ぶ線に平行であるはずで、図6を参照して説明したのと同じ方法を用いる。卵形の長軸の対称軸を代わりに用いることができ、同様に幾何学的方法を用いて向きを決めることができる。別の実施の形態では、顔の輪郭を近似するために楕円を使う。顔の輪郭の代わりに、頭の輪郭を用いることもできる。短い髪のユーザの場合、顔の輪郭と頭の輪郭は似ているが、図9の人物のように、長い髪のユーザの場合、顔の輪郭は全く異なる。さらに別の実施の形態では、正確さを向上させるために、顔の輪郭は、目、鼻、口などの顔の他の特徴についての他の情報と併用されるか、頭の輪郭と併用される。また、向き決定アルゴリズムは照明条件にもとづいて変わる。たとえば、プレイヤの背後からの逆光がある状況では、顔の輪郭または他の顔の特徴よりも頭の輪郭を検出することが容易である。この場合、少なくとも照明条件が改善するまで、顔の輪郭を用いて方向を選択することができる。図10は、ある実施の形態にしたがって、赤外光とプレイヤの目を検出するための赤外線センサを用いる処理を説明する。携帯デバイスは、赤外光放射器と両眼からの反射1002を検出する赤外線センサとを含む。これらの二つのドットを用いて、前述の方法と似た方法で向きを計算する。目の光沢のある表面のおかげで赤外光の反射をセンサが検出しやすくなる。同様に、ユーザの眼鏡は赤外光の反射を検出しやすくするが、光は、左右のそれぞれの目に対して単なるドットとして反射するのではなく、円またはそれに近い幾何学的な図形として反射する。別の実施の形態では、赤外光の代わりに、他のタイプの光を用いることができる。たとえば、携帯デバイス上のLEDからの光や、ディスプレイが放射する光、フラッシュ光などである。顔の認識がディスプレイからの反射にもとづいているとき、ディスプレイ上の光景が暗く、そのため目またはユーザの眼鏡から反射しうる光が欠如している場合は、向き決定アルゴリズムは一時的に中断してもよい。図11は、ある実施の形態にしたがって、プレイヤの眼鏡の検出を説明する。ユーザが眼鏡152をかけているとき、目を検出するのは難しいか、眼鏡に色がついていると不可能ですらある。この場合、携帯デバイスは眼鏡の幾何学形状を検出し、その幾何学形状を用いてユーザの顔の向きを計算する。多くの場合、眼鏡のガラス表面を検出することができ、計算上の目的のために眼鏡の各ガラス面に起因する長方形の形状が検出される。眼鏡はプレイヤの顔に真っ直ぐに置かれていると仮定すると、二つの長方形の中央を結ぶ線が両眼をつなぐ線と実質的に平行であるだろうから、前述したのと同じ手続きにしたがって、その線を、ビューの向きを決定するために使うことができる。他の実施の形態では、ガラス面を近似するために、円、卵形、楕円、正方形など他の幾何学的な図形を用いることができる。髪の毛が眼鏡の一部を覆っていることがあることに留意すべきである。この場合、アルゴリズムは、見えているガラス面にもとづいてガラス面の位置を近似する。たとえば、右のガラス面が完全に見えており、左のガラス面が髪の毛で覆われている場合、アルゴリズムは右のガラス面の形状を検出し、それからその形状を用いて、一部が見えない左のガラス面がどこにあるかを決定する。一般に、各ガラス面の下側の部分は覆われていないだろうから、アルゴリズムは、検出された表面の下側の境界線にもとづいてガラス面の位置を設定する。図12は、ある実施の形態にしたがって、プレイヤが着けているヘッドセットの検出を説明する。ある実施の形態では、画像解析によってヘッドセット164の検出が可能である。耳を覆うヘッドセットの左サイド164と右サイド166を結ぶ線が形成される。その後、この線を用いてプレイヤの頭の位置を見積もる。ある実施の形態では、ヘッドセットの位置は、ユーザの位置の検出可能性を改善するために他の顔の特徴と結合されている。別の実施の形態では、ヘッドセットはイヤーカバー上に赤外光をもち、系デバイスの赤外線センサまたはカメラを用いてヘッドセットの赤外光の位置を検出する。別の実施の形態では、ヘッドセットの動きを追跡するために加速時計がヘッドセットに組み込まれる。この情報は、ヘッドセットの動きの追跡を統合し、それにしたがってディスプレイの向きを設定するために携帯デバイスと共有される。追跡情報は、ミニジャック通信との帯域共用によって通信される。もっとも無線通信や赤外線通信など他の任意の通信メカニズムを用いることもできる。図13は、ある実施の形態にしたがって、プレイヤがうつぶせになっているときのビュー選択を説明する。この実施の形態では、携帯デバイスはプレイヤの顔の特徴を追跡している。携帯デバイスは重力測定に頼っていないため、携帯デバイスはプレイヤの姿勢に対してディスプレイの最適な向きを選択することができる。ある実施の形態では、携帯デバイスは、顔を用いてなされたアクションを追跡することもできる。たとえば、目の長いまばたきは、ウインドウを閉じたり、次のスライドを表示するなどのコマンドを実行するために検出される。携帯デバイスが顔の位置と顔の位置の変化を検出することができる限り、他のアクションを入力として用いることもできる。たとえば、頭を左に回すことにより、ビューを横方向にスクロールすることができる。うなづくことにより、ビューを下にスクロールすることができる。頭の動きなしで目だけを用いて行うアクションでさえ、入力として用いることができる。左を見ることでゲームのシーンを左にスクロールしたり、見上げることでメニューを開いたり、目を長く閉じることでゲームを中断するなどである。携帯デバイスが携帯デバイスの異なる側面に二つのディスプレイと二つのカメラをもち、対応するディスプレイの正面のエリアを各カメラが撮影するならば、ユーザがどちらのディスプレイを見ているかを検出することができる。この場合、携帯デバイスはこの情報を用いて、見ていない方のディスプレイをオフにするか、薄暗くしてもよい。携帯デバイスが後でユーザがディスプレイを変えたことを検出するならば、オフにされたディスプレイをオンにし、オンであったディスプレイはオフにするか、薄暗くする。ある実施の形態では、携帯デバイスがデバイスの各側面に一人のユーザを検出するなら、両方のディスプレイを同時にオンにすることができる。たとえば、カメラをもつユーザが別の人の写真を撮っているとき、二人とも写真がどう撮れるかを見ることができる。これを一般化して、たとえば、映画を見たり、写真アルバムを閲覧するなど、二人の異なるユーザが異なるディスプレイにおいて同じコンテンツにアクセスすることができるようにしてもよい。個々の顔認識プロセスが各側面に対して実行されるため、各ディスプレイにおけるビューの向きは互いに独立であることに留意すべきである。図14A~14Bは、ある実施の形態にしたがって、ディスプレイと顔の方を向いたカメラとをもったフリースタンドのデバイスにおけるビュー選択を説明する。タブレット、ブックリーダ、ノートブックのような大きなデバイスでは、ディスプレイの向きを設定するために顔の特徴を追跡することが行われる。図14Aでは、タブレットデバイス172はスタンドをもっており、タブレットデバイスを縦長モードまたは横長モードでスタンドに設置することができる。このタブレットはユーザの方を向いたカメラをもっており、ユーザの目の位置にもとづいてディスプレイの向きを選択する。同様に、図14Bでは、ブックリーダデバイス174は、縦長のポジションでスタンドに設置される。ブックリーダデバイス174はユーザが椅子に座っていることを検出するため、ブックリーダデバイス174は、読者におけるディスプレイのポジションに合った縦長モードにビューの向きを設定する。もしユーザがブックリーダデバイス174を横長ポジションに変えるなら、ブックリーダデバイス174は、読者の目に関する相対的な変化を検出した後、それに応じてディスプレイの向きを回転させる。ある実施の形態では、ビューの向きは、ディスプレイに表示されたコンテンツまたはプレイヤの位置、あるいはその両方に基づく。たとえば、映画を表示するアプリケーションは、ビューの向きを横長だけに制限してもよい。顔認識を用いて、プレイヤが位置する場所を検出し、ビューの水平線をプレイヤの姿勢に合わせて調整する。別の実施の形態では、ユーザは、ビューの向きが顔の位置に合わせて設定されるか、固定された位置に設定されるかを選択する。たとえば、ユーザは、ソファに横になって映画を見ることに決めたとする。ユーザは、プレイヤの姿勢に合わせた縦長で映画が表示されるよりは、標準的な横長ポジションで画像が表示されることを望むかもしれない。テレビや大きなディスプレイをもったコンピュータのようなより大きなデバイスでは、数人の視聴者がいて、それぞれ異なる位置にいるかもしれない。デバイスはビューの向きを設定するために異なるヒューリスティクスから選択する。たとえば、ただ一人の視聴者がいて、その後、別の視聴者が加わった場合、ビューの向きは最初の視聴者に対するポジションに固定されるか、デバイスが視聴者らの姿勢の検出を試み、視聴者らの大多数に合った向きを選択するか、ビューの向きは重力だけにもとづき、視聴者らには無関係であるなどである。図15A~15Bは、ある実施の形態にしたがって、携帯デバイスをもつドライバにとってのビュー選択を説明する。図15Aおよび15Bは、携帯電話1502または専用GPSデバイスのようなGPS機能付きデバイスを用いているドライバを示す。ドライバは携帯電話1502上で地図と方向情報を観察している。図15Aでは、ドライバは携帯電話1502を直接見ており、携帯電話1502はドライバの目を検出し、両眼を結ぶ線1504を生成する。その後、ビューの向きは、前述のように線1504を参照して設定される。図15Bでは、ドライバは前方の道路を見ている。携帯電話1502はドライバの両眼を結ぶ線1506を検出する。線1506の方向は、図15Aの線1504を参照すると変化しているけれども、携帯電話1502は依然として正確な向きで情報を表示している。なぜなら携帯電話1502は、図6を参照して説明したように、線1506にもっとも近い角度を探すからである。最も近い角度は依然として、地図の縦長表示すなわち運転方向に対応する。運転中にハンズフリーデバイスなしで携帯電話上でテキストを打ったり、話をすることはある州では違法になった。ある実施の形態では、携帯電話が動いていることとプレイヤの顔に対する関係が変化していないことを携帯電話が検出する。携帯電話は、慣性センサまたはGPSモジュールからの情報を用いることにより、自分が動いていることを検出することができる。ユーザが自動車の中にいることを携帯電話が検出すると、携帯電話は、ハンズフリーデバイスなしでテキストを打ったり、話をするといった機能を無効にする一方、緊急通話や携帯電話上で地図を読むといった他の機能を有効にする。この機能にはペアレンタルコントロールがかけられてもよい。システムは親に違反行為を通知することができるか、正常に停止した後、自動車がスタートしないようにすることができる。その後、親は、ドライバ等から保証を受け取った後、リモートに車をアクティブにすることができる。無効にする機構があるおかげで、車の中にいる人が、その人が乗客であってドライバではないならこれらの機能を使うことができるようになる。図16A~16Bは、ある実施の形態にしたがって、ビューがプレイヤの顔に関してしっかりと固定される携帯デバイスを示す。携帯デバイスで実行される多くのゲームは、ゲームを制御するための入力として傾きを用いる。たとえば、運転ゲームでは、デバイスを右に傾けるあるいは回転させると、車のハンドルを右に切ることになり、左に傾けると、車のハンドルを左に切ることになる。図16Aおよび16Bは、ユーザがコマンドを入力するためにデバイスを傾けるときでも、ディスプレイ上のビューを安定に保つための方法を説明する。言い換えれば、ディスプレイにおけるビューが自然なビュー水平線をもつと仮定して、デバイスがわずかに左または右に傾いたとき、ビュー水平線が観察者に関して変化しないということである。図16Aは、デバイス1610上のレースゲームを示す。ゲームのビューは、木1604、掲示板1602、および車1606を含む。図16Bは、プレイヤがデバイスを約30度回転させた後の同じゲームを示している。一般的に、デバイスのポジションには関係しているがプレイヤのポジションには関係していないオブジェクトを除いて、ビューはプレイヤに関して変化していない。たとえば、プレイヤが車を運転しており、プレイヤがデバイスをハンドルとして使用しているから、車1606もまた30度回転する。デバイスが回転すると、ハンドルが回転し、車はデバイスとともに回転する。しかし、木1604や掲示板1602のような背景と関連づけられた他のオブジェクトは、プレイヤに関して回転していない。デバイスを回転させるというこの概念は、ビューがプレイヤに結びつけられているが、デバイスには結びつけられていないということを考えることで一般化することができる。プレイヤはデバイスを360度ゆっくり回転させることができるが、そのときビューはプレイヤに関して変化しない。もちろん、ビューの端はディスプレイの動きに合わせるために変化しなければならない。ゲームのような動的なコンテンツの場合、欠落部を埋めるために動的なコンテンツを追加することができる。写真のような静的なコンテンツの場合、写真によって補うことができない画面の部分は白い空間のような背景で埋めることになる。図17は、本発明のある実施の形態にしたがって携帯デバイスのディスプレイに表示されるビューの向きを設定するための処理フローを示す。オペレーション1702において、ディスプレイの正面にあるエリアの画像を取得する。ある実施の形態において、その画像は携帯デバイスのビデオカメラで取得される。別の実施の形態では、赤外線センサを用いてディスプレイの正面のエリアについての情報を取得する。さらに、この方法は、オペレーション1704において、人がディスプレイの正面のエリアに位置するとき、その人の顔の特徴の位置を特定する。オペレーション1704の後、この方法はオペレーション1706に進み、顔の特徴の位置にもとづいて顔の軸が決定される。決定される顔の特徴は、目、口、鼻、両眼を結ぶ線、目と鼻を結ぶ線、顔の形、プレイヤが付けている眼鏡、プレイヤの頭にあるヘッドセットなどである。オペレーション1706の後、この方法はオペレーション1708に進み、携帯デバイスのディスプレイに表示されたビューの向きが設定される。この向きは、ビューが顔の一つの軸に実質的に対応するように設定される。ある実施の形態では、この向きは、両眼を結ぶ線に平行である顔の軸が、ディスプレイのビューの水平軸に最も近くなるように設定される。別の実施の形態では、携帯デバイスがプレイヤに関して動いたときに、ディスプレイに表示された光景またはその光景の少なくとも一部が安定するように、ビューの水平軸は、プレイヤの両眼を結ぶ線に正確に平行に設定される。図18は、本発明の実施の形態を実装するために使用されるデバイスのアーキテクチャを説明する。携帯デバイスは、コンピューティングデバイスであり、プロセッサ、メモリRAM、ROMなど、バッテリ、他の電源、および永久記録装置ハードディスクなどのようなコンピューティングデバイスにおいて存在する典型的なモジュールを含む。通信モジュールにより、携帯デバイスは、他の携帯デバイス、他のコンピュータ、サーバなどと情報を交換することができる。通信モジュールは、USBUniversalSerialBusコネクタ、通信リンクイーサネット商標、超音波通信、ブルートゥース商標、およびWiFiを含む。入力モジュールは入力ボタン、センサ、マイクロホン、タッチスクリーン、カメラ正面、背面、深さカメラ、カードリーダを含む。キーボードやマウスのような他の入出力デバイスを、USBまたはブルートゥース商標のような通信リンクを介して携帯デバイスに接続することもできる。出力モジュールはディスプレイタッチスクリーン付き、LEDLightEmittingDiode、振動触覚フィードバック、およびスピーカを含む。他の出力デバイスを通信モジュールを介して携帯デバイスに接続することもできる。位置決めモジュールは異なるデバイスからの情報を用いて、携帯デバイスの向きと携帯デバイスをもっているユーザの姿勢とを計算する。これらのモジュールは、磁力計、加速度計、ジャイロスコープ、GPS、コンパス、および任意のカメラによって取得された画像情報を含む。さらに、位置決めモジュールは、カメラとマイクロホンで取得された音または画像データを解析し、位置を計算する。ビュー生成器は、ビューを生成し、ディスプレイにおいてビューを表示するための正しい向きを選択する。当然のことながら、図18に図示した実施の形態は、携帯デバイスの例示的な実装である。他の実施の形態は、異なるモジュール、モジュールのサブセットを用いるか、異なるモジュールに関連するタスクを割り当てる。したがって、図18に説明された実施の形態は、排他的または限定的に解釈すべきではなく、むしろ例示または実例と解釈すべきである。本発明の実施の形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブルなコンシューマエレクトロニクス、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施することができる。本発明は、有線または無線ネットワークでリンクしたリモートプロセッシングデバイスによってタスクが実行される分散コンピューティング環境にて実施することもできる。上述の実施の形態を念頭において、本発明は、コンピュータシステムに格納されたデータに関わるコンピュータ実装された様々なオペレーションを用いることができることを理解すべきである。これらのオペレーションは、物理的な量の物理的な操作を要求するものである。本発明の部分を構成するここに記述されたオペレーションはいずれも有用なマシンオペレーションである。本発明はまた、これらのオペレーションを実行するためのデバイスまたは装置に関する。装置は特に要求された目的のために構成することができる。あるいは、装置は、コンピュータに格納されたコンピュータプログラムによって選択的にアクティブにされ、または構成される汎用コンピュータである。特に、様々な汎用マシンをここで教示した内容にしたがって書かれたコンピュータプログラムと併用することができる。あるいは、要求されたオペレーションを実行するためのより特化した装置を構成することがより好都合であることもある。本発明はコンピュータ読み取り可能な媒体上のコンピュータ読み取り可能なコードとして具体化することもできる。コンピュータ読み取り可能な媒体は、コンピュータシステムによって読み取ることのできるデータを格納することができる任意のデータストレージデバイスである。コンピュータ読み取り可能な媒体の例には、ハードドライブ、ネットワーク接続ストレージNAS、リードオンリメモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、および他の光および非光データストレージデバイスが含まれる。コンピュータ読み取り可能な媒体は、ネットワーク結合したコンピュータシステム上に分散された有形のコンピュータ読み取り可能媒体を含むこともでき、コンピュータ読み取り可能なコードは分散形式で格納され実行される。方法のオペレーションを特定の順序で記述したが、オペレーションとオペレーションの間に他のメンテナンスオペレーションを実行してもよく、オペレーションがわずかに異なる時間に起きるように調整してもよい。あるいは、オーバレイオペレーションの処理が望ましい方法で実行される限り、オペレーションをシステムに分散させ、プロセッシングと関連づけられた様々な間隔でプロセッシングオペレーションが起きるようにしてもよい。前述の本発明は、明確な理解を目的として、ある程度詳細に記載したが、添付の請求項の範囲で変更、修正をすることができることは明らかである。したがって、本実施の形態は、例示であり、限定的に考えるべきではない。本発明はここで述べた詳細に限定されるものではなく、添付の請求項の範囲と等価物の範囲内で変更することができる。