(57)【要約】      （修正有）【課題】実距離に基づく自己位置を容易に推定することができる推定システムを提供する。【解決手段】推定システム１は、撮像部１１と、推定部１３とを具備する。撮像部は、単眼の撮像部であって、画像と、前記画像に含まれる被写体までの距離に関する情報と、を一度の撮影で取得可能である。推定部は、画像と距離に関する情報とを用いて、撮像部の位置を推定する。【選択図】図１
2019011971.tif 000002
【特許請求の範囲】
【請求項１】
単眼の撮像部であって、画像と、前記画像に含まれる被写体までの距離に関する情報と、を一度の撮影で取得可能な撮像部と、
前記画像と前記距離に関する情報とを用いて、前記撮像部の位置を推定する推定部と、
を具備する推定システム。
【請求項２】
被写体を撮像して、符号化情報を出力する撮像部と、
前記符号化情報を用いて、実距離に基づく前記撮像部の位置を推定する推定部と、
を具備する推定システム。
【請求項３】
前記撮像部は、前記被写体と前記撮像部との実距離を符号化して撮像して、前記符号化情報を出力し、
前記推定部は、前記符号化情報を画像と距離に関する情報とに変換し、前記撮像部の位置を実距離に基づいて推定する請求項２記載の推定システム。
【請求項４】
前記撮像部は前記被写体を含む画像から前記符号化情報を出力する請求項３に記載の推定システム。
【請求項５】
前記撮像部は少なくとも２の前記画像を取得し、
前記推定部は、
前記少なくとも２の画像から複数の特徴点を検出し、
前記複数の特徴点を用いて、前記撮像部の位置を相対スケールに基づいて推定し、
前記距離に関する情報を用いて、前記推定された撮像部の位置を実距離に基づいて推定する請求項１または請求項４記載の推定システム。
【請求項６】
前記撮像部は少なくとも２の前記画像を取得し、
前記推定部は、
前記少なくとも２の画像から複数の特徴点を検出し、
前記複数の特徴点と、前記複数の特徴点に対応する前記距離に関する情報とを用いて、前記撮像部の位置を実スケールに基づいて推定し、前記複数の特徴点に対応する複数の三次元座標を実距離に基づいて推定する請求項１または請求項４記載の推定システム。
【請求項７】
前記距離に関する情報は、前記撮像部から、前記画像上の各画素に撮像された被写体までの第１距離と、前記第１距離の妥当性を示す信頼度とを含む請求項１または請求項３記載の推定システム。
【請求項８】
前記信頼度は、前記第１距離の推定のために用いられる指標に基づき決定される請求項７記載の推定システム。
【請求項９】
前記推定部は、前記信頼度をさらに用いて、前記撮像部の位置を推定する請求項７または請求項８記載の推定システム。
【請求項１０】
前記推定部は、さらに、前記撮像部の姿勢を実距離に基づいて推定する請求項１または２記載の推定システム。
【請求項１１】
前記推定部は、さらに、前記撮像部の位置を含む領域の第１地図を実距離に基づいて推定する請求項１または２記載の推定システム。
【請求項１２】
前記撮像部は、開口部に、光学中心に対して非点対称な形状をそれぞれ有する複数の領域を備える請求項１または請求項２記載の推定システム。
【請求項１３】
前記複数の領域は、互いに異なる波長領域を透過する請求項１２記載の推定システム。
【請求項１４】
前記複数の領域は、第１フィルタ領域と第２フィルタ領域とを含み、
前記第１フィルタ領域を透過した光線に基づく第１画像の第１ぼけ関数は、非点対称であり、
前記第２フィルタ領域を透過した光線に基づく第２画像の第２ぼけ関数は、非点対称であり、
前記第１ぼけ関数は、前記第２ぼけ関数とは異なる請求項１２記載の推定システム。
【請求項１５】
前記撮像部は、互いに異なる波長帯域の光を受光する複数のセンサを有するイメージセンサを用いて、前記被写体と前記撮像部との実距離を符号化して撮像し、前記符号化情報を出力する請求項２記載の推定システム。
【請求項１６】
自動車であって、
請求項１乃至請求項１５のいずれか一項に記載の推定システムと、
前記推定部によって推定される前記撮像部の位置に基づいて、前記自動車を移動させる駆動機構と、を備える自動車。
【請求項１７】
前記推定部は、さらに、前記推定された撮像部の位置と、入力された第２地図とを用いて、前記第２地図上での前記撮像部の位置を推定する請求項１６記載の自動車。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、推定システム、および当該推定システムが適用される自動車に関する。
【背景技術】
【０００２】
近年、ロボット等の自己位置・姿勢を推定する技術が利用されている。例えば、未知環境下においてロボットや自動車のような移動体が移動する際に、この自己位置・姿勢推定技術を用いることで、カメラやセンサから得られる情報から周囲環境の地図を作成し、その地図上での自己位置や自己姿勢を推定可能となる。また、この地図や自己位置、自己姿勢を考慮することで、例えば、効率の良い移動経路が生成可能になる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３０４２６８号公報
【非特許文献】
【０００４】
【非特許文献１】ラウル・マー−アータル（Raul Mur-Artal）、外１名、“ＯＲＢ−ＳＬＡＭ２：単眼、ステレオおよびＲＧＢ−ＤカメラのためのオープンソースＳＬＡＭシステム（ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras）”、［online］、平成２８年１０月２０日、コーネル大学ライブラリー（Cornell University Library）、［平成２９年５月２４日検索］、インターネット＜URL：https://arxiv.org/pdf/1610.06475＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実際の空間で移動体が移動する経路を決定するためには、推定される自己位置が実距離に基づいている必要がある。
【０００６】
本発明が解決しようとする課題は、実距離に基づく自己位置を容易に推定できる推定システムおよび自動車を提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、推定システムは、撮像部と推定部とを具備する。撮像部は、単眼の撮像部であって、画像と、前記画像に含まれる被写体までの距離に関する情報と、を一度の撮影で取得可能である。推定部は、前記画像と前記距離に関する情報とを用いて、自己位置を推定する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る推定システムの構成を示すブロック図。
【図２】同実施形態の推定システムに用いられる撮像装置のシステム構成の例を示すブロック図。
【図３】図２の撮像装置に設けられるフィルタの構成の例を示す図。
【図４】図２の撮像装置に設けられるフィルタの構成の別の例を示す図。
【図５】図３のフィルタの透過率特性の例を示す図。
【図６】図３のフィルタが配置されたカラー開口の光線変化と、ぼけの形状とを説明するための図。
【図７】図２の撮像装置によって撮像された画像上のぼけを利用して、被写体までの距離を算出する方法の例を説明するための図。
【図８】同実施形態の推定システムに用いられる情報処理装置のシステム構成の例を示すブロック図。
【図９】図２の撮像装置の機能構成の例を示すブロック図。
【図１０】図８の情報処理装置の機能構成の例を示すブロック図。
【図１１】同実施形態の推定システムによって実行される処理の手順の例を示すフローチャート。
【図１２】同実施形態の推定システムによって実行されるＳｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ（ＳＬＡＭ）処理の手順の例を示すフローチャート。
【図１３】撮像画像を取得してから同実施形態の推定システムによって実行される実スケールキーフレーム探索処理を行うまでの手順の例を示すフローチャート。
【図１４】同実施形態の推定システムによって実行される処理の手順の別の例を示すフローチャート。
【図１５】同実施形態の推定システムを備える移動体の構成を示すブロック図。
【図１６】同実施形態の推定システムを備える自動車の外観の例を示す斜視図。
【図１７】同実施形態の推定システムを備えるドローンの外観の例を示す斜視図。
【図１８】同実施形態の推定システムを備えるロボットの外観の例を示す斜視図。
【図１９】同実施形態の推定システムを備えるロボットアームの外観の例を示す斜視図。
【発明を実施するための形態】
【０００９】
以下、実施の形態について図面を参照して説明する。  
まず、図１を参照して、一実施形態に係る推定システムの構成を説明する。この推定システム１は、カメラ、カメラを備えるコンピュータ、データを相互に送受信可能なカメラとコンピュータ、または各種電子機器に内蔵される組み込みシステムとして実現され得る。推定システム１は、例えば、撮像部１１と処理部１２と推定部１３とを備える。
【００１０】
撮像部１１は、被写体を撮像するとき、被写体と撮像部１１（カメラ）との間の実際の距離である実距離を符号化して撮像する。撮像部１１は、少なくとも一つのカメラ（例えば、単眼カメラ）を備え、カメラの開口部に符号化開口を設けることにより、被写体から撮像部１１までの距離を符号化して撮像する。つまり、撮像部１１は、単眼で、画像と、画像に含まれる被写体までの距離に関する情報とを一度の撮影で取得可能である。撮像部１１は、撮像により得られた撮像画像である符号化情報を生成し、処理部１２に出力する。
【００１１】
距離の符号化は、撮像過程を変更することにより、例えば、カメラの開口部に入射する光の位相、波長、および強度の少なくともいずれか一つを変化させることにより、実現される。したがって、変化した光に基づく撮像画像に、当該変化の特性が考慮された特定の処理を施すことにより、撮像画像に符号化された距離を算出（推定）することができる。撮像部１１は、画像と距離に関する情報とを同期して記録できるものであれば、符号化開口に限らず、他の形態のコンピュテーショナルフォトグラフィを用いるものであってもよい。
【００１２】
処理部１２は、符号化情報を処理することにより、符号化情報を画像と距離に関する情報とに変換する。具体的な変換方法については図２から図７を参照して後述する。処理部１２は、画像と距離に関する情報とを推定部１３に出力する。
【００１３】
推定部１３は、符号化情報を用いて、実距離に基づいて、自己位置と自己姿勢と地図の少なくともいずれか一つを推定する。より具体的には、推定部１３は、例えば、画像と距離に関する情報とを用いて、実距離に基づいて、自己位置と自己姿勢と地図の少なくともいずれか一つを推定する。実距離に基づく位置や座標は、実寸大の三次元空間上の位置や座標として表現されている。推定部１３は、例えば、少なくとも自己位置を推定する。
【００１４】
自己位置は、例えば、撮像部１１の位置を示す。また、自己姿勢は、例えば基準軸に対する姿勢であってもよい。なお、自己位置は、撮像部１１の位置に限らず、任意の位置であってもよい。この任意の位置と撮像部１１との位置関係は、予め取得されていてもよい。そのような自己位置として、例えば、撮像部１１または撮像部１１を含む推定システム１が設けられる移動体（例えば、自動車、ロボット等）の中心の位置が用いられ得る。自己姿勢は、例えば、撮像部１１に設けられるレンズの光軸の姿勢を示す。地図は、例えば、画像上の複数の特徴点に対応する複数の三次元座標によって示される。地図は、例えば自己位置を含む領域の地図である。地図は、例えば三次元で表される。推定部１３は、画像と距離に関する情報とを用いて、例えば、Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ（ＳＬＡＭ）処理を行うことにより、実スケールに基づく自己位置、自己姿勢、および地図の少なくともいずれか一つを推定することができる。
【００１５】
実スケールに基づく位置や座標は、実寸大の三次元空間上の位置や座標として表現されている。したがって、例えば、自己位置と地図上の複数の点の三次元座標とが推定された場合、推定された自己位置から地図上のある点（三次元座標）までの距離は、撮像の対象となった実際の空間における、自己位置から、その地図上の点に対応する被写体上の点までの距離に相当し、高精度の推定が行われたならば略一致する。
【００１６】
推定部１３は、例えばＲＧＢ−Ｄ  ＳＬＡＭを適用して、実スケールに基づいて自己位置、自己姿勢、および地図の少なくともいずれかを推定することができる。ＲＧＢ−Ｄ  ＳＬＡＭは、ＲＧＢ画像と奥行きマップ（ｄｅｐｔｈ  ｍａｐ）とを用いた手法であるので、画像と距離に関する情報とが用いられる推定システム１に適用することが容易である。一般に、ＲＧＢ画像と奥行きマップとは、データ取得時のタイムスタンプに基づいて、すなわち、ＲＧＢ画像がカメラによって取得された時点を示すタイムスタンプと、奥行きマップが距離センサ等によって取得された時点を示すタイムスタンプとに基づいて、同期させる必要がある。これに対して、本実施形態の推定システム１で用いられる画像と距離に関する情報とは、例えば、符号化開口（例えば、カラー開口）を備える単眼カメラを用いて取得されるので、既に同期されている。そのため、推定システム１では、データの同期のための処理が必要とされず、その分の計算コストを低減したり、同期のための処理装置を省略したりすることができる。
【００１７】
あるいは、推定部１３は、例えばＭｏｎｏｃｕｌａｒ  ＳＬＡＭを適用して、相対スケールに基づいて画像から自己位置や自己姿勢、地図を推定する。その後、推定部１３は、距離に関する情報をさらに用いて、推定された自己位置や自己姿勢、地図を実スケールに基づいて拡大または縮小（すなわち、スケーリング）することにより、実スケール（実距離）に基づく自己位置や自己姿勢、地図を推定することができる。
【００１８】
推定部１３は、上述したＲＧＢ−Ｄ  ＳＬＡＭやＭｏｎｏｃｕｌａｒ  ＳＬＡＭに限らず、様々なＳＬＡＭの手法（例えば、非特許文献１参照）を適用してＳＬＡＭ処理を行うことができる。
【００１９】
実スケールに基づく自己位置や自己姿勢、地図の推定には、例えば、ステレオカメラを用いる方法、単眼カメラと距離センサとを用いる方法、単眼カメラと被写体に関する辞書データとを用いる方法等がある。ステレオカメラを用いる方法や、単眼カメラと距離センサとを用いる方法では、移動体に複数のカメラやセンサを設置するためのスペースが必要になり、またカメラとセンサ間でデータを同期しなければならない。また、単眼カメラと物体に関する辞書データを用いる方法では、物体の三次元形状に関する辞書データを準備しておく必要があり、また辞書データに示される物体が撮影されなければ、実スケールに基づく推定ができない。本実施形態の推定システム１は、単眼カメラを用いて、一度の撮影で画像と距離情報とを取得できるので、画像と距離情報との同期の必要がなく、且つ物体の辞書データを準備しておく必要がなく、自己位置・姿勢や地図を容易に推定することができる。
【００２０】
なお、推定システム１の撮像部１１、処理部１２、および推定部１３は、一つの装置内に設けられていてもよいし、複数の装置に分かれて設けられていてもよい。以下では、推定システム１は、撮像部１１と処理部１２とを有する撮像装置と、この撮像装置との間でデータを相互に送受信可能な情報処理装置とを備える場合を例示する。なお、処理部１２は、撮像装置ではなく、情報処理装置に組み込まれていてもよい。
【００２１】
図２は、撮像部１１および処理部１２を備える撮像装置２のシステム構成の例を示す。撮像部１１は、例えば、フィルタ２１、レンズ２２およびイメージセンサ２３を備える。処理部１２は、例えばＣＰＵ２４で構成される。撮像装置２は、さらに記憶部を備える。記憶部は、例えば、ＲＡＭ２５、不揮発性メモリ２６、メモリカードスロット２７で構成される。撮像装置２は、さらに通信デバイス２８を備えていてもよい。ＣＰＵ２４は、例えば、不揮発性メモリ２６からＲＡＭ２５にロードされた特定のプログラムを実行することにより、処理部１２として機能する。イメージセンサ２３、ＣＰＵ２４、ＲＡＭ２５、不揮発性メモリ２６、メモリカードスロット２７、および通信デバイス２８は、例えば、バス２０を介して相互に接続され得る。
【００２２】
イメージセンサ２３は、フィルタ２１とレンズ２２とを透過した光を受光し、受光した光を電気信号に変換（光電変換）する。イメージセンサ２３には、例えばＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）やＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）が用いられる。イメージセンサ２３は、例えば、赤色（Ｒ）の光を受光する撮像素子と、緑色（Ｇ）の光を受光する撮像素子と、青色（Ｂ）の光を受光する撮像素子とを備える。各撮像素子は、対応する波長帯域の光を受光し、受光した光を電気信号に変換する。この電気信号をＡ／Ｄ変換することによりカラー画像を生成することができる。以下では、画像のＲ成分、Ｇ成分、Ｂ成分を、それぞれＲ画像、Ｇ画像、Ｂ画像とも称する。なお、赤色、緑色、青色の撮像素子毎の電気信号を用いて、Ｒ画像、Ｇ画像、Ｂ画像をそれぞれ生成することもできる。
【００２３】
ＣＰＵ２４は、撮像装置２内の様々なコンポーネントの動作を制御するプロセッサである。ＣＰＵ２４は、ストレージデバイスである不揮発性メモリ２６からＲＡＭ２５にロードされる様々なプログラムを実行する。不揮発性メモリ２６には、イメージセンサ２３によって出力された電気信号に基づく撮像画像や、その画像の処理結果も格納され得る。
【００２４】
メモリカードスロット２７には、ＳＤメモリカードやＳＤＨＣメモリカードのような各種の可搬記憶媒体が挿入され得る。メモリカードスロット２７に記憶媒体が挿入された場合、その記憶媒体に対するデータの書き込みおよび読み出しが実行され得る。データは、例えば画像データや距離に関するデータである。
【００２５】
通信デバイス２８は、有線通信または無線通信を実行するように構成されたインターフェース機器である。通信デバイス２８は、信号を有線または無線送信する送信部と、信号を有線または無線受信する受信部とを含む。
【００２６】
次いで、図３は、フィルタ２１の構成の例を示す。フィルタ２１は、互いに異なる光の波長帯域（色成分）を透過する複数のフィルタ領域を有し、２以上のフィルタ領域は、撮像装置２の光学中心２１３に対して非点対称な形状である。フィルタ２１は、例えば、二色のカラーフィルタ領域である第１フィルタ領域２１１と第２フィルタ領域２１２とで構成される。フィルタ２１の中心は、撮像装置２（レンズ２２）の光学中心２１３と一致している。第１フィルタ領域２１１および第２フィルタ領域２１２はそれぞれ、光学中心２１３に対して非点対称である形状を有している。また、例えば、二つのフィルタ領域２１１，２１２は重複せず、且つ二つのフィルタ領域２１１，２１２によってフィルタ２１の全領域を構成している。図３に示す例では、第１フィルタ領域２１１および第２フィルタ領域２１２はそれぞれ、円形のフィルタ２１が光学中心２１３を通る線分で分割された半円の形状を有している。第１フィルタ領域２１１は、例えばイエロー（Ｙ）のフィルタ領域であり、第２フィルタ領域２１２は、例えばシアン（Ｃ）のフィルタ領域である。なお、第１フィルタ領域２１１がマゼンタ（Ｍ）のフィルタ領域であって、第２フィルタ領域２１２がイエロー（Ｙ）のフィルタ領域であってもよい。さらに、第１フィルタ領域２１１がシアン（Ｃ）のフィルタ領域であって、第２フィルタ領域２１２がマゼンタ（Ｍ）のフィルタ領域であってもよい。
【００２７】
各カラーフィルタが透過する波長領域は異なる。一つのフィルタ領域が透過する光の波長帯域の一部と、別の一つのカラーフィルタ領域が透過する光の波長帯域の一部は、例えば重複する。一つのカラーフィルタ領域が透過する光の波長帯域は、例えば別の一つのカラーフィルタ領域が透過する光の波長帯域を含んでもよい。
【００２８】
なお、第１フィルタ領域２１１と第２フィルタ領域２１２とは、任意の波長帯域の透過率を変更するフィルタ、任意方向の偏光光を通過させる偏光フィルタ、または任意の波長帯域の集光パワーを変更するマイクロレンズであってもよい。例えば、任意の波長帯域の透過率を変更するフィルタは、原色フィルタ（ＲＧＢ）、補色フィルタ（ＣＭＹ）、色補正フィルタ（ＣＣ−ＲＧＢ／ＣＭＹ）、赤外線・紫外線カットフィルタ、ＮＤフィルタ、または遮蔽板であってもよい。第１フィルタ領域２１１や第２フィルタ領域２１２がマイクロレンズである場合は、レンズ２２により光線の集光の分布に偏りが生じることでぼけの形状が変化する。
【００２９】
また、図４は、三つ以上のカラーフィルタ領域を有するフィルタ２１Ａ，２１Ｂ，２１Ｃの例を示す。各フィルタ２１Ａ，２１Ｂ，２１Ｃは、フィルタ２１の代わりに用いられ得る。上述したように、各フィルタ領域は、撮像装置２の光学中心２１３に対して非点対称な形状を有している。
【００３０】
図４（Ａ）に示すフィルタ２１Ａは、三つのフィルタ領域２３１，２３２，２３３を有する。第１フィルタ領域２３１は、光学中心２１３を通る線分に対して対称な瞳形状を有し、第２フィルタ領域２３２および第３フィルタ領域２３３は、瞳形状の第１フィルタ領域２３１の左右にそれぞれ隣接する三日月状の領域である。各フィルタ領域２３１，２３２，２３３は重複せず、且つ三つのフィルタ領域２３１，２３２，２３３によってフィルタ２１Ａの全領域を構成している。第１フィルタ領域２３１は、例えば透明のフィルタ領域であり、第２フィルタ領域２３２は、例えばイエロー（Ｙ）のフィルタ領域であり、第３フィルタ領域２３３は、例えばシアン（Ｃ）のフィルタ領域である。なお、第２フィルタ領域２３２がマゼンタ（Ｍ）のフィルタ領域であり、第３フィルタ領域２３３がイエロー（Ｙ）のフィルタ領域であってもよい。また、第２フィルタ領域２３２がシアン（Ｃ）のフィルタ領域であり、第３フィルタ領域２３３がマゼンタ（Ｍ）のフィルタ領域であってもよい。このフィルタ２１Ａでは、中心の領域を含む第１フィルタ領域２３１で全ての光線が透過されるので、高い透過率（例えば、９０％）で透過された光線に基づく画像を得ることができる。
【００３１】
図４（Ｂ）に示すフィルタ２１Ｂは、三つのフィルタ領域２４１，２４２，２４３を有する。第１フィルタ領域２４１および第２フィルタ領域２４２は、円形のフィルタ２１Ｂの直径の半分の直径を有する円形を有し、各フィルタ領域２４１，２４２が、レンズ２２の光学中心２１３を通る線分に対して対称に配置されている。これら第１フィルタ領域２４１および第２フィルタ領域２４２を除いた、フィルタ２１Ｂ上の残りの領域が、第３フィルタ領域２４３である。第１フィルタ領域２４１は、例えばシアン（Ｃ）のフィルタ領域であり、第２フィルタ領域２４２は、例えばイエロー（Ｙ）のフィルタ領域であり、第３フィルタ領域２４３は、例えば緑（Ｇ）のフィルタ領域である。このフィルタ２１Ｂを用いて得られるＲ画像およびＢ画像では、ぼけ関数を均等に制御することができる。なお、第１フィルタ領域２４１がマゼンタ（Ｍ）のフィルタ領域であり、第２フィルタ領域２４２がイエロー（Ｙ）のフィルタ領域であり、第３フィルタ領域２４３が赤（Ｒ）のフィルタ領域であってもよい。また、第１フィルタ領域２４１がシアン（Ｃ）のフィルタ領域であり、第２フィルタ領域２４２がマゼンタ（Ｍ）のフィルタ領域であり、第３フィルタ領域２４３が青（Ｂ）のフィルタ領域であってもよい。
【００３２】
図４（Ｃ）に示すフィルタ２１Ｃは、四つのフィルタ領域２５１，２５２，２５３，２５４を有する。第１フィルタ領域２５１、第２フィルタ領域２５２、および第３フィルタ領域２５３は正方形の形状を有し、これらフィルタ領域２５１，２５２，２５３を除く残りの部分が第４フィルタ領域２５４である。第１フィルタ領域２５１は、例えば赤（Ｒ）のフィルタ領域である。第２フィルタ領域２５２は、例えば緑（Ｇ）のフィルタ領域である。第３フィルタ領域２５３は、例えば青（Ｂ）のフィルタ領域である。また、第４フィルタ領域２５４は、例えば黒（遮蔽）のフィルタ領域である。
【００３３】
以下では、説明を分かりやすくするために、図３に示すフィルタ２１において、第１フィルタ領域２１１がイエロー（Ｙ）のフィルタ領域であり、第２フィルタ領域２１２がシアン（Ｃ）のフィルタ領域である場合を主に例示する。
【００３４】
このようなフィルタ２１がカメラの開口部に配置されることによって、開口部が二色で二分割された構造開口であるカラー開口が構成される。このカラー開口を透過する光線に基づき、イメージセンサ２３を用いて画像が生成される。イメージセンサ２３に入射する光の光路上において、レンズ２２とイメージセンサ２３との間にフィルタ２１が配置されてもよい。また、レンズ２２が複数設けられる場合には、フィルタ２１が２つのレンズ２２の間に配置されてもよい。
【００３５】
イメージセンサ２３の緑（Ｇ）の光を受光する撮像素子に対応する波長帯域の光は、イエローの第１フィルタ領域２１１とシアンの第２フィルタ領域２１２の両方を透過する。イメージセンサ２３の赤（Ｒ）の光を受光する撮像素子に対応する波長帯域の光は、イエローの第１フィルタ領域２１１を透過し、シアンの第２フィルタ領域２１２を透過しない。イメージセンサ２３の青（Ｂ）の光を受光する撮像素子に対応する波長帯域の光は、シアンの第２フィルタ領域２１２を透過し、イエローの第１フィルタ領域２１１を透過しない。
【００３６】
なお、ある波長帯域の光がフィルタまたはフィルタ領域を透過するとは、フィルタまたはフィルタ領域が高い透過率でその波長帯域の光を透過し、そのフィルタまたはフィルタ領域による当該波長帯域の光の減衰（すなわち、光量の低下）が極めて小さいことを意味する。また、ある波長帯域の光がフィルタまたはフィルタ領域を透過しないとは、光がフィルタまたはフィルタ領域に遮蔽されることであり、例えば、フィルタまたはフィルタ領域が低い透過率でその波長帯域の光を透過し、そのフィルタまたはフィルタ領域による当該波長帯域の光の減衰が極めて大きいことを意味する。フィルタまたはフィルタ領域は、例えば、ある波長帯域の光を吸収することにより光を減衰させる。
【００３７】
図５は、第１フィルタ領域２１１および第２フィルタ領域２１２の透過率特性の例を示す。なお、可視光の波長帯域のうち７００ｎｍより長い波長の光に対する透過率は図示を省略してあるが、その透過率は７００ｎｍの場合に近いものである。図５に示すイエローの第１フィルタ領域２１１の透過率特性２１５では、波長帯域が６２０ｎｍから７５０ｎｍ程度のＲ画像に対応する光と、波長帯域が４９５ｎｍから５７０ｎｍ程度のＧ画像に対応する光とが高い透過率で透過され、波長帯域が４５０ｎｍから４９５ｎｍ程度のＢ画像に対応する光がほとんど透過されていない。また、シアンの第２フィルタ領域２１２の透過率特性２１６では、Ｂ画像およびＧ画像に対応する波長帯域の光が高い透過率で透過され、Ｒ画像に対応する波長帯域の光がほとんど透過されていない。
【００３８】
したがって、Ｒ画像に対応する波長帯域の光はイエローの第１フィルタ領域２１１のみを透過し、Ｂ画像に対応する波長帯域の光はシアンの第２フィルタ領域２１２のみを透過する。Ｇ画像に対応する波長帯域の光は、第１フィルタ領域２１１と第２フィルタ領域２１２を透過する。
【００３９】
このようなＲ画像、Ｂ画像および画像上のぼけの形状は被写体までの距離ｄに応じて変化する。また、各フィルタ領域２１１，２１２が光学中心２１３に対して非点対称な形状であるので、Ｒ画像およびＢ画像上のぼけの偏りの方向が、撮像点から見て、被写体が合焦位置よりも手前にあるか、それとも奥にあるかによってそれぞれ反転する。この合焦位置は、撮像点から合焦距離ｄｆだけ離れた点であり、画像上にぼけが発生しないピントが合う位置である。
【００４０】
図６を参照して、フィルタ２１が配置されたカラー開口による光線変化と、ぼけの形状とについて説明する。
【００４１】
まず、被写体５が合焦距離ｄｆ（合焦位置）よりも奥にある場合（ｄ＞ｄｆ）、イメージセンサ２３によって撮像された画像にはぼけが発生する。この画像上のぼけの形状を示すぼけ関数は、Ｒ画像、Ｇ画像およびＢ画像でそれぞれ異なっている。すなわち、Ｒ画像のぼけ関数２０１Ｒは左側に偏ったぼけの形状を示し、Ｇ画像のぼけ関数２０１Ｇは偏りのないぼけの形状を示し、Ｂ画像のぼけ関数２０１Ｂは右側に偏ったぼけの形状を示している。
【００４２】
次に、被写体５が合焦距離ｄｆにある場合（ｄ＝ｄｆ）、イメージセンサ２３によって撮像された画像にはほとんどぼけが発生しない。この画像上のぼけの形状を示すぼけ関数は、Ｒ画像、Ｇ画像およびＢ画像でほぼ同じである。すなわち、Ｒ画像のぼけ関数２０２Ｒ、Ｇ画像のぼけ関数２０２Ｇ、およびＢ画像のぼけ関数２０２Ｂは、偏りのないぼけの形状を示している。
【００４３】
さらに、被写体５が合焦距離ｄｆよりも手前にある場合（ｄ＜ｄｆ）、イメージセンサ２３によって撮像された画像にはぼけが発生する。この画像上のぼけの形状を示すぼけ関数は、Ｒ画像、Ｇ画像およびＢ画像でそれぞれ異なっている。すなわち、Ｒ画像のぼけ関数２０３Ｒは右側に偏ったぼけの形状を示し、Ｇ画像のぼけ関数２０３Ｇは偏りのないぼけの形状を示し、Ｂ画像のぼけ関数２０３Ｂは左側に偏ったぼけの形状を示している。
【００４４】
このように、被写体５が合焦距離ｄｆよりも手前または奥にある場合、イエローの第１フィルタ領域２１１を透過した光線に基づくＲ画像のぼけ関数２０１Ｒ，２０３Ｒは非対称であり、またシアンの第２フィルタ領域２１２を透過した光線に基づくＢ画像のぼけ関数２０１Ｂ，２０３Ｂも非対称である。そして、そのＲ画像のぼけ関数２０１Ｒ，２０３Ｒは、Ｂ画像のぼけ関数２０１Ｂ，２０３Ｂとは異なっている。
【００４５】
図７は、このような画像上のぼけを利用して被写体５までの距離を算出（推定）する方法を示す。図７に示す例では、フィルタ２１は、イエローの第１フィルタ領域２１１とシアンの第２フィルタ領域２１２とによって構成されている。そのため、Ｒ画像に対応する波長帯域の光が、第１フィルタ領域２１１に対応する部分５１Ｒを通過し、Ｇ画像に対応する波長帯域の光が、第１フィルタ領域２１１および第２フィルタ領域２１２に対応する部分５１Ｇを通過し、Ｂ画像に対応する波長帯域の光が、第２フィルタ領域２１２に対応する部分５１Ｂを通過する。
【００４６】
このようなフィルタ２１を用いて撮像された画像上にぼけが生じた場合、Ｒ画像、Ｇ画像およびＢ画像上のぼけはそれぞれ異なる形状になる。図７に示すように、Ｇ画像のぼけ関数５２Ｇは左右対称であるぼけの形状を表している。また、Ｒ画像のぼけ関数５２ＲおよびＢ画像のぼけ関数５２Ｂは非点対称であるぼけの形状を表し、ぼけの偏りはそれぞれ異なっている。
【００４７】
Ｒ画像のぼけ関数５２ＲおよびＢ画像のぼけ関数５２Ｂには、Ｒ画像およびＢ画像上の非点対称なぼけを左右対称なぼけに補正するためのぼけ補正フィルタ５３，５４が適用され、ぼけ補正フィルタ５３、５４が適用された後のぼけ関数がＧ画像のぼけ関数５２Ｇと一致するかどうかが判定される。ぼけ補正フィルタ５３，５４は複数用意されており、複数のぼけ補正フィルタ５３、５４は、被写体との複数の距離に対応する。あるぼけ補正フィルタ５３，５４が適用されたぼけ関数が、Ｇ画像のぼけ関数５２Ｇと一致した場合には、そのぼけ補正フィルタ５３，５４に対応する距離が、撮影された被写体５までの距離に決定される。
【００４８】
このぼけ関数が一致しているかどうかの判定には、例えば、ぼけ補正フィルタが適用されたＲ画像またはＢ画像と、Ｇ画像との相関が用いられる。したがって、例えば、複数のぼけ補正フィルタから、ぼけ補正フィルタが適用されたぼけ関数と、Ｇ画像のぼけ関数との相関がより高くなるぼけ補正フィルタを探索することで、画像上の各画素に写る被写体までの距離が推定される。
【００４９】
ぼけ補正フィルタが適用されたＲ画像またはＢ画像と、Ｇ画像との相関を示す相関値には、例えば、ＮＣＣ（Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ−Ｃｏｒｒｅｌａｔｉｏｎ）、ＺＮＣＣ（Ｚｅｒｏ−ｍｅａｎ  Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ−Ｃｏｒｒｅｌａｔｉｏｎ）、Ｃｏｌｏｒ  Ａｌｉｇｎｍｅｎｔ  Ｍｅａｓｕｒｅ、等が用いられ得る。
【００５０】
また、あるぼけ補正フィルタ５３，５４が適用されたぼけ関数５５Ｒ，５５Ｂが、Ｇ画像のぼけ関数５２Ｇと一致しているかどうかの判定に、ぼけ補正フィルタが適用されたＲ画像またはＢ画像と、Ｇ画像との相違度が用いられてもよい。この相違度がより低くなる距離を求めることで、被写体までの距離を算出することができる。相違度には、例えば、ＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）、等が用いられ得る。
【００５１】
なお、ここでは、距離自体が算出される例を示したが、距離に関する指標や画像（画素）のぼけに関する指標が算出されるようにしてもよい。算出される距離や指標には、上述した相関値や相違度に基づいて、その距離や指標の妥当性を示す信頼度が付加されていてもよい。例えば、相関値が高い場合または相違度が低い場合には、算出される距離や指標に高い信頼度が付加される。一方、例えば、相関値が低い場合または相違度が高い場合には、算出される距離や指標に低い信頼度が付加される。信頼度は、画素毎に付加されてもよいし、画像に対して付加されてもよい。また、信頼度はいくつかの画素にまたがったものを複数定義しても良い。信頼度が画像に対して付加される場合、例えば、ダウンサンプルした画像に対して１つの信頼度が設定されてもよい。また、画像内の複数の代表画素に与えられる信頼度を基に、画像に対する信頼度を設定してもよい。代表値は、例えば複数の代表画素の信頼度の平均値である。例えば、画像上の各画素について距離が算出（決定）されたときの相関値（または相違度）を全て用いて、それら相関値の最大値または最小値に基づいて信頼度が決定されてもよい。
【００５２】
次いで、図８は、情報処理装置３のシステム構成を示す。情報処理装置３は、撮像装置２（処理部１２）によって出力される画像と距離に関する情報とを用いて、撮像装置２（撮像部１１）の位置、姿勢、および地図を推定する推定部１３の機能を有する。
【００５３】
情報処理装置３は、例えば、ＣＰＵ３１、システムコントローラ３２、主メモリ３３、不揮発性メモリ３４、ＢＩＯＳ−ＲＯＭ３５、通信デバイス３６、エンベデッドコントローラ（ＥＣ）３７等を備える。
【００５４】
ＣＰＵ３１は、情報処理装置３内の様々なコンポーネントの動作を制御するプロセッサである。ＣＰＵ３１は、ストレージデバイスである不揮発性メモリ３４から主メモリ３３にロードされる様々なプログラムを実行する。これらプログラムには、オペレーティングシステム（ＯＳ）３３Ａ、および様々なアプリケーションプログラムが含まれている。アプリケーションプログラムには、ＳＬＡＭプログラム３３Ｂが含まれている。このＳＬＡＭプログラム３３Ｂは、撮像部１１の位置、姿勢、および地図を推定するための命令群を含んでいる。
【００５５】
また、ＣＰＵ３１は、ＢＩＯＳ−ＲＯＭ３５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００５６】
システムコントローラ３２は、ＣＰＵ３１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ３２には、主メモリ３３をアクセス制御するメモリコントローラも内蔵されている。
【００５７】
通信デバイス３６は、有線または無線通信を実行するように構成されたデバイスである。通信デバイス３６は、信号を送信する送信部と、信号を受信する受信部とを含む。ＥＣ３７は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ３７は、ユーザによるパワーボタンの操作に応じて本情報処理装置３を電源オンまたは電源オフする機能を有している。
【００５８】
次いで、図９と図１０とを参照して、撮像装置２と情報処理装置３の機能構成について説明する。以下に記載する構成は一例であって、撮像装置２に設けられる構成の一部が情報処理装置３に設けられていてもよいし、あるいは情報処理装置３に設けられる構成の一部が撮像装置２に設けられていてもよい。
【００５９】
まず、図９は、撮像装置２の機能構成の例を示す。上述したように、撮像装置２は、フィルタ２１、レンズ２２およびイメージセンサ２３を備えている。フィルタ２１からイメージセンサ２３までの矢印は、光の経路を示す。フィルタ２１は、第１フィルタ領域２１１と第２フィルタ領域２１２とを含んでいる。ここでは、第１フィルタ領域２１１がイエローのフィルタ領域であり、第２フィルタ領域２１２がシアンのフィルタ領域である場合を例示する。イメージセンサ２３は、第１センサ２３１、第２センサ２３２および第３センサ２３３を含んでいる。第１センサ２３１は、例えば赤色（Ｒ）の光を受光する撮像素子を含む。第２センサ２３２は、例えば緑色（Ｇ）の光を受光する撮像素子を含む。第３センサ２３３は、例えば青色（Ｂ）の光を受光する撮像素子を含む。イメージセンサ２３は、受光した光を光電変換することにより電気信号を生成する。
【００６０】
撮像装置２は、さらに、生成部２９および処理部１２を備える。イメージセンサ２３から生成部２９までの矢印は、電気信号の経路を示す。生成部２９から処理部１２への矢印はデータの経路を示す。この生成部２９および処理部１２を含む撮像装置２内の各機能構成は、ハードウェア（回路）、ＣＰＵ２４によって実行されるソフトウェア（プログラム）、およびソフトウェアとハードウェアの組み合わせのいずれとして実現されてもよい。
【００６１】
生成部２９は、イメージセンサ２３によって生成された電気信号を用いて、撮像画像を生成（出力）する。生成される撮像画像は、Ｒ成分、Ｇ成分およびＢ成分を含む画像であってもよいし、Ｒ画像、Ｇ画像およびＢ画像の三つの画像であってもよい。撮像画像は、フィルタ２１により距離情報が符号化された符号化情報である。より詳しくは、撮像画像では、距離情報が符号化されることにより、被写体までの距離が合焦距離である画素ではぼけが発生せず、被写体までの距離が合焦距離でない画素ではぼけが発生する。Ｒ成分、Ｇ成分およびＢ成分を含む画像が生成される場合、例えば、第１色成分の画像に生じるぼけは、非点対称なぼけ関数で表され、第２色成分の画像に生じるぼけは、点対称なぼけ関数で表される。この第１色成分は、例えばＲ成分またはＢ成分であり、第２色成分は、例えばＧ成分である。
【００６２】
処理部１２は、撮像画像を処理することにより、距離に関する情報を生成する。処理部１２は、図６および図７を参照して述べたような、撮像画像上のぼけに基づいて、画素毎に、その画素に撮像されている物体（被写体）までの距離に関する情報を算出する機能を有する。この距離に関する情報は、距離自体であってもよいし、距離に関する指標やぼけに関する指標であってもよい。距離に関する指標およびぼけに関する指標は、各々に関連付けられた特定のルックアップテーブル（ＬＵＴ）を用いることにより、距離に換算することができる。
【００６３】
また、処理部１２は、算出される距離や指標に、その距離や指標の妥当性を示す信頼度を付加してもよい。その場合、距離に関する情報には、算出される距離や指標と、その距離や指標の妥当性を示す信頼度とが含まれている。
【００６４】
処理部１２は、通信デバイス２８を介して、画像と距離に関する情報とを情報処理装置３に送信（出力）する。処理部１２が情報処理装置３に含まれる場合には、撮像画像と距離に関する情報の代わりに、撮像画像が情報処理装置３に送信されるようにしてもよい。その場合、生成部２９が、通信デバイス２８を介して、撮像画像を情報処理装置３に送信する。
【００６５】
なお、生成部２９は、連続した撮影により得られる複数の撮像画像を生成し得る。複数の画像は単一の光学系により取得されたものである。各画像は、非対称なぼけ関数を含む第１色成分画像（例えば、赤や青の成分画像）を含む。各画像はさらに、対象なぼけ関数を含む第２色成分画像（例えば緑の成分画像）を含んでもよい。撮像画像は、順次、処理部１２に出力される。以下では、各撮像画像をフレームとも称する。
【００６６】
図１０は、情報処理装置３によって実行されるＳＬＡＭプログラム３３Ｂの機能構成を示す。ＳＬＡＭプログラム３３Ｂは、例えば、推定部１３を備える。すなわち、ＣＰＵ３１は、ＳＬＡＭプログラム３３Ｂに含まれる命令群を実行することにより、推定部１３の機能を実現する。ＳＬＡＭプログラム３３Ｂには、例えば、撮像装置２の撮像部１１および処理部１２を用いて得られた画像と距離に関する情報とが入力される。図１０の推定部１３は、例えば、自己位置と自己姿勢と地図とを推定する。
【００６７】
推定部１３は、処理部１２から、画像と距離に関する情報とを受信する。推定部１３は、画像と距離に関する情報とを用いて、撮像装置２（撮像部１１）の位置、姿勢、および撮像装置２周辺の地図を推定する。距離に関する情報には信頼度が含まれ得る。推定部１３は、例えば、特徴点抽出部１３１、キーフレーム判定部１３２、距離取得部１３３、特徴点追跡部１３４、対応点判定部１３５、位置・姿勢推定部１３６、地図推定部１３７、及び作業メモリ６５を含む。推定部１３は、さらに最適化部１３８を含んでもよい。
【００６８】
特徴点抽出部１３１は、画像から特徴点群を抽出する。特徴点抽出部１３１は、画像上の局所的な特徴量を用いて、画像上のエッジや角（コーナー）のような特徴点を検出する。特徴点は、一枚の画像から複数検出され得る。また、特徴点の抽出のために用いられる特徴量には、例えば、ＯＲＢ、ＢＲＩＥＦ、ＦＡＳＴ、ＡＫＡＺＥ、ＳＩＦＴ等が用いられ得る。なお、特徴点抽出部１３１は、画像上の各画素に対応する距離（距離に関する情報）をさらに考慮して、例えば、隣接する画素間での距離の変化量が大きな画素を特徴点として抽出してもよい。
【００６９】
距離取得部１３３は、距離に関する情報から、抽出された各特徴点に対応する距離を取得することにより、特徴点と距離とを対応付ける。例えば、距離に関する情報が距離画像である場合、距離取得部１３３は、特徴点毎に、特徴点である画素に対応する距離を取得し、特徴点と取得された距離とを対応付ける。また、距離に関する情報がぼけに関する指標である場合、距離取得部１３３は、特徴点毎に、特徴点である画素に対応するぼけに関する指標を取得し、特徴点と取得されたぼけに関する指標とを対応付ける。
【００７０】
なお、距離取得部１３３は、距離に関する情報の信頼度を考慮して、特徴点群を抽出してもよい。距離取得部１３３は、例えば、信頼度が閾値未満である特徴点を、特徴点群から除外してもよいし、当該特徴点に距離に関する情報を対応付けないようにしてもよい。これは、特徴点に信頼度が低い距離に関する情報が対応付けられることが、自己位置、姿勢および地図の推定精度の悪化を招くためである。また、信頼度が高い距離（距離に関する情報）に対応付けられる特徴点を選択して利用することにより、自己位置、姿勢および地図の推定精度を向上させることができる。なお、閾値は動的に変化し得る。
【００７１】
キーフレーム判定部１３２は、特定の条件に基づいて、フレームが、自己位置等の推定のためのキーフレームに適しているか否かを判定する。キーフレーム判定部１３２は、フレームがキーフレームに適していると判断した場合、フレームに関する情報を、例えば作業メモリ６５等に保存する。作業メモリ６５には、少なくとも２のキーフレーム（第１キーフレーム６５１、第２キーフレーム６５２）に関する情報が保存される。より具体的には、キーフレーム判定部１３２は、例えば、特徴点抽出部１３１によって補正画像から抽出された特徴点の数が第１閾値以上であり、且つそれら特徴点の内、距離取得部１３３によって距離に関する情報が対応付けられた特徴点の数が第２閾値以上である場合に、フレームに関する情報を作業メモリ６５に保存する。フレームに関する情報は、キーフレーム（撮像画像）を含む。保存される情報には、さらに、例えば、対応付けられた特徴点と距離に関する情報とが含まれる。キーフレームに適していないフレームの情報は破棄され、後続するフレームの情報からキーフレームがさらに探索される。
【００７２】
なお、距離取得部１３３は、キーフレーム判定部１３２によって補正画像から抽出された特徴点の数が第１閾値以上であると判定された場合に、特徴点と距離に関する情報とを対応付ける処理を行ってもよい。その後、キーフレーム判定部１３２は、距離に関する情報が対応付けられた特徴点の数が第２閾値以上であるか否かを判定する。
【００７３】
特徴点追跡部１３４は、作業メモリ６５に二つのキーフレーム６５１，６５２に関する情報が保存された場合、特徴点追跡部１３４は、第１キーフレーム６５１の特徴点と第２キーフレーム６５２の特徴点との対応付けを行う。特徴点追跡部１３４は、第１キーフレーム６５１のある特徴点に対応する、第２キーフレーム６５２の特徴点を検出する。より具体的には、推定部１３は、第１キーフレーム６５１のある特徴点の特徴量と、第２キーフレーム６５２のある特徴点の特徴量との近似度（あるいは相違度）を算出し、例えば、近似度が閾値以上である場合に、それら特徴点が対応すると判断する。また、例えば、第１キーフレーム６５１のある特徴点との近似度が閾値以上である特徴点が第２キーフレーム６５２にない場合には、第１キーフレーム６５１のその特徴点に対応する特徴点がないと判断する。このような特徴点間の対応付けの際に、各特徴点に対応付けられた距離に関する情報が考慮されてもよい。以下では、対応付けされた二つの特徴点を、対応点とも称する。
【００７４】
対応点判定部１３５は、特定の条件に基づいて、取得された対応点が、自己位置、姿勢および地図の推定に適しているか否かを判定する。対応点判定部１３５は、例えば、対応点の数が第３閾値以上であり、且つ対応点間の変位が第４閾値以上である場合に、取得された対応点が推定に適していると判定する。なお、対応点判定部１３５は、例えば、対応点の数が第３閾値未満である場合、または対応点間の変位が第４閾値未満である場合、取得された対応点が推定に適していないと判定し、特徴点抽出部１３１、距離取得部１３３およびキーフレーム判定部１３２に新たなキーフレームを探索させる。新たなキーフレームの探索により、作業メモリ６５に保存されたキーフレーム６５１，６５２の内の一方のフレームが取り替えられてもよいし、それらキーフレーム６５１，６５２の両方が取り替えられてもよい。
【００７５】
位置・姿勢推定部１３６は、推定に適していると判定された対応点を用いて、自己位置および姿勢（例えば、撮像部１１の位置および姿勢）を推定する。自己位置は、例えば、任意のローカル座標系における三次元座標によって示される。自己位置は、世界座標系の三次元座標や、緯度経度によってあらわされてもよい。自己姿勢は、例えば、ヨー、ロール、ピッチで示されても良いし、クオータニオンによって示されても良い。
【００７６】
より具体的には、位置・姿勢推定部１３６は、例えば、第１キーフレーム６５１と第２キーフレーム６５２との間で、対応点を用いて、例えば、Ｔｗｏ−ｖｉｅｗ  Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ（Ｔｗｏ−ｖｉｅｗ  ＳｆＭ）を行うことにより、撮像部１１の移動を推定する。より具体的には、位置・姿勢推定部１３６は、第１キーフレーム６５１に対応する撮像画像が撮像された時点の第１位置および姿勢から、第２キーフレーム６５２に対応する撮像画像が撮像された時点の第２位置および姿勢への撮像部１１の移動（カメラ運動）を推定し、推定された移動に基づいて、第１位置および姿勢と第２位置および各位置における姿勢とを相対的に推定する。第１位置および第１位置における姿勢と第２位置および第２位置における姿勢とは、例えば、実スケールで推定される。推定に当たっては、処理部１２が第１キーフレーム６５１に関して算出した距離と、第２キーフレーム６５２に関して算出した距離と、が用いられる。具体的には、第１キーフレーム６５１から算出された被写体までの距離と、第２キーフレーム６５２から算出された被写体までの距離と、の片方もしくは両方が推定に用いられる。第１キーフレーム６５１が撮像された時の自己位置と被写体の相対関係と、第２キーフレーム６５１が撮像された時の自己位置と被写体の相対関係と、から撮像部１１の移動または被写体の移動を推定することに依り、自己位置、自己姿勢および地図を推定する。
【００７７】
位置・姿勢推定部１３６は、少なくとも、第１位置と第２位置に関する情報を出力する。位置・姿勢推定部１３６は、例えば、さらに第１位置における姿勢と第２位置における姿勢に関する情報を出力してもよい。位置・姿勢推定部１３６は、例えば、第１位置と第２位置および各位置における姿勢に関する情報を出力してもよい。
【００７８】
地図推定部１３７は、推定に適していると判定された対応点を用いて、地図を推定する。地図推定部１３７は、上記のローカル座標系における各対応点（特徴点）の三次元座標を推定する。地図推定部１３７は、撮像部１１の位置を含む領域の第１地図を実距離に基づいて推定する。地図推定部１３７は、例えば、推定された撮像部１１の第１位置および姿勢と第２位置および姿勢とから三角測量の原理に基づいて、各対応点の三次元座標を実スケールで算出する。地図推定部１３７は、推定された対応点群の三次元座標に基づいて、物体（被写体）上の特徴点群によって構成される立体的な地図を作成することができる。地図推定部１３７は、例えば推定した地図に関する情報を出力してもよい。
【００７９】
また、最適化部１３８は、推定された対応点群の三次元座標と自己位置および姿勢とを最適化するための処理を行ってもよい。この処理には、例えば、Ｂｕｎｄｌｅ  ａｄｊｕｓｔｍｅｎｔが用いられる。Ｂｕｎｄｌｅ  ａｄｊｕｓｔｍｅｎｔでは、特徴点の画像上の座標と、特徴点の推定された三次元座標を画像上に再投影した投影座標との誤差（再投影誤差）を特徴点毎に算出し、この再投影誤差の総和を最小化することにより、各特徴点の三次元座標と自己位置および姿勢が最適化される。三次元画像を算出する度に最適化を行わなくともよい。例えば、３以上の画像（キーフレーム）をもとに１の特徴点につき得られた複数の三次元座標と、特徴点の画像上の座標と、の誤差を最小化することで最適化を行ってもよい。さらに、現在の三次元座標を算出する処理が行われているスレッドとは別に、マルチスレッドで過去に算出した三次元画像を使った最適化処理をしても良い。最適化部１３８は、例えば、最適化した自己位置を出力する。最適化部１３８は、さらに、姿勢、地図の少なくともいずれかを出力してもよい。
【００８０】
なお、撮像部１１の位置、姿勢および地図は相対スケールに基づいて推定されてもよく、対応点（特徴点）の三次元座標は相対スケールに基づいて推定されてもよい。この場合、位置・姿勢推定部１３６および地図推定部１３７は、相対スケールで推定された撮像部の位置や対応点の三次元座標を、距離に関する情報をさらに用いて実スケールに基づいて推定（変換）する。
【００８１】
以上のように、推定システム１では、撮像部１１から物体までの距離情報が符号化された撮像画像を用いることにより、撮像部１１の位置、姿勢および撮像画像に捉えられたシーンの地図を、実スケールに基づいて容易に推定することができる。なお、推定システム１において、情報処理装置３は撮像装置２の遠隔に設置され、ネットワークを介して互いにデータを通信するように構成されていてもよい。例えば、撮像装置２はロボットや自動車のような移動体に設けられ、情報処理装置３はネットワークを介して撮像装置２と通信可能なサーバコンピュータとして実現され得る。
【００８２】
また、上述した例では、画像と距離に関する情報とを用いて推定部１３における処理（ＳＬＡＭ）が行われる場合について記載したが、距離に関する情報だけを用いて、画像を用いずにＳＬＡＭが行われてもよい。例えば、距離に関する情報が距離画像である場合、特徴点抽出部１３１は、画素毎の距離情報に基づいて、距離画像からエッジ等に基づく特徴点群を抽出する。各特徴点は、距離画像から抽出されているので距離情報を有している。キーフレーム判定部１３２、特徴点追跡部１３４、対応点判定部１３５、位置・姿勢推定部１３６、地図推定部１３７、および最適化部１３８は、上述した方法と同様にして、抽出された特徴点群と各特徴点が有する距離情報とを用いて、自己位置、姿勢および地図を推定する。なお、この場合、特徴点の特徴量には、例えば、距離に基づく特徴量が用いられる。
【００８３】
例えば、ＬｉＤＡＲ（Ｌｉｇｈｔ  Ｄｅｔｅｃｔｉｏｎ  Ａｎｄ  Ｒａｎｇｉｎｇ，Ｌａｓｅｒ  Ｉｍａｇｉｎｇ  Ｄｅｔｅｃｔｉｏｎ  Ａｎｄ  Ｒａｎｇｉｎｇ）等で得られた距離情報では、エッジ等に基づく特徴点抽出が困難である場合がある。特徴点が抽出できない場合にはＳＬＡＭにより自己位置や地図の推定を行うことができず、また抽出される特徴点が少ない場合にはＳＬＡＭにより推定される自己位置や地図の精度が極めて悪くなる。
【００８４】
これに対して、符号化開口を用いて得られた距離情報では、エッジ等に基づく特徴点を効率的に抽出することができ、そのため、ＳＬＡＭによる自己位置や地図の推定に成功しやすく、またＳＬＡＭにより推定される自己位置や地図の精度を高めることができる。
【００８５】
次いで、図１１のフローチャートを参照して、推定システム１によって実行される処理の手順を説明する。この処理では、撮像部１１と被写体との間の距離に関する情報を利用して、自己位置、自己姿勢および地図が実スケールに基づいて推定される。
【００８６】
まず、撮像部１１は、撮像により、画像と距離とに関する撮像情報を取得する（ステップＳ１０１）。取得される撮像情報は、例えば、距離情報が符号化された撮像画像を含む。なお、この撮像情報には、画像と距離に関する情報とが含まれていてもよい。撮像部１１は、取得された撮像情報を処理部１２に送る（ステップＳ１０２）。撮像情報は、例えば撮像画像である。
【００８７】
処理部１２は、撮像情報から得られた変換情報を出力する（ステップＳ１０３）。変換情報は、距離に関する情報である。そして、処理部１２は、出力された変換情報を推定部１３に送る（ステップＳ１０４）。処理部１２は、さらに撮像画像を推定部１３に送信してもよい。距離に関する情報には、信頼度が付加されていてもよい。
【００８８】
次いで、推定部１３は、変換情報を基に、自己位置と自己姿勢と地図の少なくともいずれかを実スケールに基づいて推定する（ステップＳ１０５）。
【００８９】
このような処理は、ＳＬＡＭ処理（例えば、ＲＧＢ−Ｄ  ＳＬＡＭ）として実現され得る。図１２のフローチャートは、推定システム１によって実行されるＳＬＡＭ処理の手順の例を示す。
【００９０】
まず、推定部１３は、実スケールのキーフレームを探索するためのキーフレーム探索処理を行う（ステップＳ２０１）。撮像部１１および処理部１２はフレーム単位のデータを順次取得する。より具体的には、フレーム単位のデータとして、撮像部１１は距離情報が符号化された撮像画像（符号化情報）を取得し、処理部１２は、撮像画像から距離に関する情報を取得する。推定部１３は、撮像画像との中からキーフレームを探索する。キーフレーム探索処理の詳細な手順については、図１３のフローチャートを参照して後述する。
【００９１】
推定部１３は、フレーム（撮像画像）と、画像特徴点と、各画像特徴点に対応付けられた距離に関する情報とを第１キーフレーム６５１に関する情報として、例えば、作業メモリ６５に保持する（ステップＳ２０２）。つまり、第１キーフレーム６５１に関する情報には、特徴点と距離に関する情報との複数の組が含まれている。
【００９２】
次いで、推定部１３は、ステップＳ２０１と同様にして、例えば後続するフレームから、実スケールのキーフレームを探索するためのキーフレーム探索処理を行う（ステップＳ２０３）。推定部１３は、探索されたフレームと、画像特徴点と、各画像特徴点に対応付けられた距離に関する情報とを第２キーフレーム６５２に関する情報として、例えば、作業メモリ６５に保持する（ステップＳ２０４）。つまり、第２キーフレーム６５２に関する情報には、特徴点と距離に関する情報との複数の組が含まれている。
【００９３】
そして、推定部１３は、第１キーフレーム６５１と第２キーフレーム６５２との間で、特徴点の対応付け（特徴点追跡）を行う（ステップＳ２０５）。推定部１３は、第１キーフレーム６５１のある特徴点に対応する、第２キーフレーム６５２の特徴点を検出する。なお、対応付けされた二つの特徴点は、対応点とも称する。
【００９４】
推定部１３は、ステップＳ２０５で対応付けされた対応点の数が第３閾値以上であるか否かを判定する（ステップＳ２０６）。対応点の数が第３閾値未満である場合（ステップＳ２０６のＮＯ）、ステップＳ２０３に戻り、新たな第２キーフレームが探索される。なお、ステップＳ２０１に戻り、新たな第１キーフレームと第２キーフレームとが探索されるようにしてもよい。
【００９５】
対応点の数が第３閾値以上である場合（ステップＳ２０６のＹＥＳ）、推定部１３は、対応点群間の変位が第４閾値以上であるか否かを判定する（ステップＳ２０７）。推定部１３は、例えば、対応点である二つの特徴点間の変位を対応点毎に算出し、算出された変位の総和が第４閾値以上であるか否かを判定する。対応点群間の変位が第４閾値未満である場合（ステップＳ２０７のＮＯ）、ステップＳ２０３に戻り、新たな第２キーフレームが探索される。なお、ステップＳ２０１に戻り、新たな第１キーフレームと第２キーフレームとが探索されるようにしてもよい。
【００９６】
対応点群間の変位が第４閾値以上である場合（ステップＳ２０７のＹＥＳ）、推定部１３は、撮像部１１の位置および姿勢を実スケールに基づいて推定する（ステップＳ２０８）。そして、推定部１３は、各特徴点（各対応点）の三次元座標を実スケールに基づいて推定する（ステップＳ２０９）。
【００９７】
また、推定部１３は、推定された各特徴点の三次元座標と撮像部１１の位置および姿勢とを最適化するための処理を行ってもよい（ステップＳ２１０）。
【００９８】
ステップＳ２０８とステップＳ２０９のいずれかは、省略されてもよい。また、ステップＳ２０８が実行される場合には、少なくとも自己位置と自己姿勢のいずれかが推定されればよい。
【００９９】
次いで、図１３のフローチャートは、撮像画像を取得してからキーフレーム探索処理を行うまでの手順の例を示す。このキーフレーム探索処理は、上述したＳＬＡＭ処理の一部（例えば、ステップＳ２０１およびステップＳ２０３の手順）として行われるものである。
【０１００】
まず、撮像部１１は、符号化情報（例えば、距離情報が符号化された撮像画像）を取得する（ステップＳ３０１）。そして、撮像部１１は、取得された符号化情報を処理部１２に送る（ステップＳ３０２）。
【０１０１】
処理部１２は、符号化情報を距離に関する情報とに変換し（ステップＳ３０３）、撮像画像と距離に関する情報を推定部１３に送る（ステップＳ３０４）。
【０１０２】
推定部１３は、画像から画像特徴点群を抽出する（ステップＳ３０５）。そして、推定部１３は、補正画像から抽出された特徴点群に含まれる特徴点の数が第１閾値以上であるか否かを判定する（ステップＳ３０６）。この第１閾値は動的に変更されてもよい。特徴点の数が第１閾値未満である場合（ステップＳ３０６のＮＯ）、ステップＳ３０１で取得された符号化情報が自己位置、姿勢および地図の推定に適していないので、ステップＳ３０１に戻り、撮像部１１によって新たな符号化情報が取得される。
【０１０３】
特徴点の数が第１閾値以上である場合（ステップＳ３０６のＹＥＳ）、推定部１３は、抽出された各特徴点と、距離に関する情報とを対応付ける（ステップＳ３０７）。そして、推定部１３は、画像から抽出された特徴点群の内、距離に関する情報に対応付けられた特徴点の数が第２閾値以上であるか否かを判定する（ステップＳ３０８）。この第２閾値は動的に変更されてもよい。対応付けられた特徴点の数が第２閾値未満である場合（ステップＳ３０８のＮＯ）、ステップＳ３０１で取得された符号化情報が自己位置、姿勢および地図の推定に適していないので、ステップＳ３０１に戻り、新たな符号化情報が取得される。
【０１０４】
対応付けられた特徴点の数が第２閾値以上である場合（ステップＳ３０８のＹＥＳ）、その画像をキーフレームと決定して処理を終了する。キーフレームと特徴点と距離に関する情報は、作業メモリ６５に保存される。
【０１０５】
以上の処理により、自己位置、姿勢および地図の推定に適したキーフレームを取得することができる。
【０１０６】
また、図１４のフローチャートは、推定システム１によって実行される処理の手順の別の例を示す。図１１のフローチャートを参照して上述した処理では、地図や撮像部１１の位置が実スケールで推定されるのに対して、図１４に示す処理では、地図や撮像部１１の位置を相対スケールに基づいて推定した後に、推定された地図や撮像部１１の位置が実スケール化される例を示す。
【０１０７】
ステップＳ４０１からステップＳ４０４までの手順は、図１１のフローチャートに示したステップＳ１０１からステップＳ１０４までの手順と同じである。
【０１０８】
これらステップＳ４０１からステップＳ４０４までの手順が行われた後、推定部１３は、変換情報（例えば、補正画像と距離に関する情報）を基に、自己位置、自己姿勢、および地図を相対スケールに基づいて推定する（ステップＳ４０５）。そして、推定部１３は、推定された地図を、距離に関する情報を用いてスケーリング（拡大または縮小）することにより実スケール化する（ステップＳ４０６）。推定部１３は、例えば、距離に関する情報により、撮像部１１から地図上の地点（特徴点）までの実際の距離が示されるとき、相対スケールで示されている地図における自己位置と当該地点との距離がその実際の距離になるようにスケーリングすることにより、地図を実スケール化することができる。推定部１３は、自己位置、自己姿勢、および地図に関する情報を出力する。
【０１０９】
以上説明したように、推定システム１は、実スケールに基づく自己位置、姿勢および地図を容易に推定することができる。推定システム１は、実スケールに基づく自己位置、自己姿勢、地図の少なくともいずれかを出力することができる。
【０１１０】
例えば、カメラで撮像された画像と、距離センサで計測された距離とを用いて自己位置、姿勢および地図を推定する方法では、画像と距離とを同期させるための処理が必要となる。本実施形態の推定システム１は、一度の撮影で取得される画像と距離に関する情報、あるいは符号化情報が推定に用いられるので、画像と距離とを同期させるための処理が必要ない。そのため、この処理に要する時間が省略されるので、撮像部１１の位置を容易に推定することができる。
【０１１１】
また、例えば、単眼カメラで撮像された画像と、物体の形状等の辞書データとを用いて自己位置、姿勢および地図を推定する方法では、この辞書データを準備しておく必要があり、また辞書に登録された物体がカメラで撮影されない場合には、自己位置、姿勢および地図を推定することができない。本実施形態の推定システム１では、辞書データを準備しておく必要がなく、ユーザによる手間を軽減することができる。
【０１１２】
次いで、上記のような構成を有する推定システム１が適用される応用例についていくつか説明する。
【０１１３】
図１５は、推定システム１を含む移動体６の機能構成例を示す。移動体６は、例えば、自動運転機能を有する自動車、無人航空機、自律型の移動ロボット等として実現され得る。無人航空機は、人が乗ることができない飛行機、回転翼航空機、滑空機、飛行船であって、遠隔操作または自動操縦により飛行させることができるものであり、例えば、ドローン（マルチコプター）、ラジコン機、農薬散布用ヘリコプター等を含む。自律型の移動ロボットは、無人搬送車（Ａｕｔｏｍａｔｅｄ  Ｇｕｉｄｅｄ  Ｖｅｈｉｃｌｅ：ＡＧＶ）のような移動ロボット、床を掃除するための掃除ロボット、来場者に各種案内を行うコミュニケーションロボット等を含む。移動体６にはさらに、ロボット本体が移動するものだけでなく、ロボットアームのような、ロボットの一部分の移動・回転用の駆動機構を有する産業用ロボットも含まれ得る。
【０１１４】
図１５に示すように、移動体６は、例えば、推定システム１と制御信号生成部１４と駆動機構１５とを有する。推定システム１の内、少なくとも撮像部１１は、例えば、移動体６またはその一部分の進行方向の被写体を撮像するように設置される。
【０１１５】
図１６に示すように、移動体６が自動車６Ａである場合、撮像部１１は、前方を撮像するいわゆるフロントカメラとして設置され得るほか、バック時に後方を撮像するいわゆるリアカメラとしても設置され得る。もちろん、これら両方が設置されてもよい。また、撮像部１１は、いわゆるドライブレコーダーとしての機能を兼ねて設置されるものであってもよい。すなわち、撮像部１１は録画機器であってもよい。
【０１１６】
次いで、図１７は、移動体６がドローン６Ｂである場合の例を示す。ドローン６Ｂは、駆動機構１５に相当するドローン本体７１と四つのプロペラ部７２１，７２２，７２３，７２４とを備える。各プロペラ部７２１，７２２，７２３，７２４はプロペラとモータとを有する。モータの駆動がプロペラに伝達されることによって、プロペラが回転し、その回転による揚力によってドローン６Ｂが浮上する。ドローン本体７１の、例えば下部には、撮像部１１（あるいは、撮像部１１を含む推定システム１）が搭載されている。
【０１１７】
また、図１８は、移動体６が自律型の移動ロボット６Ｃである場合の例を示す。移動ロボット６Ｃの下部には、駆動機構１５に相当する、モータや車輪等を含む動力部８１が設けられている。動力部８１は、モータの回転数や車輪の向きを制御する。移動ロボット６Ｃは、モータの駆動が伝達されることによって、路面又は床面に接地する車輪が回転し、当該車輪の向きが制御されることにより任意の方向に移動することができる。撮像部１１は、例えば、人型の移動ロボット６Ｃの頭部に、前方を撮像するように設置され得る。なお、撮像部１１は、後方や左右を撮像するように設置されてもよいし、複数の方位を撮像するように複数設置されてもよい。また、センサ等を搭載するためのスペースが少ない小型ロボットに少なくとも撮像部１１を設けて、自己位置、姿勢および地図を推定することにより、デッドレコニングを行うこともできる。
【０１１８】
なお、移動体６の一部分の移動および回転を制御する場合、図１９に示すように、撮像部１１は、例えば、ロボットアーム６Ｄで把持される物体を撮像するように、ロボットアームの先端等に設置されてもよい。推定部１３は、把持しようとする物体の三次元形状やその物体が置かれている位置を推定する。これにより、物体の正確な把持動作を行うことができる。
【０１１９】
制御信号生成部１４は、推定システム１から出力される自己位置、姿勢および地図に基づいて、駆動機構１５を制御するための制御信号を出力する。駆動機構１５は、制御信号により、移動体６または移動体の一部分を駆動する。駆動機構１５は、例えば、移動体６またはその一部分の移動、回転、加速、減速、推力（揚力）の加減、進行方向の転換、通常運転モードと自動運転モード（衝突回避モード）の切り替え、およびエアバック等の安全装置の作動の内の少なくとも一つを行う。駆動機構１５は、例えば、自己位置から被写体までの距離がしきい値未満である場合、移動、回転、加速、推力（揚力）の加減、物体に近寄る方向への方向転換、および自動運転モード（衝突回避モード）から通常運転モードへの切り替えの内の少なくとも一つを行ってもよい。
【０１２０】
自動車６Ａの駆動機構１５は、例えばタイヤである。ドローン６Ｂの駆動機構は、例えばプロペラである。移動ロボット６Ｃの駆動機構は、例えば足部である。ロボットアーム６Ｄの駆動機構１５は、例えば撮像部が設けられた先端を支持する支持部である。
【０１２１】
移動体６は、さらに推定部１３からの自己位置、自己姿勢、および地図に関する情報が入力されるスピーカやディスプレイを備えていてもよい。スピーカやディスプレイは、自己位置、自己姿勢、および地図に関する音声または画像を出力する。スピーカやディスプレイは、自己推定システム１と有線または無線で接続されている。さらに、移動体６は、推定部１３からの自己位置、自己姿勢、および地図に関する情報が入力される発光部を有していていもよい。発光部は、例えば、推定部１３からの自己位置、自己姿勢、および地図に関する情報に応じて点灯したり消灯したりする。
【０１２２】
なお、推定システム１の推定部１３は、推定された撮像部１１の位置と、推定システム１以外によって作成され推定システム１に入力される地図（例えばカーナビゲーションのための地図）とを用いて、この地図上での撮像部１１の位置を推定してもよい。移動体６は、ＧＰＳ信号を受信し、ＧＰＳ座標系における位置を検出するためのＧＰＳレシーバ（図示せず）を備えていてもよい。また、カーナビゲーションのための地図は、例えば、自動車に設けられるカーナビゲーションシステムで用いられる地図であって、ＧＰＳ座標系に基づいた、道路や、橋、建物等のオブジェクトを示すデータが含まれている。ＧＰＳレシーバを用いて取得される位置には、ＧＰＳ信号の取得状況等によって誤差（例えば、数メートルの誤差）が含まれている場合がある。そのため、ＧＰＳレシーバを用いて取得される位置だけでなく、推定システム１によって推定された撮像部１１の位置も用いることにより、地図上でのより正確な自己位置を推定することができる。さらに、ＧＰＳ信号が受信できずにＧＰＳレシーバを用いて位置が取得できない場合にも、一旦、地図上での自己位置が取得できていれば、推定部１３は、推定システム１によって連続して推定される撮像部１１の位置を用いて、地図上での自己位置を推定し続けることができるので、移動体６を目的位置まで移動等させることができる。
【０１２３】
また、推定部１３は、推定された特徴点の三次元座標（すなわち、補正画像上の画素に撮像された被写体の三次元座標）を用いて、カーナビゲーションのための地図を補完してもよい。推定部１３は、例えば、自動車の走行中に連続して得られる撮像画像から、特徴点の三次元座標を繰り返し推定することができる。これにより、カーナビゲーションのための地図に含まれていないオブジェクトの三次元座標を当該地図に追加することができ、より詳細な地図を得ることができる。制御信号生成部１４および駆動機構１５は、補完された地図上での撮像部１１の位置に基づいて、例えば、衝突を回避するように移動体６（例えば、自動車）を移動させることができる。
【０１２４】
別の例として、例えば、移動体６がドローンである場合、上空から、地図（物体の三次元形状）の作成、ビルや地形の構造調査、ひび割れや電線破断等の点検等が行われる際に、撮像部１１は対象を撮影した画像を取得し、自己位置と地図上の物体との距離が閾値以上であるか否かを判定する。制御信号生成部１４は、この判定結果に基づいて、点検対象との距離が一定になるようにドローンの推力を制御するための制御信号を生成する。ここで、推力には揚力も含まれる。駆動機構１５が、この制御信号に基づいてドローンを動作させることにより、ドローンを点検対象に並行して飛行させることができる。移動体６が監視用のドローンである場合、監視対象の物体との距離を一定に保つようにドローンの推力を制御するための制御信号を生成してもよい。
【０１２５】
また、ドローンの飛行時に、撮像部１１は地面方向を撮影した画像を取得し、自己位置と地面との距離が閾値以上であるか否かを判定する。制御信号生成部１４は、この判定結果に基づいて、地面からの高さが指定された高さになるようにドローンの推力を制御するための制御信号を生成する。駆動機構１５が、この制御信号に基づいてドローンを動作させることにより、ドローンを指定された高さで飛行させることができる。農薬散布用ドローンであれば、ドローンの地面からの高さを一定に保つことで、農薬を均等に散布しやすくなる。
【０１２６】
また、移動体６がドローンまたは自動車である場合、ドローンの連携飛行や自動車の連隊走行時に、撮像部１１は、周囲のドローンや前方の自動車を撮影した画像を取得し、自己位置からそのドローンや自動車までの距離が閾値以上であるか否かを判定する。制御信号生成部１４は、この判定結果に基づいて、その周囲のドローンや前方の自動車との距離が一定になるように、ドローンの推力や自動車の速度を制御するための制御信号を生成する。駆動機構１５が、この制御信号に基づいてドローンや自動車を動作させることにより、ドローンの連携飛行や自動車の連隊走行を容易に行うことができる。移動体６が自動車である場合、ドライバーが閾値を設定できるように、ユーザインタフェースを介してドライバーの指示を受理することで、閾値を変化させてもよい。これにより、ドライバーが好む車間距離で自動車を走行させられる。あるいは、前方の自動車との安全な車間距離を保つために、自動車の速度に応じて閾値を変化させてもよい。安全な車間距離は、自動車の速度によって異なる。そこで、自動車の速度が速いほど閾値を長く設定することができる。また、移動体６が自動車である場合に、進行方向の所定の距離を閾値に設定しておき、その閾値の手前に物体が現れた場合にブレーキが自動で作動したり、エアバック等の安全装置が自動で作動する制御信号生成部１４を構成するとよい。この場合、自動ブレーキやエアバック等の安全装置が駆動機構１５に設けられる。
【０１２７】
以上説明したように、本実施形態によれば、実スケールに基づく自己位置や地図を容易に推定することができ、この実スケールに基づく自己位置や地図を用いることにより、例えば、自動車、ドローン、ロボット等の各種の移動体６の動作を容易に制御することができる。
【０１２８】
また、本実施形態に記載された様々な機能の各々は、回路（処理回路）によって実現されてもよい。処理回路の例には、中央処理装置（ＣＰＵ）のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム（命令群）を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたＣＰＵ以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【０１２９】
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１３０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３１】
１…推定システム、１１…撮像部、１２…処理部、１３…推定部、２…撮像装置、２１…フィルタ、２２…レンズ、２３…イメージセンサ、２４…ＣＰＵ、２５…ＲＡＭ、２６…不揮発性メモリ、２７…メモリカードスロット、２８…通信デバイス、２０…バス、３…情報処理装置、３１…ＣＰＵ、３２…システムコントローラ、３３…主メモリ、３４…不揮発性メモリ、３５…ＢＩＯＳ−ＲＯＭ、３６…通信デバイス、３７…ＥＣ、３３Ａ…ＯＳ、３３Ｂ…ＳＬＡＭプログラム。
【図１】
2019011971.tif 000003
【図２】
2019011971.tif 000004
【図３】
2019011971.tif 000005
【図４】
2019011971.tif 000006
【図５】
2019011971.tif 000007
【図６】
2019011971.tif 000008
【図７】
2019011971.tif 000009
【図８】
2019011971.tif 000010
【図９】
2019011971.tif 000011
【図１０】
2019011971.tif 000012
【図１１】
2019011971.tif 000013
【図１２】
2019011971.tif 000014
【図１３】
2019011971.tif 000015
【図１４】
2019011971.tif 000016
【図１５】
2019011971.tif 000017
【図１６】
2019011971.tif 000018
【図１７】
2019011971.tif 000019
【図１８】
2019011971.tif 000020
【図１９】
2019011971.tif 000021