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