(57)【要約】      （修正有）【課題】適正に距離情報を取得可能な情報取得装置および物体検出装置を提供する。【解決手段】情報取得装置は、セグメント領域の実測ドットパターン上における変位位置を、第１の判定指標Ｓ１０３、Ｓ１０５に基づいて探索し、探索された変位位置に基づいて、当該セグメント領域に対する距離情報を取得するＳ１０４。ここで、第１の判定指標は、前記変位位置の確からしさを評価するために、閾値Ｔβ１と当該閾値Ｔβ１よりも大きい閾値Ｔβ２とを有する。情報取得装置は、前記変位位置に関するパラメータ値（Ａｖ／Ｂｔ１）が、閾値Ｔβ１との閾値Ｔβ２との間にある場合に、前記変位位置に基づく前記距離情報の取得の適否を第２の判定指標Ｓ１０７に基づいて判定する。【選択図】図９
2014025804.tif 000002
【特許請求の範囲】
【請求項１】
レーザ光源から出射されたレーザ光を所定のドットパターンで目標領域に投射する投射光学系と、
前記投射光学系に対して所定の距離だけ横に離れて並ぶように配置され、前記目標領域をイメージセンサにより撮像する受光光学系と、
基準面に前記レーザ光を照射したときに前記受光光学系により撮像された基準ドットパターンと、実測時に前記イメージセンサにより撮像された実測ドットパターンとに基づいて、前記目標領域に含まれる物体までの距離に関する距離情報を取得する距離取得部と、を備え、
前記距離取得部は、前記基準ドットパターンに設定された所定のセグメント領域の前記実測ドットパターン上における変位位置を、第１の判定指標に基づいて探索し、探索された前記変位位置に基づいて、前記セグメント領域に対する距離情報を取得し、
前記第１の判定指標は、前記変位位置の確からしさを評価するために、第１の閾値と当該第１の閾値よりも大きい第２の閾値とを有し、
前記距離取得部は、前記変位位置に関する第１のパラメータ値が、前記第１の閾値と前記第２の閾値との間にある場合に、前記変位位置に基づく前記距離情報の取得の適否を前記第２の判定指標に基づいて判定する、
ことを特徴とする情報取得装置。
【請求項２】
請求項１に記載の情報取得装置において、
前記第１のパラメータ値は、前記セグメント領域に含まれるドットと前記実測ドットパターン上のドットとの間のマッチング度合いに基づき生成される値である、
ことを特徴とする情報取得装置。
【請求項３】
請求項１または２に記載の情報取得装置において、
前記第２の判定指標は、前記第１のパラメータ値と異なる第２のパラメータ値に適用される第３の閾値を備え、
前記距離取得部は、前記変位位置に対応する前記第２のパラメータと前記第３の閾値とを比較して、前記変位位置の適否を判定し、当該判定において前記変位位置が適正である場合に、前記変位位置に基づき取得される距離情報を前記セグメント領域に対する前記距離情報とし、当該判定において前記変位位置が不適正である場合に、前記セグメント領域に対する距離情報をエラーに基づく情報に設定する、
ことを特徴とする情報取得装置。
【請求項４】
請求項３に記載の情報取得装置において、
前記第２のパラメータ値は、前記セグメント領域に含まれるドットと前記実測ドットパターン上のドットとの間のマッチング度合いに基づき生成される値である、
ことを特徴とする情報取得装置。
【請求項５】
請求項１または２に記載の情報取得装置において、
前記第２の判定指標は、前記距離情報の取得対象とされる第１のセグメント領域と当該第１のセグメント領域の周囲にある第２のセグメント領域との関係に基づいて前記変位位置をもとに取得された前記距離情報の適否を判定する判定条件を含む、
ことを特徴とする情報取得装置。
【請求項６】
請求項５に記載の情報取得装置において、
前記判定条件は、前記第２のセグメント領域に対する前記距離情報の取得の適否に関する分類を含む、
ことを特徴とする情報取得装置。
【請求項７】
請求項６に記載の情報取得装置において、
前記距離取得部は、前記距離情報の取得が適正であると分類された前記第２のセグメント領域の数が、前記距離情報の取得が不適正であると分類された前記第２のセグメント領域の数を超える場合は、前記第１のセグメント領域に対する距離情報の取得を適正として、前記変位位置に基づき取得される距離情報を当該第１のセグメント領域に対する前記距離情報に用い、前記距離情報の取得が不適正であると分類された前記第２のセグメント領域の前記数が、前記距離情報の取得が適正であると分類された前記第２のセグメント領域の前記数を超える場合は、前記第１のセグメント領域に対する距離情報の取得を不適正とし、当該第１のセグメント領域に対する前記距離情報をエラーに基づく情報に設定する、ことを特徴とする情報取得装置。
【請求項８】
請求項６または７に記載の情報取得装置において、
前記距離取得部は、前記第１のセグメント領域が、前記距離情報の取得が適正であると分類された前記第２のセグメント領域によって挟まれた場合、前記第１のセグメント領域に対する距離情報の取得を適正として、前記変位位置に基づき取得される距離情報を当該第１のセグメント領域に対する前記距離情報に用いる、
ことを特徴とする情報取得装置。
【請求項９】
請求項６ないし８の何れか一項に記載の情報取得装置において、
前記距離取得部は、前記第１のセグメント領域が、前記距離情報の取得が不適正であると分類された前記第２のセグメント領域によって挟まれた場合、前記第１のセグメント領域に対する距離情報の取得を不適正として、当該第１のセグメント領域に対する前記距離情報をエラーに基づく情報に設定する、
ことを特徴とする情報取得装置。
【請求項１０】
請求項６ないし９の何れか一項に記載の情報取得装置において、
前記距離取得部は、前記第１のセグメント領域が、前記距離情報の取得が適正であると分類された前記第２のセグメント領域と前記距離情報の取得が不適正であると分類された前記第２のセグメント領域によって挟まれた場合、前記第１のセグメント領域に対する距離情報の取得を適正として、前記変位位置に基づき取得される距離情報を当該第１のセグメント領域に対する前記距離情報に用いる、
ことを特徴とする情報取得装置。
【請求項１１】
請求項１ないし１０の何れか一項に記載の情報取得装置と、
前記距離情報に基づいて、所定の対象物体を検出する物体検出部と、を備える、
ことを特徴とする物体検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、目標領域に光を投射したときの反射光の状態に基づいて目標領域内の物体を検出する物体検出装置および当該物体検出装置に用いて好適な情報取得装置に関する。
【背景技術】
【０００２】
従来、光を用いた物体検出装置が種々の分野で開発されている。いわゆる距離画像センサを用いた物体検出装置では、２次元平面上の平面的な画像のみならず、検出対象物体の奥行き方向の形状や動きを検出することができる。かかる物体検出装置では、レーザ光源やＬＥＤ（Light Emitting Diode）から、予め決められた波長帯域の光が目標領域に投射され、その反射光がＣＭＯＳイメージセンサ等の受光素子により受光される。距離画像センサとして、種々のタイプのものが知られている。
【０００３】
所定のドットパターンを持つレーザ光を目標領域に照射するタイプの距離画像センサでは、ドットパターンを持つレーザ光の目標領域からの反射光が受光素子によって受光される。そして、受光素子上におけるドットの受光位置に基づいて、三角測量法を用いて、検出対象物体の各部（検出対象物体上の各ドットの照射位置）までの距離が検出される（たとえば、特許文献１、非特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−３２３７９号公報
【非特許文献】
【０００５】
【非特許文献１】第１９回日本ロボット学会学術講演会（２００１年９月１８−２０日）予稿集、Ｐ１２７９−１２８０
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記物体検出装置では、あらかじめ、基準となるドットパターンをメモリに保持しておき、この基準ドットパターンと、実動作時に撮像された実測ドットパターンとが照合される。具体的には、基準ドットパターン中のドットの、実測ドットパターン上における位置が探索される。この探索では、基準ドットパターン中のドットと実測ドットパターン中のドットとのマッチング度合いが求められる。このとき、マッチング度合いが所定の閾値よりも低い場合には、エラー処理が行われ、マッチング度合いが閾値以上の場合に、ドットの位置検出が行われる。
【０００７】
しかしながら、かかるエラー判定は、通常、一つの閾値に基づいて行われるため、マッチング度合いが閾値近傍にある場合、エラー判定が不確かとなる惧れがある。このため、本来エラーとされるべきドットについて誤った距離が取得され、あるいは、距離が取得されるべきドットがエラーと判定される等、取得された距離情報中に、不確かな情報が混在することが起こり得る。
【０００８】
本発明は、この点に鑑みてなされたものであり、適正に距離情報を取得可能な情報取得装置および物体検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様は、情報取得装置に関する。本態様に係る情報取得装置は、レーザ
光源から出射されたレーザ光を所定のドットパターンで目標領域に投射する投射光学系と、前記投射光学系に対して所定の距離だけ横に離れて並ぶように配置され、前記目標領域をイメージセンサにより撮像する受光光学系と、基準面に前記レーザ光を照射したときに前記受光光学系により撮像された基準ドットパターンと、実測時に前記イメージセンサにより撮像された実測ドットパターンとに基づいて、前記目標領域に含まれる物体までの距離に関する距離情報を取得する距離取得部と、を備える。前記距離取得部は、前記基準ドットパターンに設定された所定のセグメント領域の前記実測ドットパターン上における変位位置を、第１の判定指標に基づいて探索し、探索された前記変位位置に基づいて、前記セグメント領域に対する距離情報を取得する。前記第１の判定指標は、前記変位位置の確からしさを評価するために、第１の閾値と当該第１の閾値よりも大きい第２の閾値とを有する。前記距離取得部は、前記変位位置に関する第１のパラメータ値が、前記第１の閾値と前記第２の閾値との間にある場合に、前記変位位置に基づく前記距離情報の取得の適否を前記第２の判定指標に基づいて判定する。
【００１０】
本発明の第２の態様は、物体検出装置に関する。本態様に係る物体検出装置は、上記第１の態様に係る情報取得装置と、前記距離情報に基づいて、所定の対象物体を検出する物体検出部と、を備える。
【発明の効果】
【００１１】
本発明によれば、適正に距離情報を取得可能な情報取得装置および物体検出装置を提供することができる。
【００１２】
本発明の効果ないし意義は、以下に示す実施の形態の説明により更に明らかとなろう。ただし、以下に示す実施の形態は、あくまでも、本発明を実施化する際の一つの例示であって、本発明は、以下の実施の形態により何ら制限されるものではない。
【図面の簡単な説明】
【００１３】
【図１】実施の形態に係る物体検出装置の構成を示す図である。
【図２】実施の形態に係る情報取得装置と情報処理装置の構成を示す図である。
【図３】実施の形態に係る目標領域に対するレーザ光の照射状態とイメージセンサ上のレーザ光の受光状態を示す図である。
【図４】実施の形態に係る参照パターンの生成方法を説明する図である。
【図５】実施の形態に係る距離検出手法を説明する図である。
【図６】比較例に係るエラー判定指標を説明する図である。
【図７】比較例に係るエラー判定指標を用いて距離検出を行った検証結果を示す図である。
【図８】実施の形態に係るエラー判定指標を説明する図である。
【図９】実施例１に係るエラー判定処理にかかるフローチャートである。
【図１０】実施例１に係るエラー判定結果の分類を示す図である。
【図１１】実施例２に係るエラー判定処理にかかるフローチャートである。
【図１２】実施例２に係る曖昧値と周囲のエラー判定結果の傾向を説明する図である。
【図１３】実施例２に係る曖昧値補正処理にかかるフローチャートである。
【図１４】実施例２に係る曖昧値補正処理にかかるフローチャートである。
【図１５】実施例２に係る曖昧値補正処理の例を示す図である。
【図１６】実施例２に係る曖昧値補正処理を用いて距離検出を行った検証結果を示す図である。
【図１７】変更例に係るノイズ除去フィルタの処理を用いて距離検出を行った検証結果を示す図である。
【図１８】変更例に係る曖昧値補正処理にかかるフローチャートである。
【図１９】変更例に係る曖昧値補正処理およびエラー判定指標を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態につき図面を参照して説明する。本実施の形態は、所定のドットパターンを持つレーザ光を目標領域に照射するタイプの情報取得装置に本発明を適用したものである。
【００１５】
まず、図１に本実施の形態に係る物体検出装置１の概略構成を示す。図示の如く、物体検出装置１は、情報取得装置２と、情報処理装置３とを備えている。テレビ４は、情報処理装置３からの信号によって制御される。
【００１６】
情報取得装置２は、目標領域全体に赤外光を投射し、その反射光をＣＭＯＳイメージセンサにて受光することにより、目標領域にある物体各部の距離（以下、「３次元距離情報」という）を取得する。取得された３次元距離情報は、ケーブル５を介して情報処理装置３に送られる。
【００１７】
情報処理装置３は、たとえば、テレビ制御用のコントローラやゲーム機、パーソナルコンピュータ等である。情報処理装置３は、情報取得装置２から受信した３次元距離情報に基づき、目標領域における物体を検出し、検出結果に基づきテレビ４を制御する。
【００１８】
たとえば、情報処理装置３は、受信した３次元距離情報に基づき人を検出するとともに、３次元距離情報の変化から、その人の動きを検出する。たとえば、情報処理装置３がテレビ制御用のコントローラである場合、情報処理装置３には、受信した３次元距離情報からその人のジェスチャを検出するとともに、ジェスチャに応じてテレビ４に制御信号を出力するアプリケーションプログラムがインストールされている。
【００１９】
また、たとえば、情報処理装置３がゲーム機である場合、情報処理装置３には、受信した３次元距離情報からその人の動きを検出するとともに、検出した動きに応じてテレビ画面上のキャラクタを動作させ、ゲームの対戦状況を変化させるアプリケーションプログラムがインストールされている。
【００２０】
図２は、情報取得装置２と情報処理装置３の構成を示す図である。
【００２１】
情報取得装置２は、光学部の構成として、投射光学系１００と受光光学系２００とを備えている。投射光学系１００と受光光学系２００は、Ｘ軸方向に並ぶように、情報取得装置２に配置される。
【００２２】
投射光学系１００は、レーザ光源１１０と、コリメータレンズ１２０と、ミラー１３０と、回折光学素子（ＤＯＥ：Diffractive Optical Element）１４０を備えている。また、受光光学系２００は、アパーチャ２１０と、撮像レンズ２２０と、フィルタ２３０と、ＣＭＯＳイメージセンサ２４０とを備えている。この他、情報取得装置２は、回路部の構成として、ＣＰＵ（Central Processing Unit）２１と、レーザ駆動回路２２と、撮像信号処理回路２３と、入出力回路２４と、メモリ２５と、バッファメモリ２６を備えている。
【００２３】
レーザ光源１１０は、受光光学系２００から離れる方向（Ｘ軸負方向）に波長８３０ｎｍ程度の狭波長帯域のレーザ光を出力する。コリメータレンズ１２０は、レーザ光源１１０から出射されたレーザ光を略平行光に変換する。
【００２４】
ミラー１３０は、コリメータレンズ１２０側から入射されたレーザ光をＤＯＥ１４０に向かう方向（Ｚ軸方向）に反射する。
【００２５】
ＤＯＥ１４０は、入射面に回折パターンを有する。この回折パターンによる回折作用により、ＤＯＥ１４０に入射したレーザ光は、所定のドットパターンのレーザ光に変換されて、目標領域に照射される。
【００２６】
ＤＯＥ１４０の回折パターンは、たとえば、ステップ型の回折ホログラムが所定のパターンで形成された構造とされる。回折ホログラムは、コリメータレンズ１２０により略平行光とされたレーザ光をドットパターンのレーザ光に変換するよう、パターンとピッチが調整されている。ＤＯＥ１４０は、ミラー１３０から入射されたレーザ光を、放射状に広がるドットパターンのレーザ光として、目標領域に照射する。
【００２７】
目標領域から反射されたレーザ光は、アパーチャ２１０を介して撮像レンズ２２０に入射する。
【００２８】
アパーチャ２１０は、撮像レンズ２２０のＦナンバーに合うように、外部からの光に絞りを掛ける。撮像レンズ２２０は、アパーチャ２１０を介して入射された光をＣＭＯＳイメージセンサ２４０上に集光する。フィルタ２３０は、レーザ光源１１０の出射波長（８３０ｎｍ程度）を含む赤外の波長帯域の光を透過し、可視光の波長帯域をカットするバンドパスフィルタである。
【００２９】
ＣＭＯＳイメージセンサ２４０は、撮像レンズ２２０にて集光された光を受光して、画素毎に、受光量に応じた信号（電荷）を撮像信号処理回路２３に出力する。ここで、ＣＭＯＳイメージセンサ２４０は、各画素における受光から高レスポンスでその画素の信号（電荷）を撮像信号処理回路２３に出力できるよう、信号の出力速度が高速化されている。
【００３０】
ＣＰＵ２１は、メモリ２５に格納された制御プログラムに従って各部を制御する。かかる制御プログラムによって、ＣＰＵ２１には、レーザ光源１１０を制御するためのレーザ制御部２１ａと、３次元距離情報を生成するための距離取得部２１ｂの機能が付与される。
【００３１】
レーザ駆動回路２２は、ＣＰＵ２１からの制御信号に応じてレーザ光源１１０を駆動する。
【００３２】
撮像信号処理回路２３は、ＣＭＯＳイメージセンサ２４０を制御して、所定の撮像間隔で、ＣＭＯＳイメージセンサ２４０により生成された各画素の信号（電荷）をライン毎に順次取り込む。そして、取り込んだ信号を順次ＣＰＵ２１に出力する。ＣＰＵ２１は、撮像信号処理回路２３から供給される信号（撮像信号）をもとに、情報取得装置２から検出対象物の各部までの距離を、距離取得部２１ｂによる処理によって算出する。距離取得部２１ｂにより算出された距離情報は、バッファメモリ２６に一時蓄積される。バッファメモリ２６は、１ライン分の距離情報を保持可能なラインメモリである。入出力回路２４は、バッファメモリ２６に蓄積された距離情報を読み出し、情報処理装置３とのデータ通信を制御する。
【００３３】
情報処理装置３は、ＣＰＵ３１と、入出力回路３２と、メモリ３３を備えている。なお、情報処理装置３には、同図に示す構成の他、テレビ４との通信を行うための構成や、ＣＤ−ＲＯＭ等の外部メモリに格納された情報を読み取ってメモリ３３にインストールするためのドライブ装置等が配されるが、便宜上、これら周辺回路の構成は図示省略されている。
【００３４】
ＣＰＵ３１は、メモリ３３に格納された制御プログラム（アプリケーションプログラム
）に従って各部を制御する。かかる制御プログラムによって、ＣＰＵ３１には、画像中の物体を検出するための物体検出部３１ａと、物体の動きに応じて、テレビ４の機能を制御するための機能制御部３１ｂの機能が付与される。かかる制御プログラムは、たとえば、図示しないドライブ装置によってＣＤ−ＲＯＭから読み取られ、メモリ３３にインストールされる。
【００３５】
物体検出部３１ａは、情報取得装置２から供給される３次元距離情報から画像中の物体の形状を抽出し、抽出した物体形状の動きを検出する。ここで、物体検出部３１ａは、距離に関する閾値を基に、情報取得装置２から供給される３次元距離情報から物体の平面形状のみを抽出するため、２値化画像を生成する。その後、生成した２値化画像と、メモリ３３に格納された物体形状を抽出するための物体形状抽出テンプレートとの比較を行い、動きの抽出対象となる物体形状と３次元距離情報中の物体形状の中心位置を特定する。物体検出部３１ａは、こうして、特定した物体形状の中心位置の距離情報を、所定時間ごとに追跡することによって、物体の動きを検出する。
【００３６】
たとえば、制御プログラムがゲームプログラムである場合、機能制御部３１ｂは、物体検出部３１ａによって検出された人の動き（ジェスチャ）に応じてテレビ画面上のキャラクタを動作させるための処理を実行する。また、制御プログラムがテレビ４の機能を制御するためのプログラムである場合、機能制御部３１ｂは、物体検出部３１ａから人の動き（ジェスチャ）に応じた信号に基づき、テレビ４の機能（チャンネル切り替えやボリューム調整、等）を制御するための処理を実行する。
【００３７】
入出力回路３２は、情報取得装置２とのデータ通信を制御する。
【００３８】
投射光学系１００と受光光学系２００は、投射光学系１００の投射中心と受光光学系２００の撮像中心がＸ軸に平行な直線上に並ぶように、Ｘ軸方向に所定の距離をもって並んで設置される。投射光学系１００と受光光学系２００の設置間隔は、情報取得装置２と目標領域の基準面との距離に応じて、設定される。
【００３９】
次に、情報取得装置２による３次元距離情報の取得方法について説明する。
【００４０】
図３（ａ）は、目標領域に対するレーザ光の照射状態を模式的に示す図、図３（ｂ）は、ＣＭＯＳイメージセンサ２４０におけるレーザ光の受光状態を模式的に示す図である。なお、図３（ｂ）には、便宜上、目標領域に平坦な面（スクリーン）とスクリーンの前に人物が存在するときの受光状態が示されている。
【００４１】
図３（ａ）に示すように、投射光学系１００からは、ドットパターンを持ったレーザ光（以下、このパターンを持つレーザ光の全体を「ＤＰ光」という）が、目標領域に照射される。図３（ａ）には、ＤＰ光の光束領域が実線の枠によって示されている。ＤＰ光の光束中には、ＤＯＥ１４０による回折作用により生成されるドット領域（以下、単に「ドット」という）が、ＤＯＥ１４０による回折作用によるドットパターンに従って点在している。
【００４２】
目標領域に平坦な面（スクリーン）が存在すると、これにより反射されたＤＰ光は、図３（ｂ）のように、ＣＭＯＳイメージセンサ２４０上に分布する。
【００４３】
図３（ｂ）には、ＣＭＯＳイメージセンサ２４０上のＤＰ光の全受光領域が破線の枠によって示され、ＣＭＯＳイメージセンサ２４０の撮像有効領域に入射するＤＰ光の受光領域が実線の枠によって示されている。ＣＭＯＳイメージセンサ２４０の撮像有効領域は、ＣＭＯＳイメージセンサ２４０がＤＰ光を受光した領域のうち、センサとして信号を出力
する領域であり、たとえば、ＶＧＡ（横６４０画素×縦４８０画素）のサイズである。また、同図（ａ）に示す目標領域上におけるＤｔ０の光は、ＣＭＯＳイメージセンサ２４０上では、同図（ｂ）に示すＤｔ０’の位置に入射する。スクリーンの前の人物の像は、ＣＭＯＳイメージセンサ２４０上では、上下左右が反転して撮像される。
【００４４】
ここで、図４、図５を参照して、上記距離検出の方法を説明する。
【００４５】
図４は、上記距離検出手法に用いられる参照パターンの設定方法を説明する図である。
【００４６】
図４（ａ）に示すように、投射光学系１００から所定の距離Ｌｓの位置に、Ｚ軸方向に垂直な平坦な反射平面ＲＳが配置される。出射されたＤＰ光は、反射平面ＲＳによって反射され、受光光学系２００のＣＭＯＳイメージセンサ２４０に入射する。これにより、ＣＭＯＳイメージセンサ２４０から、撮像有効領域内の画素毎の電気信号が出力される。出力された画素毎の電気信号の値（画素値）は、図２のメモリ２５上に展開される。
【００４７】
以下、反射面ＲＳからの反射によって得られた全画素値からなる画像を、「基準画像」、反射面ＲＳを「基準面」と称する。そして、図４（ｂ）に示すように、基準画像上に、「参照パターン領域」が設定される。なお、図４（ｂ）には、ＣＭＯＳイメージセンサ２４０の背面側から受光面をＺ軸正方向に透視した状態が図示されている。図５以降の図においても同様である。
【００４８】
こうして設定された参照パターン領域に対して、所定の大きさを有する複数のセグメント領域が設定される。セグメント領域の大きさは、得られる距離情報による物体の輪郭抽出精度、ＣＰＵ２１に対する距離検出の演算量の負荷および後述する距離検出手法によるエラー発生率を考慮して決定される。
【００４９】
図４（ｃ）を参照して、参照パターン領域に設定されるセグメント領域について説明する。なお、図４（ｃ）には、便宜上、各セグメント領域の大きさが横９画素×縦９画素で示され、各セグメント領域の中央の画素が×印で示されている。
【００５０】
セグメント領域は、図４（ｃ）に示すように、隣り合うセグメント領域が参照パターン領域に対してＸ軸方向およびＹ軸方向に１画素間隔で並ぶように設定される。すなわち、あるセグメント領域は、このセグメント領域のＸ軸方向およびＹ軸方向に隣り合うセグメント領域に対して１画素ずれた位置に設定される。このとき、各セグメント領域には、固有のパターンでドットが点在する。よって、セグメント領域内の画素値のパターンは、セグメント領域毎に異なっている。隣り合うセグメント領域の間隔が狭いほど、参照パターン領域内に含まれるセグメント領域の数が多くなり、目標領域の面内方向（Ｘ−Ｙ平面方向）における距離検出の分解能が高められる。
【００５１】
こうして、ＣＭＯＳイメージセンサ２４０上における参照パターン領域の位置に関する情報と、参照パターン領域に含まれる全画素の画素値（参照パターン）と、参照パターン領域に対して設定されるセグメント領域の情報が、図２のメモリ２５に記憶される。メモリ２５に記憶されるこれらの情報を、以下、「参照テンプレート」と称する。
【００５２】
図２のＣＰＵ２１は、投射光学系１００から検出対象物体の各部までの距離を算出する際に、参照テンプレートを参照する。ＣＰＵ２１は、距離を算出する際に、参照テンプレートから得られる各セグメント領域内のドットパターンのずれ量に基づいて、物体の各部までの距離を算出する。
【００５３】
たとえば、図４（ａ）に示すように距離Ｌｓよりも近い位置に物体がある場合、参照パ
ターン上の所定のセグメント領域Ｓｎに対応するＤＰ光（ＤＰｎ）は、物体によって反射され、セグメント領域Ｓｎとは異なる領域Ｓｎ’に入射する。投射光学系１００と受光光学系２００はＸ軸方向に隣り合っているため、セグメント領域Ｓｎに対する領域Ｓｎ’の変位方向はＸ軸に平行となる。図４（ａ）の場合、物体が距離Ｌｓよりも近い位置にあるため、領域Ｓｎ’は、セグメント領域Ｓｎに対してＸ軸正方向に変位する。物体が距離Ｌｓよりも遠い位置にあれば、領域Ｓｎ’は、セグメント領域Ｓｎに対してＸ軸負方向に変位する。
【００５４】
セグメント領域Ｓｎに対する領域Ｓｎ’の変位方向と変位量をもとに、投射光学系１００からＤＰ光（ＤＰｎ）が照射された物体の部分までの距離Ｌｒが、距離Ｌｓを用いて、三角測量法に基づき算出される。同様にして、他のセグメント領域に対応する物体の部分について、投射光学系１００からの距離が算出される。かかる算出手法の詳細は、たとえば、上記非特許文献１（第１９回日本ロボット学会学術講演会（２００１年９月１８−２０日）予稿集、Ｐ１２７９−１２８０）に示されている。
【００５５】
かかる距離算出では、参照テンプレートのセグメント領域Ｓｎが、実測時においてどの位置に変位したかを検出する。この検出は、実測時にＣＭＯＳイメージセンサ２４０上に照射されたＤＰ光から得られたドットパターンと、セグメント領域Ｓｎに含まれるドットパターンとを照合することによって行われる。以下、実測時にＣＭＯＳイメージセンサ２４０上の撮像有効領域に照射されたＤＰ光から得られた全画素値からなる画像を、「実測画像」と称する。実測時のＣＭＯＳイメージセンサ２４０の撮像有効領域は、基準画像取得時と同様に、たとえば、ＶＧＡ（横６４０画素×縦４８０画素）のサイズである。
【００５６】
図５（ａ）〜（ｅ）は、かかる距離検出の手法を説明する図である。図５（ａ）は、ＣＭＯＳイメージセンサ２４０上における基準画像に設定された参照パターン領域を示す図であり、図５（ｂ）は、実測時のＣＭＯＳイメージセンサ２４０上の実測画像を示す図であり、図５（ｃ）〜（ｅ）は、実測画像に含まれるＤＰ光のドットパターンと、参照テンプレートのセグメント領域に含まれるドットパターンとの照合方法を説明する図である。なお、便宜上、図５（ａ）、（ｂ）には、一部のセグメント領域のみが示されており、図５（ｃ）〜（ｅ）には、各セグメント領域の大きさが、横９画素×縦９画素で示されている。また、図５（ｂ）の実測画像には、便宜上、図４（ｂ）のように、検出対象物体として基準面より前に人物が存在しており、人物の像が写り込んでいることが示されている。
【００５７】
図５（ａ）のセグメント領域Ｓｉの実測時における変位位置を探索する場合、図５（ｂ）に示すように、実測画像上に、セグメント領域Ｓｉに対して探索領域Ｒｉが設定される。探索領域Ｒｉは、Ｘ軸方向に所定の幅を持っている。セグメント領域Ｓｉが探索領域Ｒｉにおいて１画素ずつＸ軸方向に送られ、各送り位置において、セグメント領域Ｓｉのドットパターンと実測画像上のドットパターンとが比較される。以下、実測画像上の各送り位置に対応する領域を、「比較領域」と称する。探索領域Ｒｉには、セグメント領域Ｓｉと同じサイズの比較領域が複数設定され、Ｘ軸方向に隣り合う比較領域は互いに１画素ずれている。
【００５８】
図５（ｄ）では、基準画像上のセグメント領域Ｓｉの画素位置に対応する実測画像上の画素位置（中心画素位置）から、Ｘ軸負方向にｘ画素ずれた位置からＸ軸正方向にｘ画素ずれた範囲（以下、「探索範囲Ｌ０」という）においてセグメント領域Ｓｉが送られるように探索領域Ｒｉが設定されている。
【００５９】
距離検出時には、探索領域Ｒｉにおいてセグメント領域ＳｉをＸ軸方向に１画素ずつ送りながら、各送り位置において、参照テンプレートに記憶されているセグメント領域Ｓｉのドットパターンと、実測画像のＤＰ光のドットパターンのマッチング度合いが求められ
る。このようにセグメント領域Ｓｉを探索領域Ｒｉ内においてＸ軸方向にのみ送るのは、上記のように、通常、参照テンプレートにより設定されたセグメント領域のドットパターンは、実測時において、Ｘ軸方向の所定の範囲内でのみ変位するためである。
【００６０】
なお、実測時には、検出対象物体の位置によっては、セグメント領域に対応するドットパターンが実測画像からＸ軸方向にはみ出すことが起こり得る。この場合、セグメント領域に対応するドットパターンは、ＣＭＯＳイメージセンサ２４０の撮像有効領域内にないため、このセグメント領域については、適正にマッチングを行うことができない。しかし、このような端のセグメント領域以外については、適正にマッチングを行うことができるため、物体の距離検出への影響は少ない。
【００６１】
なお、端の領域についても、適正にマッチングを行う場合には、実測時のＣＭＯＳイメージセンサ２４０の撮像有効領域を、基準画像取得時のＣＭＯＳイメージセンサ２４０の撮像有効領域よりも、大きくすることができるものを用いれば良い。これにより、実測画像が基準画像よりも大きくなるが、端のセグメント領域についても、適正にマッチングを行うことができる。
【００６２】
上記マッチング度合いの検出時には、まず、参照パターン領域の各画素の画素値と実測画像の各セグメント領域の各画素の画素値の階調数が減少される。たとえば、基準画像および実測画像の画素値が８ビットの階調の場合、０〜２５５の画素値が、０〜１２の画素値に変換される。そして、変換された画素値がメモリ２５に保持される。その後、比較領域とセグメント領域Ｓｉとの間の類似度が求められる。すなわち、セグメント領域Ｓｉの各画素の画素値と、比較領域の対応する画素の画素値との差分が求められる。そして、求めた差分を比較領域の全ての画素について加算した値Ｒｓａｄが、類似度を示す値として取得される。
【００６３】
たとえば、図５（ｃ）のように、一つのセグメント領域中に、ｎ列×ｍ行の画素が含まれている場合、セグメント領域のｉ列、ｊ行の画素の画素値Ｔ（ｉ，ｊ）と、比較領域のｉ列、ｊ行の画素の画素値Ｉ（ｉ，ｊ）との差分が求められる。そして、セグメント領域の全ての画素について差分が求められ、その差分の総和により、図５（ｃ）に示す式の値Ｒｓａｄが求められる。値Ｒｓａｄが小さい程、セグメント領域と比較領域との間の類似度が高い。
【００６４】
こうして、図５（ｄ）に示すように、セグメント領域Ｓｉについて、探索領域Ｒｉの全ての比較領域に対して値Ｒｓａｄが求められる。図５（ｅ）は、探索領域Ｒｉの各送り位置における値Ｒｓａｄが模式的に示されたグラフである。
【００６５】
セグメント領域Ｓｉについて、探索領域Ｒｉの全ての比較領域に対して値Ｒｓａｄが求められると、値Ｒｓａｄの最小値Ｂｔ１が参照され、最小値Ｂｔ１に対応する比較領域Ｃｉの位置が、セグメント領域Ｓｉの変位位置と判定される。ただし、かかる判定の際に、所定のエラー判定指標が適用されて、変位位置の適否が判定される。そして、このエラー判定指標がクリアされない場合には、変位位置の探索がエラーとされる。
【００６６】
こうして、実測時に取得されたＤＰ光のドットパターンから、各セグメント領域の変位位置が探索されると、上記のように、その変位位置に基づいて、三角測量法により、各セグメント領域に対応する検出対象物体の部位までの距離が求められる。
【００６７】
図６（ａ）〜図６（ｃ）は、変位位置の適否を判定するエラー判定指標の比較例を示す図である。図６（ａ）〜図６（ｃ）のグラフは、値Ｒｓａｄの分布例を示すグラフである。図６（ａ）〜図６（ｃ）には、それぞれ、異なるエラー判定指標が示されている。
【００６８】
図６（ａ）のグラフでは、画素ずれ量１０の位置で、値Ｒｓａｄが大きく立ち下がっている。また、図６（ｂ）のグラフでは、画素ずれ量１０の位置で、最も値Ｒｓａｄが小さくなっており、画素ずれ量−５の位置でも、値Ｒｓａｄがある程度小さくなっている。さらに、図６（ｃ）のグラフでは、値Ｒｓａｄの平均値Ａｖが小さくなっている。
【００６９】
図６（ａ）のエラー判定指標では、最小値Ｂｔ１の大きさによって、変位位置の探索の適否が判定される。具体的には、最小値Ｂｔ１が閾値Ｔａ以上である場合、そのセグメント領域の探索はエラーとされる。他方、最小値Ｂｔ１が閾値Ｔａ未満である場合、最小値Ｂｔ１に対応する比較領域の位置が、セグメント領域の変位位置と判定される。
【００７０】
図６（ｂ）のエラー判定指標では、値Ｒｓａｄのうち、２番目に小さい値Ｂｔ２と最小値Ｂｔ１の比によって、変位位置の探索の適否が判定される。具体的には、Ｂｔ２とＢｔ１の比（Ｂｔ２／Ｂｔ１）が所定の閾値Ｔα未満である場合、そのセグメント領域の探索はエラーとされる。他方、Ｂｔ２とＢｔ１の比が所定の閾値Ｔα以上である場合、最小値Ｂｔ１に対応する比較領域の位置が、セグメント領域の変位位置と判定される。
【００７１】
図６（ｃ）のエラー判定指標では、値Ｒｓａｄの平均値Ａｖと最小値Ｂｔ１との比によって、変位位置の探索の適否が判定される。具体的には、平均値Ａｖと最小値Ｂｔ１の比（Ａｖ／Ｂｔ１）が所定の閾値Ｔβ未満である場合、そのセグメント領域の探索はエラーとされる。他方、平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ以上である場合、最小値Ｂｔ１に対応する比較領域の位置が、セグメント領域の変位位置と判定される。
【００７２】
図６（ａ）のエラー判定指標では、セグメント領域に含まれるドットパターンが探索範囲内に含まれないような場合に、変位位置の探索が適正にエラーと判定される。すなわち、このような場合、値Ｒｓａｄが全体的に大きくなるため、最小値Ｂｔ１が閾値Ｔａ未満となりにくく、このため、変位位置の探索がエラーと判定され易い。たとえば、図６（ａ）の例では、最小値Ｂｔ１が閾値Ｔａ未満であるため、最小値Ｂｔ１に対応する画素ずれ量１０の位置が、変位位置として適正であると判定される。
【００７３】
なお、図６（ａ）のエラー判定指標では、最小値Ｂｔ１の大きさのみによって変位位置の適否が判定されるため、たとえば、図６（ｂ）に示すグラフのように、最小値Ｂｔ１に近い値Ｂｔ２が存在する場合にも、最小値Ｂｔ１に対応する位置が変位位置として適正であると判定される。しかし、図６（ｂ）の場合には、値Ｂｔ２に対応する位置も変位位置となる可能性が残るため、このような場合に一律、最小値Ｂｔ１に対応する位置を変位位置と判定すると、結果的に、判定結果が誤判定となる惧れがある。
【００７４】
これに対し、図６（ｂ）のエラー判定指標では、２番目に小さい値Ｂｔ２と最小値Ｂｔ１の比（Ｂｔ２／Ｂｔ１）が所定の閾値Ｔα未満である場合には、そのセグメント領域の探索はエラーとされるため、このような誤判定が抑制され得る。
【００７５】
また、図６（ａ）のエラー判定指標では、値Ｒｓａｄが全体的に小さいような場合には、最小値Ｂｔ１と他の値との差が小さいときにも、最小値Ｂｔ１が閾値未満であれば、最小値Ｂｔ１に対応する位置が変位位置として適正であると判定される。しかし、このような場合、最小値Ｂｔ１と他の値との差が小さいため、最小値Ｂｔ１に対応する位置が変位位置として適正である確からしさは、低いものと考えられる。このため、図６（ａ）のエラー判定指標では、このような場合に、判定結果が誤判定となり易い。
【００７６】
これに対し、図６（ｃ）のエラー判定指標では、最小値Ｂｔ１と他の値との差が小さい場合にエラーと判定されるため、このような誤判定が抑制され得る。このエラー判定指標
では、図６（ｃ）のように、平均値Ａｖがある程度大きく、平均値Ａｖと最小値Ｂｔ１の差が大きければ、最小値Ｂｔ１に対応する位置が変位位置として適正であると判定される。
【００７７】
このように、変位位置の適否を判定するエラー判定指標は、種々のものが用いられ得る。また、それぞれの指標によって得られる結果は異なる。なお、本実施の形態では、上記３つのエラー判定指標とは別の指標をさらに用いて、変位位置の適否が判定される。かかるエラー判定指標については、追って、図９を参照して説明する。
【００７８】
こうして取得された各セグメント領域に対応する距離情報は、図２のバッファメモリ２６に出力される。そして、バッファメモリ２６に蓄積された距離情報は、１ラインごとにラインバッファ方式で、情報処理装置３に出力される。このようにして、セグメント領域Ｓ１〜セグメント領域Ｓｎまでの全てのセグメント領域について、上記と同様のセグメント領域の探索が行われ、距離情報が取得される。
【００７９】
情報取得装置２は、上記のようにして取得された各セグメント領域に対応する検出対象物体までの距離を白から黒の階調で表現された画素値に割り当てた画像として、バッファメモリ２６に出力する。以下、各セグメント領域に対応する距離を画素値で表現した画像を「距離画像」と称する。
【００８０】
上記のように、本実施の形態では、セグメント領域は、基準画像の参照パターン領域に対して、１画素間隔で設定されるため、距離画像は、基準画像と略同様のＶＧＡサイズの解像度（略６４０×略４８０）を有する。例えば、距離画像の画素の階調は、８ビットの階調であり、近距離ほど黒（画素値０）に近く、遠距離ほど白（画素値２５５）に近い階調が割り当てられる。また、セグメント領域の探索がエラーとなった場合は、黒（画素値０）の階調が割り当てられる。
【００８１】
図７（ａ）〜図７（ｄ）は、図６（ｃ）に示す比較例のエラー判定指標を用いて距離検出を行った検証結果を示す図である。図７（ａ）、図７（ｂ）は、検証に用いた実測画像を示す図であり、図７（ｃ）、図７（ｄ）は、検証結果の距離画像を示す図である。図７（ｃ）は、図７（ａ）の実測画像から取得された距離画像であり、図７（ｄ）は、図７（ｂ）の実測画像から取得された距離画像である。なお、本検証において、セグメント領域の大きさは、１５画素×１５画素、探索範囲は、−３０画素〜３０画素である。
【００８２】
図７（ａ）、図７（ｂ）の実測画像では、それぞれ、基準面よりも前方に人物と机が位置付けられており、人物と机に照射されたドットが撮像されている。また、図７（ｂ）では、図７（ａ）に比べて、手がより前方に突き出された状態で目標領域が撮像されている。図７（ｂ）では、情報取得装置２の距離検出可能な範囲よりも近い距離に手が位置付けられており、このため、ドットパターンが基準画像よりも非常に強い光量で手に照射されている。なお、図７（ａ）、図７（ｂ）において、天井等の人物の背景部分は、距離検出可能な範囲に存在しておらず、このため、これらの部分に照射されたドットは、実測画像中に写り込んでいない。
【００８３】
図７（ｃ）に示す距離画像を参照すると、人物の胴体の階調値よりも、手の方がやや黒に近い階調値になっており、手が人物よりも近距離にあることが適正に検出できていることがわかる。また、机、およびやや遠方にある物体についても、適正に距離が得られていることがわかる。
【００８４】
他方、ドットが撮像されない天井等の背景部分については、黒とそれ以外の階調値が混在しており、エラーの他、種々の距離値が取得されていることがわかる。また、図７（ｄ
）の手の領域についても、同様に、黒とそれ以外の階調値が混在しており、エラーの他、種々の距離値が取得されていることがわかる。
【００８５】
このように、比較例では、ドットが撮像されていない領域や、ドットが適正に検出され得ないような領域においても、一律にエラーとはならず、種々の距離値が混在している。すなわち、ドットが適正に検出できないような領域においても、値Ｒｓａｄの分布が、図６（ｃ）のエラー条件に合致しない確率がある程度高いことがわかる。このような現象は、図６（ｃ）のエラー判定指標の他、図６（ａ）、（ｂ）のエラー判定指標のように、閾値が一つのみ設定されている場合には、同様に起こり得る。なお、物体にドットが適正に照射されている領域であっても、物体の反射率や、形状等の違いによって、図６（ａ）〜図６（ｃ）のエラー条件に合致することも考えられ得る。
【００８６】
このようにエラーが連続すべき領域や、物体が存在する領域に、不正確な距離情報や、エラーが混在すると、たとえば、図７（ｃ）の天井の部分に何らかの物体があると誤認識され、あるいは、人物の手の位置が検出できなくなる等、物体の検出処理に悪影響を及ぼす惧れがある。
【００８７】
そこで、本実施の形態では、上記のエラー判定指標について、単一の閾値ではなく、複数の閾値を設けて、セグメント領域の探索位置が適正であるか否かをより細やかに判定するよう構成されている。
【００８８】
図８（ａ）〜図８（ｃ）は、それぞれ、複数の閾値を設けたエラー判定指標を用いる例を示す図である。なお、図８（ａ）〜図８（ｃ）のグラフ（値Ｒｓａｄの分布例）は、図６（ａ）〜図６（ｃ）と同様である。図８（ａ）〜図８（ｃ）には、それぞれ、異なるエラー判定指標が示されている。
【００８９】
図８（ａ）〜図８（ｃ）のエラー判定指標では、それぞれ、２つの閾値Ｔａ１、Ｔａ２、閾値Ｔα１、Ｔα２、および閾値Ｔβ１、Ｔβ２が用いられる。閾値Ｔａ１は、図６（ａ）の閾値Ｔａよりも大きく、閾値Ｔａ２は、図６（ａ）の閾値Ｔａよりも小さい。また、閾値Ｔα１は、図６（ｂ）の閾値Ｔαよりも小さく、閾値Ｔα２は、図６（ｂ）の閾値Ｔαよりも大きい。さらに、また、閾値Ｔβ１は、図６（ｃ）の閾値Ｔβよりも小さく、閾値Ｔβ２は、図６（ｂ）の閾値Ｔβよりも大きい。
【００９０】
図８（ａ）のエラー判定指標では、最小値Ｂｔ１が閾値Ｔａ１以上である場合、そのセグメント領域の探索はエラーとされる。また、最小値Ｂｔ１が閾値Ｔａ１未満であって、閾値Ｔａ２以上である場合、最小値Ｂｔ１に対応する位置は、変位位置として不確かであるとされる。以下、このような変位位置を「曖昧な変位位置」という。さらに、最小値Ｂｔ１が閾値Ｔａ２未満である場合、最小値Ｂｔ１に対応する位置は、適正な変位位置であると判定される。
【００９１】
また、図８（ｂ）の場合、２番目に小さい値Ｂｔ２と最小値Ｂｔ１の比（Ｂｔ２／Ｂｔ１）が所定の閾値Ｔα１未満である場合、そのセグメント領域の探索はエラーと判定される。また、２番目に小さい値Ｂｔ２と最小値Ｂｔ１の比が所定の閾値Ｔα１以上であって、所定の閾値Ｔα２未満である場合、最小値Ｂｔ１に対応する位置は曖昧な変位位置であるとされる。さらに、２番目に小さい値Ｂｔ２と最小値Ｂｔ１の比が所定の閾値Ｔα２以上である場合、最小値Ｂｔ１に対応する位置は適正な変位位置であると判定される。
【００９２】
さらに、図８（ｃ）の場合、平均値Ａｖと最小値Ｂｔ１の比（Ａｖ／Ｂｔ１）が所定の閾値Ｔβ１未満である場合、そのセグメント領域の探索はエラーと判定される。また、平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ１以上であって、所定の閾値Ｔβ２未満で
ある場合、最小値Ｂｔ１の位置は曖昧な変位位置であるとされる。平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ２以上である場合、最小値Ｂｔ１に対応する位置は適正な変位位置とされる。
【００９３】
このように、複数の閾値によって、エラー判定を行うことにより、セグメント領域の探索結果は、適正な変位位置、エラー、曖昧な変位位置の３つに分類される。このように分類することによって、曖昧な変位位置を、適正な変位位置として扱うべきか、エラーとするべきかを判定するための種々の処理を適用することができ、これにより、距離情報の適正化を図ることができる。
【００９４】
以下、曖昧な変位位置と判定された探索に対し適用される処理の具体例について説明する。
【００９５】
＜実施例１＞
本実施例１は、請求項３、４に記載の構成の一例である。実施例１において参照する図９中、Ｓ１０３、Ｓ１０５は、請求項３が従属する請求項１に記載の第１の判定指標の一例であり、また、Ｓ１０７は、請求項３に記載の第２の判定指標の一例である。
【００９６】
実施例１では、まず、図８（ｃ）に示す第１のエラー判定指標に基づいて、セグメント領域の探索結果が、適正な変位位置、エラー、曖昧な変位位置に分類される。そして、この探索結果が曖昧な変位位置である場合に、さらに、図６（ａ）の第２のエラー判定指標が適用され、セグメント領域に対する変位位置の探索結果が確定される。
【００９７】
図９は、実施例１に係る処理を示すフローチャートである。この処理は、図２のＣＰＵ２１の距離取得部２１ｂの機能によって行われる。
【００９８】
図９を参照して、ＣＰＵ２１は、まず、所定のセグメント領域について、探索が完了し、値Ｒｓａｄの取得が完了したか否かを判定する（Ｓ１０１）。値Ｒｓａｄの取得が完了していない場合（Ｓ１０１：ＮＯ）、ＣＰＵ２１は、シャットダウンが行われない限り（Ｓ１０２：ＮＯ）、処理をＳ１０１に戻し、値Ｒｓａｄの取得が完了するまで処理を待機する。
【００９９】
所定のセグメント領域について、値Ｒｓａｄの取得が完了すると（Ｓ１０１：ＹＥＳ）、ＣＰＵ２１は、平均値Ａｖと最小値Ｂｔ１の比（Ａｖ／Ｂｔ１）が所定の閾値Ｔβ２以上であるか否かを判定する（Ｓ１０３）。平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ２以上である場合（Ｓ１０３：ＹＥＳ）、ＣＰＵ２１は、最小値Ｂｔ１に対応する位置を適正な変位位置と判定し、最小値Ｂｔ１の画素ずれ量に応じた距離情報をバッファメモリ２６に出力する（Ｓ１０４）。
【０１００】
平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ２未満である場合（Ｓ１０３：ＮＯ）、ＣＰＵ２１は、平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ１以上であるか否かを判定する（Ｓ１０５）。平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ１未満である場合（Ｓ１０５：ＮＯ）、ＣＰＵ２１は、セグメント領域の探索をエラーと判定し、エラー値を示す距離情報をバッファメモリ２６に出力する（Ｓ１０６）。エラー値は、たとえば、正常な距離情報と区別可能な値０が用いられる。
【０１０１】
平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ２未満であって（Ｓ１０３：ＮＯ）、所定の閾値Ｔβ１以上である場合（Ｓ１０５：ＹＥＳ）、ＣＰＵ２１は、第２のエラー判定指標を適用し、最小値Ｂｔ１が所定の閾値Ｔａ未満であるか否かを判定する（Ｓ１０７）。
【０１０２】
最小値Ｂｔ１が所定の閾値Ｔａ未満である場合（Ｓ１０７：ＹＥＳ）、ＣＰＵ２１は、最小値Ｂｔ１に対応する位置を適正な変位位置と判定し、最小値Ｂｔ１の画素ずれ量に応じた距離情報をバッファメモリ２６に出力する（Ｓ１０４）。他方、最小値Ｂｔ１が所定の閾値Ｔａ以上である場合（Ｓ１０７：ＮＯ）、ＣＰＵ２１は、セグメント領域の探索をエラーと判定し、エラー値を示す距離情報をバッファメモリ２６に出力する（Ｓ１０６）。
【０１０３】
こうして、当該セグメント領域に対する処理が終了すると、ＣＰＵ２１は、処理をＳ１０１に戻し、次のセグメント領域について距離情報の取得処理を実行する。そして、ＣＰＵ２１は、参照パターン領域に設定された全てのセグメント領域について、第１のエラー判定指標と第２のエラー判定指標に基づく処理を実行する。
【０１０４】
図１０（ａ）は、第１のエラー判定指標による分類を模式的に示す図、図１０（ｂ）は、第２のエラー判定指標による分類を模式的に示す図である。なお、図１０（ａ）、図１０（ｂ）は、図６（ｃ）、図８（ｃ）と同じ値Ｒｓａｄの分布例を示すグラフである。
【０１０５】
図１０（ａ）を参照して、第１のエラー判定指標では、たとえば、最小値Ｂｔ１が３００、閾値Ｔβ１が２．５、閾値Ｔβ２が３．５の場合、平均値Ａｖが、Ｔｃ１（７５０）以上であって、Ｔｃ２（１０５０）未満の場合に、最小値Ｂｔ１に対応する位置が曖昧な変位位置となる。たとえば、平均値Ａｖが１０００の場合、図９のＳ１０３およびＳ１０５の判定が、それぞれ、“ＮＯ”および“ＹＥＳ”となり、最小値Ｂｔ１に対応する位置が曖昧な変位位置と判定される。
【０１０６】
こうして最小値Ｂｔ１に対応する位置が曖昧な変位位置と判定されると、図１０（ｂ）に示すように、さらに第２のエラー判定指標を用いて、最小値Ｂｔ１に対する判定が行われる。たとえば、閾値Ｔａが６００である場合、最小値Ｂｔ１は、略３００であるため、図９のＳ１０７においてＹＥＳと判定され、最小値Ｂｔ１に対応する位置が適正な変位位置と判定される。
【０１０７】
このように、複数の閾値を用いた第１のエラー判定指標により曖昧な変位位置と判定された領域について、さらに、第２のエラー判定指標を適用することにより、判定の適正化が図られる。これにより、図７（ｃ）、図７（ｄ）に示した距離画像において、エラーとされるべき領域に不確かな距離値が含まれ、あるいは、物体が存在する領域にエラー値（０）が含まれることが、抑制され得る。
【０１０８】
なお、本実施例では、第１のエラー判定指標として図８（ｃ）のエラー判定指標が適用され、第２のエラー判定指標として図６（ａ）のエラー判定指標が適用されたが、たとえば、第１のエラー判定指標を図８（ｂ）のエラー判定指標に置き換える等、他のエラー判定指標の組合せが用いられても良い。ただし、図８（ａ）のエラー判定指標と図６（ａ）のエラー判定指標は、単に、閾値の数が異なるだけであり、判定指標の基本的原理は同じであるので、これらエラー判定指標の組合せは好ましいものとは言えない。すなわち、第１のエラー判定指標と第２のエラー判定指標として、異なる原理のエラー判定指標を組み合わせるのが望ましい。
【０１０９】
＜実施例１の効果＞
上記実施例１によれば、以下の効果が奏され得る。
【０１１０】
複数の閾値を用いた第１のエラー判定指標により、エラー判定を行い、曖昧な変位位置とされた領域について、第２のエラー判定指標により、さらにエラー判定を行うことによ
り、適正な距離情報を取得することができる。これにより、物体の検出精度を高めることができる。
【０１１１】
また、値Ｒｓａｄの演算結果のエラー判定指標を切り替えるだけで、曖昧な変位位置を別の指標で評価することができるため、演算量の増加を抑えつつ、適正な距離情報を取得することができる。
【０１１２】
＜実施例２＞
本実施例２は、請求項５ないし１０に記載の構成の一例である。実施例２において参照する図１１中、Ｓ１０３、Ｓ１０５は、請求項５が従属する請求項１に記載の第１の判定指標の一例であり、また、図１３および図１４は、請求項５に記載の第２の判定指標の一例である。
【０１１３】
上記実施例１では、複数の閾値を用いたエラー判定指標によって、最小値Ｂｔ１に対応する位置の属性を分類し、分類が“曖昧な変位位置”である場合に、当該分類を他のエラー判定指標で評価したが、実施例２では、対象とされるセグメント領域の周囲のセグメント領域に適用された分類に基づいて、対象とされるセグメント領域に対する分類が補正される。
【０１１４】
図１１は、実施例２の処理を示すフローチャートである。この処理は、図２のＣＰＵ２１の距離取得部２１ｂの機能によって行われる。なお、図１１は、図９と同様の処理については、同じ番号が付与されており、詳細な説明は省略する。
【０１１５】
図１１を参照して、実施例１と同様に、図８（ｃ）に示す複数の閾値を用いたエラー判定指標により、探索結果が、適正な変位位置と、曖昧な変位位置と、エラーに分類される。平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ２以上であれば（Ｓ１０３：ＹＥＳ）、上記実施例１と同様、Ｓ１０４において、最小値Ｂｔ１に基づいて取得された距離情報がバッファメモリ２６に出力される。また、平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ１未満であれば（Ｓ１０５：ＮＯ）、上記実施例１と同様、Ｓ１０６において、距離情報としてエラー値がバッファメモリ２６に出力される。
【０１１６】
さらに、本実施例２では、平均値Ａｖと最小値Ｂｔ１の比が所定の閾値Ｔβ２未満であって（Ｓ１０３：ＮＯ）、所定の閾値Ｔβ１以上である場合（Ｓ１０５：ＹＥＳ）、ＣＰＵ２１は、最小値Ｂｔ１に基づいて取得された距離情報を、バッファメモリ２６に出力する（Ｓ１０８）。
【０１１７】
加えて、本実施例２では、バッファメモリ２６に出力された各距離情報の分類が、バッファメモリ２６に保持される。ここで、距離情報の分類は、当該距離情報が、“適正な変位位置”、“曖昧な変位位置”および“エラー”の何れに基づいて取得されたものであるかを示すものである。なお、本実施例２では、“適正な変位位置”、“曖昧な変位位置”および“エラー”に基づく距離情報の値を、それぞれ、“正常値”、“曖昧値”および“エラー値”と称する。
【０１１８】
本実施例２において、バッファメモリ２６には、距離情報を保持する領域（ラインメモリ）と、各距離情報の分類を示すフラグを保持する領域が準備されている。ＣＰＵ２１は、Ｓ１０４、Ｓ１０６およびＳ１０８において、距離情報をバッファメモリ２６の対応する領域に書き込むとともに、当該距離情報の分類を示すフラグをバッファメモリ２６の対応する領域に書き込む。
【０１１９】
このようにして、複数の閾値を用いたエラー判定指標により、正常値、曖昧値、エラー
値に分類されて、距離情報の値がバッファメモリ２６に格納される。
【０１２０】
図７（ｃ）、図７（ｄ）に示す比較例の検証結果では、ドットパターンが撮像されていない天井等の領域に、エラー値の他に、種々の距離値が混在している。これらの距離値は、図６（ｃ）のエラー判定指標において、最小値Ｂｔ１と平均値Ａｖの比が閾値Ｔβと同じかこれをやや超えるために、取得されたものと考えられる。これに対し、図１１の処理フローでは、最小値Ｂｔ１と平均値Ａｖの比が閾値Ｔβをやや超えるような場合には、Ｓ１０５における判定がＹＥＳとなるため、このような距離値の多くは、曖昧値と判定されるものと想定される。
【０１２１】
また、上述したように、人物等、物体が存在する領域においても、値Ｒｓａｄの精度が低下するようなセグメント領域については、取得された距離情報が曖昧値と判定されることも起こり得る。
【０１２２】
図１２は、距離画像において、曖昧値が生じる傾向を模式的に示す図である。図１２には、３つの物体が存在する目標領域にドットパターンが照射されたときの距離画像が示されている。
【０１２３】
図１２を参照して、この例では、３つの物体について正常値が取得され、その他の領域については、エラー値が取得されている。また、３つの物体に対応する領域と、その他の領域には、それぞれ、曖昧値が含まれている。図７（ｃ）、図７（ｄ）の比較例の検証結果から、曖昧値の出現頻度は、周囲がエラー値であるところが高く、周囲が正常値であるところは低くなることが想定される。また、エラー値が周囲にある場合、曖昧値はエラー値である可能性が高く、正常値が周囲にある場合、曖昧値は正常値である可能性が高いことが想定される。
【０１２４】
そこで、実施例２では、上記傾向に基づき、曖昧値の周囲がエラー値に囲まれている場合には、曖昧値をエラー値に補正し、曖昧値の周囲が正常値に囲まれている場合には、曖昧値を正常値に補正する。また、曖昧値の周囲が正常値とエラー値に同程度に囲まれている場合には、物体と背景の境界、または、物体内である可能性があるため、曖昧値を正常値に補正する。
【０１２５】
図１３、図１４は、周囲のエラー判定結果に基づいて、曖昧値を補正する処理を示すフローチャートである。この処理は、図２のＣＰＵ２１の距離取得部２１ｂの機能によって行われる。
【０１２６】
図１３を参照して、ＣＰＵ２１は、まず、バッファメモリ２６に出力された値のバッファメモリ２６上の位置を示す変数ｋに１をセットする（Ｓ２０１）。そして、ＣＰＵ２１は、バッファメモリ２６に値が出力されたか否かを判定する（Ｓ２０２）。バッファメモリ２６に値が出力されていない場合（Ｓ２０２：ＮＯ）、ＣＰＵ２１は、シャットダウンが行われない限り（Ｓ２０３：ＮＯ）、処理をＳ２０２に戻し、バッファメモリ２６に値が出力されるまで処理を待機する。
【０１２７】
図１１のフローにおいて、所定のセグメント領域についてのエラー判定結果が完了し、バッファメモリ２６に値が出力されると（Ｓ２０２：ＹＥＳ）、ＣＰＵ２１は、バッファメモリ２６のｋ番目の格納位置に書き込まれた値が曖昧値であるか否かを判定する（Ｓ２０４）。ｋ番目の値が曖昧値でない場合（Ｓ２０４：ＮＯ）、ＣＰＵ２１は、変数ｋが１ラインの末尾を示す変数ｅであるか否かを判定する（Ｓ２０５）。変数ｅは、図４（ａ）に示すセグメント領域のＸ軸方向の数、すなわち、Ｘ軸方向の距離情報の数である。ｅには、たとえば、６４０が設定される。
【０１２８】
変数ｋが１ラインの末尾でない場合（Ｓ２０５：ＮＯ）、ＣＰＵ２１は、変数ｋに１を加算し（Ｓ２０６）、処理をＳ２０２に戻す。これにより、変数ｋが１ラインの最終位置になるまで、Ｓ２０２〜Ｓ２０６の処理が繰り返され、各格納位置に書き込まれた値が曖昧値であるか否かが判定される。変数ｋが１ラインの最終位置（ｋ＝ｅ）となった場合（Ｓ２０５：ＹＥＳ）、ＣＰＵ２１は、処理をＳ２０１に戻し、変数ｋを１にセットしてから、再度、バッファメモリ２６の値を補正する。なお、バッファメモリ２６には、１ライン分の値（例えば６４０個の値）が蓄積され、補正の処理が完了したタイミングで１ライン分の値が情報処理装置３に出力される。その後、次のラインのセグメント領域に対する距離情報の値が、再度、バッファメモリ２６の先頭（ｋ＝１）から上書きされる。
【０１２９】
バッファメモリ２６に出力されたｋ番目の値が曖昧値であった場合（Ｓ２０４：ＹＥＳ）、ＣＰＵ２１は、ｋが１であるか否かを判定する（Ｓ２１１）。これにより、曖昧値の格納位置がバッファメモリ２６の１番目であるか否かが判定される。当該曖昧値の格納位置がバッファメモリ２６の１番目であった場合（Ｓ２１１：ＹＥＳ）、ＣＰＵ２１は、ｋ番目（ｋ＝１）の曖昧値をエラー値に補正する（Ｓ２１２）。具体的には、バッファメモリ２６の１番目に格納された距離値を０に置き換える。このとき同時に、１番目に格納された値の分類が、曖昧値からエラー値に変更される。
【０１３０】
図１５（ａ）〜図１５（ｉ）は、曖昧値の補正前後のバッファメモリ２６に格納されている値の分類を概念的に示す模式図である。なお、図１５（ａ）〜図１５（ｇ）のバッファメモリ２６には、先頭から末尾まで１〜６４０の数字が添えられている。これらの数字が、図１３、図１４のフローチャートの変数ｋに相当する。
【０１３１】
図１５（ａ）を参照して、バッファメモリ２６の先頭（ｋ＝１）に曖昧値が出力された場合、適正に周囲のエラー判定結果から曖昧値を評価することができないため、曖昧値をエラー値に補正する。このような端の領域は、照射されるドットパターンの光量が小さくなり易いため、エラー値となり易い。また、通常、このような端の領域に、人物等の検出対象物体が位置付けられる可能性は低いため、このような端の領域に曖昧値が出力された場合は、曖昧値をエラー値に補正するのが望ましい。
【０１３２】
図１３に戻り、バッファメモリ２６のｋ番目の格納位置に保持された値が曖昧値であって（Ｓ２０４：ＹＥＳ）、変数ｋが１でない場合（Ｓ２１１：ＮＯ）、ＣＰＵ２１は、変数ｋが変数ｅであるか否かを判定する（Ｓ２１４）。これにより、曖昧値の格納位置がバッファメモリ２６の末尾であるか否かが判定される。変数ｋが変数ｅである場合（Ｓ２１４：ＹＥＳ）、ＣＰＵ２１は、バッファメモリ２６のｅ番目の曖昧値をエラー値に補正する（Ｓ２１５）。
【０１３３】
たとえば、図１５（ｂ）、図１５（ｃ）に示すように、バッファメモリ２６の末尾に曖昧値が格納された場合は、末尾から１つ前に格納された値が、正常値、エラー値のどちらであっても、エラー値に補正される。これは、バッファメモリ２６の末尾に曖昧値が出力された場合は、１つ前の値に対するエラー判定結果からしか曖昧値を評価することができず、適正に周囲のエラー判定結果から曖昧値を評価することができないからである。また、このような端の領域は、バッファメモリ２６の先頭（ｋ＝１）の場合と同様に、エラー値となり易いため、このような端の領域に出力された曖昧値は、エラー値に補正するのが望ましい。
【０１３４】
図１３に戻り、バッファメモリ２６のｋ番目の格納位置に保持された値が曖昧値であって（Ｓ２０４：ＹＥＳ）、変数ｋが１より大きく、変数ｅ未満の場合（Ｓ２１１：ＮＯ、Ｓ２１４：ＮＯ）、ＣＰＵ２１は、図１４のＳ２２１に処理を進める。
【０１３５】
図１４を参照して、ＣＰＵ２１は、曖昧値が連続する数をカウントするための変数ｐに１をセットする（Ｓ２２１）。そして、ＣＰＵ２１は、バッファメモリ２６のｋ＋ｐ番目の格納位置に値が出力されたか否かを判定する（Ｓ２２２）。ｋ＋ｐ番目の格納位置に値が出力されていない場合（Ｓ２２２：ＮＯ）、ＣＰＵ２１は、シャットダウンが行われない限り（Ｓ２２３：ＮＯ）、処理をＳ２２２に戻し、ｋ＋ｐ番目の格納位置に値が出力されるまで処理を待機する。たとえば、ｐ＝１の場合、処理対象の曖昧値の格納位置の次の格納位置に値が出力されるまで、処理が待機される。
【０１３６】
バッファメモリ２６のｋ＋ｐ番目の格納位置に値が出力されると（Ｓ２２２：ＹＥＳ）、ＣＰＵ２１は、ｋ＋ｐ番目の格納位置の値が曖昧値であるか否かを判定する（Ｓ２２４）。ｋ＋ｐ番目の格納位置の値が曖昧値である場合（Ｓ２２４：ＹＥＳ）、ＣＰＵ２１は、ｋ＋ｐが１ラインの末尾を示す変数ｅに等しいか否かを判定する（Ｓ２２５）。
【０１３７】
ｋ＋ｐが変数ｅに等しくない場合（Ｓ２２５：ＮＯ）、ＣＰＵ２１は、変数ｐに１を加算し（Ｓ２２６）、処理をＳ２２２に戻す。これにより、さらに次の格納位置に保持された値が曖昧値であるかが判定される（Ｓ２２４）。この格納位置に保持された値が曖昧値であれば（Ｓ２２４：ＹＥＳ）、再び、処理がＳ２２５に進められ、上記と同様の処理が行われる。こうして、曖昧値でない値が取得されるまで、参照対象の格納位置が一つずつ送られる。
【０１３８】
バッファメモリ２６のｋ＋ｐ番目に出力された値が曖昧値でない場合（Ｓ２２４：ＮＯ）、ＣＰＵ２１は、最初に曖昧値が出力されたｋ番目の格納位置の１つ前（ｋ−１番目）の格納位置の値がエラー値であるか否かを判定する（Ｓ２３１）。ｋ−１番目の値がエラー値である場合（Ｓ２３１：ＹＥＳ）、ＣＰＵ２１は、曖昧値が連続しなくなったｋ＋ｐ番目の値がエラー値であるか否かを判定する（Ｓ２３２）。
【０１３９】
ｋ−１番目の値が正常値の場合（Ｓ２３１：ＮＯ）、ＣＰＵ２１は、ｋ＋ｐ番目の値がエラー値と正常値の何れであるかにかかわらず、ｋ番目〜ｋ＋ｐ−１番目の曖昧値を、正常値に補正する（Ｓ２３３）。また、ｋ−１番目の値がエラー値であって（Ｓ２３１：ＹＥＳ）、ｋ＋ｐ番目の値が正常値の場合（Ｓ２３２：ＮＯ）も同様に、ＣＰＵ２１は、ｋ番目〜ｋ＋ｐ−１番目の曖昧値を、正常値に補正する（Ｓ２３３）。ｋ−１番目の値がエラー値であって（Ｓ２３１：ＹＥＳ）、ｋ＋ｐ番目の値もエラー値である場合（Ｓ２３２：ＹＥＳ）、ＣＰＵ２１は、ｋ番目〜ｋ＋ｐ−１番目の曖昧値を、エラー値に補正する（Ｓ２３４）。
【０１４０】
たとえば、図１５（ｄ）に示すように、１番目が正常値であって、２〜６番目が曖昧値、７番目が正常値の場合、２〜６番目の曖昧値は、正常値に補正される。また、図１５（ｅ）に示すように、１番目が正常値であって、２〜６番目が曖昧値、７番目がエラー値の場合、２〜６番目の曖昧値は、正常値に補正される。また、図１５（ｆ）に示すように、１番目がエラー値であって、２〜６番目が曖昧値、７番目が正常値の場合、２〜６番目の曖昧値は、正常値に補正される。さらに、図１５（ｇ）に示すように、１番目がエラー値であって、２〜６番目が曖昧値、７番目がエラー値の場合、２〜６番目の曖昧値は、エラー値に補正される。
【０１４１】
なお、曖昧値がエラー値に補正される場合、上記のように、対応する格納位置に出力された距離値が０に置き換えられる。このとき、同時に、当該値の分類が、曖昧値からエラー値に変更される。また、曖昧値が正常値に補正される場合、対応する格納位置に出力された距離値は変更されず、当該距離値の分類が、曖昧値から正常値に補正される。
【０１４２】
このように、図１４のＳ２３１〜Ｓ２３４の処理により、上記傾向にしたがって、前後がエラー値で挟まれた曖昧値は、エラー値に補正され、前後が正常値で挟まれた曖昧値と、前後が正常値とエラー値で挟まれた曖昧値は、正常値に補正される。
【０１４３】
図１４に戻り、Ｓ２３３またはＳ２３４の補正処理が完了すると、ＣＰＵ２１は、変数ｋに、曖昧値が連続しなくなるまでカウントアップした変数ｐと１を加算し（Ｓ２３５）、処理を図１３のＳ２０２に戻す。そして、ＣＰＵ２１は、次の格納位置に出力された値に対する処理を行う。
【０１４４】
Ｓ２２２〜Ｓ２２５の処理により１ラインの末尾まで曖昧値が連続した場合、ＣＰＵ２１は、Ｓ２４１に処理を進める。すなわち、バッファメモリ２６のｋ＋ｐ番目に出力された値が曖昧値であり（Ｓ２２４：ＹＥＳ）、ｋ＋ｐが１ラインの末尾を示す変数ｅである場合（Ｓ２２５：ＹＥＳ）、ＣＰＵ２１は、Ｓ２１５と同様に、ｅ番目の曖昧値をエラー値に補正する（Ｓ２４１）。その後、ＣＰＵ２１は、ｋ−１番目の値がエラー値であるか否かを判定する（Ｓ２４２）。ｋ−１番目の値が正常値の場合（Ｓ２４２：ＮＯ）、ＣＰＵ２１は、ｋ番目〜ｋ＋ｐ−１番目の曖昧値を、正常値に補正する（Ｓ２４３）。ｋ−１番目の値がエラー値の場合（Ｓ２４２：ＹＥＳ）、ＣＰＵ２１は、ｋ番目〜ｋ＋ｐ−１番目の曖昧値を、エラー値に補正する（Ｓ２４４）。このようにして、Ｓ２３１〜Ｓ２３４と同様の条件にしたがって、曖昧値が補正される。
【０１４５】
たとえば、図１５（ｈ）に示すように、６３１番目〜末尾まで曖昧値が連続し、６３０番目の値が正常値の場合、末尾（６４０番目）の曖昧値はエラー値に補正され、６３１〜６３９番目の曖昧値は正常値に補正される。また、図１５（ｉ）に示すように、６３１番目〜末尾まで曖昧値が連続し、６３０番目がエラー値の場合、６３１番目〜末尾（６４０番目）の曖昧値は、エラー値に補正される。
【０１４６】
図１４に戻り、Ｓ２４３またはＳ２４４の補正処理が完了すると、ＣＰＵ２１は、処理を図１３のＳ２０１に戻す。そして、ＣＰＵ２１は、変数ｋを１に戻し（Ｓ２０１）、次の値がバッファメモリ２６に出力されるまで、処理を待機する（Ｓ２０２：ＮＯ）。
【０１４７】
このようにして、バッファメモリ２６に出力された曖昧値が、周囲のエラー判定結果に基づいて、正常値、またはエラー値に補正される。
【０１４８】
図１６（ａ）、図１６（ｂ）は、本実施例２の曖昧値の補正処理を行って距離検出を行った検証結果を示す図である。図１６（ａ）、図１６（ｂ）は、検証結果の距離画像を示す図である。なお、本検証に用いた実測画像、および、セグメント領域の大きさ、探索範囲は、図７（ｃ）、図７（ｄ）の比較例の場合と同様である。
【０１４９】
図７（ｃ）、図７（ｄ）に示す比較例の場合、天井等の背景の部分や極短に近付けた手の部分等、一様にエラー値となるべき領域についても、種々の距離値が取得されていた。他方、本実施例２の検証結果では、図１６（ａ）の天井等の背景の部分と、図１６（ｂ）の手の部分が、略一様に黒となっており、比較例において誤って取得された距離値の多くが、適正にエラー値に修正されていることがわかる。また、人物等の部分については、適正に正常値が取得されている。
【０１５０】
このように、本実施例２では、上記傾向をもとに、複数の閾値を用いて曖昧値を判定し、曖昧値について、周囲のエラー判定結果に基づいて、補正を行うことにより、背景等、エラー値が連続する領域では、適正にエラー値が取得され、人物等、物体の距離情報が連続する領域については、適正に距離値が取得される。したがって、物体検出の精度を高めることができる。
【０１５１】
さらに、図１６（ａ）、図１６（ｂ）に示す距離画像では、図７（ｃ）、図７（ｄ）に示す距離画像と比較すると、人物の輪郭の精鋭さも、ほぼ遜色なく得られていることがわかる。したがって、本実施例２では、曖昧値を周囲のエラー判定結果に基づいて補正しても、人物の輪郭抽出精度を適正に保つことができる。
【０１５２】
また、本実施例２の補正処理は、横方向の１ライン単位で曖昧値の補正処理を行うため、バッファメモリ２６は、距離情報の値を保持するために少なくとも１ラインのラインメモリを有していれば良い。したがって、情報取得装置２のハードウェアリソースを増大させることなく、曖昧値の補正処理を行うことができる。なお、横方向の１ライン単位でのみ曖昧値の補正処理を行ったとしても、図１６（ａ）、図１６（ｂ）に示すように、不確かな距離情報を効果的に抑制することができる。
【０１５３】
＜実施例２の効果＞
上記実施例２によれば、以下の効果が奏され得る。
【０１５４】
複数の閾値を用いたエラー判定指標により抽出された曖昧値を、周囲のエラー判定結果に基づき補正することにより、距離情報の適正化を図ることができる。これにより、物体検出の精度を高めることができる。
【０１５５】
また、横方向の１ライン単位で曖昧値の補正処理を行うため、ハードウェアリソースの増大を抑えつつ、適正に曖昧値の補正処理を行うことができる。
【０１５６】
なお、本実施例２では、図８（ｃ）のエラー判定指標に基づいて、図１１の処理フローにより、曖昧値の判定が行われたが、図８（ａ）、（ｂ）のエラー判定指標に基づいて、曖昧値の判定が行われても良い。
【０１５７】
以上、本発明の実施の形態について説明したが、本発明は、上記実施の形態に何ら制限されるものではなく、また、本発明の実施の形態も上記の他に種々の変更が可能である。
【０１５８】
たとえば、上記実施の形態では、バッファメモリ２６は、距離情報の値を保持するために１ライン分のラインメモリを用いたが、複数のラインメモリ、または、フレーム単位で距離情報の値を保持するフレームメモリを用いても良い。この場合、情報取得装置２で生成された距離画像は、１フレームごとに、情報処理装置３に出力される。なお、１フレームとは、距離画像１枚の単位である。
【０１５９】
このような場合、図１５（ａ）、図１５（ｂ）に示すように、横方向の１ライン単位で曖昧値の補正処理を行った後、さらに、メディアンフィルタ等のノイズ除去フィルタを適用して、距離画像を生成するようにしても良い。
【０１６０】
図１７（ａ）、図１７（ｂ）は、５画素×５画素の領域に分割して、メディアンフィルタをかける場合の補正例、図１７（ｃ）、図１７（ｄ）は、図１６（ａ）、図１６（ｂ）の検証結果に対して、さらに、５画素×５画素のメディアンフィルタを適用した場合の検証結果の距離画像を示す図である。
【０１６１】
図１７（ａ）は、図１３、図１４の処理フローによって、曖昧値の補正が行われた後の、バッファメモリ２６に格納された画素値（距離値）の例を示す図である。
【０１６２】
上記のようにして曖昧値の補正が行われ、１フレーム分の距離画像の値がバッファメモリ２６に蓄積されると、情報取得装置２のＣＰＵ２１は、バッファメモリ２６上の距離画
像を５画素×５画素の領域に分割し、中央の注目画素を、この領域内における中央値に置き換える。たとえば、図１７（ａ）の場合、領域内には、０、１０、３０、１００、１１０の値が格納されているため、中央の注目画素の画素値は、図１７（ｂ）に示すように、３０に置き換えられる。同様にして、全ての画素について、メディアンフィルタを適用することにより、図１７（ｃ）、図１７（ｄ）に示す距離画像が生成される。図１７（ａ）の例では、全ての数値を昇順に並べてその中央値（１３番目の数値）をとると１００になる。
【０１６３】
図１６（ａ）、図１６（ｂ）の検証結果では、横方向のエラー判定結果にのみ基づいて、曖昧値が補正されるため、人物の輪郭等に若干横方向のノイズが生じている。他方、図１７（ｃ）、図１７（ｄ）では、人物の輪郭等の部分においても、適正にノイズが除去できていることがわかる。
【０１６４】
このように、バッファメモリ２６として、複数のラインメモリ、または、フレームメモリが用いられる場合は、上記実施例２の曖昧値の補正処理に加え、メディアンフィルタ等のノイズ除去フィルタを適用することにより、不適正な距離情報をさらに抑制することができる。これにより、物体検出の精度をさらに高めることができる。
【０１６５】
なお、ノイズ除去フィルタは、メディアンフィルタの他、種々のものが用いられ得る。たとえば、最頻値フィルタを用いる場合、図１７（ａ）の中央の注目画素は、領域内で最も出現頻度の高い０に補正される。
【０１６６】
また、バッファメモリ２６に、フレームメモリ等が用いられる場合、たとえば、曖昧値が正常値とエラー値に囲まれた場合、正常値として扱わず、さらに、縦方向のエラー判定結果に応じて、曖昧値を補正しても良い。
【０１６７】
図１８（ａ）、図１８（ｂ）は、この場合の曖昧値補正処理の流れを示すフローチャートである。この処理は、図２のＣＰＵ２１の距離取得部２１ｂの機能によって行われる。なお、図１８（ｂ）は、図１４のフローチャートを一部変更するものであり、変更のない処理については、同一の番号が付与されている。
【０１６８】
なお、図１８に示す処理フローは、請求項５ないし１０に記載の構成の他の一例である。
【０１６９】
図１８（ａ）を参照して、ＣＰＵ２１は、まず、バッファメモリ２６に１フレーム分の距離情報の値（正常値、曖昧値、エラー値）が出力されたか否かを判定する（Ｓ３０１）。バッファメモリ２６に１フレーム分の値が出力されると（Ｓ３０１：ＹＥＳ）、ＣＰＵ２１は、横方向のラインの位置を示す変数ｒに１をセットする（Ｓ３０３）。そして、ＣＰＵ２１は、ｒライン目について、上記実施例２で説明したように横方向の曖昧値補正処理を行う（Ｓ３０４）。
【０１７０】
なお、図１４に示すように、上記実施例２では、ｋ−１番目の値がエラー値であって（Ｓ２３１：ＹＥＳ）、ｋ＋ｐ番目の値が正常値の場合（Ｓ２３２：ＮＯ）、ＣＰＵ２１は、処理をＳ２３３に進め、曖昧値を正常値と補正したが、本変更例では、図１８（ｂ）に示すように、ｋ−１番目の値がエラー値であって（Ｓ２３１：ＹＥＳ）、ｋ＋ｐ番目の値が正常値の場合（Ｓ２５１：ＮＯ）、ＣＰＵ２１は、曖昧値を補正せずに、処理をＳ２３５に進める。また、同様に、図１４のＳ２４２において、ＮＯと判定された場合も、曖昧値を補正せず、処理をＳ２０１に戻す。このように本変更例では、横方向の曖昧値補正処理で、正常値とエラー値に挟まれた曖昧値は、補正されない。
【０１７１】
図１８（ａ）に戻り、ＣＰＵ２１は、横方向の曖昧値補正処理で曖昧値を補正しなかった値があるか否かを判定する（Ｓ３０５）。横方向の曖昧値補正処理で曖昧値を補正しなかった値がある場合（Ｓ３０５：ＹＥＳ）、ＣＰＵ２１は、さらに、ｒライン目の曖昧値について、縦方向の曖昧値補正処理を行う（Ｓ３０６）。なお、縦方向の曖昧値補正処理は、図１３、図１４のフローチャートに示した横方向の曖昧値補正処理と同様のルールに従って行われるため、詳細な説明は省略する。
【０１７２】
たとえば、図１８（ｃ）に示すように、ｒライン目に正常値とエラー値に囲まれた曖昧値がある場合において、縦方向に正常値で囲まれる場合、この曖昧値は、正常値に補正される。
【０１７３】
ｒライン目の縦方向の曖昧値補正処理が完了すると、ＣＰＵ２１は、変数ｒが最終ラインを示す変数Ｌであるかを判定する（Ｓ３０７）。最終ラインでない場合（Ｓ３０７：ＮＯ）、ＣＰＵ２１は、変数ｒに１を加算し（Ｓ３０８）、処理をＳ３０４に戻す。これにより次のラインについて、横方向および縦方向の曖昧値補正処理が行われる。そして、最終ラインまで曖昧値補正処理が完了すると（Ｓ３０７：ＹＥＳ）、ＣＰＵ２１は、処理をＳ３０１に戻し、次のフレームが出力されるまで処理を待機する。
【０１７４】
このようにして、１フレームごとに、横方向および縦方向の曖昧値補正処理が行われる。
【０１７５】
本変更例の場合、横だけでなく、縦のエラー判定結果を考慮して曖昧値が補正されるため、より精度よく曖昧値が補正される。したがって、この場合、図１６（ａ）、図１６（ｂ）に示される横方向のノイズは軽減されるものと想定される。
【０１７６】
なお、本変更例では、横方向と縦方向のエラー判定結果に基づいて、曖昧値を補正したが、図１９（ａ）に示すように、斜め方向のエラー判定結果に基づいて、曖昧値補正しても良いし、さらには、図１９（ｂ）に示すように、曖昧値を中心として、領域を分割し、領域内のエラー判定結果に基づいて、曖昧値を補正しても良い。図１９（ｂ）の場合、たとえば、曖昧値は、領域内に最も頻度が高い分類に補正するようにしても良い。その場合、図１９（ｂ）の例では、曖昧値は、正常値に補正される。
【０１７７】
また、上記実施例１、２では、図８（ａ）〜図８（ｃ）に示すように、２つの閾値を用いて、曖昧値を判定したが、たとえば、図１９（ｃ）に示すように、３つの閾値を用いても良いし、さらには、４つ以上の閾値が用いられても良い。
【０１７８】
この場合、値Ｒｓａｄによって得られる距離情報の適正さをより細やかに区分することができる。たとえば、図１９（ｃ）のように３つの閾値を用いる場合、曖昧さの度合いを２つのレベルに区分することができ、曖昧さの度合いに応じて、曖昧値に対する処理を変えても良い。たとえば、図１５（ｅ）や図１５（ｆ）のように、曖昧値が正常値とエラー値に挟まれている場合、当該曖昧値が図１９（ｃ）の曖昧値Ａであれば、エラー値である確率が高いとして、曖昧値をエラー値に補正し、当該曖昧値が図１９（ｃ）の曖昧値Ｂであれば、正常値である確率が高いとして、曖昧値を正常値に補正しても良い。また、曖昧さの度合いに応じて、上記実施例１や実施例２の処理を振り分けても良い。たとえば、エラー値に近い曖昧値Ａの領域については、図１８に示した横方向と縦方向を考慮した曖昧値補正処理が行われ、正常値に近い曖昧値Ｂの領域については、図１３、図１４に示した横方向のみを考慮した曖昧値補正処理が行われても良い。この他、曖昧値と判定された領域に対して、種々の処理を適用することができ、たとえば、曖昧値のみを、ノイズ除去等の所定のフィルタ処理を適用しても良い。
【０１７９】
また、上記実施例１、２では、図８（ｃ）のエラー判定指標によって、曖昧値を判定したが、図８（ａ）、図８（ｂ）のエラー判定指標によって、曖昧値を判定しても良い。また、上記実施例１では、図８（ｃ）のエラー判定指標によって、曖昧値を判定した後、図６（ａ）のエラー判定指標が用いられたが、図６（ｂ）のエラー判定指標が用いても良い。さらには、図８（ｃ）のエラー判定指標の後、さらに、図８（ｂ）のエラー判定指標を適用し、その後、図６（ａ）のエラー判定指標が適用されても良い。その他、複数の閾値を用いて、曖昧値を判定できれば、どのようなエラー判定指標が用いられても良い。
【０１８０】
また、上記実施の形態では、ドットパターンのマッチング度合いを算出するために、図５（ｃ）に示す差分値の絶対値の総和の値ＳＡＤ（Sum of Absolute Difference）を用いたが、これに替えて、差分値の２乗の総和の値ＳＳＤ（Sum of Squared Difference）を用いても良い。
【０１８１】
また、上記実施の形態では、隣り合うセグメント領域が互いに重なるように、セグメント領域が設定されたが、左右に隣り合うセグメント領域が、互いに重ならなくても良く、また、上下に隣り合うセグメント領域が、互いに重ならなくても良い。また、上下左右に隣り合うセグメント領域のずれ量は、１画素に限られるものではなく、ずれ量が他の画素数に設定されても良い。さらに、上記実施の形態では、セグメント領域は、正方形状に設定されたが、長方形であっても良い。
【０１８２】
また、上記実施の形態では、セグメント領域と比較領域のマッチング率を算出する前に、セグメント領域と比較領域に含まれる画素の画素値を０〜１２の階調に減少したが、さらに階調を減少して２値化しても良いし、ＣＭＯＳイメージセンサ２４０によって得られた画素値をそのまま用いて、マッチングしても良い。
【０１８３】
また、上記実施の形態では、三角測量法を用いて距離情報が求められ、メモリ２５に記憶されたが、三角測量法による演算なしに、セグメント領域の変位量（画素ずれ量）を距離情報として取得しても良く、他の手法で距離情報を取得しても良い。
【０１８４】
また、上記実施の形態では、目標領域に照射されるレーザ光の波長帯以外の波長帯の光を除去するためにフィルタ２３０を配したが、たとえば、目標領域に照射されるレーザ光以外の光の信号成分を、ＣＭＯＳイメージセンサ２４０から出力される信号から除去する回路構成が配されるような場合には、フィルタ２３０が省略され得る。  また、上記実施の形態では、受光素子として、ＣＭＯＳイメージセンサ２４０を用いたが、これに替えて、ＣＣＤイメージセンサを用いることもできる。さらに、投射光学系１００および受光光学系２００の構成も、適宜変更可能である。また、右手を用いたテレビ等の制御入力以外の情報取得形態にも、本発明は適用可能である。
【０１８５】
本発明の実施の形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。
【符号の説明】
【０１８６】
１  …  物体検出装置
２  …  情報取得装置
２１ｂ  …  距離取得部
２３  …  撮像信号処理回路（距離取得部）
３  …  情報処理装置
３１ａ  …  物体検出部
１００  …  投射光学系
１１０  …  レーザ光源
２００  …  受光光学系
２４０  …  ＣＭＯＳイメージセンサ（イメージセンサ）
【図１】
2014025804.tif 000003
【図２】
2014025804.tif 000004
【図３】
2014025804.tif 000005
【図４】
2014025804.tif 000006
【図５】
2014025804.tif 000007
【図６】
2014025804.tif 000008
【図８】
2014025804.tif 000009
【図９】
2014025804.tif 000010
【図１０】
2014025804.tif 000011
【図１１】
2014025804.tif 000012
【図１２】
2014025804.tif 000013
【図１３】
2014025804.tif 000014
【図１４】
2014025804.tif 000015
【図１５】
2014025804.tif 000016
【図１８】
2014025804.tif 000017
【図１９】
2014025804.tif 000018
【図７】
2014025804.tif 000019
【図１６】
2014025804.tif 000020
【図１７】
2014025804.tif 000021