(57)【要約】【課題】視差が含まれる２つの画像を用いた距離測定において、サブピクセル精度の演算における系統的な誤差の影響を低減することを課題とする。【解決手段】開示の技術の一態様に係る撮像装置は、視差が含まれる２つの画像を有する画像ペアを取得し、前記画像ペアから探索した前記視差と、前記視差を生じさせる基線長と、に基づき被写体との距離を測定する撮像装置であって、異なる前記基線長に応じ、前記視差の異なる複数の前記画像ペアを取得し、異なる前記基線長のうち長い方の前記基線長を、短い方の前記基線長で除した商の整数倍は、無限小数を有することを特徴とする。【選択図】図１
2019158759.tif 000002
【特許請求の範囲】
【請求項１】
視差が含まれる２つの画像を有する画像ペアを取得し、前記画像ペアを用いて探索される前記視差と、前記視差を生じさせる基線長と、に基づき被写体との距離を測定する撮像装置であって、
異なる前記基線長に応じ、前記視差の異なる複数の前記画像ペアを取得し、
異なる前記基線長のうち長い方の前記基線長を、短い方の前記基線長で除した商の整数倍は、無限小数を有する
ことを特徴とする撮像装置。
【請求項２】
視差が含まれる２つの画像を有する画像ペアを取得し、前記画像ペアを用いて探索される前記視差と、前記視差を生じさせる基線長と、に基づき被写体との距離を測定する撮像装置であって、
異なる前記基線長に応じ、前記視差の異なる複数の前記画像ペアを取得し、
異なる前記基線長のうち長い方の前記基線長を、短い方の前記基線長で除した商の整数倍は、探索視差範囲を上限とした範囲において小数を有する基線長の組み合わせである
ことを特徴とする撮像装置。
【請求項３】
３つ以上のカメラを有し、前記３つ以上のカメラのうちの任意の２つのカメラの組により、視差が含まれる２つの画像を有する画像ペアを取得し、前記画像ペアを用いて探索される前記視差と、前記組における２つのカメラの間隔である基線長と、に基づき、被写体との距離を測定する撮像装置であって、
前記基線長の異なる前記組を２つ以上有し、異なる前記基線長に応じ、前記視差の異なる複数の前記画像ペアを取得し、
異なる前記基線長のうち長い方の前記基線長を、短い方の前記基線長で除した商の整数倍は、無限小数を有する
ことを特徴とする撮像装置。
【請求項４】
前記複数のカメラは、所定方向に配列された３つのカメラである
ことを特徴とする請求項３に記載の撮像装置。
【請求項５】
前記複数の前記画像ペアに基づき、前記距離を算出する処理手段を有し、
前記処理手段は、
前記２つの画像のうちの一方の前記画像をシフトさせ、前記シフト毎で、前記２つの画像の類似性の評価値を算出し、前記シフトに伴う前記評価値の変化であるコストカーブを取得するコストカーブ取得部と、
前記異なる前記基線長のうちの一つである基準基線長を用いて、前記コストカーブにおける前記シフトを正規化し、正規化コストカーブを取得するコストカーブ正規化部と、
前記複数の前記画像ペア毎で算出された前記正規化コストカーブに基づき、前記視差を算出する視差演算部と、
前記視差と、前記基準基線長とに基づき、前記被写体との前記距離を算出する距離演算部と、を有し、
前記正規化は、所定量の前記シフトに基づき算出される前記距離を、前記画像ペア毎で合わせる処理である、
ことを特徴とする請求項１乃至４の何れか１項に記載の撮像装置。
【請求項６】
前記基準基線長は、前記複数の前記基線長のうち、最も長い前記基線長である
ことを特徴とする請求項５に記載の撮像装置。
【請求項７】
請求項１乃至６の何れか１項に記載の撮像装置を有する
ことを特徴とする車両。
【請求項８】
視差が含まれる２つの画像を有する画像ペアを取得し、前記画像ペアを用いて探索される前記視差と、前記視差を生じさせる基線長と、に基づき被写体との距離を測定する撮像方法であって、
異なる前記基線長に応じ、前記視差の異なる複数の前記画像ペアを取得する工程を有し、
異なる前記基線長のうち長い方の前記基線長を、短い方の前記基線長で除した商の整数倍は、無限小数を有する
ことを特徴とする撮像方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置、車両、及び撮像方法に関する。
【背景技術】
【０００２】
車載や監視などの用途では、ステレオカメラ等を用いて得ることができる３次元情報を利用した空間認識や環境認識が盛んになっている。ステレオカメラ等では、基準とする一方の画像内の画素群と、他方の画像の画素群とから、画像間の相対的な画素群のずれ量である視差を算出する。算出した視差に基づく三角測量により、被写体までの距離を測定する。
【０００３】
ステレオカメラでは、基線長の異なる複数のステレオカメラを組み合わせることにより、周期性パターンを有するシーンにおける距離測定の精度の向上を図った技術が開示されている（例えば、非特許文献１参照）。また、複数のカメラにより基線長の異なる複数のステレオカメラを構成し、至近距離から遠方まで広い範囲で距離測定を高精度に行う技術が開示されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、ステレオカメラ等の、視差が含まれる２つの画像を用いた距離測定では、サブピクセル精度の視差を算出する際に、系統的な誤差が発生することが知られている。視差が整数側に偏るピクセルロッキングと呼ばれる誤差等である。ピクセルロッキングにより、距離の測定精度は低下し、例えば時系列の距離情報を用いて物体の移動量を算出するような場合に、物体が本来の動きとは異なる移動量をもつように観測される等の問題が生じる。
【０００５】
上記の非特許文献１、及び特許文献１の技術では、このようなサブピクセル精度の演算における系統的な誤差の問題は解決されていない。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、視差が含まれる２つの画像を用いた距離測定において、サブピクセル精度の演算における系統的な誤差の影響を低減することを課題とする。
【課題を解決するための手段】
【０００７】
開示の技術の一態様に係る撮像装置は、視差が含まれる２つの画像を有する画像ペアを取得し、前記画像ペアから探索した前記視差と、前記視差を生じさせる基線長と、に基づき被写体との距離を測定する撮像装置であって、異なる前記基線長に応じ、前記視差の異なる複数の前記画像ペアを取得し、異なる前記基線長のうち長い方の前記基線長を、短い方の前記基線長で除した商の整数倍は、無限小数を有することを特徴とする。
【発明の効果】
【０００８】
本発明の実施形態によれば、視差が含まれる２つの画像を用いた距離測定において、サブピクセル精度の演算における系統的な誤差の影響を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態の撮像装置の構成の一例を示す図である。
【図２】第１の実施形態の撮像装置の複数のカメラの配置と基線長との関係を説明する図である。
【図３】第１の実施形態の撮像装置の３台のカメラで取得される画像の一例を示す図である。
【図４】視差演算方法の一例を示す図である。
【図５】視差演算におけるシフトに伴う画像領域の差分の変化の一例を示す図である。
【図６】第１の実施形態の画像処理基板の構成要素を機能ブロックで示す図である。
【図７】第１の実施形態の画像処理基板による処理の一例を示すフローチャートである。
【図８】第１の実施形態のコストカーブ取得部により取得されたコストカーブの一例を示す図である。
【図９】第１の実施形態のコストカーブ正規化部により正規化されたコストカーブの一例を示す図である。
【図１０】第１の実施形態のコストカーブ補間部により補間されたコストカーブの一例を示す図である。
【図１１】第１の実施形態のコストカーブ統合部により統合されたコストカーブの一例を示す図である。
【図１２】第１の実施形態の撮像装置の効果の一例を説明する図である。
【図１３】第２の実施形態の、撮像装置を搭載した車両の構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して発明を実施するための形態について説明する。各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。
【００１１】
［第１の実施形態］
図１は、本実施形態の撮像装置の構成の一例を示す図である。
【００１２】
撮像装置１００は、カメラ１〜カメラＮからなるＮ台のカメラと、画像処理基板１０とを有している。
【００１３】
カメラ１〜カメラＮは、それぞれレンズ３１１〜３１Ｎと、画像センサ３２１〜３２Ｎと、画像センサコントローラ３３１〜３３Ｎとを有している。尚、以下では、レンズ３１１〜３１Ｎを単にレンズ３１と称し、画像センサ３２１〜３２Ｎを単に画像センサ３２と称し、画像センサコントローラ３３１〜３３Ｎを単に画像センサコントローラ３３と称する場合がある。
【００１４】
カメラ１〜カメラＮは、レンズ３１の光軸と交差する方向に配列され、ベース板上に固定されている。カメラ１は、レンズ３１１による被写体の像を、画像センサ３２１で撮像し、出力する。他のカメラ２〜カメラＮにおいても同様である。
【００１５】
カメラ１〜カメラＮが備えるレンズ３１１〜３１Ｎの焦点距離は等しい。これにより、カメラ１〜カメラＮの光学倍率は等しくなり、カメラ１〜カメラＮでは、同じサイズの被写体像が得られる。カメラ１〜カメラＮが備える画像センサ３２１〜３２Ｎは同仕様のものが用いられている。カメラ１〜カメラＮが備える画像センサコントローラ３３１〜３３Ｎも同仕様のものが用いられている。
【００１６】
画像センサ３２は、例えば撮像素子であり、撮像素子としてＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal-Oxide-Semiconductor）を用いることができる。
【００１７】
画像センサコントローラ３３は，画像センサ３２の露光制御、画像データの読み出し制御、外部回路との通信、及び画像データの送信等を行う。尚、画像データは、輝度を有する複数の画素で構成されるデータである。
【００１８】
カメラ１〜カメラＮは、データバス２０及びシリアルバス２１を介して、それぞれ画像処理基板１０と接続している。
【００１９】
画像処理基板１０は、ＣＰＵ（Central  Processing  Unit）１１と、ＦＰＧＡ（Field-Programmable Gate Array）１２と、ＲＡＭ（Random  Access  Memory）１３と、ＲＯＭ（ReadｎOnly  Memory）１４と、シリアルＩＦ（Interface）１５と、データＩＦ１６とを有している。これらはデータバス２０と、シリアルバス２１を介して相互に接続されている。
【００２０】
ＣＰＵ１１は、画像処理基板１０の動作を統括的に制御する。またＣＰＵ１１は、カメラ１〜カメラＮで撮像した画像の画像処理や画像認識処理を実行する。ＣＰＵ１１は、ＲＡＭ１３をワークエリア（作業領域）としてＲＯＭ１４等に格納されたプログラムを実行することで、上記の制御及び処理を実行し、後述する各種機能を実現する。尚、ＣＰＵ１１の有する機能の一部、又は全部をワイヤードロジックによるハードウェアにより実現させてもよい。
【００２１】
カメラ１〜カメラＮによる画像データは、データバス２０を通じて画像センサ３２から画像処理基板１０のＲＡＭ１３に転送される。
【００２２】
ＦＰＧＡ１２は、ＲＡＭ１３に保存された画像データに対し、リアルタイム性が要求される処理を実行する。リアルタイム性が要求される処理とは、例えばガンマ補正、ゆがみ補正（左右画像の平行化）等の画像処理である。ＦＰＧＡ１２は、カメラ１〜カメラＮによる画像データに対し、ブロックマッチング等による視差演算を行って視差画像を生成する。生成された視差画像は、ＲＡＭ１３に書き戻される。
【００２３】
ＣＰＵ１１、及びＦＰＧＡ１２は、シリアルバス２１を通じて画像センサコントローラ３３に対し、センサ露光制御値の変更、画像読み出しパラメータ変更、及び各種設定データの送受信等を行う。
【００２４】
シリアルＩＦ１５は、デジタルデータを1ビットずつ順次伝送、または、そのような方式を用いる接続インターフェースである。データＩＦ１６は、画像処理基板１０とＰＣ（Personal Computer）等の外部機器を接続するためのインターフェースである。
【００２５】
図２は、本実施形態の撮像装置１００のカメラ１〜カメラＮの配置と、基線長との関係を説明する図である。図２に示されているように、カメラ１〜カメラＮは、各カメラが備えるレンズ３１の光軸と交差する方向に配列し、被写体５０に対向している。レンズ３１の光軸方向におけるカメラ１〜カメラＮと被写体５０とは、被写体距離Ｄだけ離れている。
【００２６】
カメラ１〜カメラＮが配列する方向において、カメラ１の備えるレンズ３１１の光軸と、カメラ２の備えるレンズ３１２の光軸との間隔は、カメラ１とカメラ２からなるカメラの組、すなわちステレオカメラＣ１の基線長Ｂ１である。尚、カメラ１〜カメラＮが配列する方向は、「所定方向」の一例である。
【００２７】
カメラ１の備えるレンズ３１１の光軸と、カメラ３の備えるレンズ３１３の光軸との間隔は、カメラ１とカメラ３からなるステレオカメラＣ２の基線長Ｂ２である。カメラ１の備えるレンズ３１１の光軸と、カメラＮの備えるレンズ３１Ｎの光軸との間隔は、カメラ１とカメラＮからなるステレオカメラＣＮ−１の基線長ＢＮである。基線長は、各カメラのレンズの光軸間の距離、すなわち間隔であるが、以下では単にカメラの間隔と称する場合がある。
【００２８】
本実施形態では、ステレオカメラＣ１〜ＣＮ−１の何れにおいても、一方のカメラはカメラ１に統一している。ステレオカメラＣ１〜ＣＮ−１の一方のカメラを共通にすることで、他方のカメラの調整のみでステレオカメラＣ１〜ＣＮ−１間の相対的な位置合わせを行うことができ、カメラの位置合わせを容易に行うことができる。またステレオカメラＣ１〜ＣＮ−１で得られる画像の位置合わせにおいても同様である。以下では、カメラ１で取得される画像を基準画像と称する場合がある。
【００２９】
図示されているように、基線長Ｂ１〜ＢＮは相互に異なっている。基線長Ｂ１〜ＢＮは、「異なる基線長」の一例である。カメラ１とカメラ２からなるステレオカメラと、カメラ１とカメラ３からなるステレオカメラと、カメラ１とカメラＮからなるステレオカメラは、「基線長の異なる２つ以上のカメラの組」の一例である。カメラ１〜カメラＮは、「３つ以上のカメラ」の一例である。
【００３０】
図３は、カメラ１〜カメラ３で取得される画像を示す図である。画像１Ｉｍはカメラ１による画像であり、画像２Ｉｍはカメラ２による画像であり、画像３Ｉｍはカメラによる画像である。画像１Ｉｍ〜画像３Ｉｍには、それぞれ被写体像５０Ｉｍが撮像されている。
【００３１】
図３に示されているように、画像１Ｉｍの被写体像５０Ｉｍに対し、画像２Ｉｍの被写体像５０Ｉｍは、カメラ１〜カメラ３の配列方向に、視差ｄ１だけ位置ずれしている。視差ｄ１の単位は、画像センサ３２の画素数（ピクセル）である。このような視差ｄ１と、基線長Ｂ１と、被写体距離Ｄとの間には以下の（１）式の関係がある。
【００３２】
Ｄ＝（Ｂ１×ｆ）／（ｄ１×Δ）        （１）
但し、ｆはレンズ３１の焦点距離、Δは、カメラ１〜カメラ３の配列方向における画像センサ３２の１画素当たりの大きさ、すなわち画素サイズである。
【００３３】
従って、基線長Ｂ１と、レンズ３１の焦点距離ｆと、画素サイズΔが既知であれば、カメラ１による画像１Ｉｍとカメラ２による画像２Ｉｍから視差ｄ１を検出し、（１）式に代入することで、被写体距離Ｄを算出し、測定することができる。
【００３４】
ここで視差ｄ１の検出方法の概要を、図４〜６を用いて説明する。図４は、図３の画像１Ｉｍと画像２Ｉｍを抜き出した図である。図４において、画像１Ｉｍにおける被写体像５０Ｉｍの周辺の画像領域を図中右方向に１画素ずつシフトさせながら、シフト毎で画像１Ｉｍと画像２Ｉｍの被写体像５０Ｉｍの周辺の画像領域の差分を計算する。画像領域の差分とは、例えば画像領域を構成する各画素で２つの画像の輝度差を求めた場合、この画像領域の全画素の輝度差の総和、又は平均である。画像１Ｉｍにおける被写体像５０Ｉｍの周辺の画像領域を、被写体像５０Ｉｍの視差ｄ１だけシフトさせた時に、画像領域の差分は最小になる。
【００３５】
図５は、被写体像５０Ｉｍのシフトに伴う画像領域の差分の変化を示す図である。画像１Ｉｍにおける被写体像５０Ｉｍの周辺の画像領域をシフトさせると、図５に示されるように、画像領域の差分が最小になる時がある。この時のシフト量が、視差の検出値となる。
【００３６】
画像１Ｉｍと画像２Ｉｍは、それぞれ「視差が含まれる２つの画像を有する画像ペア」の一例である。画像領域をシフトさせる処理は、「画像ペアを用いた探索」の一例である。画像領域の差分の最小値を求めるためには、一定の範囲内で、被写体像５０Ｉｍの周辺の画像領域をシフトさせる必要があるが、この範囲を「探索視差範囲」と称する。「探索視差範囲」は、画像ペアにおいて視差を探索する処理で用いる画像範囲である。図４、及び図５で「ＳＷ」で示されている範囲が「探索視差範囲」の一例である。
【００３７】
画像領域の差分は、「類似性の評価値」の一例である。以下では、「類似性の評価値」を「コスト」と称する場合がある。
【００３８】
上記では簡単に説明するために、被写体像５０Ｉｍの周辺の画像領域をシフトさせる例を示したが、画像１Ｉｍにおける７×７画素や１５×１５画素等の微小ブロックをシフトさせ、画像２Ｉｍにおける同サイズの微小ブロックとの差分を求めてもよい。このような処理は所謂ブロックマッチングである。ブロックマッチングによれば、着目画素と周辺の領域を含むブロックを用いることで着目画素ごとに被写体距離を算出できる。所謂、距離画像が得られる。
【００３９】
画像領域を１画素ずつシフトさせるため、視差は画素数を表す整数値で得られる。しかし、シフトに伴う画像領域の差分の変化を多項式に近似し、多項式を用いて最小値を算出すること等でも小数単位で視差を算出することは可能である。このように視差ｄ１を小数単位（サブピクセルのオーダー）で求めることにより、被写体距離の測定分解能を向上させることができる。尚、以下では、サブピクセルのオーダーで視差を算出する処理を、サブピクセル推定と称する場合がある。
【００４０】
上記は一般的な視差検出方法を例示したものであり、本実施形態の視差の検出方法は、別途詳述する。
【００４１】
図３に戻り、画像１Ｉｍの被写体像５０Ｉｍに対し、画像３Ｉｍの被写体像５０Ｉｍは、カメラ１〜カメラＮの配列方向に、視差ｄ２だけ位置ずれしている。基線長Ｂ２は基線長Ｂ１より長いため、これに伴って視差ｄ２は視差ｄ１より大きくなっている。基線長Ｂ１のカメラ１とカメラ２により撮像される画像１Ｉｍと画像２Ｉｍから、視差ｄ１が得られている。基線長Ｂ２のカメラ１とカメラ３により撮像される画像１Ｉｍと画像３Ｉｍから視差ｄ２が得られている。
【００４２】
画像１Ｉｍと画像２Ｉｍ、及び画像１Ｉｍと画像３Ｉｍは、「異なる基線長に応じ、視差の異なる複数の画像ペア」の一例である。
【００４３】
尚、図３では、カメラ１〜カメラ３の３台のカメラで、基線長の異なる２つのステレオカメラを構成し、視差が異なる２つの画像ペアを取得する例を示したが、これに限定はされない。図２に示されるように、カメラ１〜カメラＮのＮ台のカメラで、基線長の異なるＮ−１個のステレオカメラを構成し、視差が異なるＮ−１個の画像ペアを取得してもよい。
【００４４】
本実施形態では、このように、複数のカメラにより、基線長の異なる２つ以上のステレオカメラを構成し、視差の異なる複数の画像ペアを取得する。
【００４５】
ところで、ブロックマッチング等の画像処理により、サブピクセルのオーダー、すなわち小数点のオーダーで視差を検出する場合、検出した視差値には統計的な誤差がのることがある。例えば算出される視差が整数値に近い側に偏る場合であり、このような現象は、ピクセルロッキングと呼ばれる。
【００４６】
本実施形態では、異なる基線長の複数のステレオカメラを有するため、異なる基線長に応じて、複数のステレオカメラ毎で距離に対する視差の感度が異なっている。１つのステレオカメラで視差が整数に近い値になり、ピクセルロッキングが発生しやすくなっても、所定の条件下で、他のステレオカメラの視差を利用して所定の処理を実行すれば、ピクセルロッキングを低減することができる。また、ピクセルロッキングに限らず系統的な誤差の低減することができる。
【００４７】
本実施形態では所定の処理として、１つには正規化処理を行っている。正規化処理とは、ある距離の被写体に対して、各ステレオペアで出力されるシフト量の値を合わせる処理である。言い換えると、基線長が異なる複数のステレオカメラ間で、距離に対する視差の感度を合わせる処理である。
【００４８】
例えば基線長Ｂ１のステレオカメラＣ１と、基線長Ｂ２のステレオカメラＣ２を用いる場合、ステレオカメラＣ１による視差ｄ１をステレオカメラＣ２の基線長Ｂ２で正規化すると、正規化された視差ｄ１_normは、次の（２）式で表される。
【００４９】
ｄ１_norm＝（Ｂ２×ｄ１）／Ｂ１          （２）
基線長の異なる複数のステレオカメラを組み合わせて用いる場合、正規化対象の基線長の整数視差に相当する正規化後の視差と基準の基線長をもつステレオカメラの整数視差が重なるときにピクセルロッキングが発生しやすい。尚、「正規化対象の基線長」とは、上記の例では基線長Ｂ１であり、正規化される基線長である。また「基準の基線長」とは、上記の例では基線長Ｂ２であり、正規化に用いる基線長である。
【００５０】
そのため、本実施形態では、探索視差範囲で整数視差が完全に重ならない基線長の組み合わせとすることで、ピクセルロッキングが発生するピークをずらし、その影響を低減させている。
【００５１】
探索視差範囲で整数視差が完全に重ならない基線長の組み合わせの条件は、「異なる基線長のうち長い方の基線長を、短い方の基線長で除した商の整数倍は、無限小数を有する」ことである。尚、「無限小数」は、同じ数字がいつまでも繰り返される循環小数や、円周率などのように無限に続く小数である。本実施形態では、基線長Ｂ２を基線長Ｂ１で除した商の整数倍は、無限小数を有する。また基線長ＢＮを基線長Ｂ１で除した商の整数倍は、無限小数を有する。
【００５２】
基線長の異なる３つ以上のステレオカメラを用いる場合、「長い方の基線長」と「短い方の基線長」の選び方が問題になるが、短い方の基線長は、複数の基線長のうち最も短いものを共通して用いることが望ましい。この場合、探索視差範囲で整数視差が完全に重ならない基線長の組み合わせの条件を換言すると、「異なる基線長のうち最も短い基線長で、他の基線長を除した商の整数倍は、無限小数を有する」ことである。
【００５３】
無限小数は何を乗じても無限小数であるため、上記条件によれば、被写体距離によらず、正規化された視差は小数点を有することになる。これにより整数視差において発生しやすいピクセルロッキングを低減させることができる。
【００５４】
「異なる基線長のうち長い方の基線長を、短い方の基線長で除した商の整数倍は、無限小数を有する」という条件の具体例は、例えば、長い方の基線長は１００ｍｍ、短い方の基線長は３０ｍｍ等である。この場合、「商」は３．３３・・・・となり、循環小数としての無限小数を有する。
【００５５】
尚、製作したステレオカメラにおいて、長さを実測した基線長が上記条件を満たせばよい。また実測せずとも基線長の「設計値」が上記条件を満たせば、製作時に誤差が含まれたとしても、「無限小数を有する」条件に近い条件で近い効果が得られる。そのため、基線長の「設計値」が上記条件を満たしてもよい。
【００５６】
また、算出する視差の範囲が決まっている場合は整数倍した値が探索視差範囲内において小数を有する組み合わせを用いてもよい。このようにすることで無限小数もしくはそれに近い値でなくても求めたい視差値で系統的な誤差を軽減可能である。
【００５７】
次に図６は、本実施形態の撮像装置１００の有する画像処理基板１０の構成要素を機能ブロックで示す図である。尚、図６に図示される各機能ブロックは概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。各機能ブロックの全部又は一部を、任意の単位で機能的又は物理的に分散・結合して構成することが可能である。各機能ブロックにて行われる各処理機能は、その全部又は任意の一部が、上述のＣＰＵ１１にて実行されるプログラムにて実現され、或いはワイヤードロジックによるハードウェアとして実現されうる。
【００５８】
画像処理基板１０は、カメラ１とカメラ２からなるステレオカメラＣ１、カメラ１とカメラ３からなるステレオカメラＣ２、及びカメラ１とカメラＮからなるステレオカメラＣＮ−１から、画像ペアＰ１〜ＰＮ−１を取得し、距離画像を生成し、出力する。尚、画像処理基板１０は、「処理手段」の一例である。
【００５９】
画像処理基板１０は、コストカーブ取得部２５と、コストカーブ正規化部２６と、コストカーブ補間部２７と、コストカーブ統合部２８と、視差演算部２９と、距離演算部３０とを有している。
【００６０】
コストカーブ取得部２５は、ステレオカメラＣ１〜ＣＮ−１から画像ペアＰ１〜ＰＮ−１を取得し、画像ペアＰ１〜ＰＮ−１毎で類似性の評価値、すなわちコストを演算し、コストカーブを取得する。つまり画像ペアＰ１〜ＰＮ−１毎で、所謂ブロックマッチング処理を行う。コスト（評価値）は、ＳＡＤ（Sum  of  Absolute  Difference）等、公知の任意のコストを用いてもよい。
【００６１】
コストは、画像ペアＰ１〜ＰＮ−１毎で、微小ブロック間で算出される。コストカーブとは、シフトに伴うコストの変化をいう。各画像ペアにおいて、一方は基準画像である。コスト演算時には基準画像をシフトさせる。微小ブロックのサイズは、例えば、７×７画素や１５×１５画素等である。
【００６２】
１画素ずつずらしながら微小ブロックを選択し、コストカーブを取得することで、画素毎でコストカーブを取得することができる。
【００６３】
尚、コストカーブ取得部２５は、ブロックマッチング処理に限定されず、ＳＧＭ (セミグローバルマッチング；Semi  Global  Matching)処理等を用いてもよい。
【００６４】
図８は、コストカーブ取得部２５により取得されたコストカーブの一例を示す図である。図８は、ステレオカメラＣ１〜ＣＮ−１のうち、ステレオカメラＣ１の任意の画素、及びステレオカメラＣ２の任意の画素で、それぞれ得られるコストカーブ９１、及び９２を示している。何れも横軸はシフトを表し、縦軸はコストを表している。
【００６５】
コストカーブ９１では、シフトがｄ１においてコストが最小になっているため、検出される視差はｄ１である。一方、コストカーブ９２では、シフトがｄ２においてコストが最小になっているため、検出される視差はｄ２である。
【００６６】
ステレオカメラＣ１、及びＣ２で同じ被写体を撮像しているため、被写体距離は共通である。従って視差ｄ１とｄ２の差は、基線長Ｂ１とＢ２の差により生じている。
【００６７】
図６に戻り、コストカーブ正規化部２６は、上述したように、基線長が異なる複数のステレオカメラ間で、距離に対する視差の感度を合わせる。コストカーブ正規化部２６は、コストカーブ取得部２５により取得されたコストカーブを入力し、正規化されたコストカーブを取得する。正規化されたコストカーブを、単に正規化コストカーブと称する場合がある。
【００６８】
コストカーブ正規化部２６は、コストカーブにおけるシフトを（２）式に代入することで、正規化されたコストカーブを取得する。図９は正規化されたコストカーブの一例を示す図である。図８と同様に、横軸はシフトを表し、縦軸はコストを表す。
【００６９】
本実施形態では、基線長Ｂ２を基準に正規化を行う。従って、図９において、基線長Ｂ２を有するステレオカメラＣ２で取得されたコストカーブ９２は変化せず、基線長Ｂ１を有するステレオカメラＣ１で取得されたコストカーブ９１は、コストカーブ９１ａに変換、すなわち正規化されている。
【００７０】
尚、本実施形態では、短い基線長を有するステレオカメラで得られるコストカーブを、長い基線長で正規化する。言い換えると、短い基線長を有するステレオカメラで得られるコストカーブを、長い基線長に合わせる。基線長が長い程、距離分解能は高くなるため、長い基線長で正規化することで、各ステレオカメラの距離測定分解能を向上させることができる。正規化の基準となる基線長を基準基線長と称する。
【００７１】
図６に戻り、コストカーブ補間部２７は、コストカーブ正規化部２６による正規化コストカーブのコストを補間する。ステレオカメラＣ１〜ＣＮ−１により、画素毎で複数のコストカーブが得られるが、それらを統合して利用するためには、コストカーブにおけるシフト毎にコストを存在させる必要があるためである。
【００７２】
コストカーブ補間部２７は、正規化コストカーブを入力し、補間された正規化コストカーブを出力する。
【００７３】
図１０は、補間前後のコストカーブの一例を示す図である。（ａ）は補間前で、（ｂ）は補間後である。図８〜１０と同様に、横軸はシフトを表し、縦軸はコストを表す。
【００７４】
（ａ）では、コストカーブ９１ａは正規化コストカーブを示し、コストカーブ９２はステレオカメラＣ２によるコストカーブを示している。プロット９１ｂは、コストカーブ９１ａにおいて欠落しているコストを表している。
【００７５】
（ｂ）では、プロット９１ｂで欠落していたコストが、コストカーブ９１ｃのように補間されている。これにより、コストカーブ９１ｃとコストカーブ９２とを用いて、シフト毎でのコストの和や平均値等を計算することができる。つまり統合することができる。尚、補間処理には、スプライン補間や線形補間、放物線補間等を用いることができる。
【００７６】
図６に戻り、コストカーブ統合部２８は、画素毎に、ステレオカメラＣ１〜ＣＮ−１により取得される複数のコストカーブを統合する。統合とは、上述のように、例えば複数のコストカーブを平均化して１つのコストカーブを取得する処理等をいう。コストカーブ統合部２８は、補間された正規化コストカーブを入力し、統合されたコストカーブを出力する。
【００７７】
図１１は、統合前後のコストカーブの一例を示す図である。（ａ）は統合前で、（ｂ）は統合後である。図８〜１１と同様に、横軸はシフトを表し、縦軸はコストを表す。
【００７８】
（ｂ）では、統合後のコストカーブが実線のプロットとして表されている。
【００７９】
図６に戻り、視差演算部２９は、コストカーブ統合部２８により統合された画素毎のコストカーブの最小値からシフトを求め、シフトに基づき画素毎で視差を算出する。視差演算部２９は、取得された視差を距離演算部３０に出力する。
【００８０】
視差の算出方法としては、例えば以下の方法がある。すなわち、まずコストが最小となる整数のシフト値を求め、その前後の整数のシフト値及びコスト値から、等角直線法やパラボラフィッティング法等を用いてサブピクセル推定を行う。またピクセルロッキング現象の軽減に有効であるＥＥＣ（サブピクセル推定誤差低減手法;Estimation Error Cancel method）法や、これに等角直線法、又はパラボラフィッティング法組み合わせた等角直線ＥＥＣ法やパラボラＥＥＣ法を用いてもよい。
【００８１】
所定の注目画素において、最小のコスト値をＣｏｓｔｍｉｎとし、その近傍のコスト値をＣｏｓｔｍｉｎ＋１、Ｃｏｓｔｍｉｎ―１とすると、パラボラフィッティングのサブピクセル推定により、視差dparaは以下の（４）式から算出することができる。
【００８２】
d_para＝（Ｃｏｓｔｍｉｎ−１-Ｃｏｓｔｍｉｎ＋１）/｛２×(Ｃｏｓｔｍｉｎ−１−２×Ｃｏｓｔｍｉｎ+Ｃｏｓｔｍｉｎ＋１)｝      （４）
距離演算部３０は、画素毎の視差を（１）式に代入し、画素毎で距離を取得する。但し（１）式では、基線長がＢ１として示されているが、この場合は、基準基線長である基線長Ｂ２を用いて（１）式により距離を算出する。距離演算部３０は、画素毎の距離データから距離画像を作成し、出力する。
【００８３】
図７に戻り、図７は、本実施形態の撮像装置１００の有する画像処理基板１０による処理の一例を示すフローチャートである。
【００８４】
先ず、カメラ１〜カメラＮによる画像データは、データバス２０を通じて画像センサ３２から画像処理基板１０のＲＡＭ１３に転送される。画像処理基板１０のコストカーブ取得部２５は、ＲＡＭ１３から、カメラ１〜カメラＮにより構成されるステレオカメラＣ１〜ＣＮ−１の画像ペアＰ１〜ＰＮ−１を取得する（ステップＳ８０１）。
【００８５】
次に、コストカーブ取得部２５は、画像ペアＰ１〜ＰＮ−１毎でコストの演算を実行し、画素毎でコストカーブを取得する（ステップＳ８０３）。コストカーブ取得部２５は、画素毎に取得したコストカーブをコストカーブ正規化部２６に出力する。
【００８６】
次に、コストカーブ正規化部２６は、コストカーブを入力し、基線長が異なる複数のステレオカメラ間で、距離に対する視差の感度を合わせることで、正規化コストカーブを取得する（ステップＳ８０５）。コストカーブ正規化部２６は、正規化コストカーブをコストカーブ補間部２７に出力する。
【００８７】
次に、コストカーブ補間部２７は、コストカーブ正規化部２６による正規化コストカーブのコストを補間する。コストカーブ補間部２７は、補間された正規化コストカーブを出力する（ステップＳ８０７）。
【００８８】
次に、コストカーブ統合部２８は、補間された正規化コストカーブを入力し、画素毎に、ステレオカメラＣ１〜ＣＮ−１により取得される複数のコストカーブを統合する（ステップＳ８０９）。コストカーブ統合部２８は、統合されたコストカーブを出力する。
【００８９】
次に、視差演算部２９は、コストカーブ統合部２８により統合された画素毎でコストカーブの最小値となるシフトを求め、シフトに基づき画素毎で視差を算出する（ステップＳ８１１）。視差演算部２９は、画素毎の視差を距離演算部３０に出力する。
【００９０】
次に、距離演算部３０は、視差を（１）式に代入し、画素毎で距離を取得する。距離演算部３０は、画素毎の距離データから距離画像を作成する（ステップＳ８１３）。
【００９１】
次に、距離演算部３０は作成した距離画像を出力する（ステップＳ８１５）。
【００９２】
このようにして、画像処理基板１０は、カメラ１〜カメラＮによる画像データに基づき、距離画像を出力することができる。
【００９３】
図１２は、本実施形態の撮像装置１００の効果の一例を説明する図である。図１２は、被写体距離を変化させながら、３台のステレオカメラを用いてそれぞれ視差を検出した実験結果であり、検出された視差の頻度を示すヒストグラムである。横軸は検出された視差を表し、縦軸は頻度を表す。図中左から右に視差が大きくっている。被写体距離が長くなるほど視差は小さくなるため、図中右へいくほど被写体距離は短く、左にいくほど被写体距離は長い。グラフに示される横軸の目盛線は、整数の視差に該当する。
【００９４】
図１２において、実線で示されているグラフ１０１は、異なる基線長Ｂ１とＢ２の２つの「カメラの組」を有するステレオカメラで、基線長Ｂ１と基線長Ｂ２の比を１２０ｍｍ対２００ｍｍとした場合の実験結果である。破線で示されているグラフ１０２は、異なる基線長Ｂ１とＢ２の２つの「カメラの組」を有するステレオカメラで、基線長Ｂ１と基線長Ｂ２の比を１６０ｍｍ対２００ｍｍとした場合の実験結果である。一点鎖線で示されているグラフ１０３は、基線長が１つの従来のステレオカメラによる実験結果である。基線長Ｂ１と基線長Ｂ２の比を１２０ｍｍ対２００ｍｍとしたステレオカメラと、基線長Ｂ１と基線長Ｂ２の比を１６０ｍｍ対２００ｍｍとしたステレオカメラは、それぞれ本実施形態の撮像装置の一例である。
【００９５】
グラフ１０３では、頻度が整数視差（目盛線上）において局所的なピークとなり、ピーク値も大きい。これは検出される視差が整数値に偏り、ピクセルロッキングが生じていることを示している。
【００９６】
これに対し、グラフ１０１は、頻度の局所的なピークが整数視差からずれており、ピーク値もグラフ１０３と比較して低減されている。グラフ１０２でも同様に、頻度の局所的なピークが整数視差からずれており、ピーク値もグラフ１０３と比較して低減されている。つまり本実施形態の撮像装置では、ピクセルロッキングが低減されている。また本実施形態の撮像装置は、ピクセルロッキングが生じる視差をずらす効果があることを示している。
【００９７】
ところで、周期性をもった被写体の被写体距離を測定すると、周期性をもった被写体像に起因してピクセルロッキングが生じる場合がある。本実施形態の撮像装置によれば、ピクセルロッキング現象を低減させることで、周期性をもった被写体の被写体距離を、高精度に測定することが可能となる。
【００９８】
以上説明してきたように、本実施形態によれば、視差が含まれる２つの画像を用いた距離測定において、ピクセルロッキングの影響を低減することができる。
【００９９】
尚、上記では２つ以上のカメラを用いる例を説明したが、１つのカメラ、すなわち所謂単眼カメラにも適用可能である。その場合は、単眼カメラの位置を基線長の方向に移動させて視差を生じさせる。この移動量が基線長となる。異なる基線長に応じ、視差の異なる複数の画像ペアを取得し、異なる基線長のうち長い方の基線長を、短い方の基線長で除した商の整数倍は、無限小数を有するようにすればよい。
【０１００】
また本実施形態によれば、長い基線長により正規化することで、距離の測定分解能を向上させることができる。言い換えると、長い基線長を基準基線長とすることで、距離の測定分解能を向上させることができる。
【０１０１】
［第２の実施形態］
次に、第２の実施形態における画像形成装置の一例を、図１３を用いて説明する。尚、第１の実施形態において、既に説明した実施形態と同一構成部分についての説明は省略する場合がある。
【０１０２】
図１３は、本実施形態の撮像装置を車両に搭載した構成の一例を示す図である。
【０１０３】
図１３は、車両４００のルームミラー４０１に、撮像装置１００が設置された例を示す概略図である。図１３に示されているように、撮像装置１００は、車両４００のルームミラー４０１の前側、すなわち図中黒矢印で示される車両４００の進行方向側に設置されている。車両４００は運転者４０２により運転されている。撮像装置１００は、車両４００の進行方向に向いて画像を取得する。尚、撮像装置１００を設置する位置は、上記に限定はされず、任意の位置で構わない。
【０１０４】
撮像装置１００により取得された距離画像は、車両４００の有する車載コントローラに転送される。例えば、車載コントローラは距離画像から車両４００の前方の先行車両を認識し、先行車両との距離が規定値より短くなった場合に、車両４００にブレーキをかけるように制御する。これにより、例えば車両４００の運転の安全性を確保すること等が可能となる。
【０１０５】
本実施形態の撮像装置１００を車両４００に設置する場合、画像処理基板１０の有する機能の一部、又は全部を車両４００の有する車載コントローラに実現させてもよい。また車両４００の有する車載コントローラの有する機能の一部を画像処理基板１０に実現させてもよい。
【０１０６】
尚、これ以外の効果は、第１の実施形態で説明したものと同様である。
【０１０７】
以上、実施形態に係る撮像装置、車両、及び撮像方法について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。
【符号の説明】
【０１０８】
１、２、３、Ｎ  カメラ
１０  画像処理基板（処理手段の一例）
１１  ＣＰＵ
１２  ＦＰＧＡ
１３  ＲＡＭ
１４  ＲＯＭ
１５  シリアルＩＦ
１６  データＩＦ
２０  データバス
２１  シリアルバス
２５  コストカーブ取得部
２６  コストカーブ正規化部
２７  コストカーブ補間部
２８  コストカーブ統合部
２９  視差演算部
３０  距離演算部
３１  レンズ
３２  画像センサ
３３  画像センサコントローラ
５０  被写体
１００  撮像装置
４００  車両
４０１  ルームミラー
４０２  運転者
Ｂ１、Ｂ２、ＢＮ  基線長
Ｄ  被写体距離
ＳＷ  探索視差範囲
ｄ１、ｄ２  視差
【先行技術文献】
【特許文献】
【０１０９】
【特許文献１】特開２０１１−２０３２３８号公報
【非特許文献】
【０１１０】
【非特許文献１】ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＰＡＴＴＥＲＮ  ＡＮＡＬＹＳＹＳ  ＡＮＤ  ＭＡＣＨＩＮＥ  ＩＮＴＥＬＬＩＧＥＮＣＥ、Ｖｏｌ．１５、Ｎｏ．４、ＡＰＲＩＬ  １９９３
【図１】
2019158759.tif 000003
【図２】
2019158759.tif 000004
【図３】
2019158759.tif 000005
【図４】
2019158759.tif 000006
【図５】
2019158759.tif 000007
【図６】
2019158759.tif 000008
【図７】
2019158759.tif 000009
【図８】
2019158759.tif 000010
【図９】
2019158759.tif 000011
【図１０】
2019158759.tif 000012
【図１１】
2019158759.tif 000013
【図１２】
2019158759.tif 000014
【図１３】
2019158759.tif 000015