(57)【要約】【課題】  撮像素子および撮影光学系の歪みに起因する誤差を補正し、特により正確な被写体の画像を得られるようにする。【解決手段】  レンズ２１（２２）および撮像素子２０１ｎ（２０２ｎ）、２０１ｍ（２０２ｍ）、２０１ｆ（２０２ｆ）を用いて直交する縦線および横線から成るグリッド画像を前記撮影光学系および撮像素子により撮影し、グリッド画像の縦線および横線から構成されるブロックの交点を検出し、ブロックの交点を当該ブロックが矩形となるように補正し、グリッド交点補正により得られたブロックを画成する各交点の座標と、グリッド画像中のブロックを画成する各交点の座標に基づき実際の撮影画像を補正するための補正関数を演算するキャリブレーション処理を行なう。【選択図】  図１
2005340985.tif 000002
【特許請求の範囲】
【請求項１】
撮影光学系および撮像素子を用いて撮影した画像データの前記撮影光学系および撮像素子に起因する歪みを補正する画像処理方法において、
直交する縦線および横線から成るグリッド画像を前記撮影光学系および撮像素子により撮影する撮影過程と、
前記グリッド画像の縦線および横線から構成されるブロックの交点を検出する交点検出過程と、
前記ブロックの交点を当該ブロックが矩形となるように補正するグリッド交点補正過程と、
前記グリッド交点補正過程により得られたブロックを画成する各交点の座標と、前記グリッド画像中のブロックを画成する各交点の座標に基づき実際の撮影画像を補正するための補正関数を演算する補正関数演算過程と、
を含むキャリブレーション処理を行なうことを特徴とする画像処理方法。
【請求項２】
請求項１に記載の画像処理方法において、前記交点検出過程において、前記グリッド画像の各座標を順次走査し、グリッド線を構成する輝度の低い画素を検出し、過去の複数走査線における同一座標の複数画素の平均の所定閾値パーセンテージを下回った画素をグリッド線の候補画素とし、各座標で過去の複数走査線における同一座標における前記候補画素の数の連続性を所定の評価関数を用いて評価することにより、グリッド線の存在する範囲を検出し、得られたグリッド線から交点を求めることを特徴とする画像処理方法。
【請求項３】
前記所定の評価関数がＰ（ｘ）＝ｐ（ｘ−１）ｐ（ｘ）＋ｐ（ｘ）ｐ（ｘ＋１）（ｐ（ｉ）：座標ｉにおけるグリッド線の候補画素の数）であることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
請求項１に記載の画像処理方法において、補正関数演算過程において、グリッド画像中のブロックと、前記グリッド交点補正過程により得られたブロックを画成する各交点の座標値に基づき、当該ブロックにおける実際の撮影画像を補正するためのアフィン変換関数を演算することを特徴とする画像処理方法。
【請求項５】
請求項１に記載の画像処理方法において、前記撮影光学系の背後に、撮影距離の異なる被写体画像を各々良好に撮像できるよう光軸上の異なる位置に配置された複数の撮像素子を配置し、前記撮影過程において各撮像素子によりそれぞれグリッド画像を撮影し、得られた複数のグリッド画像に関してそれぞれ行なう前記補正関数演算過程においては、複数のグリッド画像のうち所定の一のグリッド画像に関して行なった前記グリッド交点補正過程により得られたブロックを画成する各交点の座標と、当該のグリッド画像中のブロックを画成する各交点の座標に基づき実際の撮影画像を補正するための補正関数を演算することを特徴とする画像処理方法。
【請求項６】
請求項１〜５のいずれか１項に記載の画像処理方法を実施するための画像処理装置。
【請求項７】
請求項１〜５のいずれか１項に記載の画像処理方法を所定の画像処理装置において実施するための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影光学系および撮像素子を用いて撮影した画像データの前記撮影光学系および撮像素子に起因する歪みを補正する画像処理方法、画像処理装置、および画像処理プログラムに関するものである。
【背景技術】
【０００２】
従来より、それぞれ複数の光軸の異なる撮影光学系を介して撮影された画像から、被写体の位置や座標を測定する技術が知られている（たとえば下記の特許文献１）。この種の撮影方式はステレオ撮影あるいは立体撮影などと呼ばれ、また、用いられるカメラはステレオカメラや立体カメラなどと呼ばれることがある。
【０００３】
また、撮影距離の異なる画像を合成し、遠景から近景までの全ての被写体にピントの合った画像を得る技術（たとえば下記の特許文献２）が知られている。この種の技術では、たとえば、近距離（Ｎ：Ｎｅａｒ）、中距離（Ｍ：Ｍｉｄｄｌｅ）、遠距離（Ｆ：Ｆａｒ）にそれぞれ被写界深度を持つよう撮影光学系に対して異なる位置にそれぞれ近距離用、中距離用、遠距離用の撮像素子を配置し、各撮像素子から得られたＮ（近距離）、Ｍ（中距離）、Ｆ（遠距離）の各画像を解析し、各画像の鮮鋭度などの条件に基づき各画像より適切な部位を抽出して合成することによって、より鮮鋭度の高い画像を得ることができる。以下では便宜上この近距離（Ｎ：Ｎｅａｒ）、中距離（Ｍ：Ｍｉｄｄｌｅ）、遠距離（Ｆ：Ｆａｒ）の画像を合成して画像の鮮鋭度を高める撮影技術／画像処理技術をそれぞれＮＭＦ撮影／ＮＭＦ画像処理という。
【０００４】
そして、もちろん上記のステレオ（立体）撮影の技術に、上記ＮＭＦ撮影／画像処理を適用することができ、その場合、ＮＭＦ画像処理により鮮鋭度を改善された画像に基づき、より正確に被写体の位置や座標を測定することができる。
【特許文献１】特開２００３−２８１５２１号公報
【特許文献２】特開平１１−３７７２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の公知技術においては、撮像素子としてはＣＣＤのような素子が用いられるが、この種の素子には製造上の歪みが少なからず存在し、実際に撮像される画素の位置は理論的な位置からずれている。また、さらに、撮像レンズにも各種の光学収差が存在し、撮影画像にはこの収差が影響し、たとえば、上記のステレオ（立体）撮影による座標測定においては、測定精度が低下するし、また上記のＮＭＦ画像合成処理においては、そして、上記の技術においては少なくとも近距離用、中距離用、遠距離用の異なる複数の撮像素子が用いられるが、各撮像素子のそれぞれ異なる歪みと光学系の収差が撮影画像に反映される結果、良好な画像の連続性を得られなかったり、所期の鮮鋭度を得られない、などの問題が生じる。
【０００６】
本発明の課題は、上記の問題を解決し、撮像素子および撮影光学系の歪みに起因する誤差を補正し、特にステレオ（立体）撮影およびＮＭＦ撮影／画像処理を適用する場合に、より正確な被写体の画像を得られ、これに基づき正確に被写体の位置や座標を測定することができるようにすることにある。
【課題を解決するための手段】
【０００７】
本発明は、撮影光学系および撮像素子を用いて撮影した画像データの前記撮影光学系および撮像素子に起因する歪みを補正する画像処理方法、画像処理装置、および画像処理プログラムにおいて、直交する縦線および横線から成るグリッド画像を前記撮影光学系および撮像素子により撮影し、前記グリッド画像の縦線および横線から構成されるブロックの交点を検出し、前記ブロックの交点を当該ブロックが矩形となるように補正し、前記グリッド交点補正により得られたブロックを画成する各交点の座標と、前記グリッド画像中のブロックを画成する各交点の座標に基づき実際の撮影画像を補正するための補正関数を演算するキャリブレーション処理を行なう構成を採用した。
【発明の効果】
【０００８】
以上の構成によれば、グリッド画像のキャリブレーション撮影を行ない、グリッド画像の縦線および横線から構成されるブロックを単位として、そのブロックを画成する交点をそのブロックが矩形となるように補正し、グリッド交点補正により得られたブロックを画成する各交点の座標と、グリッド画像中のブロックを画成する各交点の座標に基づき実際の撮影画像を補正するための補正関数を演算するようにしているので、実際の撮影において、撮像素子および撮影光学系の歪みに起因する誤差を補正し、特にステレオ（立体）撮影およびＮＭＦ撮影／画像処理を適用する場合に、より正確な被写体の画像を得られ、これに基づき正確に被写体の位置や座標を測定することができる、という優れた効果がある。
【発明を実施するための最良の形態】
【０００９】
以下では、便宜上、ステレオ（立体）撮影およびＮＭＦ撮影／画像処理を行なう撮影システムを例示する。しかしながら、本発明の画像処理技術の基本部分は必ずしもステレオ（立体）撮影およびＮＭＦ撮影／画像処理を行なう場合でなくても適用できる。たとえば、本発明の画像処理技術の基本部分は、単一レンズを用い、ＮＭＦ画像合成を行なわない撮影システムにも適用できる。
【実施例１】
【００１０】
＜ハードウェア構成＞
図１は本発明を採用した画像処理システムの全体構成を示している。図１のシステムはステレオカメラ２０および制御システム４０から構成されている。
【００１１】
ステレオカメラ２０は、立体撮影を行なうための撮影光学系として、所定距離離して平行に光軸を配置したレンズ２１および２２と、これらレンズ２１および２２の背後にそれぞれ配置されたＣＣＤなどから構成された撮像素子２０１ｎ、２０１ｍ、２０１ｆ、および２０２ｎ、２０２ｍ、２０２ｆ、を有する。
【００１２】
撮像素子２０１ｎ（２０２ｎ）、２０１ｍ（２０２ｍ）、２０１ｆ（２０２ｆ）は、Ｎ（近距離）、Ｍ（中距離）、Ｆ（遠距離）の被写体の画像を各々良好に撮像できるよう、それぞれレンズ２１（２２）の光軸上の異なる位置に配置される。図１では、簡略化のため撮像素子２０１ｎ（２０２ｎ）および２０１ｍ（２０２ｍ）の方向に撮影光を導くためにハーフミラー２０４を配置した構成を示しているが、このような光路分割手段の構成は任意であり、たとえば撮像素子２０１ｎ（２０２ｎ）、２０１ｍ（２０２ｍ）、２０１ｆ（２０２ｆ）の方向に撮影光を導くような反射／透過面を有するプリズムなどを用いることができる。
【００１３】
また、ステレオカメラ２０は、レンズ２１および２２の合焦動作や露光制御、各撮像素子の撮影タイミングや画像出力処理などを制御するＣＰＵ２０３を有している。レンズ２１および２２は通常（ステレオ画像の左右を同一条件で撮影する場合に）、同一の焦点距離および開口比を持つものが用いられる。ＣＰＵ２０３および各撮像素子２０１ｎ、２０１ｍ、２０１ｆ、および２０２ｎ、２０２ｍ、２０２ｆの撮影画像データは所定のインターフェース（ＵＳＢなど）を介して制御システム４０に送信される。
【００１４】
制御システム４０は、既存のＰＣのほぼ一般的なハードウェアから構成することができる。すなわち、制御システム４０は、装置全体の制御、および本発明の画像処理を制御するためのＣＰＵ５１、プログラムやデータを格納するためのＲＯＭ５２およびＲＡＭ５３、後述の制御プログラムや撮影データを格納するためのＨＤＤ５４、ユーザーインターフェースのためのディスプレイ（ＣＲＴやＬＣＤなど）４１およびキーボード４２、そしてステレオカメラ２０と接続するためのＵＳＢなどのインターフェース５５から構成されている。
【００１５】
上述のように以上の構成においても、各撮像素子２０１ｎ、２０１ｍ、２０１ｆ、および２０２ｎ、２０２ｍ、２０２ｆには、製造条件などに応じて個体ごとにそれぞれ異なる歪みが存在し、また、どのような高精度の素子を用いたとしてもレンズ２１および２２には何らかの収差が残っており、ステレオ（立体）撮影およびＮＭＦ画像合成に少なからず影響を与える。本実施例では、この撮像素子およびレンズに起因する歪みを補正する。
【００１６】
＜画像処理全体の流れ＞
本実施例の画像処理は制御システム４０のＣＰＵ５１により実行されるものとする。また、以下の補正処理は、実際の撮影を行なう前（たとえばステレオカメラ２０の製品出荷時など）に１回行なえばよい。
【００１７】
本実施例の補正処理の全体の流れは図２に示す通りであり、まずステップＳ２１においてキャリブレーション用のグリッドを図１のステレオカメラ２０により撮影する。図３に示すようにこのグリッド６０は白地に黒で直交する縦線および横線から成るグリッドが描かれたもので、紙やプラスチックシートに印刷などの方法で形成する。このグリッド６０のそれぞれ隣り合う直線により構成され、該直線の交点により囲まれた最も小さい正方形の矩形のブロックは以下では便宜上「ブロック」という。
【００１８】
グリッド６０の密度および撮影距離は任意であるが、撮像素子上に補正処理を行なうに充分な本数のグリッドが撮影されるように選ぶ。たとえば、後述の例では、撮像素子は画素数が１０２４×７６８程度のものであるが、撮像素子の５０〜６０画素ごとに一本程度の密度でグリッドが写るようにグリッド６０の密度および撮影距離が選択されている。
【００１９】
ステップＳ２２では、撮像素子（たとえば２０１ｎ）で撮影した撮影画像データ上の縦横のグリッド線が存在する範囲を演算する。ここでは、交点周辺のグリッド線範囲（縦・横）の中心を通る直線の式を求め、さらに縦横２つの直線の式から交点をサブピクセル単位で求める。この撮影画像データ上のグリッド交点を検出する処理については以下で詳述する。
【００２０】
撮影画像データ上では上記の撮像素子およびレンズに起因する歪みの影響で、グリッドは直線として写っていないので、続くステップＳ２３ではグリッドが縦横の直線となるよう、すなわち各ブロックが矩形（正方形）となるように補正し、その補正後のグリッド交点を求める。この縦横の直線となるように補正したグリッドは本来撮像素子およびレンズに起因する歪みが無い場合に撮影されたグリッドである。このグリッド交点の補正についても以下で詳述する。
【００２１】
いうまでもなく、補正前のグリッドは撮像素子およびレンズに起因する歪みを反映しているから、補正前のグリッドと補正後のグリッドの形状の差を評価しておき、その評価結果を用いれば実際の撮影画像を補正し、撮像素子およびレンズに起因する歪みの影響を除去した画像を得られる。本実施例では、ステップＳ２４に示されるように補正前のグリッドと補正後のグリッドの形状の差の評価はグリッドが構成する各ブロックごとに補正前のブロックと補正後のブロックの形状に基づきアフィン変換関数を求めることにより行なう。
【００２２】
このように、各ブロックごとに実際の撮影画素を補正するためのアフィン変換関数を求めておけば、実際の撮影においてこのアフィン変換関数を用いて撮影画像を補正し、撮像素子およびレンズに起因する歪みの影響を排除した画像データを得ることができる。（ステップＳ２５）。
【００２３】
上記の補正処理を行なう際、まず重要なのは図２のステップＳ２２において撮影画像上においてグリッドの交点座標を求め、また、ステップＳ２３においてグリッドの交点を補正することである。
【００２４】
以下では、これらの補正処理につき説明するが、最初にステレオ（立体）撮影およびＮＭＦ画像合成に関係しない一対のレンズおよび撮像素子（たとえばレンズ２１と撮像素子２０１ｎ）の組合せにおける画像処理を説明し、続いてステレオ（立体）撮影およびＮＭＦ画像合成、特にＮＭＦ画像合成において重要な画像処理を説明するものとする。
【００２５】
＜グリッド交点検出処理＞
まずステップＳ２２におけるグリッド交点検出につき説明する。
【００２６】
グリッド線検出に関して考察すると、次のような問題がある。一般論としては所定の閾値を設定し、撮影画像データで輝度が閾値以下となる点をグリッド線の存在する位置として検出することが考えられ、そして、この閾値によるスキャンを縦または横方向に行なえばグリッド線の位置が得られると考えられる。しかし、実際は次の２つの問題によって上記の方法ではグリッド線の位置を正確に得ることができない。
【００２７】
（１）レンズ周辺は中央部に比べて暗くなるため白い部分も閾値を下回る場合がある
（２）全体が樽型にゆがんでいるため縦・横の走査線上においてグリッド線が現れたり消えたりする。
【００２８】
問題（１）に関して、グリッド撮影画像上を横方向に１本の走査線で走査した輝度のグラフを図４に示す。図４（および後述の図５および図６）の縦軸は輝度、横軸は画素アドレスを示している。図示のように、グリッドの縦線に相当する鋭い輝度の落ち込みが周期的に現れているが、レンズ周辺部で輝度が落ち込んでいる様子がわかる。
【００２９】
また、問題（２）の樽型歪みは図８に示すようなもので、走査線Ｌ上にグリッド線が現れたり消えたりする現象である。単純な横方向走査ではグリッド線が画像の端から端ではなく、図８の破線内に存在すると誤検出されることがある。図５の走査線データは図の右方において輝度が落ち込んでおり、この部分において樽型に歪んだ横方向のグリッドの影響が現われている。
【００３０】
そして、問題（１）と問題（２）が複合している部分における輝度の変化は図６に示すようなものとなる。さらに、図７は複数の走査線上の輝度の変化を１つのグラフ中に示しているが、図４〜図７を考察すれば、単純な閾値による切断ではグリッド線の位置を正確に演算することは極めて困難であることがわかる。
【００３１】
そこで、本実施例では、グリッド線を検出するために、次のような手法を用いる。
【００３２】
（ａ１）グリッド線を構成する輝度の低い画素を検出する。ここでは画像データの（縦のグリッド線検出の場合）キャリブレーション画像を横方向に走査、あるいは（横のグリッド線検出の場合）キャリブレーション画像を縦方向に走査する
（ａ２）グリッド線と思われる候補画素を検出する。ここでは、輝度が過去の複数走査線（たとえば４〜５本程度）における同一画素アドレスの複数画素（たとえば４〜５画素程度）の平均の６０％（あるいは他の適当な閾値パーセンテージ）を下回った画素を候補画素とする
（ａ３）グリッド線が存在する範囲を検出する。ここでは、各画素アドレスでグリッド線の候補画素が何点あったかを求め、その連続性を評価する。この評価には次の評価関数を用いる。
【００３３】
【数１】
2005340985.tif 000003
【００３４】
この式においてｐ（ｉ）は画素アドレス（座標）ｉにおけるグリッド線の候補画素の数である。この評価関数Ｐ（ｘ）の値が閾値以上の場合、グリッド線が存在する範囲として検出する。
【００３５】
図９に上の評価関数Ｐ（ｘ）による範囲検出の様子を示す。図９では、横方向の４本の走査線が示されており、一番下のこれら４本の走査線を用いて行なわれる評価の様子が下部の表中に示してある。この表の上段は上の評価関数Ｐ（ｘ）の右辺のｐ（ｘ）のそれぞれの（水平）画素アドレスにおける値で上部の４本の走査線における各（水平）画素アドレスにおける黒画素の数に一致する。また、表の下段は、算出された評価関数Ｐ（ｘ）の値で、たとえば中央の「２０」は上段のｐ（ｘ）の値「３」、「４」、「２」からＰ（ｘ）２０＝（３×４）＋（４×２）と算出されたものである。そして、図９では、適当な閾値（たとえば１０以上）のＰ（ｘ）の値の範囲をグリッド線の領域として検出している。
【００３６】
図１０および図１１は、上記のようにグリッド画像から求めた縦および横の実際のグリッド線範囲の例を示す。図１０および図１１では、図９のようにして検出されたグリッド線の領域を黒線で示しているが、図示のように画面周辺部で歪み／収差の影響によりグリッド線の範囲が広く検出されていることがわかる。
【００３７】
以上のようにして、縦横のグリッド線範囲を検出できる。さらに図１０および図１１のように幅のあるグリッド線範囲の交点領域内でグリッド交点を検出しなければならない。
【００３８】
図１０および図１１のように幅のあるグリッド線範囲の交点領域付近を拡大すると図１２のようにグリッド線範囲が交わっており、グリッド線範囲の内部は輝度の異なる画素で埋められている。ここで検出すべき交点座標は
【００３９】
【数２】
2005340985.tif 000004
【００４０】
と考えることができるから、縦と横の線の中心を求める必要がある。このためには、線の太さ方向に見て輝度が最も低い画素の前後１画素（計３画素）の輝度値を用い、次のようにして線の中心を求める。
【００４１】
（ｂ１）図１２の横方向のグリッド線の中心を求める場合、図１２の右側に示すように、線の太さ方向に見て輝度が最も低い画素の前後１画素（計３画素）の輝度値を用い、グリッド線領域の画素データの輝度値を用いてこれら３点の輝度値を通る２次関数を適当な演算法、たとえばガウス法などを用いて求める
（ｂ２）同関数曲線上で最も輝度が暗くなる座標を線の中心座標として検出する。
【００４２】
以上のようにして、グリッド画像上のグリッドの交点の座標をサブピクセル単位で得ることができる。
【００４３】
以上のようにしてグリッド画像から求めた交点（の一部）をグラフ化したものを図１３に、また、図１３の上部のグリッド線のうち１本分を拡大したものを図１４に示す。図１３および図１４において、上記のようにして検出された交点座標は黒点で示されている。これら交点座標（ここではｙ座標）はサブピクセル単位で算出される。図１４では縦方向を他の図よりも拡大しているために、グリッド線の曲りはより強調して示されている。
【００４４】
なお、以上では、ｘ（横）方向に関する走査線に関する演算を示したが、ｙ（縦）方向に関しても同様の演算を行なうことができるのはいうまでもない。
【００４５】
以上のようにして、図２のステップＳ２２におけるグリッド交点検出を行なうことができる。
【００４６】
＜グリッド交点補正処理＞
続いて図２のステップＳ２３におけるグリッドの交点補正につき説明する。
【００４７】
以上の説明から明らかなように、キャリブレーション撮影により撮影されたグリッド画像は、撮像素子およびレンズに起因する歪みの影響を受け、図１５の右側に示すように歪んでいる。本実施例ではこの歪みの状態を反映したアフィン変換関数を求めておき、実際の撮影画像を補正する。
【００４８】
このアフィン変換関数の生成には、実際に撮影したグリッド画像の他に、本来の歪んでいないグリッド画像データが必要である。この歪んでいないグリッド画像データとしては撮影距離や倍率、画角中心などの撮影条件を厳密に制御した上、あらかじめ撮像素子上に撮影されると考えられるグリッド画像データを固定的に用いることも考えられるが、キャリブレーション時に撮影条件の制御を正確に行なうことはそれほど容易ではない。
【００４９】
したがって、本実施例では、キャリブレーション撮影されたグリッド画像に基づき、歪んでいないグリッドを求めるグリッド補正を行なう。
【００５０】
本実施例のグリッド補正では、図１５のようにキャリブレーション撮影されたグリッド画像中心部の４点の交点Ｐ００、Ｐ０１、Ｐ１０、およびＰ１１を用いて画面全体にわたって本来の歪んでいないグリッドを生成する。これらの交点Ｐ００、Ｐ０１、Ｐ１０、およびＰ１１は、画面中心の座標から外側に向かってグリッド画像データを探索すれば容易に同定することができる。なお、これら画面中心部の交点Ｐ００、Ｐ０１、Ｐ１０、およびＰ１１を用いるのは、この部位がレンズの光学的特性や撮像素子の機械的歪みの影響が最も少ない条件で撮影された部位であると考えられるからである。
【００５１】
交点Ｐ００、Ｐ０１、Ｐ１０、およびＰ１１はそれぞれ（ｘ００，ｙ００）、（ｘ０１，ｙ０１）、（ｘ１０，ｙ１０）、および（ｘ１１，ｙ１１）の各座標値を有するものとすれば、これら交点Ｐ００、Ｐ０１、Ｐ１０、およびＰ１１が画成するブロックの幅Ｄｘおよび高さＤｙは、これらのうち適当な２点を決め、ｘ座標値およびｙ座標値を減算すれば求めることができるが、たとえば、幅ＤｘはＤｘ＝（（ｘ０１−ｘ００）＋（ｘ１１−ｘ１０））／２、高さＤｙはＤｙ＝（（ｙ１０−ｙ００）＋（ｙ１１−ｙ０１））／２のように平均値として求めれば演算精度を向上できる。
【００５２】
後は、このようにして求めた幅Ｄｘないし高さＤｙを整数倍した値を交点Ｐ００、Ｐ０１、Ｐ１０、およびＰ１１のｘｙ座標に加算すれば歪みのない交点群を得ることができる。たとえば、交点Ｐ００、Ｐ０１、Ｐ１０、およびＰ１１に対してｉおよびｊ番目（ｉおよびｊは整数）にｘないしｙ座標が大きい、あるいは小さい交点の座標値は、次のように求めることができる。
【００５３】
Ｐ００よりｘ座標が小さく、ｙ座標も小さい交点Ｐｉｊ：
Ｐｉｊ（ｘ００−Ｄｘ×ｉ，ｙ００−Ｄｙ×ｊ）
Ｐ０１よりｘ座標が大きく、ｙ座標が小さい交点Ｐｉｊ：
Ｐｉｊ（ｘ０１＋Ｄｘ×ｉ，ｙ０１−Ｄｙ×ｊ）
Ｐ１０よりｘ座標が小さく、ｙ座標が大きい交点Ｐｉｊ：
Ｐｉｊ（ｘ１０−Ｄｘ×ｉ，ｙ１０＋Ｄｙ×ｊ）
Ｐ１１よりｘ座標が大きく、ｙ座標も大きい交点Ｐｉｊ：
Ｐｉｊ（ｘ１１＋Ｄｘ×ｉ，ｙ１１＋Ｄｙ×ｊ）
Ｄｘ×ｉまたはＤｙ×ｊの値が画面の大きさを超えない範囲内でｉおよびｊのカウンタをインクリメントしながら、上記の演算を行なえば、歪みのないグリッド交点群を得ることができる。なお、この演算中にＤｘ×ｉまたはＤｙ×ｊの値が画面の大きさを超えた（あるいは等しい）場合は、画面端部の補正後交点Ｐｉｊは図１８に示すようにその１つ前の補正後交点Ｐｉｊのｘまたはｙ座標の一方の値を画面端部に対応する座標値に置換することにより画面端部の補正後交点Ｐｉｊを求めることができる。図１８の例は画面上端の補正後交点Ｐｉｊの例で、１つ前の補正後交点Ｐｉｊのｘまたはｙ座標の一方の値を画面端部に対応する座標値である０に置換している。他の４辺上の補正後交点についても同様の演算により求めることができる。
【００５４】
以上のようにして、キャリブレーション撮影により撮影されたグリッド画像に基づいて歪みのない補正後ブロックをそれぞれ画成するグリッド交点群を得ることができる。
【００５５】
なお、上記のようにキャリブレーション撮影により撮影されたグリッド画像に基づいて行なうグリッド補正は、キャリブレーション時の厳密な撮影条件制御が不要であり、低コストで容易に実施できる。
【００５６】
＜補正関数演算処理＞
以上のようにして得られた補正前ブロックと補正後ブロックから、実際の撮影画像の補正処理（図２のステップＳ２５）に用いるべきアフィン変換関数を求める。たとえば、図１６では画像左上部の補正前交点１−１、１−２、２−１、２−２の４交点により画成されたブロックは補正後交点１−１、１−２、２−１、２−２の４交点により画成されたブロックに対応づけることができ、この補正前ブロックの形状を補正後ブロックの形状に変形させることができるアフィン変換関数を求めればよい。このグリッド補正のためのアフィン変換関数は各補正前および補正後のブロックごとに生成する。
【００５７】
実際の撮影画像を取り扱うプログラム処理（図２のステップＳ２５）では、画面中の特定のアドレス（ｘｙ座標）にある画素の輝度値を補正する処理を行なうことになる。したがって、処理効率を考えると、画面中の特定のアドレスを補正後ブロック中の特定点と考え、この画面中の特定のアドレスに存在すべき輝度値が補正前のどのアドレスから得られるかを求められるよう、アフィン変換関数を当該ブロックについて求めておくと都合がよい。
【００５８】
一般に座標(x,y)から座標(u,v)へのアフィン変換は
【００５９】
【数３】
2005340985.tif 000005
【００６０】
【数４】
2005340985.tif 000006
【００６１】
で表される。この２つの式において、p1,p2,p3,q1,q2,q3がアフィン変換関数を決定づけるアフィン変換係数である。
【００６２】
ここで、あるブロックについてアフィン変換係数p1〜q3を求めるには、たとえば次の条件を満足するp1〜q3を算出すればよい：
（ｃ１）補正後の交点1-1(x11,y11) を補正前の交点1-1(u11,v11) へ変換
（ｃ２）補正後の交点1-2(x12,y12) を補正前の交点1-2(u12,v12) へ変換
（ｃ３）補正後の交点2-1(x21,y21) を補正前の交点2-1(u21,v21) へ変換
すなわち、上記の条件を満足するアフィン変換係数は、交点1-1(x11,y11)、交点1-2(x12,y12)、交点2-1(x21,y21)、交点2-2(x22,y22)、により規定される補正後のブロックを、交点1-1(u11,v11) 、交点1-2(u12,v12) 、交点2-1(u21,v21) 、交点2-2(u22,v22) 、補正前のブロックに変形させることができるものである。
【００６３】
ここで、
【００６４】
【数５】
2005340985.tif 000007
【００６５】
【数６】
2005340985.tif 000008
【００６６】
【数７】
2005340985.tif 000009
【００６７】
【数８】
2005340985.tif 000010
【００６８】
【数９】
2005340985.tif 000011
【００６９】
と置くと、
【００７０】
【数１０】
2005340985.tif 000012
【００７１】
【数１１】
2005340985.tif 000013
【００７２】
が成り立つ。この式（１０）（１１）は上記のアフィン変換関数について上の条件（ｃ１）〜（ｃ３）を適用したものである。そして、この式（１０）、（１１）を解けばアフィン変換係数を求めることができる。この式を解くにはいくつかの方法があるが、本実施例では行列が３×３と小さいことから、クラーメルの公式を用いる。
【００７３】
たとえば式（１０）の場合、
【００７４】
【数１２】
2005340985.tif 000014
【００７５】
【数１３】
2005340985.tif 000015
【００７６】
【数１４】
2005340985.tif 000016
【００７７】
と計算できる。ここで、││は行列式で、その値は
【００７８】
【数１５】
2005340985.tif 000017
【００７９】
と計算でき、アフィン変換係数ｐ１〜ｐ３を求めることができる。式（１１）についても同様の演算を行なうことにより、アフィン変換係数ｑ１〜ｑ３を求めることができる。
【００８０】
＜撮影画像補正処理＞
以上のように係数を求めたアフィン変換は、画素アドレスから画素アドレスへの変換であり、補正後のブロック中の所定画素アドレスから補正前のブロック中の対応する画素アドレスを求めることができるように係数が求められている。したがって、実際の撮影画像を取り扱うプログラム処理（図２のステップＳ２５）においては、ある注目画素アドレスを決めれば、補正前のブロック中の注目画素アドレスに対応する画素アドレスを求め、その画素アドレスにおいて得られる輝度値を当該注目画素アドレスの輝度値として出力することができる。
【００８１】
たとえば、あるブロックに関して求められたアフィン変換係数を用いて、処理すべき注目画素のアドレス（ｘｙ座標）が（１５０，１５０）であった場合、アフィン変換係数を用いると（１５２．５，１５１．３）のような画素アドレスが得られる。すなわち、画素アドレス（１５０，１５０）の注目画素の輝度値は、実際の撮影データでは、アドレス（１５２．５，１５１．３）に歪んで出力されているから、この画素アドレス（１５２．５，１５１．３）における輝度を画素アドレス（１５０，１５０）の輝度として出力すれば撮像素子およびレンズに起因する歪みを補正できることになる。
【００８２】
ここで、アフィン変換により補正された座標は（１５２．５，１５１．３）のようにサブピクセル単位で算出されるため、実際の演算ではこの実数座標を取り囲む位置にある４つの画素の輝度（色データ）から線形補間等で輝度値を求めればよい。
【００８３】
たとえば、上の画素アドレス（１５２．５，１５１．３）における輝度値ｃを線形補間するには、この画素を取り囲むｃ００（１５２，１５１）ｃ１０（１５３，１５１）ｃ０１（１５２，１５２）ｃ１１（１５３，１５２）の４画素の輝度値を用いて次のような線形補間を行なう：
【００８４】
【数１６】
2005340985.tif 000018
【００８５】
ここで、ａおよびｂは入力座標値（１５２．５，１５１．３）の小数部でこの例の場合ａ＝１５２．５−１５２＝０．５、また、ｂ＝１５１．３−１５１＝０．３である。
【００８６】
実際の撮影画像を取り扱うプログラム処理（図２のステップＳ２５）においては、撮影画像領域を１画素づつ順にスキャンし、上記のようにしてその注目画素アドレスにおいて出力すべき輝度値（たとえばＲＧＢデータ）を演算していけばよい。
【００８７】
以上のようにして、撮像素子および撮影光学系の歪みに起因する誤差を補正し、より正確な被写体の画像を得ることができる。
【００８８】
なお、画面周辺部ではアフィン変換により補正された座標値が実際の撮影画像データのアドレス範囲を超えてしまう場合があるので、このような部分については画像データを無効として捨てるか、あるいは適当な演算方式により近似した値を出力するようにしてもよい。
【００８９】
＜ＮＭＦ撮影における補正関数演算処理＞
以上では、ステレオ撮影およびＮＭＦ撮影に依存しない補正処理につき説明した。図１に示したようなステレオ撮影およびＮＭＦ撮影を行なう撮影システムでは以下のような補正を行なうことができる。
【００９０】
図１から明らかなように、ＮＭＦ撮影においてはＮ（近）、Ｍ（中）、Ｆ（遠）の３枚の画像データが得られる。たとえば図１の撮像素子２０１ｎ（２０２ｎ）、２０１ｍ（２０２ｍ）、２０１ｆ（２０２ｆ）はそれぞれ異なる製造上の歪みを有する可能性がある。そしてこれら各撮像素子で得られる画像データごとに独立して上記の補正処理を行なってもよいが、演算コストが極めて大きくなる問題がある。
【００９１】
そこで、図２のステップＳ２１の撮影の後、上述のステップＳ２２の交点座標の検出までをＮ（近）、Ｍ（中）、Ｆ（遠）の画像データについてそれぞれ行ない、続いて、ステップＳ２３のグリッド交点座標の補正処理をＮ（近）、Ｍ（中）、Ｆ（遠）の画像データのうちの１つ、たとえばＭ（中）の画像について行なう。ここでは、前述のようにして撮影された画面中心部の４点のグリッド交点から、歪んでいない補正後交点群を画面全体にわたって求める。
【００９２】
そしてＮ（近）およびＦ（遠）の画像データについては３画素の補正後の交点座標を一致させるため、Ｍ（中）の画像について求めた補正後のグリッド交点座標を用いてＮ（近）、Ｍ（中）、Ｆ（遠）の全ての画像データに関してアフィン変換関数を求める処理（ステップＳ２４）を行なう。
【００９３】
たとえば、Ｆ（遠）の画像データの場合、図１７に示すようにＭ（中）の画像データから求めた補正後のグリッド交点座標と、Ｆ（遠）の画像データの補正前のグリッド交点座標を用いてアフィン変換関数を求める処理（ステップＳ２４）を行なう。
【００９４】
このようにして、ＮＭＦ画像処理を行なう場合、演算量を大きく低減することができ、画像処理時間を短縮することができる。なお、ステレオ撮影系の場合、以上の画像処理はレンズ系ごとに（図１の場合、撮像素子２０１ｎ、２０１ｍ、２０１ｆの系と撮像素子２０２ｎ、２０２ｍ、２０２ｆの系はそれぞれ別に）行なうのはいうまでもない。
【産業上の利用可能性】
【００９５】
本発明は、立体画像撮影および画像処理を行なう任意の立体画像処理システムにおいて実施することができる。以上では、画像処理をＰＣハードウェアで行なう構成を例示したが、画像処理を行なう装置はＰＣに限定されるものではなく、専用機として構成された画像処理装置、画像データを入力する機能を有する画像形成装置（プリンタなど）、あるいはステレオカメラそれ自体などであってよい。また、本発明の画像処理を制御するためのプログラムは適当な記憶媒体経由、あるいはネットワーク経由で対象の画像処理装置（上記のＰＣやステレオカメラなど）に導入することができる。
【図面の簡単な説明】
【００９６】
【図１】本発明を採用した画像処理システムの構成を示した説明図である。
【図２】本発明による画像処理全体の流れを示したフローチャート図である。
【図３】本発明において用いられるグリッドの構成を示した説明図である。
【図４】本発明による画像処理において撮影された走査線の輝度変化を示した線図である。
【図５】本発明による画像処理において撮影された走査線の輝度変化を示した線図である。
【図６】本発明による画像処理において撮影された走査線の輝度変化を示した線図である。
【図７】本発明による画像処理において撮影された走査線の輝度変化を示した線図である。
【図８】本発明による画像処理において問題となる樽型歪みの状態を示した説明図である。
【図９】本発明による画像処理における評価関数の適用を示した説明図である。
【図１０】本発明による画像処理において検出されたグリッド線範囲（縦）を示した説明図である。
【図１１】本発明による画像処理において検出されたグリッド線範囲（横）を示した説明図である。
【図１２】本発明による画像処理におけるグリッド交点座標の検出方法を示した説明図である。
【図１３】本発明による画像処理において検出されたグリッド交点座標を示した線図である。
【図１４】本発明による画像処理において検出されたグリッド交点座標を拡大して示した線図である。
【図１５】本発明による画像処理において撮影されるグリッドおよび撮影されたグリッド画像を示した説明図である。
【図１６】本発明による画像処理におけるグリッド交点の補正方法を示した説明図である。
【図１７】本発明による画像処理におけるグリッド交点の補正方法をＮＭＦ画像に適用する場合を示した説明図である。
【図１８】本発明による画像処理における画面端部のグリッド交点の補正方法を示した説明図である。
【符号の説明】
【００９７】
２０  ステレオカメラ
２１、２２  レンズ
４０  制御システム
４１  ディスプレイ
４２  キーボード
５１  ＣＰＵ
５４  ＨＤＤ
５５  インターフェース
２０１ｎ、２０１ｍ、２０１ｆ  撮像素子
２０２ｎ、２０２ｍ、２０２ｆ  撮像素子
２０３  ＣＰＵ
【図１】
2005340985.tif 000019
【図２】
2005340985.tif 000020
【図３】
2005340985.tif 000021
【図４】
2005340985.tif 000022
【図５】
2005340985.tif 000023
【図６】
2005340985.tif 000024
【図７】
2005340985.tif 000025
【図８】
2005340985.tif 000026
【図９】
2005340985.tif 000027
【図１０】
2005340985.tif 000028
【図１１】
2005340985.tif 000029
【図１２】
2005340985.tif 000030
【図１３】
2005340985.tif 000031
【図１４】
2005340985.tif 000032
【図１５】
2005340985.tif 000033
【図１６】
2005340985.tif 000034
【図１７】
2005340985.tif 000035
【図１８】
2005340985.tif 000036