JP2013234957A - 情報取得装置および物体検出装置 - Google Patents
情報取得装置および物体検出装置 Download PDFInfo
- Publication number
- JP2013234957A JP2013234957A JP2012108783A JP2012108783A JP2013234957A JP 2013234957 A JP2013234957 A JP 2013234957A JP 2012108783 A JP2012108783 A JP 2012108783A JP 2012108783 A JP2012108783 A JP 2012108783A JP 2013234957 A JP2013234957 A JP 2013234957A
- Authority
- JP
- Japan
- Prior art keywords
- distance
- search range
- information
- area
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】演算量を抑えつつ、効率的に距離情報を取得可能な情報取得装置およびこれを搭載する物体検出装置を提供する。
【解決手段】情報取得装置は、レーザ光を所定のドットパターンで目標領域に投射する投射光学系100と、目標領域をCMOSイメージセンサにより撮像する受光光学系200と、基準画像に基づく参照テンプレートを保持するメモリと、基準画像に割り当てられたセグメント領域の、実測画像上における移動位置に基づいて、セグメント領域に対する距離情報を取得する距離取得部と、を備える。メモリは、既に探索がなされたセグメント領域Sl、Suの移動位置に関する距離情報テーブルを保持し、距離取得部は、メモリに記憶された距離情報テーブルに基づいて、所定幅の探索範囲L0に代えて、探索範囲L0よりも短い探索範囲Ll、Luを設定する。
【選択図】図9
【解決手段】情報取得装置は、レーザ光を所定のドットパターンで目標領域に投射する投射光学系100と、目標領域をCMOSイメージセンサにより撮像する受光光学系200と、基準画像に基づく参照テンプレートを保持するメモリと、基準画像に割り当てられたセグメント領域の、実測画像上における移動位置に基づいて、セグメント領域に対する距離情報を取得する距離取得部と、を備える。メモリは、既に探索がなされたセグメント領域Sl、Suの移動位置に関する距離情報テーブルを保持し、距離取得部は、メモリに記憶された距離情報テーブルに基づいて、所定幅の探索範囲L0に代えて、探索範囲L0よりも短い探索範囲Ll、Luを設定する。
【選択図】図9
Description
本発明は、目標領域に光を投射したときの反射光の状態に基づいて目標領域内の物体を検出する物体検出装置および当該物体検出装置に用いて好適な情報取得装置に関する。
従来、光を用いた物体検出装置が種々の分野で開発されている。いわゆる距離画像センサを用いた物体検出装置では、2次元平面上の平面的な画像のみならず、検出対象物体の奥行き方向の形状や動きを検出することができる。かかる物体検出装置では、レーザ光源やLED(Light Emitting Diode)から、予め決められた波長帯域の光が目標領域に投射され、その反射光がCMOSイメージセンサ等の受光素子により受光される。距離画像センサとして、種々のタイプのものが知られている。
所定のドットパターンを持つレーザ光を目標領域に照射するタイプの距離画像センサでは、ドットパターンを持つレーザ光の目標領域からの反射光が受光素子によって受光される。そして、ドットの受光素子上の受光位置に基づいて、三角測量法を用いて、検出対象物体の各部(検出対象物体上の各ドットの照射位置)までの距離が検出される(たとえば、特許文献1、非特許文献1)。
第19回日本ロボット学会学術講演会(2001年9月18−20日)予稿集、P1279−1280
上記物体検出装置では、所定距離だけ離れた位置に基準面を配したときにイメージセンサにより撮像されるドットパターンと、実測時にイメージセンサにより撮像されるドットパターンとが比較されて、距離の検出が行われる。たとえば、基準面に対するドットパターンに複数の領域が設定される。物体検出装置は、各領域に含まれるドットが実測時に撮像したドットパターン上のどの位置に移動したかに基づいて、領域毎に、対象物体までの距離を検出する。すなわち、各領域に含まれるドットと、実測時に撮像したドットパターンとを所定の探索範囲内において照合し、当該探索範囲内において最もマッチングが得られた位置が、各領域の移動位置とされる。
この場合、実測時に撮像したドットパターン上における、各領域の探索範囲は、たとえば、検出しようとする前後方向の距離の範囲に応じて設定される。すなわち、予め設定された距離検出の範囲において、対象物体が最も近づいた位置から最も遠ざかった位置へと移動したときに、実測時のドットパターン上において各領域が移動する範囲が、各領域の探索範囲に設定される。この場合、各領域の探索範囲は、比較的広くなる。したがって、このように設定された探索範囲をもって全ての領域の移動位置を探索すると、距離検出にかかる演算量が増大するとの問題が生じる。
本発明は、この点に鑑みてなされたものであり、演算量を抑えつつ、効率的に距離情報を取得可能な情報取得装置および物体検出装置を提供することを目的とする。
本発明の第1の態様は、光を用いて目標領域の情報を取得する情報取得装置に関する。本態様に係る情報取得装置は、レーザ光源から出射されたレーザ光を所定のドットパターンで目標領域に投射する投射光学系と、前記投射光学系に対して所定の距離だけ横に離れて並ぶように配置され、前記目標領域をイメージセンサにより撮像する受光光学系と、基準面に前記レーザ光を照射したときに前記受光光学系により撮像された基準ドットパターンに基づく参照情報を保持する記憶部と、実測時に前記イメージセンサにより撮像された実測ドットパターンに基づく実測情報と前記参照情報とを参照し、所定の探索範囲において、前記基準ドットパターンに割り当てられた参照領域の、前記実測ドットパターン上における移動位置の探索を実行し、探索された前記移動位置に基づいて、当該参照領域に対する距離情報を取得する距離取得部と、を備える。前記記憶部は、既に探索がなされた参照領域の前記移動位置に関する情報を保持し、前記距離取得部は、前記記憶部に記憶された情報に基づいて、前記探索のための前記探索範囲として、所定幅の第1探索範囲に代えて、前記第1探索範囲よりも短い第2探索範囲を設定する。
本発明の第2の態様は、物体検出装置に関する。本態様に係る物体検出装置は、上記第1の態様に係る情報取得装置を有する。
本発明によれば、演算量を抑えつつ、効率的に距離情報を取得可能な情報取得装置およびこれを搭載する物体検出装置を提供することができる。
本発明の効果ないし意義は、以下に示す実施の形態の説明により更に明らかとなろう。ただし、以下に示す実施の形態は、あくまでも、本発明を実施化する際の一つの例示であって、本発明は、以下の実施の形態により何ら制限されるものではない。
以下、本発明の実施の形態につき図面を参照して説明する。本実施の形態には、所定のドットパターンを持つレーザ光を目標領域に照射するタイプの情報取得装置が例示されている。
まず、図1に本実施の形態に係る物体検出装置の概略構成を示す。図示の如く、物体検出装置は、情報取得装置1と、情報処理装置2とを備えている。テレビ3は、情報処理装置2からの信号によって制御される。
情報取得装置1は、目標領域全体に赤外光を投射し、その反射光をCMOSイメージセンサにて受光することにより、目標領域にある物体各部の距離(以下、「3次元距離情報」という)を取得する。取得された3次元距離情報は、ケーブル4を介して情報処理装置2に送られる。
情報処理装置2は、たとえば、テレビ制御用のコントローラやゲーム機、パーソナルコンピュータ等である。情報処理装置2は、情報取得装置1から受信した3次元距離情報に基づき、目標領域における物体を検出し、検出結果に基づきテレビ3を制御する。
たとえば、情報処理装置2は、受信した3次元距離情報に基づき人を検出するとともに、3次元距離情報の変化から、その人の動きを検出する。たとえば、情報処理装置2がテレビ制御用のコントローラである場合、情報処理装置2には、受信した3次元距離情報からその人のジェスチャを検出するとともに、ジェスチャに応じてテレビ3に制御信号を出力するアプリケーションプログラムがインストールされている。この場合、ユーザは、テレビ3を見ながら所定のジェスチャをすることにより、チャンネル切り替えやボリュームのUp/Down等、所定の機能をテレビ3に実行させることができる。
また、たとえば、情報処理装置2がゲーム機である場合、情報処理装置2には、受信した3次元距離情報からその人の動きを検出するとともに、検出した動きに応じてテレビ画面上のキャラクタを動作させ、ゲームの対戦状況を変化させるアプリケーションプログラムがインストールされている。この場合、ユーザは、テレビ3を見ながら所定の動きをすることにより、自身がテレビ画面上のキャラクタとしてゲームの対戦を行う臨場感を味わうことができる。
図2は、情報取得装置1と情報処理装置2の構成を示す図である。
情報取得装置1は、光学部の構成として、投射光学系100と受光光学系200とを備えている。投射光学系100と受光光学系200は、X軸方向に並ぶように、情報取得装置1に配置される。
投射光学系100は、レーザ光源110と、コリメータレンズ120と、ミラー130と、回折光学素子(DOE:Diffractive Optical Element)140を備えている。また、受光光学系200は、アパーチャ210と、撮像レンズ220と、フィルタ230と、CMOSイメージセンサ240とを備えている。この他、情報取得装置1は、回路部の構成として、CPU(Central Processing Unit)21と、レーザ駆動回路22と、撮像信号処理回路23と、入出力回路24と、メモリ25を備えている。
レーザ光源110は、受光光学系200から離れる方向(X軸負方向)に波長830nm程度の狭波長帯域のレーザ光を出力する。コリメータレンズ120は、レーザ光源110から出射されたレーザ光を平行光から僅かに広がった光(以下、単に「平行光」という)に変換する。
ミラー130は、コリメータレンズ120側から入射されたレーザ光をDOE140に向かう方向(Z軸方向)に反射する。
DOE140は、入射面に回折パターンを有する。この回折パターンによる回折作用により、DOE140に入射したレーザ光は、所定のドットパターンのレーザ光に変換されて、目標領域に照射される。
DOE140の回折パターンは、たとえば、ステップ型の回折ホログラムが所定のパターンで形成された構造とされる。回折ホログラムは、コリメータレンズ120により平行光とされたレーザ光をドットパターンのレーザ光に変換するよう、パターンとピッチが調整されている。
DOE140は、ミラー130から入射されたレーザ光を、放射状に広がるドットパターンのレーザ光として、目標領域に照射する。ドットパターンの各ドットの大きさは、DOE140に入射する際のレーザ光のビームサイズに応じたものとなる。
目標領域から反射されたレーザ光は、アパーチャ210を介して撮像レンズ220に入射する。
アパーチャ210は、撮像レンズ220のFナンバーに合うように、外部からの光に絞りを掛ける。撮像レンズ220は、アパーチャ210を介して入射された光をCMOSイメージセンサ240上に集光する。フィルタ230は、レーザ光源110の出射波長(830nm程度)を含む赤外の波長帯域の光を透過し、可視光の波長帯域をカットするIRフィルタ(Infrared Filter)である。
CMOSイメージセンサ240は、撮像レンズ220にて集光された光を受光して、画素毎に、受光量に応じた信号(電荷)を撮像信号処理回路23に出力する。ここで、CMOSイメージセンサ240は、各画素における受光から高レスポンスでその画素の信号(電荷)を撮像信号処理回路23に出力できるよう、信号の出力速度が高速化されている。
CPU21は、メモリ25に格納された制御プログラムに従って各部を制御する。かかる制御プログラムによって、CPU21には、レーザ光源110を制御するためのレーザ制御部21aと、3次元距離情報を生成するための距離取得部21bと、距離取得部21bによって3次元距離情報を生成するための探索範囲を補正する探索範囲補正部21cの機能が付与される。
レーザ駆動回路22は、CPU21からの制御信号に応じてレーザ光源110を駆動する。
撮像信号処理回路23は、CMOSイメージセンサ240を制御して、CMOSイメージセンサ240で生成された各画素の信号(電荷)をライン毎に順次取り込む。そして、取り込んだ信号を順次CPU21に出力する。CPU21は、撮像信号処理回路23から供給される信号(撮像信号)をもとに、情報取得装置1から検出対象物の各部までの距離を、距離取得部21bによる処理によって算出する。また、この際、CPU21は、メモリ25に記憶された距離情報テーブルTの距離取得結果に応じて、距離を算出するための探索範囲を、探索範囲補正部21cによる処理によって補正して探索を実行する。入出力回路24は、情報処理装置2とのデータ通信を制御する。
情報処理装置2は、CPU31と、入出力回路32と、メモリ33を備えている。なお、情報処理装置2には、同図に示す構成の他、テレビ3との通信を行うための構成や、CD−ROM等の外部メモリに格納された情報を読み取ってメモリ33にインストールするためのドライブ装置等が配されるが、便宜上、これら周辺回路の構成は図示省略されている。
CPU31は、メモリ33に格納された制御プログラム(アプリケーションプログラム)に従って各部を制御する。かかる制御プログラムによって、CPU31には、画像中の物体を検出するための物体検出部31aの機能が付与される。かかる制御プログラムは、
たとえば、図示しないドライブ装置によってCD−ROMから読み取られ、メモリ33にインストールされる。
たとえば、図示しないドライブ装置によってCD−ROMから読み取られ、メモリ33にインストールされる。
たとえば、制御プログラムがゲームプログラムである場合、物体検出部31aは、情報取得装置1から供給される3次元距離情報から画像中の人およびその動きを検出する。そして、検出された動きに応じてテレビ画面上のキャラクタを動作させるための処理が制御プログラムにより実行される。
また、制御プログラムがテレビ3の機能を制御するためのプログラムである場合、物体検出部31aは、情報取得装置1から供給される3次元距離情報から画像中の人およびその動き(ジェスチャ)を検出する。そして、検出された動き(ジェスチャ)に応じて、テレビ3の機能(チャンネル切り替えやボリューム調整、等)を制御するための処理が制御プログラムにより実行される。
入出力回路32は、情報取得装置1とのデータ通信を制御する。
投射光学系100と受光光学系200は、投射光学系100の投射中心と受光光学系200の撮像中心がX軸に平行な直線上に並ぶように、X軸方向に所定の距離をもって並んで設置される。
投射光学系100と受光光学系200の設置間隔は、情報取得装置1と目標領域の基準面との距離に応じて、設定される。どの程度離れた目標物を検出対象とするかによって、基準面と情報取得装置1との間の距離が変わる。検出対象の目標物までの距離が近くなるほど、投射光学系100と受光光学系200の設置間隔は狭くなる。逆に、検出対象の目標物までの距離が遠くなるほど、投射光学系100と受光光学系200の設置間隔は広くなる。
図3(a)は、目標領域に対するレーザ光の照射状態を模式的に示す図、図3(b)は、CMOSイメージセンサ240におけるレーザ光の受光状態を模式的に示す図である。なお、図3(b)には、便宜上、目標領域に平坦な面(スクリーン)とスクリーンの前に人物が存在するときの受光状態が示されている。
図3(a)に示すように、投射光学系100からは、ドットパターンを持ったレーザ光(以下、このパターンを持つレーザ光の全体を「DP光」という)が、目標領域に照射される。図3(a)には、DP光の光束領域が実線の枠によって示されている。DP光の光束中には、DOE140による回折作用により生成されるドット領域(以下、単に「ドット」という)が、DOE140による回折作用によるドットパターンに従って点在している。
目標領域に平坦な面(スクリーン)が存在すると、これにより反射されたDP光は、図3(b)のように、CMOSイメージセンサ240上に分布する。
図3(b)には、CMOSイメージセンサ240上のDP光の全受光領域が破線の枠によって示され、CMOSイメージセンサ240の撮像有効領域に入射するDP光の受光領域が実線の枠によって示されている。CMOSイメージセンサ240の撮像有効領域は、CMOSイメージセンサ240がDP光を受光した領域のうち、センサとして信号を出力する領域であり、たとえば、VGA(横640画素×縦480画素)のサイズである。また、同図(a)に示す目標領域上におけるDt0の光は、CMOSイメージセンサ240上では、同図(b)に示すDt’0の位置に入射する。スクリーンの前の人物の像は、CMOSイメージセンサ240上では、上下左右が反転して撮像される。
ここで、図4、図5を参照して、上記距離検出の方法を説明する。
図4は、上記距離検出手法に用いられる参照パターンの設定方法を説明する図である。
図4(a)に示すように、投射光学系100から所定の距離Lsの位置に、Z軸方向に垂直な平坦な反射平面RSが配置される。出射されたDP光は、反射平面RSによって反射され、受光光学系200のCMOSイメージセンサ240に入射する。これにより、CMOSイメージセンサ240から、撮像有効領域内の画素毎の電気信号が出力される。出力された画素毎の電気信号の値(画素値)は、図2のメモリ25上に展開される。
以下、反射面RSからの反射によって得られた全画素値からなる画像を、「基準画像」、反射面RSを「基準面」と称する。そして、図4(b)に示すように、基準画像上に、「参照パターン領域」が設定される。なお、図4(b)には、CMOSイメージセンサ240の背面側から受光面をZ軸正方向に透視した状態が図示されている。図5以降の図においても同様である。
こうして設定された参照パターン領域に対して、所定の大きさを有する複数のセグメント領域が設定される。セグメント領域の大きさは、得られる距離情報による物体の輪郭抽出精度、CPU21に対する距離検出の演算量の負荷および後述する距離検出手法によるエラー発生率を考慮して決定される。本実施の形態では、セグメント領域の大きさは、横15画素×縦15画素に設定される。
図4(c)を参照して、参照パターン領域に設定されるセグメント領域について説明する。なお、図4(c)には、便宜上、各セグメント領域の大きさが横9画素×縦9画素で示され、各セグメント領域の中央の画素が×印で示されている。
セグメント領域は、図4(c)に示すように、隣り合うセグメント領域が参照パターン領域に対してX軸方向およびY軸方向に1画素間隔で並ぶように設定される。すなわち、あるセグメント領域は、このセグメント領域のX軸方向およびY軸方向に隣り合うセグメント領域に対して1画素ずれた位置に設定される。このとき、各セグメント領域には、固有のパターンでドットが点在する。よって、セグメント領域内の画素値のパターンは、セグメント領域毎に異なっている。隣り合うセグメント領域の間隔が狭いほど、参照パターン領域内に含まれるセグメント領域の数が多くなり、目標領域の面内方向(X−Y平面方向)における距離検出の分解能が高められる。
こうして、CMOSイメージセンサ240上における参照パターン領域の位置に関する情報と、参照パターン領域に含まれる全画素の画素値(参照パターン)と、参照パターン領域に対して設定されるセグメント領域の情報が、図2のメモリ25に記憶される。メモリ25に記憶されるこれらの情報を、以下、「参照テンプレート」と称する。
図2のCPU21は、投射光学系100から検出対象物体の各部までの距離を算出する際に、参照テンプレートを参照する。CPU21は、距離を算出する際に、参照テンプレートから得られる各セグメント領域内のドットパターンのずれ量に基づいて、物体の各部までの距離を算出する。
たとえば、図4(a)に示すように距離Lsよりも近い位置に物体がある場合、参照パターン上の所定のセグメント領域Snに対応するDP光(DPn)は、物体によって反射され、セグメント領域Snとは異なる領域Sn’に入射する。投射光学系100と受光光学系200はX軸方向に隣り合っているため、セグメント領域Snに対する領域Sn’の
変位方向はX軸に平行となる。図4(a)の場合、物体が距離Lsよりも近い位置にあるため、領域Sn’は、セグメント領域Snに対してX軸正方向に変位する。物体が距離Lsよりも遠い位置にあれば、領域Sn’は、セグメント領域Snに対してX軸負方向に変位する。
変位方向はX軸に平行となる。図4(a)の場合、物体が距離Lsよりも近い位置にあるため、領域Sn’は、セグメント領域Snに対してX軸正方向に変位する。物体が距離Lsよりも遠い位置にあれば、領域Sn’は、セグメント領域Snに対してX軸負方向に変位する。
セグメント領域Snに対する領域Sn’の変位方向と変位量をもとに、投射光学系100からDP光(DPn)が照射された物体の部分までの距離Lrが、距離Lsを用いて、三角測量法に基づき算出される。同様にして、他のセグメント領域に対応する物体の部分について、投射光学系100からの距離が算出される。かかる算出手法の詳細は、たとえば、上記非特許文献1(第19回日本ロボット学会学術講演会(2001年9月18−20日)予稿集、P1279−1280)に示されている。
かかる距離算出では、参照テンプレートのセグメント領域Snが、実測時においてどの位置に変位したかを検出する。この検出は、実測時にCMOSイメージセンサ240上に照射されたDP光から得られたドットパターンと、セグメント領域Snに含まれるドットパターンとを照合することによって行われる。以下、実測時にCMOSイメージセンサ240上の撮像有効領域に照射されたDP光から得られた全画素値からなる画像を、「実測画像」と称する。実測時のCMOSイメージセンサ240の撮像有効領域は、基準画像取得時と同様に、たとえば、VGA(横640画素×縦480画素)のサイズである。
図5(a)〜(e)は、かかる距離検出の手法を説明する図である。図5(a)は、CMOSイメージセンサ240上における基準画像に設定された参照パターン領域を示す図であり、図5(b)は、実測時のCMOSイメージセンサ240上の実測画像を示す図であり、図5(c)〜(e)は、実測画像に含まれるDP光のドットパターンと、参照テンプレートのセグメント領域に含まれるドットパターンとの照合方法を説明する図である。なお、便宜上、図5(a)、(b)には、一部のセグメント領域のみが示されており、図5(c)〜(e)には、各セグメント領域の大きさが、横9画素×縦9画素で示されている。また、図5(b)の実測画像には、便宜上、図4(b)のように、検出対象物体として基準面より前に人物が存在しており、人物の像が写り込んでいることが示されている。
図5(a)のセグメント領域Siの実測時における変位位置を探索する場合、図5(b)に示すように、実測画像上に、セグメント領域Siに対して探索領域Riが設定される。探索領域Riは、X軸方向に所定の幅を持っている。セグメント領域Siが探索領域Riにおいて1画素ずつX軸方向に送られ、各送り位置において、セグメント領域Siのドットパターンと実測画像上のドットパターンとが比較される。以下、実測画像上の各送り位置に対応する領域を、「比較領域」と称する。探索領域Riには、セグメント領域Siと同じサイズの比較領域が複数設定され、X軸方向に隣り合う比較領域は互いに1画素ずれている。
探索領域Riの幅は、検出対象物体が基準面よりも情報取得装置1に対して離れる方向、および近づく方向にどの程度の距離を検出可能な範囲とするかによって決定される。図5中では、基準画像上のセグメント領域Siの画素位置に対応する実測画像上の画素位置(中心画素位置)から、X軸負方向にx画素ずれた位置からX軸正方向にx画素ずれた範囲(以下、「探索範囲L0」という)においてセグメント領域Siが送られるように探索領域Riが設定されている。
本実施の形態では、中心画素位置から−30画素ずれた位置から+30画素ずれた位置までの範囲が探索範囲L0に設定される。
距離検出時には、探索領域Riにおいてセグメント領域SiをX軸方向に1画素ずつ送
りながら、各送り位置において、参照テンプレートに記憶されているセグメント領域Siのドットパターンと、実測画像のDP光のドットパターンのマッチング度合いが求められる。このようにセグメント領域Siを探索領域Ri内においてX軸方向にのみ送るのは、上記のように、通常、参照テンプレートにより設定されたセグメント領域のドットパターンは、実測時において、X軸方向の所定の範囲内でのみ変位するためである。
りながら、各送り位置において、参照テンプレートに記憶されているセグメント領域Siのドットパターンと、実測画像のDP光のドットパターンのマッチング度合いが求められる。このようにセグメント領域Siを探索領域Ri内においてX軸方向にのみ送るのは、上記のように、通常、参照テンプレートにより設定されたセグメント領域のドットパターンは、実測時において、X軸方向の所定の範囲内でのみ変位するためである。
なお、実測時には、検出対象物体の位置によっては、セグメント領域に対応するドットパターンが実測画像からX軸方向にはみ出すことが起こり得る。たとえば、参照パターン領域のX軸負側のセグメント領域S1に対応するドットパターンが、基準面よりも遠距離の物体に反射された場合、セグメント領域S1に対応するドットパターンは、実測画像よりもX軸負方向に位置づけられる。この場合、セグメント領域に対応するドットパターンは、CMOSイメージセンサ240の撮像有効領域内にないため、このセグメント領域については、適正にマッチングを行うことができない。しかし、このような端のセグメント領域以外については、適正にマッチングを行うことができるため、物体の距離検出への影響は少ない。
なお、端の領域についても、適正にマッチングを行う場合には、実測時のCMOSイメージセンサ240の撮像有効領域を、基準画像取得時のCMOSイメージセンサ240の撮像有効領域よりも、大きくすることができるものを用いれば良い。たとえば、基準画像取得時において、VGA(横640画素×縦480画素)のサイズで撮像有効領域が設定された場合、実測時においては、それよりもX軸正方向およびX軸負方向に30画素分大きいサイズで撮像有効領域を設定する。これにより、実測画像が基準画像よりも大きくなるが、端のセグメント領域についても、適正にマッチングを行うことができる。
上記マッチング度合いの検出時には、まず、参照パターン領域の各画素の画素値と実測画像の各セグメント領域の各画素の画素値が2値化されて、メモリ25に保持される。たとえば、基準画像および実測画像の画素値が8ビットの階調の場合、0〜255の画素値のうち、所定の閾値以上の画素が、画素値1に、所定の閾値未満の画素が、画素値0に変換されて、メモリ25に保持される。その後、比較領域とセグメント領域Siとの間の類似度が求められる。すなわち、セグメント領域Siの各画素の画素値と、比較領域の対応する画素の画素値との差分が求められる。そして、求めた差分を比較領域の全ての画素について加算した値Rsadが、類似度を示す値として取得される。
たとえば、図5(c)のように、一つのセグメント領域中に、n列×m行の画素が含まれている場合、セグメント領域のi列、j行の画素の画素値T(i,j)と、比較領域のi列、j行の画素の画素値I(i,j)との差分が求められる。そして、セグメント領域の全ての画素について差分が求められ、その差分の総和により、図5(c)に示す式の値Rsadが求められる。値Rsadが小さい程、セグメント領域と比較領域との間の類似度が高い。
こうして、図5(d)に示すように、セグメント領域Siについて、探索領域Riの全ての比較領域に対して値Rsadが求められる。図5(e)は、探索領域Riの各送り位置における値Rsadが模式的に示されたグラフである。セグメント領域Siについて、探索領域Riの全ての比較領域に対して値Rsadが求められると、まず、求めた値Rsadの中から、最小値Bt1が参照される。次に、求めた値Rsadの中から、2番目に小さい値Bt2が参照される。最小値Bt1と2番目に小さい値Bt2の位置が2画素以上離れた位置であり、且つ、その差分値Esが閾値未満であれば、セグメント領域Siの探索はエラーとされる。他方、差分値Esが閾値以上であれば、最小値Bt1に対応する比較領域Ciが、セグメント領域Siの移動領域と判定される。たとえば、図5(d)のように、セグメント領域Siに対応する比較領域Ciは、基準画像上のセグメント領域S
iの画素位置と同位置の実測画像上の画素位置Si0よりもX軸正方向にα画素ずれた位置で検出される。これは、基準面よりも近い位置に存在する検出対象物体(人物)によって、実測画像上のDP光のドットパターンが基準画像上のセグメント領域Si0よりもX軸正方向に変位したためである。なお、セグメント領域Siの大きさが大きいほど、セグメント領域Siに含まれるドットパターンのユニーク性が増し、上記エラーの発生率が減少する。たとえば、セグメント領域Siの大きさが横15画素×縦15画素に設定されると、通常、距離検出がエラーとなることは少なく、適正にマッチングを行うことができる。
iの画素位置と同位置の実測画像上の画素位置Si0よりもX軸正方向にα画素ずれた位置で検出される。これは、基準面よりも近い位置に存在する検出対象物体(人物)によって、実測画像上のDP光のドットパターンが基準画像上のセグメント領域Si0よりもX軸正方向に変位したためである。なお、セグメント領域Siの大きさが大きいほど、セグメント領域Siに含まれるドットパターンのユニーク性が増し、上記エラーの発生率が減少する。たとえば、セグメント領域Siの大きさが横15画素×縦15画素に設定されると、通常、距離検出がエラーとなることは少なく、適正にマッチングを行うことができる。
こうして、実測時に取得されたDP光のドットパターンから、各セグメント領域の変位位置が探索されると、上記のように、その変位位置に基づいて、三角測量法により、各セグメント領域に対応する検出対象物体の部位までの距離が求められる。
このようにして、セグメント領域S1〜セグメント領域Snまで全てのセグメント領域について、上記同様のセグメント領域の探索が行われる。
なお、上記のマッチング度合いの検出方法は一例であり、これに限られるものではない。たとえば、上記では、値Rsadの最小値Bt1とBt2の差分値が最も小さくなる画素位置を、セグメント領域に対応する領域としたが、値Rsadの最小値の画素位置が、セグメント領域に対応する領域としても良い。この場合、値Rsadの最小値が所定の閾値以上の場合、セグメント領域の探索がエラーとされる。
上述のように、本実施の形態では、探索範囲L0は、中心画素位置から−30画素ずれた位置から+30画素ずれた位置までの範囲が設定され、セグメント領域Siの大きさは、横15画素×縦15画素に設定される。この場合、基準画像のドットの位置を検出するためには、15×15×60画素分の比較演算処理が行われる。このように、探索範囲L0が広ければ広いほど、距離検出にかかる演算処理は増大する。
他方、実測画像上におけるセグメント領域の移動位置をある程度予測できれば、その位置を中心に比較的狭い範囲を探索したとしても、当該セグメント領域に対するマッチングが得られる可能性が高い。この場合、実測画像上におけるセグメント領域の移動位置は、当該セグメント領域に隣接する他のセグメント領域の移動位置に基づいて、ある程度予測可能である。たとえば、隣接する2つのセグメント領域に対応する位置が同じ物体上に有る場合、これら2つのセグメント領域は、実測画像上において、略同じ傾向で移動することが多い。この場合、一方のセグメント領域の移動位置は、他方のセグメント領域の移動位置から、ある程度予測可能である。他方、隣接する2つのセグメント領域に対応する位置がそれぞれ異なる物体上に有る場合、すなわち、隣接する2つのセグメント領域に対応する位置が物体の境界を跨ぐような場合、これら2つのセグメント領域は、実測画像上における移動量が大きく異なることが多い。この場合、一方のセグメント領域の移動位置を、他方のセグメント領域の移動位置から予測するのは困難である。
そこで、本実施の形態では、実測画像上において所定のセグメント領域の移動位置を探索する場合に、当該セグメント領域に隣接するセグメント領域の距離検出結果(画素ずれ量)に基づいて、当該探索対象のセグメント領域の実測画像上における移動位置を想定し、想定した移動位置に、上記探索範囲L0(−30画素〜+30画素)よりも短い探索範囲を設定する。これによって、距離検出にかかる演算量の低減化を図る。そして、このように通常の探索範囲L0よりも短い探索範囲で探索を行ってもマッチングが得られなかった場合に、当該セグメント領域に対応する位置が、物体の境界近傍等、距離が大きく変化する位置に有ると想定し、探索範囲を通常の探索範囲L0に戻して探索を再度実行する。
図6は、探索範囲を適宜変更して、距離取得を行う処理を示すフローチャートである。図6の処理のうち、距離取得にかかる処理は、図2のCPU21の距離取得部21b、探索範囲の設定にかかる処理は、図2のCPU21の探索範囲補正部21cの機能によって行われる。また、図6のフローチャートは、参照パターン領域においてp列、q行の位置にあるセグメント領域(p、q)について距離情報を取得する処理を示している。ここでは、図4(b)に示す参照パターン領域の最も左側(X軸負側)のセグメント領域群が1列目のセグメント領域群とされ、1列目のセグメント領域群からp画素だけ右方向(X軸正方向)にずれたセグメント領域群がp列目のセグメント領域群とされる。また、参照パターン領域の最上段のセグメント領域群が1行目のセグメント領域群とされ、1行目のセグメント領域群からq画素だけ下方向(Y軸正方向)にずれたセグメント領域群がq行目のセグメント領域群とされる。距離の取得処理は、参照パターン領域の左上のセグメント領域から始まり、右下のセグメント領域で終了する。また、距離取得の対象とされるセグメント領域は、行方向(右方向)に順次移行し、1行分の処理が終了すると、1画素下の行のセグメント領域群の処理へと移行する。
また、ここでは、実測時のCMOSイメージセンサ240の撮像有効領域が、基準画像取得時のCMOSイメージセンサ240の撮像有効領域よりも、広くなっている。すなわち、基準画像取得時には、VGA(横640画素×縦480画素)のサイズで撮像有効領域が設定され、実測時においては、それよりもX軸正方向およびX軸負方向に30画素分大きいサイズで撮像有効領域が設定されている。
以下、図6の処理フローチャートにおける処理について、図7、図9に示す具体例を参照しながら説明する。
図7(a)は、参照パターン領域に設定される最初のセグメント領域S1と、その次のセグメント領域S2を示す模式図、図7(b)は、投射光学系100と受光光学系200をY軸方向から見た模式図である。図7(c)は、セグメント領域S1の探索範囲と、差分値Rsadのグラフを示す模式図、図7(d)、(e)は、セグメント領域S2の探索範囲と、差分値Rsadのグラフを示す模式図である。なお、図7(a)では、便宜上、隣り合うセグメント領域S1、S2が、互いに重なり合わないように、簡略化して示されている。また、図7(b)には、セグメント領域S1、S2に対応する領域が示されている。
まず、図7(a)に示す参照パターン領域の左上隅に設定される最初のセグメント領域S1に対する処理の流れに沿って、図6のフローチャートを説明する。ここでは、図7(b)に示すように、基準面の位置よりも遠方にXY平面に水平な壁面があり、最初のセグメント領域S1には、当該壁面によって反射されたドットパターンが含まれている。
図6を参照して、CPU21は、まず、参照パターン領域におけるセグメント領域の行の位置(Y軸方向)を示す変数qに初期値として1をセットする(S101)。また、CPU21は、参照パターン領域における対象セグメント領域の列の位置(X軸方向)を示す変数pに初期値として1をセットする(S102)。そして、CPU21は、pが2以上であるかを判定する(S103)。これにより、距離取得を行うセグメント領域が2列目以降であるかが判定される。セグメント領域が2列目以降である場合(S103:YES)、CPU21は、処理をS109に進める。セグメント領域が1列目である場合(S103:NO)、CPU21は、qが2以上であるかを判定する(S104)。これにより、距離取得を行うセグメント領域が2行目以降であるかが判定される。セグメント領域が2行目以降である場合(S104:YES)、CPU21は、処理をS115に進める。セグメント領域が1行目である場合(S104:NO)、CPU21は、通常の探索範囲L0で距離取得を行う(S105)。この場合、探索範囲L0は、実測画像上の当該セ
グメント領域S1に対応する画素位置を中心の画素位置にして、実測画像上に設定される。
グメント領域S1に対応する画素位置を中心の画素位置にして、実測画像上に設定される。
なお、S103、S104がYESの場合における処理については、図7(a)に示すセグメント領域S2の場合、図9(a)に示すセグメント領域Siの場合を例示して、後述する。
図6に戻り、このようにして、1行1列目の最初のセグメント領域S1では、S103、S104にて、NOと判定され、まずは、通常の探索範囲L0で距離取得が行われる。具体的には、図7(c)に示すように、セグメント領域S1と探索範囲L0内の各比較領域との差分値Rsadが演算され、演算された差分値Rsadのうち、差分値Rsadが最小値となる位置の位置S1oからの画素ずれ量−αに応じた距離が当該セグメント領域S1の距離情報として、取得される。これにより、図7(b)に示すように、基準面の位置よりも遠方に配された壁面の距離情報が得られる。
以下、差分値Rsadが最小となる位置を「ボトム位置」と称する。なお、位置S1oは、基準画像上のセグメント領域S1の画素位置に対応する実測画像上の画素位置である。また、通常の探索範囲L0には、あらかじめ、メモリ25に、−30画素〜+30画素の60画素分の探索範囲が設定されている。
図6に戻り、当該セグメント領域について、距離取得が完了すると、CPU21は、図8に示す距離情報テーブルTに、当該セグメント領域に対応づけて、ボトム位置の画素ずれ量をセットする(S106)。
図8は、距離情報テーブルTを示す図である。距離情報テーブルTは、横軸がセグメント領域のX座標、縦軸がセグメント領域のY座標を示す2次元配列であり、各要素には、その座標のセグメント領域の距離検出結果であるボトム位置の画素ずれ量が格納される。
なお、距離情報テーブルTは、少なくとも、現在探索中の行の各セグメント領域の画素ずれ量と、それより1行前の各セグメント領域の画素ずれ量を格納できる領域を有しており、これらの行よりも前の行の距離情報の取得結果は、随時、上書きされる。図8では、q行目のセグメント領域の距離取得結果(画素ずれ量)と、q−1行目のセグメント領域の距離取得結果(画素ずれ量)の例が示されている。また、上述したエラー条件に合致し、ボトム位置が見つからない場合は、エラーを示す情報が距離情報テーブルTにセットされる。
図6に戻り、セグメント領域の距離取得結果を距離情報テーブルTにセットすると、CPU21は、変数pに1を加算し(S107)、pが最終列を示すsを超えているかを判定する(S108)。そして、pがsを超えていない場合(S108:NO)、CPU21は、処理をS103に戻して、距離取得の処理を繰り返す。
次に、2列、1行目のセグメント領域S2の処理の流れに沿って、図6のフローチャートを説明する。図7(b)に示すように、セグメント領域S2には、セグメント領域S1と同様に、壁面によって反射されたドットパターンが含まれている。
図6を参照して、S103において、セグメント領域が2列目以降であると判定すると(S103:YES)、CPU21は、距離取得対象のセグメント領域(p,q)に対してX軸負方向に隣接するp−1列のセグメント領域(p−1,q)の画素ずれ量を距離情報テーブルTから読み込む(S109)。たとえば、図7(a)に示すように、距離取得の対象がセグメント領域S2の場合、X軸方向に隣り合うセグメント領域S1の画素ずれ
量が距離情報テーブルTから取得される。
量が距離情報テーブルTから取得される。
図6に戻り、次にCPU21は、距離情報テーブルTから取得した距離取得結果がエラーであるかを判定する(S110)。1列前のセグメント領域の距離取得結果がエラーである場合(S110:YES)、CPU21は、処理をS104に進める。1列前のセグメント領域の距離取得結果がエラーでない場合(S110:NO)、CPU21は、取得した画素ずれ量に基づいて、通常の探索範囲L0よりも短い探索範囲Llで距離取得を行う。なお、ここで、探索範囲Llとして、あらかじめ、通常の探索範囲L0よりも短い固定幅の探索範囲がメモリ25に設定されている。ここでは、短い固定幅の探索範囲が−5画素〜+5画素に設定されている。また、この探索範囲Llは、セグメント領域の画素位置に対応する実測画像上の画素位置(画素ずれ量0)から1列前のセグメント領域のボトム位置の画素ずれ量だけずれた位置を中心に設定される。
たとえば、図7(c)を参照して説明したように、セグメント領域S1では、基準面の位置よりも遠方に配された壁面の距離情報として、−α画素の画素ずれ量が得られている。この画素ずれ量に基づき、図7(d)に示すように、セグメント領域S2の画素位置に対応する実測画像上の画素位置S2oから−α画素ずれた位置S2αを中心に、−5画素〜5画素の探索範囲Llが設定される。上述したように、隣接するセグメント領域は、実測画像上において同じ傾向で移動する可能性が高い。すなわち、セグメント領域S2は、実測画像上において、すぐ左隣りのセグメント領域S1と同じの距離だけ同じ方向に移動する可能性が高い。したがって、このように、セグメント領域S2の探索範囲の中心を、セグメント領域S1の画素ずれ量に対応する位置S2αに設定し、探索範囲を通常の探索範囲L0よりも短い探索範囲L1に設定しても、探索範囲L1内の比較領域とマッチングが得られる可能性が高い。このように探索範囲を設定することで、少ない演算処理で効率的に距離取得を行うことができる。
なお、このように、探索範囲を短くすると、上記のように、検出対象物体とその他の部分との境界等において距離が大きく変わった場合には、距離検出に失敗することも起こり得る。
なお、このように、探索範囲を短くすると、上記のように、検出対象物体とその他の部分との境界等において距離が大きく変わった場合には、距離検出に失敗することも起こり得る。
そこで、CPU21は、図6のS112において、短い探索範囲Llで距離取得に成功したか否かを判定する。距離取得に成功した場合(S112:YES)、処理をS106に進め、距離情報テーブルTに、当該セグメント領域に対応づけて、ボトム位置の画素ずれ量をセットする(S106)。短い探索範囲Llでの距離取得がエラーとなった場合(S112:NO)、CPU21は、処理をS104に進める。
たとえば、セグメント領域S2において、短い探索範囲Llで距離取得ができなかった場合(S112:NO)、S104で、NOと判定され、図7(e)に示すように、通常の探索範囲L0で距離取得が行われる(S105)。そして、通常の探索範囲L0での距離取得が完了すると、CPU21は、距離情報テーブルTに当該セグメント領域に対応づけて、ボトム位置の画素ずれ量をセットする(S106)。
この場合、短い探索範囲Llに加え、通常の探索範囲L0で距離検出が行われるため、通常の探索範囲L0で1回だけ距離検出する場合よりも、演算量が嵩むこととなる。しかし、短い探索範囲Llで距離検出がエラーになるのは、検出対象のセグメント領域が、物体の境界等、距離が大きく変化する部分に対応付けられている場合である。ところが、一般に、物体の境界等は、それ以外の部分に比べて、出現頻度がかなり低い。したがって、再度、通常の探索範囲L0で距離検出が行われる頻度は低く、このため、セグメント領域全体の距離検出においては、一律通常の探索範囲L0で距離検出を行う場合に比べて、演算量を大きく低減させることができる。また、このように、短い探索範囲Llの距離検出後に、通常の探索範囲L0で距離取得を行うことで、境界等、距離が大きく変わる領域に
おいても、距離検出精度を劣化させずに、適正に距離検出を行うことができる。
おいても、距離検出精度を劣化させずに、適正に距離検出を行うことができる。
そして、CPU21は、変数pに1を加算し(S107)、変数pが最終列を示すsを超えるまで距離取得の処理を繰り返す(S108:NO)。変数pがsを超えると(S108:YES)、CPU21は、変数qに1を加算し(S113)、変数qが最終行を示すrを超えたか否かを判定する(S114)。変数qがrを超えていない場合(S114:NO)、CPU21は、処理をS102に戻し、次の行におけるセグメント領域の距離取得処理を行う。
図9(a)は、参照パターン領域の2列、2行目以降の所定の画素位置に設定されるセグメント領域Siと、そのX軸方向に隣り合うセグメント領域Slと、そのY軸方向に隣り合うセグメント領域Suを示す模式図、図9(b)は、投射光学系100と受光光学系200をX軸方向から見た模式図、図9(c)は、投射光学系100と受光光学系200をY軸方向から見た模式図である。また、図9(d)は、セグメント領域Slの探索範囲と、差分値Rsadのグラフを示す模式図、図9(e)は、セグメント領域Suの探索範囲と差分値Rsadのグラフを示す模式図である。また、図9(f)〜(h)は、セグメント領域Siの探索範囲と差分値Rsadのグラフを示す模式図である。なお、図9(a)では、便宜上、隣り合うセグメント領域が、互いに重なり合わないように、簡略化して示されている。また、図9(b)には、セグメント領域Si、Suに対応する領域が示され、図9(c)には、セグメント領域Si、Slに対応する領域が示されている。
図9(a)に示す2行、2列目以降の所定の画素位置に設定されるセグメント領域Siの処理の流れに沿って、図6のフローチャートを説明する。図9(b)、(c)に示す例では、基準面の位置よりも近距離の位置にXY平面に水平な検出対象物体があり、セグメント領域Siには、当該検出対象物体によって反射されたドットパターンが含まれている。また、セグメント領域SiのX軸方向に隣り合うセグメント領域Slには、壁面によって反射されたドットパターンが、セグメント領域SiのY軸方向に隣り合うセグメント領域Suには、検出対象物体によって反射されたドットパターンが含まれている。
図6を参照して、S103がNO、または、S110がYES、もしくは、S112がNOと判定された場合、CPU21は、処理をS104に進め、行を示す変数qが2以上であるか否かを判定する(S104)。たとえば、図9(d)に示すX軸方向に隣り合うセグメント領域Slでは、基準面の位置よりも遠方に配された壁面の距離情報として、−α画素の画素ずれ量が得られている。この画素ずれ量に基づき、図9(f)に示す短い探索範囲Llでセグメント領域Siの距離取得が行われる。この場合、セグメント領域Siには、近距離の検出対象物体によって反射されたドットパターンが含まれるため、この短い探索範囲Llでボトム位置が見つからず、距離検出がエラーとなる(S112:NO)。これにより、CPU21は、処理をS104に進める。
セグメント領域が2行目以降である場合(S104:YES)、CPU21は、対象セグメント領域に対してY軸負方向に隣接するq−1行のセグメント領域(p,q−1)の取得結果(画素ずれ量)を距離情報テーブルTから読み込む(S115)。たとえば、図9(a)に示すように、セグメント領域Siの場合、Y軸方向に隣り合うセグメント領域Suの画素ずれ量が距離情報テーブルTから取得される。
図6に戻り、次にCPU21は、距離情報テーブルTから取得した距離取得結果がエラーであるかを判定する(S116)。1行前のセグメント領域の距離取得結果がエラーである場合(S116:YES)、CPU21は、処理をS105に進め、通常の探索範囲L0で距離取得を行う(S105)。1行前のセグメント領域の距離取得結果がエラーでない場合(S116:NO)、CPU21は、取得した画素ずれ量に基づいて、通常の探
索範囲L0よりも短い探索範囲Luで距離取得を行う(S117)。なお、ここで、探索範囲Luは、探索範囲Llと同様に、あらかじめ、通常の探索範囲L0よりも短い固定幅がメモリ25に設定されている。また、探索範囲Luは、セグメント領域の画素位置に対応する実測画像上の画素位置から1行前のセグメント領域のボトム位置の画素ずれ量だけずれた位置を中心に設定される。
索範囲L0よりも短い探索範囲Luで距離取得を行う(S117)。なお、ここで、探索範囲Luは、探索範囲Llと同様に、あらかじめ、通常の探索範囲L0よりも短い固定幅がメモリ25に設定されている。また、探索範囲Luは、セグメント領域の画素位置に対応する実測画像上の画素位置から1行前のセグメント領域のボトム位置の画素ずれ量だけずれた位置を中心に設定される。
たとえば、図9(e)に示すY軸負方向に隣り合うセグメント領域Suでは、基準面の位置よりも近距離に配された検出対象物体の距離情報として、+β画素の画素ずれ量が得られている。この画素ずれ量に基づき、図9(g)に示すように、セグメント領域Siの画素位置に対応する実測画像上の画素位置Sioから+β画素ずれた位置Siβを中心に、−5画素〜+5画素の探索範囲Luが設定される。これにより、X軸負方向に隣り合うセグメント領域Slの距離取得結果に基づいて行われた短い探索範囲Llでの距離取得結果がエラーの場合であっても、さらに、Y軸負方向に隣り合うセグメント領域Suの距離取得結果に基づいて、短い探索範囲Luで距離取得が行われる。
したがって、図9(b)に示すように、セグメント領域Si、Slとの間では距離の差が大きいが、図9(c)に示すように、セグメント領域Si、Suとの間では距離が略同じである場合に、セグメント領域Suにおいて検出された画素ずれ量をもとにセグメント領域Siの探索範囲の中心位置が設定される。このため、短い探索範囲Luが設定されても、セグメント領域Siに対するマッチングを適正に行うことができ、演算量を小さく抑えながら、効率的に、セグメント領域Siに対する距離検出を行うことができる。
なお、本実施の形態では、探索範囲Ll、Luは、それぞれ、−5画素〜5画素が設定されており、通常の探索範囲L0の−30画素〜30画素よりも、数段短く設定されている。したがって、セグメント領域Siについて、X軸方向に隣り合うセグメント領域Slの距離情報に基づく距離取得と、Y軸方向に隣り合うセグメント領域Suの距離情報に基づく距離取得の、合計2回の距離取得処理が行われるが、距離取得にかかる演算量は、通常の探索範囲L0を1回行うよりも、小さく抑えることができる。
また、この場合も、検出対象物体とその他の部分との境界等においてX軸方向、Y軸方向ともに、距離が大きく変わった場合には、距離検出に失敗することが起こり得る。
そこで、CPU21は、図7のS118において、短い探索範囲Luで距離取得に成功したか否かを判定する。距離取得に成功した場合(S118:YES)、CPU21は、処理をS106に進め、距離情報テーブルTに当該セグメント領域に対応づけて、ボトム位置の画素ずれ量をセットする(S106)。短い探索範囲Luでの距離取得がエラーとなった場合(S118:NO)、CPU21は、処理をS105に進める。そして、通常の探索範囲L0での距離取得が完了すると(S105)、CPU21は、距離情報テーブルTに当該セグメント領域の画素位置に対応づけて、ボトム位置の画素ずれ量をセットする(S106)。この場合、X軸方向に隣り合うセグメント領域Slの距離情報に基づいた探索範囲Llと、Y軸方向に隣り合うセグメント領域Suの距離情報に基づいた探索範囲Luと、さらに、通常の探索範囲L0で距離検出が行われるため、距離検出にかかる演算量が最も嵩むこととなる。しかし、このようなケースは、まれであるため、総合的には、距離検出にかかる演算量を大きく低減することができる。
そして、CPU21は、全てのセグメント領域の距離取得が完了するまで、処理を繰り返す(S107〜S114)。こうして、全てのセグメント領域に対する距離の取得処理が完了すると(S114:YES)、距離の取得処理を終了する。
以上、本実施の形態によれば、X軸負方向、Y軸負方向に隣り合うセグメント領域の距
離情報に基づき、探索範囲が短く設定されるため、距離検出にかかる演算量を抑えつつ、効率的に距離の取得を行うことができる。
離情報に基づき、探索範囲が短く設定されるため、距離検出にかかる演算量を抑えつつ、効率的に距離の取得を行うことができる。
また、本実施の形態によれば、探索範囲の中心が、X軸負方向、Y軸負方向に隣り合うセグメント領域の画素ずれ量に応じて設定されるため、より適正に探索範囲を設定することができる。
また、本実施の形態によれば、短い探索範囲での距離検出がエラーとなった場合、通常の探索範囲に戻して、距離検出が行われるため、距離検出の精度を保つことができる。また、このように通常の探索範囲に戻して距離取得を再度行っても、トータルでは、距離検出にかかる演算量を小さく抑えることができる。
また、本実施の形態によれば、X軸負方向に隣り合うセグメント領域Slの距離情報に基づいて、短い探索範囲Llで距離検出が行われた後、さらに、Y軸負方向に隣り合うセグメント領域Suの距離情報に基づいて、短い探索範囲Luで距離検出が行われるため、X軸負方向、Y軸負方向の両方の距離を考慮して、演算量を抑えつつ、効率的に距離取得することができる。
以上、本発明の実施の形態について説明したが、本発明は、上記実施の形態に何ら制限されるものではなく、また、本発明の実施の形態も上記の他に種々の変更が可能である。
たとえば、上記実施の形態では、図9(f)〜(h)に示すように、短い探索範囲Ll、Luで探索を行ったときに、距離検出ができなかった場合、通常の探索範囲L0に戻して、探索範囲の演算を行った。しかし、図10(a)〜(d)に示すように、1度探索を行った探索範囲をメモリ25に保持しておき、リトライ時には、その箇所をスキップするようにしても良い。
図10(a)〜(d)は、この場合の距離取得の処理を示すフローチャートである。図10(a)〜(d)は、図6のフローチャートを一部変更するものであり、便宜上、図6のフローチャートの変更箇所周辺のステップのみが示されている。図10(a)〜(d)は、図2のCPU21の距離取得部21bおよび探索範囲補正部21cの機能によって行われる。
図10(a)を参照して、X軸方向に隣り合うセグメント領域Slの距離情報に基づいて、短い探索範囲Llで距離取得を実行し(S111)、距離取得がエラーとなると(S112:NO)、CPU21は、当該探索範囲Llの始端画素位置と終端画素位置を後続の探索処理における除外範囲としてメモリ25にセットする(S201)。そして、図10(b)を参照して、Y軸方向に隣り合うセグメント領域Suの距離取得結果がエラーでない場合(S116:NO)、CPU21は、メモリ25に除外範囲がセットされているかを判定する(S211)。S201にて、除外範囲がセットされている場合(S211:YES)、Y軸方向に隣り合うセグメント領域Suの画素ずれ量に基づいて、既にS111で探索を行った除外範囲(探索範囲Ll)を除く、短い探索範囲Luで距離取得を行う(S212)。
そして、距離取得がエラーの場合(S118:NO)、CPU21は、さらに、当該探索範囲Luの始端画素位置と終端画素位置を除外範囲としてメモリ25にセットする(S213)。これにより、既に、ボトム位置を検出することができなかった探索範囲Llを除外して、探索範囲Luが設定されるため、探索が再実行されることによる距離検出にかかる演算量の増大を抑えることができる。
図11(a)〜(c)は、図10(a)、(b)の処理が実行される場合のセグメント領域Siの探索範囲を模式的に示す模式図である。
図9(c)に示した例では、探索範囲Llと探索範囲Luは、図9(f)、(g)に示すように、互いに重なり合わないため、図11(a)、(b)に示すように、除外範囲は適用されない。しかし、X軸負方向に隣り合うセグメント領域Slと、Y軸負方向に隣り合うセグメント領域Suがどちらも略同じ距離の場合は、探索範囲Llと探索範囲Luは、互いに重なり合うようになる。このような場合、図10(a)、(b)の処理が実行されると、探索範囲Luの大部分が探索対象から除外される。これにより、無駄な演算処理を抑えつつ、通常の探索範囲L0による距離取得処理へと処理を移行させることができる。
図10(b)において、探索範囲Luでの距離取得を失敗した場合(S118:NO)、CPU21は、S213の処理の後、図10(c)のS221に処理を進め、メモリ25に除外範囲がセットされているかを判定する。図10(a)のS201および図10(b)のS213にて、除外範囲がセットされている場合(S221:YES)、CPU21は、既に探索を行った除外範囲(探索範囲Ll、Lu)を除く、短い探索範囲L0で距離取得を行う(S222)。CPU21は、かかる距離取得の処理が完了すると、図10(d)に示すように、距離情報テーブルTに対する画素ずらし量のセットを行った後(S106)、メモリ25にセットされた除外範囲をリセットする(S231)。その後、CPU21は、次のセグメント領域の距離取得処理を行う。これにより、図11(c)に示すように、通常の探索範囲L0から既に探索を行った探索範囲Ll、Luが除外された範囲において探索が行われるため、距離検出にかかる演算量の増大を抑えることができる。このように、本変更例では、探索のリトライにかかる演算処理をさらに小さく抑えつつ、より効率的に距離取得を行うことができる。
また、上記実施の形態では、短い探索範囲Ll、Luは、−5画素〜5画素の固定幅としたが、たとえば、図12(a)に示すように、距離が連続して、遠ざかる傾向がある場合等には、図12(b)に示すように遠距離側の画素ずらし量を大きく、−6画素〜5画素にする等、適宜状況に応じて、探索範囲の幅を変動させても良い。
また、上記実施の形態では、探索範囲の中心が、X軸負方向またはY軸負方向に隣り合うセグメント領域の画素ずれ量に応じた位置に設定されたが、これも、上記同様、距離が連続して、遠ざかる傾向がある場合等には、図12(c)に示すように、遠距離側に画素位置をずらす等、適宜状況に応じて、探索範囲の中心位置を変動させても良い。
また、上記実施の形態では、短い探索範囲Ll、Luでの距離取得がエラーの場合、通常の探索範囲L0で距離取得が行われたが、短い探索範囲Ll、Luよりも長い所定の探索範囲で距離取得が行われても良い。なお、Z軸方向の距離検出精度を保つためには、上記実施の形態同様、通常の探索範囲L0で距離取得が行われた方が望ましい。
また、上記実施の形態では、X軸負方向に隣り合うセグメント領域Slの画素ずれ量に応じた短い探索範囲Llと、Y軸負方向に隣り合うセグメント領域Suの画素ずれ量に応じた短い探索範囲Luは、互いに同じ大きさであったが、それぞれで異なっていても良い。さらに、上記実施の形態では、探索範囲Ll、Luは、−5画素〜5画素であったが、これに限られず、通常の探索範囲L0よりも短ければ、その他の画素数であっても良く、探索範囲Ll、Luが互いに異なっていても良い。また、通常の探索範囲L0もZ軸方向の距離検出精度に応じて、適宜変更可能である。
また、上記実施の形態では、X軸負方向、およびY軸負方向に隣り合うセグメント領域
の距離情報に応じて、探索範囲を短くしたが、これらの他、斜め方向に隣り合うセグメント領域、2画素以上離れた位置のセグメント領域等、距離取得対象のセグメント領域の近傍にあるセグメント領域であれば、上記以外の位置のセグメント領域の距離情報に基づいて、探索範囲を短くしても良い。
の距離情報に応じて、探索範囲を短くしたが、これらの他、斜め方向に隣り合うセグメント領域、2画素以上離れた位置のセグメント領域等、距離取得対象のセグメント領域の近傍にあるセグメント領域であれば、上記以外の位置のセグメント領域の距離情報に基づいて、探索範囲を短くしても良い。
また、上記実施の形態では、最初の1行1列目のセグメント領域を除き、全てのセグメント領域において、短い探索範囲の距離取得処理が行われたが、たとえば、X軸方向の所定の数のセグメント領域において、略同じ距離情報が連続したときにのみ、短い探索範囲での距離取得処理が行われても良い。
また、上記実施の形態では、隣り合うセグメント領域が互いに重なるように、セグメント領域が設定されたが、左右に隣り合うセグメント領域が、互いに重ならないように、セグメント領域が設定されても良く、また、上下に隣り合うセグメント領域が、互いに重ならないように、セグメント領域が設定されても良い。また、上下左右に隣り合うセグメント領域のずれ量は、1画素に限られるものではなく、ずれ量が他の画素数に設定されても良い。また、上記実施の形態では、セグメント領域の大きさが横15画素×縦15画素に設定されたが、検出精度に応じて、任意に設定可能である。さらに、上記実施の形態では、セグメント領域は、正方形状に設定されたが、長方形であっても良い。
また、上記実施の形態では、セグメント領域と比較領域のマッチング率を算出する前に、セグメント領域と比較領域に含まれる画素の画素値を2値化したが、CMOSイメージセンサ240によって得られた画素値をそのまま用いて、マッチングしても良い。また、上記実施の形態では、CMOSイメージセンサ240によって得られた画素値をそのまま2値化したが、画素値について、所定の画素の重みづけ処理、および背景光の除去処理、等の補正処理を行った後に、2値化、もしくは多値化しても良い。
また、上記実施の形態では、三角測量法を用いて距離情報が求められ、メモリ27に記憶されたが、物体の輪郭抽出を主目的とするような場合は、三角測量法を用いた距離を演算せずに、セグメント領域の変位量(画素ずれ量)が距離情報として取得されても良い。
また、上記実施の形態では、目標領域に照射されるレーザ光の波長帯以外の波長帯の光を除去するためにフィルタ230を配したが、たとえば、目標領域に照射されるレーザ光以外の光の信号成分を、CMOSイメージセンサ240から出力される信号から除去する回路構成が配されるような場合には、フィルタ230を省略することができる。また、アパーチャ210の配置位置は、何れか2つの撮像レンズの間であっても良い。
また、上記実施の形態では、受光素子として、CMOSイメージセンサ240を用いたが、これに替えて、CCDイメージセンサを用いることもできる。さらに、投射光学系100および受光光学系200の構成も、適宜変更可能である。また、情報取得装置1と情報処理装置2は一体化されても良いし、情報取得装置1と情報処理装置2がテレビやゲーム機、パーソナルコンピュータと一体化されても良い。
本発明の実施の形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。
1 … 情報取得装置
21 … CPU(距離取得部)
21b … 距離取得部
21c … 探索範囲補正部(距離取得部)
24 … 撮像信号処理回路(距離取得部)
25 … メモリ(記憶部)
100 … 投射光学系
110 … レーザ光源
200 … 受光光学系
240 … CMOSイメージセンサ(イメージセンサ)
S1〜Sn … セグメント領域(参照領域)
Sl … セグメント領域(第1方向に隣り合う参照領域)
Su … セグメント領域(第2方向に隣り合う参照領域)
L0 … 探索範囲(第1探索範囲、第3探索範囲)
Ll … 探索範囲(第2探索範囲)
Lu … 探索範囲(第2探索範囲)
21 … CPU(距離取得部)
21b … 距離取得部
21c … 探索範囲補正部(距離取得部)
24 … 撮像信号処理回路(距離取得部)
25 … メモリ(記憶部)
100 … 投射光学系
110 … レーザ光源
200 … 受光光学系
240 … CMOSイメージセンサ(イメージセンサ)
S1〜Sn … セグメント領域(参照領域)
Sl … セグメント領域(第1方向に隣り合う参照領域)
Su … セグメント領域(第2方向に隣り合う参照領域)
L0 … 探索範囲(第1探索範囲、第3探索範囲)
Ll … 探索範囲(第2探索範囲)
Lu … 探索範囲(第2探索範囲)
Claims (11)
- 光を用いて目標領域の情報を取得する情報取得装置において、
レーザ光源から出射されたレーザ光を所定のドットパターンで目標領域に投射する投射光学系と、
前記投射光学系に対して所定の距離だけ横に離れて並ぶように配置され、前記目標領域をイメージセンサにより撮像する受光光学系と、
基準面に前記レーザ光を照射したときに前記受光光学系により撮像された基準ドットパターンに基づく参照情報を保持する記憶部と、
実測時に前記イメージセンサにより撮像された実測ドットパターンに基づく実測情報と前記参照情報とを参照し、所定の探索範囲において、前記基準ドットパターンに割り当てられた参照領域の、前記実測ドットパターン上における移動位置の探索を実行し、探索された前記移動位置に基づいて、当該参照領域に対する距離情報を取得する距離取得部と、を備え、
前記記憶部は、既に探索がなされた参照領域の前記移動位置に関する情報を保持し、
前記距離取得部は、前記記憶部に記憶された情報に基づいて、前記探索のための前記探索範囲として、所定幅の第1探索範囲に代えて、前記第1探索範囲よりも短い第2探索範囲を設定する、
ことを特徴とする情報取得装置。 - 請求項1に記載の情報取得装置において、
前記距離取得部は、前記実測ドットパターン上における前記第2探索範囲の設定位置を、前記記憶部に記憶された情報に基づいて設定する、
ことを特徴とする情報取得装置。 - 請求項2に記載の情報取得装置において、
前記距離取得部は、前記記憶部に記憶された前記情報から、既に探索がなされた前記参照領域の移動傾向を取得し、距離取得の対象とされる前記参照領域に対応する前記実測ドットパターン上の位置から前記移動傾向に従ってずらされた位置に、前記第2探索範囲を設定する、
ことを特徴とする情報取得装置。 - 請求項3に記載の情報取得装置において、
前記距離取得部は、既に探索がなされた前記参照領域のうち、距離取得の対象とされる前記参照領域に隣接する前記参照領域の移動傾向を前記記憶部に記憶された前記情報から取得し、距離取得の対象とされる前記参照領域に対応する前記実測ドットパターン上の位置から前記移動傾向に従ってずらされた位置に、前記第2探索範囲を設定する、
ことを特徴とする情報取得装置。 - 請求項4に記載の情報取得装置において、
前記距離取得部は、既に探索がなされた前記参照領域のうち、距離取得の対象とされる前記参照領域と第1方向に隣り合う前記参照領域の移動傾向を前記記憶部に記憶された前記情報から取得して前記第2探索範囲の位置を設定するとともに、設定された第2探索範囲によって距離情報を取得できなかった場合に、前記第1方向とは異なる第2方向に隣り合う前記参照領域の移動傾向を前記記憶部に記憶された前記情報から取得して前記第2探索範囲の位置を設定する、
ことを特徴とする情報取得装置。 - 請求項5に記載の情報取得装置において、
前記第1方向に隣り合う前記参照領域の前記移動傾向をもとに位置が設定される前記第
2探索範囲の幅と、前記第2方向に隣り合う前記参照領域の前記移動傾向をもとに位置が設定される前記第2探索範囲の幅が、互いに同じである、
ことを特徴とする情報取得装置。 - 請求項5または6に記載の情報取得装置において、
前記距離取得部は、前記第1方向に隣り合う前記参照領域の前記移動傾向をもとに位置が設定される前記第2探索範囲と、前記第2方向に隣り合う前記参照領域の前記移動傾向をもとに位置が設定される前記第2探索範囲とが、互いに重なり合う場合、前記第2方向に隣り合う前記参照領域の前記移動傾向をもとに設定された前記第2探索範囲から互いに重なり合う範囲を除いた範囲において、前記探索を実行する、
ことを特徴とする情報取得装置。 - 請求項1ないし7の何れか一項に記載の情報取得装置において、
前記距離取得部は、前記第2探索範囲によって前記距離情報を取得できなかった場合、前記第2探索範囲よりも長い第3探索範囲で、前記探索を再度実行する、
ことを特徴とする情報取得装置。 - 請求項8に記載の情報取得装置において、
前記第3探索範囲は、前記第1探索範囲であり、
前記距離取得部は、距離取得の対象とされる前記参照領域に対応する前記実測ドットパターン上の位置に前記第1探索範囲を設定して、前記探索を再度実行する、
ことを特徴とする情報取得装置。 - 請求項8または9に記載の情報取得装置において、
前記距離取得部は、前記第2探索範囲と前記第3探索範囲とが、互いに重なり合う場合、前記第3探索範囲から互いに重なり合う範囲を除いた範囲において、前記探索を再度実行する、
ことを特徴とする情報取得装置。 - 請求項1ないし10の何れか一項に記載の情報取得装置を有する物体検出装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012108783A JP2013234957A (ja) | 2012-05-10 | 2012-05-10 | 情報取得装置および物体検出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012108783A JP2013234957A (ja) | 2012-05-10 | 2012-05-10 | 情報取得装置および物体検出装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013234957A true JP2013234957A (ja) | 2013-11-21 |
Family
ID=49761188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012108783A Pending JP2013234957A (ja) | 2012-05-10 | 2012-05-10 | 情報取得装置および物体検出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013234957A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015132504A (ja) * | 2014-01-10 | 2015-07-23 | 富士通セミコンダクター株式会社 | 距離測定方法および距離測定装置 |
-
2012
- 2012-05-10 JP JP2012108783A patent/JP2013234957A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015132504A (ja) * | 2014-01-10 | 2015-07-23 | 富士通セミコンダクター株式会社 | 距離測定方法および距離測定装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5138119B2 (ja) | 物体検出装置および情報取得装置 | |
JP5138116B2 (ja) | 情報取得装置および物体検出装置 | |
JP5214062B1 (ja) | 情報取得装置および物体検出装置 | |
WO2012137674A1 (ja) | 情報取得装置、投射装置および物体検出装置 | |
WO2014108976A1 (ja) | 物体検出装置 | |
US20160253562A1 (en) | Information processing apparatus, processing system, object moving system, and object moving method | |
JP2012237604A (ja) | 情報取得装置、投射装置および物体検出装置 | |
JP5143312B2 (ja) | 情報取得装置、投射装置および物体検出装置 | |
JP2014238259A (ja) | 情報取得装置および物体検出装置 | |
JP2014044113A (ja) | 情報取得装置および物体検出装置 | |
JP2022532725A (ja) | 3次元深度マップデータの2次元画像上へのマッピング | |
JP5143314B2 (ja) | 情報取得装置および物体検出装置 | |
JP5138115B2 (ja) | 情報取得装置及びその情報取得装置を有する物体検出装置 | |
WO2012144340A1 (ja) | 情報取得装置および物体検出装置 | |
JP2014052307A (ja) | 情報取得装置および物体検出装置 | |
JP2013234957A (ja) | 情報取得装置および物体検出装置 | |
JP2013246009A (ja) | 物体検出装置 | |
WO2013015146A1 (ja) | 物体検出装置および情報取得装置 | |
JP2014085257A (ja) | 情報取得装置および物体検出装置 | |
JP2013234956A (ja) | 情報取得装置および物体検出装置 | |
JP2014025804A (ja) | 情報取得装置および物体検出装置 | |
WO2013031447A1 (ja) | 物体検出装置および情報取得装置 | |
WO2013046928A1 (ja) | 情報取得装置および物体検出装置 | |
JP2014035294A (ja) | 情報取得装置および物体検出装置 | |
JP2014035304A (ja) | 情報取得装置および物体検出装置 |