特許第6556675号(P6556675)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ZMPの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6556675
(24)【登録日】2019年7月19日
(45)【発行日】2019年8月7日
(54)【発明の名称】物体検出方法及びその装置
(51)【国際特許分類】
   G01B 11/00 20060101AFI20190729BHJP
   G01C 3/06 20060101ALI20190729BHJP
【FI】
   G01B11/00 H
   G01C3/06 110V
【請求項の数】14
【全頁数】28
(21)【出願番号】特願2016-166341(P2016-166341)
(22)【出願日】2016年8月26日
(65)【公開番号】特開2018-31753(P2018-31753A)
(43)【公開日】2018年3月1日
【審査請求日】2018年10月4日
(73)【特許権者】
【識別番号】501055145
【氏名又は名称】株式会社ZMP
(74)【代理人】
【識別番号】100082876
【弁理士】
【氏名又は名称】平山 一幸
(72)【発明者】
【氏名】渡邉 龍人
(72)【発明者】
【氏名】サルブッチ ヴァレリオ
【審査官】 齋藤 卓司
(56)【参考文献】
【文献】 特開2014−120026(JP,A)
【文献】 特開2015−032185(JP,A)
【文献】 特開2004−178229(JP,A)
【文献】 特開2016−099932(JP,A)
【文献】 特表2016−522508(JP,A)
【文献】 米国特許出願公開第2013/0060540(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01B 11/00
G01C 3/06
(57)【特許請求の範囲】
【請求項1】
ステレオカメラで撮影した物体の左右画像から画素毎に視差を求め、3次元点群データからなる3次元距離画像を生成し、前記3次元点群データを、グリッド状の複数のセルが2次元面に配置された2次元マップに投票して第1占有グリッドマップを生成し、前記第1占有グリッドマップを用いて前記物体の3次元情報を検出する物体検出方法において、
前記複数のセルの境界付近に跨って、冗長なセルをオーバーラップさせて配置し、前記冗長なセルにも、前記3次元点群データを投票して、冗長な第2占有グリッドマップを生成し、前記第2占有グリッドマップを用いて前記物体の3次元情報を検出することを特徴とする、物体検出方法。
【請求項2】
前記2次元マップに投票する際に、
前記物体までの距離に応じた重みを掛けることを特徴とする、請求項1記載の物体検出方法。
【請求項3】
前記重みは、前記物体までの距離の二乗であることを特徴とする、請求項2記載の物体検出方法。
【請求項4】
前記第2占有グリッドマップに対する投票値を、閾値を用いて2値化して2値のマップを生成し、前記2値のマップに対してラベリング処理を行うことを特徴とする、請求項1〜3のいずれか1項記載の物体検出方法。
【請求項5】
前記ラベリング処理の前に収縮処理及び膨張処理を行うことを特徴とする、請求項4記載の物体検出方法。
【請求項6】
前記物体までの距離に応じて、投票する前記セルの範囲を広げることを特徴とする、請求項1〜5のいずれか1項記載の物体検出方法。
【請求項7】
前方路面のパラメータを前記投票の前に前記3次元点群データを用いて推定し、前記3次元点群データを、前記パラメータを用いて路面座標系に変換することを特徴とする、請求項1〜6のいずれか1項記載の物体検出方法。
【請求項8】
物体を撮影して前記物体の左右画像を取得するステレオカメラと、
前記左右画像から画素毎に視差を算出する視差算出部と、
前記視差から、3次元点群データからなる3次元距離画像を生成する3次元距離画像生成部と、
前記3次元点群データを、グリッド状の複数のセルが2次元面に配置された2次元マップに投票して、第1占有グリッドマップを生成する占有グリッドマップ生成部と、
前記第1占有グリッドマップを用いて前記物体の3次元情報を検出する物体検出部と、
を有し、
前記占有グリッドマップ生成部は、
前記複数のセルの境界付近に跨って、冗長なセルをオーバーラップさせて配置し、前記冗長なセルにも、前記3次元点群データを投票して、冗長な第2占有グリッドマップを生成し、
前記物体検出部は、
前記第2占有グリッドマップを用いて前記物体の3次元情報を検出することを特徴とする、物体検出装置。
【請求項9】
前記占有グリッドマップ生成部は、
前記2次元マップに投票する際に、前記物体までの距離に応じた重みを掛けることを特徴とする、請求項8記載の物体検出装置。
【請求項10】
前記重みは、前記物体までの距離の二乗であることを特徴とする、請求項9記載の物体検出装置。
【請求項11】
前記物体検出部は、
前記第2占有グリッドマップに対する投票値を、閾値を用いて2値化して2値のマップを生成し、前記2値のマップに対してラベリング処理を行うことを特徴とする、請求項8〜10のいずれか1項記載の物体検出装置。
【請求項12】
前記物体検出部は、
前記ラベリング処理の前に収縮処理及び前記膨張処理を行うことを特徴とする、請求項11記載の物体検出装置。
【請求項13】
前記占有グリッドマップ生成部は、
前記物体までの距離に応じて、投票する前記セルの範囲を広げることを特徴とする、請求項8〜12のいずれか1項記載の物体検出装置。
【請求項14】
前方路面のパラメータを前記投票の前に前記3次元点群データを用いて推定し、前記3次元点群データを、前記パラメータを用いて路面座標系に変換することを特徴とする、請求項8〜13のいずれか1項記載の物体検出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、占有グリッドマップ(Occupancy Grid Map、以下「OGM」という。)を用いて、視点から物体までの距離、高さ等の3次元(3D)情報を検出する物体検出方法及びその装置に関するものである。
【背景技術】
【0002】
図27は、従来の物体検出方法を示す概略図である。従来の物体検出方法では、立体的な物体の画像を取得する一対のセンサ、例えば、左カメラ101L及び右カメラ101Rからなるステレオカメラ100を用いている。ステレオカメラ100によって取得された左画像及び右画像からなるステレオ画像から、3D距離画像生成処理部120により視差が求められ、3次元点群データ(即ち、3Dデータ)からなる3D距離画像が生成される。そして、予め定めた傾きによる座標変換部125とOGM生成処理部130により、3D距離画像から地表が推定され、指定された高さ以上の物体が抽出されて、真上から見下ろされた2次元(2D)マップの対応する位置に表示された2DのOGM10が生成される。
【0003】
図28は、図27の従来のOGM10の例を示す図である。OGM10は、ステレオカメラ100の位置を原点にして、左右方向をX軸、前後の奥行き方向をY軸とした絶対座標系を、基準単位で格子状(グリッド状)の複数のセル11に分割し、前方の立体的な物体の占有確率(存在確率)をセル11毎に表示したものである。セル11上には、物体を検知して投票した点群13aが表示されている。なお、セルサイズは、任意あるいはステレオカメラ1の検出精度(解像度)に応じて最適なサイズに決定される。
【0004】
特許文献1には、OGMを使用して物体、例えば、走行する車両の周囲の物体を検出する物体検出方法が記載されている。特許文献1の車両用OGM10では、一対のセンサが搭載された車両の走行状況に適合するように、車両の近接領域ではセル11の面積が小さく、車両の遠方領域ではセル11の面積が大きく構成され、あるいは、車両の速度が速い場合にはセル11の面積が大きく、車両の速度が遅い場合にはセル11の面積が小さく構成されるようになっている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特表2016−522508号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来のOGM10を用いた物体検出方法あるいは物体検出装置では、以下の(a)〜(e)のような課題1〜5があった。
【0007】
(a) 課題1
従来のOGM10では、一対のセンサが検出した位置に対応するグリッド内のセル11に投票していくが、その位置によって、有効となる投票数が変化してしまい、物体の検出が不安定になることがある。つまり、従来のOGM10では、物体が存在する部分に対応するセル11内の投票数(即ち、点群13aの数)が閾値以上であれば、そこに物体が存在するとしていたが、同一物体が複数のセル11に跨っている場合がある。仮に2つのセル11,11の境界線上に物体があったとすると、その物体は、2つのセル11,11に分かれて投票されることになり、もしその物体が検出できるぎりぎりの閾値を設定していた場合には、その物体が検出されないことになる。
【0008】
(b) 課題2
課題2の1として、ステレオカメラ100のノイズの塊によって、本来存在しない物体がセル11となって検出される問題がある。
また、課題2の2として、従来のOGM10では、一つの物体に対して複数のセル11が対応する場合がある。この場合、OGM10をその後の認識や制御で使う時には、複数に渡るセル11を統合して一つの物体として扱えるようにすることが望ましいが、そのようにできなかった。
【0009】
(c) 課題3
一対のセンサとして、例えば、ステレオカメラ100を用いた場合、検出される物体は、そのステレオカメラ100に面した物体の面積に応じて投票数が決まる。この際、同じ物体であっても、近くにある場合は、ステレオカメラ100の画素に対する投影面積が大きくなるので、その物体の見えている部分の面積に対する投票数が多くなる。一方、物体が遠方にある場合には、その物体の同じ面積に対応するステレオカメラ100の画素数が小さくなるので、投票数が少なくなってしまう。そのため、遠くの物体ほど検出し難いという欠点がある。
【0010】
(d) 課題4
一対のセンサとして、例えば、ステレオカメラ1を用いた場合、遠方になると、ステレオカメラ100による測距精度が低下する。そのため、近場では、物体に対する投票(即ち、物体の点群13a)が一つのセル11内に収まっていたものが、遠方になると、ステレオカメラ100の測距精度が悪化するので、二つ以上のセル11に分散されてしまい、一つ当たりのセル11への投票数が少なくなってしまい、遠方の物体ほど検出し難いという欠点がある。
【0011】
(e) 課題5
一般に、OGMを作成する前に3次元点群データを作成する。この際、路面に対して傾いているカメラ座標系から、X−Y座標軸の作る平面が前方の路面と一致するように新たに取得した路面座標系へと変換する必要がある。この際、従来は、車両等に取り付けたカメラに対してキャリブレーションを行ったり、あるいは画面によって、カメラの前方路面に対するカメラの向きの傾きと高さをあらかじめ決めて、その値を用いて座標変換する必要があった。しかし実際には、車両の後部に重い荷物を積んだり、あるいは後部座席に人が乗ったり乗らなかったり、あるいは急な加減速によって、車両のピッチ角が変動するなどして、実際の路面に対して常に正しい路面座標系に変換されているとは限らなかった。
【0012】
本発明では、より精度の高い3D情報が得られる物体検出方法を提供することを第1の目的とし、物体検出装置を提供することを第2の目的とする。
【課題を解決するための手段】
【0013】
第1の目的を達成するために、本発明の物体検出方法は、ステレオカメラで撮影した物体の左右画像から画素毎に視差を求め、3D点群データからなる3D距離画像を生成し、前記3D点群データを、グリッド状の複数のセルが2次元面に配置された2Dマップに投票して、第1OGMを生成し、前記第1OGMを用いて前記物体の3D情報を検出する方法であって、前記複数のセルの境界付近に跨って、冗長なセルをオーバーラップさせて配置し、前記冗長なセルにも、前記3D点群データを投票して、冗長な第2OGMを生成し、前記第2OGMを用いて前記物体の3D情報を検出することを特徴とする。
【0014】
第2の目的を達成するために、本発明の物体検出装置は、物体を撮影して前記物体の左右画像を取得するステレオカメラと、前記左右画像から画素毎に視差を算出する視差算出部と、前記視差から、3D点群データからなる3D距離画像を生成する3D距離画像生成部と、前記3D点群データを、グリッド状の複数のセルが2次元面に配置された2Dマップに投票して、第1OGMを生成するOGM生成部と、前記第1OGMを用いて前記物体の3D情報を検出する物体検出部と、を有している。
そして、前記OGM生成部は、前記複数のセルの境界付近に跨って、冗長なセルをオーバーラップさせて配置し、前記冗長なセルにも、前記3D点群データを投票して、冗長な第2OGMを生成し、前記物体検出部は、前記第2OGMを用いて前記物体の3D情報を検出することを特徴とする。
【0015】
前記発明の物体検出方法及びその装置において、例えば、前記2Dマップに投票する際に、前記物体までの距離に応じた重みを掛けてもよい。
前記第2OGMに対する投票値を、閾値を用いて2値化して2値のマップを生成し、前記2値のマップに対してラベリング処理を行ってもよい。前記ラベリング処理の前に収縮処理及び膨張処理を行ってもよい。また、前記物体までの距離に応じて、投票する前記セルの範囲を広げてもよい。
さらに、前方路面のパラメータを前記投票の前に前記3次元点群データを用いて推定し、前記3次元点群データを、前記パラメータを用いて路面座標系に変換してもよい。
【発明の効果】
【0016】
本発明の物体検出方法及びその装置によれば、複数のセルの境界付近に跨って、冗長なセルをオーバーラップさせて配置し、その冗長なセルにも、3D点群データを投票しているので、同一物体が複数のセルに跨っている場合であっても、その物体を的確に検出できる。
【0017】
2Dマップに投票する際に、物体までの距離に応じた重みを掛けた場合には、遠くの物体ほど検出し難いという課題を解決できる。
2値のマップに対して収縮処理及び膨張処理を行うことにより、ステレオカメラの小さなノイズを的確に除去できる。
ラベリング処理を行うことにより、複数に渡るセルを統合して一つの物体として扱えるようになり、第2OGMを用いた物体の認識や制御が容易になる。
また、物体までの距離に応じて、投票するセルの範囲を広げれば、遠方の物体ほど検出し難いという課題を解決できる。
【図面の簡単な説明】
【0018】
図1】本発明の実施例1における物体検出装置の全体を示す概略の機能ブロック図である。
図2A】本実施例1の物体検出方法の全体の処理を示すフローチャートである。
図2B図2AのステップS4の詳細を示すフローチャートである。
図3A】本実施例1におけるROGMの例を示す図である。
図3B】従来のOGMの例を示す図である。
図4A】本実施例1におけるROGMの他の例を示す図である。
図4B】従来のOGMの他の例を示す図である。
図5】本実施例1におけるROGMの他の例を示す図である。
図6A】本実施例1のROGMにおける複数のセルの配置例を示す図である。
図6B】本実施例1のROGMにおける複数のセルの配置例を示す図である。
図6C】本実施例1のROGMにおける複数のセルの配置例を示す図である。
図6D】従来のOGMにおける複数のセルの配置例を示す図である。
図7A】本実施例1におけるROGMのアルゴリズム1の処理例を示すフローチャートである。
図7B】本実施例1におけるROGMのアルゴリズム2の処理例を示すフローチャートである。
図8】課題3の解決方法を説明するための図である。
図9図2AのステップS9における収縮処理を示す図である。
図10図2AのステップS9における膨張処理を示す図である。
図11A】ラベリング処理において対象とする2値化画像を示す図である。
図11B】ラベリング処理において4連結の場合を示す図である。
図11C】ラベリング処理において8連結の場合を示す図である。
図11D】ラベリング処理においてラスタスキャンとルックアップテーブルを示す図である。
図11E】ラベリング処理において白い画素に対するラベル番号の振り方を示す図である。
図11F】ラベリング処理において最初に番号を割り振った様子を示す図である。
図11G】ラベリング処理において更にラスタスキャンを続ける様子を示す図である。
図11H】ラベリング処理において新たな番号(2)を割り振った様子を示す図である。
図11I】ラベリング処理において更に新たな番号(3)を割り振った様子を示す図である。
図11J】ラベリング処理においてルックアップテーブルの書き換えの様子を示す図である。
図11K】ラベリング処理において更にルックアップテーブルの書き換えを示す図である。
図11L】ラベリング処理において全ての画素に対してラベル番号が割り振られた状態を示す図である。
図11M】ラベリング処理においてラベル番号が修正された状態を示す図である。
図12】(a)〜(c)は、ステレオカメラの位置を横方向で変えたときの実施例の画像を示す図である。
図13】実施例のROGMによる箱の検出の投票数を示す図である。
図14】比較例のOGMによる箱の検出を示し、(a)は横方向の投票数を、(b)は横方向及び奥行き(距離)方向の投票数を示す図である。
図15】ノイズを調べるのに用いた画像を示し、(a)が右カメラの画像を、(b)が距離画像を示す図である。
図16】距離画像から得られる3D点群に対して、ROGM処理をした投票結果を示す図である。
図17図16のデータを閾値が10000として2値化した結果を示す図である。
図18図17のデータを収縮・膨張処理した結果を示す図である。
図19図18の2値データをラベリング処理した結果を示す図である。
図20】遠方の投票を調べるのに用いた画像を示し、(a)が左画像を、(b)が右画像を、(c)は距離画像である。
図21】実施例のROGMによるマップである。
図22】比較例のOGMによるマップである。
図23】遠方の車両を調べるのに用いた画像を示し、(a)が左画像を、(b)は距離画像を示す図である。
図24】実施例の3D値から求めたROGMの結果を示す図である。
図25図24のデータを2値化した結果を示す図である。
図26図25のデータを収縮・膨張処理した結果を示す図である。
図27】従来の物体検出方法を示す概略の図である。
図28図27の従来のOGMの例を示す図である。
【発明を実施するための形態】
【0019】
本発明を実施するための形態は、以下の好ましい実施例の説明を添付図面と照らし合わせて読むと、明らかになるであろう。但し、図面はもっぱら解説のためのものであって、本発明の範囲を限定するものではない。
【実施例1】
【0020】
(実施例1の物体検出装置の全体の構成)
図1は、本発明の実施例1における物体検出装置20の全体を示す概略の機能ブロック図である。
【0021】
物体検出装置20は、物体を撮影する左カメラ21L及び右カメラ21Rからなるステレオカメラ21を有している。このステレオカメラ21の出力側には、視差算出部22、3D距離画像生成部としての距離・3D情報算出部23、前方路面からのカメラ高さ・傾き推定部24、前方路面に合わせた傾き変換部25、OGM生成部としてのOGM算出部26、ノイズ除去部27、物体検出部28、検出物体情報の出力部29及び、グローバルマップ表示部30が、縦続接続(cascade connection)されている。これらの視差算出部22、距離・3D情報算出部23、前方路面からのカメラ高さ・傾き推定部24、前方路面に合わせた傾き変換部25、OGM算出部2626、ノイズ除去部27、物体検出部28、検出物体情報の出力部29及びグローバルマップ表示部30は、例えばコンピュータ等の情報処理装置によって構成されている。
【0022】
ステレオカメラ21は、左カメラ21Lによって左画像を取得し、右カメラ21Rによって右画像を取得する装置であり、この出力側に視差算出部22が接続されている。視差算出部22は、ステレオカメラ21から入力される左右画像から画素毎の視差を求めるものであり、この出力側に距離・3D情報算出部23が接続されている。
【0023】
距離・3D情報算出部23は、算出された視差から、物体までの距離と3D座標値を求めるものであり、この出力側に、前方路面からのカメラ高さ・傾き推定部24及び前方路面に合わせた傾き変換部25が接続されている。前方路面からのカメラ高さ・傾き推定部24及び前方路面に合わせた傾き変換部25は、高さ・ピッチ・ロール変換を行うものであり、前方の路面から平面の傾き(ピッチ、ロール)と平面に対するカメラ位置高さとを推定し、この推定した高さ・傾き情報から、3D座標値を路面に平行な3D座標系へと変換する機能を有し、この出力側に、OGM算出部26が接続されている。
【0024】
OGM算出部26は、第1OGMへの投票・閾値処理を行うものであり、変換された3D座標系において、ある条件を満たす3D点を路面に平行な2Dマップである第1OGM上に、予め決めた重みを掛けて投票し、得られた投票数から、第2占有グリッドマップ(Redundant Occupancy Grid Map、以下「ROGM」又は「第2OGM」という。)に対する投票値を求める。ROGMとは、従来のOGMを改良し、物体位置に関わらず、安定した物体検出を可能にする2次元マップであり、従来のOGMに対し、「冗長な」という意味のRedundantを加えた略語である。OGM算出部26では、更に、得られたROGMの投票値に対して、画像を2値化する機能を有している。このOGM算出部26の出力側には、ノイズ除去部27と物体検出部28が接続されている。
【0025】
ノイズ除去部27と物体検出部28は、算出された2値のマップであるROGMに対して適切な回数の収縮・膨張処理を行い、処理された2値のROGMに対してラベリング処理を行い、更に、予め決めた幅、高さ等の大きさを満たす物体のみを抽出する機能を有し、この出力側に、検出物体情報の出力部29が接続されている。ここで、収縮・膨張処理はノイズ除去部27により、ラベリング処理は、物体検出部28により行われる。
【0026】
検出物体情報の出力部29は、抽出された物体に識別子(ID)、幅、高さ等の情報を付与して出力するものであり、この出力側に、グローバルマップ表示部30が接続されている。グローバルマップ表示部30は、出力部29の出力結果を表示画面に表示するものである。
【0027】
(実施例1の物体検出方法の全体の処理)
図2Aは、図1の物体検出装置20を用いた本実施例1の物体検出方法における全体の処理を示すフローチャートであり、図2Bは、図2AのステップS4の詳細を示すフローチャートである。
【0028】
本実施例1の物体検出方法では、図1の物体検出装置20により、ステップS1〜S12の処理が行われる。
【0029】
物体検出の処理が開始されると、先ず、ステップS1において、ステレオカメラ21によって前方の物体が撮影され、撮影された左右の画像が、視差算出部22へ入力され、ステップS2へ進む。ステップS2において、視差算出部22は、入力された左右画像から画素毎に視差値を求め、ステップS3へ進む。ステップS3において、距離・3D情報算出部23は、求められた視差値から物体までの距離と3D座標値を求め、ステップS4,S5へ進む。
【0030】
ステップS4において、前方路面からのカメラ高さ・傾き推定部24及び前方路面に合わせた傾き変換部25は、前方の路面から平面の傾き(ピッチ、ロール)と平面に対するカメラ位置高さとを推定し、ステップS5へ進む。ステップS5において、傾き変換部24は、推定した高さ・傾き情報から、3D座標値を路面に平行な3D座標系へと変換し、ステップS6,S7,S8へ進む。
【0031】
ステップS4の詳細を図2Bにより説明する。
ステップS4−1において、前方路面の指定された範囲の3D点座標のpi= (Xi, Yi, Zi)の個数を求めnとし、全てのpiに対する平均値を取り、重心qとし、ステップS4−2において、分散共分散行列Cを求める。
ステップS4−3において、ヤコビ法によりCの固有値と固有ベクトルを求め、最小固有値に対応する固有ベクトルを(uX, uY, uZ)とし、ステップS4−4において、全てのpiに対してh=uXX+uYY+uZZを求め、hの平均値ε、分散σを求める。
ステップS4−5において、ε−2σ<h<ε+2σを満たさないpiをサンプル点から除外する。
ステップS4−6において、残ったサンプル点に対して前方路面の指定された範囲の3D点座標のpi= (Xi, Yi, Zi)の個数を求めn とし、ステップS4−7において、全てのpiに対する平均値を取り、重心q=(Xa, Ya, Za)とし、分散共分散行列C=Σ(pi−q)(pi−q)Tを求める。
ステップS4−8において、ヤコビ法により、Cの固有値と固有ベクトルを求め、最小固有値に対応する固有ベクトルを(uX, uY, uZ)とし、ステップS4−9において、ロール(θX), ピッチ(θY), ヨー(θZ)を求め、ステップS4−10においてカメラの高さ、h(h=uXXa+uYYa+uZZa)を求める。
【0032】
上記のステップS4の各ステップによる、所謂平面当てはめ法によりカメラの高さの推定ができる。つまり、ステレオカメラ21で得られた前方路面のある範囲内の3次元点群データを用いて、前方路面を近似する平面の法線ベクトルを求め、その法線ベクトルからカメラ座標のロール、ピッチ、ヨーの3つの角度が求まり、その法線ベクトルから、その平面の高さのパラメータも求まり、カメラの路面に対する高さが求まる。従って、前方路面の傾き等を反映した路面座標(Xs,Ys,Zs)が得られる。本発明では、このように推定した路面座標を、路面座標系とも呼ぶ。
【0033】
ステップS4の処理をリアルタイムで実行することにより、リアルタイムでカメラの路面に対する傾き情報と高さ情報が得られる。これにより、後部重量物の搭載や急な加減速による車両の状態の変化による影響を避けることができる。車両に近い前方路面は、一般に平坦であると想定できる。アスファルト等の路面に対して、良好なステレオカメラキャリブレーションを施され、十分な広さのダイナミックレンジを持つカメラであれば、撮影されたカメラ画像は、ステレオマッチングのために十分なテクスチャを持つため、路面上の密な3D点群情報が得られる。これらの情報から、前方路面を近似するような前方路面の傾き等を反映した路面座標系(Xs,Ys,Zs)を得ることができる。これにより、上記課題5を解決することができる。
【0034】
ステップS6において、OGM算出部26は、変換された3D座標系において、ある条件を満たす3D点を、路面に平行な2次元マップであるOGM上に予め決めた重みを掛けて投票し、ステップS7へ進む。ステップS7において、OGM算出部26は、得られた投票数からROGMに対する投票値を求め、ステップS8へ進む。ステップS8において、OGM算出部26は、得られたROGMの投票値に対して、ある閾値以上のセルは、物体が存在する状態(1)とし、それ以外のセルには、物体が存在しない状態(0)として画像を2値化し、ステップS9,S10,S11へ進む。
【0035】
ステップS9において、ノイズ除去部27は、算出された2値のROGMに対して適切な回数の収縮処理及び膨張処理を行い、ステップS10へ進む。ステップS10において、物体検出部28は、処理された2値のROGMに対してラベリング処理を行い、ステップS11へ進む。ステップS11において、物体検出部28は、ラベリング処理結果から、予め決めた幅、高さ等の大きさを満たす物体のみを抽出し、ステップS12へ進む。
【0036】
ステップS12において、検出物体情報の出力部29は、抽出された物体にID、幅、高さ等の情報を付与する。付与された情報は、グローバルマップ表示部30によって表示され、物体検出処理が終了する。
【0037】
図2AのステップS1〜S3の詳細)
ステレオカメラ21による距離算出は、左カメラ21Lと右カメラ21Rとの視差の違いから、カメラ間距離等を用いて、三角測量の原理によって求められる。同じレンズとセンサを用いたカメラを左カメラ21L及び右カメラ21Rとして用い、レンズの焦点距離をf、カメラ間距離(ベースライン長)をw、センサの画素サイズ(一辺のサイズ)をu、そして視差をd(pix)とすると、ステレオカメラ21から物体までの距離Lは、次式(1)で表される。
L=fw/du・・・・(1)
【0038】
この式(1)から分かるように、距離Lは、視差dに反比例するため、視差dが小さいほど遠くなり、視差dが大きいほど近くになる。また、視差dの変化に対する距離Lの変化を考えると、式(1)から下記の式(2)が求まる。この式(2)は、ある視差dにおいて、視差dの微小な変化(視差誤差△d)に対して、距離Lがどれくらい変わるかを示している。ここで、△Lは、距離の変化(距離誤差)を示す。例えば、レンズ焦点距離f=6mm、カメラ間距離w=210mm、センサ画素サイズu=3.75μm(=0.00375mm)という値を実際に考えた場合の式が得られている。
【0039】
【数1】
【0040】
一般に、ステレオカメラ21を用いて視差dを求める際に、1画素未満の精度で求める手法が提案され、それによって、例えば、1/4〜1/10画素程度の精度が実現されている。実際にその精度が実現されるかどうかは、被写体となる物体上のテクスチャの濃さやエッジの強さによって影響される。
【0041】
仮に、物体が常にある程度のテクスチャがあると仮定でき、且つ、それによって視差誤差△dの大きさのサブピクセル(例えば、1/4pix)であるとすると、ある視差dに対して、式(2)で表されるような距離誤差△Lが得られる。
本実施例1では、その距離誤差△Lを基にしてOGMに対する投票を考え直している。
【0042】
即ち、ステレオ処理(左右画素間の対応づけ)を行って、ある画素に対して視差dが求まっている。そして、期待できるサブピクセル精度として、視差誤差△dを決めておく。その場合に、式(2)によって、視差dに対する距離Lの誤差ΔLを含んだ変動幅が得られる。その範囲を確率密度と考え、その範囲に含まれるセルに対して投票を行う。その際に、使用する情報処理装置の性能に応じて、性能が高ければ、ガウス分布のような分布に応じた投票とし、また、性能が低ければ、同じ確率密度を持つものとして、均等に投票する。これにより従来の課題4を解決している。
【0043】
図2AのステップS3〜S7の詳細)
図3Aは本発明の実施例1におけるROGM40の例を示す図であり、図3Bは、第1OGMとしての従来のOGM10の例を示す図である。OGM10には、複数のセル11(=11−1,11−2)が配置されている。なお、各セル11は正方形として図示されているが、OGM10の設計によって、それは横長の長方形でも縦長の長方形でもなりうるが、ここでは説明の便宜上、正方形としている。
【0044】
図3Bに示すように、物体がたまたまOGM10の2つのセル11−1,11−2の境界位置にあったとき、物体を検知して投票した点群13aは、図示のようになる。
【0045】
OGM10の1つの効能として、センサであるステレオカメラ21のノイズの除去が挙げられる。本当の物体に対するステレオカメラ出力の点群13aの数に対して、ステレオカメラ21のノイズによる点群の数は、相対的に少ないと考えられる。そのため、セル11−1,11−2に投票された点群13aの数に対して適切な閾値を設定して、それ以上のものだけを物体として検出することにより、ノイズを除去できる。
【0046】
もし、その閾値を、物体検出のために必要な数に対してぎりぎりの値としていた場合、2つのセル11−1,11−2の境界位置に物体が存在していると、この物体を検出できないおそれがある。例えば、図3Bの場合には、物体に対して10個の点群13aが投票されている。この場合、閾値をぎりぎりの10個としていると、実際の投票は、左側のセル11−1と右側のセル11−2に分かれているので、どちらのセル11−1,11−2も5個の投票となり、閾値の10個に届かず、その物体を検出できない。そこで、本実施例1では、そのような従来の課題1を解決するために、図3Aに示すような第2OGMとしてのROGM40を用いている。
【0047】
図3Aに示すように、ROGM40には複数のセル31(例えば、2つのセル31−1,31−2)が配置され、これらの2つのセル31−1,31−2の中央に、新たに領域をオーバーラップさせた冗長なセル31−3が配置されている。中央の冗長なセル31−3にも、左右のセル31−1,31−2と同様に投票すると、その冗長なセル31−3に対する投票された点群33aの数が10個となり、閾値以上の投票となって従来のOGM10では検出できなかった物体を検出できる。
【0048】
つまり、従来のOGM10では、格子状のオーバーラップしないセル11−1,11−2を用いているが、本実施例1では、オーバーラップさせたセル31−3を冗長に配置することで、左右のセル31−1,31−2の境界付近に存在する物体(33a)の検出を可能にし、物体位置に関わらず安定した検出を可能にしている。
図4Aは、本発明の実施例1におけるROGM40の他の例を示す図であり、図4Bは従来のOGM10の他の例を示す図である。
【0049】
図3Bの場合は、従来のOGM10において2つのセル11−1,11−2の境界付近に物体が存在した場合であったが、図4Bのように、従来のOGM10において4つのセル11(=11−1〜11−4)の境界付近に物体が存在する場合もある。このような場合には、図4Aに示すように、本実施例1のROGM40において4つのセル31(=31−1〜31−4)の中央に、冗長な1つのセル31−5を配置することによって、図3Aの2つのセル31−1,31−2の場合と同様に、中央に追加したセル31−5では、投票された点群33aの数が10個となり、その物体が検出できるようになる。
【0050】
以上述べたことを、一般性をもって処理できるように、ROGM40のアルゴリズムを構成する。
【0051】
図5は、本発明の実施例1におけるROGM40の他の例を示す図である。本実施例1の図3Aに示すROGM40では、1つのセル31−1に対して横方向に、セル31−1の幅の半分だけずらして、新たなセル31−3を配置する。同様に、本実施例1の図5に示すROGM40では、縦方向に、セル31−1の高さの半分だけずらして、新たなセル31−5を配置する。そして、本実施例1の図4Aに示すように、斜め方向に新たなセル31−5を配置する。
【0052】
図6A図6B及び図6Cは、本実施例1のROGM40における複数のセル31の別の配置例を示す図であり、図8Aは、従来のOGM10における複数のセル11の配置例を示す図である。
【0053】
前記の図3A図3B図4A図4B図5の複数のセル31,11の配置例から、それらのセル31、11の中心を「×」で表すと、本実施例1のROGM40のセル31の配置は、図6Aのようになり、従来のOGM10のセル11の配置は、図6Dのようになる。従来のセル11の中心の数と元々のセル11の数に対して、密度として比較すると、本実施例1では、横方向で2倍、縦方向で2倍、縦横合計で4倍の数となっている。
【0054】
以上述べたことを、一般性をもって処理できるように、本実施例1のROGM40のアルゴリズムを以下のように構成していく。
【0055】
図6Aに示された「×」の点を格子点とするような新たなグリッドを構成する。このグリッドは、元のグリッドの半分(縦横共に)の大きさのセル31を持っている。但し、新しいセル31の中心は、「×」印ではなく、セル31の四隅の位置に「×」印が来るように配置する。その新しいグリッドとセル31は、図6Bのようなものになる。
【0056】
これらのグリッドに対して、従来と同様に、ステレオカメラ21の出力を、位置に応じて新しい各セル31に対して投票する。投票が終わってから、縦横2×2の新しいセル31の全ての投票数を加算して、「×」印の位置の投票数として登録する。これを全ての「×」印に対して行い、その数を登録する。
【0057】
中央の「×」印に対して、投票される新たな小さなセル31の投票範囲を、図8Cの灰色部分31gとして表した。また、元々のセル31の中央位置は、新しく求めた小さなセルの2×2の領域の中央位置と一致しているので、元のセル31との位置のずれはない。
【0058】
この処理によって、全ての「×」印の位置において、それに対する投票の範囲は、元のセル31と同じサイズのものとなり、それが、縦横が元のサイズの半分の割合で求まったことになる。これは、前記のように「×」印の点で、投票範囲がそれぞれ元のセルサイズの半分ずつオーバーラップした範囲の投票数が求まっていることになる。
【0059】
以上で、本実施例1におけるROGM40の投票処理が終了する。この投票処理により、従来に比して閾値を大きくしても物体の検出が可能となり、よりノイズに強い検出が可能になる。但し、得られた物体位置は、隣のセル31でも検出されやすくなるので、実際の物体範囲よりも大きめになり、膨らんで検出される。しかし、後で述べる収縮処理及び膨張処理によって、検出されたセル31を統合し、その統合された複数のセル31の中から、実際にステレオカメラ21が出力している部分だけを抽出することにより、膨らんでいない実体サイズに近い領域を検出することができる。従って、従来の課題1を解決できる。
【0060】
図7Aは、本発明の実施例1におけるROGM40のアルゴリズム1の処理例を示すフローチャートである。このアルゴリズム1では、図2AのステップS3〜S7に対応する処理がステップS20〜S36により行われる。
【0061】
処理開始が開始されてステップS20に進むと、ステレオカメラ21にて取得される左右の画像中の画素(ix,iy)(但し、ix;左右のX軸方向の画素値、iy;前後のY軸方向の画素値)において、画素値iyを初期値(=0)に設定し、更に、次のステップS21において、画素値ixを初期値(=0)に設定し、ステップS22へ進む。
【0062】
ステップS22において、距離・3D情報算出部23は、画素(ix,iy)に対するカメラ座標系の3D座標(X,Y,Z)を求め、ステップS23へ進む。ステップS23において、前方路面からのカメラ高さ・傾き推定部24及び前方路面に合わせた傾き変換部25は、予め決めたステレオカメラ21に対するロール・ピッチ・高さ情報から、3D座標(X,Y,Z)を路面座標(Xs,Ys,Zs)に変換し、ステップS24へ進む。
【0063】
ステップS24において、OGM算出部26は、路面座標(Xs,Ys,Zs)がOGM10の範囲内にあるか否かを判定し、範囲外(No)のときにはステップS26へ進み、範囲内(Yes)のときにはステップS25へ進む。ステップS25において、OGM算出部26は、路面座標値Xs,Ysを整数化した座標値iXs,iYsに対応するOGM10に座標値Xsの2乗値を加算し、ステップS26へ進む。
【0064】
なお、座標(Xs,Ys)のセルに対する添え字(iXs,iYs)の密度は、ROGM40の添え字(iXs2,iYs2)の密度と同じになる。
ROGM40の一つのセルのサイズは、後述する式(3)により倍となるため、従来のOGM10に比べるとセルサイズは従来のOGM10の半分のサイズにしておくことが望ましい。
【0065】
ステップS26において、OGM算出部26は、座標値ixに1を加算し、この加算値ix+1が座標値nxより小さいか否か(ix<nx?)をステップS27で判定し、小さいときには(Yes)ステップS22へ戻り、大きいときには(No)ステップS28へ進む。ステップS28において、OGM算出部26は、座標値iyに1を加算し、この加算値iy+1が座標値nyより小さいか否か(iy<ny?)をステップS29で判定し、小さいときには(Yes)ステップS21へ戻り、大きいときには(No)ステップS30へ進む。
【0066】
ステップS30において、OGM算出部26は、座標値iYs2を初期値(=0)に設定し、更に、ステップS31において、座標値iXs2を初期値(=0)に設定し、ステップS32へ進む。
ステップS32において、OGM算出部26は、次式(3)の演算を行い、ROGM40に対する投票値ROGM(iXs2,iYs2)を求め、更に、ステップS33〜S36の処理を繰り返す。
ROGM(iXs2,iYs2)=OGM(iXs2,iYs2)+OGM(iXs2,iYs2+1)+OGM(iXs2+1,iYs2)+OGM(iXs2+1,iYs2+1) ・・・・(3)
【0067】
OGM算出部26は、ステップS33において、座標値iXs2に1を加算し、ステップS34において、その加算値iXs2+1が座標値nXsより小さいか否か(iXs2<nXs?)を判定し、小さいときには(Yes)ステップS32へ戻り、大きいときには(No)ステップS35へ進む。更に、OGM算出部26は、ステップS35において、座標値iYs2に1を加算し、ステップS36において、その加算値iYs2+1が座標値nYsより小さいか否か(iYs2<nYs?)を判定し、小さいときには(Yes)ステップS31へ戻り、大きいときには(No)アルゴリズム1の処理を終了する。
【0068】
図7Bは、本発明の実施例1におけるROGM40のアルゴリズム2の処理例を示すフローチャートである。このアルゴリズム2では、図2AのステップS8に対応する処理がステップS40〜S45により行われる。
【0069】
ステップS40では、OGM算出部26により、ROGM40の各セル31に対する投票値ROGM(iXs2,iYs2)がアルゴリズム1で求められている。ステップS41において、OGM算出部26は、求められた投票値ROGM(iXs2,iYs2)が予め決めた閾値TH以上か否か(投票値ROGM(iXs2,iYs2)≧閾値TH?)を判定し、閾値TH以上のときには(Yes)ステップS42において、そのセル31に物体が存在し、閾値THより小さければ(No)、ステップS43において、そのセル31に物体が存在しないとする。OGM算出部26は、ステップS44において、セル31に対する物体の存在の状態値として、+1か0を与える。これにより、OGM算出部26は、ステップS45において、ROGM40の状態を2値の画像として表示することができる。
【0070】
図2AのステップS6の詳細)
図8は、課題3の解決方法を説明するための図である。
【0071】
例えば、ステレオカメラ21から見て前方に、横2m×縦2mのサイズ(前面投影面積)の物体があったとする。画素サイズが5μmのステレオカメラ21で、焦点距離が10mmのレンズを使ったレンズ・カメラ系があった場合、10mでは、2m×2mの物体は、次式(4)のような三角形の相似計算により、ステレオカメラ21上では、400×400画素の大きさになる。
2/10 = x/10・・・・(4)
x=2mm
2/0.005=400画素
【0072】
その物体が40m遠方にあった場合には、同様に、次式(5)のような三角形の相似計算により、ステレオカメラ21上では、100×100画素の大きさとなる。
2/40=x/10・・・・(5)
x=20/40=0.5mm
0.5/0.005=100画素
【0073】
OGM10では、画素1つに対して1つの投票を行うため、この状況では、10m先の場合には、400×400=160,000点の投票が行われる一方で、40m先では、100×100=10,000点の投票が行われる。OGM10の閾値として同じ値を使うとすると、10mの場合は、40mの場合に対して16倍も物体が取れやすくなることになる。これを是正するために、本実施例1では、距離に応じて投票に重みをつけることにする。つまり、同じ面積の物体に対して、画素数は距離の二乗に反比例して多くなる。これを補正するためには、物体までの距離の二乗を重みとして、投票数に乗じた値を投票するようにすればよい。これにより従来の課題3を解決できる。
【0074】
例えば、10m先の場合には10の二乗の100を、40m先の場合には40の二乗の1600を掛けた値を1画素毎に投票することにより、10m先の400×400画素の全ての画素による投票数は、160,000×100=16,000,000となり、40m先の100×100画素の全ての画素による投票数は、10,000×1600=16,000,000となり、同じ数となる。この重みは、あくまでも重みなので、実際の距離に対してスケールを掛けた値を用いてもよい。
【0075】
図2AのステップS9の詳細)
図9は、図2AのステップS9における収縮処理を示す図である。さらに、図10は、図4のステップS9における膨張処理を示す図である。この図9及び図10を参照しつつ、従来の課題2の1の解決方法について説明する。
【0076】
図2AのステップS9において、ノイズ除去部27は、算出された2値のROGM40に対して、適切な回数の収縮処理及び膨張処理を行う。そのために、モルフォロジー演算で使われるオープニング(収縮と膨張)を用いて、複数のセルを一つの塊として抽出して、それを一つの物体として出力する。
【0077】
膨張処理及び収縮処理では、一般的に2値化された白黒の画像に対して処理が行われ、注目画素35の周辺に1画素でも白い画素があれば白に置き換える処理を膨張(Dilation)といい、逆に周辺に1画素でも黒い画素があれば黒に置き換える処理を収縮(Erosion)という。
【0078】
ノイズにより誤って検出されたセルは、本当の物体に対してサイズが小さいと考えられるので、最初に、図9に示すような収縮処理を行うことで小さなセルが消去され、その後に、図10に示すような膨張処理を行うことによって元のサイズが復元される。
【0079】
図2AのステップS10のラベリング処理を行う前に、オープニング(収縮処理をしてから膨張処理を行う処理)を行うことによって、ステレオカメラ21の小さなノイズが除去され、大きな構造が残る。OGM10のセル内の投票数の閾値処理によってノイズを除去できるが、更に、オープニングを行うことで、セルとして抽出されてしまったノイズをここで除去することができるので、従来の課題2の1を解決できる。
【0080】
図2AのステップS10の詳細)
図11A図11Mは、従来の課題2の2を解決するための図2AのステップS10のラベリング処理を示す図である。
【0081】
図11A図11Mにおいて、図11Aは対象とする2値化画像、図11Bは4連結の場合、図11Cは8連結の場合、図11Dはラスタスキャンとルックアップテーブル50、図11Eは白い画素に対するラベル番号の振り方、図11Fは最初に番号を割り振った様子、図11Gは更にラスタスキャンを続ける様子、図11Hは新たな番号(2)を割り振った様子、図11Iは更に新たな番号(3)を割り振った様子、図11Jはルックアップテーブル50の書き換えの様子、図11Kはラベリング処理において更にルックアップテーブル50の書き換えをした様子、図11Lは全ての画素に対してラベル番号が割り振られた状態、及び、図11Mはラベル番号が修正された状態、をそれぞれ示す図である。
【0082】
前記図7A及び図7Bに示すROGM40のアルゴリズム1,2では、投票数が閾値よりも大きな部分に物体が存在すると推定して、そのセルに対して状態1か0を与えて2値画像を生成し、更に、その2値画像に対して収縮処理及び膨張処理を行っている。その後、図2AのステップS10では、収縮・膨張処理の結果に対して、ラベリング処理を行うことによって、大きな物体の場合には複数のセルの集合から成るものとして登録し、小さな物体の場合には、最小で1個のセルから成る物体として登録することにより、従来の課題2の2を解決している。
【0083】
以下、図11A図11Mを参照しつつ、ラベリング処理について説明する。2値化画像処理された画像において、白の部分(又は黒の部分)が連続した画素に同じ番号を割り振る処理をラベリング処理という。このラベリング処理は、通常、同じ番号毎の面積(画素数)や幅、高さ等の特徴量を求めて欠陥検査や分類処理等に用いられる。
【0084】
ラベリングには、図11Aのような2値化された画像の縦、横方向に連続している部分を同じラベルにする図11Bのような4連結の場合(即ち、4近傍の場合)と、縦、横、斜め方向に連続している部分を同じラベルにする図11Cのような8連結の場合(即ち、8近傍の場合)と、の2種類の処理がある。
【0085】
以下、8連結の場合において、ラベリング処理のアルゴリズムを説明する。
先ず、図11Dに示すように、画像全ての画素のラベル番号を0(ゼロ)で初期化しておき、ラベリングで番号を割り付けるためのラベリング番号のルックアップテーブル50を用意する。このルックアップテーブル50において、Srcは、後述のラスタスキャン時に最初に割り振る番号を示し、Dstは、その後の番号の割り振りの際に、新たに余分につけてしまった番号を、より小さな番号に振り直すための番号を書き込む欄である。そして、画像の左上から右方向へラスタスキャンを行い、画素36の色が白の位置を検索する。
【0086】
図11Eに示すように、白の画素36の左上、上、右上、左の画素37のラベル番号を参照し、全て0(ゼロ)の場合は、最後に割り振った番号+1のラベル番号を割り振る。もし、参照した画素37のラベル番号が複数存在した場合は、最小の番号を割り振る。
【0087】
図11Dのようにラスタスキャンを行って、最初に番号を割り振った様子が、図11Fに示されている。同様に続行すると、図11Gのようになる。さらにラスタスキャンを続けて、新たなラベル番号(2)を付けた様子が、図11Hに示されている。そして、更にラスタスキャンを続けて新たなラベル番号(3)を振った様子が、図11Iに示されている。
【0088】
図11Jに示すように、参照した画素のラベル番号が複数存在した場合、最小の番号を割り振る。この時、使用しなかったラベル番号(図11Jの例では3)に対応するルックアップテーブル50のSrc(3)の右側のDstの欄の数字を、このとき割り振られた最小の番号(1)に書き換える。以後、同様にラスタスキャンを続けて、図11Kに示すように、1を割り振る際に、右上の番号が「2」となっているため、最小の番号ではない値=2に対応するSrcの欄の右隣のDstに、実際に割り振った値=1を書き入れる。このようにして、図13Lに示すように、全ての画素に対してラベル番号が割り振られる。
【0089】
次に、処理の途中でルックアップテーブル50の番号を変更した番号を、得られた画像に対する番号に対して、例えば、「2→1、3→1、6→5」のように変更すると、図11Mに示すように、連続した領域は同じ番号になり、ラベリングが完了する。
【0090】
以上のようなラベリングを、ROGM40に適用することによって、大きな物体であっても小さな物体であっても、1つのラベル番号が与えられ、1つの物体として扱うことが可能になる。これにより従来の課題2を解決できる。
なお、以上の説明では、2値のマップに対してノイズを削除するために収縮処理及び膨張処理を行った後にラベリング処理をした。ここで、ノイズがないか又は非常に少ない場合には、収縮処理及び膨張処理を行わずに、2値のマップに対して直接、ラベリング処理を行ってもよい。
以下に、本発明の物体検出装置20の実施例を示す。
【実施例】
【0091】
実施例の物体検出装置20は、ステレオカメラ21とこのステレオカメラ21の出力側に接続されるコンピュータ(PCと呼ぶ)から構成した。PC、つまり情報処理装置は、図1に示す視差算出部22、距離・3D情報算出部23、前方路面からのカメラ高さ・傾き推定部24、前方路面に合わせた傾き変換部25、OGM算出部26、ノイズ除去部27、物体検出部28、物体情報の出力部29及びグローバルマップ表示部30を構成する。ステレオカメラ21とコンピュータは、インターフェースとなるUSB3.0を介して接続した。
【0092】
ステレオカメラ21は、以下の構成を有している。
ステレオカメラ21:ZMP社製、RoboVision(登録商標)2 カメラモジュール
CMOSイメージセンサ:ソニー製、IMX224を2個使用
解像度:1280×960ピクセル(30fps(frame per second))
【0093】
OSとしてWindows 8.1(64ビット)を搭載したPCを用いた。このPCに第1占有グリッドマップ及び冗長な第2占有グリッドマップを生成するソフトウェアをインストールした。PCの主要な構成を以下に示す。
CPU:インテル製 Core TMi7-5960X、8コア/3GHz
RAM:16GB
HDD:2TB
【0094】
(比較例)
実施例と比較するために、第1占有グリッド(OGM)マップを得る従来のソフトウェアをインストールした以外は、実施例1と同じステレオカメラ21とPCを用いた。
【0095】
(課題1に対する本発明の効果)
課題1に対する本発明の効果を評価するために、ターゲットを床面に固定した状態で、少しずつステレオカメラ21の位置を横にずらして行って、それぞれの位置でステレオ処理とOGM処理及びROGM処理を行った。ターゲットは、図示するようにロボットの絵が描かれた直方体の箱とした。
図12(a)〜(c)は、ステレオカメラ21の位置を横方向で変えたときの実施例の画像を示し、上段が画像であり、下段が距離情報を階調処理した距離画像である。ここで、上段ではステレオカメラ21の右カメラ21Rの画像のみを示し、左カメラ21Lの画像は省いている。図12では、視差範囲を制限したために、正しい視差が求まっていない部分が手前側と奥側に存在している。グリッドサイズは、横方向及び奥行き方向で共に0.5mである。下段の距離画像には、手前と奥を示している。
【0096】
図13は、実施例のROGM40による箱の検出の投票数を示す図である。図13では、ステレオカメラ21の横位置の変化(6通り)を、箱が常に同じ位置、即ち横方向位置が0の位置となるように補正した場合のROGM40の投票値を示す。これから横軸は補正後の横方向位置(m)であり、縦軸は投票数である。図13に示すように、箱がグリッドの境界線の近くでもセルの中央付近であっても、投票値はそれほど変わりがないことがわかる。これにより、箱の位置が、ROGM40のどの位置にあっても、閾値を高くしていった際に安定して箱を検出できることがわかる。
【0097】
図14は、比較例のOGM10による箱の検出を示し、(a)は横方向の投票数を、(b)は横方向及び奥行き(距離)方向の投票数を示す図である。ステレオカメラ21の横位置の変化は、図13と同じ6通りである。
図14(a)に示すように、少しずつ横位置をずらした場合に、OGM10のグリッドの境界上に箱がある場合、又はグリッドの間(セルのど真ん中)にある場合によって、投票数が変化することが分かる。
図14(b)に示すように、奥行き(距離)方向の投票数からは、箱に対応するセルの位置が分かるが、箱の位置がグリッド境界に近いほど、投票数が少ないことがわかる。これにより、比較例のOGM10では、実施例のROGM40とは異なり閾値を上げていくと、境界付近で物体を検出できなくなってしまうことが分かる。
【0098】
(課題2の1に対する本発明の効果)
本発明の課題2の1に対する効果を評価するために、ノイズが生じている距離画像において、収縮と膨張処理によるノイズ除去について説明する。
図15はノイズを調べるのに用いた画像を示し、(a)が右カメラ21Rの画像を、(b)が距離画像を示す図である。図15(b)は、図12の下段と同様に階調処理した距離画像である。
図15(a)に示すように、横断歩道に一人の歩行者と自転車に乗った人がおり、図15(b)に示すように、距離画像の上側の空の部分にステレオの誤対応によるノイズが生じている。
【0099】
図16は、距離画像から得られる3D点群に対して、ROGM処理をした投票結果を示す図である。図16の座標では、横方向及び奥行き(距離)方向に対して高さ方向に投票数を示している。図16に示すように、投票数の多い歩行者と自転車に乗った人と共に、ノイズが生じていることが分かる。
【0100】
図17は、図16のデータを閾値が10000として2値化した結果を示す図である。図17の座標は、高さ方向が2値(0、1)を示す以外は、図16と同じである。図17に示すように、二つの山が歩行者と自転車に乗った人に対応すると共に、手前の山がノイズに対応していることが分かる。
【0101】
図18は、図17のデータを収縮・膨張処理した結果を示す図である。図18の座標は、図17と同じである。収縮・膨張処理は、収縮と膨張をそれぞれ1回行った。図18に示すように、収縮・膨張処理により図17で生じたノイズによる山が除去されたことが分かる。
【0102】
(課題2の2に対する本発明の効果)
課題2の2に対する本発明の効果を評価するために、図18に示すノイズを除去した2値データのラベリング処理を行った。図18に示すように、この段階では、歩行者に対応する単に1の値のセルが並んでいる山が2つあり、この2つの山のそれぞれが、一つずつの塊として分けられていない。
【0103】
図19は、図18の2値データをラベリング処理した結果を示す図である。図19の座標は、高さ方向をラベルとした以外は図18と同じである。図19に示すように、ラベリング処理により、自転車に乗った人の塊を構成するすべてのセルに対しては、高さ方向の値、つまり1のラベルが与えられ、中央の歩行者の塊を構成するすべてのセルに対しては、高さ方向の値が2というラベルが割り振られていることが分かる。これにより、課題2の2の複数のセルから成る一つの塊に対して、ラベリング処理によって1つのラベリング値が与えられ、1つの物体として検出し取り扱うことが可能となる。
【0104】
(課題3に対する本発明の効果)
課題3に対する本発明の効果を評価するために、左右画像に対して3D値を求め、3D値から投票時に距離の自乗を加算した実施例のROGM40によるマップと従来のOGM10によるマップを求めた。
図20は、遠方の投票を調べるのに用いた画像を示し、(a)が左画像を、(b)が右画像を、(c)は距離画像である。図20(c)は、図12の下段と同様に階調処理した距離画像である。
図20に示すように、前方には図12と同じロボットの絵が描かれた直方体の箱があり、この箱の位置を、前方2mから4.5m迄0.5m毎に変えたときのROGM40及びOGM10によるマップを求めた。
【0105】
図21は、実施例のROGM40によるマップである。図21では、横方向及び奥行き(m)に対して高さ方向に投票数を示している。図21に示すように、箱の位置を0.5m毎に変化させたとき、ある程度のバラツキはあるものの遠方の箱の投票数も多くなり、距離による投票数の変化が後述する従来のOGM10よりも明らかに改善されていることが判明した。
【0106】
図22は、比較例のOGM10によるマップである。図22の座標は図21と同じである。図22に示すように、比較例のOGM10では距離に関係なく投票しているため、距離が遠くなると投票数も減っていることが分かる。
【0107】
(課題4に対する本発明の効果)
課題4に対する本発明の効果を評価するために、遠方に停車した車両に対して3D値を求め、3D値から実施例のROGM40によるマップと従来のOGM10によるマップを求めた。
図23は、遠方の車両を調べるのに用いた画像を示し、(a)が左画像を、(b)は距離画像を示す図である。図23(b)は、図12の下段と同様に階調処理した距離画像である。図23に示すように、前方に停止した車両と道路の両側には樹木があることが分かる。
【0108】
図24は、実施例の3D値から求めたROGM40の結果を示す図である。図24の座標は、図22と同じである。図22のROGM40は、投票時に距離の自乗を加算すると共に、視差誤差を考慮した式(2)に基づいて、奥行方向に投票するセルの範囲を広げる処理を行った。図24に示すように、遠方の物体に投票数が多い物体が観測される。なお、手前にある山は、明るい空のテクスチャが殆どなかったため、誤対応によるノイズを拾ったものである。
【0109】
図25は、図24のデータを2値化した結果を示す図である。図25の座標は、高さ方向が2値(0、1)を示す以外は、図24と同じである。図25に示すように、遠方に停止した車両を含む物体と、手前にノイズが生じていることが分かる。
【0110】
図26は、図25のデータを収縮・膨張処理した結果を示す図である。図26の座標は、図25と同じである。収縮・膨張処理は、収縮と膨張をそれぞれ1回行った。図26に示すように、収縮・膨張処理により図25で生じたノイズによる山が除去されたことが分かる。これにより、本発明の物体検出方法によれば、従来検出できなかった遠方の物体を検出することが可能となった。
【0111】
実施例のように遠方に停止した車両を、OGM10を使って検出しようとしたが、ラベリング後に検出できなかった。
【0112】
遠方に停止した車両を、実施例とは異なり、距離の自乗の加算と式(2)に基づいた処理をしないROGM40だけを使って検出しようとしたが、2値化後に収縮・膨張処理を行ったが何も検出されなかった。
【0113】
以上説明したように、上記実施例及び比較例によれば、課題1〜4を解決できることが判明した。
【0114】
本発明は、上記実施の形態に限定されるものではなく、特許請求の範囲に記載した発明の範囲内で種々の変形が可能であり、それらも本発明の範囲内に含まれることはいうまでもない。
【符号の説明】
【0115】
10 OGM
20 物体検出装置
21 ステレオカメラ
22 視差算出部
23 距離・3D情報算出部
24 前方路面からのカメラ高さ・傾き推定部
25 前方路面に合わせた傾き変換部
26 OGM算出部
27 ノイズ除去部
28 物体検出部
29 検出物体情報の出力部
30 グローバルマップ表示部
40 ROGM
50 ルックアップテーブル
図1
図2A
図2B
図3A
図3B
図4A
図4B
図5
図6A
図6B
図6C
図6D
図7A
図7B
図8
図9
図10
図11A
図11B
図11C
図11D
図11E
図11F
図11G
図11H
図11I
図11J
図11K
図11L
図11M
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28