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