JP6761786B2 - 天井地図作成方法、天井地図作成装置及び天井地図作成プログラム - Google Patents

天井地図作成方法、天井地図作成装置及び天井地図作成プログラム Download PDF

Info

Publication number
JP6761786B2
JP6761786B2 JP2017156019A JP2017156019A JP6761786B2 JP 6761786 B2 JP6761786 B2 JP 6761786B2 JP 2017156019 A JP2017156019 A JP 2017156019A JP 2017156019 A JP2017156019 A JP 2017156019A JP 6761786 B2 JP6761786 B2 JP 6761786B2
Authority
JP
Japan
Prior art keywords
ceiling
map
scale
images
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017156019A
Other languages
English (en)
Other versions
JP2019036804A (ja
Inventor
薫 鳥羽
薫 鳥羽
総司 射場
総司 射場
長谷川 雄二
雄二 長谷川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Priority to JP2017156019A priority Critical patent/JP6761786B2/ja
Priority to DE102018212652.6A priority patent/DE102018212652B4/de
Priority to US16/055,456 priority patent/US10580208B2/en
Priority to CN201810901286.9A priority patent/CN109389602B/zh
Publication of JP2019036804A publication Critical patent/JP2019036804A/ja
Application granted granted Critical
Publication of JP6761786B2 publication Critical patent/JP6761786B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/262Analysis of motion using transform domain methods, e.g. Fourier domain methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • G06T7/344Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/37Determination of transform parameters for the alignment of images, i.e. image registration using transform domain methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/32Indexing scheme for image data processing or generation, in general involving image mosaicing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • G06T2207/20032Median filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • G06T2207/30208Marker matrix

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Mathematical Physics (AREA)
  • Computer Graphics (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Description

本開示は、カメラにより作成された複数の天井画像を貼り合わせて天井地図を作成する天井地図作成方法、天井地図作成装置及び天井地図作成プログラムに関する。
天井面を撮像可能なカメラ及び、このカメラが撮像した画像データを処理して位置を検出する位置検出装置を備え、自律移動可能な移動体において、位置検出装置が、天井画像と位置情報を含む教示画像情報を予め記憶しており、カメラが撮像した画像データから天井の画像を抽出し、抽出した天井の画像と教示画像情報とに基づいて、自己位置を認識するものが開示されている(特許文献1)。
特許文献1記載の移動体では、教示画像情報を記憶する教示段階において、2台のカメラを用いて天井方向画像を撮影し、天井方向画像を複数の部分に分割して、部分ごとに移動体からの高さ方向の距離を求めて距離画像を生成する。そして、距離画像の高さ方向の距離と、移動体から天井までの予め求められている高さ方向の天井距離とを比較し、両者が略同じ値であればその部分の距離画像を天井近傍とみなし、距離マスクを生成し、撮像画像のうちの一方の画像を天井画像として使用する。自己位置を検出する位置検出段階では、2つの画像データから距離画像を生成し、距離画像の距離と天井距離とを比較して生成した距離マスク等から天井画像マスクを生成した上で、画像マッチングを行って教示画像情報に基づいて、移動体の位置を検出している。
特開2004−133567号公報
しかしながら、特許文献1記載の移動体では、移動体から天井までの距離が予め求められていないと天井画像を作成することができない。また、天井画像が1つの撮像画像に納まらない広い空間で天井画像を作成する場合に、撮像画像をどのようにつなげるかが問題となる。
本発明は、このような背景に鑑み、1つのカメラを用いて天井を撮影し、天井までの高さが予め求められていなくても、撮影した天井画像をつなげて天井地図を作成可能にすることを課題とする。
このような課題を解決するために、本発明のある実施形態は、床面(2)の上を移動可能なカメラ(6)により、前記カメラを移動させつつ天井(5)を撮影して複数の天井画像を作成すると共に、撮影時の前記カメラの位置情報を作成し、前記位置情報に基づいて、複数の前記天井画像を合成して天井地図を作成する天井地図作成方法であって、同一のオブジェクトが写っている互いにコビジブルな関係にある前記天井画像に対し、前記位置情報から得られる前記カメラの位置の移動量と両天井画像における前記オブジェクトの移動量との比で表されるスケールを推定するステップ(ST16)と、複数の前記天井画像を、対応する前記スケールに応じて前記天井地図に適合する大きさに変換した上で貼り合わせ(ST84)、前記天井地図を作成するステップ(ST2)とを含むことを特徴とする。
この構成によれば、天井までの高さが予め求められていなくても、撮影した天井画像をつなげて天井地図を作成することができる。
また、上記構成において、前記スケールを推定するステップ(ST16)は、互いにコビジブルな関係にある前記天井画像に対し、変換行列を用いた複数種類のマッチングによるスケール推定を実行するステップ(ST75)と、複数種類の前記スケール推定のうち、テンプレートマッチングによるスコアが最も高い変換行列によって得られる結果を前記スケールに選定するステップ(ST76)とを含むとよい。
この構成によれば、互い異なるマッチングの性質を相補的に用いるにより、互いにコビジブルな関係にある天井画像のスケールを、より精度よく推定することができる。
また、上記構成において、複数種類の前記スケール推定が、局所特徴点の対応点マッチング結果を用いて推定されるホモグラフィ行列を用いた推定を含むとよい。
この構成によれば、より広角な画像を用いてより少ない枚数の画像により天井画像を作成することができる。
また、上記構成において、複数種類の前記スケール推定が、局所特徴点の対応点マッチング結果を用いて推定される剛体変換行列を用いた推定を含むとよい。
この構成によれば、高さが一体の天井において精度よくスケールを推定することができる。
また、上記構成において、複数種類の前記スケール推定が、テンプレートマッチングを用いて推定される並進変換行列(式(2))を用いた推定を含むとよい。
この構成によれば、高さが変化するような天井においても精度よくスケールを推定することができる。
また、上記構成において、複数種類の前記スケール推定が、直近過去の前記天井画像の前記スケールに基づく画像間の並進変換行列(式(5))を用いた推定を含むとよい。
この構成によれば、高さの変化が少ない天井において少ない計算量でスケールを高速に推定することができる。
また、上記構成において、前記スケールを推定するステップ(ST16)は、撮影の時系列順に並べた複数の前記天井画像の前記スケールに対し、平滑化処理を実行するステップ(ST78)を含むとよい。
この構成によれば、スケール推定の誤差を抑制し、天井画像をより円滑につなげることができる。
また、上記構成において、前記天井画像を貼り合わせるステップ(ST2)は、前記天井地図を複数のブロックに分割するステップ(ST83)と、i番目の前記天井画像の画像座標系から天井地図座標系へのアフィン変換行列Aiを算出するステップ(ST121)と、前記天井地図の前記ブロックの中心座標に最も近い前記天井画像を、当該ブロックに貼り合わせるステップ(ST123)とを含むとよい。
この構成によれば、天井画像の中で撮影角度が垂直に近い部分の複数の画像をつなげて歪みの少ない天井地図を作成することができる。
また、課題を解決するために、本発明のある実施形態は、天井地図作成装置であって、床面(2)の上を移動可能なカメラ(6)が移動しながら天井(5)を撮影して作成された複数の天井画像及び、撮影時の前記カメラの位置を検出して作成された位置情報を取得するステップ(ST00)と、同一のオブジェクトが写っている互いにコビジブルな関係にある前記天井画像に対し、前記位置情報から得られる前記カメラの位置の移動量と両天井画像における前記オブジェクトの移動量との比で表されるスケールを推定するステップ(ST16)と、複数の前記天井画像を、対応する前記スケールに応じて天井地図に適合する大きさに変換した上で貼り合わせ(ST84)、前記天井地図を作成するステップ(ST2)と、を実行するように構成されていることを特徴とする。
この構成によれば、天井までの高さが予め求められていなくても、撮影した天井画像をつなげて天井地図を作成することができる。
また、課題を解決するために、本発明のある実施形態は、天井地図作成プログラムであって、床面(2)の上を移動可能なカメラ(6)により、移動しながら天井(5)を撮影して作成された複数の天井画像及び、天井撮影時の前記カメラの位置を検出して作成された位置情報を取得するステップ(ST00)と、同一のオブジェクトが写っている互いにコビジブルな関係にある天井画像に対し、前記位置情報から得られる前記カメラの位置の移動量と両天井画像における前記オブジェクトの移動量との比で表されるスケールを推定するステップ(ST16)と、複数の前記天井画像を、対応する前記スケールに応じて天井地図に適合する大きさに変換した上で貼り合わせ(ST84)、前記天井地図を作成するステップ(ST2)と、コンピュータに実行させることを特徴とする。
この構成によれば、天井までの高さが予め求められていなくても、撮影した天井画像をつなげて天井地図をコンピュータに作成させることができる。
このように本発明によれば、1つのカメラを用いて天井を撮影し、天井までの高さが予め求められていなくても、撮影した天井画像をつなげて天井地図を作成することができる。
実施形態に係る天井地図作成ユニットの構成図 (A)キャリブレーション前、(B)キャリブレーション後の撮影画像を示すカメラキャリブレーションの説明図 位置姿勢情報ファイルのイメージ図 天井地図作成処理の手順を示すフローチャート キーフレーム作成処理の手順を示すフローチャート 入力データ取得処理の手順を示すフローチャート 初期キーフレーム選択処理の手順を示すフローチャート グラフマップのイメージ図 ORB特徴点の抽出処理の手順を示すフローチャート キーフレームの選択処理の手順を示すフローチャート キーフレームのグラフマップのイメージ図 可視性グラフの作成処理の手順を示すフローチャート 可視性グラフのイメージ図 キーフレームのスケール推定処理の手順を示すフローチャート メディアンフィルタ適用前後のスケール値を示すグラフ 天井パノラマ地図作成処理の手順を示すフローチャート 座標軸の算出処理の手順を示すフローチャート 天井パノラマ地図のサイズ決定処理の手順を示すフローチャート 天井パノラマ地図のブロック分割処理の手順を示すフローチャート 貼り合わせる天井画像の選択処理の手順を示すフローチャート コビジブルな天井画像間の対応点決定処理の手順を示すフローチャート バンドル調整による全体最適化処理の手順を示すフローチャート バンドル調整後の天井パノラマ地図の例を示す図 天井地図の出力処理の手順を示すフローチャート
以下、図面を参照して、本発明の実施形態について詳細に説明する。
≪全体構成≫
図1は、天井地図作成ユニット1の構成図である。図1に示されるように、天井地図作成ユニット1は、走行車輪3を備え、床面2の上を走行によって移動可能な移動体4として構成されている。移動体4は、床面2の上を自律走行するものであってもよく、人力や他の装置の牽引等によって走行するものであってもよい。或いは、移動体4は、走行車輪3の代わりに歩行用の足を備えたロボットであってもよい。移動体4には、天井5を撮影するための撮影装置として、単一の魚眼レンズを備えた電子カメラである魚眼レンズカメラ(以下、単にカメラ6という)が搭載されている。また、移動体4には、カメラ6の世界座標系の位置及び姿勢を検出する位置姿勢検出ユニット7が搭載されている。位置姿勢検出ユニット7は、世界座標系における位置を高精度に検出するGPSと、カメラ6の角速度から姿勢を検出するジャイロセンサとにより構成されている。
移動体4には、カメラ6により撮影された天井画像ファイル及び、位置姿勢検出ユニット7により検出された天井撮影時のカメラ6の位置情報及び姿勢情報(以下、位置姿勢情報という)を記憶する記憶装置8が搭載されている。また、移動体4には、記憶装置8に記憶された天井画像ファイル及び位置姿勢情報に基づいて天井地図を作成する天井地図作成装置10が搭載されている。記憶装置8や天井地図作成装置10は、移動体4に搭載されている必要はなく、有線や無線でデータを受信してもよい。
天井地図作成装置10は、CPU、RAM、ROM等を含む電子回路ユニットにより構成されたコンピュータであり、天井画像ファイル及び位置姿勢情報に基づいて天井地図を作成する演算処理を実行するように構成されている。なお、天井地図作成装置10が演算処理を実行するように構成されているとは、天井地図作成装置10を構成する演算処理装置(CPU)が、記憶装置8から必要なデータを読み取り、ROMに格納されたアプリケーションソフトウェアを読み込んで当該ソフトウェアに従って所定の演算処理を実行するようにプログラムされていることを意味する。
天井地図作成装置10は、カメラキャリブレーション機能を備えている。カメラ6を用いて天井を撮影するにあたり、魚眼レンズにおけるカメラパラメータとして、内部パラメータ及び歪み係数ベクトルを推定するカメラキャリブレーションを行う。まず、カメラキャリブレーションの準備として、精度のよいカメラパラメータを推定するために、魚眼レンズを用いてチェスボードを撮影した図2(A)に示されるような複数のチェスボード画像を用意する。
カメラキャリブレーションは、次の手順で行う。即ち、カメラキャリブレーション用の全てのチェスボード画像に対し、チェスボードのコーナー検出を行う。チェスボードのコーナー検出は、チェスボード画像を読み込んで画像データを取得し、取得した画像データのコーナー検出をサブピクセル精度で行う。コーナー検出の後、全てのチェスボード画像のコーナー検出結果を用いて、カメラ6の内部パラメータ及び歪み係数ベクトルを公知の手法により推定する。このようにして得たカメラ6の内部パラメータ及び歪み係数ベクトルはカメラパラメータファイルに記録される。カメラ6の内部パラメータ及び歪み係数ベクトルを用いることにより、魚眼レンズで撮影された画像の歪みを図2(B)に示されるように補正することが可能となる。以下、特に断りをしない場合、天井画像というときは、歪み補正後の画像を指す。
≪天井撮影≫
カメラ6による天井撮影は次のようにして行われる。即ち、カメラ6を天井5に向くように移動体4に取り付け、天井5をスキャンしてゆくように移動体4を移動させながら、位置姿勢検出ユニット7によってカメラ6の位置及び姿勢を検出しつつ、カメラ6で天井5を撮影する。これにより、複数の天井画像ファイルが作成されると同時に、撮影を行ったカメラ6の位置姿勢情報ファイルが作成される。また、位置姿勢情報と天井画像ファイル名とを紐付けするタイムスタンプ情報を含んだタイムスタンプ情報ファイルが作成される。図3は位置姿勢情報ファイルのイメージ図である。図3に示されるように、移動体4は実線で示されるように移動し、撮影を行ったカメラ6の世界座標系の位置情報及び姿勢情報が移動体4の軌跡上に現れている。
≪天井地図作成≫
次に、天井地図作成装置10の天井地図作成機能について説明する。天井地図作成装置10に天井地図作成機能を実行させるにあたり、カメラ6の内部パラメータ及び歪み係数ベクトル、天井画像ファイル群、位置姿勢情報ファイル及び、タイムスタンプ情報ファイルを用意し、これらのファイルの情報を入力データとして天井地図作成装置10に入力する(ステップST00、図示省略)。また、天井地図サイズやバンドル調整回数等、処理に必要なパラメータを入力した天井地図作成用設定ファイルを用意し、天井地図作成用設定ファイルの情報を設定データとして天井地図作成装置10に入力する。
図4は、天井地図作成装置10による天井地図作成処理の手順を示すフローチャートである。天井地図作成処理では、天井地図作成装置10は、図4に示される手順で各処理を実行する。即ち、天井地図作成装置10は、キーフレーム作成処理を行い(ステップST1)、天井パノラマ地図作成処理を行う(ステップST2)。以上により、天井地図作成処理が終了する。
≪キーフレーム作成処理≫
以下、図4中ステップST1のキーフレーム作成処理について説明する。複数枚の天井画像ファイルを同一の天井地図座標系に適切に貼り合わせるには、天井地図において天井画像がどこに位置するか、又は、どのように天井画像を変形して貼り合わせるか(合成するか)を定める必要がある。いずれの場合においても、天井画像ファイル群の位置姿勢情報から得られる世界座標系における両天井画像間の並進と、画像座標系における両天井画像間の並進との対応により、天井地図座標系における天井画像の局所的なスケールを推定する必要がある。
なお、本明細書において、画像座標系における並進とは、2枚の天井画像における同一オブジェクトの移動量(差分ベクトル)と定義する。一方、世界座標系における並進とは、カメラ6の両天井画像を撮影した位置の移動量(差分ベクトル)と定義する。また、スケールとは、カメラ6の両天井画像を撮影した位置の移動量に対する2枚の天井画像における同一オブジェクトの移動量の比であって、世界座標系で1メール進んだときに天井地図座標系で何ピクセル進むかを表す量と定義し、単位には「ピクセル/メートル」が与えられる。
ところで、全ての画像に対して局所的なスケールを推定する処理を行うと計算量が膨大になる一方、天井5が一定の高さに設けられている場合が多いことから、互いに近傍にある複数の天井画像は同じスケールを持つ場合が多い。そのため、計算の効率化を図る上では、全ての天井画像のスケールを推定する必要はなく、天井画像を適切に間引くことが重要であると考えられる。そこで、間引き処理がなされた代表的な天井画像をキーフレームとし、各キーフレームの局所的なスケールを推定してゆく。
キーフレームの局所的なスケールを精度よく推定するためには、天井画像間の距離が近く、且つ、同一のオブジェクトが写っている、いわゆるコビジブル(covisible:双可視)な複数の天井画像をキーフレームに選ぶ必要がある。キーフレームとする天井画像が互いにコビジブルであることの要請は、距離が近くても互いに壁の向こう側の領域の天井画像を連続しているかのように誤マッチングすることを防止することを目的としている。ここでは、天井画像間の局所特徴点マッチングを実行し、特徴点に占める対応点の割合が大きい天井画像をコビジブルなキーフレームとし、コビジブルなキーフレーム間の並進から局所的なスケールを推定する。
局所特徴点マッチングは、公知のアルゴリズムを用いればよく、例えば、H.Strasdat,A.J.Davion,J.M.M.Montiel,K.Konolige,"Doubule window optimisation for constant time visual SLAM,"2011や、Raul Mur−Artal,J.M.M.Montiel,Juan D.Tardos,"ORB−SLM:a Versatile and Accurate Monocular Slam System,"2015に開示されたアルゴリズムを用いてよい。ここでは、ORB(Oriented FAST and Rotated BRIEF)アルゴリズムを用いて抽出する特徴点(以下、ORB特徴点という)を用いてマッチングを実行する。
図5は、図4中ステップST1のキーフレーム作成処理の手順を示すフローチャートである。キーフレーム作成処理では、天井地図作成装置10は、図5に示される手順で各処理を実行する。即ち、天井地図作成装置10は、入力データ取得処理を実行する(ステップST11)。天井地図作成装置10は、取得した入力データの天井画像の中から初期キーフレームとする複数の天井画像を選択する初期キーフレーム選択処理を実行する(ステップST12)。天井地図作成装置10は、選択した初期キーフレームからORB特徴点を抽出するORB特徴点抽出処理を実行する(ステップST13)。天井地図作成装置10は、初期キーフレームを間引いて複数のキーフレームを選択するキーフレームの選択処理を実行する(ステップST14)。天井地図作成装置10は、複数のキーフレームを接続した可視性グラフ(covisibility graph)を作成する可視性グラフ作成処理を実行する(ステップST15)。天井地図作成装置10は、各キーフレームのスケールを推定するスケール推定処理を実行する(ステップST16)。以上により、キーフレーム作成処理が終了する。
以下、ステップST11からステップST16の各処理について順に詳細に説明する。
<入力データ取得処理>
図6は、図5中ステップST11の入力データ取得処理の手順を示すフローチャートである。入力データ取得処理では、天井地図作成装置10は、図6に示される手順で各処理を実行する。即ち、天井地図作成装置10は、天井地図作成用設定ファイルを読み込み(ステップST21)、天井地図作成装置10は、位置姿勢情報ファイルを読み込み(ステップST22)、タイムスタンプ情報ファイルを読み込む(ステップST23)、カメラパラメータファイルを読み込む(ステップST24)。
<初期キーフレーム選択処理>
図7は、図5中ステップST12の初期キーフレーム選択処理の手順を示すフローチャートである。初期キーフレーム選択処理では、天井地図作成装置10は、キーフレーム探索時の計算の高速化を図るため、世界座標系の天井画像の位置情報のkd木(k dimension tree)を作成し(ステップST31)、位置情報をカバーする領域にて世界座標系を格子に分割する(ステップST32)。ここでは、天井5の高さやスケールに応じて0.15〜0.50メートル間隔の格子に分割する。次に、天井地図作成装置10は、初期キーフレームとするために、ステップST32で作成した各格子内に位置する天井画像を、kd木を用いて探索する(ステップST33)。格子上に複数の天井画像が存在する場合は、格子の中心に最も近い天井画像を初期キーフレームとする。天井地図作成装置10は、初期キーフレームを時系列順に接続してグラフマップを作成する(ステップST34)。
図8は初期キーフレームを時系列順に接続したグラフマップのイメージ図である。グラフマップは、図3に示される位置姿勢情報ファイルの情報に基づいて、図8に示されるように作成される。
<ORB特徴点抽出処理>
図9は、図5中ステップST13のORB特徴点の抽出処理の手順を示すフローチャートである。ORB特徴点の抽出処理では、天井地図作成装置10は、図5に示される手順で全ての初期キーフレームに対して処理を実行する。天井地図作成装置10は、初期キーフレームの天井画像ファイルを読み込み(ステップST41)、画像データの前処理を行う(ステップST42)。具体的には、天井地図作成装置10は、天井画像作成用設定ファイルにて指定されたサイズの倍率に画像を縮小する。また、天井地図作成装置10は、色彩(Hue)、彩度(Saturation)及び明度(Value)の3つの成分からなる色空間であるHSV色空間(HSB空間ともいう)に画像を変換し、明度の平坦化を行うことでコントラストの強調を行う。その後、天井地図作成装置10は、ORB特徴点を抽出する(ステップST43)。ORB特徴点の抽出は、例えば、E.Rublee,V.Rabaud,K.Konolige,G.Bradski,"ORB:an efficient altermative to SIFT or SURF,"2011に開示された公知の手法で行えばよい。その後、天井地図作成装置10は、次の初期キーフレームがあるか否かを判定し(ステップST44)、ある場合には(Yes)、上記ステップST41以降の手順を繰り返し、ない場合には(No)、本処理を終了する。
<キーフレームの選択処理(初期キーフレームの間引き)>
図10は、図5中ステップST14のキーフレームの選択処理の手順を示すフローチャートである。キーフレームの選択処理では、天井地図作成装置10は、全ての初期キーフレームに対し時系列順に、次の手順で処理を実行する。天井地図作成装置10は、まず、現在の初期キーフレームと直近過去の初期キーフレームとの特徴点マッチングを行う(ステップST51)。次に、天井地図作成装置10は、次式(1)で定義されるマッチング率を算出する(ステップST52)。
続いて、天井地図作成装置10は、算出されたマッチング率に応じてORB特徴点を抽出する。具体的には、天井地図作成装置10は、マッチング率が第1所定値(例えば18%)より大きいか否かを判定し(ステップST53)、第1所定値より大きい場合には(Yes)、現在の初期キーフレームを削除し(ステップST54)、第1所定値以下の場合には(No)、現在の初期キーフレームと直近過去の初期キーフレームとを接続してグラフマップを作成する(ステップST55)。その後、天井地図作成装置10は、次の初期キーフレームがあるか否かを判定し(ステップST56)、ある場合には(Yes)、上記ステップST51以降の手順を繰り返し、ない場合には(No)、本処理を終了する。これにより、初期キーフレームが間引かれる。
図11は、キーフレームの選択処理によって初期キーフレームが間引かれ、残ったキーフレームを時系列方向に接続したグラフマップのイメージ図である。
<可視性グラフの作成処理>
図12は、図5中ステップST15の可視性グラフの作成処理の手順を示すフローチャートである。可視性グラフの作成処理では、天井地図作成装置10は、初期キーフレームが間引かれ、残ったことで選択された全てのキーフレームに対し、次の処理を実行する。即ち、天井地図作成装置10は、キーフレームとその近傍(例えば、3m以内)のキーフレームとを収集し、キーフレームと距離が近いものから順に特徴点マッチングを実行する(ステップST61)。次に、天井地図作成装置10は、上式(1)でマッチング率を算出し(ステップST62)、算出したマッチング率が、第1所定値よりも小さな第2所定値(例えば5%)より大きいか否かを判定し(ステップST63)、第2所定値以下の場合には(No)、対応点の個数が所定個数(例えば、150個)以上あるか否かを判定する(ステップST64)。マッチング率が第2所定値より大きい場合(ステップST63:Yes)及び、対応点の個数が所定個数以上ある場合(ステップST64:Yes)、天井地図作成装置10は、キーフレームとその近傍のキーフレームとをコビジブルな関係として接続する(ステップST65)。マッチング率が第2所定値以下であり(ステップST63:No)、且つ対応点の個数が所定個数未満である(ステップST64:No)場合、天井地図作成装置10は、キーフレームを接続しない。その後、天井地図作成装置10は、次のキーフレームがあるか否かを判定し(ステップST66)、ある場合には(Yes)、上記ステップST61以降の手順を繰り返し、ない場合には(No)、本処理を終了する。これにより、可視性グラフが作成される。
図13は、可視性グラフの作成処理によって作成された可視性グラフのイメージ図である。可視性グラフでは、近傍のキーフレーム同士が接続されている。
<キーフレームのスケール推定処理>
図14は、図5中ステップST16のキーフレームのスケール推定処理の手順を示すフローチャートである。キーフレームのスケール推定処理では、天井地図作成装置10は、図14に示される手順で全てのキーフレームに対して処理を実行する。天井地図作成装置10は、キーフレームの天井画像ファイルを読み込み(ステップST71)、読み込んだ画像データの前処理を行う(ステップST72)。具体的には、天井地図作成装置10は、ステップST42と同様に、画像を指定されたサイズに縮小し、HSV色空間に変換し、明度の平坦化を行うことでコントラスト調整を行う。その後、天井地図作成装置10は、姿勢情報から得られる移動体4の姿勢θに対し、画像中心回りに−θだけ回転させ、画像の姿勢を位置方向に揃える。この処理により、近似の範囲内で画像間のマッチングを行う際には、回転を気にする必要はなくなり、並進の情報のみを取り扱うことが可能になる。画像データの前処理の後、天井地図作成装置10は、コビジブルな関係にあるキーフレームの天井画像ファイルを読み込み(ステップST73)、ステップST72と同様に、読み込んだ画像データの前処理を行う(ステップST74)。
その後、天井地図作成装置10は、キーフレームとこれとコビジブルな関係にあるキーフレームとに対し、4種類のマッチングによるスケール推定を実行する(ステップST75)。具体的には、天井地図作成装置10は、これらのフレームに対し、次の第1〜第4の4種類の画像間の変換行列を算出する。
第1の変換行列は、局所特徴点の対応点マッチング結果を用いて推定される、3行3列のホモグラフィ行列である。ホモグラフィ行列の推定には、例えば、OpenCVのcv::findHomograpy関数を用いることができる。ホモグラフィ行列を用いることにより、より広角な画像を用いてより少ない枚数の画像により天井画像を作成することができる。
第2の変換行列は、局所特徴点の対応点マッチング結果を用いて推定される、3行3列の剛体変換行列である。剛体変換行列の推定には、例えば、OpenCVのcv::estimateRigidTransform関数を用いることができる。剛体変換行列を用いることにより、高さが一体の天井5において精度よくスケールを推定することができる。
第3の変換行列は、テンプレートマッチングを用いて推定される並進変換行列である。テンプレートマッチングにより得られる画像座標系における画像間の並進が(ΔX,ΔY)で与えられる場合、画像間の並進変換行列は次式(2)で与えられる。
テンプレートマッチングを用いて推定される並進変換行列を用いることにより、高さが変化するような天井5においても精度よくスケールを推定することができる。
第4の変換行列は、直近過去のキーフレームのスケールに基づいて推定される並進変換行列である。直近過去のスケールをsprev、移動体4の姿勢からのカメラ6の姿勢のズレを(−ψ)としたとき、世界座標系から画像座標系への変換行列は、次式(3)で与えられる。
従って、キーフレーム間の並進(ΔX,ΔY)は、世界座標系での並進(Δx,Δy)を用いて次式(4)で与えられる。
これより、第3の変換行列と同様に、画像間の並進変換行列は次式(5)で与えられる。
直近過去のキーフレームのスケールに基づいて推定される並進変換行列を用いることにより、高さの変化が少ない天井5において少ない計算量でスケールを高速に推定することができる。
このように複数種類の変換行列を算出するのは、特徴が多い領域に対しては局所特徴点マッチングの精度がよいのに対し、特徴が少ない領域においてはテンプレートマッチングが有効であるといった、互い異なるマッチングの性質を相補的に用いるためである。これにより、互いにコビジブルな関係にある天井画像のスケールを、より精度よく推定することができる。
その後、天井地図作成装置10は、ステップST75で算出した画像間の変換行列の中から採用する推定結果を選定する(ステップST76)。具体的には、天井地図作成装置10は、各変換行列をそれぞれ片方の画像に適用して画像中心付近を抽出し、もう片方の画像中心付近に対し、同じ大きさの画像を抽出し、テンプレートマッチングを実行する。そして、天井地図作成装置10は、マッチングのスコアが最も高い変換行列によって得られるスケールを、キーフレームの局所的なスケールsとする。
スケールsは、画像中心に対してステップST75で求めた最もよい変換行列を適用して得られる画像座標系での並進(ΔX,ΔY)とキーフレーム間の世界座標系での並進(Δx,Δy)とを用いて、次式(6)により算出される。
なお、多くの建物等では、天井画像は床とほぼ平行にあり、キーフレーム間の並進が剛体変換となることが多いため、ステップST76にて第2の変換行列として推定した剛体変換行列が最もよいテンプレートマッチング結果を示す傾向にある。
続いて、天井地図作成装置10は、次のキーフレームがあるか否かを判定し(ステップST77)、ある場合には(Yes)、上記ステップST71以降の手順を繰り返す。ステップST77でし、次のキーフレームがない場合には(No)、天井地図作成装置10は、スケールの外れ値を除去するために、撮影の時系列順に並べたキーフレームのスケールに対し、平滑化処理を実行する(ステップST78)。ここでは、ある時刻tのキーフレームに対し、前後7つのキーフレームとコビジブルな関係にあるキーフレームのスケールの中間値を採用する、メディアンフィルタを適用し、時刻tのキーフレームのスケールを定める。以上により、本処理を終了する。
図15は、メディアンフィルタ適用前後のスケール値を示すグラフである。図示されるように、メディアンフィルタの適用により、スケール値が平滑化される。これにより、スケール推定の誤差が抑制され、天井画像がより円滑につながる。
≪天井パノラマ地図作成処理≫
次に、図4中ステップST2の天井パノラマ地図作成処理について説明する。天井パノラマ地図作成処理は、キーフレームの局所的なスケールを基に画像を貼り合わせ、1枚の天井パノラマ地図を作成するものである。局所的なスケールをそれぞれ有する画像を等倍サイズで貼り合わせてゆくと、世界座標系の座標と天井パノラマ地図の座標が1対1に対応しない。そこで、局所的なスケールに応じて画像を拡大・縮小して貼り合わせることで、世界座標系の座標と天井パノラマ地図を1対1に対応、つまり、「1メートルが何ピクセルに対応しているか」というスケールを1つの値に定めることができる。
図16は、ステップST2の天井パノラマ地図作成処理の手順を示すフローチャートである。天井パノラマ地図作成処理では、天井地図作成装置10は、図16に示される手順で各処理を実行する。即ち、天井地図作成装置10は、天井地図座標系と世界座標系の座標軸の角度差ωを算出する座標軸の算出処理を実行する(ステップST81)。天井地図作成装置10は、天井パノラマ地図のX方向及びY方向のサイズを決定する天井パノラマ地図のサイズ決定処理を実行する(ステップST82)。天井地図作成装置10は、天井パノラマ地図を複数のブロックに分割する天井パノラマ地図のブロック分割処理を実行する(ステップST83)。天井地図作成装置10は、天井パノラマ地図に貼り合わせる天井画像を選択する天井画像の選択処理を実行する(ステップST84)。天井地図作成装置10は、コビジブルな天井画像間の対応点を探索するコビジブルな天井画像間の対応点探索処理を実行する(ステップST85)。天井地図作成装置10は、バンドル調整による全体最適化処理を実行する(ステップST86)、天井地図の出力処理を実行する(ステップST87)。以上により、天井パノラマ地図作成処理が終了する。
以下、ステップST81からステップST87の各処理について順に詳細に説明する。
<座標軸の算出処理>
図17は、図16中ステップST81の座標軸の算出処理の手順を示すフローチャートである。座標軸の算出処理では、天井地図作成装置10は、図17に示される手順で全てのキーフレームに対して時系列順に処理を実行する。天井地図作成装置10は、まず、現在のキーフレームiの地図上の画像中心座標と、1つ過去の時刻のキーフレーム(i−1)の地図上の画像中心座標との2次元の差分ベクトルΔXを算出する(ステップST91)。なお、本文中ではベクトルに矢印は付さず、数式においてはベクトルに矢印を付して示す。続いて、天井地図作成装置10は、現在のキーフレームiの世界座標系での座標と、1つ過去の時刻のキーフレーム(i−1)の世界座標系での座標との2次元の差分ベクトルΔxを算出する(ステップST92)。その後、天井地図作成装置10は、次式(7)で地図上の差分ベクトルの方向と世界座標系の差分ベクトルの成す角(座標軸の角度差ω)を算出する(ステップST93)。座標軸の角度差ωは、次式(7)で求められる。
その後、天井地図作成装置10は、次のキーフレームがあるか否かを判定し(ステップST94)、ある場合には(Yes)、上記ステップST91以降の手順を繰り返し、ない場合には(No)、ステップST91〜ステップST93で求めた角度差ωの平均値を算出し、天井地図座標系と世界座標系の座標軸の角度差ωとする(ステップST95)。以上により、本処理を終了する。
<天井パノラマ地図のサイズ決定処理>
図18は、図16中ステップST82の天井パノラマ地図のサイズ決定処理の手順を示すフローチャートである。天井パノラマ地図のサイズ決定処理では、天井地図作成装置10は、図18に示される手順で処理を実行する。即ち、天井地図作成装置10は、キーフレームの天井地図上での初期座標を決める(ステップST101)。具体的には、天井地図作成装置10は、全てのキーフレームで最小となるスケールsminを探索し、対応する世界座標系での位置情報(x,y)を用いた次式(8)により、キーフレームiの初期座標(X ini,Y ini)を算出する。
次に、天井地図作成装置10は、次のキーフレームがあるか否かを判定し(ステップST102)、ある場合には(Yes)、上記ステップST101の手順を繰り返し、ない場合には(No)、全てのキーフレームの天井地図上での座標に対し、X方向の最小値Xmin ini、最大値Xmax ini、Y方向の最小値Ymin ini、最大値Ymax iniを求め、天井パノラマ地図のX方向のオフセットXoffset、Y方向のオフセットYoffsetを、次式(9)、(10)により算出する(ステップST103)。
offset=Xmin ini−2B ・・・(9)
offset=Ymin ini−2B ・・・(10)
ここで、Bは天井パノラマ地図をブロック分割する際のブロックのオフセットの長さを表す。その後、天井地図作成装置10は、天井地図座標系における天井パノラマ地図画像のサイズ、即ち幅W及び高さHを、次式(11)、(12)により算出する(ステップST104)。
W=Xmax ini+2B−Xoffset=Xmax ini−Xmin ini+4B ・・・(11)
H=Ymax ini+2B−Yoffset=Ymax ini−Ymin ini+4B ・・・(12)
<天井パノラマ地図のブロック分割処理>
図19は、図16中ステップST83の天井パノラマ地図のブロック分割処理の手順を示すフローチャートである。天井パノラマ地図のブロック分割処理では、天井地図作成装置10は、図19に示される手順で処理を実行する。即ち、天井地図作成装置10は、全てのキーフレームから局所的なスケールが最小のものsmin、及び、最大のものsmaxを取得し(ステップST111)、次式(13)より、天井パノラマ地図のブロックの1辺の長さB[ピクセル]を算出する(ステップST112)。
ここでは、k=1000、k=20000とする。また、ブロックの1辺の長さBが大きい場合、ブロックとブロックの境界付近での自己位置推定の精度が悪くなるため、上式(13)により算出したブロックの1辺の長さBの値の範囲を[30,100]とし、上限を超えた場合は100、下限を下回った場合は30に丸める。次に、天井地図作成装置10は、図18中ステップST104で算出した天井パノラマ地図の幅W、高さHから、ブロックの行数Brows、列数Bcolsを次式(14)、(15)により算出する(ステップST113)。
rows=[H/B] ・・・(14)
cols=[W/B] ・・・(15)
ここで、[]はガウス記号を表す。その後、天井地図作成装置10は、ブロック分割の原点を表すオフセット(Boffset_X,Boffset_Y)を、次式(16)、(17)により算出する(ステップST114)。
offset_X=[(W−BcolsB)/2] ・・・(16)
offset_Y=[(H−BrowsB)/2] ・・・(17)
最後に、天井地図作成装置10は、ステップST114で算出したオフセット(Boffset_X,Boffset_Y)を、ブロック分割の原点とし、各ブロックの中心座標を算出する(ステップST115)。
<貼り合わせる天井画像の選択処理>
図20は、図16中ステップST84の貼り合わせる天井画像の選択処理の手順を示すフローチャートである。貼り合わせる天井画像の選択処理では、天井地図作成装置10は、図20に示される手順で処理を実行し、ブロックに属するキーフレームを探索する。まず、天井地図作成装置10は、キーフレームiの画像座標系から天井地図座標系へのアフィン変換行列Aiを、次式(18)により算出する(ステップST121)。
ここで、Sは、smin/sで与えられるスケール比を表しており、θは姿勢情報で得られる移動体4の姿勢を表す。この処理を全てのキーフレームに対して行うべく、天井地図作成装置10は、次のキーフレームがあるか否かを判定し(ステップST122)、ある場合には(Yes)、上記ステップST121の手順を繰り返す。これにより、全てのキーフレームの天井画像が、スケールに応じ、天井パノラマ地図の座標系である天井地図座標系に適合した大きさに変換される。
ステップST122で次のキーフレームがない場合(No)、天井地図作成装置10は、ブロックに貼り合わせる画像として選択するべく、ST121の変換を行ったときに、各ブロックの中心座標に最も近いキーフレームを探索する(ステップST123)。この処理を全てのブロックに対して行うべく、天井地図作成装置10は、次のブロックがあるか否かを判定し(ステップST124)、ある場合には(Yes)、上記ステップST123の手順を繰り返し、ない場合には(No)、本処理を終了する。
このように天井地図作成装置10が、ST83で天井パノラマ地図を複数のブロックに分割し、ステップST121でi番目の天井画像の画像座標系から天井地図座標系へのアフィン変換行列Aiを算出し、ステップST123で天井パノラマ地図のブロックの中心座標に最も近い天井画像を、そのブロックに貼り合わせて合成することにより、天井画像の中で撮影角度が垂直に近い部分の複数の画像がつながって歪みの少ない天井パノラマ地図が作成される。
<コビジブルな天井画像間の対応点決定処理>
図21は、図16中ステップST85のコビジブルな天井画像間の対応点決定処理の手順を示すフローチャートである。コビジブルな天井画像間の対応点決定処理では、天井地図作成装置10は、図21に示される手順で、貼り合わせに使用する全てのキーフレームに対して処理を実行する。天井地図作成装置10は、キーフレームに対し、図9中ステップST42で説明した前処理を行い(ステップST131)、前処理を行ったキーフレームに対し、ORB特徴点抽出を行う(ステップST132)。この処理を全てのキーフレームに対して行うべく、天井地図作成装置10は、次のキーフレームがあるか否かを判定し(ステップST133)、ある場合には(Yes)、上記ステップST131以降の手順を繰り返し、ない場合には(No)、貼り合わせる天井画像とコビジブルな関係にあるキーフレームとの間の特徴点の対応点を探索、決定する(ステップST134)。その後、天井地図作成装置10は、貼り合わせる天井画像が更にあるか否かを判定し(ステップST135)、ある場合には(Yes)、ステップST134の処理を繰り返し、ない場合には(No)、本処理を終了する。
<バンドル調整による全体最適化処理>
図22は、図16中ステップST86のバンドル調整による全体最適化処理の手順を示すフローチャートである。バンドル調整による全体最適化処理は、図20中ステップST121で求めたキーフレームのアフィン変換行列Aiに対してバンドル調整を行うことにより、位置情報の誤差と局所スケール推定の誤差との同時最適化を図るための処理である。なお、バンドル調整は、E.Rublee,V.Rabuad,K.Konolige,G.Bradsk,"Visual−inertial monocular SLAM with map reuse,"2016や、B.Triggs,P.F.McLauchlan,R.I.Hartley,A.W.Fitzgibbon,"Bundle adjustment a modern synthesis,"2000に開示された公知の手法で行えばよい。
枚数の多い天井画像群を用いた天井地図作成処理では、1回のバンドル調整の実行に要する時間が長くなるため、プログラムにてバンドル調整を繰り返す回数(例えば、20回)を、天井地図作成用設定ファイルにて設定するとよい。バンドル調整による全体最適化処理では、天井地図作成装置10は、図22に示される手順で処理を実行する。即ち、天井地図作成装置10は、キーフレームiとこれとコビジブルな関係にあるキーフレームjとの天井地図座標系における誤差を算出する(ステップST141)。具体的には、天井地図作成装置10は、キーフレームi及びキーフレームjのそれぞれk個目の対応点をそれぞれpik、pjkとおき、両キーフレームの天井地図座標系における誤差を次式(19)により算出する。
次に、天井地図作成装置10は、ステップST141で算出した各キーフレームの誤差の総和Eを最小にする画像座標系−天井地図座標系のアフィン変換行列Aを、レベンバーグ・マーカート法を用いて次式(20)により算出する。
このとき、Aの初期値は、図20のステップST121で算出したアフィン変換行列の成分を初期値として用い、各キーフレームのアフィン変換行列に対し、次式(21)で与えられる6個のパラメータを更新し、補正する(ステップST142)。
その後、天井地図作成装置10は、貼り合わせるキーフレームに対し、ステップST142で更新したアフィン変換行列を適用し、キーフレームが属するブロックの領域内にクロップして貼り合わせる(ステップST143)。これを全てのブロックに対して実行する。これにより1回のバンドル調整が終了する。その後、天井地図作成装置10は、バンドル調整の繰り返しが必要か否か(天井地図作成用設定ファイルで指定された回数行ったか否か)を判定し(ステップST144)、必要ある場合には(Yes)、上記ステップST141以降の手順を繰り返し、ない場合には(No)、本処理を終了する。
図23は、バンドル調整後の天井パノラマ地図の例を示している。図示されるように、各ブロックには、天井画像が隣の天井画像に連続するように貼り合わされる。
<天井地図の出力処理>
図24は、図16中ステップST87の天井地図の出力処理の手順を示すフローチャートである。天井地図の出力処理では、天井地図作成装置10は、図24に示される手順で処理を実行し、自己位置推定に必要となる天井地図に関する情報を出力する。即ち、天井地図作成装置10は、天井地図の基本的な情報を記述した、天井地図の情報ファイルを出力し(ステップST151)、天井パノラマ地図に使用したキーフレームの情報を記述した、キーフレームの情報ファイルを出力し(ステップST152)、天井パノラマ地図の画像データを天井地図画像ファイルとして出力する(ステップST153)。これにより、本処理が終了する。
このように、本実施形態に係る天井地図作成方法は、図5のステップST16において、同一のオブジェクトが写っている互いにコビジブルな関係にある天井画像に対してスケールを推定し、図4のステップST2の天井パノラマ地図作成処理のうち、図16のステップST84において、複数の天井画像を、対応するスケールに応じて天井パノラマ地図に適合する大きさに変換した上で貼り合わせる。そのため、1つのカメラ6を用いて天井5を撮影し、天井5までの高さが予め求められていなくても、撮影した天井画像をつなげて天井地図を作成することができる。
また、本実施形態に係る天井地図作成装置10は、複数の天井画像及び、撮影時のカメラ6の位置情報を取得し、図5のステップST16において、同一のオブジェクトが写っている互いにコビジブルな関係にある天井画像に対してスケールを推定し、図4のステップST2の天井パノラマ地図作成処理のうち、図16のステップST84において、複数の天井画像を、対応するスケールに応じて天井パノラマ地図に適合する大きさに変換した上で貼り合わせるように構成されている。そのため、天井5までの高さが予め求められていなくても、撮影した天井画像をつなげて天井地図を作成することができる。
また、本実施形態に係る天井地図作成プログラムは、複数の天井画像及び、撮影時のカメラ6の位置情報を取得し、図5のステップST16において、同一のオブジェクトが写っている互いにコビジブルな関係にある天井画像に対してスケールを推定する処理と、図4のステップST2の天井パノラマ地図作成処理のうち、図16のステップST84において、複数の天井画像を、対応するスケールに応じて天井パノラマ地図に適合する大きさに変換した上で貼り合わせる処理とを、コンピュータである天井地図作成装置10に実行させる。そのため、天井5までの高さが予め求められていなくても、撮影した天井画像をつなげて天井地図を作成することができる。
このように統一したスケールで作成された天井地図は、床面2を移動する移動体4が自己位置を推定する際に利用することができる。例えば、1つのカメラ6を備えた移動体4は、床面2を移動した際にコビジブルな関係の天井画像を撮影し、天井地図作成時と同様の手法でスケールを推定して天井地図と同じスケールに変換した天井画像を、天井地図の中から検索することにより、天井地図上の自己位置を推定することができる。
以上で具体的実施形態の説明を終えるが、本発明は上記実施形態に限定されることなく幅広く変形実施することができる。例えば、各部材や部位の具体的構成や配置、数量、角度、手順など、本発明の趣旨を逸脱しない範囲であれば適宜変更可能である。一方、上記実施形態に示した各構成要素は必ずしも全てが必須ではなく、適宜選択することができる。
1 天井地図作成ユニット
2 床面
3 走行車輪
4 移動体
5 天井
6 カメラ
7 位置姿勢検出ユニット
8 記憶装置
10 天井地図作成装置

Claims (10)

  1. 床面の上を移動可能なカメラにより、前記カメラを移動させつつ天井を撮影して複数の天井画像を作成すると共に、撮影時の前記カメラの位置情報を作成し、前記位置情報に基づいて、複数の前記天井画像を合成して天井地図を作成する天井地図作成方法であって、
    同一のオブジェクトが写っている互いにコビジブルな関係にある前記天井画像に対し、前記位置情報から得られる前記カメラの位置の移動量と両天井画像における前記オブジェクトの移動量との比で表されるスケールを推定するステップと、
    複数の前記天井画像を、対応する前記スケールに応じて前記天井地図に適合する大きさに変換した上で貼り合わせ、前記天井地図を作成するステップとを含むことを特徴とする天井地図作成方法。
  2. 前記スケールを推定するステップは、
    互いにコビジブルな関係にある前記天井画像に対し、変換行列を用いた複数種類のマッチングによるスケール推定を実行するステップと、
    複数種類の前記スケール推定のうち、テンプレートマッチングによるスコアが最も高い変換行列によって得られる結果を前記スケールに選定するステップとを含むことを特徴とする請求項1に記載の天井地図作成方法。
  3. 複数種類の前記スケール推定が、局所特徴点の対応点マッチング結果を用いて推定されるホモグラフィ行列を用いた推定を含むことを特徴とする請求項2に記載の天井地図作成方法。
  4. 複数種類の前記スケール推定が、局所特徴点の対応点マッチング結果を用いて推定される剛体変換行列を用いた推定を含むことを特徴とする請求項2に記載の天井地図作成方法。
  5. 複数種類の前記スケール推定が、テンプレートマッチングを用いて推定される並進変換行列を用いた推定を含むことを特徴とする請求項2に記載の天井地図作成方法。
  6. 複数種類の前記スケール推定が、直近過去の前記天井画像の前記スケールに基づく画像間の並進変換行列を用いた推定を含むことを特徴とする請求項2に記載の天井地図作成方法。
  7. 前記スケールを推定するステップは、撮影の時系列順に並べた複数の前記天井画像の前記スケールに対し、平滑化処理を実行するステップを含むことを特徴とする請求項1〜請求項6のいずれかに記載の天井地図作成方法。
  8. 前記天井画像を貼り合わせるステップは、
    前記天井地図を複数のブロックに分割するステップと、
    i番目の前記天井画像の画像座標系から天井地図座標系へのアフィン変換行列Aiを算出するステップと、
    前記天井地図の前記ブロックの中心座標に最も近い前記天井画像を、当該ブロックに貼り合わせるステップとを含むことを特徴とする請求項1〜請求項7のいずれかに記載の天井地図作成方法。
  9. 床面の上を移動可能なカメラが移動しながら天井を撮影して作成された複数の天井画像及び、撮影時の前記カメラの位置を検出して作成された位置情報を取得するステップと、
    同一のオブジェクトが写っている互いにコビジブルな関係にある前記天井画像に対し、前記位置情報から得られる前記カメラの位置の移動量と両天井画像における前記オブジェクトの移動量との比で表されるスケールを推定するステップと、
    複数の前記天井画像を、対応する前記スケールに応じて天井地図に適合する大きさに変換した上で貼り合わせ、前記天井地図を作成するステップと、を実行するように構成されている天井地図作成装置。
  10. 床面の上を移動可能なカメラにより、移動しながら天井を撮影して作成された複数の天井画像及び、天井撮影時の前記カメラの位置を検出して作成された位置情報を取得するステップと、
    同一のオブジェクトが写っている互いにコビジブルな関係にある前記天井画像に対し、前記位置情報から得られる前記カメラの位置の移動量と両天井画像における前記オブジェクトの移動量との比で表されるスケールを推定するステップと、
    複数の前記天井画像を、対応する前記スケールに応じて天井地図に適合する大きさに変換した上で貼り合わせ、前記天井地図を作成するステップと、コンピュータに実行させることを特徴とする天井地図作成プログラム。
JP2017156019A 2017-08-10 2017-08-10 天井地図作成方法、天井地図作成装置及び天井地図作成プログラム Active JP6761786B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017156019A JP6761786B2 (ja) 2017-08-10 2017-08-10 天井地図作成方法、天井地図作成装置及び天井地図作成プログラム
DE102018212652.6A DE102018212652B4 (de) 2017-08-10 2018-07-30 Deckenkartenerstellungsverfahren, deckenkartenerstellungsvorrichtung und deckenkartenerstellungsprogramm
US16/055,456 US10580208B2 (en) 2017-08-10 2018-08-06 Ceiling map building method, ceiling map building device, and ceiling map building program
CN201810901286.9A CN109389602B (zh) 2017-08-10 2018-08-09 天花板地图构建方法、构建装置以及构建程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017156019A JP6761786B2 (ja) 2017-08-10 2017-08-10 天井地図作成方法、天井地図作成装置及び天井地図作成プログラム

Publications (2)

Publication Number Publication Date
JP2019036804A JP2019036804A (ja) 2019-03-07
JP6761786B2 true JP6761786B2 (ja) 2020-09-30

Family

ID=65084611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017156019A Active JP6761786B2 (ja) 2017-08-10 2017-08-10 天井地図作成方法、天井地図作成装置及び天井地図作成プログラム

Country Status (4)

Country Link
US (1) US10580208B2 (ja)
JP (1) JP6761786B2 (ja)
CN (1) CN109389602B (ja)
DE (1) DE102018212652B4 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110197095B (zh) * 2019-05-13 2023-08-11 深圳市普渡科技有限公司 机器人识别定位标识的方法及系统
CN112773272B (zh) * 2020-12-29 2022-10-18 深圳市杉川机器人有限公司 移动方向确定方法、装置、扫地机器人和存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05242204A (ja) * 1992-02-27 1993-09-21 Sekisui House Ltd 建造物及びその周辺の仮想完成画像の作成表示方法
JPH07131633A (ja) * 1993-11-08 1995-05-19 Fujitsu General Ltd 画像合成装置
GB2316169A (en) * 1996-08-08 1998-02-18 Secr Defence Optical detection system
JP4042517B2 (ja) 2002-10-09 2008-02-06 株式会社日立製作所 移動体およびその位置検出装置
JP4793120B2 (ja) * 2006-06-21 2011-10-12 ソニー株式会社 手振れ補正方法、手振れ補正方法のプログラム、手振れ補正方法のプログラムを記録した記録媒体及び手振れ補正装置
JP4725526B2 (ja) * 2006-08-28 2011-07-13 ソニー株式会社 情報処理装置、撮像装置、情報処理システム、装置制御方法及びプログラム
US8593506B2 (en) 2007-03-15 2013-11-26 Yissum Research Development Company Of The Hebrew University Of Jerusalem Method and system for forming a panoramic image of a scene having minimal aspect distortion
JP5365969B2 (ja) * 2007-11-13 2013-12-11 富士ゼロックス株式会社 画像処理装置及びプログラム
KR20090077547A (ko) * 2008-01-11 2009-07-15 삼성전자주식회사 이동 로봇의 경로 계획 방법 및 장치
JP2010066972A (ja) * 2008-09-10 2010-03-25 Fujifilm Corp 画像処理装置、画像処理方法およびプログラム
KR101538775B1 (ko) * 2008-09-12 2015-07-30 삼성전자 주식회사 전방 영상을 이용한 위치 인식 장치 및 방법
JP5251410B2 (ja) * 2008-10-03 2013-07-31 株式会社ニコン カメラワーク算出プログラム、撮像装置及びカメラワーク算出方法
US8655019B2 (en) * 2009-09-24 2014-02-18 Panasonic Corporation Driving support display device
US8823813B2 (en) * 2011-06-06 2014-09-02 Apple Inc. Correcting rolling shutter using image stabilization
JP6107081B2 (ja) * 2012-11-21 2017-04-05 富士通株式会社 画像処理装置、画像処理方法及びプログラム
JP6550643B2 (ja) * 2014-03-14 2019-07-31 本田技研工業株式会社 動作推定装置、ロボット、及び動作推定方法
WO2015199554A2 (en) * 2014-06-27 2015-12-30 Crown Equipment Limited Vehicle positioning or navigation utilizing associated feature pairs
JP6704935B2 (ja) * 2015-04-22 2020-06-03 シグニファイ ホールディング ビー ヴィSignify Holding B.V. 照明配置図作成器
FR3038482B1 (fr) * 2015-06-30 2017-08-11 Parrot Bloc camera apte a etre embarque dans un drone pour cartographier un terrain et procede de gestion de capture d'images par un bloc camera
JP2017059049A (ja) * 2015-09-17 2017-03-23 キヤノン株式会社 画像処理装置およびその制御方法
JP6521845B2 (ja) * 2015-11-22 2019-05-29 国立大学法人埼玉大学 心拍に連動する周期的変動の計測装置及び計測方法
CN105425807B (zh) * 2016-01-07 2018-07-03 朱明� 一种基于人工路标的室内机器人导航方法及装置
JP2017130875A (ja) * 2016-01-22 2017-07-27 株式会社セイコウ 基地局設置情報管理システム
CN106370188A (zh) * 2016-09-21 2017-02-01 旗瀚科技有限公司 一种基于3d摄像机的机器人室内定位与导航方法
CN106651990B (zh) * 2016-12-23 2020-08-11 芜湖哈特机器人产业技术研究院有限公司 一种室内地图构建方法及基于室内地图的室内定位方法

Also Published As

Publication number Publication date
US10580208B2 (en) 2020-03-03
US20190051042A1 (en) 2019-02-14
DE102018212652A1 (de) 2019-02-14
CN109389602A (zh) 2019-02-26
DE102018212652B4 (de) 2023-12-21
JP2019036804A (ja) 2019-03-07
CN109389602B (zh) 2022-02-11

Similar Documents

Publication Publication Date Title
US9420265B2 (en) Tracking poses of 3D camera using points and planes
JP4692371B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム、および画像処理プログラムを記録した記録媒体、ならびに移動物体検出システム
CA2662355C (en) Mosaic oblique images and methods of making and using same
JP4363295B2 (ja) ステレオ画像による平面推定方法
JP4906683B2 (ja) カメラパラメータ推定装置およびカメラパラメータ推定プログラム
CN113205447A (zh) 用于车道线识别的道路图片标注方法和装置
JP2006065429A (ja) 撮影画像の変化抽出装置及び方法
JP6761786B2 (ja) 天井地図作成方法、天井地図作成装置及び天井地図作成プログラム
CN113269671A (zh) 一种基于局部和全局特征的桥梁表观全景图生成方法
JP6410231B2 (ja) 位置合わせ装置、位置合わせ方法及び位置合わせ用コンピュータプログラム
JP4882577B2 (ja) 物体追跡装置およびその制御方法、物体追跡システム、物体追跡プログラム、ならびに該プログラムを記録した記録媒体
Cerri et al. Free space detection on highways using time correlation between stabilized sub-pixel precision IPM images
JP6228239B2 (ja) プリミティブの組を用いてデータをレジストレーションする方法
CN107067368B (zh) 基于影像变形的街景影像拼接方法及系统
CN116105721B (zh) 地图构建的回环优化方法、装置、设备及存储介质
JP6886136B2 (ja) 位置合わせ装置、位置合わせ方法及び位置合わせ用コンピュータプログラム
CN114463170B (zh) 一种针对agv应用的大场景图像拼接方法
JP4639044B2 (ja) 輪郭形状抽出装置
CN114199250A (zh) 一种基于卷积神经网络的景象匹配导航方法及装置
JP2003346144A (ja) 建物外形抽出方法およびシステム
JP2004145592A (ja) 移動ベクトル抽出装置及び方法及びプログラム及びその記録媒体
JPH11190611A (ja) 3次元計測方法およびその方法を用いた3次元計測処理装置
CN116681590B (zh) 一种无人机航拍图像快速拼接方法
CN117036489B (zh) 基于人工标识和四目全景相机的机器人定位方法及设备
CN113723373B (zh) 一种基于无人机全景影像的违建检测方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200824

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200901

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200907

R150 Certificate of patent or registration of utility model

Ref document number: 6761786

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150