(57)【要約】【課題】ステレオ視により広角撮影した撮影画像を画像処理する際に、メモリ使用量および処理時間を低減することができる画像処理装置を提供すること。【解決手段】画像処理装置３は、対象物Ｍを広角撮影可能で直線上に配置された２つのカメラＣで撮像した画像により、対象物Ｍの位置を検出するために用いる情報として、対象物Ｍの画素位置を求めるために、２つのカメラＣで撮像された画像を入力する画像入力手段１０と、各カメラＣから入力された画像を、その歪を補正した状態で、２つのカメラＣの配置された直線と平行な軸線を持つ円筒面上に射影する画像射影手段３０と、円筒面上に射影された画像において、対象物Ｍに対応する画素位置を検出する画素位置検出手段４０とを備える。【選択図】図１
2009139246.tif 000002
【特許請求の範囲】
【請求項１】
対象物を広角撮影可能で直線上に配置された２つのカメラで撮像した画像により、前記対象物の位置を検出するために用いる情報として、前記対象物の画素位置を求める画像処理装置であって、
前記２つのカメラで撮像された画像を入力する画像入力手段と、
前記各カメラから入力された画像を、前記各カメラが配置された前記直線と平行な軸線を持つ円筒面上に射影する画像射影手段と、
前記円筒面上に射影された画像において、前記対象物に対応する画素位置を検出する画素位置検出手段とを備えたことを特徴とする画像処理装置。
【請求項２】
前記画像射影手段は、前記入力された画像を、前記画像の歪を補正した状態で前記円筒面上に射影することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
対象物を広角撮影可能で直線上に配置された２つのカメラで撮像した画像により、前記対象物の位置を検出するために用いる情報として、前記対象物の画素位置を求める画像処理装置の画像処理方法であって、
前記画像処理装置は、
前記２つのカメラで撮像された画像を入力する画像入力ステップと、
前記各カメラから入力された画像を、前記各カメラの配置された前記直線と平行な軸線を持つ円筒面上に射影する画像射影ステップと、
前記円筒面上に射影された画像において、前記対象物に対応する画素位置を検出する画素位置検出ステップとを実行することを特徴とする画像処理方法。
【請求項４】
対象物を広角撮影可能で直線上に配置された２つのカメラで撮像した画像により、前記対象物の位置を検出するために用いる情報として、前記対象物の画素位置を求めるために、コンピュータを、
前記２つのカメラで撮像された画像を入力する画像入力手段、
前記各カメラから入力された画像を、前記各カメラの配置された前記直線と平行な軸線を持つ円筒面上に射影する画像射影手段、
前記円筒面上に射影された画像において、前記対象物に対応する画素位置を検出する画素位置検出手段、
として機能させることを特徴とする画像処理プログラム。
【請求項５】
請求項１または請求項２に記載の画像処理装置と、
入射光線の方向及び基準位置から前記入射光線への変位量とを関連付けた較正情報を前記カメラ毎に蓄積した蓄積手段とを備え、
前記各カメラで対象物を撮像した各画像に対して前記画像処理装置で対応付けられた画素位置に基づいて、前記較正情報から、その画素位置に対応する入射光線の方向及びその変位量を取得し、この入射光線の方向及びその変位量を利用して、前記対象物の位置を算出することを特徴とする位置検出装置。
【請求項６】
請求項５に記載の位置検出装置と、前記位置検出装置に対象物の撮影画像を出力する広角撮影可能で直線上に配置された２つのカメラとを設けた躯体と、
前記躯体を移動させる移動手段とを備えたことを特徴とする移動体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物を複数のカメラで撮影した複数の撮影画像を処理する画像処理技術、および、画像処理結果により対象物の位置を検出する位置検出技術に関するものである。
【背景技術】
【０００２】
従来、ロボット等の移動体が移動することによって生じる運動視差から立体感をつかむ運動立体視の分野では、投影面に応じた種類のレンズを用いて撮像された撮影画像を画像処理することで障害物等の対象物の三次元的な特徴を抽出する技術が知られている（特許文献１参照）。特許文献１に記載された画像処理方法は、動物の網膜の領域（受容野）に擬して、入力画像を切り分けて球面上の極変換を行うことで処理時間を低減する方法（受容野法）である。この受容野法では、投影面として、球面投影、円筒面投影、平面投影の３種類を規定している。
【０００３】
ここで、球面投影は、球面上に投影するものであり、最も広い視野が得られ、魚眼レンズで等価の画像が得られる投影方式である。円筒面投影は、円筒面に投影するものであり、円筒の軸方向は限られた視野となるが、角度方向に広い視野が得られものであり、シリンドリカル・レンズで等価の画像が得られる投影方式である。平面投影は、平面状に投影するもので、視野が最も狭くなっており、標準／望遠レンズで等価の画像が得られる投影方式である。なお、特許文献１に記載された画像処理方法は、運動立体視に関するものであり、ステレオ画像から対象物の位置を精度よく検出するものではない。
【０００４】
また、特許文献２には、２つのカメラを用いたステレオ画像を画像処理することで対象物の位置を検出する技術が記載されている。この特許文献２に記載された較正情報生成装置と位置検出装置とは、以下のように動作する。すなわち、特許文献２の較正情報生成装置は、各カメラで撮像された画素毎のキャリブレーションデータを測定してカメラ毎に較正情報（較正テーブル）を生成する。そして、位置検出装置は、左右２つのカメラを用いたステレオ画像と、各較正情報（較正テーブル）とに基づいて、撮像された画像の歪みを除去して対象物の位置を検出する。ここで、カメラのレンズとして、魚眼レンズのような広角レンズやその他のレンズを想定している。
【０００５】
なお、左右２つのカメラを用いたステレオ画像は、左右のエピポーラ線が一致する平面に歪補正を行いながら中心射影になるように画面座標に変換されている。ここで、入射光線（光軸）の横（水平方向）の方位をα、縦（鉛直方向）の方位をγで示すと、画面での位置（ｕ，ｖ）は、式（１ａ）および式（１ｂ）で示される。ここで、ｋ1、ｋ2は所定の定数である。
【０００６】
ｕ＝ｋ1tanα  …  式（１ａ）
ｖ＝ｋ2tanγ  …  式（１ｂ）
【特許文献１】特開平５−１６５９５７号公報（段落００６０〜段落００６１、図１４）
【特許文献２】特開２００４−３０９３１８号公報（段落００６０、段落００７７、図７）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のステレオ視による画像処理方法では、入力画像が例えば魚眼レンズによって撮影された撮影画像であるときには、次のような不都合がある。
従来の画像処理法では、仮に、上下方向（鉛直方向）の入射角度で９０度に近い高角の部分の画像まで利用しようとする場合、中心射影で平面に投影したときに、画像の解像度が相対的に高い中心部分（低角の部分）の画像が圧縮されてしまう。そのため、このような中心部分（低角の部分）の画像が圧縮された画像において、中心部分の画像を位置測定に用いるとその精度が低くなってしまう。また、圧縮しなければ、低角の中心部分の画像の情報量は、高角の部分の画像の情報量より多いので、補完をする際に、低角の中心部分の画像の解像度に合わせると、解像度の低い周辺画像（高角の部分の画像）も同じように補完してしまうため、メモリ使用および計算時間の無駄が発生してしまう。
【０００８】
そこで、本発明では、前記した問題を解決し、ステレオ視により広角撮影した撮影画像を画像処理する際に、メモリ使用量および処理時間を低減することができる画像処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、前記目的を達成するために創案されたものであり、本発明のうち請求項１に記載の画像処理装置は、対象物を広角撮影可能で直線上に配置された２つのカメラで撮像した画像により、前記対象物の位置を検出するために用いる情報として、前記対象物の画素位置を求める画像処理装置であって、前記２つのカメラで撮像された画像を入力する画像入力手段と、前記各カメラから入力された画像を、前記各カメラの配置された前記直線と平行な軸線を持つ円筒面上に射影する画像射影手段と、前記円筒面上に射影された画像において、前記対象物に対応する画素位置を検出する画素位置検出手段とを備えたことを特徴とする。
【００１０】
かかる構成によれば、画像処理装置は、画像射影手段によって、広角撮影可能な各カメラから入力された画像を、２つのカメラの配置された直線と平行な軸線を持つ円筒面上に射影する。これにより、円筒面上に射影された画像は、円筒の軸線に垂直な方向において、入射角度の低い中心部分の画像から９０度に近い高角の部分の画像まで均一に投影される。ここで、広角撮影可能なカメラには、魚眼レンズが含まれる。画像射影手段は、入力画像を円筒面上に射影するので、１８０度を超える入光角度（例えば、２００度）の範囲まで撮影可能な魚眼レンズで撮影された入力画像も射影することができる。したがって、入射角度が例えば９０度以上の高角の部分の画像まで利用しようとする場合に、円筒の軸線に垂直な方向において、中心部分（低角の部分）の画像が圧縮されるが、高角の部分の画像が伸長されるので、従来のように中心射影で平面に投影された画像を用いた場合と比べると、画像の情報量を均一化することができる。その結果、メモリ使用および計算時間を従来よりも低減することができる。なお、中心射影を用いた場合には、このような１８０度を超える入光角度に対応した部分を射影することはできない。
【００１１】
そして、画像処理装置は、画素位置検出手段によって、円筒面上に射影された画像において、対象物に対応する画素位置を検出する。ここで、２つのカメラの配置された直線は、円筒の軸線と平行なので、円筒面上に射影された画像において、それぞれのエピポーララインは直線となる。したがって、球面投影とは異なって円筒面に射影することで、従来の平面投影と同様に、ステレオマッチングにおいて直線上を探索することで、画素位置を容易に検出することができる。つまり、ステレオマッチングにおいては、円筒面に射影することによる余分なメモリ使用および計算時間は発生することがない。
【００１２】
また、請求項２に記載の画像処理装置は、請求項１に記載の画像処理装置であって、前記画像射影手段が、前記入力された画像を、前記画像の歪を補正した状態で前記円筒面上に射影することを特徴とする。
【００１３】
かかる構成によれば、画像処理装置は、画像射影手段によって、入力された画像を、その歪を補正した状態で円筒面上に射影する。これにより、標準レンズまたは望遠レンズを備えたカメラとは異なる広角撮影可能なカメラによる歪を補正した状態で入力画像を円筒面上に射影するので、射影された画像を用いることにより、ステレオ画像から対象物の位置を精度よく検出することが可能となる。ここで、歪を補正した状態で射影する方法は、例えば、射影と同時に歪みを補正してもよいし、入力画像から予め歪みを補正した画像を射影することもできる。
【００１４】
また、請求項３に記載の画像処理方法は、対象物を広角撮影可能で直線上に配置された２つのカメラで撮像した画像により、前記対象物の位置を検出するために用いる情報として、前記対象物の画素位置を求める画像処理装置の画像処理方法であって、前記画像処理装置が、前記２つのカメラで撮像された画像を入力する画像入力ステップと、前記各カメラから入力された画像を、前記各カメラの配置された前記直線と平行な軸線を持つ円筒面上に射影する画像射影ステップと、前記円筒面上に射影された画像において、前記対象物に対応する画素位置を検出する画素位置検出ステップとを実行することを特徴とする。
【００１５】
かかる手順によれば、画像処理装置は、画像射影ステップにて、各カメラから入力された画像を、２つのカメラの配置された直線と平行な軸線を持つ円筒面上に射影し、画素位置検出ステップにて、円筒面上に射影された画像において、対象物に対応する画素位置を検出する。したがって、入射角度が例えば９０度以上の高角の部分の画像まで利用しようとする場合に、従来のように中心射影で平面に投影された画像を用いた場合と比べると、画像の情報量を均一化することができる。その結果、メモリ使用および計算時間を従来よりも低減することができる。また、ステレオマッチングにおいては、円筒面に射影することによる余分なメモリ使用および計算時間は発生することがない。
【００１６】
また、請求項４に記載の画像処理プログラムは、対象物を広角撮影可能で直線上に配置された２つのカメラで撮像した画像により、前記対象物の位置を検出するために用いる情報として、前記対象物の画素位置を求めるために、コンピュータを、前記２つのカメラで撮像された画像を入力する画像入力手段、前記各カメラから入力された画像を、前記各カメラの配置された前記直線と平行な軸線を持つ円筒面上に射影する画像射影手段、前記円筒面上に射影された画像において、前記対象物に対応する画素位置を検出する画素位置検出手段として機能させることを特徴とする。
【００１７】
かかる構成によれば、画像処理プログラムは、画像射影手段によって、各カメラから入力された画像を、２つのカメラの配置された直線と平行な軸線を持つ円筒面上に射影し、画素位置検出手段によって、円筒面上に射影された画像において、対象物に対応する画素位置を検出する。したがって、メモリ使用および計算時間を従来よりも低減することができる。
【００１８】
また、請求項５に記載の位置検出装置は、請求項１または請求項２に記載の画像処理装置と、入射光線の方向及び基準位置から前記入射光線への変位量とを関連付けた較正情報を前記カメラ毎に蓄積した蓄積手段とを備え、前記各カメラで対象物を撮像した各画像に対して前記画像処理装置で対応付けられた画素位置に基づいて、前記較正情報から、その画素位置に対応する入射光線の方向及びその変位量を取得し、この入射光線の方向及びその変位量を利用して、前記対象物の位置を算出することを特徴とする。
【００１９】
かかる構成によれば、位置検出装置は、対象物の位置を算出するために、カメラで撮像した画像により対象物の画素位置を求める際に、画像処理装置のメモリ使用および計算時間を従来よりも低減することができる。そして、位置検出装置は、撮像された各画像から対象物の位置を検出する前に、各画像の対象物に対応する画素に入力される入射光線の変位量を基準位置からのズレ量として認識することができるため、そのズレ量に基づいて、対象物の正確な位置を補正して求めることができる。
【００２０】
また、請求項６に記載の移動体は、請求項５に記載の位置検出装置と、前記位置検出装置に対象物の撮影画像を出力する広角撮影可能で直線上に配置された２つのカメラとを設けた躯体と、前記躯体を移動させる移動手段とを備えたことを特徴とする。
【００２１】
かかる構成によれば、移動体は、躯体において広角撮影可能な２つのカメラで撮像された撮影画像を位置検出装置に出力する。したがって、移動体は、標準レンズや望遠レンズを備えたカメラから出力される画像よりも広い範囲を認識することができる。そのため、移動体は、移動手段によって移動する際に周囲を認識するためのメモリ使用および計算時間を低減することができる。
【発明の効果】
【００２２】
本発明によれば、画像処理装置は、ステレオ視により広角撮影した撮影画像を画像処理する際に、メモリ使用量および処理時間を低減することができる。
また、この画像処理装置を備えた位置検出装置は、対象物の位置を算出するために、カメラで撮像した画像により対象物の画素位置を求める際に、画像処理装置のメモリ使用および計算時間を低減することができる。
さらに、この位置検出装置を備えた移動体は、移動する際に周囲を認識するためのメモリ使用および計算時間を低減することができる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して本発明の画像処理装置、位置検出装置および移動体を実施するための最良の形態（以下「実施形態」という）について詳細に説明する。
まず、一般にレンズ系を有するカメラで撮像された画像の歪みの原因となる、入射光線が一点で交わらないカメラの非ピンホール性について説明し、その非ピンホール性を有するカメラの特性を数値化したキャリブレーションデータについて説明する。そして、カメラで撮像された画素毎のキャリブレーションデータを測定して較正情報（較正テーブル）を生成する方法について説明する。そして、カメラで撮像された画素毎のキャリブレーションデータを測定して生成された較正情報（較正テーブル）を参照することで、撮像された画像から対象物の位置を検出する位置検出装置について、順次説明していくこととする。
【００２４】
［ピンホールカメラモデルについて］
一般に、ＣＣＤ等の複数台のカメラによって、対象物の位置を検出するには、各カメラの位置と、各カメラで撮像した画像の対象物に対応する各画素とに基づいて、三角測量の原理で対象物までの距離を測定することにより行っていた。なお、この三角測量の原理で、対象物の位置を検出する手法では、各カメラのレンズ系が、ピンホールカメラモデルに基づいていることが前提となっている。このピンホールカメラモデルとは、図８に示すように、基点位置（針穴：ピンホールＨ）を通して入射する光（入射光）のみが、画像面上に到達して、３次元空間（ｘ，ｙ，ｚ）が、画像面上の２次元空間（ｕ，ｖ）に対応付けられるモデルのことをいう。このようにピンホールカメラモデルは、入射光線が一点のピンホールを通って撮影画像として形成されることを想定している。
【００２５】
［カメラの非ピンホール性について］
次に、図９を参照して、一般にレンズ系を有するカメラで撮像した画像において、歪みが発生する原因について説明する。図９は、レンズ系を有するモデルのカメラの模式図である。ここでは、説明を簡略化するため、レンズ系を板ガラスＧとし、ピンホールＨが生成されているものとする。このカメラＣの板ガラスＧに垂直に入射する入射光線ｒ１は、ピンホールＨを通って撮像面Ｉ上の画素Ｒ１に撮像される。また、板ガラスＧに斜めに入射した入射光線ｒ２及びｒ３は、板ガラスＧ内で屈折した後にピンホールＨを通って撮像面Ｉ上の画素Ｒ２及びＲ３に撮像される。
【００２６】
しかし、このカメラＣは、板ガラスＧを通過する前の入射光線ｒ２及びｒ３の延長線であるｒ２′及びｒ３′と、入射光線ｒ１とは、一点では交わらず、ピンホールカメラモデルとはなっていないことがわかる。このため、撮像面Ｉ上の画素Ｒ３には、ピンホールカメラモデルで想定している入射光線ｒｒとは、距離Ｄ分だけずれた入射光線ｒ３が撮像されることになる。
【００２７】
このように、レンズ系（ここでは板ガラスＧ）に入射される入射光線によって像を撮像するカメラは、ピンホール性が崩れていることになる（非ピンホール性）。以下、レンズ系を有するカメラを「非ピンホールカメラ」と呼ぶこととする。
【００２８】
［キャリブレーションデータについて］
次に、図１０を参照して、非ピンホールカメラの特性を数値化したキャリブレーションデータについて説明する。図１０は、キャリブレーションデータの内容を説明するための説明図である。図１０に示すように、レンズｌに入射する入射光線（光軸）Ｒは２点で特定することができる。ここでは、第１の光源位置Ｐ１と、第２の光源位置Ｐ２とから発光される光が同一の撮像画素（図示せず）に撮像されたときに、入射光線（光軸）Ｒがその撮像画素に対応する入射光線であると特定する。
【００２９】
ここで、すべての入射光線（光軸）との距離の自乗和が最小となる点を光学中心Ｏと定義し、各撮像画素に対応する入射光線（光軸）Ｒと光学中心Ｏとの距離が最小となる点を、その入射光線（光軸）Ｒの入射光基点Ｋと定義する。
【００３０】
すなわち、光学中心Ｏ（ｘ0，ｙ0，ｚ0）は、すべての入射光線（光軸）において、光源位置Ｐ１（ｘ1，ｙ1，ｚ1）と、光源位置Ｐ２（ｘ2，ｙ2，ｚ2）とで特定される入射光線（光軸）Ｒからの距離ｄの自乗（式（２）参照）和が最小になる位置を、最小自乗法によって求めた位置となる。
【００３１】
ｄ2＝−（Ａ2／Ｂ）＋Ｃ  …  式（２）
【００３２】
ただし、
Ａ＝（ｘ2−ｘ1）（ｘ1−ｘ0）＋(ｙ2−ｙ1)（ｙ1−ｙ0）＋（ｚ2−ｚ1）（ｚ1−ｚ0）
Ｂ＝（ｘ2−ｘ1）2 ＋（ｙ2−ｙ1）2＋（ｚ2−ｚ1）2
Ｃ＝（ｘ1−ｘ0）2 ＋（ｙ1−ｙ0）2＋（ｚ1−ｚ0）2
とする。
【００３３】
これによって、画素位置毎に、光源位置Ｐ１及びＰ２で特定される方向と、光学中心Ｏから入射光基点Ｋへの変位量（３次元ベクトルＶD（ｄx，ｄy，ｄz）で表現）とを関連付けたデータをキャリブレーションデータとすることで、非ピンホールカメラの特性を数値化することができる。
【００３４】
なお、キャリブレーションデータは、これに限定されるものではない。例えば、前記した例では、光学中心Ｏを基準位置とし、光学中心Ｏから入射光線へ降ろした垂線の足までのベクトルを変位量ＶDとしているが、基準位置は、光学中心に限らず、カメラと一定関係にある固定点であれば、そのような点でも構わない。そして、変位量ＶDは、基準位置から入射光線上の任意の一点へ向かうベクトルであればよく、基準位置から入射光線（光軸）へ降ろした垂線の足へ向かうベクトルには限られない。
【００３５】
［較正情報（較正テーブル）生成方法］
次に、図１１を参照して、非ピンホールカメラの特性を数値化したキャリブレーションデータを撮像画素毎に関連付けた較正情報として較正テーブルを生成する方法について説明する。図１１は、較正テーブルを生成する方法の原理を示す概念図である。なお、図１１（ａ）は、特定の入射光線に対して、カメラのパン及びチルトを変化させることで、キャリブレーションデータを測定する原理を示す概念図であり、図１１（ｂ）は、固定したカメラに対して、入射光線（光軸）を変化させることで、キャリブレーションデータを測定する原理を示す概念図である。
【００３６】
図１１（ａ）に示すように、キャリブレーションデータを撮像画素毎に関連付けた較正テーブルを生成するには、非ピンホール性を有するカメラＣに対して、光源位置をＰ１及びＰ２の１方向に移動させ（１軸移動）、光源位置Ｐ１及びＰ２で特定される入射光線（光軸）Ｒを決定し、光源位置Ｐ１及びＰ２から発光される光が共に、測定を行う撮像画素（測定画素）に入射されるように、カメラＣのパン及びチルトを調整（２軸回転）することで、カメラＣの撮像画素毎に入射される入射光線Ｒの方向を特定する。
【００３７】
また、図１１（ｂ）に示すように、カメラＣは固定しておき、光源位置Ｐ１及びＰ２の２点で発光した入射光線（光軸）Ｒが、測定画素に入射されるように、光源位置Ｐ１及びＰ２をＸＹＺ方向に移動（３軸移動）させることで、その測定画素に入射される光源位置Ｐ１及びＰ２の２点で定まる入射光線（光軸）Ｒの方向を特定することとしてもよい。
【００３８】
図１１（ａ）又は（ｂ）で、測定を行った各撮像画素毎に特定された入射光線（光軸）Ｒに基づいて、図１０で説明したように、入射光線（光軸）Ｒの方向と、光学中心Ｏから入射光基点Ｋへの変位量とをキャリブレーションデータとして撮像画素毎に関連付けることで較正テーブルを生成することができる。
【００３９】
［位置検出装置の構成］
次に、図１を参照して、位置検出装置について説明を行う。図１は、本発明の実施の形態に係る画像処理装置を含む位置検出装置の全体構成を示したブロック図である。図１に示した位置検出装置２は、対象物を広角撮影可能で直線上に配置された２つのカメラ（非ピンホールカメラ）Ｃ（Ｃ1，Ｃ2）と共に移動体１の躯体（図示を省略する）に搭載されているものとする。移動体１は、図示しない移動手段を備えている。移動体１は、例えば、移動ロボットや自動車等から構成される。移動ロボットの場合、移動手段は、例えば、２足歩行可能な駆動手段や車輪走行可能な駆動手段を備える。
カメラＣは、例えば、魚眼レンズを備えて構成される。２つのカメラＣは、ステレオ画像を生成するために直線上に配置されている。例えば、各カメラＣのカメラレンズの光学中心が直線上に配置され、各光学中心を通る光軸が平行に配置される。
【００４０】
位置検出装置２は、画像処理装置３を備えている。
画像処理装置３は、対象物（マーカＭ）をカメラＣで撮像した画像により、対象物（マーカＭ）の３次元位置を検出するために用いる情報として対象物の画素位置を求めるものである。そして、位置検出装置２は、画像処理装置３で求められた対象物（マーカＭ）の画素位置から、対象物（マーカＭ）の３次元位置を検出する。ここでは、位置検出装置２を、画像入力手段１０と、画像射影手段３０と、画素位置検出手段４０と、蓄積手段５０と、位置算出手段６０とを備えて構成した。このうち、画像入力手段１０と、画像射影手段３０と、画素位置検出手段４０とは、画像処理装置３が備えることとした。
マーカＭは、位置を検出する部位を特定するために、その部位に付す目印であって、特定の色や形状を有したシール、赤外線等を発光する発光ダイオード等である。
【００４１】
画像入力手段１０は、２台のカメラＣで対象物（マーカＭ）を撮像した各々の撮影画像を入力するものである。なお、動画像として撮影画像を時系列に入力する場合は、カメラＣ1及びカメラＣ2で撮像された各撮影画像は、同期して画像入力手段１０へ入力されるものとする。また、画像入力手段１０には、カメラＣ1及びカメラＣ2で撮像された各撮影画像を一時的に記憶しておく、図示していないメモリを備えており、このメモリに記憶された撮影画像を、画像射影手段３０が参照するものとする。
【００４２】
画像射影手段３０は、各カメラＣ1，Ｃ2から入力された画像を、２つのカメラＣ1，Ｃ2の配置された直線と平行な軸線を持つ円筒面上に射影するものである。本実施形態では、画像射影手段３０は、入力された画像を、画像の歪を補正した状態で円筒面上に射影する。また、画像射影手段３０は、後記する補正テーブル５１を用いることで、射影と同時に歪みを補正することとする。
【００４３】
ここで、円筒面上への射影（以下、円筒射影という）について、図２乃至図５を参照して説明する。図２は、投影面を側面から視た図であり、（ａ）は中心射影、（ｂ）は円筒射影をそれぞれ示している。
【００４４】
従来行われている中心射影では、図２（ａ）に示すように、縦方向（垂直方向）において、ピンホール位置に相当する光学中心の光軸から角度θの範囲に存在する対象物は、光学中心の光軸に垂直な平面の投影面において、光学中心に対応する中心点から高さｄの範囲まで射影される。この場合、ｄは、像高であり、式（３）で示される。ここで、ｋは定数であり、ピンホールから投影面までの距離、すなわち仮想焦点距離を示す。
【００４５】
ｄ＝ｋtanθ  …  式（３）
【００４６】
式（３）によれば、中心射影の場合、入射角度θが２倍になると、投影面上において像高ｄは２倍以上になる。また、入射角度θが９０度の場合には像高ｄを定義することができず、９０度を超えると負になってしまう。したがって、９０度を超える角度で入射した光の像を形成することができない。
【００４７】
一方、円筒射影では、図２（ｂ）に示すように、縦方向（垂直方向）において、光学中心の光軸から角度θの範囲に存在する対象物は、円筒面で構成された投影面において、ピンホール位置に対応する中心点から投影面に沿って長さｄの範囲まで射影される。ここで、円筒は、例えば、２つのカメラＣのカメラレンズの主点を連結する直線と平行な軸線を持つ。そして、円筒の軸線は、光学中心に配され、円筒の半径は例えばピンホールの仮想焦点距離を示す。この場合、ｄは、式（４）で示される。
【００４８】
ｄ＝ｋθ  …  式（４）
【００４９】
ここで、ｋは定数であり、光学中心から投影面までの距離、すなわち焦点距離を示す。式（４）によれば、円筒射影の場合、入射角度θが２倍になると、円筒面を開いた平面の投影面上において像高ｄも２倍になる。また、入射角度θが９０度以上の場合にも像高ｄを定義することができる。したがって、図３に示すように、カメラＣに、１８０度を超える入光角度（例えば、２００度）の範囲まで撮影可能な魚眼レンズ３００を用いることができる。この場合には、魚眼レンズ３００の前方（図３において右側）から入射した光（光軸３０１）の像を形成できるだけではなく、魚眼レンズ３００のレンズ位置よりも後ろ（図３において左下側）から入射した光（光軸３０２）の像も形成することができる。
【００５０】
前記した式（４）は、魚眼レンズの射影方式に等距離射影を採用した場合の像高を示す式と同様である。この場合の入射光線（光軸）の方位と、画面での位置（ｕ，ｖ）の関係は、式（５ａ）および式（５ｂ）で示される。ここで、入射光線の横（水平方向）の方位をα、縦（鉛直方向）の方位をγで示す。なお、ｋ1、ｋ2は所定の定数である。
【００５１】
ｕ＝ｋ1tanα  …  式（５ａ）
ｖ＝ｋ2γ     …  式（５ｂ）
【００５２】
式（５ａ）および式（５ｂ）の関係式は、入力画像が射影された円筒面を開いた平面の投影面上の関係を示すものであるが、図４に示すように、入力画像が射影された円筒面を開かずに、入射光線（光軸）の方位と、画面での位置（ｕ，ｖ）と関係を求めることもできる。図４は、図１に示した画像射影手段による射影方式を示す説明図である。図４は、図２と同様に、投影面を側面から視た図を示している。図４において、円筒面は、略半円筒（断面視中心角２００度）から構成され、略半円筒は、軸線の中心をＯ、半径をｆ（焦点距離）としている。半径ＯＡは、光学中心の光軸方向に一致しており、点Ａから破線で示す半直線は、中心射影による仮想的な平面の投影面を示している。また、半径ＯＡと半径ＯＢとのなす角をθとしている。
【００５３】
対象物が角度θの範囲で仮想的な平面の投影面に射影された場合には、像高は、符号４０１で示すＡＰの長さで表される。一方、対象物が角度θの範囲で円筒面の投影面に射影された場合には、像は、符号４０２で示す弧ＡＢに射影される。したがって、この円筒面に射影された像を、光学中心の光軸方向右側から視た場合には、その像高は、符号４０３で示すＢＲの長さで表される。なお、点Ｒは、点Ｂから半径ＯＡに下ろした垂線の足である。そして、符号４０３で示す像高を円筒面に射影した場合の像高として、図４では、あらためてｄで示した。
【００５４】
図４において、仮に、仮想的な平面の投影面に射影された像高がｄとなった場合を想定すると、仮想的な平面の投影面における像高は、符号４０１で示すＡＰよりも短いＡＱで表されることとなる。仮想的な平面の投影面において、ＡＱで示す像高は、角度θよりも小さい角度の範囲の光軸から形成される。つまり、仮想的な平面の投影面に形成した像高がｄである画像に比べて、円筒面に射影して形成した像高がｄである画像の方が、縦方向（垂直方向）の高角において、仮想的な平面の投影面ＰＱに相当する像の分だけ情報量が増加する。別の観点から言うと、円筒面に射影した場合には、同様に平面に投影した場合と比べて、縦方向（垂直方向）の中心部分（低角の部分）において情報量が圧縮するが、周辺部分（高角の部分）において情報量が増加して、縦方向（垂直方向）全体として情報量が均一化されることになる。このことを図５を参照して説明する。
【００５５】
図５は、射影前後の画像の説明図であり、（ａ）は撮影画像、（ｂ）は中心射影の場合、（ｃ）は円筒射影の場合の画像をそれぞれ示している。図５（ｂ）に示す中心射影の場合には、図５（ａ）の撮影画像と比較すると、中心付近に配置されたテーブル５０１や箱５０２の高さや奥行きについての変化は、比較的小さく、人間の目で視た場合には、元画像と比べると自然な画像となっている。一方、図５（ｃ）に示す円筒射影の場合には、図５（ａ）の撮影画像と比較すると、中心付近に配置されたテーブル５０１の奥行きが小さくなると共に、箱５０２の高さが低くなる。つまり、人間の目で視た場合には、元画像と比べると不自然な画像となっている。これは、前記したように、円筒面に射影した場合には、同様に平面に投影した場合と比べて、縦方向の中心部分において情報量が圧縮するが、縦方向全体として情報量が均一化されているからである。これにより、対象物の位置を検出するためには、メモリ使用量や計算時間の低減に寄与することができる。なお、図５（ａ）〜図５（ｃ）において、画像を１つずつ示したが、これは、一方のカメラＣによるものであって、実際には、２つの画像から対象物の位置を検出する。
【００５６】
円筒面に射影した後で円筒面を開かない場合の入射光線（光軸）の方位と、画面での位置（ｕ，ｖ）の関係は、式（６ａ）および式（６ｂ）で示される。ここで、入射光線（光軸）の横（水平方向）の方位をα、縦（鉛直方向）の方位をγで示す。
【００５７】
ｕ＝ｋ1 tanα  …  式（６ａ）
ｖ＝ｋ2 sinγ  …  式（６ｂ）
【００５８】
円筒面に射影した場合には、前記した式（５ａ）および式（５ｂ）の関係式を用いても式（６ａ）および式（６ｂ）の関係式を用いても同様な効果が得られるので、以下では、式（５ａ）および式（５ｂ）の関係式を用いることとする。
【００５９】
図１に戻って位置検出装置２の説明を続ける。
画素位置検出手段４０は、画像射影手段３０によって円筒面上に射影された画像において、対象物に対応する画素位置を検出するものである。ここでは、撮影画像上でマーカＭとして撮像された領域の重心位置を、対象物に対応する画素位置とする。ここで検出された各撮影画像の画素位置は、位置算出手段６０へ入力される。なお、画素位置検出手段４０は、カメラＣで撮像した撮影画像を特定の大きさのブロックでマッチングを行うことで、対象物に対応する画素位置を検出するように構成してもよい。
【００６０】
蓄積手段５０は、位置検出装置２で必要なデータベースや、処理中の画像の記憶や、作業領域のために利用される、メモリやハードディスクなどの記憶装置である。蓄積手段５０内には、カメラＣで撮影された画像を円筒面に射影すると共に同時に歪みを補正する補正テーブル５１と、カメラの光学中心Ｏを補正するための較正テーブル（較正情報）５２と、対象物の距離を計算するときに使用される方向ベクトルテーブル５３とを記憶している。
【００６１】
補正テーブル５１は、図１２（ａ）に示すように、射影画像の各画素に対応する入力画像の各画素（ｘ，ｙ）と、各画素（ｘ，ｙ）の画素値に対して適用する予め算出された定数（Ｋ1，Ｋ2，Ｋ3，Ｋ4）とを格納している。この補正テーブル５１は、較正テーブル５２と方向ベクトルテーブル５３とを用いて予め作成されるものなので、較正テーブル５２と方向ベクトルテーブル５３とを説明した後で再度説明する。
【００６２】
較正テーブル５２は、カメラＣ1及びカメラＣ2の撮像画素毎にキャリブレーションデータを関連付けたテーブルである。なお、較正テーブル５２の内容である各撮像画素毎のキャリブレーションデータは、図１０を参照して説明したように、各撮像画素に入射される入射光線（光軸）の方向と、基準位置（光学中心Ｏ）から入射光線（光軸）への変位量ＶDとを含んでいる。また、図１では、較正テーブル５２を１つだけ表示したが実際には２つ存在している。
較正テーブル（較正情報）５２は、図１３（ａ）に示すように、撮影画像（入力画像）の各画素のｘ座標、ｙ座標の組み合わせに対し、その撮像画素に入射してくる入射光線（光軸）を特定する情報として、光学中心Ｏからの変位量ＶD（ｄｘ，ｄｙ，ｄｚ）及び方向（角度）α、γが対応付けて記憶されている。なお、ここでは、較正情報を、撮像画素毎に変位量ＶD及び方向（角度）α、γを対応付けた較正テーブルとして説明しているが、所定の関数や変換式によって表現しても構わない。
【００６３】
方向ベクトルテーブル５３は、図１２（ｂ）に示すように、補正画像（射影画像）上の画素の座標（ｕ′，ｖ′）と、その画素位置において光が入射してくる方向を特定する角度αR，αL、γを関連づけて記憶させたものである。
角度αR，αL、γは、図６に示すように、それぞれ、
αR：カメラＣ1（右カメラとする）の補正された光学中心である右カメラ位置（０，０，０）から対象物位置（Ｐx，Ｐy，Ｐz）に向かうベクトルの、カメラＣ1の光軸（ｘ軸）からの水平方向の角度
γ：（０，Ｐy，０）を始点として対象物位置（Ｐx，Ｐy，Ｐz）を終点とするベクトルの、ｘｙ平面から垂直方向の角度
αL：カメラＣ2（左カメラとする）の補正された光学中心である左カメラ位置（０．ｄ．０）から対象物位置（Ｐx，Ｐy，Ｐz）に向かうベクトルの、カメラＣ2の光軸からの水平方向の角度
を意味する。
ただし、−π／２ ＜αR＜ π／２，−π／２ ＜αL＜ π／２，−π＜γ＜πである。
以下では、角度αR，αL、γをまとめて角度（α，γ）と表記する。角度（α，γ）を求める計算式は、例えば、前記した式（５ａ）および式（５ｂ）に基づいて、式（７）および式（８）のように示される。式（７）および式（８）では、図６に示すいずれかのカメラ位置を一般化して（ｃu，ｃk）として、画面での位置を（ｕ，ｖ）、所定の定数をｋu、ｋvとした。
【００６４】
α＝tan-1（（ｕ−ｃu）／ｋu）  …  式（７）
γ＝（ｖ−ｃk）／ｋv          …  式（８）
【００６５】
較正テーブル５２と方向ベクトルテーブル５３とを用いて、補正テーブル５１を作成することで、補正画像（射影画像）においては、撮影画像（入力画像）における歪みを補正することができる。補正テーブル５１の作成方法の一例の概略を説明する。まず、方向ベクトルテーブル５３（図１２（ｂ）参照）から、射影後の画素（ｕ，ｖ）に入力すべき入射光の光軸の角度（α，γ）を求める。そして、この求めた角度（α，γ）に対応する入力画像（撮影画像）の画素（撮影画素）の座標（ｘ，ｙ）を、左右２つのカメラＣに対応した２つの較正テーブル５２からそれぞれ求める。そして、射影後の画素（ｕ，ｖ）に対応して求めた撮影画素の座標（ｘ，ｙ）を補正テーブル５１に記録する。また、射影後の画素（ｕ，ｖ）は、撮影画像における画素と画素との間に位置することになるので、射影後の画素（ｕ，ｖ）の画素値（例えば輝度等）は、２×２の周囲４画素分の撮影画素の画素値を線形補完した値とする。例えば、補正テーブル５１に記録する撮影画素の座標（ｘ，ｙ）を、２×２のうち左上の撮影画素の座標値として、各画素値に乗じる定数を以下のように定める。
左上の撮影画素の画素値（Ｖ1）に乗じる定数：Ｋ1
右上の撮影画素の画素値（Ｖ2）に乗じる定数：Ｋ2
左下の撮影画素の画素値（Ｖ3）に乗じる定数：Ｋ3
右下の撮影画素の画素値（Ｖ4）に乗じる定数：Ｋ4
この場合、射影後の画素（ｕ，ｖ）の画素値Ｖ0は、式（９）で表される。
【００６６】
Ｖ0＝Ｋ1×Ｖ1＋Ｋ2×Ｖ2＋Ｋ3×Ｖ3＋Ｋ4×Ｖ4  …  式（９）
【００６７】
補正テーブル５１には、撮影画素の座標（ｘ，ｙ）と共に、各画素値に乗じる定数（Ｋ1〜Ｋ4）が記録される。各画素値に乗じる定数（Ｋ1〜Ｋ4）は、中心射影ではなく、前記した式（５ａ）および式（５ｂ）に示した円筒射影の関係式を利用して求められる。これにより、画像射影手段３０は、各カメラＣ1，Ｃ2から入力された画像（撮影画像）から、撮影画素の座標と画素値とを取得し、補正テーブル５１を参照して、前記した式（９）の関係を用いて、射影後の画素（ｕ，ｖ）の画素値を算出することで、円筒面への射影と同時に入力画像の歪みを補正することができる。なお、式（６ａ）および式（６ｂ）に示した円筒射影の関係式を利用してもよい。
【００６８】
再び図１に戻って位置検出装置２の説明を続ける。
位置算出手段６０は、画素位置検出手段４０で検出された各撮影画像毎の画素位置に対応した、較正テーブル５２のキャリブレーションデータ（入射光線の方向及び変位量）および方向ベクトルテーブル５３に基づいて、対象物（マーカＭ）の位置（３次元位置）を算出するものである。
【００６９】
以上、画像処理装置３を含む位置検出装置２の構成について説明したが、本発明はこれに限定されるものではない。例えば、本実施形態では、画像射影手段３０は、射影と同時に歪みを補正することとしたが、歪補正実行手段２０を別に設けて、この歪補正実行手段２０が入力画像から歪みを補正し、画像射影手段３０が、予め歪の補正された画像を円筒面に射影するように構成することもできる。この場合、歪補正実行手段２０は、入力画像の画素を移動させることで、カメラＣに起因して生じた歪をその程度が小さくなるように補正する。歪補正実行手段２０は、画像入力手段１０から右、左の各撮影画像のデータを受け取り、例えば図１３（ｂ）に示す歪補正テーブルを参照して、撮影画像の歪を補正する。この歪補正実行手段２０は、右のカメラＣ2が撮像した撮影画像から、右補正画像を生成し、左のカメラＣ1が撮像した撮影画像から、左補正画像を生成する。この歪補正テーブル５１は、図１３（ｂ）に示すように、カメラＣ1及びカメラＣ2で撮像された撮影画像上の座標（ｘ，ｙ）と、その座標の画素を変位させるべき画素数（ｄｕ，ｄｖ）とを関連づけて記憶させたものである。この歪補正テーブルは、カメラＣ1，Ｃ2ごとにそれぞれ用意される。なお、それぞれのカメラＣ1，Ｃ2の光学系の仕様が同じで、製造精度が高い場合には、歪補正テーブルを共用することができる。
【００７０】
ここで、図１３（ｂ）に示す歪補正テーブルの生成方法の一例を簡単に説明する。例えば、平面に描かれた格子状の市松模様のパターンをカメラＣ1及びカメラＣ2で正面から撮影すると、市松模様のパターンの外周縁部に樽形の歪みが生じた画像（補正前の画像）が得られる。この補正前の画像から、歪が無視できる画面中心での格子の縦横の画素数に合うように、画面全体の格子点を移動させることで歪補正が実行された画像（補正画像）を得ることができる。そして、格子点の移動量（相対座標）を補正前の画像の画素位置と対応づけて表にする。格子点の間の各画素については、線形補完を行う。このようにして、歪補正テーブルが生成される。この歪補正テーブルは、生成するときに市松模様を撮影した距離においては正確に補正することができるが、撮影距離が異なると、完全に正確には補正されない。とはいえ、左右のエピポーララインはほぼ直線となり、ステレオマッチングにおいて直線上を探索しても不都合は生じない。そして、前記した歪補正実行手段２０は、歪補正テーブルから、各画素位置についての移動量を取得し、撮影画像の画素を移動させることで、歪を補正する。なお、歪補正実行手段２０が歪を補正する方法は、図１３（ｂ）に示す歪補正テーブルを使用する方法には限られず、公知の他の方法を使用することができる。例えば、歪補正テーブルの代わりに、歪曲収差を近似式で求めた関数を用いることもできる。
【００７１】
また、本実施形態では、２台のカメラＣで撮像した撮影画像に基づいて、対象物の位置を検出したが、３台以上のカメラを用いて位置を検出することも可能である。例えば、３行３列に配置した９台のカメラで、中央に配置したカメラを基準カメラとして、他の８台のカメラとの間で位置を検出し、その８個の位置で平均をとることで、対象物の位置をより正確に検出することもできる。
【００７２】
なお、画像処理装置の各手段、すなわち、画像入力手段１０、画像射影手段３０、画素位置検出手段４０は、一般的なコンピュータにプログラム（画像処理プログラム）を実行させ、コンピュータ内の演算装置や記憶装置（蓄積手段５０を含む）を動作させることにより実現される。このプログラムは、通信回線を介して配布することも可能であるし、ＣＤ−ＲＯＭ等の記録媒体に書き込んで配布することも可能である。このプログラムをインストールされたコンピュータは、ＣＰＵが、ＲＯＭ等に格納されたこのプログラムをＲＡＭに展開することにより、画像処理装置３と同等の効果を奏することができる。同様に、位置検出装置の各手段、すなわち、画像入力手段１０、画像射影手段３０、画素位置検出手段４０及び位置算出手段６０は、一般的なコンピュータにプログラム（位置検出プログラム）を実行させ、コンピュータ内の演算装置や記憶装置（蓄積手段５０を含む）を動作させることにより実現される。
【００７３】
［位置検出装置の動作］
次に、図７を参照（適宜図１参照）して、位置検出装置２の動作について説明する。図７は、位置検出装置の動作を示すフローチャートである。
まず、位置検出装置２は、画像入力手段１０によって、２台のカメラＣ（Ｃ1、Ｃ2）で撮像した撮影画像を入力する（ステップ２０：画像入力ステップ）。そして、位置検出装置２は、画像射影手段３０によって、補正テーブル５１を参照して、歪を補正しつつ撮影画像を円筒面に射影する（ステップＳ２１：画像射影ステップ）。次いで、位置検出装置２は、画素位置検出手段４０によって、画像射影手段３０で円筒面に射影された各画像において、対象物（マーカＭ）に対応する画素位置を検出する（ステップＳ２２：画素位置検出ステップ）。
【００７４】
そして、位置検出装置２は、位置算出手段６０によって、カメラＣ（Ｃ1、Ｃ2）に対応する較正テーブル５２から、対象物（マーカＭ）の画素位置に対応するキャリブレーションデータを読み込み（ステップ２３）、その各画素位置のキャリブレーションデータおよび方向ベクトルテーブル５３に基づいて、対象物（マーカＭ）の３次元位置を算出する（ステップＳ２４）。
【００７５】
ここで、図６を再び参照（適宜図１参照）して、ステップＳ２４で行った対象物の３次元位置を算出する方法について具体的に説明する。
【００７６】
この図６において、カメラＣ1（右カメラ）の撮影画像における、マーカＭの画素位置に対応する変位量（右カメラ用の較正テーブル５２から取得）に基づいて、カメラＣ1の光学中心を補正した補正光学中心（右カメラ位置）Ｏ1を（０，０，０）とする。また、カメラＣ2（左カメラ）の撮影画像における、マーカＭの画素位置に対応する変位量（左カメラ用の較正テーブル５２から取得）に基づいて、カメラＣ2の光学中心を補正した補正光学中心（左カメラ位置）Ｏ2を（０，ｄ，０）とする。つまり、図６において、右カメラは座標原点に配置され、左カメラは、ｙ軸上で座標原点からｄだけ離間した位置に配置される。
【００７７】
また、カメラＣ1（右カメラ）の撮影画像における、マーカＭの画素位置に対応する入射光線（光軸）の方向を水平角度αR、垂直角度γR（右カメラ用の較正テーブル５２から取得）とし、カメラＣ2（左カメラ）の撮影画像における、マーカＭの画素位置に対応する入射光線（光軸）の方向を水平角度αL、垂直角度γL（左カメラ用の較正テーブル５２から取得）とする。この場合、対象物位置（Ｐx，Ｐy，Ｐz）は、式（１０）乃至式（１２）で算出することができる。なお、式（１２）において、γは、方向ベクトルテーブル５３（図１２（ｂ）参照）において角度αR，αLと関連づけて記憶された角度である。
【００７８】
Ｐx＝ｄ／（tanαR−tanαL）  …  式（１０）
Ｐy＝ＰxtanαR               …  式（１１）
Ｐz＝Ｐxtanγ               …  式（１２）
【００７９】
本実施形態によれば、画像処理装置３は、ステレオ視により広角撮影した撮影画像を画像処理する際に、メモリ使用量および処理時間を低減することができる。
また、本実施形態によれば、位置検出装置２は、非ピンホールカメラにおいて、ステレオ視により広角撮影した撮影画像から、広い角度についての位置推定と、中心方向での角度精度を高く保ったまま、正確に対象物の位置を検出することが可能になる。さらに、移動体１は、例えば、移動ロボットから構成されているときに、この移動ロボットが、床の位置を検出することで、床の凹凸を正確に認識することができ、移動ロボットが安定した歩行を行うことが可能になる。なお、移動ロボットは２足歩行に限らず、車輪で移動するようにしてもよい。
【００８０】
以上、本発明の好ましい実施形態について説明したが、本発明は前記した実施形態に限定されるものではない。例えば、本実施形態では、位置検出装置２は、較正テーブル５２と方向ベクトルテーブル５３とに基づいて対象物（マーカＭ）の３次元位置を算出することしたが、方向ベクトルテーブル５３は必須ではない。
【００８１】
また、本実施形態では、方向ベクトルテーブル５３や補正テーブル５１の作成方法や対象物の３次元位置を算出する方法について図６を参照して説明したが、これに限定されず、例えば、図１４に示す角度の関係を用いてもよい。図１４は、角度δR，δLと距離Ｄとを追加した点が図６と異なる。
角度δR，δLと距離Ｄとは、図１４に示すように、それぞれ、
δR：右カメラ位置（０，０，０）を始点として（０，０，Ｐz）を終点とするベクトルと、右カメラ位置（０，０，０）を始点として対象物位置（Ｐx，Ｐy，Ｐz）を終点とするベクトルとのなす角度
δL：左カメラ位置（０，ｄ，０）を始点として（０，ｄ，Ｐz）を終点とするベクトルと、左カメラ位置（０，ｄ，０）を始点として対象物位置（Ｐx，Ｐy，Ｐz）を終点とするベクトルとのなす角度
Ｄ：左カメラ位置（０，ｄ，０）と（０，ｄ，Ｐz）との距離
を意味する。ただし、−π＜δR＜π，−π＜δR＜πである。
【００８２】
この場合、対象物位置（Ｐx，Ｐy，Ｐz）は、式（１３）乃至式（１６）で算出することができる。
【００８３】
Ｐx＝Ｄcosγ              …  式（１３）
Ｐy＝ＤtanδR              …  式（１４）
Ｐz＝Ｄsinγ               …  式（１５）
ただし、Ｄ＝ｄ／（tanδR−tanδL） …  式（１６）
【００８４】
これによれば、１８０度を超える入光角度の範囲まで撮影可能な魚眼レンズを用いたときにも対象物位置を正確に求めることができる。なお、式（１３）および式（１５）において、γは、方向ベクトルテーブル５３（図１２（ｂ）参照）において角度δR，δLと関連づけて記憶された角度である。この場合、前記した方向ベクトルテーブル５３における角度（α，γ）の代わりに、角度δR，δL，γを予め求めておく。そのときの計算式は、前記した式（７）および式（８）の代わりに、式（１７）および式（１８）を用いればよい。なお、このときのαは、式（１９）で表される。
【００８５】
δ＝tan-1（（ｕ−ｃu）／ｋu）                            …  式（１７）
γ＝（ｖ−ｃk）／ｋv                                    …  式（１８）
α＝tan-1［（ｕ−ｃu）／（ｋucos｛（ｖ−ｃk）／ｋv｝）］  …  式（１９）
【００８６】
また、本実施形態では、魚眼レンズの射影方式を等距離射影として説明したが、これに限定されるものではなく、式（２０）乃至式（２２）にそれぞれ示す立体射影、等立体角射影、正射影を採用することができる。これらの射影方式においては、平面の投影面に射影したのちに、それを円筒面に投影することができる。なお、式（２０）乃至式（２２）において、ｄは像高、θは対象物側の半値角、ｋはカメラの焦点距離をそれぞれ示す。
【００８７】
ｄ＝２ｋtan（θ／２）  …  式（２０）
ｄ＝２ｋsin（θ／２）  …  式（２１）
ｄ＝ｋsinθ            …  式（２２）
【００８８】
例えば、式（２２）に示すように正射影を採用した場合には、方向ベクトルテーブル５３における角度（α，γ）を求める計算式は、前記した式（７）および式（８）の代わりに、式（２３）および式（２４）を用いればよい。
【００８９】
α＝tan-1（（ｕ−ｃu）／ｋu）  …  式（２３）
γ＝sin-1（（ｖ−ｃk）／ｋv）  …  式（２４）
【００９０】
また、本実施形態では、位置検出装置２は移動体１に搭載されているものとして説明したが、これに限定されるものではない。位置検出装置２は、例えば、定位置から離れない産業用ロボットに搭載されていてもよいし、単体であってもよい。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施形態に係る画像処理装置を含む位置検出装置の全体構成を示すブロック図である。
【図２】投影面を側面から視た図であり、（ａ）は中心射影、（ｂ）は円筒射影をそれぞれ示している。
【図３】１８０度を超える入光角度の範囲まで撮影可能な魚眼レンズの一例を示す説明図である。
【図４】図１に示した画像射影手段による射影方式を示す説明図である。
【図５】射影前後の画像の説明図であり、（ａ）は撮影画像、（ｂ）は中心射影の場合、（ｃ）は円筒射影の場合の画像をそれぞれ示している。
【図６】対象物の３次元位置を算出する方法の一例を説明するための説明図である。
【図７】図１に示した位置検出装置の動作を示すフローチャートである。
【図８】ピンホールカメラモデルの概念を説明するための説明図である。
【図９】レンズ系を有するモデルのカメラの模式図である。
【図１０】キャリブレーションデータの内容を説明するための説明図である。
【図１１】較正テーブルを生成する方法の原理を示す概念図である。
【図１２】蓄積手段に蓄積されたテーブルの一例を示す図であって、（ａ）は補正テーブル、（ｂ）は、方向ベクトルテーブルをそれぞれ示している。
【図１３】蓄積手段に蓄積されたテーブルの一例を示す図であって、（ａ）は較正テーブル、（ｂ）は歪補正テーブルをそれぞれ示している。
【図１４】対象物の３次元位置を算出する方法の他の例を説明するための説明図である。
【符号の説明】
【００９２】
１      移動体
２      位置検出装置
３      画像処理装置
１０    画像入力手段
２０    歪補正実行手段
３０    画像射影手段
４０    画素位置検出手段
５０    蓄積手段
５１    歪補正テーブル
５２    較正テーブル（較正情報）
５３    方向ベクトルテーブル
６０    位置算出手段
Ｃ      カメラ
【図１】
2009139246.tif 000003
【図２】
2009139246.tif 000004
【図３】
2009139246.tif 000005
【図４】
2009139246.tif 000006
【図５】
2009139246.tif 000007
【図６】
2009139246.tif 000008
【図７】
2009139246.tif 000009
【図８】
2009139246.tif 000010
【図９】
2009139246.tif 000011
【図１０】
2009139246.tif 000012
【図１１】
2009139246.tif 000013
【図１２】
2009139246.tif 000014
【図１３】
2009139246.tif 000015
【図１４】
2009139246.tif 000016