JP2024010639A - 撮像システム及びそれを構成する制御装置、撮像装置、表示装置、制御方法、表示方法 - Google Patents

撮像システム及びそれを構成する制御装置、撮像装置、表示装置、制御方法、表示方法 Download PDF

Info

Publication number
JP2024010639A
JP2024010639A JP2022148288A JP2022148288A JP2024010639A JP 2024010639 A JP2024010639 A JP 2024010639A JP 2022148288 A JP2022148288 A JP 2022148288A JP 2022148288 A JP2022148288 A JP 2022148288A JP 2024010639 A JP2024010639 A JP 2024010639A
Authority
JP
Japan
Prior art keywords
control instruction
control
subject
imaging
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022148288A
Other languages
English (en)
Inventor
賢 黒田
Masaru Kuroda
航陽 佐藤
Katsuaki Sato
将司 西山
Masashi Nishiyama
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to EP23183163.7A priority Critical patent/EP4312434A1/en
Priority to US18/350,567 priority patent/US20240022812A1/en
Priority to CN202310842471.6A priority patent/CN117395500A/zh
Publication of JP2024010639A publication Critical patent/JP2024010639A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Studio Devices (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

【課題】 リモート撮影の操作性低下を低減することが可能な撮像システムを提供すること。【解決手段】 撮像システムは、第1の制御装置と、第2の制御装置と、撮像装置とを備える。第1の制御装置は、ユーザからの操作に基づく第1の制御指示を前記撮像装置へ送信する第1の送信手段を有する。第2の制御装置は、前記撮像装置から受信した記撮影画像に基づいて生成された第2の制御指示を前記撮像装置へ送信する第2の送信手段を有する。撮像装置は、撮像手段と、第1の制御指示と第2の制御指示とを受信する第3の受信手段と、第3の受信手段により受信した第1の制御指示と第2の制御指示とに基づいて前記撮像手段による撮像処理を制御する制御手段と、を有する。前記第1の制御指示の通信にかかる時間は、前記第2の制御指示の通信に係る時間よりも長い。【選択図】 図7

Description

本発明は、撮像装置を含む撮像システムに関し、特に、外部から撮像装置を制御することが可能な撮像システムに関する。
近年、映像制作において、IP(Internet Protocol)ネットワークを利用した動画編集・配信システムが増加してきている。遠隔地からPCやコントローラがIPネットワークを介して、機器を制御することが可能であり、撮影した映像も従来のSDI(Serial Digital Interface)などの映像ケーブルではなく、IPネットワークを介して送受信する規格が採用されている。それらをカメラ本体に搭載したリモートコントロールカメラも普及してきており、撮影現場にユーザがいなくとも、遠隔地からカメラをコントロールすることで撮影が可能となっている。
一方、被写体の動きに合わせてカメラを制御する自動撮影が行われている。ユーザが操作することなく撮影が行えるが、意図しない挙動をすることもあるため、手動操作による補助と併用する方法が提案されている。
特許文献1では、自動制御と手動制御を切り替えることが可能であり、手動制御時に一定時間操作がないことで自動制御に切り替える方法を開示している。一方、特許文献2では、ユーザの操作によって追尾を行う際に、カメラの動作状態や被写体との位置関係に応じて速度制御をカメラ自身で行うことで追尾操作の難度を下げる方法が開示されている。
特開2005-86360号公報 特開2004-129049号公報
ユーザが撮影画像を確認しながら手動でカメラの操作を行うには、カメラが撮影した画像をユーザが確認したのちに、ユーザの操作に基づく制御指示がカメラに送信される。しかしながら、ユーザが遠隔地にいる場合、映像ケーブルなどの専用の有線ネットワークを用いてユーザが操作するコントローラとカメラとを接続する場合と比較して、映像信号や制御指示の信号の通信遅延が大きくなることがある。この通信遅延の程度(通信遅延量と呼ぶことがある)によっては、ユーザが撮影画像を確認している時刻には、既に被写体は別の位置に移動してしまっているケースも考えられる。そのため、ユーザの操作に基づく制御指示がカメラ側に到達した時刻では、既にその操作が意図しない操作となっている可能性がある。
そこで本発明は、ユーザの操作を受け付けるコントローラとカメラとの間の通信遅延が大きい場合であっても、リモート撮影の操作性低下を低減することが可能な撮像システムを提供することを目的とする。
本発明の一側面としての撮像システムは、第1の制御装置と、第2の制御装置と、撮像装置とを備え、前記第1の制御装置は、ユーザからの操作を受け付ける第1の制御受付手段と、前記操作に基づく第1の制御指示を前記撮像装置へ送信する第1の送信手段と、を有し、前記第2の制御装置は、前記撮像装置から撮影画像を受信する第2の受信手段と、前記撮影画像に基づいて第2の制御指示を生成する生成手段と、前記第2の制御指示を前記撮像装置へ送信する第2の送信手段と、を有し、前記撮像装置は、撮像手段と、前記第1の制御装置および前記第2の制御装置から前記第1の制御指示と前記第2の制御指示とを受信する第3の受信手段と、前記第3の受信手段により受信した制御指示に基づいて前記撮像手段による撮像処理を制御する制御手段と、を有し、前記第1の制御装置が前記第1の制御指示を送信してから、前記撮像装置が前記第1の制御指示を受信するまでの時間が、前記第2の制御装置が前記第2の制御指示を送信してから、前記撮像装置が前記第2の制御指示を受信するまでの時間よりも長く、前記制御手段は、前記第1の制御指示と前記第2の制御指示とに基づいて前記撮像処理を制御することを特徴とする。
本発明のその他の側面については、以下で説明する実施の形態で明らかにする。
ユーザの操作を受け付けるコントローラとカメラとの間の通信遅延が大きい場合であっても、リモート撮影の操作性低下を低減することが可能な撮像システムを提供することが可能である。
第1~第3の実施形態におけるシステム全体の構成例を示す図 第1~第3の実施形態におけるシステムのハードウェア構成を示す図 情報処理装置200の動作を示すフローチャート カメラ100の動作を示すフローチャート コントローラ300の動作を示すフローチャート 通信遅延に伴う操作性低下の例を説明するための図 実施形態1におけるアシスト動作を示すフローチャート 被写体の撮影画像内位置を基準とした速度決定を説明するための図 実施形態1を適用した際の動作を説明するための図 実施形態2における被写体の実世界における座標位置を基準とした速度決定を行うフローチャート 実施形態2における被写体の実世界における座標を基準とした速度決定を示す図 実世界における座標の算出例を示す図 第3の実施形態におけるアシスト動作を示すフローチャート 第4の実施形態におけるシステム全体の一例を示す図 第4の実施形態におけるシステムのハードウェア構成を示す図 第4の実施形態におけるカメラ100の動作を示すフローチャート 第1~4の実施形態における被写体位置とシステムの動作状態を視覚的に表現している状態を示す図 第5の実施形態における情報処理装置200の動作を示すフローチャート 第5の実施形態におけるコントローラ300の動作を示すフローチャート 第6の実施形態におけるカメラ100の動作を示すフローチャート
以下に、本発明の好ましい実施形態を添付の図面に基づいて詳細に説明する。なお、各図において、同一の部材については同一の参照番号を付し、重複する説明は省略する。
[第1の実施形態]
<撮像システムの構成の説明>
図1は、本実施形態に係る処理を実施する撮像システムの構成の一例を示す図である。図1において、撮像システムは、カメラ100、情報処理装置200(第2の制御装置とも呼ぶ)、コントローラ300(第1の制御装置とも呼ぶ)を備える。カメラ100と情報処理装置200は、LAN(Local Area Network)400上で形成されたネットワークに接続されており、コントローラ300は別のLAN500に接続されている。LAN400とLAN500はインターネット600を介して接続されており、各機器同士が通信プロトコルによって相互通信可能なネットワークを形成している。有線、無線の種類は問わない。カメラ100と情報処理装置200は物理的に近い位置にそれぞれ設置されており、コントローラ300はそれらから離れた遠隔地に設置されている。そのため、LAN400やLAN500内での通信と比較して、インターネット600を介する場合は大きい通信遅延が発生する状況下にある。
カメラ100は、追尾対象とその周囲の決められた範囲を撮影することができる撮像装置であり、撮影した画像を情報処理装置200やコントローラ300へ出力する。本実施形態におけるカメラ100は、ネットワークインタフェースを有するものとして説明しているが、カメラ100から情報処理装置200へ映像転送は、SDIやHDMI(登録商標)(High-Definition Multimedia Interface)といった映像伝送ケーブルを介して行ってもよい。カメラ100は、後述する駆動部109を備えており、撮像方向を変更するためのパン・チルト操作が可能な機構を有している。
情報処理装置200は、カメラ100が撮像した画像を受信し、受信した画像中における被写体の位置を、学習モデルを利用して推論する。そして、情報処理装置200は、その推論結果に基づき、カメラ100の撮像方向を制御するための指示である、第2の制御指示をカメラ100へ送信する。尚、第2の制御指示には、推論した被写体位置に基づいて決定したズーム位置(焦点距離)の情報が含まれていてもよい。
コントローラ300は、インターネット600を介してカメラ100にアクセスすることで、カメラ100が出力している画像の取得と、ユーザ操作に基づく撮像制御や各種撮像条件の設定を実行することができる。なお、実施形態における画像とは、動画における各フレーム及び静止画のいずれも含むものであり、本実施形態は両方に適用されうる。
図2は、システムを構成するカメラ100、情報処理装置200、コントローラ300のハードウェア構成図である。各装置の構成について説明をする。
本実施形態におけるカメラ100は、CPU101、ROM102、RAM103、映像入力I/F(Interface)104、ネットワークI/F105、画像処理部106、画像センサ107、駆動I/F108,駆動部109及び、上記の構成要素を互いに通信可能に接続する内部バス110を有する。
CPU101は、カメラ100の各構成要素を制御することで、装置全体の制御を司る。
ROM102は、フラッシュメモリ、HDD、SSD、SDカード等に代表される不揮発性を持った記憶装置で、OSや各種プログラム及び各種データの永続的な記憶領域として使用される他に、短期的な各種データの記憶領域としても使用される。
RAM103はDRAM等に代表される揮発性を持った高速な記憶装置で、OSや各種プログラム及び各種データがロードされ、またOSや各種プログラムの作業領域としても使用される。
映像出力I/F104は後述する画像センサ107が撮像した映像を外部装置に出力するためのインターフェースであり、SDIやHDMIで構成される。
ネットワークI/F105は前述のLAN400と接続するためのインターフェースであり、Ethernet(登録商標)等の通信媒体を介して情報処理装置200やコントローラ300などの外部装置との通信を担う。尚、カメラ100の遠隔からのカメラ制御は、不図示のシリアル通信I/Fなど別のインターフェースを介して行っても構わない。
画像処理部106には画像センサ107が接続され、画像センサ107から取得した画像データを所定のフォーマットに変換し、必要に応じて圧縮してRAM103に転送する。
画像センサ107は、CCDやCMOSなどのイメージセンサであり、カメラ100において撮像手段として機能する。画像センサ107は、不図示の撮影光学系により結像された被写体像を光電変換することにより画像データを生成する。尚、撮影光学系と画像センサ107とを合わせて撮像手段と呼ぶこともある。
駆動I/F108は、CPU101から受ける指示を駆動部109へ伝えるためのインターフェースである。
駆動部109はカメラ100の撮像方向を変更するためのメカ機構や光学系である。本実施形態では、画像センサと撮影光学系を構成するレンズとを一体的に回転駆動させることで、撮像方向を変更する。駆動部109は、メカ駆動系及び駆動源のモータで構成される。駆動部109は駆動I/F108を介してCPU101から受ける指示に基づいて水平方向や垂直方向に対する撮影方向を変更するための、パン・チルト動作といった回動駆動を行う。また、撮影光学系が変倍レンズ(ズームレンズとも呼ぶ)を有する場合は、ズームレンズを光軸方向に動かすことで光学的に撮影画角を変更するためのズーム動作を行ってもよい。続いて情報処理装置(第2の制御装置)200について説明する。
情報処理装置200は、CPU201、RОM202、RАM203、ネットワークI/F204、映像出力I/F205、ユーザ入力I/F206、推論部207、映像入力I/F208が内部バス209を介して相互に接続されている。
CPU201は、情報処理装置200の各構成要素を制御することで、装置全体の制御を司る。また、CPU201は、後述する推論部207から受信した被写体の位置を示す情報に基づいて、カメラ100の撮影方向を制御する第2の制御指示を生成する。
ROM202は、フラッシュメモリ、HDD、SSD、SDカード等に代表される不揮発性を持った記憶装置で、OSや各種プログラム及び各種データの永続的な記憶領域として使用される他に、短期的な各種データの記憶領域としても使用される。
RAM203はDRAM等に代表される揮発性を持った高速な記憶装置で、OSや各種プログラム及び各種データがロードされ、またOSや各種プログラムの作業領域としても使用される。
ネットワークI/F204は前述のLAN400と接続するためのインターフェースであり、Ethernet等の通信媒体を介してカメラ100との通信を担う。ここで通信とは、カメラ100への制御指示の送信、カメラ100からの撮影画像の受信等が挙げられる。
映像出力I/F205は映像を外部に出力するためのインターフェースであり、SDIやHDMIで構成される。接続されるものとしては、例えば液晶パネルや有機ELパネルである。尚、情報処理装置200は、受信した撮影画像に基づいて情報処理装置がカメラ100の制御指示を生成することが可能であるため、ユーザに撮影画像を表示することは必須ではない。
ユーザ入力I/F206は、ユーザからの指示を受け付け、CPU201に対して指示信号を送信するインターフェースである。具体例としては、マウス、キーボード、タッチパネルなどの入力装置と接続するためのインターフェースでありUSB(Universal Serial Bus)等で構成される。
映像出力I/F205とユーザ入力I/F206により、ユーザと情報処理装置200との間のユーザインタフェースを構成することになる。
推論部207は後述する映像入力I/F208を介してカメラ100から受信した映像から、学習済みモデルを用いて所定の被写体の位置や当該被写体の有無を推定するための推論部である。所謂GPU(Graphics Processing Unit)等の画像処理や推論処理に特化した演算装置により構成される。学習処理や学習処理により生成された学習済みモデルを用いた推論処理に利用するのは一般的にはGPUが有効である。しかし推論処理に用いるものとしてはFPGA(Field-Programmable Gate Array)といった再構成可能な論理回路で同等の機能を実現してもよいし、推論部207の処理をCPU201が担ってもよい。また、GPU、FPGA、CPUなど複数種類の演算装置/回路を組み合わせてもよい。尚、本実施形態では、カメラから受信した映像に基づいて被写体検出ができれば、推論処理は必須ではない。推論部207が被写体の種別や過去の移動情報などに基づいて、今後の移動方向・速度を予測できる構成であると、単に被写体検出を行う構成と比較して、より正確に追尾動作を制御することができるため好ましい。被写体位置の検出を行うのみの場合は、被写体が画像上において移動した後に、画像上の位置を元に戻す制御を行うことになるが、推論ができると、被写体の移動と同時にパンチルト動作を行うことができる。推論部207により推定された所定の被写体の位置を示す情報は内部バス209を介してCPU201へ送信される。
映像入力I/F208は前述したカメラ100等から映像を受信するためのインターフェースであり、SDIやHDMIで構成される。
続いてコントローラ(第1の制御装置)300について説明する。コントローラ300は、CPU301、ROM302、RAM303、ネットワークI/F304、表示部305、ユーザ入力I/F306が内部バス307を介して相互に接続されている。
CPU301は、コントローラ300の各構成要素を制御することで、装置全体の制御を司る。また、CPU301は、後述するユーザ入力I/F306により受け付けたユーザの操作に基づいて、カメラ100の撮影方向を制御する第1の制御指示を生成する。
ROM302は、フラッシュメモリ、HDD、SSD、SDカード等に代表される不揮発性を持った記憶装置で、OSや各種プログラム及び各種データの永続的な記憶領域として使用される他に、短期的な各種データの記憶領域としても使用される。
RAM303はDRAM等に代表される揮発性を持った高速な記憶装置で、OSや各種プログラム及び各種データがロードされ、またOSや各種プログラムの作業領域としても使用される。
ネットワークI/F304は前述のLAN500と接続するためのインターフェースであり、Ethernet(登録商標)等の通信媒体を介してカメラ100や外部装置との通信を担う。ここで通信とは、カメラ100への第1の制御指示の送信、カメラ100からの撮影画像の受信等が挙げられる。
表示部305は、カメラ100から取得した画像やコントローラ300の設定画面の表示を行う。表示部305は、例えば液晶パネルや有機ELパネルである。尚、ここではコントローラ300が表示部を有する例を示しているが、例えば、撮像映像を表示するのみの表示モニタとコントローラ300が別体としてそれぞれ存在している構成であっても良い。
ユーザ入力I/F306はコントローラ300に対するユーザからの操作を受け付けるためのインターフェース(第1の制御受付手段)であり、例えばボタン、ダイヤル、ジョイスティック、タッチパネル等が挙げられる。ユーザ入力I/F306で受け付けた操作を示す情報は内部バス307を介してCPU301へ送信される。
<自動追尾動作と手動制御動作の基本動作の説明>
続いて、本システムにおける基本動作である、情報処理装置200により検出した被写体を追尾するようカメラ100を制御する動作及び、コントローラ300により受け付けたユーザ操作に基づいてカメラ100を制御する動作について説明する。情報処理装置200により検出した被写体を追尾するようカメラ100を制御する動作は自動追尾動作、コントローラ300により受け付けたユーザ操作に基づいてカメラ100を制御する動作は手動制御動作と呼ぶ。
まず、情報処理装置200による自動追尾動作の制御について、図3と図4を用いて説明する。
図3は情報処理装置200の制御フロー、図4はカメラ100の制御フローをそれぞれ示しており、情報処理装置200が、カメラ100の撮影画像から検出した被写体位置に応じてカメラ100を制御する一連の流れを示している。
情報処理装置200の動作について図3を用いて説明する。本制御フローは情報処理装置200のCPU201が、ネットワークI/F204やユーザ入力I/F206を介して自動追尾動作あるいは、後述するアシスト動作付きの手動制御動作の実行を指示する命令を受信することで開始される。
ステップS101において、CPU201は、本処理を継続するか否かを判断する。CPU201は、ネットワークI/F204やユーザ入力I/F206を介して本制御フローの終了を指示する命令を受信しているか確認し、終了指示を受信していなければステップS102へ遷移する。終了指示を受信している場合は本制御を終了する。
ステップS102において、情報処理装置200は、カメラ100が撮像した映像データをカメラ100から受信する。CPU201は、映像入力I/F208がカメラ100から撮像した映像データを受信し、受信した映像データを内部のRAM203へ逐次書き出すように映像入力I/F208を制御する。なお、映像データは所定のフレームレートに合わせてカメラ100の映像出力I/F104より順次送信される。また、映像データはネットワークI/F204を介して受信し、内部のRAM203へ展開されてもよい。
ステップS103において、情報処理装置200は、カメラ100が撮像した映像データの各フレームにおける被写体の位置を判定する。CPU201は、RAM203からステップS102で書き込まれた映像データを読み出し、推論部207へ入力させる。推論部207は、入力された映像データに基づいて、被写体の種別や当該被写体の撮像映像上の位置情報等を推論し、推論結果をRAM203へ格納する。推論部207はディープラーニング等の機械学習手法を用いて作成された学習済みモデルを有し、入力データとして映像データを受け、出力データとして人物等の被写体の種別、位置情報、確からしさを示すスコアを出力する。尚、本実施形態において、位置情報は画像内における目標物の重心位置を示す座標として説明する。
ステップS104において、情報処理装置200は、カメラ100の現在の制御情報を取得する。CPU201は、ネットワークI/F204を介してカメラ100に現在の制御情報を問い合わせるコマンドを送信し、そのコマンドへの応答を、RAM203へ格納する。制御情報とは、パン、チルトにおける最大角度、最小角度、現在角度、駆動可能な角速度(最高速度、最低速度)や、ズームにおける最大画角、最小画角、現在画角、といった駆動に関する情報や、画像の解像度、フォーマットといった画像に関する情報がある。本実施形態では、例として挙げた情報を主に用いるが、取得できる制御情報はこれに限らない。
ステップS105において、情報処理装置200は、被写体の自動追尾のために必要なパン・チルトの制御コマンド(第2の制御指示)を生成する。CPU201は、ステップS103にてRAM203へ格納した被写体の位置情報とステップS104において取得したカメラの制御情報から、被写体を追尾するために必要なパン・チルトそれぞれの駆動方向と駆動角速度を算出する。尚、駆動方向は、撮像方向をどの方向に変更するかを示し、駆動角速度は、撮像方向を変更する速度を示す。そして、カメラ100を制御する方法として予め取り決めているプロトコルに則って駆動方向と駆動角速度とを制御コマンドに変換することで制御コマンドを生成してRAM203へ書き出す。制御コマンドの生成方法の詳細については後述する。
ステップS106にて、CPU201はステップS105にてRAM203へ書き出された制御コマンドをネットワークI/F204を介してカメラ100へ送信する。
続けて、図4を用いて、情報処理装置200から第2の制御指示を受信した際のカメラ100の制御フローについて説明する。本制御フローは、ネットワークI/F105に対して第2の制御コマンドが到達したことをCPU101が検知することで開始される。
ステップS201において、カメラ100は第2の制御指示を受信する。CPU101は第2の制御指示の受信手段として機能するネットワークI/F105を介して受信した第2の制御コマンドを読み出し、RAM103へ書きだす。
ステップS202において、CPU101は、ステップS201にてRAM103へ書き出された第2の制御指示から、パン方向、チルト方向のそれぞれの駆動方向及び駆動速度(駆動角速度)の値を読み出す。パン方向の駆動方向の値とは、右又は左を示す値であり、チルト方向の駆動方向の値とは上又は下を示す値である。駆動速度が+、-の方向を持つようにし、駆動速度を示す値が駆動方向の情報を含むとしてもよい。
ステップS203において、CPU101はステップS202にて読み出した制御値を元に、光学系と画像センサ107を有する撮像手段を所望の方向へ所望の速度でパン・チルトするための駆動パラメータを導出する。駆動パラメータとは、駆動部109に含まれるパン方向/チルト方向のそれぞれのモータ(不図示)を制御するためのパラメータである。例えば、受信した第2の制御指示に含まれる駆動速度を、予めRАM103に保持しておいた変換テーブルを参照して駆動パラメータに変換することで取得しても良い。
ステップS204にて、CPU101は導出した駆動パラメータに基づいて、駆動I/F108を介して駆動部109を制御する。駆動部109は該パラメータに基づいて回動することで、カメラ100の撮像方向の変更、即ちパン・チルト動作が成される。
次に、コントローラ300によるユーザの操作に基づいてカメラ100を制御する手動制御動作について、図5を用いて説明する。手動制御動作の場合、カメラ100はコントローラ300から送信される第1の制御指示に基づいて制御されるが、カメラ100の動作は図4と同様の制御であるため、ここでは説明を省略する。上述のステップS201~S204の説明における、第2の制御指示を第1の制御指示に置き換えることで、手動制御動作におけるカメラ100の制御フローとすることができる。
図5に示したコントローラ300による手動制御動作のフローについて説明をする。本制御フローは、ユーザ入力I/F306に対してユーザによる操作がなされたことをCPU301が検知することで開始される。尚、手動制御では、パン・チルトがユーザの操作応じて行われるため、被写体の動きとユーザ操作が一致しない場合、被写体の追尾は行われない。また、本実施形態では、ユーザの操作はジョイスティックにより行われるものとして説明をするが、その他の操作部材を用いてもよい。
ステップS301において、コントローラ300のCPU301は、ユーザによるジョイスティック操作をユーザ入力I/F306を介して検出する。
ステップS302において、CPU301はジョイスティックの操作方向及び操作量をユーザ入力I/F306から取得する。ジョイスティックの具体例としては、パン方向/チルト方向のそれぞれに備え付けられた可変抵抗器から出力される電圧を用いるアナログ出力仕様が挙げられる。CPU301は、ジョイスティックから入力される電圧をA/D変換部(不図示)を介して得られるデジタル値を読み出すことでパン方向/チルト方向それぞれの角速度を把握することが出来る。なお、ここでA/D変換部では、例えば0~1023など所定の範囲の値が操作量に応じてパン方向/チルト方向のそれぞれ成分として角速度に相当する値を読み出すことができる。
ステップS303において、CPU301はジョイスティックの操作方向及び操作量をパン方向及びチルト方向の駆動方向と駆動角速度に変換することで制御コマンドを生成する。CPU301は、ジョイスティックのX軸方向(左右方向)における操作方向及び操作方向をパン動作の駆動方向及び駆動速度の制御コマンドへ、Y軸方向(上下方向)における操作方向及び操作方向をチルト動作の駆動方向及び駆動速度の制御コマンドへ変換する。この変換は、CPU301が、カメラ100を制御する方法として予め取り決めているプロトコルに則って行い、変換された制御コマンドをRAM303へ書き出す。
ステップS304において、CPU301は、S303にてRAM303へ書き出した制御コマンドを読み出し、第1の制御指示として、ネットワークI/F304を介してカメラ100へ送信する。
以上、コントローラ300及びカメラ100の制御フローにより、ユーザ操作に応じたカメラ100の手動制御動作を行うことが可能となる。
<アシスト動作の説明>
上述の、自動追尾動作と手動制御動作では、情報処理装置200、コントローラ300のそれぞれが、単独でカメラ100の撮像処理(パン動作・チルト動作)を制御する方法について説明した。本実施形態は、カメラ100とコントローラ300との通信遅延量が大きい場合は、手動制御動作をアシストするアシスト動作を行うことにより、通信遅延量が大きい場合に生じる操作性の低下を軽減する。尚、アシスト動作が有効化されたアシストモードで手動制御動作を行うか否か(アシストモードON/OFF)はユーザが選択手段で設定でき、アシスト動作がONに設定されているときにのみ、下記で説明するアシスト動作を行うような形態としてもよい。この形態の場合、アシストモードがOFFにされている場合は、上述の情報処理装置200とコントローラ300のいずれかが単独でカメラ100のパン・チルト動作を制御するものとする。
通信遅延に伴う操作性の低下について図6を用いて説明する。
図の左側、画像601~画像605はカメラ100の撮影した画像を示しており、図の右側、画像606~画像610はコントローラ300に表示されている画像を示している。また、各々の画像は時刻T~Tにおいて撮影又は表示されていることを示す。ここで、カメラ100とコントローラ300はインターネット600を介して接続されており、大きい通信遅延が発生する状況下にあるものとする。そのため、時刻Tにてカメラ100が撮影した画像601が、時刻Tにコントローラに到達し、画像607となって表示されていることを示している。同様に画像602が画像608、画像603が画像609、画像604が画像610に対応している。通信611~614はカメラ100からコントローラ300への撮影画像の送信を示し、通信615~617はコントローラ300からカメラ100への第1の制御指示の送信を示す。例えば第1の制御指示615は、時刻Tにてコントローラ300から送信されるが、カメラ100にて受信されるのは時刻Tであり、画像602に対して制御が適用されることを示す。ユーザはコントローラ300の操作部材を操作することで、カメラ100の撮影範囲中央(以下、画像中央と呼ぶ)に被写体600を収めるように制御しているものとする。
被写体600に着目して説明を続ける。時刻Tにおいて画像601に示すように被写体600が紙面左方向に移動しており、時刻Tでは画像602に示すように停止していることをカメラ100では確認できる。しかし、時刻Tの時点ではユーザは被写体600が紙面左方向に移動する画像606を見ているため、撮像方向を左へ向ける操作を行っており、その操作は通信615として時刻Tの画像602への操作となってしまう。その結果、時刻Tでは、実際には、画像602に示すようにカメラ100は被写体100を画像中央に捉えているにもかかわらず、左方向へパンニングしてしまうため、時刻Tでは画像603に示すように被写体600が右にずれた位置に移動してしまう。さらに、時刻Tにおいてユーザが見ている画像は画像601が通信611の通信を経て遅れて到達した画像607である。よって、画像607を見たユーザはまだ被写体が左に移動しているものとみてコントローラ300を操作してカメラ100を更に左方向に向けようとする。その通信616は画像603への制御となり、被写体600はTから静止しているにもかかわらず、時刻Tでは画像604に示すように被写体は画面上でさらに右に移動してしまう。ユーザが時刻Tにてようやく被写体が静止したことを確認できるが、ユーザの反応速度によっては通信617には多少の制御が残ってしまう。そのため、全ての制御が終わった時刻Tにおいては、画像610に示したように画面中央から大きくずれてしまった位置に被写体600が移動してしまう。このように、カメラ100とコントローラ300との間の通信遅延量が大きいと、ユーザの操作による手動制御動作は操作が難しいものとなる。
本実施形態のアシスト動作では、コントローラ300による制御と、情報処理装置200による制御を組み合わせることで、追尾動作の操作性の低下を軽減する。
基本動作において、情報処理装置200、コントローラ300のそれぞれが行うカメラ100への制御はパン動作とチルト動作の速度と方向として説明してきた。本実施形態のアシスト動作では、コントローラ300とカメラ100の通信遅延量が大きい場合は、コントローラ300からの第1の制御指示と情報処置装置200からの第2の制御指示との両方に基づいてカメラ100のパン・チルト動作を行う。具体的には、情報処理装置200によってパン動作とチルト動作の速度を、コントローラ300によってパン動作とチルト動作の方向を制御する。即ち、情報処理装置200のフローにおけるステップS105で生成する制御コマンドを、速度のみを指示する制御コマンドとし、コントローラ300のフローにおけるステップS303で生成する制御コマンドを、方向のみを指示する制御コマンドとする。カメラ100には、方向に関してユーザの制御が遅延して到達することになるが、速度に関しては制御を送信してからカメラ100へ到達するまでの遅延の少ない情報処理装置200が担うことで、被写体を画角中央に留めるように総合的に制御がなされる。
上述の、情報処理装置200のステップS105における制御コマンドの生成ステップについて、図7および図8を用いて詳しく説明する。
図7(a)、(b)に示した制御フローは、ステップS105の処理を詳細に記載したものである。
ステップS701において、CPU201は、ROM202に格納されている制御コマンドの速度を決定するためのパラメータである境界位置を読み出す。境界位置とは、パンの最高速度と最低速度に到達する位置に関する情報であり、図8を用いて説明する。図8(a)は、ステップS102にて受信した映像と、ステップS103にて格納された推論結果から、パン方向の角速度を決定する際の計算を表現した図である。縦軸がパン角速度、横軸が水平方向における画像中央から被写体位置までの距離(x座標の大きさ)を示している。
まず、ステップS104にてカメラ100から取得したパン動作の最高速度801、最低速度802、ステップS102にて受信した撮影画像における画像幅を、水平方向に画像中央が0の座標系とみなした際の左端803、右端804が定まる。座標は解像度に依存しないよう相対値にする。例えば左端803が-1、右端804が+1となる。画像中央に被写体を捉えるために、水平方向における被写体位置が画像中央に近いほどパン駆動の速度を遅くし、被写体位置が外側に行くほど(つまり、画像中央から遠ざかるほど)パン速度を速くさせることが好ましい。そこで、画像中央0を起点としてパンの最高速度に到達する距離805を最高速度の境界位置、パンの最低速度を維持する距離806を最低速度の境界位置として定義する。最高速度から最低速度の間の変化の仕方は、特に問わないが、ここでは、画像中央からの距離に応じて線形変化するものとして説明する。なお、図8(b)は垂直方向、すなわちチルトに関して同様の処理を行う場合を示している。縦軸が画像中央から被写体位置までの距離(y座標の大きさ)、横軸がチルト角速度であり、最高速度811、最低速度812がカメラから取得したチルト駆動可能な最高速度と最低速度である点以外は同様の処理となるため説明は省略する。この場合、チルト動作については境界位置が距離815(最高速度)と距離812(最低速度)となる。
ステップS702において、情報処置装置200は、撮影画像中の被写体の位置とステップS701で取得した境界位置とに基づいて、パン・チルト動作の駆動方向及び駆動速度を計算する。CPU201は、ステップS103にてRAM203に格納された推論結果から、画像における被写体の位置を読み出す。前述の通り、被写体の位置としては被写体の重心位置を示す座標が取得される。続いてCPU201は、取得した座標を画像幅、高さによって正規化し、画像中央から被写体位置までの距離を計算する。例えば、水平方向における距離が図8(а)における距離807であったとすると、パン動作の角速度として速度808を指定すればよい。同様にチルト動作の角速度も決定する。次に、CPU201は、方向に関する制御コマンドを決定する。方向は、画像中央を起点としてパンであれば左右、チルトであれば上下、被写体位置が画像中央に近づく方向ために必要なパン・チルト動作の駆動方向を決定し、制御コマンドに変換してRAM203に格納する。
ステップS703において、CPU201は、通信遅延を加味してアシスト処理を行う。アシスト処理では、図7(b)に示したフローを行う。図7(b)を用いてアシスト処理の詳細について説明をする。
ステップS704において、CPU201は、ネットワークI/F204を介してカメラ100と情報処理装置200との間の通信遅延量を測定する。測定方法は、特に問わないが、例えば、複数の通信毎において制御要求の送信から応答までの時間を測定しておいて平均する、特定のコマンドを含んだ制御要求に対する応答を測定する、等の方法を用いることができる。測定された通信遅延量は、カメラ100における接続情報として、カメラ100に送信し、カメラ100のCPU101がカメラのRAM103へ格納しておくものとする。また、情報処理装置200以外の装置がカメラに対して制御を行っている場合も同様に、当該装置とカメラ100との通信遅延量をカメラ100が保持しているため、CPU201はその情報を要求する。本実施形態においては、コントローラ300がカメラに対して撮像制御を行っているため、コントローラ300とカメラ100との間の通信遅延量もカメラ100のRAM103に格納されているものとする。よって、情報処理装置200のCPU201はネットワークI/F204を介してカメラ100のCPU101からコントローラ300とカメラ100との間の通信遅延量を取得することが出来る。CPU201は、情報処理装置200とカメラ100の間の通信時間を第1の通信時間遅延量LPC、コントローラ300とカメラ100との間の通信時間を第2の通信遅延量Lctrlとして取得できたものとする。
ステップS705において、CPU201は、システム上の通信遅延を考慮する必要がある程度に通信遅延が生じているか否かを判定する。まずCPU201は、ROM202に格納されている遅延判定閾値Lを読み出す。Lは固定値であっても、RAM203に格納しておいて前述の測定に応じて動的に切り替えてもよい。第1の通信遅延量LPCと第2の通信遅延量Lctrlの差分が遅延判定閾値Lより大きい場合、システム上に通信遅延が発生しているとしてステップS706へ遷移する。差分が遅延判定閾値Lより小さい場合、システム上の通信遅延を考慮する必要がないとして本処理を終了し、図7(a)の制御フローへ戻る。一方、コントローラ300がカメラ100の遠隔地に位置する場合や、一時的な通信負荷が生じている場合など、インターネット600を介した接続により通信遅延が生じており、差分が遅延判定閾値Lよりも大きい場合はステップS706へ遷移する。
ステップS706において、CPU201は、ステップS703にて取得された第1の通信遅延量と第2の通信遅延量とを比較する。第1の通信遅延量LPC<第2の通信遅延量Lctrlであった場合、情報処理装置200はコントローラ300よりも小さい通信遅延であると判断し、ステップS707へ遷移する。それ以外はステップS708へ遷移する。本実施形態においては、情報処理装置200は同じLAN400内でカメラ100と接続されているのに対し、コントローラ300はインターネット600を介してカメラ100と接続されている。よって、基本的には、第1の通信遅延量LPC<第2の通信遅延量Lctrlであり、ステップS707へ遷移するような動作となる。そのため、CPU201が行うアシスト処理としては、ステップS706を省略し、ステップS705で通信遅延を考慮する必要があると判定されたらステップS707へ遷移するようなフローとしてもよい。
ステップS707において、CPU201は、ステップS702にて計算し、RAM203に格納されたパン・チルト動作の速度と方向とを示す制御コマンドから、方向を示す情報を取り除く。これにより、制御コマンドは、パン・チルト動作の速度に関する情報のみを含むように改変される。改変された制御コマンドは、再びRAM203へ格納する。尚、本実施形態ではステップS702で計算し、RAM203に格納した制御コマンドがパン・チルト動作の速度と方向のみを示す制御コマンドであるため、本ステップでは速度のみを示す制御コマンドとした。しかしながら、制御コマンドが他の情報も含む場合は改変後の制御コマンドもその情報を含んでいてもよい。
一方、ステップS708において、CPU201は、ステップS702にて計算し、RAM203に格納されたパン・チルト動作の速度と方向とを示す制御コマンドから、速度を示す情報を取り除く。これにより、制御コマンドは、パン・チルト動作の方向に関する情報のみを含むように改変される。改変された制御コマンドは、再びRAM203へ格納する。
以上により、情報処理装置200は、カメラ100との通信遅延量がコントローラ300とカメラ100との通信遅延量よりも小さい場合はパン・チルト動作の駆動速度を第2の制御コマンドとしてカメラ100へ送信する。一方、カメラ100との通信遅延量がコントローラ300とカメラ100との通信遅延量よりも大きい場合はパン・チルト動作の駆動方向を第2の制御コマンドとしてカメラ100へ送信する。尚、第1の通信遅延量と第2の通信遅延量との差分が遅延判定閾値以下である場合は、駆動速度の情報と駆動方向の情報の両方を含む制御コマンドを第2の制御コマンドとしてカメラ100へ送信する。尚、アシストモード中においては、第1の通信遅延量と第2の通信遅延量との差分が遅延判定閾値以下である場合は、第2の制御コマンドを送らない、という形態としてもよい。
続いて、コントローラ300のステップS303における制御コマンドの生成ステップについて、図7(c)、(b)を用いて詳しく説明する。図7(c)のステップS709において、CPU301はジョイスティックの操作方向及び操作量に基づいてパン・チルト動作の駆動方向及び駆動速度(角速度)を計算する。そして、ステップS710へ進み、図7(b)に示しアシスト処理のフローを行う。ステップS704からステップS708の処理については、情報処理装置200で行われるものと同じであるため詳細な説明は省略する。上述のように、情報処理装置200は同じLAN400内でカメラ100と接続されているのに対し、コントローラ300はインターネット600を介してカメラ100と接続されている。そのため、基本的には、第1の通信遅延量LPC<第2の通信遅延量Lctrlであり、ステップS706からステップS708へ遷移するような挙動となる。そこでCPU301が行うアシスト処理としては、ステップS706を省略し、ステップS705で通信遅延を考慮する必要があると判定されたらステップS708へ遷移するようなフローとしてもよい。
以上により、コントローラ300は、カメラ100との通信遅延量が情報処理装置200とカメラ100との通信遅延量よりも小さい場合はパン・チルト動作の駆動速度を第1の制御コマンドとしてカメラ100へ送信する。一方、カメラ100との通信遅延量が情報処理装置200とカメラ100との通信遅延量よりも大きい場合はパン・チルト動作の駆動方向を第1の制御コマンドとしてカメラ100へ送信する。
尚、第1の通信遅延量LPCと第2の通信遅延量Lctrlの差分が遅延判定閾値L以下の場合、第1の制御指示と第2の制御指示の両方がパン・チルと動作の駆動速度と駆動方向の両方の情報を含むことになる。この場合、手動制御動作モードが設定されている場合であれば、アシストモードが設定されている場合であっても、カメラ100は第1の制御指示を優先してパン・チルト動作を行う。また、動画の記録開始・停止など、パン・チルト動作以外の撮像処理の制御もコントローラ300からの制御に従って行うものとする。
上述のアシスト動作を適用した際に撮像される画像について図9を用いて説明する。図6における画像601~通信614と、図9における画像901~通信914はそれぞれ対応する。通信915~917に関しては、図6に示した通知615~617と異なり、第1の制御指示には速度の情報は含まれず、駆動方向の情報しか含まれていない。すなわち、ユーザがジョイスティック等を用いて速度を大きく制御しようとしていても、その情報はカメラ100へ送信されていない。また、情報処理装置200からカメラ100への第2の制御指示の送信を通信918~通信922に示す。第2の制御指示には、パン・チルト動作の駆動速度の情報が含まれており、情報処理装置200は常にカメラ100から受信した画像と推論した被写体の位置に応じた速度制御を行っている。
図6で説明した場合と同様に、画像902に示すように時刻Tにおいて被写体が停止したとする。図6においては、時刻Tにて通信615が送信されたため、時刻Tでは被写体が右に動いてしまった。しかし、図9においては通信915(第1の制御指示)には駆動方向の情報しか含まれておらず、駆動速度に関しては通信919(第2の制御指示)によって制御されているため、時刻Tにおいても大きくずれることはく画像903に示すようになる。
以上のように、手動制御動作を情報処理装置200がアシストすることにより、コントローラ300とカメラ100との間の通信遅延が大きい場合においても、手動操作によって被写体の動きに応じたカメラ100の制御が可能という効果が得られる。
なお、速度の決定は、画角中央と被写体の位置に応じて決定されていたが、各時刻における速度を保持しておき、被写体が急停止や急発進をした際には位置に応じた速度に補正をかけてもよい。すなわち、急停止したことを検知した場合は速度を最低速度ではなく動作の停止に切り替え、急発進した際は瞬時に最高速度とするようにしてもよい。
また、第1及び第2の通信遅延量の測定は、情報処理装置200とカメラ100との間、コントローラ300とカメラ100との間でそれぞれ行い、第1及び第2の通信遅延量はカメラ100へ集約させた形態について説明をした。しかしながら、通信遅延量の取得方法はこれに限らない。例えば、情報処理装置200はコントローラ300と測定した通信遅延量を相互に送信してもよい。第1の通信遅延量と第2の通信遅延量の差分は、基本的にはコントローラ300がインターネットによりカメラ100と接続されることにより生じるインターネット回線の遅延量である。よって、インターネットを介して接続されている情報処理装置200とコントローラ300との間での通信遅延量を測定することで、第1の通信遅延量と第2の通信遅延量の差分に相当する遅延量を取得してもよい。
また、追尾モードとしてアシスト動作がOFFの手動制御動作モードが選択されている場合、情報処理装置200はカメラ100のパン・チルト動作に関与しないため、図3に示すフローの処理を停止してもよい。この場合、図7に示したフローも停止される。
また、アシストモードがONになっている場合であっても、第1の通信遅延量LPCと第2の通信遅延量Lctrlの差分が遅延判定閾値L以下の場合、情報処理装置200はカメラ100のパン・チルト動作に関与しない。そのため、ステップS705において第1の通信遅延量LPCと第2の通信遅延量Lctrlの差分が遅延判定閾値L以下の場合、情報処理装置200は第2の制御コマンドを送信しない、という構成をとることもできる。
また、追尾動作は、被写体を画像中央に留めるように行われるものとして説明をしたが、これに限定されない。ユーザが被写体を留めたい位置を指定できたり、情報処置装置200が被写体の種別や背景によって、自動で中央以外の位置を被写体を留める位置として設定してもよい。
また、本実施形態では、第1、第2の通信遅延量を測定し、差分を閾値と比較することで通信遅延を考慮すべき状況かどうかを判定した。しかしながら、カメラ100とコントローラ300との距離がかなり離れている(海外との通信など)、通信量が大きい等、考慮する必要がある程度の通信遅延の発生が想定されるシステム構成の場合は、この処理を省略してもよい。例えば、情報処理装置200が行うアシスト処理(S703)は、ステップS707だけとし、インターネット600を介してカメラ100に接続されているコントローラ300が行うアシスト処理(S710)はステップS708だけとしてもよい。例えば、ユーザが、システム構成としてコントローラ300とカメラ100との間にある程度の通信遅延が生じる場合や、生じそうなシーンであると判断すると、アシスト動作を有効化する。情報処置装置200は、これを受けて通信時間を測定することなくステップS707を行い、コントローラ300はこれを受けて通信時間を測定することなくステップS708を行うような構成としてもよい。アシスト動作を有効化するための選択手段は、ユーザが操作することができればシステム上のどこにあってもよい。ここで、アシスト動作を有効化する操作を行うユーザは、コントローラ300のジョイスティックなどを操作してパン・チルト動作の操作を行うユーザと別のユーザであってもよい。
<第2の実施形態>
実施形態1では、情報処理装置200は、画像中央と被写体の位置とに応じてパン・チルト動作の駆動速度及び駆動方向を決定した。本実施形態では、被写体の移動量を、画像内での距離ではなく、カメラ100から見た際の角度として計算する点が実施形態1と異なる。情報処理装置200が行う制御コマンド生成方法(S105)が異なるが、システムの構成及び、及び、ステップS105以外の動作フローは基本的に実施形態1と同様であるため、ステップS105について説明をし、その他の部分については説明を省略する。
情報処理装置200が行う制御コマンド生成方法(S105)の詳細を、図10、図11、および図12を用いて詳しく説明する。図10に示すフローは、実施形態1の図7(a)に相当するフローであり、図7(a)の代わりに図10に示すフローを行う。ステップS1001において、情報処理装置200は、被写体位置の推論結果から、被写体の方向を向くために必要な角度(つまり、被写体を画像中央に捉えるための角度)を計算する。CPU201は、S103にてRAM203に格納された推論結果から、画像における被写体の位置を読み出す。上述の通り被写体の重心位置を示す座標が取得される。
ここで、図11、図12を用いて被写体の重心位置を示す座標とカメラ100から取得されたパラメータを用いて、カメラ100から見た被写体の方向の角度を計算する方法について説明する。
図11(а)はカメラ100と実世界における被写体との位置関係を表した図であり、水平方向すなわちパン方向に着目している。カメラ100は位置1100にあり、パンの角度が0となる方向を基準方向1101、実際にカメラが向いている方向を撮像方向1102、カメラ100からみた被写体位置を示す方向を被写体方向1103とする。また、カメラ100が撮像している範囲を領域1104、被写体の重心位置を被写体座標1105とする。基準方向1101と撮像方向1102がなす角をφcam、基準方向1101と被写体方向1103がなす角をφtargetとする。φcamをφtargetとするように制御することで被写体を画像中央に収めることができる。撮影された画像においては、画像の中央xcenterを0とする座標系における、座標1105を示すxtargetへの距離xが取得できている。図11(b)は垂直方向すなわちチルト方向に着目した場合の図である。図11(a)同様に、チルトの角度が0となる方向を基準方向1111、実際にカメラが向いている方向を撮像方向1112、カメラ100からみた被写体位置を示す方向を被写体方向1113とする。また、基準方向1111と撮像方向1112がなす角をθcam、基準方向1101と被写体方向1103がなす角をθtargetとする。パン方向と同様に、θcamをθtargetとするように制御することで被写体を画像中央に収めることができる。撮影された画像においては、画像の中央ycenterを0とする座標系における、座標1105を示すytargetへの距離yが取得できている。また、図11(c)は、ズーム倍率の変化による画角変化を示しており、あるズーム位置1106におけるズーム画角Ψ、別のズーム位置1107におけるズーム画角Ψである。カメラ100から取得できるズーム画角は水平方向とすると、垂直方向のズーム画角は、画像のアスペクト比を用いて計算できる。本実施形態においては、ステップS104にて取得した、カメラ100の制御情報の中に、現在のパン角度であるφcam、チルト角度であるθcam、ズーム画角であるΨcamが含まれており、RAM203に格納されているものとする。
次に、図12を用いてレンズ球面へ座標変換した上での被写体位置を計算する。図12(а)の領域1201は図11(а)における領域1104であり、領域中央S、被写体位置Qとしてカメラ100が撮像している範囲を示している。計算を簡単にするため、カメラ100のレンズの仮想的な球面1202を用いて説明する。レンズの球面1202とは中心を視点Oとし距離を1とした単位球面である。領域1201を、球面1202に接するよう視点Oの方向に並行移動させた領域1203にて計算を行う。移動に伴い領域中央Sは、領域中央Rとなり、領域中央Rは球面1202と接する点となる。また、被写体位置Qは被写体位置Pとなる。視点Оから見て、領域中央Sと領域中央Rは視線方向(撮像方向)1204、被写体位置Qは被写体位置Pは視線方向(撮像方向)1205に示される同一直線上に存在することになる。レンズ球面に移動したことにより、xとyはズーム画角に応じた変化を生じるため、図11(c)で説明したズーム画角Ψcamを基にした正規化を行う。以上により、領域1203上の平面座標系における被写体位置Pの座標(xpr、ypr)が求まる。
次に領域1203上の平面座標系から、図12(b)に示すように視点Оを原点とした座標系での被写体位置Pの座標を求める。X軸とY軸のなす角をφ、Y軸とZ軸のなす角をθとしており、それぞれパン角度とチルト角度に対応しており、図11にて説明したφcamとθcamを適用することが出来る。図12(а)を、領域中央Rと原点を通り、角度φのなす平面で断面として表現したものが図12(c)である。ここで、被写体位置Pの座標(xpo、ypo、zpo)が求まれば、パン角度φtargetとチルト角度θtargetが求まることになる。これまでに取得された、(xpr、ypr)、単位球面の半径1、φcam、θcam、以上の情報を用いて計算される。
po=cosφcam*cosθcam*xpr-sinφcam*ypr
cosφcam*sinθcam*zpr
po=sinφcam*cosθcam*xpr+cosφcam*ypr
sinφcam*sinθcam*zpr
po=sinθcam*xpr+cosθcam*zpr (数式1)
求めた被写体位置Pの座標(xpo、ypo、zpo)を基に、φtargetとθtargetを算出する。
Figure 2024010639000002
以上により、被写体の重心位置を示す座標(xpo、ypo、zpo)を用いて、カメラ100から見た際の被写体の重心位置の方向(被写体方向)の角度を計算することが出来る。CPU201は、算出されたφtargetとθtargetをRAM203に格納する。なお、ここでは、ある撮影画像における被写体方向の角度の算出方法を説明したが、CPU201は、過去の画像に対する被写体方向の角度の算出結果もRAM203に保持しているものとする。本実施形態では一つ前に取得した画像に対する計算結果だけを保持しているものとして説明するが、これに限らない。
ステップS1002において、CPU201は、ステップS1001にて算出したφtargetとθtargetと映像のフレームレートから実際にカメラ100を制御するためのパン・チルト動作の角速度を算出する。また、ステップS1001にて算出された現在の被写体方向のなす角度と、過去の被写体方向のなす角度の差分を取る。ここで、ステップS102において映像入力I/F208よりカメラ100が撮像した画像を受信しているフレームレートに応じて、各画像間での経過時間が求まるため、角度の差分を経過時間で割ることで被写体が移動する角速度を求めることが出来る。被写体が移動する角速度を、カメラのパン・チルト動作の駆動速度(角速度)とする。また、基準方向と被写体方向との関係によって、被写体が存在する方向が定まるので、駆動方向についても同様に求めることが出来る。CPU201は、求められた駆動角速度と駆動方向を、カメラ100を制御するための制御コマンドに変換して、RAM203に格納する。
ステップS1003において、CPU201は、図7(b)にて説明した通信遅延に応じたアシスト処理を経て、制御コマンドをRAM203に格納してステップS106へ戻る。本実施形態においても、第2の通信遅延量が第1の通信遅延量よりも遅延判定閾値L分より大きく遅れている場合は、第2の制御指示を速度のみの情報に変換してRAM203に格納し、ステップS106でカメラ100へ送信する。
以上により、被写体の位置をカメラ100から見た際の角度として計算することが出来る。それにより求めた被写体の角速度に応じて、パンあるいはチルトの角速度を計算することで追尾制御を行なうことができる。
例えば、すでに被写体が十分に画像中央に近い場合、被写体の角速度とパン(あるいはチルト)の角速度と一致させて制御することで画角中央に留めるように制御することが出来る。あるいは、画像中央から離れた位置に被写体がいる場合であっても、同様の制御を行なうことにより、被写体の画像上における位置を維持した状態での追尾制御が可能となる。また、画像中央から離れた位置の被写体を画像中央に移動させたい場合は、被写体方向の角度と、撮像方向の角度の差分が小さく(0または所定の範囲内)なるように、パン(あるいはチルト)の方向と角速度を定める。被写体が画像中央に収まったと判定されたのちに、前述の処理となるように切り替えることで被写体を画像中央に留めることが出来る。アシスト処理を図7(b)のように行うと、本実施形態においても、アシスト付きの手動制御モードにおいて、通信遅延がインターネットによって閾値量以上生じるような場合は情報処理装置200は駆動方向を制御しないことになる。そのため、画像中央から離れた位置の被写体を画像中央に移動させる移動を行う場合のみ、情報処置装置200が方向も制御する構成に改変することが好ましい。これにより、被写体が画像中央に位置しない状態から追尾を開始した場合であっても、被写体を画像中央に留めることができる。
<第3の実施形態>
第1、第2の実施形態においては、アシスト動作が有効化され、第1、第2の通信遅延量の差分が遅延判定閾値より大きい場合、情報処理装置200とコントローラ300のそれぞれが駆動速度と方向のそれぞれを含む制御指示をカメラ100へ送信していた。しかし、コントローラ300からの処理を情報処理装置200が受信し、情報処理装置が第1、第2の制御指示を統合して第3の制御指示を生成した上でカメラ100へ送信する構成をとってもよい。
本実施形態においては、コントローラ300はステップS303の制御指示生成ステップにおいて、図7(b)に示したアシスト処理を行わず、第1の制御指示の送信先をカメラ100ではなく情報処理装置200へ変更することが第1、第2の実施形態と異なる。
本実施形態における、情報処理装置200が行うアシスト処理について詳細に説明する。第1、第2の実施形態において説明した図7(b)の制御フローの代わりに、図13の制御フローを行うことが第1、第2の実施形態と異なるため、図13の制御フローについて説明する。
ステップS1301において、CPU201は、ネットワークI/F204を介して、コントローラ300から受信している第1の制御指示がないか確認する。受信している第1の制御指示があればRAM203へ格納したのち、ステップS1302へ遷移し、受信していなければ本制御フローを終了する。終了する場合は、駆動速度と駆動方向の両方の情報を含む第2の制御指示をカメラ100へ送信することになる。
ステップS1302において、CPU201は、ネットワークI/F204を介してカメラ100およびコントローラ300との通信遅延量を測定する。測定方法は、あらゆる通信毎において制御要求の送信から応答までの時間を測定しておいて平均する、特定のコマンドを含んだ制御要求に対する応答を測定する、いずれかの方法であればよく、これらに限定されない。測定された通信遅延量は、情報処理装置200とカメラ100の間の通信遅延量LPCとし、RAM203に移納される。同様に、情報処理装置200とコントローラ300の間の通信遅延量をLctrlとして取得し、RAM203へ格納する。通信遅延の測定は第1の制御指示を受信する度に実施してもよいが、通信負荷を鑑みて初回のみ、または一定の時間をおいて実施してもよい。
ステップS1303において、CPU201は、ステップS705と同様に、システム上の通信遅延を考慮すべきか判定する。まずCPU201は、ROM202に格納されている遅延判定閾値Lを読み出す。Lは固定値であっても、RAM203に格納しておいて前述の測定に応じて動的に切り替えてもよい。LPCとLctrlの差分がLより大きい場合、システム上に操作上考慮する必要がある程度の通信遅延が発生しているとしてステップS1304へ遷移する。差分がLより小さい場合、システム上の通信遅延を考慮する必要がないとしてステップS1305へ遷移する。
ステップS1304において、CPU201は、コントローラ300から受信してRAM203へ格納されていた第1の制御指示を読み出し、その制御指示に含まれる方向に関するデータ部分を抜き出す。さらに、RAM203へ格納してあった自身の制御コマンド(第2の制御指示)を読み出し、第2の制御指示に含まれる駆動方向の情報を、第1の制御指示から抜き出した方向の情報によって上書きすることで制御コマンドを更新する。更新した制御コマンドは第3の制御指示として再びRAM203へ格納する。本動作により、コントローラ300で生成された駆動方向の情報と情報処理装置200で生成された駆動速度の情報とに基づいて合成された制御コマンドがカメラへ送信される。第1または第2の実施形態では、駆動方向の情報を含む制御コマンド(第1の制御指示)と駆動速度の情報を含む制御コマンド(第2の制御指示)が別の情報としてカメラ100へ送信される。一方本実施形態では、1つの制御コマンド(第3の制御指示)としてカメラ100へ送信される。
ステップS1305において、CPU201は、コントローラ300から受信した制御コマンドをRAM203から読み出し、自身の制御コマンドと置き換える形で更新する。すなわち、後の制御フローにおいて情報処理装置200が送信する制御コマンドは、コントローラ300から受信した制御コマンドに置き換わることになり、コントローラ300がカメラ100を制御することと同義になる。
以上により、通信遅延を考慮しつつ、情報処理装置200の制御コマンドのうち駆動速度を示す情報と、コントローラ300の制御コマンドのうち駆動方向を示す情報とを組み合わせてカメラ100へ送信する制御コマンドとして採用する構成をとることが出来る。
なお、被写体が急停止した場合においては、通信遅延によってユーザが被写体の動作を認識できるまでの時間に応じて、ステップS1304における処理を変更することで、より追尾の効果を高めることが出来る。図9における時刻Tに示した画像902へのユーザ操作は、ユーザが画像908を見てから操作し、時刻Tにて受信された通信917である。つまり、時刻TからTまでの時間が通信遅延による影響とみなすことが出来る。そこで、時刻TからTまでに相当する時間を操作猶予期間としてRAM203に記録しておく。ステップS702においてCPU201が速度を0、すなわち被写体の停止とみなした時刻を起点として計時を開始し、ステップS1304において、CPU201が、操作猶予期間経過前において受信した制御コマンド(第1の制御指示)を無視するようにする。これにより、情報処理装置200の制御が優先され、より被写体の動きに応じた追尾を行うことが出来る。被写体の停止によらず、画像から計算した第2の制御指示と、ユーザによる操作に応じた第1の制御指示が食い違った場合は、操作猶予期間に応じて計算による第1の制御指示を優先するようにしてもよい。
また、本実施形態では、情報処置装置200が、生成した第2の制御指示と受信した第1の制御指示とを合成して第3の制御指示を生成し、カメラ100へ送信する構成としたが、第3の制御指示の生成は、その他のLAN400内の装置が行ってもよい。情報処理装置200が第2の制御指示を、コントローラ300が第1の制御指示をそれぞれカメラ100へ送信する。第1の制御指示と第2の制御指示とを受信したカメラ100は、図7(b)に示したアシスト処理を行う。つまり、第1の通信時間と前記第2の通信時間の差分が閾値よりも大きい場合は、第2の制御指示が含む駆動速度の情報と、第1の制御指示が含む駆動方向の情報とを合成して第3の制御指示を生成し、これに基づいてパン・チルト動作を制御する。
<第4の実施形態>
第1~第3の実施形態においては、情報処理装置200が画像から推論を行うことで被写体位置を特定し、速度に関する制御を行っていた。本実施形態においては、同様の機能をカメラ100が持つことで情報処理装置200がなくとも同様の処理を行うことができるシステムについて説明をする。
図14は、本実施形態に係る処理を実施するシステムの構成の一例を示す図である。図15は、システムを構成するカメラ100とコントローラ300のハードウェア構成図である。カメラ100が推論部111を備える点が図2と異なるが、その他の点は図2と同様であるため、詳細な説明は省略する。
本実施形態におけるコントローラ300は第3の実施形態同様の処理を行うが、第1の制御指示の送信先がカメラ100である点が第3の実施形態と異なる。言い換えると、第1、第2の実施形態と、ステップS303の制御指示生成ステップにおいて、図7(b)に示したアシスト処理を行わない点が異なる。
本実施形態における、カメラ100の追尾動作時の処理について、図16に示した制御フローを用いて説明する。本制御フローはカメラ100のCPU101が、ネットワークI/F105を介して自動追尾動作あるいは、後述するアシスト動作付きの手動制御動作の実行を指示する命令を受信することで開始される。
ステップS1601において、CPU101は、本処理を継続するか否かを判断する。CPU101は、ネットワークI/F105を介して処理の終了を示す命令を受信しているか確認する。続行であればステップS1602へ遷移し、受信していなければ本制御フローを終了する。
ステップS1602において、CPU101は、画像処理部106を介して画像センサ107から取得された画像データをRAM103から読み出すことで映像データを取得する。
ステップS1603において、カメラ100は、撮像した映像データの各フレームにおける被写体の位置を判定する。本ステップはCPU101がステップS103の処理を行うことで実行される。CPU101は、読み出された画像データを、推論部111へ入力し、推論部111が推論した被写体の種別や当該被写体の撮像映像上の位置情報をRAM103へ格納する。推論部111はディープラーニング等の機械学習手法を用いて作成された学習済みモデルを有し、入力データとして画像を受け、出力データとして人物等の被写体の種別、位置情報、確からしさを示すスコアを出力する。先の実施形態と同様に、位置情報は画像内における目標物の重心位置を示す座標として説明する。
ステップS1604において、CPU101は、駆動I/F108を介して、駆動部109の動作状態を問い合わせる。ここでの動作状態とは現在の、パン角度、チルト角度、ズーム画角などである。また、画像の解像度等のシステム設定をROM102やRAM103から読み出す。
ステップS1605にて、CPU101は、第1の実施形態において説明した図7(а)の制御フロー、または第2の実施形態において説明した図10の制御フローによって、被写体を画角中央に収めるための方向と角速度の制御コマンドを計算する。制御コマンドの計算に当たってはステップS1602にて読み出された画像と、ステップS1603にて算出された被写体位置を示す座標を用いる。アシスト処理に関しては、基本的に第3の実施形態において説明した図13の制御フローに従うが、第3の実施形態の各ステップでCPU201が行っていた処理は、カメラ100のCPU101が行う。本実施形態では、ステップS1301において、CPU101は、ネットワークI/F105を介して、コントローラから受信している第1の制御指示がないか確認する。受信しているコマンドがあればRAM203へ格納したのち、ステップS1302へ遷移し、受信していなければ本制御フローを終了する。終了する場合の動作は、カメラ100が自身で算出した方向と角速度の制御コマンドに従うことになり、外部からの制御コマンドによらず被写体を追尾する動作が可能となる。
ステップS1302において、CPU101は、ネットワークI/F105を介してコントローラ300との通信遅延量を測定する。測定方法は、あらゆる通信毎において制御要求の送信から応答までの時間を測定しておいて平均する、特定のコマンドを含んだ制御要求に対する応答を測定する、いずれかの方法であればよく、これらに限定されない。測定された通信遅延量は、カメラ100とコントローラの間の通信遅延量Lctrlとし、RAM203に移納される。通信遅延量の測定はコマンド受信する度に実施してもよいが、通信負荷を鑑みて初回のみ、または一定の時間をおいて実施してもよい。
ステップS1303において、CPU101は、システム上の通信遅延を考慮すべきか判定する。まずCPU101は、ROM102に格納されている遅延判定閾値Lを読み出す。Lは固定値であっても、RAM103に格納しておいて前述の測定に応じて動的に切り替えてもよい。LctrlがLより大きい場合、システム上に通信遅延が発生しているとしてステップS1304へ遷移する。LctrlがLより小さい場合、システム上の通信遅延を考慮する必要がないとしてステップS1305へ遷移する。
ステップS1304において、CPU101は、コントローラ300から受信してRAM103へ格納されていた第1の制御指示を読み出し、その制御指示に含まれる方向に関するデータ部分を抜き出す。さらに、RAM103へ格納してあった自身の制御コマンドを読み出し、自身で生成した制御指示に含まれる駆動方向の情報を、第1の制御指示から抜き出した方向の情報によって上書きすることで制御コマンドを更新する。更新した制御コマンドは再びRAM103へ格納する。本動作により、コントローラ300で生成された駆動方向の情報とカメラ100で生成された駆動速度の情報とを用いた制御コマンドが作成される。
ステップS1305において、CPU101は、コントローラ300から受信した制御コマンドをRAM103から読み出し、自身の制御コマンドと置き換える形で更新する。すなわち、後の制御フローにおいてカメラ100はコントローラ300から受信した制御コマンドに置き換わることになり、コントローラ300がカメラ100を制御することと同義になる。
よって、ステップS1605にてCPU101は、ステップS1603にて算出された被写体位置を示す座標から算出された被写体を画像中央に収めるための駆動方向と角速度の制御コマンドをRAM103に格納する。あるいは、当該制御コマンドをコントローラ300から受信した方向の情報で上書きした制御コマンドをRAM103に格納することとなる。
ステップS1606において、CPU101は、ステップS1605にて計算された制御コマンドの値を元に、所望の方向へ所望の速度でパン・チルトするための駆動パラメータを導出する。具体的には、駆動部109に含まれるX軸方向/Y軸方向のそれぞれのモータ(不図示)を制御するためのパラメータであり、受信した制御コマンドに含まれる操作量を元に予めRАM103に保持する変換テーブルを参照して駆動パラメータに変換しても良い。
ステップS1607の動作は、手動制御動作にて説明したステップS204と同様の動作である。CPU101は導出した駆動パラメータに基づいて、駆動I/F108を介して駆動部109を制御し、駆動部109は該パラメータに基づいて回動することでカメラ100は撮像方向の変更、即ちパン・チルト動作が成される。以上により、通信遅延を考慮しつつ、カメラ100の制御コマンドのうちの駆動速度とコントローラ300の制御コマンドの駆動方向とを用いてカメラ100のパン・チルト動作を制御する構成をとることが出来る。
<表示部305への表示制御>
第1~第4の実施形態において、自動追尾動作、手動制御動作、アシスト動作について説明した。ユーザにより動作状態を切り替えるものもあれば、アシスト動作の挙動のように内部で動作状態が切り替わるものがある。ユーザにどの動作状態にあるかを視覚的に提示することで、操作感を向上させることが出来る。具体的には、第1~第4の実施形態において、ユーザが目標位置として例えば画角中央へ被写体を移動させるように制御した場合や、その画角中央を維持する場合には速度が抑制される。その速度の抑制度合いをユーザに提示することで、ユーザは操作量と画角変化を認識することができ、その後のユーザ操作へフィードバックすることが可能となる。そこでここでは第1~第4の実施形態それぞれに適用可能なCPU201によって表示部305に行う表示画像の表示制御について説明する。
具体的に図17(a)を用いて、動作状態を視覚的に提示する例を説明する。画像1701~画像1704はカメラ100から取得された画像であり、パターン1711~パターン1714がCPU201によって画像中に重畳されたパターンである。パターン1711~パターン1714は夫々、色、線種、形状、或いはアニメーションといった表示様態が異なっている。パターン1711は手動制御動作時、パターン1712は自動追尾動作時において、ユーザにより表示の指示を受け付けている場合に画像に重畳するものである。パターン1713およびパターン1714はアシスト動作時に表示するものであり、所定の角速度を閾値としてパターン1713は所定の角速度以下の場合、パターン1714は所定の角速度より大きい場合に画像への重畳を行う。すなわち、パターン1713では被写体の位置が中央寄り「中央の第1の所定範囲内」で制御できているとき、パターン1714ではそれが画角端(画角端を含む第2の所定範囲内)に寄っているときの表示に相当する。また、第2の実施形態で説明したように、被写体の位置が画角中央にあるか否かではなく、被写体の移動速度に合わせて算出した速度が所定の閾値を超えるか否かによって切り替えてもよい。
図18は、図3にて説明した情報処理装置200の制御フローを、本実施形態に合わせて変形したものである。図3では、自動追尾動作あるいは、アシスト動作付きの手動制御動作の実行を指示する命令を受信することで開始されていたが、本実施形態においてはCPU201がユーザによりカメラ操作をする旨を受信することで開始する。その際にCPU201は、手動操作、自動追尾動作、アシスト動作のいずれかであることをRAM203へ格納する。ユーザによる指示はコントローラ300よりネットワークI/F204を介して受信してもよいし、ユーザI/F206を介して直接入力されてもよく、CPU201は任意のタイミングで受信できるものとする。
ステップS1801において、CPU201は、動作状態を確認する。CPU201は、ネットワークI/F204やユーザ入力I/F206を介して手動操作、自動追尾動作、アシスト動作、または本制御フローの終了を指示する命令を受信しているか確認する。終了指示を受信していなければステップS1802へ遷移する。終了指示を受信している場合は本制御を終了する。
ステップS1802、S1803は、ステップS102、S103と同等であるため説明を省略するが、ステップS1803における被写体の位置情報は、重心位置だけではなく、被写体を包含するような矩形を示す情報をRAM203へ格納するものとする。例えば、図17(b)に示すような左上点1721の座標と幅1722と高さ1723を示す情報であるが、重畳するパターンを指定できるものであればこれに限らない。
ステップS1804において、CPU201は、動作状態が手動操作であるか否かを判定する。CPU201は、手動操作であれば被写体位置による速度計算の必要がないためステップS1808に遷移する。手動操作でなければ、CPU201はステップS1805へ遷移する。
ステップS1805~ステップS1807は、ステップS104~ステップS106と同等であるため説明を省略する。
ステップS1808において、CPU201は、ネットワークI/F204やユーザ入力I/F206を介して、図17(a)を用いて説明したアシスト表示を行うか否かを受信しているか判定する。CPU201は、表示を行う場合にステップS1809へ遷移し、表示しない場合はステップS1801へ遷移する。
ステップS1809において、CPU201は、アシスト表示の種別を含めた動作状態を確認する。すなわち、手動制御動作、自動追尾動作に加えて、ステップS1806にて計算された第2の制御指示に含まれる角速度の大きさを判定する。CPU201は、手動操作であればパターン1711を示す情報、自動追尾動作であればパターン1712を示す情報をRAM203に格納する。また、CPU201は、アシスト動作であればROM202またはRAM203に予め格納されている閾値Vを読み出す。CPU201は、RAM203に格納されている第2の制御指示に含まれる角速度を読み出し、閾値V以下であればパターン1713を示す情報、閾値Vより大きければパターン1714を示す情報をRAM203に格納する。いずれかのパターン情報を格納したのち、CPU201は、ステップS1810へ遷移する。
ステップS1810において、CPU201は、ステップS1809にてRAM203に格納されたパターン情報、すなわち動作状態を示す情報と、ステップS1803にてRAM203に格納された被写体の位置情報をネットワークI/F204を介してコントローラ300へ送信する。
続いて図19は、図5にて説明したコントローラ300の制御フローを、本実施形態に合わせて変形したものである。ステップS1901~ステップS1904は、ステップS301~ステップS304と同等であるため説明を省略する。
ステップS1905において、コントローラ300のCPU301は、ネットワークI/F304を介して情報処理装置200から送信された被写体の位置情報と動作状態を受信する。得られた動作状態は、すなわちパターン1711~パターン1714の何れかに相当する情報である。CPU301は、受信された情報を用いて、カメラ100から受信した画像に対して図17(a)に示したようにパターンを重畳する。パターンが重畳された画像は、CPU301がコントローラ300の表示部305を用いることでユーザに対して表示を行う。
以上、説明したように、表示様態の異なるパターン1711~パターン1714のようにアシスト状態を視覚化してユーザに提示することで、ユーザは、自身の操作以外にパンチルト等のアシスト制御が成されている様子を視覚的に把握できるようになる。このことにより、アシスト状態が把握できないことから起こり得る不要な操作を引き起こす可能性を低減でき、困難な状況下でも高品位なカメラワークを安心して行うことができるようになることは本制御特有の効果である。
本実施例では情報処理装置200から被写体の位置情報と動作状態を送信したが、情報処理装置200にてパターンを重畳した画像をコントローラ300へ送信することで、コントローラ300では受信した画像を表示するように変形してもよい。すなわち、ステップS1810にて、CPU201が、RAM203から読み出した情報を用いてパターンを画像に重畳し、ネットワークI/F204を介してコントローラ300へ送信する。ステップS1905にて、CPU301が、受信した画像を表示するようにしてもよい。
以上のように説明した表示制御の効果は、図14で示したシステム構成である第4の実施形態においても得ることが出来る。図20に示した制御フローは、図16にて説明したカメラ100の制御フローを、図18を用いて説明した情報処理装置200の制御フローと同等に合わせこんだ形である。
ステップS2001はステップS1801と同様に、CPU101は、動作状態を確認する。CPU101は、ネットワークI/F105を介して手動操作、自動追尾動作、アシスト動作、または本制御フローの終了を指示する命令を受信しているか確認する。終了指示を受信していなければステップS2002へ遷移する。終了指示を受信している場合は本制御を終了する。
ステップS2002~ステップS2003は、ステップS1602~ステップS1603と同等であるため説明を省略する。ここで、被写体の位置情報は第5の実施形態と同様に、図17(b)に示した被写体を包含するような矩形を示す情報をRAM103へ格納するとする。
ステップS2004はステップS1804と同様に、CPU101は、動作状態が手動操作であるか判定する。CPU101は、手動操作であれば被写体位置による速度計算の必要がないためステップS2009に遷移する。手動操作でなければ、CPU101はステップS2005へ遷移する。
ステップS2005~ステップS2007は、ステップS1605~ステップS1607と同等のため説明を省略する。
ステップS2009はステップS1808と同様に、CPU101は、ネットワークI/F105を介して、図17(a)を用いて説明したアシスト表示を行うか否かを受信しているか判定する。CPU101は、表示を行う場合にステップS2010へ遷移し、表示しない場合はステップS2001へ遷移する。
ステップS2010はステップS1809と同様に、CPU101は、アシスト表示の種別を含めた動作状態を確認する。すなわち、手動制御動作、自動追尾動作に加えて、ステップS2006にて計算された第2の制御指示に含まれる角速度の大きさを判定する。CPU101は、手動操作であればパターン1711を示す情報、自動追尾動作であればパターン1712を示す情報をRAM103に格納する。また、CPU101は、アシスト動作であればROM102またはRAM103に予め格納されている閾値Vを読み出す。CPU101は、RAM103に格納されている第2の制御指示に含まれる角速度を読み出し、閾値V以下であればパターン1713を示す情報、閾値Vより大きければパターン1714を示す情報をRAM203に格納する。いずれかのパターン情報を格納したのち、CPU101は、ステップS2011へ遷移する。
ステップS2011はステップS1810と同様に、CPU101は、ステップS2010にてRAM103に格納されたパターン情報、すなわち動作状態を示す情報と、ステップS2003にてRAM103に格納された被写体の位置情報をネットワークI/F105を介してコントローラ300へ送信する。ここで、CPU101は自身で画像処理部106を用いて画像に対してパターンを重畳した結果をコントローラ300へ送信してもよい。
コントローラ300のCPU301では、図19と同等の処理を実施することで、表示部305を用いてユーザに対してパターンを重畳した画像を提示する。
以上により、図19と同様の効果を得ることが出来る。
なお、上述した表示制御を伴う動作フローにおいては、第2の制御指示に含まれる角速度の大きさによって動作状態を判定していたが、被写体の位置をそのまま動作状態の判定に用いてもよい。すなわち、被写体の位置が、画角中央や被写体を維持したい目標位置から所定の距離以下であればアシスト状態とし、所定の距離より大きければ手動操作状態とし、それぞれの動作状態を示す情報を送信するようにしてもよい。それにより画角中央(あるいは目標位置近傍)ではアシスト制御により速度の調整がなされ、画角の外側(あるいは目標位置より離れた位置)ではユーザによる手動操作が可能となる。所定の距離と動作状態との組みあわせは一例であり、これに限らない。例えば、前述とは異なり、所定の距離以下であれば手動操作状態、所定の距離より大きければアシスト状態としてもよい。画角中央(あるいは目標位置近傍)においてユーザによる微調整とし、画角の外側(あるいは目標位置より離れた位置)ではアシスト動作により速度に補正をかけることが出来る。以上により、所定の距離によって決定された動作状態を被写体位置とともに送信することで、コントローラ300にて受信、表示されるパターンの態様を変化させてユーザへ提示し、同様の効果を得ることが出来る。
<その他の実施形態>
通信遅延によって制御コマンドを更新する処理を説明したが、通信遅延の情報をユーザに提示し、ユーザの指示によって切り替えられるように変更してもよい。例えば、情報処理装置200においてネットワークI/F204やユーザ入力I/F206を介して、通信遅延処理の実行有無をユーザ操作から選択されてもよい。また、第3や第4の実施形態において、制御コマンドが受信されていない場合は、カメラ100や情報処理装置200は撮影画像と推論の結果から方向と角速度を計算して自動追尾動作を実行する構成とした。しかしながら、自動追尾動作についてもユーザ操作によって実行有無が選択されてもよい。
なお、通信遅延量によって、情報処理装置200が生成した第2の制御指示またはコントローラ300が生成した第1の制御指示かを切り替える動作をしていたが、その動作を変形してもよい。例えば、第1の制御指示と第2の制御指示における角速度を、所定の割合で掛け合わせることで第3の制御指示を生成してもよい。また、被写体の位置と、画角中央や被写体を維持したい位置との距離に応じて、第1の制御指示と第2の制御指示を選択してもよい。以上により、所定の距離によって決定された動作状態を被写体位置とともに送信することで、コントローラ300にて受信、表示されるパターンの態様を変化させてユーザへ提示し、同様の効果を得ることが出来る。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
100 カメラ
101 CPU
102 ROM
103 RAM
104 映像出力I/F
105 ネットワークI/F
106 画像処理部
107 画像センサ
108 駆動I/F
109 駆動部
110 内部バス
200 情報処理装置
201 CPU
202 ROM
203 RAM
204 ネットワークI/F
205 映像出力I/F
206 ユーザ入力I/F
207 推論部
208 映像入力I/F
209 内部バス
300 コントローラ
301 CPU
302 ROM
303 RAM
304 ネットワークI/F
305 表示部
306 ユーザ入力I/F
307 内部バス
400 LAN
500 LAN
600 インターネット

Claims (29)

  1. 第1の制御装置と、第2の制御装置と、撮像装置とを備え、
    前記第1の制御装置は、
    ユーザからの操作を受け付ける第1の制御受付手段と、
    前記操作に基づく第1の制御指示を前記撮像装置へ送信する第1の送信手段と、を有し、
    前記第2の制御装置は、
    前記撮像装置から撮影画像を受信する第2の受信手段と、
    前記撮影画像に基づいて第2の制御指示を生成する生成手段と、
    前記第2の制御指示を前記撮像装置へ送信する第2の送信手段と、を有し、
    前記撮像装置は、
    撮像手段と、
    前記第1の制御装置および前記第2の制御装置から前記第1の制御指示と前記第2の制御指示とを受信する第3の受信手段と、
    前記第3の受信手段により受信した制御指示に基づいて前記撮像手段による撮像処理を制御する制御手段と、を有し、
    前記第1の制御装置が前記第1の制御指示を送信してから、前記撮像装置が前記第1の制御指示を受信するまでの時間が、
    前記第2の制御装置が前記第2の制御指示を送信してから、前記撮像装置が前記第2の制御指示を受信するまでの時間よりも長く、
    前記制御手段は、前記第1の制御指示と前記第2の制御指示とに基づいて前記撮像処理を制御することを特徴とする撮像システム。
  2. 前記撮像装置は、前記撮像手段を駆動する駆動手段を備え、
    前記撮像処理は、前記駆動手段による前記撮像手段の駆動により、撮像方向を変更する処理であることを特徴とする請求項1に記載の撮像システム。
  3. 前記第1の制御指示は撮像方向に関する制御指示を含み、前記第2の制御指示は前記撮像方向を変更する速度に関する制御指示を含み、
    前記制御手段は、前記第1の制御指示が含む前記撮像方向の関する制御指示と、前記第2の制御指示が含む前記撮像方向を変更する速度に関する制御指示とを組み合わせて前記撮像処理を制御することを特徴とする請求項2に記載のシステム。
  4. 前記操作をアシストするアシスト動作の有効化を選択する選択手段を有し、
    前記制御手段は、前記アシスト動作の有効化が選択されている場合、前記第1の制御指示と前記第2の制御指示とに基づいて前記撮像処理を制御し、
    前記アシスト動作の有効化が選択されていない場合、前記第1の制御指示または前記第2の制御指示のいずれかに基づいて前記撮像処理を制御することを特徴とする請求項1に記載のシステム。
  5. 第1の送信手段により前記第1の制御指示を送信してから前記第3の受信手段により前記第1の制御指示を受信するまでの通信にかかる第1の通信時間と、前記第2の送信手段により前記第2の制御指示を送信してから前記第3の受信手段により前記第1の制御指示を受信するまでの通信にかかる第2の通信時間とを測定する測定手段を有し、
    前記制御手段は、前記第1の通信時間と前記第2の通信時間との差分が閾値よりも大きい場合、前記第1の制御指示と前記第2の制御指示とに基づいて前記撮像処理を制御することを特徴とする請求項1に記載の撮像システム。
  6. 前記制御手段は、前記第1の通信時間と前記第2の通信時間との差が前記閾値以下である場合、前記第1の制御指示と前記第2の制御指示とのいずれかに基づいて前記撮像処理を制御することを特徴とする請求項5に記載の撮像システム。
  7. 前記制御手段は、前記第1の通信時間と前記第2の通信時間との差が前記閾値以下である場合、前記第1の制御指示に基づいて前記撮像処理を制御することを特徴とする請求項6に記載の撮像システム。
  8. 前記操作をアシストするアシスト動作の有効化を選択する選択手段を有し、
    前記制御手段は、
    前記アシスト動作の有効化が選択され、且つ、前記第1の通信時間と前記第2の通信時間との差分が閾値よりも大きい場合、前記第1の制御指示と前記第2の制御指示とに基づいて前記撮像処理を制御し、
    前記アシスト動作の有効化が選択されていない又は、前記第1の通信時間と前記第2の通信時間との差分が前記閾値以下の場合、前記第1の制御指示と前記第2の制御指示とのいずれかに基づいて前記撮像処理を制御することを特徴とする請求項5に記載の撮像システム。
  9. ユーザの操作に基づく第1の制御指示を受信する受信手段と、
    外部から受信した画像に基づいて第2の制御指示を生成する生成手段と、
    前記第1の制御指示と前記第2の制御指示に基づいて第3の制御指示を生成する合成手段と、
    前記第3の制御指示を外部へ送信する送信手段とを有し、
    前記第1の制御指示が送信されてから、前記受信手段により受信されるまでの第1の通信時間は、前記第3の制御指示を前記送信手段により送信してから前記第3の制御指示が受信されるまでの第2の通信時間よりも長く、前記第1の通信時間と前記第2の通信時間との差分が閾値より長いシステムにおいて用いられることを特徴とする制御装置。
  10. 前記第1の通信時間と前記第2の通信時間とを測定する測定手段を有し、
    前記送信手段は、前記第1の通信時間が前記第2の通信時間よりも長く、且つ、前記第1の通信時間と前記第2の通信時間との差分が閾値より長い場合、前記第3の制御指示を送信し、
    前記第1の通信時間と前記第2の通信時間とのとの差分が閾値以下である場合、前記第1の制御指示を送信することを特徴とする請求項9に記載の制御装置。
  11. 前記操作をアシストするアシスト動作の有効化を選択する選択手段を有し、
    前記送信手段は、
    前記アシスト動作の有効化が選択された場合、前記合成手段によって生成した前記第3の制御指示を外部へ送信し、
    前記アシスト動作の有効化が選択されていない場合、前記第1の制御指示を外部へ送信する
    ことを特徴とする請求項9に記載の制御装置。
  12. 前記操作をアシストするアシスト動作の有効化を選択する選択手段を有し、
    前記送信手段は、
    前記アシスト動作の有効化が選択され、前記第1の通信時間が前記第2の通信時間よりも長く、且つ、前記第1の通信時間と前記第2の通信時間との差分が閾値より長い場合、前記第3の制御指示を送信し、
    前記アシスト動作の有効化が選択されていない又は、前記第1の通信時間と前記第2の通信時間との差分が前記閾値以下の場合、前記第2の制御指示を送信することを特徴とする請求項10に記載の制御装置。
  13. 前記合成手段は、前記第1の制御指示に含まれる駆動方向の情報と前記第2の制御指示に含まれる駆動速度の情報とに基づいて前記第3の制御指示を生成とすることを特徴とする請求項9に記載の制御装置。
  14. ユーザの操作に基づく第1の制御指示を受信する受信手段と、
    撮像した画像に応じて第2の制御指示を生成する生成手段と、
    前記第1の制御指示と前記第2の制御指示とに基づいて第3の制御指示を生成する合成手段と、
    前記第3の制御指示に基づいて撮像処理を制御する制御手段と、を有し、
    前記第1の制御指示が送信されてから、前記受信手段によって受信するまでにかかる第1の通信時間が、閾値より長い場合、前記制御手段は前記第3の制御指示に基づいて前記撮像処理を制御し、
    前記第1の通信時間が閾値以下である場合、前記制御手段は前記第1の制御指示に基づいて前記撮像処理を制御することを特徴とする撮像装置。
  15. 前記第1の通信時間を測定する測定手段を有することを特徴とする請求項14に記載の撮像装置。
  16. 前記制御手段は、
    前記受信手段による第1の制御指示の受信がない場合、前記第2の制御指示に基づいて前記撮像処理を制御することを特徴とする請求項14に記載の撮像装置。
  17. ユーザの操作に基づく第1の制御指示を受信する受信手段と、
    撮像した画像に応じて第2の制御指示を生成する生成手段と、
    前記第1の制御指示と前記第2の制御指示とに基づいて第3の制御指示を生成する合成手段と、
    前記第3の制御指示に基づいて撮像処理を制御する制御手段と、
    前記操作をアシストするためのアシスト動作の有効化を選択する選択手段を有し、
    前記アシスト動作の有効化が選択された場合、前記制御手段は前記第3の制御指示に基づいて前記撮像処理を制御し、
    前記アシスト動作の有効化が選択されていない場合、
    前記制御手段は前記第1の制御指示と前記第2の制御指示のいずれかに基づいて前記撮像処理を制御することを特徴とする撮像装置。
  18. 前記合成手段は、前記第1の制御指示に含まれる駆動方向の情報と前記第2の制御指示に含まれる駆動速度の情報とに基づいて前記第3の制御指示を生成とすることを特徴とする請求項14に記載の撮像装置。
  19. 第1の制御装置と、第2の制御装置と、撮像装置とを備える撮像システムの制御方法であって、
    第1の制御装置を介してユーザからの操作を受け付ける第1の制御受付工程と、
    前記操作に基づく第1の制御指示を前記撮像装置へ送信する第1の送信工程と、
    前記第2の制御装置が、前記撮像装置が撮像した撮影画像に基づいて第2の制御指示を生成する生成工程と、
    前記第2の制御指示を前記撮像装置へ送信する第2の送信工程と、
    前記第1の制御指示と前記第2の制御指示とを受信する受信工程と、
    前記第1の制御指示と前記第2の制御指示とに基づいて前記撮像装置による撮像処理を制御する制御工程と、を有し、
    前記第1の制御装置が前記第1の制御指示を送信してから、前記撮像装置が前記第1の制御指示を受信するまでの時間が、
    前記撮像装置が前記第2の制御指示を送信してから前記撮像装置が前記第2の制御指示を受信するまでの時間よりも長いことを特徴とする撮像システムの制御方法。
  20. 第1の制御装置と、撮像装置とを備える撮像システムの制御方法であって、
    第1の制御装置を介してユーザからの操作を受け付ける第1の制御受付工程と、
    前記操作に基づく第1の制御指示を前記撮像装置へ送信する第1の送信工程と、
    撮像した撮影画像に基づいて第2の制御指示を生成する生成工程と、
    前記第1の制御指示を受信する受信工程と、
    前記第1の制御装置が前記第1の制御指示を送信してから、前記撮像装置が前記第1の制御指示を受信するまでの第1の通信時間が、閾値よりも大きい場合、前記第1の制御指示と前記第2の制御指示とに基づいて撮像処理を制御し、
    前記第1の通信時間が閾値以下である場合、前記第1の制御指示に基づいて前記撮像処理を制御することを特徴とする撮像システムの制御方法。
  21. 前記第2の制御装置は、
    前記撮影画像における被写体の位置情報を検出する検出手段と、
    前記被写体の位置情報に基づいて前記ユーザ操作のアシストに関する動作状態を決定する決定手段と、
    前記被写体の位置情報と前記動作状態を送信する第3の送信手段と、を有し、
    前記第1の制御装置は、
    前記被写体の位置情報と前記動作状態を受信する第4の受信手段と、
    前記撮影画像を表示する表示手段と、を有し、
    前記第2の制御装置は、前記第3の送信手段により前記被写体の位置情報と前記動作状態を前記第1の制御装置に送信し、前記第1の制御装置は、前記撮影画像に対し、前記第4の受信手段により受信した前記被写体の位置を示すパターンを重畳して前記表示部にて表示し、前記パターンを、前記動作状態を示す情報に基づいた態様で表示することを特徴とする請求項1に記載の撮像システム。
  22. 前記画像から被写体の位置情報を検出する検出手段と、
    前記被写体の位置情報に基づいて前記ユーザ操作のアシストに関する動作状態を決定する決定手段と、
    前記被写体の位置情報と前記動作状態を送信する第2の送信手段と、を有し、
    前記第2の送信手段により前記被写体の位置情報と、前記動作状態とを外部に送信することを特徴とする請求項9に記載の制御装置。
  23. 前記画像から被写体の位置情報を検出する検出手段と、
    前記被写体の位置情報に基づいて前記ユーザ操作のアシストに関する動作状態を決定する決定手段と、を有し、
    前記被写体の位置情報と前記動作状態を送信する送信手段と、を有し、
    前記送信手段により前記被写体の位置情報と、前記動作状態とを外部に送信することを特徴とする請求項14または請求項17に記載の撮像装置。
  24. 前記第2の制御装置は、
    前記撮影画像における被写体の位置情報を検出する検出工程と、
    前記被写体の位置情報に基づいて前記ユーザ操作のアシストに関する動作状態を決定する決定工程と、
    前記被写体の位置情報と前記動作状態を送信する第3の送信工程と、を有し、
    前記第1の制御装置は、
    前記被写体の位置情報と前記動作状態を受信する第2の受信工程と、
    前記撮影画像を表示する表示工程と、を有し、
    前記第2の制御装置は、前記第3の送信工程により前記被写体の位置情報と前記動作状態を前記第1の制御装置に送信し、前記第1の制御装置は、前記撮影画像に対し、前記第2の受信工程により受信した前記被写体の位置を示すパターンを重畳して前記表示工程にて表示し、前記パターンを、前記動作状態を示す情報に基づいた態様で表示することを特徴とする請求項19に記載の撮像システムの制御方法。
  25. 前記撮影画像における被写体の位置情報を検出する検出工程と、
    前記被写体の位置情報に基づいて前記ユーザ操作のアシストに関する動作状態を決定する決定工程と、
    前記被写体の位置情報と前記動作状態を受信する第2の送信工程と、を有し、
    前記第2の送信工程により前記被写体の位置情報と、前記動作状態とを外部に送信することを特徴とする請求項20に記載の撮像システムの制御方法。
  26. ユーザ操作に基づいて撮像装置の撮像方向を変更する命令を生成する指示装置と通信可能な制御装置であって、
    前記撮像装置で撮像された画像が入力される入力手段と、
    前記入力手段から入力された画像から被写体の位置情報を検出する検出手段と、
    前記被写体の位置情報に基づいて前記ユーザ操作のアシストに関する動作状態を決定する決定手段と、
    外部装置へ情報を送信する送信手段と、
    を有し、
    前記送信手段より前記被写体の位置情報と、前記動作状態とを前記指示装置に送信することを特徴とする制御装置。
  27. 撮像装置で撮像された画像が入力される入力手段と、
    前記画像に含まれる被写体の位置情報と、
    前記被写体の位置情報から算出された外部装置の動作状態と、
    前記被写体の位置情報と前記動作状態を受信する受信手段と、
    前記画像を表示する表示手段と、
    を有し、
    前記画像に対し、前記受信手段より受信した前記被写体の位置を示すパターンを重畳して前記表示手段にて表示し、前記パターンを、前記動作状態を示す情報に基づいた態様で表示することを特徴とする表示装置。
  28. 撮像装置で撮像された画像が入力される入力工程と、
    前記画像に含まれる被写体の位置情報と、
    前記被写体の位置情報から算出された外部装置の動作状態と、
    前記被写体の位置情報と前記動作状態を受信する受信工程と、
    前記画像を表示する表示工程と、
    を有し、
    前記画像に対し、前記受信工程より受信した前記被写体の位置を示すパターンを重畳して前記表示工程にて表示し、前記パターンを、前記動作状態を示す情報に基づいた態様で表示することを特徴とする表示方法。
  29. 制御装置と、表示装置と、撮像装置とを備えるシステムであって、
    前記制御装置は、
    前記撮像装置で撮影された画像が入力される入力手段と、
    前記入力手段から入力された画像から被写体の位置情報を検出する検出手段と、
    前記被写体の位置情報に基づいて前記ユーザ操作のアシストに関する動作状態を決定する決定手段と、
    外部へ情報を送信する送信手段と、
    を有し、
    前記表示装置は、
    前記撮像装置で撮像された画像が入力される入力手段と、
    前記画像に含まれる被写体の位置情報と、
    前記被写体の位置情報から算出された外部装置の動作状態と、
    前記被写体の位置情報と前記動作状態を受信する受信手段と、
    前記画像を表示する表示手段と
    を有し、
    前記制御装置は、
    前記送信手段より前記被写体の位置情報と、前記動作状態とを送信し、
    前記表示装置は、
    前記画像に対し、前記受信手段より受信した前記被写体の位置を示すパターンを重畳して前記表示手段にて表示し、前記パターンを、前記動作状態を示す情報に基づいた態様で表示することを特徴とする撮像システム。
JP2022148288A 2022-07-12 2022-09-16 撮像システム及びそれを構成する制御装置、撮像装置、表示装置、制御方法、表示方法 Pending JP2024010639A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP23183163.7A EP4312434A1 (en) 2022-07-12 2023-07-03 Image capturing system, control apparatus, image capturing apparatus, and display apparatus constituting the system, control method, and display method
US18/350,567 US20240022812A1 (en) 2022-07-12 2023-07-11 Image capturing system, control apparatus, image capturing apparatus, and display apparatus constituting the system, control method, and display method
CN202310842471.6A CN117395500A (zh) 2022-07-12 2023-07-11 摄像系统、控制设备、摄像设备和控制方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022111882 2022-07-12
JP2022111882 2022-07-12

Publications (1)

Publication Number Publication Date
JP2024010639A true JP2024010639A (ja) 2024-01-24

Family

ID=89620939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022148288A Pending JP2024010639A (ja) 2022-07-12 2022-09-16 撮像システム及びそれを構成する制御装置、撮像装置、表示装置、制御方法、表示方法

Country Status (1)

Country Link
JP (1) JP2024010639A (ja)

Similar Documents

Publication Publication Date Title
JP5005080B2 (ja) パノラマ画像の生成方法
JP5835384B2 (ja) 情報処理方法、情報処理装置、およびプログラム
JP2015176559A (ja) 情報処理方法、情報処理装置、およびプログラム
JP2017034552A (ja) 情報処理装置およびその制御方法
JP2008311804A (ja) 撮像装置および撮像方法
JP7313869B2 (ja) 撮像装置、制御装置、制御方法及びプログラム
JP6350695B2 (ja) 装置、方法、およびプログラム
JP2000083246A (ja) カメラ制御システム、カメラ制御方法、およびその処理を実行するプログラムを記憶した記録媒体
US8648916B2 (en) Control of an image capturing device
JP2024010639A (ja) 撮像システム及びそれを構成する制御装置、撮像装置、表示装置、制御方法、表示方法
JP6583486B2 (ja) 情報処理方法、情報処理プログラムおよび情報処理装置
EP4312434A1 (en) Image capturing system, control apparatus, image capturing apparatus, and display apparatus constituting the system, control method, and display method
WO2020241038A1 (ja) 構図制御装置、構図制御方法、プログラム
JP6128185B2 (ja) 装置、方法、およびプログラム
JP6777208B2 (ja) プログラム
JP2024010640A (ja) 撮像システム及びそれを構成する制御装置、撮像装置、制御方法
CN117395500A (zh) 摄像系统、控制设备、摄像设备和控制方法
JP2022097165A (ja) 情報処理装置、情報処理方法、及びプログラム
JP2024033919A (ja) 撮像制御装置、撮像装置、映像配信システムおよび撮像制御方法
JP6128966B2 (ja) 画像処理装置、画像処理方法、及び、プログラム
JP2024033741A (ja) 制御装置、撮像装置、制御方法、及びプログラム
US11610338B2 (en) Method of controlling a camera
JP2008078958A (ja) 映像表示プログラムおよび映像表示システム
JP2023117195A (ja) 情報処理装置およびその制御方法
JP2016021267A (ja) 装置、方法、およびプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20231213