(57)【要約】      （修正有）【課題】地面の３次元形状を推定する際にリアルタイム性を向上できる形状推定装置を提供する。【解決手段】形状推定装置は、撮像装置により撮像される撮像範囲において複数のグリッド点を有するグリッドを生成し、第１の撮像画像及び第２の撮像画像を取得し、３次元位置及び撮像方向の情報を取得し、グリッド点における第１のグリッド点の高度を複数仮定し、複数仮定された高度について、３次元位置及び撮像装置による撮像方向に基づいて、第１のグリッド点が第１の撮像画像に投影された第１の仮定投影位置と、第１のグリッド点が第２の撮像画像に投影された第２の仮定投影位置と、を導出し、複数仮定された高度について、第１の撮像画像における第１の仮定投影位置と第２の撮像画像における第２の仮定投影位置との類似度に基づいて、第１のグリッド点の高度を推定し、推定された第１のグリッド点の高度に基づいて、撮像範囲の３次元形状を推定する。【選択図】図６
2020095519.tif 000002
【特許請求の範囲】
【請求項１】
飛行体により撮像された複数の撮像画像に基づいて３次元形状を推定する形状推定装置であって、
前記３次元形状の推定に関する処理を行う処理部を備え、
前記処理部は、
前記飛行体が備える撮像装置により撮像される撮像範囲において複数のグリッド点を有するグリッドを生成し、
前記撮像装置により撮像された第１の撮像画像及び第２の撮像画像を取得し、
前記第１の撮像画像及び第２の撮像画像を撮像した際の前記撮像装置の３次元位置及び前記撮像装置による撮像方向の情報を取得し、
前記複数のグリッド点における第１のグリッド点の高度を複数仮定し、
複数仮定された高度について、前記撮像装置の３次元位置及び前記撮像装置による撮像方向に基づいて、前記第１のグリッド点が前記第１の撮像画像に投影された第１の仮定投影位置と、前記第１のグリッド点が前記第２の撮像画像に投影された第２の仮定投影位置と、を導出し、
複数仮定された高度について、前記第１の撮像画像における前記第１の仮定投影位置と前記第２の撮像画像における前記第２の仮定投影位置との類似度を導出し、
複数仮定された高度についての前記類似度に基づいて、前記第１のグリッド点の高度を推定し、
推定された前記第１のグリッド点の高度に基づいて、前記撮像範囲の３次元形状を推定する、
形状推定装置。
【請求項２】
前記処理部は、
前記第１の撮像画像及び前記第２の撮像画像に基づいて、疎な点群データを生成し、
前記疎な点群データを基に面データを生成し、
前記面データを基に、前記第１のグリッド点の初期高度を導出し、
前記第１のグリッド点の高度を、前記初期高度から順に仮定する、
請求項１に記載の形状推定装置。
【請求項３】
前記第１の撮像画像は、１つ以上の既存の撮像画像であり、
前記第２の撮像画像は、１つ以上の最新の撮像画像であり、
前記処理部は、
前記第１の撮像画像を基に生成された第１の点群データを取得し、
前記第２の撮像画像に基づいて、第２の点群データを生成し、
前記第１の点群データと前記第２の点群データを基に、前記面データを生成する、
請求項２に記載の形状推定装置。
【請求項４】
前記処理部は、
前記類似度に基づいて、前記第１の仮定投影位置と前記第２の仮定投影位置との誤差を示す誤差スコアを算出し、
前記誤差スコアに基づいて、前記第１のグリッド点の高度を推定する、
請求項１〜３のいずれか１項に記載の形状推定装置。
【請求項５】
前記処理部は、前記グリッドにおける前記第１のグリッド点と隣接する第２のグリッド点との間隔に基づいて、前記誤差スコアを算出する、
請求項４に記載の形状推定装置。
【請求項６】
前記処理部は、前記第１のグリッド点と前記グリッドにおける第２のグリッド点との間の平滑度に基づいて、前記誤差スコアを算出する、
請求項４または５に記載の形状推定装置。
【請求項７】
前記第１のグリッド点は、前記グリッドにおける全グリッド点である、
請求項１〜６のいずれか１項に記載の形状推定装置。
【請求項８】
前記第１のグリッド点は、前記グリッドにおける一部のグリッド点である、
請求項１〜６のいずれか１項に記載の形状推定装置。
【請求項９】
前記処理部は、前記グリッドの各点の間隔を設定する、
請求項１〜８のいずれか１項に記載の形状推定装置。
【請求項１０】
飛行体により撮像された複数の撮像画像に基づいて３次元形状を推定する形状推定方法であって、
前記飛行体が備える撮像装置により撮像される撮像範囲において複数のグリッド点を有するグリッドを生成するステップと、
前記撮像装置により撮像された第１の撮像画像及び第２の撮像画像を取得するステップと、
前記第１の撮像画像及び第２の撮像画像を撮像した際の前記撮像装置の３次元位置及び前記撮像装置による撮像方向の情報を取得するステップと、
前記複数のグリッド点における第１のグリッド点の高度を複数仮定するステップと、
複数仮定された高度について、前記撮像装置の３次元位置及び前記撮像装置による撮像方向に基づいて、前記第１のグリッド点が前記第１の撮像画像に投影された第１の仮定投影位置と、前記第１のグリッド点が前記第２の撮像画像に投影された第２の仮定投影位置と、を導出するステップと、
複数仮定された高度について、前記第１の撮像画像における前記第１の仮定投影位置と前記第２の撮像画像における前記第２の仮定投影位置との類似度を導出するステップと、
複数仮定された高度についての前記類似度に基づいて、前記第１のグリッド点の高度を推定するステップと、
推定された前記第１のグリッド点の高度に基づいて、前記撮像範囲の３次元形状を推定するステップと、を含む、
形状推定方法。
【請求項１１】
前記第１のグリッド点の高度を複数仮定するステップは、
前記第１の撮像画像及び前記第２の撮像画像に基づいて、点群データを生成するステップと、
前記点群データを基に面データを生成するステップと、
前記面データを基に、前記第１のグリッド点の初期高度を導出するステップと、
前記第１のグリッド点の高度を、前記初期高度から順に仮定するステップと、を含む、
請求項１０に記載の形状推定方法。
【請求項１２】
前記第１の撮像画像は、１つ以上の既存の撮像画像であり、
前記第２の撮像画像は、１つ以上の最新の撮像画像であり、
前記点群データを生成するステップは、
前記第１の撮像画像を基に生成された第１の点群データを取得するステップと、
前記第２の撮像画像に基づいて、第２の点群データを生成するステップと、を含み、
前記面データを生成するステップは、前記第１の点群データと前記第２の点群データを基に、前記面データを生成するステップを含む、
請求項１１に記載の形状推定方法。
【請求項１３】
前記第１のグリッド点の高度を推定するステップは、
前記類似度に基づいて、前記第１の仮定投影位置と前記第２の仮定投影位置との画素値の誤差を示す誤差スコアを算出するステップと、
前記誤差スコアに基づいて、前記第１のグリッド点の高度を推定するステップと、を含む、
請求項１０〜１２のいずれか１項に記載の形状推定方法。
【請求項１４】
前記誤差スコアを算出するステップは、前記グリッドにおける前記第１のグリッド点と隣接する第２のグリッド点との間隔に基づいて、前記誤差スコアを算出するステップを含む、
請求項１３に記載の形状推定方法。
【請求項１５】
前記誤差スコアを算出するステップは、前記第１のグリッド点と前記グリッドにおける第２のグリッド点との間の平滑度に基づいて、前記誤差スコアを算出するステップを含む、
請求項１３または１４に記載の形状推定方法。
【請求項１６】
前記第１のグリッド点は、前記グリッドにおける全グリッド点である、
請求項１０〜１５のいずれか１項に記載の形状推定方法。
【請求項１７】
前記第１のグリッド点は、前記グリッドにおける一部のグリッド点である、
請求項１０〜１５のいずれか１項に記載の形状推定方法。
【請求項１８】
前記グリッドを生成するステップは、前記グリッドの各点の間隔を設定するステップを含む、
請求項１０〜１７のいずれか１項に記載の形状推定方法。
【請求項１９】
飛行体により撮像された複数の撮像画像に基づいて３次元形状を推定する形状推定装置に、
前記飛行体が備える撮像装置により撮像される撮像範囲において複数のグリッド点を有するグリッドを生成するステップと、
前記撮像装置により撮像された第１の撮像画像及び第２の撮像画像を取得するステップと、
前記第１の撮像画像及び第２の撮像画像を撮像した際の前記撮像装置の３次元位置及び前記撮像装置による撮像方向の情報を取得するステップと、
前記複数のグリッド点における第１のグリッド点の高度を複数仮定するステップと、
複数仮定された高度について、前記撮像装置の３次元位置及び前記撮像装置による撮像方向に基づいて、前記第１のグリッド点が前記第１の撮像画像に投影された第１の仮定投影位置と、前記第１のグリッド点が前記第２の撮像画像に投影された第２の仮定投影位置と、を導出するステップと、
複数仮定された高度について、前記第１の撮像画像における前記第１の仮定投影位置と前記第２の撮像画像における前記第２の仮定投影位置との類似度を導出するステップと、
複数仮定された高度についての前記類似度に基づいて、前記第１のグリッド点の高度を推定するステップと、
推定された前記第１のグリッド点の高度に基づいて、前記撮像範囲の３次元形状を推定するステップと、を実行させるためのプログラム。
【請求項２０】
飛行体により撮像された複数の撮像画像に基づいて３次元形状を推定する形状推定装置に、
前記飛行体が備える撮像装置により撮像される撮像範囲において複数のグリッド点を有するグリッドを生成するステップと、
前記撮像装置により撮像された第１の撮像画像及び第２の撮像画像を取得するステップと、
前記第１の撮像画像及び第２の撮像画像を撮像した際の前記撮像装置の３次元位置及び前記撮像装置による撮像方向の情報を取得するステップと、
前記複数のグリッド点における第１のグリッド点の高度を複数仮定するステップと、
複数仮定された高度について、前記撮像装置の３次元位置及び前記撮像装置による撮像方向に基づいて、前記第１のグリッド点が前記第１の撮像画像に投影された第１の仮定投影位置と、前記第１のグリッド点が前記第２の撮像画像に投影された第２の仮定投影位置と、を導出するステップと、
複数仮定された高度について、前記第１の撮像画像における前記第１の仮定投影位置と前記第２の撮像画像における前記第２の仮定投影位置との類似度を導出するステップと、
複数仮定された高度についての前記類似度に基づいて、前記第１のグリッド点の高度を推定するステップと、
推定された前記第１のグリッド点の高度に基づいて、前記撮像範囲の３次元形状を推定するステップと、
を実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、複数の撮像画像に基づいて３次元形状を推定する形状推定装置、形状推定方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
従来、予め設定された固定経路を通りながら撮像を行うプラットフォーム（無人機）が知られている。このプラットフォームは、地上基地から撮像指示を受け、撮像対象を撮像する。このプラットフォームは、撮像対象を撮像する場合、固定経路を飛行しながら、プラットフォームと撮像対象との位置関係により、プラットフォームの撮像機器を傾けて撮像する（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６１２１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の無人機で撮像された複数の画像を用いて、地面の三次元形状が推定可能である。しかし、３次元形状推定の計算は複雑であり、計算コストが高く、オフラインでしかできない。例えば、従来の３次元形状推定の処理では、素点生成（例えばｓｆｍ：Structure from Motion）、密点生成（例えばｍｖｓ：Multi-View Stereo）、メッシュ生成、テクスチャ生成、等を順に行う必要があり、３次元形状推定のための処理負荷が高い。そのため、無人機が画像を撮像しながらリアルタイムに地面の三次元形状を推定することは困難である。
【課題を解決するための手段】
【０００５】
一態様において、飛行体により撮像された複数の撮像画像に基づいて３次元形状を推定する形状推定装置であって、３次元形状の推定に関する処理を行う処理部を備え、処理部は、飛行体が備える撮像装置により撮像される撮像範囲において複数のグリッド点を有するグリッドを生成し、撮像装置により撮像された第１の撮像画像及び第２の撮像画像を取得し、第１の撮像画像及び第２の撮像画像を撮像した際の撮像装置の３次元位置及び撮像装置による撮像方向の情報を取得し、複数のグリッド点における第１のグリッド点の高度を複数仮定し、複数仮定された高度について、撮像装置の３次元位置及び撮像装置による撮像方向に基づいて、第１のグリッド点が第１の撮像画像に投影された第１の仮定投影位置と、第１のグリッド点が第２の撮像画像に投影された第２の仮定投影位置と、を導出し、複数仮定された高度について、第１の撮像画像における第１の仮定投影位置と第２の撮像画像における第２の仮定投影位置との類似度を導出し、複数仮定された高度についての類似度に基づいて、第１のグリッド点の高度を推定し、推定された第１のグリッド点の高度に基づいて、撮像範囲の３次元形状を推定してよい。
【０００６】
処理部は、第１の撮像画像及び第２の撮像画像に基づいて３次元復元を行い、点群データを取得し、点群データを基に面データを生成し、面データを基に、第１のグリッド点の初期高度を導出し、第１のグリッド点の高度を、初期高度から順に仮定してよい。
【０００７】
第１の撮像画像は、１つ以上の既存の撮像画像でよい。第２の撮像画像は、１つ以上の最新の撮像画像でよい。処理部は、第１の撮像画像を基に生成された第１の点群データを取得し、第２の撮像画像に基づいて、第２の点群データを生成し、第１の点群データと第２の点群データを基に、面データを生成してよい。
【０００８】
処理部は、類似度に基づいて、第１の仮定投影位置と第２の仮定投影位置との誤差を示す誤差スコアを算出し、誤差スコアに基づいて、第１のグリッド点の高度を推定してよい。
【０００９】
処理部は、グリッドにおける第１のグリッド点と隣接する第２のグリッド点との間隔に基づいて、誤差スコアを算出してよい。
【００１０】
処理部は、第１のグリッド点とグリッドにおける第２のグリッド点との間の平滑度に基づいて、誤差スコアを算出してよい。
【００１１】
第１のグリッド点は、グリッドにおける全グリッド点であってよい。
【００１２】
第１のグリッド点は、グリッドにおける一部のグリッド点であってよい。
【００１３】
処理部は、グリッドの各点の間隔を設定してよい。
【００１４】
一態様において、飛行体により撮像された複数の撮像画像に基づいて３次元形状を推定する形状推定方法であって、３次元形状の推定に関する処理を行う際、飛行体が備える撮像装置により撮像される撮像範囲において複数のグリッド点を有するグリッドを生成するステップと、撮像装置により撮像された第１の撮像画像及び第２の撮像画像を取得するステップと、第１の撮像画像及び第２の撮像画像を撮像した際の撮像装置の３次元位置及び撮像装置による撮像方向の情報を取得するステップと、複数のグリッド点における第１のグリッド点の高度を複数仮定するステップと、複数仮定された高度について、撮像装置の３次元位置及び撮像装置による撮像方向に基づいて、第１のグリッド点が第１の撮像画像に投影された第１の仮定投影位置と、第１のグリッド点が第２の撮像画像に投影された第２の仮定投影位置と、を導出するステップと、複数仮定された高度について、第１の撮像画像における第１の仮定投影位置と第２の撮像画像における第２の仮定投影位置との類似度を導出するステップと、複数仮定された高度についての類似度に基づいて、第１のグリッド点の高度を推定するステップと、推定された第１のグリッド点の高度に基づいて、撮像範囲の３次元形状を推定するステップと、を含む。
【００１５】
第１のグリッド点の高度を複数仮定するステップは、第１の撮像画像及び第２の撮像画像に基づいて３次元復元を行い、点群データを取得するステップと、点群データを基に面データを生成するステップと、面データを基に、第１のグリッド点の初期高度を導出するステップと、第１のグリッド点の高度を、初期高度から順に仮定するステップと、を含んでよい。
【００１６】
第１の撮像画像は、１つ以上の既存の撮像画像でよい。第２の撮像画像は、１つ以上の最新の撮像画像でよい。点群データを生成するステップは、第１の撮像画像を基に生成された第１の点群データを取得するステップと、第２の撮像画像に基づいて、第２の点群データを生成するステップと、を含んでよい。面データを生成するステップは、第１の点群データと第２の点群データを基に、面データを生成するステップを含んでよい。
【００１７】
第１のグリッド点の高度を推定するステップは、類似度に基づいて、第１の仮定投影位置と第２の仮定投影位置との誤差を示す誤差スコアを算出するステップと、誤差スコアに基づいて、第１のグリッド点の高度を推定するステップと、を含んでよい。
【００１８】
誤差スコアを算出するステップは、グリッドにおける第１のグリッド点と隣接する第２のグリッド点との間隔に基づいて、誤差スコアを算出するステップを含んでよい。
【００１９】
誤差スコアを算出するステップは、第１のグリッド点とグリッドにおける第２のグリッド点との間の平滑度に基づいて、誤差スコアを算出するステップを含んでよい。
【００２０】
第１のグリッド点は、グリッドにおける全グリッド点であってよい。
【００２１】
第１のグリッド点は、グリッドにおける一部のグリッド点であってよい。
【００２２】
グリッドを生成するステップは、グリッドの各点の間隔を設定するステップを含んでよい。
【００２３】
一態様において、プログラムは、飛行体により撮像された複数の撮像画像に基づいて３次元形状を推定する形状推定装置に、３次元形状の推定に関する処理を行う際、飛行体が備える撮像装置により撮像される撮像範囲において複数のグリッド点を有するグリッドを生成するステップと、撮像装置により撮像された第１の撮像画像及び第２の撮像画像を取得するステップと、第１の撮像画像及び第２の撮像画像を撮像した際の撮像装置の３次元位置及び撮像装置による撮像方向の情報を取得するステップと、複数のグリッド点における第１のグリッド点の高度を複数仮定するステップと、複数仮定された高度について、撮像装置の３次元位置及び撮像装置による撮像方向に基づいて、第１のグリッド点が第１の撮像画像に投影された第１の仮定投影位置と、第１のグリッド点が第２の撮像画像に投影された第２の仮定投影位置と、を導出するステップと、複数仮定された高度について、第１の撮像画像における第１の仮定投影位置と第２の撮像画像における第２の仮定投影位置との類似度を導出するステップと、複数仮定された高度についての類似度に基づいて、第１のグリッド点の高度を推定するステップと、推定された第１のグリッド点の高度に基づいて、撮像範囲の３次元形状を推定するステップと、を実行させるための、プログラムである。
【００２４】
一態様において、記録媒体は、飛行体により撮像された複数の撮像画像に基づいて３次元形状を推定する形状推定装置に、３次元形状の推定に関する処理を行う際、飛行体が備える撮像装置により撮像される撮像範囲において複数のグリッド点を有するグリッドを生成するステップと、撮像装置により撮像された第１の撮像画像及び第２の撮像画像を取得するステップと、第１の撮像画像及び第２の撮像画像を撮像した際の撮像装置の３次元位置及び撮像装置による撮像方向の情報を取得するステップと、複数のグリッド点における第１のグリッド点の高度を複数仮定するステップと、複数仮定された高度について、撮像装置の３次元位置及び撮像装置による撮像方向に基づいて、第１のグリッド点が第１の撮像画像に投影された第１の仮定投影位置と、第１のグリッド点が第２の撮像画像に投影された第２の仮定投影位置と、を導出するステップと、複数仮定された高度について、第１の撮像画像における第１の仮定投影位置と第２の撮像画像における第２の仮定投影位置との類似度を導出するステップと、複数仮定された高度についての類似度に基づいて、第１のグリッド点の高度を推定するステップと、推定された第１のグリッド点の高度に基づいて、撮像範囲の３次元形状を推定するステップと、を実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体である。
【００２５】
なお、上記の発明の概要は、本開示の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００２６】
【図１】実施形態１における飛行システムの第１構成例を示す模式図
【図２】実施形態１における飛行システムの第２構成例を示す模式図
【図３】無人航空機の具体的な外観の一例を示す図
【図４】無人航空機のハードウェア構成の一例を示すブロック図
【図５】端末のハードウェア構成の一例を示すブロック図
【図６】地形推定動作手順を示すフローチャート
【図７】初期グリッドの生成例を示す図
【図８】疎な点群の生成例を示す図
【図９】疎な点群で囲まれるサーフェスの生成例を示す図
【図１０】グリッド初期値の生成例を示す図
【図１１】グリッド高度の探索例を説明する図
【図１２】グリッド形状の推定例を説明する図
【発明を実施するための形態】
【００２７】
以下、発明の実施形態を通じて本開示を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須とは限らない。
【００２８】
特許請求の範囲、明細書、図面、及び要約書には、著作権による保護の対象となる事項が含まれる。著作権者は、これらの書類の何人による複製に対しても、特許庁のファイル又はレコードに表示される通りであれば異議を唱えない。ただし、それ以外の場合、一切の著作権を留保する。
【００２９】
以下の実施形態では、飛行体として、無人航空機（ＵＡＶ：Unmanned Aerial Vehicle）を例示する。無人航空機は、空中を移動する航空機を含む。本明細書に添付する図面では、無人航空機を「ＵＡＶ」と表記する。また、形状推定システムとして、飛行システムを例示する。形状推定装置として、無人航空機を主に例示するが、端末であってもよい。端末は、スマートフォン、タブレット端末ＰＣ（Personal Computer）、又はその他の装置を含んでよい。形状推定方法は、形状推定装置における動作が規定されたものである。また、記録媒体は、プログラム（例えば形状推定装置に各種の処理を実行させるプログラム）が記録されたものである。
【００３０】
（実施形態１）
図１は、実施形態１における飛行システム１０の第１構成例を示す図である。飛行システム１０は、無人航空機１００及び端末８０を備える。無人航空機１００及び端末８０は、相互に有線通信又は無線通信（例えば無線ＬＡＮ（Local Area Network））により通信可能である。図１では、端末８０が携帯端末（例えばスマートフォン、タブレット端末）であることを例示している。
【００３１】
なお、飛行システムは、無人航空機、送信機（プロポ）、及び携帯端末を備えた構成であってよい。送信機を備える場合、送信機の前面に配置された左右の制御棒を使って、ユーザは、無人航空機の飛行を制御可能である。また、この場合、無人航空機、送信機、及び携帯端末は、相互に有線通信又は無線通信により通信可能である。
【００３２】
図２は、実施形態１における飛行システム１０の第２構成例を示す模式図である。図２では、端末８０がＰＣであることを例示している。図１及び図２のいずれであっても、端末８０が有する機能は同じでよい。
【００３３】
図３は、無人航空機１００の具体的な外観の一例を示す図である。図３には、無人航空機１００が移動方向ＳＴＶ０に飛行する場合の斜視図が示される。無人航空機１００は移動体の一例である。
【００３４】
図３に示すように、地面と平行であって移動方向ＳＴＶ０に沿う方向にロール軸（ｘ軸参照）が設定される。この場合、地面と平行であってロール軸に垂直な方向にピッチ軸（ｙ軸参照）が設定され、更に、地面に垂直であってロール軸及びピッチ軸に垂直な方向にヨー軸（ｚ軸参照）が設定される。
【００３５】
無人航空機１００は、ＵＡＶ本体１０２と、ジンバル２００と、撮像部２２０と、複数の撮像部２３０とを含む構成である。
【００３６】
ＵＡＶ本体１０２は、複数の回転翼（プロペラ）を備える。ＵＡＶ本体１０２は、複数の回転翼の回転を制御することにより無人航空機１００を飛行させる。ＵＡＶ本体１０２は、例えば４つの回転翼を用いて無人航空機１００を飛行させる。回転翼の数は、４つに限定されない。また、無人航空機１００は、回転翼を有さない固定翼機でよい。
【００３７】
撮像部２２０は、所望の撮像範囲に含まれる被写体（例えば、空撮対象となる上空の様子、山や川等の景色、地上の建物）を撮像する撮像用のカメラである。
【００３８】
複数の撮像部２３０は、無人航空機１００の飛行を制御するために無人航空機１００の周囲を撮像するセンシング用のカメラである。２つの撮像部２３０が、無人航空機１００の機首である正面に設けられてよい。さらに、他の２つの撮像部２３０が、無人航空機１００の底面に設けられてよい。正面側の２つの撮像部２３０はペアとなり、いわゆるステレオカメラとして機能してよい。底面側の２つの撮像部２３０もペアとなり、ステレオカメラとして機能してよい。複数の撮像部２３０により撮像された画像に基づいて、無人航空機１００の周囲の３次元空間データが生成されてよい。なお、無人航空機１００が備える撮像部２３０の数は４つに限定されない。無人航空機１００は、少なくとも１つの撮像部２３０を備えていればよい。無人航空機１００は、無人航空機１００の機首、機尾、側面、底面、及び天井面のそれぞれに少なくとも１つの撮像部２３０を備えてよい。撮像部２３０で設定できる画角は、撮像部２２０で設定できる画角より広くてよい。撮像部２３０は、単焦点レンズ又は魚眼レンズを有してよい。
【００３９】
図４は、無人航空機１００のハードウェア構成の一例を示すブロック図である。無人航空機１００は、ＵＡＶ制御部１１０と、通信インタフェース１５０と、メモリ１６０と、ストレージ１７０と、ジンバル２００と、回転翼機構２１０と、撮像部２２０と、撮像部２３０と、ＧＰＳ受信機２４０と、慣性計測装置（ＩＭＵ：Inertial Measurement Unit）２５０と、磁気コンパス２６０と、気圧高度計２７０と、超音波センサ２８０と、レーザー測定器２９０と、を含む構成である。
【００４０】
ＵＡＶ制御部１１０は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）又はＤＳＰ（Digital Signal Processor）を用いて構成される。ＵＡＶ制御部１１０は、無人航空機１００の各部の動作を統括して制御するための信号処理、他の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。
【００４１】
ＵＡＶ制御部１１０は、メモリ１６０に格納されたプログラムに従って無人航空機１００の飛行を制御する。ＵＡＶ制御部１１０は、飛行を制御してよい。ＵＡＶ制御部１１０は、画像を空撮してよい。
【００４２】
ＵＡＶ制御部１１０は、無人航空機１００の位置を示す位置情報を取得する。ＵＡＶ制御部１１０は、ＧＰＳ受信機２４０から、無人航空機１００が存在する緯度、経度及び高度を示す位置情報を取得してよい。ＵＡＶ制御部１１０は、ＧＰＳ受信機２４０から無人航空機１００が存在する緯度及び経度を示す緯度経度情報、並びに気圧高度計２７０から無人航空機１００が存在する高度を示す高度情報をそれぞれ位置情報として取得してよい。ＵＡＶ制御部１１０は、超音波センサ２８０による超音波の放射点と超音波の反射点との距離を高度情報として取得してよい。
【００４３】
ＵＡＶ制御部１１０は、磁気コンパス２６０から無人航空機１００の向きを示す向き情報を取得してよい。向き情報は、例えば無人航空機１００の機首の向きに対応する方位で示されてよい。
【００４４】
ＵＡＶ制御部１１０は、撮像部２２０が撮像すべき撮像範囲を撮像する時に無人航空機１００が存在すべき位置を示す位置情報を取得してよい。ＵＡＶ制御部１１０は、無人航空機１００が存在すべき位置を示す位置情報をメモリ１６０から取得してよい。ＵＡＶ制御部１１０は、無人航空機１００が存在すべき位置を示す位置情報を、通信インタフェース１５０を介して他の装置から取得してよい。ＵＡＶ制御部１１０は、３次元地図データベースを参照して、無人航空機１００が存在可能な位置を特定して、その位置を無人航空機１００が存在すべき位置を示す位置情報として取得してよい。
【００４５】
ＵＡＶ制御部１１０は、撮像部２２０及び撮像部２３０のそれぞれの撮像範囲を示す撮像範囲情報を取得してよい。ＵＡＶ制御部１１０は、撮像範囲を特定するためのパラメータとして、撮像部２２０及び撮像部２３０の画角を示す画角情報を撮像部２２０及び撮像部２３０から取得してよい。ＵＡＶ制御部１１０は、撮像範囲を特定するためのパラメータとして、撮像部２２０及び撮像部２３０の撮像方向を示す情報を取得してよい。ＵＡＶ制御部１１０は、例えば撮像部２２０の撮像方向を示す情報として、ジンバル２００から撮像部２２０の姿勢の状態を示す姿勢情報を取得してよい。撮像部２２０の姿勢情報は、ジンバル２００のピッチ軸及びヨー軸の基準回転角度からの回転角度を示してよい。
【００４６】
ＵＡＶ制御部１１０は、撮像範囲を特定するためのパラメータとして、無人航空機１００が存在する位置を示す位置情報を取得してよい。ＵＡＶ制御部１１０は、撮像部２２０及び撮像部２３０の画角及び撮像方向、並びに無人航空機１００が存在する位置に基づいて、撮像部２２０が撮像する地理的な範囲を示す撮像範囲を画定し、撮像範囲情報を生成することで、撮像範囲情報を取得してよい。
【００４７】
ＵＡＶ制御部１１０は、メモリ１６０から撮像範囲情報を取得してよい。ＵＡＶ制御部１１０は、通信インタフェース１５０を介して撮像範囲情報を取得してよい。
【００４８】
ＵＡＶ制御部１１０は、ジンバル２００、回転翼機構２１０、撮像部２２０及び撮像部２３０を制御する。ＵＡＶ制御部１１０は、撮像部２２０の撮像方向又は画角を変更することによって、撮像部２２０の撮像範囲を制御してよい。ＵＡＶ制御部１１０は、ジンバル２００の回転機構を制御することで、ジンバル２００に支持されている撮像部２２０の撮像範囲を制御してよい。
【００４９】
撮像範囲とは、撮像部２２０又は撮像部２３０により撮像される地理的な範囲をいう。撮像範囲は、緯度、経度、及び高度で定義される。撮像範囲は、緯度、経度、及び高度で定義される３次元空間データにおける範囲でよい。撮像範囲は、緯度及び経度で定義される２次元空間データにおける範囲でよい。撮像範囲は、撮像部２２０又は撮像部２３０の画角及び撮像方向、並びに無人航空機１００が存在する位置に基づいて特定されてよい。撮像部２２０及び撮像部２３０の撮像方向は、撮像部２２０及び撮像部２３０の撮像レンズが設けられた正面が向く方位と俯角とから定義されてよい。撮像部２２０の撮像方向は、無人航空機１００の機首の方位と、ジンバル２００に対する撮像部２２０の姿勢の状態とから特定される方向でよい。撮像部２３０の撮像方向は、無人航空機１００の機首の方位と、撮像部２３０が設けられた位置とから特定される方向でよい。
【００５０】
ＵＡＶ制御部１１０は、複数の撮像部２３０により撮像された複数の画像を解析することで、無人航空機１００の周囲の環境を特定してよい。ＵＡＶ制御部１１０は、無人航空機１００の周囲の環境に基づいて、例えば障害物を回避して飛行を制御してよい。
【００５１】
ＵＡＶ制御部１１０は、無人航空機１００の周囲に存在するオブジェクトの立体形状（３次元形状）を示す立体情報（３次元情報）を取得してよい。オブジェクトは、例えば、建物、道路、車、木等の風景の一部でよい。立体情報は、例えば、３次元空間データである。ＵＡＶ制御部１１０は、複数の撮像部２３０から得られたそれぞれの画像から、無人航空機１００の周囲に存在するオブジェクトの立体形状を示す立体情報を生成することで、立体情報を取得してよい。ＵＡＶ制御部１１０は、メモリ１６０又はストレージ１７０に格納された３次元地図データベースを参照することにより、無人航空機１００の周囲に存在するオブジェクトの立体形状を示す立体情報を取得してよい。ＵＡＶ制御部１１０は、ネットワーク上に存在するサーバが管理する３次元地図データベースを参照することで、無人航空機１００の周囲に存在するオブジェクトの立体形状に関する立体情報を取得してよい。
【００５２】
ＵＡＶ制御部１１０は、回転翼機構２１０を制御することで、無人航空機１００の飛行を制御する。つまり、ＵＡＶ制御部１１０は、回転翼機構２１０を制御することにより、無人航空機１００の緯度、経度、及び高度を含む位置を制御する。ＵＡＶ制御部１１０は、無人航空機１００の飛行を制御することにより、撮像部２２０の撮像範囲を制御してよい。ＵＡＶ制御部１１０は、撮像部２２０が備えるズームレンズを制御することで、撮像部２２０の画角を制御してよい。ＵＡＶ制御部１１０は、撮像部２２０のデジタルズーム機能を利用して、デジタルズームにより、撮像部２２０の画角を制御してよい。
【００５３】
撮像部２２０が無人航空機１００に固定され、撮像部２２０を動かせない場合、ＵＡＶ制御部１１０は、特定の日時に特定の位置に無人航空機１００を移動させることにより、所望の環境下で所望の撮像範囲を撮像部２２０に撮像させてよい。あるいは撮像部２２０がズーム機能を有さず、撮像部２２０の画角を変更できない場合でも、ＵＡＶ制御部１１０は、特定された日時に、特定の位置に無人航空機１００を移動させることで、所望の環境下で所望の撮像範囲を撮像部２２０に撮像させてよい。
【００５４】
通信インタフェース１５０は、端末８０と通信する。通信インタフェース１５０は、任意の無線通信方式により無線通信してよい。通信インタフェース１５０は、任意の有線通信方式により有線通信してよい。通信インタフェース１５０は、空撮画像や空撮画像に関する付加情報（メタデータ）を、端末８０に送信してよい。
【００５５】
メモリ１６０は、ＵＡＶ制御部１１０がジンバル２００、回転翼機構２１０、撮像部２２０、撮像部２３０、ＧＰＳ受信機２４０、慣性計測装置２５０、磁気コンパス２６０、気圧高度計２７０、超音波センサ２８０、及びレーザー測定器２９０を制御するのに必要なプログラム等を格納する。メモリ１６０は、コンピュータ読み取り可能な記録媒体でよく、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、及びＵＳＢ（Universal Serial Bus）メモリ等のフラッシュメモリの少なくとも１つを含んでよい。メモリ１６０は、無人航空機１００から取り外し可能であってよい。メモリ１６０は、作業用メモリとして動作してよい。
【００５６】
ストレージ１７０は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、ＳＤカード、ＵＳＢメモリ、その他のストレージの少なくとも１つを含んでよい。ストレージ１７０は、各種情報、各種データを保持してよい。ストレージ１７０は、無人航空機１００から取り外し可能であってよい。ストレージ１７０は、空撮画像を記録してよい。
【００５７】
メモリ１６０又はストレージ１７０は、端末８０又は無人航空機１００により生成された空撮位置や空撮経路の情報を保持してよい。空撮位置や空撮経路の情報は、無人航空機１００により予定された空撮に係る空撮パラメータ、又は、無人航空機１００により予定された飛行に係る飛行パラメータ、の１つとして、ＵＡＶ制御部１１０により設定されてよい。この設定情報は、メモリ１６０又はストレージ１７０に保持されてよい。
【００５８】
ジンバル２００は、ヨー軸、ピッチ軸、及びロール軸を中心に撮像部２２０を回転可能に支持してよい。ジンバル２００は、ヨー軸、ピッチ軸、及びロール軸の少なくとも１つを中心に撮像部２２０を回転させることで、撮像部２２０の撮像方向を変更してよい。
【００５９】
回転翼機構２１０は、複数の回転翼と、複数の回転翼を回転させる複数の駆動モータと、を有する。回転翼機構２１０は、ＵＡＶ制御部１１０により回転を制御されることにより、無人航空機１００を飛行させる。回転翼２１１の数は、例えば４つでよいし、その他の数でよい。また、無人航空機１００は、回転翼を有さない固定翼機でよい。
【００６０】
撮像部２２０は、所望の撮像範囲の被写体を撮像して撮像画像のデータを生成する。撮像部２２０の撮像により得られた画像データ（例えば空撮画像）は、撮像部２２０が有するメモリ、又はストレージ１７０に格納されてよい。撮像部２２０は、撮像部の一例である。
【００６１】
撮像部２３０は、無人航空機１００の周囲を撮像して撮像画像のデータを生成する。撮像部２３０の画像データは、ストレージ１７０に格納されてよい。
【００６２】
ＧＰＳ受信機２４０は、複数の航法衛星（つまり、ＧＰＳ衛星）から発信された時刻及び各ＧＰＳ衛星の位置（座標）を示す複数の信号を受信する。ＧＰＳ受信機２４０は、受信された複数の信号に基づいて、ＧＰＳ受信機２４０の位置（つまり、無人航空機１００の位置）を算出する。ＧＰＳ受信機２４０は、無人航空機１００の位置情報をＵＡＶ制御部１１０に出力する。なお、ＧＰＳ受信機２４０の位置情報の算出は、ＧＰＳ受信機２４０の代わりにＵＡＶ制御部１１０により行われてよい。この場合、ＵＡＶ制御部１１０には、ＧＰＳ受信機２４０が受信した複数の信号に含まれる時刻及び各ＧＰＳ衛星の位置を示す情報が入力される。
【００６３】
慣性計測装置２５０は、無人航空機１００の姿勢を検出し、検出結果をＵＡＶ制御部１１０に出力する。慣性計測装置２５０は、無人航空機１００の姿勢として、無人航空機１００の前後、左右、及び上下の３軸方向の加速度と、ピッチ軸、ロール軸、及びヨー軸の３軸方向の角速度とを検出してよい。
【００６４】
磁気コンパス２６０は、無人航空機１００の機首の方位を検出し、検出結果をＵＡＶ制御部１１０に出力する。
【００６５】
気圧高度計２７０は、無人航空機１００が飛行する高度を検出し、検出結果をＵＡＶ制御部１１０に出力する。
【００６６】
超音波センサ２８０は、超音波を放射し、地面や物体により反射された超音波を検出し、検出結果をＵＡＶ制御部１１０に出力する。検出結果は、無人航空機１００から地面までの距離つまり高度を示してよい。検出結果は、無人航空機１００から物体（被写体）までの距離を示してよい。
【００６７】
レーザー測定器２９０は、物体にレーザー光を照射し、物体で反射された反射光を受光し、反射光により無人航空機１００と物体（被写体）との間の距離を測定する。レーザー光による距離の測定方式は、一例として、タイムオブフライト方式でよい。
【００６８】
図５は、端末８０のハードウェア構成の一例を示すブロック図である。端末８０は、端末制御部８１、操作部８３、通信部８５、メモリ８７、表示部８８、及びストレージ８９を備える。端末８０は、無人航空機１００の飛行制御を希望するユーザに所持され得る。
【００６９】
端末制御部８１は、例えばＣＰＵ、ＭＰＵ又はＤＳＰを用いて構成される。端末制御部８１は、端末８０の各部の動作を統括して制御するための信号処理、他の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。
【００７０】
端末制御部８１は、通信部８５を介して、無人航空機１００からのデータや情報を取得してよい。端末制御部８１は、操作部８３を介して入力されたデータや情報（例えば各種パラメータ）を取得してよい。端末制御部８１は、メモリ８７に保持されたデータや情報を取得してよい。端末制御部８１は、通信部８５を介して、無人航空機１００へ、データや情報（例えば位置、速度、飛行経路の情報）を送信させてよい。端末制御部８１は、データや情報を表示部８８に送り、このデータや情報に基づく表示情報を表示部８８に表示させてよい。
【００７１】
操作部８３は、端末８０のユーザにより入力されるデータや情報を受け付けて取得する。操作部８３は、ボタン、キー、タッチスクリーン、マイクロホン、等の入力装置を含んでよい。ここでは、主に、操作部８３と表示部８８とがタッチパネルにより構成されることを例示する。この場合、操作部８３は、タッチ操作、タップ操作、ドラック操作等を受付可能である。操作部８３は、各種パラメータの情報を受け付けてよい。操作部８３により入力された情報は、無人航空機１００へ送信されてよい。
【００７２】
通信部８５は、各種の無線通信方式により、無人航空機１００との間で無線通信する。この無線通信の無線通信方式は、例えば、無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又は公衆無線回線を介した通信を含んでよい。通信部８５は、任意の有線通信方式により有線通信してよい。
【００７３】
メモリ８７は、例えば端末８０の動作を規定するプログラムや設定値のデータが格納されたＲＯＭと、端末制御部８１の処理時に使用される各種の情報やデータを一時的に保存するＲＡＭを有してよい。メモリ８７は、ＲＯＭ及びＲＡＭ以外のメモリが含まれてよい。メモリ８７は、端末８０の内部に設けられてよい。メモリ８７は、端末８０から取り外し可能に設けられてよい。プログラムは、アプリケーションプログラムを含んでよい。
【００７４】
表示部８８は、例えばＬＣＤ（Liquid Crystal Display）を用いて構成され、端末制御部８１から出力された各種の情報やデータを表示する。表示部８８は、アプリケーションの実行に係る各種データや情報を表示してよい。
【００７５】
ストレージ８９は、各種データ、情報を蓄積し、保持する。ストレージ８９は、ＨＤＤ、ＳＳＤ、ＳＤカード、ＵＳＢメモリ、等でよい。ストレージ８９は、端末８０の内部に設けられてよい。ストレージ８９は、端末８０から取り外し可能に設けられてよい。ストレージ８９は、無人航空機１００から取得された空撮画像やその付加情報を保持してよい。付加情報は、メモリ８７に保持されてよい。
【００７６】
次に、飛行システム１０の動作について説明する。飛行システム１０の無人航空機１００又は端末８０は、無人航空機１００により撮像された複数の撮像画像に基づいて、地面の３次元形状を推定（地形推定）するための処理を行う。なお、ここでの地形には、撮像部２２０により地面方向を撮像した際に撮像範囲に映り込む物体（例えば地面、建物、その他のオブジェクト）の形状を広く含まれてよい。
【００７７】
図６は、地形推定処理手順の一例を示すフローチャートである。一例として、この処理は、無人航空機１００のＵＡＶ制御部１１０がメモリ１６０に記憶されたプログラムを実行することによって行われてよい。また、端末８０は、地形推定処理を補助する動作を行ってよい。例えば、端末８０は、ユーザ操作を受け付けたり、ユーザに情報を表示したりしてよい。
【００７８】
ＵＡＶ制御部１１０は、飛行範囲と各種パラメータを取得する（Ｓ１）。この場合、ユーザが、端末８０に対し、飛行範囲とパラメータを入力してよい。端末制御部８１は、操作部８３を介してユーザ入力を受け付け、入力された飛行範囲とパラメータを取得してよい。端末制御部８１は、飛行範囲とパラメータを、通信部８５を介して端末８０へ送信してよい。
【００７９】
端末制御部８１は、通信部８５を介して、外部サーバから地図情報を取得してよい。飛行範囲の情報は、例えば、飛行範囲を矩形の範囲に設定する場合、ユーザが地図情報における矩形の四隅の位置（緯度,経度）を入力することで得られてよい。また、飛行範囲の情報は、飛行範囲を円形の範囲に設定する場合、ユーザが飛行位置を中心とする円の半径を入力することで得られてよい。また、飛行範囲の情報は、ユーザが地域や特定の地名（例えば東京）等の情報を入力することで、地図情報を基に得られてよい。また、端末制御部８１は、メモリ８７やストレージ８９に保持された飛行範囲を、メモリ８７やストレージ８９から取得してよい。飛行範囲は、無人航空機１００が飛行する予定の範囲でよい。
【００８０】
パラメータは、撮像部２２０による撮像に関する撮像パラメータや無人航空機１００の飛行に関する飛行パラメータでよい。撮像パラメータは、撮像位置、撮像日時、被写体までの距離、撮像画角、撮像時の無人航空機１００の姿勢、撮像方向、撮像条件、カメラパラメータ（シャッタスピード、露出値、撮像モード、等）を含んでよい。飛行パラメータは、飛行位置（３次元位置又は２次元位置）、飛行高度、飛行速度、飛行加速度、飛行経路、飛行日時、等を含んでよい。端末制御部８１は、メモリ８７やストレージ８９に保持された各種パラメータを、メモリ８７やストレージ８９から取得してよい。端末制御部８１は、通信部８５を介して、取得された飛行範囲と各種パラメータを無人航空機１００に送信してよい。
【００８１】
無人航空機１００では、ＵＡＶ制御部１１０は、通信インタフェース１５０を介して端末８０から飛行範囲と各種パラメータを取得してよい。なお、ＵＡＶ制御部１１０自身が、飛行範囲と各種パラメータを、通信インタフェース１５０を介して外部サーバから取得したり、メモリ１６０から取得したり、無人航空機１００内の各センサ（例えばＧＰＳ受信機２４０、慣性計測装置２５０）から取得したり、導出したりしてもよい。ＵＡＶ制御部１１０は、飛行範囲と各種パラメータを基に飛行経路や撮像位置を決定してよい。
【００８２】
ＵＡＶ制御部１１０は、メッシュパターンとして初期グリッド（初期状態のグリッドｇｄ）を生成する（Ｓ２）。
【００８３】
グリッドｇｄには、形状の推定対象となる撮像範囲の地形が仮想的に表現される。よって、グリッドｇｄは、撮像範囲と同じ範囲、又は撮像範囲に含まれる範囲に設定される。そして、実空間における撮像範囲における各点の高度の仮定や推定が行われると、仮想空間におけるグリッドｇｄにおけるグリッド点の高度の仮定や推定が行われる。グリッドｇｄは、格子状、三角形、その他の多角形、その他の形状でよく、グリッドｇｄの頂点であるグリッド点ｇｐを含む。
【００８４】
各グリッド点ｇｐの高度は、初期状態では全て値０でよい。なお、グリッド点ｇｐの初期状態の高度は、端末８０の操作部８３を介してユーザが設定した任意の高度の値でもよい。この場合、ＵＡＶ制御部１１０は、通信インタフェース１５０を介して端末８０から高度の値を取得してよい。
【００８５】
各グリッド点ｇｐの間隔（グリッド間隔）は、所定の値でもよいし、ＵＡＶ制御部１１０によって任意に設定されてもよい。グリッド間隔は、１ｍ、２ｍ、等であってよい。例えば、端末８０の端末制御部８１が、操作部８３を介してグリッド間隔を指定し、通信部８５を介してグリッド間隔の情報を無人航空機１００に送信してよい。ＵＡＶ制御部１１０は、通信インタフェース１５０を介してグリッド間隔の情報を取得し、設定してよい。
【００８６】
また、撮像範囲の概略形状の情報が用意されている場合、ＵＡＶ制御部１１０は、概略形状の情報を取得してよい。ＵＡＶ制御部１１０は、概略形状をグリッド点ｇｐでサンプリングし、各グリッド点ｇｐでの高度を得て、グリッド点ｇｐの高度に設定してよい。例えば、ＵＡＶ制御部１１０は、通信インタフェース１５０を介して接続されたネットワーク上の地図サーバと連動し、撮像範囲の地形情報を概略形状の情報として取得してよい。地形情報は、撮像範囲の各グリッド点ｇｐの位置情報（緯度、経度、高度）を含んでよい。また、地形情報は、建物、山、森林、鉄塔等の地表面の形状の情報やオブジェクトの情報を含んでよい。
【００８７】
ＵＡＶ制御部１１０は、決定された飛行経路に従って飛行を制御し、撮像部２２０に画像を撮像（例えば空撮）させ、撮像画像をストレージ１７０に保持させる（Ｓ３）。この撮像は、飛行経路に沿った各撮像位置において行われ、複数の撮像画像がストレージ１７０に保持されてよい。また、ＵＡＶ制御部１１０は、撮像画像に関する付加情報をストレージ１７０に保持させてよい。この付加情報は、上記の各種パラメータ（例えば飛行パラメータ、撮像パラメータ）と同様の情報を含んでよい。よって、ＵＡＶ制御部１１０は、撮像画像を撮像した際の撮像部２２０（つまり無人航空機１００）の撮像位置、撮像時の姿勢、撮像方向、等の情報を取得してよい。
【００８８】
ＵＡＶ制御部１１０は、撮像部２２０又はストレージ１７０から複数の撮像画像を取得する。ＵＡＶ制御部１１０は、各撮像画像に含まれる複数の特徴点を抽出してよい。特徴点は、撮像画像上の任意の位置の点でよい。ＵＡＶ制御部１１０は、各撮像画像に含まれる複数の特徴点に対し、同じ特徴点同士を対応させるマッチング処理を行い、対応する特徴点としての対応点を生成してよい。ＵＡＶ制御部１１０は、複数の対応点を含む疎な点群を生成してよい。ＵＡＶ制御部１１０は、例えばｓｆｍに従って、疎な点群を生成してよい。疎な点群の数は、例えば１画像当たり数１００点程でよい。疎な点群に含まれる点のデータには、３次元位置を示すデータが含まれてよい。このように、ＵＡＶ制御部１１０は、複数の撮像画像を基に、疎な点群を生成する（Ｓ５）。
【００８９】
なお、疎な点群は、グリッドｇｄのグリッド点ｇｐとは一致しなくてよい。疎な点群の２次元平面における位置（実空間における高度を考慮しない位置）は、グリッド点ｇｐの２次元平面における位置（グリッド高度を考慮しない位置）と一致しなくてよく、初期グリッドではグリッド高度も厳密に定められていないためである。
【００９０】
ＵＡＶ制御部１１０は、生成された特徴点、対応点、疎な点群のデータを、メモリ１６０又はストレージ１７０に蓄積してよい。これにより、ＵＡＶ制御部１１０は、次回以降の疎な点群の生成では、新たに取得された撮像画像に基づく疎な点群を生成すればよく、今回以前の疎な点群は、メモリ１６０又はストレージ１７０から取得すればよい。例えば、今回以前の撮像では撮像されていなかった場所について次回以降に撮像され、新たな特徴点、対応点、疎な点群データが生成されてよい。また、今回以前の撮像で撮像された場所であるが、今回以前の撮像における撮像方向や撮像角度が異なり、同じ場所についての情報量が不足していた場合においても、新たな特徴点、対応点、疎な点群データが生成されてよい。つまり、ＵＡＶ制御部１１０は、新たな撮像画像に基づく疎な点群を、既存の撮像画像についての疎な点群に追加してよい。この場合、無人航空機１００は、疎な点群データを生成するための処理負荷を低減でき、処理時間を短縮でき、リアルタイム性を向上できる。したがって、ＵＡＶ制御部１１０は、画像撮像、撮像された画像についての疎な点群生成の後に、新たな画像撮像、新たな画像についての疎な点群生成、を逐次的に繰り返してよい。
【００９１】
ＵＡＶ制御部１１０は、ドロネー（Delaunay）三角化、ＰＳＲ（Poisson Surface Reconstruction）等のメッシュ化技術により、疎な点群に含まれる複数の点（例えば３点）を頂点とするサーフェス（面）ｓｆを生成する。つまり、ＵＡＶ制御部１１０は、疎な点群を基に、疎な点群に含まれる複数の点を含むサーフェスｓｆの形状を生成する。また、サーフェスｓｆは、形状推定の推定対象の表面の形状に対応してよい。ＵＡＶ制御部１１０は、疎な点群で形成されるサーフェスｓｆに、グリッドｇｄにおけるグリッド点ｇｐが含まれるように、グリッド点ｇｐ（各グリッド点ｇｐのグリッド高度）を補正し、グリッド初期値とする（Ｓ６）。なお、グリッド点ｇｐにおけるグリッド初期値（グリッドのグリッド高度の初期値）が、地形に対応する高度を示すものとは限らない。グリッド初期値を起点として、そのグリッド点ｇｐにおける高度を変更しながら、地形に対応する高度が探索されてよい。
【００９２】
ＵＡＶ制御部１１０は、グリッド初期値を起点として、グリッド高度を探索するための探索軸（地面を示すグリッド面に垂直な軸）に沿ってグリッド高度を変更しながら、グリッド高度を仮定する。よって、ＵＡＶ制御部１１０は、仮定されたグリッド高度を有する仮定グリッド点ＰＳを生成する。グリッド高度は、例えば、グリッド点に対応する推定対象や地形の高度に対応する。ＵＡＶ制御部１１０は、複数の撮像画像において同一の仮定グリッド点ＰＳが投影されるそれぞれの仮定投影位置について、画像（画素）の類似度を導出（例えば算出）してよい。ＵＡＶ制御部１１０は、この画素の類似度に基づいて、探索軸Ａｘ１上の複数の仮定グリッド点ＰＳのうち、最適な（地面に近いと思われる）グリッド点ｐｓを推定する。ＵＡＶ制御部１１０は、類似度が閾値ｔｈ１以上（例えば最大）となる仮定グリッド点ＰＳをグリッド点ｇｐとして推定してよい。なお、ＵＡＶ制御部１１０は、単一の画素の類似度を基にグリッド点（グリッド高度）を推定する代わりに、隣接する複数の画素を含む所定の画素範囲の類似度を基にグリッド点を推定してもよい。
【００９３】
ＵＡＶ制御部１１０により探索軸Ａｘ１に沿ってグリッド点ｇｐの高度を探索する探索方式は、全探索法でもよいし、最適法（例えば二分探索法、ＬＭ探索法）でもよい。ＵＡＶ制御部１１０は、各撮像画像における各仮定投影位置の類似度を、ＮＣＣ（Normalized Cross-Correlation）、ＳＳＤ（Sum of Squared Difference）、ＳＡＤ（Sum of Absolute Difference）等を用いて算出してよい。
【００９４】
なお、各撮像画像における各仮定投影位置の画素の類似度を、グリッド点ｇｐ（グリッド高度）を推定するための指標とすることは一例であり、ＵＡＶ制御部１１０は、他の指標を基に、最適なグリッド点ｇｐを推定してもよい。例えば、ＵＡＶ制御部１１０は、上記の類似度が高い場合に低いスコアとなるような誤差スコアを想定し、誤差スコアを基に、最適なグリッド点を推定してもよい。この場合、ＵＡＶ制御部１１０は、例えば誤差スコアが閾値ｔｈ２以下（例えば最小）となるように、最適なグリッド点を推定してよい。
【００９５】
ＵＡＶ制御部１１０は、グリッド点ｇｐの高度の探索は、撮像範囲に対応するグリッドｇｄにおける各グリッド点ｇｐに対して行われる。なお、ここでの各グリッド点ｇｐとは、グリッドｇｄにおける全てのグリッド点ｇｐでもよい、一部のグリッド点ｇｐでもよい。
【００９６】
このようにして、ＵＡＶ制御部１１０は、グリッド点ｇｐの高度を推定する。ＵＡＶ制御部１１０は、各グリッド点ｇｐの高度を推定することで、グリッド形状を推定する（Ｓ７）。グリッド形状は、各グリッド点ｇｐの実際の高度が推定された結果を反映したグリッドｇｄの形状となり、撮像範囲における地面の形状に相当する。
【００９７】
ＵＡＶ制御部１１０は、無人航空機１００が備える撮像部２２０による撮像（例えば空撮）が完了したか否かを判別する（Ｓ８）。ＵＡＶ制御部１１０は、例えば、無人航空機１００が、予定されていた飛行経路に従って飛行し、予定されていた撮像位置での画像の撮像が終了した場合に、空撮が完了したと判別してよい。ＵＡＶ制御部１１０は、端末８０の操作部８３を介してユーザが空撮の終了を指示し、この指示の情報が通信部８５を介して取得された場合に、空撮が完了したと判別してよい。空撮が完了していない場合、ＵＡＶ制御部１１０は、Ｓ３に戻り、空撮を継続する。空撮が完了した場合、ＵＡＶ制御部１１０は、図６の処理を終了する。
【００９８】
無人航空機１００は、地面方向の撮像とグリッド形状の推定とを反復して行う。したがって、反復回数が大きくなるに連れ、生成される疎な点群の数が増えてゆく。そのため、グリッド形状の推定として得られる地形形状は、徐々に、実際の地形形状に近づいていく。この場合でも、ＵＡＶ制御部１１０は、新たに追加された撮像画像から抽出された疎な点群を、既存の撮像画像から抽出された疎な点群に追加して、新たな疎な点群を生成可能である。よって、無人航空機１００は、撮像画像を取得する度に計算量が増えることを抑制でき、リアルタイム性の高いグリッド形状の推定、つまり地形推定を実現できる。
【００９９】
なお、ＵＡＶ制御部１１０は、Ｓ７において推定されたグリッド形状の情報を、通信インタフェース１５０を介して端末８０に送信してよい。端末８０では、通信部８５を介し推定されたグリッド形状の情報を取得し、表示部８８を介して表示させてよい。これにより、推定されたグリッド形状、つまり飛行範囲における推定された地面形状を、ユーザが確認できる。
【０１００】
なお、撮像部２２０により撮像された撮像画像ではなく、撮像部２３０により撮像された撮像画像を基に、グリッド形状推定が行われてもよい。
【０１０１】
なお、図６の地形推定処理の少なくとも一部の処理が、端末８０により実行されてもよい。例えば、端末制御部８１は、Ｓ３において撮像画像を無人航空機１００から取得し、疎な点群の生成（Ｓ５）、グリッド初期値の生成（Ｓ６）、グリッド形状推定（Ｓ７）、等を行ってよい。また、端末制御部８１は、Ｓ９において空撮が完了したか否かの情報を無人航空機１００から取得してよい。また、無人航空機１００と端末８０とで、地形推定処理を分担して実施してもよい。
【０１０２】
次に、図６の各ステップにおける処理を補足する。
【０１０３】
図７は、初期グリッドの生成例を示す図である。初期グリッドの形状は、撮像範囲を基に、決定されてよい。図７では、初期グリッドの形状は、平面的な矩形である。図７では、隣接する４つのグリッド点ｇｐを頂点する四角形を組み合わせて、グリッドｇｄが生成されている。隣接するグリッド点ｇｐにより他の形状（例えば三角形）が生成され、他の形状が組み合わされてグリッドｇｄが生成されてもよい。つまり、グリッドｇｄにおける各グリッド点ｇｐを頂点とする単位グリッドは、三角形でも四角形でもその他の形状でもよい。
【０１０４】
図８は、疎な点群の生成例を示す図である。疎な点群は、撮像画像に含まれる特徴点を基に、ＵＡＶ制御部１１０によって生成されてよい。図８では、４つの疎な点群（点Ｐ１〜Ｐ４）が生成される。４つの疎な点群（点Ｐ１〜Ｐ４）のうち、疎な点Ｐ２の高度が最も低く、疎な点Ｐ３，Ｐ４の高度が高い。
【０１０５】
図９は、疎な点群（点Ｐ１〜Ｐ４）で囲まれるサーフェスｓｆ１〜ｓｆ３の生成例を示す図である。疎な点群の形状を表すサーフェスｓｆ（ｓｆ１，ｓｆ２，ｓｆ３，・・・）は、前述したメッシュ化技術により生成されてよい。サーフェスｓｆ１は、疎な点Ｐ１，Ｐ２，Ｐ４で囲まれる面である。サーフェスｓｆ２は、疎な点Ｐ１，Ｐ２，Ｐ３で囲まれる面である。サーフェスｓｆ３は、疎な点Ｐ２，Ｐ３，Ｐ４で囲まれる面である。３つのサーフェスｓｆ１〜ｓｆ３で表現される全体の面は、中央（疎な点Ｐ２）が凹んだ形状を有する。
【０１０６】
図１０は、グリッド初期値ｇｐａの生成例を示す図である。疎な点群（点Ｐ１〜Ｐ４）で囲まれたサーフェスｓｆ１〜ｓｆ３にグリッド点ｇｐが含まれるように、グリッド点ｇｐの高度が補正される。例えば、初期状態では高度＝０であった点がサーフェスに合わせて補正されたり、図６の処理の前回ループ時において推定されたグリッド点ｇｐの高度が、今回生成された疎な点群に基づくサーフェスｓｆに合わせて補正されたりする。この補正後の高度を有するグリッド点ｇｐが、今回ループ時のグリッド初期値ｇｐａとなる。全てのグリッド点ｇｐに対し、同様の補正が行われ、グリッド点毎にグリッド初期値ｇｐａが生成されてよい。
【０１０７】
図１０では、各グリッド点の高度が補正されたグリッド初期値が、グリッド初期値ｇｐａ１，ｇｐａ２，ｇｐａ３，ｇｐａ４，ｇｐａ５である。高度が補正されたグリッド点ｇｐは、各グリッド点ｇｐの高度＝０の初期グリッドと比較すると、上方に盛り上がったような形状となる。
【０１０８】
図１１は、グリッド点ｇｐの高度（グリッド高度）の探索例を説明する図である。撮像画像ＧＭ１，ＧＭ２を用いたグリッド高度の探索例を示す。図１１では、飛行中の無人航空機１００が複数の撮像画像ＧＭ１，ＧＭ２を撮像するので、撮像位置及び撮像方向が異なっている。なお、図１１では、実際の地面ＳＧは、グリッド高度ｈ２の仮定グリッド点ＰＳ２の近傍を通ることを想定する。
【０１０９】
ＵＡＶ制御部１１０は、グリッド初期値ｇｐａを起点として、探索軸ａｘ１に沿ってグリッド高度を変更しながら最適なグリッド高度を探索する。図１１では、グリッド初期値ｇｐａは、仮定されるグリッド高度のうち最高のグリッド高度を有する仮定グリッド点ＰＳ１であり、順次グリッド高度を低くしながら探索が行われる。なお、グリッド初期値ｇｐａの高度は、仮定されるグリッド高度のうち最低のグリッド高度を有する仮定グリッド点ＰＳ６とされ、順次グリッド高度を高くしながら探索が行われてもよい。また、探索軸ａｘ１における端部ではなく中間部分のグリッド高度を有する仮定グリッド点（例えば仮定グリッド点ＰＳ３）をグリッド初期値の高度としてもよい。
【０１１０】
まず、ＵＡＶ制御部１１０は、グリッド高度ｈ１であると仮定する。この場合、撮像画像ＧＭ１において、グリッド高度ｈ１の仮定グリッド点ＰＳ１が投影された仮定投影位置ＰＳ１ａには、地面における位置ｓｇ１ａ（画素）が描画される。撮像画像ＧＭ２において、グリッド高度ｈ１の仮定グリッド点ＰＳ１が投影された仮定投影位置ＰＳ１ｂには、地面における位置ｓｇ１ｂ（画素）が描画される。したがって、２つの撮像画像ＧＭ１，ＧＭ２において、仮定投影位置ＰＳ１ａ，ＰＳ１ｂに、地面であると仮定した同じ仮定グリッド点ＰＳ１が描画されるのではなく、異なる実際の地面ＳＧの位置ｓｇ１ａ，ｓｇ１ｂが描画される。よって、仮定投影位置ＰＳ１ａ，ＰＳ１ｂに描画された画像の類似度（画素の類似度）が低くなる。
【０１１１】
次に、ＵＡＶ制御部１１０は、グリッド高度ｈ２であると仮定する。この場合、撮像画像ＧＭ１において、グリッド高度ｈ２の仮定グリッド点ＰＳ２が投影された仮定投影位置ＰＳ２ａには、地面における位置ｓｇ２ａ（画素）が描画される。撮像画像ＧＭ１において、グリッド高度ｈ２の仮定グリッド点ＰＳ２が投影された仮定投影位置ＰＳ２ｂには、地面における位置ｓｇ２ｂ（画素）が描画される。したがって、２つの撮像画像ＧＭ１，ＧＭ２において、仮定投影位置ＰＳ２ａ，ＰＳ２ｂに、地面であると仮定した同じ仮定グリッド点ＰＳ２に近い実際の地面ＳＧの位置ｓｇ２ａ，ｓｇ２ｂが描画される。よって、グリッド高度ｈ２と仮定した場合の仮定投影位置ＰＳ２ａ，ＰＳ２ｂに描画された画像の類似度（画素の類似度）は、グリッド高度ｈ１と仮定した場合よりも高くなる。
【０１１２】
よって、ＵＡＶ制御部１１０は、複数の撮像画像ＧＭ１，ＧＭ２における仮定投影位置（ＰＳ１ａとＰＳ１ｂ又はＰＳ２ａとＰＳ２ｂ）に描画される画像の類似度を算出し、算出された類似度を基に、最適な（実際の地面と推定される）グリッド高度のグリッド点を推定してよい。例えば、導出された複数の類似度の中で閾値ｔｈ１以上（例えば最大）の類似度に対応するグリッド高度を、グリッド点ｇｐの高度として推定してよい。
【０１１３】
なお、撮像画像ＧＭ１，ＧＭ２の双方が、ストレージ１７０に蓄積された既存の撮像画像でなく、今回撮像部２２０により撮像された画像であってよい。また、撮像画像ＧＭ１がストレージ１７０に蓄積された既存の撮像画像であり、撮像画像ＧＭ２が今回撮像部２２０により撮像された最新の撮像画像であってよい。また、グリッド高度を推定するための撮像画像が、３枚以上あってもよい。既存の撮像画像が複数あってもよい。最新の撮像画像が複数あってもよい。
【０１１４】
図１２は、グリッド形状の推定例を説明する図である。図１２では、ＵＡＶ制御部は１１０、上記画素の類似度に基づいて、グリッド初期値ｇｐａに対して上方に移動した仮定グリッド点ＰＳ２が、最適な（最も確からしい）グリッド点ｇｐであると推定する。ＵＡＶ制御部１１０は、撮像部２２０で撮像された複数枚の画像の類似度を算出し、類似度が最も高くなるグリッド高度を、最適化されたグリッド点ｇｐｐの高度と推定してよい。図１２では、グリッド高度がそれぞれ探索範囲ｚａ〜ｚｅ内で調整されてよい。
【０１１５】
このように、実施形態１の飛行システム１０では、ＵＡＶ制御部１１０は、疎な点群に基づき、グリッド初期値を導出してよい。ＵＡＶ制御部１１０は、グリッド初期値を起点としてグリッド高度を複数仮定し、仮定されたグリッド高度を有する仮定グリッド点ＰＳが投影された仮定投影位置の画素の類似度を基に、グリッド高度を最適化できる。つまり、ＵＡＶ制御部１１０は、グリッド点ｇｐを異なる撮像画像に再投影し、再投影された各場所（仮定投影位置）の類似度を計算できる。ＵＡＶ制御部１１０は、撮像位置と撮像方向とを基に、撮像画像に含まれる撮像範囲を認識可能である。よって、ＵＡＶ制御部１１０は、撮像画像における仮定投影位置を特定できる。ＵＡＶ制御部１１０は、上記の類似度に基づいて、実際のグリッド高度（真値）を推定できる。
【０１１６】
ＵＡＶ制御部１１０は、疎な点群を生成する際、蓄積された撮像画像の全てを用いて疎な点群を生成する必要はない。ＵＡＶ制御部１１０は、一度生成された疎な点群の情報を蓄積しておき、新たな撮像画像については疎な点群を生成してよい。ＵＡＶ制御部１１０は、蓄積された疎な点群に新たな疎な点群を追加し、サーフェスｓｆを生成するためのデータとして使用可能である。よって、無人航空機１００は、処理負荷が大きく演算時間が比較的長い疎な点群の生成処理を簡略化でき、ＵＡＶ制御部１１０の処理負荷を低減でき、処理時間を短縮できる。したがって、無人航空機１００は、地面の三次元形状を推定する際のリアルタイム性を向上できる。
【０１１７】
このように、無人航空機１００（形状推定装置の一例）は、無人航空機１００（飛行体）により撮像された複数の撮像画像に基づいて、地形の３次元形状を推定する。無人航空機１００は、地形の３次元形状の推定に関する処理を行うＵＡＶ制御部１１０（処理部の一例）を備える。ＵＡＶ制御部１１０は、無人航空機１００が備える撮像部２２０（撮像装置）により撮像される撮像範囲において、複数のグリッド点ｇｐを有するグリッドｇｄを生成してよい。ＵＡＶ制御部１１０は、撮像部２２０により撮像された撮像画像ＧＭ１（第１の撮像画像の一例）及び撮像画像ＧＭ２（第２の撮像画像の一例）を取得してよい。ＵＡＶ制御部１１０は、撮像画像ＧＭ１，ＧＭ２を撮像した際の撮像部２２０の３次元位置及び撮像部２２０による撮像方向（撮像部２２０の姿勢に相当）の情報を取得してよい。ＵＡＶ制御部１１０は、複数のグリッド点ｇｐにおける仮定グリッド点ＰＳ（第１のグリッド点に一例）の高度を複数仮定してよい。仮定グリッド点ＰＳの高度は、例えば、グリッド点に対応する推定対象や地形の高度に対応する。ＵＡＶ制御部１１０は、複数仮定された高度に対し、撮像部２２０の３次元位置及び撮像部２２０による撮像方向に基づいて、仮定グリッド点ＰＳが撮像画像ＧＭ１に投影された仮定投影位置ＰＳ１ａ（第１の仮定投影位置の一例）と、撮像画像ＧＭ２に投影された仮定投影位置ＰＳ１ｂ（第２の仮定投影位置の一例）と、を導出（例えば算出）してよい。ＵＡＶ制御部１１０は、複数仮定された高度について、撮像画像ＧＭ１における仮定投影位置ＰＳ１ａと撮像画像ＧＭ２における仮定投影位置ＰＳ１ｂとの類似度を導出してよい。ＵＡＶ制御部１１０は、複数仮定された高度についての類似度に基づいて、グリッド点ｇｐの高度を推定する。ＵＡＶ制御部１１０は、推定されたグリッド点ｇｐの高度に基づいて、撮像範囲の３次元形状を推定してよい。
【０１１８】
これにより、無人航空機１００は、高度を変更しながら、各撮像画像における各仮定投影位置について類似度を算出し、類似度を最適化することで（例えば最大の類似度を導出することで）グリッド点ｇｐの高度を推定でき、３次元形状推定を行う際の計算を単純化できる。したがって、無人航空機１００は、従来のような素点生成（例えばｓｆｍ）、密点生成（例えばＭＶＳ：Multi-View Stereo）、メッシュ生成、テクスチャ生成、等の処理の全てを順に行う必要が無くなる。そのため、無人航空機１００は、３次元形状の推定処理を行うための処理負荷を低減でき、オンラインで３次元形状の推定を実施できる。また、無人航空機１００は、リアルタイム性を向上できることで、現場で３次元形状の推定処理の結果を得ることもできる。
【０１１９】
例えば、類似度が大きい場合、複数の撮像画像に同一位置（仮定グリッド点ＰＳ）が投影されたそれぞれの画素（画素範囲）が最も類似しているので、これらの画素が同一の対象を表している可能性が高い。無人航空機１００は、この場合の仮定グリッド点ＰＳの高度を、この画素が存在する撮像画像における画像位置に対応する実空間の位置の高度と推定することができる。
【０１２０】
また、ＵＡＶ制御部１１０は、撮像画像ＧＭ１，ＧＭ２に基づいて、例えばｓｆｍ（Structure from Motion）による手法により、疎な点群データ（点群データの一例）を生成してよい。ＵＡＶ制御部１１０は、疎な点群データを基にサーフェスｓｆ（面データの一例）を生成してよい。ＵＡＶ制御部１１０は、サーフェスｓｆを基に、仮定グリッド点ＰＳの初期のグリッド高度ｈ１（グリッド初期値ｇｐａ）（第１のグリッド点の初期高度の一例）を導出してよい。ＵＡＶ制御部１１０は、仮定グリッド点ＰＳの高度を、グリッド高度ｈ１から順に仮定してよい。
【０１２１】
これにより、無人航空機１００は、グリッド点ｇｐ（仮定グリッド点ＰＳ）のグリッド高度ｈ１を疎な点群データに基づくサーフェスｓｆを基に設定でき、グリッド点ｇｐの高度を導出するための探索時間を短縮できる。また、無人航空機１００は、グリッド点ｇｐの初期高度が真値（実際の高度）から大きくずれていても、真値を探索し易くできる。
【０１２２】
また、第１の撮像画像は、１つ以上の既存の撮像画像（例えば前回以前に撮像された撮像画像）でよい。第２の撮像画像は、１つ以上の最新の撮像画像（例えば今回撮像された撮像画像）でよい。ＵＡＶ制御部１１０は、第１の撮像画像を基に生成された第１の点群データを取得し、第２の撮像画像に基づいて、第２の点群データを生成し、第１の点群データと第２の点群データを基に、サーフェスｓｆを生成してよい。
【０１２３】
これにより、無人航空機１００は、既存の画像（例えば第１の撮像画像）を用いることで、既存の点群データを計算することが不要であり、最新の画像（例えば第２の撮像画像）に基づく点群データうぃ生成するための演算で済む。よって、無人航空機１００は、複数の撮像画像を用いて迅速に三次元形状推定でき、リアルタイム性を向上できる。
【０１２４】
また、グリッド点ｇｐは、グリッドｇｄにおける全グリッド点でよい。これにより、無人航空機１００は、例えば撮像範囲全体の３次元形状を、リアルタイム性高く迅速に推定できる。
【０１２５】
また、グリッド点ｇｐは、グリッドｇｄにおける一部のグリッド点ｇｐでよい。これにより、無人航空機１００は、例えば撮像範囲において物体が存在する特定の範囲の３次元形状の推定を、リアルタイム性高く迅速に推定でき、計算コストを小さくできる。
【０１２６】
また、ＵＡＶ制御部１１０は、グリッドｇｄの各グリッド点ｇｐの間隔を設定してよい。例えば、端末制御部８１が、操作部８３を介して、各グリッド点ｇｐの間隔を設定するための操作情報を取得し、通信部８５を介してこの操作情報を送信してよい。ＵＡＶ制御部１１０は、通信インタフェース１５０を介して操作情報を取得し、操作情報に応じて各グリッド点ｇｐの間隔を設定してよい。
【０１２７】
これにより、無人航空機１００は、グリッドｇｄの細かさ（グリッド点ｇｐの多さ）を設定でき、ユーザ所望の３次元形状推定の細やかさを実現できる。
【０１２８】
（実施形態２）
実施形態１では、グリッド高度の探索対象において複数の高度を仮定し、複数の高度についての複数の撮像画像での仮定投影位置の画素（画素範囲）の類似度を基に、グリッド高度を推定することを想定した。一方、実施形態１では、探索対象以外のグリッドによる探索対象のグリッドへの高度の推定の影響を加味していない。実施形態２では、グリッドの隣接関係を考慮して、グリッド形状を推定する場合を示す。なお、本実施形態では、ＵＡＶ制御部１１０が主導してグリッド形状を推定することを例示するが、端末制御部８１が主導してグリッド形状を推定してもよい。
【０１２９】
実施形態２の飛行システムは実施形態１とほぼ同一の構成を有する。実施形態１と同一の構成要素については同一の符号を用いることで、その説明を省略する。
【０１３０】
ＵＡＶ制御部１１０は、複数の撮像画像を基に、各グリッド点ｇｐの高度を最適化する。この場合、ＵＡＶ制御部１１０は、第１の実施形態で導出される類似度に基づいて、誤差スコアＥ（Ｘ）を算出してよい。ＵＡＶ制御部１１０は、誤差スコアＥ（Ｘ）の算出結果を基に、各グリッド点ｇｐの高度を推定してよい。誤差スコアＥ（Ｘ）は、仮定グリッド点ＰＳを複数の撮像画像に投影しようとした場合に、各撮像画像における各仮定投影位置が示す実空間上の位置の誤差に相当する。各仮定投影位置が示す実空間上の位置の誤差が大きいと、各撮像画像における仮定投影位置の画素の類似度が低くなる。各仮定投影位置が示す実空間上の位置が小さいと、各撮像画像における仮定投影位置の画素の類似度が高くなる。誤差スコアＥ（ｘ）は、例えば式（１）で表されてよい。
【０１３１】
【数１】
2020095519.tif 000003
【０１３２】
誤差スコアＥ（ｘ）の算出では、ＵＡＶ制御部１１０は、各グリッド点ｇｐにおいて、高度ｘｓ（例えばｈ１、ｈ２、・・・）を順次変更したグリッド点ｇｐを仮定し、仮定グリッド点ＰＳを生成する。ＵＡＶ制御部１１０は、右辺における第１項のコストと、右辺における第２項の影響度とを足し合わせることで、誤差スコアＥ（ｘ）を算出してよい。式（１）の第１項は、探索対象のグリッド点ｇｐ（グリッド点ｓとも称する）単体のコストを表す。第２項は、探索対象のグリッド点ｇｐに隣接するグリッド点ｇｐ２（グリッド点ｔとも称する）による、グリッド点ｇｐへの影響度を表す。集合Ｖは、グリッド点ｇｐの集合である。集合Ｅは、グリッドｇｄにおいて隣接関係にあるグリッド点ｓとグリッド点ｔとを結ぶ辺の集合である。
【０１３３】
式（１）において、ｘｓは、グリッド点ｓの高度を表す。ｘｔは、グリッド点ｔの高度を表す。ｗｓは、現在の撮像位置（つまり無人航空機１００の位置）からグリッド点ｓに対応する実空間上の位置までの距離に基づく関数を表す。ｗｓｔは、グリッド点ｓとグリッド点ｔとの距離に基づく関数を表す。ｗｓ，ｗｓｔは、それぞれ、距離が長い程、小さな値となり、ｗｓ，ｗｓｔが存在する項（第１項又は第２項）の値が小さくなり、誤差スコアＥ（Ｘ）に与える影響が小さくなる。
【０１３４】
また、φｓ（ｘｓ）は、複数の撮像画像間の仮定グリッド点ＰＳの再投影位置（仮想投影位置）の類似度を示し、式（２）で表される。
【数２】
2020095519.tif 000004
πｉ（ｘｓ）は、ｉ位置で無人航空機１００の撮像部２２０によって撮像された撮像画像における、グリッド点ｓの画素位置（仮想投影位置に相当）を示す。πｊ（ｘｓ）は、ｊ位置で無人航空機１００の撮像部２２０によって撮像された撮像画像における、グリッド点ｓの画素位置（仮想投影位置に相当）を示す。ＮＣＣは、画像間の類似度を表す関数の一例であり、画素位置πｉ（ｘｓ）の画像と画素位置πｊ（ｘｓ）の画像の類似度を表す。画像間の再投影位置の類似度が高い場合、φｓ（ｘｓ）は、小さな値となり、つまり誤差スコアＥ（Ｘ）が小さくなる。一方、画像間の再投影位置の類似度が低い場合、φｓ（ｘｓ）は、大きな値となり、つまり誤差スコアＥ（Ｘ）が大きくなる。
【０１３５】
Ｘｓｔは、隣接関係のコストを示し、例えば隣接するグリッド点間の平滑度の情報を含んでよい。Ｘｓｔ（ｘｓ，ｘｔ）は、グリッド点ｓと隣接関係にあるグリッド点ｔとの２点間のコストを含み、式（３）で表される。式（３）の場合、グリッド点ｓ，ｔ間の距離（ノルム）を示す。
【数３】
2020095519.tif 000005
【０１３６】
平滑度の情報は、メモリ１６０に保持されてよいし、ＵＡＶ制御部１１０によって外部サーバから取得されてよい。平滑度の情報は、例えば、地形の気腹の激しい土地（山地など）である場合、平滑度が低いことを示す情報を含んでよく、地形が平野や水面（海面、川面）である場合、平滑度が高いことを示す情報を含んでよい。
【０１３７】
式（４）に示されるＸであるａｒｇｍｉｎ関数は、関数である誤差スコアＥ（Ｘ）が最小となるｘを引数として渡す関数である。ａｒｇｍｉｎ関数の関数値は、探索対象のグリッド点ｓの各撮像画像への再投影誤差を最小化するための関数である。なお、ａｒｇｍｉｎ関数の最適化解法（つまりグリッド形状の最適化解法）として、ツリー重み再配分メッセージ伝達法（ＴＲＷ−Ｓ）等の、ＭＲＦ最適化手法が用いられる。
【数４】
2020095519.tif 000006
【０１３８】
ＵＡＶ制御部１１０は、式（４）に従い、誤差スコアＥ（ｘ）が閾値ｔｈ３未満（例えば最小）となるようなグリッド点ｓの高度ｘｓを導出する。これにより、ＵＡＶ制御部１１０は、撮像部２２０で撮像された複数の撮像画像を基に、各グリッド点ｇｐの高度を最適化できる。
【０１３９】
例えば、撮像画像に障害物が映り込んでいる場合、各撮像画像における仮定グリッド点ＰＳの投影において、仮定投影位置に障害物が映り込む可能性があり、この場合、仮定投影位置の画素値が変化する。よって、障害物を地形の一部として誤推定することがあり得る。これに対し、本実施形態では、ＵＡＶ制御部１１０は、探索対象のグリッド点ｓだけでなく、その隣接に位置するグリッド点ｔとの関係性も考慮してグリッド形状を推定する。よって、無人航空機１００は、障害物等の画像ノイズが存在する場合でも、探索対象の周辺のグリッド点の状況も加味することで、地面形状をより高精度に生成できる。
【０１４０】
このように、本実施形態では、実施形態１と比較すると、探索対象のグリッド点ｓの周囲のグリッド点ｔとの関係性を加味するので、無人航空機１００は、例えば、撮像画像に障害物が映り込んでいる場合でも、障害物を地形の一部と誤って推定することを抑制できる。
【０１４１】
以上のように、ＵＡＶ制御部１１０は、仮定投影位置ＰＳ１ａと仮定投影位置ＰＳ１ｂ）との類似度（例えばφｓ（ｘｓ））に基づいて、仮定投影位置ＰＳ１ａと仮定投影位置ＰＳ１ｂとの画素値の誤差を示す誤差スコアＥ（Ｘ）を算出してよい。ＵＡＶ制御部１１０は、誤差スコアＥ（Ｘ）に基づいて、グリッド点ｇｐ（グリッド点ｓ）の高度を推定してよい。
【０１４２】
これにより、無人航空機１００は、各撮像画像ＧＭ１，ＧＭ２に同一位置（例えば仮定グリッド点ＰＳ１）が投影された各仮定投影位置ＰＳ１ａ、ＰＳ２ｂの類似度を基に、誤差スコアを用いて、簡単にグリッド点の高度を推定できる。
【０１４３】
また、ＵＡＶ制御部１１０は、グリッドｇｄにおける探索対象のグリッド点ｓ（第１のグリッドの一例）と隣接するグリッド点ｔ（例えば第２のグリッドの一例）との間隔（例えばＸｓｔ）に基づいて、誤差スコアＥ（ｘ）を算出してよい。
【０１４４】
これにより、無人航空機１００は、探索対象のグリッド点ｓと隣接するグリッド点ｔとの間隔（距離）を加味して、３次元復元の形状調整への影響度を調整できる。例えば、無人航空機１００は、グリッド点ｓ，ｔの間隔が長い程、３次元復元の形状調整への影響を小さくできる。グリッド点ｇｐの間隔が広くなると、地面形状の起伏等により隣接するグリッド点ｓ，ｔ同士の関係性が小さくなるためである。なお、ある程度以上（例えば閾値ｔｈ４以上）距離が離れた場合、誤差スコアＥ（ｘ）の第２項（式（１）の右辺の後半の項）を値０にして、隣接するグリッド点ｔによるグリッド点ｓへの影響を無くしてもよい。
【０１４５】
また、ＵＡＶ制御部１１０は、グリッド点ｓとグリッド点ｔとの間の平滑度に基づいて、誤差スコアＥ（ｘ）を算出してよい。
【０１４６】
グリッド点ｓ，ｔ間の地形が平滑であるかないかに応じて、隣接するグリッド点ｓ，ｔ同士の関係性が異なる。ＵＡＶ制御部１１０は、平滑度を加味して上記の類似度を補正し、誤差スコアＥ（ｘ）を算出してよい。無人航空機１００は、例えば、隣り合うグリッド点ｓ，ｔ間の地形が平坦な地形である場合には、補正された類似度を高く（誤差スコアＥ（Ｘ）を低く）でき、隣り合うグリッド点ｓ，ｔ間の地形が起伏に富んだ地形である場合には、補正された類似度が低く（誤差スコアＥ（Ｘ）を大きく）できる。よって、隣接するグリッド点ｓ，ｔ間が平坦である程、誤差スコアＥ（Ｘ）が小さくなり易く、無人航空機１００は、探索対象のグリッド高度を、小さな誤差で推定し易くできる。
【０１４７】
以上、実施形態を用いて本開示を説明したが、本開示の技術的範囲は上述した実施形態に記載の範囲には限定されない。上述した実施形態に、多様な変更又は改良を加えることが当業者に明らかである。その様な変更又は改良を加えた形態も本開示の技術的範囲に含まれ得ることが、特許請求の範囲の記載からも明らかである。
【０１４８】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現可能である。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「先ず、」、「次に」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１４９】
１０  飛行システム
８０  端末
８１  端末制御部
８３  操作部
８５  通信部
８７  メモリ
８８  表示部
８９  ストレージ
１００  無人航空機
１１０  ＵＡＶ制御部
１５０  通信インタフェース
１６０  メモリ
１７０  ストレージ
２００  ジンバル
２１０  回転翼機構
２２０，２３０  撮像部
２４０  ＧＰＳ受信機
２５０  慣性計測装置
２６０  磁気コンパス
２７０  気圧高度計
２８０  超音波センサ
２９０  レーザー測定器
ＧＭ１，ＧＭ２  撮像画像
ｇｄ  グリッド
ｇｐ  グリッド点
Ｐ１〜Ｐ４  疎な点
ＰＳ１，ＰＳ２，ＰＳ３，ＰＳ４  仮定グリッド点
ＰＳ１ａ，ＰＳ１ｂ，ＰＳ２ａ，ＰＳ２ｂ  仮定投影位置
ｓｆ１〜ｓｆ３  サーフェス
ｚａ〜ｚｅ  探索範囲
【図１】
2020095519.tif 000007
【図２】
2020095519.tif 000008
【図３】
2020095519.tif 000009
【図４】
2020095519.tif 000010
【図５】
2020095519.tif 000011
【図６】
2020095519.tif 000012
【図７】
2020095519.tif 000013
【図８】
2020095519.tif 000014
【図９】
2020095519.tif 000015
【図１０】
2020095519.tif 000016
【図１１】
2020095519.tif 000017
【図１２】
2020095519.tif 000018