IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ カシオ計算機株式会社の特許一覧

特開2024-32039制御装置、投影システム、投影領域決定方法及びプログラム
<>
  • 特開-制御装置、投影システム、投影領域決定方法及びプログラム 図1
  • 特開-制御装置、投影システム、投影領域決定方法及びプログラム 図2
  • 特開-制御装置、投影システム、投影領域決定方法及びプログラム 図3
  • 特開-制御装置、投影システム、投影領域決定方法及びプログラム 図4
  • 特開-制御装置、投影システム、投影領域決定方法及びプログラム 図5
  • 特開-制御装置、投影システム、投影領域決定方法及びプログラム 図6
  • 特開-制御装置、投影システム、投影領域決定方法及びプログラム 図7
  • 特開-制御装置、投影システム、投影領域決定方法及びプログラム 図8
  • 特開-制御装置、投影システム、投影領域決定方法及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024032039
(43)【公開日】2024-03-12
(54)【発明の名称】制御装置、投影システム、投影領域決定方法及びプログラム
(51)【国際特許分類】
   H04N 5/74 20060101AFI20240305BHJP
   G06T 7/00 20170101ALI20240305BHJP
   G06V 20/64 20220101ALI20240305BHJP
   G06V 40/20 20220101ALI20240305BHJP
   G06T 7/20 20170101ALI20240305BHJP
   G03B 21/00 20060101ALI20240305BHJP
【FI】
H04N5/74 Z
G06T7/00 C
G06V20/64
G06V40/20
G06T7/20 300A
G03B21/00 D
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022135467
(22)【出願日】2022-08-29
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】110001254
【氏名又は名称】弁理士法人光陽国際特許事務所
(72)【発明者】
【氏名】齋藤 嘉明
【テーマコード(参考)】
2K203
5C058
5L096
【Fターム(参考)】
2K203FB07
2K203GB42
2K203GB62
2K203KA56
2K203MA23
5C058BA35
5C058BB25
5C058EA02
5C058EA27
5L096AA09
5L096DA05
5L096FA66
5L096FA70
5L096HA02
(57)【要約】
【課題】投影面となる平面領域内の適切な位置に画像が投影されるようにする。
【解決手段】投影システムは、制御装置と、プロジェクタと、深度カメラを備える。制御装置のCPUは、深度カメラより取得された深度画像から平面領域を検出し、検出した平面領域のうちプロジェクタにより画像を投影する投影面となる平面領域を複数の領域に分割し、複数の領域の中から予め定められた条件に基づいてプロジェクタにより画像を投影する投影領域を決定する。プロジェクタは、決定された投影領域に画像を投影する。
【選択図】図3
【特許請求の範囲】
【請求項1】
画像を投影する投影部を制御する制御装置であって、
前記投影部の投影方向における物体の画像を画像取得部から取得し、
取得した前記画像から平面領域を検出し、
検出した前記平面領域のうち前記投影部により画像を投影する投影面となる平面領域を複数の領域に分割し、
前記複数の領域の中から予め定められた条件に基づいて前記投影部により画像を投影する投影領域を決定する、
制御部を備える制御装置。
【請求項2】
前記制御部は、前記画像取得部から取得した前記画像に基づいて、前記投影面となる平面領域の外側の輪郭に囲まれた領域内に、前記平面領域と同一平面でない障害物領域が含まれているか否かを判断し、障害物領域が含まれていると判断した場合に、前記平面領域と前記障害物領域との位置関係に基づいて、前記平面領域を複数の領域に分割する、請求項1に記載の制御装置。
【請求項3】
前記制御部は、前記平面領域を、前記画像取得部から取得した前記画像において前記障害物領域を囲んだ矩形領域の各辺に平行な直線と、前記平面領域の外側の輪郭の各辺に平行な直線とにより区切られた複数の領域に分割する、請求項2に記載の制御装置。
【請求項4】
前記制御部は、前記複数の領域のそれぞれの面積、前記複数の領域のぞれぞれの前記平面領域の中心からの距離、前記複数の領域のそれぞれで確保できる、投影対象の画像と同じアスペクト比の矩形の最大サイズ、の少なくとも1つに基づいて、前記複数の領域の中から前記投影領域を決定する、請求項1に記載の制御装置。
【請求項5】
前記制御部は、前記画像取得部から取得した前記画像から異なる複数の平面領域が検出された場合、予め定められた条件に基づいて、前記投影面となる平面領域を決定する請求項1に記載の制御装置。
【請求項6】
前記制御部は、前記投影領域への投影中に前記画像取得部により前記画像を取得させ、取得された前記画像に基づき前記投影部と前記投影領域との間に障害物が検出されたか否かを判断し、障害物が検出されたと判断した場合に、前記投影領域を異なる領域に切り替える、請求項1に記載の制御装置。
【請求項7】
前記制御部は、前記投影領域への投影中に前記画像取得部により前記画像を取得させ、取得された前記画像を解析することにより前記複数の領域における前記投影領域とは異なる領域を指定するジェスチャーを認識した場合、前記投影領域を前記ジェスチャーにより指定された領域に切り替える、請求項1に記載の制御装置。
【請求項8】
画像を投影する投影部と、
前記投影部の投影方向における物体の画像を取得する画像取得部と、
制御部と、を備え、
前記制御部は、
前記画像取得部により取得された前記画像から平面領域を検出し、検出した前記平面領域のうち前記投影部により画像を投影する投影面となる平面領域を複数の領域に分割し、前記複数の領域の中から予め定められた条件に基づいて前記投影部により画像を投影する投影領域を決定し、
前記投影部は、決定された前記投影領域に画像を投影する、投影システム。
【請求項9】
画像を投影する投影部を制御するコンピュータが、
前記投影部の投影方向における物体の画像を画像取得部から取得し、
取得した前記画像から平面領域を検出し、
検出した前記平面領域のうち前記投影部により画像を投影する投影面となる平面領域を複数の領域に分割し、
前記複数の領域の中から予め定められた条件に基づいて前記投影部により画像を投影する投影領域を決定する、投影領域決定方法。
【請求項10】
画像を投影する投影部を制御するコンピュータを、
前記投影部の投影方向における物体の画像を画像取得部から取得し、取得した前記画像から平面領域を検出し、検出した前記平面領域のうち前記投影部により画像を投影する投影面となる平面領域を複数の領域に分割し、前記複数の領域の中から予め定められた条件に基づいて前記投影部により画像を投影する投影領域を決定する制御部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、投影システム、投影領域決定方法及びプログラムに関する。
【背景技術】
【0002】
従来、三次元情報を取得し、取得した三次元情報に基づき平面を探索し、探索された平面のうち、他の平面よりも広い平面を投影面に決定する技術が開示されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2016/125359号
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の技術では、複数の平面領域が存在する場合に、どの平面領域を投影面とするかを決定することができる。しかし、投影しようとする画像が投影面として決定された平面領域内の適切な位置に投影されず、ユーザがプロジェクタの位置や投影方向を移動させるなどの調整が必要な場合があった。
【0005】
本発明は、上記の問題点を鑑みてなされたものであり、投影面となる平面領域内の適切な位置に画像が投影されるようにすることである。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明に係る制御装置は、
画像を投影する投影部を制御する制御装置であって、
前記投影部の投影方向における物体の画像を画像取得部から取得し、
取得した前記画像から平面領域を検出し、検出した前記平面領域のうち前記投影部により画像を投影する投影面となる平面領域を複数の領域に分割し、前記複数の領域の中から予め定められた条件に基づいて前記投影部により画像を投影する投影領域を決定する、
制御部を備える。
【発明の効果】
【0007】
本発明によれば、投影面となる平面領域内の適切な位置に画像を投影することが可能となる。
【図面の簡単な説明】
【0008】
図1】投影システムの全体構成例を示す模式図である。
図2】投影システムの機能構成を示すブロック図である。
図3】制御装置のCPUにより実行される投影制御処理の流れを示すフローチャートである。
図4】テーブル上にフォーク、お皿、ナイフが並んでいる様子を真上から撮影した深度画像を模式的に示す図である。
図5図4の深度画像のテーブルを分割する例について説明するための図である。
図6】投影対象の画像のホモグラフィ変換を説明するための図である。
図7】投影領域の切り替え方法を説明するための図である。
図8】投影領域の切り替え方法を説明するための図である。
図9】投影領域の切り替え方法の他の例を説明するための図である。
【発明を実施するための形態】
【0009】
以下に、本発明を実施するための形態について、図面を用いて説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい種々の限定が付されている。そのため、本発明の技術的範囲を以下の実施形態及び図示例に限定するものではない。
【0010】
<投影システムの概要>
図1は、本実施形態の投影システム1の構成を示す模式図である。
図1に示すように、投影システム1は、制御装置10と、プロジェクタ(投影部)20と、深度カメラ(画像取得部)30と、を備える。制御装置10は、無線又は有線によりプロジェクタ20及び深度カメラ30と通信接続されており、制御装置10と、プロジェクタ20及び深度カメラ30との間で、制御信号や画像データ等のデータの送受信を行うことが可能となっている。
【0011】
本実施形態の投影システム1において、プロジェクタ20及び深度カメラ30は、テーブル40の上に固定されたアーム50に取り付けられている。投影システム1は、例えば、テーブル40の上で作業者が作業を行う場合に、テーブル40を投影面として、作業手順などを示す画像をプロジェクタ20から投影することで、作業者が作業手順を見ながら作業を行えるようにするシステムである。プロジェクタ20は、テーブル40上に画像を投影可能な向きとなるように位置及び方向が調整されている。また、深度カメラ30は、プロジェクタ20の投影方向と同方向の深度画像を取得可能なように位置及び方向が調整されている。すなわち、プロジェクタ20と深度カメラ30のx軸(撮影範囲の横方向)、y軸(撮影範囲の縦方向)、z軸(奥行き方向)は平行の関係であり、プロジェクタ20と深度カメラ30の位置関係(距離)は予め定められている。
【0012】
なお、本実施形態では、投影システム1の制御装置10と、プロジェクタ20と、深度カメラ30と、がそれぞれ独立した装置である場合を例として説明するが、本発明の投影システムは、これらの装置が一体となって1つの装置として構成されていてもよい。または、制御装置10とプロジェクタ20が一体となって1つの装置として構成され、深度カメラ30が別体となっていてもよい。例えば、プロジェクタ20の筐体内に制御装置10が設けられていてもよい。または、深度カメラ30とプロジェクタ20が一体となって1つの装置として構成され、制御装置10が別体となっていてもよい。または、制御装置10と深度カメラ30が一体となって1つの装置として構成され、プロジェクタ20が別体となっていてもよい。
【0013】
<投影システムの機能構成>
図2は、投影システム1を構成する制御装置10、プロジェクタ20及び深度カメラ30の機能構成を示すブロック図である。
【0014】
制御装置10は、CPU11(Central Processing Unit)と、RAM(Random Access Memory)12と、記憶部13と、通信部14などを備え、これらの各部はバス15により接続されている。
【0015】
CPU11は、記憶部13に記憶されているプログラム131を読み出して実行し、各種演算処理を行うことで、制御装置10の各部の動作を制御するプロセッサである。本実施形態では、CPU11が「制御部」及び「コンピュータ」に相当する。なお、制御部は、複数のプロセッサ(例えば複数のCPU)を有していてもよく、CPU11が実行する複数の処理を、当該複数のプロセッサが実行してもよい。この場合には、複数のプロセッサが「制御部」に相当する。この場合において、複数のプロセッサが共通の処理に関与してもよいし、あるいは、複数のプロセッサが独立に異なる処理を並列に実行してもよい。
【0016】
RAM12は、CPU11に作業用のメモリ空間を提供し、一時データを記憶する。
【0017】
記憶部13は、コンピュータとしてのCPU11により読み取り可能な非一時的な記録媒体であり、プログラム131及び各種データを記憶する。記憶部13は、例えばフラッシュメモリ等の不揮発性メモリを含む。プログラム131は、後述する投影制御処理を実行するためのプログラムを含み、コンピュータが読み取り可能なプログラムコードの形態で記憶部13に格納されている。記憶部13に記憶されるデータとしては、プロジェクタ20による投影面への投影対象となる画像の画像データ、深度カメラ30から受信した深度画像(距離画像)の画像データなどがある。投影面への投影対象となる画像は、プロジェクタ20の表示素子242の数(画素数)と同じ画素数を有している。
【0018】
通信部14は、予め定められた通信規格に従った通信動作を行う。通信部14は、この通信動作により、プロジェクタ20や深度カメラ30との間で無線又は有線によるデータの送受信を行う。また、通信部14は、プロジェクタ20及び深度カメラ30以外の外部機器との間でデータの送受信を行うことが可能であってもよい。
【0019】
プロジェクタ20は、CPU21と、RAM22と、記憶部23と、投影部24と、通信部25などを備え、これらの各部はバス26により接続されている。
【0020】
CPU21は、記憶部23に記憶されているプログラム231を読み出して実行し、各種演算処理を行うことで、プロジェクタ20の各部の動作を制御するプロセッサである。プロジェクタ20は、複数のプロセッサ(例えば複数のCPU)を有していてもよく、CPU21が実行する複数の処理を、当該複数のプロセッサが実行してもよい。この場合において、複数のプロセッサが共通の処理に関与してもよいし、あるいは、複数のプロセッサが独立に異なる処理を並列に実行してもよい。
【0021】
RAM22は、CPU21に作業用のメモリ空間を提供し、一時データを記憶する。
【0022】
記憶部23は、コンピュータとしてのCPU21により読み取り可能な非一時的な記録媒体であり、プログラム231及び各種データを記憶する。記憶部23は、例えばフラッシュメモリ等の不揮発性メモリを含む。プログラム231は、コンピュータが読み取り可能なプログラムコードの形態で記憶部23に格納されている。記憶部23に記憶されるデータとしては、制御装置10から送信された、投影用画像の画像データなどがある。
【0023】
投影部24は、光源部241、表示素子242、及び光学系駆動部243などを備える。投影部24は、光源部241から出力された光の強度分布を、投影用画像の画像データに応じて表示素子242により調整し、図示しない投影レンズ群を通してプロジェクタ20の外部に出射することで画像を投影する。
【0024】
光源部241は、青色の波長帯域の光(青色光)、緑色の波長帯域の光(緑色光)、及び赤色の波長帯域の光(赤色光)を発する。本実施形態の光源部241は、レーザーダイオードが発生させた青色光と、LEDが発生させた赤色光と、所定の蛍光体に対して上記の青色光を入射させることにより発生させた緑色の蛍光(緑色光)とを出力する。ただし、光源部241における各色の光の生成方法は、上記に限られない。本実施形態の光源部241は、赤色光、緑色光及び青色光をそれぞれ別個の期間に出力する。
【0025】
表示素子242は、空間的光変調素子(SOM:Spatial Optical Modulator)であり
、例えば、デジタルマイクロミラー素子(DMD)である。DMDは、アレイ状に配列された複数の微小ミラーの各傾斜角度を、投影用画像の画素値に応じて個々に高速で切り替えて、各画素単位各画像フレーム単位で投影レンズ群への光反射の有無を定めることで、その反射光により、光像を形成する。また、上述のとおり、光源部241からは、赤色光、緑色光及び青色光が時分割で表示素子242に入射され、表示素子242は、赤色光、緑色光及び青色光の入射期間においてそれぞれ赤色画像、緑色画像及び青色画像を生成する。プロジェクタ20は、これらの赤色画像、緑色画像及び青色画像の投影を高速で繰り返すフィールドシーケンシャル方式により、カラー画像を投影する。
【0026】
表示素子242で反射した光(画像を形成する光)が入射する投影レンズ群は、複数のレンズの位置関係を変更することにより、出力画像の拡大率(ズーム倍率、焦点距離)の調整が可能なズームレンズとなっている。光学系駆動部243は、CPU21から送信される制御信号に応じて、投影レンズ群を構成する複数のレンズを移動させて、投影レンズ群のズーム倍率を調整したり、フォーカスを調整したりする。光学系駆動部243は、複数のレンズの各々を光軸方向に移動させるアクチュエータを備える。光学系駆動部243は、CPU21から送信される制御信号に従って動作する。
【0027】
通信部25は、予め定められた通信規格に従った通信動作を行う。通信部25は、この通信動作により、制御装置10との間で無線又は有線によるデータの送受信を行う。
【0028】
深度カメラ30は、撮影範囲に赤外線を照射して、反射した赤外線が戻ってくる時間を計測することによって、深度カメラ30から撮影範囲の各位置における深度(物体との距離)を検出して深度画像(距離画像)を取得する。深度カメラ30は、通信部を備え、撮影により得られた深度画像を通信部により制御装置10に送信する。なお、本実施形態では、画像取得部として深度カメラ30を用い、深度カメラ30により撮影範囲の各位置における物体との距離を検出しているが、画像取得部は、プロジェクタ20の画角内の距離画像を取得できる装置であれば深度カメラ30に限定されない。
【0029】
<投影システムの動作>
次に、投影システム1の動作について説明する。
図3は、制御装置10のCPU11により実行される投影制御処理の流れを示すフローチャートである。投影制御処理は、例えば、プロジェクタ20への画像の投影を開始する際に、CPU11とプログラム131との協働により実行される。
【0030】
まず、CPU11は、深度カメラ30に深度画像を撮影させ、深度カメラ30により撮影された深度画像を通信部14を介して取得する(ステップS1)。
【0031】
次いで、CPU11は、取得した深度画像に基づいて、同一平面からなる平面領域を検出する(ステップS2)。
ステップS2において、CPU11は、例えば、取得した深度画像の座標(x、y、z)を、公知の平面の方程式(ax+by+cz+d=0)に当てはめ、同一平面と推定できる座標群からなる領域を平面領域として検出する。
【0032】
次いで、CPU11は、異なる複数の平面領域が検出されたか否かを判断する(ステップS3)。
異なる複数の平面領域が検出されたと判断した場合(ステップS3;YES)、CPU11は、予め定められた条件に基づいて投影面となる平面領域を決定し(ステップS4)、ステップS6に移行する。
【0033】
例えば、CPU11は、検出された複数の平面領域のうち、面積が一番大きい平面領域を投影面として決定する。上述のように、プロジェクタ20は、テーブル40上に画像を投影可能な向きとなるように位置及び方向が調整されており、深度カメラ30も同方向を向いている。そのため、深度画像に基づいて、面積が一番大きい平面領域を投影面として決定することで、テーブル40に対応する平面領域を投影面として決定することができる。
【0034】
または、CPU11は、プロジェクタ20(すなわち、深度カメラ30)からの距離が最も大きい(遠い)平面領域を投影面として決定してもよい。これにより、テーブル40の上に段ボールなどの平面の物が置いてある場合に、その物の上ではなく、テーブル40上に投影できるようにすることができる。なお、この場合、床が深度カメラ30に写り込んでいると、床が投影面として決定されてしまう恐れがある。そこで、面積が所定の閾値より小さい平面領域は、投影面の候補から除くことが好ましい。
【0035】
一方、ステップS3において、検出された平面領域が一つであると判断した場合(ステップS3;NO)、CPU11は、検出された平面領域を投影面となる平面領域として決定し(ステップS5)、ステップS6に移行する。
【0036】
ステップS6において、CPU11は、深度画像において、投影面として決定された平面領域の外側の輪郭に囲まれた領域内に、当該平面領域とは同一平面ではない領域(障害物領域と呼ぶ)が含まれているか否かを判断する(ステップS6)。
【0037】
図4は、テーブル40上にフォーク、お皿、ナイフが並んでいる様子を深度カメラ30で真上から撮影することにより得られた深度画像を模式的に示す図である。なお、図4において、深度画像の輪郭の図示は省略している(図5図7図9においても同様)。テーブル40の外側の輪郭L1に囲まれた領域内には、テーブル40と同一平面ではない障害物領域A1~A3(フォーク領域A1、お皿領域A2、ナイフ領域A3)が含まれる。
【0038】
投影面として決定された平面領域の外側の輪郭に囲まれた領域内に、当該平面領域とは同一平面ではない障害物領域が含まれていると判断した場合(ステップS6;YES)、CPU11は、投影面として決定された平面領域と障害物領域との位置関係に基づいて、投影面として決定された平面領域を複数の領域に分割し(ステップS7)、ステップS9に移行する。
【0039】
例えば、図4の深度画像のテーブル40を分割する例について説明すると、ステップS7において、CPU11は、まず、深度画像における障害物領域を当該障害物領域に接する矩形で囲む。例えば、図5に示すように、CPU11は、深度画像において互いの距離が所定範囲内の複数の障害物領域(図5ではA1~A3)を1つの障害物領域とみなして、当該障害物領域を辺L2~L5からなる矩形で囲む。次いで、CPU11は、平面領域(図5ではL1とL2~L5に囲まれた領域)を、障害物領域を囲んだ矩形の各辺(図5のL2~L5)に平行な直線、例えば、障害物領域を囲んだ矩形の各辺(図5のL2~L5)より予め定められた距離D1外側の直線(図5ではL6~L9)と、平面領域の外側の輪郭L1の各辺に平行で各辺より予め定められた距離D2内側の直線(図5ではL10~13)とにより区切られた領域(図5では領域R1~R4)に分割する。
【0040】
一方、投影面として決定された平面領域の外側の輪郭に囲まれた領域内に、当該平面領域とは同一平面ではない障害物領域が含まれていないと判断した場合(ステップS6;NO)、CPU11は、投影面として決定された平面領域を所定サイズの複数の領域に分割し(ステップS8)、ステップS9に移行する。
【0041】
ステップS9において、CPU11は、投影面となる平面領域を分割することにより得られた複数の領域の中から投影に用いる投影領域を決定する(ステップS9)。
ステップS9において、CPU11は、例えば、平面領域を分割することにより得られた複数の領域のそれぞれの、面積、上記平面領域の中心からの距離、又はそれぞれの領域で確保できる投影対象の画像と同じアスペクト比の矩形の最大サイズ、の少なくとも1つに基づいて、投影領域を決定する。例えば、複数の領域のうち、面積が最も大きい領域を投影領域として決定する。または、平面領域の中心に最も近い領域を投影領域として決定してもよい。例えば、上述のように、ステップS4において投影面として決定された平面領域がテーブル40となるような条件で投影面を決定した場合、平面領域の中心に最も近い領域を投影領域とすることで、テーブル40の中心に近い領域を投影領域として決定することができ、テーブル40の作業者に見やすい位置に投影領域を決定することができる。または、投影対象の画像と同じアスペクト比の矩形が最も大きくとれる領域を、投影領域として決定してもよい。これにより、投影対象の画像を見やすく投影できる領域を投影領域に決定することが可能となる。
なお、決定した投影領域のアスペクト比が投影対象の画像のアスペクト比と一致しない場合は、例えば、投影領域内において投影対象の画像が最も大きく投影できる位置に投影領域が決定される。
【0042】
次いで、CPU11は、決定した投影領域に合わせて投影対象の画像をホモグラフィ変換し、投影用画像を生成する(ステップS10)。
ここで、プロジェクタ20は、投影面に正対しているとは限らない。プロジェクタ20が投影面に正対していない場合、そのまま投影対象の画像を投影すると、投影された画像が矩形とならずに歪んでしまう。そこで、ステップS10では、投影対象の画像をホモグラフィ変換することで、歪みを補正して投影できるようにする。
【0043】
ステップS10において、CPU11は、まず、深度カメラ30の画角、プロジェクタ20の画角、深度カメラ30とプロジェクタ20との距離、及び、深度カメラ30から投影面として決定した平面(平面領域)までの距離に基づいて、プロジェクタ20から投影面に投影した際に生じる画像の歪みを補正するためのホモグラフィ行列を推定する。ここで、深度カメラ30の画角とプロジェクタ20の画角は、予め分かっており、記憶部13に記憶されている。深度カメラ30とプロジェクタ20との距離は、記憶部13に記憶されている、予め定められた距離となるように位置合わせされている。深度カメラ30から平面領域までの距離は、深度画像から取得することができる。
次いで、CPU11は、ステップS9で決定した投影領域に投影対象の画像を歪みなく投影するために、推定したホモグラフィ行列を用いて投影対象の画像をホモグラフィ変換して変形させる。そして、CPU11は、変換前の投影対象の画像の画像領域における変換後の投影対象の画像の画像領域以外の領域の画素を、投影しないことを示す画素値(ここでは、黒の画素値(画素値=0)とする)に変換して投影用画像(入力画像)を生成する。
【0044】
次いで、CPU11は、生成した投影用画像に基づいて、プロジェクタ20に画像を投影させる(ステップS11)。
CPU11は、通信部14によりプロジェクタ20に投影用画像を送信(入力)し、プロジェクタ20に投影用画像を投影させる。
プロジェクタ20のCPU21は、通信部25により制御装置10から投影用画像を受信すると、投影用画像を投影部24により投影する。投影用画像は、上述のように、決定された投影領域以外の領域に対応する画像領域の画素値が黒の画素値となっている。投影部24において、黒の画素値に該当するDMDは投影レンズ群へ光が反射しない状態、つまり、黒の画素値の画素は投影されない状態となる。そのため、投影用画像を投影部24により投影することで、ステップS9で決定した投影領域に投影対象の画像を投影し、その他の領域には画像を投影しないようにすることができる。
【0045】
ステップS10~S11の処理について図6を用いて説明する。
例えば、投影面として決定した平面領域をR11とすると、図6に示すように、プロジェクタ20と平面領域R11とが正対していない場合、平面領域R11に投影した画像が歪んでしまう。そこで、CPU11は、深度カメラ30の画角、プロジェクタ20の画角、深度カメラ30とプロジェクタ20との距離、及び、深度カメラ30から投影面として決定した平面(平面領域)までの距離に基づいて、ホモグラフィ行列を推定する。次いで、CPU11は、推定したホモグラフィ行列を用いて、ステップS9で決定した投影領域に投影対象の画像を歪みなく投影するように投影対象の画像P1をホモグラフィ変換して画像P2に変形させ、変換前の投影対象の画像P1の画像領域における変換後の投影対象の画像の画像領域P2以外の領域の画素(図6においてハッチングで示す画素)を、例えば黒の画素値(画素値=0)に変換して投影用画像(入力画像)を生成する。そして、CPU11は、生成した投影用画像をプロジェクタ20に入力する。入力された投影用画像に基づいてプロジェクタ20が投影部24により平面領域R11の投影領域に投影を行うと、図6に示すように、歪みのない画像P3が投影される。
【0046】
次いで、CPU11は、投影を終了するか否かを判断する(ステップS12)。
例えば、CPU11は、複数の投影用画像を順次投影する場合、最終の投影用画像に基づく投影が終了した場合、投影を終了すると判断する。あるいは、プロジェクタ20の電源がオフとなり、プロジェクタ20とデータ送受信ができなくなった場合に、投影を終了すると判断する。
【0047】
投影を終了しないと判断した場合(ステップS12;NO)、CPU11は、深度カメラ30に深度画像を撮影させ、深度カメラ30により撮影された深度画像を通信部14を介して取得する(ステップS13)。
【0048】
次いで、CPU11は、取得した深度画像に基づいて、プロジェクタ20と投影領域との間に障害物が検出されたか否かを判断する(ステップS14)。
ここで、ステップS1で深度画像が取得された時点で投影領域は同一平面上にある領域であったが、プロジェクタ20と投影領域との間に障害物が置かれると、投影領域内に同一平面でない領域が現れ、同一平面である投影領域のサイズは変化する。そこで、例えば、CPU11は、取得した深度画像に基づいて同一平面である投影領域のサイズが変化したか否かを判断し、投影領域のサイズが変化したと判断した場合、プロジェクタ20と投影領域との間に障害物が検出されたと判断する。
【0049】
プロジェクタ20と投影領域との間に障害物が検出されていないと判断した場合(ステップS14;NO)、CPU11は、ステップS11に戻る。
【0050】
一方、プロジェクタ20と投影領域との間に障害物が検出されたと判断した場合(ステップS14;YES)、CPU11は、投影領域を切り替え(ステップS15)、ステップS10に戻る。
【0051】
例えば、CPU11は、投影領域を、ステップS7又は8で投影面となる平面領域を分割することにより得られた複数の領域のうち現在の投影領域とは異なる領域に切り替える。複数の領域のうち投影領域の切り替え先となる領域は、例えば、ステップS9で説明した条件等に基づき決定することができる。その際、現在の投影領域とは異なる領域についても障害物が検出された領域は、切り替え先からはずすこととしてもよい。
【0052】
このように、投影制御処理では、プロジェクタ20と投影領域との間に障害物が検出された場合に、投影領域を切り替えるので、ユーザ(作業者)が投影領域を切り替えたい場合、投影領域に手を置いたり、物を置いたりしてプロジェクタ20と投影領域との間に障害物を置くことで、投影領域を他の領域に切り替えることができる。例えば、図7において、現在の投影領域がR1である場合、R1の領域に手H1を置くことで、投影領域を領域R1以外の、領域R2~R4のいずれかに切り替えることが可能となる。また、現在の投影領域以外にも、投影領域の切り替え先としたくない領域がある場合には、それらの領域に手を置いたり、物を置いたりすることにより、その領域を切り替え先からはずすことができる。例えば、現在の投影領域がR1であり、投影領域をR3に切り替えたい場合、図8に示すように、領域R1に手H1を置くとともに、領域R2及びR4に手H2を置くことで、投影領域を領域R3に切り替えることが可能となる。
これにより、ユーザは、投影領域を切り替えるための操作のために、操作パネルやリモコンなどを押したり、持ったり、それらのある場所に移動したり、プロジェクタ20の位置や投影方向を調整したりといった手間なく、容易に投影領域を切り替えることができる。
【0053】
投影を終了したと判断した場合(ステップS12;YES)、CPU11は、投影制御処理を終了する。
【0054】
<変形例>
上記実施形態では、ステップS14において、深度カメラ30により取得した深度画像に基づいて、プロジェクタ20と投影領域との間に障害物が検出されたか否かを判断し、プロジェクタ20と投影領域との間に障害物が検出されたと判断した場合に、投影領域の切り替えを行ったが、投影領域を切り替える手法としては、これに限定されない。
例えば、CPU11は、ステップS13で取得された深度画像を解析してジェスチャー認識を行い、投影面となる平面領域を分割することにより得られた複数の領域のうちの一つの領域の方向を指定するジェスチャーを認識した場合、投影領域をジェスチャーにより指定された領域に切り替えることとしてもよい。例えば、図9に示すように、CPU11は、深度画像から例えば指の先端が領域R3を向いているジェスチャーG1を認識した場合、領域R3を切り替え先の領域として決定する。
これにより、ユーザは、投影領域を切り替えるための操作のために、操作パネルやリモコンなどを押したり、持ったり、それらのある場所に移動したり、プロジェクタ20の位置や投影方向を調整したりといった手間なく、容易に投影領域を切り替える(切り替え先を指定する)ことができる。
【0055】
以上説明したように、本実施形態に係る投影システム1は、制御装置10と、プロジェクタ20と、深度カメラ30と、を備える。制御装置10のCPU11は、深度カメラ30により取得された深度画像から平面領域を検出し、検出した平面領域のうちプロジェクタ20により画像を投影する投影面となる平面領域を複数の領域に分割し、複数の領域の中から予め定められた条件に基づいてプロジェクタ20により画像を投影する投影領域を決定する。プロジェクタ20は、決定された投影領域に画像を投影する。
したがって、ユーザがプロジェクタ20の位置や投影方向を調整する手間なく、投影面となる平面領域の最適な位置に投影対象の画像を投影することが可能となる。
【0056】
例えば、CPU11は、深度画像に基づいて、投影面となる平面領域の外側の輪郭に囲まれた領域内に当該平面領域と同一平面でない障害物領域が含まれているか否かを判断し、障害物領域が含まれていると判断した場合に、当該平面領域と障害物領域との位置関係に基づいて当該平面領域を複数の領域に分割し、分割した複数の領域の中から投影領域を決定する。
例えば、CPU11は、投影面となる平面領域を、深度画像において障害物領域を囲んだ矩形領域の各辺に平行な直線と、平面領域の各辺に平行な直線とにより区切られた複数の領域に分割し、分割した複数の領域の中から投影領域を決定する。
したがって、投影面となる平面領域上に障害物がある場合に、平面領域上の障害物がない最適な位置に投影対象の画像を投影することが可能となる。
【0057】
また、例えば、CPU11は、平面領域内の複数の領域のそれぞれの、面積、平面領域の中心からの距離、複数の領域のそれぞれで確保できる、投影対象の画像と同じアスペクト比の矩形の最大サイズ、の少なくとも1つに基づいて、複数の領域の中から投影領域を決定する。
したがって、平面領域内の複数の領域のうち、例えば、面積が最も大きい領域、平面領域の中心に最も近い領域、投影対象を最も大きいサイズで投影できる領域等の最適な位置に投影対象の画像を投影することが可能となる。
【0058】
また、例えば、CPU11は、深度カメラ30により取得された深度画像から異なる複数の平面領域が検出された場合、予め定められた条件に基づいて、投影面となる平面領域を決定する。
したがって、深度画像から異なる複数の平面領域が検出された場合、そのうちの一つを平面領域に自動的に決定することができる。
【0059】
例えば、CPU11は、深度画像から異なる複数の平面領域が検出された場合、複数の平面領域のそれぞれの面積又はプロジェクタ20との距離の少なくとも1つに基づいて、投影面となる平面領域を決定する。
したがって、例えば、面積が大きい平面領域、プロジェクタ20との距離が最も離れている平面領域等の最適な平面領域と投影面となる平面領域に決定することができる。
【0060】
また、例えば、CPU11は、投影領域への投影中に深度カメラ30により深度画像を取得させ、取得された深度画像に基づきプロジェクタ20と投影領域との間に障害物が検出されたか否かを判断する。障害物が検出されたと判断した場合、CPU11は、投影領域を異なる領域に切り替える。
したがって、投影領域との間に障害物が入ってきたときに、自動的に投影領域を切り替えることができるため、投影される画像が見えなくなってしまうことを回避することができる。また、投影領域を切り替えるための操作のために、操作パネルやリモコンなどを押したり、持ったり、それらのある場所に移動したり、プロジェクタ20の位置や投影方向を調整したりといった手間なく、容易に投影領域を切り替える(切り替え先を指定する)ことができる。
【0061】
また、例えば、CPU11は、投影領域への投影中に深度カメラ30により深度画像を取得させ、取得された深度画像を解析することにより現在の投影領域とは異なる領域を指定するジェスチャーを認識した場合、投影領域をジェスチャーにより指定された領域に切り替える。
したがって、ユーザは、投影領域を切り替えるための操作のために、操作パネルやリモコンなどを押したり、持ったり、それらのある場所に移動したり、プロジェクタ20の位置や投影方向を調整したりといった手間なく、容易に投影領域を切り替える(切り替え先を指定する)ことができる。
【0062】
なお、上記実施形態における記述は、本発明に係る投影システム、制御装置、投影領域決定方法及びプログラムの好適な一例であり、これに限定されるものではない。
例えば、上記実施形態では、CPU11は、投影面として決定された平面領域の外側の輪郭に囲まれた領域内に、当該平面領域とは同一平面ではない障害物領域が含まれていないと判断した場合であっても平面領域を分割することとして説明したが、平面領域を分割せずに、平面領域全体を投影領域に決定してもよい。この場合において、投影中に深度カメラ30から取得された深度画像により投影領域とプロジェクタ20の間に障害物が検出された場合には、CPU11は、例えば、ステップS8と同様の手法により、投影領域(平面領域全体)を複数の領域に分割し、分割された複数の領域のいずれかに投影領域を切り替えることとしてもよい。投影領域の切り替え先となる領域は、例えば、ステップS9で説明した条件等に基づき決定することができる。分割された複数の領域のうち、障害物が検出された領域は、切り替え先からはずすことが好ましい。
【0063】
また、上記実施形態では、投影領域の切り替え先が同一平面領域内である場合を例として説明したが、深度画像から複数の平面領域が検出された場合には、現在投影領域となっている平面領域以外の他の平面領域を切り替え先の投影領域として決定してもよい。
【0064】
また、上記実施形態では、画像取得部としての深度カメラ30により、プロジェクタ20の投影方向における物体との距離を示す距離画像(深度画像)を取得し、取得した距離画像に基づいて平面領域や障害物領域を検出することにより、投影領域の決定や切り替えを行うこととしたが、プロジェクタ20の投影方向における物体との距離を取得する手法としては、これに限定されない。例えば、プロジェクタ20の投影方向における物体を画像取得部としての2つの光学カメラにより異なる方向から撮影することにより取得された画像に基づいて、プロジェクタ20とその投影方向における物体との距離を算出し、その算出結果に基づいて平面領域や障害物領域を検出することにより、投影領域の決定や切り替えを行うこととしてもよい。
【0065】
また、上記実施形態では、本発明に係るプログラムのコンピュータ読み取り可能な媒体として記憶部13のHDD、SSDを使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、フラッシュメモリ、CD-ROM等の情報記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【0066】
また、上記実施形態における制御装置10、プロジェクタ20、及び深度カメラ30の各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。
【符号の説明】
【0067】
1 投影システム
10 制御装置
11 CPU
12 RAM
13 記憶部
131 プログラム
14 通信部
15 バス
20 プロジェクタ
21 CPU
22 RAM
23 記憶部
231 プログラム
24 投影部
241 光源部
242 表示素子
243 光学系駆動部
25 通信部
26 バス
30 深度カメラ
図1
図2
図3
図4
図5
図6
図7
図8
図9