IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7522589撮像装置、デバイス、制御方法及びプログラム
<>
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図1
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図2
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図3
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図4
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図5
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図6
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図7
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図8
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図9
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図10
  • 特許-撮像装置、デバイス、制御方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-17
(45)【発行日】2024-07-25
(54)【発明の名称】撮像装置、デバイス、制御方法及びプログラム
(51)【国際特許分類】
   G06F 8/65 20180101AFI20240718BHJP
【FI】
G06F8/65
【請求項の数】 11
(21)【出願番号】P 2020101695
(22)【出願日】2020-06-11
(65)【公開番号】P2021196753
(43)【公開日】2021-12-27
【審査請求日】2023-06-07
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】渡邉 達也
【審査官】久々宇 篤志
(56)【参考文献】
【文献】特開2017-062537(JP,A)
【文献】特開2017-045318(JP,A)
【文献】特開2018-088034(JP,A)
【文献】特開2007-279826(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
撮像装置に着脱するためのインタフェースとプログラマブル集積回路と当該プログラマブル集積回路のコンフィグレーションデータを記憶する記憶部とを有するデバイスを、着脱可能な装着機構を有する撮像装置であって、
前記デバイスの前記記憶部のコンフィグレーションデータの更新の要求を発行することにより、前記プログラマブル集積回路のための設定データを含む第1のデータを前記デバイスに対して送信し、前記記憶部に記憶される前記コンフィグレーションデータの読み出し要求を発行することにより前記デバイスから第2のデータを受信する通信手段と、
前記第1のデータと前記第2のデータとが一致する場合、前記コンフィグレーションデータの更新が完了したと判定する判定手段と
を有し、
前記装着機構はSDカードスロットを含み、
前記デバイスはSDカードの態様のデバイスである、
ことを特徴とする撮像装置。
【請求項2】
前記判定手段により前記コンフィグレーションデータの更新が完了したと判定された場合、コンフィグレーションデータに従って前記デバイスを再起動する再起動手段を更に有することを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記通信手段は、前記第1のデータと前記第2のデータとが一致した場合、再ロードコマンドを前記デバイスに送信することを特徴とする請求項1または2に記載の撮像装置。
【請求項4】
前記通信手段は、前記第1のデータと前記第2のデータとが不一致の場合、前記第1のデータの送信および前記第2のデータの受信に係る処理を再度実行することを特徴とする請求項1乃至3のいずれか1項に記載の撮像装置。
【請求項5】
前記判定手段は、前記撮像装置による更新シーケンスコマンドの発行から前記記憶部に対する前記第1のデータの書き込みが終了するまでの時間に基づいて、前記コンフィグレーションデータの更新が完了したかを判定することを特徴とする請求項1乃至4のいずれか1項に記載の撮像装置。
【請求項6】
前記デバイスの前記記憶部における、前記更新の要求に応じて更新される領域のコンフィグレーションデータを保存する保存手段を有し、
前記通信手段は、前記判定手段により前記コンフィグレーションデータの更新が完了したと判定されない場合、前記保存手段に保存されたコンフィグレーションデータを前記デバイスに送信する
ことを特徴とする請求項1乃至5のいずれか1項に記載の撮像装置。
【請求項7】
前記プログラマブル集積回路はFPGA(Field Programmable Gate Array)であることを特徴とする請求項1乃至6のいずれか1項に記載の撮像装置。
【請求項8】
撮像装置の制御方法であって、
撮像装置に着脱するためのインタフェースとプログラマブル集積回路と当該プログラマブル集積回路のコンフィグレーションデータを記憶する記憶部とを有するデバイスに対し、前記デバイスの前記記憶部のコンフィグレーションデータの更新の要求を発行することにより、前記プログラマブル集積回路のための設定データを含む第1のデータを前記デバイスに対して送信する送信工程と、
前記記憶部に記憶される前記コンフィグレーションデータの読み出し要求を発行することにより前記デバイスから第2のデータを受信する受信工程と、
前記第1のデータと前記第2のデータとが一致する場合、前記コンフィグレーションデータの更新が完了したと判定する判定工程と
を有し、
前記撮像装置は、前記デバイスを着脱可能な装着機構を有し、
前記装着機構はSDカードスロットを含み、
前記デバイスはSDカードの態様のデバイスである、
ことを特徴とする制御方法。
【請求項9】
撮像装置に着脱するためのインタフェースとプログラマブル集積回路と当該プログラマブル集積回路のコンフィグレーションデータを記憶する記憶部とを有するデバイスであって、
前記撮像装置から、前記プログラマブル集積回路のための設定データを含むデータと、前記コンフィグレーションデータの更新コマンドとを受信する受信手段と、
前記受信手段により前記更新コマンドが受信されたことに応じて、前記コンフィグレーションデータの更新シーケンスが実行されるように制御する制御手段と、
を有し、
前記制御手段は、
前記更新シーケンスにおいて前記撮像装置から受信されるコマンドの順序が所定の順序を満たすかを判定し、満たす場合は前記デバイスを再起動させ、満たさない場合は前記撮像装置に対し前記更新シーケンスを再度実行するように通知する
ことを特徴とするデバイス。
【請求項10】
撮像装置に着脱するためのインタフェースとプログラマブル集積回路と当該プログラマブル集積回路のコンフィグレーションデータを記憶する記憶部とを有するデバイスが実行する制御方法であって、
前記撮像装置から、前記プログラマブル集積回路のための設定データを含むデータと、前記コンフィグレーションデータの更新コマンドとを受信する受信工程と、
前記受信工程において前記更新コマンドが受信されたことに応じて、前記コンフィグレーションデータの更新シーケンスが実行されるように制御する制御工程と、
を有し、
前記制御工程において、
前記更新シーケンスにおいて前記撮像装置から受信されるコマンドの順序が所定の順序を満たすかが判定され、満たす場合は前記デバイスが再起動され、満たさない場合は前記撮像装置に対し前記更新シーケンスを再度実行するように通知される
ことを特徴とする制御方法。
【請求項11】
撮像装置が有するプロセッサを、請求項1乃至のいずれか1項に記載の撮像装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像装置にて、プログラマブル集積回路を有する着脱可能デバイスに対するする設定技術に関するものである。
【背景技術】
【0002】
近年、様々なシーンにおいて、監視カメラにより撮像された画像を用いて、物体の検出や追尾、属性の推定等を行う画像解析、更には、そのような画像解析の結果に基づく物体数の推定等の画像処理が行われている。これまでは監視カメラの映像をPCやサーバ等の高性能な演算装置に転送して画像解析が行われてきたが、モバイル用演算装置の処理能力の向上に伴い、画像解析をカメラ側で直接行う事例も増えてきている。実装形態としてはカメラ本体に演算装置を配置する他に、USB(Universal Serial Bus)等のインタフェースを持つ着脱可能デバイスに演算装置を配置する形態も提案されている。カメラ本体に演算装置を配置した形態では、演算装置を配置した着脱可能デバイスを装着することで、カメラ側でより高度な解析処理を行うことができる。
【0003】
上記の形態において、着脱可能デバイスに配置された演算装置に対して、回路構成や設定情報が記載されたコンフィグレーションデータを、演算装置に応じたI/Fで設定する必要がある。しかし、USB等の汎用的なI/Fを用いて装着した場合、それは演算装置の設定用のI/Fとは異なるため、演算装置が独立して設定し起動できるよう着脱可能デバイス上にコンフィグレーションデータを格納する記憶部を設ける。一方で、記憶部に保存されたコンフィグレーションデータは、アプリケーションの変更時や、演算装置のアップデートに伴って、カメラから演算装置を経由して書き換える必要がある。
【0004】
そのため、コンフィグレーションデータを書き換え中に意図しない動作でデータが欠損した場合、ユーザは演算装置を起動することが出来なくなってしまう。
【0005】
特許文献1では、汎用的なI/Fを経由してメモリの中身を書き換える方法が提案されている。また、特許文献2では、書き換え前に保存されていたデータをバックアップする方法が記載されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2017-111530号公報
【文献】特開2007-279826号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述の特許文献1に開示された従来技術では、正しく書き換えることが出来なかった場合の復旧方法については述べられていない。また、特許文献2に開示された従来技術では、送信データが正しく書き込まれたかどうかを確認する方法については述べられていない。
【0008】
本発明は、着脱可能デバイス上に実装された記憶部に格納されたコンフィグレーションデータを正しく書き換えることのできる撮像装置、デバイス、制御方法、及びプログラムを提供する。
【課題を解決するための手段】
【0009】
この課題を解決するため、例えば本発明の撮像装置は以下の構成を備える。すなわち、
撮像装置に着脱するためのインタフェースとプログラマブル集積回路と当該プログラマブル集積回路のコンフィグレーションデータを記憶する記憶部とを有するデバイスを、着脱可能な装着機構を有する撮像装置であって、
前記デバイスの前記記憶部のコンフィグレーションデータの更新の要求を発行することにより、前記プログラマブル集積回路のための設定データを含む第1のデータを前記デバイスに対して送信し、前記記憶部に記憶される前記コンフィグレーションデータの読み出し要求を発行することにより前記デバイスから第2のデータを受信する通信手段と、
前記第1のデータと前記第2のデータとが一致する場合、前記コンフィグレーションデータの更新が完了したと判定する判定手段と
を有し、
前記装着機構はSDカードスロットを含み、
前記デバイスはSDカードの態様のデバイスである。
【発明の効果】
【0010】
本発明によれば、着脱可能デバイス上に実装された記憶部のコンフィグレーションデータを、高い信頼性をもって書き換えることが可能になる。
【図面の簡単な説明】
【0011】
図1】システム構成を示す図。
図2】撮像装置のハードウェア構成図。
図3】撮像装置の機能構成図。
図4】着脱可能デバイスのハードウェア構成図。
図5】着脱可能デバイスの機能構成図。
図6】システムで実行される処理の流れの例を示す図。
図7】着脱可能デバイスのConfigデータ書き換えシーケンス例を示す図。
図8】撮像装置、FPGA、記憶部間のコマンド例を示す図。
図9】着脱可能デバイスのConfigデータ書き換えシーケンスの別例を示す図。
図10】入出力装置のハードウェア構成図。
図11】入出力装置の機能構成図。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0013】
<システム構成>
図1に、本実施形態の画像解析システムの構成例を示す。以下では、一例として、このシステムが特定人物追跡システムである場合について説明する。ただし、これに限られず、画像を解析して所定の情報出力を行う任意のシステムに、以下の議論を適用することができる。本システムは、撮像装置110a~110dと、ネットワーク120と、入出力装置130とを含んで構成される。なお、撮像装置110a~110dは、それぞれ、例えば撮像した画像を記録可能なデバイスを着脱可能なスロットを有し、そのスロットに着脱可能デバイス100a~100dが挿入されることにより、着脱可能デバイス100a~100dと接続される。なお、着脱可能デバイス100a~100dはそれぞれ同じ構成であるとし、その中の任意の1つを、“a”、“b”、“c”、“d”の添え字無しの「着脱可能デバイス100」と表記する。また、撮像装置110a~110dはそれぞれ同じ構成であるとし、その中の任意の1つを添え字無しの「撮像装置110」と表記する。
【0014】
着脱可能デバイス100は、撮像装置110に対して着脱可能な演算デバイスである。着脱可能デバイス100は、一例として、SDカードに所定の処理回路を搭載したデバイスである。着脱可能デバイス100は、例えば、SDカードの態様によって、撮像装置110にその全体が挿入可能に構成され、これにより、撮像装置110から突出する部分がない状態で撮像装置110と接続可能に構成することができる。これにより、着脱可能デバイス100が配線等の障害物と干渉することを防ぐことができ、デバイスの利用時の利便性を高めることができる。また、多くの既存のネットワークカメラなどの撮像装置110には、SDカードスロットが用意されているため、既存の撮像装置110に対して、着脱可能デバイス100により拡張機能を提供することができる。なお、着脱可能デバイス100は、SDカードの態様以外に、少なくともその撮像装置110で撮影された画像を記憶可能な記憶装置が装着される際に使用される任意のインタフェースで、撮像装置110に装着されるように構成されてもよい。例えば、着脱可能デバイス100は、USB(ユニバーサリシリアルバス)インタフェースを有し、撮像装置110のUSBソケットに装着されるように構成されてもよい。また、所定の処理回路は、例えば、所定の処理を実行するようにプログラムされたFPGA(Field Programmable Gate Array)によって実装されるが、それ以外のプログラマブル集積回路で実装されてもよい。
【0015】
撮像装置110は、ネットワークカメラ等の撮像装置である。本実施形態では、撮像装置110は、映像を処理することのできる演算装置を内蔵するものとするが、これに限られない。例えば、撮像装置110に接続されたPC(パーソナルコンピュータ)等の外部コンピュータが存在してもよく、これらの組み合わせを、撮像装置110として扱ってもよい。また、本実施形態では、図示の如く、全ての撮像装置110に、着脱可能デバイス100が装着されているものとする。なお、図1では、4つの撮像装置110と、それぞれに装着された着脱可能デバイスとが示されているが、これらの装置の組み合わせの数は特に制限は無く、3つ以下であってもよいし、5つ以上であってもよい。撮像装置110に、画像解析処理機能を有する着脱可能デバイス100が装着されることにより、撮像装置110が画像解析処理機能を有しなくても、撮像装置110側で映像処理を実行することが可能となる。また、本実施形態のように撮像装置110に映像処理用の演算装置が配置された形態では、演算装置が配置された着脱可能デバイス100が撮像装置110に装着されることにより、撮像装置110側で実行可能な画像処理を多様化・高度化することができる。
【0016】
入出力装置130は、ユーザからの入力の受け付けや、ユーザへの情報の出力(例えば情報の表示)を行う装置である。本実施形態では、例えば入出力装置130は、PC等のコンピュータであり、そのコンピュータにインストールされたブラウザやネイティブアプリケーションによって、情報の入出力が行われる。
【0017】
撮像装置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は、例えば、独自の通信プロトコル等の他の通信プロトコルでの通信が可能なように構成されてもよい。
【0018】
<撮像装置の構成>
続いて、撮像装置110の構成について説明する。図2は、撮像装置110のハードウェア構成例を示す図である。撮像装置110は、そのハードウェア構成として、例えば、撮像部201、画像処理部202、演算処理部203、配信部204、SD I/F部205を含む。なお、I/Fは、インタフェースの略語である。
【0019】
撮像部201は、光を結像するためのレンズ部と、結像された光に応じたアナログ信号変換する撮像素子とを含んで構成される。レンズ部は、画角を調整するズーム機能や、光量の調整を行う絞り機能などを有する。撮像素子は、光をアナログ信号に変換する際の感度調整を行うゲイン機能を有する。これらの機能は、画像処理部202から通知された設定値に基づいて調整される。撮像素子によって取得されたアナログ信号は、撮像部201内のアナログ-デジタル変換回路によってデジタル信号に変換され、画像信号(もしくは画像データ)として画像処理部202へ転送される。
【0020】
画像処理部202は、画像処理エンジンと、その周辺デバイス等を含んで構成される。周辺デバイスは、例えば、RAM(Random Access Memory)や、各I/Fのドライバ等を含む。画像処理部202では、撮像部201から取得した画像信号に対して、例えば、現像処理、フィルタ処理、センサ補正、ノイズ除去等の、画像処理を施して画像データを生成する。また、画像処理部202は、レンズ部や撮像素子へ設定値を送信し、適切露出画像を取得できるように、露出調整を実行しうる。画像処理部202において生成された画像データは、演算処理部203へ転送される。
【0021】
演算処理部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へ転送される。
【0022】
配信部204は、ネットワーク配信エンジンと、例えば、RAMやETH PHYモジュールなどの周辺デバイス等を含んで構成される。ETH PHYモジュールは、Ethernetの物理(PHY)レイヤの処理を実行するモジュールである。配信部204は、演算処理部203から取得した画像データや処理結果のデータを、ネットワーク120へ配信可能な形式に変換して、変換後のデータをネットワーク120へ出力する。
【0023】
SD I/F部205は、着脱可能デバイス100と接続するためのインタフェース部分で、例えば、電源と、着脱可能デバイス100を着脱するための、着脱ソケット等の装着機構を含んで構成される。ここでは、SD I/F部205が、SD Associationにより策定されたSD規格に従って構成されるものとする。演算処理部203から取得された画像の着脱可能デバイス100への転送や、着脱可能デバイス100からのデータの取得等の、着脱可能デバイス100と撮像装置110との間での通信は、SD I/F部205を通じて行われる。
【0024】
図3に、撮像装置110の機能構成例を示す。撮像装置110は、その機能として、例えば、撮像制御部301、信号処理部302、記憶部303、制御部304、解析部305、デバイス通信部306、及び、ネットワーク通信部307を含む。
【0025】
撮像制御部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の不図示の操作部を介して、ユーザにより選択された符号化方式を用いて、画像を符号化してもよい。
【0026】
記憶部303は、解析部305において実行可能な解析処理のリスト(以下では「第1処理リスト」と呼ぶ。)と、解析処理の結果に対する後処理のリストとを記憶する。また、記憶部303は、後述する解析処理の結果を記憶する。なお、本実施形態では、実行される処理が解析処理であるが、任意の処理が実行されてもよく、記憶部303は、その実行される処理に関連する処理について、第1処理リストと後処理のリストとを記憶するようにしうる。制御部304は、信号処理部302、記憶部303、解析部305、デバイス通信部306、ネットワーク通信部307を、それぞれが所定の処理を実行するように、制御する。
【0027】
解析部305は、撮影画像に対して、後述する解析前処理、解析処理、解析後処理の少なくともいずれかを選択的に実行する。解析前処理は、後述の解析処理を実行する前に、撮影画像に対して実行する処理である。本実施形態の解析前処理では、一例として、撮影画像を分割して分割画像を作成する処理が実行されるものとする。解析処理は、入力された画像を解析して得られる情報を出力する処理である。本実施形態の解析処理では、一例として、解析前処理によって得られた分割画像を入力として、人体検出処理、顔検出処理、車両検出処理の少なくともいずれかを実行し、解析処理結果を出力する処理が実行されるものとする。解析処理は、例えば非特許文献1の技術によって、画像に含まれるオブジェクトを検出できるように学習が行われた機械学習モデルを用いて、分割画像中のオブジェクトの位置を出力するように構成された処理でありうる。解析後処理は、解析処理が実行された後に実行される処理である。本実施形態の解析後処理では、一例として、各分割画像に対する解析処理結果に基づいて、各分割画像において検出されたオブジェクトの数を合計した値を処理結果として出力する処理が実行されるものとする。なお、解析処理は、パターンマッチングを行って画像中のオブジェクトを検出し、その位置を出力する処理であってもよい。
【0028】
デバイス通信部306は、着脱可能デバイス100との通信を行う。デバイス通信部306は、入力されたデータを着脱可能デバイス100が処理可能な形式に変換し、その変換によって得られたデータを着脱可能デバイス100に送信する。また、デバイス通信部306は、着脱可能デバイス100からデータを受信し、受信したデータを撮像装置110が処理可能な形式に変換する。本実施形態では、デバイス通信部306は、変換処理として、小数を浮動小数点形式と固定小数点形式との間で変換する処理を実行するものとするが、これに限られず、他の処理がデバイス通信部306によって実行されてもよい。また、本実施形態では、デバイス通信部306は、着脱可能デバイス100に対してSD規格の範囲内で事前に定められたコマンドシーケンスを送信し、着脱可能デバイス100からの応答を受信することで、着脱可能デバイス100との通信を行うものとする。ネットワーク通信部307は、ネットワーク120を介して、入出力装置130との通信を行う。
【0029】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【0030】
<着脱可能デバイスに構成>
次に、着脱可能デバイス100の構成と動作について説明する。図4(a)は、着脱可能デバイス100のハードウェア構成図である。着脱可能デバイス100は、一例として、I/F部401、FPGA402、Configration(以下、Config)外部制御部403、及び、記憶部404を含んで構成される。着脱可能デバイス100が有するI/F部401は、撮像装置110が有するSD I/F部205の着脱ソケットに挿抜できる形状を持つインタフェース、すなわちSD規格に則った形状のインタフェースである。
【0031】
このI/F部401は、例えば、撮像装置110から電源の供給を受け、着脱可能デバイス100内で使用する電源を生成し分配する、電気的な接点端子等を含んで構成される。I/F部401は、撮像装置110のSD I/F部205と同様に、SD規格内で定義(準拠)されている項目に関しては、それに従うものとする。撮像装置110からの画像や設定データの受け取り、FPGA402から撮像装置110へのデータの送信は、I/F部401を介して行われる。
【0032】
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に設定データを書き込んでもよい。
【0033】
入出力制御部410は、撮像装置110との間で画像を送受信するための回路、撮像装置110から受信したコマンドを解析する回路、解析した結果に基づいて制御を行う回路、等を含んで構成される。ここでのコマンドには、SD規格に定義されているコマンド、並びに、拡張したコマンドが含まれる。入出力制御部410は、それらのうちのいくつかを検出することができる。機能の詳細に関しては後述する。入出力制御部410は、画像解析処理の場合は演算処理部412へ画像を送信し、Config書換処理の場合は記憶部I/F413へコンフィグレーションデータ(以降、Configデータ)を送信するように制御を行う。また、入出力制御部410は、処理の切り替えの設定データを受け取った場合は、演算切替部411へ設定データを送信する。
【0034】
演算切替部411は、撮像装置110から受け取った設定データに基づいて、記憶部404から画像解析処理機能の情報を取得し、演算処理部412に書き込むための回路を含んで構成される。画像解析処理機能の情報は、例えば、演算処理部412内で処理される演算の順序や種類、演算の係数などを示す設定パラメータである。
【0035】
演算処理部412は、画像解析処理機能を実行するために必要な複数の演算回路を含んで構成される。演算処理部412は、演算切替部411から受け取った画像解析処理機能の情報に基づいて、各演算処理を実行する。そして、演算処理部412は、その演算処理の結果を撮像装置110へ送信し、及び/又は、その処理結果を記憶部404に記録する。
【0036】
このように、FPGA402は、事前に保持された複数の処理機能に対応する設定データに含まれる、実行対象の処理機能の設定データを抽出して、その抽出した設定データに基づいて演算処理部412によって実行される処理内容を書き換える。これにより、着脱可能デバイス100が、その複数の処理機能のうちの少なくともいずれかを選択的に実行することができる。また、新規に追加する処理の設定データを随時追加することにより、撮像装置110側で最新の処理を実行させることができる。なお、以下では、複数の処理機能のそれぞれに対応する複数の設定データを有していることを、複数の処理機能を有すると表現する。すなわち、着脱可能デバイス100のFPGA402が1つの処理機能を実行するように構成されている状態であっても、他の処理機能のための設定データにより演算処理部412の処理内容を変更することができる場合、複数の処理機能を有する、と表現する。
【0037】
記憶部I/F413は、それぞれの構成部から受け取ったデータの形式を、記憶部404に適したプロトコルに変換してデータを送受信する回路を含んで構成される。ここでは、記憶部404はNOR型フラッシュメモリとし、記憶部I/F413はNOR型フラッシュメモリの規格に対応したコマンドうちのいくつかに対応し、各構成部と記憶部404間のデータ送受信を行う。
【0038】
Configデータ書換部414は、図4(b)に示すように、データ制御部420、シーケンス検出部421を含んで構成される。データ制御部420は、入出力制御部410からConfigデータを受け取り、シーケンス検出部421で受け取った制御信号に基づき、Configデータを記憶部I/Fへ送信する。シーケンス検出部421は、入出力制御部410で検出したSD準拠のコマンドのうちConfigに関わるコマンドを受け取る。シーケンス検出部421は、受け取ったコマンドの順序を記憶し、所定の順序を踏んでいるか、一定期間内にコマンドを受け取っているかなどを検出する。シーケンス検出部421は、検出した結果に基づきデータ制御部420、もしくは、Config外部制御部403へ制御信号を送信する。
【0039】
Config制御部415は、Config外部制御部403から受け取った制御信号に基づいて、FPGA402のConfig動作の制御を行う回路を含んで構成される。一般的なFPGAには、Config制御に関する回路は、FPGA設計者が設計するPL(Program Logic)部分ではなくデバイス固有のハード回路部分に搭載されており、図4では前述の部分を分けて記載はしていないが、本実施形態においてはハード回路部分を用いるものとする。すなわち、記憶部I/F413はPL部分とハード回路部分、Config制御部415はハード回路部分で構成されている。
【0040】
Config外部制御部403は、Configデータ書換部414から受け取った制御信号に基づいて、Config制御部415に入力する制御信号を入力するための回路を含んで構成される。Config制御部415に入力する制御信号とは、例えば、FPGAを再度コンフィグレーションするような信号を差し、FPGA402は上記の制御信号を受け取ると、記憶部404の所定のアドレスに記憶されたConfigデータに基づいて、コンフィグレーションするようなシーケンスが実行される。
【0041】
記憶部404は、例えばNOR型フラッシュメモリによって構成され、例えば、撮像装置110から書き込まれた記憶データ、演算処理部412に書き込まれる画像解析処理機能の情報、FPGA402のConfigデータ等の各種情報を記憶する。
【0042】
図5に、着脱可能デバイス100の機能構成例を示す。着脱可能デバイス100は、その機能構成として、例えば、解析部501及び通信部502を含む。解析部501は、画像に対する解析処理を実行する。解析部501は、例えば、撮像装置110から解析処理設定要求コマンドを入力した場合に、入力された解析処理を実行可能な状態にするための設定を実行する。また、解析部501は、画像が入力された場合、その入力された画像に対して、実行可能な状態に設定された解析処理を実行する。本実施形態では、実行可能な解析処理は、人体検出処理と顔検出処理であるものとするが、これらに限られない。例えば、事前に記憶された人物が画像に含まれるか否かを判定する処理(後述する顔認証処理)であってもよい。例えば、事前に記憶された人物の画像特徴量と、入力された画像から検出された人物の画像特徴量との一致度合いを算出し、一致度合いが閾値以上の場合に事前に記憶された人物であると判定する。また、プライバシー保護を目的として。入力された画像から検出された人物に対して、所定のマスク画像を重畳したり、モザイク処理を施したりする処理であってもよい。また、人物の特定の行動を機械学習によって学習した学習モデルを用いて、画像中の人物が特定の行動を行っているかを検出する処理であってもよい。さらには、画像中の領域がどのような領域なのかを判定する処理であってもよい。例えば、建物や道路、人物、空等を機械学習によって学習した学習モデルを用いて、画像中の領域がどのような領域なのかを判定する処理であってもよい。以上のように、実行可能な解析処理は、機械学習を用いた画像解析処理にも、機械学習を用いない画像解析処理にも応用可能である。また、上記の各解析処理は、着脱可能デバイス100が単独で行うのではなく、撮像装置110と協働して実行してもよい。
【0043】
通信部502は、I/F部401を介して、撮像装置110との通信を行う。
【0044】
<入出力装置の構成>
図10に、入出力装置130のハードウェア構成例を示す。入出力装置130は、一般的なPC等のコンピュータとして構成され、例えば、図10に示すように、CPU等のプロセッサ601、RAM602やROM603等のメモリ、HDD604等の記憶装置、及び、通信I/F605を含んで構成される。入出力装置130は、プロセッサ601が、メモリや記憶装置に格納されたプログラムを実行することにより、各種機能を実行することができる。
【0045】
図11に、本実施形態に係る入出力装置130の機能構成例を示す。入出力装置130は、その機能構成として、例えば、ネットワーク通信部701、制御部702、表示部703、及び操作部704を含む。ネットワーク通信部701は、例えばネットワーク120に接続し、ネットワーク120を介して撮像装置110等の外部装置との通信を実行する。なお、これは一例に過ぎず、例えば、ネットワーク通信部701は、撮像装置110と直接接続を確立して、ネットワーク120や他の装置を介さずに、撮像装置110と通信するように構成されてもよい。制御部702は、ROM603のプログラム、もしくはRAM602にロードしたプログラムを実行することで、ネットワーク通信部701、表示部703、操作部704の処理を実行するように、制御する。表示部703は、例えばディスプレイを介してユーザに情報を提示する。本実施形態では、ブラウザがレンダリングした結果をディスプレイに表示することによって、情報がユーザに提示される。なお、音声や振動等の画面表示以外の方法で情報が提示されてもよい。操作部704は、ユーザからの操作を受け付ける。本実施形態では、操作部704がマウスやキーボードであり、ユーザがこれらを操作して、ブラウザにユーザ操作を入力するものとする。ただし、これに限られず、操作部704は、例えば、タッチパネルやマイクなど、他のユーザの意図を検出することができる任意のデバイスであってもよい。
【0046】
<処理の流れ>
続いて、システム内で実行される処理の流れの例について説明する。なお、以下の各処理のうち撮像装置110が実行する処理は、例えば、演算処理部203内のプロセッサがメモリ等に記憶されたプログラムを実行することによって実現される。ただし、これは一例に過ぎず、後述の処理の一部又は全部が、専用のハードウェアによって実現されてもよい。また、着脱可能デバイス100や入出力装置130が実行する処理についても、各装置におけるプロセッサがメモリ等に記憶されたプログラムを実行することによって実現されてもよいし、処理の一部又は全部を、専用のハードウェアによって実現してもよい。
【0047】
<全体の流れ>
図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の処理の少なくとも一部が繰り返し実行されてもよい。
【0048】
<着脱可能デバイスのConfigデータ書き換えシーケンス>
図7に、着脱可能デバイス100で実行されるConfigデータ書き換えシーケンスの一連の流れを概略的に示す。本処理では、まず、ユーザによって、撮像装置110に着脱可能デバイス100が装着された後、撮像装置110に電源が投入される(S701)。この結果、着脱可能デバイス100にも電源が投入されることにより、FPGA402と記憶部404にも電源が投入される。
【0049】
FPGA402に選定されたデバイスに応じて、電源電圧が一定値を超えると、FPGA402は内部でPOR(Power On Reset)が解除される(S702)。FPGA402はPORが解除されると、まずConfig制御部415と記憶部I/F413が動作を開始する。Config制御部415は、記憶部I/F413を経由して記憶部404にアクセスし、Configデータを読み出し、FPGA402のコンフィグレーションを行う(S703)。FPGA402は、コンフィグレーション完了後Configデータに基づいて起動する(S704)。撮像装置110とFPGA402は、SD規格に準拠したコマンドで通信しながら、画像解析処理等を行う(S705)。撮像装置110は、ユーザから不図示の操作部を介して、FPGA402のアップデートコマンド(更新コマンド)を受信したか否かを判定する(S706)。アップデートコマンドを受信したと判定した場合、撮像装置110は、SD I/F部205を介して、FPGA402に対してアップデートコマンドを送信する。FPGA402は、撮像装置110から受け取ったコマンドがアップデートコマンドだった場合はS706以降のアップデートシーケンスすることになる。また、撮像装置110は、アップデートコマンドを受信していないと判定した場合は、引き続き他のコマンドの受信と対応する処理を行うため、処理をS705に戻す。
【0050】
FPGA402は、アップデートシーケンスに移行した際、入出力制御部410は撮像装置110からI/F部401を経由して入力されたデータを、Configデータ書換部414へ出力するように設定する。また、シーケンス検出部421は、アップデートシーケンス移行後の受信したコマンドの順序が、Configデータのための既定の順序を満たしているかの確認をスタートする。なお、前記既定の順序は、Configデータのサイズや、記憶部404で使用しているデバイスに応じて決めるものとする。また、アップデートシーケンス移行後、Configデータ書換部414は、Configデータが正しく書き換えられるまで、Config外部制御部403に再ロード信号が出ないように制御される(S707)。撮像装置110は、FPGA402にConfigデータを送信する。FPGA402は、撮像装置110から受信したConfigデータをコマンドに基づいて、Configデータ書換部414を経由し、記憶部404へ書き込む。なお、書き込む際のアドレスについては、FPGA402でコンフィグレーション時にアクセスする領域と一致する(S708)。Configデータの書き込み完了後、撮像装置110は記憶部404の前記アドレスのデータを読み出すコマンドをFPGA402へ送信する。FPGA402は、撮像装置110から受信したコマンドに基づき、記憶部404の前記アドレスに書き込まれているデータを読み出し、撮像装置110に送信する(S709)。撮像装置110は、書き込んだConfigデータと読み出したデータを比較し、一致するかどうかを判断する。データが一致している場合は正しく書き込めたと判断する。また、撮像装置110は、不一致の場合、正しく書き込めなかったと判断し、アップデートシーケンスを再度行う(S710)。FPGA402は、S707以降受信したコマンドが既定の順序を満たしていたかを判断し、満たしていた場合は再起動へ、そうでない場合は撮像装置110に再度アップデートシーケンスを実行するように通知を送る(S711)。再起動へ移行すると、Configデータ書換部414はConfig外部制御部403へ再ロードの信号を出し、FPGA402は再度コンフィグレーションを開始する(S712)。
【0051】
以上が、本実施形態における基本的な着脱可能デバイスのConfigデータ書き換えシーケンスである。
【0052】
<Configデータ書き換えシーケンスの読み書き部分の詳細>
図8(a),(b)に、撮像装置110、(着脱可能デバイス100の)FPGA402、記憶部404間で行われるConfigデータの読み書きにかかるConfigデータ書き換えシーケンスの一連の流れを、コマンドベースで示す。
【0053】
図8(a)に示すシーケンス図は、縦軸が時間の経過軸を示し、下方向が時間の流れを表している。また、四角部分が処理を行っている期間、矢印がコマンドの発行を示している。また、撮像装置110から直接に記憶部404と通信することはできない。撮像装置110は、書き込みコマンドを発行し、FPGA402に対してConfigデータの送信を開始する。この際、撮像装置110は、FPGA402に対してデータ量を含む情報、具体的には、何ブロック分のデータを送信するかの情報を、FPGA402へ送信する。次に、FPGA402は、記憶部404に対して書き込み領域を指定するアドレス情報を含むWriteコマンドとデータをセットにして送信する。書き込み後、撮像装置110は読み出しコマンドを発行し、FPGA402からデータの受信を開始する。この際、撮像装置110は、FPGA402に対して記憶部404の読み出し開始アドレスの情報を送信する。次にFPGA402は、前記読み出し開始アドレス情報を含むReadコマンドを記憶部404へ送信する。記憶部404は、Readコマンドを受信すると、前記読み出し開始アドレスからFPGA402からデータ転送の終了信号を受信するまで、FPGA402に対して順にデータを送信する。FPGA402は、記憶部404から受信したデータが所定のサイズ分を超えると、撮像装置110へ送信する。この2つの動作を、Configデータサイズ分繰り返し、FPGA402は記憶部404に対してデータ転送の終了信号を送信する。その後、撮像装置110は、再ロードコマンドを発行し、FPGA402の再起動を開始する。FPGA402は、撮像装置110から再ロードコマンドを受信すると、記憶部404に対してデバイスごとに決められたアドレスからConfigデータを読み出し、再起動を行う。ここまで複数のコマンドを用いているが、それぞれプロトコルが異なる。コマンドの種別を追記した図を図8(b)に示す。
【0054】
図8(b)に示すように、本実施形態において、コマンドのプロトコルはコマンド群A、B、Cの3種類が存在する。コマンド群Aは、SD規格に則ったプロトコルである。コマンド群Bは、記憶部404の仕様に則ったプロトコルであり、記憶部404に用いるデバイスに応じて選択される。コマンド群Cは、FPGA402のConfig仕様に則ったプロトコルであり、FPGA402で用いるデバイスにハードウェアとして組み込まれた機能である。コマンド群A、Bについては、それぞれのプロトコルを満たすように、FPGA402のプログラム設計者が回路構成を決める。
【0055】
<Configデータの書き込み成否判断のバリエーション>
「着脱可能デバイスのConfigデータ書き換えシーケンス」の中で示した例では、Configデータの書き込みが正しく行われたかの判断方法の1つとして、受信したコマンドが既定の順序を満たしていたかを基準とした。
【0056】
他の基準として、例えば、一定期間内にアップデートシーケンスを完了したかを基準とした方法も考えられる。その場合、撮像装置110はアップデートシーケンスコマンド発行してから時間計測を開始し(S707)、記憶部404からデータの読み出し後に時間計測を完了、比較する(S710)処理を追加する。アップデートシーケンスにかかる期間の決め方としては、撮像装置110とFPGA402のデータ転送時間、FPGA402から記憶部404へのデータ転送時間、プロトコル変換にかかる時間などから算出するとよい。また、基準は複数設けてもよく、上記の2つの基準を組み合わせて用いてもよい。
【0057】
<Configデータの書き込み失敗時の対策>
ここまでに示したConfigデータ書き換えシーケンスでは、読み書きのデータを比較し、不一致の場合はアップデートシーケンスを再度実行する(S710)としていた。
【0058】
他の処理方法として、元々記憶部404に記録されていたデータを退避しておき、上記の条件の場合は書き戻すという方法も考えられる。この場合のConfigデータ書き換えシーケンスを、図9に示し、図7に示すConfigデータ書き換えシーケンスとの差分を述べる。
【0059】
図9のConfigデータ書き換えシーケンスに移行した場合、撮像装置110は、アップデートシーケンス開始に先立ち、まず記憶部404の書換予定の領域からデータを読み出し、データを記憶部303に保持する(S900)。そして、撮像装置110は、読み書きデータの比較で不一致となって、Configデータ書き換に失敗したと判定した場合、上記保持データを書き込み(S901)、通常動作に戻るため処理をS705に戻す。
【0060】
なお、上記例では、読み出したデータを保持するのは、撮像装置110の記憶部303(演算処理部203内のRAMや不揮発性メモリとしたが、着脱可能デバイス100、もしくは、FPGA402上に十分な記憶領域があればそちらを用いてもよい。この場合、撮像装置110は、FPGA402に対し、記憶部404内の書き換え対象の領域のデータの移動先アドレスを設定し、その移動先アドレスへの移動(コピー)コマンドを発行し、退避させる。そして、退避後に、Configデータの書き換えを行う。そして、Configデータの書き換に失敗したと判定した場合、退避したデータを元の位領域に移動させ(S901)、通常動作に戻るため処理をS705に戻す。
【0061】
どちらの場合においても、FPGA402には、各通信プロトコルに則りつつ、書換予定の領域からデータを読み書きするための回路構成の追加が必要となる。
【0062】
また、上記実施形態では、着脱可能デバイス100が、SDカードに所定の処理回路を搭載したデバイスであり、撮像装置110が持つSD I/部に接続するものとして説明した。しかしながら、撮像装置110と着脱可能デバイス100間のインタフェースは、これに限らず、例えばUSBインタフェースであっても構わない。
【0063】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0064】
100…着脱可能デバイス、110…撮像装置、120…ネットワーク、130…入出力装置、301…撮像制御部、302…信号処理部、303…記憶部、304…制御部、305…解析部、306…デバイス通信部、307…ネットワーク通信部、401…I/F部、402…FPGA,403…Configration外部制御部、404…記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11