(57)【要約】【課題】プロジェクタ装置が移動した場合であっても、投影対象の画像の視認性を確保しつつ歪み補正をすること。【解決手段】プロジェクタ装置１００は、複数のフレームのうちの第１のフレームおよび第１のフレームが投影された投影面Ｓｐを撮像した撮像画像Ｐそれぞれの特徴点を抽出する。プロジェクタ装置１００は、抽出した特徴点それぞれの各画像上での位置の差に基づいて、自装置と投影面Ｓｐとの位置関係を特定する。プロジェクタ装置１００は、特定した自装置と投影面Ｓｐとの位置関係に応じて、複数のフレームのうちの第１のフレームより後の第２のフレームを歪み補正する。【選択図】図４
2018031803.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレームのうちの第１のフレームを投影面に向けて投影する投影部と、
前記投影部によって前記第１のフレームが投影された前記投影面を撮像する撮像部と、
前記第１のフレームおよび前記撮像部によって撮像された撮像画像それぞれの特徴点を抽出し、抽出した前記特徴点それぞれの各画像上での位置の差に基づいて、自装置と前記投影面との位置関係を特定し、特定した前記位置関係に応じて、前記複数のフレームのうち前記第１のフレームより後の第２のフレームを歪み補正する制御部と、
を有することを特徴とするプロジェクタ装置。
【請求項２】
前記制御部は、
抽出した前記特徴点それぞれの各画像上での位置の差に基づいて、前記撮像部の光学中心から前記投影面までの距離を表す深度を算出し、
算出した前記深度に基づいて、前記投影面の傾きを算出し、
算出した前記投影面の傾きに基づいて、前記第２のフレームを歪み補正する、
ことを特徴とする請求項１に記載のプロジェクタ装置。
【請求項３】
前記制御部は、
非投影時に前記撮像部によって撮像された背景画像を取得し、
前記撮像画像と前記背景画像との差分を取って前記撮像画像から背景色を打ち消し、
背景色を打ち消した前記撮像画像から特徴点を抽出する、ことを特徴とする請求項２に記載のプロジェクタ装置。
【請求項４】
前記制御部は、
算出した前記投影面の傾きと、前回算出した前記投影面の傾きとの変化量が閾値より大きくなった場合、前記背景画像を更新する、ことを特徴とする請求項３に記載のプロジェクタ装置。
【請求項５】
前記制御部は、
所定の走査方向それぞれについて、前記第１のフレームおよび前記撮像画像それぞれを走査することにより、前記所定の走査方向に連続する画素間の輝度差が閾値以上となる点を特徴点として抽出する、ことを特徴とする請求項１〜４のいずれか一つに記載のプロジェクタ装置。
【請求項６】
ユーザに携帯されて使用される、ことを特徴とする請求項１〜５のいずれか一つに記載のプロジェクタ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロジェクタ装置に関する。
【背景技術】
【０００２】
近年、あらゆる現場でのＩＣＴ（Ｉｎｆｏｒｍａｔｉｏｎ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）の利用の可能性を広げるため、場所を問わず情報の表示・入力を行える手段が望まれている。場所を問わず情報の表示・入力が行える手段として、例えば、スマートフォンやタブレットＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などのモバイル端末がある。一方で、モバイル端末の画面は小さく使い方に制限が生じてしまう。例えば、画面が小さいために、表示できる情報量が限られ、また、複数人で情報を共有するには向いていない。このため、場所を問わず、大画面で情報の表示・入力ができるプロジェクタの研究が進められている。
【０００３】
先行技術としては、投影される画像にパターン画像を重ねてプロジェクタと投影面との位置関係を検出し、投影対象の画像を歪み補正する技術がある。具体的には、第１重畳画像をスクリーンに投写させ撮像した第１撮像画像と、第２重畳画像をスクリーンに投写させ撮像した第２撮像画像との各画素の画素値の差分によって表される測定用画像から抽出した測定点に基づいてプロジェクタとスクリーンとの配置関係を検出するものがある。また、カメラで撮影した映像から映像処理によってスクリーン位置・傾きを検出し、スクリーン位置・傾きの情報を使ってプロジェクタ光学系をシミュレーションして、プロジェクタに出力すべき映像を生成する投射映像補正システムがある。また、スクリーンに投写される補助画像パターンと一対の光学式パッシブセンサとの位相を変化させるとともに、一対の光学式パッシブセンサにより補助画像パターンの結像位置の相対的な差を検出し、投写レンズとスクリーンとの傾き角度を算出して台形歪み補正を行うものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−６２８４２号公報
【特許文献２】特開２０１０−１２８１０２号公報
【特許文献３】特開２００６−１２８８７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、投影される画像の視認性を確保することが難しい場合がある。例えば、ユーザが携帯して使用するプロジェクタの場合、プロジェクタは頻繁に移動する。したがって、投影される画像にパターン画像を重ねて歪み補正する場合、プロジェクタが移動する度に投影対象の画像にパターン画像を重ねて歪み補正することになり、投影対象の画像にパターン画像が重なることで視認性が損なわれる。
【０００６】
一つの側面では、本発明は、プロジェクタ装置が移動した場合であっても、投影対象の画像の視認性を確保しつつ歪み補正をすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、複数のフレームのうちの第１のフレームを投影面に向けて投影する投影部と、前記投影部によって前記第１のフレームが投影された前記投影面を撮像する撮像部と、前記第１のフレームおよび前記撮像部によって撮像された撮像画像それぞれの特徴点を抽出し、抽出した前記特徴点それぞれの各画像上での位置の差に基づいて、自装置と前記投影面との位置関係を特定し、特定した前記位置関係に応じて、前記複数のフレームのうちの前記第１のフレームより後の第２のフレームを歪み補正する制御部と、を有するプロジェクタ装置が提案される。
【発明の効果】
【０００８】
本発明の一側面によれば、プロジェクタ装置が移動した場合であっても、投影対象の画像の視認性を確保しつつ歪み補正をすることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかるプロジェクタ装置１００の一実施例を示す説明図である。
【図２】図２は、プロジェクタ装置１００と投影面Ｓｐとの位置関係の一例を示す説明図である。
【図３】図３は、プロジェクタ装置１００のハードウェア構成例を示すブロック図である。
【図４】図４は、プロジェクタ装置１００の機能的構成例を示すブロック図である。
【図５】図５は、特徴点ｐの投影面Ｓｐ上での位置を示す説明図である。
【図６】図６は、補正済みフレームバッファの具体例を示す説明図である。
【図７】図７は、投影対象のフレームおよび撮像画像Ｐの具体例を示す説明図である。
【図８】図８は、撮像画像Ｐからの背景色の打ち消し例を示す説明図である。
【図９】図９は、特徴点ｐ，ｐ’の抽出例を示す説明図（その１）である。
【図１０】図１０は、特徴点ｐ，ｐ’の抽出例を示す説明図（その２）である。
【図１１】図１１は、特徴点ｐ，ｐ’の抽出例を示す説明図（その３）である。
【図１２】図１２は、各画像上での特徴点ｐ，ｐ’を示す説明図である。
【図１３】図１３は、プロジェクタ装置１００の座標系の一例を示す説明図である。
【図１４】図１４は、投影面Ｓｐとプロジェクタ装置１００の座標系の一例を示す説明図である。
【図１５】図１５は、プロジェクタ装置１００の歪み補正処理手順の一例を示すフローチャートである。
【図１６】図１６は、特徴点抽出処理の具体的処理手順の一例を示すフローチャートである。
【図１７】図１７は、傾き推定処理の具体的処理手順の一例を示すフローチャートである。
【図１８】図１８は、補正処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかるプロジェクタ装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態）
図１は、実施の形態にかかるプロジェクタ装置１００の一実施例を示す説明図である。図１において、プロジェクタ装置１００は、ユーザが携帯して使用可能なプロジェクタであり、投影部１０１と、撮像部１０２と、制御部１０３とを有する。投影部１０１は、フレームを投影面に向けて投影する投影装置である。フレームは、動画を形成する個々の静止画像である。
【００１２】
撮像部１０２は、投影部１０１によってフレームが投影された投影面を撮像する撮像装置（カメラ）である。プロジェクタ装置１００において、投影部１０１と撮像部１０２は、光学中心（焦点）のｙ座標が一致している。制御部１０３は、投影対象のフレームを歪み補正するコンピュータである。
【００１３】
ここで、プロジェクタと投影面との位置関係によっては、投影面に投影された画像に歪みが生じる。例えば、投影面に対して、斜めの位置から画像を投影した場合、投影された画像を正面から見ると歪んだ画像として見えてしまう。このため、プロジェクタと投影面との位置関係を推定し、推定した位置関係に応じて、投影対象の画像を歪み補正する技術がある。
【００１４】
例えば、投影される画像にパターン画像を重ねてプロジェクタと投影面との位置関係を検出し、投影対象の画像を歪み補正する技術がある。ところが、ユーザが携帯して使用するプロジェクタの場合、プロジェクタが移動する度に投影対象の画像にパターン画像を重ねて歪み補正することになり、投影対象の画像にパターン画像が重なることで視認性が損なわれてしまう。
【００１５】
また、投影される画像の視認性が損なわれるのを防ぐべく、深度センサを利用して投影面の傾きを推定して歪み補正する技術がある。深度センサは、赤外線プロジェクタでパターン画像を投影し、投影されたパターン画像を赤外線カメラで撮影して、撮影されたパターン画像の歪みから投影面の傾きを推定するものである。
【００１６】
ところが、投影面の傾きを推定する手段として深度センサを採用すると、可視光プロジェクタに加えて、赤外線プロジェクタが必要となり、装置の大型化を招いてしまう。さらに、可視光プロジェクタに加えて、赤外線プロジェクタが必要となるため、消費電力の増大化も招いてしまう。
【００１７】
そこで、本実施の形態では、任意の動画を投影・撮像してプロジェクタ装置１００と投影面との位置関係を特定し、特定した位置関係に応じて、投影対象のフレームを歪み補正する方法について説明する。ここで、図２を用いて、プロジェクタ装置１００と投影面（以下、「投影面Ｓｐ」という）との位置関係について説明する。
【００１８】
図２は、プロジェクタ装置１００と投影面Ｓｐとの位置関係の一例を示す説明図である。図２において、投影面Ｓｐの左下から投影する場合のプロジェクタ装置１００と投影面Ｓｐとの位置関係が示されている。なお、図２中左側は、プロジェクタ装置１００を上から見た場合の位置関係を示しており、図２中右側は、プロジェクタ装置１００を右から見た場合の位置関係を示している。
【００１９】
ここで、投影面Ｓｐに投影された画像内のある点（例えば、投影部１０１の光軸中心に位置する点）が、撮像部１０２の撮像面Ｓｉに写り込む位置は、プロジェクタ装置１００と投影面Ｓｐとの距離が遠くなるにつれて、撮像面Ｓｉの中心に近づくという特徴がある。この特徴を利用して、被写体の深度を測定する技術として「光切断法」がある。
【００２０】
プロジェクタ装置１００は、この「光切断法」を利用して、投影対象のフレームおよび当該フレームが投影された投影面Ｓｐを撮像した撮像画像それぞれから抽出した特徴点の位置の差から、自装置と投影面Ｓｐとの位置関係を特定する。以下、具体的な実施例について説明する。
【００２１】
（プロジェクタ装置１００のハードウェア構成例）
つぎに、プロジェクタ装置１００のハードウェア構成例について説明する。
【００２２】
図３は、プロジェクタ装置１００のハードウェア構成例を示すブロック図である。図３において、プロジェクタ装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、ディスクドライブ３０３と、ディスク３０４と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０５と、入力装置３０６と、投影部１０１と、撮像部１０２と、を有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００２３】
ここで、ＣＰＵ３０１は、プロジェクタ装置１００の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００２４】
ディスクドライブ３０３は、ＣＰＵ３０１の制御に従ってディスク３０４に対するデータのリード／ライトを制御する。ディスク３０４は、ディスクドライブ３０３の制御で書き込まれたデータを記憶する。ディスク３０４としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００２５】
Ｉ／Ｆ３０５は、通信回線を通じてネットワーク３１０に接続され、ネットワーク３１０を介して他のコンピュータに接続される。そして、Ｉ／Ｆ３０５は、ネットワーク３１０と自装置内部とのインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワーク３１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００２６】
入力装置３０６は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置３０６は、例えば、タッチパネル式の入力パッドやテンキーなどであってもよい。投影部１０１は、フレームを投影面に向けて投影する投影装置である。撮像部１０２は、投影部１０１によってフレームが投影された投影面を撮像する撮像装置である。
【００２７】
なお、プロジェクタ装置１００は、上述した構成部のうち、例えば、ディスクドライブ３０３、ディスク３０４を有さないことにしてもよい。また、プロジェクタ装置１００は、上述した構成部のほかに、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ディスプレイなどを有することにしてもよい。
【００２８】
（プロジェクタ装置１００の機能的構成例）
つぎに、プロジェクタ装置１００の機能的構成について説明する。
【００２９】
図４は、プロジェクタ装置１００の機能的構成例を示すブロック図である。図４において、プロジェクタ装置１００は、取得部４０１と、抽出部４０２と、特定部４０３と、補正部４０４と、を含む構成である。取得部４０１〜補正部４０４は制御部１０３（図１参照）となる機能であり、具体的には、例えば、図３に示したメモリ３０２、ディスク３０４などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０５により、その機能を実現する。各機能部の処理結果は、例えば、メモリ３０２、ディスク３０４などの記憶装置に記憶される。
【００３０】
取得部４０１は、複数のフレームのうちの第１のフレームを取得する。ここで、複数のフレームは、投影対象となる動画を形成する一連のフレームである。複数のフレームは、例えば、図３に示した入力装置３０６を用いたユーザの操作入力により、または、外部のコンピュータからプロジェクタ装置１００に入力される。
【００３１】
また、第１のフレームは、複数のフレームのうちのいずれかのフレーム、あるいは、当該フレームを歪み補正したものである。具体的には、例えば、取得部４０１は、後述する補正部４０４によって歪み補正された補正済みのフレームを第１のフレームとして、メモリ３０２内のＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）から取得する。
【００３２】
また、取得部４０１は、撮像部１０２によって撮像された撮像画像を取得する。具体的には、例えば、取得部４０１は、第１のフレームが投影された投影面Ｓｐを撮像した撮像画像を撮像部１０２から取得する。以下の説明では、第１のフレームが投影された投影面Ｓｐを撮像した撮像画像を「撮像画像Ｐ」と表記する場合がある。
【００３３】
抽出部４０２は、第１のフレームおよび撮像画像Ｐそれぞれの特徴点を抽出する。ここで、特徴点とは、第１のフレームおよび撮像画像Ｐの各画像上の特徴のある点である。具体的には、例えば、抽出部４０２は、所定の走査方向それぞれについて、第１のフレームおよび撮像画像Ｐそれぞれを走査することにより、走査方向に連続する画素間の輝度差が閾値α以上となる点を特徴点として抽出することにしてもよい。
【００３４】
画素間の輝度差とは、隣り合う画素間の輝度の差である。例えば、撮像画像Ｐ（または、第１のフレーム）がグレースケール画像であれば、隣り合う各画素の輝度の差が画素間の輝度差となる。また、撮像画像Ｐ（または、第１のフレーム）がカラー画像であれば、例えば、各画素のＲ（赤）、Ｇ（緑）、Ｂ（青）それぞれの輝度の平均値を、各画素の輝度として扱うことにしてもよい。閾値αは、任意に設定可能である。例えば、各画素の輝度が０〜２５５の２５６階調で表される場合、閾値αは、１００〜１３０程度に設定される。
【００３５】
所定の走査方向は、任意に設定可能であり、複数設定される。例えば、所定の走査方向として、第１、第２および第３の走査方向が設定されることにしてもよい。第１の走査方向は、各画像を左上から右下まで水平に走査する走査方向である。第２の走査方向は、各画像を右中央から左上（あるいは、左下）まで水平に走査する走査方向である。第３の走査方向は、各画像を左下から右上まで水平に走査する走査方向である。
【００３６】
これにより、各画像において輝度変化が大きい点を特徴点として抽出することができる。また、同じ抽出条件（同じ走査方向、同じ閾値α）で各画像から特徴点を抽出するため、同じ箇所を表している可能性が高い特徴点の組み合わせを抽出することができる。また、各画像において特徴点同士ができるだけ離れた点となるように３点の特徴点を抽出することができる。
【００３７】
以下の説明では、撮像画像Ｐから抽出された特徴点を「特徴点ｐ」と表記し、第１のフレームから抽出された特徴点を「特徴点ｐ’」と表記する場合がある。特徴点ｐ，ｐ’は、同じ箇所を表している可能性が高い対応点である。また、各画像（撮像画像Ｐ、第１のフレーム）を第１の走査方向に走査して抽出された特徴点を「特徴点ｐ１，ｐ’１」と表記する場合がある。また、各画像を第２の走査方向に走査して抽出された特徴点を「特徴点ｐ２，ｐ’２」と表記する場合がある。また、各画像を第３の走査方向に走査して抽出された特徴点を「特徴点ｐ３，ｐ’３」と表記する場合がある。
【００３８】
なお、各特徴点ｐ，ｐ’の抽出例については、図７〜図１２を用いて後述する。
【００３９】
特定部４０３は、特徴点ｐ，ｐ’それぞれの各画像上での位置の差に基づいて、自装置と投影面Ｓｐとの位置関係を特定する。ここで、投影部１０１と撮像部１０２は、上述したように、光学中心（焦点）のｙ座標が一致しており、垂直方向の視差がない配置となっている。このため、特徴点ｐ，ｐ’それぞれの各画像上での位置の差は、特徴点ｐ，ｐ’のｘ座標の差分として扱うことができる。
【００４０】
ただし、第１のフレームと撮像画像Ｐの解像度が同じであるとは限らない。このため、第１のフレームと撮像画像Ｐの解像度が異なる場合、特定部４０３は、特徴点ｐ，ｐ’のいずれか一方の座標を、画像間の解像度の比に応じて座標変換することにしてもよい。一例として、第１のフレームの解像度が「５００×１０００」であり、撮像画像Ｐの解像度が「１５０×３００」であるとする。この場合、例えば、撮像画像Ｐ上の特徴点ｐの座標（ｘ，ｙ）を座標変換すると、（ｘ×５００／１５０，ｙ×１０００／３００）となる。
【００４１】
以下の説明では、撮像画像Ｐ上での特徴点ｐの座標を（ｘ，ｙ）と表記し、第１のフレーム上での特徴点ｐ’の座標を（ｘ’，ｙ’）と表記する場合がある。ただし、第１のフレームと撮像画像Ｐの解像度が異なる場合は、特徴点ｐの座標（ｘ，ｙ）は、座標変換後の座標を示すものとする。
【００４２】
具体的には、例えば、まず、特定部４０３は、下記式（１）を用いて、特徴点ｐ，ｐ’のｘ座標の差分を算出する。ただし、ｘdiffは、特徴点ｐ，ｐ’のｘ座標の差分を示す。
【００４３】
ｘdiff＝ｘ−ｘ’      ・・・（１）
【００４４】
ｘ座標の差分ｘdiffが小さいほど、プロジェクタ装置１００と投影面Ｓｐとの距離が遠いといえる。このため、特定部４０３は、光切断法により、特徴点ｐ，ｐ’のｘ座標の差分ｘdiffに基づいて、特徴点ｐの深度ｚを算出する。深度ｚは、撮像部１０２の光学中心から投影面Ｓｐまでの距離を表す。
【００４５】
より具体的には、例えば、特定部４０３は、下記式（２）を用いて、特徴点ｐの深度ｚを算出する。ただし、ｚは、特徴点ｐに対応する深度である。ｄは、投影部１０１と撮像部１０２との視差（設定値）である。ｆは、撮像部１０２の焦点距離（設定値）である。
【００４６】
ｚ＝ｄ×ｆ／ｘdiff      ・・・（２）
【００４７】
つぎに、特定部４０３は、特徴点ｐの深度ｚに基づいて、特徴点ｐの３次元座標（Ｘ，Ｙ，Ｚ）を算出する。特徴点ｐの３次元座標（Ｘ，Ｙ，Ｚ）は、図５に示すように、撮像画像Ｐに写る特徴点ｐの投影面Ｓｐ上での位置を示す座標である。
【００４８】
図５は、特徴点ｐの投影面Ｓｐ上での位置を示す説明図である。図５において、撮像部１０２の光学中心を原点（０，０，０）とする３次元座標系における、特徴点ｐの投影面Ｓｐ上での位置を示す３次元座標（Ｘ，Ｙ，Ｚ）が示されている。
【００４９】
より具体的には、例えば、特定部４０３は、下記式（３）を用いて、特徴点ｐの３次元座標（Ｘ，Ｙ，Ｚ）を算出する。ただし、ｘ、ｙは、撮像画像Ｐ上での特徴点ｐのｘ座標、ｙ座標である。ｚは、特徴点ｐの深度である。ｄは、投影部１０１と撮像部１０２との視差である。ｆは、撮像部１０２の焦点距離である。
【００５０】
（Ｘ，Ｙ，Ｚ）＝（ｘ×ｚ／ｆ，ｙ×ｚ／ｆ，ｚ）      ・・・（３）
【００５１】
特定部４０３は、「特徴点ｐ１，ｐ’１」、「特徴点ｐ２，ｐ’２」および「特徴点ｐ３，ｐ’３」それぞれの組み合わせについて、上述した処理を行って、各特徴点ｐ１〜ｐ３の投影面Ｓｐ上での３次元座標を算出する。これにより、撮像画像Ｐから抽出された各特徴点ｐ１〜ｐ３の投影面Ｓｐ上での３次元座標を算出することができる。
【００５２】
以下の説明では、特徴点ｐ１の投影面Ｓｐ上での３次元座標を（Ｘ１，Ｙ１，Ｚ１）と表記し、特徴点ｐ２の投影面Ｓｐ上での３次元座標を（Ｘ２，Ｙ２，Ｚ２）と表記し、特徴点ｐ３の投影面Ｓｐ上での３次元座標を（Ｘ３，Ｙ３，Ｚ３）と表記する場合がある。
【００５３】
そして、特定部４０３は、下記式（４）の平面の方程式を解くことにより、各特徴点ｐ１〜ｐ３の３次元座標が示す点を通る平面の傾きａ、ｂ、ｃを算出する。より具体的には、例えば、特定部４０３は、下記式（５）〜（１０）を用いて、下記式（４）の傾きａ、ｂ、ｃを算出することができる。ベクトルＡＢとベクトルＡＣの外積は平面の法線ベクトルとなり、その成分がＸ，Ｙ，Ｚの係数となる。なお、定数ｄは、下記式（４）に特徴点ｐ１の３次元座標（Ｘ１，Ｙ１，Ｚ１）を代入することにより求めることができる。
【００５４】
ａＸ＋ｂＹ＋ｃＺ＋ｄ＝０      ・・・（４）
【００５５】
【数１】
2018031803.tif 000003
【００５６】
そして、特定部４０３は、算出した平面の傾きａ、ｂ、ｃを、投影面Ｓｐの傾きａ、ｂ、ｃとして推定（記録）する。これにより、プロジェクタ装置１００と投影面Ｓｐとの位置関係（深度ｚ、傾きａ、ｂ、ｃ）を特定することができる。
【００５７】
補正部４０４は、特定された自装置と投影面Ｓｐとの位置関係に応じて、複数のフレームのうちの第２のフレームを歪み補正する。第２のフレームは、複数のフレームのうちの第１のフレーム以降の少なくともいずれかのフレームであり、例えば、第１のフレームの次のフレームである。具体的には、例えば、補正部４０４は、投影面Ｓｐの傾きａ、ｂ、ｃによって生じる変形の逆変形を加えて第２のフレームを補正する。
【００５８】
より詳細に説明すると、例えば、補正部４０４は、投影面Ｓｐの傾きａ、ｂ、ｃから、プロジェクタ装置１００の回転の逆行列Ｒspを算出する。つぎに、補正部４０４は、逆行列Ｒspから、画像の透視変換を表すホモグラフィ行列Ｈを算出する。そして、補正部４０４は、ホモグラフィ行列Ｈを用いて、第２のフレームを透視変換することにより、第２のフレームを補正する。
【００５９】
これにより、投影面Ｓｐの正面から見た際に、投影された画像が歪んで見えないようにフレームを補正することができる。以下の説明では、複数のフレームに含まれるフレームを歪み補正したフレームを「補正済みフレーム」と表記する場合がある。
【００６０】
なお、逆行列Ｒspを算出する具体的な処理内容については、図１３を用いて後述する。また、ホモグラフィ行列Ｈを算出する具体的な処理内容については、図１４を用いて後述する。
【００６１】
また、抽出部４０２は、撮像画像Ｐから背景色を打ち消すことにしてもよい。具体的には、例えば、まず、抽出部４０２は、撮像部１０２によって撮像された背景画像ＢＰを取得する。ここで、背景画像ＢＰとは、投影部１０１によるフレームの投影が行われていない非投影時に投影面Ｓｐを撮像した画像である。
【００６２】
そして、抽出部４０２は、撮像画像Ｐと背景画像ＢＰとの各画素の輝度の差分を取ることにより、撮像画像Ｐから背景色を打ち消す。より具体的には、例えば、抽出部４０２は、撮像画像Ｐのうち、背景画像ＢＰの画素との輝度の差分が０（あるいは、ほぼ０）となる画素の輝度を「ｎｕｌｌ値」に変更することにしてもよい。
【００６３】
この場合、抽出部４０２は、例えば、所定の走査方向それぞれについて、背景色を打ち消した撮像画像Ｐを走査することにより、走査方向に連続する画素間の輝度差が閾値α以上となる点を特徴点ｐとして抽出する。ただし、輝度が「ｎｕｌｌ値」に変更された部分については、スキップして処理対象から除外する。
【００６４】
これにより、撮像画像Ｐ上の背景部分から特徴点ｐが抽出されるのを防いで、撮像画像Ｐおよび第１のフレームのそれぞれから、同じ箇所を表している可能性が高い特徴点ｐ，ｐ’の組み合わせを精度よく抽出することができる。
【００６５】
なお、背景画像ＢＰは、例えば、複数のフレームの先頭に黒一色のフレームを挿入し、投影対象の画像が黒一色のフレームの場合に、投影部１０１をＯＦＦにして、そのフレームの投影は行わないようにすることにより取得される。
【００６６】
ただし、プロジェクタ装置１００の姿勢が変化すると、背景が変化するため、背景画像ＢＰを更新することが望ましい。一方で、プロジェクタ装置１００の姿勢の変化が小さい場合には、背景が大きく変化する可能性は低い。そこで、抽出部４０２は、プロジェクタ装置１００の大きな姿勢変化があった場合に、背景画像ＢＰを更新することにしてもよい。
【００６７】
具体的には、例えば、抽出部４０２は、算出された最新の投影面Ｓｐの傾きａ、ｂ、ｃと、前回算出された投影面Ｓｐの傾きａ、ｂ、ｃとの変化量が閾値より大きくなった場合に、プロジェクタ装置１００の大きな姿勢変化があったとして、背景画像ＢＰを更新することにしてもよい。
【００６８】
より詳細に説明すると、抽出部４０２は、前回算出された投影面Ｓｐの傾きａ、ｂ、ｃから、Ｘ軸、Ｙ軸周りの回転量θ１、ψ１を算出する。また、抽出部４０２は、最新の投影面Ｓｐの傾きａ、ｂ、ｃから、Ｘ軸、Ｙ軸周りの回転量θ２、ψ２を算出する。そして、抽出部４０２は、傾きの変化量θdiff（＝ａｂｓ（θ１−θ２））およびψdiff（＝ａｂｓ（ψ１−ψ２））を算出する。ただし、ａｂｓ（Ａ）は、Ａの絶対値である。
【００６９】
つぎに、抽出部４０２は、傾きの変化量θdiffが閾値θthより大きいか否かを判断する。また、抽出部４０２は、傾きの変化量ψdiffが閾値ψthより大きいか否かを判断する。なお、閾値θthおよび閾値ψthは、任意に設定可能であり、例えば、３０°程度の値に設定される。
【００７０】
そして、抽出部４０２は、傾きの変化量θdiffが閾値θthより大きく、かつ、傾きの変化量ψdiffが閾値ψthより大きい場合に、プロジェクタ装置１００の大きな姿勢変化があったとして、背景画像ＢＰを更新する。例えば、抽出部４０２は、投影対象のフレームを黒一色の画像に差し替えて、投影部１０１をＯＦＦにする。そして、抽出部４０２は、非投影時に撮像された撮像画像を背景画像ＢＰとして取得し直す。
【００７１】
これにより、プロジェクタ装置１００の姿勢が大きく変化して、背景（背景色）が大きく変化した可能性が高くなった場合に、背景画像ＢＰを更新することができる。
【００７２】
なお、上述した説明では、投影面Ｓｐの傾きａ、ｂ、ｃの変化量からプロジェクタ装置１００の姿勢変化を判断することにしたが、これに限らない。例えば、プロジェクタ装置１００の動きを検知するモーションセンサを別途設けて、プロジェクタ装置１００の大きな姿勢変化を検出することにしてもよい。
【００７３】
（補正済みフレームバッファ）
ここで、投影部１０１によって補正済みのフレームが投影面Ｓｐに向けて投影され、撮像部１０２によって投影面Ｓｐが撮像されるまでの間には遅延が生じる。したがって、投影対象のフレームと、撮像部１０２によって撮像された撮像画像に写り込んだフレームとの間に、ずれが生じる場合がある。
【００７４】
例えば、上述した遅延がフレームレートを上回ると、撮像画像が撮像された時に投影対象となっているフレームが、撮像画像に写り込んでいるフレームと異なるものとなる。フレームがずれると、同じ箇所を表している対応点（特徴点ｐ，ｐ’の組み合わせ）を抽出できず、投影面Ｓｐの傾きａ、ｂ、ｃの推定精度の低下を招くおそれがある。
【００７５】
そこで、投影済みのフレームを保存しておき、投影面Ｓｐの傾きａ、ｂ、ｃを推定する際、すなわち、抽出部４０２が特徴点ｐ，ｐ’を抽出する際に、遅延を考慮して過去のフレームを用いることにしてもよい。具体的には、例えば、抽出部４０２は、図６に示すような、補正済みフレームバッファを利用して、複数のフレームのうち、撮像画像Ｐが撮像される一定時間前に投影されたフレームを、第１のフレームとして用いることにしてもよい。
【００７６】
図６は、補正済みフレームバッファの具体例を示す説明図である。図６において、補正済みフレームバッファ６００は、補正済みフレームへのポインタを格納するＮ個のエントリを有するリングバッファである。Ｎは、エントリ数であり、Ｔをｒで割った値である（小数点以下切り上げ）。
【００７７】
Ｔは、投影部１０１によって補正済みのフレームが投影面Ｓｐに向けて投影され、撮像部１０２によって投影面Ｓｐが撮像されるまでの間に生じる遅延時間である。ｒは、フレームレートである。ただし、遅延時間Ｔは一定であり、かつ、投影部１０１と撮像部１０２のフレームレートは等しいものとする。
【００７８】
補正部４０４は、補正済みフレームをメモリ３０２内のＶＲＡＭに書き込む際に、補正済みフレームバッファ６００のｔａｉｌの先のエントリに補正済みフレームのポインタを書き込んで、ｔａｉｌを１つ進める（ｔａｉｌ＝ｔａｉｌ＋１）。ただし、「ｔａｉｌ＝Ｎ−１」であれば、「ｔａｉｌ＝０」とする。
【００７９】
一方、抽出部４０２は、補正済みフレームを読み出す際には、「ｔａｉｌ＋１」番のエントリから特定される補正済みフレーム（一番古いフレーム）を読み出す。ただし、「ｔａｉｌ＝Ｎ−１」であれば、抽出部４０２は、０番のエントリから特定される補正済みフレームを読み出す。
【００８０】
これにより、投影面Ｓｐの傾きａ、ｂ、ｃを推定する際に、遅延時間Ｔを考慮して、複数のフレームのうち、撮像画像Ｐが撮像される一定時間前に投影されたフレームを用いることができる。このため、同じ箇所を表している可能性が高い特徴点ｐ，ｐ’の組み合わせを精度よく抽出して、投影面Ｓｐの傾きａ、ｂ、ｃの推定精度の低下を防ぐことができる。
【００８１】
（特徴点ｐ，ｐ’の抽出例）
つぎに、図７〜図１２を用いて、特徴点ｐ，ｐ’の抽出例について説明する。まず、図７を用いて、投影対象のフレーム（第１のフレーム）および当該フレームが投影された投影面Ｓｐを撮像した撮像画像Ｐの具体例について説明する。
【００８２】
図７は、投影対象のフレームおよび撮像画像Ｐの具体例を示す説明図である。図７において、補正済みフレーム７１０は、投影部１０１によって投影される前のフレーム（第１のフレーム）であり、投影面Ｓｐに投影後に正面から見ると歪んで見えないように歪み補正されている。撮像画像７２０は、投影部１０１によって補正済みフレーム７１０が投影された投影面Ｓｐを撮像した撮像画像Ｐである。
【００８３】
以下、補正済みフレーム７１０および撮像画像７２０を例に挙げて、特徴点ｐ，ｐ’の抽出例について説明する。
【００８４】
図８は、撮像画像Ｐからの背景色の打ち消し例を示す説明図である。図８において、撮像画像７２０は、投影部１０１によって補正済みフレーム７１０が投影された投影面Ｓｐを撮像した撮像画像Ｐである。背景画像８００は、投影部１０１によるフレームの投影が行われていない非投影時に投影面Ｓｐを撮像した背景画像ＢＰである。
【００８５】
この場合、抽出部４０２は、撮像画像７２０と背景画像８００との各画素の輝度の差分を取ることにより、撮像画像Ｐから背景色を打ち消す。以下、背景色が打ち消された撮像画像７２０についても、単に「撮像画像７２０」と表記する。
【００８６】
図９は、特徴点ｐ，ｐ’の抽出例を示す説明図（その１）である。図９において、抽出部４０２は、撮像画像７２０および補正済みフレーム７１０それぞれを第１の走査方向に走査することにより、連続する画素間の輝度差が閾値α以上となる最初の点を、特徴点ｐ１，ｐ’１として抽出する。第１の走査方向は、各画像を左上から右下まで水平に走査する走査方向である。
【００８７】
ただし、背景色が打ち消されて輝度が「ｎｕｌｌ値」に変更された部分については、スキップして処理対象から除外する。
【００８８】
具体的には、例えば、抽出部４０２は、各画像を左上（０，０）から右に向けて探索し、各画素について、直前の画素との輝度変化（輝度の差分）を算出する。例えば、Ｂ（ｘ，ｙ）を座標（ｘ，ｙ）の輝度とすると、画素間の輝度変化は「Ｂdiff＝Ｂ（ｘ，ｙ）−Ｂ（ｘ−１，ｙ）」で表される。
【００８９】
抽出部４０２は、ｘが「ｗ＋１」となるまで、輝度変化Ｂdiffが閾値α以上となる点を探索する。ｗは、各画像の横の画素数である。また、抽出部４０２は、ｘが「ｗ＋１」となっても、輝度変化Ｂdiffが閾値α以上の点が探索されなかった場合は、ｙをインクリメントして、ｘが「０」から「ｗ＋１」となるまで、輝度変化Ｂdiffが閾値α以上となる点を探索する。
【００９０】
なお、輝度変化Ｂdiffが閾値α以上となる点が探索されなかった場合、抽出部４０２は、ｙが「ｈ」となるまで、同様の処理を繰り返す。ｈは、各画像の縦の画素数である。ｙが「ｈ」となっても輝度変化Ｂdiffが閾値α以上の点が探索されなかった場合は、抽出失敗となる。
【００９１】
この結果、図９の例では、撮像画像７２０から特徴点ｐ１が抽出され、補正済みフレーム７１０から特徴点ｐ’１が抽出されている。これら２点の特徴点ｐ１，ｐ’１は、同じ箇所を表している可能性が高い対応点である。
【００９２】
図１０は、特徴点ｐ，ｐ’の抽出例を示す説明図（その２）である。図１０において、抽出部４０２は、撮像画像７２０および補正済みフレーム７１０それぞれを第２の走査方向に走査することにより、連続する画素間の輝度差が閾値α以上となる最初の点を、特徴点ｐ２，ｐ’２として抽出する。第２の走査方向は、各画像を右中央から左上（あるいは、左下）まで水平に走査する走査方向である。
【００９３】
具体的には、例えば、抽出部４０２は、各画像を右中央（ｗ，ｈ／２）から左に向けて探索し、各画素について、直前の画素との輝度変化Ｂdiffを算出する。そして、抽出部４０２は、ｘが「１」となるまで、輝度変化Ｂdiffが閾値α以上となる点を探索する。
【００９４】
また、抽出部４０２は、ｘが「１」となっても、輝度変化Ｂdiffが閾値α以上の点が探索されなかった場合は、ｙをデクリメント（あるいは、インクリメント）して、ｘが「ｗ」から「１」となるまで、輝度変化Ｂdiffが閾値α以上となる点を探索する。
【００９５】
なお、輝度変化Ｂdiffが閾値α以上となる点が探索されなかった場合、抽出部４０２は、ｙが「０（あるいは、ｈ）」となるまで、同様の処理を繰り返す。ｙが「０（あるいは、ｈ）」となっても輝度変化Ｂdiffが閾値α以上の点が探索されなかった場合は、抽出失敗となる。
【００９６】
この結果、図１０の例では、撮像画像７２０から特徴点ｐ２が抽出され、補正済みフレーム７１０から特徴点ｐ’２が抽出されている。これら２点の特徴点ｐ２，ｐ’２は、同じ箇所を表している可能性が高い対応点である。
【００９７】
図１１は、特徴点ｐ，ｐ’の抽出例を示す説明図（その３）である。図１１において、抽出部４０２は、撮像画像７２０および補正済みフレーム７１０それぞれを第３の走査方向に走査することにより、連続する画素間の輝度差が閾値α以上となる最初の点を、特徴点ｐ３，ｐ’３として抽出する。第３の走査方向は、各画像を左下から右上まで水平に走査する走査方向である。
【００９８】
具体的には、例えば、抽出部４０２は、各画像を左下（０，ｈ）から右に向けて探索し、各画素について、直前の画素との輝度変化Ｂdiffを算出する。そして、抽出部４０２は、ｘが「ｗ＋１」となるまで、輝度変化Ｂdiffが閾値α以上となる点を探索する。
【００９９】
また、抽出部４０２は、ｘが「ｗ＋１」となっても、輝度変化Ｂdiffが閾値α以上の点が探索されなかった場合は、ｙをデクリメントして、ｘが「０」から「ｗ＋１」となるまで、輝度変化Ｂdiffが閾値α以上となる点を探索する。
【０１００】
なお、輝度変化Ｂdiffが閾値α以上となる点が探索されなかった場合、抽出部４０２は、ｙが「０」となるまで、同様の処理を繰り返す。ｙが「０」となっても輝度変化Ｂdiffが閾値α以上の点が探索されなかった場合は、抽出失敗となる。
【０１０１】
この結果、図１１の例では、撮像画像７２０から特徴点ｐ３が抽出され、補正済みフレーム７１０から特徴点ｐ’３が抽出されている。これら２点の特徴点ｐ３，ｐ’３は、同じ箇所を表している可能性が高い対応点である。
【０１０２】
図１２は、各画像上での特徴点ｐ，ｐ’を示す説明図である。図１２において、撮像画像７２０から抽出された３点の特徴点ｐ１，ｐ２，ｐ３が示されている。また、補正済みフレーム７１０から抽出された３点の特徴点ｐ’１，ｐ’２，ｐ’３が示されている。
【０１０３】
特定部４０３は、特徴点ｐ１，ｐ’１、特徴点ｐ２，ｐ’２および特徴点ｐ３，ｐ’３それぞれの組み合わせに基づいて、各特徴点ｐ１〜ｐ３の深度ｚ１〜ｚ３を算出する。そして、特定部４０３は、深度ｚ１〜ｚ３に基づいて、各特徴点ｐ１〜ｐ３の３次元座標が示す点を通る平面の傾きａ、ｂ、ｃを算出して、投影面Ｓｐの傾きａ、ｂ、ｃを推定する。
【０１０４】
（逆行列Ｒspを算出する具体的な処理内容）
ここで、逆行列Ｒspを算出する具体的な処理内容について説明する。まず、補正部４０４は、上記式（４）の傾きａ、ｂ、ｃに基づいて、下記式（１１）のように、法線ベクトル（係数）（ａ，ｂ，ｃ）を正規化する。
【０１０５】
【数２】
2018031803.tif 000004
【０１０６】
ここでは、図１３に示すような、プロジェクタ装置１００の座標系が設定されている場合を想定する。
【０１０７】
図１３は、プロジェクタ装置１００の座標系の一例を示す説明図である。図１３に示すように、プロジェクタ装置１００の座標系を設定すると、プロジェクタ装置１００の正位置（投影面Ｓｐに対して正面、直角）からのプロジェクタ装置１００の傾きを表す回転行列Ｒpは、下記式（１２）のように表現することができる。ただし、θは、Ｘ軸周りの回転量、ψはＹ軸周りの回転量を示す。Ｚ軸周りの回転については、補正しないため「０」とみなす。
【０１０８】
【数３】
2018031803.tif 000005
【０１０９】
そして、特定部４０３は、下記式（１３）から、回転行列Ｒpを求める。具体的には、下記式（１３）から、「ｓｉｎψ＝ａ’」、「−ｓｉｎθｃｏｓψ＝ｂ’」、「ｃｏｓθｃｏｓψ＝ｃ’」となり、回転行列Ｒpが求まる。そして、補正部４０４は、下記式（１４）から、逆行列Ｒspを算出することができる。
【０１１０】
【数４】
2018031803.tif 000006
【０１１１】
Ｒsp＝Ｒp＾（−１）      ・・・（１４）
【０１１２】
（ホモグラフィ行列Ｈを算出する具体的な処理内容）
つぎに、ホモグラフィ行列Ｈを算出する具体的な処理内容について説明する。まず、補正部４０４は、投影面Ｓｐ上で表示される画像とプロジェクタ装置１００に入力される画像（フレーム）の関係を示す座標変換行列を算出する。
【０１１３】
ここでは、図１４に示すような、投影面Ｓｐの座標系と、プロジェクタ装置１００の座標系とが設定されている場合を想定する。
【０１１４】
図１４は、投影面Ｓｐとプロジェクタ装置１００の座標系の一例を示す説明図である。図１４に示すように、投影面Ｓｐ（スクリーン）の画像座標系（ｕs，ｖs）と３次元座標系（ｘs，ｙs，ｚs）、プロジェクタ装置１００の画像座標系（ｕp，ｖp）と３次元座標系（ｘp，ｙp，ｚp）を設定したとする。ただし、投影面Ｓｐ（スクリーン）の３次元座標系は、スクリーン上の点がｚs＝０の平面上となるように定める。
【０１１５】
ここで、投影面Ｓｐ（スクリーン）の画像座標系（ｕs，ｖs）の位置に表示したい点が、プロジェクタ装置１００の画像座標系（ｕp，ｖp）のどの位置になるかの関係が分かれば、投影面Ｓｐ（スクリーン）上に表示される画像を制御することができる。そこで、補正部４０４は、下記式（１５）を用いて、この関係を導出する。
【０１１６】
ただし、Ｐspは、透視射影行列である。Ａpは、下記式（１６）のように、プロジェクタ装置１００の内部パラメータを表す既知の定数である。ｆpx，ｆpyは、「ｆpx＝ｆpy＝レンズの焦点距離（ｍｍ）×光学素子上のｐｉｘ／ｍｍ」となる。（ｃpx，ｃpy）は、フレームの中心座標である。Ｒspは、回転行列である。Ｔspは、平行移動ベクトルであり、下記式（１７）のように、算出された深度ｚにより決定される。
【０１１７】
【数５】
2018031803.tif 000007
【０１１８】
【数６】
2018031803.tif 000008
【０１１９】
【数７】
2018031803.tif 000009
【０１２０】
ここで、スクリーン上の点は、ｚs＝０の平面上にあるため、下記式（１８）となる。ただし、ｒ00〜ｒ22は、回転行列の各成分である。ｔx〜ｔzは、並行移動ベクトルの各成分である。
【０１２１】
【数８】
2018031803.tif 000010
【０１２２】
また、投影面Ｓｐ（スクリーン）の画像座標系（ｕs，ｖs）と３次元座標系（ｘs，ｙs，ｚs）は、下記式（１９）によって関係付けることができる。
【０１２３】
【数９】
2018031803.tif 000011
【０１２４】
そして、上記式（１８）および（１９）を用いると、投影面Ｓｐ（スクリーン）の画像座標系（ｕs，ｖs）と、プロジェクタ装置１００の画像座標系（ｕp，ｖp）は、下記式（２０）によって関係付けることができる。
【０１２５】
【数１０】
2018031803.tif 000012
【０１２６】
これらのことから、プロジェクタ装置１００の画像座標（ｕp，ｖp，１）と、投影面Ｓｐ（スクリーン）の画像座標系（ｕs，ｖs，１）は、下記式（２１）によって関係付けることができる。このため、補正部４０４は、下記式（２１）を用いて、下記式（２２）のように、ホモグラフィ行列Ｈを算出することができる。
【０１２７】
【数１１】
2018031803.tif 000013
【０１２８】
（プロジェクタ装置１００の歪み補正処理手順）
つぎに、図１５〜図１８を用いて、プロジェクタ装置１００の歪み補正処理手順について説明する。歪み補正処理は、例えば、投影対象となる動画を形成する複数のフレームのフレーム単位で実行される。また、複数のフレームの先頭には、黒一色のフレームが挿入されている場合を想定する。
【０１２９】
図１５は、プロジェクタ装置１００の歪み補正処理手順の一例を示すフローチャートである。図１５のフローチャートにおいて、まず、プロジェクタ装置１００は、投影対象の補正済みフレームを取得する（ステップＳ１５０１）。具体的には、例えば、プロジェクタ装置１００は、補正済みフレームバッファ６００（図６参照）の「ｔａｉｌ＋１」番のエントリから特定される補正済みフレームを、メモリ３０２内のＶＲＡＭから読み出す。
【０１３０】
つぎに、プロジェクタ装置１００は、取得した補正済みフレームが黒一色のフレームであるか否かを判断する（ステップＳ１５０２）。ここで、黒一色のフレームの場合（ステップＳ１５０２：Ｙｅｓ）、プロジェクタ装置１００は、投影部１０１をＯＦＦにして、撮像部１０２によって撮像された撮像画像を取得する（ステップＳ１５０３）。
【０１３１】
そして、プロジェクタ装置１００は、取得した撮像画像を背景画像ＢＰとしてメモリ３０２に記録して（ステップＳ１５０４）、本フローチャートによる一連の処理を終了する。これにより、非投影時に撮像された画像を背景画像ＢＰとして取得することができる。なお、背景画像ＢＰが記録されると、投影部１０１はＯＦＦからＯＮに復帰する。
【０１３２】
また、ステップＳ１５０２において、黒一色のフレームではない場合（ステップＳ１５０２：Ｎｏ）、プロジェクタ装置１００は、撮像部１０２によって撮像された撮像画像Ｐを取得する（ステップＳ１５０５）。撮像画像Ｐは、ステップＳ１５０１において取得された補正済みフレームが投影された投影面Ｓｐを撮像した画像である。
【０１３３】
そして、プロジェクタ装置１００は、取得した撮像画像Ｐと、メモリ３０２に記録された背景画像ＢＰとの差分を取って、撮像画像Ｐから背景色を打ち消す（ステップＳ１５０６）。つぎに、プロジェクタ装置１００は、補正済みフレームおよび撮像画像Ｐそれぞれの特徴点ｐ，ｐ’を抽出する特徴点抽出処理を実行する（ステップＳ１５０７）。なお、特徴点抽出処理の具体的な処理手順については、図１６を用いて後述する。
【０１３４】
そして、プロジェクタ装置１００は、特徴点ｐ，ｐ’それぞれの各画像上でのｘ座標の差分に基づいて、投影面Ｓｐの傾きａ、ｂ、ｃを推定する傾き推定処理を実行する（ステップＳ１５０８）。なお、傾き推定処理の具体的な処理手順については、図１７を用いて後述する。
【０１３５】
つぎに、プロジェクタ装置１００は、投影対象の次のフレームを歪み補正する補正処理を実行する（ステップＳ１５０９）。なお、補正処理の具体的な処理手順については、図１８を用いて後述する。そして、プロジェクタ装置１００は、補正済みフレームをメモリ３０２内のＶＲＡＭに書き込んで（ステップＳ１５１０）、本フローチャートによる一連の処理を終了する。
【０１３６】
これにより、投影対象の画像の視認性を確保しつつ歪み補正をすることができる。なお、ステップＳ１５１０において、プロジェクタ装置１００は、例えば、補正済みフレームバッファ６００のｔａｉｌの先のエントリに補正済みフレームのポインタを書き込んで、ｔａｉｌを１つ進める。
【０１３７】
＜特徴点抽出処理手順＞
つぎに、図１５に示したステップＳ１５０７の特徴点抽出処理の具体的な処理手順について説明する。
【０１３８】
図１６は、特徴点抽出処理の具体的処理手順の一例を示すフローチャートである。図１６のフローチャートにおいて、まず、プロジェクタ装置１００は、補正済みフレームおよび撮像画像Ｐの各画像を第１の走査方向に走査して、画素間の輝度差が閾値α以上となる特徴点ｐ１，ｐ’１を抽出する（ステップＳ１６０１）。
【０１３９】
なお、補正済みフレームは、図１５に示したステップＳ１５０１において取得された画像である。また、撮像画像Ｐは、ステップＳ１５０５において取得された画像である。また、第１の走査方向は、各画像を左上から右下まで水平に走査する走査方向である。
【０１４０】
つぎに、プロジェクタ装置１００は、補正済みフレームおよび撮像画像Ｐの各画像を第２の走査方向に走査して、画素間の輝度差が閾値α以上となる特徴点ｐ２，ｐ’２を抽出する（ステップＳ１６０２）。なお、第２の走査方向は、各画像を右中央から左上（あるいは、左下）まで水平に走査する走査方向である。
【０１４１】
つぎに、プロジェクタ装置１００は、補正済みフレームおよび撮像画像Ｐの各画像を第３の走査方向に走査して、画素間の輝度差が閾値α以上となる特徴点ｐ３，ｐ’３を抽出する（ステップＳ１６０３）。なお、第３の走査方向は、各画像を左下から右上まで水平に走査する走査方向である。
【０１４２】
そして、プロジェクタ装置１００は、各画像からそれぞれ異なる位置の特徴点ｐ１〜ｐ３，ｐ’１〜ｐ’３が抽出されたか否かを判断する（ステップＳ１６０４）。ここで、特徴点ｐ１〜ｐ３，ｐ’１〜ｐ’３が抽出された場合（ステップＳ１６０４：Ｙｅｓ）、プロジェクタ装置１００は、抽出成功と判断して（ステップＳ１６０５）、特徴点抽出処理を呼び出したステップに戻る。
【０１４３】
一方、特徴点ｐ１〜ｐ３，ｐ’１〜ｐ’３が抽出されなかった場合には（ステップＳ１６０４：Ｎｏ）、プロジェクタ装置１００は、抽出失敗と判断して（ステップＳ１６０６）、特徴点抽出処理を呼び出したステップに戻る。
【０１４４】
これにより、補正済みフレームおよび撮像画像Ｐの各画像から、同じ箇所を表している可能性が高い特徴点の組み合わせ（対応点「特徴点ｐ１，ｐ’１」、「特徴点ｐ２，ｐ’２」、「特徴点ｐ３，ｐ’３」）を抽出することができる。
【０１４５】
＜傾き推定処理手順＞
つぎに、図１５に示したステップＳ１５０８の傾き推定処理の具体的な処理手順について説明する。
【０１４６】
図１７は、傾き推定処理の具体的処理手順の一例を示すフローチャートである。図１７のフローチャートにおいて、まず、プロジェクタ装置１００は、特徴点抽出処理において抽出成功したか否かを判断する（ステップＳ１７０１）。
【０１４７】
ここで、抽出成功した場合（ステップＳ１７０１：Ｙｅｓ）、プロジェクタ装置１００は、特徴点ｐ１〜ｐ３，ｐ’１〜ｐ’３のうち対応点となる未選択の特徴点ｐ，ｐ’を選択する（ステップＳ１７０２）。そして、プロジェクタ装置１００は、上記式（１）を用いて、選択した特徴点ｐ，ｐ’のｘ座標の差分ｘdiffを算出する（ステップＳ１７０３）。
【０１４８】
つぎに、プロジェクタ装置１００は、光切断法により、算出した特徴点ｐ，ｐ’のｘ座標の差分ｘdiffに基づいて、特徴点ｐの深度ｚを算出する（ステップＳ１７０４）。そして、プロジェクタ装置１００は、特徴点ｐの深度ｚに基づいて、特徴点ｐの投影面Ｓｐ上での位置を示す３次元座標（Ｘ，Ｙ，Ｚ）を算出する（ステップＳ１７０５）。
【０１４９】
つぎに、プロジェクタ装置１００は、特徴点ｐ１〜ｐ３，ｐ’１〜ｐ’３のうち対応点となる未選択の特徴点ｐ，ｐ’があるか否かを判断する（ステップＳ１７０６）。ここで、未選択の特徴点ｐ，ｐ’がある場合（ステップＳ１７０６：Ｙｅｓ）、プロジェクタ装置１００は、ステップＳ１７０２に戻る。
【０１５０】
一方、未選択の特徴点ｐ，ｐ’がない場合（ステップＳ１７０６：Ｎｏ）、プロジェクタ装置１００は、上記式（４）の平面の方程式を解くことにより、各特徴点ｐ１〜ｐ３の３次元座標が示す点を通る平面の傾きａ、ｂ、ｃを算出する（ステップＳ１７０７）。そして、プロジェクタ装置１００は、算出した平面の傾きａ、ｂ、ｃを、投影面Ｓｐの傾きａ、ｂ、ｃとして推定して（ステップＳ１７０８）、傾き推定処理を呼び出したステップに戻る。
【０１５１】
また、ステップＳ１７０１において、特徴点抽出処理において抽出失敗した場合（ステップＳ１７０１：Ｎｏ）、プロジェクタ装置１００は、前回推定された投影面Ｓｐの傾きａ、ｂ、ｃを、投影面Ｓｐの傾きａ、ｂ、ｃとして推定して（ステップＳ１７０９）、傾き推定処理を呼び出したステップに戻る。
【０１５２】
これにより、プロジェクタ装置１００に対する投影面Ｓｐの傾きａ、ｂ、ｃを推定することができる。
【０１５３】
＜補正処理手順＞
つぎに、図１５に示したステップＳ１５０９の補正処理の具体的な処理手順について説明する。
【０１５４】
図１８は、補正処理の具体的処理手順の一例を示すフローチャートである。図１８のフローチャートにおいて、まず、プロジェクタ装置１００は、前回推定された投影面Ｓｐの傾きａ、ｂ、ｃから、Ｘ軸、Ｙ軸周りの回転量θ１、ψ１を算出する（ステップＳ１８０１）。
【０１５５】
つぎに、プロジェクタ装置１００は、今回推定された投影面Ｓｐの傾きａ、ｂ、ｃから、Ｘ軸、Ｙ軸周りの回転量θ２、ψ２を算出する（ステップＳ１８０２）。そして、プロジェクタ装置１００は、Ｘ軸周りの回転量θ１、θ２およびＹ軸周りの回転量ψ１、ψ２に基づいて、傾きの変化量θdiffおよびψdiffを算出する（ステップＳ１８０３）。
【０１５６】
つぎに、プロジェクタ装置１００は、「θdiff≦θth」かつ「ψdiff≦ψth」であるか否かを判断する（ステップＳ１８０４）。ここで、「θdiff≦θth」かつ「ψdiff≦ψth」である場合（ステップＳ１８０４：Ｙｅｓ）、プロジェクタ装置１００は、投影面Ｓｐの傾きａ、ｂ、ｃによって生じる変形の逆変形を加えて次のフレームを補正して（ステップＳ１８０５）、補正処理を呼び出したステップに戻る。
【０１５７】
一方、「θdiff≦θth」かつ「ψdiff≦ψth」ではない場合（ステップＳ１８０４：Ｎｏ）、プロジェクタ装置１００は、次のフレームを黒一色のフレームに差し替えて（ステップＳ１８０６）、補正処理を呼び出したステップに戻る。なお、黒一色のフレームに差し替えた次のフレームについても、補正済みフレームとして扱う。
【０１５８】
これにより、投影面Ｓｐの正面から見た際に、投影された画像が歪んで見えないようにフレームを補正することができる。また、プロジェクタ装置１００が移動したと判断できる程度に投影面Ｓｐの傾きａ、ｂ、ｃが変化した場合に、背景画像ＢＰを更新することができる。
【０１５９】
以上説明したように、実施の形態にかかるプロジェクタ装置１００によれば、投影部１０１によって複数のフレームのうちの第１のフレームが投影された投影面Ｓｐを撮像した撮像画像Ｐおよび第１のフレームそれぞれの特徴点ｐ，ｐ’を抽出することができる。そして、プロジェクタ装置１００によれば、抽出した特徴点ｐ，ｐ’それぞれの各画像上での位置の差に基づいて、自装置と投影面Ｓｐとの位置関係を特定し、特定した位置関係に応じて、複数のフレームのうちの第２のフレームを歪み補正することができる。
【０１６０】
これにより、プロジェクタ装置１００が移動した場合であっても、投影対象のフレームの視認性を確保しつつ歪み補正を行うことができる。
【０１６１】
また、プロジェクタ装置１００によれば、抽出した特徴点ｐ，ｐ’それぞれの各画像上での位置の差に基づいて、撮像部１０２の光学中心から投影面Ｓｐまでの距離を表す深度ｚを算出し、算出した深度ｚに基づいて、投影面Ｓｐの傾きａ、ｂ、ｃを算出することができる。そして、プロジェクタ装置１００によれば、算出した投影面Ｓｐの傾きａ、ｂ、ｃに基づいて、第２のフレームを歪み補正することができる。
【０１６２】
これにより、光切断法を利用して、プロジェクタ装置１００に対する投影面Ｓｐの傾きａ、ｂ、ｃを推定して、投影面Ｓｐの傾きａ、ｂ、ｃによって生じるフレームの歪みを補正することができる。
【０１６３】
また、プロジェクタ装置１００によれば、非投影時に撮像部１０２によって撮像された背景画像ＢＰを取得し、撮像画像Ｐと背景画像ＢＰとの差分を取って撮像画像Ｐから背景色を打ち消すことができる。そして、プロジェクタ装置１００によれば、背景色を打ち消した撮像画像Ｐから特徴点ｐを抽出することができる。
【０１６４】
これにより、撮像画像Ｐ上の背景部分から特徴点ｐが抽出されるのを防いで、撮像画像Ｐおよび第１のフレームのそれぞれから、同じ箇所を表している可能性が高い特徴点ｐ，ｐ’の組み合わせを精度よく抽出することができる。
【０１６５】
また、プロジェクタ装置１００によれば、算出した投影面Ｓｐの傾きａ、ｂ、ｃと、前回算出した投影面Ｓｐの傾きａ、ｂ、ｃとの変化量が閾値より大きくなった場合に、背景画像ＢＰを更新することができる。
【０１６６】
これにより、プロジェクタ装置１００の姿勢が大きく変化して、背景（背景色）が大きく変化した可能性が高くなった場合に、背景画像ＢＰを更新することができる。換言すれば、プロジェクタ装置１００を大きく動かしており、投影された画像が多少ちらついても気付きにくいタイミングを利用して、背景画像ＢＰを更新することができる。
【０１６７】
また、プロジェクタ装置１００によれば、所定の走査方向それぞれについて、撮像画像Ｐおよび第１のフレームそれぞれを走査することにより、走査方向に連続する画素間の輝度差Ｂdiffが閾値α以上となる点を特徴点ｐ，ｐ’として抽出することができる。
【０１６８】
これにより、撮像画像Ｐおよび第１のフレームの各画像において輝度変化が大きい点を特徴点ｐ，ｐ’として抽出することができる。また、同じ抽出条件（同じ走査方向、同じ閾値α）で各画像から特徴点ｐ，ｐ’を抽出するため、同じ箇所を表している可能性が高い特徴点ｐ，ｐ’の組み合わせを抽出することができる。さらに、異なる複数の走査方向を設定することで、各画像において特徴点同士ができるだけ離れた点となるように複数の特徴点（例えば、特徴点ｐ１〜ｐ３，ｐ’１〜ｐ’３）を抽出することができ、深度ｚの誤差が平面の傾きａ、ｂ、ｃに与える影響を抑えることができる。
【０１６９】
また、プロジェクタ装置１００によれば、特徴点ｐ，ｐ’を抽出する際に、複数のフレームのうち、撮像画像Ｐが撮像される一定時間前に投影されたフレームを用いることができる。これにより、遅延時間Ｔがフレームレートを上回る場合であっても、同じ箇所を表している可能性が高い特徴点ｐ，ｐ’の組み合わせを精度よく抽出して、投影面Ｓｐの傾きａ、ｂ、ｃの推定精度の低下を防ぐことができる。
【０１７０】
これらのことから、プロジェクタ装置１００によれば、任意の動画を投影・撮像して自装置と投影面Ｓｐとの位置関係を推定し、投影対象のフレームを歪み補正することができる。これにより、プロジェクタ装置１００を頻繁に移動させるような場合であっても、投影対象のフレームの視認性を確保しつつ歪み補正を行うことが可能となり、プロジェクタ装置１００を利用して情報の表示・入力等を行う際のユーザの利便性を向上させることができる。また、深度センサのように複数のプロジェクタ（可視光プロジェクタ＋赤外線プロジェクタ）を必要としないため、深度センサを採用する場合に比べて、装置の小型化および省電力化を図ることができる。
【符号の説明】
【０１７１】
１００  プロジェクタ装置
１０１  投影部
１０２  撮像部
１０３  制御部
３００  バス
３０１  ＣＰＵ
３０２  メモリ
３０３  ディスクドライブ
３０４  ディスク
３０５  Ｉ／Ｆ
３０６  入力装置
４０１  取得部
４０２  抽出部
４０３  特定部
４０４  補正部
ａ，ｂ，ｃ  傾き
Ｐ  撮像画像
ｐ，ｐ’，ｐ１，ｐ’１，ｐ２，ｐ’２，ｐ３，ｐ’３  特徴点
Ｓｉ  撮像面
Ｓｐ  投影面
ｚ  深度
【図１】
2018031803.tif 000014
【図２】
2018031803.tif 000015
【図３】
2018031803.tif 000016
【図４】
2018031803.tif 000017
【図５】
2018031803.tif 000018
【図６】
2018031803.tif 000019
【図７】
2018031803.tif 000020
【図８】
2018031803.tif 000021
【図９】
2018031803.tif 000022
【図１０】
2018031803.tif 000023
【図１１】
2018031803.tif 000024
【図１２】
2018031803.tif 000025
【図１３】
2018031803.tif 000026
【図１４】
2018031803.tif 000027
【図１５】
2018031803.tif 000028
【図１６】
2018031803.tif 000029
【図１７】
2018031803.tif 000030
【図１８】
2018031803.tif 000031