(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-05
(45)【発行日】2024-01-16
(54)【発明の名称】画像処理方法、画像処理装置、撮像装置、画像処理システム、プログラム、および、記憶媒体
(51)【国際特許分類】
G06T 7/00 20170101AFI20240109BHJP
G06T 5/73 20240101ALI20240109BHJP
H04N 23/60 20230101ALI20240109BHJP
H04N 25/10 20230101ALI20240109BHJP
【FI】
G06T7/00 350C
G06T5/00 710
H04N23/60 500
H04N25/10
(21)【出願番号】P 2019159507
(22)【出願日】2019-09-02
【審査請求日】2022-08-03
(31)【優先権主張番号】P 2018188744
(32)【優先日】2018-10-04
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100110412
【氏名又は名称】藤元 亮輔
(74)【代理人】
【識別番号】100104628
【氏名又は名称】水本 敦也
(74)【代理人】
【識別番号】100121614
【氏名又は名称】平山 倫也
(72)【発明者】
【氏名】日浅 法人
【審査官】伊知地 和之
(56)【参考文献】
【文献】特開2014-112798(JP,A)
【文献】米国特許出願公開第2018/0061020(US,A1)
【文献】国際公開第2011/122283(WO,A1)
【文献】国際公開第2008/096533(WO,A1)
【文献】特開2000-339463(JP,A)
【文献】国際公開第2018/037521(WO,A1)
【文献】松永 力,超高精細映像のための畳み込みニューラルネットワークによるフォーカス補正,第22回 画像センシングシンポジウム SSII2016 [USB],日本,画像センシング技術研究会,2016年12月31日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00
G06T 3/00 - 3/60
G06T 5/00 - 5/50
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
H04N 23/00
H04N 23/40 - 23/76
H04N 23/90 - 23/959
CSDB(日本国特許庁)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを用いて、撮像画像を補正する画像処理方法であって、
前記撮像画像の一部である第1の部分画像の前記撮像画像における位置に応じて、前記第1の部分画像または前記ニューラルネットワークのフィルタに対する反転軸を決定する第1工程と、
前記反転軸に基づいて前記第1の部分画像または前記ニューラルネットワークのフィルタを反転する処理と、前記反転軸に基づいて前記第1の部分画像と前記ニューラルネットワークのフィルタとにおける各色成分の画素の位置関係を対応させる処理とを行うことで第1の入力画像を生成する第2工程と、
前記第1の入力画像を前記ニューラルネットワークに入力することで、第1の補正画像を生成する第3工程とを有することを特徴とする画像処理方法。
【請求項2】
前記第1工程において、前記第1の部分画像に対する反転軸と、該第1の部分画像とは異なる第2の部分画像に対する反転軸とを決定し、
前記第2工程において、前記第2の部分画像及び該第2の部分画像に対する反転軸に基づいて第2の入力画像を生成し、
前記第3工程において、前記第2の入力画像を前記ニューラルネットワークに入力することで、第2の補正画像を生成し、
前記第1の補正画像と前記第2の補正画像とを合成することで、前記撮像画像に対応する補正画像を生成する工程を更に有し、
前記第1の部分画像に対する反転軸と、前記第2の部分画像に対する反転軸とは互いに異なることを特徴とする請求項1に記載の画像処理方法。
【請求項3】
前記ニューラルネットワークは、前記第1の部分画像と前記第2の部分画像に対して共通であることを特徴とする請求項2に記載の画像処理方法。
【請求項4】
前記第1の部分画像は、前記第2の部分画像の一部を含むことを特徴とする請求項2または3に記載の画像処理方法。
【請求項5】
前記第2工程において、前記第1の入力画像は、前記位置関係に基づいて定められる領域に基づいて生成されることを特徴とする請求項1乃至4のいずれか1項に記載の画像処理方法。
【請求項6】
前記第2工程において、
前記第1の入力画像は、対応させる処理を行う前記位置関係に基づいて前記第1の部分画像の一部の画素の削除または該画素の位置の変更を行うことで生成されることを特徴とする請求項1乃至5のいずれか1項に記載の画像処理方法。
【請求項7】
前記撮像画像に基づいて複数の部分画像を生成する工程を更に有し、
前記第1工程において、前記複数の部分画像に対する反転軸のそれぞれは、前記撮像画像を基準点まわりに角度が45度の整数倍ごとに分割された複数の領域のうち、前記部分画像を占める面積が最も大きい領域である最大領域に基づいて、決定されることを特徴とする請求項1乃至6のいずれか1項に記載の画像処理方法。
【請求項8】
前記基準点は、前記撮像画像の撮像に用いた結像光学系の光軸に対応する点であることを特徴とする請求項7に記載の画像処理方法。
【請求項9】
前記第1工程において、前記複数の領域のうち部分画像を含む領域の前記撮像画像における位置に基づいて、反転軸を決定することを特徴とする請求項7または8に記載の画像処理方法。
【請求項10】
前記第1工程において、前記第1の部分画像に対する反転軸を決定し、
前記位置関係を対応させる処理は、反転する処理が施された前記第1の部分画像と、前記ニューラルネットワークのフィルタとの各色成分の画素の位置関係を対応させる処理であることを特徴とする請求項1乃至9のいずれか1項に記載の画像処理方法。
【請求項11】
前記第1工程において、前記ニューラルネットワークのフィルタに対する反転軸を決定し、
前記位置関係を対応させる処理は、反転する処理が施された前記ニューラルネットワークのフィルタと、前記第1の部分画像との各色成分の画素の位置関係を対応させる処理であることを特徴とする請求項1乃至9のいずれか1項に記載の画像処理方法。
【請求項12】
前記第1の補正画像は、前記第2工程において反転する処理が施された前記ニューラルネットワークのフィルタを用いて生成されることを特徴とする請求項11に記載の画像処理方法。
【請求項13】
前記第2工程において、前記位置関係は、前記ニューラルネットワークの学習に用いられた訓練画像に基づいて定められることを特徴とする請求項1乃至12のいずれか1項に記載の画像処理方法。
【請求項14】
前記第3工程において、前記第1の補正画像は、前記撮像画像における光学的な劣化を補正することで生成されることを特徴とする請求項1乃至13のいずれか1項に記載の画像処理方法。
【請求項15】
ニューラルネットワークを用いて、撮像画像を補正する画像処理装置であって、
前記撮像画像の一部である第1の部分画像の前記撮像画像における位置に応じて、前記第1の部分画像または前記ニューラルネットワークのフィルタに対する反転軸を決定する反転決定手段と、
前記反転軸に基づいて前記第1の部分画像または前記ニューラルネットワークのフィルタを反転する処理と、前記反転軸に基づいて前記第1の部分画像と前記ニューラルネットワークのフィルタとにおける各色成分の画素の位置関係を対応させる処理とを行うことで第1の入力画像を生成する色決定手段と、
前記第1の入力画像を前記ニューラルネットワークに入力することで、第1の補正画像を生成する生成手段とを有することを特徴とする画像処理装置。
【請求項16】
前記ニューラルネットワークのフィルタを記憶する記憶部を更に有することを特徴とする請求項15に記載の画像処理装置。
【請求項17】
撮像画像の一部である第1の部分画像の前記撮像画像における位置に応じて、前記第1の部分画像またはニューラルネットワークのフィルタに対する反転軸を決定する反転決定手段と、
前記反転軸に基づいて前記第1の部分画像または前記ニューラルネットワークのフィルタを反転する処理と、前記反転軸に基づいて前記第1の部分画像と前記ニューラルネットワークのフィルタとの各色成分の画素の位置関係を対応させる処理とを行うことで第1の入力画像を生成する色決定手段と、
前記ニューラルネットワークを用いて前記撮像画像を補正する他の処理装置に、前記位置関係に基づいて前記撮像画像から生成された入力画像を送信する送信手段と、
を有し、
前記他の処理装置は、受信した前記入力画像を、前記ニューラルネットワークに入力することで第1の補正画像を生成することを特徴とする画像処理装置。
【請求項18】
被写体の像を撮像する撮像部と、
請求項15乃至17のいずれか1項に記載の画像処理装置と、を有することを特徴とする撮像装置。
【請求項19】
請求項15又は16に記載の画像処理装置と、該画像処理装置と通信可能な制御装置とを備える画像処理システムであって、
前記制御装置は、前記
撮像画像に対する処理を実行させるための要求を送信する手段を有し、
前記画像処理装置は、前記要求に応じて前記
撮像画像に対する処理を実行する手段と、
を有することを特徴とする画像処理システム。
【請求項20】
請求項1乃至11のいずれか1項に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項21】
請求項20に記載のプログラムを記憶していることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像画像の光学的な性能劣化を補正する画像処理方法に関する。
【背景技術】
【0002】
従来、ディープラーニングによって回帰問題を解き、入力画像から様々な出力画像を推定する技術が提案されている。ディープラーニングとは、多層のニューラルネットワークを用いた機械学習である。多層による強い非線型性の導入と、大量の学習用画像を用いた学習による高い汎化性能から、未知の入力画像に対して高精度の推定が可能となる。
【0003】
非特許文献1には、様々な回帰問題に対して適用可能な畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)の構成が開示されている。また非特許文献1には、畳み込みニューラルネットワークを用いた、入力画像のアップサンプリング、JPEGデブロッキング(圧縮ノイズの除去)、デノイジング、ノンブラインドなぼけ補正、および、インペインティングが開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第5274623号公報
【文献】特許第5541750号公報
【非特許文献】
【0005】
【文献】X. Mao, C. Shen, Y. Yang, “Image Restoration Using Convolutional Auto-encoders with Symmetric Skip Connections”, https://arxiv.org/abs/1606.08921.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、非特許文献1に開示された方法で撮像画像の光学的な性能劣化を補正する場合、保持するフィルタのデータ量が増大するか、または補正精度が低下する。光学的な性能劣化とは、撮像画像の撮像に用いた結像光学系の収差と回折によるぼけ、光学ローパスフィルタや撮像素子の画素開口によるぼけ等を指す。以下、光学的な性能劣化を単にぼけという。
【0007】
結像光学系の収差は、ズーム、絞り値、合焦距離、像高、および、アジムスに応じて変化する。このため、単一のぼけのみを補正する非特許文献1に開示された方法では、結像光学系で撮像される全ての撮像画像を補正することができない。ズーム、絞り値、合焦距離、像高、または、アジムスが異なる複数のぼけの各々に対して、個別にフィルタを学習して補正することはできるが、保持すべきフィルタのデータ量が膨大になる。
【0008】
または、ズーム、絞り値、合焦距離、像高、および、アジムスの異なる複数のぼけ全てをまとめて学習する方法も考えられる。これは、複数のぼけの全てに対して、正解画像とぼけ画像とを用意し、それらを混合してCNNを学習することで実現可能である。しかし、複数のぼけに大きく異なるぼけが含まれていると、高い補正効果を得ることができない。
【0009】
そこで本発明は、データ量の増大を抑制しながら高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理方法、画像処理装置、撮像装置、画像処理システム、プログラム、および、記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の一側面としての画像処理方法は、ニューラルネットワークを用いて、撮像画像を補正する画像処理方法であって、前記撮像画像の一部である第1の部分画像の前記撮像画像における位置に応じて、前記第1の部分画像または前記ニューラルネットワークのフィルタに対する反転軸を決定する第1工程と、前記反転軸に基づいて前記第1の部分画像または前記ニューラルネットワークのフィルタを反転する処理と、前記反転軸に基づいて前記第1の部分画像と前記ニューラルネットワークのフィルタとにおける各色成分の画素の位置関係を対応させる処理とを行うことで第1の入力画像を生成する第2工程と、前記第1の入力画像を前記ニューラルネットワークに入力することで、第1の補正画像を生成する第3工程とを有する。
【0011】
本発明の他の側面としての画像処理装置は、ニューラルネットワークを用いて、撮像画像を補正する画像処理装置であって、前記撮像画像の一部である第1の部分画像の前記撮像画像における位置に応じて、前記第1の部分画像または前記ニューラルネットワークのフィルタに対する反転軸を決定する反転決定手段と、前記反転軸に基づいて前記第1の部分画像または前記ニューラルネットワークのフィルタを反転する処理と、前記反転軸に基づいて前記第1の部分画像と前記ニューラルネットワークのフィルタとにおける各色成分の画素の位置関係を対応させる処理とを行うことで第1の入力画像を生成する色決定手段と、前記第1の入力画像を前記ニューラルネットワークに入力することで、第1の補正画像を生成する生成手段とを有する。
【0012】
本発明の他の側面としての撮像装置は、被写体の像を撮像する撮像部と前記画像処理装置とを有する。
【0013】
本発明の他の側面としての画像処理システムは、前記画像処理装置と、該画像処理装置と通信可能な制御装置とを備える画像処置システムであって、前記制御装置は、前記撮像画像に対する処理を実行させるための要求を送信する手段を有し、前記画像処理装置は、前記要求に応じて前記撮像画像に対する処理を実行する手段と、を有する。
【0014】
本発明の他の側面としてのプログラムは、前記画像処理方法をコンピュータに実行させる。
【0015】
本発明の他の側面としての記憶媒体は、前記プログラムを記憶している。
【0016】
本発明の他の目的及び特徴は、以下の実施例において説明される。
【発明の効果】
【0017】
本発明によれば、データ量の増大を抑制しながら高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理方法、画像処理装置、撮像装置、画像処理システム、プログラム、および、記憶媒体を提供することができる。
【図面の簡単な説明】
【0018】
【
図1】実施例1及び3における畳み込みニューラルネットワークの説明図である。
【
図2】実施例1における撮像システムのブロック図である。
【
図3】実施例1における撮像システムの外観図である。
【
図4】実施例1乃至3における学習工程のフローチャートである。
【
図5】実施例1及び3におけるレンズステートの分割の説明図である。
【
図6】実施例1におけるアジムス分割と部分画像の抽出の説明図である。
【
図7】実施例1における撮像素子の画素配置図である。
【
図8】実施例1における補正工程のフローチャートである。
【
図9】実施例1における各アジムス範囲の反転処理とカラーフィルタアレイの配置との関係を示す図である。
【
図10】実施例2における画像処理システムのブロック図である。
【
図11】実施例2における画像処理システムの外観図である。
【
図12】実施例2におけるアジムス分割の説明図である。
【
図13】実施例2における畳み込みニューラルネットワークの説明図である。
【
図14】実施例2における補正工程のフローチャートである。
【
図15】実施例2における部分画像の抽出位置の説明図である。
【
図16】実施例2における畳み込み演算の参照順序の説明図である。
【
図17】実施例3における画像処理システムのブロック図である。
【
図18】実施例3における画像処理システムの外観図である。
【
図19】実施例3におけるアジムス分割の説明図である。
【
図20】実施例3における色成分の位置関係の変更の説明図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照符号を付し、重複する説明は省略する。
【0020】
以下に用語の定義と、発明の概要を説明する。光学的な性能劣化(ぼけ)の補正には、多層の畳み込みニューラルネットワーク(CNN)を用いる。CNNによるぼけ補正には、ニューラルネットワーク(以下、単にネットワークとも呼ぶ)のフィルタ(重み)を学習するための処理工程と、学習されたフィルタを用いて未知の入力に対してぼけ補正を行う処理工程が存在する。前者を学習工程と呼び、後者を補正工程と呼ぶ。次に、学習工程と補正工程における画像の名称を定める。ネットワークへ入力する画像を入力画像とし、特に学習工程の際に用いる、正解画像が既知の入力画像を訓練画像と呼称する。ネットワークから出力された画像を出力画像とし、特に補正工程の際の出力画像を補正画像と呼称する。正解画像は、訓練画像からぼけが補正された理想的な出力画像に相当する画像である。
【0021】
本発明において、入力画像と正解画像は、複数の色成分を有するRAW画像である。複数の色成分は、Bayer配列等のように、それぞれ被写体空間の異なる位置の情報を有する。RAW画像は、未現像の画像データを指す。出力画像も、補正によって正解画像に準ずる画像として生成されるため、RAW画像の性質を有する。入出力画像をRAW画像とすることで、現像処理を介さないため、ユーザはぼけ補正された撮像画像に対してそのまま編集作業を行うことができる。また、ネットワークへ複数の色成分を同時に入力することで、異なる色成分における被写体の情報(エッジ等)をぼけ補正に用いることができる。このように、色成分ごとにぼけ補正を行うことにより、フィルタのデータ量を削減(抑制)しつつ、補正精度を向上させることができる。
【0022】
本発明は、RAW画像に対するCNNを用いたぼけ補正に対して、収差の光軸まわりにおける回転対称性を考慮する。これにより、ぼけのアジムスに対する自由度を減らすことができる。また、補間劣化の生じない反転の使用と、反転による色成分の位置関係(カラーフィルタアレイの配置)の変化を打ち消すことで、学習していないアジムスに対しても高精度なぼけ補正が可能となり、保持するフィルタのデータ量も抑制することができる。
【実施例1】
【0023】
まず、本発明の実施例1における画像処理方法について説明する。本実施例では、撮像装置を用いて画像処理方法を実行する撮像システムを説明する。なお本実施例では、補正工程を実行する撮像装置とは別に、学習工程を実行する学習装置が存在する。
【0024】
図2および
図3を参照して、本実施例における撮像システム10について説明する。
図2は、撮像システム10のブロック図である。
図3は、撮像システム10の外観図である。撮像システム10は、撮像装置100と学習装置110とを備えて構成される。
【0025】
撮像装置100で被写体空間の撮像画像を撮像し、撮像画像に作用しているぼけをCNNによって補正する。補正には、学習装置110で学習されたフィルタを用いる。撮像画像は、撮像部101により撮像される。撮像部101は、結像光学系101a、光学ローパスフィルタ101b、および、撮像素子101cを有する。ただし、光学ローパスフィルタ101bは必須でない。本実施例において、撮像装置100は、レンズ交換式の撮像装置であり、結像光学系101a(交換レンズ)は撮像素子101cを備えたカメラ本体に着脱可能であり、カメラ本体には様々な種類の交換レンズを付け替えることができる。
【0026】
被写体空間から撮像部101へ入射した光は、結像光学系101aと光学ローパスフィルタ101bとを通過した後、撮像素子101cで受光される。受光された被写体空間の像には、結像光学系101aの収差と回折、光学ローパスフィルタ101b、および、撮像素子101cの画素開口のそれぞれによるぼけが作用している。撮像画像は、画像処理部102へ入力される。画像処理部102は、反転手段(反転決定手段)102a、変更手段(色決定手段)102b、および、生成手段102cを有し、本実施例の画像処理方法によるぼけ補正を行う。また画像処理部102は、その他の現像処理等を行う。ぼけ補正には、学習装置110で学習されたフィルタを用いる。学習装置110は、撮像装置100に装着し得る複数の結像光学系101aの各々に対して、学習部111でCNNのフィルタを事前に学習し、記憶部112に記憶している。
【0027】
撮像装置100と学習装置110は、有線または無線で接続されている。撮像装置100は、結像光学系101aの種類に対応するフィルタを記憶部112から任意のタイミングで読み出すことができる。読み出されたフィルタの情報は、記憶部103に記憶される。画像処理部102で実行されるぼけ補正、および、学習部111で実行されるフィルタの学習に関する詳細は、後にフローチャートを用いて説明する。ぼけ補正された撮像画像(補正撮像画像)は、記憶媒体105に保存され、ユーザが鑑賞する際には表示部104に表示される。なお画像処理部102は、記憶媒体105に保存されている、ぼけ補正の行われていない撮像画像を読み出し、前述のぼけ補正を実行してもよい。以上の工程は、システムコントローラ106により制御される。
【0028】
次に、
図4を参照して、学習部111で実行される学習工程に関して説明する。
図4は、学習工程のフローチャートである。
図4の各ステップは、主に、学習部111により実行される。
【0029】
まずステップS101において、学習部111は、一括で学習するぼけの条件を設定する。学習条件とは、ぼけが変化し得る要因を指す。具体的には、レンズ(結像光学系101a)の種類、撮像時における結像光学系のレンズステート、像高とアジムス、撮像素子の画素ピッチと画素開口とカラーフィルタアレイの配置、および、光学ローパスフィルタの有無と種類等である。レンズステートとは、ズーム、絞り値、合焦距離を指す。撮像装置100はレンズ交換式の撮像装置であるため、異なる種類の結像光学系101aが装着され得る。本実施例では、ぼけを補正するCNNのフィルタを、結像光学系101aの種類ごとに分けて学習する。
【0030】
また、1種類の結像光学系101aに対してもレンズステートを複数に分割し、分割されたレンズステート各々で学習を個別に行う。例えば、
図5におけるレンズステートの分割の説明図に示されるように、ズーム(単焦点レンズの場合は不要)Z、絞り値F、合焦距離D、それぞれを軸とするレンズステートの空間を複数に分割する。その分割されたレンズステート、例えば、i,j,k=1,2とし、(Z
i,F
j,D
k)の8点を頂点とするレンズステートの部分空間で発生するぼけを一括で学習する。レンズステートの部分空間に属するズーム、絞り値、合焦距離で撮像された撮像画像に対しては、同一のフィルタを用いてぼけを補正する。
【0031】
収差と回折によるぼけは、結像光学系101aが光軸に対して回転対称性なレンズで構成され、且つ絞りが略円形状の場合、光軸まわりに回転対称性を有する。このため、画角に関しては像高変化のみを学習し、アジムス変化は学習した結果(フィルタ)、または入力画像を回転することで対応できる。しかし、ディープラーニングの学習結果には、高い周波数成分を有するフィルタが存在する可能性があり、回転による補間劣化が問題となる。また、入力画像を回転する場合も、同様に補間劣化が生じる。そのため、補間劣化のない反転を使用する。ぼけが光軸に対して回転対称な場合、イメージサークルの1/8の領域(全像高とアジムスのいずれか45度分)だけ、ぼけの変化を学習しておけば、残りの7/8の領域はフィルタ、または入力画像を反転することで補正することができる。すなわち、フィルタまたは入力画像に対する反転処理を行うことで、撮像画像内の異なる位置の補正に同一のフィルタを用いることができる。
【0032】
なお、光学ローパスフィルタによる作用が4回対称性を持っていない場合がある。例えば、垂直、又は水平方向のみに2点分離する光学ローパスフィルタの点像強度分布(PSF)は、2回対称性までしか持たない。この場合は、イメージサークルの1/8でなく1/4の領域に対応するぼけを学習すれば良い。
【0033】
本実施例における光学ローパスフィルタ101bは、4点分離(垂直と水平それぞれに2点分離)方式のため、イメージサークルの1/8のぼけ変化を学習する。これによって、ぼけのアジムスに対する変化の自由度が下がり、フィルタのデータ量を削減することができる。
【0034】
図6(A)は、学習するぼけの像高とアジムスの範囲を示す。
図6(A)の一点鎖線はイメージサークルを、実線は撮像画像221、黒い点222は結像光学系101aの光軸に相当する点(基準点)をそれぞれ示す。本実施例では、斜線部224で示される像高とアジムスの範囲のぼけを学習する。撮像画像221に収まる範囲に限定することで、学習に含まれるぼけのバリエーションを最低限に絞ることができる。なお、像高とアジムスの範囲は
図6(A)の斜線部224の位置に限定されるものではなく、イメージサークルの1/8の領域であれば他の位置であってもよい。ただし、撮像画像221に収まる範囲のみを学習する場合、アジムスを0≦θ≦45、-45≦θ≦0、135≦θ≦180、-180≦θ≦-135(度)のいずれかから選択する必要がある。それ以外の範囲では、撮像画像に作用するぼけ全てを学習することができない。なお、アジムスの原点は、x軸(撮像画像の長手方向)上の正の領域である。
【0035】
次に、画素ピッチと画素開口、カラーフィルタアレイの配置、光学ローパスフィルタに関して説明する。本実施例において、撮像装置100内の光学ローパスフィルタ101bおよび撮像素子101cは変化しない。光学ローパスフィルタ101bは、前述したように4点分離方式である。撮像素子101cのカラーフィルタアレイは、
図7に示される画素配置となっている。
図7中の斜線部150は、オプティカルブラック領域である。オプティカルブラック領域で囲まれた領域に形成される受光領域は、最も左上の画素がR(赤)のBayer配列構造を有する。G1とG2は緑、Bは青である。受光領域で撮像された信号が、撮像画像である。
【0036】
受光領域の画素の位置を行と列のインデックスを用いて(i,j)と表すとき、(1,1)、(1,2)、(2,1)、(2,2)の順で画素のカラーフィルタを記載することで、カラーフィルタアレイの配置を表記することとする。本実施例におけるカラーフィルタアレイの配置は、R、G1、G2、Bである。このため、ぼけの条件は、画素ピッチと画素開口は撮像素子101cで採用されている値を設定し、カラーフィルタアレイの配置と光学ローパスフィルタはR、G1、G2、Bと4点分離で固定とする。なお、カラーフィルタアレイはBayer配列に限定されるものではない。ハニカム構造等、複数の色成分を空間分割によって取得する他の配列に対しても、本発明は同様に適用可能である。
【0037】
続いて、
図4のステップS102において、学習部111は、複数の訓練画像と正解画像を取得する。撮像画像はRAW画像であるため、訓練画像と正解画像もRAW画像である。訓練画像と正解画像は、同一の被写体が写った画像であり、ぼけの有無が異なる。訓練画像は、例えば、ぼけの影響が少ないRAW画像(正解画像)に対して、シミュレーションでぼけを付与することで生成できる。学習工程において含まれていないぼけ、或いは被写体の構造(エッジ等)は、後の補正工程で精度よく補正することができない。このため、様々な被写体が写った多数の正解画像を用意し、それらに設定したレンズステートの部分空間と像高、アジムスのぼけを作用させて訓練画像を生成する。
【0038】
ぼけの生成は、例えば以下のような方法で行うことができる。レンズステートと像高、アジムスを決定し、結像光学系101aの設計値から光学伝達関数(OTF)を算出し、光学ローパスフィルタと画素開口の周波数特性と積をとる。カラーフィルタの分光特性を用いて波長ごとの重み和をとり、各色のNyquist周波数で折り返すことで、ぼけのOTFを生成できる。赤外線カットフィルタ等が入っている場合、その特性も加味する。また、訓練画像には撮像素子101cで発生するノイズを付与してもよい。ノイズの強さごとに異なるフィルタを学習し、撮像画像のノイズレベル(ISO感度等から判定可能である)に基づいて、補正に用いるフィルタを使い分けてもよい。
【0039】
続いてステップS103において、学習部111は、複数の訓練画像と正解画像を用いて、CNNを最適化し、フィルタを算出する。
図1は、CNNの説明図である。CNNは、複数の畳み込み層を有する。訓練画像である入力画像201に関して、第1畳み込み層202で複数のフィルタとの畳み込みとバイアスの和が算出される。各フィルタに対して算出された結果をまとめたものが、第1特徴マップ203である。第1特徴マップ203は、第2畳み込み層204に入力され、同様に新たな複数のフィルタとの畳み込みとバイアスの和が算出される。これを繰り返し、第N-1特徴マップ211を第N畳み込み層212に入力して得られた結果が、出力画像213である。ここで、Nは3以上の自然数である。一般には3層以上の畳み込み層を有するCNNが、ディープラーニングに該当すると言われる。各畳み込み層では、畳み込みの他に活性化関数を用いた非線型変換が実行される。活性化関数の例としては、シグモイド関数やReLU(Rectified Linear Unit)などがある。ただし、最後の第N畳み込み層では、非線形変換を実行しなくてもよい。
【0040】
各畳み込み層のフィルタ、およびバイアスの初期値は、例えば乱数等で決定される。出力された出力画像と正解画像の誤差を算出し、その誤差が小さくなるように誤差逆伝搬法(Backpropagation)等を用いて、フィルタとバイアスを更新する。フィルタとバイアスが収束した後、学習部111は、学習が終了したとしてフィルタとバイアスの値を決定する。収束は、更新量の大きさや更新の回数等で判定可能である。なお、畳み込み層の代わりに逆畳み込み層を用いてもよいし、必要に応じてプーリング層などを追加しても構わない。また、第N畳み込み層の出力と入力画像の和を取ったものを出力画像としてもよい。このような出力画像と入力画像の差分を学習するネットワークは、残差(Residual)ネットワークと呼ばれる。この際、バイアスをゼロに固定してもよい。また、ネットワークとしてGAN(Generative Adversarial Network)等を用いてもよい。
【0041】
続いて、
図4のステップS104において、学習部111は、既定のぼけの条件の全てに対して、フィルタの算出が完了したか否かを判定する。全てのぼけの条件に対してフィルタの算出が完了した場合、ステップS105へ進む。一方、フィルタの算出が完了していない場合、ステップS101に戻る。本実施例では、レンズステートの空間を複数に分割しているため、学習部111は、フィルタが算出されていないレンズステートを新たに選択する。続いてステップS105において、学習部111はフィルタを出力する。学習部111により算出され出力されたフィルタは、記憶部112に記憶される。
【0042】
次に、
図8を参照して、画像処理部102で実行される撮像画像の補正工程(ぼけ補正)に関して説明する。
図8は、撮像画像の補正工程のフローチャートである。
図8の各ステップは、主に、システムコントローラ106の指令に基づいて画像処理部102により実行される。
【0043】
まずステップS201において、画像処理部102は、撮像画像を取得し、取得した撮像画像に対応するフィルタを記憶部103から読み出す。本実施例において、画像処理部102は、撮像画像を撮像した際のレンズステートに関する情報に基づいて、読み出すフィルタを特定する。レンズステートに関する情報は、例えば、撮像画像のヘッダ情報等から取得可能である。
【0044】
続いてステップS202において、画像処理部102は、撮像画像から部分画像(補正対象となる撮像画像の一部の領域)を抽出する。なお、部分画像の大きさは、訓練画像と必ずしも一致しなくてよい。
図6(A)、(B)は、部分画像の抽出例を示す。イメージサークルを8分割した領域のうち、撮像画像221の面積が大きい領域では、
図6(A)に示されるように部分画像223aまたは部分画像223bを抽出する。部分画像223aは、斜線部224の全てを含む1つの部分画像である。部分画像223bは、斜線部224の全体を分割して含む複数の部分画像である。なお、部分画像223bの数はいくつでもよい。
【0045】
同様に、撮像画像221の面積が小さい領域では、
図6(B)に示されるように部分画像225aまたは部分画像225bを抽出する。部分画像225aは、斜線部226の全てを含む1つの部分画像である。部分画像225bは、斜線部226の全体を分割して含む複数の部分画像である。部分画像225aの場合、1/8の領域を1回のCNNによる演算で補正できるが、余分な領域(斜線部226以外の正しい補正がなされない領域)の面積が大きくなる。部分画像225bでは部分画像ごとに演算する必要があるが、余分な領域の面積は小さい。いずれを選択するかは、計算時間やメモリの量に応じて決定すればよい。また、部分画像のうち、正しい補正がされない余分な領域は、ステップS208の合成の際に削除する。なお、部分画像がどのアジムス範囲に該当するかは、部分画像に対して各アジムス範囲が占める面積から判定してもよい。
【0046】
続いてステップS203において、画像処理部102(反転手段102a)は、部分画像の撮像画像における位置に基づいて、部分画像に対する反転処理を設定(制御)する。すなわち画像処理部102は、フィルタを学習したアジムスの範囲と、ステップS202にて抽出した部分画像に対応するアジムスの範囲との位置関係に基づいて、反転軸(反転処理における軸)を決定する(反転処理の種類を切り替えるとも言える)。本実施例において、学習部111は135≦θ≦180(度)のアジムス範囲で学習を行っているため、各アジムス範囲における反転軸は
図9に示されるようになる。
図9は、各アジムス範囲の反転処理と、反転処理後のカラーフィルタアレイの配置との関係を示す図である。-45度、0度、45度、90度の軸それぞれに対して、反転処理が制御される(反転処理の有無および反転処理の種類(-45°軸反転、0°軸反転、45°軸反転、90°軸反転)が切り替えられる)。
【0047】
続いて、
図8のステップS204において、画像処理部102(変更手段102b)は、ステップS203で切り替えられた反転処理設定(反転の有無または反転の種類)に基づいて部分画像の反転処理を行う。そして、その反転処理(反転軸)に基づき、色成分の位置関係を、その反転処理(反転軸)に対応した位置関係に変更する。部分画像の反転処理を行うことにより、学習した135≦θ≦180(度)のアジムス範囲のフィルタを全アジムス範囲に適用することができるが、反転により部分画像のカラーフィルタアレイの配置が変化してしまう。学習したカラーフィルタアレイの配置は、R、G1、G2、Bのため、入力画像もこの配列に合わせなければ、正しいぼけ補正を行うことができない。このため、部分画像に施す反転処理の反転軸に基づいて、カラーフィルタアレイの配置を変更する。
【0048】
図9において、G1とG2とを区別する必要はないため、90≦θ≦135(度)のアジムス範囲では、カラーフィルタアレイの配置を変更しなくてよい。すなわち、第2象限において、カラーフィルタアレイの配置はそのままでよい。次に、0≦θ≦90(度)の第1象限では、部分画像の第1列と最終列を削除することで、R、G1、G2、Bのカラーフィルタアレイの配置に変更することができる。第3象限において、第1行と最終行を削除することで、R、G1、G2、Bのカラーフィルタアレイの配置に変更することができる。第4象限において、第1行と最終行、および第1列と最終列を削除することで、R、G1、G2、Bに変更することができる。
【0049】
ここで、行列成分の削除の代わりに、シフトを使用してもよい。例えば、第1列と最終列の削除の代わりに、第1列を最終列の後ろにシフトしてもカラーフィルタアレイの配置を変更することができる。逆に、最終列を第1列の前にシフトしてもよい。行に関しても同様である。また、削除とシフトのいずれを利用する場合も、部分画像の端では正しいぼけ補正結果が得られなくなる。このため、撮像画像から複数抽出される部分画像(複数の部分画像)は、互いにオーバーラップする部分(互いに共通する部分)を有することが好ましい。なお、複数の部分画像のうち少なくとも2枚の部分画像が互いに共通する部分を有していても良い。オーバーラップのない撮像画像の最も端の画素は、例えば、ぼけ補正後も撮像画像そのままの画素値を使用するとよい。なお、本実施例のステップS204では反転処理を行った後に色成分の位置関係の変更処理を行っているが、色成分の位置関係の変更処理を行った後に反転処理を行っても良い。また、本実施例では部分画像に施す反転処理の反転軸に基づいて入力画像における色成分の位置関係を決定したが、本発明はこれに限定されるものではない。撮像画像における補正対象となる領域の位置と反転軸は対応しているため、撮像画像における補正対象となる領域の位置から直接色成分の位置関係を決定しても良い。いずれにしても、ステップS204では、ステップS203で決定された反転軸に対応して、反転による色成分の位置関係の変化が打ち消されるように、入力画像の色成分の位置関係が決定されれば良い。
【0050】
続いて、
図8のステップS205において、画像処理部102は、部分画像に対して反転処理およびカラーフィルタアレイの配置を変更する処理を施すことによって生成された入力画像をCNNへ入力し、補正画像を算出する。補正画像は、ぼけ補正された部分画像に対応する。CNNは、学習時に使用したネットワークと同じであり、ステップS201にて取得したフィルタを使用する。なお、フィルタの取得は、ステップS205より前であれば、いつ実行してもよい。
【0051】
続いてステップS206において、画像処理部102は、補正画像の反転を戻す。すなわち画像処理部102は、補正画像に対して、ステップS204にて実行した反転処理と逆の反転処理を実行する。カラーフィルタアレイの配置を変更するためにシフトを使用した場合、シフトも戻す。なお、部分画像を反転する代わりに、ステップS205にて畳み込むフィルタを反転してもよい。この場合、ステップS206は不要である。ただし、フィルタを反転する場合でも、ステップS204で実行したカラーフィルタアレイの配置の変更は必要である。なお、部分画像、またはフィルタの反転とは、畳み込み演算の際にいずれか一方の配列の参照順序を反転することも含む。
【0052】
続いてステップS207において、画像処理部102は、撮像画像の全体に対して補正画像の算出が完了したか否かを判定する。補正画像の算出が完了していない場合、ステップS202へ戻り、画像処理部102は新たな部分画像を抽出する。一方、補正画像の算出が完了した場合、ステップS208へ進む。
【0053】
ステップS208において、画像処理部102(生成手段102c)は、複数の補正画像を合成し、撮像画像のぼけが補正された補正撮像画像を生成する。すなわち画像処理部102は、撮像画像の各アジムス範囲を補正した8枚の補正画像を繋ぎ合わせることで、補正撮像画像を生成する。
【0054】
以上の画像処理方法により、保持するフィルタのデータ量の増大を抑制し、高精度に撮像画像の光学的な性能劣化を補正することができる。なお、撮像画像から部分画像を実際に抽出することは、必須ではない。例えば、撮像画像の全体に異なる反転処理を実行し色成分の位置関係を変更して得られた入力画像のそれぞれに対して本実施例のぼけ補正を行って複数の補正画像を得る。その後、得られた各補正画像において正しく補正されている領域(各入力画像において補正対象とされた部分(部分画像に相当)に対応する領域)のみを切り出して補正撮像画像を生成してもよい。ただし、この場合には計算負荷が増大するため、計算負荷を考慮することが好ましい。
【実施例2】
【0055】
次に、本発明の実施例2における画像処理方法および画像処理システムを説明する。なお本実施例では、補正工程(ぼけ補正)を実行する画像処理装置とは別に、学習工程を実行する学習装置が存在する。また、補正工程において、CNNだけでなく逆フィルタベースの補正処理を併用する。
【0056】
まず、
図10および
図11を参照して、本実施例における画像処理システム300について説明する。
図10は、画像処理システム300のブロック図である。
図11は、画像処理システム300の外観図である。画像処理システム300は、学習装置301、画像処理装置311、撮像装置321、記録媒体322、表示装置323、および、出力装置324を備えて構成される。
【0057】
学習装置301は、記憶部302および学習部303を有する。学習部303は、補正工程に必要なフィルタを算出する学習工程を実行する。この際、記憶部302に記憶された複数の訓練画像と正解画像を使用する。本実施例では、1枚の正解画像に対して2枚の訓練画像が存在する。2枚の訓練画像は、正解画像にぼけが作用したぼけ画像と、ぼけ画像をWienerフィルタで補正した中間補正画像である。なお、後者の生成には、その他の手法、例えばRL(Richardson-Lucy)法やMAP(Maximum a posteriori)法等を用いても構わない。学習されたフィルタは、記憶部302に記憶される。
【0058】
画像処理装置311は、補正工程を実行する装置であり、記憶部312および補正部313を有する。補正部313は、実施例1の反転手段102a、変更手段102b、および、生成手段102cと同様の機能を有する。画像処理装置311は、有線もしくは無線で接続された撮像装置321、または半導体メモリ等の記録媒体322から、RAW画像である撮像画像を取得し、記憶部312に記憶する。画像処理装置311で取得される撮像画像は、レンズ交換式の撮像装置で撮像された画像である。撮像装置321として、複数の種類の撮像装置が存在する。補正部313は、撮像画像の撮像に用いた撮像装置321と結像光学系に関する情報を撮像画像から取得し、対応する光学伝達関数(OTF)の情報を記憶部312から読み出す。補正部313は、OTFからWienerフィルタを算出し、撮像画像にWienerフィルタを作用させた中間補正撮像画像を生成する。補正部313は、CNNを用いて、中間補正撮像画像と撮像画像とに基づいて補正撮像画像を生成する。
【0059】
画像処理装置311と学習装置301は、有線または無線で接続されている。画像処理装置311は、記憶部302に記憶されたフィルタを読み出し、補正部313がそのフィルタを使用する。読み出すフィルタの選択にも、撮像画像の撮像に用いた撮像装置321と結像光学系に関する情報を用いる。補正画像は,記録媒体322、表示装置323、および、出力装置324の少なくとも一つに出力される。表示装置323は、例えば液晶ディスプレイやプロジェクタである。ユーザは、表示装置323を介して、編集途中の画像を確認しながら作業を行うことができる。出力装置324は、プリンタ等である。画像処理装置311は、その他に現像処理などを行う機能を有していてもよい。
【0060】
次に、
図4を参照して、学習部303で実行される学習工程に関して説明する。なお、実施例1と同様の説明は省略する。まずステップS101において、学習部303は、一括学習するぼけの条件を設定する。本実施例では、結像光学系だけでなく撮像装置321の種類も固定されていないため、実施例1よりもぼけの自由度が高い。結像光学系の種類、レンズステート、像高とアジムスに加え、画素ピッチと画素開口、カラーフィルタアレイの配置、光学ローパスフィルタの有無と種類にも幅がある。このため、ぼけの変化の幅が大きく、CNNで全てのぼけを補正するには、膨大なデータ量のフィルタが必要になる。
【0061】
そこで、CNNに撮像画像(学習では、ぼけ画像)だけでなく、Wienerフィルタで補正した画像を入力する。これにより、CNNがぼけ補正を行うための情報が増えるため、幅広いぼけの変化に対してもロバストに高精度な補正が可能となる。このため本実施例では、結像光学系の種類のみで学習を分け、レンズステート、像高とアジムス、画素ピッチと画素開口、および光学ローパスフィルタに関して、全てのバリエーションを一括で学習する。カラーフィルタアレイの配置に関しては、特定の配置のみを学習し、撮像画像の抽出位置を工夫することで対応する。本実施例では、学習するカラーフィルタアレイの配置をG1、R、B、G2とする。
【0062】
レンズステートは、
図5に示されるZFD空間全域を使用する。像高とアジムスは、アジムス分割の説明図である
図12に示されるように、撮像画像431の第1象限に相当する範囲(斜線部433)を学習する。ここで、黒い点432は結像光学系の光軸に相当する点(基準点)を示す。本実施例において、実施例2よりもアジムス範囲が広いのは、光学ローパスフィルタに水平(垂直)2点分離を採用している撮像装置が存在するためである。画素ピッチも、複数種類の撮像装置で使われている画素ピッチを取り得る選択肢とする。光学ローパスフィルタは、無い場合、水平(垂直)2点分離、または、4点分離を取り得る選択肢とする。
【0063】
続いて、
図4のステップS102において、学習部303は、複数の訓練画像と正解画像を取得する。正解画像ごとに、ステップS101にて設定した条件内でランダムに選択したぼけを作用させ、ぼけ画像を生成する。必要に応じて、ノイズも付与する。生成したぼけ画像に対して、前述のぼけから算出したWienerフィルタを適用し、ぼけが補正された中間補正画像を生成する。中間補正画像は、ぼけで非常に弱くなった(または消えた)高周波成分は補正されておらず、リンギングやノイズの増幅が発生している。中間補正画像とぼけ画像の2枚の画像を訓練画像とする。
【0064】
続いてステップS103において、学習部303は、複数の訓練画像と正解画像とに基づいて、CNNのフィルタを決定する。本実施例では、
図13に示されるネットワーク構成を使用する。
図13は、本実施例におけるCNNの説明図である。訓練画像であるぼけ画像401と中間補正画像402は、R、G1、G2、Bの4チャンネル画像に並び替えてから入力される。ぼけ画像401と中間補正画像402はチャンネル方向に積層され、合計8チャンネルの画像が訓練画像として、第1畳み込み層403へ入力される。第1畳み込み層403で複数のフィルタとの畳み込みとバイアスの和が算出される。各フィルタに対して算出された結果をまとめたものが、第1特徴マップ404である。第1特徴マップ404は、第2畳み込み層405に入力され、同様に新たな複数のフィルタとの畳み込みとバイアスの和が算出される。これを繰り返し、第N-1特徴マップ411を第N畳み込み層412に入力して得られた結果が、補正成分413である。補正画像414は、ぼけ画像401と補正成分413との和により求められる。補正画像414と正解画像の誤差を算出し、CNNのフィルタとバイアスを更新する。
【0065】
続いて、
図4のステップS104において、学習部303は、画像処理装置311で実行するぼけ補正の対象となる結像光学系の全てに対して、フィルタの算出が完了したか否かを判定する。全てのぼけの条件に対してフィルタの算出が完了した場合、ステップS105へ進む。一方、フィルタの算出が完了していない場合、ステップS101に戻り、新たな結像光学系に関してフィルタの学習を行う。ステップS105において、学習部303はフィルタを出力する。学習部303により算出され出力されたフィルタは、記憶部302に記憶される。
【0066】
次に、
図14を参照して、画像処理装置311の補正部313で実行される撮像画像の補正工程(ぼけ補正)に関して説明する。
図14は、撮像画像の補正工程のフローチャートである。
図14の各ステップは、主に補正部313により実行される。なお、
図14において、
図8を参照して説明した実施例1と同様の説明は省略する。
【0067】
まずステップS301において、補正部313は、撮像画像を取得し、取得した結像光学系に対応するフィルタを記憶部312から読み出す。続いてステップS302において、補正部313は、撮像画像に対してWienerフィルタを作用させ、中間補正撮像画像を生成する。Wienerフィルタによるぼけ補正を少ない保持データ量で行うには、例えば、特許文献1や特許文献2に開示された手法を用いることができる。Wienerフィルタの補正に伴うリンギングやノイズ増幅などの弊害は、後述のCNNによって抑制されるため、Wienerフィルタのゲインは高くしてもよい。
【0068】
続いてステップS303において、補正部313は、ステップS304にて抽出する部分画像の抽出位置(領域)を選択し、部分画像に対応する反転処理の反転軸を設定する(反転処理設定を切り替える)。フィルタの学習は、第1象限のぼけに関して行っているため、部分画像が第1象限の場合には反転処理は行わない。第2象限乃至第4象限に関してはそれぞれ、左右の反転(90°軸反転)、上下左右の反転(0°軸反転と90°軸反転)、上下の反転(0°軸反転)になる。学習と撮像画像のカラーフィルタアレイ配置の不一致や、反転に伴う部分画像のカラーフィルタアレイ配置の変化に対して、本実施例では、部分画像の抽出位置の選択を工夫することで対応する。
【0069】
図15を参照して、ステップS303における部分画像の抽出位置の選択例について説明する。
図15は、部分画像の抽出位置の説明図であり、撮像画像のカラーフィルタアレイの配置が、R、G1、G2、Bの場合を示している。学習したカラーフィルタアレイの配置はG1、R、B、G2のため、撮像画像の第1象限をそのまま補正することはできない。このため、第1象限では抽出位置421を選択する。すなわち本実施例では、部分画像の色成分の位置関係が反転軸に対応した位置関係となるように入力画像の色成分の位置関係を決定し、該位置関係に基づく抽出位置にて撮像画像を切り出すことで、部分画像を抽出する。これにより、抽出された部分画像のカラーフィルタアレイの配置は、G1、R、B、G2になり、学習したフィルタを使用することができる。同様に、第2象限乃至第4象限ではそれぞれ、抽出位置422乃至424を選択する。これにより、学習と入力画像のカラーフィルタアレイ配置の不一致と、反転処理に伴う部分画像のカラーフィルタアレイ配置の変化を打ち消すことができる。なお、
図15では、第n(n=1~4)象限全体を部分画像の抽出位置として選択しているが、これに限定されるものではなく、第n象限を複数に分割し、それぞれを抽出位置としてもよい。
【0070】
続いて、
図14のステップS304において、撮像画像と中間補正撮像画像のそれぞれから、部分画像を抽出する。部分画像は、ステップS303にて選択された抽出位置から抽出される。なお、中間撮像補正画像は、ステップS304の前であれば、いつ生成しても構わない。
【0071】
続いてステップS305において、補正部313は、2枚の部分画像を入力画像としてCNNへ入力し、補正画像を算出する。このとき、
図13を参照して説明したネットワークを使用することができる。
図13中のぼけ画像401は撮像画像の部分画像、中間補正画像402は中間補正画像の部分画像にそれぞれ相当する。各部分画像は、R、G1、G2、Bの4チャンネル画像に配列される。フィルタとしては、ステップS301で取得したフィルタを使用することができる。
【0072】
本実施例において、補正部313は、CNNの入力画像および各畳み込み層で出力される特徴マップとフィルタとの畳み込み演算を行う際、フィルタの参照順序を反転する。
【0073】
図16は、本実施例における畳み込み演算の参照順序の説明図である。
図16(A)は、入力画像または特徴マップを示す。
図16(B)、(C)はそれぞれ、3×3のフィルタを示す。ただし、フィルタのサイズはこれに限定されるものではない。通常の畳み込み演算では、
図16(A)と
図16(B)の同じ番号に格納された値の積をとる。仮に、ステップS303にて決定された反転処理が、90°軸反転である場合、フィルタの参照順序も90°軸で反転される。このため、この際の畳み込みでは
図16(A)と
図16(C)の同じ番号に格納された値が積をとられる。
【0074】
続いて、
図14のステップS306において、補正部313は、撮像画像の全体に対して、補正画像の算出が完了したか否かを判定する。補正画像の算出が完了していない場合、ステップS303へ戻る。そして補正部313は、補正画像の算出されていない領域を抽出位置として新たに選択する。一方、補正画像の算出が完了している場合、ステップS307へ進む。ステップS307において、補正部313は、複数の補正画像を合成して、補正撮像画像を生成する。
【0075】
本実施例によれば、保持するフィルタのデータ量の増大を抑制しつつ、高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理システムを実現することができる。なお本実施例では、CNNの入力画像に撮像画像と中間補正撮像画像の2枚の画像を使用するが、中間補正撮像画像のみから入力画像を抽出してもよい。ただし、撮像画像と中間補正撮像画像のそれぞれから入力画像を取得することで、より高精度なぼけ補正が可能となる。
【0076】
また、
図13のネットワークのように、入力画像をR、G1、G2、Bのように各色のチャンネル画像に並び替える場合、G1とG2を区別する必要がある。このため、実施例1のように±45°軸反転が存在し、RBに対するG1とG2の相対位置が変化した場合、入力画像のチャンネルはRG2G1Bの順で並べなくてはならない。順番を変更しない場合、各色成分における位置関係が崩れるため、CNNがエッジなどの構造を正しく認識できず、補正精度が低下する。
【0077】
また、学習時のカラーフィルタアレイの配置(色成分の位置関係)やアジムス範囲が変化し得る場合、それらに関する情報を学習したフィルタに関連付けて(紐付けて)おいてもよい。ぼけ補正時にその情報を取得し、それに基づいて、部分画像の色成分の位置関係の変更や反転処理を制御することができる。また本実施例では、撮像素子の種類が変化するため、オプティカルブラックの信号値などが変化し得る。このため、CNNの入力画像は、オプティカルブラックの信号値を差し引き、規格化しておくことが好ましい。
【実施例3】
【0078】
次に、本発明の実施例3における画像処理システムについて説明する。本実施例の画像処理システムは、画像処理を実体的に制御する第1装置としての撮像装置500(ユーザ端末)と、撮像装置500からの指示に基づき画像処理を行う第2装置としての画像処理装置(サーバ)で構成される。
【0079】
まず、
図17および
図18を参照して、本実施例における画像処理システム50について説明する。
図17は、画像処理システム50のブロック図である。
図18は、画像処理システム50の外観図である。画像処理システム50は、撮像装置500と画像処理装置510とを備えて構成される。
【0080】
撮像装置500は、被写体空間の像を撮像する撮像部501を有する。撮像部501は、結像光学系501aおよび撮像素子501bを有する。撮像画像は、画像処理部502に入力され、Bayer配列のR、G1、G2、Bをそれぞれチャンネル成分とする4チャンネル画像に変換された後、記憶部503に記憶される。また撮像装置500は、記憶部503に記憶された画像に関する補正処理を画像処理装置510に実行させるための要求とともに該画像を画像処理装置510に送信する。画像処理装置510は、記憶部511、学習部512、および、補正部513を有する。画像処理装置510は撮像装置500から送信された要求を受信することを契機として、送信された画像に対する補正処理を実行する。
【0081】
補正部513は、実施例1の反転手段102a、変更手段102b、および、生成手段102cと同様の機能を有し、撮像時に発生した撮像画像のぼけを補正する。ぼけ補正の際、補正部513は、記憶部511に記憶されたフィルタを読み出して使用する。フィルタは、事前に学習部512で学習されたフィルタである。ぼけ補正された補正撮像画像は、再び撮像装置500へ送信され、記録媒体505に記録される。ユーザが補正撮像画像を鑑賞する際、補正撮像画像は表示部504に表示される。一連の制御は、システムコントローラ506によって行われる。
【0082】
次に、
図4を参照して、学習部512で実行される学習工程に関して説明する。なお、実施例1または実施例2と同様の説明は省略する。まずステップS101において、学習部512は、一括学習するぼけの条件を設定する。撮像装置500は、レンズ交換式の撮像装置ではなく、レンズ一体型の撮像装置である。このため、補正対象となる結像光学系は1種類のみである。撮像素子501bも変化せず、光学ローパスフィルタは存在しない。このため、変化する条件は、レンズステート、像高、および、アジムスである。レンズステートは、実施例1と同様に分割する。像高およびアジムスに関しては、アジムス分割の説明図である
図19に示されるように、第1象限(斜線部533)を4分割し、それぞれの領域に関して個別に学習を行う。ただし、分割数はこれに限定されるものではない。
【0083】
続いて、
図4のステップS102において、学習部512は、複数の訓練画像と正解画像を取得する。学習部512は、正解画像に対し、ステップS101にて定めた条件内のぼけを作用させて、訓練画像を生成する。訓練画像と正解画像は、Bayer配列のR、G1、G2、Bをそれぞれチャンネル成分とする4チャンネル画像である。続くステップS103乃至S105は実施例1と同様のため、説明を省略する。CNNとしては、
図1と同様のネットワークを用いることができる。ただし、入出力画像は4チャンネル画像である。
【0084】
次に、
図8を参照して、補正部513で実行される補正工程に関して説明する。なお、実施例1と同様の説明は省略する。本実施例における補正工程は、画像処理装置510が、画像に関する補正処理の実行の要求を撮像装置500からから受信したことを契機として行われる。ステップS201にて取得される撮像画像は、Bayer配列のR、G1、G2、Bをそれぞれチャンネル成分とする4チャンネル画像である。本実施例では、撮像画像における部分画像の位置に応じて異なるフィルタを使う必要がある。このため、フィルタは続くステップS202で取得される。
【0085】
続いてステップS202において、補正部513は、撮像画像から部分画像を抽出する。すなわち補正部513は、第n象限を4分割した領域のうち、いずれかを抽出する。そして補正部513は、抽出した領域に対応するフィルタを、記憶部511から読み込んで取得する。ステップS204は、実施例1と異なり、削除でなく画素のシフトを用いて、色成分の位置関係を変更する。
図20を参照して、これを説明する。
【0086】
図20は、色成分の位置関係の変更の説明図であり、学習と撮像素子501bのカラーフィルタアレイの配置が共にR、G1、G2、Bである場合、撮像画像の第2象限から部分画像を抽出する例である。
図20では、各チャンネルを並べて描画している。学習は、第1象限に対して行われているため、第2象限に対しては90°軸反転が設定される。このため、反転処理後の部分画像はG1、R、B、G2となる。その結果、4チャンネル化した画像では、同一の位置にある各色成分の相対的な位置関係が変化している。これを修正するため、
図20のようにG1チャンネルとBチャンネルの画像を水平方向に1画素シフトする。これは、実施例1においてBayer配列の部分画像に対して、第1列を最終列の後方へシフトした場合と同じ作業に相当する。
図8のステップS205からステップS208は、実施例1と同様であるため、それらの説明を省略する。画像処理装置510は、ステップS208により生成された補正撮像画像を撮像装置500に送信する。
【0087】
本実施例によれば、保持するフィルタのデータ量の増大を抑制し、高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理システムを実現することができる。さらに、本実施例では比較的処理負荷の大きな生成部102cによる処理をサーバ(画像処理装置510)で行う構成としたため、ユーザ端末(撮像装置500)の処理能力が高くなくとも高性能な画像処理サービスを実現することが可能となる。
【0088】
(変形例)
実施例3の画像処理システムでは、画像処理装置510に、実施例1の反転手段102a、変更手段102b、生成手段102cと同様の機能を有する補正部513を設けているが、本発明はこれに限定されるものではない。反転手段102a、変更手段102bは撮像装置500側に設け、画像処理装置510には生成手段102cを設けても良い。この場合、撮像装置500は、画像処理に対する要求とともに、反転手段102a、変更手段102bによって反転処理および色成分の位置関係の変更処理が施された入力画像を画像処理装置510に送信するようにしても良い。これによっても実施例3同様に、ユーザ端末(撮像装置500)の処理能力が高くなくとも高性能な画像処理サービスを実現することが可能となる。反転手段102a、変更手段102bにおける処理に比して生成手段102cにおける処理の方が負荷が高いためである。
【0089】
以上述べたように各実施例において、画像処理装置(画像処理部102、画像処理装置311、510)は、ニューラルネットワークを用いて、撮像画像を補正する。反転決定手段(反転手段102a)は、撮像画像の一部である部分画像の撮像画像における位置に応じて、部分画像またはニューラルネットワークのフィルタに対する反転軸を決定する(第1工程:S203、S303)。色決定手段(変更手段102b)は、反転軸に対応する、ニューラルネットワークに入力される画像における各色成分の画素の位置関係を決定する(第2工程:S204、304)。生成手段102cは、その位置関係に基づいて撮像画像から生成された入力画像を、ニューラルネットワークを用いて処理することで、入力画像を補正した補正画像を生成する(第3工程:S205~S208、S305~S307)。
【0090】
好ましくは、反転決定手段は、基準点を中心とした位置に基づいて、反転軸を決定する。また好ましくは、反転決定手段は、撮像画像を基準点まわりに角度が45度の整数倍ごとに分割した複数の領域のうち、部分画像を占める面積が最も大きい領域である最大領域に基づいて、抽出された複数の部分画像のそれぞれに対応する反転軸を決定する。
【0091】
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0092】
各実施例によれば、データ量の増大を抑制しながら高精度に撮像画像の光学的な性能劣化を補正することが可能な画像処理方法、画像処理装置、撮像装置、画像処理システム、プログラム、および、記憶媒体を提供することができる。
【0093】
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【0094】
102 画像処理部(画像処理装置)
102a 反転手段(反転決定手段)
102b 変更手段(色決定手段)
102c 生成手段