以下、発明の実施の形態を通じて本開示を説明するが、以下の実施の形態は特許請求の範囲に係る発明を限定するものではない。実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須とは限らない。
特許請求の範囲、明細書、図面、及び要約書には、著作権による保護の対象となる事項が含まれる。著作権者は、これらの書類の何人による複製に対しても、特許庁のファイル又はレコードに表示される通りであれば異議を唱えない。但し、それ以外の場合、一切の著作権を留保する。
本開示に係る飛行経路生成システムは、移動体の一例としての飛行体と、飛行体の動作又は処理を遠隔で制御するためのプラットフォームとを含む構成である。
本開示に係る情報処理装置は、プラットフォームと、飛行体との少なくとも一方に含まれるコンピュータであって、飛行体の動作に係る各種処理を実行するものである。
飛行体は、空中を移動する航空機(例えばドローン、ヘリコプター)を含む。飛行体は、撮像装置を有する無人飛行体(UAV:Unmanned Aerial Vehicle)であってもよい。飛行体は、撮像範囲における被写体(例えば一定の範囲内の建物、道路、公園等の地面形状)を撮像するために、あらかじめ設定された飛行経路に沿って飛行し、飛行経路上に設定されている複数の撮像位置において被写体を撮像する。被写体は、例えば建物、道路等のオブジェクトが含まれる。
プラットフォームは、コンピュータであって、例えば飛行体の移動を含む各種処理の遠隔制御を指示するための送信機、或いは送信機又は飛行体と情報やデータの入出力が可能に接続された通信端末である。通信端末は、例えば携帯端末、PC(Personal Computer)などであってよい。なお、飛行体自体がプラットフォームとして含まれてよい。
本開示に係る飛行経路生成方法は、情報処理装置(プラットフォーム、飛行体)、又は飛行経路生成システムにおける各種の処理(ステップ)が規定されたものである。
本開示に係るプログラムは、情報処理装置(プラットフォーム、飛行体)、又は飛行経路生成システムに各種の処理(ステップ)を実行させるためのプログラムである。
本開示に係る記録媒体は、プログラム(つまり、情報処理装置(プラットフォーム、飛行体)、又は飛行経路生成システムに各種の処理(ステップ)を実行させるためのプログラム)が記録されたものである。
以下の実施形態では、飛行体として、無人飛行体(UAV)を例示する。本明細書に添付する図面では、無人飛行体を「UAV」と表記する。本実施形態では、無人飛行体は、オブジェクトの側面を撮像可能な撮像位置を含む飛行経路を設定する。
[飛行経路生成システム、第1構成例]
図1は、実施形態における飛行経路生成システム10の第1構成例を示す模式図である。飛行経路生成システム10は、無人飛行体100、送信機50、及び携帯端末80を含む。無人飛行体100、送信機50、及び携帯端末80は、有線通信又は無線通信(例えば無線LAN(Local Area Network)、又はBluetooth(登録商標))を用いて、互いに通信することが可能である。送信機50は、例えば送信機50を使用する人物(以下、「ユーザ」という)の両手で把持された状態で使用される。
図2は、無人飛行体100の外観の一例を示す図である。図3は、無人飛行体100の具体的な外観の一例を示す図である。無人飛行体100が移動方向STV0に飛行する時の側面図が図2に示され、無人飛行体100が移動方向STV0に飛行する時の斜視図が図3に示されている。無人飛行体100は、撮像部の一例としての撮像装置220,230を備えて移動する移動体の一例である。移動体とは、無人飛行体100の他、空中を移動する他の航空機、地上を移動する車両、水上を移動する船舶等を含む概念である。ここで、図2及び図3に示すように、地面と平行であって移動方向STV0に沿う方向にロール軸(図2及び図3のx軸参照)が定義されたとする。この場合、地面と平行であってロール軸に垂直な方向にピッチ軸(図2及び図3のy軸参照)が定められ、更に、地面に垂直であってロール軸及びピッチ軸に垂直な方向にヨー軸(図2及び図3のz軸)が定められる。
無人飛行体100は、UAV本体102と、ジンバル200と、撮像装置220と、複数の撮像装置230とを含む構成である。無人飛行体100は、プラットフォームの一例としての送信機50から送信される遠隔制御の指示を基に移動する。無人飛行体100の移動は、飛行を意味し、少なくとも上昇、降下、左旋回、右旋回、左水平移動、右水平移動の飛行が含まれる。
UAV本体102は、複数の回転翼(プロペラ)を備える。UAV本体102は、複数の回転翼の回転を制御することにより無人飛行体100を移動させる。UAV本体102は、例えば4つの回転翼を用いて無人飛行体100を移動させる。回転翼の数は、4つに限定されない。また、無人飛行体100は、回転翼を有さない固定翼機でよい。
撮像装置220は、所望の撮像範囲に含まれる被写体(例えば、地上の建物)を撮像する撮像用のカメラである。なお被写体は、例えば建物等のオブジェクトとともに、無人飛行体100の空撮対象となる上空の様子、山や川等の景色が含まれてよい。
複数の撮像装置230は、無人飛行体100の移動を制御するために無人飛行体100の周囲を撮像するセンシング用のカメラである。2つの撮像装置230が、無人飛行体100の機首である正面に設けられてよい。更に、他の2つの撮像装置230が、無人飛行体100の底面に設けられてよい。正面側の2つの撮像装置230はペアとなり、いわゆるステレオカメラとして機能してよい。底面側の2つの撮像装置230もペアとなり、ステレオカメラとして機能してよい。複数の撮像装置230により撮像された画像に基づいて、無人飛行体100の周囲の3次元空間データが生成されてよい。なお、無人飛行体100が備える撮像装置230の数は4つに限定されない。無人飛行体100は、少なくとも1つの撮像装置230を備えていればよい。無人飛行体100は、無人飛行体100の機首、機尾、側面、底面、及び天井面のそれぞれに少なくとも1つの撮像装置230を備えてよい。撮像装置230で設定できる画角は、撮像装置220で設定できる画角より広くてよい。撮像装置230は、単焦点レンズ又は魚眼レンズを有してよい。
[無人飛行体の構成例]
次に、無人飛行体100の構成例について説明する。
図4は、図1の飛行経路生成システム10を構成する無人飛行体100のハードウェア構成の一例を示すブロック図である。無人飛行体100は、処理部110と、通信インタフェース150と、メモリ160と、ストレージ170と、バッテリ190と、ジンバル200と、回転翼機構210と、撮像装置220と、撮像装置230と、GPS受信機240と、慣性計測装置(IMU:Inertial Measurement Unit)250と、磁気コンパス260と、気圧高度計270と、超音波センサ280と、レーザ測定器290とを含む構成である。通信インタフェース150は、通信部の一例である。
処理部110は、プロセッサ、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)又はDSP(Digital Signal Processor)を用いて構成される。処理部110は、無人飛行体100の各部の動作を統括して制御するための信号処理、他の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。
処理部110は、メモリ160に格納されたプログラムに従って無人飛行体100の飛行を制御する。処理部110は、通信インタフェース150を介して遠隔の送信機50から受信した命令に従って、無人飛行体100の移動(つまり、飛行)を制御する。メモリ160は、無人飛行体100から取り外し可能であってよい。
処理部110は、撮像装置220及び撮像装置230により撮像された被写体の画像データ(以下、「撮像画像」と称する場合がある)を取得する。
処理部110は、ジンバル200、回転翼機構210、撮像装置220、及び撮像装置230を制御する。処理部110は、撮像装置220の撮像方向又は画角を変更することによって、撮像装置220の撮像範囲を制御する。処理部110は、ジンバル200の回転機構を制御することで、ジンバル200に支持されている撮像装置220の撮像範囲を制御する。
本明細書では、撮像範囲は、撮像装置220又は撮像装置230により撮像される地理的な範囲をいう。撮像範囲は、緯度、経度、及び高度で定義される。撮像範囲は、緯度、経度、及び高度で定義される3次元空間データにおける範囲でよい。撮像範囲は、撮像装置220又は撮像装置230の画角及び撮像方向、並びに無人飛行体100が存在する位置に基づいて特定される。撮像装置220及び撮像装置230の撮像方向は、撮像装置220及び撮像装置230の撮像レンズが設けられた正面が向く方位と俯角とから定義される。撮像装置220の撮像方向は、無人飛行体100の機首の方位と、ジンバル200に対する撮像装置220の姿勢の状態とから特定される方向である。撮像装置230の撮像方向は、無人飛行体100の機首の方位と、撮像装置230が設けられた位置とから特定される方向である。
処理部110は、回転翼機構210を制御することで、無人飛行体100の飛行を制御する。つまり、処理部110は、回転翼機構210を制御することにより、無人飛行体100の緯度、経度、及び高度を含む位置を制御する。処理部110は、無人飛行体100の飛行を制御することにより、撮像装置220及び撮像装置230の撮像範囲を制御してよい。処理部110は、撮像装置220が備えるズームレンズを制御することで、撮像装置220の画角を制御してよい。処理部110は、撮像装置220のデジタルズーム機能を利用して、デジタルズームにより、撮像装置220の画角を制御してよい。処理部110は、設定した飛行経路の途中に存在する撮像位置(後述するウェイポイント(Waypoint))において、撮像装置220又は撮像装置230により被写体を水平方向、既定角度の方向、又は鉛直方向に撮像させる。既定角度の方向は、情報処理装置(無人飛行体又はプラットフォーム)が被写体の3次元形状の推定を行う上で適した既定値の角度の方向である。
撮像装置220が無人飛行体100に固定され、撮像装置220を動かせない場合、処理部110は、特定の日時に特定の位置に無人飛行体100を移動させることにより、所望の環境下で所望の撮像範囲を撮像装置220に撮像させることができる。あるいは撮像装置220がズーム機能を有さず、撮像装置220の画角を変更できない場合でも、処理部110は、特定された日時に、特定の位置に無人飛行体100を移動させることで、所望の環境下で所望の撮像範囲を撮像装置220に撮像させることができる。
通信インタフェース150は、送信機50と通信する。通信インタフェース150は、遠隔の送信機50から処理部110に対する各種の命令を受信する。
メモリ160は、記憶部の一例である。メモリ160は、処理部110がジンバル200、回転翼機構210、撮像装置220、撮像装置230、GPS受信機240、慣性計測装置250、磁気コンパス260、気圧高度計270、超音波センサ280、及びレーザ測定器290を制御するのに必要なプログラム等を格納する。メモリ160は、撮像装置220,230により撮像された撮像画像を格納する。メモリ160は、コンピュータ読み取り可能な記録媒体でよく、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、及びUSBメモリ等のフラッシュメモリの少なくとも1つを含んでよい。メモリ160は、UAV本体102の内部に設けられてよい。UAV本体102から取り外し可能に設けられてよい。
ストレージ170は、記憶部の一例である。ストレージ170は、各種データ、情報を蓄積し、保持する。ストレージ170は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、メモリカード、USBメモリ、等でよい。ストレージ170は、UAV本体102の内部に設けられてよい。ストレージ170は、UAV本体102から取り外し可能に設けられてよい。
バッテリ190は、無人飛行体100の各部の駆動源としての機能を有し、無人飛行体100の各部に必要な電源を供給する。
ジンバル200は、少なくとも1つの軸を中心に撮像装置220を回転可能に支持する。ジンバル200は、ヨー軸、ピッチ軸、及びロール軸を中心に撮像装置220を回転可能に支持してよい。ジンバル200は、ヨー軸、ピッチ軸、及びロール軸の少なくとも1つを中心に撮像装置220を回転させることで、撮像装置220の撮像方向を変更してよい。
回転翼機構210は、複数の回転翼と、複数の回転翼を回転させる複数の駆動モータとを有する。
撮像装置220は、所望の撮像範囲の被写体を撮像して撮像画像のデータを生成する。撮像装置220の撮像により得られた画像データは、撮像装置220が有するメモリ、又はメモリ160に格納される。
撮像装置230は、無人飛行体100の周囲を撮像して撮像画像のデータを生成する。撮像装置230の画像データは、メモリ160に格納される。
GPS受信機240は、複数の航法衛星(つまり、GPS衛星)から発信された時刻及び各GPS衛星の位置(座標)を示す複数の信号を受信する。GPS受信機240は、受信された複数の信号に基づいて、GPS受信機240の位置(つまり、無人飛行体100の位置)を算出する。GPS受信機240は、無人飛行体100の位置情報を処理部110に出力する。なお、GPS受信機240の位置情報の算出は、GPS受信機240の代わりに処理部110により行われてよい。この場合、処理部110には、GPS受信機240が受信した複数の信号に含まれる時刻及び各GPS衛星の位置を示す情報が入力される。
慣性計測装置250は、無人飛行体100の姿勢を検出し、検出結果を処理部110に出力する。慣性計測装置250は、無人飛行体100の姿勢として、無人飛行体100の前後、左右、及び上下の3軸方向の加速度と、ピッチ軸、ロール軸、及びヨー軸の3軸方向の角速度とを検出する。
磁気コンパス260は、無人飛行体100の機首の方位を検出し、検出結果を処理部110に出力する。
気圧高度計270は、無人飛行体100が飛行する高度を検出し、検出結果を処理部110に出力する。
超音波センサ280は、超音波を照射し、地面や物体により反射された超音波を検出し、検出結果を処理部110に出力する。検出結果は、例えば無人飛行体100から地面までの距離(つまり、高度)を示してよい。検出結果は、例えば無人飛行体100から物体までの距離を示してよい。
レーザ測定器290は、物体に向けてレーザ光を照射し、物体で反射された反射光を受光し、反射光により無人飛行体100と物体との間の距離を測距する。測距結果は、処理部110に入力される。レーザ光による距離の測定方式は、一例として、タイムオブフライト方式でよい。
次に、無人飛行体100の処理部110の機能の一例について説明する。
処理部110は、複数の撮像装置230により撮像された複数の画像を解析することで、無人飛行体100の周囲の環境を特定してよい。処理部110は、無人飛行体100の周囲の環境に基づいて、例えば障害物を回避して飛行を制御する。処理部110は、複数の撮像装置230により撮像された複数の画像に基づいて無人飛行体100の周囲の3次元空間データを生成し、3次元空間データに基づいて飛行を制御してよい。
処理部110は、現在の日時を示す日時情報を取得する。処理部110は、GPS受信機240から現在の日時を示す日時情報を取得してよい。処理部110は、無人飛行体100に搭載されたタイマ(不図示)から現在の日時を示す日時情報を取得してよい。
処理部110は、無人飛行体100の位置を示す位置情報を取得する。処理部110は、GPS受信機240から、無人飛行体100が存在する緯度、経度及び高度を示す位置情報を取得してよい。処理部110は、GPS受信機240から無人飛行体100が存在する緯度及び経度を示す緯度経度情報、並びに気圧高度計270又は超音波センサ280から無人飛行体100が存在する高度を示す高度情報をそれぞれ位置情報として取得してよい。
処理部110は、磁気コンパス260から無人飛行体100の向きを示す向き情報を取得してよい。向き情報は、例えば無人飛行体100の機首の向きに対応する方位を示してよい。
処理部110は、撮像装置220が撮像すべき撮像範囲を撮像する時に無人飛行体100が存在すべき位置を示す位置情報を取得してよい。処理部110は、無人飛行体100が存在すべき位置を示す位置情報をメモリ160から取得してよい。処理部110は、無人飛行体100が存在すべき位置を示す位置情報を、通信インタフェース150を介して送信機50等の他の装置から取得してよい。処理部110は、3次元地図データベースを参照して、撮像すべき撮像範囲を撮像するために、無人飛行体100が存在可能な位置を特定して、その位置を無人飛行体100が存在すべき位置を示す位置情報として取得してよい。
処理部110は、撮像装置220及び撮像装置230のそれぞれの撮像範囲を示す撮像情報を取得してよい。処理部110は、撮像範囲を特定するためのパラメータとして、撮像装置220及び撮像装置230の画角を示す画角情報を撮像装置220及び撮像装置230から取得してよい。処理部110は、撮像範囲を特定するためのパラメータとして、撮像装置220及び撮像装置230の撮像方向を示す情報を取得してよい。処理部110は、例えば撮像装置220の撮像方向を示す情報として、ジンバル200から撮像装置220の姿勢の状態を示す姿勢情報を取得してよい。撮像装置220の姿勢の状態を示す情報は、例えばジンバル200のピッチ軸及びヨー軸の基準回転角度からの回転角度により示してよい。処理部110は、例えば撮像装置220の撮像方向を示す情報として、無人飛行体100の向きを示す情報を取得してよい。処理部110は、撮像範囲を特定するためのパラメータとして、無人飛行体100が存在する位置を示す位置情報を取得してよい。処理部110は、撮像装置220及び撮像装置230の画角及び撮像方向、並びに無人飛行体100が存在する位置に基づいて、撮像装置220が撮像する地理的な範囲を示す撮像範囲を画定し、撮像範囲を示す撮像情報を生成することで、撮像情報を取得してよい。
処理部110は、撮像装置220が撮像すべき撮像範囲を示す撮像情報を取得してよい。処理部110は、メモリ160から撮像装置220が撮像すべき撮像情報を取得してよい。処理部110は、通信インタフェース150を介して送信機50等の他の装置から撮像装置220が撮像すべき撮像情報を取得してよい。
処理部110は、無人飛行体100の周囲に存在するオブジェクトの立体形状(3次元形状)を示す立体情報(3次元情報)を取得する。オブジェクトは、例えば、建物、道路、車、木等の風景の一部である。立体情報は、例えば、3次元空間データである。処理部110は、複数の撮像装置230から得られたそれぞれの画像から、無人飛行体100の周囲に存在するオブジェクトの立体形状を示す立体情報を生成することで、立体情報を取得してよい。処理部110は、メモリ160に格納された3次元地図データベースを参照することにより、無人飛行体100の周囲に存在するオブジェクトの立体形状を示す立体情報を取得してよい。処理部110は、ネットワーク上に存在するサーバが管理する3次元地図データベースを参照することで、無人飛行体100の周囲に存在するオブジェクトの立体形状に関する立体情報を取得してよい。
次に、送信機50及び携帯端末80の構成例について説明する。
図5は、携帯端末80が装着された送信機50の外観の一例を示す図である。図5では、携帯端末80の一例として、スマートフォンが示されている。携帯端末80は、例えばスマートフォン、タブレット端末等でよい。送信機50に対する上下前後左右の方向は、図5に示す矢印の方向にそれぞれ従うとする。送信機50は、例えば送信機50を使用するユーザの両手で把持された状態で使用される。
送信機50は、例えば略正方形状の底面を有し、かつ高さが底面の一辺より短い略直方体(言い換えると、略箱形)の形状をした樹脂製の筐体50Bを有する。送信機50の筐体表面の略中央には、左制御棒53Lと右制御棒53Rとが突設して配置される。
左制御棒53L、右制御棒53Rは、それぞれユーザによる無人飛行体100の移動を遠隔で制御(例えば、無人飛行体100の前後移動、左右移動、上下移動、向き変更)するための操作において使用される。図5では、左制御棒53L及び右制御棒53Rは、ユーザの両手からそれぞれ外力が印加されていない初期状態の位置が示されている。左制御棒53L及び右制御棒53Rは、ユーザにより印加された外力が解放された後、自動的に所定位置(例えば図5に示す初期位置)に復帰する。
左制御棒53Lの手前側(言い換えると、ユーザ側)には、送信機50の電源ボタンB1が配置される。電源ボタンB1がユーザにより一度押下されると、例えば送信機50に内蔵されるバッテリの容量の残量がバッテリ残量表示部L2において表示される。電源ボタンB1がユーザによりもう一度押下されると、例えば送信機50の電源がオンとなり、送信機50の各部(図6参照)に電源が供給されて使用可能となる。
右制御棒53Rの手前側(言い換えると、ユーザ側)には、RTH(Return To Home)ボタンB2が配置される。RTHボタンB2がユーザにより押下されると、送信機50は、無人飛行体100に所定の位置に自動復帰させるための信号を送信する。これにより、送信機50は、無人飛行体100を所定の位置(例えば無人飛行体100が記憶している離陸位置)に自動的に帰還させることができる。RTHボタンB2は、例えば屋外での無人飛行体100による空撮中にユーザが無人飛行体100の機体を見失った場合、又は電波干渉や予期せぬトラブルに遭遇して操作不能になった場合等に利用可能である。
電源ボタンB1及びRTHボタンB2の手前側(言い換えると、ユーザ側)には、リモートステータス表示部L1及びバッテリ残量表示部L2が配置される。リモートステータス表示部L1は、例えばLED(Light Emission Diode)を用いて構成され、送信機50と無人飛行体100との無線の接続状態を表示する。バッテリ残量表示部L2は、例えばLEDを用いて構成され、送信機50に内蔵されたバッテリの容量の残量を表示する。
左制御棒53L及び右制御棒53Rより後側であって、かつ送信機50の筐体50Bの後方側面から、2つのアンテナAN1,AN2が突設して配置される。アンテナAN1,AN2は、ユーザの左制御棒53L及び右制御棒53Rの操作に基づき、無人飛行体100の移動を制御するための信号を無人飛行体100に送信する。アンテナAN1,AN2は、例えば2kmの送受信範囲をカバーできる。また、アンテナAN1,AN2は、送信機50と無線接続中の無人飛行体100が有する撮像装置220,230により撮像された撮像画像、又は無人飛行体100が取得した各種データが無人飛行体100から送信された場合に、これらの画像又は各種データを受信できる。
図5では、送信機50が表示部を備えていないが、表示部を備えてもよい。
携帯端末80は、ホルダHLDに載置されて取り付けられてよい。ホルダHLDは、送信機50に接合されて取り付けられてよい。これにより、携帯端末80がホルダHLDを介して送信機50に装着される。携帯端末80と送信機50とは、有線ケーブル(例えばUSBケーブル)を介して接続されてよい。携帯端末80と送信機50とは、無線通信(例えばBluetooth(登録商標))によって接続されてよい。携帯端末80が送信機50に装着されず、携帯端末80と送信機50がそれぞれ独立して設けられてもよい。
[送信機の構成例]
図6は、図1の飛行経路生成システム10を構成する送信機50のハードウェア構成の一例を示すブロック図である。送信機50は、左制御棒53Lと、右制御棒53Rと、処理部61と、無線通信部63と、インタフェース部65と、メモリ67と、バッテリ69と、電源ボタンB1と、RTHボタンB2と、操作部セットOPSと、リモートステータス表示部L1と、バッテリ残量表示部L2とを含む構成である。送信機50は、無人飛行体100を遠隔制御するための操作端末の一例である。
処理部61は、プロセッサ(例えばCPU、MPU又はDSP)を用いて構成される。処理部61は、送信機50の各部の動作を統括して制御するための信号処理、他の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。
処理部61は、無人飛行体100の撮像装置220が撮像した撮像画像のデータを、無線通信部63を介して取得してメモリ67に保存し、インタフェース部65を介して携帯端末80に出力してよい。言い換えると、処理部61は、無人飛行体100の撮像装置220により撮像された撮像画像を携帯端末80に表示させてよい。これにより、無人飛行体100の撮像装置220により撮像された撮像画像は、携帯端末80において表示可能となる。
処理部61は、ユーザの左制御棒53L及び右制御棒53Rの操作により、その操作により指定された無人飛行体100の移動を制御するための信号を生成してよい。処理部61は、この生成した信号を、無線通信部63及びアンテナAN1,AN2を介して、無人飛行体100に送信して無人飛行体100を遠隔制御してよい。これにより、送信機50は、無人飛行体100の移動を遠隔で制御できる。処理部61は、無線通信部63を介して外部サーバ等が蓄積する地図データベースの地図情報を取得してよい。
左制御棒53Lは、例えばユーザの左手により、無人飛行体100の移動を遠隔で制御するための操作に使用される。右制御棒53Rは、例えばユーザの右手により、無人飛行体100の移動を遠隔で制御するための操作に使用される。無人飛行体100の移動は、例えば前進する方向の移動、後進する方向の移動、左方向の移動、右方向の移動、上昇する方向の移動、下降する方向の移動、左方向に無人飛行体100を回転する移動、右方向に無人飛行体100を回転する移動のうちいずれか又はこれらの組み合わせであり、以下同様である。
バッテリ69は、送信機50の各部の駆動源としての機能を有し、送信機50の各部に必要な電源を供給する。
電源ボタンB1が一度押下されると、処理部61は、送信機50に内蔵されるバッテリ69の容量の残量をバッテリ残量表示部L2に表示する。これにより、ユーザは、送信機50に内蔵されるバッテリの容量の残量を簡単に確認できる。処理部61は、バッテリ残量表示部L2に、無人飛行体100に内蔵されたバッテリの容量の残量を表示してよい。また、電源ボタンB1が二度押下されると、処理部61は、送信機50に内蔵されるバッテリ69に対し、送信機50内の各部への電源供給を指示する。これにより、ユーザは、送信機50の電源がオンとなり、送信機50の使用を簡単に開始できる。
RTHボタンB2が押下されると、処理部61は、無人飛行体100に所定の位置(例えば無人飛行体100の離陸位置)に自動復帰させるための信号を生成し、無線通信部63及びアンテナAN1,AN2を介して無人飛行体100に送信する。これにより、ユーザは、送信機50に対する簡単な操作により、無人飛行体100を所定の位置に自動で復帰(帰還)させることができる。
操作部セットOPSは、複数の操作部(例えば操作部OP1,…,操作部OPn)(n:2以上の整数)を用いて構成される。操作部セットOPSは、図5に示す左制御棒53L、右制御棒53R、電源ボタンB1及びRTHボタンB2を除く他の操作部(例えば、送信機50による無人飛行体100の遠隔制御を支援するための各種の操作部)により構成される。ここでいう各種の操作部とは、例えば、無人飛行体100の撮像装置220を用いた静止画の撮像を指示するボタン、無人飛行体100の撮像装置220を用いた動画の録画の開始及び終了を指示するボタン、無人飛行体100のジンバル200(図4参照)のチルト方向の傾きを調整するダイヤル、無人飛行体100のフライトモードを切り替えるボタン、無人飛行体100の撮像装置220の設定を行うダイヤルが該当する。
リモートステータス表示部L1及びバッテリ残量表示部L2は、図5を参照して説明したので、ここでは説明を省略する。
無線通信部63は、2つのアンテナAN1,AN2と接続される。無線通信部63は、2つのアンテナAN1,AN2を介して、無人飛行体100との間で所定の無線通信方式(例えばWifi(登録商標))を用いた情報やデータの送受信を行う。
インタフェース部65は、送信機50と携帯端末80との間の情報やデータの入出力を行う。インタフェース部65は、例えば送信機50に設けられたUSBポート(不図示)でよい。インタフェース部65は、USBポート以外のインタフェースでもよい。
メモリ67は、記憶部の一例である。メモリ67は、例えば処理部61の動作を規定するプログラムや設定値のデータが格納されたROM(Read Only Memory)と、処理部61の処理時に使用される各種の情報やデータを一時的に保存するRAM(Random Access Memory)とを有する。メモリ64のROMに格納されたプログラムや設定値のデータは、所定の記録媒体(例えばCD−ROM、DVD−ROM)にコピーされてよい。メモリ64のRAMには、例えば無人飛行体100の撮像装置220,230により撮像された撮像画像のデータを保存してよい。
[携帯端末の構成例]
図7は、図1の飛行経路生成システム10を構成する携帯端末80のハードウェア構成の一例を示すブロック図である。携帯端末80は、処理部81、インタフェース部82、操作部83、無線通信部85、メモリ87、表示部88、ストレージ89、及びバッテリ99を備えてよい。携帯端末80は、情報処理装置の一例としての機能を有し、携帯端末80の処理部81は、情報処理装置の処理部の一例である。
処理部81は、プロセッサ(例えばCPU、MPU又はDSP)を用いて構成される。処理部81は、携帯端末80の各部の動作を統括して制御するための信号処理、他の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。
処理部81は、無線通信部85を介して、無人飛行体100からのデータや情報を取得してよい。処理部81は、インタフェース部82を介して、送信機50又は他の装置からのデータや情報を取得してよい。処理部81は、操作部83を介して入力されたデータや情報を取得してよい。処理部81は、メモリ87に保持されたデータや情報を取得してよい。処理部81は、データや情報を表示部88に送り、このデータや情報に基づく表示情報を表示部88に表示させてよい。処理部81は、データや情報をストレージ89に送り、このデータや情報を格納してよい。処理部81は、ストレージ89に格納されたデータや情報を取得してよい。
処理部81は、無人飛行体100の制御を指示するためのアプリケーションを実行してよい。処理部81は、アプリケーションで用いられる各種のデータを生成してよい。
インタフェース部82は、送信機50又は他の装置と携帯端末80との間の情報やデータの入出力を行う。インタフェース部82は、例えば携帯端末80に設けられたUSBコネクタ(不図示)でよい。インタフェース部65は、USBコネクタ以外のインタフェースでもよい。
操作部83は、携帯端末80の操作者により入力されるデータや情報を受け付ける。操作部83は、ボタン、キー、タッチパネル、マイクロホン、等を含んでよい。ここでは、主に、操作部83と表示部88とがタッチパネルにより構成されることを例示する。この場合、操作部83は、タッチ操作、タップ操作、ドラック操作等を受付可能である。
無線通信部85は、各種の無線通信方式により、無人飛行体100との間で通信する。無線通信方式は、例えば、無線LAN、Bluetooth(登録商標)、近距離無線通信、又は公衆無線回線を介した通信を含んでよい。無線通信部85は、他の装置との間で通信を行ってデータや情報を送受信してよい。
メモリ87は、記憶部の一例である。メモリ87は、例えば携帯端末80の動作を規定するプログラムや設定値のデータが格納されたROMと、処理部81の処理時に使用される各種の情報やデータを一時的に保存するRAMを有してよい。メモリ87は、ROM及びRAM以外のメモリが含まれてよい。メモリ87は、携帯端末80の内部に設けられてよい。メモリ87は、携帯端末80から取り外し可能に設けられてよい。プログラムは、アプリケーションプログラムを含んでよい。
表示部88は、例えばLCD(Liquid Crystal Display)又は有機EL(ElectroLuminescence)ディスプレイを用いて構成され、処理部81から出力された各種の情報やデータを表示する。表示部88は、無人飛行体100の撮像装置220,230により撮像された撮像画像のデータを表示してよい。
ストレージ89は、記憶部の一例である。ストレージ89は、各種データ、情報を蓄積し、保持する。ストレージ89は、フラッシュメモリ、SSD(Solid State Drive)、メモリカード、USBメモリ、等でよい。ストレージ89は、携帯端末80の本体から取り外し可能に設けられてよい。
バッテリ99は、携帯端末80の各部の駆動源としての機能を有し、携帯端末80の各部に必要な電源を供給する。
次に、携帯端末80の処理部81の機能の一例について説明する。
情報処理装置の処理部の一例としての処理部81は、無人飛行体100の飛行経路の生成に関する処理を行う飛行経路処理部811を含む。処理部81は、被写体の3次元形状データの推定及び生成に関する処理を行う形状データ処理部812を含む。
飛行経路処理部811は、被写体を撮像する無人飛行体100の飛行経路を生成する。飛行経路処理部811は、入力パラメータを取得してよい。飛行経路処理部811は、送信機50が入力した入力パラメータを、インタフェース部82又は無線通信部85を介して受信することで取得してよい。また、飛行経路処理部811は、入力パラメータに含まれる少なくとも一部の情報を、送信機50から取得するのではなく、他の装置から取得してよい。飛行経路処理部811は、入力パラメータに含まれる少なくとも一部の情報を、ネットワーク上に存在するサーバ等から取得してよい。取得された入力パラメータは、メモリ87に保持されてよい。携帯端末80の処理部81は、適宜(例えば飛行経路の生成時、3次元形状データの生成時)メモリ87を参照してよい。
入力パラメータは、オブジェクトの概略形状の情報、飛行範囲の情報、飛行高度の情報、撮像距離の情報、撮像位置間隔の情報、を含んでよい。入力パラメータは、設定解像度の情報を含んでよい。なお、設定解像度は、無人飛行体100の撮像装置220,230により撮像される撮像画像の解像度(つまり、被写体の3次元形状を高精度に推定可能とするために適正な撮像画像を得るための解像度)を示し、無人飛行体100のメモリ160又は送信機50のメモリ67に保持されてよい。
なお、入力パラメータは、上述したパラメータの他に、無人飛行体100の飛行経路における撮像位置(つまり、ウェイポイント)の情報や、撮像位置を通る飛行経路を生成するための各種のパラメータを含んでよい。撮像位置は3次元空間における位置である。
また、入力パラメータは、例えば撮像位置において無人飛行体100が被写体を撮像する時の撮像範囲の重複率の情報を含んでよい。また、入力パラメータは、飛行経路における撮像位置の間隔の情報を含んでよい。撮像位置間隔は、飛行経路に配置される複数の撮像位置(ウェイポイント)のうち2つの隣り合う撮像位置の間隔(距離)である。また、入力パラメータは、無人飛行体100の撮像装置220又は230の画角の情報を含んでよい。
また、飛行経路処理部811は、被写体の識別情報を受信して取得してよい。飛行経路処理部811は、特定された被写体の識別情報を基に、インタフェース部82又は無線通信部85を介して外部サーバと通信し、被写体の識別情報に対応する被写体の形状の情報や被写体の大きさの情報を受信して取得してよい。
撮像範囲の重複率は、水平方向又は上下方向で隣り合う撮像位置で無人飛行体100の撮像装置220又は撮像装置230により撮像される場合の2つの撮像範囲が重複する割合を示す。撮像範囲の重複率は、水平方向での撮像範囲の重複率(水平重複率ともいう)の情報、上下方向での撮像範囲の重複率(上下重複率ともいう)の情報、の少なくとも1つを含んでよい。水平重複率及び上下重複率は、同じでも異なってもよい。水平重複率及び上下重複率が異なる値である場合、水平重複率の情報及び上下重複率の情報のいずれも入力パラメータに含まれてよい。水平重複率及び上下重複率が同値である場合、同値である1つの重複率の情報が入力パラメータに含まれてよい。
撮像位置間隔は、空間的な撮像間隔であり、飛行経路において無人飛行体100が画像を撮像すべき複数の撮像位置のうち、隣り合う撮像位置の間の距離である。撮像位置間隔は、水平方向での撮像位置の間隔(水平撮像間隔ともいう)及び鉛直方向の撮像位置の間隔(上下撮像間隔ともいう)の少なくとも1つを含んでよい。飛行経路処理部811は、水平撮像間隔及び上下撮像間隔を含む撮像位置間隔を、算出して取得してもよいし、入力パラメータから取得してもよい。
つまり、飛行経路処理部811は、飛行経路上に、撮像装置220又は230により撮像する撮像位置(ウェイポイント)を配置してよい。撮像位置の間隔(撮像位置間隔)は、例えば等間隔で配置されてよい。撮像位置は、隣り合う撮像位置での撮像画像に係る撮像範囲が一部重複するよう配置される。複数の撮像画像を用いた3次元形状の推定を可能とするためである。撮像装置220又は230は所定の画角を有するので、撮像位置間隔を短くすることで、双方の撮像範囲の一部が重複する。
飛行経路処理部811は、例えば撮像位置が配置される高度(撮像高度)、撮像装置220又は230の解像度に基づき、撮像位置間隔を算出してよい。撮像高度が高い程又は撮像距離が長い程、撮像範囲の重複率が大きくなるので、撮像位置間隔を長く(疎に)できる。撮像高度が低い程又は撮像距離が短い程、撮像範囲の重複率が小さくなるので、撮像位置間隔を短く(密に)する。飛行経路処理部811は、更に撮像装置220又は230の画角を基に、撮像位置間隔を算出してよい。飛行経路処理部811は、その他公知の方法により撮像位置間隔を算出してよい。
飛行経路処理部811は、撮像装置220の画角又は撮像装置230の画角の情報を、撮像装置220又は撮像装置230から取得してよい。撮像装置220の画角又は撮像装置230の画角は、水平方向と上下方向とで同じでも異なってもよい。水平方向での撮像装置220の画角又は撮像装置230の画角を水平画角とも称する。上下方向での撮像装置220の画角又は撮像装置230の画角を上下画角とも称する。飛行経路処理部811は、水平画角及び上下画角が同値である場合、同値である1つの画角の情報を取得してよい。
飛行経路処理部811は、飛行範囲及び撮像位置間隔に基づいて、無人飛行体100による被写体の撮像位置(ウェイポイント)を決定する。無人飛行体100による撮像位置は、水平方向において等間隔に配置されてよく、最後の撮像位置と最初の撮像位置との距離は撮像位置間隔より短くてよい。この間隔は、水平撮像間隔となる。無人飛行体100による撮像位置は、上下方向において等間隔に配置されてよく、最後の撮像位置と最初の撮像位置との距離は撮像位置間隔より短くてよい。この間隔は、上下撮像間隔となる。
飛行経路処理部811は、オブジェクトの側面に対応する1つの撮像平面毎に、決定された撮像位置を通る飛行経路を生成する。飛行経路処理部811は、1つの撮像平面の飛行コースにおいて隣り合う各撮像位置を順に通り、この飛行コースにおける各撮像位置を全て通過した後、次の撮像平面の飛行コースへ進入する飛行経路を生成してよい。飛行経路処理部811は、次の撮像平面の飛行コースにおいても同様に、隣り合う各撮像位置を順に通り、この飛行コースにおける各撮像位置を全て通過した後、その次の撮像平面の飛行コースへ進入する飛行経路を生成してよい。飛行経路は、上空側を始点として飛行経路を進むにつれて高度が下降するように形成されてよい。一方、飛行経路は、地面側を始点として飛行経路を進むにつれて高度が上昇するように形成されてよい。
無人飛行体100の処理部110は、生成された飛行経路に従って、無人飛行体100の飛行を制御してよい。処理部110は、飛行経路の途中に存在する撮像位置において、撮像装置220又は撮像装置230により被写体を撮像させてよい。従って、撮像装置220又は撮像装置230は、飛行経路における撮像位置において、被写体の側面を撮像してよい。撮像装置220又は撮像装置230により撮像された撮像画像は、無人飛行体100のメモリ160又はストレージ170、或いは携帯端末80のメモリ87又はストレージ89に保持されてよい。処理部110は、適宜(例えば飛行経路の設定時)メモリ160を参照してよい。
形状データ処理部812は、撮像装置220,230のいずれかにより異なる撮像位置において撮像された複数の撮像画像に基づいて、オブジェクト(被写体)の立体形状(3次元形状)を示す立体情報(3次元情報、3次元形状データ)を生成してよい。よって、撮像画像は、3次元形状データを復元するための1つの画像として用いられてよい。3次元形状データを復元するための撮像画像は、静止画像でよい。複数の撮像画像に基づく3次元形状データの生成手法としては、公知の方法を用いてよい。公知の方法として、例えば、MVS(Multi View Stereo)、PMVS(Patch-based MVS)、SfM(Structure from Motion)が挙げられる。
3次元形状データの生成に用いられる撮像画像は、静止画でよい。3次元形状データの生成に用いられる複数の撮像画像には、互いに撮像範囲が一部重複する2つの撮像画像が含まれる。この重複の割合(つまり撮像範囲の重複率)が高い程、同一範囲において3次元形状データを生成する場合には、3次元形状データの生成に用いられる撮像画像の数が多くなる。従って、形状データ処理部812は、3次元形状の復元精度を向上できる。一方、撮像範囲の重複率が低い程、同一範囲において3次元形状データを生成する場合には、3次元形状データの生成に用いられる撮像画像の数が少なくなる。従って、形状データ処理部812は、3次元形状データの生成時間を短縮できる。なお、複数の撮像画像において、互いに撮像範囲が一部重複する2つの撮像画像が含まれなくてもよい。
形状データ処理部812は、複数の撮像画像として、被写体の側面が撮像された撮像画像を含んで取得してよい。これにより、形状データ処理部812は、一律に上空から鉛直方向を撮像した撮像画像を取得する場合と比較すると、被写体の側面における画像特徴を多数収集でき、被写体周辺の3次元形状の復元精度を向上できる。
次に、飛行経路生成システム10の動作例について説明する。
[飛行経路生成]
図8は、実施形態における飛行経路生成方法の処理手順の一例を示すフローチャートである。図示例は、対象領域の空撮を行ってオブジェクトの概略形状を取得し、取得した概略形状に基づいて3次元形状推定のための飛行経路を生成する処理を例示する。本例では、携帯端末80の処理部81が主体的に処理を実行するものとする。
処理部81の飛行経路処理部811は、オブジェクトの3次元形状推定のための撮影を実行する際に、オブジェクト撮影用の無人飛行体100の飛行経路を生成する。飛行経路処理部811は、無人飛行体100の飛行範囲を入力し、撮影対象領域の範囲を指定する(S11)。
無人飛行体100の処理部110は、指定された飛行範囲の情報を入力し、対応する飛行範囲を飛行し、所定の撮像位置において鉛直方向下向きに撮影対象領域のオブジェクトを俯瞰した状態で空撮する(S12)。この場合、処理部110は、少ない撮像位置において大まかにオブジェクトを撮像(以下、「概略撮像」と称する場合がある)する。無人飛行体100の処理部110は、各撮像位置における俯瞰の撮像画像を取得し、メモリ160に撮像画像を記録する。
処理部81の飛行経路処理部811は、撮影対象領域の鉛直方向下方の概略撮像(下向き空撮)により得られた撮像画像を取得してメモリ87又はストレージ89に格納する。飛行経路処理部811は、取得した撮像画像群を用いて公知の3次元形状復元技術によってオブジェクト(建物、地面など)の概略形状を推定することで、概略形状を取得する(S13)。概略形状の3次元形状データは、例えばポリゴンデータを含んでよい。
なお、オブジェクトの概略形状は、対象領域の空撮によって取得するのに代えて、携帯端末80又はサーバ等の他の装置が保持している3次元地図データベースを利用し、3次元地図データベースの地図情報に含まれる建物、道路などの3次元情報(例えばポリゴンデータ)によって概略形状の3次元形状データを取得してよい。
飛行経路処理部811は、取得したオブジェクトの概略形状を用いて、オブジェクトの3次元形状推定のための詳細な撮像用の飛行経路を生成する(S14)。オブジェクトの概略形状を用いた飛行経路の生成手順については、いくつかの例を後述する。
上記の動作例により、オブジェクトの3次元形状推定を行うための飛行経路を生成し、オブジェクトの詳細な撮像を自動化できる。また、オブジェクトに対する適切な飛行経路の設定を自動化できる。
[概略形状取得]
次に、飛行経路生成処理におけるオブジェクトの概略形状の取得方法の一例について説明する。
図9は、飛行範囲A1の入力例を説明するための図である。
例えば、携帯端末80の処理部81は、操作部83によって、飛行範囲A1の情報を入力する。操作部83は、飛行範囲A1として、地図情報M1に示された3次元形状データの生成を望む所望の範囲のユーザ入力を受け付けてよい。飛行範囲A1の情報は、所望の範囲に限らず、所定の飛行範囲でもよい。所定の飛行範囲は、例えば定期的に3次元形状データを生成して3次元形状を計測するための範囲の1つでもよい。
図10は、飛行経路FPAでの概略撮像を説明するための図である。
処理部81において、飛行経路処理部811は、飛行経路FPAでは、各撮像位置CPの間隔(撮像位置間隔)を、間隔d11に設定してよい。間隔d11は、オブジェクト(例えば建物)のサイズが推定可能となる程度の疎な間隔(例えば数10m間隔)である。間隔d11は、少なくとも、隣り合う撮像位置CPでの撮像範囲が一部重複する間隔に設定される。飛行経路FPAの間隔d11での各撮像位置CPでの撮像を、概略撮像と称してよい。無人飛行体100は、疎な間隔で撮像することで、密な間隔で撮像するよりも撮像時間を短縮できる。無人飛行体100が飛行する飛行経路の鉛直方向(地面に向かう方向、重力方向)には、建物BLや山MTを含む景色が広がっていてよい。従って、建物BLや山MTは、撮像範囲に存在し、撮像対象となる。この概略撮像による撮像画像によって、オブジェクトの概略形状が取得可能である。
図11は、飛行経路FPAにより得られた概略撮像に基づく概略形状の3次元形状データの生成を説明するための図である。
処理部81において、形状データ処理部812は、飛行経路FPAの概略撮像により各撮像位置CPで得られた複数の撮像画像CI1を基に、オブジェクトの概略形状の3次元形状データSD1を生成する。ユーザは、3次元形状データSD1を表示等により確認することで、飛行経路FPAの鉛直方向に存在した地面の概略形状を把握できる。ユーザは、概略撮像に基づく3次元形状データSD1により得られる形状(概略形状)の確認により、山MTが存在することは確認可能であるが、建物BLの存在は確認できない。これは、山MTはその輪郭がなだらかであり、飛行経路FPAに従う上空から撮像しても、撮像画像CI1内に3次元形状データSD1の生成に必要な画像が足りるためである。また、これは、建物BLはその輪郭が鉛直方向に略平行となり、建物BLの上空で水平方向に無人飛行体100が進行する飛行経路FPAの撮像位置CPにおいて、建物BLの側面を十分に撮像することが困難であるためである。つまり、建物BLの周辺は、下向きに撮像した撮像画像からは3次元形状推定に必要な情報が取得できない。
そこで、飛行経路処理部811は、オブジェクトの概略形状のデータを用いて、オブジェクトの鉛直方向に平行な側面に向かう方向、すなわち水平方向(鉛直方向の法線方向)に向けてオブジェクトの側面を側方から撮像するように、飛行経路及び撮像位置を生成して設定する。形状データ処理部812は、生成した飛行経路に従って撮像したオブジェクトの側方の撮像画像を含む撮像画像を用いて、オブジェクトの3次元形状データを生成する。これにより、オブジェクトの3次元形状の推定精度を向上できる。
[3次元形状推定]
図12は、実施形態における3次元形状推定方法の処理手順の一例を示すフローチャートである。本例では、情報処理装置の処理部の一例としての携帯端末80の処理部81が主体的に処理を実行するものとする。
処理部81の飛行経路処理部811は、生成した飛行経路を用いて、無人飛行体100に対して飛行経路の設定を行う(S21)。無人飛行体100の処理部110は、設定された飛行経路に従って、撮影対象領域の飛行範囲を飛行し、所定の撮像位置において側方に向かってオブジェクトを空撮する(S22)。この場合、処理部110は、所定の撮像位置間隔毎に撮像範囲を一部重複させて詳細にオブジェクトを撮像(以下、「詳細撮像」と称する場合がある)する。無人飛行体100の処理部110は、各撮像位置における撮像画像を取得し、メモリ160に撮像画像を記録する。
処理部81の形状データ処理部812は、撮影対象領域の詳細撮像(側方空撮)により得られた撮像画像を取得してメモリ87又はストレージ89に格納する。形状データ処理部812は、取得した撮像画像群から公知の3次元形状復元技術によってオブジェクト(建物、地面など)の立体形状を推定することで、3次元形状データを生成する(S23)。
これにより、オブジェクトを側方から撮像した詳細な撮像画像を用いて、オブジェクトの側面の形状を含む3次元形状データを生成できる。したがって、オブジェクトを下向きに撮像した撮像画像では復元が困難であった側面の詳細形状を推定でき、オブジェクトの3次元形状データの精度を向上できる。
[飛行経路生成の第1動作例]
図13は、実施形態におけるオブジェクトの概略形状を用いた飛行経路生成の第1動作例を説明するための図である。第1動作例は、オブジェクトを囲む立方体等の多面体を算出してオブジェクトの側方に向かう撮影平面を生成する例である。
処理部81の飛行経路処理部811は、取得した概略形状を用いて、オブジェクトの外形を囲むような多面体を算出する。この多面体は、オブジェクトの概略形状に対して、外側に接するか又は少し大きい立体である。図示例では、多面体の一例として立方体301を算出した例を示す。飛行経路処理部811は、立方体301の多面体において、少なくとも一つの側面303を抽出する。側面303は、多面体における鉛直方向に沿う面、又は鉛直方向の所定角度範囲内に立った面であってよい。飛行経路処理部811は、抽出した側面303に対して、多面体の外向きに法線304を算出する。法線304は、側面303の面上に沿う2つのベクトル(例えば、各頂点のいずれかを結ぶベクトル)の外積によって算出できる。飛行経路処理部811は、取得した法線304を用いて、所定の撮影距離を有して側面303と平行する撮影平面305を算出する。この撮影平面305は、側面303から所定の撮影距離に位置し、法線304に対して垂直な平面となる。飛行経路処理部811は、生成した撮影平面305において、この平面内で所定の撮像位置間隔を持つ複数の撮像位置(ウェイポイント)306を設定し、各撮像位置306を通る撮影経路307を決定することにより、この撮影経路307を含む飛行経路を生成する。各撮像位置306における撮影方向は、法線304の方向と逆方向でオブジェクトの側面に対向する方向となる。オブジェクトを囲む多面体が立方体、直方体、或いは柱状体の場合、撮影平面は鉛直方向の平面となり、撮影方向は撮影平面と垂直な水平方向となる。
図14は、撮影平面305における複数の撮像位置306の設定を説明するための図である。飛行経路処理部811は、多面体の側面303に対して、法線方向に所定の撮影距離Lを設定し、側面303から撮影距離L離れた位置に側面303と平行な撮影平面305を算出する。飛行経路処理部811は、撮影平面305において、所定の撮像位置間隔dを設定し、撮像位置間隔d毎に撮像位置306を決定する。撮影距離Lと撮像位置間隔dの設定は、例えば以下に示す方法を用いてよい。
[1]ユーザが撮影距離L[m]と撮像位置間隔d[m]を指定する。携帯端末80の処理部81は、ユーザによる操作入力に従い、操作部83によって、撮影距離Lと撮像位置間隔dの情報を入力し、メモリ87に格納する。これにより、ユーザの指定による撮影距離と撮像位置間隔に基づいて詳細撮像用の撮像位置を設定できる。
[2]ユーザが撮影距離L[m]と撮像範囲の重複率rside[%]を指定し、撮影距離L及び重複率rsideから撮像位置間隔d[m]を算出する。撮像位置間隔dは、撮影距離L、重複率rside、及び撮像装置の画角FOV(Field of View)を用いて、次の数式(1)により算出できる。
携帯端末80の処理部81は、ユーザによる操作入力に従い、操作部83によって、撮影距離Lと重複率rsideの情報を入力し、メモリ87に格納する。処理部81は、インタフェース部82又は無線通信部85によって、無人飛行体100より撮像装置220の画角FOVの情報を取得し、メモリ87に格納する。処理部81は、上記数式(1)によって撮像位置間隔dを算出する。これにより、ユーザの指定による撮影距離と撮像範囲の重複率に基づいて撮像位置間隔を算出し、詳細撮像用の撮像位置を設定できる。
[3]ユーザが撮像画像の解像度r[m/pixel]と撮像範囲の重複率rside[%]を指定し、解像度r及び重複率rsideから撮像位置間隔d[m]を算出する。また、撮像位置間隔dから撮影距離L[m]を算出する。撮像位置間隔dは、解像度r、撮像画像の幅w、及び重複率rsideを用いて、次の数式(2)により算出できる。
撮影距離Lは、撮像位置間隔d、重複率rside、及び撮像装置の画角FOVを用いて次の数式(3)により算出できる。
携帯端末80の処理部81は、ユーザによる操作入力に従い、操作部83によって、解像度rと重複率rsideの情報を入力し、メモリ87に格納する。処理部81は、上記数式(2)によって撮像位置間隔dを算出する。処理部81は、インタフェース部82又は無線通信部85によって、無人飛行体100より撮像装置220の画角FOVの情報を取得し、メモリ87に格納する。処理部81は、上記数式(3)によって撮影距離Lを算出する。これにより、ユーザの指定による撮像画像の解像度と撮像範囲の重複率に基づいて撮像位置間隔を算出し、詳細撮像用の撮像位置を設定できる。
飛行経路処理部811は、撮影平面305において、設定した撮像位置間隔dに基づき、複数の撮像位置306を撮像位置間隔d毎に等間隔に配置し、これらの撮像位置306を通る撮影経路307を決定する。撮影平面305における始点や終点の撮像位置など、撮影平面305の端部の撮像位置は、撮影平面305の側端から1/2d以下の範囲に設定してよい。
図15は、実施形態におけるオブジェクトの概略形状を用いた飛行経路生成の第1動作例の処理手順を示すフローチャートである。処理部81の飛行経路処理部811は、取得した概略形状を用いて、オブジェクトの外形を囲む多面体(立方体301)を算出する(S31)。飛行経路処理部811は、立方体301の多面体において、少なくとも一つ(立方体では4つ)の側面303を順番に抽出する(S32)。飛行経路処理部811は、抽出した1つの側面303に対して、多面体の外向きに法線304を算出する(S33)。飛行経路処理部811は、取得した法線304を用いて、所定の撮影距離L離れた位置にその側面303と平行する撮影平面305を算出する(S34)。
飛行経路処理部811は、算出した1つの撮影平面305において、所定の撮像位置間隔dを持つ複数の撮像位置(ウェイポイント)306を設定し、これらの各撮像位置からオブジェクトを向く方向に撮影する撮影経路307を生成する(S35)。飛行経路処理部811は、オブジェクトに関して、抽出した全ての側面303の撮影経路307の生成が完了したかを判定する(S36)。全ての側面303の撮影経路生成が完了していない場合、飛行経路処理部811は、ステップS32の処理に戻り、次の側面303を抽出し、撮影経路307の生成まで同様の処理を繰り返す(S32〜S35)。ステップS36において、全ての側面303の撮影経路生成が完了した場合、飛行経路処理部811は、それぞれの撮影平面305の撮影経路307を結合し、飛行経路を生成する(S37)。
無人飛行体100の処理部110は、通信インタフェース150によって携帯端末80と通信を行い、飛行経路処理部811により生成された飛行経路の情報を取得し、無人飛行体100の飛行経路を設定する。処理部110は、設定した飛行経路に従ってオブジェクトの周囲を飛行し、複数の撮像位置(ウェイポイント)のそれぞれにおいて撮像装置220、230によってオブジェクトを撮像する。処理部110は、各撮影平面305の撮影経路307を結合した飛行経路によって、撮影平面305毎に順番にそれぞれの撮像位置306にて撮像する。すなわち、処理部110は、被写体に含まれるオブジェクトに対して、概略形状の多面体(立方体301)の1つの側面303に対応する撮影平面305において各撮像位置306にて撮像が完了すると、次の側面に対応する撮影平面、例えば現在の側面に隣接する側面の撮影平面に移動し、この撮影平面の各撮像位置にて撮像を行う。このように、無人飛行体100は、飛行経路に設定された全ての撮影平面の撮像位置において、オブジェクトの側面に向かって撮像した側方の撮像画像を取得する。
携帯端末80の処理部81は、インタフェース部82又は無線通信部85によって無人飛行体100と通信を行い、無人飛行体100によって撮像された撮像画像を取得する。処理部81の形状データ処理部812は、取得したオブジェクトの側方の撮像画像を用いて、オブジェクト(建物、地面など)の3次元形状データを生成することにより、オブジェクトの側面の形状を含む詳細な3次元形状を推定可能となる。
なお、撮像画像は、側方の撮像画像とともに、オブジェクトを詳細撮像用の撮像位置間隔で鉛直方向下向きに詳細撮像を行った下方の撮像画像を含んでよい。この場合、飛行経路処理部811は、オブジェクトの上面についても側面と同様に複数の撮像位置を含む撮影経路を設定し、飛行経路を生成する。
上記動作例により、オブジェクトの概略形状を囲む多面体を算出し、多面体における鉛直方向に沿う面、又は鉛直方向の所定角度範囲内に立った面を側面として抽出することで、オブジェクトの側方に向かって撮像可能な概略形状の側面を抽出できる。このため、オブジェクトの概略形状を用いて、オブジェクトを側方から見た詳細撮像が可能な撮像位置を設定できる。
[飛行経路生成の第2動作例]
図16は、実施形態におけるオブジェクトの概略形状を用いた飛行経路生成の第2動作例を説明するための図である。第2動作例は、オブジェクトの概略形状を示すメッシュを簡略化してオブジェクトの側方に向かう撮影平面を生成する例である。
処理部81の飛行経路処理部811は、取得した概略形状を用いて、オブジェクトの概略形状を示すメッシュを簡略化する。メッシュの簡略化手法としては、公知の方法を用いてよい。公知の方法として、例えば、Vertex clustering法、Incremental decimation法などが挙げられる。メッシュ簡略化処理において、ポリゴンデータを簡略化して複雑な形状を単純化し、1つの面を表すポリゴンの数を削減するスムージングを行う。図示例では、飛行経路処理部811は、概略形状311に対して簡略化処理を施し、簡略化した多面体312を算出する。飛行経路処理部811は、簡略化した多面体312において、少なくとも一つの側面313を抽出し、抽出した側面313に対して、多面体の外向きに法線314を算出する。この場合、多面体312の各平面について法線の向きを判定し、正規化した法線の垂直成分Nzの絶対値が0.1より小さい(|Nz|<0.1)場合、その平面を側面313として抽出する。側面313は、多面体における鉛直方向に沿う面、又は鉛直方向の所定角度範囲内に立った面であってよい。飛行経路処理部811は、取得した法線314を用いて、所定の撮影距離Lを有して側面313と平行する撮影平面315を算出する。飛行経路処理部811は、算出した撮影平面315において、所定の撮像位置間隔dを持つ複数の撮像位置(ウェイポイント)316を設定し、各撮像位置316を通る撮影経路317を決定し、この撮影経路317を含む飛行経路を生成する。この場合、撮影平面は鉛直方向に対し所定範囲以内の切り立った平面となり、撮影方向は略水平方向に側方に向かう方向、すなわちオブジェクトの側面と対向する方向となる。
図17は、実施形態におけるオブジェクトの概略形状を用いた飛行経路生成の第2動作例の処理手順を示すフローチャートである。処理部81の飛行経路処理部811は、取得した概略形状を用いて、オブジェクトの概略形状のメッシュ簡略化を行い、概略形状311を簡略化した多面体312を算出する(S41)。飛行経路処理部811は、多面体312において、少なくとも一つの側面313を抽出する(S42)。飛行経路処理部811は、抽出した1つの側面313に対して、多面体の外向きに法線314を算出する(S43)。飛行経路処理部811は、算出した法線314を用いて、所定の撮影距離L離れた位置にその側面313と平行する撮影平面315を算出する(S44)。
飛行経路処理部811は、生成した1つの撮影平面315において、所定の撮像位置間隔dを持つ複数の撮像位置(ウェイポイント)316を設定し、これらの各撮像位置からオブジェクトを向く方向に撮影する撮影経路317を生成する(S45)。飛行経路処理部811は、オブジェクトに関して、抽出した全ての側面313の撮影経路317の生成が完了したかを判定する(S46)。全ての側面313の撮影経路生成が完了していない場合、飛行経路処理部811は、ステップS42の処理に戻り、現在の側面に隣接している次の側面313を抽出し、撮影経路317の生成まで同様の処理を繰り返す(S42〜S45)。ステップS46において、全ての側面313の撮影経路生成が完了した場合、飛行経路処理部811は、それぞれの撮影平面315の撮影経路317を結合し、飛行経路を生成する(S47)。
上記動作例により、オブジェクトの概略形状を簡略化した多面体を算出し、多面体における鉛直方向に沿う面、又は鉛直方向の所定角度範囲内に立った面を側面として抽出することで、オブジェクトの側方を向いて撮像可能な概略形状の側面を抽出できる。このため、オブジェクトの概略形状を用いて、オブジェクトを側方から見た詳細撮像が可能な撮像位置を設定できる。
[飛行経路生成の第3動作例]
図18は、実施形態におけるオブジェクトの概略形状を用いた飛行経路生成の第3動作例を説明するための図である。第3動作例は、オブジェクトを囲む複数の立方体等の多面体を結合してオブジェクトの側方に向かう撮影平面を生成する例である。
処理部81の飛行経路処理部811は、取得した概略形状を用いて、建物などの複数のオブジェクトについて、各オブジェクトの概略形状を囲む複数の多面体をそれぞれ算出する。図示例では、複数の多面体の一例として近接して存在する立方体又は直方体の多面体321A、321B、321Cを算出した例を示す。飛行経路処理部811は、複数の多面体321A、321B、321Cを結合し、結合した多面体322を算出する。近接する多面体を結合することにより、側方の詳細撮像時の無人飛行体100のオブジェクトへの衝突を回避する。飛行経路処理部811は、結合した多面体322において、少なくとも一つの側面323を抽出する。側面323は、多面体における鉛直方向に沿う面、又は鉛直方向の所定角度範囲内に立った面であってよい。飛行経路処理部811は、抽出した側面323に対して、多面体の外向きに法線324を算出する。飛行経路処理部811は、算出した法線324を用いて、所定の撮影距離Lを有して側面323と平行する撮影平面325を算出する。飛行経路処理部811は、算出した撮影平面325の内部において、所定の撮像位置間隔dを持つ複数の撮像位置(ウェイポイント)326を設定し、各撮像位置326を通る撮影経路327を決定し、この撮影経路327を含む飛行経路を生成する。各撮像位置326における撮影方向は、法線324の方向と逆方向でオブジェクトの側面と対向する方向となる。オブジェクトを囲む多面体が立方体、直方体、或いは柱状体の場合、撮影平面は鉛直方向の平面となり、撮影方向は撮影平面と垂直な水平方向となる。
図19は、実施形態におけるオブジェクトの概略形状を用いた飛行経路生成の第3動作例の処理手順を示すフローチャートである。処理部81の飛行経路処理部811は、取得した概略形状を用いて、複数のオブジェクトについて、各オブジェクトの外形を囲む複数の多面体321A、321B、321Cを算出する(S51)。飛行経路処理部811は、各多面体321A、321B、321Cを結合し、結合した多面体322を算出する(S52)。飛行経路処理部811は、結合した多面体322において、少なくとも一つの側面323を順番に抽出する(S32)。飛行経路処理部811における、多面体の側面323の抽出(S32)、法線324の算出(S33)、撮影平面325の算出(S34)、撮像位置326の決定及び撮影経路327の生成(S35)、全撮影経路の生成完了の判定(S36)の各処理は、図15に示した第1動作例と同様であり、ここでは説明を省略する。
飛行経路処理部811は、ステップS36において、全ての側面323の撮影経路生成が完了していない場合、ステップS32の処理に戻り、現在の側面に隣接している次の側面323を抽出し、撮影経路327の生成まで同様の処理を繰り返す(S32〜S35)。全ての側面323の撮影経路生成が完了した場合、飛行経路処理部811は、結合した多面体322におけるそれぞれの撮影平面325の撮影経路327を結合し、飛行経路を生成する(S57)。
なお、上述した第2動作例と第3動作例とを組み合わせて、オブジェクトの概略形状の簡略化と複数の多面体の結合とを行い、側面の抽出、撮影平面及び撮像位置の設定、及び撮影経路の決定を行うことにより、飛行経路を生成してよい。
上記動作例により、オブジェクトの複数の概略形状に対応する多面体をそれぞれ算出し、近接する複数の多面体を結合して、結合した多面体における鉛直方向に沿う面、又は鉛直方向の所定角度範囲内に立った面を側面として抽出することで、オブジェクトの側方を向いて撮像可能な概略形状の側面を抽出できる。このため、オブジェクトの概略形状を用いて、オブジェクトを側方から見た詳細撮像が可能な撮像位置を設定できる。複数の多面体を結合して側面を抽出することで、オブジェクトが近接して存在する場合に、側方の詳細撮像時に飛行体がオブジェクトへ衝突することを回避できる。
上記構成例では、情報処理装置として機能する携帯端末80によって、オブジェクトの概略形状を用いて、オブジェクトを側方から見た詳細撮像が可能な撮像位置を設定し、撮像位置を通る飛行経路を設定できる。
本実施形態によれば、オブジェクトの概略形状を用いて、オブジェクトを側方から見た詳細撮像が可能な撮像位置を設定できる。概略形状の側面を抽出することで、オブジェクトの側面に対応する側方の詳細撮像用の撮像位置を設定できる。設定した撮像位置を通過する飛行経路を生成することで、オブジェクトの側方を含む詳細撮像用の飛行経路を設定できる。抽出した側面毎に、側面に対向する撮像位置を設定することで、オブジェクトを側方から見た水平方向の詳細撮像が可能となる。
本実施形態によれば、抽出した側面に対応して、所定の撮像位置間隔を持つ複数の撮像位置を設定することで、適切な解像度、重複率を持つ撮像画像を取得できる。設定した複数の撮像位置を通る撮影経路を決定し、撮影経路を含む飛行経路を生成することで、オブジェクトの側方を含む詳細撮像用の飛行経路を設定できる。抽出した側面に対して所定の撮影距離を有して平行する撮影平面を生成することで、オブジェクトの側面に対向する撮像位置を容易に決定できる。側面に対する法線を算出することで、側面に対して所定の撮影距離において平行する撮影平面を容易に生成できる。所定の撮像位置間隔として、各撮像位置において撮像した撮像画像の一部が他と重複する撮像位置間隔を用いることで、適切な重複率を持つ撮像画像を取得可能な撮像位置を設定できる。一つの側面において撮像位置を通過する飛行経路を生成し、この側面と隣接する次の側面において撮像位置を通過する飛行経路を生成することで、オブジェクトの複数の側面に対応して、側面毎に順番に飛行して効率良く撮像できる。オブジェクトを下向きに撮像した撮像画像を取得し、この撮像画像を用いてオブジェクトの概略形状の3次元形状データを取得することで、所望のオブジェクトの概略形状を取得できる。
[飛行経路生成システム、第2構成例]
図20は、実施形態における飛行経路生成システム10Aの第2構成例を示す模式図である。飛行経路生成システム10Aは、無人飛行体100及びPC(Personal Computer)70を含む。無人飛行体100及びPC70は、有線通信又は無線通信(例えば無線LAN、又はBluetooth(登録商標))を用いて、互いに通信可能である。PC70は、デスクトップPC、ノートPC、タブレット端末などのコンピュータでよい。PC70は、ネットワークにより接続されたサーバとクライアント端末によるコンピュータでよい。PC70は、情報処理装置の一例である。
PC70は、処理部の一例としてのプロセッサ(例えばCPU、MPU又はDSP)、記憶部の一例としてのメモリ、通信インタフェース、ディスプレイ、入力デバイス、ストレージを含んでよい。情報処理装置の一例としてのPC70は、図7に示した携帯端末80が備える処理部81、飛行経路処理部811、形状データ処理部812と同様の機能を有する。
上記構成例では、情報処理装置として機能するPC70によって、オブジェクトの概略形状を用いて、オブジェクトを側方から見た詳細撮像が可能な撮像位置を設定し、撮像位置を通る飛行経路を設定できる。
[飛行経路生成システム、第3構成例]
図21は、実施形態における飛行経路生成システム10Bの第3構成例に係る無人飛行体100Aのハードウェア構成の一例を示すブロック図である。飛行経路生成システム10Bの無人飛行体100Aは、図4に示した無人飛行体100と比較すると、処理部110の代わりに処理部110Aを備える。無人飛行体100Aは、情報処理装置の一例としての機能を有し、無人飛行体100Aの処理部110Aは、情報処理装置の処理部の一例である。図21の無人飛行体100Aにおいて、図4の無人飛行体100と同様の構成については、同一の符号を付し、説明を省略又は簡略化する。
情報処理装置の処理部の一例としての処理部110Aは、飛行経路処理部111、形状データ処理部112を含む。飛行経路処理部111は、図7に示した携帯端末80が備える飛行経路処理部811と同様の機能を有する。形状データ処理部112は、図7に示した携帯端末80が備える形状データ処理部812と同様の機能を有する。
上記構成例では、情報処理装置として機能する無人飛行体100Aの処理部110Aによって、オブジェクトの概略形状を用いて、オブジェクトを側方から見た詳細撮像が可能な撮像位置を設定し、撮像位置を通る飛行経路を設定できる。
[飛行経路生成システム、第4構成例]
図22は、実施形態における飛行経路生成システム10Cの第4構成例に係る送信機50Aのハードウェア構成の一例を示すブロック図である。送信機50Aは、図6に示した送信機50と比較すると、処理部61の代わりに処理部61Aを備える。送信機50Aは、情報処理装置の一例としての機能を有し、送信機50Aの処理部61Aは、情報処理装置の処理部の一例である。図22の送信機50Aにおいて、図6の送信機50と同様の構成については、同一の符号を付し、説明を省略又は簡略化する。
情報処理装置の処理部の一例としての処理部61Aは、飛行経路処理部611、形状データ処理部612を含む。飛行経路処理部611は、図7に示した携帯端末80が備える飛行経路処理部811と同様の機能を有する。形状データ処理部612は、図7に示した携帯端末80が備える形状データ処理部812と同様の機能を有する。
上記構成例により、情報処理装置として機能する送信機50Aの処理部61Aによって、オブジェクトの概略形状を用いて、オブジェクトを側方から見た詳細撮像が可能な撮像位置を設定し、撮像位置を通る飛行経路を設定できる。
なお、上記実施形態において、生成した飛行経路を飛行体に設定し、飛行体が飛行経路に従って撮影対象領域を飛行しながら、オブジェクトに対して側方の詳細撮像を含む撮像を行って取得した撮像画像は、撮影対象領域に存在するオブジェクトの3次元形状データの生成に用いてよい。側方の詳細撮像により取得した撮像画像は、オブジェクトの側面の検査に使用してよい。
なお、上記実施形態において、飛行経路生成方法におけるステップを実行する情報処理装置は、携帯端末80、無人飛行体100A、送信機50Aのいずれかに有する例を示したが、他のプラットフォームにおいて情報処理装置を有し、飛行経路生成方法におけるステップを実行してよい。
以上、本開示について実施形態を用いて説明したが、本開示に係る発明の技術的範囲は上述した実施形態に記載の範囲には限定されない。上述した実施形態に、多様な変更又は改良を加えることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載からも明らかである。
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現可能である。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「先ず、」、「次に」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。