(57)【要約】【課題】多重解像度表現の情報の利用が可能であるとともに多層ネットワークの学習が可能なネットワーク構造を用いて、高精度な画像処理が可能な画像処理装置を提供する。【解決手段】画像処理装置（１００）は、少なくとも２層の第１の畳み込みニューラルネットワークを用いて、入力画像を第１の特徴量の情報に変換するメイン部（１０２）と、第２の畳み込みニューラルネットワークを用いて、入力画像を第２の特徴量の情報に変換する入力部（１０３）と、第３の畳み込みニューラルネットワークを用いて、第１の特徴量の情報と第２の特徴量の情報との加算により生成された第３の特徴量の情報を出力画像に変換する出力部（１０４）とを有する。【選択図】図５
2019008383.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２層の第１の畳み込みニューラルネットワークを用いて、入力画像を第１の特徴量の情報に変換するメイン部と、
第２の畳み込みニューラルネットワークを用いて、前記入力画像を第２の特徴量の情報に変換する入力部と、
第３の畳み込みニューラルネットワークを用いて、前記第１の特徴量の情報と前記第２の特徴量の情報との加算により生成された第３の特徴量の情報を出力画像に変換する出力部と、を有することを特徴とする画像処理装置。
【請求項２】
前記メイン部は、前記入力画像に対して、複数枚のフィルタを畳み込んだ後、非線形演算する処理を繰り返すことにより、前記第１の特徴量の情報として複数解像度の特徴マップを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記入力部は、前記入力画像に対して、複数枚かつ複数種類のサイズのフィルタを畳み込むことにより、前記第２の特徴量の情報として複数解像度の特徴マップを生成することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記第１の特徴量の情報と前記第２の特徴量の情報との加算は、前記第１の特徴量の情報と、該第１の特徴量の情報と解像度が等しい前記第２の特徴量の情報と、に関する要素ごとの和を算出することで行われることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記メイン部、前記入力部、または、前記出力部の少なくとも一つは、前記第１の特徴量の情報と前記第２の特徴量の情報との加算により前記第３の特徴量の情報を生成することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記出力部は、前記第３の特徴量の情報に対して、複数枚かつ複数種類のサイズのフィルタの逆畳み込みを行った後、非線形演算を行うことで得られる特徴マップに対して重み付けを行うことにより、前記第３の特徴量の情報を前記出力画像に変換することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記出力部は、前記非線形演算として、Ｌｅａｋｙ  ＲｅＬＵまたはＰａｒａｍｅｔｒｉｃ  ＲｅＬＵを用いることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記第１のニューラルネットワークで用いられる第１のフィルタおよび第１のバイアスは、前記第２のニューラルネットワークで用いられる第２のフィルタおよび第２のバイアスとそれぞれ互いに異なることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記入力画像を取得する取得部を更に有し、
前記メイン部は、前記取得部により取得された前記入力画像を前記第１の特徴量の情報に変換し、
前記入力部は、前記取得部により取得された前記入力画像を前記第２の特徴量の情報に変換することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記取得部は、前記入力画像として劣化画像を取得することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記出力部は、前記出力画像として、前記入力画像を鮮鋭化した鮮鋭画像を出力することを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
入力画像を取得する撮像部と、
少なくとも２層の第１の畳み込みニューラルネットワークを用いて、前記入力画像を第１の特徴量の情報に変換するメイン部と、
第２の畳み込みニューラルネットワークを用いて、前記入力画像を第２の特徴量の情報に変換する入力部と、
第３の畳み込みニューラルネットワークを用いて、前記第１の特徴量の情報と前記第２の特徴量の情報との加算により生成された第３の特徴量の情報を出力画像に変換する出力部と、を有することを特徴とする撮像装置。
【請求項１３】
少なくとも２層の第１の畳み込みニューラルネットワークを用いて、入力画像を第１の特徴量の情報に変換するステップと、
第２の畳み込みニューラルネットワークを用いて、前記入力画像を第２の特徴量の情報に変換するステップと、
第３の畳み込みニューラルネットワークを用いて、前記第１の特徴量の情報と前記第２の特徴量の情報との加算により生成された第３の特徴量の情報を出力画像に変換するステップと、を有することを特徴とする画像処理方法。
【請求項１４】
少なくとも２層の第１の畳み込みニューラルネットワークを用いて、入力画像を第１の特徴量の情報に変換するステップと、
第２の畳み込みニューラルネットワークを用いて、前記入力画像を第２の特徴量の情報に変換するステップと、
第３の畳み込みニューラルネットワークを用いて、前記第１の特徴量の情報と前記第２の特徴量の情報との加算により生成された第３の特徴量の情報を出力画像に変換するステップと、をコンピュータに実行させることを特徴とするプログラム。
【請求項１５】
請求項１４に記載のプログラムを記憶していることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、畳み込みニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＣＮＮ）を用いて高精度に画像処理する画像処理装置に関する。
【背景技術】
【０００２】
従来、ＣＮＮとして、多層ＣＮＮ（Ｍｕｌｔｉ−ｌａｙｅｒ  ＣＮＮ）および多重解像度ＣＮＮ（Ｍｕｌｔｉ−ｓｃａｌｅ  ＣＮＮ）が知られている。非特許文献１には、代表的な多層ＣＮＮであるＲｅｓＮｅｔが開示されている。非特許文献２には、代表的な多重解像度ＣＮＮであるＨＥＤ（Ｈｏｌｉｓｔｉｃａｌｌｙ−ｎｅｓｔｅｄ  Ｅｄｇｅ  Ｄｅｔｅｃｔｉｏｎ）が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｋａｉｍｉｎｇ  Ｈｅ、Ｘｉａｎｇｙｕ  Ｚｈａｎｇ、Ｓｈａｏｑｉｎｇ  Ｒｅｎ、Ｊｉａｎｇ  Ｓｕｎ、「Ｄｅｅｐ  ｒｅｓｉｄｕａｌ  ｌｅａｒｎｉｎｇ  ｆｏｒ  ｉｍａｇｅ  ｒｅｃｏｇｎｉｔｉｏｎ」、Ｔｈｅ  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ、アメリカ合衆国、２０１５、ｐｐ．７７０−７７８
【非特許文献２】Ｓａｉｎｉｎｇ  Ｘｉｅ、Ｚｈｕｏｗｎ  Ｔｕ、「Ｈｏｌｉｓｔｉｃａｌｌｙ−ｎｅｓｔｅｄ  ｅｄｇｅ  ｄｅｔｅｃｔｉｏｎ」、Ｔｈｅ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ、アメリカ合衆国、２０１５、ｐｐ．１３９５−１４０３
【非特許文献３】Ｘａｖｉｅｒ  Ｇｌｏｒｏｔ、Ｙｏｓｈｕａ  Ｂｅｎｇｉｏ、「Ｕｎｄｅｒｓｔａｎｄｉｎｇ  ｔｈｅ  ｄｉｆｆｉｃｕｌｔｙ  ｏｆ  ｔｒａｉｎｉｎｇ  ｄｅｅｐ  ｆｅｅｄｆｏｒｗａｒｄ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １３ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ  ａｎｄ  Ｓｔａｔｉｓｔｉｃｓ、２０１０、ｐｐ．２４９−２５６
【非特許文献４】Ｘｉａ−Ｊｉａｏ  Ｍａｏ、Ｃｈｕｎｈｕａ  Ｓｈｅｎ、Ｙｕ−Ｂｉｎ  Ｙａｎｇ、「Ｉｍａｇｅ  ｒｅｓｔｏｒａｔｉｏｎ  ｕｓｉｎｇ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ａｕｔｏ−ｅｎｃｏｄｅｒｓ  ｗｉｔｈ  ｓｙｍｍｅｔｒｉｃ  ｓｋｉｐ  ｃｏｎｎｅｃｔｉｏｎｓ」、ａｒＸｉｖ：１６０６．０８９２１、２０１６
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１で開示されているＲｅｓＮｅｔでは、多層ネットワークの学習は可能であるが、多重解像度表現の情報を利用することはできない。また、非特許文献２で開示されているＨＥＤでは、多層ＣＮＮの中間層から多重解像度情報である特徴マップを抽出する。しかし、ＨＥＤは、多層ネットワークの学習を促進させる工夫を行っていないため、ネットワークが多層になった場合に学習することができない。
【０００５】
このように、従来のＣＮＮは、多重解像度表現の情報の利用が可能であるとともに多層ネットワークの学習が可能なネットワーク構造ではない。このため、従来のＣＮＮを用いて高精度な画像処理を行うことは困難である。
【０００６】
そこで本発明は、多重解像度表現の情報の利用が可能であるとともに多層ネットワークの学習が可能なネットワーク構造を用いて、高精度な画像処理が可能な画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面としての画像処理装置は、少なくとも２層の第１の畳み込みニューラルネットワークを用いて、入力画像を第１の特徴量の情報に変換するメイン部と、第２の畳み込みニューラルネットワークを用いて、前記入力画像を第２の特徴量の情報に変換する入力部と、第３の畳み込みニューラルネットワークを用いて、前記第１の特徴量の情報と前記第２の特徴量の情報との加算により生成された第３の特徴量の情報を出力画像に変換する出力部とを有する。
【０００８】
本発明の他の側面としての撮像装置は、入力画像を取得する撮像部と、前記画像処理装置とを有する。
【０００９】
本発明の他の側面としての画像処理方法は、少なくとも２層の第１の畳み込みニューラルネットワークを用いて、入力画像を第１の特徴量の情報に変換するステップと、第２の畳み込みニューラルネットワークを用いて、前記入力画像を第２の特徴量の情報に変換するステップと、第３の畳み込みニューラルネットワークを用いて、前記第１の特徴量の情報と前記第２の特徴量の情報との加算により生成された第３の特徴量の情報を出力画像に変換するステップとを有する。
【００１０】
本発明の他の側面としてのプログラムは、前記画像処理方法をコンピュータに実行させる。
【００１１】
本発明の他の側面としての記憶媒体は、前記プログラムを記憶している。
【００１２】
本発明の他の目的及び特徴は、以下の実施形態において説明される。
【発明の効果】
【００１３】
本発明によれば、多重解像度表現の情報の利用が可能であるとともに多層ネットワークの学習が可能なネットワーク構造を用いて、高精度な画像処理が可能な画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】各実施例における画像処理装置のブロック図である。
【図２】各実施例における画像処理装置の別の構成図である。
【図３】各実施例における画像処理装置を撮像装置として実現した構成図である。
【図４】各実施例における画像処理方法を示すフローチャートである。
【図５】実施例１におけるネットワーク構造を示す図である。
【図６】実施例１における画像処理結果の説明図である。
【図７】従来技術の画像処理結果の説明図である。
【図８】実施例１と従来技術との比較図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１６】
まず、本発明の背景であるＣＮＮについて説明する。ＣＮＮとは、学習（ｔｒａｉｎｉｎｇまたはｌｅａｒｎｉｎｇ）により生成したフィルタを画像に対して畳み込んだ（ｃｏｎｖｏｌｕｔｉｏｎ）後、非線形演算することを繰り返す、学習型の画像処理技術である。フィルタは、局所受容野（Ｌｏｃａｌ  Ｒｅｃｅｐｔｉｖｅ  Ｆｉｅｌｄ：ＬＰＦ）とも呼ばれる。画像に対してフィルタを畳み込んだ後、非線形演算して得られる画像は、特徴マップ（ｆｅａｔｕｒｅ  ｍａｐ）と呼ばれる。また、畳み込みの他に逆（転置）畳み込みという処理も後に出てくるが、これは畳み込みの一種であるため、その都度説明を行う。また、学習は入力画像と出力画像のペアからなる訓練画像（ｔｒａｉｎｉｎｇ  ｉｍａｇｅｓまたはｄａｔａ  ｓｅｔｓ）を用いて行われる。簡単には、入力画像から対応する出力画像へ高精度に変換可能なフィルタの値を、訓練画像から生成することが学習である。この詳細については後述する。
【００１７】
画像がＲＧＢカラーチャンネルを有する場合や、特徴マップが複数枚の画像から構成されている場合、畳み込みに用いるフィルタも、それに応じて複数のチャンネルを有する。すなわち、畳み込みフィルタは、縦横サイズと枚数の他に、チャンネル数を加えた、４次元配列で表現される。
【００１８】
画像（または特徴マップ）にフィルタを畳み込んだ後、非線形演算する処理は、層（ｌａｙｅｒ）という単位で表現される。例えば、ｍ層目の特徴マップやｎ層目のフィルタなどと呼ばれる。また、例えばフィルタの畳み込みと非線形演算を３回繰り返すようなＣＮＮは、３層のネットワーク構造を有するという。
この処理は、以下の式（１）のように定式化することができる。
【００１９】
【数１】
2019008383.tif 000003
【００２０】
式（１）において、Ｗｎはｎ層目のフィルタ、ｂｎはｎ層目のバイアス、ｆは非線形演算子、Ｘｎはｎ層目の特徴マップ、＊は畳み込み演算子である。なお、右肩の（ｌ）はｌ番目のフィルタまたは特徴マップであることを表している。フィルタおよびバイアスは、後述する学習により生成され、まとめてネットワークパラメータとも呼ばれる。非線形演算としては、例えばシグモイド関数（ｓｉｇｍｏｉｄ  ｆｕｎｃｔｉｏｎ）やＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ）が用いられる。
【００２１】
ＲｅＬＵは、以下の式（２）で与えられる。
【００２２】
【数２】
2019008383.tif 000004
【００２３】
すなわち、入力したベクトルＸの要素のうち負のものはゼロ、正のものはそのままとする非線形な処理である。なお、負値も出力したい用途によっては、ＲｅＬＵは向いていないこともある。その場合、ＬＲｅＬＵ（Ｌｅａｋｙ  ＲｅＬＵ）やＰＲｅＬＵ（Ｐａｒａｍｅｔｒｉｃ  ＲｅＬＵ）を用いると良いことが知られている。
【００２４】
ＬＲｅＬＵは、以下の式（３）で与えられる。
【００２５】
【数３】
2019008383.tif 000005
【００２６】
すなわち、入力したベクトルＸの要素のうち負のものは０．０１倍、正のものはそのままとする非線形な処理である。なお、ＰＲｅＬＵは入力したベクトルＸの要素のうち負のものに加える重みを可変（パラメトリック）としたものであり、ＬＲｅＬＵより高精度な学習が期待できるが、その分学習に時間と計算負荷がかかることが知られている。
【００２７】
次に、ＣＮＮの学習について説明する。ＣＮＮの学習は、入力訓練画像（劣化画像）と対応する出力訓練画像（鮮鋭な正解画像）の組からなる訓練画像に対して、一般に以下の式（４）で表される目的関数を最小化することで行われる。
【００２８】
【数４】
2019008383.tif 000006
【００２９】
ここで、Ｌは正解とその推定との誤差を測る損失関数（ｌｏｓｓ  ｆｕｎｃｔｉｏｎ）である。また、Ｙｉはｉ番目の出力訓練画像、Ｘｉはｉ番目の入力訓練画像である。また、ＦはＣＮＮの各層で行う演算（数式１参照）を、まとめて表した関数である。また、θはネットワークパラメータ（フィルタおよびバイアス）である。また、‖Ｚ‖２はＬ２ノルムであり、簡単にはベクトルＺの要素の２乗和の平方根である。
【００３０】
また、ｎは学習に用いる訓練画像の全枚数であるが、一般に訓練画像の全枚数は多い（〜数万枚）ため、確率的勾配降下法（Ｓｔｏｃｈａｓｔｉｃ  Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ：ＳＧＤ）では、訓練画像の一部をランダムに選び学習に用いている。これにより、多くの訓練画像を用いた学習における、計算負荷が低減できる。
【００３１】
また、目的関数の最小化（＝最適化）法として、モーメンタム（ｍｏｍｅｎｔｕｍ）法やＡｄａＧｒａｄ法、ＡｄａＤｅｌｔａ法、Ａｄａｍ法など、様々な方法が知られている。
【００３２】
Ａｄａｍ法は、以下の式（５）で与えられる。
【００３３】
【数５】
2019008383.tif 000007
【００３４】
式（５）において、θｉｔは反復ｔ回目におけるｉ番目のネットワークパラメータ、ｇはθｉｔに関する損失関数Ｌの勾配である。また、ｍ、ｖはモーメントベクトル、αは基本学習率（ｂａｓｅ  ｌｅａｒｎｉｎｇ  ｒａｔｅ）、β１、β２はハイパーパラメータ、εは小さい定数である。なお、学習における最適化法の選択指針は現状存在しないため、基本的に何を用いても良いが、方法ごとの収束性には違いがあるため、学習時間の違いが生じることが知られている。
【００３５】
次に、ＣＮＮの分類について説明する。ＣＮＮは、大きく多層ＣＮＮ（Ｍｕｌｔｉ−ｌａｙｅｒ  ＣＮＮ）と多重解像度ＣＮＮ（Ｍｕｌｔｉ−ｓｃａｌｅ  ＣＮＮ）の２つに分類できる。
【００３６】
多層ＣＮＮは、フィルタの畳み込みを何度も行うことで、処理の高精度化を図るＣＮＮであり、画像認識分野のＲｅｓＮｅｔや超解像分野におけるその応用ＲＥＤ−Ｎｅｔが有名である。ここで、ＲｅｓＮｅｔは畳み込み層をショートカットする経路を設けたネットワーク構造を特徴とし、これにより１５２層もの多層ネットワークを実現し、人間の認識率に迫る高精度な認識を実現している。詳細は非特許文献１に記載されている。なお、多層ＣＮＮにより処理が高精度化する理由は、簡単には非線形演算を何度も繰り返すことで、入出力間の非線形な関係を表現できるためである。
【００３７】
多重解像度ＣＮＮは、多重解像度表現した情報を利用して、処理の高精度化を図るＣＮＮである。多重解像度表現の方法としては、（１）多重解像度表現の画像を入力画像とする方法、（２）フィルタサイズを変えた複数のネットワークを用いる方法、（３）多層ＣＮＮの中間層から多重解像度情報である特徴マップを抽出する方法が代表的である。ここで、方法（１）、（２）は理解し易いが、方法（３）は理解し難いので簡単に説明する。直感的には、画像に対してフィルタの畳み込みを行い、得られる特徴マップは、元の画像より解像度が低下する（後述する式（６）参照）。よって、フィルタの畳み込みを何度も行い、中間層で得られる特徴マップは、元の画像を多重解像度表現した情報であるといえる。より詳細な説明は、非特許文献２に記載されている。なお、多重解像度ＣＮＮにより処理が高精度化する理由は、簡単には入力画像において、様々な範囲（解像度）の情報を処理に利用できるためである。
【００３８】
次に、図１を参照して、本実施形態における画像処理装置の構成例を説明する。図１は、画像処理装置１００のブロック図である。画像処理装置１００は、取得部１０１、メイン部１０２、入力部１０３、および、出力部１０４を備えて構成されている。
【００３９】
取得部１０１は、入力画像を取得する。取得部１０１は、デジタル画像データを取得可能に構成されていればよく、例えばデジタルカメラやデジタルスキャナでもよい。また入力画像は、一般に、劣化した劣化画像である。例えば、デジタルカメラであれば、結像光学系や光学ローパスフィルタに起因するぼけ、イメージセンサに起因するノイズ、デモザイキングのエラーなどが劣化要因として挙げられる。画像の劣化過程は、既知であることが好ましい。これは、前述したＣＮＮの学習において大量に必要となる訓練画像を、数値計算で生成できるためである。ただし、場合によっては訓練画像を準備できることもあるため、画像の劣化過程が既知であることは必須ではない。
【００４０】
画像データの形式は計算機に読み込み可能なデジタルデータであればよく、例えばＲＡＷ、ＢＭＰ（Ｂｉｔｍａｐ）、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）でもよい。入力画像は、カラー画像、モノクロ画像、動画像（複数枚の画像）のいずれでもよい。本実施形態では、簡単のため、入力画像および出力画像はそれぞれモノクロ画像であるとする。
【００４１】
メイン部１０２は、前述したＣＮＮであり、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やワークステーション、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、サーバで構成される。メイン部１０２は、ＣＮＮの演算を実現することが可能な計算機であればよい。またメイン部１０２は、少なくとも２層以上のネットワーク構造を有する。すなわちメイン部１０２は、取得部１０１により取得された入力画像に対して、２回以上かつ複数枚のフィルタを用いた畳み込み、それに続くバイアスの加算、および、非線形演算を行う。そしてメイン部１０２は、中間層において解像度の異なる特徴マップ（第１の特徴量の情報）を出力する。
【００４２】
中間層で得られる特徴マップの解像度は、畳み込みに用いるフィルタの縦横サイズから、以下の式（６）で与えられる。
【００４３】
【数６】
2019008383.tif 000008
【００４４】
式（６）において、Ｈ、Ｗはそれぞれ入力画像（または畳み込まれる特徴マップ）の縦横サイズ、ＹＨ、ＹＷはそれぞれ出力画像（または畳み込みで得られる特徴マップ）の縦横サイズ、ＦＨ、ＦＷはそれぞれ畳み込みに用いるフィルタの縦横サイズである。これより、画像に対してフィルタを畳み込み、得られる特徴マップは、元の画像よりサイズが小さい（すなわち、解像度が低下する）ことが分かる。また、例えば縦横サイズ３×３のフィルタを２回畳み込み得られる特徴マップと、縦横サイズ５×５のフィルタを１回畳み込み得られる特徴マップの縦横サイズ（解像度）は、互いに等しい。
【００４５】
入力画像はモノクロ画像（チャンネル数が１）を仮定しているため、１層目のフィルタのチャンネル数は１である。一方、１層目以降の中間層で得られる特徴マップの枚数（チャンネル数）は、前の層で畳み込みに用いたフィルタの枚数である。このため、中間層のフィルタのチャンネル数は、前の層で畳み込みに用いたフィルタの枚数に応じて決定される。
【００４６】
畳み込みにはいくつかのテクニックが知られている。例えば、畳み込みで得られる特徴マップをダウンサンプリングするストライド（ｓｔｒｉｄｅ）や、特徴マップの周囲をゼロパディングした後に畳み込みを行うパディング（ｐａｄｄｉｎｇ）などがある。これらのテクニックを用いて畳み込みを行っても良いが、その場合に得られる特徴マップの解像度は、式（６）で与えられるものではない。これは、式（６）で与えられる解像度が、ストライドなし、パディングなしの畳み込みを前提とした定義であるためである。したがって、前述した畳み込みのテクニックを用いた場合、それに応じた解像度の定義を用いて、本実施形態の画像処理を行えばよい。
【００４７】
入力部１０３は、前述したＣＮＮであり、例えばＰＣやワークステーション、ＦＰＧＡ、サーバで構成されるが、これらに限定されるものではなく、ＣＮＮの演算を実現することができる計算機であればよい。入力部１０３は、複数枚かつ複数種類のサイズのフィルタを有する、複数のＣＮＮからなる。すなわち入力部１０３は、取得部１０１で取得された入力画像に対して、複数種類のサイズのフィルタを畳み込むことで、解像度の異なる特徴マップ（第２の特徴量の情報）を出力する。
【００４８】
式（６）より、複数種類のサイズのフィルタを使わなくても、解像度の異なる特徴マップを生成することはできる。例えば、縦横サイズ３×３のフィルタを畳み込む回数を変える（多層ＣＮＮの層数を変える）ことで、解像度の異なる特徴マップを生成することは可能である。しかし、入力部１０３の機能は、メイン部１０２の中間層へ、入力画像の情報を送り込み、学習を促進させることである。このため、学習が難しい多層ＣＮＮを入力部１０３としては用いないことが好ましい。
【００４９】
メイン部１０２で得られる解像度の異なる特徴マップ（第１の特徴量の情報）と、入力部１０３で得られる解像度の異なる特徴マップ（第２の特徴量の情報）に関しては、これらの特徴マップの解像度が互いに等しい状態で加算する。この加算は、より具体的には特徴マップの要素ごとの和である。また、加算の結果得られる新たな特徴マップ（第３の特徴量の情報）は、非線形演算の後、メイン部１０２の次の畳み込み層、または後述する出力部１０４へ送られる。特徴マップの加算（第１の特徴量の情報と第２の特徴量の情報との加算）は、メイン部１０２、入力部１０３、または、出力部１０４のいずれで行ってもよい。
【００５０】
入力部１０３におけるフィルタの縦横サイズおよび枚数は、メイン部１０２で得られる解像度の異なる特徴マップに応じて決定される。これは、メイン部１０２で得られる特徴マップと解像度の等しい、入力部１０３で得られる特徴マップと足し合わせるためである。特徴マップの解像度と枚数に関しては、式（６）で表される。入力画像はモノクロ画像（チャンネル数が１）を仮定しているため、入力部１０３におけるフィルタのチャンネル数は１である。しかし、入力画像がカラー画像や動画像（複数枚の画像）の場合、それに応じてチャンネル数を決定すればよい。
【００５１】
出力部１０４は、前述したＣＮＮであり、例えばＰＣやワークステーション、ＦＰＧＡ、サーバで構成されるが、これらに限定されるものではなく、ＣＮＮの演算を実現することが可能な計算機であればよい。出力部１０４は、メイン部１０２（または入力部１０３）で得られる多重解像度の特徴マップ（第３の特徴量の情報）に対して、複数枚かつ複数種類のサイズのフィルタを用いた逆（転置）畳み込み、それに続くバイアスの加算、および、非線形演算を行う。そして出力部１０４は、得られる特徴マップに対して重み付けして、特徴マップを出力画像へ変換する。
【００５２】
また、逆（転置）畳み込みはｄｅｃｏｎｖｏｌｕｔｉｏｎまたはｔｒａｎｓｐｏｓｅｄ  ｃｏｎｖｏｌｕｔｉｏｎと呼ばれ、直感的には畳み込みの逆操作である。以下、逆（転置）畳み込みについて簡単に説明する。畳み込みと逆（転置）畳み込みは、以下の式（７）で与えられる。
【００５３】
【数７】
2019008383.tif 000009
【００５４】
式（７）において、Ｕ、Ｖはそれぞれ、畳み込みで得られる特徴マップと畳み込む特徴マップ、Ｍは畳み込みを表した行列である。なお、特徴マップは適当な変換（辞書式配列など）でベクトルとして表現している。また、式（６）より、ベクトルＵの長さは、ベクトルＶの長さより短い（すなわち、解像度が低下している）。このため、畳み込み行列Ｍは横長の行列である。
【００５５】
同様に、Ｙ、Ｘはそれぞれ、逆（転置）畳み込みで得られる特徴マップと逆（転置）畳み込みされる特徴マップのベクトル表記である。式（７）から明らかなように、ベクトルＹとベクトルＸは、畳み込み行列Ｍの転置行列ＭＴで関係付けられる。転置行列ＭＴは縦長の行列である。このため、ベクトルＹの長さは、ベクトルＸの長さより長く（すなわち、解像度が高く）なり、逆（転置）畳み込みは畳み込みの逆操作と見ることができる。
【００５６】
逆（転置）畳み込みで得られる特徴マップの解像度は、逆（転置）畳み込みに用いるフィルタサイズから、以下の式（８）で与えられる。
【００５７】
【数８】
2019008383.tif 000010
【００５８】
式（８）において、Ｈ、Ｗはそれぞれ入力画像（または逆畳み込みされる特徴マップ）の縦横サイズ、ＹＨ、ＹＷはそれぞれ出力画像（または逆畳み込みで得られる特徴マップ）の縦横サイズ、ＦＨ、ＦＷは逆（転置）畳み込みに用いるフィルタの縦横サイズである。これより、特徴マップに対してフィルタを逆（転置）畳み込みして得られる画像は、元の特徴マップよりサイズが大きい（解像度が高くなる）ことが分かる。また、逆（転置）畳み込みで得られる特徴マップの枚数は、畳み込みと同様に、逆（転置）畳み込みに用いるフィルタの枚数である
本実施形態において、逆（転置）畳み込みは、メイン部１０２の中間層で得られる特徴マップに対して行われる。よって、逆（転置）畳み込みに用いるフィルタのサイズおよびチャンネル数は、メイン部１０２の中間層で得られる特徴マップの解像度と枚数に応じて決定すればよい。逆（転置）畳み込みに用いるフィルタの枚数は任意である。フィルタの枚数が多いほど画像処理の高精度化が期待できる。ただし、その分パラメータ数が多くなるため、学習に時間がかかることが予想される。
【００５９】
出力部１０４における非線形演算には、例えば、特徴マップの負値も出力するＬＲｅＬＵやＰＲｅＬＵが用いられる。これは、ある解像度の特徴マップに対して逆畳み込みを行い、その結果得られる特徴マップが、負値しか含まなかった場合、非線形演算にＲｅＬＵを使うと、その解像度の情報は画像処理に使われないこととなるためである。よって、出力部１０４における非線形演算にＲｅＬＵを用いてもよいが、その場合はＬＲｅＬＵやＰＲｅＬＵを用いる場合に比べて画像処理精度が低下する。
【００６０】
出力部１０４において得られる特徴マップに対する重み付けは、以下の式（９）で与えられる。
【００６１】
【数９】
2019008383.tif 000011
【００６２】
式（９）において、Ｙｉはｉ番目の特徴マップ、αｉはＹｉに対する重み、ｂは定数、Ｚは出力画像、Ｍは特徴マップの全枚数である。この操作は、縦横サイズ１×１、チャンネル数Ｍのフィルタの畳み込みと見ることもできる。よって、重み付けも畳み込み層とし、ネットワーク学習と同時に、重み付けを最適化することも可能である。なお、出力画像はモノクロ画像（チャンネル数が１）を仮定しているため、重み付けを畳み込みと解釈した場合のフィルタ枚数は１である。しかし、出力画像がカラー画像や動画像（複数枚の画像）の場合、それに応じてフィルタ枚数を決定すればよい。また、得られた出力画像に対して、画素値の規格化（画素値が［０  １］の範囲になるようにするなど）を行ってもよい。
【００６３】
本実施形態では、メイン部１０２の中間層へ、入力部１０３により入力画像の情報を送り込み、多層ＣＮＮの学習を促進させる。加えて、メイン部１０２の中間層からの多重解像度の特徴マップを、出力部１０４により解像度を元に戻し、重みを付けて出力画像とする。換言すると、本実施形態では、多重解像度表現の情報を利用する。このため本実施形態によれば、多重解像度表現の情報の利用が可能であって、かつ多層ネットワークの学習が可能なネットワーク構造を提供することができる。
【００６４】
また、学習の際には、出力訓練画像とその推定との誤差が、出力部１０４を介してメイン部１０２の中間層へ送り込まれる。よって、出力部１０４は、多重解像度表現する役割に加え、多層ＣＮＮの学習を促進させる役割も担っている。
【００６５】
メイン部１０２、入力部１０３、および、出力部１０４のネットワークパラメータ（フィルタおよびバイアス）としては、訓練画像から前述した学習により、予め生成しておいたものが用いられる。また、学習の際には、メイン部１０２、入力部１０３、および、出力部１０４を連結し、１つのＣＮＮとして学習を行う。すなわち、入力訓練画像をＣＮＮ（のメイン部１０２および入力部１０３）へ入力し、ＣＮＮ（の出力部１０４）から出力される画像と、出力訓練画像との誤差が小さくなるように学習を行う。また、ネットワークパラメータの初期値はＸａｖｉｅｒ（非特許文献３参照）や正規乱数などの乱数でも良く、または、予め学習で生成した値を用いても良い。学習に用いる訓練画像は、前述したように取得部１０１での劣化過程を考慮して、数値計算で生成しても良く、または、別の方法で準備しても良い。具体的な訓練画像の生成方法や準備方法は、以下の実施例で説明する。
【００６６】
出力部１０４で得られる画像処理結果である出力画像は、画像処理装置１００内の不図示の記憶部に記憶しても良く、画像処理装置１００の外部の不図示の表示部に表示しても良い。または、出力画像を、不図示のＣＤ−ＲＯＭドライブやＵＳＢインターフェースなどインターフェース機器を介して、画像処理装置１００の外部の不図示の記憶媒体に記憶しても良い。なお、取得部１０１、メイン部１０２、入力部１０３、および、出力部１０４の間で情報（データ）をやり取りするための配線や無線に関しては、公知の構成を利用することができるため、それらの説明は省略する。
【００６７】
メイン部１０２、入力部１０３、および、出力部１０４の機能を記述したプログラムを計算機に実行させることで、画像処理装置１００の機能を、計算機上で実現しても良い。同様に、メイン部１０２、入力部１０３、出力部１０４の機能を記述したプログラムをＶＬＳＩへ電子回路として実装し、画像処理装置１００の機能を実現しても良い。
【００６８】
図２は、別形態の画像処理装置１００ａの構成図である。図２において、取得部１０１はデジタルカメラ（撮像装置）、メイン部１０２、入力部１０３、および、出力部１０４はＰＣであり、画像処理結果である出力画像はディスプレイに表示する例を示している。
【００６９】
図３は、更に別形態の画像処理装置１００ｂの構成図であり、画像処理装置１００をデジタルカメラ（撮像装置）として実現した構成図である。図３の画像処理装置１００ｂは、レンズ、イメージセンサ、画像処理エンジン、および、モニタを備えている。図３において、取得部１０１は、レンズ（撮像光学系）およびイメージセンサ（撮像素子）を含む撮像部に相当する。メイン部１０２、入力部１０３、および、出力部１０４は、デジタルカメラの画像処理エンジンに相当する。
【００７０】
図４は、本実施形態における画像処理方法を示すフローチャートである。図４の各ステップは、例えば画像処理装置１００の記憶部に記憶されたプログラムに従って、取得部１０１、メイン部１０２、入力部１０３、または、出力部１０４により実行される。
【００７１】
まずステップＳ４０１において、取得部１０１は、入力画像を取得する。入力画像は、例えば、撮像光学系により劣化した劣化画像である。続いてステップＳ４０２において、メイン部１０２は、少なくとも２層（複数層）の第１の畳み込みニューラルネットワーク（第１のＣＮＮ）を用いて、入力画像を第１の特徴量の情報に変換する。例えばメイン部１０２は、入力画像に対して、複数枚のフィルタを畳み込んだ後、非線形演算する処理を繰り返すことにより、第１の特徴量の情報として複数解像度の特徴マップを生成する。
【００７２】
続いてステップＳ４０３において、入力部１０３は、第２の畳み込みニューラルネットワーク（第２のＣＮＮ）を用いて、入力画像を第２の特徴量の情報に変換する。例えば入力部１０３は、入力画像に対して、複数枚かつ複数種類のサイズのフィルタを畳み込むことにより、第２の特徴量の情報として複数解像度の特徴マップを生成する。
【００７３】
続いてステップＳ４０４において、メイン部１０２、入力部１０３、または、出力部１０４の少なくとも一つは、第１の特徴量の情報と第２の特徴量の情報とを加算して第３の特徴量の情報を生成する。ここで、第１の特徴量の情報と第２の特徴量の情報との加算は、例えば、第１の特徴量の情報と、第１の特徴量の情報と解像度が等しい第２の特徴量の情報と、に関する要素ごとの和を算出することで行われる。
【００７４】
続いてステップＳ４０５において、出力部１０４は、第３の畳み込みニューラルネットワーク（第３のＣＮＮ）を用いて、第１の特徴量の情報と第２の特徴量の情報とを加算して生成された第３の特徴量の情報を出力画像に変換する。例えば出力部１０４は、第３の特徴量の情報に対して、複数枚かつ複数種類のサイズのフィルタの逆畳み込みを行った後、非線形演算を行うことで得られる特徴マップに対して重み付けを行うことにより、第３の特徴量の情報を出力画像へ変換する。非線形演算としては、例えば、ＬＲｅＬＵまたはＰＲｅＬＵが用いられる。出力画像は、入力画像を鮮鋭化した鮮鋭画像である。なお本実施形態において、好ましくは、第１のＣＮＮで用いられる第１のフィルタおよび第１のバイアスは、第２のＣＮＮで用いられる第２のフィルタおよび第２のバイアスとそれぞれ互いに異なる。
【００７５】
以下、本発明の各効果を示す実施例を説明する。
【実施例１】
【００７６】
まず、本発明の実施例１について説明する。本実施例では、画像処理装置１００の機能を記述したプログラムを用いて、超解像（ｓｕｐｅｒ  ｒｅｓｏｌｕｔｉｏｎ）した数値計算の結果を示す。ここで、超解像とは低解像度のイメージセンサを備えた撮像装置で取得される低解像度画像から、高解像度画像を生成する画像処理技術である。
【００７７】
図５を参照して、本実施例におけるＣＮＮのネットワーク構造について説明する。図５は、ＣＮＮのネットワーク構造を示す図である。ＣＮＮは、図５において、ｃｏｎｖは畳み込み層を、ｄｅｃｏｎｖは逆（転置）畳み込み層を表している。また、各層の上の数字列はフィルタの縦横サイズ、チャンネル数、および枚数を表している。例えば、図５中「３×３×１×８」は縦横サイズ３×３、チャンネル数１、枚数８枚のフィルタで畳み込み、または逆（転置）畳み込みを行うことを表している。また、図５中の
2019008383.tif 000012
【００７８】
印は、特徴マップの要素ごとの和を表している。また、図５中の「☆」印については後述する。なお図５において、取得部１０１は省略して入力（低解像度）画像で代えている。
【００７９】
メイン部１０２は、６回のフィルタの畳み込み、それに続くバイアスの加算、および、非線形演算を行う多層ＣＮＮからなる。なお、フィルタの縦横サイズはいずれも３×３であるが、これは簡単のためであり、本実施例はこれに限定されるものではない。非線形演算はＲｅＬＵを用いているが、簡単のためであり、本実施例はこれに限定されるものではない。メイン部１０２は６層の多層ＣＮＮであるが、本実施例はこれに限定されるものではなく、７層や８層などでも良い。
【００８０】
入力部１０３は、５つの互いに異なるフィルタサイズを有するＣＮＮからなる。なお、フィルタサイズは図５に示される通りである。ここで、ネットワークの「☆」印に着目すると、メイン部１０２からは入力画像に対して、縦横サイズ３×３のフィルタが２回畳み込まれて得られる特徴マップが送られてくる。一方、入力部１０３からは入力画像に対して、縦横サイズ５×５のフィルタが１回畳み込まれて得られる特徴マップが送られてくる。これらの解像度の等しい特徴マップ（式（６）参照）に対して、前述した足し合わせの後、非線形演算を行い、メイン部１０２の次の畳み込み層と出力部１０４へ送られる。なお、入力部１０３は５つの互い異なるフィルタサイズを有するＣＮＮからなるが、本実施例はこれに限定されるものではない。例えば、メイン部１０２が７層になれば、入力部１０３は６つのＣＮＮで構成されても良い。また、入力画像にある解像度の情報が存在しない、または、計算機のメモリを削減したい場合、入力部１０３のＣＮＮを削減してもよい。
【００８１】
出力部１０４は、６つの互いに異なるフィルタサイズを有するＣＮＮからなる。なお、フィルタサイズは図５に示した通りである。また、非線形演算にはＬＲｅＬＵが用いられている。なお、出力部１０４は６つの互い異なるフィルタサイズを有するＣＮＮからなるが、本実施例はこれに限定されるものではない。例えば、メイン部１０２が７層であれば、入力部１０３は７つのＣＮＮで構成されても良い。また、入力部１０３と同様に、入力画像にある解像度の情報が存在しない、または、計算機のメモリを削減したい場合、出力部１０４のＣＮＮを削減することもできる。
【００８２】
訓練画像としては、高解像度画像（出力訓練画像）に対して適当なぼけを加えたのち、得られた画像の２×２画素を平均化することで、１／２にダウンサンプリングして生成した低解像度画像（入力訓練画像）を用いている。より正確には、この低解像度画像をバイキュービック（Ｂｉｃｕｂｉｃ）補間により２倍アップサンプリングした画像を、入力訓練画像として用いている。これは、画像処理精度向上のための処理ではなく、単に入出力画像の画素数を合わせるためである。また、訓練画像はモノクロ画像であり、画素値は［０  １］の範囲になるように規格化している。これは、以下の全ての画像において同様である。
【００８３】
ネットワークパラメータ（フィルタおよびバイアス）の初期値は、全ての層でＸａｖｉｅｒを用いている。なお、学習で得られるネットワークパラメータのうち、一部を用いて画像処理を行っても良い。これにより、画像処理精度は低下するが、畳み込みの回数が減ることで、処理の高速化が期待できる。例えば、学習で生成した入力部１０３の５つのＣＮＮのうち、画像処理ではそのうち３つを用いて処理を行っても良い。また、以下では学習で得られるネットワークパラメータを省略せず、全てを用いて画像処理を行っている。
【００８４】
学習は、最適化法としてＡｄａｍ法を用いたＳＧＤである。なお、Ａｄａｍ法のパラメータはα＝１０−４、β１＝０．９、β２＝０．９９９、ε＝１０−８である。また、ＳＧＤは訓練画像全枚数７６８００枚から、ランダムに１２８枚選択して用いている。学習の反復回数は、１８×１０４回（３００エポック）である。
【００８５】
図６は、本実施例における画像処理結果の説明図である。図６（ａ）は低解像度画像のバイキュービック補間画像、図６（ｂ）は本実施例による高解像度画像、図６（ｃ）は正解画像をそれぞれ示している。なお、各図の下段には分かり易さのため、各図の一部を拡大した図が示してある。これより、本実施例によれば、補間画像に比べて正解画像に近い鮮鋭な（ぼけのない）画像が得られることが定性的に分かる。
【００８６】
次に、本実施例の効果を２乗平均平方根誤差（Ｒｏｏｔ  Ｍｅａｎ  Ｓｑｕａｒｅ  Ｅｒｒｏｒ：ＲＭＳＥ）で定量的に評価した。なお、ＲＭＳＥは以下の式（１０）で与えられる。
【００８７】
【数１０】
2019008383.tif 000013
【００８８】
式（１０）において、Ｐ、Ｑは任意のＭ×１次元ベクトル、ｐｉ、ｑｉは各々Ｐ、Ｑのｉ番目の要素、である。なお、ＲＭＳＥがゼロに近いほど、Ｐ、Ｑが類似していることを意味する。すなわち、回復画像と正解画像とのＲＭＳＥがゼロに近いほど、高精度に回復できていると言える。
【００８９】
表１に、低解像画像のバイキュービック補間画像と正解画像のＲＭＳＥ、本発明による高解像度画像と正解画像のＲＭＳＥを示す。これより、前者より後者の方がゼロに近いことから、超解像できていることが定量的に分かる。
【００９０】
【表１】
2019008383.tif 000014
【００９１】
次に、本実施例に関して、従来技術との比較を行う。なお、従来技術として非特許文献４で開示されている、多層ＣＮＮに基づく超解像手法ＲＥＤ−Ｎｅｔ（Ｒｅｓｉｄｕａｌ  Ｅｎｃｏｄｅｒ−Ｄｅｃｏｄｅｒ  Ｎｅｔｗｏｒｋｓ）を用いた。また、ＲＥＤ−Ｎｅｔは５層の畳み込み層と、それと対称に配置した５層の逆（転置）畳み込み層との間を、ショートカット経路で結んだ、全１０層のネットワーク構造である。学習は、本実施例と同様に、最適化法としてＡｄａｍ法を用いたＳＧＤである。また、Ａｄａｍ法とＳＧＤに用いたパラメータおよび訓練画像も本実施例と同様である。より詳細なネットワーク構造や学習方法に関しては、非特許文献４に記載されている。
【００９２】
図７は、従来技術による高解像度画像である。これより、補間画像と比べると正解画像に近い鮮鋭な（ぼけのない）画像が得られることが分かる。ただし、拡大図を見ると従来技術による高解像度画像には、エッジ付近に偽エッジ（リンギング）が生じていることが分かる。一方、本実施例による画像処理後の画像には、偽エッジは生じていない。
【００９３】
表２に、従来技術による高解像度画像と正解画像とのＲＭＳＥを示す。
【００９４】
【表２】
2019008383.tif 000015
【００９５】
これより、本実施例による高解像度画像と正解画像とのＲＭＳＥの方が、従来技術による高解像度画像と正解画像とのＲＭＳＥより、ゼロに近いことから、本実施例の方が高精度に超解像できていることが定量的に分かる。
【００９６】
分かり易さのため、本実施例と従来技術、正解画像の拡大図の一断面図を図８に示す。図８において、実線（―）が正解画像、破線（−−）が従来技術、点線（・・）が本発明である。また、図８中の横軸は断面の画素位置、縦軸は画素値をそれぞれ示している。画素値は［０  １］の範囲になるように規格化し示している。これより、本実施例によれば、（１）グラフ左の平坦部に従来技術では見られるアーティファクトが抑制されていること、および、（２）画素値のピークの裾野に従来技術では見られるアーティファクトが抑制されていることが分かる。
【実施例２】
【００９７】
次に、本発明の実施例２について説明する。本実施例では、画像処理装置１００を用いた、ぼけ除去（ｄｅｂｌｕｒ）を説明する。ぼけ除去とは、ぼけ画像から、主に画像処理装置１００の取得部１０１に起因するぼけ（結像光学系の回折限界が代表的）を除去する画像処理技術である。なお本実施例は、訓練画像の生成方法の点で実施例１と異なるため、訓練画像の生成方法についてのみ説明する。
【００９８】
訓練画像としては、鮮鋭画像（出力訓練画像）に対してぼけを加えて生成したぼけ画像（入力訓練画像）が用いられる。ここで、ぼけは取得部１０１の劣化要因により生じる。具体的には、取得部１０１がデジタルカメラの場合、結像光学系の収差、光学ローパスフィルタ、イメージセンサの画素開口などにより生じる。これらの劣化過程を全て既知であるとして、数値計算により訓練画像を生成する。または、既知の対象をデジタルカメラで取得することにより、訓練画像を準備する。この訓練画像を用いてネットワークパラメータを学習した後、得られたパラメータを用いて、実施例１と同様に入力画像（ぼけ画像）を画像処理装置１００で処理することにより、ぼけを除去した鮮鋭な画像が得られる。
【実施例３】
【００９９】
次に、本発明の実施例３について説明する。本実施例では、画像処理装置１００を用いた画像認識（ｉｍａｇｅ  ｒｅｃｏｇｎｉｔｉｏｎ）を説明する。画像認識とは、入力画像を予め定めたクラス（集合）に分類する画像処理技術である。例えば、アルファベット文字画像を２６クラスに分類する画像処理技術は、光学文字認識（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ：ＯＣＲ）として知られている。なお、画像認識には様々な定義や種類があるが、本実施例では簡単のため前述の定義とする。なお本実施例では、実施例１または実施例２と異なる点のみを説明する。
【０１００】
画像認識において、出力部１０４の出力は画像ではなく、一般に認識結果であるクラスを表した数字である。よって、出力部１０４には数字を出力することに特化したネットワーク（全結合のニューラルネットワーク）を追加する。学習に用いる訓練画像は、入力訓練画像とそれが属するクラスからなるデータセットである。この訓練画像を数値計算で生成することは難しいため、人の手を使って準備するのが一般的である。すなわち、ウエブ上で多くの画像を収集し、それらを適当なサイズ・解像度にトリミング・ダウンサンプリングし、人の目でクラス分類することで、訓練画像を準備する。最後に、この訓練画像を用いてネットワークパラメータを学習した後、得られたパラメータを用いて、実施例１と同様に入力画像を画像処理装置１００で処理することにより、入力画像を認識することができる。
【０１０１】
なお、全結合のニューラルネットワークの学習方法は、ＣＮＮの学習方法と同じである。これは、ＣＮＮは突き詰めると全結合のニューラルネットワークの一種だからであるが、ここでは詳細な説明は割愛する。
【０１０２】
また、全結合のニューラルネットワークの代わりに、適当な分類器（ｃｌａｓｓｉｆｅｒ）を用いても良い。例えば、サポートベクターマシン（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅｓ；ＳＶＭｓ）や、ランダム決定木（Ｒａｎｄａｍ  Ｆｏｒｅｓｔ；ＲＦ）などを用いても良い。
【０１０３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１０４】
各実施例によれば、多重解像度表現の情報の利用が可能であるとともに多層ネットワークの学習が可能なネットワーク構造を用いて、高精度な画像処理が可能な画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体を提供することができる。
【０１０５】
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【０１０６】
１００  画像処理装置
１０２  メイン部
１０３  入力部
１０４  出力部
【図１】
2019008383.tif 000016
【図２】
2019008383.tif 000017
【図３】
2019008383.tif 000018
【図４】
2019008383.tif 000019
【図５】
2019008383.tif 000020
【図６】
2019008383.tif 000021
【図７】
2019008383.tif 000022
【図８】
2019008383.tif 000023