(57)【要約】      （修正有）【課題】画像から光学系の瞳に依存するぼけを高精度に補正し、鮮鋭化画像を得ることが可能な画像処理方法を提供する。【解決手段】画像処理方法は、光学系の第１の瞳を介して被写体空間を撮像することで得られた第１の画像と、光学系の第１の瞳とは異なる第２の瞳を介して被写体空間を撮像することで得られた第２の画像とを取得する工程Ｓ１０１と、多層のニューラルネットワークを用いて、第１の画像と第２の画像とに基づいて、光学系の瞳に依存するぼけが補正された鮮鋭化画像を生成する工程Ｓ１０７とを有する。【選択図】図５
2020030569.tif 000002
【特許請求の範囲】
【請求項１】
光学系の第１の瞳を介して被写体空間を撮像することで得られた第１の画像と、前記光学系の前記第１の瞳とは異なる第２の瞳を介して前記被写体空間を撮像することで得られた第２の画像と、を取得する工程と、
多層のニューラルネットワークを用いて、前記第１の画像と前記第２の画像とに基づいて、前記光学系の瞳に依存するぼけが補正された鮮鋭化画像を生成する工程と、を有することを特徴とする画像処理方法。
【請求項２】
前記光学系の瞳に依存するぼけは、前記瞳の透過率分布に依存するぼけであることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記第１の瞳の透過率分布は、前記第２の瞳の透過率分布と異なることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記光学系の瞳に依存するぼけは、前記光学系の収差、回折、または、デフォーカスに依存するぼけであることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理方法。
【請求項５】
前記第２の瞳は、前記第１の瞳の一部であることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理方法。
【請求項６】
前記第１の画像および前記第２の画像は、前記光学系を介して前記被写体空間を同時に撮像して得られた画像であることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理方法。
【請求項７】
前記第１の画像および前記第２の画像は、同一の撮像素子により撮像された画像であることを特徴とする請求項１乃至６のいずれか１項に記載の画像処理方法。
【請求項８】
前記第１の画像と前記第２の画像との明るさを合わせる処理を行う工程を更に有し、
前記鮮鋭化画像を生成する工程は、前記明るさを合わせる処理後の前記第１の画像および前記第２の画像に基づいて実行されることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理方法
【請求項９】
前記明るさを合わせる処理を行う工程は、前記第１の瞳と前記第２の瞳の透過率分布に関する情報に基づいて実行されることを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記明るさを合わせる処理を行う工程は、前記第１の画像および前記第２の画像のそれぞれの部分領域に関して算出された平均画素値に基づいて実行されることを特徴とする請求項８に記載の画像処理方法。
【請求項１１】
前記多層のニューラルネットワークは、ウエイトに関する情報を用いて構成されることを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理方法。
【請求項１２】
前記ウエイトに関する情報は、前記第１の画像または前記第２の画像の撮影時の前記光学系のＦ値に基づいて前記ウエイトに関する情報を取得する工程を更に有し、
前記鮮鋭化画像を生成する工程は、前記第１の画像と前記第２の画像と前記ウエイトに関する情報とに基づいて実行されることを特徴とする請求項１１に記載の画像処理方法。
【請求項１３】
前記第１の画像または前記第２の画像の撮影時の前記光学系のＦ値が所定のＦ値よりも大きい場合、前記鮮鋭化画像は、回折またはデフォーカスに依存するぼけが補正された画像であることを特徴とする請求項１乃至１２のいずれか１項に記載の画像処理方法。
【請求項１４】
前記第１の画像または前記第２の画像の撮影時の前記光学系のＦ値が所定のＦ値よりも小さい場合、前記第１の画像または前記第２の画像に鮮鋭化フィルタを作用させる処理を行う工程を更に有し、
前記鮮鋭化フィルタは、前記光学系の結像性能を表す光学特性に基づいて、前記第１の画像または前記第２の画像の鮮鋭化を行うフィルタであることを特徴とする請求項１乃至１３のいずれか１項に記載の画像処理方法。
【請求項１５】
前記第２の瞳が線対称となる軸と平行かつ前記第１の画像および前記第２の画像のそれぞれの基準点を通過する直線で、前記第１の画像および前記第２の画像をそれぞれ分割し、分割された前記第１の画像および前記第２の画像に対して反転処理を行う工程を更に有し、
前記鮮鋭化画像を生成する工程は、反転処理後の前記第１の画像と前記第２の画像とに基づいて実行されることを特徴とする請求項１乃至１４のいずれか１項に記載の画像処理方法。
【請求項１６】
光学系の第１の瞳を介して被写体空間を撮像することで得られた第１の画像と、前記光学系の前記第１の瞳とは異なる第２の瞳を介して前記被写体空間を撮像することで得られた第２の画像と、を取得する取得手段と、
多層のニューラルネットワークを用いて、前記第１の画像と前記第２の画像とに基づいて、前記光学系の瞳に依存するぼけが補正された鮮鋭化画像を生成する生成手段と、を有することを特徴とする画像処理装置。
【請求項１７】
光学系により形成された光学像を光電変換する撮像素子と、
請求項１６に記載の画像処理装置と、を有することを特徴とする撮像装置。
【請求項１８】
前記撮像素子は複数の画素を有し、
該複数の画素のそれぞれは、複数の光電変換部を有し、
前記複数の光電変換部のそれぞれは互いに異なる入射角で入射する光を受光して複数の信号を生成し、
前記撮像素子は、前記複数の信号を加算した加算信号に対応する前記第１の画像と、前記複数の信号の一つの信号または該複数の信号の一部を加算した加算信号に対応する前記第２の画像と、を出力することを特徴とする請求項１７に記載の撮像装置。
【請求項１９】
撮像装置に着脱可能なレンズ装置であって、
光学系と、
多層のニューラルネットワークに入力されるウエイトに関する情報を記憶する記憶手段と、を有し、
前記撮像装置は、
前記光学系の第１の瞳を介して被写体空間を撮像することで得られた第１の画像と、前記光学系の前記第１の瞳とは異なる第２の瞳を介して前記被写体空間を撮像することで得られた第２の画像と、を取得する取得手段と、
前記多層のニューラルネットワークを用いて、前記第１の画像と前記第２の画像と前記ウエイトに関する情報とに基づいて、前記光学系の瞳に依存するぼけが補正された鮮鋭化画像を生成する生成手段と、を有することを特徴とするレンズ装置。
【請求項２０】
請求項１乃至１５のいずれか１項に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項２１】
請求項２０に記載のプログラムを記憶していることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光学系の瞳を分割して撮像した画像に対して、瞳に依存するぼけを補正し、鮮鋭化する画像処理方法に関する。
【背景技術】
【０００２】
特許文献１には、ウィナーフィルタに基づく処理によって、撮像画像から収差によるぼけを補正し、鮮鋭化画像を得る方法が開示されている。特許文献２には、畳み込みニューラルネットワークを用いて、撮像画像のフォーカスずれ（デフォーカス）によるぼけを補正する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１２３５８９号公報
【特許文献２】特開２０１７−１９９２３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示された方法は、ウィナーフィルタに基づく処理（線型処理）を用いるため、高精度なぼけ補正を行うことができない。例えば、ぼけによって空間周波数スペクトルがゼロ、またはノイズと同程度の強度まで低下した被写体の情報を復元することはできない。また、特許文献１に開示された方法では、ぼけの補正と共にノイズも増幅する。
【０００５】
一方、特許文献２に開示された畳み込みニューラルネットワークでは、複数のフィルタとの畳込みと活性化関数に依る非線形変換が実行されるため、ゼロ近傍まで低下した被写体の空間周波数スペクトルを推定することができる。また、学習の際にノイズを考慮することで、ノイズの増幅を抑制したぼけ補正を行うことも可能である。しかし、ぼけ補正に畳込みニューラルネットワークを用いても、ぼけが大きく、画像の空間周波数スペクトルの劣化が激しい場合、充分な補正効果を得ることができない。
【０００６】
そこで本発明は、画像から光学系の瞳に依存するぼけを高精度に補正し、鮮鋭化画像を得ることが可能な画像処理方法、画像処理装置、撮像装置、レンズ装置、プログラム、および、記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面としての画像処理方法は、光学系の第１の瞳を介して被写体空間を撮像することで得られた第１の画像と、前記光学系の前記第１の瞳とは異なる第２の瞳を介して前記被写体空間を撮像することで得られた第２の画像とを取得する工程と、多層のニューラルネットワークを用いて、前記第１の画像と前記第２の画像とに基づいて、前記光学系の瞳に依存するぼけが補正された鮮鋭化画像を生成する工程とを有する。
【０００８】
本発明の他の側面としての画像処理装置は、光学系の第１の瞳を介して被写体空間を撮像することで得られた第１の画像と、前記光学系の前記第１の瞳とは異なる第２の瞳を介して前記被写体空間を撮像することで得られた第２の画像とを取得する取得手段と、多層のニューラルネットワークを用いて、前記第１の画像と前記第２の画像とに基づいて、前記光学系の瞳に依存するぼけが補正された鮮鋭化画像を生成する生成手段とを有する。
【０００９】
本発明の他の側面としての撮像装置は、光学系により形成された光学像を光電変換する撮像素子と前記画像処理装置とを有する。
【００１０】
本発明の他の側面としてのレンズ装置は、撮像装置に着脱可能なレンズ装置であって、光学系と、多層のニューラルネットワークに入力されるウエイトに関する情報を記憶する記憶手段とを有し、前記撮像装置は、前記光学系の第１の瞳を介して被写体空間を撮像することで得られた第１の画像と、前記光学系の前記第１の瞳とは異なる第２の瞳を介して前記被写体空間を撮像することで得られた第２の画像とを取得する取得手段と、前記多層のニューラルネットワークを用いて、前記第１の画像と前記第２の画像と前記ウエイトに関する情報とに基づいて、前記光学系の瞳に依存するぼけが補正された鮮鋭化画像を生成する生成手段とを有する。
【００１１】
本発明の他の側面としてのプログラムは、前記画像処理方法をコンピュータに実行させる。
【００１２】
本発明の他の側面としての記憶媒体は、前記プログラムを記憶している。
【００１３】
本発明の他の目的及び特徴は、以下の実施例において説明される。
【発明の効果】
【００１４】
本発明によれば、画像から光学系の瞳に依存するぼけを高精度に補正し、鮮鋭化画像を得ることが可能な画像処理方法、画像処理装置、撮像装置、レンズ装置、プログラム、および、記憶媒体を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】各実施例における鮮鋭化画像を生成するネットワーク構造を示す図である。
【図２】実施例１における撮像装置のブロック図である。
【図３】実施例１における撮像装置の外観図である。
【図４】実施例１における撮像部の説明図である。
【図５】実施例１における鮮鋭化画像の生成処理を示すフローチャートである。
【図６】実施例１における分割瞳と像高とヴィネッティングとの関係を示す図である。
【図７】実施例１における各像高とアジムスでの瞳分割の説明図である。
【図８】各実施例におけるウエイトの学習に関するフローチャートである。
【図９】実施例２における画像処理システムのブロック図である。
【図１０】実施例２における画像処理システムの外観図である。
【図１１】実施例２における撮像素子の構成図である。
【図１２】実施例２における鮮鋭化画像の生成処理を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照符号を付し、重複する説明は省略する。
【００１７】
まず、本発明の補正対象である光学系の瞳に依存するぼけについて説明する。光学系の瞳に依存するぼけとは、光学系の瞳の大きさおよび形状（強度分布）に影響するぼけを指す。光学系の瞳に依存するぼけには、光学系の収差、回折によるぼけ、および、デフォーカスによるぼけが含まれる。収差は、光学系の絞りを絞る（瞳が小さくなる）と小さくなる。逆に、回折によるぼけは瞳が小さくなると大きくなる。デフォーカスによるぼけは、瞳の形状を反映した形状になり、瞳が大きいほどデフォーカス量に対して大きくなる。一方、その他の被写体または撮像装置のぶれによるぼけ等は、光学系の瞳と無関係であるため、本発明の補正対象ではない。また、ぼけの補正とは、ぼけにより劣化した空間周波数スペクトルを復元することであり、画像を鮮鋭化する（鮮鋭化画像を生成する）ことを指す。
【００１８】
まず、各実施例にて具体的な説明を行う前に、本発明の要旨を述べる。本発明では、光学系の瞳（第１の瞳）で撮像された第１の画像と、前記瞳の一部（第２の瞳）で撮像された第２の画像から、ディープラーニングによって、光学系の瞳に依存するぼけが補正された鮮鋭化画像を得る。第１の画像は、瞳のサイズが大きいため、収差とデフォーカスによるぼけが大きいが、回折によるぼけは小さい。また、光量も多いため、ノイズも小さい。一方、第２の画像は、瞳のサイズが小さいため、収差とデフォーカスによるぼけは小さいが、回折によるぼけが大きく、またノイズも大きい。第１の画像および第２の画像の両方を用いることにより、互いの有用な情報をぼけ補正に利用し、鮮鋭かつノイズの小さい鮮鋭化画像を得ることができる。なお各実施例において、第２の瞳は第１の瞳の一部であるが、本発明はこれに限定されるものではなく、第２の瞳の大きさや形状（透過率分布）が第１の瞳と異なればよい。
【実施例１】
【００１９】
まず、図２および図３を参照して、本発明の実施例１における撮像装置について説明する。図２は、撮像装置１００のブロック図である。図３は、撮像装置１００の外観図である。なお、本実施例の撮像装置１００は、カメラ本体とカメラ本体に一体的に構成されたレンズ装置とを備えて構成されるが、これに限定されるものではない。本発明は、カメラ本体（撮像装置本体）と、カメラ本体に着脱可能なレンズ装置（交換レンズ）とを備えて構成される撮像システムにも適用可能である。まず、撮像装置１００の各部の概略を説明し、その詳細については後述する。
【００２０】
図２に示されるように、撮像装置１００は、被写体空間の像を画像（撮影画像）として取得する撮像部１０１を有する。撮像部１０１は、被写体空間からの入射光を集光する光学系（撮像光学系）１０１ａと、複数の画素を有する撮像素子１０１ｂとを有する。撮像素子１０１ｂは、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）センサやＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）センサである。
【００２１】
図４は、撮像部１０１の説明図である。図４（Ａ）は、撮像部１０１の断面図を示し、一点鎖線は軸上光束を表している。図４（Ｂ）は、撮像素子１０１ｂの上面図である。撮像素子１０１ｂは、マイクロレンズアレイ１２２と複数の画素１２１とを有する。マイクロレンズアレイ１２２は、光学系１０１ａを介して被写体面１２０と共役の位置に配置されている。図４（Ｂ）に示されるように、マイクロレンズアレイ１２２を構成するマイクロレンズ１２２（マイクロレンズ１２２ａのみ表記し、１２２ｂ以降は省略）は、複数の画素１２１（画素１２１ａのみ表記し、１２１ｂ以降は省略）のそれぞれと対応している。ここで、複数の部位をまとめて指定する際は番号のみを付し、そのうちの１つを示す際は番号とａなどの記号を付す。
【００２２】
複数の画素１２１のそれぞれは、光学系１０１ａを介して形成された光学像を光電変換する第１の光電変換部１２３および第２の光電変換部１２４を有する。これにより、例えば画素１２１ａに入射した光は、その入射角に依存して、第１の光電変換部１２３ａと第２の光電変換部１２４ａとに分離して受光される（第１の光電変換部１２３ａと第２の光電変換部１２４ａは、互いに異なる入射角で入射する光を受光する）。光の入射角は、その光が光学系１０１ａにおける瞳のいずれの位置を通過したかにより決定される。このため、光学系１０１ａの瞳は２つの光電変換部により２つの部分瞳に分割され、一つの画素内の２つの光電変換部は互いに異なる視点（瞳の位置）から被写体空間を観察した情報を取得する。なお本実施例において、瞳の分割方向は水平方向であるが、これに限定されるものではなく、垂直方向や斜め方向などの他の方向であってもよい。
【００２３】
撮像素子１０１ｂは、第１の光電変換部１２３で取得された信号（第２の画像、Ａ画像）と、この信号（Ａ画像）と第２の光電変換部１２４で取得された信号（第３の画像、Ｂ画像）との加算信号（第１の画像、Ａ＋Ｂ画像）を出力する。このように本実施例において、第１の画像および第２の画像は、光学系１０１ａを介して被写体空間を同時に撮像して得られた画像である。また本実施例において、第１の画像および第２の画像は、同一の撮像素子１０１ｂにより撮像された画像である。
【００２４】
Ａ画像およびＡ＋Ｂ画像は、画像処理部１０２に出力される。画像処理部（画像処理装置）１０２は、情報取得部（取得手段）１０２ａおよび画像生成部（生成手段）１０２ｂを有し、本実施例の画像処理方法（光学系１０１ａの瞳に依存するぼけを補正する鮮鋭化処理）を実行する。この際、画像処理部１０２は、記憶部（記憶手段）１０３に記憶されたウエイト情報（ウエイトに関する情報）を取得し、画像生成部１０２ｂがウエイト情報を用いることで鮮鋭化画像を生成する。なお、この処理の詳細に関しては後述する。生成された鮮鋭化画像は、記録媒体１０５に保存される。ユーザから撮像画像の表示に関する指示が出された場合、保存された鮮鋭化画像が読み出され、表示部１０４に表示される。なお、記録媒体１０５に既に保存されたＡ画像とＡ＋Ｂ画像とを読み出し、画像処理部１０２で鮮鋭化画像を生成してもよい。以上の一連の制御は、システムコントローラ１０６によって行われる。
【００２５】
次に、図５を参照して、画像処理部１０２で実行される鮮鋭化処理（鮮鋭化画像の生成）に関して説明する。画像処理部１０２は、鮮鋭化処理の際に、事前に学習されたウエイト情報を用いるが、この学習に関する詳細については後述する。図５は、鮮鋭化画像の生成方法を示すフローチャートである。図５の各ステップは、システムコントローラ１０６の指令に基づいて画像処理部１０２により実行される。
【００２６】
まず、ステップＳ１０１において、情報取得部１０２ａは、Ａ＋Ｂ画像（第１の画像）２０１とＡ画像（第２の画像）２０２とを取得する。Ａ画像２０２は、光学系１０１ａの瞳の一部である部分瞳（第２の瞳）を通過する光束に基づいて被写体空間を撮像して得られた画像である。Ａ＋Ｂ画像２０１は、光学系１０１ａの瞳（第１の瞳）を通過する光束に基づいて被写体空間を撮像して得られた画像である。本実施例において、第２の瞳は、第１の瞳に含まれ、第１の瞳の一部である。第２の瞳は第１の瞳より小さいため、Ａ画像はＡ＋Ｂ画像よりも収差およびデフォーカスのそれぞれに起因するぼけが小さく、逆に回折に起因するぼけおよびノイズが大きい。本実施例によれば、Ａ＋Ｂ画像とＡ画像との両方を用いることで、互いの有用な情報を後述のぼけ補正に利用し、鮮鋭かつノイズの小さい鮮鋭化画像を生成することができる。また、図４に示される撮像部１０１の構成を用いることで、互いに異なる瞳の大きさのＡ＋Ｂ画像とＡ画像とを同時に撮像することができる。これによって、被写体の動きによる画像間のずれ等を回避することができる。
【００２７】
続いてステップＳ１０２において、画像生成部１０２ｂは、Ａ＋Ｂ画像とＡ画像の明るさを合わせる処理を行う。Ａ画像は、Ａ＋Ｂ画像に対して瞳が小さいため、暗い画像となっている。また、光軸上以外の像高ではヴィネッティングが発生するため、像高とアジムスとにより、Ａ＋Ｂ画像とＡ画像の明るさの比（光量比）は変化する。これに関し、図６を参照して説明する。
【００２８】
図６は、分割瞳と像高とヴィネッティングとの関係を示す図である。図６（Ａ）は、光学系１０１ａの光軸上における瞳を示している。図６中の破線は、２つの光電変換部により分割される瞳の分割線を表している。図６（Ｂ）は、図６（Ａ）の場合とは異なる像高における瞳を示している。図６（Ａ）では２つの分割瞳の光量は均一だが、図６（Ｂ）ではヴィネッティングにより両者の光量比に偏りが生じている。図６（Ｃ）は、図６（Ｂ）と同一像高（光軸に垂直な平面内で光軸から同一の距離の位置）でアジムス（光軸に垂直な平面内で光軸を回転軸とした方位角）が異なる場合である。この際も部分瞳の光量比が変化する。このため、Ａ＋Ｂ画像とＡ画像を後述の多層のニューラルネットワークへ入力すると、画像内の像高およびアジムスにより２つの画像の明るさの関係がばらつくことにより、生成される鮮鋭化画像の精度が低下する可能性がある。したがって、本実施例では、Ａ＋Ｂ画像とＡ画像の明るさを合わせる処理を実行することが好ましい。なお本実施例では、Ａ画像の明るさをＡ＋Ｂ画像に合わせるが、逆でも構わない。
【００２９】
２つの画像の明るさを合わせる方法として、以下に２つの例を挙げる。１つ目は、第１の瞳および第２の瞳の光量比（第１の瞳と第２の瞳の透過率分布の比）に基づいて、明るさを合わせる方法である。Ａ画像の各像高とアジムスの画素に対して、第２の瞳に対する第１の瞳の光量比を記憶部１０３から読み出して積をとり、Ａ＋Ｂ画像と明るさを合わせる。光量比は１以上の値であり、像高とアジムスによって異なる値を有する。また、各像高とアジムスに対して、第１の瞳と第２の瞳それぞれの透過率分布を積分した第１の積分値と第２の積分値を取得し、明るさ合わせに使用してもよい。第１の画像の各像高とアジムスの画素に対して、対応する第１の積分値の逆数をかけ、第２の画像の各像高とアジムスの画素に対して、対応する第２の積分値の逆数をかけることでも、明るさを合わせることができる。
【００３０】
２つ目は、Ａ＋Ｂ画像とＡ画像の局所的な平均画素値を用いる方法である。Ａ＋Ｂ画像とＡ画像は、収差やノイズが異なり、また視差を有するが、同じ被写体を撮像しているため、部分領域における平均画素値の比は、前述の光量比におおよそ対応する。このため、例えば、Ａ＋Ｂ画像とＡ画像に平滑化フィルタをかけて各画素に対して平均画素値を求め、同一位置の画素における平均画素値の比から、この位置での光量比を求め、明るさを合わせることができる。ただし、平均画素値を求める際、輝度飽和している画素が含まれている場合、光量比から値が乖離する可能性がある。このため本実施例では、輝度飽和した画素を除いて平均画素値を求めることが好ましい。仮に、輝度飽和の面積が大きく、その位置での平均画素値が求められない場合、周辺で算出された光量比から補間を行い、その位置に対応する光量比を算出することができる。部分領域の大きさは、ぼけの大きさと、第１の瞳と第２の瞳の基線長（重心位置の間の長さ）に基づいて決定することが好ましい。なおステップＳ１０２は、ステップＳ１０１とステップＳ１０７との間であれば、いつ実行してもよい。
【００３１】
続いて、図５のステップＳ１０３において、画像生成部１０２ｂは、Ａ＋Ｂ画像またはＡ画像のＦ値（絞り値）が閾値以下（所定のＦ値以下）であるか否かを判定する。なお本実施例では、Ａ＋Ｂ画像を撮像した際の光学系１０１ａのＦ値を判定基準として用いる。Ｆ値が閾値以下の場合、ステップＳ１０４へ進む。一方、Ｆ値が閾値よりも大きい場合、ステップＳ１０６へ進む。Ｆ値が閾値より小さい場合、ユーザはポートレート等のように、メインの被写体以外はデフォーカスでぼかすことを意図していたと考えられる。逆に、Ｆ値が閾値より大きい場合、ユーザは被写界深度を深くし、パンフォーカスに近い画像を撮像することを意図していたと考えられる。またＦ値が大きい場合、収差が充分に小さく、結像性能の劣化は主に回折に起因するぼけとなる。このため、Ｆ値が閾値より大きい場合には主に回折およびデフォーカスに起因するぼけを補正し、Ｆ値が閾値以下の場合には主に収差を補正するように、鮮鋭化の対象を切り替えることが好ましい。
【００３２】
続いてステップＳ１０４において、画像生成部１０２ｂは、多層のニューラルネットワークを使用する前の前処理として、Ａ＋Ｂ画像またはＡ画像に対して、鮮鋭化フィルタを作用させる。ここで、鮮鋭化フィルタは、光学系１０１ａの結像性能を表す光学特性（光学伝達関数または点像強度分布）に基づいて鮮鋭化を行うフィルタである。鮮鋭化フィルタとしては、ウィナーフィルタ等の逆フィルタが用いられる。本実施例では、Ａ＋Ｂ画像に対して鮮鋭化フィルタを作用させるが、Ａ画像にも同様に鮮鋭化フィルタを作用させてもよい。この場合、第１の光電変換部１２３で取得される像の光学伝達関数または点像強度分布に基づいて生成された鮮鋭化フィルタを用いる。鮮鋭化フィルタは、記憶部１０３に記憶された光学伝達関数に関する情報を用いて、各像高とアジムスに対して生成される。なお、各像高とアジムスに対する鮮鋭化フィルタ自体を記憶部１０３に記憶しておいてもよい。鮮鋭化フィルタの補正対象は収差であるため、デフォーカスによるぼけの補正は含まない。近似的に、Ａ＋Ｂ画像全体に対して、結像面での光学特性から求められた鮮鋭化フィルタを作用させてもよい。
【００３３】
本実施例の鮮鋭化フィルタは、ウィナーフィルタである。このため、ぼけによってゼロ近傍まで低下したＡ＋Ｂ画像の空間周波数スペクトルは復元することができない。また、ノイズの増幅やリンギング等の弊害も発生している。しかし、撮像時のぼけたままのＡ＋Ｂ画像ではなく、ウィナーフィルタを作用させたＡ＋Ｂ画像を後述のニューラルネットワークへ入力することで、ぼけの形状変化に対するニューラルネットワークの補正効果（鮮鋭化と弊害の抑制）をロバストにできる。特に、収差によるぼけは、光学系１０１ａのズーム、合焦距離、像高とアジムスによって大きく変化し得るため、ロバスト性を向上させることが好ましい。ロバスト性が低い場合、収差の形状ごとに個別でニューラルネットワークを学習する必要があり、記憶部１０３に保持するウエイト情報の容量が増大する。なお、回折によるぼけは、光学系１０１ａのズーム、合焦距離、像高とアジムスによる変化がほぼなく、Ｆ値によってその大きさのみが変わる。また、Ｆ値が大きい場合、被写界深度が深いため、デフォーカスによるぼけも変化が小さい。このため本実施例では、Ｆ値が閾値（所定のＦ値）よりも大きい（回折とデフォーカスのぼけを補正する）場合、相対的にロバスト性の必要性は低いため、鮮鋭化フィルタを用いない。ただし、Ｆ値が大きい場合でも前処理として鮮鋭化フィルタを作用させてもよい。また本実施例において、ウィナーフィルタ以外の鮮鋭化フィルタを用いることもできる。
【００３４】
続いてステップＳ１０５において、画像生成部１０２ｂは、光軸上の物点に対する第２の瞳が線対称となる軸と平行で、かつＡ＋Ｂ画像とＡ画像のそれぞれの基準点（光軸、または光軸の近傍）を通過する直線で、Ａ＋Ｂ画像とＡ画像のそれぞれを分割する。また画像生成部１０２ｂは、分割されたＡ＋Ｂ画像とＡ画像、またはウエイト情報に対して、反転を制御する前処理（反転処理）を施す。本実施例では、光学系１０１ａの瞳は、図６（Ａ）に示されるように水平方向に２分割されている。このため、Ａ＋Ｂ画像とＡ画像をそれぞれ上下に２分割し、一方の画像（又はウエイト情報）を反転する。そして、反転処理後のＡ＋Ｂ画像とＡ画像と（又は、反転処理後のウエイト情報）に基づいて鮮鋭化処理を行うことにより、ウエイト情報の容量を削減しつつ鮮鋭化画像を生成することができる。これに関して、図７を参照して説明する。
【００３５】
図７は、各像高とアジムスでの瞳分割の説明図である。図７はＡ画像を示し、×印の像高およびアジムスにおける分割瞳を×印の横に描画している。図７中の破線は瞳の分割線（分割直線）である。図７に示されるように、本実施例では一点鎖線を軸としてＡ画像の上下いずれか一方を反転すると、他方の瞳分割と重なり、線対称になっている。このため、収差、回折、または、デフォーカスのぼけも同様に、一点鎖線に対して線対称となる。したがって、一点鎖線の上下いずれか一方の領域に関して、ぼけを補正するウエイト情報を保持しておけば、他方は画像またはウエイト情報を反転することで鮮鋭化画像を推定することができる。
【００３６】
ここで、反転とは、画像とウエイト情報との積を取る際の参照の順序を逆にする場合を含む。また、Ａ＋Ｂ画像は瞳が円形のため、光軸を中心にして回転対称な収差を有する。このため、一点鎖線に対して線対称な収差でもある。したがって、Ａ画像と同様にウエイト情報の削減が可能である。本実施例では、水平方向に瞳を分割しているため、対称軸は水平な直線である。仮に、垂直方向に瞳を分割すると、対称軸も垂直な直線になる。これをさらに一般的に表現すると、以下のようになる。分割した瞳の関係が画像全体に対して線対称となる軸は、光軸を通過し、かつ光軸上で第２の瞳が線対称になる軸と平行である。この軸で分割されたＡ＋Ｂ画像とＡ画像に対し、一方の分割領域のみウエイト情報を保持しておけば、他方は反転を制御することで同じウエイト情報で鮮鋭化処理を行うことができる。なお、ステップＳ１０４と同様に、回折やデフォーカスのぼけに対しても、ステップＳ１０５を実行してもよい。また、ステップＳ１０４とステップＳ１０５は、順番が逆でもよい。
【００３７】
続いてステップＳ１０６において、情報取得部１０２ａは、第１の画像または第２の画像の撮影時の光学系のＦ値に基づいて、ウエイト情報を記憶部１０３から取得する。ステップＳ１０３にて説明したように、本実施例では、Ｆ値が閾値よりも小さい場合、収差に起因するぼけを補正するウエイトを取得する。一方、Ｆ値が閾値よりも大きい場合、回折とデフォーカスに起因するぼけを補正するウエイト情報を取得する。それぞれのウエイト情報は、異なる学習データにより学習されており、その詳細については後述する。なおステップＳ１０６は、ステップＳ１０３とステップＳ１０７との間であれば、いつ実行してもよい。
【００３８】
続いてステップＳ１０７において、画像生成部１０２ｂは、多層のニューラルネットワークを用いて鮮鋭化画像を生成する。多層のニューラルネットワークには、（前処理後の）第１の画像および第２の画像とウエイト情報とを入力する。本実施例では、多層のニューラルネットワークとして、畳み込みニューラルネットワーク（ＣＮＮ：Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）が用いられる。ただし、本発明はこれに限定されるものではなく、ＧＡＮ（Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋ）等の他の方法を用いてもよい。
【００３９】
ここで、図１を参照して、ＣＮＮにより鮮鋭化画像２１３を生成する工程について詳述する。図１は、鮮鋭化画像を生成するネットワーク構造を示す図である。ＣＮＮは、複数の畳み込み層を有する。本実施例において、入力画像２０１は、（前処理された）第１の画像と第２の画像がチャンネル方向に連結された画像である。第１の画像と第２の画像のそれぞれが複数のカラーチャンネルを有している場合、そのチャンネル数の２倍のチャンネル数を持つ画像となる。入力画像２０１は、第１畳み込み層２０２で複数のフィルタとの畳み込みとバイアスの和を算出される。各層におけるフィルタおよびバイアスの値は、ウエイト情報により決定される。第１の特徴マップ２０３は、各フィルタに対して算出された結果をまとめたものである。第１の特徴マップ２０３は、第２の畳み込み層２０４に入力され、同様に新たな複数のフィルタとの畳み込みとバイアスの和が算出される。これを繰り返し、第Ｎ−１の特徴マップ２１１を第Ｎの畳み込み層２１２に入力して得られた結果が、鮮鋭化画像２１３である。ここで、Ｎは３以上の自然数である。一般には３層以上の畳み込み層を有するＣＮＮが、ディープラーニングに該当すると言われる。各畳み込み層では、畳み込みの他に活性化関数を用いた非線型変換が実行される。活性化関数の例としては、シグモイド関数やＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ）等がある。実施例１では以下の式（１）で表されるＲｅＬＵを用いる。
【００４０】
【数１】
2020030569.tif 000003
【００４１】
式（１）において、ｍａｘは、引数のうち最大値を出力するＭＡＸ関数を表す。ただし、最後の第Ｎ畳み込み層では、非線形変換を実行しなくてもよい。以上の処理により、画像から光学系の瞳に依存するぼけを高精度に補正し、鮮鋭化画像を得ることが可能になる。
【００４２】
次に、図８を参照して、ウエイト情報の学習に関して説明する。図８は、ウエイト情報の学習に関するフローチャートである。本実施例において、学習は撮像装置１００以外の画像処理装置で事前に実行され、その結果（複数のウエイト情報）が記憶部１０３に記憶されている。ただし本発明は、これに限定されるものではなく、撮像装置１００内に学習を実行する部位が存在していてもよい。
【００４３】
まず、ステップＳ２０１において、画像処理装置は、複数の学習ペアを取得する。学習ペアとは、ＣＮＮの入力画像としてのＡ＋Ｂ画像およびＡ画像と、ＣＮＮの出力画像（鮮鋭化画像）として得たい画像（正解画像）である。学習ペアの入力画像と正解画像との関係によって、ＣＮＮが補正する対象は変化する。Ｆ値が閾値より小さい場合、補正する対象のぼけは収差である。また、ノイズも抑制したいため、入力画像と正解画像は、収差とノイズの有無が異なる画像である。デフォーカスによるぼけは補正しないため、正解画像の被写界深度は、Ａ＋Ｂ画像と同じになるようにする。Ｆ値が閾値より大きい場合、回折とデフォーカスによるぼけとノイズの有無が異なる画像となる。
【００４４】
ここで、学習ペアの生成方法に関して説明する。まず、入力画像（Ａ＋Ｂ画像とＡ画像）と正解画像を生成する元となるソースデータを用意する。ソースデータは、充分に高い空間周波数までスペクトル強度を有する３次元モデル、または２次元画像である。３次元モデルは、ＣＧ（コンピュータ・グラフィクス）等で生成することができる。２次元画像は、充分に結像性能の良い光学系で撮像した画像、または、画像を縮小することで高周波成分を強めた画像であってもよい。Ａ画像とＢ画像は、撮像部１０１でソースデータを撮像したシミュレーションを行うことで得られる。撮像シミュレーションでは、光学系１０１ａと撮像素子１０１ｂで発生するぼけとノイズを付与する。
【００４５】
Ａ＋Ｂ画像は、生成されたＡ画像とＢ画像とを加算して得られる。加算により生成することで、Ａ＋Ｂ画像とＡ画像のノイズが現実に即した関係（互いに独立なノイズではない）となる。正解画像は、補正したい対象が除かれた撮像シミュレーションを行うことで生成可能である。Ｆ値が閾値より小さい場合、無収差の光学系とノイズのない撮像素子を用いてソースデータを撮像した画像である。Ｆ値が閾値より大きい場合、回折とデフォーカスによるぼけとノイズがない状態で、ソースデータを撮像した画像である。ソースデータが２次元画像の場合、様々なデフォーカス距離に２次元画像を配置して撮像シミュレーションを行い、それらに対応した複数の学習ペアを作成することが好ましい。ただし、２次元画像を合焦距離のみに配置して学習ペアを作成しても、近似的に所望の対象を補正可能なＣＮＮを生成することができる。Ｆ値が閾値より小さい場合、学習ペアにデフォーカスのぼけが存在せず、学習されたＣＮＮもデフォーカスのぼけを補正しないためである（ＣＮＮは全ての被写体が合焦距離にいるとして収差を補正する）。
【００４６】
Ｆ値が閾値より大きい場合、様々なＦ値の回折によるぼけに対して学習ペアを作成することで、ぼけの大小にロバストな補正が可能となるＣＮＮが学習される。これにより、被写界深度の深い画像の小さなデフォーカスのぼけを同時に補正することが可能となる。また、図５のステップＳ１０５のように、Ａ＋Ｂ画像とＡ画像をそれぞれ分割する場合、その分割された一部の画像の範囲（像高とアジムス）だけぼけを学習すればよい。このため、該当する像高とアジムスのぼけに対してのみ、学習ペアを作成すればよい。なお、図５のステップＳ１０２のように、Ａ＋Ｂ画像とＡ画像の明るさ合わせを行う場合、学習ペアにも同様の明るさ合わせを実行する。
【００４７】
続いて、図８のステップＳ２０２において、画像処理装置は、複数の学習ペアから学習を行い、ウエイト情報を生成する。学習の際には、ステップＳ１０７の鮮鋭化画像の生成と同じネットワーク構造を用いる。本実施例では、図１に示されるネットワーク構造に対してＡ＋Ｂ画像とＡ画像を入力し、その出力結果（推定された鮮鋭化画像）と正解画像との誤差を算出する。この誤差が最小になるように、誤差逆伝播法（Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）等を用いて、各層で用いるフィルタとバイアス（ウエイト情報）を更新して最適化する。フィルタとバイアスの初期値はそれぞれ任意であり、例えば乱数から決定することができる。または、各層ごとに初期値を事前学習するＡｕｔｏ  Ｅｎｃｏｄｅｒ等のプレトレーニングを行ってもよい。
【００４８】
学習ペアを全てネットワーク構造へ入力し、それら全ての情報を使って学習情報を更新する手法をバッチ学習と呼ぶ。ただし、この学習方法は学習ペアの数が増えるにつれて、計算負荷が膨大になる。逆に、学習情報の更新に１つの学習ペアのみを使用し、更新ごとに異なる学習ペアを使用する学習手法をオンライン学習と呼ぶ。この手法は、学習ペアが増えても計算量が増大しない利点があるが、その代わりに１つの学習ペアに存在するノイズの影響を大きく受ける。このため、これら２つの手法の中間に位置するミニバッチ法を用いて学習することが好ましい。ミニバッチ法は、全学習ペアの中から少数を抽出し、それらを用いて学習情報を更新する。次の更新では、異なる小数の学習ペアを抽出して使用する。これを繰り返すことにより、バッチ学習とオンライン学習の欠点を小さくすることができる。
【００４９】
続いてステップＳ２０３において、画像処理装置は、学習されたウエイト情報を出力する。本実施例では、Ｆ値が閾値以下の場合と閾値よりも大きい場合の少なくとも２つのケースに対して、同様の学習を行い、複数のウエイト情報を出力する。また本実施例では、ウエイト情報は記憶部１０３に記憶される。
【００５０】
なお、ウエイト情報の学習および鮮鋭化画像の生成を行う際に扱う画像は、ＲＡＷ画像または現像後の画像のいずれでもよい。Ａ＋Ｂ画像とＡ画像が符号化されている場合、復号してから学習および生成を行う。学習に使用した画像と鮮鋭化画像生成時の入力画像でガンマ補正の有無や、ガンマ値が異なる場合、入力画像を処理して学習の画像に合わせることが好ましい。また、Ａ＋Ｂ画像とＡ画像（学習の際は正解画像も）は、ニューラルネットワークへ入力する前に信号値を規格化しておくことが好ましい。規格化しない場合、学習と鮮鋭化画像生成時にｂｉｔ数が異なっていると、鮮鋭化画像を正しく推定することができない。また、ｂｉｔ数によってスケールが変化するため、学習時の最適化で収束に影響を及ぼす可能性もある。規格化には、信号が実際に取り得る最大値（輝度飽和値）を用いる。例えばＡ＋Ｂ画像が１６ｂｉｔで保存されていたとしても、輝度飽和値は１２ｂｉｔの場合等があり、この際は１２ｂｉｔの最大値（４０９５）で規格化しなければ信号の範囲が０〜１にならない。また、規格化の際にはオプティカルブラックの値を減算することが好ましい。これにより、実際に画像が取り得る信号の範囲をより０〜１に近づけることができる。具体的には、以下の式（２）に従って規格化することが好ましい。
【００５１】
【数２】
2020030569.tif 000004
【００５２】
式（２）において、ｓはＡ＋Ｂ画像（またはＡ画像もしくは正解画像）の信号、ｓＯＢはオプティカルブラックの信号値（画像が取り得る信号の最小値）、ｓｓａｔｕは信号の輝度飽和値、ｓｎｏｒは規格化された信号を示す。
【００５３】
本実施例によれば、画像から光学系の瞳に依存するぼけを高精度に補正し、鮮鋭化画像を得ることが可能な画像処理方法、画像処理装置、撮像装置、および、レンズ装置を提供することができる。
【実施例２】
【００５４】
次に、本発明の実施例２における画像処理システムについて説明する。本実施例では、鮮鋭化画像を推定する画像処理装置、撮像画像を取得する撮像装置、および、学習を行うサーバが個別に存在している。
【００５５】
図９および図１０を参照して、本実施例における画像処理システムについて説明する。図９は、画像処理システム３００のブロック図である。図１０は、画像処理システム３００の外観図である。図９および図１０に示されるように、画像処理システム３００は、撮像装置３０１、画像処理装置３０２、サーバ３０６、表示装置３０９、記録媒体３１０、および、出力装置３１１を備えて構成される。
【００５６】
撮像装置３０１の基本構成は、鮮鋭化画像を生成する画像処理部、および撮像部を除いて、図２に示される撮像装置１００と同様である。なお、本実施例の撮像装置３０１は、レンズ装置（光学系）の交換が可能である。撮像装置３０１の撮像素子は、図１１に示されるように構成されている。図１１は、本実施例における撮像素子の構成図である。図１１において、破線はマイクロレンズを示す。画素３２０（ａ、ｂ以降は省略）のそれぞれには４つの光電変換部３２１、３２２、３２３、３２４（ａ、ｂ以降は省略）が設けられ、光学系の瞳を２×２の四つに分割している。光電変換部３２１〜３２４で取得される画像を、順に、Ａ画像、Ｂ画像、Ｃ画像、Ｄ画像とし、それらの加算結果をＡＢＣＤ画像とする。撮像素子からは撮像画像として、ＡＢＣＤ画像（第１の画像）とＡ画像（第２の画像）の２画像が出力される。
【００５７】
撮像装置３０１と画像処理装置３０２とが接続されると、ＡＢＣＤ画像とＡ画像は記憶部３０３に記憶される。画像処理装置３０２は、画像生成部３０４にてＡＢＣＤ画像とＡ画像から鮮鋭化画像を生成する。この際、画像処理装置３０２は、ネットワーク３０５を介してサーバ３０６にアクセスし、生成に用いるウエイト情報を読み出す。ウエイト情報は、学習部３０８で予め学習され、記憶部３０７に記憶されている。ウエイト情報は、複数のレンズ、焦点距離、Ｆ値等により個別に学習されており、複数のウエイト情報が存在する。
【００５８】
画像処理装置３０２は、入力されたＡＢＣＤ画像に合致する条件のウエイト情報を選択して記憶部３０３に取得し、鮮鋭化画像を生成する。生成された鮮鋭化画像は、表示装置３０９、記録媒体３１０、および、出力装置３１１の少なくとも一つに出力される。表示装置３０９は、例えば液晶ディスプレイやプロジェクタ等である。ユーザは、表示装置３０９を介して、処理途中の画像を確認しながら作業を行うことができる。記録媒体３１０は、例えば半導体メモリ、ハードディスク、ネットワーク上のサーバ等である。出力装置３１１は、プリンタ等である。画像処理装置３０２は、必要に応じて現像処理やその他の画像処理を行う機能を有する。また本実施例において、撮像装置３０１に接続されているレンズ装置内の記憶手段にウエイト情報を保持しておき、ぼけ補正の際に呼び出してもよい。
【００５９】
次に、図１２を参照して、画像処理装置３０２の画像生成部３０４により実行される鮮鋭化処理（鮮鋭化画像の生成処理）について説明する。図１２は、鮮鋭化画像の生成処理を示すフローチャートである。図１２の各ステップは、主に、画像処理装置３０２（画像生成部３０４）により実行される。
【００６０】
まずステップＳ３０１において、画像処理装置３０２は、ＡＢＣＤ画像とＡ画像を取得する。本実施例において、第１の画像はＡＢＣＤ画像であり、第２の画像はＡ画像である。ただし、第１の画像は光学系の瞳全体に対応する画像である必要はなく、Ａ画像、Ｂ画像、Ｃ画像、Ｄ画像の少なくとも二つを加算した画像でもよい。続いてステップＳ３０２において、画像処理装置３０２は、ＡＢＣＤ画像のレンズ装置の種類、焦点距離、Ｆ値、または、合焦距離に基づいて、対応するウエイト情報を取得する。続いてステップＳ３０３において、画像処理装置３０２は、鮮鋭化画像を生成する。なお本実施例において、生成に用いるネットワークは、図１を参照して実施例１で説明したネットワークと同様である。
【００６１】
学習部３０８が行うウエイト情報の学習は、実施例１と同様に、図８に示されるフローチャートに従って行われる。レンズ装置に応じて収差やヴィネッティングが異なるため、レンズ装置の種類ごとに学習ペアを作成し、ウエイト情報を学習する。また、撮像条件（焦点距離、Ｆ値、合焦距離）や像高、アジムスにより収差やヴィネッティングの変化が無視できない場合、複数の撮像条件、像高、または、アジムスごとに学習ペアを作成してウエイト情報を学習することが好ましい。なお本実施例では、第２の画像が１枚である例を挙げたが、第２の画像が複数（例えば、Ａ画像、Ｃ画像、Ｄ画像の３枚）の画像であってもよい。
【００６２】
本実施例によれば、画像から光学系の瞳に依存するぼけを高精度に補正し、鮮鋭化画像を得ることが可能な画像処理システムを提供することができる。
【００６３】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６４】
各実施例によれば、画像から光学系の瞳に依存するぼけを高精度に補正し、鮮鋭化画像を得ることが可能な画像処理方法、画像処理装置、撮像装置、レンズ装置、プログラム、および、記憶媒体を提供することができる。
【００６５】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００６６】
１０２    画像処理部（画像処理装置）
１０２ａ  情報取得部（取得手段）
１０２ｂ  画像生成部（生成手段）
【図１】
2020030569.tif 000005
【図２】
2020030569.tif 000006
【図３】
2020030569.tif 000007
【図４】
2020030569.tif 000008
【図５】
2020030569.tif 000009
【図６】
2020030569.tif 000010
【図７】
2020030569.tif 000011
【図８】
2020030569.tif 000012
【図９】
2020030569.tif 000013
【図１０】
2020030569.tif 000014
【図１１】
2020030569.tif 000015
【図１２】
2020030569.tif 000016