(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-20
(45)【発行日】2024-02-29
(54)【発明の名称】デバイス、撮像装置、制御方法及びプログラム
(51)【国際特許分類】
H04N 7/18 20060101AFI20240221BHJP
H04N 5/77 20060101ALI20240221BHJP
H04N 5/765 20060101ALI20240221BHJP
【FI】
H04N7/18 D
H04N7/18 U
H04N5/77 200
H04N5/765
(21)【出願番号】P 2019171851
(22)【出願日】2019-09-20
【審査請求日】2022-08-10
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】福永 健太朗
【審査官】佐野 潤一
(56)【参考文献】
【文献】特開2006-019932(JP,A)
【文献】特開平07-184098(JP,A)
【文献】特開2003-024272(JP,A)
【文献】特開平06-276471(JP,A)
【文献】特開2007-013252(JP,A)
【文献】特開2012-178129(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/18
H04N 5/76
H04N 23/60
(57)【特許請求の範囲】
【請求項1】
所定の規格に準拠し、デバイスを装着する装着機構を有する撮像装置に着脱可能な前記デバイスであって、
前記撮像装置によって撮像された画像に基づく画像データに対して画像解析処理を実行する処理手段と、
所定の規格に従って、前記画像データを前記撮像装置が前記デバイスへ出力するためのコマンドと、前記画像データとを前記撮像装置から取得する取得手段と、
少なくとも前記撮像装置によって撮像された画像を記憶可能な記憶手段と、
前記画像解析処理に関連付けられた所定の値が含まれる前記コマンドが前記取得手段により取得された場合に、前記処理手段に前記画像データに対する前記画像解析処理を実行させるように制御し、前記画像解析処理に関連付けられた所定の値が含まれる前記コマンドが前記取得手段により取得されない場合に、前記処理手段
に前記画像データに対する前記画像解析処理
を実行させずに前記画像データを前記記憶手段に記憶させるように制御する制御手段と、
を有することを特徴とするデバイス。
【請求項2】
前記制御手段は、前記画像解析処理に関連付けられた値として前記記憶手段における前記画像解析処理の結果の格納先を指定する値が含まれる前記コマンドが前記取得手段により取得された場合に、前記処理手段に前記画像データに対する前記画像解析処理を実行させるように制御する、ことを特徴とする請求項
1に記載のデバイス。
【請求項3】
前記制御手段は、
前記画像解析処理に関連付けられた値としてデータのブロック数を示す値が含まれる前記コマンドが前記取得手段により取得された場合に、前記処理手段に前記画像データに対する前記画像解析処理を実行させるように制御し、
前記データのブロック数を示す値が含まれる前記コマンドが前記取得手段により取得されない場合に、前記処理手段による前記画像データに対する前記画像解析処理が実行されないように制御する、ことを特徴とする請求項1
又は2に記載のデバイス。
【請求項4】
前記制御手段は、
前記取得手段により取得された前記コマンドに含まれる前記データのブロック数を示す値と、前記画像解析処理が実行される際のデータ量とが一致する場合に、前記処理手段に前記画像データに対する前記画像解析処理を実行させるように制御し、
前記取得手段により取得された前記コマンドに含まれる前記データのブロック数を示す値と、前記画像解析処理が実行される際のデータ量とが一致しない場合に、前記処理手段による前記画像データに対する前記画像解析処理が実行されないように制御する、ことを特徴とする請求項
3に記載のデバイス。
【請求項5】
前記制御手段は、
前記データのブロック数を示す値が含まれる前記コマンドが発行される第1のプロトコルに基づくコマンドが前記取得手段により取得された場合に、前記処理手段に前記画像データに対する前記画像解析処理を実行させるように制御し、
前記データのブロック数を示す値が含まれる前記コマンドが発行されない第2のプロトコルに基づくコマンドが前記取得手段により取得された場合に、前記処理手段による前記画像データに対する前記画像解析処理が実行されないように制御する、ことを特徴とする請求項
3又は
4に記載のデバイス。
【請求項6】
前記制御手段は、
第1の画像解析処理に関連付けられた第1の値が含まれる前記コマンドが前記取得手段により取得された場合に、前記処理手段に前記画像データに対する前記第1の画像解析処理を実行させるように制御し、
第2の画像解析処理に関連付けられた第2の値が含まれる前記コマンドが前記取得手段により取得された場合に、前記処理手段に前記画像データに対する前記第2の画像解析処理を実行させるように制御する、
ことを特徴とする請求項1から
5のいずれか1項に記載のデバイス。
【請求項7】
所定の規格に準拠するデバイスを着脱可能な装着機構を有する撮像装置であって、
撮像された画像に基づく画像データを生成する生成手段と、
所定の規格に従って、前記撮像装置が前記装着機構に装着された前記デバイスへ前記画像データを出力するためのコマンドと、前記画像データとを前記デバイスへ出力する出力手段と、
を有し、
前記出力手段は、前記デバイスが前記画像データに対して画像解析処理を実行することができる場合に、
前記画像データが前記画像解析処理の対象である場合に、前記画像解析処理に関連付けられた所定の値が含まれる前記コマンドを出力し、
前記画像データが前記画像解析処理の対象でない場合に、前記画像解析処理に関連付けられた所定の値が含まれ
ない前記コマンドを出力
する、
ことを特徴とする撮像装置。
【請求項8】
前記出力手段は、前記画像データが前記画像解析処理の対象である場合に、前記画像解析処理に関連付けられている値として、所定のデータのブロック数を示す値が含まれる前記コマンドを出力する、ことを特徴とする請求項
7に記載の撮像装置。
【請求項9】
前記出力手段は、前記画像データが前記画像解析処理の対象である場合に、前記画像解析処理に関連付けられている値として、前記デバイスの記憶手段における所定の情報の格納先を指定する値が含まれる前記コマンドを出力する、ことを特徴とする請求項
7又は
8に記載の撮像装置。
【請求項10】
前記出力手段は、
前記画像データが前記画像解析処理の対象である場合に、第1プロトコルに基づき、前記画像解析処理に関連付けられた値が含まれる前記コマンドを出力し、
前記画像データが前記画像解析処理の対象でない場合に、第2のプロトコルに基づき、前記画像解析処理に関連付けられた値が含まれ
ない前記コマンドを出力
する、
ことを特徴とする請求項
7から
9のいずれか1項に記載の撮像装置。
【請求項11】
前記出力手段は、
前記画像データが第1の画像解析処理の対象である場合に、前記第1の画像解析処理に関連付けられた第1の値が含まれる前記コマンドを出力し、
前記画像データが第2の画像解析処理の対象である場合に、前記第2の画像解析処理に関連付けられた第2の値が含まれる前記コマンドを出力する、
ことを特徴とする請求項
7から1
0のいずれか1項に記載の撮像装置。
【請求項12】
所定の規格に準拠し、デバイスを装着する装着機構を有する撮像装置に着脱可能な前記デバイスであって、前記撮像装置によって撮像された画像に基づく画像データに対して画像解析処理を実行する処理手段
と、少なくとも前記撮像装置によって撮像された画像を記憶可能な記憶手段と、を有する前記デバイスによって実行される制御方法であって、
所定の規格に従って、前記画像データを前記撮像装置が前記デバイスへ出力するためのコマンドと、前記画像データとを前記撮像装置から取得する取得工程と、
前記画像解析処理に関連付けられた所定の値が含まれる前記コマンドが前記取得工程において取得された場合に、前記処理手段に前記画像データに対する前記画像解析処理を実行させるように制御し、前記画像解析処理に関連付けられた所定の値が含まれる前記コマンドが前記取得工程において取得されない場合に、前記処理手段
に前記画像データに対する前記画像解析処理
を実行させずに前記画像データを前記記憶手段に記憶させるように制御する制御工程と、
を有することを特徴とする制御方法。
【請求項13】
所定の規格に準拠するデバイスを着脱可能な装着機構を有する撮像装置によって実行される制御方法であって、
撮像された画像に基づく画像データを生成する生成工程と、
所定の規格に従って、前記撮像装置が前記装着機構に装着された前記デバイスへ前記画像データを出力するためのコマンドと、前記画像データとを前記デバイスへ出力する出力工程と、
を有し、
前記出力工程において、前記デバイスが前記画像データに対して画像解析処理を実行することができる場合に、
前記画像データが前記画像解析処理の対象である場合に、前記画像解析処理に関連付けられた所定の値が含まれる前記コマンドを出力し、
前記画像データが前記画像解析処理の対象でない場合に、前記画像解析処理に関連付けられた所定の値が含まれ
ない前記コマンドを出力
する、
ことを特徴とする制御方法。
【請求項14】
コンピュータを、請求項1から
6のいずれか1項に記載のデバイスとして機能させるためのプログラム。
【請求項15】
コンピュータを、請求項
7から
11のいずれか1項に記載の撮像装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、着脱可能デバイスの機能の選択的使用技術に関する。
【背景技術】
【0002】
近年、様々なシーンにおいて、監視カメラにより撮像された画像を用いて、物体の検出や追尾、属性の推定等を行う画像解析、そのような画像解析の結果に基づく物体数の推定等の画像処理が行われている。従来、このような画像処理は、実際の画像処理を実行するPCやサーバ等の高性能な演算装置に監視カメラの映像が転送されることによって行われてきた。これに対し、近年のモバイル用演算装置の処理能力の向上に伴い、監視カメラ側で画像処理を行うことが可能となってきている。カメラ側での処理は、例えば、カメラ本体に配置された演算装置によって実行されうる。また、USB等の着脱可能デバイスに演算装置を配置することによって、その着脱可能デバイスが処理の少なくとも一部を実行することもできる。特許文献1には、着脱可能デバイスを撮像装置に装着することによって、拡張機能を提供する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】J.Redmon、A.Farhadi、「YOLO9000:Better Faster Stronger」、Computer Vision and Pattern Recognition(CVPR) 2016
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の技術では、着脱可能デバイスは1つの処理を実行するものであり、異なる処理を実行するためには、装着されている着脱可能デバイスを抜去して、別の着脱可能デバイスが装着される必要がある。このため、2つ以上の処理を着脱可能デバイスに実行させる場合に利便性が低下してしまいうる。
【課題を解決するための手段】
【0006】
本発明は、2つ以上の処理を着脱可能デバイスに実行させる際の利便性を向上させる技術を提供する。
【0007】
本発明の一態様によるデバイスは、所定の規格に準拠し、デバイスを装着する装着機構を有する撮像装置に着脱可能な前記デバイスであって、前記撮像装置によって撮像された画像に基づく画像データに対して画像解析処理を実行する処理手段と、所定の規格に従って、前記画像データを前記撮像装置が前記デバイスへ出力するためのコマンドと、前記画像データとを前記撮像装置から取得する取得手段と、少なくとも前記撮像装置によって撮像された画像を記憶可能な記憶手段と、前記画像解析処理に関連付けられた所定の値が含まれる前記コマンドが前記取得手段により取得された場合に、前記処理手段に前記画像データに対する前記画像解析処理を実行させるように制御し、前記画像解析処理に関連付けられた所定の値が含まれる前記コマンドが前記取得手段により取得されない場合に、前記処理手段に前記画像データに対する前記画像解析処理を実行させずに前記画像データを前記記憶手段に記憶させるように制御する制御手段と、を有する。
【発明の効果】
【0008】
本発明によれば、2つ以上の処理を着脱可能デバイスに実行させる際の利便性を向上させることができる。
【図面の簡単な説明】
【0009】
【
図2】撮像装置のハードウェア構成例を示す図である。
【
図4】着脱可能デバイスのハードウェア構成例を示す図である。
【
図5】着脱可能デバイスの機能構成例を示す図である
【
図6】入出力装置のハードウェア構成例を示す図である。
【
図8】システムで実行される処理の流れの例を示す図である。
【
図9】解析処理を把握する処理の流れの例を示す図である。
【
図10】解析処理の内容を決定する処理の流れの例を示す図である。
【
図11】解析処理を実行する制御の流れの例を示す図である。
【
図12】後処理を実行する制御の流れの例を示す図である。
【
図13】コマンドとレスポンスの構造を示す図である。
【
図14】処理機能の情報を格納しているアドレス内のデータを概略的に示す図である。
【
図15】撮像装置が取得する情報の例を示す図である。
【
図16】記憶処理と画像解析処理とを自動で切り替える処理の流れの例を示す図である。
【
図17】記憶処理と画像解析処理とを自動で切り替える処理の流れの例を示す図である。
【
図18】記憶処理と画像解析処理とを自動で切り替える処理の流れの例を示す図である。
【
図19】ユーザインタフェースの例を示す図である。
【
図20】処理結果が示された状態のユーザインタフェースの例を示す図である。
【
図21】顔認証処理のための画像解析処理群と、各装置において実行可能な処理群を概略的に示す図である。
【
図22】使用される処理機能の選択処理の流れの例を示す図である。
【
図23】使用される処理機能の選択処理の流れの例を示す図である。
【
図24】使用される処理機能の選択処理の流れの例を示す図である。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0011】
<システム構成>
図1に、本実施形態の画像解析システムの構成例を示す。以下では、一例として、このシステムが特定人物追跡システムである場合について説明する。ただし、これに限られず、画像を解析して所定の情報出力を行う任意のシステムに、以下の議論を適用することができる。本システムは、撮像装置110a~110dと、ネットワーク120と、入出力装置130とを含んで構成される。なお、撮像装置110a~110dは、それぞれ、例えば撮像した画像を記録可能なデバイスを着脱可能なスロットを有し、そのスロットに着脱可能デバイス100a~100dが挿入されることにより、着脱可能デバイス100a~100dと接続される。なお、以下では、着脱可能デバイス100a~100dを「着脱可能デバイス100」と表記し、撮像装置110a~110dを「撮像装置110」と表記する。
【0012】
着脱可能デバイス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(フィールドプログラマブルゲートアレイ)によって実装されるが、それ以外の形式で実装されてもよい。
【0013】
撮像装置110は、ネットワークカメラ等の撮像装置である。本実施形態では、撮像装置110は、映像を処理することのできる演算装置を内蔵するものとするが、これに限られない。例えば、撮像装置110に接続されたPC(パーソナルコンピュータ)等の外部コンピュータが存在してもよく、これらの組み合わせを、撮像装置110として扱ってもよい。また、本実施形態では、全ての撮像装置110に、着脱可能デバイス100が装着されているものとする。なお、
図1では、4つの撮像装置110と、それぞれに装着された着脱可能デバイスとが示されているが、これらの装置の組み合わせの数は3つ以下であってもよいし、5つ以上であってもよい。撮像装置110に、画像解析処理機能を有する着脱可能デバイス100が装着されることにより、撮像装置110が画像解析処理機能を有しなくても、撮像装置110側で映像処理を実行することが可能となる。また、本実施形態のように撮像装置110に映像処理用の演算装置が配置された形態では、演算装置が配置された着脱可能デバイス100が撮像装置110に装着されることにより、撮像装置110側で実行可能な画像処理を多様化・高度化することができる。
【0014】
入出力装置130は、ユーザからの入力の受け付けや、ユーザへの情報の出力(例えば情報の表示)を行う装置である。本実施形態では、例えば入出力装置130は、PC等のコンピュータであり、そのコンピュータにインストールされたブラウザやネイティブアプリケーションによって、情報の入出力が行われる。
【0015】
撮像装置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は、例えば、独自の通信プロトコル等の他の通信プロトコルでの通信が可能なように構成されてもよい。
【0016】
<装置構成>
(撮像装置の構成)
続いて、撮像装置110の構成について説明する。
図2は、撮像装置110のハードウェア構成例を示す図である。撮像装置110は、そのハードウェア構成として、例えば、撮像部201、画像処理部202、演算処理部203、配信部204、SD I/F部205を含む。なお、I/Fは、インタフェースの略語である。
【0017】
撮像部201は、光を結像するためのレンズ部と、結像された光に応じたアナログ信号変換する撮像素子とを含んで構成される。レンズ部は、画角を調整するズーム機能や、光量の調整を行う絞り機能などを有する。撮像素子は、光をアナログ信号に変換する際の感度調整を行うゲイン機能を有する。これらの機能は、画像処理部202から通知された設定値に基づいて調整される。撮像部201によって取得されたアナログ信号は、アナログ-デジタル変換回路によってデジタル信号に変換され、画像信号として画像処理部202へ転送される。
【0018】
画像処理部202は、画像処理エンジンと、その周辺デバイス等を含んで構成される。周辺デバイスは、例えば、RAM(Random Access Memory)や、各I/Fのドライバ等を含む。画像処理部202では、撮像部201から取得した画像信号に対して、例えば、現像処理、フィルタ処理、センサ補正、ノイズ除去等の、画像処理を施して画像データを生成する。また、画像処理部202は、レンズ部や撮像素子へ設定値を送信し、適切露出画像を取得できるように、露出調整を実行しうる。画像処理部202において生成された画像データは、演算処理部203へ転送される。
【0019】
演算処理部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へ転送される。
【0020】
配信部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を通じて行われる。
【0021】
図3に、撮像装置110の機能構成例を示す。撮像装置110は、その機能として、例えば、撮像制御部301、信号処理部302、記憶部303、制御部304、解析部305、デバイス通信部306、及び、ネットワーク通信部307を含む。
【0022】
撮像制御部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の不図示の操作部を介して、ユーザにより選択された符号化方式を用いて、画像を符号化してもよい。
【0023】
記憶部303は、解析部305において実行可能な解析処理のリスト(以下では「第1処理リスト」と呼ぶ。)と、解析処理の結果に対する後処理のリストとを記憶する。また、記憶部303は、後述する解析処理の結果を記憶する。なお、本実施形態では、実行される処理が解析処理であるが、任意の処理が実行されてもよく、記憶部303は、その実行される処理に関連する処理について、第1処理リストと後処理のリストとを記憶するようにしうる。制御部304は、信号処理部302、記憶部303、解析部305、デバイス通信部306、ネットワーク通信部307を、それぞれが所定の処理を実行するように、制御する。
【0024】
解析部305は、撮影画像に対して、後述する解析前処理、解析処理、解析後処理の少なくともいずれかを選択的に実行する。解析前処理は、後述の解析処理を実行する前に、撮影画像に対して実行する処理である。本実施形態の解析前処理では、一例として、撮影画像を分割して分割画像を作成する処理が実行されるものとする。解析処理は、入力された画像を解析して得られる情報を出力する処理である。本実施形態の解析処理では、一例として、解析前処理によって得られた分割画像を入力として、人体検出処理、顔検出処理、車両検出処理の少なくともいずれかを実行し、解析処理結果を出力する処理が実行されるものとする。解析処理は、例えば非特許文献1の技術によって、画像に含まれるオブジェクトを検出できるように学習が行われた機械学習モデルを用いて、分割画像中のオブジェクトの位置を出力するように構成された処理でありうる。解析後処理は、解析処理が実行された後に実行される処理である。本実施形態の解析後処理では、一例として、各分割画像に対する解析処理結果に基づいて、各分割画像において検出されたオブジェクトの数を合計した値を処理結果として出力する処理が実行されるものとする。なお、解析処理は、パターンマッチングを行って画像中のオブジェクトを検出し、その位置を出力する処理であってもよい。
【0025】
デバイス通信部306は、着脱可能デバイス100との通信を行う。デバイス通信部306は、入力されたデータを着脱可能デバイス100が処理可能な形式に変換し、その変換によって得られたデータを着脱可能デバイス100に送信する。また、デバイス通信部306は、着脱可能デバイス100からデータを受信し、受信したデータを撮像装置110が処理可能な形式に変換する。本実施形態では、デバイス通信部306は、変換処理として、小数を浮動小数点形式と固定小数点形式との間で変換する処理を実行するものとするが、これに限られず、他の処理がデバイス通信部306によって実行されてもよい。また、本実施形態では、デバイス通信部306は、着脱可能デバイス100に対してSD規格の範囲内で事前に定められたコマンドシーケンスを送信し、着脱可能デバイス100からの応答を受信することで、着脱可能デバイス100との通信を行うものとする。ネットワーク通信部307は、ネットワーク120を介して、入出力装置130との通信を行う。
【0026】
(着脱可能デバイスの構成)
図4に、着脱可能デバイス100のハードウェア構成例を示す。着脱可能デバイス100は、一例として、I/F部401、FPGA402、SDコントローラ403、及び、を含んで構成される。着脱可能デバイス100は、撮像装置110が有するSD I/F部205の着脱ソケットに挿抜できる形状で、すなわちSD規格に則った形状で成形されるものとする。
【0027】
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を介して実行される。
【0028】
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に設定データを書き込んでもよい。
【0029】
入出力制御部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の処理内容を変更することができる場合、複数の処理機能を有する、と表現する。
【0030】
SDコントローラ403は、SD規格に定義されているような公知のコントロールIC(集積回路)であり、SDプロトコルのスレーブ動作の制御と、記憶部404に対するデータの読み書きの制御とを実行する。記憶部404は、例えばNAND型フラッシュメモリによって構成され、例えば、撮像装置110から書き込まれた記憶データ、演算処理部412に書き込まれる画像解析処理機能の情報、FPGA402の設定データ等の各種情報を記憶する。
【0031】
図5に、着脱可能デバイス100の機能構成例を示す。着脱可能デバイス100は、その機能構成として、例えば、解析部501及び通信部502を含む。解析部501は、画像に対する解析処理を実行する。解析部501は、例えば、解析処理設定要求を入力された場合に、入力された解析処理を実行可能な状態にするための設定を実行する。また、解析部501は、画像が入力された場合、その入力された画像に対して、実行可能な状態に設定された解析処理を実行する。本実施形態では、実行可能な解析処理は、人体検出処理と顔検出処理であるものとするが、これらに限られない。例えば、事前に記憶された人物が画像に含まれるか否かを判定する処理(後述する顔認証処理)であってもよい。例えば、事前に記憶された人物の画像特徴量と、入力された画像から検出された人物の画像特徴量との一致度合いが算出され、一致度合いが閾値以上の場合に事前に記憶された人物であると判定される。また、プライバシー保護を目的として。入力された画像から検出された人物に対して、所定のマスク画像を重畳したり、モザイク処理を施したりする処理であってもよい。また、人物の特定の行動を機械学習によって学習した学習モデルを用いて、画像中の人物が特定の行動を行っているかを検出する処理であってもよい。さらには、画像中の領域がどのような領域なのかを判定する処理であってもよい。例えば、建物や道路、人物、空等を機械学習によって学習した学習モデルを用いて、画像中の領域がどのような領域なのかを判定する処理であってもよい。以上のように、実行可能な解析処理は、機械学習を用いた画像解析処理にも、機械学習を用いない画像解析処理にも応用可能である。また、上記の各解析処理は、着脱可能デバイス100が単独で行うのではなく、撮像装置110と協働して実行してもよい。通信部502は、I/F部401を介して、撮像装置110との通信を行う。
【0032】
(入出力装置の構成)
図6に、入出力装置130のハードウェア構成例を示す。入出力装置130は、一般的なPC等のコンピュータとして構成され、例えば、
図6に示すように、CPU等のプロセッサ601、RAM602やROM603等のメモリ、HDD604等の記憶装置、及び、通信I/F605を含んで構成される。入出力装置130は、プロセッサ601が、メモリや記憶装置に格納されたプログラムを実行することにより、各種機能を実行することができる。
【0033】
図7に、本実施形態に係る入出力装置130の機能構成例を示す。入出力装置130は、その機能構成として、例えば、ネットワーク通信部701、制御部702、表示部703、及び操作部704を含む。ネットワーク通信部701は、例えばネットワーク120に接続し、ネットワーク120を介して撮像装置110等の外部装置との通信を実行する。なお、これは一例に過ぎず、例えば、ネットワーク通信部701は、撮像装置110と直接接続を確立して、ネットワーク120や他の装置を介さずに、撮像装置110と通信するように構成されてもよい。制御部702は、ネットワーク通信部701と表示部703と操作部704とがそれぞれの処理を実行するように、制御する。表示部703は、例えばディスプレイを介してユーザに情報を提示する。本実施形態では、ブラウザがレンダリングした結果をディスプレイに表示することによって、情報がユーザに提示される。なお、音声や振動等の画面表示以外の方法で情報が提示されてもよい。操作部704は、ユーザからの操作を受け付ける。本実施形態では、操作部704がマウスやキーボードであり、ユーザがこれらを操作して、ブラウザにユーザ操作を入力するものとする。ただし、これに限られず、操作部704は、例えば、タッチパネルやマイクなど、他のユーザの意図を検出することができる任意のデバイスであってもよい。
【0034】
<処理の流れ>
続いて、システム内で実行される処理の流れの例について説明する。なお、以下の各処理のうち撮像装置110が実行する処理は、例えば、演算処理部203内のプロセッサがメモリ等に記憶されたプログラムを実行することによって実現される。ただし、これは一例に過ぎず、後述の処理の一部又は全部が、専用のハードウェアによって実現されてもよい。また、着脱可能デバイス100や入出力装置130が実行する処理についても、各装置におけるプロセッサがメモリ等に記憶されたプログラムを実行することによって実現されてもよいし、処理の一部又は全部を、専用のハードウェアによって実現してもよい。
【0035】
(全体の流れ)
図8に、システムで実行される画像解析処理の一連の流れを概略的に示す。本処理では、まず、ユーザによって、撮像装置110に着脱可能デバイス100が装着される(S801)。撮像装置110は、着脱可能デバイス100の初期化シーケンスを実行する(S802)。この初期化シーケンスでは、撮像装置110と着脱可能デバイス100との間で所定のコマンドが送受信されることにより、撮像装置110が、着脱可能デバイス100を使用可能な状態となる。その後、撮像装置110は、着脱可能デバイス100が実行可能な処理を把握し、ローカルで実行可能な(撮像装置110単体で又は撮像装置110と着脱可能デバイス100の組み合わせで実行可能な)処理を把握する(S803)。なお、着脱可能デバイス100は、任意の処理を実行可能なように構成されうるが、撮像装置110側で実行されるべき処理と無関係な処理については考慮されなくてもよい。一例において、撮像装置110は、例えば入出力装置130から事前に取得した実行されうる処理のリストを保持しておいてもよい。この場合、撮像装置110は、着脱可能デバイス100が実行可能な処理を示す情報を着脱可能デバイス100から取得した際に、その処理がリストに含まれているか否かによって、実行されうる処理のみを把握することができる。続いて、撮像装置110は、実行する処理を決定し、必要に応じて着脱可能デバイス100の設定を実行する(S804)。すなわち、実行対象として決定された処理の少なくとも一部が着脱可能デバイス100によって実行される場合に、その処理のための着脱可能デバイス100の設定が実行される。この設定においては、例えば、実行対象の処理に対応する設定データを用いたFPGA402の再構成が行われうる。そして、撮像装置110または着脱可能デバイス100が、解析処理を実行する(S805)。その後、撮像装置110は、後処理を実行する(S806)。なお、S805とS806の処理は繰り返し実行される。
図8の処理は、例えば、着脱可能デバイス100が装着された際に実行されるが、例えば着脱可能デバイス100が取り外された際にも、S803の処理が再度実行されるようにするなど、
図8の処理の少なくとも一部が繰り返し実行されてもよい。
【0036】
(実行可能な処理を把握する処理)
図9に、撮像装置110が実行可能な処理を把握する処理の流れの例を示す。本処理は、
図8のS803の処理に対応し、着脱可能デバイス100等のデバイスが撮像装置110に装着された又は抜去された場合や、撮像装置110の電源がオンとなった際に実行されうる。本処理では、撮像装置110は、着脱可能デバイス100で実行可能な処理を読み出し、撮像装置110自身が実行可能な解析処理と統合し、撮像装置110側で実行可能な解析処理を把握する。
【0037】
まず、撮像装置110の制御部304は、記憶部303に記憶されている、撮像装置110自身の解析部305において実行可能な処理のリストである第1処理リストを読み出す(S901)。続いて、制御部304は、装着されたデバイスが、例えば従来の記憶機能のみを有するデバイスであるか、着脱可能デバイス100等の特定の処理機能を有する所定のデバイスであるかを判定する(S902)。例えば、制御部304は、デバイス通信部306を制御して、装着されたデバイスに対して、特定のアドレスへの読み出し要求(リードコマンド)を発行し、その特定のアドレスに格納されているフラグデータを読み出す。以下では、この特定のアドレスを「アドレスA」と呼ぶ場合がある。なお、アドレスAに格納されているデータの詳細については後述する。そして、制御部304は、読み出したフラグデータに基づいて、着脱可能デバイス100が特定の処理機能を有する所定のデバイスであるかを判定しうる。ただし、これは一例に過ぎず、他の方法によって、装着されたデバイスが所定のデバイスであるか否かが判定されてもよい。
【0038】
装着されたデバイスが所定のデバイスである場合(S902でYES)、制御部304は、そのデバイス(着脱可能デバイス100)において実行可能な処理を把握するための処理を実行する。制御部304は、デバイス通信部306を制御して着脱可能デバイス100と通信し、着脱可能デバイス100において実行可能な処理のリスト(以下では「第2処理リスト」と呼ぶ。)を取得する(S903)。制御部304は、例えば、着脱可能デバイス100が所定のデバイスか否かを判定した場合と同様に、アドレスAに格納されているデータを読み出すことにより、第2処理リストを取得しうる。なお、例えば、第2処理リストは、着脱可能デバイスが所定のデバイスであるか否かの判定を行うフラグデータと同一のアドレス(アドレスA)に格納されうる。この場合、撮像装置110は、そのアドレスAにアクセスすることにより、フラグデータと第2処理リストとを同時に取得して、S902の処理とS903の処理とを同時に実行することができる。ただし、これに限られず、これらのデータは、別のアドレスに格納されてもよい。その後、制御部304は、記憶部303から読み出した撮像装置110自身が実行可能な処理の第1処理リストと、着脱デバイスから取得した第2処理リストとが統合された統合処理リストを作成し(S904)、処理を終了する。
【0039】
この統合処理リストは、ネットワーク上のサーバ等の装置による処理が行われることなく、撮像装置110側でローカルに実行可能な処理を示すリストである。なお、本実施形態では、統合処理リストは、第1処理リストに含まれる処理と第2処理リストに含まれる処理との和集合によって得られるリストであり、第1処理リストと第2処理リストとの少なくともいずれかに含まれる処理がリスト化されたものである。ただし、これに限られず、例えば、第1処理リストに含まれる処理と第2処理リストに含まれる処理とを組み合わせることによって別の処理を実行可能となる場合などに、その実行可能となる別の処理が統合処理リストに加えられてもよい。すなわち、第1処理リストに含まれる処理の少なくとも一部と第2処理リストに含まれる処理の少なくとも一部とが共に利用される場合に、新たな解析処理が実行可能となる場合は、その解析処理の情報が統合処理リストに含められうる。例えば、顔認証処理は、顔検出処理機能と、顔特徴抽出処理機能と、顔特徴照合処理機能の機能群によって実現されうる。このとき、第1処理リストに顔検出処理機能と顔特徴抽出処理機能とが含まれ、第2処理リストに顔特徴照合処理機能が含まれているとすると、統合処理リストには、顔認証処理が含められうる。
【0040】
装着されたデバイスが所定のデバイスでない場合(S902でNO)、制御部304は、装着されたデバイスによって実行可能な処理がないと判定する。このため、制御部304は、記憶部303から読み出した自装置において実行可能な処理の第1処理リストを、撮像装置110側でローカルに実行可能な処理を示す統合処理リストとして(S905)、処理を終了する。なお、デバイスが抜去された際に
図9の処理が実行されると、所定のデバイスが当然に装着されていないため、第1処理リストが統合処理リストとして扱われることとなる。
【0041】
これにより、特定の処理を実行可能な着脱可能デバイス100が撮像装置110に装着されているか否かに基づいて、撮像装置110側でローカルに実行可能な処理をリスト化することができる。また、この統合処理リストを後述のようにユーザに提示することにより、着脱可能デバイス100の装着によって撮像装置110側でローカルに実行可能となる処理を、ユーザが選択することができるようになる。
【0042】
なお、本実施形態では、統合処理リストを生成する場合の例を示したが、第1処理リストと第2処理リストとが別個に管理され、統合処理リストが生成されなくてもよい。すなわち、着脱可能デバイス100で実行可能な処理と、着脱可能デバイス100を伴わずに撮像装置110で実行可能な処理とが区別可能に管理され、出力されてもよい。また、第1処理リストと第2処理リストが区別可能に管理される場合であっても、統合処理リストが生成され、管理されてもよい。例えば、第1処理リストに含まれる処理と第2処理リストに含まれる処理とが共に使用されることにより新たな処理を実行可能な場合に、その新たな処理は、第1処理リストと第2処理リストには含まれないが、統合処理リストに含まれることとなる。なお、統合処理リストが出力される場合、併せて、その統合処理リストに含まれる処理が第1処理リストと第2処理リストとのいずれに含まれる処理であるかを区別可能に示す情報が出力されうる。これにより、例えば提示された処理を着脱可能デバイス100なしで実行可能であるかをユーザが認識することができるようになる。
【0043】
なお、上述の処理リストは、後述のように、入出力装置130のような、少なくとも撮像装置110に含まれない外部装置に提供されるが、外部に提供されなくてもよい。例えば、撮像装置110がディスプレイを有する場合にそのディスプレイに処理リストが表示されることや、撮像装置110が音声出力機能を有する場合に処理リストが音声出力されることなどによって、処理リストが出力されてもよい。撮像装置110において処理リストが提示されることにより、意図しない機能を有する着脱可能デバイス100を撮像装置110に誤って装着させた場合等に、ユーザがその誤装着を迅速に認識することが可能となる。このように、撮像装置110は、撮像装置110が実行可能な処理を示す第1処理リストと着脱可能デバイス100が実行可能な処理を示す第2処理リストとに基づく情報を、任意の形式で出力しうる。
【0044】
また、撮像装置110は、着脱可能デバイス100が抜去された場合には、
図9の処理を再度実行することによって、統合処理リストを更新することができる。また、このとき、撮像装置110は、抜去された着脱可能デバイス100に関する第2処理リストを破棄しうる。ただし、これに限られず、撮像装置110は、ある着脱可能デバイス100についての第2処理リストを記憶部303に別途記憶しておき、その着脱可能デバイス100が装着されていない場合であっても、その第2処理リストを出力しうる。すなわち、撮像装置110は、過去に装着されて抜去された着脱可能デバイス100についての第2処理リストを出力するようにしてもよい。また、撮像装置110は、その過去に装着されて抜去された着脱可能デバイス100についての第2処理リストに含まれる処理と、第1処理リストに含まれる(自装置で実行可能な)処理とを用いて実行可能となる処理を示す情報を出力してもよい。換言すれば、撮像装置110は、自装置のみでは実行できない処理の情報を出力しうる。これによれば、ユーザに対して、出力された情報が示す処理を実行可能な着脱可能デバイス100が存在することと、その着脱可能デバイス100を装着することにより、その処理が実行可能となることを通知することができる。
【0045】
さらに、撮像装置110は、過去に自装置に装着されたことがないが、自装置に装着可能な他の着脱可能デバイス100(未装着デバイス)についての第2処理リストを出力するようにしてもよい。このような未装着デバイスとその未装着デバイスが実行可能な解析処理を示す情報は、例えば、撮像装置110が図示を省略する外部のサーバからネットワークを介して取得することができる。また、未装着デバイスとその未装着デバイスが実行可能な解析処理を示す情報は、例えば、撮像装置110が事前に保持していてもよい。
【0046】
また、撮像装置110は、未装着デバイスについての第2処理リストに含まれる処理と、第1処理リストに含まれる(自装置で実行可能な)処理とを用いて実行可能となる処理を示す情報を出力してもよい。換言すれば、撮像装置110は、自装置のみでは実行できない処理の情報を出力しうる。これによれば、ユーザに対して、出力された情報が示す処理を実行可能な着脱可能デバイス100が存在することと、その着脱可能デバイス100を装着することにより、その処理が実行可能となることを通知することができる。
【0047】
なお、撮像装置110は、過去に装着されて抜去された着脱可能デバイス100についての第2処理リストを記憶する際に、その着脱可能デバイス100の機種番号などのデバイスを特定可能な情報を併せて記憶しうる。そして、撮像装置110は、その着脱可能デバイス100に関する第2処理リストを出力する際に、その着脱可能デバイス100を特定可能な情報も併せて出力しうる。これによれば、ユーザが、提示された処理機能を使用するために、どの着脱可能デバイス100を撮像装置110に装着すればよいかを容易に認識することができるようになる。
【0048】
(解析処理内容を決定する処理)
図10に、撮像装置110が解析処理内容を決定する処理の流れの例を示す。本処理では、撮像装置110側でローカルに実行可能な解析処理が入出力装置130を介してユーザに提示され、入出力装置130はユーザの選択を受け付ける。そして、撮像装置110は、入出力装置130を介して受け付けられたユーザ選択を示す情報に応じて、実行する解析処理を決定する。
【0049】
本処理では、まず、入出力装置130の制御部702が、ネットワーク通信部701を制御して、撮像装置110との通信を実行し、撮影画像と統合処理リストと後処理リストとの取得を要求する(S1001)。入出力装置130は、一例として、ONVIF規格で規定された要求メッセージを撮像装置110へ送信することによって、撮像装置110へ情報の送信を要求する。ただし、これに限られず、他のメッセージ等によって情報の送信要求が行われてもよい。撮像装置110は、この要求に基づいて、撮像制御部301が周囲の環境を撮影し、制御部304が信号処理部302を制御して、撮像制御部301によって撮影された画像を処理して、撮影画像を取得する(S1002)。なお、撮像装置110は、要求の有無によらず周囲の環境を撮影して、撮影画像を取得し続けていてもよい。撮像装置110は、撮影画像をローカルに保存していてもよいし、ネットワークサーバ等の他装置に撮影画像を転送して保存させてもよい。制御部304は、記憶部303に記憶されている後処理リストを読み出す。後処理リストは、本実施形態では表示処理及び保存処理を含むものとするが、これに限られない。制御部304は、ネットワーク通信部307を制御して、後処理リストと、
図9の処理によって取得した統合処理リストと、S1002で取得した撮影画像とを入出力装置130へ送信する(S1003)。撮像装置110は、一例として、上述のONVIF規格で規定された要求メッセージに対する応答メッセージを入出力装置130へ送信することによって、入出力装置130へ情報を送信する。ただし、これに限られず、他のメッセージ等によって情報の送信が行われてもよい。なお、ここでは、実行する処理のみが考慮されてもよく、S1001の入出力装置130による撮影画像の要求、S1002における撮影画像の取得、及びS1003の入出力装置130への撮影画像の送信は行われなくてもよい。
【0050】
入出力装置130の制御部702は、ネットワーク通信部701を制御して、撮像装置110から撮影画像と統合処理リストと後処理リストを受信する。そして、制御部702は、表示部703を制御して、画面表示等によって、統合処理リストと後処理リストをユーザに提示する(S1004)。なお、制御部702は、このときに、併せて撮影画像を画面表示等によってユーザに提示してもよい。その後、ユーザは、表示部703によって表示された統合処理リストと後処理リストを確認し、操作部704を介して、実行すべき解析処理(以下では、「実行対象処理」と呼ぶ。)を統合処理リストの中から選択する(S1005)。また、ユーザは、操作部704を介して、実行すべき後処理(以降、実行対象後処理)を選択する(S1006)。S1004のユーザに対する情報の提示、S1005のユーザによる解析処理の選択、S1006のユーザによる後処理の選択の詳細については後述する。操作部704は、実行対象処理と実行対象後処理の選択結果を、制御部702に出力する。制御部702は、ネットワーク通信部701を制御して、操作部704から入力された実行対象処理と実行対象後処理を示す情報を撮像装置110へ送信する(S1007)。
【0051】
撮像装置110の制御部304は、ネットワーク通信部307を制御して、入出力装置130からユーザによって選択された実行対象処理を示す情報を受信すると、その実行対象処理が第2処理リストに含まれている処理であるか否かを判定する(S1008)。そして、制御部304は、実行対象処理が第2処理リストに含まれない場合(S1008でNO)には、撮像装置110内で処理を実行するため、着脱可能デバイス100への通知等を行うことなく
図10の処理を終了する。一方、制御部304は、実行対象処理が第2処理リストに含まれる場合(S1008でYES)、デバイス通信部306を制御して、実行対象処理の設定要求を着脱可能デバイス100に送信する(S1009)。
【0052】
着脱可能デバイス100の通信部502は、実行対象処理の設定要求を撮像装置110から受信する。このとき、通信部502は、撮像装置110から書き込まれるデータ量や書き込みコマンドの種別によって実行対象処理の設定要求を判別しうる。この設定要求の判別方法の詳細については後述する。通信部502は、撮像装置110から受信した実行対象処理の設定要求を、解析部501に出力する。解析部501は、通信部502から入力された実行対象処理の設定要求に基づいて、着脱可能デバイス100が実行対象処理を実行可能な状態となるようにするための設定を実行する(S1010)。通信部502は、例えば設定処理が完了した後に、設定完了通知を撮像装置110へ送信する(S1011)。なお、通信部502は、着脱可能デバイス100の設定が完了していないタイミングで撮像装置110がデータを書き込まないようにするための情報を通知すれば足り、設定が実際に完了する前に設定完了タイミングの情報等を撮像装置110に通知してもよい。撮像装置110の制御部304は、デバイス通信部306を制御して、着脱可能デバイス100から設定完了通知を受信する。
【0053】
着脱可能デバイス100からの撮像装置110への設定完了の通知は、例えば、以下の3つ方法のうちのいずれかを用いて実行されうる。1つ目の通知方法では、通信部502が、撮像装置110からの1ブロック目のデータの書き込み処理時に、実行対象処理の設定が終了していない場合に、BUSY信号を出力するようにする。BUSY信号の出力は、例えば、SD規格で定められているDATAの信号ラインをLow状態にドライブしておくことにより行われる。この場合、撮像装置110は、BUSY信号を確認することにより、実行対象処理の設定が完了したか否かを判別することができる。2つ目の通知方法では、実行対象処理の設定完了までの時間を上述の特定のアドレスに事前に格納しておき、撮像装置110がその設定完了までの時間の情報を読み出すようにする。撮像装置110は、実行対象処理の設定完了までの時間が経過した後に、書き込みデータの出力(ライトコマンドの発行)を行う。これにより、撮像装置110は、実行対象処理の設定が完了した後に撮影画像のデータを送信することが可能となる。3つ目の通知方法では、解析部501が、実行対象処理の設定が完了した際に、着脱可能デバイス100の第2の特定のアドレスに設定完了のフラグを書き込む。撮像装置110は、この第2の特定のアドレスのデータを読み出すことにより、実行対象処理の設定が完了したか否かを判別することができる。なお、設定完了のフラグが書き込まれるアドレスの情報は、上述の特定のアドレスに格納されてもよいし、別のアドレスに格納されてもよい。
【0054】
図10の処理のように、特定の処理を実行可能な着脱可能デバイス100が撮像装置110に装着されたか否かによって定まる統合処理リストを用いることにより、撮像装置110側の状態を考慮して実行対象処理を適切に決定することができる。また、実行対象処理が着脱可能デバイス100で実行される処理を含む場合に着脱可能デバイス100の設定を自動で行うことにより、ユーザによる設定操作を行うことなく、ユーザが選択した処理を実行する準備を整えることができる。また、実行対象処理が着脱可能デバイス100で実行される処理を含まない場合に着脱可能デバイス100の設定を行わないことで、撮像装置110単体で処理を実行する場合に不必要に着脱可能デバイス100の設定が行われることを防ぐことができる。
【0055】
(解析処理の実行制御)
図11に、撮像装置110が解析処理を実行する際の制御の流れの例を示す。本処理では、まず、撮像制御部301が周囲の環境を撮影する(S1101)。制御部304は、信号処理部302を制御して、撮像制御部301によって撮影された画像の処理を行い、撮影画像を取得する。その後、制御部304は、解析部305を制御して、制御部304から入力された撮影画像に対して解析前処理を実行し、解析前処理結果の画像を取得する(S1102)。そして、制御部304は、実行対象処理が第2処理リストに含まれるかを判定する(S1103)。
【0056】
制御部304は、実行対象処理が第2処理リストに含まれないと判定した場合(S1103でNO)、解析部305を制御して、撮像装置110内で解析前処理結果の画像に対する実行対象処理を実行する(S1104)。そして、制御部304は、解析部305を制御して、解析処理結果に対する解析後処理を実行し(S1108)、処理を終了する。
【0057】
制御部304は、実行対象処理が第2処理リストに含まれている場合(S1103でYES)、デバイス通信部306を制御して、解析前処理結果の画像を着脱可能デバイス100に送信する(S1105)。例えば、制御部304は、解析前処理結果の書き込み要求(ライトコマンド)を発行することにより、着脱可能デバイス100へ解析前処理結果の画像を送信する。着脱可能デバイス100の通信部502は、解析前処理結果の画像を撮像装置110から受信し、撮像装置110から受信した画像を解析部501に出力する。解析部501は、通信部502から入力された画像に対して、
図10のS1010において設定された実行対象処理を実行する(S1106)。そして、通信部502は、解析部501による処理によって得られた解析処理結果を撮像装置110へ送信する(S1107)。撮像装置110の制御部304は、デバイス通信部306を制御して、着脱可能デバイス100から解析処理結果を受信する。その後、制御部304は、解析部305を制御して、解析処理結果に対して解析後処理を実行する(S1108)。
【0058】
着脱可能デバイス100から撮像装置110への解析処理結果の送信は、例えば以下のようにして行われる。着脱可能デバイス100の解析部501は、解析処理結果を実行対象処理ごとに割り当てられた解析処理結果の格納先アドレスに格納する。そして、撮像装置110は、例えば第2処理リストと共にアドレスAに格納された解析処理結果の格納アドレスを示す情報を読み出し、その格納アドレスに対する読み出し要求(リードコマンド)を発行する。着脱可能デバイス100は、通信部502を介して、解析処理結果の格納アドレスへの読み出し要求を受け取り、解析処理結果を撮像装置110に対して出力する。なお、撮像装置110は、例えばアドレスAに格納されている推定処理時間が経過した後に、解析処理結果の格納アドレスに対する読み出し要求を発行しうる。また、着脱可能デバイス100が、撮像装置110から送信された解析前処理結果の最後の1ブロックの書き込み要求から実行対象処理が終了するまでの間はBUSY信号を出力するようにしてもよい。この場合、撮像装置110は、BUSY信号を受信しなくなってから、解析処理結果の格納アドレスに対する読み出し要求を発行しうる。これにより、撮像装置110は、処理が終了した後に処理結果を取得することが可能となる。
【0059】
以上のような処理により、撮像装置110は、選択された実行対象処理に応じて、撮影画像を着脱可能デバイス100に転送するか否かを決定することができる。これにより、解析処理を撮像装置110が実行するか着脱可能デバイス100が実行するかをユーザが意識することなく、撮影画像の解析処理を実行することが可能となる。
【0060】
(後処理の実行制御)
図12に、撮像装置110が後処理を実行する際の制御の流れの例を示す。本処理では、撮像装置110の制御部304が、実行対象の後処理に「表示」が含まれるか否かを判定する(S1201)。制御部304は、実行対象の後処理に表示が含まれると判定した場合(S1201でYES)、ネットワーク通信部307を制御して、解析処理の結果を入出力装置130へ送信する(S1202)。入出力装置130の制御部702は、ネットワーク通信部701を制御して、撮像装置110から解析処理の結果を受信すると、表示部703を制御して、解析処理の結果を画面表示等によってユーザに提示する(S1203)。一方、制御部304が実行対象の後処理に表示が含まれないと判定した場合(S1201でNO)、S1202及びS1203の処理は実行されない。
【0061】
また、撮像装置110の制御部304は、実行対象の後処理に「保存」が含まれるか否かの判定を行う(S1204)。なお、S1204の判定は、S1201の前に実行されてもよいし、S1201と並行して実行されてもよい。制御部304は、実行対象の後処理に保存が含まれると判定した場合(S1204でYES)、記憶部303を制御して、解析処理の結果を記憶し、処理を終了する。一方、制御部304は、実行対象の後処理に保存が含まれないと判定した場合(S1204でNO)は、S1205の処理を実行せずに処理を終了する。
【0062】
このように、撮像装置110は、選択された後処理に応じて、解析処理の結果の入出力装置130への転送や記憶部303への格納を、ユーザによる特段の設定操作を受け付けることなく実行することができ、利便性を向上させることができる。
【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】
図13に、コマンドライン上で通信されるコマンドとレスポンスの構成例を示す。これらのコマンドとレスポンスはSD規格に従う構成を有する。演算処理部203からSDコントローラ403に対して発行されるコマンド1301は、コマンドナンバー部1304と、コマンド引数部1305と、誤り訂正用データ部1306とを含んで構成される。コマンドナンバー部1304には、コマンドの種別を示す値が記述される。例えば、コマンドナンバー部1304に値「23」が格納されている場合、そのコマンドがデータブロック数を指定するブロック数指定コマンドであることが示される。また、コマンドナンバー部1304に値「25」が格納されている場合、そのコマンドがマルチライトコマンドであることが示され、コマンドナンバー部1304に値「12」が格納されている場合、そのコマンドがデータ転送停止コマンドであることが示される。コマンド引数部1305では、コマンドの種別に応じて転送データブロック数、メモリの書き込み・読み出しアドレス等の情報が指定される。また、コマンドの最初のビットには、コマンドの開始位置を示すコマンドスタートビット1302が付加され、コマンドの最後のビットにはコマンドの終了を示すコマンドエンドビット1307が付加される。また、コマンドスタートビット1302の後ろに、撮像装置110から着脱可能デバイス100に対して出力された信号であることを示すディレクションビット1303も付加される。
【0066】
演算処理部203からのコマンドに対してSDコントローラ403から返されるレスポンス1311は、どのコマンドに対するレスポンスかを示すレスポンスナンバー部1314と、レスポンス引数部1315と、誤り訂正用データ部1316とを含む。また、レスポンスの最初のビットにはレスポンスの開始位置を示すレスポンススタートビット1312が付加され、レスポンスの最後のビットにはレスポンスの終了位置を示すレスポンスエンドビット1317が付加される。また、レスポンススタートビット1312の後ろに着脱可能デバイス100から撮像装置110に対して出力された信号であることを示すディレクションビット1313も付加される。レスポンス引数部1315には、コマンド種別に応じてSDカードのステータス等の情報が格納される。
【0067】
次に、演算処理部203と着脱可能デバイス100とのデータの送受信の方法を説明する。SD I/F部205では、データの書き込み及び読み出し共にブロック単位でデータの転送が行われる。
【0068】
演算処理部203が着脱可能デバイス100に対して複数ブロックのデータを転送する方法は以下の2つの方法がある。1つ目の方法では、転送データのブロック数指定コマンドによってブロック数が指定された後に、マルチライトコマンドにより、指定されたブロック数だけデータが転送される。ブロック数指定コマンドでは、コマンド引数部1305において書き込みデータのブロック数が指定され、マルチライトコマンドでは、コマンド引数部1305においてデータが書き込まれるべき記憶部404のアドレスが指定される。2つ目の方法では、ブロック数指定コマンドが発行されることなくマルチライトコマンドが発行されることにより、データ転送が開始され、データ転送が終わった時点で転送停止コマンドが発行されることによって処理が終了する。このとき、マルチライトコマンドのコマンド引数部1305において、データが書き込まれるべき記憶部404のアドレスのみが指定される。演算処理部203は2つの書き込み方法を任意に切り替えることが可能である。
【0069】
なお、記憶処理が行われる場合、FPGA402は、演算処理部203から送られるコマンドとデータをそのままSDコントローラ403に入力し、SDコントローラ403は、受信したデータをコマンドで指定された記憶部404のアドレスに格納する。画像解析処理が行われる場合には、FPGA402は、演算処理部203から送られるデータに対して解析処理を実行し、その処理結果のデータと、記憶部404の所定のアドレスを指定する情報を、SDコントローラ403に出力する。SDコントローラ403は、指定された記憶部のアドレスに処理結果を格納する。
【0070】
演算処理部203は着脱可能デバイス100から複数ブロックのデータを読み出す方法は以下の2つの方法がある。1つ目の方法では、ブロック数指定コマンドでブロック数が指定されてからマルチリードコマンドが発行され、指定されたブロック数だけデータが読み出される。ブロック数指定コマンドでは、コマンド引数部1305において読み出しデータのブロック数が指定され、マルチリードコマンドのコマンド引数部1305においてデータの読み出し元のメモリのアドレスが指定される。2つ目の方法では、ブロック数指定コマンドが発行されることなくマルチリードコマンドが発行されることにより、データの読み出しが開始され、転送停止コマンドが発行されることによって処理が終了する。演算処理部203は2つの読み出し方法を任意に切り替えることが可能である。
【0071】
なお、書き込みデータ、読み出しデータが1ブロックの場合には、シングルライトコマンド、シングルリードコマンドが発行されることにより、ブロック数指定コマンド、転送停止コマンドが発行されることなく、データの書き込み、読み出しが実行されうる。シングルライトコマンド、シングルリードコマンドにおいても、上述の説明と同様に、コマンド引数部1305において、アクセス対象の記憶部404のアドレスが指定される。
【0072】
演算処理部203は、着脱可能デバイス100に対して書き込みを行うことにより、記憶処理または画像解析処理の対象となるデータを着脱可能デバイス100へ送信することができる。また、演算処理部203は、着脱可能デバイス100に対して読み出しを行うことにより、記憶部404に記憶された画像データ、画像解析処理の処理結果、着脱可能デバイス100が保有する画像解析の処理機能の情報を取得することができる。
【0073】
本実施形態の着脱可能デバイス100は、記憶部404の特定のアドレスAに、自装置が有する処理機能の情報を格納する。撮像装置110の演算処理部203は、このアドレスAに対してマルチリードコマンド又はシングルリードコマンドを発行することにより、着脱可能デバイス100が有する処理機能の情報を確認することができる。ここでの処理機能の情報は、処理機能を保有しているか否か、処理が実行された場合に完了するまでの所要時間、処理結果のデータサイズ、処理結果が格納されるアドレス情報を含む。
図14に、この処理機能の情報の一例を示す。処理機能保有フラグ1401は、着脱可能デバイス100が画像解析処理機能を有していることを示している。撮像装置110は、処理機能保有フラグ1401を確認することにより、着脱可能デバイス100が画像解析処理機能を有しているか否かを判定する。処理機能分類1402は、着脱可能デバイス100が有している解析処理を示す。入力データサイズ1403及び処理データ数1404は、各々の処理機能のデータの入力仕様に関する情報を示す。また、推定処理時間1405は、データ入力から処理結果出力までに掛かる時間を示し、処理結果データ数1406は処理結果のデータ数を示す。また、処理結果格納アドレス1407は、記憶部404のどこに処理結果が格納されるかを示す。演算処理部203は、
図14に示すような記憶部404のアドレスAのデータを読み出すことにより、
図15に示すような処理機能テーブルを取得することができる。
【0074】
また、着脱可能デバイス100は、演算処理部203からアドレスAに対するリードコマンドが発行されない場合には、自装置が装着された機器が画像解析処理機能を使用しない機器であると判断する。この場合、着脱可能デバイス100は、転送されるデータに関しては記憶部404に対する記憶処理のみを実行するようにしうる。これにより、着脱可能デバイス100は、画像解析処理機能を必要としない機器に対しては、メモリデバイスとしてのみ機能することが可能となる。ここでは、記憶部404の特定のアドレスAに処理機能の情報を格納しておく方法を示したが、これに限定されない。例えば、着脱可能デバイス100の初期設定時に使用されるコマンドに対するレスポンスにおける、レスポンス引数部1315に、処理機能の情報を付加するようにしてもよい。
【0075】
なお、撮像装置110は、例えば、着脱可能デバイス100の初期化設定終了後に、記憶部404のアドレスAの読み出しを実行する。また、撮像装置110は、ソケットにおいてデバイスのディテクトがされなくなった場合に、読み込んだ情報を破棄する。撮像装置110は、情報の破棄の後にデバイスがソケットに挿入された場合、初期化設定終了後に再度アドレスAの値を読み出す。これにより、撮像装置110は、異なる着脱可能デバイスが挿入された場合に、その着脱可能デバイスの保有機能の情報を読み出し、設定することができる。
【0076】
(記憶処理と画像解析処理との切り替え制御)
続いて、着脱可能デバイス100が、記憶処理と画像解析処理とを自動で切り替える方法について説明する。この処理は、着脱可能デバイス100が、撮像装置110から受信した画像データをそのまま記憶するか、その画像データに画像解析処理を施すかの自動判定処理である。撮像装置110は、一例において、特殊なコマンドを送信することにより、着脱可能デバイス100に送信する画像データの記憶と、その画像データに対する画像解析処理とのいずれを着脱可能デバイス100に実行させるかを制御することができる。しかし、このような特殊なコマンドを規定するのは、着脱可能デバイス100が準拠している規格との関係上、容易ではない。このため、本実施形態では、以下のような方法により、特殊なコマンドを定義することなく、着脱可能デバイス100において実行される処理を切り替えることを可能とする。なお、以下の処理例では、SD規格に準拠した方法で撮像装置110と着脱可能デバイス100との間の通信が行われるものとするが、これに限られない。すなわち、着脱可能デバイス100が準拠する所定の規格に従うコマンド等を用いて、以下に説明する処理と同様の処理を実行可能である。
【0077】
[転送データ量に基づく制御]
図16は、着脱可能デバイス100へ転送されるデータブロック数によって、記憶処理と画像解析処理とを自動で切り替える制御の流れの例を示している。
【0078】
まず、撮像装置110の演算処理部203が着脱可能デバイス100に対して、SD規格に準拠したライトコマンドを発行し、データを転送する(S1601)。そして、着脱可能デバイス100のFPGA402は、演算処理部203から書き込まれるデータのブロック数が、画像解析処理が実行される際のデータ量と一致するか否かを判定する(S1602)。FPGA402は、ブロック数指定コマンドのコマンド引数部1305に記述されているデータブロック数を確認することによって、データのブロック数を特定することができる。また、FPGA402は、ブロック数指定コマンドが発行されない場合には、データ転送停止コマンドが発行されるまでに転送されるブロック数をカウントしておくことによって、データのブロック数を特定してもよい。
【0079】
演算処理部203から書き込まれるデータのブロック数が、画像解析処理が実行される際のデータ量と一致する場合(S1602でYES)は、FPGA402は、転送されたデータに対して画像解析処理を実行する(S1603)。そして、FPGA402は、処理結果を取得し(S1604)、SDコントローラ403に対してライトコマンドを発行して、解析処理の分類に応じた記憶部404の処理結果格納アドレス1407に、取得した処理結果を格納する(S1605)。一方、演算処理部203から書き込まれるデータのブロック数が、画像解析処理が実行される際のデータ量と一致しない場合(S1602でNO)は、転送データがそのまま記憶部404に記憶される(S1606)。例えば、FPGA402は、SDコントローラ403に対して演算処理部203が発行したライトコマンドと同様のコマンドを発行して、転送データをそのまま転送する。SDコントローラ403は、ライトコマンドで指定された記憶部404のアドレスに、転送データを格納する。
【0080】
着脱可能デバイス100は、
図14に示すような情報を記憶部404の特定のアドレスAに保持しており、例えば解析処理Aが実行される際の入力データ数が20ブロックであるべきことを認識している。このため、FPGA402は、演算処理部203から書き込まれるデータのブロック数が20ブロックの場合には解析処理Aを実行し、それ以外の場合は解析処理Aを実行しない。なお、FPGA402は、例えば演算処理部203から書き込まれるデータのブロック数が40ブロックの場合には解析処理Cを実行するなど、実行対象の解析処理を入力されるブロック数に応じて変更してもよい。
【0081】
[書き込みアドレスに基づく制御]
図17は、ライトコマンドのコマンド引数部1305で指定される書き込みアドレスに基づいて、記憶処理と画像解析処理とを切り替える制御の流れの例を示している。本処理においても、撮像装置110の演算処理部203は、SDコントローラ403に対してライトコマンドを発行する(S1701)。FPGA402は、コマンド引数部1305で指定され、記憶部404における情報の格納先を示す書き込みアドレスが、
図14で示される処理結果格納アドレス1407と一致するか否かを判定する(S1702)。FPGA402は、コマンド引数部1305で指定される書き込みアドレスが処理結果格納アドレス1407と一致する場合(S1702でYES)に、転送されるデータに対して、そのアドレスに対応する画像解析処理を実行する(S1703)。そして、FPGA402は、処理結果を取得し(S1704)、SDコントローラ403に対してライトコマンドを発行し、記憶部404の処理結果格納アドレス1407に取得した処理結果を格納する(S1705)。一方、FPGA402は、コマンド引数部1305で指定される書き込みアドレスが処理結果格納アドレス1407と一致しない場合(S1702でNO)は、転送データをそのまま記憶部404に記憶させる(S1706)。例えば、FPGA402は、SDコントローラ403に対して演算処理部203が発行したライトコマンドと同様のコマンドを発行して、転送データをそのまま転送する。SDコントローラ403は、ライトコマンドで指定された記憶部404のアドレスに、転送データを格納する。
【0082】
着脱可能デバイス100は、
図14に示すような情報を記憶部404の特定のアドレスAに保持しており、例えば解析処理Aが実行される際の解析結果格納アドレスが0xFFFFFFFFであるべきことを認識している。このため、FPGA402は、演算処理部203から取得したコマンドによって指定される書き込みアドレスが0xFFFFFFFFの場合には解析処理Aを実行し、それ以外の場合は解析処理Aを実行しない。なお、FPGA402は、例えば演算処理部203から取得したコマンドによって指定される書き込みアドレスが0xEEEEEEEEの場合には解析処理Cを実行するなど、実行対象の解析処理をコマンドで指定された書き込みアドレスに応じて変更してもよい。
【0083】
このように、着脱可能デバイス100は、演算処理部203から書き込まれるデータのブロック数や書き込み先アドレスに応じて、そのデータについて画像解析処理を行うか、そのまま格納するかを決定しうる。なお、着脱可能デバイス100は、演算処理部203から書き込まれるデータのブロック数と書き込み先アドレスとの組み合わせに応じて、そのデータについて画像解析処理を行うか、そのまま格納するかを決定してもよい。例えば、データのブロック数と書き込み先アドレスとの両方が、処理データ数1404と処理結果格納アドレス1407と一致する場合に、画像解析処理を実行するようにしてもよい。また、データのブロック数と書き込み先アドレスとの少なくともいずれかが、全ての画像解析処理についての処理データ数1404や処理結果格納アドレス1407と一致しない場合に、記憶処理を実行しうる。
【0084】
上述の処理により、画像解析処理を実行するか否かを示すための更なる手順を導入せずに、着脱可能デバイス100は、画像解析処理を実行すべきデータに画像解析処理を施し、格納すべきデータについては画像解析処理を実行せずに記憶することができる。これにより、システムの複雑化を防ぎ、また、さらなる手順を実行する必要がないため、画像解析処理を迅速に開始することができるようになる。
【0085】
なお、
図17の処理は、
図16の処理と組み合わせて実行されてもよい。すなわち、画像データのブロック数と、情報の格納先アドレスが、画像解析処理と関連付けられた値である場合に、その画像解析処理が実行されるようにしてもよい。
【0086】
なお、画像解析処理を行う場合には処理結果だけでなく、解析処理の対象となった転送データも、記憶部404の、処理結果格納アドレス1407とは異なる領域に併せて保存するようにしてもよい。また、上述の制御において、着脱可能デバイス100が複数の画像解析処理機能を有している場合、データの書き込みブロック数や、書き込みアドレスに応じて、実行する画像解析処理の種別を決定してもよい。例えば、データのブロック数や書き込み先アドレスが、複数の画像解析処理機能のうちのある画像解析処理についての処理データ数1404や処理結果格納アドレス1407と一致する場合に、その画像解析処理を実行するようにしうる。
【0087】
[コマンドに基づく制御]
図18は、コマンドによる記憶処理と画像解析処理とを切り替える制御の流れの例を示している。SD規格では、データの書き込み時のプロトコルとして、ブロック数指定コマンドを発行してからデータの書き込みを行う第1のプロトコルと、ブロック数指定コマンドを発行せずにデータの書き込みを行う第2のプロトコルがある。なお、第2のプロトコルでは、データの書き込みを終了する際に、データ転送停止コマンドが発行される。本処理例では、第1のプロトコルでデータが送信されたことに基づいて画像解析処理を実行するようにし、第2のプロトコルでデータが送信される場合には画像解析処理を実行せずに記憶部404に画像データを格納する記憶処理を実行するようにする。このため、着脱可能デバイス100のFPGA402は、画像データの送信のために、ブロック数指定コマンドが発行されたか否かによって、画像解析処理を実行するか否かを決定する。
【0088】
本処理でも、まず、撮像装置110の演算処理部203が、着脱可能デバイス100に対してライトコマンドを発行し、データを転送する(S1801)。ここで、着脱可能デバイス100のFPGA402は、ブロック数指定コマンドが発行されたか否かを判定する(S1802)。FPGA402は、ブロック数指定コマンドが発行されている場合(S1802でYES)には、転送されたデータに対して画像解析処理を実行し(S1803)、処理結果を取得する(S1804)。FPGA402は、
図14で示される解析処理の分類に応じた所定の処理結果格納アドレスを指定してSDコントローラ403にライトコマンドを発行することにより、処理結果のデータを記憶部404に格納する(S1805)。FPGA402は、ブロック数指定コマンドが発行されてない場合(S1802でNO)には、SDコントローラ403に対して演算処理部203から発行されたコマンドと同様のライトコマンドを発行する。そして、FPGA402は、転送されたデータをそのままSDコントローラ403に送信する。そして、SDコントローラ403は、FPGA402からのライトコマンドで指定された記憶部404のアドレスにデータを格納する(S1806)。
【0089】
なお、ブロック数指定コマンドは、他の所定のコマンドであってもよい。すなわち、画像解析処理を実行するトリガとなる所定のコマンドが事前に設定され、FPGA402は、その所定のコマンドを受信したことに少なくとも基づいて、入力される画像データに対して画像解析処理を実行する。また、使用されるプロトコルを特定可能な他の情報が用いられてもよい。なお、FPGA402は、例えば、所定のコマンドを受信した場合に、
図16や
図17の処理を実行して、入力される画像データに対して画像解析処理を実行するか否かを決定してもよい。
【0090】
このように、ブロック数指定コマンドなどのコマンドによって画像解析処理を実行すべきことが示されることで、撮像装置110が、SD規格に準拠したプロトコルの範囲で、着脱可能デバイス100が実行すべき処理を指示することができる。
【0091】
上述の処理の少なくとも一部は、画像データの送信のためのSD規格に準拠したコマンドが、FPGA402によって実行可能な画像解析処理に関連付けられた値を含んでいるか否かによって、その画像解析処理を実行するか否かを決定する処理であると言える。すなわち、
図16の処理は、コマンドナンバー部1304に「23」が格納され、かつ、コマンド引数部1305に所定のブロック数を示す値が格納されている場合に、画像解析処理が実行される。また、
図17の処理は、コマンド引数部1305に処理結果格納アドレスを示す値が格納されている場合に、画像解析処理が実行される。また、
図18の処理は、コマンドナンバー部1304に「23」が格納されている場合に、画像解析処理が実行される。このように、画像データが送信される際のコマンドの内容を画像解析処理に関連付けられた所定の値に設定することにより、SD規格に準拠したコマンドを用いて、FPGA402に画像解析処理と記憶処理のいずれを実行させるかを柔軟に制御することができる。
【0092】
(処理結果の読み出し)
続いて、撮像装置110による、着脱可能デバイス100に記憶された画像解析処理の処理結果の読み出し方法について説明する。演算処理部203は、着脱可能デバイス100に対して、
図14で示される処理結果格納アドレス1407を指定し、解析処理ごとの処理結果データ数1406の分だけ読み出すようにリードコマンドを発行する。SDコントローラ403は、FPGA402を介してリードコマンドを受信し、指定された記憶部404のアドレスに格納されている処理結果のデータを撮像装置110の演算処理部203に対して出力する。これにより、撮像装置110は、画像解析処理による処理結果を取得することができる。
【0093】
(情報のユーザへの提示及びユーザ選択の受け付け)
撮影画像と統合処理リスト及び後処理リストのユーザへの提示及びユーザ選択の受け付け方法の例について説明する。
図19は、表示部703を介した撮影画像と統合処理リスト及び後処理リストの画面表示の例を示している。この表示画面により、例えば、ユーザインタフェース1901が表示される。ユーザインタフェース1901は、例えば、撮影画像表示領域1902、統合処理リスト表示領域1903、及び、後処理リスト表示領域1904を含む。ユーザは、これらの領域を確認することにより、撮影画像と統合処理リスト及び後処理リストを把握することができる。
【0094】
なお、表示されるリストは、統合処理リストのみに限定されない。例えば、撮像装置110は、ある着脱可能デバイス100についての第2処理リストを記憶部303に記憶しておき、その着脱可能デバイス100が装着されていない場合であっても、記憶部303に記憶している第2処理リストを入出力装置130に送信しうる。すなわち、撮像装置110は、過去に装着された着脱可能デバイス100についての第2処理リストを出力するようにしてもよい。この場合、入出力装置130は、第2処理リストに含まれており、かつ、統合処理リストには含まれない解析処理を、着脱可能デバイス100が装着されることで可能になる解析処理として、グレーアウトして表示しうる。これにより、グレーアウトされた処理を実行可能とするために、ユーザに対して、着脱可能デバイス100を撮像装置110に装着することを促すことができる。また、例えば撮像装置110と着脱可能デバイス100とが同一の処理機能を有する場合には、これらを統合して1つの処理として表示しうる。この場合、撮像装置110は、撮像装置110と着脱可能デバイス100とのいずれでその処理を実行するかを決定しうる。この決定方法については後述する。
【0095】
なお、入出力装置130は、ユーザに表示する解析処理と後処理とがそれぞれ撮像装置110と着脱可能デバイス100とのいずれで処理されるのかを、ユーザが識別可能なように表示してもよい。例えば、撮像装置110は、統合処理リストを作成するときに、統合処理リストに含まれる各解析処理が第1処理リストと第2処理リストのいずれに含まれているかを示す情報を、統合処理リストに含める。入出力装置130は、統合処理リストに含まれる各解析処理が第1処理リストと第2処理リストのいずれに含まれているかを示す情報に応じて、各解析処理の文字色を変えて表示する。これにより、ユーザは、各処理が着脱可能デバイス100を抜去しても実行可能な処理であるか否かを確認することができる。なお、撮像装置110と着脱可能デバイス100とが同一の処理を実行可能であり、これらを1つにまとめて表示している場合は、撮像装置110に対応する文字色でこの処理を表示しうる。着脱可能デバイス100が抜去されても実行可能な処理だからである。ただし、これに限られず、撮像装置110と着脱可能デバイス100とのいずれでも実行可能な処理であることを示す文字色で処理が表示されてもよい。
【0096】
また、撮像装置110と着脱可能デバイス100とが協働することにより実行可能となる処理が統合処理リストに含まれる場合、その処理については協働が求められることを示す情報が統合処理リストに含まれてもよい。この場合、撮像装置110と着脱可能デバイス100とが協働することにより実現される処理については、さらなる別の文字色で表示されてもよい。例えば、顔認証処理は、顔検出処理機能と、顔特徴抽出処理機能と、顔特徴照合処理機能の機能群によって実現されうるが、撮像装置110が顔検出処理機能と顔特徴抽出処理機能とを有し、着脱可能デバイス100が顔特徴照合処理機能を有するものとする。この場合、ユーザインタフェース1901において、例えば、顔検出処理と顔特徴抽出処理とが青文字で表示され、顔特徴照合処理が赤文字で表示され、顔認証処理が緑文字で表示される。
【0097】
なお、文字色の変更は、各機能が、撮像装置110と着脱可能デバイス100とのいずれで実行されるか又はこれらが協働することによって実行されるかを区別して表示するための一態様に過ぎず、他の態様でこのような区別的表示が行われてもよい。例えば、各処理の背景色の変更などによって、その処理の実行主体が明示されてもよい。また、実行主体の違いが文字列によって示されてもよい。例えば、撮像装置110によって実行される処理を示す文字列の後に撮像装置110を表す文字列が付加され、着脱可能デバイス100によって実行される処理を示す文字列の後に着脱可能デバイス100を表す文字列が付加されうる。また、撮像装置110と着脱可能デバイス100とが協働することによって実現される処理を示す文字列には、撮像装置110と着脱可能デバイス100との協働を示す文字列が付加されうる。このように、撮像装置110は、第1処理リストに含まれる処理と第2処理リストに含まれる処理とを区別可能に示す情報を入出力装置130へ提供すことにより、入出力装置130の表示部703に、各処理の実行主体を区別可能に表示させることができる。また、撮像装置110に表示部が備えられている場合も、第1処理リストに含まれる処理と第2処理リストに含まれる処理とを区別可能に示す情報を用意することにより、各処理の実行主体を区別可能に表示することができる。すなわち、撮像装置110は、第1処理リストに含まれる処理と第2処理リストに含まれる処理とを区別可能に示す情報を出力することにより、任意の表示装置に、各処理の実行主体を区別可能に表示させることができる。
【0098】
ユーザは、ユーザインタフェース1901において、統合処理リスト表示領域1903に表示されている統合処理リストから、操作部704を介して実行対象処理を選択しうる。また、ユーザは、後処理リスト表示領域1904に表示されている処理リストから、操作部704を介して実行対象の後処理を選択しうる。例えば、
図19には、ユーザが、実行対象の解析処理として「顔検出」処理を選択し、実行対象の後処理として「表示」及び「保存」を選択した場合の例を示している。なお、本実施形態では、実行対象の処理が1つのみ選択される例を示しているが、これに限られない。ユーザが複数の実行対象の処理を選択可能なように構成されてもよい。例えば、「顔検出」に加え、「人体検出」と「車両検出」との少なくともいずれかが選択されてもよい。また、1つの処理が選択された場合に、他の処理が選択されないようにしてもよい。一例として、
図19の統合処理リスト表示領域1903において、「顔検出」が選択された状態で、「人体検出」が選択されると、「顔検出」の選択が解除されるようにしてもよい。また、
図19では、2つの後処理の両方が選択されている場合の例を示しているが、これらの一方のみを選択可能とするようにしてもよい。
【0099】
ユーザが実行対象の処理及び後処理を選択したことに基づいて、
図10のS1007において、その選択結果が撮像装置110へ通知される。また、入出力装置130の制御部702は、所定期間ごとにユーザ選択の状態を確認して、どの処理が実行対象として選択されているかに応じて、実行対象の処理を撮像装置110へ通知してもよい。すなわち、S1005~S1007の処理が定期的に実行されるようにしてもよいし、S1005及びS1006の選択が常時監視され、その選択状態が変化した場合にS1007の処理が実行されるようにしてもよい。
【0100】
図20に、実行対象処理として「顔検出」が選択され、実行対象後処理として「表示」が選択されている場合の、S1203における情報の表示方法の一例を示す。本例では、
図19のユーザインタフェース1901の画面に、顔検出処理によって検出された人数2001が、解析処理の結果として表示される。なお、
図20は一例に過ぎず、ユーザインタフェース1901とは別個に処理の結果が表示されてもよいし、ユーザインタフェース1901の中の別の領域に処理の結果が表示されてもよい。
【0101】
また、ユーザが選択した実行対象の処理及び後処理のそれぞれに対して、さらに優先度が設定されてもよい。例えば、撮像装置110の制御部304は、実行対象処理が複数で優先度が設定されている場合、実行対象の各処理について、設定されている優先度の順に
図11の処理(例えばS1103~S1107の処理)を実行する。なお、優先度に基づいて、撮像装置110側の計算リソースやネットワークリソースが割り振られてもよい。例えば、優先度の高い処理が、映像に対して第1の所定数フレームごとに実行され、優先度の低い処理が、その映像に対して、第1の所定数フレームより多い第2の所定数フレームごとに実行されてもよい。すなわち、処理が実行される頻度が優先度によって定められてもよい。また、優先度の高い処理の結果が入出力装置130へ送信される頻度が、優先度の低い処理の結果が入出力装置130へ送信される頻度より高くなるようにされてもよい。
【0102】
(撮像装置と着脱可能デバイスの処理分担を決定する処理)
複数の処理を組み合わせることによって所定の処理が実行可能となることがある。例えば、顔認証処理は、顔検出処理と顔特徴抽出処理と顔特徴照合処理の3つの処理が組み合わせられることにより実行可能となる。ここで、撮像装置110と着脱可能デバイス100とが、これらの3つの処理のうちの少なくともいずれかを実行可能である場合、これらの装置間で処理を分担して実行することができる。また、撮像装置110と着脱可能デバイス100は、例えば上述の3つの処理のうちの少なくともいずれかについて、処理の対象となるデータが取得された条件(例えば撮影条件)や、解析の対象等の、それぞれの条件に適した異なる処理機能が用意されうる。例えば、昼間に撮影された画像のための処理と、夜間に撮影された画像のための処理とのそれぞれのために、別個の処理機能が用意されてもよい。例えば、
図21に示すように、撮像装置110及び着脱可能デバイス100は、顔検出処理機能、顔特徴抽出処理機能、及び顔特徴照合処理機能を有し、顔認証処理を実行可能に構成されうる。なお、撮像装置110と着脱可能デバイス100とがそれぞれ有する機能は、同様の機能であっても、使用するのに適した条件等が異なりうる。また、
図21の着脱可能デバイス100が2つの顔特徴抽出処理機能を有するように、撮像装置110と着脱可能デバイス100は、同様の処理を実行可能な複数の処理機能を有してもよい。これにより、撮像装置110と着脱可能デバイス100との間で適切に処理を分担することにより、様々な条件等に適した処理を実行することが可能となる。
【0103】
なお、同じ処理を行う場合であっても、撮像装置110と着脱可能デバイス100では、構成が異なるため、それぞれにメリットとデメリットとが生じる。例えば、演算精度に関して、撮像装置110の演算処理部203の方がデータに対するビット幅が多いため有利であり、演算速度に関しては、FPGA402上の論理回路で演算するため有利でありうる。また、同じ処理を実行可能な複数の処理機能が存在する際に、撮像装置110による撮影の環境に基づいて、適切な処理機能が選択されることが有利である。このような事情に鑑み、着脱可能デバイス100が処理機能を有する場合に、その処理機能を実際に使用するか否かを適切に決定し、使用されるべき処理機能を適切に選択することが重要となる。このため、以下では、着脱可能デバイス100に処理を実行させるか、撮像装置110に処理を実行させるか、撮像装置110と着脱可能デバイス100とを協働させて処理を実行させるかを自動的に選択するための手法について説明する。また、例えば撮像装置110又は着脱可能デバイス100が、同一の処理を実行可能な複数の処理機能を有する場合に、その複数の処理機能のうちのいずれを使用するか等、使用されるべき処理機能を自動的に選択する手法についても説明する。なお、以下では3つの処理例について個別に説明するが、これらは組み合わせて用いられてもよい。
【0104】
[第1の処理例]
図22を用いて、使用されるべき処理機能を選択する第1の処理例について説明する。本例では、画像解析処理を行う上で必要となる性能を満たすように、撮像装置110と着脱可能デバイス100とが有する処理機能の中から使用される処理機能が選択される。例えば、ある一定以上のフレームレートでの処理が行われる必要がある等の条件があり、かつ、同じ処理を撮像装置110と着脱可能デバイス100とが共に実行可能である場合に、本処理が実行されうる。
【0105】
本処理では、まず、ユーザが、入出力装置130において、例えば
図19のユーザインタフェース1901を介して、実行対象処理を選択する(S2201)。入出力装置130の制御部702は、ユーザ選択に基づいて、実行対象処理の実行指示コマンドを撮像装置110へ送信し、撮像装置110の制御部304は、選択された処理を示す実行指示コマンドを入出力装置130から取得する。なお、撮像装置110が、実行可能な処理を提示する情報提示機能と、ユーザに選択を行わせる操作受付機能とを有する場合に、ユーザは、撮像装置110を直接操作して、実行対象処理を撮像装置110の制御部304に指示してもよい。
【0106】
撮像装置110の制御部304は、選択された処理を実行する際に必要となる処理性能を確認する(S2202)。処理性能の設定については、処理ごとに設定値が事前に定められていてもよいし、処理を選択する際にユーザによって目標値が設定されてもよい。そして、制御部304は、S2201において選択された処理を撮像装置110内において実行する(S2203)。なお、この処理は、撮影と並行して実行されうる。また、選択された処理を実行する際に使用される処理機能のうち、着脱可能デバイス100にしか存在しない機能については、着脱可能デバイス100に実行させ、撮像装置110内では実行しない。
【0107】
制御部304は、処理を実行中又は一定量のデータについての処理の完了後に、実行した処理が、S2202で設定された処理性能を満たしているかを確認する(S2204)。制御部304は、処理性能を満たしていることを確認した場合(S2204でYES)は、そのまま処理を継続するため、処理をS2203へ戻す。一方、制御部304は、処理性能を満たしていないことが確認された場合(S2204でNO)は、処理性能を満足可能な処理分担への変更を試行するために、処理をS2205へ移す。
【0108】
S2205では、撮像装置110で行われていた処理の一部であって、着脱可能デバイス100においても実行可能な処理について、実行主体を着脱可能デバイス100へ変更する。撮像装置110の制御部304は、着脱可能デバイス100で実行可能な処理を把握しているため、その処理のリスト(第2処理リスト)内から、着脱可能デバイス100に移管する処理を選択して、処理の実行主体を変更する。この変更が完了すると、変更後の分担で、制御部304及び解析部501が、S2201において選択された処理を分担して実行する(S2206)。その後、制御部304が、着脱可能デバイス100から処理機能を撮像装置110に戻すべきか否かを確認する(S2207)。撮像装置110に処理を戻すことにより、高い演算精度で処理を実行することができるようになる。
【0109】
制御部304は、例えば、S2204で処理性能を満たせないと判定された理由が一時的な高負荷状態であった場合等であって、そのような状態が解消した場合に、撮像装置110に処理を戻すと判定しうる。すなわち、制御部304は、撮像装置110の処理負荷に応じて、処理を撮像装置110と着脱可能デバイス100とのいずれが実行するかを決定しうる。なお、上述のように、撮像装置110の処理負荷が高い状態において着脱可能デバイス100に処理を実行させるようにするのみならず、着脱可能デバイス100の処理負荷が高い状態において撮像装置110に処理を実行させるようにしてもよい。すなわち、着脱可能デバイス100処理負荷に基づいて、処理を撮像装置110と着脱可能デバイス100とのいずれが実行するかを決定してもよい。
【0110】
また、制御部304は、ユーザによって処理性能の目標値が下げられた場合等において、撮像装置110に処理を戻すと判定しうる。制御部304は、処理を撮像装置110に戻すと判定した場合(S2207でYES)は、着脱可能デバイス100で行われていた処理の一部について、実行主体を撮像装置110へ変更する(S2208)。なお、S2208で実行主体が撮像装置110に戻される処理は、S2205で実行主体が着脱可能デバイス100に変更された処理の一部であってもよいし全部であってもよい。処理の少なくとも一部の実行主体が撮像装置110に戻された後は、制御部304は、処理をS2203へ移す。一方、制御部304は、処理を撮像装置110に戻さないと判定した場合(S2207でNO)は、処理をS2206に戻し、処理分担を変更せずに処理を継続する。
【0111】
なお、着脱可能デバイス100が同一の処理を実行可能な複数の処理機能を有する場合は、処理の一部の実行主体が着脱可能デバイス100へ移された後に処理性能を充足することができないときに、同じ機能を実行する別の処理機能に切り替えてもよい。すなわち、S2207で、処理の実行主体を切り替えるのではなく、実行主体を着脱可能デバイス100のままとしながら、使用する処理機能を変更してもよい。
【0112】
また、処理の一部の実行主体が着脱可能デバイス100へ移された後であっても、S2202で確認した処理性能を満たせない場合には、制御部304は、その処理の実行主体を撮像装置110に戻してもよい。このときに、制御部304は、S2202で確認された処理性能を示す情報を、現在装着されている着脱可能デバイス100では満たすことができない処理性能の情報として記憶しうる。そして、制御部304は、同様の処理性能又はそれよりも厳しい処理性能が要求される場合には、処理を着脱可能デバイス100に実行させないようにしてもよい。同様に、例えば撮像装置110の処理負荷が十分小さい状況等でも、S2202で確認された処理性能を満たすことができない場合は、その処理性能の情報を記憶しておいてもよい。この場合、制御部304は、その後の処理において、S2202で、記憶されている処理性能やそれより厳しい処理性能が確認された場合に、S2203の処理を実行することなく、処理の一部の実行主体を着脱可能デバイス100に映してもよい。
【0113】
第1の処理例によれば、要求される処理性能を満たすことができるように、撮像装置110と着脱可能デバイス100とが有する処理機能が選択され、これらの装置間で処理を分担して実行する。これにより、例えば撮像装置110の状態等に応じて適切な処理分担がなされるようになり、処理性能を良好に保つことが可能となる。
【0114】
[第2の処理例]
続いて、
図23を用いて、使用されるべき処理機能を選択する第2の処理例について説明する。本処理では、着脱可能デバイス100において同じ処理を実行可能な複数の処理機能を有している場合に、使用すべき処理機能を選択する際に実行される。なお、本処理は、例えば第1の処理例において、着脱可能デバイス100に一部の処理を実行させると決定された場合等に実行されうる。すなわち、着脱可能デバイス100が処理を実行する際に、着脱可能デバイス100がその処理を実行可能な1つ以上の処理機能のいずれを使用するかを決定する際に使用されうる。ただし、これは一例に過ぎず、本処理例により、撮像装置110と着脱可能デバイス100との処理分担が決定されてもよい。例えば、撮像装置110と着脱可能デバイス100とが実行可能な処理を統合した統合処理リストにおいて、同一の処理を実行可能な複数の処理機能が存在する場合に、いずれの処理機能を使用するかを決定する際に本処理例が使用されてもよい。すなわち、撮像装置110と着脱可能デバイス100とが同一の処理を実行可能な処理機能をそれぞれ1つ以上有する場合に、いずれの装置において、どの処理機能を用いて処理を実行すべきかを決定する際にも、本処理が利用されうる。
【0115】
本処理では、まず、
図22のS2201と同様に、ユーザが、入出力装置130において実行対象処理を選択し、撮像装置110の制御部304は、選択された処理を示す情報を入出力装置130から取得する(S2301)。そして、制御部304は、着脱可能デバイス100が実行可能な処理のリスト(第2処理リスト)を確認し、実行対象の処理について同じ処理を実行可能な処理機能が複数あるかを確認する(S2302)。制御部304は、実行対象の処理を実行可能な処理機能が1つしかないと判定した場合(S2302でNO)、その処理機能を使用して処理を実行する(S2303)。一方、制御部304は、実行対象の処理を実行可能な処理機能が複数存在すると判定した場合(S2302でYES)、その複数の処理機能のいずれかを用いて処理を実行するために、処理をS2304へ進める。
【0116】
S2304では、制御部304は、S2302の判定対象となった同一の処理を実行可能な複数の処理機能のそれぞれの特徴を確認する。ここでは、例えば顔特徴抽出について、第1の処理機能は日中の相対的に輝度が高い画像を処理するのに適しているという特徴を有し、第2の処理機能は夜間の相対的に輝度が低い画像を処理するのに適しているという特徴を有する、などの特徴が確認される。制御部304は、各処理機能の特徴の違いを確認した後に、現在どのような環境で撮像装置110が撮影を行っているかを確認する(S2305)。そして、制御部304は、S2304で取得した処理機能ごとの特徴と、S2305で取得した撮影環境の情報とに基づいて、実際の解析処理において用いる処理機能を選択し(S2306)、選択した処理機能を用いて解析処理を実行する(S2307)。
【0117】
ここで、撮影環境の確認は、例えば、撮像装置110の内部時計や、撮像装置110によって撮影された画像の輝度値の分布に基づいて行われうる。例えば、内部時計が夜間の時間帯であることを示す場合は、相対的に輝度値が低い画像を処理するのに適した処理機能が選択される。また、撮影された画像の輝度値が低い方に偏って存在する場合は、相対的に輝度値が低い画像を処理するのに適した処理機能が選択される。また、処理機能ごとに輝度値に対する検出精度の評価値の分布を用意しておき、例えば撮影された画像の各輝度値の度数とその輝度値に対する検出精度を示す値を乗じて加算した値の和が最も良好な処理機能が選択されるようにしてもよい。また、撮影環境の確認は、例えば、撮像装置110の撮影時の画角(パン・チルト・ズーム)の情報に基づいて行われてもよい。例えば、室内の暗い領域を撮影しているのか、窓際の明るい領域を撮影しているのかに応じて、いずれの処理機能が使用されるかが選択される。なお、処理機能の特徴は、輝度値以外の指標によって規定されてもよい。例えば、窓等の所定のオブジェクトが含まれる画像における顔抽出精度が高い、高速移動している物体の検出精度が高い等、様々な特徴が、使用される処理機能の選択の基準として使用されうる。また、例えば、各処理機能は、処理が高速であるが低精度であるという特徴や、処理が相対的に低速であるが高精度であるという特徴等を有してもよく、処理条件に応じて適した処理機能が選択されるようにしてもよい。
【0118】
制御部304は、処理中に、撮影環境が変化したか否かを確認する(S2308)。そして、制御部304は、撮影環境が変化した場合(S2308でYES)、その変化後の環境に適した処理機能を選択する処理を再度実行し(S2306)、その選択された処理機能での解析処理を実行する(S2307)。一方、制御部304は、撮影環境が変化していない場合(S2308でNO)、処理機能を変更せずに解析処理を継続する(S2307)。
【0119】
この処理によれば、同一の処理を実行可能な複数の処理機能の中から、環境に適した処理機能を選択して使用することが可能となる。これにより、処理の精度等の観点で、環境ごとに適切な処理機能を選択的に使用することが可能となる。
【0120】
[第3の処理例]
続いて、
図24を用いて、撮像装置110と着脱可能デバイス100との間での処理の分担を決定する第3の処理例について説明する。本処理では、着脱可能デバイス100が有する処理機能の組み合わせのみで処理を完遂できるか否かに応じて、処理の分担を決定する。
【0121】
本処理では、まず、
図22のS2201や
図23のS2301と同様に、ユーザが、入出力装置130において実行対象処理を選択し、撮像装置110の制御部304は、選択された処理を示す情報を入出力装置130から取得する(S2401)。そして、制御部304は、選択された処理を、着脱可能デバイス100のみで実現可能か否か(完遂できるか否か)を判定する(S2402)。なお、制御部304は、例えば、選択された処理の全機能を着脱可能デバイス100が有する処理機能の組み合わせによって満たすことができるか否かや、着脱可能デバイス100に処理結果を保存してよいか否か等に基づいて、S2402の判定を行いうる。例えば、制御部304は、着脱可能デバイス100が有する処理機能の組み合わせで選択された処理の全機能を満たすことができ、かつ、処理結果を着脱可能デバイス100に保存してよい場合に、着脱可能デバイス100のみで処理を完遂可能であると判定する。
【0122】
制御部304は、選択された処理を着脱可能デバイス100のみでは完遂できないと判定した場合(S2402でNO)、撮像装置110と着脱可能デバイス100とで処理の分担を行う(S2403)。この場合は、第1の処理例及び第2の処理例での分担の決定が行われうる。なお、この場合、処理の全てを撮像装置110が実行するように、すなわち、着脱可能デバイス100の処理機能を使用しないようにしてもよい。一方、制御部304は、選択された処理を着脱可能デバイス100のみで完遂できると判定した場合(S2402でYES)、着脱可能デバイス100が有している処理機能のうち、いずれの処理機能を使用するかを選択する(S2404)。なお、着脱可能デバイス100が同一の処理を実行可能な処理機能を複数有する場合は、第2の処理例のようにして、いずれの処理機能を使用するかが選択される。その後、制御部304は、着脱可能デバイス100に選択された処理機能を用いて画像解析処理を実行させるための処理を実行する(S2405)。また、制御部304は、S2405における画像解析処理を行った結果を着脱可能デバイス100内に保存させるための処理を実行する(S2406)。これらの処理は、例えばSD規格のコマンドを用いて実行される。なお、S2406では、記憶部404に結果が保存されてもよいし、FPGA402内にRAMが備えられている場合は、そのRAMに結果が保存されてもよい。
【0123】
本処理例では、着脱可能デバイス100内で処理を完遂することができる場合に、処理を着脱可能デバイス100に実行させる。これにより、撮像装置110が実行する処理を、着脱可能デバイス100への画像の送信のみとすることができ、処理負荷を大幅に低減することができる。
【0124】
以上のようにして、着脱可能デバイス100を用いて、撮像装置110側で実行可能な機能を増やすことにより、システム内での処理機能を増強することができる。例えば、最新の処理機能を着脱可能デバイス100に実装することにより、撮像装置110を置き換えることなく、撮像装置110側でその最新の処理機能による画像解析処理を実行することが可能となる。これにより、システムの柔軟な運用が可能となり、利便性を向上させることができる。
【0125】
また、上述の実施形態において、解析処理として画像解析処理を例に挙げて説明したが、本発明は音声解析処理にも適用可能である。例えば、悲鳴や、銃声、ガラス破壊音のような音声パターンを検知する処理に適応可能である。例えば、スペクトル解析等の種々の音声データの分析手法で音声の特徴量が抽出され、それを検出した音声パターンと比較される。そして、その一致度合いが算出されることで、特定の音声パターンを検出することができる。
【0126】
また、音声解析処理を行う場合は、音声データを所定の時間分の音声データに分割し、その所定の時間分の音声データを単位として音声解析処理を行う。また、この所定の時間は、検出対象の音声パターンに応じて、適宜、異なる。そのため、着脱可能デバイス100に、検知したい音声パターンに対応する時間分ごとの音声データが入力される。そして、着脱可能デバイス100は、その入力された音声データを解析する機能や、入力された音声データを保持する機能を有する。
【0127】
また、上述の実施形態において、撮像装置110から入力されたデータを非一時的に格納可能な着脱可能デバイス100を例として説明した。しかし、一部の実施形態においては、撮像装置110から入力されたデータを非一時的に格納することができない着脱可能デバイス100であってもよい。つまり、着脱可能デバイス100は撮像装置110から入力されたデータに対して解析処理を行うのみで、そのデータを非一時的に記憶しなくてもよい。言い換えると、通常のSDカードのようにデータを保管する目的ではなく、解析処理のみを目的とした着脱可能デバイス100とすることも可能である。
【0128】
<<その他の実施形態>>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0129】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0130】
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:通信部、601:プロセッサ、602:RAM、603:ROM、604:HDD、605:通信I/F、701:ネットワーク通信部、702:制御部、703:表示部、704:操作部