(実施の形態1の内容に至る経緯)
例えば、電子部品をプリント基板に搭載する際に、部品搭載座標を補正する部品搭載座標補正方法がある。このような部品搭載座標補正方法では、位置決め時の基準となるマークの座標をオペレータが測定してプリント回路基板に入力し、撮像手段を介して誤差を含んだ座標位置とのズレ量を基準として、真のマーク位置を定め、この真のマーク位置に基づいて部品搭載座標を補正する。しかし、座標を補正後にマーク位置から部品搭載座標に移動する際に移動誤差などの外因により発生する誤差については修正できないため、位置情報の補正には精度限界があった。また、撮像手段を介した部品搭載座標補正は、撮像速度,撮像画像の読み出しおよび読み出した画像処理などにより座標誤差の算出までに所定の時間が必要となるため、他の装置の動作速度、例えば電子部品の実装速度などの向上に限界があった。つまり、このような撮像画像を用いた部品搭載座標補正方法は、他の装置の動作速度への影響を考慮すると、画像処理する撮像画像の枚数に限界があり、より精度が高い誤差補正を実現するためのサンプリング数を増加させることが難しかった。上述した特許文献1では、撮像手段を介した座標補正方法においいて、画像処理に必要な時間を短縮することは想定されていない。
以上のように、画像処理装置では、カメラにより撮像された対象物の画像に対する効率的な画像処理を実行し、より高精度な対象物の位置誤差を算出する画像処理装置および画像処理方法の例を説明する。
以下、適宜図面を参照しながら、本開示に係る画像処理装置および画像処理方法の構成および作用を具体的に開示した実施の形態1を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。なお、添付図面及び以下の説明は、当業者が本開示を十分に理解するために提供されるものであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
(実施の形態1)
図1は、実施の形態1に係る画像処理システムのユースケース例の説明図である。画像処理システムは、制御装置1と、アクチュエータ2と、カメラ3と、画像処理装置4と、を含んで構成される。制御装置1は、アクチュエータ2,カメラ3および画像処理装置4を制御するための装置である。
まず、制御装置1について説明する。制御装置1は、制御部10と、メモリ11と、エリアデータ12と、を含んで構成される。制御装置1は、アクチュエータ2との間で通信可能に接続される。
制御部10は、例えばCPU(Central Processing unit)またはFPGA(Field Programmable Gate Array)を用いて構成されて、メモリ11と協働して、各種の処理および制御を行う。具体的には、制御部10はメモリ11に保持されたプログラムおよびデータを参照し、そのプログラムを実行することにより、後述するエリアデータ12の機能を実現する。制御部10は、アクチュエータ2の制御部20との間で通信可能に接続される。制御部10は、ユーザ操作によって入力されたエリアデータ12に基づいて、アクチュエータ2を制御する。
メモリ11は、例えば制御部10の各処理を実行する際に用いられるワークメモリとしてのRAM(Random Access Memory)と、制御部10の動作を規定したプログラムおよびデータを格納するROM(Read Only Memory)とを有する。RAMには、制御部10により生成あるいは取得されたデータもしくは情報が一時的に保存される。ROMには、制御部10の動作(例えば、エリアデータ12に書き込まれたデータおよびプログラムを読み出して、これらのデータおよびプログラムに基づいてアクチュエータ2を制御する方法など)を規定するプログラムが書き込まれている。
エリアデータ12は、例えば、CAD(Computer Aided Design)などの設計支援ツールを用いて作成されたデータなどである。エリアデータ12は、設計情報あるいは位置情報(例えば、エリアデータ12に記憶され、カメラ3が撮像する撮像対象Tg1に関する位置情報,作業部5が部品の載置、半田付けまたは溶接などを実行するための位置情報など)を有するデータであり、アクチュエータ2などの駆動装置を動かすプログラムなどが書き込まれている。
次に、アクチュエータ2について説明する。アクチュエータ2は、例えば、電動制御あるいは飛行制御可能な駆動装置である。アクチュエータ2は、制御装置1および画像処理装置4との間で通信可能に接続される。アクチュエータ2は、制御部20と、メモリ21と、駆動部22と、アーム部24と、を含んで構成される。なお、作業部5は、必須の構成ではなく省かれてもよい。
制御部20は、例えばCPUまたはFPGAを用いて構成されて、メモリ21と協働して、各種の処理および制御を行う。具体的には、制御部20はメモリ21に保持されたプログラムおよびデータを参照し、そのプログラムを実行することにより、誤差補正部23の機能を実現する。制御部20は、制御部10,制御部40および受信部42との間で通信可能に接続される。制御部20は、制御装置1から受信された制御信号に基づいて、駆動部22を駆動させ、作業部5に所定の制御を実行させる。
制御部20は、アクチュエータ2の起動した際に、駆動部22によって駆動されるカメラ3および作業部5の基準マーカPt0に基づく初期の位置合わせを実行する。なお、初期の位置合わせは、ユーザによって指定された任意のタイミング、例えば、撮像対象の変更,作業部5による作業の終了などに合わせて実行されてもよい。
制御部20は、制御装置1から受信されたエリアデータ12が有する撮像対象Tg1の位置情報およびカメラ3の位置情報などの各種情報を画像処理装置4に送信する。なお、各種情報には、カメラ3のフレームレート,撮像範囲IA1,ズーム倍率などの情報を含む。また、制御部20は、エリアデータ12に書き込まれたプログラムに基づいてカメラ3の撮像位置を移動させる場合には、カメラ3の位置を推定可能な情報(例えば、カメラ3の位置情報またはカメラ3の移動速度情報など)を画像処理装置4に送信する。なお、カメラ3の位置を推定可能な情報は、例えば、カメラ3が固定される場合、あるいはカメラ3の撮像範囲IA1に撮像対象Tg1が位置しうるすべての位置が含まれる場合には省かれてよい。
また、制御部20は、カメラ3によって撮像された撮像画像に基づく撮像対象Tg1の位置に関する差分情報(言い換えると、位置の誤差情報)を画像処理装置4から受信する。制御部20は、受信された差分情報に基づく誤差補正を誤差補正部23に実行させる。
メモリ21は、例えば制御部20の各処理を実行する際に用いられるワークメモリとしてのRAMと、制御部20の動作を規定したプログラムおよびデータを格納するROMとを有する。RAMには、制御部20により生成あるいは取得されたデータもしくは情報が一時的に保存される。ROMには、制御部20の動作(例えば、制御装置1の制御信号に基づいて、所定の位置にカメラ3および作業部5を移動させる方法など)を規定するプログラムが書き込まれている。
駆動部22は、基準マーカPt0を基点とした撮像対象Tg1の位置情報に基づいてカメラ3および作業部5を移動させる。駆動部22は、制御部20を介してカメラ3および作業部5の移動速度を画像処理装置4に送信する。
誤差補正部23は、画像処理装置4から受信された差分情報に基づいて、駆動部22によって移動されるカメラ3および作業部5の位置を補正する。また、カメラ3および作業部5が固定設置されている場合には、誤差補正部23は、受信された差分情報に基づいてエリアデータ12(つまり、CADデータなど)に記憶された撮像対象Tg1の位置情報を補正する。
アーム部24は、カメラ3および作業部5が一体的に支持される支持台26と接続される。アーム部24は、駆動部22によって駆動され、支持台26を介してカメラ3および作業部5を一体的に移動させる。
カメラ3は、撮像素子として、CCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semiconductor)を有する。カメラ3は、焦点距離を調節可能フォーカスレンズ(不図示)と、ズーム倍率を変更可能なズームレンズ(不図示)と、および撮像素子の感度を調整可能なゲイン調整部(不図示)と、を有する。
また、カメラ3は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit)、DSP(Digital Signal Processor)またはFPGA(Field Programmable Gate Array)を用いて構成される。カメラ3は、撮像画像の電気信号を用いて所定の信号処理を行うことで、人間が認識可能なRGB(Red Green Blue)またはYUV(輝度・色差)などにより規定される撮像画像のデータ(フレーム)を生成する。カメラ3は、撮像された撮像画像のデータ(以下、撮像画像)を画像処理装置4に送信する。なお、カメラ3によって撮像された撮像画像は、メモリ41に記憶される。
また、カメラ3は、撮像範囲IA1を有する。カメラ3は、所定のフレームレート(例えば、120fps(frame per second))で、撮像対象Tg1の撮像画像のデータ(フレーム)を生成するハイスピードカメラである。なお、所定のフレームレートは、撮像範囲IA1および後述する限定範囲の大きさに応じて、ユーザによって任意に設定されてよい。具体的には、所定のフレームレートは、例えば60fps,240fpsなどでもよい。
なお、図1に示すカメラ3は、アーム部24によって撮像位置を可変に設けられているが、用途に応じてアクチュエータ2の底面または側面に固定設置されてもよいし、撮像対象Tg1を撮像可能な他の支持台(不図示)などに固定されて設置されてもよい。また、図1に示すカメラ3が有する撮像範囲IA1は、基準マーカPt0および撮像対象Tg1を含む範囲を示しているが、カメラ3の撮像位置が可変に設置されている場合には、それぞれ異なる所定の撮像位置において基準マーカPt0および撮像対象Tg1を撮像可能であってよい。つまり、実施の形態1に係るカメラ3は、基準マーカPt0および撮像対象Tg1を撮像可能に設置、あるいは撮像可能な撮像範囲IA1を有していればよい。
さらに、カメラ3の撮像位置が固定され、カメラ3の撮像範囲IA1が撮像対象Tg1の配置されうるすべての位置を撮像可能である場合には、基準マーカPt0は、省かれてもよい。つまり、このような場合における実施の形態1に係るカメラ3は、撮像対象Tg1を撮像可能であればよい。
次に、画像処理装置4について説明する。画像処理装置4は、アクチュエータ2およびカメラ3との間で通信可能に接続される。画像処理装置4は、制御部40と、メモリ41と、受信部42と、を含んで構成される。
制御部40は、例えばCPUまたはFPGAを用いて構成されて、メモリ41と協働して、各種の処理および制御を行う。具体的には、制御部40はメモリ41に保持されたプログラムおよびデータを参照し、そのプログラムを実行することにより、各部の機能を実現する。各部は、予測部43と、検出部44と、計測部45と、出力部46と、を含む。
メモリ41は、例えば制御部40の各処理を実行する際に用いられるワークメモリとしてのRAMと、制御部40の動作を規定したプログラムおよびデータを格納するROMとを有する。RAMには、制御部40により生成あるいは取得されたデータもしくは情報が一時的に保存される。ROMには、制御部40の動作(例えば、受信された撮像対象Tg1の位置を予測する方法,読み出された限定範囲から撮像対象Tg1を検出する方法および検出した撮像対象Tg1の位置を計測する方法など)を規定するプログラムが書き込まれている。また、メモリ41は、受信された撮像画像,撮像対象Tg1の位置情報および後述する限定範囲などを記憶する。
受信部42は、アクチュエータ2の制御部20およびカメラ3との間で通信可能に接続される。受信部42は、制御部20から撮像対象Tg1の位置情報とカメラ3の位置を推定可能な情報(例えば、カメラ3の位置情報またはカメラ3の移動速度情報など)を受信し、受信された撮像対象Tg1の位置情報,カメラ3の位置を推定可能な情報を予測部43に出力し、受信された撮像対象Tg1の位置情報を出力部46に出力する。受信部42は、カメラ3によって撮像された撮像画像のデータを受信し、受信された撮像画像のデータを検出部44に出力する。
また、受信部42は、受信されたカメラ3の各種情報を制御部40に出力する。受信部42によって出力された各種情報は、さらに制御部40によって各部に出力される。
予測部43は、受信部42から出力されたエリアデータ12に記憶された撮像対象Tg1の位置情報およびアクチュエータ2によって移動されたカメラ3の位置を推定可能な情報に基づいて、受信された撮像画像に映る撮像対象Tg1の位置を予測する。具体的に、予測部43は、カメラ3のイメージセンサにおける撮像対象Tg1の位置を予測する。予測部43は、予測された撮像対象Tg1の予測位置を検出部44および出力部46に出力する。なお、予測部43が予測する撮像対象Tg1の位置は、次のフレーム(具体的には、撮像対象の検出に用いられた撮像画像より後に撮像された撮像画像)だけでなく数フレーム後に撮像される撮像対象Tg1の位置であってもよい。
検出部44は、カメラ3によって撮像され、受信された撮像画像のうち、予測部43によって予測された予測位置(つまり、イメージセンサにおける撮像対象Tg1の予測位置)を含み、撮像範囲IA1の一部であるイメージセンサにおける限定範囲を限定的に読み出し、撮像画像の限定範囲に映る撮像対象Tg1を検出する。検出部44は、検出結果を計測部45に出力する。なお、限定範囲は、メモリ41に予め設定された所定の範囲であっても、予測位置を中心とした所定の範囲であってもよい。限定範囲については、後述する。
このように、検出部44は、撮像範囲IA1のうち限定範囲を限定的に読み出すことにより比較例の撮像画像の全域を対象とした読み出し処理に比べて、読み出し処理に要する時間を短縮できる。また、検出部44は、読み出し範囲が小さくなることにより、読み出し処理に要する負荷を低減できる。したがって、実施の形態1に係る画像処理装置4は、カメラ3により撮像された撮像対象Tg1の画像に対する効率的な画像処理を実行し、より高精度な撮像対象Tg1の位置誤差を算出できる。
さらに、比較例の撮像画像を用いた座標誤差の補正方法は、読み出し処理に時間を要したため、他の装置の動作速度への影響を考慮して、画像処理する撮像画像の枚数に制約があった。しかし、実施の形態1に係る画像処理装置4は、撮像範囲IA1のうち限定範囲を限定的に読み出すことにより、読み出し時間を短縮できるため、他の装置の動作速度への影響を抑制することができる。また、実施の形態1に係る画像処理装置4は、読み出し時間を短縮によって、サンプリング数を増加することができるため、より精度が高い位置誤差補正を実現することができる。
計測部45は、検出部44によって検出された撮像画像上の限定範囲に映る撮像対象Tg1の位置を計測する。計測部45は、計測された撮像対象Tg1の計測位置を出力部46に出力する。
出力部46は、撮像対象Tg1のイメージセンサにおける予測位置と実際に撮像された撮像画像における計測位置との差分を出力する。これにより、出力部46は、アクチュエータ2から受信された撮像対象Tg1の位置と実際に検出された位置との誤差を出力することができる。
出力部46は、算出された差分情報(言い換えると、誤差情報)をアクチュエータ2の誤差補正部23に送信する。誤差補正部23は、受信された差分情報に基づいて、駆動部22によって駆動されたアーム部24の位置(言い換えると、カメラ3の撮像位置および作業部5の作業位置)に関する誤差を補正させる。
作業部5は、例えば、電子部品を搭載可能な部品搭載ヘッド,半田付け可能な半田鏝または溶接可能な溶接棒などである。作業部5は、駆動部22によって位置を可変に駆動される。なお、作業部5は、上述したようなユーザが要求する作業を実行可能な作業手段を取り替え可能に設けられてもよい。
撮像対象Tg1は、エリアデータ12に基づいて設定される。なお、図1の説明において撮像対象Tg1は、所定の位置に留まるものとして説明したが、これに限らない。撮像対象Tg1は、例えば部品であり、搬送レールなどの一定の速度で位置が変わってもよい。この場合、画像処理装置4は、カメラ3の移動速度情報と撮像対象Tg1の移動速度情報とを受信し、相対速度を考慮した画像処理を実行する。
次に、図2および図3を参照して、比較例のカメラの画像処理に要する時間と実施の形態1に係るカメラ3の画像処理に要する時間とを比較する。図2は、比較例の画像読み出しおよび画像処理例を示すタイムチャートである。図3は、実施の形態1に係る画像処理装置における画像読み出しおよび画像処理例を示すタイムチャートである。図2および図3に示す画像処理装置4が実行する処理のうち、伝送は、撮像画像を読み出す処理を示す。計算は、読み出した撮像画像から撮像対象Tg1を検出し、検出された撮像対象Tg1の位置を計測して、設計上における撮像対象Tg1の位置との差分を算出して出力するまでの処理を示す。なお、図2に示す比較例のカメラおよび図3に示す実施の形態1に係るカメラ3の撮像範囲は、撮像範囲IA1とする。
図2に示す比較例のカメラは、時間0(ゼロ)から時間s2の間で非露光状態にあり、時間s2から時間s3の間で露光状態になる。比較例の画像処理装置は、比較例のカメラの露光状態が終了すると、時間s3から時間s6の間に撮像範囲IA1の全域を読み出し、時間s6から時間s7の間に画像処理を実行する。つまり、比較例のカメラおよび画像処理装置を用いた画像処理システムは、1回の誤差を出力するために時間s7を要する。
一方、図3に示す実施の形態1に係るカメラ3は、時間0(ゼロ)から時間s1の間で露光状態を終了する。画像処理装置4は、カメラ3が露光状態を終了した時間s1から読み出し処理を開始する。画像処理装置4は、撮像された撮像範囲IA1のうち限定領域のみを限定的に読み出すことで、時間s1から時間s2の間に読み出し処理を終え、時間s2から時間s3で画像処理を完了する。つまり、実施の形態1に係る画像処理システムは、1回の誤差を出力するために時間s3を要する。よって、実施の形態1に係る画像処理システムは、読み出し転送に要する時間が短縮されるため、図3に示すようにカメラ3は露光状態を素早く繰り返し、素早くかつより多くの誤差を出力することができる。
上述したように、実施の形態1に係る画像処理システムは、画像処理装置4における画像の読み出しを限定範囲に限定することにより、読み出し処理に要する時間を短縮し、カメラ3のフレームレートをより早く設定することができる。また、これにより、実施の形態1に係る画像処理システムは、同じ時間でより多くのサンプリング数(言い換えると、出力される誤差情報の数)を得ることができるため、位置誤差補正の精度をより高精度にすることができる。
なお、カメラ3は、図3に示すように次々と露光状態を繰り返さずに、非露光状態となる時間を有してもよい。
図4は、撮像範囲IA1と限定範囲Ar1,Ar2,…,Ar(n-2),Ar(n-1),Arnのそれぞれとの一例を示す図である。複数の限定範囲Ar1,…,Arnのそれぞれは、撮像範囲IA1の一部である。複数の限定範囲Ar1,…,Arnのそれぞれは、メモリ41に予め設定され、記憶されていてもよい。なお、図4に示す複数の限定範囲Ar1,…,Arnのそれぞれは、撮像範囲IA1を長方形状に分割した例を示しているが、例えば、正方形状であってもよい。
さらに、限定範囲は、図4に示す予め設定された範囲でなく、予測位置を中心とした所定の範囲であってもよい。限定範囲は、例えば、予測部43によって予測された撮像対象Tg1の予測位置を中心とした所定の半径を有する円形状、撮像対象Tg1の予測位置を2本の対角線のそれぞれの交点位置とする四角形状などでもよい。
図5は、複数の限定範囲Ar1,…,Arnのそれぞれに映る撮像対象Tg1の時間変化例の様子を示す図である。図5に示す横軸は、時間Tを示す。なお、図5における撮像対象Tg1は、撮像範囲IA1のうち所定位置から不動である。ベクトルRT0は、撮像対象Tg1の次のフレームにおける位置を示す。
カメラ3は、駆動部22によってベクトルRT0と逆方向に、所定の速度で移動しながら撮像対象Tg1を撮像する。時間t1における撮像対象Tg1は、限定範囲Ar1に位置する。時間t2における撮像対象Tg1は、限定範囲Ar2に位置する。時間t(n-2)における撮像対象Tg1は、限定範囲Ar(n-2)に位置する。時間t(n-1)における撮像対象Tg1は、限定範囲Ar(n-1)に位置する。時間tnにおける撮像対象Tg1は、限定範囲Arnに位置する。
以上のように、画像処理装置4における予測部43は、アクチュエータ2から受信されたカメラ3の位置を推定可能な情報および撮像対象Tg1の位置情報に基づいて、撮像範囲IA1における撮像対象Tg1の位置を予測することができる。また、検出部44は、予測位置に基づいて、上述した複数の限定範囲Ar1,…,Arnのそれぞれのうち撮像対象Tg1の予測位置が含まれる限定範囲を限定的に読み出す。これにより、画像処理装置4は、撮像範囲IA1に対する限定範囲を限定的かつ効率的に画像処理できるため、画像処理に要する時間および負荷を低減できる。
図6は、実施の形態1に係る画像処理システムの動作手順例を説明するシーケンス図である。
制御装置1は、ユーザによって入力されたエリアデータ12に基づく制御信号を生成し、アクチュエータ2に送信する。具体的には、制御装置1は、エリアデータ12に基づいて、撮像対象Tg1の位置情報をアクチュエータ2に送信する(T1)。
制御装置1は、カメラ3の駆動を制御する制御信号および撮像対象Tg1の位置情報に基づく移動を指示する制御信号を生成して、アクチュエータ2に送信する(T2)。
アクチュエータ2は、基準マーカPt0に基づく初期の位置合わせを実行する(T3)。具体的には、アクチュエータ2は、カメラ3を基準マーカPt0の撮像位置に移動させる。アクチュエータ2は、移動後にカメラ3で基準マーカPt0を撮像させ、基準マーカPt0の位置情報を画像処理装置4に送信する。カメラ3は、撮像された基準マーカPt0の撮像画像を画像処理装置4に送信する。画像処理装置4は、受信された撮像画像に基づいて基準マーカPt0を検出し、基準マーカPt0の位置を計測する。画像処理装置4は、計測した計測位置とアクチュエータ2から受信された基準マーカPt0の位置との差分を算出し、アクチュエータ2に送信する。アクチュエータ2は、受信された差分に基づいて、カメラ3の位置を補正する。
アクチュエータ2は、制御装置1から受信された撮像対象tg1の位置情報を画像処理装置4に送信する(T4)。
アクチュエータ2は、撮像対象Tg1の位置情報に基づいて、撮像対象Tg1を撮像可能な位置にカメラ3を移動させる(T5)。
画像処理装置4は、受信された撮像対象Tg1の位置情報およびカメラ3の位置を推定可能な情報(例えば、カメラ3の位置情報,カメラ3の移動速度情報など)に基づいて、撮像範囲IA1を有する撮像画像に映る撮像対象Tg1の位置を予測する(T6)。
カメラ3は、撮像対象Tg1が撮像された撮像範囲IA1を有する撮像画像を画像処理装置4に送信する(T7)。
画像処理装置4は、予測された撮像対象Tg1の予測位置に基づいて、撮像範囲IA1の一部である複数の限定範囲Ar1,…,Arnのそれぞれのうち予測位置を含む限定範囲を限定的に読み出す(T8)。
画像処理装置4は、読み出された限定範囲から撮像対象Tg1を検出し、検出された撮像対象Tg1の位置を計測する(T9)。
画像処理装置4は、計測された撮像対象Tg1の計測位置と予測位置との差分を出力する(T10)。
画像処理装置4は、出力結果(差分情報)をアクチュエータ2に送信する(T11)。
アクチュエータ2は、出力結果(差分情報)に基づいて、現在のカメラ3の位置を補正する(T12)。
アクチュエータ2は、補正されたカメラ3の位置情報と撮像対象Tg1の位置情報とに基づいて、次の位置にカメラ3を移動させる(T13)。
アクチュエータ2は、ステップT13における動作処理を実行後、ステップT5の動作処理に戻り、撮像対象Tg1が変更されるまでステップT5~ステップT13までのリピート処理TRpの動作処理を繰り返す。なお、図4に示す動作手順は、撮像対象Tg1が他の撮像対象に変更された場合には、ステップT3の処理を省略してもよい。
また、シーケンス図に示すステップの手順は、上述した順序に限らない。例えば、ステップT6とステップT7において実行される動作手順は逆であってもよい。
以上により、実施の形態1に係る画像処理システムは、画像処理装置4における画像の読み出しを限定範囲に限定することにより、読み出し処理に要する時間を短縮し、カメラ3のフレームレートをより早く設定することができる。また、これにより、実施の形態1に係る画像処理システムは、同じ時間でより多くのサンプリング数(言い換えると、出力される誤差情報の数)を得ることができるため、位置誤差補正の精度をより高精度にすることができる。
図7は、実施の形態1に係る画像処理装置4の基本動作手順例を説明するフローチャートである。
受信部42は、撮像対象Tg1の位置情報およびカメラ3の位置を推定可能な情報(例えば、カメラ3の位置情報,カメラ3の移動速度情報など)をアクチュエータ2から受信する(St11)。
予測部43は、受信された撮像対象Tg1の位置情報およびカメラ3の位置を推定可能な情報に基づいて、撮像範囲IA1を有するカメラ3の撮像画像に映る撮像対象Tg1の位置を予測する(St12)。
検出部44は、予測された撮像対象Tg1の予測位置に基づいて、撮像範囲IA1の一部である複数の限定範囲Ar1,…,Arnのそれぞれのうち予測位置を含む限定範囲を高速で読み出す(St13)。
検出部44は、読み出された限定範囲から撮像対象Tg1を検出し、検出された撮像対象Tg1の位置を計測する。検出部44は、計測された撮像対象Tg1の計測位置と予測位置との差分を出力する(St14)。
画像処理装置4は、ステップSt14の処理を実行後、ステップSt12の処理に戻る。なお、図7に示す画像処理装置4の動作は、ユーザの指示(例えば、撮像対象Tg1が他の撮像対象に変更されるまで、差分を所定の回数出力するまで)あるいはエリアデータ12に記憶されたプログラムの動作を終了するまで繰り返し実行される。
上述したように、実施の形態1に係る画像処理装置4は、画像の読み出しを限定範囲に限定することにより、読み出し処理に要する時間を短縮し、カメラ3のフレームレートをより早く設定することができる。また、これにより、実施の形態1に係る画像処理装置4は、同じ時間でより多くのサンプリング数(言い換えると、出力される誤差情報の数)を得ることができるため、位置誤差補正の精度をより高精度にすることができる。
(実施の形態2)
実施の形態2では、実施の形態1に加え、異なる撮像範囲を有する複数のカメラのそれぞれを備えた画像処理システムについて説明する。実施の形態2に係る画像処理装置4は、撮像範囲のうち所定の限定範囲から抽出された特徴点に基づいて、カメラの移動速度の誤差またはカメラの移動位置の誤差を出力できる。なお、実施の形態2に係る画像処理システムの構成は、実施の形態1に係る画像処理システムと略同一であるため、同一の構成については同一の符号を付与して説明を簡略化または省略し、異なる内容について説明する。
図8は、実施の形態2に係る複数のカメラ3a,3b,3cのそれぞれを備える画像処理システムのユースケース例の説明図である。図8に示す実施の形態2に係る制御装置1の内部構成は、図1に示した構成と同一であるため簡略図を示す。なお、実施の形態2に係るアクチュエータ2および画像処理装置4は、実施の形態1において説明した内容と同一の内容については簡略化または省略し、異なる内容について説明する。
制御部20は、エリアデータ12に記憶されたデータおよびプログラムに基づいて、複数のカメラ3a,3b,3cのそれぞれに制御信号を出力する。また、制御部20は、エリアデータ12に記憶されたデータおよびプログラムに基づいて、複数のカメラ3a,3b,3cのそれぞれを移動させるための制御信号を駆動部22に出力する。なお、図8に示すカメラは3台であるが、カメラの台数は3台に限らないことは言うまでもない。
また、制御部20は、撮像するカメラの情報およびそのカメラの位置を推定可能な情報(例えば、カメラの位置情報,カメラの移動速度情報など)を画像処理装置4の受信部42に送信する。
メモリ21は、複数のカメラ3a,3b,3cのそれぞれの配置および撮像範囲IB1,IB2,IB3のそれぞれを記憶する。
複数のアーム部24a,24b,24cのそれぞれは、複数のカメラ3a,3b,3cのそれぞれを備え、駆動部22によって制御される。なお、例えば、1つのアーム部24aに複数のカメラ3a,3b,3cのそれぞれが設置されてもよい。
複数のカメラ3a,3b,3cのそれぞれは、駆動部22の制御に基づく複数のアーム部24a,24b,24cのそれぞれの駆動と連動して、移動する。複数のカメラ3a,3b,3cのそれぞれは、異なる撮像範囲を撮像可能に設置される。カメラ3aは、撮像範囲IB1を有する。カメラ3bは、撮像範囲IB2を有する。カメラ3cは、撮像範囲IB3を有する。
なお、複数のカメラ3a,3b,3cのそれぞれの動作は、実施の形態1に係るカメラ3と同一であるため、説明を省略する。
複数の撮像範囲IB1,IB2,IB3のそれぞれは、異なる撮像範囲である。なお、図8に示す複数の撮像範囲IB1,IB2,IB3のそれぞれは、隣接する撮像範囲として示されているが、複数のカメラ3a,3b,3cのそれぞれの位置に応じて移動する。
画像処理装置4は、実施の形態1に係る画像処理装置4に対して、カメラ切替部47を、さらに備える。
受信部42は、アクチュエータ2から受信されたカメラの各種情報を予測部43,検出部44,出力部46およびカメラ切替部47に出力する。なお、各種情報には、複数のカメラ3a,3b,3cのそれぞれのフレームレート,複数の撮像範囲IB1,IB2,IB3のそれぞれに関する情報,複数のカメラ3a,3b,3cのそれぞれのズーム倍率情報などを含む。
実施の形態2における検出部44は、初期状態において撮像対象が設定されず、以下に説明する特徴点を抽出する。
検出部44は、連続して撮像された少なくとも2フレームのうち、1フレーム目において設定された所定の限定範囲を読み出し、所定の特徴量を有する複数の特徴点のそれぞれを抽出する。検出部44は、抽出された複数の特徴点のそれぞれのうち、特徴量が多い1つの特徴点Tg2を抽出する。なお、検出部44は、1フレーム目において特徴点を抽出できない場合には、他の限定範囲または限定範囲を補正して再度読み出しを実行し、特徴点の抽出を行う。限定範囲の補正は、抽出された複数の特徴点のそれぞれの分布に基づいて、検出部44によって実行される。限定範囲の補正は、例えば、限定範囲における複数の特徴点のそれぞれの分布のうち、特徴点の密度(密集度)が高い方向に限定範囲を拡大またはシフトすることで実行される。
検出部44は、特徴点Tg2の抽出後に2フレーム目において同一の限定範囲を読み出し、特徴点Tg2を検出する。なお、検出部44は、2フレーム目において特徴点Tg2が検出できなかった場合には、他の限定範囲または限定範囲を補正して再度読み出しを実行する。また、検出部44は、特徴点Tg2を撮像対象として設定してもよい。
上述した所定の特徴量は、ユーザによって予め設定され、制御装置1のメモリ11に記憶される。画像処理装置4は、アクチュエータ2を介して制御装置1から所定の特徴量に関する情報を受信する。
計測部45は、1フレーム目(つまり、1枚目の撮像画像)に映る特徴点Tg2の位置Pt1と2フレーム目(つまり、2枚目の撮像画像)に映る特徴点Tg2との位置Pt1とを計測する。
出力部46は、2つのフレームのそれぞれに基づいて計測された特徴点Tg2の動き量と受信部42によって受信された複数のカメラ3a,3b,3cのそれぞれのフレームレートとに基づいて、特徴点Tg2の動き速度を算出する。出力部46は、算出された特徴点Tg2の動き速度と特徴点Tg2を撮像したカメラまたはアクチュエータ2の移動速度との速度の差分を出力する。出力部46は、出力結果をアクチュエータ2における誤差補正部23に送信する。
誤差補正部23は、受信された速度の差分に基づいて、駆動部22に対して特徴点Tg2を撮像したカメラの速度誤差を補正させる制御信号を出力する。
カメラ切替部47は、複数のカメラ3a,3b,3cのそれぞれに接続された複数のスイッチSW1,SW2,SW3のそれぞれのうちいずれか1つのスイッチと受信部42に撮像画像を出力するためのスイッチSWを有する。カメラ切替部47は、予測部43によって予測される特徴点Tg2の予測位置または制御部20から入力される制御信号に基づいて、スイッチSWと接続する複数のスイッチSW1,SW2,SW3のそれぞれ(つまり、複数のカメラ3a,3b,3cのそれぞれ)を切り替える。
図9は、実施の形態2に係る複数のカメラ3a,3b,3cのそれぞれを備える画像処理装置4の動作手順例を説明するフローチャートである。図9に示すフローチャートにおいて、画像処理装置4は、撮像対象が設定される。
受信部42は、撮像対象(不図示)の位置情報,撮像対象を撮像する複数のカメラ3a,3b,3cのそれぞれのうちいずれか1つのカメラの情報および複数のカメラ3a,3b,3cのそれぞれの位置を推定可能な情報(例えば、複数のカメラ3a,3b,3cのそれぞれの位置情報,複数のカメラ3a,3b,3cのそれぞれの移動速度情報など)をアクチュエータ2から受信する(St21)。
予測部43は、受信された撮像対象の位置情報,撮像対象を撮像するカメラの情報およびそのカメラの位置を推定可能な情報に基づいて、撮像対象を撮像するカメラのイメージセンサ上において撮像対象が映る位置を予測する(St22)。
カメラ切替部47は、受信された撮像対象を撮像するカメラの情報に基づいて、スイッチSWと接続されるスイッチを切り替える(St23)。
検出部44は、予測された撮像対象のイメージセンサ上における予測位置に基づいて、撮像範囲の一部である所定の限定範囲のうち、予測位置を含む限定範囲を高速で読み出す(St24)。
検出部44は、読み出された限定範囲の撮像画像から所定の特徴量を有する撮像対象を検出する。計測部45は、検出された撮像対象の位置を計測する(St25)。
出力部46は、計測された撮像対象の撮像画像上における計測位置とイメージセンサ上における予測位置との差分を出力する(St26)。
画像処理装置4は、ステップSt26の処理を実行後、ステップSt22の処理に戻る。なお、図7に示す画像処理装置4の動作は、撮像対象が他の撮像対象に変更されるまで、あるいはエリアデータ12に記憶されたプログラムの動作を終了するまで繰り返し実行される。
以降の説明において、予め撮像対象が設定されず、画像処理によって特徴点を抽出する場合の画像処理システムについて、図10および図11を参照して説明する。
以上のように、実施の形態2に係る画像処理装置4は、画像の読み出しを限定範囲に限定することにより、読み出し処理に要する時間を短縮し、カメラのフレームレートをより早く設定することができる。また、これにより、実施の形態2に係る画像処理装置4は、同じ時間でより多くのサンプリング数(言い換えると、出力される誤差情報の数)を得ることができるため、位置誤差補正の精度をより高精度にすることができる。
図10は、特徴点Tg2の検出例を示す図である。図11は、特徴点Tg2を検出する実施の形態2に係る画像処理装置4の動作手順例を説明するフローチャートである。
図10に示す画像は、連続して撮像され、同一の限定範囲Arにおいて読み出された2フレームの間の撮像画像に映る複数の特徴点のそれぞれの動きを抽出した画像であり、さらに複数の特徴点のそれぞれのうち、特徴点Tg2が抽出された様子を示す。図10に示す画像は、後述する図11のステップSt34において実行される処理によって生成される。
特徴点Tg2は、例えば、ハイスピードカメラである複数のカメラ3a,3b,3cのそれぞれによって、1フレーム目において撮像画像のうち座標(X1,Y1)で示される位置Pt1に位置し、2フレーム目において撮像画像のうち座標(X2,Y2)で示される位置Pt2に位置する。特徴点Tg2の動き量Δαは、位置Pt1と位置Pt2との間の座標の変化、あるいは位置Pt1から位置Pt2へのベクトルの大きさにより示される。
次に、図11に示すフローチャートを用いて、特徴点Tg2の検出手順について説明する。
受信部42は、アクチュエータ2からカメラの撮像範囲,移動速度,フレームレートおよびズーム倍率などのカメラに関する情報を受信し、検出部44,計測部45および出力部46に出力する。検出部44は、入力されたカメラに関する情報に基づいて、カメラの撮像範囲を設定する(St31)。
検出部44は、直近に連続して撮像される2フレームのうち、1フレーム目に撮像された撮像範囲のうち所定の限定範囲を高速で読み出す(St32)。
検出部44は、直近に連続して撮像される2フレームのうち、2フレーム目に撮像された撮像範囲のうち所定の限定範囲を高速で読み出す(St33)。
なお、読み出しを実行する限定範囲は、図4で説明したようにアクチュエータ2から予め設定された複数の限定範囲Ar1,…,Arnのそれぞれのうちいずれか1つの限定範囲でも、ユーザによって設定された限定範囲であってもよい。
検出部44は、直近に連続して撮像された2つのフレームのそれぞれにおける読み出し結果に基づいて、読み出された限定範囲の撮像画像に映る複数の特徴点のそれぞれを検出する(St34)。
検出部44は、ステップSt34において検出された複数の特徴点のそれぞれに対して重み付け(特徴量の抽出)を実行し、これらの複数の特徴点のそれぞれから所定の特徴量を有する所定の特徴点Tg2を抽出する。計測部45は、抽出された所定の特徴点Tg2に対して、動き量Δα(例えば、図10に示す読み出された撮像画像上における特徴点Tg2の位置Pt1,Pt2のそれぞれに基づく位置の差分)を計測する。出力部46は、アクチュエータ2から受信されたカメラのフレームレートおよび計測された動き量Δαに基づいて、所定の特徴点Tg2の動き速度を算出する(St35)。
出力部46は、算出された所定の特徴点Tg2の動き速度とカメラの移動速度との差分を出力し、出力された速度の差分をアクチュエータ2に送信する(St36)。
画像処理装置4は、ステップSt36における処理を実行後、ステップSt32の処理に戻り、同一の限定範囲から所定の特徴量を有する複数の特徴点のそれぞれを抽出する。
なお、ステップSt35における処理を実行した結果、限定範囲から所定の特徴量を有する特徴点が得られない場合には、読み出す限定範囲を他の限定範囲に変更して、ステップSt32以降に示す処理を再度実行してもよい。
以上により、実施の形態2に係る画像処理装置4は、画像の読み出しを限定範囲に限定することにより、読み出し処理に要する時間を短縮し、カメラのフレームレートをより早く設定することができる。また、これにより、実施の形態2に係る画像処理装置4は、同じ時間でより多くのサンプリング数(言い換えると、出力される誤差情報の数)を得ることができるため、速度誤差補正の精度をより高精度にすることができる。
(その他の変形例)
その他の変形例では、実施の形態2の応用例として、アクチュエータが飛行制御可能なドローンとした場合の画像処理システムを示す。また、その他の変形例における画像処理システムは、所定の限定範囲から検出された特徴点を追尾しながら、他の限定範囲で他の特徴点を検出する。なお、その他の変形例に係る画像処理システムの構成は、実施の形態2に係る画像処理システムと略同一であるため、同一の構成については同一の符号を付与して説明を簡略化または省略し、異なる内容について説明する。
図12は、ドローン2Aを備える画像処理システムのユースケース例の説明図である。図12に示すその他の変形例における制御装置1の内部構成は、図1に示した構成と同一であるため簡略図を示す。なお、その他の変形例における制御装置1においては、実施の形態1において説明した内容と同一の内容については簡略化または省略し、異なる内容について説明する。
その他の変形例における制御装置1は、例えばドローン2Aの操作者(ユーザ)により使用されるプロポ(所謂リモートコントローラ)であり、エリアデータ12に基づいて、ドローン2Aの飛行を遠隔から制御する。制御装置1は、ドローン2Aと無線N/Wによって接続され、エリアデータ12に基づいて、ドローン2Aの飛行を制御する制御信号を生成して送信する。
その他の変形例におけるエリアデータ12は、例えば、ドローン2Aが飛行する飛行経路に関する情報を含んで構成される。
また、制御装置1は、ユーザによって操作されてもよい。このような場合、制御装置1はユーザの操作に基づいて、ドローン2Aの飛行を遠隔から制御する。制御装置1は、ドローン2Aと無線N/Wによって接続され、ドローン2Aの飛行制御に関する制御信号を生成して送信する。
ドローン2Aは、例えば無人飛行体であり、ユーザの入力操作に応じて制御装置1から送信される制御信号に基づいて飛行する。ドローン2Aは、複数のカメラ3a,3bのそれぞれを備える。ドローン2Aは、制御部20と、メモリ21と、駆動部22と、誤差補正部23と、通信部25と、を含んで構成される。
通信部25は、アンテナAnt1を有し、制御装置1および画像処理装置4との間で無線N/W(例えば、Wifi(登録商標)を用いた無線通信網など)を介して接続され、情報やデータの送受信を行う。
通信部25は、制御装置1との通信により、例えばドローン2Aの移動方向,飛行高度などの制御に関する信号を受信する。通信部25は、アンテナAnt1によって受信されたドローン2Aの位置情報を示す衛星測位信号を制御装置1に送信する。アンテナAnt1については、後述する。
また、通信部25は、画像処理装置4との通信により、例えば特徴点の抽出に必要な特徴量に関する設定情報,複数のカメラ3a,3bのそれぞれの設定情報(例えば、撮像範囲,フレームレート,ズーム倍率,限定範囲に関する情報など),ドローン2Aの速度情報などを送信する。通信部25は、画像処理装置4との通信により、ドローン2Aの速度情報と複数のカメラ3a,3bのそれぞれによって撮像された撮像画像に映る撮像対象Tg2の動き速度との速度に関する差分(誤差)情報を受信する。通信部25は、受信された差分(誤差)情報を誤差補正部23に出力する。
アンテナAnt1は、例えば、人工衛星(不図示)から送信される衛星測位信号を受信可能なアンテナである。アンテナAnt1が受信可能な信号は、米国のGPS(Global Positioning System)の信号に限らず、例えばロシアのGLONASS(Global Navigation Satellite System)または欧州のGalileo等の衛星測位サービスを提供可能な人工衛星から送信される信号であってもよい。また、アンテナAnt1は、上述した衛星測位サービスを提供する人工衛星が送信する衛星測位信号を、補強あるいは補正可能な衛星測位信号を送信する準天頂衛星の信号を受信可能であってもよい。
駆動部22は、通信部25を介して制御装置1から受信された制御信号に基づいて、ドローン2Aを飛行駆動させる。駆動部22は、少なくとも1つの回転翼であり、回転により生まれる揚力を制御して飛行する。なお、駆動部22は、図12においてドローン2Aの天井面に図示されているが、設置場所は天井面に限らず、例えばドローン2Aの下部または側面など、ドローン2Aを飛行制御できる場所であればよい。
誤差補正部23は、画像処理装置4における出力部46から受信されたドローン2Aの飛行速度と撮像対象Tg3の動き速度との速度の差分(誤差)情報に基づいて、駆動部22の飛行速度を補正させる。
複数のカメラ3a,3bのそれぞれは、異なる撮像範囲IB1,IB2のそれぞれを撮像するカメラである。複数のカメラ3a,3bのそれぞれは、ドローン2Aに固定設置されてもよいし、様々な角度を撮像可能に設置されてもよい。また、複数のカメラ3a,3bのそれぞれは、ドローン2Aの側面,底面および天井面のそれぞれのうち、いずれの場所に備えられてもよい。例えば、複数のカメラ3a,3bのそれぞれは、ドローン2Aの天井面と底面または異なる側面同士など、異なる面に設置されてもよい。
なお、図12に示す撮像範囲IB1,IB2のそれぞれは、連続する撮像範囲となっているが、複数のカメラ3a,3bのそれぞれの設置場所に基づいて変更されてよく、撮像範囲は連続しなくてもよい。
複数のカメラ3a,3bのそれぞれは、通信部25を介して画像処理装置4におけるカメラ切替部47に撮像画像を送信する。
受信部42は、ドローン2Aとの間の通信により、複数のカメラ3a,3bのそれぞれのフレームレート,撮像範囲およびイメージセンサ上に設定された複数の限定範囲のそれぞれなどの複数のカメラ3a,3bのそれぞれに関する設定情報,複数のカメラ3a,3bのそれぞれによって撮像された撮像画像および特徴点に関する設定情報(例えば、撮像画像のうち読み出された限定範囲において特徴点を検出するために必要な特徴量など)を受信する。
検出部44は、受信部42によって受信された複数のカメラ3a,3bのそれぞれの設定情報に基づいて、イメージセンサにおける撮像対象Tg3を追尾するための追尾用限定範囲と他の撮像対象を検出するための検出用限定範囲とを設定する。なお、検出部44は、撮像対象Tg3を追尾するための追尾用カメラと他の撮像対象Tg4を検出するための検出用カメラとを設定し、追尾用カメラに対して撮像対象Tg3を追尾するための追尾用限定範囲を設定し、検出用カメラに対して他の撮像対象Tg4を検出するための検出用限定範囲を設定してもよい。
その他の変形例における検出部44は、初期状態において撮像対象Tg3が設定されていない。よって、撮像対象Tg3の設定について、以下に説明する。
検出部44は、イメージセンサ上において設定された追尾用限定範囲の撮像画像を読み出し、所定の特徴量を有する複数の特徴点のそれぞれを抽出する。検出部44は、抽出された複数の特徴点のそれぞれのうち特徴量を多く含む1つの特徴点を撮像対象Tg3として設定する。
検出部44は、イメージセンサ上において設定された検出用限定範囲の撮像画像を読み出し、所定の特徴量を有する複数の特徴点のそれぞれを抽出する。検出部44は、検出用限定範囲に含まれる複数の特徴点のそれぞれが追尾用限定範囲に含まれる複数の特徴点のそれぞれよりも多いか否かを判定する。なお、検出部44は、検出用限定範囲に含まれる複数の特徴点のそれぞれのうち最も特徴量が多い特徴点と撮像対象Tg3との特徴量に基づく判定を行ってもよい。検出部44は、判定の結果、複数の特徴点のそれぞれの数が多い方または特徴量を多く含む特徴点を含む限定範囲を追尾用限定範囲に設定する。さらに、検出部44は、他の限定範囲を検出用限定範囲として設定する。なお、画像処理装置4は、検出部44によって追尾用カメラと検出用カメラとが設定される場合においても同様の処理を実行する。
また、検出部44は、追尾用限定範囲に含まれる複数の特徴点のそれぞれの分布に基づいて、追尾用限定範囲を補正してもよい。これにより検出部44は、撮像対象Tg3が追尾用撮像範囲の境界付近に特徴量がより多い特徴点が存在する場合、他の撮像対象Tg4として設定することができる。
予測部43は、検出される撮像対象Tg3の動き量とドローン2Aの飛行方向とに基づいて、次の2フレームにおいて撮像されるイメージセンサ上の撮像対象Tg3の位置を予測する。予測部43は、予測した撮像対象Tg3の予測位置を検出部44に出力する。
なお、予測部43は、予測位置が他のカメラの撮像範囲または他のカメラの限定範囲に移行する場合には、移行先のカメラまたは移行先のカメラのイメージセンサ上において設定された限定範囲に関する情報を検出部44およびカメラ切替部47に出力してもよい。さらに予測部43は、撮像対象Tg3の予測位置が撮像範囲外に位置する場合には、撮像対象Tg3の予測位置が撮像範囲外に移動することを検出部44およびカメラ切替部47に出力してもよい。
出力部46は、計測部45によって計測された撮像画像における撮像対象Tg3の位置に基づいて、撮像対象Tg3の動き速度を算出する。なお、動き速度の算出に関する詳しい説明は、図13に示すフローチャートの説明と併せて行う。出力部46は、受信部42によって受信されたドローン2Aの飛行速度と撮像対象Tg3の動き速度との速度の差分を、通信部25を介して誤差補正部23に送信する。
カメラ切替部47は、設定された追尾用限定範囲と検出用限定範囲とを撮像するカメラをフレームごとに切り替え、設定された追尾用限定範囲と検出用限定範囲とが同じカメラの撮像範囲内にある場合にはカメラを切り替えない。なお、カメラ切替部47は、複数のカメラ3a,3bのそれぞれについて追尾用カメラと検出用カメラとが設定される場合においても同様にフレームごとにカメラの切り替えを実行する。
図13は、実施の形態2に係る画像処理装置4の追尾および検出動作手順例を説明するフローチャートである。なお、図13に示すフローチャートの説明では、図12に示すドローン2Aが備える複数のカメラ3a,3bのそれぞれから受信される場合の画像処理装置4の動作手順例について説明するが、カメラの台数は2台に限らず3台以上であってもよいし、カメラの画角が固定されない場合には1台であってもよい。
受信部42は、ドローン2Aとの間の無線通信により、複数のカメラ3a,3bのそれぞれのフレームレート、撮像範囲および限定範囲などの複数のカメラ3a,3bのそれぞれの設定情報および特徴点に関する設定情報(例えば、特徴点をして検出するために必要な特徴量など)を受信する。カメラ切替部47は、受信部42によって受信された複数のカメラ3a,3bのそれぞれの設定情報に基づいて、追尾用限定範囲を設定する(St41)。なお、複数のカメラ3a,3bのそれぞれのうち一方が追尾用カメラとして設定されている場合には、追尾用カメラが有する撮像範囲における限定範囲を追尾用限定範囲として設定する。
カメラ切替部47は、受信部42によって受信された複数のカメラ3a,3bのそれぞれの設定情報に基づいて、検出用限定範囲を設定する(St42)。なお、ユーザによって複数のカメラ3a,3bのそれぞれのうち一方が検出用カメラとして設定されている場合には、検出用カメラが有する撮像範囲における限定範囲を検出用限定範囲として設定する。なお、検出用限定範囲および検出用カメラは、1台でなく複数でもよい。
カメラ切替部47は、設定された追尾用限定範囲(言い換えると、追尾用検出範囲を撮像範囲に含むカメラ)にスイッチSWの接続を切り替える。受信部42は、カメラ切替部47によって切り替えられ、接続されたカメラから撮像画像を受信し、検出部44に出力する。検出部44は、入力された撮像範囲のうち設定された追尾用限定範囲を限定的に高速で読み出す(St43)。
カメラ切替部47は、設定された検出用限定範囲(言い換えると、検出用検出範囲を撮像範囲に含むカメラ)にスイッチSWの接続を切り替える。受信部42は、カメラ切替部47によって切り替えられ、接続されたカメラから撮像画像を受信し、検出部44に出力する。検出部44は、入力された撮像範囲のうち設定された検出用限定範囲を限定的に高速で読み出す(St44)。
検出部44は、読み出された検出用限定範囲の撮像画像から所定の特徴量を有する複数の特徴点のそれぞれを抽出する(St45)。
検出部44は、ステップSt44における処理で抽出された追尾用限定範囲の複数の特徴点のそれぞれとステップSt45における処理で抽出された検出用限定範囲の複数の特徴点のそれぞれとを比較し、検出用限定範囲に含まれる複数の特徴点のそれぞれが追尾用限定範囲に含まれる複数の特徴点のそれぞれよりも多いか否かを判定する(St46)。なお、判定方法は特徴点の数であっても、それぞれの限定範囲内における特徴点が有する最大特徴量の大小であってもよい。
検出部44は、ステップSt46における判定の結果、検出用限定範囲に含まれる複数の特徴点のそれぞれが追尾用限定範囲に含まれる複数の特徴点のそれぞれよりも多い場合には(St46,YES)、カメラ切替部47に現在の追尾用限定範囲を検出用限定範囲に変更させ、現在の検出用限定範囲を追尾用限定範囲に変更させる(St47)。
カメラ切替部47は、ステップSt46における判定の結果、検出用限定範囲に含まれる複数の特徴点のそれぞれが追尾用限定範囲に含まれる複数の特徴点のそれぞれよりも少ない場合(St46,NO)、またはステップSt47における処理を実行した後、現在の検出用限定範囲を他の限定範囲(具体的には、追尾用限定範囲として設定されず、撮像対象の予測位置を含む限定範囲以外の限定範囲)に変更する(St48)。
カメラ切替部47は、設定された追尾用限定範囲にスイッチSWの接続を切り替える。受信部42は、カメラ切替部47によって切り替えられたカメラのフレームを検出部44に出力する。検出部44は、入力された撮像範囲のうち設定された追尾用限定範囲を限定的に高速で読み出す(St49)。
検出部44は、ステップSt43における処理を実行して読み出された追尾用限定範囲の撮像画像から複数の特徴点のそれぞれを抽出する。検出部44は、抽出された複数の特徴点のうち1つの特徴点を撮像対象Tg3として設定し、ステップSt49における処理を実行して読み出された追尾用限定範囲の撮像画像から撮像対象Tg3を検出する。計測部45は、受信部42によって受信された複数のカメラ3a,3bのそれぞれの設定情報に基づいて、ステップSt43において検出された撮像対象Tg3の位置とステップSt49において検出された撮像対象Tg3の位置とを計測する。出力部46は、計測されたステップSt43において検出された撮像対象Tg3の位置とステップSt49において検出された撮像対象Tg2との位置の差分に基づいて、撮像対象Tg3の動き速度を算出する(St50)。
ここで、ステップSt50において算出される撮像対象の動き速度について説明する。
検出部44は、ステップSt46において検出用限定範囲に含まれる複数の特徴点のそれぞれが追尾用限定範囲に含まれる複数の特徴点のそれぞれよりも多い場合(St46,YES)には、ステップSt47における処理によって現在の検出用限定範囲を追尾用限定範囲に変更し、ステップSt49における処理によってステップSt44と同一の限定範囲を読み出す。よって、出力部46は、同一の限定範囲を連続して読み出すため、2フレームの間に変化した撮像対象の位置に基づいて撮像対象の動き速度を算出する。
一方、検出部44は、ステップSt46において検出用限定範囲に含まれる複数の特徴点のそれぞれが追尾用限定範囲に含まれる複数の特徴点のそれぞれよりも多くない場合(St46,NO)には、ステップSt49における処理によってステップSt43と同一の追尾用限定範囲を読み出す。このような場合において、検出部44は、ステップSt44で一度他の限定範囲を読み出すことになる。したがって、ステップSt49で検出された撮像対象(特徴点)の位置は、ステップSt44で検出された撮像対象から2フレーム後の撮像対象の位置となる。よって、出力部46は、一度他の限定範囲を読み出すため、3フレームの間に変化した撮像対象の位置に基づいて撮像対象の動き速度を算出する。
また、出力部46は、受信部42から入力されたドローン2Aの速度情報と撮像対象Tg3の動き速度との速度の差分を出力し、ドローン2Aに送信する(St51)。
画像処理装置4は、ステップSt51における処理を実行した後、ステップSt44の処理に戻る。2巡目以降のステップSt46の処理における検出部44は、現在の撮像対象Tg3よりも多い特徴量を含む他の撮像対象Tg4を検出する。また、検出部44は、撮像対象Tg3が複数のカメラ3a,3bのそれぞれの撮像範囲外に位置した場合には、ステップSt41の処理に戻ってもよい。
また、検出部44は、ステップSt51における処理を実行した後、追尾用限定範囲において検出された複数の特徴点のそれぞれの分布に基づいて、追尾用限定範囲を補正してもよい(St52)。なお、このような場合においても、画像処理装置4は、ステップSt52における処理を実行した後、ステップSt44の処理に戻る。
以上により、その他の変形例に係る画像処理装置4は、撮像対象Tg3を追尾と他の撮像対象の検出とを同時に実行できる。これにより、ドローン2Aは、ドローン2Aにおける姿勢制御を実行するにあたって、撮像範囲に撮像対象Tg3(目印)を得ることができる。さらに、上述した画像処理装置4を用いた場合、ドローン2Aは、ドローン2Aの移動速度または移動方向などの情報を撮像対象Tg3(目印)の動き速度または動く方向(ベクトル)の情報と比較することにより、ドローン2Aの姿勢に関する情報を得ることができる。
図14および図15を参照して、その他の変形例における撮像対象の追尾と検出とを説明する。図14は、追尾用限定範囲と検出用限定範囲との切り替え例を説明する図である。図14に示す横軸は、フレームを示す。また、図15は、撮像対象に対する追尾および検出の一例を説明する図である。なお、図14に示すフレームF1において画像処理装置4は、ステップSt51あるいはステップSt52までの処理を実行した後であって、ステップSt44における処理を実行する。
図14は、カメラ切替部47が予測部43によって撮像対象Tg3の予測位置に基づく追尾用限定範囲と設定された検出用限定範囲とをフレームごとに切り替える様子を示す。
図15に示す複数の撮像対象Tg3,Tg4のそれぞれは、検出部44によって抽出され、所定の特徴量を有する特徴点である。撮像対象Tg3は、既に検出部44によって抽出され、フレームF1の時点で撮像対象として設定された特徴点である。撮像対象Tg3は、ドローン2Aの飛行(移動)により、フレームごとに軌道RT1上を移動するように位置が変化する。撮像対象Tg4は、初期状態において検出部44によって未検出状態であり、所定の特徴量を有する特徴点である。撮像対象Tg4は、フレームF1において複数のカメラ3a,3bのそれぞれの撮像範囲外に位置する。撮像対象Tg4は、ドローン2Aの飛行(移動)により、フレームごとに軌道RT2上を移動するように位置が変化する。
フレームF1において、カメラ切替部47は、スイッチSWの接続先を、検出用限定範囲Ar11を撮像範囲に含むカメラ3aに切り替える。検出部44は、検出用限定範囲Ar11を高速で読み出し、所定の特徴量を有する特徴点を抽出する。検出部44は、抽出結果に基づいて、以前の追尾用限定範囲(不図示)における撮像対象Tg3の特徴量を超える特徴点が抽出されなかったと判定し、検出用限定範囲Ar11を隣接する検出用限定範囲Ar12に変更する。
フレームF2において、予測部43は、撮像対象Tg3の予測位置を位置Ps31(追尾用限定範囲Ar13)と予測し、予測結果をカメラ切替部47および検出部44に出力する。カメラ切替部47は、スイッチSWの接続先を、追尾用限定範囲Ar13を撮像範囲に含むカメラ3aのままにする。検出部44は、追尾用限定範囲Ar13を高速で読み出し、撮像対象Tg3を検出する。計測部45は、検出結果に基づいて、以前の追尾用限定範囲(不図示)において撮像された撮像対象Tg3の位置と追尾用限定範囲Ar13で撮像された撮像対象Tg3の位置とに基づいて、撮像対象Tg3の動き量を計測する。出力部46は、計測された撮像対象Tg3の動き量に基づく撮像対象Tg3の動き速度を算出し、撮像対象Tg3の動き速度とドローン2Aの飛行速度との速度の差分を出力し、通信部25を介して誤差補正部23に送信する。
フレームF3において、カメラ切替部47は、スイッチSWの接続先を、検出用限定範囲Ar12を撮像範囲に含むカメラ3aのままにする。検出部44は、検出用限定範囲Ar12を高速で読み出し、所定の特徴量を有する特徴点を抽出する。検出部44は、抽出結果に基づいて、以前の追尾用限定範囲Ar13における撮像対象Tg3の特徴量を超える特徴点が抽出されなかったと判定し、検出用限定範囲Ar12を隣接する検出用限定範囲Ar13に変更する。
フレームF4において、予測部43は、撮像対象Tg3の予測位置を位置Ps32(追尾用限定範囲Ar21)と予測し、予測結果をカメラ切替部47および検出部44に出力する。カメラ切替部47は、スイッチSWの接続先を、追尾用限定範囲Ar21を撮像範囲に含むカメラ3bに切り替える。検出部44は、追尾用限定範囲Ar21を高速で読み出し、撮像対象Tg3を検出する。計測部45は、検出結果に基づいて、以前の追尾用限定範囲Ar13において撮像された撮像対象Tg3の位置と追尾用限定範囲Ar21で撮像された撮像対象Tg3の位置とに基づいて、撮像対象Tg3の動き量を計測する。出力部46は、計測された撮像対象Tg3の動き量に基づく撮像対象Tg3の動き速度を算出し、撮像対象Tg3の動き速度とドローン2Aの飛行速度との速度の差分を出力し、通信部25を介して誤差補正部23に送信する。
フレームF5において、カメラ切替部47は、スイッチSWの接続先を、検出用限定範囲Ar13を撮像範囲に含むカメラ3aに切り替える。検出部44は、検出用限定範囲Ar13を高速で読み出し、所定の特徴量を有する特徴点を抽出する。検出部44は、抽出結果に基づいて、以前の追尾用限定範囲Ar21における撮像対象Tg3の特徴量を超える特徴点が抽出されなかったと判定し、検出用限定範囲Ar12を隣接する検出用限定範囲Ar13に変更する。
フレームF6において、予測部43は、撮像対象Tg3の予測位置を位置Ps33(追尾用限定範囲Ar22)と予測し、予測結果をカメラ切替部47および検出部44に出力する。カメラ切替部47は、スイッチSWの接続先を、追尾用限定範囲Ar22を撮像範囲に含むカメラ3bに切り替える。検出部44は、追尾用限定範囲Ar22を高速で読み出し、撮像対象Tg3を検出する。計測部45は、検出結果に基づいて、以前の追尾用限定範囲Ar21において撮像された撮像対象Tg3の位置と追尾用限定範囲Ar22で撮像された撮像対象Tg3の位置とに基づいて、撮像対象Tg3の動き量を計測する。出力部46は、計測された撮像対象Tg3の動き量に基づく撮像対象Tg3の動き速度を算出し、撮像対象Tg3の動き速度とドローン2Aの飛行速度との速度の差分を出力し、通信部25を介して誤差補正部23に送信する。
フレームF7において、カメラ切替部47は、スイッチSWの接続先を、検出用限定範囲Ar21を撮像範囲に含むカメラ3bのままにする。検出部44は、検出用限定範囲Ar21を高速で読み出す。検出部44は、位置Ps42に位置し、所定の特徴量を有する特徴点Tg4を抽出する。検出部44は、抽出結果に基づいて、検出用限定範囲Ar21における特徴点Tg4と、以前の追尾用限定範囲Ar22における撮像対象Tg3とを比較する。検出部44は、比較の結果、以前の追尾用限定範囲Ar22における撮像対象Tg3の特徴量を超える特徴点が抽出されなかったと判定し、検出用限定範囲Ar12を隣接する検出用限定範囲Ar13に変更する。
フレームF8において、予測部43は、撮像対象Tg3の予測位置を位置Ps34(追尾用限定範囲Ar23)と予測し、予測結果をカメラ切替部47および検出部44に出力する。カメラ切替部47は、スイッチSWの接続先を、追尾用限定範囲Ar23を撮像範囲に含むカメラ3bのままにする。検出部44は、追尾用限定範囲Ar23を高速で読み出し、撮像対象Tg3を検出する。計測部45は、検出結果に基づいて、以前の追尾用限定範囲Ar22において撮像された撮像対象Tg3の位置と追尾用限定範囲Ar23で撮像された撮像対象Tg3の位置とに基づいて、撮像対象Tg3の動き量を計測する。出力部46は、計測された撮像対象Tg3の動き量に基づく撮像対象Tg3の動き速度を算出し、撮像対象Tg3の動き速度とドローン2Aの飛行速度との速度の差分を出力し、通信部25を介して誤差補正部23に送信する。
フレームF9において、カメラ切替部47は、スイッチSWの接続先を、検出用限定範囲Ar22を撮像範囲に含むカメラ3bのままにする。検出部44は、検出用限定範囲Ar22を高速で読み出す。検出部44は、位置Ps43に位置し、所定の特徴量を有する特徴点Tg4を抽出する。検出部44は、抽出結果に基づいて、検出用限定範囲Ar22における特徴点Tg4と、以前の追尾用限定範囲Ar23における撮像対象Tg3とを比較する。検出部44は、比較の結果、以前の追尾用限定範囲Ar23における撮像対象Tg3の特徴量を超える特徴点が抽出されたと判定し、撮像対象を現在の撮像対象Tg3から次の撮像対象Tg4に変更する。また、検出部44は、検出用限定範囲Ar22を追尾用限定範囲Ar22に変更し、次の検出用限定範囲を隣接する他の検出用限定範囲Ar23に変更する。
なお、フレームF10における画像処理装置4は、予測部43によってフレームF11における撮像対象Tg4の位置を予測し、予測位置として位置Ps45が含まれる限定範囲Ar23を追尾用限定範囲Ar23として設定してもよい。このような場合、フレームF10において変更された検出用限定範囲Ar23は、さらに他の検出用限定範囲Ar11に変更されてもよい。
フレームF10において、カメラ切替部47は、スイッチSWの接続先を、フレームF9と同じ追尾用限定範囲Ar22撮像範囲に含むカメラ3bのままにする。検出部44は、追尾用限定範囲Ar22を高速で読み出す。検出部44は、位置Ps44に位置する撮像対象Tg4を検出する。計測部45は、検出結果に基づいて、フレームF9における撮像対象Tg4の位置Ps43とフレームF10における撮像対象Tg4の位置Ps44とに基づいて、撮像対象Tg4の動き量を計測する。出力部46は、計測された撮像対象Tg4の動き量に基づく撮像対象Tg4の動き速度を算出し、撮像対象Tg4の動き速度とドローン2Aの飛行速度との速度の差分を出力し、通信部25を介して誤差補正部23に送信する。
なお、画像処理装置4は、フレームF10において撮像対象Tg4が限定範囲Ar22の境界線に位置するため、図13に示したフローチャートにおけるステップSt52の処理を実行し、限定範囲Ar22または限定範囲Ar23の範囲を補正してもよい。
フレームF11において、カメラ切替部47は、スイッチSWの接続先を、検出用限定範囲Ar23を撮像範囲に含むカメラ3bのままにする。検出部44は、検出用限定範囲Ar23を高速で読み出す。検出部44は、位置Ps45に位置し、所定の特徴量を有する特徴点Tg4(現在の撮像対象Tg4)を抽出する。検出部44は、抽出結果に基づいて特徴点Tg4を撮像対象Tg4と判定し、検出用限定範囲Ar23から特徴点が抽出されなかったと判定し、検出用限定範囲Ar23を再帰的に検出用限定範囲Ar11に変更する。
なお、フレームF11における画像処理装置4は、抽出された特徴点Tg4が撮像対象Tg4と判定するとともに、フレームF10における撮像対象Tg4の位置Ps44とフレームF11における撮像対象Tg4の位置Ps45とに基づく撮像対象Tg4の動き量および動き速度を算出してもよい。
上述した図14および図15の説明において、検出用限定範囲は限定範囲Ar11から始まり限定範囲Ar23に順次変更された例を示したが、検出用限定範囲はランダムに変更(設定)されてもよい。また、図14および図15の説明における予測部43は、複数のカメラ3a,3bのそれぞれの切り替わるタイミングで撮像対象の位置を予測する例を示したが、予測のタイミングはこれに限定されない。予測部43は、例えば、次のフレームにおける追尾用検出範囲および検出用限定範囲を変更する前に撮像対象の位置を予測してもよい。
以上により、その他の変形例に係る画像処理装置4は、予測位置を反映した追尾用限定範囲および検出用限定範囲に変更できるため、より効率的に撮像対象を追尾し、かつ他の撮像対象を検出できる。また、その他の変形例に係る画像処理装置4は、同じ時間でより多くのサンプリング数(言い換えると、出力される誤差情報の数)を得ることができるため、位置誤差補正の精度をより高精度にすることができる。
以上により、実施の形態1に係る画像処理装置4は、撮像対象Tg1の位置情報と、少なくとも1つのカメラ3によって撮像された撮像対象Tg1が映る撮像画像とを受信する受信部42と、撮像対象Tg1の位置情報に基づいて、カメラ3の撮像範囲IA1内における撮像対象Tg1の位置を予測する予測部43と、予測された撮像対象Tg1の予測位置に基づいて、撮像範囲IA1の撮像画像から撮像範囲IA1の一部となる限定範囲Ar1の撮像画像を読み出して撮像対象Tg1を検出する検出部44と、検出された撮像対象Tg1の位置を計測する計測部45と、撮像対象Tg1の計測位置と予測位置との差分を出力する出力部46と、を備える。
これにより、画像処理装置4は、カメラ3により撮像された撮像対象Tg1の画像に対する効率的な画像処理を実行し、より高精度な撮像対象Tg1の位置誤差を算出できる。さらに、実施の形態1に係る画像処理装置4は、撮像範囲IA1のうち限定範囲を限定的に読み出すことにより、読み出し時間を短縮できるため、他の装置の動作速度への影響を抑制することができる。これにより、実施の形態1に係る画像処理装置4は、読み出し時間を短縮によって、サンプリング数を増加することができるため、より精度が高い位置誤差補正を実現することができる。
また、実施の形態2およびその他の変形例に係る画像処理装置4は、複数のカメラ3a,3bのそれぞれの位置情報と、少なくとも1つのカメラによって撮像された撮像画像とを受信する受信部42と、少なくとも1枚の撮像画像のうち、カメラの撮像範囲の一部となる限定範囲の撮像画像を読み出してカメラの位置の基準となる撮像対象(特徴点Tg3)を検出する検出部44と、検出された撮像対象の位置を計測する計測部45と、撮像対象の計測位置に基づいて、撮像対象の検出に用いられた撮像画像より後に撮像された撮像画像に映る撮像対象の位置を予測する予測部43と、予測された撮像対象の予測位置と撮像対象の計測位置との差分を出力する出力部46と、を備える。
これにより、実施の形態2およびその他の変形例に係る画像処理装置4は、カメラにより撮像された撮像対象Tg3の画像に対する効率的な画像処理を実行し、より高精度な撮像対象の位置誤差を算出できる。さらに、実施の形態2およびその他の変形例に係る画像処理装置4は、カメラの撮像範囲のうち限定範囲を限定的に読み出すことにより、読み出し時間を短縮できるため、他の装置の動作速度への影響を抑制することができる。これにより、実施の形態2およびその他の変形例に係る画像処理装置4は、読み出し時間を短縮によって、サンプリング数を増加することができるため、より精度が高い位置誤差補正を実現することができる。よって、実施の形態2およびその他の変形例に係る画像処理装置4を用いた場合、ドローン2Aは、出力された位置の差分に基づいて飛行中の姿勢制御を実行できる。
また、実施の形態2およびその他の変形例に係る画像処理装置4は、異なる撮像範囲を有する複数のカメラのそれぞれとの接続を切り替えるカメラ切替部47、をさらに備え、カメラ切替部47は、予測位置に応じて、複数のカメラのそれぞれのうち予測位置を撮像可能なカメラに切り替える。これにより、実施の形態1、実施の形態2およびその他の変形例に係る画像処理装置4は、予測部43によって予測された撮像対象Tg3の位置に応じて、複数のカメラ3a,3bのそれぞれを切り替えることができるため、複数のカメラ3a,3bのそれぞれの移動に伴う時間を短縮することができ、撮像された撮像対象Tg3の画像に対する効率的な画像処理を実行することができる。したがって、よって、実施の形態2およびその他の変形例に係る画像処理装置4を用いた場合、ドローン2Aは、一定時間に位置の差分をより多く受信することができ、これらの位置の差分のそれぞれに基づいて、より高精度な姿勢制御を実行できる。
また、実施の形態2およびその他の変形例に係る画像処理装置4におけるカメラ切替部47は、撮像対象Tg3の予測位置を含み、限定範囲を読み出して撮像対象Tg3を追尾するカメラを追尾用カメラとして設定し、追尾用カメラの撮像範囲以外の他の限定範囲を読み出して他の撮像対象Tg4を検出する他のカメラを検出用カメラとして設定し、追尾用カメラと検出用カメラとを切り替える。これにより、実施の形態2およびその他の変形例に係る画像処理装置4は、カメラ切替部47によるカメラの切り替えにより、撮像対象Tg3の追尾と他の撮像対象Tg4の検出とを効率的に実行し、かつ効率的な画像処理が実行できる。また、画像処理装置4は、撮像対象Tg3の追尾と他の撮像対象Tg4の検出とを同時に実行することにより、撮像対象Tg3のサンプリング数の減少を抑制しつつ、精度を維持して位置誤差を補正できる。したがって、実施の形態2およびその他の変形例に係る画像処理装置4を用いた場合、ドローン2Aは、常時位置の差分を受信することができ、より安定的に姿勢制御を実行できる。
また、実施の形態2およびその他の変形例に係る画像処理装置4におけるカメラ切替部47は、複数のカメラのそれぞれが有する複数の限定範囲のそれぞれのうち、撮像対象Tg3の予測位置を含む限定範囲を追尾用限定範囲として設定し、追尾用限定範囲以外の他の限定範囲のうち少なくとも1つの限定範囲を他の撮像対象Tg4を検出する検出用限定範囲として設定し、追尾用限定範囲と検出用限定範囲とを切り替える。これにより、実施の形態2およびその他の変形例に係る画像処理装置4は、撮像対象Tg3の追尾のための追尾限定範囲と他の撮像対象の検出のための検出用限定範囲とを設定することにより、カメラ切替部47によるカメラの切り替えをより効率的に実行できる。よって、画像処理装置4は、撮像された撮像画像の読み出し処理を効率的に実行することができる。また、画像処理装置4は、撮像対象Tg3の追尾と他の撮像対象Tg4の検出とを同時に実行することにより、撮像対象Tg3のサンプリング数の減少を抑制しつつ、精度を維持して位置誤差を補正できる。したがって、実施の形態2およびその他の変形例に係る画像処理装置4を用いた場合、ドローン2Aは、常時位置の差分を受信することができ、より安定的に姿勢制御を実行できる。
また、実施の形態2およびその他の変形例に係る画像処理装置4における検出部44は、少なくとも2枚の撮像画像の限定範囲のそれぞれに含まれ、所定の特徴量を有する少なくとも1つの特徴点を検出する。これにより、実施の形態2およびその他の変形例に係る画像処理装置4は、撮像画像から所定の特徴量を有する少なくとも1つの特徴点を検出することができるため、撮像対象がない場合でも信頼度が高い目印を設定できる。よって、画像処理装置4は、カメラにより撮像された撮像対象の画像に対する効率的な画像処理を実行し、より高精度な撮像対象の位置誤差を算出できる。したがって、実施の形態2およびその他の変形例に係る画像処理装置4を用いた場合、ドローン2Aは、より信頼度が高い位置の差分を受信し、差分に基づく姿勢制御を実行できる。
また、実施の形態2およびその他の変形例に係る画像処理装置4における検出部44は、検出された複数の特徴点のそれぞれの分布に基づいて、限定範囲を補正する。これにより、実施の形態2およびその他の変形例に係る画像処理装置4は、設定された限定範囲が適切でない場合(例えば、限定範囲の中心部でなく、端側により多い特徴量を有する特徴点が位置している)には、読み出した撮像画像から検出された複数の特徴点のそれぞれの分布に基づいて、限定範囲を補正することができる。よって、画像処理装置4は、読み出し範囲の補正を実行でき、より信頼できる特徴点を検出することができる。したがって、実施の形態2およびその他の変形例に係る画像処理装置4を用いた場合、ドローン2Aは、より信頼度が高い位置の差分を受信し、差分に基づく姿勢制御を実行できる。
また、実施の形態2およびその他の変形例に係る画像処理装置4における検出部44は、検出された特徴点を他の撮像対象として設定する。これにより、実施の形態2およびその他の変形例に係る画像処理装置4は、より信頼できる特徴点を撮像対象として設定することができる。したがって、画像処理装置4は、より高精度な撮像対象の位置誤差を算出できる。したがって、実施の形態2およびその他の変形例に係る画像処理装置4を用いた場合、ドローン2Aは、より信頼度が高い位置の差分を受信し、差分に基づく姿勢制御を実行できる。
また、実施の形態2およびその他の変形例に係る画像処理装置4における計測部45は、検出された撮像対象Tg2のそれぞれの位置に基づいて撮像対象の動き量を計測し、出力部46は、計測された撮像対象Tg2の動き量に基づいて、撮像対象Tg2の動き速度を算出して出力する。これにより、実施の形態2およびその他の変形例に係る画像処理装置4は、撮像対象Tg3の動き速度を算出できる。したがって、画像処理装置4は、より高精度に撮像対象Tg3の位置を予測できる。また、画像処理装置4は、予測位置に基づいて、カメラ切替部47の動作をより効率的に制御することができ、撮像対象を失う前に次の撮像対象を効率的に設定できる。したがって、実施の形態2およびその他の変形例に係る画像処理装置4を用いた場合、ドローン2Aは、常時位置の差分を受信することができ、より安定的に姿勢制御を実行できる。
また、実施の形態2およびその他の変形例に係る画像処理装置4における受信部42は、さらにカメラの移動速度情報を受信し、出力部46は、算出された撮像対象の動き速度とカメラの移動速度情報との差分を算出して出力する。これにより、実施の形態2およびその他の変形例に係る画像処理装置4は、撮像対象の位置の誤差だけでなく、カメラを移動させるアクチュエータ2の制御誤差を補正できる。また、アクチュエータ2は、出力された速度の差分に基づいて、カメラの位置誤差を補正することができる。よって、画像処理装置4は、より高精度な撮像対象の位置誤差を算出できると共に、他の装置(例えば、アクチュエータ2など)の制御誤差を算出することができる。したがって、実施の形態2およびその他の変形例に係る画像処理装置4を用いた場合、ドローン2Aは、常時位置の差分と速度の差分とを受信することができ、より安定的に姿勢制御を実行できるとともに、ドローン2Aの飛行制御誤差を補正できる。
以上、添付図面を参照しながら各種の実施の形態について説明したが、本開示はかかる例に限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例、修正例、置換例、付加例、削除例、均等例に想到し得ることは明らかであり、それらについても本開示の技術的範囲に属すると了解される。また、発明の趣旨を逸脱しない範囲において、上述した各種の実施の形態における各構成要素を任意に組み合わせてもよい。