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

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

▶ 日立オートモティブシステムズ株式会社の特許一覧

<>
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000002
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000003
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000004
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000005
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000006
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000007
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000008
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000009
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000010
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000011
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000012
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000013
  • 特許6932058-移動体の位置推定装置及び位置推定方法 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6932058
(24)【登録日】2021年8月19日
(45)【発行日】2021年9月8日
(54)【発明の名称】移動体の位置推定装置及び位置推定方法
(51)【国際特許分類】
   G05D 1/02 20200101AFI20210826BHJP
   G06T 7/73 20170101ALI20210826BHJP
   G06T 7/70 20170101ALI20210826BHJP
【FI】
   G05D1/02 K
   G06T7/73
   G06T7/70 A
【請求項の数】10
【全頁数】18
(21)【出願番号】特願2017-197327(P2017-197327)
(22)【出願日】2017年10月11日
(65)【公開番号】特開2019-70983(P2019-70983A)
(43)【公開日】2019年5月9日
【審査請求日】2020年7月31日
(73)【特許権者】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】100098660
【弁理士】
【氏名又は名称】戸田 裕二
(72)【発明者】
【氏名】金子 アレックス益男
(72)【発明者】
【氏名】山本 健次郎
(72)【発明者】
【氏名】大辻 信也
(72)【発明者】
【氏名】早瀬 茂規
【審査官】 山田 辰美
(56)【参考文献】
【文献】 特開2014−165810(JP,A)
【文献】 特開2006−323437(JP,A)
【文献】 特開2009−145230(JP,A)
【文献】 国際公開第2017/145541(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
G06T 7/70
G06T 7/73
(57)【特許請求の範囲】
【請求項1】
移動体と、
前記移動体に設けられた撮像装置と、
前記撮像装置で取得した第1画像及び第2画像から同一対象である検知点の移動した第1移動量と、前記第1画像と前記2画像を取得した間に前記移動体が移動した第2移動量と、を求め、前記第1移動量と前記第2移動量から前記撮像装置で取得した検知点の認識精度を求め、前記認識精度と前記検知点の位置情報から前記移動体の位置推定をする情報処理装置と、を備えた移動体の位置推定装置。
【請求項2】
請求項1における移動体の位置推定装置において、
前記第1移動量は、取得した第1画像及び第2画像上における移動量を前記移動体の空間座標に変換した移動量であることを特徴とする移動体の位置推定装置。
【請求項3】
請求項2における移動体の位置推定装置において、
前記認識精度は前記第1移動量と前記第2移動量の差分であることを特徴とする移動体の位置推定装置。
【請求項4】
請求項3における移動体の位置推定装置において、
前記差分から検知点の重みを求め、
前記重みと前記検知点の位置情報から前記移動体の位置推定をすることを特徴とする移動体の位置推定装置。
【請求項5】
請求項4における移動体の位置推定装置において、
前記検知点の位置情報は、地図情報上における前記検知点の位置情報であることを特徴とする移動体の位置推定装置。
【請求項6】
請求項5における移動体の位置推定装置において、
前記差分に基づいて撮像装置のキャリブレーションを行うことを特徴とする移動体の位置推定装置。
【請求項7】
請求項6における移動体の位置推定装置において、
前記撮像装置は撮影方向が異なる複数の撮像装置を備えたことを特徴とする移動体の位置推定装置。
【請求項8】
移動体に設けられた撮像装置で取得した2フレーム以上の撮像画像のそれぞれから抽出した同一対象である検知点の移動した第1移動量を求め、
前記2フレーム以上の撮像画像を取得した間に前記移動体が移動した第2移動量を求め、
前記第1移動量と前記第2移動量から前記撮像装置で取得した検知点の精度を求め、
前記精度と前記検知点の位置情報から移動体の位置を推定する移動体の位置推定方法。
【請求項9】
請求項8に記載の移動体の位置推定方法において、
前記精度に基づいて、前記検知点の重みを求め、
前記重みと前記検知点の位置情報から移動体の位置を推定することを特徴とする移動体の位置推定方法。
【請求項10】
請求項9に記載の移動体の位置推定方法において、
前記精度に基づいて、撮像装置のキャリブレーションを行い、
移動体の位置を推定することを特徴とする移動体の位置推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットや自動車などの移動体の位置推定装置及び位置推定方法に関する。
【背景技術】
【0002】
ロボット及び自動車などの移動体がその周囲の情報を収集し、移動体の現在位置及び走行状態を推定し、移動体の走行を制御する自律走行技術や運転支援技術の開発が進められている。
【0003】
移動体の周囲の情報や位置の情報を収集する手段としては、様々な種類のセンサが用いられている。周囲の情報を計測するためのセンサとしては、カメラなどの撮像装置の他、レーザセンサやミリ波レーダなどがある。移動体の位置を測定するためのセンサとしては、GPS(Global Positioning System)またはIMU(Inertial Measurement Unit)が用いられる。
【0004】
自律走行制御においては、移動体に搭載された制御装置が、例えばIMUで算出した移動体の速度または角速度を積算したり、GPS測位を用いたりして、移動体自身の位置(自己位置)を推定している。また、地図情報やランドマークがなく、GPSも使えない場合には、移動体の周囲に存在する物体との相対位置を推定しながら走行中環境の地図を作成するSLAM(Simultaneous Localization and Mapping)法が用いられている。ただし、SLAM法で推定した相対位置の誤差は、時系列に蓄積するため、位置修正が必須となる。この位置修正には、例えば、レーザセンサあるいはカメラなどを用いて周囲の情報を収集し、位置推定の際の基準となる路面ペイントまたは標識のようなランドマークを検出し、そして、制御装置により、検出されたランドマークの位置を地図情報と比較することにより、移動体の現在位置を修正している。従って、検出されたランドマークに位置誤差がある場合、移動体の位置を正確に修正できない場合がある。
【0005】
特に、単眼カメラでランドマークを認識する場合、認識されたランドマークまでの距離を幾何学的に算出するため、カメラの画像上でのランドマークと実際のランドマークの位置を正確に変換する必要がある。ここで、高精度にランドマークの位置を推定するためには、カメラの内部パラメータキャリブレーションと外部パラメータキャリブレーションを実施する必要がある。内部パラメータキャリブレーションは、カメラのレンズ歪みを修正し、焦点距離を算出する。一方、外部パラメータキャリブレーションは、カメラの現在の設置高さと角度を求める。
【0006】
例えば、車両に搭載されるカメラは、カメラの所定の設計値に準じた位置や角度で車両に取り付けられるが、この際誤差が生じてしまうことがあり、カメラによる周囲の認識精度が低下する。この誤差を補正するには、一般的に、紙や板などに印字された校正用指標を決められた位置に精密に設置して撮影し、所定の位置から撮影した場合の映像と一致するようにカメラのパラメータを修正する。工場などで車両の出荷前にキャリブレーションを行うことが一般的であるが、乗車人数の違いや座る場所の違い、荷物の積み方の違いなどによって車両の姿勢が変化するため、工場出荷後であってもキャリブレーションを行うことが必須となる場合がある。
【0007】
ここで、例えば、特許文献1は、車両に搭載されるカメラのキャリブレーションを実施するキャリブレーション装置に関するものであって、前記車両の外部の画像を取得する画像取得部と、前記車両の姿勢変動前の画像と姿勢変動後の画像との間で対応する特徴点を用いて、前記カメラのロール角又はピッチ角の少なくとも一方のカメラパラメータをキャリブレーションするキャリブレーション部と、を備えた発明が記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2017−78923号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1では、姿勢変動前後の画像を用いて単眼カメラのキャリブレーションを実施しているが、走行中の振動の影響やキャリブレーション実施時の誤差の影響については考慮がされておらず、カメラの内部パラメータやカメラの外部パラメータに反映がされていないため、カメラで認識したランドマークの位置の認識精度が低下する問題が残っている。ランドマークの位置の認識精度が低下すると、移動体自身の位置の推定精度も低下する。
【0010】
そこで、本発明の目的は、走行中やキャリブレーション実施時の誤差があっても、移動体の位置推定精度を改善することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するために、本発明は、移動体と、前記移動体に設けられた撮像装置と、前記撮像装置で取得した第1画像及び第2画像から同一対象である検知点の移動した第1移動量と、前記第1画像と前記2画像を取得した間に前記移動体が移動した第2移動量と、を求め、前記第1移動量と前記第2移動量から前記撮像装置で取得した検知点の認識精度を求め、前記認識精度と前記検知点の位置情報から前記移動体の位置推定をする情報処理装置と、を備えたことを特徴とする。
【発明の効果】
【0012】
本発明によれば、走行中やキャリブレーション実施時の誤差があっても、移動体の位置推定精度を改善することができる。
【図面の簡単な説明】
【0013】
図1】実施例に係る移動体の位置推定装置の構成図
図2】画像処理手順を示すフローチャート
図3】画像上での移動点を説明する図
図4】撮像装置による移動点の距離推定を説明する図
図5】撮像装置による移動点の距離推定を説明する図
図6】撮像装置による移動点の距離推定を説明する図
図7】位置推定に関する原理を説明する図
図8】位置推定に関する原理を説明する図
図9】位置推定に関する原理を説明する図
図10】適用例を説明する図
図11】実施例におけるキャリブレーションの説明図
図12】キャリブレーションのフローチャート
図13】画像変換ステップの詳細を説明する図
【発明を実施するための形態】
【0014】
以下、本発明の実施例について、図面を用いて説明する。なお、下記はあくまでも実施の例であり、発明の内容を下記具体的態様に限定することを意図する趣旨ではない。発明自体は、特許請求の範囲に記載された内容に即した限りにおいて種々の態様で実施することが可能である。
【実施例1】
【0015】
図1は、実施例に係る移動体の位置推定装置1の構成図である。位置推定装置1は、自動車またはロボットなどの移動体100に搭載されている。位置推定装置1は、一台以上の撮像装置12a、撮像装置12b、・・・撮像装置12nと、情報処理装置13を有する。撮像装置12a、撮像装置12b、・・・撮像装置12nは、例えばスチルカメラまたはビデオカメラである。また、撮像装置12a、撮像装置12b、・・・撮像装置12nは単眼カメラまたは複眼カメラでもよい。
【0016】
情報処理装置13は、撮像装置12a、撮像装置12b、・・・撮像装置12nで撮像された画像を処理して移動体100の位置または移動量を算出する。情報処理装置13は、算出された位置または移動量に応じた表示を行ってもよく、または移動体100の制御に関する信号を出力してもよい。
【0017】
情報処理装置13は、例えば一般的なコンピュータであって、撮像装置12a、撮像装置12b、・・・撮像装置12nによって撮像された画像を処理する画像処理部14と、画像処理部の結果に基づき制御を行う制御部15(CPU)と、メモリ16と、ディスプレイなどの表示部17と、これら構成要素を相互に接続するバス18とを有する。情報処理装置13は、画像処理部14及び制御部15が所定のコンピュータプログラムを実行することにより、以下の処理を行う。
【0018】
撮像装置12aは、例えば、移動体100の前方に設置されている。撮像装置12aのレンズは移動体100の前方に向けられている。撮像装置12aは、例えば、移動体100の前方の遠景を撮像する。他の撮像装置12b、・・・撮像装置12nは、撮像装置12aと異なる位置に設置され、撮像装置12aと異なる撮像方向または領域を撮像する。撮像装置12bは、例えば、移動体100の後方で下方に向けて設置されていてもよい。撮像装置12bは、移動体100後方の近景を撮像するものでよい。
【0019】
撮像装置12aが単眼カメラの場合、路面が平らであれば、画像上のピクセル位置と実際の地上位置関係(x、y)が一定になるため、撮像装置12aから特徴点までの距離を幾何学的に計算できる。撮像装置12aがステレオカメラの場合、画像上の特徴点までの距離をより正確に計測できる。以下の説明では、単眼の標準レンズを有するカメラを採用した事例について説明するが、これ以外のカメラ(広角レンズを有するカメラまたはステレオカメラなど)でもよい。また、撮像装置12a、撮像装置12b・・・撮像装置12nが、ある時刻で撮像する対象物は、それぞれ互いに異なるものでよい。例えば、撮像装置12aは、移動体100の前方の遠景を撮像するものでよい。この場合、遠景を撮像した画像からは、立体物、または位置推定のためのランドマークなどの特徴点が抽出されるようにしてもよい。撮像装置12bは、移動体100周辺の路面などの近景を撮像するようにしてもよい。この場合、近景を撮像した画像からは、移動体100の周囲の白線、または路面ペイントなどが検出されるようにしてもよい。
【0020】
また、撮像装置12a、撮像装置12b、・・・撮像装置12nは、同時に雨や日差しなどの環境外乱の影響を受けないような条件で移動体100に設置されてもよい。例えば、撮像装置12aは移動体100の前方で前向きに設置されるのに対して、撮像装置12bは移動体100の後方で後ろ向きまたは下向きに設置されてもよい。これにより、例えば、降雨時に撮像装置12aのレンズに雨滴が付着した場合でも、進行方向の逆向きまたは下向きの撮像装置12bのレンズには雨滴が付着しにくい。このため、撮像装置12aが撮像した画像が雨滴の影響で不鮮明であっても、撮像装置12bが撮像した画像は雨滴の影響を受けにくい。あるいは、日差しの影響で撮像装置12aの画像が不鮮明であっても、撮像装置12bが撮像した画像は鮮明である場合がある。
【0021】
また、撮像装置12a、撮像装置12b、・・・撮像装置12nは、互いに異なる撮像条件(絞り値、ホワイトバランス、等)で撮影してもよい。例えば、明るい場所用にパラメータを調整した撮像装置と、暗い場所用にパラメータを調整した撮像装置とを搭載することで、環境の明暗によらず撮像可能としてもよい。
【0022】
撮像装置12a、撮像装置12b、・・・撮像装置12nは、制御部15から撮影開始の指令を受けたとき、または一定の時間間隔で画像を撮像してもよい。撮像された画像のデータ及び撮像時刻は、メモリ16に格納される。なお、メモリ16は、情報処理装置13の主記憶装置(メインメモリ)およびストレージなどの補助記憶装置を含む。
【0023】
画像処理部14がメモリ16に格納された画像データ及び撮像時刻に基づいて、様々な画像処理を行う。この画像処理では、例えば、中間画像が作成されてメモリ16に保存される。中間画像は、画像処理部14による処理の他、制御部15などの判断や処理に利用されてもよい。
【0024】
バス18は、IEBUS(Inter Equipment Bus)やLIN(Local Interconnect Network)やCAN(Contロールer Area Network)などで構成できる。
【0025】
画像処理部14は、撮像装置12で撮像された画像に基づいて複数の移動体の位置候補を特定し、その複数の位置候補と移動体100の移動速度とに基づいて移動体100の位置を推定する。
【0026】
その他、画像処理部14は、例えば、移動体100の走行中に撮像装置12が撮像した画像を処理して、移動体100の位置を推定したり、撮像装置12が撮像したビデオ画像で移動体100の移動量を算出し、スタート地点に移動量を加算して現在位置を推定してもよい。
【0027】
画像処理部14は、ビデオ画像の各フレーム画像で特徴点を抽出してもよい。画像処理部14は、さらに、次以降のフレーム画像で同じ特徴点を抽出する。そして、画像処理部14は、特徴点のトラッキングにより移動体100の移動量を算出してもよい。
【0028】
制御部15は、画像処理部14の画像処理の結果に基づいて、移動体100に対して移動速度に関する指令を出力してもよい。例えば、制御部15は、画像内の立体物の画素数、画像内の特徴点のうちの外れ値の数または画像処理の種類等に応じて、移動体100の移動速度を増加させる指令、減少させる指令または維持させる指令を出力してもよい。
【0029】
図2は、画像処理部14が行う画像処理手順を示すフローチャートである。
【0030】
画像処理部14は、メモリ16から撮像装置12a、撮像装置12b、・・・撮像装置12nが撮像した画像データを取得する(S21)。ステップS21で取得する画像データは撮像装置12a、撮像装置12b、・・・撮像装置12nが撮像した画像のうち1枚のみ、または、複数の画像データでよい。また、スッテプS21は、撮像装置12a、撮像装置12b、・・・撮像装置12nがそれぞれ撮像した最新の画像のみならず、過去撮像した画像でもよい。
【0031】
次に、画像処理部14は、取得した各フレーム画像内の移動点を抽出する(S22)。移動点は、例えば、画像内のエッジやコーナーやピクセル強度の最大値や最小値などのような特徴点でよい。特徴点の抽出には、Canny、Sobel、FAST、Hessian、Gaussianなどの技術を用いればよい。具体的なアルゴリズムは、画像の特徴に応じて適宜選択される。また、移動点は、認識されたランドマークの代表点(ランドマークの中心、コーナーなど)でよい。ランドマーク認識と代表点抽出はDeep learning、template matchingなどの従来の画像認識技術を用いればよい。移動点の詳細は後述する。
【0032】
画像処理部14は、フレーム画像の時系列に従って、各フレーム画像でそれぞれ抽出された移動点をトラッキングする(S23)。トラッキングにはLucas−Kanade法やShi−Tomasi法やDirect Matching法などの技術を用いればよい。また、ステップS23のトラッキングは、直前や直後に取得したフレームの移動点に限らず、数フレーム間隔でもよい。具体的なアルゴリズムは、画像の移動点に応じて適宜選択される。
【0033】
次に、スッテプS23でそれぞれトラッキングした移動点を実世界上での移動量に換算する計算を実施する(S24)。ステップS23のトラッキングで得られた画像上でのピクセル位置とそれ以前の前フレームのピクセル位置の差分を算出し、その差分をメートル単位に変換する。
【0034】
スッテプS25では、撮像装置か搭載されている移動体の移動量を推定する。このステップでは、撮像装置12a、撮像装置12b、・・・撮像装置12nが今回撮像した画像と前回撮像した画像の間の移動体100の実際の移動量を推定する。移動体100の実際の移動量推定には、GPS情報、オドメトリ、画像オドメトリ、SLAM法などの技術を適応すればよい。また、過去の移動量に基づいて今回の移動量を推定する時系列フィルタを用いてもよい。また、前述のセンサ情報とフィルタを組み合わせて、移動体100の移動量も推定してもよい。最終的に、移動体100の前フレームと今回のフレームの間の移動量を推定できる手法であれば、どのセンサや組み合わせでもよい。スッテプS25を実施するタイミングは、ステップS24の直後でもよいが、スッテプS21からステップS24と平行に実施してもよい。ステップS26の処理が始まる前であれば、ステップS25をいつでも実施してもよい。
【0035】
ステップS26では、ステップS24で得られた移動点の移動量情報とステップS25で得られた移動体100の移動量情報を用いて、ステップS23でトラッキングした移動点の精度を推定する。ステップS26の詳細は後述する。
【0036】
ステップS26で推定した精度に基づいて、必要に応じて、撮像装置12a、撮像装置12b、・・・撮像装置12nのキャリブレーションを実施する(S27)。ステップS27の実施は任意であり、詳細は後述する。
【0037】
図3は、画像上での移動点を説明する図である。画像210は、撮像装置12a、撮像装置12b、・・・撮像装置12nによってスッテプS21で取得した画像である。(u、v)で示される座標211は、画像210における座標系である。道路212は、移動体100が走行中で画像210に写る道路である。
【0038】
移動体100が道路212を走行し、ある時に道路212の路面上のランドマーク213が画像210に写るとする。この時、ステップS22で移動点を抽出する場合、ランドマーク213から特徴点214を抽出したとする。なお、この特徴点は画像内のエッジやコーナーに限らず、ピクセル強度の最大値や最小値でもよい。また、ランドマークをマップとマッチングする場合、簡単のため、認識したランドマークを代表点(ランドマークの中心、コーナーなど)で表す場合があり、ランドマーク214の代表として代表点216として表す。ここで、画像210上でステップS22で抽出した特徴点214と特徴点215と代表点216は実世界での静止点であるが、移動体100に固定された撮像装置12a、撮像装置12b、・・・撮像装置12nに対して、特徴点214と特徴点215と代表点216が移動するため、特徴点214と特徴点215と代表点216を全て「移動点」と定義つける。
【0039】
図4から図6を用いて撮像装置による検出した移動点の距離推定を説明する。図4から図6は撮像装置による移動点の距離推定を説明する図である。
【0040】
図4の設置角度α30aは移動体100が走行中の路面に対する撮像装置12a、撮像装置12b、・・・撮像装置12nの設置角度である。高さH31aは移動体100が走行中の路面に対する撮像装置12a、撮像装置12b、・・・撮像装置12nの設置高さである。簡単のため、撮像装置12a、撮像装置12b、・・・撮像装置12nを1台の撮像装置12を代表として説明する。座標32aは、移動体100に固定したメートル単位の座標であり、点33aは路面上の一点である。この時、画像34a上で点33aはステップS22で移動点として抽出され、ピクセル35aとして表される。この場合、撮像装置のキャリブレーションができているとし、設置角度α30aと設置高さH31aを用いて、点33aの実際の位置(メートル)と画像上での移動点35a(ピクセル)の関係が求められる。従って、撮像装置12の設置角度α30aと設置高さH31aが一定の場合、座標32a(メートル)と画像(ピクセル)の関係が一定であり、メートルからピクセルへ簡単に変換できる。また、撮像装置12の設置角度α30aと設置高さH31aが一定であれば、画像34aを俯瞰画像などに変換しても、変換パラメータが既知であれば、前述の座標32a(メートル)と画像(ピクセル)の関係が変わらない。
【0041】
一方、図5図4の状態で撮像装置のキャリブレーションを実施した時と異なる場合を説明する。振動や乗車人数の違いで撮像装置12の設置角度α30aが設置角度α’30bとなり、高さH31aが高さH’31bとなったとする。この状態で点33aは、画像34b上で移動点35bとして抽出されるが、座標32aに基づいてキャリブレーションが行われたため、座標32aに対する仮想点33bへの距離が算出されてしまう。しかし、この場合は、座標32bに対する点33aへの距離が正確のため、座標32aに対する距離を算出する際誤差が生じる。簡単のため、移動体100のピッチ角が変換した場合を、図5にて説明したが、移動体100のロール角やヨー角が変化した場合でも前述の原理は変わらない。
【0042】
図6図4と同じ設置角度α30a、高さH31a、座標32aと点33aを示す。撮像装置12でスッテプS21で取得する画像34cは、キャリブレーションを行っても歪みの修正ができなかった画像を表す。歪みの修正ができていない画像34cで点33aはピクセル35cとして写り、歪みの修正ができた画像34aのピクセル35aとは違う位置に写る。従って、歪みの修正ができていない画像34cで移動点33aを抽出しても、ピクセル35cからメートルに変換し、実際の位置を推定する場合、誤差が大きい。
【0043】
次に、図7から図9を用いて本実施例の原理を説明する。図7から図9は位置推定に関する原理を説明する図である。
【0044】
図7は、移動体100がキャリブレーションした時と同じ設置角度α30aと高さH31aで走行している状態である。撮像装置12a、撮像装置12b、・・・撮像装置12nの歪みの修正ができているとする。点40は、移動体100が走行中の路面上の特徴点である。簡単のため、撮像装置12a、撮像装置12b、・・・撮像装置12nを1台の撮像装置12と代表して、説明する。画像41aは撮像装置12の撮像した俯瞰画像であり、座標を(u’、v’)とする。原理の説明を簡単にするため、画像41aを俯瞰画像としたが、ピクセルとメートルの関係が既知であれば、どんな画像でもよい。ステップS22で各点40を移動点42aとして画像41a上で抽出する。移動体100が移動量D43を走行した後、抽出した各移動点42aをステップS23でトラッキングし、ステップS24で移動量を算出すると、俯瞰画像41a上での各移動量44aは全て一定である。また、俯瞰画像41a上でのそれぞれの移動量44aをピクセルからメートルに変換すると、それぞれの移動量は移動体100の移動量D43と同じ移動量となる。
【0045】
一方、図8は、移動体100がキャリブレーションした時と異なる設置角度α’30bと高さH’31bで走行している状態である。撮像装置12の歪みの修正ができているとする。移動体100が移動量D43を走行した後、抽出した各移動点42bをステップS23でトラッキングし、ステップS24で移動量を算出すると、俯瞰画像41b上での各移動点42bの移動量44bは画像の位置によって異なり、撮像装置に近い点の移動量は画像装置から遠い点の移動量より大きくみえる。この状態の設置角度α’30bと高さH’31bで移動点40を写す時、平面45と間違えて画像41b上の移動量44bを算出するため、移動体100に近い移動点42bの移動量は大きく、移動体100から遠い移動点42bの移動量44bは小さく見える。従って、俯瞰画像41b上でのそれぞれの移動量44bをピクセルからメートルに変換すると、それぞれの移動量44bは移動体100の移動量D43とは異なった移動量となる。従って、スッテプS21とステップS22で抽出した移動点の移動量が一定でない場合、キャリブレーションができていなく、この状態で路面上の点へ距離を算出する場合、距離誤差が大きい。
【0046】
図9は、図7と同じ設置角度α30a、高さH31a、点40、移動点42aと移動体100の移動量D43を表す。俯瞰画像41cの歪みの修正ができていないとする。この状態で移動体100が移動量D43を走行する場合、各移動点42aの俯瞰画像41c上での移動量は移動量44cとなる。歪みのため、移動点42aの俯瞰画像41cの領域によって、移動量44cが異なり、その領域内の移動点への距離を算出すると、距離誤差が大きい。
【0047】
図10を用いて本実施例での適用例を説明する。図10は、適用例を説明する図である。走行環境50は、移動体100が走行する環境である。簡単のため、走行環境50を駐車場とする。地図情報51は、走行環境50の地図である。走行環境50は、走行環境の車線、駐車枠、標識などの静止ランドマークで構成し、それぞれの正確な位置情報を有する。地図情報51の座標系は、世界の絶対位置かある領域の相対位置を表してもよい。最終的に、移動体100の現在位置を正確に表示できれば、どんな座標でもよい。
【0048】
撮像範囲52は撮像装置12a、撮像装置12b、・・・撮像装置12nの撮像範囲である。簡単のため、撮像装置12a、撮像装置12b、・・・撮像装置12nを2台とし、移動体100の右側と左側に設置され、移動体100の右側と左側を向いているとする。この適用例では、上述の精度推定を用いて、2台の撮像装置で認識したランドマークの位置を地図情報51と比較しながら、移動体100の自己位置推定を行う。
【0049】
移動点53は、移動体100が走行環境50に入った時の点である。簡単のため、本適用例での移動点は全て駐車枠の角とする。移動体100が移動量54を走行した後の撮像装置で取得した画像を俯瞰画像55aと俯瞰画像55bとする。移動体100が移動量54を走行した後の画像55aと55b上での移動点53の移動量を移動量56aとする。ここで、移動量56aは、撮像装置を用いてステップS22で抽出した移動点と、その抽出した移動点をステップS23で追跡した際の移動点の移動量である。
【0050】
移動量56aは、スッテプS25で求めた移動体100の実際の移動量54と同じ移動量になったため、移動量56aの周りの画像上での領域が高精度(認識誤差が少ない)と判定する。従って、算出した移動点53の位置に基づいて、地図情報51から移動体100の自己位置を推定する場合、高精度に推定できる。
【0051】
移動点57bと移動点57cは、移動体100が開始位置を出た後の移動点である。移動体100が移動量d58を走行した後の撮像装置で取得した画像を俯瞰画像55cとする。移動体100が移動量d58を走行した後の画像55c上での移動点57bの移動量を移動量56bとし、移動点57cの移動量を移動量56cとする。ここで、移動量56b、56cは、撮像装置を用いてスッテプS22で移動点57bと移動点57cから移動点を抽出し、その抽出した移動点をスッテプS23で追跡した時の移動点の移動量である。撮像装置の設置高さと角度に基づいて、移動量56bをメートルに変換した時に、移動体100の移動量d58と同じ移動量になったとする。従って、移動体100が移動量d58を走行した時、移動量56bの画像55c上での周りの領域は高精度であるため、検知された移動点57bの精度が高いと判定し、検出された移動点57bの位置を地図情報51とマッチングし、位置推定を行う。一方、移動量56cは移動量d58と異なったため、移動量56cの周りの画像上での領域の精度が低いと判定するため、地図情報51とマッチングせず、撮像装置の数フレームをかけて、精度がよくなるまでスッテプS23で追跡する。精度の低い領域を高くする方法は、例えば、Kalman Filterのような時系列フィルタをかける。詳細は後述する。
【0052】
従って、算出した移動点57bと移動点57cの位置と判定した精度に基づいて、地図情報51から移動体100の自己位置を高精度に推定できる。
【0053】
前述判定した精度は、例えば、重みwN、pにして位置推定に活用する。式(1)に示すように、移動体100の実際の移動量d58と移動点の移動量IN、p(p=1、2、・・、移動点数)の差errorN、pとする。
1/wN、p = errorN、p = |d − IN、p| ・・・式(1)
また、式(1)の誤差をメートルでなく、式(2)に示すように、移動体100の移動量d58の割合で算出してもよい。
1/wN、p = errorN、p = |d − IN、p|/d×100 ・・・式(2)
式(1)と式(2)の重みを、例えば、Kalman Filterのような時系列フィルタのパラメータに代入してもよい。Kalman Filterを用いる場合、センサやシステムの誤差を偏差σとして設定する必要があり、式(3)に示すように、前述誤差errorN、pを偏差σに代入する。
【0054】
図10の場合、前述の偏差σを偏差59bと偏差59cで示す。移動量56bの重みは高いので、偏差59bが小さくなり、移動量56cの重みは低いため、偏差59cが大きくなる。
σ = errorN、p ・・・式(3)
また、撮像装置の設置高さと角度に基づいて、幾何学的にピクセルからメートルに変換するため、撮像装置からランドマークが遠ければ移動体100の振動などに影響されやすいため、誤差が大きくなる可能性が高い。従って、前述の誤差errorN、pを算出せず、距離・ピクセルの位置に対する偏差σを設定してもよい。例えば、撮像装置が撮像する俯瞰画像55aと俯瞰画像55bの幅(u’方向)をWとし、高さ(v’方向)をVとすると、(u’、v’)=(W/2、V)が移動体100に最も近いピクセル位置のため、誤差が最も小さい領域となる。一方、(u’、v’)=(0、0)か(u’、v’)=(W、0)が移動体100に最も遠いピクセル位置のため、誤差が最も大きい領域となる。従って、u’方向の最大偏差をσu、maxとすれば、ピクセルuに対する偏差σを式(4)から求められる。
σ = σu、max|W/2 − u’|/(W/2) ・・・式(4)
u方向と同じく、v’方向の最大偏差をσv、maxとすれば、ピクセルv’に対する偏差σを式(5)から求められる。
σ = σv、max|V − v'|/(V) ・・・式(5)
σとσを組み合わせて、偏差σを例えば、式(6)から得られる。
σ = σ + σ ・・・式(6)
また、σとσを組み合わせて、偏差σを式(7)から算出してもよい。
σ = σσ ・・・式(7)
また、σとσに重みm(1、2、・・・、m)をつけて、偏差σを式(8)から算出してもよい。
σ = (σ + σ1/m ・・・式(8)
また、前述のerrorN、pを算出した場合、errorN、pをσとσを組み合わせて、偏差σを式(9)に示すように算出してもよい。
σ = errorN、p(σ + σ1/m ・・・式(9)
偏差σNの算出は、dとIN、pとerrorN、pとσとσとuとvの組み合わせであれば、式(1)から式(9)の何でもよい。また、前述のσu、maxとσv、maxの設定は、固定値か経験的に設定してもよい。また、σu、maxとσv、maxは、必ずしもσu、max=σv、maxでないため、それぞれ異なったパラメータを設定してもよい。
【0055】
撮像装置内に移動点が1点のみの場合(p=1)、移動体100の自己位置(X、Y)と方位(θ)を式(10)が示すように、移動点の位置(X、Y、θ)p=1に基づいて算出する。
(X、Y、θ) = wN、p=1(X、Y、θ)p=1 ・・・式(10)
また、撮像装置内に移動点が複数の場合、移動体100の自己位置(X、Y、θ)を式(11)から求められる。
(X、Y、θ) = [wN、1(X、Y、θ)1+...+wN、p(X、Y、θ)p ]/(wN、1+...+wN、p) ・・・式(11)
移動体100の自己位置を推定する場合、前述の式(10)と式(11)以外、移動点の算出した位置(X、Y、θ)1、...、(X、Y、θ)pと重みwN、1、...、wN、pの組み合わせであれば、なんでもよい。
【0056】
また、本実施例では、移動点を駐車枠の角とし、問題なく画像処理技術を用いて撮像装置12で移動点の認識ができるとした。一方、実際の駐車所や道路では、歩行者や他車のような移動物が存在するため、駐車枠の角の認識が困難な場合がある。ただし、このような障害物は路面より高いため、ステップS21からステップS24で移動点の移動量を算出しても、移動量IN、pが大きくなり、誤差errorN、pも大きくなる。従って、誤って障害物を移動点として認識しても、重みwN、pが低くなるため、位置推定結果に影響しない。
【0057】
図11及び図12を用いて、本実施例によるキャリブレーションの説明をする。図11は、本実施例におけるキャリブレーションの説明図、図12はキャリブレーションのフローチャートである。
【0058】
図11の画像60a、画像60b、・・・画像60Nは、スッテプS21で撮像装置12a、撮像装置12b、・・・撮像装置12nで時間t0、t1・・・tNに時系列に撮像した画像である。移動点61a、移動点61b、・・・移動点61Nは、ステップS22で画像60a、画像60b、・・・画像60Nから抽出した移動点である。移動量62a、移動量62b、・・・移動量62Nは、スッテプS23とスッテプS24で移動点61a、移動点61b、・・・移動点61Nの算出した移動量である。ここで、キャリブレーションできていないとし、移動量62a、移動量62b、・・・移動量62Nは必ずしも一定ではない。
【0059】
画像63はキャリブレーションS27を実施した後の画像である。移動量64は、スッテプS21からスッテプS24で算出したキャリブレーションスッテプS27を実施した後の画像63上での移動点の移動量である。画像63はキャリブレーションを実施した後の画像のため、スッテプS21からスッテプS24で算出した移動点の移動量64は一定である。
【0060】
図12のスッテプS65からスッテプS68はキャリブレーションS27の中の処理である。ステップS65は、ステップS21からステップS25で算出した情報を保存するステップである。画像60a、画像60b、・・・画像60N、移動点61a、移動点61b、・・・移動点61N、移動量62a、移動量62b、・・・移動量62N、移動体100の移動量などをメモリ16に保存する。
【0061】
ステップS66は、画像60a、画像60b、・・・画像60NとステップS23でトラッキングした移動点61a、移動点61b、・・・移動点61Nを画像変換するステップである。S66の画像変換は、例えば、アフィン変換や透視変換などであり、画像60a、画像60b、・・・画像60NとステップS23でトラッキングした移動点61a、移動点61b、・・・移動点61Nの回転と並進を変換する。ステップS66の詳細は後述する。
【0062】
ステップS67は、ステップS66で変換された画像60a、画像60b、・・・画像60NとステップS23でトラッキングした移動点61a、移動点61b、・・・移動点61Nから、移動点61a、移動点61b、・・・移動点61Nのそれぞれの新たな移動量IN、p、i(i=1、...、キャリブレーション回数)を算出する。式(12)に示すように、改めて算出したIN、p、iとステップS65で時系列に保存した移動体100の移動量d、・・・、dの誤差EN、p、iを算出する。
N、p、i = |d − IN、p、i| ・・・式(12)
ステップS68は、ステップS67で算出した誤差EN、p、iを予めに設定された閾値minerrorと比較するステップである。ステップS67で算出した誤差EN、p、iがminerrorより小さければステップS27が終了し、ステップS67で算出した誤差EN、p、iがminerrorより大きければステップS66に戻る。
【0063】
フレーム数Nは、少なくても2枚が必須であるが、Nの最大値は、例えば、ステップS21からステップS24で時系列に得られた移動点数によって設定してもよい。基本的に、移動点数が多ければキャリブレーション誤差が小さいが、処理負荷が大きい。従って、例えば、ステップS21からステップS24で時系列に得られた移動点数が予めに設定された閾値より大きくなれば、その時間までのステップS21からステップS24で時系列に得られたフレーム数と移動点を全て用いてキャリブレーションを行う。また、移動体100の走行速度によって前回行ったキャリブレーションパラメータとは違うパラメータになる可能性が高いため、Nを移動体100の速度に応じて設定してもよい。例えば、移動体100の速度が遅ければ、キャリブレーションパラメータが大きく変わらないため、Nを高く設定し、移動体100の速度が速ければ、キャリブレーションパラメータが大きく変わるためNを低く設定し、高い頻度でキャリブレーションを実施する。また、走行時間に基づいて、Nを設定してもよい。例えば、処理負荷に余裕があれば数msや数十msごとにキャリブレーションを実施し、処理負荷に余裕がなければ数百msや数秒ごとにキャリブレーションを実施する。
【0064】
図13を用いて、ステップS66の詳細を説明する。図13は画像変換ステップの詳細を説明する図である。
【0065】
俯瞰画像70aは、撮像装置で撮像した画像で、俯瞰画像に変換されたものである。ステップS22で抽出した移動点を移動点71とし、ステップS21からステップS24で得られた移動点71のそれぞれの移動量は移動量72aとする。ステップS21からステップS24で移動点71の移動量72aが得られた時、撮像装置のキャリブレーションができていたとし、ステップS21からステップS24で得られた移動点71のそれぞれの移動量72aは一定となった。ステップS21からステップS24で算出した移動点71の移動量72aは全て一定のため、撮像装置のロール、ピッチ、ヨーはキャリブレーションした時と変わっていない。一方、ステップS21からステップS24で算出した移動点71の移動量72aは全て一定であっても、撮像装置の高さがキャリブレーションを行った時と異なる場合がある。ここで、撮像装置の高さが変わる場合、画像70aの移動量72aが全て変わるため、移動体100の実際の移動量と比較し、撮像装置の高さのキャリブレーションを行う。撮像装置の高さのキャリブレーションができている場合、移動量72aは全て移動体100の実際の移動量と同じになるため、式(1)のerrorN、pが0に近くなるまで撮像装置の高さを修正する。修正は、例えば、試行錯誤で新たな高さを設定し、errorN、pを改めて算出し、errorN、pが0に近くなるまで修正を繰り返す。また、移動量72aは移動体100の実際の移動量dより大きくなった場合、撮像装置の実際の高さはキャリブレーションした時より低いという意味を持っているため、errorN、pが0に近くなるまで撮像装置の高さパラメータを低く設定する。ステップS25で推定する移動体の移動量は必ずしも正確でなく、ステップS23で移動点の追跡に誤差があるため、errorN、pが0にならないが、0に近くなれば画像の全体の領域のキャリブレーションができている。
【0066】
一方、俯瞰画像70bは、撮像装置のロール角がキャリブレーションを行った時と違うロール角となっている場合を示す。この場合、ステップS21からステップS24で得られた移動点71の移動量72bは俯瞰画像70bの領域によって異なる。例えば、俯瞰画像70bの左側の移動点71の移動量72bは俯瞰画像70bの右側の移動量72bより大きい。また、俯瞰画像70b中心の移動点71の移動量72bは俯瞰画像70aの移動量72aとは変わらない。従って、この移動量72bのパターンがある際、ロール角に誤りがあるという原因で、俯瞰画像70bの移動点71の移動量72bのerrorN、pが0になるまでロール角を修正する。
【0067】
俯瞰画像70cは、撮像装置のピッチ角がキャリブレーションを行った時と違うピッチ角となっている場合を示す。この場合、ステップS21からステップS24で得られた移動点71の移動量72cは俯瞰画像70cの領域によって異なる。例えば、俯瞰画像70cの上の移動点71の移動量72cは俯瞰画像70cの下の移動量72cより大きい。v=0に近ければ近いほど移動量72cが大きくなり、v=0から離れると移動量72cが小さくなる。従って、この移動量72cのパターンがある際、ピッチ角に誤りがある原因であり、俯瞰画像70cの移動点71の移動量72cのerrorN、pが0になるまでピッチ角を修正する。
【0068】
俯瞰画像70dは、撮像装置12のヨー角がキャリブレーションを行った時とは違うヨー角となっている場合を示す。この場合、ステップS21からステップS24で得られた移動点71の移動量72dは一定であるが、v’方向とは違う方向に移動する。従って、この移動量72cのパターンがある際、ヨー角に誤りがある原因で、俯瞰画像70dの移動点71の移動量72dのv’方向と同じ方向に移動するまでヨー角を修正する。
【0069】
俯瞰画像70eは、撮像装置12a、撮像装置12b、・・・撮像装置12nの歪みの修正ができていない場合を示す。この場合、ステップS21からステップS24で得られた移動点71の移動量72eの方向は一定でない。従って、俯瞰画像70eの移動点71の移動量72eの方向が一定になるまで歪みを修正する。
【0070】
以上、本発明によれば、走行中やキャリブレーション実施時の誤差があっても、移動体の位置推定精度を改善することができる。
【0071】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【符号の説明】
【0072】
1:位置推定装置
12:撮像装置
13:情報処理装置
14:画像処理部
15:制御部
16:メモリ
17:表示部
18:バス
51:地図情報
100:移動体
212:道路
213:ランドマーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13