(57)【要約】【課題】ＣＮＮを用いて小さい計算負荷で高画質な画像を得ることが可能な画像処理装置を提供する。【解決手段】畳み込みニューラルネットワーク（ＣＮＮ）を用いて画像処理を行う画像処理装置（１００ａ）であって、入力画像に対して画像補間を行い、第１のダウンサンプリング画像を生成する第１の画像生成部（１０１）と、入力画像から少なくとも２層以上のダウンサンプリングＣＮＮを用いて第２のダウンサンプリング画像を生成する第２の画像生成部（１０２）と、第１のダウンサンプリング画像と第２のダウンサンプリング画像とを画素ごとに加算して第３のダウンサンプリング画像を生成する第３の画像生成部（１０３）とを有する。【選択図】図１
2020064557.tif 000002
【特許請求の範囲】
【請求項１】
畳み込みニューラルネットワーク（ＣＮＮ）を用いて画像処理を行う画像処理装置であって、
入力画像に対して画像補間を行い、第１のダウンサンプリング画像を生成する第１の画像生成部と、
前記入力画像から少なくとも２層以上のダウンサンプリングＣＮＮを用いて第２のダウンサンプリング画像を生成する第２の画像生成部と、
前記第１のダウンサンプリング画像と前記第２のダウンサンプリング画像とを画素ごとに加算して第３のダウンサンプリング画像を生成する第３の画像生成部と、を有することを特徴とする画像処理装置。
【請求項２】
前記第３のダウンサンプリング画像を第２の画像処理装置へ送信する送信部を更に有し、
前記第２の画像処理装置は、前記第３のダウンサンプリング画像から、少なくとも２層以上のアップサンプリングＣＮＮを用いて出力画像を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１のダウンサンプリング画像は、第１の周波数帯域を含む画像であり、
前記第２のダウンサンプリング画像は、前記第１の周波数帯域よりも高い第２の周波数帯域を含む画像であることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記画像補間は、Ｂｉｃｕｂｉｃ、Ｂｉｌｉｎｅａｒ、または、最近傍補間であることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記第１の画像生成部は、前記入力画像にぼけを加えて前記画像補間を行うことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記ダウンサンプリングＣＮＮは、ストライドが２以上の畳み込み層を、１層以上有することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記ダウンサンプリングＣＮＮは、ストライドが２以上の畳み込み層を、第１層に有することを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記第１のダウンサンプリング画像、前記第２のダウンサンプリング画像、および、前記第３のダウンサンプリング画像は、互いにサイズが等しく、前記入力画像よりもサイズが小さいことを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
請求項１乃至８のいずれか１項に記載の画像処理装置と、
前記第３のダウンサンプリング画像から、少なくとも２層以上のアップサンプリングＣＮＮを用いて出力画像を生成する第４の画像生成部と、を有することを特徴とする画像処理システム。
【請求項１０】
前記第３のダウンサンプリング画像を送信する送信部と、
前記送信部から送信された前記第３のダウンサンプリング画像を受信する受信部と、を有することを特徴とする請求項９に記載の画像処理システム。
【請求項１１】
前記画像処理システムは、第１の画像処理装置と、第２の画像処理装置とを有し、
前記第１の画像処理装置は、前記第１の画像生成部、前記第２の画像生成部、前記第３の画像生成部、および、前記送信部を有し、
前記第２の画像処理装置は、前記受信部および前記第４の画像生成部を有することを特徴とする請求項１０に記載の画像処理システム。
【請求項１２】
前記ダウンサンプリングＣＮＮと前記アップサンプリングＣＮＮは、異なるネットワークパラメータおよび異なる層数を有するＣＮＮであることを特徴とする請求項９乃至１１のいずれか１項に記載の画像処理システム。
【請求項１３】
前記アップサンプリングＣＮＮは、ストライドが２以上の逆畳み込み層を、１層以上有することを特徴とする請求項９乃至１２のいずれか１項に記載の画像処理システム。
【請求項１４】
前記アップサンプリングＣＮＮは、ストライドが２以上の逆畳み込み層を、最終層に有することを特徴とする請求項９乃至１３のいずれか１項に記載の画像処理システム。
【請求項１５】
前記第１のダウンサンプリング画像、前記第２のダウンサンプリング画像、および、前記第３のダウンサンプリング画像は、互いにサイズが等しく、前記入力画像および前記出力画像よりもサイズが小さいことを特徴とする請求項９乃至１４のいずれか１項に記載の画像処理システム。
【請求項１６】
撮像素子と、
請求項１乃至８のいずれか１項に記載の画像処理装置と、を有することを特徴とする撮像装置。
【請求項１７】
畳み込みニューラルネットワーク（ＣＮＮ）を用いて画像処理を行う画像処理方法であって、
入力画像に対して画像補間を行い、第１のダウンサンプリング画像を生成する第１ステップと、
前記入力画像から少なくとも２層以上のダウンサンプリングＣＮＮを用いて第２のダウンサンプリング画像を生成する第２ステップと、
前記第１のダウンサンプリング画像と前記第２のダウンサンプリング画像とを画素ごとに加算して第３のダウンサンプリング画像を生成する第３ステップと、を有することを特徴とする画像処理方法。
【請求項１８】
前記第３のダウンサンプリング画像から、少なくとも２層以上のアップサンプリングＣＮＮを用いて出力画像を生成する第４ステップを更に有することを特徴とする請求項１７に記載の画像処理方法。
【請求項１９】
前記第１ステップ、前記第２ステップ、および前記第３ステップは第１の画像処理装置で行われ、前記第４ステップは第２の画像処理装置で行われることを特徴とする請求項１８に記載の画像処理方法。
【請求項２０】
請求項１７に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項２１】
請求項２０に記載のプログラムを記憶していることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、畳み込みニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＣＮＮ）を用いて画像データを圧縮する画像処理装置に関する。
【背景技術】
【０００２】
従来、ＣＮＮを用いて画像データを圧縮する方法が知られている。非特許文献１には、入力画像から７層の多層ＣＮＮを用いて圧縮データへ変換し、その圧縮データから７層の多層ＣＮＮを用いて、元の入力画像との誤差が小さい出力画像へ変換する画像データ圧縮方法が開示されている。ここで、入力画像から圧縮データへの変換は、符号化（ｅｎｃｏｄｉｎｇ）、圧縮データから出力画像への変換は復号化（ｄｅｃｏｄｉｎｇ）とも呼ばれる。なお、ＣＮＮを用いた画像データ圧縮では、ノイズ除去など他の多くの画像処理とは異なり、学習に用いる入出力訓練画像は同じ画像（入力画像＝出力画像）である。非特許文献２には、入力画像から４層の多層ＣＮＮを再帰的に用いて圧縮データへ変換し、その圧縮データから６層の多層ＣＮＮを用いて、元の入力画像との誤差が小さい出力画像へ変換する画像データ圧縮方法が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｌｕｃａｓ  Ｔｈｅｉｓ、Ｗｅｎｚｈｅ  ｓｈｉ、Ａｎｄｒｅｗ  Ｃｕｎｎｉｎｇｈａｍ、Ｆｅｒｅｎｃ  Ｈｕｓｚａｉｒ、「Ｌｏｓｓｙ  Ｉｍａｇｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  ｗｉｔｈ  Ｃｏｍｐｒｅｓｓｉｖｅ  Ａｕｔｏｅｎｃｏｄｅｒｓ」、ａｒＸｉｖ：１７０３．００３９５、２０１７年
【非特許文献２】Ｇｅｏｒｇｅ  Ｔｏｄｅｒｉｃｉ、Ｄａｍｉｅｎ  Ｖｉｎｃｅｎｔ、Ｎｉｃｋ  Ｊｏｈｎｓｔｏｎ、Ｓｕｎｇ  Ｊｉｎ  Ｈｗａｎｇ、Ｄａｖｉｄ  Ｍｉｎｎｅｎ、Ｊｏｅｌ  Ｓｈｏｒ、Ｍｉｃｈｅｌｅ  Ｃｏｖｅｌｌ、「Ｆｕｌｌ  Ｒｅｓｏｌｕｔｉｏｎ  Ｉｍａｇｅ  Ｃｏｍｐｒｅｓｉｏｎ  Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ」、ａｒＸｉｖ：１６０８．０５１４８、２０１６年
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１や非特許文献２に開示された画像データ圧縮方法では、符号化のための計算負荷が大きい。これは、符号化に多層ＣＮＮを用いることにより、複数回の畳み込み演算を行う必要があるためである。ＣＮＮによる画像データ圧縮を小さい計算負荷で行うには、畳み込み演算の回数を減らせばよい。すなわち、少ない層数のＣＮＮで画像データ圧縮を行えばよい。しかし、この場合、画像処理精度が低下する（すなわち、入力画像と出力画像との誤差が大きくなる）ため、高画質な画像を得ることができない。
【０００５】
そこで本発明は、ＣＮＮを用いて小さい計算負荷で高画質な画像を得ることが可能な画像処理装置、画像処理システム、撮像装置、画像処理方法、プログラム、および、記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面としての画像処理装置は、畳み込みニューラルネットワーク（ＣＮＮ）を用いて画像処理を行う画像処理装置であって、入力画像に対して画像補間を行い、第１のダウンサンプリング画像を生成する第１の画像生成部と、前記入力画像から少なくとも２層以上のダウンサンプリングＣＮＮを用いて第２のダウンサンプリング画像を生成する第２の画像生成部と、前記第１のダウンサンプリング画像と前記第２のダウンサンプリング画像とを画素ごとに加算して第３のダウンサンプリング画像を生成する第３の画像生成部とを有する。
【０００７】
本発明の他の側面としての画像処理システムは、前記画像処理装置と、前記第３のダウンサンプリング画像から、少なくとも２層以上のアップサンプリングＣＮＮを用いて出力画像を生成する第４の画像生成部とを有する。
【０００８】
本発明の他の側面としての撮像装置は、撮像素子と前記画像処理装置とを有する。
【０００９】
本発明の他の側面としての画像処理方法は、畳み込みニューラルネットワーク（ＣＮＮ）を用いて画像処理を行う画像処理方法であって、入力画像に対して画像補間を行い、第１のダウンサンプリング画像を生成するステップと、前記入力画像から少なくとも２層以上のダウンサンプリングＣＮＮを用いて第２のダウンサンプリング画像を生成するステップと、前記第１のダウンサンプリング画像と前記第２のダウンサンプリング画像とを画素ごとに加算して第３のダウンサンプリング画像を生成するステップとを有する。
【００１０】
本発明の他の側面としてのプログラムは、前記画像処理方法をコンピュータに実行させる。
【００１１】
本発明の他の側面としての記憶媒体は、前記プログラムを記憶している。
【００１２】
本発明の他の目的及び特徴は、以下の実施形態において説明される。
【発明の効果】
【００１３】
本発明によれば、ＣＮＮを用いて小さい計算負荷で高画質な画像を得ることが可能な画像処理装置、画像処理システム、撮像装置、画像処理方法、プログラム、および、記憶媒体を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態における画像処理システムのブロック図である。
【図２】本実施形態における別の画像処理システムの構成図である。
【図３】本実施形態における画像処理方法のフローチャートである。
【図４】本実施形態におけるダウンサンプリングＣＮＮの構造を示す図である。
【図５】本実施形態におけるネットワーク構造を示す図である。
【図６】本実施形態におけるアップサンプリングＣＮＮの構造を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１６】
まず、本発明の背景であるＣＮＮについて説明する。ＣＮＮとは、学習（ｔｒａｉｎｉｎｇまたはｌｅａｒｎｉｎｇ）により生成したフィルタを、画像に対して畳み込んだ（ｃｏｎｖｏｌｕｔｉｏｎ）後、非線形演算することを繰り返す、学習型の画像処理技術である。また、画像に対してフィルタを畳み込んだ後、非線形演算して得られる中間画像は、特徴マップ（ｆｅａｔｕｒｅ  ｍａｐ）と呼ばれる。また、畳み込みの他に逆（転置）畳み込みという処理があるが、これは畳み込みの一種であるため、後述する。また、学習は入力画像と出力画像とのペアからなる訓練画像（ｔｒａｉｎｉｎｇ  ｉｍａｇｅｓまたはｄａｔａ  ｓｅｔｓ）を用いて行われる。簡単には、入力画像から対応する出力画像へ、高精度に変換できるフィルタの値を、訓練画像から生成することが学習である。詳しくは後述する。
【００１７】
また、画像がＲＧＢカラーチャンネルを持つ場合や、特徴マップが複数枚の画像から構成されている場合、畳み込みに用いるフィルタも、それに応じて複数チャンネル持つ。すなわち、畳み込みフィルタは縦横サイズと枚数の他に、チャンネル数を加えた、４次元配列で表現される。
【００１８】
また、画像（または特徴マップ）にフィルタを畳み込んだ後に非線形演算する処理は、層（ｌａｙｅｒ）という単位で表現される。例えば、ｍ層目の特徴マップやｎ層目のフィルタなどと呼ばれる。また、例えばフィルタの畳み込みと非線形演算を３回繰り返すようなＣＮＮは、３層構造のネットワークをしている等と呼ばれる。
【００１９】
この処理は、以下の式（１）で表されるように定式化できる。
【００２０】
【数１】
2020064557.tif 000003
【００２１】
式（１）において、Ｗｎはｎ層目のフィルタ、ｂｎはｎ層目のバイアス、ｆは非線形演算子、Ｘｎはｎ層目の特徴マップ、＊は畳み込み演算子である。なお、右肩の（ｌ）はｌ番目のフィルタまたは特徴マップであることを表している。また、フィルタおよびバイアスは、後述する学習により生成され、まとめてネットワークパラメータとも呼ばれる。また、非線形演算として、例えばシグモイド関数（ｓｉｇｍｏｉｄ  ｆｕｎｃｔｉｏｎ）やＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ）が用いられる。
【００２２】
ＲｅＬＵは、以下の式（２）で与えられる。
【００２３】
【数２】
2020064557.tif 000004
【００２４】
すなわち、入力したベクトルＸの要素のうち負のものはゼロ、正のものはそのままとする非線形な処理である。なお、用途に応じて、ＬＲｅＬＵ（Ｌｅａｋｙ  ＲｅＬＵ）やＰＲｅＬＵ（Ｐａｒａｍｅｔｒｉｃ  ＲｅＬＵ）を用いてもよい。
【００２５】
ＬＲｅＬＵは、以下の式（３）で与えられる。
【００２６】
【数３】
2020064557.tif 000005
【００２７】
すなわち、入力したベクトルＸの要素のうち負のものは０．０１倍、正のものはそのままとする非線形な処理である。なお、ＰＲｅＬＵは、入力したベクトルＸの要素のうち負のものに加える重みを可変（パラメトリック）としたものであり、ＬＲｅＬＵより高精度な学習が期待できるが、その分学習に時間と計算負荷がかかることが知られている。
【００２８】
次に、ＣＮＮの学習について説明する。ＣＮＮの学習は、入力訓練画像（例えば劣化画像）と対応する出力訓練画像（例えば鮮鋭な正解画像）の組からなる訓練画像に対して、一般に以下の式（４）のように表される目的関数を最小化することで行われる。
【００２９】
【数４】
2020064557.tif 000006
【００３０】
式（４）において、Ｌは正解とその推定との誤差を測る損失関数（ｌｏｓｓ  ｆｕｎｃｔｉｏｎ）である。Ｙｉは、ｉ番目の出力訓練画像、Ｘｉはｉ番目の入力訓練画像である。Ｆは、ＣＮＮの各層で行う演算（数式１参照）を、まとめて表した関数である。θは、ネットワークパラメータ（フィルタおよびバイアス）である。‖Ｚ‖２は、Ｌ２ノルムであり、簡単にはベクトルＺの要素の２乗和の平方根である。ｎは、学習に用いる訓練画像の全枚数である。一般に、訓練画像の全枚数は多い（数万枚程度）ため、確率的勾配降下法（Ｓｔｏｃｈａｓｔｉｃ  Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ：ＳＧＤ）では、訓練画像の一部をランダムに選び学習に用いる。これにより、多くの訓練画像を用いた学習における計算負荷を低減することができる。
【００３１】
また、目的関数の最小化（最適化）法として、モーメンタム（ｍｏｍｅｎｔｕｍ）法やＡｄａＧｒａｄ法、ＡｄａＤｅｌｔａ法、Ａｄａｍ法等の種々の方法が知られている。Ａｄａｍ法は、以下の式（５）で与えられる。
【００３２】
【数５】
2020064557.tif 000007
【００３３】
ここで、θｉｔは反復ｔ回目におけるｉ番目のネットワークパラメータ、ｇはθｉｔに関する損失関数Ｌの勾配、ｍ、ｖはモーメントベクトル、αは基本学習率（ｂａｓｅ  ｌｅａｒｎｉｎｇ  ｒａｔｅ）、β１、β２はハイパーパラメータ、εは小さい定数である。なお、学習における最適化法の選択指針は現状存在しないため、基本的に何を用いてもよい。ただし、方法ごとの収束性は相違するため、学習時間が相違することが知られている。
【００３４】
次に、図１を参照して、本実施形態における画像処理システムについて説明する。図１は、本実施形態における画像処理システム１０のブロック図である。画像処理システム１０は、第１の画像処理装置１００ａおよび第２の画像処理装置１００ｂを備えて構成されており、畳み込みニューラルネットワーク（ＣＮＮ）を用いて画像処理を行う（入力画像から出力画像を生成する）。なお画像処理システム１０は、撮像素子２０１を有していてもよく、第１の画像処理装置１００ａと撮像素子２０１とで撮像装置２００が構成される。
【００３５】
第１の画像処理装置１００ａは、ダウンサンプリング補間部（第１の画像生成部）１０１、ダウンサンプリングＣＮＮ部（第２の画像生成部）１０２、加算部（第３の画像生成部）１０３、および、データ伝送部（送信部）１０４を備えて構成されている。第２の画像処理装置１００ｂは、データ受信部（受信部）１０５および出力部（第４の画像生成部）１０６を備えて構成されている。
【００３６】
ダウンサンプリング補間部１０１は、入力画像に対して画像補間を行い、ダウンサンプリング補間画像（第１のダウンサンプリング画像）を生成する。なお入力画像は、撮像素子２０１等の取得部により取得されたデジタル画像データである。入力画像の画像データは、計算機に読み込み可能なデジタルデータであれば、どのような形式でもよい。例えばＲＡＷ、ＢＭＰ（Ｂｉｔｍａｐ）、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）である。また入力画像は、カラー画像、モノクロ画像、動画像（複数の静止画像）のいいずれでもよい。
【００３７】
ダウンサンプリングとは、高解像度な入力画像を、より画素数の少ない低解像度な出力画像へ変換する画像処理である。画像補間によるダウンサンプリングでは、高解像度な座標から低解像度の座標へ、座標変換する行列を用いて、入力画像から補間画像へ変換する。すなわち、入力画像の画素に対して、座標変換行列で決定される重み付けを行い、対応する補間画像の画素値とする。なお、実空間ではなく周波数空間で考えると、入力画像の高周波成分を低周波成分に折り返し、得られる低周波成分が補間画像である。また、折り返された高周波成分はモアレと呼ばれるアーティファクトになるため、入力画像の高周波成分を事前に除いて、画像補間を行ってもよい。この処理はアンチエイリアス（ａｎｔｉ−ａｌｉａｓｉｎｇ）と呼ばれ、簡単には入力画像をぼかす画像処理である。またダウンサンプリング補間部１０１は、入力画像を画像補間によりダウンサンプリングする演算が可能な計算機であればよく、例えば集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＩＣ）であってもよい。
【００３８】
ダウンサンプリングＣＮＮ部１０２は、入力画像から少なくとも２層以上のダウンサンプリングＣＮＮを用いてダウンサンプリングＣＮＮ画像（第２のダウンサンプリング画像）を生成する。なおダウンサンプリングＣＮＮ部１０２は、前述したＣＮＮの演算が実現可能な計算機であればよい。例えば、特定用途向けＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  ＩＣ：ＡＳＩＣ）や、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）をプラグラミングして用いてもよい。またダウンサンプリングＣＮＮ部１０２は、前述した学習によりネットワークを学習して得られる、学習済みのネットワークパラメータを用いたダウンサンプリングＣＮＮにより、入力画像をダウンサンプリングする。
【００３９】
また、後述する加算部１０３において、ダウンサンプリングＣＮＮ画像と前述のダウンサンプリング補間画像とを画素ごとに加算する。このため、ダウンサンプリングＣＮＮの出力のチャンネル数は、ダウンサンプリング補間画像のチャンネル数と等しい。また、入力画像を画像補間して得られるダウンサンプリング補間画像のチャンネル数は、入力画像のチャンネル数と等しい。このため、これら３つの画像（ダウンサンプリングＣＮＮ画像、ダウンサンプリング補間画像、入力画像）のチャンネル数は互いに等しい。また、ダウンサンプリングＣＮＮ画像とダウンサンプリング補間画像との縦横サイズは等しい。
【００４０】
本実施形態において、好ましくは、ダウンサンプリングＣＮＮは、ストライドが２以上の畳み込み層を、１層以上有する。ここでストライドとは、入力画像（または特徴マップ）に対して、フィルタを畳み込む際の間隔である。例えば、入力画像に対してストライド２の畳み込みを行うと、入力画像に対して、縦横サイズが半分の特徴マップが得られる。このようにダウンサンプリングＣＮＮのストライドは、ダウンサンプリング倍率を決定する。
【００４１】
本実施形態において、好ましくは、ダウンサンプリングＣＮＮは、ストライドが２以上の畳み込み層を、第１層に有する。この理由を定性的に説明すると、ネットワークの入口である第１層で、特徴マップの縦横サイズを小さくすることで、ネットワーク内部を流れる特徴マップのサイズが小さくなり、その結果、計算負荷が減るためである。
【００４２】
なお、ダウンサンプリングＣＮＮ部１０２では、ダウンサンプリング補間部１０１では考慮できない、入力画像の高周波成分を考慮して圧縮画像に変換（符号化）している。一般に、自然画像に含まれる高周波成分は少ない。このため、符号化に必要なダウンサンプリングＣＮＮの層数は少なくてもよい。このように本実施形態は、入力画像を高周波成分と低周波成分とに分けて考慮する。そして本実施形態は、前者は少ない層数のＣＮＮで、後者は画像補間により行うことで、計算負荷を低減させ、かつ入力画像の全成分を符号化することが可能となる。
【００４３】
加算部１０３は、前述したダウサンプリング補間画像とダウンサンプリングＣＮＮ画像とを画素ごとに加算して圧縮画像（第３のダウンサンプリング画像）を生成する。なお加算部１０３は、ダウンサンプリング補間画像とダウンサンプリングＣＮＮ画像とを、画素ごとに加算し圧縮画像を生成する演算が可能な計算機であればよく、例えばＩＣでもよい。また前述のように、ダウンサンプリング補間画像とダウンサンプリングＣＮＮ画像とのチャンネル数は入力画像と等しい。このため、圧縮画像のチャンネル数は入力画像と等しい。
【００４４】
データ伝送部１０４は、前述した圧縮画像（圧縮画像データ）を後述するデータ受信部１０５へ伝送（送信）する。なおデータ伝送部１０４は、画像データを伝送可能な電子回路であればよい。
【００４５】
本実施形態において、ダウンサンプリング補間部１０１、ダウンサンプリングＣＮＮ部１０２、加算部１０３、および、データ伝送部１０４をそれぞれ別個のＩＣとして構成してもよい。または、これらを１つに集積したＬＳＩやＶＬＳＩとして、第１の画像処理装置１００ａを構成してもよい。また、それぞれの機能を記述したアプリケーションソフトウェアをダウンロードし、パーソナルコンピュータ（ＰＣ）やスマートフォン上で実行してもよい。その場合、データ伝送部１０４は、スマートフォンが既に備えているアンテナ等を用いることができるため、別途設ける必要はない。
【００４６】
データ受信部１０５は、データ伝送部１０４から圧縮画像（圧縮画像データ）を受信する。なおデータ受信部１０５は、画像データを受信可能な電子回路であればよい。
【００４７】
出力部１０６は、圧縮画像から、少なくとも２層以上のアップサンプリングＣＮＮを用いて出力画像を生成する。なお出力部１０６は、前述したＣＮＮの演算を実現可能な計算機であればよい。例えば、ＰＣ、ワークステーション、サーバ等により出力部１０６を構成してもよい。また出力部１０６は、前述した学習によりネットワークを学習して得られる、学習済みのネットワークパラメータを用いたアップサンプリングＣＮＮにより、圧縮画像から出力画像を生成する。アップサンプリングＣＮＮから出力される出力画像は、入力された圧縮画像に比べて解像度の高い画像である。アップサンプリングＣＮＮは、ダウンサンプリングＣＮＮとは異なるネットワークパラメータおよび層数を有する。すなわち出力部１０６は、ダウンサンプリングＣＮＮとは別のＣＮＮを用いて画像処理を行う。
【００４８】
またアップサンプリングＣＮＮは、ストライドが２以上の逆畳み込み層を、１層以上有することが好ましい。ここで逆畳み込みとは、畳み込みの逆操作である。例えば、ストライドが２の畳み込み層でダウンサンプリングした特徴マップは、ストライドが２の逆畳み込み層でアップサンプリングすることで、元の縦横サイズの特徴マップに戻すことができる。
【００４９】
また、アップサンプリングＣＮＮは、ストライドが２以上の逆畳み込み層を、最終層に有することが好ましい。これは、ダウンサンプリングＣＮＮと同様の理由である。すなわち、ネットワークの出口である最終層まで、特徴マップの縦横サイズを小さく維持することで、ネットワーク内部を流れる特徴マップのサイズが小さくなり、その結果、計算負荷が減るためである。
【００５０】
また、出力部１０６で得られる画像処理結果である出力画像は、画像処理システム１０内の記憶部（不図示）に記憶し、または、画像処理システム１０の内部もしくは外部の表示部（不図示）に表示してもよい。または、不図示のＣＤ−ＲＯＭドライブやＵＳＢインターフェース等のインターフェース機器を介して、画像処理システム１０の外部の記憶媒体（不図示）に記憶してもよい。
【００５１】
本実施形態において、データ受信部１０５および出力部１０６をそれぞれ別個のＩＣとしても構成してもよいが、１つに集積したＬＳＩやＶＬＳＩとして、第２の画像処理装置１００ｂを構成してもよい。また、それぞれの機能を記述したアプリケーションソフトウェアをダウンロードし、ワークステーションやサーバ上で実行してもよい。その場合、データ受信部１０５はサーバに既に設けられている受信部等を用いればよいため、別途設ける必要はない。
【００５２】
次に、図２を参照して、本実施形態における別の画像処理システムについて説明する。図２は、画像処理システム１０ａの構成図である。図２は、第１の画像処理装置１００ａがスマートフォン、第２の画像処理装置１００ｂがサーバである場合の例を示している。ダウンサンプリング補間部１０１、ダウンサンプリングＣＮＮ部１０２、および、加算部１０３は、それぞれの機能を記述したアプリケーションソフトウェアをダウンロードし、スマートフォン上で実行する。データ伝送部１０４は、スマートフォンに既に設けられている送信部である。データ受信部１０５は、サーバに既に設けられている受信部である。出力部１０６は、その機能を記述したアプリケーションソフトウェアをダウンロードし、サーバ上で実行する。
【００５３】
次に、図３を参照して、本実施形態における画像処理方法について説明する。図３は、画像処理方法のフローチャートであり、画像処理方法をＶＬＳＩ等で実行する場合のプログラムのフローチャートを示している。図３の各ステップは、第１の画像処理装置１００ａおよび第２の画像処理装置１００ｂの各部により実行される。
【００５４】
まずステップＳ３０１において、ダウンサンプリング補間部１０１は、入力画像に対して画像補間を行い、ダウンサンプリング補間画像を生成する。画像補間は、例えば、Ｂｉｃｕｂｉｃ、Ｂｉｌｉｎｅａｒ、または、最近傍補間であるが、これらに限定されるものではない。またダウンサンプリング補間部１０１は、入力画像にぼけを加えて画像補間を行ってもよい。続いてステップＳ３０２において、ダウンサンプリングＣＮＮ部１０２は、入力画像から少なくとも２層以上のダウンサンプリングＣＮＮを用いてダウンサンプリングＣＮＮ画像を生成する。続いてステップＳ３０３において、加算部１０３は、ダウンサンプリング補間画像とダウンサンプリングＣＮＮ画像とを画素ごとに加算して圧縮画像を生成する。
【００５５】
続いてステップＳ３０４において、データ伝送部１０４は、圧縮画像を送信する。そしてデータ受信部１０５は、データ伝送部１０４から送信された圧縮画像を受信する。続いてステップＳ３０５において、出力部１０６は、圧縮画像から、少なくとも２層以上のアップサンプリングＣＮＮを用いて出力画像を生成する。
【００５６】
好ましくは、ダウンサンプリング補間画像は、第１の周波数帯域を含む画像であり、ダウンサンプリングＣＮＮ画像は、第１の周波数帯域よりも高い第２の周波数帯域を含む画像である。周波数帯域とは、画像を空間周波数としてみた場合に強度を有する帯域である。また好ましくは、ダウンサンプリング補間画像、ダウンサンプリングＣＮＮ画像、および、圧縮画像は、互いにサイズ（画素数）が等しく、入力画像よりもサイズが小さい。より好ましくは、ダウンサンプリング補間画像、ダウンサンプリングＣＮＮ画像、および、圧縮画像は、互いにサイズが等しく、入力画像および出力画像よりもサイズが小さい。
【００５７】
次に、本実施形態の機能を記述したプログラムを用いて、画像データを符号化・復号化した数値計算の結果の一例を示す。ここでは、ダウンサンプリング補間部１０１の画像補間法としてＢｉｃｕｂｉｃ補間を用いて、入力画像を縦横サイズ１／２（画素数１／４）のダウンサンプリング補間画像にしている。
【００５８】
また、ダウンサンプリングＣＮＮ部１０２は、図４に示される２層のダウンサンプリングＣＮＮを用いる。図４において、ｃｏｎｖは畳み込み層、層の上の数字列はフィルタの縦横サイズ、チャンネル数、および枚数を示している。例えば、図４中の「３×３×１×８」は縦横サイズ３×３、チャンネル数１、枚数８枚のフィルタで畳み込みを行うことを示している。同様に、層の上の文字列「Ｓｔｒｉｄｅ２」は、ストライド２で畳み込みを行うことを示している。このダウンサンプリングＣＮＮにより、入力画像を縦横サイズ１／２（画素数１／４）のダウンサンプリングＣＮＮ画像にする。加算部１０３は、ダウンサンプリング補間画像とダウンサンプリングＣＮＮ画像とを画素ごとに加算し、入力画像に対して縦横サイズ１／２（画素数１／４）の圧縮画像にする。
【００５９】
図５は、入力画像から圧縮画像へ変換（符号化）するのに用いられるネットワークの概念図である。図５中の上部の経路はダウンサンプリング補間部１０１であり、入力画像の低周波成分を符号化し、ダウンサンプリング補間画像とする。図５中の下部の経路は、ダウンサンプリングＣＮＮ部１０２であり、入力画像の高周波成分を符号化し、ダウンサンプリングＣＮＮ画像とする。最後のバツ印は加算部１０３であり、ダウンサンプリング補間画像とダウンサンプリングＣＮＮ画像を画素ごとに加算し、圧縮画像とする。
【００６０】
また、データの送受信は圧縮画像をＪＰＥＧ圧縮することにより行われる。出力部１０６のアップサンプリングＣＮＮは、図６に示される３層のＣＮＮを用いる。図６において、ｃｏｎｖは畳み込み層、ｄｅｃｏｎｖは逆畳み込み層を示している。また図６において、層の上の数字列と文字列は前述と同様である。このアップサンプリングＣＮＮにより、入力画像に対して縦横サイズ１／２（画素数１／４）の圧縮画像を、入力画像と同じサイズ（縦横サイズ、チャンネル数）の出力画像にする。
【００６１】
また、ダウンサンプリングＣＮＮとアップサンプリングＣＮＮの学習は、図５および図６に示されるネットワークを連結し、５層のＣＮＮとして入力訓練画像を誤差が少なく出力訓練画像へ変換できるように行う。前述のとおり、データ圧縮において入出力訓練画像は同じ画像である。学習は、最適化法としてＡｄａｍ法（式（５））を用いたＳＧＤである。Ａｄａｍ法のパラメータは、α＝１０−４、β１＝０．９、β２＝０．９９９、ε＝１０−８である。ＳＧＤは、訓練画像の全枚数７６８００枚から、ランダムに１２８枚選択して用いる。学習の反復回数は、１８×１０４回（３００エポック）である。ネットワークパラメータ（フィルタおよびバイアス）の初期値は、全ての層でＸａｖｉｅｒを用いる。活性化関数は、全ての層でＬＲｅＬＵを用いる。
【００６２】
以下、本実施形態による画像処理結果を説明する。なお画像処理結果は、１９枚の画像データを符号化し復号化した際に得られる出力画像と、入力した画像とのＲＭＳＥ（Ｒｏｏｔ  Ｍｅａｎ  Ｓｑｕａｒｅ  Ｅｒｒｏｒ）の平均値（平均ＲＭＳＥ）で評価している。本実施形態における平均ＲＭＳＥは、０．０１３２である。ＲＭＳＥは、ゼロに近いほど正解画像（今回は入力画像）との誤差が小さい。このため本実施形態によれば、入力画像と誤差の少ない出力画像が得られることが分かる。
【００６３】
次に、従来技術の画像データを符号化・復号化した数値計算の結果を示す。厳密には、従来技術として多層ＣＮＮ（４層や７層）で符号化し、復号して得られる出力画像の画質と、符号化の計算負荷を比較評価すべきである。しかし、ここでは簡単のため、本実施形態と同じ２層のＣＮＮ（図４）で符号化し、本実施形態と同じ３層のＣＮＮ（図６）で復号して得られる出力画像の画質のみで比較評価する。すなわち、画像データ符号化の計算負荷を決定する多層ＣＮＮの層数を本発明と同等まで落とすと、従来技術は効果を発揮せず、出力画像の画質が劣化することを示す。なお、比較評価のために用いられるダウンサンプリングＣＮＮとアップサンプリングＣＮＮは、それぞれ図４および図６と同様であるため、それらの説明は省略する。また、学習の方法も前述と同様であるため、その説明は省略する。
【００６４】
以下、（本実施形態と計算負荷を同じにした）従来技術による画像処理結果を示す。なお、画像処理結果は、前述と同様に、１９枚の画像データを符号化し復号化した際に得られる出力画像と、入力した画像とのＲＭＳＥの平均値（平均ＲＭＳＥ）で評価している。従来技術における平均ＲＭＳＥは、０．０１５８である。ＲＭＳＥはゼロに近いほど誤差が小さい。このため、入力画像と誤差の少ない出力画像が従来技術でも得られることが分かる。しかし、本実施形態のＲＭＳＥの方がゼロに近い。このため、本実施形態の方が従来技術よりも誤差が少ない出力画像、すなわち画質の良い出力画像が得られることが分かる。
【００６５】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６６】
本実施形態は、ＣＮＮを用いて小さい計算負荷で画像データを圧縮し、高画質な出力画像を得ることができる。このため本実施形態によれば、ＣＮＮを用いて小さい計算負荷で高画質な画像を得ることが可能な画像処理装置、画像処理システム、撮像装置、画像処理方法、プログラム、および、記憶媒体を提供することができる。
【００６７】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００６８】
１００ａ  第１の画像処理装置（画像処理装置）
１０１    ダウンサンプリング補間部（第１の画像生成部）
１０２    ダウンサンプリングＣＮＮ部（第２の画像生成部）
１０３    加算部（第３の画像生成部）
【図１】
2020064557.tif 000008
【図２】
2020064557.tif 000009
【図３】
2020064557.tif 000010
【図４】
2020064557.tif 000011
【図５】
2020064557.tif 000012
【図６】
2020064557.tif 000013