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