(57)【要約】      （修正有）【課題】ステレオカメラ装置において、従来技術に比べより簡単で垂直方向に長い棒状物体以外にも摘用し得る手法により、検出対象との距離に依存する検出精度の低下を抑え、高精度を保つこと。【解決手段】共通のベースライン上に配列したカメラの特定のカメラ対が捉えた検出対象の撮像画像間に生じる視差を両画像のブロックマッチング処理により求め、得られるベースラインからの検出対象の距離を検出対象を構成する画素の画素データとして有する距離画像を作成する（Ｓ２０１〜２０３）。作成した距離画像における検出対象の画素のヒストグラムに基づいて、現在の使用カメラ対が検出精度を低下させるベースライン長のカメラ対に相当する（距離が近すぎるか又は遠すぎる）と評価されるときに（Ｓ２０７）、カメラ対を許容できる距離範囲のヒストグラムにより検出精度を保持し得るカメラ対へ切り替える（Ｓ２０８、Ｓ２０９）。【選択図】図９
2014021011.tif 000002
【特許請求の範囲】
【請求項１】
共通のベースライン上に配置する複数カメラからなり、前記複数カメラの中から異なるベースライン長を有するステレオカメラ対を構成し、前記ステレオカメラ対の撮像信号をもとに検出対象の３次元位置を検出するステレオカメラ装置であって、
前記ステレオカメラ対の撮像信号から検出対象の視差を取得する視差取得手段と、
前記視差取得手段によって取得された視差が予め定めた所定範囲内の視差であるか否かを判定する視差判定手段と、
前記ステレオカメラ対における視差が、前記視差判定手段によって前記所定範囲内の視差ではないと判定されたときに、３次元位置の検出に用いる前記ステレオカメラ対の撮像信号を前記所定範囲内の視差が生じる他のステレオカメラ対の撮像信号に切り替える撮像信号切替手段と、
を有するステレオカメラ装置。
【請求項２】
請求項１に記載されたステレオカメラ装置において、
前記視差取得手段は、各カメラが撮像した画像同士のブロックマッチング処理を用いて視差を画素数により得る手段である、
ステレオカメラ装置。
【請求項３】
請求項１又は２に記載されたステレオカメラ装置において、
前記所定範囲は前記ベースラインからの距離の検出精度に基づき定める視野の範囲である、
ステレオカメラ装置。
【請求項４】
コンピュータを、請求項１ないし３のいずれかに記載されたステレオカメラ装置における前記視差取得手段、前記視差判定手段、前記撮像信号切替手段の各手段として機能させるためのプログラム。
【請求項５】
共通のベースライン上に配置する複数カメラからなり、前記複数カメラの中から異なるベースライン長を有するステレオカメラ対を構成し、前記ステレオカメラ対の撮像信号をもとに検出対象の３次元位置を検出するステレオカメラ装置において検出対象の３次元位置を検出するステレオカメラ対からの撮像信号を切り替える撮像信号切替方法であって、
前記ステレオカメラ対の撮像信号から検出対象の視差を取得する視差取得工程と、
前記視差取得工程で取得された視差が予め定めた所定範囲内の視差であるか否かを判定する視差判定工程と、
ステレオカメラ対における視差が、前記視差判定工程で前記所定範囲内の視差ではないと判定されたときに、３次元位置の検出に用いる前記ステレオカメラ対の撮像信号を、前記所定範囲内の視差が生じる他のステレオカメラ対の撮像信号に切り替える撮像信号切替工程と
を有する
撮像信号切替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三角法により対象物の三次元位置を検出するステレオカメラ装置に関し、より詳しくは、マルチベースライン構成を採るこの装置において、対象物との距離によって特定のカメラ対の検出精度が低下する場合に応じて、精度低下を抑制し得る状態への動作の切替を可能にするステレオカメラ装置、撮像信号切替方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、ビデオカメラ等の撮像装置をベースライン（基線）上に撮像領域が重なるように配置して構成するステレオカメラ装置が知られている。
このステレオカメラ装置は、例えば、特許文献１（特開２００５−２１５９０８号公報）に記載されているように、三角法により撮像した対象物の画像をもとに三次元位置を検出する画像処理手段を備えている。
【０００３】
特許文献１のステレオカメラ装置は、画像処理により視差画像を求めることによりベースラインから検出対象までの距離を検出する手法を採用している。この手法により求める視差は、ベースラインから検出対象までの距離が遠くなるほど精度が低下することが知られている。
このため、特許文献１のステレオカメラ装置においては、上述の距離に依存する誤差を低減する処理を用いて精度の低下を防いでいる。
ただ、この誤差を低減する処理は、検出対象が床面に対して垂直方向に長い棒状の物体であると仮定する前提条件の下に、人物表面上の点を床面に投影しその点の個数のヒストグラムを作成する、といった処理を含む複雑な処理を必要とする問題が生じる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２１５９０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、従来技術に比べより簡単で、垂直方向に長い棒状物体以外にも適用し得る手法により、ステレオカメラ装置において、検出対象との距離に依存する検出精度の低下を抑え、高精度を保つことである。
【課題を解決するための手段】
【０００６】
本発明は、共通のベースライン上に配置する複数カメラからなり、前記複数カメラの中から異なるベースライン長を有するステレオカメラ対を構成し、前記ステレオカメラ対の撮像信号をもとに検出対象の３次元位置を検出するステレオカメラ装置であって、前記ステレオカメラ対の撮像信号から検出対象の視差を取得する視差取得手段と、前記視差取得手段によって取得された視差が予め定めた所定範囲内の視差であるか否かを判定する視差判定手段と、前記ステレオカメラ対における視差が、前記視差判定手段によって前記所定範囲内の視差ではないと判定されたときに、３次元位置の検出に用いる前記ステレオカメラ対の撮像信号を前記所定範囲内の視差が生じる他のステレオカメラ対の撮像信号に切り替える撮像信号切替手段と、を有するステレオカメラ装置である。
また、本発明は、共通のベースライン上に配置する複数カメラからなり、前記複数カメラの中から異なるベースライン長を有するステレオカメラ対を構成し、前記ステレオカメラ対の撮像信号をもとに検出対象の３次元位置を検出するステレオカメラ装置において検出対象の３次元位置を検出するステレオカメラ対からの撮像信号を切り替える撮像信号切替方法であって、前記ステレオカメラ対の撮像信号から検出対象の視差を取得する視差取得工程と、前記視差取得工程で取得された視差が、予め定めた所定範囲内の視差であるか否かを判定する視差判定工程と、ステレオカメラ対における視差が、前記視差判定工程で前記所定範囲内の視差ではないと判定されたときに、３次元位置の検出に用いる前記ステレオカメラ対の撮像信号を、前記所定範囲内の視差が生じる他のステレオカメラ対の撮像信号に切り替える撮像信号切替工程と、を有する撮像信号切替方法である。
【発明の効果】
【０００７】
本発明によれば、ステレオカメラ対の視差が予め定めた所定範囲内の視差であるか否かを判定し、範囲外であれば、視差が予め定めた所定範囲内にある他のステレオカメラ対へ切り替えることができる。
したがって従来技術に比べより簡単な手法で検出精度を高精度に保つことができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るステレオカメラ装置におけるカメラの配置と検出対象の位置関係を説明する図である。
【図２】近距離の検出対象をステレオカメラ対によって撮像した画像を示す図である。
【図３】遠距離の検出対象をステレオカメラ対によって撮像した画像を示す図である。
【図４】ステレオカメラが三角法に従って行う距離検出の原理を説明する図である。
【図５】それぞれ距離を異にする検出対象をカメラ対により撮像した画像から得られる視差をもとに算出される距離画像Ａ，Ｂ，Ｃを例示する図である。
【図６】本発明の実施形態に係るステレオカメラ装置の概略構成を示す図である。
【図７】本発明の実施形態に係るステレオカメラ装置（図６）の撮像処理部の構成をより詳細に示す図である。
【図８】ステレオカメラ対により撮像した画像から視差データを求め、距離画像を得る処理手順を示すフロー図である。
【図９】検出対象の距離画像をもとに適応するカメラ対の切替を行う処理手順を示すフロー図である。
【発明を実施するための形態】
【０００９】
本発明の実施形態について、添付図面を参照して説明する。
本発明のステレオカメラ装置は、予め定めた共通のベースライン上に複数のカメラを配置して、これらの複数カメラの中から異なるベースライン長を有するステレオカメラ対（以下、単に「カメラ対」ともいう）を構成してマルチベースラインステレオカメラ法（以下「ステレオカメラ法」という）の動作を行わせることができるものである。
【００１０】
図１は、本発明の実施形態に係るステレオカメラ装置におけるカメラの配置と検出対象の位置関係を説明する図である。
図１に示すようにステレオカメラ装置のカメラ部を構成するカメラＡ３１,Ｂ３２，・・・Ｅ３５は、例えば、床２上に存在する検出対象（ここでは人間３や犬４）の上方の支持部１の支持面にほぼ等間隔に配列して設置される。
したがって、ベースラインを共通に構成するステレオカメラ（図４、参照）の一方のカメラを例えばカメラＡ３１に特定すると、他方をカメラＢ３２，カメラＣ３３，カメラＤ３４，カメラＥ３５・・・と切り替えていくことで、ベースライン長の異なるカメラ対Ａ−Ｂ,Ａ−Ｃ,Ａ−Ｄ,Ａ−Ｅを構成することができる。
【００１１】
図１のステレオカメラ装置において、ベースラインよりも遠い距離にいる検出対象（ここでは犬４であり、近くの人間３よりも遠くにいる）は、同図中において各カメラから引かれた撮像領域（視野）を示す線との関係から分るように、カメラＢ３２，カメラＣ３３，カメラＤ３４によって撮像される。よって、ステレオカメラ対Ｂ−Ｃ及びＢ−Ｄという異なるベースライン長のカメラ対によるステレオカメラ法が適用できる。
【００１２】
ところで、ステレオカメラ法においては、検出対象のベースラインからの距離の違いにより検出精度が変化する、という問題が生じる。ここで、図２及び図３を参照してこの問題について説明する。
図２は、近距離の検出対象をステレオカメラ対によって撮像した画像を示す図である。また、図３は、遠距離の検出対象をステレオカメラ対によって撮像した画像を示す図である。両図は、各図Ａに示すように、カメラ対Ａ−Ｂの撮像領域のカメラＡ３１の直下において、床２上に軸を垂直にしておかれた円柱５１，５２を検出対象にしたときの撮像状態を示している。
【００１３】
近距離の円柱５１を撮像したときにカメラＡ３１により撮像された画像５１ａが図２Ｂに、また、その時にカメラＢ３２により撮像された画像５１ｂが図２Ｃ示される。画像５１ｂは、図３Ｂの場合に比較して円柱５１の距離が近いために視差が大きくなり、円柱頂面は楕円形になり、円柱側面が現れている。
他方、遠距離の円柱５２を撮像したときにカメラＡ３１により撮像された画像５２ａが図３Ｂに、また、その時にカメラＢ３２により撮像された画像５２ｂが図３Ｃ示される。画像５２ｂは、図２Ｂの場合に比較して円柱５２の距離が遠いために視差が小さくなり、円柱頂面はほぼ円形を保ち、円柱側面も現れていない。
【００１４】
上記のように距離と視差は反比例して変化することから、ステレオカメラ法により３次元位置を検出するときの距離（下記図４のＸ位置：カメラ画像面に垂直方向の検出対象のカメラからの距離）の検出において、検出対象が遠くにあるほど視差の誤差が大きく影響して検出精度を低下させる。この距離と視差の関係は、ステレオカメラ法の原理に基づくものである。
【００１５】
図４は、ステレオカメラが三角法に従って行う距離検出の原理を説明する図である。
図４において、ステレオカメラ対を構成する、同一の焦点距離ｆを持つカメラ１とカメラ２はベースライン長ｂを隔てて配置されて、それぞれ検出対象である物体Ａ（位置座標Ｘ，Ｙ，Ｚ）を撮像する。
ここで、カメラ１とカメラ２の画像面上における物体Ａの検出位置をそれぞれ（ｘ１、ｙ１）、（ｘ２、ｙ２）とし、ｙ１＝ｙ２すると、カメラ画像から検出対象の物体Ａまでの距離、即ち位置座標Ｚは、
Ｚ＝ｂ×ｆ／（ｘ１−ｘ２）＝ｂ×ｆ／ｄ    但し、ｄ:視差（ｘ１−ｘ２）、ｂ：ベースライン長、ｆ：カメラ撮像面焦点距離
と表すことができる。
また、位置座標（Ｘ，Ｙ）は、
Ｘ＝ｂ（ｘ１＋ｘ２）／２ｄ
Ｙ＝ｂ×ｙ／ｄ（ｙ：ｙ１又はｙ２）
と表すことができる。
【００１６】
ステレオカメラ法の原理に基づく上記式、Ｚ＝ｂ×ｆ／ｄは、視差ｄを大きくするには、ベースライン長ｂを長くすればよいことを意味している。
よって、本ステレオカメラ装置による位置検出において、使用を予定しているカメラ対によると視差ｄが小さく、検出精度が低下する状態である場合、この状態で使用することを避け、ベースライン長ｂを長くとって視差ｄを大きくできる状態にあるカメラ対の使用へ切り替えることで、検出精度を高精度に保つことができるようにする。
【００１７】
検出精度を保つための上記の切替動作を行うためには、使用可能なベースライン長の異なるカメラ対それぞれについて検出精度を考慮して予め定めた所定範囲内の視差が得られる距離範囲（ここでは許容できる距離範囲という）を定める必要がある。
また、検出対象を捉えるカメラ対は、基本的に一つであるから、現行の使用カメラ対において検出対象との距離を検出し、検出される距離が許容できる上述の距離範囲にあるか否かを判定し、判定結果によって現行のカメラ対を使用するか、他のカメラ対へ使用を切り替える手順を行う。
【００１８】
使用可能なベースライン長の異なるカメラ対は、本ステレオカメラ装置（図１）においては、上述の例におけるように、カメラ対の一方をカメラＡ３１に特定すると、他方をカメラＢ３２，カメラＣ３３，カメラＤ３４，カメラＥ３５・・・・・・と切り替えてベースライン長を変える方式を採り、初期状態は、例えば、Ａ−Ｅカメラ対といった特定のカメラ対により検出対象を捉える。
このとき、特定のカメラ対が検出対象を撮像した画像をもとに、上記した検出対象との距離を算出する。距離の算出は、上記式、Ｚ＝ｂ×ｆ／ｄ（距離：Ｚ、視差：ｄ）に示す関係があるので、視差を得ることにより求めることができる。なお、カメラ対の切替動作のために行う、視差を得、距離を算出する過程は、３次元位置検出本来の処理と基本的に同じであるから、共通の手段としてもよいが、データ量を少なくして処理を簡略化する手法を採用してもよい。
【００１９】
本実施形態におけるこの距離を算出する手順は、後でより詳しく説明するが、カメラ対の撮像画面上において画素単位ごとに視差を求め、得られる視差に対応する距離を算出し、算出した距離を画素データとして持つ距離画像を作成する。
次に、視差の取得結果から算出する距離画像の概念及び許容できる距離範囲内の距離画像とそれ以外の距離画像の概念を説明する。
【００２０】
図５は、それぞれ距離を異にする検出対象をカメラ対により撮像した画像から得られる視差をもとに算出される距離画像Ａ，Ｂ，Ｃを例示する図である。図５に例示する距離画像は、先に図２及び図３を参照して説明したと同様の円柱を検出対象とする画像である。
距離画像Ａは円柱が遠距離にある場合、距離画像Ｂは中距離にある場合、また、距離画像Ｃは近距離にある場合を示している。
距離画像Ａは、検出対象の円柱や背景（床等）を含めて画像全体に視差が僅かしか生じていないので、遠い距離を表すデータ値を持つ画素が全体に分布する画像（例えば、距離を近い程濃い濃度で表すと、全体が薄くフラットな画像で円柱部分がやや濃い画像）となる。よって、距離画像Ａは、所定検出精度が得られる許容できる距離範囲内の距離画像ではなく、カメラ対の切替を必要とする。
【００２１】
距離画像Ｂは、検出対象の円柱と背景（床等）との間の視差が明確に生じているので、背景部分が遠い距離を表すデータ値を持つ画素で分布し、円柱部分が一定データ値を持つ画素で分布する画像（例えば、距離を近い程濃い濃度で表すと、背景と円柱は明らかな濃度差を有する画像）となる。よって、距離画像Ｂは、所定検出精度が得られる許容できる距離範囲内の距離画像であり、カメラ対の切替を必要としない。
距離画像Ｃは、検出対象の円柱が近すぎるために撮像した画像データから適正な視差が安定して得られず、円柱部分において利用できないデータ値を持つ画素が随所に分布する画像となる。よって、距離画像Ｃは、所定検出精度が得られる許容できる距離範囲内の距離画像ではなく、カメラ対の切替を必要とする。
【００２２】
図５Ａ或は図５Ｃのようになった距離画像の状態が、許容できる距離範囲内から外れた状態であることを量的にとらえて（図９の処理手順で後述する）、図５Ｂの状態になるようカメラ対を切り替える制御を行うことが、本ステレオカメラ装置において検出精度を高精度に保つための基本的な動作である。
つまり、図５Ａの場合、視差を大きくする、即ちベースライン長を長くする方向にカメラ対を切り替える。また、図５Ｃの場合、安定した検出を可能とする、ベースライン長を短くする方向にカメラ対を切り替える。
【００２３】
図６は、本発明の実施形態に係るステレオカメラ装置の概略構成を示す図である。
本ステレオカメラ装置は、図６に示すように、カメラ部３０、撮像処理部２０及び制御部１０からなる。
カメラ部３０は、図１に配置を示したカメラＡ３１，カメラＢ３２，カメラＣ３３，カメラＤ３４，カメラＥ３５からなる。
撮像処理部２０は、カメラ部３０の各カメラにそれぞれ対応するカメラモジュールＡ２１，カメラモジュールＢ２２，カメラモジュールＣ２３，カメラモジュールＤ２４，カメラモジュールＥ２５と、ＦＰＧＡ（Field Programmable Gate Array）２６等を有する。上記各カメラモジュールは、対応するカメラの撮像制御部、カメラからの撮像信号を処理する撮像信号処理部、ＦＰＧＡ２６との間のＩ／Ｆ（インターフェース）等を備える。ＦＰＧＡ２６は各カメラモジュールから入力される撮像（画像）データの処理要素である（ここでは、図７で示す距離計算を行う）。
【００２４】
制御部１０は、ステレオカメラ装置全体を制御する機能を持つ。制御部１０は、ソフトウェアプログラムの命令を実行するためのＣＰＵ（Central Processing Unit）１１、ＣＰＵ１１によって使用される制御、処理等に用いるプログラムや制御用データ等を保存するＲＯＭ（Read Only Memory）１２、前記プログラムによって生成される画像（撮像）データ、或いはプログラム実行する際に必要な各種データ等を一時的に保存しワークメモリやフレームメモリとして利用するＲＡＭ（Random Access Memory）１３等からなるコンピュータにより構成する。
制御部１０を構成するコンピュータは、検出対象の距離画像をもとに適用するカメラ対の切替を行うための後述する処理及び制御手順（図８、図９）を実行するプログラムを駆動することにより所期の機能を実現する。
【００２５】
なお、本実施形態では画像処理の負担を低減するためにＦＰＧＡ２６を用いて、ＦＰＧＡ２６と低パーフォーマンスのＣＰＵでもよいＣＰＵ１１を組み合わせた形態により画像処理等のデータ処理手段を構成しているが、ＣＰＵ１１だけでＦＰＧＡ２６を用いない構成を採ってもよい。
また、ここでは、画像処理等のデータ処理手段として機能するコンピュータは、ＣＰＵ１１にＦＰＧＡ２６を組み合わせた構成を含む。
【００２６】
図７は、図６に示したステレオカメラ装置における撮像処理部の構成をより詳細に示す図である。
図７の撮像処理部２０は、図６に示した各カメラモジュールが動作信号として用いる同期信号を生成する同期信号生成回路２７、同じく各カメラモジュールのリセット動作に用いる信号を発生するリセット回路２８を備える。また、撮像処理部２０は、検出対象の距離画像をもとに適用するカメラ対の切替を行う本ステレオカメラ装置に特有の構成要素として、ＣＰＵ１１の指示に従い、各カメラ対の撮像フレームの中で利用するカメラ対の撮像フレームへ出力を切り替えてＣＰＵ１１に出力する切替回路２９と、ＦＰＧＡ２６を備える。ＦＰＧＡ２６には視差を求め距離の計算を行う処理モジュールを備える。
【００２７】
ＦＰＧＡ２６の距離（視差）計算を行う処理モジュールは、低コストのＣＰＵを持ち、対応するカメラモジュールからの撮像フレームの入力を受けて、ベースライン長の異なるカメラ対Ａ−Ｂ,Ａ−Ｃ,Ａ−Ｄ,Ａ−Ｅの各カメラ対各々に対応した視差を求め、距離計算を行い、計算結果をＣＰＵ１１に出力する。ただし、検出対象に対応して使用するカメラ対は基本的に一つであるから、この特定カメラ対において距離計算を行い、その結果を距離画像として出力する。
なお、上記のように、現行の使用カメラ対として動作させるのは、一つであるから、選択されるカメラ対への切替指示は、ＣＰＵ１１からＦＰＧＡ２６に対しても切替回路２９と同様に行う。
【００２８】
次に、ＦＰＧＡ２６が行う距離計算の処理を詳細に説明する。
この距離計算処理は、基本的には、図４等を参照して説明したように、カメラ対の撮像画面において視差ｄ＝ｘ１−ｘ２を求め、距離Ｚ＝ｂ×ｆ／ｄ（ｂ：ベースライン長、ｆ：カメラ撮像面焦点距離）を計算する処理である。
ＦＰＧＡ２６が行う距離計算の処理は、検出対象を捉えるために現在作動しているカメラ対に対応するＡ−Ｂ,Ａ−Ｃ,Ａ−Ｄ,Ａ−Ｅのいずれかに対応する処理モジュールで行うだけでよいが、視差ｄを求める処理そのものは、どのカメラ対でも同じである。
ここで、カメラ対によって検出対象を撮像し、得られるそれぞれの画像間に生じる視差ｄを求めて距離を算出し距離画像を得る処理の手順を説明する。
【００２９】
図８は、ステレオカメラ対により撮像した画像から視差データを求め、距離画像を得る処理手順を示すフロー図である。
図８の処理手順によると、制御部１０の制御下でＦＰＧＡ２６の距離計算の処理モジュールが本処理フローを起動すると、先ず、制御対象のカメラ対（ここでは、カメラ１とカメラ２からなる）の各カメラモジュールから入力される撮像データ（撮像フレーム）に対し、Sovel（ソーベル）フィルタ処理によりエッジを検出して輪郭画像を生成する（ステップＳ１０１）。
【００３０】
次いで、各カメラの撮像データから生成された輪郭画像に対してブロックマッチング処理を用いて視差データを求め、距離画像を得る処理手順（ステップＳ１０２〜Ｓ１０７）を行う。
この処理手順は、カメラ１とカメラ２の各撮像フレームから生成された輪郭画像において、所定のブロック、例えば、「９×２４０画素（ピクセル）」のブロック単位で切り出した画像同士を例えば１画素ずつシフト（ずらし）しながらマッチング処理を画面全体にわたって行い、高い一致度もしくは類似度が得られたときのシフト量（画素数で表される）を視差として求める。なお、上記のシフト動作は、処理を簡略化するために、１次元（図４に示すＸ方向のみ）となるように条件を定めておく。また、ブロックサイズは、撮像フレームの横・縦（Ｘ・Ｙ方向）を９×２４０画素にしているが、この数値に限らず、データ処理能力や距離検出精度に適応する任意の数値を採用することができる。
【００３１】
図８の処理フローにおけるマッチング処理の手順では、先ずマッチングの処理ブロック（９×２４０画素）を、カメラ１側は撮像フレームから生成された輪郭画像の画面の左端に定め、他方のカメラ２側も同様に輪郭画像の画面の左端に定めて、これらのブロックを処理対象にしてマッチング処理を行い（ステップＳ１０２，Ｓ１０３）、両ブロックの対応する画素（ピクセル）の画素値の二乗誤差を求める（ステップＳ１０４）。このとき、求めた誤差が小さいほど、一致度が高くなる。
【００３２】
上記のブロックマッチング処理の手順を、カメラ１側のブロックを輪郭画像の画面の左端に固定して、カメラ２側のブロックを右（Ｘ方向）に１画素ずつシフトしながら輪郭画像の画面の右端まで繰り返し行う（ステップＳ１０３〜Ｓ１０５）。このシフト動作の間、求めた二乗誤差が最小になるシフト量（画素数）を保持し（ステップＳ１０４）、シフトを終えたときに保持されたこのシフト量（画素数）を、この輪郭画像の画面の左端の、上下に（Ｙ方向に）並ぶ画素列の視差データとして得る。
【００３３】
また、得た当該列の視差データをもとに、距離Ｚ＝ｂ×ｆ／ｄにより距離を算出し、算出した距離データを用いて、当該列における検出対象の距離画像を作成する（ステップＳ１０６）。
この距離画像は、算出された距離データを、視差データを得た当該列に属する検出対象画素に付与する。即ち、視差データを得る上記手順において、処理対象となった輪郭画像における輪郭内部にありかつ当該列に属する画素に付与することにより作成する。ここで、距離データを画素に付与する際、例えば、遠いほど濃度を薄くするといった、距離に応じた濃度値を画素値として付与することで、上記図５に示した距離画像を作成することができる。
【００３４】
輪郭画像の画面の左端の画素列の上記処理に次いで、カメラ１側のブロックを右（Ｘ方向）に１画素シフトして（ステップＳ１０７）、このブロックに固定して、上記と同様にカメラ２側のブロックを左端から右（Ｘ方向）に１画素ずつシフトしながら、ブロックマッチング処理を輪郭画像の画面の右端まで繰り返し行って（ステップＳ１０２〜Ｓ１０５）、二乗誤差が最小になるシフト量を、検出対象の視差データとして得る（ステップＳ１０４）。
また、得た当該列の視差データをもとに、距離を算出し、算出した距離データを用いて、当該列における検出対象の距離画像を、上記左端の画素列と同様に、作成する（ステップＳ１０６）。
【００３５】
この距離画像を作成する処理は、この後、カメラ１側のブロックを右（Ｘ方向）に１画素ずつシフトして輪郭画像の画面の右端まで繰り返し行って（ステップＳ１０２〜Ｓ１０７）、上下に（Ｙ方向に）並ぶ画素列ごとにマッチング処理の結果である上記シフト量を、検出対象の視差データとして得る。この視差データをもとに、距離を算出し、算出した距離データを用いて、各列における検出対象の距離画像を作成し（ステップＳ１０６）、本フローの処理を終了する。
なお、これらのブロックマッチング処理における処理操作は、画面上の輪郭画像がある領域を対象に行い、輪郭画像の無いブロック同士のマッチングといった無意味な処理は行わないようにする。
【００３６】
次に、検出対象の距離画像を上記のようにして求め、得られる距離画像から検出対象の距離に適応するベースライン長を有するカメラ対を選択するために行う、使用カメラ対を切り替える処理の手順を説明する。
このカメラ対の切替処理手順では、現在使用しているカメラ対が撮像した画像をもとに得た検出対象の距離画像を、図５を参照して説明した、距離画像の状態と対比して、当該カメラ対の適応性を判定する。
このために、距離画像の状態が、図５Ａ〜Ｃの各画像状態のいずれに当たるかを評価できるように、距離画像を定量化する必要があり、ここでは、距離画像における検出対象に含まれる画素（画素値）のヒストグラムを用いる。なお、本実施形態では、距離画像の距離を濃度で表しているので、このヒストグラムは検出対象に含まれる画素の濃度分布を表すものとなる。
【００３７】
検出対象の距離画像のヒストグラムから、許容できる距離範囲内の状態である図５Ｂの状態であると判定されれば、使用カメラ対の切替は、不要である。
他方、図５Ａの状態であると判定されれば、視差を大きくする、即ちベースライン長を長くする方向にカメラ対を切り替え、切替後に図５Ｂの状態になれば、本処理の手順を終了する。
また、図５Ｃの状態であると判定されれば、視差を小さくして安定した検出を可能とする、ベースライン長を短くする方向にカメラ対を切り替え、切替後に図５Ｂの状態になれば、本処理の手順を終了する。
【００３８】
次に、本ステレオカメラ装置の制御部１０が撮像処理部２０の制御下において行う、検出対象の距離に適応して、使用カメラ対の切替を行う処理の手順をフロー図に基づいて説明する。
図９は、検出対象の距離画像をもとに適応するカメラ対の切替を行う処理手順を示すフロー図である。
図９の処理手順によると、制御部１０が本処理フローを起動すると、先ず、検出対象を捉えるカメラ対が既に検出対象を捉えているかを確認する（ステップＳ２０１）。この手順は、検出対象の存在を確認して、次のステップへ処理を進め、また、検出対象が存在しない場合、最も広い撮像領域で対象を捉えるために行う。なお、検出対象の存在を確認する方法は、既存の監視カメラ等において採用される手法を採用することができる。
【００３９】
ステップＳ２０１で検出対象を捉えることができないときには（ステップＳ２０１-NO）、最も広い撮像領域で対象を捉えることができるカメラ対（図１の例ではカメラ対Ａ−Ｅ）を使用カメラ対として稼働し待機状態に移行する（ステップＳ２０２）。
他方、特定のカメラ対が検出対象を捉えているときには（ステップＳ２０１-YES）、手順を次に進め、このカメラ対の各カメラで撮像した画像をもとに、距離画像を作成する（ステップＳ２０３）。この距離画像の作成は、図８を参照して説明した上記の処理フローに従って行う。
【００４０】
次に、検出対象を撮像した画像から作成される距離画像の状態を監視するために、数フレームの撮像画像にわたって、距離画像を作成し、得られる距離画像のデータ処理を行う（ステップＳ２０４）。具体的には、各フレームについて検出対象の距離（視差に対応）画像を作成し、得られた距離画像毎に検出対象領域の画素に対するヒストグラムをとって統計用データの形に纏める。このヒストグラムは、検出対象の構成画素にどのように濃度（距離に対応）値が付与されているか、即ち、距離画像の作成時に、検出対象を構成する各画素に距離に対応して付与された濃度値に基づいて、濃度値毎にその濃度値が付与された画素数を示す濃度分布を表すものである。このヒストグラムは、後続のステップで、距離画像の状態が、図５Ａ〜Ｃの各画像状態のいずれに当たるかを量的に評価するために用いられる。
【００４１】
次いで、ステップＳ２０４で得たヒストグラムから、検出対象の距離への現行（現在使用している）カメラ対の適応性を評価する（ステップＳ２０５）。
ここで評価するカメラ対の適応性の評価は、図５Ａ〜Ｃの各画像状態のいずれに当たるかを判断し、図５Ｂに当たれば適応可能であり、図５Ａ又は図５Ｃに当たれば不適用と判定することである。
適応性評価の基準は、ヒストグラムから求めた濃度の平均値及び分散（標準偏差）値が許容できる距離範囲内として定めた所定範囲の値であり、かつ数フレームにおいて前記の判定が一定していることとして、これらの基準を満たす場合、図５Ｂに示す距離画像の状態に相当するとみなし、適応性があると評価する。
【００４２】
他方、濃度の平均値が上記所定範囲の値よりも低いか、又は平均値が上記所定範囲の値でも低めでありかつ分散（標準偏差）値が所定範囲の値よりも大きい場合、図５Ａに示す距離画像の状態、即ち遠すぎる状態に相当するとみなし、適応性がないと評価する。なお、この評価がフレームの一つでも得られた場合に、その評価に従って適応性無し、と判定すれば、安全サイドの処理が行える。
また、濃度の平均値が上記所定範囲の値よりも高いか、又は平均値が上記所定範囲の値でも高めでありかつ分散（標準偏差）値が所定範囲の値よりも大きい場合、図５Ｃに示す距離画像の状態、即ち近すぎる状態に相当するとみなし、適応性がないと評価する。なお、この評価がフレームの一つでも得られた場合に、その評価に従って適応性無しと判定すれば、安全サイドの処理が行える。
【００４３】
次いで、ステップＳ２０５で得られる評価に従い、それぞれに対応する処理を分岐して行うので、評価結果から判定される現行カメラ対の適応性、即ち現行カメラ対が検出対象に適応するか否かを確認する（ステップＳ２０６）。
ここで、現行カメラ対が適応性を有するカメラ対である（図５Ｂに示す距離画像の状態に当たる）と判定される場合には（ステップＳ２０６-YES）、カメラ対の切替を必要としないので、直ちにこのフローの処理を終了する。
【００４４】
他方、ステップＳ２０６で、現行カメラ対が適応性を有するカメラ対ではないと判定される場合には（ステップＳ２０６-NO）、次に、距離画像がどのような状態であるために適応性が無いと判定されたか、即ち、図５Ａに示す検出対象が遠すぎる距離画像の状態に相当すると評価されたか、または、図５Ｃに示す検出対象が近すぎる距離画像の状態に相当すると評価されたかを確認する（ステップＳ２０７）。
【００４５】
ステップＳ２０７で遠すぎると評価された場合（ステップＳ２０７、遠すぎる）、視差を大きくするためにベースライン長ｂを広げる方向に、即ち、カメラ対Ａ−Ｂ→カメラ対Ａ−Ｃ→カメラ対Ａ−Ｄ→カメラ対Ａ−Ｅという順に切り替える（ステップＳ２０８）。
なお、この切替は、ＦＰＧＡ２６が制御部１０のＣＰＵ１１からの切替指示を受けて、動作させる視差計算の処理モジュールを選択して行う。
上記の順でベースライン長ｂを広げる方向にカメラ対を切り替え、切替後に、再び距離画像を作成するステップＳ２０３から適応性を判定するステップＳ２０６の処理を、適応性を有するカメラ対に切り替わるまで（図５Ｂの状態になるまで）繰り返し、求めるカメラ対に切り替われば、本処理の手順を終了する。
【００４６】
ステップＳ２０７で近すぎると評価された場合（ステップＳ２０７、近すぎる）、許容できる距離範囲の視差を安定して検出するためにベースライン長ｂを狭める方向に、即ち、カメラ対Ａ−Ｅ→カメラ対Ａ−Ｄ→カメラ対Ａ−Ｃ→カメラ対Ａ−Ｂという順に切り替える（ステップＳ２０９）。なお、この切替は、ＦＰＧＡ２６が制御部１０のＣＰＵ１１からの切替指示を受けて、動作させる視差計算の処理モジュールを選択して行う。
上記の順でベースライン長ｂを狭める方向にカメラ対を切り替え、切替後に、再び距離画像を作成するステップＳ２０３から適応性を判定するステップＳ２０６の処理を、適応性を有するカメラ対に切り替わるまで（図５Ｂの状態になるまで）繰り返し、求めるカメラ対に切り替われば、本処理の手順を終了する。
【００４７】
また、図９の処理フローに合わせて、本ステレオカメラ装置の制御部１０は、３次元位置の検出に用いる撮像信号を切り替える。本実施形態では、制御部１０もしくは制御部１０の制御下の３次元位置検出モジュール（不図示）により、３次元位置検出に係る処理（図４の説明、参照）を行うので、図９の処理フローにより検出対象に適応するカメラ対として判定されたカメラ対によって撮像される検出対象の撮像フレームデータを、３次元位置検出に用いるために出力する。
データ処理系における回路動作としては、制御部１０のＣＰＵ１１が、検出対象に適応するカメラ対を選択するための切替指示を撮像処理部２０の切替回路２９に与えると、撮像処理部２０の各カメラモジュールから撮像フレームの入力を受ける切替回路２９は、検出対象に適応するカメラ対の撮像フレームを出力する動作に切り替わる。
【００４８】
上記のように、本実施形態のステレオカメラ装置によると、現行カメラ対が検出対象を捉えた両撮像画像をもとに、検出対象の視差を求め得られる距離画像から、検出対象の距離が許容できる検出精度の距離範囲内であるか否かを判定し、範囲外であれば、許容できる距離範囲内の状態の撮像画像が得られる他のカメラ対へ切り替えることができる。したがって、上記［背景技術］において述べた従来技術に比べより簡単であり、従来技術が前提とした垂直方向に長い棒状物体以外にも適用し得る手法で検出精度を高精度に保つことができる。
【符号の説明】
【００４９】
１０・・制御部、１１・・ＣＰＵ、１２・・ＲＯＭ、１３・・ＲＡＭ、２０・・撮像処理部、２１〜２５・・カメラモジュールＡ〜Ｅ、２６・・ＦＰＧＡ、３０・・カメラ部、３１〜３５・・カメラＡ〜Ｅ。
【図１】
2014021011.tif 000003
【図２】
2014021011.tif 000004
【図３】
2014021011.tif 000005
【図４】
2014021011.tif 000006
【図５】
2014021011.tif 000007
【図６】
2014021011.tif 000008
【図７】
2014021011.tif 000009
【図８】
2014021011.tif 000010
【図９】
2014021011.tif 000011