【文献】
Hong Liu et al.,"Real-Time Trust Region Ground Plane Segmentation for Monocular Mobile Robots",2017 IEEE International Conference on Robotics and Biomimetics (ROBIO),米国,IEEE,2017年12月05日,pp.1-7
【文献】
実吉 敬二,“ステレオカメラによる自動車運転支援システム”,情報処理学会研究報告 コンピュータビジョンとイメージメディア(CVIM),日本,一般社団法人情報処理学会,2013年02月15日,No.185,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下、本発明の一実施形態に係る障害物検出システムを、図面を用いて説明する。
【0018】
例えば、本発明の一実施形態に係る障害物検出システムは、自律走行可能な移動体に設けられ、当該移動体の前方方向の障害物を検出するシステムである。この移動体は、自律走行可能な車両であってもよいし、ロボットであってもよい。また、移動体は、有人であってもよいし、無人であってもよい。
【0019】
図1は、本発明の一実施形態に係る障害物検出システムAの概略構成の一例を示す図である。
図1に示すように、障害物検出システムAは、ステレオカメラ1及び障害物検出装置2を備える。
【0020】
ステレオカメラ1は、移動体の進行方向を撮像するように当該移動体に設けられている。ステレオカメラ1は、移動体の進行方向において、視差を含む一対の画像を取得して、障害物検出装置2に出力する。具体的には、ステレオカメラ1は、一対のカメラである第1のカメラ11及び第2のカメラ12を備える。
【0021】
第1のカメラ11は、移動体に搭載されており、当該移動体の前方方向に向かって右側に設けられている。第1のカメラ11は、移動体の進行方向を撮像し、その撮像した画像(以下、「第1の撮像画像」という。)を障害物検出装置2に出力する。
【0022】
第2のカメラ12は、移動体に搭載されており、当該移動体の前方方向に向かって左側に設けられている。第2のカメラ12は、移動体の進行方向を撮像し、その撮像した画像(以下、「第2の撮像画像」という。)を障害物検出装置2に出力する。
なお、第1のカメラ11と第2のカメラ12とは、同一のタイミングで撮像する。ただし、「同一」とは、完全な同じ時刻に限定されない。
【0023】
このように、ステレオカメラ1は、水平方向に離間して並べられた第1のカメラ11及び第2のカメラ12により移動体の進行方向に存在する障害物を、視差を有する複数の方向(左右方向)から同時に撮像する。そして、ステレオカメラ1は、同時に撮像することで得られた第1の撮像画像と第2の撮像画像とを障害物検出装置2に出力する。なお、第1の撮像画像及び第2の撮像画像のそれぞれを区別しない場合には、単に「撮像画像」という。
【0024】
障害物検出装置2は、第1の撮像画像及び第2の撮像画像からステレオ視を用いて移動体の前方の障害物(ステレオカメラ1の撮像範囲内の障害物)の距離を計測することで当該障害物を検出する装置である。
具体的には、
図1に示すように、障害物検出装置2は、計測部3、データ処理部4及び検出部5を備える。
【0025】
計測部3は、エッジ検出部31、探索部32、及び位置計測部33を備える。
【0026】
エッジ検出部31は、ステレオカメラ1から第1の撮像画像及び第2の撮像画像を取得する。そして、エッジ検出部31は、取得した第1の撮像画像及び第2の撮像画像のそれぞれにおいて、障害物の輪郭を示すエッジを検出する。エッジとは、撮像画像において、左右方向に隣接する画素同士の輝度値の差が所定値以上の部分である。
【0027】
探索部32は、エッジ検出部31で検出された第1の撮像画像のエッジに対応する第2の撮像画像のエッジ(以下、「対応エッジ」という。)を、例えば、テンプレートマッチング等を用いることで対応点探索する。そして、探索部32は、対応点探索することで得られた同一部分のエッジに対する両画像間における視差を求める。
【0028】
位置計測部33は、探索部32で得られた視差から三角測量の原理を用いて、エッジの位置情報を計測する。
図2は、本発明の一実施形態に係る位置計測部33で計測された複数のエッジの各位置情報を示す図である。
【0029】
図2に示すように、この位置情報とは、三次元空間において、ステレオカメラ1の中心を原点0とした三次元座標である。各計測点Pは、位置計測部33で計測された各エッジの三次元空間における位置(位置情報)を示す。なお、Y方向は、移動体の進行方向を示し、X方向は進行方向と直行する移動体の左右方向を示し、Z方向は、X方向及びY方向の双方に直交する方向であって、例えば、鉛直方向である。また、ステレオカメラの中心とは、第1のカメラ11の位置と第2のカメラ12の位置との間の中心である。
【0030】
このように、位置計測部33は、ステレオカメラ1で撮像された一対の撮像画像からステレオ視を用いて得られたエッジの位置を三次元座標として取得する。
【0031】
データ処理部4は、ステレオカメラ1の撮像範囲内において、任意の領域を示す処理対象領域内に存在する計測点Pの数に応じて、その処理対象領域内の計測点Pを削減する削減処理を実行する。以下に、本発明の一実施形態に係るデータ処理部4の構成について説明する。
【0032】
データ処理部4は、第1処理部41及び第2処理部42を備える。
【0033】
第1処理部41は、位置計測部33で計測した各計測点Pにおける三次元空間の位置情報(三次元座標)を取得する。第1処理部41は、三次元空間において、同一平面上における所定領域を処理対象領域として第1の処理対象領域H1に設定する。そして、第1処理部41は、その設定した第1の処理対象領域H1内において計測点Pの数が第1の閾値P
th1以上である場合には、第1の処理対象領域H1内の計測点の数を第1の閾値P
th1と等しい数まで削減する第1の削減処理を実行する。
【0034】
この第1の削減処理は、地面にある落ち葉やテクスチャ(地面のタイルの模様等)等の障害物ではないエッジを除去する処理である。
【0035】
以下に、第1の削減処理について、
図3〜
図5を用いて説明する。なお、
図3〜
図5において、●は第1の処理対象領域H1外に存在する計測点P(P
out1)を示し、〇は、第1の処理対象領域H1内に存在する計測点P(P
in1)を示す。
【0036】
まず、
図3に示すように、第1処理部41は、位置計測部33が計測した複数の計測点Pのうち、任意の計測点を一つ選択し、その選択した計測点Pを注目計測点P
01に設定する。そして、第1処理部41は、設定した注目計測点P
01を中心とした第1の処理対象領域H1を上記三次元空間内に設定する。
【0037】
この第1の処理対象領域H1は、三次元空間において、同一平面上における所定領域であればよく、その領域の形状には特に限定されない。また、同一平面上とは、Z方向の位置が一致していなくてもよく、同一平面上とみなせる程度(例えば、所定の誤差を含み得る程度)にZ方向の領域において幅を持たせてもよい。本実施形態では、第1の処理対象領域H1は、X軸方向の長さΔX1、Y軸方向の長さΔY1、及びZ軸方向の長さΔZ1の直方体で示される領域である。
【0038】
第1処理部41は、設定した第1の処理対象領域H1内に存在する計測点P
in1が第1の閾値P
th1(例えば、P
th1=5)以上である場合には、
図4に示すように、注目計測点P
01を削除する。第1処理部41は、第1の処理対象領域H1内に存在する計測点P
in1が第1の閾値P
th1以上である場合に注目計測点P
01を削除する処理を、すべての計測点Pに対して実行(第1の処理の実行)することで、第1の処理対象領域H1内の計測点Pの数を第1の閾値P
th1と等しい数まで調整する。
【0039】
換言すれば、第1処理部41は、複数の計測点Pのうち、各計測点Pを注目計測点P
0として順に設定し、設定した注目計測点P
01を中心とした第1の処理対象領域H1内の計測数P
in1が第1の閾値P
th1以上である場合には、注目計測点P
01を削除する処理を、各注目計測点P
01ごとに実行する。これにより、
図5に示すように、第1処理部41は、第1の処理対象領域H1内の計測点P
in1の数、すなわち地面にある落ち葉等の障害物でないエッジの数を第1の閾値P
th1と等しい数まで削減することができる。
【0040】
第2処理部42は、第1処理の後の三次元空間内において、第1の処理対象領域H1とは異なる第2の処理対象領域H2内において計測点Pの数が第2の閾値P
th2以上存在しない場合には、第2の閾値P
th2内の計測点Pの数を所定値と等しい数まで削減する第2の削減処理を実行する。この所定値とは、第2の閾値P
th2未満の値であって、例えば、ゼロである。
【0041】
この第2の削減処理は、対応点探索が失敗してエッジの位置を誤検出した場合において、当該誤検出したエッジを除去する処理である。
【0042】
以下に、第2の削減処理について、
図6〜
図8を用いて説明する。なお、
図6〜
図8において、●は第2の処理対象領域H2外に存在する計測点P(P
out2)を示し、〇は、第2の処理対象領域H2内に存在する計測点P(P
in2)を示す。
【0043】
まず、
図6に示すように、第2処理部42は、第1の削減処理が実行された後に三次元空間に残った計測点Pのうち、任意の計測点を一つ選択し、その選択した計測点Pを注目計測点P
02に設定する。そして、第2処理部42は、設定した注目計測点P
02を中心とした第2の処理対象領域H2を上記三次元空間内に設定する。
【0044】
この第2の処理対象領域H2は、X軸方向の長さΔX2、Y軸方向の長さΔY2、及びZ軸方向の長さΔZ2の直方体で示される領域である。この第2の処理対象領域H2は、エッジ検出部31で検出されるエッジが縦エッジ又は横エッジかによって形状が異なってもよい。例えば、本実施形態のように、エッジ検出部31で検出されるエッジが縦エッジである場合には、Z軸方向の長さΔZ2がX軸方向の長さΔX2及びY軸方向の長さΔY2よりも長くなるような直方体に設定する。一方、エッジ検出部31で検出されるエッジが横エッジである場合には、X軸方向の長さΔX2がY軸方向の長さΔY2及びZ軸方向の長さΔZ2よりも長くなるような直方体に設定する。ただし、第2の処理対象領域H2の形状は直方体に限定されず、一定の領域を有するものであればよく、例えは、立方体であってもよいし、楕円形状であってもよい。
【0045】
第2処理部42は、設定した第2の処理対象領域H2内に存在する計測点P
in2が第2の閾値P
th2(例えば、P
th2=8)以上存在していない場合には、
図7に示すように、注目計測点P
02を削除する。第2処理部42は、第2の処理対象領域H2内に存在する計測点P
in2が第2の閾値P
th2以上でない場合に注目計測点P
02を削除する処理を、すべての計測点Pに対して実行(第2の処理の実行)することで、第2の処理対象領域H2内の計測点Pの数を所定値(例えば、ゼロ)に調整する。
【0046】
換言すれば、第2処理部42は、複数の計測点Pのうち、各計測点Pを注目計測点P
02として順に設定し、設定した注目計測点P
02を中心とした第2の処理対象領域H2内の計測数P
in2が第2の閾値P
th2以上存在していない場合には、注目計測点P
02を削除する処理を、各注目計測点P
02ごとに実行する。これにより、
図8に示すように、第2処理部42は、第2の閾値P
th2以上の計測点P
in2が存在しない第2の処理対象領域H2において、当該第2の処理対象領域H2内の計測点P
in2の数、すなわち誤検出したエッジの数を削減することができる。
【0047】
検出部5は、第2の削減処理を実行した後において、三次元空間上に残っている測定点Pの位置情報に基づいて障害物を検出する。例えば、検出部5は、三次元空間上に残っている測定点Pの位置に障害物が存在すると判定することで、当該障害物を検出してもよい。なお、この場合には、障害物の距離情報は、当該障害物に対応する測定点Pの位置情報から求めることができる。
【0048】
次に、本発明の一実施形態に係る障害物検出装置2の障害物の検出方法について、
図9を用いて説明する。
図9は、本発明の一実施形態に係る障害物検出装置2の障害物の検出方法の流れを示す図である。
【0049】
エッジ検出部31は、ステレオカメラ1が移動体の前方を異なる方向から同時に撮像しその撮像した一対の画像である第1の撮像画像及び第2の撮像画像を取得する(ステップS101)。そして、エッジ検出部31は、取得した第1の撮像画像及び第2の撮像画像のそれぞれにおいてエッジを検出する(ステップS102)。
【0050】
探索部32は、エッジ検出部31で検出された第1の撮像画像のエッジに対応する第2の撮像画像のエッジである対応点エッジを、いわゆる対応点探索することで特定する(ステップS103)。そして、探索部32は、第1の撮像画像のエッジと当該エッジに対応する第2の撮像画像の対応点エッジとを用いて、同一部分のエッジに対する両画像間における視差を求める。そして、位置計測部33は、探索部32で得られた視差から三角測量の原理を用いて、エッジの位置情報を計測する(ステップS104)。
【0051】
次に、第1処理部41は、位置計測部33が計測した複数の計測点Pのうち、任意の計測点を一つ選択し、その選択した計測点Pを注目計測点P
01に設定する(ステップS105)。そして、第1処理部41は、設定した注目計測点P
01を中心として、同一平面上における所定領域を示す第1の処理対象領域H1を上記三次元空間内に設定する(ステップS106)。
【0052】
第1処理部41は、設定した第1の処理対象領域H1内において計測点Pの数が第1の閾値P
th1以上であるか否かを判定する(ステップS107)。第1処理部41は、第1の処理対象領域H1内において計測点Pの数が第1の閾値P
th1以上であると判定した場合には、注目計測点P
01を削除してステップS109に進む(ステップS108)。一方、第1処理部41は、第1の処理対象領域H1内において計測点Pの数が第1の閾値P
th1未満であると判定した場合には、注目計測点P
01を削除せずにステップS109に進む(ステップS108)。
【0053】
第1処理部41は、三次元空間内に存在する全ての測定点Pに対してステップS106〜S108までの処理を行ったか否かを判定する。すなわち、第1処理部41は、三次元空間内に存在する測定点Pにおいて、注目計測点P
01として設定していない測定点(以下、「未設定測定点」という。)があるか否かを判定する(ステップS109)。第1処理部41は、注目計測点P
01の未設定測定点があると判定した場合には、その未設定測定点のうち、一つの測定点を注目計測点P
01に設定して(ステップS110)、ステップS106に移行する。この処理により、全ての測定点Pのそれぞれに対してステップS106〜S108までの処理を実行させることができる。したがって、地面にある落ち葉やテクスチャ(地面のタイルの模様等)等の障害物ではないエッジを除去することができる。
【0054】
第2処理部42は、第1処理部41において三次元空間内に存在する測定点Pにおいて、注目計測点P
01の未設定測定点がないと判定された場合には、三次元空間上に残っている計測点Pのうち、任意の計測点を一つ選択し、その選択した計測点Pを注目計測点P
02に設定する(ステップS111)。そして、第2処理部42は、設定した注目計測点P
02を中心とした第2の処理対象領域H2を三次元空間内に設定する(ステップS112)。
【0055】
第2処理部42は、設定した第2の処理対象領域H2内に存在する計測点Pが第2の閾値P
th2以上存在していないか否かを判定する。すなわち、第2処理部42は、第2の処理対象領域H2内に存在する計測点Pが第2の閾値P
th2未満か否かを判定する(ステップS113)。
【0056】
第2処理部42は、第2の処理対象領域H2内に存在する計測点Pが第2の閾値P
th2未満であると判定した場合には、注目計測点P
02を削除してステップS115の処理に進む(ステップS114)。一方、第2処理部42は、第2の処理対象領域H2内に存在する計測点Pが第2の閾値P
th2以上であると判定した場合には注目計測点P
02を削除せずにステップS115の処理に進む。
【0057】
第2処理部42は、三次元空間内に存在する全ての測定点Pに対してステップS112〜S114までの処理を行ったか否かを判定する。すなわち、第2処理部42は、三次元空間内に存在する測定点Pにおいて、注目計測点P
02として設定していない未設定測定点があるか否かを判定する(ステップS115)。第2処理部42は、注目計測点P
02の未設定測定点があると判定した場合には、その未設定測定点のうち、一つの測定点を注目計測点P
02に設定して(ステップS116)、ステップS112に移行する。この処理により、第1の削減処理後において三次元空間に残っている全ての測定点Pのそれぞれに対してステップS112〜S114までの処理を実行させることができる。したがって、対応点探索が失敗してエッジの位置を誤検出した場合において、当該誤検出したエッジを除去することができる。
【0058】
検出部5は、第2処理部42において三次元空間内に存在する測定点Pにおいて、注目計測点P
02の未設定測定点がないと判定された場合には、三次元空間上に残っている計測点Pの位置情報に基づいて、移動体の前方方向に存在する障害物を検出する(ステップS117)。
【0059】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0060】
(変形例1)上記実施形態では、第1の削減処理の後に第2の削減処理を実行したが、本発明はこれに限定されない。例えば、本実施形態では、データ処理部4は、第1の削減処理及び第2の削減処理の少なくともいずれかの削減処理を実行すればよい。例えば、データ処理部4は、位置計測部33で計測した各計測点Pに対して第1の削減処理を実行する。そして、検出部5は、第1の削減処理が実行された後に、三次元空間に残っている計測点Pに基づいて障害物を検出する。これにより、地面にある落ち葉やテクスチャ(地面のタイルの模様等)等の障害物ではないエッジを除去することができる。したがって、障害物の検出精度を向上させることができる。
また、例えば、データ処理部4は、第1の削減処理を実行せずに、位置計測部33で計測した各計測点Pに対して第2の削減処理を実行する。そして、検出部5は、第2の削減処理が実行された後に、三次元空間に残っている計測点Pに基づいて障害物を検出する。これにより、対応点探索が失敗してエッジの位置を誤検出した場合において、当該誤検出したエッジを除去することができる。したがって、障害物の検出精度を向上させることができる。
【0061】
(変形例2)上記実施形態では、第1のカメラ11及び第2のカメラ12を水平に並べて配置したが、本発明はこれに限定されない。例えば、第1のカメラ11及び第2のカメラ12を垂直に並べて配置してもよい。この場合には、いわゆる垂直ステレオ視によって横エッジが抽出され、この横エッジの位置が位置計測部33により計測されることになる。
【0062】
(変形例3)上記実施形態では、ステレオカメラ1が二台のカメラ(第1のカメラ11及び第2のカメラ12)を備える場合について説明したが、これに限定されない。例えば、ステレオカメラ1は、二台以上のカメラを有していればよい。
【0063】
以上、説明したように、本実施形態に係る障害物検出装置Aは、ステレオカメラ1の撮像範囲内における障害物を検出する障害物検出装置である。そして、障害物検出装置Aは、その撮像範囲内の任意の領域を示す処理対象領域内に存在する計測点Pの数に応じて、処理対象領域内の計測点Pを削減する削減処理を実行する。
【0064】
このような構成によれば、地面に散らばる落ち葉を示すエッジや、誤検出により単独で存在するエッジを除去することできる。これにより、障害物でないものを除去することが可能となり、障害物の検出精度を向上させることができる。
【0065】
例えば、データ処理部4は、削減処理として、同一平面上における所定領域を処理対象領域に設定し、当該設定した前記処理対象領域内において計測点Pの数が第1の閾値P
th1以上である場合には、処理対象領域内の計測点の数を第1の閾値P
th1と等しい数まで削減する。
【0066】
このような構成によれば、地面にある落ち葉や路面のタイル模様などのテクスチャを示すエッジを削除することが可能となる。したがって、地面にある落ち葉や路面のタイル模様などのテクスチャを障害物と認識することを抑制し、障害物を正しく検出することができる。
【0067】
例えば、データ処理部4は、削減処理として、処理対象領域内において計測点Pの数が第2の閾値P
th2以上存在しない場合には処理対象領域内の計測点Pの数を所定値(例えば、ゼロ)に削減する。
【0068】
このような構成によれば、対応点探索において誤検出したエッジを削除することができる。したがって、障害物が存在しない位置に障害物があると誤検出することを抑制することができ、障害物を正しく検出することができる。
【0069】
このように、本実施形態では、地面のテクスチャーなどのエッジは、同一平面上に存在すること、また、対応点探索により誤検出したエッジは、広い空間にわたって分散するという特徴を見出した。そして、障害物検出装置Aは、このような特徴から、まとまって存在しないエッジに対して、第1の処理及び第2の処理の少なくともいずれかの処理を実行することにより、障害物でないエッジを除去する。
なお、第1の処理を実行した後に第2の処理を実行することで、地面のテクスチャーなどのエッジ及び対応点探索により誤検出したエッジの両方を除去することができるため、障害物の検出精度をさらに向上させることができる。
【0070】
したがって、本来障害物として認識する必要のない物体の検出や誤検出が低減され、障害物検出システムAが車両に搭載された場合には、その車両の自律走行において、悪影響を与えずに安全かつ安定的な障害物検知ができるようになる。
【0071】
なお、本実施形態に係る障害物検出装置Aが備える各部は、障害物検出装置Aの第1の処理及び第2の処理の少なくともいずれかの処理の制御に関する各種処理を行う、コンピュータ読み取り可能な記録媒体に記録されたプログラムをインストールし、このプログラムをコンピュータに実行させることで、構成してもよい。つまり、コンピュータに障害物検出装置Aの第1の処理及び第2の処理の少なくともいずれかの処理の制御に関する各種処理を行うプログラムを実行させることにより、障害物検出装置Aが備える各部としてコンピュータを機能させることで、障害物検出装置Aを構成してもよい。コンピュータはCPU、ROM、RAM、EEPROM(登録商標)等の各種メモリ、通信バス及びインタフェースを有し、予めファームウェアとしてROMに格納された処理プログラムをCPUが読み出して順次実行することで、障害物検出装置Aとして機能する。