(57)【特許請求の範囲】
【請求項１】
撮像装置を用いて撮影された入力画像の部分領域を取得する工程と、
前記部分領域の位置に応じて異なる、予め学習された補正情報を取得する工程と、
前記部分領域と前記補正情報を用いて、前記撮像装置による前記部分領域の光学的劣化を補正した補正部分領域を生成する補正工程と、
を有し、
前記補正工程は、Ｎを２以上の整数、ｎを１からＮまでの整数としたとき、前記部分領域に対して、前記補正情報に基づく複数の線型関数の各々による第ｎ線型変換と、非線型関数による第ｎ非線型変換と、をｎが１からＮになるまで順に実行することで中間データを生成し、前記中間データに対して、前記補正情報に基づく１つ以上の線型関数による第Ｎ＋１線型変換を実行することにより前記補正部分領域を生成することを特徴とする画像処理方法。
【請求項２】
前記第１乃至第Ｎ線型変換は、前記補正情報に基づく複数のフィルタの各々とのコンボリューションを含むことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記コンボリューションは、実行されるたびに異なるフィルタが用いられることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記第Ｎ＋１線型変換は、１つ以上のフィルタとのコンボリューションであり、
前記第１乃至第Ｎ＋１線型変換のそれぞれにおけるフィルタのサイズは、前記光学的劣化の情報に基づいて決定されることを特徴とする請求項２又は３に記載の画像処理方法。
【請求項５】
前記第Ｎ＋１線型変換は、１つ以上のフィルタとのコンボリューションであり、
前記光学的劣化に対応する点像分布関数の拡がりをｄとし、前記第１乃至第Ｎ＋１線型変換のそれぞれにおけるフィルタの１次元サイズをｓ１乃至ｓＮ＋１としたとき、
【数１】
0006728365.tif 000006
なる条件式を満たすことを特徴とする請求項２乃至４の何れか１項に記載の画像処理方法。
【請求項６】
前記中間データに用いられるフィルタの数は、前記部分領域のチャンネル数と同一であり、
前記補正部分領域の各チャンネル成分は、前記中間データと前記フィルタの各々とのコンボリューションを含む演算で算出されること特徴とする請求項１乃至５の何れか１項に記載の画像処理方法。
【請求項７】
前記非線型関数は、単調増加関数、又は引数のうち最大値を出力するＭＡＸ関数を含むことを特徴とする請求項１乃至６の何れか１項に記載の画像処理方法。
【請求項８】
前記部分領域のサイズは、前記光学的劣化の情報に基づいて決定されることを特徴とする請求項１乃至７の何れか１項に記載の画像処理方法。
【請求項９】
前記補正情報は、像高が同一の前記部分領域に対しては同一の値を取得し、
前記部分領域を回転してから前記補正工程を実行することを特徴とする請求項１乃至８の何れか１項に記載の画像処理方法。
【請求項１０】
前記補正情報は、像高が同一の前記部分領域に対しては同一の値を取得し、
前記補正情報に基づく複数のフィルタを回転してから前記補正工程を実行することを特徴とする請求項２乃至８の何れか１項に記載の画像処理方法。
【請求項１１】
前記補正情報は、参照画像と前記光学的劣化の情報を用いて学習されたものであることを特徴とする請求項１乃至１０の何れか１項に記載の画像処理方法。
【請求項１２】
前記学習に用いられる参照画像は、前記入力画像のダイナミックレンジよりも大きいダイナミックレンジを有する画像を含むことを特徴とする請求項１１に記載の画像処理方法。
【請求項１３】
前記補正情報は、前記光学的劣化の情報を用いて前記参照画像から劣化参照画像を生成し、前記参照画像の部分領域と前記劣化参照画像の部分領域との複数の組を用いて学習されたものであることを特徴とする請求項１１または１２に記載の画像処理方法。
【請求項１４】
前記補正情報は、前記参照画像の部分領域とノイズが付与された劣化参照画像の部分領域との複数の組を用いて学習されたものであることを特徴とする請求項１３に記載の画像処理方法。
【請求項１５】
前記学習に用いられる光学的劣化の情報は、歪曲収差を含まないことを特徴とする請求項１１乃至１４の何れか１項に記載の画像処理方法。
【請求項１６】
前記入力画像の各部分領域について補正部分領域を生成することにより得られる補正画像に対して歪曲収差の補正処理を行うことを特徴とする請求項１５に記載の画像処理方法。
【請求項１７】
前記部分領域は、複数のチャンネルを有し、
前記補正工程は、前記部分領域の倍率色収差を補正してから１回目の前記線型変換を実行することを特徴とする請求項１乃至１６の何れか１項に記載の画像処理方法。
【請求項１８】
前記部分領域は、複数のチャンネルを有し、
前記補正情報は、前記チャンネルによって異なる値であり、
前記補正工程は、前記部分領域のチャンネルごとに実行されることを特徴とする請求項１乃至１６の何れか１項に記載の画像処理方法。
【請求項１９】
前記補正情報は、予め学習された畳み込みニューラルネットワークに関する情報であることを特徴とする請求項１乃至１８の何れか一項に記載の画像処理方法。
【請求項２０】
請求項１乃至１９の何れか１項に記載の画像処理方法を実行する画像処理部と、
前記補正情報を記憶する記憶部と、を有することを特徴とする画像処理装置。
【請求項２１】
被写体空間の画像を入力画像として取得する画像取得部と、
請求項１乃至１９の何れか１項に記載の画像処理方法を実行する画像処理部と、
前記補正情報を記憶する記憶部と、を有することを特徴とする撮像装置。
【請求項２２】
コンピュータに画像処理を実行させるプログラムであって、請求項１乃至１９の何れか１項に記載の画像処理方法を前記画像処理として実行させるプログラム。
【請求項２３】
請求項２２に記載のプログラムを記憶したコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置を用いて撮影された画像について、撮像装置の光学系によって発生する収差や回折などの光学的劣化を補正する画像処理方法に関する。
【背景技術】
【０００２】
表示装置の高精細化に伴い、撮像装置を用いて撮影された画像（撮影画像）の更なる高画質化が望まれている。しかし、撮影画像には、撮像装置内の光学系によって収差や回折などの光学的劣化（ぼけ）が発生している。そのため、被写体空間の情報が失われ、画質の低下を招いていた。【０００３】
撮影画像の光学的劣化（ぼけ）を補正し、より高解像な画像を得る手法がこれまで数多く提案されている。特許文献１には、Ｗｉｅｎｅｒフィルタを用いて収差を補正する手法が提案されている。収差は像高によって変化するため、複数の像高にそれぞれ設定されているぼけ補正のフィルタを使用する。特許文献２には、Ｗｉｅｎｅｒフィルタの代わりに、Ｒｉｃｈａｒｄｓｏｎ−Ｌｕｃｙ（ＲＬ）法を用いた手法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２１６５７６号公報
【特許文献２】特開２０１３−０２５４７３号公報
【非特許文献】
【０００５】
【非特許文献１】Ｙ．ＬｅＣｕｎ，ｅｔ  ａｌ．“Ｇｒａｄｉｅｎｔ−ｂａｓｅｄ  Ｌｅａｒｎｉｎｇ  Ａｐｐｌｉｅｄ  ｔｏ  Ｄｏｃｕｍｅｎｔ  Ｒｅｃｏｇｎｉｔｉｏｎ”，Ｐｒｏｃ．ｏｆ  Ｔｈｅ  ＩＥＥＥ，１９９８．
【非特許文献２】Ｇ．Ｅ．Ｈｉｎｔｏｎ，ｅｔ  ａｌ．“Ａ  ｆａｓｔ  ｌｅａｒｎｉｎｇ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｄｅｅｐ  ｂｅｌｉｅｆ  ｎｅｔｓ”，Ｎｅｕｒａｌ  Ｃｏｍｐｕｔ．  ２００６  Ｊｕｌ；１８（７）：１５２７−５４．
【非特許文献３】Ｇ．Ｅ．Ｈｉｎｔｏｎ  ＆  Ｒ．Ｒ．Ｓａｌａｋｈｕｔｄｉｎｏｖ（２００６−０７−２８）．“Ｒｅｄｕｃｉｎｇ  ｔｈｅ  Ｄｉｍｅｎｓｉｏｎａｌｉｔｙ  ｏｆ  Ｄａｔａ  ｗｉｔｈ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，Ｓｃｉｅｎｃｅ  ３１３（５７８６）：５０４−５０７．
【非特許文献４】Ｐ．Ｙ．Ｓｉｍａｒｄ，ｅｔ  ａｌ．“Ｂｅｓｔ  Ｐｒａｃｔｉｃｅｓ  ｆｏｒ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ  Ａｐｐｌｉｅｄ  ｔｏ  Ｖｉｓｕａｌ  Ｄｏｃｕｍｅｎｔ  Ａｎａｌｙｓｉｓ”，ＩＣＤＡＲ２００３．
【非特許文献５】Ａ．Ｋｒｉｚｈｅｖｓｋｙ，“Ｌｅａｒｎｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｌａｙｅｒｓ  ｏｆ  Ｆｅａｔｕｒｅｓ  ｆｒｏｍ  Ｔｉｎｙ  Ｉｍａｇｅｓ”，２００９，ｈｔｔｐｓ：／／ｗｗｗ．ｃｓ．ｔｏｒｏｎｔｏ．ｅｄｕ／〜ｋｒｉｚ／ｌｅａｒｎｉｎｇ−ｆｅａｔｕｒｅｓ−２００９−ＴＲ．ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の手法は、所謂、逆フィルタを用いた手法のため、光学的劣化のＭＴＦ（Ｍｏｄｕｌａｔｉｏｎ  Ｔｒａｎｓｆｅｒ  Ｆｕｎｃｔｉｏｎ）が０に近い周波数成分は、原理的に復元できない。一方、特許文献２では、ＲＬ法が推定を含む超解像処理のため、ＭＴＦが０に近い周波数成分も復元することができる。ただし、特許文献１及び２は共に、弊害としてノイズの増幅やリンギング（オーバーシュートとアンダーシュートも含む）が発生する問題がある。故に、解像感が向上しても、これらの弊害によって画質が低下してしまう。
【課題を解決するための手段】
【０００７】
本発明の一実施形態としての画像処理方法は、撮像装置を用いて撮影された入力画像の部分領域を取得する工程と、前記部分領域の位置に応じて異なる、予め学習された補正情報を取得する工程と、前記部分領域と前記補正情報を用いて、前記撮像装置による前記部分領域の光学的劣化を補正した補正部分領域を生成する補正工程と、を有し、前記補正工程は、Ｎを２以上の整数、ｎを１からＮまでの整数としたとき、前記部分領域に対して、前記補正情報に基づく複数の線型関数の各々による第ｎ線型変換と、非線型関数による第ｎ非線型変換と、をｎが１からＮになるまで順に実行することで中間データを生成し、前記中間データに対して、前記補正情報に基づく１つ以上の線型関数による第Ｎ＋１線型変換を実行することにより前記補正部分領域を生成することを特徴とする。【０００８】
また、上記の画像処理方法を実行する画像処理部を有する画像処理装置、撮像装置、上記の画像処理方法をコンピュータに実行させるプログラム、該プログラムを記憶した記憶媒体も本発明の一実施形態である。
【発明の効果】
【０００９】
本発明によれば、撮影画像における光学的劣化を高精度、且つ弊害を抑制して補正することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１におけるぼけ補正のネットワーク構造を示した図
【図２】実施例１における撮像装置のブロック図
【図３】実施例１における撮像装置の外観図
【図４】実施例１におけるぼけ補正のフローを示した図
【図５】実施例１及び２における補正情報の学習フローを示した図
【図６】実施例２における画像処理システムのブロック図
【図７】実施例２における画像処理システムの外観図
【図８】実施例２におけるぼけ補正のフローを示した図
【図９】実施例２におけるぼけ補正のネットワーク構造を示した図
【図１０】実施例２における活性化関数を説明した図
【発明を実施するための形態】
【００１１】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照番号を付し、重複する説明は省略する。
【００１２】
まず、具体的な実施例の説明に先立って、本発明の要旨を説明する。本発明では、ディープラーニング（深層学習）を用いて、撮像装置を用いて撮影された画像（撮影画像）における光学的劣化を補正する。ここで光学的劣化とは、撮像装置内の光学系で発生する収差や回折、或いはデフォーカスによる劣化を指す。なお、撮像装置内の光学系には、レンズだけでなく、ローパスフィルタなどの光学素子も含まれる。
【００１３】
ここで、ディープラーニングを用いた本発明の画像処理方法と、特許文献１及び２の画像処理方法の違いに関して、簡単に説明する。Ｗｉｅｎｅｒフィルタ（特許文献１）では、ぼけ画像を１つの関数に入力することで、ぼけ補正画像を得る。ＲＬ法（特許文献２）では、ぼけ画像を１つの関数に入力し、その出力を新たな入力として同一の関数へ入力し、それを反復することでぼけ補正画像を得る。これらに対し、ディープラーニングは、ぼけ画像を多数の異なる関数へ入力し、それらの出力を前述の関数とは異なる多数の関数へさらに入力するという処理を繰り返す。該処理の詳細に関しては、後述する。このように、特許文献１及び２で用いられた手法に対して、ディープラーニングは複数の関数を利用するため、モデルの表現性が高い。そのため、ＷｉｅｎｅｒフィルタやＲＬ法では記述できない解も表現することが可能となる。
【００１４】
さらに、ディープラーニングでは、各関数で使用されるパラメータが学習によって自動的に最適値へ設定される。特許文献１及び２の手法では、パラメータを手動で決定する必要があるため、それぞれの解空間の中で最適解を得ることが容易ではない。
【００１５】
これらの理由から、特許文献１及び２に記載された手法では達成困難であった、弊害が少なく、且つ補正効果の高い光学的劣化の補正処理が、ディープラーニングを用いることで可能となる。
【実施例１】
【００１６】
本発明の画像処理方法を撮像装置へ適用した実施例１について述べる。図２は、実施例１の撮像装置１００の基本構成を示している。図３は、実施例１の撮像装置１００の外観を示している。実施例１では、光学系の収差と回折による光学的劣化を補正対象とする。デフォーカスの補正に関しては、実施例２で説明する。【００１７】
撮像装置１００は、被写体空間の情報を画像として取得する画像取得部１０１を有している。画像取得部１０１は、被写体空間からの光を集光する結像光学系１０１ａと、複数の画素を有する撮像素子１０１ｂを有している。撮像素子１０１ｂは、例えばＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）センサや、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）センサなどである。撮像素子１０１ｂで取得された画像には、結像光学系１０１ａの収差や回折、又は撮影時におけるデフォーカスなどが作用しており、被写体空間の情報の一部が失われている。そのため、撮像素子１０１ｂで取得された画像を以後、ぼけ画像と呼称する。【００１８】
画像処理部１０２は、ぼけ画像（入力画像）に対して本発明の画像処理方法を適用することにより、ぼけ補正を行う。画像処理部１０２は、学習部１０２ａ、補正部１０２ｂを有している。ぼけ補正の際には、記憶部１０３に記憶された結像光学系１０１ａの光学的劣化（収差と回折）に対応する補正情報が呼び出されて使用される。この処理に関する詳細は後述する。ぼけ補正された画像（補正画像）は、液晶ディスプレイなどの表示部１０４に表示させたり、記録媒体１０５に保存したりすることができる。【００１９】
なお、画像取得部１０１によってぼけ画像が撮影されたタイミングでぼけ補正を行ってもよいし、ぼけ画像を記録媒体１０５に保存しておき、任意のタイミングでぼけ補正を行ってもよい。任意のタイミングでぼけを補正する場合、撮影時における結像光学系１０１ａの絞り値や撮影距離、焦点距離に関する情報（撮影条件情報）を、ぼけ画像と合わせて記録媒体１０５に保存しておく。撮影条件情報を読み出すことで、ぼけ画像に対応した収差と回折の情報を取得することができる。【００２０】
結像光学系１０１ａがズームレンズではなく単焦点レンズである場合は、焦点距離が一定であるため、焦点距離に関する情報を含まない撮影条件情報が取得されるようにしてもよい。デフォーカスを補正する場合は、さらに被写体空間の距離情報を含む撮影条件情報が必要である。撮像装置１００がレンズ交換式である場合は、撮影時にどのレンズが装着されていたかを識別するためのレンズ識別情報を含む撮影条件情報が必要である。なお、撮影画像は動画でもよく、各フレームに対してぼけ補正を行なえばよい。以上の一連の制御は、システムコントローラ１０６によって行われる。【００２１】
次に、画像処理部１０２で行われるぼけ補正について説明する。該ぼけ補正では、事前に学習された補正情報を用いるが、この学習方法に関しては、後述する。【００２２】
図４は、ぼけ補正のフローチャートであり、補正部１０２ｂによって実行される。ステップＳ１０１では、ぼけ画像（入力画像）と該ぼけ画像の撮影条件情報を取得する。実施例１では、結像光学系１０１ａがズームレンズのため、絞り値（絞り状態）、撮影距離（フォーカス状態）に加えて、焦点距離（変倍状態、ズーム状態）も撮影条件情報として取得する。ここで、絞り状態、フォーカス状態、変倍状態をまとめてレンズステートと呼ぶこととする。また、撮像素子１０１ｂがＲＧＢ（Ｒｅｄ，Ｇｒｅｅｎ，Ｂｌｕｅ）のベイヤー配列で構成されていた場合、ぼけ画像はデモザイキング前後のどちらの画像でもよい。【００２３】
ステップＳ１０２では、ぼけ画像の一部である部分領域が取得される。ぼけ補正は、該部分領域を単位として行なう。【００２４】
ステップＳ１０３では、撮影条件情報と部分領域の位置から、部分領域の光学的劣化を補正するための補正情報を取得する。本実施例で補正する結像光学系１０１ａの収差と回折による光学的劣化は、結像光学系１０１ａのレンズステートと像高に応じて変化するため、それに応じて補正情報も異なることとなる。故に、部分領域に対応する補正情報を取得するために、撮影条件情報と部分領域の位置に関する情報が必要となる。【００２５】
ステップＳ１０４では、補正情報を用いて、部分領域における光学的劣化を補正した補正部分領域を生成する。ぼけ補正の詳細に関して、図１を用いて説明する。図１は、ディープラーニングの１つであるＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）のネットワーク構造を示している。ただし、本発明はＣＮＮのみに限定されない。例えば、ＤＢＮ（Ｄｅｅｐ  Ｂｅｌｉｅｆ  Ｎｅｔｗｏｒｋ）などを用いても構わない。ただし、被写体に対する光学的劣化の作用がコンボリューションで記述されるため、コンボリューションを用いるＣＮＮが、モデルのマッチングがよい。ＣＮＮとＤＢＮの詳細に関しては、それぞれ非特許文献１及び非特許文献２に記載されている。【００２６】
ＣＮＮは、複数の層構造になっており、各層で補正情報を用いた線型変換と非線型変換が実行される。ここで、ｎを１からＮまでの整数としたとき、ｎ番目の層を第ｎ層、第ｎ層における線型変換と非線型変換をそれぞれ第ｎ線型変換、第ｎ非線型変換と呼称する。ただし、Ｎは２以上の整数である。部分領域２０１は、第１層で複数のフィルタ２０２それぞれとのコンボリューション（第１線型変換）が演算され、その後、活性化関数（Ａｃｔｉｖａｔｉｏｎ  Ｆｕｎｃｔｉｏｎ）と呼ばれる非線型関数で変換（第１非線型変換）される。図１中で部分領域２０１が複数枚描画されているのは、複数のチャンネルを有しているからである。実施例１では、部分領域がＲＧＢの３チャンネルを有している。ただし、チャンネル数はこれに限定されない。また、部分領域がＲＧＢの３チャンネルを有していても、１チャンネルずつ個別にＣＮＮへ入力しても構わない。この場合、収差と回折は光の波長によっても変化するため、チャンネルごとに異なる補正情報を使用する。複数チャンネルを一括で入力する場合は、前記の異なる補正情報が同時に使用される。【００２７】
フィルタ２０２は複数存在し、それぞれと部分領域２０１とのコンボリューションを個別に算出する。フィルタ２０２を構成する係数は、補正情報から決定される。補正情報はフィルタの係数そのものでもよいし、フィルタを所定の関数でフィッティングした際の係数でもよい。フィルタ２０２それぞれのチャンネル数は、部分領域２０１と一致し、部分領域２０１のチャンネル数が２以上の場合、３次元フィルタとなる（３次元目がチャンネル数を表す）。また、前記コンボリューションの結果に対して、補正情報から決定される定数（負もとり得る）を加算してもよい。【００２８】
フィルタ２０２による線型変換の後、活性化関数（図１中ではＡＦと記載）による非線型変換が施される。活性化関数ｆ（ｘ）の例としては、以下の式（１）乃至（３）が挙げられる。【００２９】
【数１】
0006728365.tif 000002
【００３０】
【数２】
0006728365.tif 000003
【００３１】
【数３】
0006728365.tif 000004
【００３２】
式（１）はシグモイド関数、式（２）はハイパボリックタンジェント関数、式（３）はＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ）と呼ばれる。式（３）中のｍａｘは、引数のうち最大値を出力するＭＡＸ関数を表す。式（１）乃至（３）は、全て単調増加関数である。また、活性化関数としてｍａｘ  ｏｕｔを使用してもよいが、ｍａｘ  ｏｕｔを使用した例は、実施例２で説明する。第１層で線型変換と非線型変換を施された部分領域を、第１変換部分領域２０３と呼称する。ここで、第１変換部分領域２０３の各チャンネル成分は、部分領域２０１とフィルタ２０２それぞれのコンボリューションから生成される。そのため、第１変換部分領域２０３のチャンネル数は、フィルタ２０２の数と同じになる。【００３３】
第２層では、第１変換部分領域２０３に対して、第１層と同様に補正情報から決定される複数のフィルタ２０４とのコンボリューション（第２線型変換）と、活性化関数による非線型変換（第２非線型変換）を行なう。第２層で使用するフィルタ２０４は、第１層で使用するフィルタ２０２と一般に同一ではない。フィルタのサイズや数も一致しなくて良い。ただし、フィルタ２０４のチャンネル数と第１変換部分領域２０３のチャンネル数は一致する。同様の演算を第Ｎ層まで繰り返すことで、中間データ２１０を得る。最後に、第Ｎ＋１層で中間データ２１０と１つ以上のフィルタ２１１とのコンボリューションと定数の加算（第Ｎ＋1線型変換）から、光学的劣化の補正された補正部分領域２１２を得る。該フィルタ２１１と該定数も、補正情報から決定される。補正部分領域２１２のチャンネル数は、部分領域２０１と同じであり、そのためフィルタ２１１の数も部分領域２０１と同じになる。補正部分領域２１２の各チャンネルの成分は、中間データ２１０とフィルタ２１１それぞれ（１つの場合もある）とのコンボリューションを含む演算から求められる。なお、部分領域２０１と補正部分領域２１２のサイズは一致しなくてよい。コンボリューション時、部分領域の外側にはデータが存在しないため、データの存在する領域のみで演算すると、コンボリューション結果はサイズが小さくなる。ただし、周期境界条件などを設定することで、サイズを保つこともできる。【００３４】
ＣＮＮは、活性化関数（非線型関数）を含むため、線型演算の逆フィルタでは求められない解を得ることができる。また、ディープラーニングは従来のニューラルネットワークに対して層の数が多いため、より高い性能を出すことができる。一般に、３層以上を有する場合（線型変換と非線形変換とを順に２回以上実行する場合）をディープラーニングと呼ぶ。ディープラーニングが性能を発揮するためには、特に活性化関数の存在が重要である。もし、活性化関数が存在しない、或いは線型関数だった場合、ネットワーク構造をいくら多層にしても、それと等価な単層の線型変換が存在するためである。【００３５】
ステップＳ１０５では、ぼけ画像のうち既定の領域に対して、ぼけ補正が完了したか否かの判定を行なう。既定の領域において、ぼけ補正が行われていない部分領域がある場合は、ステップＳ１０２へ戻り、ぼけ補正されていない部分領域を取得して、補正部分領域を生成する処理を行なう（ステップＳ１０３、Ｓ１０４）。既定の領域の全領域においてぼけ補正が完了した場合は、ステップＳ１０６へ進み、補正画像を出力する。以上の処理によって、結像光学系１０１ａの光学的劣化を補正した画像を得ることができる。【００３６】
次に、補正情報の学習に関して、図５のフローチャートを用いて説明する。学習は、ぼけ補正前であれば、撮像装置１００の画像処理部１０２で行なってもよいし、撮像装置１００とは別の演算装置で行なってもよい。本実施例では、学習部１０２ａで学習を実行する場合を例に挙げて説明する。補正情報の学習は、参照画像を結像光学系１０１ａの光学的劣化によって劣化させたぼけ画像を生成し、両者の対応関係を用いることで行う。【００３７】
ステップＳ２０１では、結像光学系１０１ａにおける光学的劣化（実施例１では収差と回折）の情報を取得する。前述の通り収差と回折による劣化は、レンズステートや像高、又は光の波長によって変化する。そのため、補正情報を求めたいレンズステート、像高、波長を選択して、それに対応する光学的劣化の情報を取得する。本実施例において、光学的劣化の情報は、記憶部１０３に記憶されている。光学的劣化の情報は、例えばＰＳＦ（Ｐｏｉｎｔ  Ｓｐｒｅａｄ  Ｆｕｎｃｔｉｏｎ、点像分布関数）やＯＴＦ（Ｏｐｔｉｃａｌ  Ｔｒａｎｓｆｅｒ  Ｆｕｎｃｔｉｏｎ、光学伝達関数）などに関する情報である。【００３８】
ステップＳ２０２では、参照画像を取得する。参照画像は、単数でも複数でもよい。参照画像とそれをぼかした画像から補正情報を学習するため、参照画像には様々な周波数成分が含まれていることが望ましい。例えば、参照画像にエッジがない場合、ぼけたエッジを鮮鋭なエッジに戻す学習データが存在しないため、エッジに対するぼけ補正効果が充分に得られない可能性がある。また、ぼけ補正でリンギングの発生しやすい輝度飽和部なども、参照画像に含まれていることが望ましい。この際、正しいぼけ画像を得るため、参照画像は飽和値以上の輝度の値を有している（ハイダイナミックレンジである）ことが望ましい。すなわち、入力画像のダイナミックレンジよりも大きいダイナミックレンジを有する参照画像を学習に用いることが好ましい。これは、既に輝度飽和している画像に対してＰＳＦをコンボリューションしても、被写体空間（輝度飽和は存在しない）を撮像した画像とは一致しないためである。輝度飽和部のぼけ前後の関係を学習することで、ぼけ補正時にリンギングが発生しにくくなる効果がある。【００３９】
ステップＳ２０３では、光学的劣化の情報を用いて、参照画像から劣化参照画像を生成する。光学的劣化の情報がＰＳＦなら、参照画像とのコンボリューションをとることで、劣化参照画像を得ることができる。ＯＴＦなら、参照画像の空間周波数スペクトルと積をとり、逆Ｆｏｕｒｉｅｒ変換することで得られる。またこの際、必要に応じて劣化参照画像にノイズを付与しておくことが望ましい。撮像素子１０１ｂで取得された実際のぼけ画像には、ショットノイズなどが存在しているためである。劣化参照画像にノイズを付与することで、ぼけ補正時にノイズが増幅される弊害を抑制できる。参照画像が複数の場合は、それぞれに対して劣化参照画像を生成する。【００４０】
ステップＳ２０４では、学習用部分領域と学習用劣化部分領域のペア（組）を複数取得する。学習用部分領域は参照画像から取得され、サイズはステップＳ１０４における補正部分領域と同じである。学習用劣化部分領域は、劣化参照画像から、該領域の中心が学習用部分領域と画像に対して同じ位置になるように取得される。そのサイズは、ステップＳ１０２におけるぼけ画像の部分領域と同じである。【００４１】
ステップＳ２０５では、複数の学習用部分領域と学習用劣化部分領域のペア（合わせて学習用ペアと呼称する）から、補正情報を学習する。学習では、ぼけ補正と同じネットワーク構造を使用する。本実施例では、図１に示したネットワーク構造に対して学習用劣化部分領域を入力し、その出力結果と学習用部分領域の誤差を算出する。該誤差が最小化されるように、例えば誤差逆伝播法（Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）などを用いて、第１乃至第ｎ層で用いる各フィルタの係数や加算する定数（補正情報）を更新、最適化する。各フィルタと定数の初期値はなんでもよい。例えば、乱数から決定するとよい。或いは、各層ごとに初期値を事前学習するＡｕｔｏ  Ｅｎｃｏｄｅｒなどのプレトレーニングを行なってもよい。Ａｕｔｏ  Ｅｎｃｏｄｅｒに関しては、非特許文献３に記載されている。【００４２】
学習用ペアを全てネットワーク構造へ入力し、それら全ての情報を使って補正情報を更新する手法をバッチ学習と呼ぶ。ただし、この学習方法は学習ペアの数が増えるにつれて、計算負荷が膨大になってしまう欠点がある。逆に、補正情報の更新に１つの学習ペアのみを使用し、更新ごとに異なる学習用ペアを使用する学習手法をオンライン学習と呼ぶ。この手法は、学習ペアが増えても計算量が増大しない利点があるが、その代わりに１つの学習用ペアに存在するノイズの影響を大きく受ける問題がある。そのため、これら２つの手法の中間に位置するミニバッチ法を用いて学習することが望ましい。ミニバッチ法は、全学習用ペアの中から少数を抽出し、それらを用いて補正情報の更新を行なう。次の更新では、異なる少数の学習用ペアを抽出して使用する。これを繰り返すことで、バッチ学習とオンライン学習の欠点を小さくすることができ、高いぼけ補正効果を得やすくなる。【００４３】
ステップＳ２０６では、学習された補正情報を出力する。本実施例では、補正情報は記憶部１０３に記憶される。【００４４】
ステップＳ２０１乃至Ｓ２０６を、結像光学系１０１ａにおける全レンズステート、像高、及び波長の光学的劣化に対して実行すれば、結像光学系１０１ａに対する補正情報が生成される。【００４５】
以上の処理によって、弊害が少なく、且つ補正効果の高い光学的劣化の補正情報を学習することができる。【００４６】
なお、本実施例では劣化参照画像を画像処理によって生成したが、実際に撮像装置１００を用いて撮影した画像で代用してもよい。例えば、参照画像を印刷して撮像装置１００で撮影することで、光学的劣化の作用した参照画像を得ることができる。ただし、撮像装置１００の配置誤差などによる画像の位置ずれや、一度の撮影で得られる特定の光学的劣化（例えば軸上のＰＳＦ）に対する学習ペアが少ないことから、画像処理で生成する方が望ましい。【００４７】
また、ステップＳ１０２におけるぼけ画像の部分領域のサイズは、該部分領域に作用している光学的劣化の情報に基づいて決定することが望ましい。例えば、ＰＳＦがｍ×ｍ画素程度の拡がりを持っていたとすると、被写体空間の点像はｍ×ｍ画素程度にぼけて広がることとなる。つまり、元の点像の情報はｍ×ｍ画素程度の領域に含まれているため、それらの情報が含まれるように部分領域のサイズを決定することが望ましい。【００４８】
同様に、ＣＮＮ（図１のネットワーク構造）では、各層でフィルタをコンボリューションして光学的劣化の補正を行なうため、それらのフィルタが影響する範囲を合わせた範囲が、前記光学的劣化のぼけ量より小さいと正しく補正できない。例えば、全層数が２で、第１層のフィルタサイズが５×５、第２層のフィルタサイズが３×３の場合、ある画素の補正に使用できる範囲は、該画素を中心にした７×７画素となる。そのため、このネットワーク構造では、光学的劣化の拡がりが７画素以下になっていないと、高精度な補正ができない。故に、光学的劣化の拡がりに基づいて、ある画素の補正に使用される範囲（各層のフィルタのサイズで決まる）を決定することが望ましい。【００４９】
より詳細には、以下の条件式（４）を満たすように、各層のフィルタのサイズを決定するとよい。【００５０】
【数４】
0006728365.tif 000005
【００５１】
ここで、ｄはぼけ画像の画素に対するＰＳＦ（光学的劣化に対応）の拡がり、Ｎ＋１は全層数である。また、ｓｍは第ｍ線型変換で使用するフィルタのサイズであり、第１乃至第Ｎ＋１線型変換のそれぞれにおけるフィルタの１次元サイズをｓ１乃至ｓＮ＋１とする。第ｍ線型変換で複数のサイズのフィルタが混合して使用される場合、ｓｍは最大のフィルタサイズになる。式（４）の上限は、ある画素の補正に使用できる範囲が、劣化の大きさ以上であることを示している。下限は理論的に超えることができない。ここで、ＰＳＦの拡がりｄは、ＰＳＦの重心からＰＳＦの値が閾値以下まで減衰する位置までの幅を、画素の長さで除したものである。【００５２】
さらに、収差と回折は、結像光学系１０１ａが光軸に対して回転対称性を有している場合、方位角によって形状が変化しない（方位角だけＰＳＦが回転する）。故に、同じ像高の部分領域に対しては同一の補正情報を使用することができ、学習負荷の軽減や補正情報の容量削減の効果が得られる。これを実現するには、以下の２つの方法が考えられる。１つ目は、ぼけ補正前に方位角を打ち消すよう、部分領域を回転することである。２つ目は、第１乃至第ｎ層のフィルタを補正する部分領域の方位角に合わせて回転することである。【００５３】
また、学習時に使用する光学的劣化の情報は、歪曲成分を含まないことが望ましい。図１のぼけ補正モデルは、補正前後で部分領域内の被写体が領域外へ出て行くこと、或いは領域外の被写体が領域内へ入ってくることを想定していないためである。故に、部分領域のサイズに対して歪曲収差が充分に小さい場合を除いて、学習、及びぼけ補正では歪曲収差を無視し、本発明のぼけ補正を行なった後に別途、歪曲補正処理をかけることが望ましい。この際、学習、及びぼけ補正で使用する像高は、歪曲収差が入った状態の像で考える。つまり、歪曲が負のとき、像高１０割は歪曲補正後には１０割よりも大きい位置を指している。なお、学習時の参照画像に予め歪曲収差を付与しておく必要はない。また、ぼけ補正の前に歪曲補正処理を行うこともできるが、この場合はぼけ補正前に補間処理が入るため、ぼけ補正後に歪曲補正処理を行うことが望ましい。【００５４】
部分領域が複数のチャンネルを持ち、それらを一括でネットワーク構造へ入力する場合、倍率色収差も同様に学習時の光学的劣化の情報に含まれないことが望ましい。この理由は歪曲と同じで、部分領域の内外に被写体が移動してしまうからである。ただし、倍率色収差は歪曲収差と異なり、本発明のぼけ補正を使用する前にぼけ画像から補正しておく。すなわち、部分領域の倍率色収差を補正してから１回目の線型変換を実行することが好ましい。事前に倍率色収差を補正しないと、エッジが二重エッジなどになってしまう可能性があるためである。なお、部分領域が複数のチャンネルを持っていても、各チャンネルで個別にぼけ補正を行なう場合は、このような問題は発生しない。【００５５】
また、本発明と合わせて、ＣＮＮの性能を向上させる工夫を併用してもよい。例えば、参照画像の数が充分でない場合に、参照画像に様々な変形を与えて学習データを増大させるデータオーグメンテーションを用いてもよい。或いは、学習精度の向上のため、参照画像の画素の平均値を０、分散を１に正規化し、隣接する画素の冗長性をなくすＺＣＡホワイトニングなどを併用してもよい。データオーグメンテーションとＺＣＡホワイトニングに関しては、非特許文献４及び非特許文献５にそれぞれ詳しく記載されている。【００５６】
本実施例の画像処理方法は、撮像装置１００を、本実施例の画像処理方法を実行するコンピュータとして機能させるためのプログラムにしたがって実行される。なお、プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録してもよい。【００５７】
以上の構成によって、撮像装置を用いて撮影された画像の光学的劣化を高精度、且つ弊害を抑制して補正することが可能な撮像装置を提供することができる。
【実施例２】
【００５８】
本発明の画像処理方法を画像処理システムに適用した実施例２に関して述べる。実施例２では、本発明のぼけ補正を行なう画像処理装置と、ぼけ画像を得る撮像装置、学習を行なうサーバーが個別に存在している。また、補正する光学的劣化として、デフォーカスを扱う。【００５９】
図６は、実施例２の画像処理システムの基本構成を示している。図７は、実施例２の画像処理システムの外観を示している。撮像装置３００は、被写体空間のデプスマップ（被写体距離の分布に関する情報）を取得するデプスマップ取得部を有している。デプスマップを取得する構成としては、例えば、視差を利用した複数視点の撮像系（多眼カメラやプレノプティックカメラなど）や、ＴｏＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）、或いはＤＦＤ（Ｄｅｐｔｈ  ｆｒｏｍ  Ｄｅｆｏｃｕｓ）などが知られている。撮像装置３００のその他の基本構成に関しては、ぼけ補正と学習に関する画像処理部を除いて、図２に示したものと同様である。【００６０】
撮像装置３００で撮影されたぼけ画像（入力画像）と撮影条件情報（デプスマップを含む）は、画像処理装置３０１内の記憶部３０２に記憶される。画像処理装置３０１は、ネットワーク３０４と有線、又は無線で接続されており、同様に接続されたサーバー３０５にアクセスする。サーバー３０５は、撮像装置３００で発生する光学的劣化を補正するための補正情報を学習する学習部３０７と、該補正情報を記憶する記憶部３０６を有している。画像処理装置３０１は、サーバー３０５の記憶部３０６から補正情報を取得し、補正部３０３でぼけ画像の光学的劣化を補正する。【００６１】
生成された補正画像は、表示装置３０８、記録媒体３０９、出力装置３１０の少なくとも何れかに出力される。表示装置３０８は、例えば液晶ディスプレイやプロジェクタなどである。ユーザーは表示装置３０８を介して、処理途中の画像を確認しながら作業を行うことができる。記録媒体３０９は、例えば半導体メモリ、ハードディスク、ネットワーク上のサーバー等である。出力装置３１０は、プリンタなどである。画像処理装置３０１は、必要に応じて現像処理やその他の画像処理を行う機能を有していてよい。【００６２】
次に、図８のフローチャートを用いて、補正部３０３で行なわれるぼけ補正処理を説明する。【００６３】
ステップＳ３０１では、撮像装置３００で撮影されたぼけ画像と、該ぼけ画像のデプスマップを含む撮影条件情報を取得する。また、本実施例では撮像装置３００がレンズ交換式カメラのため、撮影時に装着していたレンズの識別情報も撮影条件情報に含まれる。【００６４】
ステップＳ３０２では、ステップＳ３０１で取得したデプスマップを用いて、距離が概ね同一とみなせる領域（同じ補正情報を用いて補正可能な領域）から部分領域を取得する。【００６５】
ステップＳ３０３では、撮影時の撮影距離（フォーカス状態）と部分領域における被写体の距離情報（デプス情報）から、部分領域のデフォーカス量に応じた補正情報を取得する。部分領域の位置に応じて、被写体距離は異なるので、部分領域の位置によって補正情報は異なることとなる。また、像高によって、撮像装置３００内に含まれる結像光学系のヴィネッティングが変化するため、同じデフォーカス量でも像高に応じてぼけ像が変化する。そのため、像高に基づいて補正情報が決定される。【００６６】
ステップＳ３０４では、図９に示したネットワーク構造を用いて、デフォーカスによるぼけを補正した補正画像を生成する。図９に示した本実施例のネットワーク構造と図１に示した実施例１のネットワーク構造の違いは、活性化関数にｍａｘ  ｏｕｔを使用していることである。部分領域４０１は、第１層で複数のフィルタ４０２それぞれとコンボリューションが演算され、さらに定数が加算される（第１線型変換）。フィルタ４０２の各係数と定数は、補正情報によって決定される。各線型変換の結果は、活性化関数（ｍａｘ  ｏｕｔ）に入力される。図１０を用いて、ｍａｘ  ｏｕｔの説明を行なう。ｍａｘ  ｏｕｔは、線型変換の結果４２１乃至４２３の各画素に対して、その最大値を出力する活性化関数である。例えば、第１層でのｍａｘ  ｏｕｔの出力（第１変換部分領域）４０３において、画素４４１は、線型変換の結果４２１乃至４２３における同一位置の画素４３１乃至４３３のうちの最大値となる。つまり、ｍａｘ  ｏｕｔは線型変換の結果４２１乃至４２３を引数として、該引数のうち最大値を各画素に対して出力するＭＡＸ関数である。またその性質から、第１変換部分領域４０３のチャンネル数は１となる。図９における第２層以降の説明は、図１と同様である。【００６７】
ステップＳ３０５では、ぼけ画像のうち既定の領域に対して、ぼけ補正が完了したか否かの判定を行なう。既定の領域において、ぼけ補正が行われていない部分領域がある場合は、ステップＳ３０２へ戻り、ぼけ補正されていない部分領域を取得して、補正部分領域を生成する処理を行なう（ステップＳ３０３、Ｓ３０４）。既定の領域の全領域においてぼけ補正が完了した場合は、ステップＳ３０６へ進む。【００６８】
ステップＳ３０６では、デフォーカス補正によって、ピントずれが補正された補正画像、或いは被写界深度の拡張された補正画像が出力される。【００６９】
ぼけ補正で使用される補正情報は、実施例１と同様に図５に示したフローチャートに従って学習される。本実施例では、デフォーカスによるぼけを補正対象とする。このため、光学的劣化の情報の取得（ステップＳ２０１）では、焦点距離（変倍状態）、絞り値（絞り状態（ヴィネッティングを含む））、撮影距離（フォーカス状態）、被写体の距離情報に基づいて決定されるデフォーカスのぼけに関する情報を取得する。ステップＳ２０２乃至Ｓ２０６は実施例１と同様であるため、説明を省略する。【００７０】
本実施例の画像処理方法は、画像処理装置３０１を、本実施例の画像処理方法を実行するコンピュータとして機能させるためのプログラムにしたがって実行される。なお、プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録してもよい。【００７１】
以上の構成によって、撮像装置の光学的劣化を高精度、且つ弊害を抑制して補正することが可能な画像処理システムを提供することができる。【００７２】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されたものではなく、その要旨の範囲内で様々な変形、及び変更が可能である。【００７３】
すなわち、実施例１で示したように収差と回折を補正する画像処理方法を実施例２で示すような画像処理システムで実行したり、実施例２の画像処理方法を実施例１で示したような撮像装置で実行したりすることもできる。また、光学的劣化として収差と回折とデフォーカスによるぼけの全てを補正するようにしてもよい。【００７４】
また、撮像装置で撮影されたぼけ画像と撮影条件情報を、撮像装置または該撮像装置に有線または無線で接続された画像処理装置からネットワーク上のサーバーに送信し、ネットワーク上のサーバーにおいて本発明の画像処理方法を実行してもよい。ネットワーク上のサーバーで生成された補正画像は撮像装置または画像処理装置からサーバーにアクセスすることにより取得することができる。【００７５】
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために以下の請求項を添付する。
【符号の説明】
【００７６】
２０１、４０１    部分領域
２０２、４０２    フィルタ
２０３、４０３    第１変換部分領域
２０４、４０４    フィルタ
２１０、４１０    中間データ
２１１、４１１    フィルタ
２１２、４１２    補正部分領域
４２１、４２２、４２３    線型変換の結果
４３１、４３２、４３３    ｍａｘ  ｏｕｔへ入力される画素
４４１    ｍａｘ  ｏｕｔから出力される画素
【図１】
0006728365.tif 000007
【図２】
0006728365.tif 000008
【図３】
0006728365.tif 000009
【図４】
0006728365.tif 000010
【図５】
0006728365.tif 000011
【図６】
0006728365.tif 000012
【図７】
0006728365.tif 000013
【図８】
0006728365.tif 000014
【図９】
0006728365.tif 000015
【図１０】
0006728365.tif 000016