(57)【要約】【課題】  詳細且つ高い信頼性で対象物までの距離を特定できる測距方法、そのプログラム、そのプログラムを記録した記録媒体、測距装置及びこれを有するプロジェクタを提供する。【解決手段】  最小の相関値Ｓ(i)と、これと隣接するシフト量（ｉ−１，ｉ＋１）の２つの相関値Ｓ(i-1)，Ｓ(i+1)と、２つの相関値Ｓ(i-1)，Ｓ(i+1)において大きい方の相関値（これをＳ(i-1)とする）に隣接し且つシフト量がｉでない相関値（これはＳ(i-2)となる）との少なくとも合計４つに基づいて、画素ピッチ間を補間する。この際、点Ｐi（ｉ，Ｓ(i)）と点Ｐi-1（ｉ−１，Ｓ(i-1)）とを通る直線の傾きＡと、点Ｐi（ｉ，Ｓ(i)）と点Ｐi-2（ｉ−２，Ｓ(i-2)）とを通る直線の傾きＢとに基づいて傾きＣを算出する。傾きＣで点Ｐi（ｉ，Ｓ(i)）を通る直線（ｙ＝Ｃｘ＋Ｆ）と、傾き−Ｃで点Ｐi+1（ｉ＋１，Ｓ(i+1)）を通る直線（ｙ＝−Ｃｘ＋Ｇ）との交点を位相差ΔＸとして算出する。【選択図】          図５
2005043225.tif 000002
【特許請求の範囲】
【請求項１】
受光素子が配列された撮像手段を用いて同一の対象物を撮像することで取得された第１及び第２の画像の位相差に基づいて前記対象物までの距離を測定する測距方法であって、
前記第１の画像における第１の画素領域に対する前記第２の画像における第２の画素領域の相関値を、該第２の画素領域の位置毎に算出する第１のステップと、
前記相関値において最小値を示す第１の相関値を特定する第２のステップと、
前記第１の相関値に対応する位置に隣接する位置での第２及び第３の相関値を特定する第３のステップと、
前記第２及び第３の相関値のうち大きい方の相関値に隣接し且つ前記第１の相関値でない第４の相関値を特定する第４のステップと、
前記第１から第４の相関値に基づいて前記受光素子間が補間された位相差を検出する第５のステップと
を有することを特徴とする測距方法。
【請求項２】
前記第５のステップは、前記第１の相関値と前記第２の相関値とを結ぶ直線の第１の傾きと、前記第１の相関値と前記第４の相関値とを結ぶ直線の第２の傾きとに基づいて、第３の傾きを設定するステップと、前記第３の傾きであって前記第１の相関値を通る直線と、前記第３の傾きと正負が反対の第４の傾きであって前記第３の相関値を通る直線との交点に基づいて前記受光素子間が補間された位相差を検出するステップとを有することを特徴とする請求項１記載の測距方法。
【請求項３】
受光素子が配列された撮像手段を用いて同一の対象物を撮像することで取得された第１及び第２の画像の位相差に基づいて前記対象物までの距離を算出するコンピュータを機能させるためのプログラムであって、
前記第１の画像における第１の画素領域に対する前記第２の画像における第２の画素領域の相関値を、該第２の画素領域の位置毎に算出する第１の処理と、
前記相関値において最小値を示す第１の相関値を特定する第２の処理と、
前記第１の相関値に対応する位置に隣接する位置での第２及び第３の相関値を特定する第３の処理と、
前記第２及び第３の相関値のうち大きい方の相関値に隣接し且つ前記第１の相関値でない第４の相関値を特定する第４の処理と、
前記第１から第４の相関値に基づいて前記受光素子間が補間された位相差を検出する第５の処理と
を前記コンピュータに実行させるためのプログラム。
【請求項４】
請求項３記載の前記プログラムを記録した記録媒体。
【請求項５】
受光素子が配列された撮像手段を用いて同一の対象物を撮像することで取得された第１及び第２の画像の位相差に基づいて前記対象物までの距離を測定する測距装置において、
前記第１の画像における第１の画素領域に対する前記第２の画像における第２の画素領域の相関値を、該第２の画素領域の位置毎に算出する相関値演算手段と、
前記相関値において最小値を示す第１の相関値と、該第１の相関値に対応する位置に隣接する位置での第２及び第３の相関値と、該第２及び第３の相関値のうち大きい方の相関値に隣接し且つ前記第１の相関値でない第４の相関値とを特定し、該第１から第４の相関値に基づいて前記受光素子間が補間された位相差を検出する位相差演算手段と
を有することを特徴とする測距装置。
【請求項６】
前記位相差演算手段で検出された前記位相差に基づいて前記対象物までの距離を演算する対象物距離演算手段を有することを特徴とする請求項５記載の測距装置。
【請求項７】
請求項６記載の前記測距装置と、
所定の映像をレンズを介して前記対象物へ投影する投影手段と、
前記測距装置で演算された前記対象物までの距離に基づいて前記レンズの合焦位置を制御する合焦制御手段と
を有することを特徴とするプロジェクタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、測距方法、そのプログラム、そのプログラムを記録した記録媒体、測距装置及びこれを有するプロジェクタに関し、特にパッシブ方式を採用した測距方法、そのプログラム、そのプログラムを記録した記録媒体、測距装置及びこれを有するプロジェクタに関する。
【背景技術】
【０００２】
従来、被写体や結像面等と、受光面や光源等との距離を測定する測距装置には、アクティブ方式による測距方法とパッシブ方式による測距方法との何れかが採用されていた。
【０００３】
アクティブ方式による測距方法とは、被写体や結像面（以下、対象物という）に赤外線や可視光等の光を時系列に沿って動的に照射し、これを撮像して得られた複数の画像に基づいて、対象物までの距離を測定する方法である。
【０００４】
また、パッシブ方式による測距方法とは、自然光を利用して対象物を異なる位置から撮像し、得られた複数の画像に基づいて、対象物までの距離を測定する方法である。
【０００５】
これらの測距方法では、一般的に複数のＣＣＤ（Charge-Coupled Device）がライン状に配列されたラインセンサ等の撮像手段が用いられ、これを用いて対象物の画像を取得していた。
【０００６】
しかしながら、ＣＣＤ等の撮像素子が複数配列された撮像手段を用いた場合、異なる画像におけるパターンの位相差は、撮像素子の画素の間隔（以下、画素ピッチという）を最小単位とする倍数になってしまう。すなわち、実際の位相差を画素ピッチで除算した残りの位相差は誤差に含まれてしまっていた。対象物までの距離は位相データに基づいて算出される値である。このため、対象物までの距離は画素ピッチの倍数に基づく距離としてしか測定することができず、これ以外の距離を正確に求めることが不可能であった。
【０００７】
また、位相差に含まれる誤差は、対象物までの距離の演算過程において、画素ピッチと撮像手段の光軸の距離（以下、基線長という）との比に基づいて増幅される。また、一般的に画素ピッチに対して基線長は非常に長い。従って、上記のような誤差が位相差に含まれると、算出した対象物までの距離が実際の対象物までの距離から大きく外れた値となってしまう。
【０００８】
このような問題を解決する技術としては、例えば以下に示す特許文献１（特に図１１参照）に開示された方法が存在する。これを図１を用いて以下に説明する。
【０００９】
特許文献１による方法では、撮像手段で得られた２つの画像における画素（又は複数の画素の総和）の相関値（ｓ）を画素位置毎に求め、求めた相関値（ｓ）のうち最小の相関値（ｓ(j)：これに対応する画素位置をｊとする）と、これの前後の画素位置（ｊ−１，ｊ＋１）における相関値（ｓ(j-1)，ｓ(j+1)）とを用いる。尚、以下の説明では、図１に示すように、これらをプロットしたグラフを用いて説明する。図１において、点ｐjは相関値ｓ(j)をプロットした点であり、点ｐj-1は相関値ｓ(j-1)をプロットした点であり、点ｐj+1は相関値ｓ(j+1)をプロットした点である。
【００１０】
上記の３つの相関値において、従来では先ず、最小の相関値ｓ(j)の点ｐjと３番目に小さい相関値（言い換えれば３つのうちの最大の相関値：図１ではｓ(j-1)）の点ｐj-1とを結ぶ直線（ｙ＝ａｘ＋ｄ）を引く。ここで、傾きａは[（ｓ(j)−ｓ(j-1)）/ｊ−（ｊ−１）]で求めることができる。また、定数ｄは点ｐj及び点ｐj-1を通るように傾きａの直線を引くことで求めることができる。
【００１１】
次に、２番目に小さい相関値（図１ではｓ(j+1)）の点ｐj+1を通り、且つ傾きが−ａの直線（ｙ＝−ａｘ＋ｅ）を引く。ここで、定数ｅは点ｐj+1を通るように傾き−ａの直線を引くことで求めることができる。
【００１２】
このように２本の直線を引くと、次にこれらの交点ｇを求め、これの画素位置ｊgを特定する。これにより、画素位置ｊ及びｊ＋１の間が補間され、画素ピッチより細かく画素位置を算出することができる。
【００１３】
また、この他、画素ピッチ間を補間して細かく画素位置を算出する方法としては、例えば特許文献２（特に図２）に開示される方法が存在する。
【特許文献１】特開平３−３３７０７号公報
【特許文献２】特開昭６３−１２１００５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記したように求めた相関値（ｓ）には、ラインセンサの特性やレンズ光学系の特性、その他回路や構成上の要因に基づいた誤差（Δj，Δj-1，Δj+1）が含まれる。このため、特許文献１に開示されような、隣接する点（上述ではｐjとｐj-1）を用いた原理では、算出する直線の傾きａが相関値（ｓ）の誤差による影響を強く受けるため、正確な直線を求めることが困難である。このため、特定した交点ｇのシフト量ｊgの信頼性が低く、結果としてこれに基づいて算出した対象物までの距離の信頼性が低いという問題が存在する。
【００１５】
そこで本発明は、詳細且つ高い信頼性で対象物までの距離を特定できる測距方法、そのプログラム、そのプログラムを記録した記録媒体、測距装置及びこれを有するプロジェクタを提供することを目的とする。
【課題を解決するための手段】
【００１６】
かかる目的を達成するために、本発明は、特許請求の範囲における請求項１記載のように、受光素子が配列された撮像手段を用いて同一の対象物を撮像することで取得された第１及び第２の画像の位相差に基づいて前記対象物までの距離を測定する測距方法であって、前記第１の画像における第１の画素領域に対する前記第２の画像における第２の画素領域の相関値を、該第２の画素領域の位置毎に算出する第１のステップと、前記相関値において最小値を示す第１の相関値を特定する第２のステップと、前記第１の相関値に対応する位置に隣接する位置での第２及び第３の相関値を特定する第３のステップと、前記第２及び第３の相関値のうち大きい方の相関値に隣接し且つ前記第１の相関値でない第４の相関値を特定する第４のステップと、前記第１から第４の相関値に基づいて前記受光素子間が補間された位相差を検出する第５のステップとを有して構成される。最小の相関値とこれに隣接する２つの相関値とだけでなく、これらの相関値のうち最も大きい相関値に隣接する相関値（最小の相関値でない）も用いて、画素ピッチ間を補間して位相差を求めることで、相関値に含まれる誤差の影響を低減し、より正確に位相差を求めることが可能となる。結果として詳細且つ高い信頼性で対象物までの距離を特定することができる。
【００１７】
請求項１記載の前記第５のステップは、例えば請求項２記載のように、前記第１の相関値と前記第２の相関値とを結ぶ直線の第１の傾きと、前記第１の相関値と前記第４の相関値とを結ぶ直線の第２の傾きとに基づいて、第３の傾きを設定するステップと、前記第３の傾きであって前記第１の相関値を通る直線と、前記第３の傾きと正負が反対の第４の傾きであって前記第３の相関値を通る直線との交点に基づいて前記受光素子間が補間された位相差を検出するステップとを有するように構成することもできる。
【００１８】
また、本発明は、請求項３記載のように、受光素子が配列された撮像手段を用いて同一の対象物を撮像することで取得された第１及び第２の画像の位相差に基づいて前記対象物までの距離を算出するコンピュータを機能させるためのプログラムであって、前記第１の画像における第１の画素領域に対する前記第２の画像における第２の画素領域の相関値を、該第２の画素領域の位置毎に算出する第１の処理と、前記相関値において最小値を示す第１の相関値を特定する第２の処理と、前記第１の相関値に対応する位置に隣接する位置での第２及び第３の相関値を特定する第３の処理と、前記第２及び第３の相関値のうち大きい方の相関値に隣接し且つ前記第１の相関値でない第４の相関値を特定する第４の処理と、前記第１から第４の相関値に基づいて前記受光素子間が補間された位相差を検出する第５の処理とを前記コンピュータに実行させるように構成される。最小の相関値とこれに隣接する２つの相関値とだけでなく、これらの相関値のうち最も大きい相関値に隣接する相関値（最小の相関値でない）も用いて、画素ピッチ間を補間して位相差を求めることで、相関値に含まれる誤差の影響を低減し、より正確に位相差を求めることが可能となる。結果として詳細且つ高い信頼性で対象物までの距離を特定することができる。
【００１９】
また、請求項３記載の前記プログラムは、記録媒体に記録されたものであってもよい。これにより、上記のプログラムを広く頒布することが可能となる。
【００２０】
また、本発明は、請求項５記載のように、受光素子が配列された撮像手段を用いて同一の対象物を撮像することで取得された第１及び第２の画像の位相差に基づいて前記対象物までの距離を測定する測距装置において、前記第１の画像における第１の画素領域に対する前記第２の画像における第２の画素領域の相関値を、該第２の画素領域の位置毎に算出する相関値演算手段と、前記相関値において最小値を示す第１の相関値と、該第１の相関値に対応する位置に隣接する位置での第２及び第３の相関値と、該第２及び第３の相関値のうち大きい方の相関値に隣接し且つ前記第１の相関値でない第４の相関値とを特定し、該第１から第４の相関値に基づいて前記受光素子間が補間された位相差を検出する位相差演算手段とを有して構成される。最小の相関値とこれに隣接する２つの相関値とだけでなく、これらの相関値のうち最も大きい相関値に隣接する相関値（最小の相関値でない）も用いて、画素ピッチ間を補間して位相差を求めることで、相関値に含まれる誤差の影響を低減し、より正確に位相差を求めることが可能となる。結果として詳細且つ高い信頼性で対象物までの距離を特定することができる。
【００２１】
請求項５記載の前記測距装置は、例えば請求項６記載のように、前記位相差演算手段で検出された前記位相差に基づいて前記対象物までの距離を演算する対象物距離演算手段を有して構成されても良い。
【００２２】
また、本発明は、請求項７記載のように、請求項６記載の前記測距装置と、所定の映像をレンズを介して前記対象物へ投影する投影手段と、前記測距装置で演算された前記対象物までの距離に基づいて前記レンズの合焦位置を制御する合焦制御手段とを有して構成される。最小の相関値とこれに隣接する２つの相関値とだけでなく、これらの相関値のうち最も大きい相関値に隣接する相関値（最小の相関値でない）も用いて、画素ピッチ間を補間して位相差を求めることで、相関値に含まれる誤差の影響を低減し、より正確に位相差を求めることが可能となり、結果として詳細且つ高い信頼性で対象物までの距離を特定することができるため、より良質な映像を投影できるプロジェクタが実現できる。
【発明の効果】
【００２３】
以上のように、本発明によれば、詳細且つ高い信頼性で対象物までの距離を特定できる測距方法、そのプログラム、そのプログラムを記録した記録媒体、測距装置及びこれを有するプロジェクタが実現できる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明を実施するための最良の形態を図面と共に詳細に説明する。
【実施例１】
【００２５】
まず、本発明による実施例１について図面を用いて詳細に説明する。図２は、本実施例によるプロジェクタ１の構成を示すブロック図である。図２に示すように、プロジェクタ１は測距装置１Ａを有して構成される。測距装置１Ａは、集光レンズで構成されたレンズ１１ａ，１１ｂとラインセンサ１２ａ，１２ｂとを有し、レンズ１１ａ，１１ｂで形成される２つの光学系で撮像された画素データ列に基づいて、レンズ１１ａ（又は１１ｂ）から対象物である結像面２までの距離Ｌを測定する。
【００２６】
測距装置１Ａの構成をより詳細に説明する。測距装置１Ａは、２つの光学系を形成する１対のレンズ１１ａ及び１１ｂと、レンズ１１ａ，１１ｂとそれぞれ対応づけられたラインセンサ１２ａ，１２ｂと、ラインセンサ１２ａ，１２ｂで撮像された画素データ列（Ｌ側，Ｒ側）を出力する出力部１３と、画像データ列（Ｌ側，Ｒ側）に基づいて結像面２までの距離を演算するＣＰＵ（Central Processing Unit）１４と、ＣＰＵ１４から出力されたデータを一時格納するメモリ部１５とを有して構成される。
【００２７】
この構成において、１対のレンズ１１ａ，１１ｂは結像面２の画像を１対のラインセンサ１２ａ，１２ｂにそれぞれ結像させる。ラインセンサ１２ａ，１２ｂは、例えばＣＣＤ（Charge-Coupled Device）等の受光素子（画素ともいう）１２１（図３参照）が複数個、ライン状に配列されて構成された撮像手段である。１つの画素は、レンズ１１ａ又は１１ｂを介して結像された結像面２の画像の光量に対応する電気信号を出力する。尚、ラインセンサ１２ａ，１２ｂは例えば１６２個の画素が一列に配列されている。出力部１３は１対のラインセンサ１２ａ，１２ｂで得られた画素データ列（Ｌ側，Ｒ側）をＣＰＵ１４に出力する。ＣＰＵ１４はメモリ部１５に格納してある種々の動作プログラムや各種データに基づいて、入力された１対の画素データ列（Ｌ側，Ｒ側）から距離Ｌを算出する。
【００２８】
また、プロジェクタ１は、上記の構成の他に、ＣＰＵ１４から出力された制御データに基づいて投影装置１８側の対物レンズ１７を制御する合焦制御部１６と、対物レンズ１７を介して結像面２に映像を投影する投影装置１８とを有して構成される。
【００２９】
次に、本実施例による測距方法の原理を図面を用いて説明する。尚、以下の説明では、パッシブ方式による測距方法を例に挙げて説明する。
【００３０】
図２に示すように、本実施例による測距装置１Ａはラインセンサ１２ａ／１２ｂとレンズ１１ａ／１１ｂとを含む光学系が複数（図２では２つ）用いられて構成されている。レンズ１１ａ，１１ｂは、焦点距離ｆが同等の集光レンズであり、これらの光軸Ｃa，Ｃbが平行となるよう配置される。また、ラインセンサ１２ａ，１２ｂは、それぞれ対応するレンズ１１ａ，１１ｂと同等の距離（焦点距離ｆ）に配置される。従って、レンズ１１ａとラインセンサ１２ａとが形成する光学系とレンズ１１ｂとラインセンサ１２ｂとが形成する光学系とは、同等で且つ光軸が平行となる。この詳細な構成を図３に示す。
【００３１】
図３に示すように、レンズ１１ａ，１１ｂにおける光軸Ｃa，Ｃb間の距離（これを基線長Ｘとする）と比較して結像面２までの距離Ｌが一般的に十分長いため、何れか一方の光学系を基準とすると（以下の説明ではレンズ１１ａを含む光学系を基準とする）、結像面２における任意の点Ｏ（点Ｏは特徴点を形成する画像であることが好ましい）とこれが投影されるラインセンサ１２ａ上の画素位置とを結ぶ直線（但し、レンズによる光軸の変化は無いと見なす）は、基準とした光学系におけるレンズ１１ａの光軸と一致すると見なすことができる。
【００３２】
そこで、ラインセンサ１２ａ，１２ｂそれぞれにおいて点Ｏが投影された画素位置の差、すなわちラインセンサ１２ａ，１２ｂにおける投影された画像の位相差をΔＸとすると、レンズ１１ａから結像面２までの距離Ｌは、基線長Ｘと焦点距離ｆと位相差ΔＸとに基づいて、三角形の相似の関係から容易に特定することができる。すなわち光軸方向を高さ方向とすると、底辺がΔＸで高さがｆの直角三角形と、底辺がＸで高さがＬの直角三角形とが相似となるため、Ｘ：ΔＸ＝Ｌ：ｆの関係より、距離Ｌを容易に算出することができる。尚、基線長Ｘと焦点距離ｆとは、プロジェクタ１の設計時に予め定められた値である。
【００３３】
このような構成において、例えば図４（ａ）に示すような画素データ列（Ｌ側画素データ列，Ｒ側画素データ列）がラインセンサ１２ａ，１２ｂから読み出された場合、本実施例では、先ず、基準とする光学系から読み出した画素データ列（本説明ではＬ側画素データ列）における任意の領域（例えば画素値の変化量が大きい領域＝特徴点を含む領域）を演算領域（これをＬ側演算領域という）として設定する。このＬ側演算領域の画素数は予め定めておくとよい。尚、図４では、Ｌ側画素データ列における左端の画素（これを左端画素という）を基準として、これから４番目〜８番目の画素をＬ側演算領域として設定した。
【００３４】
このように基準である光学系から得られたＬ側画像データ列にＬ側演算領域を設定すると、次に、Ｌ側演算領域に含まれる画素の画素値を合計し（図４（ｂ）参照）、これを所定のメモリ等（例えば図２におけるＣＰＵ１４内部のキャッシュ等）に格納しておく。
【００３５】
次に、図４（ｂ）に示すように、他方の画素データ列（本説明ではＲ側画素データ列）における左端画素を基準として、これからＬ側演算領域の画素数と同数の領域を演算領域（これをＲ側演算領域という）として設定し、このＲ側演算領域に含まれる画素の画素値の合計と、所定のメモリに格納されたＬ側演算領域の画素値の合計との差分（これを相関値という）を求める。その後、Ｒ側演算領域を右方向に１画素ずつシフトし、シフト後のＲ側演算領域に含まれる画素の画素値の合計と、Ｌ側演算領域の画素値の合計との相関値を求める。尚、この動作は、Ｒ側演算領域にＲ側画素データ列における右端の画素が含まれるまで繰り返される。これにより、図４（ｃ）に示すように、左端画素からのシフト量（Ｉ）に対応した相関値（Ｓ）が得られる。但し、本説明では、ラインセンサ１２ａ及び１２ｂの感度特性が同一で且つ位相差ΔＸがラインセンサ１２ａ，１２ｂの画素ピッチの倍数である（理想的な構成）とする。また、シフト量（Ｉ）とは、画素ピッチを乗算することで、長さに換算することができる値である。
【００３６】
以上のように求めた相関値（Ｓ）において、２つの画素データ列（Ｌ側，Ｒ側）における同一箇所（例えば図３における点Ｏ付近）が投影された演算領域（Ｌ側，Ｒ側）に対応する相関値（Ｓ）は‘０’となる。図４（ｃ）に示す例では、Ｒ側演算領域を左端画素から右に５画素シフトさせた場合の相関値（Ｓ）が‘０’となっている。また、Ｌ側演算領域が左端画素から３画素シフトさせた領域である。従って、図４に示す例で得られた位相差ΔＸは、画素数で換算すると、２画素として求められる。
【００３７】
但し、位相差ΔＸがラインセンサ１２ａ，１２ｂの画素ピッチの倍数である理想的な構成でない場合、ラインセンサ１２ａ，１２ｂの感度特性が同一であっても相関値（Ｓ）は‘０’とならない。そこで本実施例では、実際の位相差ΔＸを画素ピッチに依存することのない、正確な値を求める。以下に、この際の原理を図面を用いて詳細に説明する。
【００３８】
図５及び６は、画素ピッチに依存することなく、位相差ΔＸを算出するための原理を説明するための図である。尚、図５は、最小の相関値（Ｓi）の点Ｐiに隣り合う点（Ｐi-1，Ｐi+1）のうちシフト量がｉ＋１である点Ｐi+1の相関値Ｓ(i+1)の方が小さい場合の原理を説明するための図であり、図６は、最小の相関値（Ｓi）の点Ｐiに隣り合う点（Ｐi-1，Ｐi+1）のうちシフト量がｉ−１である点Ｐi-1の相関値Ｓ(i-1)の方が小さい場合の原理を説明するための図である。
【００３９】
〔相関値Ｓ(i-1)＞相関値Ｓ(i+1)である場合〕
先ず、相関値Ｓ(i-1)＞相関値Ｓ(i+1)である場合、本実施例では、図５に示すように、最小の相関値（Ｓ(i)：この際のシフト量をｉとする）と、少なくとも最小の相関値Ｓ(i)の前後のシフト量（ｉ−１，ｉ＋１）での相関値（Ｓ(i-1)，Ｓ(i+1)）と、相関値Ｓ(i-1)の前のシフト量（ｉ−２）での相関値Ｓ(i-2)との、少なくとも合計４つの相関値（Ｓ(i-2)，Ｓ(i-1)，Ｓ(i)，Ｓ(i+1)）を用いて、最小単位（画素ピッチ）未満のシフト量を補間し、正確な位相差ΔＸを算出する。尚、以下の説明では、図５に示すように、これらをプロットしたグラフを用いて説明する。図５において、点Ｐiは相関値Ｓ(i)をプロットした点であり、点Ｐi-2は相関値Ｓ(i-2)をプロットした点であり、点Ｐi-1は相関値Ｓ(i-1)をプロットした点であり、点Ｐi+1は相関値Ｓ(i+1)をプロットした点である。
【００４０】
上記の４つの相関値において、本実施例では先ず、相関値Ｓ(i)の点Ｐiと相関値Ｓ(i-1)の点Ｐi-1とを結ぶ直線（ｙ＝Ａｘ＋Ｄ）の傾きを算出する。ここで、傾きＡは以下の式１で求めることができる。尚、定数Ｄは任意定数であり、点Ｐi及び点Ｐi-1を通るように傾きＡの直線を引くことで求めることができる。
【００４１】
【数１】
2005043225.tif 000003
【００４２】
次に、点Ｐi-1に隣り合うもう一方の点Ｐi-2と点Ｐiとを結ぶ直線（ｙ＝Ｂｘ＋Ｅ）の傾きを算出する。ここで、傾きＢは以下の式２で求めることができる。尚、定数Ｅは任意定数であり、点Ｐi及び点Ｐi-2を通るように傾きＢの直線を引くことで求めることができる。
【００４３】
【数２】
2005043225.tif 000004
【００４４】
このように２本の直線の傾きＡ，Ｂを求めると、本実施形態では先ず、傾きＡ及びＢに基づいて、点Ｐiを通る直線（ｙ＝Ｃｘ＋Ｆ）を求める。尚、本実施例では、傾きＡとＢとにそれぞれ重み付けを行うことで、最適な傾きＣを算出できるように構成する。
【００４５】
ここで傾きＣは、傾きＡに対する重み付けを１−α（但し、０≦α≦１）とし、傾きＢに対する重み付けをαとすると、上述の式１及び式２から以下の式３で求めることができる。
【００４６】
【数３】
2005043225.tif 000005
【００４７】
また、直線（ｙ＝Ｃｘ＋Ｆ）が点Ｐi（ｉ，Ｓ(i)）を通るとすると、ｙ軸との交点Ｆは以下の式４で求めることができる。
【００４８】
【数４】
2005043225.tif 000006
【００４９】
以上のように、点Ｐiを通る直線（ｙ＝Ｃｘ＋Ｆ）を求めると、次に傾きが−Ｃであり、且つ点Ｐi+1を通る直線（ｙ＝−Ｃｘ＋Ｇ）、すなわちｙ軸と平行な直線に関して直線（ｙ＝Ｃｘ＋Ｆ）と線対称な直線を求める。傾き−Ｃは上記式３から以下の式５として求めることができる。
【００５０】
【数５】
2005043225.tif 000007
【００５１】
また、直線（ｙ＝−Ｃｘ＋Ｇ）が点Ｐi+1（ｉ＋１，Ｓ(i+1)）を通るとすると、ｙ軸との交点Ｇは以下の式６で求めることができる。
【００５２】
【数６】
2005043225.tif 000008
【００５３】
このように点Ｐiを通る傾きＣの直線（ｙ＝Ｃｘ＋Ｆ）と、点Ｐi+1を通る傾き−Ｃの直線（ｙ＝−Ｃｘ＋Ｇ）とを求めると、次にこれらの直線の交点Ｈを求める。先ず、Ｃｘ＋Ｆ＝−Ｃｘ＋Ｇとすると、交点Ｈのｘ座標は、以下の式７で求めることができる。
【００５４】
【数７】
2005043225.tif 000009
【００５５】
ここで、（Ｇ−Ｆ）は上述した式４及び式６から以下の式８で表すことができる。
【００５６】
【数８】
2005043225.tif 000010
【００５７】
従って、交点Ｈのｘ座標は、以下の式９で求めることができる。すなわち、本実施例で求められる位相差ΔＸは以下の式９のようになる。
【００５８】
【数９】
2005043225.tif 000011
【００５９】
尚、交点Ｈのｙ座標は、直線（ｙ＝Ｃｘ＋Ｆ又はｙ＝−Ｃｘ＋Ｇ）に位相差ΔＸを代入することで求まる。
【００６０】
〔相関値Ｓ(i-1)＜相関値Ｓ(i+1)である場合〕
また、相関値Ｓ(i-1)＞相関値Ｓ(i+1)である場合、本実施例では、図６に示すように、最小の相関値（Ｓ(i)：この際のシフト量をｉとする）と、少なくとも最小の相関値Ｓ(i)の前後のシフト量（ｉ−１，ｉ＋１）での相関値（Ｓ(i-1)，Ｓ(i+1)）と、相関値Ｓ(i+1)の後のシフト量（ｉ＋２）での相関値Ｓ(i+2)との、少なくとも合計４つの相関値（Ｓ(i-1)，Ｓ(i)，Ｓ(i+1)，Ｓ(i+2)）を用いて、最小単位（画素ピッチ）未満のシフト量を補間し、正確な位相差ΔＸを算出する。尚、以下の説明では、図６に示すように、これらをプロットしたグラフを用いて説明する。図６において、点Ｐiは相関値Ｓ(i)をプロットした点であり、点Ｐi-1は相関値Ｓ(i-1)をプロットした点であり、点Ｐi+1は相関値Ｓ(i+1)をプロットした点であり、点Ｐi+2は相関値Ｓ(i+2)をプロットした点である。
【００６１】
上記の４つの相関値において、本実施例では先ず、相関値Ｓ(i)の点Ｐiと相関値Ｓ(i+1)の点Ｐi+1とを結ぶ直線（ｙ＝Ａ’ｘ＋Ｄ’）の傾きを算出する。ここで、傾きＡ’は以下の式１０で求めることができる。尚、定数Ｄ’は任意定数であり、点Ｐi及び点Ｐi+1を通るように傾きＡ’の直線を引くことで求めることができる。
【００６２】
【数１０】
2005043225.tif 000012
【００６３】
次に、点Ｐi+1に隣り合うもう一方の点Ｐi+2と点Ｐiとを結ぶ直線（ｙ＝Ｂ’ｘ＋Ｅ’）の傾きを算出する。ここで、傾きＢ’は以下の式１１で求めることができる。尚、定数Ｅ’は任意定数であり、点Ｐi及び点Ｐi+2を通るように傾きＢ’の直線を引くことで求めることができる。
【００６４】
【数１１】
2005043225.tif 000013
【００６５】
このように２本の直線の傾きＡ’，Ｂ’を求めると、本実施形態では先ず、傾きＡ’及びＢ’に基づいて、点Ｐiを通る直線（ｙ＝Ｃ’ｘ＋Ｆ’）を求める。尚、本実施例では、傾きＡ’とＢ’とにそれぞれ重み付けを行うことで、最適な傾きＣを算出できるように構成する。
【００６６】
ここで傾きＣ’は、傾きＡ’に対する重み付けを１−α（但し、０≦α≦１）とし、傾きＢ’に対する重み付けをαとすると、上述の式１０及び式１１から以下の式１２で求めることができる。
【００６７】
【数１２】
2005043225.tif 000014
【００６８】
また、直線（ｙ＝Ｃ’ｘ＋Ｆ’）が点Ｐi（ｉ，Ｓ(i)）を通るとすると、ｙ軸との交点Ｆ’は以下の式１３で求めることができる。
【００６９】
【数１３】
2005043225.tif 000015
【００７０】
以上のように、点Ｐiを通る直線（ｙ＝Ｃ’ｘ＋Ｆ’）を求めると、次に傾きが−Ｃ’であり、且つ点Ｐi-1を通る直線（ｙ＝−Ｃ’ｘ＋Ｇ’）、すなわちｙ軸と平行な直線に関して直線（ｙ＝Ｃ’ｘ＋Ｆ’）と線対称な直線を求める。傾き−Ｃ’は上記式１２から以下の式１４として求めることができる。
【００７１】
【数１４】
2005043225.tif 000016
【００７２】
また、直線（ｙ＝−Ｃ’ｘ＋Ｇ’）が点Ｐi-1（ｉ−１，Ｓ(i-1)）を通るとすると、ｙ軸との交点Ｇ’は以下の式１５で求めることができる。
【００７３】
【数１５】
2005043225.tif 000017
【００７４】
このように点Ｐiを通る傾きＣ’の直線（ｙ＝Ｃ’ｘ＋Ｆ’）と、点Ｐi-1を通る傾き−Ｃ’の直線（ｙ＝−Ｃ’ｘ＋Ｇ’）とを求めると、次にこれらの直線の交点Ｈ’を求める。先ず、Ｃ’ｘ＋Ｆ’＝−Ｃ’ｘ＋Ｇ’とすると、交点Ｈ’のｘ座標は、以下の式１６で求めることができる。
【００７５】
【数１６】
2005043225.tif 000018
【００７６】
ここで、（Ｇ’−Ｆ’）は上述した式１３及び式１５から以下の式１７で表すことができる。
【００７７】
【数１７】
2005043225.tif 000019
【００７８】
従って、交点Ｈ’のｘ座標は、以下の式１８求めることができる。すなわち、本実施例で求められる位相差ΔＸは以下の式１８のようになる。
【００７９】
【数１８】
2005043225.tif 000020
【００８０】
尚、交点Ｈ’のｙ座標は、直線（ｙ＝Ｃ’ｘ＋Ｆ’又はｙ＝−Ｃ’ｘ＋Ｇ’）に位相差ΔＸを代入することで求まる。
【００８１】
以上のように、画素ピッチに制限されない位相差ΔＸを求めることで、本実施例では正確に対象物までの距離Ｌを求めることが可能となる。
【００８２】
次に、上記した測距方法を実現するＣＰＵ１４の動作について、以下に図面を用いて詳細に説明する。図７は、ＣＰＵ１４が実行するプログラムにより実現された構成を示すブロック図である。尚、これらブロックは、所定の動作プログラムを例えばメモリ部１５等から読み出し、ＣＰＵ１４がこれを実行することで実現できる。
【００８３】
図７に示すように、ＣＰＵ１４は、２つのラインセンサからアナログ信号で入力された画素データ列（Ｌ側，Ｒ側）をデジタル信号に変換するＡ／Ｄ変換部１４−１と、デジタル信号に変換された画素データ列（Ｌ側，Ｒ側）を１対のデータとして１対のメモリ領域１４−２Ｌ，１４−２Ｒにそれぞれ一時格納するメモリ部１４−２と、１対のデータとして格納された画素データ列（Ｌ側，Ｒ側）における左右差（すなわちラインセンサ１２ａ，１２ｂの感度特性の差）を求める左右差判定部１４−３と、左右差判定部１４−３で求められた左右差に基づいて画素データ列（Ｌ側，Ｒ側）を補正する左右差補正部１４−４と、メモリ部１４−２に格納された１対の画素データ列（Ｌ側，Ｒ側）においてＬ側画素データ列における演算領域（Ｌ側演算領域）を設定する基準演算領域設定部１４−５と、基準演算領域設定部１４−５で設定されたＬ側演算領域に基づき、図４で説明した流れに従って画素データ列（Ｌ側，Ｒ側）間のシフト量毎の相関値（Ｓ）を求める相関値演算部１４−６と、相関値演算部１４−６で演算された相関値（Ｓ）をシフト量に対応づけたテーブル（図４（ｃ）参照）として格納するメモリ部１４−７と、メモリ部１４−７に格納されたテーブルに基づいて最小となる相関値（Ｓ(i)）に対応するシフト量（ｉ）から位相差ΔＸを検出する位相差検出部１４−８と、位相差検出部１４−８で検出された位相差ΔＸと、予め設定された基線長Ｘ及び焦点距離ｆとに基づいて対象物までの距離Ｌを算出する対象物距離演算部１４−９と、対象物距離演算部１４−９で演算された対象物までの距離Ｌに基づいて対物レンズ１７（図２参照）を制御するための制御データを生成する制御データ生成部１４−１０とを有して構成される。
【００８４】
次に、上記の構成における基準演算領域設定部１４−５と相関値演算部１４−６と位相差検出部１４−８と対象物距離演算部１４−９との動作を図８から図１１を用いて以下に説明する。
【００８５】
基準演算領域設定部１４−５は、メモリ部１４−２に画素データ列（Ｌ側，Ｒ側）が格納される、又は左右差補正部１４−４により画素データ列（Ｌ側，Ｒ側）が補正されると、図８に示すように、先ず、メモリ部１４−２におけるメモリ領域１４−２ＬからＬ側画素データ列を読み出し、このデータ列における特徴点を特定する（ステップＳ５−１）。これは、隣接する画素の画素値が大きく異なる部分等を特定することで行われる。次に基準演算領域設定部１４−５は、上記で特定した特徴点を含むようなＬ側演算領域を相関値演算部１４−６に対して設定し（ステップＳ５−２）、処理を終了する。この際、設定する領域の画素数は、予め設定しておいた所定画素数とする。
【００８６】
このようにＬ側演算領域が設定されると、相関値演算部１４−６は、図９に示すように、先ず、Ｒ側画素データ列における左端画素を含む所定画素数分の領域、すなわち左端画素を基準としたシフト量が０の領域をＲ側演算領域として設定する（ステップＳ６−１）。次に、相関値演算部１４−６は、Ｌ側演算領域に含まれる画素とＲ側演算領域に含まれる画素とを配列通りに１対１で対応させ、これらの差分の絶対値を合計し、この合計値を相関値（Ｓ）として算出する（ステップＳ６−２）。このように相関値（Ｓ）を算出すると、相関値演算部１４−６は、この相関値（Ｓ）をシフト量（Ｉ）、すなわちＲ側演算領域の左端の画素番号（ここでは０）と対応づけて、メモリ部１４−７に格納する（ステップＳ６−３）。次に、相関値演算部１４−６は、Ｒ側演算領域にＲ側画素データ列における右端画素が含まれるか否かを判定し（ステップＳ６−４）、右端画素が含まれない場合（ステップＳ６−４のＮｏ）、Ｒ側演算領域を右へ１画素分シフトさせる（ステップＳ６−５）。その後、ステップＳ６−２へ帰還して、以降の処理を繰り返す。また、ステップＳ６０４の判定の結果、右端画素が含まれる場合（ステップＳ６−４のＹｅｓ）、相関値演算部１４−６は処理を終了する。これにより、図４（ｃ）に示すようなテーブルが作製される。
【００８７】
このように相関値（Ｓ）とシフト量（Ｉ）とが対応づけられたテーブルが作製されると、位相差検出部１４−８は、図１０に示すように、メモリ部１４−７に格納された相関値（Ｓ）における最小の相関値（Ｓ(i)）を特定し（ステップＳ８−１）、これと対応するシフト量（ｉ）を特定する（ステップＳ８−２）。次に、位相差検出部１４−８は、シフト量（ｉ）の前後のシフト量（ｉ−１，ｉ＋１）における相関値（Ｓ(i-1)，Ｓ（i+1））を特定し（ステップＳ８−３）、これらのうち大きい方（以下の説明ではＳ(i-1)＞Ｓ(i+1)とする：図５参照）を特定する（ステップＳ８−４）。このように大きい方の相関値（Ｓ(i-1)）を特定すると、位相差検出部１４−８は、更に、大きい方の相関値（Ｓ(i-1)）に対応するシフト量（ｉ−１）の前又は後のシフト量（ｉ以外：本説明ではｉ−２）を特定する（ステップＳ８−５）。次に、位相差検出部１４−８は、点Ｐi（ｉ，Ｓ(i)）と点Ｐi-1（ｉ−１，Ｓ(i-1)）とを結ぶ直線の傾きＡと、点Ｐi（ｉ，Ｓ(i)）と点Ｐi-2（ｉ−２，Ｓ(i-2)）とを結ぶ直線の傾きＢとを算出し（ステップＳ８−６）、これらに基づいて、重み付けされた傾きＣ（式３参照）を算出する（ステップＳ８−７）。このように傾きＣを算出すると、位相差検出部１４−８は、点Ｐi（ｉ，Ｓ(i)）を通り、傾きがＣの直線（ｙ＝Ｃｘ＋Ｆ）と、点Ｐi+1（ｉ＋１，Ｓ(i+1)）を通り、傾きが−Ｃの直線（ｙ＝−Ｃｘ＋Ｇ）とを求め（ステップＳ８−８）、これらの交点Ｈにおけるｘ座標を位相差ΔＸとして対象物距離演算部１４−９へ出力して（ステップＳ８−９）、処理を終了する。
【００８８】
また、対象物距離演算部１４−９は、位相差ΔＸが入力されると、この位相差ΔＸ若しくは位相差ΔＸを距離に換算した値と、基線長Ｘとの比Ｘ／ΔＸを算出する（ステップＳ９−１）。尚、基線長Ｘは予め設定されている値である。次に、対象物距離演算部１４−９は、算出した比Ｘ／ΔＸを焦点距離ｆに乗算することで、対象物（図２では結像面２）までの距離Ｌを算出し、これを合焦制御部１６へ出力する（ステップＳ９−２）。尚、焦点距離ｆは予め設定されている値である。
【００８９】
以上のように動作することで、正確な位相差ΔＸに基づいて対象物までの距離Ｌを算出することが可能となり、対物レンズ１７の合焦位置を正確且つ高精度に制御することが可能となる。結果として、良好な画質の映像を結像面２に投影できるプロジェクタ１が実現できる。
【００９０】
尚、上記実施例１では、最小の相関値（Ｓ：これを第１の相関値とする）と、これと隣接するシフト量（ｉ−１，ｉ＋１）での相関値（Ｓ(i-1)，Ｓ(i+1)：これを第２及び第３の相関値とする）と、第２及び第３の相関値（Ｓ(i-1)，Ｓ(i+1)）における大きい方の相関値（Ｓ(i-1)／Ｓ(i+1)）に隣接し且つシフト量（ｉ）と反対側に位置するシフト量（ｉ−２／ｉ＋２）での相関値（Ｓ(i-2)，Ｓ(i+2)：これを第４の相関値とする）との少なくとも合計４つに基づいて、画素ピッチ間を補間したが、本発明ではこれに限定されず、第４の相関値のシフト量は、第２又は第３の相関値のシフト量に隣接せず、１又は複数飛ばした値（例えばｉ−３やｉ−４やｉ＋３等）であってもよい。
【００９１】
以上、説明した実施例１は本発明を実施するための最良の形態の一つにすぎず、本発明はその趣旨を逸脱しない限り種々変形して実施可能である。
【図面の簡単な説明】
【００９２】
【図１】従来技術における測距方法の原理を説明するための図である。
【図２】本発明の実施例１によるプロジェクタ１の構成を示すブロック図である。
【図３】図２に示す測距装置１Ａにおけるレンズ１１ａ，１１ｂが形成する光学系及び対象物である結像面２との関係を示す図である。
【図４】（ａ）はラインセンサ１２ａ，１２ｂから入力された画素データ列（Ｌ側，Ｒ側）の一例を示す図であり、（ｂ）は画素データ列（Ｌ側，Ｒ側）からシフト量（ｉ）毎の相関値（Ｓ）を算出する際の流れを説明するための図であり、（ｃ）は（ｂ）に示す流れで算出されたシフト量（ｉ）毎の相関値（Ｓ）のテーブルを示す図である。
【図５】本発明の実施例１において相関値Ｓ(i-1)＞相関値Ｓ(i+1)である場合の測距方法の原理を説明するための図である。
【図６】本発明の実施例１において相関値Ｓ(i-1)＜相関値Ｓ(i+1)である場合の測距方法の原理を説明するための図である。
【図７】本発明の実施例１による測距装置１ＡにおけるＣＰＵ１４で実現される構成を示すブロック図である。
【図８】図７に示す基準演算領域設定部１４−５の動作を説明するためのフローチャートである。
【図９】図７に示す相関値演算部１４−６の動作を説明するためのフローチャートである。
【図１０】図７に示す位相差検出部１４−８の動作を説明するためのフローチャートである。
【図１１】図７に示す対象物距離演算部１４−９の動作を説明するためのフローチャートである。
【符号の説明】
【００９３】
１  プロジェクタ
１Ａ  測距装置
２  結像面
１１ａ、１１ｂ  レンズ
１２ａ、１２ｂ  ラインセンサ
１３  出力部
１４  ＣＰＵ
１４−１  Ａ／Ｄ変換部
１４−２、１４−７、１５  メモリ部
１４−２Ｌ、１４−２Ｒ  メモリ領域
１４−５  基準演算領域設定部
１４−６  相関値演算部
１４−８  位相差検出部
１４−９  対象物距離演算部
１４−１０  制御データ生成部
１６  合焦制御部
１７  対物レンズ
１８  投影装置
１２１  受光素子
【図１】
2005043225.tif 000021
【図２】
2005043225.tif 000022
【図３】
2005043225.tif 000023
【図４】
2005043225.tif 000024
【図５】
2005043225.tif 000025
【図６】
2005043225.tif 000026
【図７】
2005043225.tif 000027
【図８】
2005043225.tif 000028
【図９】
2005043225.tif 000029
【図１０】
2005043225.tif 000030
【図１１】
2005043225.tif 000031