JP2022108140A - 着脱可能デバイスおよびその制御方法 - Google Patents
着脱可能デバイスおよびその制御方法 Download PDFInfo
- Publication number
- JP2022108140A JP2022108140A JP2021003014A JP2021003014A JP2022108140A JP 2022108140 A JP2022108140 A JP 2022108140A JP 2021003014 A JP2021003014 A JP 2021003014A JP 2021003014 A JP2021003014 A JP 2021003014A JP 2022108140 A JP2022108140 A JP 2022108140A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- processing
- detachable
- storage unit
- reconfiguration
- 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
Links
- 238000000034 method Methods 0.000 title claims description 56
- 238000004891 communication Methods 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 description 180
- 238000003384 imaging method Methods 0.000 description 100
- 230000008569 process Effects 0.000 description 44
- 238000004458 analytical method Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 27
- 238000010191 image analysis Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 230000007704 transition Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/617—Upgrading or updating of programs or applications for camera control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/50—Constructional details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/50—Constructional details
- H04N23/54—Mounting of pick-up tubes, electronic image sensors, deviation or focusing coils
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/50—Constructional details
- H04N23/55—Optical parts specially adapted for electronic image sensors; Mounting thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/66—Remote control of cameras or camera parts, e.g. by remote control devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/90—Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Studio Devices (AREA)
- Stored Programmes (AREA)
Abstract
【課題】着脱可能デバイスにおいて再コンフィグレーションが行われる際にも、演算装置のI/Fを適切な状態に設定する。【解決手段】演算装置を有する、電子機器に着脱可能な着脱可能デバイスは、前記電子機器から再コンフィグレーションの指示を取得する。着脱可能デバイスは、再コンフィグレーションが実行される前に、電子機器からの信号を受け取るための演算装置のインタフェースの状態を表す状態情報を記憶部に保存し、所定の待機時間の後に、その状態情報を用いて上記インタフェースの状態を設定する。【選択図】 図4
Description
本発明は、着脱可能デバイスおよびその制御手法に関する。
監視カメラに接続されたPCやサーバなどの高性能な演算装置が、監視カメラにより撮像された画像から物体の検出や属性の推定などを行う画像解析が行われている。近年、モバイル用演算装置の処理能力の向上に伴い、そのような画像解析を監視カメラ側で行うシステムが提案されている。この場合の実装形態として、監視カメラ本体に演算装置を配置する他に、監視カメラに装着された、FPGAなどのプログラマブルな演算装置を有する着脱可能デバイスが、画像解析の少なくとも一部を実行する形態が提案されている。FPGAは、Field Programmable Gate Arrayの略である。FPGAなどの演算装置は、回路構成の設定を行うために、コンフィグレーションデータを用いたコンフィグレーションを実施する必要がある。着脱可能デバイスには、このようなコンフィグレーションデータを格納する記憶部が設けられており、着脱可能デバイスに電源が投入された際に、記憶部に格納されたコンフィグレーションデータを用いて演算装置のコンフィグレーションが行われる。
記憶部に格納されたコンフィグレーションデータは、アプリケーションの変更時や演算装置の更新に伴って更新される必要がある。この場合、監視カメラは、演算装置を経由して記憶部に格納されたコンフィグレーションデータを書き換え、演算装置にコンフィグレーションを実行させる(以後、再コンフィグレーションと呼ぶ)。例えば、監視カメラと着脱可能デバイスの通信がSDカード規格の通信プロトコルで行われる場合、監視カメラの電源投入時には、監視カメラから演算装置に初期化シーケンスが送信される。なお、初期化シーケンスは、SDカード規格で規定された所定のタイミング(演算装置のコンフィグレーションの完了を見込んだタイミング)で、且つ、所定のインターフェース(I/F)の状態(電圧や周波数)で送信される。演算装置は、この初期化シーケンスに従って監視カメラとの間のI/Fの状態(電圧や周波数)を設定する。一方、再コンフィグレーションは、起動までの処理負荷を軽減したり起動時間を短縮したりするために、電源が投入されたまま実行される。この場合、監視カメラから初期化シーケンスは送信されない。そのため、コンフィグレーション前の状態を維持する術の無いFPGAなどの演算装置は、どのようなI/Fの状態で起動すればよいのかわからず、演算可能な状態に移行できなくなってしまう。
特許文献1には、コンフィグレーション後にもカメラの状態を引き継ぐ方法が記載されている。具体的には、撮影モードの切り替えを行う場合、カメラの現在の補正値を記憶部に格納させてから、カメラ内に設けられた演算装置のコンフィグレーションを行い、コンフィグレーション後に記憶部に格納された補正値を読み出して設定する。
しかしながら、特許文献1は、カメラ内に演算装置を有する場合の解決方法であり、カメラに着脱可能に装着されるようなデバイスに適用することはできない。その主な理由は、次の2つの課題に対する解決方法が存在しないためである。第一に、再コンフィグレーションの際にカメラから初期化シーケンスが送信されない場合、演算装置から初期化シーケンスを要求することができないので、I/Fの状態(電圧や周波数)を演算装置が判断して設定する必要がある。第二に、再コンフィグレーションの際にカメラから初期化シーケンスが送信されるように構成された場合、演算装置はその送信のタイミングがわからない。そのため、演算装置がI/F電圧や周波数を判断して設定した後に初期化シーケンスが送信される可能性がある。この時、設定後の演算装置のI/Fの状態と、カメラが初期化シーケンスを送信する際のカメラのI/Fの状態に相違があると、演算装置は初期化シーケンスを受け付けることができず、演算可能な状態に移行できない。
本発明の一態様では、着脱可能デバイスにおいて再コンフィグレーションが行われる際にも、演算装置のI/Fを適切な状態に設定することを可能とする技術が提供される。
本発明の一態様による着脱可能デバイスは、以下の構成を備える。すなわち、
演算装置を有する、電子機器に着脱可能な着脱可能デバイスであって、
前記電子機器から再コンフィグレーションの指示を取得する取得手段と、
前記再コンフィグレーションが実行される前に、前記電子機器からの信号を受け取るための前記演算装置のインタフェースの状態を表す状態情報を記憶部に保存する保存手段と、
所定の待機時間の後に前記状態情報を用いて前記インタフェースの状態を設定する設定手段と、を備える。
演算装置を有する、電子機器に着脱可能な着脱可能デバイスであって、
前記電子機器から再コンフィグレーションの指示を取得する取得手段と、
前記再コンフィグレーションが実行される前に、前記電子機器からの信号を受け取るための前記演算装置のインタフェースの状態を表す状態情報を記憶部に保存する保存手段と、
所定の待機時間の後に前記状態情報を用いて前記インタフェースの状態を設定する設定手段と、を備える。
本発明によれば、着脱可能デバイスにおいて再コンフィグレーションが行われる際にも、演算装置のI/Fを適切な状態に設定することが可能となる。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
<システム構成>
図1に、本実施形態の画像解析システムの構成例を示す。以下では、一例として、このシステムが特定人物追跡システムである場合について説明する。ただし、これに限られず、画像を解析して所定の情報出力を行う任意のシステムに、以下の議論を適用することができる。本システムは、撮像装置110a~110dと、ネットワーク120と、入出力装置130とを含んで構成される。なお、撮像装置110a~110dは、それぞれ、例えば撮像した画像を記録可能なデバイスを着脱可能なスロットを有し、そのスロットに着脱可能デバイス100a~100dが挿入されることにより、着脱可能デバイス100a~100dと接続される。なお、以下では、着脱可能デバイス100a~100dを「着脱可能デバイス100」と表記し、撮像装置110a~110dを「撮像装置110」と表記する。撮像装置110は、演算装置を有する着脱可能デバイスを装着可能な電子機器の一例である。
図1に、本実施形態の画像解析システムの構成例を示す。以下では、一例として、このシステムが特定人物追跡システムである場合について説明する。ただし、これに限られず、画像を解析して所定の情報出力を行う任意のシステムに、以下の議論を適用することができる。本システムは、撮像装置110a~110dと、ネットワーク120と、入出力装置130とを含んで構成される。なお、撮像装置110a~110dは、それぞれ、例えば撮像した画像を記録可能なデバイスを着脱可能なスロットを有し、そのスロットに着脱可能デバイス100a~100dが挿入されることにより、着脱可能デバイス100a~100dと接続される。なお、以下では、着脱可能デバイス100a~100dを「着脱可能デバイス100」と表記し、撮像装置110a~110dを「撮像装置110」と表記する。撮像装置110は、演算装置を有する着脱可能デバイスを装着可能な電子機器の一例である。
着脱可能デバイス100は、撮像装置110に対して着脱可能な演算デバイスである。着脱可能デバイス100は、一例として、SDカードに、演算装置としての所定の処理回路を搭載したデバイスである。着脱可能デバイス100は、例えば、SDカードの態様によって、撮像装置110にその全体が挿入可能に構成され、これにより、撮像装置110から突出する部分がない状態で撮像装置110と接続可能に構成することができる。これにより、着脱可能デバイス100が配線等の障害物と干渉することを防ぐことができ、デバイスの利用時の利便性を高めることができる。また、多くの既存のネットワークカメラなどの撮像装置110には、SDカードスロットが用意されているため、既存の撮像装置110に対して、着脱可能デバイス100により拡張機能を提供することができる。なお、着脱可能デバイス100は、SDカードの態様以外に、少なくともその撮像装置110で撮影された画像を記憶可能な記憶装置が装着される際に使用される任意のインタフェースで、撮像装置110に装着されるように構成されてもよい。例えば、着脱可能デバイス100は、USB(ユニバーサリシリアルバス)インタフェースを有し、撮像装置110のUSBソケットに装着されるように構成されてもよい。また、演算装置は、例えば、所定の処理を実行するようにプログラムされたFPGAによって実装されるが、それ以外の形式(例えば、他のプログラマブルロジックデバイス(PLD))で実装されてもよい。FPGAは、Field Programmable Gate Arrayの略である。
撮像装置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は、インタフェースの略語である。
(撮像装置の構成)
続いて、撮像装置110の構成について説明する。図2は、撮像装置110のハードウェア構成例を示す図である。撮像装置110は、そのハードウェア構成として、例えば、撮像部201、画像処理部202、演算処理部203、配信部204、SD I/F部205を含む。なお、I/Fは、インタフェースの略語である。
撮像部201は、光を結像するためのレンズ部と、結像された光に応じたアナログ信号変換する撮像素子とを含んで構成される。レンズ部は、画角を調整するズーム機能や、光量の調整を行う絞り機能などを有する。撮像素子は、光をアナログ信号に変換する際の感度調整を行うゲイン機能を有する。これらの機能は、画像処理部202から通知された設定値に基づいて調整される。撮像部201によって取得されたアナログ信号は、アナログ-デジタル変換回路によってデジタル信号に変換され、画像信号として画像処理部202へ転送される。
画像処理部202は、画像処理エンジンと、その周辺デバイス等を含んで構成される。周辺デバイスは、例えば、RAM(Random Access Memory)や、各I/Fのドライバ等を含む。画像処理部202では、撮像部201から取得した画像信号に対して、例えば、現像処理、フィルタ処理、センサ補正、ノイズ除去等の、画像処理を施して画像データを生成する。また、画像処理部202は、レンズ部や撮像素子へ設定値を送信し、適切露出画像を取得できるように、露出調整を実行しうる。画像処理部202において生成された画像データは、演算処理部203へ転送される。
演算処理部203は、CPUやMPU等の1つ以上のプロセッサ、RAMやROM等のメモリ、各I/Fのドライバなどから構成される。なお、CPUはCentral Processing Unitの、MPUはMicro Processing Unitの、RAMはRandom Access Memoryの、ROMはRead Only Memoryの、頭字語である。演算処理部203では、一例において、上述のシステムにおいて実行されるべき処理の各部分を撮像装置110と着脱可能デバイス100とのいずれが実行するかの分担を決定し、その決定した分担に対応する処理を実行しうる。この処理内容や処理の分担の詳細に関しては後述する。画像処理部202から受け取った画像は、配信部204、又は、SD I/F部205へ転送される。また、処理結果のデータも配信部204へ転送される。
配信部204は、ネットワーク配信エンジンと、例えば、RAMやETH PHYモジュールなどの周辺デバイス等を含んで構成される。ETH PHYモジュールは、Ethernetの物理(PHY)レイヤの処理を実行するモジュールである。配信部204は、演算処理部203から取得した画像データや処理結果のデータを、ネットワーク120へ配信可能な形式に変換して、変換後のデータをネットワーク120へ出力する。SD I/F部205は、着脱可能デバイス100と接続するためのインタフェース部分で、例えば、電源と、着脱可能デバイス100を着脱するための、着脱ソケット等の装着機構を含んで構成される。ここでは、SD I/F部205が、SD Associationにより策定されたSDカード規格に従って構成されるものとする。演算処理部203から取得された画像の着脱可能デバイス100への転送や、着脱可能デバイス100からのデータの取得等の、着脱可能デバイス100と撮像装置110との間での通信は、SD I/F部205を通じて行われる。
図3に、撮像装置110の機能構成例を示す。撮像装置110は、その機能として、例えば、撮像制御部301、信号処理部302、記憶部303、制御部304、解析部305、デバイス通信部306、及び、ネットワーク通信部307を含む。
撮像制御部301は、撮像部201を介して周囲の環境を撮影するようにする制御を実行する。信号処理部302は、撮像制御部301によって撮影された画像に対して所定の処理を施して、撮影画像のデータを生成する。以下では、この撮影画像のデータを単に「撮影画像」と呼ぶ。信号処理部302は、例えば、撮像制御部301によって撮影された画像を符号化する。信号処理部302は、静止画像に対して、例えば、JPEG(Joint Photographic Experts Group)等の符号化方式を用いて符号化を行う。また、信号処理部302は、動画像に対して、H.264/MPEG-4 AVC(以下では「H.264」と呼ぶ。)、HEVC(High Efficiency Video Coding)等の符号化方式を用いて符号化を行う。また、信号処理部302は、予め設定された複数の符号化方式の中から、例えば撮像装置110の不図示の操作部を介して、ユーザにより選択された符号化方式を用いて、画像を符号化してもよい。
記憶部303は、解析部305において実行可能な解析処理のリスト(以下では「第1処理リスト」と呼ぶ。)と、解析処理の結果に対する後処理のリストとを記憶する。また、記憶部303は、後述する解析処理の結果を記憶する。なお、本実施形態では、実行される処理が解析処理であるが、任意の処理が実行されてもよく、記憶部303は、その実行される処理に関連する処理について、第1処理リストと後処理のリストとを記憶するようにしうる。制御部304は、信号処理部302、記憶部303、解析部305、デバイス通信部306、ネットワーク通信部307を、それぞれが所定の処理を実行するように、制御する。
解析部305は、撮影画像に対して、後述する解析前処理、解析処理、解析後処理の少なくともいずれかを選択的に実行する。解析前処理は、後述の解析処理を実行する前に、撮影画像に対して実行する処理である。本実施形態の解析前処理では、一例として、撮影画像を分割して分割画像を作成する処理が実行されるものとする。解析処理は、入力された画像を解析して得られる情報を出力する処理である。本実施形態の解析処理では、一例として、解析前処理によって得られた分割画像を入力として、人体検出処理、顔検出処理、車両検出処理の少なくともいずれかを実行し、解析処理結果を出力する処理が実行されるものとする。解析処理は、例えば非特許文献1の技術によって、画像に含まれるオブジェクトを検出できるように学習が行われた機械学習モデルを用いて、分割画像中のオブジェクトの位置を出力するように構成された処理でありうる。解析後処理は、解析処理が実行された後に実行される処理である。本実施形態の解析後処理では、一例として、各分割画像に対する解析処理結果に基づいて、各分割画像において検出されたオブジェクトの数を合計した値を処理結果として出力する処理が実行されるものとする。なお、解析処理は、パターンマッチングを行って画像中のオブジェクトを検出し、その位置を出力する処理であってもよい。
デバイス通信部306は、着脱可能デバイス100との通信を行う。デバイス通信部306は、入力されたデータを着脱可能デバイス100が処理可能な形式に変換し、その変換によって得られたデータを着脱可能デバイス100に送信する。また、デバイス通信部306は、着脱可能デバイス100からデータを受信し、受信したデータを撮像装置110が処理可能な形式に変換する。本実施形態では、デバイス通信部306は、変換処理として、小数を浮動小数点形式と固定小数点形式との間で変換する処理を実行するものとするが、これに限られず、他の処理がデバイス通信部306によって実行されてもよい。また、本実施形態では、デバイス通信部306は、着脱可能デバイス100に対してSDカード規格の範囲内で事前に定められたコマンドシーケンスを送信し、着脱可能デバイス100からの応答を受信することで着脱可能デバイス100との通信を行う。ネットワーク通信部307は、ネットワーク120を介して、入出力装置130との通信を行う。
(着脱可能デバイスの構成)
着脱可能デバイス100は、FPGAなどで構成される演算装置を有する。図4に、着脱可能デバイス100のハードウェア構成例を示す。着脱可能デバイス100は、一例として、I/F部401、FPGA402、及び、記憶部404を含んで構成される。着脱可能デバイス100は、撮像装置110が有するSD I/F部205の着脱ソケットに挿抜できる形状で、すなわちSDカード規格に則った形状で成形されるものとする。
着脱可能デバイス100は、FPGAなどで構成される演算装置を有する。図4に、着脱可能デバイス100のハードウェア構成例を示す。着脱可能デバイス100は、一例として、I/F部401、FPGA402、及び、記憶部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、処理部414、I/F制御部415、リロードピン416、及びリロード用回路417を含んで構成される。FPGA402は、内部の論理回路構造を繰り返し再構成できる半導体デバイスの一種である。FPGA402が実現する処理により、着脱可能デバイス100が装着された装置に、処理機能を追加(提供)することができる。また、FPGA402の再構成機能により、後から論理回路構造を変更することができるため、例えば技術の進歩の早い分野の装置に着脱可能デバイス100を装着することにより、その装置において適時に適切な処理を実行することが可能となる。なお、本実施形態では、FPGAが用いられる例について説明するが、後述する処理を実現可能である限りにおいて、例えば、汎用のASICや専用のLSIが用いられてもよい。FPGA402は、生成される論理回路構造の情報を含んだ設定データ(すなわち、コンフィグレーションデータ)が専用のI/Fから書き込まれることにより、又は、その設定データがその専用のI/Fから読み出されることによって、起動される。本実施形態では、この設定データが記憶部404に保持されているものとする。FPGA402は、電源が投入されると、記憶部I/F413を介して記憶部404から設定データを読み出し、論理回路を生成して起動する。ただし、これに限られず、例えば、着脱可能デバイス内に専用の回路を実装することにより、I/F部401を介して、撮像装置110がFPGA402に設定データを書き込んでもよい。
入出力制御部410は、撮像装置110との間で画像を送受信するための回路、撮像装置110から受信したコマンドを解析する回路、解析した結果に基づいて制御を行う回路、等を含んで構成される。ここでのコマンドは、SDカード規格に定義されているものであり、入出力制御部410は、それらのうちのいくつかを検出することができる。機能の詳細に関しては後述する。入出力制御部410は、画像解析処理の場合は演算処理部412へ画像を送信し、撮像装置から初期化シーケンス及び再コンフィグレーション命令を受け取った場合は処理部414に初期化シーケンス及び再コンフィグレーション命令を送信する。さらに、入出力制御部410は、処理の切り替えの設定データを受け取った場合は、処理切替部411へ設定データを送信する。
処理切替部411は、撮像装置110から受け取った設定データに基づいて、記憶部404から画像解析処理機能の情報を取得し、演算処理部412に書き込むための回路を含んで構成される。画像解析処理機能の情報は、例えば、演算処理部412内で処理される演算の順序や種類、演算の係数などを示す設定パラメータである。
演算処理部412は、画像解析処理機能を実行するために必要な複数の演算回路を含んで構成される。演算処理部412は、処理切替部411から受け取った画像解析処理機能の情報に基づいて、各演算処理を実行して、その処理結果を撮像装置110へ送信し、及び/又は、その処理結果を記憶部404に記録する。
このように、FPGA402は、事前に保持された複数の処理機能に対応する設定データに含まれる、実行対象の処理機能の設定データを抽出して、その抽出した設定データに基づいて演算処理部412によって実行される処理内容を書き換える。これにより、着脱可能デバイス100が、その複数の処理機能のうちの少なくともいずれかを選択的に実行することができる。また、新規に追加する処理の設定データを随時追加することにより、撮像装置110側で最新の処理を実行させることができる。なお、以下では、複数の処理機能のそれぞれに対応する複数の設定データを有していることを、複数の処理機能を有すると表現する。すなわち、着脱可能デバイス100のFPGA402が1つの処理機能を実行するように構成されている状態であっても、他の処理機能のための設定データにより演算処理部412の処理内容を変更することができる場合、複数の処理機能を有する、と表現する。
記憶部I/F413は、それぞれの構成部から受け取ったデータの形式を、記憶部404に適したプロトコルに変換してデータを送受信する回路を含んで構成される。記憶部I/F413は各メモリの規格に対応したコマンドうちのいくつかに対応し、各構成部と記憶部404間のデータ送受信を行う。
記憶部404はフラッシュメモリ、あるいはDRAMといったメモリを指し、不揮発性・揮発性は問わない。記憶部404は、撮像装置110から書き込まれた記憶データ、演算処理部412に書き込まれる画像解析処理機能の情報、FPGA402の設定データ(コンフィグレーションデータ)等の各種情報を記憶する。また、記憶部404には、再コンフィグレーションの指示の発生時のI/Fの状態(電圧や周波数)を示す状態情報と、再コンフィグレーションの指示が発生したことまたは状態情報が保存されたことを示す再コンフィグレーションフラグが保存される。これらの情報は以降の説明により明らかとなる。
処理部414は、入出力制御部410より初期化シーケンスを受け取った場合にはI/F制御部415にI/Fの状態情報(以下、I/F情報ともいう)を送信する。また、処理部414は、再コンフィグレーション命令を受け取った場合には再コンフィグレーションフラグを発行し、I/F情報と待機時間を併せて記憶部I/F413に送信し、記憶部404の所定のアドレスに格納する。ここで待機時間とは、再コンフィグレーションの際にFPGA402が初期化シーケンスを待つ時間を指す。この待機時間は、SDカード規格で規定された初期化シーケンスの送信に関わる時間の値から十分余裕がある値をあらかじめ不揮発性のメモリに格納しておくとよい。また、着脱可能デバイス100の処理部414或いは他の構成が演算装置のPower On Reset(POR)の解除から撮像装置110より初期化シーケンスを受信するまでの時間を計測することにより得られた時間が待機時間として用いられてもよい。例えば、処理部414が着脱可能デバイス100に電源が投入された時にFPGA402のPORが解除(S902)されてから初期化シーケンスを受けとる(S905)までのクロック数をカウントすることにより待機時間を算出するようにしてもよい。さらに処理部414は、再コンフィグレーション命令を受け取りI/F情報を記憶部404に送信した後に、リロードピン416を制御する信号をリロード用回路417に送信する。
I/F制御部415は、処理部414より受け取ったI/F情報に基づいて、FPGA402のI/F状態(電圧や周波数)を制御する。I/F電圧の変更は、FPGA402のバンクに供給される電圧を切り替えることで行われてもよいし、異なる電圧の供給されたバンクを選択することで行われてもよい。また周波数の変更は、撮像装置110から着脱可能デバイス100に供給するクロックの周波数を変更することによって行われ得る。
リロード用回路417は、FPGA402の外部にリロード用にディスクリートで構成された回路を有する。FPGA402が自らリロードを行う場合にはリロード用回路417が必要である。リロード用回路417は、処理部414からリロードピン416の制御信号を受け取り、リロードピン416に制御信号を送信する。ここで、コンフィグレーション移行後はFPGA402の信号ピンはすべてオープンドレインモードとなり、リロード用回路417はリロードピン416をプルアップしてHIGHに制御する。
リロードピン416は、FPGA402のデバイスごとに用意されているピンであり、リロード用回路417から送信される制御信号によってFPGA402の再コンフィグレーションを指示するための制御ピンとして構成される。処理部414の指示に応じてリロード用回路417がリロードピン416をLOWに制御すると、FPGA402はコンフィグレーションステートに移行する。その後、リロードピン416はリロード用回路417によってHIGHに制御される。コンフィグレーションが完了すると、FPGA402は、リロードピン416をHIGHにする信号をリロード用回路417に出力させる。
図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が、メモリや記憶装置に格納されたプログラムを実行することにより、各種機能を実行することができる。
図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が実行する処理についても、各装置におけるプロセッサがメモリ等に記憶されたプログラムを実行することによって実現されてもよいし、処理の一部又は全部を、専用のハードウェアによって実現してもよい。
続いて、システム内で実行される処理の流れの例について説明する。なお、以下の各処理のうち撮像装置110が実行する処理は、例えば、演算処理部203内のプロセッサがメモリ等に記憶されたプログラムを実行することによって実現される。ただし、これは一例に過ぎず、後述の処理の一部又は全部が、専用のハードウェアによって実現されてもよい。また、着脱可能デバイス100や入出力装置130が実行する処理についても、各装置におけるプロセッサがメモリ等に記憶されたプログラムを実行することによって実現されてもよいし、処理の一部又は全部を、専用のハードウェアによって実現してもよい。
(全体の流れ)
図8に、システムで実行される画像解析処理の一連の流れを概略的に示す。本処理では、まず、ユーザによって、撮像装置110に着脱可能デバイス100が装着される(S801)。撮像装置110は、着脱可能デバイス100の初期化シーケンスを実行する(S802)。この初期化シーケンスでは、撮像装置110と着脱可能デバイス100との間で所定のコマンドが送受信されることにより、撮像装置110が、着脱可能デバイス100を使用可能な状態となる。その後、撮像装置110は、着脱可能デバイス100が実行可能な処理を把握し、ローカルで実行可能な(撮像装置110単体で又は撮像装置110と着脱可能デバイス100の組み合わせで実行可能な)処理を把握する(S803)。なお、着脱可能デバイス100は、任意の処理を実行可能なように構成されうるが、撮像装置110側で実行されるべき処理と無関係な処理については考慮されなくてもよい。一例において、撮像装置110は、例えば入出力装置130から事前に取得した実行されうる処理のリストを保持しておいてもよい。この場合、撮像装置110は、着脱可能デバイス100が実行可能な処理を示す情報を着脱可能デバイス100から取得した際に、その処理がリストに含まれているか否かによって、実行されうる処理のみを把握することができる。続いて、撮像装置110は、実行する処理を決定し、必要に応じて着脱可能デバイス100の設定を実行する(S804)。すなわち、実行対象として決定された処理の少なくとも一部が着脱可能デバイス100によって実行される場合に、その処理のための着脱可能デバイス100の設定が実行される。この設定においては、例えば、実行対象の処理に対応する設定データを用いたFPGA402の再構成が行われうる。そして、撮像装置110または着脱可能デバイス100が、解析処理を実行する(S805)。その後、撮像装置110は、後処理を実行する(S806)。なお、S805とS806の処理は繰り返し実行される。図8の処理は、例えば、撮像装置110に電源が投入された際、および、着脱可能デバイス100が装着された際に実行される。また、例えば着脱可能デバイス100が取り外された際にも、S803の処理が再度実行されるようにするなど、図8の処理の少なくとも一部が繰り返し実行されてもよい。
図8に、システムで実行される画像解析処理の一連の流れを概略的に示す。本処理では、まず、ユーザによって、撮像装置110に着脱可能デバイス100が装着される(S801)。撮像装置110は、着脱可能デバイス100の初期化シーケンスを実行する(S802)。この初期化シーケンスでは、撮像装置110と着脱可能デバイス100との間で所定のコマンドが送受信されることにより、撮像装置110が、着脱可能デバイス100を使用可能な状態となる。その後、撮像装置110は、着脱可能デバイス100が実行可能な処理を把握し、ローカルで実行可能な(撮像装置110単体で又は撮像装置110と着脱可能デバイス100の組み合わせで実行可能な)処理を把握する(S803)。なお、着脱可能デバイス100は、任意の処理を実行可能なように構成されうるが、撮像装置110側で実行されるべき処理と無関係な処理については考慮されなくてもよい。一例において、撮像装置110は、例えば入出力装置130から事前に取得した実行されうる処理のリストを保持しておいてもよい。この場合、撮像装置110は、着脱可能デバイス100が実行可能な処理を示す情報を着脱可能デバイス100から取得した際に、その処理がリストに含まれているか否かによって、実行されうる処理のみを把握することができる。続いて、撮像装置110は、実行する処理を決定し、必要に応じて着脱可能デバイス100の設定を実行する(S804)。すなわち、実行対象として決定された処理の少なくとも一部が着脱可能デバイス100によって実行される場合に、その処理のための着脱可能デバイス100の設定が実行される。この設定においては、例えば、実行対象の処理に対応する設定データを用いたFPGA402の再構成が行われうる。そして、撮像装置110または着脱可能デバイス100が、解析処理を実行する(S805)。その後、撮像装置110は、後処理を実行する(S806)。なお、S805とS806の処理は繰り返し実行される。図8の処理は、例えば、撮像装置110に電源が投入された際、および、着脱可能デバイス100が装着された際に実行される。また、例えば着脱可能デバイス100が取り外された際にも、S803の処理が再度実行されるようにするなど、図8の処理の少なくとも一部が繰り返し実行されてもよい。
(着脱可能デバイスにおけるコンフィグレーションの処理の流れ)
図9は、本実施形態による画像解析システムを実現するための、FPGA402による処理フローを示している。図9を用いて、着脱可能デバイス100に初めて電源が投入された場合のフロー及び再コンフィグレーションを行う場合の処理フローを説明する。まず、S901~S908を参照して、着脱可能デバイス100に初めて電源が投入された場合のフローを説明する。
図9は、本実施形態による画像解析システムを実現するための、FPGA402による処理フローを示している。図9を用いて、着脱可能デバイス100に初めて電源が投入された場合のフロー及び再コンフィグレーションを行う場合の処理フローを説明する。まず、S901~S908を参照して、着脱可能デバイス100に初めて電源が投入された場合のフローを説明する。
撮像装置110は、着脱可能デバイス100が装着されたことを検出すると、着脱可能デバイス100に電源を投入する(S901)。着脱可能デバイス100が装着されたことの検出は、例えば、撮像装置110が有するコネクタに着脱可能デバイス100が挿されるとコネクタ内の機械的なスイッチが押されて通電することで行われる。着脱可能デバイス100に電源が投入されると、FPGA402に合わせて構成された電源が順に立ち上がる。必要な電源がすべてFPGA402に供給されると、FPGA402はパワーオンリセット(POR)を解除する(S902)。
PORが解除されると、FPGA402はコンフィグレーションステートに移行し、記憶部404に保存されたコンフィグレーションデータを用いてコンフィグレーションを実行する(S903)。FPGA402のコンフィグレーションが終了すると、処理部414は、記憶部I/F413を経由して、記憶部404の所定のアドレスに格納されている再コンフィグレーションフラグを読み出す(S904)。着脱可能デバイスに電源が投入された場合、すなわち再コンフィグレーションではない場合には、再コンフィグレーションフラグがOFFとなっている。再コンフィグレーションフラグ=OFF(例えば、値"0")が読み出されると(S904でNO)、処理はS905に進む。
着脱可能デバイス100に電源が投入された場合、撮像装置110から初期化シーケンスが送信されるので、FPGA402の入出力制御部410はI/F部401を介してこの初期化シーケンスを受け取る(S905)。FPGA402の入出力制御部410は、受け取った情報が初期化シーケンスであると判定すると、これを処理部414に送信する。処理部414は受け取った初期化シーケンスからI/F情報を抽出し、I/F制御部415に送信する(S906)。I/F制御部415は受け取ったI/F情報に応じて、FPGA402のI/F状態を制御する(S907)。I/F情報に従ってI/F状態が制御されることで、FPGA402は、撮像装置110から送信されるデータに対して演算処理が可能な状態(以下、演算可能状態)に移行する(S908)。
以上の手順によって、着脱可能デバイス100に電源が投入された際、FPGA402は演算可能状態に移行する。続いて、S930からS932において、着脱可能デバイス100のFPGA402が演算可能状態にあるときに撮像装置110から再コンフィグレーション命令が送信された場合の処理を説明する。
S908にてFPGA402が演算可能状態に移行した後、処理部414は、撮像装置110から再コンフィグレーション命令を受け取ったか否かを判定する(S930)。再コンフィグレーション命令を受け取っていなければ、演算可能状態が継続する(S930でNO)。なお、再コンフィグレーション命令は、着脱可能デバイス100のI/F部401、FPGA402の入出力制御部410を経由して処理部414に送信される。この再コンフィグレーション命令の発行は、記憶部404に格納する深層学習モデル(DLモデル)を変更する際にニューラルネットワークの層構成を変更する場合、温度に応じてFPGA402の動作周波数を変更する場合などに行われる。ここでニューラルネットワークの層構成とは、Mobilenet、VGG8及びResnetなどを指す。再コンフィグレーション命令は、撮像装置110によって自動で送信してもよいし、入出力装置130を操作するユーザからの指示操作によって送信されてもよい。
処理部414は、再コンフィグレーション命令を受け取ると(S930でYES)、待機時間とON状態の再コンフィグレーションフラグと現在のI/F情報とを、記憶部I/F413を介して記憶部404の所定のアドレスにそれぞれ格納する(S931)。なお、不揮発性メモリの所定のアドレスに待機時間が格納されている場合、待機時間を記憶部404の所定のアドレスに格納することは必須ではない。処理部414が、その不揮発性メモリの所定のアドレスから待機時間を取得できるからである。ただし、待機時間を計測していた場合は、SDカード規格で規定された待機時間よりも構成に適した時間となるため、更新したほうが好ましい。処理部414は、記憶部404に再コンフィグレーションフラグとI/F情報を格納した後、リロードピン416をLOWに制御する制御信号を、リロード用回路417を経由して送信する(S932)。これにより、リロードピン416がLOWに制御される。その後、処理はS903に移行する。以降、S903、S904、S910からS921において実行される再コンフィグレーションの処理について説明する。
リロードピン416をLOWに制御した後、FPGA402はコンフィグレーションステートに移行する(S903)。リロードピン416はオープンドレインモードになるが、リロード用回路417によってプルアップされているため、コンフィグレーションステートに移行後はHIGHに制御される。コンフィグレーションステートに移行後、処理部414は記憶部I/F413を経由して、記憶部404の所定のアドレスに格納されている再コンフィグレーションフラグを読みだす(S904)。再コンフィグレーション命令によりコンフィグレーションが実行されている場合、S931で再コンフィグレーションフラグがONにセットされているため、処理はS910に移行する(S904でYES)。
ON状態の再コンフィグレーションフラグが読み出された場合、処理部414は、記憶部404に格納されている待機時間を読み出し、待機を開始し、待機時間の経過の監視を開始する(S910)。この待機時間は、例えば、SDカードの規格で規定された初期化シーケンスの送信に関わる時間の値から十分余裕がある値をあらかじめ記憶部404に格納しておくことで得られる。もちろん、これに限られるものではなく、例えば、FPGA402が算出した待機時間を記憶部404に格納してもよい。ここで、待機時間の算出は、着脱可能デバイス100に電源が投入された時に、S902でFPGA402のPORが解除されてからS905で初期化シーケンスを受け取るまでのクロック数をカウントすることで得られる。さらに、算出したクロック数にクロックの周波数を乗算することで、実時間で表された待機時間が算出されてもよい。
入出力制御部410にて初期化シーケンスを受け取ったことが検出された場合(S911でYES)、処理はS912へ移行し、検出されない場合(S911でNO)、処理はS920に移行する。処理部414は、待機時間が経過したか否かを判断し、待機時間が経過していなければ処理をS911に戻す(S920でNO)。これにより、S910で開始された待機の待機時間が経過するまでの間、処理部414は撮像装置110からの初期化シーケンスの受信を待つことになる。処理部414は、待機時間が経過する前に初期化シーケンスを受け取った場合(S911でYES)、受け取った初期化シーケンスからI/F情報を抽出し、I/F制御部415に送信する(S912)。I/F制御部415は、処理部414から受け取ったI/F情報に応じてFPGA402のI/F状態を制御する(S913)。I/F状態が制御された後、処理部414は、記憶部404に格納していた再コンフィグレーションフラグを消去する(S914)ことにより、記憶部404に保存されたI/F情報を無効にした後、演算可能状態に移行する(S908)。この際、I/F情報そのものも消去されるようにしてよい。尚、コンフィグレーションが完了すると、リロード用回路417は、リロードピン416を制御する信号がHIGHを維持するように制御される。
他方、待機時間が経過するまでの間に処理部414が撮像装置110から初期化シーケンスを受け取らなかった場合(S920でYES)、処理はS921へ進む。例えば、処理部414は、待機の開始からクロック数をカウントし、初期化シーケンスを受け取る前にカウントしているクロック数が待機時間以上になった場合、処理部414は撮像装置110から初期化シーケンスが送信されないと判断する。この場合、処理部414はS931において格納されたI/F情報を記憶部404から読み出し、I/F制御部415に送信する(S921)。その後、処理はS913へ進む。S913以降の処理については、上述したとおりである。
<記憶部404に関するバリエーション>
記憶部404の再コンフィグレーションフラグがONにセットされた状態で着脱可能デバイス100を撮像装置110から取り出し、次に異なる撮像装置に差し込まれたと仮定する。記憶部404が不揮発性メモリである場合、再コンフィグレーションフラグのON状態が維持される。そのため、FPGA402は、再コンフィグレーション指示によるコンフィグレーションであると判断し、初期化の動作が正しく行われない可能性がある。したがって、図9の処理では、再コンフィグレーションの終了後に再コンフィグレーションフラグを消去する(S914)ことで、状態情報を無効化している。但し、この無効化のタイミング、すなわち、再コンフィグレーションフラグを消去する(OFF状態にする)タイミングは、着脱可能デバイス100の電源が切られる前であればよい。例えば、着脱可能デバイス100のアンバインド(接続の切断)が指示された際に再コンフィグレーションフラグが消去されるようにしてもよい。或いは、例えば、再コンフィグレーションフラグがON状態であると判断された直後(例えば、S904とS910の間)に、再コンフィグレーションフラグが消去されるようにしてもよい。一方、再コンフィグレーションフラグの保存に揮発性メモリが使用される場合は、電源が落とされるとデータが消去されるため、再コンフィグレーションフラグを消去する処理は省略可能である。
記憶部404の再コンフィグレーションフラグがONにセットされた状態で着脱可能デバイス100を撮像装置110から取り出し、次に異なる撮像装置に差し込まれたと仮定する。記憶部404が不揮発性メモリである場合、再コンフィグレーションフラグのON状態が維持される。そのため、FPGA402は、再コンフィグレーション指示によるコンフィグレーションであると判断し、初期化の動作が正しく行われない可能性がある。したがって、図9の処理では、再コンフィグレーションの終了後に再コンフィグレーションフラグを消去する(S914)ことで、状態情報を無効化している。但し、この無効化のタイミング、すなわち、再コンフィグレーションフラグを消去する(OFF状態にする)タイミングは、着脱可能デバイス100の電源が切られる前であればよい。例えば、着脱可能デバイス100のアンバインド(接続の切断)が指示された際に再コンフィグレーションフラグが消去されるようにしてもよい。或いは、例えば、再コンフィグレーションフラグがON状態であると判断された直後(例えば、S904とS910の間)に、再コンフィグレーションフラグが消去されるようにしてもよい。一方、再コンフィグレーションフラグの保存に揮発性メモリが使用される場合は、電源が落とされるとデータが消去されるため、再コンフィグレーションフラグを消去する処理は省略可能である。
<I/F電圧の制御に関するバリエーション>
I/F電圧の制御は、記憶部404にI/F電圧情報を格納せず、再コンフィグレーションフラグあることと撮像装置110とつながる信号線の電圧が3.3Vを印加するバンクの閾値電圧を超えるかで判断することもできる。この場合閾値を超えないときに、1.8Vを選択する。この方法にすることで、記憶部404に格納する情報を減らすことができる。
I/F電圧の制御は、記憶部404にI/F電圧情報を格納せず、再コンフィグレーションフラグあることと撮像装置110とつながる信号線の電圧が3.3Vを印加するバンクの閾値電圧を超えるかで判断することもできる。この場合閾値を超えないときに、1.8Vを選択する。この方法にすることで、記憶部404に格納する情報を減らすことができる。
<I/F制御部415の構成のバリエーション>
UHS-I以上のSDカード規格に対応する場合、SDカードのI/F電圧は3.3Vから変更する必要がある。図10にはI/F制御部415における端子の構成の一例を示す。着脱可能デバイス100をUHS-Iなどに対応させる場合、FPGA402の端子電圧を動的に切り替えることが難しいため、2つのバンクを使用し、1つのバンクにVα、もう一方にはVβを接続してスタブ配線する。ここでVα、Vβは異電圧である。I/F制御部415は初期化シーケンスのI/F電圧情報に基づいて、使用しないバンクにマスクすることで、使用する電圧の切り替えを行う。
UHS-I以上のSDカード規格に対応する場合、SDカードのI/F電圧は3.3Vから変更する必要がある。図10にはI/F制御部415における端子の構成の一例を示す。着脱可能デバイス100をUHS-Iなどに対応させる場合、FPGA402の端子電圧を動的に切り替えることが難しいため、2つのバンクを使用し、1つのバンクにVα、もう一方にはVβを接続してスタブ配線する。ここでVα、Vβは異電圧である。I/F制御部415は初期化シーケンスのI/F電圧情報に基づいて、使用しないバンクにマスクすることで、使用する電圧の切り替えを行う。
以上に述べたように、上記実施形態によれば、着脱可能デバイスにおいて再コンフィグレーションする際でも、演算装置のI/F状態を適切に設定することが可能となる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
100a~100d:着脱可能デバイス、401:I/F部、402:FPGA、404:記憶部、410入出力制御部、411:処理切替部、412:演算処理部、413:記憶部I/F、414:処理部、415:I/F制御部、416:リロードピン、417:リロード用回路
Claims (15)
- 演算装置を有する、電子機器に着脱可能な着脱可能デバイスであって、
前記電子機器から再コンフィグレーションの指示を取得する取得手段と、
前記再コンフィグレーションが実行される前に、前記電子機器からの信号を受け取るための前記演算装置のインタフェースの状態を表す状態情報を記憶部に保存する保存手段と、
所定の待機時間の後に前記状態情報を用いて前記インタフェースの状態を設定する設定手段と、を備えることを特徴とする着脱可能デバイス。 - 前記設定手段は、前記状態情報が前記記憶部に保存されていない場合、前記電子機器からの初期化シーケンスに基づいて前記インタフェースを設定することを特徴とする請求項1に記載の着脱可能デバイス。
- 前記保存手段は、前記状態情報を保存する際に、前記再コンフィグレーションが指示されたことを示すフラグを設定し、
前記設定手段は、前記フラグが設定されている場合に、前記状態情報が前記記憶部に保存されていると判断することを特徴とする請求項1または2に記載の着脱可能デバイス。 - 前記設定手段は、前記記憶部から前記状態情報を取得した後、前記記憶部に保存された前記状態情報を無効にすることを特徴とする請求項1乃至3のいずれか1項に記載の着脱可能デバイス。
- 前記設定手段は、前記記憶部に前記状態情報が保存されていると判断した場合に、前記記憶部に保存された前記状態情報を無効にすることを特徴とする請求項1乃至3のいずれか1項に記載の着脱可能デバイス。
- 前記設定手段は、前記電子機器との接続の切断が指示された場合に、前記記憶部に保存された前記状態情報を無効にすることを特徴とする請求項1乃至3のいずれか1項に記載の着脱可能デバイス。
- 前記記憶部は不揮発性メモリであることを特徴とする請求項4乃至6のいずれか1項に記載の着脱可能デバイス。
- 前記設定手段は、前記所定の待機時間が経過する前に前記電子機器から初期化シーケンスを受信した場合は、前記初期化シーケンスに基づいて前記インタフェースの状態を設定することを特徴とする請求項1乃至7のいずれか1項に記載の着脱可能デバイス。
- 前記演算装置のPower On Reset(POR)の解除から前記電子機器より初期化シーケンスを受信するまでの時間を計測する計測手段をさらに備え、
前記計測手段により計測された時間が前記所定の待機時間として用いられることを特徴とする請求項8に記載の着脱可能デバイス。 - 前記所定の待機時間は、初期化シーケンスの受信に関してSDカード規格により規定された時間であることを特徴とする請求項8に記載の着脱可能デバイス。
- 前記状態情報は、前記着脱可能デバイスと前記電子機器との間の通信に用いられる電圧および周波数を含むことを特徴とする請求項1乃至10のいずれか1項に記載の着脱可能デバイス。
- 前記設定手段は、前記記憶部に前記状態情報が保存されている場合に、前記電子機器とつながる信号線の電圧に基づいて前記インタフェースの電圧を設定することを特徴とする請求項1乃至10のいずれか1項に記載の着脱可能デバイス。
- 前記再コンフィグレーションとは、電源を投入したまま前記演算装置のコンフィグレーションデータを書き換えることを特徴とする請求項1乃至12のいずれか1項に記載の着脱可能デバイス。
- 前記演算装置は、Field Programmable Gate Arrayを備えることを特徴とする請求項1乃至13のいずれか1項に記載の着脱可能デバイス。
- 演算装置を有する、電子機器に着脱可能な着脱可能デバイスの制御方法であって、
前記電子機器から再コンフィグレーションの指示を取得する取得工程と、
前記再コンフィグレーションが実行される前に、前記電子機器からの信号を受け取るための前記演算装置のインタフェースの状態を表す状態情報を記憶部に保存する保存工程と、
所定の待機時間の後に前記状態情報を用いて前記インタフェースの状態を設定する設定工程と、を備えることを特徴とする着脱可能デバイスの制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021003014A JP2022108140A (ja) | 2021-01-12 | 2021-01-12 | 着脱可能デバイスおよびその制御方法 |
EP21217383.5A EP4027218B1 (en) | 2021-01-12 | 2021-12-23 | Detachable electrical device and control method thereof |
US17/566,866 US11985412B2 (en) | 2021-01-12 | 2021-12-31 | Detachable device and control method thereof |
CN202210031175.3A CN114765656A (zh) | 2021-01-12 | 2022-01-12 | 可拆卸设备及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021003014A JP2022108140A (ja) | 2021-01-12 | 2021-01-12 | 着脱可能デバイスおよびその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022108140A true JP2022108140A (ja) | 2022-07-25 |
JP2022108140A5 JP2022108140A5 (ja) | 2024-01-25 |
Family
ID=80112313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021003014A Pending JP2022108140A (ja) | 2021-01-12 | 2021-01-12 | 着脱可能デバイスおよびその制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11985412B2 (ja) |
EP (1) | EP4027218B1 (ja) |
JP (1) | JP2022108140A (ja) |
CN (1) | CN114765656A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220100504A1 (en) * | 2020-09-25 | 2022-03-31 | Advanced Micro Devices, Inc. | Shared data fabric processing client reset system and method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6355489B2 (ja) | 2014-09-01 | 2018-07-11 | キヤノン株式会社 | 撮像装置 |
US10725851B2 (en) * | 2018-04-27 | 2020-07-28 | Seagate Technology Llc | Storage device self-recovery exception engine |
-
2021
- 2021-01-12 JP JP2021003014A patent/JP2022108140A/ja active Pending
- 2021-12-23 EP EP21217383.5A patent/EP4027218B1/en active Active
- 2021-12-31 US US17/566,866 patent/US11985412B2/en active Active
-
2022
- 2022-01-12 CN CN202210031175.3A patent/CN114765656A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN114765656A (zh) | 2022-07-19 |
US11985412B2 (en) | 2024-05-14 |
EP4027218B1 (en) | 2024-04-03 |
EP4027218A1 (en) | 2022-07-13 |
US20220224829A1 (en) | 2022-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112752018B (zh) | 图像捕获装置、控制方法及计算机可读存储介质 | |
JP7518632B2 (ja) | デバイス、制御方法、およびプログラム | |
KR20190051594A (ko) | 복수의 카메라들을 이용하여 영상을 촬영하는 전자 장치와 이의 동작 방법 | |
US11825194B2 (en) | Image capturing apparatus and method for controlling the same, and non-transitory computer-readable storage medium | |
JP2021136666A (ja) | 撮像装置、デバイス、制御方法、およびプログラム | |
US11729515B2 (en) | Imaging apparatus, information processing method, and recording medium for determining whether an image analysis of a predetermined image is complete | |
JP2022108140A (ja) | 着脱可能デバイスおよびその制御方法 | |
JP2022133135A (ja) | 撮像装置、撮像装置の制御方法、情報処理装置 | |
JP7500246B2 (ja) | 撮像装置、制御方法、及び、プログラム | |
JP2023011341A (ja) | 情報処理装置およびその制御方法 | |
JP2022133134A (ja) | 撮像装置、撮像装置の制御方法、デバイス、デバイスの制御方法 | |
JP7475380B2 (ja) | 撮像装置、デバイス、それらの制御方法及びプログラム | |
JP7475379B2 (ja) | 撮像装置、撮像装置の制御方法及びプログラム | |
JP2004040370A (ja) | 画像処理装置およびその制御方法およびプログラムおよび記憶媒体 | |
JP2005186625A5 (ja) | ||
JP2022072874A (ja) | 撮像装置、及び、その制御方法、及び、プログラム | |
JP2022039941A (ja) | 情報処理装置、制御方法、及び、プログラム | |
JP2021157599A (ja) | 電子機器及びその制御方法、プログラム | |
JP2021158576A (ja) | 着脱可能デバイスおよびその制御方法、プログラム | |
JP2023028994A (ja) | 演算装置、撮像装置、制御方法及びプログラム | |
JP2021136663A (ja) | デバイス、通信装置、方法、およびプログラム | |
JP2022164050A (ja) | 情報処理装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231213 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240117 |