(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-25
(45)【発行日】2024-05-08
(54)【発明の名称】点群管理装置及びプログラム
(51)【国際特許分類】
G09B 29/00 20060101AFI20240426BHJP
G06T 11/60 20060101ALI20240426BHJP
【FI】
G09B29/00 Z
G06T11/60 300
(21)【出願番号】P 2021053264
(22)【出願日】2021-03-26
【審査請求日】2023-03-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】小森田 賢史
【審査官】安田 明央
(56)【参考文献】
【文献】国際公開第2018/221455(WO,A1)
【文献】特開2011-215052(JP,A)
【文献】特開2002-189412(JP,A)
【文献】特開2002-157576(JP,A)
【文献】米国特許出願公開第2019/0266772(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09B 29/00
G06T 11/60
(57)【特許請求の範囲】
【請求項1】
フィールドの地図情報として構築された点群を
データベースに記録して管理する点群管理装置であって、
前記フィールドの各所において既に撮像されて得られている画像より前記フィールドの地図情報として点群を構築したうえで、前記点群の各点について、3次元座標と特徴量と重要度とを少なくとも
前記データベースに記録する第1処理と、
前記フィールドで
新規に撮像された
画像である新規画像より新規特徴点及び対応する
新規特徴量を抽出する第2処理と、
前記
新規特徴量を照合することで前記
データベースからマッチする点を探索する第3処理と、
前記新規特徴点のうち前記マッチしなかった点を、少なくともその3次元座標と特徴量と重要度と共に前記
データベースに追加登録する第4処理と、
前記
データベースに記録されている点
であって前記マッチしなかった点のうち、前記新規特徴点
であって前記マッチした点の近傍の点の重要度を低めるよう更新する第5処理と、
前記更新された重要度が閾値判定で低い点について、前記
データベースから削除する第6処理と、を実行することを特徴とする点群管理装置。
【請求項2】
前記第2処理ないし第6処理を、
前記第2処理における前記新規画像が得られる都度実行することを特徴とする請求項1に記載の点群管理装置。
【請求項3】
前記第5処理では、前記近傍の点を、3次元座標の距離が近いことから判定することを特徴とする請求項1または2に記載の点群管理装置。
【請求項4】
前記第1処理では、各点についてさらに、当該点の3次元座標から、当該点に対応する画像を撮像したカメラ位置へと向かう方向として定義される観測方向を
前記データベースに記録し、
前記第5処理では、前記近傍の点を、観測方向の向きが近いことから判定することを特徴とする請求項1ないし
3のいずれかに記載の点群管理装置。
【請求項5】
前記第5処理では、前記
データベースに記録されている点群のうち、前記新規特徴点がマッチした点の重要度を高めるよう更新することを特徴とする請求項1ないし
4のいずれかに記載の点群管理装置。
【請求項6】
前記第1処理及び前記第4処理で3次元座標を
前記データベースにそれぞれ記録及び追加登録する際に、欠損値が許容され、
前記第3処理において、
前記データベースに記録されている点群において3次元座標が欠損値である点がマッチするものとして探索された際に、当該点の3次元座標を計算することで欠損値の状態を解消することを特徴とする請求項1ないし
5のいずれかに記載の点群管理装置。
【請求項7】
前記第1処理における前記特徴量及び
前記第2処理における前記
新規特徴量はそれぞれ、
前記第1処理における前記
既に撮像して得られている画像及び
前記第2処理における前記新規画像から局所特徴量として抽出されるものであることを特徴とする請求項1ないし
6のいずれかに記載の点群管理装置。
【請求項8】
コンピュータを請求項1ないし
7のいずれかに記載の点群管理装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、地図情報としての点群を管理する点群管理装置及びプログラムに関する。
【背景技術】
【0002】
地図データが最新状況を反映したものとなるように管理する種々の従来技術が存在する。特許文献1では、地図を更新する際に差分をとって小さくする。特許文献2では、地図のオブジェクトを一定のフォーマットに従って定義し、更新データを蓄積されたデータと比較、存在しないデータを追加する。特許文献3では、新しい地図と古い地図に誤差が生じるため、部分的に形状を記憶しその位置を合わせることで誤差を小さくする。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2007-163937号公報
【文献】特開2005-165639号公報
【文献】特開2012-093811号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術においては地図の自動更新を効率的に行うことに関して課題があった。
【0005】
すなわち、地図の更新時に、その差分をとって更新の負荷を小さくすることや、必要な更新部分だけを取得するということが行われてきたが、差分をとるための大本の地図の更新は手動で行う必要があった。また、全部新しく地図を作り、以前の地図と同じように置き換える方法はあるが、全体地図の生成コストが高い。
【0006】
特に位置を推定するための地図(点群地図など)では、部分的、または全体を置き換えずに、環境変化に合わせて細かく変化した部分のみ地図を更新していくことが有用であるが、追加されたものはわかっても、削減されたものはわからなかった。これは新たな形状が観測された(地図に追加される)ことはわかっても、観測されなかったのは、本当に無くなったのか単に観測手法が原因で観測できなかったかの区別がつかないからである。仮に、地図情報へのアクセス状況を考慮して経時で削除する手法を取ったとすると、アクセス履歴がなかった部分は使われなかっただけで、削除されているわけではない場合に問題となる。
【0007】
上記従来技術の課題に鑑み、本発明は、効率的に地図情報を管理することのできる点群管理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明は、フィールドの各所において撮像して得られた画像より、当該フィールドの地図情報として構築された点群を管理する点群管理装置であって、前記点群の各点について、3次元座標と特徴量と重要度とを少なくとも記録する第1処理と、前記フィールドで撮像された新規画像より新規特徴点及び対応するクエリ特徴量を抽出する第2処理と、前記クエリ特徴量を照合することで前記点群からマッチする点を探索する第3処理と、前記新規特徴点のうち前記マッチしなかった点を、少なくともその3次元座標と特徴量と重要度と共に前記点群に追加登録する第4処理と、前記点群のうち、前記新規特徴点の近傍の点の重要度を低めるよう更新する第5処理と、前記更新された重要度が閾値判定で低い点について、前記点群から削除する第6処理と、を実行することを特徴とする。また、コンピュータを前記点群管理装置として機能させるプログラムであることを特徴とする。
【発明の効果】
【0009】
本発明によれば、地図情報としての点群を、各点の元の画像に関連した情報を活用して更新される重要度を用いて効率的に管理することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】一実施形態に係る点群管理システムの構成図である。
【
図2】一実施形態に係る点群管理システムにおける点群管理装置及び端末の機能ブロック図である。
【
図3】一実施形態に係る点群管理システムの動作のフローチャートである。
【
図4】点群DBへと登録される3D点群の各点p(i)の情報を表形式で示す図である。
【
図5】
図4の登録情報の一部に関して、その内容を模式的に示す図である。
【
図6】更新部による更新処理の模式例を示す図である。
【
図7】一般的なコンピュータにおけるハードウェア構成を示す図である。
【発明を実施するための形態】
【0011】
図1は、一実施形態に係る点群管理システム100の構成図である。点群管理システム100は、ネットワークNWを介して相互に通信可能とされる点群管理装置10及び端末20を備える。点群管理装置10は、3D点群として構成される地図情報を管理するものであり、サーバとして機能することで端末20からのリクエストに応答して位置情報を提供することができる。
【0012】
1台以上の端末20は、上記位置情報の提供サービスを受けるユーザが利用するものであってもよいし、点群管理装置10で管理する対象となる地図を予め構築するために、業者等が地図作成対象となる現地(フィールド)に赴いてデータ(画像)を収集する際に用いるものであってもよい。
【0013】
図2は、一実施形態に係る点群管理システム100における点群管理装置10及び端末20の機能ブロック図である。点群管理装置10は、画像ベースの測位サービス等を提供可能なVPS(Visual Positioning Service/System)方式で地図情報を管理するものであり、画像処理部1、管理部2及び点群DB(データベース)3を備える。画像処理部1はさらに、画像受信部11、特徴抽出部12及び照合部13を備える。端末20は、撮像部21及び表示部22を備える。
【0014】
撮像部21はハードウェアとしてはカメラで構成され、地図が設定されるフィールド(屋内でも屋外でもよい)の撮像をユーザ操作によって行い、得られた画像をネットワークNWを介して画像受信部11へと送信する。画像処理部1では、当該得られた画像を用いて(1)点群の初期構築を行い、また、(2)構築済みの点群との照合を行う。なお、この(1)及び(2)の処理は後述する
図3のステップS1及びS3として実現される。ここで、(2)の照合処理の場合、結果として照合部13において画像の位置情報を取得することができるので、得られた位置情報を端末20へとネットワークNWを介して送信し、端末20では送信した画像に対応する位置情報を表示部22においてユーザに対して表示し、ユーザに対して撮像した画像に対して位置情報を返す測位サービスを実現することができる。
【0015】
管理部2は、(1)の初期構築が行われた際には、当該初期構築された点群を点群DB3へと登録し、(2)の照合が行われた際は、当該照合結果に応じて点群DB3を更新する。点群DB3は、ハードウェアとしては記憶媒体で構成され、管理部2による管理(初期登録及び更新)に従って地図情報としての点群を記憶する。
【0016】
図3は、一実施形態に係る点群管理システム100の動作のフローチャートである。当該フローの全体概要として、ステップS1が点群管理装置10の点群DB3に地図情報としての点群を予め登録してデータベースの初期構築を行うものである。当該初期構築された点群DB3を参照することで、地図情報を用いた測位サービス等の提供が可能となる。一方、ステップS2~S4は、適宜、測位サービス等を提供しながら当該構築された点群DB3に対してインクリメンタルな更新(点群の追加及び/又は削除による更新)を適用するものである。
【0017】
ステップS1では、多数の画像を取得してこれらを解析することにより点群地
図DBを構築(初期構築)してから、ステップS2へと進む。ステップS1では以下のようにして当該構築を行うことができる。
【0018】
1つ以上の端末20において、撮像部21が地図の作成対象となるフィールド領域内の様々な箇所で撮像を行い、得られたフィールド内の各箇所における多数の画像を、点群管理装置10の画像受信部11へとネットワークNWを介して送信する。(なお、多数の画像の全部または一部に関して、ネットワークNWを介して送信するのではなく、記憶媒体に保存しておいてから当該記憶媒体を画像受信部11で読み込む等でもよい。)フィールド領域内の様々な箇所での撮像の作業は、地図作成業務を行うスタッフ、あるいは、地図作成利用に同意したユーザ等が行うようにすればよい。また、当該撮像作業は、地図作成の対象となるフィールドが大きく変化する(例えば、新しい建物が建設される)ことなく概ね一定の状態にあるように、ある程度の短期間においてなされることが望ましい。
【0019】
画像受信部11では上記のように得られた多数の画像を特徴抽出部12へと出力する。特徴抽出部12では、各画像から既存のSIFT特徴情報などによる特徴点及び特徴量を抽出して、当該特徴情報を照合部13に出力する。照合部13では、各画像において抽出された特徴情報(多数の特徴点及びその特徴量)を、画像間において照合することで、異なる画像における特徴点(2次元画素位置で与えられる特徴点)が同一の3次元世界座標の点に対応している関係を推定することにより、地図情報としての3D点群を構築する。
【0020】
照合部13での照合による点群構築には、既存手法であるSfM(Structure from Motion)等を用いればよく、多数の画像の特徴点を共通の世界座標での3D点群の各点に割り当てるために、バンドル調整などで誤差を最小化するようにしてもよい。
【0021】
管理部2は、照合部13によって初期構築された3D点群を点群DB3へと記憶させることにより初期登録する。
図4は、点群DB3へと登録される3D点群の各点p(i)の情報を表形式で示す図であり、
図5は、当該登録情報の一部に関して、その内容を模式的に示す図である。
【0022】
図4に示すように、3D点群の各点p(i)について、そのID(識別子)i(=1,2,…)と、3次元座標Pos(i)=(x
i,y
i,z
i)と、特徴抽出部12でSIFT等として抽出した特徴量F(i)と、当該点p(i)が抽出された元の画像Pic(i)(撮像部11で撮像した画像)と、当該元の画像Pic(i)の撮像時の撮像部11(ハードウェアとしてのカメラ)のカメラ位置C(i)=(Cx
i,Cy
i,Cz
i)と、観測方向D(i)=(Dx
i,Dy
i,Dz
i)と、タイムスタンプとしての元の画像Pic(i)を撮像した日時Time(i)と、重要度W(i)と、が管理部2によって点群DB3へと初期登録される。
【0023】
ここで、重要度W(i)に関しては、以降のステップS2~S4での更新処理に利用する目的で各点p(i)に対して設定するものであり、ステップS1においては全ての点p(i)において共通の初期値(例えばW(i)=1)を設定すればよい。
【0024】
図5の模式例に示されるように、各点p(i)は、地図作成対象となる実世界フィールドの3次元世界座標WL(直交座標などでよい)で定義される3次元座標Pos(i)を有し、当該フィールド内のオブジェクトOB(例えば建物)上の点として求められる。この際、3次元世界座標の点p(i)は、位置C(i)に配置されているカメラC(i)(ここでは便宜上、カメラとそのカメラ位置に同じ記号を割り当てる)で撮像した画像Pic(i)において2次元画像点px(i)として撮像されたものであり、この2次元画像点px(i)に対するSIFT等の、画像における局所特徴量として、特徴量F(i)が特徴抽出部12において抽出されている。
【0025】
SfMでは既知のように、ステレオ視差の原理等を用いることによって、異なる画像の2次元画像点px(i)(及びpx(j)、Pic(j)≠Pic(i)、3点以上でもよい)が同一の3次元点p(i)に対応していることと、この点p(i)の3次元座標Pos(i)と、を求めることができ、さらに、当該2次元画像点px(i)が撮像されている画像Pic(i)の3次元世界座標WLにおけるカメラ位置C(i)も求めることができる。
【0026】
図5の模式例にも示されるように、本実施形態では各点p(i)の観測方向D(i)として、当該点p(i)からこれを撮像したカメラ位置C(i)(カメラモデルにおけるカメラ中心)に向かう方向を、3次元世界座標WLで定義される方向として登録する。
【0027】
なお、3D点群の各点p(i)について、対応する元の画像Pic(i)が2枚以上存在する場合、全てを登録しておけばよい。すなわち、一般に、画像Pic(i)は1枚以上の画像集合として登録しておけばよい。同様に、カメラ位置C(i)も1つ以上のカメラ位置の集合として登録しておけばよい。同様に、特徴量F(i)も1個以上の特徴量の集合として登録しておけばよい。あるいは、カメラ位置C(i)及び特徴量F(i)に関して複数が存在する場合には、複数の代表値(平均値など)として1つの値のみを登録してもよい。また、異なる画像間で一致する点が見つからず、点の3次元座標の位置計算ができない場合などは、当該計算できなかった3次元座標Pos(i)及び観測方向D(i)は空(欠損値)として、点のIDを付与したうえで取得できた情報のみ(特徴量F(i)、元の画像Pic(i)、カメラ位置C(i)、日時Time(i)及び初期値の重要度W(i))を登録してよい。(3次元座標を計算できなかった点も、後からさらに追加された画像との組み合わせによって計算できて欠損値の状態を解消できる可能性があることから、このように欠損値も許容して登録しておくようにしてよい。欠損値を許容せず、欠損値の場合は点自体を全く記録しない方式と比べて、3次元座標の算出可能性を高め、点群DB3の点群データをより豊富且つ確実に確保することができる。)
【0028】
以上、ステップS1の初期登録を説明したので、ステップS2以降の説明に移る。ステップS2では、端末20の撮像部21において新たな撮像が行われて送信されることにより、当該新たな画像を画像受信部11において受信したか否かを判定し、肯定の場合(受信した場合)にはステップS3へと進み、否定の場合(受信していない場合)にはステップS2へと戻り、当該ステップS2が継続されることで受信があるまで待機することとなる。
【0029】
ステップS2における画像は、その用途として、地図メンテナンスを行うスタッフが地図情報の定義されているフィールド範囲内で新たに撮像したものであってもよいし、測位サービスを受けることを希望するユーザが当該フィールド内で新たに撮像したものであってもよい。いずれの場合も、少なくとも1枚の画像を受信すればよい。(地図メンテナンスの場合でも、フィールド範囲内を網羅的に撮像し尽くして大量の画像を用意することは不要である。(必須ではない。))
【0030】
ステップS3では、画像受信部11で新たに受信した画像に対して画像処理部1が画像処理を実施してからステップS4へと進む。この際、測位サービス用途で測位要求がなされている場合には、照合部13で結果として得た位置情報を端末20へと返信し、端末20のユーザは得られた位置情報を、ハードウェアとしてディスプレイで構成される表示部22に表示して確認することが可能となる。
【0031】
ステップS3では具体的に、次のような探索処理(照合処理)及び新規点判別処理を行う。
【0032】
<探索処理>
特徴抽出部12は、初期登録時と同様の処理により、新規画像Pic(j)から2次元画像座標の特徴点px(j)及び特徴量F(j)(特徴情報)を抽出して照合部13へと出力する。照合部13では、この特徴情報をクエリとして点群DB3に対して照合を行い、クエリの特徴量F(j)が、既に登録されているリファレンスの特徴量F(i)のいずれに一致するかを判定することで、クエリの2次元画像座標の特徴点px(j)がリファレンスの3次元座標Pos(i)を有する3次元世界座標点p(i)のいずれに該当するものであるかを判定する。(なお、リファレンス側及びクエリ側の両方に関して、該当なしとなる点も存在しうる。)この際、クエリの特徴点px(j)及び特徴量F(j)は複数存在し、リファレンスの点p(i)及び特徴量F(i)も複数存在するため、これら照合対象となる複数の点の位置関係も考慮した幾何学的整合性も考慮して照合を行うようにしてもよく、初期構築時と同様のSfMやバンドル調整等の任意の既存手法を用いて照合を行うことができる。なお、点の一致は前述した3次元座標(及び観測方向)を持たずに登録されている点p(i)とも行い、結果としてPos(i)が計算される場合もある。
【0033】
位置情報を返信する場合、当該照合結果による位置情報として、照合でマッチしたリファレンスの特徴量F(i)に対応する3次元位置Pos(i)(すなわち、カメラで新規画像Pic(j)として撮像されているランドマーク等のオブジェクトの位置)の情報を返信してもよいし、撮像したカメラ位置C(j)の情報を返信してもよい。(このカメラ位置C(j)の情報に関しても、SfM等による初期構築時と同様にして、カメラパラメータの情報等を利用してマッチング結果から算出することが可能である。)
【0034】
<新規点の判別処理>
ステップS3ではまた、照合部13は、新規のクエリ画像Pic(j)においてリファレンスにマッチしなかった特徴点px(j)に関して、点群DB3には未登録の新たなオブジェクトに対応する新規の点p(j)に該当するものとして判別したうえで、
図4に示した各情報を抽出する。この抽出は、クエリとリファレンスとのマッチング処理の結果としてカメラ位置C(j)等が既に求まっているので、当該結果からさらに抽出することが可能となる。なお、3次元の座標Pos(j)については、新規画像がRGB-D(RGBチャネル等の通常画像に、深度カメラ等による深度画像が紐づいたもの)等で深度情報を有する場合には、この深度情報とカメラ位置C(j)から求めるようにしてもよい。同様に、クエリ画像Pic(j)は2枚ペアで構成される1枚のステレオ画像として取得しておくことで、各特徴点px(j)の深度情報を有するように構成しておくことで、3次元の座標Pos(j)を取得してもよい。
【0035】
なお、ステップS1において前述したのと同様にステップS3でも、新規のクエリ画像Pic(j)において当該リファレンスにマッチしなかった特徴点px(j)であってPos(j)が求まらないものについては、Pos(j)やD(j)は空でよい。
【0036】
なお、例えば屋外を通過する人物や車などのように、地図情報が定義されるフィールドにおいて一時的にしか存在しえないオブジェクト(移動物体)に関しては、地図情報の構成要素として不適切であるため、特徴抽出部12において既存手法の物体認識によりその画像内領域と共に識別しておき、特徴抽出部12において特徴情報として抽出する対象から除外すればよい。(これは、ステップS1における初期構築でも同様である。)
【0037】
ステップS4では、ステップS3での照合部13による照合結果に応じて管理部2が点群DB3に記録されている地図情報としての点群を更新してから、ステップS2へと戻る。
【0038】
ステップS4にて管理部2は具体的に以下のように、新規の点の登録と、既に登録済みの点の更新(条件に該当するものは削除)を行う。
【0039】
<新規の点や新規の画像の登録>…以下の(n1)及び(n2)を新規の点として登録する。また、以下の(n3)として、既に登録されている点に新たな対応画像を登録する。
(n1) ステップS3でリファレンスにマッチしなかったことによりクエリ画像Pic(j)における新規の点p(j)として判別された点(その個数は任意となりうるものであり、0個の場合もありうる)を、
図4の情報の形式で、点群DB3に対して新規に登録する。この際、重要度W(j)については、ステップS1で割り当てたのと同様の初期値を設定すればよい。なお、前述の通り、新規の点p(j)には、
図4に示す全ての情報が取得されているものと、これら全ての情報のうち3次元位置Pos(j)及び観測方向D(j)が算出できずに空となっているものとの2種類がありうる。ステップS1と同様に、前者に関しては全ての情報を登録し、後者に関しては位置及び観測方向を空の状態で登録すればよい。
【0040】
(n2) 上記(n1)ではクエリ画像Pic(j)内でリファレンスにマッチしなかった点を新規の点p(i)として新規登録したが、これに加えてさらに、点群DB3に既にリファレンスとして登録されているが、3次元位置Pos(j)及び観測方向D(j)が空であった点に関しても、探索処理でクエリ画像Pic(j)の点とマッチしてこれらの情報が新たに取得された場合、このリファレンスの点も新規の点として登録(空の情報を新たに取得された値で更新することにより新規登録)すればよい。
【0041】
(n3) 既に登録されている点p(i)について、クエリ画像Pic(j)における特徴点px(j)がマッチすると判定された場合、同一の点に該当するものとして、この点p(i)の情報を更新する。具体的には、当該クエリ画像Pic(j)が元の画像のうちの1つとして対応している旨の情報を追加する。また、当該新たなクエリ画像Pic(j)の特徴点px(j)の情報を追加して新たにバンドル調整等を行って、3次元座標Pos(i)の値を更新してもよい。
【0042】
<既に登録済みの点の更新>
管理部2はまた、[A]当該新規3次元座標が登録された点p(j)、及び[B]クエリ画像Pic(j)とマッチした点p(i)に応じて、既に登録されている点p(i)の情報を更新するため、以下の手順1~3を実施する。なお、[A]の新規3次元座標が登録された点p(j)とは、上記(n1),(n2)の新規に登録された点のうち、3次元座標が求まっているものを指す。また、[B]のPic(j)とマッチした点p(i)とは、前述の探索処理で、(当該新規の登録をする前の)点群DB3に登録されている点のうち、当該クエリ画像Pic(j)の特徴点とマッチした点を指す。この[B]の点には前述の(n3)の情報更新が適用される。
【0043】
なお、上記の[A]及び[B]の点は、移動物体として除外される点を除いたクエリ画像Pic(j)より抽出された各点に相当するものであり、このうち[A]の(n1)はリファレンスとマッチしなかったクエリ画像Pic(j)の点であり、このうち[A]の(n2)と[B]はクエリ画像Pic(j)の点であってリファレンスとマッチすることで、リファレンスの点と一致すると判定されたものである。
【0044】
(手順1…近傍探索)
当該[A]の新たに3次元座標が登録された点p(j)、及び[B]のPic(j)とマッチした点p(i)の周囲rの範囲(これら[A],[B]の点p(j),p(i)のいずれかに該当する任意の点をp(n)とする)で、角度α内の観測方向ベクトルを持つ、マッチしていない登録済みの点p(m)を探す。(この点p(n)は、前述の通りクエリ画像Pic(j)の各点に相当するものである。)すなわち、以下の式(1),(2),(3)に該当する登録済みの点p(m)を探す。
distance(Pos(n), Pos(m))≦r …(1)
diff_angle(D(n), D(m))≦α …(2)
p(m)∈not_match(Pic(j)) …(3)
【0045】
式(1)でdistance(P1,P2)は2点P1,P2の距離(ユークリッド距離など)を返す関数であり、式(2)でdiff_angle(D1,D2)は2つの方向ベクトルD1,D2のなす角を返す関数(例えば規格化したD1,D2の内積<D1,D2>とアークコサイン関数の合成関数)であり、r及びαはこれらの関数値に対して近傍を判定するための閾値である。
【0046】
式(3)でnot_match(Pic(j))は、更新前(新規点p(j)の登録前)の点群DB3に登録されている全ての点p(m)のうち、当該新規画像Pic(j)についてステップS3でマッチングを行った際に、特徴量がマッチングしなかった点の集合である。(すなわち、式(3)が真となることは、登録済みの点p(m)はその特徴情報F(m)がリファレンスとしてクエリに対してマッチングされなかったこと、リファレンスとして未使用であったこと、を意味するものである。)(すなわち、当該新規登録前の点群DB3の点のうち、前述の[B]に該当しないのがnot_match(Pic(j))である。)
【0047】
(手順2…重要度の更新)
上記探索により3次元座標Pos(i)が近傍範囲rにあり且つカメラ方向D(i)も近傍範囲αにあるがリファレンスしては未使用だったと判定された登録済みの点p(i)に関して、記録されている重要度W(i)を指定値または指定割合だけ減少させることで、点群DB3の情報を更新する。例えば、重要度W(i)の初期値が1であるものとして、指定値として0.1だけ減少させてもよいし、指定割合として1/2倍することで値を半減させてもよい。(なお、条件に未該当の点p(i)に関して、重要度W(i)は更新されず、そのままの値となる。)
また、前述の[B]に該当する、クエリ画像Pic(j)に参照された点p(i)の重要度W(i)は維持、または指定値だけ増加、指定割合だけ増加させて良い。参照されたことにより重要度を増やし、削除されることを防ぐ。増加させる場合、上限値を設けておき、この上限値よりは増加させないようにしてもよい。
【0048】
なお、ある1つの登録済みの点p(i)に対して、1枚の新規画像Pic(j)における複数の新規登録点p(j)(n個とする)が、上記の式(1),(2),(3)で近傍等に該当する旨の条件判定がなされている場合には、重要度W(i)を減少させる処理は、1回だけ行うようにしてもよいし、n回だけ重複して行うようにしてもよい。
【0049】
(手順3…重要度W(i)が低い点p(i)の削除)
上記の手順3で更新された重要度W(i)を参照し、重要度W(i)が所定の閾値TH以下となった点p(i)については、点群DB3からその情報を削除する。
【0050】
図6は、以上のステップS4における更新部2による更新処理の模式例を示す図である。例EX1に示すように点群DB3に登録されている点の一部として7つの点p1~p7が存在するものとする。矢印で示すように各点p1~p7には観測方向も紐づいて記録されている。ここで、例EX2に示す3つの点p8~p10が、矢印で示す観測方向と共に新規登録されたものとする。この際、既に登録されている点p1~p7のうち2点p6,p7は、新規登録点p8~p10の近傍(座標及び観測方向の近傍)に存在するが、新規画像の特徴点とはマッチングしなかったものとして、例EX3に示すように重要度が初期値1から半減されて0.5に更新される。(新規登録点p8~p10から遠いことにより、あるいはマッチングがあったことにより、これに該当しなかった登録済みのその他の5点p1~p5は重要度の初期値1が維持され、新規登録の3点p8~p10には重要度の初期値1が割り当てられる。)この結果、例EX4に示すように、重要度が減少して0.5となり閾値(例えば0.8)以下となった点p6,p7は削除され、点群DB3は更新されて5つの点p1~p5と3つの点p8~p10を有する状態となる。
【0051】
なお、手順3ではさらに、重要度W(i)が閾値THより大である点p(i)(位置Pos(i)及び観測方向D(i)の情報の有無を問わない)のうち、一定期間以上に渡って探索処理でのマッチがなかった点を削除するようにしてもよい。探索処理でのマッチがなかった累積期間の情報は、初期値(登録時)をゼロとして、
図4に示す情報に追加する形で点群DB3に記録して管理しておき、マッチがある都度、初期値のゼロに戻し、マッチがない期間では累積させるようにすればよい。
【0052】
以上のように、本実施形態の点群管理装置10によれば、近い点が使用されたにもかかわらず長期間参照されなかった点は、すでに存在しないものとみなすことで、不必要にデータが蓄積され続けることを回避することができる。ここで、経時だけではなく、その位置関係や観測方向から点に対応するオブジェクトが既に存在しなくなったことを推定することができ、位置推定や地図を更新する際に不要なデータを正確に削減することができる。また、新規オブジェクトに相当する点も追加することができる。
【0053】
また、
図3のフローチャートにも示されるように、本実施形態では得られる1枚の新規画像ごとにインクリメンタルに地図情報の更新が可能である。従来手法では定義されるフィールド全体(あるいは更新があったフィールド全体)に渡って地図情報を一度に手動で更新する手間を要するのに対し、本実施形態では当該手間を要しない。本実施形態では地図管理スタッフが撮像する画像のみではなく、測位サービスを利用する一般ユーザの画像も地図更新に利用することができ、手間の低減に寄与する。
【0054】
以下、種々の補足例、追加例、代替例などに関して説明する。
【0055】
(1) 本発明の実施形態によれば、その応用例として、フィールドで実際に撮像した画像が紐づいた地図情報として3D点群を、フィールド(街角など)の最新状況(新規の建築物の追加や既存の建築物の撤去など)を正確に反映したものとして、用意にメンテナンスすることが可能となる。これにより、フィールドに実際に作業者が頻繁に赴くことなく遠隔で、作業対象の物体について確認したり、計画したりするといったことが可能となる。これにより、ユーザ等の移動に必要となるエネルギー資源を節約することで二酸化炭素排出量を抑制できることから、国連が主導する持続可能な開発目標(SDGs)の目標13「気候変動とその影響に立ち向かうため、緊急対策を取る」に貢献することが可能となる。
【0056】
(2)
図3のステップS4の手順3で管理部2が削除を行う際に、条件に該当した登録済みの点p(i)を削除するだけではなく、当該削除された後に、点群DB3に紐づけて記録されている元の画像Pic(i)のうち、この画像Pic(i)に対応する点p(i)のうち既に削除された総数が閾値に到達した画像Pic(i)も、削除するようにしてもよい。
【0057】
(3)
図7は、一般的なコンピュータ装置70におけるハードウェア構成の例を示す図である。点群管理システム100を構成する点群管理装置10及び端末20の各々は、このような構成を有する1台以上のコンピュータ装置70として実現可能である。なお、2台以上のコンピュータ装置70で点群管理装置10及び端末20の各々を実現する場合、ネットワーク経由で処理に必要な情報の送受を行うようにしてよい。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する専用プロセッサとしてのGPU(グラフィックス演算装置)72、CPU71(及びGPU72)にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77、カメラ78と、これらの間でデータを授受するためのバスBSと、を備える。
【0058】
点群管理装置10及び端末20の各機能部は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又はGPU72によって実現することができる。なお、CPU71及びGPU72は共に、演算装置(プロセッサ)の一種である。ここで、表示関連の処理が行われる場合にはさらに、ディスプレイ76が連動して動作し、データ送受信に関する通信関連の処理が行われる場合にはさらに通信インタフェース75が連動して動作する。点群管理装置10及び端末20による処理結果等はディスプレイ76で表示して出力してよい。点群管理装置10及び端末20への入力として用いる映像の全部又は一部をカメラ78で撮影して得るようにしてもよい。
【0059】
撮像部21はカメラ78として実現してよい。表示部22はディスプレイ76として実現してよい。
【符号の説明】
【0060】
100…点群管理システム、10…点群管理装置、20…端末
1…画像処理部、11…画像受信部、12…特徴抽出部、13…照合部、2…管理部、3…点群DB、21…撮像部、22…表示部