(57)【特許請求の範囲】
【請求項１】
ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行う情報処理装置であって、
前記ステレオカメラが左右の視点から撮影したステレオ画像から対応点を検出することにより、当該ステレオカメラのキャリブレーションを行うキャリブレーション部と、
キャリブレーションの結果に基づき、前記ステレオカメラが対象物を動画撮影して得られるステレオ画像を補正したうえ対応点を検出することにより視差を導出し、それに基づき対象物の位置情報を取得し出力する位置情報取得部と、
を備え、
前記キャリブレーション部は、キャリブレーションの不成功に応じて、ユーザの負担の少なさに基づき設定された順に、所定の情報を提示してキャリブレーションを再試行する段階的な処理を繰り替えし、キャリブレーションが成功した段階で動作を終了させることを特徴とする情報処理装置。
【請求項２】
キャリブレーション以外の初期処理を行う初期処理部をさらに備え、
前記キャリブレーション部は、前記初期処理部が初期処理のための情報を提示している間に、キャリブレーションに係る情報を提示せずに初回のキャリブレーションを試行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記キャリブレーション部は、いずれかの段階における前記所定の情報として、前記ステレオカメラが撮影したステレオ画像の少なくともどちらかを表示装置に即時表示させることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記キャリブレーション部は、初回のキャリブレーションに際して、キャリブレーション以外の手段で処理開始の是非を判定し、是と判定したときはキャリブレーションに係る情報を提示せずにキャリブレーションを試行し、非と判定したときは次の段階として設定された前記所定の情報を提示してキャリブレーションを試行することを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記キャリブレーション部は、前記ステレオカメラの内部に設けた加速度センサの計測値から当該ステレオカメラの姿勢を取得し、姿勢が所定範囲にある場合にキャリブレーションの処理開始を是と判定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記キャリブレーション部は、前記ステレオ画像に顔検出処理を施し、顔が検出された場合にキャリブレーションの処理開始を是と判定することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記キャリブレーション部は、前記ステレオ画像に顔認識処理を施し、登録済みの顔が検出されなかった場合にキャリブレーションの処理開始を非と判定することを特徴とする請求項４に記載の情報処理装置。
【請求項８】
前記キャリブレーション部は、以前に行われたキャリブレーションの結果に基づき前記位置情報取得部に位置情報を取得させ、正常な位置情報が得られなかった場合にキャリブレーションの処理開始を非と判定することを特徴とする請求項４に記載の情報処理装置。
【請求項９】
前記キャリブレーション部は、最終段階における前記所定の情報として、必要と想定される対策を講じさせるためのユーザへの指示を提示することを特徴とする請求項１から８のいずれかに記載の情報処理装置。
【請求項１０】
ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行う情報処理装置が行う位置情報取得方法であって、
前記ステレオカメラが左右の視点から撮影したステレオ画像から対応点を検出することにより、当該ステレオカメラのキャリブレーションを行うステップと、
キャリブレーションの結果に基づき、前記ステレオカメラが対象物を動画撮影して得られるステレオ画像を補正したうえ対応点を検出することにより視差を導出し、それに基づき対象物の位置情報を取得し出力するステップと、
を含み、
前記キャリブレーションを行うステップは、キャリブレーションの不成功に応じて、ユーザの負担の少なさに基づき設定された順に、所定の情報を提示してキャリブレーションを再試行する段階的な処理を繰り替えし、キャリブレーションが成功した段階で動作を終了させることを特徴とする位置情報取得方法。
【請求項１１】
ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行うコンピュータに、
前記ステレオカメラが左右の視点から撮影したステレオ画像から対応点を検出することにより、当該ステレオカメラのキャリブレーションを行う機能と、
キャリブレーションの結果に基づき、前記ステレオカメラが対象物を動画撮影して得られるステレオ画像を補正したうえ対応点を検出することにより視差を導出し、それに基づき対象物の位置情報を取得し出力する機能と、
を実現させ、
前記キャリブレーションを行う機能は、キャリブレーションの不成功に応じて、ユーザの負担の少なさに基づき設定された順に、所定の情報を提示してキャリブレーションを再試行する段階的な処理を繰り替えし、キャリブレーションが成功した段階で動作を終了させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像における対象物の検出を伴う情報処理技術に関する。
【背景技術】
【０００２】
ユーザの体やマーカーをカメラで撮影し、その像の領域を別の画像で置換してディスプレイに表示するゲームが知られている（例えば、特許文献１参照）。また、カメラで撮影された口や手の動きをアプリケーションの操作指示として受け取るユーザインタフェースシステムも知られている。このように、実世界を撮影しその動きに反応する仮想世界を表示させたり、何らかの情報処理を行ったりする技術は、携帯端末からレジャー施設まで、その規模によらず幅広い分野で利用されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】欧州特許出願公開第０９９９５１８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような技術において、撮影画像から実世界に係る情報をいかに正確かつ高速に取得するかは常に重要な課題である。そのためカメラの光軸ずれなど基本的な特性を事前に取得しておき、運用時にはそれを加味して画像解析を行うことが重要となる。しかしながら一般家庭において使用する場合は特に撮影環境が多様であり、特性取得の精度を追求するほど、その撮影環境を整えるためのユーザの負担が大きくなる。そのような事前の手続きを煩わしく感じるユーザが不十分な準備で装置の使用を開始した結果、装置が有する本来の性能を発揮できず劣化したユーザ体験となってしまうこともあり得る。
【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、撮影画像に基づき対象物の位置情報を取得する装置において、カメラの特性取得に係るユーザの負担を軽減させる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は情報処理装置に関する。この情報処理装置は、ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行う情報処理装置であって、ステレオカメラが左右の視点から撮影したステレオ画像から対応点を検出することにより、当該ステレオカメラのキャリブレーションを行うキャリブレーション部と、キャリブレーションの結果に基づき、ステレオカメラが対象物を動画撮影して得られるステレオ画像を補正したうえ対応点を検出することにより視差を導出し、それに基づき対象物の位置情報を取得し出力する位置情報取得部と、を備え、キャリブレーション部は、キャリブレーションの不成功に応じて、ユーザの負担の少なさに基づき設定された順に、所定の情報を提示してキャリブレーションを再試行する段階的な処理を繰り替えし、キャリブレーションが成功した段階で動作を終了させることを特徴とする。
【０００７】
本発明の別の態様は位置情報取得方法に関する。この位置情報取得方法は、ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行う情報処理装置が行う位置情報取得方法であって、ステレオカメラが左右の視点から撮影したステレオ画像から対応点を検出することにより、当該ステレオカメラのキャリブレーションを行うステップと、キャリブレーションの結果に基づき、ステレオカメラが対象物を動画撮影して得られるステレオ画像を補正したうえ対応点を検出することにより視差を導出し、それに基づき対象物の位置情報を取得し出力するステップと、を含み、キャリブレーションを行うステップは、キャリブレーションの不成功に応じて、ユーザの負担の少なさに基づき設定された順に、所定の情報を提示してキャリブレーションを再試行する段階的な処理を繰り替えし、キャリブレーションが成功した段階で動作を終了させることを特徴とする。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によると、撮影画像を用いた位置情報取得技術においてユーザの負担を軽減できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図２】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図３】本実施の形態において撮像装置が撮影した画像を用いて対象物の位置を取得する手法を説明するための図である。
【図４】左右のカメラの光軸または縦方向の位置がずれているときのステレオ画像を例示する図である。
【図５】本実施の形態における情報処理装置の機能ブロックの構成を示す図である。
【図６】本実施の形態における情報処理装置が必要な初期処理と共にキャリブレーションを行う処理手順を示すフローチャートである。
【図７】図６のＳ１２、Ｓ１４で表示される画面の例を示す図である。
【図８】本実施の形態における２段階目の処理として図６のＳ２２で表示される画面の例を示す図である。
【図９】本実施の形態における２段階目の処理として図６のＳ２２で表示される画面の別の例を示す図である。
【図１０】本実施の形態における３段階目の処理として図６のＳ２２で表示される画面の例を示す図である。
【発明を実施するための形態】
【００１１】
図１は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム８は、対象物を撮影する撮像装置１２、撮影した画像に基づき情報処理を行う情報処理装置１０、情報処理の結果として得られた画像を表示する平板型ディスプレイ１６ａおよびヘッドマウントディスプレイ（以下、「ＨＭＤ」と呼ぶ）１６ｂ、ユーザが操作する入力装置１４を含む。
【００１２】
情報処理装置１０と、撮像装置１２、入力装置１４、平板型ディスプレイ１６ａ、ＨＭＤ１６ｂとは、有線ケーブルで接続されても、Bluetooth（登録商標）など既知の無線通信技術により接続されてもよい。また情報処理装置１０が実施する情報処理によっては、入力装置１４、平板型ディスプレイ１６ａ、ＨＭＤ１６ｂは選択的に導入してもよい。またこれらの装置の外観形状は図示するものに限らない。さらにこれらのうち２つ以上の装置を一体的に備えた装置としてもよい。例えば情報処理装置１０、入力装置１４、平板型ディスプレイ１６ａを、それらを備えた携帯端末などで実現してもよい。
【００１３】
撮像装置１２は、ユーザなどの対象物を所定のフレームレートで撮影するカメラと、その出力信号にデモザイク処理など一般的な処理を施すことにより撮影画像の出力データを生成し、情報処理装置１０に送出する機構とを有する。カメラはＣＣＤ（Charge Coupled Device）センサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサなど、一般的な可視光センサを既知の間隔で左右に配置したステレオカメラである。
【００１４】
情報処理装置１０は、撮像装置１２から送信されたデータを用いて必要な情報処理を行い、画像や音声などの出力データを生成する。ここで情報処理装置１０が行う処理の内容は特に限定されず、ユーザが求める機能やアプリケーションの内容などによって適宜決定してよい。例えば、撮影画像に対し追跡処理を施すことにより、対象物であるユーザの動作を反映させたキャラクタが登場するゲームを進捗させたり、ユーザの動きをコマンド入力に変換して情報処理を行ったりする。
【００１５】
このとき入力装置１４に設けたマーカーを利用して入力装置１４の動きを取得してもよい。またＨＭＤ１６ｂの外面に設けた複数のマーカーを追跡することにより、ＨＭＤ１６ｂを装着したユーザの頭部の位置や姿勢を特定し、それに対応して動く視点から見た仮想世界をＨＭＤ１６ｂに表示させてもよい。情報処理装置１０が生成した出力データは、平板型ディスプレイ１６ａおよびＨＭＤ１６ｂの少なくとも一方に送信される。
【００１６】
平板型ディスプレイ１６ａは、２次元の画像を出力するディスプレイおよび音声を出力するスピーカーを有するテレビでよく、例えば液晶テレビ、有機ＥＬテレビ、プラズマテレビ、ＰＣディスプレイ等である。あるいはタブレット端末や携帯端末のディスプレイおよびスピーカーであってもよい。ＨＭＤ１６ｂは、ユーザが頭に装着することによりその眼前に位置する有機ＥＬパネルなどの表示パネルに画像を表示する表示装置である。例えば左右の視点から見た視差画像を生成し、表示画面を２分割してなる左右の領域にそれぞれ表示させることにより、画像を立体視させてもよい。
【００１７】
ただし本実施の形態をこれに限る主旨ではなく、表示画面全体に１つの画像を表示させてもよい。ＨＭＤ１６ｂはさらに、ユーザの耳に対応する位置に音声を出力するスピーカーやイヤホンを内蔵していてもよい。なお以後の説明では、平板型ディスプレイ１６ａおよびＨＭＤ１６ｂを表示装置１６と総称する場合がある。入力装置１４は、ユーザが操作することにより、処理の開始、終了、機能の選択、各種コマンド入力などの要求を受け付け、情報処理装置１０に電気信号として供給する。
【００１８】
入力装置１４は、ゲームコントローラ、キーボード、マウス、ジョイスティック、平板型ディスプレイ１６ａの表示画面上に設けたタッチパッドなど、一般的な入力装置のいずれか、またはそれらの組み合わせによって実現してよい。入力装置１４はさらに、所定の色で発光する素子またはその集合からなる発光マーカーを備えていてもよい。この場合、情報処理装置１０が撮影画像を用いてマーカーの動きを追跡することにより、入力装置１４自体の動きをユーザ操作とすることができる。なお入力装置１４を、発光マーカーとそれを把持する機構のみで構成してもよい。
【００１９】
図２は情報処理装置１０の内部回路構成を示している。情報処理装置１０は、ＣＰＵ（Central Processing Unit）２２、ＧＰＵ（Graphics Processing Unit)２４、メインメモリ２６を含む。これらの各部は、バス３０を介して相互に接続されている。バス３０にはさらに入出力インターフェース２８が接続されている。入出力インターフェース２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インターフェースや、有線又は無線ＬＡＮのネットワークインターフェースからなる通信部３２、ハードディスクドライブや不揮発性メモリなどの記憶部３４、表示装置１６へデータを出力する出力部３６、撮像装置１２や入力装置１４からデータを入力する入力部３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部４０が接続される。
【００２０】
ＣＰＵ２２は、記憶部３４に記憶されているオペレーティングシステムを実行することにより情報処理装置１０の全体を制御する。ＣＰＵ２２はまた、リムーバブル記録媒体から読み出されてメインメモリ２６にロードされた、あるいは通信部３２を介してダウンロードされた各種プログラムを実行する。ＧＰＵ２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部３６に出力する。メインメモリ２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。
【００２１】
図３は、撮像装置１２が撮影した画像を用いて、情報処理装置１０が対象物の位置を取得する手法を説明するための図である。上述の通り撮像装置１２は、２つのカメラを既知の間隔で左右に配置したステレオカメラで構成される。当該ステレオカメラで左右の視点から撮影した一対の画像（ステレオ画像）には、カメラの間隔と被写体のカメラからの距離に依存して、画像の横方向に視差が生じる。図示するステレオ画像１２０ａ、１２０ｂにはユーザの像が、左視点からの画像１２０ａにおいては右寄りに、右視点からの画像１２０ｂにおいては左よりに、それぞれ写っている。
【００２２】
このような対象物の像を特徴点などに基づき検出し、両画像における横方向の位置座標の差分（例えばｘ＿ｌ−ｘ＿ｒ）を求めれば、それに基づき撮像面から対象物までの距離を取得できる。ステレオ画像における像の横方向の位置の差分に基づき撮像面からの距離を算出する手法には、三角測量の原理に基づく一般的なものを適用できる。そして算出した距離に基づき、画像平面での対象物の像の位置座標を実空間に逆射影することにより、実空間での対象物の位置を特定できる。
【００２３】
撮像装置１２を構成する２つのカメラの光軸が平行で、縦方向の位置ずれもない状態であれば、ステレオ画像１２０ａ、１２０ｂにおける同じ対象物の像の縦方向の位置（例えばｙ＿ｌおよびｙ＿ｒ）は一致する。このように縦方向の位置が一致していれば、一方の画像の特徴点に対応する他方の画像の特徴点は、基本的に同じ位置のライン上にあることになるため検出が容易である。しかし実際には、組み立て精度などによって微妙な光軸ずれが発生し得る。
【００２４】
図４は左右のカメラの光軸（特にピッチ角）または縦方向の位置がずれているときのステレオ画像を示している。この例では、左視点からの画像１２０ａにおける対象物の像の縦方向の位置（例えばｙ＿ｌ）が、右視点からの画像１２０ｂにおける対応する像の位置（例えばｙ＿ｒ）よりΔｙだけ上にある。この状態で、対応する像が両画像の同じライン上にあるという原則に従い対応づけを行うと、Δｙが１０画素程度の差であっても対応を誤認識してしまう可能性が出てくる。そのため正確な視差が得られず、最終的には対象物の位置取得精度が十分に得られないことがあり得る。
【００２５】
このため事前にカメラキャリブレーションを実施して縦方向の位置ずれΔｙを取得しておき、運用時には撮影したステレオ画像のどちらかを、画像平面上で仮想的に縦方向にΔｙだけずらしたうえで対応点検出を行えば、位置情報を高速かつ高精度に取得できる。図４の例では、右視点からの画像１２０ｂを上方にΔｙだけ移動させることにより、点線で枠を示した補正画像１２２を生成している。そして左視点からの画像１２０ａと補正画像１２２とを比較すれば、縦方向の同じ位置で同一の対象物の像を容易に検出できる。
【００２６】
位置ずれΔｙの値を厳密に求めておくほど、運用時の情報処理における応答性や精度が向上するが、キャリブレーションの段階では基本的に、画像上のどの位置に対応点があるかが未知のため、２次元平面の広い範囲を探索するなど負荷の高い処理が必要となる。それを効率的かつ高精度に行うためには、特徴点を同定しやすい物を被写体として準備したり、解析しやすい画像が得られるように照明環境を調整したりすることも必要となる。しかしながらこのような事前の準備にはユーザの協力が不可欠であり、精度を追求するほどユーザの負担も増すことになる。
【００２７】
またゲームなど娯楽を目的とした情報処理では特に、そのような作業が増えるほど、ユーザの興味や楽しさが失われていく結果となり得る。さらに幼児や高齢者など作業自体を難しく感じるユーザにとっては気軽に使用しにくい、という問題も生じる。作業の煩わしさからユーザが必要なキャリブレーションを省略した結果、位置情報取得の精度が落ちたり応答が遅くなったりして、本来のパフォーマンスが得られずに終わることも考えられる。
【００２８】
そこで本実施の形態では、個々の状況に応じて最低限必要な対策を装置が判断し、必要に応じた情報を表示しつつキャリブレーションを段階的に試みることにより、ユーザの負担を可能な限り軽減させる。なお以下の説明では、キャリブレーションにより位置ずれΔｙを取得することとするが、撮影画像やカメラの特性としてその他のパラメータを取得してもよい。またキャリブレーションの手法は特に限定されず、その結果得られるパラメータは直接、位置ずれΔｙを表すものでも間接的にΔｙを表すものでもよい。
【００２９】
図５は情報処理装置１０の機能ブロックの構成を示している。図５に示す各機能ブロックは、ハードウェア的には、図２に示したＣＰＵ、ＧＰＵ、メモリなどの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、入出力機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３０】
情報処理装置１０は、入力装置１４からの入力情報を取得する入力情報取得部５０、撮像装置１２から撮影画像のデータを取得する撮影画像取得部５２、対象物の位置情報を取得する位置情報取得部５４、接続確認、ユーザ登録、各種キャリブレーションなどの初期処理を行う初期処理部６０、位置情報を用いて情報処理を行う情報処理部６４、表示画像などの出力データを生成する出力データ生成部６６を含む。入力情報取得部５０は、ユーザ操作の内容を入力装置１４から取得する。ここでユーザ操作とは、実行するアプリケーションの選択、処理の開始／終了、コマンド入力など、一般的な情報処理でなされるものでよい。入力情報取得部５０は入力装置１４から取得した情報を、その内容に応じて撮影画像取得部５２、初期処理部６０、情報処理部６４に供給する。
【００３１】
撮影画像取得部５２は、撮像装置１２が動画撮影して得られる撮影画像のデータを所定のフレームレートで取得する。撮影画像取得部５２はさらに、入力情報取得部５０が取得したユーザからの処理開始／終了要求に従い、撮像装置１２における撮影の開始／終了を制御したり、情報処理部６４における処理の結果に応じて、撮像装置１２から取得するデータの種類を制御したりしてもよい。
【００３２】
位置情報取得部５４は、撮影画像に含まれる対象物の像の位置に基づき、その実空間での位置や動きを特定する。詳細には位置情報取得部５４は、補正データ記憶部５６および位置データ生成部５８を含む。補正データ記憶部５６は、ステレオ画像の縦方向の位置ずれ値など、キャリブレーションにより得られ、位置情報の取得に利用する各種パラメータを記憶する。位置データ生成部５８は、動画撮影により得られた各フレームのステレオ画像のデータを撮影画像取得部５２から取得し、両画像における対応点を検出する。
【００３３】
このとき位置データ生成部５８は、まず補正データ記憶部５６に格納された位置ずれ値を参照し、上述のようにどちらかの画像を画像平面上で縦方向にずらして左右の画像の位置を揃える。そして一方の画像に設定した参照ブロックごとに、他方の画像の対応するライン上で探索窓を移動させながら類似度を計算するなどして対応するブロックを決定する。さらに参照ブロックとそれに対応するブロックの横方向の位置の差分に基づき、三角測量の原理で、そこに写る対象物のカメラからの距離を特定する。位置データ生成部５８はさらに、当該カメラからの距離を画素値として画像平面にマッピングした奥行き画像を生成するなどして最終的な位置データを生成し、情報処理部６４に供給する。
【００３４】
初期処理部６０は、情報処理を開始するうえで必要な所定の情報をユーザに提示したり、ユーザに接続確認や各種設定入力を促しその結果を管理したりする。初期処理部６０がこのような処理を行うタイミングとしては、例えば情報処理装置１０に初めて電源が投入されたときや、個々のユーザがログイン登録を行うときなどが考えられる。このようなタイミングでなすべき情報提示や設定入力は、一般的な情報処理装置でなされるのと同様でよい。本実施の形態では、初期処理部６０にキャリブレーション部６２を設け、そのような所定の初期処理と撮像装置１２のキャリブレーションを同時期に実施する。
【００３５】
キャリブレーション部６２は基本的に、ステレオ画像における縦方向の位置ずれ値を取得し、その結果を位置情報取得部５４の補正データ記憶部５６に格納する。ただし撮像装置１２や情報処理装置１０を出荷する段階で位置ずれ値の初期値を格納しておき、それを必要に応じて更新するようにしてもよい。またログイン登録の都度、キャリブレーションを行う場合は、前のユーザの登録時に取得した位置ずれ値を、必要に応じて更新するようにしてもよい。キャリブレーションでは上述のとおり、ステレオ画像の一方に設定した参照ブロックと類似度の高いブロックを、他方の画像の比較的広範囲の領域で探索することにより検出し、その縦方向の位置関係からずれを取得する。
【００３６】
このとき、その時点での撮影環境や前に取得された位置ずれ値からの変化量などによって、キャリブレーションのためにユーザが何らかの対処をする必要があるか、必要があってもその負担の度合い等が異なってくる。そこでキャリブレーション部６２はまず、ユーザが何らかの対処をする必要があるか否かを判定し、必要がなければそのまま、初期処理部６０が行うその他の処理と並行してキャリブレーションを完了させ、取得した位置ずれの値を補正データ記憶部５６に格納する。
【００３７】
ユーザによる何らかの対処が必要か否かは、キャリブレーションを実行して実際の位置ずれ値により判定してもよいし、その他の判定基準を用いてもよい。例えばカメラの向きに明らかな異常がある場合、ユーザにその旨を認識させれば容易に対処が可能であるため、そのような状況を考慮せずキャリブレーションを実施する無駄を省くことができる。したがってキャリブレーション部６２は、キャリブレーションのためのユーザによる対処の要・不要を判定するための、キャリブレーション以外の機能を有していてよい。例えばキャリブレーション部６２は、撮像装置１２が内蔵する加速度センサのセンサ値から撮像装置の姿勢を取得する機能、撮影画像から顔を検出する機能、撮影画像の輝度分布や周波数特性を取得する機能、などを適宜備える。あるいは位置情報取得部５４を利用して奥行き画像を生成させ、その結果に基づきユーザによる対処の要・不要を判定してもよい。
【００３８】
いずれにしろユーザによる何らの対処もなくキャリブレーションを完了させることができれば、ユーザはキャリブレーションがなされたこと自体に気づくことなく初期処理を終わらせ、所望の情報処理を開始させることができる。一方、ユーザが何らかの対処をする必要がある場合、キャリブレーション部６２は、負担の度合いが小さい対処がなされるような情報から順に提示していき、対処がなされた都度、キャリブレーションを試行する。そしてキャリブレーションが成功した時点で、得られた位置ずれの値を補正データ記憶部５６に格納したうえ処理を終了する。
【００３９】
これにより、撮影環境など個々の状況に応じた最低限の負担で情報処理を開始できるようにする。なお場合によっては、キャリブレーションを上述のようないわゆる「初期処理」以外のタイミングで行ってもよい。いずれにしろ何らかの処理と並行して実行することにより、可能な限りユーザがそれと意識することなくキャリブレーションが完了しているような状況を実現する。
【００４０】
情報処理部６４は、ユーザが指定したゲームなどの情報処理を実施する。この際、対象物の位置情報を位置データ生成部５８からフレームごとに取得することにより、対象物の位置や動きを情報処理に反映させる。さらに入力装置１４から入力情報取得部５０が取得したユーザ操作の内容も反映させてよい。上述のとおり、これらの入力データを用いて情報処理部６４が行う情報処理の内容は特に限定されない。
【００４１】
出力データ生成部６６は、情報処理部６４からの要求に従い、情報処理の結果として出力すべき画像や音声のデータを生成する。例えば上述のように、ユーザの頭部の位置や姿勢に対応する視点から見た仮想世界を左右の視差画像とし描画する。この視差画像をＨＭＤ１６ｂにおいて左右の目の前に表示させたり、仮想世界での音声を出力したりすれば、ユーザはあたかも仮想世界に入り込んだような感覚を得られる。そのほか、対象物の位置情報やユーザ操作を利用して様々な情報処理を実現できることは当業者には理解されるところである。
【００４２】
出力データ生成部６６はまた、初期処理に際し必要な情報を示したり設定を受け付けたりするための画像や音声のデータを、初期処理部６０からの要求に応じて生成する。キャリブレーションのためにユーザに何らかの対処をしてもらう必要があると判定された場合は、キャリブレーション部６２からその旨の要求を受け付け、それに従った表示画像や音声のデータも生成する。生成した出力データは、適宜、平板型ディスプレイ１６ａやＨＭＤ１６ｂに出力することで、画像や音声として出力させる。
【００４３】
次に、以上の構成によって実現される情報処理装置１０の動作について説明する。図６は、本実施の形態における情報処理装置１０が、必要な初期処理と共にキャリブレーションを行う処理手順を示すフローチャートである。このフローチャートは、ユーザが情報処理装置１０を初めて起動させたときなどに開始される。また上述のとおり本実施の形態では、ユーザの負担がより少なくてすむような情報から順に提示することでキャリブレーションを段階的に進めていく。同フローチャートでは、各時点での段階数を昇順の整数ｎで表し、フローチャートの開始時点でのｎの値を１とする（Ｓ１０）。
【００４４】
ユーザが情報処理装置１０、入力装置１４、表示装置１６、撮像装置１２などを適宜接続し、情報処理装置１０を起動させると、初期処理部６０は、出力データ生成部６６を介して所定の初期画像を表示装置１６に表示させる（Ｓ１２）。この初期画像は、装置のロゴや、「ようこそ」など正常に起動がなされたことを示す文字列を含むような一般的なものでよい。続いて初期処理部６０は、各種初期設定を受け付ける画面や使用許諾契約書を表示させる画面を表示装置１６に表示させ、ユーザからの入力を適宜受け付ける（Ｓ１４）。このとき初期処理部６０は、各種装置の接続状態を確認し、接続が適切でない場合はユーザにその旨も通知する。
【００４５】
撮像装置１２が接続されていることを確認したら、初期処理部６０は、撮影画像取得部５２を介して当該撮像装置１２に撮影を開始させ、それに応じて撮影されたステレオ画像のデータを取得する（Ｓ１６）。するとキャリブレーション部６２はまず１段階目の処理の一環として、ユーザによって何らかの対策が必要な状況か否かを判定する（Ｓ１８）。すなわち上述のとおりカメラの向きが適切でない場合のほか、撮像面の前に障害物がある、照度が不足している、視野内に適切な特徴点が得られる物がない、といった、キャリブレーションに不適切な状況が明らかな場合、その状況を先に検出することで、処理の負荷の高いキャリブレーションを無駄に行わないようにする。
【００４６】
具体的には次のような場合に、対策が必要と判定する。
１．顔検出処理の結果、顔が検出されない
２．特徴点が所定量以上検出されない
３．輝度分布や周波数特性が適切範囲にない
４．過去に取得された位置ずれ値を用いて生成した奥行き画像が正常値を示していない
５．加速度センサ等の計測値が、撮像装置１２の姿勢が適切でないことを示している
【００４７】
なお上記の条件は例示に過ぎず、キャリブレーションを適切に行えない状況を検出できれば、その手法や用いる手段は限定されない。またそのような条件の１つを採用してもよいし、複数の条件を組み合わせて採用してもよい。また上記の条件は文章で表しているが、実際には、各状況を数値化しそれに対する判定基準を個々に設けておく。上記のような条件を満たさず、ユーザの対策なしでキャリブレーションを実行可能と判断したら（Ｓ１８のＮ）、キャリブレーション部６２は、その時点で得られたステレオ画像を用いてキャリブレーションを行い縦方向の位置ずれ値を取得する（Ｓ２４）。
【００４８】
そして取得した位置ずれ値が正常範囲内にあるなどキャリブレーションが成功したら（Ｓ２６のＹ）、その値を補正データ記憶部５６に格納して初期処理を終える（Ｓ２８）。なおこのときのＳ１６、Ｓ１８、Ｓ２４、Ｓ２６のキャリブレーションに係る処理は、Ｓ１４の情報表示や各種入力受付処理と並行して、いわゆるバックグラウンドで実施できる。したがって第１段階でキャリブレーションが成功すれば、ユーザはキャリブレーション部６２の動作がなされたことを知ることなく初期に必要な手続きを終えることができる。
【００４９】
Ｓ１８で上記のような条件に合致し、ユーザによる対策が必要と判定した場合（Ｓ１８のＹ）、キャリブレーション部６２は第１段階のキャリブレーションを行わずに段階を１つ進める（Ｓ２０）。Ｓ２６でキャリブレーションが不成功となった場合も段階を１つ進める（Ｓ２６のＮ、Ｓ２０）。この段階では、ユーザによる最低限の負担による状況の改善でキャリブレーションが成功するかどうかを確認する。具体的には、撮像装置１２で撮影された画像をそのまま表示装置１６に表示させる（Ｓ２２）。
【００５０】
カメラの向きが適切でない、撮像面の前に障害物がある、といった状況は、撮影画像を見れば一目瞭然に把握でき、なおかつ容易に問題を解消できる類いのものである。従って第２段階としてＳ２２において撮影画像を即時表示させ、ユーザに直感的な問題の把握を促す。あるいは撮影画像を見ながら実施可能な簡単な指示や指針を、文字列等でユーザに与えてもよい。これに応じてユーザが何らかの対策を講じたことを検出したら、キャリブレーション部６２は、その時点で得られたステレオ画像を用いてキャリブレーションを行い縦方向の位置ずれ値を取得する（Ｓ２４）。
【００５１】
そして取得した位置ずれ値が正常範囲内にあるなどキャリブレーションが成功したら（Ｓ２６のＹ）、その値を補正データ記憶部５６に格納して初期処理を終える（Ｓ２８）。これにより、キャリブレーションのためのユーザ負担は、カメラの向きを修正したり障害物を取り除いたりする簡単な作業ですむことになる。一方、そのようにしてもキャリブレーションが不成功となったら（Ｓ２６のＮ）、さらに段階を１つ進め（Ｓ２０）、キャリブレーションのための第３段階の情報を提示する（Ｓ２２）。
【００５２】
ここで提示する情報は、第２段階で提示した情報よりいくらか複雑であったり負担の大きい対策を要請したりするものであり、例えば、照明を明るくする、特徴点を同定しやすい物を持って所定の位置に立つ、といったユーザに対する指示を含む。ユーザが当該指示に従ったことを検出したら、キャリブレーション部６２は、その時点で得られたステレオ画像を用いてキャリブレーションを行い縦方向の位置ずれ値を取得する（Ｓ２４）。
【００５３】
そして取得した位置ずれ値が正常範囲内にあるなどキャリブレーションが成功したら（Ｓ２６のＹ）、その値を補正データ記憶部５６に格納して初期処理を終える（Ｓ２８）。そのようにしてもキャリブレーションが不成功となったら（Ｓ２６のＮ）、さらに段階を１つ進め（Ｓ２０）、より負担の大きな対策を要請しキャリブレーションを試みる（Ｓ２２、Ｓ２４、Ｓ２６）という処理を、キャリブレーションが成功するまで繰り返す。ただし所定の段階数でキャリブレーションの不成功という結果を出力し処理を抜けてもよい。
【００５４】
このようにユーザの負担の大きさと提示する情報を対応づけ、負担の少ない方から順に情報を提示して、その都度キャリブレーションを試みることにより、ユーザ個々の状況に応じた最低限の負担でキャリブレーションを完了させられる。キャリブレーション部６２は、段階数ｎと表示すべき情報とを対応づけたデータを内部で保持し、キャリブレーションの処理の段階が進むごとに対応する情報を提示していく。なお上記説明では第２段階として撮影画像を即時表示させ、第３段階で指示を含む画像を表示させるとしたが、本実施の形態をこれに限る主旨ではない。例えば提示する情報をさらに細分化して細かく段階分けしてもよいし、撮影画像の即時表示と指示表示を組み合わせて、提示する情報をより多様化させてもよい。
【００５５】
次に、本実施の形態において初期処理中に表示される画面の例を示す。図７は図６のＳ１２やＳ１４で表示される画面の例を示している。図７の（ａ）の画面は、これから初期処理を開始することをユーザに伝えるための「セットアップを始めましょう」なる文字列と、それを承諾するか前の画面に戻すかを選択するためのＧＵＩ（Graphic User Interface）や入力ボタンのガイダンス表示を含む。ここでユーザが、入力装置１４のうち「決定」を示す「○」ボタンを押下するなどして初期処理の開始を承諾したら、初期処理部６０は所定の初期処理を開始する。
【００５６】
初期処理の一環として各種装置が適切に接続されているか否かをチェックした結果、例えば撮像装置１２が接続されていなければ、図７の（ｂ）の画面のように、「カメラを接続してください」といった文字列や図を示してユーザに接続を促す。同画面ではさらに、ユーザが作業を完了させた旨の入力をするか前の画面に戻すかを選択するためのＧＵＩや入力ボタンのガイダンスを表示する。撮像装置１２の接続が完了した時点で、ユーザが「決定」を示す「○」ボタンを押下することにより、初期処理部６０はその旨を検知し、再び接続を確認したりその他の初期処理を開始したりする。
【００５７】
最初から各装置が適切に接続されていれば（ｂ）の画面は表示しない。いずれにしろ撮像装置１２が接続された状態を確認できたら、キャリブレーション部６２はキャリブレーションの第１段階を実施する。上述のとおり第１段階はユーザによる対策を必要としないため、それと並行して使用許諾契約書を表示させたり、各種設定入力を受け付けたりしてもよい。あるいは「しばらくお待ちください」なる文字列を表示させ、何らかのキャリブレーション処理がなされていることを明示してもよい。この段階でキャリブレーションが成功したらキャリブレーション部６２は動作を終了させる。
【００５８】
キャリブレーション前にユーザによる対策が必要な状況を検出したり、キャリブレーションが不成功となったりしたら、キャリブレーション部６２はキャリブレーションの第２段階へ移行する。図８は２段階目の処理として図６のＳ２２で表示される画面の例を示している。この例では、ステレオ画像のうち片方の画像を即時表示する画像表示領域８０と、そのうちの中心部など所定領域を表す枠８２を表示させている。また、「顔を枠内に入れてください」といったユーザへの指示を文字列で表示している。さらに、ユーザが指示に従った旨の入力をするか前の画面に戻すかを選択するためのＧＵＩや入力ボタンのガイダンスを表示している。
【００５９】
自分の顔が枠８２に入るような位置や姿勢をとった時点で、ユーザが「決定」を示す「○」ボタンを押下することにより、キャリブレーション部６２はその旨を検知し、キャリブレーションを開始する。この段階でキャリブレーションが成功したらキャリブレーション部６２は動作を終了させる。このように撮影画像を即時表示させ、特徴点が明らかな「人の顔」が確実に所定領域内にあるような画像を用いてキャリブレーションを行うことにより、キャリブレーションが成功する確率を高めることができる。
【００６０】
一方、２段階目は、カメラの前の障害物を取り除くなど、より単純でより負担を少なく解決できる問題を排除する目的で、撮影画像を即時表示させるのみとすることも考えられる。図９は２段階目の処理として図６のＳ２２で表示される画面の別の例を示している。この例では、ステレオ画像の双方を即時表示する画像表示領域８４ａ、８４ｂを表示させている。図示するように、一方の画像表示領域８４ｂに表示されている撮影画像はその一部が隠蔽されており、対応するカメラの撮像面に布がかかっているなど何らかの障害物があることを一見して把握できる。この場合、ユーザは当該布を取り除くなどして「決定」を示す「○」ボタンを押下することにより、キャリブレーション部６２はその旨を検知し、キャリブレーションを開始する。
【００６１】
２段階目でもキャリブレーションが成功しない場合、キャリブレーション部６２はキャリブレーションの３段階目へ移行する。図１０は３段階目の処理として図６のＳ２２で表示される画面の例を示している。ただしこの例は第３段階の最初に表示する画面を想定しており、以後、本格的にキャリブレーションを行う必要があることをユーザに伝えるための「カメラの調整が必要です」なる文字列と、それを承諾するか否かを選択するためのＧＵＩ等が表示されている。ここでユーザが「決定」を示す「○」ボタンを押下するなどして承諾の意思を入力したら、キャリブレーション部６２は３段階目として設定された、対策のための情報提示（不図示）と、対策後に撮影した画像に対するキャリブレーションとを実施するルーチンへ移行する。
【００６２】
この例では、第３段階をキャリブレーション動作の最終段階とする。したがって提示する情報は基本的に、ユーザの立ち位置や把持物に細かい指示を与える類いのものである。そのような指示のなかでも、ユーザ負担のより少ない指示から先に提示するようにしてもよい。あるいはキャリブレーションの結果や画像解析結果などに基づき、提示すべき指示を選択してもよい。第１段階〜第３段階のいずれかの段階でキャリブレーションが成功し、その他の初期処理も完了したら、初期処理部６０は、例えば「セットアップは終了しました」といった文字列を表示させるなどしてユーザに初期処理の完了を通知し処理を終える。これによりユーザは、別途、メニュー画面を表示させるなどして、ゲームなど所望の情報処理を開始させることができる。
【００６３】
なお本実施の形態では、ユーザがそれと気づくことなくキャリブレーションが完了する可能性が高くなるため、新たなユーザがログイン登録を行う都度、使用許諾契約書など登録時に必要な情報を表示するのと並行してバックグラウンドでキャリブレーションを行っても差し支えない。この場合、最初のユーザのログイン登録時に取得した位置ずれ値から変化がなければその値が維持され、変化があれば補正データ記憶部５６に格納された値を更新する。結果としてログイン登録するユーザの数が増えるほど、運用に用いる位置ずれ値の確度が向上する可能性がある。
【００６４】
また、ログイン時に顔認証を行うシステムにおいては、ログイン登録時に認証のための顔の特徴量を取得する。これを利用して、撮影画像に写る顔に基づきキャリブレーションの実行の是非や段階の進め方を変化させてもよい。例えば新たなユーザがログイン登録する場合でも、過去にログイン登録したユーザの顔も一緒に写っている場合は、すでに取得した位置ずれ値の確度が高いとしてキャリブレーションを省略したり、ユーザへの情報提示を行わない範囲で第１段階のキャリブレーションのみを実施したりする。後者の場合、キャリブレーションが成功し前に取得した位置ずれ値と変化があればそれを更新し、キャリブレーションが失敗したら前に取得した位置ずれ値をそのまま採用してもよい。
【００６５】
逆に、登録済みのユーザの顔が写っていない場合は、環境や状況が変化している可能性があるため、１段階目のキャリブレーションを省略し、２段階目、あるいは３段階目のキャリブレーションから実施してもよい。このようにすることで、状況の時間的な変化を加味したうえでキャリブレーションの簡略化の是非を適切に決定できる。顔の特徴量以外にも、カメラの視野にある家具などの空間構造に基づき、環境や状況の変化を検出してもよい。
【００６６】
以上述べた本実施の形態によれば、ステレオ画像を用いて対象物の位置情報を取得する情報処理技術において、従来は適切な撮影環境を準備して行っていたカメラキャリブレーションを、実際の状況に応じた必要性に照らしつつ段階的に実施する。具体的には、特に対処の必要なく適切な撮影環境が得られている状況であれば、その時点での撮影画像を用いてキャリブレーションを行う。この場合、ユーザへの通知の必要がなくなるため、別の処理と並行して実施することなどにより、ユーザが気づくことなく処理を完了させられる。
【００６７】
現状のままではキャリブレーションが不成功となったときの次の段階として、撮影画像を即時表示させる。これにより、カメラの方向が適切でなかったり撮像面の前に障害物があったりするなど、比較的容易に解決できる問題が不成功の原因である場合に、当該問題をユーザに一見して把握させ、少ない負担でキャリブレーションを成功に導くことができる。そのようにしてもキャリブレーションが成功しない場合に、ユーザに指示を与え適切な撮影環境を積極的に作り出すことで、確実にキャリブレーションがなされるようにする。
【００６８】
また、実際に負荷の高いキャリブレーションを実施する前に、キャリブレーションの結果以外の観点、例えば顔検出結果や内部センサによる計測値などに基づいて、キャリブレーションを実行するか否か、実行する場合はどの段階で行うか、を決定する。これにより、個々の環境や状況の変化など様々な事象を加味して、より効率的にキャリブレーションを遂行できる。これらのことにより、装置の初回使用時に生じやすい設定の煩わしさを可能な限り軽減させることができ、新しい装置の使用に対する心的障壁を低くできる。ひいては、十分なキャリブレーションをせずに装置を使用し始めた結果、劣化したユーザ体験がなされてしまうのを防止することにもなる。
【００６９】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００７０】
８  情報処理システム、  １０  情報処理装置、  １２  撮像装置、  １４  入力装置、  １６ａ  平板型ディスプレイ、  １６ｂ  ＨＭＤ、  １６  表示装置、  ５０  入力情報取得部、  ５２  撮影画像取得部、  ５４  位置情報取得部、  ５６  補正データ記憶部、  ５８  位置データ生成部、  ６０  初期処理部、  ６２  キャリブレーション部、  ６４  情報処理部、  ６６  出力データ生成部。
【図１】
0006452585.tif 000002
【図２】
0006452585.tif 000003
【図３】
0006452585.tif 000004
【図４】
0006452585.tif 000005
【図５】
0006452585.tif 000006
【図６】
0006452585.tif 000007
【図７】
0006452585.tif 000008
【図８】
0006452585.tif 000009
【図９】
0006452585.tif 000010
【図１０】
0006452585.tif 000011