<実施形態>
以下、図面を参照して、本発明の実施形態に係る撮影システムについて説明する。図1は、撮影システムの構成を例示する図である。撮影システムは、制御装置100、俯瞰カメラ300、複数のサブカメラ400、メインカメラ500、役割制御装置600を含む。撮影システムの各構成は、例えばLAN(Local Area Network)700を介して接続され、各装置はそれぞれ相互に通信することができる。
俯瞰カメラ300およびメインカメラ500は、映像線(不図示)を介して被写体を撮影した画像を制御装置100に送信する。また、俯瞰カメラ300およびメインカメラ500は、LAN700を介して撮影情報を制御装置100に送信する。俯瞰カメラ300は、撮影環境を俯瞰的に撮影できるように広角画角で撮影するカメラである。俯瞰カメラ300は、PTZカメラであってもよい。メインカメラ500は、ユーザーが手動で操作して撮影するカメラ、またはPTZカメラである。サブカメラ400は、メインカメラ500と連携して動作するPTZカメラであり、制御装置100で算出されたパン・チルト・ズーム値に基づいて駆動される。撮影システムは、複数のサブカメラ400を含む。
制御装置100は、メインカメラ500の撮影対象に対応する撮影対象を向くように複数のサブカメラ400の撮影方向を制御する。制御装置100は、役割制御装置600で設定される役割情報と、俯瞰カメラ300およびメインカメラ500の撮影画像から取得される情報とを用いて、サブカメラ400を駆動するためのパン・チルト・ズーム値を算出する。
役割情報は、メインカメラ500の撮影対象である被写体に対応するサブカメラ400の被写体の情報である。役割情報は、撮影システムに含まれるカメラがメインカメラ500であるかサブカメラ400であるかの情報を含んでもよい。俯瞰カメラ300の撮影画像から取得される情報は、メインカメラ500およびサブカメラ400の位置情報を含む。メインカメラ500の撮影画像から取得される情報は、メインカメラ500の撮影対象である被写体の情報を含む。制御装置100は、算出したパン・チルト・ズーム値を、サブカメラ400へ送信する。制御装置100は、ワークステーションまたはエッジAIデバイスなどである。
役割制御装置600は、メインカメラ500の動作に連携して制御されるサブカメラ4
00の役割を設定する。役割制御装置600は、メインカメラ500の撮影対象である被写体に対応して、サブカメラ400がどの被写体を撮影対象とするかについての役割を設定する。役割制御装置600は、例えば、ユーザーの指示によりサブカメラ400の役割を設定することができる。役割制御装置600は、ノート型PC(パーソナルコンピュータ)、スイッチコントローラ(マクロをボタンに割り当て可能な機材)などの電子機器である。ユーザーは、サブカメラ400の役割を、例えば、ノート型PCのユーザーインターフェース(UI)を介して設定したり、スイッチコントローラのボタン操作により設定したりすることができる。
図2(A),2(B)および図3(A)~3(C)を用いて、制御装置100、俯瞰カメラ300、サブカメラ400、メインカメラ500、および役割制御装置600の構成について詳細に説明する。
図2(A)は、制御装置100の構成例を示す図である。制御装置100は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、およびROM(Read Only Memory)103を含む。また、制御装置100は、推論部104、ネットワークインターフェース(I/F)105、および入力部106を含む。制御装置100に含まれる構成は、内部バス110を介して相互に接続される。
CPU101は、制御装置100全体の制御を行う。RAM102は、DRAM(Dynamic Random Access Memory)などの高速の記憶装置である。CPU101は、OS、各種プログラムおよび各種データを、一時的にRAM102にロードして、各種処理を実行する。RAM102は、CPU101がOSおよび各種プログラムを実行する際の作業領域としても使用される。
ROM103は、フラッシュメモリ、HDD、SSD、およびSDカード等の不揮発性の記憶装置である。ROM103は、OS、各種プログラムおよび各種データの永続的な記憶領域として使用され、短期的な各種データの記憶領域としても使用される。
推論部104は、俯瞰カメラ300、サブカメラ400、およびメインカメラ500による撮影画像をRAM102から読み出し、読み出した撮影画像からカメラおよび被写体などの物体の位置および存在有無を推定する。推論部104は、例えば、GPU(Graphics Processing Unit)等の画像処理および推論処理に特化した演算装置である。GPUは、学習処理に利用する演算装置として有効である。なお、推論部104は、FPGA(Field -Programmable Gate Array)といった再構成可能な論理回路であってもよい。また、推論部104の処理は、CPU101によって実現されてもよい。
ネットワークI/F105は、LAN700と接続するためのインターフェースであり、Ethernet(登録商標)等の通信媒体を介して、サブカメラ400などの外部装置との通信を制御する。なお、ネットワークI/F105は、シリアル通信インターフェースなどであってもよい。
図2(B)は、俯瞰カメラ300の構成例を示す図である。俯瞰カメラ300は、CPU301、RAM302、ROM303、ネットワークI/F305、画像処理部306、および画像センサ307を含む。俯瞰カメラ300に含まれる構成は、内部バス310を介して相互に接続される。
CPU301は、俯瞰カメラ300全体の制御を行う。RAM302はDRAMなどの
高速の記憶装置である。CPU301は、OS、各種プログラムおよび各種データを、一時的にRAM102にロードして、各種処理を実行する。RAM302は、CPU301がOSおよび各種プログラムを実行する際の作業領域としても使用される。
ROM303は、フラッシュメモリ、HDD、SSD、およびSDカード等の不揮発性の記憶装置である。ROM303は、OS、各種プログラムおよび各種データの永続的な記憶領域として使用され、短期的な各種データの記憶領域としても使用される。
画像処理部306は、CCDまたはCMOSなどの画像センサ307に接続される。画像処理部306は、画像センサ307から取得した画像データを所定のフォーマットに変換し、RAM302に転送する。画像処理部306は、変換後の画像データを圧縮してRAM302に転送してもよい。
画像処理部306は、画像センサ307から画像を取得する際に、画像に対して色補正、露出制御、およびシャープネス補正などの画像処理を行うことができる。また、画像処理部306は、画像データの一部の領域を切り出すクロップ処理を行なってもよい。画像処理部306による処理は、ネットワークI/F305を介して、制御装置100などの外部装置から受信した指示に基づいて実行されてもよい。
ネットワークI/F305は、LAN700と接続するためのインターフェースであり、Ethernet(登録商標)等の通信媒体を介して、制御装置100などの外部装置との通信を制御する。なお、ネットワークI/F305は、シリアル通信インターフェースなどであってもよい。
撮影システムは、複数のサブカメラ400を含み、メインカメラ500は複数のサブカメラ400と連携して撮影を行う。図3(A)は、サブカメラ400の構成例を示す図である。撮影システムに含まれる複数のサブカメラ400は、いずれも図3(A)に示す構成と同様の構成を有する。サブカメラ400は、CPU401、RAM402、ROM403、ネットワークI/F405、画像処理部406、画像センサ407、駆動I/F408、駆動部409、およびフォーカス制御部411を含む。サブカメラ400に含まれる構成は、内部バス410を介して相互に接続される。
CPU401は、サブカメラ400全体の制御を行う。RAM402はDRAMなどの高速の記憶装置である。CPU401は、OS、各種プログラムおよび各種データを、一時的にRAM402にロードして、各種処理を実行する。RAM402は、CPU401がOSおよび各種プログラムを実行する際の作業領域としても使用される。
ROM403は、フラッシュメモリ、HDD、SSD、およびSDカード等の不揮発性の記憶装置である。ROM403は、OS、各種プログラムおよび各種データの永続的な記憶領域として使用され、短期的な各種データの記憶領域としても使用される。
画像処理部406は、CCDまたはCMOSなどの画像センサ407に接続される。画像処理部406は、画像センサ407から取得した画像データを所定のフォーマットに変換し、RAM402に転送する。画像処理部406は、変換後の画像データを圧縮してRAM402に転送してもよい。
画像処理部406は、画像センサ407から画像を取得する際に、画像に対して色補正、露出制御、およびシャープネス補正などの画像処理を行うことができる。また、画像処理部406は、画像データの一部の領域を切り出すクロップ処理を行なってもよい。画像処理部406による処理は、ネットワークI/F405を介して、制御装置100などの
外部装置から受信した指示に基づいて実行されてもよい。
ネットワークI/F405は、LAN700と接続するためのインターフェースであり、Ethernet(登録商標)等の通信媒体を介して、制御装置100などの外部装置との通信を制御する。なお、ネットワークI/F405は、シリアル通信インターフェースなどであってもよい。
駆動I/F408は、駆動部409との接続部であり、駆動部409へ制御信号等を送受信する。駆動部409は、サブカメラ400の撮影方向を変更するための回動機構であり、メカ駆動系および駆動源のモータ等を含む。駆動部409は、駆動I/F408を介してCPU401から受け取る指示に基づいて、水平方向に撮影画角を変更するパン動作および垂直方向に撮影画角を変更するチルト動作といった回動と、光学的に撮影画角を変更するズーム動作とを駆動する。
フォーカス制御部411は、画像センサ407が撮影画像を取得する際のフォーカスを制御する。フォーカスを合わせる手法としては、コントラスト検出方式、位相差検出方式など公知の技術を用いることができる。
図3(B)は、メインカメラ500の構成例を示す図である。以下の説明では、メインカメラ500は、ユーザーによって手動で操作されることが想定される。具体的には、ユーザーは、不図示のカメラ制御コントローラを用いて、メインカメラ500のPTZ制御を行うことができる。メインカメラ500は、PTZカメラに限られず、ユーザーが物理的に手動で動かすことで撮影画像が得られる構成のカメラであってもよい。
制御装置100は、メインカメラ500の向き情報(正対設置時を基準としたパン、チルトの角度)を、ネットワークI/F505を介して、LAN700経由で取得可能である。
メインカメラ500は、CPU501、RAM502、ROM503、ネットワークI/F505、画像処理部506、画像センサ507、駆動I/F508、および駆動部509を含む。メインカメラ500に含まれる構成は、内部バス510を介して相互に接続される。
CPU501は、メインカメラ500全体の制御を行う。RAM502はDRAMなどの高速の記憶装置である。CPU501は、OS、各種プログラムおよび各種データを、一時的にRAM502にロードして、各種処理を実行する。RAM502は、CPU501がOSおよび各種プログラムを実行する際の作業領域としても使用される。
ROM503は、フラッシュメモリ、HDD、SSD、およびSDカード等の不揮発性の記憶装置である。ROM503は、OS、各種プログラムおよび各種データの永続的な記憶領域として使用され、短期的な各種データの記憶領域としても使用される。
画像処理部506は、CCDやCMOSなどの画像センサ507に接続される。画像処理部506は、画像センサ507から取得した画像データを所定のフォーマットに変換し、RAM502に転送する。画像処理部506は、変換後の画像データを圧縮してRAM502に転送してもよい。
画像処理部506は、画像センサ507から画像を取得する際に、画像に対して色補正、露出制御、およびシャープネス補正などの画像処理を行うことができる。また、画像処理部506は、画像データの一部の領域を切り出すクロップ処理を行なってもよい。
画像処理部506による処理は、ネットワークI/F505を介して、制御装置100などの外部装置から受信した指示に基づいて実行されてもよい。
ネットワークI/F505は、LAN700と接続するためのインターフェースであり、Ethernet(登録商標)等の通信媒体を介して、制御装置100などの外部装置との通信を制御する。なお、ネットワークI/F505は、シリアル通信インターフェースなどであってもよい。
駆動I/F508は、駆動部509との接続部であり、駆動部509へ制御信号等を送受信する。駆動部509は、サブカメラ400の撮影方向を変更するための回動機構であり、メカ駆動系および駆動源のモータ等を含む。駆動部509は、駆動I/F508を介してCPU501から受け取る指示に基づいて、水平方向に撮影画角を変更するパン動作および垂直方向に撮影画角を変更するチルト動作といった回動と、光学的に撮影画角を変更するズーム動作とを駆動する。
図3(C)は、役割制御装置600の構成例を示す図である。役割制御装置600は、CPU601、RAM602、ROM603、ネットワークI/F605、および入力部611を含む。役割制御装置600に含まれる構成は、内部バス610を介して相互に接続される。
CPU601は、役割制御装置600全体の制御を行う。RAM602はDRAMなどの高速の記憶装置である。CPU601は、OS、各種プログラムおよび各種データを、一時的にRAM602にロードして、各種処理を実行する。RAM502は、CPU601OSおよび各種プログラムを実行する際の作業領域としても使用される。
ROM603は、フラッシュメモリ、HDD、SSD、およびSDカード等の不揮発性の記憶装置である。ROM603は、OS、各種プログラムおよび各種データの永続的な記憶領域として使用され、短期的な各種データの記憶領域としても使用される。
ネットワークI/F605は、LAN700と接続するためのインターフェースであり、Ethernet(登録商標)等の通信媒体を介して、制御装置100などの外部装置との通信を制御する。なお、ネットワークI/F605は、シリアル通信インターフェースなどであってもよい。
入力部611は、ボタン、マウス、キーボードといった操作部材を含む。ユーザーは、操作部材を用いてGUIを制御することで役割情報を入力することができる。CPU601は、ユーザーが指定した役割情報を制御装置100へ送信する。なお、役割制御装置600は、制御装置100と1つの装置として構成されてもよい。
図4を参照して、制御装置100の具体的な処理について説明する。制御装置100は、メインカメラ500の撮影対象に対応する撮影対象を向くように、複数のサブカメラ400それぞれのパン・チルト・ズーム値を算出し、各サブカメラ400の撮影方向を制御する。図4の例では、複数のサブカメラ400は、サブカメラ400aおよびサブカメラ400bであり、総称してサブカメラ400とも記載される。
図4は、制御装置100の機能構成を例示するブロック図である。制御装置100の各機能部の処理は、図2(A)に示すハードウェア資源を用いて実現される。通信機能を制御するソフトウェア、およびオペレーティングシステム等の汎用的なソフトウェアの処理についての詳細な説明は省略される。
制御装置100は、役割設定部120、第1認識部121、主被写体決定部122、追尾被写体決定部123、撮影方向取得部124、および第2認識部125を含む。各機能部の処理を実現するためのプログラムは、ROM103に格納される。CPU101は、ROM103に格納されたプログラムをRAM102に読み出して実行することにより、各機能部の処理を実現することができる。
役割設定部120は、役割制御装置600で設定された役割情報に基づいて、サブカメラ400の撮影対象を設定する。役割情報は、メインカメラ500の撮影対象(主被写体)に対応するサブカメラ400の撮影対象(追尾被写体)の情報を含む。
ユーザーは、役割制御装置600の入力部611を介して役割情報を設定することができる。具体的には、ユーザーは、役割制御装置600のGUIに対してキーボードなどの操作部材で操作をすることで、メインカメラ500の撮影対象と、メインカメラ500の撮影対象に対応するサブカメラ400の撮影対象とを設定する。
図5は、役割情報を説明する図である。ユーザーは、役割制御装置600に対し、図5に示すように複数のパターンの役割情報を予め登録しておくことができる。例えば、パターン1では、メインカメラ500の変更前の撮影対象である被写体Aに対応するサブカメラ400の撮影対象は被写体Aである。また、メインカメラ500の変更後の撮影対象である被写体Bに対応するサブカメラ400の撮影対象は被写体Bである。パターン1は、メインカメラ500の被写体とサブカメラ400の被写体とが同じになるパターンである。
一方、パターン5では、メインカメラ500の変更前の撮影対象である被写体Aに対応するサブカメラ400の撮影対象は被写体Bである。また、メインカメラ500の変更後の撮影対象である被写体Cに対応するサブカメラ400の撮影対象は被写体Dである。パターン5は、メインカメラ500の被写体とサブカメラ400の被写体とが異なるパターンである。
また、パターン1およびパターン2のように、変更前のメインカメラ500の被写体と、変更前のサブカメラ400の被写体とは、同じ被写体であってもよい。パターン4およびパターン7のように、変更前のメインカメラ500の被写体と、変更後のサブカメラ400の被写体とは、同じ被写体であってもよい。パターン4およびパターン6のように、変更後のメインカメラ500の被写体と、変更前のサブカメラ400の被写体とは、同じ被写体であってもよい。パターン1およびパターン3のように、変更後のメインカメラ500の被写体と、変更後のサブカメラ400の被写体とは、同じ被写体であってもよい。
パターン3~パターン7のように、変更前のメインカメラ500の被写体と、変更前のサブカメラ400の被写体とは、異なる被写体であってもよい。パターン2、およびパターン4~パターン7のように、変更後のメインカメラ500の被写体と、変更後のサブカメラ400の被写体とは、異なる被写体であってもよい。
役割制御装置600は、図5に例示する複数のパターンのうちユーザーが指定した役割情報ROLEを制御装置100の役割設定部120に送信する。役割設定部120は、役割制御装置600から受信した役割情報ROLEに基づいて、メインカメラ500の撮影対象とサブカメラ400の撮影対象との対応関係を設定する。役割設定部120は、設定した役割情報ROLEを、追尾被写体決定部123に送信する。
なお、パターン1とパターン2のように両立しないパターンをユーザーが指定した場合には、役割設定部120は、後で登録されたパターンに基づいてサブカメラ400の撮影
対象を設定すればよい。また、メインカメラ500の被写体が被写体Aから被写体Dに変更された場合など、ユーザーが指定したパターンに含まれないケースでは、役割設定部120は、例えば、サブカメラ400の撮影対象をメインカメラ500と同じ撮影対象に設定してもよい。
第1認識部121は、俯瞰カメラ300の撮影画像IMG、および各カメラの設置位置の情報とマーカー座標の情報とを含む基準位置情報REF_POSIを、RAM102から読み出す。第1認識部121は、RAM102から読み出した情報を用いて、撮影対象の人物(被写体)を検出し、検出した被写体の位置情報POSITIONを取得する。複数の被写体が検出された場合、位置情報POSITIONはそれぞれの被写体の位置情報を含む。第1認識部121は、検出した被写体の位置情報POSITIONおよびそれぞれの被写体の識別情報IDを出力する。
各カメラの設置位置は、撮影領域を真上から見た平面座標系でのカメラの位置として、手動、または不図示のセンサを用いて計測することができる。計測された各カメラの設置位置の情報は、例えば、ユーザーにより、入力部106を介して制御装置100に入力される。CPU101は、入力された各カメラの設置位置の情報をRAM102に書き込む。また、計測された各カメラの設置位置の情報は、センサから制御装置100に送信され、CPU101によってRAM102に書き込まれてもよい。
マーカーは、座標変換に用いられるホモグラフィー変換行列を算出するために、撮影領域を真上から見て認識可能に設置される。撮影領域の座標系におけるマーカー座標は、手動、または不図示のセンサを用いて計測することができる。マーカーは、床または地面などの色とは異なる色の印などであるが、手動計測、またはセンサによる計測が可能であればどのような形態でもよい。マーカーを計測するセンサがカメラである場合、特定の色の印をマーカーとして設置することで、カメラは、撮影領域の撮像画像からマーカーの色を抽出してマーカー座標を取得することができる。マーカー座標の情報は、例えば、ユーザーにより、入力部106を介して制御装置100に入力される。CPU101は、入力されたマーカー座標の情報をRAM102に書き込む。また、計測されたマーカー座標の情報は、センサから制御装置100に送信され、CPU101によってRAM102に書き込まれてもよい。
基準位置情報REF_POSIおよび被写体の位置情報POSITIONは、真上から見た撮影領域の平面座標系における座標で表わされる。第1認識部121は、例えば3人の被写体を検出した場合、3人分の位置情報POSITIONおよび識別情報IDを出力する。第1認識部121は、出力した情報をRAM102に書き込む。
図6(A),6(B)を参照して、撮影領域に存在する被写体の位置を検出し、検出された被写体の位置情報POSITIONを取得する方法について説明する。図6(A)は、俯瞰カメラ300の撮影画像の座標系を示す。図6(B)は、真上から見た撮影領域の座標系を示す。第1認識部121は、俯瞰カメラ300の撮影画像の座標系と、真上から見た撮影領域の座標系との関係に基づいて、真上から見た撮影領域の座標系での被写体の座標を、位置情報POSITIONとして取得する。
サブカメラ400aおよびサブカメラ400bが、追尾する被写体の方向を向くようなパン値を計算する場合、パン動作の軸に対して垂直な平面座標系で計算すると、角度計算は簡易になる。例えば、サブカメラ400aおよびサブカメラ400bが床または地面に対して垂直に設置されている場合には、パン動作の軸に対して垂直な座標平面は、床または地面に対して平行であり、被写体が存在する空間を真上から見た座標平面となる。
以下の説明では、サブカメラ400aおよびサブカメラ400bは床または地面に対して垂直に設置されており、各サブカメラ400のパン値は、真上から見た撮影領域の座標系で算出される。第1認識部121は、図6(A)に示す俯瞰カメラ300の撮影画像の座標系(以下、俯瞰カメラ座標系と記載する)での被写体の座標を、図6(B)に示す真上から見た撮影領域の座標系(以下、平面座標系と記載する)での座標に変換する。これにより、第1認識部121は、真上から見た撮影領域の座標系における、各サブカメラ400のパン値を算出することができる。
俯瞰カメラ座標系での被写体の座標は、ホモグラフィー変換行列Hを用いて、以下の式1により、平面座標系での座標に変換される。
式1中のx、yは、それぞれ俯瞰カメラ座標系の水平座標、垂直座標である。式1中のX、Yは、それぞれ平面座標系の水平座標、垂直座標である。
第1認識部121は、RAM102から基準位置情報REF_POSIを読み出す。REF_POSIに含まれるマーカーMark_A~Mark_Dのマーカー座標は、真上から見た撮影領域の平面座標系での座標であり、式1の左辺に代入される。また、第1認識部121は、俯瞰カメラ300の撮影画像IMGから、俯瞰カメラ座標系でのマーカー座標を取得し、式1の右辺に代入する。俯瞰カメラ座標系でのマーカー座標と平面座標系でのマーカー座標とが式1に代入されることで、ホモグラフィー変換行列Hが求められる。
ホモグラフィー変換行列Hが求められれば、第1認識部121は、式1を用いて、図6(A)に示す俯瞰カメラ座標系を、図6(B)に示す平面座標系にマッピングすることができる。すなわち、第1認識部121は、俯瞰カメラ座標系の任意の座標を、平面座標系の対応する座標に変換することができる。したがって、第1認識部121は、俯瞰カメラ300の撮影画像IMGに映っている被写体A、被写体B、および被写体Cの位置を、図6(B)の平面座標系で把握することができる。第1認識部121は、マーカー座標を用いて求めたホモグラフィー変換行列HをRAM102に書き込む。
図7(A),7(B)を参照して、俯瞰カメラ300から入力された撮影画像IMGから、被写体検出の推論モデルを用いて、被写体の位置を検出する方法について説明する。被写体検出の推論モデルは、予めROM103に格納される。被写体として、例えば人物を検出する場合、第1認識部121は、ディープラーニング等の機械学習手法により作成された学習済みの人物検出推論モデルを用いて、俯瞰カメラ300の撮影画像IMGから人物を検出することができる。人物検出推論モデルは、画像を入力とし、画像内に写る人物の画像内での座標を出力する。
第1認識部121(推論部104)は、俯瞰カメラ300から入力された撮影画像IMGを人物検出推論モデルに入力し、画像内に存在する人物を検出する。図7(A)は、人物検出推論モデルにより検出された人物を矩形で囲んで示している。図7(A)の例では、俯瞰カメラ300の撮影画像IMGから、被写体A、被写体B、および被写体Cが検出されている。第1認識部121は、俯瞰カメラ300の撮影画像で検出された人物の位置(座標)の情報をRAM102に書き込む。
なお、第1認識部121は、機械学習による方法に限られず、例えば画像中の局所的な特徴点を照合して、被写体である人物を検出するSIFT(Scale-Invariant Feature Transform)法を用いてもよい。また、第1認識部121は、テンプレート画像との類似度を求めて被写体を検出するテンプレートマッチング法を用いて人物を検出してもよい。
第1認識部121は、図7(A)に示す俯瞰カメラ座標系で検出した被写体を囲む矩形上の点、例えば、矩形の下辺(足元側の辺)の中点を被写体検出位置とする。第1認識部121は、被写体検出位置の座標を、式1を用いて図7(B)に示す平面座標系の座標に変換する。
具体的には、第1認識部121は、RAM102からホモグラフィー変換行列Hを読み出し、俯瞰カメラ座標系での被写体Aの検出位置の座標(xa、ya)を式1のx、yに代入することで、平面座標系での座標(XA、YA)に変換することができる。同様に、第1認識部121は、被写体Bおよび被写体Cの検出位置の座標(xb、yb)および(xc、yc)を式1のx、yに代入することで、平面座標系での被写体Bおよび被写体Cの座標(XB、YB)および(XC、YC)に変換することができる。第1認識部121は、変換後の被写体A,B,Cの座標を、検出された被写体の位置情報POSITIONとしてRAM102に書き込む。
第1認識部121は、検出された被写体の位置情報POSITIONのほかに、被写体の識別情報IDを出力する。第1認識部121は、ROM103に格納した人物特定のための学習済みモデルを用いて、検出された被写体の識別情報IDを取得することができる。当該学習済みモデルは、ディープラーニング等の機械学習手法を用いて、過去の撮影画像と過去の撮影画像における検出結果とを学習させ、被写体の識別情報IDを出力するように生成された学習済みモデルである。
第1認識部121は、ROM103から読み出した人物特定のための学習済みモデルに、俯瞰カメラ300の撮影画像と俯瞰カメラ300の撮影画像で検出した被写体の位置情報とを入力して、識別情報IDを取得することができる。人物特定の学習済みモデルは、公知の技術によって生成することができる。例えば、人物特定の学習済みモデルは、過去のフレーム情報および過去のフレーム情報における検出結果を入力とし、識別情報IDが出力されるように学習させて生成することができる。第1認識部121は、人物特定の学習済みモデルに対し、現在のフレーム情報を入力することで、現在のフレームで検出された被写体の識別情報IDを取得することができる。
主被写体決定部122は、メインカメラ500の向きと被写体の位置情報とに基づいて、メインカメラ500の撮影対象である主被写体を決定する。主被写体決定部122は、決定した主被写体の情報を、撮影対象を示す情報として取得する。主被写体決定部122は、第1認識部121が取得した被写体の位置情報POSITION、およびメインカメラ500から入力される向きの情報ANGLEに基づいて、メインカメラ500の撮影対象である主被写体を決定する。例えば、主被写体決定部122は、第1認識部121が検出した被写体の中で、メインカメラ500の向き(光軸上)に、より近い位置に存在する被写体を主被写体に決定することができる。主被写体決定部122は、決定した主被写体の識別情報MAIN_SUBJECT_IDを、RAM102に書き込む。
なお、主被写体決定部122は、メインカメラ500の撮影画像から主被写体を検出してもよい。主被写体決定部122は、例えば、メインカメラ500の撮影画像の中心により近い位置に存在する被写体を、主被写体に決定することができる。
追尾被写体決定部123は、主被写体、およびメインカメラ500の撮影対象とサブカメラ400の撮影対象との対応関係(役割情報ROLE)に基づいて、サブカメラ400の撮影対象である追尾被写体を決定する。追尾被写体決定部123は、決定した追尾被写体の情報を、撮影方向取得部124に送信する。
追尾被写体決定部123は、例えば、サブカメラ400aおよびサブカメラ400bの追尾被写体を次のように決定することができる。追尾被写体決定部123は、第2認識部125がサブカメラ400aおよびサブカメラ400の撮影画像から検出した被写体の情報である被写体情報DETECT_INFOを取得する。追尾被写体決定部123は、主被写体の識別情報MAIN_SUBJECT_ID、被写体情報DETCT_INFO、および役割情報ROLEに基づいて、追尾被写体を決定する。追尾被写体決定部123は、決定した追尾被写体の識別情報SUBJECT_IDを、撮影方向取得部124に送信する。
追尾被写体決定部123は、メインカメラ500の撮影対象が変更されると、主被写体決定部122から、変更後の撮影対象の主被写体の識別情報MAIN_SUBJECT_IDを受信する。追尾被写体決定部123は、変更後の主被写体に対応する追尾被写体の識別情報SUBJECT_IDを取得し、撮影方向取得部124に送信する。
追尾被写体決定部123は、俯瞰カメラ300の撮影画像IMGから、追尾被写体がサブカメラ400aおよびサブカメラ400bのどちらに近いかを判定する。追尾被写体決定部123は、撮影方向取得部124に対し、追尾被写体の識別情報SUBJECT_IDを送信し、追尾被写体に近いサブカメラ400(ここではサブカメラ400aとする)の撮影方向を変更するように指示する。
追尾被写体決定部123は、追尾被写体により近いサブカメラ400aの撮影方向が変更された後、サブカメラ400aの撮影画像SUB_IMGから検出された被写体の被写体情報DETECT_INFOを受信する。追尾被写体決定部123は、サブカメラ400aの撮影画像SUB_IMGに、識別情報SUBJECT_IDの追尾被写体が撮影されていることを確認する。確認後、追尾被写体決定部123は、撮影方向取得部124に対し、追尾被写体の識別情報SUBJECT_IDを送信し、撮影方向が変更されていないサブカメラ400bの撮影方向を変更するように指示する。
図8(A)~8(D)を参照して、メインカメラ500の撮影対象が変更されて、サブカメラ400の撮影対象を変更する具体例について説明する。サブカメラ400aおよびサブカメラ400bの撮影方向は、図8(A)から図8(D)の順に変更される。
図8(A)~8(D)の例では、メインカメラ500が被写体Bを主被写体として撮影している場合、サブカメラ400aおよびサブカメラ400bは被写体Dを撮影する。メインカメラ500の撮影対象が被写体Bから被写体Aへ変更された場合、サブカメラ400aおよびサブカメラ400bの撮影対象は被写体Cに変更される。ただし、サブカメラ400aおよびサブカメラ400bの撮影対象は、異なるタイミングで被写体Cに変更される。
図8(A)は、メインカメラ500が被写体Bを撮影し、サブカメラ400aおよびサブカメラ400bが、被写体Bに対応する被写体Dを撮影している状態を示す。図8(B)では、メインカメラ500の撮影対象は被写体Bから被写体Aに変更され、メインカメラ500の撮影方向は、被写体Bを向く方向から被写体Aを向く方向に変更される。被写体Aに対応するサブカメラ400の撮影対象は、被写体Cである。
図8(C)では、サブカメラ400のうち、被写体Cにより近いサブカメラ400aの撮影方向は、被写体Dを向く方向から、被写体Aに対応する被写体Cを向く方向に変更される。この時点では、サブカメラ400bの撮影方向は、被写体Bに対応する被写体Dを向く方向のまま変更されない。
図8(D)では、サブカメラ400bの撮影方向は、被写体Dを向く方向から被写体Cを向く方向に変更される。このように、サブカメラ400aの撮影方向が先に被写体Cを向く方向に変更された後、サブカメラ400bの撮影方向は、被写体Dを向く方向から被写体Cを向く方向に変更される。したがって、サブカメラ400aの撮影方向が被写体Dを向く方向から被写体Cを向く方向に変更される間、サブカメラ400bは被写体Dの撮影画像を記録することができる。また、サブカメラ400bの撮影方向が被写体Dを向く方向から被写体Cを向く方向に変更される間、サブカメラ400aは被写体Cの撮影画像を記録することができる。
なお、図8(C)は、被写体Cにより近いサブカメラ400aの撮影方向を先に変更する例を示すが、いずれのサブカメラ400の撮影方向を先に変更するかは、追尾被写体との距離に基づいて決定される場合に限られない。追尾被写体決定部123は、例えば、ユーザー操作に基づいて、いずれのサブカメラ400の撮影方向を先に変更するかを決定してもよい。
また、追尾被写体決定部123は、サブカメラ400の位置と、サブカメラ400の撮影方向(光軸方向)の可動領域と、追尾被写体の位置とに基づいて、いずれのサブカメラ400の撮影方向を先に変更するかを決定してもよい。例えば、追尾被写体決定部123は、変更後の追尾被写体が撮影方向の可動領域に含まれるサブカメラ400の撮影方向を、先に変更することができる。また、追尾被写体決定部123は、変更前の追尾被写体を画面の中心で撮影可能なサブカメラ400(サブカメラ400aもサブカメラ400bも画面中心で撮影可能であれば、いずれか一方)の撮影方向を、後で変更してもよい。
図8(A)~8(D)は、サブカメラ400が2台の例を示すが、サブカメラ400は3台以上であってもよい。サブカメラ400が3台以上ある場合に、メインカメラ500の撮影方向が変更されると、追尾被写体決定部123は、これらの複数のサブカメラ400を、撮影方向を変更するタイミングが異なる複数のグループに分割する。
例えば、図8(B)で不図示の追加のサブカメラ400が存在する場合、追尾被写体決定部123は、複数のサブカメラ400を、サブカメラ400bを含む第1グループと、サブカメラ400aを含む第2グループとに分ける。メインカメラ500の撮影方向が被写体Bから被写体Aに変更された場合、追尾被写体決定部123は、複数のサブカメラ400のうち第1グループに含まれるサブカメラ400の撮影方向は、被写体Bに対応する被写体Dを向く方向から変更しない。一方、メインカメラ500の撮影方向が変更された場合、追尾被写体決定部123は、複数のサブカメラ400のうち第2グループに含まれるサブカメラ400の撮影方向を、被写体Dを向く方向から、被写体Aに対応する被写体Cを向く方向に変更する。
追尾被写体決定部123は、各種方法により、複数のサブカメラ400を第1グループと第2グループとに分けることができる。追尾被写体決定部123は、例えば、複数のサブカメラ400それぞれの位置に基づいて、複数のサブカメラ400を第1グループと第2グループとに分けることができる。
より具体的には、追尾被写体決定部123は、複数のサブカメラ400それぞれの位置と、メインカメラ500の撮影方向が変更される前の被写体に対応する追尾被写体との距
離に基づいて、複数のサブカメラ400をグループ分けする。図8(B)の例では、追尾被写体決定部123は、例えば被写体Dにより近い第1グループのサブカメラ400の撮影方向を後から変更する。
また、追尾被写体決定部123は、複数のサブカメラ400それぞれの位置と、メインカメラ500の撮影方向が変更された後の被写体に対応する追尾被写体との距離に基づいて、複数のサブカメラ400をグループ分けしてもよい。図8(B)の例では、追尾被写体決定部123は、例えば被写体Cにより近い第2グループのサブカメラ400の撮影方向を先に変更する。なお、追尾被写体決定部123は、被写体Dとの距離および被写体Cとの距離の両方に基づいて、複数のサブカメラ400をグループ分けしてもよい。
追尾被写体決定部123は、追尾被写体との距離に限られず、追尾被写体との相対位置に基づいて、複数のサブカメラ400をグループ分けしてもよい。追尾被写体との相対位置は、サブカメラ400から追尾被写体までの距離、およびサブカメラ400の光軸に対する追尾被写体の方向により表される。追尾被写体決定部123は、メインカメラ500の撮影方向の変更前の追尾被写体、または変更後の追尾被写体との相対位置に基づいて、複数のサブカメラ400をグループ分けすることができる。追尾被写体決定部123は、メインカメラ500の撮影方向の変更前の追尾被写体および変更後の追尾被写体のそれぞれとの相対位置に基づいて、複数のサブカメラ400をグループ分けしてもよい。
追尾被写体決定部123は、隣り合うサブカメラ400が同じグループに含まれないように、複数のサブカメラ400を第1グループと第2グループとに分けてもよい。隣り合うサブカメラ400が同じグループに含まれないようにすることで、制御装置100は、撮影方向を変更する前後の追尾被写体を、それぞれ様々な角度から撮影しておくことができる。
追尾被写体決定部123は、追尾被写体との距離または追尾被写体との相対位置に限られず、サブカメラ400の撮影方向の可動領域に基づいて、複数のサブカメラ400をグループ分けしてもよい。撮影方向の可動領域は、サブカメラ400の光軸の向きを変更することができる範囲を示す。
図9(A)~9(C)を用いて、サブカメラ400の撮影方向の可動領域に基づくグループ分けについて説明する。追尾被写体決定部123は、サブカメラ400の位置と、サブカメラ400の撮影方向の可動領域と、追尾被写体の位置とに基づいて、複数のサブカメラ400をグループ分けする。図9(A)~9(C)に示す追尾被写体903は、メインカメラ500の撮影対象変更後の被写体に対応する追尾被写体とする。
図9(A)は、サブカメラ400a、サブカメラ400aの撮影方向の可動領域901、サブカメラ400b、サブカメラ400bの撮影方向の可動領域902、および追尾被写体903を示す。追尾被写体903は、サブカメラ400bの撮影方向の可動領域902内に存在する。追尾被写体決定部123は、撮影方向の可動領域内に追尾被写体903が存在するサブカメラ400を第2グループとし、第2グループのサブカメラ400の撮影方向を先に変更する。
図9(B)は、図9(A)と同様に、サブカメラ400a、サブカメラ400aの撮影方向の可動領域901、サブカメラ400b、サブカメラ400bの撮影方向の可動領域902、および追尾被写体903を示す。ただし、追尾被写体903は、サブカメラ400aの撮影方向の可動領域901にも、サブカメラ400bの撮影方向の可動領域902にも含まれない。追尾被写体決定部123は、例えば、追尾被写体903の位置から可動領域までの距離が所定の閾値より短いサブカメラ400を第2グループとし、第2グルー
プのサブカメラ400の撮影方向を先に変更することができる。
図9(C)は、図9(A)と同様に、サブカメラ400a、サブカメラ400aの撮影方向の可動領域901、サブカメラ400b、サブカメラ400bの撮影方向の可動領域902、および追尾被写体903を示す。ただし、追尾被写体903は、サブカメラ400aの撮影方向の可動領域901、およびサブカメラ400bの撮影方向の可動領域902の両方に含まれる。この場合、追尾被写体決定部123は、可動領域以外の条件に基づいて、複数のサブカメラ400をグループ分けしてもよい。
図9(A)~9(C)では、追尾被写体903は、メインカメラ500の撮影対象変更後の被写体に対応する追尾被写体であると想定されるが、メインカメラ500の撮影対象変更前の被写体に対応する追尾被写体であってもよい。すなわち、追尾被写体決定部123は、サブカメラ400の位置と、サブカメラ400の撮影方向の可動領域と、変更前の追尾被写体の位置とに基づいて、複数のサブカメラ400をグループ分けしてもよい。例えば、追尾被写体決定部123は、変更前の追尾被写体が光軸方向に配置されるようにパン・チルト方向の制御が可能なサブカメラ400(またはその一部)を第1グループとし、第1グループのサブカメラ400の撮影方向を後で変更する。
追尾被写体決定部123は、また、ユーザー操作に基づいて、複数のサブカメラ400を第1グループと第2グループとに分けてもよい。追尾被写体決定部123は、予めユーザー操作に基づいてROM103に記憶されたグループ分けの情報を取得してもよく、撮影中にユーザーからの操作を受け付けてグループ分けの情報を取得してもよい。
複数のサブカメラ400をグループ分けする方法は、上記の各種方法を適宜組み合わせて適用することも可能である。また、複数のサブカメラ400は、2つのグループに限られず、追尾する被写体の数などに応じて、3つ以上のグループに分けられてもよい。
撮影方向取得部124は、追尾被写体決定部123から、撮影方向を変更するサブカメラ400の情報と、追尾被写体の識別情報SUBJECT_IDとを受信し、サブカメラ400のパンおよびチルトの制御値を算出する。
撮影方向取得部124は、基準位置情報REF_POSIに含まれる平面座標系でのサブカメラ400の座標と、検出被写体の位置情報POSITIONに含まれる追尾被写体の座標をRAM102から読み出す。撮影方向取得部124は、サブカメラ400の座標および追尾被写体の座標に基づいて、サブカメラ400が追尾被写体の方向を向くためのパン・チルトの制御値を算出する。図10および図11を用いて、パン・チルトの目標位置を、パン・チルトの制御値として算出する方法について説明する。
図10は、パンの目標位置について説明する図である。パンの目標位置を示す角度θは、サブカメラ400の光軸中心を伸ばした線と、サブカメラ400と追尾被写体を結んだ線とのなす角度である。角度θは以下の式2で算出することができる。
式2においてpx、pyは追尾被写体の位置の水平座標、垂直座標であり、subx、subyはサブカメラ400の位置の水平座標、および垂直座標である。撮影方向取得部124は、追尾被写体の位置に対応する座標px、pyを、検出被写体の位置情報POSI
TIONから取得することができる。
図11は、チルトの目標位置について説明する図である。チルトの目標位置を示す角度ρは、サブカメラ400の光軸の高さh1でサブカメラ400の光軸を伸ばした線と、サブカメラ400から高さh2の追尾被写体の頭頂に向けて伸ばした線とのなす角度である。角度ρは以下の式3、および式4で算出することができる。
式4において、Lはサブカメラ400から追尾被写体までの距離である。また、h1はサブカメラ400の光軸の地面からの高さであり、h2は追尾被写体の地面から頭頂までの高さである。高さh1,h2は、予めRAM102に保存しておいてもよいし、不図示のセンサを用いてリアルタイムに測定してもよい。
パン・チルトの制御値は、サブカメラ400が追尾被写体の方向に回動するための角速度値としてもよい。パン・チルトの角速度値の算出方法の例を説明する。撮影方向取得部124は、ネットワークI/F105を介して、サブカメラ400の現在のパン・チルト位置を取得する。撮影方向取得部124は、現在のパン位置とパンの目標位置との差に比例したパンの角速度を求める。また、撮影方向取得部124は、現在のチルト位置とチルトの目標位置との差に比例したチルトの角速度を求める。撮影方向取得部124は、算出したパンおよびチルトの制御値をRAM102に書き込む。
第2認識部125は、第1認識部121と同様にROM103に格納された人物特定の推論モデルを用いて、サブカメラ400の撮影画像SUB_IMGから追尾被写体が検出されたか否かを判定する。第2認識部125は、判定結果を被写体情報DETECT_INFOとして追尾被写体決定部123に送信する。
図12(A),12(B)を用いて、メインカメラ500の撮影対象に対応する撮影対象を向くように複数のサブカメラ400の撮影方向を制御する処理について説明する。図12(A),12(B)は、サブカメラ400の撮影方向の制御処理を例示するフローチャートである。図12(A),12(B)は、メインカメラ500が被写体Aを撮影する際、サブカメラ400a,400bは被写体Cを撮影し、メインカメラ500が被写体Bを撮影する際、サブカメラ400a,400bは被写体Dを撮影する処理の例を示す。サブカメラ400a,400bは、総称してサブカメラ400とも記載される。
図12(A)のステップS1201では、CPU101は、メインカメラ500の撮影対象である主被写体を検出する。CPU101は、検出した主被写体の情報を、メインカメラ500の撮影対象を示す情報として取得する。具体的には、第1認識部121は、メインカメラ500の撮影画像を取得して被写体を検出する。第1認識部121は、検出した被写体の位置情報(座標の情報を含む)および識別情報を、主被写体決定部122に送信する。主被写体決定部122は、メインカメラ500の向き、またはメインカメラ500の撮影画像で被写体が映る位置などに基づいて、主被写体を決定する。主被写体決定部122が決定した主被写体は、ステップS1201で検出された主被写体とする。
ステップS1202では、CPU101は、ステップS1201で検出された主被写体
が被写体Aであるか否かを判定する。検出された主被写体が被写体Aである場合、処理はステップS1203に進む。検出された主被写体が被写体Aでない場合、処理は図12(B)のステップS1302に進む。
ステップS1203では、CPU101は、主被写体の被写体Aに対応するサブカメラ400の撮影対象である被写体Cの座標を取得する。具体的には、主被写体決定部122は、主被写体の識別情報および位置情報を追尾被写体決定部123に送信する。また、役割設定部120は、メインカメラ500の撮影対象とサブカメラ400の撮影対象との対応関係の情報を追尾被写体決定部123に送信する。追尾被写体決定部123は、追尾対象を被写体Cに決定する。追尾被写体決定部123は、俯瞰カメラ300の撮影画像から、被写体Cの位置情報(座標の情報を含む)を取得する。追尾被写体決定部123は、取得した被写体Cの位置情報を撮影方向取得部124に送信する。
ステップS1204では、CPU101は、サブカメラ400a,400bを被写体Cに向ける。具体的には、撮影方向取得部124は、サブカメラ400a,400bの撮影方向が追尾被写体である被写体Cを向くように制御するため、それぞれのパン・チルトの制御値を取得する。撮影方向取得部124は、それぞれのパン・チルトの制御値をサブカメラ400a,400bに送信する。サブカメラ400a,400bは、撮影方向取得部124から受信したパン・チルトの制御値に基づいて、撮影方向を被写体Cに向ける。
ステップS1205では、CPU101は、ステップS1201と同様に、メインカメラ500の撮影対象である主被写体を検出する。ステップS1206では、CPU101は、ステップS1205で検出された主被写体が被写体Bであるか否かを判定する。
検出された主被写体が被写体Bである場合、メインカメラ500の撮影方向が被写体Aを向く方向から被写体Bを向く方向に変更されたと判定され、処理はステップS1207へ進む。このように、メインカメラ500の撮影方向が変更されたか否かは、メインカメラ500の撮影画像から検出される被写体の変化に基づいて判定することができる。ステップS1205で検出された主被写体が被写体Bでない場合、処理はステップS1203に戻る。
ステップS1207では、CPU101は、主被写体の被写体Bに対応するサブカメラ400の撮影対象である被写体Dの座標を取得する。CPU101は、ステップS1203と同様に、俯瞰カメラ300の撮影画像から被写体Dの座標を取得することができる。
ステップS1208では、CPU101は、被写体Dがサブカメラ400aとサブカメラ400bのどちらに近いか(どちらまでの距離が短いか)を判定する。被写体Dがサブカメラ400bよりもサブカメラ400aに近い場合、処理はステップS1209へ進む。被写体Dがサブカメラ400aよりもサブカメラ400bに近い場合、処理はステップS1214へ進む。
ステップS1209では、CPU101は、サブカメラ400a,400bの撮影方向のそれぞれの可動領域の情報を取得する。サブカメラ400の撮影方向の可動領域は、サブカメラ400の光軸を向けることができる範囲を示す。
ステップS1210では、CPU101は、サブカメラ400aをパンすることにより、レンズの中心から正面方向に伸ばした線(光軸)を被写体Dに重ねられるか否かを判定する。すなわち、CPU101は、サブカメラ400aの撮影画像の略中心の位置となるように被写体Dを撮影することができるか否かを判定する。サブカメラ400aの光軸を被写体Dに重ねられる場合、処理はステップS1211へ進む。サブカメラ400aの光
軸を被写体Dに重ねられない場合、処理はステップS1213へ進む。
ステップS1211では、CPU101は、サブカメラ400aを被写体Dに向ける。具体的には、撮影方向取得部124は、サブカメラ400aの撮影方向が追尾対象である被写体Dを向くように制御するためのパン・チルトの制御値を取得する。撮影方向取得部124は、取得したパン・チルトの制御値をサブカメラ400aに送信する。サブカメラ400aは、撮影方向取得部124から受信したパン・チルトの制御値に基づいて、撮影方向を被写体Dに向ける。第2認識部125は、サブカメラ400aの撮影画像を取得し、取得した撮影画像から被写体Dを検出したことを確認する。ステップS1211の処理によって、CPU101は、サブカメラ400aの撮影方向が被写体Dを向く方向へ変更され、被写体Dを追尾できていることが確認できる。
ステップS1212では、CPU101は、サブカメラ400bを被写体Dに向ける。具体的には、撮影方向取得部124は、サブカメラ400bの撮影方向が追尾対象である被写体Dを向くように制御するためのパン・チルトの制御値を取得する。撮影方向取得部124は、取得したパン・チルトの制御値をサブカメラ400bに送信する。サブカメラ400bは、撮影方向取得部124から受信したパン・チルトの制御値に基づいて、撮影方向を被写体Dに向ける。第2認識部125は、サブカメラ400bの撮影画像を取得し、取得した撮影画像から被写体Dを検出したことを確認する。ステップS1212の処理によって、CPU101は、サブカメラ400bの撮影方向が被写体Dを向く方向へ変更され、被写体Dを追尾できていることが確認できる。
ステップS1213では、CPU101は、サブカメラ400aとサブカメラ400bのどちらが、被写体Dを画面の中心により近い位置で撮影できるかを判定する。CPU101は、例えば、サブカメラ400aおよびサブカメラ400bの光軸を可動領域の範囲内で被写体Dに近づけた際、光軸がより被写体Dに近いほうのサブカメラ400が、被写体Dを画面の中心により近い位置で撮影できると判定することができる。サブカメラ400aのほうが被写体Dを画面中心により近い位置で撮影できる場合、処理はステップS1211に進む。サブカメラ400bのほうが被写体Dを画面中心により近い位置で撮影できる場合、処理はステップS1214に進む。
ステップS1214では、CPU101は、ステップS1212と同様に、サブカメラ400bを被写体Dに向ける。ステップS1215では、CPU101は、ステップS1211と同様に、サブカメラ400aを被写体Dに向ける。
ステップS1216では、CPU101は、サブカメラ400a,400bを被写体Dに向ける。具体的には、撮影方向取得部124は、サブカメラ400a,400bの撮影方向が追尾被写体である被写体Dを向くように制御するため、それぞれのパン・チルトの制御値を取得する。撮影方向取得部124は、それぞれのパン・チルトの制御値をサブカメラ400a,400bに送信する。サブカメラ400a,400bは、撮影方向取得部124から受信したパン・チルトの制御値に基づいて、撮影方向を被写体Dに向ける。
ステップS1217では、CPU101は、ステップS1201と同様に、メインカメラ500の撮影対象である主被写体を検出する。ステップS1218では、CPU101は、ステップS1217で検出された主被写体が被写体Aであるか否かを判定する。ステップS1217で検出された主被写体が被写体Aである場合、メインカメラ500の撮影方向が被写体Bを向く方向から被写体Aを向く方向に変更されたと判定され、処理は図12(B)のステップS1307へ進む。検出された主被写体が被写体Aでない場合、処理はステップS1216に戻る。
ステップS1302では、CPU101は、図12(A)のステップS1201で検出された主被写体が被写体Bであるか否かを判定する。検出された主被写体が被写体Bである場合、処理はステップS1303に進む。検出された主被写体が被写体Bでない場合、処理は図12(A)のステップS1201に進む。
ステップS1303では、CPU101は、主被写体の被写体Bに対応するサブカメラ400の撮影対象である被写体Dの座標を取得する。具体的には、主被写体決定部122は、主被写体の識別情報および位置情報を追尾被写体決定部123に送信する。また、役割設定部120は、メインカメラ500の撮影対象とサブカメラ400の撮影対象との対応関係の情報を追尾被写体決定部123に送信する。追尾被写体決定部123は、追尾対象を被写体Dに決定する。追尾被写体決定部123は、俯瞰カメラ300の撮影画像から、被写体Dの位置情報(座標の情報を含む)を取得する。追尾被写体決定部123は、取得した被写体Dの位置情報を撮影方向取得部124に送信する。
ステップS1304では、CPU101は、サブカメラ400a,400bを被写体Dに向ける。具体的には、撮影方向取得部124は、サブカメラ400a,400bの撮影方向が追尾被写体である被写体Dを向くように制御するため、それぞれのパン・チルトの制御値を取得する。撮影方向取得部124は、それぞれのパン・チルトの制御値をサブカメラ400a,400bに送信する。サブカメラ400a,400bは、撮影方向取得部124から受信したパン・チルトの制御値に基づいて、撮影方向を被写体Dに向ける。
ステップS1305では、CPU101は、ステップS1201と同様に、メインカメラ500の撮影対象である主被写体を検出する。ステップS1306では、CPU101は、ステップS1305で検出された主被写体が被写体Aであるか否かを判定する。
検出された主被写体が被写体Aである場合、メインカメラ500の撮影方向が被写体Bを向く方向から被写体Aを向く方向に変更されたと判定され、処理はステップS1307へ進む。ステップS1305で検出された主被写体が被写体Aでない場合、処理はステップS1303に戻る。
ステップS1307では、CPU101は、主被写体の被写体Aに対応するサブカメラ400の撮影対象である被写体Cの座標を取得する。CPU101は、ステップS1203と同様に、俯瞰カメラ300の撮影画像から被写体Cの座標を取得することができる。
ステップS1308では、CPU101は、被写体Cがサブカメラ400aとサブカメラ400bのどちらに近いか(どちらまでの距離が短いか)を判定する。被写体Cがサブカメラ400bよりもサブカメラ400aに近い場合、処理はステップS1309へ進む。被写体Cがサブカメラ400aよりもサブカメラ400bに近い場合、処理はステップS1314へ進む。
ステップS1309では、CPU101は、サブカメラ400a,400bの撮影方向のそれぞれの可動領域の情報を取得する。サブカメラ400の撮影方向の可動領域は、サブカメラ400の光軸を向けることができる範囲を示す。
ステップS1310では、CPU101は、サブカメラ400aをパンすることにより、レンズの中心から正面方向に伸ばした線(光軸)が被写体Cに重ねられるか否かを判定する。すなわち、CPU101は、サブカメラ400aの撮影画像の略中心の位置となるように被写体Cを撮影することができるか否かを判定する。サブカメラ400aの光軸を被写体Cに重ねられる場合、処理はステップS1311へ進む。サブカメラ400aの光軸を被写体Cに重ねられない場合、処理はステップS1313へ進む。
ステップS1311では、CPU101は、サブカメラ400aを被写体Cに向ける。具体的には、撮影方向取得部124は、サブカメラ400aの撮影方向が追尾対象である被写体Cを向くように制御するためのパン・チルトの制御値を取得する。撮影方向取得部124は、取得したパン・チルトの制御値をサブカメラ400aに送信する。サブカメラ400aは、撮影方向取得部124から受信したパン・チルトの制御値に基づいて、撮影方向を被写体Cに向ける。第2認識部125は、サブカメラ400aの撮影画像を取得し、取得した撮影画像から被写体Cを検出したことを確認する。ステップS1311の処理によって、CPU101は、サブカメラ400aの撮影方向が被写体Dを向く方向へ変更され、被写体Cを追尾できていることが確認できる。
ステップS1312では、CPU101は、サブカメラ400bを被写体Cに向ける。具体的には、撮影方向取得部124は、サブカメラ400bの撮影方向が追尾対象である被写体Cを向くように制御するためのパン・チルトの制御値を取得する。撮影方向取得部124は、取得したパン・チルトの制御値をサブカメラ400bに送信する。サブカメラ400bは、撮影方向取得部124から受信したパン・チルトの制御値に基づいて、撮影方向を被写体Cに向ける。第2認識部125は、サブカメラ400bの撮影画像を取得し、取得した撮影画像から被写体Cを検出したことを確認する。ステップS1312の処理によって、CPU101は、サブカメラ400bの撮影方向が被写体Cを向く方向へ変更され、被写体Cを追尾できていることが確認できる。
ステップS1313では、CPU101は、サブカメラ400aとサブカメラ400bのどちらが、被写体Cを画面の中心により近い位置で撮影できるかを判定する。CPU101は、例えば、サブカメラ400aおよびサブカメラ400bの光軸を可動領域の範囲内で被写体Cに近づけた際、光軸がより被写体Cに近いほうのサブカメラ400が、被写体Cを画面の中心により近い位置で撮影できると判定することができる。サブカメラ400aのほうが被写体Cを画面中心により近い位置で撮影できる場合、処理はステップS1311に進む。サブカメラ400bのほうが被写体Cを画面中心により近い位置で撮影できる場合、処理はステップS1314に進む。
ステップS1314では、CPU101は、ステップS1312と同様に、サブカメラ400bを被写体Cに向ける。ステップS1315では、CPU101は、ステップS1311と同様に、サブカメラ400aを被写体Cに向ける。
ステップS1316では、CPU101は、サブカメラ400a,400bを被写体Cに向ける。具体的には、撮影方向取得部124は、サブカメラ400a,400bの撮影方向が追尾被写体である被写体Cを向くように制御するため、それぞれのパン・チルトの制御値を取得する。撮影方向取得部124は、それぞれのパン・チルトの制御値をサブカメラ400a,400bに送信する。サブカメラ400a,400bは、撮影方向取得部124から受信したパン・チルトの制御値に基づいて、撮影方向を被写体Cに向ける。
ステップS1317では、CPU101は、図12(A)のステップS1201と同様に、メインカメラ500の撮影対象である主被写体を検出する。ステップS1318では、CPU101は、ステップS1317で検出された主被写体が被写体Bであるか否かを判定する。ステップS1317で検出された主被写体が被写体Bである場合、メインカメラ500の撮影方向が被写体Aを向く方向から被写体Bを向く方向に変更されたと判定され、処理は図12(A)のステップS1207へ進む。検出された主被写体が被写体Bでない場合、処理はステップS1316に戻る。
なお、図12(A),12(B)では、サブカメラ400が2台である場合の例を説明
したが、サブカメラ400は3台以上であってもよい。この場合、制御装置100は、複数のサブカメラ400を、サブカメラ400aと同様のタイミングで撮影方向を変更するグループと、サブカメラ400bと同様のタイミングで撮影方向を変更するグループとに分ければよい。制御装置100は、図12(A)のステップS1211,S1214、および図12(B)のステップS1311,S1314の処理の前に複数のサブカメラ400をグループ分けすればよい。
制御装置100は、例えば、サブカメラ400と追尾被写体との相対位置、サブカメラ400と追尾被写体との距離、またはサブカメラ400の撮影方向の可動領域に基づいて、複数のサブカメラ400をグループ分けすることができる。また、制御装置100は、隣り合うサブカメラ400が同じグループに含まれないように複数のサブカメラ400をグループ分けしてもよい。また、制御装置100は、ユーザー操作に基づいて複数のサブカメラ400をグループ分けしてもよい。制御装置100は、これらの各種条件を任意に組み合わせて、複数のサブカメラ400をグループ分けしてもよい。
また、図12(A),12(B)において、サブカメラ400の撮影方向の可動領域を考慮した処理は省略してもよい。すなわち、図12(A)のステップS1209,S1210,S1213の処理、および図12(B)のステップS1309,S1310,S1313の処理は省略することができる。
また、制御装置100は、メインカメラ500の撮影方向が被写体Aを向く方向であり、メインカメラ500の撮影画像から被写体Aが検出されなくなった場合、撮影方向を先に変更するサブカメラ400の撮影方向を被写体Cから変更しないように制御する。さらに、制御装置100は、メインカメラ500の撮影方向が被写体Bを向く方向に変更されてもメインカメラ500の撮影画像から被写体Bが検出されない場合、撮影方向を先に変更するサブカメラ400の撮影方向を被写体Cから変更しないように制御する。
上記の実施形態では、制御装置100は、メインカメラ500の撮影対象に対応する撮影対象を向くように複数のサブカメラ400の撮影方向を制御する際、一部のサブカメラ400の撮影方向を先に変更し、他のサブカメラ400の撮影方向は変更しない。制御装置100は、一部のサブカメラ400の撮影方向が変更された後に、他のサブカメラ400の撮影方向を変更する。これにより、マルチカメラによる撮影において被写体を変更する際、変更前後のそれぞれの被写体について複数のカメラによる有効な画角での撮影が可能になる。したがって、ユーザーは、撮影後の編集およびライブ中継の際に、被写体が変更されるシーンにおいても、複数の画角で撮影された画像から所望の画像を得ることができる。
なお、上記実施形態はあくまで一例であり、本発明の要旨の範囲内で上記実施形態の構成を適宜変形したり変更したりすることにより得られる構成も、本発明に含まれる。上記実施形態の構成を適宜組み合わせて得られる構成も、本発明に含まれる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本実施形態の開示は、以下の構成、方法、およびプログラムを含む。
(構成1)
第1撮像装置の撮影対象を示す情報を取得する取得手段と、
前記第1撮像装置の撮影対象に対応する撮影対象を向くように複数の第2撮像装置の撮影方向を制御する制御手段と
を有し、
前記制御手段は、前記第1撮像装置の撮影方向が第1被写体を向く方向から第2被写体を向く方向に変更された場合に、
前記複数の第2撮像装置のうち、第1グループに含まれる前記第2撮像装置の撮影方向は、前記第1被写体に対応する第3被写体を向く方向から変更せず、
前記複数の第2撮像装置のうち、第2グループに含まれる前記第2撮像装置の撮影方向は、前記第3被写体を向く方向から、前記第2被写体に対応する第4被写体を向く方向に変更する
ことを特徴とする制御装置。
(構成2)
前記制御手段は、前記第2グループに含まれる前記第2撮像装置の撮影方向が前記第4被写体を向く方向に変更された後に、前記第1グループに含まれる前記第2撮像装置の撮影方向を、前記第3被写体を向く方向から前記第4被写体を向く方向に変更にする
ことを特徴とする構成1に記載の制御装置。
(構成3)
前記第1撮像装置の撮影方向が前記第1被写体を向く方向から前記第2被写体を向く方向に変更されたか否かは、前記第1撮像装置の撮影画像から検出される被写体の変化に基づいて判定される
ことを特徴とする構成1または2に記載の制御装置。
(構成4)
前記制御手段は、前記第1撮像装置の撮影方向が前記第1被写体を向く方向であり前記第1撮像装置の撮影画像から前記第1被写体が検出されなくなった場合、または前記第1撮像装置の撮影方向が前記第2被写体を向く方向に変更されても前記第1撮像装置の撮影画像から前記第2被写体が検出されない場合、前記第2グループに含まれる前記第2撮像装置の撮影方向を、前記第3被写体を向く方向から変更しない
ことを特徴とする構成1~3のいずれかに記載の制御装置。
(構成5)
前記第1被写体と前記第3被写体とは同じ被写体である
ことを特徴とする構成1~4のいずれかに記載の制御装置。
(構成6)
前記第1被写体と前記第4被写体とは同じ被写体である
ことを特徴とする構成1~4のいずれかに記載の制御装置。
(構成7)
前記第2被写体と前記第3被写体とは同じ被写体である
ことを特徴とする構成1~6のいずれかに記載の制御装置。
(構成8)
前記第2被写体と前記第4被写体とは同じ被写体である
ことを特徴とする構成1~6のいずれかに記載の制御装置。
(構成9)
前記第3被写体は前記第1被写体とは異なる被写体である
ことを特徴とする構成1~4のいずれかに記載の制御装置。
(構成10)
前記第4被写体は前記第2被写体とは異なる被写体である
ことを特徴とする構成1~4のいずれかに記載の制御装置。
(構成11)
前記複数の第2撮像装置それぞれの位置に基づいて、前記複数の第2撮像装置を前記第1グループと前記第2グループとに分ける分割手段をさらに有する
ことを特徴とする構成1~10のいずれかに記載の制御装置。
(構成12)
前記分割手段は、前記複数の第2撮像装置それぞれの位置と前記第4被写体との相対位置、および前記複数の第2撮像装置それぞれの位置と前記第3被写体との相対位置の少なくともいずれかに基づいて、前記複数の第2撮像装置を前記第1グループと前記第2グループとに分ける
ことを特徴とする構成11に記載の制御装置。
(構成13)
前記分割手段は、前記複数の第2撮像装置それぞれの位置と前記第4被写体との距離、および前記複数の第2撮像装置それぞれの位置と前記第3被写体との距離の少なくともいずれかに基づいて、前記複数の第2撮像装置を前記第1グループと前記第2グループとに分ける
ことを特徴とする構成11に記載の制御装置。
(構成14)
前記分割手段は、隣り合う前記第2撮像装置が同じグループに含まれないように、前記複数の第2撮像装置を前記第1グループと前記第2グループとに分ける
ことを特徴とする構成11に記載の制御装置。
(構成15)
前記分割手段は、前記複数の第2撮像装置それぞれの位置と、前記複数の第2撮像装置それぞれの撮影方向の可動領域と、前記第3被写体の位置とに基づいて、前記複数の第2撮像装置を前記第1グループと前記第2グループとに分ける
ことを特徴とする構成11に記載の制御装置。
(構成16)
前記分割手段は、前記複数の第2撮像装置それぞれの位置と、前記複数の第2撮像装置それぞれの撮影方向の可動領域と、前記第4被写体の位置とに基づいて、前記複数の第2撮像装置を前記第1グループと前記第2グループとに分ける
ことを特徴とする構成11に記載の制御装置。
(構成17)
前記複数の第2撮像装置を、ユーザー操作に基づいて前記第1グループと前記第2グループとに分ける分割手段をさらに有する
ことを特徴とする構成1~10のいずれかに記載の制御装置。
(方法)
第1撮像装置の撮影対象を示す情報を取得する取得ステップと、
前記第1撮像装置の撮影対象に対応する撮影対象を向くように複数の第2撮像装置の撮影方向を制御する制御ステップと
を有し、
前記制御ステップでは、前記第1撮像装置の撮影方向が第1被写体を向く方向から第2被写体を向く方向に変更された場合に、
前記複数の第2撮像装置のうち、第1グループに含まれる前記第2撮像装置の撮影方向は、前記第1被写体に対応する第3被写体を向く方向から変更せず、
前記複数の第2撮像装置のうち、第2グループに含まれる前記第2撮像装置の撮影方向は、前記第3被写体を向く方向から、前記第2被写体に対応する第4被写体を向く方向に変更する
ことを特徴とする制御方法。
(プログラム)
コンピュータを、構成1~17のいずれかに記載の制御装置の各手段として機能させるためのプログラム。