JP2022072874A - 撮像装置、及び、その制御方法、及び、プログラム - Google Patents

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

Info

Publication number
JP2022072874A
JP2022072874A JP2020182557A JP2020182557A JP2022072874A JP 2022072874 A JP2022072874 A JP 2022072874A JP 2020182557 A JP2020182557 A JP 2020182557A JP 2020182557 A JP2020182557 A JP 2020182557A JP 2022072874 A JP2022072874 A JP 2022072874A
Authority
JP
Japan
Prior art keywords
processing
image pickup
learning model
unit
image
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
JP2020182557A
Other languages
English (en)
Inventor
大貴 平賀
Daiki Hiraga
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 JP2020182557A priority Critical patent/JP2022072874A/ja
Publication of JP2022072874A publication Critical patent/JP2022072874A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 撮像装置と着脱可能デバイスとの間で実行中の処理への影響を少なくしつつ、着脱可能デバイスへの新規学習モデルの格納を行う。【解決手段】 撮像部を有し、当該撮像部で得た画像に基づく処理を実行する撮像装置であって、学習モデルを用いて与えられたデータを処理可能なデバイスを装着するためのインタフェースと、インタフェースを介し、デバイスへの処理対象のデータを含む処理の要求を表すライトコマンドの発行、並びに、処理結果をリードするためのリードコマンドの発行を行うことで、デバイスを利用した処理を行う制御部とを有する。ここで、制御部は、デバイスを利用した処理中にデバイスに新規学習モデルを設定する場合、デバイスへライトコマンドを発行してから当該処理を完了するまでに要する期間を利用して、新規学習モデルの一部を前記デバイスに送信して設定する。【選択図】 図3

Description

本発明は、撮像装置、及び、その制御方法、及び、プログラムに関するものである。
近年、様々なシーンにおいて、監視カメラにより撮像された画像を用いて、物体の検出や追尾、属性の推定等を行う画像解析、そのような画像解析の結果に基づく物体数の推定等の画像処理が行われている。従来、かかる画像処理は、監視カメラから映像を受信するPCやサーバ等の高性能な演算装置で行われてきた。しかし、近年のモバイル用演算装置の処理能力の向上に伴い、画像解析をカメラ側で直接行う事例も増えてきている。実装形態としてはカメラ本体に演算装置を配置する他に、USB(Universal Serial Bus)等の着脱可能デバイスに演算装置を配置する形態も提案されている。カメラ本体に演算装置を配置した形態では、演算装置を配置した着脱可能デバイスを装着することで、カメラ側でより高度な解析処理を行うことができる。
上記の形態においては、カメラ本体と着脱可能デバイスは、「演算処理に必要な画像」や「オブジェクトを検出できるように学習された学習モデル」を通信する。
一般的に、カメラと着脱可能デバイス間のデータのやりとりは通信帯域を逼迫するため、効果的に通信する対応が必要である。通信帯域を逼迫しない方法として、特許文献1ではデバイス間の通信に関する技術が開示されている。この文献では、デバイス間でデータを通信する場合に、必要なデータのみを抽出して送信することで、通信効率を向上している。
特開2014-150328号公報
J.Redmon、A.Farhadi、「YOLO9000:Better Faster Stronger」、Computer Vision and Pattern Recognition(CVPR) 2016
これまでは、カメラから取得される画像は、演算装置の配置された着脱可能デバイス側での演算処理が完了したタイミングで順次送信される。一方で、学習モデルはユーザから書き換え指示や追加指示を受けたタイミングで送信され、着脱可能デバイス内に保存される。したがって学習モデルのサイズが大きいと、学習モデル送信時に画像の送信を一時的に停止する必要があり、画像と学習モデルを並行して送信できないという問題が発生する。
また、学習モデルの送信は情報の欠落が許されない。したがって、必要なデータを残し、不要なデータを減らす上記特許文献1に開示されているような技術は活用できない。
この課題を解決するため、例えば本発明の撮像装置は以下の構成を備える。すなわち、
撮像手段を有し、当該撮像手段で得た画像に基づく処理を実行する撮像装置であって、
学習モデルを用いて与えられたデータを処理可能なデバイスを装着するためのインタフェースと、
前記インタフェースを介し、前記デバイスへの処理対象のデータを含む処理の要求を表すライトコマンドの発行、並びに、処理結果をリードするためのリードコマンドの発行を行うことで、前記デバイスを利用した処理を行う制御手段とを有し、
該制御手段は、
前記デバイスを利用した処理中に前記デバイスに新規学習モデルを設定する場合、前記デバイスへライトコマンドを発行してから当該処理を完了するまでに要する期間を利用して、前記新規学習モデルの一部を前記デバイスに送信して設定することを特徴とする。
本発明によれば、撮像装置と着脱可能デバイスとの間で実行中の処理への影響を少なくしつつ、着脱可能デバイスへの新規学習モデルの格納を行うことが可能になる。
システム構成の一例を示す図。 撮像装置のハードウェア構成例を示す図。 撮像装置の機能構成例を示す図。 着脱可能デバイスのハードウェア構成例を示す図。 着脱可能デバイスの機能構成例を示す図。 入出力装置のハードウェア構成例を示す図。 入出力装置の機能構成例を示す図。 システムで実行される処理の流れの例を示す図。 解析処理を把握する処理の流れの例を示す図。 解析処理の内容を決定する処理の流れの例を示す図。 解析処理を実行する制御の流れの例を示す図。 後処理を実行する制御の流れの例を示す図。 学習モデルの分割送信処理の流れの例を示す図。 実施形態における学習モデルと解析処理時間との関係を示すテーブルの例を示す図。 実施形態における学習モデルと転送時間との関係を示すテーブルの例を示す図。 実施形態における撮像装置から着脱可能デバイスへのデータ転送のシーケンスの例を示す図。 第2の実施形態における、学習モデルの分割送信処理の流れの例を示す図。 第2の実施形態における撮像装置から着脱可能デバイスへのデータ転送のシーケンスの例を示す図。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
<システム構成>
図1に、本実施形態の画像解析システムの構成例を示す。以下では、一例として、このシステムが特定人物追跡システムである場合について説明する。ただし、これに限られず、画像を解析して所定の情報出力を行う任意のシステムに、以下の議論を適用することができる。本システムは、撮像装置110a~110dと、ネットワーク120と、入出力装置130とを含んで構成される。なお、撮像装置110a~110dそれぞれは、例えば撮像した画像を記録可能なデバイスを着脱可能なスロットを有する。そして、それぞれスロットには、着脱可能デバイス100a~100dが挿入されているものとする。この結果、撮像装置110a~110dそれぞれは、自身に挿入された着脱可能デバイス100a~100dと通信可能に接続していることになる。また、撮像装置110a~110dは同じ構成であり、着脱可能デバイス100a~100dも同じ構成であるものとする。特に区別せずに1つを指す場合には、添え字の“a”~“d”を除外し、単に「着脱可能デバイス100」、「撮像装置110」と表記する。
着脱可能デバイス100は、撮像装置110に対して着脱可能な演算デバイスである。着脱可能デバイス100は、一例として、SDカードに所定の処理回路を搭載したデバイスである。着脱可能デバイス100は、例えば、SDカードの態様によって、撮像装置110にその全体が挿入可能に構成され、これにより、撮像装置110から突出する部分がない状態で撮像装置110と接続可能に構成することができる。これにより、着脱可能デバイス100が配線等の障害物と干渉することを防ぐことができ、デバイスの利用時の利便性を高めることができる。また、多くの既存のネットワークカメラなどの撮像装置110には、SDカードスロットが用意されているため、既存の撮像装置110に対して、着脱可能デバイス100により拡張機能を提供することができる。なお、着脱可能デバイス100は、SDカードの態様以外に、少なくともその撮像装置110で撮影された画像を記憶可能な記憶装置が装着される際に使用される任意のインタフェースで、撮像装置110に装着されるように構成されてもよい。例えば、着脱可能デバイス100は、USB(ユニバーサリシリアルバス)インタフェースを有し、撮像装置110のUSBソケットに装着されるように構成されてもよい。また、所定の処理回路は、例えば、所定の処理を実行するようにプログラムされたFPGA(フィールドプログラマブルゲートアレイ)によって実装されるが、それ以外の形式で実装されてもよい。
撮像装置110は、ネットワークカメラ等の撮像装置である。本実施形態では、撮像装置110は、映像を処理することのできる演算装置を内蔵するものとするが、これに限られない。例えば、撮像装置110に接続されたPC(パーソナルコンピュータ)等の外部コンピュータが存在してもよく、これらの組み合わせを、撮像装置110として扱ってもよい。また、本実施形態では、全ての撮像装置110に、着脱可能デバイス100が装着されているものとする。なお、図1のシステムは、4つの撮像装置を有するものとしているが、1以上であれば良く、この数に特に制限はない。撮像装置110に、画像解析処理機能を有する着脱可能デバイス100が装着されることにより、撮像装置110が画像解析処理機能を有しなくても、撮像装置110側で映像処理を実行することが可能となる。また、本実施形態のように撮像装置110に映像処理用の演算装置が配置された形態では、演算装置が配置された着脱可能デバイス100が撮像装置110に装着されることにより、撮像装置110側で実行可能な画像処理を多様化・高度化することができる。
入出力装置130は、ユーザからの入力の受け付けや、ユーザへの情報の出力(例えば情報の表示)を行う装置である。本実施形態では、例えば入出力装置130は、PC等のコンピュータであり、そのコンピュータにインストールされたブラウザやネイティブアプリケーションによって、情報の入出力が行われる。
撮像装置110と入出力装置130は、ネットワーク120を介して通信可能に接続される。ネットワーク120は、例えばEthernet(登録商標)等の通信規格を満たす複数のルータ、スイッチ、ケーブル等を含んで構成される。本実施形態では、ネットワーク120は、撮像装置110と入出力装置130との間の通信を可能とする任意のネットワークであってよく、任意の規模や構成、準拠する通信規格によって構築されうる。例えば、ネットワーク120は、インターネットや有線LAN(Local Area Network)、無線LAN、WAN(Wide Area Network)等でありうる。また、ネットワーク120は、例えば、ONVIF(Open Network Video Interface Forum)規格に準拠した通信プロトコルでの通信が可能なように構成されうる。ただし、これに限られず、ネットワーク120は、例えば、独自の通信プロトコル等の他の通信プロトコルでの通信が可能なように構成されてもよい。
<装置構成>
続いて、撮像装置110の構成について説明する。図2は、撮像装置110のハードウェア構成例を示す図である。撮像装置110は、そのハードウェア構成として、例えば、撮像部201、画像処理部202、演算処理部203、配信部204、SD I/F部205を含む。なお、I/Fは、インタフェースの略語である。
撮像部201は、光を結像するためのレンズ部と、結像された光に応じたアナログ信号変換する撮像素子とを含んで構成される。レンズ部は、画角を調整するズーム機能や、光量の調整を行う絞り機能などを有する。撮像素子は、光をアナログ信号に変換する際の感度調整を行うゲイン機能を有する。これらの機能は、画像処理部202から通知された設定値に基づいて調整される。撮像部201によって取得されたアナログ信号は、不図示のアナログ-デジタル変換回路によってデジタル信号に変換され、画像信号として画像処理部202へ転送される。
画像処理部202は、画像処理エンジンと、その周辺デバイス等を含んで構成される。周辺デバイスは、例えば、RAM(Random Access Memory)や、各I/Fのドライバ等を含む。画像処理部202では、撮像部201から取得した画像信号に対して、例えば、現像処理、フィルタ処理、センサ補正、ノイズ除去等の、画像処理を施して画像データを生成する。また、画像処理部202は、レンズ部や撮像素子へ設定値を送信し、適切露出画像を取得できるように、露出調整を実行しうる。画像処理部202において生成された画像データは、演算処理部203へ転送される。
演算処理部203は、CPUやMPU等の1つ以上のプロセッサ、RAMやROM等のメモリ、各I/Fのドライバなどから構成される。なお、CPUはCentral Processing Unitの、MPUはMicro Processing Unitの、RAMはRandom Access Memoryの、ROMはRead Only Memoryの、頭字語である。演算処理部203では、一例において、上述のシステムにおいて実行されるべき処理の各部分を撮像装置110と着脱可能デバイス100とのいずれが実行するかの分担を決定し、その決定した分担に対応する処理を実行しうる。この処理内容や処理の分担の詳細に関しては後述する。画像処理部202から受け取った画像は、配信部204、又は、SD I/F部205を介して着脱可能デバイス100へ転送される。また、画像処理部202による処理結果のデータは配信部204に転送される。更に、着脱可能デバイス100による処理結果のデータは、画像処理部202を介して配信部204へ転送される。
配信部204は、ネットワーク配信エンジンと、例えば、RAMやETH PHYモジュールなどの周辺デバイス等を含んで構成される。ETH PHYモジュールは、Ethernetの物理(PHY)レイヤの処理を実行するモジュールである。配信部204は、演算処理部203から取得した画像データや処理結果のデータを、ネットワーク120へ配信可能な形式に変換して、変換後のデータをネットワーク120へ出力する。SD I/F部205は、着脱可能デバイス100と接続するためのインタフェース部分で、例えば、電源と、着脱可能デバイス100を着脱するための、着脱ソケット等の装着機構を含んで構成される。ここでは、SD I/F部205が、SD Associationにより策定されたSD規格に従って構成されるものとする。演算処理部203から取得された画像の着脱可能デバイス100への転送や、着脱可能デバイス100からのデータの取得等の、着脱可能デバイス100と撮像装置110との間での通信は、SD I/F部205を通じて行われる。
図3に、撮像装置110の機能構成図を示す。撮像装置110は、その機能として、例えば、撮像制御部301、信号処理部302、記憶部303、制御部304、解析部305、デバイス通信部306、及び、ネットワーク通信部307を含む。
撮像制御部301は、撮像部201を介して周囲の環境を撮影するようにする制御を実行する。信号処理部302は、撮像制御部301によって撮影された画像に対して所定の処理を施して、撮影画像のデータを生成する。以下では、この撮影画像のデータを単に「撮影画像」と呼ぶ。信号処理部302は、例えば、撮像制御部301の制御下で得た撮影画像を符号化する。信号処理部302は、静止画像に対して、例えば、JPEG(Joint Photographic Experts Group)等の符号化方式を用いて符号化を行う。また、信号処理部302は、動画像に対して、H.264/MPEG-4 AVC(以下では「H.264」と呼ぶ。)、HEVC(High Efficiency Video Coding)等の符号化方式を用いて符号化を行う。また、信号処理部302は、予め設定された複数の符号化方式の中から、例えば撮像装置110の不図示の操作部を介して、ユーザにより選択された符号化方式を用いて、画像を符号化してもよい。
記憶部303は、解析部305において実行可能な解析処理のリスト(以下では「第1処理リスト」と呼ぶ。)と、解析処理の結果に対する後処理のリストとを記憶する。また、記憶部303は、後述する解析処理の結果を記憶する。なお、本実施形態では、実行される処理が解析処理であるが、任意の処理が実行されてもよく、記憶部303は、その実行される処理に関連する処理について、第1処理リストと後処理のリストとを記憶するようにしうる。制御部304は、信号処理部302、記憶部303、解析部305、デバイス通信部306、ネットワーク通信部307を、それぞれが所定の処理を実行するように、制御する。
解析部305は、撮影画像に対して、後述する解析前処理、解析処理、解析後処理の少なくともいずれかを選択的に実行する。解析前処理は、後述の解析処理を実行する前に、撮影画像に対して実行する処理である。本実施形態の解析前処理では、一例として、撮影画像を分割して分割画像を作成する処理が実行されるものとする。解析処理は、入力された画像を解析して得られる情報を出力する処理である。本実施形態の解析処理では、一例として、解析前処理によって得られた分割画像を入力として、人体検出処理、顔検出処理、車両検出処理の少なくともいずれかを実行し、解析処理結果を出力する処理が実行されるものとする。解析処理は、例えば非特許文献1の技術によって、画像に含まれるオブジェクトを検出できるように学習が行われた学習モデルを用いて、分割画像中のオブジェクトの位置を出力するように構成された処理でありうる。解析後処理は、解析処理が実行された後に実行される処理である。本実施形態の解析後処理では、一例として、各分割画像に対する解析処理結果に基づいて、各分割画像において検出されたオブジェクトの数を合計した値を処理結果として出力する処理が実行されるものとする。なお、解析処理は、パターンマッチングを行って画像中のオブジェクトを検出し、その位置を出力する処理であってもよい。
デバイス通信部306は、着脱可能デバイス100との通信を行う。デバイス通信部306は、入力されたデータを着脱可能デバイス100が処理可能な形式に変換し、その変換によって得られたデータを着脱可能デバイス100に送信する。また、デバイス通信部306は、着脱可能デバイス100からデータを受信し、受信したデータを撮像装置110が処理可能な形式に変換する。本実施形態では、デバイス通信部306は、変換処理として、小数を浮動小数点形式と固定小数点形式との間で変換する処理を実行するものとするが、これに限られず、他の処理がデバイス通信部306によって実行されてもよい。また、本実施形態では、デバイス通信部306は、着脱可能デバイス100に対してSD規格の範囲内で事前に定められたコマンドシーケンスを送信し、着脱可能デバイス100からの応答を受信することで、着脱可能デバイス100との通信を行うものとする。ネットワーク通信部307は、ネットワーク120を介して、入出力装置130との通信を行う。
<着脱可能デバイスの構成>
図4(a)に、着脱可能デバイス100のハードウェア構成例を示す。着脱可能デバイス100は、一例として、I/F部401、FPGA402、Configration(以下、Config)外部制御部403、及び、記憶部404を含んで構成される。着脱可能デバイス100は、撮像装置110が有するSD I/F部205の着脱ソケットに挿抜できる形状で、すなわちSD規格に則った形状で成形されるものとする。
I/F部401は、撮像装置110等の装置と着脱可能デバイス100とを接続するためのインタフェース部分である。I/F部401は、例えば、撮像装置110から電源の供給を受け、着脱可能デバイス100内で使用する電源を生成し分配する、電気的な接点端子等を含んで構成される。I/F部401は、撮像装置110のSD I/F部205と同様に、SD規格内で定義(準拠)されている項目に関しては、それに従うものとする。撮像装置110からの画像や設定データの受け取り、並びに、FPGA402から撮像装置110へのデータの送信は、このI/F部401を介して実行される。
FPGA402は、入出力制御部410、処理切替部411、演算処理部412、記憶部I/F413、Configデータ書換部414、及び、Config制御部415を含んで構成される。FPGA402は、内部の論理回路構造を繰り返し再構成できる半導体デバイスの一種である。FPGA402が実現する処理により、着脱可能デバイス100が装着された装置に、処理機能を追加(提供)することができる。また、FPGA402の再構成機能により、後から論理回路構造を変更することができるため、例えば技術の進歩の早い分野の装置に着脱可能デバイス100を装着することにより、その装置において適時に適切な処理を実行することが可能となる。なお、本実施形態では、FPGAが用いられる例について説明するが、後述する処理を実現可能である限りにおいて、例えば、汎用のASICや専用のLSIが用いられてもよい。FPGA402は、生成される論理回路構造の情報を含んだ設定データが専用のI/Fから書き込まれることにより、又は、その設定データがその専用のI/Fから読み出されることによって、起動される。本実施形態では、この設定データが記憶部404に保持されているものとする。FPGA402は、電源が投入されると、記憶部404から設定データを読み出し、論理回路を生成して起動する。ただし、これに限られず、例えば、着脱可能デバイス内に専用の回路を実装することにより、I/F部401を介して、撮像装置110がFPGA402に設定データを書き込んでもよい。
入出力制御部410は、撮像装置110との間で画像を送受信するための回路、撮像装置110から受信したコマンドを解析する回路、解析した結果に基づいて制御を行う回路、等を含んで構成される。ここでのコマンドは、SD規格に定義されているものであり、入出力制御部410は、それらのうちのいくつかを検出することができる。機能の詳細に関しては後述する。入出力制御部410は、画像解析処理の場合は演算処理部412へ画像を送信し、Config書換処理の場合は記憶部I/F413へConfigデータを送信するように制御を行う。また、入出力制御部410は、処理の切り替えの設定データを受け取った場合は、処理切替部411へ設定データを送信する。
処理切替部411は、撮像装置110から受け取った設定データに基づいて、記憶部404から画像解析処理機能の情報を取得し、演算処理部412に書き込むための回路を含んで構成される。画像解析処理機能の情報は、例えば、演算処理部412内で処理される演算の順序や種類、演算の係数などを示す設定パラメータである。
演算処理部412は、画像解析処理機能を実行するために必要な複数の演算回路を含んで構成される。演算処理部412は、処理切替部411から受け取った画像解析処理機能の情報に基づいて、各演算処理を実行して、その処理結果を撮像装置110へ送信し、及び/又は、その処理結果を記憶部404に記録する。
このように、FPGA402は、事前に保持された複数の処理機能に対応する設定データに含まれる、実行対象の処理機能の設定データを抽出して、その抽出した設定データに基づいて演算処理部412によって実行される処理内容を書き換える。これにより、着脱可能デバイス100が、その複数の処理機能のうちの少なくともいずれかを選択的に実行することができる。また、新規に追加する処理の設定データを随時追加することにより、撮像装置110側で最新の処理を実行させることができる。なお、以下では、複数の処理機能のそれぞれに対応する複数の設定データを有していることを、複数の処理機能を有すると表現する。すなわち、着脱可能デバイス100のFPGA402が1つの処理機能を実行するように構成されている状態であっても、他の処理機能のための設定データにより演算処理部412の処理内容を変更することができる場合、複数の処理機能を有する、と表現する。
記憶部I/F413は、それぞれの構成部から受け取ったデータの形式を、記憶部404に適したプロトコルに変換してデータを送受信する回路を含んで構成される。ここでは、記憶部404はNOR型フラッシュメモリとし、記憶部I/F413はNOR型フラッシュメモリの規格に対応したコマンドうちのいくつかに対応し、各構成部と記憶部404間のデータ送受信を行う。
Configデータ書換部414は、図4(b)に示すように、データ制御部420、シーケンス検出部421を含んで構成される。データ制御部420は、入出力制御部410からConfigデータを受け取り、シーケンス検出部421で受け取った制御信号に基づき、Configデータを記憶部I/Fへ送信する。シーケンス検出部421は、入出力制御部410で検出したSD準拠のコマンドのうちConfigに関わるコマンドを受け取る。シーケンス検出部421は、受け取ったコマンドの順序を記憶し、所定の順序を踏んでいるか、一定期間内にコマンドを受け取っているかなどを検出する。シーケンス検出部421は、検出した結果に基づきデータ制御部420、もしくは、Config外部制御部403へ制御信号を送信する。
Config制御部415は、Config外部制御部403から受け取った制御信号に基づいて、FPGA402のConfig動作の制御を行う回路を含んで構成される。一般的なFPGAには、Config制御に関する回路は、FPGA設計者が設計するPL(Program Logic)部分ではなくデバイス固有のハード回路部分に搭載されており、図4(a)では前述の部分を分けて記載はしていないが、本実施例においてはハード回路部分を用いるものとする。すなわち、記憶部I/F413はPL部分とハード回路部分、Config制御部415はハード回路部分で構成されている。
Config外部制御部403は、Configデータ書換部414から受け取った制御信号に基づいて、Config制御部415に入力する制御信号を入力するための回路を含んで構成される。Config制御部415に入力する制御信号とは、例えば、FPGAを再度コンフィグレーションするような信号を差し、FPGA402は上記の制御信号を受け取ると、記憶部404の所定のアドレスに記憶されたConfigデータに基づいて、コンフィグレーションするようなシーケンスが実行される。
記憶部404は、例えばNOR型フラッシュメモリによって構成され、例えば、撮像装置110から書き込まれた記憶データ、演算処理部412に書き込まれる画像解析処理機能の情報、FPGA402のConfigデータ等の各種情報を記憶する。
図5に、着脱可能デバイス100の機能構成例を示す。着脱可能デバイス100は、その機能構成として、例えば、解析部501及び通信部502を含む。解析部501は、画像に対する解析処理を実行する。解析部501は、例えば、解析処理設定要求を入力された場合に、入力された解析処理を実行可能な状態にするための設定を実行する。また、解析部501は、画像が入力された場合、その入力された画像に対して、実行可能な状態に設定された解析処理を実行する。本実施形態では、実行可能な解析処理は、人体検出処理と顔検出処理であるものとするが、これらに限られない。例えば、事前に記憶された人物が画像に含まれるか否かを判定する処理(後述する顔認証処理)であってもよい。例えば、事前に記憶された人物の画像特徴量と、入力された画像から検出された人物の画像特徴量との一致度合いを算出し、一致度合いが閾値以上の場合に事前に記憶された人物であると判定する。また、プライバシー保護を目的として。入力された画像から検出された人物に対して、所定のマスク画像を重畳したり、モザイク処理を施したりする処理であってもよい。また、人物の特定の行動を学習によって学習した学習モデルを用いて、画像中の人物が特定の行動を行っているかを検出する処理であってもよい。さらには、画像中の領域がどのような領域なのかを判定する処理であってもよい。例えば、建物や道路、人物、空等を学習によって学習した学習モデルを用いて、画像中の領域がどのような領域なのかを判定する処理であってもよい。以上のように、実行可能な解析処理は、学習を用いた画像解析処理にも、学習を用いない画像解析処理にも応用可能である。また、上記の各解析処理は、着脱可能デバイス100が単独で行うのではなく、撮像装置110と協働して実行してもよい。通信部502は、I/F部401を介して、撮像装置110との通信を行う。
<入出力装置の構成>
図6に、入出力装置130のハードウェア構成例を示す。入出力装置130は、一般的なPC等のコンピュータとして構成され、例えば、図6に示すように、CPU等のプロセッサ601、RAM602やROM603等のメモリ、HDD604等の記憶装置、及び、通信I/F605を含んで構成される。入出力装置130は、プロセッサ601が、メモリや記憶装置に格納されたプログラムを実行することにより、各種機能を実行することができる。
図7に、本実施形態に係る入出力装置130の機能構成例を示す。入出力装置130は、その機能構成として、例えば、ネットワーク通信部701、制御部702、表示部703、及び操作部704を含む。ネットワーク通信部701は、例えばネットワーク120に接続し、ネットワーク120を介して撮像装置110等の外部装置との通信を実行する。なお、これは一例に過ぎず、例えば、ネットワーク通信部701は、撮像装置110と直接接続を確立して、ネットワーク120や他の装置を介さずに、撮像装置110と通信するように構成されてもよい。制御部702は、ネットワーク通信部701と表示部703と操作部704とがそれぞれの処理を実行するように、制御する。表示部703は、例えばディスプレイを介してユーザに情報を提示する。本実施形態では、ブラウザがレンダリングした結果をディスプレイに表示することによって、情報がユーザに提示される。なお、音声や振動等の画面表示以外の方法で情報が提示されてもよい。操作部704は、ユーザからの操作を受け付ける。本実施形態では、操作部704がマウスやキーボードであり、ユーザがこれらを操作して、ブラウザにユーザ操作を入力するものとする。ただし、これに限られず、操作部704は、例えば、タッチパネルやマイクなど、他のユーザの意図を検出することができる任意のデバイスであってもよい。
<処理の流れ>
続いて、システム内で実行される処理の流れの例について説明する。なお、以下の各処理のうち撮像装置110が実行する処理は、例えば、演算処理部203内のプロセッサがメモリ等に記憶されたプログラムを実行することによって実現される。ただし、これは一例に過ぎず、後述の処理の一部又は全部が、専用のハードウェアによって実現されてもよい。また、着脱可能デバイス100や入出力装置130が実行する処理についても、各装置におけるプロセッサがメモリ等に記憶されたプログラムを実行することによって実現されてもよいし、処理の一部又は全部を、専用のハードウェアによって実現してもよい。
図8に、システムで実行される画像解析処理の一連の流れを概略的に示す。本処理では、まず、ユーザによって、撮像装置110に着脱可能デバイス100が装着される(S801)。撮像装置110は、着脱可能デバイス100の初期化シーケンスを実行する(S802)。この初期化シーケンスでは、撮像装置110と着脱可能デバイス100との間で所定のコマンドが送受信されることにより、撮像装置110が、着脱可能デバイス100を使用可能な状態となる。その後、撮像装置110は、着脱可能デバイス100が実行可能な処理を把握し、ローカルで実行可能な(撮像装置110単体で又は撮像装置110と着脱可能デバイス100の組み合わせで実行可能な)処理を把握する(S803)。なお、着脱可能デバイス100は、任意の処理を実行可能なように構成されうるが、撮像装置110側で実行されるべき処理と無関係な処理については考慮されなくてもよい。一例において、撮像装置110は、例えば入出力装置130から事前に取得した実行されうる処理のリストを保持しておいてもよい。この場合、撮像装置110は、着脱可能デバイス100が実行可能な処理を示す情報を着脱可能デバイス100から取得した際に、その処理がリストに含まれているか否かによって、実行されうる処理のみを把握することができる。続いて、撮像装置110は、実行する処理を決定し、必要に応じて着脱可能デバイス100の設定を実行する(S804)。すなわち、実行対象として決定された処理の少なくとも一部が着脱可能デバイス100によって実行される場合に、その処理のための着脱可能デバイス100の設定が実行される。この設定においては、例えば、実行対象の処理に対応する設定データを用いたFPGA402の再構成が行われうる。そして、撮像装置110が撮像処理を行い、撮像装置110または着脱可能デバイス100が、撮像して得た画像に対する解析処理を実行する(S805)。その後、撮像装置110は、後処理を実行する(S806)。なお、S805とS806の処理は繰り返し実行される。図6の処理は、例えば、着脱可能デバイス100が装着された際に実行されるが、例えば着脱可能デバイス100が取り外された際にも、S603の処理が再度実行されるようにするなど、図8の処理の少なくとも一部が繰り返し実行されてもよい。
<実行可能な処理を把握する処理>
図9に、撮像装置110が実行可能な処理を把握する処理の流れの例を示す。本処理は、図8のS803の処理に対応し、着脱可能デバイス100等のデバイスが撮像装置110に装着された又は抜去された場合や、撮像装置110の電源がオンとなった際に実行されうる。本処理では、撮像装置110は、着脱可能デバイス100で実行可能な処理を読み出し、撮像装置110自身が実行可能な解析処理と統合し、撮像装置110側で実行可能な解析処理を把握する。
まず、撮像装置110の制御部304は、記憶部303に記憶されている、撮像装置110自身の解析部305において実行可能な処理のリストである第1処理リストを読み出す(S901)。続いて、制御部304は、装着されたデバイスが、例えば従来の記憶機能のみを有するデバイスであるか、着脱可能デバイス100等の特定の処理機能を有する所定のデバイスであるかを判定する(S902)。例えば、制御部304は、デバイス通信部306を制御して、装着されたデバイスに対して、特定のアドレスへの読み出し要求(リードコマンド)を発行し、その特定のアドレスに格納されているフラグデータを読み出す。以下では、この特定のアドレスを「アドレスA」と呼ぶ場合がある。そして、制御部304は、読み出したフラグデータに基づいて、着脱可能デバイス100が特定の処理機能を有する所定のデバイスであるかを判定しうる。ただし、これは一例に過ぎず、他の方法によって、装着されたデバイスが所定のデバイスであるか否かが判定されてもよい。
装着されたデバイスが所定のデバイスである場合(S902でYES)、制御部304は、そのデバイス(着脱可能デバイス100)において実行可能な処理を把握するための処理を実行する。制御部304は、デバイス通信部306を制御して着脱可能デバイス100と通信し、着脱可能デバイス100において実行可能な処理のリスト(以下では「第2処理リスト」と呼ぶ。)を取得する(S903)。制御部304は、例えば、着脱可能デバイス100が所定のデバイスか否かを判定した場合と同様に、アドレスAに格納されているデータを読み出すことにより、第2処理リストを取得しうる。なお、例えば、第2処理リストは、着脱可能デバイスが所定のデバイスであるか否かの判定を行うフラグデータと同一のアドレス(アドレスA)に格納されうる。この場合、撮像装置110は、そのアドレスAにアクセスすることにより、フラグデータと第2処理リストとを同時に取得して、S902の処理とS903の処理とを同時に実行することができる。ただし、これに限られず、これらのデータは、別のアドレスに格納されてもよい。その後、制御部304は、記憶部303から読み出した撮像装置110自身が実行可能な処理の第1処理リストと、着脱デバイスから取得した第2処理リストとが統合された統合処理リストを作成し(S904)、処理を終了する。
この統合処理リストは、ネットワーク上のサーバ等の装置による処理が行われることなく、撮像装置110(着脱可能デバイス100を含む)側でローカルに実行可能な処理を示すリストである。なお、本実施形態では、統合処理リストは、第1処理リストに含まれる処理と第2処理リストに含まれる処理との和集合によって得られるリストであり、第1処理リストと第2処理リストとの少なくともいずれかに含まれる処理がリスト化されたものである。ただし、これに限られず、例えば、第1処理リストに含まれる処理と第2処理リストに含まれる処理とを組み合わせることによって別の処理を実行可能となる場合などに、その実行可能となる別の処理が統合処理リストに加えられてもよい。すなわち、第1処理リストに含まれる処理の少なくとも一部と第2処理リストに含まれる処理の少なくとも一部とが共に利用される場合に、新たな解析処理が実行可能となる場合は、その解析処理の情報が統合処理リストに含められうる。例えば、顔認証処理は、顔検出処理機能と、顔特徴抽出処理機能と、顔特徴照合処理機能の機能群によって実現されうる。このとき、第1処理リストに顔検出処理機能と顔特徴抽出処理機能とが含まれ、第2処理リストに顔特徴照合処理機能が含まれているとすると、統合処理リストには、顔認証処理が含められうる。
装着されたデバイスが所定のデバイスでない場合(S902でNO)、制御部304は、装着されたデバイスによって実行可能な処理がないと判定する。このため、制御部304は、記憶部303から読み出した自装置において実行可能な処理の第1処理リストを、撮像装置110側でローカルに実行可能な処理を示す統合処理リストとして(S905)、処理を終了する。なお、デバイスが抜去された際に図9の処理が実行されると、所定のデバイスが当然に装着されていないため、第1処理リストが統合処理リストとして扱われることとなる。
これにより、特定の処理を実行可能な着脱可能デバイス100が撮像装置110に装着されているか否かに基づいて、撮像装置110側でローカルに実行可能な処理をリスト化することができる。また、この統合処理リストをユーザに提示することにより、着脱可能デバイス100の装着によって撮像装置110側でローカルに実行可能となる処理を、ユーザが選択することができるようになる。
なお、本実施形態では、統合処理リストを生成する場合の例を示したが、第1処理リストと第2処理リストとが別個に管理され、統合処理リストが生成されなくてもよい。すなわち、着脱可能デバイス100で実行可能な処理と、着脱可能デバイス100を伴わずに撮像装置110で実行可能な処理とが区別可能に管理され、出力されてもよい。また、第1処理リストと第2処理リストが区別可能に管理される場合であっても、統合処理リストが生成され、管理されてもよい。例えば、第1処理リストに含まれる処理と第2処理リストに含まれる処理とが共に使用されることにより新たな処理を実行可能な場合に、その新たな処理は、第1処理リストと第2処理リストには含まれないが、統合処理リストに含まれることとなる。なお、統合処理リストが出力される場合、併せて、その統合処理リストに含まれる処理が第1処理リストと第2処理リストとのいずれに含まれる処理であるかを区別可能に示す情報が出力されうる。これにより、例えば提示された処理を着脱可能デバイス100なしで実行可能であるかをユーザが認識することができるようになる。
なお、上述の処理リストは、入出力装置130のような、少なくとも撮像装置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は、自装置のみでは実行できない処理の情報を出力しうる。これによれば、ユーザに対して、出力された情報が示す処理を実行可能な着脱可能デバイス100が存在することと、その着脱可能デバイス100を装着することにより、その処理が実行可能となることを通知することができる。
さらに、撮像装置110は、過去に当該撮像装置110に装着したことがないが、撮像装置110に装着可能な他の着脱可能デバイス100(未装着デバイス)についての第2処理リストを出力するようにしてもよい。このような未装着デバイスとその未装着デバイスが実行可能な解析処理を示す情報は、例えば、撮像装置110が図示を省略する外部のサーバからネットワークを介して取得することができる。また、未装着デバイスとその未装着デバイスが実行可能な解析処理を示す情報は、例えば、撮像装置110が事前に保持していてもよい。
また、撮像装置110は、未装着デバイスについての第2処理リストに含まれる処理と、第1処理リストに含まれる(自装置で実行可能な)処理とを用いて実行可能となる処理を示す情報を出力してもよい。換言すれば、撮像装置110は、自装置のみでは実行できない処理の情報を出力しうる。これによれば、ユーザに対して、出力された情報が示す処理を実行可能な着脱可能デバイス100が存在することと、その着脱可能デバイス100を装着することにより、その処理が実行可能となることを通知することができる。
なお、撮像装置110は、過去に装着されて抜去された着脱可能デバイス100についての第2処理リストを記憶する際に、その着脱可能デバイス100の機種番号などのデバイスを特定可能な情報を併せて記憶しうる。そして、撮像装置110は、その着脱可能デバイス100に関する第2処理リストを出力する際に、その着脱可能デバイス100を特定可能な情報も併せて出力しうる。これによれば、ユーザが、提示された処理機能を使用するために、どの着脱可能デバイス100を撮像装置110に装着すればよいかを容易に認識することができるようになる。
<解析処理内容を決定する処理>
図10に、撮像装置110が解析処理内容を決定する処理の流れの例を示す。本処理では、撮像装置110側でローカルに実行可能な解析処理が入出力装置130を介してユーザに提示され、入出力装置130はユーザの選択を受け付ける。そして、撮像装置110は、入出力装置130を介して受け付けられたユーザ選択を示す情報に応じて、実行する解析処理を決定する。
本処理では、まず、入出力装置130の制御部702が、ネットワーク通信部701を制御して、撮像装置110との通信を実行し、撮影画像と統合処理リストと後処理リストとの取得を要求する(S1001)。入出力装置130は、一例として、ONVIF規格で規定された要求メッセージを撮像装置110へ送信することによって、撮像装置110へ情報の送信を要求する。ただし、これに限られず、他のメッセージ等によって情報の送信要求が行われてもよい。撮像装置110は、この要求に基づいて、撮像制御部301が周囲の環境を撮影し、制御部304が信号処理部302を制御して、撮像制御部301によって撮影された画像を処理して、撮影画像を取得する(S1002)。なお、撮像装置110は、要求の有無によらず周囲の環境を撮影して、撮影画像を取得し続けていてもよい。撮像装置110は、撮影画像をローカルに保存していてもよいし、ネットワークサーバ等の他装置に撮影画像を転送して保存させてもよい。制御部304は、記憶部303に記憶されている後処理リストを読み出す。後処理リストは、本実施形態では表示処理及び保存処理を含むものとするが、これに限られない。制御部304は、ネットワーク通信部307を制御して、後処理リストと、図9の処理によって取得した統合処理リストと、S1002で取得した撮影画像とを入出力装置130へ送信する(S1003)。撮像装置110は、一例として、上述のONVIF規格で規定された要求メッセージに対する応答メッセージを入出力装置130へ送信することによって、入出力装置130へ情報を送信する。ただし、これに限られず、他のメッセージ等によって情報の送信が行われてもよい。なお、ここでは、実行する処理のみが考慮されてもよく、S1001の入出力装置130による撮影画像の要求、S1002における撮影画像の取得、及びS1003の入出力装置130への撮影画像の送信は行われなくてもよい。
入出力装置130の制御部702は、ネットワーク通信部701を制御して、撮像装置110から撮影画像と統合処理リストと後処理リストを受信する。そして、制御部702は、表示部703を制御して、画面表示等によって、統合処理リストと後処理リストをユーザに提示する(S1004)。なお、制御部702は、このときに、併せて撮影画像を画面表示等によってユーザに提示してもよい。その後、ユーザは、表示部703によって表示された統合処理リストと後処理リストを確認し、操作部704を介して、実行すべき解析処理(以下では、「実行対象処理」と呼ぶ。)を統合処理リストの中から選択する(S1005)。また、ユーザは、操作部704を介して、実行すべき後処理(以降、実行対象後処理)を選択する(S1006)。操作部704は、実行対象処理と実行対象後処理の選択結果を、制御部702に出力する。制御部702は、ネットワーク通信部701を制御して、操作部704から入力された実行対象処理と実行対象後処理を示す情報を撮像装置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から入力された実行対象処理の設定要求に基づいて、着脱可能デバイス100が実行対象処理を実行可能な状態となるようにするための設定を実行する(S1010)。具体的には着脱可能デバイス100が撮像装置110から受信した複数の学習モデルのうちの一つを展開する。そして、通信部502は、例えば設定処理が完了した後に、設定完了通知を撮像装置110へ送信する(S1011)。
図10の処理のように、特定の処理を実行可能な着脱可能デバイス100が撮像装置110に装着されたか否かによって定まる統合処理リストを用いることにより、撮像装置110側の状態を考慮して実行対象処理を適切に決定することができる。また、実行対象処理が着脱可能デバイス100で実行される処理を含む場合に着脱可能デバイス100の設定を自動で行うことにより、ユーザによる設定操作を行うことなく、ユーザが選択した処理を実行する準備を整えることができる。また、実行対象処理が着脱可能デバイス100で実行される処理を含まない場合に着脱可能デバイス100の設定を行わないことで、撮像装置110単体で処理を実行する場合に不必要に着脱可能デバイス100の設定が行われることを防ぐことができる。
<解析処理の実行制御>
図11に、撮像装置110が解析処理を実行する際の制御の流れの例を示す。本処理では、まず、撮像制御部301が周囲の環境を撮影する(S1101)。制御部304は、信号処理部302を制御して、撮像制御部301によって撮影された画像の処理を行い、撮影画像を取得する。その後、制御部304は、解析部305を制御して、制御部304から入力された撮影画像に対して解析前処理を実行し、解析前処理結果の画像を取得する(S1102)。そして、制御部304は、実行対象処理が第2処理リストに含まれるかを判定する(S1103)。
制御部304は、実行対象処理が第2処理リストに含まれないと判定した場合(S1103でNO)、解析部305を制御して、撮像装置110内で解析前処理結果の画像に対する実行対象処理を実行する(S1104)。そして、制御部304は、解析部305を制御して、解析処理結果に対する解析後処理を実行し(S1108)、処理を終了する。
制御部304は、実行対象処理が第2処理リストに含まれていると判定した場合(S1103でYES)、デバイス通信部306を制御して、解析前処理結果の画像を着脱可能デバイス100に送信する(S1105)。例えば、制御部304は、解析前処理結果の書き込み要求(ライトコマンド)を発行することにより、着脱可能デバイス100へ解析前処理結果の画像を送信する。着脱可能デバイス100の通信部502は、解析前処理結果の画像を撮像装置110から受信し、撮像装置110から受信した画像を解析部501に出力する。解析部501は、通信部502から入力された画像に対して、図10のS1010において設定された実行対象処理を実行する(S1106)。なお、解析部501が実行対象処理を実行中に、撮像装置110から第2処理リストに含まれてない学習モデルの追加要求を受けた場合、解析前処理結果の書き込み要求(ライトコマンド)と撮像装置110における解析処理結果の読み出し要求(リードコマンド)間の空き帯域(着脱可能デバイスが解析処理を実行している時間)を利用して当該学習モデルを分割して送信する。このとき、制御部304が学習モデルを分割して送信する方法の詳細については後述する。そして、通信部502は、解析部501による処理によって得られた解析処理結果を撮像装置110へ送信する(S1107)。撮像装置110の制御部304は、デバイス通信部306を制御して、着脱可能デバイス100から解析処理結果を受信する。その後、制御部304は、解析部305を制御して、解析処理結果に対して解析後処理を実行する(S1108)。
着脱可能デバイス100から撮像装置110への解析処理結果の送信は、例えば以下のようにして行われる。着脱可能デバイス100の解析部501は、解析処理結果を実行対象処理ごとに割り当てられた解析処理結果の格納先アドレスに格納する。そして、撮像装置110は、例えば第2処理リストと共にアドレスAに格納された解析処理結果の格納アドレスを示す情報を読み出し、その格納アドレスに対する読み出し要求(リードコマンド)を発行する。着脱可能デバイス100は、通信部502を介して、解析処理結果の格納アドレスへの読み出し要求を受け取り、解析処理結果を撮像装置110に対して出力する。なお、撮像装置110は、例えばアドレスAに格納されている推定処理時間が経過した後に、解析処理結果の格納アドレスに対する読み出し要求を発行しうる。また、着脱可能デバイス100が、撮像装置110から送信された解析前処理結果の最後の1ブロックの書き込み要求から実行対象処理が終了するまでの間はBUSY信号を出力するようにしてもよい。この場合、撮像装置110は、BUSY信号を受信しなくなってから、解析処理結果の格納アドレスに対する読み出し要求を発行しうる。これにより、撮像装置110は、処理が終了した後に処理結果を取得することが可能となる。
以上のような処理により、撮像装置110は、選択された実行対象処理に応じて、撮影画像を着脱可能デバイス100に転送するか否かを決定することができる。これにより、解析処理を撮像装置110が実行するか着脱可能デバイス100が実行するかをユーザが意識することなく、撮影画像の解析処理を実行することが可能となる。
<後処理の実行制御>
図12に、撮像装置110が後処理を実行する際の制御の流れの例を示す。本処理では、撮像装置110の制御部304が、実行対象の後処理に「表示」が含まれるか否かを判定する(S1201)。制御部304は、実行対象の後処理に表示が含まれると判定した場合(S1201でYES)、ネットワーク通信部307を制御して、解析処理の結果を入出力装置130へ送信する(S1202)。入出力装置130の制御部702は、ネットワーク通信部701を制御して、撮像装置110から解析処理の結果を受信すると、表示部703を制御して、解析処理の結果を画面表示等によってユーザに提示する(S1203)。一方、制御部304が実行対象の後処理に表示が含まれないと判定した場合(S1201でNO)、S1202及びS1203の処理は実行されない。
また、撮像装置110の制御部304は、実行対象の後処理に「保存」が含まれるか否かの判定を行う(S1204)。なお、S1204の判定は、S1201の前に実行されてもよいし、S1201と並行して実行されてもよい。制御部304は、実行対象の後処理に保存が含まれると判定した場合(S1204でYES)、記憶部303を制御して、解析処理の結果を記憶し、処理を終了する。一方、制御部304は、実行対象の後処理に保存が含まれないと判定した場合(S1204でNO)は、S1205の処理を実行せずに処理を終了する。なお、解析結果の記憶は、撮像装置110が有するメモリ(図示せず)でも良いし、着脱可能デバイス100でも構わない。
このように、撮像装置110は、選択された後処理に応じて、解析処理の結果の入出力装置130への転送や記憶部303への格納を、ユーザによる特段の設定操作を受け付けることなく実行することができ、利便性を向上させることができる。
<学習モデルを分割して送信する処理>
ここで、実行対象処理中に、ユーザによる第2処理リストに含まれてない学習モデルの追加要求を受けた場合において、撮像装置110が着脱可能デバイス100に学習モデルを分割して送信する処理について図13を用いて説明する。なお、撮像装置110に、新規に追加する学習モデルは、ユーザの指示に従って入出力装置130から対象となる撮像装置110に事前に転送しているものとして説明する。また、撮像装置110は、入出力装置130から受信した学習モデルを、自身の不図示のメモリに保存済みであるものとして説明する。
はじめに、S1301で撮像装置110の制御部304は、ユーザによる学習モデルの追加要求を受けたかどうかを判断する。
撮像装置110の制御部304が、ユーザによる学習モデルの追加要求を受けなかったと判断した場合(S1301でNO)は、処理をS1306に進め、撮像装置110は前処理結果を着脱可能デバイス100に送信する。
S1301にて制御部304がユーザによる学習モデルの追加要求を受けたと判断した場合(S1301でYES)は、処理をS1302に進め、当該学習モデルが着脱可能デバイス100に既に保存されているかを判定する。制御部304が既に保存されていると判定した場合(S1302でYES)は、処理はS1306に進む。
S1302にて制御部304が、当該学習モデルが着脱可能デバイス100にないと判定した場合(S1302でNo)は、処理をS1303に進め、制御部304は追加する学習モデルが既に分割済であるか判定する。制御部304が既に学習モデルが分割済であると判定した場合(S1303でYES)は、処理はS1306に進む。
S1303にて制御部304が学習モデルを分割済でないと判定した場合(S1303でNo)、処理をS1304に進める。このS1304にて、制御部304は、送信する学習モデルの分割数を決定する。分割数の決定方法は、解析前処理結果の書き込み要求(ライトコマンド)と読み出し要求(リードコマンド)までに要する解析処理時間(撮像装置110にとっての待ち期間に相当する)に基づき決定する。具体的には、制御部303は、図14、図15に示される情報を元に計算する。
図14は、着脱可能デバイス100に保管されている各学習モデルの解析処理時間情報との関係を示すテーブルである。図14に示されるように、本実施形態では、4つの学習モデルの情報が含まれている。また、図15は撮像装置110に保管されている、追加候補の学習モデルと転送時間との対応関係を示すテーブルである(なお、学習モデルとそのサイズとの関係を示すテーブルでも良い)。図14、図15に示すテーブルは、入出力装置130が撮像装置110に予め転送することで、記憶部303に保持されるものである。
これらの情報を元に、制御部304は新たに追加される学習モデルの転送時間を、現在実行中の学習モデルの処理時間で除算することで、分割数を決定する。例えば、着脱可能デバイス100が利用中(実行中)の学習モデルAであり、そこに学習モデルEの追加要求がきた場合、分割数は4000/167=24(分割)となる。以下、分割した学習モデルを順に学習モデル1、学習モデル2・・・学習モデル24と呼ぶ。
次にS1305で、制御部304はS1304で決定した分割数を元に、学習モデルの分割処理を行う。
次に、処理はS1306に進み、撮像装置は前処理結果を着脱可能デバイス100に送信する。
次にS1307にて、撮像装置110の制御部304が前処理結果の送信が完了したか判定する。前処理結果の送信が完了していない場合(S1307でNo)は、処理はS1305に戻る。
S1307で制御部304が前処理結果の送信が完了したと判定した場合(S1307でYes)は、処理をS1106に進め、着脱可能デバイスが前処理結果に対して実行対象処理を実行する。具体的な処理の内容は前述した通りなので説明を省略する。
次にS1308にて撮像装置110の制御部304は分割済である未送信の学習モデルが有るかを判断する。制御部304が、未送信の学習モデルが無いと判断した場合(S1307でNo)は、処理はS1107に進み、着脱可能デバイス100が、撮像装置110へ、実行対象処理の結果を送信する。S1107の処理の詳細は前述の通りなので説明を省略する。
S1308にて、制御部304が未送信の学習モデルが有ると判断した場合(S1308でYes)は、処理をS1309に進め、未送信の学習モデルを送信する。
図16は分割した学習データを、解析前処理結果を含む書き込み要求(ライトコマンド)と、読み出し要求(リードコマンド)の間で送信している様子を示した図である。参照符号1601は、学習モデルを24分割して最初に送信される学習モデル1を示している。着脱可能デバイス100は、この学習モデル1を受信後に記憶部404に保存する。このとき、記憶部404は保存した記憶領域のアドレスを記憶する。例えば、記憶部404は分割された学習モデルを保存した記憶領域の末尾のアドレスを記憶する。
次に、S1107で着脱可能デバイスが、撮像装置110へ実行対象処理の結果を送信し、処理はS1301へ戻る。
再び、制御部304はS1301、S1302の処理を行い、S1303で追加する学習モデルが分割済か判定する。本実施形態では追加する学習モデルが既に分割済であるため、処理はS1306に進む。
次に処理は、S1306、S1106に進む。S1306、S1106の処理の詳細は前述の通りなので説明を省略する。
次に、S1308で未送信の学習モデルがあるか判定する。本実施形態では学習モデル2~24が撮像装置110内に残っているので、撮像装置110は図16の参照符号1602に示すように学習モデル2を送信し、着脱可能デバイス100はこの学習モデル2を記憶部404に保存する。このとき、記憶部404は学習モデル1を保存した記憶領域のアドレスを参照して、その直後に学習モデル2を保存する。
本実施形態では分割数が24であるため、ライトコマンドとリードコマンド間の待機期間が発生するたびに、学習モデル1~学習モデル24を送信し、保管させる。そのため、制御部304は、新規学習モデルの全てのデータの送信が完了するまで、図13のフローを繰り返すことになる。
以上説明したように本実施形態によれば、着脱可能デバイス100に処理すべきデータを与えてから(ライトして)、その処理結果を取得する(リード)までの期間が発生するたびに、分割した新たな学習モデルの転送を行うことで、無駄の無い転送ができるようになる。
なお、実施形態では、撮像装置110は、図14、図15のテーブルを個別に記憶するものとして説明したが、設定可能な学習モデルの種類、当該学習モデルの解析処理時間(処理が完了するのに要する時間)、学習モデルの転送に係る転送時間の各フィールドを持つ1つのテーブルを記憶管理するようにしても良い。
[第2の実施形態]
第1の実施形態では、デバイス通信部306は学習モデルを解析前処理結果の書き込み要求(ライトコマンド)と読み出し要求(リードコマンド)の期間にて、分割された学習モデルを着脱可能デバイス100に送信するものであったが、この限りではない。たとえば、書き込み要求(処理対象のデータ+ライトコマンド)と同時に分割した学習モデルを送信してもよい。以下、具体的な処理の流れについて図17を用いて説明する。なお、
着脱可能デバイス100にとって、書き込み要求のサイズを既知であるものとして説明する。
S1301~S1303の処理に関しては、第1の実施形態と同様なので説明を省略する。
S1304では、第1の実施形態で説明した通り、制御部304は、送信する学習モデルの分割数を決定する。具体的には制御部304は解析前処理結果の書き込み要求(ライトコマンド)と読み出し要求(リードコマンド)までに要する解析処理時間に基づき決定する。例えば、学習モデルAの実行中に学習モデルEの追加要求がきた場合、分割数は4000/167=24(分割)となる。以下、分割した学習モデルを順に学習モデル1、学習モデル2・・・学習モデル24と呼ぶ。
次にS1305にて、制御部304はS1304で決定した分割数を元に、学習モデルの分割処理を行う。
そして、S1701にて、制御部304は解析前処理結果の書き込み要求(ライトコマンド)に空き領域があるか判定する。制御部304は、書き込み要求(ライトコマンド)に空き領域がないと判定した場合(S1701でNo)は、処理をS1703に進める。また、制御部304は、書き込み要求(ライトコマンド)に空き領域があると判定した場合(S1701でYes)は、処理をS1702に進める。このS1702にて、制御部304は、当該空き領域に学習データを格納する。例えば、制御部304は学習モデル1の一部を書き込み要求(ライトコマンド)の空き領域に格納する。
そして、S1703にて、撮像装置110は解析前処理結果の書き込み要求(ライトコマンド)と学習モデル1の一部を着脱可能デバイス100に送信する。
図18は、分割した学習データを解析前処理結果の書き込み要求(ライトコマンド)と読み出し要求(リードコマンド)の間で送信している様子を示した図である。図示の参照符号1801は、解析前処理結果の書き込み要求(ライトコマンド)と同時に送られる学習モデル1の一部を示している。
次にS1306にて、撮像装置110の制御部304は、前処理結果と学習モデル1の一部の送信が完了したか判定する。制御部304は、前処理結果と学習モデル1の一部の送信が完了していないと判定した場合(S1306でNo)、処理をS1703に戻す。一方、制御部304は、前処理結果と学習モデル1の一部の送信が完了したと判定した場合(S1306でYes)は、処理はS1106に進む。このS1106にて、着脱可能デバイス100が前処理結果に対して実行対象処理を実行する。具体的な処理の内容は前述した通りなので説明を省略する。
次にS1307にて、撮像装置110の制御部304は、分割済である未送信の学習モデルがあるかを判断する。制御部304が、未送信の学習モデルがないと判断した場合(S1307でNo)は、処理をS1107に進める。S1107にて、着脱可能デバイス100は、撮像装置110へ、実行対象処理の結果を送信する。処理の詳細は前述の通りなので説明を省略する。
S1307にて、制御部304が未送信の学習モデルがあると判断した場合(S1308でYes)は、処理をS1308に進め、未送信の学習モデルを送信する。図18の参照符号1802は学習モデルを24分割して2番目に送信される学習モデル2を示している。着脱可能デバイス100はこの学習モデル2を受信後に記憶部404に保存することになる。
次に、S1107で着脱可能デバイスが、撮像装置110へ実行対象処理の結果を送信し、処理はS1301へ戻る。
再び、制御部304はS1301、S1302の処理を行い、S1303で追加する学習モデルが分割済か判定する。本実施形態では追加する学習モデルが既に分割済であるため、処理はS1701に進むことになる。
次にS1701にて、制御部304は、解析前処理結果の書き込み要求(ライトコマンド)に空き領域があるか判定する。S1701において、書き込み要求(ライトコマンド)に空き領域がないと判定した場合(S1701でNo)は、処理はS1703に進める。
S1701において、制御部304が、書き込み要求(ライトコマンド)に空き領域があると判定した場合(S1701でYes)は、処理をS1702に進める。このS1702にて、制御部304は当該空き領域に学習データを格納する。例えば、制御部304は学習モデル1の一部を書き込み要求(ライトコマンド)の空き領域に格納する。
そして、S1703にて、制御部304は、解析前処理結果の書き込み要求(ライトコマンド)と学習モデル1の一部を着脱可能デバイス100に送信する。図18の参照符号1803は、解析前処理結果の書き込み要求(ライトコマンド)と同時に送られる学習モデル1の一部を示している。
次に処理はS1306、S1106に進む。S1306とS1106の処理は前述した通りなので説明を省略する。
次に、S1307で未送信の学習モデルがあるか判定する。本実施形態では学習モデル3~24が撮像装置110内に残っているので、撮像装置110は図18の参照符号1804に示すように学習モデル3を送信し、着脱可能デバイス100はこの学習モデル3を記憶部404に保存する。
本実施形態では分割数が24であるため、学習モデル1~学習モデル24を全て送信し、保管されるまで、制御部304は図18のフローを繰り返す。
以上説明したように、第2の実施形態によれば、デバイス通信部306から着脱可能デバイス100への単位転送量が固定であって、処理対象のデータとその書き込みコマンドとのサイズが、単位転送量の整数倍に対して空き領域が存在する場合には、新規学習モデル(の一部)をその空き領域に格納した上で転送する。この結果、先に説明した第1の実施形態と比較して、着脱可能デバイスへの送信(書き込み)に係る時間を更に短くできる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100…着脱可能デバイス、110…撮像装置、120…ネットワーク、130…入出力装置、301…撮像制御部、302…信号処理部、303…記憶部、304…制御部、305…解析部、306…デバイス通信部、307…ネットワーク通信部、401…I/F部、402…FPGA,403…Configration外部制御部、404…記憶部

Claims (6)

  1. 撮像手段を有し、当該撮像手段で得た画像に基づく処理を実行する撮像装置であって、
    学習モデルを用いて与えられたデータを処理可能なデバイスを装着するためのインタフェースと、
    前記インタフェースを介し、前記デバイスへの処理対象のデータを含む処理の要求を表すライトコマンドの発行、並びに、処理結果をリードするためのリードコマンドの発行を行うことで、前記デバイスを利用した処理を行う制御手段とを有し、
    該制御手段は、
    前記デバイスを利用した処理中に前記デバイスに新規学習モデルを設定する場合、前記デバイスへライトコマンドを発行してから当該処理を完了するまでに要する期間を利用して、前記新規学習モデルの一部を前記デバイスに送信して設定する
    ことを特徴とする撮像装置。
  2. 更に、前記デバイスに設定可能な学習モデルの種類、当該学習モデルを用いた場合の処理が完了するのに要する時間、当該学習モデルを前記撮像装置から前記デバイスに転送するのに要する時間の関係を示す情報を記憶する記憶手段を含み、
    前記制御手段は、前記記憶手段を参照して、前記新規学習モデルの転送が完了するのに要する時間を前記デバイスによる処理で利用中の既存の学習モデルによる処理が完了するのに要する時間で除算して得た値で、前記新規学習モデルを分割し、前記期間が発生するたびに、分割した新規学習モデルを前記デバイスに送信する
    ことを特徴とする請求項1に記載の撮像装置。
  3. 前記制御手段は、前記デバイスへの処理対象のデータを含む前記ライトコマンドの空き領域に、前記新規学習モデルのデータの一部を格納した上で送信することを特徴とする請求項1又は2に記載の撮像装置。
  4. 更にネットワーク上の所定の処理装置と通信するためのネットワーク通信手段を有し、
    前記制御手段は、更に、前記デバイスによる処理の結果を示す情報を、前記ネットワーク通信手段を利用して前記処理装置に送信する
    ことを特徴とする請求項1乃至3のいずれか1項に記載の撮像装置。
  5. 学習モデルを用いて与えられたデータを処理可能なデバイスを装着するためのインタフェースと、撮像手段とを有し、当該撮像手段で得た画像に基づく所定の処理を実行する撮像装置の制御方法であって、
    前記インタフェースを介し、前記デバイスへの処理対象のデータを含む処理の要求を表すライトコマンドの発行、並びに、処理結果をリードするためのリードコマンドの発行を行うことで、前記デバイスを利用した処理を行う制御工程を有し、
    該制御工程では、
    前記デバイスを利用した処理中に前記デバイスに新規学習モデルを設定する場合、前記デバイスへライトコマンドを発行してから当該処理を完了するまでに要する期間を利用して、前記新規学習モデルの一部を前記デバイスに送信して設定する
    ことを特徴とする撮像装置の制御方法。
  6. コンピュータを、請求項1乃至4のいずれか1項に記載の撮像装置として機能させるためのプログラム。
JP2020182557A 2020-10-30 2020-10-30 撮像装置、及び、その制御方法、及び、プログラム Pending JP2022072874A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020182557A JP2022072874A (ja) 2020-10-30 2020-10-30 撮像装置、及び、その制御方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020182557A JP2022072874A (ja) 2020-10-30 2020-10-30 撮像装置、及び、その制御方法、及び、プログラム

Publications (1)

Publication Number Publication Date
JP2022072874A true JP2022072874A (ja) 2022-05-17

Family

ID=81605017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020182557A Pending JP2022072874A (ja) 2020-10-30 2020-10-30 撮像装置、及び、その制御方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP2022072874A (ja)

Similar Documents

Publication Publication Date Title
JP7154678B2 (ja) 目標の位置取得方法、装置、コンピュータ機器及びコンピュータプログラム
CN112752018B (zh) 图像捕获装置、控制方法及计算机可读存储介质
JP2021136666A (ja) 撮像装置、デバイス、制御方法、およびプログラム
JP7441016B2 (ja) 撮像装置、情報処理装置、制御方法及びプログラム
US11729515B2 (en) Imaging apparatus, information processing method, and recording medium for determining whether an image analysis of a predetermined image is complete
JP2021136664A (ja) デバイス、制御方法、およびプログラム
JP2021093568A (ja) 撮像装置、情報処理装置、及びこれらの制御方法並びにプログラム、学習済みモデル選択システム
JP2021196753A (ja) 撮像装置及びその制御方法及びプログラム
JP2021163998A (ja) 撮像装置、デバイス、制御方法、及びプログラム
JP2022072874A (ja) 撮像装置、及び、その制御方法、及び、プログラム
JP2021048572A (ja) デバイス、制御方法、及びプログラム
JP7441017B2 (ja) デバイス、撮像装置、制御方法及びプログラム
JP7325281B2 (ja) 撮像装置、制御方法及びプログラム
JP2021072611A (ja) 撮像装置、制御方法、及び、プログラム
JP2021047827A (ja) デバイス、システム、制御方法、及びプログラム
JP2022167153A (ja) 情報処理装置およびその制御方法
JP2023028994A (ja) 演算装置、撮像装置、制御方法及びプログラム
JP2023011341A (ja) 情報処理装置およびその制御方法
EP4027218A1 (en) Detachable electrical device and control method thereof
JP2021158576A (ja) 着脱可能デバイスおよびその制御方法、プログラム
JP2021136663A (ja) デバイス、通信装置、方法、およびプログラム
JP2022039941A (ja) 情報処理装置、制御方法、及び、プログラム
JP7425569B2 (ja) 撮像装置、デバイス、制御方法及びプログラム
JP7475379B2 (ja) 撮像装置、撮像装置の制御方法及びプログラム
WO2020075624A1 (ja) 情報処理装置、情報処理方法、情報提供装置、情報提供方法、提示制御装置、提示制御方法および情報処理システム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113