以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
<システム構成>
図1に、本実施形態の画像解析システムの構成例を示す。以下では、一例として、このシステムが特定人物追跡システムである場合について説明する。ただし、これに限られず、画像を解析して所定の情報出力を行う任意のシステムに、以下の議論を適用することができる。本システムは、撮像装置110a〜110dと、ネットワーク120と、入出力装置130とを含んで構成される。なお、撮像装置110a〜110dは、それぞれ、例えば撮像した画像を記録可能なデバイスを着脱可能なスロットを有し、そのスロットに着脱可能デバイス100a〜100dが挿入されることにより、着脱可能デバイス100a〜100dと接続される。なお、以下では、着脱可能デバイス100a〜100dを「着脱可能デバイス100」と表記し、撮像装置110a〜110dを「撮像装置110」と表記する。
着脱可能デバイス100は、撮像装置110に対して着脱可能な演算デバイスである。着脱可能デバイス100は、一例として、SDカードに所定の処理回路を搭載したデバイスである。着脱可能デバイス100は、例えば、SDカードの態様によって、撮像装置110にその全体が挿入可能に構成され、これにより、撮像装置110から突出する部分がない状態で撮像装置110と接続可能に構成することができる。これにより、着脱可能デバイス100が配線等の障害物と干渉することを防ぐことができ、デバイスの利用時の利便性を高めることができる。また、多くの既存のネットワークカメラなどの撮像装置110には、SDカードスロットが用意されているため、既存の撮像装置110に対して、着脱可能デバイス100により拡張機能を提供することができる。なお、着脱可能デバイス100は、SDカードの態様以外に、少なくともその撮像装置110で撮影された画像を記憶可能な記憶装置が装着される際に使用される任意のインタフェースで、撮像装置110に装着されるように構成されてもよい。例えば、着脱可能デバイス100は、USB(ユニバーサリシリアルバス)インタフェースを有し、撮像装置110のUSBソケットに装着されるように構成されてもよい。また、所定の処理回路は、例えば、所定の処理を実行するようにプログラムされたFPGA(フィールドプログラマブルゲートアレイ)によって実装されるが、それ以外の形式で実装されてもよい。
撮像装置110は、ネットワークカメラ等の撮像装置である。本実施形態では、撮像装置110は、映像を処理することのできる演算装置を内蔵するものとするが、これに限られない。例えば、撮像装置110に接続されたPC(パーソナルコンピュータ)等の外部コンピュータが存在してもよく、これらの組み合わせを、撮像装置110として扱ってもよい。また、本実施形態では、全ての撮像装置110に、着脱可能デバイス100が装着されているものとする。なお、図1では、4つの撮像装置110と、それぞれに装着された着脱可能デバイスとが示されているが、これらの装置の組み合わせの数は3つ以下であってもよいし、5つ以上であってもよい。撮像装置110に、画像解析処理機能を有する着脱可能デバイス100が装着されることにより、撮像装置110が画像解析処理機能を有しなくても、撮像装置110側で映像処理を実行することが可能となる。また、本実施形態のように撮像装置110に映像処理用の演算装置が配置された形態では、演算装置が配置された着脱可能デバイス100が撮像装置110に装着されることにより、撮像装置110側で実行可能な画像処理を多様化・高度化することができる。
入出力装置130は、ユーザからの入力の受け付けや、ユーザへの情報の出力(例えば情報の表示)を行う装置である。本実施形態では、例えば入出力装置130は、PC等のコンピュータであり、そのコンピュータにインストールされたブラウザやネイティブアプリケーションによって、情報の入出力が行われる。
撮像装置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は、例えば、独自の通信プロトコル等の他の通信プロトコルでの通信が可能なように構成されてもよい。
<装置構成>
(撮像装置の構成)
続いて、撮像装置110の構成について説明する。図2は、撮像装置110のハードウェア構成例を示す図である。撮像装置110は、そのハードウェア構成として、例えば、撮像部201、画像処理部202、演算処理部203、配信部204、SD I/F部205を含む。なお、I/Fは、インタフェースの略語である。
撮像部201は、光を結像するためのレンズ部と、結像された光に応じたアナログ信号変換する撮像素子とを含んで構成される。レンズ部は、画角を調整するズーム機能や、光量の調整を行う絞り機能などを有する。撮像素子は、光をアナログ信号に変換する際の感度調整を行うゲイン機能を有する。これらの機能は、画像処理部202から通知された設定値に基づいて調整される。撮像部201によって取得されたアナログ信号は、アナログ−デジタル変換回路によってデジタル信号に変換され、画像信号として画像処理部202へ転送される。
画像処理部202は、画像処理エンジンと、その周辺デバイス等を含んで構成される。周辺デバイスは、例えば、RAM(Random Access Memory)や、各I/Fのドライバ等を含む。画像処理部202では、撮像部201から取得した画像信号に対して、例えば、現像処理、フィルタ処理、センサ補正、ノイズ除去等の、画像処理を施して画像データを生成する。また、画像処理部202は、レンズ部や撮像素子へ設定値を送信し、適切露出画像を取得できるように、露出調整を実行しうる。画像処理部202において生成された画像データは、演算処理部203へ転送される。
演算処理部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へ転送される。
配信部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を通じて行われる。
図3に、撮像装置110の機能構成例を示す。撮像装置110は、その機能として、例えば、撮像制御部301、信号処理部302、記憶部303、制御部304、解析部305、デバイス通信部306、及び、ネットワーク通信部307を含む。
撮像制御部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の不図示の操作部を介して、ユーザにより選択された符号化方式を用いて、画像を符号化してもよい。
記憶部303は、解析部305において実行可能な解析処理のリスト(以下では「第1処理リスト」と呼ぶ。)と、解析処理の結果に対する後処理のリストとを記憶する。また、記憶部303は、後述する解析処理の結果を記憶する。なお、本実施形態では、実行される処理が解析処理であるが、任意の処理が実行されてもよく、記憶部303は、その実行される処理に関連する処理について、第1処理リストと後処理のリストとを記憶するようにしうる。制御部304は、信号処理部302、記憶部303、解析部305、デバイス通信部306、ネットワーク通信部307を、それぞれが所定の処理を実行するように、制御する。
解析部305は、撮影画像に対して、後述する解析前処理、解析処理、解析後処理の少なくともいずれかを選択的に実行する。解析前処理は、後述の解析処理を実行する前に、撮影画像に対して実行する処理である。本実施形態の解析前処理では、一例として、撮影画像を分割して分割画像を作成する処理が実行されるものとする。解析処理は、入力された画像を解析して得られる情報を出力する処理である。本実施形態の解析処理では、一例として、解析前処理によって得られた分割画像を入力として、人体検出処理、顔検出処理、車両検出処理の少なくともいずれかを実行し、解析処理結果を出力する処理が実行されるものとする。解析処理は、例えば非特許文献1の技術によって、画像に含まれるオブジェクトを検出できるように学習が行われた機械学習モデルを用いて、分割画像中のオブジェクトの位置を出力するように構成された処理でありうる。解析後処理は、解析処理が実行された後に実行される処理である。本実施形態の解析後処理では、一例として、各分割画像に対する解析処理結果に基づいて、各分割画像において検出されたオブジェクトの数を合計した値を処理結果として出力する処理が実行されるものとする。なお、解析処理は、パターンマッチングを行って画像中のオブジェクトを検出し、その位置を出力する処理であってもよい。
デバイス通信部306は、着脱可能デバイス100との通信を行う。デバイス通信部306は、入力されたデータを着脱可能デバイス100が処理可能な形式に変換し、その変換によって得られたデータを着脱可能デバイス100に送信する。また、デバイス通信部306は、着脱可能デバイス100からデータを受信し、受信したデータを撮像装置110が処理可能な形式に変換する。本実施形態では、デバイス通信部306は、変換処理として、小数を浮動小数点形式と固定小数点形式との間で変換する処理を実行するものとするが、これに限られず、他の処理がデバイス通信部306によって実行されてもよい。また、本実施形態では、デバイス通信部306は、着脱可能デバイス100に対してSD規格の範囲内で事前に定められたコマンドシーケンスを送信し、着脱可能デバイス100からの応答を受信することで、着脱可能デバイス100との通信を行うものとする。ネットワーク通信部307は、ネットワーク120を介して、入出力装置130との通信を行う。
(着脱可能デバイスの構成)
図4に、着脱可能デバイス100のハードウェア構成例を示す。着脱可能デバイス100は、一例として、I/F部401、FPGA402、SDコントローラ403、及び、記憶部404を含んで構成される。着脱可能デバイス100は、撮像装置110が有するSD I/F部205の着脱ソケットに挿抜できる形状で、すなわちSD規格に則った形状で成形されるものとする。
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を介して実行される。
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に設定データを書き込んでもよい。
入出力制御部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の処理内容を変更することができる場合、複数の処理機能を有する、と表現する。
SDコントローラ403は、SD規格に定義されているような公知のコントロールIC(集積回路)であり、SDプロトコルのスレーブ動作の制御と、記憶部404に対するデータの読み書きの制御とを実行する。記憶部404は、例えばNAND型フラッシュメモリによって構成され、例えば、撮像装置110から書き込まれた記憶データ、演算処理部412に書き込まれる画像解析処理機能の情報、FPGA402の設定データ等の各種情報を記憶する。
図5に、着脱可能デバイス100の機能構成例を示す。着脱可能デバイス100は、その機能構成として、例えば、解析部501及び通信部502を含む。解析部501は、画像に対する解析処理を実行する。解析部501は、例えば、解析処理設定要求を入力された場合に、入力された解析処理を実行可能な状態にするための設定を実行する。また、解析部501は、画像が入力された場合、その入力された画像に対して、実行可能な状態に設定された解析処理を実行する。本実施形態では、実行可能な解析処理は、人体検出処理と顔検出処理であるものとするが、これらに限られない。例えば、事前に記憶された人物が画像に含まれるか否かを判定する処理(後述する顔認証処理)であってもよい。例えば、事前に記憶された人物の画像特徴量と、入力された画像から検出された人物の画像特徴量との一致度合いを算出し、一致度合いが閾値以上の場合に事前に記憶された人物であると判定する。また、プライバシー保護を目的として。入力された画像から検出された人物に対して、所定のマスク画像を重畳したり、モザイク処理を施したりする処理であってもよい。また、人物の特定の行動を機械学習によって学習した学習モデルを用いて、画像中の人物が特定の行動を行っているかを検出する処理であってもよい。さらには、画像中の領域がどのような領域なのかを判定する処理であってもよい。例えば、建物や道路、人物、空等を機械学習によって学習した学習モデルを用いて、画像中の領域がどのような領域なのかを判定する処理であってもよい。以上のように、実行可能な解析処理は、機械学習を用いた画像解析処理にも、機械学習を用いない画像解析処理にも応用可能である。また、上記の各解析処理は、着脱可能デバイス100が単独で行うのではなく、撮像装置110と協働して実行してもよい。さらに、本実施形態では、撮影画像に対する解析処理について説明を行うが、動画撮影を行うことで録音される音声データに対しても適用可能である。通信部502は、I/F部401を介して、撮像装置110との通信を行う。
(入出力装置の構成)
図6に、入出力装置130のハードウェア構成例を示す。入出力装置130は、一般的なPC等のコンピュータとして構成され、例えば、図6に示すように、CPU等のプロセッサ601、RAM602やROM603等のメモリ、HDD604等の記憶装置、及び、通信I/F605を含んで構成される。入出力装置130は、プロセッサ601が、メモリや記憶装置に格納されたプログラムを実行することにより、各種機能を実行することができる。
図7に、本実施形態に係る入出力装置130の機能構成例を示す。入出力装置130は、その機能構成として、例えば、ネットワーク通信部701、制御部702、表示部703、及び操作部704を含む。ネットワーク通信部701は、例えばネットワーク120に接続し、ネットワーク120を介して撮像装置110等の外部装置との通信を実行する。なお、これは一例に過ぎず、例えば、ネットワーク通信部701は、撮像装置110と直接接続を確立して、ネットワーク120や他の装置を介さずに、撮像装置110と通信するように構成されてもよい。制御部702は、ネットワーク通信部701と表示部703と操作部704とがそれぞれの処理を実行するように、制御する。表示部703は、例えばディスプレイを介してユーザに情報を提示する。本実施形態では、ブラウザがレンダリングした結果をディスプレイに表示することによって、情報がユーザに提示される。なお、音声や振動等の画面表示以外の方法で情報が提示されてもよい。操作部704は、ユーザからの操作を受け付ける。本実施形態では、操作部704がマウスやキーボードであり、ユーザがこれらを操作して、ブラウザにユーザ操作を入力するものとする。ただし、これに限られず、操作部704は、例えば、タッチパネルやマイクなど、他のユーザの意図を検出することができる任意のデバイスであってもよい。
<処理の流れ>
続いて、システム内で実行される処理の流れの例について説明する。なお、以下の各処理のうち撮像装置110が実行する処理は、例えば、演算処理部203内のプロセッサがメモリ等に記憶されたプログラムを実行することによって実現される。ただし、これは一例に過ぎず、後述の処理の一部又は全部が、専用のハードウェアによって実現されてもよい。また、着脱可能デバイス100や入出力装置130が実行する処理についても、各装置におけるプロセッサがメモリ等に記憶されたプログラムを実行することによって実現されてもよいし、処理の一部又は全部を、専用のハードウェアによって実現してもよい。
図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の処理の少なくとも一部が繰り返し実行されてもよい。
図9に、撮像装置110が実行可能な処理を把握する処理の流れの例を示す。本処理は、図8のS803の処理に対応し、着脱可能デバイス100等のデバイスが撮像装置110に装着された又は抜去された場合や、撮像装置110の電源がオンとなった際に実行されうる。本処理では、撮像装置110は、着脱可能デバイス100で実行可能な処理を読み出し、撮像装置110側で実行可能な解析処理を把握する。
まず、撮像装置110の制御部304は、記憶部303に記憶されている、解析部305において実行可能な解析処理のリスト(第1処理リスト)を読み出す(S901)。また、撮像装置110の制御部304は、装着されたデバイスが、例えば従来の記憶機能のみを有するデバイスであるか、着脱可能デバイス100等の特定の処理機能を有する所定のデバイスであるかを判定する(S902)。例えば、制御部304は、デバイス通信部306を制御して、装着されたデバイスに対して、特定のアドレスへの読み出し要求(リードコマンド)を発行し、その特定のアドレスに格納されているフラグデータを読み出す。以下では、この特定のアドレスを「アドレスA」と呼ぶ場合がある。そして、制御部304は、読み出したフラグデータに基づいて、着脱可能デバイス100が特定の処理機能を有する所定のデバイスであるかを判定しうる。ただし、これは一例に過ぎず、他の方法によって、装着されたデバイスが所定のデバイスであるか否かが判定されてもよい。制御部304は、装着されたデバイスが所定のデバイスであると判定した場合(S902でYES)、そのデバイス(着脱可能デバイス100)において実行可能な処理を把握するための処理を実行する。制御部304は、デバイス通信部306を制御して着脱可能デバイス100と通信し、着脱可能デバイス100において実行可能な処理のリスト(このリストを「第2処理リスト」と呼ぶ。)を取得する(S903)。制御部304は、例えば、着脱可能デバイス100が所定のデバイスか否かを判定した場合と同様に、アドレスAに格納されているデータを読み出すことにより、実行可能な処理リストを取得しうる。なお、例えば、第2処理リストは、着脱可能デバイスが所定のデバイスであるか否かの判定を行うフラグデータと同一のアドレス(アドレスA)に格納されうる。この場合、撮像装置110は、そのアドレスAにアクセスすることにより、フラグデータと第2処理リストとを同時に取得して、S902の処理とS903の処理とを同時に実行することができる。ただし、これに限られず、これらのデータは、別のアドレスに格納されてもよい。その後、制御部304は、記憶部303から読み出した撮像装置110自身が実行可能な処理の第1処理リストと、着脱可能デバイス100から取得した第2処理リストとが統合された統合処理リストを作成し(S904)、処理を終了する。一方、制御部304は、装着されたデバイスが所定のデバイスでないと判定した場合(S902でNO)は、S901で読み出した第1処理リストを統合処理リストとして(S905)、処理を終了する。
本実施形態では、上述のようにして、撮像装置110に着脱可能デバイス100を装着することによって、撮像装置110側で実行可能な処理を拡張することができる。一方で、着脱可能デバイス100が装着される機器によっては、着脱可能デバイス100に処理を適切に実行させることができず、場合によっては誤作動によって、誤った処理結果が出力されることもありうる。このため、本実施形態では、例えば事前に一定の処理に対して動作確認が取れている機器に対してのみ、その一定の処理が許容されるように制御をする。本実施形態では、この制御のために、着脱可能デバイス100は、自装置が装着された機器から取得した情報に基づいて認証処理を実行し、その認証に成功した機器に対して解析処理機能を提供し、認証に失敗した機器には解析処理機能を提供しないようにする。以下では、このような処理を実行する着脱可能デバイス100の構成例と、処理の流れの例について説明する。
図10に認証処理を行うための着脱可能デバイス100の構成例を示す。図10は、図4に示した着脱可能デバイス100のFPGA402及び記憶部404の構成をさらに詳細に示したものである。なお、図10では、演算処理部412と処理切替部411とを、それぞれ異なるFPGAで構成した場合の例を示している。また、図10の各機能部は、例えば、着脱可能デバイス100内の1つ以上のプロセッサが所定のプログラムを実行することによって実現されてもよいし、後述の各動作を実現するハードウェア回路として実現されてもよい。入出力制御部411は、その機能として、認証情報判定部1001と認証情報生成部1002とを含みうる。また、処理切替部412は、その機能として、記憶制御部1003と揮発性記憶部1004を含みうる。また、記憶部404は、認証情報1011と、解析処理回路情報1012と、解析処理設定値1013とを保持するように構成されうる。
認証情報判定部1001は、撮像装置110から送信されてきたデータ内に認証情報が含まれているかを検出し、認証情報が記憶部404に保持されている認証情報と一致するかを判定する。認証情報生成部1002は、記憶部に保持されている着脱可能デバイス100の識別情報や認証情報に基づいて、着脱可能デバイス100が装着された撮像装置110と認証を行うための認証情報を生成するための演算を実行する。また、認証情報生成部1002は、認証情報判定部1001における判定結果に基づいて、新たに認証情報を算出する。認証情報の生成の詳細については後述する。
記憶制御部1003は、記憶部404に記憶されたデータの読み出しと記憶部404へのデータの書き込みを制御する。記憶制御部1003は、認証情報判定部1001の要求に応じて、認証情報1011を記憶部404から読み出して認証情報判定部1001へ出力する。また、記憶制御部1003は、撮像装置110から受信した解析処理を実行するための設定情報に基づいて、記憶部404から画像解析処理機能の情報を読み出して、演算処理部412に書き込む。記憶制御部1003が撮像装置110からの設定情報に応じて解析処理回路情報1012を選択して演算処理部412に送ることにより、演算処理部412において、解析処理を行う論理回路が構成される。記憶制御部1003は、さらに、演算処理部412において論理回路が構成された状態において、撮像装置110からの設定情報に基づく解析処理設定値1013を演算処理部412に設定することにより、所望の解析処理機能が実現される。解析処理回路情報1012と解析処理設定値1013は、それぞれ、解析機能ごとに、1つ又は複数のデータが記憶部404に記憶されうる。認証情報1011は、着脱可能デバイス100に固有の識別情報や識別情報に基づいて、認証情報生成部1002によって生成された認証情報である。認証情報1011は、外部(例えば撮像装置110)からアクセスできないように構成されうる。これにより、外部装置によって認証情報1011が不正に取得され、本来認証に失敗すべき装置の認証に成功してしまうなどの事象が発生することを防ぐことができる。また、認証情報1011は、例えば揮発性記憶部1004などの記憶部404とは異なる記憶部に記憶されるようにしてもよい。本実施形態の揮発性記憶部1004は、FPGA内に構成された揮発性記憶回路であり、電源の再投入や外部からのリセット処理により、記憶情報がクリアされる。
図11を用いて、着脱可能デバイス100が起動時に実行する認証処理の流れの例について説明する。この処理は、着脱可能デバイス100の初期化が完了した後に実行される。場合によっては、この処理は、図9のS903において着脱可能デバイス100が実行可能な処理を示す情報を撮像装置110に送信する処理と同時に行われてもよい。
本処理において、まず、着脱可能デバイス100の認証情報判定部1001は、記憶部404の所定の領域に、着脱可能デバイス100が装着されている撮像装置110に関する認証情報が格納されているかを判定する(S1101)。この判定は、例えば、撮像装置110の識別情報等の情報を取得して、その情報に対応する情報が記憶されているかを判定することによって行われうる。着脱可能デバイス100が装着されている撮像装置との認証情報が保持されている場合(S1101でYES)は、記憶制御部1003が、その認証情報に基づいて、演算処理部404へ解析処理回路情報と解析処理設定値を出力する。これにより、着脱可能デバイス100において、解析処理回路が構成され(S1106)、さらに、解析処理設定値が設定される(S1107)。なお、S1101の時点では、記憶部404の所定の領域に何らかの認証情報が格納されているか否かのみが判定されてもよい。この場合、例えば、記憶部404の所定の領域に何らかの認証情報が格納されていることに基づいて処理がS1106に移行するが、この処理の際に、撮像装置110の識別情報が取得されて、その撮像装置110の認証情報が記憶されているかが判定されうる。そして、撮像装置110についての認証情報が保持されていない場合には、処理が、S1101において認証情報がないと判定された場合の処理へ移行する。
一方で、着脱可能デバイス100が装着されている撮像装置110に関する認証情報が記憶されていない場合(S1101でNO)、着脱可能デバイス100は、認証を行うために、その撮像装置110に対して認証処理の要求を送信する(S1102)。続いて、着脱可能デバイス100は、撮像装置110との認証を行い、認証が完了したかを判定する(S1103)。認証方法の詳細については図12を用いて後に説明する。着脱可能デバイス100は、撮像装置110との認証が完了すると(S1103でYES)、認証結果と、取得した認証情報とを、記憶部404に記憶する(S1105)。ここで記憶される認証情報は、不揮発性の記憶部404に記憶されるようにしてもよいし、揮発性記憶部1004に記憶されるようにしてもよい。記憶される認証情報は、撮像装置110から送信されてきたパスワードを含む認証情報と、認証対象の解析機能の一覧を含む情報でありうる。着脱可能デバイス100は、認証が完了すると、撮像装置110から指定された解析処理に基づいて、解析回路を演算処理部412へ展開し(S1106)、解析処理設定値を演算処理部412の論理回路に設定する(S1107)。以上のような処理が実行されることにより、着脱可能デバイス100の準備が完了し、解析処理機能が実行可能となる。
なお、着脱可能デバイス100は、例えば一定期間にわたって撮像装置110との認証を完了できなかった場合(S1103でNO)、撮像装置110との認証ができなかったことをその撮像装置110の識別情報と共に記憶部404に記憶する(S1104)。この場合には、着脱可能デバイス100は、解析処理回路を演算処理部412へ展開することなく、起動を完了する。この場合、着脱可能デバイス100は、撮像装置110からは、記憶部404に情報を記憶させるストレージ機能のみを有するデバイスとして扱われうる。このとき、記憶部404に記憶される解析処理リストにおいて、全ての解析処理が実行できないことを示す情報が記憶されてもよい。なお、例えば撮像装置110からの認証処理の要求に応じて認証処理を再度実行することにより、着脱可能デバイス100が有する解析処理機能の一部または全部について使用可能に変更することができる。
続いて、図12を用いて、撮像装置110と着脱可能デバイス100との間で実行される認証処理の流れについて説明する。本処理は、撮像装置110に着脱可能デバイス100が装着された場合や、撮像装置110の電源がONになった際に実行されうる。本処理では、撮像装置110が着脱可能デバイス100の識別情報を読み出し、撮像装置100と着脱可能デバイス110の識別情報をサーバ等の管理装置へ送信し、解析処理機能に関連付けられた認証情報を取得する。管理装置は、ネットワーク120を介して撮像装置110及び入出力装置120と接続される。
まず、ユーザによって撮像装置110に着脱可能デバイス100が装着され、着脱可能デバイス100は、これによって電源の供給を受けて起動する(S1201)。そして、着脱可能デバイス100は、記憶部404の所定の領域に撮像装置110に関する認証情報が保持されているか否かを判定する(S1202)。着脱可能デバイス100は、認証情報が記憶部404に保持されていないことを検出すると、撮像装置110に対して、認証要求を送信する(S1203)。認証要求の送信は、撮像装置110からの初期化コマンドに対するレスポンスにおいて認証要求を示す情報(フラグ)を含めることによって行われてもよい。また、図9のS903において、着脱可能デバイス100において実行可能な処理のリストを要求するコマンドへの応答の一部に認証要求を示す情報(フラグ)を含めるなど、他の方法によって認証要求が送信されてもよい。
撮像装置110は、着脱可能デバイス100からの認証要求を取得すると、撮像装置110に対応する識別情報を着脱可能デバイス100へ送信する(S1204)。撮像装置110の識別情報は、例えば撮像装置110のMACアドレス等の、装置ごとに固有の情報であり、同種の機器間であっても相異なる情報である。着脱可能デバイス100は、自装置内に予め保持している自装置の識別情報と、撮像装置110から取得した識別情報とに基づいて、認証基情報を準備して、記憶部404に記憶する(S1205)。認証基情報は、着脱可能デバイス100と撮像装置110の組み合わせに固有の情報であり、異なる装置の組合せに対して異なる値(内容)が設定される情報である。認証基情報は、着脱可能デバイス100の外部からはアクセスできないように記憶されうる。認証基情報は、例えば、着脱可能デバイス100のシリアルナンバー等の識別情報と、撮像装置110から取得した識別情報とを含むバイナリ値として生成されうる。そして、着脱可能デバイス100は、生成した認証基情報に基づいて、第1の認証情報を生成する(S1206)。第1の認証情報は、例えば、認証基情報の少なくとも一部を所定の関数の引数として用いて演算を実行し、その演算の結果の値として算出される。着脱可能デバイス100は、生成された第1の認証情報と着脱可能デバイス100が所持している解析機能一覧の情報とを撮像装置110へ送信する(S1207)。
撮像装置110は、着脱可能デバイス100から指定された管理装置へ、取得した第1の認証情報および着脱可能デバイス100が有する解析処理機能の一覧と、その一覧のうちのどの解析処理機能を選択したかを示す選択情報を送付する(S1208)。ここで、管理装置は、認証情報を管理するサーバ装置等によって構成され、着脱可能デバイス100の識別情報ごとに解析処理機能と認証情報とを管理するように構成される。撮像装置110は、ネットワーク等を介して管理装置と接続される。このとき、管理装置は、例えば入出力装置130の表示部703を介して、取得した解析処理機能の一覧をユーザが確認することができるように構成されうる。解析処理機能の一覧を表示するための情報は、撮像装置110を介して入出力装置130に提供されてもよいし、入出力装置130が管理装置に直接アクセスすることによって提供されてもよい。管理装置は、ユーザが選択した解析処理機能に対して認証処理を実行し(S1209)、着脱可能デバイス100において実行可能な認証済解析処理の一覧を生成する。
ここで、この認証済解析処理は、S1208において管理装置へ提供された選択情報に基づいて、選択された処理機能のうちのいずれが認証されたかを示しうる。すなわち、着脱可能デバイス100が実行可能なすべての処理について認証が行われた結果ではなく、撮像装置110が要求する処理について認証が行われた結果が、認証済解析処理として出力される。このため、認証済解析処理は、撮像装置110が要求した処理で、かつ、認証に成功した処理(例えば事前に動作確認が取れている処理)でありうる。なお、認証済解析処理は、着脱可能デバイス100が提供可能なすべての処理のうち、撮像装置110との間での認証に成功した処理であってもよい。例えば、端末装置110は、S1208で送信する選択情報において、すべての機能を選択することを示す情報を送信することにより、このような認証済解析処理を得ることができる。
管理装置は、認証処理の完了後、受信した第1の認証情報と認証済解析処理の一覧に基づいて、第2の認証情報を生成する(S1210)。そして、管理装置は、生成した第2の認証情報と、認証した解析処理一覧を撮像装置110へ送信する(S1211)。また、撮像装置110は、受信した第2の認証情報を記憶部303に記憶する(S1212)。撮像装置110は、さらに、管理装置から取得した第2の認証情報と認証済解析処理の一覧を着脱可能デバイス100へ送信する(S1213)。
着脱可能デバイス100は、撮像装置110から受信した認証済解析処理の一覧と、S1206で生成した第1の認証情報とに基づいて第3の認証情報を生成し、受信した第2の認証情報と比較する。そして、着脱可能デバイス100は、第2の認証情報と第3の認証情報とが一致したか否かにより、実行された認証処理が有効であるかを判定する(S1214)。ここで、管理装置でも、上述のように、第1の認証情報と認証済解析処理の一覧とに基づいて、第2の認証情報を生成している。このときに、管理装置と着脱可能デバイス100とで、第2の認証情報を生成するために第1の認証情報及び認証済解析処理の一覧が引数として適用される関数として、同一の関数が用いられる。これにより、着脱可能デバイス100は、自装置において算出された第2の認証情報が、S1213で取得された第2の認証情報と一致する場合に、S1213で取得された第2の認証情報が有効であると判定しうる。また、着脱可能デバイス100は、自装置において算出された第2の認証情報が、S1213で取得された第2の認証情報と一致しない場合に、S1213で取得された第2の認証情報が無効であると判定しうる。着脱可能デバイス100は、第2の認証情報が有効であると判定した場合、着脱可能デバイス100内の記憶部404に、第2の認証情報を記憶して(S1215)、認証処理を終了する。
着脱可能デバイス100が記憶部404に記憶する第2の認証情報は、撮像装置110の識別情報と、着脱可能デバイス100の固有情報と、認証済解析処理の一覧と、の組み合わせに対応する固有情報となる。これにより、着脱可能デバイス100は、自装置が装着された撮像装置110が正しく認証された装置であるかを判定することができる。また、着脱可能デバイス100は、撮像装置110から第2の認証情報と共に取得した認証済解析処理の一覧によって、認証されていない解析処理機能が選択された場合にその機能を無効化し、又は、認証されていない解析処理機能の選択をさせないことができる。
なお、第1の認証情報の生成に使用する認証基情報は、上述の例に限られない。例えば、認証基情報として、有効期限や回数を含む情報を追加して、第1の認証情報を生成してもよい。これにより、解析処理機能を使用する期間や使用回数を規定することが可能となる。また着脱可能デバイス100は、撮像装置110から受信した識別情報や認証情報を、揮発性記憶部1004に記憶するようにしてもよい。これにより、着脱可能デバイス100が抜去される度に着脱可能デバイス100に記憶された認証情報が消去される。これにより、着脱可能デバイスに電源が供給されるたびに認証処理が実行されるため、認証されていない撮像装置110に対して、不用意に解析処理機能を提供しないようにすることが可能となる。
続いて、図13を用いて、上述のようにして認証が実行された後の撮像装置が、解析処理を実行する際の処理の流れの例について説明する。本処理では、まず、撮像制御部301が周囲の環境を撮影する(S1301)。制御部304は、信号処理部302を制御して、撮像制御部301によって撮影された画像の処理を行い、撮影画像を取得する。その後、制御部304は、解析部305を制御して、制御部304から入力された撮影画像に対して解析前処理を実行し、解析前処理結果の画像を取得する(S1302)。そして、制御部304は、実行対象処理が認証済解析処理リストに含まれるかを判定した後、解析前処理結果の画像と、記憶部303に記憶した第2の認証情報とを含む送信データを生成する(S1303)。そして、制御部304は、デバイス通信部306を制御して、着脱可能デバイス100へ生成した送信データを送信する(S1304)。例えば、制御部304は、解析前処理結果の書き込み要求(ライトコマンド)を発行することにより、着脱可能デバイス100へ解析前処理結果の画像を送信する。着脱可能デバイス100の通信部502は、解析前処理結果の画像を撮像装置110から受信し、撮像装置110から受信した画像を解析部501に出力する。着脱可能デバイス100の解析部501は、通信部502から入力された画像に対して、設定された実行対象処理を実行する(S1305)。そして、着脱可能デバイス100の通信部502は、解析部501による処理によって得られた解析処理結果を、撮像装置110へ送信する(S1306)。そして、撮像装置110の制御部304は、デバイス通信部306を制御して、着脱可能デバイス100から解析処理結果を受信する。その後、制御部304は、解析部305を制御して、解析処理結果に対して解析後処理を実行する(S1307)。解析後処理は、例えば解析結果の保存処理や表示処理でありうる。
着脱可能デバイス100から撮像装置110への解析処理結果の送信は、例えば以下のようにして行われる。着脱可能デバイス100の解析部501は、解析処理結果を実行対象処理ごとに割り当てられた解析処理結果の格納先アドレスに格納する。そして、撮像装置110は、例えば第2処理リストと共にアドレスAに格納された解析処理結果の格納アドレスを示す情報を読み出し、その格納アドレスに対する読み出し要求(リードコマンド)を発行する。着脱可能デバイス100は、通信部502を介して、解析処理結果の格納アドレスへの読み出し要求を受け取り、解析処理結果を撮像装置110に対して出力する。なお、撮像装置110は、例えばアドレスAに格納されている推定処理時間が経過した後に、解析処理結果の格納アドレスに対する読み出し要求を発行しうる。また、着脱可能デバイス100が、撮像装置110から送信された解析前処理結果の最後の1ブロックの書き込み要求から実行対象処理が終了するまでの間はBUSY信号を出力するようにしてもよい。この場合、撮像装置110は、BUSY信号を受信しなくなってから、解析処理結果の格納アドレスに対する読み出し要求を発行しうる。これにより、撮像装置110は、処理が終了した後に処理結果を取得することが可能となる。また、着脱可能デバイス100が解析処理機能を無効化した場合、アドレスAや解析処理結果の格納アドレス等の所定のアドレスに、解析処理が無効化されたことを示す情報を格納するようにしてもよい。着脱可能デバイス100は、撮像装置110からS1304で受信した第2の認証情報が、自装置内に保持されている第2の認証情報と一致しない場合や、実行対象処理に対して認証処理が行われていない場合に、このような情報を所定のアドレスに格納しうる。撮像装置110は、この所定のアドレスのデータを読み出すことにより、送信した第2の認証情報が着脱可能デバイス100内に保持されている第2の認証情報と一致しないことや、実行対象処理に対して認証処理が行われていないことを認識することができる。
ここで、撮像装置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が挿入されているか否かを認識することができる。
演算処理部203は、SDコントローラ403に対して電源供給後に、コマンドライン上でコマンドを発行する。そして、演算処理部203は、SDコントローラ403からのレスポンスと、SDカードとしてのデバイス情報を示す出力データを受信したことに応じて、データの通信用の電圧、通信速度(クロック周波数)等の設定を行う。
図14(A)及び図14(B)に、コマンドライン上で通信されるコマンドとレスポンスの構成例を示す。これらのコマンドとレスポンスは、SD規格に従う構成を有する。演算処理部203からSDコントローラ403に対して発行されるコマンド1401は、コマンドナンバー部1404と、コマンド引数部1405と、誤り訂正用データ部1406とを含んで構成される。コマンドナンバー部1404には、コマンドの種別を示す値が記述される。例えば、コマンドナンバー部1404に値「23」が格納されている場合、そのコマンドがデータブロック数を指定するブロック数指定コマンドであることが示される。また、コマンドナンバー部1404に値「25」が格納されている場合、そのコマンドがマルチライトコマンドであることが示され、コマンドナンバー部1404に値「12」が格納されている場合、そのコマンドがデータ転送停止コマンドであることが示される。コマンド引数部1405では、コマンドの種別に応じて転送データブロック数、メモリの書き込み・読み出しアドレス等の情報が指定される。また、コマンドの最初のビットには、コマンドの開始位置を示すコマンドスタートビット1402が付加され、コマンドの最後のビットにはコマンドの終了を示すコマンドエンドビット1407が付加される。また、コマンドスタートビット1402の後ろに、撮像装置110から着脱可能デバイス100に対して出力された信号であることを示すディレクションビット1403も付加される。
演算処理部203からのコマンドに対してSDコントローラ403から返されるレスポンス1411は、どのコマンドに対するレスポンスかを示すレスポンスナンバー部1414と、レスポンス引数部1415と、誤り訂正用データ部1416とを含む。また、レスポンスの最初のビットにはレスポンスの開始位置を示すレスポンススタートビット1412が付加され、レスポンスの最後のビットにはレスポンスの終了位置を示すレスポンスエンドビット1417が付加される。また、レスポンススタートビット1412の後ろに着脱可能デバイス100から撮像装置110に対して出力された信号であることを示すディレクションビット1414も付加される。レスポンス引数部1415には、コマンド種別に応じてSDカードのステータス等の情報が格納される。
撮像装置110から着脱可能デバイス100へ送信される、解析処理機能を要求する際のコマンド1401におけるコマンド引数部1405の内容の例を図14(C)に示す。図14(C)の構成では、コマンド引数部1405は、第2の認証情報1421と、実行対象の解析処理機能等を示す解析処理引数値1422、及び処理対象の画像のサイズ等の画像情報を示す情報を含むように構成される。なお、図14(C)は一例に過ぎず、解析処理機能を実行するための専用コマンドナンバーを用意し、コマンドナンバー部1404に、この専用コマンドナンバーが格納されるようにしてもよい。すなわち、コマンド引数部1405を図14(C)のように構成して従来のSD規格で規定されているプロトコルを用いてもよいし、同様の処理を実行可能な従来のSD規格には存在しない新たなプロトコルが定義されてもよい。新たなプロトコルでは、例えば、解析処理機能を要求する解析処理要求コマンドのコマンド引数部1404に、第2の認証情報と実行対象の解析処理機能を示す引数値を含むようにしてもよい。
また、着脱可能デバイス100から撮像装置110へ送信される、解析処理要求コマンドに対するレスポンス1411のレスポンス引数部1415の内容の例を図14(D)に示す。図14(D)の構成では、レスポンス引数部1415は、例えば認証要求フラグ1431と認証情報判定結果1432を含む。認証要求フラグ1431はS1203に関して説明したように、撮像装置110からの初期化コマンドに対するレスポンスにおいて、撮像装置110に対して認証を要求する際に所定値(例えば「1」)を格納するように構成される。また、認証情報が不一致であり、着脱可能デバイス100が撮像装置110を再認証する必要があると判定した場合にも、認証要求フラグ1431に所定値が格納され、撮像装置110に対して認証が要求されうる。認証情報判定結果1432は、解析処理要求コマンドに対して、処理の結果や処理のステータスを撮像装置110に対して通知するのに用いられうる。
なお、図14(A)〜図14(D)は、SD規格に従って動作する場合の例を示しているが、これ以外の通信規格においても同様の処理を実行可能である。すなわち、所定の規格において、撮像装置110と着脱可能デバイス100との間で送受信されるコマンドに、第2の認証情報や解析処理引数値、認証要求フラグ、認証情報判定結果などを含めることができる。これにより、SD規格において図14(A)〜図14(D)のような構成を用いる場合と同様の効果を得ることができる。
続いて、図15を用いて、着脱可能デバイス110が撮像装置110からの解析処理要求に対して認証判定を行う処理の流れの例について説明する。着脱可能デバイス100は、解析処理要求コマンドを撮像装置110から受信するたびに、図15の処理を実行し、実行対象の解析処理に対する認証判定処理を行う。
本処理では、まず、撮像装置110の演算処理部203が、着脱可能デバイス100に対して、解析処理要求コマンドを発行してデータを転送する。そして、着脱可能デバイス100の認証情報判定部1001が、この解析処理要求コマンドにより、第2の認証情報1421と解析処理引数値1422を検出する(S1501)。その後、認証情報判定部1001は、撮像装置110から受信したデータに対して認証判定処理を実行する(S1502)。例えば、認証情報判定部1001は、図12のようにして撮像装置100との間で認証を実行した時に取得した認証済解析処理リストの値と内部に記憶した第1の認証情報とに基づいて、第3の認証情報を算出する。そして、認証情報判定部1001は、撮像装置110から受信した第2の認証情報1431と、改めて算出した第3の認証情報とが一致した場合に、認証に成功したと判定する。さらに、認証情報判定部1001は、撮像装置110から受信した解析処理引数値1432で示される解析処理機能が、認証済解析処理リストに含まれている解析処理であることを判定する。認証情報判定部1001は、認証情報が一致すると判定し、かつ、解析処理引数値1432で示される解析処理機能が認証済解析処理リストに含まれると判定した場合に、認証に成功したと判定する。
着脱可能デバイス100は、認証に成功した場合(S1502でYES)、撮像装置110から指示された解析処理回路情報1012を記憶部404から読み出し、演算処理部412に展開する。そして、着脱可能デバイス100は、撮像装置110から指示された解析処理設定値1013を用いて解析処理回路に対する設定を行い、解析処理を実行する(S1503)。例えば、受信した画像データを階層的に演算処理するため、演算処理シーケンスを示す設定値と階層ごとの演算処理に使用する係数値とが記憶した記憶部404の先頭アドレス値を記憶制御部1003に設定する。記憶制御部1003は、設定されたアドレスの解析処理設定値1013を演算処理部412へ送信する。演算処理部412は、階層ごとの演算処理が終わる度に完了通知を記憶制御部1003へ通知し、記憶制御部1003は、演算処理の設定値を逐次読み出して演算処理部412に対して設定していく。なお、これらの一連の処理は一例であり、他の手順によって解析処理が実行されてもよい。
一方、認証情報判定部1001は、認証情報が一致しないと判定し、または、解析処理引数値1432で示される解析処理機能が認証済解析処理リストに含まれないと判定した場合に、認証に失敗したと判定する。着脱可能デバイス100は、認証に失敗した場合(S1502でNO)、解析処理機能を無効化する。例えば、記憶制御部1003に設定されている解析処理設定値1013のアドレスを削除し、解析処理設定値1013が演算処理部412へ設定されないような制御が実行される。これにより、演算処理部412のFPGAに設定値が設定されないことにより演算処理部412が動作を停止するため、解析処理機能が無効化される(S1504)。なお、上述の手順と異なる手順によって解析処理機能が無効化されてもよい。例えば、認証情報判定部1001が認証に失敗したと判定した場合、(例えば記憶制御部1003によって)演算処理部412のFPGAに設定された回路情報がリセットされるようにしてもよい。また、認証情報判定部1001が認証に失敗したと判定した場合、演算処理部412のFPGAが起動されないようにしてもよい。なお、FPGAは一例であり、任意の再構成可能装置がFPGAの代わりに用いられる場合に、このような無効化手法を適用することができる。すなわち、再構成可能装置に対して設定値を適用しない、再構成可能装置において構成されている回路情報をリセットする、再構成可能装置を起動しない、などの処理により、解析処理機能が無効化されうる。また、解析処理要求コマンドに応じて送信される画像データが、演算処理部412に転送されないようにしてもよい。この場合、画像データは、例えば、記憶部404にそのまま記憶されうる。また、例えば、画像データが演算処理部412に転送されて得られた処理結果が破棄されるようにしてもよい。すなわち、本実施形態での解析処理機能の無効化は、撮像装置110が処理の結果のデータを得ることができない状態に置くことを意図しており、解析処理機能自体は有効であってもよい。さらに、認証情報判定部1001は、指定された解析処理が無効であることを示す情報を含んだレスポンスを撮像装置110へ送信しうる(S1504)。
なお、例えば、着脱可能デバイス100は、撮像装置110からの要求された解析処理機能に対して認証が行われていない場合に、認証情報が一致しないこととなるため、認証に失敗したと判定することとなる。一例では、着脱可能デバイス100が有する解析処理機能のうち、撮像装置100が認証されていない解析処理機能が指定された場合に、着脱可能デバイス100は認証に失敗したと判定する。この場合、着脱可能デバイス100は、例えば、要求された解析処理について認証が未実行であることを示す情報を認証情報判定結果1432に含めて撮像装置110へ送信しうる。この場合、例えば、ユーザが撮像装置110の認証を実行するための所定の操作を実行することなどによって認証が実行された後に、再度、解析処理の要求があった場合には、その認証に成功したことに基づいて解析処理が実行される。
一方、着脱可能デバイス100は、自装置が現在装着されている撮像装置110が、認証された撮像装置ではない場合に認証に失敗したと判定する。着脱可能デバイス100は、例えば第1の撮像装置に装着された状態で、第2の撮像装置において認証した認証情報を用いた解析処理要求が第1の撮像装置によって行われた場合に、このような判定をする。着脱可能デバイス100は、通信している撮像装置110が、認証した撮像装置ではない場合は、演算処理回路412に展開した解析処理回路を削除し、解析処理機能を無効化する。この場合には、解析処理を要求した撮像装置110が、不正な装置であるため、処理を実行させない。この場合、着脱可能デバイス100は、例えば、要求された解析処理を実行することができないことを示す情報を認証情報判定結果1432に含めて撮像装置110へ送信しうる。さらに、着脱可能デバイス100は、例えば、現在装着されている撮像装置110を特定する情報をブラックリストに登録するなどにより、その後、所定のユーザ操作等がない限りはその撮像装置110による解析処理要求を受け付けないようにしうる。また、解析処理要求に含まれていた第2の認証情報について、認証済解析処理リストなどの情報を削除してもよい。これにより、情報が漏洩した場合に、その漏洩した情報が再度利用されることを防ぐことができる。このように、認証に失敗した場合に、その失敗の理由ごとに、異なる解析処理の無効化処理の方法が用いられるようにしてもよい。
上述の認証判定により、着脱可能デバイス100が装着された撮像装置110が認証済みの機器であるか否かを判定することにより、例えば動作が確認されている機器に対してのみ、解析処理機能を提供することが可能となる。また、このときに、要求された解析処理ごとに認証済みであるかが判定されることにより、より柔軟な制御を行うことができる。そして、着脱可能デバイス100は、実行対象の解析処理について未認証の撮像装置に対しては、その解析処理の機能を無効化することにより、適切な環境において機能が使用されるようにすることが可能となる。
なお、一例において、記録処理に関しない解析処理要求コマンドは、入出力制御部410において記録処理に関与するコマンドではないと判定された後に、処理切替部411へ送信され、SDコントローラ403へは送信されない。一方で、記録処理に関するコマンドは、SDコントローラ403へ送信され、処理切替部411や演算処理部412へは送信されない。ここで、認証に失敗した場合においても無効化されるのは解析処理機能のみである。このため、着脱可能デバイス100が記憶処理機能を有する場合には、認証の成否によらず、一般的なSDカードと同様に記憶処理を実行することが可能となる。記憶処理が行われる場合、FPGA402は、撮像装置110から受信したコマンドとデータをそのままSDコントローラ403へ入力し、SDコントローラ403は、受信したデータをコマンドで指定された記憶部404のアドレスに格納する。画像解析処理が行われる場合には、FPGA402から演算処理部412へ撮像装置110から受信したデータが入力され、演算処理部412はデータに対して解析処理を実行する。演算処理部412によって処理されたデータは、入出力制御部410へ返送され、処理結果のデータと、記憶部404の所定のアドレスを指定する情報とが、SDコントローラ403に出力される。SDコントローラ403は、指定された記憶部のアドレスに処理結果を格納する。
このようにして、コマンドが記録処理に関するものであるか否かに応じて、受信したデータの転送先が自動的に切り替えられ、適切な処理を実行することが可能となる。また、画像解析要求コマンドが受信された場合に、要求された画像処理に関する認証に成功した場合には、受信したデータが演算処理部412に入力される。一方、要求された画像処理に関する認証に失敗した場合には、受信したデータが演算処理部412に入力されずに、SDコントローラ403へ入力されて、記憶部404へ記憶される。このように、コマンドの種類に加えて認証の成否によって、入力されたデータに対するその後の処理を切り替えることができる。
なお、上述の実施形態では、解析処理要求コマンドを用いた認証判定処理について説明を行ったが、これに限られない。例えば、データラインで転送されるデータを用いて、解析処理要求が送受信されるようにしてもよい。例えば、送信する画像データの先頭データなどの所定位置のデータにおいて、上述のような第2の認証情報等を含んだ解析処理要求が送受信されるようにしてもよい。この場合、着脱可能デバイス100は、所定位置のデータから第2の認証情報と解析処理引数値を取得して、上述のような認証処理を実行することができる。
図16に、認証情報と解析処理引数値を含める場合の画像データの構成例を示す。なお、図16の例は一例に過ぎず、これ以外の構成が用いられてもよい。図16の例では、データはヘッダ部と画像データとを含み、ヘッダ部には第2の認証情報と撮像装置が要求する解析処理を示す引数値(解析処理選択引数値)や画像サイズ等を示す値が含まれる。また、着脱可能デバイス100は、撮像装置110から画像データを受信すると、受信した画像データ内のヘッダ部を解析して第2の認証情報を検出する。着脱可能デバイス100は、検出した第2の認証情報を用いて、上述のようにして認証処理を実行し、認証に成功したと判定した場合に、受信した画像データに対して解析処理を行う。一方、着脱可能デバイス100は、認証に失敗した場合、第2の認証情報をヘッダ部に含んでいた画像データやその後に続く画像データに対しては、解析処理要求が無効であると判定し、解析処理を行わないように決定しうる。
続いて、図17(A)〜図17(C)を用いて、着脱可能デバイス100の記憶部404に記憶される解析処理情報の例について説明する。図17(A)に示されるメモリマップ1701には、各情報が記憶されているアドレスの情報が含まれる。図17(A)の例では、認証情報1702、解析処理リスト1703、解析処理回路情報1704、および解析処理設定値1705について、格納されているアドレスが示されている。
図17(A)で示される解析処理リスト1703の記憶領域(すなわち、アドレスAD1から始まる所定範囲の記憶領域)には、図17(B)に示されるような認証済解析処理リストが記憶される。認証済解析処理リストにおいて、番号1711は、着脱可能デバイス100が有している解析処理の情報ごとに割り振られた通し番号である。種別1712は、着脱可能デバイス100が有している解析処理の情報の種別を示しており、その情報が解析処理回路データであるか解析処理設定値であるかを判別可能な値が格納される。アドレスは、各情報が記憶されている記憶部404のアドレスを示している。記憶制御部1003は、このアドレスの値に基づいて、解析処理設定値の読み出し等を実行する。なお、一例として、番号1711および種別1712を含んだ情報1713が、認証時に、解析処理リストとして撮像装置110へ送信される。認証済みフラグ1714および1715は、各認証済解析処理機能について、着脱可能デバイス100が装着された装置(撮像装置)との間で認証が行われたか否かが示される。フラグが「1」とされることにより、その解析処理機能が認証済みであることが示される。図17(B)の例では、装置Aに対しては、番号0002および番号0004の回路情報と、番号0006および番号0007の設定値を用いた解析処理が認証済解析処理機能として示されている。認証済フラグは、図17(B)のように、装着された複数の装置のそれぞれについて格納されるように構成される。ただし、これは一例に過ぎず、例えば、着脱可能デバイス100が抜去された時点で情報がクリアされる場合には、現在装着されている装置についてのみ情報が保持されれば足りるため、複数の装置についての情報が保持される必要はない。また、着脱可能デバイス100は、現在装着されている装置について認証が実行された場合に、その認証の結果得られた情報により、以前装着されていた装置についての認証の結果に基づく情報を上書きしてもよい。
図17(A)で示される認証情報1702の記憶領域(すなわち、アドレスAD0から始まる所定範囲の記憶領域)には、図17(C)に示されるような認証情報が記憶される。認証情報1702は、着脱可能デバイス100が装着された装置との間で認証を行う際に使用される値を含む。認証情報1702は、一例において、着脱可能デバイス100が装着された装置からはアクセスすることができない記憶領域に格納されうる。このために、着脱可能デバイス100は、例えば、認証情報生成部1002において各値を算出した後に、FPGA内の揮発性記憶部1004に、これらの値を記憶するように構成される。これにより、外部の装置が、着脱可能デバイス100から情報を読み出して不正に認証に成功できる状態となることを防ぐことができる。格納される値は、例えば、着脱可能デバイス100が装着された装置ごとの、装置識別情報1721、認証済解析処理機能1722を示す引数値、認証基情報1723、第1の認証情報1724、および、第2の認証情報1725である。
着脱可能デバイス100の認証情報生成部1002は、着脱可能デバイス100が装着された装置Aへの認証要求時に、装置Aから取得した装置識別情報1721と着脱可能デバイス100の持つ認証情報とに基づいて、認証基情報1723を生成する。認証情報生成部1002は、さらに、認証基情報1723に基づいて第1の認証情報1724を生成して、装置Aへ送信する。第1の認証情報1724は、例えば、各記憶領域に格納されたバイナリ値を結合した値を所定の関数へ入力することによって演算された値でありうる。着脱可能デバイス100は、その後に、自装置が装着された装置(例えば撮像装置)から第2の認証情報を受信すると、その第2の認証情報に基づく認証を実行する。着脱可能デバイス100は、例えば、送信した第1の認証情報1724と認証済解析処理機能とを含む情報とを管理装置が有する関数と同じ関数に入力して演算処理を実行し、第3の認証情報を生成する。そして、着脱可能デバイス100は、生成した第3の認証情報と、受信した第2の認証情報とを比較することにより、自装置が接続されている装置が認証済みの機器であるかを判定することができる。なお、着脱可能デバイス100は、例えば、事前に第2の認証情報に相当する値(図17(C)の第2の認証情報1725)を算出して保持していてもよい。これによれば、着脱可能デバイス100が装着された装置から第2の認証情報を受信した際に、その受信した情報と、保持している情報とを比較するだけで認証を実行することができる。
なお、着脱可能デバイス100は、装着されている装置に対して定期的に認証情報の送信を要求し、その要求に応じて取得した認証情報に基づいて、認証に失敗した時点で、解析処理機能を無効化することができる。なお、この認証情報の送信要求コマンドの送受信は、例えば、着脱可能デバイス100からコマンドを自発的に送信可能とするような新規のプロトコルを用いることによって行われうる。図18を用いて、着脱可能デバイス100が、自装置が装着されている装置(撮像装置110)に対して再度認証情報を要求する処理について説明する。
図18の処理では、着脱可能デバイス100は、まず、再認証を実行すべき条件が満たされているかを判定する(S1801)。再認証を実行すべき条件は、例えば、認証の成功後に所定時間が経過したこと、認証の成功後に解析処理の実行回数が所定回数を超えたことでありうる。着脱可能デバイス100は、再認証を実行すべき条件が満たされていないと判定した場合(S1801でNO)は、その条件が満たされるまで、前回の認証に基づく現状の動作を継続する。一方、着脱可能デバイス100は、再認証を実行すべき条件が満たされていると判定した場合(S1801でYES)、撮像装置110に対して認証情報の再送信を要求する(S1802)。例えば、再認証を実行すべき条件が所定時間の経過である場合、着脱可能デバイス100は、内部のタイマー回路によって所定時間の経過を検出し、撮像装置110からコマンドを受信していなくても、認証情報の再送信要求コマンドを撮像装置110へ送信する。認証情報の要求は、例えば、SD I/Fのコマンドラインによって行われる。一例において、図14(B)に示されるようなレスポンス1411と同様のデータ形式によって、コマンドが送信される。また、この認証情報の再送信要求に対する撮像装置110からのレスポンスは、図14(A)に示されるようなコマンド1401と同様のデータ形式によって送信されうる。すなわち、一例において、図14(A)及び図14(B)のコマンドとレスポンスの送信順序が入れ替えられたような形式で、認証情報の要求と返信とが行われうる。着脱可能デバイス100は、認証情報を要求したことに基づいて撮像装置110から再認証のレスポンス(解析要求コマンド)を受信すると、そのレスポンスに含まれる第2の認証情報に基づいて認証を実行する(S1803)。そして、着脱可能デバイス100は、認証に成功した場合(S1803でYES)は、処理をS1801に戻す。このとき、着脱可能デバイス100は、再認証を実行すべき条件に関する計測値(時間や解析処理の実行回数)をクリアしうる。その後、着脱可能デバイス100は、再度、再認証を実行すべき条件が満たされるまで図18の処理を待機状態とする。着脱可能デバイス100は、例えば認証情報の要求に対して撮像装置110が第2の認証情報を返信しなかった場合や、第2の認証情報による認証に失敗すると(S1803でNO)、処理をS1804へ移す。S1804では、着脱可能デバイス100は、装着された撮像装置100が認証済みの機器ではないものと判定し、解析処理機能を無効化する。そして、図18の処理を終了する。
図19を用いて、着脱可能デバイス100が、自装置が装着されている装置(撮像装置110)に対して認証情報を要求する処理の別の例について説明する。図19の処理においても、着脱可能デバイス100は、まず、再認証を実行すべき条件が満たされているかを判定する(S1901)。この処理はS1801と同様の処理である。着脱可能デバイス100は、再認証を実行すべき条件が満たされていないと判定した場合(S1901でNO)は、その条件が満たされるまで、前回の認証に基づく現状の動作を継続する。一方、着脱可能デバイス100は、再認証を実行すべき条件が満たされていると判定した場合(S1901でYES)、撮像装置110に対して送信済みの第1の認証情報と同様の特性を有するが異なる第4の認証情報を生成する(S1902)。そして、着脱可能デバイス100は、第4の認証情報を撮像装置110へ送信し、再度認証処理を要求する(S1903)。第4の認証情報は、前回送った第1の認証情報とは異なるため、撮像装置110は、管理装置に対して、その新たに生成された第4の認証情報を送信して、新たに、第2の認証情報と同様の特性を有する第5の認証情報を取得する。撮像装置100は、第4の認証情報を管理装置へ送信して認証処理が行われた結果の第5の認証情報を取得すると、その第5の認証情報を着脱可能デバイス100へ送信する。着脱可能デバイス100は、この第5の認証情報を取得すると、その第5の認証情報に基づいて、再度認証判定を実行する(S1904)。そして、着脱可能デバイス100は、認証に成功したと判定した場合(S1904でYES)、処理をS1901に戻す。このとき、着脱可能デバイス100は、再認証を実行すべき条件に関する計測値(時間や解析処理の実行回数)をクリアしうる。その後、着脱可能デバイス100は、再度、再認証を実行すべき条件が満たされるまで図19の処理を待機状態とする。着脱可能デバイス100は、第5の認証情報による認証に失敗すると(S1903でNO)、処理をS1904へ移す。S1904では、着脱可能デバイス100は、装着された撮像装置100が認証済みの機器ではないものと判定し、解析処理機能を無効化する。
以上のように、着脱可能デバイス100は、撮像装置110から認証情報を取得できない場合や認証情報が一致しない場合に、接続している撮像装置110が過去の他の機器の認証結果を利用したなりすましであると判定して、解析処理を無効化する。これにより、他の機器との認証結果を利用したなりすましの機器が、着脱可能デバイス100の処理機能を利用することを防止することが可能となる。なお、ここで無効化されるのは解析処理機能のみであるため、着脱可能デバイス100が記憶処理機能を有する場合は、着脱可能デバイス100は、撮像装置110が送信したデータを記憶する外部メモリとして使用することができる。
以上のように、本実施形態では、認証に失敗した撮像装置110に対して、着脱可能デバイス100が、自装置の有する1つ以上の所定の機能のうちの選択された機能を無効化する。これにより、例えば所定の機能について事前に動作確認がされている撮像装置110に対してのみ、その所定の機能を提供するようにすることができる。
なお、上述の実施形態では、撮像装置110が撮像した画像に基づく画像データを着脱可能デバイス100へ入力して所定の処理を実行させる場合の処理について説明したが、これに限られない。例えば、撮像装置110が録音した音声に基づく音声データを着脱可能デバイス100へ入力して所定の処理を実行させる場合についても、同様の処理が実行されうる。なお、音声データは、例えば、撮像と共に行われる録音に基づく音声データでありうるが、撮像を伴わずに音声だけを録音した場合の音声データであってもよい。すなわち、上述の処理は、画像データと音声データとの少なくともいずれかに対して実行されるように構成されうる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。