IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニー株式会社の特許一覧

特許7601002画像処理装置、および画像処理方法、並びにプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】画像処理装置、および画像処理方法、並びにプログラム
(51)【国際特許分類】
   H04N 7/18 20060101AFI20241210BHJP
【FI】
H04N7/18 U
【請求項の数】 11
(21)【出願番号】P 2021561221
(86)(22)【出願日】2020-10-21
(86)【国際出願番号】 JP2020039509
(87)【国際公開番号】W WO2021106436
(87)【国際公開日】2021-06-03
【審査請求日】2023-08-31
(31)【優先権主張番号】P 2019214975
(32)【優先日】2019-11-28
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100093241
【弁理士】
【氏名又は名称】宮田 正昭
(74)【代理人】
【識別番号】100101801
【弁理士】
【氏名又は名称】山田 英治
(74)【代理人】
【識別番号】100086531
【弁理士】
【氏名又は名称】澤田 俊夫
(74)【代理人】
【識別番号】100095496
【弁理士】
【氏名又は名称】佐々木 榮二
(74)【代理人】
【識別番号】110000763
【氏名又は名称】弁理士法人大同特許事務所
(72)【発明者】
【氏名】多井 堅一郎
(72)【発明者】
【氏名】大谷 孝英
【審査官】西田 光宏
(56)【参考文献】
【文献】特開2019-106000(JP,A)
【文献】特開2019-032234(JP,A)
【文献】特開2017-116339(JP,A)
【文献】特開2012-194175(JP,A)
【文献】特開2005-233712(JP,A)
【文献】国際公開第2018/043299(WO,A1)
【文献】中国特許出願公開第110174903(CN,A)
【文献】米国特許出願公開第2017/0201617(US,A1)
【文献】特表2008-501955(JP,A)
【文献】特開2019-133450(JP,A)
【文献】特開2013-218459(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00-21/36
G01C 23/00
G01C 25/00
G05D 1/00-1/87
G06F 3/00-3/18
G06T 1/00-19/20
G08G 1/00-99/00
G09G 5/00-5/42
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
移動装置をカメラで撮影した撮影画像を表示した表示部に、前記移動装置の移動経路を表示するデータ処理部を有し、
前記データ処理部は、
前記移動装置の移動経路を示す第1の座標系に従った位置情報を、前記表示部の表示画像の画素位置を特定可能な第2の座標系に変換する座標変換処理を実行し、
前記座標変換処理によって生成した前記第2の座標系に従った位置情報を有する移動経路を表示部に出力する処理を実行し、
前記データ処理部は、
前記座標変換処理に適用する座標変換行列の生成処理において、
前記移動装置の前記第1の座標系対応の位置と、前記移動装置をカメラで撮影した撮影画像における撮像位置との対応関係を示す関係式からなる連立方程式を生成し、
生成した連立方程式から算出されるパラメータを用いて、前記座標変換行列を生成する処理を実行し、
前記連立方程式の生成処理において、複数の異なる位置にある前記移動装置をカメラで撮影した撮影画像を利用した処理を実行する画像処理装置。
【請求項2】
画像処理装置において実行する画像処理方法であり、
前記画像処理装置は、移動装置をカメラで撮影した撮影画像を表示した表示部に、前記移動装置の移動経路を表示するデータ処理部を有し、
前記データ処理部が、
前記移動装置の移動経路を示す第1の座標系に従った位置情報を、前記表示部の表示画像の画素位置を特定可能な第2の座標系に変換する座標変換処理ステップと、
前記座標変換処理ステップにおいて生成した前記第2の座標系に従った位置情報を有する移動経路を表示部に出力する移動経路表示ステップを実行し、
前記データ処理部は、
前記座標変換処理ステップにおいて、
前記移動装置の前記第1の座標系対応の位置と、前記移動装置をカメラで撮影した撮影画像における撮像位置との対応関係を示す関係式からなる連立方程式を生成する連立方程式生成ステップと、
生成した連立方程式から算出されるパラメータを用いて、前記座標変換処理ステップで実行する座標変換処理に適用する座標変換行列を生成する座標変換行列生成ステップを実行し、
前記データ処理部は、
前記連立方程式生成ステップにおいて、
複数の異なる位置にある前記移動装置をカメラで撮影した撮影画像を利用して前記連立方程式を生成する画像処理方法。
【請求項3】
前記移動装置は、ドローンであり、
前記第1の座標系は、NED座標系であり、
前記第2の座標系は、前記移動装置を撮影したカメラに対応するカメラ座標系である請求項2に記載の画像処理方法。
【請求項4】
前記データ処理部は、
前記連立方程式から得られるパラメータを前記座標変換行列の行列要素に設定した座標変換行列を生成する請求項2に記載の画像処理方法。
【請求項5】
前記データ処理部は、
3つの異なる位置にある前記移動装置をカメラで撮影した撮影画像を利用して、3つの関係式からなる前記連立方程式を生成する請求項2に記載の画像処理方法。
【請求項6】
前記データ処理部は、
複数の異なる位置にある前記移動装置をカメラで撮影した撮影画像のカメラの位置または姿勢が異なる場合、
画像撮影時の複数の異なるカメラ座標を1つのカメラ座標に変換する座標変換行列を算出して、算出したカメラ座標変換行列を適用して、複数の異なる位置の移動装置の撮像位置を1つのカメラ座標上に設定する処理を実行する請求項2に記載の画像処理方法。
【請求項7】
前記データ処理部は、
前記移動装置を撮影するカメラの位置姿勢を算出するSLAM(simultaneous localization and mapping)処理を実行して、SLAM処理結果を利用して、前記カメラ座標変換行列を算出する請求項6に記載の画像処理方法。
【請求項8】
前記データ処理部は、
前記SLAM処理の結果に基づいて、
前記SLAM処理に適用する座標系であるワールド座標系と、前記カメラ対応のカメラ座標系との座標変換を行うワールド座標カメラ座標変換行列を算出し、
算出したワールド座標カメラ座標変換行列を適用して、画像撮影時の複数の異なるカメラ座標を1つのカメラ座標に変換する前記カメラ座標変換行列を算出する請求項7に記載の画像処理方法。
【請求項9】
前記データ処理部は、
前記移動装置であるドローン、またはドローンの管理を行うドローン管理サーバから、前記第1の座標系であるNED座標系に従った飛行経路情報を取得し、
取得した飛行経路情報を、前記第2の座標系であるカメラ座標系に変換する請求項2に記載の画像処理方法。
【請求項10】
前記データ処理部は、
移動装置をカメラで撮影した撮影画像を表示した前記表示部に、前記移動装置の移動済み経路と移動予定経路を表示する請求項2に記載の画像処理方法。
【請求項11】
画像処理装置において画像処理を実行させるプログラムであり、
前記画像処理装置は、移動装置をカメラで撮影した撮影画像を表示した表示部に、前記移動装置の移動経路を表示するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
前記移動装置の移動経路を示す第1の座標系に従った位置情報を、前記表示部の表示画像の画素位置を特定可能な第2の座標系に変換する座標変換処理ステップと、
前記座標変換処理ステップにおいて生成した前記第2の座標系に従った位置情報を有する移動経路を表示部に出力する移動経路表示ステップを実行させ、
前記座標変換処理ステップにおいて、
前記移動装置の前記第1の座標系対応の位置と、前記移動装置をカメラで撮影した撮影画像における撮像位置との対応関係を示す関係式からなる連立方程式を生成する連立方程式生成ステップと、
生成した連立方程式から算出されるパラメータを用いて、前記座標変換処理ステップで実行する座標変換処理に適用する座標変換行列を生成する座標変換行列生成ステップを実行させ、
前記連立方程式生成ステップにおいて、
複数の異なる位置にある前記移動装置をカメラで撮影した撮影画像を利用して前記連立方程式を生成させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置、および画像処理方法、並びにプログラムに関する。さらに詳細には、例えばドローン等、移動装置の移動軌跡を実写画像上に正確に表示することを可能とした画像処理装置、および画像処理方法、並びにプログラムに関する。
【背景技術】
【0002】
近年、小型の飛行体であるドローンの利用が急激に増加している。例えば、ドローンにカメラを装着し、上空から地上の風景を撮影する処理等に利用されている。また、荷物の配送にドローンを利用することも計画されており、様々な実験が行われている。
【0003】
現在は、多くの国において、人の監視下、すなわち人が目視できる範囲でコントローラを操作してドローンの飛行制御を行うことが求められている。しかし、将来的には、人の目視による監視が不要な自律飛行型ドローン、すなわち、出発地から目的地に向けて自律的に飛行を行うドローンが多く利用されると想定される。
【0004】
このような自律飛行型のドローンは、例えば管制センターとの通信情報やGPS位置情報を利用して、出発地から目的地に向けて飛行する。
【0005】
自律飛行型のドローンの具体的な利用形態としては、ドローンによる荷物配送がある。ドローンによる荷物配送を行う場合、荷物配送を依頼したユーザは、自分宛の荷物を搭載したドローンの到着予定時刻が近づくと、空を見上げて自分宛の荷物を搭載したドローンを確認し、その飛行経路や飛行予定経路を確認したくなることことが予想される。
【0006】
また、荷物配送以外のドローンであっても、例えば、安全確認のために、上空を飛んでいるドローンの飛行経路を確認したいという要望も発生することが予想される。
【0007】
このようなユーザ要求を実現する処理として、例えばスマホ(スマートホン)等、カメラ付きユーザ端末のカメラで上空にあるドローンの画像を撮影し、この撮影画像を表示部に表示するとともに、その画像にドローンの飛行経路や飛行予定経路を、ドローンの実写画像上に重畳して表示するといった処理が考えられる。
すなわち、ドローンの実画像に飛行経路を示すラインを重畳したAR(Augumented Reality)画像を生成して表示するものである。
【0008】
ドローンの飛行経路や飛行予定経路に関する情報は、ドローン、あるいはドローンの飛行を管理する管制センターから、通信ネットワークを介した通信によってスマホ等のユーザ端末に送信することが可能である。
ドローン、あるいは管制センターは、ドローンの飛行経路や飛行予定経路に関する情報、すなわち飛行経路情報を保持しており、この飛行経路情報をスマホ等のユーザ端末に提供することができる。
【0009】
しかし、ドローンの多くは、GPS衛星の通信情報を用いた位置制御を行う。GPS衛星から得られる位置情報は、緯度情報、経度情報、高さ情報である。ドローンの多くは、これらの情報を利用して飛行を行うため、NED座標系に従った位置確認や飛行制御を行う。
NED座標系は、北(North)、東(East)、下(Down)を3軸として設定した座標系である。
【0010】
ドローン、あるいは管制センターは、ドローンの飛行経路や飛行予定経路に関する情報である飛行経路情報を、このNED座標を適用した経路情報(N,E,D)として保持しており、このNED座標系に従った経路情報がスマホ等のユーザ端末に提供されることになる。
【0011】
一方、スマホ等のユーザ端末に表示されるカメラ撮影画像は、カメラの撮影方向に応じて設定されるカメラ座標系に従った画像データである。
スマホ等のユーザ端末のカメラによって撮影されるドローンの実画像の画像位置は、カメラ座標上の画像位置として特定可能である。しかし、ドローンの実画像位置がNED座標のどの位置に対応するかについては算出が困難である。
【0012】
このように、スマホ等のユーザ端末に表示される実画像であるドローンの位置は、カメラ座標系で特定可能な位置であるが、ドローン、あるいは管制センターから受信するドローンの飛行経路情報は、NED座標系で特定される経路位置情報であり、この経路位置がカメラ座標のどの位置に対応するかについての確認が困難であるという問題がある。
【0013】
この結果、スマホ等のユーザ端末は、ドローン、あるいは管制センターからドローンの飛行経路情報を受信し、この受信情報に基づいて飛行経路を表示部に表示しようとしても、正確な経路を表示できないという問題が発生する。
【0014】
なお、自走ロボットの位置や軌跡を監視カメラ等の定点カメラの撮影画像上にAR表示する構成を開示した従来技術として、例えば特許文献1(特許第5192598号公報)がある。
【0015】
この構成は、自走ロボットや自走ロボットの作業領域内にARタグを設置して、カメラ撮影画像からARタグを認識して、1つの基準座標情報を生成して生成した基準座標情報を用いて自走ロボットの位置や経路を識別可能とした構成を開示している。
【0016】
しかし、この構成は、ARタグを作業領域内に取り付けることが必要であり、また、限定された作業領域内でのみ適用可能な構成である。ドローンのように上空を飛ぶ構成では、上空にARタグを取り付けることは不可能である。
【先行技術文献】
【特許文献】
【0017】
【文献】特許第5192598号公報
【発明の概要】
【発明が解決しようとする課題】
【0018】
本開示は、例えば、上記の問題点に鑑みてなされたものであり、スマホ(スマートホン)等のユーザ端末に、カメラ撮影画像であるドローンの実画像を表示するとともに、この実画像に併せてドローンの飛行経路や飛行予定経路を正確に重畳して表示することを可能とした画像処理装置、および画像処理方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【0019】
本開示の第1の側面は、
移動装置のカメラ撮影画像を表示した表示部に、前記移動装置の移動経路を表示するデータ処理部を有し、
前記データ処理部は、
前記移動装置の移動経路を示す第1の座標系に従った位置情報を、前記表示部の表示画像の画素位置を特定可能な第2の座標系に変換する座標変換処理を実行し、
前記座標変換処理によって生成した前記第2の座標系に従った位置情報を有する移動経路を表示部に出力する画像処理装置にある。
【0020】
さらに、本開示の第2の側面は、
画像処理装置において実行する画像処理方法であり、
前記画像処理装置は、移動装置のカメラ撮影画像を表示した表示部に、前記移動装置の移動経路を表示するデータ処理部を有し、
前記データ処理部が、
前記移動装置の移動経路を示す第1の座標系に従った位置情報を、前記表示部の表示画像の画素位置を特定可能な第2の座標系に変換する座標変換処理を実行し、
前記座標変換処理によって生成した前記第2の座標系に従った位置情報を有する移動経路を表示部に出力する画像処理方法にある。
【0021】
さらに、本開示の第3の側面は、
画像処理装置において画像処理を実行させるプログラムであり、
前記画像処理装置は、移動装置のカメラ撮影画像を表示した表示部に、前記移動装置の移動経路を表示するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
前記移動装置の移動経路を示す第1の座標系に従った位置情報を、前記表示部の表示画像の画素位置を特定可能な第2の座標系に変換する座標変換処理と、
前記座標変換処理によって生成した前記第2の座標系に従った位置情報を有する移動経路を表示部に出力する処理を実行させるプログラムにある。
【0022】
なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
【0023】
本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0024】
本開示の一実施例の構成によれば、ドローンの実写画像上にドローンの飛行経路を正確に表示することを可能とした構成が実現される。
具体的には、例えば、ドローン等の移動装置のカメラ撮影画像を表示した表示部に、移動装置の移動経路を表示するデータ処理部を有する。データ処理部は、移動装置の移動経路を示す第1の座標系、例えばNED座標系に従った位置情報を、表示部の表示画像の画素位置を特定可能な第2の座標系、例えばカメラ座標系に変換する座標変換処理を行う座標変換行列を生成し、生成した座標変換行列を適用した座標変換処理によって生成したカメラ座標系に従った位置情報を有する移動経路を表示部に出力する。
本構成により、ドローンの実写画像上にドローンの飛行経路を正確に表示することを可能とした構成が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
【図面の簡単な説明】
【0025】
図1】ユーザ端末を利用したドローンの撮影処理と、撮影画像に対する経路情報表示処理例について説明する図である。
図2】ユーザ端末の表示部に対するドローンの経路情報表示処理の具体例について説明する図である。
図3】ドローンの飛行経路や飛行予定経路に関する情報である飛行経路情報の送受信例について説明する図である。
図4】ドローンの経路情報表示処理における問題点について説明する図である。
図5】ドローンの経路情報表示が不正確になる理由について説明する図である。
図6】ドローンの経路情報表示が不正確になる理由について説明する図である。
図7】本開示の画像処理装置が実行する処理において利用する複数の座標系について説明する図である。
図8】ある1つの座標系の位置情報を、異なる別の座標系の位置情報に変換する場合の処理の一例について説明する図である。
図9】3つの座標変換行列の例について説明する図である。
図10】本開示の画像処理装置であるユーザ端末が実行する座標変換行列(NED)の算出処理の具体例について説明する図である。
図11】本開示の画像処理装置であるユーザ端末が実行する座標変換行列(NED)の算出処理の具体例について説明する図である。
図12】ピンホールカメラモデルについて説明する図である。
図13】ピンホールカメラモデルについて説明する図である。
図14】本開示の画像処理装置であるユーザ端末が実行する座標変換行列(NED)の算出処理の具体例について説明する図である。
図15】本開示の画像処理装置であるユーザ端末が実行する座標変換行列(NED)の算出処理の具体例について説明する図である。
図16】本開示の画像処理装置であるユーザ端末が実行するAR画像表示例であり、実写画像としてのドローン画像に対して、ずれのないドローンの飛行経路(飛行経路や飛行予定経路)を出力表示した例について説明する図である。
図17】3つの異なる位置にあるドローンの撮影期間中にカメラの位置姿勢が変化することを考慮した処理について説明する図である。
図18】3つの異なる位置にあるドローンの撮影期間中にカメラの位置姿勢が変化することを考慮した処理について説明する図である。
図19】本開示の画像処理装置が実行する処理のシーケンスについて説明するフローチャートを示す図である。
図20】本開示の画像処理装置の記憶部(メモリ)に記録されるデータの例について説明する図である。
図21】本開示の画像処理装置が実行する処理のシーケンスについて説明するフローチャートを示す図である。
図22】本開示の画像処理装置の記憶部(メモリ)に記録されるデータの例について説明する図である。
図23】本開示の画像処理装置が実行する処理のシーケンスについて説明するフローチャートを示す図である。
図24】本開示の画像処理装置であるユーザ端末、およびドローンの構成例について説明する図である。
【発明を実施するための形態】
【0026】
以下、図面を参照しながら本開示の画像処理装置、および画像処理方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
1.ドローンの経路情報表示処理における問題点について
2.本開示の画像処理装置の実行する処理について
3.本開示の画像処理装置が実行する処理のシーケンスについて
4.本開示の画像処理装置、およびドローンの構成例について
5.本開示の構成のまとめ
【0027】
[1.ドローンの経路情報表示処理における問題点について]
まず、図1以下を参照してドローンの経路情報の表示処理における問題点について説明する。
【0028】
先に説明したように、現在のドローンは、多くの国において人の監視下、すなわち人が目視できる範囲でコントローラを操作して飛行制御を行うことが求められている。しかし、将来的には、人の目視による監視が不要な自律飛行型ドローン、すなわち、出発地から目的地に向けて自律的に飛行を行うドローンが利用されると想定される。このような自律飛行型のドローンは、例えば管制センターとの通信情報やGPS位置情報を利用して、出発地から目的地に向けて飛行する。
【0029】
自律飛行型のドローンの具体的な利用形態としてドローンによる荷物配送がある。ドローンによる荷物配送を行う場合、荷物配送を依頼したユーザは、自分宛の荷物を搭載したドローンの到着予定時刻が近づくと、空を見上げて自分宛の荷物を搭載したドローンを確認し、その飛行経路や飛行予定経路を確認したくなることが予想される。
【0030】
このユーザ要求を実現する処理として、例えばユーザがスマホ(スマートホン)等、カメラ付きユーザ端末のカメラで上空にあるドローンの画像を撮影し、この撮影画像を表示部に表示するとともに、その画像にドローンの飛行経路や飛行予定経路を重畳して表示するといった処理が考えられる。
【0031】
図1以下を参照して、この処理の具体例について説明する。
図1には、上空を飛行するドローン20と、カメラ付きスマホ(スマートホン)であるユーザ端末10を持つユーザ1を示している。
ユーザ1は、ユーザ端末10のカメラを上空のドローン20に向けてドローン20の画像を撮影している。
【0032】
図2にユーザ端末10の表示画像の例を示す。
図2に示す画像は、ユーザ端末10のカメラによって撮影された画像であり、ドローン20が表示されている。このドローン20の画像は、実際に上空を飛行している実オブジェクトである。
この実画像にユーザ端末10のデータ処理部が生成した仮想画像としてドローン20の飛行経路や飛行予定経路を示すラインを表示する。
すなわち、ドローンの実画像に飛行経路を示す仮想ラインを、実画像に重畳したAR(Augumented Reality)画像を生成して表示する。
【0033】
図2に示す「飛行経路」は、ドローン20の現在位置までに飛行した飛行済み経路である。また図に示す「飛行予定経路」は、ドローン20の現在位置からの予定の飛行経路である。
図に示す例は、「飛行経路」の末端は、ドローン20の現在位置に一致し、「飛行予定経路」の始点もドローン20の現在位置に一致しており、これらの経路情報が正確に表示されている例である。
ドローン20は、現在位置から「飛行予定経路」に従って飛行し、家の前で着陸してユーザ宛ての荷物を届ける予定であることが分かる。
【0034】
ドローンの飛行経路や飛行予定経路に関する情報は、ユーザ端末がドローン、あるいは管制センターから受信することが可能である。
図3に示すように、ユーザ端末10は、ドローン20、あるいは管制センターであるドローン管理サーバ30から、ドローンの飛行経路や飛行予定経路に関する情報である飛行経路情報を受信することができる。
【0035】
しかし、前述したように、ドローンの多くは、GPS衛星の通信情報を用いた位置制御を行う。GPS衛星から得られる位置情報は、緯度情報、経度情報、高さ情報である。ドローンの多くは、これらの情報を利用して飛行を行うためNED座標系を利用して位置確認や飛行ルートの制御を行うことが多い。
【0036】
NED座標は、北(North)、東(East)、下(Down)を3軸として設定した座標である。
【0037】
図3に示すドローン20、あるいは管制センターであるドローン管理サーバ30は、ドローンの飛行経路や飛行予定経路に関する情報である飛行経路情報を、このNED座標系を適用した経路情報(N,E,D)として保持しており、このNED座標系に従った経路情報がスマホ等のユーザ端末10に提供されることになる。
【0038】
一方、スマホ等のユーザ端末10に表示されるカメラ撮影画像は、カメラの撮影方向に応じて設定されるカメラ座標系に従った画像データである。
スマホ等のユーザ端末10のデータ処理部は、カメラによって撮影されるドローン20の実画像の画像位置を、カメラ座標上の画像位置として特定することができる。しかし、ドローン20の実画像位置がNED座標のどの位置に対応するかについては算出できない。
【0039】
このように、スマホ等のユーザ端末10に表示される実画像であるドローン20の位置は、カメラ座標系で特定可能な位置であるが、ドローン20やドローン管理サーバ30から受信するドローン20の飛行経路情報は、NED座標系で特定される経路位置情報であり、この経路位置がカメラ座標のどの位置に対応するかについては正確な解析を行うことができない。
【0040】
この結果、スマホ等のユーザ端末10は、ドローン20やドローン管理サーバ30からドローン20の飛行経路情報を受信し、この受信情報に基づいて飛行経路を表示部に表示しようとしても、正確な経路を表示できない。
例えば図4に示すように、「飛行経路」や「飛行予定経路」が、ドローン20の現在位置からずれた経路として表示されるといった問題が発生する。
【0041】
この理由は、図5に示すように、スマホ等のユーザ端末10に表示されるカメラ撮影画像は、カメラの撮影方向に応じて設定されるカメラ座標系に従った画像データであるのに対して、ドローン20やドローン管理サーバ30から受信するドローン20の飛行経路情報は、NED座標系の位置情報であるからである。
【0042】
この結果、図6に示すように、カメラ座標系(Xc,Yc,Zc)に従ったカメラ撮影画像上に、NED座標系(N,E,D)に従った経路情報を表示しようとしても、カメラ座標系とNED座標系との対応関係が不明であるため、正確な経路位置を表示することができない。
【0043】
[2.本開示の画像処理装置の実行する処理について]
次に、本開示の画像処理装置の実行する処理について説明する。
【0044】
本開示の画像処理装置は、例えばユーザの所有するスマホ等のユーザ端末10であり、カメラ座標系(Xc,Yc,Zc)に従ったカメラ撮影画像、例えばドローンを撮影した撮影画像上に、そのドローンのNED座標系(N,E,D)に従った経路情報を正確に表示する処理を実行する。
【0045】
本開示の画像処理装置であるユーザ端末10は、ドローン20やドローン管理サーバ30から受信するドローン20の飛行経路情報、すなわちNED座標系の飛行経路位置をカメラ撮影画像の座標系であるカメラ座標系の位置情報に変換する。その後、カメラ座標系の位置情報に変換した飛行経路を示すラインを、カメラ撮影画像上に表示する。
これらの処理を行うことで、ドローンを撮影した撮影画像上に、そのドローンの経路情報を正確に表示することが可能となる。
【0046】
まず、図7を参照して、本開示の画像処理装置が実行する処理において利用する複数の座標系について説明する。
図7には以下の3つの座標系を示している。
(1)カメラ座標系
(2)NED座標系
(3)ワールド座標系(SLAM座標系)
【0047】
(1)カメラ座標系は、ユーザ端末10のカメラ撮影画像の画像位置(画素位置)を定義可能な座標系である。カメラ座標系は、カメラの焦点を原点Cとして、像平面がXc,Ycの二次元平面、光軸方向(奥行き)をZcとした座標系であり、カメラの動きによって原点Cは移動する。例えばC-MOS等の撮像素子の横軸をXc軸、縦軸をYc軸、光軸方向Zc軸とした座標系である。表示部の2次元平面(UV平面)は、カメラ座標のXcYc平面に相当する。
【0048】
(2)NED座標系は、ドローン20の位置や飛行経路の位置を示し、ドローン20の飛行制御に用いられる座標系である。
ドローン20の多くは、GPS衛星の通信情報を用いた位置制御を行う。GPS衛星から得られる位置情報は、緯度情報、経度情報、高さ情報であり、ドローンの多くは、これらの情報を利用して飛行を行うためNED座標系を利用する。
【0049】
NED座標系は、北(North)、東(East)、下(Down)を3軸として設定した座標である。
ドローン20、あるいは管制センター等のドローン管理サーバ30は、ドローン20の飛行経路や飛行予定経路に関する情報である飛行経路情報を、NED座標系の経路情報(N,E,D)として保持しており、このNED座標に従った経路情報がスマホ等のユーザ端末10に提供されることになる。
【0050】
(3)ワールド座標系(SLAM座標系)は、主に3次元グラフッィクにおいて利用する空間全体を定義する座標系として用いられる。
本開示の処理では、ワールド座標系は、ユーザ端末10が実行するSLAM処理、すなわち、カメラ位置同定(ローカリゼーション)と環境地図作成(mapping)を並行して実行するSLAM(simultaneous localization and mapping)処理に適用する座標系(SLAM座標系)である。
【0051】
図7の中央下部に説明しているように、表示画像の各画素位置(u,v)は、カメラ座標系のXY座標(Xc,Yc)と一対一で対応する。
従って、NED座標系で示された飛行経路の位置を、カメラ座標系で示される位置に変換できれば、カメラ座標系で示される表示画像上に経路を正確に出力できる。
【0052】
図8は、ある1つの座標系の位置情報を、異なる別の座標系の位置情報に変換する場合の処理の一例について説明する図である。
図8に示す例は、ワールド座標系のある位置情報(Xw,Yw,Zw)を、カメラ座標系の位置情報(Xc,Yc,Zc)に変換するために必要となる座標変換行列、
Ws
を示している。
【0053】
図8中央上部に示す3次元空間上の1つの点(X)についてのワールド座標系(SLAM座標系)の位置と、カメラ座標系の位置をそれぞれ以下のように表現する。
ワールド座標系(SLAM座標系)の位置:Ws
カメラ座標系の位置:
【0054】
ここで、3次元空間上の1つの点(x)のワールド座標系(SLAM座標系)の位置(Ws)を、カメラ座標系の位置()に変換する座標変換行列を、
Ws
とする。
【0055】
図8下部に示すように、3次元空間上の1つの点(x)のワールド座標系(SLAM座標系)の位置(Ws)を、カメラ座標系の位置()に変換する式は、以下の(式1)によって示すことができる。
Ws×Ws ・・・(式1)
【0056】
ここで、ワールド座標系(SLAM座標系)の位置(Ws)を、カメラ座標系の位置()に変換する座標変換行列、
Ws
この座標変換行列は、以下の行列式(式2)として示すことができる。
【0057】
【数1】
【0058】
なお、上記(式2)において、
Wsは、ワールド座標系(SLAM座標系)定義の姿勢をカメラ座標系定義の姿勢に変換する回転行列、
Wsは、ワールド座標系(SLAM座標系)でのカメラ位置、
である。
なお、カメラ位置とは本例ではユーザ端末10のカメラの位置に相当する。
【0059】
上記(式2)に示す座標変換行列Wsは、ワールド座標系(SLAM座標系)の位置(Ws)を、カメラ座標系の位置()に変換する座標変換行列である。
先に図7を参照して説明したように、本開示の処理では、3つの異なる座標系、すなわち、
(1)カメラ座標系
(2)NED座標系
(3)ワールド座標系(SLAM座標系)
これらの座標系を利用した処理を実行する。
【0060】
これらの3つの座標系の座標変換行列の例を図9に示す。
図9には、以下の3つの座標変換行列を示している。
Ws:ワールド座標系(SLAM座標系)の位置(Ws)を、カメラ座標系の位置()に変換する座標変換行列、
NED:NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列、
WsNED:NED座標系の位置(NED)を、ワールド座標系(SLAM座標系)の位置(Ws)に変換する座標変換行列、
【0061】
なお、これら3つの座標変換行列各々の座標変換行列は、他の2つの座標変換行列から算出可能である。例えば、
NED座標系の位置(NED)を、ワールド座標系(SLAM座標系)の位置(Ws)に変換する座標変換行列:WsNEDは、他の2つの座標変換行列(WsNED)を用いて、以下の式に従って算出することができる。
WsNEDWs -1×NED
【0062】
なお、Ws -1は、Wsの逆行列であり、Wsから算出可能な行列である。
上記と同様、
ワールド座標系(SLAM座標系)の位置(Ws)を、カメラ座標系の位置()に変換する座標変換行列Wsは、他の2つの座標変換行列(WsNEDNED)を用いて、以下の式に従って算出することができる。
WsNED×WsNED -1
【0063】
また、NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列NEDは、他の2つの座標変換行列(WsNEDWs)を用いて、以下の式に従って算出することができる。
NEDWs×WsNED
【0064】
先に図7を参照して説明したように、ユーザ端末10の表示部に表示される表示画像の各画素位置(u,v)は、カメラ座標系のXY座標(Xc,Yc)と一対一で対応し、NED座標系で示された飛行経路の位置は、カメラ座標系の位置に変換できれば、カメラ座標系で示される表示画像上に経路を正確に出力できる。
【0065】
すなわち、NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列、
NED
この座標変換行列を算出できれば、NED座標系で示された飛行経路位置を、カメラ座標系の位置に変換することが可能となり、カメラ座標系で示される表示画像上にドローンの飛行経路を正確に出力できる。
本開示の画像処理装置であるユーザ端末10は、この座標変換行列:NEDを算出する。
【0066】
図10以下を参照して本開示の画像処理装置であるユーザ端末10が実行する座標変換行列:NEDの算出処理の具体例について説明する。
【0067】
図10に示すように、ユーザは、ユーザ端末10を用いて上空を飛行するドローン20を所定時間、撮影する。このドローン20は、ユーザに配送する荷物を搭載したドローンでなくてもよい。ただし、ドローンの飛行経路位置情報(NED座標上の位置情報)を取得可能なドローンであることが必要である。
図10に示す例では、ドローン20は、時間(t1),(t2),(t3)の時間経過に従って右から左に飛行している。
【0068】
ユーザ端末10のデータ処理部は、少なくとも3つの異なる位置にあるドローンの撮影画像位置をメモリに記録する。
図11に示すように、例えばC-MOS等のカメラ撮像面51における3つの異なる位置のドローンに対応するドローン撮像位置52-1~3をメモリに記録する。
なお、ドローン撮像位置は表示部に表示される表示画像位置に対応しており、ここでは、表示画像上の座標位置(u1,v1)~(u3,v3)を利用した処理例を示している。
【0069】
これら3つの異なるドローン位置と、これら3つのドローン位置に対応する3つのドローン撮像位置の情報を利用することで、座標変換行列:NEDを算出することができる。
【0070】
具体的な座標変換行列(NED)の算出処理の説明の前に、図12図13を参照して、3次元空間上のオブジェクトを一般的なカメラ(ピンホールカメラ)で撮影した場合のオブジェクトの3次元位置Mと、そのオブジェクトのカメラの撮像面上の撮像位置(撮像画素位置)mとの関係を定義した関係式であるピンホールカメラモデルについて説明する。
【0071】
ピンホールカメラモデルにおいて、撮影被写体であるオブジェクトの3次元位置Mと、そのオブジェクトのカメラの撮像位置(撮像画素位置)mとの関係式は、以下の(式3)で表される。
【0072】
【数2】
【0073】
上記(式3)の意味について図12図13を参照して説明する。
図12に示すように、撮影被写体であるオブジェクト61をカメラで撮影した場合、カメラのカメラ撮像面(C-MOS等)51にはオブジェクト画像62が撮影される。
上記(式3)は、カメラの撮影画像に含まれるオブジェクト画像62の点(m)のカメラ撮影画像平面の画素位置、すなわち、カメラ座標系によって表現される位置と、ワールド座標系におけるオブジェクト61の3次元位置(M)との対応関係を示す式である。
【0074】
カメラ撮影画像に含まれるオブジェクト画像62の点(m)の位置(画素位置)はカメラ座標系によって表現される。カメラ座標系は、カメラの焦点を原点Cとして、像平面がXc,Ycの二次元平面、光軸方向(奥行き)をZcとした座標系であり、カメラの動きによって原点Cは移動する。
【0075】
一方、撮影被写体であるオブジェクト61の3次元位置(M)は、カメラの動きによって移動しない原点Oを有するXwYwZw三軸からなるワールド座標系によって示される。この異なる座標系でのオブジェクトの位置の対応関係を示す式が上記(式3)のピンホールカメラモデルとして定義される。
【0076】
この(式3)に値は、図13に示すように、以下の各パラメータが含まれる。
λ:正規化パラメータ
A:カメラ内部パラメータ、
Cw:カメラ位置、
Rw:カメラ回転行列、
さらに、
【0077】
【数3】
【0078】
は、同次座標系で表現されたカメラの撮像平面上の位置である。
λは、正規化パラメータであり、
【0079】
【数4】
【0080】
の第3項を満足させるための値であり、計算式により算出可能である。
【0081】
なお、カメラ内部パラメータAは、図13に示すように、以下の行列式である。
【0082】
【数5】
【0083】
カメラ内部パラメータAには、以下の値が含まれる。
f:焦点距離
θ:画像軸の直交性(理想値は90°)
:縦軸のスケール(3次元位置のスケールから二次元画像のスケールへの変換)
:横軸のスケール(3次元位置のスケールから二次元画像のスケールへの変換)
(u,v):画像中心位置
【0084】
先に説明した(式3)、すなわち、撮影被写体であるオブジェクトの3次元位置Mと、そのオブジェクトのカメラの撮像位置(撮像画素位置)mとの関係式である(式3)に含まれる、
Cw:カメラ位置、
Rw:カメラ回転行列、
これらのパラメータは、ユーザ端末10が実行するSLAM処理、すなわち、カメラ位置同定(ローカリゼーション)と環境地図作成(mapping)を並行して実行するSLAM(simultaneous localization and mapping)処理において取得することができる。
【0085】
SLAM処理は、カメラで画像(動画像)を撮影し、複数の撮影画像に含まれる特徴点の軌跡を解析することで、特徴点の3次元位置を推定するとともに、カメラ(自己)の位置姿勢を推定(ローカリゼーション)する処理であり、特徴点の3次元位置情報を用いて周囲の地図(環境地図)を作成(mapping)することができる。このように、カメラ(自己)の位置同定(ローカリゼーション)と周囲の地図(環境地図)の作成(mapping)を並行して実行する処理がSLAMと呼ばれる。
【0086】
なお、SLAM手法の1つとして、EKF(拡張カルマンフィルタ:Extended Kalman Filter)を使用したEKFベースのSLAMがある。
EKFベースのSLAMは、例えばカメラを移動させながら画像を連続的に撮影し、各画像に含まれる特徴点の軌跡(トラッキング情報)を求め、移動ステレオ法でカメラの移動量と特徴点の3次元位置を同時に推定する方法である。
【0087】
このEKFベースのSLAM処理では、例えば、
カメラの位置、姿勢、速度、角速度、
各特徴点の位置情報、
これらの各情報を含む確率分布モデルとしての多次元正規分布データからなる「状態データ」を利用する。カルマンフィルタや拡張カルマンフィルタを用いて「状態データ」の更新処理を行って、特徴点位置、カメラ位置等を推定する。
【0088】
「状態データ」は、カメラの位置、姿勢、速度、角速度と、各特徴点の位置情報を示す平均ベクトルと分散共分散行列を含む多次元正規分布データによって構成される。分散共分散行列は、カメラの位置、姿勢、速度、角速度、各特徴点の位置情報、これらの固有状態値の[分散]と、上記各状態値の異なる状態値の組み合わせの相関情報に対応する[共分散]を含む行列である。
【0089】
上述した(式3)に含まれるパラメータ、すなわち、
λ:正規化パラメータ
A:カメラ内部パラメータ、
Cw:カメラ位置、
Rw:カメラ回転行列、
これらのパラメータ中、λ、Aは既知であり、Cw,RwはSLAMによって算出することが可能となる。
【0090】
これらパラメータを用いて、撮影被写体であるオブジェクトの3次元位置Mと、そのオブジェクトのカメラの撮像位置(撮像画素位置)mとの関係式、すなわち、上記(式3)を生成することが可能となり、ワールド座標系で示される撮影被写体であるオブジェクトの3次元位置Mと、カメラ座標系で示されるオブジェクト撮像位置との対応関係を解析することができる。
【0091】
上記(式3)は、
(1)ワールド座標系で示されるオブジェクト位置(M)、
(2)カメラ座標系で示されるオブジェクト撮像位置(m)、
これら、ワールド座標系とカメラ座標系の2つの異なる座標系における各点(M.m)の位置関係を示す式であるが、この(式3)に示す関係式は、ワールド座標系とカメラ座標系の組み合わせに限らず、その他の2つの異なる座標系の組み合わせにおける2つの点(M.m)の位置関係を示す関係式としても展開できる。
【0092】
具体的には、例えば、
(1)NED座標系で示されるオブジェクト位置(M)、
(2)カメラ座標系で示されるオブジェクト撮像位置(m)、
これらNED座標系とカメラ座標系の2つの異なる座標系における各点(M.m)の位置関係を示す式に展開することも可能である。
【0093】
この場合の関係式、すなわち、
(1)NED座標系で示されるオブジェクト位置(M)、
(2)カメラ座標系で示されるオブジェクト撮像位置(m)、
これらNED座標系とカメラ座標系の2つの異なる座標系における各点(M.m)の位置関係を示す関係式は、以下の(式4)として示すことができる。
【0094】
【数6】
【0095】
上記(式4)は、先に説明した(式3)のワールド座標系対応のパラメータ、すなわち、
Rw:カメラ回転行列、
M:オブジェクト位置、
Cw:カメラ位置、
これらのパラメータを、NED座標系のパラメータに変更した式に相当する。
すなわち、上記パラメータを、以下のNED座標系のパラメータに変更した式である。
NED:カメラ回転行列、
NED:オブジェクト位置、
NED:カメラ位置、
【0096】
この(式4)に示す関係式は、NED座標系のオブジェクト位置と、そのオブジェクトをカメラ撮影した際の撮像素子におけるオブジェクト撮像位置であるカメラ座標系のオブジェクト撮像位置との対応関係を定義した式である。
この関係式を用いることで、NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列、
NED
この座標変換行列を算出することができる。
【0097】
先に図7を参照して説明したように、ユーザ端末10の表示部に表示される表示画像の各画素位置(u,v)は、カメラ座標系のXY座標(Xc,Yc)と一対一で対応し、NED座標系で示された飛行経路の位置は、カメラ座標系の位置に変換できれば、カメラ座標系で示される表示画像上に経路を正確に出力できる。
【0098】
NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列NEDの算出処理の具体例について説明する。
【0099】
図14(1)は、先に図10図11を参照して説明したと同様の図である。ユーザは、ユーザ端末10を用いて上空を飛行するドローン20を所定時間、撮影する。このドローン20は、ユーザに配送する荷物を搭載したドローンでなくてもよい。ただし、ドローンの飛行経路位置情報(NED座標上の位置情報)を取得可能なドローンであることが必要である。
図14(1)に示す例では、ドローン20は、時間(t1),(t2),(t3)の時間経過に従って右から左に飛行している。
【0100】
ユーザ端末10のデータ処理部は、少なくとも3つの異なる位置にあるドローンの撮影画像位置をメモリに記録する。
図14に示すように、例えばC-MOS等のカメラ撮像面51における3つの異なる位置のドローンに対応するドローン撮像位置52-1~3をメモリに記録する。
【0101】
時間(t1),(t2),(t3)のNED座標系のドローン位置を、以下のように示す。
時間(t1)のドローン位置=NEDDronet1
時間(t2)のドローン位置=NEDDronet2
時間(t3)のドローン位置=NEDDronet3
【0102】
また、時間(t1),(t2),(t3)のカメラ座標系の撮像位置を以下のように示す。
時間(t1)のドローン撮像位置=mDronet1
時間(t2)のドローン撮像位置=mDronet2
時間(t3)のドローン撮像位置=mDronet3
なお、上記において、m上部の(~)を省略して示している。これらのドローン撮像位置は、3次元の同次座標系で示されるカメラ座標系の位置情報である。
【0103】
先に説明した(式4)、すなわち、NED座標系のオブジェクト位置と、そのオブジェクトをカメラ撮影した際の撮像素子におけるオブジェクト撮像位置であるカメラ座標系のオブジェクト撮像位置との対応関係を定義した(式4)を、
NED座標系のドローン位置NEDDrone
NED座標系のカメラ位置NED
カメラ座標系のドローン撮像位置=mDrone
これらのパラメータを用いて示すと、以下の(式5)として示すことができる。
【0104】
【数7】
【0105】
さらに、上記(式5)に基づいて、以下の(式6)が導かれる。
【0106】
【数8】
【0107】
なお、
NEDは、NED座標系をカメラ座標系に変換するための回転行列:NEDの転置行列である。
-1は、先に図13を参照して説明したカメラ内部パラメータAの逆行列である。
【0108】
図14に示す時間(t1)~(t3)の3つの異なるNED座標系のドローン位置と、これらドローン位置に対応するカメラ座標系のドローン撮像位置を、上記(式6)に代入すると、以下の(式7)に示す3つの式からなる連立方程式が得られる。
【0109】
【数9】
【0110】
上記(式7)の連立方程式中、以下の各パラメータは既知である。
NED座標系のドローン位置:NEDDroneは、ドローン、またはドローン管理サーバから取得できる。
カメラ内部パラメータAの逆行列A-1は、既知である。
時間(t1)~(t3)のドローン撮像位置=mDronet1~mDronet3、これらは、カメラ撮像系の座標位置情報であり、カメラの撮像画像の解析によって取得できる。
【0111】
従って、上記(式7)に示す連立方程式中の未知のパラメータは、
NED座標系のカメラ位置:NED
NED座標系をカメラ座標系に変換するための回転行列:NEDの転置行列: NED
正規化係数:λt1,λt2,λt3
これらの各パラメータとなる。
【0112】
ここで、上記(式7)に示す連立方程式中の未知のパラメータは、
NED座標系のカメラ位置:NED
NED座標系をカメラ座標系に変換するための回転行列:NEDの転置行列: NED
正規化係数:λt1,λt2,λt3
これらの9個のパラメータ(位置3要素、姿勢3要素、正規化係数3つ)となり、3つの式(情報量は9)からなる連立方程式を解くことで、これらのパラメータの値を算出することができる。
【0113】
この算出パラメータの値を用いることで、図15に示すように、NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列(NED)を算出することができる。
【0114】
図15(3)に示す座標変換行列(NED)、すなわちNED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列(NED)は、先に図8を参照して説明したNED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列(NED)の行列要素中のワールド座標系の要素をNED座標系の要素に置き換えた行列である。
【0115】
すなわち、NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列(NED)は、以下の(式8)として示すことができる。
【0116】
【数10】
【0117】
上記(式8)に示す座標変換行列(NED)の行列要素は、上記(式7)に示す連立方程式を解くことによって得られるパラメータによって構成されている。
従って、上記(式7)に示す連立方程式を解くことで、NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列(NED)を算出することができる。
【0118】
このように、本開示の画像処理装置であるユーザ端末10は、まず、図14(1)や図15(1)に示す時間(t1)~(t3)の3つの異なるNED座標系のドローン位置と、これらドローン位置に対応するカメラ座標系のドローン撮像位置を取得する。
【0119】
次に、上記(式7)に示す連立方程式を解き、以下の未知パラメータを取得する。
NED座標系のカメラ位置:NED
NED座標系をカメラ座標系に変換するための回転行列:NEDの転置行列: NED
【0120】
次に、算出したパラメータを用いて座標変換行列(NED)、すなわち、NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列(NED)を生成する。
【0121】
この座標変換行列(NED)を用いることで、NED座標系で示された飛行経路の位置を、カメラ座標系で示される位置に変換することができる。
【0122】
先に図3図5を参照して説明したように、本開示の画像処理装置であるユーザ端末10は、ドローン20、またはドローン20のコントロール等を行う管制センターとしてのドローン管理サーバ30からNED座標系で示された飛行経路情報を取得することができる。
【0123】
ユーザ端末10は、取得したNED座標系で示された飛行経路情報に対して、上記(式8)で示される座標変換行列NEDを適用して、カメラ座標系で示される飛行経路位置を取得することが可能となり、取得したカメラ座標系で示される飛行経路位置(飛行経路や飛行予定経路)を、実写画像、すなわちドローン実画像を含む画像上に出力する。
【0124】
この結果として、図16に示すように、実写画像としてのドローン画像に対して、ずれのないドローンの飛行経路(飛行経路や飛行予定経路)を出力表示することが可能となる。
図16に示す画像表示例は、本開示の画像処理装置であるユーザ端末10が実行するAR画像表示例であり、実写画像としてのドローン画像に対して、ずれのないドローンの飛行経路(飛行経路や飛行予定経路)を出力表示した例について説明する図である。
【0125】
なお、上述した処理は3つの異なる位置にあるドローンの撮影期間中、すなわち、図14(1)や図15(1)に示す時間(t1)~(t3)のドローン撮影時間において、カメラの位置姿勢が不変であることを前提とした処理である。
【0126】
3つの異なる位置にあるドローンの撮影期間中に、カメラの位置姿勢が変化する場合には、カメラの位置姿勢の変化を考慮した処理を行う必要がある。
以下、図17を参照して、この処理例について説明する。
この処理例においても、3つの異なるNED座標系のドローン位置と、これらドローン位置に対応するカメラ座標系のドローン撮像位置を取得して、これらの取得情報に基づいて、NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列(NED)を生成する。
【0127】
ドローンの撮影期間中に、カメラの位置姿勢が変化する場合、図17(1)に示すように、異なる位置のドローン20を撮影するカメラの位置や姿勢が異なることになる。
図17(1)に示す例では、時間(t1)のドローンを撮影するカメラの撮像面は、カメラ撮像面51(t1)であり、時間(t2)のドローンを撮影するカメラの撮像面は、カメラ撮像面51(t2)であり、これらは異なる位置や姿勢を持つ。
【0128】
ここで、ワールド座標系(SLAM座標系)を、時間(t1)のカメラ座標系に変換する座標変換行列を(Ct1Ws)とする。
また、ワールド座標系(SLAM座標系)を、時間(t2)のカメラ座標系に変換する座標変換行列を(Ct2Ws)とする。
【0129】
なお、ワールド座標系(SLAM座標系)を、時間(tn)のカメラ座標系に変換する座標変換行列(CtnWs)は、先に図8を参照して説明した3次元空間上の1つの点(x)のワールド座標系(SLAM座標系)の位置(Ws)を、カメラ座標系の位置()に変換する座標変換行列(Ws)との時間(n)対応する行列である。
【0130】
この時間(tn)のカメラ座標系に変換する座標変換行列(CtnWs)を構成する行列要素は、ユーザ端末10が実行するSLAM処理、すなわち、カメラ位置同定(ローカリゼーション)と環境地図作成(mapping)を並行して実行するSLAM(simultaneous localization and mapping)処理において取得することができる。
【0131】
従って、図17に示すワールド座標系(SLAM座標系)を、時間(t1)のカメラ座標系に変換する座標変換行列をCt1Wsや、
ワールド座標系(SLAM座標系)を、時間(t2)のカメラ座標系に変換する座標変換行列(Ct2Ws)、
これら、時間(tn)の座標変換行列(CtnWs)は、それぞれSLAM処理によって算出可能となる。
【0132】
また、時間(t1)のカメラ座標系を時間(t2)のカメラ座標系に変換する座標変換行列は、(Ct2Ct1)であり、
Ct2Ct1Ct2Ws×Ct1Ws -1
として算出することができる。
【0133】
本開示の画像処理装置であるユーザ端末10は、時間(t1)のドローンを撮影した時間(t1)のカメラの撮像面のドローン撮像位置に対して、上記座標変換行列:Ct2Ct1を適用した座標変換を行う。この座標変換により、時間(t1)のカメラ座標系のドローン撮像位置は、時間(t2)のカメラ座標系のドローン撮像位置に変換される。
また、時間(t1)のカメラの撮像面に変換するドローンの位置、
NEDP'Dronet1
は、下記式で表現できる。
NEDP'Dronet1NEDDronet1+(Ct2 NED)・(Ct2Ct1)・(Ct1Ct2
この結果、2つの異なるカメラ座標系上のドローン撮像位置は、1つの共通のカメラ座標系に従ったドローン撮像位置に変換することができる。
【0134】
3つの異なるドローン位置に対応するドローン撮像位置について、上記処理を行うことで、1つの共通のカメラ座標系上に3つの異なるドローン位置に対応するドローン撮像位置を設定することが可能となる。
【0135】
3つの異なる位置のドローンを撮影するカメラの位置姿勢が異なる場合の例を図18(1)に示す。
図18(1)に示すように時間(t1),(t2),(t3)において、カメラ(ユーザ端末10)の位置姿勢が異なり、それぞれ異なる位置姿勢のカメラによって時間(t1),(t2),(t3)のドローン20の撮影を行う。
【0136】
最新の時間(t3)においてドローン20の飛行経路や飛行予定経路を出力する場合ものとする。この場合、ユーザ端末10のデータ処理部は、以下の処理を実行する。
(1)時間(t1)のドローン撮像位置に対して、座標変換行列(Ct3Ct1)を適用した座標変換を行う方程式を立てる。
(2)時間(t2)のドローン撮像位置に対して、座標変換行列(Ct3Ct2)を適用した座標変換を行う方程式を立てる。
これらの座標変換処理によって、時間(t1)、(t2)のカメラ座標系のドローン撮像位置は、時間(t3)のカメラ座標系のドローン撮像位置に変換される。
これらの方程式を立てることで、1つの共通のカメラ座標系(時間(t3)のカメラ座標系)上に3つの異なるドローン位置に対応するドローン撮像位置を設定する連立方程式を立てることが可能となる。
【0137】
すなわち、1つの共通のカメラ座標系(時間(t3)のカメラ座標系)上に、以下の3つのドロー撮像位置を設定する連立方程式を立てることができる。
時間(t1)のドローン撮像位置=mDronet1
時間(t2)のドローン撮像位置=mDronet2
時間(t3)のドローン撮像位置=mDronet3
なお、上記において、m上部の(~)を省略して示している。これらのドローン撮像位置は、3次元の同次座標系で示されるカメラ座標系の位置情報である。
【0138】
その後は、先に図14図15を参照して説明した処理と同様の処理を実行する。
まず、図18(2)に示すように、上記の時間(t1)~(t3)のドローン撮像位置=mDronet1~mDronet3と、NED座標系のドローン位置との対応関係式からなる連立方程式、すなわち、先に説明した(式7)の連立方程式を生成する。
【0139】
次に、この連立方程式を解いて得られるパラメータを用いて、図18(3)に示す座標変換行列(NED)、すなわち、NED座標系の位置(NED)を、カメラ座標系の位置()に変換する座標変換行列(NED)を算出する。
【0140】
この座標変換行列(NED)を用いることで、NED座標系で示された飛行経路の位置を、カメラ座標系で示される位置に変換し、取得したカメラ座標系で示される飛行経路位置(飛行経路や飛行予定経路)を、実写画像、すなわちドローン実画像を含む画像上に出力する。
なお、図18の例では、時間(t3)のカメラ撮影画像上に飛行経路位置(飛行経路や飛行予定経路)を出力することになる。
【0141】
なお、その後、時間(t4),(t5)・・・と継続的に飛行経路位置(飛行経路や飛行予定経路)を出力する場合は、上述した処理を継続して実行すればよい。
【0142】
時間(t4)のカメラ撮影画像上に飛行経路位置(飛行経路や飛行予定経路)を出力する場合は、時間(t2),(t3),(t4)のドローン撮像位置=mDronet2~mDronet4と、NED座標系のドローン位置との対応関係式からなる連立方程式、すなわち、先に説明した(式7)の連立方程式を生成する。
【0143】
時間(t5)のカメラ撮影画像上に飛行経路位置(飛行経路や飛行予定経路)を出力する場合は、時間(t3),(t4),(t5)のドローン撮像位置=mDronet3~mDronet5と、NED座標系のドローン位置との対応関係式からなる連立方程式、すなわち、先に説明した(式7)の連立方程式を生成する。
【0144】
以下、同様の処理を継続して実行すれば、カメラの動きに応じて、カメラ撮影画像上の飛行経路位置(飛行経路や飛行予定経路)も移動し、正しい飛行経路の出力が継続して実行されることになる。
【0145】
[3.本開示の画像処理装置が実行する処理のシーケンスについて]
次に、本開示の画像処理装置が実行する処理のシーケンスについて説明する。
【0146】
図19以下に示すフローチャートは、本開示の画像処理装置、例えばスマホ等のユーザ端末10が実行する処理シーケンスについて説明するフローチャートを示す図である。
【0147】
図19以下に示すフローに従った処理は、画像処理装置内部のメモリに格納されたプログラムに従って、画像処理装置のプログラム実行機能を持つCPU等から構成される制御部(データ処理部)の制御の下で実行可能である。
以下、図19以下に示すフローの各ステップの処理について、順次、説明する。
【0148】
なお、図19に示すステップS111~S114の処理と、ステップS121~S123の処理は並列に実行可能な処理である。
まず、ステップS111~S114の処理について説明する。
【0149】
(ステップS111)
ステップS111の処理は、ユーザ端末10による上空のドローン撮影処理である。
時間t(n)において、例えばスマホ等のユーザ端末10のカメラを用いて、飛行中のドローン20を撮影する。
【0150】
すなわち、先に図10図11を参照して説明したように、飛行中のドローン20を撮影する。
図10に示すように、ユーザは、ユーザ端末10を用いて上空を飛行するドローン20を所定時間、撮影する。このドローン20は、ユーザに配送する荷物を搭載したドローンでなくてもよい。ただし、ドローンの飛行経路位置情報(NED座標上の位置情報)を取得可能なドローンであることが必要である。
【0151】
(ステップS112)
次に、ユーザ端末10は、ステップS112において、時間t(n)の撮影画像中のドローン撮像位置情報(カメラ座標系の撮像位置情報(mDronet(n)))を取得する。なお、文書中ではm上部の(~)を省略して説明する。
このドローン撮像位置は、時間t(n)におけるカメラ座標系(同次座標系)で示される撮像位置である。
【0152】
(ステップS113)
次に、ユーザ端末10は、ステップS113において、時間t(n)におけるドローンの位置情報(NED座標系の位置情報(NEDDronet(n)))を取得する。
【0153】
先に図3図5を参照して説明したように、本開示の画像処理装置であるユーザ端末10は、ドローン20、またはドローン20のコントロール等を行う管制センター等のドローン管理サーバ30からNED座標系で示された飛行経路情報を取得することができる。
【0154】
(ステップS114)
次に、ユーザ端末10は、ステップS114において、時間t(n)におけるドローンの撮像位置情報(カメラ座標系の撮像位置情報(mDronet(n)))と、位置情報(NED座標系の位置情報(NEDDronet(n)))を時間t(n)に対応付けてメモリに記録する。
【0155】
次に、このステップS111~S114の処理と並列に実行されるステップS121~S123の処理について説明する。
【0156】
(ステップS121)
ユーザ端末10は、ステップS121において、以下の処理を実行する。
時間t(n)、すなわち、ステップS111におけるドローンの撮影タイミングに併せてSLAM処理を実行する。
【0157】
前述したように、SLAM処理は、カメラ位置同定(ローカリゼーション)と環境地図作成(mapping)を並行して実行する処理である。
【0158】
(ステップS122)
次に、ユーザ端末10は、ステップS122において、ステップS121のSLAM処理結果に基づいて、ワールド座標系(SLAM座標系)を、撮影時間t(n)のカメラ座標系に変換する座標変換行列(Ct(n)Ws)を算出する。
【0159】
このステップS122の処理は、先に図17(1)を参照して説明した処理に相当する。
【0160】
(ステップS123)
次に、ユーザ端末10は、ステップS123において、ステップS122で算出した座標変換行列(Ct(n)Ws)、すなわち、ワールド座標系(SLAM座標系)を、撮影時間t(n)のカメラ座標系に変換する座標変換行列(Ct(n)Ws)をメモリに記録する。
【0161】
ステップS111~S114の処理と、ステップS121~S123の処理が完了すると、ステップS124の処理を実行する。
【0162】
(ステップS124)
ユーザ端末10は、ステップS124において、メモリに記録されたエントリが3つ以上になったか否かを判定する。
すなわち、3つの異なるドローン位置の撮影画像に基づくデータがメモリに記録されているか否かを判定する。
【0163】
図20を参照して、メモリに記録される具体的な記録データの例について説明する。
図20には、3つの異なるドローン位置の撮影画像に基づくデータを記録した例を示している。
【0164】
図20に示すように、メモリには、上空のドローン撮影時間(t(n)等)対応のエントリが記録される。各エントリには、ドローン撮影時間に対応するデータとして以下の各データが記録される。
(1)時間(t)(=ドローン撮影時間)
(2)カメラ座標系のドローン撮像位置
(3)NED座標系のドローン位置
(4)ワールド座標系(SLAM座標系)を、カメラ座標系に変換する座標変換行列
【0165】
「(2)カメラ座標系のドローン撮像位置」は、図19に示すフローのステップS112で取得される撮影画像中のドローン撮像位置情報(カメラ座標系の撮像位置情報(mDronet(n))等)である。
【0166】
「(3)NED座標系のドローン位置」は、図19に示すフローのステップS113で取得される画像撮影タイミングにおける上空のドローンの位置情報(NED座標系の位置情報(NEDDronet(n))等)である。
【0167】
「(4)ワールド座標系(SLAM座標系)を、カメラ座標系に変換する座標変換行列」は、図19に示すフローのステップS122で算出されるワールド座標系(SLAM座標系)を、撮影時間のカメラ座標系に変換する座標変換行列(Ct(n)Ws等)である。
【0168】
メモリの撮影時間対応の各エントリには、これらのドローン撮影時間に対応するデータが記録される。
図19に示すフローチャートのステップS124では、メモリに記録されたエントリが3つ以上になったか否かを判定する。
すなわち、3つの異なるドローン位置の撮影画像に基づくデータがメモリに記録されているか否かを判定する。
【0169】
図20に示すように、3つの異なるドローン位置の撮影画像に基づくデータがメモリに記録されている場合には、次のステップS131に進む。
一方、3つの異なるドローン位置の撮影画像に基づくデータがメモリに記録されていない場合には、ステップS124の判定がNoとなり、ステップS125に進む。
【0170】
(ステップS125)
ステップS125では、時間設定パラメータnを次の時間n+1に設定し、次の時間(n+1)においてステップS111~S114の処理とステップS121~S123の処理を実行する。
すなわち、時間(n+1)において時間(n)とは異なる位置にあるドローンを撮影して処理を実行する。
【0171】
(ステップS131)
ステップS124において、図20に示すように3つの異なるドローン位置の撮影画像に基づくデータがメモリに記録されていると判定した場合には、ステップS131に進む。
【0172】
図21に示すように、ユーザ端末10は、ステップS131において以下の処理を実行する。
ドローン撮影時間のカメラ座標系を、ドローン飛行経路を出力する時間t(out)のカメラ座標系に変換する座標変換行列(Ct(out)Ct(n)等)を算出してメモリに記録する。
この処理は、先に図17を参照して説明した処理に相当する。
【0173】
図22を参照して、メモリに記録される座標変換行列(Ct(out)Ct(n)等)の例について説明する。
このステップS131においてメモリに記録されるデータは、図22に示す、(5)のデータ、すなわち、
(5)ドローン撮影時のカメラ座標系を飛行経路出力時のカメラ座標系に変換する座標変換行列
のデータである。
【0174】
なお、図22に示す例では、図22に示す3つの撮影時間対応エントリ中、時間=t(n+2)を、ドローン飛行経路出力時間t(out)とする。
すなわち、
t(n+2)=t(out)
とする。
【0175】
この場合、「(5)ドローン撮影時のカメラ座標系を飛行経路出力時のカメラ座標系に変換する座標変換行列」として追加記録される座標変換行列は、図22に示すように、
撮影時間=t(n)と、撮影時間=t(n+1)のみである。
撮影時間=t(n+2)のデータは、ドローン撮影時のカメラ座標系が、飛行経路出力時のカメラ座標系に一致するため座標変換行列の追加記録は不要となる。
【0176】
撮影時間=t(n)のエントリについては、
ドローン撮影時(t=(n)のカメラ座標系(Ct(n))を飛行経路出力時のカメラ座標系(Ct(out)に変換する座標変換行列、
Ct(out)Ct(n)
を追記する。
【0177】
また、撮影時間=t(n+1)のエントリについては、
ドローン撮影時(t=(n+1)のカメラ座標系(Ct(n+1))を飛行経路出力時のカメラ座標系(Ct(out)に変換する座標変換行列、
Ct(out)Ct(n+1)
を追記する。
【0178】
(ステップS132)
図21のフローに示すように、次に、ユーザ端末10は、ステップS132において以下の処理を実行する。
【0179】
ドローン撮影時間のカメラ座標系のドローン撮像位置に対して、座標変換行列(CtcCtn)を適用した座標変換処理を行い、ドローン飛行経路出力時間t(out)のカメラ座標系対応のドローン撮像位置を算出してメモリに記録する。
【0180】
この処理は、先に図17や、図18(1)を参照して説明した処理に相当する。
【0181】
図22を参照して、メモリに記録されるドローン飛行経路出力時間t(out)のカメラ座標系対応のドローン撮像位置の例について説明する。
このステップS132においてメモリに記録されるデータは、図22に示す、(6)のデータ、すなわち、
(6)ドローン飛行経路出力時間t(out)のカメラ座標系対応のドローン撮像位置
このデータである。
【0182】
なお、図22に示す例では、図22に示す3つの撮影時間対応エントリ中、時間=t(n+2)を、ドローン飛行経路を出力する時間t(out)とする。
すなわち、
t(n+2)=t(out)
とする。
【0183】
この場合、ユーザ端末10は、ステップS132において、以下の各データを算出してメモリに記録する。
ドローン撮影時間=t(n)のデータに対する処理は以下の処理となる。
ドローン撮影時間=t(n)のカメラ座標系(Ct(n))のドローン撮像位置(mDront(n))に対して、座標変換行列(Ct(out)Ct(n))を適用した座標変換処理を行う。すなわち以下の座標変換処理を行う。
λ(mDronetn)=A・(CtoutNED)・(NEDDronetn
上記算出式によって取得される座標が、ドローン飛行経路出力時間t(out)のカメラ座標系対応のドローン撮像位置となる。この座標位置をメモリに記録する。
【0184】
また、ドローン撮影時間=t(n+1)のデータに対する処理は以下の処理となる。
ドローン撮影時間=t(n+1)のカメラ座標系(Ct(n+1))のドローン撮像位置(mDront(n+1))に対して、座標変換行列(Ct(out)Ct(n+1))を適用した座標変換処理を行う。すなわち以下の座標変換処理を行う。
λ(mDronetn+1)=A・(CtoutNED)・(NEDDronetn+1
上記算出式によって取得される座標が、ドローン飛行経路出力時間t(out)のカメラ座標系対応のドローン撮像位置となる。この座標位置をメモリに記録する。
【0185】
また、ドローン撮影時間=t(n+2)のデータに対する処理は以下の処理となる。
ドローン撮影時間=t(n+2)のカメラ座標系(Ct(n+2))は、ドローン飛行経路出力時間t(out)のカメラ座標系(Ct(out))に一致する。
従って座標変換は不要であり、ドローン撮影時間=t(n+2)のカメラ座標系(Ct(n+2))のドローン撮像位置(mDront(n+2))をそのままメモリに記録する。
これらの記録データが、図22に示す項目(6)に記録されたデータである。
【0186】
次に、図23に示すフローのステップS133以下の処理について説明する。
(ステップS133)
ユーザ端末10は、ステップS133において、以下の処理を実行する。
【0187】
メモリに記録された3つの異なる位置のNED座標系のドローン位置と、各ドローン位置に対応するドローン撮像位置(時間t(out)のカメラ座標系上の撮像位置)との対応関係式からなる連立方程式(式7)を生成する。
【0188】
生成する連立方程式は、先に図14(2)、図15(2)、図18(2)を参照して説明した連立方程式であり、先に(式7)として説明した連立方程式である。
なお、(式7)に示す連立方程式を構成する3つの式に含まれるドローン撮像位置(mDronetn)には、ステップS132において算出した位置、すなわち、ドローン飛行経路出力時間t(out)のカメラ座標系対応のドローン撮像位置を用いる。
すなわち、図22を参照して説明したメモリ記録データの項目(6)に記録した変換後の座標位置を用いる。
【0189】
(ステップS134)
次に、ユーザ端末10は、ステップS134において、ステップS133で生成した連立方程式(式7)を解いて取得されるパラメータを行列要素とする座標変換行列(Ct(out)NED)、すなわちNED座標系の位置(NED)を、カメラ座標系の位置(Ct(out))に変換する座標変換行列(Ct(out)NED)(式8)を算出する。
【0190】
この座標変換行列(Ct(out)NED)は、先に図15(3)、図18(3)を参照して説明した座標変換行列(NED)に相当し、先に(式8)として説明した座標変換行列(NED)に対応する。
【0191】
(ステップS135)
次に、ユーザ端末10は、ステップS135において、ステップS134で生成した座標変換行列(Ct(out)NED)を適用して、NED座標系のドローン飛行経路位置を、カメラ座標系の位置に変換する。
【0192】
なお、NED座標系のドローン飛行経路(飛行済み経路や飛行予定経路)については、ドローン20、またはドローン管理サーバ30から取得する。
【0193】
(ステップS136)
次に、ユーザ端末10は、ステップS136において、ステップS135での座標変換によって得られたカメラ座標系の位置情報に変換された飛行経路をユーザ端末の表示部に出力する。
【0194】
これらの処理により、ドローンを撮影した撮影画像上に、そのドローンの経路情報を正確に表示することが可能となる。
すなわち、先に説明した図16に示すように、実写画像としてのドローン画像に対して、ずれのないドローンの飛行経路(飛行経路や飛行予定経路)を出力表示することが可能となる。
【0195】
[4.本開示の画像処理装置、およびドローンの構成例について]
次に、本開示の画像処理装置、およびドローンの構成例について説明する。
【0196】
図24は、本開示の画像処理装置としてのユーザ端末100と、ドローン200の構成例を示す図である。
【0197】
本開示の画像処理装置としてのユーザ端末100は、例えばスマホ等のカメラ付き通信端末である。スマホに限らずPC等の装置やカメラ装置であってもよい。
【0198】
ユーザ端末100は、ドローン200やドローン管理サーバ300との通信を行うことが可能な構成を有する。
ドローン200は、例えばドローン管理サーバ300との通信情報や、GPS衛星400との通信情報を利用して予め規定された飛行経路に従って飛行する。
【0199】
図に示すように、ユーザ端末100は、カメラ101、データ処理部102、記憶部(メモリ)103、通信部104、表示部105、入力部106、出力部107を有する。
【0200】
カメラ101は、例えばドローンの撮影処理やSLAM処理時の画像撮影に利用される。
【0201】
データ処理部102は、上述したドローンの飛行経路の出力制御を行う。すなわちドローン等の実画像上に飛行経路を重畳したAR画像を生成して表示部105に表示する処理等を行う。
さらにSLAM処理、画像撮影制御等、ユーザ端末100において実行する処理の制御を行う。
データ処理部102は、例えばプログラム実行機能を有するCPU等のプロセッサを有し、記憶部103に格納されたプログラムに従って処理を実行する。
【0202】
記憶部(メモリ)103は、データ処理部102の実行するプログラムの格納領域、ワーク領域として利用される。処理に適用する様々なパラメータの記憶領域としても利用される。記憶部(メモリ)103は、RAM、ROM等によって構成される。
【0203】
通信部104は、ドローン200、ドローン管理サーバ300との通信を実行する。例えば、ドローン200、またはドローン管理サーバ300からドローン200の飛行経路情報を受信する処理等を行う。
【0204】
表示部105は、カメラ撮影画像の表示、さらにデータ処理部102が生成したドローンの飛行経路情報を出力する。すなわちドローン等の実画像上に飛行経路を重畳したAR画像を表示する。
【0205】
入力部106は、ユーザによる操作部であり、様々な処理、例えば画像撮影、経路表示の開始、終了等のユーザ要求の入力処理等に利用される。
出力部107には、音声出力部、画像出力部等が含まれる。
【0206】
次にドローン200の構成について説明する。
ドローン200は、経路計画部201、経路制御部202、測位センサ(GPS情報受信解析部)203、通信部204を有する。
【0207】
経路計画部201は、ドローン200の飛行経路を計画し、決定する。例えばドローン管理サーバ300から受信した情報に基づいて、具体的な飛行経路を計画し決定する。
【0208】
経路制御部202は、経路計画部201が決定した飛行経路に従ってドローン200を飛行させるための飛行制御を実行する。
【0209】
測位センサ(GPS情報受信解析部)203はGPS衛星400との通信を実行し、GPS衛星400との通信情報に基づいて、ドローン200の現在位置(緯度、経度、高さ)を解析し、解析情報を経路制御部202に出力する。
経路制御部202は、測位センサ(GPS情報受信解析部)203からの入力情報を参照して、経路計画部201が決定した飛行経路に従ってドローン200を飛行させるための飛行制御を実行する。
【0210】
通信部204は、ドローン管理サーバ300やユーザ端末100との通信を実行する。
【0211】
なお、上述した実施例では、ドローンの飛行経路の表示処理例について説明したが、本開示の処理は、ドローンの飛行経路の表示に限らず、その他の移動体、例えばロボットや自動走行車両の経路情報表示処理にも適用可能である。
上述した実施例におけるドローンをロボットや自動走行車両に置き換えることで、同様の処理を行うことができる。
【0212】
[5.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【0213】
なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1) 移動装置のカメラ撮影画像を表示した表示部に、前記移動装置の移動経路を表示するデータ処理部を有し、
前記データ処理部は、
前記移動装置の移動経路を示す第1の座標系に従った位置情報を、前記表示部の表示画像の画素位置を特定可能な第2の座標系に変換する座標変換処理を実行し、
前記座標変換処理によって生成した前記第2の座標系に従った位置情報を有する移動経路を表示部に出力する画像処理装置。
【0214】
(2) 画像処理装置において実行する画像処理方法であり、
前記画像処理装置は、移動装置のカメラ撮影画像を表示した表示部に、前記移動装置の移動経路を表示するデータ処理部を有し、
前記データ処理部が、
前記移動装置の移動経路を示す第1の座標系に従った位置情報を、前記表示部の表示画像の画素位置を特定可能な第2の座標系に変換する座標変換処理を実行し、
前記座標変換処理によって生成した前記第2の座標系に従った位置情報を有する移動経路を表示部に出力する画像処理方法。
【0215】
(3) 前記移動装置は、ドローンであり、
前記第1の座標系は、NED座標系であり、
前記第2の座標系は、前記移動装置を撮影したカメラに対応するカメラ座標系である(2)に記載の画像処理方法。
【0216】
(4) 前記データ処理部は、
前記移動装置の前記第1の座標系対応の位置と、前記移動装置の撮影画像における撮像位置との対応関係を示す関係式を生成し、
生成した関係式から算出されるパラメータを用いて、前記座標変換処理に適用する座標変換行列を生成する(2)または(3)に記載の画像処理方法。
【0217】
(5) 前記データ処理部は、
前記移動装置の前記第1の座標系対応の位置と、前記移動装置の撮影画像における撮像位置との対応関係を示す関係式からなる連立方程式を生成し、
生成した連立方程式から算出されるパラメータを用いて、前記座標変換処理に適用する座標変換行列を生成する(2)~(4)いずれかに記載の画像処理方法。
【0218】
(6) 前記データ処理部は、
複数の異なる位置にある前記移動装置のカメラ撮影画像を利用して、前記連立方程式を生成する(5)に記載の画像処理方法。
【0219】
(7) 前記データ処理部は、
前記連立方程式から得られるパラメータを前記座標変換行列の行列要素に設定した座標変換行列を生成する(5)または(6)に記載の画像処理方法。
【0220】
(8) 前記データ処理部は、
3つの異なる位置にある前記移動装置のカメラ撮影画像を利用して、3つの関係式からなる前記連立方程式を生成する(5)~(7)いずれかに記載の画像処理方法。
【0221】
(9) 前記データ処理部は、
複数の異なる位置にある前記移動装置のカメラ撮影画像のカメラの位置または姿勢が異なる場合、
画像撮影時の複数の異なるカメラ座標を1つのカメラ座標に変換する座標変換行列を算出して、算出したカメラ座標変換行列を適用して、複数の異なる位置の移動装置の撮像位置を1つのカメラ座標上に設定する処理を実行する(6)~(8)いずれかに記載の画像処理方法。
【0222】
(10) 前記データ処理部は、
前記移動装置を撮影するカメラの位置姿勢を算出するSLAM(simultaneous localization and mapping)処理を実行して、SLAM処理結果を利用して、前記カメラ座標変換行列を算出する(9)に記載の画像処理方法。
【0223】
(11) 前記データ処理部は、
前記SLAM処理の結果に基づいて、
前記SLAM処理に適用する座標系であるワールド座標系と、前記カメラ対応のカメラ座標系との座標変換を行うワールド座標カメラ座標変換行列を算出し、
算出したワールド座標カメラ座標変換行列を適用して、画像撮影時の複数の異なるカメラ座標を1つのカメラ座標に変換する前記カメラ座標変換行列を算出する(10)に記載の画像処理方法。
【0224】
(12) 前記データ処理部は、
前記移動装置であるドローン、またはドローンの管理を行うドローン管理サーバから、前記第1の座標系であるNED座標系に従った飛行経路情報を取得し、
取得した飛行経路情報を、前記第2の座標系であるカメラ座標系に変換する(2)~(11)いずれかに記載の画像処理方法。
【0225】
(13) 前記データ処理部は、
移動装置のカメラ撮影画像を表示した前記表示部に、前記移動装置の移動済み経路と移動予定経路を表示する(2)~(12)いずれかに記載の画像処理方法。
【0226】
(14) 画像処理装置において画像処理を実行させるプログラムであり、
前記画像処理装置は、移動装置のカメラ撮影画像を表示した表示部に、前記移動装置の移動経路を表示するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
前記移動装置の移動経路を示す第1の座標系に従った位置情報を、前記表示部の表示画像の画素位置を特定可能な第2の座標系に変換する座標変換処理と、
前記座標変換処理によって生成した前記第2の座標系に従った位置情報を有する移動経路を表示部に出力する処理を実行させるプログラム。
【0227】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0228】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【0229】
以上、説明したように、本開示の一実施例の構成によれば、ドローンの実写画像上にドローンの飛行経路を正確に表示することを可能とした構成が実現される。
具体的には、例えば、ドローン等の移動装置のカメラ撮影画像を表示した表示部に、移動装置の移動経路を表示するデータ処理部を有する。データ処理部は、移動装置の移動経路を示す第1の座標系、例えばNED座標系に従った位置情報を、表示部の表示画像の画素位置を特定可能な第2の座標系、例えばカメラ座標系に変換する座標変換処理を行う座標変換行列を生成し、生成した座標変換行列を適用した座標変換処理によって生成したカメラ座標系に従った位置情報を有する移動経路を表示部に出力する。
本構成により、ドローンの実写画像上にドローンの飛行経路を正確に表示することを可能とした構成が実現される。
【符号の説明】
【0230】
10 ユーザ端末
20 ドローン
30 ドローン管理サーバ
40 GPS衛星
51 カメラ撮像面
61 オブジェクト
62 オブジェクト画像
100 ユーザ端末
101 カメラ
102 データ処理部
103 記憶部(メモリ)
104 通信部
105 表示部
106 入力部
107 出力部
200 ドローン
201 経路計画部
202 経路制御部
203 測位センサ(GPS情報受信解析部)
204 通信部
300 ドローン管理サーバ
400 GPS衛星
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24