以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
(第1実施形態)
以下では、本実施形態に係る撮像システム10について説明する。
図1は、本実施形態の撮像システム10の構成の一例を示す。撮像システム10が、特定人物追跡システムである場合について説明する。ただし、撮像システム10は、上記に限定されず、画像を解析することで所定の情報を出力する任意のシステムに適用されてよい。撮像システム10は、撮像装置110a、撮像装置110b、撮像装置110c、撮像装置110d、ネットワーク120、情報処理装置130を含む。また、撮像システム10は、補助処理装置100a、補助処理装置100b、補助処理装置100c、補助処理装置100dを含む。なお、撮像装置110aから撮像装置110dは、例えば撮像画像を記録可能なデバイス(例えばSDカード)を着脱可能とするスロットをそれぞれ有する。各撮像装置が有するスロットに補助処理装置100aから補助処理装置100dが挿入されることで、両者は接続される。以下では、補助処理装置の代表例として補助処理装置100aと、撮像装置の代表例として撮像装置110aを用いて説明する。
補助処理装置100aは、撮像装置110aに対して着脱可能な演算デバイスである。補助処理装置100aは、一例として、SDカードに所定の処理回路を搭載したデバイスである。補助処理装置100aは、例えば、SDカードの態様に応じて、撮像装置110aにその全体が挿入可能なように構成される。これにより、補助処理装置100aは、撮像装置110aから突出する部分がない状態で、撮像装置110と接続される。補助処理装置100aは、撮像装置110a周辺の配線等の障害物と干渉しないため、撮像装置110aを配置する際の利便性が向上する。また、通常のネットワークカメラ等を含む撮像装置110aは、SDカードスロットを備えているため、補助処理装置100aは撮像装置110aに拡張機能を提供することができる。なお、補助処理装置100aは、SDカードの態様以外に、撮像装置110aで撮影された画像を記憶可能な記憶装置であってもよい。例えば、補助処理装置100aは、USBインタフェースを有していてもよく、それは撮像装置110aのUSBソケットに装着されるように構成されてもよい。また、所定の処理回路は、例えば、所定の処理を実行するようにプログラムされたFPGAであるが、それ以外の形式であってもよい。
撮像装置110aは、例えばネットワークカメラ等の撮像装置である。本実施形態で撮像装置110aは、画像処理等が可能な演算装置を内蔵するが、これに限定されることはない。例えば、撮像装置110aに接続されたPC等の情報処理装置(不図示)が存在してもよく、これらの組み合わせを、撮像装置110aとしてもよい。また、本実施形態では、全ての撮像装置に対し各補助処理装置が装着されている。図1で、4つの撮像装置にそれぞれ装着された補助処理装置を示しているが、撮像装置と補助処理装置の組み合わせは、例えば3つ以下であってもよいし、5つ以上であってもよい。画像解析処理機能を有する補助処理装置100aが、撮像装置110aに装着されることで、撮像装置110aが画像解析処理機能を有していなくても、撮像装置110aが画像処理を行うことができる。また、本実施形態のように撮像装置110aに画像処理用の演算装置が搭載されている場合、演算装置を搭載した補助処理装置100aが、撮像装置110aに装着されることにより、撮像装置110aの実行可能な画像処理を多様化及び高度化することができる。
情報処理装置130は、ユーザからの入力の受け付けや、ユーザへの情報の出力(例えば、画像の表示)を行う装置である。本実施形態では、例えば情報処理装置130は、PC等のコンピュータであり、そのコンピュータにインストールされたブラウザやネイティブアプリケーションによって、情報の入出力が行われる。なお、情報処理装置130は、スマートフォン、タブレット、PDA等の表示部と入力部が一体となった携帯情報端末であってもよい。
全ての撮像装置と情報処理装置130は、ネットワーク120を介して相互に通信可能なように接続される。ネットワーク120は、例えばEthernet(登録商標)等の通信規格を満たす複数のルータ、スイッチ、ケーブル等を含む。本実施形態では、ネットワーク120は、全ての撮像装置と情報処理装置130との間の通信を可能とする任意のネットワークであってよく、任意の規模及び通信規格で構成されてよい。例えば、ネットワーク120は、インターネット、有線LAN、無線LAN、WAN等であってよい。また、ネットワーク120は、例えば、ONVIF(Open Network Video Interface Forum)規格に準拠した通信プロトコルでの通信が可能なように構成されてよい。ただし、これに限られず、ネットワーク120は、例えば、独自の通信プロトコル及び他の通信プロトコル等で通信が可能なように構成されてもよい。
図2は、撮像装置110aの構成の一例を示す図である。撮像装置110aは、撮像部201、画像処理部202、演算処理部203、配信部204、I/F部205を含む。なお、撮像装置110bから撮像装置110cは、撮像装置110aと同様の構成を含む。撮像部201は、光を結像するためのレンズと、レンズで結像された光に応じたアナログ信号を変換するための撮像素子を含む。レンズは、画角を調整するズーム機能と、光量の調整を行う絞り機能等を有する。撮像素子は、光をアナログ信号に変換する際の感度調整を行うゲイン機能を有する。これらの機能は、画像処理部202から通知された設定値に基づいて調整される。撮像部201によって取得されたアナログ信号は、アナログ-デジタル変換回路によってデジタル信号に変換され、画像信号として画像処理部202へ転送される。
画像処理部202は、画像処理エンジンと、その周辺デバイス等を含む。周辺デバイスは、例えば、RAM及び各I/Fのドライバ等を含む。画像処理部202は、撮像部201で取得した画像信号に対して、例えば、現像処理、フィルタ処理、センサ補正、ノイズ除去等の画像処理を行うことで画像データを生成する。また、画像処理部202は、適切な露出画像を取得できるように、レンズ及び撮像素子へ設定値を送信することで露出調整を実行する。画像処理部202で生成された画像データは、演算処理部203へ転送される。
演算処理部203は、CPUとMPU(Micro ProcessingUnit)等の1つ以上のプロセッサ、RAMとROM等のメモリ、各I/Fのドライバを含む。演算処理部203は、撮像システム10で実行される処理について、撮像装置110aと補助処理装置100aのそれぞれが処理する分担を決定する。演算処理部203は、決定した分担に基づいて、処理を行う。処理内容と処理の分担の詳細は、後述する。画像処理部202が送信した画像データは、配信部204又はI/F部205へ転送される。また、演算処理部203による処理結果のデータは、配信部204へ転送される。
配信部204は、ネットワーク配信エンジンと、例えば、RAMとETH PHYモジュール等の周辺デバイスを含む。ETH PHYモジュールとは、Ethernetの物理(PHY)レイヤの処理を実行するモジュールである。配信部204は、演算処理部203から取得した画像データと処理結果のデータを、ネットワーク120へ配信可能な形式に変換し、変換されたデータをネットワーク120へ出力する。I/F部205は、補助処理装置100aと接続するためのインタフェース部分である。I/F部205は、例えば、電源と、補助処理装置100aを着脱するための着脱ソケット等の装着機構を含む。なお、I/F部205は、SDアソシエーションにより策定されたSD規格に従って構成されてよい。I/F部205は、演算処理部203で取得した画像データを補助処理装置100aへ転送することができ、補助処理装置100から撮像装置110aへのデータ転送を行うことができる。つまり、補助処理装置100aと撮像装置110aの間の通信は、I/F部205を介して行われる。
図3は、撮像装置110aの機能を示すブロック図を示す。撮像装置110aは、撮像制御部301、信号処理部302、記憶部303、制御部304、解析部305及び通信部306を含む。なお、撮像装置110bから撮像装置110cは、撮像装置110aと同様の構成を含む。
撮像制御部301は、撮像部201を介して撮像装置110aの周囲の環境を撮影する制御を実行する。信号処理部302は、撮像制御部301によって撮影された画像に対して所定の処理を行い、撮影画像のデータを生成する。信号処理部302は、例えば、撮像制御部301によって撮影された画像を符号化する。信号処理部302は、静止画像に対して、例えば、JPEG等の符号化方式を用いて符号化を行う。また、信号処理部302は、動画像に対して、H.264/MPEG-4 AVC(以下、H.264)、HEVC(High Efficiency Video Coding)等の符号化方式を用いて符号化を行う。また、信号処理部302は、予め設定された複数の符号化方式の中から、例えば撮像装置110aの操作部(不図示)を介して、ユーザにより選択された符号化方式を用いて、画像を符号化してもよい。
記憶部303は、解析部305において実行可能な解析処理のリスト(以下、第1処理リスト)と、解析処理の結果に対する後処理のリストを記憶する。また、記憶部303は、後述する解析処理の結果を記憶する。なお、本実施形態では、解析処理の他に任意の処理が実行されてもよい。記憶部303は、任意の処理に関連する処理について、第1処理リストと後処理のリストを記憶する。制御部304は、撮像装置110aの全般的な制御を行い、信号処理部302、記憶部303、解析部305及び通信部306を制御する。
解析部305は、撮影画像に対して、後述する解析前処理、解析処理、解析後処理の少なくともいずれかを選択することで解析を実行する。解析前処理は、撮影画像の解析処理を実行する前に、撮影画像に対して実行する処理のことである。解析前処理は、撮影画像を分割した分割画像を作成する処理のことをいう。解析処理は、入力された分割画像を解析することで得られる情報を出力する処理のことである。解析処理は、解析前処理によって得られた分割画像を入力として、人体検出処理、顔検出処理、車両検出処理の少なくともいずれかを実行する。解析処理は、上記の検出処理に係る解析処理結果を出力する。
解析処理は、例えば特許文献1のように、画像に含まれるオブジェクトを検出できるように学習が行われた機械学習モデルを用いて、分割画像中のオブジェクトの位置を出力する処理であってよい。解析後処理は、解析処理を実行した後に実行する処理である。解析後処理は、各分割画像に対する解析処理結果に基づいて、各分割画像において検出されたオブジェクトの数を合計した値を処理結果として出力する処理である。なお、解析処理は、学習データに基づいてパターンマッチングを行うことで画像中のオブジェクトを検出してもよく、オブジェクトを検出した位置を出力するものであってよい。
通信部306は、補助処理装置100aと通信を行う。通信部306は、入力された画像データを補助処理装置100aによって処理可能な形式に変換し、その変換で得られた画像データを補助処理装置100に送信する。また、通信部306は、補助処理装置100aからデータを受信し、受信したデータを撮像装置110aが処理可能な形式に変換する。本実施形態では、通信部306は、変換処理として、小数について浮動小数点形式から固定小数点形式へ変換する処理を実行するが、これに限定されることはない。他の変換処理が、通信部306によって実行されてもよい。また、通信部306は、補助処理装置100aにSD規格の範囲内で事前に定められたコマンドシーケンスを送信し、補助処理装置100からの応答を受信することができる。これにより、通信部306は、撮像装置110aと補助処理装置100aの間の通信を行うことができる。通信部306はまた、ネットワーク120を介して、情報処理装置130との通信を行うことができる。
図4は、補助処理装置100aの構成を示す図である。補助処理装置100aは、I/F部401、回路402(FPGA)、コントローラ403及び記憶部404を含む。なお、補助処理装置100bから補助処理装置100dは、補助処理装置100aと同様の構成を含む。補助処理装置100aは、撮像装置110aが有するI/F部205の着脱ソケットに挿抜できる形状として、例えばSD規格に準拠した形状を有する。
I/F部401は、撮像装置110a等の装置と補助処理装置100aを接続するためのインタフェース部分である。I/F部401は、電気的な接点端子等であり、例えば撮像装置110aから電源の供給を受け、補助処理装置100a内で使用する電源を生成及び分配する。I/F部401は、撮像装置110aのI/F部205と同様に、SD規格に準拠するものとする。撮像装置110aからの画像及び設定データの受信と、回路402から撮像装置110aへのデータの送信は、I/F部401を介して実行される。
回路402は、制御部410、切替部411及び処理部412を含む。回路402は、FPGAであり、内部の論理回路構造を繰り返し再構成できる半導体デバイスの一種である。補助処理装置100aが装着された撮像装置110aは、回路402が有する処理機能により、処理機能が追加される。また、回路402の再構成機能は、論理構造を設定した後でも論理回路構造を変更することができる。そのため、例えば技術の進歩が早い分野の装置(不図示)に対し補助処理装置100aを装着することにより、補助処理装置100aは装置に適した処理を実行することが可能となる。なお、本実施形態では、FPGAが用いられる例について説明するが、FPGAと同様の処理を実現できるのであれば、例えば汎用のASIC及び専用のLSIが用いられてもよい。
回路402は、生成される論理回路構造の情報を含んだ設定データが専用のI/Fから書き込まれることにより、又は、その設定データがその専用のI/Fから読み出されることによって起動される。本実施形態では、この設定データが記憶部404に保持されている。回路402は、補助処理装置100aに電源が投入されると、記憶部404から設定データを読み出し、論理回路を生成して起動する。起動方法はこれに限られず、例えば、補助処理装置100a内に専用回路を実装し、I/F部401を介して撮像装置110aが回路402に設定データを書き込んでもよい。
制御部410は、撮像装置110aと補助処理装置100aの間で画像を送受信するための回路と、撮像装置110aから受信したコマンドを解析する回路と、解析結果に基づいて制御を行う回路を含む。コマンドは、SD規格に準拠しているものであり、制御部410はそれらのコマンドのうちのいくつかを検出することができる。制御部410は、記憶処理を行う場合にコントローラ403へ画像を送信し、画像解析処理を行う場合に処理部412へ画像を送信するように制御を行う。また、制御部410は、処理の切り替えを行う設定データを受信した場合、切替部411へ設定データを送信する。切替部411は、撮像装置110aから受信した設定データに基づいて、記憶部404から画像解析処理機能の情報を取得し、その情報を処理部412に書き込むための回路を含む。画像解析処理機能の情報は、例えば、処理部412内で処理される演算の順序、種類、演算係数を含む設定パラメータである。
処理部412は、画像解析処理機能を実行するために必要な複数の演算回路を含む。処理部412は、切替部411から受信した画像解析処理機能の情報に基づいて、各演算処理を実行する。処理部412は、その処理結果を撮像装置110aへ送信し、必要に応じて、その処理結果を記憶部404に記録する。このように、回路402は、事前に保持された複数の処理機能に対応する設定データから、処理部412が実行する処理機能の設定データを抽出する。回路402は、抽出した設定データに基づいて、処理部412によって実行される処理内容を書き換える。これにより、補助処理装置100aが、複数の処理機能のうちの少なくともいずれかを選択的に実行することができる。また、新規に追加する処理の設定データを随時追加することにより、撮像装置110aは補助処理装置100aに最新の処理を実行させることができる。
以下では、複数の処理機能のそれぞれに対応する複数の設定データを有していることを、複数の処理機能を有すると表現する。すなわち、補助処理装置100aの回路402が、1つの処理機能を実行するように構成されている状態であっても、他の処理機能を含む設定データにより、処理部412の処理内容を変更することができる場合、複数の処理機能を有する。
コントローラ403は、SD規格に準拠するような公知のコントロールIC(集積回路)であり、SDプロトコルのスレーブ動作の制御と、記憶部404に対するデータの読み書きの制御を実行する。記憶部404は、例えばNAND型フラッシュメモリによって構成され、例えば、撮像装置110aから書き込まれた記憶データ、処理部412に書き込まれる画像解析処理機能の情報、回路402の設定データ等の各種情報を記憶する。
図5は、補助処理装置100aの機能の一例を示す。補助処理装置100aは、解析部501及び通信部502を含む。解析部501は、画像に対する解析処理を実行する。解析部501は、例えば、解析処理設定要求を入力された場合に、入力された解析処理を実行可能な状態にするための設定を実行する。また、解析部501は、画像が補助処理装置100aに入力された場合、入力画像に対して、実行可能な状態に設定された解析処理を実行する。本実施形態では、実行可能な解析処理は、人体検出処理と顔検出処理であるが、これらに限られない。例えば、事前に記憶された人物が画像に含まれるか否かを判定する処理である顔認証処理であってもよい。解析部501は、例えば、事前に記憶された人物の画像特徴量と、入力された画像から検出された人物の画像特徴量との一致度合いを算出し、一致度合いが閾値以上の場合に事前に記憶された人物であると判定する。
また、解析処理は、プライバシー保護を目的として、入力画像から検出された人物に対して、所定のマスク画像を重畳したり、モザイク処理を施したりする処理であってもよい。また、人物の特定の行動を機械学習によって学習した学習モデルを用いて、画像中の人物が特定の行動を行っているか否かを検出する処理であってもよい。さらには、画像中の領域がどのような領域なのかを判定する処理であってもよい。例えば、建物、道路、人物及び空等を機械学習によって学習した学習モデルを用いて、画像中の領域がどのような領域なのかを判定する処理であってもよい。以上のように、実行可能な解析処理は、機械学習を用いた画像解析処理にも、機械学習を用いない画像解析処理にも応用可能である。また、上記の各解析処理は、補助処理装置100aが単独で行うのではなく、撮像装置110aと協働して実行されてもよい。通信部502は、I/F部401を介して、撮像装置110aと通信を行う。
図6は、情報処理装置130の構成の一例を示す。情報処理装置130は、一般的なPC等のコンピュータであり、例えば、図6に示すように、CPU601、RAM602、ROM603、HDD604及びI/F605を含む。情報処理装置130は、CPU601が、メモリ及び記憶装置に格納されたプログラムを実行することにより、各種機能を実行することができる。
図7は、本実施形態に係る情報処理装置130の機能の一例を示す。情報処理装置130は、通信部701、制御部702、表示部703、及び操作部704を含む。通信部701は、ネットワーク120と接続され、ネットワーク120を介して撮像装置110等の外部装置(不図示)との通信を実行する。これに限定されず、例えば、通信部701は、撮像装置110aに対する直接的な接続を確保し、ネットワーク120及び他の装置を介さずに、撮像装置110と通信を行ってもよい。制御部702は、通信部701、表示部703及び操作部704がそれぞれの処理を実行することができるように制御する。
表示部703は、例えばLCD及び有機EL等を含むディスプレイであり、ユーザに各種情報を提示することができる。表示部703は、ブラウザがレンダリングした結果(例えば、画像)をディスプレイに表示することによって、結果がユーザに提示される。なお、ディスプレイ表示以外の方法として、例えば音声と振動等でユーザに情報を伝達してもよい。操作部704は、ユーザからの操作を受け付ける。操作部704は、例えばマウス、キーボード等であり、ユーザがこれらを操作することで、ブラウザにユーザ操作を入力することができる。上記に限定されることはなく、操作部704は例えば、タッチパネル、マイク及びユーザの意図を検出することができる任意のデバイスであってもよい。
以下では、撮像システム10内で実行される処理の流れについて説明する。各処理のうち撮像装置110aが実行する処理は、演算処理部203内のCPUがメモリ等に記憶されたプログラムを実行することによって実現される。ただし、これは一例に過ぎず、後述の処理の一部又は全部が、専用のハードウェアによって実現されてもよい。また、補助処理装置100aと情報処理装置130がそれぞれ実行する処理は、各装置のCPUがメモリ等に記憶されたプログラムを実行することによって実現されてもよい。あるいは、上記の処理の一部又は全部が、専用のハードウェアによって実現されてもよい。
図8は、撮像システム10で実行される画像解析処理のフローチャートを示す。図8において、ユーザが撮像装置110aに補助処理装置100aを装着する(S801)。次に、撮像装置110aは、補助処理装置100aの初期化シーケンスを実行する(S802)。初期化シーケンスは、撮像装置110aから補助処理装置100aへ所定のコマンドが送信されることにより、補助処理装置100aを使用可能な状態とすることである。その後、撮像装置110aは、補助処理装置100aが実行可能な処理を判定する。処理の判定は、撮像装置110aのみ又は撮像装置110aと補助処理装置100aの組み合わせで行われてよい(S803)。なお、補助処理装置100aは、任意の処理を実行できるように構成されるが、任意の処理は撮像装置110aで実行されるべき処理と無関係な処理を含まなくてよい。
例えば、撮像装置110aは、情報処理装置130から事前に取得した補助処理装置100aの実行可能な処理のリストを保持しておいてもよい。この場合、撮像装置110aは、補助処理装置100aの実行可能な処理のリストに基づいて、補助処理装置100aの実行可能な処理を判定することができる。撮像装置110aは、補助処理装置100aに実行させる処理を決定し、必要に応じて、決定した処理を補助処理装置100aに設定する(S804)。すなわち、実行可能な処理のうち少なくとも一部の処理が、補助処理装置100aによって実行されることが決定した場合、補助処理装置100aにおいて、その一部の処理を行うための設定が実行される。
この設定は、例えば、実行対象となった一部の処理に対応する設定データで、回路402の再構成を行うことを含む。回路402の再構成が完了した後、撮像装置110a又は補助処理装置100aが、所定の解析処理を実行する(S805)。次に、撮像装置110aは、解析結果に対する後処理を実行する(S806)。なお、S805とS806の処理は、所定の回数を繰り返すことにより実行される。図8の一連の処理は、補助処理装置100aが撮像装置110aに装着された場合に実行される。例えば、補助処理装置100aが、撮像装置110aから取り外された場合に、S803の処理が再度実行されてもよく、図8の処理の少なくとも一部が繰り返し実行されてもよい。
図9は、撮像装置110aが実行可能な処理を判定する処理のフローチャートを示す。本処理は、図8のS803の処理に対応し、補助処理装置100a等が撮像装置110aに装着又は抜去された場合及び撮像装置110aの電源がオンとなった場合に実行される。本処理において、撮像装置110aは、補助処理装置100aが実行可能な処理を読み出し、その処理と撮像装置110aが実行可能な解析処理を統合し、撮像装置110aで実行可能な解析処理を判定する。以下、本処理の概要を説明する。
まず、撮像装置110aの制御部304は、記憶部303に記憶された実行可能な処理のリストである第1処理リストを読み出す(S901)。次に、制御部304は、装着されたデバイスが、例えば従来の記憶機能のみを有するデバイスであるか、補助処理装置100a等の特定の処理機能を有する所定のデバイスであるか否かを判定する(S902)。例えば、制御部304は、通信部306を制御して、装着されたデバイスに対して、特定のアドレスへの読み出しが可能な要求(リードコマンド)を発行する。通信部306は、装着されたデバイスの特定のアドレスに格納されているフラグデータを読み出す。以下では、この特定のアドレスを「アドレスA」と呼ぶ。アドレスAに格納されているデータの詳細については後述する。そして、制御部304は、読み出したフラグデータに基づいて、装着されたデバイスが特定の処理機能を有する補助処理装置100aであるか否かを判定する。ただし、これは一例に過ぎず、他の方法によって、装着されたデバイスが補助処理装置100aであるか否かが判定されてもよい。
装着されたデバイスが、補助処理装置100aである場合(S902でYES)、制御部304は、補助処理装置100aにおいて実行可能な処理を判定するための処理を実行し、処理はS903に進む。制御部304は、通信部306を制御して補助処理装置100aと通信し、補助処理装置100aにおいて実行可能な処理のリストである第2処理リストを取得する(S903)。制御部304は、例えば、装着されたデバイスが補助処理装置100aであるか否かを判定した場合と同様に、アドレスAに格納されているデータを読み出すことにより、第2処理リストを取得する。
なお、第2処理リストは、補助処理装置100aであるか否かの判定を行うためのフラグデータと同一のアドレスAに格納される。この場合、撮像装置110aは、アドレスAにアクセスすることにより、フラグデータと第2処理リストを同時に取得し、S902の処理とS903の処理とを同時に実行する。フラグデータと第2処理リストは、アドレスAとは異なる別のアドレスに格納されてもよい。その後、制御部304は、記憶部303から読み出した撮像装置110aが実行可能な処理の第1処理リストと、補助処理装置100aから取得した第2処理リストが統合された統合処理リストを作成し(S904)、処理を終了する。
統合処理リストは、ネットワーク120上のサーバ等の装置による処理が行われることなく、撮像装置110aがローカルで実行可能な処理を示すリストである。なお、本実施形態では、統合処理リストは、第1処理リストの処理と第2処理リストの処理の和集合によって得られるリストである。また、統合処理リストは、第1処理リストと第2処理リストの少なくともいずれかに含まれる処理がリスト化されたものである。これに限られず、例えば、第1処理リストの処理と第2処理リストの処理を組み合わせることによって別の処理が実行可能となる場合、その実行可能となる別の処理が、統合処理リストに加えられてもよい。
すなわち、第1処理リストの処理の少なくとも一部と第2処理リストの処理の少なくとも一部が、一緒に実行されることにより、新たな解析処理が実行可能となる場合、その解析処理の情報が統合処理リストに追加されてよい。例えば、顔認証処理は、顔検出処理機能、顔特徴抽出処理機能及び顔特徴照合処理機能によって実現される。このとき、第1処理リストに顔検出処理機能と顔特徴抽出処理機能が含まれ、かつ、第2処理リストに顔特徴照合処理機能が含まれる場合、統合処理リストに顔認証処理が含められてよい。
S902に戻って、装着されたデバイスが補助処理装置100aでない場合(S902でNO)、制御部304は、装着されたデバイスによる実行可能な処理がないと判定する。このため、制御部304は、記憶部303から読み出した撮像装置110aにおいて実行可能な処理である第1処理リストを、統合処理リストとして判定し(S905)、処理を終了する。なお、装着デバイスが撮像装置110aから抜去されて図9の処理が実行される場合、所定のデバイスは存在しないため、第1処理リストが統合処理リストであると判定される。
これにより、特定の処理を実行可能な補助処理装置100aが、撮像装置110aに装着されているか否かに基づいて、撮像装置110でローカルに実行可能な処理をリスト化することができる。また、情報処理装置130の表示部703が統合処理リストをユーザに提示することにより、ユーザは、撮像装置110aでローカルに実行可能となる処理を選択することができる。なお、本実施形態では、統合処理リストを生成する場合を示したが、第1処理リストと第2処理リストが別個に管理され、統合処理リストが生成されなくてもよい。すなわち、補助処理装置100aで実行可能な処理と、撮像装置110aで実行可能な処理が区別できるように管理されることで、統合処理リストの生成を省略することができる。
一方で、第1処理リストと第2処理リストが別個に管理される場合であっても、統合処理リストが生成されてもよい。例えば、第1処理リストの処理と第2処理リストの処理が一緒に使用されることにより、新たな処理が実行可能となる場合、新たな処理は、第1処理リストと第2処理リストの処理には含まれないが、統合処理リストに含まれ得る。なお、統合処理リストが出力される場合、その統合処理リストに含まれる処理が、第1処理リストと第2処理リストとのいずれに含まれる処理であるか否かを区別するための情報が出力される。これにより、ユーザは、表示部703に提示された処理を補助処理装置100aなしで実行可能であるか否かを認識することができる。
なお、統合処理リストは、情報処理装置130の表示部703に提示されるが、これに限定されることはない。例えば、撮像装置110aがディスプレイを有する場合、そのディスプレイに統合処理リストが表示されてもよい。撮像装置110aが音声出力機能を有する場合、その機能を介して統合処理リストが出力されてもよい。撮像装置110aがユーザに統合処理リストを提示することにより、ユーザは、意図しない機能を有する補助処理装置100aが撮像装置110aに誤って装着された場合を迅速に認識できる。このように、撮像装置110aは、撮像装置110aが実行可能な処理を示す第1処理リストと補助処理装置100aが実行可能な処理を示す第2処理リストに基づく情報を、任意の形式で出力できる。
また、撮像装置110aは、補助処理装置100aが抜去された場合、図9の処理を再度実行することで統合処理リストを更新することができる。このとき、撮像装置110aは、抜去された補助処理装置100aに関する第2処理リストを破棄する。これに限られず、撮像装置110aは、補助処理装置100aに関する第2処理リストを記憶部303に記憶しておくことで、その補助処理装置100aが装着されていない場合であっても、第2処理リストを出力できる。すなわち、撮像装置110aは、過去に撮像装置110aに装着され、かつ抜去された補助処理装置100aについての第2処理リストを出力してもよい。また、撮像装置110aは、上記の第2処理リストの処理と、第1処理リストの処理を組み合わせることで実行可能となる処理を出力してもよい。すなわち、撮像装置110aは、撮像装置110aのみで実行不可な処理の情報を出力できる。このとき、ユーザに、撮像装置110aのみで実行不可な処理に対応することができる補助処理装置100aが存在することを通知してもよい。
さらに、撮像装置110aは、過去に撮像装置110aに装着されておらず、かつ、撮像装置110aに装着可能な補助処理装置100aについての第2処理リストを出力してもよい。このような補助処理装置100aと、それが実行可能な解析処理を示す情報は、例えば、撮像装置110aにより外部サーバ(不図示)からネットワークを介して取得されてよい。また、実行可能な解析処理を示す情報は、例えば、撮像装置110aの記憶部303に事前に保持していてもよい。また、撮像装置110aは、未装着である補助処理装置100aについての第2処理リストの処理と、第1処理リストの処理を組み合わせることで、実行可能となる処理を出力してもよい。すなわち、撮像装置110aは、それのみで実行できない処理の情報を出力できる。このとき、ユーザに、撮像装置110aのみで実行不可な処理に対応することができる補助処理装置100aが存在することを通知してもよい。
なお、撮像装置110aは、それに対して未装着である補助処理装置100aについての第2処理リストを記憶する際、その補助処理装置100aの機種番号等のデバイスを特定可能な情報を一緒に記憶することができる。撮像装置110aは、第2処理リストを出力する際に、補助処理装置100aを特定可能な情報も一緒に出力することができる。これにより、ユーザが、表示部703に提示された処理機能を使用するために、どの補助処理装置100aを撮像装置110aに装着すればよいかを容易に認識することができる。
図10は、撮像装置110aが解析処理内容を決定する処理のフローチャートを示す。本処理において、情報処理装置130は、撮像装置110aでローカルに実行可能な解析処理をユーザに提示し、情報処理装置130はユーザの選択を受け付け、受け付けた情報を撮像装置110aに送信する。撮像装置110aは、情報処理装置130から受信したユーザ選択の情報に応じて、実行対象の解析処理を決定する。以下、本処理の概要を説明する。
図10で、情報処理装置130の制御部702が、通信部701を介して、撮像装置110aに撮影画像、統合処理リスト及び後処理リストを要求する(S1001)。このとき、情報処理装置130は、例えばONVIF規格に準拠した要求メッセージを撮像装置110aへ送信することによって、撮像装置110aからの情報を要求する。これに限られず、他の要求メッセージ等によって情報の送信要求が行われてもよい。撮像装置110aは、この要求に基づいて、撮像制御部301を介して周囲の環境を撮影し、制御部304が信号処理部302を制御して、撮影された画像を処理することで撮影画像を取得する(S1002)。なお、撮像装置110aは、情報処理装置130からの要求の有無によることなく、周囲の環境を撮影して、撮影画像を取得してもよい。
撮像装置110aは、撮影画像を記憶部303のようなローカルに保存してもよく、又は、撮影画像をネットワークサーバ等の外部装置に保存してもよい。次に、制御部304は、記憶部303に記憶されている後処理リストを読み出す。後処理リストは、本実施形態では表示処理及び保存処理であるが、これに限られない。制御部304は、後処理リストと、図9の処理で取得した統合処理リストと、S1002で取得した撮影画像を情報処理装置130へ送信する(S1003)。撮像装置110aは、ONVIF規格に準拠した要求メッセージに対応する応答メッセージを、情報処理装置130へ送信する。これにより、情報処理装置130は情報を受信することができる。
制御部702は、撮像装置110aから撮影画像、統合処理リスト、後処理リストを受信する。制御部702は、表示部703の画面等に統合処理リストと後処理リストをユーザに提示する(S1004)。このとき、制御部702は、上記のリストと一緒に撮影画像を画面表示してもよい。ユーザは、表示部703に表示された統合処理リストと後処理リストを確認する。ユーザは、操作部704を介して任意の解析処理を統合処理リストの中から選択する(S1005)。また、ユーザは、操作部704を介して、解析処理結果に対する任意の後処理を選択する(S1006)。操作部704は、ユーザによる解析処理と後処理の選択結果を、制御部702に送信する。制御部702は、操作部704から受信した解析処理と後処理をそれぞれ示す情報を撮像装置110aへ送信する(S1007)。
撮像装置110aの制御部304は、情報処理装置130からユーザによって選択された解析処理を示す情報を受信すると、その解析処理が第2処理リストに含まれているか否かを判定する(S1008)。次に、制御部304は、ユーザ選択の解析処理が第2処理リストに含まれていないと判定する場合(S1008でNO)、撮像装置110aでその解析処理を実行する。これにより、制御部304は、補助処理装置100aへ通知することなしに、処理を終了する。一方、制御部304は、ユーザ選択の解析処理が第2処理リストに含まれると判定する場合(S1008でYES)、処理はS1009に進む。制御部304は、ユーザ選択の解析処理に関する設定要求を補助処理装置100aに送信する(S1009)。
補助処理装置100aの通信部502は、ユーザ選択の解析処理の設定要求を撮像装置110aから受信する。このとき、通信部502は、撮像装置110aによる書き込みデータ量と書き込みコマンドの種別に基づいて、ユーザ選択の解析処理の設定要求を判定する。設定要求の判定方法の詳細は後述する。通信部502は、撮像装置110aから受信したユーザ選択の解析処理の設定要求を、解析部501に送信する。解析部501は、通信部502から受信したユーザ選択の解析処理の設定要求に基づいて、補助処理装置100aが処理を実行可能な状態となるような設定を実行する(S1010)。通信部502は、処理の設定が完了した後に、設定完了通知を撮像装置110aへ送信する(S1011)。なお、通信部502は、補助処理装置100aの処理設定が完了していないときに、撮像装置110aがデータを補助処理装置100aに書き込まないようにするための情報を通知する。通信部502は、処理設定が完了する前に、設定完了予定の情報等を撮像装置110aに通知してもよい。撮像装置110aの制御部304は、通信部306を制御して、補助処理装置100aから処理設定の完了通知を受信する。
補助処理装置100aから撮像装置110aへの処理設定の完了通知は、例えば、以下の3つ方法のうちのいずれかを用いて実行され得る。第1の通知方法は、通信部502が、撮像装置110aによる1ブロック目のデータの書き込み処理中であり、ユーザ選択の解析処理の設定が完了していない場合、BUSY信号を出力する。BUSY信号の出力は、例えば、SD規格に準拠したDATAの信号ラインをLow状態にドライブしておくことにより行われる。この場合、撮像装置110aは、BUSY信号を確認することにより、ユーザ選択の解析処理の設定が完了したか否かを判定することができる。
第2の通知方法は、ユーザ選択の解析処理の設定が完了するまでの時間を上述の特定アドレスに事前に格納し、撮像装置110aがその設定完了までの時間を読み出す。撮像装置110aは、ユーザ選択の解析処理の設定完了までの時間が経過した後に、書き込みデータの出力としてライトコマンドを発行する。これにより、撮像装置110aは、ユーザ選択の解析処理の設定が完了した後に、撮影画像のデータを補助処理装置100aに送信できる。第3の通知方法は、解析部501が、ユーザ選択の解析処理の設定が完了した際に、補助処理装置100aの第2の特定アドレスに設定完了のフラグを書き込む。撮像装置110aは、この第2の特定アドレスのデータを読み出すことにより、ユーザ選択の解析処理の設定が完了したか否かを判定できる。なお、設定完了のフラグが書き込まれる第2の特定アドレスの情報は、上述の特定のアドレスに格納されてもよいし、別のアドレスに格納されてもよい。
図10の処理は、統合処理リストを用いることにより、撮像装置110aの状態を考慮しつつ、ユーザ選択の解析処理を適切に決定することができる。また、ユーザ選択の解析処理が補助処理装置100aで実行される処理を含む場合に補助処理装置100aの設定を自動で行うことにより、ユーザによる設定操作を必要としない。さらに、補助処理装置100aはユーザ選択の解析処理を実行するための準備を自動で行う。ユーザ選択の解析処理が、補助処理装置100aで実行される処理を含まない場合、補助処理装置100aの設定を変えることなしに、撮像装置110aで処理を実行することができる。
図11は、撮像装置110aが解析処理を実行する際の処理のフローチャートを示す。図11で撮像制御部301が周囲の環境を撮影する(S1101)。制御部304は、信号処理部302を制御して、撮像制御部301によって撮影された画像の処理を行い、撮影画像を取得する。その後、制御部304は、解析部305を制御して、制御部304から入力された撮影画像に対して解析前の処理を実行し、解析前の処理結果である画像を取得する(S1102)。制御部304は、ユーザ選択の解析処理が第2処理リストに含まれるか否かを判定する(S1103)。制御部304は、ユーザ選択の解析処理が第2処理リストに含まれないと判定した場合(S1103でNO)、撮像装置110a内で解析前の処理結果である画像に対する解析処理を実行する(S1104)。制御部304は、解析部305を制御して、解析処理結果に対する解析後の処理を実行し(S1108)、処理を終了する。
制御部304は、ユーザ選択の解析処理が第2処理リストに含まれていると判定した場合(S1103でYES)、解析前の処理結果である画像を補助処理装置100aに送信する(S1105)。例えば、制御部304は、解析前の処理結果の書き込み要求(ライトコマンド)を発行し、補助処理装置100aへ解析前の処理結果である画像を送信する。補助処理装置100aの通信部502は、解析前の処理結果である画像を撮像装置110aから受信し、その画像を解析部501に送信する。解析部501は、通信部502から受信した画像に対して、S1010で設定された解析処理を実行する(S1106)。通信部502は、解析部501による画像の解析処理結果を撮像装置110aへ送信する(S1107)。制御部304は、通信部306を制御して、補助処理装置100aから画像の解析処理結果を受信する。制御部304は、解析部305を制御して、解析処理結果に対して解析後の処理を実行する(S1108)。
補助処理装置100aから撮像装置110aへの解析処理結果の送信は、以下の通りで行われる。解析部501は、解析処理結果をユーザ選択の解析処理ごとに割り当てられた解析処理結果の格納先アドレスに格納する。撮像装置110aは、例えば第2処理リストと共にアドレスAに格納された解析処理結果の格納アドレスを読み出し、その格納アドレスに対する読み出し要求(リードコマンド)を補助処理装置100aに送信する。補助処理装置100aは、通信部502を介して、解析処理結果の格納アドレスへの読み出し要求を受け取り、解析処理結果を撮像装置110aに送信する。なお、撮像装置110aは、例えばアドレスAに格納された推定処理時間の経過後に、解析処理結果の格納アドレスに対する読み出し要求を発行する。
補助処理装置100aは、解析前の処理結果における最後の1ブロックの書き込み要求からユーザ選択の解析処理が終了するまでの間、BUSY信号を出力してもよい。このとき、撮像装置110aは、補助処理装置100aのBUSY信号を受信しなくなった場合、解析処理結果の格納アドレスに対する読み出し要求を発行しうる。これにより、撮像装置110aは、補助処理装置100aによるユーザ選択の解析処理が終了した後に、処理結果を取得することが可能となる。本処理によれば、撮像装置110は、ユーザ選択の解析処理に応じて、撮影画像を補助処理装置100aに転送するか否かを決定することができる。これにより、ユーザは、解析処理を撮像装置110aと補助処理装置100aのいずれが実行するかを意識することなしに、撮影画像の解析処理を実行することが可能となる。
図12は、撮像装置110aが後処理を実行する際のフローチャートを示す。図12で撮像装置110aの制御部304が、実行対象の後処理に「表示」が含まれるか否かを判定する(S1201)。制御部304は、実行対象の後処理に表示が含まれると判定した場合(S1201でYES)、処理はS1202に進む。制御部304は、通信部306を制御して、解析処理の結果を情報処理装置130へ送信する(S1202)。情報処理装置130の制御部702は、撮像装置110aから解析処理の結果を受信すると、解析処理の結果を表示部703でユーザに提示する(S1203)。一方、制御部304が実行対象の後処理に表示が含まれないと判定した場合(S1201でNO)、S1202及びS1203の処理は実行することなしに、処理はS1204に進む。
制御部304は、実行対象の後処理に「保存」が含まれるか否かの判定する(S1204)。なお、S1204の判定は、S1201の前に実行されてもよいし、S1201と並行して実行されてもよい。制御部304は、実行対象の後処理に保存が含まれると判定した場合(S1204でYES)、処理はS1205に進む。制御部304は、解析処理の結果を記憶部303に記憶し、処理を終了する(S1205)。一方、制御部304は、実行対象の後処理に保存が含まれないと判定した場合(S1204でNO)、S1205の処理を実行せずに処理を終了する。このように、撮像装置110aは、選択された後処理に応じて、解析処理の結果を情報処理装置130へ送信することと、その結果を記憶部303へ格納することを、ユーザによる追加の設定操作なしに実行できる。本処理によれば、ユーザの後処理に関する利便性を向上させることができる。
以下、撮像装置110aと補助処理装置100aの間の通信について説明する。演算処理部203とコントローラ403は、I/F部205のデバイス挿入用ソケットを介し、電源ライン、GNDライン、クロックライン、コマンドライン、データラインで接続される。なお、クロックライン、コマンドライン及びデータラインは、回路402を経由するように接続される。クロックラインは、演算処理部203から出力される同期用のクロックを送信する。コマンドラインは、演算処理部203からコントローラ403への動作要求コマンドと、コントローラ403から演算処理部203へのレスポンスを送受信する。データラインは、演算処理部203からの書き込みデータ、補助処理装置100aからの読み出しデータを送受信する。
また、演算処理部203は、I/F部205のデバイス挿入用ソケットのデバイスディテクト信号がHigh又はLowであるかを判定する。これにより、演算処理部203は、補助処理装置100aが挿入されているか否かを認識することができる。演算処理部203は、コントローラ403に対して電源供給した後、コマンドラインを介してコントローラ403に動作要求コマンドを発行する。そして、演算処理部203は、コントローラ403からのレスポンスと、SDカードとしてのデバイス情報を示す出力データの受信に応じて、データ通信用の電圧及び通信速度(クロック周波数)等の設定を行う。
図13は、コマンドラインで通信されるコマンドとレスポンスの構成例を示す。コマンドとレスポンスは、SD規格に準拠した構成を有する。図13(A)のコマンド1301は、演算処理部203からコントローラ403に対して要求するコマンドである。コマンド1301は、スタートビット1302、ディレクションビット1303、コマンドナンバー部1304を含む。コマンド1301は、コマンド引数部1305、誤り訂正用データ部1306及びエンドビット1307をさらに含む。スタートビット1302は、コマンドの開始位置を示すために、コマンド1301の最初のビットとして配置される。ディレクションビット1303は、撮像装置110aから補助処理装置100aに対して送信された信号である。
コマンドナンバー部1304は、コマンドの種別を示す値が記述される。例えば、コマンドナンバー部1304に値「23」が格納されている場合、コマンド1301は、データブロック数を指定するブロック数指定コマンドである。また、コマンドナンバー部1304に値「25」が格納されている場合、コマンド1301は、マルチライトコマンドである。コマンドナンバー部1304に値「12」が格納されている場合、コマンド1301はデータ転送停止コマンドである。コマンド引数部1305は、コマンドの種別に応じて転送データブロック数、メモリの書き込み・読み出しアドレス等の情報を有する。エンドビット1307は、コマンドの終了位置を示すために、コマンド1301の最後のビットとして配置される。
図13(B)のレスポンス1311は、コマンド1301に応じて、コントローラ403から演算処理部203に送信されるコマンドである。レスポンス1311は、スタートビット1312、ディレクションビット1313、レスポンスナンバー部1314を含む。レスポンス1311は、レスポンス引数部1315、誤り訂正用データ部1316、エンドビット1317をさらに含む。スタートビット1312は、レスポンス1311の最初のビットとして、レスポンスの開始位置を示す。ディレクションビット1313は、補助処理装置100aから撮像装置110aに対して出力された信号を示す。レスポンスナンバー部1314は、どのコマンドに対するレスポンスであるかを示す。レスポンス引数部1315は、コマンド種別に応じてSDカードのステータス等の情報を有する。エンドビット1317は、レスポンス1311の最後のビットとして、レスポンスの終了位置を示す。
以下、演算処理部203と補助処理装置100aの間のデータの送受信の方法を説明する。I/F部205は、データの書き込み・読み出しについて、ブロック単位でデータの転送を行う。演算処理部203が、補助処理装置100aに複数ブロックのデータを転送する方法は以下の通りである。第1の転送方法は、転送データのブロック数指定コマンドによってブロック数が指定された後に、マルチライトコマンドにより指定されたブロック数に対応するデータが転送される。ブロック数指定コマンドは、コマンド引数部1305において書き込みデータのブロック数を指定する。マルチライトコマンドは、コマンド引数部1305においてデータが書き込まれる記憶部404のアドレスを指定する。第2の転送方法は、ブロック数指定コマンドが発行されず、かつ、マルチライトコマンドが発行されることにより、データ転送が開始される。データ転送が終了した時に転送停止コマンドが発行されることによって、処理が終了する。このとき、マルチライトコマンドのコマンド引数部1305において、データが書き込まれる記憶部404のアドレスのみが指定される。演算処理部203は、上記のデータ転送方法を任意に切り替えることができる。
なお、解析処理で例えば記憶処理が行われる場合、回路402は、演算処理部203から送信されるコマンドとデータをコントローラ403に入力する。コントローラ403は、受信したデータをコマンドにより指定された記憶部404のアドレスに格納する。解析処理で例えば画像解析処理が行われる場合、回路402は、演算処理部203から送信されるデータに対して解析処理を実行する。回路402は、その処理結果のデータと、記憶部404の所定のアドレスを指定する情報を、コントローラ403に送信する。コントローラ403は、記憶部404内の指定されたアドレスに処理結果を格納する。
演算処理部203は、補助処理装置100aから複数ブロックのデータを読み出す。このとき、データの読み出しは、以下の2つの方法で行われる。第1の読み出し方法では、ブロック数の指定コマンドでブロック数が指定されると、マルチリードコマンドが発行される。本方法は、指定コマンドに基づいて、指定されたブロック数のみのデータを読み出す。ブロック数指定コマンドでは、コマンド引数部1305において読み出しデータのブロック数が指定される。マルチリードコマンドのコマンド引数部1305において、データの読み出し元のメモリのアドレスが指定される。第2の読み出し方法では、ブロック数指定コマンドが発行されず、かつ、マルチリードコマンドが発行されることにより、データの読み出しが開始される。本方法では、転送停止コマンドが発行されることによって処理が終了する。演算処理部203は、2つの読み出し方法を任意に切り替えることが可能である。
なお、書き込みデータと読み出しデータが1ブロックである場合、シングルライトコマンドとシングルリードコマンドが発行される。これにより、ブロック数指定コマンドと転送停止コマンドが発行されることなく、データの書き込み及び読み出しが実行される。シングルライトコマンドとシングルリードコマンドでは、コマンド引数部1305において、アクセス対象の記憶部404のアドレスが指定される。演算処理部203は、補助処理装置100aに対して書き込みを行うことにより、記憶処理又は画像解析処理の対象となるデータを補助処理装置100aへ送信することができる。また、演算処理部203は、補助処理装置100aに対して読み出しを行うことにより、記憶部404に記憶された画像データ、画像解析処理の処理結果、補助処理装置100aの処理機能の情報を取得することができる。
補助処理装置100aは、記憶部404の特定のアドレスAに、補助処理装置100aが有する処理機能の情報を格納する。撮像装置110aの演算処理部203は、このアドレスAに対してマルチリードコマンド又はシングルリードコマンドを発行することにより、補助処理装置100aの処理機能の情報を判定できる。処理機能の情報は、処理機能を保有しているか否か、処理が実行されてから完了するまでの所要時間、処理結果のデータサイズ、処理結果が格納されるアドレス情報を含む。
図14は、処理機能の情報の一例を示す。処理機能保有フラグ1401は、補助処理装置100aが画像解析処理機能を有することを示す。撮像装置110aは、処理機能保有フラグ1401を確認することにより、補助処理装置100aが画像解析処理機能を有しているか否かを判定する。処理分類1402は、補助処理装置100aが有する解析処理を示す。入力データサイズ1403及び入力データ数1404は、各処理機能のデータの入力仕様に関する情報を示す。また、推定処理時間1405は、データ入力から処理結果出力までに要する時間を示す。処理結果データ数1406は、処理結果のデータ数を示す。解析結果格納アドレス1407は、記憶部404のどこに処理結果が格納されるかを示す。演算処理部203は、図14に示す記憶部404のアドレスAのデータを読み出すことにより、図15の処理機能テーブルを取得することができる。図15の参照符号は、図14の参照符号と対応する。
また、補助処理装置100aは、演算処理部203からアドレスAに対するリードコマンドが発行されていない場合、補助処理装置100aを装着する機器が画像解析処理機能を使用しない機器であると判定する。この場合、補助処理装置100aは、転送されるデータを記憶部404に記憶のみ行う。これにより、補助処理装置100aは、画像解析処理機能を必要としない機器に対して、メモリデバイスとしてのみ機能する。ここでは、記憶部404の特定のアドレスAに処理機能の情報を格納する方法を示したが、これに限定されない。例えば、補助処理装置100aの初期設定時に使用するコマンドに対するレスポンスのレスポンス引数部1315に、処理機能の情報が追加されてもよい。
なお、撮像装置110aは、例えば、補助処理装置100aの初期化設定の終了後に、記憶部404のアドレスAの読み出しを実行する。撮像装置110aは、I/F部205のソケットで補助処理装置100aが検出されなくなった場合、これまで読み込んだ情報を破棄する。撮像装置110aは、情報の破棄後に、補助処理装置100aがソケットに挿入された場合、補助処理装置100aの初期化設定終了後に、アドレスAの値を読み出す。これにより、撮像装置110aは、異なる補助処理装置aが挿入された場合に、その補助処理装置aの処理機能の情報を読み出すことができ、それに対して処理を設定することができる。
補助処理装置100aが、記憶処理と画像解析処理を自動で切り替える処理について説明する。本処理は、補助処理装置100aが、撮像装置110aから受信した画像データをそのまま記憶するか、又は、その画像データに画像解析処理を行うかを判定する処理である。撮像装置110aは、例えば特殊なコマンドを補助処理装置100aに送信することにより、補助処理装置100aに送信画像データを記憶させるか、又は、その画像データの画像解析処理を実行させるかを制御できる。しかし、このような特殊なコマンドを規定することは、補助処理装置100aが準拠する規格を考慮しなければならず、容易ではない。本実施形態では、以下のような方法により、特殊なコマンドを定義することなく、補助処理装置100aにおいて実行される処理を切り替える。なお、以下の処理例では、SD規格に準拠した方法で撮像装置110aと補助処理装置100aの間の通信を行うが、これに限られない。すなわち、補助処理装置100aが準拠する規格に従うコマンド等で、以下に説明する処理が実施できる方法であればよい。
図16は、補助処理装置100aへ転送されるデータブロック数によって、記憶処理と画像解析処理を自動で切り替える制御の流れを示す。図16で撮像装置110aの演算処理部203が、補助処理装置100aに対して、SD規格に準拠したライトコマンドを発行し、補助処理装置100aはデータを転送する(S1601)。補助処理装置100aの回路402は、演算処理部203により書き込まれるデータのブロック数が、画像解析処理が実行される際のデータ量と一致するか否かを判定する(S1602)。回路402は、ブロック数指定コマンドのコマンド引数部1305に記述されているデータブロック数を判定する。また、回路402は、ブロック数指定コマンドが発行されない場合、データ転送停止コマンドが発行されるまでに転送されるブロック数をカウントし、そのカウントに基づいてデータブロック数を判定してもよい。
回路402は、演算処理部203によりそれに書き込まれるデータブロック数が、画像解析処理が実行される際のデータ量と一致すると判定する場合(S1602でYES)、処理はS1603に進む。回路402は、転送されたデータに対して画像解析処理を実行する(S1603)。回路402は、画像解析処理結果を取得し(S1604)、コントローラ403に対してライトコマンドを発行する。回路402は、解析処理の分類に対応する記憶部404内の解析結果格納アドレス1407に、取得した画像解析処理結果を格納する(S1605)。一方、回路402は、演算処理部203によりそれに書き込まれるデータブロック数が、画像解析処理が実行される際のデータ量と一致しないと判定する場合(S1602でNO)、処理はS1606に進む。回路402は、転送データをそのまま記憶部404に記憶する(S1606)。例えば、回路402は、演算処理部203がコントローラ403に対して発行したライトコマンドと同様のコマンドを発行し、転送データをそのまま記憶部404に転送する。コントローラ403は、ライトコマンドで指定された記憶部404のアドレスに、転送データを格納する。
補助処理装置100aは、図14に示す情報を記憶部404の特定のアドレスAに保持し、例えば処理分類1402の解析処理Aが実行される際の入力データ数1404は20ブロックであると判定する。このため、回路402は、演算処理部203によりそれに書き込まれるデータブロック数が20ブロックであると判定する場合、解析処理Aを実行する。回路402は、書き込まれたデータブロック数が20ブロック以外であると判定する場合、解析処理Aを実行しない。なお、回路402は、例えば演算処理部203により書き込まれるデータブロック数が40ブロックであると判定する場合、解析処理Cを実行する。このように、回路402が実行する解析処理は、それに入力されるデータブロック数に応じて変更されてよい。
図17は、ライトコマンドのコマンド引数部1305で指定される書き込みアドレスに基づいて、記憶処理と画像解析処理を切り替える制御の流れの例を示している。本処理においても、撮像装置110aの演算処理部203は、コントローラ403に対してライトコマンドを発行する(S1701)。回路402は、コマンド引数部1305で指定される書き込みアドレスが、図14の解析結果格納アドレス1407と一致するか否かを判定する(S1702)。回路402は、コマンド引数部1305で指定された書き込みアドレスが解析結果格納アドレス1407と一致すると判定する場合(S1702でYES)、処理はS1703に進む。回路402は、転送されたデータに対して、解析結果格納アドレス1407に対応する画像解析処理を実行する(S1703)。
回路402は、画像解析の処理結果を取得し(S1704)、コントローラ403に対してライトコマンドを発行する。回路402は、記憶部404の解析結果格納アドレス1407に取得した画像解析の処理結果を格納する(S1705)。一方、回路402は、コマンド引数部1305で指定される書き込みアドレスが解析結果格納アドレス1407と一致しないと判定する場合(S1702でNO)、処理はS1706に進む。回路402は、転送データをそのまま記憶部404に記憶する(S1706)。例えば、回路402は、演算処理部203がコントローラ403に対して発行したライトコマンドと同様のコマンドを発行し、転送データを記憶部404にそのまま転送する。コントローラ403は、ライトコマンドで指定された記憶部404のアドレスに、転送データを格納する。
補助処理装置100aは、図14の情報を記憶部404の特定のアドレスAに保持し、例えば図15の処理分類1402の解析処理Aが実行される際の解析結果格納アドレス1407は、0xFFFFFFFFであると判定する。このため、回路402は、演算処理部203から取得したコマンドが指定する解析結果格納アドレス1407が0xFFFFFFFFの場合、解析処理Aを実行する。回路402は、解析結果格納アドレス1407が0xFFFFFFFF以外の場合、解析処理Aを実行しない。なお、回路402は、例えば演算処理部203から取得したコマンドによって指定される解析結果格納アドレス1407が0xEEEEEEEEの場合、解析処理Cを実行する。このように、回路402は、実行する解析処理をコマンドで指定された解析結果格納アドレス1407に応じて変更してもよい。
このように、補助処理装置100aは、演算処理部203によりそれに書き込まれるデータブロック数及び解析結果格納アドレスに応じて、転送データの記憶又はそれの画像解析処理を判定する。あるいは、回路402は、データブロック数と解析結果格納アドレスの両方が、入力データ数1404と解析結果格納アドレス1407にそれぞれ一致すると判定する場合、画像解析処理を実行してもよい。また、回路402は、データブロック数と解析結果格納アドレスの少なくともいずれかが、入力データ数1404と解析結果格納アドレス1407に一致しないと判定する場合に、記憶処理を実行してもよい。
上述の処理によれば、特殊な制御コマンドを設けることなしに、補助処理装置100aは、画像解析処理を実行すべきデータに画像解析処理できる。また、補助処理装置100aは、格納すべきデータを画像解析処理することなしに、記憶部404に記憶させることができる。これにより、システムの複雑化を防ぐことができ、さらなる手順を設ける必要がない。本処理によれば、画像解析処理を迅速に開始することができる。なお、図17の処理は、図16の処理と組み合わせて実行されてもよい。すなわち、画像データのブロック数と解析結果格納アドレスが、画像解析処理と関連付けられることで、画像解析処理が実行されるようにしてもよい。
なお、画像解析処理を行う場合、処理結果と一緒に解析処理の対象となった転送データを、記憶部404の解析結果格納アドレス1407とは異なる領域に保存してもよい。また、上述の制御において、補助処理装置100aが複数の画像解析処理機能を有している場合、データの書き込みブロック数と解析結果格納アドレスに応じて、実行する画像解析処理の種別が決定されてもよい。例えば、データのブロック数と解析結果格納アドレスが、複数の画像解析処理機能のうち任意の画像解析処理の入力データ数1404と解析結果格納アドレス1407と一致する場合に、その画像解析処理が実行されてもよい。
図18は、コマンドによる記憶処理と画像解析処理を切り替える制御の流れの例を示している。SD規格では、データの書き込み時のプロトコルとして、ブロック数指定コマンドを発行してからデータの書き込みを行う第1のプロトコルがある。また、第1のプロトコルにブロック数指定コマンドを発行せずにデータの書き込みを行う第2のプロトコルがある。なお、第2のプロトコルでは、データの書き込みを終了する際に、データ転送停止コマンドが発行される。本処理では、第1のプロトコルを介したデータ送信に基づいて、画像解析処理を実行する。第2のプロトコルでデータが送信される場合、画像解析処理を実行することなしに記憶部404に画像データを格納する記憶処理を実行する。また、補助処理装置100aの回路402は、画像データの送信のために、ブロック数指定コマンドが発行されたか否かに基づいて、画像解析処理を実行するか否かを決定する。
本処理では、まず、撮像装置110aの演算処理部203が、補助処理装置100aに対してライトコマンドを発行し、データを転送する(S1801)。ここで、補助処理装置100aの回路402は、ブロック数指定コマンドが発行されたか否かを判定する(S1802)。回路402は、ブロック数指定コマンドが発行されている場合(S1802でYES)、処理はS1803に進む。回路402は、転送されたデータに対して画像解析処理を実行し(S1803)、処理結果を取得する(S1804)。回路402は、図14で示される解析処理の分類に応じた所定の解析結果格納アドレス1407を指定して、コントローラ403にライトコマンドを発行する。これにより、回路402は、処理結果のデータを記憶部404に格納する(S1805)。回路402は、ブロック数指定コマンドが発行されていない場合(S1802でNO)、処理はS1806に進む。回路402は、コントローラ403に対して演算処理部203から発行されたコマンドと同様のライトコマンドを発行する。そして、回路402は、転送されたデータをそのままコントローラ403に送信する。そして、コントローラ403は、回路402からのライトコマンドで指定された記憶部404のアドレスにデータを格納する(S1806)。
なお、ブロック数指定コマンドは、他の所定のコマンドであってもよい。すなわち、画像解析処理を実行するトリガとなる所定のコマンドが事前に設定されてよい。回路402は、その所定のコマンドの受信に基づいて、入力される画像データに対して画像解析処理を実行する。また、使用されるプロトコルは、特定可能な他の情報が用いられてもよい。なお、回路402は、例えば、所定のコマンドを受信した場合に、図16や図17の処理を実行して、入力される画像データに対して画像解析処理を実行するか否かを決定してもよい。このように、ブロック数指定コマンド等のコマンドによって、画像解析処理のうちどの処理を行えばよいかが示される。これにより、撮像装置110aが、SD規格に準拠したプロトコルの範囲で、補助処理装置100aが実行すべき処理を指示することができる。
上述の処理の少なくとも一部は、画像データの送信のためのSD規格に準拠したコマンドが、回路402によって実行可能な画像解析処理に関連付けられた値を含んでいるか否かを判定する。これにより、上述の処理の一部は、その画像解析処理を実行するか否かを決定することができる。例えば、図16の処理は、コマンドナンバー部1304に「23」が格納され、かつ、コマンド引数部1305に所定のブロック数を示す値が格納されている場合、画像解析処理を実行する。また、図17の処理は、コマンド引数部1305に処理結果格納アドレスを示す値が格納されている場合に、画像解析処理を実行する。図18の処理は、コマンドナンバー部1304に「23」が格納されている場合に、画像解析処理を実行する。このように、画像データが送信される際のコマンドの内容を、画像解析処理に関連付けられた所定の値に設定することができる。これにより、SD規格に準拠したコマンドを用いて、回路402に画像解析処理と記憶処理のいずれを実行させるかを柔軟に制御することができる。
撮像装置110aが、補助処理装置100aに記憶された画像解析処理結果を読み出す方法について説明する。演算処理部203は、補助処理装置100aに対して、図14で示される解析結果格納アドレス1407を指定する。演算処理部203は、解析処理ごとの処理結果データ数1406の分だけ読み出すようにリードコマンドを発行する。コントローラ403は、回路402を介してリードコマンドを受信する。コントローラ403は、指定された記憶部404のアドレスに格納されている処理結果のデータを撮像装置110aの演算処理部203に対して出力する。これにより、撮像装置110aは、画像解析処理結果を取得することができる。
撮影画像、統合処理リスト、後処理リストのユーザへの提示及びユーザ選択の受け付け方法の例について説明する。図19は、表示部703を介した撮影画像と統合処理リスト及び後処理リストの画面表示の例を示している。この表示画面により、例えば、ユーザインタフェース1901が表示される。ユーザインタフェース1901は、撮影画像表示領域1902、統合処理リスト表示領域1903、後処理リスト表示領域1904を含む。撮影画像表示領域1902は、撮像装置110aによる撮影画像を表示し、図19で例えば3人の人間を表示する。統合処理リスト表示領域1903は、解析処理内容を表示し、例えば、顔検出、人体検出、車両検出の処理を表示する。後処理リスト表示領域1904は、後処理内容として、例えば表示と保存を表示する。ユーザは、これらの領域を確認することにより、撮影画像、統合処理リスト及び後処理リストの内容を判定できる。
なお、統合処理リスト表示領域1903に表示されるリストは、統合処理リストのみに限定されない。例えば、撮像装置110aは、ある補助処理装置100aについての第2処理リストを記憶部303に記憶しておく。撮像装置110aは、それに補助処理装置100aが装着されていない場合であっても、記憶部303内の第2処理リストを情報処理装置130に送信できる。すなわち、撮像装置110aは、過去にそれに装着された補助処理装置100aに関する第2処理リストを出力してもよい。この場合、情報処理装置130は、第2処理リストに含まれ、かつ、統合処理リストに含まれない解析処理を、補助処理装置100aの装着で可能となる解析処理として、グレーアウト表示できる。これにより、グレーアウトされた処理を実行可能とするために、ユーザに補助処理装置100aを撮像装置110aに装着することを提示できる。また、例えば撮像装置110aと補助処理装置100aが同一の処理機能を有する場合は、これらを統合して1つの処理として表示してもよい。この場合、撮像装置110aは、それと補助処理装置100aのいずれでその処理を実行するかを決定することができる。この決定方法については後述する。
なお、情報処理装置130は、ユーザに表示する解析処理と後処理が、撮像装置110aと補助処理装置100aのいずれで処理されるかを、ユーザが識別可能なように表示してもよい。例えば、撮像装置110aは、統合処理リストを作成する際、統合処理リストに含まれる各解析処理が第1処理リストと第2処理リストのいずれに含まれかを示す情報を、統合処理リストに含める。情報処理装置130は、上記の情報に応じて、各解析処理の文字色を変えて表示することができる。これにより、ユーザは、各処理が補助処理装置100aを抜去しても実行可能な処理であるか否かを確認することができる。なお、撮像装置110aと補助処理装置100aが、同一の処理を実行でき、両者を1つで統合表示している場合、以下の表示が可能である。補助処理装置100aが抜去されても実行可能な処理であることから、撮像装置110aに対応する文字色で、上記の処理は表示される。ただし、これに限られず、撮像装置110aと補助処理装置100aのいずれでも実行可能な処理であることを示す文字色で処理が表示されてもよい。
また、撮像装置110aと補助処理装置100aが協働して実行可能となる処理が、統合処理リストに含まれる場合、その処理は協働が必要であることを統合処理リストに含んでもよい。この場合、撮像装置110aと補助処理装置100aが協働することにより実現される処理は、さらに別の文字色で表示されてもよい。例えば、顔認証処理は、顔検出処理機能、顔特徴抽出処理機能、及び顔特徴照合処理機能の機能群によって実現される。撮像装置110aが、顔検出処理機能と顔特徴抽出処理機能を有し、補助処理装置100aが顔特徴照合処理機能を有する。この場合、ユーザインタフェース1901は、例えば、顔検出処理と顔特徴抽出処理を青文字で表示し、顔特徴照合処理を赤文字で表示し、顔認証処理を緑文字で表示する。
なお、文字色の変更は、各機能が撮像装置110aと補助処理装置100aのいずれで実行されるか又はこれらが協働することによって実行されるかを区別して表示するための一態様に過ぎない。他の態様で、このような区別的表示が行われてもよい。例えば、各処理の背景色の変更などによって、処理の実行主体が明示されてもよい。また、実行主体の相違が、文字列によって示されてもよい。例えば、撮像装置110aによって実行される処理を示す文字列の後に、撮像装置110aを表す文字列が付加される。補助処理装置100aによって実行される処理を示す文字列の後に、補助処理装置100aを表す文字列が付加される。また、撮像装置110aと補助処理装置100aが協働することによって実現される処理を示す文字列に、それらの協働を示す文字列が付加されうる。
このように、撮像装置110aは、第1処理リストに含まれる処理と第2処理リストに含まれる処理を区別する情報を、情報処理装置130へ提供する。これにより、撮像装置110aは、情報処理装置130の表示部703に、各処理の実行主体を区別可能に表示させることができる。また、撮像装置110aが表示部を備える場合も、第1処理リストに含まれる処理と第2処理リストに含まれる処理を区別する情報を用意することにより、各処理の実行主体を区別して表示することができる。すなわち、撮像装置110aは、第1処理リストに含まれる処理と第2処理リストに含まれる処理を区別する情報を出力することで、任意の表示装置に各処理の実行主体を表示できる。
ユーザは、ユーザインタフェース1901で、統合処理リスト表示領域1903に表示されている統合処理リストから、操作部704を介して解析処理を選択できる。また、ユーザは、後処理リスト表示領域1904に表示されている処理リストから、操作部704を介して後処理を選択できる。例えば、図19は、ユーザが、解析処理として「顔検出」処理を選択し、後処理として「表示」及び「保存」を選択した場合の例を示している。なお、本実施形態では、解析処理が1つのみ選択される例を示しているが、これに限られない。ユーザが複数の解析処理を選択可能なような構成であってもよい。例えば、「顔検出」に加え、「人体検出」と「車両検出」の少なくともいずれかが選択されてもよい。また、1つの処理が選択された場合に、他の処理が選択されないようにしてもよい。一例として、図19の統合処理リスト表示領域1903において、「顔検出」が選択された状態で、「人体検出」が選択されると、「顔検出」の選択が解除されるようにしてもよい。また、図19では、2つの後処理の両方が選択されている場合の例を示しているが、これらの一方のみを選択可能とするようにしてもよい。
図10のS1007で、ユーザによる解析処理及び後処理の選択に基づいて、その選択結果が撮像装置110aへ通知される。また、制御部702は、所定期間ごとにユーザ選択の状態を確認し、どの処理が実行対象として選択されているかに応じて、実行対象の処理を撮像装置110aへ通知してもよい。すなわち、図10のS1005からS1007の処理が、定期的に実行されるようにしてもよい。また、S1005及びS1006の選択が常時監視され、その選択状態が変化した場合にS1007の処理が実行されるようにしてもよい。
図20は、実行対象の解析処理として「顔検出」が選択され、後処理として「表示」が選択されている場合の、S1203における情報の表示方法の一例を示す。図20では、図19のユーザインタフェース1901の画面において顔検出処理によって検出された人数2001が、解析処理の結果として表示される。なお、図20は一例に過ぎず、ユーザインタフェース1901とは別個に処理の結果が表示されてもよいし、ユーザインタフェース1901の中の別の領域に処理の結果が表示されてもよい。
また、ユーザが選択した実行対象の処理及び後処理のそれぞれに対して、さらに優先度が設定されてもよい。例えば、撮像装置110aの制御部304は、実行対象処理に複数の優先度を設定している場合、実行対象の各処理に対し、優先度の順に図11のS1103からS1107の処理を実行する。なお、処理の優先度に基づいて、撮像装置110aの計算リソース、ネットワークリソースが割り振られてもよい。例えば、優先度の高い処理が、映像に対して第1の所定数フレームごとに実行されてよい。また、優先度の低い処理が、その映像に対して、第1の所定数フレームより多い第2の所定数フレームごとに実行されてもよい。すなわち、処理が実行される頻度が、優先度によって定められてもよい。また、優先度の高い処理の結果が情報処理装置130へ送信される頻度が、優先度の低い処理の結果が情報処理装置130へ送信される頻度より高くてもよい。
複数の処理を組み合わせることによって、所定の処理が実行可能となることがある。例えば、顔認証処理は、顔検出処理、顔特徴抽出処理及び顔特徴照合処理の処理を組み合わせることで実行可能となる。ここで、撮像装置110aと補助処理装置100aが、これらの3つの処理のうちの少なくともいずれかを実行可能である場合、これらの装置間で処理を分担して実行できる。また、撮像装置110aと補助処理装置100aは、例えば上述の3つの処理の少なくともいずれかについて、処理対象データの取得条件(例えば撮影条件)及び解析対象等の条件に適した異なる処理機能を用意できる。例えば、昼間に撮影された画像のための処理と、夜間に撮影された画像のための処理のそれぞれに対し、別個の処理機能が用意されてもよい。
図21は、撮像装置110a及び補助処理装置100aは、顔検出処理機能、顔特徴抽出処理機能及び顔特徴照合処理機能を有し、顔認証処理をそれぞれ実行可能である構成を示す。なお、撮像装置110aと補助処理装置100aのそれぞれの機能は、同様の機能であっても、機能使用時に適した条件等が異なる。撮像装置処理リスト2101は、顔検出A、顔特徴検出A、顔特徴照合Aを含む。補助処理装置処理リスト2102は、顔検出B、顔特徴抽出B、顔特徴抽出C、顔特徴照合Bを含む。また、補助処理装置100aが、2つの顔特徴抽出処理機能(顔特徴抽出B、C)を有するように、撮像装置110aと補助処理装置100aは、同様の処理を実行可能な複数の処理機能を有してもよい。これにより、撮像装置110aと補助処理装置100aの間で適切に処理を分担することで、様々な条件等に適した処理が実行され得る。
なお、同じ処理を行う場合であっても、撮像装置110aと補助処理装置100aの構成が異なるため、処理分担時のメリットとデメリットを有している。例えば、演算精度に関して、撮像装置110aの演算処理部203はデータに対するビット幅が多く、演算精度が高い。演算速度に関して、補助処理装置100aの回路402は、論理回路で演算するため、演算速度が速い。また、同じ処理を実行可能な複数の処理機能が存在する際、撮像装置110aによる撮影環境に基づいて、適切な処理機能が選択されると有利である。以上を考慮して、補助処理装置100aが処理機能を有する場合、その処理機能を使用するか否かを適切に決定し、使用される処理機能を適切に選択することが重要となる。
以下では、補助処理装置100aと撮像装置110aのいずれに処理を実行させるか、撮像装置110aと補助処理装置100aを協働させて処理を実行させるかを自動的に選択する手法について説明する。また、例えば撮像装置110a又は補助処理装置100aが、同一の処理を実行可能な複数の処理機能を有する場合、その複数の処理機能のうちのいずれを使用するか、使用される処理機能を自動的に選択する手法についても説明する。なお、以下では3つの処理例について個別に説明するが、これらの処理は組み合わせて用いられてもよい。
図22は、使用される処理機能を選択するための第1の処理例について説明する。図22では、画像解析処理に必要な性能を満たすよう、撮像装置110aと補助処理装置100aが有する処理機能の中から、使用される処理機能が選択される。例えば、ある一定以上のフレームレートで処理が行われる必要がある等の条件があり、かつ、同じ処理を撮像装置110aと補助処理装置100aが共に実行可能である場合に、本処理が実行される。
図22でユーザが、ユーザインタフェース1901を介して、実行する解析処理を選択する(S2201)。制御部702は、ユーザ選択に基づいて、実行する解析処理の実行指示コマンドを撮像装置110aへ送信する。制御部304は、実行指示コマンドを制御部702から取得する。なお、撮像装置110aが、実行可能な処理を提示する情報提示機能と、ユーザに選択を行わせる操作受付機能を有する場合、以下の態様であってよい。ユーザは、撮像装置110aを直接操作して、実行する解析処理を撮像装置110aの制御部304に指示してもよい。
撮像装置110aの制御部304は、ユーザ選択された解析処理を実行するために必要となる処理性能を確認する(S2202)。処理性能の設定については、処理ごとに設定値が事前に定められていてもよい。解析処理を選択する際に、ユーザによって目標値が設定されてもよい。そして、制御部304は、S2201において選択された解析処理を撮像装置110aで実行する(S2203)。なお、この処理は、撮影と並行して実行され得る。また、選択された処理を実行する際に使用される処理機能のうち、補助処理装置100aにしか存在しない機能については、補助処理装置100aに実行させ、撮像装置110aに実行させない。
制御部304は、処理を実行中又は一定量のデータ処理の完了後、実行した処理が、S2202で設定した処理性能を満たしているか否かを判定する(S2204)。制御部304は、処理性能を満たしていると判定した場合(S2204でYES)、処理を継続するため、処理はS2203へ戻る。一方、制御部304は、処理性能を満たしていないと判定した場合(S2204でNO)、処理性能を満足する処理分担へ変更するために、処理はS2205へ進む。
S2205で、撮像装置110aで行われていた処理の一部であって、補助処理装置100aにおいても実行可能な処理について、実行主体を補助処理装置100aへ変更する。制御部304は、既に補助処理装置100aで実行可能な処理を判定している。制御部304は、その処理のリスト(第2処理リスト)内から、補助処理装置100aに分担させる処理を選択し、処理の実行主体を変更する。変更処理の完了後、制御部304及び解析部501が、S2201で選択された処理を分担して実行する(S2206)。その後、制御部304が、補助処理装置100aの処理機能を撮像装置110aに戻すか否かを判定する(S2207)。撮像装置110aに処理機能を戻すことにより、高い演算精度で処理を実行することができる。
制御部304は、例えば、S2204で処理性能を満たさないと判定した理由が、一時的な高負荷状態であった場合等で、その状態が解消したならば、撮像装置110aに処理機能を戻すと判定する。すなわち、制御部304は、撮像装置110aの処理負荷に応じて、処理機能を撮像装置110aと補助処理装置100aのいずれが実行するかを決定する。なお、上述のように、撮像装置110aの処理負荷が高い状態で、補助処理装置100aに処理を実行させることに限定されない。補助処理装置100aの処理負荷が高い状態で撮像装置110aに処理を実行させるようにしてもよい。すなわち、補助処理装置100aの処理負荷に基づいて、処理を撮像装置110aと補助処理装置100aのいずれが処理を実行するかが決定されてもよい。
また、制御部304は、ユーザによって処理性能の目標値が下げられた場合、撮像装置110aに処理を戻す判定を行う。制御部304は、処理を撮像装置110aに戻すと判定した場合(S2207でYES)、処理はS2208に進む。補助処理装置100aで実行された処理の一部について、実行主体を撮像装置110aへ変更する(S2208)。なお、S2208で実行主体が撮像装置110aに戻される処理は、S2205で実行主体が補助処理装置100aに変更された処理の一部でもよく、全部であってもよい。処理の少なくとも一部の実行主体が撮像装置110aに戻された後、処理は終了する。一方、制御部304は、処理機能を撮像装置110aに戻さないと判定した場合(S2207でNO)は、処理はS2206に戻り、処理分担を変更することなしに処理を継続する。
なお、補助処理装置100aが、同一の処理について実行可能な複数の処理機能を有する場合、以下の態様が実行されてもよい。処理の一部の実行主体が補助処理装置100aへ変更された後、それが処理性能を満たさないと判定された場合、同じ機能を実行する別の処理機能に切り替えてもよい。すなわち、S2207で、処理の実行主体を切り替えるのではなく、実行主体を補助処理装置100aのままとし、使用する処理機能のみを変更してもよい。
また、制御部304は、処理の一部の実行主体が補助処理装置100aへ変更された後で、S2202で確認した処理性能を満たさない場合、その処理の実行主体を撮像装置110aに戻してもよい。このとき、制御部304は、処理性能を示す情報を、現在装着中の補助処理装置100aでは満たすことができない情報として記憶する。そして、制御部304は、同様の処理性能又はそれよりも厳しい処理性能が要求される場合、処理を補助処理装置100aに実行させないようにしてもよい。同様に、例えば撮像装置110aの処理負荷が十分小さい状況等でも、処理性能を満たすことができない場合、その処理性能の情報を記憶しておいてもよい。ここで、制御部304は、後の処理において、S2202で記憶した処理性能又は、それより厳しい処理性能が確認された場合、以下の態様を実行する。制御部304は、S2203の処理を実行することなく、処理の一部の実行主体を補助処理装置100aに変更する。
第1の処理例によれば、要求される処理性能を満たすように、撮像装置110aと補助処理装置100aが有する処理機能が選択される。選択された処理機能をこれらの装置間で分担して、処理は実行される。これにより、例えば撮像装置110aの状態等に応じて、適切な処理分担がなされるようになり、処理性能を良好に保つことが可能となる。
図23は、処理機能を適切に選択するための第2の処理例について説明する。本処理は、補助処理装置100aは同一処理を実行可能な複数の処理機能を有している場合に、使用に適した処理機能を選択するために実行される。なお、本処理は、第1の処理例において、補助処理装置100aに一部の処理を実行させることが決定された場合等に実行される。すなわち、本処理は、補助処理装置100aが処理を実行する際、実行可能な1つ以上の処理機能のうちいずれで処理するかを決定する。これは一例に過ぎず、本処理例により、撮像装置110aと補助処理装置100aの処理分担が決定されてもよい。例えば、撮像装置110aと補助処理装置100aが、統合処理リストにおいて、同一の処理を実行可能な複数の処理機能を有する場合に、本処理が適用される。その際、いずれの処理機能を使用するかを決定するために、本処理が使用されてもよい。すなわち、本処理は、撮像装置110aと補助処理装置100aが同一の処理を実行可能な処理機能をそれぞれ1つ以上有する場合、いずれの装置のどの処理機能を用いて処理を実行すべきかを決定する。
図22では、図22のS2201と同様に、ユーザが、情報処理装置130を介して解析処理を選択する。撮像装置110aの制御部304は、選択された処理を示す情報を情報処理装置130から取得する(S2301)。制御部304は、補助処理装置100aが実行可能な処理のリスト(第2処理リスト)を判定する。制御部304は、解析処理について、補助処理装置100aに同じ処理を実行可能な処理機能が複数あるか否かを判定する(S2302)。制御部304は、解析処理を実行可能な処理機能が1つであると判定した場合(S2302でNO)、処理はS2303に進む。制御部304は、その処理機能を使用して処理を実行する(S2303)。一方、制御部304は、解析処理を実行可能な処理機能が複数存在すると判定した場合(S2302でYES)、処理はS2304に進む。以下では、その複数の処理機能のうちいずれを用いて処理するかを判定する方法を説明する。
S2304で、制御部304は、S2302で判定された同一の処理を実行可能な複数の処理機能の特徴を判定する。ここで、特徴判定とは、例えば顔特徴抽出について、第1の処理機能は昼間の相対的に輝度が高い画像の処理に適しているといった判定である。同様に、制御部は第2の処理機能は夜間の相対的に輝度が低い画像の処理に適しているといった特徴を判定する。制御部304は、各処理機能の特徴の違いを判定した後、現在どのような環境で撮像装置110aが撮影を行っているかを判定する(S2305)。制御部304は、S2304で取得した処理機能ごとの特徴と、S2305で取得した撮影環境の情報に基づいて、解析処理に用いる処理機能を選択する(S2306)。制御部304は、選択した処理機能を用いて解析処理を実行する(S2307)。
ここで、撮影環境の判定は、例えば、撮像装置110aの内部時計、撮像装置110aによって撮影された画像の輝度値の分布に基づいて、判定されてよい。例えば、内部時計が夜間の時間帯を示す場合、制御部304は、相対的に輝度値が低い画像の処理に適した処理機能を選択する。また、制御部304は、撮影画像の輝度値が低い方に偏って存在する場合、相対的に輝度値が低い画像の画像処理に適した処理機能を選択する。また、処理機能ごとに輝度値に対する検出精度の評価値の分布が用意されてもよい。例えば、撮影画像の各輝度値の度数とその輝度値に対する検出精度を示す値を乗じて加算した値の和が最も良好な処理機能が選択されるようにしてもよい。また、撮影環境の判定は、例えば、撮像装置110aの撮影時の画角(パン、チルト、ズーム)の情報に基づいて判定されてもよい。
例えば、室内の暗い領域を撮影しているのか、窓際の明るい領域を撮影しているのかに応じて、いずれの処理機能が使用されるかが選択される。なお、処理機能の特徴は、輝度値以外の指標によって規定されてもよい。例えば、窓等の所定のオブジェクトが含まれる画像における顔抽出精度が高い、高速移動している物体の検出精度が高い等、様々な特徴が、使用される処理機能の選択の基準として使用されうる。また、例えば、各処理機能は、処理が高速であるが低精度であるという特徴や、処理が相対的に低速であるが高精度であるという特徴等を有してもよく、処理条件に応じて適した処理機能が選択されるようにしてもよい。
制御部304は、処理中に、撮影環境が変化したか否かを判定する(S2308)。制御部304は、撮影環境が変化したと判定する場合(S2308でYES)、処理はS2306に進む。制御部304は、環境変化後の撮影環境に適した処理機能を選択する処理を再度実行する(S2306)。制御部304は、選択された処理機能で解析処理を実行する(S2307)。一方、制御部304は、撮影環境が変化していないと判定する場合(S2308でNO)、処理機能を変更せずに解析処理を継続し、処理を終了する。本処理によれば、同一の処理を実行可能な複数の処理機能の中から、環境に適した処理機能を選択して使用することが可能となる。これにより、処理の精度等の観点で、撮影環境ごとに適切な処理機能を選択的に使用することが可能となる。
図24は、撮像装置110aと補助処理装置100aの間で処理の分担を決定するための第3の処理例について説明する。本処理では、補助処理装置100が有する処理機能の組み合わせのみで処理を完遂できるか否かに応じて、処理の分担を決定する。
図24で、図22のS2201や図23のS2301と同様に、ユーザが、情報処理装置130を介して解析処理を選択する。撮像装置110aの制御部304は、選択された処理を示す情報を情報処理装置130から取得する(S2401)。制御部304は、選択された処理を、補助処理装置100aのみで実行可能か否かを判定する(S2402)。なお、制御部304は、例えば、選択された処理の全機能を補助処理装置100aが有する処理機能の組み合わせによって満たすことができるか否かを判定する。また、制御部304は、補助処理装置100aに処理結果を保存してよいか否か等に基づいて、S2402の判定を行いうる。制御部304は、補助処理装置100aが有する処理機能の組み合わせで選択された処理の全機能を満たすことができ、かつ、処理結果をそれに保存してよい場合、補助処理装置100のみによる処理が可能であると判定する。
制御部304は、選択された処理を補助処理装置100aのみでは実行できないと判定した場合(S2402でNO)、処理はS2403に進む。制御部304は、撮像装置110aと補助処理装置100aに対し処理の分担を行う(S2403)。このとき、第1の処理例及び第2の処理例と同様に、処理の分担の決定が行われる。なお、制御部304は、処理の全てを撮像装置110aで実行するよう、補助処理装置100aの処理機能を使用しなくてもよい。一方、制御部304は、選択された処理を補助処理装置100aのみで実行できると判定した場合(S2402でYES)、処理はS2404に進む。制御部304は、補助処理装置100aが有している処理機能のうち、いずれの処理機能を使用するかを選択する(S2404)。
なお、補助処理装置100aが同一の処理を実行可能な処理機能を複数有する場合、第2の処理例のように、上記のいずれの処理機能を使用するかが選択される。その後、制御部304は、補助処理装置100aに選択処理機能を用いて画像解析処理を実行させるための処理を実行する(S2405)。また、制御部304は、S2405における画像解析処理を行った結果を補助処理装置100a内に保存させる処理を実行し(S2406)、処理は終了する。これらの処理は、例えばSD規格のコマンドを用いて実行される。なお、S2406では、記憶部404に画像処理解析結果が保存されてもよく、回路402がRAMを備える場合、RAMにその結果が保存されてもよい。
本処理は、補助処理装置100aで処理を実行できる場合に、処理を補助処理装置100aに実行させる。これにより、撮像装置110aが実行する処理は、補助処理装置100aへの画像の送信のみとなることから、撮像装置110aの処理負荷は大幅に低減される。以上のように、補助処理装置100aを用いて、撮像装置110aが実行可能な処理機能を増やすことにより、撮像システム10の処理機能は増強される。例えば、最新の処理機能を補助処理装置100aに実装することにより、撮像装置110aを置き換える必要がなくなる。また、撮像装置110aが、その最新の処理機能による画像解析処理を実行することが可能となる。これにより、撮像システム10の柔軟な運用が可能となることから、ユーザの利便性を向上させることができる。
図25は、撮像装置110aが補助処理装置100aの故障診断を行う処理の流れの一例を示す。本処理は、図8のS802の処理の後に行われる。記憶部303は、回路402の故障診断(テスト処理)を行うために、処理部412内で実行する設定パラメータとテスト画像を有する。記憶部303はまた、テスト画像と設定パラメータを用いて処理部412で処理を実行したときの出力値である期待値(信号情報)をさらに有する。ここで、テスト処理の入力は、128x128のRGB画像であり、出力は1000個の8bitデータ列である。さらに、テスト処理は深層学習で用いられる畳み込み演算と、ReLUの演算をそれぞれ1回行う。テスト画像は、RGBの各値が256段階のうち128のグレー画像である。期待値は1000個の8bitデータ列が全て0.5である。
図25で、撮像装置110aは記憶部303の設定パラメータを補助処理装置100aの記憶部404へ書き込む。補助処理装置100aは、設定パラメータを回路402にロードする(S2501)。撮像装置110aは、必要に応じて、設定パラメータに対応する論理回路データを回路402に転送することで、回路402の再構成が行われてもよい。撮像装置110aの演算処理部203が、補助処理装置100aの記憶部404に対して、記憶部303のテスト画像を転送する(S2502)。テスト画像の転送完了後、補助処理装置100aの記憶部404が当該テスト画像を記憶すると、回路402の処理部412が、当該テスト画像に対して、当該設定パラメータを用いてテスト処理を実行する(S2503)。テスト処理後、撮像装置110aは、補助処理装置100aからテスト処理結果を取得する(S2504)。テスト処理結果は信号情報ともいう。
撮像装置110aの演算処理部203は、テスト処理結果と記憶部303内のテスト画像に対応する期待値を比較する。演算処理部203は、比較結果が完全に一致している場合、処理を終了し、また、比較結果が一致していない場合、S2507へ移行する(S2505)。このとき、演算処理部203は、テスト処理結果と期待値が有する1000個の値がすべて一致しているかどうかを判定する。すなわち、演算処理部203は、テスト処理結果の1000個の値の全てが0.5であるか否かを判定する。演算処理部203は、比較結果が条件を満たさないと判定する場合(S2505でNo)、処理はS2507に進む。演算処理部203は、補助処理装置100aの故障(異常)であると判定し、表示部703にメッセージダイアログを表示する(S2507)。ここでは、補助処理装置100aが備える処理部412及び記憶部404の少なくとも何れかが異常(故障)であると判定する。メッセージダイアログの表示例を図26に示す。図26で画面S2601は、「デバイスにおいて、演算処理中にエラーが発生しました。サポートセンターに連絡してください。」を表示する。図26のOKボタンをユーザが押下すると、画面S2601が消失するような構成であってよい。
なお、テスト処理は、入力に応じて出力が変わるものであれば、テスト画像に限定されることなく、任意なものであってよい。また、回路402に実装された回路に応じて演算を行う処理であってよい。例えば、深層学習で用いられるPoolingの演算が実行される場合、Poolingの演算が回路402に実装されてもよい。さらに、演算処理部203の演算量が多く、それが計算途中の一時データの保存領域として記憶部404を使用する場合がある。テスト処理は、記憶部404を使用しない小規模の処理であってもよい。これにより、正確に回路402の処理部412と記憶部404のいずれが故障しているかを判定することができる。
テスト画像は、撮像装置110aで生成されるものであってもよい。例えば、RGBの値が全て0.5となるような画像を計算で生成し、補助処理装置100aへその画像を転送するようにしてもよい。設定パラメータ、テスト画像及び期待値は、任意の場所に保存されてよい。例えば、設定パラメータと期待値は、予め補助処理装置100aの記憶部404に記憶されてもよく、それらとテスト処理結果は、撮像装置110に転送されてもよい。また、比較結果が異なっていた場合に表示するメッセージダイアログは、ユーザに故障を通知するものであれば任意の形式であってよい。さらに、比較結果が同じであった場合に、ユーザに補助処理装置100aが正常であることを通知するメッセージであってもよい。また、通知は、コンソールへの出力、撮像装置110aに接続された別のサーバへのイベント通知、サーバに接続するクライアントへメッセージを表示する形態であってもよい。
次に、補助処理装置100aに記憶部が2種類搭載されている場合の例について述べる。本処理は、図8のS804以降、ユーザによって任意のタイミングで行われるが、ここではS806の処理の後に行われる例を説明する。図27は、補助処理装置100aのハードウェアの構成例を示す。図4と同様の構成要素については説明を省略する。補助処理装置100aは、図4の記憶部404の代わりに、記憶部A405と記憶部B406を含む。記憶部A405は、電源を切っても情報が保存される不揮発性のメモリ(ROM)であり、回路402の処理部412内で処理される設定パラメータを保存する。記憶部B406は電源が切れると情報が消去される揮発性のメモリ(RAM)であり、処理部412で処理に必要な入力データを保存する。
テスト処理における設定パラメータは、画像解析処理で使用される設定パラメータと同じものである。ここでは、特に画像解析処理として顔検出を行う場合を説明する。この時、第1の実施例と同様、入力は128x128のRGB画像であり、出力は1000個の8bitデータ列である。テスト画像はRGB各値が256段階のうち128のグレー画像であり、期待値は1000個の8bitデータ列が全て0.5を有する。画像解析処理で使用される設定パラメータは、記憶部A405と撮像装置110aの記憶部303に保存され、テスト画像と期待値は、記憶部303に保存される。また、記憶部303は、記憶部A405に画像解析処理で使用される設定パラメータを再インストールしたことを示す再インストール済フラグを保持する。記憶部303は、テスト処理で補助処理装置100aを再起動したことを示す再起動済みフラグを保持する。テスト処理が行われる前、上記全てのフラグは、OFFの状態である。
図28(a)は、補助処理装置100aの故障判定処理の一例を示す。図28(a)で、撮像装置110aの演算処理部203が、記憶部A405に対して、記憶部303のテスト画像を転送する(S2801)。テスト画像の転送完了後、補助処理装置100aは、記憶部A405のテスト画像に対して、画像解析処理用の設定パラメータで、回路402(処理部412)に解析処理を実行させる(S2802)。回路402(処理部412)による解析処理の後、撮像装置110aは、補助処理装置100aから解析結果A(信号情報)を取得する(S2803)。次に、演算処理部203が、記憶部B406に対して、記憶部303のテスト画像を転送する(S2804)。テスト画像の転送完了後、補助処理装置100aが、記憶部B406のテスト画像に対して、画像解析処理用の当該設定パラメータで、回路402(処理部412)に解析処理を実行させる(S2805)。回路402(処理部412)による解析処理の後、撮像装置110aは、補助処理装置100aから解析結果B(信号情報)を取得する(S2806)。
演算処理部203が、解析結果Aと解析結果B、及び、記憶部303内の期待値をそれぞれ比較する。演算処理部203が、解析結果Aと期待値、及び、解析結果Bと期待値が完全に一致していると判定する場合(S2807でYes)、処理は終了する。演算処理部203が、解析結果Aと期待値、及び、解析結果Bと期待値のいずれか又は両方が一致していないと判定する場合(S2807でNo)、処理はS2808に進む。ここで、演算処理部203は、解析結果Aと解析結果Bの出力である1000個の8bitデータ列の値が、期待値と全て一致しているか否かを判定する。すなわち、演算処理部203は、解析結果A及び解析結果Bの1000個の値が全て0.5であるか否かを判定する。ここでは、補助処理装置100aが備える処理部412、記憶部A405、及び記憶部B406の少なくとも何れかが異常(故障)であると判定する。演算処理部203は、判定結果に基づく細部の故障判定処理を行う(S2808)。
次に、細部の故障判定処理について述べる。本実施例における、各解析結果(A、B)と期待値の比較結果と、故障の対応関係について説明する。本実施形態は、記憶部B406の故障及び処理部412の故障を判断する。なお、記憶部A405は、初期シーケンスとしてS802が正常に完了し、本シーケンスが実行される時点で、正常な状態である。図28(b)は、補助処理装置100aの細部の故障判定処理の一例を示す。
図28(b)で、演算処理部203は、解析結果Aと期待値、及び、解析結果Bと期待値のいずれか又は両方が一致しないか否かを判定する。さらに、演算処理部203は、再インストール済フラグの表示結果がOFFか否かを判定する(S2810)。つまり、演算処理部203は、2つの条件を共に満足するか否かを判定し、2つの条件が満たされた場合、処理はS2811に進む。演算処理部203は、解析結果Aと期待値、及び、解析結果Bと期待値は一致せず、再インストール済フラグがOFFである場合(S2810でNo)、処理部412が異常であると判定する。S2810の上述の条件を満たさない場合(S2810でYes)、処理はS2812に進む。
演算処理部203は、記憶部303内の画像解析処理用の設定パラメータを記憶部A405へ再インストールし、再インストール済フラグをONにする(S2811)。このとき、表示部703に「デバイスに設定パラメータを再インストールします」というメッセージダイアログを表示する。その後、S2801以降のテスト処理が再開され(S2814)、処理は終了する。S2812に戻って、演算処理部203は、解析結果Aと期待値が一致し、解析結果Bと期待値が一致しないかどうかを判定し、再起動済フラグがOFFか否かを判定する(S2812)。演算処理部203が、解析結果Aと期待値が一致し、解析結果Bと期待値が一致せず、再起動済みフラグがOFFである場合(S2812でNo)、記憶部B406は異常であると判定する。さらに、演算処理部203は、補助処理装置100aを再起動させると判定し、処理はS2813に進む。演算処理部203が、S2812の条件を満たさない場合、すなわち、解析結果Aと期待値が一致せず、及び、解析結果Bと期待値が一致し、再起動済フラグがONである場合(S2812でYes)、処理はS2815に進む。
S2813で、演算処理部203は、再起動済フラグをONにし、1分後に補助処理装置100aの再起動を行う(S2813)。このとき、表示部703に「1分後に再起動を行います」というメッセージダイアログを表示する。その後、S2801以降のテスト処理を再度実行し(S2814)、処理は終了する。処理部412が異常であり、かつ、再インストール済フラグがONであると判定された場合、演算処理部203は、処理部412の故障(異常)であると判定する。あるいは、記憶部B406が異常であり、かつ、再起動済フラグがONであると判定された場合、演算処理部203は、記憶部B406の故障と判定する。演算処理部203は、故障対象を表示部703にメッセージダイアログで表示する(S2815)。例えば、「デバイスにおいて、演算処理中にエラーが発生しました。サポートセンターに連絡してください」というメッセージの後に、以下のメッセージを表示する。表示部703は、例えば「演算処理部が異常です」又は「メモリが異常です」といったメッセージを表示する。
S2811で設定パラメータを再インストールする際、必要に応じて、設定パラメータに対応する論理回路データを回路402に転送し、それの再構成が行われてもよい。また、設定パラメータの再インストールを促すメッセージのみを表示し、ユーザに設定パラメータの再インストールを行わせるようにしてもよい。S2812の判定条件の中で、再起動を行ったか否かを表す再起動済フラグを用いるが、それの代わりに再起動回数をカウントするカウンタが用いられてもよい。例えば、処理部412の再起動が閾値に達するまで、再起動は行われ、閾値を超えた場合に、記憶部B406が故障していると判定されてもよい。S2813で補助処理装置100aの再起動を行うまでの待機時間は、補助処理装置100aの状態に応じて変更されてよい。例えば、補助処理装置100aの温度が閾値よりも低い場合、再起動が行われてもよい。また、再起動を促すメッセージのみを表示して、ユーザに補助処理装置100aの再起動を行わせるようにしてもよい。
上述の実施形態で、解析処理が画像解析処理である例を説明したが、本発明は音声解析処理にも適用可能である。具体的には、悲鳴、銃声、ガラス破壊音のような音声パターンを検知する処理に適用可能である。例えば、スペクトル解析等の種々の音声データの分析手法で音声の特徴量を抽出し、それを検出した音声パターンと比較する。特徴量と検出した音声パターンの一致度に基づいて、特定の音声パターンを検出することができる。また、音声解析処理を行う場合、音声データを所定の時間分の音声データに分割し、その所定の時間分の音声データを単位として音声解析処理を行う。また、この所定の時間は、検出対象の音声パターンに応じて、変更される。そのため、補助処理装置100aに、検知したい音声パターンに対応する時間分ごとの音声データが入力される。補助処理装置100aは、その入力された音声データを解析する手段や、入力された音声データを保持する手段を有する。
また、上述の実施形態で、撮像装置110aから入力されたデータを非一時的に格納可能な補助処理装置100aを例として説明した。しかし、一部の実施形態において、撮像装置110aから入力されたデータを非一時的に格納することができない補助処理装置100aが使用されてもよい。つまり、補助処理装置100aは、撮像装置110aから入力されたデータに対して解析処理を行うのみで、そのデータを非一時的に記憶しなくてもよい。すなわち、通常のSDカードのようにデータ保持機能を有するのではなく、解析処理に特化した機能を有した補助処理装置100aであってもよい。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。