(57)【要約】【課題】車両の移動量を安定して精度よく算出することにより、車両の自己位置の推定精度を向上させる。【解決手段】第１のカメラを用いて第１の方向の車両の周囲を撮像して第１の画像を取得し、第２のカメラを用いて第１の方向とは異なる第２の方向の車両の周囲を撮像して第２の画像を取得し、第１の画像を用いて車両の第１の移動量を算出し、第２の画像を用いて車両の第２の移動量を算出し、車両から出力される車両信号を用いて車両の第３の移動量を算出し、第１の移動量と第３の移動量とを比較し、第２の移動量と第３の移動量とを比較し、比較の結果に基づいて、第１の移動量、第２の移動量及び第３の移動量のうち、いずれかの移動量を選択し、選択した移動量を用いて、車両の位置を推定する。【選択図】図３
2019007739.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された第１のカメラ及び第２のカメラを用いて、前記車両の位置を推定する自己位置推定装置の自己位置推定方法であって、
前記第１のカメラを用いて第１の方向の前記車両の周囲を撮像して第１の画像を取得し、
前記第２のカメラを用いて前記第１の方向とは異なる第２の方向の前記車両の周囲を撮像して第２の画像を取得し、
前記第１の画像を用いて前記車両の第１の移動量を算出し、
前記第２の画像を用いて前記車両の第２の移動量を算出し、
前記車両から出力される車両信号を用いて前記車両の第３の移動量を算出し、
前記第１の移動量と前記第３の移動量とを比較し、
前記第２の移動量と前記第３の移動量とを比較し、
前記比較の結果に基づいて、前記第１の移動量、前記第２の移動量及び前記第３の移動量のうち、いずれかの移動量を選択し、
選択した前記移動量を用いて、前記車両の位置を推定する
自己位置推定方法。
【請求項２】
請求項１記載の自己位置推定方法であって、
前記第１の移動量と前記第３の移動量との差を算出し、
前記第２の移動量と前記第３の移動量との差を算出し、
前記第１の移動量及び前記第２の移動量のうち、前記第３の移動量との前記差が小さい移動量を選択する
自己位置推定方法。
【請求項３】
請求項１記載の自己位置推定方法であって、
予め定めた局所領域における前記第１の移動量、前記第２の移動量及び前記第３の移動量を算出し、
前記第１の移動量及び前記第２の移動量の各々を第３の移動量からなる関数に対してフィッティングし、
前記第１の移動量及び前記第２の移動量のうち、前記関数との一致が高い移動量を選択する
自己位置推定方法。
【請求項４】
請求項２に記載の自己位置推定方法であって、
前記第１の移動量と前記第３の移動量との差、前記第２の移動量と前記第３の移動量との差のいずれも、所定の基準範囲内に収まらない場合は、前記第３の移動量を選択する
自己位置推定方法。
【請求項５】
車両に搭載された第１のカメラ及び第２のカメラを用いて、前記車両の位置を推定する自己位置推定装置であって、
前記第１のカメラを用いて第１の方向の前記車両の周囲を撮像して第１の画像を取得し、前記第２のカメラを用いて前記第１の方向とは異なる第２の方向の前記車両の周囲を撮像して第２の画像を取得する画像取得回路と、
前記第１の画像を用いて前記車両の第１の移動量を算出する第１の移動量算出回路と、
前記第２の画像を用いて前記車両の第２の移動量を算出する第２の移動量算出回路と、
前記車両から出力される車両信号を用いて前記車両の第３の移動量を算出する第３の移動量算出回路と、
前記第１の移動量と前記第３の移動量とを比較し、前記第２の移動量と前記第３の移動量とを比較する移動量比較回路と、
前記移動量比較回路の比較結果に基づいて、前記第１の移動量、前記第２の移動量及び前記第３の移動量のうち、いずれかの移動量を選択する移動量選択回路と、
選択した前記移動量を用いて、前記車両の位置を推定する自己位置推定回路と
を有する自己位置推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己位置推定方法及び自己位置推定装置に関する。
【背景技術】
【０００２】
従来から、互いに異なる時刻にカメラで撮影された物体の画像上の位置の差とカメラの移動量とに基づいて物体の３次元位置を計測する３次元位置計測装置が知られている（特許文献１参照）。特許文献１では、画像から抽出された特徴点の位置の変化から、カメラ或いは移動体の移動量を算出している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１０６０９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１では、カメラを用いて移動体の移動量を算出するものの、複数のカメラから得られた情報のうち、移動体の３次元位置の計測精度を向上させるために、選択的に情報を用いていない。
【０００５】
本発明は、このような従来の課題に鑑みてなされたものであり、その目的は、車両の移動量を安定して精度よく算出することにより、車両の自己位置の推定精度を向上させることである。
【課題を解決するための手段】
【０００６】
本発明の一態様に係わる自己位置推定方法は、第１のカメラを用いて第１の方向の車両の周囲を撮像して第１の画像を取得し、第２のカメラを用いて第１の方向とは異なる第２の方向の車両の周囲を撮像して第２の画像を取得し、第１の画像を用いて車両の第１の移動量を算出し、第２の画像を用いて車両の第２の移動量を算出し、車両から出力される車両信号を用いて車両の第３の移動量を算出し、第１の移動量と第３の移動量とを比較し、第２の移動量と第３の移動量とを比較し、比較の結果に基づいて、第１の移動量、第２の移動量及び第３の移動量のうち、いずれかの移動量を選択し、選択した移動量を用いて、車両の位置を推定する。
【発明の効果】
【０００７】
本発明の一態様によれば、車両の移動量を安定して精度よく算出することにより、車両の自己位置の推定精度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係わる自己位置推定装置の全体構成を示す機能ブロック図である。
【図２】図２は、学習時（オフライン時）の図１の自己位置推定装置の動作の一例を示すフローチャートである。
【図３】図３は、自己位置推定時（オンライン時）の図１の自己位置推定装置の動作の一例を示すフローチャートである。
【図４Ａ】図４Ａは、太陽４０に対する前方カメラ１２ａ及び後方カメラ１２ｂの向きの時間変化を示す図である。
【図４Ｂ】図４Ｂは、図４Ａの走行軌跡３８に沿って車両３９が走行した場合において、前方カメラ移動量４１、後方カメラ移動量４２、及びオドメトリ移動量４３の時間変化を示す図である。
【発明を実施するための形態】
【０００９】
次に、図面を参照して、実施形態を詳細に説明する。
【００１０】
＜自己位置推定装置＞
図１を参照して、実施形態に係わる自己位置推定装置の全体構成を説明する。自己位置推定装置は、車両に搭載された前方カメラ１２ａ（第１のカメラ）及び後方カメラ１２ｂ（第２のカメラ）と、車両センサ１３と、特徴点及び走行軌跡を記録する特徴点記録装置１６と、チェックポイント及び走行軌跡を学習し、車両の位置を推定するコントローラ１１とを備える。
【００１１】
前方カメラ１２ａは、車両を基準にして定められた第１の方向（ここでは、「車両の前方」）の車両の周囲を撮像して画像データ（前方画像：第１の画像）を生成する。後方カメラ１２ｂは、車両を基準にして定められた第１の方向とは異なる第２の方向（ここでは、「車両の後方」）の車両の周囲を撮像して画像データ（後方画像：第２の画像）を生成する。カメラ（１２ａ、１２ｂ）は、互いに異なる方向の車両の周囲を同時に撮影することができる。ここでは、異なる方向として車両の前後方向を例示するが、車両の左右方向、或いはその他の方向の組合せであっても構わない。また、第１の方向と第２の方向の角度差が１８０°である必要はなく、ゼロではない所定の角度の差を有するように、カメラ（１２ａ、１２ｂ）の撮像方向が定められている。
【００１２】
前方カメラ１２ａ及び後方カメラ１２ｂの各々は、ステレオカメラであっても単眼カメラであっても構わない。前方カメラ１２ａ及び後方カメラ１２ｂの各々が生成する画像データから、物体（特徴点）の奥行き情報を取得することができる。つまり、各画像データから、車両の周囲の物体の３次元位置を計測することが可能である。
【００１３】
車両センサ１３は、車両に搭載され、車両から得られる様々な情報（車両信号）を検出する。車両センサ１３には、例えば、車両の走行速度（車速）を検出する車速センサ、車両が備える各タイヤの回転速度を検出する車輪速センサ、車両の３軸方向の加速度（減速度を含む）を検出する３軸加速度センサ（Ｇセンサ）、操舵角（転舵角を含む）を検出する操舵角センサ、車両に生じる角速度を検出するジャイロセンサ、ヨーレートを検出するヨーレートセンサが含まれる。
【００１４】
コントローラ１１は、前方カメラ１２ａ及び後方カメラ１２ｂ及び車両センサ１３から得られるデータに基づいて、車両の自己位置及び走行軌跡を学習し、学習結果に基づいて車両の自己位置を推定する。
【００１５】
コントローラ１１は、ＣＰＵ（中央処理装置）、メモリ、及び入出力部を備える汎用のマイクロコンピュータを用いて実現可能である。コントローラ１１には、自己位置推定装置として機能させるためのコンピュータプログラム（自己位置推定プログラム）がインストールされ、メモリに記憶されている。コンピュータプログラムを実行することにより、コントローラ１１は、自己位置推定装置が備える複数の情報処理回路（２１〜２８）として機能する。なお、実施形態では、ソフトウェアによって自己位置推定装置が備える複数の情報処理回路（２１〜２８）を実現する例を示すが、もちろん、以下に示す各情報処理を実行するための専用のハードウェアを用意して、情報処理回路（２１〜２８）を構成することも可能である。また、複数の情報処理回路（２１〜２８）を個別のハードウェアにより構成してもよい。更に、情報処理回路（２１〜２８）は、車両に関わる他の制御に用いる電子制御ユニット（ＥＣＵ）と兼用してもよい。
【００１６】
コントローラ１１は、複数の情報処理回路として、画像取得部２１（画像取得回路）と、前方カメラ移動量算出部２２（第１の移動量算出回路）と、後方カメラ移動量算出部２３（第２の移動量算出回路）と、車両オドメトリ算出部２４（第３の移動量算出回路）と、移動量差算出部２５（移動量比較回路）と、移動量選択部２６（移動量選択回路）と、特徴点学習部２７と、自己位置推定部２８（自己位置推定回路）とを備える。
【００１７】
特徴点記録装置１６には、特徴点学習部２７による学習結果が記録される。
【００１８】
画像取得部２１は、前方カメラ１２ａ及び後方カメラ１２ｂの各々の撮影により得られた画像データを取得する。詳細には、画像取得部２１は、画像データと共に、その撮影タイミングを示すタイムスタンプも同時に取得する。
【００１９】
前方カメラ移動量算出部２２は、前方カメラ１２ａにより得られた前方画像を用いて車両の移動量（前方カメラ移動量：第１の移動量）を算出する。前方カメラ移動量の算出方法は特に問わず、既存の方法を用いることができる。例えば、先ず、前方画像の中から特徴点をそれぞれ抽出し、特徴点のステレオマッチング処理及び視差情報に基づき、特徴点の３次元位置を特定する。そして、車両が走行しながら繰り返し撮像を行い、フレーム（画像）間で特徴点のマッチング処理を行う。特徴点の３次元位置の変化から、車両の移動量（前方カメラ移動量）を算出することができる。後方カメラ移動量算出部２３は、後方カメラ１２ｂにより得られた後方画像を用いて車両の移動量（後方カメラ移動量：第２の移動量）を算出する。後方カメラ移動量算出部２３も、前方カメラ移動量算出部２２と同様に、既存の方法を用いて後方カメラ移動量を特定する。
【００２０】
車両オドメトリ算出部２４は、車両センサ１３からの検出結果に基づいて、車両の移動量（オドメトリ移動量：第３の移動量）を算出する。先ず、車両オドメトリ算出部２４は、車両センサ１３からの検出結果を、車両から得られる車両信号として取得する。詳細には、車両オドメトリ算出部２４は、車両信号と共に、その検出タイミングを示すタイムスタップも同時に取得する。撮像タイミング及び検出タイミングの各々を示すタイムスタップを、画像データ及び車両信号と共に受信することにより、画像データ及び車両信号を時間軸により関連付けることが可能となる。
【００２１】
車両オドメトリ算出部２４は、車両センサ１３により検出された車両信号に基づいて、車両の走行軌跡を算出する。走行軌跡の算出方法は、特に問わず、既存の方法を用いることができる。例えば、左右のタイヤの回転角度の差からヨーレートを算出し、ヨーレートを積分することにより車両のヨー角（車両の姿勢、進行方向を含む）を算出すればよい。勿論、ヨーレートセンサを用いても構わない。また、車両が備えるタイヤの回転量から車両の移動量を算出することができる。車両信号に基づいて算出される車両の走行軌跡を「車両オドメトリ」と呼ぶ。車両オドメトリ算出部２４は、車両オドメトリから、所定の時間における車両の移動量（オドメトリ移動量：第３の移動量）を算出する。
【００２２】
なお、前方カメラ移動量、後方カメラ移動量及びオドメトリ移動量を含む「車両の移動量」は、車両の移動距離、及び車両の移動方向を含む概念である。
【００２３】
移動量差算出部２５は、前方カメラ移動量とオドメトリ移動量とを比較し、後方カメラ移動量とオドメトリ移動量とを比較する。具体的には、前方カメラ移動量とオドメトリ移動量との差（前方差）を算出し、後方カメラ移動量とオドメトリ移動量との差（後方差）を算出する。
【００２４】
移動量選択部２６は、移動量差算出部２５による比較結果に基づいて、前方カメラ移動量、後方カメラ移動量及びオドメトリ移動量のうち、いずれかの移動量を車両の移動量として選択する。例えば、前方カメラ移動量及び後方カメラ移動量のうち、オドメトリ移動量との差が小さい移動量を選択する。換言すれば、移動量選択部２６は、移動量差算出部２５により算出された前方差と後方差とを比較し、前方差と後方差のうち小さい方の移動量を選択する。前方差が小さい場合は前方カメラ移動量を選択し、後方差が小さい場合は後方カメラ移動量を選択する。前方差と後方差とが同じ場合、前方カメラ移動量及び後方カメラ移動量のいずれを選択しても構わない。前方差及び後方差のいずれも所定の基準範囲外である場合、前方カメラ移動量及び後方カメラ移動量を選択せずに、オドメトリ移動量を選択する。
【００２５】
前方画像又は後方画像に基づいて独立して算出される前方カメラ移動量及び後方カメラ移動量は、通常、誤差が少なく正確な値を示す。しかし、太陽光、風景の平坦度合いなどの環境の影響、また旋回や段差による車両挙動により、画像から抽出される特徴点の数が減少することや、特徴点までの距離を正確に求めることが難しいことがある。更に、マッチングに成功する特徴点の数が減少したり、特徴点のマッチングに成功しても特徴点の見え方に微妙な変化が生じ、マッチングの尤度が低下してしまう。このため、前方カメラ移動量及び後方カメラ移動量の算出精度は、通常は高いが、ロバスト性が低く、外乱の影響により著しく低下してしまう。
【００２６】
また、抽出される特徴点の数のみを基準にしてカメラ移動量の算出精度を判断してしまうと、抽出される特徴点の数の減少やマッチングの尤度の低下が、太陽光が原因しているのか、或いは元々の輝度変化の少ない平坦な風景が原因しているのか、を判別できない。
【００２７】
そこで、ロバスト性が高く、高い精度を安定して得るために、先ず、異なる方向（前方及び後方）の車両の周囲を撮像して前方画像及び後方画像を取得することにより、少なくともいずれか一方の画像に対して太陽光の影響を受けにくくする。
【００２８】
次に、車両信号（例えば、車輪側センサ）に基づいて算出される車両オドメトリは、誤差が累積することが一般的に知られており、長期的には精度が低いが、局所的に見ると、車両オドメトリの精度は、安定して高い。そこで、車両オドメトリに基づくオドメトリ移動量を参照値（リファレンス）として、前方カメラ移動量及び後方カメラ移動量の各々の誤差を評価する。つまり、移動量差算出部２５が、前方カメラ移動量とオドメトリ移動量との前方差を算出し、後方カメラ移動量とオドメトリ移動量との後方差を算出する。
【００２９】
そして、移動量選択部２６は、原則として、オドメトリ移動量（リファレンス）との差が小さい方のカメラ移動量が、より精度が高い車両の移動量であると判断して、これを選択する。ただし、前方カメラ移動量及び後方カメラ移動量のいずれも大きな誤差を有している場合、リファレンスとして用いたオドメトリ移動量が、いずれのカメラ移動量よりも精度が高い車両の移動量であると判断して、これを選択する。
【００３０】
これにより、移動量選択部２６は、車両の移動量を安定して精度よく算出することができる。換言すれば、太陽光、輝度変化の少ない平坦な風景などの車両の周囲の影響に対するロバスト性を高めることができる。
【００３１】
特徴点学習部２７は、前方画像又は後方画像に基づいて、地図、及び地図上における車両の自己位置及び車両の走行軌跡を算出する。算出方法は特に問わず、既存の方法を用いることができる。例えば、前方カメラ１２ａ及び後方カメラ１２ｂの各々は、車両が走行しながら繰り返し撮像を行い、複数のフレーム（画像）をそれぞれ取得する。前方カメラ移動量算出部２２及び後方カメラ移動量算出部２３の各々は、前方画像又は後方画像から特徴点をそれぞれ抽出し、特徴点の３次元位置をそれぞれ特定し、フレーム（画像）間における特徴点の３次元位置の変化から車両の移動量（前方カメラ移動量、後方カメラ移動量）をそれぞれ特定する。一方、車両オドメトリ算出部２４は、タイムスタンプを用いて、フレーム（画像）間におけるオドメトリ移動量を算出する。
【００３２】
特徴点学習部２７は、フレーム（画像）間で特徴点のマッチング処理を行う。そして、移動量選択部２６は、フレーム（画像）間の車両の移動量を選択する。特徴点学習部２７は、移動量選択部２６により選択された車両の移動量に従って、特徴点の３次元位置を移動させる。これを繰り返すことにより、特徴点学習部２７は、複数のフレームから抽出された複数の特徴点の３次元位置を１つの地図（環境マップを含む）上に表すことができる。また同時に、地図上における車両の自己位置及び車両の走行軌跡を特定することもできる。なお、カメラ（１２ａ、１２ｂ）の画像に基づいて算出される車両の走行軌跡を「ビジュアルオドメトリ（ＶＯ）」と呼ぶ。
【００３３】
このように、特徴点学習部２７が、特徴点に基づいて、地図（環境マップを含む）、車両の自己位置及び車両の走行軌跡を学習する時に、移動量選択部２６により選択された車両の移動量を用いることができるので、学習の精度が向上する。
【００３４】
更に、特徴点学習部２７は、カメラ（１２ａ、１２ｂ）の画像に基づいて、車両が走行した地点（チェックポイント）を学習する。具体的には、チェックポイントを車両が通過したときに撮影した画像に基づいて、チェックポイントを学習する。例えば、特徴点学習部２７は、当該画像から抽出された特徴点の画像上の位置、又は特徴点の３次元位置に基づいて、チェックポイントを学習すればよい。尚、特徴点学習部２７は、チェックポイントの間毎に分割して走行軌跡（ビジュアルオドメトリ）を学習してもよく、分割せず走行軌跡を学習するようにしてもよい。分割する際は、所定時間毎にでもよく、シーン毎（例えば、直進、カーブ、高速道、一般道、交差点）でもよく、分割する方法は問わない。更に、特徴点学習部２７は、走行軌跡ビジュアルオドメトリの代わりに、車両信号に基づいて算出される車両の走行軌跡（車両オドメトリ）を学習しても構わない。走行軌跡（車両オドメトリ）の算出方法は、特に問わず、既存の方法を用いることができる。例えば、左右のタイヤの回転角度の差からヨーレートを算出し、ヨーレートを積分することにより車両のヨー角（車両の姿勢、進行方向を含む）を算出すればよい。勿論、ヨーレートセンサを用いても構わない。また、車両が備えるタイヤの回転量から車両の移動量を算出することができる。
【００３５】
地図、車両の自己位置及び走行軌跡、及びチェックポイントを含む特徴点学習部２７の学習結果は、特徴点記録装置１６に記録される。
【００３６】
自己位置推定部２８は、特徴点学習部２７が学習した地図、車両の自己位置及び走行軌跡、及びチェックポイントに基づいて、車両の自己位置を推定する。具体的には、車両がチェックポイントを通過した否かを確認し、最後に通過したチェックポイントからの車両の移動量に基づいて、現在の車両の自己位置を推定する。この時、自己位置推定部２８は、最後に通過したチェックポイントからの車両の移動量として、移動量選択部２６により選択された車両の移動量を用いる。これにより、自己位置の推定精度が向上する。
【００３７】
車両がチェックポイントを通過した否かを確認する方法は例えば次の通りである。自己位置推定部２８は、チェックポイントを通過した時の画像（記録画像）及び記録画像中の特徴点の位置情報を、特徴点記録装置１６から読み出す。そして、自己位置推定の時に撮影された画像（対象画像）中の特徴点と、記録画像中の特徴点との対応付けを行う。対応付けに成功した特徴点が所定の条件を満たした場合、チェックポイントにおけるカメラの位置及び姿勢を、走行制御時に再現できたと判断できる。即ち、対象画像は、記録画像を取得した時と同じカメラの位置及び姿勢において取得された、と判断できる。よって、この場合、通過確認部２４は、チェックポイントを車両が通過したと判断する。
【００３８】
なお、対応付けに成功した特徴点が所定の条件を満たしたか否かは、例えば、以下の方法を用いて判断することができる。先ず、記録画像中から抽出された特徴点の数をＦｓとする。対象画像中から抽出された特徴点のうち、記録画像中から抽出された特徴点と対応付けに成功した特徴点の数をＦｎとする。例えば、記録画像と対象画像との間で、車両に対する特徴点の相対位置のずれが所定値未満である場合、その特徴点は対応付けに成功したと判断する。画像通過確信度（Ｚ）を、Ｚ＝Ｆｎ／Ｆｓと定義する。画像通過確信度は、チェックポイントを車両が通過した可能性を示す。自己位置推定部２８は、画像通過確信度が０．８未満である場合、画像通過確信度が低いため、対応付けに成功した特徴点が所定の条件を満たしていない、つまり、チェックポイントを車両が通過していない、と判断する。自己位置推定部２８は、画像通過確信度が０．８以上である場合、対応付けに成功した特徴点が所定の条件を満たしている、つまり、チェックポイントを車両が通過したと判断する。
【００３９】
自己位置推定処理において、前方カメラ１２ａ及び後方カメラ１２ｂの各々は、車両が走行しながら繰り返し撮像を行い、複数のフレーム（画像）をそれぞれ取得する。前方カメラ移動量算出部２２及び後方カメラ移動量算出部２３の各々は、前方画像又は後方画像から特徴点をそれぞれ抽出し、特徴点の３次元位置をそれぞれ特定し、フレーム（画像）間で特徴点のマッチング処理を行う。そして、フレーム（画像）間における特徴点の３次元位置の変化から車両の移動量（前方カメラ移動量、後方カメラ移動量）をそれぞれ特定する。一方、車両オドメトリ算出部２４は、タイムスタンプを用いて、フレーム（画像）間におけるオドメトリ移動量を算出する。そして、移動量選択部２６は、移動量差算出部２５による比較結果に基づいて、前方カメラ移動量、後方カメラ移動量及びオドメトリ移動量のうち、いずれかの移動量を選択する。自己位置推定部２８は、移動量選択部２６により選択された車両の移動量に基づいて、最後に通過したチェックポイントからの車両の移動量を算出し、現在の車両の自己位置を推定する。
【００４０】
＜自己位置推定方法＞
次に、図２及び図３を参照して、自己位置推定装置の動作例を説明する。先ず、図２を参照して、学習時（オフライン時）の自己位置推定装置の動作を説明する。
【００４１】
ステップＳ５１において、画像取得部２１は、カメラ（１２ａ、１２ｂ）を用いて車両の周囲を撮影して前方画像及び後方画像を取得する。画像取得部２１は、カメラ（１２ａ、１２ｂ）の撮影タイミングを同期させ、且つ、所定のフレームレート（１〜５ＦＰＳ）で繰り返し撮影する。
【００４２】
ステップＳ５３に進み、前方カメラ移動量算出部２２は、前方カメラ１２ａにより得られた前方画像を用いて前方カメラ移動量を算出する。ステップＳ５５に進み、後方カメラ移動量算出部２３は、後方カメラ１２ｂにより得られた後方画像を用いて後方カメラ移動量を算出する。ステップＳ５７に進み、車両オドメトリ算出部２４は、車両センサ１３からの検出結果に基づいて、オドメトリ移動量を算出する。
【００４３】
ステップＳ５９に進み、移動量差算出部２５は、前方カメラ移動量とオドメトリ移動量とを比較する。具体的には、前方カメラ移動量とオドメトリ移動量との差（前方差）を算出する。ステップＳ６１に進み、移動量差算出部２５は、後方カメラ移動量とオドメトリ移動量とを比較する。具体的には、後方カメラ移動量とオドメトリ移動量との差（後方差）を算出する。ステップＳ６３に進み、移動量選択部２６は、前方差及び後方差のいずれも基準範囲外であるか否かを判断する。前方差及び後方差のいずれも基準範囲外である場合（Ｓ６３でＹＥＳ）、前方カメラ移動量及び後方カメラ移動量のいずれも大きな誤差を含んでいると推測できる。よって、ステップＳ６７に進み、移動量選択部２６は、オドメトリ移動量を選択する。
【００４４】
一方、前方差及び後方差の少なくとも一方が基準範囲内である場合（Ｓ６３でＮＯ）、前方カメラ移動量及び後方カメラ移動量の少なくとも一方は大きな誤差を含んでいないと推測できる。よって、ステップＳ６５に進み、移動量選択部２６は、前方差と後方差のうち小さい方の移動量を選択する。これにより、オドメトリ移動量を基準とした前方カメラ移動量及び後方カメラ移動量の誤差を比較して、誤差が小さいいずれか一方のカメラ移動量を選択することができる。このように、Ｓ６３〜Ｓ６７において、移動量選択部２６は、移動量差算出部２５による比較結果に基づいて、前方カメラ移動量、後方カメラ移動量及びオドメトリ移動量のうち、いずれかの移動量を選択することができる。
【００４５】
特徴点学習部２７は、ステップＳ６５又はＳ６７で選択された車両の移動量を用いて、特徴点に基づいて、地図、車両の自己位置、車両の走行軌跡、及びチェックポイントを学習し、特徴点及び走行軌跡を特徴点記録装置１６に記録する。
【００４６】
次に、図３を参照して、自己位置推定時（オンライン時）の自己位置推定装置の動作を説明する。
【００４７】
ステップＳ０１において、自己位置推定部２８は、特徴点記録装置１６から特徴点及び走行軌跡を読み出す。読み出した特徴点を、「記録特徴点」と呼ぶ。ステップＳ０３に進み、前方カメラ１２ａは車両の周囲を撮影し、画像取得部２１は、前方画像を取得する。
【００４８】
ステップＳ０５に進み、前方カメラ移動量算出部２２は、前方画像から特徴点を抽出する。抽出された特徴点を、「抽出特徴点」と呼ぶ。ステップＳ０７に進み、前方カメラ移動量算出部２２は、記録特徴点と抽出特徴点との対応付けを行う。記録特徴点の相対位置と抽出特徴点の相対位置とのずれが所定値未満である場合、記録特徴点と抽出特徴点との対応付けに成功したと判断する。
【００４９】
ステップＳ０９に進み、前方カメラ移動量算出部２２は、対応付けに成功した抽出特徴点を用いて、前方カメラ移動量を算出する。
【００５０】
ステップＳ１１に進み、後方カメラ１２ｂは車両の周囲を撮影し、画像取得部２１は、後方画像を取得する。ステップＳ１３に進み、後方カメラ移動量算出部２３は、後方カメラ１２ｂにより得られた後方画像から特徴点を抽出する。ステップＳ１５に進み、後方カメラ移動量算出部２３は、記録特徴点と抽出特徴点との対応付けを行う。
【００５１】
ステップＳ１７に進み、後方カメラ移動量算出部２３は、対応付けに成功した抽出特徴点を用いて、後方カメラ移動量を算出する。
【００５２】
ステップＳ１９に進み、車両オドメトリ算出部２４は、車両センサ１３からの検出結果に基づいて、オドメトリ移動量を算出する。
【００５３】
ステップＳ２１に進み、移動量差算出部２５は、前方カメラ移動量とオドメトリ移動量とを比較する。具体的には、前方カメラ移動量とオドメトリ移動量との差（前方差）を算出する。ステップＳ２３に進み、移動量差算出部２５は、後方カメラ移動量とオドメトリ移動量とを比較する。具体的には、後方カメラ移動量とオドメトリ移動量との差（後方差）を算出する。ステップＳ２５に進み、移動量選択部２６は、前方差及び後方差のいずれも所定の基準範囲外であるか否かを判断する。前方差及び後方差のいずれも基準範囲外である場合（Ｓ２５でＹＥＳ）、前方カメラ移動量及び後方カメラ移動量のいずれも大きな誤差を含んでいると推測できる。よって、ステップＳ２９に進み、移動量選択部２６は、オドメトリ移動量を選択する。
【００５４】
一方、前方差及び後方差の少なくとも一方が基準範囲内である場合（Ｓ２５でＮＯ）、前方カメラ移動量及び後方カメラ移動量の少なくとも一方は大きな誤差を含んでいないと推測できる。よって、ステップＳ２７に進み、移動量選択部２６は、前方差と後方差のうち小さい方の移動量を選択する。これにより、オドメトリ移動量を基準とした前方カメラ移動量及び後方カメラ移動量の誤差を比較して、誤差が小さいいずれか一方のカメラ移動量を選択することができる。このように、Ｓ２５〜Ｓ２９において、移動量選択部２６は、移動量差算出部２５による比較結果に基づいて、前方カメラ移動量、後方カメラ移動量及びオドメトリ移動量のうち、いずれかの移動量を選択することができる。
【００５５】
ステップＳ３１に進み、自己位置推定部２８は、ステップＳ０１で読み込んだ特徴点に基づいて、車両がチェックポイントを通過した否かを確認する。そして、最後に通過したチェックポイントからの車両の移動量に基づいて、現在の車両の自己位置を推定する。この時、自己位置推定部２８は、最後に通過したチェックポイントからの車両の移動量として、Ｓ２５〜Ｓ２９において選択された車両の移動量を用いる。
【００５６】
上記したように、学習時（オフライン時）及び自己位置推定時（オンライン時）において、自己位置推定装置は、フレーム（画像）間で特徴点のマッチング処理を行うことにより、前方カメラ移動量及び後方カメラ移動量を算出する。よって、フレーム（画像）から抽出される特徴点の数、又はマッチング処理に成功する特徴点の数が多い方が、カメラ移動量の精度は高くなる。
【００５７】
しかし、抽出される特徴点の数やマッチング処理に成功する特徴点の数、マッチングの尤度は、太陽の影響を強く受ける。図４Ａに示すように、カメラ（１２ａ、１２ｂ）の撮影方向が太陽４０に対向している場合、カメラの撮像素子に入射する光の輝度が撮像素子のダイナミックレンジを超えてしまい、輝度分布の少ない画像となってしまう。このため、輝度分布の少ない画像から抽出される特徴点の数や、マッチング処理に成功する特徴点の数が大幅に減ってしまい、カメラ移動量の算出精度が低下してしまう。
【００５８】
更に、太陽光の影響を受けていなくても、元々の風景において輝度分布が少なければ、輝度分布の少ない画像となってしまう。このため、特徴点の数を基準とした場合には、太陽光と平坦な風景とを判別できない。
【００５９】
そこで、図４Ｂに示すように、前方カメラ移動量４１及び後方カメラ移動量４２を独立して算出すると同時に、オドメトリ移動量４３を算出する。オドメトリ移動量４３（関数）に対して、前方カメラ移動量４１及び後方カメラ移動量４２をフィッティングする。オドメトリ移動量４３との一致度が高いカメラ移動量（４１、４２）を選択する。
【００６０】
図４Ａに示すように、車両３９が走行軌跡３８に沿って走行するシーンを考える。出発地点において、前方カメラ１２ａは太陽４０とは逆方向の車両３９の周囲を撮像する。一方、後方カメラ１２ｂは太陽４０に向かって車両３９の周囲を撮像する。車両３９は、走行軌跡３８に沿って１８０°だけ左旋回する。到達地点においては、前方カメラ１２ａは太陽４０に向かって車両３９の周囲を撮像し、後方カメラ１２ｂは太陽４０とは逆方向の車両３９の周囲を撮像する。
【００６１】
よって、図４Ｂに示すように、出発地点において、前方カメラ移動量４１とオドメトリ移動量４３との差は、後方カメラ移動量４２とオドメトリ移動量４３との差よりも小さい。よって、出発地点において、より精度が高い前方カメラ移動量４１を選択することができる。
【００６２】
その後、９０°左旋回した時に、前方カメラ１２ａ及び後方カメラ１２ｂは、共に太陽４０の影響を受けにくくなり、前方カメラ移動量４１及び後方カメラ移動量４２は共に、オドメトリ移動量４３との差が小さくなる。
【００６３】
そして、更に９０°左旋回した到達地点において、前方カメラ移動量４１とオドメトリ移動量４３との差は、後方カメラ移動量４２とオドメトリ移動量４３との差よりも大きくなる。よって、到達地点において、より精度が高い後方カメラ移動量４２を選択することができる。
【００６４】
以上説明したように、実施形態によれば、以下の作用効果が得られる。
【００６５】
自己位置推定装置は、前方カメラ移動量とオドメトリ移動量とを比較し、後方カメラ移動量とオドメトリ移動量とを比較し、これらの比較の結果に基づいて、前方カメラ移動量、後方カメラ移動量及びオドメトリ移動量のうち、いずれかの移動量を選択し、選択した移動量を用いて車両の位置を推定する。よって、自己位置推定装置は、車両の移動量を安定して精度よく算出することにより、車両の自己位置の推定精度を向上させることができる。換言すれば、太陽光、輝度変化の少ない平坦な風景などの車両の周囲の影響に対するロバスト性を高めることができる。
【００６６】
自己位置推定装置は、前方カメラ移動量とオドメトリ移動量との差を算出し、後方カメラ移動量とオドメトリ移動量との差を算出し、前方カメラ移動量及び後方カメラ移動量のうち、オドメトリ移動量との差が小さい移動量を選択する。オドメトリ移動量を参照値（リファレンス）として、前方カメラ移動量及び後方カメラ移動量の各々の誤差の大きさを評価することができる。局所的に見ると、車両信号に基づいて算出されるオドメトリ移動量の精度は、安定して高い。よって、誤差の小さいカメラ移動量を選択することができる。
【００６７】
自己位置推定装置は、図４Ｂに示すように、予め定めた局所領域における前方カメラ移動量４１、後方カメラ移動量４２及びオドメトリ移動量４３を算出し、前方カメラ移動量４１及び後方カメラ移動量４２の各々をオドメトリ移動量からなる関数４３に対してフィッティングし、前方カメラ移動量４１及び後方カメラ移動量４２のうち、関数４３との一致が高い移動量を選択する。オドメトリ移動量を関数４３として用いて、前方カメラ移動量４１及び後方カメラ移動量４２との一致度を評価することができる。局所領域におけるオドメトリ移動量の精度は、安定して高い。よって、誤差の小さいカメラ移動量を選択することができる。
【００６８】
自己位置推定装置は、前方カメラ移動量とオドメトリ移動量との差、後方カメラ移動量とオドメトリ移動量との差のいずれも、所定の範囲以内に収まらない場合は、オドメトリ移動量を選択する。前方カメラ移動量及び後方カメラ移動量のいずれも大きな誤差を有している場合、リファレンスとして用いたオドメトリ移動量が、いずれのカメラ移動量よりも精度が高い車両の移動量であると判断できる。よって、誤差の小さい車両の移動量を選択することができる。
【００６９】
以上、実施形態に沿って本発明の内容を説明したが、本発明はこれらの記載に限定されるものではなく、種々の変形及び改良が可能であることは、当業者には自明である。
【００７０】
車両の移動距離と車両の移動方向をまとめて車両の移動量として説明した。これに限らず、車両の移動距離と車両の移動方向の各々について、前方カメラ移動量、後方カメラ移動量、及びオドメトリ移動量を比較し、車両の移動距離と車両の移動方向の各々を個別に選択しても構わない。或いは、車両の移動量を、車両の移動距離と車両の移動方向のいずれか一方に置き換えて実施しても構わない。
【００７１】
図２及び図３のフローチャートにおいて、可能な限りにおいて、順番を変更して実施してもよい。例えば、図３において、ステップＳ０３〜Ｓ０９と、ステップＳ１１〜Ｓ１７と、ステップＳ１９とは、互いに順番を入れ替えて実施しても構わない。或いは、同時に実施しても構わない。
【００７２】
尚、本実施形態における自己位置推定装置は、ドライバーの介入なしに車両を走行させる自動運転、ドライバーの介入に基づいて車両を走行させる手動運転に用いることができる。自動運転に用いる場合は、本実施形態における自己位置推定装置によって求めた自己位置を用いて、車両の走行軌跡を設定し、走行軌跡に基づいて車両を制御する。手動運転に用いる場合は、本実施形態における自己位置推定装置によって求めた自己位置を用いて、乗員に自己位置を知らせることや、いわゆるナビゲーション装置により走行計画を設定することができる。また、本実施形態における自己位置推定装置は、対象物（例えば、物標、白線、道路形状）を学習する、地図を生成する際に用いることができる。
【符号の説明】
【００７３】
１２ａ  第１のカメラ
１２ｂ  第２のカメラ
２１  画像取得部（画像取得回路）
２２  前方カメラ移動量算出部（第１の移動量算出回路）
２３  後方カメラ移動量算出部（第２の移動量算出回路）
２４  車両オドメトリ算出部（第３の移動量算出回路）
２５  移動量差算出部（移動量比較回路）
２６  移動量選択部（移動量選択回路）
２８  自己位置推定部（自己位置推定回路）
３９  車両
４１  前方カメラ移動量（第１の移動量）
４２  後方カメラ移動量（第２の移動量）
４３  オドメトリ移動量（第３の移動量）
【図１】
2019007739.tif 000003
【図２】
2019007739.tif 000004
【図３】
2019007739.tif 000005
【図４Ａ】
2019007739.tif 000006
【図４Ｂ】
2019007739.tif 000007