以下に、図面を参照して、本発明にかかる情報処理プログラム、情報処理方法、および情報処理装置の実施の形態を詳細に説明する。
(実施の形態にかかる情報処理方法の一実施例)
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。図1において、情報処理装置100は、無人航空機110に関する無人航空機管理システムを制御するコンピュータである。無人航空機110は、例えば、ドローンである。
ここで、無人航空機110が飛行する際、セキュリティ担保、プライバシー保護、人の安全確保、または、無人航空機110の故障防止などの観点から、無人航空機110の進入を禁止することが望まれる領域が存在する。無人航空機110の進入を禁止することが望まれる領域は、例えば、所定の物体を基準とした領域である。所定の物体を基準とした領域は、例えば、所定の物体の性質に合わせた形状であることが好ましい。所定の物体の性質は、例えば、所定の物体の種類、角度、大きさ、向きなどである。以下の説明では、無人航空機110の進入を禁止する領域を「進入不可エリア」と表記する場合がある。
例えば、セキュリティ担保の観点から、国の重要施設や重要文化財や企業の研究施設への進入を禁止することが望まれる。また、例えば、プライバシー保護の観点から、プールの周囲の領域への進入を禁止することが望まれる。また、例えば、人の安全確保の観点から、人の上空への進入を禁止することが望まれる。また、例えば、人の安全確保の観点から、消火栓のホース取り付け箇所の前、または、消火栓の扉の前などの領域への進入を禁止することが望まれる。また、例えば、無人航空機110の故障防止の観点から、火の気の周囲の領域への進入を禁止することが望まれる。
これに対し、例えば、人が地図情報を基に、進入不可エリアを無人航空機110に設定し、無人航空機110がGPS座標を基に、設定された進入不可エリアに接近したか否かを判定し、設定された進入不可エリアへの進入を回避するようにする場合が考えられる。しかしながら、この場合では、進入不可エリアへの無人航空機110の進入を抑制することが難しい。
例えば、進入不可エリアが増加するほど、人の作業負担が増加してしまう。また、例えば、進入不可エリアを設定する際、進入不可エリアの基準とする物体の性質を考慮することが好ましいため、人の作業負担が増加してしまう。具体的には、プールに関する進入不可エリアは、盗撮防止のためにプールの周囲の一定領域も含むことが好ましい。また、具体的には、消火栓に関する進入不可エリアは、消火栓のホース取り付け箇所の前、または、消火栓の扉の前などの一定領域を含むことが好ましい。このように、人の作業負担が増加してしまうため、進入不可エリアへの無人航空機110の進入を抑制することが難しくなる。
また、例えば、新しく施設が建造され、新しい進入不可エリアが発生した場合、無人航空機110に、新しい進入不可エリアを設定し直さなければ、無人航空機110は、新しい進入不可エリアに進入してしまうことがある。一方で、既存の施設が撤去され、進入不可エリアが消滅した場合、無人航空機110は、進入不可エリアを設定し直さなければ、進入可能になった領域に進入することができず、効率よく移動することが難しくなることがある。地図情報から屋内の詳細な構造を把握することが難しいと、屋内の領域に進入不可エリアを設定することが難しい。また、電波の到達しにくい屋内では、無人航空機110が、GPS座標を基に進入不可エリアに接近したか否かを判定し、進入不可エリアへの進入を回避することが難しくなる。
ほかにも、様々な形状の進入不可エリアが写った大量の画像を用意し、無人航空機110が撮像した画像を入力すると、無人航空機110が撮像した画像の中から進入不可エリアを直接検出することが可能な学習モデルを機械学習しようとする場合が考えられる。しかしながら、この場合では、進入不可エリアの基準となる所定の物体が特徴的であっても、所定の物体の周囲の領域は特徴的ではないことがあり、学習モデルを学習することが難しく、進入不可エリアへの無人航空機110の進入を抑制することが難しい。
例えば、プールの周囲の領域を進入不可エリアとして扱う場合、プールごとに周囲の領域における床材が異なり、または、プールごとに併設される施設が異なるため、プールの周囲の領域を直接検出することが可能な学習モデルを機械学習することは難しい。
そこで、本実施の形態では、地図情報がなくても進入不可エリアを設定することができ、無人航空機110が撮像した撮像画像に基づいて、進入不可エリアへの無人航空機110の進入を抑制することができる情報処理方法について説明する。
図1において、無人航空機110は、撮像装置を有する。撮像装置は、例えば、360度カメラである。無人航空機110は、撮像装置が撮像した撮像画像120を情報処理装置100に送信する。無人航空機110は、例えば、ドローンである。図1の例では、無人航空機110の近くに消火栓140がある状況である。
情報処理装置100は、記憶部を有する。記憶部は、所定の物体が写った教師画像ごとに、所定の物体の教師画像上での位置を特定する情報と、所定の物体を基準とした無人航空機110の進入が禁止された禁止領域を特定する情報とを対応付けて記憶する。所定の物体は、進入不可エリアの基準となる物体である。所定の物体は、例えば、重要施設、研究施設、寺や神社、消火栓、プールや池などの水場、花火や蝋燭などの火の気、照明装置、農作物、人、または、動物などである。情報処理装置100は、画像に所定の物体が写っているか否かを検出可能な学習モデル131を含むDL(Deep Learning)エンジン130を有する。
情報処理装置100は、無人航空機110が有する撮像装置が撮像した撮像画像120から所定の物体を検出する。情報処理装置100は、例えば、ドローンが有する360度カメラが撮像した360度カメラ画像を取得する。そして、情報処理装置100は、DLエンジン130を用いて、360度カメラ画像から消火栓140を検出する。
情報処理装置100は、記憶部を参照し、検出した所定の物体の撮像画像120上での位置に基づいて、検出した所定の物体を基準とした無人航空機110の進入が禁止された禁止領域に、無人航空機110が進入する可能性があるか否かを判定する。禁止領域は、例えば、進入不可エリアである。情報処理装置100は、例えば、消火栓140のホース取り付け箇所の前の領域を含む進入不可エリア150に、ドローンが進入する可能性があるか否かを判定する。
情報処理装置100は、進入する可能性があると判定した場合、記憶部を参照し、検出した所定の物体を基準とした無人航空機110の進入が禁止された禁止領域に関する情報を出力する。例えば、禁止領域に関する情報は、記憶部に記憶された、禁止領域を特定する情報に基づき生成される制御指示である。情報処理装置100は、制御情報を用いて、例えば、進入する可能性があると判定した場合、ドローンと通信し、進入不可エリア150に進入しないように、ドローンの飛行を制御する。また、例えば、禁止領域に関する情報は、記憶部に記憶された、禁止領域を特定する情報に基づき生成される通知である。情報処理装置100は、例えば、進入不可エリア150が存在する方向を、ドローンの操縦者に通知してもよい。
これにより、情報処理装置100は、禁止領域への無人航空機110の進入を抑制することができる。また、情報処理装置100は、所定の物体の性質に合わせて、所定の物体を基準とした禁止領域の形状を変更可能にすることができる。このため、情報処理装置100は、利用者によって無人航空機110の進入を禁止することが望まれる領域を、正確に禁止領域として特定可能にすることができる。また、情報処理装置100は、所定の物体の性質に合わせて、所定の物体の周囲であっても進入可能な領域を設定可能にすることができる。このため、情報処理装置100は、所定の物体の性質を考慮せずに、一律で無人航空機110が所定の物体に接近しないようにする場合に比べて、無人航空機110が効率的に飛行可能なようにすることができる。
また、情報処理装置100は、無人航空機110を飛行させようとする範囲内で、所定の物体がどの位置に配置されているかを、利用者が予め設定せずに済むようにすることができ、利用者の作業負担の低減化を図ることができる。また、情報処理装置100は、無人航空機110を飛行させようとする範囲内で、所定の物体が複数存在していても、それぞれの物体を基準とした禁止領域を、利用者が予め設定せずに済むようにすることができ、利用者の作業負担の低減化を図ることができる。
また、情報処理装置100は、無人航空機110を飛行させようとする範囲内で、所定の物体が新たに設置され、または、撤去されても、所定の物体を基準とした禁止領域を、利用者が設定し直さずに済むようにすることができる。このため、情報処理装置100は、利用者の作業負担の低減化を図ることができる。また、情報処理装置100は、所定の物体の撤去前に禁止領域であった領域に、所定の物体の撤去後は、無人航空機110が進入可能なようにすることができ、無人航空機110が効率的に飛行可能なようにすることができる。
また、情報処理装置100は、電波の到達しにくい屋内で、無人航空機110を飛行させようとする場合も、禁止領域への無人航空機110の進入を抑制することができる。また、情報処理装置100は、禁止領域の基準となる所定の物体を検出してから、検出した所定の物体を基準とした禁止領域を特定することができる。このため、情報処理装置100は、禁止領域を直接検出する場合に比べて、禁止領域を正確に検出可能なようにすることができる。
また、情報処理装置100は、地図情報からは屋内の構造を把握することが難しくても、屋内に禁止領域があれば、禁止領域への無人航空機110の進入を抑制することができる。また、情報処理装置100は、無人航空機110の操縦者が、無人航空機110が何の物体の上空を飛行しているかを目視困難な場所にいても、禁止領域への無人航空機110の進入を抑制することができる。また、情報処理装置100は、無人航空機110が、プライバシー保護の観点から禁止領域に接近した場合、無人航空機110が撮像した撮像画像を破棄または加工させ、プライバシー保護を図るようにしてもよい。
また、無人航空機110の操縦者が、無人航空機110が撮像した360度カメラ画像を見ながら、禁止領域への無人航空機110の進入を回避するように、無人航空機110を操縦する場合が考えられる。しかしながら、この場合では、無人航空機110の操縦者は、360度カメラ画像が歪曲していると、禁止領域と無人航空機110との位置関係が掴みにくいことがあり、禁止領域への無人航空機110の進入を回避することが難しいことがある。これに比べ、情報処理装置100は、無人航空機110の操縦者の感覚によらず、360度カメラ画像が歪曲していても、禁止領域への無人航空機110の進入を抑制することができる。
(無人航空機管理システム200の一例)
次に、図2を用いて、図1に示した情報処理装置100を適用した、無人航空機管理システム200の一例について説明する。
図2は、無人航空機管理システム200の一例を示す説明図である。図2において、無人航空機管理システム200は、情報処理装置100と、1以上の無人航空機110とを含む。無人航空機管理システム200において、情報処理装置100と無人航空機110とは、例えば、無線通信により接続される。
情報処理装置100は、無人航空機管理システム200を制御するコンピュータである。情報処理装置100は、無人航空機110と無線通信し、無人航空機110が有する撮像装置が撮像した撮像画像を取得する。撮像装置は、例えば、360度カメラである。情報処理装置100は、撮像画像に基づいて、無人航空機110の進入が禁止された領域への無人航空機110の進入が抑制されるように、無人航空機110の飛行を制御し、または、無人航空機110の操縦者に操縦指針を通知する。情報処理装置100は、例えば、サーバ、PC(Personal Computer)などである。
無人航空機110は、人の無線操縦にしたがって飛行したり、GPS座標に基づいて飛行したりする飛行機械である。無人航空機110は、撮像装置を有する。無人航空機110は、情報処理装置100と無線通信し、撮像装置が撮像した撮像画像を情報処理装置100に送信する。無人航空機110は、例えば、情報処理装置100と無線通信し、無人航空機110の進入が禁止された領域への無人航空機110の進入が抑制されるように、無人航空機110の飛行を制御する。無人航空機110は、例えば、ドローンである。
ここでは、情報処理装置100と無人航空機110とが別の装置である場合について説明したが、これに限らない。例えば、情報処理装置100と無人航空機110とが一体である場合があってもよい。また、情報処理装置100の処理の一部を、無人航空機110が実行する場合があってもよい。
(情報処理装置100のハードウェア構成例)
次に、図3を用いて、情報処理装置100のハードウェア構成例について説明する。
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、通信I/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
通信I/F303は、電磁波を用いた無線信号により、他のコンピュータに接続される。他のコンピュータは、例えば、無人航空機110である。そして、通信I/F303は、他のコンピュータからのデータの入出力を制御する。通信I/F303は、例えば、アンテナと無線通信回路とにより実現される。
記録媒体I/F304は、CPU301の制御にしたがって記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
情報処理装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
(無人航空機110のハードウェア構成例)
次に、図4を用いて、無人航空機110のハードウェア構成例について説明する。
図4は、無人航空機110のハードウェア構成例を示すブロック図である。図4において、無人航空機110は、CPU401と、メモリ402と、通信I/F403と、撮像装置404と、駆動装置405とを有する。また、各構成部は、バス400によってそれぞれ接続される。
ここで、CPU401は、無人航空機110の全体の制御を司る。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。
通信I/F403は、電磁波を用いた無線信号により、他のコンピュータに接続される。他のコンピュータは、例えば、情報処理装置100である。そして、通信I/F403は、他のコンピュータからのデータの入出力を制御する。通信I/F403は、例えば、アンテナと無線通信回路とにより実現される。
撮像装置404は、撮像素子を有し、無人航空機110の周囲を撮像する。撮像装置404は、例えば、半球型または全天球型の360度カメラである。駆動装置405は、無人航空機110を飛行させる動力を発生させる。駆動装置405は、例えば、プロペラとモーターとにより実現される。
(情報処理装置100の機能的構成例)
次に、図5を用いて、情報処理装置100の機能的構成例について説明する。
図5は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部500と、取得部501と、検出部502と、判定部503と、出力部504とを含む。
記憶部500は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部500が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部500が、情報処理装置100とは異なる装置に含まれ、記憶部500の記憶内容が情報処理装置100から参照可能である場合があってもよい。
取得部501~出力部504は、制御部の一例として機能する。取得部501~出力部504は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
記憶部500は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部500は、例えば、無人航空機110が有する撮像装置404が撮像した撮像画像を記憶する。無人航空機110は、例えば、ドローンである。撮像装置404は、例えば、360度カメラである。撮像画像は、360度カメラ画像である。記憶部500は、例えば、撮像画像に所定の物体が写っているか否かを検出可能な学習モデルを記憶する。学習モデルは、例えば、撮像画像を入力すると撮像画像上の画素ごとに確信度を出力することが可能な学習モデルである。画素は、ピクセルである。確信度は、所定の物体が写った画素である確率の大きさを示す値である。これにより、記憶部500は、撮像画像から所定の物体を検出可能にすることができる。
記憶部500は、例えば、所定の物体が写った教師画像ごとに、所定の物体の教師画像上での位置を特定する情報と、教師画像に写った所定の物体を基準とした無人航空機110の進入が禁止された禁止領域を特定する情報とを対応付けて記憶する。禁止領域は、例えば、3次元空間である。禁止領域は、例えば、所定の物体の上方向一定距離までの空間であってもよい。所定の物体の教師画像上での位置を特定する情報は、例えば、所定の物体が写った教師画像上の画素を特定する情報である。所定の物体が写った教師画像上の画素を特定する情報は、具体的には、後述する正解データである。
禁止領域を特定する情報は、教師画像に写った所定の物体を基準とした禁止領域を特定する情報である。禁止領域を特定する情報は、例えば、禁止領域が写った教師画像上の画素を特定する情報である。禁止領域が写った教師画像上の画素を特定する情報は、具体的には、後述する進入不可エリアデータである。教師画像に写った所定の物体と、撮像画像に写りうる所定の物体とは、同種の物体であることを意味しており、現実に存在する同一の物体に限らなくてよい。
ここで、記憶部500は、例えば、複数の教師画像についての情報を記憶しなくてもよい。換言すれば、記憶部500は、1つの教師画像についての情報を記憶するだけであってもよい。これにより、記憶部500は、無人航空機110の飛行を制御し、または、無人航空機110の操縦者に操縦指針を通知する際に用いられる情報を記憶しておくことができる。また、記憶部500は、禁止領域に無人航空機110が進入する可能性があるか否かを判定可能にすることができる。
記憶部500は、例えば、教師画像に写った所定の物体を基準とした禁止領域を特定する情報として、教師画像に写った所定の物体を基準とした禁止領域と無人航空機110との位置関係を特定する情報を記憶してもよい。記憶部500は、具体的には、教師画像の撮像時、教師画像を撮像した場所に無人航空機110があるとした場合の、無人航空機110と、教師画像に写った所定の物体を基準とする禁止領域との位置関係を特定する情報を記憶する。これにより、記憶部500は、無人航空機110の飛行を制御し、または、無人航空機110の操縦者に操縦指針を通知する際に用いられる情報を記憶しておくことができる。また、記憶部500は、禁止領域に無人航空機110が進入する可能性があるか否かを判定可能にすることができる。
記憶部500は、例えば、教師画像に写った所定の物体を基準とした禁止領域を特定する情報として、教師画像に写った所定の物体を基準とした禁止領域が存在する方向を特定する情報を記憶してもよい。方向を特定する情報は、具体的には、教師画像の撮像時、教師画像を撮像した場所に無人航空機110があるとした場合の、無人航空機110を起点にした、教師画像に写った所定の物体を基準とする禁止領域が存在する方向を特定する情報である。これにより、記憶部500は、無人航空機110の飛行を制御し、または、無人航空機110の操縦者に操縦指針を通知する際に用いられる情報を記憶しておくことができる。また、記憶部500は、禁止領域に無人航空機110が進入する可能性があるか否かを判定可能にすることができる。
記憶部500は、例えば、教師画像に写った所定の物体を基準とした禁止領域を特定する情報として、教師画像に写った所定の物体を基準とした禁止領域に無人航空機110が進入する可能性があるか否かを示す情報を記憶してもよい。可能性があるか否かを示す情報は、具体的には、教師画像を撮像した場所に無人航空機110があるとした場合の、無人航空機110と、教師画像に写った所定の物体を基準とする禁止領域とが一定以上近いか否かを示す情報である。これにより、記憶部500は、無人航空機110の飛行を制御し、または、無人航空機110の操縦者に操縦指針を通知する際に用いられる情報を記憶しておくことができる。また、記憶部500は、禁止領域に無人航空機110が進入する可能性があるか否かを判定可能にすることができる。
記憶部500は、例えば、複数の物体のそれぞれの物体について、物体が写った教師画像ごとに、物体の教師画像上での位置を特定する情報と、物体を基準とした無人航空機110の進入が禁止された禁止領域を特定する情報とを対応付けて記憶してもよい。これにより、記憶部500は、それぞれの物体を基準とした禁止領域に、無人航空機110が進入する可能性があるか否かを判定可能にすることができる。
取得部501は、各機能部の処理に用いられる各種情報を取得する。取得部501は、利用者の操作入力に基づき各種情報を取得してもよい。取得部501は、情報処理装置100とは異なる装置から各種情報を取得してもよい。取得部501は、取得した各種情報を、各機能部に出力する。取得部501は、取得した各種情報を、記憶部500に格納してもよい。
取得部501は、例えば、所定の物体が写った1以上の画像を取得する。そして、取得部501は、所定の物体が写った1以上の画像を基に、撮像画像に所定の物体が写っているか否かを検出可能な学習モデルを学習する。取得部501は、例えば、自装置で学習モデルを学習しない場合、情報処理装置100とは異なる装置から学習モデルを受信してもよい。また、取得部501は、例えば、自装置で学習モデルを学習しない場合、利用者の操作入力に基づき、学習モデルの入力を受け付けてもよい。これにより、取得部501は、撮像画像上の所定の物体を検出可能にすることができる。
取得部501は、所定範囲の指定を受け付ける。所定範囲は、無人航空機110の近傍範囲を示す。所定範囲は、例えば、所定時間で無人航空機110の進入が可能である範囲を示す。所定時間は、例えば、撮像画像の撮像間隔である。所定範囲は、例えば、利用者により設定される。所定範囲は、可変であってもよい。所定範囲は、例えば、無人航空機110の速度に合わせて可変であってもよい。所定範囲は、例えば、無人航空機110が禁止領域に進入する可能性があるか否かを判定する際に用いられる。
これにより、取得部501は、無人航空機110が禁止領域に進入する可能性があるか否かを判定可能にすることができる。また、取得部501は、例えば、無人航空機110の速度に合わせて、禁止領域に無人航空機110が進入する可能性があるか否かを判定する精度の向上を図ることができる。また、取得部501は、例えば、利用者の指定に応じて、禁止領域に無人航空機110が進入する可能性の低減化を優先するか、無人航空機110の飛行の自由度を優先するかを変更することができる。
取得部501は、無人航空機110が有する撮像装置404が撮像した撮像画像を取得する。取得部501は、例えば、ドローンの360度カメラが撮像した360度カメラ画像を取得する。これにより、取得部501は、検出部502に撮像画像を提供することができる。
検出部502は、撮像画像から所定の物体を検出する。検出部502は、例えば、学習モデルを用いて、撮像画像上の画素ごとに確信度を算出する。これにより、検出部502は、現在の無人航空機110から撮像した撮像画像上での、所定の物体の写り方を特定する情報を取得することができる。検出部502は、撮像画像と教師画像との大きさが異なる場合、撮像画像を縦方向または横方向に伸長または短縮し、教師画像と同じ大きさに加工してから、学習モデルを用いて、撮像画像上の画素ごとに確信度を算出してもよい。これにより、検出部502は、撮像画像と教師画像との大きさが異なる場合に対しても適用可能にすることができる。
判定部503は、記憶部500を参照し、検出した所定の物体の撮像画像上での位置に基づいて、検出した所定の物体を基準とした無人航空機110の進入が禁止された禁止領域に、無人航空機110が進入する可能性があるか否かを判定する。
判定部503は、例えば、記憶部500を参照し、検出した所定の物体の撮像画像上での位置と、所定の物体の教師画像上での位置を特定する情報とを照合した結果に基づいて、教師画像に写った所定の物体を基準とした禁止領域を特定する情報を検索する。判定部503は、検索した結果に基づいて、検出した所定の物体を基準とした無人航空機110の進入が禁止された禁止領域に、無人航空機110が進入する可能性があるか否かを判定する。
判定部503は、具体的には、撮像画像上の画素ごとに算出した確信度と、所定の物体が写った教師画像上の画素を特定する情報とを照合する。照合の具体例については、図14を用いて後述する。判定部503は、照合した結果に基づいて、禁止領域が写った教師画像上の画素を特定する情報を検索する。判定部503は、検索した結果に基づいて、検出した所定の物体を基準とした無人航空機110の進入が禁止された禁止領域に、無人航空機110が進入する可能性があるか否かを判定する。
判定部503は、より具体的には、検索した情報に基づいて、教師画像上の所定範囲内の画素に、所定の物体を基準とした無人航空機110の進入が禁止された禁止領域が写った教師画像上の画素があるか否かを判定する。判定部503は、画素があれば、検出した所定の物体を基準とした無人航空機110の進入が禁止された禁止領域に、無人航空機110が進入する可能性があると判定する。また、判定部503は、検索された情報がある場合、検出した所定の物体を基準とした無人航空機110の進入が禁止された禁止領域に、無人航空機110が進入する可能性があると判定してもよい。
これにより、判定部503は、所定の物体の写り方が撮像画像と同様である教師画像に基づく、教師画像に写った所定の物体を基準とした禁止領域を特定する情報を検索することができる。ここで、無人航空機110と撮像画像に写った所定の物体を基準とする禁止領域との位置関係は、所定の物体の写り方が撮像画像と同様である教師画像を撮像した場所と教師画像に写った所定の物体を基準とする禁止領域との位置関係と同様になる類似性がある。この類似性を基に、判定部503は、検索した情報を、撮像画像に写った所定の物体を基準とした禁止領域を特定する情報として援用することができる。結果として、判定部503は、検索した情報に基づいて、撮像画像に写った所定の物体を基準とした禁止領域に、無人航空機110が進入する可能性があるか否かを判定することができる。
また、例えば、教師画像に写った所定の物体を基準とした禁止領域を特定する情報として、教師画像に写った所定の物体を基準とした禁止領域と無人航空機110との位置関係を特定する情報が用いられる場合がある。この場合、判定部503は、教師画像に写った所定の物体を基準とした禁止領域と無人航空機110との位置関係を、検出した所定の物体を基準とした禁止領域と無人航空機110との位置関係に援用する。そして、判定部503は、検出した所定の物体を基準とした禁止領域に、無人航空機110が進入する可能性があるか否かを判定する。
また、例えば、教師画像に写った所定の物体を基準とした禁止領域を特定する情報として、教師画像に写った所定の物体を基準とした禁止領域に無人航空機110が進入する可能性があるか否かを示す情報が用いられている場合がある。この場合、判定部503は、教師画像に写った所定の物体を基準とした禁止領域に無人航空機110が進入する可能性の有無を、検出した所定の物体を基準とした禁止領域に無人航空機110が進入する可能性の有無に援用する。そして、判定部503は、検出した所定の物体を基準とした禁止領域に、無人航空機110が進入する可能性があるか否かを判定する。
出力部504は、各機能部の処理結果の少なくともいずれかを出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、通信I/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。
出力部504は、判定部503が進入する可能性があると判定した場合、記憶部500を参照し、検出した所定の物体を基準とした禁止領域に関する情報を出力する。例えば、禁止領域に関する情報は、記憶部に記憶された、禁止領域を特定する情報に基づき生成される制御指示である。出力部504は、例えば、判定部503が検索した情報に基づいて、検出部502が検出した所定の物体を基準とした禁止領域に無人航空機110が進入しないように無人航空機110の飛行を制御する制御指示を無人航空機110に出力する。これにより、出力部504は、無人航空機110の進入が禁止された領域への無人航空機110の進入を抑制することができる。
出力部504は、例えば、判定部503が検索した情報に基づいて、検出部502が検出した所定の物体を基準とした禁止領域に無人航空機110が進入しないように無人航空機110を飛行させる操縦指標を出力する。操縦指標は、例えば、禁止領域が存在する方向である。これにより、出力部504は、無人航空機110の進入が禁止された領域への無人航空機110の進入を抑制することができる。
出力部504は、例えば、判定部503が進入する可能性がないと判定した場合、進入する可能性がないことを示す情報を出力してもよい。出力部504は、具体的には、判定部503が進入する可能性がないと判定した場合、無人航空機110がいずれの方向にも進行可能なように無人航空機110の飛行を制御する制御指示を無人航空機110に出力する。
また、無人航空機110が、制御指示を受信しなければ、自動でいずれの方向にも進行可能なように飛行するようになっている場合がある。この場合、出力部504は、判定部503が進入する可能性がないと判定した場合、進入する可能性がないことを示す情報を出力しなくてもよい。これにより、出力部504は、無線通信にかかる消費電力を削減することができる。
(無人航空機管理システム200の具体的な機能的構成例)
次に、図6を用いて、無人航空機管理システム200の具体的な機能的構成例について説明する。
図6は、無人航空機管理システム200の具体的な機能的構成例を示すブロック図である。以下の説明では、無人航空機110は「ドローン600」であるとする。図6において、ドローン600は、ドローン制御部631と、撮像制御部632とを含む。
ドローン制御部631は、ドローン600の飛行を制御する。ドローン制御部631は、例えば、人の無線操縦にしたがってドローン600の飛行する方向を決定したり、GPS座標に基づいてドローン600の飛行する方向を決定し、駆動装置405を制御する。また、ドローン制御部631は、撮像制御部632から撮像画像を取得し、情報処理装置100に送信する。ドローン制御部631の動作は、具体的には、図20に後述する飛行制御処理により実現される。
撮像制御部632は、撮像装置を制御し、一定時間ごとに撮像装置に撮像させ、撮像画像をドローン制御部631に出力する。撮像制御部632の動作は、具体的には、図19に後述する撮像処理により実現される。
図6において、情報処理装置100は、全体制御部601と、DLエンジン部602と、進入不可エリアデータ取得部603と、方角計算部604とを含む。また、情報処理装置100は、進入不可エリアデータセット610を記憶する。進入不可エリアデータセット610は、同一の360度カメラ画像に基づく正解データ611と進入不可エリアデータ612とのセットである。
情報処理装置100は、例えば、正解データ611に、正解データファイルの中での行番号を割り当てて、正解データ611を、正解データファイルを用いて記憶する。また、情報処理装置100は、例えば、進入不可エリアデータ612に、進入不可エリアデータファイルの中での行番号を割り当てて、進入不可エリアデータ612を、進入不可エリアデータファイルを用いて記憶する。この際、情報処理装置100は、例えば、同一の360度カメラ画像に基づく正解データ611と進入不可エリアデータ612とには、同一の行番号が割り当てられるようにする。
正解データ611は、教師画像である360度カメラ画像上での所定の物体が写ったピクセルを示す情報であり、教師画像である360度カメラ画像上での所定の物体の写り方を示す情報である。正解データ611は、例えば、教師画像である360度カメラ画像から成形されたピクセル単位の多次元配列データと同じ次元で、所定の物体が写ったピクセルに対応する配列要素に1を設定した多次元配列データである。所定の物体が写ったピクセル以外に対応する配列要素は、0が設定される。
進入不可エリアデータ612は、教師画像である360度カメラ画像上での所定の物体を基準とした進入不可エリアが写ったピクセルを示す情報であり、教師画像である360度カメラ画像上での進入不可エリアの写り方を示す情報である。進入不可エリアデータ612は、例えば、教師画像である360度カメラ画像から成形されたピクセル単位の多次元配列データと同じ次元で、進入不可エリアが写ったピクセルに対応する配列要素に1を設定した多次元配列データである。進入不可エリアが写ったピクセル以外に対応する配列要素は、0が設定される。
全体制御部601は、撮像画像を受信し、DLエンジン部602と、進入不可エリアデータ取得部603と、方角計算部604とを用いて、ドローン600の飛行を制御し、または、ドローン600の操縦者に操縦指針を通知する。全体制御部601は、例えば、撮像画像をDLエンジン部602に入力し、撮像画像のピクセル単位の確信度を示す多次元配列データをDLエンジン部602から取得する。撮像画像のピクセル単位の確信度を示す多次元配列データは、撮像画像のピクセル単位で対応する配列要素を有し、配列要素に確信度が設定された多次元配列データである。全体制御部601は、例えば、撮像画像のピクセル単位の確信度を示す多次元配列データを進入不可エリアデータ取得部603に入力し、進入不可エリアデータ612を進入不可エリアデータ取得部603から取得する。
全体制御部601は、例えば、進入不可エリアデータ612を方角計算部604に入力し、ドローン600を起点にして進入不可エリアが存在する方角を示す方角情報を方角計算部604から取得する。進入不可エリアは、例えば、3次元空間である。方角は、例えば、水平面の方角である。方角は、例えば、水平面での方角に限らず、高度を考慮した方角であってもよい。全体制御部601は、方角情報が示す方角にドローン600が進行しないようにドローン600の飛行を制御し、または、方角情報が示す方角をドローン600の操縦者に通知する。全体制御部601の動作は、具体的には、図21に後述する全体処理により実現される。
DLエンジン部602は、プールや消火栓などの所定の物体が写った1以上の画像に基づいて、学習モデルを学習する。DLエンジン部602は、例えば、プールについての学習モデル621や消火栓についての学習モデル622を学習して記憶しておく。DLエンジン部602は、撮像画像を入力されると、学習モデルを用いた推論を実施し、ピクセル単位の確信度を示す多次元配列データを算出する。DLエンジン部602の動作は、具体的には、図22に後述するDLエンジン処理により実現される。
進入不可エリアデータ取得部603は、ピクセル単位の確信度を示す多次元配列データが入力されると、進入不可エリアデータセット610から、入力された多次元配列データに対応する正解データ611を含む進入不可エリアデータセット610を検索する。進入不可エリアデータ取得部603は、検索した進入不可エリアデータセット610に含まれる進入不可エリアデータ612を出力する。進入不可エリアデータ取得部603の動作は、具体的には、図23に後述する進入不可エリアデータ取得処理により実現される。
方角計算部604は、進入不可エリアデータ612が入力されると、ドローン600を起点にして進入不可エリアが存在する方角を特定し、ドローン600を起点にして進入不可エリアが存在する方角を示す方角情報を出力する。方角計算部604の動作は、具体的には、図24に後述する方角計算処理により実現される。
(DLエンジン部602の具体的な機能的構成例)
次に、図7および図8を用いて、DLエンジン部602の具体的な機能的構成例について説明する。
図7および図8は、DLエンジン部602の具体的な機能的構成例を示すブロック図である。図7は、学習モデル750の学習を実現する機能的構成例を示す。図7において、DLエンジン部602は、教師画像710と、教師画像710に対応する正解データ720と、ニューラルネットワーク定義730と、ハイパーパラメータ740を、DL学習器700に入力する。そして、DLエンジン部602は、DL学習器700から出力される学習モデル750を取得する。次に、図8の説明に移行する。
図8は、学習モデル750を用いた推論を実現する機能的構成例を示す。図8において、DLエンジン部602は、テストデータ810である撮像画像と、ニューラルネットワーク定義730と、学習モデル750とを、DL推論器800に入力する。そして、DLエンジン部602は、DL推論器800から推論結果820として出力される、テストデータ810である撮像画像のピクセル単位の確信度を示す多次元配列データを取得する。
(情報処理装置100の動作例)
次に、図9~図16を用いて、情報処理装置100の動作例について説明する。まず、図9の説明に移行し、進入不可エリアの一例について説明する。
図9は、進入不可エリアの一例を示す説明図である。図9に示すように、進入不可エリアの基準となる物体は、例えば、プール910である。プール910を基準とする進入不可エリア911は、プライバシーの観点から、プール910を含む一定範囲の土地の上空の空間である。また、進入不可エリアの基準となる物体は、例えば、火の気920である。火の気920を基準とする進入不可エリア921は、無人航空機110の破損防止の観点から、火の気920の周囲の空間である。
また、進入不可エリアの基準となる物体は、例えば、消火栓930である。消火栓930を基準とする進入不可エリア931は、火災発生時の人の安全確保の観点から、消火栓930のホース取り付け箇所の前方の土地の上空の空間である。次に、図10の説明に移行し、進入不可エリアの基準となる物体を検出するための学習モデルを学習する一例について説明する。
図10~図12は、学習モデルを学習する一例を示す説明図である。図10に示すように、情報処理装置100は、プールが写った教師画像である360度カメラ画像1000と、360度カメラ画像1000に対応付けられた正解データ1010とを取得する。正解データ1010は、360度カメラ画像1000と同じ次元の多次元配列データであり、プールが写ったピクセルに対応する配列要素に1が設定された多次元配列データである。
情報処理装置100は、取得した360度カメラ画像1000と正解データ1010とをDL学習器に入力し、DL学習器を用いて学習モデル1020を作成する。情報処理装置100は、例えば、ニューラルネットワークの重み付けデータを、学習モデル1020として作成する。情報処理装置100は、具体的には、学習モデル1020により、360度カメラ画像1000のピクセルごとに、プールが写ったピクセルとしての確信度を推論した場合に、推論結果820が正解データ1010に類似するように、学習モデル1020を作成する。推論結果820は、正解データ1010と同じ次元の多次元配列データであり、ピクセル単位で推論した確信度が、ピクセル単位で対応する配列要素に設定された多次元配列データである。次に、図11の説明に移行し、学習モデルを学習する際に、教師画像が複数ある場合について説明する。
図11において、情報処理装置100は、プールが写った教師画像である360度カメラ画像1100と、360度カメラ画像1100に対応付けられた正解データ1101とを取得する。情報処理装置100は、取得した360度カメラ画像1100と正解データ1101とをDL学習器に入力し、DL学習器を用いて学習モデル1120を学習する。
情報処理装置100は、同様に、プールが写った教師画像である360度カメラ画像1110と、360度カメラ画像1110に対応付けられた正解データ1111とを取得する。情報処理装置100は、取得した360度カメラ画像1110と正解データ1111とをDL学習器に入力し、DL学習器を用いて学習モデル1120を修正する。
情報処理装置100は、同様に、他の360度カメラ画像と正解データとにも基づいて学習モデル1120を修正する。これにより、情報処理装置100は、プールが写ったピクセルとしての確信度を推論可能な学習モデルを学習することができ、学習モデルによる確信度の推論精度の向上を図ることができる。次に、図12の説明に移行する。
図12において、情報処理装置100は、消火栓が写った教師画像である360度カメラ画像1200と、360度カメラ画像1200に対応付けられた正解データ1201とを取得する。情報処理装置100は、取得した360度カメラ画像1200と正解データ1201とをDL学習器に入力し、DL学習器を用いて学習モデル1220を学習する。
情報処理装置100は、同様に、消火栓が写った教師画像である360度カメラ画像1210と、360度カメラ画像1210に対応付けられた正解データ1211とを取得する。情報処理装置100は、取得した360度カメラ画像1210と正解データ1211とをDL学習器に入力し、DL学習器を用いて学習モデル1220を修正する。
情報処理装置100は、同様に、消火栓が写った他の360度カメラ画像と正解データとにも基づいて学習モデル1220を修正する。これにより、情報処理装置100は、消火栓が写ったピクセルとしての確信度を推論可能な学習モデルを学習することができ、学習モデルによる確信度の推論精度の向上を図ることができる。次に、図13の説明に移行し、情報処理装置100が、撮像画像を取得し、撮像画像のピクセルごとに確信度を算出する一例について説明する。
図13は、確信度を算出する一例を示す説明図である。図13において、情報処理装置100は、ドローン600が撮像した撮像画像である360度カメラ画像1300を、ドローン600から受信する。情報処理装置100は、受信した360度カメラ画像1300を、プールについての学習モデル1120を用いたDL推論器に入力し、360度カメラ画像1300のピクセル単位の確信度を示す多次元配列データ1310を推論結果820として取得する。確信度は、0~1の範囲で、1に近いほど、プールが写ったピクセルである可能性が大きいことを示す。
この際、情報処理装置100は、多次元配列データ1310に、確信度が閾値以上の配列要素があれば、360度カメラ画像1300にプールが写っていると判定する。一方で、情報処理装置100は、多次元配列データ1310に、確信度が閾値以上の配列要素がなければ、360度カメラ画像1300にプールが写っていないと判定する。情報処理装置100は、プールが写っていなければ、他の物体についての学習モデルを用いたDL推論器に、360度カメラ画像1300を入力し、他の物体が写っているか否かを判定する。次に、情報処理装置100が、プールが写っていると判定したとして図14の説明に移行し、多次元配列データ1310を基に、進入不可エリアデータを取得する一例について説明する。
図14は、進入不可エリアデータを取得する一例を示す説明図である。図14において、情報処理装置100は、複数の360度カメラ画像のそれぞれの360度カメラ画像について、正解データと進入不可エリアデータとを対応付けた進入不可エリアデータセットを記憶している。複数の360度カメラ画像は、それぞれ、様々な角度、大きさ、位置にプールが写った360度カメラ画像であることが好ましい。進入不可エリアデータは、360度カメラ画像と同じ次元の多次元配列データであり、プールを基準にする進入不可エリアが写ったピクセルに対応する配列要素に1が設定された多次元配列データである。
情報処理装置100は、多次元配列データ1310を、正解データファイル1400に含まれる正解データと照合する。情報処理装置100は、例えば、多次元配列データ1310と正解データとの同一の位置にある配列要素に設定された値の差分を合計し、合計値の逆数を、多次元配列データ1310と正解データとの類似度として取得する。そして、情報処理装置100は、類似度が最も大きくなる正解データを特定する。
図14の例では、情報処理装置100は、正解データ1410を特定する。情報処理装置100は、正解データ1410と同一の360度カメラ画像に基づく進入不可エリアデータ1420を取得する。情報処理装置100は、具体的には、正解データ1410と同一の行番号に対応付けられた進入不可エリアデータ1420を取得する。
これにより、情報処理装置100は、プールの写り方が撮像画像と同様である教師画像に基づく、進入不可エリアデータを取得することができる。そして、情報処理装置100は、撮像画像の撮像時と教師画像の撮像時との状況の類似性を基に、取得した進入不可エリアデータを、撮像画像に写ったプールについての進入不可エリアを特定するために援用することができる。次に、図15の説明に移行する。
図15は、進入するか否かを判定する一例を示す説明図である。図15の例では、情報処理装置100は、撮像画像である360度カメラ画像1500を取得し、進入不可エリアデータ1510を取得したとする。ここで、情報処理装置100は、撮像画像である360度カメラ画像1500の中心部をドローン600の位置として、ドローン600からの8つの方角を設定する。
情報処理装置100は、取得した進入不可エリアデータ1510の中心部をドローン600の位置として、中心部から所定範囲内に、確信度1の配列要素が含まれるか否かを判定する。ここで、情報処理装置100は、確信度1の配列要素が含まれなければ、進入不可エリアにドローン600が進入する可能性がないと判定する。一方で、情報処理装置100は、確信度1の配列要素が含まれれば、進入不可エリアにドローン600が進入する可能性があると判定する。
情報処理装置100は、進入不可エリアにドローン600が進入する可能性があると判定した場合、進入不可エリアデータ1510において確信度1が設定された配列要素の集合に対応する、360度カメラ画像1500の領域を特定する。そして、情報処理装置100は、特定した領域がある方角1501~1503を、進行不可能な方角として特定し、特定した領域がある方角1501~1503以外を、進行可能な方角として特定する。情報処理装置100は、具体的には、[北:OK、北西:OK、西:OK、南西:OK、南:OK、南東:NG、東:NG、北東:NG]を示す方角情報を特定する。
ここでは、情報処理装置100が、ドローン600からの水平面での8つの方角を設定する場合について説明したが、これに限らない。例えば、360度カメラ画像1500の中心部から見たそれぞれのピクセルの位置は、ドローン600からの水平面の方角のほかに高度も表している。このため、情報処理装置100が、高度を考慮した方角を設定する場合があってもよい。次に、図16の説明に移行する。
図16は、ドローン600を制御する一例を示す説明図である。図16において、情報処理装置100は、進入不可エリアにドローン600が進入する可能性がないと判定した結果、および、取得した方角情報に基づいて、ドローン600を制御する。
例えば、360度カメラ画像1600が撮像されたような状況であれば、情報処理装置100は、進入不可エリアにドローン600が進入する可能性があると判定している。このため、情報処理装置100は、取得した方角情報に基づいて、進入不可エリアにドローン600が進入しないように、ドローン600の飛行を制御する制御信号をドローン600に送信する。また、情報処理装置100は、ドローン600の操縦者が有するコントローラに、方角情報を送信し、ドローン600の操縦者に方角情報を把握させ、進入不可エリアにドローン600が進入しないように操縦させてもよい。
一方で、例えば、360度カメラ画像1610が撮像されたような状況であれば、情報処理装置100は、進入不可エリアにドローン600が進入する可能性がないと判定している。このため、情報処理装置100は、ドローン600の飛行を制御せず、ドローン600に自動で飛行させる。これにより、情報処理装置100は、ドローン600の進入が禁止された領域へのドローン600の進入を抑制することができる。また、情報処理装置100は、ドローン600の進入を禁止する領域の基準となる所定の物体の性質に合わせて、ドローン600の進入を禁止する領域の形状を変更することができ、ドローン600の進入を禁止する領域を正確に設定しやすくすることができる。また、情報処理装置100は、ドローン600の進入を禁止する領域の基準となる所定の物体の性質に合わせて、所定の物体の周囲であっても進入可能な領域を設定することができる。
(データセット用意処理手順)
次に、図17を用いて、利用者が実施する、データセット用意処理手順の一例について説明する。データセット用意処理は、例えば、利用者がコンピュータを利用して実現する。コンピュータは、例えば、情報処理装置100である。
図17は、データセット用意処理手順の一例を示すフローチャートである。図17において、利用者は、コンピュータ上で、認識対象の物体が写った360度カメラ画像を複数用意する(ステップS1701)。
次に、利用者は、コンピュータ上で、正解データファイルをオープンする(ステップS1702)。そして、利用者は、コンピュータ上で、進入不可エリアデータファイルをオープンする(ステップS1703)。
次に、利用者は、コンピュータ上で、未処理の360度カメラ画像のうち、いずれかの360度カメラ画像を処理対象に選択する(ステップS1704)。そして、利用者は、コンピュータ上で、選択した360度カメラ画像をピクセル単位の多次元配列データAに成形する(ステップS1705)。
次に、利用者は、コンピュータ上で、多次元配列データAと同じ次元で0パディングした多次元配列データBを作成する(ステップS1706)。そして、利用者は、コンピュータ上で、多次元配列データBについて、認識対象の物体が写ったピクセルに対応する配列要素に1を設定する(ステップS1707)。
次に、利用者は、コンピュータ上で、多次元配列データAと同じ次元で0パディングした多次元配列データCを作成する(ステップS1708)。そして、利用者は、コンピュータ上で、多次元配列データCについて、進入不可エリアが写ったピクセルに対応する配列要素に1を設定する(ステップS1709)。
次に、利用者は、コンピュータ上で、多次元配列データBを正解データファイルに格納する(ステップS1710)。そして、利用者は、コンピュータ上で、多次元配列データCを進入不可エリアデータファイルに格納する(ステップS1711)。
次に、利用者は、コンピュータ上で、すべての360度カメラ画像を処理したか否かを判定する(ステップS1712)。ここで、未処理の360度カメラ画像がある場合(ステップS1712:No)、利用者は、ステップS1704の処理に戻る。一方で、すべての360度カメラ画像を処理している場合(ステップS1712:Yes)、利用者は、ステップS1713の処理に移行する。
ステップS1713では、利用者は、コンピュータ上で、正解データファイルをクローズする(ステップS1713)。次に、利用者は、コンピュータ上で、進入不可エリアデータファイルをクローズする(ステップS1714)。そして、利用者は、データセット用意処理を終了する。これにより、利用者は、ドローン600が進入不可エリアに進入する可能性があるか否かを判定するために用いられる情報を用意することができる。
また、データセット用意処理は、例えば、利用者が情報処理装置100とは異なる装置を利用して実現する場合があってもよい。この場合、情報処理装置100は、正解データファイル、および、進入不可エリアデータファイルを、情報処理装置100とは異なる装置から取得する。
(学習処理手順)
次に、図18を用いて、情報処理装置100が実行する、学習処理手順の一例について説明する。学習処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図18は、学習処理手順の一例を示すフローチャートである。図18において、情報処理装置100は、360度カメラ画像を複数取得する(ステップS1801)。
次に、情報処理装置100は、360度カメラ画像をピクセル単位の多次元配列データに成形する(ステップS1802)。そして、情報処理装置100は、ステップS1803の処理に移行する。
ステップS1803では、情報処理装置100は、未処理の多次元配列データを選択する(ステップS1803)。次に、情報処理装置100は、選択した多次元配列データを入力として、ニューラルネットワークとハイパーパラメータ740を用いて学習を実施する(ステップS1804)。
そして、情報処理装置100は、すべての多次元配列データを選択したか否かを判定する(ステップS1805)。ここで、未選択の多次元配列データがある場合(ステップS1805:No)、情報処理装置100は、ステップS1803の処理に戻る。一方で、すべての多次元配列データを選択している場合(ステップS1805:Yes)、情報処理装置100は、ステップS1806の処理に移行する。
ステップS1806では、情報処理装置100は、学習結果として学習モデルを出力する(ステップS1806)。そして、情報処理装置100は、学習処理を終了する。これにより、情報処理装置100は、ドローン600が進入不可エリアに進入する可能性があるか否かを判定するために用いられる学習モデルを学習することができ、撮像画像のピクセル単位の確信度を推論可能にすることができる。
また、学習処理は、例えば、情報処理装置100とは異なる装置により実現される場合があってもよい。この場合、情報処理装置100は、学習モデルを情報処理装置100とは異なる装置から取得する。
(撮像処理手順)
次に、図19を用いて、ドローン600の撮像制御部632が実行する、撮像処理手順の一例について説明する。撮像処理は、例えば、図4に示したCPU401と、メモリ402の記憶領域と、通信I/F403と、撮像装置404とによって実現される。
図19は、撮像処理手順の一例を示すフローチャートである。図19において、撮像制御部632は、数秒待機する(ステップS1901)。
次に、撮像制御部632は、360度カメラにより撮像する(ステップS1902)。そして、撮像制御部632は、撮像した360度カメラ画像を、ドローン制御部631を介して情報処理装置100に送信する(ステップS1903)。
その後、撮像制御部632は、ステップS1901の処理に戻る。これにより、撮像制御部632は、情報処理装置100に、360度カメラ画像に基づき、ドローン600が進入不可エリアに進入する可能性があるか否かを判定させることができる。
(飛行制御処理手順)
次に、図20を用いて、ドローン600のドローン制御部631が実行する、飛行制御処理手順の一例について説明する。飛行制御処理は、例えば、図4に示したCPU401と、メモリ402の記憶領域と、通信I/F403と、駆動装置405とによって実現される。
図20は、飛行制御処理手順の一例を示すフローチャートである。図20において、ドローン制御部631は、情報処理装置100から方角情報を受信する(ステップS2001)。
次に、ドローン制御部631は、方角情報に基づいて、進入不可エリアが存在する方角にドローン600が進行しないように、ドローン600を制御する(ステップS2002)。そして、ドローン制御部631は、方角情報に基づいて、GUIを介して利用者に進入不可エリアが存在する方角を通知する(ステップS2003)。
その後、ドローン制御部631は、飛行制御処理を終了する。これにより、ドローン制御部631は、進入不可エリアにドローン600が進入しないように、ドローン600の飛行を制御し、かつ、操縦者に操縦指針を与えることができる。
(全体処理手順)
次に、図21を用いて、情報処理装置100の全体制御部601が実行する、全体処理手順の一例について説明する。全体処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図21は、全体処理手順の一例を示すフローチャートである。図21において、全体制御部601は、360度カメラ画像を受信する(ステップS2101)。
次に、全体制御部601は、360度カメラ画像を引数として、図22に後述するDLエンジン処理をDLエンジン部602に実行させる(ステップS2102)。そして、全体制御部601は、DLエンジン処理の戻り値である多次元配列データを引数として、図23に後述する進入不可エリアデータ取得処理を進入不可エリアデータ取得部603に実行させる(ステップS2103)。
次に、全体制御部601は、進入不可エリアデータ取得処理の戻り値である進入不可エリアデータの中心部に確信度1を含むか否かを判定する(ステップS2104)。ここで、確信度1を含む場合(ステップS2104:Yes)、全体制御部601は、ステップS2105の処理に移行する。一方で、確信度1を含まない場合(ステップS2104:No)、全体制御部601は、全体処理を終了する。
ステップS2105では、全体制御部601は、進入不可エリアデータ取得処理の戻り値である進入不可エリアデータを引数として、図24に後述する方角計算処理を方角計算部604に実行させる(ステップS2105)。
次に、全体制御部601は、方角計算処理の戻り値である方角情報をドローン600に送信する(ステップS2106)。そして、全体制御部601は、全体処理を終了する。これにより、全体制御部601は、進入不可エリアにドローン600が進入しないように、ドローン600に方角情報を提供することができる。
(DLエンジン処理手順)
次に、図22を用いて、情報処理装置100のDLエンジン部602が実行する、DLエンジン処理手順の一例について説明する。DLエンジン処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図22は、DLエンジン処理手順の一例を示すフローチャートである。図22において、DLエンジン部602は、360度カメラ画像を取得する(ステップS2201)。
次に、DLエンジン部602は、取得した360度カメラ画像をピクセル単位の多次元配列データに成形する(ステップS2202)。そして、DLエンジン部602は、ステップS2203の処理に移行する。
ステップS2203では、DLエンジン部602は、学習モデルを選択する(ステップS2203)。次に、DLエンジン部602は、成形した多次元配列データを入力としてニューラルネットワークと選択した学習モデルを用いて推論を実施する(ステップS2204)。
そして、DLエンジン部602は、すべての学習モデルを選択したか否かを判定する(ステップS2205)。ここで、未選択の学習モデルがある場合(ステップS2205:No)、DLエンジン部602は、ステップS2203の処理に戻る。一方で、すべての学習モデルを選択している場合(ステップS2205:Yes)、DLエンジン部602は、ステップS2206の処理に移行する。
ステップS2206では、DLエンジン部602は、推論結果820として、ピクセル単位の確信度を示す多次元配列データを出力する(ステップS2206)。そして、DLエンジン部602は、DLエンジン処理を終了する。これにより、DLエンジン部602は、360度カメラ画像に何の物体が写っているか否かを特定可能にし、360度カメラ画像上の物体の写り方を示し、進入不可エリアデータを検索するキーとして利用可能な多次元配列データを出力することができる。
(進入不可エリアデータ取得処理手順)
次に、図23を用いて、情報処理装置100の進入不可エリアデータ取得部603が実行する、進入不可エリアデータ取得処理手順の一例について説明する。進入不可エリアデータ取得処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図23は、進入不可エリアデータ取得処理手順の一例を示すフローチャートである。図23において、進入不可エリアデータ取得部603は、ピクセル単位の確信度を示す多次元配列データを取得する(ステップS2301)。
次に、進入不可エリアデータ取得部603は、正解データファイルを読み込む(ステップS2302)。そして、進入不可エリアデータ取得部603は、最大類似スコアと類似正解データ行番号とを初期化する(ステップS2303)。
次に、進入不可エリアデータ取得部603は、正解データファイルに含まれる、未処理の正解データを選択する(ステップS2304)。そして、進入不可エリアデータ取得部603は、多次元配列データと、選択した正解データとを比較し、類似スコアを算出する(ステップS2305)。
次に、進入不可エリアデータ取得部603は、最大類似スコア<算出した類似スコアであるか否かを判定する(ステップS2306)。ここで、最大類似スコア<算出した類似スコアではない場合(ステップS2306:No)、進入不可エリアデータ取得部603は、ステップS2304の処理に戻る。一方で、最大類似スコア<算出した類似スコアである場合(ステップS2306:Yes)、進入不可エリアデータ取得部603は、ステップS2307の処理に移行する。
ステップS2307では、進入不可エリアデータ取得部603は、算出した類似スコアを最大類似スコアに設定し、選択した正解データの行番号を類似正解データ行番号に設定する(ステップS2307)。
次に、進入不可エリアデータ取得部603は、すべての正解データを選択したか否かを判定する(ステップS2308)。ここで、未選択の正解データがある場合(ステップS2308:No)、進入不可エリアデータ取得部603は、ステップS2304の処理に戻る。一方で、すべての正解データを選択している場合(ステップS2308:Yes)、進入不可エリアデータ取得部603は、ステップS2309の処理に移行する。
ステップS2309では、進入不可エリアデータ取得部603は、進入不可エリアデータファイルを読み込み、類似正解データ行番号と同じ行番号の進入不可エリアデータを取得する(ステップS2309)。次に、進入不可エリアデータ取得部603は、進入不可エリアデータを出力する(ステップS2310)。
そして、進入不可エリアデータ取得部603は、進入不可エリアデータ取得処理を終了する。これにより、進入不可エリアデータ取得部603は、ドローン600が撮像した360度カメラ画像に写った所定の物体を基準とした進入不可エリアを特定する情報として援用可能な、進入不可エリアデータを出力することができる。
(方角計算処理手順)
次に、図24を用いて、情報処理装置100の方角計算部604が実行する、方角計算処理手順の一例について説明する。方角計算処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図24は、方角計算処理手順の一例を示すフローチャートである。図24において、方角計算部604は、進入不可エリアデータを取得する(ステップS2401)。
次に、方角計算部604は、360度カメラ画像を8分割し、確信度1を含むエリアがある方角を、進入不可方角として特定する(ステップS2402)。そして、方角計算部604は、進入不可方角を示す方角情報を出力する(ステップS2403)。その後、方角計算部604は、方角計算処理を終了する。これにより、方角計算部604は、進入不可エリアにドローン600が進入しないようにするための方角情報を出力することができる。
以上説明したように、情報処理装置100によれば、無人航空機110が有する撮像装置が撮像した撮像画像120から所定の物体を検出することができる。情報処理装置100によれば、記憶部を参照し、検出した所定の物体の撮像画像120上での位置に基づいて、検出した所定の物体を基準とした禁止領域に、無人航空機110が進入する可能性があるか否かを判定することができる。情報処理装置100によれば、進入する可能性があると判定した場合、記憶部を参照し、検出した所定の物体を基準とした禁止領域に関する情報を出力することができる。これにより、情報処理装置100は、無人航空機110の進入が禁止された領域への無人航空機110の進入を抑制することができる。
情報処理装置100によれば、記憶部を参照し、検出した所定の物体の撮像画像120上での位置と、所定の物体の教師画像上での位置を特定する情報とを照合することができる。情報処理装置100によれば、照合した結果に基づいて、所定の物体を基準とした禁止領域を特定する情報を検索することができる。情報処理装置100によれば、検索した情報に基づいて、検出した所定の物体を基準とした禁止領域に、無人航空機110が進入する可能性があるか否かを判定することができる。これにより、情報処理装置100は、所定の物体の写り方が撮像画像120と同様である教師画像に基づく、禁止領域を特定する情報を検索し、検出した所定の物体を基準とした禁止領域を特定するために援用することができる。情報処理装置100は、検索した情報に基づいて、判定精度の向上を図ることができる。
情報処理装置100によれば、検索した情報に基づいて、検出した所定の物体を基準とした禁止領域に無人航空機110が進入しないように無人航空機110の飛行を制御する制御指示を無人航空機110に出力することができる。これにより、情報処理装置100は、無人航空機110が自動で飛行している場合に対し、無人航空機110の進入が禁止された領域への無人航空機110の進入を抑制することができる。
情報処理装置100によれば、検索した情報に基づいて、検出した所定の物体を基準とした禁止領域に無人航空機110が進入しないように無人航空機110を飛行させる操縦指標を出力することができる。これにより、情報処理装置100は、無人航空機110が人の無線操縦により飛行している場合に対し、無人航空機110の進入が禁止された領域への無人航空機110の進入を抑制することができる。
情報処理装置100によれば、撮像画像120上の画素ごとに、所定の物体が写った画素である確率の大きさを示す確信度を算出することができる。情報処理装置100によれば、撮像画像120上の画素ごとに算出した確信度と、所定の物体が写った教師画像上の画素を特定する情報とを照合することができる。情報処理装置100によれば、照合した結果に基づいて、所定の物体を基準とした禁止領域が写った教師画像上の画素を特定する情報を検索することができる。これにより、情報処理装置100は、撮像画像120と教師画像とを直接比較しなくても、撮像画像120と所定の物体の写り方が共通する教師画像に基づく禁止領域を特定する情報を検索可能にすることができる。このため、情報処理装置100は、撮像画像120と教師画像とを直接比較する場合に比べて処理量の低減化を図ることができる。また、情報処理装置100は、教師画像を直接記憶しておかなくてもよいため、記憶領域の使用量の低減化を図ることができる。
情報処理装置100によれば、検索した情報に基づいて、教師画像上の所定範囲内の画素に、所定の物体を基準とした禁止領域が写った教師画像上の画素があるか否かを判定することができる。情報処理装置100によれば、画素があれば、検出した所定の物体を基準とした禁止領域に、無人航空機110が進入する可能性があると判定することができる。これにより、情報処理装置100は、無人航空機110と禁止領域との距離を算出しなくても、禁止領域に無人航空機110が進入する可能性があるか否かを判定可能にすることができる。
情報処理装置100によれば、所定範囲の指定を受け付けることができる。これにより、情報処理装置100は、所定範囲を可変にすることができる。このため、情報処理装置100は、例えば、無人航空機110の速度に合わせて、禁止領域に無人航空機110が進入する可能性があるか否かを判定する精度の向上を図ることができる。また、情報処理装置100は、例えば、利用者の指定に応じて、禁止領域に無人航空機110が進入する可能性の低減化を優先するか、無人航空機110の飛行の自由度を優先するかを変更することができる。
情報処理装置100によれば、所定の物体を基準とした禁止領域を特定する情報に、禁止領域と無人航空機110との位置関係を特定する情報を利用することができる。これにより、情報処理装置100は、教師画像に写った所定の物体を基準とした禁止領域と無人航空機110との位置関係を、検出した所定の物体を基準とした禁止領域と無人航空機110との位置関係に援用することができる。そして、情報処理装置100は、検出した所定の物体を基準とした禁止領域に、無人航空機110が進入する可能性があるか否かを判定することができる。
情報処理装置100によれば、所定の物体を基準とした禁止領域を特定する情報に、禁止領域が存在する方向を特定する情報、および、禁止領域に無人航空機110が進入する可能性があるか否かを示す情報を利用することができる。これにより、情報処理装置100は、教師画像に写った所定の物体を基準とした禁止領域への無人航空機110の進入の可能性の有無を、検出した所定の物体を基準とした禁止領域への無人航空機110の進入の可能性の有無に援用することができる。このため、情報処理装置100は、判定にかかる処理量の低減化を図ることができる。
情報処理装置100によれば、所定の物体が写った1以上の画像を基に、撮像画像120を入力すると撮像画像120上の画素ごとに確信度を出力することが可能なモデルを学習することができる。これにより、情報処理装置100は、学習モデルが、撮像画像120に所定の物体がどのように写っている場合にも適用可能なようにし、確信度の算出精度の向上を図ることができる。
情報処理装置100によれば、記憶部に、複数の物体のそれぞれの物体について、物体が写った教師画像ごとに、物体の教師画像上での位置を特定する情報と、物体を基準とした禁止領域を特定する情報とを対応付けて記憶することができる。これにより、情報処理装置100は、複数の物体のそれぞれの物体を基準とした禁止領域に、無人航空機110が進入しないようにすることができる。
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した情報処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
無人航空機が有する撮像装置が撮像した撮像画像から所定の物体を検出し、
前記所定の物体が写った教師画像ごとに、前記所定の物体の前記教師画像上での位置を特定する情報と、前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域を特定する情報とを対応付けて記憶する記憶部を参照し、検出した前記所定の物体の前記撮像画像上での位置に基づいて、検出した前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域に、前記無人航空機が進入する可能性があるか否かを判定し、
進入する可能性があると判定した場合、前記記憶部に記憶された前記禁止領域を特定する情報に基づき生成される、禁止領域に関する情報を出力する、
処理を実行させることを特徴とする情報処理プログラム。
(付記2)前記コンピュータに、
前記記憶部を参照し、検出した前記所定の物体の前記撮像画像上での位置と、前記所定の物体の前記教師画像上での位置を特定する情報とを照合した結果に基づいて、前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域を特定する情報を検索する、処理を実行させ、
前記判定する処理は、検索した前記禁止領域を特定する情報に基づいて、検出した前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域に、前記無人航空機が進入する可能性があるか否かを判定する、ことを特徴とする付記1に記載の情報処理プログラム。
(付記3)前記出力する処理は、検索した前記禁止領域を特定する情報に基づいて、検出した前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域に前記無人航空機が進入しないように前記無人航空機の飛行を制御する制御指示を前記無人航空機に出力する、ことを特徴とする付記2に記載の情報処理プログラム。
(付記4)前記出力する処理は、検索した前記禁止領域を特定する情報に基づいて、検出した前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域に前記無人航空機が進入しないように前記無人航空機を飛行させる操縦指標を出力する、ことを特徴とする付記2または3に記載の情報処理プログラム。
(付記5)前記記憶部は、前記教師画像ごとに、前記所定の物体が写った前記教師画像上の画素を特定する情報と、前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域が写った前記教師画像上の画素を特定する情報とを対応付けて記憶し、
前記検出する処理は、前記撮像画像上の画素ごとに、前記所定の物体が写った画素である確率の大きさを示す確信度を算出し、
前記検索する処理は、前記撮像画像上の画素ごとに算出した前記確信度と、前記所定の物体が写った前記教師画像上の画素を特定する情報とを照合した結果に基づいて、前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域が写った前記教師画像上の画素を特定する情報を検索する、ことを特徴とする付記2~4のいずれか一つに記載の情報処理プログラム。
(付記6)前記判定する処理は、検索した前記禁止領域を特定する情報に基づいて、前記教師画像上の所定範囲内の画素に、前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域が写った前記教師画像上の画素が含まれる場合、検出した前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域に、前記無人航空機が進入する可能性があると判定する、ことを特徴とする付記5に記載の情報処理プログラム。
(付記7)前記コンピュータに、
前記所定範囲の指定を受け付ける、処理を実行させることを特徴とする付記6に記載の情報処理プログラム。
(付記8)前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域を特定する情報は、前記禁止領域と前記無人航空機との位置関係を特定する情報を含む、ことを特徴とする付記1~4のいずれか一つに記載の情報処理プログラム。
(付記9)前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域を特定する情報は、前記禁止領域が存在する方向を特定する情報、および、前記禁止領域に前記無人航空機が進入する可能性があるか否かを示す情報を含む、ことを特徴とする付記1~4のいずれか一つに記載の情報処理プログラム。
(付記10)前記コンピュータに、
前記所定の物体が写った1以上の画像を基に、前記撮像画像を入力すると前記撮像画像上の画素ごとに前記確信度を出力することが可能なモデルを学習する、処理を実行させることを特徴とする付記5~9のいずれか一つに記載の情報処理プログラム。
(付記11)前記記憶部は、複数の物体のそれぞれの物体について、前記物体が写った教師画像ごとに、前記物体の前記教師画像上での位置を特定する情報と、前記物体を基準とした前記無人航空機の進入が禁止された禁止領域を特定する情報とを対応付けて記憶する、ことを特徴とする付記1~10のいずれか一つに記載の情報処理プログラム。
(付記12)コンピュータが、
無人航空機が有する撮像装置が撮像した撮像画像から所定の物体を検出し、
前記所定の物体が写った教師画像ごとに、前記所定の物体の前記教師画像上での位置を特定する情報と、前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域を特定する情報とを対応付けて記憶する記憶部を参照し、検出した前記所定の物体の前記撮像画像上での位置に基づいて、検出した前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域に、前記無人航空機が進入する可能性があるか否かを判定し、
進入する可能性があると判定した場合、前記記憶部に記憶された前記禁止領域を特定する情報に基づき生成される、禁止領域に関する情報を出力する、
処理を実行することを特徴とする情報処理方法。
(付記13)無人航空機が有する撮像装置が撮像した撮像画像から所定の物体を検出し、
前記所定の物体が写った教師画像ごとに、前記所定の物体の前記教師画像上での位置を特定する情報と、前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域を特定する情報とを対応付けて記憶する記憶部を参照し、検出した前記所定の物体の前記撮像画像上での位置に基づいて、検出した前記所定の物体を基準とした前記無人航空機の進入が禁止された禁止領域に、前記無人航空機が進入する可能性があるか否かを判定し、
進入する可能性があると判定した場合、前記記憶部に記憶された前記禁止領域を特定する情報に基づき生成される、禁止領域に関する情報を出力する、
制御部を有することを特徴とする情報処理装置。