(57)【要約】【課題】データ量の増大を抑制しながら高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理方法を提供する。【解決手段】多層のニューラルネットワークを用いて、撮像画像の劣化を補正する画像処理方法であって、撮像画像の一部である部分画像に対する反転処理を行う反転工程（Ｓ２０３）と、反転工程における反転処理に基づいて、部分画像の色成分の位置関係を変更する変更工程（Ｓ２０４）と、反転工程および変更工程により処理された部分画像を、ニューラルネットワークに入力することで、部分画像において劣化が補正された補正画像を算出する算出工程（Ｓ２０５〜Ｓ２０８）とを有する。【選択図】図８
2020061129.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを用いて、撮像画像を補正する画像処理方法であって、
前記撮像画像の一部である部分画像の前記撮像画像における位置に応じて、前記部分画像または前記ニューラルネットワークのフィルタに対する反転軸を決定する第１工程と、
前記反転軸に対応する、前記ニューラルネットワークに入力される画像における各色成分の画素の位置関係を決定する第２工程と、
前記位置関係に基づいて前記撮像画像から生成された入力画像を、前記ニューラルネットワークを用いて処理することで、前記入力画像を補正した補正画像を生成する第３工程と、
を有することを特徴とする画像処理方法。
【請求項２】
複数の前記部分画像に対して算出された複数の前記補正画像を合成することで前記撮像画像を補正した補正撮像画像を生成する合成工程を更に有し、
前記複数の部分画像は、第１の部分画像と、前記第１工程において前記第１の部分画像とは異なる前記反転軸が決定される第２の部分画像を含むことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記反転軸は、前記部分画像に対する反転軸であり、
前記ニューラルネットワークは、前記第１の部分画像と前記第２の部分画像に対して共通であることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記第１の部分画像は、前記第２の部分画像の一部を含むことを特徴とする請求項２または３に記載の画像処理方法。
【請求項５】
前記第３工程において、前記入力画像は、前記位置関係に基づいて定められる領域で前記撮像画像の一部を切り出すことで生成されることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理方法。
【請求項６】
前記第３工程において、前記入力画像は、前記位置関係に基づいて、前記部分画像の一部の画素を削除すること、または、前記部分画像の一部の画素の位置を変更することによって生成されることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理方法。
【請求項７】
前記撮像画像から前記部分画像を複数抽出する工程を更に有し、
前記第１工程において、抽出された複数の前記部分画像のそれぞれは、前記撮像画像を基準点まわりに角度が４５度の整数倍ごとに分割した複数の領域のうち、前記部分画像を占める面積が最も大きい領域である最大領域に基づいて、反転軸が決定されることを特徴とする請求項１乃至６のいずれか１項に記載の画像処理方法。
【請求項８】
前記基準点は、前記撮像画像の撮像に用いた結像光学系の光軸に対応する点であることを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記第１工程において、前記複数の領域のうち前記部分画像を含む領域の前記撮像画像における位置に基づいて、反転処理を行うことを特徴とする請求項７または８に記載の画像処理方法。
【請求項１０】
前記第２工程において、前記位置関係は、前記ニューラルネットワークの学習に用いられた訓練画像における各色成分の位置関係に基づいて定められることを特徴とする請求項１乃至９のいずれか１項に記載の画像処理方法。
【請求項１１】
前記補正画像は、前記撮像画像における光学的な劣化が補正された画像であることを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理方法。
【請求項１２】
ニューラルネットワークを用いて、撮像画像を補正する画像処理装置であって、
前記撮像画像の一部である部分画像の前記撮像画像における位置に応じて、前記部分画像または前記ニューラルネットワークのフィルタに対する反転軸を決定する反転決定手段と、
前記反転軸に対応する、前記ニューラルネットワークに入力される画像における各色成分の画素の位置関係を決定する色決定手段と、
前記位置関係に基づいて前記撮像画像から生成された入力画像を、前記ニューラルネットワークを用いて処理することで、前記入力画像を補正した補正画像を生成する生成手段と、
を有することを特徴とする画像処理装置。
【請求項１３】
前記ニューラルネットワークで使用するフィルタを記憶する記憶部を更に有することを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
撮像画像の一部である部分画像の前記撮像画像における位置に応じて、前記部分画像またはニューラルネットワークのフィルタに対する反転軸を決定する反転決定手段と、
前記反転軸に対応する、前記ニューラルネットワークに入力される画像の各色成分の画素の位置関係を決定する色決定手段と、
前記ニューラルネットワークを用いて前記撮像画像を補正する他の処理装置に、前記位置関係に基づいて前記撮像画像から生成された入力画像を送信する送信手段と、
を有し、
前記他の処理装置は、受信した前記入力画像を、前記ニューラルネットワークを用いて処理することで前記入力画像を補正した補正画像を生成することを特徴とする画像処理装置。
【請求項１５】
被写体の像を撮像する撮像部と、
請求項１２乃至１４のいずれか１項に記載の画像処理装置と、を有することを特徴とする撮像装置。
【請求項１６】
第１の装置と第２の装置を有する画像処理システムであって、
前記第１の装置は、
撮像画像を補正する処理を前記第２の処理装置に実行させるための要求を送信する送信手段を有し、
前記第２の装置は、
前記要求を受信する受信手段と、
前記撮像画像の一部である部分画像の前記撮像画像における位置に応じて、前記部分画像または前記ニューラルネットワークのフィルタに対する反転軸を決定する反転決定手段と、
前記反転軸に対応する、前記ニューラルネットワークに入力される画像の各色成分の画素の位置関係を決定する色決定手段と、
前記位置関係に基づいて前記撮像画像から生成された入力画像を、前記ニューラルネットワークを用いて処理することで、前記入力画像を補正した補正画像を生成する生成手段と、
を有することを特徴とする画像処理システム。
【請求項１７】
請求項１乃至１１のいずれか１項に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１８】
請求項１７に記載のプログラムを記憶していることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像画像の光学的な性能劣化を補正する画像処理方法に関する。
【背景技術】
【０００２】
従来、ディープラーニングによって回帰問題を解き、入力画像から様々な出力画像を推定する技術が提案されている。ディープラーニングとは、多層のニューラルネットワークを用いた機械学習である。多層による強い非線型性の導入と、大量の学習用画像を用いた学習による高い汎化性能から、未知の入力画像に対して高精度の推定が可能となる。
【０００３】
非特許文献１には、様々な回帰問題に対して適用可能な畳み込みニューラルネットワーク（ＣＮＮ：Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）の構成が開示されている。また非特許文献１には、畳み込みニューラルネットワークを用いた、入力画像のアップサンプリング、ＪＰＥＧデブロッキング（圧縮ノイズの除去）、デノイジング、ノンブラインドなぼけ補正、および、インペインティングが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５２７４６２３号公報
【特許文献２】特許第５５４１７５０号公報
【非特許文献】
【０００５】
【非特許文献１】Ｘ．  Ｍａｏ，  Ｃ．  Ｓｈｅｎ，  Ｙ．  Ｙａｎｇ，  “Ｉｍａｇｅ  Ｒｅｓｔｏｒａｔｉｏｎ  Ｕｓｉｎｇ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ａｕｔｏ−ｅｎｃｏｄｅｒｓ  ｗｉｔｈ  Ｓｙｍｍｅｔｒｉｃ  Ｓｋｉｐ  Ｃｏｎｎｅｃｔｉｏｎｓ”，  ｈｔｔｐｓ：／／ａｒｘｉｖ．ｏｒｇ／ａｂｓ／１６０６．０８９２１．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、非特許文献１に開示された方法で撮像画像の光学的な性能劣化を補正する場合、保持するフィルタのデータ量が増大するか、または補正精度が低下する。光学的な性能劣化とは、撮像画像の撮像に用いた結像光学系の収差と回折によるぼけ、光学ローパスフィルタや撮像素子の画素開口によるぼけ等を指す。以下、光学的な性能劣化を単にぼけという。
【０００７】
結像光学系の収差は、ズーム、絞り値、合焦距離、像高、および、アジムスに応じて変化する。このため、単一のぼけのみを補正する非特許文献１に開示された方法では、結像光学系で撮像される全ての撮像画像を補正することができない。ズーム、絞り値、合焦距離、像高、または、アジムスが異なる複数のぼけの各々に対して、個別にフィルタを学習して補正することはできるが、保持すべきフィルタのデータ量が膨大になる。
【０００８】
または、ズーム、絞り値、合焦距離、像高、および、アジムスの異なる複数のぼけ全てをまとめて学習する方法も考えられる。これは、複数のぼけの全てに対して、正解画像とぼけ画像とを用意し、それらを混合してＣＮＮを学習することで実現可能である。しかし、複数のぼけに大きく異なるぼけが含まれていると、高い補正効果を得ることができない。
【０００９】
そこで本発明は、データ量の増大を抑制しながら高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理方法、画像処理装置、撮像装置、画像処理システム、プログラム、および、記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面としての画像処理方法は、ニューラルネットワークを用いて、撮像画像を補正する画像処理方法であって、前記撮像画像の一部である部分画像の前記撮像画像における位置に応じて、前記部分画像または前記ニューラルネットワークのフィルタに対する反転軸を決定する第１工程と、前記反転軸に対応する、前記ニューラルネットワークに入力される画像における各色成分の画素の位置関係を決定する第２工程と、前記位置関係に基づいて前記撮像画像から生成された入力画像を、前記ニューラルネットワークを用いて処理することで、前記入力画像を補正した補正画像を生成する第３工程とを有する。
【００１１】
本発明の他の側面としての画像処理装置は、ニューラルネットワークを用いて、撮像画像を補正する画像処理装置であって、前記撮像画像の一部である部分画像の前記撮像画像における位置に応じて、前記部分画像または前記ニューラルネットワークのフィルタに対する反転軸を決定する反転決定手段と、前記反転軸に対応する、前記ニューラルネットワークに入力される画像における各色成分の画素の位置関係を決定する色決定手段と、前記位置関係に基づいて前記撮像画像から生成された入力画像を、前記ニューラルネットワークを用いて処理することで、前記入力画像を補正した補正画像を生成する生成手段とを有する。
【００１２】
本発明の他の側面としての撮像装置は、被写体の像を撮像する撮像部と前記画像処理装置とを有する。
【００１３】
本発明の他の側面としての画像処理システムは、第１の装置と第２の装置を有する画像処理システムであって、前記第１の装置は、撮像画像を補正する処理を前記第２の処理装置に実行させるための要求を送信する送信手段を有し、前記第２の装置は、前記要求を受信する受信手段と、前記撮像画像の一部である部分画像の前記撮像画像における位置に応じて、前記部分画像または前記ニューラルネットワークのフィルタに対する反転軸を決定する反転決定手段と、前記反転軸に対応する、前記ニューラルネットワークに入力される画像の各色成分の画素の位置関係を決定する色決定手段と、前記位置関係に基づいて前記撮像画像から生成された入力画像を、前記ニューラルネットワークを用いて処理することで、前記入力画像を補正した補正画像を生成する生成手段とを有する。
【００１４】
本発明の他の側面としてのプログラムは、前記画像処理方法をコンピュータに実行させる。
【００１５】
本発明の他の側面としての記憶媒体は、前記プログラムを記憶している。
【００１６】
本発明の他の目的及び特徴は、以下の実施例において説明される。
【発明の効果】
【００１７】
本発明によれば、データ量の増大を抑制しながら高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理方法、画像処理装置、撮像装置、画像処理システム、プログラム、および、記憶媒体を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施例１及び３における畳み込みニューラルネットワークの説明図である。
【図２】実施例１における撮像システムのブロック図である。
【図３】実施例１における撮像システムの外観図である。
【図４】実施例１乃至３における学習工程のフローチャートである。
【図５】実施例１及び３におけるレンズステートの分割の説明図である。
【図６】実施例１におけるアジムス分割と部分画像の抽出の説明図である。
【図７】実施例１における撮像素子の画素配置図である。
【図８】実施例１における補正工程のフローチャートである。
【図９】実施例１における各アジムス範囲の反転処理とカラーフィルタアレイの配置との関係を示す図である。
【図１０】実施例２における画像処理システムのブロック図である。
【図１１】実施例２における画像処理システムの外観図である。
【図１２】実施例２におけるアジムス分割の説明図である。
【図１３】実施例２における畳み込みニューラルネットワークの説明図である。
【図１４】実施例２における補正工程のフローチャートである。
【図１５】実施例２における部分画像の抽出位置の説明図である。
【図１６】実施例２における畳み込み演算の参照順序の説明図である。
【図１７】実施例３における画像処理システムのブロック図である。
【図１８】実施例３における画像処理システムの外観図である。
【図１９】実施例３におけるアジムス分割の説明図である。
【図２０】実施例３における色成分の位置関係の変更の説明図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照符号を付し、重複する説明は省略する。
【００２０】
以下に用語の定義と、発明の概要を説明する。光学的な性能劣化（ぼけ）の補正には、多層の畳み込みニューラルネットワーク（ＣＮＮ）を用いる。ＣＮＮによるぼけ補正には、ニューラルネットワーク（以下、単にネットワークとも呼ぶ）のフィルタ（重み）を学習するための処理工程と、学習されたフィルタを用いて未知の入力に対してぼけ補正を行う処理工程が存在する。前者を学習工程と呼び、後者を補正工程と呼ぶ。次に、学習工程と補正工程における画像の名称を定める。ネットワークへ入力する画像を入力画像とし、特に学習工程の際に用いる、正解画像が既知の入力画像を訓練画像と呼称する。ネットワークから出力された画像を出力画像とし、特に補正工程の際の出力画像を補正画像と呼称する。正解画像は、訓練画像からぼけが補正された理想的な出力画像に相当する画像である。
【００２１】
本発明において、入力画像と正解画像は、複数の色成分を有するＲＡＷ画像である。複数の色成分は、Ｂａｙｅｒ配列等のように、それぞれ被写体空間の異なる位置の情報を有する。ＲＡＷ画像は、未現像の画像データを指す。出力画像も、補正によって正解画像に準ずる画像として生成されるため、ＲＡＷ画像の性質を有する。入出力画像をＲＡＷ画像とすることで、現像処理を介さないため、ユーザはぼけ補正された撮像画像に対してそのまま編集作業を行うことができる。また、ネットワークへ複数の色成分を同時に入力することで、異なる色成分における被写体の情報（エッジ等）をぼけ補正に用いることができる。このように、色成分ごとにぼけ補正を行うことにより、フィルタのデータ量を削減（抑制）しつつ、補正精度を向上させることができる。
【００２２】
本発明は、ＲＡＷ画像に対するＣＮＮを用いたぼけ補正に対して、収差の光軸まわりにおける回転対称性を考慮する。これにより、ぼけのアジムスに対する自由度を減らすことができる。また、補間劣化の生じない反転の使用と、反転による色成分の位置関係（カラーフィルタアレイの配置）の変化を打ち消すことで、学習していないアジムスに対しても高精度なぼけ補正が可能となり、保持するフィルタのデータ量も抑制することができる。
【実施例１】
【００２３】
まず、本発明の実施例１における画像処理方法について説明する。本実施例では、撮像装置を用いて画像処理方法を実行する撮像システムを説明する。なお本実施例では、補正工程を実行する撮像装置とは別に、学習工程を実行する学習装置が存在する。
【００２４】
図２および図３を参照して、本実施例における撮像システム１０について説明する。図２は、撮像システム１０のブロック図である。図３は、撮像システム１０の外観図である。撮像システム１０は、撮像装置１００と学習装置１１０とを備えて構成される。
【００２５】
撮像装置１００で被写体空間の撮像画像を撮像し、撮像画像に作用しているぼけをＣＮＮによって補正する。補正には、学習装置１１０で学習されたフィルタを用いる。撮像画像は、撮像部１０１により撮像される。撮像部１０１は、結像光学系１０１ａ、光学ローパスフィルタ１０１ｂ、および、撮像素子１０１ｃを有する。ただし、光学ローパスフィルタ１０１ｂは必須でない。本実施例において、撮像装置１００は、レンズ交換式の撮像装置であり、結像光学系１０１ａ（交換レンズ）は撮像素子１０１ｃを備えたカメラ本体に着脱可能であり、カメラ本体には様々な種類の交換レンズを付け替えることができる。
【００２６】
被写体空間から撮像部１０１へ入射した光は、結像光学系１０１ａと光学ローパスフィルタ１０１ｂとを通過した後、撮像素子１０１ｃで受光される。受光された被写体空間の像には、結像光学系１０１ａの収差と回折、光学ローパスフィルタ１０１ｂ、および、撮像素子１０１ｃの画素開口のそれぞれによるぼけが作用している。撮像画像は、画像処理部１０２へ入力される。画像処理部１０２は、反転手段（反転決定手段）１０２ａ、変更手段（色決定手段）１０２ｂ、および、生成手段１０２ｃを有し、本実施例の画像処理方法によるぼけ補正を行う。また画像処理部１０２は、その他の現像処理等を行う。ぼけ補正には、学習装置１１０で学習されたフィルタを用いる。学習装置１１０は、撮像装置１００に装着し得る複数の結像光学系１０１ａの各々に対して、学習部１１１でＣＮＮのフィルタを事前に学習し、記憶部１１２に記憶している。
【００２７】
撮像装置１００と学習装置１１０は、有線または無線で接続されている。撮像装置１００は、結像光学系１０１ａの種類に対応するフィルタを記憶部１１２から任意のタイミングで読み出すことができる。読み出されたフィルタの情報は、記憶部１０３に記憶される。画像処理部１０２で実行されるぼけ補正、および、学習部１１１で実行されるフィルタの学習に関する詳細は、後にフローチャートを用いて説明する。ぼけ補正された撮像画像（補正撮像画像）は、記憶媒体１０５に保存され、ユーザが鑑賞する際には表示部１０４に表示される。なお画像処理部１０２は、記憶媒体１０５に保存されている、ぼけ補正の行われていない撮像画像を読み出し、前述のぼけ補正を実行してもよい。以上の工程は、システムコントローラ１０６により制御される。
【００２８】
次に、図４を参照して、学習部１１１で実行される学習工程に関して説明する。図４は、学習工程のフローチャートである。図４の各ステップは、主に、学習部１１１により実行される。
【００２９】
まずステップＳ１０１において、学習部１１１は、一括で学習するぼけの条件を設定する。学習条件とは、ぼけが変化し得る要因を指す。具体的には、レンズ（結像光学系１０１ａ）の種類、撮像時における結像光学系のレンズステート、像高とアジムス、撮像素子の画素ピッチと画素開口とカラーフィルタアレイの配置、および、光学ローパスフィルタの有無と種類等である。レンズステートとは、ズーム、絞り値、合焦距離を指す。撮像装置１００はレンズ交換式の撮像装置であるため、異なる種類の結像光学系１０１ａが装着され得る。本実施例では、ぼけを補正するＣＮＮのフィルタを、結像光学系１０１ａの種類ごとに分けて学習する。
【００３０】
また、１種類の結像光学系１０１ａに対してもレンズステートを複数に分割し、分割されたレンズステート各々で学習を個別に行う。例えば、図５におけるレンズステートの分割の説明図に示されるように、ズーム（単焦点レンズの場合は不要）Ｚ、絞り値Ｆ、合焦距離Ｄ、それぞれを軸とするレンズステートの空間を複数に分割する。その分割されたレンズステート、例えば、ｉ，ｊ，ｋ＝１，２とし、（Ｚｉ，Ｆｊ，Ｄｋ）の８点を頂点とするレンズステートの部分空間で発生するぼけを一括で学習する。レンズステートの部分空間に属するズーム、絞り値、合焦距離で撮像された撮像画像に対しては、同一のフィルタを用いてぼけを補正する。
【００３１】
収差と回折によるぼけは、結像光学系１０１ａが光軸に対して回転対称性なレンズで構成され、且つ絞りが略円形状の場合、光軸まわりに回転対称性を有する。このため、画角に関しては像高変化のみを学習し、アジムス変化は学習した結果（フィルタ）、または入力画像を回転することで対応できる。しかし、ディープラーニングの学習結果には、高い周波数成分を有するフィルタが存在する可能性があり、回転による補間劣化が問題となる。また、入力画像を回転する場合も、同様に補間劣化が生じる。そのため、補間劣化のない反転を使用する。ぼけが光軸に対して回転対称な場合、イメージサークルの１／８の領域（全像高とアジムスのいずれか４５度分）だけ、ぼけの変化を学習しておけば、残りの７／８の領域はフィルタ、または入力画像を反転することで補正することができる。すなわち、フィルタまたは入力画像に対する反転処理を行うことで、撮像画像内の異なる位置の補正に同一のフィルタを用いることができる。
【００３２】
なお、光学ローパスフィルタによる作用が４回対称性を持っていない場合がある。例えば、垂直、又は水平方向のみに２点分離する光学ローパスフィルタの点像強度分布（ＰＳＦ）は、２回対称性までしか持たない。この場合は、イメージサークルの１／８でなく１／４の領域に対応するぼけを学習すれば良い。
【００３３】
本実施例における光学ローパスフィルタ１０１ｂは、４点分離（垂直と水平それぞれに２点分離）方式のため、イメージサークルの１／８のぼけ変化を学習する。これによって、ぼけのアジムスに対する変化の自由度が下がり、フィルタのデータ量を削減することができる。
【００３４】
図６（Ａ）は、学習するぼけの像高とアジムスの範囲を示す。図６（Ａ）の一点鎖線はイメージサークルを、実線は撮像画像２２１、黒い点２２２は結像光学系１０１ａの光軸に相当する点（基準点）をそれぞれ示す。本実施例では、斜線部２２４で示される像高とアジムスの範囲のぼけを学習する。撮像画像２２１に収まる範囲に限定することで、学習に含まれるぼけのバリエーションを最低限に絞ることができる。なお、像高とアジムスの範囲は図６（Ａ）の斜線部２２４の位置に限定されるものではなく、イメージサークルの１／８の領域であれば他の位置であってもよい。ただし、撮像画像２２１に収まる範囲のみを学習する場合、アジムスを０≦θ≦４５、−４５≦θ≦０、１３５≦θ≦１８０、−１８０≦θ≦−１３５（度）のいずれかから選択する必要がある。それ以外の範囲では、撮像画像に作用するぼけ全てを学習することができない。なお、アジムスの原点は、ｘ軸（撮像画像の長手方向）上の正の領域である。
【００３５】
次に、画素ピッチと画素開口、カラーフィルタアレイの配置、光学ローパスフィルタに関して説明する。本実施例において、撮像装置１００内の光学ローパスフィルタ１０１ｂおよび撮像素子１０１ｃは変化しない。光学ローパスフィルタ１０１ｂは、前述したように４点分離方式である。撮像素子１０１ｃのカラーフィルタアレイは、図７に示される画素配置となっている。図７中の斜線部１５０は、オプティカルブラック領域である。オプティカルブラック領域で囲まれた領域に形成される受光領域は、最も左上の画素がＲ（赤）のＢａｙｅｒ配列構造を有する。Ｇ１とＧ２は緑、Ｂは青である。受光領域で撮像された信号が、撮像画像である。
【００３６】
受光領域の画素の位置を行と列のインデックスを用いて（ｉ，ｊ）と表すとき、（１，１）、（１，２）、（２，１）、（２，２）の順で画素のカラーフィルタを記載することで、カラーフィルタアレイの配置を表記することとする。本実施例におけるカラーフィルタアレイの配置は、Ｒ、Ｇ１、Ｇ２、Ｂである。このため、ぼけの条件は、画素ピッチと画素開口は撮像素子１０１ｃで採用されている値を設定し、カラーフィルタアレイの配置と光学ローパスフィルタはＲ、Ｇ１、Ｇ２、Ｂと４点分離で固定とする。なお、カラーフィルタアレイはＢａｙｅｒ配列に限定されるものではない。ハニカム構造等、複数の色成分を空間分割によって取得する他の配列に対しても、本発明は同様に適用可能である。
【００３７】
続いて、図４のステップＳ１０２において、学習部１１１は、複数の訓練画像と正解画像を取得する。撮像画像はＲＡＷ画像であるため、訓練画像と正解画像もＲＡＷ画像である。訓練画像と正解画像は、同一の被写体が写った画像であり、ぼけの有無が異なる。訓練画像は、例えば、ぼけの影響が少ないＲＡＷ画像（正解画像）に対して、シミュレーションでぼけを付与することで生成できる。学習工程において含まれていないぼけ、或いは被写体の構造（エッジ等）は、後の補正工程で精度よく補正することができない。このため、様々な被写体が写った多数の正解画像を用意し、それらに設定したレンズステートの部分空間と像高、アジムスのぼけを作用させて訓練画像を生成する。
【００３８】
ぼけの生成は、例えば以下のような方法で行うことができる。レンズステートと像高、アジムスを決定し、結像光学系１０１ａの設計値から光学伝達関数（ＯＴＦ）を算出し、光学ローパスフィルタと画素開口の周波数特性と積をとる。カラーフィルタの分光特性を用いて波長ごとの重み和をとり、各色のＮｙｑｕｉｓｔ周波数で折り返すことで、ぼけのＯＴＦを生成できる。赤外線カットフィルタ等が入っている場合、その特性も加味する。また、訓練画像には撮像素子１０１ｃで発生するノイズを付与してもよい。ノイズの強さごとに異なるフィルタを学習し、撮像画像のノイズレベル（ＩＳＯ感度等から判定可能である）に基づいて、補正に用いるフィルタを使い分けてもよい。
【００３９】
続いてステップＳ１０３において、学習部１１１は、複数の訓練画像と正解画像を用いて、ＣＮＮを最適化し、フィルタを算出する。図１は、ＣＮＮの説明図である。ＣＮＮは、複数の畳み込み層を有する。訓練画像である入力画像２０１に関して、第１畳み込み層２０２で複数のフィルタとの畳み込みとバイアスの和が算出される。各フィルタに対して算出された結果をまとめたものが、第１特徴マップ２０３である。第１特徴マップ２０３は、第２畳み込み層２０４に入力され、同様に新たな複数のフィルタとの畳み込みとバイアスの和が算出される。これを繰り返し、第Ｎ−１特徴マップ２１１を第Ｎ畳み込み層２１２に入力して得られた結果が、出力画像２１３である。ここで、Ｎは３以上の自然数である。一般には３層以上の畳み込み層を有するＣＮＮが、ディープラーニングに該当すると言われる。各畳み込み層では、畳み込みの他に活性化関数を用いた非線型変換が実行される。活性化関数の例としては、シグモイド関数やＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ）などがある。ただし、最後の第Ｎ畳み込み層では、非線形変換を実行しなくてもよい。
【００４０】
各畳み込み層のフィルタ、およびバイアスの初期値は、例えば乱数等で決定される。出力された出力画像と正解画像の誤差を算出し、その誤差が小さくなるように誤差逆伝搬法（Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）等を用いて、フィルタとバイアスを更新する。フィルタとバイアスが収束した後、学習部１１１は、学習が終了したとしてフィルタとバイアスの値を決定する。収束は、更新量の大きさや更新の回数等で判定可能である。なお、畳み込み層の代わりに逆畳み込み層を用いてもよいし、必要に応じてプーリング層などを追加しても構わない。また、第Ｎ畳み込み層の出力と入力画像の和を取ったものを出力画像としてもよい。このような出力画像と入力画像の差分を学習するネットワークは、残差（Ｒｅｓｉｄｕａｌ）ネットワークと呼ばれる。この際、バイアスをゼロに固定してもよい。また、ネットワークとしてＧＡＮ（Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋ）等を用いてもよい。
【００４１】
続いて、図４のステップＳ１０４において、学習部１１１は、既定のぼけの条件の全てに対して、フィルタの算出が完了したか否かを判定する。全てのぼけの条件に対してフィルタの算出が完了した場合、ステップＳ１０５へ進む。一方、フィルタの算出が完了していない場合、ステップＳ１０１に戻る。本実施例では、レンズステートの空間を複数に分割しているため、学習部１１１は、フィルタが算出されていないレンズステートを新たに選択する。続いてステップＳ１０５において、学習部１１１はフィルタを出力する。学習部１１１により算出され出力されたフィルタは、記憶部１１２に記憶される。
【００４２】
次に、図８を参照して、画像処理部１０２で実行される撮像画像の補正工程（ぼけ補正）に関して説明する。図８は、撮像画像の補正工程のフローチャートである。図８の各ステップは、主に、システムコントローラ１０６の指令に基づいて画像処理部１０２により実行される。
【００４３】
まずステップＳ２０１において、画像処理部１０２は、撮像画像を取得し、取得した撮像画像に対応するフィルタを記憶部１０３から読み出す。本実施例において、画像処理部１０２は、撮像画像を撮像した際のレンズステートに関する情報に基づいて、読み出すフィルタを特定する。レンズステートに関する情報は、例えば、撮像画像のヘッダ情報等から取得可能である。
【００４４】
続いてステップＳ２０２において、画像処理部１０２は、撮像画像から部分画像（補正対象となる撮像画像の一部の領域）を抽出する。なお、部分画像の大きさは、訓練画像と必ずしも一致しなくてよい。図６（Ａ）、（Ｂ）は、部分画像の抽出例を示す。イメージサークルを８分割した領域のうち、撮像画像２２１の面積が大きい領域では、図６（Ａ）に示されるように部分画像２２３ａまたは部分画像２２３ｂを抽出する。部分画像２２３ａは、斜線部２２４の全てを含む１つの部分画像である。部分画像２２３ｂは、斜線部２２４の全体を分割して含む複数の部分画像である。なお、部分画像２２３ｂの数はいくつでもよい。
【００４５】
同様に、撮像画像２２１の面積が小さい領域では、図６（Ｂ）に示されるように部分画像２２５ａまたは部分画像２２５ｂを抽出する。部分画像２２５ａは、斜線部２２６の全てを含む１つの部分画像である。部分画像２２５ｂは、斜線部２２６の全体を分割して含む複数の部分画像である。部分画像２２５ａの場合、１／８の領域を１回のＣＮＮによる演算で補正できるが、余分な領域（斜線部２２６以外の正しい補正がなされない領域）の面積が大きくなる。部分画像２２５ｂでは部分画像ごとに演算する必要があるが、余分な領域の面積は小さい。いずれを選択するかは、計算時間やメモリの量に応じて決定すればよい。また、部分画像のうち、正しい補正がされない余分な領域は、ステップＳ２０８の合成の際に削除する。なお、部分画像がどのアジムス範囲に該当するかは、部分画像に対して各アジムス範囲が占める面積から判定してもよい。
【００４６】
続いてステップＳ２０３において、画像処理部１０２（反転手段１０２ａ）は、部分画像の撮像画像における位置に基づいて、部分画像に対する反転処理を設定（制御）する。すなわち画像処理部１０２は、フィルタを学習したアジムスの範囲と、ステップＳ２０２にて抽出した部分画像に対応するアジムスの範囲との位置関係に基づいて、反転軸（反転処理における軸）を決定する（反転処理の種類を切り替えるとも言える）。本実施例において、学習部１１１は１３５≦θ≦１８０（度）のアジムス範囲で学習を行っているため、各アジムス範囲における反転軸は図９に示されるようになる。図９は、各アジムス範囲の反転処理と、反転処理後のカラーフィルタアレイの配置との関係を示す図である。−４５度、０度、４５度、９０度の軸それぞれに対して、反転処理が制御される（反転処理の有無および反転処理の種類（−４５°軸反転、０°軸反転、４５°軸反転、９０°軸反転）が切り替えられる）。
【００４７】
続いて、図８のステップＳ２０４において、画像処理部１０２（変更手段１０２ｂ）は、ステップＳ２０３で切り替えられた反転処理設定（反転の有無または反転の種類）に基づいて部分画像の反転処理を行う。そして、その反転処理（反転軸）に基づき、色成分の位置関係を、その反転処理（反転軸）に対応した位置関係に変更する。部分画像の反転処理を行うことにより、学習した１３５≦θ≦１８０（度）のアジムス範囲のフィルタを全アジムス範囲に適用することができるが、反転により部分画像のカラーフィルタアレイの配置が変化してしまう。学習したカラーフィルタアレイの配置は、Ｒ、Ｇ１、Ｇ２、Ｂのため、入力画像もこの配列に合わせなければ、正しいぼけ補正を行うことができない。このため、部分画像に施す反転処理の反転軸に基づいて、カラーフィルタアレイの配置を変更する。
【００４８】
図９において、Ｇ１とＧ２とを区別する必要はないため、９０≦θ≦１３５（度）のアジムス範囲では、カラーフィルタアレイの配置を変更しなくてよい。すなわち、第２象限において、カラーフィルタアレイの配置はそのままでよい。次に、０≦θ≦９０（度）の第１象限では、部分画像の第１列と最終列を削除することで、Ｒ、Ｇ１、Ｇ２、Ｂのカラーフィルタアレイの配置に変更することができる。第３象限において、第１行と最終行を削除することで、Ｒ、Ｇ１、Ｇ２、Ｂのカラーフィルタアレイの配置に変更することができる。第４象限において、第１行と最終行、および第１列と最終列を削除することで、Ｒ、Ｇ１、Ｇ２、Ｂに変更することができる。
【００４９】
ここで、行列成分の削除の代わりに、シフトを使用してもよい。例えば、第１列と最終列の削除の代わりに、第１列を最終列の後ろにシフトしてもカラーフィルタアレイの配置を変更することができる。逆に、最終列を第１列の前にシフトしてもよい。行に関しても同様である。また、削除とシフトのいずれを利用する場合も、部分画像の端では正しいぼけ補正結果が得られなくなる。このため、撮像画像から複数抽出される部分画像（複数の部分画像）は、互いにオーバーラップする部分（互いに共通する部分）を有することが好ましい。なお、複数の部分画像のうち少なくとも２枚の部分画像が互いに共通する部分を有していても良い。オーバーラップのない撮像画像の最も端の画素は、例えば、ぼけ補正後も撮像画像そのままの画素値を使用するとよい。なお、本実施例のステップＳ２０４では反転処理を行った後に色成分の位置関係の変更処理を行っているが、色成分の位置関係の変更処理を行った後に反転処理を行っても良い。また、本実施例では部分画像に施す反転処理の反転軸に基づいて入力画像における色成分の位置関係を決定したが、本発明はこれに限定されるものではない。撮像画像における補正対象となる領域の位置と反転軸は対応しているため、撮像画像における補正対象となる領域の位置から直接色成分の位置関係を決定しても良い。いずれにしても、ステップＳ２０４では、ステップＳ２０３で決定された反転軸に対応して、反転による色成分の位置関係の変化が打ち消されるように、入力画像の色成分の位置関係が決定されれば良い。
【００５０】
続いて、図８のステップＳ２０５において、画像処理部１０２は、部分画像に対して反転処理およびカラーフィルタアレイの配置を変更する処理を施すことによって生成された入力画像をＣＮＮへ入力し、補正画像を算出する。補正画像は、ぼけ補正された部分画像に対応する。ＣＮＮは、学習時に使用したネットワークと同じであり、ステップＳ２０１にて取得したフィルタを使用する。なお、フィルタの取得は、ステップＳ２０５より前であれば、いつ実行してもよい。
【００５１】
続いてステップＳ２０６において、画像処理部１０２は、補正画像の反転を戻す。すなわち画像処理部１０２は、補正画像に対して、ステップＳ２０４にて実行した反転処理と逆の反転処理を実行する。カラーフィルタアレイの配置を変更するためにシフトを使用した場合、シフトも戻す。なお、部分画像を反転する代わりに、ステップＳ２０５にて畳み込むフィルタを反転してもよい。この場合、ステップＳ２０６は不要である。ただし、フィルタを反転する場合でも、ステップＳ２０４で実行したカラーフィルタアレイの配置の変更は必要である。なお、部分画像、またはフィルタの反転とは、畳み込み演算の際にいずれか一方の配列の参照順序を反転することも含む。
【００５２】
続いてステップＳ２０７において、画像処理部１０２は、撮像画像の全体に対して補正画像の算出が完了したか否かを判定する。補正画像の算出が完了していない場合、ステップＳ２０２へ戻り、画像処理部１０２は新たな部分画像を抽出する。一方、補正画像の算出が完了した場合、ステップＳ２０８へ進む。
【００５３】
ステップＳ２０８において、画像処理部１０２（生成手段１０２ｃ）は、複数の補正画像を合成し、撮像画像のぼけが補正された補正撮像画像を生成する。すなわち画像処理部１０２は、撮像画像の各アジムス範囲を補正した８枚の補正画像を繋ぎ合わせることで、補正撮像画像を生成する。
【００５４】
以上の画像処理方法により、保持するフィルタのデータ量の増大を抑制し、高精度に撮像画像の光学的な性能劣化を補正することができる。なお、撮像画像から部分画像を実際に抽出することは、必須ではない。例えば、撮像画像の全体に異なる反転処理を実行し色成分の位置関係を変更して得られた入力画像のそれぞれに対して本実施例のぼけ補正を行って複数の補正画像を得る。その後、得られた各補正画像において正しく補正されている領域（各入力画像において補正対象とされた部分（部分画像に相当）に対応する領域）のみを切り出して補正撮像画像を生成してもよい。ただし、この場合には計算負荷が増大するため、計算負荷を考慮することが好ましい。
【実施例２】
【００５５】
次に、本発明の実施例２における画像処理方法および画像処理システムを説明する。なお本実施例では、補正工程（ぼけ補正）を実行する画像処理装置とは別に、学習工程を実行する学習装置が存在する。また、補正工程において、ＣＮＮだけでなく逆フィルタベースの補正処理を併用する。
【００５６】
まず、図１０および図１１を参照して、本実施例における画像処理システム３００について説明する。図１０は、画像処理システム３００のブロック図である。図１１は、画像処理システム３００の外観図である。画像処理システム３００は、学習装置３０１、画像処理装置３１１、撮像装置３２１、記録媒体３２２、表示装置３２３、および、出力装置３２４を備えて構成される。
【００５７】
学習装置３０１は、記憶部３０２および学習部３０３を有する。学習部３０３は、補正工程に必要なフィルタを算出する学習工程を実行する。この際、記憶部３０２に記憶された複数の訓練画像と正解画像を使用する。本実施例では、１枚の正解画像に対して２枚の訓練画像が存在する。２枚の訓練画像は、正解画像にぼけが作用したぼけ画像と、ぼけ画像をＷｉｅｎｅｒフィルタで補正した中間補正画像である。なお、後者の生成には、その他の手法、例えばＲＬ（Ｒｉｃｈａｒｄｓｏｎ−Ｌｕｃｙ）法やＭＡＰ（Ｍａｘｉｍｕｍ  ａ  ｐｏｓｔｅｒｉｏｒｉ）法等を用いても構わない。学習されたフィルタは、記憶部３０２に記憶される。
【００５８】
画像処理装置３１１は、補正工程を実行する装置であり、記憶部３１２および補正部３１３を有する。補正部３１３は、実施例１の反転手段１０２ａ、変更手段１０２ｂ、および、生成手段１０２ｃと同様の機能を有する。画像処理装置３１１は、有線もしくは無線で接続された撮像装置３２１、または半導体メモリ等の記録媒体３２２から、ＲＡＷ画像である撮像画像を取得し、記憶部３１２に記憶する。画像処理装置３１１で取得される撮像画像は、レンズ交換式の撮像装置で撮像された画像である。撮像装置３２１として、複数の種類の撮像装置が存在する。補正部３１３は、撮像画像の撮像に用いた撮像装置３２１と結像光学系に関する情報を撮像画像から取得し、対応する光学伝達関数（ＯＴＦ）の情報を記憶部３１２から読み出す。補正部３１３は、ＯＴＦからＷｉｅｎｅｒフィルタを算出し、撮像画像にＷｉｅｎｅｒフィルタを作用させた中間補正撮像画像を生成する。補正部３１３は、ＣＮＮを用いて、中間補正撮像画像と撮像画像とに基づいて補正撮像画像を生成する。
【００５９】
画像処理装置３１１と学習装置３０１は、有線または無線で接続されている。画像処理装置３１１は、記憶部３０２に記憶されたフィルタを読み出し、補正部３１３がそのフィルタを使用する。読み出すフィルタの選択にも、撮像画像の撮像に用いた撮像装置３２１と結像光学系に関する情報を用いる。補正画像は，記録媒体３２２、表示装置３２３、および、出力装置３２４の少なくとも一つに出力される。表示装置３２３は、例えば液晶ディスプレイやプロジェクタである。ユーザは、表示装置３２３を介して、編集途中の画像を確認しながら作業を行うことができる。出力装置３２４は、プリンタ等である。画像処理装置３１１は、その他に現像処理などを行う機能を有していてもよい。
【００６０】
次に、図４を参照して、学習部３０３で実行される学習工程に関して説明する。なお、実施例１と同様の説明は省略する。まずステップＳ１０１において、学習部３０３は、一括学習するぼけの条件を設定する。本実施例では、結像光学系だけでなく撮像装置３２１の種類も固定されていないため、実施例１よりもぼけの自由度が高い。結像光学系の種類、レンズステート、像高とアジムスに加え、画素ピッチと画素開口、カラーフィルタアレイの配置、光学ローパスフィルタの有無と種類にも幅がある。このため、ぼけの変化の幅が大きく、ＣＮＮで全てのぼけを補正するには、膨大なデータ量のフィルタが必要になる。
【００６１】
そこで、ＣＮＮに撮像画像（学習では、ぼけ画像）だけでなく、Ｗｉｅｎｅｒフィルタで補正した画像を入力する。これにより、ＣＮＮがぼけ補正を行うための情報が増えるため、幅広いぼけの変化に対してもロバストに高精度な補正が可能となる。このため本実施例では、結像光学系の種類のみで学習を分け、レンズステート、像高とアジムス、画素ピッチと画素開口、および光学ローパスフィルタに関して、全てのバリエーションを一括で学習する。カラーフィルタアレイの配置に関しては、特定の配置のみを学習し、撮像画像の抽出位置を工夫することで対応する。本実施例では、学習するカラーフィルタアレイの配置をＧ１、Ｒ、Ｂ、Ｇ２とする。
【００６２】
レンズステートは、図５に示されるＺＦＤ空間全域を使用する。像高とアジムスは、アジムス分割の説明図である図１２に示されるように、撮像画像４３１の第１象限に相当する範囲（斜線部４３３）を学習する。ここで、黒い点４３２は結像光学系の光軸に相当する点（基準点）を示す。本実施例において、実施例２よりもアジムス範囲が広いのは、光学ローパスフィルタに水平（垂直）２点分離を採用している撮像装置が存在するためである。画素ピッチも、複数種類の撮像装置で使われている画素ピッチを取り得る選択肢とする。光学ローパスフィルタは、無い場合、水平（垂直）２点分離、または、４点分離を取り得る選択肢とする。
【００６３】
続いて、図４のステップＳ１０２において、学習部３０３は、複数の訓練画像と正解画像を取得する。正解画像ごとに、ステップＳ１０１にて設定した条件内でランダムに選択したぼけを作用させ、ぼけ画像を生成する。必要に応じて、ノイズも付与する。生成したぼけ画像に対して、前述のぼけから算出したＷｉｅｎｅｒフィルタを適用し、ぼけが補正された中間補正画像を生成する。中間補正画像は、ぼけで非常に弱くなった（または消えた）高周波成分は補正されておらず、リンギングやノイズの増幅が発生している。中間補正画像とぼけ画像の２枚の画像を訓練画像とする。
【００６４】
続いてステップＳ１０３において、学習部３０３は、複数の訓練画像と正解画像とに基づいて、ＣＮＮのフィルタを決定する。本実施例では、図１３に示されるネットワーク構成を使用する。図１３は、本実施例におけるＣＮＮの説明図である。訓練画像であるぼけ画像４０１と中間補正画像４０２は、Ｒ、Ｇ１、Ｇ２、Ｂの４チャンネル画像に並び替えてから入力される。ぼけ画像４０１と中間補正画像４０２はチャンネル方向に積層され、合計８チャンネルの画像が訓練画像として、第１畳み込み層４０３へ入力される。第１畳み込み層４０３で複数のフィルタとの畳み込みとバイアスの和が算出される。各フィルタに対して算出された結果をまとめたものが、第１特徴マップ４０４である。第１特徴マップ４０４は、第２畳み込み層４０５に入力され、同様に新たな複数のフィルタとの畳み込みとバイアスの和が算出される。これを繰り返し、第Ｎ−１特徴マップ４１１を第Ｎ畳み込み層４１２に入力して得られた結果が、補正成分４１３である。補正画像４１４は、ぼけ画像４０１と補正成分４１３との和により求められる。補正画像４１４と正解画像の誤差を算出し、ＣＮＮのフィルタとバイアスを更新する。
【００６５】
続いて、図４のステップＳ１０４において、学習部３０３は、画像処理装置３１１で実行するぼけ補正の対象となる結像光学系の全てに対して、フィルタの算出が完了したか否かを判定する。全てのぼけの条件に対してフィルタの算出が完了した場合、ステップＳ１０５へ進む。一方、フィルタの算出が完了していない場合、ステップＳ１０１に戻り、新たな結像光学系に関してフィルタの学習を行う。ステップＳ１０５において、学習部３０３はフィルタを出力する。学習部３０３により算出され出力されたフィルタは、記憶部３０２に記憶される。
【００６６】
次に、図１４を参照して、画像処理装置３１１の補正部３１３で実行される撮像画像の補正工程（ぼけ補正）に関して説明する。図１４は、撮像画像の補正工程のフローチャートである。図１４の各ステップは、主に補正部３１３により実行される。なお、図１４において、図８を参照して説明した実施例１と同様の説明は省略する。
【００６７】
まずステップＳ３０１において、補正部３１３は、撮像画像を取得し、取得した結像光学系に対応するフィルタを記憶部３１２から読み出す。続いてステップＳ３０２において、補正部３１３は、撮像画像に対してＷｉｅｎｅｒフィルタを作用させ、中間補正撮像画像を生成する。Ｗｉｅｎｅｒフィルタによるぼけ補正を少ない保持データ量で行うには、例えば、特許文献１や特許文献２に開示された手法を用いることができる。Ｗｉｅｎｅｒフィルタの補正に伴うリンギングやノイズ増幅などの弊害は、後述のＣＮＮによって抑制されるため、Ｗｉｅｎｅｒフィルタのゲインは高くしてもよい。
【００６８】
続いてステップＳ３０３において、補正部３１３は、ステップＳ３０４にて抽出する部分画像の抽出位置（領域）を選択し、部分画像に対応する反転処理の反転軸を設定する（反転処理設定を切り替える）。フィルタの学習は、第１象限のぼけに関して行っているため、部分画像が第１象限の場合には反転処理は行わない。第２象限乃至第４象限に関してはそれぞれ、左右の反転（９０°軸反転）、上下左右の反転（０°軸反転と９０°軸反転）、上下の反転（０°軸反転）になる。学習と撮像画像のカラーフィルタアレイ配置の不一致や、反転に伴う部分画像のカラーフィルタアレイ配置の変化に対して、本実施例では、部分画像の抽出位置の選択を工夫することで対応する。
【００６９】
図１５を参照して、ステップＳ３０３における部分画像の抽出位置の選択例について説明する。図１５は、部分画像の抽出位置の説明図であり、撮像画像のカラーフィルタアレイの配置が、Ｒ、Ｇ１、Ｇ２、Ｂの場合を示している。学習したカラーフィルタアレイの配置はＧ１、Ｒ、Ｂ、Ｇ２のため、撮像画像の第１象限をそのまま補正することはできない。このため、第１象限では抽出位置４２１を選択する。すなわち本実施例では、部分画像の色成分の位置関係が反転軸に対応した位置関係となるように入力画像の色成分の位置関係を決定し、該位置関係に基づく抽出位置にて撮像画像を切り出すことで、部分画像を抽出する。これにより、抽出された部分画像のカラーフィルタアレイの配置は、Ｇ１、Ｒ、Ｂ、Ｇ２になり、学習したフィルタを使用することができる。同様に、第２象限乃至第４象限ではそれぞれ、抽出位置４２２乃至４２４を選択する。これにより、学習と入力画像のカラーフィルタアレイ配置の不一致と、反転処理に伴う部分画像のカラーフィルタアレイ配置の変化を打ち消すことができる。なお、図１５では、第ｎ（ｎ＝１〜４）象限全体を部分画像の抽出位置として選択しているが、これに限定されるものではなく、第ｎ象限を複数に分割し、それぞれを抽出位置としてもよい。
【００７０】
続いて、図１４のステップＳ３０４において、撮像画像と中間補正撮像画像のそれぞれから、部分画像を抽出する。部分画像は、ステップＳ３０３にて選択された抽出位置から抽出される。なお、中間撮像補正画像は、ステップＳ３０４の前であれば、いつ生成しても構わない。
【００７１】
続いてステップＳ３０５において、補正部３１３は、２枚の部分画像を入力画像としてＣＮＮへ入力し、補正画像を算出する。このとき、図１３を参照して説明したネットワークを使用することができる。図１３中のぼけ画像４０１は撮像画像の部分画像、中間補正画像４０２は中間補正画像の部分画像にそれぞれ相当する。各部分画像は、Ｒ、Ｇ１、Ｇ２、Ｂの４チャンネル画像に配列される。フィルタとしては、ステップＳ３０１で取得したフィルタを使用することができる。
【００７２】
本実施例において、補正部３１３は、ＣＮＮの入力画像および各畳み込み層で出力される特徴マップとフィルタとの畳み込み演算を行う際、フィルタの参照順序を反転する。
【００７３】
図１６は、本実施例における畳み込み演算の参照順序の説明図である。図１６（Ａ）は、入力画像または特徴マップを示す。図１６（Ｂ）、（Ｃ）はそれぞれ、３×３のフィルタを示す。ただし、フィルタのサイズはこれに限定されるものではない。通常の畳み込み演算では、図１６（Ａ）と図１６（Ｂ）の同じ番号に格納された値の積をとる。仮に、ステップＳ３０３にて決定された反転処理が、９０°軸反転である場合、フィルタの参照順序も９０°軸で反転される。このため、この際の畳み込みでは図１６（Ａ）と図１６（Ｃ）の同じ番号に格納された値が積をとられる。
【００７４】
続いて、図１４のステップＳ３０６において、補正部３１３は、撮像画像の全体に対して、補正画像の算出が完了したか否かを判定する。補正画像の算出が完了していない場合、ステップＳ３０３へ戻る。そして補正部３１３は、補正画像の算出されていない領域を抽出位置として新たに選択する。一方、補正画像の算出が完了している場合、ステップＳ３０７へ進む。ステップＳ３０７において、補正部３１３は、複数の補正画像を合成して、補正撮像画像を生成する。
【００７５】
本実施例によれば、保持するフィルタのデータ量の増大を抑制しつつ、高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理システムを実現することができる。なお本実施例では、ＣＮＮの入力画像に撮像画像と中間補正撮像画像の２枚の画像を使用するが、中間補正撮像画像のみから入力画像を抽出してもよい。ただし、撮像画像と中間補正撮像画像のそれぞれから入力画像を取得することで、より高精度なぼけ補正が可能となる。
【００７６】
また、図１３のネットワークのように、入力画像をＲ、Ｇ１、Ｇ２、Ｂのように各色のチャンネル画像に並び替える場合、Ｇ１とＧ２を区別する必要がある。このため、実施例１のように±４５°軸反転が存在し、ＲＢに対するＧ１とＧ２の相対位置が変化した場合、入力画像のチャンネルはＲＧ２Ｇ１Ｂの順で並べなくてはならない。順番を変更しない場合、各色成分における位置関係が崩れるため、ＣＮＮがエッジなどの構造を正しく認識できず、補正精度が低下する。
【００７７】
また、学習時のカラーフィルタアレイの配置（色成分の位置関係）やアジムス範囲が変化し得る場合、それらに関する情報を学習したフィルタに関連付けて（紐付けて）おいてもよい。ぼけ補正時にその情報を取得し、それに基づいて、部分画像の色成分の位置関係の変更や反転処理を制御することができる。また本実施例では、撮像素子の種類が変化するため、オプティカルブラックの信号値などが変化し得る。このため、ＣＮＮの入力画像は、オプティカルブラックの信号値を差し引き、規格化しておくことが好ましい。
【実施例３】
【００７８】
次に、本発明の実施例３における画像処理システムについて説明する。本実施例の画像処理システムは、画像処理を実体的に制御する第１装置としての撮像装置５００（ユーザ端末）と、撮像装置５００からの指示に基づき画像処理を行う第２装置としての画像処理装置（サーバ）で構成される。
【００７９】
まず、図１７および図１８を参照して、本実施例における画像処理システム５０について説明する。図１７は、画像処理システム５０のブロック図である。図１８は、画像処理システム５０の外観図である。画像処理システム５０は、撮像装置５００と画像処理装置５１０とを備えて構成される。
【００８０】
撮像装置５００は、被写体空間の像を撮像する撮像部５０１を有する。撮像部５０１は、結像光学系５０１ａおよび撮像素子５０１ｂを有する。撮像画像は、画像処理部５０２に入力され、Ｂａｙｅｒ配列のＲ、Ｇ１、Ｇ２、Ｂをそれぞれチャンネル成分とする４チャンネル画像に変換された後、記憶部５０３に記憶される。また撮像装置５００は、記憶部５０３に記憶された画像に関する補正処理を画像処理装置５１０に実行させるための要求とともに該画像を画像処理装置５１０に送信する。画像処理装置５１０は、記憶部５１１、学習部５１２、および、補正部５１３を有する。画像処理装置５１０は撮像装置５００から送信された要求を受信することを契機として、送信された画像に対する補正処理を実行する。
【００８１】
補正部５１３は、実施例１の反転手段１０２ａ、変更手段１０２ｂ、および、生成手段１０２ｃと同様の機能を有し、撮像時に発生した撮像画像のぼけを補正する。ぼけ補正の際、補正部５１３は、記憶部５１１に記憶されたフィルタを読み出して使用する。フィルタは、事前に学習部５１２で学習されたフィルタである。ぼけ補正された補正撮像画像は、再び撮像装置５００へ送信され、記録媒体５０５に記録される。ユーザが補正撮像画像を鑑賞する際、補正撮像画像は表示部５０４に表示される。一連の制御は、システムコントローラ５０６によって行われる。
【００８２】
次に、図４を参照して、学習部５１２で実行される学習工程に関して説明する。なお、実施例１または実施例２と同様の説明は省略する。まずステップＳ１０１において、学習部５１２は、一括学習するぼけの条件を設定する。撮像装置５００は、レンズ交換式の撮像装置ではなく、レンズ一体型の撮像装置である。このため、補正対象となる結像光学系は１種類のみである。撮像素子５０１ｂも変化せず、光学ローパスフィルタは存在しない。このため、変化する条件は、レンズステート、像高、および、アジムスである。レンズステートは、実施例１と同様に分割する。像高およびアジムスに関しては、アジムス分割の説明図である図１９に示されるように、第１象限（斜線部５３３）を４分割し、それぞれの領域に関して個別に学習を行う。ただし、分割数はこれに限定されるものではない。
【００８３】
続いて、図４のステップＳ１０２において、学習部５１２は、複数の訓練画像と正解画像を取得する。学習部５１２は、正解画像に対し、ステップＳ１０１にて定めた条件内のぼけを作用させて、訓練画像を生成する。訓練画像と正解画像は、Ｂａｙｅｒ配列のＲ、Ｇ１、Ｇ２、Ｂをそれぞれチャンネル成分とする４チャンネル画像である。続くステップＳ１０３乃至Ｓ１０５は実施例１と同様のため、説明を省略する。ＣＮＮとしては、図１と同様のネットワークを用いることができる。ただし、入出力画像は４チャンネル画像である。
【００８４】
次に、図８を参照して、補正部５１３で実行される補正工程に関して説明する。なお、実施例１と同様の説明は省略する。本実施例における補正工程は、画像処理装置５１０が、画像に関する補正処理の実行の要求を撮像装置５００からから受信したことを契機として行われる。ステップＳ２０１にて取得される撮像画像は、Ｂａｙｅｒ配列のＲ、Ｇ１、Ｇ２、Ｂをそれぞれチャンネル成分とする４チャンネル画像である。本実施例では、撮像画像における部分画像の位置に応じて異なるフィルタを使う必要がある。このため、フィルタは続くステップＳ２０２で取得される。
【００８５】
続いてステップＳ２０２において、補正部５１３は、撮像画像から部分画像を抽出する。すなわち補正部５１３は、第ｎ象限を４分割した領域のうち、いずれかを抽出する。そして補正部５１３は、抽出した領域に対応するフィルタを、記憶部５１１から読み込んで取得する。ステップＳ２０４は、実施例１と異なり、削除でなく画素のシフトを用いて、色成分の位置関係を変更する。図２０を参照して、これを説明する。
【００８６】
図２０は、色成分の位置関係の変更の説明図であり、学習と撮像素子５０１ｂのカラーフィルタアレイの配置が共にＲ、Ｇ１、Ｇ２、Ｂである場合、撮像画像の第２象限から部分画像を抽出する例である。図２０では、各チャンネルを並べて描画している。学習は、第１象限に対して行われているため、第２象限に対しては９０°軸反転が設定される。このため、反転処理後の部分画像はＧ１、Ｒ、Ｂ、Ｇ２となる。その結果、４チャンネル化した画像では、同一の位置にある各色成分の相対的な位置関係が変化している。これを修正するため、図２０のようにＧ１チャンネルとＢチャンネルの画像を水平方向に１画素シフトする。これは、実施例１においてＢａｙｅｒ配列の部分画像に対して、第１列を最終列の後方へシフトした場合と同じ作業に相当する。図８のステップＳ２０５からステップＳ２０８は、実施例１と同様であるため、それらの説明を省略する。画像処理装置５１０は、ステップＳ２０８により生成された補正撮像画像を撮像装置５００に送信する。
【００８７】
本実施例によれば、保持するフィルタのデータ量の増大を抑制し、高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理システムを実現することができる。さらに、本実施例では比較的処理負荷の大きな生成部１０２ｃによる処理をサーバ（画像処理装置５１０）で行う構成としたため、ユーザ端末（撮像装置５００）の処理能力が高くなくとも高性能な画像処理サービスを実現することが可能となる。
【００８８】
（変形例）
実施例３の画像処理システムでは、画像処理装置５１０に、実施例１の反転手段１０２ａ、変更手段１０２ｂ、生成手段１０２ｃと同様の機能を有する補正部５１３を設けているが、本発明はこれに限定されるものではない。反転手段１０２ａ、変更手段１０２ｂは撮像装置５００側に設け、画像処理装置５１０には生成手段１０２ｃを設けても良い。この場合、撮像装置５００は、画像処理に対する要求とともに、反転手段１０２ａ、変更手段１０２ｂによって反転処理および色成分の位置関係の変更処理が施された入力画像を画像処理装置５１０に送信するようにしても良い。これによっても実施例３同様に、ユーザ端末（撮像装置５００）の処理能力が高くなくとも高性能な画像処理サービスを実現することが可能となる。反転手段１０２ａ、変更手段１０２ｂにおける処理に比して生成手段１０２ｃにおける処理の方が負荷が高いためである。
【００８９】
以上述べたように各実施例において、画像処理装置（画像処理部１０２、画像処理装置３１１、５１０）は、ニューラルネットワークを用いて、撮像画像を補正する。反転決定手段（反転手段１０２ａ）は、撮像画像の一部である部分画像の撮像画像における位置に応じて、部分画像またはニューラルネットワークのフィルタに対する反転軸を決定する（第１工程：Ｓ２０３、Ｓ３０３）。色決定手段（変更手段１０２ｂ）は、反転軸に対応する、ニューラルネットワークに入力される画像における各色成分の画素の位置関係を決定する（第２工程：Ｓ２０４、３０４）。生成手段１０２ｃは、その位置関係に基づいて撮像画像から生成された入力画像を、ニューラルネットワークを用いて処理することで、入力画像を補正した補正画像を生成する（第３工程：Ｓ２０５〜Ｓ２０８、Ｓ３０５〜Ｓ３０７）。
【００９０】
好ましくは、反転決定手段は、基準点を中心とした位置に基づいて、反転軸を決定する。また好ましくは、反転決定手段は、撮像画像を基準点まわりに角度が４５度の整数倍ごとに分割した複数の領域のうち、部分画像を占める面積が最も大きい領域である最大領域に基づいて、抽出された複数の部分画像のそれぞれに対応する反転軸を決定する。
【００９１】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９２】
各実施例によれば、データ量の増大を抑制しながら高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理方法、画像処理装置、撮像装置、画像処理システム、プログラム、および、記憶媒体を提供することができる。
【００９３】
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００９４】
１０２  画像処理部（画像処理装置）
１０２ａ  反転手段（反転決定手段）
１０２ｂ  変更手段（色決定手段）
１０２ｃ  生成手段
【図１】
2020061129.tif 000003
【図２】
2020061129.tif 000004
【図３】
2020061129.tif 000005
【図４】
2020061129.tif 000006
【図５】
2020061129.tif 000007
【図６】
2020061129.tif 000008
【図７】
2020061129.tif 000009
【図８】
2020061129.tif 000010
【図９】
2020061129.tif 000011
【図１０】
2020061129.tif 000012
【図１１】
2020061129.tif 000013
【図１２】
2020061129.tif 000014
【図１３】
2020061129.tif 000015
【図１４】
2020061129.tif 000016
【図１５】
2020061129.tif 000017
【図１６】
2020061129.tif 000018
【図１７】
2020061129.tif 000019
【図１８】
2020061129.tif 000020
【図１９】
2020061129.tif 000021
【図２０】
2020061129.tif 000022