(57)【要約】      （修正有）【課題】カメラの画角内に移動体の少なくとも一部が入っても、自己位置を精度良く検出することができる自己位置検出装置を提供する。【解決手段】自己位置検出装置は、移動体に搭載される自己位置検出装置であって、移動体の一部が画角内に入るステレオカメラと、該ステレオカメラにより異なるタイミングで撮影された複数の画像に基づいてステレオカメラの位置情報を求める制御部４００と、を備え、制御部４００は、画像における移動体の一部が写る領域を検出する可動部領域検出部４１７と、該画像における位置情報を求めるのに用いる候補領域から上記領域の少なくとも一部を除外する可動部領域除外部４１８と、を含む。【選択図】図３
2018009918.tif 000002
【特許請求の範囲】
【請求項１】
移動体に搭載される自己位置検出装置であって、
前記移動体の少なくとも一部が画角内に入るカメラと、
前記カメラにより異なるタイミングで撮影された複数の画像に基づいて前記カメラの位置情報を求める処理装置と、を備え、
前記処理装置は、
前記画像における前記少なくとも一部が写る領域を検出する検出手段と、
該画像における前記位置情報を求めるのに用いる候補領域から前記領域の少なくとも一部を除外する除外手段と、を含むことを特徴とする自己位置検出装置。
【請求項２】
前記処理装置は、前記画像における前記候補領域から除外された領域以外の領域を用いて前記位置情報を算出する算出手段を更に含むことを特徴とする請求項１に記載の自己位置検出装置。
【請求項３】
前記移動体は、
前記カメラが設けられた本体部と、
前記画角内に少なくとも一部が入る、前記本体部に設けられた可動部と、を含むことを特徴とする請求項１又は２に記載の自己位置検出装置。
【請求項４】
前記本体部の少なくとも一部が前記画角内に入ることを特徴とする請求項３に記載の自己位置検出装置。
【請求項５】
前記検出手段は、前記移動体が移動しているときに前記カメラで撮影された複数の画像に写り該画像間での移動量が所定量以下の領域を、該画像における前記本体部の少なくとも一部が写る領域として抽出することを特徴とする請求項４に記載の自己位置検出装置。
【請求項６】
前記検出手段は、前記本体部が静止し、かつ前記可動部が動作していないときに前記カメラで撮影された複数の画像から生成された画像と、前記移動体が移動しているときに前記カメラで撮影された画像の対応画素の画素値の差分に基づいて、前記本体部の少なくとも一部が写る領域を抽出することを特徴とする請求項４に記載の自己位置検出装置。
【請求項７】
前記除外手段は、前記本体部の少なくとも一部が写る領域を前記候補領域から除外することを特徴とする請求項５又は６に記載の自己位置検出装置。
【請求項８】
前記検出手段は、前記可動部が動作しているときに前記カメラで撮影された複数の画像に写り該画像間での移動量が所定量以上の領域を前記可動部の少なくとも一部が写る領域として抽出することを特徴とする請求項３〜７のいずれか一項に記載の自己位置検出装置。
【請求項９】
前記検出手段は、前記本体部が静止し、かつ前記可動部が動作していないときに前記カメラで撮影された複数の画像から生成された画像と、前記可動部が動作しているときに前記カメラで撮影された画像の対応画素の画素値の差分に基づいて、前記可動部の少なくとも一部が写る領域を抽出することを特徴とする請求項３〜７のいずれか一項に記載の自己位置検出装置。
【請求項１０】
前記除外手段は、前記可動部の少なくとも一部が写る領域を前記候補領域から除外することを特徴とする請求項８又は９に記載の自己位置検出装置。
【請求項１１】
請求項１〜１０のいずれか一項に記載の自己位置検出装置と、
前記自己位置検出装置が搭載される移動体と、を備える移動体装置。
【請求項１２】
移動体に搭載され、該移動体の少なくとも一部が画角に入るカメラを含む装置による自己位置検出方法であって、
前記カメラにより異なるタイミングで撮影する工程と、
前記撮影する工程で撮影された複数の画像に基づいて、前記カメラの位置情報を求める工程と、を含み、
前記求める工程は、
前記画像における前記少なくとも一部が写る領域を検出するサブ工程と、
前記位置情報を求めるのに用いる候補領域から前記領域の少なくとも一部を除外するサブ工程と、を含むことを特徴とする自己位置検出方法。
【請求項１３】
前記求める工程は、前記画像における前記候補領域から除外された領域以外の領域を用いて前記位置情報を算出するサブ工程を更に含むことを特徴とする請求項１２に記載の自己位置検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己位置検出装置、移動体装置及び自己位置検出方法に関する。
【背景技術】
【０００２】
従来、自己位置を検出する、カメラを含む装置が知られている。
【０００３】
例えば、特許文献１に開示されている装置では、カメラにより異なるタイミングで撮影された複数の画像に写る同一の特徴点の該画像間での移動量に基づいて自己位置を検出している。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示されている装置等の従来の装置では、カメラの画角内に移動体の少なくとも一部が入ると、自己位置を精度良く検出することが困難であった。
【課題を解決するための手段】
【０００５】
本発明は、移動体に搭載される自己位置検出装置であって、前記移動体の少なくとも一部が画角内に入るカメラと、前記カメラにより異なるタイミングで撮影された複数の画像に基づいて前記カメラの位置情報を求める処理装置と、を備え、前記処理装置は、前記画像における前記少なくとも一部が写る領域を検出する検出手段と、該画像における前記位置情報を求めるのに用いる候補領域から前記領域の少なくとも一部を除外する除外手段と、を含むことを特徴とする自己位置検出装置である。
【発明の効果】
【０００６】
本発明によれば、カメラの画角内に移動体の少なくとも一部が入っても、自己位置を精度良く検出することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態の移動体装置の外観を概略的に示す図である。
【図２】図１の撮像部のハードウェア構成の一例を示すブロック図である。
【図３】図１の制御部のハードウェア構成の一例を示すブロック図である。
【図４】図１の移動体のハードウェア構成の一例を示すブロック図である。
【図５】ステレオカメラの撮影画像を示す図である。
【図６】自己位置検出処理１を説明するためのフローチャートである。
【図７】図７（ａ）及び図７（ｂ）は、それぞれオプティカルフローの算出方法を説明するための図（その１及びその２）である。
【図８】自己位置検出処理２を説明するためのフローチャートである。
【図９】変形例の移動体装置を説明するための図である。
【発明を実施するための形態】
【０００８】
以下の実施形態では、移動体が、自律飛行する無人航空機（例えば、ＤｒｏｎｅやＵＡＶ（Unmanned  aerial  vehicle））であり、移動体が自己位置を推定し、自己位置推定結果に基づいて自律移動を制御する移動体装置を例にとって説明する。
【０００９】
以下に、本発明の一実施形態を図面を用いて詳細に説明する。
［基本構成］
図１は、一実施形態の移動体装置１の一例を示す模式図である。図１に示されるように、移動体装置１は、移動体１０、撮像部３００、制御部４００を備えている。ここでは、移動体１０は、無人航空機である。
【００１０】
以下、移動体１０の左右方向をＸ軸方向、前後方向をＹ軸方向、高さ方向をＺ軸方向とする移動体に設定されたＸＹＺ３次元直交座標系（以下では「移動体座標系」とも呼ぶ）を適宜用いて説明する。ここでは、移動体座標系において移動体１０の前方向は＋Ｙ方向である。
【００１１】
移動体１０は、一例として、機体１１と、該機体１１の前後左右に設けられた４つのプロペラ１２〜１５と、を含む。そこで、移動体１０は「マルチコプター」とも呼ばれる。
【００１２】
移動体１０は、プロペラ１２〜１５を回転駆動することにより飛行するように構成されている。
【００１３】
機体１１は、一例として、円板状の胴部２０と、該胴部２０から−Ｚ側に延在するＴ字状の２つの脚部１６、１７と、胴部２０からＸＹ平面に沿って延在し、４つのプロペラ１２〜１５をそれぞれ回転可能に支持する４つのアーム９ａ〜９ｄと、を有する。
【００１４】
胴部２０には、撮像部３００が支持部材１８、１９を介して宙吊り状態で取り付けられている。
【００１５】
２つの脚部１６、１７は移動体１０が地面に着地したときに転倒しないように支えるとともに撮像部３００が地面に接触しないように保護する役割も担っている。
【００１６】
撮像部３００は、ステレオカメラ２１による測距に係る構成であり、ステレオカメラ２１と、その静止画像や動画像を処理する処理回路（論理回路）とを有する。ステレオカメラ２１は、光軸が互いに平行となるように配置された左右のカメラ（以下では「左右眼」とも呼ぶ）を有する。
【００１７】
制御部４００は、撮像部３００の制御、並びに撮像部３００、移動体１０との通信に係る構成である。
【００１８】
図２は、撮像部３００のハードウェア構成の一例を示すブロック図である。撮像光学系１２１Ａを通過した被写体光は、ＣＭＯＳ３１１Ａに結像され、撮像光学系１２１Ｂを通過した被写体光は、ＣＭＯＳ３１１Ｂに結像される。ＣＭＯＳ３１１Ａは、撮像面に結像された光学像を電気信号に変換し、アナログの画像データとして出力し、ＣＭＯＳ３１１Ｂは、撮像面に結像された光学像を電気信号に変換し、アナログの画像データとして出力する。なお、撮像素子としてＣＭＯＳ３１１Ａ及びＣＭＯＳ３１１Ｂの代わりにＣＣＤ（Charge  Coupled  Device）を採用してもよい。
【００１９】
ＣＭＯＳ３１１Ａから出力された画像データは、ＣＤＳ（Correlated  Double  Sampling：相関２重サンプリング）回路３１２Ａによりノイズ成分を除去され、Ａ／Ｄ変換器３１３Ａによりデジタル値に変換され、画像処理回路３１４Ａに出力される。ＣＭＯＳ３１１Ｂから出力された画像データは、ＣＤＳ回路３１２Ｂによりノイズ成分を除去され、Ａ／Ｄ変換器３１３Ｂによりデジタル値に変換され、画像処理回路３１４Ｂに出力される。
【００２０】
なお、ＣＭＯＳ３１１Ａ、３１１Ｂ、ＣＤＳ回路３１２Ａ、３１２Ｂ、及びＡ／Ｄ変換器３１３Ａ、３１３Ｂは、タイミング信号発生器３１６により、動作するタイミングが制御されている。画像処理回路３１４Ａ、３１４Ｂは、それぞれ、画像データを一時格納するＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）３１７を用いて、ＲＧＢ→ＹＣｒＣｂ変換処理、ホワイトバランス制御処理、コントラスト補正処理、エッジ強調処理、及び色変換処理などの各種画像処理を行う。なお、ホワイトバランス制御処理は、画像情報の色濃さを調整する画像処理であり、コントラスト補正処理は、画像情報のコントラストを調整する画像処理であり、エッジ強調処理は、画像情報のシャープネスを調整する画像処理であり、色変換処理は、画像情報の色合いを調整する画像処理である。
【００２１】
また、ＳＤＲＡＭ３１７に記憶された画像処理が施された画像データは、画像圧縮伸張回路３１８により圧縮され、メモリカード３１９に記録される。画像圧縮伸張回路３１８は、画像処理回路３１４Ａ、３１４Ｂから出力される画像データを圧縮してメモリカード３１９に出力するとともに、メモリカード３１９から読み出した画像データを伸張して画像処理回路３１４Ａ、３１４Ｂに出力する回路である。
【００２２】
タイミング信号発生器３１６、画像処理回路３１４Ａ、３１４Ｂ、画像圧縮伸張回路３１８、及びメモリカード３１９は、ＣＰＵ（Central  Processing  Unit）３１５により制御されている。ＲＯＭ（Read  Only  Memory）３２１は、ＣＰＵ３１５により実行されるプログラムなどを格納した読み出し専用メモリであり、ＲＡＭ（Random  Access Memory）３２２は、ＣＰＵ３１５が各種の処理過程で利用するワークエリア、及び各種データ格納エリアなどを有する読み出し書き込み自在のメモリである。
【００２３】
ＣＰＵ３１５は、画像処理回路３１４Ａにより各種画像処理が施された画像データ、及び画像処理回路３１４Ｂにより各種画像処理が施された画像データ、即ち、ステレオ画像を用いた視差演算を行って視差画像を生成し、生成した視差画像に基づいて、視差画像に写る物体までの距離を求める。なお、視差は、画素毎又は画素ブロック毎に算出され、視差画像では、画素又は画素ブロック毎に視差情報が対応づけられる。画素ブロックは、１以上の画素で構成されるブロックである。これにより、視差画像は、視差画像に写る物体（対象物）の３次元空間上での３次元位置（３次元座標）を表すことができる。撮像部３００の主要な構成は、バスライン１９によって相互接続されている。
【００２４】
図３は、制御部４００のハードウェア構成の一例を示すブロック図である。制御部４００は、ＣＰＵ４１１、ＲＡＭ４１２、フラッシュＲＯＭ４１３、Ｉ／Ｏ４１４、及びネットワークＩ／Ｆ４１５を備える。
【００２５】
ＣＰＵ４１１は、フラッシュＲＯＭ４１３に記憶されたプログラム４２０を実行して制御部４００の全体の動作を制御する。プログラム４２０は、メモリカード４１６に記憶された状態で配布されてもよいし、サーバから携帯電話網や無線ＬＡＮ（Local  Area  Network）網などの通信網を経由してダウンロードされることで配布されてもよい。ＲＡＭ４１２は、ＣＰＵ４１１がプログラムを実行する際のワークエリア（プログラムやデータが一時的に記憶される）として使用される。
【００２６】
ＣＰＵ４１１は、ステレオカメラ２１を含む撮像部３００の出力（視差画像や輝度画像）に基づいて、自己位置推定（自己位置検出）を行ったり、撮像部３００に再測距を行わせたりする。Ｉ／Ｏ４１４は、Ｉ２ＣやＵＡＲＴなどの入出力インターフェースである。ネットワークＩ／Ｆ４１５は、イーサネット（登録商標）などの車載ネットワーク上で通信するための通信装置である。
【００２７】
そこで、ＣＰＵ４１１を有する制御部４００と、ステレオカメラ２１とを含んで、本発明の自己位置検出装置の一例である「自己位置検出装置１００」が構成される。
【００２８】
図４は、移動体１０のハードウェア構成の一例を示すブロック図である。移動体１０は、主に、制御装置５１９、ＧＰＳアンテナ５１２、ＧＰＳ受信器５２５、及びプロペラモータ５４５Ａ〜５４５Ｄから構成される。
【００２９】
ＧＰＳアンテナ５１２及びＧＰＳ受信器５２５は、移動体１０の絶対座標を測定する。なお、ＧＰＳアンテナ５１２及びＧＰＳ受信器５２５としては、後処理キネマティックＧＰＳ又はリアルタイムキネマティックＧＰＳ（ＲＴＫ−ＧＰＳ）が用いられるのが好ましい。ＲＴＫ−ＧＰＳは、高精度の測定が可能である。
【００３０】
プロペラモータ５４５Ａ〜５４５Ｄは、それぞれ、プロペラ１２〜１５を回転駆動するためのモータである。
【００３１】
制御装置５１９は、主に、制御演算部５２０、記憶部５２２、撮像制御部５２３、飛行制御部５２６、方位センサ５２７、ジャイロユニット５２８、通信部５２９を、備える。制御装置５１９は、例えば移動体１０の胴部２０の−Ｚ側の面に実装されている。
【００３２】
記憶部５２２は、例えば、ＲＡＭやＲＯＭであり、プログラム格納部とデータ格納部とを含む。プログラム格納部には、ステレオカメラ２１の撮像を制御するための撮像プログラム、自律飛行するための飛行制御プログラム、ステレオカメラ２１の姿勢を制御するための姿勢制御プログラム、及び飛行計画プログラムなどのプログラムが格納されている。データ格納部には、ステレオカメラ２１で撮像した撮像データ、並びにＧＰＳアンテナ５１２及びＧＰＳ受信器５２５によって取得した絶対座標（地表座標）などのデータが格納される。
【００３３】
制御演算部５２０は、記憶部５２２に格納されたプログラムに基づいて、移動体１０の全体の動作を制御する。
【００３４】
ここで、ステレオカメラ２１は、静止画及び動画を撮像可能であり、取得した画像をデジタル信号の画像データとして撮像制御部５２３に出力可能である。
【００３５】
撮像制御部５２３は、ステレオカメラ２１による静止画や動画の撮像に関する制御を行う。撮像制御部５２３には、撮像部３００から画素又は画素ブロック毎の距離情報、すなわち視差画像から得られた距離画像が送られる。撮像制御部５２３は、撮像部３００からの距離画像を、制御演算部５２０を介して飛行制御部５２６に送る。
【００３６】
方位センサ５２７は、移動体１０の向きを検出し、その検出結果を制御演算部５２０に出力する。
【００３７】
ジャイロユニット５２８は、移動体１０の飛行状態での姿勢を検出し、その検出結果を制御演算部５２０に出力する。
【００３８】
飛行制御部５２６は、制御部４００により推定（検出）された自己位置、方位センサ５２７により検出された移動体１０の向き、ジャイロユニット５２８により検出された移動体１０の姿勢、撮像部３００からの距離画像等に基づいて、プロペラモータ５４５Ａ〜５４５Ｄの駆動を制御することにより、移動体１０の自律飛行を制御する。
【００３９】
なお、制御部４００により推定（検出）される自己位置は、移動体１０の３次元位置のみであっても良いし（前者）、移動体１０の３次元位置に加えて向きや姿勢を含んでいても良い（後者）。後者の場合には、方位センサ５２７やジャイロユニット５２８は、必須ではない。
【００４０】
なお、飛行制御部５２６は、ＧＰＳアンテナ５１２及びＧＰＳ受信器５２５を含むＧＰＳ装置によって取得した絶対座標を用いて、移動体１０の自律飛行を制御しても良い。
【００４１】
但し、ＧＰＳ装置は絶対位置を求めることができるものの、環境によって結果が不安定になったり、観測不能になったりすることがある。そのため、撮像部３００、制御部４００、方位センサ５２７、ジャイロユニット５２８等が配備されるメリットは大きい。
【００４２】
通信部５２９は、制御部４００と通信して、制御部４００により推定（検出）された自己位置を示す自己位置情報を取得したり、ステレオカメラ２１で撮像した撮像データやＧＰＳアンテナ５１２及びＧＰＳ受信器５２５により測定された移動体１０の絶対座標を基地局などに無線送信したりする等の機能を有する。
【００４３】
図５には、ステレオカメラ２１の撮影画像が示されている。ステレオカメラ２１の画角内には、移動体１０の可動部（機体１１に対して可動な部分）であるプロペラ１２、移動体１０の非可動部（非可動な部分）である、プロペラ１２を回転可能に支持するアーム９ａ及び脚部１６、１７それぞれの少なくとも一部が入っており、プロペラ１２、アーム９ａ、脚部１６、１７それぞれの少なくとも一部がステレオカメラ２１の撮影画像に写っている（図５参照）。なお、図５では、撮影画像に通常写る周辺環境（背景）を省略している。
【００４４】
ここで、ステレオカメラ２１は、一定のフレームレートで常に画角内の周辺環境を撮影しているとする。
【００４５】
制御部４００は、上述したようにＣＰＵ４１１含む演算・処理装置、記憶装置及び入出力装置を含んで構成され、ステレオカメラ２１を含む撮像部３００によって取得された画像が入力され、時間的に前後するフレームの点の対応を用いて自己位置を算出する。このような時間的に前後するフレームの点の対応を取る手法としては、例えばＬｕｃａｓ−Ｋａｎａｄｅ法（非特許文献：Bruce D. Lucas and Takeo Kanade. An Iterative Image Registration Technique with an Application to Stereo Vision. International Joint Conference on Artificial Intelligence, pages 674-679, 1981.）を用いることができる。
【００４６】
以下に、制御部４００によって実施される実施例１の自己位置検出処理である自己位置検出処理１について図６を参照して説明する。図６のフローチャートは、制御部４００のＣＰＵ４１１によって実行される処理アルゴリズムに基づいている。自己位置検出処理１は、所定の時間間隔で繰り返し行われる。
【００４７】
最初のステップＳ１では、移動体１０において可動部静止モードにする。具体的には、プロペラ１２〜１５を停止させて機体１１を静止させ、ステレオカメラ２１から見て背景が静止した状態にする。
【００４８】
次のステップＳ２では、可動部静止モード中に、撮像部３００からの視差画像を入力する。
【００４９】
次のステップＳ３では、撮像部３００から異なるタイミングで入力された複数の視差画像を用いて背景画像（視差画像）生成する。具体的には、背景画像の各画素の画素値（視差値）として、可動部静止モードにおいて一定時間内に得られた複数の視差画像の対応する画素の画素値（視差値）から適切な画素値（視差値）を選択する。適切な画素値を選択する手法は、画素値の平均を取る方法や最頻値を取る方法がある。生成された背景画像はＲＡＭ４１２に保存される。
【００５０】
次のステップＳ４では、可動部動作モードに移行する。具体的には、例えば移動体１０のプロペラ１２〜１５を移動体１０を浮上させるのに十分な揚力が得られない程度に低い回転速度で回転させることで、機体１１が動かず可動部であるプロペラ１２〜１５が動く状態となる。
【００５１】
次のステップＳ５では、可動部動作モード中に、撮像部３００からの視差画像を入力する。入力された視差画像はＲＡＭ４１２に保存される。
【００５２】
次のステップＳ６では、可動部動作モード中に入力された視差画像から可動部領域を抽出（検出）する。すなわち、該視差画像から、ステレオカメラ２１の画角内に入るプロペラ１２（可動部）が写る領域を抽出する。この抽出は、ＣＰＵ４１１の指示により、制御部４００が有する可動部領域検出部４１７（図３参照）によって行われる。
【００５３】
詳述すると、可動部領域検出部４１７は、ステップＳ３で生成された背景画像（視差画像）とステップＳ５で入力された視差画像の対応する画素（対応画素）の画素値（視差値）を比較し、画素値の差が閾値を下回る場合に該画素を背景領域の画素と判定し、上回る場合に該画素を可動部領域の画素と判定し、可動部領域の画素と判定した全ての画素を可動部領域として抽出（検出）する。
【００５４】
次のステップＳ７では、オプティカルフロー（物体等の見かけの動きをベクトルで表したもの）を算出する。この際、ステップＳ６で可動部領域の画素と判定された画素は、オプティカルフローを算出する対象（自己位置を求めるのに用いる候補）から除外する。この除外は、ＣＰＵ４１１の指示により、制御部４００が有する可動部領域除外部４１８（図３参照）によって行われる。
【００５５】
詳述すると、可動部領域除外部４１８は、オプティカルフローによる点対応をとる際の参照フレーム（現フレームより時間的に前のフレーム）において、ステップＳ６で可動部領域の画素と判定された全ての画素がＯＦＦで、それ以外の画素がＯＮとなるようなマスクを生成し、ＯＦＦとなっている領域（マスク領域）の点（画素もしくは画素ブロック）に対しては、現フレームにおいて対応点を探索しないようにする（図７（ａ）及び図７（ｂ）参照）。なお、図７（ａ）は参照フレームを示し、図７（ｂ）は現フレームを示している。
【００５６】
オプティカルフローの参照点（探索元の点）の与え方として、時間的に前のフレームにおける対応点探索結果を使う場合と、画像中の特徴的な点（特徴点）の抽出結果を使う場合などがあるが、いずれの処理で得られる点に対しても、マスク領域に一度入った点は対応点探索の対象とはならない。
【００５７】
ここでは、マスクは視差画像の画素毎にＯＮ／ＯＦＦを設定して可動部領域か否かを決めるマスクを生成しているが、これに代えて、視差画像を一定の大きさの矩形領域に区切り、該矩形領域毎にＯＮ／ＯＦＦを設定してマスクを生成しても良い。この場合、ステップＳ６において、可動部領域の画素と判定された画素を少なくとも１つ含む矩形領域を可動部領域とすれば良い。
【００５８】
参照フレームにおいて、オプティカルフローの参照点が得られた後は、参照フレームに対して時間的に後のフレーム（現フレーム）における対応点を探索し、オプティカルフローを得る。対応点の探索方法としては、ブロックマッチングや勾配法など良く知られた手法がある。
【００５９】
ステップＳ８では、ステップＳ７で得られたオプティカルフローを用いて、自己位置を検出する。自己位置の検出は、ＣＰＵ４１１の指示により、制御部４００が有する自己位置算出部４１９（図３参照）によって行われる。
【００６０】
自己位置の検出は、時間的に前後するフレーム間でステレオカメラ２１の移動を、回転方向の移動量を３つのパラメータ（α、β、γ）で、並進方向の移動量を３つのパラメータ（Δｘ、Δｙ、Δｚ）で、合計６つのパラメータで表現することにより行う。
【００６１】
（Δｘ、Δｙ、Δｚ）はワールド座標系（ｘ、ｙ、ｚ）における並進パラメータ（３次元座標）であり、（α、β、γ）はワールド座標系（ｘ、ｙ、ｚ）における回転パラメータである。すなわち、Δｘはｘ軸方向の移動量（並進量）、Δｙはｙ軸方向の移動量（並進量）、Δｚはｚ軸方向の移動量（並進量）、αはｘ軸周りの移動量（回転量）、βはｙ軸周りの移動量（回転量）、γはｚ軸周りの移動量（回転量）である。
【００６２】
ここで、ある点について３次元座標（Δｘ、Δｙ、Δｚ）と、その点がステレオカメラ２１に投影されたときの２次元座標の対応が複数取れていれば、そのときのカメラの位置・向きを、未知数として連立方程式の解を求める、ＰｎＰ問題という問題を解くことによって、推定できることが知られており、例えば最小３セットの対応により求める方法などがある。
【００６３】
ここで、ある点の３次元座標（Δｘ、Δｙ、Δｚ）は、ステレオカメラ２１を用いることによって算出することができる。つまり、時間的に前のフレームにおいてステレオカメラ２１を使った三角測量により３次元座標（Δｘ、Δｙ、Δｚ）が算出可能であり、さらにその点が時間的に後のフレームにおいて、どの点に移動したのかが、ステップＳ７のオプティカルフローによって分かるため、時間的に前後するフレーム間でステレオカメラ２１がどのように動いたのかが算出できる。
【００６４】
まず、求めたいステレオカメラ２１の回転・並進移動量を６つの未知数として、既知な点の３次元座標（Δｘ、Δｙ、Δｚ）を、ステレオカメラ２１の位置・向きを示す変換行列で座標変換し、座標変換後の３次元座標に投影行列をかけてステレオカメラ２１に投影されるべき２次元座標とする。そして、その点の２次元座標と、該点に対応する、ステレオカメラ２１の撮影画像の画素もしくは画素ブロックの、ステレオカメラ２１の座標系（以下では「カメラ座標系」とも呼ぶ）における２次元座標との差分を誤差とし、撮影画像の画素との対応が取れた全点分の誤差の合計値が最小になるように、未知なステレオカメラ２１の位置・向きを算出するという方法を用いる。
【００６５】
具体的には、以下のようになる。
まず、ステレオカメラ２１の位置・向きを同次座標表現の変換行列で定義し、（３×３）の回転成分を３つのベクトルＲ１Ｔ、Ｒ２Ｔ、Ｒ３Ｔ、並進成分をｔｘ、ｔｙ、ｔｚで定義すると、ある対応の取れている点の３次元座標をｘｉとして、カメラ座標系への座標変換後の３次元座標ｘ´ｉは、次の（１）式で表される。
【数１】
2018009918.tif 000003
【００６６】
これを、焦点距離・中心座標などが既知のステレオカメラ２１に投影することにより、２次元座標を求めることができる。投影行列は、ステレオカメラ２１の焦点距離ｆｘ、ｆｙ、中心座標ｃｘ、ｃｙなどがパラメータとしてあるが、単純化のために焦点距離をそれぞれ１、中心座標をそれぞれ０とすると、投影後の２次元座標（ｕｉ、ｖｉ）は、次の（２）式で表される。
【数２】
2018009918.tif 000004
【００６７】
（ｕｉ、ｖｉ）と、ステレオカメラ２１の撮影画像中で実際に観測された２次元座標（ｕｉ´、ｖｉ´）との誤差の合計を最小化（最小二乗）にする。
すなわち、
【数３】
2018009918.tif 000005
を最小にするような、Ｒ１Ｔ、Ｒ２Ｔ、Ｒ３Ｔ、ｔｘ、ｔｙ、ｔｚを求める。
【００６８】
この誤差の合計は、非線形であり、通常直接的に求めることはできないため、初期解から反復的に解を改善していき、ほとんど変化しなくなった値を極値解とする反復解法を用いる。反復解法の収束方法として、ガウスニュートン法やレーベンバーグ・マーカート法といった手法を用いる。
【００６９】
この最小二乗の最適化には、オプティカルフローが算出できた点を使うことになるが、通常では動物体や可動部の動きも入ってしまい、最適化の精度を下げる、もしくは収束しないといった悪影響を与えてしまうが、本発明によって、悪影響をおよぼす点を排除することができる。
【００７０】
なお、図６の動作フローにおいて、視差画像に代えて、ステレオカメラ２１の撮影画像（輝度画像）を用いても良い。具体的には、ステレオカメラ２１を含む撮像部３００から一定時間内に複数の撮影画像（輝度画像）を入力し、該複数の撮影画像から適切な画素値（輝度値）を選択して背景画像（輝度画像）を生成しても良い。適切な画素値を選択する手法は、画素値の平均を取る方法や最頻値を取る方法がある。
【００７１】
また、図６の動作フローのステップＳ６における可動部領域と背景領域の判定に、オプティカルフローを用いても良い。可動部動作モード中に、オプティカルフロー算出の処理を行うと、静止した背景領域はオプティカルフローの移動量がほぼ０になるのに対し、動いている可動部領域はオプティカルフローの移動量が大きく算出されるので、その移動量が大きい領域を可動部領域と判定することができる。この場合、可動部領域と背景領域の判定に、背景差分などの特別なプログラムを必要としない。
【００７２】
ところで、可動部領域を抽出すると、機体１１の可動部領域以外は全て背景領域となり、オプティカルフロー算出の対象となるが、ステレオカメラ２１の撮影画像には移動体１０の非可動部（アーム９ａ、脚部１６、１７それぞれの少なくとも一部）も写る。このとき、移動体１０が動くとステレオカメラ２１から見て背景は相対的に移動して見えるが、移動体１０の非可動部はステレオカメラ２１から見て静止することになる。非可動部が写る領域も実際は背景ではないため、自己位置の検出には前述と同様の悪影響がある。
【００７３】
そこで、実施例２として、移動体１０の可動部（プロペラ１２）に加えて、非可動部（アーム９ａ、脚部１６、１７それぞれの少なくとも一部）がステレオカメラ２１の撮影画像に写る領域を特定し、該領域をオプティカルフロー算出の対象から除外することが好ましい。この場合、自己位置の検出が、より高精度かつロバストになる。
【００７４】
実施例２の自己位置検出処理である自己位置検出処理２について、図８を参照して説明する。図８のフローチャートは、制御部４００のＣＰＵ４１１によって実行される処理アルゴリズムに基づいている。自己位置検出処理２は、所定の時間間隔で繰り返し行われる。
【００７５】
最初のステップＳ１１では、移動体１０において可動部静止モードにする。具体的には、プロペラ１２〜１５を停止させて機体１１を静止させ、ステレオカメラ２１から見て背景が静止した状態にする。
【００７６】
次のステップＳ１２では、可動部静止モード中に、撮像部３００からの視差画像を入力する。
【００７７】
次のステップＳ１３では、撮像部３００から異なるタイミングで入力された複数の視差画像を用いて背景画像（視差画像）を生成する。具体的には、背景画像の各画素の画素値（視差値）として、可動部静止モードにおいて一定時間内に得られた複数の視差画像の対応する画素の画素値（視差値）から適切な画素値（視差値）を選択する。適切な画素値を選択する手法は、画素値の平均を取る方法や最頻値を取る方法がある。生成された背景画像はＲＡＭ４１２に保存される。
【００７８】
次のステップＳ１４では、可動部動作モードに移行する。具体的には、例えば移動体１０のプロペラ１２〜１５を移動体１０が浮上するのに十分な揚力が得られない程度に低い回転速度で回転させることで、機体１１が動かず可動部であるプロペラ１２〜１５が動く状態となる。
【００７９】
次のステップＳ１５では、可動部動作モード中に、撮像部３００からの視差画像を入力する。入力された視差画像はＲＡＭ４１２に保存される。
【００８０】
次のステップＳ１６では、可動部動作モード中に入力された視差画像から可動部領域を抽出（検出）する。すなわち、該視差画像から、ステレオカメラ２１の画角内に入るプロペラ１２が写る領域を抽出する。この抽出は、ＣＰＵ４１１の指示により、制御部４００が有する可動部領域検出部によって行われる。
【００８１】
詳述すると、可動部領域検出部４１７は、ステップＳ３で生成された背景画像（視差画像）とステップＳ５で入力された視差画像の対応する画素の画素値（視差値）を比較し、画素値の差が閾値を下回る場合に該画素を背景領域の画素と判定し、上回る場合に該画素を可動部領域の画素と判定し、可動部領域の画素と判定した全ての画素を可動部領域として抽出（検出）する。
【００８２】
次のステップＳ１７では、移動モードに移行する。具体的には、移動体１０のプロペラ１２〜１５を回転させ機体１１を浮上させるなどして移動体１０を移動させる。
【００８３】
次のステップＳ１８では、移動モード中に撮像部３００からの視差画像を入力する。
【００８４】
次のステップＳ１９では、移動モード中に入力された視差画像から非可動部領域を抽出する。具体的には、ステップＳ１３で生成された背景画像（視差画像）とステップＳ１８で入力された視差画像の対応する画素の画素値（視差値）を比較し、画素値の差が閾値以下である画素を、移動体１０の非可動部（アーム９、脚部１６、１７）が写る非可動部領域の画素と判定する。この際、機体１１を移動させる量を少なくして、照度の変化などが起きないようにすることが望ましい。非可動部領域の抽出は、ＣＰＵ４１１の指示により、制御部４００が有する非可動部領域検出部によって行われる。
【００８５】
次のステップＳ２０では、オプティカルフローを算出する。この際、ステップＳ１６で可動部領域の画素と判定された画素及びステップＳ１９で非可動部領域の画素と判定された画素は、オプティカルフローを算出する対象（自己位置を求めるのに用いる候補）から除外する。可動部領域の画素及び非可動部領域の画素の除外は、ＣＰＵ４１１の指示により、制御部４００が有する可動部領域・非可動部領域除外部によって行われる。
【００８６】
詳述すると、可動部領域・非可動部領域除外部は、オプティカルフローによる点対応をとる際の参照フレーム（現フレームより時間的に前のフレーム）において、ステップＳ１６で可動部領域の画素と判定された全ての画素及びステップＳ１９で非可動部領域の画素と判定された全ての画素がＯＦＦで、それ以外の画素がＯＮとなるようなマスクを生成し、ＯＦＦとなっている領域（マスク領域）の点（画素もしくは画素ブロック）に対しては、現フレームにおいて対応点を探索しないようにする。
【００８７】
なお、可動部領域及び非可動部領域に対するマスクは、１つに統一しておくことが好ましい。
【００８８】
オプティカルフローの参照点（探索元の点）の与え方として、時間的に前のフレームにおける対応点探索結果を使う場合と、画像中の特徴的な点（特徴点）の抽出結果を使う場合などがあるが、いずれの処理で得られる点に対しても、マスク領域に一度入った点は対応点探索の対象とはならない。
【００８９】
ここでは、マスクは視差画像の画素毎にＯＮ／ＯＦＦを設定して可動部領域か否かを決めるマスクを生成しているが、これに代えて、視差画像を一定の大きさの矩形領域に区切り、該矩形領域毎にＯＮ／ＯＦＦを設定してマスクを生成しても良い。この場合、ステップＳ１６において可動部領域の画素と判定された画素を少なくとも１つ含む矩形領域を可動部領域とし、ステップＳ１９において非可動部領域の画素と判定された画素を少なくとも１つ含む矩形領域を非可動部領域とすれば良い。
【００９０】
参照フレームにおいてオプティカルフローの参照点が得られた後は、参照フレームに対して時間的に後のフレーム（現フレーム）における対応点を探索し、オプティカルフローを得る。対応点の探索方法としては、ブロックマッチングや勾配法など良く知られた手法がある。
【００９１】
ステップＳ２１では、ステップＳ２０で得られたオプティカルフローを用いて、自己位置を検出する。自己位置の検出は、ＣＰＵ４１１の指示により、制御部４００が有する自己位置算出部によって行われる。その検出方法は、図６のステップＳ８と同様である。
【００９２】
なお、図８の動作フローにおいて、視差画像に代えて、ステレオカメラ２１の撮影画像（輝度画像）を用いても良い。具体的には、ステレオカメラ２１を含む撮像部３００から一定時間内に複数の撮影画像（輝度画像）を入力し、該複数の撮影画像から適切な画素値（輝度値）を選択して背景画像（輝度画像）を生成しても良い。適切な画素値を選択する手法は、画素値の平均を取る方法や最頻値を取る方法がある。
【００９３】
また、図８の動作フローのステップＳ１６における可動部領域と背景領域の判定に、オプティカルフローを用いても良い。可動部動作モード中に、オプティカルフロー算出の処理を行うと、静止した背景領域はオプティカルフローの移動量がほぼ０になるのに対し、動いている可動部領域ではオプティカルフローの移動量が大きく算出されるので、その移動量が大きい領域を可動部領域と判定する。この場合、可動部領域と背景領域の判定に、背景差分などの特別なプログラムを必要としない。
【００９４】
また、図８の動作フローのステップＳ１９における非可動部領域と背景領域の判定に、オプティカルフローを用いても良い。移動モード中に、オプティカルフロー算出の処理を行うと、移動する背景領域や動く可動部領域はオプティカルフローの移動量が大きく算出されるのに対し、非可動部領域はオプティカルフローの移動量が０となるので、その移動量が０となる領域を非可動部領域と判定できる。この場合、可動部領域と背景領域の判定に、背景差分などの特別なプログラムを必要としない。
【００９５】
以上説明した本実施形態の自己位置検出装置１００は、移動体１０に搭載される自己位置検出装置であって、移動体１０の一部が画角内に入るステレオカメラ２１（カメラ）と、該ステレオカメラ２１により異なるタイミングで撮影された複数の画像に基づいてステレオカメラ２１の位置情報を求める制御部４００（処理装置）と、を備え、制御部４００は、画像における移動体１０の一部が写る領域を検出する検出手段（例えば可動部領域検出部、非可動部領域検出部）と、該画像におけるステレオカメラ２１の位置情報を求めるのに用いる候補領域から上記領域の少なくとも一部を除外する除外手段（例えば可動部領域除外部、可動部領域・非可動部領域除外部）と、を含む。
【００９６】
この場合、移動体１０の一部がステレオカメラ２１で撮影された画像に写る場合に、該画像における移動体１０の一部が写る領域を、点の対応（オプティカルフロー）を算出する領域から除外することで、自己位置検出に必要な、背景・静止物体の対応点の数を、オプティカルフロー総数に対して支配的比率にすることができ、結果として高精度かつロバストな自己位置検出を行うことが可能となる。
【００９７】
すなわち、自己位置検出装置１００によれば、ステレオカメラ２１の画角内に移動体の少なくとも一部が入っても、自己位置を精度良く検出することができる。
【００９８】
また、自己位置検出処理における最適化の演算が収束しやすくなり、ロバストかつ処理速度向上の効果がある。
【００９９】
なお、ステレオカメラ２１として超広画角なものを用いれば、その画角内に移動体１０全体を入れることも可能である。この場合、ステレオカメラ２１の撮影画像に写る可動部はプロペラ１２〜１５となり、ステレオカメラ２１の撮影画像に写る非可動部は胴部２０、脚部１６、１７、アーム９ａ〜９ｄとなる。
【０１００】
また、制御部４００は、画像における候補領域から除外された領域以外の領域を用いて位置情報を算出する自己位置算出部（算出手段）を更に含むことが好ましい。
【０１０１】
また、移動体１０は、ステレオカメラ２１が設けられた、胴部２０、脚部１６、１７、アーム９ａ〜９ｄを含む機体１１（本体部）と、ステレオカメラ２１の画角内に少なくとも一部が入る、機体１１に設けられたプロペラ１２（可動部）と、を含む。
【０１０２】
また、機体１１の少なくとも一部（例えば胴部２０、アーム９ａ〜９ｄ、脚部１６、１７それぞれの少なくとも一部）が画角内に入っていても良い。
【０１０３】
また、検出手段は、移動体１０が移動しているときにステレオカメラ２１により異なるタイミングで撮影された複数の画像に写り該画像間での移動量が所定量以下の領域を、該画像における機体１１の少なくとも一部が写る領域として抽出しても良い。
【０１０４】
また、検出手段は、機体１１が静止し、かつ可動部が動作していないときにステレオカメラ２１により異なるタイミングで撮影された複数の画像から生成された画像（背景画像）と、移動体１０が移動しているときにステレオカメラ２１で撮影された画像の対応画素の画素値の差分に基づいて、機体１１の少なくとも一部が写る領域を抽出しても良い。
【０１０５】
また、除外手段は、機体１１の少なくとも一部が写る領域を候補領域から除外することが好ましい。
【０１０６】
また、検出手段は、本体部が静止し、かつ可動部が動作していないときにステレオカメラ２１により異なるタイミングで撮影された複数の画像から生成された画像（背景画像）と、可動部が動作しているときにステレオカメラ２１で撮影された画像の対応画素の画素値の差分に基づいて、可動部の少なくとも一部が写る領域を抽出しても良い。
【０１０７】
また、検出手段は、可動部が動作しているときにステレオカメラ２１により異なるタイミングで撮影された複数の画像に写り該画像間での移動量が所定量以上の領域を可動部の少なくとも一部が写る領域として抽出しても良い。
【０１０８】
また、除外手段は、可動部の少なくとも一部が写る領域を候補領域から除外することが好ましい。
【０１０９】
また、自己位置検出装置１００と、該自己位置検出装置１００が搭載される移動体と、を備える移動体装置によれば、自己位置制御性に優れた移動体装置を提供できる。
【０１１０】
また、本実施形態の自己位置検出方法は、移動体１０に搭載され、該移動体１０の一部が画角に入るステレオカメラ２１（カメラ）を含む自己位置検出装置１００（装置）による自己位置検出方法であって、ステレオカメラ２１により異なるタイミングで撮影する工程と、該撮影する工程で撮影された複数の画像に基づいて、ステレオカメラ２１の位置情報を求める工程と、を含み、該求める工程は、画像における移動体１０の一部が写る領域を検出するサブ工程と、該領域を、位置情報を求めるのに用いる候補領域から除外するサブ工程と、を含む。
【０１１１】
この場合、移動体１０の一部がステレオカメラ２１で撮影された画像に写る場合に、該画像における移動体１０の一部が写る領域を、点の対応（オプティカルフロー）を算出する領域から除外することで、自己位置検出に必要な、背景・静止物体の対応点の数を、オプティカルフロー総数に対して支配的比率にすることができ、結果として高精度かつロバストな自己位置検出を行うことが可能となる。
【０１１２】
すなわち、本実施形態の自己位置検出方法によれば、ステレオカメラ２１の画角内に移動体の少なくとも一部が入っても、自己位置を精度良く検出することができる。
【０１１３】
また、自己位置検出処理における最適化の演算が収束しやすくなり、ロバストかつ処理速度向上の効果がある。
【０１１４】
なお、ステレオカメラ２１として超広画角なものを用いれば、その画角内に移動体１０全体を入れることも可能である。この場合、ステレオカメラ２１の撮影画像に写る可動部はプロペラ１２〜１５となり、ステレオカメラ２１の撮影画像に写る非可動部は胴部２０、脚部１６、１７、アーム９ａ〜９ｄとなる。
【０１１５】
また、求める工程は、画像における候補領域から除外された領域以外の領域を用いてステレオカメラ２１の位置情報を算出するサブ工程を更に含むことが好ましい。
【０１１６】
なお、上記実施形態では、オプティカルフローを算出する対象から除外する範囲を、移動体１０の可動部領域のみ、もしくは可動部領域及び非可動部領域としているが、これに限らず、要は、ステレオカメラ２１の画角内に入る、移動体１０の少なくとも一部とすれば良い。例えば、移動体１０の非可動部領域（例えばアーム９ａ、脚部１６、１７）のみをオプティカルフローを算出する対象から除外しても良い。この除外は、ＣＰＵ４１１の指示により、例えば制御部４００が有する不図示の非可動部領域除外部によって行われる。
【０１１７】
なお、上記実施形態では、撮像部３００を支持部材１８、１９を介して機体１１に取り付けているが、映像安定化及び防振の観点から、図９に示される変形例の移動体装置１´のように撮像部３００をジンバル装置５０を介して機体１１に取り付けても良い。
【０１１８】
ジンバル装置５０は、ジンバル機構と、姿勢駆動部と、ジンバル機構の揺動軸の角速度を検知する、少なくとも１つのジャイロセンサを含むジャイロユニットを有する。
【０１１９】
ジンバル装置５０では、移動体１０が移動（例えば急旋回、急加減速）しているときに、ジンバル機構の動作による移動体１０と撮像部３００の相対位置ずれをジャイロユニットで検出し、該ずれをキャンセルするよう、すなわち移動体１０の向きに撮像部３００の向きを追従させるよう姿勢駆動部が撮像部３００を駆動する。
【０１２０】
変形例の移動体装置１´においても、上記実施形態と同様の構成の自己位置検出装置を備えることにより、同一の作用、効果を得ることができる。
【０１２１】
また、上記実施形態及び変形例において、自己位置検出用のカメラとして、ステレオカメラに代えて、単眼カメラを２つ組み合わせたものを用いても良い。
【０１２２】
また、上記実施形態及び変形例において、自己位置検出用のカメラとして、ステレオカメラに代えて、単眼カメラを１つ用いても良い。
【０１２３】
また、上記実施形態及び変形例において、撮影用のカメラ（ステレオカメラもしくは少なくとも１つの単眼カメラ）と、自己位置検出用のカメラ（ステレオカメラもしくは少なくとも１つの単眼カメラ）とを併設しても良い。
【０１２４】
また、本発明の自己位置検出装置を自律して移動可能なロボット（例えば手足などの可動部を有するロボット）、車両、船舶、有人航空機等の移動体にジンバルを介して又は介さずに取り付けても良い。この場合も、上記実施形態や変形例と同様の効果が得られる。
【０１２５】
例えば移動体が自動車であってその車内にカメラが配置される場合には、雨天時に作動されるワイパーを可動部とすることもできる。
【０１２６】
また、上記実施形態及び変形例の説明で用いた数値、形状等は、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【０１２７】
以下に、発明者が上記実施形態及び変形例を発案するに至った思考プロセスを説明する。
【０１２８】
従来、例えば自動車、ロボット、無人航空機等の移動体において、移動体に、移動体自身の自己位置を認識させる方法が知られている。例えば、カメラの撮影画像を用いる方法として、Ｖｉｓｕａｌ  ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ）等がある。
【０１２９】
例えば自動車、ロボット、無人航空機等の移動体を自律的に移動させるためには、移動体が自己位置を正確に認識することが必要であり、様々な方法が提案されている。中でも移動体に搭載されたカメラの撮影画像を用いて自己位置や周囲の環境を把握する技術はＶｉｓｕａｌ  ＳＬＡＭと呼ばれており、エンコーダを使った移動量の検出が困難な飛行する移動体の自己位置を検出する用途や、スリップなどの影響を受けない自己位置検出に用いられる。
【０１３０】
カメラ画像を用いた自己位置検出の方法として、異なる視点で撮影された画像列から、カメラの位置・向きと、撮影した物体の形状を同時に推定する、Ｓｔｒｕｃｔｕｒｅ  Ｆｒｏｍ  Ｍｏｔｉｏｎと呼ばれる技術がある。これは、３次元物体中の点が、透視投影変換もしくはその近似によってカメラの画像センサ（撮像素子）に投影された結果であることをモデル化し、画像中の特徴的な点（特徴点）が、移動体から見て相対的にどのように動いたかの情報に基づいて、投影変換モデルの変換パラメータを推定するものである。
【０１３１】
この推定に必要な処理として、画像中の特徴的な点が、移動体の移動の前後に撮影された画像中で、どのように動いたのかを知るための前段処理の一つとして、オプティカルフローと呼ばれる、物体などの見かけの動きを検出する処理がある。その後段処理として、検出された複数の特徴的な点のオプティカルフローの情報に基づいて、３次元空間中の点の座標と、画像センサで撮影された観測座標の関係式を、カメラの移動（回転および並進移動）を未知数として連立して解く方法が一般的である。
【０１３２】
カメラの撮影画像におけるオプティカルフローに基づいてカメラの移動、つまり移動体の移動を検出する手法では、動いている物体の特徴点の情報を用いるとカメラの位置を正確に算出できない。
【０１３３】
例えば、ＲＡＮＳＡＣ（Ｒａｎｄｏｍ  Ｓａｍｐｌｉｎｇ  Ｃｏｎｓｅｎｓｕｓ）と呼ばれる、外れ値を算出対象のデータから除外する手法があり、これにより静止物体中の特徴点の数が支配的であれば、コンセンサスから外れる動物体の特徴点をうまく除外することが可能であるが、移動体自身の像が写りこむなどして、背景でも静止物体でも無い特徴点の数が多くなるとうまく算出できない。
【０１３４】
また、動物体が接近するケースに対応するため、静止物体や背景を多くカメラの画像に取りこむように広角のカメラを使うと有効であるが、そうすると今度は、移動体自身が映りこむ領域が増えるため、移動体に可動部がある場合などでは、動物体の特徴点が多く入ってしまう。
【０１３５】
また、例えば特許文献１（特許５０８４３７４号公報）では、対象物に対して撮影装置が相対的な移動をする環境で、撮影装置の位置を得るために、画像間の特徴点の対応を探索し追跡を行い、特徴点の画像中の座標を用いて投影パラメータを算出する。その際、特徴点の誤った対応を除去するために外れ値の影響を小さくするロバスト推定を行う。しかし、装置自身の映りこみの影響などへの対応が考えられていないため、装置自身もしくは装置の可動部の映りこみの影響により誤対応の点数が多くなる可能性がある。その場合、ＲＡＮＳＡＣやメディアン推定を用いたロバスト推定では、誤った対応点の数の影響を受け、正確に算出できなくなる課題がある。
【０１３６】
そこで、移動体の可動部や非可動部が映りこむ領域を、オプティカルフローを検出する領域から除外することが望まれる。
【０１３７】
以上のような思考プロセスによって、発明者は、上記実施形態及び変形例を発案した。
【符号の説明】
【０１３８】
１、１´…移動体装置、９ａ〜９ｄ…アーム（本体部の一部）、１０…移動体、１１…機体（本体部）、１２…プロペラ（可動部）、２１…ステレオカメラ（カメラ）、４００…制御部（処理装置）、４１７…可動部領域検出部（検出手段）、４１８…可動部領域除外部（除外手段）、４１９…自己位置算出部（算出手段）。
【先行技術文献】
【特許文献】
【０１３９】
【特許文献１】特許５０８４３７４号公報
【図１】
2018009918.tif 000006
【図２】
2018009918.tif 000007
【図３】
2018009918.tif 000008
【図４】
2018009918.tif 000009
【図５】
2018009918.tif 000010
【図６】
2018009918.tif 000011
【図７】
2018009918.tif 000012
【図８】
2018009918.tif 000013
【図９】
2018009918.tif 000014