(57)【要約】【課題】連続した広視野角映像を生成する画像処理プログラム、画像処理方法および画像処理装置を提供すること。【解決手段】本発明の画像処理プログラムは、画像処理装置に対し、水平方向または垂直方向に連続した三次元空間映像から、所定のユーザ視点において水平方向または垂直方向に連続する複数の透視投影画像を生成させるステップと、透視投影画像の歪みを算出するステップと、透視投影画像の歪みに応じて、水平方向または垂直方向に連続する複数の透視投影画像の歪みを補正するステップとを実行させる。【選択図】  図１
2015219634.tif 000002
【特許請求の範囲】
【請求項１】
画像データを処理する画像処理装置が実行する画像処理プログラムであって、画像処理装置に対し、
水平方向または垂直方向に連続した三次元空間映像から、所定のユーザ視点において水平方向または垂直方向に連続する複数の透視投影画像を生成するステップと、
前記透視投影画像の歪みを算出するステップと、
前記透視投影画像の歪みに応じて、前記水平方向または垂直方向に連続する複数の透視投影画像の歪みを補正するステップと
を実行させる画像処理プログラム。
【請求項２】
前記歪みを算出するステップは、前記複数の透視投影画像それぞれについて、水平方向および垂直方向の歪みを算出することを特徴とする、請求項１に記載の画像処理プログラム。
【請求項３】
前記画像処理プログラムは、前記画像処理装置に対し、ユーザ視点を取得するステップをさらに実行させ、
前記透視投影画像を生成するステップは、
前記ユーザ視点を取得するステップで取得したユーザ視点において水平方向または垂直方向に連続する複数の透視投影画像を生成するステップを含む、請求項１又は２に記載の画像処理プログラム。
【請求項４】
画像データを処理する画像処理装置が実行する画像処理方法であって、前記画像処理方法は、
水平方向または垂直方向に連続した三次元空間映像から、所定のユーザ視点において水平方向または垂直方向に連続する複数の透視投影画像を生成するステップと、
前記透視投影画像の歪みを算出するステップと、
前記透視投影画像の歪みに応じて、前記水平方向または垂直方向に連続する複数の透視投影画像の歪みを補正するステップと
を含む画像処理方法。
【請求項５】
前記歪みを算出するステップは、前記複数の透視投影画像それぞれについて、水平方向および垂直方向の歪みを算出することを特徴とする、請求項４に記載の画像処理方法。
【請求項６】
前記画像処理方法は、前記画像処理装置が、ユーザ視点を取得するステップをさらに含み、
前記透視投影画像を生成するステップは、
前記ユーザ視点を取得するステップで取得したユーザ視点において水平方向または垂直方向に連続する複数の透視投影画像を生成するステップを含む、請求項４又は５に記載の画像処理方法。
【請求項７】
画像データを処理する画像処理装置であって、
水平方向または垂直方向に連続した三次元空間映像から、所定のユーザ視点において水平方向または垂直方向に連続する複数の透視投影画像を生成する透視投影画像生成手段と、
前記透視投影画像の歪みを算出する歪み算出手段と、
前記透視投影画像の歪みに応じて、前記水平方向または垂直方向に連続する複数の透視投影画像の歪みを補正する歪み補正手段と
を備える画像処理装置。
【請求項８】
前記歪み算出手段は、前記複数の透視投影画像それぞれについて、水平方向および垂直方向の歪みを算出することを特徴とする、請求項７に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元空間映像の処理技術に関し、より詳細には、３次元空間映像から広視野角の平面画像を生成する画像処理プログラム、画像処理方法および画像処理装置に関する。
【背景技術】
【０００２】
従来、半球ドームや壁面、円柱型スクリーン等の広視野角映像を表示可能な表示面において、ユーザの視点から見て自然な立体映像を表示したいというニーズがあった。このようなニーズに鑑み、ユーザの位置を検知し、適切な位置や画角を設定した仮想カメラを用いて、三次元空間映像を平面画像に透視投影し、ユーザ位置や表示面の形状に起因する歪みを補正して、広視野角の平面映像を生成する技術が提案されている。
【０００３】
このような技術の一例として、特許文献１は、ユーザの周囲に配置された複数の表示装置を制御する表示制御装置が、各表示装置で表示すべき映像を生成して表示装置に表示させる表示システムを開示する。この表示システムでは、表示制御装置が、ユーザを取り囲むような形式で表現された映像データを分割して分割映像データを生成し、各表示装置が表示すべき分割映像データを表示装置に表示させる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１が開示する表示システムでは、離接された複数の表示装置に分割映像データを生成するため、連続した広視野角映像を生成できないという問題があった。
【０００５】
本発明は、上記従来技術の問題に鑑みてなされたものであり、連続した広視野角映像を生成する画像処理プログラム、画像処理方法および画像処理装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の画像処理プログラムは、画像処理装置に対し、水平方向または垂直方向に連続した三次元空間映像から、所定のユーザ視点において水平方向または垂直方向に連続する複数の透視投影画像を生成させるステップと、透視投影画像の歪みを算出するステップと、透視投影画像の歪みに応じて、水平方向または垂直方向に連続する複数の透視投影画像の歪みを補正するステップとを実行させる。
【発明の効果】
【０００７】
本発明の画像処理プログラムは、画像処理装置に対し、上述したステップを実行させることにより、連続した広視野角映像を生成することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の画像処理システムの一実施形態を示す図。
【図２】画像処理装置２００のハードウェア構成を示す図。
【図３】画像処理装置２００の機能構成の一実施形態を示す図。
【図４】仮想カメラの位置、当該仮想カメラに割り当てられた表示面、および水平方向の画角の関係を示す図。
【図５】画像処理装置が実行する処理の一実施形態を示すフローチャート。
【図６】図５のステップＳ５０５に示す歪み算出処理のフローチャート。
【図７】１の仮想カメラの水平方向の画角によって規定される水平撮影範囲および分割点を示す図。
【図８】透視投影画像の歪みを算出する歪み算出処理を説明する図。
【図９】ユーザ視点の高さの違いによる仮想平面上のメッシュの違いを示す図。
【発明を実施するための形態】
【０００９】
図１は、本発明の画像処理システムの一実施形態を示す図である。図１に示す画像処理システム１００は、表示装置１１０と、画像処理装置（図示せず）と、ユーザ視点検知装置１２０とを含む。
【００１０】
画像処理装置は、表示装置１１０に表示すべき映像を生成する装置である。画像処理装置は、表示装置１１０の内側に位置するユーザ視点から見た三次元空間映像を透視投影して、複数の仮想平面上の透視投影画像を生成し、これらの透視投影画像の歪みを補正して、広視野角の平面映像を生成する。
【００１１】
表示装置１１０は、画像処理装置が生成する映像を表示する装置である。図１に示す実施形態では、表示装置１１０は、水平方向に連続しており、画像処理装置が生成する映像を表示することにより、表示装置１１０の内側に居るユーザに対し、連続した３６０°のパノラマ映像を提供する。
【００１２】
本実施形態では、円柱型の表示装置１１０を水平方向に連続するように設置するが、他の実施形態では、円柱型の表示装置１１０を垂直方向に連続するように設置してもよい。また、円柱型の表示装置１１０ではなく、多角形の表示装置を採用してもよい。
【００１３】
ユーザ視点検知装置１２０は、ユーザ視点を検知する装置である。ユーザ視点検知装置は、マイクロソフト社のＫＩＮＥＣＴ（登録商標）が採用する骨格情報取得技術や種々の顔認識アルゴリズムなどを用いてユーザを検知し、ユーザ視点を検知することができる。ユーザ視点検知装置１２０は、ユーザ視点を正しく検出できる限り、画像処理システム１００内の任意の位置に設置することができる。
【００１４】
図２は、画像処理装置２００のハードウェア構成を示す図である。画像処理装置２００は、プロセッサ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ２０４とを備える。
【００１５】
プロセッサ２０１は、本発明のプログラムを実行する演算装置である。ＲＯＭ２０２は、ブートプログラムなどが保存される不揮発性メモリである。ＲＡＭ２０３は、本発明のプログラムの実行空間を提供する不揮発性メモリである。ＨＤＤ２０４は、本発明のプログラムや映像などの様々なデータが保存される不揮発性メモリである。
【００１６】
プロセッサ２０１は、ＨＤＤ２０４から本発明のプログラムを読み出し、種々のＯＳの管理下で、本発明のプログラムをＲＡＭ２０３に展開して実行することにより、後述する機能を実現する。
【００１７】
図３は、画像処理装置２００の機能構成の一実施形態を示す図である。画像処理装置２００は、三次元空間映像生成部３００と、ユーザ視点設定部３０１と、パラメータ設定部３０２と、透視投影画像生成部３０３と、歪み算出部３０４と、歪み補正部３０５とを有する。
【００１８】
三次元空間映像生成部３００は、ユーザの指示に基づいて、ユーザ視点における三次元空間映像を生成する手段である。三次元空間映像生成部３００は、例えば、ＯｐｅｎＧＬ（Open Graphics Library）やＤｉｒｅｃｔＸなどのＡＰＩを用いて、三次元空間映像を生成することができる。
【００１９】
本実施形態では、画像処理装置２００に実装される三次元空間映像生成部３００が三次元空間映像を生成するが、他の実施形態では、他の装置が生成した三次元空間映像を取得して加工してもよい。
【００２０】
ユーザ視点設定部３０１は、ユーザ視点の位置を設定する手段である。ユーザ視点設定部３０１は、ユーザ視点検知装置１２０が検出したユーザ視点の三次元位置を、リアルタイムまたは非リアルタイムに記憶装置に保存する。別の実施形態では、ユーザ視点設定部３０１は、ユーザが予め指定したユーザ視点の位置を設定してもよい。他の実施形態では、ユーザ視点設定部３０１は、両眼のユーザ視点の位置をそれぞれ設定してもよい。
【００２１】
パラメータ設定部３０２は、ユーザ視点における仮想カメラのパラメータ（以下、「カメラパラメータ」とする。）を設定する手段である。仮想カメラとは、図４に示すように、表示装置１１０内のユーザ視点からの三次元空間画像の透視投影画像を生成する仮想的なカメラである。カメラパラメータは、仮想カメラの画角、位置および姿勢を表すパラメータである。
【００２２】
水平方向に連続する表示装置１１０を採用する実施形態では、仮想カメラの水平方向の画角は、各仮想カメラに割り当てられる表示装置１１０の表示面Ａ，Ｂ，Ｃ，Ｄが均等になるように設定される。仮想カメラの垂直方向の画角は、総ての仮想カメラで同一になるように設定される。
【００２３】
垂直方向に連続する表示装置を採用する実施形態では、仮想カメラの垂直方向の画角は、各仮想カメラに割り当てられる表示装置１１０の表示面が均等になるように設定されると共に、水平方向の画角は、総ての仮想カメラで同一になるように設定される。
【００２４】
仮想カメラの水平方向の画角θは、下記数式１を用いて算出することができる。
【００２５】
【数１】
2015219634.tif 000003
ここで、ベクトルａ，ｂは画角θを規定するベクトルである。
【００２６】
他の実施形態では、仮想カメラの水平方向の画角が均等になるように設定してもよい。例えば、４つの仮想カメラを用いる実施形態の場合、仮想カメラの水平方向の画角は９０度となる。
【００２７】
仮想カメラの位置は、ユーザ視点と同一である。ユーザ視点は、仮想カメラの水平方向の画角が１８０度以内となるような範囲４００内にあることが好ましい。
【００２８】
仮想カメラの姿勢は、仮想カメラの水平方向および垂直方向の傾きを示すパラメータである。本実施形態では、仮想カメラの姿勢は一定である。
【００２９】
透視投影画像生成部３０３は、カメラパラメータに基づく複数の仮想カメラが、ユーザ視点から表示装置１１０内を撮影した場合に得られる画像、すなわち、ユーザ視点から見た三次元空間映像の透視投影画像を生成する手段である。透視投影画像生成部３０３は、例えば、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどのＡＰＩを用いて、透視投影画像を生成することができる。
【００３０】
歪み算出部３０４は、透視投影画像の歪みを算出する手段である。歪み算出部３０４が実行する歪み算出処理については、図６を参照して詳述する。
【００３１】
歪み補正部３０５は、透視投影画像の歪みに応じて透視投影画像の歪みを補正する手段である。歪み補正部３０５は、歪み算出部３０４が算出した透視投影画像の歪みを示す情報を用いて、透視投影画像内の表示面を表す歪んだメッシュの各点の座標値を算出し、当該歪んだメッシュの各点の座標値を、各点が等間隔となるような座標値に変形する射影変換を行うことにより、透視投影画像の歪みを補正する。
【００３２】
図５は、画像処理装置が実行する処理の一実施形態を示すフローチャートである。以下、図５を参照して、三次元空間映像の透視投影画像の歪みを補正する処理について説明する。
【００３３】
図５に示す処理は、ステップＳ５００から開始し、ステップＳ５０１では、変数ｍが１で初期化される。ステップＳ５０２では、ユーザ視点設定部３０１がユーザ視点を設定する。ステップＳ５０３では、パラメータ設定部３０２が、ステップＳ５０２で設定したユーザ視点における仮想カメラのカメラパラメータを設定する。
【００３４】
ステップＳ５０４では、透視投影画像生成部３０３が、補正対象となる三次元空間映像の透視投影画像を生成する。ステップＳ５０５では、歪み算出部３０４が、図６に示す歪み算出処理を実行する。ステップＳ５０６では、歪み補正部３０５が、歪み算出部３０４の算出した透視投影画像の歪みに応じて、補正対象の透視投影画像の歪みを補正する。
【００３５】
ステップＳ５０７では、変数ｍの値が、仮想カメラの個数を示すＮの値と同じであるか否か、すなわち、総ての仮想カメラについて上述した処理を実行したか否か判断される。変数ｍの値がＮの値と同一でない場合（Ｎｏ）、すなわち、総ての仮想カメラについて上述した処理を実行していない場合には、ステップＳ５０８に処理が分岐する。
【００３６】
ステップＳ５０８では、変数ｍがインクリメントされ、ステップＳ５０３に処理が戻り、次の仮想カメラのカメラパラメータを設定し、ステップＳ５０４〜ステップＳ５０７の処理を実行する。一方、変数ｍの値がＮの値と同一である場合（Ｙｅｓ）、すなわち、総ての仮想カメラについて上述した処理を実行した場合には、ステップＳ５０９で処理が終了する。
【００３７】
図６は、図５のステップＳ５０５に示す歪み算出処理のフローチャートである。以下、図６を参照して、透視投影画像の垂直方向および水平方向の歪みの算出処理について説明する。
【００３８】
図６に示す処理は、ステップＳ６００から開始し、ステップＳ６０１では、変数ｎが１で初期化される。ステップＳ６０２では、歪み算出部３０４が、図７に示すように、１の仮想カメラについて、当該仮想カメラの水平方向の画角によって規定される水平撮影範囲を算出する。ステップＳ６０３では、歪み算出部３０４は、当該水平撮影範囲を等間隔で分割する。ステップＳ６０４では、歪み算出部３０４は、数式２を用いて、図７，８に示すように、表示装置１１０の表示面の水平撮影範囲を等間隔で分割する分割点を仮想平面上に透視投影した点のｘ座標を算出する。
【００３９】
【数２】
2015219634.tif 000004
ここで、ベクトルｖは、注目する分割点のベクトルを示す。ベクトルｈ０，ｈ１は、既知の水平撮影範囲の両端のベクトルを正規化したベクトルを示す。ベクトルｄは、ベクトルｈ０，ｈ１の終点を結ぶ仮想平面上のベクトルであり、ベクトルｈ０，ｈ１によって規定される。ｔは、表示装置１１０の表示面上の分割点を仮想平面上に透視投影した分割点のベクトルｄにおける割合である。ｓは中間変数である。歪み算出部３０４は、総ての分割点についてｔを算出し、当該ｔおよびベクトルｄにより、透視投影画像の水平方向の歪みの程度を示す仮想平面上の分割点のｘ座標を算出することができる。
【００４０】
ステップＳ６０５では、歪み算出部３０４は、ユーザ視点から表示装置１１０の表示面上の分割点への奥行き方向の距離を示す水平距離Ｄを算出する。ステップＳ６０６では、歪み算出部３０４は、図８に示すように、総ての分割点について当該分割点を中点とする仮想平面上の表示面の線分であって、ベクトルｄと垂直な線分（以下、「垂直分割線」とする。）の長さＬを算出する。
【００４１】
より詳細には、歪み算出部３０４は、数式３を用いて、透視投影画像の垂直方向の歪みの程度を示す垂直分割線の長さＬを算出することができる。
【００４２】
【数３】
2015219634.tif 000005
ここで、図８に示すように、Ｌｘは、仮想平面上における求める垂直分割線の長さであり、Ｄｘは、表示面上における当該垂直分割線に含まれる分割点とユーザ視点との距離である。Ｄ０は、ベクトルｈ０の指す表示面上の点とユーザ視点との距離であり、Ｌ０は、ベクトルｈ０の指す点を含む仮想平面上の垂直分割線の長さである。
【００４３】
ステップＳ６０７では、歪み算出部３０４は、総ての分割点について、仮想平面上の垂直分割線の中点のｙ座標を算出する。より詳細には、歪み算出部３０４は、数式４を用いて、透視投影画像の垂直方向の歪みの程度を示す垂直分割線の中点のｙ座標を算出することができる。
【００４４】
【数４】
2015219634.tif 000006
ここで、図８に示すように、ｙは、仮想カメラの垂直方向の位置、すなわち、表示装置の高さ方向の中点とユーザ視点との相対値である。ｚは、表示装置の高さ方向の中点と、求める仮想平面上の垂直分割線の中点との相対値であり、求める垂直分割線の中点のｙ座標を示す。
【００４５】
ステップＳ６０８では、変数ｎの値が、仮想カメラの個数を示すＮの値と同じであるか否か、すなわち、総ての仮想カメラについて上述した処理を実行したか否か判断される。変数ｎの値がＮの値と同一でない場合（Ｎｏ）、すなわち、総ての仮想カメラについて上述した処理を実行していない場合は、ステップＳ６０９に処理が分岐する。
【００４６】
ステップＳ６０９では、変数ｎがインクリメントされ、ステップＳ６０２に処理が戻り、次の仮想カメラの水平方向の画角によって規定される水平撮影範囲を算出し、ステップＳ６０３〜ステップＳ６０８の処理を実行する。一方、変数ｎの値がＮの値と同一である場合（Ｙｅｓ）、すなわち、総ての仮想カメラについて上述した処理を実行した場合は、ステップＳ６１０で処理が終了する。
【００４７】
本実施形態では、歪み補正部３０５は、歪み算出部３０４が算出した各分割点について垂直分割線のｘ座標、ｙ座標および長さＬを用いて、歪んだメッシュの各点の座標値を算出し、当該歪んだメッシュの各点の座標値を、各点が等間隔となるような座標値に変形する射影変換を行うことにより、透視投影画像の歪みを補正する。
【００４８】
他の実施形態では、歪み補正部３０５は、表示装置１１０の表示面を模擬したメッシュを仮想平面上で生成した後、透視投影画像生成部３０３による透視投影処理に対応する透視投影行列を用いて、三次元映像座標系の仮想平面上のメッシュを二次元映像座標系のメッシュに変換し、変換後の仮想平面上のメッシュを歪みの無い格子形状に変形することにより、透視投影画像の歪みを補正してもよい。
【００４９】
図９は、ユーザ視点の高さの違いによる仮想平面上のメッシュの違いを示す図である。
【００５０】
表示装置１１０の表示面の上端および下端の中間点付近レベルに位置するユーザ視点Ａから表示装置１１０を見ると、透視投影画像９００に示すように、表示面の上下に誤差α，βが生じる。表示装置１１０の表示面の下端レベルに位置するユーザ視点Ｂから表示装置１１０を見ると、透視投影画像９１０に示すように、表示面の上側に誤差γが生じる。表示装置１１０の表示面の上端レベルに位置するユーザ視点Ｃから表示装置１１０を見ると、透視投影画像９２０に示すように、表示面の下側に誤差δが生じる。
【００５１】
歪み補正部３０５は、これらの誤差が解消するように、すなわち、表示装置１１０の表示面を表す各メッシュが格子状になるような射影変換を行う。なお、本実施形態では、仮想カメラの垂直方向の画角θｖは一定である。
【００５２】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、本実施形態の構成要件を変更又は削除し、他の構成要件を付加するなど、当業者が想到することができる範囲内で変更することができる。いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００５３】
１００…画像処理システム、１１０…表示装置、１２０…ユーザ視点検知装置
【先行技術文献】
【特許文献】
【００５４】
【特許文献１】特開２００５−９９０６４
【図１】
2015219634.tif 000007
【図２】
2015219634.tif 000008
【図３】
2015219634.tif 000009
【図４】
2015219634.tif 000010
【図５】
2015219634.tif 000011
【図６】
2015219634.tif 000012
【図７】
2015219634.tif 000013
【図８】
2015219634.tif 000014
【図９】
2015219634.tif 000015