(57)【要約】【課題】  画像の一般的な特徴に対してのみならず特定の特徴に対しても、特徴を保持しながら適切な処理を実現するための技術を提供すること。【解決手段】  第２の階層型ニューラルネットワークのＭ層目（２≦Ｍ≦Ｎ−１）からの出力を第１の階層型ニューラルネットワークの入力層に入力することで、該第１の階層型ニューラルネットワークの出力層からの出力と注目ニューロンからの出力とを求める。第１の階層型ニューラルネットワークの出力層からの出力を注目ニューロンからの出力を用いて重み付けした結果と第２の階層型ニューラルネットワークのＭ層目からの出力との統合結果を、第２の階層型ニューラルネットワークの（Ｍ＋１）層目に入力する。【選択図】  図３
2016031747.tif 000002
【特許請求の範囲】
【請求項１】
第１の学習対象を学習したニューロン群と、該第１の学習対象及び第２の学習対象を学習した注目ニューロンと、から成る第１の階層型ニューラルネットワークと、第３の学習対象を学習したニューロン群から成るＮ（Ｎは４以上の自然数）層の第２の階層型ニューラルネットワークと、を動作させて情報処理を行う処理手段を備え、
前記処理手段は、
前記第２の階層型ニューラルネットワークにおけるＭ層目（２≦Ｍ≦Ｎ−１）からの出力を前記第１の階層型ニューラルネットワークの入力層に入力して該第１の階層型ニューラルネットワークを動作させることで、該第１の階層型ニューラルネットワークの出力層からの出力と、前記注目ニューロンからの出力と、を求める手段と、
前記第１の階層型ニューラルネットワークの出力層からの出力を前記注目ニューロンからの出力を用いて重み付けした結果と、前記第２の階層型ニューラルネットワークにおけるＭ層目からの出力と、を統合させた結果を、前記第２の階層型ニューラルネットワークにおける（Ｍ＋１）層目に入力して該（Ｍ＋１）層目以降の各層を動作させることで、前記第２の階層型ニューラルネットワークの出力層からの出力を前記情報処理の結果として求める計算手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記計算手段は、
前記第１の階層型ニューラルネットワークの出力層からの出力を前記注目ニューロンからの出力で重み付けした結果と、前記第２の階層型ニューラルネットワークにおけるＭ層目からの出力と、の平均を、前記統合の結果として求める
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記計算手段は、
前記第１の階層型ニューラルネットワークの出力層からの出力を前記注目ニューロンからの出力で重み付けした結果と、前記第２の階層型ニューラルネットワークにおけるＭ層目からの出力と、のそれぞれに予め定められた信頼度を乗じた結果の重みづけ和を、前記統合の結果として求める
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記計算手段は、
複数の第１の階層型ニューラルネットワークのそれぞれについて、該第１の階層型ニューラルネットワークの出力層からの出力を該第１の階層型ニューラルネットワークにおける注目ニューロンからの出力で重み付けした結果を求め、該重み付けした結果と、前記第２の階層型ニューラルネットワークにおけるＭ層目からの出力と、の重みづけ和を、前記統合の結果として求める
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記計算手段は、
複数の第１の階層型ニューラルネットワークのそれぞれにおける注目ニューロンの出力値に基づいて、該複数の第１の階層型ニューラルネットワークの動作制御を行う
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記計算手段は、
前記複数の第１の階層型ニューラルネットワークのうち注目ニューロンの出力が最も大きい第１の階層型ニューラルネットワークを特定し、該特定した第１の階層型ニューラルネットワークの出力層からの出力を該特定した第１の階層型ニューラルネットワークにおける注目ニューロンからの出力で重み付けした結果と、前記第２の階層型ニューラルネットワークにおけるＭ層目からの出力と、の重みづけ和を、前記統合の結果として求める
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記計算手段は、
前記複数の第１の階層型ニューラルネットワークのうち注目ニューロンの出力が最も大きい第１の階層型ニューラルネットワーク及び該第１の階層型ニューラルネットワークと関連する第１の階層型ニューラルネットワークを特定し、該特定した第１の階層型ニューラルネットワークの出力層からの出力を該特定した第１の階層型ニューラルネットワークにおける注目ニューロンからの出力で重み付けした結果と、前記第２の階層型ニューラルネットワークにおけるＭ層目からの出力と、の重みづけ和を、前記統合の結果として求める
ことを特徴とする請求項５に記載の情報処理装置。
【請求項８】
更に、
入力画像中の各部分画像を前記第２の階層型ニューラルネットワークにおける入力層に入力したことで前記注目ニューロンから得られるそれぞれの出力のうち規定値以上の出力が得られた部分画像を特定する特定手段と、
前記特定手段が特定した部分画像及びその周辺の部分画像のそれぞれを前記第２の階層型ニューラルネットワークにおける入力層に入力したことで前記第２の階層型ニューラルネットワークにおける出力層から得られる出力画像を前記注目ニューロンから得られる出力で重み付けして合成した結果を出力する手段と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項９】
更に、
ＲＡＷ画像を、同様の色成分配列となるように分割した場合のそれぞれの部分画像を前記第２の階層型ニューラルネットワークにおける入力層に入力し、該それぞれの部分画像に対応する前記第２の階層型ニューラルネットワークにおける出力層からの出力を用いて出力画像を形成して出力する手段
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項１０】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の処理手段が、第１の学習対象を学習したニューロン群と、該第１の学習対象及び第２の学習対象を学習した注目ニューロンと、から成る第１の階層型ニューラルネットワークと、第３の学習対象を学習したニューロン群から成るＮ（Ｎは４以上の自然数）層の第２の階層型ニューラルネットワークと、を動作させて情報処理を行う処理工程を備え、
前記処理工程は、
前記第２の階層型ニューラルネットワークにおけるＭ層目（２≦Ｍ≦Ｎ−１）からの出力を前記第１の階層型ニューラルネットワークの入力層に入力して該第１の階層型ニューラルネットワークを動作させることで、該第１の階層型ニューラルネットワークの出力層からの出力と、前記注目ニューロンからの出力と、を求める工程と、
前記第１の階層型ニューラルネットワークの出力層からの出力を前記注目ニューロンからの出力を用いて重み付けした結果と、前記第２の階層型ニューラルネットワークにおけるＭ層目からの出力と、を統合させた結果を、前記第２の階層型ニューラルネットワークにおける（Ｍ＋１）層目に入力して該（Ｍ＋１）層目以降の各層を動作させることで、前記第２の階層型ニューラルネットワークの出力層からの出力を前記情報処理の結果として求める計算工程と
を備えることを特徴とする情報処理方法。
【請求項１１】
コンピュータを、請求項１乃至９の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークを用いた情報処理技術に関するものである。
【背景技術】
【０００２】
従来から、ニューラルネットワークを用いてノイズ低減処理を行うものとして、Hintonらの多層ニューラルネットを用いたものが知られている（非特許文献１）。非特許文献１では、大量の画像から一般的な特徴を学習したニューラルネットワークを用いてノイズ低減を行うことが開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】G.E. Hinton and R.R. Salakhutdinov, Science, Vol. 313, no. 5786, pp. 504 - 507, 2006
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ニューラルネットワークを用いてノイズ低減を行うと、平坦部やエッジ部といった様々な画像でよく現れる一般的な特徴に対しては適切にノイズ低減されやすい。しかし、限られた対象や状況で現れる繊維や茂みのような特定の特徴に対しては適切にノイズ低減されない場合があった。一方で、特定の特徴のみを学習した場合、それ以外の特徴に対してノイズ低減効果が小さくなる可能性があるという課題があった。
【０００５】
本発明はこのような問題に鑑みてなされたものであり、画像の一般的な特徴に対してのみならず特定の特徴に対しても、特徴を保持しながら適切な処理を実現するための技術を提供する。
【課題を解決するための手段】
【０００６】
本発明の一様態は、第１の学習対象を学習したニューロン群と、該第１の学習対象及び第２の学習対象を学習した注目ニューロンと、から成る第１の階層型ニューラルネットワークと、第３の学習対象を学習したニューロン群から成るＮ（Ｎは４以上の自然数）層の第２の階層型ニューラルネットワークと、を動作させて情報処理を行う処理手段を備え、前記処理手段は、前記第２の階層型ニューラルネットワークにおけるＭ層目（２≦Ｍ≦Ｎ−１）からの出力を前記第１の階層型ニューラルネットワークの入力層に入力して該第１の階層型ニューラルネットワークを動作させることで、該第１の階層型ニューラルネットワークの出力層からの出力と、前記注目ニューロンからの出力と、を求める手段と、前記第１の階層型ニューラルネットワークの出力層からの出力を前記注目ニューロンからの出力を用いて重み付けした結果と、前記第２の階層型ニューラルネットワークにおけるＭ層目からの出力と、を統合させた結果を、前記第２の階層型ニューラルネットワークにおける（Ｍ＋１）層目に入力して該（Ｍ＋１）層目以降の各層を動作させることで、前記第２の階層型ニューラルネットワークの出力層からの出力を前記情報処理の結果として求める計算手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明の構成によれば、画像の一般的な特徴に対してのみならず特定の特徴に対しても、特徴を保持しながら適切な処理を実現することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置のハードウェア構成例を示すブロック図。
【図２】階層型ニューラルネットワークを示す図。
【図３】情報処理装置の機能構成例を示すブロック図。
【図４】ノイズ低減処理のフローチャート。
【図５】情報処理装置の機能構成例を示すブロック図。
【図６】ノイズ低減処理のフローチャート。
【図７】情報処理装置の機能構成例を示すブロック図。
【図８】ノイズ低減処理のフローチャート。
【図９】情報処理装置の機能構成例を示すブロック図。
【図１０】デモザイク処理及びノイズ低減処理のフローチャート。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１０】
［第１の実施形態］
本実施形態では、第１の学習対象を学習したニューロン群と、該第１の学習対象及び第２の学習対象を学習した注目ニューロンと、から成る第１の階層型ニューラルネットワークと、第３の学習対象を学習したニューロン群から成るＮ（Ｎは４以上の自然数）層の第２の階層型ニューラルネットワークと、を動作させて情報処理を行う情報処理装置の一例について説明する。
【００１１】
より詳しくは、本実施形態は、第２の階層型ニューラルネットワークにおけるＭ層目（２≦Ｍ≦Ｎ−１）からの出力を第１の階層型ニューラルネットワークの入力層に入力して該第１の階層型ニューラルネットワークを動作させることで、該第１の階層型ニューラルネットワークの出力層からの出力と、注目ニューロンからの出力と、を求め、第１の階層型ニューラルネットワークの出力層からの出力を注目ニューロンからの出力を用いて重み付けした結果と、第２の階層型ニューラルネットワークにおけるＭ層目からの出力と、を統合させた結果を、第２の階層型ニューラルネットワークにおける（Ｍ＋１）層目に入力して該（Ｍ＋１）層目以降の各層を動作させることで、第２の階層型ニューラルネットワークの出力層からの出力を、上記の情報処理の結果として求める構成の一例である。
【００１２】
先ず、本実施形態に係る情報処理装置のハードウェア構成例について、図１のブロック図を用いて説明する。なお、本実施形態に係る情報処理装置は、一般のＰＣ（パーソナルコンピュータ）であっても良いし、携帯電話やタブレット端末装置などの携帯端末装置であっても良い。また、本実施形態に係る情報処理装置は、ディジタルカメラなどの機器に組み込まれる電子回路の一部の構成であっても構わない（その場合は撮像装置１０５は除く）。すなわち、本実施形態に係る情報処理装置は、上記のような階層型ニューラルネットワークを用いて情報処理を行う機能を使用する機器であれば、如何なる機器に適用しても構わない。
【００１３】
ＣＰＵ１０１は、ＲＡＭ１０２に格納されているコンピュータプログラムやデータを用いて処理を実行することで、情報処理装置全体の動作制御を行うと共に、情報処理装置が行うものとして後述する各処理を実行若しくは制御する。
【００１４】
ＲＡＭ１０２は、記憶装置１０３からロードされたコンピュータプログラムやデータ、汎用Ｉ／Ｆ（インターフェース）１０４を介して外部メモリ１０７からロードされたコンピュータプログラムやデータ、汎用Ｉ／Ｆ１０４を介して撮像装置１０５から送出された撮像画像のデータ、を記憶するためのエリアを有する。更にＲＡＭ１０２は、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリアを有する。このように、ＲＡＭ１０２は、各種のエリアを適宜提供することができる。
【００１５】
記憶装置１０３には、ＯＳ（オペレーティングシステム）や、情報処理装置が行うものとして後述する各処理をＣＰＵ１０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、階層型ニューラルネットワークの動作を実行する為のプログラムや階層型ニューラルネットワークに特徴量を学習させるための学習プログラム等が含まれている。また、このデータには、階層間の重み係数やニューロンのバイアス値、学習時に用いる入力データ及び教師データのセット、各種のパラメータ、などが含まれている。記憶装置１０３に保存されているコンピュータプログラムやデータは、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０２にロードされ、ＣＰＵ１０１による処理対象となる。なお、ＲＡＭ１０２に格納するものとして説明したデータの一部若しくは全部を記憶装置１０３に格納するようにしても構わない。
【００１６】
モニタ１０８は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１０１による処理結果を、画像や文字などでもって表示することができる。例えば、階層型ニューラルネットワークの学習用のＧＵＩ（学習時に使用する入力データ及び教師データを選択するための選択画面や、学習結果を表示する表示画面等を含む）や、学習済みの階層型ニューラルネットワークを用いて情報処理を行わせるためのＧＵＩ（情報処理対象のデータを選択するための選択画面や、情報処理の結果を表示する表示画面等を含む）、等を表示することができる。
【００１７】
ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、モニタ１０８は何れも、共通のバス１０９に接続されている。
【００１８】
撮像装置１０５は、外界の光を電気信号に変換し、該電気信号をＡ／Ｄ変換して各種の処理を施すことで撮像画像を生成するものである。撮像装置１０５により生成された撮像画像は、汎用Ｉ／Ｆ１０４を介してＲＡＭ１０２や記憶装置１０３に送出される。
【００１９】
入力装置１０６は、キーボードやマウス、タッチパネル画面などにより構成されており、本装置のユーザが操作することで各種の指示をＣＰＵ１０１に対して入力することができる。
【００２０】
外部メモリ１０７は、メモリカードなどの本装置に着脱可能なメモリ装置である。なお、記憶装置１０３に保存若しくは格納するものとして説明するデータの一部は外部メモリ１０７に保存若しくは格納するようにしても構わない。外部メモリ１０７に格納されているコンピュータプログラムやデータもまた、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０２にロードされ、ＣＰＵ１０１による処理対象となる。
【００２１】
撮像装置１０５、入力装置１０６、外部メモリ１０７は何れも汎用Ｉ／Ｆ１０４に接続されており、汎用Ｉ／Ｆ１０４は上記のバス１０９に接続されている。なお、汎用Ｉ／Ｆ１０４にはこれ以外にも、例えば、赤外線通信や無線ＬＡＮ等を用いて外部機器との通信を行うための通信部を接続しても構わない。
【００２２】
なお、図１に示した構成は、以下に説明する処理を実現可能な構成の一例であり、同等以上の機能を実現可能な構成であれば、如何なる構成を採用しても構わない。また、本実施形態では、図１に示した構成を有する１台の情報処理装置を用いて、以下に説明する情報処理を実行するが、２台以上の装置で処理を分散させて該情報処理を実現させても構わない。
【００２３】
次に、階層型ニューラルネットワークについて、図２を用いて説明する。図２では説明を簡単にするために中間層を１層としているが、２層以上で中間層を構成しても構わない。図２では、入力層はＭｉ個のニューロン（ｎ１１、ｎ１２、…、ｎ１Ｍｉ）を有し、中間層はＭｈ個のニューロン（ｎ２１、ｎ２２、…、ｎ２Ｍｈ）を有し、出力層（最終層）はＭｏ個のニューロン（ｎ３１、ｎ３２、…、ｎ３Ｍｏ）を有している。そして、各層のニューロンは隣接する層の全てのニューロンと結合しており、階層間で情報伝達を行う３層の階層型ニューラルネットワークを構成している。
【００２４】
入力層におけるニューロンの数は、入力データの数に対応している。例えば、入力層に画像を入力する場合、該入力層には、入力する特徴量（例えば画素値）とニューロンとが１対１となるように、特徴量分のニューロンを設ける。そして入力層における各ニューロンには、対応する画素の画素値（若しくはその周辺の画素の画素値の平均値など）を特徴量として入力することになる。
【００２５】
図２の場合、入力層における各ニューロンは、中間層における全てのニューロンと結合しており、中間層における各ニューロンは、出力層における全てのニューロンと結合している（図２ではニューロン間の結合を結線で示している）。
【００２６】
また、ニューロン間の結合はそれぞれ重みを持っており、一方のニューロンから結合を通して他方のニューロンに伝達される出力値はその結合の重みによって増強あるいは減衰される。図２においてＷ１，ｂ１はそれぞれ、入力層と中間層との間の重み係数の行列、中間層におけるバイアス値を表している。また、Ｗ２，ｂ２はそれぞれ、中間層と出力層との間の重み係数の行列、出力層におけるバイアス値を表している。例えば、図２の中間層におけるニューロンｎ２１の出力値ａｎ２１は、以下の式（１）によって与えられる。
【００２７】
【数１】
2016031747.tif 000003
【００２８】
式（１）において、ｗｎ１ｋｎ２１は、入力層におけるニューロンｎ１ｋと中間層におけるニューロンｎ２１との間の結合の重みを表す重み係数である。ａｎ１ｋは、入力層におけるニューロンｎ１ｋの出力値である。ｂ１は、中間層に属するニューロンにおけるバイアス値である。ｆは活性化関数であり、例えば、以下の式（２）で表される。
【００２９】
【数２】
2016031747.tif 000004
【００３０】
ｐ、ｑは任意に設定可能なパラメータである。本実施形態では説明を簡単にするために、ｐ、ｑは全てのニューロンで同じ値とする。なお、活性化関数ｆは式（２）で示すようなシグモイド関数に限るものではなく、引数（式（２）の場合はａ）の値が閾値以上であれば１を返し、閾値未満であれば０を返す二値化関数であっても良い。また、活性化関数ｆはtanhや、二次関数などの曲線や、一次関数で近似した関数であっても構わない。
【００３１】
また、階層型ニューラルネットワークには、それぞれのニューロンが自己結合を有するものがあったり、同層内で結合を有するものがあったりするが、このような階層型ニューラルネットワークを用いても構わない。
【００３２】
このように、各層のそれぞれのニューロンは、上記の式（１）、式（２）に従って動作して出力値ａを出力している。そしてその出力値ａ（出力層を除く）は次の層との間の重み係数に応じて重み付けされて該次の層におけるそれぞれのニューロンに入力される。
【００３３】
次に、このような階層型ニューラルネットワークにおける学習処理について説明する。従来から、入力層に入力データを入力して階層型ニューラルネットワークを動作させた場合に出力層から教師データに近い出力が得られるように、ニューロン間における重み係数や各層のバイアスを調整することで、該階層型ニューラルネットワークに「入力データと教師データとの対」を学習させる（学習処理を行う）技術が存在する。このような入力データと教師データのセットを複数セット用意し、それぞれのセットについて学習処理を行うことで、様々なデータに対して汎用性がある重み係数及びバイアス値を得ることができる。ここで、教師データは、ニューロンの出力値と比較するのであるから、ニューロンの出力可能範囲の値に正規化しておくことが好ましい。
【００３４】
このように、従来の階層型ニューラルネットワークにおける学習処理では、入力層に入力データを入力して階層型ニューラルネットワークを動作させた場合に出力層から得られる出力と、該入力データに予め対応づけられている教師データと、の差分を計算し、該差分を極小化するように、重み係数及びバイアス値を調整することで、この入力データと教師データとの対を学習していた。本実施形態では、このような学習則に基づいて学習した階層型ニューラルネットワークを、第２の階層型ニューラルネットワークとして用いる。また、本実施形態では、入力層に入力データを入力して階層型ニューラルネットワークを動作させた場合に出力層から得られる出力と、該入力データに予め対応づけられている教師データと、の差分（第１の差分）を計算し、更に、中間層における注目ニューロンの出力と該注目ニューロン用の教師データとの差分（第２の差分）を計算し、第１の差分と第２の差分との合計（線形和とは限らない）を極小化するように、重み係数及びバイアス値を調整する、という学習則に基づいて学習した階層型ニューラルネットワークを、第１の階層型ニューラルネットワークとして用いる。
【００３５】
更に、第２の階層型ニューラルネットワークにおけるＭ層目（２≦Ｍ≦Ｎ−１：ここでは第２の階層型ニューラルネットワークがＮ（Ｎは４以上の自然数）層の階層型ニューラルネットワークであるとしている）は、第２の階層型ニューラルネットワークにおける（Ｍ＋１）層目だけでなく、第１の階層型ニューラルネットワークの入力層とも結合しており、第２の階層型ニューラルネットワークにおける（Ｍ＋１）層目は、第２の階層型ニューラルネットワークにおけるＭ層目だけでなく、第１の階層型ニューラルネットワークの出力層及び注目ニューロンとも結合している。
【００３６】
本実施形態では、第１の階層型ニューラルネットワークと第２の階層型ニューラルネットワークとを用いてこのようなネットワーク構成を想定し、第２の階層型ニューラルネットワークにおける（Ｍ＋１）層目への入力を、第２の階層型ニューラルネットワークにおけるＭ層目からの出力、注目ニューロンからの出力、第１の階層型ニューラルネットワークにおける出力層からの出力、に基づいて決定する。そしてこの決定した入力を第２の階層型ニューラルネットワークにおける（Ｍ＋１）層目に与えて、（Ｍ＋１）層目以降の各層を動作させることで、結果として、第２の階層型ニューラルネットワークにおける出力層からの出力を得ることができる。
【００３７】
本実施形態では、このように構成された第１の階層型ニューラルネットワーク及び第２の階層型ニューラルネットワークを用いてノイズ低減処理を行うため、第２の階層型ニューラルネットワークにおける出力層からの出力を、ノイズ低減処理の結果として得ることになる。
【００３８】
もちろん、階層型ニューラルネットワークを用いてノイズ低減処理を実現させるためには、第１の階層型ニューラルネットワーク及び第２の階層型ニューラルネットワークのそれぞれに対して予め次のような入力データ及び教師データを与えて学習処理を行っておく必要がある。
【００３９】
第２の階層型ニューラルネットワークに対する学習処理では、入力データ及び教師データのセットとして、ノイズが付加された画像であるノイズ画像、十分にノイズが低減された画像、のセットを多数用意し、それぞれのセットを第２の階層型ニューラルネットワークに与えて学習させる。
【００４０】
第１の階層型ニューラルネットワークに対する学習処理では、入力データ及び教師データのセットとして、ノイズが付加された画像であるノイズ画像、十分にノイズが低減された画像と、のセットを多数用意するだけでなく、注目ニューロン用の教師データとして、繊維のもつ統計量等の特定の特徴を多数用意する。そして、入力層には入力データ、出力層には教師データ、注目ニューロンには注目ニューロン用の教師データ、を与えて学習させることで、第１の階層型ニューラルネットワークに、汎用的な特徴だけでなく特定の特徴に基づく画像処理を学習させる。なお、注目ニューロンの数は１であっても複数であっても構わない。また、注目ニューロンは、同じ層に１以上設けても良いし、２以上の層に１以上設けても良い。
【００４１】
なお、以下では、第１の階層型ニューラルネットワークを専門ＮＮ、第２の階層型ニューラルネットワークを一般ＮＮと呼称する場合がある。また、以下では説明を簡単にするために、専門ＮＮ及び一般ＮＮの各層におけるニューロンの数は同じとする。しかし、入力層、中間層、出力層のそれぞれの層のニューロンの数は処理の内容や目的に合わせて適宜変更しても構わない。例えば、入力を受けないニューロンを設定したり、２つのニューロンから１画素へ入力したりするなどニューラルネットワークの形態によっては等しくならなくてもよい。また、本実施形態では、１画素と１ニューロンが対応しているとしたが、他の方法でも良く、例えば複数画素の平均や分散などの特徴量と１ニューロンが対応しているとしても良い。
【００４２】
次に、以上説明した、専門ＮＮと一般ＮＮとを用いて情報処理を実行する際の情報処理装置の機能構成例について、図３のブロック図を用いて説明する。図３において、パラメタ保持部３０３以外の各機能部は何れもコンピュータプログラムとして実装され、記憶装置１０３に保存されているものとする。以下では、これらの機能部を処理の主体として説明する場合もあるが、実際にはＣＰＵ１０１が該機能部に対応するコンピュータプログラムを実行することで、対応する処理が実現される。しかし、これらの機能部の全てをコンピュータプログラムで実装することに限るものではなく、一部をハードウェアで実装しても構わない。また、パラメタ保持部３０３は、記憶装置１０３や外部メモリ１０７が有するメモリ領域の一部として実装されるものとする。なお、図３に示した全ての機能部をハードウェアで構成しても構わない。
【００４３】
画像データ入力部３０１は、撮像装置１０５や記憶装置１０３から得られる画像を入力画像として、一般ＮＮ前段処理部３０２に入力する。
【００４４】
パラメタ保持部３０３は、一般ＮＮ及び専門ＮＮの各層間の重み係数及び各層のバイアス値（学習済みの値）を保持する。また、パラメタ保持部３０３は、本実施形態に係る処理で用いられる各種のパラメータも保持している。
【００４５】
一般ＮＮ前段処理部３０２は、一般ＮＮにおける入力層からＭ層目（一般ＮＮにおける（Ｍ＋１）層目及び専門ＮＮにおける入力層に出力を行う層）までの各層の処理を実行する機能部である。一般ＮＮ前段処理部３０２は先ず、パラメタ保持部３０３に格納されている「一般ＮＮの入力層からＭ層目までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける入力層からＭ層目までの各層間及び各層を確定させる。そして一般ＮＮ前段処理部３０２は、画像データ入力部３０１からの入力画像を入力層に入力し、入力層からＭ層目までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、Ｍ層目からの出力（Ｍ層目を構成する各ニューロンの出力）を求める。以下では、一般ＮＮにおける入力層からＭ層目までを「前段」と呼称する。そして一般ＮＮ前段処理部３０２は、Ｍ層目の出力として求めたものを、一般ＮＮ後段処理部３０６及び専門ＮＮ前段処理部３０４に対して送出する。
【００４６】
専門ＮＮ前段処理部３０４は、専門ＮＮにおける入力層の処理を実行する機能部である。専門ＮＮ前段処理部３０４は先ず、パラメタ保持部３０３に格納されている「専門ＮＮの入力層と２層目との間の重み係数及び入力層のバイアス値」を読み出して設定することで、専門ＮＮにおける入力層と２層目との間及び入力層を確定させる。そして専門ＮＮ前段処理部３０４は、一般ＮＮ前段処理部３０２からの出力を専門ＮＮの入力層に入力して、入力層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、入力層からの出力（入力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ前段処理部３０４は、入力層の出力として求めたものを、専門ＮＮ後段処理部３０５に対して送出する。
【００４７】
専門ＮＮ後段処理部３０５は、専門ＮＮにおける２層目から出力層までの各層の処理を実行する機能部である。２層目から出力層までの間には、特定の特徴を学習したニューロンである注目ニューロンが属する層も含まれている。専門ＮＮ後段処理部３０５は先ず、パラメタ保持部３０３に格納されている「専門ＮＮの２層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、専門ＮＮにおける２層目から出力層までの各層間及び各層を確定させる。そして専門ＮＮ後段処理部３０５は、専門ＮＮ前段処理部３０４からの出力を２層目に入力し、２層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ後段処理部３０５は、出力層からの出力として求めた結果と、注目ニューロンの出力と、を一般ＮＮ後段処理部３０６に対して送出する。
【００４８】
一般ＮＮ後段処理部３０６は、一般ＮＮにおける（Ｍ＋１）層目から出力層までの各層の処理を実行する機能部である。一般ＮＮ後段処理部３０６は先ず、パラメタ保持部３０３に格納されている「一般ＮＮの（Ｍ＋１）層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける（Ｍ＋１）層目から出力層までの各層間及び各層を確定させる。そして一般ＮＮ後段処理部３０６は、一般ＮＮ前段処理部３０２からの出力（一般ＮＮのＭ層目からの出力）と専門ＮＮ後段処理部３０５からの出力（専門ＮＮの出力層からの出力）とを、専門ＮＮ後段処理部３０５からの出力（注目ニューロンの出力）を用いた後述の処理により統合した結果を求め、該統合した結果を（Ｍ＋１）層目に入力し、（Ｍ＋１）層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。以下では、一般ＮＮにおける（Ｍ＋１）層目から出力層までを「後段」と呼称する。そして一般ＮＮ後段処理部３０６は、出力層からの出力として求めた結果を、上記の入力画像に対する結果、即ち、ノイズ低減処理が施された画像として、画像データ出力部３０７に対して送出する。
【００４９】
画像データ出力部３０７は、一般ＮＮ後段処理部３０６から受けた画像を、モニタ１０８に表示させる。なお、一般ＮＮ後段処理部３０６から受けた画像の出力先はモニタ１０８に限るものではなく、記憶装置１０３であっても良いし、外部メモリ１０７であっても良いし、不図示のネットワークインターフェースを介して外部の装置に対して送信しても構わない。
【００５０】
次に、一般ＮＮ後段処理部３０６が、一般ＮＮのＭ層目からの出力と、専門ＮＮの出力層からの出力と、を注目ニューロンの出力を用いて統合する処理について説明する。上記では、注目ニューロンは、注目する特徴（例えば繊維の持つ特定の統計量）に相関する値を出力するよう学習すると述べた。つまり学習済みの注目ニューロンからの出力は、処理領域中に注目する特徴がどの程度含まれるかを反映するものである。例えば、処理領域に繊維が含まれていれば注目ニューロンからの出力値は大きくなる可能性が高い。この場合、専門ＮＮの処理結果をより重点的に用いることで注目する特徴に応じたノイズ低減が可能になる。一方で、処理領域に繊維が含まれていなければ、注目ニューロンからの出力値は小さくなる可能性が高い。この場合、一般ＮＮの処理結果をより重点的に用いることで一般的な特徴に応じたノイズ低減を行う。このような注目ニューロンからの出力値の性質を利用し、上記の統合を以下の式に従って行う。
【００５１】
【数３】
2016031747.tif 000005
【００５２】
ここで、ｄは、一般ＮＮのＭ層目からの出力と専門ＮＮの出力層からの出力との統合結果、ｋは注目ニューロンの数、ａnciはｉ番目の注目ニューロンの出力値、ｄｇは一般ＮＮのＭ層目からの出力、ｄｓは専門ＮＮの出力層からの出力、Ｍは適当なパラメータで、例えば一般ＮＮと専門ＮＮの合計数、即ち、Ｍ＝２である。なお、この「Ｍ」の代わりに、第１項目に乗じるＭ１と第２項目に乗じるＭ２とを用いても構わない。然るに一般ＮＮ後段処理部３０６は、このような式に従って統合を行った結果ｄを、一般ＮＮの（Ｍ＋１）層目に入力する。学習段階でも、注目ニューロンに応じて最適な統合量になるよう学習は行われているが、本実施形態のような統合により、意図をより反映して統合量の調整を行うことで、特定の特徴（注目ニューロンが学習した特徴）に注目しながらノイズを低減した画像が、一般ＮＮの出力層から出力されることになる。
【００５３】
なお、一般ＮＮのＭ層目からの出力と専門ＮＮの出力層からの出力との統合方法は、上記の式（３）に示した方法に限るものではなく、例えば、以下に示した式（４）に従って統合しても構わない。本例では統合結果は常に０から１の範囲に収まる例を説明したが、この統合はＮＮの途中で行われるので、統合結果の値の範囲は０から１に限るものではなく、マイナス値や１以上の値であってもよい。
【００５４】
【数４】
2016031747.tif 000006
【００５５】
ここで、ｒは、右辺の１項目及び２項目のそれぞれに対する信頼度を表すパラメータで、０〜１の実数値をとる。この信頼度ｒは、例えば、各専門ＮＮが事前に様々な画像を処理した結果の画質を評価して求めることができる。もちろん、この信頼度ｒは、他の方法で求めても構わないし、ユーザが入力装置１０６を操作して入力した値を信頼度ｒとして用いても構わない。
【００５６】
以上説明した、一般ＮＮと専門ＮＮとを用いて行うノイズ低減処理について、同処理のフローチャートを示す図４を用いて説明する。なお、上記の通り、以下では、図３に示した各機能部を処理の主体として説明するが、実際には、ＣＰＵ１０１が該機能部に対応するコンピュータプログラムを実行することで、対応する処理が実現される。然るに、実際には、図４のフローチャートに従った処理をＣＰＵ１０１に実行させるためのコンピュータプログラムやデータが記憶装置１０３に保存されており、ＣＰＵ１０１がこのコンピュータプログラムやデータをＲＡＭ１０２に読み出して実行することで、図４のフローチャートに従った処理が実現される。
【００５７】
＜ステップＳ４０１＞
画像データ入力部３０１は、撮像装置１０５や記憶装置１０３から得られる画像を入力画像として取得し、該取得した入力画像を一般ＮＮ前段処理部３０２に入力する。
【００５８】
＜ステップＳ４０２＞
一般ＮＮ前段処理部３０２は、パラメタ保持部３０３に格納されている「一般ＮＮの入力層からＭ層目までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける入力層からＭ層目までの各層間及び各層を確定させる。
【００５９】
一般ＮＮ後段処理部３０６は、パラメタ保持部３０３に格納されている「一般ＮＮの（Ｍ＋１）層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける（Ｍ＋１）層目から出力層までの各層間及び各層を確定させる。
【００６０】
専門ＮＮ前段処理部３０４は、パラメタ保持部３０３に格納されている「専門ＮＮの入力層と２層目との間の重み係数及び入力層のバイアス値」を読み出して設定することで、専門ＮＮにおける入力層と２層目との間及び入力層を確定させる。
【００６１】
専門ＮＮ後段処理部３０５は、パラメタ保持部３０３に格納されている「専門ＮＮの２層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、専門ＮＮにおける２層目から出力層までの各層間及び各層を確定させる。
【００６２】
＜ステップＳ４０３＞
一般ＮＮ前段処理部３０２は、画像データ入力部３０１からの入力画像を一般ＮＮの入力層に入力し、入力層からＭ層目までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、Ｍ層目からの出力（Ｍ層目を構成する各ニューロンの出力）を求める。そして一般ＮＮ前段処理部３０２は、Ｍ層目の出力として求めたものを、一般ＮＮ後段処理部３０６及び専門ＮＮ前段処理部３０４に対して送出する。
【００６３】
＜ステップＳ４０４＞
専門ＮＮ前段処理部３０４は、一般ＮＮ前段処理部３０２からの出力を専門ＮＮの入力層に入力して、入力層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、入力層からの出力（入力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ前段処理部３０４は、入力層の出力として求めたものを、専門ＮＮ後段処理部３０５に対して送出する。
【００６４】
＜ステップＳ４０５＞
専門ＮＮ後段処理部３０５は、専門ＮＮ前段処理部３０４からの出力を専門ＮＮの２層目に入力し、２層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ後段処理部３０５は、出力層からの出力として求めた結果と、注目ニューロンの出力と、を一般ＮＮ後段処理部３０６に対して送出する。
【００６５】
＜ステップＳ４０６＞
一般ＮＮ後段処理部３０６は、ステップＳ４０３で求めた一般ＮＮのＭ層目からの出力と、ステップＳ４０５で求めた専門ＮＮの出力層からの出力と、ステップＳ４０５で求めた注目ニューロンの出力と、を用いて上記の式（３）や式（４）に従った計算を行うことで、一般ＮＮのＭ層目からの出力と専門ＮＮの出力層からの出力との統合結果を求める。そして一般ＮＮ後段処理部３０６は、この統合結果を一般ＮＮの（Ｍ＋１）層目に入力し、（Ｍ＋１）層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、一般ＮＮの出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして一般ＮＮ後段処理部３０６は、出力層からの出力として求めた結果を、画像データ出力部３０７に対して送出する。
【００６６】
＜ステップＳ４０７＞
画像データ出力部３０７は、一般ＮＮ後段処理部３０６から受けた画像を、モニタ１０８、記憶装置１０３、外部メモリ１０７、等の適当な出力先に対して出力する。なお、出力先は２以上であっても構わない。
【００６７】
このように、本実施形態では、特定の特徴に対応した注目ニューロンの出力に基づいて一般ＮＮの前段からの出力と専門ＮＮからの出力とを統合して用いることで、一般的な特徴に対してのみならず特定の特徴に対しても、特徴を保持したままノイズ低減させることが可能となる。なお、本実施形態では１ニューロンに１つの画素値が入力される例を説明したが、学習時に設定済みであれば５×５画素の特徴量（分散など）を複数入力してノイズ低減に用いるなどの方法でもよい。その場合、特徴量が１０あれば入力層のニューロンも１０必要である。また、画像サイズとニューラルネットワークのサイズ（入力層におけるニューロン数）が一致しない場合は、画像の一部を入力として処理を行い、順次処理範囲を変更して画像全体を処理することもできる。また、本実施形態では、一般ＮＮ及び専門ＮＮのそれぞれの数を１としているが、１に限るものではなく複数であっても構わない。
【００６８】
なお、本実施形態では、一般ＮＮと専門ＮＮとの間の結合には重み係数を設定していなかったが、設けても構わない。その場合（その場合でなくても）、一般ＮＮ及び専門ＮＮのそれぞれにおいて上記の通り学習を完了させた後、全体で再度学習を行うことで、一般ＮＮと専門ＮＮとの間の結合における重み係数も学習することができる。なお、注目ニューロンと一般ＮＮとの間の結合に対する重み係数は固定値とする。
【００６９】
［第２の実施形態］
第１の実施形態では、専門ＮＮの数を１としたが、２以上であっても構わない。その場合、一般ＮＮのＭ層目からの出力を、一般ＮＮの（Ｍ＋１）層目及びそれぞれの専門ＮＮの入力層に入力することになる。そして、一般ＮＮのＭ層目からの出力とそれぞれの専門ＮＮの出力層からの出力とを、それぞれの専門ＮＮにおける注目ニューロンの出力に応じて統合し、その統合結果を、一般ＮＮの（Ｍ＋１）層目に入力する。例えば、３つの専門ＮＮを用いる場合、１つ目の専門ＮＮには「空」を学習させ、２つ目の専門ＮＮには「文字」を学習させ、３つ目の専門ＮＮには「地面」を学習させる。そして、それぞれの専門ＮＮにおける注目ニューロンには、「空」に関連する特定の特徴、「文字」に関連する特定の特徴、「地面」に関連する特定の特徴、を学習させる。
【００７０】
以下では、１つの一般ＮＮと２つの専門ＮＮとを用いて情報処理を行う場合について説明する。以下では第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【００７１】
本実施形態に係る情報処理装置の機能構成例について、図５のブロック図を用いて説明する。図５において、図３に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
【００７２】
図５において、パラメタ保持部５０２以外の各機能部は何れもコンピュータプログラムとして実装され、記憶装置１０３に保存されているものとする。以下では、これらの機能部を処理の主体として説明する場合もあるが、実際にはＣＰＵ１０１が該機能部に対応するコンピュータプログラムを実行することで、対応する処理が実現される。しかし、これらの機能部の全てをコンピュータプログラムで実装することに限るものではなく、一部をハードウェアで実装しても構わない。また、パラメタ保持部５０２は、記憶装置１０３や外部メモリ１０７が有するメモリ領域の一部として実装されるものとする。なお、図５に示した全ての機能部をハードウェアで構成しても構わない。
【００７３】
パラメタ保持部５０２は、一般ＮＮ及び専門ＮＮ（２つの専門ＮＮのそれぞれ）の各層間の重み係数及び各層のバイアス値（学習済みの値）を保持する。また、パラメタ保持部５０２は、本実施形態に係る処理で用いられる各種のパラメータも保持している。
【００７４】
一般ＮＮ前段処理部５０１は、パラメタ保持部５０２に格納されている「一般ＮＮの入力層からＭ層目までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける入力層からＭ層目までの各層間及び各層を確定させる。そして一般ＮＮ前段処理部５０１は、一般ＮＮ前段処理部３０２と同様に動作し、Ｍ層目からの出力（Ｍ層目を構成する各ニューロンの出力）を求める。そして一般ＮＮ前段処理部５０１は、Ｍ層目の出力として求めたものを、一般ＮＮ後段処理部５０８、専門ＮＮ前段処理部５０３、専門ＮＮ前段処理部５０５に対して送出する。
【００７５】
専門ＮＮ前段処理部５０３は、上記２つの専門ＮＮのうちの一方（専門ＮＮＡと呼称する）における入力層の処理を実行する機能部である。専門ＮＮ前段処理部５０３は先ず、パラメタ保持部５０２に格納されている「専門ＮＮＡの入力層と２層目との間の重み係数及び入力層のバイアス値」を読み出して設定することで、専門ＮＮＡにおける入力層と２層目との間及び入力層を確定させる。そして専門ＮＮ前段処理部５０３は、一般ＮＮ前段処理部５０１からの出力を専門ＮＮＡの入力層に入力して、入力層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、入力層からの出力（入力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ前段処理部５０３は、入力層の出力として求めたものを、専門ＮＮ後段処理部５０４に対して送出する。
【００７６】
専門ＮＮ後段処理部５０４は、専門ＮＮＡにおける２層目から出力層までの各層の処理を実行する機能部である。２層目から出力層までの間には、特定の特徴（ここでは特徴Ａとする）を学習したニューロンである注目ニューロンが属する層も含まれている。専門ＮＮ後段処理部５０４は先ず、パラメタ保持部５０２に格納されている「専門ＮＮＡの２層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、専門ＮＮＡにおける２層目から出力層までの各層間及び各層を確定させる。そして専門ＮＮ後段処理部５０４は、専門ＮＮ前段処理部５０３からの出力を２層目に入力し、２層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ後段処理部５０４は、出力層からの出力として求めた結果と、注目ニューロンの出力と、を一般ＮＮ後段処理部５０８に対して送出する。また、専門ＮＮ後段処理部５０４は、注目ニューロンの出力を、専門ニューロン活動統合部５０７に対して送出する。
【００７７】
専門ＮＮ前段処理部５０５は、上記２つの専門ＮＮのうちの他方（専門ＮＮＢと呼称する）における入力層の処理を実行する機能部である。専門ＮＮ前段処理部５０５は先ず、パラメタ保持部５０２に格納されている「専門ＮＮＢの入力層と２層目との間の重み係数及び入力層のバイアス値」を読み出して設定することで、専門ＮＮＢにおける入力層と２層目との間及び入力層を確定させる。そして専門ＮＮ前段処理部５０５は、一般ＮＮ前段処理部５０１からの出力を専門ＮＮＢの入力層に入力して、入力層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、入力層からの出力（入力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ前段処理部５０５は、入力層の出力として求めたものを、専門ＮＮ後段処理部５０６に対して送出する。
【００７８】
専門ＮＮ後段処理部５０６は、専門ＮＮＢにおける２層目から出力層までの各層の処理を実行する機能部である。２層目から出力層までの間には、特定の特徴（ここでは特徴Ｂ（≠特徴Ａ）とする）を学習したニューロンである注目ニューロンが属する層も含まれている。専門ＮＮ後段処理部５０６は先ず、パラメタ保持部５０２に格納されている「専門ＮＮＢの２層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、専門ＮＮＢにおける２層目から出力層までの各層間及び各層を確定させる。そして専門ＮＮ後段処理部５０６は、専門ＮＮ前段処理部５０５からの出力を２層目に入力し、２層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ後段処理部５０６は、出力層からの出力として求めた結果と、注目ニューロンの出力と、を一般ＮＮ後段処理部５０８に対して送出する。また、専門ＮＮ後段処理部５０６は、注目ニューロンの出力を、専門ニューロン活動統合部５０７に対して送出する。
【００７９】
一般ＮＮ後段処理部５０８は、一般ＮＮにおける（Ｍ＋１）層目から出力層までの各層の処理を実行する機能部である。一般ＮＮ後段処理部５０８は先ず、パラメタ保持部５０２に格納されている「一般ＮＮの（Ｍ＋１）層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける（Ｍ＋１）層目から出力層までの各層間及び各層を確定させる。そして一般ＮＮ後段処理部５０８は、一般ＮＮ前段処理部５０１からの出力、専門ＮＮ後段処理部５０４からの出力、専門ＮＮ後段処理部５０６からの出力、を専門ＮＮ後段処理部５０４及び専門ＮＮ後段処理部５０６からの出力（注目ニューロンの出力）を用いた後述の処理により統合した結果を求め、該統合した結果を（Ｍ＋１）層目に入力し、（Ｍ＋１）層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして一般ＮＮ後段処理部５０８は、出力層からの出力として求めた結果を、上記の入力画像に対する結果、即ち、ノイズ低減処理が施された画像として、画像データ出力部３０７に対して送出する。
【００８０】
専門ニューロン活動統合部５０７は、専門ＮＮ後段処理部５０４からの出力（注目ニューロンの出力）及び専門ＮＮ後段処理部５０６からの出力（注目ニューロンの出力）に基づいて、専門ＮＮ後段処理部５０４や専門ＮＮ後段処理部５０６の動作制御を行う。
【００８１】
次に、一般ＮＮ後段処理部５０８が、一般ＮＮ前段処理部５０１からの出力、専門ＮＮ後段処理部５０４からの出力、専門ＮＮ後段処理部５０６からの出力、を専門ＮＮ後段処理部５０４及び専門ＮＮ後段処理部５０６からの出力（注目ニューロンの出力）を用いて統合する処理について説明する。この統合は、例えば、以下の式に従って行う。
【００８２】
【数５】
2016031747.tif 000007
【００８３】
ここで、ｄｍｕｌｔｉは、一般ＮＮ後段処理部５０８による統合結果である。また、ｄｓｌは、ｌ番目の専門ＮＮにおける出力層からの出力、ｋｌは、ｌ番目の専門ＮＮにおける注目ニューロンの数、ａｎｌｃｉｌは、ｌ番目の専門ＮＮにおけるｉｌ番目の注目ニューロンの出力値、である。また、Ｍは適当なパラメータで、例えば一般ＮＮと専門ＮＮとの合計数、即ちＭ＝３である。然るに一般ＮＮ後段処理部５０８は、このような式に従って統合を行った結果ｄｍｕｌｔｉを、一般ＮＮの（Ｍ＋１）層目に入力する。このような統合により、特定の特徴（注目ニューロンが学習した特徴）に注目しながらノイズを低減した画像が、一般ＮＮの出力層から出力されることになる。なお、第１の実施形態と同様に、ｒを信頼度として、式（５）の第１項目に（１−ｒ）を乗じ、第２項目にｒを乗じた式を、式（５）の代わりに用いても構わない。また、統合結果は０から１の範囲に限るものではなく、マイナス値や１以上の値であっても問題ない。
【００８４】
以上説明した、一般ＮＮと専門ＮＮとを用いて行うノイズ低減処理について、同処理のフローチャートを示す図６を用いて説明する。
【００８５】
＜ステップＳ６０１＞
画像データ入力部３０１は、撮像装置１０５や記憶装置１０３から得られる画像を入力画像として取得し、該取得した入力画像を一般ＮＮ前段処理部５０１に入力する。
【００８６】
＜ステップＳ６０２＞
一般ＮＮ前段処理部５０１は、パラメタ保持部５０２に格納されている「一般ＮＮの入力層からＭ層目までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける入力層からＭ層目までの各層間及び各層を確定させる。
【００８７】
一般ＮＮ後段処理部５０８は、パラメタ保持部５０２に格納されている「一般ＮＮの（Ｍ＋１）層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける（Ｍ＋１）層目から出力層までの各層間及び各層を確定させる。
【００８８】
専門ＮＮ前段処理部５０３は、パラメタ保持部５０２に格納されている「専門ＮＮＡの入力層と２層目との間の重み係数及び入力層のバイアス値」を読み出して設定することで、専門ＮＮＡにおける入力層と２層目との間及び入力層を確定させる。
【００８９】
専門ＮＮ後段処理部５０４は、パラメタ保持部５０２に格納されている「専門ＮＮＡの２層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、専門ＮＮＡにおける２層目から出力層までの各層間及び各層を確定させる。
【００９０】
専門ＮＮ前段処理部５０５は、パラメタ保持部５０２に格納されている「専門ＮＮＢの入力層と２層目との間の重み係数及び入力層のバイアス値」を読み出して設定することで、専門ＮＮＢにおける入力層と２層目との間及び入力層を確定させる。
【００９１】
専門ＮＮ後段処理部５０６は、パラメタ保持部５０２に格納されている「専門ＮＮＢの２層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、専門ＮＮＢにおける２層目から出力層までの各層間及び各層を確定させる。
【００９２】
＜ステップＳ６０３＞
一般ＮＮ前段処理部５０１は、一般ＮＮ前段処理部３０２と同様に動作し、Ｍ層目からの出力（Ｍ層目を構成する各ニューロンの出力）を求める。そして一般ＮＮ前段処理部５０１は、Ｍ層目の出力として求めたものを、一般ＮＮ後段処理部５０８、専門ＮＮ前段処理部５０３、専門ＮＮ前段処理部５０５に対して送出する。
【００９３】
＜ステップＳ６０４＞
専門ＮＮ前段処理部５０３は、一般ＮＮ前段処理部５０１からの出力を専門ＮＮＡの入力層に入力して、入力層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、入力層からの出力（入力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ前段処理部５０３は、入力層の出力として求めたものを、専門ＮＮ後段処理部５０４に対して送出する。
【００９４】
専門ＮＮ前段処理部５０５は、一般ＮＮ前段処理部５０１からの出力を専門ＮＮＢの入力層に入力して、入力層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、入力層からの出力（入力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ前段処理部５０５は、入力層の出力として求めたものを、専門ＮＮ後段処理部５０６に対して送出する。
【００９５】
＜ステップＳ６０５＞
この時点で、専門ＮＮ前段処理部５０３及び専門ＮＮ前段処理部５０５の処理が完了していれば、処理はステップＳ６０７に進み、何れか一方でも完了していなければ、処理はステップＳ６０４に戻って、完了を待機する。
【００９６】
＜ステップＳ６０７＞
専門ＮＮ後段処理部５０４は、専門ＮＮ前段処理部５０３からの出力を専門ＮＮＡの２層目に入力し、２層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。なお、専門ＮＮ後段処理部５０４は、注目ニューロンの出力を求めた時点で、該求めた注目ニューロンの出力を、一般ＮＮ後段処理部５０８及び専門ニューロン活動統合部５０７に対して送出する。そしてその後、専門ＮＮ後段処理部５０４は、出力層からの出力を求めると、出力層からの出力を一般ＮＮ後段処理部５０８に対して送出する。
【００９７】
また、専門ＮＮ後段処理部５０６は、専門ＮＮ前段処理部５０５からの出力を専門ＮＮＢの２層目に入力し、２層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。なお、専門ＮＮ後段処理部５０６は、注目ニューロンの出力を求めた時点で、該求めた注目ニューロンの出力を、一般ＮＮ後段処理部５０８及び専門ニューロン活動統合部５０７に対して送出する。そしてその後、専門ＮＮ後段処理部５０６は、出力層からの出力を求めると、出力層からの出力を一般ＮＮ後段処理部５０８に対して送出する。
【００９８】
＜ステップＳ６０８＞
この時点で、専門ＮＮ後段処理部５０４及び専門ＮＮ後段処理部５０６の処理が完了していれば、処理はステップＳ６０９に進み、何れか一方でも完了していなければ、処理はステップＳ６０７に戻って、完了を待機する。
【００９９】
なお、図６のフローチャートに従った処理は、専門ニューロン活動統合部５０７が動作しない場合の処理であるが、専門ニューロン活動統合部５０７が動作する場合、ステップＳ６０７では、次のような処理が行われる。
【０１００】
専門ニューロン活動統合部５０７は、専門ＮＮ後段処理部５０４からの出力（注目ニューロンの出力）及び専門ＮＮ後段処理部５０６からの出力（注目ニューロンの出力）を参照して、専門ＮＮＡ及び専門ＮＮＢのうち注目ニューロンの出力が最も大きい方を選択する。ここで、専門ＮＮＡが選択された場合には、専門ＮＮＢの動作を停止させるべく、専門ＮＮ後段処理部５０６の動作を停止させる。また、専門ＮＮＢが選択された場合には、専門ＮＮＡの動作を停止させるべく、専門ＮＮ後段処理部５０４の動作を停止させる。
【０１０１】
例えば、専門ＮＮＡは空を専門的に処理し、専門ＮＮＢは文字を専門的に処理する機能を持つとする。もし専門ＮＮＡの注目ニューロンの出力が十分に高い（閾値以上の値である、若しくは専門ＮＮＢにおける注目ニューロンの出力と比べて十分に高い）、つまり入力画像が空の特徴を十分に持っていれば、他の特徴である文字の専門ＮＮＢをこれ以上動作させる必要はないので、専門ＮＮＢの動作を停止させる。
【０１０２】
このような動作制御の場合、専門ＮＮＡ及び専門ＮＮＢのうち何れか一方しか出力がないため、この場合、一般ＮＮの（Ｍ＋１）層目へは、専門ＮＮＡ及び専門ＮＮＢのうち選択された一方の出力層からの出力と、一般ＮＮのＭ層目の出力と、を第１の実施形態で説明した統合方法でもって統合した結果を入力することになる。
【０１０３】
また、専門ＮＮを３以上設けた場合、ステップＳ６０７では、専門ニューロン活動統合部５０７は、それぞれの専門ＮＮからの注目ニューロンの出力を参照し、最も大きい出力の注目ニューロンが属する専門ＮＮを選択すると共に、該専門ＮＮと関連する他の専門ＮＮを選択するようにしても良い。
【０１０４】
例えば、専門ＮＮＣは地面を専門的に処理する機能を持つとする。そしてこの場合において、専門ＮＮＡの注目ニューロンの出力が最も高かったら、専門ＮＮＡだけでなく、空と比較的似ている地面の特徴を専門的に処理する専門ＮＮＣの動作も継続させる。
【０１０５】
このような動作制御の場合、一般ＮＮの（Ｍ＋１）層目へは、専門ＮＮＡ及び専門ＮＮＣの出力層からの出力と、一般ＮＮのＭ層目の出力と、を本実施形態で説明した統合方法でもって統合した結果を入力することになる。
【０１０６】
ここでは専門ニューロン活動統合部５０７による動作制御として２つの例を挙げたが、この２つの例を統合しても構わないし、他の例を実装しても構わない。何れにせよ、専門ニューロン活動統合部５０７による動作制御は、効率的に全体の処理を行うことに加えて、一般ＮＮの後段への不要な情報の混入にさせないことにもつながる。
【０１０７】
＜ステップＳ６０９＞
一般ＮＮ後段処理部５０８は、一般ＮＮ前段処理部５０１からの出力、専門ＮＮ後段処理部５０４からの出力、専門ＮＮ後段処理部５０６からの出力、を上記の統合方法でもって統合した結果を求め、該統合した結果を（Ｍ＋１）層目に入力し、（Ｍ＋１）層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして一般ＮＮ後段処理部５０８は、出力層からの出力として求めた結果を、画像データ出力部３０７に対して送出する。
【０１０８】
＜ステップＳ６１０＞
画像データ出力部３０７は、一般ＮＮ後段処理部５０８から受けた画像を、モニタ１０８、記憶装置１０３、外部メモリ１０７、等の適当な出力先に対して出力する。なお、出力先は２以上であっても構わない。
【０１０９】
なお、本実施形態では、一般ＮＮの前段に入力画像が入力され、一般ＮＮの前段からの出力をそれぞれの専門ＮＮの入力層に入力する構成となっていたが、この構成に限るものではない。例えば、一般ＮＮと専門ＮＮのそれぞれが入力画像を受け取って出力層からの出力を求める処理を並列に行い、最後に一般ＮＮ及び専門ＮＮのそれぞれの出力層からの出力を統合するようにしても構わない。
【０１１０】
このように、本実施形態によれば、注目ニューロンの出力に基づいて、一般ＮＮと複数の専門ＮＮの出力を合成して用いたり、特定の専門ＮＮの動作を停止させたりすることで、一般的な特徴に対してのみならず特定の特徴に対しても特徴を保持したまま効率の良いノイズ低減することが可能となる。
【０１１１】
［第３の実施形態］
本実施形態では、第１の実施形態で説明した、１つの一般ＮＮと１つの専門ＮＮとから成る複合ニューラルネットワークを用いるのであるが、一般ＮＮの入力層には、入力画像全体を入力するのではなく、入力画像よりもサイズの小さい画像を入力する。例えば、入力画像を複数の画素ブロックに分割し、それぞれの画素ブロックを入力する。若しくは、入力画像上を該入力画像よりもサイズの小さいウィンドウをラスタスキャン順に移動させながら、該ウィンド内の画像を入力する。何れにせよ、一般ＮＮの入力層に入力するものは、入力画像から切り取った部分画像であることには変わらない。
ここで、入力画像から部分画像を切り取るときに問題となるのが、部分画像の切り取り方によっては、入力画像にとって重要な特徴が分断されて別の特徴として扱われてしまい、このような部分画像を一般ＮＮに入力しても、適切なノイズ低減がなされた部分画像が出力されない可能性がある。例えば、ノイズが付加された入力画像中のウサギを適切に処理するためには、目と鼻と口と耳を含めた一匹のウサギ全体を含む部分画像を一般ＮＮに入力する必要がある。このような部分画像を一般ＮＮに入力することで、目と鼻と口と耳などがそれぞれ異なる処理領域として入力されるよりもウサギの特徴をふまえて適切に処理されやすい。
【０１１２】
本実施形態では、注目ニューロンの出力が比較的高い部分画像及びその周辺の部分画像を探し、探したそれぞれの部分画像を一般ＮＮの入力層に入力して一般ＮＮの出力層から得られる出力画像を、そのときに注目ニューロンから得られる出力で重み付けしてから合成して出力する。これにより、適切なノイズ低減効果を得る。
【０１１３】
以下では第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。本実施形態に係る情報処理装置の機能構成例について、図７のブロック図を用いて説明する。図７において、図３に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
【０１１４】
図７において、パラメタ保持部３０３を除く各機能部は何れもコンピュータプログラムとして実装され、記憶装置１０３に保存されているものとする。以下では、これらの機能部を処理の主体として説明する場合もあるが、実際にはＣＰＵ１０１が該機能部に対応するコンピュータプログラムを実行することで、対応する処理が実現される。しかし、これらの機能部の全てをコンピュータプログラムで実装することに限るものではなく、一部をハードウェアで実装しても構わない。また、パラメタ保持部３０３は、記憶装置１０３や外部メモリ１０７が有するメモリ領域の一部として実装されるものとする。なお、図７に示した全ての機能部をハードウェアで構成しても構わない。
【０１１５】
領域設定部７０１は、画像データ入力部３０１から入力された入力画像から部分画像単位で切り出し、切り出した部分画像を一般ＮＮ前段処理部３０２に入力する。なお、入力画像から部分画像単位で切り出す方法は、特定の方法に限るものではなく、上記のように、入力画像を部分画像単位で分割してそれぞれの部分画像を取得する方法であっても構わないし、入力画像上をラスタスキャン順でウィンドを移動させながら該ウィンド内の画像を部分画像として取得する方法であっても構わない。あるいは、部分画像から取得した特徴量を入力として用いても構わない。また、領域設定部７０１は、複数回処理判定部７０２からの指示に応じて切り出し位置を変更して、変更後の切り出し位置における部分画像を切り出して一般ＮＮ前段処理部３０２に入力する。
【０１１６】
一般ＮＮ前段処理部３０２、一般ＮＮ後段処理部３０６、専門ＮＮ前段処理部３０４、専門ＮＮ後段処理部３０５は何れも第１の実施形態と同様であるが、処理単位が入力画像ではなく、部分画像である点が第１の実施形態と異なる。
【０１１７】
複数回処理判定部７０２は、領域設定部７０１を制御して、注目ニューロンの出力が比較的高くなる部分画像を探す。合成部７０３は、注目ニューロンの出力が比較的高かった部分画像を合成して画像データ出力部３０７に対して出力する。
【０１１８】
以上説明した、一般ＮＮと専門ＮＮとを用いて行うノイズ低減処理について、同処理のフローチャートを示す図８を用いて説明する。
【０１１９】
＜ステップＳ８０１＞
画像データ入力部３０１は、撮像装置１０５や記憶装置１０３から得られる画像を入力画像として取得し、該取得した入力画像を領域設定部７０１に入力する。
【０１２０】
＜ステップＳ８０２＞
一般ＮＮ前段処理部３０２は、パラメタ保持部３０３に格納されている「一般ＮＮの入力層からＭ層目までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける入力層からＭ層目までの各層間及び各層を確定させる。
【０１２１】
一般ＮＮ後段処理部３０６は、パラメタ保持部３０３に格納されている「一般ＮＮの（Ｍ＋１）層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける（Ｍ＋１）層目から出力層までの各層間及び各層を確定させる。
【０１２２】
専門ＮＮ前段処理部３０４は、パラメタ保持部３０３に格納されている「専門ＮＮの入力層と２層目との間の重み係数及び入力層のバイアス値」を読み出して設定することで、専門ＮＮにおける入力層と２層目との間及び入力層を確定させる。
【０１２３】
専門ＮＮ後段処理部３０５は、パラメタ保持部３０３に格納されている「専門ＮＮの２層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、専門ＮＮにおける２層目から出力層までの各層間及び各層を確定させる。
【０１２４】
＜ステップＳ８０３＞
領域設定部７０１は、画像データ入力部３０１から入力された入力画像から部分画像単位で切り出す。そして領域設定部７０１は、切り出したそれぞれの部分画像のうち未選択の部分画像を１つ、選択画像として選択する。
【０１２５】
＜ステップＳ８０４＞
一般ＮＮ前段処理部３０２は、ステップＳ８０３において領域設定部７０１が選択した選択画像を一般ＮＮの入力層に入力し、入力層からＭ層目までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、Ｍ層目からの出力（Ｍ層目を構成する各ニューロンの出力）を求める。そして一般ＮＮ前段処理部３０２は、Ｍ層目の出力として求めたものを、一般ＮＮ後段処理部３０６及び専門ＮＮ前段処理部３０４に対して送出する。
【０１２６】
＜ステップＳ８０５＞
専門ＮＮ前段処理部３０４は、一般ＮＮ前段処理部３０２からの出力を専門ＮＮの入力層に入力して、入力層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、入力層からの出力（入力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ前段処理部３０４は、入力層の出力として求めたものを、専門ＮＮ後段処理部３０５に対して送出する。
【０１２７】
＜ステップＳ８０６＞
専門ＮＮ後段処理部３０５は、専門ＮＮ前段処理部３０４からの出力を専門ＮＮの２層目に入力し、２層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ後段処理部３０５は、出力層からの出力として求めた結果と、注目ニューロンの出力と、を一般ＮＮ後段処理部３０６に対して送出する。専門ＮＮ後段処理部３０５は更に、注目ニューロンの出力を、複数回処理判定部７０２に対しても送出する。
【０１２８】
＜ステップＳ８０７＞
一般ＮＮ後段処理部３０６は、ステップＳ８０４で求めた一般ＮＮのＭ層目からの出力と、ステップＳ８０６で求めた専門ＮＮの出力層からの出力と、ステップＳ８０６で求めた注目ニューロンの出力と、を用いて上記の式（３）や式（４）に従った計算を行うことで、一般ＮＮのＭ層目からの出力と専門ＮＮの出力層からの出力との統合結果を求める。そして一般ＮＮ後段処理部３０６は、この統合結果を一般ＮＮの（Ｍ＋１）層目に入力し、（Ｍ＋１）層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして一般ＮＮ後段処理部３０６は、出力層からの出力として求めた結果を、合成部７０３に対して送出する。
【０１２９】
＜ステップＳ８０８＞
複数回処理判定部７０２は、専門ＮＮ後段処理部３０５から受けた注目ニューロンの出力が規定値以上であるか否かを判断する。この判断の結果、閾値未満であれば、領域設定部７０１に未選択の部分画像を選択させるべく、処理はステップＳ８０３に戻る。一方、閾値以上であれば、処理はステップＳ８０８ａに進む。
【０１３０】
＜ステップＳ８０８ａ＞
複数回処理判定部７０２は、選択画像の周辺から選択画像と同サイズの画像（検索画像と呼称する）を検索すべく、領域設定部７０１に検索指示を行う。領域設定部７０１は、該検索指示を受けると、選択画像の周辺、例えば、選択画像（水平Ｍ画素×垂直Ｎ画素とする）の領域を上方にＮ／２画素ずらした領域内の画像、選択画像の領域を下方にＮ／２画素ずらした領域内の画像、選択画像の領域を左方にＭ／２画素ずらした領域内の画像、選択画像の領域を右方にＭ／２画素ずらした領域内の画像、を検索画像として特定する。そして領域設定部７０１は、特定した検索画像のうち未選択の検索画像を１つ選択して一般ＮＮ前段処理部３０２に入力する。
【０１３１】
＜ステップＳ８０８ｂ＞
ステップＳ８０８ａにて選択された検索画像を一般ＮＮ前段処理部３０２への入力として、上記のステップＳ８０４〜Ｓ８０７の処理を行うことで、一般ＮＮの出力層から、該検索画像に対する出力画像を得ると共に、該検索画像に対する注目ニューロンからの出力を得る。
【０１３２】
＜ステップＳ８０８ｃ＞
複数回処理判定部７０２は、ステップＳ８０８ｂで得た注目ニューロンの出力が閾値以上であるか否かを判断する。この判断の結果、閾値以上であれば、処理はステップＳ８０８ａに戻り、未選択の検索画像について処理を行うことになる。一方、閾値未満である場合、若しくはステップＳ８０８ａ及びステップＳ８０８ｂの処理を規定回数以上行った場合（例えば全ての検索画像を選択した場合）には、処理はステップＳ８０９に進む。
【０１３３】
＜ステップＳ８０９＞
合成部７０３は、選択画像を一般ＮＮの入力層に入力した場合に一般ＮＮの出力層から得られる出力画像（Ｄ１）、該選択画像に対するそれぞれの検索画像を一般ＮＮの入力層に入力した場合に一般ＮＮの出力層から得られる出力画像（Ｄ２，…，ＤＭ）、を合成して１枚の合成画像を生成する。該合成では、選択画像を一般ＮＮの入力層に入力した場合の注目ニューロンの出力をａｎｃ１、該選択画像に対するそれぞれの検索画像を一般ＮＮの入力層に入力した場合の注目ニューロンの出力をａｎｃ２，…，ａｎｃＭとすると、以下の式でもって合成画像Ｄを生成する。
【０１３４】
【数６】
2016031747.tif 000008
【０１３５】
ここで、「ａｎｃｔ×Ｄｔ」とは、画像Ｄｔにおける画素値にａｎｃｔを乗じていることを示している。また、出力画像同士を合成する場合、出力画像同士で位置合わせを行いながら合成する。例えば、それぞれの出力画像は、元の入力画像上における位置が異なる領域内の画像であるから、ずれている位置を合わせながら合成する。なお、どの出力画像の位置に合わせるのかについては別段特定の取り決めがあるわけではなく、例えば、注目ニューロンの出力が最も高かった出力画像の位置に合わせて合成しても良い。
【０１３６】
＜ステップＳ８１０＞
領域設定部７０１は、入力画像における全ての部分画像を選択画像として選択したか否かを判断する。この判断の結果、全ての部分画像を選択画像として選択した場合には、処理はステップＳ８１１に進み、未だ選択画像として選択してない部分画像が残っている場合には、該部分画像を選択すべく、処理はステップＳ８０３に戻る。
【０１３７】
＜ステップＳ８１１＞
画像データ出力部３０７は、合成部７０３による合成画像群を、モニタ１０８、記憶装置１０３、外部メモリ１０７、等の適当な出力先に対して出力する。なお、出力先は２以上であっても構わない。なお、合成画像群は、入力画像上における元の並び順で並べてから出力しても構わない。
【０１３８】
なお、入力画像上の全ての部分画像について注目ニューロンの出力を得た後、注目ニューロンの出力が規定値以上となった部分画像を特定し、該特定した部分画像から成る領域を対象として、図８のフローチャートに従った処理を行うようにしても構わない。
【０１３９】
このように、本実施形態によれば、ニューラルネットワークで処理を行うために入力画像に領域を設定する場合であっても、適切な領域を設定して一般的な特徴のみならず特定の特徴に対しても、特徴を保持しながらノイズを低減させることが可能となる。
【０１４０】
［第４の実施形態］
本実施形態では、第１の実施形態で説明した、１つの一般ＮＮと１つの専門ＮＮとから成る複合ニューラルネットワークを用いて、撮像装置１０５から得られるＲＡＷ画像からＲＧＢ等の多チャンネルの画像を生成する処理、所謂デモザイク処理を行うと共に、上記のようなノイズ低減処理をも行う。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【０１４１】
従来では、ノイズ低減処理及びデモザイク処理はどちらか一方から順に処理を行っていたが、デモザイク処理をノイズ低減より先に行った場合、ノイズの影響で適切に補間されないという問題があった。一方、ノイズ低減をデモザイク処理より先に行った場合、色同士の相関情報など画像の情報を考慮したノイズ低減処理ができないという問題があった。この点に関し、特開２０１２−２４４４４９号公報には、色差信号や輝度信号を生成してデモザイク処理を行う方法が提案されている。この方法では、入力画像を色差・輝度などの色空間に変換するが、その処理で画素の平均化や補間を少なくとも一部行うため、ボケやアーティファクトを生じうるという問題があった。
【０１４２】
本実施形態では、第１の実施形態で説明した、１つの一般ＮＮと１つの専門ＮＮとから成る複合ニューラルネットワークを用いて、ＲＡＷ画像からデモザイク処理及びノイズ低減処理を同時に行い、詳細な特徴が適切に保持された現像画像を生成する。
【０１４３】
そこで、このような構成を実現させるために、本実施形態では、入力データとしてＲＡＷ画像、教師データとしてノイズが低減された多チャンネル画像、を与えて学習した階層型ニューラルネットワークを一般ＮＮとして使用する。また、入力データとしてＲＡＷ画像、出力層用の教師データとしてノイズが低減された多チャンネル画像、注目ニューロン用の教師データとして、各チャンネル情報、色同士の相関などの量、を与えて学習した階層型ニューラルネットワークを専門ＮＮとして使用する。
【０１４４】
また、入力層用の入力データとして、ＲＡＷ画像を複数の部分ＲＡＷ画像に分割した場合のそれぞれを用いるのであるが、ＲＡＷ画像からどのような方法で部分画像を抽出するのかについては、撮像装置１０５のセンサ上のチャンネルの並び方などに応じて決まる。例えば、どの部分画像の左上隅にもベイヤ配列におけるＲ（赤）の画素が位置するように、ＲＡＷ画像から複数の部分画像を抽出する（すなわち、どの部分画像も、同様の色成分配列となるようにする）。これは、学習済みの複合ニューラルネットワークに入力する部分画像についても同様で、入力画像としてのＲＡＷ画像から、どの部分画像の左上隅にもＲ（赤）の画素が位置するように、ＲＡＷ画像から複数の部分画像を抽出し、該抽出したそれぞれの部分画像を入力する。
【０１４５】
なお、多チャンネル画像とは、ＲＡＷ画像から生成することができる複数のチャンネル情報に関する画像とし、ＲＡＷ画像に依存してＲＧＢ画像やＲＧＢＹ画像、ＹＣｂＣｒ画像、ＲＧＢＩｒ画像など様々な形態を取りうる。また、正規化したデータで学習を行った場合は、ＲＡＷ画像に対しても同様の正規化処理を行った結果を一般ＮＮの入力層に入力する。
【０１４６】
このような学習を行うことで、注目ニューロンの出力を通じて特定の特徴がどの程度部分画像に含まれているかを知ることが可能になる。例えば、平坦部・エッジ部・テクスチャ部などの画像上の空間情報に注目することで、特徴ごとに適切なデモザイクが可能になる。
【０１４７】
本実施形態に係る情報処理装置の機能構成例について、図９のブロック図を用いて説明する。図９において、図３に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
【０１４８】
図９において、パラメタ保持部３０３を除く各機能部は何れもコンピュータプログラムとして実装され、記憶装置１０３に保存されているものとする。以下では、これらの機能部を処理の主体として説明する場合もあるが、実際にはＣＰＵ１０１が該機能部に対応するコンピュータプログラムを実行することで、対応する処理が実現される。しかし、これらの機能部の全てをコンピュータプログラムで実装することに限るものではなく、一部をハードウェアで実装しても構わない。また、パラメタ保持部３０３は、記憶装置１０３や外部メモリ１０７が有するメモリ領域の一部として実装されるものとする。なお、図９に示した全ての機能部をハードウェアで構成しても構わない。
【０１４９】
ＲＡＷ画像データ入力部９０１は、ＲＡＷ画像と、該ＲＡＷ画像上におけるそれぞれの画素の色成分を表す色成分情報（例えばベイヤ配列を表す情報）と、を領域設定部９０２に入力する。
【０１５０】
領域設定部９０２は色成分情報を参照し、ＲＡＷ画像から、上記の如く、学習時に部分画像を切り出した条件と同じ条件で部分画像を切り出して一般ＮＮ前段処理部３０２に入力する。
【０１５１】
多チャンネル画像データ出力部９０３は、それぞれの部分画像に対応する一般ＮＮ後段処理部３０６からの出力画像を連結させて１枚の出力画像を形成し、該形成した出力画像をモニタ１０８に表示させる。なお、出力画像の出力先はモニタ１０８に限るものではなく、記憶装置１０３であっても良いし、外部メモリ１０７であっても良いし、不図示のネットワークインターフェースを介して外部の装置に対して送信しても構わない。
【０１５２】
以上説明した、一般ＮＮと専門ＮＮとを用いて行うデモザイク処理及びノイズ低減処理について、同処理のフローチャートを示す図１０を用いて説明する。
【０１５３】
＜ステップＳ１００１＞
ＲＡＷ画像データ入力部９０１は、ＲＡＷ画像と、該ＲＡＷ画像上におけるそれぞれの画素の色成分を表す色成分情報（例えばベイヤ配列を表す情報）と、を領域設定部９０２に入力する。
【０１５４】
＜ステップＳ１００２＞
一般ＮＮ前段処理部３０２は、パラメタ保持部３０３に格納されている「一般ＮＮの入力層からＭ層目までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける入力層からＭ層目までの各層間及び各層を確定させる。
【０１５５】
一般ＮＮ後段処理部３０６は、パラメタ保持部３０３に格納されている「一般ＮＮの（Ｍ＋１）層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、一般ＮＮにおける（Ｍ＋１）層目から出力層までの各層間及び各層を確定させる。
【０１５６】
専門ＮＮ前段処理部３０４は、パラメタ保持部３０３に格納されている「専門ＮＮの入力層と２層目との間の重み係数及び入力層のバイアス値」を読み出して設定することで、専門ＮＮにおける入力層と２層目との間及び入力層を確定させる。
【０１５７】
専門ＮＮ後段処理部３０５は、パラメタ保持部３０３に格納されている「専門ＮＮの２層目から出力層までの各層間の重み係数及び各層のバイアス値」を読み出して設定することで、専門ＮＮにおける２層目から出力層までの各層間及び各層を確定させる。
【０１５８】
＜ステップＳ１００３＞
領域設定部９０２は色成分情報を参照し、ＲＡＷ画像から、上記の如く、学習時に部分画像を切り出した条件と同じ条件で部分画像を切り出すことで、複数の部分画像を切り出し、該複数の部分画像のうち未選択の部分画像を１つ選択して、一般ＮＮ前段処理部３０２に入力する。
【０１５９】
＜ステップＳ１００４＞
一般ＮＮ前段処理部３０２は、ステップＳ１００３で領域設定部９０２によって入力された部分画像を一般ＮＮの入力層に入力し、入力層からＭ層目までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、Ｍ層目からの出力（Ｍ層目を構成する各ニューロンの出力）を求める。そして一般ＮＮ前段処理部３０２は、Ｍ層目の出力として求めたものを、一般ＮＮ後段処理部３０６及び専門ＮＮ前段処理部３０４に対して送出する。
【０１６０】
＜ステップＳ１００５＞
専門ＮＮ前段処理部３０４は、一般ＮＮ前段処理部３０２からの出力を専門ＮＮの入力層に入力して、入力層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、入力層からの出力（入力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ前段処理部３０４は、入力層の出力として求めたものを、専門ＮＮ後段処理部３０５に対して送出する。
【０１６１】
＜ステップＳ１００６＞
専門ＮＮ後段処理部３０５は、専門ＮＮ前段処理部３０４からの出力を専門ＮＮの２層目に入力し、２層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして専門ＮＮ後段処理部３０５は、出力層からの出力として求めた結果と、注目ニューロンの出力と、を一般ＮＮ後段処理部３０６に対して送出する。
【０１６２】
＜ステップＳ１００７＞
一般ＮＮ後段処理部３０６は、ステップＳ１００４で求めた一般ＮＮのＭ層目からの出力と、ステップＳ１００６で求めた専門ＮＮの出力層からの出力と、ステップＳ１００６で求めた注目ニューロンの出力と、を用いて上記の式（３）や式（４）に従った計算を行うことで、一般ＮＮのＭ層目からの出力と専門ＮＮの出力層からの出力との統合結果を求める。そして一般ＮＮ後段処理部３０６は、この統合結果を一般ＮＮの（Ｍ＋１）層目に入力し、（Ｍ＋１）層目から出力層までの各層における各ニューロンについて、上記の式（１）、（２）に従った処理を実行することで、出力層からの出力（出力層を構成する各ニューロンの出力）を求める。そして一般ＮＮ後段処理部３０６は、出力層からの出力として求めた結果を、多チャンネル画像データ出力部９０３に対して送出する。
【０１６３】
＜ステップＳ１００８＞
領域設定部９０２は、ＲＡＷ画像における全ての部分画像を選択したか否かを判断する。この判断の結果、全ての部分画像を選択した場合には、処理はステップＳ１００９に進み、未だ選択してない部分画像が残っている場合には、該部分画像を選択すべく、処理はステップＳ１００３に戻る。
【０１６４】
＜ステップＳ１００９＞
多チャンネル画像データ出力部９０３は、それぞれの部分画像に対応する一般ＮＮ後段処理部３０６からの出力画像を連結させて１枚の出力画像を形成し、該形成した出力画像をモニタ１０８に表示させる。上記の通り、出力画像の出力先はモニタ１０８に限るものではない。
【０１６５】
このように、本実施形態によれば、ニューラルネットワークを用いて特定の特徴に注目しながらデモザイクとノイズ低減を同時に行い、特徴を保持した現像画像を生成することが可能となる。
【０１６６】
なお、本実施形態を含め、一般ＮＮの入力層にデータを入力するまでの前処理（例えば一般ＮＮの入力層に入力するデータの準備）は、情報処理装置以外の装置で行っても良い。また、上記の情報処理装置をクラウドサービスを行うネットワーク上の機器として用いても良く、その場合、クライアント端末側でこの前処理を行い、該前処理により用意されたデータをこの情報処理装置に送信し、該情報処理装置側でこのデータを一般ＮＮの入力層に入力することで一般ＮＮの出力層から出力されたデータをクライアント端末に返信するようなシステムも考え得る。
【０１６７】
（その他の実施例）
なお、本発明は、音声やテキストデータなど画像以外のデータにも適用することができる。例えば音声データの場合は、数秒などの時間で区切った音声データを入力データとすることで、同様に処理することができる。また、テキストデータの場合も、あるまとまりをもったテキストデータを入力データとして本発明を適用することができる。
【０１６８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１６９】
３０２：一般ＮＮ前段処理部  ３０６：一般ＮＮ後段処理部  ３０４：専門ＮＮ前段処理部  ３０５：専門ＮＮ後段処理部
【図１】
2016031747.tif 000009
【図２】
2016031747.tif 000010
【図３】
2016031747.tif 000011
【図４】
2016031747.tif 000012
【図５】
2016031747.tif 000013
【図６】
2016031747.tif 000014
【図７】
2016031747.tif 000015
【図８】
2016031747.tif 000016
【図９】
2016031747.tif 000017
【図１０】
2016031747.tif 000018