IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 岡 嶐一の特許一覧

特開2024-36135動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム
<>
  • 特開-動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム 図1
  • 特開-動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム 図2
  • 特開-動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム 図3
  • 特開-動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム 図4
  • 特開-動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム 図5
  • 特開-動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム 図6
  • 特開-動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム 図7
  • 特開-動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム 図8
  • 特開-動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム 図9
  • 特開-動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024036135
(43)【公開日】2024-03-15
(54)【発明の名称】動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラム
(51)【国際特許分類】
   G06V 10/74 20220101AFI20240308BHJP
   G06T 7/00 20170101ALI20240308BHJP
【FI】
G06V10/74
G06T7/00 300F
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022140878
(22)【出願日】2022-09-05
(71)【出願人】
【識別番号】522352694
【氏名又は名称】岡 嶐一
(74)【代理人】
【識別番号】100118094
【弁理士】
【氏名又は名称】殿元 基城
(74)【代理人】
【識別番号】100087745
【弁理士】
【氏名又は名称】清水 善廣
(74)【代理人】
【識別番号】100160314
【弁理士】
【氏名又は名称】西村 公芳
(74)【代理人】
【識別番号】100134038
【弁理士】
【氏名又は名称】野田 薫央
(74)【代理人】
【識別番号】100150968
【弁理士】
【氏名又は名称】小松 悠有子
(72)【発明者】
【氏名】岡 嶐一
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096CA04
5L096FA34
5L096FA66
5L096FA69
5L096GA51
5L096JA11
(57)【要約】      (修正有)
【課題】入力動画像が予め撮影された参照動画像に類似するか否かを求める動画像マッチング装置、自己位置推定装置及びプログラムを提供する。
【解決手段】自己位置推定装置100に含まれる動画像マッチング装置90は、参照動画像の特徴ベクトルz(τ)を記録する第1記録手段22と、カメラ1で撮影された入力動画像の特徴ベクトルf(t)を算出する第1特徴ベクトル算出部23と、z(τ)とf(t)とに基づいて局所相関ρ(t,τ)、累積値S(t,τ)及び市街地距離L(t,τ)を算出する局所相関算出部25と、累積値Sと市街地距離Lと閾値hと局所相関ρに基づいてスターティングポイントを設定し、L(t,τ)>閾値L、かつ、S(t,τ)/L(t,τ)<閾値hとなる場合に、S(t,τ)/L(t,τ)が最大となる時間τ(t)の参照動画像と、時間tの入力動画像との類似性を判断するマッチング処理部26と、を備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
予め撮影された時間1から時間Tまでの参照動画像の各時間τ(1≦τ≦T)の画像データに基づいて算出され、それぞれの前記画像データの特徴を示した特徴ベクトルz(τ)が記録された第1記録手段と、
時間t=0において、時間1から時間Tまで前記時間τを変化させた場合における各累積値S(t,τ)の値に0を設定し、かつ、各市街地距離L(t,τ)の値を1に設定する初期値設定手段と、
時間tが1増加する毎に、カメラにより撮影される入力動画像の時間tの画像データに基づいて、該時間tの画像データの特徴ベクトルf(t)を算出する第1特徴ベクトル算出手段と、
時間tが1増加する毎に、前記第1記録手段に記録される時間1から時間Tまでのそれぞれの時間τにおける前記特徴ベクトルz(τ)と、前記第1特徴ベクトル算出手段により算出された時間tにおける前記特徴ベクトルf(t)とに基づいて、各τにおける局所相関ρ(t,τ)を、
ρ(t,τ)= <f(t),z(τ)> /(||f(t)||・||z(τ)||)
により算出する局所相関算出手段と、
時間tが1増加する毎に、前記t-τ平面においてτの値を時間1から時間Tまで変化させた各座標(t,τ)の中から、動的計画法によって最適な座標(t,τ)を求めて、時間t-1における累積値S(t-1,τ)に対して前記局所相関ρ(t,τ)を加算することにより、前記最適な座標(t,τ)における累積値S(t,τ)を算出する累積値算出手段と、
時間tが1増加する毎に、時間t-1における最適な座標(t-1,τ)の市街地距離L(t-1,τ)に対して、前記最適な座標(t-1,τ)から前記最適な座標(t,τ)までの移動距離を加算することにより、前記最適な座標(t,τ)における市街地距離L(t,τ)を算出する市街地距離算出手段と、
時間tが1増加する毎に、前記累積値算出手段により算出された前記累積値S(t,τ)と、前記市街地距離算出手段により算出された前記市街地距離L(t,τ)とに基づいて、S(t,τ)/L(t,τ)を算出し、算出したS(t,τ)/L(t,τ)の値が予め設定された閾値h(h>0)未満となり、かつ、前記局所相関算出手段により算出された前記局所相関ρ(t,τ)が、局所相関ρ(t,τ)≒0となる場合には、座標(t,τ)をt-τ平面におけるスターティングポイントに設定し、前記市街地距離L(t,τ)の値を1に設定し、かつ、前記累積値S(t,τ)の値に0を設定するスターティングポイント設定手段と、
時間tが1増加する毎に、前記市街地距離算出手段により算出された前記市街地距離L(t,τ)が、予め設定された閾値L(L≦0)以下であるかを判断し、L(t,τ)≦Lでない場合には、時間1から時間Tまでの全てのτについて前記S(t,τ)/L(t,τ)を算出し、算出したS(t,τ)/L(t,τ)の値が前記閾値h以上となる全ての前記S(t,τ)/L(t,τ)の値の中から、最も値が大きくなる前記S(t,τ)/L(t,τ)の時間τをτ(t)として求めて、時間τ(t)の前記参照動画像と時間tの前記入力動画像とが類似した動画像であると判断するマッチング処理手段と
を備えることを特徴とする動画像マッチング装置。
【請求項2】
予め撮影された時間1から時間Tまでの参照動画像の各時間τ(1≦τ≦T)の画像データに基づいて算出され、それぞれの前記画像データの特徴を示した特徴ベクトルz(τ)が記録された第1記録手段と、
時間t=0において、時間1から時間Tまで前記時間τを変化させた場合における各累積値S(t,τ)の値に∞を設定し、かつ、各市街地距離L(t,τ)の値を1に設定する初期値設定手段と、
時間tが1増加する毎に、カメラにより撮影される入力動画像の時間tの画像データに基づいて、該時間tの画像データの特徴ベクトルf(t)を算出する第1特徴ベクトル算出手段と、
時間tが1増加する毎に、前記第1記録手段に記録される時間1から時間Tまでのそれぞれの時間τにおける前記特徴ベクトルz(τ)と、前記第1特徴ベクトル算出手段により算出された時間tにおける前記特徴ベクトルf(t)とに基づいて、各τにおける局所距離d(t,τ)を、
d(t,τ)= ||f(t)-z(τ)|| /(||f(t)||+||z(τ)||)
により算出する局所距離算出手段と、
時間tが1増加する毎に、前記t-τ平面においてτの値を時間1から時間Tまで変化させた各座標(t,τ)の中から、動的計画法によって最適な座標(t,τ)を求めて、時間t-1における累積値S(t-1,τ)に対して前記局所距離d(t,τ)を加算することにより、前記最適な座標(t,τ)における累積値S(t,τ)を算出する累積値算出手段と、
時間tが1増加する毎に、時間t-1における最適な座標(t-1,τ)の市街地距離L(t-1,τ)に対して、前記最適な座標(t-1,τ)から前記最適な座標(t,τ)までの移動距離を加算することにより、前記最適な座標(t,τ)における市街地距離L(t,τ)を算出する市街地距離算出手段と、
時間tが1増加する毎に、前記累積値算出手段により算出された前記累積値S(t,τ)と、前記市街地距離算出手段により算出された前記市街地距離L(t,τ)とに基づいて、S(t,τ)/L(t,τ)を算出し、算出したS(t,τ)/L(t,τ)の値が予め設定された閾値h(h>0)より大きくなり、かつ、前記局所距離算出手段により算出された前記局所距離d(t,τ)が、局所距離d(t,τ)≒1となる場合には、座標(t,τ)をt-τ平面におけるスターティングポイントに設定し、前記市街地距離L(t,τ)の値を1に設定し、かつ、前記累積値S(t,τ)の値に∞を設定するスターティングポイント設定手段と、
時間tが1増加する毎に、前記市街地距離算出手段により算出された前記市街地距離L(t,τ)が、予め設定された閾値L(L≦0)以下であるかを判断し、L(t,τ)≦Lでない場合には、時間1から時間Tまでの全てのτについて前記S(t,τ)/L(t,τ)を算出し、算出したS(t,τ)/L(t,τ)の値が前記閾値h以下となる全ての前記S(t,τ)/L(t,τ)の値の中から、最も値が小さくなる前記S(t,τ)/L(t,τ)の時間τをτ(t)として求めて、時間τ(t)の前記参照動画像と時間tの前記入力動画像とが類似した動画像であると判断するマッチング処理手段と、
を備えることを特徴とする動画像マッチング装置。
【請求項3】
請求項1または請求項2のいずれか一項に記載の前記動画像マッチング装置を有し、
前記第1記録手段には、前記特徴ベクトルz(τ)(1≦τ≦T)のそれぞれに対して、時間τに前記参照動画像を撮影した位置の情報が関連付けられて記録されており、
前記マッチング処理手段により求められた時間τ(t)に基づいて、前記参照動画像を撮影した前記位置の情報を、前記第1記録手段より読み出して、時間tに撮影された前記入力動画像の撮影位置を、前記第1記録手段より読み出した時間τ(t)の前記位置の情報に基づいて推定する自己位置推定手段
を備えることを特徴とする自己位置推定装置。
【請求項4】
カメラにより撮影される入力動画像が、予め撮影された時間1から時間Tまでの参照動画像の少なくとも一部に類似するか否かを判断する動画像マッチング装置の動画像マッチング用プログラムであって、
前記動画像マッチング装置は、
予め撮影された前記参照動画像の各時間τ(1≦τ≦T)の画像データに基づいて算出され、それぞれの前記画像データの特徴を示した特徴ベクトルz(τ)が記録された第1記録手段と、
制御手段とを有し、
該制御手段に、
時間t=0において、時間1から時間Tまで前記時間τを変化させた場合における各累積値S(t,τ)の値に0を設定させ、かつ、各市街地距離L(t,τ)の値に1を設定させる初期値設定機能と、
時間tが1増加する毎に、前記カメラにより撮影される入力動画像の時間tの画像データに基づいて、該時間tの画像データの特徴ベクトルf(t)を算出させる第1特徴ベクトル算出機能と、
時間tが1増加する毎に、前記第1記録手段に記録される時間1から時間Tまでのそれぞれの時間τにおける前記特徴ベクトルz(τ)と、前記第1特徴ベクトル算出機能により算出された時間tにおける前記特徴ベクトルf(t)とに基づいて、各τにおける局所相関ρ(t,τ)を、
ρ(t,τ)= <f(t),z(τ)> /(||f(t)||・||z(τ)||)
により算出させる局所相関算出機能と、
時間tが1増加する毎に、前記t-τ平面においてτの値を時間1から時間Tまで変化させた各座標(t,τ)の中から、動的計画法によって最適な座標(t,τ)を求めさせ、時間t-1における累積値S(t-1,τ)に対して前記局所相関ρ(t,τ)を加算させることにより、前記最適な座標(t,τ)における累積値S(t,τ)を算出させる累積値算出機能と、
時間tが1増加する毎に、時間t-1における最適な座標(t-1,τ)の市街地距離L(t-1,τ)に対して、前記最適な座標(t-1,τ)から前記最適な座標(t,τ)までの移動距離を加算させることにより、前記最適な座標(t,τ)における市街地距離L(t,τ)を算出させる市街地距離算出機能と、
時間tが1増加する毎に、前記累積値算出機能により算出された前記累積値S(t,τ)と、前記市街地距離算出機能により算出された前記市街地距離L(t,τ)とに基づいて、S(t,τ)/L(t,τ)を算出させ、算出されたS(t,τ)/L(t,τ)の値が予め設定された閾値h(h>0)未満となり、かつ、前記局所相関算出機能により算出された前記局所相関ρ(t,τ)が、局所相関ρ(t,τ)≒0となる場合には、座標(t,τ)をt-τ平面におけるスターティングポイントに設定させ、前記市街地距離L(t,τ)の値に1を設定させ、かつ、前記累積値S(t,τ)の値に0を設定させるスターティングポイント設定機能と、
時間tが1増加する毎に、前記市街地距離算出機能により算出された前記市街地距離L(t,τ)が、予め設定された閾値L(L≦0)以下であるかを判断させ、L(t,τ)≦Lでない場合には、時間1から時間Tまでの全てのτについて前記S(t,τ)/L(t,τ)を算出させ、算出されたS(t,τ)/L(t,τ)の値が前記閾値h以上となる全ての前記S(t,τ)/L(t,τ)の値の中から、最も値が大きくなる前記S(t,τ)/L(t,τ)の時間τをτ(t)として求めさせて、時間τ(t)の前記参照動画像と時間tの前記入力動画像とが類似した動画像であると判断させるマッチング処理機能と
を実現させることを特徴とする動画像マッチング用プログラム。
【請求項5】
カメラにより撮影される入力動画像が、予め撮影された時間1から時間Tまでの参照動画像の少なくとも一部に類似するか否かを判断する動画像マッチング装置の動画像マッチング用プログラムであって、
前記動画像マッチング装置は、
予め撮影された前記参照動画像の各時間τ(1≦τ≦T)の画像データに基づいて算出され、それぞれの前記画像データの特徴を示した特徴ベクトルz(τ)が記録された第1記録手段と、
制御手段とを有し、
該制御手段に、
時間t=0において、時間1から時間Tまで前記時間τを変化させた場合における各累積値S(t,τ)の値に∞を設定させ、かつ、各市街地距離L(t,τ)の値に1を設定させる初期値設定機能と、
時間tが1増加する毎に、前記カメラにより撮影される入力動画像の時間tの画像データに基づいて、該時間tの画像データの特徴ベクトルf(t)を算出させる第1特徴ベクトル算出機能と、
時間tが1増加する毎に、前記第1記録手段に記録される時間1から時間Tまでのそれぞれの時間τにおける前記特徴ベクトルz(τ)と、前記第1特徴ベクトル算出機能により算出された時間tにおける前記特徴ベクトルf(t)とに基づいて、各τにおける局所距離d(t,τ)を、
d(t,τ)= ||f(t)-z(τ)|| /(||f(t)||+||z(τ)||)
により算出させる局所距離算出機能と、
時間tが1増加する毎に、前記t-τ平面においてτの値を時間1から時間Tまで変化させた各座標(t,τ)の中から、動的計画法によって最適な座標(t,τ)を求めさせて、時間t-1における累積値S(t-1,τ)に対して前記局所距離d(t,τ)を加算させることにより、前記最適な座標(t,τ)における累積値S(t,τ)を算出させる累積値算出機能と、
時間tが1増加する毎に、時間t-1における最適な座標(t-1,τ)の市街地距離L(t-1,τ)に対して、前記最適な座標(t-1,τ)から前記最適な座標(t,τ)までの移動距離を加算させることにより、前記最適な座標(t,τ)における市街地距離L(t,τ)を算出させる市街地距離算出機能と、
時間tが1増加する毎に、前記累積値算出機能により算出された前記累積値S(t,τ)と、前記市街地距離算出機能により算出された前記市街地距離L(t,τ)とに基づいて、S(t,τ)/L(t,τ)を算出させ、算出されたS(t,τ)/L(t,τ)の値が予め設定された閾値h(h>0)より大きくなり、かつ、前記局所距離算出機能により算出された前記局所距離d(t,τ)が、局所距離d(t,τ)≒1となる場合には、座標(t,τ)をt-τ平面におけるスターティングポイントに設定させ、前記市街地距離L(t,τ)の値を1に設定させ、かつ、前記累積値S(t,τ)の値に∞を設定させるスターティングポイント設定機能と、
時間tが1増加する毎に、前記市街地距離算出機能により算出された前記市街地距離L(t,τ)が、予め設定された閾値L(L≦0)以下であるかを判断させ、L(t,τ)≦Lでない場合には、時間1から時間Tまでの全てのτについて前記S(t,τ)/L(t,τ)を算出させ、算出されたS(t,τ)/L(t,τ)の値が前記閾値h以下となる全ての前記S(t,τ)/L(t,τ)の値の中から、最も値が小さくなる前記S(t,τ)/L(t,τ)の時間τをτ(t)として求めさせて、時間τ(t)の前記参照動画像と時間tの前記入力動画像とが類似した動画像であると判断させるマッチング処理機能と、
を実現させることを特徴とする動画像マッチング用プログラム。
【請求項6】
前記カメラにより時間tに撮影された前記入力動画像の撮影位置を推定する自己位置推定装置の自己位置推定用プログラムであって、
該自己位置推定用プログラムは、請求項4または請求項5のいずれか一項に記載の動画像マッチング用プログラムを含み、
前記自己位置推定装置は、前記動画像マッチング用プログラムを実行させるための前記動画像マッチング装置を有し、前記第1記録手段には、前記特徴ベクトルz(τ)(1≦τ≦T)のそれぞれに対して、時間τに前記参照動画像を撮影した位置の情報が関連付けられて記録されており、
前記制御手段に、
前記動画像マッチング用プログラムの前記マッチング処理機能によって求められた時間τ(t)に基づいて、前記参照動画像を撮影した前記位置の情報を、前記第1記録手段より読み出させて、時間tに撮影された前記入力動画像の撮影位置を、前記第1記録手段より読み出された時間τ(t)の前記位置の情報に基づいて推定させる自己位置推定機能
を実現させることを特徴とする自己位置推定用プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画像マッチング装置、自己位置推定装置、動画像マッチング用プログラムおよび自己位置推定用プログラムに関し、より詳細には、入力動画像に類似する参照動画像を求めることが可能な動画像マッチング装置および動画像マッチング用プログラムと、その装置およびプログラムを有する自己位置推定装置および自己位置推定用プログラムに関する。
【背景技術】
【0002】
近年は、車両、ロボット、ドローン等の自動運転・自動飛行を実現するために、移動体の自己位置を推定する技術の重要性が増加している。自動運転・自動飛行を行う方法の一例として、SLAM(Simultaneous Localization and Mapping)と呼ばれる技術が知られている(例えば、非特許文献1参照)。SLAMでは、3次元地図の作成による環境地図作成処理と、自己位置推定処理とを同時に行う。
【0003】
SLAMを用いることにより、移動体自体の自己位置を推定することができるだけでなく、3次元地図の作成によって、移動体の次の運動内容を計画し、実行することが可能になる。例えば、今日の自動掃除ロボットには、掃除を行いながら掃除対象エリアの地図作成(例えば、部屋の見取り図作成)を行う機能が備わっている。自動掃除ロボットは、作成された地図を利用することにより、掃除を行っていない範囲を自動的に判断したり、掃除終了時に自動掃除ロボットの充電ステーションまで自動で戻ったりすることが可能になる。
【0004】
自己位置推定処理と環境地図作成処理とを利用することによって、車両、ロボット、ドローン等の自動運転・自動飛行を実現することが容易となる。これらの技術は、移動体の自動運転社会を実現するために必須の技術と考えられている。SLAMを実現するための一般的な技術として、レーザ光を利用した距離測定技術(以下、Lidar(Light Detection and Ranging:光による検知と測距)と称する)が用いられている。Lidarを用いて移動体から周囲の建物等までの距離を測定することにより、移動体を中心とした周囲の3次元地図を作成することができる。
【0005】
また、Lidarを用いない方法として、2つのカメラを用いて、移動体の周囲の3D地図を作成するVisual SLAMが提案されている。Visual SLAMでは、2つのカメラを用いて移動体の周囲の建物等を同時に撮影し、2つの撮影画像からステレオ法を用いて、或いはカメラの動画像に対して深層学習を利用することにより、移動体の周囲の3次元地図を作成する。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】"SLAM (自己位置推定と環境地図作成)",[online],The MathWorks, Inc, [2022年3月24日検索], インターネット <URL:https://jp.mathworks.com/discovery/slam.html>
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、Lidarを利用して自己位置を推定する方法であっても、2つのカメラを利用して自己位置を推定する方法であっても、まず、移動体が実際に移動して、周囲の3次元地図を作成する必要があった。3次元地図が作成された後に、作成された3次元地図との関連で、移動体の自己位置推定処理を行っている。
【0008】
しかしながら、現在では、インターネットの地図サービス(例えば、Google ストリートビュー(登録商標))等において、周囲の様子を予め撮影したカメラの画像が、位置情報に関連付けられて提供されている。また、今日では、バスやタクシー等の公共交通機関はもちろんのこと、多くの移動体(車両等)にドライブレコーダが設置されており、様々な場所を撮影した動画像が、位置情報に関連付けられて記録されている。
【0009】
このため、地図サービスにより提供されるカメラ画像を連続的につなげて動画像を作成して利用したり、ドライブレコーダで撮影された動画像を直接利用したりすることができれば、3次元地図を作成するSLAMやVisual SLAMを用いるよりも、簡易かつ低コストで、自己位置の推定処理を行うことが可能になる。
【0010】
このような処理を実現するためには、ドライブレコーダ等により予めタクシー等で撮影された動画像、地図サービスに基づいて作成された動画像、或いは移動体に設置されたカメラによって予め撮影された動画像等を参照動画像とし、移動体でリアルタイムに撮影する動画像を入力動画像として、入力動画像に類似する参照動画像を求める技術の実現が必要である。
【0011】
本発明は、上記の事情に鑑みてなされたものであり、予め撮影された参照動画像に基づいて、カメラで撮影される入力動画像が、参照動画像に類似するか否かを求めることが可能な動画像マッチング装置および動画像マッチング用プログラムを提供することを課題とする。
【0012】
また、上述した動画像マッチング装置および動画像マッチング用プログラムを利用するとともに、参照動画像の撮影時間に関連付けられた撮影時の位置の情報を用いることにより、入力動画像が撮影された時の自己位置の推定処理を行うことが可能な自己位置推定装置および自己位置推定用プログラムを提供することを課題とする。
【課題を解決するための手段】
【0013】
上記課題を解決するために、本発明に係る動画像マッチング装置は、予め撮影された時間1から時間Tまでの参照動画像の各時間τ(1≦τ≦T)の画像データに基づいて算出され、それぞれの前記画像データの特徴を示した特徴ベクトルz(τ)が記録された第1記録手段と、時間t=0において、時間1から時間Tまで前記時間τを変化させた場合における各累積値S(t,τ)の値に0を設定し、かつ、各市街地距離L(t,τ)の値を1に設定する初期値設定手段と、時間tが1増加する毎に、カメラにより撮影される入力動画像の時間tの画像データに基づいて、該時間tの画像データの特徴ベクトルf(t)を算出する第1特徴ベクトル算出手段と、時間tが1増加する毎に、前記第1記録手段に記録される時間1から時間Tまでのそれぞれの時間τにおける前記特徴ベクトルz(τ)と、前記第1特徴ベクトル算出手段により算出された時間tにおける前記特徴ベクトルf(t)とに基づいて、各τにおける局所相関ρ(t,τ)を、ρ(t,τ)= <f(t),z(τ)> /(||f(t)||・||z(τ)||)により算出する局所相関算出手段と、時間tが1増加する毎に、前記t-τ平面においてτの値を時間1から時間Tまで変化させた各座標(t,τ)の中から、動的計画法によって最適な座標(t,τ)を求めて、時間t-1における累積値S(t-1,τ)に対して前記局所相関ρ(t,τ)を加算することにより、前記最適な座標(t,τ)における累積値S(t,τ)を算出する累積値算出手段と、時間tが1増加する毎に、時間t-1における最適な座標(t-1,τ)の市街地距離L(t-1,τ)に対して、前記最適な座標(t-1,τ)から前記最適な座標(t,τ)までの移動距離を加算することにより、前記最適な座標(t,τ)における市街地距離L(t,τ)を算出する市街地距離算出手段と、時間tが1増加する毎に、前記累積値算出手段により算出された前記累積値S(t,τ)と、前記市街地距離算出手段により算出された前記市街地距離L(t,τ)とに基づいて、S(t,τ)/L(t,τ)を算出し、算出したS(t,τ)/L(t,τ)の値が予め設定された閾値h(h>0)未満となり、かつ、前記局所相関算出手段により算出された前記局所相関ρ(t,τ)が、局所相関ρ(t,τ)≒0となる場合には、座標(t,τ)をt-τ平面におけるスターティングポイントに設定し、前記市街地距離L(t,τ)の値を1に設定し、かつ、前記累積値S(t,τ)の値に0を設定するスターティングポイント設定手段と、時間tが1増加する毎に、前記市街地距離算出手段により算出された前記市街地距離L(t,τ)が、予め設定された閾値L(L≦0)以下であるかを判断し、L(t,τ)≦Lでない場合には、時間1から時間Tまでの全てのτについて前記S(t,τ)/L(t,τ)を算出し、算出したS(t,τ)/L(t,τ)の値が前記閾値h以上となる全ての前記S(t,τ)/L(t,τ)の値の中から、最も値が大きくなる前記S(t,τ)/L(t,τ)の時間τをτ(t)として求めて、時間τ(t)の前記参照動画像と時間tの前記入力動画像とが類似した動画像であると判断するマッチング処理手段とを備えることを特徴とする。
【0014】
また、本発明に係る動画像マッチング装置は、予め撮影された時間1から時間Tまでの参照動画像の各時間τ(1≦τ≦T)の画像データに基づいて算出され、それぞれの前記画像データの特徴を示した特徴ベクトルz(τ)が記録された第1記録手段と、時間t=0において、時間1から時間Tまで前記時間τを変化させた場合における各累積値S(t,τ)の値に∞を設定し、かつ、各市街地距離L(t,τ)の値を1に設定する初期値設定手段と、時間tが1増加する毎に、カメラにより撮影される入力動画像の時間tの画像データに基づいて、該時間tの画像データの特徴ベクトルf(t)を算出する第1特徴ベクトル算出手段と、時間tが1増加する毎に、前記第1記録手段に記録される時間1から時間Tまでのそれぞれの時間τにおける前記特徴ベクトルz(τ)と、前記第1特徴ベクトル算出手段により算出された時間tにおける前記特徴ベクトルf(t)とに基づいて、各τにおける局所距離d(t,τ)を、d(t,τ)= ||f(t)-z(τ)|| /(||f(t)||+||z(τ)||)により算出する局所距離算出手段と、時間tが1増加する毎に、前記t-τ平面においてτの値を時間1から時間Tまで変化させた各座標(t,τ)の中から、動的計画法によって最適な座標(t,τ)を求めて、時間t-1における累積値S(t-1,τ)に対して前記局所距離d(t,τ)を加算することにより、前記最適な座標(t,τ)における累積値S(t,τ)を算出する累積値算出手段と、時間tが1増加する毎に、時間t-1における最適な座標(t-1,τ)の市街地距離L(t-1,τ)に対して、前記最適な座標(t-1,τ)から前記最適な座標(t,τ)までの移動距離を加算することにより、前記最適な座標(t,τ)における市街地距離L(t,τ)を算出する市街地距離算出手段と、時間tが1増加する毎に、前記累積値算出手段により算出された前記累積値S(t,τ)と、前記市街地距離算出手段により算出された前記市街地距離L(t,τ)とに基づいて、S(t,τ)/L(t,τ)を算出し、算出したS(t,τ)/L(t,τ)の値が予め設定された閾値h(h>0)より大きくなり、かつ、前記局所距離算出手段により算出された前記局所距離d(t,τ)が、局所距離d(t,τ)≒1となる場合には、座標(t,τ)をt-τ平面におけるスターティングポイントに設定し、前記市街地距離L(t,τ)の値を1に設定し、かつ、前記累積値S(t,τ)の値に∞を設定するスターティングポイント設定手段と、時間tが1増加する毎に、前記市街地距離算出手段により算出された前記市街地距離L(t,τ)が、予め設定された閾値L(L≦0)以下であるかを判断し、L(t,τ)≦Lでない場合には、時間1から時間Tまでの全てのτについて前記S(t,τ)/L(t,τ)を算出し、算出したS(t,τ)/L(t,τ)の値が前記閾値h以下となる全ての前記S(t,τ)/L(t,τ)の値の中から、最も値が小さくなる前記S(t,τ)/L(t,τ)の時間τをτ(t)として求めて、時間τ(t)の前記参照動画像と時間tの前記入力動画像とが類似した動画像であると判断するマッチング処理手段とを備えることを特徴とする。
【0015】
また、本発明に係る自己位置推定装置は、上述した前記動画像マッチング装置を有し、前記第1記録手段には、前記特徴ベクトルz(τ)(1≦τ≦T)のそれぞれに対して、時間τに前記参照動画像を撮影した位置の情報が関連付けられて記録されており、前記マッチング処理手段により求められた時間τ(t)に基づいて、前記参照動画像を撮影した前記位置の情報を、前記第1記録手段より読み出して、時間tに撮影された前記入力動画像の撮影位置を、前記第1記録手段より読み出した時間τ(t)の前記位置の情報に基づいて推定する自己位置推定手段を備えるものであってもよい。
【0016】
さらに、本発明に係る動画像マッチング用プログラムは、カメラにより撮影される入力動画像が、予め撮影された時間1から時間Tまでの参照動画像の少なくとも一部に類似するか否かを判断する動画像マッチング装置の動画像マッチング用プログラムであって、前記動画像マッチング装置は、予め撮影された前記参照動画像の各時間τ(1≦τ≦T)の画像データに基づいて算出され、それぞれの前記画像データの特徴を示した特徴ベクトルz(τ)が記録された第1記録手段と、制御手段とを有し、該制御手段に、時間t=0において、時間1から時間Tまで前記時間τを変化させた場合における各累積値S(t,τ)の値に0を設定させ、かつ、各市街地距離L(t,τ)の値に1を設定させる初期値設定機能と、時間tが1増加する毎に、前記カメラにより撮影される入力動画像の時間tの画像データに基づいて、該時間tの画像データの特徴ベクトルf(t)を算出させる第1特徴ベクトル算出機能と、時間tが1増加する毎に、前記第1記録手段に記録される時間1から時間Tまでのそれぞれの時間τにおける前記特徴ベクトルz(τ)と、前記第1特徴ベクトル算出機能により算出された時間tにおける前記特徴ベクトルf(t)とに基づいて、各τにおける局所相関ρ(t,τ)を、ρ(t,τ)= <f(t),z(τ)> /(||f(t)||・||z(τ)||)により算出させる局所相関算出機能と、時間tが1増加する毎に、前記t-τ平面においてτの値を時間1から時間Tまで変化させた各座標(t,τ)の中から、動的計画法によって最適な座標(t,τ)を求めさせ、時間t-1における累積値S(t-1,τ)に対して前記局所相関ρ(t,τ)を加算させることにより、前記最適な座標(t,τ)における累積値S(t,τ)を算出させる累積値算出機能と、時間tが1増加する毎に、時間t-1における最適な座標(t-1,τ)の市街地距離L(t-1,τ)に対して、前記最適な座標(t-1,τ)から前記最適な座標(t,τ)までの移動距離を加算させることにより、前記最適な座標(t,τ)における市街地距離L(t,τ)を算出させる市街地距離算出機能と、時間tが1増加する毎に、前記累積値算出機能により算出された前記累積値S(t,τ)と、前記市街地距離算出機能により算出された前記市街地距離L(t,τ)とに基づいて、S(t,τ)/L(t,τ)を算出させ、算出されたS(t,τ)/L(t,τ)の値が予め設定された閾値h(h>0)未満となり、かつ、前記局所相関算出機能により算出された前記局所相関ρ(t,τ)が、局所相関ρ(t,τ)≒0となる場合には、座標(t,τ)をt-τ平面におけるスターティングポイントに設定させ、前記市街地距離L(t,τ)の値に1を設定させ、かつ、前記累積値S(t,τ)の値に0を設定させるスターティングポイント設定機能と、時間tが1増加する毎に、前記市街地距離算出機能により算出された前記市街地距離L(t,τ)が、予め設定された閾値L(L≦0)以下であるかを判断させ、L(t,τ)≦Lでない場合には、時間1から時間Tまでの全てのτについて前記S(t,τ)/L(t,τ)を算出させ、算出されたS(t,τ)/L(t,τ)の値が前記閾値h以上となる全ての前記S(t,τ)/L(t,τ)の値の中から、最も値が大きくなる前記S(t,τ)/L(t,τ)の時間τをτ(t)として求めさせて、時間τ(t)の前記参照動画像と時間tの前記入力動画像とが類似した動画像であると判断させるマッチング処理機能とを実現させることを特徴とする。
【0017】
また、本発明に係る動画像マッチング用プログラムは、カメラにより撮影される入力動画像が、予め撮影された時間1から時間Tまでの参照動画像の少なくとも一部に類似するか否かを判断する動画像マッチング装置の動画像マッチング用プログラムであって、前記動画像マッチング装置は、予め撮影された前記参照動画像の各時間τ(1≦τ≦T)の画像データに基づいて算出され、それぞれの前記画像データの特徴を示した特徴ベクトルz(τ)が記録された第1記録手段と、制御手段とを有し、該制御手段に、時間t=0において、時間1から時間Tまで前記時間τを変化させた場合における各累積値S(t,τ)の値に∞を設定させ、かつ、各市街地距離L(t,τ)の値に1を設定させる初期値設定機能と、時間tが1増加する毎に、前記カメラにより撮影される入力動画像の時間tの画像データに基づいて、該時間tの画像データの特徴ベクトルf(t)を算出させる第1特徴ベクトル算出機能と、時間tが1増加する毎に、前記第1記録手段に記録される時間1から時間Tまでのそれぞれの時間τにおける前記特徴ベクトルz(τ)と、前記第1特徴ベクトル算出機能により算出された時間tにおける前記特徴ベクトルf(t)とに基づいて、各τにおける局所距離d(t,τ)を、d(t,τ)= ||f(t)-z(τ)|| /(||f(t)||+||z(τ)||)により算出させる局所距離算出機能と、時間tが1増加する毎に、前記t-τ平面においてτの値を時間1から時間Tまで変化させた各座標(t,τ)の中から、動的計画法によって最適な座標(t,τ)を求めさせて、時間t-1における累積値S(t-1,τ)に対して前記局所距離d(t,τ)を加算させることにより、前記最適な座標(t,τ)における累積値S(t,τ)を算出させる累積値算出機能と、時間tが1増加する毎に、時間t-1における最適な座標(t-1,τ)の市街地距離L(t-1,τ)に対して、前記最適な座標(t-1,τ)から前記最適な座標(t,τ)までの移動距離を加算させることにより、前記最適な座標(t,τ)における市街地距離L(t,τ)を算出させる市街地距離算出機能と、時間tが1増加する毎に、前記累積値算出機能により算出された前記累積値S(t,τ)と、前記市街地距離算出機能により算出された前記市街地距離L(t,τ)とに基づいて、S(t,τ)/L(t,τ)を算出させ、算出されたS(t,τ)/L(t,τ)の値が予め設定された閾値h(h>0)より大きくなり、かつ、前記局所距離算出機能により算出された前記局所距離d(t,τ)が、局所距離d(t,τ)≒1となる場合には、座標(t,τ)をt-τ平面におけるスターティングポイントに設定させ、前記市街地距離L(t,τ)の値を1に設定させ、かつ、前記累積値S(t,τ)の値に∞を設定させるスターティングポイント設定機能と、時間tが1増加する毎に、前記市街地距離算出機能により算出された前記市街地距離L(t,τ)が、予め設定された閾値L(L≦0)以下であるかを判断させ、L(t,τ)≦Lでない場合には、時間1から時間Tまでの全てのτについて前記S(t,τ)/L(t,τ)を算出させ、算出されたS(t,τ)/L(t,τ)の値が前記閾値h以下となる全ての前記S(t,τ)/L(t,τ)の値の中から、最も値が小さくなる前記S(t,τ)/L(t,τ)の時間τをτ(t)として求めさせて、時間τ(t)の前記参照動画像と時間tの前記入力動画像とが類似した動画像であると判断させるマッチング処理機能とを実現させることを特徴とする。
【0018】
さらに、本発明に係る自己位置推定用プログラムは、前記カメラにより時間tに撮影された前記入力動画像の撮影位置を推定する自己位置推定装置の自己位置推定用プログラムであって、該自己位置推定用プログラムは、上述した動画像マッチング用プログラムを含み、前記自己位置推定装置は、前記動画像マッチング用プログラムを実行させるための前記動画像マッチング装置を有し、前記第1記録手段には、前記特徴ベクトルz(τ)(1≦τ≦T)のそれぞれに対して、時間τに前記参照動画像を撮影した位置の情報が関連付けられて記録されており、前記制御手段に、前記動画像マッチング用プログラムの前記マッチング処理機能によって求められた時間τ(t)に基づいて、前記参照動画像を撮影した前記位置の情報を、前記第1記録手段より読み出させて、時間tに撮影された前記入力動画像の撮影位置を、前記第1記録手段より読み出された時間τ(t)の前記位置の情報に基づいて推定させる自己位置推定機能を実現させるものであってもよい。
【発明の効果】
【0019】
本発明に係る動画像マッチング装置および動画像マッチング用プログラムによれば、入力動画像に類似する参照動画像を求めることが可能となる。また、本発明に係る自己位置推定装置および自己位置推定用プログラムによれば、入力動画像を撮影した時の自己位置を、参照動画像に関連付けられた位置の情報から推定することが可能になる。
【図面の簡単な説明】
【0020】
図1】実施の形態に係る自己位置推定装置の概略構成を示したブロック図である。
図2】実施の形態に係る自己位置推定装置がプログラムに基づいて実行する処理の機能ブロックを示した図である。
図3】入力動画像および参照動画像を撮影した時のx-y平面における車両の軌跡と、参照動画像の時間τと入力動画像の時間tとに基づくτ-t平面の座標(t,τ)が累積値Sの山に入った状態とを示した図である。
図4】実施の形態に係る第2特徴ベクトル算出部が参照動画像の特徴ベクトルを算出する処理を示したフローチャートである。
図5】実施の形態に係る局所相関算出部が、局所相関ρ(t,τ)を算出する処理を示したフローチャートである。
図6】参照動画像の時間τと入力動画像の時間tとに基づくτ-t平面の座標(t,τ)が、累積値Sの山に入った状態を示した図である。
図7】(a)は、式2の漸化式の内容を説明するための図であり、(b)は、式2の漸化式により選択されたパスに従って、時間経過に応じて座標(t,τ)が遷移する様子を一例として示した図である。
図8】実施の形態に係るマッチング処理部によって実行されるマッチング処理の前半の処理を示したフローチャートある。
図9】実施の形態に係るマッチング処理部によって実行されるマッチング処理の後半の処理を示したフローチャートある。
図10】参照動画像を撮影した車両の走行状態を示した模式図であって、入力動画像の特徴ベクトル(画像データ)が、参照動画像の特徴ベクトル(画像データ)に類似していると判断された経路(航路)を示した図である。
【発明を実施するための形態】
【0021】
以下、本発明に係る自己位置推定装置の一例を、図面を用いて詳細に説明する。図1は、自己位置推定装置の概略構成を示したブロック図である。自己位置推定装置100には、カメラ1と表示部6とが接続されている。自己位置推定装置100は、CPU(Central Processing Unit:制御手段)2と、ROM(Read Only Memory)3と、RAM(Random Access Memory)4と、記録部(第1記録手段)5とを有している。自己位置推定装置100は、例えば、走行する車両に設置されたカメラ1で連続的に撮影される動画像(以下、この動画像を「入力動画像」と称する)と、予め撮影された動画像(以下、この動画像を「参照動画像」と称する)とを比較して、入力動画像に類似する参照動画像が存在するか否か(互いの動画像が対応するか否か)を判断する処理(以下、マッチング処理と称する)を行う。この点で、自己位置推定装置100は、動画像マッチング装置90としても機能する。
【0022】
記録部5は、一般的なハードディスク等によって構成されている。記録部5の構成は、ハードディスクだけに限定されるものではなく、フラッシュメモリ、SSD(Solid State Drive / Solid State Disk)などであってもよい。
【0023】
記録部5には、マッチング処理に用いられる参照動画像が画像データ群として記録されている。参照動画像の一例として、例えば車載用のドライブレコーダで撮影された映像等が該当する。今日では、タクシーやバス等の多くの交通機関にドライブレコーダが設置されており、車両の周囲の映像が、GPS(Global Positioning System:全地球測位システム)による位置情報(位置の情報)に関連付け(紐付け)された状態で記録されている。
【0024】
また、予め所定のエリアの様子を位置情報に関連付けて撮影した地図データを用意し、この地図データに基づいて参照動画像を作成してもよい。例えば、Google ストリートビュー(登録商標)では、全国の主要道路の周囲状況が予め撮影されており、撮影された画像には、位置情報が関連付けされている。さらに、撮影された画像は連続的に撮影されているため、撮影された画像を繋ぎ合わせることによって、参照動画像として利用することができる。
【0025】
また、位置情報は必ずしもGPSによる情報だけには限定されない。参照動画像が撮影された位置を特定することが可能な情報を、位置情報と設定することができる。例えば、ランドマークになるような特定の建物等の位置が予め分かっている場合には、この建物等の周辺の地図を例えば手書きで作成し、建物等からの方位や距離等を用いた幾何学的な関係によって、参照動画像を撮影した時間の位置情報を求めて記録することも可能である。
【0026】
実施の形態に係る自己位置推定装置100では、上述したようなドライブレコーダの動画像やGoogle ストリートビュー(登録商標)に基づく動画像ではなく、予めカメラとGPSとが設置された車両を用いて、所定の広域エリアを走行することにより撮影された動画像を、参照動画像として利用する。参照動画像を撮影するためのカメラには、360度カメラを用いる。所定の広域エリアを事前に車両で走行し、周囲の様子を360度カメラで撮影し、GPSに基づく車両の座標位置x,y(例えば、WGS84(World Geodetic System 1984)座標系の位置情報)と走行時の時間τ(τ=1,2,3,・・・,T)とを、360度カメラの映像に関連付けて記録することにより、参照動画像を生成する。
【0027】
一般的なドライブレコーダは、24~30fps(frames per second)程度のフレームレートで撮影を行う。360度カメラを用いて撮影された動画像のフレームレートが30fpsの場合、時間τ=1の時の画像データは撮影開始から1/30秒経過時の画像データであり、τ=2の時の画像データは撮影開始から2/30秒経過時の画像データとなる。
【0028】
なお、実施の形態に係る自己位置推定装置100では、後述する自己位置推定処理を行うために、参照動画像と地図上の位置との対応関係が、必ずしも地図上の全ての地点で対応している必要はない。具体的には、カメラを設置した車両が走行する道路における、幾何学的な関係が明確であればよい。建物内やトンネル内のように、GPSデータが受信しにくい場合もあり得る。また、GPSと地図上の位置との対応関係が、十分な正確さを備えていない場合もあり得る。このような場合を考慮すると、GPSは、必ずしも最適な位置情報とならない場合もあり得る。
【0029】
また、一度走行して得られる参照動画像自体を地図データとして機能させ、新規の入力動画像の各時刻における位置が、参照動画像に基づく地図データ(動画地図)の上のどの時点に対応しているかを調べることができる。このようにして得られる物理的な位置情報は、結果の表示に使われる位置情報となり得る。
【0030】
記録部5には、参照動画像の特徴ベクトルが記録される(第1記録手段として機能する記録部5)。さらに、記録部5には、後述するように、局所相関算出部により算出された局所相関ρ(t,τ)や、局所距離算出部により算出された局所距離d(t,τ)が記録される(第2記録手段として機能する記録部5)。
【0031】
カメラ1には、上述した360度カメラが使用される。カメラ1は、車両外部の天井部分に設置されており、車両の周囲の様子を360度撮影することが可能になっている。本実施の形態では、参照動画像を撮影するカメラも、入力動画像を撮影するカメラ1も、同じ360度カメラを用いる場合を一例として説明する。しかしながら、参照動画像を撮影するカメラと入力動画像を撮影するカメラ1とは、異なる360度カメラを用いることも可能である。
【0032】
また、本実施の形態では、参照動画像と入力動画像とを撮影するためのカメラとして360度カメラを使用するが、360度カメラを用いずに、一般的な動画像撮影用のカメラ(周囲の状況を、360度ではなく平面的に撮影するカメラ)を用いてもよい。この場合、入力動画像および参照動画像のいずれの撮影においても、同じ一般的な動画像撮影用カメラ(平面的に撮影するカメラ)を用いて撮影することが好ましい。一方で360度カメラを用いて撮影し、他方で平面的な撮影用のカメラを用いて撮影することは、避ける方がよい。
【0033】
例えば、Lidar等をドローンに搭載する場合、ドローンを空中に安定させることが困難であるため、360度カメラ等を用いても3次元の画像データを取得することが難しくなる。このため、ドローン等を移動体として用いる場合には、一般的な動画像撮影用カメラ(平面的に動画像を撮影するカメラ)を用いて、平面的な参照動画撮影を撮影することが望ましい。撮影された平面的な参照動画像およびその特徴ベクトルは、記録部5に記録される。
【0034】
さらに、カメラ1によって撮影された入力動画像に対して、入力動画像を撮影する時の位置情報を関連付ける(紐付ける)必要はない。従って、自己位置推定装置100には、GPS等の位置測位装置は設けられていない。
【0035】
カメラ1によって撮影された入力動画像は、RAM4等に記録される。カメラ1によって撮影された動画像は、連続的に撮影された複数の画像データの集合(画像データ群)によって構成されている。つまり、各時間に撮影されたそれぞれの画像データが、カメラ1からRAM4へ出力され、連続した画像データの集合として記録される。
【0036】
説明の便宜上、入力動画像は、時間t(t=1,2,3,・・・)の画像データが連続的に記録された動画像であると定義する。なお、参照動画像と同様に、カメラ1のフレームレートが30fpsの場合、時間t=1の時の画像データは撮影開始から1/30秒経過時の画像データであり、t=2の時の画像データは撮影開始から2/30秒経過時の画像データとなる。
【0037】
また、本実施の形態では、参照動画像や後述する局所相関ρ(t,τ)等が記録部5に記録される場合について説明する。記録部5は、本発明に係る第1記録手段に該当する。なお、参照動画像が記録される記録部(第1記録手段)と、局所相関ρ(t,τ)等が記録される記録部(第2記録手段)とを、別々の記録部にすることも可能である。
【0038】
CPU2は、全体の長さT時間の参照動画像のうち少なくとも一部の時間(時間1から時間Tまでの時間の中のいずれかの連続した時間:部分時間)の動画像が、入力動画像の少なくとも一部の時間の動画像に類似しているか否かの判断処理(マッチング処理)を行う。さらにCPU2は、マッチングされた参照動画像の位置情報に基づいて、入力動画像が撮影された時のカメラ1の位置の推定処理(自己位置推定処理)を行う。具体的に、CPU2は、ROM3に記録されるプログラム(後述する図4図5図8および図9に示すフローチャートに基づくプログラム等)を読み出して実行することによって、マッチング処理および自己位置推定処理を行う。
【0039】
ROM3には、CPU2の処理内容を示したプログラム等が記録される。RAM4は、CPU2の処理に利用されるワークエリアとして用いられる。また、RAM4は、次述するバッファーメモリ21として用いられる。RAM4がバッファーメモリ21として用いられるため、RAM4には、既に説明したように、カメラ1で撮影された入力動画像の時間毎の画像データが記録される。
【0040】
表示部6は、参照動画像の映像や入力動画像の映像を別々に表示したり、マッチング処理によってマッチングされた参照動画像と入力動画像との映像を対比して表示したり、自己位置推定処理により求められた入力動画像の自己位置(座標位置)等を表示したりすることができる。表示部6には、液晶ディスプレイや、CRTディスプレイなどの一般的な表示装置が用いられる。
【0041】
次に、入力動画像と参照動画像とに基づいて、CPU2が、マッチング処理および自己位置推定処理を行う方法について説明する。図2は、ROM3に記録されたプログラムに基づいて、CPU2が実行する処理の機能ブロックを示した図である。図2に示すように、自己位置推定装置100は、A/D変換部20と、バッファーメモリ21と、参照動画像用データ記録部(第1記録手段)22と、第1特徴ベクトル算出部(第1特徴ベクトル算出手段)23と、第2特徴ベクトル算出部24と、局所相関算出部(局所相関算出手段)25と、マッチング処理部(初期値設定手段、累積値算出手段、市街地距離算出手段、スターティングポイント設定手段、マッチング処理手段)26と、局所データ記録部(第2記録手段)27と、自己位置推定部(自己位置推定手段)28とを有している。このうち、第1特徴ベクトル算出部23と、第2特徴ベクトル算出部24と、局所相関算出部25と、マッチング処理部26と、自己位置推定部28とが、プログラムに基づいてCPU2が処理を行う機能ブロックに該当する。
【0042】
A/D変換部20には、カメラ1が接続されている。A/D変換部20は、カメラ1によって撮影された入力動画像を、アナログデータからデジタルデータへと変換する処理を行う。本実施の形態に示すカメラ1で撮影された入力動画像は、時間制限のないエンドレスな動画像とする。もちろん、入力動画像はエンドレスな動画像に限定されず、入力動画像として有限な時間長の動画を用いることも可能である。つまり、予めカメラ1によって撮影された動画像を入力動画像として用いてもよい。
【0043】
A/D変換部20でデータ変換処理を行うことにより、自己位置推定装置100は、カメラ1で撮影された動画像を、連続した画像データ群(複数の画像データの集合)として処理することが可能になる。A/D変換部20は、デジタルデータに変換された画像データをバッファーメモリ21に出力する。なお、A/D変換部20に該当する機能が、カメラ1に内蔵されている場合には、カメラ1からデジタルデータ化された画像データが出力されるため、自己位置推定装置100からA/D変換部20を省略することが可能である。
【0044】
バッファーメモリ21には、入力動画像の画像データ(デジタルデータ)が時系列的に記録される。バッファーメモリ21は、所定の時間分(例えば、Tフレーム分の時間長)の入力動画像の画像データ群を記録する。バッファーメモリ21には、例えば、1/30秒毎に作成される画像データのT個分のデータ、つまり、1/30秒×T時間長の入力動画像のデータを記録することが可能なメモリ容量が確保されている。A/D変換部20によりT+1番目の新しい画像データが作成された場合、バッファーメモリ21は、先入先出処理(First-In First-Out処理)によって、記録されている1番古い画像データを消去して、T番目に作成された画像データの次に、一番新しいT+1番目の画像データを記録する。バッファーメモリ21には、既に説明したようにRAM4が用いられる。但し、バッファーメモリ21として、記録部5を用いることも可能である。
【0045】
参照動画像用データ記録部22は、記録部5により構成され、予め撮影された参照動画像の画像データ群を記録する。参照動画像は、予めデジタルデータ化されたものとする。参照動画像は、予め撮影された動画像であるため、有限な時間長の動画像となる。
【0046】
図3は、入力動画像および参照動画像を撮影した時のx-y平面における車両の軌跡と、参照動画像の時間τと入力動画像の時間tとに基づくτ-t平面の座標(t,τ)が、累積値Sの山に入った状態とを示した図である。既に説明したように、参照動画像は、所定の広域エリアを、事前に車両で走行して360度カメラで周囲の様子を撮影した映像である。参照動画像の各画像データには、車両の位置情報(座標位置x,y)と、走行時の時間τ(τ=1,2,3,・・・,T)とが記録されている。座標位置x,yの位置情報は、現実世界の地上位置を座標で示したものである。現実世界の世界測地系として、既に説明したWGS84や、日本測地系2011(JGD2011)等が用いられる。
【0047】
入力動画像は、既に説明したように、車両に設置されたカメラ1で周囲の様子をリアルタイムに撮影した動画像である。自己位置推定装置100は、時間tにおける入力動画像(時間tまでの複数の画像データ)が、参照動画像のどの部分時間(連続する複数の画像データの長さ)に対応するかを判断する処理を行う。例えば、参照動画像が撮影されたエリアと、入力動画像が撮影されるエリアとが全く異なる場合には、対応する画像データ群が存在しない。この場合、自己位置推定装置100は、対応する動画像がないものと判断する。自己位置推定装置100における対応する動画像の判断処理については、後述する。
【0048】
図3には、参照動画像の時間τの画像データと入力動画像の時間tの画像データとが、マッチング(対応)する例が示されている。図3の白抜き矢印は、互いにマッチングした動画像を示している。
【0049】
第1特徴ベクトル算出部23は、バッファーメモリ21に記録された入力動画像の画像データに基づいて、入力動画像の特徴ベクトルを算出する処理を行う。入力動画像は、既に説明したように、複数フレームの画像データの集合によって構成されている。一般的な1フレームの画像データは、通常、RGBの色情報(赤:Red、緑:Green、青:Blueの配合比率を変化させて、色を表現した情報)を備えた画素が、2次元に分布されたデータとして記録される。このとき、第1特徴ベクトル算出部23は、RGBの3次元空間データの量子化を行い(例えば、256×256×256次元のデータを、16×16×16次元のデータへ変換し)、16×16×16次元のベクトルを、1画像の特徴ベクトルにする。
【0050】
第1特徴ベクトル算出部23は、入力動画像の1フレーム分の画像データの色情報を、RGBからHSVへカラー変換する。ここで、HSVの色情報とは、色相(Hue)、彩度(Saturation Chroma)、明度(Value Brightness)の三つの成分からなる情報を意味する。次に、第1特徴ベクトル算出部23は、HSの成分からなる量子化コードに基づいてヒストグラムのベクトルを求めることにより、特徴ベクトルを算出する。このようにして特徴ベクトルを算出することにより、各画素の色情報を不変にすることができる。算出された特徴ベクトルは、1フレーム分の画像データに関する画面全体(全画素)の特徴を示すベクトルとなる。
【0051】
第1特徴ベクトル算出部23が、RGBの色情報を有する画像データに対してsize reduction処理を行うことにより、カラーのヒストグラム処理を経ることなく、2次元画像の2次元配列を単に一次元ベクトル化することで、画像データの特徴ベクトルを算出することも可能である。また、夜間に撮影を行う場合、カメラ1として赤外線カメラを利用して入力動画像を撮影することも可能である。赤外線カメラを用いる場合には、近赤外線領域の光に基づいて動画像の撮影を行うため、撮影された画像データに、一般的なRBGの情報が記録されない。この場合、第1特徴ベクトル算出部23は、赤外線カメラで撮影された画像をsize reductionすることによって、画像データの特徴ベクトルを算出する。
【0052】
時間tに撮影された入力動画像の画像データに基づいて、第1特徴ベクトル算出部23は、特徴ベクトルf(t)を算出する。自己位置推定装置100では、カメラ1によって、車両の周囲の状況がリアルタイムに撮影されているため、入力動画像が撮影された時間tは、現在の時間(より厳密には、現在の直前の時間)を示している。算出された時間tの入力動画像の特徴ベクトルは、局所相関算出部25に順次出力される。
【0053】
なお、過去から時間t(現在)までに算出された入力動画像の特徴ベクトルを、ベクトル特徴系列Fとして表す。第1特徴ベクトル算出部23で算出される入力動画像のベクトル特徴系列Fは、以下のように示される
F=f(1),f(2),・・・,f(t)
但し、1≦t<∞
【0054】
第2特徴ベクトル算出部24は、参照動画像用データ記録部22に記録される参照動画像の画像データに基づいて、参照動画像の特徴ベクトルを算出する。第2特徴ベクトル算出部24で行われる特徴ベクトルの算出処理は、第1特徴ベクトル算出部23と同様の処理内容である。第2特徴ベクトル算出部24は、フレーム毎に特徴ベクトルを算出する。第2特徴ベクトル算出部24で算出される参照動画像の特徴ベクトルを、ベクトル特徴系列Zとし、以下のように示す。
Z=z(1),z(2),・・・,z(τ),・・・,z(T)
但し、1≦τ≦T
【0055】
参照動画像は、予め撮影された有限な時間長の動画像であるため、算出される特徴ベクトルz(τ)は、有限数(1≦τ≦T)となる。図4は、第2特徴ベクトル算出部24が参照動画像の特徴ベクトルを算出する処理を示したフローチャートである。
【0056】
第2特徴ベクトル算出部24は、初期値の設定処理として、時間τの値をτ=1に設定する(S.01)。次に、第2特徴ベクトル算出部24は、参照動画像用データ記録部22より時間τの画像データ(参照動画像の画像データ)を読み出し(S.02)、読み出された時間τの画像データに基づいて特徴ベクトルz(τ)の算出を行う(S.03)。そして、第2特徴ベクトル算出部24は、算出された時間τの特徴ベクトルz(τ)を、参照動画像用データ記録部22に記録し(S.04)、時間τを1だけ増加(単位時間だけ増加)させる処理(τ=τ+1:S.05)を行う。そして、第2特徴ベクトル算出部24は、時間τの値がT以下であるか否かの判断を行う(τ≦T:S.06)。
【0057】
時間τの値がT以下の場合(S.06でYes)、第2特徴ベクトル算出部24は、処理を上述したS.02に移行して、S.02以降の処理を繰り返し実行する。一方で、時間τの値がTより大きい(以下でない)場合(S.06でNo)、第2特徴ベクトル算出部24は、参照動画像における特徴ベクトルの算出処理を終了する。図4に示す算出処理により、第2特徴ベクトル算出部24は、時間1から時間Tまでの各時間τにおいて、参照動画像の特徴ベクトルz(τ)を算出する。このように算出された時間1から時間Tまでの全ての(T個の)時間τの特徴ベクトルz(τ)は、参照動画像用データ記録部22に記録される。
【0058】
なお、参照動画像用データ記録部22には、参照動画像の各画像データに関連付けられた位置情報が記録されている。第2特徴ベクトル算出部24により算出された特徴ベクトルz(τ)は、参照動画像の各画像データに対応しているため、参照動画像用データ記録部22に記録される各特徴ベクトルz(τ)にも、各時間τに撮影された参照動画像の位置の情報が、実質的に関連付けられて記録されることになる。
【0059】
局所相関算出部25は、第1特徴ベクトル算出部23により算出された入力動画像の時間tの特徴ベクトルf(t)と、参照動画像用データ記録部22に記録された時間1からTまでのT個の参照動画像の特徴ベクトルz(τ)とに基づいて、時間1からTまでのT個の局所相関ρ(t,τ)の算出を行う。特徴ベクトルf(t)と特徴ベクトルz(τ)との局所相関ρ(t,τ)は、次の式1に基づいて算出される。
ρ(t,τ)= <f(t),z(τ)> /(||f(t)||・||z(τ)||)
・・・式1
算出されたT個の局所相関ρ(t,τ)は、局所データ記録部27に出力されて記録される。
【0060】
図5は、局所相関算出部25が局所相関ρ(t,τ)を算出する処理を示したフローチャートである。局所相関算出部25は、まず、初期値の設定処理を行う(S.11)。具体的に、局所相関算出部25は、時間τに対してτ=1を設定する。次に、局所相関算出部25は、第1特徴ベクトル算出部23より、時間tの入力動画像の特徴ベクトルf(t)を取得し(S.12)、その後、参照動画像用データ記録部22に記録された時間τの特徴ベクトルz(τ)を取得する(S.13)。
【0061】
局所相関算出部25は、上述した式1に基づいて、局所相関ρ(t,τ)を算出する(S.14)。次に、局所相関算出部25は、算出された局所相関ρ(t,τ)を、局所データ記録部27へ出力して記録させる(S.15)。そして、局所相関算出部25は、時間τを1だけ増加させる処理(τ=τ+1:S.16)を行い、時間τの値がT以下であるか否かの判断を行う(τ≦T:S.17)。
【0062】
時間τの値がT以下の場合(S.17でYes)、局所相関算出部25は、処理をS.13に移行して、S.13以降の処理を繰り返し実行する。一方で、時間τの値がTより大きい(以下でない)場合(S.17でNo)、局所相関算出部25は、局所相関ρ(t,τ)の算出処理を終了する。
【0063】
以降、局所相関算出部25は、第1特徴ベクトル算出部23より、入力動画像の新たな特徴ベクトル(入力動画像の時間t+1の画像データに基づく特徴ベクトル)を取得するタイミングで、上述した局所相関ρ(t,τ)の算出処理(図5に示すフローチャートの処理)を繰り返し実行する。この処理により、局所データ記録部27には、時間1から時間Tまでの各時間τの局所相関ρ(t,τ)が、時間tが単位時間経過する毎(時間tが1増加する毎)に複数記録されることになる。
【0064】
マッチング処理部26は、次述する動的計画法を用いることにより、入力動画像に類似した参照動画像が存在するか否かの判断を行う。具体的には、後述するように、市街地距離L(t,τ)が所定の値L(但し、Lは定数、L>0)より大きくて、S(t,τ)/L(t,τ)(以後、S(t,τ)/L(t,τ)を平均累積値と称する)が所定の閾値h(但し、h>0)以上の場合に、算出された平均累積値S(t,τ)/L(t,τ)の中から最も値が大きくなる平均累積値S(t,τ)/L(t,τ)の時間τをτ(t)として求めて、時間τ(t)の参照動画像の画像データと、時間tの入力動画像の画像データとが、任意の時間において常に類似するものと判断する。なお、S(t,τ)とL(t,τ)については、後述する。
【0065】
図6は、入力動画像に類似する参照動画像が存在するか否かを、マッチング処理部26で判断するアルゴリズムを説明するための図である。図6において、横軸は、入力動画像のベクトル特徴系列F(特徴ベクトルf(t))の時間tを示し、縦軸は参照動画像のベクトル特徴系列Z(特徴ベクトルz(τ))の時間τを示している。なお、図6は、図3の右上に示された模式図を拡大した図に該当する。
【0066】
マッチング処理部26は、参照動画像の特徴ベクトルz(τ)と、入力動画像の特徴ベクトルf(t)とが類似している時間τおよび時間tの区間(部分区間)を求めて、類似している区間(部分区間)における局所相関の累積値を算出する。局所相関(または距離)の最適な累積値は、部分区間の区間長に影響を受けない。マッチング処理部26は、局所相関の累積値を最適に計算するために、動的計画法のアルゴリズムを利用する。動的計画法に関する技術は、例えば「Ryuichi Oka: Spotting Method for Classification of Real World Data, The Computer Journal, Vol.41, No.8, pp.559-565 (1998)」や「小島浩,伊藤慶明,岡 隆一: Reference Interval-Free連続DPを利用した移動ロボットの時系列画像による位置同定システム、電子情報通信学会論文誌, D-II, Vol.J80-D-II, No.3, pp.724-733 1997年3月」などによって既に提案されている。本発明では、後述するようにスターティングポイントを任意の(t,τ)に設定し、動的計画法を用いることにより、スターティングポイントからの動画像の類似判断を行うことを特徴としている。本発明において利用する動的計画法のアルゴリズムを、「Partial連続DP(Dynamic Programming)」と称する。
【0067】
部分区間の終端点を(t,τ)とする。この終端点に対して、軌跡の長さで正規化された局所相関の累積値を配置すると、特徴ベクトルが類似する区間は、「局所相関ρ(t,τ)の値が大きくなる(1にほぼ等しい値となる)座標」が複数集まった状態となっており、これらの座標によって集合が形成される。図6において楕円形エリアで示すように、t-τ平面に示されたこれらの座標の集合を、累積値の山と表現する。累積値の山は、パス(局所パス、部分的パス)の市街地距離を正規化した状態で判断される。パスとは、t-τ平面において、座標(t,τ)に至る前の座標位置からの遷移経路を示している。マッチング処理部26では、次述する9つのパスを想定している。また、市街地距離とは、パスに従って移動した場合の移動距離を示したものであり、後述するようにパスに応じて算出することができる。
【0068】
マッチング処理部26は、局所相関ρ(t,τ)を用いて累積値の山部分を最適かつ自動的に判別することにより、入力動画像(特徴ベクトルf(t))の時刻tに対応する、参照動画像(特徴ベクトルz(τ))の時間τを、入力動画像の時間tの経過に応じてリアルタイムに求める。マッチング処理部26が、累積値の山部分を最適に判別する処理を行うに当たり、t-τ平面における座標(t,τ)の局所相関ρ(t,τ)の累積値(累積局所相関)を、S(t,τ)と定義し、同時に座標(t,τ)に至るスターティングポイントからのパスの市街地距離をL(t,τ)と定義する。
【0069】
スターティングポイントとは、平均累積値S(t,τ)/L(t,τ)の値が、所定の閾値h(h>0)未満(S(t,τ)/L(t,τ)<h)となり、かつ、局所相関ρ(t,τ)が0にほぼ等しい値(ρ(t,τ)≒0)であると判断されたときの任意の座標(t,τ)を意味する。マッチング処理部26は、時間tが1増加する毎に、S(t,τ)/L(t,τ)<h、かつ、ρ(t,τ)≒0を満たすか否かを判断し、この要件を満たす場合には、該当する座標(t,τ)をスターティングポイントに設定するとともに、累積値S(t,τ)の値に0を設定し(S(t,τ)=0)、かつ、市街地距離L(t,τ)の値に1を設定(L(t,τ)=1)する。
【0070】
一方で、マッチング処理部26は、S(t,τ)/L(t,τ)<h、かつ、ρ(t,τ)≒0を満たさない場合には、座標(t,τ)をスターティングポイントに設定せず、さらに、後述する説明(例えば、後述する式2等)に基づいて、累積値S(t,τ)の値と、市街地距離L(t,τ)の値とを更新する。
【0071】
詳細な累積値S(t,τ)の更新処理は後述するが、上述したように累積値S(t,τ)は、t-τ平面における座標(t,τ)の局所相関ρ(t,τ)の累積値を示している。このため、マッチング処理部26は、時間tが1増加する毎に、t-τ平面においてτの値を時間1から時間Tまで変化させた各座標(t,τ)の中から、動的計画法によって最適な座標(t,τ)を求めて、時間t-1における最適な累積値S(t-1,τ)に対して局所相関ρ(t,τ)を加算することにより、最適な座標(t,τ)における累積値S(t,τ)を算出する。
【0072】
また、上述したように市街地距離L(t,τ)は、スターティングポイントからパスに従って移動した場合の移動距離を示したものである。このため、マッチング処理部26は、時間tが1増加する毎に、時間t-1における最適な座標(t-1,τ)の市街地距離S(t-1,τ)に対して、最適な座標(t-1,τ)から最適な座標(t,τ)までの移動距離を加算することにより、最適な座標(t,τ)における市街地距離S(t,τ)の更新処理を行う。
【0073】
また、事後的に分かることになるが、マッチング処理部26は、S(t,τ)/L(t,τ)≧hであり、さらに、所定の値L(Lは定数、L>0)に対して、L(t,τ)>Lが成立する場合に、座標(t,τ)が累積値の山に入った状態を維持していると判断する。すなわち、通常の場合、座標(t,τ)は山に入っている状態を継続することになる。
【0074】
なお、閾値hと所定の値Lとは、多くの実験を通じて最適であると判断された値により決定される。具体的には、参照動画像の時間τの画像データと入力動画像の時間tの画像データとが類似していると判断され得る閾値hおよび所定の値Lを、繰り返し実験的に求めることにより、より好ましい(最適)と判断され得る値を導き出す。最適な閾値hと所定の値Lとが決定された場合、実際の撮影位置と自己位置推定処理により求められる入力動画像の撮影位置との誤差を、より少なくすることができる。
【0075】
例えば、入力動画像を撮影するためのカメラ1の設置された移動体が車両ではなくドローンやロボット等であって、道路のような予め規定された経路を進むとは限らない場合も想定され得る。このような場合には、閾値hの値や所定の値Lを変更することによって、入力動画像と参照動画像とが類似していると判断され得る条件を調整することができる。このため、最適な閾値hや所定の値Lを実験等によって決定することにより、自己位置推定装置100が設置される移動体の違いや、自己位置推定装置100が利用される状況に応じて、算出される自己位置の信頼性を高めることが可能になる。
【0076】
座標(t,τ)が、累積値の山に入っている間の参照動画像の時間τを、便宜上、τ=τstartからτ=τendまでの時間として表現する(τ∈[τstart,τend]:但し、1≦τstart≦τ≦τend≦T)。座標(t,τ)が累積値の山に入ったと判断された時間(つまりτ=τstart)から、累積値の山から出たと判断される直前の時間(つまりτ=τend)までの間(τ∈[τstart,τend])、座標(t,τ)が累積値の山に入っており、山に入っている時に撮影された入力動画像が、時間τstartから時間τendまでの参照動画像に類似した状態であったと判断される。
【0077】
座標(t,τ)が累積値の山には入っている間、マッチング処理部26は、動的計画法を用いることにより、スターティングポイントから最適な類似関係を維持する終端点までの区間を、全ての時間τ(1≦τ≦T)の座標に基づいて、時間tが経過する毎に算出する。スターティングポイントは、上述した条件を満たす場合に設定されるため、動的計画法が適用される1番始めの座標が、時間の経過とともに変更されることになる。従来の動的計画法では、τ=1となる座標、つまり1番始めの座標をスターティングポイントに設定して、マッチング処理を行っていた。この点において、本実施の形態で利用する動的計画法、つまり「Partial連続DP」は、従来の動的計画法と異なっている。
【0078】
マッチング処理部26は、局所相関ρ(t,τ)の累積値S(t,τ)を、以下の漸化式・式2に基づいて算出し、局所データ記録部27に記録させる。
【数1】
・・・式2
【0079】
式2から明らかなように、累積値S(t,τ)を求めるために、tの値がt-1やt-2の場合の累積値S(t,τ)の値(例えば、S(t-1,τ+2),S(t-1,τ+1),S(t-2,τ+1),S(t-1,τ),S(t-2,τ-1),S(t-1,τ-1)またはS(t-1,τ-2)の値)が必要である。また、同様に、累積値S(t,τ)を求めるために、tの値がt-1の場合の局所相関ρ(t,τ)の値(例えば、ρ(t-1,τ))が必要である。このため、局所データ記録部27は、過去の処理において算出された累積値S(t,τ)や局所相関ρ(t,τ)を記録し、マッチング処理部26は、必要に応じて過去に算出された累積値S(t,τ)や局所相関ρ(t,τ)を、後の処理時に局所データ記録部27から読み出して、累積値S(t,τ)の算出を行う。
【0080】
局所データ記録部27に記録される累積値S(t,τ)や局所相関ρ(t,τ)のうち、マッチング処理部26等によって後の処理時に使用できない古いデータは、局所相関算出部25、マッチング処理部26および局所データ記録部27のいずれかにより、所定のタイミングで削除される。古いデータを削除することにより、局所データ記録部27に記録されるデータ量の肥大化を防ぐことができる。
【0081】
図7(a)は、式2の内容を説明するための図である。図7(b)は、式2により選択されたパスに従って、時間経過に応じて座標(t,τ)が遷移する様子の一例を、模式的に示した図である。図7(a)(b)における(1)~(9)は、漸化式により選択されたパスの種類を示している。
【0082】
マッチング処理部26では、図7(a)および式2に示すように、局所相関ρ(t,τ)における最適な累積値S(t,τ)を求めるため、予め複数通りのパスの選択肢を用意している。この選択肢の集合を傾斜制限と称する。傾斜制限は、参照動画像のベクトル特徴系列Z(特徴ベクトルz(τ))と入力動画像のベクトル特徴系列F(特徴ベクトルf(t))とにおいて、局所的に適用する線形・非線形の対応範囲を定めたものである。また、傾斜制限の各パスには、市街地距離の長さに対応する重みが付加される。図7(a)に示した傾斜制限では、パス毎の市街地距離の長さに比例した(或いは、等しい)重み付けが設定されている。パスの選択肢は、任意に構成することができるが、本実施の形態では、9つのパスの選択肢が設定されており、この選択肢を用いて、最適な累積値S(t,τ)を算出する。
【0083】
図7(a)に示した傾斜制限には、参照動画像を撮影した車両の進行方向と入力動画像を撮影する車両の進行方向とが同じ方向(順方向)の場合の制限と、逆方向の場合の制限とが含まれている。
【0084】
具体的に、順方向の傾斜制限とは、参照動画像のベクトル特徴系列Zの時間進行をy軸で示し、入力動画像のベクトル特徴系列Fの時間進行をx軸で示して、参照動画像のベクトル特徴系列Zの時間を原点からy軸の増加方向(図7(a)の上方向)に進行させ、入力動画像のベクトル特徴系列Fの時間を原点からx軸の増加方向(図7(a)の右方向)に進行させることにより、傾斜制限を行うことを意味している。一方で、参照動画像のベクトル特徴系列Zの時間を原点からy軸の減少方向(図7(a)の下方向)に進行させ、入力動画像のベクトル特徴系列Fの時間を原点からx軸の増加方向(図7(a)の右方向)に進行させることにより、傾斜制限を行う場合は、逆方向の傾斜制限となる。さらに、図7(a)に示す傾斜制限には、参照動画像を撮影した車両が停止している状態で、入力動画像を撮影する車両が動いている場合の制限も含まれている。
【0085】
図7(a)に示した(2)~(5)のパスは、逆方向の傾斜制限に対応するパスを示し、図7(a)に示した(6)~(9)のパスは、順方向の傾斜制限に対応するパスを示している。なお、図7(a)の(5)および(9)のパスは、時刻tの前後における入力動画像の画像データ(特徴ベクトル)が変化するが、参照動画像の画像データ(特徴ベクトル)は変化しない場合を示している。例えば、入力動画像を撮影する車両は進行しているが、参照動画像を撮影した車両が対応するタイミングで停止している場合に該当する。
【0086】
つまり、入力動画像を撮影する車両が進行した瞬間の入力動画像の特徴ベクトルが、順方向(図7(a)の(9)の場合)或いは逆方向(図7(a)の(5)の場合)の参照動画像の特徴ベクトルに類似することになる。この場合、入力動画像を撮影する車両が、類似する景色を撮影した参照動画像の撮影場所を、一気に通過した状態と等しくなる。このため、時間tが経過した瞬間に、図7(a)の上下方向(Y軸・上下軸に平行な方向)にパスが進むことになる。
【0087】
図7(a)の(5)のパスは、入力動画像のベクトル特徴系列Fの時間が進行した瞬間に、参照動画像のベクトル特徴系列Zが-1単位だけ進むことを意味し、(9)のパスは、入力動画像のベクトル特徴系列Fの時間が進行した瞬間に、参照動画像のベクトル特徴系列Zが1単位だけ進むことを意味している。
【0088】
また、図7(a)の(1)のパスは、入力動画像の撮影状態が続く(時刻tは変化する)が、その時間tの前後における入力動画像の画像データ(特徴ベクトル)に変化がなく、また、参照動画像の画像データ(特徴ベクトル)にも変化がない場合を示している。(1)のパスは、入力動画像のベクトル特徴系列Fの時間が1単位進行しても、対応する参照動画像のベクトル特徴系列Zの時間の進行がない場合に該当する。例えば、入力動画像を撮影する車両が停止した状態であり、さらに、参照動画像を撮影した車両が、対応するタイミングで停止した状態となる場合である。
【0089】
次に、図7(a)に示した(2)~(4)、(6)~(8)のパスの状態を説明する。(2)のパスは、入力動画像のベクトル特徴系列Fの時間が2単位進むにときに、参照動画像のベクトル特徴系列Zが-1単位進むことを意味している。つまり、(2)のパスの場合は、参照動画像のベクトル特徴系列Zに対して、入力動画像のベクトル特徴系列Fの進行が2倍の速さとなり、非線形性な関係を示している。(3)のパスは、入力動画像のベクトル特徴系列Fにおいて、1単位進行する時間長と、参照動画像の特徴系列Zにおいて-1単位進行する時間長が同じ長さであることを意味しており、線形な関係を示している。(4)のパスは、入力動画像のベクトル特徴系列Fの時間が1単位進行するとき、参照動画像のベクトル特徴系列Zの時間が2倍の-2単位進行することを意味しており、非線形な関係を示している。
【0090】
図7(a)に示す(6)のパスは、入力動画像のベクトル特徴系列Fの時間が2単位進むにときに、参照動画像のベクトル特徴系列Zが1単位進むことを意味している。つまり、(6)のパスの場合は、参照動画像のベクトル特徴系列Zに対して、入力動画像のベクトル特徴系列Fの進行が2倍の速さとなり、非線形な関係を示している。(7)のパスは、入力動画像のベクトル特徴系列Fにおいて1単位進行する時間長と、参照動画像のベクトル特徴系列Zにおいて1単位進行する時間長が同じ長さであることを意味しており、線形な関係を示している。(8)のパスは、入力動画像のベクトル特徴系列Fの時間が1単位進行するとき、参照動画像のベクトル特徴系列Zの時間が2倍の2単位時間進行することを意味しており、非線形な関係を示している。
【0091】
さらに、上述した漸化式において、図7(a)に示す(1)から(9)までの選択肢に該当しない場合が考えられる。この場合をno path selectionと称し、マッチング処理部26は、累積値S(t,τ)を0(ゼロ)に設定する。座標(t,τ)に至る最適なパスは、スターティングポイントからの市街地距離L(t,τ)により制御される。この市街地距離L(t,τ)は、累積値の山に含まれる該当するベクトル特徴系列の時間の長さによって異なる。最適累積距離を比較するためには、累積値S(t,τ)を市街地距離L(t,τ)で割った平均を算出する。つまり、累積値S(t,τ)の区間平均を、S(t,τ)/L(t,τ)で算出する。
【0092】
平均累積値S(t,τ)/L(t,τ)≧hを算出するためには、市街地距離L(t,τ)を求める必要がある。図7(a)に示す(1)から(9)までのいずれかのパスが選択された場合、マッチング処理部26は、選択されたパスに応じて、つまり、式2でS(t,τ)を算出するために用いられた式(値がmaxとなる式)に応じて、以下の計算アルゴリズムによって市街地距離L(t,τ)を求める。
【0093】
漸化式の1番目の式(図7(a)に示す(4)のパス)が、漸化式におけるmax計算で選択された場合、市街地距離L(t,τ)は、L(t,τ)=L(t-1,τ+2)+3によって算出される。
【0094】
漸化式の2番目の式(図7(a)に示す(3)のパス)が、漸化式におけるmax計算で選択された場合、市街地距離L(t,τ)は、L(t,τ)=L(t-1,τ+1)+2によって算出される。
【0095】
漸化式の3番目の式(図7(a)に示す(2)のパス)が、漸化式におけるmax計算で選択された場合、市街地距離L(t,τ)は、L(t,τ)=L(t-2,τ+1)+3によって算出される。
【0096】
漸化式の4番目の式(図7(a)に示す(5)のパス)が、漸化式におけるmax計算で選択された場合、市街地距離L(t,τ)は、L(t,τ)=L(t,τ+1)+1によって算出される。
【0097】
漸化式の5番目の式(図7(a)に示す(1)のパス)が、漸化式におけるmax計算で選択された場合、市街地距離L(t,τ)は、L(t,τ)=L(t-1,τ)+1によって算出される。
【0098】
漸化式の6番目の式(図7(a)に示す(9)のパス)が、漸化式におけるmax計算で選択された場合、市街地距離L(t,τ)は、L(t,τ)=L(t,τ-1)+1によって算出される。
【0099】
漸化式の7番目の式(図7(a)に示す(6)のパス)が、漸化式におけるmax計算で選択された場合、市街地距離L(t,τ)は、L(t,τ)=L(t-2,τ-1)+3によって算出される。
【0100】
漸化式の8番目の式(図7(a)に示す(7)のパス)が、漸化式におけるmax計算で選択された場合、市街地距離L(t,τ)は、L(t,τ)=L(t-1,τ-1)+2によって算出される。
【0101】
漸化式の9番目の式(図7(a)に示す(8)のパス)が、漸化式におけるmax計算で選択された場合、市街地距離L(t,τ)は、L(t,τ)=L(t-1,τ-2)+3によって算出される。
【0102】
上述した漸化式において、1番目から9番目までのいずれの式も選択されなかった場合(no path selectionに該当する場合)、つまり、(1)~(9)のいずれかのパスが選択されなかった場合に、マッチング処理部26は、市街地距離L(t,τ)を、L(t,τ)=0に設定する。
【0103】
マッチング処理部26は、L(t,τ)がLより大きいか(L(t,τ)>L)を判断し、L(t,τ)>Lの場合には、時間1から時間Tまでの全てのτについて、S(t,τ)/L(t,τ)を算出する。そして、算出したS(t,τ)/L(t,τ)の値がh以上となる全てのS(t,τ)/L(t,τ)の値の中から、下記式3に示すように、最も値が大きくなるS(t,τ)/L(t,τ)の時間τを、値τ(t)として求める。
【数2】
・・・式3
値τ(t)は、式3に示すように、時間τに基づいて算出されたS(t,τ)/L(t,τ)の中で、値が最も大きくなる時の時間τを表している。
【0104】
マッチング処理部26は、算出された時間τの情報(τ(t))と、時間τ(t)に対応する時間tの情報とを、自己位置推定部28に出力する。
【0105】
図8および図9は、マッチング処理部26によって実行されるマッチング処理の具体的な処理内容を示したフローチャートある。図8および図9に示す処理を行う前に、マッチング処理部26は、初期値の設定を行う。具体的に、マッチング処理部26は、時間tに対してt=0を設定し、時間1から時間Tまでの時間τに関する累積値(累積局所相関)S(0,τ)の値に0を設定(S(0,τ)=0:但し、τ=1、2、・・・、T-1、T)し、時間1から時間Tまでの時間τに関する市街地距離L(0,τ)の値に1を設定(L(0,τ)=1:但し、τ=1,2,・・・,T-1,T)する。そして、マッチング処理部26は、初期値の設定が行われたS(0,τ)およびL(0,τ)を、局所データ記録部27に記録させる。
【0106】
その後、マッチング処理部26は、時間tが1増加(1経過)する毎に、上述した図8および図9の処理を行う。まず、マッチング処理部26は、局所データ記録部27に記録された、時間1から時間Tまでの時間τに関する局所相関ρ(t,τ)を読み出して(S.31)、動的計画法を用いてt―τ平面における最適な座標(t,τ)を求める処理を行う(S.32)。そして、マッチング処理部26は、局所データ記録部27より、時間1から時間Tまでの時間τに関するS(t-1,τ)および、時間1から時間Tまでの時間τに関するL(t-1,τ)を読み出す(S.33)。
【0107】
S(0,τ)の値およびL(0,τ)の値は、初期値の設定においてマッチング処理部26により予め設定されて、局所データ記録部27に記録されている。このため、tが1の場合(t=1)、マッチング処理部26は、局所データ記録部27からS(0,τ)およびL(0,τ)の読み出し処理を行う。一方で、tが1より大きい場合、後述する処理(S.40)によって、マッチング処理部26により、S(t,τ)およびL(t,τ)が局所データ記録部27に記録されることになる。このため、時間tが1増加する毎に、マッチング処理部26は、局所データ記録部27から、S(t-1,τ)およびL(t-1,τ)を読み出す処理を行う。
【0108】
そして、マッチング処理部26は、読み出されたS(t-1,τ)に対して、局所相関ρ(t,τ)を加算することにより、S(t,τ)を算出し(S.34)、読み出されたL(t-1,τ)に対して、最適な座標(t-1,τ)から最適な座標(t,τ)までの移動距離を加算することによって、市街地距離L(t,τ)を算出する(S.35)。なお、S(t,τ)は、単純にS(t-1,τ)に対してρ(t,τ)を加算して求められるものに限定されない。式2を用いて説明したように、最適な座標(t,τ)に到達するためのパスに応じて、S(t,τ)を算出する式が異なり、さらにパスに応じて求められたS(t,τ)のうち最大値を示すS(t,τ)が、最適なS(t,τ)として求められる。このため、マッチング処理部26は、局所データ記録部27より、想定するパスの数に応じて、S(t-1,τ)だけでなく、S(t-1,τ+2),S(t-1,τ+1),S(t-2,τ+1),S(t-1,τ),S(t-2,τ-1),S(t-1,τ-1),S(t-1,τ-2)の値を読み出して、S(t,τ)の算出を行う。
【0109】
同様にして、マッチング処理部26は、局所データ記録部27より、想定するパスの数に応じてL(t-1,τ)だけでなく、L(t-1,τ+2),L(t-1,τ+1),L(t-2,τ+1),L(t,τ+1),L(t,τ-1),L(t-2,τ-1),L(t-1,τ-1),L(t-1,τ-2)の値を読み出して、L(t,τ)の算出を行う。
【0110】
そして、マッチング処理部26は、算出されたS(t,τ)とL(t,τ)とに基づいて、S(t,τ)/L(t,τ)を算出(S.36)し、算出されたS(t,τ)/L(t,τ)が所定の閾値h未満であり(S(t,τ)/L(t,τ)<h)、かつ、局所相関ρ(t,τ)≒0に該当するか否かの判断を行う(S.37)。
【0111】
S(t,τ)/L(t,τ)<h、かつ、ρ(t,τ)≒0の条件を満たす場合(S.37でYes)、マッチング処理部26は、該当する座標(t,τ)をスターティングポイントに設定する(S.38)。さらに、マッチング処理部26は、S(t,τ)の値に0を設定(S(t,τ)=0)するとともに、L(t,τ)の値に1を設定(L(t,τ)=1)する(S.39)。そして、マッチング処理部26は、S(t,τ)の値と、L(t,τ)の値とを、局所データ記録部27に記録させる(S.40)。
【0112】
このように、局所データ記録部27に対して、S(t,τ)の値(S(t,τ)=0)とL(t,τ)の値(L(t,τ)=1)とを記録させることにより、時間tが1増加されて、図8および図9に示す処理が再度実行された場合に、上述したS.33で説明したように、S(t-1,τ)の値として0が読み出され(S(t-1,τ)=0)、L(t-1,τ)の値として1が読み出される(L(t,τ)=1)ことになる。
【0113】
一方で、S(t,τ)/L(t,τ)<h、かつ、ρ(t,τ)≒0の条件を満たさない場合(S.37でNo)、マッチング処理部26は、スターティングポイントの設定を行わず、S.34およびS.35において算出されたS(t,τ)の値と、L(t,τ)の値とを、そのまま局所データ記録部27に記録させる(S.40)。
【0114】
次に、マッチング処理部26は、市街地距離L(t,τ)が、所定の値L以下(L(t,τ)≦L)であるか否かの判断を行う(S.41)。市街地距離L(t,τ)が、所定の値Lより大きい(S,41でNo)の場合、マッチング処理部26は、時間1から時間Tまでの全てのτについてS(t,τ)/L(t,τ)を算出し、算出された時間1から時間Tまでの全てのτについてのS(t,τ)/L(t,τ)の値の中に、閾値h以上となるS(t,τ)/L(t,τ)が存在するかどうか(S(t,τ)/L(t,τ)≧h?)を判断する(S.42)。
【0115】
S(t,τ)/L(t,τ)≧hを満たすS(t,τ)/L(t,τ)が存在する場合(S.42でYes)、マッチング処理部26は、S(t,τ)/L(t,τ)≧hを満たすS(t,τ)/L(t,τ)の中から、最も値が大きくなるS(t,τ)/L(t,τ)の時間τをτ(t)として求める(S.43)。マッチング処理部26は、求めた時間τ(t)と時間tとを、自己位置推定部28に出力して(S.44)処理を終了する。
【0116】
一方で、市街地距離L(t,τ)が、所定の値L以下の場合(S,41でYes)、または、閾値h以上となるS(t,τ)/L(t,τ)が存在しない場合(S.42でNo)、マッチング処理部26は、そのまま処理を終了する。
【0117】
図8および図9に示す処理を終了した後、マッチング処理部26は、次に時間tが単位時間だけ経過(時間tが1増加)して、局所データ記録部27に新たな局所相関ρ(t,τ)が記録されたタイミングで、入力動画像の新たな特徴ベクトルf(t)等を用いて、図8および図9に示したマッチング処理を繰り返し実行する。なお、繰り返し図8および図9に示す処理を実行する場合には、上述した初期値の設定(t=0,S(0,τ)=0,L(t,τ)=1の設定)を行う必要はない。
【0118】
自己位置推定部28は、マッチング処理部26から取得した時間tおよび時間τ(t)に基づいて、入力動画像が撮影された位置の推定処理(自己位置推定処理)を行う。上述したように、入力動画像の特徴ベクトルf(t)と参照動画像の特徴ベクトルz(τ)とが、マッチング処理部26によって類似していると判断された場合、それぞれの時間t、時間τ(t)は、自己位置推定部28に出力される(図9のS.44)。自己位置推定部28は、取得した時間tに対応する時間τ(t)を用いて、参照動画像用データ記録部22に記録される参照動画像の複数の画像データの中から時間τ(t)に撮影された画像データを特定し、特定した画像データに関連付けて(特定した画像データの特徴ベクトルに関連付けて)記録された位置情報を取得する。自己位置推定部28は、時間tに撮影された入力動画像の撮影位置を、参照動画像用データ記録部22より取得した時間τ(t)の画像データ(時間τの特徴ベクトル)の位置情報に基づいて推定する。自己位置推定部28には、図2に示すように表示部6が接続されており、表示部6に、推定された位置情報等が表示される。
【0119】
なお、マッチング処理部26および自己位置推定部28は、必要に応じて、自己推定位置の信頼度を求めることができる。自己推定位置の信頼度k(t,τ)は、下記の式4に基づいて算出される。
【数3】
・・・式4
【0120】
k(t,τ)は、τに関してS(t,τ)/L(t,τ)が最大となる値を示している。k(t,τ)の値が大きいほど、入力動画像を撮影した時間tにおける自己位置推定の信頼度が高くなる。つまり、k(t,τ)の値が大きいほど、時間τ(t)の推定自己位置が、参照動画像を撮影した経路上の位置に近いと判断できる。信頼度k(t,τ)も、必要に応じて表示部6に表示することが可能になっている。自己位置推定部28は、信頼度k(t,τ)を算出するために必要な累積値S(t,τ)および市街地距離L(t,τ)を、局所データ記録部27より読み出して、信頼度k(t,τ)の算出を行う。
【0121】
図10は、参照動画像を撮影した車両の走行状態を示した経路(航路、軌跡)であって、入力動画像が、参照動画像に類似していると判断された経路(τ=τstartからτ=τendまでの走行経路)を示した模式図である。既に説明したように、S(t,τ)/L(t,τ)≧hかつ、L(t,τ)>Lの場合に、参照動画像と入力動画像とが類似すると判断される。類似すると判断された場合、マッチング処理部26或いは自己位置推定部28により算出される信頼度k(t,τ)が大きいほど、入力動画像を撮影した車両が、図10に示す参照動画像の経路上を走行した可能性が高くなり、推定された自己位置の信頼性が高くなる。
【0122】
例えば、カメラ1を設置した車両の走行車線が2車線であって、参照動画像を撮影した時に左側車線を走行し、入力動画像を撮影した時に右側車線を走行する場合、参照動画像の画像データと入力動画像の画像データとは、互いに類似したデータとなるが、全く同じ画像データにはならない。さらに、参照動画像を撮影した時に道路の上り車線を走行し、入力動画像を撮影した時に道路の下り車線(対向車線)を走行する場合、カメラ1で撮影された入力動画像の画像データは、参照動画像を逆回しした動画像の画像データに類似していると判断され得るが、上述したような2車線の走行車線の左右それぞれを走行していて類似すると判断される場合よりも、類似度が低下するはずである。
【0123】
また、参照動画像を撮影した車両が道路の上り車線を走行し、入力動画像を撮影する車両が同じ道路の下り車線を走行する場合、参照動画像の時間軸と入力動画像の時間軸とが、撮影された映像の出力順序において逆になり、さらに、撮影される映像も左右逆になってしまう。撮影された映像の出力順序が逆になる点に関しては、式2を示して説明したように、Partial連続DPの順方向と逆方向とを扱うことが可能な9本の局所パスを用いることにより、対応する(順序が逆になる不具合を吸収する)ことができる。また、撮影される映像が左右逆になってしまう点に関しては、360度カメラにより撮影された映像の特徴に対して、RGB画素のヒストグラムを用いることにより、左右反対の画像が特徴ベクトルにおいて同じベクトルになる。
【0124】
このように、入力動画像と参照動画像との類似度をどの程度許容するかにより、位置情報の推定精度が異なってくる。位置推定を行うエリアの周囲状況や、自己位置推定処理によって求められた位置情報の利用目的等に応じて、k(t,τ)に基づく許容度の基準値を予め設定しておくことにより、k(t,τ)がどの程度の値であれば、類似すると判断して問題ないかの目安とすることができる。
【0125】
また、入力動画像を撮影するカメラ1を搭載した移動体が、道路上を走行する自動車や、線路上を走行する電車等ではなく、予め想定した移動経路をそれてしまう場合も考えられる。例えば、ロボットやドローンにカメラ1を設置して移動する場合等が該当する。このような場合、k(t,τ)による位置情報の信頼度の値は、自己位置の推定結果の有効性を判断する目安として有用なものとなる。
【0126】
以上説明したように、自己位置推定装置100は、入力動画像の時間tの画像データに基づいて算出された特徴ベクトルと、参照動画像の時間τの画像データに基づいて算出された特徴ベクトルとを用いて、局所相関ρ(t,τ)を算出し、さらに累積値S(t,τ)と市街地距離L(t,τ)とに基づいて、平均累積値S(t,τ)/L(t,τ)を算出した上で、S(t,τ)/L(t,τ)<h、かつ、ρ(t,τ)≒0を満たす場合に、該当する座標(t,τ)をスターティングポイントに設定する。このようにして、座標(t,τ)をスターティングポイントに設定することにより、このスターティングポイントを起点として、既に説明したPartial連続DPを適用することが可能になる。
【0127】
スターティングポイントは、S(t,τ)/L(t,τ)<h、かつ、ρ(t,τ)≒0を満たす座標であれば、必ずしも時間τの最初の時間(τ=1)の座標には限定されず、τ=1からτ=Tまでの全ての時間τの座標を、スターティングポイントとして利用することができる。この点で、最初の座標(時間τ=1の座標)だけをスターティングポイントとして設定し、このスターティングポイントから時間τ=Tとなる最終座標までの最適パスを求めてバックトレース処理を行う従来の動的計画法と、本実施の形態に係るPartial連続DPとは、明らかに処理内容が相違する。
【0128】
また、上述したように、自己位置推定装置100および動画像マッチング装置90では、τ=1からτ=Tまでの全ての時間τのうちS(t,τ)/L(t,τ)<h、かつ、ρ(t,τ)≒0を満たす座標(t,τ)をスターティングポイントに設定して、このスターティングポイントに基づいて動的計画法を適用することができる。このため、参照動画像の全ての時間の動画像ではなく、参照動画像の一部の任意の長さ(部分時間)だけが、入力動画像と類似する場合であっても、動画像の類似判断(マッチング処理)を行うことができる。
【0129】
また、自己位置推定装置100のマッチング処理部26は、市街地距離L(t,τ)の値が、所定の値Lより大きく(L(t,τ)>L)、S(t,τ)/L(t,τ)の値の中に、閾値h以上となるS(t,τ)/L(t,τ)が存在し、S(t,τ)/L(t,τ)≧hを満たすS(t,τ)/L(t,τ)の中から最も値が大きくなるS(t,τ)/L(t,τ)の時間τをτ(t)として求める。
【0130】
S(t,τ)/L(t,τ)≧h、かつ、L(t,τ)>Lを満たす場合、マッチング処理部26は、参照動画像と入力動画像とが類似した状態(マッチングした状態)を維持していると判断し、参照動画像における時間τの画像データ(特徴ベクトル)と、入力動画像における時間tの画像データ(特徴ベクトル)とが、単位時間だけ単純に類似しているか否かではなく、それ以前(S(t,τ)/L(t,τ)≧h、かつ、L(t,τ)>Lを満たす以前)から、時間tおよび時間τまでの連続した画像データ群が、互いに類似している(マッチングしている)か否かを判断する。従って、マッチング処理部26は、参照動画像と入力動画像との互いの画像データが1枚だけ類似(マッチング)しているかどうかではなく、画像データ群(複数の連続した画像データ)を動画像として捉えた上で、互いの動画像(画像データ群)が類似しているか否かの判断を行うことが可能になる。
【0131】
このとき、部分区間の最適マッチングは、部分区間の長さが違っても、類似区間がマッチングしていることによって、連続した時間において自己位置の推定処理が行われることになる。このために、スターティングポイントの設定も、その自己位置推定の連続性が保たれるアルゴリムとなっている。
【0132】
さらに、参照動画像の画像データ(特徴ベクトル)に位置情報を関連付けしておくことにより、入力動画像の画像データに類似した参照動画像の画像データの位置情報に基づいて、入力動画像を撮影した時の位置を推定することができる。つまり、自己位置推定装置100を用いることにより、入力動画像を撮影した場所を、参照動画像との類似関係(マッチング状態)から、容易に推定することが可能になる。
【0133】
特に、自己位置推定装置100は、入力動画像に類似した参照動画像の時間τ(t)を、式3に基づいて求めることができる。このため、参照動画像の画像データ(特徴ベクトル)に位置情報を関連付けしておくことにより、リアルタイムに撮影された入力動画像の画像データに基づいて、自己位置の推定処理を行うことができる。このとき、参照画像への位置情報の紐づけは、厳密でなくてよく、例えば、ランドマークだけでもよい。動画像自体が地図の役割をしており、推定される自己位置は動画像のフレーム画像と対応することになる。
【0134】
さらに、自己位置推定処理により求められた位置情報の信頼度を、k(t,τ)に基づいて評価することができる。このため、信頼度k(t,τ)を、推定された自己位置(入力動画像の撮影位置)の信頼の目安として用いることができる。
【0135】
また、自己位置推定装置100は、入力動画像を撮影した位置を、参照動画像の画像データとの類似関係(マッチング状態)に基づいて推定することができるため、Lidarやステレオ法による距離測定を行うことなく、自己位置推定処理を行うことができる。このため、自己位置推定装置100による自己位置推定処理では、SLAMとは異なり、3次元地図を作成する処理が不要になる。
【0136】
さらに、自己位置推定装置100では、入力動画像が参照動画像に完全に一致しているかどうかでなく、類似しているかどうかによって、自己位置の推定処理を行っている。つまり、自己位置推定装置100では、自己位置の推定処理において、互いの動画像の一致精度の高さではなく、ロバスト性を考慮した自己位置推定処理を実現することが可能になる。
【0137】
例えば、参照動画像を撮影した時に車両が移動した経路と、入力動画像を撮影した時に車両が移動した経路とが一致している場合であっても、撮影した時間帯の相違(朝、昼、夕、夜などの周囲の状況の違い)、周囲を走行する車両や人などの数や有無等の違いがある。本発明に係る動画像マッチング装置のマッチング処理や、自己位置推定装置の自己位置推定処理では、上述したようなロバスト性を考慮した処理を行うことができるので、周囲の状況の変化等に柔軟に対応させつつ、目的に沿ったマッチング結果や自己位置の推定結果を得ることが可能になる。また、先に述べたように、GPSなどが使えない室内やトンネルなどであっても、影響を受けることなく自己位置の推定結果を得ることが可能である。
【0138】
また、参照動画像が有限な時間長の動画像(時間1から時間Tまでの動画像)であることから、動画像マッチング装置90のマッチング処理や自己位置推定装置100の自己位置推定処理に必要な演算量を、抑制することが可能になるとともに、演算処理に必要なメモリ量を低減させることが可能になる。
【0139】
さらに、自己位置推定装置100が自己位置推定処理を行う場合、自己位置推定される場所は、時間的にも距離的にも過去に見つけた場所の近傍になることが多い。このため、時間t(t)を探す場合には、それ以前の時間t(t-1)の近傍である可能性が高くなり、時間τの検索範囲を狭めることが可能になる。
【0140】
以上、本発明に係る動画像マッチング装置および自己位置推定装置について、実施の形態を示して説明したが、本発明に係る動画像マッチング装置および自己位置推定装置は、上述した実施の形態には限定されない。
【0141】
例えば、動画像マッチング装置90および自己位置推定装置100では、カメラ1として360度カメラを使用した。しかしながら、カメラ1は必ずしも360度カメラには限定されず、平面的に周囲の撮影を行うカメラであってもよい。また、カメラの設置向きも限定されない。例えば、平面的に周囲の撮影を行うカメラを用いる場合には、車両の前後方向(車両進行方向および後退方向)ではなく、車両の側方を撮影するようにカメラ1を設置することが好ましい。日本の道路は左側通行が基本であるため、例えば、車両の左側の様子をカメラ1で撮影することにより、中央分離帯等の変化に乏しい情報が継続的に撮影されてしまうことを避けることができる。
【0142】
また、平面的に周囲を撮影するカメラを使用する場合に、車両の左右方向のいずれか一方だけにカメラ1を設置するのではなく、両方にカメラ1をそれぞれ設置してもよい。左右両方にカメラ1を設置する場合、第1特徴ベクトル算出部23は、左右のそれぞれのカメラで撮影された1フレーム分の画像を結合して1つの画像データとして、特徴ベクトルを算出する。このようにして特徴ベクトルを算出すると、算出された特徴ベクトルの大きさは2倍になるが、左右のカメラで撮影されたそれぞれの動画像を区別することなく、マッチング処理および自己位置推定処理を行うことが可能になる。
【0143】
なお、2つの入力動画像の画像を結合させて特徴ベクトルを算出する場合、予め撮影される参照動画像も、車両の左右それぞれに設けられた2台のカメラによって撮影しておく必要がある。さらに、車両ではなく、ドローンのように空中を飛行する移動体にカメラ1を設置して、周囲の様子を撮影する場合には、移動体の下方向にカメラ1を向けて撮影を行うことが好ましい。
【0144】
また、動画像マッチング装置90および自己位置推定装置100では、式2に示すように、(2)~(5)で示した逆方向の傾斜制限に対応するパスと、(6)~(9)で示した順方向の傾斜制限に対応するパスと、(1)に示すパスとを備えた漸化式に基づいて、累積値S(t,τ)を算出した。しかしながら、累積値S(t,τ)を算出するための漸化式は、式2に示したような9種類のパスを想定したものには限定されない。例えば、(1)の傾斜制限と、(6)~(9)で示した順方向の傾斜制限との5種類の傾斜制限を備えた漸化式で、累積値S(t,τ)を算出する構成とすることも可能である。
【0145】
この場合、動画像マッチング装置90および自己位置推定装置100は、まず、参照動画像の時間τが、時間1から時間Tまで順方向に経過する場合の動画像の画像データ(特徴ベクトル)と、入力動画像の画像データ(特徴ベクトル)とのマッチング処理・自己位置推定処理を行う。この場合、漸化式において逆方向の傾斜制限が設けられていないため、順方向のマッチング処理・自己位置推定処理を行った後に、参照動画像の時間τが、時間Tから時間1まで逆方向に経過する動画(逆再生された動画)の画像データ(特徴ベクトル)と、入力動画像の画像データ(特徴ベクトル)とのマッチング処理・自己位置推定処理を行う。
【0146】
このように、順方向に時間が流れる参照動画像と入力動画像とのマッチング処理・自己位置推定処理の後に、逆方向に時間が流れる参照動画像と入力動画像とのマッチング処理・自己位置推定処理を行うことにより、式2に示す9種類のパスを想定した漸化式を用いてマッチング処理・自己位置推定処理を行った場合と同じ結果を求めることができる。
【0147】
さらに、上述した自己位置推定装置100では、スターティングポイントの設定、S(t,τ)=0およびL(t,τ)=1の設定を行うか否かの判断を、局所相関ρ(t,τ)が0にほぼ等しい値(ρ(t,τ)≒0)に該当するか否を用いて行った。しかしながら、上述したスターティングポイントの設定等の処理において利用される基準は、局所相関ρ(t,τ)が0にほぼ等しいか否かだけに限定されるものではない。例えば、局所相関ρ(t,τ)の代わりに、局所距離d(t,τ)を用いることも可能である。局所距離d(t,τ)は、次の式5に基づいて算出される。
d(t,τ)= ||f(t)-z(τ)|| /(||f(t)||+||z(τ)||)
・・・式5
局所距離d(t,τ)が1にほぼ等しい値(d(t,τ)≒1)であって、かつ、S(t,τ)/L(t,τ)>hの場合に、該当する座標(t,τ)をスターティングポイントとして設定し、S(t,τ)=∞およびL(t,τ)=1の設定を行う構成とすることも可能である。
【0148】
局所距離d(t,τ)が1にほぼ等しい値(d(t,τ)≒1)の場合、マッチング処理部26は、座標(t,τ)が累積値S(t,τ)の谷(局所相関ρの場合(山)とは逆になる)に入ったと判断する。この場合には、式2に換えて、以下の式6に示す漸化式に基づいて、局所距離d(t,τ)の累積値S(t,τ)を算出する。
【0149】
【数4】
・・・式6
【0150】
この場合、図2に示した局所相関算出部25は、局所距離算出部(局所距離算出手段)という機能部となり、図5のS.14の処理を、局所相関ρ(t,τ)の算出処理から局所距離d(t,τ)の算出処理に換える必要がある。また、S.15の処理において局所データ記録部27に記録させる情報を、局所相関ρ(t,τ)でなく、局所距離d(t,τ)に変更する。さらに、マッチング処理部26により実行される初期値の設定を、時間tをt=0に設定するとともに、S(t,τ)=∞、L(t,τ)=1の設定を行う内容に変更する。また、図8のS.31において読み出す情報を、「局所相関ρ(t,τ)」から「局所距離d(t,τ)」に変更し、S.37の処理を「S(t,τ)/L(t,τ)>h、かつ、d(t,τ)≒1?」に変更する。さらに、S.34における累積値S(t,τ)の算出処理において、上述した式6の漸化式を用いるとともに、S.39における処理内容を、「S(t,τ)に∞を設定、L(t,τ)に1を設定」に変更する。また、S.42の判断を「閾値h以下となるS(t,τ)/L(t,τ)が存在するか?」に変更し、S.43の処理を「マッチング処理部26は、S(t,τ)/L(t,τ)≧hを満たすS(t,τ)/L(t,τ)の中から、最も値が大きくなるS(t,τ)/L(t,τ)の時間τをτ(t)として求める」に変更する。
【0151】
このように局所距離d(t,τ)に関する変更を行った上で、適切に処理を行うことにより、Partial連続DPを用いて、入力動画像に類似する参照動画像が存在するか否かを判断する。この判断処理の結果、互いの動画像が類似すると判断された場合、自己位置推定部28は、類似すると判断された時間τに関する参照動画像の位置情報に基づいて、入力動画像を撮影した時の自己位置推定処理を行うことが可能になる。
【0152】
なお、局所相関ρ(t,τ)の値に関する判断処理(ρ(t,τ)≒0)や、局所距離d(t,τ)の値に関する判断処理(d(t,τ)≒1)の判断基準を明確にするために、0に近い正の値をεとして設定することも可能である。この設定により、局所相関ρ(t,τ)が0にほぼ等しい値かどうかの判断を「ρ(t,τ)≦ε」を満たすか否かで判断し、局所距離d(t,τ)が1にほぼ等しい値かどうかの判断を、「d(t,τ)≧1-ε」を満たすか否かで判断することができる。実験などを繰り返してεの値を予め決定することにより、入力動画像の時間tの画像データと参照動画像の時間τの画像データとが類似するか否かの判断基準を明確にすることができる。さらに、εの値を自己位置推定装置100等の利用環境等に応じて調整することにより、自己位置の精度を、利用環境・利用状況等に応じて調整することが可能になる。
【0153】
さらに、本発明に係る参照動画像として、予め撮影されたドライブレコーダの動画像やGoogle ストリートビュー(登録商標)に基づいて作成された動画像などを用いることができる。このため、自己位置推定処理の対象となり得る広域エリアを、カメラを設置した車両で実際に走行して、予め周囲の動画像を参照動画像として撮影しておく必要はない。つまり、様々な動画像を参照動画像として利用して、自己位置推定装置で自己位置推定処理を行うことが可能である。
【符号の説明】
【0154】
1 …カメラ
2 …CPU(制御手段)
3 …ROM
4 …RAM
5 …記録部(第1記録手段)
6 …表示部
20 …A/D変換部
21 …バッファーメモリ
22 …参照動画像用データ記録部(第1記録手段)
23 …第1特徴ベクトル算出部(第1特徴ベクトル算出手段)
24 …第2特徴ベクトル算出部
25 …局所相関算出部(局所相関算出手段、局所距離算出手段)
26 …マッチング処理部(初期値設定手段、累積値算出手段、市街地距離算出手段、スターティングポイント設定手段、マッチング処理手段)
27 …局所データ記録部(第2記録手段)
28 …自己位置推定部
90 …動画像マッチング装置
100 …自己位置推定装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10