(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024165300
(43)【公開日】2024-11-28
(54)【発明の名称】スパイキングニューラルネットワークの生成方法、画像認識装置、および計算機システム
(51)【国際特許分類】
G06N 3/049 20230101AFI20241121BHJP
G06N 3/082 20230101ALI20241121BHJP
【FI】
G06N3/049
G06N3/082
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023081386
(22)【出願日】2023-05-17
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】藤本 和久
(72)【発明者】
【氏名】細木 浩二
(57)【要約】
【課題】DNN(ディープニューラルネットワーク)から認識精度が高いSNN(スパイキングニューラルネットワーク)を生成する。
【解決手段】処理装置は、連結された複数の畳み込み層を含むDNNを定義する第1定義情報と、最後の畳み込み層のニューロンの活性化率が満たすべき条件とを受け付け、少なくとも一つの畳み込み層の出力と、DNNへの入力とが合成されるように、DNNの構造を変更し、構造が変更されたDNNを用いて、前記条件を満たすように学習処理を実行し、学習されたDNNを変換してSNNを定義する第2定義情報を生成する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
処理装置および前記処理装置に接続されるメモリを有する計算機が実行するスパイキングニューラルネットワークの生成方法であって、
前記処理装置が、連結された複数の畳み込み層を含む、ディープニューラルネットワークを定義する第1定義情報を受け付け、前記メモリに格納する第1のステップと、
前記処理装置が、最後の前記畳み込み層のニューロンの活性化率が満たすべき条件を受け付け、前記メモリに格納する第2のステップと、
前記処理装置が、少なくとも一つの前記畳み込み層の出力と、前記ディープニューラルネットワークへの入力とが合成されるように、前記ディープニューラルネットワークの構造を変更する第3のステップと、
前記処理装置が、構造が変更された前記ディープニューラルネットワークを用いて、前記条件を満たすように学習処理を実行する第4のステップと、
前記処理装置が、学習された前記ディープニューラルネットワークを変換して、スパイキングニューラルネットワークを定義する第2定義情報を生成し、前記メモリに格納する第5のステップと、
を含むことを特徴とするスパイキングニューラルネットワークの生成方法。
【請求項2】
請求項1に記載のスパイキングニューラルネットワークの生成方法であって、
前記第1定義情報によって定義される前記ディープニューラルネットワークは、最後の前記畳み込み層の出力を処理する全結合層を少なくとも一つ含み、
前記第3のステップは、前記処理装置が、最後の前記畳み込み層以外の少なくとも一つの前記畳み込み層の出力と、前記ディープニューラルネットワークへの入力とが合成され、かつ、最後の前記畳み込み層の出力と、前記ディープニューラルネットワークへの入力とが合成されるように、前記ディープニューラルネットワークの構造を変更するステップを含むことを特徴とするスパイキングニューラルネットワークの生成方法。
【請求項3】
請求項1に記載のスパイキングニューラルネットワークの生成方法であって、
前記第1定義情報によって定義される前記ディープニューラルネットワークは、最後の前記畳み込み層の出力を処理する全結合層を少なくとも一つ含み、
前記第3のステップは、前記処理装置が、最後の前記畳み込み層以外の少なくとも一つの前記畳み込み層の出力と、前記ディープニューラルネットワークへの入力とが合成されるように、前記ディープニューラルネットワークの構造を変更するステップを含むことを特徴とするスパイキングニューラルネットワークの生成方法。
【請求項4】
画像を格納する記憶装置および画像認識処理を実行する脳型デバイスを備える画像認識装置であって、
前記脳型デバイスは、前記画像に対して、請求項1に記載の前記スパイキングニューラルネットワークを用いた前記画像認識処理を実行することを特徴とする画像認識装置。
【請求項5】
計算機システムであって、
画像を取得し、前記画像を用いた画像認識処理を実行するエッジ装置と、
前記エッジ装置の画像認識処理の結果を取得する管理計算機と、を備え、
前記エッジ装置は、前記画像に対して、請求項1に記載のスパイキングニューラルネットワークを用いた前記画像認識処理を実行することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、脳処理を模倣したスパイキングニューラルネットワークの生成方法に関する。
【背景技術】
【0002】
近年、画像認識および音声認識を始めとする様々なアプリケーションにおいて、AIとりわけ深層学習の活用が進展し、映像監視およびチャットボット等において社会実装が進んでいる。深層学習の適用例として映像監視、例えば、駅、空港、通り等の公共の場での不審者および不明者等、特定の人物の発見および追跡、作業現場における作業者の特定の行動、例えば危険な行動の発見等の例がある。
【0003】
画像の学習/推論には、複雑な画像の認識精度を向上できるという点から、畳み込みニューラルネットワーク(CNN)の一種であるVGGnet(例えば、非特許文献1を参照)およびResNet(Residual Network)(例えば、非特許文献2を参照)が用いられる。画像に映っている識別対象物の種類が数十以上と多い場合に高い識別精度を得るため、これらのニューラルネットワークは畳み込み層を数十から100層以上連結して構成される。これらのCNNを用いて画像認識を行う場合、計算処理負荷が大きいためGPU(Graphics Processing Unit)サーバで処理を行う必要があり消費電力が大きいという課題がある。
【0004】
消費電力を削減するため、CNNを、脳処理を模倣するスパイキングニューラルネットワーク(SNN)に変換し、消費電力の低い脳型デバイスで推論を行う手法が研究されている(例えば、非特許文献3を参照)。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】“Very deep convolutional networks for large-scale image recognition”, K. Simonyan and A. Zisserman, in ICLR, 2015.
【非特許文献2】”Deep Residual Learning for Image Recognition”, Kaiming He, et. Al., CVPR, 2016, Volume 1, pp 770-78
【非特許文献3】”Benchmarking Keyword Spotting Efficiency on Neuromorphic Hardware”, P. Blouw, et al., in NICE '19, March 2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
CNNをSNNに変換する方法は、画像認識などアプリケーションで実績のあるCNNを活用できるという点でメリットがあり、主要なSNN構築方法である。アプリケーションで実績のある従来技術のCNNは、ネットワークの畳み込み層の数が数十から100層以上と多い。しかし、畳み込み層数の多いCNNをSNNに変換すると、SNNでの認識精度はCNNの認識精度に対し大きく劣化するという課題がある。認識精度が劣化する理由は、CNNを構成する畳み込み層で入力が減衰するためである。多数の畳み込み層を重ねると各畳み込み層での入力の減衰によって、最終段では元の画像(入力)の情報が失われてしまうため、認識精度が劣化する。このように多層のCNNを変換したSNNでは認識精度が劣化するため、アプリケーションにおいて実績のある多層のCNNをSNNで活用できなかった。
【0007】
そこで、本発明の目的は、多層のCNNをSNNに変換する場合に、CNNの認識精度に対して認識精度が劣化しないSNNを生成することである。
【課題を解決するための手段】
【0008】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、処理装置および前記処理装置に接続されるメモリを有する計算機が実行するスパイキングニューラルネットワークの生成方法であって、前記処理装置が、連結された複数の畳み込み層を含む、ディープニューラルネットワークを定義する第1定義情報を受け付け、前記メモリに格納する第1のステップと、前記処理装置が、最後の前記畳み込み層のニューロンの活性化率が満たすべき条件を受け付け、前記メモリに格納する第2のステップと、前記処理装置が、少なくとも一つの前記畳み込み層の出力と、前記ディープニューラルネットワークへの入力とが合成されるように、前記ディープニューラルネットワークの構造を変更する第3のステップと、前記処理装置が、構造が変更された前記ディープニューラルネットワークを用いて、前記条件を満たすように学習処理を実行する第4のステップと、前記処理装置が、学習された前記ディープニューラルネットワークを変換して、スパイキングニューラルネットワークを定義する第2定義情報を生成し、前記メモリに格納する第5のステップと、を含む。
【発明の効果】
【0009】
本発明によれば、認識精度の劣化を抑えたSNNを生成できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】実施例1のSNNの構造の特徴を示す図である。
【
図2】実施例1のSNNの構造の一例を示す図である。
【
図3】実施例1のSNNの構造の一例を示す図である。
【
図4】実施例1のSNNの生成方法の一例を説明するフローチャートである。
【
図5】実施例1の脳型計算機の一例を示す図である。
【
図6】実施例1のSNNを実装した脳型計算機の活用の一例を示す図である。
【
図7】実施例1のSNNを実装した脳型計算機が実行する画像認識処理の一例を説明するフローチャートである。
【
図8】実施例1の監視カメラシステムの一例を示す図である。
【
図9】実施例1の監視カメラシステムの別例を示す図である。
【発明を実施するための形態】
【実施例0011】
以下、図面を参照して、本発明の一実施の形態を説明する。ただし、本発明は、実施の形態に限定されるものではない。
【0012】
実施例1では、認識対象を含む画像を用いた認識処理の精度が高いSNNを生成する方法について説明する。より具体的には、本実施の形態では、監視カメラ等から得られる画像中の人物等の認識を行うシステムにおいて、当該システムに求められる認識精度を満足するシステムを実現する方法について説明する。
【0013】
まず、本実施例のスパイキングニューラルネットワーク(SNN)の構造の特徴について説明する。
図1は、実施例1のSNNの構造の特徴を示す図である。
図1では、SNN1の一部を示しており、具体的には、畳み込み層への入力、畳み込み層からの出力、および畳み込み層の間の接続のしかたを示す。
【0014】
SNN1は、画像認識を行うための脳処理を模倣したスパイキングニューラルネットワークである。SNN1は、複数の畳み込み層10が直列に連結された構造となっている。SNN1への第1入力50-1は、最初の畳み込み層10-1に入力される。畳み込み層10-1の第1出力60-1は第1入力50-1を分岐した第2入力50-2と合成され、第3入力50-3として畳み込み層10-2に入力される。畳み込み層10-2の第2出力60-2は第2入力50-2と合成され、第4入力50-4として次段の畳み込み層50(図示省略)に入力される。
【0015】
SNN1は、学習済みのDNNを変換することによって生成される。変換には、例えば、OSS(Open Source Software)のLAVA、およびApplied Brain Research社のNengo等を用いることができる。
【0016】
なお、DNNは、SNN1と同様に、複数の層が直列に連結された構造となっている。
【0017】
図2は、実施例1のSNNの構造の一例を示す図である。
【0018】
SNN2は、10個の畳み込み層10と、2個の全結合層20とから構成される。複数の畳み込み層10は直列に連結され、最後の畳み込み層10-10の次段に全結合層20-1、20-2が直列に連結される。
【0019】
SNN2への第1入力50-1は、最初の畳み込み層10-1に入力される。畳み込み層10-1の第1出力60-1は第1入力50-1を分岐した第2入力50-2と合成され、第3入力50-3として畳み込み層10-2に入力される。畳み込み層10-2の第2出力60-2は第2入力50-2と合成され、第4入力50-4として次段の畳み込み層10に入力される。最後の畳み込み層10-10の第10出力60-10は第2入力50-2と合成され、第12入力50-12として全結合層20-1に入力される。最終段の全結合層20-2はSNN2の最終出力として出力70を出力する。
【0020】
図3は、実施例1のSNNの構造の一例を示す図である。
【0021】
SNN3は、10個の畳み込み層11と、2個の全結合層21とから構成される。複数の畳み込み層11は直列に連結され、最後の畳み込み層11-10の次段に全結合層21-1、21-2が直列に連結される。
【0022】
SNN3への第1入力51-1は、最初の畳み込み層11-1に入力される。畳み込み層11-1の第1出力61-1は第1入力51-1を分岐した第2入力51-2と合成され、第3入力51-3として畳み込み層11-2に入力される。畳み込み層11-2の第2出力61-2は第2入力51-2と合成され、第4入力51-4として次段の畳み込み層11に入力される。9番目の畳み込み層11-9の第9出力61-9は第2入力51-2と合成され、第11入力51-11として最後の畳み込み層11-10に入力される。最後の畳み込み層11-10の第10の出力61-10は、全結合層21-1に入力される。最終段の全結合層21-2はSNN3の最終出力として出力71を出力する。
【0023】
SNN2およびSNN3の違いは、最初の全結合層20-1、21-1への入力の違いである。認識対象の違いによってSNN2およびSNN3の認識精度は変わるため、認識対象に応じて高い認識精度が得られるSNNを選ぶとよい。
【0024】
SNN2では全ての畳み込み層10の出力60が第2入力50-2と合成されているが、SNN3では最後の畳み込み層11-101つ手前の9番目の畳み込み層11-9までの出力61が第2入力51-2と合成されている。何番目までの出力を第2入力と合成するかは、調整可能であり、認識精度が最も高くなる構成を選ぶとよい。
【0025】
次に、SNNの生成方法について説明する。
図4は、実施例1のSNNの生成方法の一例を説明するフローチャートである。
図5は、実施例1の脳型計算機の一例を示す図である。
【0026】
構成を決定するために、画像認識を行うシステムの要件から、所定の認識精度を設定しておく。さらに、所定の認識精度の要件から、所定のニューロンの活性化率を設定しておく。これら2つの条件をもとに、SNNが生成される。
【0027】
以下で説明する処理は、
図5に示すような脳型計算機510によって実行される。脳型計算機510は、処理装置511、主記憶装置512、補助記憶装置513、脳型デバイス514、およびチップセット515を備える。
【0028】
処理装置511は、例えば、CPUであり、脳型計算機510全体を制御する。脳型デバイス514は、SNNを実行するための専用のデバイスである。
【0029】
主記憶装置512は、例えば、揮発性の半導体メモリであり、補助記憶装置513からロードされたソフトウェア、および各種データを一時的に格納する。処理装置511が主記憶装置512に格納されたプログラムを実行することによって、脳型計算機510の機能が実現される。補助記憶装置513は、例えば、ハードディスクドライブおよびSSD(Solid State Drive)等の大容量の不揮発性の記憶装置である。補助記憶装置513には、ソフトウェア、ソフトウェアが使用する各種データ、および脳型デバイス514の処理結果等が格納される。
【0030】
なお、主記憶装置512および補助記憶装置513をまとめて記憶装置と称してもよい。
【0031】
なお、図示していないが、脳型計算機510は、モニタおよびリモート端末等の端末が接続され、脳型計算機510に対する管理者の操作指示、および画像認識結果の表示等を行うことができる。
【0032】
なお、脳型計算機510の機能(例えば、処理部)は、ソフトウェアを用いて実現されてもよいし、専用の回路等のハードウェアにより実現されてもよいし、ソフトウェアおよびハードウェアを組み合わせて実現されてもよい。また、脳型計算機510の1つの機能は、複数の機能に分けられていてもよいし、複数の機能は、1つの機能にまとめられていてもよい。また、脳型計算機510の機能の一部は、別の機能として設けられてもよいし、他の機能に含められていてもよい。また、脳型計算機510の機能の一部は、脳型計算機510と通信可能な他のコンピュータにより実現されてもよい。
【0033】
脳型計算機510は、DNNの定義情報、画像認識システムの要件に基づいて決定される認識精度、認識精度に基づいて決定される最後の畳み込み層のニューロンの活性率、分岐した入力(第2入力)を合成する畳み込み層に関する情報等を受け付け、以下で説明する処理を開始する。
【0034】
処理装置511は、SNNの生成処理を開始すると、まず、DNNを設定する(ステップS401)。
【0035】
ここでは、連結する畳み込み層の数、連結する全結合層の数が設定される。また、
図2および
図3で説明したように、最終の畳み込み層から全結合層への出力、指定された畳み込み層の出力と第2入力との合成が設定される。これらの設定は、認識対象の画像の種類などの画像群の特徴に基づいて決定される。
【0036】
次に、処理装置511は、学習用パラメータを設定する(ステップS402)。
【0037】
例えば、バッチサイズ、エポック数、ならびに、畳み込み層を構成するニューロンへの入力に掛け合わされる重みの行列であるフィルタのサイズおよびフィルタの数が、学習用パラメータとして設定される。また、ニューロンの活性化率に関わるパラメータも学習用パラメータとして設定される。
【0038】
次に、処理装置511は、設定した学習用パラメータのもとで、学習用の教師画像を用いてDNNを学習する(ステップS403)。本発明はDNNの学習方法に限定されない。
【0039】
処理装置511は、学習が完了したか否かを判定する(ステップS404)。
【0040】
具体的には、処理装置511は、DNNの認識精度が第1閾値以上であるか否かを判定する。DNNの認識精度が第1閾値以上である場合、処理装置511は、学習が完了したと判定する。
【0041】
学習が完了していない場合、処理装置511は、最終の畳み込み層のニューロンの活性化率が第2閾値以上であるか否かを判定する(ステップS405)。
【0042】
活性化率が第2閾値より低い場合、処理装置511は、ステップS402に戻り、学習パラメータを変更して、同様の処理を実行する。活性化率が第2閾値以上である場合、処理装置511は、ステップS401に戻り、DNNの構成を変更して、同様の処理を実行する。DNNの設定及び学習パラメータの設定は、ユーザが再度行ってもよいし、脳型計算機510が最初に設定された情報に基づいて自動で行ってもよい。
【0043】
ステップS404において、学習が完了したと判定された場合、処理装置511は、ソフトウェアツールを用いて学習済みのDNNをSNNに変換し(ステップS406)、その後、処理を終了する。
【0044】
推論を行う場合、処理装置511は、ソフトウェアツールを用いて、SNNを脳型デバイス514に実装し、脳型デバイス514を用いて推論を行う。
【0045】
以上の手順によれば、システム要件から定められた認識精度を満たすSNNを生成することが可能となる。
【0046】
図6は、実施例1のSNNを実装した脳型計算機510の活用の一例を示す図である。
【0047】
図6には、脳型計算機510及び複数のカメラ520から構成される画像認識装置500を示している。脳型計算機510は、チップセット515を介してカメラ520と接続する。カメラ520は、設置された場所の映像を取得し、所定のフォーマットの映像データを脳型計算機510に送信する。
【0048】
処理装置511は、主記憶装置512に格納されたソフトウェアを実行して、カメラ520から入力される映像データの中から所定のフレーム画像を抽出し、フレーム画像を脳型デバイス514に入力することによって推論処理を実行させ、その処理結果に基づいて画像に映る人物等の認識を行う。脳型デバイス514は、SNNを用いてフレーム画像を処理する。
【0049】
カメラ520から送信された映像データ、映像データから抽出されるフレーム画像、および脳型デバイス514による処理結果等は、主記憶装置512及び補助記憶装置513の少なくともいずれかに格納される。
【0050】
図7は、実施例1のSNNを実装した脳型計算機510が実行する画像認識処理の一例を説明するフローチャートである。
【0051】
処理装置511は、カメラ520から映像を取得し、主記憶装置512に格納する(ステップS701)。
【0052】
処理装置511は、映像からフレーム画像を抽出し、フレーム画像ごとに、推論部位を抽出する(ステップS702)。例えば、人物等の認識対象を含む部位が抽出される。
【0053】
処理装置511は、抽出した推論部位を、脳型デバイス514に入力するために所定の画像サイズに変換することによって、推論用画像を生成し、主記憶装置512に格納する(ステップS703)。なお、推論用画像は確認のために補助記憶装置513に格納されてもよい。
【0054】
処理装置511は、主記憶装置512から推論用画像を読み出し、脳型デバイス514に入力することによって推論処理を実行させる(ステップS704)。脳型デバイス514は、
図2に示す処理によって生成されたSNNを用いて推論用画像に対する推論処理を実行する。脳型デバイス514は、推論処理の結果を主記憶装置512に格納する。
【0055】
処理装置511は、主記憶装置512から推論処理の結果を読み出し、脳型計算機510に接続されているモニタ(図示省略)に表示する(ステップS705)。
【0056】
処理装置511は、画像認識を終了するか否かを判定する(ステップS706)。例えば、管理者から画像認識処理の終了指示を受け付けたか否かを判定する。
【0057】
画像認識を継続する場合、処理装置511は、ステップS701に戻り、同様の処理を実行する。画像認識処理を終了する場合、処理装置511は画像認識処理を終了する。
【0058】
このように、SNNの処理は消費電力の低い脳型デバイスを用いることができるため、低消費電力の画像認識装置を実現できる。
【0059】
図8は、実施例1の監視カメラシステムの一例を示す図である。
【0060】
監視カメラシステム800は、複数のカメラ520、カメラ520を管理する管理装置810、およびネットワーク820から構成されている。ネットワーク820は、1つ以上のネットワークスイッチ830から構成される。管理装置810は、ネットワーク820を介して、複数のカメラ520と接続する。管理装置810は、例えば、汎用コンピュータである。
【0061】
カメラ520全体を制御する処理装置には、SNNが実装された脳型デバイス514が接続される(図示省略)。なお、カメラ520に供給する電力に余裕がある場合、小型化された脳型計算機510がカメラ520に接続される形態でもよい。
【0062】
図8に示す監視カメラシステム800では、管理装置810にGPUを搭載して画像認識処理を実行する必要がなくなる。そのため、システムの消費電力を削減できる。
【0063】
図9は、実施例1の監視カメラシステムの別例を示す図である。
【0064】
図8に示す監視カメラシステム800では、カメラ520またはカメラ520に接続する脳型計算機510に搭載可能な脳型デバイス514の数は、供給電力に依存し、1乃至2個に制限される。そのため、求められる認識精度を実現するSNNを実装できない場合がある。これに対して、
図9に示すようなシステム構成を採用することができる。
【0065】
監視カメラシステム900では、脳型計算機510が、ネットワーク820を介して複数のカメラ520と接続する。
【0066】
脳型計算機510に搭載できる脳型デバイス514の数には制限がないため、求められる認識精度を実現する、必要最小限の規模のSNNを実装することができる。
【0067】
図9に示す監視カメラシステム900が実行する画像認識処理は、GPU等を用いた画像認識処理より消費電力の低いため、システムの消費電力を削減できる。
【0068】
以上のように、実施例1によれば、認識精度が高いSNNを生成することができる。また、所定の認識精度を満たすように所定の数の脳型デバイス514を用いてSNNを実装できる。これによって、推論を行うシステムの消費電力を抑えることができるため、供給できる電力に制限がある環境に適用することができる。
【0069】
本発明は、例えば、駅、空港、通り等の公共の場における特定の人物の認識、作業現場における作業者の特定の行動の認識のような、人物等の画像認識を行うシステムに広く適用することができる。
【0070】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0071】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、およびそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0072】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラムまたはスクリプト言語で実装できる。
【0073】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段またはCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0074】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。