JP2023028994A - 演算装置、撮像装置、制御方法及びプログラム - Google Patents

演算装置、撮像装置、制御方法及びプログラム Download PDF

Info

Publication number
JP2023028994A
JP2023028994A JP2021135029A JP2021135029A JP2023028994A JP 2023028994 A JP2023028994 A JP 2023028994A JP 2021135029 A JP2021135029 A JP 2021135029A JP 2021135029 A JP2021135029 A JP 2021135029A JP 2023028994 A JP2023028994 A JP 2023028994A
Authority
JP
Japan
Prior art keywords
processing
analysis
switching
area
arithmetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021135029A
Other languages
English (en)
Inventor
良 前田
Ryo Maeda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2021135029A priority Critical patent/JP2023028994A/ja
Priority to US17/883,694 priority patent/US11968469B2/en
Publication of JP2023028994A publication Critical patent/JP2023028994A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/268Signal distribution or switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/61Control of cameras or camera modules based on recognised objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/665Control of cameras or camera modules involving internal camera communication with the image sensor, e.g. synchronising or multiplexing SSIS control signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

【課題】複数種類の処理の実行に要する時間を短縮する演算装置、撮像装置、制御方法及びプログラムを提供する。【解決手段】複数種類の処理を実行可能な演算装置は、複数種類の処理の少なくともいずれかを実行する演算処理手段と、一時記憶手段と、複数種類の処理の夫々の実行に必要な情報を記憶する恒久記憶手段と、処理の切替命令を受信する受信手段と、切替命令に応じて、演算処理手段が実行する処理を切り替える切替手段と、を有する。切替手段は、切替命令がなされた際に、演算処理手段が複数種類の処理の少なくとも何れかを実行中である場合に、切替先の処理に係る必要な情報を恒久記憶手段から読み出して、一時記憶手段の第1の領域とは異なる第2の領域に展開し、実行中の処理が完了したことに応じて、第2の領域から第1の領域に切替先の処理に係る必要な情報を移動又はコピーすることで、演算処理手段を切替先の処理を実行可能な状態に切り替える。【選択図】図17

Description

本発明は、演算装置、撮像装置、制御方法及びプログラムに関し、特に再構成可能演算装置を利用した画像解析技術に関する。
機械学習に基づいて構築された推論モデルによる推論結果を用いて画像解析を行う技術がある。特許文献1では、物体、人物、行動等に応じた複数種類の推論モデルを備え、車両環境に応じて好適な推論モデルに切り替えて画像処理を行う車両用情報処理装置が開示されている。
特許文献1のような画像解析をはじめとした特定の演算処理については、情報処理装置そのものが当該演算処理を実行するハードウェアを具備していなくとも、装置に着脱可能に接続された外部デバイスに効率的に実行させることも可能である。ここで、外部デバイスは、特定の演算処理を実行するように構成された専用の演算処理部を具備するものであってもよいし、FPGAのように用途に応じて再構成することが可能な演算処理部を具備するものであってもよい。後者の場合、推論モデルの推論結果を利用する画像解析を実行するように演算処理部が再構成された場合に、例えば検出対象等に応じて利用する複数種類の推論モデルを切り替えることで、多様な種類の検出対象の画像解析に対応できる。従って、例えば監視カメラ等の装置に外部デバイスを接続することで、当該装置の画像解析能力を向上させたり、機能拡張を実現したりすることもできる。
特開2021-018593号公報
ところで、外部デバイスの演算処理部を利用して、画像に対して推論モデルの異なる複数種類の解析処理を順次適用する場合、解析処理ごとに演算処理部に利用される推論モデルのデータを異ならせる必要がある。一方で、例えば再構成可能な演算処理部が一時に1種類の推論モデルを利用した解析処理を実現する構成の場合は、1つの解析処理を実行中に推論モデルを変更する(利用する推論モデルのデータを書き換える)ことができない。従って、先行の解析処理の完了後に、後続の解析処理用の推論モデルに切り替えさせる命令を外部デバイスに入力し、該当の推論モデルのデータの読み出し及び書き換えを行った上で、後続の解析処理を実行する必要があり、全体の処理時間が長期化し得る。
本発明は、上述の問題点に鑑みてなされたものであり、複数種類の処理の実行に要する時間を短縮する演算装置、撮像装置、制御方法及びプログラムを提供することを目的とする。
前述の目的を達成するために、本発明の一態様の演算装置は、複数種類の処理を実行可能な演算装置であって、複数種類の処理の少なくともいずれかを実行する演算処理手段と、一時記憶手段と、複数種類の処理のそれぞれの実行に必要な情報を記憶する恒久記憶手段と、処理の切替命令を受信する受信手段と、切替命令の受信に応じて、恒久記憶手段から読み出して一時記憶手段の第1の領域に展開する必要な情報を異ならせることで、演算処理手段が実行する処理を切り替える切替手段と、を有し、切替手段は、切替命令がなされた際に、演算処理手段が複数種類の処理の少なくともいずれかを実行中である場合に、切替先の処理に係る必要な情報を恒久記憶手段から読み出して、一時記憶手段の第1の領域とは異なる第2の領域に展開し、実行中の処理が完了したことに応じて、第2の領域から第1の領域に切替先の処理に係る必要な情報を移動またはコピーすることで、演算処理手段を切替先の処理を実行可能な状態に切り替えることを特徴とする。
このような構成により本発明によれば、複数種類の処理の実行に要する時間を短縮するが可能となる。
本発明の実施形態及び変形例に係る画像解析システムの構成例を示した図である。 本発明の実施形態及び変形例に係る撮像装置のハードウェア構成例を示したブロック図である。 本発明の実施形態及び変形例に係る撮像装置の機能構成例を示したブロック図である。 本発明の実施形態及び変形例に係る着脱可能デバイスのハードウェア構成例を示したブロック図である。 本発明の実施形態及び変形例に係る着脱可能デバイスの機能構成例を示したブロック図である。 本発明の実施形態及び変形例に係る入出力装置のハードウェア構成例を示したブロック図である。 本発明の実施形態及び変形例に係る入出力装置の機能構成例を示したブロック図である。 本発明の実施形態及び変形例に係る画像解析システムにおいて実行される解析処理の一連の流れを例示したフローチャートである。 本発明の実施形態及び変形例に係る撮像装置のローカルで実行可能な処理を撮像装置110において把握する処理の流れを例示したフローチャートである。 本発明の実施形態及び変形例に係る撮像装置及び着脱可能デバイスが行う解析処理の内容を決定する処理の流れを例示したフローチャートある。 本発明の実施形態及び変形例に係る撮像装置のローカルにおいて指定解析処理を実行する際の制御の流れを例示したフローチャートである。 本発明の実施形態及び変形例に係る指定後処理が実行される際の制御の流れを例示したフローチャートである。 本発明の実施形態及び変形例に係るコマンドとレスポンスの構造を例示した図である。 本発明の実施形態及び変形例に係る処理機能の情報を格納しているアドレス内のデータを概略的に示した図である。 本発明の実施形態及び変形例に係る撮像装置で構築される処理機能テーブルを例示した図である。 本発明の実施形態及び変形例に係る着脱可能デバイスにおける解析処理の実行の流れを例示したフローチャートである。 本発明の実施形態及び変形例に係る着脱可能デバイスにおける処理切替コマンドを受信した際の制御の流れを例示したフローチャートである。 本発明の実施形態及び変形例に係る処理切替コマンドの受信時に解析処理が実行中でない場合のシーケンス図である。 本発明の実施形態及び変形例に係る処理切替コマンドの受信時に解析処理が実行中である場合のシーケンス図である。 本発明の実施形態及び変形例に係る画像解析システムの入出力装置において提示されるユーザインタフェースを例示した図である。 本発明の実施形態2に係る検出領域優先モードで提示されるユーザインタフェースを例示した図である。 本発明の実施形態2に係る検出処理優先モードにおける処理の流れを例示したタイムチャートである。 本発明の実施形態2に係る検出領域優先モードにおける処理の流れを例示したタイムチャートである。 本発明の実施形態2に係るモードの切り替えのためのユーザインタフェースを例示した図である。
[実施形態1]
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
以下に説明する一実施形態は、演算装置の一例としての、再構成可能なFPGAを備え、異なる推論モデルを利用することで異なる画像解析処理を実行可能な着脱可能デバイス(再構成可能演算装置)に、本発明を適用した例を説明する。しかし、本発明は、利用する情報が変更されることで複数種類の処理を切り替えて実行することが可能な任意の機器に適用可能である。
《システム構成》
図1に、本発明の実施形態に係る画像解析システムのシステム構成を例示する。本実施形態では画像解析システム、ネットワーク120を介して接続された撮像装置110が取得した撮像画像に対して画像解析処理を実行することで、特定の人物や物体等を検出して追跡可能な監視システムであるものとして説明する。しかしながら、本発明の実施はこれに限られるものではなく、着脱可能デバイス100を装着可能な任意の機器を用いて構成されるシステムにも適用可能であることは容易に理解されよう。
撮像装置110の各々は、例えば撮像画像を記憶可能なデバイスを着脱可能なスロットを有し、当該スロットに着脱可能デバイス100を挿入することが可能に構成される。即ち、着脱可能デバイス100は、記録可能なデバイスとしても動作可能な機器であり、撮像装置110のスロットに挿入されることで装着し、当該撮像装置110に、画像解析を伴う画像処理機能を提供することができる。図1の例では、画像解析システムには4台の撮像装置110a~dが含まれ、そのそれぞれに対して着脱可能デバイス100a~dが装着されている。しかしながら、画像解析システムに含まれる撮像装置110及び着脱可能デバイス100の数はこれに限られるものではなく、任意の数であってよい。以下の説明では、発明の理解を容易にすべく、撮像装置110及び着脱可能デバイス100のそれぞれは同一の構成を有するものとし、特に必要のない限りはa~dを付さず、単に「撮像装置110」または「着脱可能デバイス100」として言及する。
着脱可能デバイス100は、撮像装置110に対して着脱可能な演算デバイスである。本実施形態では着脱可能デバイス100は、SD規格の記録装置(SDカード)として動作可能であり、再構成可能な処理回路を搭載したデバイスである。着脱可能デバイス100は、例えば、SDカードの態様によって、撮像装置110にその全体が挿入可能に構成され、これにより、撮像装置110から突出する部分がない状態で撮像装置110と装着可能に構成することができる。また、着脱可能デバイス100は、例えば、撮像装置110にその半分以上の部分が挿入可能に構成され、これにより、撮像装置110から突出する部分が少ない状態で撮像装置110と装着可能に構成されてもよい。これにより、着脱可能デバイス100が配線等の障害物と干渉することを防ぐことができ、デバイスの利用時の利便性を高めることができる。また、多くの既存のネットワークカメラなどの撮像装置110には、SDカードスロットが用意されているため、既存の撮像装置110に対して、着脱可能デバイス100の再構成可能な処理回路により実現可能な拡張機能を提供することができる。なお、着脱可能デバイス100は、SDカードの態様以外に、撮像画像の記録用途で撮像装置110に装着される任意の記録装置用に設けられた任意の接続インタフェースを介して装着されるものであってもよい。例えば、着脱可能デバイス100は、USB(ユニバーサルシリアルバス)インタフェースを有し、撮像装置110のUSBソケットに装着されるように構成されてもよい。また、再構成可能な処理回路は、例えば、所定の処理を実行するようにプログラムされたFPGA(フィールドプログラマブルゲートアレイ)によって実装されるが、それ以外の形式で実装されてもよい。
撮像装置110は、ネットワークカメラ等の撮像装置である。本実施形態では、撮像装置110は、映像を処理することのできる演算装置を内蔵するものとするが、これに限られない。例えば、撮像装置110に接続されたPC(パーソナルコンピュータ)等の外部コンピュータが存在してもよく、これらの組み合わせを、撮像装置110として扱ってもよい。また、本実施形態では、全ての撮像装置110に、着脱可能デバイス100が装着されているものとする。撮像装置110は、画像解析処理機能を有しなくとも、画像解析処理機能を有する着脱可能デバイス100が装着されることで、当該着脱可能デバイス100を利用して該当の画像処理を実行することが可能となる。また本実施形態のように撮像装置110が画像解析処理機能を有する(処理用の演算装置を具備する)態様では、着脱可能デバイス100が装着されることで、撮像装置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/F205を含む。なお、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/F205へ転送される。また、処理結果のデータも配信部204へ転送される。
配信部204は、ネットワーク配信エンジンと、例えば、RAMやETH PHYモジュールなどの周辺デバイス等を含んで構成される。ETH PHYモジュールは、Ethernetの物理(PHY)レイヤの処理を実行するモジュールである。配信部204は、演算処理部203から取得した画像データや処理結果のデータを、ネットワーク120へ配信可能な形式に変換して、変換後のデータをネットワーク120へ出力する。SD I/F205は、着脱可能デバイス100と接続するためのインタフェース部分で、例えば、電源と、着脱可能デバイス100を着脱するための、着脱ソケット等の装着機構を含んで構成される。ここでは、SD I/F205が、SD Associationにより策定されたSD規格に従って構成されるものとする。演算処理部203から取得された画像の着脱可能デバイス100への転送や、着脱可能デバイス100からのデータの取得等の、着脱可能デバイス100と撮像装置110との間での通信は、SD I/F205を通じて行われる。
〈撮像装置の機能構成〉
図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処理リストとして言及)と、解析処理の結果に対する後処理のリスト(後処理リスト)とを記憶する。本明細書において、単に「後処理」として言及した場合は、撮像画像に対する解析処理の実行後に、表示や保存等、当該解析処理の結果及び撮像画像を取り扱う処理を指すものであり、後述の解析部305の一連の動作に含まれる「解析後処理」とは異なる。また、記憶部303は、後述する解析処理の結果を記憶する。なお、本実施形態では、撮像画像に対して実行される処理が解析処理であるものとして説明するが、撮像画像に対して実行される処理は任意の処理であってもよい。この場合、記憶部303に記憶される第1処理リスト及び後処理リストの内容が変化する。
制御部304は、信号処理部302、記憶部303、解析部305、デバイス通信部306、ネットワーク通信部307それぞれの動作を制御する。より詳しくは、制御部304は、演算処理部203がROMに格納された各機能構成の制御プログラムをRAMに展開して実行することにより、各機能構成の動作を制御する。
解析部305は、撮像画像に対して、後述する解析前処理、解析処理、解析後処理の少なくともいずれかを選択的に実行する。解析前処理は、後述の解析処理を実行する前に、撮像画像に対して実行する処理である。本実施形態では解析前処理の一例として、撮像画像を分割して分割画像を生成する処理が実行されるものとして説明する。解析処理は、入力された画像を解析して得られる情報を出力する処理である。本実施形態では解析処理の一例として、解析前処理によって得られた分割画像を入力として、人体検出処理、顔検出処理、車両検出処理の少なくともいずれかの解析処理を実行し、解析結果を出力する処理が実行されるものとして説明する。解析処理は、例えば教師データを用いた事前学習により、画像に含まれるオブジェクトを検出するように構築された機械学習モデル(推論モデル、深層学習(DL)モデル)を用いて、分割画像中のオブジェクトの位置を出力する処理であってよい。解析後処理は、解析部305から出力される解析結果を構成するための、解析処理の実行後に実行される処理である。本実施形態では解析後処理の一例として、各分割画像に対する解析処理の結果に基づいて、各分割画像について検出されたオブジェクトの数を合計した値を解析結果として出力する処理が実行されるものとする。なお、解析処理は、パターンマッチングを行って画像中のオブジェクトを検出し、その位置を出力する処理であってもよいし、推論モデルによる推論結果を用いず検出を行う処理であってもよい。
デバイス通信部306は、着脱可能デバイス100との通信を行う。デバイス通信部306は、入力されたデータを着脱可能デバイス100が処理可能な形式に変換し、その変換によって得られたデータを着脱可能デバイス100に送信する。また、デバイス通信部306は、着脱可能デバイス100からデータを受信し、受信したデータを撮像装置110が処理可能な形式に変換する。デバイス通信部306の実行する変換処理は、例えば小数を浮動小数点形式と固定小数点形式との間で変換する処理を含むものであってよい。またこのような変換処理に限らず、デバイス通信部306は他の処理を実行してもよい。また、本実施形態では、デバイス通信部306は、着脱可能デバイス100に対してSD規格に準拠して事前に定められたコマンドシーケンスを送信し、着脱可能デバイス100からの応答を受信することで、着脱可能デバイス100との通信を行う。
ネットワーク通信部307は、ネットワーク120を介して入出力装置130との通信を行う。ネットワーク通信部307は、撮像装置110と入出力装置130との間で予め定められた形式の情報を構成し、入出力装置130への情報送信を行う。あるいは、ネットワーク通信部307は、入出力装置130から所定の情報を受信したことに応じて、当該情報の受信を制御部304に通知する。
〈着脱可能デバイスのハードウェア構成〉
図4に、着脱可能デバイス100のハードウェア構成例を示す。着脱可能デバイス100は、一例として、I/F401、FPGA402、SDコントローラ403、ROM404及びRAM405を含んで構成される。着脱可能デバイス100は、撮像装置110が有するSD I/F205の着脱ソケットに挿抜できる形状で、即ちSD規格に準拠した形状及びSD規格に準拠した接点端子を具備した構成で成形されるものとする。
I/F401は、撮像装置110等の装置と着脱可能デバイス100とを接続するためのインタフェースである。I/F401は、例えば、撮像装置110から電源の供給を受け、着脱可能デバイス100内で使用する電源を生成し分配する、電気的な接点端子等を含んで構成される。I/F401は、撮像装置110のSD I/F205と同様に、SD規格内で定義(準拠)されている構造に関しては、それに従って設計・構成されているものとする。撮像装置110から入力される画像や後述の命令及び設定データの受け取り、FPGA402から撮像装置110へのデータの送信は、I/F401を介して実行される。
FPGA402は、再構成可能な演算回路であり、本実施形態では内部の論理回路構造を繰り返し構成(再構成)可能に構成された半導体デバイスであるものとして説明する。FPGA402は、入出力制御部410、処理切替部411、及び演算処理部412を含んで構成される。FPGA402は、再構成されることで所定の演算処理を実行可能であり、着脱可能デバイス100が装着された装置に、該当の演算処理機能を追加(提供)することができる。即ち、FPGA402の論理回路構造を変更することができるため、例えば技術の進歩の早い分野であっても、装置に着脱可能デバイス100を装着することで、適時に適切な機能・処理能力を追加することが可能になる。なお、本実施形態では再構成可能な演算回路としてFPGAが用いられる例を説明するが、後述する処理を実現可能である限りにおいて、例えば、汎用のASICや専用のLSIが用いられてもよい。
FPGA402の再構成は、再構成される論理回路構造の情報を含む設定データに基づいて行われる。本実施形態では設定データは、FPGA402に設けられた専用のI/Fを介して、ROM404から読み出されることにより取得されるものとして説明する。例えばFPGA402は、撮像装置110への接続時等の電源供給が開始された際に、ROM404から必要な設定データをRAM405に読み出し、読み出された設定データに基づいて論理回路構造を再構成し、起動されるものであってよい。しかしながら、設定データの取得はROM404からの読み出しに限られるものでなく、例えば、I/F401及び専用のI/Fを介して撮像装置110から受信される(RAM405に書き込まれる)ものであってもよい。この場合、受信した設定データは、再度利用可能なようにROM404にも追加格納されてもよい。
本実施形態ではFPGA402は、所定の解析処理を実行可能なよう、当該解析処理に係る設定データに基づいて再構成される。FPGA402により画像に対して実行される解析処理は、推論モデルによる推論結果を利用して解析結果を導出するものであり、利用する推論モデルに応じて異なる種類の対象を検出することができる。本実施形態の着脱可能デバイス100では、FPGA402は、解析処理の実行中、後述のRAM405に展開された推論モデルのデータを利用して推論を行う。従って、FPGA402は、RAM405に展開される推論モデルのデータが変更されることでも、実行する解析処理を異ならせることが可能に構成される。換言すれば、FPGA402は、所定の解析処理を実行可能なように論理回路構造が再構成された後、同構造のまま、利用する推論モデルが異なる複数種類の解析処理を実行可能である。
なお、本実施形態では発明の理解を容易にすべく、RAM405に展開された推論モデルのデータを変更することも、「FPGA402の実行する処理を変更する」ものとして言及する。即ち、撮像装置110から着脱可能デバイス100に対して推論モデルの切替命令がなされることで、推論モデルによる推論内容及び結果が変化し、その結果としてFPGA402の実行する処理が変更されるものとして説明する。しかしながら、本発明の実施はこれに限られるものではなく、FPGA402が実行する処理の変更は、処理において参照されるRAM405上のデータの変更に加え、FPGA402の論理回路構造そのものを変更することを含んでもよい。
FPGA402のうちの入出力制御部410は、撮像装置110との間で画像を送受信するための回路、撮像装置110から受信したコマンド(命令)を解析する回路、解析した結果に基づいて制御を行う回路、等を含んで構成される。ここで、コマンドはSD規格に定義されているものであり、入出力制御部410は、それらのうちのいくつかを検出することができる。本実施形態の着脱可能デバイス100は撮像画像の解析用途に加え、撮像画像の記録用途に使用可能であり、例えば入出力制御部410は、撮像画像に関連して受信した命令に応じて、当該撮像画像の解析処理を行うか、記録処理を行うかを切り替えればよい。入出力制御部410は、解析処理を行う場合はRAM405に撮像画像を送信して格納させ、記録処理を行う場合はSDコントローラ403に撮像画像を送信してROM404に記録させるよう制御する。この他、入出力制御部410は、解析処理の切替命令を受信した場合には、処理切替部411に当該切替命令の情報を出力する。あるいは、入出力制御部410は、FPGA402の再構成に係る設定要求を受信した場合には、専用のI/Fを介してROM404から対応する設定データを読み出し、処理切替部411に出力する。
処理切替部411は、FPGA402が実行する処理、より具体的には後述の演算処理部412が実行する処理の切り替えに係る処理を実行する。処理切替部411は、切替命令の情報に基づいて、ROM404から該当する解析処理機能の情報(以下、処理用情報として言及)を読み出し、RAM405に書き込む(展開する)ための回路を含んで構成される。ここで、処理用情報は、演算処理部412において実行される解析処理について、演算の順序や種類、演算の係数等を示すパラメータであり、展開されることで推論モデルのデータとして利用可能な情報を指す。また処理切替部411は、入力された設定データに基づいて、演算処理部412の論理回路構造を再構成するための情報を書き込む回路も含んで構成される。以下では、発明の理解を容易にすべく、処理切替部411による処理切替は、主として、展開される処理用情報の変更により実現されるものとして説明するが、上述したように、処理切替に際して演算処理部412の再構成を伴い得ることを除外するものではない。
演算処理部412は、設定データに基づいて再構成されるFPGA402の論理回路構造に該当し、本実施形態では解析処理機能を実現するために必要な複数の演算回路を含んで構成される。演算処理部412は、RAM405に展開された推論モデルのデータに基づく推論処理を含む各種の演算処理を実行し、解析結果を導出する。導出された解析結果は、撮像装置110に送信される、及び/または、RAM405に格納される。
このようにFPGA402は、ROM404に予め処理用情報が格納された複数種類の解析処理のうちのいずれかを指定する切替命令を受信したことに応じて、演算処理部412により実行される解析処理の内容が変更される。即ち、着脱可能デバイス100は、複数種類の処理機能のうちの少なくともいずれかを、接続された撮像装置110に選択的に提供することができる。この他、着脱可能デバイス100は、新規に対応可能な設定データや情報が随時追加されることにより、装着された装置に提供可能な処理機能を変更可能であってもよい。なお、以下では、複数種類の処理機能のそれぞれに対応する処理用情報がROM404に格納され、該当の切替命令(及び実行命令)の受信に応じて当該処理機能を提供可能であることを、複数の処理機能を有すると表現する。即ち、着脱可能デバイス100のFPGA402が1つの処理機能を実行するように構成されている状態であっても、他の処理機能のための処理用情報により演算処理部412の処理内容を変更することができる場合、複数の処理機能を有する、と表現する。
SDコントローラ403は、SD規格に定義されているような公知のコントロールIC(集積回路)であり、SDプロトコルのスレーブ動作の制御と、ROM404及びRAM405に対するデータの読み書きの制御とを実行する。
ROM404は、例えばNAND型フラッシュメモリ等の、情報の恒久記憶が可能な不揮発性メモリである。ROM404は、例えば、撮像装置110から書き込まれた記憶データ、RAM405に展開される処理用情報、FPGA402の設定データ等の各種情報を記憶する。
RAM405は、例えばDRAM等の、情報の一時記憶が可能な揮発性メモリである。本実施形態ではRAM405は、用途に応じて領域が以下の3つに分割されて使用される。1つ目の領域は、実行する解析処理に係る推論モデルのデータを格納する領域であり、処理切替部411により読み出された処理用情報に基づくデータが展開される。2つ目の領域は、処理対象の画像や処理過程で出力された中間画像等が格納される、所謂ワークメモリとして使用される領域である。3つ目の領域は、前述の2つの領域に分類されない、残りの領域である。これらのセクションを識別すべく、以下では、それぞれを「推論モデル領域(1つ目の領域)」、「作業領域(2つ目の領域)」及び「予備領域(3つ目の領域)」として言及する。ここで、推論モデル領域が、本発明に係る第1の領域に対応し、作業領域が同第3の領域に対応し、予備領域が同第2の領域に対応する。
〈着脱可能デバイス100の機能構成〉
図5に、着脱可能デバイス100の機能構成例を示す。本実施形態の着脱可能デバイス100では、FPGA402が解析処理を実行可能に再構成されるため、着脱可能デバイス100の機能構成は、例えば解析部501及び通信部502を含む。解析部501は、画像に対する解析処理を実行する。
解析部501は、例えば、解析処理の切替要求または設定要求が入力された場合に、入力された解析処理を実行可能な状態にするための設定を実行する。また、解析部501は、画像が入力された場合、その入力された画像に対して、実行可能な状態に設定された解析処理を実行する。本実施形態では、解析部501が実行可能な解析処理は、利用する推論モデルを異ならせることで実現される人体検出処理と顔検出処理であるものとして説明するが、これらに限られない。解析部501が実行可能な解析処理は、事前に記憶された人物が画像に含まれるか否かを判定する処理(後述する顔認証処理)であってもよい。この場合、解析部501は例えば、事前に記憶された人物の画像特徴量と、入力された画像から検出された人物の画像特徴量との一致度合いを導出し、一致度合いが閾値以上の場合に事前に記憶された人物であると判定する。また解析部501が実行可能な解析処理は、プライバシー保護を目的として、入力された画像から検出された人物に対して、所定のマスク画像を重畳したり、モザイク処理を施したりする処理であってもよい。また解析部501が実行可能な解析処理は、人物の特定の行動を機械学習によって学習した学習モデルを用いて、画像中の人物が特定の行動を行っているかを検出する処理であってもよい。さらには、解析部501が実行可能な解析処理は、画像中の領域がどのような領域なのかを判定する処理であってもよい。この場合、解析部501は例えば、建物や道路、人物、空等を機械学習によって学習した学習モデルを用いて、画像中の領域がどのような領域なのかを判定する処理を行う。以上のように、解析部501が実行可能な処理は、機械学習モデルを使用するものに限られない。また、上記の各解析処理は、着脱可能デバイス100が単独で行うのではなく、撮像装置110と協働して実行されるものであってもよい。
通信部502は、I/F401を介して、撮像装置110との間で情報通信を行う。
〈入出力装置のハードウェア構成〉
図6に、入出力装置130のハードウェア構成例を示す。入出力装置130は、一般的なPC等のコンピュータとして構成され、例えば、図6に示すように、CPU等のプロセッサ601、RAM602やROM603等のメモリ、HDD604等の記憶装置、及び、通信I/F605を含んで構成される。入出力装置130は、プロセッサ601が、RAM602やHDD604等の記憶装置に格納されたプログラムをRAM602に展開して実行することにより、各種機能を実現できる。
〈入出力装置の機能構成〉
図7に、本実施形態に係る入出力装置130の機能構成例を示す。入出力装置130は、その機能構成として、例えば、ネットワーク通信部701、制御部702、表示部703、及び操作部704を含む。ネットワーク通信部701は、例えばネットワーク120に接続し、ネットワーク120を介して撮像装置110等の外部装置との通信を実行する。なお、これは一例に過ぎず、例えば、ネットワーク通信部701は、撮像装置110との間で通信接続を確立し、ネットワーク120や他の装置を介さずに、撮像装置110と直接通信するように構成されてもよい。制御部702は、ネットワーク通信部701と表示部703と操作部704とがそれぞれの処理を実行するように制御する。表示部703は、例えばディスプレイであり、画面表示を介してユーザに情報を提示する。本実施形態では、ブラウザがレンダリングした結果が表示部703に表示されることによって、情報提示がなされるものとする。また、入出力装置130における情報提示は、音声や振動等の画面表示以外の方法で行われるものであってもよい。操作部704は、ユーザからの操作入力を受け付ける。本実施形態では、操作部704はマウスやキーボードを含み、ユーザがこれらを操作することで、ブラウザに対する操作入力が受け付けられるものとする。ただし、これに限られず、操作部704は、例えば、タッチパネルやマイク等、ユーザによる任意の態様の操作入力を検出することができる他のデバイスであってもよい。
《画像解析システムのユーザインタフェース》
本実施形態の画像解析システムでは、撮像装置110によって取得された撮像画像に対して実行される処理を、ユーザに選択可能にせしめるユーザインタフェースが、入出力装置130において提供される。当該ユーザインタフェースは、例えば図20のGUI2001として、表示部703を介して提示されるものであってよい。
図20の例では、GUI2001は、少なくともいずれかの撮像装置110により取得された撮像画像を表示する撮像画像表示領域2002を含む。またGUI2001は、撮像画像に対して実行される解析処理の選択を受け付ける解析処理選択領域2003と、解析処理の結果(解析結果)に対して実行される後処理の選択を受け付ける後処理選択領域2004を含む。
ここで、解析処理選択領域2003には、撮像装置110単体で実行可能な解析処理に加え、撮像装置110に着脱可能デバイス100が装着されている場合には、当該着脱可能デバイス100により実行可能な解析処理が表示される。図の例では、選択可能な解析処理として「顔検出」、「人体検出」、「車両検出」の3種類が示されているが、解析処理選択領域2003に表示される解析処理は、画像解析システム内の撮像装置110及び装着された着脱可能デバイス100に応じて変化し得る。ユーザは、解析処理選択領域2003中に表示された解析処理について選択操作(図の例ではチェックボックスへのチェック入力)を行うことで、実行される解析処理を指定することができる。図の例では「顔検出」と「車両検出」の2種類の解析処理が選択された状態であるが、GUI2001では、任意の数の解析処理が選択可能であってよい。また、1つの処理が選択された場合に、他の処理が選択されないように構成されてもよく、例えば「顔検出」が選択された状態で、「人体検出」が選択されると、「顔検出」の選択が解除されるものであってもよい。
また後処理選択領域2004には、解析処理選択領域2003において選択された解析処理が実行された場合の、その解析結果について実行可能な後処理が表示される。図の例では、選択可能な後処理として「表示」及び「保存」の2種類が示されているが、これに限らず含めることが可能であることは言うまでもない。解析処理選択領域2003と同様に、ユーザは、後処理選択領域2004中に表示された後処理について選択操作を行うことで、実行される後処理を指定することができる。図の例では「表示」の後処理が選択された状態であるが、GUI2001では、任意の数の後処理が選択可能であってよい。また「表示」の後処理が選択されている場合には、図示されるように、撮像画像表示領域2002に表示された撮像画像中に解析結果に係る結果枠2005を重畳表示するようにしてもよい。結果枠2005は、撮像画像表示領域2002に表示される撮像画像中の、検出された対象の座標に重畳される。結果枠2005の形状は、矩形に限らず、例えば楕円等の任意の図形であってもよい。また、検出した対象や属性に応じて、結果枠2005の形状や色を変更するようにしてもよい。
GUI2001において選択された解析処理及び後処理の情報は、各撮像装置110に伝送され、動作制御に利用される。
《処理の流れ》
続いて、本実施形態の画像解析システムにおいて実行される処理の流れの例について説明する。なお、以下の各処理のうち撮像装置110が実行する処理は、例えば、演算処理部203内のプロセッサがメモリ等に記憶されたプログラムを実行することによって実現される。ただし、これは一例に過ぎず、後述の処理の一部又は全部が、専用のハードウェアによって実現されてもよい。また、着脱可能デバイス100や入出力装置130が実行する処理についても、各装置におけるプロセッサがメモリ等に記憶されたプログラムを実行することによって実現されてもよいし、処理の一部又は全部を、専用のハードウェアによって実現してもよい。
〈全体の流れ〉
図8に、画像解析システムにおいて実行される解析処理の一連の流れを概略的に示す。ここで、図8に示す処理は、撮像装置110に演算装置である着脱可能デバイス100が装着された際に開始され、解析処理の実行を一連の流れとして含むものとして説明する。しかしながら、解析処理は、着脱可能デバイス100が装着されたタイミングに実行が定められているものに限られず、実行要求に受信に応じて任意のタイミングで実行可能である。
図示される処理では、まず撮像装置110が、着脱可能デバイス100が装着されたことを検出する(S801)。続いて撮像装置110は、装着された着脱可能デバイス100の初期化シーケンスを実行する(S802)。当該初期化シーケンスは、撮像装置110と着脱可能デバイス100との間で所定のコマンドが送受信されることにより行われ、完了することで撮像装置110が着脱可能デバイス100を使用可能な状態となる。
その後、撮像装置110は、着脱可能デバイス100が実行可能な処理を把握し、ローカル(撮像装置110及び装着された着脱可能デバイス100の少なくともいずれか)で実行可能な処理を把握する(S803)。ここで、例えば画像解析システムを利用して実行され得る処理のリストが入出力装置130から予め供給される場合は、撮像装置110は当該リストを保持し、ローカルで実行可能な処理の把握において参照してもよい。この場合、撮像装置110は、着脱可能デバイス100が実行可能な処理を取得した際に、このうちの上記リストに含まれる処理のみを把握すればよい。S803で把握された、撮像装置110のローカルで実行可能な処理が、GUI2001の解析処理選択領域2003及び後処理選択領域2004に表示される処理となる。
続いて、撮像装置110は、実行する処理を決定し、必要に応じて着脱可能デバイス100の設定を実行する(S804)。このとき、実行対象として決定された処理の少なくとも一部が着脱可能デバイス100によって実行される場合には、当該処理のための着脱可能デバイス100の設定が実行される。この設定においては、例えば、実行対象の処理に対応する設定データを用いたFPGA402の再構成、及び該当する推論モデルのデータ(処理用情報)の推論モデル領域への展開が行われうる。また、実行する処理の決定は、入出力装置130においてGUI2001を介して選択された処理の情報に基づいて行われるものであってもよい。そして、撮像装置110または着脱可能デバイス100が、解析処理を実行する(S805)。その後、撮像装置110は、後処理を実行する(S806)。
なお、S805とS806の処理は、1つの撮像画像について繰り返し実行されるものであってよい。即ち、1つの撮像画像に対して複数種類の処理を実行する態様や、1つの撮像画像を分割した分割画像ごとに処理を行う態様では、適宜S805及びS806の処理が繰り返し実行されてよい。また図8の処理は、着脱可能デバイス100が装着された際に実行されるが、例えば着脱可能デバイス100が取り外された際にも、S803の処理を再度実行してローカルで実行可能な処理を再把握する等、少なくとも一部が所定のタイミングで実行されてよい。
〈ローカルで実行可能な処理を把握する処理〉
図9に、ローカルで実行可能な処理を撮像装置110において把握する処理の流れの例を示す。本処理は、図8のS803の処理に対応し、着脱可能デバイス100等のデバイスが撮像装置110に装着された又は抜去された際や、撮像装置110の電源がオンとなった際に実行されうる。本処理では、撮像装置110は、着脱可能デバイス100で実行可能な処理を読み出し、撮像装置110自身が実行可能な解析処理と統合し、ローカルで実行可能な解析処理を把握する。
まず、撮像装置110の制御部304は、記憶部303に記憶されている、撮像装置110自身の解析部305において実行可能な処理のリストである第1処理リストを読み出す(S901)。続いて、制御部304は、装着されたデバイスが、例えば従来の記録機能のみを有するデバイスであるか、着脱可能デバイス100等の特定の処理機能を有するデバイス(演算装置)であるかを判定する(S902)。例えば、制御部304は、デバイス通信部306を制御して、装着されたデバイスに対して、ROM404の特定のアドレスの情報の読み出し要求(リードコマンド)を発行し、読み出された情報に基づいて判定を行う。ここで、ROM404の特定のアドレスに格納されている情報は、特定の解析処理を実行可能に構成された演算装置であるか否かを示すフラグデータを含む。以下では、当該特定のアドレスを「アドレスA」として言及する場合がある。なお、アドレスAに格納されている情報は、フラグデータ以外にも含むが、その詳細については後述する。従って、制御部304は、読み出されたフラグデータに基づいて、装着されたデバイスが特定の処理機能を有する演算装置であるかを判定する。ただし、フラグデータに基づく判定方法は一例に過ぎず、他の方法によって、装着されたデバイスが演算装置であるか否かが判定されてもよい。
装着されたデバイスが演算装置である場合(S902でYES)、制御部304は、当該デバイス(着脱可能デバイス100)において実行可能な処理を把握するための処理を実行する。制御部304は、デバイス通信部306を制御して着脱可能デバイス100と通信し、着脱可能デバイス100において実行可能な処理のリスト(以下、第2処理リストとして言及)を取得する(S903)。ここで、第2処理リストは、FPGA402を再構成することで実行可能となる処理、及び推論モデルのデータを変更することで実行可能となる処理を含むものであってよい。即ち、第2処理リストに含められる処理は、ROM404に格納されている設定データ及び処理用情報に応じて定まる。制御部304は、例えば、着脱可能デバイス100が演算装置であるか否かを判定した場合と同様に、ROM404のアドレスAにフラグデータとは別に格納されている第2処理リストを取得する。当該態様では、撮像装置110は、アドレスAについて読み出し要求を行うことで、フラグデータと第2処理リストとを同時に取得して、S902の処理とS903の処理とを同時に実行することができる。ただし、格納場所はこれに限られるものではなく、これらのデータは、着脱可能デバイス100の別のアドレスに格納されてもよい。その後、制御部304は、記憶部303から読み出した撮像装置110自身が実行可能な処理の第1処理リストと、着脱可能デバイス100から取得した第2処理リストとを統合・マージした統合処理リストを生成し(S904)、処理を終了する。
この統合処理リストは、ネットワーク上のサーバ等の装置を介して行われる処理ではなく、撮像装置110のローカルで実行可能な処理を示すリストである。なお、本実施形態では、統合処理リストは、第1処理リストに含まれる処理と第2処理リストに含まれる処理との和集合によって得られるリストであり、第1処理リストと第2処理リストとの少なくともいずれかに含まれる処理がリスト化されたものである。ただし、これに限られず、例えば、第1処理リストに含まれる処理と第2処理リストに含まれる処理とを組み合わせることによって別の処理を実行可能となる場合等では、その実行可能となる別の処理が統合処理リストに加えられてもよい。即ち、第1処理リストに含まれる処理の少なくとも一部と第2処理リストに含まれる処理の少なくとも一部とが共に利用されることで新たな解析処理が実行可能となる場合は、その解析処理の情報が統合処理リストに含められうる。例えば、顔認証処理は、顔検出処理機能と、顔特徴抽出処理機能と、顔特徴照合処理機能の機能群によって実現されうる。このとき、第1処理リストに顔検出処理機能と顔特徴抽出処理機能とが含まれ、第2処理リストに顔特徴照合処理機能が含まれているとすると、統合処理リストには、顔認証処理が含められうる。
装着されたデバイスが演算装置でない場合(S902でNO)、制御部304は、装着されたデバイスによって実行可能な処理がないと判定する。即ち、装着されたデバイスから第2処理リストが読み出されないため、制御部304はローカルで実行可能な処理として装着されたデバイスで実行される処理を含めない。従って、制御部304は、記憶部303から読み出した自装置において実行可能な処理の第1処理リストを、ローカルで実行可能な処理を示す統合処理リストとして(S905)、処理を終了する。なお、デバイスが抜去された際に図9の処理が実行されると、演算装置が当然に装着されていないため、結果として第1処理リストが統合処理リストとして扱われることとなる。
これにより、特定の処理を実行可能な着脱可能デバイス100が撮像装置110に装着されているか否かに基づいて、撮像装置110のローカルで実行可能な処理をリスト化することができる。また、当該統合処理リストを入出力装置130に伝送することで、統合処理リストに係る解析処理群をGUI2001の解析処理選択領域2003のようにユーザに提示し、撮像装置110に実行させる処理を選択可能とすることができる。
なお、本実施形態では、統合処理リストを生成する場合の例を示したが、第1処理リストと第2処理リストとが個別に管理され、統合処理リストが生成されなくてもよい。すなわち、着脱可能デバイス100で実行可能な処理と、着脱可能デバイス100を伴わずに撮像装置110で実行可能な処理とが区別可能に管理され、入出力装置130に提供されてもよい。また、第1処理リストと第2処理リストが個別管理される場合であっても、さらに統合処理リストが生成されて管理されてもよい。例えば、第1処理リストに含まれる処理と第2処理リストに含まれる処理とが共に使用されることにより新たな処理が実行可能となる場合に、当該新たな処理が、第1処理リストと第2処理リストには含まれないが、統合処理リストに含まれる。なお、統合処理リストが出力される場合、併せて、その統合処理リストに含まれる処理が第1処理リストと第2処理リストとのいずれに含まれる処理であるかを区別可能に示す情報が出力されうる。これにより、例えば入出力装置130において提示された処理が、着脱可能デバイス100なしで実行可能であるか処理であるか否かをユーザが認識することができるようになる。
なお、上述の処理リストは、後述のように、入出力装置130のような少なくとも撮像装置110に含まれない外部装置に提供されるが、外部装置に提供されず、あるいは、外部装置への提供と共に、撮像装置110において提示されてもよい。例えば、撮像装置110がディスプレイを有する場合に、当該ディスプレイへの処理リストの表示や、撮像装置110が音声出力機能を有する場合に、処理リストに含まれる処理の音声出力等によって、処理リストが提示されてもよい。撮像装置110において処理リストが提示されることにより、意図と異なる処理機能を有する着脱可能デバイス100を撮像装置110に誤って装着させた場合等に、ユーザがその誤装着を迅速に認識することが可能となる。このように、撮像装置110は、撮像装置110が実行可能な処理を示す第1処理リストと着脱可能デバイス100が実行可能な処理を示す第2処理リストとに基づく情報を、任意の形式で出力しうる。
また、撮像装置110は、着脱可能デバイス100が抜去された場合には、図9の処理を再度実行することによって、統合処理リストを更新することができる。また、このとき、撮像装置110は、抜去された着脱可能デバイス100に関する第2処理リストを破棄しうる。ただし、これに限られず、撮像装置110は、ある着脱可能デバイス100についての第2処理リストを記憶部303に別途記憶しておき、その着脱可能デバイス100が装着されていない場合であっても、その第2処理リストを出力しうる。すなわち、撮像装置110は、過去に装着されて抜去された着脱可能デバイス100についての第2処理リストを出力するように構成されてもよい。また、撮像装置110は、その過去に装着されて抜去された着脱可能デバイス100についての第2処理リストに含まれる処理と、第1処理リストに含まれる(自装置で実行可能な)処理とを用いて実行可能となる処理を示す情報を出力してもよい。換言すれば、撮像装置110は、自装置のみでは実行できない処理の情報を出力しうる。これによれば、ユーザに対して、出力された第2処理リストが示す処理を実行可能な着脱可能デバイス100が存在することと、その着脱可能デバイス100の装着により、当該処理が実行可能となることを通知することができる。
さらに、撮像装置110は、実際に装着された履歴がなくとも、装着可能な他の着脱可能デバイス100(未装着のデバイス)について、第2処理リストを出力するように構成されもよい。このような未装着デバイスと当該未装着デバイスが実行可能な解析処理を示す情報は、例えば、不図示の外部のサーバからネットワークを介して撮像装置110が取得するものであってよい。あるいは、未装着デバイスと当該未装着デバイスが実行可能な解析処理を示す情報は、例えば、撮像装置110が事前に保持していてもよい。
また、撮像装置110は、未装着デバイスについての第2処理リストに含まれる処理と、第1処理リストに含まれる(自装置で実行可能な)処理とを用いて実行可能となる処理を示す情報を出力してもよい。換言すれば、撮像装置110は、自装置のみでは実行できない処理の情報を出力しうる。これによれば、ユーザに対して、出力された情報が示す処理を実行可能な着脱可能デバイス100が存在することと、その着脱可能デバイス100を装着することにより、その処理が実行可能となることを通知することができる。
なお、撮像装置110は、過去に装着されて抜去された着脱可能デバイス100についての第2処理リストを記憶する際に、その着脱可能デバイス100の機種番号などのデバイスを特定可能な情報を併せて記憶しうる。そして、撮像装置110は、その着脱可能デバイス100に関する第2処理リストを出力する際に、その着脱可能デバイス100を特定可能な情報も併せて出力しうる。これによれば、ユーザが、提示された処理機能を使用するために、どの着脱可能デバイス100を撮像装置110に装着すればよいかを容易に認識することができるようになる。
〈解析処理内容を決定する処理〉
図10に、撮像装置110及び着脱可能デバイス100が行う解析処理の内容を決定し、また必要に応じて当該解析処理を実行可能なように着脱可能デバイス100の再構成及び処理用情報の展開を行う処理の流れの例を示す。本処理は、図8のS804に先立って実行される処理とS804の処理とに対応し、入出力装置130と撮像装置110(及び着脱可能デバイス100)との間で実行される。本処理では、撮像装置110のローカルで実行可能な解析処理の情報が入出力装置130に伝送されてGUI2001を介して提示され、このうちの少なくともいずれかの処理を選択する操作入力が、入出力装置130において受け付けられる。そして撮像装置110は、当該選択の情報に基づいて、ローカルで実行する解析処理を決定する。
まず、入出力装置130の制御部702が、ネットワーク通信部701を制御して、撮像装置110との通信を実行し、撮像画像と統合処理リストと後処理リストの取得を要求する(S1001)。入出力装置130は、一例として、ONVIF規格で規定された要求メッセージを撮像装置110へ送信することによって、撮像装置110に情報の送信を要求する。ただし、情報の送信要求はこれに限られるものではなく、他のメッセージ等によって行われるものであってよいことは言うまでもない。
なお、図20に示したように、本実施形態の画像解析システムでは撮像装置110(及び着脱可能デバイス100)に実行させる解析処理を入出力装置130において選択するに際し、着脱可能デバイス100により取得された撮像画像が伴って提示される。従って、図10に示される処理では、統合処理リスト及び後処理リストの取得要求に伴って、撮像画像の取得要求がなされる。しかしながら、解析処理の内容を決定する処理の実行に際して、撮像画像の提示は必須のものではなく、撮像画像の取得要求の送信と、後述の撮像画像の取得処理及び撮像画像の送信処理は行われなくてもよい。
撮像装置110は、入出力装置130からの取得要求に基づいて、撮像制御部301が周囲の環境を撮像し、制御部304が信号処理部302を制御して、撮像制御部301によって撮像された画像を処理して、撮像画像を取得する(S1002)。なお、監視システムの用途では、撮像装置110は、要求の有無によらず周囲の環境を撮像して、撮像画像を取得し続けるものであってもよい。このとき、撮像装置110により取得された撮像画像は、撮像装置110のローカルに保存されていてもよいし、ネットワークサーバ等の他の装置に転送されて保存されていてもよい。
また制御部304は、入出力装置130からの取得要求に基づいて、記憶部303に記憶されている後処理リストを読み出す。後処理リストは、本実施形態では図20に示したように表示処理及び保存処理を含むものとするが、これに限られるものではない。制御部304は、ネットワーク通信部307を制御して、後処理リストと、図9の処理によって取得した統合処理リストと、S1002で取得した撮像画像とを入出力装置130に送信する(S1003)。撮像装置110は、一例として、上述のONVIF規格で規定された要求メッセージに対する応答メッセージを入出力装置130へ送信することによって、入出力装置130へ情報を送信する。ただし、情報の送信方法はこれに限られるものではなく、他のメッセージ等によって情報の送信が行われてもよい。
入出力装置130の制御部702は、ネットワーク通信部701を制御して、撮像装置110から撮像画像と統合処理リストと後処理リストを受信する。そして、制御部702は、表示部703を制御して、画面にGUI2001を表示する態様で統合処理リストと後処理リストを提示する(S1004)。なお、制御部702は、このときに、併せて撮像画像を画面表示の態様で提示してもよい。
その後、入出力装置130の制御部702は、表示部703に表示された統合処理リストについて、着脱可能デバイス100(及び撮像装置110)に実行させる解析処理(以下、指定解析処理として言及)の選択に係る操作入力を受け付ける(S1005)。同様に制御部702は、指定解析処理の結果について実行させる後処理(以下、指定後処理として言及)の選択に係る操作入力を受け付ける(S1006)。行われた各種選択に係る操作入力の情報(指定解析処理及び指定後処理の情報、またはこれら処理の選択についてなされた操作入力そのものの情報)は、操作部704により制御部702に出力される。指定解析処理及び指定後処理の選択を受け付けると、制御部702は、ネットワーク通信部701を制御して、これら処理を示す情報を撮像装置110に送信する(S1007)。
撮像装置110の制御部304は、ネットワーク通信部307を制御して、入出力装置130から指定解析処理を示す情報を受信すると、当該指定解析処理が第2処理リストに含まれる処理であるか否かを判定する(S1008)。そして、制御部304は、指定解析処理が第2処理リストに含まれる処理ではない場合(S1008でNO)には、撮像装置110内で処理を実行するため、着脱可能デバイス100への通知等を行うことなく図10の処理を終了する。一方、制御部304は、指定解析処理が第2処理リストに含まれる処理である場合(S1008でYES)、デバイス通信部306を制御して、指定解析処理に係る設定要求を着脱可能デバイス100に送信する(S1009)。
着脱可能デバイス100の通信部502は、指定解析処理の設定要求を撮像装置110から受信する。このとき、通信部502は、撮像装置110から書き込まれるデータ量や書き込みコマンドの種別によって指定解析処理の設定要求を判別しうる。通信部502は、撮像装置110から受信した指定解析処理の設定要求を、解析部501に出力する。
解析部501は、通信部502から入力された指定解析処理の設定要求に基づいて、指定解析処理を実行可能な状態にするための設定を実行する(S1010)。より詳しくは、着脱可能デバイス100の処理切替部411が、該当の設定データに基づいて演算処理部412を再構成し、必要な処理用情報をRAM405に展開することで、指定解析処理を実行可能なようにFPGA402の状態を制御する。
通信部502は、例えば解析部501の設定が完了した後に、設定完了通知を撮像装置110に送信する(S1011)。なお、当該設定完了通知は、着脱可能デバイス100の設定が完了していないタイミングで、撮像装置110からのデータの書き込みがなされないようにするために行われるものである。従って、通信部502は、着脱可能デバイス100の設定完了を撮像装置110に通知できればよく、設定が実際に完了する前に、再構成完了のタイミングの情報等を撮像装置110に通知してもよい。撮像装置110の制御部304は、デバイス通信部306を制御して、着脱可能デバイス100から設定完了通知を受信する。
着脱可能デバイス100からの撮像装置110への設定完了通知は、例えば、以下の3つ方法のうちのいずれかを用いて実行されうる。1つ目の通知方法では、通信部502が、撮像装置110から受信したデータの1ブロック目の書き込み処理の発生時に、解析部501に指定解析処理を実行可能にさせる設定が終了していないのであれば、BUSY信号を出力するようにする。BUSY信号の出力は、例えば、SD規格で定められているDATAの信号ラインをLow状態にドライブしておくことにより行われる。この場合、撮像装置110は、BUSY信号を確認することにより、指定解析処理に係る設定が完了したか否かを判別することができる。2つ目の通知方法では、指定解析処理に係る設定が完了するまでの時間の情報を、例えばROM404のアドレスAに予め格納しておき、撮像装置110が当該時間の情報を読み出すようにする。従って、撮像装置110は、指定解析処理に係る設定が完了するまでの時間を待機した後に、後続のデータ書き込みに係る出力(ライトコマンドの発行)を行う。このようにすることで、撮像装置110は、指定解析処理に係る設定が完了した後に、指定解析処理を適用する撮像画像のデータを入力することができる。3つ目の通知方法では、解析部501が、指定解析処理に係る設定が完了した際に、ROM404の例えばアドレスAと異なる特定のアドレス(アドレスB)に設定完了のフラグデータを書き込む。この場合、撮像装置110は、アドレスBのデータを読み出すことで、指定解析処理に係る設定が完了したか否かを判別することができる。なお、設定完了を示すフラグデータが書き込まれるアドレスBの情報は、例えば上述のアドレスAに格納される情報に含められることで撮像装置110に伝送されるものであってもよいし、その他の手法で伝送されてもよい。
従って、図10に示した処理のように、撮像装置110への着脱可能デバイス100の装着状況、または装着された着脱可能デバイス100が提供可能な処理機能に応じて構成された統合処理リストが入出力装置130に提供される。これにより、入出力装置130のユーザは、撮像装置110の機能拡張状況を考慮した上で、指定解析処理を選択することができる。また指定解析処理が着脱可能デバイス100において実行可能な処理である場合には、ユーザによる設定操作を要することなく、当該指定解析処理を実行可能なように処理切替部411の再構成及び推論モデルのデータ展開が行われる。また、指定解析処理が着脱可能デバイス100で実行可能な処理を含まず、撮像装置110単体で当該指定解析処理を実行する場合には、不必要に着脱可能デバイス100の設定が行われることを防ぐことができる。
〈指定解析処理の実行制御〉
図11に、撮像装置110のローカルにおいて指定解析処理を実行する際の制御の流れを例示する。本処理は、図8のS805の処理に対応し、撮像装置110及び着脱可能デバイス100により実行される。
本処理では、まず、指定解析処理の対象となる撮像画像の取得がなされる(S1101)。より詳しくは、撮像制御部301が周囲の環境を撮像したことに応じて、制御部304が信号処理部302を制御して種々の処理を実行させ、撮像画像の取得がなされる。図11に示す処理では、1つの撮像画像に対して、指定解析処理として1種類の解析処理(解析前処理、解析処理及び解析後処理の一連の処理)が実行されるものとして説明するため、S1101で撮像画像の取得を行う。しかしながら、例えば複数種類の解析処理を切り替えて実行するような態様において、各解析処理に対して撮像画像の取得が必須ではないことは容易に理解されよう。また指定解析処理の適用対象となる画像は、当該指定解析処理の実行時に撮像されたものでなくてもよい。
撮像画像が取得されると、制御部304は、解析部305を制御して、当該撮像画像に対して指定解析処理の解析前処理を実行させ、結果画像を取得する(S1102)。解析前処理は、例えば、撮像画像を複数の領域の画像に分割する処理であってよく、この場合解析前処理の結果画像は、分割画像となる。なお、解析前処理は、指定解析処理によって異なるものであってよく、例えば指定解析処理の入力データサイズに撮像画像の全体が収まる場合には、領域分割の処理を行わなくてもよい。あるいは、解析前処理は、入力データサイズに撮像画像の全体が収まらない場合であっても、領域分割はせず、撮像画像を入力データサイズにリサイズする処理を行うものであってもよい。また、解析前処理は、領域分割及びリサイズの処理の両方を行うものであってもよい。
続いて制御部304は、指定解析処理が第2処理リストに含まれる処理であるか否かを判定する(S1103)。即ち、制御部304は、指定解析処理が着脱可能デバイス100により実行可能な処理であるか否かを判定する。
制御部304は、指定解析処理が第2処理リストに含まれる処理ではないと判定した場合(S1103でNO)、解析部305を制御し、解析前処理の結果画像に対して指定解析処理を実行させる(S1104)。即ち、撮像装置110において指定解析処理が実行され、解析結果が導出される。そして、制御部304は、解析部305を制御して、解析結果に対する指定解析処理の解析後処理を実行させ(S1108)、本処理を終了する。ここで、解析後処理は、例えば撮像画像を分割して順次指定解析処理を実行する態様での、全分割画像について得られた解析結果を統合し、撮像画像全体についての解析結果として最終出力する処理を含むものであってよい。
制御部304は、指定解析処理が第2処理リストに含まれる処理である場合(S1103でYES)、デバイス通信部306を制御して、解析前処理の結果画像を着脱可能デバイス100に送信させる(S1105)。例えば、制御部304は、解析前処理の結果画像の書き込み要求(ライトコマンド)を発行することで、着脱可能デバイス100への結果画像の送信を実現する。着脱可能デバイス100の通信部502は、解析前処理の結果画像を撮像装置110から受信すると、当該結果画像を解析部501に出力する。具体的には、I/F401を介して受信された結果画像が、入出力制御部410によってRAM405に伝送され、作業領域に格納される。
解析部501は、通信部502から入力された結果画像に対して指定解析処理を実行し、解析結果を導出する(S1106)。解析部501は、本処理に先行して実行された処理(図10のS1010の処理)により指定解析処理を実行可能に設定されているため、例えば解析開始コマンドの受信により、当該処理を実行する。そして通信部502は、解析部501による指定解析処理の解析結果を撮像装置110に送信する(S1107)。撮像装置110の制御部304は、デバイス通信部306を制御して、着脱可能デバイス100から解析結果を受信させる。そして制御部304は、解析部305を制御して、解析結果に対する指定解析処理の解析後処理を実行させる(S1108)。
着脱可能デバイス100から撮像装置110への解析結果の送信は、例えば以下のようにして実現されるものであってよい。
着脱可能デバイス100の解析部501は、指定解析処理ごとに割り当てられたRAM405の格納先アドレスに、解析結果を格納する。より詳しくは、演算処理部412が入力画像に対する指定解析処理の実行を完了すると、SDコントローラ403がRAM405の格納先アドレスにその解析結果を格納する。当該格納先アドレスの情報は、例えば第2処理リストに含められるものであってよく、撮像装置110の制御部304は、撮像装置110から受信した第2処理リストに基づいて、格納先アドレスを特定できる。そして制御部304は、例えば指定解析処理に係る格納先アドレスの情報に基づいて、当該格納先アドレスに対する読み出し要求(リードコマンド:結果出力コマンド)を発行し、デバイス通信部306を介して送信する。
続いて、着脱可能デバイス100の解析部501は、通信部502を介して、解析結果の格納先アドレスに対する読み出し要求を受信すると、解析結果を撮像装置110に対して返送する。より詳しくは、入出力制御部410は、I/F401を介して当該読み出し要求を受信すると、RAM405の格納先アドレスに格納されている解析結果をSDコントローラ403を介して取得し、I/F401に伝送して撮像装置110に返送させる。これにより、撮像装置110は、着脱可能デバイス100から指定解析処理に係る解析結果を得ることができる。
なお、制御部304による格納先アドレスに対する読み出し要求の発行は、例えば、解析開始コマンドの送信から指定解析処理に係る推定処理時間が経過したことに応じて制御されるものであってもよい。本実施形態では、着脱可能デバイス100が実行可能な複数種類の処理の各々について、推定処理時間の情報が第2処理リストに含められており、制御部304は装着された着脱可能デバイス100から取得した当該リストの情報に基づいて発行制御を行う。あるいは、着脱可能デバイス100の通信部502が、解析前処理の結果画像の最後の1ブロックの書き込み要求から当該ブロックに対する指定解析処理が完了するまでの間BUSY信号を出力する態様では、当該信号の出力状況に応じて発行制御を行ってもよい。この場合、制御部304は、BUSY信号を受信しなくなったことに応じて、格納先アドレスに対する読み出し要求を発行するものであってよい。このようにすることで、制御部304は、指定解析処理の完了後に、その解析結果を取得することができる。ここで、発行した格納先アドレスに対する読み出し要求について解析結果が返送されない、あるいはエラーが返送される場合には、制御部304は繰り返し同要求を発行する(リトライする)ものであってもよい。
以上のような処理により、本実施形態の撮像装置110は、指定解析処理が着脱可能デバイス100において実行可能な解析処理であるか否かに応じて、その実行主体を異ならせ、効率的に、または高精度に解析結果を得ることができる。またこのような実行主体変更の制御を、入出力装置130のユーザに意識させず、撮像装置110において実現することができる。
〈指定後処理の実行制御〉
図12に、本実施形態の画像解析システムにおいて指定後処理が実行される際の制御の流れを例示する。本処理は、図8のS806の処理に対応し、撮像装置110と入出力装置130との間で実行される。図20に示したように、本実施形態の画像解析システムでは、1つの撮像画像の全体について指定解析処理を実行して得られた解析結果(解析後処理の出力)の情報の後処理として表示処理及び保存処理が含まれている。従って、指定後処理としてこれらのうちの少なくともいずれかが指定される場合に、該当の装置で指定後処理が実現されるように撮像装置110が制御を行う。
本処理では、まず撮像装置110の制御部304は、指定後処理に表示処理が含まれるか否かを判定する(S1201)。制御部304は、指定後処理に表示処理が含まれると判定した場合(S1201でYES)、ネットワーク通信部307を制御して、解析結果の情報を入出力装置130に送信させる(S1202)。入出力装置130の制御部702は、撮像装置110から解析結果が受信されると、表示部703を制御して、解析処理の結果を画面表示等により提示する(S1203)。一方、制御部304が指定後処理に表示処理が含まれないと判定した場合(S1201でNO)、S1202及びS1203の処理は実行されない。
また、撮像装置110の制御部304は、指定後処理に保存処理が含まれるか否かを判定する(S1204)。制御部304は、指定後処理に保存処理が含まれると判定した場合(S1204でYES)、記憶部303を制御して、解析処理の結果を記憶させ、処理を終了する(S1205)。一方、制御部304は、指定後処理に保存処理が含まれないと判定した場合(S1204でNO)は、S1205の処理を実行せずに処理を終了する。
このように本実施形態の画像解析システムでは、解析結果の取り扱いを、ユーザが各撮像装置110に装着される着脱可能デバイス100のそれぞれを操作することなく設定できる点で、利便性が向上する。なお、図12の例では、表示処理→保存処理の順序で判定を行うものとして説明したが、これらの順序は如何様であってもよいし、同時並行して実行されるものであってもよい。また、本実施形態では保存処理が指定後処理に含まれる場合には、解析結果が記憶部303に記憶(保存)されるものとして説明したが、解析結果の保存先がこれに限られるものではないことは理解されよう。
〈撮像装置110と着脱可能デバイス100との間の通信〉
ここで、撮像装置110と着脱可能デバイス100との通信について説明する。撮像装置110の演算処理部203と着脱可能デバイス100のSDコントローラ403は、撮像装置110のSD I/F205のデバイス挿入用ソケットを介し、電源ライン、GNDライン、クロックライン、コマンドライン、データラインで接続される。なお、クロックライン、コマンドライン、及び、データラインは、FPGA402を経由する形で接続されるものとする。クロックラインでは、演算処理部203から出力される同期用のクロックが通信される。コマンドラインでは、演算処理部203からSDコントローラ403への動作要求用に発行するコマンド、コマンドに対するSDコントローラ403から演算処理部203へのレスポンスが通信される。データラインでは、演算処理部203からの書き込みデータ、着脱可能デバイス100からの読み出しデータが通信される。また、演算処理部203は、SD I/F205のデバイス挿入用ソケットのデバイスディテクト信号のHighとLowを判別することにより、着脱可能デバイス100が挿入されているか否かを認識することができる。
演算処理部203は、SDコントローラ403に対して電源供給後にコマンドライン上でコマンドを発行する。そして、演算処理部203は、SDコントローラ403からのレスポンスと、SDカードとしてのデバイス情報を示す出力データを受信したことに応じて、データの通信用の電圧、通信速度(クロック周波数)等の設定を行う。
図13に、コマンドライン上で通信されるコマンド(図13(A))とレスポンス(図13(B))の構成例を示す。これらのコマンドとレスポンスはSD規格に準拠した構成を有する。演算処理部203からSDコントローラ403に対して発行されるコマンド1301は、コマンドナンバー部1304と、コマンド引数部1305と、誤り訂正用データ部1306とを含んで構成される。コマンドナンバー部1304には、コマンドの種別を示す値が記述される。例えば、コマンドナンバー部1304に値「23」が格納されている場合、そのコマンドがデータブロック数を指定するブロック数指定コマンドであることが示される。また、コマンドナンバー部1304に値「25」が格納されている場合、そのコマンドがマルチライトコマンドであることが示され、コマンドナンバー部1304に値「12」が格納されている場合、そのコマンドがデータ転送停止コマンドであることが示される。コマンド引数部1305では、コマンドの種別に応じて転送データブロック数、メモリの書き込み・読み出しアドレス等の情報が指定される。また、コマンドの最初のビットには、コマンドの開始位置を示すコマンドスタートビット1302が付加され、コマンドの最後のビットにはコマンドの終了を示すコマンドエンドビット1307が付加される。また、コマンドスタートビット1302の後ろに、撮像装置110から着脱可能デバイス100に対して出力された信号であることを示すディレクションビット1303も付加される。
演算処理部203からのコマンドに対してSDコントローラ403から返されるレスポンス1311は、どのコマンドに対するレスポンスかを示すレスポンスナンバー部1314と、レスポンス引数部1315と、誤り訂正用データ部1316とを含む。また、レスポンスの最初のビットにはレスポンスの開始位置を示すレスポンススタートビット1312が付加され、レスポンスの最後のビットにはレスポンスの終了位置を示すレスポンスエンドビット1317が付加される。また、レスポンススタートビット1312の後ろに着脱可能デバイス100から撮像装置110に対して出力された信号であることを示すディレクションビット1313も付加される。レスポンス引数部1315には、コマンド種別に応じてSDカードのステータス等の情報が格納される。
次に、演算処理部203と着脱可能デバイス100とのデータの送受信の方法を説明する。SD I/F205では、データの書き込み及び読み出し共にブロック単位でデータの転送が行われる。
演算処理部203が着脱可能デバイス100に対して複数ブロックのデータを転送する方法は以下の2つの方法がある。1つ目の方法では、転送データのブロック数指定コマンドによってブロック数が指定された後に、マルチライトコマンドにより、指定されたブロック数だけデータが転送される。ブロック数指定コマンドでは、コマンド引数部1305において書き込みデータのブロック数が指定され、マルチライトコマンドでは、コマンド引数部1305においてデータが書き込まれるべきROM404またはRAM405のアドレスが指定される。2つ目の方法では、ブロック数指定コマンドが発行されることなくマルチライトコマンドが発行されることにより、データ転送が開始され、データ転送が終わった時点で転送停止コマンドが発行されることによって処理が終了する。このとき、マルチライトコマンドのコマンド引数部1305において、データが書き込まれるべきROM404またはRAM405のアドレスのみが指定される。演算処理部203は2つの書き込み方法を任意に切り替えることが可能である。
なお、記憶処理が行われる場合、FPGA402は、演算処理部203から送られるコマンドとデータをそのままSDコントローラ403に入力し、SDコントローラ403は、受信したデータをコマンドで指定されたROM404のアドレスに格納する。解析処理が行われる場合には、FPGA402は、演算処理部203から送られるデータに対して解析処理を実行し、その処理結果のデータと、RAM405の所定のアドレスを指定する情報を、SDコントローラ403に出力する。SDコントローラ403は、指定されたRAM405のアドレスに処理結果を格納する。
演算処理部203が着脱可能デバイス100から複数ブロックのデータを読み出す方法は以下の2つの方法がある。1つ目の方法では、ブロック数指定コマンドでブロック数が指定されてからマルチリードコマンドが発行され、指定されたブロック数だけデータが読み出される。ブロック数指定コマンドでは、コマンド引数部1305において読み出しデータのブロック数が指定され、マルチリードコマンドのコマンド引数部1305においてデータの読み出し元であるROM404またはRAM405のアドレスが指定される。2つ目の方法では、ブロック数指定コマンドが発行されることなくマルチリードコマンドが発行されることにより、データの読み出しが開始され、転送停止コマンドが発行されることによって処理が終了する。演算処理部203は2つの読み出し方法を任意に切り替えることが可能である。
なお、書き込みデータ、読み出しデータが1ブロックの場合には、シングルライトコマンド、シングルリードコマンドが発行されることにより、ブロック数指定コマンド、転送停止コマンドが発行されることなく、データの書き込み、読み出しが実行されうる。シングルライトコマンド、シングルリードコマンドにおいても、上述の説明と同様に、コマンド引数部1305において、アクセス対象のROM404またはRAM405のアドレスが指定される。
演算処理部203は、着脱可能デバイス100に対して書き込みを行うことで、記憶処理または解析処理の対象となるデータを着脱可能デバイス100へ送信することができる。また演算処理部203は、着脱可能デバイス100に対して読み出しを行うことで、ROM404またはRAM405に記憶された画像データ、解析処理の処理結果、着脱可能デバイス100が保有する画像解析の処理機能の情報(第2処理リスト)を取得できる。
本実施形態の着脱可能デバイス100は、ROM404のアドレスAに、自装置が有する処理機能の情報を格納する。撮像装置110の演算処理部203は、このアドレスAに対してマルチリードコマンド又はシングルリードコマンドを発行することにより、着脱可能デバイス100が有する処理機能の情報を確認することができる。ここで、処理機能の情報は、処理機能を保有しているか否か(フラグデータ)、処理が実行された場合に完了するまでの所要時間(推定処理時間)、処理結果のデータサイズ、処理結果が格納されるアドレス情報(格納先アドレスの情報)を含む。
図14に、この処理機能の情報の一例を示す。処理機能保有フラグ1401(フラグデータ)は、着脱可能デバイス100が解析処理機能を有していることを示している。撮像装置110は、処理機能保有フラグ1401を確認することにより、着脱可能デバイス100がいずれの解析処理機能を有しているか否かを判定することができる。処理機能分類1402は、着脱可能デバイス100が有している解析処理を示す。入力データサイズ1403及び処理データ数1404は、各々の処理機能のデータの入力仕様に関する情報を示す。また、推定処理時間1405は、データ入力から処理結果出力までに掛かる時間を示し、処理結果データ数1406は処理結果のデータ数を示す。また、処理結果格納先アドレス1407は、RAM405のいずれのアドレスに処理結果が格納されるかを示す。演算処理部203は、図14に示したようなデータ(処理機能の情報)をROM404のアドレスAから読み出すことにより、図15に示すような処理機能テーブルを構築することができる。当該処理機能テーブルは、撮像装置110における処理において参照可能なように、例えば記憶部303に保持される。
また着脱可能デバイス100は、演算処理部203からアドレスAに対するリードコマンドが発行されない場合には、自装置が装着された機器が解析処理機能を使用しない機器であると判断する。この場合、着脱可能デバイス100は、転送されるデータに関してはROM404に対する記憶処理のみを実行するようにしうる。これにより、着脱可能デバイス100は、解析処理機能を必要としない機器に対しては、メモリデバイスとしてのみ機能することが可能となる。ここでは、ROM404のアドレスAに処理機能の情報を格納しておく方法を示したが、これに限定されるものではない。例えば、着脱可能デバイス100の初期設定時に使用されるコマンドに対するレスポンスにおいて、レスポンス引数部1315に処理機能の情報を付加するようにしてもよい。
なお、撮像装置110は、例えば、着脱可能デバイス100の初期化設定終了後に、ROM404のアドレスAの読み出しを実行する。また、撮像装置110は、ソケットにおいてデバイスのディテクトがされなくなった場合に、読み込んだ情報を破棄する。撮像装置110は、情報の破棄の後にデバイスがソケットに挿入された場合、初期化設定終了後に再度アドレスAの値を読み出す。これにより、撮像装置110は、異なる着脱可能デバイス100が挿入された場合に、その着脱可能デバイス100の保有機能の情報を読み出し、設定することができる。
〈解析処理の実行に係るFPGA制御〉
このような撮像装置110と着脱可能デバイス100との間のコマンドベースの通信で実現される、本実施形態の着脱可能デバイス100における解析処理の実行について、図16のフローチャートを用いて詳細を説明する。図16のフローチャートは、図11のS1105~S1107の処理を、各段階でのコマンドも含めてFPGA402の観点でその内容を示したものである。即ち、撮像装置110の演算処理部203が着脱可能デバイス100に解析処理を要求した際の、着脱可能デバイス100における制御の流れの例示している。なお、演算処理部412は、図16の処理に先立って指定解析処理を実行可能に設定済みであり、RAM405の推論モデル領域にも指定解析処理に係る推論モデルのデータが展開されているものとして説明する。
FPGA402は、演算処理部203により発行された、SD規格に準拠した画像入力コマンドをI/F401を介して受信し、受け取った画像(解析前処理の結果画像。以下、入力画像として言及)をRAM405の作業領域に格納する(S1601)。画像入力コマンドは、解析処理ごとに設定された処理データ数1404の分だけ書き込みを行うためのライトコマンドである。このとき、SDコントローラ403は、FPGA402を介してライトコマンドを受信し、ライトコマンドで指定されたRAM405の作業領域のアドレスに、入力画像を書き込む。
次に、FPGA402は、演算処理部203により発行された、SD規格に準拠した解析開始コマンドを受信する(S1602)。解析開始コマンドは、演算処理部412に、現在の設定(論理回路構造)での解析処理を実行させるためのコマンドである。
解析開始コマンドの受信に応じて、演算処理部412は、S1601において作業領域に格納された入力画像について解析処理を実行し、導出された解析結果を当該解析処理について定められたRAM405の格納先アドレスに格納する(S1603)。
FPGA402は、演算処理部203により発行された、SD規格に準拠した結果出力コマンドを受信し、S1603で格納された解析結果を演算処理部203に返送する(S1604)。結果出力コマンドは、解析処理ごとに設定された処理結果格納先アドレス1407を指定し、同じく設定された処理結果データ数1406の分だけ読み出しを行うためのリードコマンドである。このとき、SDコントローラ403は、FPGA402を介してリードコマンドを受信し、リードコマンドで指定されたRAM405のアドレスに格納された解析結果のデータを読み出し、FPGA402及びI/F401を介して演算処理部203に返送する。これにより、撮像装置110は、指定解析処理に係る解析結果を取得することができる。
〈解析処理の切り替えに係るFPGA制御〉
ところで、図16に示した着脱可能デバイス100における解析処理の実行制御は、処理対象の撮像画像に対して、1種類の解析処理を実行させる場合のものである。上述したように、本実施形態の画像解析システムでは、入出力装置130においてGUI2001が提示され、撮像画像に対して複数種類の解析処理の実行が選択され得る。
選択された複数の解析処理が、いずれも着脱可能デバイス100において実行される解析処理である場合、FPGA402がこれらの解析処理を並行して実行可能である場合には、図16に示した実行制御で同様に解析結果を得ることができる。一方で、複数の解析処理を並行して実行可能なFPGA402は、それだけ演算性能が要求されるものであり、当然ながら高コストとなる。またコストの観点だけでなく、着脱可能デバイス100における消費電力も増大するため、特にバッテリ駆動の装置に装着して用いる態様では、当該装置の駆動可能時間を本来より低減させてしまう可能性がある。これらを想定すると、同時に実行可能な解析処理の数は制限されることが現実的であり、選択された解析処理の数がこれを上回る場合には、FPGA402が実行する解析処理を順次切り替えながら実行していくことが必要になる。換言すれば、着脱可能デバイス100の演算処理部203が、処理切替コマンドをさらに発行して演算処理部412の実行する解析処理を異ならせる処理が、図16の実行制御に加えて必要になる。
しかしながら、上述したように、先行する解析処理が実行されている期間、特に当該解析処理固有の推論モデルに基づく推論処理が行われている期間は、推論モデル領域に展開されているデータを書き換えることができない。従って、撮像装置110による着脱可能デバイス100の動作制御がコマンドベースで行われる態様では、撮像装置110の演算処理部203が、FPGA402の動作状況を想定して処理切替コマンドの発行タイミングを制御する必要がある。即ち、複数の解析処理を順次実行させて解析結果を取得する場合、図16に示した従前のFPGA402の実行制御の完了後に、処理切替コマンドを発行して演算処理部412を後続の解析処理を実行可能な状態に変更し、再度同様に実行制御を行う必要があった。より詳しくは、演算処理部203が、少なくとも先行の解析処理に係る解析開始コマンドの送信から推定処理時間が経過するまで待機した後、処理切替コマンドを発行する。また当該処理切替コマンドの受信に基づいて、処理切替部411がROM404から切替先の解析処理に係る処理用情報を読み出し、RAM405の推論モデル領域に展開する。その上で、さらに演算処理部203が、後続の処理に係る解析開始コマンドを発行する必要があった。故に、撮像装置110は、装着された着脱可能デバイス100により高機能な解析処理を利用できる反面、着脱可能デバイス100の仕様による制約を受けるため、選択する解析処理の種類や数に応じて、所望の解析結果を得るまでの時間が長期化し得る。
このような解析時間の長期化を回避すべく、演算処理部203がより正確に推論処理の完了タイミングを特定して、処理切替コマンドの発行制御を行うことも考えられる。しかしながら、着脱可能デバイス100が装着された装置の機能拡張を実現するとの観点からすると、装置側にこのような発行制御を強制することは現実的でない。従って、本実施形態の画像解析システムでは、撮像装置110において処理切替コマンドの発行制御を必要とするものではなく、着脱可能デバイス100において解析処理の切り替えを効率化するよう、FPGA402の動作制御を行う。より詳しくは、演算処理部203からは、複数の解析処理を実行する順序に従って、発行タイミングを考慮せず、解析開始コマンド及び処理切替コマンドを順次発行させ、コマンドを受信したFPGA402において解析処理の実行状況に応じて動作制御を行う。つまり、演算処理部203は、切り替えて実行させる複数の解析処理の組み合わせに応じて動的に処理切替コマンドの発行タイミングを制御する必要がなく、単に実行順序に応じて処理切替コマンドの発行を行えばよい。
図17に、本実施形態の着脱可能デバイス100における、演算処理部203からの処理切替コマンドを受信した際の制御の流れを例示する。
FPGA402は、演算処理部203からSD規格に準拠した処理切替コマンドを受信する(S1701)。受信された処理切替コマンドは、入出力制御部410から処理切替部411に伝送される。処理切替部411は、演算処理部412が先行の解析処理を実行中であるかを判定する(S1702)。本実施形態では推論モデルの変更により解析処理の切り替えが行われるものとして説明するので、本判定は、演算処理部412が実行中の解析処理について、現在推論モデル領域に展開されている推論モデルを用いた推論処理の実行中か否かにより行われてよい。
演算処理部412が先行の解析処理を実行中ではない場合(S1702でNO)、処理切替部411は、ROM404から切替先の解析処理に係る処理用情報を読み出し、RAM405の推論モデル領域に該当の推論モデルのデータを展開する(S1706)。これにより、演算処理部412が、切替先の解析処理を実行可能な状態に切り替わる。
一方、演算処理部412が先行の解析処理を実行中である場合(S1702でYES)、推論モデル領域の推論モデルのデータを変更することができない。故に、処理切替部411は、ROM404から切替先の解析処理に係る処理用情報を読み出し、RAM405の予備領域に該当の推論モデルのデータを展開する(S1703)。処理切替部411は、演算処理部412が先行の解析処理を完了するまで待機し(S1704)、完了後、予備領域に展開した推論モデルのデータを推論モデル領域に移動させる、あるいはコピーさせる(S1705)。これにより、演算処理部412が、同様に切替先の解析処理を実行可能な状態に切り替わる。
ここで、切替先の解析処理に係る推論モデルのデータのRAM405の予備領域への展開は、RAM405中でのデータ移動(またはコピー)に要する時間が、ROM404から情報の読み出し及びRAM405への展開に要する時間よりも短いことに依る。即ち、本実施形態の着脱可能デバイス100では、演算処理部412における先行の解析処理の完了後に処理切替コマンドに係る全ての処理を実行するのではなく、比較的時間の係るROM404からの読み出し処理を予備領域を利用して先行して実行する。これにより、撮像装置110の演算処理部203が、先行の解析処理の完了時間まで待機して処理切替コマンドを発行する態様よりも、処理切替に要する時間を短縮することができる。
図17の処理をシーケンス図で示すと、図18及び図19のようになる。
図18は、着脱可能デバイス100において処理切替コマンドを受信した(S1701)際に、演算処理部412が解析処理を実行中でない(S1702でNO)場合のシーケンスを示している。図示されるように、処理切替コマンドの受信後に、ROM404からの処理用情報の読み出し及びRAM405の推論モデル領域への展開が行われて解析処理の切り替えが行われる(S1706)。従って、撮像装置110の演算処理部203が、先行の解析処理(S1603)の完了まで待機して処理切替コマンドを発行する態様と同様である。
一方、図19は、着脱可能デバイス100において処理切替コマンドを受信した(S1701)際に、演算処理部412が解析処理を実行中である(S1702でYES)場合のシーケンスを示している。図示されるように、処理切替コマンドの受信後に、実行中の解析処理(S1603)の完了を待たずにROM404からの処理用情報の読み出し及びRAM405の予備領域への展開が行われる(S1703)。そして実行中の解析処理の完了まで待機し(S1704)、予備領域から推論モデル領域へのデータ移動(またはコピー)がなされることで解析処理の切り替えが行われる(S1705)。なお、予備領域への展開が完了するより前に先行の解析処理が完了する場合、着脱可能デバイス100は後続の解析処理に係る解析開始コマンドを受け付けないよう処理してもよい。
このようにすることで、本実施形態の演算装置によれば、複数種類の処理を切り替えながら実行する際に、切替命令を送信する側の装置に特別な処理を実行させずとも、処理の切り替えを効率化できるため、複数種類の処理の実行に要する時間を短縮できる。より詳しくは、演算装置は、先行の処理の実行中にも切替命令を受信可能とし、受信時に先行の処理が実行中である場合、処理の切り替えに必要な一部の処理を先行して実行できるため、先行の処理の完了から後続の処理の実行までに必要な待機時間を短縮できる。
なお、本実施形態では図17にて、先行の解析処理の実行中に1つの処理切替コマンドを受信する態様について説明したが、本発明の実施はこれに限られるものではない。例えば、着脱可能デバイス100に実行させる複数の解析処理は、撮像装置110において処理順序が決定されており、1以上の処理切替コマンドを着脱可能デバイス100が解析処理の実行に先立って受信することもできる。この場合、処理切替部411は、予備領域の使用状況を管理し、1つの処理切替コマンドに係る予備領域への情報展開をした後も余剰があるようであれば、さらに後続の解析処理に係る情報を予備領域に展開するよう制御してもよい。即ち、予備領域への情報の展開態様は、予備領域の使用状況に応じて異なるよう制御されるものであってよい。また、本実施形態ではRAM405の各領域(推論モデル領域、作業領域、予備領域)はリザーブされ、変動しないものとして説明したが、実行する解析処理によっては必要な推論モデル領域及び作業領域の容量が変動する。このため、使用されず余剰する推論モデル領域及び作業領域の一部の領域を、一時的に予備領域として転用し、処理切替に係るデータ展開をさらに効率化してもよい。
[実施形態2]
ところで、上述した実施形態では撮像画像に対して、順次指定された解析処理を実行する態様について説明した。つまり、解析前処理において撮像画像が分割される態様であっても、全ての分割画像に対して1つの解析処理を実行して(統合した)解析結果を出力し、次の解析処理を実行するものとして説明した。
例えば、順次入力される撮像画像のそれぞれを分割画像(検出領域)AとBに分け、顔検出処理と車両検出処理の2種類の解析処理を実行し、後処理として解析結果を表示する態様では、図22のタイムチャートのようになる。図の例では、顔検出処理→車両検出処理の順序で解析処理が実行され、各解析処理にあたり検出領域A→Bの順序で分割画像が着脱可能デバイス100に入力されて処理される。
具体的には、顔検出処理用にFPGA402が設定されている状態で、まず検出領域Aの画像が入力されて顔検出処理が実行され(S2201)、次いで検出領域Bの画像が入力されて顔検出処理が実行される(S2202)。各顔検出処理の解析結果は、それぞれの処理の完了後に撮像装置110に読み出され、統合されて例えば入出力装置130に送信された後、表示される(S2203)。また後続の車両検出処理への処理切替コマンドは、S2202に係る顔検出処理の解析開始コマンドの発行後の任意のタイミングで発行され、切り替えに係る処理が一部先行して開始された後、S2202の顔検出処理完了後に切り替えが完了する(S2204)。
その後、即ち、車両検出処理用にFPGA402が設定されている状態で、再び検出領域Aの画像が入力されて車両検出処理が実行され(S2205)、次いで検出領域Bの画像が入力されて車両検出処理が実行される(S2206)。各車両検出処理の解析結果は、それぞれの処理の完了後に撮像装置110に読み出され、統合されて入出力装置130に送信された後、表示される(S2207)。また次の対象となる撮像画像用に処理を切り替えるべく、顔検出処理への処理切替コマンドは、S2206に係る車両検出処理の解析開始コマンドの発行後の任意のタイミングで発行され、処理切り替えに係る処理が一部先行して開始される。その後、S2206の車両検出処理の完了後に、FPGA402の顔検出処理用の設定への切り替えが完了する(S2208)。
なお、各検出領域に係る画像の入力に際しては、撮像画像からの該当領域の画像の切り出し及び処理に応じたリサイズが解析前処理として実行され、得られた結果画像が、画像入力コマンドと共に着脱可能デバイス100に送信される処理が行われてよい。あるいは、撮像画像は一時に着脱可能デバイス100に送信されるものとし、演算処理部412が該当の検出領域を読み出しつつ各解析処理を実行する態様であってもよい。
ここで、図22では、解析結果を各解析処理の完了後に表示する例を示しているが、実行した複数の解析処理の解析結果をまとめて表示することが好ましい事例もある。即ち、図22の例では、顔検出処理と車両検出処理の解析結果を共に表示可能になるにはS2207のタイミングまで待機する必要があり、早急な複数種類の解析結果の表示が求められる事例では好適ではない。例えば、監視システム等では検出を優先する撮像画像中の領域等が設定されることもあり、複数の解析処理を実行する際には解析結果の取得までに要する時間の短縮が求められる。
このため、本実施形態の画像解析システムでは、図21に示されるように、撮像画像について解析処理の実行を優先する領域の設定を受け付け可能なよう構成される。撮像画像に係る領域の設定は、図20に示した、入出力装置130で表示されるGUI2001の撮像画像表示領域2002に対する操作入力に基づいて設定可能であってよい。図21では、撮像画像について、領域2101と領域2102の設定を受け付けた場合の撮像画像表示領域2002における表示を例示しており、任意の形状であってよい枠が付されている。以下、これらの領域のうちの領域2101について、複数の解析処理の実行を優先する設定がなされるものとし、以下、当該領域を優先領域2101、他方の領域をその他領域2102として言及する。
なお、解析処理の実行を優先する領域を設定するか否かは、例えばGUI2001から遷移可能であってよい、図24に示されるモード選択のGUI2401を介して受け付けられた操作入力に基づいて決定されるものであってよい。GUI2401には、「検出処理優先」モードを選択するボタン2402と、「検出領域優先」モードを選択するボタン2403と、モード選択の結果を確定するボタン2404とが含まれる。ボタン2402に係る検出処理優先モードは、図22の例のように、各解析処理の撮像画像全体についての解析結果が得られたタイミングで順次結果を表示するモードである。またボタン2403に係る検出領域優先モードは、後述の図23に例示するように、優先領域2101を設定し、少なくとも当該優先領域2101についての指定の解析処理の全ての解析結果が得られたタイミングで結果を表示するモードである。従って、GUI2401においてボタン2403の選択に係る操作入力がなされ、ボタン2404への操作入力を介したモード確定がなされると、GUI2001において、優先領域2101を含む、領域設定が可能なよう制御されるものであってよい。
モード選択の情報及び検出領域優先モードにおける各領域の情報は、入出力装置130から撮像装置110に伝送され、少なくとも、解析部305による解析前処理と、演算処理部203によるコマンドの発行及びその順序の制御に用いられる。上述したように、検出領域優先モードでは、優先領域について複数の解析結果の取得及びこれらの表示(後処理)を優先して行うため、演算処理部203は、次の発行基準(順序)に従い、発行するコマンドを決定する。
(1-1)優先領域の画像を入力
(1-2)優先領域について指定解析処理を順次実行
(1-3)指定解析処理が複数の場合に、先行の解析処理の実行中に推論モデルを予備領域に展開
(1-4)全指定解析処理の完了後に優先領域に係る全解析結果を取得
(2-1)その他領域の画像を入力
(2-2)その他領域について指定解析処理を順次実行
(2-3)指定解析処理が複数の場合に、先行の解析処理の実行中に推論モデルを予備領域に展開
(2-4)全指定解析処理の完了後にその他領域に係る全解析結果を取得
ここで、括弧内の数値の組み合わせ(M-N)は、Mが領域の優先度(少ないほど高い。最大値が領域分割数)、Nがコマンド発行の優先度(少ないほど発行順序が先)を示しており、これに基づいて演算処理部203の発行するコマンドが決定される。図21に示した優先領域2101とその他領域2102とが設定される場合、演算処理部203は、(1-1)→(1-2)→(1-3)→(1-4)→(2-1)→(2-2)→(2-3)→(2-4)の順序でコマンドの発行を決定する。ここで、図21の例では、Mは、優先領域2101について「1」、その他領域2102について「2」が割り当てられる。
従って、順次入力される撮像画像のそれぞれを優先領域2101とその他領域2102に分け、顔検出処理と車両検出処理の2種類の解析処理を実行し、後処理として領域ごとに全解析結果を統合して表示する態様では、図23のタイムチャートのようになる。図の例では、優先領域2101→その他領域2102の順序で分割画像が着脱可能デバイス100に入力され、各分割画像について顔検出処理→車両検出処理の順序で解析処理が実行される。
具体的には、顔検出処理用にFPGA402が設定されている状態で、まず優先領域2101の画像が入力されて顔検出処理が実行される(S2301)。また後続の車両検出処理への処理切替コマンドが、S2301に係る顔検出処理の解析開始コマンドの発行後の任意のタイミングで発行され、処理切り替えに係る処理が一部先行して開始された後、当該顔検出処理の完了後に切り替えが完了する(S2302)。次いで優先領域2101の画像に対し、車両検出処理が実行される(S2303)。そして両解析処理の解析結果が、撮像装置110に読み出され、統合されて例えば入出力装置130に送信された後、表示される(S2304)。また次の解析対象であるその他領域2102の画像用に処理を切り替えるべく、顔検出処理への処理切替コマンドが、S2303に係る車両検出処理の解析開始コマンドの発行後の任意のタイミングで発行され、処理切り替えに係る処理が一部先行して開始される。その後、S2304の車両検出処理の完了後に、FPGA402の顔検出処理用の設定への切り替えが完了する(S2305)。
その後、即ち、再度顔検出処理用にFPGA402が設定されている状態で、その他領域2102の画像が入力されて顔検出処理が実行される(S2306)。また後続の車両検出処理への処理切替コマンドが、S2306に係る顔検出処理の解析開始コマンドの発行後の任意のタイミングで発行され、処理切り替えに係る処理が一部先行して開始された後、当該顔検出処理の完了後に切り替えが完了する(S2307)。次いでその他領域2102の画像に対し、車両検出処理が実行される(S2308)。そして両解析処理の解析結果が、撮像装置110に読み出され、統合されて例えば入出力装置130に送信された後、表示される(S2309)。また次の対象となる撮像画像用に処理を切り替えるべく、顔検出処理への処理切替コマンドが、S2309に係る車両検出処理の解析開始コマンドの発行後の任意のタイミングで発行され、処理切り替えに係る処理が一部先行して開始される。その後、S2309の車両検出処理の完了後に、FPGA402の顔検出処理用の設定への切り替えが完了する(S2310)。
このようにすることで、検出処理優先モードのように撮像画像全体についての全ての指定解析処理が完了せずとも、少なくとも優先領域2101について、複数種類の解析結果を提示することができる。また検出領域優先モードでは、1つの領域について着脱可能デバイス100で連続して実行する解析処理の対象を同一の画像とすることができるため、検出処理優先モードに比べて画像入力コマンドの発行回数を低減させることができる。即ち、演算処理部203は、処理対象の領域の画像に係る画像入力コマンドの発行後、当該画像に対する複数の指定解析処理に係る解析開始コマンド及び処理切替コマンドの発行を完了するまで、他の領域の画像に係る画像入力コマンドを発行しないよう制御する。これにより、検出処理優先モードに比べて、各解析処理の実行時の画像入力コマンドの発行分の時間を短縮することができる。
[変形例]
上述した実施形態では、予備領域に展開された推論モデルのデータを推論モデル領域に移動またはコピーすることで、演算処理部412が実行する解析処理を変更する態様について説明したが、本発明の実施はこれに限られるものではない。例えば、演算処理部412が実行する処理の変更は、演算処理部412の論理演算構造を再構成することにより行われるものであってもよく、先行の解析処理の実行中に予備領域への展開が開始されるデータは、切替先の処理に係る設定データであってもよい。この場合、先行の解析処理の完了後、処理切替部411は予備領域に展開された設定データを演算処理部412の再構成用の領域に移動またはコピーし、再構成する処理を行えばよい。
また、上述の実施形態において、解析処理として画像解析処理を例に挙げて説明したが、本発明は音声解析処理にも適用可能である。例えば、悲鳴や、銃声、ガラス破壊音のような音声パターンを検知する処理にも適用可能である。例えば、スペクトル解析等の種々の音声データの分析手法で音声の特徴量が抽出され、その抽出された特徴量が検出した音声パターンと比較される。そして、その一致度合いが算出されることで、特定の音声パターンを検出することができる。
また、音声解析処理を行う場合は、音声データを所定の時間分の音声データに分割し、その所定の時間分の音声データを単位として音声解析処理を行う。また、この所定の時間は、検出対象の音声パターンに応じて、適宜、異なる。そのため、着脱可能デバイス100に、検知したい音声パターンに対応する時間分ごとの音声データが入力される。そして、着脱可能デバイス100は、その入力された音声データを解析する機能や、入力された音声データを保持する機能を有する。
また、上述の実施形態において、演算装置の例として、撮像装置110から入力されたデータを非一時的に格納可能な着脱可能デバイス100を挙げて説明した。しかし、一部の実施形態においては、着脱可能デバイス100は、撮像装置110から入力されたデータを非一時的に格納することができない装置であってもよい。すなわち、着脱可能デバイス100は、撮像装置110から入力されたデータに対して解析処理を行うのみで、そのデータを非一時的に記憶する機能を有しなくてもよい。換言すれば、着脱可能デバイス100は、通常のSDカードのようにデータを保管するために用いられることを想定せずに、解析処理のみの機能を有する装置であってもよい。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100:着脱可能デバイス、110:撮像装置、201:撮像部、203:演算処理部、205:SD I/F、301:撮像制御部、304:制御部、306:デバイス通信部、401:I/F、402:FPGA、403:SDコントローラ、404:ROM、405:RAM、410:入出力制御部、411:処理切替部、412:演算処理部、501:解析部、502:通信部

Claims (12)

  1. 複数種類の処理を実行可能な演算装置であって、
    前記複数種類の処理の少なくともいずれかを実行する演算処理手段と、
    一時記憶手段と、
    前記複数種類の処理のそれぞれの実行に必要な情報を記憶する恒久記憶手段と、
    処理の切替命令を受信する受信手段と、
    前記切替命令の受信に応じて、前記恒久記憶手段から読み出して前記一時記憶手段の第1の領域に展開する前記必要な情報を異ならせることで、前記演算処理手段が実行する処理を切り替える切替手段と、
    を有し、
    前記切替手段は、前記切替命令がなされた際に、前記演算処理手段が前記複数種類の処理の少なくともいずれかを実行中である場合に、切替先の処理に係る前記必要な情報を前記恒久記憶手段から読み出して、前記一時記憶手段の前記第1の領域とは異なる第2の領域に展開し、前記実行中の処理が完了したことに応じて、前記第2の領域から前記第1の領域に前記切替先の処理に係る前記必要な情報を移動またはコピーすることで、前記演算処理手段を前記切替先の処理を実行可能な状態に切り替えることを特徴とする演算装置。
  2. 前記必要な情報は、前記演算処理手段が実行する処理に含まれる、少なくとも一部の演算処理の内容を変更する情報であり、
    前記演算処理手段は、前記複数種類の処理の少なくともいずれかを実行する際に、前記第1の領域に展開された前記必要な情報を用いて、前記少なくとも一部の演算処理を実行することを特徴とする請求項1に記載の演算装置。
  3. 前記少なくとも一部の演算処理は、推論モデルを用いる推論処理であり、
    前記必要な情報は、前記第1の領域に展開された場合に前記推論モデルを構成する情報であることを特徴とする請求項2に記載の演算装置。
  4. 前記切替手段は、前記切替命令がなされた際に、前記第1の領域に展開された前記推論モデルを用いた前記推論処理が実行中である場合に、前記切替先の処理に用いられる前記推論モデルを構成する情報を前記第2の領域に展開することを特徴とする請求項3に記載の演算装置。
  5. 前記演算装置は、再構成可能演算装置であって、
    前記必要な情報は、前記演算処理手段の論理演算構造を再構成するための情報であり、
    前記切替手段は、前記実行中の処理が完了したことに応じて、前記第2の領域から前記第1の領域に移動またはコピーされた前記切替先の処理に係る前記必要な情報に基づいて、前記演算処理手段を再構成させることを特徴とする請求項1乃至4のいずれか1項に記載の演算装置。
  6. 前記第2の領域の使用状況を管理する管理手段をさらに有し、
    前記受信手段は、順次実行される処理に係る1以上の前記切替命令を受信し、
    前記切替手段は、前記1以上の切替命令が受け付けられた際に前記演算処理手段が前記複数種類の処理の少なくともいずれかを実行中である場合に、前記第2の領域の使用状況に応じて、前記第2の領域への、当該1以上の切替命令に対応する前記必要な情報の展開態様を異ならせることを特徴とする請求項1乃至5のいずれか1項に記載の演算装置。
  7. 前記複数種類の処理のそれぞれは、入力画像の解析処理であり、
    前記演算装置は、前記入力画像を取得して前記一時記憶手段の第3の領域に格納する第1の取得手段をさらに有することを特徴とする請求項1乃至6のいずれか1項に記載の演算装置。
  8. 請求項7に記載の演算装置が着脱可能に接続された撮像装置であって、
    撮像画像を出力する撮像手段と、
    前記撮像画像に対して、前記演算装置に実行させる複数の解析処理及びその順序を決定する決定手段と、
    前記撮像画像を前記入力画像として前記演算装置に入力する第1の入力手段と、
    前記決定手段により決定された前記順序に基づいて、前記複数の解析処理の実行命令及び前記切替命令を前記演算装置に順次入力する第2の入力手段と、
    前記演算装置による前記複数の解析処理の解析結果を取得する第2の取得手段と、
    を有することを特徴とする撮像装置。
  9. 前記撮像画像を複数の領域に分割する分割手段をさらに有し、
    前記第1の入力手段は、前記分割手段による分割で得られた分割画像の態様で前記入力画像を入力し、
    前記第2の入力手段は、前記第1の入力手段による前記分割画像の入力に係り、前記演算装置の前記一時記憶手段の前記第3の領域への書き込み命令を前記演算装置にさらに入力し、
    前記決定手段は、所定の前記分割画像について前記複数の解析処理の解析結果の取得を優先させる場合に、当該分割画像の入力に係る前記書き込み命令の後、当該分割画像に係る前記複数の解析処理の前記実行命令及び前記切替命令が完了するまで、他の前記分割画像の入力に係る前記書き込み命令を含めないよう、前記順序を決定することを特徴とする請求項8に記載の撮像装置。
  10. 前記演算装置は、SD規格の記録装置であり、
    前記第1の入力手段、前記第2の入力手段及び前記第2の取得手段は、SD規格の通信規格に準拠することを特徴とする請求項8または9に記載の撮像装置。
  11. 複数種類の処理を実行可能な演算装置の制御方法であって、
    前記演算装置は、
    前記複数種類の処理の少なくともいずれかを実行する演算処理手段と、
    一時記憶手段と、
    前記複数種類の処理のそれぞれの実行に必要な情報を記憶する恒久記憶手段と、
    を有し、
    前記制御方法は、
    処理の切替命令を受信する受信工程と、
    前記切替命令の受信に応じて、前記恒久記憶手段から読み出して前記一時記憶手段の第1の領域に展開する前記必要な情報を異ならせることで、前記演算処理手段が実行する処理を切り替える切替工程と、
    を有し、
    前記切替工程において、前記切替命令がなされた際に、前記演算処理手段が前記複数種類の処理の少なくともいずれかを実行中である場合に、切替先の処理に係る前記必要な情報が前記恒久記憶手段から読み出して、前記一時記憶手段の前記第1の領域とは異なる第2の領域に展開され、前記実行中の処理が完了したことに応じて、前記第2の領域から前記第1の領域に前記切替先の処理に係る前記必要な情報が移動またはコピーされることで、前記演算処理手段が前記切替先の処理を実行可能な状態に切り替えられることを特徴とする制御方法。
  12. コンピュータに、請求項11に記載の制御方法を実行させるためのプログラム。
JP2021135029A 2021-08-20 2021-08-20 演算装置、撮像装置、制御方法及びプログラム Pending JP2023028994A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021135029A JP2023028994A (ja) 2021-08-20 2021-08-20 演算装置、撮像装置、制御方法及びプログラム
US17/883,694 US11968469B2 (en) 2021-08-20 2022-08-09 Computing apparatus, image capturing apparatus, control method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021135029A JP2023028994A (ja) 2021-08-20 2021-08-20 演算装置、撮像装置、制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2023028994A true JP2023028994A (ja) 2023-03-03

Family

ID=85227998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021135029A Pending JP2023028994A (ja) 2021-08-20 2021-08-20 演算装置、撮像装置、制御方法及びプログラム

Country Status (2)

Country Link
US (1) US11968469B2 (ja)
JP (1) JP2023028994A (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190052315A (ko) * 2017-11-08 2019-05-16 에스케이하이닉스 주식회사 메모리 장치 및 그것을 포함하는 메모리 시스템
JP7071316B2 (ja) 2019-07-19 2022-05-18 株式会社日立製作所 車両用情報処理装置

Also Published As

Publication number Publication date
US20230059207A1 (en) 2023-02-23
US11968469B2 (en) 2024-04-23

Similar Documents

Publication Publication Date Title
CN112752018B (zh) 图像捕获装置、控制方法及计算机可读存储介质
CN112543255B (zh) 图像捕获装置、控制方法和计算机可读存储介质
CN113329166A (zh) 图像捕获装置、设备、控制方法和计算机可读存储介质
JP7482649B2 (ja) 撮像装置、デバイス、制御方法、及びプログラム
CN112543304B (zh) 设备、图像捕获装置、控制方法和计算机可读存储介质
CN114390165A (zh) 摄像装置、信息处理方法和存储介质
JP2023028994A (ja) 演算装置、撮像装置、制御方法及びプログラム
EP4027218B1 (en) Detachable electrical device and control method thereof
JP2021196753A (ja) 撮像装置及びその制御方法及びプログラム
JP2021163998A (ja) 撮像装置、デバイス、制御方法、及びプログラム
EP4054173A1 (en) Image capturing apparatus, method for controlling image capturing apparatus
JP7325281B2 (ja) 撮像装置、制御方法及びプログラム
JP7500246B2 (ja) 撮像装置、制御方法、及び、プログラム
JP2022072874A (ja) 撮像装置、及び、その制御方法、及び、プログラム
JP7518632B2 (ja) デバイス、制御方法、およびプログラム
EP4057147A1 (en) Detection of anomalous processing means or anomalous storing means in an image capturing system.
US11843847B2 (en) Device, information processing apparatus, control method therefor, and computer-readable storage medium
JP7425569B2 (ja) 撮像装置、デバイス、制御方法及びプログラム
JP2022167153A (ja) 情報処理装置およびその制御方法
US20230244551A1 (en) Image capturing apparatus, device, control method thereof, and non-transitory computer-readable storage medium
JP2021158576A (ja) 着脱可能デバイスおよびその制御方法、プログラム
JP2023011341A (ja) 情報処理装置およびその制御方法
JP2022039941A (ja) 情報処理装置、制御方法、及び、プログラム
JP2021136663A (ja) デバイス、通信装置、方法、およびプログラム
JP2021157599A (ja) 電子機器及びその制御方法、プログラム