(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023036463
(43)【公開日】2023-03-14
(54)【発明の名称】スパイキングニューラルネットワーク構成方法、画像認識装置、および監視カメラシステム
(51)【国際特許分類】
G06N 3/04 20230101AFI20230307BHJP
【FI】
G06N3/04
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2021143528
(22)【出願日】2021-09-02
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】藤本 和久
(72)【発明者】
【氏名】高田 正法
(57)【要約】
【課題】使用環境に適したスパイキングニューラルネットワークを構成し得るスパイキングニューラルネットワーク構成方法を提供する。
【解決手段】ディープニューラルネットワークモデルは、畳み込み層を1つ以上備える基本ブロックが1つ以上連結されて構成され、基本ブロックへの入力は、基本ブロックの最初の畳み込み層に接続され、基本ブロックからの出力は、入力から分岐した入力と、基本ブロックの最後の畳み込み層からの出力とが合成された出力であり、スパイキングニューラルネットワーク構成方法は、処理部が、スパイキングニューラルネットワークを実装する予め定めた脳型デバイスの個数と予め定めたスパイキングニューラルネットワークによる推論の認識精度とを満たすように、ディープニューラルネットワークモデルの畳み込み層を構成することを含むようにした。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ディープニューラルネットワークモデルの学習を完了したディープニューラルネットワークを変換してスパイキングニューラルネットワークを構成するスパイキングニューラルネットワーク構成方法であって、
前記ディープニューラルネットワークモデルは、畳み込み層を1つ以上備える基本ブロックが1つ以上連結されて構成され、
前記基本ブロックへの入力は、前記基本ブロックの最初の畳み込み層に接続され、前記基本ブロックからの出力は、前記入力から分岐した入力と、前記基本ブロックの最後の畳み込み層からの出力とが合成された出力であり、
処理部が、前記スパイキングニューラルネットワークを実装する予め定めた脳型デバイスの個数と予め定めた前記スパイキングニューラルネットワークによる推論の認識精度とを満たすように、前記ディープニューラルネットワークモデルの畳み込み層を構成することを含む、
スパイキングニューラルネットワーク構成方法。
【請求項2】
前記ディープニューラルネットワークモデルは、前記基本ブロックが複数連結されて構成され、
前記処理部は、前記スパイキングニューラルネットワークを前記予め定めた個数の脳型デバイスに実装可能であるか否かを判定し、前記スパイキングニューラルネットワークを前記予め定めた個数の脳型デバイスに実装可能でないと判定した場合、前記基本ブロックの連結数を減らす、
請求項1に記載のスパイキングニューラルネットワーク構成方法。
【請求項3】
前記基本ブロックは、畳み込み層を複数備え、
前記処理部は、前記スパイキングニューラルネットワークを前記予め定めた個数の脳型デバイスに実装可能であると判定した場合、前記スパイキングニューラルネットワークによる推論の認識精度が前記予め定めた認識精度未満であるときは、前記基本ブロックを構成する畳み込み層の層数を減らす、
請求項2に記載のスパイキングニューラルネットワーク構成方法。
【請求項4】
データを記憶する記憶装置と、前記記憶装置に記憶されているデータを処理する処理装置と、を備える画像認識装置であって、
請求項1に記載のスパイキングニューラルネットワーク構成方法により構成された所定の画像の認識処理を行うスパイキングニューラルネットワークが実装された脳型デバイスと、
前記脳型デバイスによる認識処理の結果を出力する出力部と、
を備える画像認識装置。
【請求項5】
請求項1に記載のスパイキングニューラルネットワーク構成方法により構成された所定の画像の認識処理を行うスパイキングニューラルネットワークが実装された脳型デバイスが接続されている1以上のカメラと、
前記カメラによる認識処理の結果を管理する管理装置と、
前記カメラと前記管理装置とを、ネットワークを介して接続するスイッチと、
備える監視カメラシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、脳処理を模倣したスパイキングニューラルネットワークの構成方法に関する。
【背景技術】
【0002】
近年、画像認識アプリケーション、音声認識アプリケーション等を始めとする様々なアプリケーションにおいて、AI(Artificial Intelligence)とりわけ深層学習の活用が進展し、映像監視、チャットボット等において社会実装が進んでいる。深層学習の一適用例である映像監視として、駅、空港、通り等の公共の場における、不審者、不明者等の特定の人物の発見および追跡、作業現場における作業者の不適切な行動等の特定の行動の発見といった例がある。
【0003】
従来の映像監視システムでは、3-4台の監視カメラから出力される映像から切り出した画像の推論を、深層学習を使って1台のGPU(Graphics Processing Unit)サーバに実装されたGPUで処理している。近年、監視カメラの台数が増大しているが、監視カメラの台数を増やす場合、GPUサーバを増やす必要があり、GPUサーバの導入コストが増えるという課題がある。また、GPUの消費電力は、CPU(Central Processing Unit)等に比べて大きいため、消費エネルギーが大幅に増大するという課題がある。
【0004】
画像の学習および推論においては、複雑な画像の認識精度を向上できるという点から、ディープニューラルネットワーク(DNN)の一種であるニューラルネットワークモデルResNet(Residual Network)が用いられる(非特許文献1)。また、消費エネルギーを削減するため、DNNを、脳処理を模倣するスパイキングニューラルネットワーク(SNN)に変換し、消費電力の低い脳型デバイスで推論を行う手法が研究されている(非特許文献2)。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】”Deep Residual Learning for Image Recognition”, Kaiming He, et.Al., CVPR, 2016, Volume 1, pp 770-78
【非特許文献2】”Benchmarking Keyword Spotting Efficiency on Neuromorphic Hardware”, P. Blouw, et al.,in NICE '19, March 2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
画像中の人物、物体等(人物等)の認識を行うシステムの一例として、例えば、監視カメラシステムがある。監視カメラシステムでは、システム構成およびその設置場所によって、許容される消費電力が制限される。そのため、監視カメラ内部に人物等の認識を行う脳型デバイスを実装する場合、脳型デバイスの個数をできるだけ少なくする必要がある。一方で、従来技術のResNetでは、画像の認識精度を上げるためにニューラルネットワークの層数を増やす必要がある。また、DNNから変換したSNNを脳型デバイスで実行する場合、脳型デバイス1個に実装できるSNNの層数が制限される。したがって、画像の認識精度を向上するためにSNNの層数を増やすと、必要な脳型デバイスの個数が増えてしまう。
【0007】
本発明は、以上の点を考慮してなされたもので、使用環境に適したスパイキングニューラルネットワークを構成し得るスパイキングニューラルネットワーク構成方法等を提案しようとするものである。
【課題を解決するための手段】
【0008】
かかる課題を解決するため本発明においては、ディープニューラルネットワークモデルの学習を完了したディープニューラルネットワークを変換してスパイキングニューラルネットワークを構成するスパイキングニューラルネットワーク構成方法であって、前記ディープニューラルネットワークモデルは、畳み込み層を1つ以上備える基本ブロックが1つ以上連結されて構成され、前記基本ブロックへの入力は、前記基本ブロックの最初の畳み込み層に接続され、前記基本ブロックからの出力は、前記入力から分岐した入力と、前記基本ブロックの最後の畳み込み層からの出力とが合成された出力であり、処理部が、前記スパイキングニューラルネットワークを実装する予め定めた脳型デバイスの個数と予め定めた前記スパイキングニューラルネットワークによる推論の認識精度とを満たすように、前記ディープニューラルネットワークモデルの畳み込み層を構成することを含むようにした。
【0009】
上記構成では、例えば、予め定めた脳型デバイスの個数と予め定めた推論の認識精度とを満たすように畳み込み層が構成されるので、使用環境において許容される脳型デバイスの個数と推論の認識精度との要件を満たすスパイキングニューラルネットワークを構成することができる。
【発明の効果】
【0010】
本発明によれば、スパイキングニューラルネットワークを適切に構成することができる。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態によるSNNの一例を示す図である。
【
図2】第1の実施の形態による基本ブロックの構成の一例を示す図である。
【
図3】第1の実施の形態によるSNN構成処理の一例を示す図である。
【
図4】第1の実施の形態によるSNN構成処理の一例を示す図である。
【
図5】第1の実施の形態による画像認識装置の一例を示す図である。
【
図6】第1の実施の形態による画像認識処理の一例を示す図である。
【
図7】第1の実施の形態による監視カメラシステムの一例を示す図である。
【
図8】第1の実施の形態による監視カメラシステムの一例を示す図である。
【発明を実施するための形態】
【0012】
(I)第1の実施の形態
以下、本発明の一実施の形態を詳述する。ただし、本発明は、実施の形態に限定されるものではない。
【0013】
本実施の形態では、所定の脳型デバイスの個数と、推論対象の画像における所定の認識精度とを満足するSNNを構成する方法(スパイキングニューラルネットワーク構成方法)について説明する。より具体的には、本実施の形態では、監視カメラ等から得られる画像中の人物等の認識を行うシステムにおいて、システムの設置場所において許容される消費電力と、当該システムに求められる認識精度とを満足するシステムを実現する方法について説明する。
【0014】
本実施の形態によれば、例えば、監視カメラシステムにおいて、所定の脳型デバイスの個数と、推論対象の画像における所定の認識精度とを満足するようにSNNを構成することができる。それによって、監視カメラシステムの設置場所によって許容される消費電力を満足するようにシステムを構成することができる。
【0015】
次に、本発明の実施の形態を図面に基づいて説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は、単数でも複数でも構わない。
【0016】
なお、以下の説明では、図面において同一要素については、同じ番号を付し、説明を適宜省略する。また、同種の要素を区別しないで説明する場合には、枝番を含む参照符号のうちの共通部分(枝番を除く部分)を使用し、同種の要素を区別して説明する場合は、枝番を含む参照符号を使用することがある。例えば、基本ブロックを特に区別しないで説明する場合には、「基本ブロック102」と記載し、個々の基本ブロックを区別して説明する場合には、「基本ブロック102-1」、「基本ブロック102-2」のように記載することがある。
【0017】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は、文脈毎に用いられ、1つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【0018】
<スパイキングニューラルネットワークの構成>
図1は、本実施の形態によるSNNの一例(SNN101)を示す。SNN101は、画像認識を行うための脳処理を模倣したスパイキングニューラルネットワークである。SNN101は、1つの基本ブロック102または2つ以上の基本ブロック102が直列に連結して構成されている。
【0019】
SNN101は、DNNモデルの学習を完了したDNNが変換されることにより構成される。その変換には、ソフトウェアツールが用いられてよい。ソフトウェアツールとしては、例えば、インテル社のNxSDK、Applied Brain Research社のNengoが挙げられる。なお、DNNモデルは、SNN101と同様に、1つの基本ブロック102または2つ以上の基本ブロック102が直列に連結して構成されている。
【0020】
図2は、基本ブロック102の構成の一例を示す。基本ブロック102は、1つ乃至3つの畳み込み層201を直列に連結した畳み込み層群から構成される。基本ブロック102への第1の入力211は、畳み込み層群の最初の畳み込み層201-1に接続される。第1の入力211から分岐した第2の入力212は、畳み込み層群の最後の畳み込み層201-2からの第1の出力221と合成され、第2の出力222として、基本ブロック102の出力となる。
【0021】
<スパイキングニューラルネットワークの構成方法>
図3および
図4は、
図1に示すSNN101の構成を決定するための手順、より具体的には、SNN101における基本ブロック102の個数と、基本ブロック102における畳み込み層201の層数とを決定する手順(SNN構成処理)の一例を示す。これらを決定するために、画像認識を行うシステムの要件から、所定の脳型デバイスの個数、所定の認識精度を設定しておく。これら2つの条件をもとに、SNN101が構成される。
【0022】
なお、
図3および
図4に示すSNN構成処理は、脳型計算機のCPUが補助記憶装置に格納されたプログラムを主記憶装置に読み出して実行したり、脳型計算機の脳型デバイスが実装されたSNNを用いて推論を行ったりすることにより実現される。脳型計算機については、例えば、
図5に示す脳型計算機510を採用することができる。なお、脳型計算機の機能(例えば、処理部)は、例えば、CPUが補助記憶装置に格納されたプログラムを主記憶装置に読み出して実行すること(ソフトウェア)により実現されてもよいし、専用の回路等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。また、脳型計算機の1つの機能は、複数の機能に分けられていてもよいし、複数の機能は、1つの機能にまとめられていてもよい。また、脳型計算機の機能の一部は、別の機能として設けられてもよいし、他の機能に含められていてもよい。また、脳型計算機の機能の一部は、脳型計算機と通信可能な他のコンピュータにより実現されてもよい。
【0023】
処理部は、SNN構成処理を開始すると(S301)、まず、DNNモデル設計処理を行う(S302)。
【0024】
【0025】
処理部は、DNNモデル設計処理を開始すると(S401)、まず、1回目の処理であるか否かを判定する(S402)。処理部は、1回目の処理であると判定した場合、基本ブロック102の連結数と、基本ブロック102内のそれぞれの畳み込み層を構成するニューロン数とを設定する(S403)。例えば、連結数は、認識しようとする人物等の形状の複雑度(例えば、解像度)に合わせて設定される。ニューロン数は、例えば、入力する画像の画素数に合わせて設定される。例えば、処理部は、解像度に対応して連結数が規定されたテーブルを参照して連結数を設定し、画素数に対応してニューロン数が規定されたテーブルを参照してニューロン数を設定する。
【0026】
次に、処理部は、再度、1回目の処理であるか否かを判定する(S404)。処理部は、1回目の処理であると判定した場合、基本ブロック102内の畳み込み層の層数を「3」に設定し(S405)、DNNモデル設計処理を終了する(S406)。
【0027】
次に、処理部は、
図3に示す学習用パラメータ設定を行う(S303)。ここでは、処理部は、少なくとも、DNNモデルの学習において使用されるパラメータとして、バッチサイズと、エポック数と、畳み込み層を構成するニューロンへの入力に掛け合わされる重みの行列であるフィルタのサイズおよびフィルタの数とを設定する。
【0028】
次に、処理部は、学習用の教師画像を所定の枚数入力し、設定したパラメータのもとで、設計したDNNモデルの学習を行う(S304)。
【0029】
処理部は、学習の結果、損失(正解画像からのずれ)の値が所定の値以下であるか否か(学習を完了したか否か)を判定する(S305)。処理部は、損失の値が所定の値以下であると判定した場合、学習を完了して処理をS306に移し、損失の値が所定の値以下でないと判定した場合、学習用パラメータの設定(S303)において値(パラメータ)を変えて、再度学習(S304)を行う。
【0030】
処理部は、学習の完了後、前述のソフトウェアツールを用いて学習済みのDNNをSNNに変換する(S306)。
【0031】
次に、変換後のSNNが用いられて、複数枚のテスト用画像の推論が行われる。まず、処理部は、推論用パラメータ設定を行う(S307)。SNNを用いた推論では、脳型デバイスは、各テスト用画像をn回、SNNに繰り返し入力する。そのため、処理部は、繰り返し回数nを少なくとも設定する。また、処理部は、ニューロンの発火率の最大値を少なくとも設定する。
【0032】
処理部は、それらの設定を完了すると、前述のソフトウェアツールを用いて、自動的にSNNを脳型デバイスに実装する(S308)。処理部は、実装が完了すると、ソフトウェアツールを用いて、SNNを実装した脳型デバイスの個数を表示する。そこで、処理部は、SNNを実装した脳型デバイスの個数が所定のデバイス個数以下であるか否かを判定する(S309)。
【0033】
処理部は、所定のデバイス個数に収まらなかったと判定した場合、再度、DNNモデルの設計(S302以降)を行う。処理部は、
図4に示すDNNモデル設計処理において、1回目の処理であるか否かを判断する(S402)。2度目以降である場合、処理部は、
図3の処理のうち、デバイスの個数がNGであったのか、認識精度がNGであったのか(NG条件)をチェックする(S411)。ここでは、デバイス個数がNGであったため、基本ブロックの連結数の設定(S403)において、処理部は、基本ブロックの連結数を1つ減らし(DNNモデルの規模を小さくし)、再度、1回目の処理であるか否かを判定する(S404)。ここでは、1回目ではないので、処理部は、DNNモデル設計処理を終了する(S406)。
【0034】
デバイス個数の確認(S309)において、処理部は、所定のデバイス個数以下であると判定した場合、テスト用画像を所定の枚数、脳型デバイスに入力し、脳型デバイスは、推論を行う(S310)。
【0035】
処理部は、推論の結果、認識精度(テスト用画像の正答率)が、所定の認識精度以上であるか否かを判定する(S311)。処理部は、認識精度が所定の認識精度以上であると判定した場合、SNN構成処理を終了する(S313)。処理部は、認識精度が所定の認識精度未満であると判定した場合、推論用パラメータを変えての繰り返しが所定の回数を超えたか否か(所定の回数繰り返したか否か)を判定する(S312)。
【0036】
処理部は、所定の回数繰り返していないと判定した場合、推論用パラメータ設定(S307)で推論用パラメータを変え、以降の処理(S308~S311)を行う。他方、処理部は、所定の回数繰り返したと判定した場合(推論用パラメータを変えて推論を繰り返した結果、所定の認識精度以上にならない場合)、再度、DNNモデル設計処理(S302以降)を行う。この場合、
図4のNG条件(S411)において、認識精度がNGとなるので、基本ブロック102内の畳み込み層の層数の設定(S405)において、処理部は、層数を1つ減らし、DNNモデル設計処理を終了する(S406)。その後、処理部は、
図3の学習用パラメータ設定(S303以降)を行う。
【0037】
以上の処理によれば、システム要件から定められた、所定の脳型デバイスの個数と、推論対象の画像における所定の認識精度とを満足するようにSNN101を構成することが可能となる。
【0038】
<画像認識装置の構成>
図5は、以上の処理により構成したSNN101を実装した脳型デバイスを利用した画像認識装置の一例(画像認識装置500)を示す。
【0039】
画像認識装置500は、脳型計算機510と、脳型計算機510にネットワーク(図示省略)を介して接続される1または複数のカメラ520とを含んで構成される。脳型計算機510は、処理装置511(例えば、CPU)と、脳型デバイス512と、補助記憶装置513と、これらを接続するチップセット514と、主記憶装置515とを備える。カメラ520は、設置された場所の映像を取得(被写体を撮像)し、所定のフォーマットで脳型計算機510に出力する。カメラ520は、ネットワークを介してまたは直接にチップセット514に接続されてよい。
【0040】
処理装置511は、画像認識装置500の全体の動作制御に係るデータ処理を行うプロセッサである。処理装置511は、主記憶装置515に格納されたソフトウェアを実行して、カメラ520から入力される映像の中から所定のフレームの画像を抽出し、脳型デバイス512に入力して処理させ、その処理結果をもとに画像に映っている人物等を認識する。脳型デバイス512は、脳を模倣するスパイキングニューラルネットワーク(SNN)を実行するための専用のデバイスである。
【0041】
補助記憶装置513は、ハードディスク装置、SSD(Solid State Drive)等の大容量の不揮発性の記憶装置である。補助記憶装置513は、カメラ520から送られてきた映像、映像から抽出されたフレーム画像、脳型デバイス512が出力した処理結果等を格納する。補助記憶装置513と主記憶装置515とを総じて記憶装置と称してもよい。なお、図示していないが、脳型計算機510には、モニタ、リモート端末等の端末が接続され、画像認識装置500に対する管理者の操作による指示、画像認識結果の表示等を行うことができる。
【0042】
主記憶装置515は、例えば揮発性の半導体メモリであり、補助記憶装置513からロードされたソフトウェア、各種データ、カメラ520から送られてきた映像、映像から抽出されたフレーム画像等を一時的に記憶(保持)する。主記憶装置515に格納されたプログラムを処理装置511が実行することにより、画像認識装置500における機能が実現される。
【0043】
<画像認識装置の処理動作>
図6は、画像認識装置500における画像認識処理の一例を示す。処理装置511は、画像認識処理を開始すると(S601)、カメラ520から出力される映像を取り込み(S602)、主記憶装置515に格納する。
【0044】
次に、処理装置511は、主記憶装置515に格納される映像を順次読み出しながら、所定のフレームを取り出し、フレームごとに、推論部位の抽出を行う(S603)。推論部位の抽出では、処理装置511は、人物等の推論の対象となる部位を抽出する。そして、処理装置511は、抽出した推論部位の画像を、推論処理へ入力するために必要な所定の画像サイズに変換し、主記憶装置515に格納する。また、処理装置511は、後からの確認用に補助記憶装置513にも格納してもよい。
【0045】
次に、推論処理(S604)では、処理装置511は、主記憶装置515から推論用に処理した画像(推論用画像)を読み出し、脳型デバイス512に入力する。脳型デバイス512には、
図2に示す処理により構成されたSNN101が実装されており、脳型デバイス512は、実装されたSNN101に推論用画像を入力し、推論処理を行う。
【0046】
次に、結果表示(S605)では、脳型デバイス512は、推論処理の結果を主記憶装置515に格納し、処理装置511は、主記憶装置515から推論処理の結果を読み出し、脳型計算機510に接続されているモニタ(図示は省略)に表示する。
【0047】
その後、処理装置511は、稼働終了であるか否か(管理者が、画像認識装置500に対して、画像認識処理の終了指示を出したか否か)を判定し(S606)、稼働終了であると判定した場合、画像認識処理を終了し(S607)、稼働終了でないと判定した場合、画像認識処理(S602~S605)を継続する。
【0048】
<監視カメラシステムの構成の一例>
図7は、本実施の形態による監視カメラシステムの一例(監視カメラシステム700)を示す。
【0049】
監視カメラシステム700は、複数台のカメラ520、LANスイッチ710、およびカメラ520を管理するためのPC(Personal Computer)等の管理装置720を含んで構成されている。複数台のカメラ520と管理装置720とは、LAN730を介して、LANスイッチ710に接続されている。また、カメラ520には、脳型デバイス512がカメラ520内のカメラの制御を行う処理装置に接続されている(図示省略)。あるいは、カメラ520に供給する電力に余裕がある場合、
図5に示す脳型計算機510を小型PCの形に実装した計算機(図示省略)をカメラ520毎に接続し、カメラ520の映像を入力するようにしてもよい。このような構成にすることで、管理装置720にGPUを搭載して画像認識処理をする必要がなくなり、システムの消費エネルギーを削減することができる。
【0050】
<監視カメラシステムの他の構成の一例>
図7に示した監視カメラシステム700の構成では、カメラ520、小型PCのサイズの筐体等の中に実装可能な脳型デバイス512の数は、1乃至2個に制限されるため、システム要件で求められる認識精度を実現するSNN101を実装できない場合がある。そうした場合、
図8に示す、監視カメラシステムの他の構成(監視カメラシステム800)をとることができる。
【0051】
監視カメラシステム800は、複数台のカメラ520、LANスイッチ710、脳型計算機510を含んで構成されている。複数台のカメラ520と脳型計算機510とは、LAN730を介して、LANスイッチ710に接続されている。この構成では、脳型計算機510内に、より多くの脳型デバイス512を実装可能になるので、システム要件で求められる認識精度を実現するより大きい規模、かつ必要最小限の規模のSNNを実装することが可能となる。また、このような構成にすることで、消費電力の高いGPUの代わりに、消費電力の低い脳型デバイス512により推論処理を行うことができるので、システムの消費エネルギーを削減することができる。
【0052】
以上のように、本実施の形態によれば、所定の脳型デバイスの個数と、推論対象の画像における所定の認識精度とを満足するようにSNNを構成することができる。
【0053】
また、例えば、監視カメラシステムにおいて、所定の脳型デバイスの個数と、推論対象の画像における所定の認識精度とを満足するようにSNNを構成することができる。それによって、監視カメラシステムの設置場所によって許容される消費電力を満足するようにシステムを構成することができる。
【0054】
本発明は、例えば、駅、空港、通り等の公共の場における特定の人物の認識、作業現場における作業者の特定の行動の認識のような、人物等の画像認識を行うシステムに広く適用することができる。
【0055】
(II)付記
前述の実施の形態には、例えば、以下のような内容が含まれる。
【0056】
前述の実施の形態において、処理部が基本ブロックの連結数を1つ減らす場合について説明したが、本発明は、この構成に限らない。例えば、処理部が基本ブロックの連結数を複数減らしてもよい。
【0057】
前述の実施の形態において、処理部が畳み込み層の層数を1つ減らす場合について説明したが、本発明は、この構成に限らない。例えば、処理部が畳み込み層の層数を複数減らしてもよい。
【0058】
前述の実施の形態において、情報の出力は、ディスプレイへの表示に限るものではない。情報の出力は、スピーカによる音声出力であってもよいし、ファイルへの出力であってもよいし、印刷装置による紙媒体等への印刷であってもよいし、プロジェクタによるスクリーン等への投影であってもよいし、その他の態様であってもよい。
【0059】
また、上記の説明において、各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記憶装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0060】
上述した実施の形態は、例えば、以下の特徴的な構成を有する。
【0061】
(1)
ディープニューラルネットワークモデルの学習を完了したディープニューラルネットワークを変換してスパイキングニューラルネットワークを構成するスパイキングニューラルネットワーク構成方法であって、前記ディープニューラルネットワークモデルは、畳み込み層(例えば、畳み込み層201)を1つ以上備える基本ブロック(例えば、基本ブロック102)が1つ以上連結されて構成され、前記基本ブロックへの入力(例えば、入力211)は、前記基本ブロックの最初の畳み込み層(例えば、最初の畳み込み層201-1)に接続され、前記基本ブロックからの出力(例えば、第2の出力222)は、前記入力から分岐した入力(例えば、第2の入力212)と、前記基本ブロックの最後の畳み込み層(例えば、最後の畳み込み層201-2)からの出力(例えば、第1の出力221)とが合成された出力であり、処理部(例えば、処理部、CPU、処理装置511、脳型計算機510)が、前記スパイキングニューラルネットワークを実装する予め定めた脳型デバイスの個数と予め定めた前記スパイキングニューラルネットワークによる推論の認識精度とを満たすように、前記ディープニューラルネットワークモデルの畳み込み層を構成することを含む。
【0062】
上記構成では、例えば、予め定めた脳型デバイスの個数と予め定めた推論の認識精度とを満たすように畳み込み層が構成されるので、使用環境において許容される脳型デバイスの個数と推論の認識精度との要件を満たすスパイキングニューラルネットワークを構成することができる。
【0063】
(2)
前記ディープニューラルネットワークモデルは、前記基本ブロックが複数連結されて構成され、前記処理部は、前記スパイキングニューラルネットワークを前記予め定めた個数の脳型デバイスに実装可能であるか否かを判定し(例えば、S309参照)、前記スパイキングニューラルネットワークを前記予め定めた個数の脳型デバイスに実装可能でないと判定した場合、前記基本ブロックの連結数を減らす(例えば、S411、S403参照)。
【0064】
上記構成によれば、例えば、基本ブロックの連結数を減らすことで、スパイキングニューラルネットワークの規模が小さくなるので、予め定めた脳型デバイスの個数に納まるスパイキングニューラルネットワークを構成することができる。
【0065】
(3)
前記基本ブロックは、畳み込み層を複数備え、前記処理部は、前記スパイキングニューラルネットワークを前記予め定めた個数の脳型デバイスに実装可能であると判定した場合、前記スパイキングニューラルネットワークによる推論の認識精度が前記予め定めた認識精度未満であるときは、前記基本ブロックを構成する畳み込み層の層数を減らす(例えば、S411、S405参照)。
【0066】
上記構成によれば、例えば、基本ブロックの畳み込み層の層数を減らすことで、推論の認識精度を高め得るので、所定の推論の認識精度を満足するスパイキングニューラルネットワークを構成することができる。
【0067】
(4)
データを記憶する記憶装置と、前記記憶装置に記憶されているデータを処理する処理装置と、を備える画像認識装置(例えば、画像認識装置500、脳型計算機510)であって、上記(1)に記載のスパイキングニューラルネットワーク構成方法により構成された所定の画像の認識処理を行うスパイキングニューラルネットワークが実装された脳型デバイス(例えば、脳型デバイス512)と、前記脳型デバイスによる認識処理の結果を出力する出力部(例えば、チップセット514、モニタ、通信装置)と、を備える。
【0068】
上記構成によれば、例えば、消費電力の低い脳型デバイスにより画像の認識処理を行うことができるので、画像認識装置の消費エネルギーを削減することができる。
【0069】
(5)
上記(1)に記載のスパイキングニューラルネットワーク構成方法により構成された所定の画像の認識処理を行うスパイキングニューラルネットワークが実装された脳型デバイス(例えば、脳型デバイス512)が接続されている1以上のカメラ(例えば、カメラ520)と、前記カメラによる認識処理の結果を管理する管理装置(例えば、管理装置720)と、前記カメラと前記管理装置とを、ネットワークを介して接続するスイッチ(例えば、LANスイッチ710)と、備える。
【0070】
上記構成によれば、例えば、消費電力が低い脳型デバイスによる認識処理がカメラ毎に可能となり、カメラ台数をスケールアップしたときの消費電力を抑制することができる。
【0071】
また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。
【0072】
「A、B、およびCのうちの少なくとも1つ」という形式におけるリストに含まれる項目は、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)または(A、B、およびC)を意味することができると理解されたい。同様に、「A、B、またはCのうちの少なくとも1つ」の形式においてリストされた項目は、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)または(A、B、およびC)を意味することができる。
【符号の説明】
【0073】
500……画像認識装置、510……脳型計算機、512……脳型デバイス。