JP2021061541A - 制御装置、制御方法、投影システム、プログラムおよび記憶媒体 - Google Patents
制御装置、制御方法、投影システム、プログラムおよび記憶媒体 Download PDFInfo
- Publication number
- JP2021061541A JP2021061541A JP2019185093A JP2019185093A JP2021061541A JP 2021061541 A JP2021061541 A JP 2021061541A JP 2019185093 A JP2019185093 A JP 2019185093A JP 2019185093 A JP2019185093 A JP 2019185093A JP 2021061541 A JP2021061541 A JP 2021061541A
- Authority
- JP
- Japan
- Prior art keywords
- projection
- image
- captured
- pattern image
- projector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Transforming Electric Information Into Light Information (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
【課題】スクリーンの揺れが発生する環境であっても、プロジェクタの投影領域を好適に補正できる。【解決手段】本発明の制御装置は、投影装置に投影画像を投影させるように制御する制御手段と、前記投影装置が前記投影画像を投影面に投影している状態で、前記投影面における前記投影装置の投影領域を含む範囲を撮像した複数の撮像画像を取得する取得手段と、前記複数の撮像画像のそれぞれに含まれる前記投影画像に基づいて、前記複数の撮像画像のうち、前記投影面の揺れがない状態に対応するときに撮像された撮像画像を決定する決定手段と、前記決定手段により決定された撮像画像に基づいて、前記投影装置の投影領域を変形するための変換パラメータを生成する生成手段と、を有する。【選択図】図10
Description
本発明は、制御装置、制御方法、投影システム、プログラムおよび記憶媒体に関する。
近年、プロジェクタを用いて様々な場所にコンテンツを投影することが一般的になっている。ここで、スクリーン(投影面)におけるプロジェクタの投影領域(投影位置)を調整する機能として、例えば、キーストーン補正機能やレンズシフト機能が用いられている。キーストーン補正機能は、プロジェクタとスクリーンの相対角に起因する台形歪みを画像処理で幾何学的に低減する機能である。レンズシフト機能は、プロジェクタの位置や角度を変えずに投影可能領域をシフトする機能である。
また、カメラを用いてプロジェクタの投影領域を所望の領域に自動で合わせるシステムが知られている。特許文献1では、プロジェクタの投影領域全体を撮像し、撮像画像を解析することで台形歪みを低減するための射影変換パラメータを算出する手法について開示している。
ここで、投影対象がスクリーン等の柔らかいものである場合、スクリーンの揺れが発生する場合がある。スクリーンの揺れは、例えば、屋外で使用する場合は風によって発生したり、屋内使用する場合は空調の風や人物の移動によって発生する。そのため、特許文献1に開示された技術では、スクリーンの揺れが大きい時点の撮像画像に基づいて投影領域を補正すると、スクリーンが揺れていない状態では、投影領域と所望の領域とのズレが生じてしまう虞がある。
そこで、本発明は、スクリーンの揺れが発生する環境であっても、プロジェクタの投影領域を好適に補正できる技術を提供することを目的とする。
本発明の一態様は、
投影装置に投影画像を投影させるように制御する制御手段と、
前記投影装置が前記投影画像を投影面に投影している状態で、前記投影面における前記投影装置の投影領域を含む範囲を撮像した複数の撮像画像を取得する取得手段と、
前記複数の撮像画像のそれぞれに含まれる前記投影画像に基づいて、前記複数の撮像画像のうち、前記投影面の揺れがない状態に対応するときに撮像された撮像画像を決定する決定手段と、
前記決定手段により決定された撮像画像に基づいて、前記投影装置の投影領域を変形するための変換パラメータを生成する生成手段と、
を有することを特徴とする制御装置である。
投影装置に投影画像を投影させるように制御する制御手段と、
前記投影装置が前記投影画像を投影面に投影している状態で、前記投影面における前記投影装置の投影領域を含む範囲を撮像した複数の撮像画像を取得する取得手段と、
前記複数の撮像画像のそれぞれに含まれる前記投影画像に基づいて、前記複数の撮像画像のうち、前記投影面の揺れがない状態に対応するときに撮像された撮像画像を決定する決定手段と、
前記決定手段により決定された撮像画像に基づいて、前記投影装置の投影領域を変形するための変換パラメータを生成する生成手段と、
を有することを特徴とする制御装置である。
本発明の一態様は、
上記の制御装置と、
複数の投影装置と、
撮像装置と、
を有することを特徴とする投影システムである。
上記の制御装置と、
複数の投影装置と、
撮像装置と、
を有することを特徴とする投影システムである。
本発明の一態様は、
投影装置に投影画像を投影させるように制御する制御ステップと、
前記投影装置が前記投影画像を投影面に投影している状態で、前記投影面における前記投影装置の投影領域を含む範囲を撮像した複数の撮像画像を取得する取得ステップと、
前記複数の撮像画像のそれぞれに含まれる前記投影画像に基づいて、前記複数の撮像画像のうち、前記投影面の揺れがない状態に対応するときに撮像された撮像画像を決定する決定ステップと、
前記決定ステップで決定された撮像画像に基づいて、前記投影装置の投影領域を変形するための変換パラメータを生成する生成ステップと、
を有することを特徴とする制御方法である。
投影装置に投影画像を投影させるように制御する制御ステップと、
前記投影装置が前記投影画像を投影面に投影している状態で、前記投影面における前記投影装置の投影領域を含む範囲を撮像した複数の撮像画像を取得する取得ステップと、
前記複数の撮像画像のそれぞれに含まれる前記投影画像に基づいて、前記複数の撮像画像のうち、前記投影面の揺れがない状態に対応するときに撮像された撮像画像を決定する決定ステップと、
前記決定ステップで決定された撮像画像に基づいて、前記投影装置の投影領域を変形するための変換パラメータを生成する生成ステップと、
を有することを特徴とする制御方法である。
本発明の一態様は、上記方法の各ステップをコンピュータに実行させるためのプログラムである。本発明の一態様は、上記方法の各ステップをコンピュータに実行させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体である。
本発明によれば、スクリーンの揺れが発生する環境であっても、プロジェクタの投影領域を好適に補正できる。
(実施形態1)
<システム構成>
図1は、本実施形態に係る投影システム10の構成の一例を示す図である。本実施形態に係る投影システム10は、プロジェクタ100、PC200およびカメラ300等を有する。プロジェクタ100は、スクリーン(投影面)に画像を投影する投影装置である。PC200は、プロジェクタ100およびカメラ300の動作を制御する投影制御装置(制御装置)である。カメラ300は、スクリーンに投影された投影画像を撮像するための撮像装置である。符号Aは、プロジェクタ100の投影領域を示す。本実施形態では、ス
クリーンに揺れがある状況であっても、投影面の揺れがない状態に対応するときに撮像された撮像画像に基づいて投影領域の補正を行うことで、投影領域と所望の領域とのずれを軽減する投影システム10について説明する。
<システム構成>
図1は、本実施形態に係る投影システム10の構成の一例を示す図である。本実施形態に係る投影システム10は、プロジェクタ100、PC200およびカメラ300等を有する。プロジェクタ100は、スクリーン(投影面)に画像を投影する投影装置である。PC200は、プロジェクタ100およびカメラ300の動作を制御する投影制御装置(制御装置)である。カメラ300は、スクリーンに投影された投影画像を撮像するための撮像装置である。符号Aは、プロジェクタ100の投影領域を示す。本実施形態では、ス
クリーンに揺れがある状況であっても、投影面の揺れがない状態に対応するときに撮像された撮像画像に基づいて投影領域の補正を行うことで、投影領域と所望の領域とのずれを軽減する投影システム10について説明する。
プロジェクタ100は、PC200と通信可能に接続される。プロジェクタ100とPC200との通信は、有線通信であっても無線通信であってもよく、また、通信プロトコルにも特に限定されない。本実施形態では一例として、プロジェクタ100およびPC200は、TCP/IPを通信プロトコルとして用いるローカルエリアネットワーク(LAN)で装置間の通信が行われるものとする。また、カメラ300は、PC200と通信可能に接続される。カメラ300とPC200との通信は、有線通信であっても無線通信であってもよく、また、通信プロトコルにも特に限定されない。本実施形態では一例として、ケーブルを用いてカメラ300とPC200の間の有線通信が行われるものとする。
図2は、投影システム10に含まれるプロジェクタ100、PC200およびカメラ300の構成例を示す図である。
≪プロジェクタ100≫
プロジェクタ100は、CPU101、RAM102、ROM103、投影部104、投影制御部105、VRAM106、操作部107、ネットワークI/F108、画像処理部109、画像入力部110等を有する。これらは内部バス111によって互いに通信可能に接続される。これらの機能部(機能ブロック)の一部または全部は、ASICやFPGAなどの専用の論理回路により実現されてもよい。なお、プロジェクタ100は、PC200から予め定められたコマンドを受信することにより、動作制御されてもよい。この場合、プロジェクタ100は、PC200から受信したコマンドに応じた動作を行い、動作の結果をPC200に送信する。
プロジェクタ100は、CPU101、RAM102、ROM103、投影部104、投影制御部105、VRAM106、操作部107、ネットワークI/F108、画像処理部109、画像入力部110等を有する。これらは内部バス111によって互いに通信可能に接続される。これらの機能部(機能ブロック)の一部または全部は、ASICやFPGAなどの専用の論理回路により実現されてもよい。なお、プロジェクタ100は、PC200から予め定められたコマンドを受信することにより、動作制御されてもよい。この場合、プロジェクタ100は、PC200から受信したコマンドに応じた動作を行い、動作の結果をPC200に送信する。
CPU101は、プログラマブルプロセッサの一例であり、例えばROM103に格納されたプログラムをRAM102に読み込んで実行することにより、プロジェクタ100の動作を実現する。
RAM102は、CPU101がプログラムを実行する際のワークメモリとして用いられる記憶部である。RAM102には、プログラムやプログラムの実行に用いる変数などが格納される。また、RAM102は、他の用途に(例えばデータバッファとして)用いられてもよい。
ROM103は、CPU101が実行するプログラム、メニュー画面などの表示に用いるためのGUIデータ、各種の設定値などが格納される記憶部である。ROM103に格納されている情報(データ)は書き換え可能であってもよい。
投影部104は、光源、投影光学系などを有し、投影制御部105から供給される投影用画像に基づいて光学像を投影する。本実施形態では、投影部104は、液晶パネルを光変調デバイスとして用いる。そして、投影部104は、光源からの光の反射率もしくは透過率の分布を投影用画像に従って制御することにより、投影用画像に基づく光学像を生成する。生成された光学像は、投影光学系によって投影面に投影される。
投影制御部105は、画像処理部109から供給される投影用画像のデータを投影部104に供給する。
VRAM106は、外部装置(例えばPCやメディアプレーヤー)から受信した投影用画像のデータを格納するためのビデオメモリである。
操作部107は、キーボタン、スイッチ、タッチパネルなどの入力デバイスを有し、ユーザからプロジェクタ100への指示を受け付ける。CPU101は操作部107に対する操作を監視しており、操作部107に対する操作を検出すると、検出した操作に応じた処理を実行する。なお、プロジェクタ100がリモートコントローラを有する場合、操作部107はリモートコントローラから受信した操作信号をCPU101に通知してもよい。
ネットワークI/F108は、プロジェクタ100を通信ネットワークに接続するインタフェースであり、サポートする通信ネットワークの規格に準拠した構成を有する。本実施形態では、プロジェクタ100は、ネットワークI/F108を通じて、PC200と共通のLANに接続される。したがって、プロジェクタ100とPC200との通信はネットワークI/F108を通じて実行される。
画像処理部109は、画像入力部110に供給され、VRAM106に格納された画像データ(映像信号)に対して様々な画像処理を必要に応じて施す。画像処理後の画像データは、投影制御部105に供給される。画像処理部109は、例えば、画像処理用のマイクロプロセッサである。なお、画像処理部109に相当する機能を、CPU101がROM103に格納されたプログラムを実行することによって実現してもよい。画像処理部109は、例えば、フレーム間引き処理、フレーム補間処理、解像度変換処理、メニュー画面などのOSDを重畳させる処理、キーストーン補正処理、エッジブレンディング処理等の画像処理を行うものとするが、画像処理はこれらに限定されない。
画像入力部110は、外部装置(本実施形態ではPC200)が出力する画像データを直接または間接的に受信するインタフェースであって、サポートする画像データに応じた構成を有する。画像入力部110は、例えば、コンポジット端子、S映像端子、D端子、コンポーネント端子、アナログRGB端子、DVI−I端子、DVI−D端子、HDMI(登録商標)端子のうち少なくともいずれか1つ以上を含むものとする。また、画像入力部110は、アナログ映像信号を受信した場合、デジタル映像信号に変換してVRAM106に格納する。
≪PC200≫
PC200は、外部ディスプレイと接続可能な汎用コンピュータ(制御装置)であって、汎用コンピュータに準じた機能構成を有する。PC200は、演算装置(プロセッサ)、メモリ、記憶装置、入出力装置等を含む情報処理装置(コンピュータ)と捉えることもできる。PC200は、CPU201、RAM202、ROM203、操作部204、表示部205、ネットワークI/F206、画像出力部207、通信部208等を有する。また、これらの機能ブロックは内部バス209によって互いに通信可能に接続される。これらの機能ブロックの一部または全部は、ASICやFPGAなどの専用の論理回路により実現されてもよい。なお、PC200は、プロジェクタ100に対して、予め定められたコマンドを送信することにより、プロジェクタ100の動作を制御することができる。また、PC200は、カメラ300に対して、予め定められたコマンドを送信することにより、カメラ300の動作を制御することができる。
PC200は、外部ディスプレイと接続可能な汎用コンピュータ(制御装置)であって、汎用コンピュータに準じた機能構成を有する。PC200は、演算装置(プロセッサ)、メモリ、記憶装置、入出力装置等を含む情報処理装置(コンピュータ)と捉えることもできる。PC200は、CPU201、RAM202、ROM203、操作部204、表示部205、ネットワークI/F206、画像出力部207、通信部208等を有する。また、これらの機能ブロックは内部バス209によって互いに通信可能に接続される。これらの機能ブロックの一部または全部は、ASICやFPGAなどの専用の論理回路により実現されてもよい。なお、PC200は、プロジェクタ100に対して、予め定められたコマンドを送信することにより、プロジェクタ100の動作を制御することができる。また、PC200は、カメラ300に対して、予め定められたコマンドを送信することにより、カメラ300の動作を制御することができる。
CPU201は、プログラマブルプロセッサの一例であり、例えばROM203に格納されたプログラム(OSやアプリケーションプログラム)をRAM202に読み込んで実行することにより、PC200の動作を実現する。
RAM202は、CPU201がプログラムを実行する際のワークメモリとして用いられる記憶部である。RAM202には、プログラムや当該プログラムの実行に用いる変数
などが格納される。また、RAM202は、他の用途に(例えばデータバッファとして)用いられてもよい。
などが格納される。また、RAM202は、他の用途に(例えばデータバッファとして)用いられてもよい。
ROM203は、CPU201が実行するプログラムや、メニュー画面などの表示に用いるためのGUIデータ、各種の設定値などが格納される記憶部である。ROM203に格納されている情報(データ)は書き換え可能であってよい。なお、PC200は、ROM203よりも大容量の記憶装置(HDDやSSD)を有してもよい。この場合、PC200は、OSやアプリケーションプログラムといった容量の大きいプログラムを記憶装置に格納してもよい。
操作部204は、キーボード、ポインティングデバイス(マウスなど)、タッチパネル、スイッチなどの入力デバイスを有し、ユーザからPC200への指示を受け付ける。なお、キーボードはソフトウェアキーボードであってもよい。CPU201は操作部204に対する操作を監視しており、操作部204に対する操作を検出すると、検出した操作に応じた処理を実行する。
表示部205は、OSやアプリケーションプログラムが提供する画面の表示を行う表示部であって、例えば液晶パネルや有機ELパネルである。なお、表示部205は外部装置であってもよい。また、表示部205はタッチを検出する機能を備えるタッチディスプレイであってもよい。なお、本実施形態では、プロジェクタ100の投影領域の調整機能を有する投影制御アプリケーションプログラムのUI画面を表示部205に表示するものとするが、後述する画像出力部207に接続された外部機器にUI画面を表示させてもよい。
ネットワークI/F206は、PC200を通信ネットワークに接続するインタフェースであり、サポートする通信ネットワークの規格に準拠した構成を有する。本実施形態においてPC200は、ネットワークI/F206を通じて、プロジェクタ100と共通のLANに接続される。したがって、PC200とプロジェクタ100との通信はネットワークI/F206を通じて実行される。
画像出力部207は、外部装置に画像データを送信するインタフェースであり、サポートする画像データに応じた構成を有する。本実施形態では、画像出力部207は、プロジェクタ100に画像データを送信する例について説明するが、映像分配器等に画像データを送信してもよい。画像出力部207は、例えば、コンポジット端子、S映像端子、D端子、コンポーネント端子、アナログRGB端子、DVI−I端子、DVI−D端子、HDMI(登録商標)端子のうち少なくとも1つ以上を含むものとする。
通信部208は、外部機器とシリアル通信等の通信を行うための通信インタフェースであって、例えば、USBインタフェースである。通信部208は、RS−232Cなど他の規格に準じた構成を有してもよい。本実施形態では、カメラ300は通信部208に接続されるものとするが、カメラ300とPC200との通信方法に特に制限はなく、両者がサポートしている任意の規格に準拠した有線通信または無線通信を行うことができる。なお、通信部208は、外部機器から撮像画像データなどを取得する取得部と捉えることもできる。
≪カメラ300≫
カメラ300は、例えばデジタルカメラ、ウェブカメラ、ネットワークカメラ等の撮像装置である。カメラ300は、プロジェクタ100またはPC200に内蔵されたカメラであってもよい。本実施形態では、カメラ300は、撮像範囲が投影面全体を含むように設置され、撮像範囲が変わらないように固定されるものとする。なお、PC200とは別
体のカメラを用いる場合は、当該カメラはPC200と通信可能に接続されるものとする。カメラ300は、PC200からの要求に応じて撮像を行い、得られた画像データをPC200に送信することができる。
カメラ300は、例えばデジタルカメラ、ウェブカメラ、ネットワークカメラ等の撮像装置である。カメラ300は、プロジェクタ100またはPC200に内蔵されたカメラであってもよい。本実施形態では、カメラ300は、撮像範囲が投影面全体を含むように設置され、撮像範囲が変わらないように固定されるものとする。なお、PC200とは別
体のカメラを用いる場合は、当該カメラはPC200と通信可能に接続されるものとする。カメラ300は、PC200からの要求に応じて撮像を行い、得られた画像データをPC200に送信することができる。
<キーストーン補正>
図3は、投影画像の台形補正の一例であるキーストーン補正を示す図である。キーストーン補正は、投影面の法線方向と投影方向(一般的には投影光学系の光軸)とのずれに応じて投影画像に生じる台形歪みを相殺するように元画像を幾何学的変換(変形、射影変換)する補正(幾何補正)である。画像の幾何学的変換は射影変換によって実現できる。例えば、CPU101は、矩形上の元画像の各頂点の移動量と移動方向に基づいて射影変換行列を決定し、画像処理部109に与えることができる。画像処理部109は、当該射影変換行列に基づいて投影画像を生成する。
図3は、投影画像の台形補正の一例であるキーストーン補正を示す図である。キーストーン補正は、投影面の法線方向と投影方向(一般的には投影光学系の光軸)とのずれに応じて投影画像に生じる台形歪みを相殺するように元画像を幾何学的変換(変形、射影変換)する補正(幾何補正)である。画像の幾何学的変換は射影変換によって実現できる。例えば、CPU101は、矩形上の元画像の各頂点の移動量と移動方向に基づいて射影変換行列を決定し、画像処理部109に与えることができる。画像処理部109は、当該射影変換行列に基づいて投影画像を生成する。
具体的には、元画像の座標値を(xs,ys)とすると、射影変換による変形後の画像の座標値(xd,yd)は以下の式(1)で表される。ここで、Mは、3×3の行列であって、元画像から変形後の画像への射影変換行列である。射影変換行列Mは、一般的に元画像の4隅の座標値と変形後の画像の4隅の座標値とに基づいて決定できる。xso、ysoは、元画像(図3の実線310で示す画像)の左上の頂点の座標値である。xdo、ydoは、変形後の画像(図3に一点鎖線320で示す画像)における、元画像の頂点(xso,yso)に対応する頂点の座標値である。
また、変形後の画像の座標値(xd,yd)から元画像の座標値(xs,ys)への変換は、以下の式(2)で表される。射影変換行列M−1は、射影変換行列Mの逆行列である。CPU101は、変形するためのパラメータとして、射影変換行列M−1とオフセット値であるxso,yso,xdo,ydoとを画像処理部109に与える。画像処理部109は、式(2)に従って変形後の座標値(xd,yd)に対応する元画像の座標(xs,ys)を求める。なお、射影変換行列M−1は、射影変換行列Mと同様に、元画像の4隅の座標値と変形後の画像の4隅の座標値とに基づいて決定できる。
ここで、式(2)で得られる元画像の座標xs,ysがいずれも整数であれば、画像処理部109は元画像の座標値(xs,ys)をそのまま変形後の画像の座標値(xd,yd)とすることができる。一方、式(2)で得られる元画像の座標が整数にならない場合、画像処理部109は、元画像の座標値(xs,ys)を、複数の周辺画素の値を用いた補間演算により求めることができる。例えばバイリニア、バイキュービックなど、公知の補間演算のいずれかを行うことができる。なお、式(2)で得られる元画像の座標が、元画像の外部の領域の座標である場合、画像処理部109は、変形後の画像の座標値(xd,yd)を黒(画素階調値0)またはユーザが設定した背景色とするとよい。このようにして、画像処理部109は、変形後の画像の全座標についての画素値を求め、変形後の画像を作成することができる。ここでは、プロジェクタ100のCPU101から画像処理部109に、射影変換行列M−1が供給されるものとしたが、CPU101は射影変換行列Mを画像処理部109に供給し、画像処理部109が射影変換行列M−1を求めてもよい。
画像処理部109は、変形後の画像の頂点の座標を、ユーザ入力に基づいて取得するとよい。例えば、画像処理部109は、投影画像の各頂点を移動させる入力をユーザから受け付けて、移動後の投影画像における各頂点の座標を、変形後の画像における各頂点の座標として取得してもよい。この際、ユーザ入力を支援するため、CPU201は、投影制御アプリケーションプログラムの機能を用いて、プロジェクタ100にテストパターン(テストパターン画像)を投影させるようにしてもよい。なお、画像処理部109は、投影画像における各頂点の移動量の入力をユーザから受け付けて、当該移動量に応じて、変形後の画像における各頂点の座標を取得してもよい。
<処理内容>
図4は、本実施形態に係る投影領域の補正(位置合わせ)処理の一例を示すフローチャートである。この処理は、ROM203に記録されたプログラムをRAM202に展開してCPU201が実行することで実現する。
図4は、本実施形態に係る投影領域の補正(位置合わせ)処理の一例を示すフローチャートである。この処理は、ROM203に記録されたプログラムをRAM202に展開してCPU201が実行することで実現する。
S401では、CPU201は、プロジェクタ100に対して、テストパターンの投影指示を行う。例えば、CPU201は、ネットワークI/F206を通じて、プロジェクタ100内に格納されているテストパターンを投影させるコマンド(信号)をプロジェクタ100に送信することによって投影指示を行う。なお、CPU201は、画像出力部207を介して、PC200内に格納されているテストパターンをプロジェクタ100に送信することによって、投影指示を行ってもよい。
S402では、CPU201は、投影面を所定時間、動画撮影して得られた撮影データを取得する。具体的には、CPU201は、カメラ300に対して、投影面を所定時間、動画撮影する指示を行う。カメラ300は、動画撮影する指示を受け付けると、投影面を所定時間、動画撮影して、得られた撮影データをPC200に送信する。CPU201は、受信した撮影データをRAM202またはROM203に格納する。カメラ300が撮影する範囲には、少なくともS401の投影指示によって投影されたテストパターンが含まれているものとする。なお、CPU201は、プロジェクタ100の投影領域を含む範囲を撮像した複数の撮像画像(撮像画像データ)を取得していると捉えることもできる。
S403では、CPU201は、S402でカメラ300から受信した撮影データに基づいて、スクリーンの揺れ周期の中心に対応する撮像画像(フレーム)を決定する。具体的には、CPU201は、まず、S402で取得した撮影データのうち、テストパターンのサイズが最大となるときの撮像画像と、当該サイズが最小となるときの撮像画像とを取得する。次に、CPU201は、撮影データのうちテストパターンのサイズが中間の値(上記の最大のサイズと最小のサイズとの平均)であるときのスクリーンの位置を算出する。そして、CPU201は、スクリーンの位置が上記の算出された位置であるときの撮像画像を、スクリーンの揺れ周期の中心に対応する撮像画像として決定する。CPU201は、決定した撮像画像をRAM202に格納する。なお、CPU201は、複数の撮像画像のうち、投影面の揺れがない状態に対応するときに撮像された撮像画像を決定していると捉えることもできる。また、CPU201は、複数の撮像画像のうち、スクリーンが静止する位置と予測される位置にあるときに撮像された撮像画像を決定していると捉えることもできる。
図5Aは、本実施形態に係るテストパターンの一例を示す図である。説明の簡単化のため、図1に示すように上辺が固定されたスクリーンを例に説明する。また、テストパターンは、格子模様であるものとする。以降の説明では、格子模様の上辺の長さをa、下辺の長さをb、高さをhとして説明を行う。
図5Bは、スクリーンの揺れを示す図である。上辺が固定されたスクリーンは、図5Bに示すように前後に微小に揺れることがある。符号P1は、揺れによってスクリーンが最も奥側(プロジェクタ100と反対側)にあるときのスクリーンの位置(下辺の位置)を示す。符号P2は、揺れによってスクリーンが最も手前側(プロジェクタ100側)にあるときのスクリーンの位置を示す。符号P0は、スクリーンの揺れ周期の中心に対応するスクリーンの位置を示す。プロジェクタ100によって投影が行われると、プロジェクタ100とスクリーンとの距離が大きいほど撮像画像におけるテストパターンのサイズ(面積)が大きくなり、当該距離が小さいほど撮像画像におけるテストパターンのサイズが小さくなる。
本実施形態では、CPU201は、RAM202またはROM203に格納された投影面の撮影データにおける各フレームのテストパターンの上辺の長さa、下辺の長さb、高さhを算出する。そして、CPU201は、上辺の長さa、下辺の長さb、高さhに基づいて、テストパターン領域の面積が最大および最小となる2つのフレームを取得する。ここで、テストパターン領域とは、テストパターンが表示される範囲を示す領域であって、例えば、図5A〜図5Eに示す例では、四角形で囲まれるテストパターン全体を示す領域である。
図5Cは、スクリーンが位置P1の場合の撮像画像におけるテストパターンを示す図である。図5Dは、スクリーンが位置P2の場合の撮像画像におけるテストパターンを示す図である。図5Eは、スクリーンが位置P0の場合の撮像画像におけるテストパターンを示す図である。図5Eに示すテストパターンは、図5Cおよび図5Dの上辺、下辺および高さの平均をとることで得られるテストパターンである。本実施形態では、CPU201は、図5Eに示すように、各辺の長さとして、図5Cの値と図5Dの値との平均値を用いて、スクリーンの揺れ周期の中心に対応する撮像画像を決定する。
なお、スクリーンの揺れ周期の中心に対応する撮像画像の決定(取得)方法は特に限定されない。例えば、CPU201は、複数の撮像画像のうち、テストパターンのサイズが、複数の撮像画像のそれぞれに含まれるテストパターンのサイズの平均値、中央値、最頻値などの他の代表値であるときに対応する撮像画像を取得してもよい。なお、テストパターンのサイズの代表値であるときに対応する撮像画像がない場合は、CPU201は、当該代表値に最も近い値であるときに対応する撮像画像を取得してもよい。また、CPU201は、テストパターンのサイズが最大となる時刻T1とテストパターンの面積が最小となる時刻T2の間の時刻(例えば、時刻(T1+T2)/2)に撮像された撮像画像を取得してもよい。また、スクリーン上端が固定される場合を例に説明したが、スクリーンの使用形態は特に限定されない。例えば、スクリーン下端が固定される場合や、スクリーンの左右が固定される場合であってもよい。なお、CPU201は、テストパターンのサイズの代わりに、テストパターンの位置に応じて撮像画像を取得してもよい。
なお、撮像画像にテストパターンが含まれていない場合や、テストパターンの面積の算出が不可能である場合には、スクリーンの揺れ周期の中心に対応する撮像画像の決定に失敗することも考えられる。この場合は、CPU201は、スクリーンの揺れ周期の中心に対応する位置の算出に失敗した旨を示す所定の警告メッセージを表示部205に表示して本処理フローを終了してもよい。ここで、テストパターンの面積の算出が不可能である場合としては、例えば、スクリーンが波打っている場合や、テストパターンが投影される領域とそれ以外の領域が外光の影響で判別不能である場合などが挙げられる。
S404では、CPU201は、S403で決定した撮像画像の座標系(撮像座標系)からプロジェクタ100の投影画像データ上の座標系であるパネル座標系に射影変換を行うための変換行列を算出する。具体的には、CPU201は、S403で決定した撮像画
像の座標系におけるテストパターンの特徴点と、プロジェクタ100のパネル座標系における特徴点とを対応付けることにより上記の変換行列を算出する。特徴点とは、例えば、テストパターンの頂点や交点である。変換行列として、例えば、3×3の行列である射影変換行列を用いることで、撮像画像上の任意の点の座標値をプロジェクタ100のパネル上の座標値に変換することができる。また、プロジェクタ100のパネル上の任意の点の座標値を撮像画像上の座標値に変換することもできる。CPU201は、算出した変換行列をRAM202に記録する。なお、S403で決定した撮像画像の座標系とパネル座標系との関連付けができればよく、2つの座標系の関係(変換関係)を示すものは上記の変換行列に限定されない。
像の座標系におけるテストパターンの特徴点と、プロジェクタ100のパネル座標系における特徴点とを対応付けることにより上記の変換行列を算出する。特徴点とは、例えば、テストパターンの頂点や交点である。変換行列として、例えば、3×3の行列である射影変換行列を用いることで、撮像画像上の任意の点の座標値をプロジェクタ100のパネル上の座標値に変換することができる。また、プロジェクタ100のパネル上の任意の点の座標値を撮像画像上の座標値に変換することもできる。CPU201は、算出した変換行列をRAM202に記録する。なお、S403で決定した撮像画像の座標系とパネル座標系との関連付けができればよく、2つの座標系の関係(変換関係)を示すものは上記の変換行列に限定されない。
S405では、CPU201は、投影領域を変形させるための目標領域(変形目標)を設定する。本実施形態では、CPU201は、S403で決定した撮像画像をRAM202から読み出して表示部205に表示させて、操作部204を介してユーザから目標領域の入力を受け付ける。そして、ユーザによって目標領域が入力され、確定されると、当該目標領域をRAM202に格納する。以下、目標領域をユーザに入力させる方法について説明する。
図6Aおよび図6Bは、本実施形態に係る目標領域設定画面(変形目標設定画面)の一例を示す図である。CPU201は、図6Aおよび図6Bに示すGUIを表示部205に表示させる。GUIは、領域600(ウィンドウ)を有し、領域600には、S403で決定した撮像画像を表示する領域601および決定ボタン606が含まれる。さらに、CPU201は、撮像画像に含まれるテストパターンの頂点を示すマーク602〜605を撮像画像に重ね合わせて領域601に表示する。ここでは、ユーザに選択されたマークを実線の丸形状(マーク602)で示し、未選択状態のマークを破線の丸形状(マーク603〜605)で示す。ユーザは、マーク602〜605をドラッグすることにより、目標領域を設定することができる。例えば、図6Aの状態が初期状態であり、マーク602を右下にドラッグすることで、目標領域を図6Bの破線で示す領域とすることができる。同様にして、ユーザは、マーク603〜605を移動させることもできる。ユーザは、目標領域の設定が終了すると、決定ボタン606を押下することで、目標領域を確定(決定)することができる。なお、S403で決定した撮像画像を用いて目標領域を設定することで、目標領域の設定中におけるスクリーンの揺れによる影響を抑制することができる。
S406では、CPU201は、撮像画像の座標系における目標領域の4つの頂点に対応するパネル座標系における4つの頂点を算出して、変換パラメータとして、ネットワークI/F206を介してプロジェクタに送信する。具体的には、CPU201は、S405で設定された目標領域の4つの頂点の座標値と、S404で算出した変換行列とを用いて、上記の変換パラメータを算出する。プロジェクタ100は、上記の変換パラメータを受信すると、画像処理部109を制御して投影画像の変形処理(キーストーン補正処理)を実施する。
<本実施形態の有利な効果>
本実施形態によれば、プロジェクタの投影画像の補正において、スクリーンの揺れが発生する環境であっても、当該揺れの影響を低減して投影領域を好適に補正することができる。
本実施形態によれば、プロジェクタの投影画像の補正において、スクリーンの揺れが発生する環境であっても、当該揺れの影響を低減して投影領域を好適に補正することができる。
(実施形態2)
<システム構成>
図7は、本実施形態に係る投影システム20の構成の一例を示す図である。本実施形態に係る投影システム20は、プロジェクタ100a〜100c(以下、特に区別する必要がない場合は、単にプロジェクタ100と称する。)、PC200およびカメラ300等
を有する。本実施形態では、投影システム20は、複数のプロジェクタ100を用いて、スクリーン(投影面)上において当該複数のプロジェクタ100の投影領域を一致させるスタック投影を行う。スタック投影を行うことによって、投影画像(光学像)のダイナミックレンジの拡大、輝度の向上、もしくは3D表示を図る。なお、図7では、プロジェクタ100a〜100cの3台を有し、それぞれの投影領域A〜Cを一致させる投影システムの例を示しているが、プロジェクタの台数は2台であってもよいし、4台以上であってもよい。以下、実施形態1と同じ構成要素については、同一の符号を付与し、説明を省略する。本実施形態では、前提条件として、プロジェクタ100a〜100cとカメラ300は固定されるものとする。
<システム構成>
図7は、本実施形態に係る投影システム20の構成の一例を示す図である。本実施形態に係る投影システム20は、プロジェクタ100a〜100c(以下、特に区別する必要がない場合は、単にプロジェクタ100と称する。)、PC200およびカメラ300等
を有する。本実施形態では、投影システム20は、複数のプロジェクタ100を用いて、スクリーン(投影面)上において当該複数のプロジェクタ100の投影領域を一致させるスタック投影を行う。スタック投影を行うことによって、投影画像(光学像)のダイナミックレンジの拡大、輝度の向上、もしくは3D表示を図る。なお、図7では、プロジェクタ100a〜100cの3台を有し、それぞれの投影領域A〜Cを一致させる投影システムの例を示しているが、プロジェクタの台数は2台であってもよいし、4台以上であってもよい。以下、実施形態1と同じ構成要素については、同一の符号を付与し、説明を省略する。本実施形態では、前提条件として、プロジェクタ100a〜100cとカメラ300は固定されるものとする。
<処理内容>
図8は、本実施形態に係る処理全体の一例を示すフローチャートである。この処理は、ROM203に記録されたプログラムをRAM202に展開してCPU201が実行することで実現する。
図8は、本実施形態に係る処理全体の一例を示すフローチャートである。この処理は、ROM203に記録されたプログラムをRAM202に展開してCPU201が実行することで実現する。
≪S801:プロジェクタの選択≫
S801では、CPU201は、PC200と通信可能なプロジェクタ100の中から投影領域の補正対象(調整対象)とするプロジェクタ100をユーザに選択させる。
S801では、CPU201は、PC200と通信可能なプロジェクタ100の中から投影領域の補正対象(調整対象)とするプロジェクタ100をユーザに選択させる。
図9Aは、プロジェクタ選択画面(ウィンドウ900)の一例を示す図である。検索ボタン901は、選択可能なプロジェクタ100を検索するための操作部である。リストビュー902は、選択可能なプロジェクタ100を表示するための領域である。初期表示の時点では、リストビュー902にはプロジェクタは表示されていないものとする。チェックボックス903は、表示されたプロジェクタ100を選択するための操作部である。Nextボタン904は、後述するカメラ選択画面へ遷移するための操作部である。
CPU201は、ユーザによって検索ボタン901が押下されたことを検出すると、選択可能なプロジェクタ100をリストビュー902に表示する。具体的には以下の処理が行われる。まず、CPU201は、ネットワークI/F206を通じて、プロジェクタ名やIPアドレスに関する情報を要求する所定のコマンドをネットワーク上にブロードキャストする。なお、要求する情報はプロジェクタ名やIPアドレスに限定されず、例えば、プロジェクタ100の解像度、キーストーン補正機能の有無、行われているキーストーン補正の変形量、タイル投影におけるエッジブレンディングの設定値などであってもよい。プロジェクタ100は、ネットワークI/F108を通じて上記のコマンドを受信すると、要求された情報を含むデータをPC200に対して送信する。CPU201は、コマンドに応答してプロジェクタ100から送信されたデータを受信し、当該データに含まれる情報を抽出してリストビュー902に表示する。なお、リストビュー902に表示されるプロジェクタの並び順は、検出された順であってもよいし、特定の規則に基づいてソートされた順であってもよい。
次に、CPU201は、ユーザの操作に応じてプロジェクタ100の選択を受け付ける。図9Aに示す例では、プロジェクタA(IPアドレスがxxx.xxx.xxx.x)は、図7に示すプロジェクタ100aである。また、プロジェクタB(IPアドレスがyyy.yyy.yyy.y)は、図7に示すプロジェクタ100bである。また、プロジェクタC(IPアドレスがzzz.zzz.zzz.z)は、図7に示すプロジェクタ100cである。また、図9Aに示す例では、プロジェクタA〜Cが選択されている。CPU201は、ユーザによってNextボタン904が押下されたことを検出するとS802に進む(ウィンドウ900の内容がカメラ選択画面に更新される)。
≪S802:カメラの選択≫
S802では、CPU201は、PC200と通信可能なカメラ300の中から後述する投影領域の補正処理に用いるカメラ300の選択をユーザから受け付ける。
S802では、CPU201は、PC200と通信可能なカメラ300の中から後述する投影領域の補正処理に用いるカメラ300の選択をユーザから受け付ける。
図9Bは、カメラ選択画面の一例を示す図である。検索ボタン905は、カメラ300を検索するための操作部である。ドロップダウンボックス906は、選択可能なカメラ300を選択するための操作部である。CPU201は、検索ボタン905に対する操作を検出すると、PC200に接続されたカメラの情報を取得し、ドロップダウンボックス906に表示するよう制御を行う。カメラの情報は、例えば、カメラの製品名や品番等が挙げられる。本実施形態では、ユーザは検索された複数のカメラの中から所望のカメラを1台選択するものとするが、投影領域の補正処理に用いるカメラを2台以上選択できてもよい。本実施形態では、図7のカメラ300を示す「Camera001」が選択されたものとする。
画像領域907は、選択されたカメラ300が撮像した画像を表示するための領域である。CPU201は、カメラ300が選択されると、カメラ300に対して撮像を指示するコマンドを送信する。そして、CPU201は、カメラ300によって撮像された撮像画像を取得して、当該撮像画像を画像領域907に表示する。画像領域907に表示される画像は、ライブビュー画像であることが望ましいが、静止画像であってもよい。ユーザは、画像領域907を観察することで、カメラ300の撮像範囲内にプロジェクタ100の投影画像を全て収めるための調整(撮像装置の設置位置の調整やズーム調整等)を容易に行うことができる。
Backボタン908は、プロジェクタ選択画面へ遷移するための操作部である。CPU201は、Backボタン908に対する操作を検出すると、図9Aに示すプロジェクタ選択画面に戻るよう制御を行う。Adjustボタン909は、カメラ300の設定を行うための操作部である。CPU201は、Adjustボタン909に対する操作を検出すると、選択されたカメラ300に対して撮像を促すコマンドを送信して、カメラ300によって撮像された撮像画像を取得する。そして、CPU201は、撮像画像を解析してカメラ300の各種パラメータ(絞り数値やシャッタースピードなど)を適切に設定する。なお、カメラ300が各種パラメータを設定してもよい。
≪S803:投影領域の補正処理≫
S803では、CPU201は、ユーザによって選択された複数のプロジェクタの投影領域の補正処理(合致させる処理;自動位置合わせ処理)を実行する。
S803では、CPU201は、ユーザによって選択された複数のプロジェクタの投影領域の補正処理(合致させる処理;自動位置合わせ処理)を実行する。
図10は、本実施形態に係る投影領域の補正処理(S803)の一例を示すフローチャートである。この処理は、ROM203に格納されたプログラムをRAM202に展開してCPU201が実行することにより実現する。
S1001では、CPU201は、後述する第2のテストパターンを投影させるプロジェクタを決定する。第2のテストパターンを投影させるプロジェクタは、例えば輝度が最も高いプロジェクタのように所定の基準によって決定されてもよいし、ユーザによって所定の1台を選択させることにより決定されてもよい。本実施形態では、第2のテストパターンを投影させるプロジェクタとして、プロジェクタ100cが決定されたものとする。
図11A〜図11Cは、プロジェクタ100によって投影されるテストパターンの一例を示す図である。本実施形態では、テストパターンとして、第1のテストパターン(第1のパターン画像)および第2のテストパターン(第2のパターン画像)を用いる。図11Aは、第1のテストパターンの一例を示す図である。図11Bは、第2のテストパターンの一例を示す図である。図11Cは、第1のテストパターンと第2のテストパターンを合
成したパターン(第3のパターン画像)を示す図である。
成したパターン(第3のパターン画像)を示す図である。
第1のテストパターンは、本実施形態では、複数色のドットを有する。また、ドットは、第1のテストパターン内の位置によって色、サイズ、配置等が異なるように設けられるものとする。これにより、PC200は、第1のテストパターンを解析することによって、あるドット(ドット群)が第1のテストパターン内のどの位置のものであるかを識別することができる。なお、ドットは単色でもよい。また、パターンはドットのみに限定されず、線もしくは図形またはこれらの組み合わせであってもよい。第2のテストパターンは、本実施形態では、投影画像の4つの頂点付近にそれぞれ1つずつ設けられたドット1101〜1104を有する。なお、第1のテストパターンおよび第2のテストパターンは上記に限定されず、第1のテストパターンと第2のテストパターンとで輝度、波長域、形状のいずれかが異なっていればよい。
S1002では、CPU201は、全てのプロジェクタ(PJ)に対して処理が完了したか否かを判断する。全てのプロジェクタに対して処理が完了している場合はS1018に進み、そうでない場合はS1003に進む。本実施形態では、本処理フローの対象のプロジェクタは、プロジェクタ100a〜100cであるものとして説明する。
S1003では、CPU201は、現在の処理対象となっているプロジェクタ(対象プロジェクタ)が、S1001で決定されたプロジェクタと同一であるか否かを判断する。同一である場合はS1006に進み、そうでない場合はS1004に進む。対象プロジェクタの決定方法は特に限定されない。本実施形態では、プロジェクタ100a、プロジェクタ100b、プロジェクタ100cの順に処理対象のプロジェクタを切り替える例について説明する。また、本実施形態では、S1001で決定されたプロジェクタ(第2のテストパターンを投影するプロジェクタ)はプロジェクタ100cである。よって、同一である場合とは、対象プロジェクタがプロジェクタ100cの場合である。また、同一でない場合とは、対象プロジェクタがプロジェクタ100aまたはプロジェクタ100bの場合である。
S1004では、CPU201は、対象プロジェクタに対して第1のテストパターンの投影を指示する。投影を指示する方法は特に限定されない。例えば、CPU201は、ネットワークI/F206を介して第1のテストパターンを投影させるコマンドを対象プロジェクタに送信してもよいし、画像出力部207を介して第1のテストパターンを対象プロジェクタに送信してもよい。
S1005では、CPU201は、S1001で決定されたプロジェクタ(所定のプロジェクタ)に対して第2のテストパターンの投影を指示する。投影を指示する方法は特に限定されない。例えば、CPU201は、ネットワークI/F206を介して第2のテストパターンを投影させるコマンドを所定のプロジェクタに送信してもよいし、画像出力部207を介して第2のテストパターンを所定のプロジェクタに送信してもよい。
S1006では、CPU201は、対象プロジェクタに対して第1のテストパターンおよび第2のテストパターンの投影(第3のパターン画像の投影)を指示する。ここで、対象プロジェクタは、S1001で決定されたプロジェクタ(所定のプロジェクタ)と同一である。投影を指示する方法は特に限定されない。例えば、CPU201は、ネットワークI/F206を介して第1のテストパターンおよび第2のテストパターンを投影させるコマンドを対象プロジェクタに送信してもよい。あるいは、CPU201は、図11Cに示すような第1のテストパターンおよび第2のテストパターンを合成したテストパターンを生成し、画像出力部207を介して、生成したテストパターンを対象プロジェクタに送信してもよい。
S1007では、CPU201は、投影面の撮像画像を取得する。具体的には、CPU201は、カメラ300に対して、投影面の撮像(撮影)を指示する信号を送信する。カメラ300は、撮影を指示する信号を受信すると投影面を撮影し、得られた撮像画像(撮影画像)をPC200に送信する。そして、CPU201は、カメラ300によって送信された撮像画像を取得する。CPU201は、取得した撮像画像をRAM202またはROM203に格納する。なお、撮像画像には、投影面上の第1のテストパターンおよび第2のテストパターンの少なくとも一方が含まれているものとする。
図12A〜図12Dは、本実施形態のテストパターンを示す図である。図12Aは、投影面上のテストパターンの一例を示す図である。図12Bは、S1007で取得した撮像画像の一例を示す図である。図12Cは、S1007で取得した撮像画像のうち第1のテストパターンのみを示す図である。図12Dは、S1007で取得した撮像画像のうち第2のテストパターンのみを示す図である。
S1008では、CPU201は、S1007で取得した撮像画像に含まれる第1のテストパターンおよび第2のテストパターンの特徴点を検出する。具体的には、CPU201は、第1のテストパターンおよび第2のテストパターンの座標(座標値)を検出する。このとき、第1のテストパターンおよび第2のテストパターンのそれぞれから特徴点の座標を少なくとも4組ずつ検出できればよい。例えば、第1のテストパターンの場合、種々の方法によって得られる4つ以上の特徴点の座標を検出すればよい。また、第2のテストパターンの場合、図11Bに示すドット1101〜1104のそれぞれの重心座標を検出すればよい。特徴点の検出方法は特に限定されないが、例えば、輝度ヒストグラムを用いる手法、相関演算を用いる手法などを用いるとよい。また、CPU201は、第1のテストパターンおよび第2のテストパターンを含む撮像画像から特徴点を検出してもよい。また、CPU201は、図12Cと図12Dに示すように撮像画像から第1のテストパターンと第2のテストパターンを一旦分離して、それぞれの画像から特徴点の検出してもよい。なお、第1のテストパターンと第2のテストパターンを分離する方法も特に限定されない。例えば、輝度情報に基づくクラスタリングなどの方法を用いてもよい。CPU201は検出した第1のテストパターンの特徴点と第2のテストパターンの特徴点とをRAM202に格納する。
S1009では、CPU201は、S1008において第1のテストパターンおよび第2のテストパターンの特徴点の検出に成功したか否かを判断する。成功した場合はS1010に進み、そうでない場合はS1011に進む。
S1010では、CPU201は、テストパターンを投影している全てのプロジェクタ(対象プロジェクタ以外のプロジェクタも含む)に対して、テストパターンを投影しないように指示を行う。その後、CPU201は、対象プロジェクタを切り替えて、上記と同様にS1002以降の処理を行う。
S1011では、CPU201は、S1008において第1のテストパターンの特徴点の検出に成功したか否かを判断する。成功した場合はS1012に進み、そうでない場合はS1013に進む。
S1012では、CPU201は、警告メッセージをアプリケーション上に表示する。例えば、CPU201は、対象プロジェクタに対して、警告メッセージを投影するよう指示する。警告メッセージの一例として「調整結果に誤差が生じる可能性があります」が挙げられる。このように、警告メッセージによって、最終的な調整結果に誤差が生じる可能性がある旨をユーザに通知できればよい。
S1013では、CPU201は、第2のテストパターンを投影するプロジェクタに対して、第2のテストパターンの投影を止めるように指示をする。
S1014では、CPU201は、S1007と同様に投影面の撮像画像を取得する。
S1015では、CPU201は、S1014で取得した撮像画像に基づいて第1のテストパターンの特徴点を検出する。
S1016では、CPU201は、S1015で第1のテストパターンの特徴点の検出に成功したか否かを判断する。成功した場合はS1012に進み、そうでない場合はS1017に進む。
S1017では、CPU201は、テストパターンを投影しているプロジェクタに対して、テストパターンの投影を止めるよう指示する。そして、CPU201は、本処理フローを終了する(異常終了)。なお、CPU201は、「自動調整に失敗しました」等の調整が失敗したことを示すメッセージをアプリケーション上に表示してもよい。
S1018では、CPU201は、RAM202に格納された撮像画像内の投影画像に基づいて、複数の撮像画像のうち、スクリーンの揺れがない状態に対応するときに撮像された撮像画像を決定(推測)する。本処理は、すべてのプロジェクタに対して上述の処理が完了されたと判断(S1002−Yes)されると実行される。本実施形態では、撮像画像内の第2のテストパターンにおける特徴点の座標値に基づいて、スクリーンの揺れ量が最も小さいときに撮像された撮像画像を決定する。例えば、第2のテストパターンが図11Bに示すドット1101〜1104を含む場合、CPU201は、当該4つのドット1101〜1104のそれぞれについて、複数の撮像画像におけるドットの重心座標の最大値と最小値に基づいて中央値を算出する。そして、CPU201は、複数の撮像画像において、座標値が上記の中央値付近であるドットを最も多く含む撮像画像を、上記のスクリーンの揺れ量が最も小さいときに撮像された撮像画像として決定することができる。なお、撮像画像の決定方法は上記に限定されない。例えば、CPU201は、複数回撮影した撮像画像群の中から、ユーザによって一つの画像を選択させて、当該選択された画像を最もスクリーンの揺れ量が最も小さい時点に撮影された撮像画像として決定してもよい。なお、CPU201は、第2のテストパターン(例えば、ドットの座標値の最大値と最小値の差分)に基づいて、スクリーンに所定量以上の揺れが発生していることを検出した場合は、警告メッセージを表示部205に表示してもよい。
S1019では、CPU201は、射影変換行列を算出する。具体的には、CPU201は、プロジェクタの座標系(パネル座標系)からカメラの座標系に変換するための射影変換行列(例えば、後述のMa〜Mc)を算出する。また、CPU201は、カメラの座標系における複数のプロジェクタの投影領域を、S1018で決定した撮像画像内の投影領域に変形するための射影変換行列(例えば、後述のM12,M32)を算出する。
S1020では、CPU201は、各プロジェクタの変換パラメータを算出する。具体的には、まず、CPU201は、カメラの座標系(共通座標系)におけるスタック投影の目標領域を決定する。目標領域の決定方法は特に限定されないが、例えば、GUIを用いてユーザに指定された領域を目標領域として決定してもよいし、複数のプロジェクタ100のうちいずれか1台のプロジェクタ100の投影領域を目標領域として決定してもよい。次に、CPU201は、決定したカメラの座標系における目標領域を各プロジェクタ100のパネル座標系における目標領域に射影する。そして、CPU201は、プロジェクタ100ごとに、各プロジェクタ100のパネル座標系における全領域を当該パネル座標
系における目標領域に変換(変形)するための射影変換行列(変換パラメータ)を算出する。
系における目標領域に変換(変形)するための射影変換行列(変換パラメータ)を算出する。
S1021では、CPU201は、S1020で算出した各プロジェクタ100の変換パラメータをネットワークI/F206を介して対応するプロジェクタに送信する。なお、各プロジェクタ100は、上記の変換パラメータを受信すると、画像処理部109を制御して、当該変換パラメータに基づく変形処理を実行する。なお、第2のテストパターンの特徴点の抽出に失敗した場合に、CPU201は、カメラの座標系における複数のプロジェクタの投影領域からS1018で決定した撮像画像内の投影領域に変形するための射影変換行列の算出を行わないものとする。
図13は、S1007の撮像処理の際に、プロジェクタ100a〜100cが投影している画像(テストパターン)の一例を示す図である。図13に示す例では、2回目に撮影された撮像画像が、スクリーンの揺れ量が最も小さいときに撮像された撮像画像であることを示している。この場合、S1019では、CPU201は、第2のテストパターンに含まれる4つの特徴点に基づいて、撮影1回目および撮影3回目の座標系を変換するための射影変換行列M12,M32を算出する。なお、上述のように、本実施形態では、第2のテストパターンを投影するプロジェクタ(図13の例ではプロジェクタ100c)が1台となるように制御している。これは、複数のプロジェクタが第2のテストパターンを投影すると、第2のテストパターンの特徴点の検出が困難となるためである。
図14は、S1007で複数回(3回)の撮像処理が行われる場合に、プロジェクタ100a〜100cが投影している画像(テストパターン)の一例を示す図である。撮像処理の回数が多い程、様々なスクリーン揺れに対応することができるが、撮像処理の回数と実行時間とはトレードオフの関係である。撮像処理の回数(撮像枚数)は、あらかじめ決められた所定の回数でもよいし、ユーザによって変更可能としてもよい。なお、S1007で複数回の撮像処理が行われる場合には、CPU201は、当該複数回の撮像処理によって得た撮像画像のうちいずれか1つを用いるとよい。例えば、CPU201は、撮影5回目がスクリーンの揺れ量が最も小さいとすると、撮影1回目〜3回目の中のいずれか、および撮影7回目〜撮影9回目の中のいずれかの座標系を変換するための射影変換行列を算出するとよい。
図15は、S1019で算出された射影変換行列を示す図である。射影変換行列M12,M32は、カメラの座標系における複数のプロジェクタの投影領域を、S1018で決定した撮像画像内の投影領域に変形するための射影変換行列である。例えば、撮影1回目の座標系から撮影2回目の座標系に射影するための射影変換行列M12は、撮影1回目の画像と撮影2回目の画像から得られた第2のテストパターンの特徴点の組に基づいて算出される。また、射影変換行列Ma〜Mcは、それぞれプロジェクタの座標系(パネル座標系)からカメラの座標系に射影変換するための射影変換行列である。射影変換行列Ma〜Mcは、第1のテストパターンの少なくとも4つ以上の特徴点に基づいて算出される。例えば、射影変換行列Maは、プロジェクタ100aのパネル座標系における第1のテストパターンの特徴点の組と撮影1回目の撮像画像内の(プロジェクタ100によって投影された)第1のテストパターンの特徴点の組とに基づいて算出される。これらの射影変換行列M12,M32,Ma〜Mcを用いることで、各プロジェクタのパネル座標系をカメラの座標系に変換することができる。例えば、プロジェクタ100aのパネル座標系におけるある座標をカメラの座標系における座標に変換するためには、射影変換行列MaおよびM12を順に適用すればよい。また、例えば、カメラの座標系における目標領域をプロジェクタ100aのパネル座標系における目標領域に射影するには、射影変換行列M12の逆行列と、射影変換行列Maの逆行列を順に適用すればよい。なお、カメラの座標系は、スクリーン面の座標系が射影されたものであるため、本実施形態では、撮像座標系を共通
座標系としているが、S1018で決定した撮像画像内のスクリーン座標系を共通座標系として変換パラメータを算出してもよい。
座標系としているが、S1018で決定した撮像画像内のスクリーン座標系を共通座標系として変換パラメータを算出してもよい。
なお、上述の例では、第2のテストパターンの一例として4つの特徴点を用いる例について説明したが、5つ以上の特徴点を用いてもよい。例えば、図16に示すように第2のテストパターンとして、複数の特徴点を格子状に配置し、格子毎に射影変換行列Mp,Mqを算出することで、スクリーンの部分的な揺れに対しても対応することができる。
<本実施形態の有利な効果>
本実施形態を適用することによって、複数台のプロジェクタの投影領域を補正する場合において、変換パラメータを決定するための座標系を特定の座標系に統一することができるため、スクリーン揺れが発生した場合の計算誤差を低減することができる。
本実施形態を適用することによって、複数台のプロジェクタの投影領域を補正する場合において、変換パラメータを決定するための座標系を特定の座標系に統一することができるため、スクリーン揺れが発生した場合の計算誤差を低減することができる。
また、第1または第2のテストパターンの特徴点の検出に失敗した場合でも、S1009〜S1017の処理を行うことによって、他のプロジェクタの調整を継続することができる。また、S1012で警告メッセージを表示部205に表示することで、対象プロジェクタの調整結果にスクリーン揺れ対策が施されていないことをユーザに通知できる。
<変形例>
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。また、上述の実施形態で説明した構成要素の全てが本発明に必須とは限らない。上述の実施形態における個々の機能ブロックは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせによって実現することができる。また、1つの機能ブロックは複数のハードウェアで実現されてもよい。また、1つのハードウェアが複数の機能ブロックを実現してもよい。また、1つ以上の機能ブロックは、1つ以上のプログラマブルプロセッサ(CPU、MPUなど)がメモリに読み込まれたコンピュータプログラムを実行することにより実現されてもよい。1つ以上の機能ブロックをハードウェアで実現する場合、ディスクリート回路や、FPGA、ASICといった集積回路によって実現することができる。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。また、上述の実施形態で説明した構成要素の全てが本発明に必須とは限らない。上述の実施形態における個々の機能ブロックは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせによって実現することができる。また、1つの機能ブロックは複数のハードウェアで実現されてもよい。また、1つのハードウェアが複数の機能ブロックを実現してもよい。また、1つ以上の機能ブロックは、1つ以上のプログラマブルプロセッサ(CPU、MPUなど)がメモリに読み込まれたコンピュータプログラムを実行することにより実現されてもよい。1つ以上の機能ブロックをハードウェアで実現する場合、ディスクリート回路や、FPGA、ASICといった集積回路によって実現することができる。
上述の実施形態では、スタンドアロンタイプの投影装置(プロジェクタ)に本発明を適用した構成について説明した。しかし、上記に限定されず、例えばパーソナルコンピュータ、スマートフォン、タブレット端末、ゲーム機、デジタル(ビデオ)カメラといった一般的な電子機器に内蔵されたプロジェクタにも本発明を適用可能である。
上述の実施形態では、制御装置としてPCを用いる例について説明したが、制御装置としてスマートフォンやタブレットなど、その他の情報処理装置を用いてもよい。
上述の実施形態では、PCやプロジェクタと別体のカメラを用いる例について説明したが、PCやプロジェクタに内蔵されたカメラを用いてもよい。
上述の実施形態では、GUIを示す図を用いたが、これらは一例であり、GUIのレイアウトやコンポーネントの種類、画面遷移などは本発明の要旨を逸脱しない範囲で、省略、置き換え、変更を行うことができる。
(その他)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100:プロジェクタ 105:投影制御部
200:PC 201:CPU 207:画像入力部
300:カメラ
200:PC 201:CPU 207:画像入力部
300:カメラ
Claims (17)
- 投影装置に投影画像を投影させるように制御する制御手段と、
前記投影装置が前記投影画像を投影面に投影している状態で、前記投影面における前記投影装置の投影領域を含む範囲を撮像した複数の撮像画像を取得する取得手段と、
前記複数の撮像画像のそれぞれに含まれる前記投影画像に基づいて、前記複数の撮像画像のうち、前記投影面の揺れがない状態に対応するときに撮像された撮像画像を決定する決定手段と、
前記決定手段により決定された撮像画像に基づいて、前記投影装置の投影領域を変形するための変換パラメータを生成する生成手段と、
を有することを特徴とする制御装置。 - 前記投影画像は、所定のパターン画像を含み、
前記決定手段は、前記所定のパターン画像のサイズまたは座標値に基づいて、前記複数の撮像画像のうち、前記投影面の揺れがない状態に対応するときに撮像された撮像画像を決定する、
ことを特徴とする請求項1に記載の制御装置。 - 前記決定手段は、前記複数の撮像画像のうち、前記所定のパターン画像のサイズが前記複数の撮像画像のそれぞれに含まれる前記所定のパターン画像のサイズの平均値、中央値および最頻値のいずれかの値に最も近い値である撮像画像を、前記投影面の揺れがない状態に対応するときに撮像された撮像画像として決定する、
ことを特徴とする請求項2に記載の制御装置。 - 前記決定手段は、前記複数の撮像画像のうち、前記所定のパターン画像の座標値が前記複数の撮像画像のそれぞれに含まれる前記所定のパターン画像の座標値の平均値、中央値および最頻値のいずれかの値に最も近い値である撮像画像を、前記投影面の揺れがない状態に対応するときに撮像された撮像画像として決定する、
ことを特徴とする請求項2に記載の制御装置。 - 前記制御手段は、複数の投影装置に1台ずつ第1のパターン画像を投影させるとともに、前記複数の投影装置のうち所定の投影装置に前記第1のパターン画像とは異なる第2のパターン画像を投影させるように制御し、
前記取得手段は、前記第1のパターン画像および前記第2のパターン画像が投影されている状態で、前記投影面を撮像した撮像画像を、前記投影装置ごとに取得し、
前記決定手段は、前記取得手段によって取得された複数の撮像画像のそれぞれに含まれる前記第2のパターン画像に基づいて、前記投影面の揺れがない状態に対応するときに撮像された撮像画像を決定し、
前記生成手段は、前記取得手段によって取得された複数の撮像画像のそれぞれに含まれる前記第1のパターン画像に基づいて求められる第1のパラメータと、前記決定手段によって決定された撮像画像および他の撮像画像の前記第2のパターン画像に基づいて求められる第2のパラメータとに基づいて、前記投影装置の投影領域を変形するための変換パラメータを生成する、
ことを特徴とする請求項1から4のいずれか一項に記載の制御装置。 - 前記生成手段は、前記第1のパターン画像に基づいて、各投影装置の投影画像データ上の座標系であるパネル座標系から前記撮像画像の座標系に射影変換するための第1のパラメータを前記投影装置ごとに算出する、
ことを特徴とする請求項5に記載の制御装置。 - 前記生成手段は、前記第2のパターン画像に基づいて、前記撮像画像の座標系で各投影装置の投影領域を前記決定手段によって決定された撮像画像における投影領域に射影変換するための第2のパラメータを算出する、
ことを特徴とする請求項5または6に記載の制御装置。 - 前記制御手段は、前記第1のパターン画像の検出が成功し、前記第2のパターン画像の検出が失敗した場合に、所定の警告メッセージを表示手段に表示するように制御する、
ことを特徴とする請求項5から7のいずれか一項に記載の制御装置。 - 前記制御手段は、前記第1のパターン画像および前記第2のパターン画像の検出に失敗した場合に、前記第2のパターン画像の投影を止め、前記第1のパターン画像のみを投影させるように制御する、
ことを特徴とする請求項5から8のいずれか一項に記載の制御装置。 - 前記制御手段は、前記第1のパターン画像のみを投影しているときに撮像された撮像画像からの前記第1のパターン画像の検出が失敗した場合に、所定のメッセージを表示手段に表示するように制御する、
ことを特徴とする請求項9に記載の制御装置。 - 前記制御手段は、前記撮像画像に含まれる前記第2のパターン画像に基づいて、前記投影面に所定量以上の揺れが発生していることが検出される場合に、所定の警告メッセージを表示手段に表示するように制御する、
ことを特徴とする請求項5から10のいずれか一項に記載の制御装置。 - 前記制御装置は、前記第1のパターン画像を投影する投影装置と前記第2のパターン画像を投影する投影装置が同一である場合に、前記第1のパターン画像と前記第2のパターン画像とを合成した第3のパターン画像を生成し、前記所定の投影装置に前記第3のパターン画像を投影するように制御する、
ことを特徴とする請求項5から11のいずれか一項に記載の制御装置。 - 前記制御手段は、前記複数の撮像画像のうち、前記投影面の揺れがない状態に対応するときに撮像された撮像画像を決定できなかった場合に、所定の警告メッセージを表示手段に表示するように制御する、
ことを特徴とする請求項1から12のいずれか一項に記載の制御装置。 - 請求項1から13のいずれか一項に記載の制御装置と、
複数の投影装置と、
撮像装置と、
を有することを特徴とする投影システム。 - 投影装置に投影画像を投影させるように制御する制御ステップと、
前記投影装置が前記投影画像を投影面に投影している状態で、前記投影面における前記投影装置の投影領域を含む範囲を撮像した複数の撮像画像を取得する取得ステップと、
前記複数の撮像画像のそれぞれに含まれる前記投影画像に基づいて、前記複数の撮像画像のうち、前記投影面の揺れがない状態に対応するときに撮像された撮像画像を決定する決定ステップと、
前記決定ステップで決定された撮像画像に基づいて、前記投影装置の投影領域を変形するための変換パラメータを生成する生成ステップと、
を有することを特徴とする制御方法。 - 請求項15に記載の制御方法の各ステップをコンピュータに実行させるためのプログラム。
- 請求項15に記載の制御方法の各ステップをコンピュータに実行させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019185093A JP2021061541A (ja) | 2019-10-08 | 2019-10-08 | 制御装置、制御方法、投影システム、プログラムおよび記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019185093A JP2021061541A (ja) | 2019-10-08 | 2019-10-08 | 制御装置、制御方法、投影システム、プログラムおよび記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021061541A true JP2021061541A (ja) | 2021-04-15 |
Family
ID=75380553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019185093A Pending JP2021061541A (ja) | 2019-10-08 | 2019-10-08 | 制御装置、制御方法、投影システム、プログラムおよび記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021061541A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314689A (zh) * | 2022-08-05 | 2022-11-08 | 深圳海翼智新科技有限公司 | 投影校正方法、装置、投影仪和计算机程序产品 |
CN115704737A (zh) * | 2021-08-03 | 2023-02-17 | 宜宾市极米光电有限公司 | 一种投影仪投影画面晃动量测量方法及相关装置 |
-
2019
- 2019-10-08 JP JP2019185093A patent/JP2021061541A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115704737A (zh) * | 2021-08-03 | 2023-02-17 | 宜宾市极米光电有限公司 | 一种投影仪投影画面晃动量测量方法及相关装置 |
CN115704737B (zh) * | 2021-08-03 | 2024-04-23 | 宜宾市极米光电有限公司 | 一种投影仪投影画面晃动量测量方法及相关装置 |
CN115314689A (zh) * | 2022-08-05 | 2022-11-08 | 深圳海翼智新科技有限公司 | 投影校正方法、装置、投影仪和计算机程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10663844B2 (en) | Projection control apparatus and control method thereof, and projection system | |
US9818377B2 (en) | Projection system, image processing apparatus, and correction method | |
US10297005B2 (en) | Method for generating panoramic image | |
JP3844076B2 (ja) | 画像処理システム、プロジェクタ、プログラム、情報記憶媒体および画像処理方法 | |
JP6525570B2 (ja) | 画像表示システム、制御装置、制御方法及びプログラム | |
JP5604909B2 (ja) | 補正情報算出装置、画像処理装置、画像表示システム、および画像補正方法 | |
JP5092459B2 (ja) | 遠隔指示システム及び遠隔指示システム用のプログラム | |
US7911500B2 (en) | Image processing device, computer readable recording medium, and image processing method | |
CN106605195B (zh) | 通信设备和通信设备的控制方法 | |
JP6645687B2 (ja) | 表示装置及び制御方法 | |
JP5870586B2 (ja) | プロジェクタ制御装置、表示装置及びプログラム。 | |
US10754237B2 (en) | Control apparatus, control method, projection system, and storage medium | |
JP2020088691A (ja) | 投写制御装置およびその制御方法、ならびに投写システム | |
US11025874B2 (en) | Image processing apparatus, control method, and non-transitory computer-readable storage medium | |
JP2020178248A (ja) | 投影制御装置、投影制御方法、投影システム、プログラム、記憶媒体 | |
JP2016085380A (ja) | 制御装置、制御方法、及び、プログラム | |
US20140139751A1 (en) | Projection apparatus, projection method and computer-readable storage medium for correcting a projection state being projected onto curved surface | |
JP2019207392A (ja) | 制御装置、制御方法、投影システム、プログラム、記憶媒体 | |
JP2021061541A (ja) | 制御装置、制御方法、投影システム、プログラムおよび記憶媒体 | |
JP2019204034A (ja) | 投影制御装置、その制御方法、投影システム、プログラムおよび記憶媒体 | |
JP2008187362A (ja) | プロジェクタおよび投写画像調整方法 | |
JP2020194998A (ja) | 制御装置、投影システム、制御方法、プログラムおよび記憶媒体 | |
JP2020178221A (ja) | 投影制御装置、投影制御方法およびプログラム | |
JP2018125819A (ja) | 制御装置、制御方法、プログラム及び記憶媒体 | |
JP7096664B2 (ja) | 投写制御装置およびその制御方法、ならびに投写システム |