【実施例1】
【0011】
本実施例は、例えば
図1及び
図2に示すように構成された物体認識装置に適用される。
【0012】
この物体認識装置は、自動車の安全性向上のため、車両状態及び周辺環境に応じて適切な制御を行うものである。これによって、物体認識装置は、例えば車両周辺の物体の位置と自車の運転状態をもとに安全に走行可能な制御を行う事ができる。
【0013】
この物体認識装置は、機能的には
図1に示すように、車両外部の情報を取得する車両外部情報取得部としての画像取得部102と、前記情報に基づいて車両外部に存在する物体を検出する物体検出部103と、前記物体検出部103で検出された物体に対する認識処理を行う認識処理部104と、前記物体検出部103での検出結果に基づいて前記認識処理部104における処理負荷を算出する処理負荷算出部105と、前記処理負荷に基づいて前記車両の制御内容を決定する車両制御内容決定部106と、を備える。物体検出部103と認識処理部104とは、画像処理部107とも称することができる。
【0014】
また、この物体認識装置は、車両の挙動情報(例えば、車速関連情報や操舵情報)をセンシングするセンサ部108と、センサの出力データを取得するセンサ出力取得部109とを備えている。具体的には、車速関連情報とは速度や加速度の情報であり、操舵情報とは操舵角の角速度である。
【0015】
画像取得部102は、車両外部の情報として、撮像装置101によって撮影された画像を取得する。但し、車両外部情報取得部は、画像取得部102に限定されるものではなく、レーダやソナー、ミリ波等を用いて車両外部の情報を取得するものであってもよい。また、処理負荷算出部105で演算される処理負荷は、認識処理に要する時間によって表わされる。
【0016】
この物体認識装置をより具体的なブロック図で表わしたものが
図2である。
【0017】
撮像装置101は、光学系(レンズ)や撮像素子などを有する。撮像装置101は、レンズが光軸方向の光を集め、撮像素子は光の強度に合わせてデジタル信号に変換して、画像を生成し、その画像を画像取得部111に出力する。撮像装置101は、具体的には、一つ以上のカメラモジュールからなり、周辺環境の画像を出力する。
【0018】
センサ部108は、車速センサやジャイロなどを有し、速度及び角速度を計測する。このセンサ部108は、具体的には1つ以上のセンサモジュールからなり、センサ情報を出力する。
【0019】
処理装置201は、CPU(central processing unit、中央演算処理装置)301、演算部302、センサ部108の信号を一時的に蓄える機能を有する入力バッファ303、撮像装置101の信号を一時的に蓄える機能を有する入力バッファ304、各種信号を記憶する記憶部305、出力を一時的に蓄える出力バッファ306を備えている。
【0020】
さらに、演算部302は、画像取得部102、センサ出力取得部109、画像処理部107、処理負荷算出部105、車両制御内容決定部106を備えている。
【0021】
画像取得部102は、撮像装置101からの画像を取得する。この画像取得102は、画像データを一旦入力バッファ303から記憶部305へ格納し、CPU301の制御に従い、所定の処理タイミングで画像データを読み出す。
【0022】
センサ出力取得部109は、センサ部102からの速度及び角速度のセンサ情報を取得する。このセンサ出力取得部109は、簡単な数値演算機能を有し、例えば、CPU301の制御に従って、取得したセンサ情報を元に所定の時刻における自車の総移動距離を計算し、センサデータとして出力することができる。
【0023】
画像処理部107は、画像取得部102が取得した画像データと、センサ出力取得部109が取得したセンサデータを用いて画像中の物体を検知する。この画像処理部107は、
図3に示すように、車両外部の情報に基づいて車両外部に存在する物体を検出する物体検出部103と、物体検出部103で検出された物体に対する認識処理を行う認識処理部104とを備えている。
【0024】
物体検出部103は、車両外部に存在する物体の大きさ、数、種別の少なくとも一つを検出する。具体的には、物体検出部103は、画像データを解析して初期検知データを算出する初期検知部401と、初期検知データをもとに処理領域を算出する処理領域算出部402とを備える。
【0025】
初期検知部401は、画像データを入力とし、物体検知で一般的に用いられている特徴量を初期検知データとして出力する。初期検知部401は、例えば、輝度、エッジ強度、エッジ角度、ハフ変換を算出し初期検知データとして出力する。さらに、初期検知部401は、この特徴量を解析し、ヒストグラム処理、線検知、円検知を実施し初期検知データとして出力する。この処理は、画素ごとに実施するが、画像データを所定の単位に区切り、その単位ごとに実施してもよい。この場合、その単位に含まれる画素の輝度値の合計値、平均値、分散、標準偏差等を出力する。初期検知部401は、以上の算出した初期検知データを、画像取得部102が取得した画像データと、センサ出力取得部109が取得したセンサデータと対応づけて、記憶部305に保存する。
【0026】
処理領域算出部402は、初期検知データを元に算出した処理領域を出力する。処理理領域算出部402が処理領域として設定する条件は検知する対象と検知する方法によって異なる。処理領域算出部402は、例えば、画素のエッジ強度が所定値以内であり、画像データを所定の大きさに区切り、前記画素を含む1単位における輝度値の平均値が所定値以内となる位置を処理領域Aとして出力する。また、処理領域算出部402は、線検知により検知された線のうち所定の方向と輝度値を有する線の位置を、別の処理領域Bとして出力する。処理領域算出部402はこれらの処理領域を所定の検知アプリと対応づけて記憶部305に保存する。
【0027】
認識処理部104は、オプティカルフローで移動体を検知する移動体検知部403と、画像データを視点変換して物体を検知しやすくする映像変換部404と、映像変換部が変換した結果を用いて立体物を物体として検知する立体物検知部405と、を有する。
【0028】
移動体検知部403は、画像取得部102が取得した複数の画像データと、センサ出力取得部109が取得したセンサデータを組み合わせて計算したオプティカルフローの値を元に移動体を検知する。自車が移動することによって移動体以外のフローも発生する場合には、センサデータに含まれる自車挙動を用いて自車移動によるフローをキャンセルすることができる。この結果、移動体のみのフローが得られる。得たフローを幾何的な関係とフローの時系列変化を用いてグループ化し、移動体として検知する。
【0029】
移動体検知部403は、グループ化した移動体のフローのベクトルと、移動体の接地位置から、その移動体の相対的な移動速度を算出する。移動体検知部403は、この相対的な移動速度とセンサデータから得た自車の車速を組み合わせて算出した絶対的な移動速度と、移動体の接地位置を一組として出力する。オプティカルフローを用いた物体検知の技術は公知であるため、これ以上詳しく述べない。移動体検知部403は、処理領域算出部402が出力した処理領域内のみを処理することで、処理時間を低減することができる。
【0030】
映像変換部404は、画像取得部102で取得した画像を、地面を基準面とした座標に変換する処理を行って、自車両を真上から見下ろしたような映像である俯瞰画像を出力する。座標変換はカメラパラメタを元に作成した座標変換テーブルを用いて行う。カメラパラメタは、焦点距離、画素ピッチ、レンズ歪、車両におけるカメラの取付位置及び姿勢である。このカメラパラメタを用いて、映像変換部404は、自車両から所定の距離までの範囲の映像を座標変換して俯瞰画像として出力することができる。この俯瞰画像は後述する立体物検知部405が立体物を検知する際に用いられる。
【0031】
立体物検知部405は、映像変換部404が出力した複数枚の画像と、センサ出力取得部109が出力したセンサ情報を用いて、立体物の有無が認識できた領域である立体物存在領域と、その領域までの距離を出力する。
【0032】
この立体物検知部405は、例えば、第一の画像をセンサ情報に従って並行移動又は回転移動して、その移動した第一の画像から第二の画像を減算して、差分画像を出力する。第一の画像の路面パタンと第二の画像の路面パタンが重なるように第一の画像を並行移動又は回転移動して減算処理を行うことで、路面では差分が小さくなり、それ以外である立体物存在領域では差分が大きくなる。立体物検知部405は、この差分画像に対してラベリング処理を行い、ラベル画像を出力し、ラベルごとに統計情報を出力する。
【0033】
ラベリング処理は、この差分画像に含まれる各画素について近傍点との濃淡差を計算し、その濃淡差の大きさが所定の範囲内だった場合、同じ番号を各領域固有の番号として与えラベル画像として出力する処理である。差分画像の濃淡値が所定値より低い部分は路面又は不明領域として扱う。
【0034】
立体物検知部405は、このラベル画像を立体物領域として出力する。立体物検知部405は、このラベリング画像に統計情報(各ラベルの面積、外接矩形の幾何情報、重心位置)を付加して出力する。
【0035】
さらに、立体物検知部405は、この立体物領域の履歴情報からマッチング処理を行う。このマッチングの結果から視差画像を生成し、それぞれの立体物領域までの距離を計算し、出力する。立体物検知部405は、処理領域算出部402が出力した処理領域内のみを処理することで、処理時間を低減することができる。
【0036】
本実施例の処理負荷算出部105は、認識処理の対象となる物体が複数検出された場合、認識処理の対象となる物体毎の処理負荷を合計して処理負荷を算出する。
【0037】
具体的には、処理負荷算出部105は、記憶部から読み出したデータを元に画像出力とセンサデータを処理するのに要する時間を物体認識処理時間として出力する。ここで、処理負荷は、画像中の前記物体に対して設定される処理領域の大きさに応じて決定される。処理負荷算出部105は記憶部に記憶された処理領域に対応づけられた検知アプリの固有番号を読み出し、その固有番号と対応する処理時間リストを読み出す。この処理時間リストは、例えば、処理領域の大きさと処理時間が記述されているリストである(
図5(A)参照)。
【0038】
また、処理負荷算出部105は、記憶部305に記録された処理領域をキーとして処理時間リストを走査することで、検知アプリを実行した場合の処理時間を得ることができる。処理負荷算出部105は、記憶部305に記憶された全ての処理領域に対して処理時間を算出し、記憶部305へ記憶する。処理負荷算出部105は、記憶された全ての処理時間をもとに、物体認識処理時間を出力する。この物体認識処理時間は、必要な検知アプリが全て実行完了するために必要な時間であるため、例えば、記憶された処理時間の和(線形和)で表わす。
【0039】
車両制御内容決定部106は、記憶部に記憶された挙動変換リストを参照して、処理負荷算出部105が算出した処理時間を車両挙動へ変換して出力する。この挙動変換リストは、例えば、処理時間と車速が記述されているリストであり、具体的には車速を出力する。この車両制御内容決定部106が出力する車両挙動は、車速に限定されず、操舵情報やウィンカー操作等であってもよい。
【0040】
制御部
203は、車両制御内容決定部106が出力した車両制御内容に従った制御を実行する。
【0041】
このように、物体認識装置は、撮像装置101で撮像した映像とセンサ部
108で計測したセンサ出力を入力として、物体検知を行うのに必要な処理時間を算出し、その処理時間を元に車両挙動を制御部
203へ入力するので、安全性を確保するのに必要な物体認識の精度を犠牲にすることなく実行する事ができる。
【0042】
この物体認識装置の動作を、
図4を用いて説明する。初期検知部401は画像取得部102が取得した画像を入力として、エッジペア、エッジ方向、幾何情報等の特徴量を算出する。算出する特徴量は検出したい物体の特性によって適切に選択する必要がある。
【0043】
図4(A)は、自車両が移動している際にフロントカメラを用いて人物と車両を検出する場合を例に初期検知を実行している例である。初期検知を実行した結果を元に、処理領域算出部402は、移動体検知部403と立体物検知部405で用いる処理領域を算出する。
図4(B)は、処理領域算出部402が、初期検知の結果から、歩行者検知の処理領域1つと立体物検知の処理領域2つを算出した例である。処理負荷算出部105は、この処理領域から処理時間を算出する。
【0044】
図5(A)は、処理負荷算出部105が移動体検知と立体物検知の処理時間リストを参照して、それぞれの処理時間を算出した例である。処理負荷算出部105は、算出した処理時間を加算して合計値を出力する。この例では、検知された移動体A、立体物B、立体物Cのそれぞれに要する処理時間を合計して、処理時間を20+30+50=100msと算出する。車両制御内容決定部106は、この処理時間の合計値を車両挙動に変換して出力する。
【0045】
図5(B)は、車両制御内容決定部106が、車両挙動変換リストを参照して、処理時間を車速へ変換する例である。この例では、処理時間100msに対応する車速は、12km/hである。最後に、
車両制御内容決定部106は、算出した車速を出力する。
【0046】
次に、物体認識装置の動作手順を、
図6を用いて説明する。
【0047】
ステップ701において、撮像装置101は車両周辺を撮影してその撮影画像を出力する。ステップ702において、センサ部
108は速度及び角速度を計測する。ステップ703において、画像取得部102は、
撮像装置101から画像を取得して記憶部305に送信する。ステップ704において、センサ出力取得部
109は、センサ部
108からの速度及び角速度の情報を取得して、記憶部305に送信する。ステップ705において、初期検知部401は、画像データを入力とし、物体検知で一般的に用いられている特徴量を初期検知データとして出力する。ステップ706において、処理領域算出部402は、初期検知データを元に算出した処理領域を出力する。
【0048】
ステップ707において、処理負荷算出部105は、記憶部305から読み出したデータを元に画像出力とセンサデータを処理するのに要する時間を物体検知処理時間として出力する。ステップ708において、車両制御内容決定部106は、処理負荷算出部105が算出した処理時間を、記憶部に予め記憶されている挙動変換リストを参照して、車両挙動へ変換し、車両挙動を出力する。ステップ709において、制御部
203は、車両制御内容決定部106が出力した車両挙動に従った制御を実行する。
【0049】
ステップ710において、移動体検知部403は、画像取得部102が取得した複数の画像データと、センサ出力取得部109が取得したセンサデータを組み合わせて計算したオプティカルフローの値を元に移動体を検知する。ステップ711において、映像変換部404は、画像取得部102で取得した画像を、地面を基準面とした座標への変換を行って、自車両を真上から見下ろしたような映像である俯瞰画像を出力する。ステップ712において、立体物検知部405は、映像変換部404が出力した複数枚の画像と、センサ出力取得部109が出力したセンサ情報を用いて、立体物の有無が認識できた領域として立体物存在領域とその領域までの距離を出力する。
【0050】
この物体認識装置によれば、画像認識アプリが物体検知の処理を完了するのに必要な時間を算出して、その結果に応じた車両制御を行うことができる。即ち、この物体認識装置によれば、物体の認識処理を行う時間を確保できるように車両制御内容を決定するため、物体の認識結果の信頼度自体を向上させることができる。
【実施例3】
【0055】
次に、実施例3の物体認識装置について
図8を用いて説明する。本実施例の物体認識装置は、認識処理部104が認識処理する対象物体を所定の条件で選定するものである。即ち、本実施例の物体認識装置は、検知された全ての物体に対する認識処理の負荷を演算するのではなく、特に処理の優先度が高い物体(例えば、最も近い物体、最も相対速度が大きい物体など)に対する認識処理の負荷を演算する。これによって、認識処理の対象物体を必要性の高いものに絞ることにより、処理負荷を過大に算出するのを抑制し、車両外部の状況により適した車両制御が可能となる。実施例1又は2と共通する部分に関しては、説明を割愛する。
【0056】
本実施例では、物体検出部103は、車両外部に存在する物体が複数検出された場合、最も相対速度が大きい物体を少なくとも認識処理の対象となる物体として検出する。また、物体検出部103は、物体が複数存在する場合、最も距離が近い物体を少なくとも認識処理の対象となる物体として検出する。物体検出部103の検知結果は、認識処理部104及び処理負荷算出部105に出力される。
【0057】
具体的には、本実施例の物体検出部103は、
図8のように、物体までの距離を取得する物体距離情報取得部406と、取得した物体までの距離と自車の車両挙動をもとに物体の接近速度と接近時間を算出する接近速度/時間取得部407と、をさらに備える。
【0058】
物体距離情報取得部406は、記憶部305に記憶されている物体の位置情報を元に現在必要な物体の距離情報を取得する。具体的には、物体距離情報取得部406は、過去の物体の位置情報と現在の車両挙動の情報から、現在の物体の位置情報を推定することで、現在必要な物体の距離情報を取得する。
【0059】
また、接近速度/時間取得部407は、記憶部305に記憶されている物体の接近速度又は接近時間を取得する。記憶部305に物体の相対速度が記憶されている場合には、これを接近速度として取得する。一方、記憶部に移動体検知部403で最終的に得られた物体の絶対的な移動速度が記憶されている場合には、この絶対的な移動速度に最新時点での自車両の車速を足すことにより、相対速度を求めるものであってもよい。
【0060】
また、本実施例の認識処理部104は、物体距離算出部408と、接近速度/時間算出部409とを備える。物体距離算出部408は、立体物検知部405で行ったマッチング処理によって生成された視差画像を用いて、物体までの距離を計算し、出力する。そして、計算された距離は、記憶部305に記憶される。
【0061】
接近速度/時間算出部409は、物体距離算出部408で算出した距離情報と現在の自車の車速を組み合わせることで物体の接近速度と接近時間を算出する。なお、接近速度/時間算出部409は、物体の位置情報だけでなく、物体の移動速度を取得して物体の接近速度と接近時間を算出する。そして、算出された接近速度と接近時間は、記憶部305に記憶される。
【0062】
この物体認識装置の動作を、
図8を用いて説明する。なお、本実施例の初期検知及び処理領域算出は、
図4(A)、(B)で説明したものと共通であるため、説明を省略する。
【0063】
図9(A)は、物体距離情報取得部406が、各物体又は各処理領域までの距離を取得した例である。物体検知部103は、
図9(B)に示すように、物体距離取得部406が取得した距離をもとにして、自車位置から所定の範囲(例えば3m)以内にある物体又は処理領域を選択する。
【0064】
図10(A)は、接近速度/時間取得部407が、それぞれの処理領域内に位置する物体の接近速度を取得した例である。物体検知部103は、
図10(B)に示すように、接近速度/時間算出部409が算出した移動速度をもとに最も接近する物体を選択する。
【0065】
図11(A)は処理負荷算出部105が、移動体検知と立体物検知の処理時間リストを参照して、それぞれの処理時間を算出した例である。処理負荷算出部105は、
図9(B)での判断および
図10(B)での判断に基づいて選択された物体を参考に処理時間を算出する。この例では、両方の条件に合致する物体の処理時間を算出する。処理負荷算出部は、算出した処理時間を加算して合計値を出力する。この例では、移動体Aと、立体物Cが認識処理対象となるため、処理時間は、20+30=50msとなる。
【0066】
車両制御内容決定部106は、処理時間を車両挙動に変換して出力する。
図11(A)、(B)は、車両制御内容決定部106が、車両挙動変換リストを参照して、処理時間を車速へ変換する例である。最後に
車両制御内容決定部106は、算出した車速を出力する。車両制御内容決定部106は、現在の車速と処理時間を変換して得た車速を比較して、現在の車速の方が低速なら車速を変更しない。この例では現在の車速が20km/h、処理時間を変換して得た車速が48km/hなので、車速を変更しない。
【0067】
この物体認識装置によれば、処理許容時間を算出する際に、物体までの距離を取得し、その距離と現在の車両挙動を組み合わせて物体と自車の接近速度/時間を算出することで、物体が移動物体の場合により安全な制御を行う事ができる。
【0068】
なお、本発明に係る物体認識装置は、上記実施形態で説明されたものに限定されず、本発明の範囲内で適宜変更可能である。
【0069】
例えば、処理負荷は、処理領域の大きさに応じて決定されるものを説明したが、これに限られず、物体認識装置が認識した物体の個数に基づいて決定されるものであってもよい。この場合でも、物体の個数が多ければ、少ない場合に比べて処理負荷が大きいと簡易的に判断することができる。このようにすれば、簡易な判断によって、物体検出部での処理負荷自体を抑制することができる。