JP2021170197A - 画像処理方法、画像処理装置、画像処理プログラム、および学習済みモデルの製造方法 - Google Patents
画像処理方法、画像処理装置、画像処理プログラム、および学習済みモデルの製造方法 Download PDFInfo
- Publication number
- JP2021170197A JP2021170197A JP2020072670A JP2020072670A JP2021170197A JP 2021170197 A JP2021170197 A JP 2021170197A JP 2020072670 A JP2020072670 A JP 2020072670A JP 2020072670 A JP2020072670 A JP 2020072670A JP 2021170197 A JP2021170197 A JP 2021170197A
- Authority
- JP
- Japan
- Prior art keywords
- image
- color difference
- difference information
- image processing
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 title claims description 39
- 238000004519 manufacturing process Methods 0.000 title claims description 7
- 238000012549 training Methods 0.000 claims abstract description 104
- 238000012937 correction Methods 0.000 claims abstract description 69
- 238000004364 calculation method Methods 0.000 claims abstract description 55
- 238000013528 artificial neural network Methods 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims description 74
- 230000008569 process Effects 0.000 claims description 50
- 238000003860 storage Methods 0.000 claims description 21
- 230000004075 alteration Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 230000003287 optical effect Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 238000013527 convolutional neural network Methods 0.000 description 10
- 238000004040 coloring Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011946 reduction process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000003595 mist Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
【課題】色ごとの補正量のばらつきを低減したニューラルネットワークを取得可能な画像処理方法を提供する。【解決手段】画像処理方法は、訓練画像と正解画像とを取得する工程と、訓練画像をニューラルネットワークへ入力して出力画像を生成する第1生成工程と、訓練画像の第1色差情報と正解画像の第2色差情報と出力画像の第3色差情報とを算出する第1算出工程と、第1色差情報と第2色差情報と第3色差情報とを用いて正解画像と出力画像との差を算出する第2算出工程と、差に基づいてニューラルネットワークのネットワークパラメータを更新する更新工程とを有する。【選択図】図1
Description
本発明は、ディープラーニングを用いた画像処理方法に関する。
特許文献1には、RAW画像を入力とする多層のニューラルネットワークを学習する際に、ガンマ補正の影響を考慮することで、高解像度化や高コントラスト化(鮮鋭化)に伴うアンダーシュートやリンギングを抑制する手法が開示されている。非特許文献1には、様々な回帰問題に対して汎用的に適用可能なネットワーク構成が開示されている。また非特許文献1には、ネットワークを用いて、入力画像のアップサンプリング、JPEGデブロッキング(圧縮ノイズの除去)、デノイジング、ノンブラインドなデブラー、または、インペインティングを実行することが開示されている。
X. Mao, C. Shen, Y. Yang, "Image Restoration Using Convolutional Auto−encoders with Symmetric Skip Connections",https://arxiv.org/abs/1606.08921.
しかし、非特許文献1に開示された方法では、入力画像がRAW画像である際に適切な推定を行うことができない。また、特許文献1では、ガンマ補正の影響を考慮した誤差を用いて学習することにより、現像された画像の輝度の大きさに対して、推定精度が影響されにくいニューラルネットワークを実現している。しかしながら、一般的にニューラルネットワークを用いて補正した場合、補正結果には少なからず補正誤差が含まれる。画像を補正する場合、補正誤差が小さければ特に問題にはならないが、補正誤差が大きくなってくると、色成分ごとの補正量のばらつきによって、色が滲んでみえる。
そこで本発明は、色ごとの補正量のばらつきを低減したニューラルネットワークを取得可能な画像処理方法、画像処理装置、画像処理プログラム、および学習済みモデルの製造方法を提供することを目的とする。
本発明の一側面としての画像処理方法は、訓練画像と正解画像とを取得する工程と、前記訓練画像をニューラルネットワークへ入力して出力画像を生成する第1生成工程と、前記訓練画像の第1色差情報と前記正解画像の第2色差情報と前記出力画像の第3色差情報とを算出する第1算出工程と、前記第1色差情報と前記第2色差情報と前記第3色差情報とを用いて前記正解画像と前記出力画像との差を算出する第2算出工程と、前記差に基づいて前記ニューラルネットワークのネットワークパラメータを更新する更新工程とを有する。
本発明の他の目的及び特徴は、以下の実施例において説明される。
本発明によれば、色ごとの補正量のばらつきを低減したニューラルネットワークを取得可能な画像処理方法、画像処理装置、画像処理プログラム、および学習済みモデルの製造方法を提供することができる。
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照符号を付し、重複する説明は省略する。
まず、以下に用語を定義する。本発明は、ディープラーニングによって回帰問題を解き、入力画像から様々な出力画像を推定する方法に関する。ディープラーニングとは、多層のニューラルネットワークを用いた機械学習である。大量の訓練画像とそれに対応する正解画像(得たい出力)のペアから、ネットワークパラメータ(ウエイトとバイアス)を学習することで、未知の入力画像に対しても高精度な推定が可能となる。
多層のニューラルネットワークを用いた画像処理には、ネットワークパラメータ(ウエイトとバイアス)を更新するための処理工程と、更新されたパラメータを用いて未知の入力に対して推定を行う処理工程の二つが存在する。以下、前者を学習工程と呼び、後者を推定工程と呼ぶ。
次に、学習工程と推定工程における画像の名称を定める。ネットワークへ入力する画像を入力画像とし、特に学習工程の際に用いる、正解画像が既知の入力画像を訓練画像と呼称する。ネットワークから出力された画像を出力画像とし、特に推定工程の際の出力画像を推定画像と呼称する。ネットワークの入力画像と、正解画像はRAW画像である。ここでRAW画像とは、撮像素子から出力された未現像の画像データであり、各画素の光量と輝度値とが略線型の関係にある。ユーザが画像を鑑賞する前にRAW画像は現像されるが、その際にガンマ補正が実行される。ガンマ補正は、例えば入力の輝度値を冪乗する処理であり、その冪指数として1/2.2などが用いられる。各実施例中では、正解画像または訓練画像を生成する際の元となる無劣化相当の画像を原画像と呼称する。
また出力画像も、推定によって正解画像に準ずる画像として生成されるため、RAW画像の性質を有する。推定工程には、様々な処理が含まれる。例えば、アップサンプリング、デノイジング、圧縮ノイズの除去、デブラー(ぼけ補正)、インペインティング、デモザイキング、ディヘイズ(Dehaze)、高階調化、リライティング(照明環境の変更)がある。
各実施例の具体的な説明へ入る前に、本発明の要旨を述べる。本発明は、RAW画像を入力とする多層のニューラルネットワークの学習工程において、出力画像の色差が訓練画像や正解画像に対して大きくずれないように学習を行う。このため、まず、訓練画像、正解画像、および出力画像のそれぞれの色差情報を算出し、これらを比較する。そして、出力画像が訓練画像と正解画像の色差の範囲から外れる場合に、誤差が大きくなるようにすることで範囲内に収まるようなネットワークパラメータを学習させる。本発明では、このような学習を実行することで、補正量のばらつきを低減することが可能なネットワークパラメータを生成する。実現方法の詳細については、以下の各実施例で説明する。
まず、本発明の実施例1における画像処理システムに関して説明する。本実施例では、多層のニューラルネットワークにぼけ補正を学習、実行させる。ただし本実施例は、ぼけ補正に限定されるものではなく、その他の画像処理にも適用可能である。
図2は、本実施例における画像処理システム100のブロック図である。図3は、画像処理システム100の外観図である。画像処理システム100は、学習装置(画像処理装置)101、撮像装置102、画像推定装置(画像処理装置)103、表示装置104、記録媒体105、出力装置106、およびネットワーク107を有する。
学習装置101は、学習工程を実行する画像処理装置であり、記憶部101a、取得部101b、誤差算出部101c、更新部101d、生成部101e、および色差算出部101fを有する。取得部101bは、訓練画像および正解画像を取得する。生成部103eは、訓練画像を多層のニューラルネットワークへ入力して出力画像を生成する。更新部103dは、誤差算出部101cにより算出された出力画像と正解画像との差(誤差)および色差算出部101fにより算出された色差情報に基づいて、ニューラルネットワークのネットワークパラメータを更新する。なお、学習工程に関する詳細は、フローチャートを用いて後述する。学習されたネットワークパラメータは、記憶部101aに記憶される。
撮像装置102は、光学系102aおよび撮像素子102bを有する。光学系102aは、被写体空間から撮像装置102へ入射した光を集光する。撮像素子102bは、光学系102aを介して形成された光学像(被写体像)を受光して(光電変換して)撮像画像を取得する。撮像素子102bは、例えばCCD(Charge Coupled Device)センサや、CMOS(Complementary Metal−Oxide Semiconductor)センサなどである。撮像装置102によって取得される撮像画像は、光学系102aの収差や回折によるぼけと、撮像素子102bによるノイズを含む。
画像推定装置103は、推定工程を実行する装置であり、記憶部103a、取得部103b、および推定部103cを有する。画像推定装置103は、取得した撮像画像に対してぼけ補正を行って推定画像を生成する。ぼけ補正には、多層のニューラルネットワークを使用し、ネットワークパラメータの情報は記憶部103aから読み出される。ネットワークパラメータは学習装置101で学習されたものであり、画像推定装置103は、事前にネットワーク107を介して記憶部101aからネットワークパラメータを読み出し、記憶部103aに保存している。保存されるネットワークパラメータはその数値そのものでもよいし、符号化された形式でもよい。なお、ネットワークパラメータの学習、およびネットワークパラメータを用いたぼけ補正処理に関する詳細は、後述する。
出力画像は、表示装置104、記録媒体105、および出力装置106の少なくとも1つに出力される。表示装置104は、例えば液晶ディスプレイやプロジェクタなどである。ユーザは、表示装置104を介して、処理途中の画像を確認しながら編集作業などを行うことができる。記録媒体105は、例えば半導体メモリ、ハードディスク、ネットワーク上のサーバー等である。出力装置106は、プリンタなどである。画像推定装置103は、必要に応じて現像処理やその他の画像処理を行う機能を有する。
次に、図4を参照して、本実施例における学習装置101により実行されるネットワークパラメータの学習方法(学習済みモデルの製造方法)に関して説明する。図4は、ネットワークパラメータの学習に関するフローチャートである。図4の各ステップは、主に、学習装置101の取得部101b、誤差算出部101c、更新部101d、生成部101e、および色差算出部101fにより実行される。
まず、図4のステップS101において、取得部(取得手段)101bは、正解パッチ(正解画像)と訓練パッチ(訓練画像)とを取得する(取得工程)。正解パッチは相対的にぼけが少ない画像であり、訓練パッチは相対的にぼけが多い画像である。尚、パッチとは既定の画素数(例えば、64×64画素など)を有する画像を指す。また、正解パッチと訓練パッチの画素数は、必ずしも一致する必要はない。本実施例では、多層のニューラルネットワークのネットワークパラメータの学習に、ミニバッチ学習を使用する。このためステップS101では、複数組の正解パッチと訓練パッチを取得する。ただし本発明は、これに限定されるものではなく、オンライン学習またはバッチ学習を用いてもよい。
本実施例は、以下の方法により正解パッチと訓練パッチを取得するが、これに限定されるものではない。本実施例は、記憶部101aに記憶されている複数の原画像を被写体として、撮像シミュレーションを行うことにより、収差や回折が実質的にない高解像撮像画像と収差や回折のある低解像撮像画像を複数生成する。そして、複数の高解像撮像画像と低解像撮像画像各々から同一位置の部分領域を抽出することで、複数の正解パッチと訓練パッチを取得する。本実施例において、原画像は未現像のRAW画像であり、正解パッチと訓練パッチも同様にRAW画像である。ただし本実施例は、これに限定されるものではなく、現像後の画像でもよい。また、部分領域の位置とは、部分領域の中心を指す。複数の原画像は、様々な被写体、すなわち、様々な強さと方向のエッジや、テクスチャ、グラデーション、平坦部などを有する画像である。原画像は、実写画像でもよいし、CG(Computer Graphics)により生成した画像でもよい。
好ましくは、原画像は、撮像素子102bの輝度飽和値よりも高い輝度値を有しているとよい。これは、実際の被写体においても、特定の露出条件で撮像装置102により撮影を行った際、輝度飽和値に収まらない被写体が存在するためである。高解像撮像画像は、原画像を縮小し、撮像素子102bの輝度飽和値でクリッピング処理することによって生成する。特に、原画像として実写画像を使用する場合、既に収差や回折によってぼけが発生しているため、縮小することでぼけの影響を小さくし、高解像(高品位)な画像にすることができる。なお、原画像に高周波成分が充分に含まれている場合、縮小は行わなくてもよい。低解像撮像画像は、高解像撮像画像と同様に縮小し、光学系102aの収差や回折によるぼけの付与を行った後、輝度飽和値によってクリッピング処理することで生成する。光学系102aは、複数のレンズステート(ズーム、絞り、合焦距離の状態)と像高、アジムスによって異なる収差や回折を有する。このため、原画像ごとに異なるレンズステートや像高、アジムスの収差や回折によるぼけを付与することで、複数の低解像撮像画像を生成する。
なお、縮小とぼけの付与は順序を逆にしてもよい。ぼけの付与を先に行う場合、縮小を考慮して、ぼけのサンプリングレートを細かくする必要がある。PSF(点像強度分布)の場合には空間のサンプリング点を細かくし、OTF(光学伝達関数)の場合には最大周波数を大きくすればよい。また必要に応じて、付与するぼけには、撮像装置102に含まれる光学ローパスフィルタなどの成分を加えてもよい。なお、低解像撮像画像の生成で付与するぼけには、歪曲収差を含めない。歪曲収差が大きいと、被写体の位置が変化し、正解パッチと訓練パッチで被写体が異なる可能性があるためである。このため、本実施例で学習するニューラルネットワークは歪曲収差を補正しない。歪曲収差はバイリニア補間やバイキュービック補間などを用いて、ぼけ補正後、個別に補正する。
次に、生成された高解像撮像画像から、規定の画素サイズの部分領域を抽出し、正解パッチとする。低解像撮像画像から、抽出位置と同じ位置から部分領域を抽出し、訓練パッチとする。本実施例では、ミニバッチ学習を使用するため、生成された複数の高解像撮像画像と低解像撮像画像から、複数の正解パッチと訓練パッチを取得する。なお、原画像はノイズ成分を有していてもよい。この場合、原画像に含まれるノイズを含めて被写体であるとみなして正解パッチと訓練パッチが生成されると考えることができるため、原画像のノイズは特に問題にならない。
なお、収差や回折によるぼけ補正以外の処理に関しても、同様にシミュレーションで訓練画像と正解画像のペアを用意することで、学習工程を実行することができる。デノイジングに関しては、低ノイズの正解画像に想定されるノイズを付与することで、訓練画像を生成することができる。アップサンプリングに関しては、正解画像をダウンサンプリングすることで訓練画像を用意することができる。圧縮ノイズの除去に関しては、無圧縮または圧縮率の小さい正解画像を圧縮することで、訓練画像を生成することができる。
収差や回折以外(デフォーカスぼけなど)のデブラーに関しては、ぼけの少ない正解画像に想定されるぼけを畳み込むことで、訓練画像を生成することができる。デフォーカスぼけの場合、距離に依存するため、複数の訓練画像と正解画像に異なる距離のデフォーカスぼけを畳み込むようにする。インペインティングに関しては、欠損のない正解画像に欠損を与えることで、訓練画像を生成することができる。デモザイキングに関しては、三板式の撮像素子などで撮像された正解画像をBayer配列などで再サンプリングすることで、訓練画像を生成することができる。ディヘイズに関しては、霧や靄のない正解画像に対して散乱光を付与することで、訓練画像を生成することができる。霧や靄は、濃度や距離によって散乱光の強さが変化するため、異なる濃度や距離の散乱光に対して複数の訓練画像を生成する。高階調化に関しては、高階調な正解画像を低階調化することで訓練画像を得ることができる。リライティングに関しては、正解画像の被写体における法線、形状、反射率の分布が既知であれば、シミュレーションで異なる光源環境の訓練画像を生成することができる。ただし、この場合、計測の負荷が大きいため、実際に異なる照明環境で被写体を撮影して正解画像と訓練画像のペアを生成してもよい。
続いてステップS102において、生成部(生成手段)103eは、ステップS101にて取得された複数の訓練画像のうち少なくとも一の訓練画像を選択し、選択された訓練画像をネットワークへ入力して出力画像を生成する(第1生成工程)。複数の訓練画像の全てを選択する(訓練画像の全てをネットワークへ入力し、それら全ての出力を用いてネットワークパラメータを更新する)場合をバッチ学習と呼ぶ。この方法は、訓練画像の数が増えるにつれて、演算負荷が膨大になる。一枚の訓練画像のみを選択する場合(ネットワークパラメータの更新に一枚の訓練画像のみを用いて、更新ごとに異なる訓練画像を用いる)場合をオンライン学習と呼ぶ。この手法は、訓練画像の総数が増えても演算量が増大しないが、一枚の訓練画像に存在するノイズの影響を受けやすい。このため、複数の訓練画像から少数(ミニバッチ)を選択し、それらを用いてネットワークパラメータの更新を行なうミニバッチ法を用いることが好ましい。次の更新では、異なる少数の訓練画像を選択して用いる。この処理を繰り返すことにより、バッチ学習とオンライン学習の弱点を小さくすることができる。
ここで、図1を参照して、多層のニューラルネットワークで行われる処理に関して説明する。図1は、畳み込みニューラルネットワーク(CNN)を示す図である。ただし本実施例は、これに限定されるものではなく、例えばCNNに残差ネットワークを採用することができ、または、GAN(Generative Adversarial Network)などを用いてもよい。なお図1では、簡単のため、入力する訓練画像201を一枚だけ描画しているが、実際には選択された複数の訓練画像それぞれに対して、出力画像が生成される。訓練画像201は、RAW画像を色成分ごとに三次元方向に配列した画像である。
図5は、画像の色成分に関する説明図である。本実施例において、訓練画像は図5(A)に示されるようなBayer配列の画像である。ここでRGBは、それぞれ赤、緑、青を表す。図5(A)のBayer配列から、各色の成分だけを配列し直した構成が図5(B)である。Gは、G1とG2の2種類があるため、それぞれを抽出して配列する。図5(B)の四枚の画像を三次元方向に配列した4チャンネルの画像が、図1における訓練画像201である。この作業は必須ではないが、収差や回折は波長によって変化するため、同一のぼけを持つ色成分を配列させた方が補正しやすい。また、RGBが同一次元内に配列されていると、局所的に異なる明るさを有する画素が混合されるため、推定精度が低下しやすい。このため、訓練画像を色成分ごとに分離することが好ましい。なお、ここではBayer配列の場合を示しているが、その他の配列(ハニカム構造など)に関しても同様である。図1では描画を簡略化するため、訓練画像201を4×4の4チャンネル画像としているが、縦横の画像サイズはこれに限定されるものではない。
本実施例において、訓練画像および正解画像はそれぞれ、周期的に配列された複数の色成分を有し、訓練画像または正解画像の各色成分のみで構成される色成分画像を生成する工程(第2生成工程)を設けてもよい。ここで、色成分画像を生成する工程は、訓練画像をニューラルネットワークへ入力する前に実行され、正解画像に対する誤差の算出前に実行される。
CNNは複数の層構造になっており、各層で線型変換と非線型変換が実行される。線型変換は、入力された画像(または特徴マップ)とフィルタの畳み込み、およびバイアス(図1中のbias)との和で表現される。各層におけるネットワークパラメータ(フィルタのウエイトとバイアス)を学習工程によって更新する。非線形変換は、活性化関数(Activation Function)と呼ばれる非線型関数による変換である(図1中のAF)。活性化関数の例としては、シグモイド関数やハイパボリックタンジェント関数などがあり、本実施例では以下の式(1)で表されるReLU(Rectified Linear Unit)が用いられる。
式(1)において、maxは、引数のうち最大値を出力するMAX関数を表す。
入力層に入力された訓練画像201は、第1畳み込み層で複数のフィルタ202それぞれとのコンボリューションと、バイアスとの和を取られる。フィルタ202それぞれのチャンネル数は、訓練画像201と一致し、訓練画像201のチャンネル数が2以上の場合、3次元フィルタとなる(三次元目がチャンネル数を表す)。なお、フィルタの縦横の大きさは任意である。コンボリューションと和の結果は、活性化関数によって非線形変換が施され、第1特徴マップ203が第1中間層に出力される。ここで、第1特徴マップ203のチャンネル数(三次元方向の配列数)は、フィルタ202の数と同じである。次に、第2畳み込み層へ第1特徴マップ203が入力され、前述と同様に複数のフィルタ204のそれぞれとのコンボリューションと、バイアスとの和が取られる。その結果を非線形変換し、以下同様に畳み込み層の数だけ繰り返す。一般に、畳み込み層が3層以上あるCNNが、ディープラーニングに該当する。最後の畳み込み層から出力された結果が、CNNの出力画像211である。なお、最後の畳み込み層では、活性化関数による非線形変換を実行しなくてもよい。
続いてステップS103において、色差算出部(第1算出手段)101fは、訓練画像201、正解画像221、出力画像211のそれぞれの色差情報(色差に関する情報)を算出する(第1算出工程)。ここで、訓練画像201の色差情報を第1色差情報、正解画像221の色差情報を第2色差情報、出力画像の色差情報を第3色差情報とする。
本実施例では、色差を基準の色成分(例えばG成分)の信号値との差分と定義する。すなわち、第1色差情報と第2色差情報と第3色差情報はそれぞれ、R成分とG成分との差、またはB成分とG成分との差に関する情報である。従って、基準の色成分以外の色成分であるR成分、B成分の、G成分に対する色差Cr、Cbは、以下の式(2)、式(3)により計算される。式(2)、式(3)において(x,y)は画像上の座標値である。
式(2)、式(3)における基準の色成分をG成分としたが、ここではG1とG2の平均値を基準の色成分とする。本実施例ではこのように基準の色成分を設定するが、別の方法で算出したものを基準としてもよい。例えば、画像の輝度を設定してもよく、その場合の詳細については実施例2で説明する。このステップS103では、出力画像211、正解画像221、訓練画像201に対して式(2)、式(3)を適用し、それぞれの色差Cr、Cbを算出する。
続いてステップS104において、誤差算出部(第2算出手段)101cは、ステップS103にて算出された第1色差情報と第2色差情報と第3色差情報とを用いて、正解画像221と出力画像211との差(誤差)を算出する(第2算出工程)。本実施形態において、より具体的には、誤差算出部101cは、出力画像211と、正解画像221と、出力画像211、正解画像221、および訓練画像201のそれぞれの色差Cr、Cb(色差情報)とを用いて、誤差を算出する。本実施例では、以下の式(4)を用いて誤差Lを算出する。
式(4)において、L1は出力画像211、正解画像221を用いて算出される誤差、L2は色差情報を用いて算出される誤差、αは誤差L1、L2の比率を調整するための調整係数である。調整係数αが大きくなると、誤差Lに占める誤差L2の割合が増える。このため、調整係数αを変えることで学習時に色差の優先度を調整することができる。
また、本実施例において、式(4)の誤差L1は式(5)のように表現される。
式(5)において、Tは正解画像221の輝度値、Yは出力画像211の輝度値、(x,y)は画像上の座標値、Nはx方向の画素数、Mはy方向の画素数を示す。式(5)ではユークリッドノルムを用いているが、正解画像221と出力画像211の差異を表わす値であれば、他の指標を用いてもよい。なお本実施例では、ガンマ補正を行わずに誤差L1を算出しているが、ガンマ補正後に誤差L1を算出してもよい。
次に、本実施例における誤差L2の算出方法について説明する。誤差L2は色差情報に基づく誤差であり、本実施例において色差に関して満たすべき条件式は、式(6)、(7)のようになる。
式(6)において、Crtは正解画像221におけるR成分の色差、Criは訓練画像201におけるR成分の色差、Cryは出力画像211におけるR成分の色差、(x,y)は画像上の座標値である。また、式(7)において、Cbtは正解画像221におけるB成分の色差、Cbiは訓練画像201におけるB成分の色差、Cbyは出力画像211におけるB成分の色差、(x,y)は画像上の座標値である。式(6)、(7)の違いは、R成分とB成分の違いであり、これらを置き換えても説明可能な内容であるため、本実施例では式(6)のR成分について説明する。
式(6)において、出力画像211の色差は正解画像221の色差、または訓練画像201の色差の小さい方よりも大きく、正解画像221の色差、または訓練画像201の色差の大きい方よりも小さくなることを意味している。
図6は、色差に関する説明図であり、正解画像221と出力画像211と訓練画像201のそれぞれの色差の断面を示す。図6の実線は出力画像211の色差Cry(第3色差情報)、破線は正解画像221の色差Crt(第2色差情報)、一点鎖線は訓練画像201の色差Cri(第1色差情報)である。図6において、縦軸は色差Cr、横軸はx座標をそれぞれ示し、各線の交点で領域を5つの領域A〜Dに分割している。
図6において、全領域で色差Cryと色差Crtで完全に一致するのが最も理想的な状態となる。しかしながら、前述のように、ニューラルネットワークの回帰問題において、どのような入力画像に対しても出力画像211と正解画像221が常に一致する学習を実施するというのは非常に困難である。逆に、このような学習を行うことができたとしても、未知の入力画像に対しては推定精度が低くなる等の問題が生じることもある。
そこで本実施例では、式(6)、(7)に示されるように、ある程度幅を持たせることで誤差が生じる場合であっても、色成分ごとに補正量が大きくばらつかないように抑制する。本実施例では、式(6)を満たすために、式(8)を用いて色差の誤差L2を算出する。
式(8)において、Wrは誤差L2の算出に用いるR成分のウエイトマップ(重み成分)である。式(8)はmax関数で表現させる第1項と、min関数で表現される第2項で構成される。式(8)の第1項は上限値に関する条件であり、色差Crtと色差Criの大きい方に対して色差Cryがより大きくなった場合、その差分値となる。逆に、色差Crtと色差Criの大きい方に対して色差Cryが等しいか小さくなった場合はゼロとなる。一方、式(8)の第2項は下限値に関する条件であり、色差Crtと色差Criの小さい方に対して色差Cryがより小さくなった場合、その差分値となる。逆に、色差Crtと色差Criの小さい方に対して色差Cryが等しいか大きく場合はゼロとなる。第1項はゼロ以上、第2項はゼロ以下となるが、式(8)は第1項に対して第2項で差分をとる形となっているため、ウエイトマップWrはゼロ以上となる。
次に、図6と式(8)との対応について説明する。図6において、領域Aおよび領域Dは、色差Cryが色差CrtとCriの間に存在する。このため、式(8)において、第1項、第2項ともにゼロとなり、ウエイトマップWrもゼロとなる。領域Bと領域Cは色差Cryが色差Crt、色差Criよりも小さい場合となる。この場合、第1項はともにゼロとなるが、第2項は値を有し、領域Bは破線の色差Crtと実線の色差Cryの差分値、領域Cは一点鎖線の色差Criと実線の色差Cryの差分値となる。領域Eは色差Cryが色差Crt、色差Criよりも大きい場合となる。この場合、第2項はゼロとなるが、第1項は値を有し、実線の色差Cryと破線の色差Crtの差分値となる。
なお、図6には存在しないが、色差Cryが色差Crt、色差Criよりも大きく、かつ色差Criが色差Crtより大きいという場合もある。この場合、第2項はゼロとなるが、第1項は値を有し、実線の色差Cryと一点鎖線の色差Criの差分値となる。このように、式(8)は領域A、領域Dのように色差Cryが色差Crtと色差Criの間にある場合はゼロとなり、領域B、領域C、領域Eのように色差Cryが色差Crtと色差Criの範囲から外れた場合は、外れた分だけ値が大きくなる。このような処理をB成分に対しても同様に実施して、ウエイトマップWb(重み成分)を生成する。そして、ウエイトマップWr、Wbを用いて色差の誤差L2は式(9)のように表現することができる。
式(5)では、正解画像221と出力画像211の残差平方和を計算しているのに対して、式(9)では、ウエイトマップWr、Wbによって重み付けされた残差平方和で誤差L2が算出される。このように重み付けすることで、図6の領域A、領域Dのように、R成分とB成分における出力画像211の色差が訓練画像201の色差と正解画像221の色差の間に入っている場合は、誤差L2もゼロとなる。一方、領域B、領域C、領域Eのように出力画像211の色差が訓練画像201の色差と正解画像221の色差の範囲から外れている場合は誤差L2が正の値となる。本実施例に用いる誤差Lは、前述のように、式(4)のように表現され、誤差L1は式(5)、誤差L2は式(9)より算出される。
以上のように、第2算出工程にて算出される誤差は、正解画像と出力画像とを用いて算出される第1成分(第1誤差成分)と、第1色差情報と第2色差情報と第3色差情報とを用いて算出される第2成分(第2誤差成分)とにより構成される。ここで第1成分は、正解画像と出力画像との誤差に基づいて算出される。好ましくは、第2算出工程において、第1成分(誤差L1)と第2成分(誤差L2の重み成分Wr、Wb)とを用いて誤差を算出する。また好ましくは、第2成分は、第3色差情報に対応する第3色差が第1色差情報に対応する第1色差と第2色差情報に対応する第2色差との間の色差である場合には減少する。一方、第3色差が第1色差と第2色差のいずれよりも小さいか、または第1色差と第2色差のいずれよりも大きい場合には増加する。
このように本実施例では、誤差Lは出力画像211の色差が訓練画像201の色差と正解画像221の色差の範囲から外れるほど、その画素値の誤差がより大きくなる。式(4)において、仮に調整係数αがゼロ、すなわち誤差Lが誤差L1のみで構成されるとする場合、正解画像221と出力画像211が一致するように学習する。この場合、例えば、図6では出力画像211の色差Cryは正解画像221の色差Crtよりも小さくなっているが、逆に出力画像211の色差Cryが正解画像221の色差Crtよりも大きくなったとしても差分が等しければ誤差L1および誤差Lは同じ値になる。
一方、調整係数αが正の値であれば、これら2つのパターンは区別される。差分が等しかったとしても、色差Crtと色差Criの間に色差Cryがある場合は誤差LがL1のみとなり、色差Crtと色差Criの外に色差Cryがある場合は誤差L2の分だけ誤差Lが増加する。本実施例では、このような方法で正解画像221と出力画像211において誤差が生じる場合であっても、大きく色差がずれないような誤差Lを利用する。
続いてステップS105において、更新部(更新手段)101dは、ステップS104にて算出された誤差に基づいて、ニューラルネットワークのネットワークパラメータの更新量を算出し、ネットワークパラメータを更新する(更新工程)。ここでは、誤差逆伝搬法(Backpropagation)が用いられる。誤差逆伝搬法では、誤差の微分に基づいて更新量を算出する。ただし、本実施例はこれに限定されるものではない。
続いてステップS106において、更新部101dは、所定の終了条件を満たすか否か、すなわち、ネットワークパラメータの最適化が終了したか否かを判定する。ここで所定の終了条件とは、例えば、学習工程が既定の時間に達した場合、パラメータの更新回数が既定の回数に達した場合、パラメータ更新には用いない訓練画像と正解画像を用意しておき、その出力画像と正解画像の誤差が所定の値以下になった場合などである。または、ユーザが最適化終了を指示してもよい。所定の終了条件を満たさない場合、ステップS102に戻り、更新部101dは新たなミニバッチを取得してネットワークパラメータを更新する。一方、所定の終了条件を満たす場合、ステップS108へ進む。
ステップS107において、更新部101dにて更新されたネットワークパラメータを記憶部101aに出力する。本実施例では、式(4)の調整係数αの値、正解画像221、出力画像211、訓練画像201に対してガンマ補正の実施の有無等、学習に関する設定条件(学習条件情報)を変えてネットワークパラメータを学習する。そして、ネットワークパラメータとそれに対応する学習条件情報とを合わせて記憶部101aに記憶する。
例えば、調整係数αの値を変えながら学習した場合、調整係数αの値を小さくすると、より正解画像221と出力画像211が一致することを優先するネットワークパラメータを生成する。逆に、調整係数αの値を大きくすると、出力画像211の色ごとのばらつきをより抑制したネットワークパラメータを生成することができる。このように、調整係数αを変えることで、推定精度と色ごとの補正量のばらつきのバランスを調整することが可能となる。以上の学習工程により、色ごとの補正量のばらつきを低減した多層のニューラルネットワークを得ることができる。
次に、図7を参照して、画像推定装置103で実行される推定工程に関して説明する。図7は、推定工程のフローチャートである。まずステップS201において、取得部103bは、撮像装置102または記録媒体105から、撮像画像を取得する。撮像画像は、未現像のRAW画像である。RAW画像の輝度値が符号化されている場合、推定部103cは復号処理を実行する。また取得部103bは、撮像装置102または記録媒体105から、学習条件情報を取得する。ここでは、学習時の調整係数αの値を学習条件情報とする。
続いてステップS202において、推定部103cは、ステップS201にて取得した学習条件情報に対応するネットワークパラメータを取得する。ネットワークパラメータは、学習装置101の記憶部101aから読み出される。または、画像推定装置103の記憶部103aに複数のネットワークパラメータを保存しておき、記憶部103aから読み出してもよい。取得するネットワークパラメータは、ステップS201にて取得した学習条件情報と学習工程で用いられた学習条件情報とが互いに一致するもの、または、最も近いものである。
続いてステップS203において、推定部103cは、撮像画像からCNNへ入力する入力画像を取得する。入力画像は、訓練画像と同様に、色成分ごとに配列して三次元方向にスタックされる。なお、推定工程の入力画像のサイズは、学習工程における訓練画像のサイズと一致していなくてもよい。
続いてステップS204において、推定部103cは、入力画像とネットワークパラメータとを用いて、推定画像(出力画像)を生成する。推定画像の生成には、学習工程と同様に、図1に示されるCNNが用いられる。ただし、図1中の出力画像211が推定画像となり、それ以降の正解画像との誤差算出等の処理は行わない。
続いてステップS205において、推定部103cは、撮像画像の所定の領域に対して推定が完了したか否かを判定する。推定が完了していない場合、ステップS203へ戻り、推定部103cは、撮像画像の所定の領域から新たな入力画像を取得する。推定に用いられるCNNにおいて、出力画像のサイズが入力画像よりも小さくなる場合、所定の領域からオーバーラップして入力画像を取得する必要がある。所定の領域は、撮像画像の全体または一部である。撮像画像はRAW画像であるため、受光して得られた画像の他に、ヘッダー情報(前記画像の画素数や撮影時刻などの情報)や撮像素子のオプティカルブラックの情報が含まれていることがある。ヘッダー情報やオプティカルブラックは、収差・回折のぼけと無関係であるため、所定の領域からそれらを除いてもよい。
続いてステップS206において、推定部103cは、収差や回折によるぼけが補正された撮像画像を出力する。必要に応じて、推定部103cは、ヘッダー情報やオプティカルブラックの情報を含めて出力する。
以上の推定処理により、色ごとの推定精度のばらつきが少ないネットワークパラメータ用いて推定を行うことができる。これにより、収差や回折によるぼけの補正効果も色によって補正量がばらつくことなく、より高精度な補正を実現することができる。また、推定工程後、ユーザが任意で露出補正などの編集を行い、現像処理により最終的な現像画像を得る。
本実施例では、学習条件情報によってネットワークパラメータを切り替えて補正を実施する方法について述べたが、複数のネットワークパラメータを取得して、入力画像をそれぞれのネットワークに入力することで複数の出力画像を生成してもよい。これにより、学習条件情報が異なる出力画像を複数生成することができるため、例えばそれらを補間することにより、中間の学習条件情報の出力画像を生成することができる。また、逆に学習条件情報は1つだけでもよく、特定のネットワークパラメータのみ撮像装置102または記録媒体105に保持しておいてもよい。
なお本実施例は、収差や回折によるぼけの補正に関するが、これに限定されるものではない。例えば、アップサンプリングやデノイジング等の他の手法であっても、それらに対応する訓練画像と正解画像とを用いて式(4)の誤差Lを用いた学習を実施することで、同様の効果を得ることができる。
次に、本発明の実施例2における画像処理システムに関して説明する。
図8は、本実施例における画像処理システム300のブロック図である。図9は、画像処理システム300の外観図である。画像処理システム300は、ネットワーク303を介して接続された学習装置301と撮像装置302とを含む。
図8は、本実施例における画像処理システム300のブロック図である。図9は、画像処理システム300の外観図である。画像処理システム300は、ネットワーク303を介して接続された学習装置301と撮像装置302とを含む。
学習装置301は、記憶部311、取得部312、誤差算出部313、更新部314、生成部315、および色差算出部316を有し、ニューラルネットワークで収差や回折によるぼけを補正するためのネットワークパラメータを学習する。
撮像装置302は、被写体空間を撮像して撮像画像を取得し、読み出したネットワークパラメータを用いて撮像画像中の収差や回折によるぼけを補正する。撮像装置302は、光学系321および撮像素子322を有する。画像推定部323は、取得部323aおよび推定部323bを有し、記憶部324に保存されたネットワークパラメータを用いて、撮像画像の補正を実行する。ネットワークパラメータは、学習装置301で事前に学習され、記憶部311に保存されている。撮像装置302は、記憶部311からネットワーク303を介してネットワークパラメータを読み出し、記憶部324に保存する。収差や回折によるぼけを補正した撮像画像(出力画像)は、記録媒体325に保存される。ユーザから出力画像の表示に関する指示が出された場合、保存された出力画像が読み出され、表示部326に表示される。なお、記録媒体325に既に保存された撮像画像を読み出し、画像推定部323でぼけ補正を行ってもよい。以上の一連の制御は、システムコントローラ327によって行われる。
次に、本実施例における多層のニューラルネットワークで行われる処理に関して説明する。本実施例において、学習工程は学習装置301において実行され、推定工程は画像推定部323によって実行される。なお本実施例における推定工程は、実施例1にて説明した図7と同様の処理になるため、その説明は省略する。
次に、図10を参照して、本実施例における学習装置301により実行されるネットワークパラメータの学習方法(学習済みモデルの製造方法)に関して説明する。図10は、ネットワークパラメータの学習に関するフローチャートである。図10の各ステップは、主に、学習装置301の取得部312、誤差算出部313、更新部314、生成部315、および色差算出部316により実行される。図10は、実施例1にて説明した図4に対して、色差情報の算出方法および、色差情報の算出前にホワイトバランス補正およびガンマ補正を実行する点が異なる。
図10のステップS301(取得工程)およびステップS302(第1生成工程)は、図4のステップS101、S102とそれぞれ同様である。続いてステップS303において、生成部315は、ステップS302で取得したホワイトバランス係数を用いて訓練画像301、正解画像321および出力画像311を補正する。通常、デジタルカメラなどの撮像装置302は、オートホワイトバランスと称し、自動的に光源の種類を判別して補正する機能を有する。しかしながら、被写体に白色が含まれない場合、光源の種類の判別が難しい。このため撮像装置302は、使用者が光源の種類をメニューから選択するプリセットホワイトバランス機能や、光源の色温度等を直接指定できるマニュアルホワイトバランス機能を有することが一般的である。プリセットホワイトバランス機能では、白熱電球、晴天、曇天、蛍光灯というように、それぞれの撮影条件に適したホワイトバランス係数(色別のゲイン値)が用意されている。
ステップS303において、生成部315は、正解画像321または訓練画像301の元となるRAW画像の撮影時に設定されたホワイトバランス係数を取得する。ホワイトバランス係数は、RAW画像のヘッダー情報から取得してもよいし、撮像装置302から取得してもよい。なお以降の説明において、ヘッダー情報と記載されている場合は画像の付加情報を表わしており、フッター情報であってもよい。生成部315は、取得したホワイトバランス係数を用いて、出力画像311、正解画像321、および訓練画像301を補正する。R、G、Bのホワイトバランス係数をそれぞれWBr、WBg、WBb、調整前の画像をそれぞれIr0、Ig0、Ib0とし、調整後の画像をそれぞれIr、Ig、Ibとしたとき、ホワイトバランス係数による調整は式(10)〜(12)のようになる。
なお、式(10)〜(12)のようにホワイトバランス係数を直接色ごとに掛けるのではなく、規格化してから係数を掛けてもよい。その場合、例えばGの係数で規格化するのであれば、R、Bの係数に対して、Gの係数で割り、それぞれRとBの画像に対して掛ければよい。また、図5のようにGをG1、G2のように二つに分ける場合、それぞれのホワイトバランス係数を掛けてもよいし、G1とG2との平均値を計算し、平均のホワイトバランス係数をGの画像に掛けてもよい。なお、RAW画像に含まれるオプティカルブラックは色成分に依存しないため、オプティカルブラックを考慮する場合は式(10)〜(12)の計算を実施する前にオプティカルブラックの値を各画像から差し引き、計算後に加算すればよい。
続いてステップS304において、生成部315は、ホワイトバランス補正後の訓練画像301、正解画像321、および出力画像311に対して、ガンマ補正を実施する。図11は、ガンマ補正の説明図であり、ガンマ補正に用いられるガンマカーブの一例を示す。図11において、横軸はガンマ補正前の信号値(輝度値)、縦軸はガンマ補正後の信号値(輝度値)をそれぞれ示し、それぞれの信号値は規格化されている。本実施例では、訓練画像301、正解画像321、および出力画像311に対して、図11に示すガンマカーブを用いてガンマ補正を実施する。
続いてステップS305において、色差算出部(第1算出手段)316は、訓練画像301、正解画像321、および出力画像311から各画像の色差情報を算出する。本実施例では、RGB空間からYUV空間に変換して、U(B−Y)とV(R−Y)を色差情報とする。すなわち、
第1色差情報と第2色差情報と第3色差情報はそれぞれ、R成分と輝度成分(輝度信号)との差、またはB成分と輝度成分(輝度信号)との差に関する情報である。
第1色差情報と第2色差情報と第3色差情報はそれぞれ、R成分と輝度成分(輝度信号)との差、またはB成分と輝度成分(輝度信号)との差に関する情報である。
各画像をRGB空間からYUV空間へ変換する際には、式(13)が用いられる。
本実施例では、式(13)を用いて、訓練画像301、正解画像321および出力画像311のYUVを算出する。そして、Vを色差Cr、Uを色差Cbとする。なお本実施例は、色差情報としてYUV空間を用いているが、これに限定されるものではなく、別のフォーマットの色空間を用いてもよい。
ステップS306以降の工程については、実施例1のステップS104以降と同様であるため、説明は省略する。以上が本実施例にて実行される学習工程となる。このように、YUVに変換することで色差情報として輝度成分とR成分またはG成分の差分を用いることや、訓練画像301、正解画像321、および出力画像311に対してホワイトバランス調整やガンマ補正を実施してもよい。すなわち本実施例において、第1算出工程(ステップS304、S305)において、正解画像と出力画像とに対してガンマ補正を行い、ガンマ補正後の正解画像と出力画像のそれぞれの第2色差情報と第3色差情報とを算出する。本実施例の学習方法においても、実施例1と同様に、色ごとの補正量のばらつきを低減することが可能なネットワークパラメータを生成することができる。
次に、本発明の実施例3における画像処理システムに関して説明する。本実施例における画像処理システムの概観図は図3に示す実施例1の概観図と同様である。本実施例におけるブロック図は、基本的には図2に示す実施例1のブロック図と同様であるが、学習装置101および画像推定装置103の一部が異なる。本実施例の学習装置は、図2の色差算出部101fが存在しない点を除いて、図2の学習装置101と同じである。画像推定装置に関しては、図2に示される画像推定装置103の代わりに、図12に示される画像推定装置400が用いられる。図12の画像推定装置400において、記憶部401、取得部402、および推定部403は、図2の画像推定装置103における記憶部103a、取得部103b、および推定部103cとそれぞれ同様である。画像推定装置400は、更に、撮影画像および推定画像の色差を算出する色差算出部404、および、算出した色差を用いて推定画像の色差を補正する色差補正部405を有する。
次に、画像処理システムの画像処理方法について説明する。本実施例では、色ごとの補正量のばらつきによって生じる色付きを低減させるための処理(色付き低減処理)を学習工程ではなく、推定工程で実施する。本実施例における学習工程は、実施例1の図4のフローで実行され、誤差Lは調整係数α=0で学習を行う。それ以外の処理は実施例1と同様であるため、その説明は省略する。
次に、図13を参照して、画像推定装置400で実行される本実施例における推定工程について説明する。図13は、本実施例における推定工程のフローチャートである。図13のステップS401〜S406は、実施例1にて説明した図7のステップS201〜S206とそれぞれ同様である。本実施例では、図7のフローチャートに対してステップS407が追加されるため、ステップS407に関して説明する。
ステップS407において、色差算出部404は、撮影画像とステップS406にて出力された推定画像とを用いて、色付き低減処理を実行する。まず、色差算出部404は、撮影画像と推定画像の色差情報を算出する。本実施例では、色差を基準色Gに対する信号値の差分と定義する。従って、色差は式(14)、(15)により計算される。ここで、R1、G1、B1は、撮影画像のRGBの各信号値、(x,y)は画像上の座標値、C1r、C1bはR成分、B成分のG成分に対する色差である。
式(14)、(15)における基準の色成分をG成分としているが、本実施例では撮影画像、推定画像ともにRAW画像となるため、G成分には図5のようにG1、G2が存在する。このため本実施例では、G1とG2の平均値を基準の色成分とする。また、式(14)、(15)を用いて色差を計算する際は、RAW画像を図5(B)のように分離して、分離した後の画像における同じ座標のそれぞれの色成分の差分をとる。または、図5(A)の状態から存在しない色成分を補間して生成し、補間後の画像に関して各色成分の差分を計算してもよい。
次に、推定画像についても同様に式(16)、(17)により色差を算出する。ここで、R2、G2、B2は、推定画像のRGBの各信号値、(x,y)は画像上の座標値、C2r、C2bはR成分、B成分のG成分に対する色差である。
次に、色差補正部405は、撮影画像と推定画像の各画素の色差情報C1r、C1b、C2r、C2bに基づき、各色成分に対して補正量の調整が必要か否かを決定する。この決定は、以下のように、色差が増大しているか否か、色差の符号が反転しているか否かに基づいて行うことができる。色差補正部405は、RGBの画素のうちR画素とB画素(又は、各画素におけるR成分とB成分)に対してそれぞれ以下の判定を行う。そして色差補正部405は、いずれかを満たす場合、その色成分の画素に対し、色付き抑制のための画素値調整が必要と決定する。
<Rに対する判定>
判定条件1:C1r(x,y)とC2r(x,y)が同符号、且つ|C1r(x,y)| < |C2r(x,y)|
判定条件2:C1r(x,y)とC2r(x,y)が異符号
<Bに対する判定>
判定条件1:C1b(x,y)とC2b(x,y)が同符号、且つ|C1b(x,y)| < |C2b(x,y)|
判定条件2:C1b(x,y)とC2b(x,y)が異符号
この判定結果により、補正量の調整が必要と決定された画素について、色差補正部405は色付き抑制のための画素値調整を適用する。画素値調整は例えば以下に示すように、色差が増大した場合は推定前の撮影画像の色差を使用し、色差の符号が反転した場合は色差を0とするものであってよい。
判定条件1:C1r(x,y)とC2r(x,y)が同符号、且つ|C1r(x,y)| < |C2r(x,y)|
判定条件2:C1r(x,y)とC2r(x,y)が異符号
<Bに対する判定>
判定条件1:C1b(x,y)とC2b(x,y)が同符号、且つ|C1b(x,y)| < |C2b(x,y)|
判定条件2:C1b(x,y)とC2b(x,y)が異符号
この判定結果により、補正量の調整が必要と決定された画素について、色差補正部405は色付き抑制のための画素値調整を適用する。画素値調整は例えば以下に示すように、色差が増大した場合は推定前の撮影画像の色差を使用し、色差の符号が反転した場合は色差を0とするものであってよい。
<Rに対する画素値調整>
判定条件1を満たす場合(色差増大):R2(x,y)= G2(x,y)+ C1r(x,y)
判定条件2を満たす場合(色差反転):R2(x,y)= G2(x,y)
判定条件1、2をいずれも満たさない場合:出力画像のR2(x、y)をそのままR成分として用いる
<Bに対する画素値調整>
判定条件1を満たす場合(色差増大):B2(x,y)= G2(x,y)+ C1b(x,y)
判定条件2を満たす場合(色差反転):B2(x,y)= G2(x,y)
判定条件1、2をいずれも満たさない場合:出力画像のB2(x、y)をそのままB成分として用いる。
判定条件1を満たす場合(色差増大):R2(x,y)= G2(x,y)+ C1r(x,y)
判定条件2を満たす場合(色差反転):R2(x,y)= G2(x,y)
判定条件1、2をいずれも満たさない場合:出力画像のR2(x、y)をそのままR成分として用いる
<Bに対する画素値調整>
判定条件1を満たす場合(色差増大):B2(x,y)= G2(x,y)+ C1b(x,y)
判定条件2を満たす場合(色差反転):B2(x,y)= G2(x,y)
判定条件1、2をいずれも満たさない場合:出力画像のB2(x、y)をそのままB成分として用いる。
ステップS407では、前述の画素値調整を行い、調整後の画像を最終的な推定画像として出力する。ステップS407は、算出工程と補正工程とを含む。算出工程において、色差算出部(算出手段)404は、撮影画像の第1色差情報と出力画像(推定画像)の第2色差情報とを算出する。続いて補正工程において、色差補正部(補正手段)405は、第1色差情報と第2色差情報とを用いて第2色差情報を補正する。
好ましくは、補正工程において、第2色差情報に対応する第2色差が第1色差情報に対応する第1色差よりも広がっている場合、第2色差を小さくするように第2色差情報を補正する。また好ましくは、補正工程において、第1色差情報に対応する第1色差の符号と第2色差情報に対応する第2色差の符号とが異なる場合、第2色差の絶対値を小さくするように第2色差情報を補正する。
このように本実施例では、推定工程において、推定前の撮影画像と推定画像に対して色差を算出し、算出した色差を評価する。評価した結果、色差が増大する場合や色差が反転する場合に推定画像に対して画素値の調整を行うことで、色成分の補正量のずれに起因した色付きを抑制することができる。このような方法でも、他の実施例と同様に色ごとの補正量のばらつきを抑制した推定画像を生成することができる。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
各実施例によれば、色ごとの補正量のばらつきを低減したニューラルネットワークを取得可能な画像処理方法、画像処理装置、画像処理プログラム、および学習済みモデルの製造方法を提供することができる。
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
101:学習装置(画像処理装置)
101b:取得部(取得手段)
101c:誤差算出部(第2算出手段)
101d:更新部(更新手段)
101e:生成部(生成手段)
101f:色差算出部(第1算出手段)
101b:取得部(取得手段)
101c:誤差算出部(第2算出手段)
101d:更新部(更新手段)
101e:生成部(生成手段)
101f:色差算出部(第1算出手段)
Claims (17)
- 訓練画像と正解画像とを取得する取得工程と、
前記訓練画像をニューラルネットワークへ入力して出力画像を生成する第1生成工程と、
前記訓練画像の第1色差情報と前記正解画像の第2色差情報と前記出力画像の第3色差情報とを算出する第1算出工程と、
前記第1色差情報と前記第2色差情報と前記第3色差情報とを用いて、前記正解画像と前記出力画像との差を算出する第2算出工程と、
前記差に基づいて前記ニューラルネットワークのネットワークパラメータを更新する更新工程と、を有することを特徴とする画像処理方法。 - 前記訓練画像および前記正解画像はそれぞれ、周期的に配列された複数の色成分を有し、
前記画像処理方法は、前記訓練画像または前記正解画像の各色成分のみで構成される色成分画像を生成する第2生成工程を更に有し、
前記第2生成工程は、前記訓練画像を前記ニューラルネットワークへ入力する前に実行され、前記差の算出前に実行されることを特徴とする請求項1に記載の画像処理方法。 - 前記第1色差情報と前記第2色差情報と前記第3色差情報はそれぞれ、R成分とG成分との差、またはB成分とG成分との差に関する情報であることを特徴とする請求項1または2に記載の画像処理方法。
- 前記第1色差情報と前記第2色差情報と前記第3色差情報はそれぞれ、R成分と輝度成分との差、またはB成分と輝度信号との差に関する情報であることを特徴とする請求項1または2に記載の画像処理方法。
- 前記第1算出工程において、前記正解画像と前記出力画像とに対してガンマ補正を行い、ガンマ補正後の前記正解画像と前記出力画像のそれぞれの前記第2色差情報と前記第3色差情報とを算出することを特徴とする請求項1乃至4のいずれか一項に記載の画像処理方法。
- 前記第2算出工程にて算出される前記差は、前記正解画像と前記出力画像とを用いて算出される第1成分と、前記第1色差情報と前記第2色差情報と前記第3色差情報とを用いて算出される第2成分と、により構成されることを特徴とする請求項1乃至5のいずれか一項に記載の画像処理方法。
- 前記第2算出工程において、前記第1成分と前記第2成分とを用いて前記差を算出することを特徴とする請求項6に記載の画像処理方法。
- 前記第2成分は、
前記第3色差情報に対応する第3色差が前記第1色差情報に対応する第1色差と前記第2色差情報に対応する第2色差との間の色差である場合には減少し、
前記第3色差が前記第1色差と前記第2色差のいずれよりも小さいか、または前記第1色差と前記第2色差のいずれよりも大きい場合には増加することを特徴とする請求項6または7に記載の画像処理方法。 - 訓練画像と正解画像を取得する取得手段と、
前記訓練画像をニューラルネットワークへ入力して出力画像を生成する生成手段と、
前記訓練画像の第1色差情報と前記正解画像の第2色差情報と前記出力画像の第3色差情報とを算出する第1算出手段と、
前記第1色差情報と前記訓練画像と前記正解画像の前記色差情報とを用いて、前記正解画像と前記出力画像との差を算出する第2算出手段と、
前記差に基づいて前記ニューラルネットワークのネットワークパラメータを更新する更新手段と、を有することを特徴とする画像処理装置。 - 請求項1乃至8のいずれか一項に記載の画像処理方法をコンピュータに実行させることを特徴とする画像処理プログラム。
- 訓練画像と正解画像とを取得する取得工程と、
前記訓練画像をニューラルネットワークへ入力して出力画像を生成する第1生成工程と、
前記訓練画像の第1色差情報と前記正解画像の第2色差情報と前記出力画像の第3色差情報とを算出する第1算出工程と、
前記第1色差情報と前記第2色差情報と前記第3色差情報とを用いて、前記正解画像と前記出力画像との差を算出する第2算出工程と、
前記差に基づいて前記ニューラルネットワークのネットワークパラメータを更新する更新工程と、を有することを特徴とする学習済みモデルの製造方法。 - 撮影画像をニューラルネットワークへ入力し出力画像を生成する生成工程と、
前記撮影画像の第1色差情報と前記出力画像の第2色差情報とを算出する算出工程と、
前記第1色差情報と前記第2色差情報とを用いて前記第2色差情報を補正する補正工程と、を有することを特徴とする画像処理方法。 - 前記補正工程において、前記第2色差情報に対応する第2色差が前記第1色差情報に対応する第1色差よりも広がっている場合、前記第2色差を小さくするように前記第2色差情報を補正することを特徴とする請求項12に記載の画像処理方法。
- 前記補正工程において、前記第1色差情報に対応する第1色差の符号と前記第2色差情報に対応する第2色差の符号とが異なる場合、前記第2色差の絶対値を小さくするように前記第2色差情報を補正することを特徴とする請求項12または13に記載の画像処理方法。
- 撮影画像をニューラルネットワークへ入力し出力画像を生成する生成手段と、
前記撮影画像の第1色差情報と前記出力画像の第2色差情報とを算出する算出手段と、
前記第1色差と前記第2色差に基づき前記出力画像の色差を補正する補正手段と、を有することを特徴とする画像処理装置。 - 請求項12乃至14のいずれか一項に記載の画像処理方法をコンピュータに実行させることを特徴とする画像処理プログラム。
- 請求項16に記載の画像処理プログラムを記憶していることを特徴とする記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020072670A JP2021170197A (ja) | 2020-04-15 | 2020-04-15 | 画像処理方法、画像処理装置、画像処理プログラム、および学習済みモデルの製造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020072670A JP2021170197A (ja) | 2020-04-15 | 2020-04-15 | 画像処理方法、画像処理装置、画像処理プログラム、および学習済みモデルの製造方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021170197A true JP2021170197A (ja) | 2021-10-28 |
Family
ID=78119608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020072670A Pending JP2021170197A (ja) | 2020-04-15 | 2020-04-15 | 画像処理方法、画像処理装置、画像処理プログラム、および学習済みモデルの製造方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021170197A (ja) |
-
2020
- 2020-04-15 JP JP2020072670A patent/JP2021170197A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7242185B2 (ja) | 画像処理方法、画像処理装置、画像処理プログラム、および、記憶媒体 | |
JP5284537B2 (ja) | 画像処理装置、画像処理方法、画像処理プログラム、およびそれを用いた撮像装置 | |
US8659672B2 (en) | Image processing apparatus and image pickup apparatus using same | |
JP4887546B2 (ja) | 輝度変化に適応してノイズをフィルタリングする方法及びシステム | |
JP5188651B2 (ja) | 画像処理装置、およびそれを用いた撮像装置 | |
JP7258604B2 (ja) | 画像処理方法、画像処理装置、プログラム、および学習済みモデルの製造方法 | |
US20050007477A1 (en) | Correction of optical distortion by image processing | |
JP2010252231A (ja) | 画像処理装置、その制御方法、及びプログラム | |
US8711251B2 (en) | Method and device for reducing image color noise | |
JP2021140663A (ja) | 画像処理方法、画像処理装置、画像処理プログラム、および記憶媒体 | |
JP2021168048A (ja) | 画像処理方法、画像処理装置、画像処理システム、およびプログラム | |
US20240046439A1 (en) | Manufacturing method of learning data, learning method, learning data manufacturing apparatus, learning apparatus, and memory medium | |
JP5479187B2 (ja) | 画像処理装置及びそれを用いた撮像装置 | |
JP2013055623A (ja) | 画像処理装置、および画像処理方法、情報記録媒体、並びにプログラム | |
JP2013046380A (ja) | 画像処理装置、画像処理方法およびプログラム | |
CN113706393A (zh) | 视频增强方法、装置、设备及存储介质 | |
JP4161719B2 (ja) | 画像処理装置および方法、記録媒体、並びにプログラム | |
JP7414745B2 (ja) | 学習データの製造方法、学習方法、学習データ製造装置、学習装置、およびプログラム | |
JP2021170197A (ja) | 画像処理方法、画像処理装置、画像処理プログラム、および学習済みモデルの製造方法 | |
JP2021189929A (ja) | 画像処理方法、プログラム、画像処理装置、および、画像処理システム | |
JP2020061129A (ja) | 画像処理方法、画像処理装置、撮像装置、画像処理システム、プログラム、および、記憶媒体 | |
WO2022249934A1 (ja) | 画像処理方法、画像処理装置、プログラム、訓練済み機械学習モデルの製造方法、処理装置、画像処理システム | |
JP2023116364A (ja) | 画像処理方法、画像処理装置、画像処理システム、およびプログラム | |
JP2012156714A (ja) | プログラム、画像処理装置、画像処理方法および撮像装置。 | |
US20240029321A1 (en) | Image processing method, image processing apparatus, storage medium, image processing system, method of generating machine learning model, and learning apparatus |