以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[実施形態1]
<システム構成>
まず、図1を参照して、実施形態1のシステム構成について説明する。
本実施形態のシステムは、第1の制御装置100、第2の制御装置200、第1の撮像装置300および第2の撮像装置400を含む。本実施形態のシステムは、第1の制御装置100と第2の制御装置200のいずれかにより第2の撮像装置400を制御して特定の被写体の追尾を行う。本実施形態では、特定の被写体は、例えば人物であるが、動物や物体であってもよい。
第1の制御装置100は、第1の撮像装置300により撮影された俯瞰画像から追尾対象の被写体を検出し、検出結果に基づいて第2の撮像装置400を制御する。第1の制御装置100はワークステーションとも呼ばれる。追尾対象の被写体は、例えば、ユーザ操作または自動で設定される。
第2の制御装置200は、第1の撮像装置300により撮影された俯瞰画像による追尾対象の被写体認識結果と、第2の撮像装置300により撮影されたサブ画像による追尾対象の被写体認識結果とに基づいて第2の撮像装置400を制御する。第2の制御装置200はエッジボックスとも呼ばれる。
第1の撮像装置300は、撮影画角が広角に固定されており、被写体A、被写体Bおよび被写体Cの全てを含む俯瞰画像を撮影可能である。第1の撮像装置300は俯瞰カメラとも呼ばれる。第2の撮像装置400は、撮影画角が可変であり、被写体A、被写体B、被写体Cの少なくともいずれかを撮影可能である。第2の撮像装置400はサブカメラと呼ばれる。第1の撮像装置300と第2の撮像装置400は、撮影位置および/または撮影方向が異なるように互いに離れた位置に配置される。
第1の制御装置100、第2の制御装置200、第1の撮像装置300および第2の撮像装置400は、LAN(Local Area Network)等のネットワーク600により通信可能に接続される。なお、本実施形態では、第1の制御装置100、第2の制御装置200、第1の撮像装置300および第2の撮像装置400がネットワーク600により接続される例を説明するが、不図示の接続ケーブルにより接続された構成であってもよい。また、本実施形態では、第2の撮像装置400が1台である例を説明するが、2台以上としてもよい。第2の撮像装置400が複数台ある場合は、第2の撮像装置400ごとに第2の制御装置200が設けられる。
次に、本実施形態のシステムの基本的な機能について説明する。
第1の撮像装置300は、俯瞰画像を撮影し、俯瞰画像をネットワーク600を介して第1の制御装置100に送信する。
第2の撮像装置400は、追尾対象の被写体(追尾被写体)を含むサブ画像を撮影し、サブ画像をネットワーク600を介して第2の制御装置200に送信する。なお、第2の撮像装置400はPTZ機能を有している。PTZ機能は、撮像装置のパン、チルトおよびズームを制御できる機能である。PTZは、パン(Panoramic)、チルト(Tilt)、ズーム(Zoom)のそれぞれの頭文字の略である。パン(Panoramic)は撮像装置の光軸の水平方向への移動である。チルト(Tilt)は撮像装置の光軸の垂直方方向への移動である。ズーム(Zoom)はズームアップ(望遠)とズームアウト(広角)である。パンおよびチルトは撮像装置の撮影方向を変化させる機能である。ズームは撮像装置の撮影範囲(撮影画角)を変化させる機能である。
第1の制御装置100は、第1の撮像装置300から受信した俯瞰画像から検出した被写体から追尾被写体を決定し、俯瞰画像から追尾被写体の第1の特徴情報を算出する。第1の制御装置は、追尾被写体の第1の特徴情報に基づいて第2の撮像装置400の撮影方向および撮影範囲を追尾被写体の撮影方向および撮影範囲に変更するように第2の撮像装置400を制御する。
第2の撮像装置400の撮影方向および撮影範囲を追尾被写体の撮影方向および撮影範囲に変更した後、第1の制御装置100は俯瞰画像から算出した追尾被写体の第1の特徴情報を第2の制御装置200に送信する。
第2の制御装置200は、第2の撮像装置400から受信したサブ画像から被写体を検出し、検出した被写体の第2の特徴情報を算出する。第2の制御装置200は、サブ画像から検出した被写体の第2の特徴情報と、第1の制御装置100から受信した追尾被写体の第1の特徴情報とを比較する。
追尾被写体の第1の特徴情報とサブ画像から検出された被写体の第2の特徴情報との類似度が低い場合は、第1の制御装置100が、追尾被写体の第1の特徴情報に基づいて第2の撮像装置400の撮影方向および撮影範囲を追尾被写体の撮影方向および撮影範囲に変更するように第2の撮像装置400を制御する。
また、追尾被写体の第1の特徴情報とサブ画像から検出された被写体の第2の特徴情報との類似度が高い場合は、第2の制御装置200が、追尾被写体の第1の特徴情報と類似度が高いサブ画像から検出された被写体の第2の特徴情報に基づいて第2の撮像装置400の撮影方向および撮影範囲を追尾被写体の撮影方向および撮影範囲に変更するように第2の撮像装置400を制御する。
特徴情報は、撮影位置および/または撮影方向が異なる複数の撮像装置により同一の被写体が撮影されている場合に、同一の被写体であることが特定可能な情報である。特徴情報は、撮影位置および/または撮影方向が異なる複数の撮像装置により同一の被写体を撮影した複数の画像を入力として、学習済みモデルを用いた推論処理により画像認識を行って出力される推論結果である。同一の被写体であるという推論結果が得られた場合、撮影位置および/または撮影方向が異なる複数の撮像装置により撮影された複数の画像に含まれる被写体について同一の被写体であることを特定することができる。
以下では、第1の制御装置100をワークステーション(WS)、第2の制御装置200をエッジボックス(EB)、第1の撮像装置300を俯瞰カメラ、第2の撮像装置400をサブカメラと呼んで説明する。
<装置構成>
次に、図2を参照して、WS100、EB200、俯瞰カメラ300およびサブカメラ400のハードウェア構成について詳細に説明する。
まず、WS100の構成を説明する。
WS100は、制御部101、揮発性メモリ102、不揮発性メモリ103、推論部104、通信部105および操作部106を備え、各部が内部バス110を介してデータの送受信が可能に接続されている。
制御部101は、WS100の演算処理および制御処理を行うプロセッサ(CPU)を有し、不揮発性メモリ103に格納されている制御プログラムを実行することにより、WS100の各構成要素を制御する。
揮発性メモリ102は、RAM等の主記憶装置である。揮発性メモリ102は、制御部101の動作用の定数、変数、不揮発性メモリ103から読み出した制御プログラムや推論プログラム等がロードされる。また、揮発性メモリ102には、通信部105により外部装置から受信した画像データや推論プログラム等の情報を記憶する。また、揮発性メモリ102は、俯瞰カメラ300から受信した俯瞰画像データを記憶する。揮発性メモリ102は、これらの情報を保持するために十分な記憶容量を備えている。
不揮発性メモリ103は、EEPROM、フラッシュメモリ、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、メモリーカード等の補助記憶装置である。不揮発性メモリ103には、制御部101が実行する基本的なソフトウェアであるOS(オペレーティングシステム)や、このOSと協働して応用的な機能を実現するアプリケーションを含む制御プログラム等、推論部104が推論処理に用いる推論プログラム等が記憶される。
推論部104は、推論プログラムに従い、学習済みの推論モデルと推論パラメータを用いて推論処理を実行する。推論部104は、俯瞰カメラ300から受信した俯瞰画像から特定の被写体の有無や位置、被写体の特徴情報を推定する推論処理を実行する。推論部104における推論処理は、GPU(Graphics Processing Unit)等の画像処理や推論処理に特化した演算処理装置により実行可能である。GPUは、多量の積和演算を行うことが可能なプロセッサであり、ニューラルネットワークの行列演算等を短時間に行う演算処理能力を有する。また、推論部104における推論処理は、FPGA(Field -Programmable Gate Array)等の再構成可能な論理回路により実現してもよい。なお、推論処理は、制御部101のCPUとGPUが協働して演算を行ってもよいし、制御部101のCPUとGPUのいずれかで演算を行ってもよい。
通信部105は、Ethernet(登録商標)等の有線通信規格に準拠したインターフェース(I/F)またはWi-Fi(登録商標)等の無線通信規格に準拠したインターフェースである。通信部105は、有線LANや無線LAN等のネットワーク600を介して、EB200、俯瞰カメラ300およびサブカメラ400等の外部装置と接続し、外部装置とデータの送受信を行うことができる。制御部101は、通信部105を制御することで外部装置との通信を実現する。なお、通信方式は、Ethernet(登録商標)やWi-Fi(登録商標)に限定されるものではなく、IEEE1394等の通信規格を用いてもよい。
操作部106は、ユーザの各種操作を受け付けて、制御部101に操作情報を出力する各種スイッチ、ボタン、タッチパネル等の操作部材である。また、操作部106は、ユーザがWS100を操作するためのユーザインターフェースを提供する。
表示部111は、俯瞰画像や被写体認識結果の表示、対話的な操作のためのGUI(Graphical User Interface)の表示等を行う。表示部111は、液晶ディスプレイ、有機ELディスプレイ等の表示デバイスである。表示部111は、WS100の一体化された構成であっても、WS100に接続された外部機器であってもよい。
次に、EB200の構成を説明する。
EB200は、制御部201、揮発性メモリ202、不揮発性メモリ203、推論部204および通信部205を備え、各部が内部バス210を介してデータの送受信が可能に接続されている。
制御部201は、EB200の演算処理および制御処理を行うプロセッサ(CPU)を有し、不揮発性メモリ203に格納されている制御プログラムを実行することにより、EB200の各構成要素を制御する。
揮発性メモリ202は、RAM等の主記憶装置である。揮発性メモリ202は、制御部201の動作用の定数、変数、不揮発性メモリ203から読み出した制御プログラムや推論プログラム等がロードされる。また、揮発性メモリ202には、通信部205により外部装置から受信した画像データや推論プログラム等の情報を記憶する。また、揮発性メモリ202は、サブカメラ400から受信したサブ画像データを記憶する。揮発性メモリ202は、これらの情報を保持するために十分な記憶容量を備えている。
不揮発性メモリ203は、EEPROM、フラッシュメモリ、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、メモリーカード等の補助記憶装置である。不揮発性メモリ203には、制御部201が実行する基本的なソフトウェアであるOS(オペレーティングシステム)や、このOSと協働して応用的な機能を実現するアプリケーションを含む制御プログラム等、推論部204が推論処理に用いる推論プログラム等が記憶される。
推論部204は、推論プログラムに従い、学習済みの推論モデルと推論パラメータを用いて推論処理を実行する。推論部204は、サブカメラ400から受信したサブ画像から特定の被写体の有無や位置、被写体の特徴情報を推定する推論処理を実行する。推論部204における推論処理は、GPU(Graphics Processing Unit)等の画像処理や推論処理に特化した演算処理装置により実行可能である。GPUは、多量の積和演算を行うことが可能なプロセッサであり、ニューラルネットワークの行列演算等を短時間に行う演算処理能力を有する。また、推論部204における推論処理は、FPGA(Field -Programmable Gate Array)等の再構成可能な論理回路により実現してもよい。なお、推論処理は、制御部201のCPUとGPUが協働して演算を行ってもよいし、制御部201のCPUとGPUのいずれかで演算を行ってもよい。
通信部205は、Ethernet(登録商標)等の有線通信規格に準拠したインターフェース(I/F)またはWi-Fi(登録商標)等の無線通信規格に準拠したインターフェースである。通信部205は、有線LANや無線LAN等のネットワーク600を介して、WS100およびサブカメラ400等の外部装置と接続し、外部装置とデータの送受信を行うことができる。制御部201は、通信部205を制御することで外部装置との通信を実現する。なお、通信方式は、Ethernet(登録商標)やWi-Fi(登録商標)に限定されるものではなく、IEEE1394等の通信規格を用いてもよい。
次に、俯瞰カメラ300の構成を説明する。
俯瞰カメラ300は、制御部301、揮発性メモリ302、不揮発性メモリ303、通信部305、撮像部306および画像処理部307を備え、各部が内部バス310を介してデータの送受信が可能に接続されている。
制御部301は、WS100の制御に従い、俯瞰カメラ300の全体を統括して制御する。制御部301は、俯瞰カメラ300の演算処理および制御処理を行うプロセッサ(CPU)を有し、不揮発性メモリ303に格納されている制御プログラムを実行することにより、俯瞰カメラ300の各構成要素を制御する。
揮発性メモリ302は、RAM等の主記憶装置である。揮発性メモリ302は、制御部301の動作用の定数、変数、不揮発性メモリ303から読み出した制御プログラムや推論プログラム等がロードされる。また、揮発性メモリ302は、撮像部306により撮像され、画像処理部307により処理された俯瞰画像データを記憶する。揮発性メモリ302は、これらの情報を保持するために十分な記憶容量を備えている。
不揮発性メモリ303は、EEPROM、フラッシュメモリ、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、メモリーカード等の補助記憶装置である。不揮発性メモリ303には、制御部301が実行する基本的なソフトウェアであるOS(オペレーティングシステム)や、このOSと協働して応用的な機能を実現するアプリケーションを含む制御プログラム等が記憶される。
撮像部306は、CCD(電荷結合素子)、CMOS(相補型金属酸化膜半導体)素子等から構成されるイメージセンサを有し、被写体の光学像を電気信号に変換する。本実施形態では、俯瞰カメラ300は、追尾被写体を含む複数の被写体を含む俯瞰画像を撮影可能なように撮影画角が固定されている。
画像処理部307は、撮像部306から出力される画像データ、又は、揮発性メモリ302から読み出された画像データに各種の画像処理を実行する。各種の画像処理は、例えば、ノイズ除去、エッジ強調、拡大・縮小等の画像加工処理、コントラスト補正、明るさ補正、色補正等の画像補正処理、画像データの一部を切り出すトリミング処理またはクロップ処理を含む。画像処理部307は、画像処理が施された画像データを、所定の形式(例えばJPEG)の画像ファイルに変換して不揮発性メモリ303に記録する。また、画像処理部307は、画像データを用いて所定の演算処理を行い、制御部301は演算結果に基づいてAF(オートフォーカス)処理およびAE(自動露出)処理を行う。
通信部305は、Ethernet(登録商標)等の有線通信規格に準拠したインターフェース(I/F)またはWi-Fi(登録商標)等の無線通信規格に準拠したインターフェースである。通信部305は、有線LANや無線LAN等のネットワーク600を介して、WS100等の外部装置と接続し、外部装置とデータの送受信を行うことができる。制御部301は、通信部305を制御することで外部装置との通信を実現する。なお、通信方式は、Ethernet(登録商標)やWi-Fi(登録商標)に限定されるものではなく、IEEE1394等の通信規格を用いてもよい。
次に、サブカメラ400の構成を説明する。
サブカメラ400は、制御部401、揮発性メモリ402、不揮発性メモリ403、通信部405、撮像部406、画像処理部407、光学部408およびPTZ駆動部409を備え、各部が内部バス410を介してデータの送受信が可能に接続されている。
制御部401は、WS100またはEB200の制御に従い、サブカメラ400の全体を統括して制御する。制御部401は、サブカメラ400の演算処理および制御処理を行うプロセッサ(CPU)を有し、不揮発性メモリ403に格納されている制御プログラムを実行することにより、サブカメラ400の各構成要素を制御する。
揮発性メモリ402は、RAM等の主記憶装置である。揮発性メモリ402は、制御部401の動作用の定数、変数、不揮発性メモリ403から読み出した制御プログラムや推論プログラム等がロードされる。また、揮発性メモリ402は、撮像部406により撮像され、画像処理部407により処理された俯瞰画像データを記憶する。揮発性メモリ402は、これらの情報を保持するために十分な記憶容量を備えている。
不揮発性メモリ403は、EEPROM、フラッシュメモリ、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、メモリーカード等の補助記憶装置である。不揮発性メモリ403には、制御部401が実行する基本的なソフトウェアであるOS(オペレーティングシステム)や、このOSと協働して応用的な機能を実現するアプリケーションを含む制御プログラム等が記憶される。
撮像部406は、CCD(電荷結合素子)、CMOS(相補型金属酸化膜半導体)素子等から構成されるイメージセンサを有し、被写体の光学像を電気信号に変換する。
画像処理部407は、撮像部406から出力される画像データ、又は、揮発性メモリ402から読み出された画像データに各種の画像処理を実行する。各種の画像処理は、例えば、ノイズ除去、エッジ強調、拡大・縮小等の画像加工処理、コントラスト補正、明るさ補正、色補正等の画像補正処理、画像データの一部を切り出すトリミング処理またはクロップ処理を含む。画像処理部407は、画像処理が施された画像データを、所定の形式(例えばJPEG)の画像ファイルに変換して不揮発性メモリ403に記録する。また、画像処理部407は、画像データを用いて所定の演算処理を行い、制御部401は演算結果に基づいてAF(オートフォーカス)処理およびAE(自動露出)処理を行う。
通信部405は、Ethernet(登録商標)等の有線通信規格に準拠したインターフェース(I/F)またはWi-Fi(登録商標)等の無線通信規格に準拠したインターフェースである。通信部405は、有線LANや無線LAN等のネットワーク600を介して、EB200等の外部装置と接続し、外部装置とデータの授受を行うことができる。制御部401は、通信部405を制御することで外部装置との通信を実現する。なお、通信方式は、Ethernet(登録商標)やWi-Fi(登録商標)に限定されるものではなく、IEEE1394等の通信規格を用いてもよい。
光学部408は、ズームレンズやフォーカスレンズを含むレンズ群、絞り機能を備えるシャッター、これらの光学部材を駆動する機構を含む。光学部408は、光学部材を駆動して、サブカメラ400の撮影方向をパン(P)軸(水平方向)またはチルト(T)軸(垂直方向)のまわりに回転させること、サブカメラ400の撮影範囲(撮影画角)をズーム(Z)軸(拡大・縮小方向)に沿って変化させることのうち少なくともいずれかを行う。
PTZ駆動部409は、光学部408をPTZ方向に駆動するための機械要素やモータ等のアクチュエータを含み、制御部401の制御に従い、光学部408をPTZ方向に駆動する。
なお、本実施形態のズーム機能は、ズームレンズを移動して焦点距離を変化させる光学ズームに限らず、撮影した画像データの一部を切り取って拡大するデジタルズームであってもよいし、光学ズームとデジタルズームの組み合わせてもよい。
[制御処理]
次に、図3から図10を参照して、WS100が俯瞰画像に基づいてサブカメラ400を制御するモードと、EB200がサブ画像に基づいてサブカメラ400を制御するモードとを切り替えることにより追尾被写体の追尾を行う制御処理について説明する。
まず、図3および図4を参照して、本実施形態の制御処理を実現するためのWS100とEB200の機能構成について説明する。
WS100とEB200の各機能は、ハードウェアおよび/またはソフトウェアにより実現される。なお、図3に示す各機能部をソフトウェアにより実現する代わりに、ハードウェアにより構成する場合には、図3の各機能部に対応する回路構成を備えていればよい。
WS100は、画像認識部121、注目被写体決定部122、追尾対象決定部123、制御情報生成部124、特徴情報決定部125、追尾状態決定部126を含む。これらの機能を実現するソフトウェアは不揮発性メモリ103に格納され、制御部101が揮発性メモリ102にロードして実行する。
EB200は、画像認識部221、追尾対象決定部222、制御情報生成部223を含む。これらソフトウェアは、不揮発性メモリ203に格納され、制御部201が揮発性メモリ202にロードして実行する。
図4(a)はWS100の基本動作を示すフローチャートである。図4(b)はEB200の基本動作を示すフローチャートである。図4(c)は俯瞰カメラ300の動作を示すフローチャートである。図4(d)はサブカメラ400の動作示すフローチャートである。
まず、図3および図4(a)を参照して、WS100のソフトウェアの機能および基本動作について説明する。
ステップS101では、制御部101は、通信部105により俯瞰カメラ300に所定のプロトコルで撮影コマンドを送信し、俯瞰カメラ300から俯瞰画像を受信し、揮発性メモリ102に保存し、処理をステップS102に進める。
ステップS102では、制御部101は、図3の画像認識部121の機能を実行し、処理をステップS103に進める。
画像認識部121は、推論部104と揮発性メモリ102と不揮発性メモリ103を制御し、以下の被写体認識処理を行う。
画像認識部121には、揮発性メモリ102から読み出した俯瞰カメラ300の俯瞰画像IMGと、俯瞰カメラ300の基準位置情報REF_POSIが入力される。俯瞰カメラ300の位置情報REF_POSIは、俯瞰カメラ300の位置およびマーカ座標の情報が含まれる。画像認識部121は、俯瞰カメラ300の俯瞰画像IMGと基準位置情報REF_POSIREF_POSIに基づいて被写体の検出および特徴情報の算出を行う。そして、画像認識部121は、検出された被写体の位置を示す座標情報POSITION[n]と、検出された被写体の識別情報を示すID[n]、検出された被写体の特徴情報を示すSTAT[n]を出力する。俯瞰カメラ300の位置は、俯瞰カメラ300の撮影領域を真上から見た座標空間における位置であり、予めユーザ操作または不図示のセンサを用いて計測されて既知である。マーカ座標は、後述するホモグラフィー変換行列を算出するために、俯瞰カメラ300の撮影領域を真上から見た座標空間に設置されるマーカの位置情報であり、予め手動もしくは不図示のセンサを用いて計測された既知の値である。マーカは床や地面などの色と異なる色を持つ印のようなものであり、ユーザ操作または不図示のセンサによる計測が可能であればどのようなものでもよい。例えば、不図示のセンサがカメラである場合は、マーカを任意の色の印にして撮影した画像から、マーカの色を抽出することでマーカ位置を取得する。また、俯瞰カメラ300の位置およびマーカ座標は、WS100の操作部106を介して、ユーザが入力し、制御部101が揮発性メモリ102に保存してもよい。基準位置情報REF_POSIと被写体の座標情報POSITION[n]は、俯瞰カメラ300の撮影領域を真上から見た座標空間に変換された座標系で表される。nは検出した被写体数を示すインデックスであり、例えば、推論部104が、3人の人物を検出した場合には、3人分のPOSITION、ID、STATが推論結果として出力される。制御部101は、画像認識部121による被写体認識結果を揮発性メモリ102に保存する。被写体の検出処理や特徴情報の算出処理の詳細は後述する。
ここで、画像認識部121による被写体の座標情報POSITIONの算出方法について説明する。
まず、図5を参照して、俯瞰カメラ300の俯瞰画像の座標系と、俯瞰カメラ300の撮影領域を真上から見た座標系の関係について説明する。
サブカメラ400の撮影方向が追尾被写体の方向となるようなパン値を算出するためには、サブカメラ400がパン動作を行う軸に対して垂直な平面座標空間において角度を算出すると演算が簡易になる。例えば、サブカメラ400が床や地面などの接地面(基準位置)に対して垂直に設置されている場合は、サブカメラ400がパン動作を行う軸に対して垂直な座標空間は、図5(b)に示す、基準位置に対して平行な座標空間(サブカメラ400や被写体がいる空間を真上から見た座標空間)となる。本実施形態では、サブカメラ400が基準位置に対して垂直に設置されているとし、俯瞰カメラ300の撮影領域を真上から見た座標系でパン値の算出を行う。すなわち、図5(a)に示す俯瞰カメラ300の俯瞰画像の座標系(以下、俯瞰カメラ座標系)で検出された被写体位置を、図5(b)に示す俯瞰カメラ300の撮影領域を真上から見た座標系(以下、平面座標系)に座標変換を行う。座標変換は、ホモグラフィー変換行列Hを用いて、以下の式1により行う。
(式1)
式1のx、yは俯瞰カメラ座標系の水平座標、垂直座標であり、X、Yは平面座標系の水平座標、及び垂直座標である。
制御部101は、揮発性メモリ102から基準位置情報REF_POSIを読み出し、基準位置情報REF_POSIに含まれる図5(a)、(b)に示すマーカ座標Mark_A~Mark_Dを式1に代入することで、ホモグラフィー変換行列Hが算出される。なお、マーカ座標は平面座標系における値である。式1を用いることで、図5(a)の俯瞰カメラ座標系の任意の座標は、図5(b)の平面座標系の任意の座標系にマッピングすることが可能となる。図5の例では、制御部101は、俯瞰カメラ300の俯瞰画像IMGに含まれる被写体A、被写体Bおよび被写体Cの位置を図5(b)の平面座標系において把握することが可能になる。制御部101は、上記式1により算出したホモグラフィー変換行列Hを揮発性メモリ102に保存する。
次に、被写体検出用の推論モデルによる被写体位置の検出方法と平面座標系への変換方法を説明する。
本実施形態では、ディープラーニング等の機械学習を行って作成された学習済みの被写体検出用の推論モデルを用いて画像認識処理を行うことにより被写体検出を行う。
被写体検出用の推論モデルは、俯瞰画像を入力とし、俯瞰画像に含まれる被写体の画像上の座標情報を出力する。
制御部101は、推論部104により、俯瞰カメラ300の俯瞰画像IMGを入力として、被写体検出用の推論モデルを用いて画像認識処理を行うことにより被写体を検出する。図6(a)は、推論部104により検出された被写体を矩形の枠で表示した例を示している。図6(a)に示す。図6(a)に示すように、俯瞰画像から検出された被写体A、被写体Bおよび被写体Cに外接する矩形部の座標が被写体位置として検出される。制御部101は、俯瞰画像から検出された被写体の座標情報を揮発性メモリ102に保存する。なお、本実施形態では、学習済みモデルを用いた推論処理により被写体検出を行う例を説明したが、これに限定されない。例えば、画像中の局所的な特徴点を照合して検出するSIFT法という方法や、テンプレート画像との類似度を求めて検出するテンプレートマッチング法という方法を用いてもよい。
さらに、図6(a)に示す俯瞰カメラ座標系で検出した被写体の矩形部の下端を被写体検出位置(図6の例では人物の足元座標)として、制御部101が図6(b)に示す平面座標系に変換する。例えば、制御部101が、揮発性メモリ102からホモグラフィー変換行列Hを読み出し、俯瞰カメラ座標系での被写体Aの足元座標(xa、ya)を式1のx、yに代入することで、平面座標系での足元座標(XA、YA)に変換可能になる。被写体Bの足元座標(xb、yb)および被写体Cの足元座標(xc、yc)についても同様に、平面座標系の被写体Bの足元座標(XB、YB)および被写体Cの足元座標(XC、YC)を算出することが可能になる。制御部101は、足元座標を被写体の位置座標POSITIONとして揮発性メモリ102に書き込む。
次に、画像認識部121による被写体の識別情報IDと特徴情報STATの生成方法について説明する。
制御部101は、推論部104により、ディープラーニング等の機械学習を行って作成された学習済みの被写体特定用の推論モデルに、上記被写体検出用の推論モデルの推論結果である被写体の座標情報POSITIONと俯瞰カメラ300の俯瞰画像とを入力して推論処理を行うことにより識別情報IDと特徴情報STATを出力する。被写体特定用の推論モデルは、被写体検出用の推論モデルとは異なる。
ここで、被写体特定用の推論モデルについて説明する。
本実施形態の被写体特定用の推論モデルは、特定の被写体を複数の異なる撮影方向から撮影した画像のセットと、特定の被写体を識別可能な情報とを関連付けたデータを複数の被写体の数だけ集めた学習用データを用いて、同じ被写体の画像に対しては特徴情報の類似度が高くなるように学習を行った学習済みモデルである。被写体特定用の推論モデルに、被写体検出用の推論モデルの出力である被写体の座標位置POSITIONに基づいて切り出した被写体の画像を入力することにより、特徴情報STATが出力される。別のカメラで撮影された同じ被写体の画像を入力とすると、異なる被写体の画像を入力した場合に比べ、出力される特徴情報は特徴情報STATとの類似度が高くなる。特徴情報は畳み込みニューラルネットワークの畳み込み層の応答の多次元ベクトル等が挙げられる。類似度については後述する。
被写体検出用の推論モデルと被写体特定用の推論モデルは本実施形態の制御処理を開始する前に不揮発性メモリ103に格納されている。
また、画像認識部121は、被写体特定用の推論モデルの推論結果である特徴情報に対応する被写体の識別情報IDを付与する。さらに、画像認識部121は、現在のフレームと過去のフレームの各画像を入力として被写体検出用の推論モデルにより検出された各被写体の画像を、被写体特定用の推論モデルに入力して得られた各被写体の画像の特徴情報の類似度を算出する。類似度はコサイン類似度を用いて算出する。コサイン類似度は、各被写体画像の特徴情報である多次元ベクトルが類似しているほど1に近くなり、異なるほど0に近くなる。過去のフレームと現在のフレームの間で、類似度が最も近い被写体に同じIDを付与する。なお、類似度の算出方法は、これに限定されず、特徴情報が近いほど高い数値を出力し、特徴情報が遠いほど低い数値を出力する方法であればどのような方法でもよい。なお、本実施形態では、IDの付与に特徴情報を用いたが、これに限定されない。現在のフレームと過去のフレームの間で、被写体検出用の推論モデルにより得られた被写体の矩形情報を用いて、検出される被写体の矩形情報の位置や大きさを比較し、最も近い被写体に同じIDを付与する方法でもよい。また、過去の数フレームの同じIDに対する矩形情報の位置の推移から現在のフレームの矩形情報の位置をカルマンフィルタ等により予測し、予測した矩形情報の位置に最も近い被写体に同じIDを付与する方法でもよい。また、これらの方法を組み合わせてIDを付与してもよい。このような方法を用いることにより、急に見た目が似ている被写体が撮影画角に入ってきた場合のID付与の正確性を向上させることができる。
以上のように、画像認識部121は、俯瞰画像300の俯瞰画像を入力として、被写体検出用の推論モデルを用いて推論処理を行うことにより、被写体の座標位置POSITIONを出力し、揮発性メモリ102に保存する。また、画像認識部121は、被写体検出用の推論モデルの推論結果である被写体の座標情報POSITIONと俯瞰カメラ300の俯瞰画像とを被写体特定用の推論モデルに入力して推論処理を行う。そして、画像認識部121は、推論処理の結果として識別情報IDと特徴情報STATを出力し、揮発性メモリ102に保存する。
図4の説明に戻り、ステップS103では、制御部101は、図3の注目被写体決定部122の機能を実行し、処理をステップS104に進める。
注目被写体決定部122は、ユーザが操作部106により入力した操作情報と、揮発性メモリ102から読み出した画像認識部121による被写体認識結果である被写体の座標情報とから注目被写体MAIN_SUBJECTを決定する。
制御部101は、WS100の表示部111に揮発性メモリ102に俯瞰カメラ300の俯瞰画像および被写体認識結果を表示する。制御部101は、ユーザが操作部106を介して被写体認識結果として表示される被写体の中から注目被写体を選択する。例えば、操作部106がマウスである場合は、ユーザは表示部111に表示された被写体のいずれかをクリックして選択できる。制御部101は、ユーザが選択した注目被写体に対応する識別情報IDを注目被写体MAIN_SUBJECTとして揮発性メモリ102に保存する。
ステップS104では、制御部101は、図3の追尾対象決定部123の機能を実行し、処理をステップS105に進める。
追尾対象決定部123は、注目被写体決定部122により決定された注目被写体MAIN_SUBJECTからサブカメラ400の追尾被写体SUBJECT_IDを決定する。
ここで、サブカメラ400の追尾被写体の決定方法を説明する。
制御部101は、揮発性メモリ102から注目被写体決定部122により決定された注目被写体MAIN_SUBJECTを読み出し、注目被写体MAIN_SUBJECTを、サブカメラ400の追尾被写体SUBJECT_IDとして決定する。このように、ユーザが選択した注目被写体MAIN_SUBJECTと同じ被写体をサブカメラ400の追尾被写体SUBJECT_IDにすることにより、ユーザが選択した被写体を追尾対象としてサブカメラ400を制御することができる。
追尾被写体の決定方法は、上記の方法に限定されず、例えば、揮発性メモリ102から読み出した、注目被写体MAIN_SUBJECTおよび識別情報IDの情報を用いて決定してもよい。例えば、俯瞰カメラ300の俯瞰画像に複数の被写体が含まれており、複数のサブカメラ400が設置されている場合は、あるサブカメラは注目被写体と同じ被写体を追尾対象とし、別のサブカメラは注目被写体とは異なる被写体を追尾対象とする方法もある。このように追尾被写体を決定することで、サブカメラごとに、俯瞰カメラ300の俯瞰画像に含まれる複数の被写体を網羅的に追尾することができる。また、揮発性メモリ102から被写体の座標情報POSITION、識別情報ID、サブカメラ位置を含むREF_POSIを読み出し、俯瞰カメラ300の俯瞰画像から検出された被写体のうち、サブカメラに最も近い被写体を追尾被写体に決定する方法もある。このように追尾被写体を決定することで、サブカメラの位置から最も画角に収めやすい被写体を追尾対象にすることができる。制御部101は、上記のように決定された追尾被写体SUBJECT_IDを揮発性メモリ102に保存し、また、保存する前の追尾被写体の識別IDを、過去の追尾被写体IDとして揮発性メモリ102に保存する。
ステップS105では、制御部101は、特徴情報決定部125の機能を実行して、サブカメラ400の追尾被写体に対応した特徴情報をEB200に送信する。また、制御部101は、追尾状態決定部126の機能を実行して、追尾状態情報STATEを更新し、揮発性メモリ102に保存し、処理をステップS106に進める。
追尾状態情報STATEは、「WS100による追尾中」、「EB200による追尾中」のいずれかの情報を含む。「WS100による追尾中」はWS100がサブカメラ400を制御することにより追尾被写体を追尾している状態を示す。「EB200による追尾中」はEB200がサブカメラ400を制御することにより追尾被写体を追尾している状態を示す。ステップS105の処理の詳細は後述する。
ステップS106では、制御部101は、追尾状態情報STATEを揮発性メモリ102から読み出し、追尾状態情報STATEに基づいて「WS100による追尾中」であるか「EB200による追尾中」であるかを判定する。制御部101は、「WS100による追尾中」であると判定した場合は、処理をステップS107に進め、「EB200による追尾中」であると判定した場合は処理をステップS101に戻す。
ステップS107では、制御部101は、図3の制御情報生成部124の機能を実行し、処理をステップS108に進める。
制御情報生成部124は、追尾対象決定部123により決定された追尾被写体SUBJECT_IDをサブカメラ400により追尾するためのサブカメラ400のパン値/チルト値PT_VALUEを算出する。制御部101は、基準位置情報REF_POSIに含まれる平面座標系におけるサブカメラ400の座標情報と、検出された被写体の座標情報POSITIONを揮発性メモリ102から読み出す。そして、制御部101は、追尾被写体SUBJECT_IDに対応した被写体の座標情報からサブカメラ400の撮影方向が追尾被写体の方向となるようなパン値/チルト値を算出する。
ここで、図7を参照して、パン値の算出方法を説明する。
図7に示すように、サブカメラ400の光軸中心を延長した線と、サブカメラ400と追尾被写体SUBJECT_IDとを結ぶ線のなす角度θは、以下の式2により算出できる。
(式2)
式2のpx、pyは追尾被写体の位置の水平座標および垂直座標であり、subx、subyはサブカメラ400の位置の水平座標および垂直座標である。px、pyは検出された被写体の座標情報POSITIONから、追尾被写体SUBJECT_IDに対応する座標情報を参照することで求められる。
制御情報生成部124は、角度θに基づいてサブカメラ400のパン値を算出する。
次に、図8を参照して、チルト制御値の算出方法を説明する。
図8に示すように、サブカメラ400の光軸の高さh1として、サブカメラ400の光軸中心を延長した線と、追尾被写体の所定部位の高さ(人物の場合、顔の高さ)h2に向けて延長した線のなす角度ρは、以下の式3と式4により算出できる。
(式3)
(式4)
式4のh1は、サブカメラ400の接地面からの高さ、h2は追尾被写体の接地面から所定部位(人物の場合、顔)までの高さである。h1、h2は予め揮発性メモリ102に保持されていてもよいし、不図示のセンサを用いてリアルタイムに測定するようにしてもよい。
制御情報生成部124は、角度ρに基づいてサブカメラ400のチルト制御値を算出する。
なお、パン値/チルト値を、サブカメラ400を追尾被写体に向けるための速度値としてもよい。パン値/チルト値の算出方法は、まず、制御部101がEB200からサブカメラ400の現在のパン値/チルト値を取得する。次に、制御部101は揮発性メモリ102から読み出したパン値θとの差に比例したパンの角速度を求める。また、制御部101は、揮発性メモリ102から読み出したチルト制御値ρとの差に比例したチルトの角速度を求める。そして、制御部101は、算出された制御値を揮発性メモリ102に保存する。
ステップS108では、制御部101は、揮発性メモリ102からパン値/チルト値を読み出し、サブカメラ400を制御するための所定のプロトコルに従って制御コマンドに変換して揮発性メモリ102に保存し、処理をステップS109に進める。
ステップS109では、制御部101は、ステップS108で算出したパン値/チルト値に応じた制御コマンドを通信部105を介してサブカメラ400に送信し、処理をステップS101に戻す。
以上がWS100の基本動作である。
次に、図3および図4(b)を参照して、EB200の機能と基本動作について説明する。
ステップS201では、制御部201は、通信部205によりサブカメラ400に撮影コマンドを送信し、撮影されたサブ画像をサブカメラ400から受信し、揮発性メモリ202に保存し、処理をステップS202に進める。
ステップS202では、制御部201は、図3の画像認識部221の機能を実行し、処理をステップS203に進める。
画像認識部221は、WS100の画像認識部121と同様の機能を有する。制御部201は、推論部204により、揮発性メモリ202から読み出したサブカメラ400のサブ画像を、ディープラーニング等の機械学習を行って作成された学習済みモデルに入力し、推論処理を行う。推論結果は、サブカメラ400のサブ画像から検出された被写体の座標情報POSITION、特徴情報STAT_SUB[m]、被写体ごとの識別情報IDを含み、揮発性メモリ202に保存される。なお、画像認識部221の推論処理に用いる学習済みモデルはWS100の画像認識部121で用いる学習済みモデルと共通のモデル(被写体検出用の推論モデル、被写体特定用の推論モデル)である。
ステップS203では、制御部201は、通信部205によりWS100から被写体の特徴情報STATを受信し、図3の追尾対象決定部222の機能を用いて、サブカメラ400のサブ画像から算出した特徴情報STAT_SUBと照合する。制御部201は、
特徴情報STATと特徴情報STAT_SUBの類似度が高い被写体がサブカメラ400の撮影画角内に存在する場合は、その被写体の識別情報IDをサブカメラ400で追尾する被写体の識別情報ID=SUBJECT_IDとして決定し、揮発性メモリ102に保存し、処理をステップS204に進める。類似度の算出方法の詳細は後述する。
ステップS204では、制御部201は、通信部205によりWS100に追尾停止処理や追尾継続のための通信状態の確認と、通信内容に応じた処理を行い、処理をステップS205に進める。ステップS204の処理の詳細は後述する。
ステップS205では、制御部201は、揮発性メモリ202に追尾被写体SUBJECT_IDの情報が保存されているか否かを判定する。制御部201は、揮発性メモリ202に追尾被写体SUBJECT_IDの情報が保存されている、すなわち揮発性メモリ102にサブカメラ400の追尾被写体の識別情報IDが保存されていると判定した場合は処理をステップS206に進める。制御部201は、揮発性メモリ202に追尾被写体SUBJECT_IDの情報が保存されていない、すなわち揮発性メモリ102にサブカメラ400の追尾被写体の識別情報IDが保存されていないと判定した場合はステップS201に戻す。
ステップS206では、制御部201は、揮発性メモリ202からステップS202の被写体認識結果である被写体ごとの識別情報IDを読み出し、追尾被写体SUBJECT_IDがサブカメラ400のサブ画像中に存在するか否かを判定する。制御部201は、追尾被写体SUBJECT_IDがサブ画像中に存在すると判定した場合は処理をステップS207に進め、存在しないと判定した場合は処理をステップS201に戻す。
ステップS207では、制御部101は、図3の制御情報生成部223の機能を実行し、ステップS208に進める。
制御情報生成部223は、サブカメラ400のパン値/チルト値を算出する機能を有する。制御部201は、揮発性メモリ202から被写体の座標情報POSITIONと追尾被写体SUBJECT_IDを読み出し、追尾被写体SUBJECT_IDに対応する、現在の追尾被写体の位置を特定する。制御部201は、揮発性メモリ202から、撮影画角内の過去の追尾被写体の位置を読み出し、現在の追尾被写体の位置と、過去の追尾被写体の位置の水平方向に差が多ければパンの角速度が大きくなるように算出し、垂直方向に差が多ければチルトの角速度が大きくなるように算出する。制御部201は、パン値/チルト値を揮発性メモリ202に保存する。
ステップS208では、制御部201は、揮発性メモリ202から読み出したパン値/チルト値を、サブカメラ400を制御するための所定のプロトコルに従って制御コマンドに変換して揮発性メモリ202に保存し、処理をステップS209に進める。
ステップS209では、制御部201は、ステップS208で算出したパン値/チルト値に応じた制御コマンドを通信部205を介してサブカメラ400に送信し、処理をステップS101へ戻す。
以上がEB200の基本動作である。
以上のように、WS100は、俯瞰カメラ300の俯瞰画像に対して画像認識処理を行い、追尾状態情報STATEが「WS100による追尾中」である場合はサブカメラ400のパン動作/チルト動作を制御する。「EB200による追尾中」である場合はサブカメラ400のパン動作/チルト動作を制御しない。EB200はサブカメラ400のサブ画像に対して画像認識処理を行い、追尾被写体が設定され、サブ画像から検出されている場合はサブカメラ400のパン動作/チルト動作を制御する。追尾被写体が設定されていない場合はサブカメラ400のパン動作/チルト動作を制御しない。また、図9で後述する制御処理によって、追尾状態情報STATEと、追尾被写体の設定を更新することによって、WS100とEB200のいずれによりサブカメラ400を制御するかを切り替えることが可能になる。なお、パン値/チルト値をサブカメラ400を制御中の一方の機器だけが送信し、他方の機器が制御中の場合は送信しないことで、図4(a)、(b)の処理ごとにパン値/チルト値を送信する場合と比べて、通信量を削減することができる。
次に、図4(c)を参照して、WS100から撮影コマンドを受信した場合の俯瞰カメラ300の動作について説明する。
ステップS301では、制御部301は、通信部305によりWS100から撮影コマンドを受信し、処理をステップS302に進める。
ステップS302では、制御部301は、通信部305により撮影コマンドを受信したことに応じて撮影処理を開始し、処理をステップS303に進める。制御部301は、撮像部306により画像を撮像し、画像処理部307により所定の画像処理を施して生成された画像データを揮発性メモリ302に保存する。
ステップS303では、制御部301は、画像データを揮発性メモリ302から読み出し、通信部305によりWS100に送信する。
以上が俯瞰カメラ300の動作である。
次に、図4(d)を参照して、WS100またはEB200から制御コマンドを受信したサブカメラ400の動作について説明する。
ステップS401では、制御部401は、通信部405により制御コマンドを受信し、制御コマンドを揮発性メモリ402に保存し、処理をステップS402に進める。
ステップS402では、制御部401は、通信部405から制御コマンドを受信したことに応じて揮発性メモリ402からパン値/チルト値を読み出し、処理をステップS403に進める。
ステップS403では、制御部401は、不揮発性メモリ403から読み出したパン値/チルト値に基づいて所望の方向に所望の速度でパン動作/チルト動作を制御するための駆動パラメータを算出し、処理をステップS404に進める。駆動パラメータは、PTZ駆動部409に含まれるパン/チルト方向のそれぞれのアクチュエータを制御するためのパラメータであり、制御コマンドに含まれるパン値/チルト値が不揮発性メモリ403に格納されている変換テーブルを参照して駆動パラメータに変換される。
ステップS404では、制御部401は、ステップS403で求めた駆動パラメータに基づいてPTZ駆動部409により光学部408を制御し、サブカメラ400の撮影方向を変更する。PTZ駆動部409は駆動パラメータに基づいて光学部408をパン/チルト方向に駆動することでサブカメラ400の撮影方向を変更する。
以上がサブカメラ400の動作である。
次に、図9(a)を参照して、WS100の制御処理について説明する。
図9(a)はWS100の制御処理を示し、図4(a)のステップS105の詳細な処理を示している。
図9(a)の処理の一部は、制御部101が図3の追尾状態決定部126の機能を実行することにより実現される。
追尾状態決定部126は、揮発性メモリ102に保存されている追尾状態情報STATEを更新する機能を有する。
ステップS110では、制御部101は、図4(a)のステップS104で算出したサブカメラ400の追尾被写体SUBJECT_IDと過去の追尾被写体を示す識別情報IDを揮発性メモリ102から読み出す。そして、制御部101は、揮発性メモリ102から読み出した識別情報と比較してサブカメラ400の追尾被写体が変更されたか否かを判定する。制御部101は、サブカメラ400の追尾被写体が変更されたと判定した場合は処理をステップS111に進め、変更されていないと判定した場合は処理をステップS113に進める。
ステップS111では、制御部101は、通信部105によりEB200に追尾停止コマンドを送信し、処理をステップS112に進める。
ステップS112では、制御部101は、図3の追尾状態決定部126の機能を実行し、追尾状態情報STATEを「WS100による追尾中」に変更する。
サブカメラ400の追尾被写体が変更された場合は、サブカメラ400の撮影画角内に追尾被写体が存在しない可能性が高い。この場合は、ステップS111、S112の処理を行うことで、サブカメラ400に代わって、WS100が俯瞰カメラ300の俯瞰画像に基づいてサブカメラ400の制御を行う。
ステップS113では、制御部101は、揮発性メモリ102から追尾状態情報STATEを読み出し、追尾状態情報STATEに基づいて「WS100による追尾中」であるか、「EB200による追尾中」であるかを判定する。制御部101は、「WS100による追尾中」であると判定した場合は処理をステップS117に進め、「EB200による追尾中」であると判定した場合は処理をステップS114に進める。
ステップS114では、制御部101は、通信部105によりEB200に追尾継続確認要求を送信し、EB200による追尾被写体の追尾継続が可能か否かを問い合わせる。EB200からの応答は「追尾継続OK」または「追尾継続NG」である。制御部101は、EB200から「追尾継続OK」の通知を受けた場合は処理をステップS101に戻し、EB200から「追尾継続NG」の通知を受けた場合は処理をステップS115に進める。
ステップS115では、制御部101は、通信部105によりEB200に追尾停止コマンドを送信し、処理をステップS116に進める。
ステップS116では、制御部101は、図3の追尾状態決定部126の機能を実行して、追尾状態情報STATEを「WS100による追尾中」に更新し、処理を終了する。
ステップS114からS116の処理を行うことで、追尾状態が「EB200による追尾中」の場合に、EB200が追尾できない状態になった場合も、WS100により追尾を継続することができる。
ステップS117では、制御部101は、サブカメラ400の撮影画角内に追尾被写体が存在するか否かを判定する。制御部101は、サブカメラ400の撮影画角内に追尾被写体が存在すると判定した場合は処理をステップS118に進める。制御部101は、サブカメラ400の撮影画角内に追尾被写体が存在しないと判定した場合は処理を終了する。サブカメラ400の撮影画角内に追尾被写体が存在するか否かは、制御部101がサブカメラ400から取得した現在のパン値/チルト値と、図4(a)のステップS107で算出する新たなパン値/チルト値とを比較することで判定できる。現在のパン値/チルト値が新たなパン値/チルト値に十分に近い場合は、サブカメラ400の撮影画角内に追尾被写体が存在すると判定できる。あるいは、ステップS108で算出するパン/チルトの速度値が十分小さい場合は、現在のパン値/チルト値が新たなパン値/チルト値に近づいているため、サブカメラ400の撮影画角内に追尾被写体が存在すると判定できる。
ステップS118では、制御部101は、図3の特徴情報決定部125の機能を実行し、処理をステップS119に進める。
特徴情報決定部125は、サブカメラ400の追尾被写体の特徴情報、すなわちEB200に送信する被写体の特徴情報を決定する機能を有する。特徴情報決定部125は、画像認識部121が俯瞰カメラ300の俯瞰画像から検出した被写体の特徴情報STAT[n]を揮発性メモリ102から読み出す。また、特徴情報決定部125は、追尾対象決定部123が決定した追尾被写体の識別情報SUBJECT_IDを揮発性メモリ102から読み出す。そして、特徴情報決定部125は、特徴情報STAT[n]のうち、追尾被写体に対応する特徴情報STAT[i]を決定し、揮発性メモリ102に保存する。iは追尾被写体を示すインデックスである。
ステップS119では、制御部101は、通信部105によりEB200に追尾開始コマンドおよび追尾被写体の特徴情報STAT[i]を送信し、処理をステップS120に進める。
ステップS117からS119の処理により、サブカメラ400の撮影画角内に追尾被写体が存在する可能性が高い場合にのみ、EB200に追尾開始コマンドおよび追尾被写体の特徴情報を送信することができる。これにより、図4(a)と図9(a)の処理ごとに情報を送信する場合に比べて通信量を削減することができる。
ステップS120では、制御部101は、通信部105によりEB200から被写体の照合結果を受信する。制御部101は、EB200から被写体が一致したことを示す一致情報を受信した場合は処理をステップS121に進め、被写体が一致しないことを示す不一致情報を受信した場合は処理を終了する。
ステップS121では、制御部101は、図3の追尾状態決定部126の機能を実行して、追尾状態情報STATEを「EB200による追尾中」に変更し、処理を終了する。
次に、図9(b)、図9(c)、図10を参照して、EB200の制御処理について説明する。
図9(b)はEB200の制御処理を示し、図4(b)のステップS203の詳細な処理を示している。
ステップS210では、制御部201は、通信部205によりWS100から追尾開始コマンドおよび俯瞰カメラ300の俯瞰画像から得られた追尾被写体の特徴情報STAT[i]を受信したか否かを判定する。制御部201は、WS100から追尾開始コマンドおよび追尾被写体の特徴情報STAT[i]を受信した場合は処理をステップS211に進め、受信していない場合は処理を終了する。
ステップS211~S214では、制御部201は、図3の追尾対象決定部222の機能を実行し、WS100から受信した特徴情報STAT[i]と、サブカメラ400のサブ画像から得られた特徴情報STAT_SUB[m]が所定の条件を満たすか否かを判定する。
追尾対象決定部222は、WS100から受信した特徴情報STAT[i]と、サブカメラ400のサブ画像から得られた特徴情報STAT_SUB[m]とから類似度を算出する機能を有する。また、追尾対象決定部222は、揮発性メモリ102に保存されている閾値と特徴情報の類似度とを比較し、比較結果を揮発性メモリ102に保存する機能を有する。追尾対象決定部222は、例えば、サブカメラ400のサブ画像に2人の人物が存在している場合、2人分の特徴情報(STAT_SUB[1]、STAT_SUB[2])と、WS100から受信した特徴情報STAT[i]との類似度を算出する。類似度は、特徴情報ベクトル間のコサイン類似度として算出され、類似度として1~0の値が得られる。制御部201は、m個の被写体について算出した類似度を揮発性メモリ202に保存する。
ステップS211では、制御部201は、図3の追尾対象決定部222の機能を実行して特徴情報の照合処理を行い、処理をステップS212に進める。
ステップS212では、制御部201は、ステップS211の照合結果に応じて、特徴情報の類似度が高い被写体が存在するか否かを判定する。特徴情報の類似度が高い被写体が存在するということは、俯瞰カメラ300とサブカメラ400で同一の被写体が撮影されていることを意味する。制御部201は、特徴情報の類似度が高い被写体が存在すると判定した場合は処理をステップS214に進め、特徴情報の類似度が高い被写体が存在しないと判定した場合は処理をステップS213に進める。
制御部201は、所定の閾値を揮発性メモリ202から読み出し、所定の条件として、類似度が閾値以上である場合、あるいは、より類似度が高い被写体が存在する場合、あるいは、被写体が一致する場合に、特徴情報の類似度が高い被写体が存在すると判定し、当該被写体の識別情報IDを揮発性メモリ202に保存する。また、制御部201は、特徴情報の類似度が高い被写体が存在するか否かを示す情報MATCHを更新し、揮発性メモリ202に保存する。本実施形態では、MATCHの値が0であれば特徴情報の類似度が高い被写体が存在しない、すなわち俯瞰カメラ300とサブカメラ400で被写体が一致しない。MATCHの値が1であれば特徴情報の類似度が高い被写体が存在、すなわち俯瞰カメラ300とサブカメラ400で被写体が一致する。制御部201は、特徴情報の類似度が高い被写体が存在する場合はMATCH=1を揮発性メモリ202に保存し、処理をステップS214に進める。制御部201は、特徴情報の類似度が高い被写体が存在しない場合は、MATCH=0を揮発性メモリ202に保存し、処理をステップS213に進める。
ここで、図10を参照して、俯瞰カメラ300の俯瞰画像とサブカメラ400のサブ画像から検出された被写体の特徴情報の類似度について説明する。
図10(a)は、俯瞰カメラ300の撮影位置と撮影方向とサブカメラ400の撮影位置と撮影方向の位置関係を示している。図10(b)は、俯瞰カメラ300の俯瞰画像から検出された被写体と追尾被写体を示している。
俯瞰カメラ300の俯瞰画像から被写体A、被写体Bおよび被写体Cが検出され、サブカメラ400の追尾被写体が被写体Cであるとする。サブカメラ400からWS100に送信されるサブカメラ400の追尾被写体の特徴情報は被写体Cに対応する情報である。図10(c)、(e)はサブカメラ400のサブ画像、図10(d)、(f)はサブカメラ400の追尾被写体の特徴情報とサブ画像から検出された被写体の特徴情報の類似度を示している。
図10(c)に示すように、サブカメラ400が被写体Aと被写体Bを撮影している場合は、俯瞰カメラ300の俯瞰画像の被写体Cの特徴情報と、サブカメラ400のサブ画像の被写体Aまたは被写体Bの各特徴情報との類似度が算出される。図10(d)に示すように、俯瞰カメラ300の俯瞰画像の被写体Cの特徴情報と、サブカメラ400のサブ画像の被写体Aまたは被写体Bの特徴情報の類似度は低くなる。この場合、例えば、被写体の類似度の閾値が0.7である場合、被写体Aと被写体Bはいずれも不一致という結果になる。
また、図10(e)に示すように、サブカメラ400が被写体Bと被写体Cを撮影している場合は、俯瞰カメラ300の俯瞰画像の被写体Cの特徴情報と、サブカメラ400のサブ画像の被写体Bまたは被写体Cの特徴情報との類似度が算出される。俯瞰カメラ300の俯瞰画像の被写体Cと、サブカメラ400のサブ画像の被写体Cは、カメラの撮影位置や撮影方向が異なるため画像中の形態も異なる。例えば、被写体Cが俯瞰カメラ300に顔や体を向けている場合、被写体Cは俯瞰カメラ300の俯瞰画像では正面に向き、サブカメラ400のサブ画像では横向きに近くなる。WS100の画像認識部121とEB200の画像認識部221の被写体特定用の推論モデルは、同一の被写体を複数の異なる方向から撮影した画像を学習しているモデルである。このため、撮影位置や撮影方向が異なる複数のカメラで撮影した同一の被写体が、それぞれの撮影画像における形態は異なっていても特徴情報の類似度は高くなる。つまり、図10(f)に示すように、俯瞰カメラ300の俯瞰画像の被写体Cの特徴情報とサブカメラ400のサブ画像の被写体Cの特徴情報の類似度は高くなる。これにより、例えば、被写体の類似度の閾値が0.7である場合、被写体Bは不一致、被写体Cは一致という結果になり、被写体Cは同一の被写体と判定することができる。
図9(b)の説明に戻り、ステップS213では、制御部201は、揮発性メモリ202からMATCH=0を読み出し、通信部205によりWS100に送信し、処理を終了する。
ステップS214では、制御部201は、最も高い類似度が算出された被写体の識別情報IDを揮発性メモリ102から読み出し、追尾被写体SUBJECT_IDとして揮発性メモリ102に保存し、処理をステップS215に進める。最も高い類似度が算出された被写体を選択することにより、例えば、服装が類似した被写体が存在したとしても、その中で最も確からしい被写体を追尾対象とすることができる。
ステップS215では、制御部201は、揮発性メモリ202からMATCH=1を読み出し、通信部205によりWS100に送信し、処理を終了する。
図9(c)はEB200の制御処理を示し、図4(b)のステップS204の詳細な処理を示している。
ステップS220では、制御部201は、通信部205によりWS100から追尾停止コマンドを受信したか否かを判定する。制御部201は、WS100から追尾停止コマンドを受信した場合は処理をステップS221に進め、受信していない場合は処理をステップS223に進める。
ステップS221では、制御部201は、通信部205によりサブカメラ400にパン動作/チルト動作を停止する制御コマンドを送信し、処理をステップS222に進める。
ステップS222では、制御部201は、揮発性メモリ202に保存されている追尾被写体SUBJECT_IDを削除し、処理をステップS201に進める。
ステップS223では、制御部201は、通信部205によりWS100から追尾継続確認要求を受信したか否かを判定する。制御部201は、WS100から追尾継続確認要求を受信した場合は処理をステップS224に進め、受信していない場合は処理を終了する。
ステップS224では、制御部201は、画像認識部221による被写体認識結果を揮発性メモリ202から読み出し、追尾被写体SUBJECT_IDが検出されているか否かを判定する。制御部201は、画像認識部221により追尾被写体SUBJECT_IDが検出されていると判定した場合は処理をステップS226に進め、検出されていない場合は処理をステップS225に進める。
ステップS225では、制御部201は、通信部205によりWS100に「追尾継続NG」を送信し、処理をステップS201に戻す。
ステップS226では、制御部201は、通信部205によりWS100に「追尾継続OK」を送信し、処理を終了する。
以上がEB200の詳細な制御処理である。
上述した実施形態1によれば、撮影位置や撮影方向が異なる複数のカメラ300、400において同一の被写体を認識できる。よって、WS100によるサブカメラ400の制御と、EB200によるサブカメラ400の制御を適切に切り替えながら特定の被写体を追尾することができる。
サブカメラ400のサブ画像に追尾被写体が存在しない場合は、WS100によるサブカメラ400の制御を行い、サブカメラ400の撮影画角に追尾被写体が存在する場合は、WS100からEB200にサブカメラ400の制御を受け渡すことができる。また、追尾被写体が高速に動いてロストした場合や、追尾被写体を変更する場合には、WS100によるサブカメラ400の制御を行うことによって追尾を継続することができる。
なお、実施形態1では、WS100とEB200がサブカメラ400にパン値/チルト値を送信するか否かを切り替える例を説明したが、この例に限定されない。例えば、パン値/チルト値を追尾状態にかかわらず、WS100とEB200からサブカメラ400に送信し、サブカメラ400がどちらの機器から受信したパン値/チルト値でパン動作/チルト動作を行うかを制御してもよい。この場合、WS100の処理は図4(a)のステップS106の処理を省略し、図4(a)のステップS107の処理の前に、制御部101がサブカメラ400に追尾状態情報STATEを送信する処理を追加すればよい。EB200の処理は、図4(b)のステップS205とS206、図9(c)のステップS221の処理を省略すればよい。
サブカメラ400は、WS100から受信した追尾状態情報STATEが「EB200による追尾中」である場合は、EB200から受信する制御コマンドに応じてパン動作/チルト動作を行うように制御する。サブカメラ400は、WS100から受信した追尾状態情報STATEが「WS100による追尾中」であれる場合は、WS100から受信する制御コマンドに応じてパン動作/チルト動作を行うように制御する。
なお、エッジボックス(EB)200はサブカメラ400と一体化された構成でもよく、あるいはEB200の機能がサブカメラ400に内蔵された構成であってもよい。
[実施形態2]
実施形態1では、WS100とEB200のいずれかでサブカメラ400を制御する例を説明した。実施形態2は、EB200を省略し、WS100が俯瞰カメラ300の俯瞰画像とサブカメラ400のサブ画像に基づいてサブカメラ400を制御する例を説明する。
実施形態2では、俯瞰カメラ300の俯瞰画像に基づいて算出されたパン値/チルト値と、サブカメラ400のサブ画像に基づいて算出されたパン値/チルト値のいずれを用いてサブカメラ400を制御する。
実施形態2のシステム構成は、図1のシステム構成からEB200を省略した構成であり、サブカメラ400のサブ画像がWS100に入力されている点が、実施形態1と異なる。WS100以外の動作は実施形態1と同様である。
基本的な動作としては、俯瞰カメラ300は俯瞰画像をWS100に送信する。サブカメラ400はサブ画像をWS100に送信する。また、サブカメラ400はPTZ機能を有する。
WS100は、俯瞰カメラ300の俯瞰画像と、サブカメラ400のサブ画像から被写体を検出し、被写体認識結果に基づいてサブカメラ400の撮像方向を追尾被写体の方向に変更する。サブカメラ400の撮影方向が追尾被写体の方向となるまでは、WS100は俯瞰カメラ300の俯瞰画像の被写体認識結果に基づいてサブカメラ400を制御する。サブカメラ400の撮影方向が追尾被写体の方向となった後は、WS100は俯瞰カメラ300の俯瞰画像から追尾被写体の特徴情報を算出し、サブカメラ400のサブ画像から被写体の特徴情報を算出する。そして、これらの特徴情報に基づき、WS100はサブカメラ400を制御する。特徴情報は、撮影位置および/または撮影方向が異なる複数のカメラにより同一の被写体が撮影されている場合に、同一の被写体であることが特定可能な情報である。
実施形態2によれば、俯瞰カメラ300の俯瞰画像とサブカメラ400のサブ画像のいずれかの被写体認識結果に基づいてサブカメラ400を制御し、追尾被写体を追尾することができる。
WS100、俯瞰カメラ300、サブカメラ400のハードウェア構成は実施形態1の図2と同様である。
まず、図11を参照して、本実施形態の制御処理を実現するためのWS100の機能構成について説明する。
WS100の機能は、ハードウェアおよび/またはソフトウェアにより実現される。なお、図11に示す各機能部をソフトウェアにより実現する代わりに、ハードウェアにより構成する場合には、図11の各機能部に対応する回路構成を備えていればよい。
WS100は、画像認識部121、注目被写体決定部122、追尾対象決定部123、制御情報生成部124、特徴情報決定部125、追尾状態決定部126、画像認識部127および追尾対象決定部128を含む。これらの機能を実現するソフトウェアは不揮発性メモリ103に格納され、制御部101が揮発性メモリ102にロードして実行する。
画像認識部121、注目被写体決定部122、追尾対象決定部123、特徴情報決定部125の機能は、実施形態1の図3と同様である。
図11および図12を参照して、WS100の機能と基本動作について説明する。
ステップS501からステップS504の処理は、実施形態1の図4(a)のステップS101からS104と同様の処理である。
ステップS505では、制御部101は、通信部105によりサブカメラ400に撮影コマンドを送信し、撮影されたサブ画像をサブカメラ400から受信し、揮発性メモリ102に保存し、処理をステップS506に進める。
ステップS506では、制御部101は、図11の画像認識部127の機能を実行し、処理をステップS507に進める。
画像認識部127の機能は、実施形態1のEB200の画像認識部221の説明において、制御部201を制御部101、揮発性メモリ202を揮発性メモリ102、不揮発性メモリ203を不揮発性メモリ103に置き換えればよい。
ステップS507では、制御部101は、図11の追尾対象決定部128、追尾状態決定部126の機能を実行して、ステップS502とS506で算出された特徴情報を照合し、追尾状態情報STATEの更新を行う。また、制御部101は、追尾被写体SELECT_ID、追尾状態情報STATEを揮発性メモリ102に保存し、処理をステップS508に進める。
追尾状態情報STATEは、「俯瞰画像による追尾中」、「サブ画像による追尾中」のいずれの情報を含む。「俯瞰画像による追尾中」は俯瞰カメラ300の俯瞰画像の被写体認識結果に基づいてサブカメラ400を制御することにより追尾被写体を追尾している状態を示す。「サブ画像による追尾中」はサブカメラ400のサブ画像の被写体認識結果に基づいてサブカメラ400を制御することにより追尾被写体を追尾している状態を示す。ステップS507の処理の詳細は後述する。
ステップS508からS510の処理は、図11の制御情報生成部124の機能により実行される。
ステップS508では、制御部101は、追尾状態情報STATEを揮発性メモリ102から読み出し、追尾状態情報STATEに基づいて「俯瞰画像による追尾中」であるか、「サブ画像による追尾中」であるかを判定する。制御部101は、「俯瞰画像による追尾中」であると判定した場合は処理をステップS510に進め、「サブ画像による追尾中」であると判定した場合は処理をステップS509に進める。
ステップS509では、制御部101は、サブカメラ400のサブ画像の被写体認識結果に基づいてサブカメラ400のパン値/チルト値を算出し、処理をステップS511に進める。ステップS509の処理は、図3の制御情報生成部223の処理において、制御部201を制御部101、揮発性メモリ202を揮発性メモリ102に置き換えればよい。
ステップS510では、制御部101は、俯瞰カメラ300の俯瞰画像の被写体認識結果に基づいてサブカメラ400のパン値/チルト値を算出し、処理をステップS511に進める。ステップS510の処理は、図3の制御情報生成部223の処理において、制御部201を制御部101、揮発性メモリ202を揮発性メモリ102に置き換えればよい。
ステップS511では、制御部101は、図3の制御情報生成部124の機能を実行し、処理をステップS512に進める。
ステップS511およびS512の処理は、図4(a)のステップS108およびステップS109と同様の処理である。
以上がWS100の基本動作である。
次に、図13を参照して、WS100の制御処理について説明する。
図13はWS100の制御処理を示し、図12のステップS507の詳細な処理を示している。
ステップS520の処理は図9(a)のステップS110と同様の処理である。
ステップS521では、制御部101は、図11の追尾状態決定部126の機能を実行して、追尾状態情報STATEを「俯瞰カメラの画像による追尾中」に変更する。
追尾状態決定部126は、揮発性メモリ102に保存されている追尾状態情報STATEを更新する機能を有する。
ステップS522では、制御部101は、揮発性メモリ102から追尾状態情報STATEを読み出し、追尾状態情報STATEに基づいて「俯瞰画像による追尾中」であるか、「サブ画像による追尾中」であるかを判定する。制御部101は、「俯瞰画像による追尾中」であると判定した場合は処理をステップS525に進め、「サブ画像による追尾中」と判定した場合は処理をステップS523に進める。
ステップS523の処理は、図9(b)のステップS224の処理において、制御部201を制御部101、揮発性メモリ202を揮発性メモリ102に置き換えればよい。
ステップS524では、制御部101は、図11の追尾状態決定部126の機能を実行して、追尾状態情報STATEを「俯瞰画像による追尾中」に変更する。
ステップS525およびS526の処理は、図9(a)のステップS117とS118と同様の処理である。
ステップS527からS529の処理は、図9(b)のステップS211からS214の処理において、制御部201を制御部101、揮発性メモリ202を揮発性メモリ102に置き換えればよい。
ステップS530では、制御部101は、図11の追尾状態決定部126の機能を実行して、追尾状態情報STATEを「サブ画像による追尾中」に変更し、処理を終了する。
上述した実施形態2によれば、WS100が俯瞰カメラ300の俯瞰画像とサブカメラ400のサブ画像のどちらの被写体認識結果に基づいてサブカメラ400を制御するかを切り替える。これにより、実施形態1のEB200が不要になり、システム構成を簡素化して実施形態1と同様の効果を得ることができる。
[実施形態3]
実施形態1、2では、俯瞰カメラ300とサブカメラ400を備えるシステムの例を説明した。
実施形態3では、俯瞰カメラ300とサブカメラ400に加え、メインカメラ500を備えるシステムの例について説明する。
図14は、実施形態3のシステム構成図である。
実施形態3は、メインカメラ500を備え、サブカメラ400の追尾被写体をメインカメラ500で撮影されたメイン画像に基づいて決定する点が実施形態1と異なる。以下では、実施形態1と相違する点を中心に説明する。
実施形態3において、メインカメラ500はPTZ機能を有する。WS100の注目被写体決定部122は、メインカメラ500の撮影範囲から、メインカメラ500の注目被写体を決定(推定)し、メインカメラ500の注目被写体に基づいてサブカメラ400の追尾被写体を決定する。サブカメラ400の追尾被写体は、メインカメラ500の注目被写体と同じ被写体としてもよいし、別の被写体としてもよい。
次に、サブカメラ400に設定された役割(ROLE)に基づいてサブカメラ400の追尾被写体を決定する例について説明をする。
サブカメラ400の役割とは、メインカメラ500における注目被写体、ズーム動作に関連付けられるサブカメラ400の追尾被写体、およびズーム動作の制御内容を示すものである。サブカメラ400の役割は、WS100またはEB200に設けられた操作部を介してユーザが設定することができる。また、複数のサブカメラが設置されている場合は、複数のサブカメラのいずれかをメインカメラに設定することができ、メインカメラの設定をWS100またはEB200に設けられた操作部によりユーザが設定できるようにしてもよい。サブカメラ400の役割やメインカメラの設定方法は、上記の方法に限定されず、どのような方法でもよい。
図15は、サブカメラ400に設定可能な役割と内容を例示している。
役割(ROLE)が「メインフォロー」の場合は、サブカメラ400の役割(CAMERA_ROLE)は、メインカメラ500が注目している被写体と同じ被写体を追尾し、かつメインカメラ500のズーム動作と同位相でズーム制御を行う。この役割(CAMERA_ROLE)に基づいて、サブカメラ400のズーム制御値が算出される。ここで、ズーム動作における同位相とは、メインカメラ500とサブカメラ400のズーム動作が同じ方向の制御となることを意味する。例えば、メインカメラ500のズーム制御値が広角側から望遠側に変更された場合に、サブカメラ400のズームも広角側から望遠側に変更される。
役割(ROLE)が「メインカウンター」の場合には、サブカメラ400の役割(CAMERA_ROLE)は、メインカメラ500が注目している被写体と同じ被写体を追尾し、かつメインカメラ500のズーム動作と逆位相でズーム制御を行う。この役割(CAMERA_ROLE)に基づいて、サブカメラ400のPTZ値が算出される。ここで、ズーム動作における逆位相とは、メインカメラ500とサブカメラ400のズーム動作が逆方向の制御となることを意味する。例えば、メインカメラ500のズーム制御値が広角側から望遠側に変更された場合に、サブカメラ400のズームは望遠側から広角側に変更される。
役割(ROLE)が「アシストフォロー」の場合には、サブカメラ400は、メインカメラ500が注目している被写体と別の被写体を追尾し、かつメインカメラ500のズーム動作と同位相でズーム制御を行う。この役割(CAMERA_ROLE)に基づいて、サブカメラ400のズーム制御値が算出される。
役割(ROLE)が「アシストカウンター」の場合には、サブカメラ400は、メインカメラ500が注目している被写体と別の被写体を追尾し、かつメインカメラ500のズーム動作と逆位相でズーム制御を行う。この役割(CAMERA_ROLE)に基づいて、サブカメラ400のズーム制御値が算出される。図15の例では、「アシストフォロー」、「アシストカウンター」の追尾被写体の制御内容として「メインと別(左側)」が例示されているが、追尾被写体を「メインと別(右側)」とする「アシストフォロー」、「アシストカウンター」があってもよい。
また、追尾被写体を「メインと別」とする場合に左右以外(上下や前後)の位置の被写体とする役割があってもよい。
複数のサブカメラがある場合には、それぞれのサブカメラに対して役割を設定してもよい。
また、実施形態3では、追尾被写体とズームの制御内容を役割として設定する例を説明したが、追尾被写体のみの制御内容を役割として設定してもよいし、他の項目を追加してもよい。
また、実施形態3では、メインカメラ500のメイン画像に基づいてサブカメラ400の追尾被写体を設定し、実施形態1に実施形態3を組み合わせた例を説明したが、実施形態2に実施形態3を組み合わせてもよい。
さらに、実施形態1、2のように俯瞰カメラ300とサブカメラ400を備える構成において、各カメラで撮影された俯瞰画像とサブ画像の両方に基づいてサブカメラ400が追尾被写体を追尾するように制御してもよい。
また、実施形態3のように俯瞰カメラ300とサブカメラ400に加えてメインカメラ500を備える構成では、それぞれのカメラで撮影された俯瞰画像、メイン画像および、サブ画像のいずれか2つあるいはすべてに基づいてサブカメラ400が追尾被写体を追尾するように制御してもよい。
[他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
本明細書の開示は、以下のシステム、制御装置、制御方法およびプログラムを含む。
[構成1]
撮影方向が異なる第1の撮像装置および第2の撮像装置と、前記第1の撮像装置により撮像された第1の画像または前記第2の撮像装置により撮像された第2の画像に基づいて所定の被写体を追尾するように前記第2の撮像装置を制御する第1の制御装置および第2の制御装置と、を含むシステムであって、
前記第1の制御装置は、
前記第1の画像に含まれる前記所定の被写体の第1の特徴情報を生成する第1の生成手段と、
前記第1の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の撮像装置を制御する第1の制御手段と、を有し、
前記第2の制御装置は、
前記第2の画像に含まれる被写体の第2の特徴情報を生成する第2の生成手段と、
前記第1の制御装置により生成された前記第1の特徴情報と前記第2の生成手段により生成された前記第2の特徴情報とを比較する比較手段と、
前記第2の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の撮像装置を制御する第2の制御手段と、を有し、
前記第1の特徴情報および前記第2の特徴情報は、撮影方向が異なる複数の撮像装置により同一の被写体が撮影されている場合に、同一の被写体であることが特定可能な情報であり、
前記比較手段による比較の結果に基づいて、前記第1の特徴情報に基づいて前記所定の被写体を追尾するように前記第1の制御装置が前記第2の撮像装置を制御する第1の状態と、前記第2の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の制御装置が前記第2の撮像装置を制御する第2の状態とを切り替えることを特徴とするシステム。
[構成2]
前記第1の制御装置は、前記第1の特徴情報を前記第2の制御装置に送信し、
前記第1の制御手段は、前記比較手段による比較の結果に基づいて、前記第1の特徴情報と前記第2の特徴情報とが所定の条件を満たす場合は、前記第2の状態に切り替え、
前記第1の特徴情報と前記第2の特徴情報とが前記所定の条件を満たさない場合は、前記第1の状態に切り替えることを特徴とする構成1に記載のシステム。
[構成3]
前記所定の条件は、前記第1の特徴情報と前記第2の特徴情報の類似度が閾値以上の場合であり、
前記比較手段は、前記第1の特徴情報と前記第2の特徴情報の類似度を算出し、前記類似度と前記閾値との比較結果を出力することを特徴とする構成2に記載のシステム。
[構成4]
前記第2の制御手段は、前記所定の被写体が前記第2の撮像装置の撮影範囲に存在する場合に、前記所定の被写体を追尾するように前記第2の撮像装置を制御し、
前記所定の被写体が前記第2の撮像装置の撮影範囲に存在しなくなった場合は、前記所定の被写体の追尾を継続できないことを前記第1の制御装置に通知し、
前記第1の制御手段は、前記通知を受けて前記第2の状態から前記第1の状態に切り替えることを特徴とする構成1から3のいずれか1項に記載のシステム。
[構成5]
前記所定の被写体が変更された場合、前記第1の制御手段は、前記第2の状態から前記第1の状態に切り替えることを特徴とする構成1から4のいずれか1項に記載のシステム。
[構成6]
前記所定の被写体が変更された場合、前記第1の制御手段は、前記第1の特徴情報と前記第2の特徴情報とが所定の条件を満たす場合は、前記第1の状態から前記第2の状態に切り替える構成5に記載のシステム。
[構成7]
前記第1の制御装置は、
前記第1の画像から検出された被写体から前記所定の被写体を決定する第1の追尾対象決定手段と、
前記所定の被写体の前記第1の特徴情報を決定し、前記第2の制御装置に送信する特徴情報決定手段と、
前記所定の被写体を追尾するように前記第2の制御装置の撮影方向を制御する第1の制御情報を生成する第1の制御情報生成手段と、を有し、
前記第2の制御装置は、
前記第2の画像から検出された被写体の前記第2の特徴情報と、前記第1の制御装置から受信した前記所定の被写体の前記第1の特徴情報とに基づいて前記第2の画像から検出された被写体から前記所定の被写体を決定する第2の追尾対象決定手段と、
前記所定の被写体を追尾するように前記第2の制御装置の撮影方向を制御する第2の制御情報を生成する第2の制御情報生成手段と、を有することを特徴とする構成1から6のいずれか1項に記載のシステム。
[構成8]
前記第2の撮像装置は、前記第1の制御装置または前記第2の制御装置から取得した制御情報に基づいて前記所定の被写体を追尾するように前記第2の制御装置の撮影方向を制御することを特徴とする構成7に記載のシステム。
[構成9]
前記第2の撮像装置は、前記第1の制御装置と前記第2の制御装置から取得した制御情報のいずれかに基づいて前記所定の被写体を追尾するように前記第2の制御装置の撮影方向を制御することを特徴とする構成7に記載のシステム。
[構成10]
前記制御情報は、パン値とチルト値の少なくともいずれかを含むことを特徴とする構成7から9のいずれか1項に記載のシステム。
[構成11]
前記第1の生成手段は、前記第1の画像を入力として学習済みモデルを用いた推論処理を行うことにより前記第1の特徴情報を生成し、
前記第2の生成手段は、前記第2の画像を入力として学習済みモデルを用いた推論処理を行うことにより前記第2の特徴情報を生成することを特徴とする構成1から10のいずれか1項に記載のシステム。
[構成12]
前記学習済みモデルは、被写体検出用の第1のモデルと被写体特定用の第2のモデルとを含み、
前記第1の生成手段は、前記第1の画像を入力として前記第1のモデルを用いた推論処理を行うことにより前記第1の画像に含まれる被写体の位置を示す第1の情報を生成し、
前記第1の画像と前記第1の情報を入力として前記第2のモデルを用いた推論処理を行うことにより前記第1の画像に含まれる被写体の特徴情報を生成し、
前記第2の生成手段は、前記第2の画像を入力として前記第1のモデルを用いた推論処理を行うことにより前記第2の画像に含まれる被写体の位置を示す第2の情報を生成し、
前記第2の画像と前記第2の情報を入力として前記第2のモデルを用いた推論処理を行うことにより前記第2の画像に含まれる被写体の特徴情報を生成することを特徴とする構成11に記載のシステム。
[構成13]
前記被写体特定用の第2のモデルは、複数の被写体について複数の異なる撮影方向から撮影した画像を学習用データとして、同じ被写体の画像に対しては特徴情報の類似度が高くなるように学習を行った学習済みモデルであることを特徴とする構成12に記載のシステム。
[構成14]
第1の撮像装置により撮像された第1の画像または前記第1の撮像装置とは撮影方向が異なる第2の撮像装置により撮像された第2の画像に基づいて所定の被写体を追尾するように前記第2の撮像装置を制御する制御装置であって、
前記第1の画像に含まれる前記所定の被写体の第1の特徴情報を生成する生成手段と、
前記所定の被写体を追尾するように前記第2の撮像装置を制御する制御手段と、を有し、
前記制御手段は、外部装置において、前記第2の画像に含まれる被写体の第2の特徴情報と前記第1の特徴情報とを比較した結果に基づいて、前記第1の特徴情報に基づいて前記所定の被写体を追尾するように前記制御装置が前記第2の撮像装置を制御する第1の状態と、前記第2の特徴情報に基づいて前記所定の被写体を追尾するように前記外部装置が前記第2の撮像装置を制御する第2の状態とを切り替え、
前記第1の特徴情報および前記第2の特徴情報は、撮影方向が異なる複数の撮像装置により同一の被写体が撮影されている場合に、同一の被写体であることが特定可能な情報であることを特徴とする制御装置。
[構成15]
第1の撮像装置とは撮影方向が異なる第2の撮像装置により撮像された第2の画像に基づいて所定の被写体を追尾するように前記第2の撮像装置を制御する制御装置であって、
前記第2の画像に含まれる被写体の第2の特徴情報を生成する生成手段と、
外部装置から取得した前記第1の撮像装置により撮像された第1の画像に含まれる前記所定の被写体の第1の特徴情報と、前記第2の特徴情報とを比較する比較手段と、
前記第2の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の撮像装置を制御する制御手段と、を有し、
前記第1の特徴情報および前記第2の特徴情報は、撮影方向が異なる複数の撮像装置により同一の被写体が撮影されている場合に、同一の被写体であることが特定可能な情報であり、
前記制御手段は、前記比較手段による比較の結果に基づいて、前記第1の特徴情報と前記第2の特徴情報とが所定の条件を満たす場合に、前記第2の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の撮像装置を制御することを特徴とする制御装置。
[構成16]
第1の撮像装置により撮像された第1の画像または前記第1の撮像装置とは撮影方向が異なる第2の撮像装置により撮像された第2の画像に基づいて所定の被写体を追尾するように前記第2の撮像装置を制御する制御装置であって、
前記第1の画像に含まれる前記所定の被写体の第1の特徴情報を生成する第1の生成手段と、
前記第2の画像に含まれる被写体の第2の特徴情報を生成する第2の生成手段と、
前記所定の被写体を追尾するように前記第2の撮像装置を制御する制御手段と、を有し、
前記第1の特徴情報および前記第2の特徴情報は、撮影方向が異なる複数の撮像装置により同一の被写体が撮影されている場合に、同一の被写体であることが特定可能な情報であり、
前記制御手段は、前記第1の特徴情報と前記第2の特徴情報とを比較した結果に基づいて、前記第1の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の撮像装置を制御する第1の状態と、前記第2の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の撮像装置を制御する第2の状態とを切り替えることを特徴とする制御装置。
[構成17]
第1の撮像装置により撮像された第1の画像または前記第1の撮像装置とは撮影方向が異なる第2の撮像装置により撮像された第2の画像に基づいて所定の被写体を追尾するように前記第2の撮像装置を制御する制御装置の制御方法であって、
前記第1の画像に含まれる前記所定の被写体の第1の特徴情報を生成する生成ステップと、
前記所定の被写体を追尾するように前記第2の撮像装置を制御する制御ステップと、を有し、
前記制御ステップでは、外部装置において、前記第2の画像に含まれる被写体の第2の特徴情報と前記第1の特徴情報とを比較した結果に基づいて、前記第1の特徴情報に基づいて前記所定の被写体を追尾するように前記制御装置が前記第2の撮像装置を制御する第1の状態と、前記第2の特徴情報に基づいて前記所定の被写体を追尾するように前記外部装置が前記第2の撮像装置を制御する第2の状態とを切り替え、
前記第1の特徴情報および前記第2の特徴情報は、撮影方向が異なる複数の撮像装置により同一の被写体が撮影されている場合に、同一の被写体であることが特定可能な情報であることを特徴とする方法。
[構成18]
第1の撮像装置とは撮影方向が異なる第2の撮像装置により撮像された第2の画像に基づいて所定の被写体を追尾するように前記第2の撮像装置を制御する制御装置の制御方法であって、
前記第2の画像に含まれる被写体の第2の特徴情報を生成する生成ステップと、
外部装置から取得した前記第1の撮像装置により撮像された第1の画像に含まれる所定の被写体の第1の特徴情報と、前記第2の特徴情報とを比較する比較ステップと、
前記第2の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の撮像装置を制御する制御ステップと、を有し、
前記第1の特徴情報および前記第2の特徴情報は、撮影方向が異なる複数の撮像装置により同一の被写体が撮影されている場合に、同一の被写体であることが特定可能な情報であり、
前記制御ステップでは、前記比較の結果に基づいて、前記第1の特徴情報と前記第2の特徴情報とが所定の条件を満たす場合に、前記第2の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の撮像装置を制御することを特徴とする方法。
[構成19]
第1の撮像装置により撮像された第1の画像または前記第1の撮像装置とは撮影方向が異なる第2の撮像装置により撮像された第2の画像に基づいて所定の被写体を追尾するように前記第2の撮像装置を制御する制御装置の制御方法であって、
前記第1の画像に含まれる前記所定の被写体の第1の特徴情報を生成する第1の生成ステップと、
前記第2の画像に含まれる被写体の第2の特徴情報を生成する第2の生成ステップと、
前記所定の被写体を追尾するように前記第2の撮像装置を制御する制御ステップと、を有し、
前記第1の特徴情報および前記第2の特徴情報は、撮影方向が異なる複数の撮像装置により同一の被写体が撮影されている場合に、同一の被写体であることが特定可能な情報であり、
前記制御ステップでは、前記第1の特徴情報と前記第2の特徴情報とを比較した結果に基づいて、前記第1の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の撮像装置を制御する第1の状態と、前記第2の特徴情報に基づいて前記所定の被写体を追尾するように前記第2の撮像装置を制御する第2の状態とを切り替えることを特徴とする方法。
[構成20]
コンピュータを、構成14から16のいずれか1項に記載された制御装置として機能させるためのプログラム。