JP2021158576A - 着脱可能デバイスおよびその制御方法、プログラム - Google Patents

着脱可能デバイスおよびその制御方法、プログラム Download PDF

Info

Publication number
JP2021158576A
JP2021158576A JP2020058305A JP2020058305A JP2021158576A JP 2021158576 A JP2021158576 A JP 2021158576A JP 2020058305 A JP2020058305 A JP 2020058305A JP 2020058305 A JP2020058305 A JP 2020058305A JP 2021158576 A JP2021158576 A JP 2021158576A
Authority
JP
Japan
Prior art keywords
data
processing result
command
read
processing
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
JP2020058305A
Other languages
English (en)
Inventor
健太朗 福永
Kentaro Fukunaga
健太朗 福永
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 JP2020058305A priority Critical patent/JP2021158576A/ja
Priority to US17/211,573 priority patent/US11363160B2/en
Publication of JP2021158576A publication Critical patent/JP2021158576A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • H04N1/2104Intermediate information storage for one or a few pictures
    • H04N1/2158Intermediate information storage for one or a few pictures using a detachable storage unit
    • 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/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • 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/617Upgrading or updating of programs or applications for camera control

Abstract

【課題】着脱可能デバイスに保存された解析処理の処理結果を保護する技術を提供する。【解決手段】電子機器に着脱可能な、記憶部を有する着脱可能デバイスは、電子機器から解析のために入力されたデータを解析し、得られた処理結果を、複数の部分データに分割し、アドレスが連続しないように記憶部の複数の領域に格納する。着脱可能デバイスは、電子機器からのリードコマンドに含まれているパラメータに基づいて、そのリードコマンドが処理結果を読み出すコマンドであるか否かを判断し、リードコマンドが処理結果を読み出す要求であると判断された場合には、複数の部分データを記憶部の複数の領域から読み出し、それらを処理結果に構成して出力する。【選択図】 図1

Description

本発明は、電子機器への着脱が可能な着脱可能デバイスおよびその制御方法、プログラムに関する。
近年、様々なシーンにおいて、監視カメラにより撮像された画像を用いて、物体の検出や追尾、属性の推定等を行う画像解析、そのような画像解析の結果に基づく物体数の推定等の画像処理が行われている。従来、このような画像処理は、実際の画像処理を実行するPCやサーバ等の高性能な演算装置に監視カメラの映像が転送されることによって行われてきた。これに対し、近年のモバイル用演算装置の処理能力の向上に伴い、監視カメラ側で画像処理を行うことが可能となってきている。カメラ側での処理は、例えば、カメラ本体に配置された演算装置によって実行されうる。また、USB等の着脱可能デバイスに演算装置を配置することによって、その着脱可能デバイスが処理の少なくとも一部を実行することもできる。
例えば、メモリと画像解析の機能を備える着脱可能デバイスを撮像装置に装着することで映像を録画しつつ、画像解析を行うことが可能となる。解析結果には画像解析処理におけるノウハウも含まれるため、他者によって読み出されることは好ましくない。ところが、画像解析結果が着脱可能デバイスに保存される場合、その着脱可能デバイスがPC等の異なる機器に接続されたときに読み出されてしまうことがある。特許文献1では着脱可能デバイスにセキュリティ領域を持たせ、アクセス時に作成する管理情報の照合することで再度セキュリティ領域にアクセスが可能となる技術が提案されている
特願2008−244538号公報
しかしながら、特許文献1では、専用のコマンドを用いて撮像装置から管理情報を送信する処理等、画像解析処理の処理結果を保護するためにコストの高い付加的な処理が必要となる。
本発明は、着脱可能デバイスに保存された解析処理の処理結果を保護する技術を提供する。
本発明の一態様による着脱可能デバイスは以下の構成を備える。すなわち、
電子機器に着脱可能な、記憶部を有する着脱可能デバイスであって、
前記電子機器から解析のために入力されたデータを解析する解析手段と、
前記解析手段により得られた処理結果を、複数の部分データに分割し、アドレスが連続しないように前記記憶部の複数の領域に格納する格納手段と、
前記電子機器からのリードコマンドに含まれているパラメータに基づいて、前記リードコマンドが前記処理結果を読み出すコマンドであるか否かを判断する判断手段と、
前記リードコマンドが前記処理結果を読み出す要求であると判断された場合に、前記複数の部分データを前記記憶部の前記複数の領域から読み出し、前記処理結果に構成して出力する出力手段と、を備える。
本発明によれば、着脱可能デバイスに保存された解析処理の処理結果を保護することが可能となる。
実施形態によるシステム構成の一例を示す図。 撮像装置のハードウェア構成例を示すブロック図。 撮像装置の機能構成例を示すブロック図。 着脱可能デバイスのハードウェア構成例を示すブロック図。 着脱可能デバイスの機能構成例を示すブロック図。 システムで実行される処理の例を示すフローチャート。 コマンドとレスポンスの構造を示す図。 処理機能の情報を格納しているアドレス内のデータを概略的に示す図。 撮像装置が取得する情報の例を示す図。 画像データと処理結果を格納する処理の例を示すフローチャート。 画像データと解析処理の処理結果の格納を説明する図。 第1実施形態による、画像データと処理結果を読み出す処理の例を示すフローチャート。 第2実施形態による、画像データと処理結果を読み出す処理の例を示すフローチャート。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1実施形態]
以下、着脱可能なデバイスを装着する電子機器として撮像装置を用いた例を説明する。
<システム構成>
図1に、本実施形態の画像解析システムの構成例を示す。以下では、一例として、このシステムが特定人物追跡システムである場合について説明する。ただし、これに限られず、画像を解析して所定の情報出力を行う任意のシステムに、以下の議論を適用することができる。本システムは、撮像装置110a〜110dと、ネットワーク120と、入出力装置130とを含んで構成される。なお、撮像装置110a〜110dは、それぞれ、例えば撮像した画像を記録可能なデバイスを着脱可能なスロットを有し、そのスロットに着脱可能デバイス100a〜100dが挿入されることにより、着脱可能デバイス100a〜100dと接続される。なお、以下では、着脱可能デバイス100a〜100dを「着脱可能デバイス100」と表記し、撮像装置110a〜110dを「撮像装置110」と表記する。なお、以下では、画像という用語は、映像、動画、静止画を総称するものとする。
着脱可能デバイス100は、撮像装置110に対して着脱可能な演算デバイスである。着脱可能デバイス100は、一例として、SDカードに所定の処理回路を搭載したメモリデバイスである。着脱可能デバイス100は、例えば、SDカードの態様によって、撮像装置110にその全体が挿入可能に構成され、これにより、撮像装置110から突出する部分がない状態で撮像装置110と接続可能に構成することができる。また、着脱可能デバイス100は、例えば、撮像装置110にその半分以上の部分が挿入可能に構成され、これにより、撮像装置110から突出する部分が少ない状態で撮像装置110と接続可能に構成されてもよい。これにより、着脱可能デバイス100が配線等の障害物と干渉することを防ぐことができ、デバイスの利用時の利便性を高めることができる。また、多くの既存のネットワークカメラなどの撮像装置110には、SDカードスロットが用意されているため、既存の撮像装置110に対して、着脱可能デバイス100により拡張機能を提供することができる。なお、着脱可能デバイス100は、SDカードの態様以外に、少なくともその撮像装置110で撮影された画像を記憶可能な記憶装置が装着される際に使用される任意のインタフェースで、撮像装置110に装着されるように構成されてもよい。例えば、着脱可能デバイス100は、USB(ユニバーサリシリアルバス)インタフェースを有し、撮像装置110のUSBソケットに装着されるように構成されてもよい。また、所定の処理回路は、例えば、所定の処理を実行するようにプログラムされたFPGA(フィールドプログラマブルゲートアレイ)によって実装されるが、それ以外の形式で実装されてもよい。
撮像装置110は、ネットワークカメラ等の撮像装置である。本実施形態では、撮像装置110は、画像を処理することのできる演算装置を内蔵するものとするが、これに限られない。例えば、撮像装置110に接続されたPC(パーソナルコンピュータ)等の外部コンピュータが存在してもよく、これらの組み合わせを、撮像装置110として扱ってもよい。また、本実施形態では、全ての撮像装置110に、着脱可能デバイス100が装着されているものとする。なお、図1では、4つの撮像装置110と、それぞれに装着された着脱可能デバイスとが示されているが、これらの装置の組み合わせの数は3つ以下であってもよいし、5つ以上であってもよい。撮像装置110に、画像解析処理機能を有する着脱可能デバイス100が装着されることにより、撮像装置110が画像解析処理機能を有しなくても、撮像装置110側で画像処理を実行することが可能となる。また、本実施形態のように撮像装置110に画像処理用の演算装置が配置された形態では、演算装置が配置された着脱可能デバイス100が撮像装置110に装着されることにより、撮像装置110側で実行可能な画像処理を多様化・高度化することができる。
入出力装置130は、ユーザからの入力の受け付けや、ユーザへの情報の出力(例えば情報の表示)を行う装置である。本実施形態では、例えば入出力装置130は、PC等のコンピュータであり、そのコンピュータにインストールされたブラウザやネイティブアプリケーションによって、情報の入出力が行われる。
撮像装置110と入出力装置130は、ネットワーク120を介して通信可能に接続される。ネットワーク120は、例えばEthernet(登録商標)等の通信規格を満たす複数のルータ、スイッチ、ケーブル等を含んで構成される。本実施形態では、ネットワーク120は、撮像装置110と入出力装置130との間の通信を可能とする任意のネットワークであってよく、任意の規模や構成、準拠する通信規格によって構築されうる。例えば、ネットワーク120は、インターネットや有線LAN(Local Area Network)、無線LAN、WAN(Wide Area Network)等でありうる。また、ネットワーク120は、例えば、ONVIF(Open Network Video Interface Forum)規格に準拠した通信プロトコルでの通信が可能なように構成されうる。ただし、これに限られず、ネットワーク120は、例えば、独自の通信プロトコル等の他の通信プロトコルでの通信が可能なように構成されてもよい。
<装置構成>
(撮像装置の構成)
続いて、撮像装置110の構成について説明する。図2は、撮像装置110のハードウェア構成例を示す図である。撮像装置110は、そのハードウェア構成として、例えば、撮像部201、画像処理部202、演算処理部203、配信部204、SD I/F部205を含む。なお、I/Fは、インタフェースの略語である。
撮像部201は、光を結像するためのレンズ部と、結像された光に応じたアナログ信号変換する撮像素子とを含んで構成される。レンズ部は、画角を調整するズーム機能や、光量の調整を行う絞り機能などを有する。撮像素子は、光をアナログ信号に変換する際の感度調整を行うゲイン機能を有する。これらの機能は、画像処理部202から通知された設定値に基づいて調整される。撮像部201によって取得されたアナログ信号は、アナログ−デジタル変換回路によってデジタル信号に変換され、画像信号として画像処理部202へ転送される。
画像処理部202は、画像処理エンジンと、その周辺デバイス等を含んで構成される。周辺デバイスは、例えば、RAM(Random Access Memory)や、各I/Fのドライバ等を含む。画像処理部202では、撮像部201から取得した画像信号に対して、例えば、現像処理、フィルタ処理、センサ補正、ノイズ除去等の、画像処理を施して画像データを生成する。また、画像処理部202は、レンズ部や撮像素子へ設定値を送信し、適切露出画像を取得できるように、露出調整を実行しうる。画像処理部202において生成された画像データは、演算処理部203へ転送される。
演算処理部203は、CPUやMPU等の1つ以上のプロセッサ、RAMやROM等のメモリ、各I/Fのドライバなどから構成される。なお、CPUはCentral Processing Unitの、MPUはMicro Processing Unitの、RAMはRandom Access Memoryの、ROMはRead Only Memoryの、頭字語である。演算処理部203では、一例において、上述のシステムにおいて実行されるべき処理の各部分を撮像装置110と着脱可能デバイス100とのいずれが実行するかの分担を決定し、その決定した分担に対応する処理を実行しうる。画像処理部202から受け取った画像は、配信部204、又は、SD I/F部205へ転送される。また、処理結果のデータも配信部204へ転送される。
配信部204は、ネットワーク配信エンジンと、例えば、RAMやETH PHYモジュールなどの周辺デバイス等を含んで構成される。ETH PHYモジュールは、Ethernetの物理(PHY)レイヤの処理を実行するモジュールである。配信部204は、演算処理部203から取得した画像データや処理結果のデータを、ネットワーク120へ配信可能な形式に変換して、変換後のデータをネットワーク120へ出力する。SD I/F部205は、着脱可能デバイス100と接続するためのインタフェース部分で、例えば、電源と、着脱可能デバイス100を着脱するための、着脱ソケット等の装着機構を含んで構成される。ここでは、SD I/F部205が、SD Associationにより策定されたSD規格に従って構成されるものとする。演算処理部203から取得された画像の着脱可能デバイス100への転送や、着脱可能デバイス100からのデータの取得等の、着脱可能デバイス100と撮像装置110との間での通信は、SD I/F部205を通じて行われる。
図3に、撮像装置110の機能構成例を示す。撮像装置110は、その機能として、例えば、撮像制御部301、信号処理部302、記憶部303、制御部304、解析部305、デバイス通信部306、及び、ネットワーク通信部307を含む。
撮像制御部301は、撮像部201を介して周囲の環境を撮影するようにする制御を実行する。信号処理部302は、撮像制御部301によって撮影された画像に対して所定の処理を施して、撮影画像のデータを生成する。以下では、この撮影画像のデータを単に「撮影画像」と呼ぶ。信号処理部302は、例えば、撮像制御部301によって撮影された画像を符号化する。信号処理部302は、静止画像に対して、例えば、JPEG(Joint Photographic Experts Group)等の符号化方式を用いて符号化を行う。また、信号処理部302は、動画像に対して、H.264/MPEG−4 AVC(以下では「H.264」と呼ぶ。)、HEVC(High Efficiency Video Coding)等の符号化方式を用いて符号化を行う。また、信号処理部302は、予め設定された複数の符号化方式の中から、例えば撮像装置110の不図示の操作部を介して、ユーザにより選択された符号化方式を用いて、画像を符号化してもよい。
記憶部303は、後述する解析処理の結果を記憶する。なお、本実施形態では、実行される処理が解析処理であるが、任意の処理が実行されてもよい。制御部304は、信号処理部302、記憶部303、解析部305、デバイス通信部306、ネットワーク通信部307を、それぞれが所定の処理を実行するように、制御する。
解析部305は、撮影画像に対して、解析前処理、解析処理、解析後処理の少なくともいずれかを選択的に実行する。解析前処理は、後述の解析処理を実行する前に、撮影画像に対して実行する処理である。本実施形態の解析前処理では、一例として、撮影画像を分割して分割画像を作成する処理が実行されるものとする。解析処理は、入力された画像を解析して得られる情報を出力する処理である。本実施形態の解析処理では、一例として、解析前処理によって得られた分割画像を入力として、人体検出処理、顔検出処理、車両検出処理の少なくともいずれかを実行し、解析処理結果を出力する処理が実行されるものとする。解析処理は、例えば非特許文献1の技術によって、画像に含まれるオブジェクトを検出できるように学習が行われた機械学習モデルを用いて、分割画像中のオブジェクトの位置を出力するように構成された処理でありうる。解析後処理は、解析処理が実行された後に実行される処理である。本実施形態の解析後処理では、一例として、各分割画像に対する解析処理結果に基づいて、各分割画像において検出されたオブジェクトの数を合計した値を処理結果として出力する処理が実行されるものとする。なお、解析処理は、パターンマッチングを行って画像中のオブジェクトを検出し、その位置を出力する処理であってもよい。
デバイス通信部306は、着脱可能デバイス100との通信を行う。デバイス通信部306は、入力されたデータを着脱可能デバイス100が処理可能な形式に変換し、その変換によって得られたデータを着脱可能デバイス100に送信する。また、デバイス通信部306は、着脱可能デバイス100からデータを受信し、受信したデータを撮像装置110が処理可能な形式に変換する。本実施形態では、デバイス通信部306は、変換処理として、小数を浮動小数点形式と固定小数点形式との間で変換する処理を実行するものとするが、これに限られず、他の処理がデバイス通信部306によって実行されてもよい。また、本実施形態では、デバイス通信部306は、着脱可能デバイス100に対してSD規格の範囲内で事前に定められたコマンドシーケンスを送信し、着脱可能デバイス100からの応答を受信することで、着脱可能デバイス100との通信を行うものとする。ネットワーク通信部307は、ネットワーク120を介して、入出力装置130との通信を行う。
(着脱可能デバイスの構成)
図4に、着脱可能デバイス100のハードウェア構成例を示す。着脱可能デバイス100は、一例として、I/F部401、FPGA402、SDコントローラ403、及び、記憶部404を含んで構成される。着脱可能デバイス100は、撮像装置110が有するSD I/F部205の着脱ソケットに挿抜できる形状で、すなわちSD規格に則った形状で成形されるものとする。
I/F部401は、撮像装置110等の装置と着脱可能デバイス100とを接続するためのインタフェース部分である。I/F部401は、例えば、撮像装置110から電源の供給を受け、着脱可能デバイス100内で使用する電源を生成し分配する、電気的な接点端子等を含んで構成される。I/F部401は、撮像装置110のSD I/F部205と同様に、SD規格内で定義(準拠)されている項目に関しては、それに従うものとする。撮像装置110からの画像や設定データの受け取り、FPGA402から撮像装置110へのデータの送信は、I/F部401を介して実行される。
FPGA402は、入出力制御部410、処理切替部411、及び演算処理部412を含んで構成される。FPGA402は、内部の論理回路構造を繰り返し再構成できる半導体デバイスの一種である。FPGA402が実現する処理により、着脱可能デバイス100が装着された装置に、処理機能を追加(提供)することができる。また、FPGA402の再構成機能により、後から論理回路構造を変更することができるため、例えば技術の進歩の早い分野の装置に着脱可能デバイス100を装着することにより、その装置において適時に適切な処理を実行することが可能となる。なお、本実施形態では、FPGAが用いられる例について説明するが、後述する処理を実現可能である限りにおいて、例えば、汎用のASICや専用のLSIが用いられてもよい。FPGA402は、生成される論理回路構造の情報を含んだ設定データが専用のI/Fから書き込まれることにより、又は、その設定データがその専用のI/Fから読み出されることによって、起動される。本実施形態では、この設定データが記憶部404に保持されているものとする。FPGA402は、電源が投入されると、記憶部404から設定データを読み出し、論理回路を生成して起動する。ただし、これに限られず、例えば、着脱可能デバイス内に専用の回路を実装することにより、I/F部401を介して、撮像装置110がFPGA402に設定データを書き込んでもよい。
入出力制御部410は、撮像装置110との間で画像を送受信するための回路、撮像装置110から受信したコマンドを解析する回路、解析した結果に基づいて制御を行う回路、等を含んで構成される。ここでのコマンドは、SD規格に定義されているものであり、入出力制御部410は、それらのうちのいくつかを検出することができる。機能の詳細に関しては後述する。入出力制御部410は、記憶処理の場合はSDコントローラ403へ画像を送信し、画像解析処理の場合は演算処理部412へ画像を送信するように制御を行う。また、入出力制御部410は、処理の切り替えの設定データを受け取った場合は、処理切替部411へ設定データを送信する。処理切替部411は、撮像装置110から受け取った設定データに基づいて、記憶部404から画像解析処理機能の情報を取得し、演算処理部412に書き込むための回路を含んで構成される。画像解析処理機能の情報は、例えば、演算処理部412内で処理される演算の順序や種類、演算の係数などを示す設定パラメータである。
演算処理部412は、画像解析処理機能を実行するために必要な複数の演算回路を含んで構成される。演算処理部412は、処理切替部411から受け取った画像解析処理機能の情報に基づいて、各演算処理を実行して、その処理結果を撮像装置110へ送信し、及び/又は、その処理結果を記憶部404に記録する。このように、FPGA402は、事前に保持された複数の処理機能に対応する設定データに含まれる、実行対象の処理機能の設定データを抽出して、その抽出した設定データに基づいて演算処理部412によって実行される処理内容を書き換える。これにより、着脱可能デバイス100が、その複数の処理機能のうちの少なくともいずれかを選択的に実行することができる。また、新規に追加する処理の設定データを随時追加することにより、撮像装置110側で最新の処理を実行させることができる。なお、以下では、複数の処理機能のそれぞれに対応する複数の設定データを有していることを、複数の処理機能を有すると表現する。すなわち、着脱可能デバイス100のFPGA402が1つの処理機能を実行するように構成されている状態であっても、他の処理機能のための設定データにより演算処理部412の処理内容を変更することができる場合、複数の処理機能を有する、と表現する。
SDコントローラ403は、SD規格に定義されているような公知のコントロールIC(集積回路)であり、SDプロトコルのスレーブ動作の制御と、記憶部404に対するデータの読み書きの制御とを実行する。記憶部404は、例えばNAND型フラッシュメモリによって構成され、例えば、撮像装置110から書き込まれた記憶データ、演算処理部412に書き込まれる画像解析処理機能の情報、FPGA402の設定データ等の各種情報を記憶する。なお、記憶部404に対するデータの書き込みおよび読み出しはブロック(例えば、512BYTEのサイズを有する)を単位として行われる。
図5に、着脱可能デバイス100の機能構成例を示す。着脱可能デバイス100は、その機能構成として、例えば、解析部501及び通信部502を含む。解析部501は、画像に対する解析処理を実行する。解析部501は、例えば、解析処理設定要求を入力された場合に、入力された解析処理を実行可能な状態にするための設定を実行する。また、解析部501は、画像が入力された場合、その入力された画像に対して、実行可能な状態に設定された解析処理を実行する。本実施形態では、実行可能な解析処理は、人体検出処理と顔検出処理であるものとするが、これらに限られない。例えば、事前に記憶された人物が画像に含まれるか否かを判定する処理(後述する顔認証処理)であってもよい。例えば、事前に記憶された人物の画像特徴量と、入力された画像から検出された人物の画像特徴量との一致度合いが算出され、一致度合いが閾値以上の場合に事前に記憶された人物であると判定される。また、プライバシー保護を目的として。入力された画像から検出された人物に対して、所定のマスク画像を重畳したり、モザイク処理を施したりする処理であってもよい。また、人物の特定の行動を機械学習によって学習した学習モデルを用いて、画像中の人物が特定の行動を行っているかを検出する処理であってもよい。さらには、画像中の領域がどのような領域なのかを判定する処理であってもよい。例えば、建物や道路、人物、空等を機械学習によって学習した学習モデルを用いて、画像中の領域がどのような領域なのかを判定する処理であってもよい。以上のように、実行可能な解析処理は、機械学習を用いた画像解析処理にも、機械学習を用いない画像解析処理にも応用可能である。また、上記の各解析処理は、着脱可能デバイス100が単独で行うのではなく、撮像装置110と協働して実行してもよい。通信部502は、I/F部401を介して、撮像装置110との通信を行う。
入出力装置130は、一般的なPC等のコンピュータとして構成され、例えば、プロセッサが、メモリや記憶装置に格納されたプログラムを実行することにより、各種機能を実行することができる。
<処理の流れ>
続いて、システム内で実行される処理の流れの例について説明する。なお、以下の各処理のうち撮像装置110が実行する処理は、例えば、演算処理部203内のプロセッサがメモリ等に記憶されたプログラムを実行することによって実現される。ただし、これは一例に過ぎず、後述の処理の一部又は全部が、専用のハードウェアによって実現されてもよい。また、着脱可能デバイス100や入出力装置130が実行する処理についても、各装置におけるプロセッサがメモリ等に記憶されたプログラムを実行することによって実現されてもよいし、処理の一部又は全部を、専用のハードウェアによって実現してもよい。
(全体の流れ)
図6に、システムで実行される画像解析処理の一連の流れを概略的に示す。本処理では、まず、ユーザによって、撮像装置110に着脱可能デバイス100が装着される(S601)。撮像装置110は、着脱可能デバイス100の初期化シーケンスを実行する(S602)。この初期化シーケンスでは、撮像装置110と着脱可能デバイス100との間で所定のコマンドが送受信されることにより、撮像装置110が、着脱可能デバイス100を使用可能な状態となる。その後、撮像装置110は、着脱可能デバイス100が実行可能な処理を把握し、ローカルで実行可能な(撮像装置110単体で又は撮像装置110と着脱可能デバイス100の組み合わせで実行可能な)処理を把握する(S603)。なお、着脱可能デバイス100は、任意の処理を実行可能なように構成されうるが、撮像装置110側で実行されるべき処理と無関係な処理については考慮されなくてもよい。一例において、撮像装置110は、例えば入出力装置130から事前に取得した実行されうる処理のリストを保持しておいてもよい。この場合、撮像装置110は、着脱可能デバイス100が実行可能な処理を示す情報を着脱可能デバイス100から取得した際に、その処理がリストに含まれているか否かによって、実行されうる処理のみを把握することができる。
続いて、撮像装置110は、実行する処理を決定し、必要に応じて着脱可能デバイス100の設定を実行する(S604)。すなわち、実行対象として決定された処理の少なくとも一部が着脱可能デバイス100によって実行される場合に、その処理のための着脱可能デバイス100の設定が実行される。この設定においては、例えば、実行対象の処理に対応する設定データを用いたFPGA402の再構成が行われうる。そして、撮像装置110または着脱可能デバイス100が、解析処理を実行する(S605)。その後、撮像装置110は、後処理を実行する(S606)。なお、S605とS606の処理は繰り返し実行される。図6の処理は、例えば、着脱可能デバイス100が装着された際に実行されるが、例えば着脱可能デバイス100が取り外された際にも、S603の処理が再度実行されるようにするなど、図6の処理の少なくとも一部が繰り返し実行されてもよい。
S603〜S606についてさらに説明する。S603で、撮像装置110の制御部304は、記憶部303に記憶されている、撮像装置110自身の解析部305において実行可能な処理のリストである第1処理リストを読み出す。続いて、制御部304は、デバイス通信部306を制御して、装着された着脱可能デバイス100の特定のアドレスへの読み出し要求(リードコマンド)を発行する。以下では、この特定のアドレスを「アドレスA」と呼ぶ場合がある。なお、アドレスAに格納されているデータの詳細については後述する。制御部304は、アドレスAから読み出したデータに基づいて、着脱可能デバイス100が有する処理機能のリスト(第2処理リスト)を生成する。
入出力装置130では、撮像装置110から第1処理リストと第2処理リストを、ネットワークを介して取得し、画面表示等によってユーザに提示する。ユーザは、操作部を介して、表示されたリストから実行すべき解析処理(以下では、「実行対象処理」と呼ぶ。)を選択する。入出力装置130は、実行対象処理の選択結果を、撮像装置110へ通知する。
S604で、制御部304は、実行対象処理が第2処理リストに含まれる場合、デバイス通信部306を制御して、実行対象処理の設定要求を着脱可能デバイス100に送信する。着脱可能デバイス100の通信部502は、実行対象処理の設定要求を撮像装置110から受信する。通信部502は、撮像装置110から受信した実行対象処理の設定要求を、解析部501に出力する。解析部501は、通信部502から入力された実行対象処理の設定要求に基づいて、着脱可能デバイス100が実行対象処理を実行可能な状態となるようにするための設定を実行する。例えば、処理切替部411が、設定要求に応じて演算処理部412の実行対象処理を切り替える。通信部502は、例えば設定処理が完了した後に、設定完了通知を撮像装置110へ送信する。
S605では、制御部304は、実行対象処理が第2処理リストに含まれている場合、デバイス通信部306を制御して、解析処理対象の画像を着脱可能デバイス100に送信する。例えば、制御部304は、解析処理対象の画像の書き込み要求(ライトコマンド)を発行することにより、着脱可能デバイス100へ解析処理対象の画像を送信する。着脱可能デバイス100の通信部502は、解析処理対象の画像を撮像装置110から受信し、撮像装置110から受信した画像を解析部501に出力する。解析部501は、通信部502から入力された画像に対して、S604で設定された実行対象処理を実行し、記憶部404に格納する。
その後、S606において、通信部502は、撮像装置110からの解析処理結果の読み出し要求(リードコマンド)に応じて、解析部501による処理によって得られた解析処理結果を記憶部404から読み出して、撮像装置110へ送信する。撮像装置110の制御部304は、デバイス通信部306を制御して、着脱可能デバイス100から解析処理結果を受信する。その後、制御部304は、解析部305を制御して、解析処理結果に対して解析後処理を実行する。
(撮像装置110と着脱可能デバイス100との間の通信)
・着脱可能デバイスのインタフェース構成
ここで、撮像装置110と着脱可能デバイス100との通信について説明する。撮像装置110の演算処理部203と着脱可能デバイス100のSDコントローラ403は、撮像装置110のSD I/F部205のデバイス挿入用ソケットを介し、電源ライン、GNDライン、クロックライン、コマンドライン、データラインで接続される。なお、クロックライン、コマンドライン、及び、データラインは、FPGA402を経由する形で接続されるものとする。クロックラインでは、演算処理部203から出力される同期用のクロックが通信される。コマンドラインでは、演算処理部203からSDコントローラ403への動作要求用に発行するコマンド、コマンドに対するSDコントローラ403から演算処理部203へのレスポンスが通信される。データラインでは、演算処理部203からの書き込みデータ、着脱可能デバイス100からの読み出しデータが通信される。また、演算処理部203は、SD I/F部205のデバイス挿入用ソケットのデバイスディテクト信号のHighとLowを判別することにより、着脱可能デバイス100が挿入されているか否かを認識することができる。
・着脱可能デバイスの初期設定
演算処理部203は、SDコントローラ403に対して電源供給後にコマンドライン上でコマンドを発行する。そして、演算処理部203は、SDコントローラ403からのレスポンスと、SDカードとしてのデバイス情報を示す出力データを受信したことに応じて、データの通信用の電圧、通信速度(クロック周波数)等の設定を行う。
・コマンドとレスポンスの構成
図7に、コマンドライン上で通信されるコマンドとレスポンスの構成例を示す。これらのコマンドとレスポンスはSD規格に従う構成を有する。演算処理部203からSDコントローラ403に対して発行されるコマンド701は、コマンドナンバー部704と、コマンド引数部705と、誤り訂正用データ部706とを含んで構成される。コマンドナンバー部704には、コマンドの種別を示す値が記述される。例えば、コマンドナンバー部704に値「23」が格納されている場合、そのコマンドがデータブロック数を指定するブロック数指定コマンドであることが示される。また、コマンドナンバー部704に値「25」が格納されている場合、そのコマンドがマルチライトコマンドであることが示され、コマンドナンバー部704に値「12」が格納されている場合、そのコマンドがデータ転送停止コマンドであることが示される。コマンド引数部705では、コマンドの種別に応じて転送データブロック数、メモリの書き込み・読み出しアドレス等の情報が指定される。また、コマンドの最初のビットには、コマンドの開始位置を示すコマンドスタートビット702が付加され、コマンドの最後のビットにはコマンドの終了を示すコマンドエンドビット707が付加される。また、コマンドスタートビット702の後ろに、撮像装置110から着脱可能デバイス100に対して出力された信号であることを示すディレクションビット703も付加される。
演算処理部203からのコマンドに対してSDコントローラ403から返されるレスポンス711は、どのコマンドに対するレスポンスかを示すレスポンスナンバー部714と、レスポンス引数部715と、誤り訂正用データ部716とを含む。また、レスポンスの最初のビットにはレスポンスの開始位置を示すレスポンススタートビット712が付加され、レスポンスの最後のビットにはレスポンスの終了位置を示すレスポンスエンドビット717が付加される。また、レスポンススタートビット712の後ろに着脱可能デバイス100から撮像装置110に対して出力された信号であることを示すディレクションビット713も付加される。レスポンス引数部715には、コマンド種別に応じてSDカードのステータス等の情報が格納される。
・データの転送
次に、演算処理部203と着脱可能デバイス100とのデータの送受信の方法を説明する。上述したように、SD I/F部205では、データの書き込み及び読み出し共にブロック単位でデータの転送が行われる。ブロックは、例えば、記憶部404におけるデータの書き込みおよび読みだしの単位であり、例えば512BYTEのサイズを有する。
演算処理部203が着脱可能デバイス100に対して複数ブロックのデータを転送する方法は以下の2つの方法がある。1つ目の方法では、転送データのブロック数指定コマンドによってブロック数が指定された後に、マルチライトコマンドにより、指定されたブロック数だけデータが転送される。ブロック数指定コマンドでは、コマンド引数部705において書き込みデータのブロック数が指定され、マルチライトコマンドでは、コマンド引数部705においてデータが書き込まれるべき記憶部404のアドレスが指定される。2つ目の方法では、ブロック数指定コマンドが発行されることなくマルチライトコマンドが発行されることにより、データ転送が開始され、データ転送が終わった時点で転送停止コマンドが発行されることによって処理が終了する。このとき、マルチライトコマンドのコマンド引数部705において、データが書き込まれるべき記憶部404のアドレスのみが指定される。尚、どちらの書き込みにおいてもSDコントローラ403はマルチライトコマンドで指定されたアドレスから書き込みを開始し、1ブロック分のデータを入力するごとに書き込みアドレスをインクリメントして記憶部404へのデータの書き込みを行う。演算処理部203は2つの書き込み方法を任意に切り替えることが可能である。
なお、記憶処理が行われる場合、FPGA402は、演算処理部203から送られるコマンドとデータをそのままSDコントローラ403に入力し、SDコントローラ403は、受信したデータをコマンドで指定された記憶部404のアドレスに格納する。画像解析処理が行われる場合には、FPGA402は、演算処理部203から送られるデータに対して解析処理を実行し、その処理結果のデータと、記憶部404の所定のアドレスを指定する情報を、SDコントローラ403に出力する。SDコントローラ403は、指定された記憶部のアドレスに処理結果を格納する。
演算処理部203が着脱可能デバイス100から複数ブロックのデータを読み出す方法は以下の2つの方法がある。1つ目の方法では、ブロック数指定コマンドでブロック数が指定されてからマルチリードコマンドが発行され、指定されたブロック数だけデータが読み出される。ブロック数指定コマンドでは、コマンド引数部705において読み出しデータのブロック数が指定され、マルチリードコマンドのコマンド引数部705においてデータの読み出し元のメモリのアドレスが指定される。2つ目の方法では、ブロック数指定コマンドが発行されることなくマルチリードコマンドが発行されることにより、データの読み出しが開始され、転送停止コマンドが発行されることによって処理が終了する。尚、どちらの読み出しにおいてもSDコントローラ403はマルチリードコマンドで指定されたアドレスから読み出しを開始し、1ブロック分のデータを出力するごとに読み出しアドレスをインクリメントして記憶部404に格納されているデータを読み出す。演算処理部203は2つの読み出し方法を任意に切り替えることが可能である。
なお、書き込みデータ、読み出しデータが1ブロックの場合には、シングルライトコマンド、シングルリードコマンドが発行されることにより、ブロック数指定コマンド、転送停止コマンドが発行されることなく、データの書き込み、読み出しが実行されうる。シングルライトコマンド、シングルリードコマンドにおいても、上述の説明と同様に、コマンド引数部705において、アクセス対象の記憶部404のアドレスが指定される。
演算処理部203は、着脱可能デバイス100に対して書き込みを行うことにより、記憶処理または画像解析処理の対象となるデータを着脱可能デバイス100へ送信することができる。また、演算処理部203は、着脱可能デバイス100に対して読み出しを行うことにより、記憶部404に記憶された画像データ、画像解析処理の処理結果、着脱可能デバイス100が保有する画像解析の処理機能の情報を取得することができる。
・画像解析処理機能の情報確認
本実施形態の着脱可能デバイス100は、記憶部404の特定のアドレスAに、自装置が有する処理機能の情報を格納する。撮像装置110の演算処理部203は、このアドレスAに対してマルチリードコマンド又はシングルリードコマンドを発行することにより、着脱可能デバイス100が有する処理機能の情報を確認することができる。ここでの処理機能の情報は、処理機能を保有しているか否か、処理が実行された場合に完了するまでの所要時間、処理結果のデータサイズ、処理結果が格納されるアドレス情報を含む。図8に、この処理機能の情報の一例を示す。処理機能保有フラグ801は、着脱可能デバイス100が画像解析処理機能を有していることを示している。撮像装置110は、処理機能保有フラグ801を確認することにより、着脱可能デバイス100が画像解析処理機能を有しているか否かを判定する。処理機能分類802は、着脱可能デバイス100が有している解析処理を示す。入力データサイズ803及び処理データ数804は、各々の処理機能のデータの入力仕様に関する情報を示す。また、推定処理時間805は、データ入力から処理結果出力までに掛かる時間を示し、処理結果データ数806は処理結果のデータ数を示す。また、処理結果格納アドレス807は、記憶部404のどこに処理結果が格納されるかを示す。演算処理部203は、図8に示すような記憶部404のアドレスAのデータを読み出すことにより、図9に示すような処理機能テーブルを取得することができる。なお、本明細書においてデータ数とは、データの量(データのサイズ)に対応するブロック数である。
また、着脱可能デバイス100は、演算処理部203からアドレスAに対するリードコマンドが発行されない場合には、自装置が装着された機器が画像解析処理機能を使用しない機器であると判断する。この場合、着脱可能デバイス100は、転送されるデータに関しては記憶部404に対する記憶処理のみを実行するようにしうる。これにより、着脱可能デバイス100は、画像解析処理機能を必要としない機器に対しては、メモリデバイスとしてのみ機能することが可能となる。ここでは、記憶部404の特定のアドレスAに処理機能の情報を格納しておく方法を示したが、これに限定されない。例えば、着脱可能デバイス100の初期設定時に使用されるコマンドに対するレスポンスにおける、レスポンス引数部715に、処理機能の情報を付加するようにしてもよい。
なお、撮像装置110は、例えば、着脱可能デバイス100の初期化設定終了後に、記憶部404のアドレスAの読み出しを実行する。また、撮像装置110は、ソケットにおいてデバイスのディテクトがされなくなった場合に、読み込んだ情報を破棄する。撮像装置110は、情報の破棄の後にデバイスがソケットに挿入された場合、初期化設定終了後に再度アドレスAの値を読み出す。これにより、撮像装置110は、異なる着脱可能デバイスが挿入された場合に、その着脱可能デバイスの保有機能の情報を読み出し、設定することができる。
<処理結果の分散格納と結合読み出しの処理>
次に着脱可能デバイス100上での画像解析処理の処理結果を着脱可能デバイス100の記憶部404に分散して格納する方法に関して図10と図11を用いて説明する。図10は、着脱可能デバイス100によるデータの格納処理を説明するフローチャートである。図11は、着脱可能デバイス100による画像データと解析処理結果の格納を説明する図である。
FPGA402の入出力制御部410は、SD I/F部401を介して撮像装置110から、画像データを転送するためのライトコマンドを受信する(S1001)。このライトコマンドは、例えば、演算処理部203で発行され、SD I/F部205を介して着脱可能デバイス100に送信され、I/F部401により受信される。FPGA402は、FPGA402は、受信されたライトコマンドのコマンドナンバー部704が示すコマンド種別、コマンド引数部705の内容を確認し、転送される画像データが画像解析処理の対象か否かを判定する(S1002)。
S1002で画像解析処理の対象でないと判定された場合、FPGA402は、記憶処理を行う。すなわち、FPGA402は、撮像装置110から発行されたライトコマンドで指定されたアドレスへ画像データが格納されるように、SDコントローラ403に対してライトコマンドを発行する(S1003)。以下、撮像装置110から発行されたライトコマンドを外部のライトコマンド、FPGA402がSDコントローラ403に対して発行するライトコマンドを内部のライトコマンドという場合がる。S1003で発行される内部のライトコマンドは、外部のライトコマンドにより指定されたアドレス1101に、撮像装置110から転送される画像データ1100が格納されるように指示する。例えば、FPGA402は、演算処理部203から発行された外部のライトコマンドと同じライトコマンドをSDコントローラ403に対して1回発行する(S1004)。例えば、図11に示すように、画像データ1100は演算処理部203から送信されたままの形でSDコントローラ403に送信され、SDコントローラ403はライトコマンドにより指定された記憶部404のアドレス1101に画像データ1100を格納する。
一方、S1002で、転送される画像データが画像解析処理の対象であると判定された場合、FPGA402は、撮像装置110から転送された画像データを演算処理部412に提供して画像解析処理を実行し(S1005)、処理結果を取得する(S1006)。FPGA402は、画像解析処理により得られた処理結果を、複数の部分データに分割し(S1007)、各々の部分データをアドレスが連続しないように記憶部404に格納する(S1008〜S1009)。
例えば、図11において、画像データ1100が画像解析処理の対象であると判定された場合には、FPGA402は画像データ1100に対して画像解析処理を実行して(S1005)、その処理結果1102を取得する(S1006)。次に、FPGA402は、得られた処理結果1102を複数の部分データA〜部分データDに分割する(S1007)。FPGA402は、各々の部分データが、アドレスが連続せずに記憶部404に格納されるように、SDコントローラ403に対してライトコマンドを発行する。すなわち、FPGA402は、分割した処理結果の個数(部分データの個数)分、SDコントローラ403に対して、それぞれ異なるアドレス(1103a〜1103d)を指定したライトコマンドを複数回発行する(S1008)。SDコントローラ403は、発行された複数のライトコマンドのそれぞれに従って、分割された処理結果(部分データA〜部分データD)を、それぞれの指定されたアドレス(1103a〜1103d)に格納する(S1009)。
なお、部分データを格納するための複数のアドレスは、複数の部分データの格納先のアドレスが連続しないように生成される。その生成方法は、例えば、ランダム値をベースとして生成され得る。また、FPGA402は、処理結果の分割数1151、処理結果を格納したアドレス1152、および格納した順序1153を内部メモリもしくは記憶部404の所定の領域に処理結果分割テーブル1150(図11)として保存しておく。また、各部分データのサイズは所定値であってもよいし、画像解析ごとに設定されてもよいし、各部分データのサイズを異ならせてもよい。各部分データのサイズは処理結果分割テーブルに記録されてもよい(サイズ1154)。
次に、図12を用いて画像解析処理の処理結果を読み出し・結合する方法について説明する。着脱可能デバイス100のFPGA402は、I/F部401を介して演算処理部203から発行されるリードコマンドを受信する(S1201)。FPGA402は、受信されたリードコマンドが画像解析処理の処理結果の読み出しを要求するリードコマンドであるか否かを、リードコマンドに含まれているパラメータから判定する(S1202)。演算処理部203は、画像解析処理の処理結果の読み出しを行う場合には、例えば、読み出しデータ数が画像解析処理の処理結果のデータ数と、読み出しアドレスが処理結果の格納アドレスとそれぞれ一致するように指定する。処理結果のデータ数と処理結果の格納アドレスは、図9に示した処理機能テーブルから得られる。読み出しデータ数が処理結果のデータ数と一致し、読み出しドレスが処理結果の格納アドレスと一致するリードコマンドを、以下、処理結果読み出し要求ともいう。FPGA402はリードコマンドで指定されたデータブロック数と読み出しアドレスがそれぞれ、処理結果のデータ数、処理結果の格納アドレスと一致するかを確認し、当該リードコマンドが処理結果読み出し要求か否かを判定する。なお、FPGA402は、ブロック指定コマンドと読みマルチリードコマンドのそれぞれのコマンド引数部705の値を読むことでデータブロック数と出しアドレスを取得することができる。
S1201で受信されたリードコマンドが処理結果読み出し要求ではないと判定された場合には、FPGA402はSDコントローラ403に対して、演算処理部203が発行したリードコマンドに対応するリードコマンドを1回発行する(S1203)。撮像装置が発行するリードコマンドを外部のリードコマンド、FPGA402が発行するリードコマンドを内部のリードコマンドともいう。SDコントローラ403は、発行されたリードコマンドに従い、指定されたアドレスのデータを指定されたブロック数だけ記憶部404から読み出す。FPGA402は、読み出されたデータを、そのままI/F部401から演算処理部203に送信する(S1204)。こうして、着脱可能デバイス100は、外部からのリードコマンドにより読み出しが要求されたデータを撮像装置110に送信する。
S1202で、リードコマンドが処理結果読み出し要求であると判断された場合は、FPGA402は、保存されている処理結果分割テーブルから、分割された複数の部分データが格納されている複数のアドレスを取得する。そして、FPGA402は、複数のアドレスをそれぞれ指定する複数の内部のリードコマンドをSDコントローラ403に対して発行することで、複数の部分データを記憶部404から取得する(S1205)。この時、内部のリードコマンドに設定されるアドレスは処理結果分割テーブル1150から取得される。リードコマンドにデータサイズの指定が必要な場合は、処理結果分割テーブル1150のサイズ1154が参照され得る。図11の例では、アドレス1103a〜1103dを指定する4つのリードコマンドが発行され、部分データA〜Dが取得される。
FPGA402は、読み出した部分データA〜データDを処理結果分割テーブル1150に記録されている「順序」を参照して結合し、分割前の処理結果を生成する(S1206)。図11の例では、データA〜Dが元の処理結果1102となるように再構成される。その後、FPGA402は、再構成された処理結果1102を、I/F部401を介して演算処理部203に送信する(S1207)。
なお、上記では処理結果1102を部分データA〜部分データDの4つに分けてアドレス1103a〜1103dに格納して説明を行ったが、もちろんこれに限定されるものではなく、処理結果の分割数やアドレスは任意に変更が可能である。また、例えば1つの画像データを複数の領域毎に分割して複数の分割領域のそれぞれについて処理結果を出力するような画像解析処理である場合には、分割領域ごとの処理結果を記憶部404の異なるアドレスの複数の領域に格納するようにしてもよい。すなわち、複数の分割領域に対応する複数の処理結果を、記憶部404の複数領域に分散して格納するようにしてもよい。
以上のように、第1実施形態によれば、処理結果のデータ数や処理結果格納アドレスを把握していない機器では処理結果はただのデータの羅列として読み出されるため、処理結果のデータを容易に解析されるのを防ぐことが可能となる。
[第2実施形態]
第1実施形態では、処理結果の読み出し要求ではないリードコマンドによって部分データが格納されている領域が読み出された場合に、部分データはそのまま出力される。第2実施形態では、処理結果の読み出し要求ではないリードコマンドによって部分データが格納されている領域が読み出された場合に、部分データをマスクして出力する。以下、処理結果をマスクして出力する処理について、図13を用いて説明する。なお、全体の構成と処理結果のデータの分割格納に関しては第1実施形態で説明したとおりである。また、図13において、第1実施形態(図12)と同様の処理には同一のステップ番号を付してある。
FPGA402は、リードコマンドのパラメータ(コマンド引数部705)を確認し、処理結果の読み出し要求か否かの判定を行う(S1202)。リードコマンドが処理結果の読み出し要求であると判定された場合の処理は、第1実施形態(S1205〜S1207)と同様である。リードコマンドが処理結果の読み出し要求ではないと判断された場合、FPGA402は、リードコマンドのアドレスとデータ数によって指定される読み出し範囲が、分割された処理結果(部分データ)が格納された領域を含むか否かを判定する(S1301)。指定された読み出しの範囲が、分割された処理結果(部分データ)が格納されている領域を含まない場合は、FPGA402は、図12で説明したS1203、S1204の処理を実行する。指定された読み出し範囲が、分割された処理結果を格納している領域を含む場合は、FPGA402は、その領域のブロックの読み出しデータとして、意味を持たないランダムな値を演算処理部203に送信する(S1302)。
尚、ブロック指定コマンドを使用しないマルチリードコマンドが発行された場合にも、FPGA402は、処理結果(部分データ)が読み出される間はランダム値を出力するように制御する。例えば、FPGA402はマルチリードコマンドで指定されたアドレスを保存しておき、転送停止コマンドが発行されるまでの間(データが読み出され続けている間)、読み出されたブロック数を監視する。そして、FPGA402は、指定されたアドレスと読み出されたブロック数から、処理結果が格納されているアドレスを読み出しているタイミング検出し、その期間はランダム値を演算処理部203に出力するようにする。
ここでは処理結果の読み出し要求でないリードコマンドに対して意味を持たないランダムの値を出力するようにしたが、これに限定されるものではなく、要求のあったデータ分だけオール'0'もしくはオール'1'のような固定値を返すようにしてもよい。
第2実施形態によれば、処理結果の読み出し要求手順を把握できていない装置から画像解析処理の処理結果を読み出すことを困難にすることが可能となる。
[第3実施形態]
第3実施形態では、画像解析処理の処理結果を記憶部404の1つのセルで保持できるデータ量(1ブロックのデータ量)よりも小さいデータに分割して保存することにより、処理結果の保護を強固にする。全体の構成、処理は第1実施形態(図10、図12)と同様である。以下では、主として第1実施形態と異なる部分を説明する。
SD規格ではデータの書き込み、読み出しを行う単位である1ブロックは、512BYTEである。S1007において、FPGA402は、S1006で取得した処理結果を512BYTEよりも小さいデータ量のデータに分割し、ブロックの残りの空き部分を'0'などの意味を持たない数値で埋める。例えば、50ブロック分の処理結果がある場合に、256BYTEずつのデータに分割し、それぞれの分割されたデータに256BYTE分の'0'を付加し、100ブロックのデータとして記憶部404に格納する。このとき1ブロックのデータのうちのどの範囲が処理結果にあたるかを示すデータ構成情報を処理結果分割テーブルに格納しておく。また、このとき100ブロックのデータすべてを個別の部分データとして記憶部404の異なる領域に分散して格納するようにしてもよいし、任意のブロック数のデータをまとめて1つの部分データとして異なる領域に格納されてもよい。S1008では、こうして得られた部分データを記憶部404に格納するために内部のライトコマンドを複数回発行する。
次に、処理結果の読み出し、結合の方法に関して説明する。FPGA402は演算処理部203から処理結果の読み出し要求が発行された場合には(S1202でYES)、格納している処理結果分割テーブルを基に異なる領域にそれぞれ格納した100ブロック分のデータを読み出す(S1205)。次にデータ構成情報をもとに'0'で埋めた部分を削除し、データを結合し、50ブロックの処理結果に復元して演算処理部203にデータを送信する(S1206)。分割したデータに対して処理結果の読み出し要求以外のリードコマンドが発行された場合には、'0'で埋めた部分を含むそのまま状態で演算処理部203にデータが送信される。ここでは、処理結果以外の意味の持たない部分のデータに関して説明のため'0'で埋めるように説明したが、これに限定されるものではなく、他の所定値、ランダム値などで埋めるようにしてもよい。
以上のように、第3実施形態によれば、処理結果がブロックよりも小さいサイズの複数のデータへ分割され、分割された複数のデータの各々に所定値またはランダム値を付加して1ブロックのサイズのデータが生成される。こうして生成された1ブロックのサイズのデータを用いて処理結果の部分データが生成される。結果、第3実施形態によれば、処理結果の読み出し要求を把握していない機器から処理結果の領域のデータが読み出された場合には、意味のないデータを含むデータが読み出されるため、処理結果として復元するのがより困難になる。
以上のように、各実施形態によれば、処理結果を読み出すためのコマンドを正しく生成できない撮像装置(例えば、解析処理の結果が格納されるアドレスとそのデータサイズを知らない撮像装置)は、正しい解析結果を読み出すことができない。
なお、第1実施形態〜第3実施形態では、着脱可能デバイス100を装着する電子機器として撮像装置を例示したが、これに限られるものではない。また、上記実施形態では、撮像装置を例示したために画像データを演算処理対象のデータとして入力するものとして説明したが、これに限られるものではない。すなわち、着脱可能デバイス100は、解析処理の対象となるデータが入力されると、そのデータを解析して得られた処理結果を、複数の部分データに分けて格納する構成であり、データの内容は何等限定されるものではない。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
100a〜100d:着脱可能デバイス、110a〜110d:撮像装置、120:ネットワーク、130:入出力装置、201:撮像部、202:画像処理部、203:演算処理部、204:配信部、205:SD I/F部、301:撮像制御部、302:信号処理部、303:記憶部、304:制御部、305:解析部、306:デバイス通信部、307:ネットワーク通信部、401:I/F部、402:FPGA、403:SDコントローラ、404:記憶部、501:解析部、502:通信部

Claims (16)

  1. 電子機器に着脱可能な、記憶部を有する着脱可能デバイスであって、
    前記電子機器から解析のために入力されたデータを解析する解析手段と、
    前記解析手段により得られた処理結果を、複数の部分データに分割し、アドレスが連続しないように前記記憶部の複数の領域に格納する格納手段と、
    前記電子機器からのリードコマンドに含まれているパラメータに基づいて、前記リードコマンドが前記処理結果を読み出すコマンドであるか否かを判断する判断手段と、
    前記リードコマンドが前記処理結果を読み出す要求であると判断された場合に、前記複数の部分データを前記記憶部の前記複数の領域から読み出し、前記処理結果に構成して出力する出力手段と、を備えることを特徴とする着脱可能デバイス。
  2. 前記格納手段は、前記電子機器から前記記憶部への保存のために入力されたデータを、前記記憶部のアドレスが連続する領域に格納することを特徴とする請求項1に記載の着脱可能デバイス。
  3. 前記判断手段は、前記リードコマンドに含まれている、読み出しのアドレスとデータのサイズを指定するパラメータに基づいて前記リードコマンドが前記処理結果を読み出すコマンドであるか否かを判断することを特徴とする請求項1または2に記載の着脱可能デバイス。
  4. 前記判断手段により、前記処理結果を読み出す要求でないと判断された場合に、前記記憶部の、前記リードコマンドにより指定されたアドレスから前記リードコマンドにより指定されたサイズのデータを読み出して出力することを特徴とする請求項1乃至3のいずれか1項に記載の着脱可能デバイス。
  5. 前記判断手段は、前記リードコマンドにより指定されるアドレスが前記処理結果を格納するアドレスであり、前記リードコマンドにより指定されるデータのサイズが前記処理結果のデータのサイズに対応している場合、前記リードコマンドが前記処理結果を読み出す要求であると判断することを特徴とする請求項1乃至4のいずれか1項に記載の着脱可能デバイス。
  6. 前記解析手段により得られる前記処理結果を格納するアドレスと前記処理結果のデータのサイズが前記記憶部の所定のアドレスに格納されていることを特徴とする請求項1乃至5のいずれか1項に記載の着脱可能デバイス。
  7. 前記格納手段は、前記データを解析するための前記電子機器からのコマンドに応じて、前記複数の部分データを前記記憶部の前記複数の領域に格納するために複数回のライトコマンドを発行することを特徴とする請求項1乃至6のいずれか1項に記載の着脱可能デバイス。
  8. 前記格納手段は、前記データを格納するための前記電子機器からのコマンドに応じて、前記記憶部へ前記データを格納するためのライトコマンドを1回のみ発行することを特徴とする請求項1乃至7のいずれか1項に記載の着脱可能デバイス。
  9. 前記出力手段は、前記電子機器からのリードコマンドが前記処理結果を読み出すことを要求するコマンドであると判断された場合に、前記記憶部の前記複数の領域から前記複数の部分データを読み出すための複数のリードコマンドを発行することを特徴とする請求項1乃至8のいずれか1項に記載の着脱可能デバイス。
  10. 前記解析手段は、解析のために入力されたデータを複数の分割領域に分割して解析処理を行い、
    前記格納手段は、前記複数の分割領域に対応する複数の処理結果を前記複数の部分データとして格納することを特徴とする請求項1乃至9のいずれか1項に記載の着脱可能デバイス。
  11. 前記処理結果を読み出す要求ではないと判断された前記電子機器からのリードコマンドが前記部分データを格納している領域からのデータの読み出しを指定している場合、前記出力手段は、前記部分データとは無関係な値を出力することを特徴とする請求項1乃至10のいずれか1項に記載の着脱可能デバイス。
  12. 前記無関係な値は、ランダム値または固定値であることを特徴とする請求項11に記載の着脱可能デバイス。
  13. 前記格納手段は、前記処理結果を、前記記憶部におけるデータの読み出し及び書き込みの単位であるブロックよりも小さいサイズの複数のデータへ分割し、前記分割された複数のデータの各々に所定値またはランダム値を付加して1ブロックのサイズのデータを生成し、これを用いて前記部分データを生成することを特徴とする請求項1乃至10のいずれか1項に記載の着脱可能デバイス。
  14. 前記出力手段は、前記リードコマンドが前記処理結果を読み出す要求であると判断された場合に、前記記憶部から読み出された前記ブロックから部分データを抽出して結合することで前記処理結果を構成することを特徴とする請求項13に記載の着脱可能デバイス。
  15. 電子機器に着脱可能な、記憶部を有する着脱可能デバイスの制御方法であって、
    前記電子機器から解析のために入力されたデータを解析する解析工程と、
    前記解析工程により得られた処理結果を、複数の部分データに分割し、アドレスが連続しないように前記記憶部の複数の領域に格納する格納工程と、
    前記電子機器からのリードコマンドに含まれているパラメータに基づいて、前記リードコマンドが前記処理結果を読み出すコマンドであるか否かを判断する判断工程と、
    前記リードコマンドが前記処理結果を読み出す要求であると判断された場合に、前記複数の部分データを前記記憶部の前記複数の領域から読み出し、前記処理結果に構成して出力する出力工程と、を備えることを特徴とする着脱可能デバイスの制御方法。
  16. コンピュータを、請求項1乃至14のいずれか1項に記載された着脱可能デバイスの各手段として機能させるためのプログラム。
JP2020058305A 2020-03-27 2020-03-27 着脱可能デバイスおよびその制御方法、プログラム Pending JP2021158576A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020058305A JP2021158576A (ja) 2020-03-27 2020-03-27 着脱可能デバイスおよびその制御方法、プログラム
US17/211,573 US11363160B2 (en) 2020-03-27 2021-03-24 Detachable device, control method thereof, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020058305A JP2021158576A (ja) 2020-03-27 2020-03-27 着脱可能デバイスおよびその制御方法、プログラム

Publications (1)

Publication Number Publication Date
JP2021158576A true JP2021158576A (ja) 2021-10-07

Family

ID=77856645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020058305A Pending JP2021158576A (ja) 2020-03-27 2020-03-27 着脱可能デバイスおよびその制御方法、プログラム

Country Status (2)

Country Link
US (1) US11363160B2 (ja)
JP (1) JP2021158576A (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4877000B2 (ja) 2007-03-26 2012-02-15 株式会社日立製作所 無線通信方法、無線移動機および無線基地局収容装置
JP2010282429A (ja) * 2009-06-04 2010-12-16 Canon Inc 画像処理装置及びその制御方法

Also Published As

Publication number Publication date
US11363160B2 (en) 2022-06-14
US20210306509A1 (en) 2021-09-30

Similar Documents

Publication Publication Date Title
CN112752018B (zh) 图像捕获装置、控制方法及计算机可读存储介质
US11570350B2 (en) Device, control method, and storage medium
US11825194B2 (en) Image capturing apparatus and method for controlling the same, and non-transitory computer-readable storage medium
US20210274079A1 (en) Image capturing apparatus, device, control method, and computer-readable storage medium
US11729515B2 (en) Imaging apparatus, information processing method, and recording medium for determining whether an image analysis of a predetermined image is complete
JP2021136666A (ja) 撮像装置、デバイス、制御方法、およびプログラム
JP2021048573A (ja) 撮像装置、制御方法及びプログラム
JP7361551B2 (ja) デバイス、制御方法、及びプログラム
JP2021158576A (ja) 着脱可能デバイスおよびその制御方法、プログラム
JP7417455B2 (ja) 電子機器及びその制御方法、プログラム
JP2021048575A (ja) デバイス、撮像装置、制御方法及びプログラム
EP4221244A1 (en) Image capturing apparatus, control method of image capturing apparatus, and computer program
EP4221245A1 (en) Image capturing apparatus, attachable device, control method thereof, and computer program
JP2021072611A (ja) 撮像装置、制御方法、及び、プログラム
EP4027218B1 (en) Detachable electrical device and control method thereof
US11985412B2 (en) Detachable device and control method thereof
JP7325281B2 (ja) 撮像装置、制御方法及びプログラム
US11843847B2 (en) Device, information processing apparatus, control method therefor, and computer-readable storage medium
JP2022072874A (ja) 撮像装置、及び、その制御方法、及び、プログラム
JP2022039941A (ja) 情報処理装置、制御方法、及び、プログラム
JP2021136663A (ja) デバイス、通信装置、方法、およびプログラム
JP2022167153A (ja) 情報処理装置およびその制御方法
JP2022164050A (ja) 情報処理装置およびその制御方法
JP2023028994A (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

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240411