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

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

▶ キヤノン株式会社の特許一覧

<>
  • 特許-撮像装置、制御方法、及び、プログラム 図1
  • 特許-撮像装置、制御方法、及び、プログラム 図2
  • 特許-撮像装置、制御方法、及び、プログラム 図3
  • 特許-撮像装置、制御方法、及び、プログラム 図4
  • 特許-撮像装置、制御方法、及び、プログラム 図5
  • 特許-撮像装置、制御方法、及び、プログラム 図6
  • 特許-撮像装置、制御方法、及び、プログラム 図7
  • 特許-撮像装置、制御方法、及び、プログラム 図8
  • 特許-撮像装置、制御方法、及び、プログラム 図9
  • 特許-撮像装置、制御方法、及び、プログラム 図10
  • 特許-撮像装置、制御方法、及び、プログラム 図11
  • 特許-撮像装置、制御方法、及び、プログラム 図12
  • 特許-撮像装置、制御方法、及び、プログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-07
(45)【発行日】2024-06-17
(54)【発明の名称】撮像装置、制御方法、及び、プログラム
(51)【国際特許分類】
   H04N 23/60 20230101AFI20240610BHJP
   H04N 23/661 20230101ALI20240610BHJP
【FI】
H04N23/60 500
H04N23/661
【請求項の数】 27
(21)【出願番号】P 2020061113
(22)【出願日】2020-03-30
(65)【公開番号】P2021072611
(43)【公開日】2021-05-06
【審査請求日】2023-03-22
(31)【優先権主張番号】P 2019197653
(32)【優先日】2019-10-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】荒巻 祐治
(72)【発明者】
【氏名】渡邉 達也
【審査官】越河 勉
(56)【参考文献】
【文献】特開2007-000315(JP,A)
【文献】特開2017-205217(JP,A)
【文献】特開2011-036488(JP,A)
【文献】特開2003-024272(JP,A)
【文献】特開2006-019932(JP,A)
【文献】米国特許出願公開第2004/0085442(US,A1)
【文献】米国特許出願公開第2006/0001746(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/60
(57)【特許請求の範囲】
【請求項1】
撮影された画像に対して画像解析処理を実行する機能を有するデバイスを着脱可能な装着部を有する撮像装置であって、
前記装着部に装着されたデバイスによる前記画像解析処理の開始に関連付けられる所定のタイミングから当該処理の完了までの時間である処理時間を算出するために、前記画像解析処理が開始されてから完了するまでのクロックサイクル数を含む情報を前記デバイスから取得し、前記処理時間を前記情報に基づいて算出し、前記デバイスに前記画像解析処理の実行を開始させた場合、その開始に関連する前記所定のタイミングから前記処理時間が経過してから、前記デバイスから、前記画像解析処理の結果を取得する取得手段を有することを特徴とする撮像装置。
【請求項2】
記取得手段は、前記クロックサイクル数と、前記デバイスのハードウェアの性能とから、前記処理時間を算出する、ことを特徴とする請求項に記載の撮像装置。
【請求項3】
前記画像が分割されて得られた1つ以上の分割画像に対して前記デバイスが前記画像解析処理を一括して実行する場合、前記取得手段は、1つの分割画像についての前記情報を前記デバイスから取得し、当該情報と一括して処理される分割画像の数に基づいて、前記処理時間を取得する、ことを特徴とする請求項1又は2に記載の撮像装置。
【請求項4】
前記取得手段は、前記デバイスにおいて実行可能な処理ごとに前記情報を取得する、ことを特徴とする請求項1から3のいずれか1項に記載の撮像装置。
【請求項5】
前記所定のタイミングは、前記画像解析処理の実行を要求するコマンドが前記デバイスへ送信されるタイミングである、ことを特徴とする請求項1からのいずれか1項に記載の撮像装置。
【請求項6】
前記所定のタイミングは、前記画像解析処理が実際に開始されるタイミングである、ことを特徴とする請求項1からのいずれか1項に記載の撮像装置。
【請求項7】
前記取得手段は、前記画像解析処理の実行状況を示す処理状態の情報をさらに取得する、ことを特徴とする請求項1からのいずれか1項に記載の撮像装置。
【請求項8】
前記画像解析処理が完了していることを前記処理状態の情報が示す場合に、前記取得手段が前記結果を取得する、ことを特徴とする請求項に記載の撮像装置。
【請求項9】
前記処理状態の情報は、前記画像解析処理の進捗状況を示す情報である、ことを特徴とする請求項又はに記載の撮像装置。
【請求項10】
前記進捗状況から前記画像解析処理が完了するまでの残処理時間を取得する手段をさらに有する、ことを特徴とする請求項に記載の撮像装置。
【請求項11】
前記進捗状況は、前記画像解析処理によってアクセスされているメモリのアドレスによって示される、ことを特徴とする請求項1に記載の撮像装置。
【請求項12】
当該アドレスと、前記画像解析処理によって使用される前記メモリの領域とに基づいて、前記残処理時間が計算される、ことを特徴とする請求項1に記載の撮像装置。
【請求項13】
前記画像解析処理が複数の部分処理から構成され、
前記進捗状況は、前記複数の部分処理のうちのいずれが実行中であるかによって示される、ことを特徴とする請求項1に記載の撮像装置。
【請求項14】
前記複数の部分処理の数と、前記実行中の部分処理が前記画像解析処理で実行される順序とに基づいて、前記残処理時間が計算される、ことを特徴とする請求項1に記載の撮像装置。
【請求項15】
前記画像解析処理が複数の部分処理から構成され、
前記複数の部分処理に関連付けられた情報が、それぞれメモリに格納され、
前記進捗状況は、前記画像解析処理によってアクセスされている前記メモリのアドレスによって示される、ことを特徴とする請求項1に記載の撮像装置。
【請求項16】
前記複数の部分処理の数と、前記アドレスに対応する部分処理が前記画像解析処理で実行される順序とに基づいて、前記残処理時間が計算される、ことを特徴とする請求項1に記載の撮像装置。
【請求項17】
前記進捗状況によって、前記画像解析処理が完了しているか否かが示される、ことを特徴とする請求項10から16のいずれか1項に記載の撮像装置。
【請求項18】
前記画像解析処理が完了していない場合に、前記処理時間に基づいて、前記残処理時間が計算される、ことを特徴とする請求項1に記載の撮像装置。
【請求項19】
前記処理状態の情報は、前記画像解析処理が完了するまでの残処理時間を示す、ことを特徴とする請求項から10のいずれか1項に記載の撮像装置。
【請求項20】
前記取得手段は、前記残処理時間だけ待機した後に前記結果を取得する、ことを特徴とする請求項1から19のいずれか1項に記載の撮像装置。
【請求項21】
前記取得手段は、前記画像解析処理が完了している場合には前記結果を取得し、前記画像解析処理が完了していない場合には前記処理状態の情報を取得する、ことを特徴とする請求項に記載の撮像装置。
【請求項22】
前記取得手段は、SD規格におけるレスポンスを用いて、前記処理状態の情報を取得する、ことを特徴とする請求項から21のいずれか1項に記載の撮像装置。
【請求項23】
前記取得手段は、SD規格におけるデータラインを用いて、前記処理状態の情報と前記結果とを取得する、ことを特徴とする請求項に記載の撮像装置。
【請求項24】
前記取得手段は、前記データラインから取得したデータから、当該データにおいて前記結果が格納されるサイズに基づいて前記処理状態の情報を取得する、ことを特徴とする請求項2に記載の撮像装置。
【請求項25】
前記取得手段は、前記データラインから取得したデータから、当該データに含まれる所定のパターンに基づいて前記処理状態の情報を取得する、ことを特徴とする請求項2に記載の撮像装置。
【請求項26】
撮影された画像に対して画像解析処理を実行する機能を有するデバイスを着脱可能な装着部を有する撮像装置によって実行される制御方法であって、
前記装着部に装着されたデバイスによる前記画像解析処理の開始に関連付けられる所定のタイミングから当該処理の完了までの時間である処理時間を算出するために、前記画像解析処理が開始されてから完了するまでのクロックサイクル数を含む情報を前記デバイスから取得し、前記処理時間を前記情報に基づいて算出し、前記デバイスに前記画像解析処理の実行を開始させた場合、その開始に関連する前記所定のタイミングから前記処理時間が経過してから、前記デバイスから、前記画像解析処理の結果を取得する取得工程と、
を含むことを特徴とする制御方法。
【請求項27】
撮影された画像に対して画像解析処理を実行する機能を有するデバイスを着脱可能な装着部を有する撮像装置に備えられたコンピュータに、
前記装着部に装着されたデバイスによる前記画像解析処理の開始に関連付けられる所定のタイミングから当該処理の完了までの時間である処理時間を算出するために、前記画像解析処理が開始されてから完了するまでのクロックサイクル数を含む情報を前記デバイスから取得させて、前記処理時間を前記情報に基づいて算出させ、
前記デバイスに前記画像解析処理の実行を開始させた場合、その開始に関連する前記所定のタイミングから前記処理時間が経過してから、前記デバイスから、前記画像解析処理の結果を取得させる、
ためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理の効率化技術に関する。
【背景技術】
【0002】
近年、様々なシーンにおいて、監視カメラにより撮像された画像を用いて、物体の検出や追尾、属性の推定等を行う画像解析、そのような画像解析の結果に基づく物体数の推定等の画像処理が行われている。従来、このような画像処理は、実際の画像処理を実行するPCやサーバ等の高性能な演算装置に監視カメラの映像が転送されることによって行われてきた。これに対し、近年のモバイル用演算装置の処理能力の向上に伴い、監視カメラ側で画像処理を行うことが可能となってきている。カメラ側での処理は、例えば、カメラ本体に配置された演算装置によって実行されうる。また、USB等の着脱可能デバイスに演算装置を配置することによって、その着脱可能デバイスが処理の少なくとも一部を実行することもできる。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2013/011988号
【発明の概要】
【発明が解決しようとする課題】
【0004】
着脱可能デバイスが装着可能な装置においては、その着脱可能デバイスの装着の有無に応じて、利便性を向上させる制御を行うことが肝要である。
【課題を解決するための手段】
【0005】
本発明は、着脱可能デバイスが装着された撮像装置において、着脱可能デバイスに処理を実行させる際の効率を改善する技術を提供する。
【0006】
本発明の一態様による撮像装置は、撮影された画像に対して画像解析処理を実行する機能を有するデバイスを着脱可能な装着部を有する撮像装置であって、前記装着部に装着されたデバイスによる前記画像解析処理の開始に関連付けられる所定のタイミングから当該処理の完了までの時間である処理時間を算出するために、前記画像解析処理が開始されてから完了するまでのクロックサイクル数を含む情報を前記デバイスから取得し、前記処理時間を前記情報に基づいて算出し、前記デバイスに前記画像解析処理の実行を開始させた場合、その開始に関連する前記所定のタイミングから前記処理時間が経過してから、前記デバイスから、前記画像解析処理の結果を取得する取得手段を有する。
【発明の効果】
【0007】
本発明によれば、着脱可能デバイスが装着された撮像装置において、着脱可能デバイスに処理を実行させる際の効率を改善することができる。
【図面の簡単な説明】
【0008】
図1】システム構成の一例を示す図である。
図2】撮像装置のハードウェア構成例を示す図である。
図3】撮像装置の機能構成例を示す図である。
図4】着脱可能デバイスのハードウェア構成例を示す図である。
図5】着脱可能デバイスの機能構成例を示す図である
図6】システムで実行される処理の流れの例を示す図である。
図7】解析処理を把握する処理の流れの例を示す図である。
図8】解析処理の内容を決定する処理の流れの例を示す図である。
図9】解析処理を実行する制御の流れの例を示す図である。
図10】後処理を実行する制御の流れの例を示す図である。
図11】変形例に係る着脱可能デバイスのハードウェア構成例を示す図である。
図12】コマンドとレスポンスの構造を示す図である。
図13】処理が未完了の場合を考慮した結果取得処理の流れの例を示す図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0010】
<システム構成>
図1に、本実施形態の画像解析システムの構成例を示す。以下では、一例として、このシステムが特定人物追跡システムである場合について説明する。ただし、これに限られず、画像を解析して所定の情報出力を行う任意のシステムに、以下の議論を適用することができる。本システムは、撮像装置110a~110dと、ネットワーク120と、入出力装置130とを含んで構成される。なお、撮像装置110a~110dは、それぞれ、例えば撮像した画像を記録可能なデバイスを着脱可能なスロットを有し、そのスロットに着脱可能デバイス100a~100dが挿入されることにより、着脱可能デバイス100a~100dと接続される。なお、以下では、着脱可能デバイス100a~100dを「着脱可能デバイス100」と表記し、撮像装置110a~110dを「撮像装置110」と表記する。
【0011】
着脱可能デバイス100は、撮像装置110に対して着脱可能な演算デバイスである。着脱可能デバイス100は、一例として、SDカードに所定の処理回路を搭載したデバイスである。着脱可能デバイス100は、例えば、SDカードの態様によって、撮像装置110にその全体が挿入可能に構成され、これにより、撮像装置110から突出する部分がない状態で撮像装置110と接続可能に構成することができる。また、着脱可能デバイス100は、例えば、撮像装置110にその半分以上の部分が挿入可能に構成され、これにより、撮像装置110から突出する部分が少ない状態で撮像装置110と接続可能に構成されてもよい。これにより、着脱可能デバイス100が配線等の障害物と干渉することを防ぐことができ、デバイスの利用時の利便性を高めることができる。また、多くの既存のネットワークカメラなどの撮像装置110には、SDカードスロットが用意されているため、既存の撮像装置110に対して、着脱可能デバイス100により拡張機能を提供することができる。なお、着脱可能デバイス100は、SDカードの態様以外に、少なくともその撮像装置110で撮影された画像を記憶可能な記憶装置が装着される際に使用される任意のインタフェースで、撮像装置110に装着されるように構成されてもよい。例えば、着脱可能デバイス100は、USB(ユニバーサルシリアルバス)インタフェースを有し、撮像装置110のUSBソケットに装着されるように構成されてもよい。また、所定の処理回路は、例えば、所定の処理を実行するようにプログラムされたFPGA(フィールドプログラマブルゲートアレイ)によって実装されるが、それ以外の形式で実装されてもよい。
【0012】
撮像装置110は、ネットワークカメラ等の撮像装置である。本実施形態では、撮像装置110は、映像を処理することのできる演算装置を内蔵するものとするが、これに限られない。例えば、撮像装置110に接続されたPC(パーソナルコンピュータ)等の外部コンピュータが存在してもよく、これらの組み合わせを、撮像装置110として扱ってもよい。また、本実施形態では、全ての撮像装置110に、着脱可能デバイス100が装着されているものとする。なお、図1では、4つの撮像装置110と、それぞれに装着された着脱可能デバイスとが示されているが、これらの装置の組み合わせの数は3つ以下であってもよいし、5つ以上であってもよい。撮像装置110に、画像解析処理機能を有する着脱可能デバイス100が装着されることにより、撮像装置110が画像解析処理機能を有しなくても、撮像装置110側で映像処理を実行することが可能となる。また、本実施形態のように撮像装置110に映像処理用の演算装置が配置された形態では、演算装置が配置された着脱可能デバイス100が撮像装置110に装着されることにより、撮像装置110側で実行可能な画像処理を多様化・高度化することができる。
【0013】
入出力装置130は、ユーザからの入力の受け付けや、ユーザへの情報の出力(例えば情報の表示)を行う装置である。本実施形態では、例えば入出力装置130は、PC等のコンピュータであり、そのコンピュータにインストールされたブラウザやネイティブアプリケーションが内蔵されたプロセッサによって実行されることで、情報の入出力が行われる。
【0014】
撮像装置110と入出力装置130は、ネットワーク120を介して通信可能に接続される。ネットワーク120は、例えばEthernet(登録商標)等の通信規格を満たす複数のルータ、スイッチ、ケーブル等を含んで構成される。本実施形態では、ネットワーク120は、撮像装置110と入出力装置130との間の通信を可能とする任意のネットワークであってよく、任意の規模や構成、準拠する通信規格によって構築されうる。例えば、ネットワーク120は、インターネットや有線LAN(Local Area Network)、無線LAN、WAN(Wide Area Network)等でありうる。また、ネットワーク120は、例えば、ONVIF(Open Network Video Interface Forum)規格に準拠した通信プロトコルでの通信が可能なように構成されうる。ただし、これに限られず、ネットワーク120は、例えば、独自の通信プロトコル等の他の通信プロトコルでの通信が可能なように構成されてもよい。
【0015】
<装置構成>
(撮像装置の構成)
続いて、撮像装置110の構成について説明する。図2は、撮像装置110のハードウェア構成例を示す図である。撮像装置110は、そのハードウェア構成として、例えば、撮像部201、画像処理部202、演算処理部203、配信部204、SD I/F部205を含む。なお、I/Fは、インタフェースの略語である。
【0016】
撮像部201は、光を結像するためのレンズ部と、結像された光に応じたアナログ信号変換する撮像素子とを含んで構成される。レンズ部は、画角を調整するズーム機能や、光量の調整を行う絞り機能などを有する。撮像素子は、光をアナログ信号に変換する際の感度調整を行うゲイン機能を有する。これらの機能は、画像処理部202から通知された設定値に基づいて調整される。撮像部201によって取得されたアナログ信号は、アナログ-デジタル変換回路によってデジタル信号に変換され、画像信号として画像処理部202へ転送される。
【0017】
画像処理部202は、画像処理エンジンと、その周辺デバイス等を含んで構成される。周辺デバイスは、例えば、RAM(Random Access Memory)や、各I/Fのドライバ等を含む。画像処理部202では、撮像部201から取得した画像信号に対して、例えば、現像処理、フィルタ処理、センサ補正、ノイズ除去等の、画像処理を施して画像データを生成する。また、画像処理部202は、レンズ部や撮像素子へ設定値を送信し、適切露出画像を取得できるように、露出調整を実行しうる。画像処理部202において生成された画像データは、演算処理部203へ転送される。
【0018】
演算処理部203は、CPUやMPU等の1つ以上のプロセッサ、RAMやROM等のメモリ、各I/Fのドライバなどから構成される。なお、CPUはCentral Processing Unitの、MPUはMicro Processing Unitの、RAMはRandom Access Memoryの、ROMはRead Only Memoryの、頭字語である。演算処理部203では、一例において、上述のシステムにおいて実行されるべき処理の各部分を撮像装置110と着脱可能デバイス100とのいずれが実行するかの分担を決定し、その決定した分担に対応する処理を実行しうる。この処理内容や処理の分担の詳細に関しては後述する。画像処理部202から受け取った画像は、配信部204、又は、SD I/F部205へ転送される。また、処理結果や処理状態のデータも配信部204へ転送される。
【0019】
配信部204は、ネットワーク配信エンジンと、例えば、RAMやETH PHYモジュールなどの周辺デバイス等を含んで構成される。ETH PHYモジュールは、Ethernetの物理(PHY)レイヤの処理を実行するモジュールである。配信部204は、演算処理部203から取得した画像データや処理結果や処理状態のデータを、ネットワーク120へ配信可能な形式に変換して、変換後のデータをネットワーク120へ出力する。SD I/F部205は、着脱可能デバイス100と接続するためのインタフェース部分で、例えば、電源と、着脱可能デバイス100を着脱するための、着脱ソケット等の装着機構を含んで構成される。ここでは、SD I/F部205が、SD Associationにより策定されたSD規格に従って構成されるものとする。演算処理部203から取得された画像の着脱可能デバイス100への転送や、着脱可能デバイス100からのデータの取得等の、着脱可能デバイス100と撮像装置110との間での通信は、SD I/F部205を通じて行われる。
【0020】
図3に、撮像装置110の機能構成例を示す。撮像装置110は、その機能として、例えば、撮像制御部301、信号処理部302、記憶部303、制御部304、解析部305、デバイス通信部306、及び、ネットワーク通信部307を含む。
【0021】
撮像制御部301は、撮像部201を介して周囲の環境を撮影するようにする制御を実行する。信号処理部302は、撮像制御部301によって撮影された画像に対して所定の処理を施して、撮影画像のデータを生成する。以下では、この撮影画像のデータを単に「撮影画像」と呼ぶ。信号処理部302は、例えば、撮像制御部301によって撮影された画像を符号化する。信号処理部302は、静止画像に対して、例えば、JPEG(Joint Photographic Experts Group)等の符号化方式を用いて符号化を行う。また、信号処理部302は、動画像に対して、H.264/MPEG-4 AVC(以下では「H.264」と呼ぶ。)、HEVC(High Efficiency Video Coding)等の符号化方式を用いて符号化を行う。また、信号処理部302は、予め設定された複数の符号化方式の中から、例えば撮像装置110の不図示の操作部を介して、ユーザにより選択された符号化方式を用いて、画像を符号化してもよい。
【0022】
記憶部303は、解析部305において実行可能な解析処理のリスト(以下では「第1処理リスト」と呼ぶ。)と、解析処理の結果に対する後処理のリストとを記憶する。また、記憶部303は、後述する解析処理の結果を記憶する。なお、本実施形態では、実行される処理が解析処理であるが、任意の処理が実行されてもよく、記憶部303は、その実行される処理に関連する処理について、第1処理リストと後処理のリストとを記憶するようにしうる。制御部304は、信号処理部302、記憶部303、解析部305、デバイス通信部306、ネットワーク通信部307を、それぞれが所定の処理を実行するように、制御する。
【0023】
解析部305は、撮影画像に対して、後述する解析前処理、解析処理、解析後処理の少なくともいずれかを選択的に実行する。解析前処理は、後述の解析処理を実行する前に、撮影画像に対して実行する処理である。本実施形態の解析前処理では、一例として、撮影画像を分割して分割画像を作成する処理が実行されるものとする。解析処理は、入力された画像を解析して得られる情報を出力する処理である。本実施形態の解析処理では、一例として、解析前処理によって得られた分割画像を入力として、人体検出処理、顔検出処理、車両検出処理の少なくともいずれかを実行し、解析処理結果を出力する処理が実行されるものとする。解析処理は、例えば非特許文献1の技術によって、画像に含まれるオブジェクトを検出できるように学習が行われた機械学習モデルを用いて、分割画像中のオブジェクトの位置を出力するように構成された処理でありうる。解析後処理は、解析処理が実行された後に実行される処理である。本実施形態の解析後処理では、一例として、各分割画像に対する解析処理結果に基づいて、各分割画像において検出されたオブジェクトの数を合計した値を処理結果として出力する処理が実行されるものとする。なお、解析処理は、パターンマッチングを行って画像中のオブジェクトを検出し、その位置を出力する処理であってもよい。
【0024】
デバイス通信部306は、着脱可能デバイス100との通信を行う。デバイス通信部306は、入力されたデータを着脱可能デバイス100が処理可能な形式に変換し、その変換によって得られたデータを着脱可能デバイス100に送信する。また、デバイス通信部306は、着脱可能デバイス100からデータを受信し、受信したデータを撮像装置110が処理可能な形式に変換する。本実施形態では、デバイス通信部306は、変換処理として、小数を浮動小数点形式と固定小数点形式との間で変換する処理を実行するものとするが、これに限られず、他の処理がデバイス通信部306によって実行されてもよい。また、本実施形態では、デバイス通信部306は、着脱可能デバイス100に対してSD規格の範囲内で事前に定められたコマンドシーケンスを送信し、着脱可能デバイス100からの応答を受信することで、着脱可能デバイス100との通信を行うものとする。ネットワーク通信部307は、ネットワーク120を介して、入出力装置130との通信を行う。
【0025】
(着脱可能デバイスの構成)
図4に、着脱可能デバイス100のハードウェア構成例を示す。着脱可能デバイス100は、一例として、I/F部401、FPGA402、SDコントローラ403、及び、記憶部404を含んで構成される。着脱可能デバイス100は、撮像装置110が有するSD I/F部205の着脱ソケットに挿抜できる形状で、すなわちSD規格に則った形状で成形されるものとする。
【0026】
I/F部401は、撮像装置110等の装置と着脱可能デバイス100とを接続するためのインタフェース部分である。I/F部401は、例えば、撮像装置110から電源の供給を受け、着脱可能デバイス100内で使用する電源を生成し分配する、電気的な接点端子等を含んで構成される。I/F部401は、撮像装置110のSD I/F部205と同様に、SD規格内で定義(準拠)されている項目に関しては、それに従うものとする。撮像装置110からの画像や設定データの受け取り、FPGA402から撮像装置110へのデータの送信は、I/F部401を介して実行される。
【0027】
FPGA402は、入出力制御部410、処理切替部411、及び演算処理部412を含んで構成される。FPGA402は、内部の論理回路構造を繰り返し再構成できる半導体デバイスの一種である。FPGA402が実現する処理により、着脱可能デバイス100が装着された装置に、処理機能を追加(提供)することができる。また、FPGA402の再構成機能により、後から論理回路構造を変更することができるため、例えば技術の進歩の早い分野の装置に着脱可能デバイス100を装着することにより、その装置において適時に適切な処理を実行することが可能となる。なお、本実施形態では、FPGAが用いられる例について説明するが、後述する処理を実現可能である限りにおいて、例えば、汎用のASICや専用のLSIが用いられてもよい。FPGA402は、生成される論理回路構造の情報を含んだ設定データが専用のI/Fから書き込まれることにより、又は、その設定データがその専用のI/Fから読み出されることによって、起動される。本実施形態では、この設定データが記憶部404に保持されているものとする。FPGA402は、電源が投入されると、記憶部404から設定データを読み出し、論理回路を生成して起動する。ただし、これに限られず、例えば、着脱可能デバイス内に専用の回路を実装することにより、I/F部401を介して、撮像装置110がFPGA402に設定データを書き込んでもよい。
【0028】
入出力制御部410は、撮像装置110との間で画像を送受信するための回路、撮像装置110から受信したコマンドを解析する回路、解析した結果に基づいて制御を行う回路、等を含んで構成される。ここでのコマンドは、SD規格に定義されているものであり、入出力制御部410は、それらのうちのいくつかを検出することができる。機能の詳細に関しては後述する。入出力制御部410は、記憶処理の場合はSDコントローラ403へ画像を送信し、画像解析処理の場合は演算処理部412へ画像を送信するように制御を行う。また、入出力制御部410は、処理の切り替えの設定データを受け取った場合は、処理切替部411へ設定データを送信する。処理切替部411は、撮像装置110から受け取った設定データに基づいて、記憶部404から画像解析処理機能の情報を取得し、演算処理部412に書き込むための回路を含んで構成される。画像解析処理機能の情報は、例えば、演算処理部412内で処理される演算の順序や種類、演算の係数などを示す設定パラメータである。演算処理部412は、画像解析処理機能を実行するために必要な複数の演算回路を含んで構成される。演算処理部412は、処理切替部411から受け取った画像解析処理機能の情報に基づいて、各演算処理を実行して、その処理結果を撮像装置110へ送信し、及び/又は、その処理結果を記憶部404に記録する。このように、FPGA402は、事前に保持された複数の処理機能に対応する設定データに含まれる、実行対象の処理機能の設定データを抽出して、その抽出した設定データに基づいて演算処理部412によって実行される処理内容を書き換える。これにより、着脱可能デバイス100が、その複数の処理機能のうちの少なくともいずれかを選択的に実行することができる。また、新規に追加する処理の設定データを随時追加することにより、撮像装置110側で最新の処理を実行させることができる。なお、以下では、複数の処理機能のそれぞれに対応する複数の設定データを有していることを、複数の処理機能を有すると表現する。すなわち、着脱可能デバイス100のFPGA402が1つの処理機能を実行するように構成されている状態であっても、他の処理機能のための設定データにより演算処理部412の処理内容を変更することができる場合、複数の処理機能を有する、と表現する。
【0029】
SDコントローラ403は、SD規格に定義されているような公知のコントロールIC(集積回路)であり、SDプロトコルのスレーブ動作の制御と、記憶部404に対するデータの読み書きの制御とを実行する。記憶部404は、例えばNAND型フラッシュメモリによって構成され、例えば、撮像装置110から書き込まれた記憶データ、演算処理部412に書き込まれる画像解析処理機能の情報、FPGA402の設定データ等の各種情報を記憶する。
【0030】
図5に、着脱可能デバイス100の機能構成例を示す。着脱可能デバイス100は、その機能構成として、例えば、解析部501、通信部502、及び記憶部503を含む。解析部501は、画像に対する解析処理を実行する。解析部501は、例えば、解析処理設定要求を入力された場合に、入力された解析処理を実行可能な状態にするための設定を実行する。また、解析部501は、画像が入力された場合、その入力された画像に対して、実行可能な状態に設定された解析処理を実行する。本実施形態では、実行可能な解析処理は、人体検出処理と顔検出処理であるものとするが、これらに限られない。例えば、事前に記憶された人物が画像に含まれるか否かを判定する処理(後述する顔認証処理)であってもよい。例えば、事前に記憶された人物の画像特徴量と、入力された画像から検出された人物の画像特徴量との一致度合いが算出され、一致度合いが閾値以上の場合に事前に記憶された人物であると判定される。また、プライバシー保護を目的として、入力された画像から検出された人物に対して、所定のマスク画像を重畳したり、モザイク処理を施したりする処理であってもよい。また、人物の特定の行動を機械学習によって学習した学習モデルを用いて、画像中の人物が特定の行動を行っているかを検出する処理であってもよい。さらには、画像中の領域がどのような領域なのかを判定する処理であってもよい。例えば、建物や道路、人物、空等を機械学習によって学習した学習モデルを用いて、画像中の領域がどのような領域なのかを判定する処理であってもよい。以上のように、実行可能な解析処理は、機械学習を用いた画像解析処理にも、機械学習を用いない画像解析処理にも応用可能である。また、上記の各解析処理は、着脱可能デバイス100が単独で行うのではなく、撮像装置110と協働して実行してもよい。通信部502は、I/F部401を介して、撮像装置110との通信を行う。記憶部503は、解析処理の設定内容や解析処理に要する時間等の情報を記憶する。解析処理に要する時間は、例えば、所定の処理が実行される際に要する実時間であり、その時間だけ待つことによりその解析処理が終了することが保証される時間でありうる。また、解析処理に要する時間は、その解析処理における処理のクロックサイクル数であってもよい。なお、この時間の情報は、解析処理ごとに個別に記憶されうる。また、解析処理に要する時間は、例えば、初期的に十分に大きい値に設定され、その後、実際に処理が実行された際に要した時間を統計値として収集し、その収集された値に基づいて、更新されてもよい。
【0031】
<処理の流れ>
続いて、システム内で実行される処理の流れの例について説明する。なお、以下の各処理のうち撮像装置110が実行する処理は、例えば、演算処理部203内のプロセッサがメモリ等に記憶されたプログラムを実行することによって実現される。ただし、これは一例に過ぎず、後述の処理の一部又は全部が、専用のハードウェアによって実現されてもよい。また、着脱可能デバイス100や入出力装置130が実行する処理についても、各装置におけるプロセッサがメモリ等に記憶されたプログラムを実行することによって実現されてもよいし、処理の一部又は全部を、専用のハードウェアによって実現してもよい。
【0032】
(全体の流れ)
図6に、システムで実行される画像解析処理の一連の流れを概略的に示す。本処理では、まず、ユーザによって、撮像装置110に着脱可能デバイス100が装着される(S601)。撮像装置110は、着脱可能デバイス100の初期化シーケンスを実行する(S602)。この初期化シーケンスでは、撮像装置110と着脱可能デバイス100との間で所定のコマンドが送受信されることにより、撮像装置110が、着脱可能デバイス100を使用可能な状態とされる。その後、撮像装置110は、着脱可能デバイス100が実行可能な処理を把握し、ローカルで実行可能な(撮像装置110単体で又は撮像装置110と着脱可能デバイス100の組み合わせで実行可能な)処理を把握する(S603)。なお、着脱可能デバイス100は、任意の処理を実行可能なように構成されうるが、撮像装置110側で実行されるべき処理と無関係な処理については考慮されなくてもよい。一例において、撮像装置110は、例えば入出力装置130から事前に取得した実行されうる処理のリストを保持しておいてもよい。この場合、撮像装置110は、着脱可能デバイス100が実行可能な処理を示す情報を着脱可能デバイス100から取得した際に、その処理がリストに含まれているか否かによって、実行されうる処理のみを把握することができる。続いて、撮像装置110は、実行する処理を決定し、必要に応じて着脱可能デバイス100の設定を実行する(S604)。すなわち、実行対象として決定された処理の少なくとも一部が着脱可能デバイス100によって実行される場合に、その処理のための着脱可能デバイス100の設定が実行される。この設定においては、例えば、実行対象の処理に対応する設定データを用いたFPGA402の再構成が行われうる。そして、撮像装置110または着脱可能デバイス100が、解析処理を実行する(S605)。その後、撮像装置110は、後処理を実行する(S606)。なお、S605とS606の処理は繰り返し実行される。図6の処理は、例えば、着脱可能デバイス100が装着された際に実行されるが、例えば着脱可能デバイス100が取り外された際にも、S603の処理が再度実行されるようにするなど、図6の処理の少なくとも一部が繰り返し実行されてもよい。
【0033】
(実行可能な処理を把握する処理)
図7に、撮像装置110が実行可能な処理を把握する処理の流れの例を示す。本処理は、図6のS603の処理に対応し、着脱可能デバイス100等のデバイスが撮像装置110に装着された又は抜去された場合や、撮像装置110の電源がオンとなった際に実行されうる。本処理では、撮像装置110は、着脱可能デバイス100で実行可能な処理を読み出し、撮像装置110自身が実行可能な解析処理と統合し、撮像装置110側で実行可能な解析処理を把握する。
【0034】
まず、撮像装置110の制御部304は、記憶部303に記憶されている、撮像装置110自身の解析部305において実行可能な処理のリストである第1処理リストを読み出す(S701)。続いて、制御部304は、装着されたデバイスが、例えば従来の記憶機能のみを有するデバイスであるか、着脱可能デバイス100等の特定の処理機能を有する所定のデバイスであるかを判定する(S702)。例えば、制御部304は、デバイス通信部306を制御して、装着されたデバイスに対して、特定のアドレスへの読み出し要求(リードコマンド)を発行し、その特定のアドレスに格納されているフラグデータを読み出す。そして、制御部304は、読み出したフラグデータに基づいて、着脱可能デバイス100が特定の処理機能を有する所定のデバイスであるかを判定しうる。ただし、これは一例に過ぎず、他の方法によって、装着されたデバイスが所定のデバイスであるか否かが判定されてもよい。
【0035】
装着されたデバイスが所定のデバイスである場合(S702でYES)、制御部304は、そのデバイス(着脱可能デバイス100)において実行可能な処理を把握するための処理を実行する。制御部304は、デバイス通信部306を制御して着脱可能デバイス100と通信し、着脱可能デバイス100において実行可能な処理のリスト(以下では「第2処理リスト」と呼ぶ。)を取得する(S703)。制御部304は、例えば、着脱可能デバイス100が所定のデバイスか否かを判定した場合と同様に、特定のアドレスに格納されているデータを読み出すことにより、第2処理リストを取得しうる。なお、例えば、第2処理リストは、着脱可能デバイスが所定のデバイスであるか否かの判定を行うフラグデータと同一のアドレスに格納されうる。この場合、撮像装置110は、そのアドレスにアクセスすることにより、フラグデータと第2処理リストとを同時に取得して、S702の処理とS703の処理とを同時に実行することができる。ただし、これに限られず、これらのデータは、別のアドレスに格納されてもよい。その後、制御部304は、記憶部303から読み出した撮像装置110自身が実行可能な処理の第1処理リストと、着脱デバイスから取得した第2処理リストとが統合された統合処理リストを作成し(S704)、処理を終了する。
【0036】
この統合処理リストは、ネットワーク上のサーバ等の装置による処理が行われることなく、撮像装置110側でローカルに実行可能な処理を示すリストである。なお、本実施形態では、統合処理リストは、第1処理リストに含まれる処理と第2処理リストに含まれる処理との和集合によって得られるリストであり、第1処理リストと第2処理リストとの少なくともいずれかに含まれる処理がリスト化されたものである。ただし、これに限られず、例えば、第1処理リストに含まれる処理と第2処理リストに含まれる処理とを組み合わせることによって別の処理を実行可能となる場合などに、その実行可能となる別の処理が統合処理リストに加えられてもよい。
【0037】
装着されたデバイスが所定のデバイスでない場合(S702でNO)、制御部304は、装着されたデバイスによって実行可能な処理がないと判定する。このため、制御部304は、記憶部303から読み出した自装置において実行可能な処理の第1処理リストを、撮像装置110側でローカルに実行可能な処理を示す統合処理リストとして(S705)、処理を終了する。なお、デバイスが抜去された際に図7の処理が実行されると、所定のデバイスが当然に装着されていないため、第1処理リストが統合処理リストとして扱われることとなる。
【0038】
これにより、特定の処理を実行可能な着脱可能デバイス100が撮像装置110に装着されているか否かに基づいて、撮像装置110側でローカルに実行可能な処理をリスト化することができる。また、この統合処理リストを後述のようにユーザに提示することにより、着脱可能デバイス100の装着によって撮像装置110側でローカルに実行可能となる処理を、ユーザが選択することができるようになる。
【0039】
(解析処理内容を決定する処理)
図8に、撮像装置110が解析処理内容を決定する処理の流れの例を示す。本処理では、撮像装置110側でローカルに実行可能な解析処理が入出力装置130を介してユーザに提示され、入出力装置130はユーザの選択を受け付ける。そして、撮像装置110は、入出力装置130を介して受け付けられたユーザ選択を示す情報に応じて、実行する解析処理を決定する。
【0040】
本処理では、まず、入出力装置130が、撮像装置110との通信を実行し、撮影画像と統合処理リストと後処理リストとの取得を要求する(S801)。入出力装置130は、一例として、ONVIF規格で規定された要求メッセージを撮像装置110へ送信することによって、撮像装置110へ情報の送信を要求する。ただし、これに限られず、他のメッセージ等によって情報の送信要求が行われてもよい。撮像装置110は、この要求に基づいて、撮像制御部301が周囲の環境を撮影し、制御部304が信号処理部302を制御して、撮像制御部301によって撮影された画像を処理して、撮影画像を取得する(S802)。なお、撮像装置110は、要求の有無によらず周囲の環境を撮影して、撮影画像を取得し続けていてもよい。撮像装置110は、撮影画像をローカルに保存していてもよいし、ネットワークサーバ等の他装置に撮影画像を転送して保存させてもよい。制御部304は、記憶部303に記憶されている後処理リストを読み出す。後処理リストは、本実施形態では表示処理及び保存処理を含むものとするが、これに限られない。制御部304は、ネットワーク通信部307を制御して、後処理リストと、図7の処理によって取得した統合処理リストと、S802で取得した撮影画像とを入出力装置130へ送信する(S803)。撮像装置110は、一例として、上述のONVIF規格で規定された要求メッセージに対する応答メッセージを入出力装置130へ送信することによって、入出力装置130へ情報を送信する。ただし、これに限られず、他のメッセージ等によって情報の送信が行われてもよい。なお、ここでは、実行する処理のみが考慮されてもよく、S801の入出力装置130による撮影画像の要求、S802における撮影画像の取得、及びS803の入出力装置130への撮影画像の送信は行われなくてもよい。
【0041】
入出力装置130は、撮像装置110から撮影画像と統合処理リストと後処理リストを受信する。そして、入出力装置130は、画面表示等によって、統合処理リストと後処理リストをユーザに提示する(S804)。なお、入出力装置130は、このときに、併せて撮影画像を画面表示等によってユーザに提示してもよい。その後、ユーザは、表示された統合処理リストと後処理リストを確認し、実行すべき解析処理(以下では、「実行対象処理」と呼ぶ。)を統合処理リストの中から選択する(S805)。また、ユーザは、実行すべき後処理(以降、実行対象後処理)を選択する(S806)。入出力装置130は、実行対象処理と実行対象後処理の選択結果を示す情報を撮像装置110へ送信する(S807)。
【0042】
撮像装置110の制御部304は、ネットワーク通信部307を制御して、入出力装置130からユーザによって選択された実行対象処理を示す情報を受信すると、その実行対象処理が第2処理リストに含まれている処理であるか否かを判定する(S808)。そして、制御部304は、実行対象処理が第2処理リストに含まれない場合(S808でNO)には、撮像装置110内で処理を実行するため、着脱可能デバイス100への通知等を行うことなく図8の処理を終了する。一方、制御部304は、実行対象処理が第2処理リストに含まれる場合(S808でYES)、デバイス通信部306を制御して、実行対象処理の設定要求を着脱可能デバイス100に送信する(S809)。
【0043】
着脱可能デバイス100の通信部502は、実行対象処理の設定要求を撮像装置110から受信する。通信部502は、撮像装置110から受信した実行対象処理の設定要求を、解析部501に出力する。解析部501は、通信部502から入力された実行対象処理の設定要求に基づいて、記憶部503から実行対象処理の設定を取得して、着脱可能デバイス100が実行対象処理を実行可能な状態となるようにするための設定を実行する(S810)。通信部502は、例えば設定処理が完了した後に、設定完了通知を撮像装置110へ送信する(S811)。なお、通信部502は、着脱可能デバイス100の設定が完了していないタイミングで撮像装置110がデータを書き込まないようにするための情報を通知すれば足り、設定が実際に完了する前に設定完了タイミングの情報等を撮像装置110に通知してもよい。撮像装置110の制御部304は、デバイス通信部306を制御して、着脱可能デバイス100から設定完了通知を受信する。
【0044】
着脱可能デバイス100からの撮像装置110への設定完了の通知は、例えば、以下の3つ方法のうちのいずれかを用いて実行されうる。1つ目の通知方法では、通信部502が、撮像装置110からの1ブロック目のデータの書き込み処理時に、実行対象処理の設定が終了していない場合に、BUSY信号を出力するようにする。BUSY信号の出力は、例えば、SD規格で定められているDATAの信号ラインをLow状態にドライブしておくことにより行われる。この場合、撮像装置110は、BUSY信号を確認することにより、実行対象処理の設定が完了したか否かを判別することができる。2つ目の通知方法では、実行対象処理の設定完了までの時間を上述の特定のアドレスに事前に格納しておき、撮像装置110がその設定完了までの時間の情報を読み出すようにする。撮像装置110は、実行対象処理の設定完了までの時間が経過した後に、書き込みデータの出力(ライトコマンドの発行)を行う。これにより、撮像装置110は、実行対象処理の設定が完了した後に撮影画像のデータを送信することが可能となる。3つ目の通知方法では、解析部501が、実行対象処理の設定が完了した際に、着脱可能デバイス100の第2の特定のアドレスに設定完了のフラグを書き込む。撮像装置110は、この第2の特定のアドレスのデータを読み出すことにより、実行対象処理の設定が完了したか否かを判別することができる。なお、設定完了のフラグが書き込まれるアドレスの情報は、上述の特定のアドレスに格納されてもよいし、別のアドレスに格納されてもよい。
【0045】
(解析処理の実行制御)
図9に、撮像装置110が解析処理を実行する際の制御の流れの例を示す。本処理では、まず、撮像制御部301が周囲の環境を撮影する(S901)。制御部304は、信号処理部302を制御して、撮像制御部301によって撮影された画像の処理を行い、撮影画像を取得する。その後、制御部304は、解析部305を制御して、制御部304から入力された撮影画像に対して解析前処理を実行し、解析前処理結果の画像を取得する(S902)。そして、制御部304は、実行対象処理が第2処理リストに含まれるかを判定する(S903)。
【0046】
制御部304は、実行対象処理が第2処理リストに含まれないと判定した場合(S903でNO)、解析部305を制御して、撮像装置110内で解析前処理結果の画像に対する実行対象処理を実行する(S904)。そして、制御部304は、解析部305を制御して、解析処理結果に対する解析後処理を実行し(S913)、処理を終了する。
【0047】
制御部304は、実行対象処理が第2処理リストに含まれている場合(S903でYES)、デバイス通信部306を制御して、着脱可能デバイス100に対して、実行対象処理の実行要求から処理の完了までの時間である解析処理時間を要求する(S905)。なお、以下では解析処理時間を「処理時間」と呼ぶ場合がある。そして、着脱可能デバイス100の通信部502は、処理時間の要求を受信したことに応じて、記憶部503から読み出した処理時間の情報を撮像装置110に送信する(S906)。なお、本実施形態では、例えば、S702において着脱可能デバイス100が所定のデバイスであるかを判定するために制御部304がアクセスしたアドレスに、処理時間の情報が記憶されうる。なお、記憶部503の別のアドレスに処理時間の情報が記憶されていてもよい。撮像装置110の制御部304は、例えば、処理時間の情報が記憶されているアドレスに対する読み出し要求(リードコマンド)を送出して、それに対するレスポンスとして、処理時間の情報を取得しうる。処理時間の情報は、処理ごとに記憶され、撮像装置110によって指定された実行対象処理に対応付けられた処理時間が撮像装置110に通知される。
【0048】
また、例えば、処理時間は、動作周波数fと、(例えば位相同期回路(PLL)による)逓倍値kと解析処理が要求されてから終了するまでのクロックサイクル数Nとの積N/(f×k)として算出されてもよい。一例において、動作周波数fが5MHz、kが2、Nが10万とすると、105/(5×106×2)=10-2[秒]となり、処理時間が10ミリ秒と算出される。制御部304は、記憶部503に記憶された情報を読み出すことにより、又は、ハードウェアの演算処理部203から、例えばその性能を示す情報として、動作周波数の情報を取得しうる。なお、着脱可能デバイス100の演算処理部412の動作周波数の情報が、例えばS906において、又は、例えば、着脱可能デバイス100が撮像装置110に装着された際に、撮像装置110に通知されるようにしてもよい。また、制御部304は、記憶部503に記憶された情報を読み出すことにより、又は、例えば着脱可能デバイス100のハードウェアの位相同期回路から、例えばその性能を示す情報として、逓倍値を取得しうる。解析処理のクロックサイクル数は、例えば、解析処理と対応付けられて記憶部503に記憶され、制御部304は、記憶部503から、実行対象処理に対応するクロックサイクル数を取得しうる。このように、S906では、実行対象処理の処理時間を特定可能な任意の形式の情報が、着脱可能デバイス100から撮像装置110へ通知される。
【0049】
また、1つ以上の分割画像が着脱可能デバイス100に入力されて、その1つ以上の分割画像を一括して用いて所定の解析処理が実行される場合、分割画像ごとの処理時間を特定可能な情報が、着脱可能デバイス100から撮像装置110へ通知されてもよい。例えば、着脱可能デバイス100から撮像装置110へ、1つの分割画像についての処理時間としてTという値が通知されうる。この場合、撮像装置110は、分割画像の数dと、通知された処理時間Tとを乗算したdTを、全体の処理が完了するまでの時間として特定しうる。なお、一括して処理される1つ以上の分割画像は、撮影によって取得された画像の一部または全部でありうる。すなわち、撮影によって取得された画像の一部を構成する1つ以上の分割画像について一括して処理が行われてもよいし、取得された画像の全部を構成する複数の分割画像について一括して処理が行われてもよい。この場合、一括処理の対象となる分割画像の枚数が、上述の分割画像の数dとして特定される。また、例えば、分割画像ごとの処理の後に、処理の結果を統合する処理等が行われる場合、その統合等の処理の時間T0がさらに着脱可能デバイス100から撮像装置110へ通知されてもよい。この場合、撮像装置110は、例えば、全体の処理が完了するまでの時間をdT+T0と特定することができる。また、各分割画像についての処理や統合等の処理のそれぞれについてのクロックサイクル数の情報が通知されてもよい。なお、複数の処理が連続して実行される場合、例えば、その複数の処理のそれぞれが完了するまでの処理時間が特定可能な情報が撮像装置110に通知されてもよいし、その複数の処理の全体を完了するまでの処理時間が撮像装置110に通知されてもよい。いずれの場合であっても、撮像装置110は、着脱可能デバイス100によって実行される処理の全体が完了するまでの処理時間を特定可能な情報を取得する。そして、撮像装置110は、必要に応じて計算を実行し、処理時間を特定する。
【0050】
その後、制御部304は、デバイス通信部306を制御して、解析前処理結果を着脱可能デバイス100に送信する(S907)。例えば、制御部304は、解析前処理結果の書き込み要求(ライトコマンド)を発行することにより、着脱可能デバイス100へ解析前処理結果の画像を送信する。そして、制御部304は、デバイス通信部306を制御して、実行対象処理の要求を着脱可能デバイス100へ送信する(S908)。そして、撮像装置110において、制御部304は、着脱可能デバイス100から取得した情報に基づいて特定した処理時間の長さだけ、処理を停止して待機する(S909)。一方、着脱可能デバイス100において、通信部502が、S907において受信した解析前処理結果の画像を解析部501に出力し、解析部501は、その画像に対して、図8のS810において設定された実行対象処理を実行する(S910)。解析部501は、例えば、記憶部503において処理ごとに割り当てられたアドレスに、処理結果を記憶させる。
【0051】
制御部304は、処理時間の経過後、処理を再開する。そして、制御部304は、デバイス通信部306を制御して、着脱可能デバイス100に解析処理結果を要求し(S911)、着脱可能デバイス100の通信部502は、その結果を示す情報を撮像装置110へ通知する(S912)。例えば、制御部304は、デバイス通信部306を制御して、解析処理結果が記憶されているアドレスに対して読み出し要求(リードコマンド)を発行して、そのアドレスに記憶されている処理結果の情報を取得する。その後、撮像装置110の制御部304は、デバイス通信部306を制御して、着脱可能デバイス100から解析処理結果を受信する。その後、制御部304は、解析部305を制御して、解析処理結果に対して解析後処理を実行する(S913)。
【0052】
(後処理の実行制御)
図10に、撮像装置110が後処理を実行する際の制御の流れの例を示す。本処理では、撮像装置110の制御部304が、実行対象の後処理に「表示」が含まれるか否かを判定する(S1001)。制御部304は、実行対象の後処理に表示が含まれると判定した場合(S1001でYES)、ネットワーク通信部307を制御して、解析処理の結果を入出力装置130へ送信する(S1002)。入出力装置130は、撮像装置110から解析処理の結果を受信すると、解析処理の結果を画面表示等によってユーザに提示する(S1003)。一方、制御部304が実行対象の後処理に表示が含まれないと判定した場合(S1001でNO)、S1002及びS1003の処理は実行されない。
【0053】
また、撮像装置110の制御部304は、実行対象の後処理に「保存」が含まれるか否かの判定を行う(S1004)。なお、S1004の判定は、S1001の前に実行されてもよいし、S1001と並行して実行されてもよい。制御部304は、実行対象の後処理に保存が含まれると判定した場合(S1004でYES)、記憶部303を制御して、解析処理の結果を記憶し、処理を終了する。一方、制御部304は、実行対象の後処理に保存が含まれないと判定した場合(S1004でNO)は、S1005の処理を実行せずに処理を終了する。
【0054】
このように、撮像装置110は、選択された後処理に応じて、解析処理の結果の入出力装置130への転送や記憶部303への格納を、ユーザによる特段の設定操作を受け付けることなく実行することができる。
【0055】
本実施形態では、上述のように、撮像装置110が、着脱可能デバイス100に解析処理の一部または全部を実行させる際に、それらの処理の実行要求をしてから処理が完了するまでの処理時間を(必要に応じて計算等を実行することにより)取得する。そして、撮像装置110は、その処理のための画像データ(前処理結果)を入力して処理の実行を要求してから、取得した処理時間が経過するまで待機し、その後に処理結果を読み出す。このようにすることで、着脱可能デバイス100が処理の終了後に自動的に処理結果を出力することができない構成において、撮像装置110が、適切なタイミングで処理結果を取得することができる。これにより、例えば処理の完了直後(又は処理完了後の十分に小さい時間の経過後)に処理結果の読み出し処理が行われるため、撮像装置110と着脱可能デバイス100が協働して実行する処理の高速化を図ることができる。また、撮像装置110が、処理が完了する前に処理結果の取得を試行することを防ぎ、不必要なメモリアクセスを防ぐことができる。
【0056】
なお、本実施形態では、処理の要求から、処理が完了するまでの時間を処理時間としたが、例えば、分割画像に対する前処理結果などの処理対象データが入力されたタイミングを起点として、そこから処理完了までの経過時間を処理時間としてもよい。この場合、例えば、S908の処理の実行要求を送受信する処理は行われなくてもよく、処理対象のデータが入力されたことによって解析処理が自動で開始される。撮像装置110は、処理対象のデータを着脱可能デバイス100へ送信し、その送信の完了から、処理時間の間だけ待機して、その後、処理結果を読み出すようにしうる。これによれば、処理の実行指示の送受信が省略されることにより、コマンドの送受信回数を低減し、処理の効率を向上させることができる。なお、この形態では、処理対象のデータの書き込みコマンドが、処理の実行要求として用いられている、と言える。すなわち、処理対象の書き込みコマンドと別個に処理の実行要求コマンドが発行されてもよいし、処理対象の書き込みコマンドが処理の実行要求コマンドと兼用されてもよい。また、コマンドのタイミング以外に、着脱可能デバイス100において処理が実際に開始されるタイミングを起点として、そこから処理完了までの経過時間を処理時間としてもよい。このように、処理の開始に関連付けて任意に定められたタイミングから処理の完了までの経過時間を、処理時間としうる。
【0057】
また、本実施形態では、撮像装置110が、着脱可能デバイス100に処理を開始させることを契機として、その処理に関する処理時間を取得するようにしたが、これに限られない。例えば、着脱可能デバイス100が撮像装置110に装着された際に、例えばS702で着脱可能デバイス100が所定のデバイスであるかの判定のために撮像装置110が読み出す情報に、この処理時間を特定可能な情報を含めてもよい。これによれば、着脱可能デバイス100が装着された際に1回だけ情報が読み出されればよくなるため、コマンドの送受信回数を低減し、処理の効率を向上させることができる。
【0058】
また、上述の実施形態において、解析処理として画像解析処理を例に挙げて説明したが、本発明は音声解析処理にも適用可能である。例えば、悲鳴や、銃声、ガラス破壊音のような音声パターンを検知する処理に適応可能である。例えば、スペクトル解析等の種々の音声データの分析手法で音声の特徴量が抽出され、それを検出した音声パターンと比較される。そして、その一致度合いが算出されることで、特定の音声パターンを検出することができる。
【0059】
また、音声解析処理を行う場合は、音声データを所定の時間分の音声データに分割し、その所定の時間分の音声データを単位として音声解析処理を行う。また、この所定の時間は、検出対象の音声パターンに応じて、適宜、異なる。そのため、着脱可能デバイス100に、検知したい音声パターンに対応する時間分ごとの音声データが入力される。そして、着脱可能デバイス100は、その入力された音声データを解析する機能や、入力された音声データを保持する機能を有する。
【0060】
また、上述の実施形態において、撮像装置110から入力されたデータを非一時的に格納可能な着脱可能デバイス100を例として説明した。しかし、一部の実施形態においては、撮像装置110から入力されたデータを非一時的に格納することができない着脱可能デバイス100であってもよい。つまり、着脱可能デバイス100は撮像装置110から入力されたデータに対して解析処理を行うのみで、そのデータを非一時的に記憶しなくてもよい。言い換えると、通常のSDカードのようにデータを保管する目的ではなく、解析処理のみを目的とした着脱可能デバイス100とすることも可能である。
【0061】
<変形例>
上述の実施形態では、撮像装置110が、着脱可能デバイス100における処理時間を事前に取得することができる場合に、着脱可能デバイス100に処理を実行させる際の効率を改善する手法について説明した。一方で、例えば電圧低下や撮像装置110が配置された環境などの要因などにより、着脱可能デバイス100における実際の処理時間が取得した処理時間よりも長くなる可能性がありうる。そして、実際の処理時間が長くなってしまった場合、撮像装置110は、実行対象処理が完了する前に、着脱可能デバイス100に対して処理結果の取得を試行してしまいうる。これに対し、本変形例では、実際の処理時間が取得した処理時間よりも長くなった場合に、実行対象処理が完了した後で処理結果の取得が行われるようにする。この手法について、以下、説明する。
【0062】
本実施形態に係る着脱可能デバイス100のハードウェア構成例を図11に示す。図11に示すように、本実施形態では、演算処理部412が、単一または複数の演算実行部1101と、単一または複数のRAM1102とを含む。また、着脱可能デバイス100の実行可能な各処理は、例えば、複数の部分処理の組み合わせによって構成されうる。ここで、例えば、複数の演算実行部1101の少なくとも一部がそれぞれ別個の部分処理を実行するような回路によって構成されうる。なお、一部の演算実行部1101が、共通の部分処理を、それぞれ異なるデータに対して並列して実行するように構成されてもよい。複数の演算実行部1101は、相互に接続されてもよいし、例えば、一時記録用のRAMへと接続されてもよい。それぞれの部分処理は、実行対象処理の中での処理順序(その部分処理が何番目の処理であるか)を示すインデクスと、実行する演算の種類を示すコマンドと、実行する演算の係数を示す重みとに関連付けられる。この場合、部分処理に関連付けられたインデクスとコマンドと重みは記憶部404に格納されて、RAM1102に展開される。演算実行部1101は、RAM1102にアクセスし、演算のコマンドを取得することによって、対応した部分処理を実行することができる。ただし、これに限られず、例えば、部分処理のインデクスが存在しなくてもよい。この場合、演算のコマンドや重みが、処理される順序に従って、RAM1102に展開されうる。
【0063】
(撮像装置110と着脱可能デバイス100との間の通信)
ここで、撮像装置110と着脱可能デバイス100との通信について説明する。撮像装置110の演算処理部203と着脱可能デバイス100のSDコントローラ403は、撮像装置110のSD I/F部205のデバイス挿入用ソケットを介し、電源ライン、GNDライン、クロックライン、コマンドライン、データラインで接続される。なお、クロックライン、コマンドライン、及び、データラインは、FPGA402を経由する形で接続されるものとする。クロックラインでは、演算処理部203から出力される同期用のクロックが通信される。コマンドラインでは、演算処理部203からSDコントローラ403への動作要求用に発行するコマンド、コマンドに対するSDコントローラ403から演算処理部203へのレスポンスが通信される。データラインでは、演算処理部203からの書き込みデータ、着脱可能デバイス100からの読み出しデータが通信される。また、演算処理部203は、SD I/F部205のデバイス挿入用ソケットのデバイスディテクト信号のHighとLowを判別することにより、着脱可能デバイス100が挿入されているか否かを認識することができる。
【0064】
演算処理部203は、SDコントローラ403に対して電源供給後にコマンドライン上でコマンドを発行する。そして、演算処理部203は、SDコントローラ403からのレスポンスと、SDカードとしてのデバイス情報を示す出力データを受信したことに応じて、データの通信用の電圧、通信速度(クロック周波数)等の設定を行う。
【0065】
図12に、コマンドライン上で通信されるコマンドとレスポンスの構成例を示す。これらのコマンドとレスポンスはSD規格に従う構成を有する。演算処理部203からSDコントローラ403に対して発行されるコマンド1201は、コマンドナンバー部1204と、コマンド引数部1205と、誤り訂正用データ部1206とを含んで構成される。コマンドナンバー部1204には、コマンドの種別を示す値が記述される。例えば、コマンドナンバー部1204に値「23」が格納されている場合、そのコマンドがデータブロック数を指定するブロック数指定コマンドであることが示される。また、コマンドナンバー部1204に値「25」が格納されている場合、そのコマンドがマルチライトコマンドであることが示され、コマンドナンバー部1204に値「12」が格納されている場合、そのコマンドがデータ転送停止コマンドであることが示される。コマンド引数部1205では、コマンドの種別に応じて転送データブロック数、メモリの書き込み・読み出しアドレス等の情報が指定される。また、コマンドの最初のビットには、コマンドの開始位置を示すコマンドスタートビット1202が付加され、コマンドの最後のビットにはコマンドの終了を示すコマンドエンドビット1207が付加される。また、コマンドスタートビット1202の後ろに、撮像装置110から着脱可能デバイス100に対して出力された信号であることを示すディレクションビット1203も付加される。
【0066】
演算処理部203からのコマンドに対してSDコントローラ403から返されるレスポンス1211は、どのコマンドに対するレスポンスかを示すレスポンスナンバー部1214と、レスポンス引数部1215と、誤り訂正用データ部1216とを含む。また、レスポンスの最初のビットにはレスポンスの開始位置を示すレスポンススタートビット1212が付加され、レスポンスの最後のビットにはレスポンスの終了位置を示すレスポンスエンドビット1217が付加される。また、レスポンススタートビット1212の後ろに着脱可能デバイス100から撮像装置110に対して出力された信号であることを示すディレクションビット1213も付加される。レスポンス引数部1215には、コマンド種別に応じてSDカードのステータス等の情報が格納される。
【0067】
次に、演算処理部203と着脱可能デバイス100とのデータの送受信の方法を説明する。SD I/F部205では、データの書き込み及び読み出し共にブロック単位でデータの転送が行われる。
【0068】
演算処理部203が着脱可能デバイス100に対して複数ブロックのデータを転送する方法は以下の2つの方法がある。1つ目の方法では、転送データのブロック数指定コマンドによってブロック数が指定された後に、マルチライトコマンドにより、指定されたブロック数だけデータが転送される。ブロック数指定コマンドでは、コマンド引数部1205において書き込みデータのブロック数が指定され、マルチライトコマンドでは、コマンド引数部1205においてデータが書き込まれるべき記憶部404のアドレスが指定される。2つ目の方法では、ブロック数指定コマンドが発行されることなくマルチライトコマンドが発行されることにより、データ転送が開始され、データ転送が終わった時点で転送停止コマンドが発行されることによって処理が終了する。このとき、マルチライトコマンドのコマンド引数部1205において、データが書き込まれるべき記憶部404のアドレスのみが指定される。演算処理部203は2つの書き込み方法を任意に切り替えることが可能である。
【0069】
なお、記憶処理が行われる場合、FPGA402は、演算処理部203から送られるコマンドとデータをそのままSDコントローラ403に入力し、SDコントローラ403は、受信したデータをコマンドで指定された記憶部404のアドレスに格納する。画像解析処理が行われる場合には、FPGA402は、演算処理部203から送られるデータに対して解析処理を実行し、その処理結果のデータと、記憶部404の所定のアドレスを指定する情報を、SDコントローラ403に出力する。SDコントローラ403は、指定された記憶部のアドレスに処理結果を格納する。
【0070】
演算処理部203は着脱可能デバイス100から複数ブロックのデータを読み出す方法は以下の2つの方法がある。1つ目の方法では、ブロック数指定コマンドでブロック数が指定されてからマルチリードコマンドが発行され、指定されたブロック数だけデータが読み出される。ブロック数指定コマンドでは、コマンド引数部1205において読み出しデータのブロック数が指定され、マルチリードコマンドのコマンド引数部1205においてデータの読み出し元のメモリのアドレスが指定される。2つ目の方法では、ブロック数指定コマンドが発行されることなくマルチリードコマンドが発行されることにより、データの読み出しが開始され、転送停止コマンドが発行されることによって処理が終了する。演算処理部203は2つの読み出し方法を任意に切り替えることが可能である。
【0071】
なお、書き込みデータ、読み出しデータが1ブロックの場合には、シングルライトコマンド、シングルリードコマンドが発行されることにより、ブロック数指定コマンド、転送停止コマンドが発行されることなく、データの書き込み、読み出しが実行されうる。シングルライトコマンド、シングルリードコマンドにおいても、上述の説明と同様に、コマンド引数部1205において、アクセス対象の記憶部404のアドレスが指定される。
【0072】
演算処理部203は、着脱可能デバイス100に対して書き込みを行うことにより、記憶処理または画像解析処理の対象となるデータを着脱可能デバイス100へ送信することができる。また、演算処理部203は、着脱可能デバイス100に対して読み出しを行うことにより、記憶部404に記憶された画像データ、画像解析処理の処理結果、着脱可能デバイス100が保有する画像解析の処理機能の情報を取得することができる。
【0073】
本変形例では、S911において撮像装置110が着脱可能デバイス100に処理結果を要求した場合に、その処理が完了していない場合にも、着脱可能デバイス100から撮像装置110へ効率的に処理結果が通知されるようにする。本処理では、着脱可能デバイス100は、処理結果の要求を受信した際に処理が完了していない場合、処理の状態を撮像装置110へ通知し、撮像装置110は、その処理の状態に応じて一定時間だけ待機した後に再度処理結果を要求するようにする。処理が未完了の際には着脱可能デバイス100の処理の状態を考慮して待ち時間が設定されるため、次に処理結果を要求した場合にその処理が完了していない状態となる確率を低下させながら、不必要に長時間の待機をすることを防ぐことができる。以下では、この処理の流れの例について、図13を用いて説明する。
【0074】
本処理では、まず、撮像装置110は、制御部304がデバイス通信部306を制御して、着脱可能デバイス100に処理結果を要求する(S1301)。着脱可能デバイス100は、通信部502を用いてこの処理結果を受信すると、解析部501において実行対象処理を完了したか否かを判定する(S1302)。着脱可能デバイス100は、解析部501が実行対象処理を完了したと判定した場合(S1302でYES)、通信部502を用いて、処理結果を撮像装置110へ通知し(S1303)、処理を終了する。一方、着脱可能デバイス100は、解析部501が実行対象処理を完了していないと判定した場合(S1302でNO)、通信部502を用いて解析部501による処理の実行状況を示す処理状態の情報を撮像装置110へ通知する(S1304)。撮像装置110は、着脱可能デバイス100から取得した処理状態の情報に基づいて、残処理時間を計算し、その残処理時間だけ待機する(S1305)。そして、撮像装置110は、その残処理時間の経過後に、再度、着脱可能デバイス100に処理結果を要求する(S1301)。この時点で、S1304で通知された処理状態から処理完了までに要すると想定される時間が経過している。このため、撮像装置110は、この処理結果の再要求により、十分に高い確率で、着脱可能デバイス100から処理結果を取得することができるようになる。
【0075】
なお、処理状態の情報は、例えば、解析部501が実行中の部分処理のインデクスでありうる。ただし、これに限られず、処理状態の情報は、処理の進捗状況を特定可能な他の形式の情報であってもよい。例えば、部分処理に関連する情報が、RAM1102に展開されるため、処理状態の情報として、演算実行部1101がアクセスしているRAM1102のアドレスの値が用いられてもよい。また、例えば、処理状態の情報は、実行対象処理が完了したか否かを示す情報であってもよい。また、処理状態の情報は、例えば、残処理時間を示す値を含んでもよい。すなわち、着脱可能デバイス100が現在実行中の処理の残処理時間を特定可能に構成され、着脱可能デバイス100は、処理状態の情報として、その特定した残処理時間を撮像装置110へ通知するようにしてもよい。
【0076】
本変形例の着脱可能デバイス100による処理状態の通知は、処理結果の要求コマンドに対するレスポンスのデータ領域のうち、SD規格で予約領域とされている部分を用いて行われうる。ただしこれに限られず、例えば、処理結果の要求コマンドに対するデータライン上の応答において、処理結果を示す情報の前に処理状態の情報が含められてもよい。すなわち、処理結果の要求コマンドに対する応答として、処理が完了しているか否かによらず、処理状態の情報が送信されるようにしうる。この場合、着脱可能デバイス100から送信されるデータにおいて、処理結果が格納される領域が所定のサイズの領域としてあらかじめ用意される。そして、撮像装置110は、着脱可能デバイス100から受信したデータのうち、末尾から所定のサイズのデータを処理結果として扱い、それ以外のデータを処理状態として扱いうる。また、処理結果の要求コマンドに対するデータライン上の応答において、処理結果を示す情報の後に処理状態の情報が含められてもよい。なお、処理結果が格納される領域には、処理が完了していない場合にはすべてゼロなどの無効な値が含められうる。また、撮像装置110は、着脱可能デバイス100から受信したデータのうち、所定のパターンより前のデータを処理状態として扱い、所定のパターンより後のデータを処理結果として扱ってもよい。
【0077】
また、本変形例では、撮像装置110は、解析部501が実行中の部分処理のインデクス全部分処理数、処理の開始後に経過した経過時間とによって、残処理時間を計算しうる。例えば、部分処理がN個存在し、そのN個の部分処理に、実行順にそれぞれ0~N-1のインデクスが割り当てられているとする。すなわち、最初にインデクス0の部分処理が実行され、次にインデクス1の部分処理が実行され、その次にインデクス2の部分処理が実行され、・・・、最後にインデクスN-1の処理が実行される。このとき、処理状態の情報として、インデクスnが通知されたものとする。この場合、インデクスnの部分処理も実行中であり、インデクス0~n-1のn個の部分処理が完了した状態である。ここで経過時間をTとすると、経過時間Tに対してn個の部分処理が完了しているため、部分処理1つあたりに要する時間の期待値はT/nとなる。そして、全部分処理数がN個であるため、N×(T/n)が、全部分処理が終了するまでの時間であると推定される。そして、撮像装置110は、この全部分処理が終了するまでの時間から、処理開始後からの経過時間Tを減じた(N/n-1)×Tを残処理時間として算出しうる。ここで、着脱可能デバイス100は部分処理の全数を記憶しておき、撮像装置110は、着脱可能デバイス100からその部分処理の全数の情報を取得しうる。なお、残処理時間は、例えば着脱可能デバイス100において演算実行部1101がRAM1102にアクセスして上述のような計算を実行し、撮像装置110が着脱可能デバイス100からその計算の結果を取得するようにしてもよい。

【0078】
また、処理状態の情報が、演算実行部1101がアクセスしているRAM1102のアドレスの値である場合、残処理時間は、演算実行部1101がアクセスしているRAM1102のアドレス値に基づいて特定されうる。例えば、実行対象処理のデータが記憶されている記憶部404の範囲が事前に定められ、最初の部分処理の情報がその範囲内の一番先頭アドレスから一定範囲(例えばサイズSの範囲)に記憶されるものとする。そして、次の処理が、その最初の部分処理の情報が記憶されている範囲の直後の一定範囲(サイズSの範囲)に記憶され、その次の処理がその一定範囲の直後に記憶され、・・・最後の部分処理の情報がその範囲内の一番末尾の一定範囲に記憶される。このように、実行対象処理のデータのサイズは、そのデータが記憶されている記憶部404の範囲に対応しうる。このとき、例えば先頭アドレスがAであり、実行対象処理のデータのサイズがK×Sであり、処理状態の情報としてA+k×Sが指定されているものとする。この場合、全体の部分処理がK個存在し、k番目(インデクスがk-1)の部分処理までが完了していることが特定されうる。このため、残処理時間は、処理が開始した後の経過時間をTとすると、上述の場合と同様に、(K/k-1)×Tとなる。この計算は、アドレスに基づく計算((K×S)/(k×S)-1)×Tと等価である。なお、k×Sは、処理状態の情報として通知されるアドレスA+k×Sから、実行対象処理に関するデータが記憶される範囲の先頭アドレスAを減じた値として特定されうる。このように、現在実行中の部分処理に関連付けられた情報が記憶されている領域を指定するアドレスの情報に基づいて、残処理時間が算出されうる。
【0079】
また、残処理時間は、例えば、処理状態によらず、経過時間Tと一定の係数との積として特定されてもよい。ここで、この係数は例えば1未満に事前設定される。なお、上述の残処理時間の計算方法のそれぞれにおいて、経過時間Tに代えて、S906において着脱可能デバイス100から撮像装置110へ通知された処理時間が用いられてもよい。
【0080】
本変形例では、上述のように、撮像装置110が着脱可能デバイス100に処理結果を要求した際に、着脱可能デバイス100は、処理が完了している場合には処理結果を、処理が完了していない場合には処理状態の情報を、撮像装置110へ通知する。そして、撮像装置110は、処理状態の情報によって処理が未完了であることが示されている場合に、残処理時間を特定して、その残処理時間だけ待機する。そして、撮像装置110は、残処理時間だけ待機した後に、処理結果の要求を再度実行する。これにより、着脱可能デバイス100が処理の終了後に自動的に(能動的に)処理結果を出力することができない構成において、撮像装置110が、適切なタイミングで処理結果を取得することができる。これにより、例えば処理の完了直後(又は処理完了後の十分に小さい時間の経過後)に処理結果の読み出し処理が行われるため、撮像装置110と着脱可能デバイス100が協働して実行する処理の高速化を図ることができる。
【0081】
なお、本変形例では、実行対象処理が完了していない場合、撮像装置110が着脱可能デバイス100に解析処理結果を要求した際に、処理状態の情報を撮像装置110へ通知する例を示したが、これに限られない。例えば、撮像装置110は、着脱可能デバイス100に解析処理結果を要求する前に処理状態の情報を要求してもよい。着脱可能デバイス100は、処理状態の情報が要求された場合には、処理状態の情報を撮像装置110へ通知する。その後、実行対象処理が完了した状態であることを処理状態の情報が示す場合、撮像装置110は、着脱可能デバイス100に処理結果を要求し、着脱可能デバイス100は、撮像装置110に処理結果を通知する。また、実行対象処理が完了していない状態であることを処理状態の情報が示す場合、撮像装置110は、例えば上述のようにして算出された期間だけ待機する。そして、撮像装置110は、待機後に、着脱可能デバイス100に対して処理状態を再度要求し、着脱可能デバイス100は、撮像装置110に処理状態を再度通知しうる。
【0082】
なお、撮像装置110は、実行対象処理が完了したことを示す処理状態の情報を取得しない限りは、算出した時間だけ待機してから、処理結果を要求することを繰り返す。ただし、これに限られず、例えば、所定期間にわたって処理が進んでいない場合などには、撮像装置110は、エラーが発生したと判定してもよい。例えば、撮像装置110は、複数回連続して実行中の部分処理を示すインデクスに変化がない場合に、エラーが発生したと判定しうる。また、撮像装置110は、例えば、上述のようにして算出した待機時間の長さが所定時間長を超える場合には、エラーが発生したと判定してもよい。これにより、着脱可能デバイス100において、例えば処理がループするなど、処理が終わらない状態となっている場合に、撮像装置110がエラー状態に陥っていることを特定することが可能となる。
【0083】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0084】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0085】
100a~100d:着脱可能デバイス、110a~110d:撮像装置、120:ネットワーク、130:入出力装置、201:撮像部、202:画像処理部、203:演算処理部、204:配信部、205:SD I/F部、301:撮像制御部、302:信号処理部、303:記憶部、304:制御部、305:解析部、306:デバイス通信部、307:ネットワーク通信部、401:I/F部、402:FPGA、403:SDコントローラ、404:記憶部、501:解析部、502:通信部、503:記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13