オンラインリスク認識システム
【課題】実際の環境下での経験を自律的に学習して危険度を認識する際、多様な外界環境に対するロバスト性を向上する。
【解決手段】1次元上ループ上のSOMを走行状態に応じて複数のモデルに分割したモデル群を昼夜の別等に応じて並列化しておく。そして、認識モデル設定部5aで選択したモデル群の中から車速や舵角等の情報によって使用するモデルを選択することで、入力データの希薄な部分に対してユニットが配置されることを回避する。次に、認識学習部5bでSOMモデルに特徴量抽出部4で抽出した画像特徴量のみを入力して状態の認識及び学習を行うことで、性質の異なるデータ入力に対するロバスト性を向上する。更に、リスク認識部7で状態と教師との相関関係を求め、状態のリスクを学習・認識する。これにより、リスク認識の際の多様な外界環境に対するロバスト性を向上することができる。
【解決手段】1次元上ループ上のSOMを走行状態に応じて複数のモデルに分割したモデル群を昼夜の別等に応じて並列化しておく。そして、認識モデル設定部5aで選択したモデル群の中から車速や舵角等の情報によって使用するモデルを選択することで、入力データの希薄な部分に対してユニットが配置されることを回避する。次に、認識学習部5bでSOMモデルに特徴量抽出部4で抽出した画像特徴量のみを入力して状態の認識及び学習を行うことで、性質の異なるデータ入力に対するロバスト性を向上する。更に、リスク認識部7で状態と教師との相関関係を求め、状態のリスクを学習・認識する。これにより、リスク認識の際の多様な外界環境に対するロバスト性を向上することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自動車等の移動体の外部環境に含まれるリスクを適応的に学習して認識するオンラインリスク認識システムに関する。
【背景技術】
【0002】
近年、自動車等の移動体における予防安全技術として、カメラを搭載して外界環境を撮像し、撮像した画像を処理して外界環境に含まれる危険度(リスク)の情報を認識し、ドライバに警告する、又は運転をアシストするといった技術が開発されている。
【0003】
このような危険情報の認識技術は、例えば、特許文献1に開示されている。特許文献1の技術は、車両周囲の環境の対象物に対して、その種類や属性毎に危険度パラメータを設定し、この危険度パラメータに基づいて危険度を演算するものである。
【0004】
特許文献1に開示されているような従来の技術では、歩行者、対向車、障害物、白線等といった危険に結びつく要因を設定し、それらに基づいてリスクの認識を行っており、実際のシステムとしては、開発者が想定したリスク要因や認識を予めシステム内に組み込んでおくという形で実現されている。
【0005】
しかしながら、自動車の走行環境のような実際の環境は、天候の変化、歩行者、車、路上の構造物等の存在といったように多様であり、更には、運転する人間も多様であるため、従来の予め設定した一つの認識モデルでは限界があり、危険に結びつく要因についての認識が高精度で行われなければ、全体としてのリスクを認識できないばかりでなく、予め想定していた以外の危険な場面では認識できないという問題がある。
【0006】
このため、本出願人は、特許文献2において、実際の環境下での経験をシステムが自律的に学習し、多様な外界環境に対応して危険度の認識を可能とすることのできるオンライン学習システムを提案している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−81039号公報
【特許文献2】特開2008−238831号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献2の技術は、実際の環境下での経験をシステムが自律的に学習するため、ユーザの運転傾向に適合した認識が可能である。しかしながら、特許文献2の技術は、実環境下での場所の違いや時間帯の違い等に対して学習及び認識効率が低下する可能性があり、ロバスト性を向上する上で改善の余地があった。
【0009】
本発明は上記事情に鑑みてなされたもので、実際の環境下での経験を自律的に学習して危険度を認識する際、多様な外界環境に対するロバスト性を向上することのできるオンラインリスク認識システムを提供することを目的としている。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明によるオンラインリスク認識システムは、移動体の外界環境を検出し、この外界環境に含まれるリスクを学習的に認識するオンラインリスク学習システムであって、上記外界環境の検出情報を処理して上記外界環境に含まれる多次元の特徴量を抽出する特徴量抽出部と、上記特徴量をクラスタリングするための認識モデルを階層化して設定する認識モデル設定部と、上記認識モデル設定部で設定された認識モデルを用いて多次元の上記特徴量を1次元の状態として認識する状態認識部と、上記状態認識部で認識された状態と上記危険度に係るリスク情報を抽出して作成された教師情報との相関に基づいて、上記状態の危険度を適応的に学習し、上記外界環境に含まれる危険度を認識するリスク認識部とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、実際の環境下での経験を自律的に学習して危険度を認識する際、多様な外界環境に対するロバスト性を向上することができる。
【図面の簡単な説明】
【0012】
【図1】リスク認識システムの基本構成図
【図2】特徴量抽出の画像領域を示す説明図
【図3】1次元SOMによる学習の概念図
【図4】SOMの非効率部分を示す説明図
【図5】SOMモデルの分割による階層化を示す説明図
【図6】SOMモデルの並列化を示す説明図
【図7】SOMモデル変更によるユニット配置を示す説明図
【図8】状態認識の概念図
【図9】事前学習とオンライン学習の説明図
【図10】自己組織化マップの学習後の分布を示す説明図
【図11】リスクレベルとリスク確率との関係を示す説明図
【図12】リスク伝播の説明図
【図13】情報伝播の説明図
【図14】リスク情報の拡張を示す説明図
【図15】認識結果の出力例を示す説明図
【図16】リスク確率の学習結果を示す説明図
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施の形態を説明する。
本発明のオンラインリスク学習システムは、自動車等の移動体に搭載され、外界環境の検出結果からその環境内に含まれる危険度(リスク)に係る情報を適応的に認識するシステムであり、事前には想定していなかった環境に対しても、適応的にリスク認識が行えるようにオンラインで成長していく。
【0014】
外界環境のセンシングは、システムの入力系として備える各種センサデバイス、例えば、外界を単眼視やステレオ視で撮像するカメラ、レーザやミリ波等のレーダ装置からのセンシング情報を用いることが可能である。つまり、本システムは、基本的に外界環境を検出するセンサデバイスに依存するものではなく、広義にはセンサデバイスより得られる外界環境情報とリスク情報との相関関係を学習する学習システムである。
【0015】
本形態においては、オンラインリスク学習システムを自動車等の車両に適用し、車載カメラによって外界を撮像した画像情報と、ドライバの運転操作や車両の運転状態等の車両情報とを用いてリスク情報を抽出する例について説明する。すなわち、本形態のオンラインリスク学習システムは、画像から得られた情報から直接リスクとの関連付けを行うことでリスクを認識すると共に、その関連付けを実際の走行で遭遇した環境から学習し、適応的にリスク認識を行う。
【0016】
具体的には、ドライバを認識器の学習においての教師とし、ドライバの運転操作からリスク情報を抽出し、その運転操作に基づくリスク情報と、カメラから得られる画像情報との関連を人工知能技術を用いて学習させる。例えば、ドライバが歩行者を回避するような操作行動を行ったとき、本システムは、その状況が危険であると判断し、そのときに得られた画像は危険であるということを教える。
【0017】
これにより、次の機会に同じような状況(画像)がシステムに入ってきた場合に危険であるという出力を行い、ドライバに警告を与えることができる。また、本システムでは、リスクを確率的に取り扱っている。このことにより、似たような状況でもリスクが異なる場合や、得られている画像情報だけでは判断が出来ない本質的に確率的なリスクも取り扱うことが可能になる。
【0018】
以下、図1を参照して本形態のオンラインリスク学習システムについて説明する。本形態におけるオンラインリスク学習システム1は、単一のコンピュータシステム或いはネットワーク等を介して接続された複数のコンピュータシステムで構成されている。車両の外界環境を検出するセンサとしては、CCDやCMOS等の撮像素子を有する車載カメラを用いている。
【0019】
具体的には、オンラインリスク学習システム1は、画像入力部2、車両データ入力部3、特徴量抽出部4、状態認識部5、リスク情報抽出部6、リスク認識部7、リスク情報出力部8を基本構成として備えている。詳細は後述するが、本システムは、車載カメラで撮像した画像を主として抽出した特徴量を状態という量に変換してクラスタリングを行い、各状態に対するリスクの確率密度分布を学習したリスク分布からリスクを認識するようにしている。
【0020】
本実施の形態においては、階層型ニューラルネットワークの一種である自己組織化マップ(SOM;Self-Organization Maps)を用いて、SOMの各ユニットを状態として認識し、また、認識処理を学習する。このため、状態認識部5は、認識モデルとしてのSOMモデルを設定する認識モデル設定部5aと、SOMモデルを用いた認識の学習を行う認識学習部5bとを備えている。
【0021】
各部の概略的な機能は、以下の通りである。尚、図1においては、外界環境を検出するセンサとしての車載カメラは、図示を省略している。
【0022】
画像入力部2は、車載カメラからの撮像画像を入力し、ノイズ除去、ゲイン調整、γ補正等のビデオプロセス処理を行い、このビデオプロセス処理されたアナログ撮像画像を所定の階調のデジタル画像に変換する。画像入力部2で処理された画像は、一旦、メモリにストアされて収集され、特徴量抽出部4に送られる。
【0023】
車両データ入力部3は、車内ネットワーク等から所定の周期で車両データを入力する。車両データとしては、車速、ハンドル角、アクセル開度、ブレーキ圧力等であり、これらのデータを所定の周期(例えば、30Hz)でサンプリングする。
【0024】
尚、以降の認識処理に必要であれば、車内ネットワーク上を流れる他の情報、例えば、前後横加速度やヨーレートといった車両運動情報、ヘッドライト、ウインカーといったシステム操作情報、外気温等も入力する。
【0025】
特徴量抽出部4は、画像入力部2からの画像データを受け取り、得られた画像の特徴量を抽出する。すなわち、得られた画像から、エッジ情報、動き情報、色情報等の特徴量を抽出し、それらの情報をN次元ベクトルとして保持する。このN次元ベクトルには、図1に破線で示すように、画像特徴量以外の車両情報、例えば、車速やヨー角の変化といった情報も含める。
【0026】
尚、本形態で扱う画像データは、単眼のカラーカメラで撮像した画像とするが、赤外カメラから得られる画像やステレオカメラから得られる距離画像であっても良い。また、前述したように、レーザやミリ波等からの情報を用いることも可能であり、その場合、画像特徴量は、より一般的には、外界環境特徴量とも呼ぶべきものである。
【0027】
状態認識部5は、得られたN次元の特徴量ベクトルを、SOMモデルを用いて最終的に1次元の状態という量に変換する。状態とは、入力された画像を走行している場所や、天候、走行状態などによりシーン分けしているイメージになる。実際には、オンライン学習時、今はどのシーンであるかを明示的に教師することはできないため、入力データを状態数Mのクラスにクラスタリングしている。
【0028】
リスク情報抽出部6は、入力された車両情報(ドライバの操作情報)からリスク情報を抽出し、教師情報(リスクの大きさや種類)を作成する。本システムでは、このリスク情報抽出についての学習は行わず、予め設定したルールを用いてリスク情報を認識する。
【0029】
リスク認識部7は、状態認識部5で得られた状態と、リスク情報抽出部6で作成された教師との相関関係を求め、状態のリスクを学習・認識する。
【0030】
リスク情報出力部8は、認識したリスクをモニタや音声等により出力する。このリスク情報の出力については、認識したリスクそのものを出力する以外にも、操作データから得られたリスク情報との差を出力するようにしても良い。例えば、リスク認識部7がリスクが高いと判断した場合でも、操作データの認識により、ドライバが充分注意している状態であれば、リスクは高くないという出力を行うようにして良い。
【0031】
以上のオンラインリスク学習システム1においては、現在のリスクの認識・出力と学習とを並行に実行している。すなわち、リスクの認識は、入力画像に対し、それより前までに学習された認識結果によって行い、リスクの学習は、入力された教師情報を用いてリスク認識部7を更新(学習)し、次の時刻は、更新されたリスク認識部7でリスクを認識するという処理を繰り返すことにより、リスク認識と学習とを同時に行う。
【0032】
学習は、以下の(a),(b),(c),(d)に示すように、4つの部分でそれぞれに可能であるが、(a),(b)は学習に大規模な計算を要して時間がかかるため、本システムでは学習は行わず、予め事前にオフラインにて学習、或いは予め作成したアルゴリズムを用いている。
(a)ドライバ操作データからのリスク情報の抽出(リスク情報抽出部6)
(b)画像データからの画像特徴量の決定・選択(特徴量抽出部4)
(c)画像特徴量から状態への変換(状態認識部5)
(d)状態とリスクとの相関認識(リスク認識部7)
【0033】
次に、オンラインリスク学習システム1における各処理の詳細について説明する。以下では、車載カメラによる画像から特徴量を抽出する処理、抽出した特徴量から状態を認識する処理、車両操作情報からリスクを抽出する処理(教師情報の作成)、状態と与えられた教師情報とからリスクを認識する処理の順に説明する。
【0034】
[画像特徴量の抽出処理]
特徴量抽出部4は、以降のリスク認識のためのデータを抽出する。一般に、リスク認識に相関がないデータは認識に悪影響を与える。つまり、この特徴量抽出処理においては、むやみに特徴量を増やすということは得策でなく、逆に、必要な特徴量を用いないことも精度を悪化させる。
【0035】
そのため、どの特徴量を用いるべきかという特徴量選択が課題として発生するが、前述したように、特徴量選択については、それを学習的に得る場合は、以下に説明するリスク認識の上位の学習が必要になり、計算量・メモリ容量的にオンラインでの学習には不利である。
【0036】
従って、本形態では、ここでの特徴量抽出部分は固定として扱う例について説明する。学習する場合には、システムの認識率を基準として評価し、各特徴量の組み合わせを最適化すれば良く、これには、組み合わせの全探索、遺伝的アルゴリズム(GA;Genetic Algorithm)等の発見的な探索法等、既存の最適化手法を用いることができる。
【0037】
本形態においては、特徴量抽出部4で予め設定した種類の特徴量を抽出している。ここでは、処理を3つの要素に分け、各要素毎に設定した特徴量を抽出する。3つの要素は、前処理、特徴量計算、領域設定である。具体的には、以下に示すように、前処理で6種類、特徴量計算で10種類、領域設定で4種類のデータを抽出し、それらの組み合わせで計240(6×10×4)次元のデータを抽出する。
【0038】
<前処理>
入力画像に対して、ソベル、縦方向ソベル、横方向ソベル、フレーム間差分、輝度、彩度の6種類のフィルタ処理を行い、6次元の特徴量データを抽出する。
【0039】
<特徴量>
フィルタ処理された画像の画素値に対して、平均、分散、最大値、最小値、横方向重心、縦方向重心、コントラスト、均一性、エントロピー、フラクタル次元の10種類の計算処理を行い、10次元の特徴量データを抽出する。
【0040】
<領域>
図2に示すように、画像内に領域A0を設定し、この設定領域A0の全体、設定領域A0内の左側の領域A1、右側の領域A2、中央の領域A3の4種類の領域について、4次元の特徴量データを抽出する。
【0041】
尚、以上の240次元の特徴量は、オンラインシステムの演算性能に応じて、使用する次元を絞るようにしても良い。例えば、画像以外にも車両データも用いて、画面全体のソベルの平均、分散、画面全体のフレーム間差分の平均、分散、車速、ハンドル角の6次元の特徴量を抽出するようにしても良い。
【0042】
また、以上の特徴量抽出処理においては、各特徴量は正規化しているが、理論上の範囲は非効率であるため、事前に各特徴量の分布を評価しておき、その評価結果を元に最大値及び最小値を設定し、0〜1の数値に正規化している。その場合、最大値・最小値を動的に変化させるようしても良く、例えば、最大値を超える値もしくは最小値を下回る値が入力された場合には、それぞれ範囲を拡大するように最大値・最小値を変更する。逆に、しばらく最小値、最大値付近のデータが入ってこなかった場合は、範囲を狭めるように変更する。
【0043】
また、ここでは基本的な特徴量を用いたが、過去のフレーム情報を用いて動き情報を算出する等、特徴量の時系列的な変動を計算し、その情報を特徴量として用いることもできる。更に、全体としてのリスク認識の精度向上のためには、この特徴量抽出処理に高精度の画像処理を入れることもでき、例えば、歩行者認識結果、道路の白線認識結果、障害物認識結果等を含めて、ここでの抽出データに組み込むようにしても良い。このような意味では、本システムは、個々の外界認識結果を統合し、リスクを認識するシステムと捉えることもできる。
【0044】
[状態認識処理]
状態認識部5では、N次元の特徴量データを1次元の状態という量に圧縮変換する。つまり、状態は、入力された特徴量データから状態という量を出力する識別器としての機能によって認識される(但し、この識別器の出力は、1状態を確定せずに確率的に扱うこともできる)。本処理は、この識別器の内部構造を入力データ、教師データを用いて実環境に適応させることになるが、ここでの教師は、この入力データがどの状態であるかを直接教えるのではなく、出力された状態から認識されるリスクを、できるだけ効率的に、且つ精度良く認識できるようにするものである。
【0045】
具体的には、状態認識部5は、先ず、認識モデル設定部5aでSOMモデルを設定し、このSOMモデルを用いて認識学習部5bで認識及び学習を行う。SOMのアルゴリズムでは、M次元(通常は2次元)に並べられたユニットが、それぞれベクトル値(通常入力との結線の重みと呼ばれる)を持ち、入力に対して勝者ユニットをベクトルの距離を基準として決定する。そして、勝者ユニット及びその周辺のユニットの参照ベクトル値を、入力ベクトルに近づくように更新する。これを繰り返し、全体が入力データの分布を最適に表現できるように教師無しで学習してゆく。1次元SOMによる学習のイメージを、図3に示す。
【0046】
この場合、SOMのユニット配置(及び各状態の確率密度分布)は、走行中に順次更新され、各ユーザの走行環境、運転傾向に適合した認識が可能になる。しかしながら、実環境への適応では、以下に示すような状況でロバスト性が低下する虞がある。
【0047】
(A)幹線道路と路地裏のように、そのシーンの持つリスクが大きく異なると考えられる場所においてもリスク出力が同じような値を出す可能性がある。このため、場所の違いに対するロバスト性が低下する虞がある。
【0048】
(B)昼夜の違いに認識出力が大きく影響を受ける可能性がある。このため、時間帯の違いに対するロバスト性が低下する虞がある。
【0049】
(A)の場所の違いに対するロバスト性の低下は、認識モデルのSOMユニット間での学習頻度が偏り、効率的な学習及び認識ができないことに起因する。特に、1次元上で終端が存在しないようにループ上にSOMユニットを配置し、この1次元ループ上のSOMに、車速・舵角等の車両情報と画像情報とを合わせて入力する場合には、走行中と停止時といったように、異なる入力分布領域を1次元ループ上で表現しようとしていることになる。このため、図4に示すように、入力データの希薄な部分に対してもSOMユニットが配置され、外部環境を近似する上で非効率な状況となる。
【0050】
そこで、本実施の形態においては、図5に示すように、1次元上ループ上の従来モデルのSOMを、複数のループ上のモデルに分割し、この分割した新モデルを用いて処理を階層化する。すなわち、第1段階の処理として、複数のループ上のモデルの中から使用するモデルを選択し、選択したモデルに、分布領域の同じデータを入力することで、入力データの希薄な部分に対してSOMユニットが配置されることを回避する。
【0051】
また、(B)の時間帯の違いに対するロバスト性の低下は、昼間や夜間等、性質の異なるデータをあわせて学習を行うと、確率密度分布自体が平均化されてしまうことに起因する。性質の異なるデータの一方だけを対象とした学習では、他方の環境に対応できない。そこで、(A)の状況に対処するモデル階層化の更に上位として、例えば、図6に示すような昼用のモデルと夜用のモデルといった複数のモデル群を並列的に用意し、状況に応じてモデル群を切り換えることで、性質の異なるデータ入力に対するロバスト性を向上する。
【0052】
以下、SOMモデルを設定する処理、設定されたSOMモデルを用いて状態を認識する処理、その認識処理自体を学習する学習処理に分けて説明を行う。
【0053】
<SOMモデルの設定>
認識モデル設定部5aは、先ず、入力データの性質に応じて並列化されたSOMモデル群の中から、比較的長い時間で使用するモデル群を選択する。例えば、昼用のSOMモデル群と夜用のSOMモデル群とを保有している場合、スモールライトスイッチの点灯状態から判別した昼夜の別に応じてモデルを切り換える。但し、モデル切り換えに際しては、パッシングライト等への対策としてヒステリシスを設ける。
【0054】
並列化されたモデル群としては、昼用モデルと夜用モデルとの他、例えば、雨天用のモデルと晴天用のモデル、一般道用のモデルと高速道路用のモデル等がある。これらのモデル群を切り換えることにより、傾向が大きく異なり、少なくとも数分以上といった長い時間軸で変動する環境に対して、ロバスト性の向上を期待することができる。
【0055】
その際、並列モデルの切り換えに用いる情報としては、例えば、以下の(1)〜(6)に示す情報を用いることができる。
(1)雨天時の判別のためのワイパー動作情報
(2)晴天時の判別のための日照センサの情報
(3)高速道路走行の判別のための車速やギア情報
(4)自車の走行位置、時刻、季節の判別のためのGPS情報
(5)明るさ条件の判別のためのシャッタースピード等のカメラ制御情報
(6)各判別のための画像情報
【0056】
次に、認識モデル設定部5aは、選択したモデル群の中から、比較的短いスパンで使用するSOMモデルを、車両情報から判別される走行状態に応じて選択する。具体的には、各モデル群のそれぞれを、停車時、右折時、左折時、通常走行時の4つのモデルに切り分けておき、第1段階として、4つのモデルの中から車速や舵角等の情報によって使用するモデルを選択する。
【0057】
図7に示すグラフは、SOMモデルの変更(切り分け)によるユニット配置を示しており、横軸がユニット番号、縦軸が各ユニットの登場頻度(発生頻度)である。図7においては、ユニット番号0−4が右折時、ユニット番号5−9が左折時、ユニット番号10−14が停止時、ユニット番号15−99が通常走行時であり、便宜上、右折時、左折時、停止時、通常走行時の4つのモデルを1軸で表示している。
【0058】
図7からは、モデル変更(切り分け)前はところどころにほとんど使用されないユニットが存在したが、モデル変更によって改善され、効率的なユニット配置となっていることがわかる。尚、変更後のユニット番号10付近は停車中に対応するユニットであり、停車中はユニットの登場回数が多いという特殊な状況である。
【0059】
<認識処理>
認識学習部5bは、走行状態に応じて選択したSOMモデルに対する第2段階の処理として、選択したSOMモデルに画像特徴量のみの同じ種類のデータを入力し、状態の認識処理及び認識処理の学習を行う。この認識処理は、入力データに対するプロトタイプ型の識別処理として行われる。ここで、状態番号をSとすると、各状態は代表値を持ち、これをprots(i)とする。状態代表値prots(i)は、N次元のベクトルであり、i=0,1,…,N−1となる。
【0060】
入力データ(特徴量ベクトル)をIn(i)とすると、入力ベクトルは、以下の(1)式に示すように、状態代表値prots(i)との距離L(s)により求められ、どの状態に属するかが認識される。
L(s)=(Σi(prots(i)−In(i))2)1/2 …(1)
【0061】
入力データの属する状態(状態番号)Kは、以下の(2)式に示すように、距離L(s)の最小値で求められ、入力ベクトルが一番近い状態代表値の状態であると認識される。
K=mins(L(s)) …(2)
【0062】
図8は、N次元中の3次元に注目した場合を示しており、入力データは、状態S6より状態S1に近いため、S1の状態であると認識される。以上が基本的な状態認識となるが、これは入力データがどの状態であるかを確定させていることになる。
【0063】
この場合、図8では、状態S1と状態S6とでは、距離はそれほど違いはないが、若干、状態S1との距離が近いことで、入力データは状態S1であると認識される。つまり、状態S1と状態S6との距離がほぼ同じ領域においては、認識が不安定になる可能性がある。
【0064】
従って、ここでは、更に拡張し、状態が確率的であるとして扱うことで、認識の不安定さを解消する。すなわち、入力データが状態sである確率をP(s)とすると、状態の確率は、距離L(s)を用いて、以下の(3),(4)式で求める。ここで、σはパラメータであり、小さくするほど状態を確定的にする効果がある。
P(s)=(exp(−L(s)/σ))/z …(3)
z=Σsexp(−L(s)/σ) …(4)
【0065】
このように、状態を入力データとの距離に応じた尺度で確率的に決定した場合、以後の計算で全ての状態について計算する必要がある。従って、計算量を削減するため、一定値以下の確率は0とし、計算として扱わないようにしても良い。
【0066】
尚、P(s)の定義において、s=Kのときだけ1、それ以外を0とすれば、状態を確定したときと同じになる。
【0067】
<学習処理>
次に、状態認識部5の学習処理では、入力データ及び教師情報から、SOMをベースとした各状態の代表値の学習(更新)を行う。本システムにおいては、SOMによる学習は、以下のようになる。但し、本システムにおいては、ユニット(状態)は1次元につながっているものとする。勝者ユニットの状態番号を、前述の状態番号Kとすると、代表ベクトルprotsは、以下の(5)式に従って更新(学習)される。
prots(i)→prots(i)+α(In(i)−prots(i) …(5)
【0068】
ここで、(5)式におけるαは、更新の重みを示す学習率係数であり、以下の(6)式で表される。
α=a・b(t)・c(D(s,K),t)・e(t) …(6)
但し、a :学習係数
b :時間減衰係数
c :領域減衰係数
D(s,K):更新対象のユニットと勝者ベクトル間のつながりにおける距離
e :教師情報係数
【0069】
(6)式における各パラメータa,b,cは、通常のSOMでも用いられるパラメータであり、時間減衰係数bは、学習経過時間t(通常何回目の更新かを表す)の関数であり、一般には時間tの増加につれ減衰する。また、距離D(s,K)は、特徴量空間上での距離ではなく、例えば、図3においては、勝者ユニットの隣のユニットは距離1、その隣は距離2となる。
【0070】
一方、領域減衰係数cは、その距離D(s,K)の関数であり、距離D(s,K)が大きくなる程、値が小さく、ある一定以上の距離D(s,k)については更新されないように設定される。また、領域減衰係数cは、時間tの関数でもあり、時間tが大きくなる程、値が小さくなる。更に、本システムでは、教師情報を示す教師情報係数e(t)を導入するが、これについては後述する。
【0071】
このように、SOMの学習アルゴリズムでは、学習初期は、広範囲のユニットが入力データに近づくように更新され、学習が進むにつれ、更新されるユニット数、更新量とも少なくなり、最終的には、学習率係数α(更新の重み)が0になり、学習が終了する。尚、初期状態では、通常、ユニットはベクトル空間上の中心付近にランダムに配置される。
【0072】
ここで、本システムでは、オンライン学習システムであることから、以上の学習アルゴリズムを若干変更し、学習を事前学習フェーズとオンライン学習フェーズとに分け、各学習フェーズで学習のパラメータを変更している。すなわち、学習の終了時刻は設けずに、事前学習フェーズとオンライン学習フェーズとでそれぞれの時刻で一定とし、また、更新範囲の減衰も設けず、事前学習時とオンライン学習時の範囲は異なるものとする。
【0073】
これは、オンライン学習である本システムにおいては、学習に終了時刻はないこと、また、事前学習を導入しているのは、一義的に一定値とすると、更新量が大きい場合、SOMの分布が入力データの平均付近の狭い範囲に集中してしまうためであり、逆に小さい場合には、SOMの分布が特徴量空間上にばらつき過ぎてしまい、入力データの分布をうまく表現できないためである。
【0074】
そのため、図9に示すように、事前学習として、時間減衰係数b,領域減衰係数cの値を大きくとることで、先ず、SOMを入力データ分布の中心付近に寄せておき、その後、時間減衰係数b,領域減衰係数cを小さくすることで、適切な分布を表現できるようにしている。尚、ここでの事前学習は、市場で実走行に使う前のオフラインでの学習を想定している。
【0075】
図10に、学習後のSOMの分布例を示す。実際の特徴量空間は240次元であるが、図10では、そのうちの3次元のみを表しており、グラフの各点が入力データを示している。実際には、各点は色つきの点として表現され、色によってリスクの大きさを表している。黒い点が各状態の代表ベクトルで、それらを結ぶ黒線がSOMのつながりである。
【0076】
以上では、入力データの分布を最適に表現できる学習法について述べてきたが、実際に求められるのは、リスクを認識する上で入力データの分布を最適に表現できることである。SOMは、本来、教師なしの学習法(入ってきたデータを均等に扱い学習していく)であるが、本システムにおいては、リスクを認識する上での効率的な学習として、前述の教師情報係数e(t)によるリスク情報を与えた学習を行う。
【0077】
詳細は後述するが、リスクの認識は、認識した状態のリスク確率という形で出力する。これは、その状態が、リスクをどの程度の確率で持つかということを表したものである。具体的な学習法としては、時刻tでの入力データがドライバ情報から得られたリスクレベルRという教師情報を持つ場合、認識された状態が持つリスク確率においてリスクレベルRの確率が高ければ教師情報係数e(t)を大きくし、小さければ、教師情報係数e(t)を小さくする。また、教師情報が得られない場合には、教師情報係数e(t)を小さくするという処理にする。
【0078】
これにより、学習を進めるうちに、認識された状態は、そのときのリスクを高確率で持つようになり、つまりはリスクの認識精度が上がっているということになる。具体的な教師情報係数e(t)の設定は、次のリスク認識処理において説明する。
【0079】
また、状態を確率的に求めた場合の学習については、勝者ユニットを確率に応じた重みで表現し、その重みに応じた更新量により更新を行う。但し、計算量が増大するという問題があるので、本システムでは、学習時については、勝者ユニットを入力データに一番近い状態に確定させて学習を行っており、一定値以下の確率の状態については、自身を勝者とする更新は行わない。
【0080】
[リスク情報の抽出処理]
前述したように、本形態では、車両操作情報からのリスク抽出に際して、リスク情報抽出部6では学習を行わず、予め設定したルールを用いてドライバの操作情報からリスク情報を抽出するようにしている。このルールに従ったリスク情報の抽出処理においては、リスク情報をレベル付きの1次元データとして扱う。
【0081】
具体的には、リスクのレベルを0〜10(整数値)の11段階とし、値が大きいほどリスクが高いことを表現する。但し、ここでのリスク情報は、30Hzの各フレーム毎といったように、一定時間毎にリスクを認識しようとするものではない。これは、実際のドライバの操作は、リスクだけにより行われているわけではなく、リスクに伴う操作を行う割合は、全走行中の例えば10%にも満たない一部であろうと考えられるからである。
【0082】
すなわち、ドライバ操作データからのリスク情報の認識は、ドライバの操作行動に影響を与えるような、ある程度大きなリスクがあったときにのみ、それがわかることを第一の目標とする。そのため、リスク0に関しては、出力はリスクがないということだけでなく、教師情報がないということも表している。
【0083】
また、リスク認識のルールは、できるだけ現実に合うように任意に設定するという立場を取り、以下の(1)〜(5)に示すルールを並列化して各条件の中で最も大きな値のリスクを教師リスクとする。
【0084】
(1)急ブレーキを踏んだか
フレーム間のブレーキ圧力の差分に応じてリスクレベルを設定する。例えば、ブレーキ圧力の差分が1×102kPa以上ならリスク有り、1×102kPaでリスク5、1×103kPaでリスク10とし、リスク5とリスク10との間は、ブレーキ圧力の差分に応じて線形に設定する。
【0085】
(2)ブレーキを強く踏んだか
所定の車速以上で、ブレーキ圧力に応じてリスクレベルを設定する。例えば、車速10km/h以上で、ブレーキ圧力が20×102kPa以上の場合はリスク10、ブレーキ圧力が10×102kPa以上の場合はリスク6、ブレーキ圧力が5×102kPa以上の場合はリスク2とする。
【0086】
(3)急ハンドルを切ったか
ウインカーが出ていない状態で、フレーム間のハンドル角の差分の絶対値が設定値(例えば10deg)以上の場合、リスク5とする。
【0087】
(4)アクセルを急に離したか
所定の車速以上で、フレーム間のアクセル開度の差分に応じてリスクレベルを設定する。例えば、車速5km/h以上でアクセル開度の差分が−1%以下の場合、リスク4とする。
【0088】
(5)アクセルを踏んでいるか
加速中のアクセル開度に応じてリスクレベルを設定する。加速中であるか否かは、車速の微分値で判断し、車速の微分値0以上(加速中)でアクセル開度1%以下の場合、リスク2とする。
【0089】
以上のルールは、当然ながら、追加・削除が可能であり、より現実に合うように調整することができる。また、以上のルールを自動生成するアルゴリズム、以上のルールに更にファジィ要素を取り入れる等して、「ドライバデータからのリスク認識の学習的獲得」を行うことも可能である。
【0090】
[リスク認識処理]
リスク認識部7では、状態認識部5で求めた状態により、リスクを出力する。前述したように、各状態はそれぞれリスク確率分布を持つため、状態sでのリスクの確率分布をp(R│s)と表すことにする。尚、ここでのリスクは、リスク情報抽出部6でのリスクと対応しており、11段階のレベルに分けているので、リスクレベルRとリスク確率(分布)p(R│s)とは、例えば図11に示すような関係で表される。
【0091】
リスク出力は、基本的にこのリスク確率p(R│s)を出力することになるが、出力結果を例えば警報や表示などに使う場合には、確率分布のままでは使いにくいため、リスク出力としては、以下の(7)式で示される期待値Eを出力する。
E=ΣRR・p(R│s) …(7)
【0092】
また、状態を確率的に取り扱った場合、期待値Eは、以下の(8)式のようになる。
E=ΣsΣRP(s)・R・p(R│s) …(8)
【0093】
<リスク確率の学習処理>
リスク確率の学習は毎フレームに行われ、リスク確率は逐次更新される。リスク確率は、基本的に、過去に経験したリスクレベルの頻度分布を用いて算出する。しかし、本システムは、オンライン学習なので無限遠過去のデータまで持つことは難しく、また遠い過去の経験に現在と同じ重要度を持たせることは好ましくないと考えられる。従って、ここでは、以下の方法でリスク確率を更新する。
【0094】
時刻tでの状態stのリスク確率をpt(R│st)としたとき、以下の(9)式に従って、リスク確率を更新する。
pt+1(R│st)=pt(R│st)+β…(9)
【0095】
更に、リスク確率pt+1(R│st)は、以下の(10)式に従って正規化する。
pt+1(R│st)←pt+1(R│st)/ΣRpt+1(R│st) …(10)
【0096】
尚、状態の更新は、その時刻の状態のみである。また、状態を確率的に扱う場合は、各状態においてβをp(st)・βとして計算する。ここで、βは定数であり、この値が大きいほどより現在の情報を重要視することになる。
【0097】
ここで、与えられる教師リスクについては、リスク情報抽出部6の説明で述べたように、各フレーム毎に得られるとは限らない。リスクレベルが高い場合には、ドライバデータからリスク情報が得られる場合が多いが、リスクレベルが低い場合には、特に教師情報が得られる可能性が小さくなってしまうという問題がある。
【0098】
この問題に対して、本システムでは、教師リスク情報を時間軸方向で伝播させることで対処するようにしている。これは、ある時刻に教師リスク情報が得られた場合は、その前の時刻もその時刻と同じではないまでも危険であるという因果関係に基づくものであり、この因果関係を用いて教師リスク情報を伝播させる。
【0099】
この場合、過去に情報を伝播させるには、伝播させる分のすべての過去の状態遷移を記憶している必要があるが、リアルタイムでの学習を前提としたとき、記憶容量と計算量がネックとなる。そこで、本システムでは、強化学習の際に用いられるTD(Temporal Difference)誤差を考慮した伝播により、リスク確率を更新している。
【0100】
強化学習は、その時々の状態に対しての明示的な行動の指示ではなく、行った行動に対しての報酬によって学習を行い、この先得られるであろう報酬の総和が最大となる行動をその時々で選択する学習法であり、時刻tにおける実際の報酬と報酬の予測値の差をTD誤差(TD-ERROR)と呼び、これを0とするように学習が行われる。本システムのリスク情報は、この強化学習の報酬に相当し、図12に示すように、或るシーンでの状態遷移を考えると、状態S1に至る状態S2,S7,…にもリスクがあるはずであると考えられ、リスク情報の伝播を行う。
【0101】
この場合、伝播は、現在の状態から一つ前のフレームへ伝播させるだけで良く(つまり計算も記憶も1フレーム前との関係だけ扱えば良い)、一回の経験では、リスク情報は充分な過去まで伝播しないものの、同じような経験を繰り返すことで、徐々にリスク情報が伝播し、その因果関係を学習することができる。また、リスク情報の伝播は、図13に示すように、同じリスクレベルの時刻tの状態Stから時刻t−1の状態St-1への伝播のみではなく、異なるリスクレベルの状態間においても伝播させるようにする。但し、リスクレベル0は、リスクがないという他に、リスク情報がないという場合も含むため、伝播はさせない。
【0102】
伝播によるリスク確率p(r│st-1)の更新は、以下の(11)式によって行われる。
p(r│st-1)=p(r│st-1)+η・(RI(r)+γ・p(r│st)−p(r│st-1))
+h・η・(γ・p(r−1│st)−p(r−1│st-1))
+h・η・(γ・p(r+1│st)−p(r+1│st-1)) …(11)
但し、h:リスクレベル方向の伝播の大きさを表すパラメータ
γ:時系列の伝播の大きさを表すパラメータ
η:一回の学習での更新の大きさを表すパラメータ
【0103】
ここで、時刻tで得たリスク情報を、リスクレベルrを用いてRI(r)と表している。前述したように、リスク情報抽出部6で扱うリスク情報は、0〜10の11段階の中の或る一つのリスクレベルに対して得られるものとしている。すなわち、時刻tで得られたリスク情報がリスクレベルQとすると、(12),(13)式のように表される。
RI(r)=1 (r=Q) …(12)
RI(r)=0 (r≠Q) …(13)
【0104】
一方、このリスク学習におけるリスク情報RI(r)は、図14に示すように、実際はそのリスクレベル付近のリスクも存在すると考えて拡張を行っている。この拡張は、具体的には、隣のリスクレベルをパラメータg(g<1)を用いてg倍、そのまた隣のリスクレベルをg*g倍するという操作を行っており、この操作には、限られた教師データをさらに有効に使えるという効果がある。また、リスクレベル方向の伝播の大きさを表すhは通常、リスク情報の拡張に用いたgと同じ値としている。
【0105】
リスク確率の更新後は、状態認識部5における学習処理で用いた教師情報係数係数e(t)を設定する。この教師情報係数e(t)は、以下の(14),(15)式に従って設定される。時刻tでリスク情報抽出部6から得られるリスク情報をRを用いて、
R≠0のとき、
e(t)=10・R・p(R│st) …(14)
R=0のとき、
e(t)=const …(15)
【0106】
R=0のときは、教師情報が入らなかったときに相当するが、その場合は、教師情報係数e(t)は、定数constすなわち固定値のゲインになる。この値は、教師リスクが得られる確率により決定され、教師ありの学習データ数と教師なしの学習データ数との比率に基づいて設定される。本システムにおいては、経験則として、教師ありの学習データ数=教師なしの学習データ数となるように定数constを設定し、const=0.01としている。
【0107】
教師情報が入った場合は、その確率が高い程、またリスクレベルが大きい程、強く学習される。これにより、実際に起こった事象に対して、認識する確率が小さい場合は、その状態の認識が間違っている可能性が高いことを示し、学習が弱くされる。その状態の代表ベクトルは、同じ状態を認識し、リスクの確率が高かったデータに近づくような学習が行われる。そして、そのような学習が続くことで、その入力データは他の状態と認識されやすくなり、間違っている可能性の高い状態を認識しにくくなる。このようにして全体としての状態認識、リスク認識が最適化される。
【0108】
以上の処理による認識結果の出力例を図15に示す。図15(a)〜(d)は、車載カメラから得られた画像に、認識結果を表示したシステムの出力画像であり、認識したリスクの大きさを、各画面の下部のバーグラフB1〜B4で表している。このバーグラフB1〜B4で表される認識リスクは、前述したリスク確率の期待値を示しており、その上に表示される数字は、認識した状態番号である。
【0109】
図15(a),(b)に示す2枚の画像は、歩行者や対向車等が近くにおらず、リスクが低いと思われるシーンであり、また、図15(c),(d)に示す2枚の画像は、それぞれ、道幅の狭い片側一車線道路で対向車が存在し、道幅が更に小さくなっているシーン、交差点での左折シーンであり、リスクとしては、図15(a),(b)のシーンよりリスクが高いと思われるシーンである。
【0110】
ここで、「リスクが低い(高い)と思われる」と記載したのは、それぞれの画像がいくつのリスク値であるという絶対的な値は存在しないためである。本システムの認識結果を見ると、図15(a),(b)のシーンよりも、図15(c),(d)のシーンの方がリスクが高いと認識できていることがわかる。図16は、このときのリスク確率pt(R│st)の学習結果を示している。
【符号の説明】
【0111】
1 オンラインリスク認識システム
4 特徴量抽出部
5 状態認識部
5a 認識モデル設定部
5b 認識学習部
6 リスク情報抽出部
7 リスク認識部
【技術分野】
【0001】
本発明は、自動車等の移動体の外部環境に含まれるリスクを適応的に学習して認識するオンラインリスク認識システムに関する。
【背景技術】
【0002】
近年、自動車等の移動体における予防安全技術として、カメラを搭載して外界環境を撮像し、撮像した画像を処理して外界環境に含まれる危険度(リスク)の情報を認識し、ドライバに警告する、又は運転をアシストするといった技術が開発されている。
【0003】
このような危険情報の認識技術は、例えば、特許文献1に開示されている。特許文献1の技術は、車両周囲の環境の対象物に対して、その種類や属性毎に危険度パラメータを設定し、この危険度パラメータに基づいて危険度を演算するものである。
【0004】
特許文献1に開示されているような従来の技術では、歩行者、対向車、障害物、白線等といった危険に結びつく要因を設定し、それらに基づいてリスクの認識を行っており、実際のシステムとしては、開発者が想定したリスク要因や認識を予めシステム内に組み込んでおくという形で実現されている。
【0005】
しかしながら、自動車の走行環境のような実際の環境は、天候の変化、歩行者、車、路上の構造物等の存在といったように多様であり、更には、運転する人間も多様であるため、従来の予め設定した一つの認識モデルでは限界があり、危険に結びつく要因についての認識が高精度で行われなければ、全体としてのリスクを認識できないばかりでなく、予め想定していた以外の危険な場面では認識できないという問題がある。
【0006】
このため、本出願人は、特許文献2において、実際の環境下での経験をシステムが自律的に学習し、多様な外界環境に対応して危険度の認識を可能とすることのできるオンライン学習システムを提案している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−81039号公報
【特許文献2】特開2008−238831号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献2の技術は、実際の環境下での経験をシステムが自律的に学習するため、ユーザの運転傾向に適合した認識が可能である。しかしながら、特許文献2の技術は、実環境下での場所の違いや時間帯の違い等に対して学習及び認識効率が低下する可能性があり、ロバスト性を向上する上で改善の余地があった。
【0009】
本発明は上記事情に鑑みてなされたもので、実際の環境下での経験を自律的に学習して危険度を認識する際、多様な外界環境に対するロバスト性を向上することのできるオンラインリスク認識システムを提供することを目的としている。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明によるオンラインリスク認識システムは、移動体の外界環境を検出し、この外界環境に含まれるリスクを学習的に認識するオンラインリスク学習システムであって、上記外界環境の検出情報を処理して上記外界環境に含まれる多次元の特徴量を抽出する特徴量抽出部と、上記特徴量をクラスタリングするための認識モデルを階層化して設定する認識モデル設定部と、上記認識モデル設定部で設定された認識モデルを用いて多次元の上記特徴量を1次元の状態として認識する状態認識部と、上記状態認識部で認識された状態と上記危険度に係るリスク情報を抽出して作成された教師情報との相関に基づいて、上記状態の危険度を適応的に学習し、上記外界環境に含まれる危険度を認識するリスク認識部とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、実際の環境下での経験を自律的に学習して危険度を認識する際、多様な外界環境に対するロバスト性を向上することができる。
【図面の簡単な説明】
【0012】
【図1】リスク認識システムの基本構成図
【図2】特徴量抽出の画像領域を示す説明図
【図3】1次元SOMによる学習の概念図
【図4】SOMの非効率部分を示す説明図
【図5】SOMモデルの分割による階層化を示す説明図
【図6】SOMモデルの並列化を示す説明図
【図7】SOMモデル変更によるユニット配置を示す説明図
【図8】状態認識の概念図
【図9】事前学習とオンライン学習の説明図
【図10】自己組織化マップの学習後の分布を示す説明図
【図11】リスクレベルとリスク確率との関係を示す説明図
【図12】リスク伝播の説明図
【図13】情報伝播の説明図
【図14】リスク情報の拡張を示す説明図
【図15】認識結果の出力例を示す説明図
【図16】リスク確率の学習結果を示す説明図
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施の形態を説明する。
本発明のオンラインリスク学習システムは、自動車等の移動体に搭載され、外界環境の検出結果からその環境内に含まれる危険度(リスク)に係る情報を適応的に認識するシステムであり、事前には想定していなかった環境に対しても、適応的にリスク認識が行えるようにオンラインで成長していく。
【0014】
外界環境のセンシングは、システムの入力系として備える各種センサデバイス、例えば、外界を単眼視やステレオ視で撮像するカメラ、レーザやミリ波等のレーダ装置からのセンシング情報を用いることが可能である。つまり、本システムは、基本的に外界環境を検出するセンサデバイスに依存するものではなく、広義にはセンサデバイスより得られる外界環境情報とリスク情報との相関関係を学習する学習システムである。
【0015】
本形態においては、オンラインリスク学習システムを自動車等の車両に適用し、車載カメラによって外界を撮像した画像情報と、ドライバの運転操作や車両の運転状態等の車両情報とを用いてリスク情報を抽出する例について説明する。すなわち、本形態のオンラインリスク学習システムは、画像から得られた情報から直接リスクとの関連付けを行うことでリスクを認識すると共に、その関連付けを実際の走行で遭遇した環境から学習し、適応的にリスク認識を行う。
【0016】
具体的には、ドライバを認識器の学習においての教師とし、ドライバの運転操作からリスク情報を抽出し、その運転操作に基づくリスク情報と、カメラから得られる画像情報との関連を人工知能技術を用いて学習させる。例えば、ドライバが歩行者を回避するような操作行動を行ったとき、本システムは、その状況が危険であると判断し、そのときに得られた画像は危険であるということを教える。
【0017】
これにより、次の機会に同じような状況(画像)がシステムに入ってきた場合に危険であるという出力を行い、ドライバに警告を与えることができる。また、本システムでは、リスクを確率的に取り扱っている。このことにより、似たような状況でもリスクが異なる場合や、得られている画像情報だけでは判断が出来ない本質的に確率的なリスクも取り扱うことが可能になる。
【0018】
以下、図1を参照して本形態のオンラインリスク学習システムについて説明する。本形態におけるオンラインリスク学習システム1は、単一のコンピュータシステム或いはネットワーク等を介して接続された複数のコンピュータシステムで構成されている。車両の外界環境を検出するセンサとしては、CCDやCMOS等の撮像素子を有する車載カメラを用いている。
【0019】
具体的には、オンラインリスク学習システム1は、画像入力部2、車両データ入力部3、特徴量抽出部4、状態認識部5、リスク情報抽出部6、リスク認識部7、リスク情報出力部8を基本構成として備えている。詳細は後述するが、本システムは、車載カメラで撮像した画像を主として抽出した特徴量を状態という量に変換してクラスタリングを行い、各状態に対するリスクの確率密度分布を学習したリスク分布からリスクを認識するようにしている。
【0020】
本実施の形態においては、階層型ニューラルネットワークの一種である自己組織化マップ(SOM;Self-Organization Maps)を用いて、SOMの各ユニットを状態として認識し、また、認識処理を学習する。このため、状態認識部5は、認識モデルとしてのSOMモデルを設定する認識モデル設定部5aと、SOMモデルを用いた認識の学習を行う認識学習部5bとを備えている。
【0021】
各部の概略的な機能は、以下の通りである。尚、図1においては、外界環境を検出するセンサとしての車載カメラは、図示を省略している。
【0022】
画像入力部2は、車載カメラからの撮像画像を入力し、ノイズ除去、ゲイン調整、γ補正等のビデオプロセス処理を行い、このビデオプロセス処理されたアナログ撮像画像を所定の階調のデジタル画像に変換する。画像入力部2で処理された画像は、一旦、メモリにストアされて収集され、特徴量抽出部4に送られる。
【0023】
車両データ入力部3は、車内ネットワーク等から所定の周期で車両データを入力する。車両データとしては、車速、ハンドル角、アクセル開度、ブレーキ圧力等であり、これらのデータを所定の周期(例えば、30Hz)でサンプリングする。
【0024】
尚、以降の認識処理に必要であれば、車内ネットワーク上を流れる他の情報、例えば、前後横加速度やヨーレートといった車両運動情報、ヘッドライト、ウインカーといったシステム操作情報、外気温等も入力する。
【0025】
特徴量抽出部4は、画像入力部2からの画像データを受け取り、得られた画像の特徴量を抽出する。すなわち、得られた画像から、エッジ情報、動き情報、色情報等の特徴量を抽出し、それらの情報をN次元ベクトルとして保持する。このN次元ベクトルには、図1に破線で示すように、画像特徴量以外の車両情報、例えば、車速やヨー角の変化といった情報も含める。
【0026】
尚、本形態で扱う画像データは、単眼のカラーカメラで撮像した画像とするが、赤外カメラから得られる画像やステレオカメラから得られる距離画像であっても良い。また、前述したように、レーザやミリ波等からの情報を用いることも可能であり、その場合、画像特徴量は、より一般的には、外界環境特徴量とも呼ぶべきものである。
【0027】
状態認識部5は、得られたN次元の特徴量ベクトルを、SOMモデルを用いて最終的に1次元の状態という量に変換する。状態とは、入力された画像を走行している場所や、天候、走行状態などによりシーン分けしているイメージになる。実際には、オンライン学習時、今はどのシーンであるかを明示的に教師することはできないため、入力データを状態数Mのクラスにクラスタリングしている。
【0028】
リスク情報抽出部6は、入力された車両情報(ドライバの操作情報)からリスク情報を抽出し、教師情報(リスクの大きさや種類)を作成する。本システムでは、このリスク情報抽出についての学習は行わず、予め設定したルールを用いてリスク情報を認識する。
【0029】
リスク認識部7は、状態認識部5で得られた状態と、リスク情報抽出部6で作成された教師との相関関係を求め、状態のリスクを学習・認識する。
【0030】
リスク情報出力部8は、認識したリスクをモニタや音声等により出力する。このリスク情報の出力については、認識したリスクそのものを出力する以外にも、操作データから得られたリスク情報との差を出力するようにしても良い。例えば、リスク認識部7がリスクが高いと判断した場合でも、操作データの認識により、ドライバが充分注意している状態であれば、リスクは高くないという出力を行うようにして良い。
【0031】
以上のオンラインリスク学習システム1においては、現在のリスクの認識・出力と学習とを並行に実行している。すなわち、リスクの認識は、入力画像に対し、それより前までに学習された認識結果によって行い、リスクの学習は、入力された教師情報を用いてリスク認識部7を更新(学習)し、次の時刻は、更新されたリスク認識部7でリスクを認識するという処理を繰り返すことにより、リスク認識と学習とを同時に行う。
【0032】
学習は、以下の(a),(b),(c),(d)に示すように、4つの部分でそれぞれに可能であるが、(a),(b)は学習に大規模な計算を要して時間がかかるため、本システムでは学習は行わず、予め事前にオフラインにて学習、或いは予め作成したアルゴリズムを用いている。
(a)ドライバ操作データからのリスク情報の抽出(リスク情報抽出部6)
(b)画像データからの画像特徴量の決定・選択(特徴量抽出部4)
(c)画像特徴量から状態への変換(状態認識部5)
(d)状態とリスクとの相関認識(リスク認識部7)
【0033】
次に、オンラインリスク学習システム1における各処理の詳細について説明する。以下では、車載カメラによる画像から特徴量を抽出する処理、抽出した特徴量から状態を認識する処理、車両操作情報からリスクを抽出する処理(教師情報の作成)、状態と与えられた教師情報とからリスクを認識する処理の順に説明する。
【0034】
[画像特徴量の抽出処理]
特徴量抽出部4は、以降のリスク認識のためのデータを抽出する。一般に、リスク認識に相関がないデータは認識に悪影響を与える。つまり、この特徴量抽出処理においては、むやみに特徴量を増やすということは得策でなく、逆に、必要な特徴量を用いないことも精度を悪化させる。
【0035】
そのため、どの特徴量を用いるべきかという特徴量選択が課題として発生するが、前述したように、特徴量選択については、それを学習的に得る場合は、以下に説明するリスク認識の上位の学習が必要になり、計算量・メモリ容量的にオンラインでの学習には不利である。
【0036】
従って、本形態では、ここでの特徴量抽出部分は固定として扱う例について説明する。学習する場合には、システムの認識率を基準として評価し、各特徴量の組み合わせを最適化すれば良く、これには、組み合わせの全探索、遺伝的アルゴリズム(GA;Genetic Algorithm)等の発見的な探索法等、既存の最適化手法を用いることができる。
【0037】
本形態においては、特徴量抽出部4で予め設定した種類の特徴量を抽出している。ここでは、処理を3つの要素に分け、各要素毎に設定した特徴量を抽出する。3つの要素は、前処理、特徴量計算、領域設定である。具体的には、以下に示すように、前処理で6種類、特徴量計算で10種類、領域設定で4種類のデータを抽出し、それらの組み合わせで計240(6×10×4)次元のデータを抽出する。
【0038】
<前処理>
入力画像に対して、ソベル、縦方向ソベル、横方向ソベル、フレーム間差分、輝度、彩度の6種類のフィルタ処理を行い、6次元の特徴量データを抽出する。
【0039】
<特徴量>
フィルタ処理された画像の画素値に対して、平均、分散、最大値、最小値、横方向重心、縦方向重心、コントラスト、均一性、エントロピー、フラクタル次元の10種類の計算処理を行い、10次元の特徴量データを抽出する。
【0040】
<領域>
図2に示すように、画像内に領域A0を設定し、この設定領域A0の全体、設定領域A0内の左側の領域A1、右側の領域A2、中央の領域A3の4種類の領域について、4次元の特徴量データを抽出する。
【0041】
尚、以上の240次元の特徴量は、オンラインシステムの演算性能に応じて、使用する次元を絞るようにしても良い。例えば、画像以外にも車両データも用いて、画面全体のソベルの平均、分散、画面全体のフレーム間差分の平均、分散、車速、ハンドル角の6次元の特徴量を抽出するようにしても良い。
【0042】
また、以上の特徴量抽出処理においては、各特徴量は正規化しているが、理論上の範囲は非効率であるため、事前に各特徴量の分布を評価しておき、その評価結果を元に最大値及び最小値を設定し、0〜1の数値に正規化している。その場合、最大値・最小値を動的に変化させるようしても良く、例えば、最大値を超える値もしくは最小値を下回る値が入力された場合には、それぞれ範囲を拡大するように最大値・最小値を変更する。逆に、しばらく最小値、最大値付近のデータが入ってこなかった場合は、範囲を狭めるように変更する。
【0043】
また、ここでは基本的な特徴量を用いたが、過去のフレーム情報を用いて動き情報を算出する等、特徴量の時系列的な変動を計算し、その情報を特徴量として用いることもできる。更に、全体としてのリスク認識の精度向上のためには、この特徴量抽出処理に高精度の画像処理を入れることもでき、例えば、歩行者認識結果、道路の白線認識結果、障害物認識結果等を含めて、ここでの抽出データに組み込むようにしても良い。このような意味では、本システムは、個々の外界認識結果を統合し、リスクを認識するシステムと捉えることもできる。
【0044】
[状態認識処理]
状態認識部5では、N次元の特徴量データを1次元の状態という量に圧縮変換する。つまり、状態は、入力された特徴量データから状態という量を出力する識別器としての機能によって認識される(但し、この識別器の出力は、1状態を確定せずに確率的に扱うこともできる)。本処理は、この識別器の内部構造を入力データ、教師データを用いて実環境に適応させることになるが、ここでの教師は、この入力データがどの状態であるかを直接教えるのではなく、出力された状態から認識されるリスクを、できるだけ効率的に、且つ精度良く認識できるようにするものである。
【0045】
具体的には、状態認識部5は、先ず、認識モデル設定部5aでSOMモデルを設定し、このSOMモデルを用いて認識学習部5bで認識及び学習を行う。SOMのアルゴリズムでは、M次元(通常は2次元)に並べられたユニットが、それぞれベクトル値(通常入力との結線の重みと呼ばれる)を持ち、入力に対して勝者ユニットをベクトルの距離を基準として決定する。そして、勝者ユニット及びその周辺のユニットの参照ベクトル値を、入力ベクトルに近づくように更新する。これを繰り返し、全体が入力データの分布を最適に表現できるように教師無しで学習してゆく。1次元SOMによる学習のイメージを、図3に示す。
【0046】
この場合、SOMのユニット配置(及び各状態の確率密度分布)は、走行中に順次更新され、各ユーザの走行環境、運転傾向に適合した認識が可能になる。しかしながら、実環境への適応では、以下に示すような状況でロバスト性が低下する虞がある。
【0047】
(A)幹線道路と路地裏のように、そのシーンの持つリスクが大きく異なると考えられる場所においてもリスク出力が同じような値を出す可能性がある。このため、場所の違いに対するロバスト性が低下する虞がある。
【0048】
(B)昼夜の違いに認識出力が大きく影響を受ける可能性がある。このため、時間帯の違いに対するロバスト性が低下する虞がある。
【0049】
(A)の場所の違いに対するロバスト性の低下は、認識モデルのSOMユニット間での学習頻度が偏り、効率的な学習及び認識ができないことに起因する。特に、1次元上で終端が存在しないようにループ上にSOMユニットを配置し、この1次元ループ上のSOMに、車速・舵角等の車両情報と画像情報とを合わせて入力する場合には、走行中と停止時といったように、異なる入力分布領域を1次元ループ上で表現しようとしていることになる。このため、図4に示すように、入力データの希薄な部分に対してもSOMユニットが配置され、外部環境を近似する上で非効率な状況となる。
【0050】
そこで、本実施の形態においては、図5に示すように、1次元上ループ上の従来モデルのSOMを、複数のループ上のモデルに分割し、この分割した新モデルを用いて処理を階層化する。すなわち、第1段階の処理として、複数のループ上のモデルの中から使用するモデルを選択し、選択したモデルに、分布領域の同じデータを入力することで、入力データの希薄な部分に対してSOMユニットが配置されることを回避する。
【0051】
また、(B)の時間帯の違いに対するロバスト性の低下は、昼間や夜間等、性質の異なるデータをあわせて学習を行うと、確率密度分布自体が平均化されてしまうことに起因する。性質の異なるデータの一方だけを対象とした学習では、他方の環境に対応できない。そこで、(A)の状況に対処するモデル階層化の更に上位として、例えば、図6に示すような昼用のモデルと夜用のモデルといった複数のモデル群を並列的に用意し、状況に応じてモデル群を切り換えることで、性質の異なるデータ入力に対するロバスト性を向上する。
【0052】
以下、SOMモデルを設定する処理、設定されたSOMモデルを用いて状態を認識する処理、その認識処理自体を学習する学習処理に分けて説明を行う。
【0053】
<SOMモデルの設定>
認識モデル設定部5aは、先ず、入力データの性質に応じて並列化されたSOMモデル群の中から、比較的長い時間で使用するモデル群を選択する。例えば、昼用のSOMモデル群と夜用のSOMモデル群とを保有している場合、スモールライトスイッチの点灯状態から判別した昼夜の別に応じてモデルを切り換える。但し、モデル切り換えに際しては、パッシングライト等への対策としてヒステリシスを設ける。
【0054】
並列化されたモデル群としては、昼用モデルと夜用モデルとの他、例えば、雨天用のモデルと晴天用のモデル、一般道用のモデルと高速道路用のモデル等がある。これらのモデル群を切り換えることにより、傾向が大きく異なり、少なくとも数分以上といった長い時間軸で変動する環境に対して、ロバスト性の向上を期待することができる。
【0055】
その際、並列モデルの切り換えに用いる情報としては、例えば、以下の(1)〜(6)に示す情報を用いることができる。
(1)雨天時の判別のためのワイパー動作情報
(2)晴天時の判別のための日照センサの情報
(3)高速道路走行の判別のための車速やギア情報
(4)自車の走行位置、時刻、季節の判別のためのGPS情報
(5)明るさ条件の判別のためのシャッタースピード等のカメラ制御情報
(6)各判別のための画像情報
【0056】
次に、認識モデル設定部5aは、選択したモデル群の中から、比較的短いスパンで使用するSOMモデルを、車両情報から判別される走行状態に応じて選択する。具体的には、各モデル群のそれぞれを、停車時、右折時、左折時、通常走行時の4つのモデルに切り分けておき、第1段階として、4つのモデルの中から車速や舵角等の情報によって使用するモデルを選択する。
【0057】
図7に示すグラフは、SOMモデルの変更(切り分け)によるユニット配置を示しており、横軸がユニット番号、縦軸が各ユニットの登場頻度(発生頻度)である。図7においては、ユニット番号0−4が右折時、ユニット番号5−9が左折時、ユニット番号10−14が停止時、ユニット番号15−99が通常走行時であり、便宜上、右折時、左折時、停止時、通常走行時の4つのモデルを1軸で表示している。
【0058】
図7からは、モデル変更(切り分け)前はところどころにほとんど使用されないユニットが存在したが、モデル変更によって改善され、効率的なユニット配置となっていることがわかる。尚、変更後のユニット番号10付近は停車中に対応するユニットであり、停車中はユニットの登場回数が多いという特殊な状況である。
【0059】
<認識処理>
認識学習部5bは、走行状態に応じて選択したSOMモデルに対する第2段階の処理として、選択したSOMモデルに画像特徴量のみの同じ種類のデータを入力し、状態の認識処理及び認識処理の学習を行う。この認識処理は、入力データに対するプロトタイプ型の識別処理として行われる。ここで、状態番号をSとすると、各状態は代表値を持ち、これをprots(i)とする。状態代表値prots(i)は、N次元のベクトルであり、i=0,1,…,N−1となる。
【0060】
入力データ(特徴量ベクトル)をIn(i)とすると、入力ベクトルは、以下の(1)式に示すように、状態代表値prots(i)との距離L(s)により求められ、どの状態に属するかが認識される。
L(s)=(Σi(prots(i)−In(i))2)1/2 …(1)
【0061】
入力データの属する状態(状態番号)Kは、以下の(2)式に示すように、距離L(s)の最小値で求められ、入力ベクトルが一番近い状態代表値の状態であると認識される。
K=mins(L(s)) …(2)
【0062】
図8は、N次元中の3次元に注目した場合を示しており、入力データは、状態S6より状態S1に近いため、S1の状態であると認識される。以上が基本的な状態認識となるが、これは入力データがどの状態であるかを確定させていることになる。
【0063】
この場合、図8では、状態S1と状態S6とでは、距離はそれほど違いはないが、若干、状態S1との距離が近いことで、入力データは状態S1であると認識される。つまり、状態S1と状態S6との距離がほぼ同じ領域においては、認識が不安定になる可能性がある。
【0064】
従って、ここでは、更に拡張し、状態が確率的であるとして扱うことで、認識の不安定さを解消する。すなわち、入力データが状態sである確率をP(s)とすると、状態の確率は、距離L(s)を用いて、以下の(3),(4)式で求める。ここで、σはパラメータであり、小さくするほど状態を確定的にする効果がある。
P(s)=(exp(−L(s)/σ))/z …(3)
z=Σsexp(−L(s)/σ) …(4)
【0065】
このように、状態を入力データとの距離に応じた尺度で確率的に決定した場合、以後の計算で全ての状態について計算する必要がある。従って、計算量を削減するため、一定値以下の確率は0とし、計算として扱わないようにしても良い。
【0066】
尚、P(s)の定義において、s=Kのときだけ1、それ以外を0とすれば、状態を確定したときと同じになる。
【0067】
<学習処理>
次に、状態認識部5の学習処理では、入力データ及び教師情報から、SOMをベースとした各状態の代表値の学習(更新)を行う。本システムにおいては、SOMによる学習は、以下のようになる。但し、本システムにおいては、ユニット(状態)は1次元につながっているものとする。勝者ユニットの状態番号を、前述の状態番号Kとすると、代表ベクトルprotsは、以下の(5)式に従って更新(学習)される。
prots(i)→prots(i)+α(In(i)−prots(i) …(5)
【0068】
ここで、(5)式におけるαは、更新の重みを示す学習率係数であり、以下の(6)式で表される。
α=a・b(t)・c(D(s,K),t)・e(t) …(6)
但し、a :学習係数
b :時間減衰係数
c :領域減衰係数
D(s,K):更新対象のユニットと勝者ベクトル間のつながりにおける距離
e :教師情報係数
【0069】
(6)式における各パラメータa,b,cは、通常のSOMでも用いられるパラメータであり、時間減衰係数bは、学習経過時間t(通常何回目の更新かを表す)の関数であり、一般には時間tの増加につれ減衰する。また、距離D(s,K)は、特徴量空間上での距離ではなく、例えば、図3においては、勝者ユニットの隣のユニットは距離1、その隣は距離2となる。
【0070】
一方、領域減衰係数cは、その距離D(s,K)の関数であり、距離D(s,K)が大きくなる程、値が小さく、ある一定以上の距離D(s,k)については更新されないように設定される。また、領域減衰係数cは、時間tの関数でもあり、時間tが大きくなる程、値が小さくなる。更に、本システムでは、教師情報を示す教師情報係数e(t)を導入するが、これについては後述する。
【0071】
このように、SOMの学習アルゴリズムでは、学習初期は、広範囲のユニットが入力データに近づくように更新され、学習が進むにつれ、更新されるユニット数、更新量とも少なくなり、最終的には、学習率係数α(更新の重み)が0になり、学習が終了する。尚、初期状態では、通常、ユニットはベクトル空間上の中心付近にランダムに配置される。
【0072】
ここで、本システムでは、オンライン学習システムであることから、以上の学習アルゴリズムを若干変更し、学習を事前学習フェーズとオンライン学習フェーズとに分け、各学習フェーズで学習のパラメータを変更している。すなわち、学習の終了時刻は設けずに、事前学習フェーズとオンライン学習フェーズとでそれぞれの時刻で一定とし、また、更新範囲の減衰も設けず、事前学習時とオンライン学習時の範囲は異なるものとする。
【0073】
これは、オンライン学習である本システムにおいては、学習に終了時刻はないこと、また、事前学習を導入しているのは、一義的に一定値とすると、更新量が大きい場合、SOMの分布が入力データの平均付近の狭い範囲に集中してしまうためであり、逆に小さい場合には、SOMの分布が特徴量空間上にばらつき過ぎてしまい、入力データの分布をうまく表現できないためである。
【0074】
そのため、図9に示すように、事前学習として、時間減衰係数b,領域減衰係数cの値を大きくとることで、先ず、SOMを入力データ分布の中心付近に寄せておき、その後、時間減衰係数b,領域減衰係数cを小さくすることで、適切な分布を表現できるようにしている。尚、ここでの事前学習は、市場で実走行に使う前のオフラインでの学習を想定している。
【0075】
図10に、学習後のSOMの分布例を示す。実際の特徴量空間は240次元であるが、図10では、そのうちの3次元のみを表しており、グラフの各点が入力データを示している。実際には、各点は色つきの点として表現され、色によってリスクの大きさを表している。黒い点が各状態の代表ベクトルで、それらを結ぶ黒線がSOMのつながりである。
【0076】
以上では、入力データの分布を最適に表現できる学習法について述べてきたが、実際に求められるのは、リスクを認識する上で入力データの分布を最適に表現できることである。SOMは、本来、教師なしの学習法(入ってきたデータを均等に扱い学習していく)であるが、本システムにおいては、リスクを認識する上での効率的な学習として、前述の教師情報係数e(t)によるリスク情報を与えた学習を行う。
【0077】
詳細は後述するが、リスクの認識は、認識した状態のリスク確率という形で出力する。これは、その状態が、リスクをどの程度の確率で持つかということを表したものである。具体的な学習法としては、時刻tでの入力データがドライバ情報から得られたリスクレベルRという教師情報を持つ場合、認識された状態が持つリスク確率においてリスクレベルRの確率が高ければ教師情報係数e(t)を大きくし、小さければ、教師情報係数e(t)を小さくする。また、教師情報が得られない場合には、教師情報係数e(t)を小さくするという処理にする。
【0078】
これにより、学習を進めるうちに、認識された状態は、そのときのリスクを高確率で持つようになり、つまりはリスクの認識精度が上がっているということになる。具体的な教師情報係数e(t)の設定は、次のリスク認識処理において説明する。
【0079】
また、状態を確率的に求めた場合の学習については、勝者ユニットを確率に応じた重みで表現し、その重みに応じた更新量により更新を行う。但し、計算量が増大するという問題があるので、本システムでは、学習時については、勝者ユニットを入力データに一番近い状態に確定させて学習を行っており、一定値以下の確率の状態については、自身を勝者とする更新は行わない。
【0080】
[リスク情報の抽出処理]
前述したように、本形態では、車両操作情報からのリスク抽出に際して、リスク情報抽出部6では学習を行わず、予め設定したルールを用いてドライバの操作情報からリスク情報を抽出するようにしている。このルールに従ったリスク情報の抽出処理においては、リスク情報をレベル付きの1次元データとして扱う。
【0081】
具体的には、リスクのレベルを0〜10(整数値)の11段階とし、値が大きいほどリスクが高いことを表現する。但し、ここでのリスク情報は、30Hzの各フレーム毎といったように、一定時間毎にリスクを認識しようとするものではない。これは、実際のドライバの操作は、リスクだけにより行われているわけではなく、リスクに伴う操作を行う割合は、全走行中の例えば10%にも満たない一部であろうと考えられるからである。
【0082】
すなわち、ドライバ操作データからのリスク情報の認識は、ドライバの操作行動に影響を与えるような、ある程度大きなリスクがあったときにのみ、それがわかることを第一の目標とする。そのため、リスク0に関しては、出力はリスクがないということだけでなく、教師情報がないということも表している。
【0083】
また、リスク認識のルールは、できるだけ現実に合うように任意に設定するという立場を取り、以下の(1)〜(5)に示すルールを並列化して各条件の中で最も大きな値のリスクを教師リスクとする。
【0084】
(1)急ブレーキを踏んだか
フレーム間のブレーキ圧力の差分に応じてリスクレベルを設定する。例えば、ブレーキ圧力の差分が1×102kPa以上ならリスク有り、1×102kPaでリスク5、1×103kPaでリスク10とし、リスク5とリスク10との間は、ブレーキ圧力の差分に応じて線形に設定する。
【0085】
(2)ブレーキを強く踏んだか
所定の車速以上で、ブレーキ圧力に応じてリスクレベルを設定する。例えば、車速10km/h以上で、ブレーキ圧力が20×102kPa以上の場合はリスク10、ブレーキ圧力が10×102kPa以上の場合はリスク6、ブレーキ圧力が5×102kPa以上の場合はリスク2とする。
【0086】
(3)急ハンドルを切ったか
ウインカーが出ていない状態で、フレーム間のハンドル角の差分の絶対値が設定値(例えば10deg)以上の場合、リスク5とする。
【0087】
(4)アクセルを急に離したか
所定の車速以上で、フレーム間のアクセル開度の差分に応じてリスクレベルを設定する。例えば、車速5km/h以上でアクセル開度の差分が−1%以下の場合、リスク4とする。
【0088】
(5)アクセルを踏んでいるか
加速中のアクセル開度に応じてリスクレベルを設定する。加速中であるか否かは、車速の微分値で判断し、車速の微分値0以上(加速中)でアクセル開度1%以下の場合、リスク2とする。
【0089】
以上のルールは、当然ながら、追加・削除が可能であり、より現実に合うように調整することができる。また、以上のルールを自動生成するアルゴリズム、以上のルールに更にファジィ要素を取り入れる等して、「ドライバデータからのリスク認識の学習的獲得」を行うことも可能である。
【0090】
[リスク認識処理]
リスク認識部7では、状態認識部5で求めた状態により、リスクを出力する。前述したように、各状態はそれぞれリスク確率分布を持つため、状態sでのリスクの確率分布をp(R│s)と表すことにする。尚、ここでのリスクは、リスク情報抽出部6でのリスクと対応しており、11段階のレベルに分けているので、リスクレベルRとリスク確率(分布)p(R│s)とは、例えば図11に示すような関係で表される。
【0091】
リスク出力は、基本的にこのリスク確率p(R│s)を出力することになるが、出力結果を例えば警報や表示などに使う場合には、確率分布のままでは使いにくいため、リスク出力としては、以下の(7)式で示される期待値Eを出力する。
E=ΣRR・p(R│s) …(7)
【0092】
また、状態を確率的に取り扱った場合、期待値Eは、以下の(8)式のようになる。
E=ΣsΣRP(s)・R・p(R│s) …(8)
【0093】
<リスク確率の学習処理>
リスク確率の学習は毎フレームに行われ、リスク確率は逐次更新される。リスク確率は、基本的に、過去に経験したリスクレベルの頻度分布を用いて算出する。しかし、本システムは、オンライン学習なので無限遠過去のデータまで持つことは難しく、また遠い過去の経験に現在と同じ重要度を持たせることは好ましくないと考えられる。従って、ここでは、以下の方法でリスク確率を更新する。
【0094】
時刻tでの状態stのリスク確率をpt(R│st)としたとき、以下の(9)式に従って、リスク確率を更新する。
pt+1(R│st)=pt(R│st)+β…(9)
【0095】
更に、リスク確率pt+1(R│st)は、以下の(10)式に従って正規化する。
pt+1(R│st)←pt+1(R│st)/ΣRpt+1(R│st) …(10)
【0096】
尚、状態の更新は、その時刻の状態のみである。また、状態を確率的に扱う場合は、各状態においてβをp(st)・βとして計算する。ここで、βは定数であり、この値が大きいほどより現在の情報を重要視することになる。
【0097】
ここで、与えられる教師リスクについては、リスク情報抽出部6の説明で述べたように、各フレーム毎に得られるとは限らない。リスクレベルが高い場合には、ドライバデータからリスク情報が得られる場合が多いが、リスクレベルが低い場合には、特に教師情報が得られる可能性が小さくなってしまうという問題がある。
【0098】
この問題に対して、本システムでは、教師リスク情報を時間軸方向で伝播させることで対処するようにしている。これは、ある時刻に教師リスク情報が得られた場合は、その前の時刻もその時刻と同じではないまでも危険であるという因果関係に基づくものであり、この因果関係を用いて教師リスク情報を伝播させる。
【0099】
この場合、過去に情報を伝播させるには、伝播させる分のすべての過去の状態遷移を記憶している必要があるが、リアルタイムでの学習を前提としたとき、記憶容量と計算量がネックとなる。そこで、本システムでは、強化学習の際に用いられるTD(Temporal Difference)誤差を考慮した伝播により、リスク確率を更新している。
【0100】
強化学習は、その時々の状態に対しての明示的な行動の指示ではなく、行った行動に対しての報酬によって学習を行い、この先得られるであろう報酬の総和が最大となる行動をその時々で選択する学習法であり、時刻tにおける実際の報酬と報酬の予測値の差をTD誤差(TD-ERROR)と呼び、これを0とするように学習が行われる。本システムのリスク情報は、この強化学習の報酬に相当し、図12に示すように、或るシーンでの状態遷移を考えると、状態S1に至る状態S2,S7,…にもリスクがあるはずであると考えられ、リスク情報の伝播を行う。
【0101】
この場合、伝播は、現在の状態から一つ前のフレームへ伝播させるだけで良く(つまり計算も記憶も1フレーム前との関係だけ扱えば良い)、一回の経験では、リスク情報は充分な過去まで伝播しないものの、同じような経験を繰り返すことで、徐々にリスク情報が伝播し、その因果関係を学習することができる。また、リスク情報の伝播は、図13に示すように、同じリスクレベルの時刻tの状態Stから時刻t−1の状態St-1への伝播のみではなく、異なるリスクレベルの状態間においても伝播させるようにする。但し、リスクレベル0は、リスクがないという他に、リスク情報がないという場合も含むため、伝播はさせない。
【0102】
伝播によるリスク確率p(r│st-1)の更新は、以下の(11)式によって行われる。
p(r│st-1)=p(r│st-1)+η・(RI(r)+γ・p(r│st)−p(r│st-1))
+h・η・(γ・p(r−1│st)−p(r−1│st-1))
+h・η・(γ・p(r+1│st)−p(r+1│st-1)) …(11)
但し、h:リスクレベル方向の伝播の大きさを表すパラメータ
γ:時系列の伝播の大きさを表すパラメータ
η:一回の学習での更新の大きさを表すパラメータ
【0103】
ここで、時刻tで得たリスク情報を、リスクレベルrを用いてRI(r)と表している。前述したように、リスク情報抽出部6で扱うリスク情報は、0〜10の11段階の中の或る一つのリスクレベルに対して得られるものとしている。すなわち、時刻tで得られたリスク情報がリスクレベルQとすると、(12),(13)式のように表される。
RI(r)=1 (r=Q) …(12)
RI(r)=0 (r≠Q) …(13)
【0104】
一方、このリスク学習におけるリスク情報RI(r)は、図14に示すように、実際はそのリスクレベル付近のリスクも存在すると考えて拡張を行っている。この拡張は、具体的には、隣のリスクレベルをパラメータg(g<1)を用いてg倍、そのまた隣のリスクレベルをg*g倍するという操作を行っており、この操作には、限られた教師データをさらに有効に使えるという効果がある。また、リスクレベル方向の伝播の大きさを表すhは通常、リスク情報の拡張に用いたgと同じ値としている。
【0105】
リスク確率の更新後は、状態認識部5における学習処理で用いた教師情報係数係数e(t)を設定する。この教師情報係数e(t)は、以下の(14),(15)式に従って設定される。時刻tでリスク情報抽出部6から得られるリスク情報をRを用いて、
R≠0のとき、
e(t)=10・R・p(R│st) …(14)
R=0のとき、
e(t)=const …(15)
【0106】
R=0のときは、教師情報が入らなかったときに相当するが、その場合は、教師情報係数e(t)は、定数constすなわち固定値のゲインになる。この値は、教師リスクが得られる確率により決定され、教師ありの学習データ数と教師なしの学習データ数との比率に基づいて設定される。本システムにおいては、経験則として、教師ありの学習データ数=教師なしの学習データ数となるように定数constを設定し、const=0.01としている。
【0107】
教師情報が入った場合は、その確率が高い程、またリスクレベルが大きい程、強く学習される。これにより、実際に起こった事象に対して、認識する確率が小さい場合は、その状態の認識が間違っている可能性が高いことを示し、学習が弱くされる。その状態の代表ベクトルは、同じ状態を認識し、リスクの確率が高かったデータに近づくような学習が行われる。そして、そのような学習が続くことで、その入力データは他の状態と認識されやすくなり、間違っている可能性の高い状態を認識しにくくなる。このようにして全体としての状態認識、リスク認識が最適化される。
【0108】
以上の処理による認識結果の出力例を図15に示す。図15(a)〜(d)は、車載カメラから得られた画像に、認識結果を表示したシステムの出力画像であり、認識したリスクの大きさを、各画面の下部のバーグラフB1〜B4で表している。このバーグラフB1〜B4で表される認識リスクは、前述したリスク確率の期待値を示しており、その上に表示される数字は、認識した状態番号である。
【0109】
図15(a),(b)に示す2枚の画像は、歩行者や対向車等が近くにおらず、リスクが低いと思われるシーンであり、また、図15(c),(d)に示す2枚の画像は、それぞれ、道幅の狭い片側一車線道路で対向車が存在し、道幅が更に小さくなっているシーン、交差点での左折シーンであり、リスクとしては、図15(a),(b)のシーンよりリスクが高いと思われるシーンである。
【0110】
ここで、「リスクが低い(高い)と思われる」と記載したのは、それぞれの画像がいくつのリスク値であるという絶対的な値は存在しないためである。本システムの認識結果を見ると、図15(a),(b)のシーンよりも、図15(c),(d)のシーンの方がリスクが高いと認識できていることがわかる。図16は、このときのリスク確率pt(R│st)の学習結果を示している。
【符号の説明】
【0111】
1 オンラインリスク認識システム
4 特徴量抽出部
5 状態認識部
5a 認識モデル設定部
5b 認識学習部
6 リスク情報抽出部
7 リスク認識部
【特許請求の範囲】
【請求項1】
移動体の外界環境を検出し、この外界環境に含まれるリスクを学習的に認識するオンラインリスク学習システムであって、
上記外界環境の検出情報を処理して上記外界環境に含まれる多次元の特徴量を抽出する特徴量抽出部と、
上記特徴量をクラスタリングするための認識モデルを階層化して設定する認識モデル設定部と、
上記認識モデル設定部で設定された認識モデルを用いて多次元の上記特徴量を1次元の状態として認識する状態認識部と、
上記状態認識部で認識された状態と上記危険度に係るリスク情報を抽出して作成された教師情報との相関に基づいて、上記状態の危険度を適応的に学習し、上記外界環境に含まれる危険度を認識するリスク認識部と
を備えることを特徴とするオンラインリスク学習システム。
【請求項2】
上記認識モデルを自己組織化マップで作成し、該自己組織化マップを上記移動体の運転状態に応じて複数の1次元モデルに分割して階層化することを特徴とする請求項1記載のオンラインリスク学習システム。
【請求項3】
上記複数の1次元モデルの中から上記移動体の運転状態に応じて1つの1次元モデルを選択し、選択した1次元モデルに、上記外界環境を撮像した画像情報から抽出した特徴量のみを入力することを特徴とする請求項2記載のオンラインリスク学習システム。
【請求項4】
上記複数の1次元モデルを、入力データの性質に応じて並列化することを特徴とする請求項2又は3記載のオンラインリスク学習システム。
【請求項5】
上記並列化された複数の1次元モデルを、ヒステリシスを持って切り換えることを特徴とする請求項4記載のオンラインリスク学習システム。
【請求項1】
移動体の外界環境を検出し、この外界環境に含まれるリスクを学習的に認識するオンラインリスク学習システムであって、
上記外界環境の検出情報を処理して上記外界環境に含まれる多次元の特徴量を抽出する特徴量抽出部と、
上記特徴量をクラスタリングするための認識モデルを階層化して設定する認識モデル設定部と、
上記認識モデル設定部で設定された認識モデルを用いて多次元の上記特徴量を1次元の状態として認識する状態認識部と、
上記状態認識部で認識された状態と上記危険度に係るリスク情報を抽出して作成された教師情報との相関に基づいて、上記状態の危険度を適応的に学習し、上記外界環境に含まれる危険度を認識するリスク認識部と
を備えることを特徴とするオンラインリスク学習システム。
【請求項2】
上記認識モデルを自己組織化マップで作成し、該自己組織化マップを上記移動体の運転状態に応じて複数の1次元モデルに分割して階層化することを特徴とする請求項1記載のオンラインリスク学習システム。
【請求項3】
上記複数の1次元モデルの中から上記移動体の運転状態に応じて1つの1次元モデルを選択し、選択した1次元モデルに、上記外界環境を撮像した画像情報から抽出した特徴量のみを入力することを特徴とする請求項2記載のオンラインリスク学習システム。
【請求項4】
上記複数の1次元モデルを、入力データの性質に応じて並列化することを特徴とする請求項2又は3記載のオンラインリスク学習システム。
【請求項5】
上記並列化された複数の1次元モデルを、ヒステリシスを持って切り換えることを特徴とする請求項4記載のオンラインリスク学習システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図14】
【図15】
【図10】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図14】
【図15】
【図10】
【図16】
【公開番号】特開2011−14038(P2011−14038A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2009−159063(P2009−159063)
【出願日】平成21年7月3日(2009.7.3)
【出願人】(000005348)富士重工業株式会社 (3,010)
【Fターム(参考)】
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願日】平成21年7月3日(2009.7.3)
【出願人】(000005348)富士重工業株式会社 (3,010)
【Fターム(参考)】
[ Back to top ]