(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-14
(45)【発行日】2024-06-24
(54)【発明の名称】画像処理方法、画像処理装置、画像処理プログラム、および記憶媒体
(51)【国際特許分類】
G06T 7/00 20170101AFI20240617BHJP
【FI】
G06T7/00 350C
(21)【出願番号】P 2020040027
(22)【出願日】2020-03-09
【審査請求日】2023-02-28
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100110412
【氏名又は名称】藤元 亮輔
(74)【代理人】
【識別番号】100104628
【氏名又は名称】水本 敦也
(74)【代理人】
【識別番号】100121614
【氏名又は名称】平山 倫也
(72)【発明者】
【氏名】鬼木 崇
【審査官】佐藤 実
(56)【参考文献】
【文献】特開2019-121252(JP,A)
【文献】米国特許出願公開第2019/0108618(US,A1)
【文献】特開2000-311243(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
訓練画像、正解画像、およびホワイトバランスに関する情報を取得する取得工程と、
前記訓練画像の複数の色成分に対応する各色成分のみで構成される色成分画像を生成する生成工程と、
前記色成分画像をニューラルネットワークに入力することで前記複数の色成分に対応する各色成分のみで構成される出力画像を生成し、前記出力画像と前記正解画像との各色成分の第1誤差を取得し、該第1誤差と前記ホワイトバランスに関する情報とに基づいて第2誤差を取得し、該第2誤差に基づいて
前記ニューラルネットワークのパラメータを更新する更新工程とを有することを特徴とする画像処理方法。
【請求項2】
訓練画像、正解画像、およびホワイトバランスに関する情報を取得する取得工程と、
前記訓練画像の複数の色成分に対応する各色成分のみで構成される色成分画像を生成する生成工程と、
前記色成分画像をニューラルネットワークに入力することで前記複数の色成分に対応する各色成分のみで構成される第1出力画像を生成し、該第1出力画像と前記ホワイトバランスに関する情報とに基づいて各色成分の第2出力画像を生成し、該第2出力画像と前記正解画像との誤差に基づいて前記ニューラルネットワークのパラメータを更新する更新工程とを有することを特徴とする画像処理方法。
【請求項3】
前記訓練画像および前記正解画像はそれぞれ、周期的に配列された複数の色成分を有することを特徴とする請求項1に記載の画像処理方法。
【請求項4】
前記更新工程において
、前記正解画像および前記
第2出力画像に対してガンマ補正を行うことを特徴とする請求項
2に記載の画像処理方法。
【請求項5】
前記更新工程において
、前記正解画像および前記
第2出力画像の少なくとも一方の輝度値に対して、所定の範囲でクリッピング処理を行うことを特徴とする請求項
2又は
4のいずれか一項に記載の画像処理方法。
【請求項6】
前記ホワイトバランスに関する情報は、前記訓練画像または前記正解画像の付加情報から取得されることを特徴とする請求項1乃至
5のいずれか一項に記載の画像処理方法。
【請求項7】
前記ホワイトバランスに関する情報は、ホワイトバランス係数であることを特徴とする請求項1乃至
6のいずれか一項に記載の画像処理方法。
【請求項8】
請求項1乃至
7のいずれか一項に記載の画像処理方法を用いて更新された前記パラメータを有するニューラルネットワークに入力画像を入力することで推定画像を生成する工程を有する画像処理方法。
【請求項9】
前記推定画像は、前記入力画像に対してアップサンプリング、デノイジング、圧縮ノイズの除去、デブラー、インペインティング、デモザイキング、ディヘイズ、高階調化、およびリライティングのうち少なくとも一つの処理を施すことで生成された画像であることを特徴とする請求項
8の記載の画像処理方法。
【請求項10】
訓練画像、正解画像、およびホワイトバランスに関する情報を取得する取得部と、
前記訓練画像の複数の色成分に対応する各色成分のみで構成される色成分画像を生成する生成部と、
前記色成分画像をニューラルネットワークに入力することで前記複数の色成分に対応する各色成分のみで構成される出力画像を生成し、前記出力画像と前記正解画像との各色成分の第1誤差を取得し、該第1誤差と前記ホワイトバランスに関する情報とに基づいて第2誤差を取得し、該第2誤差に基づいて
前記ニューラルネットワークのパラメータを更新する更新部
とを有することを特徴とする画像処理装置。
【請求項11】
訓練画像、正解画像、およびホワイトバランスに関する情報を取得する取得部と、
前記訓練画像の複数の色成分に対応する各色成分のみで構成される色成分画像を生成する生成部と、
前記色成分画像をニューラルネットワークに入力することで前記複数の色成分に対応する各色成分のみで構成される第1出力画像を生成し、該第1出力画像と前記ホワイトバランスに関する情報とに基づいて各色成分の第2出力画像を生成し、該第2出力画像と前記正解画像との誤差に基づいて前記ニューラルネットワークのパラメータを更新する更新部とを有することを特徴とする画像処理装置。
【請求項12】
請求項1乃至
9のいずれか一項に記載の画像処理方法をコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項13】
請求項1
2に記載の画像処理プログラムを記憶していることを特徴とする記憶媒体。
【請求項14】
訓練画像、正解画像、およびホワイトバランスに関する情報を取得する取得工程と、
前記訓練画像の複数の色成分に対応する各色成分のみで構成される色成分画像を生成する生成工程と、
前記色成分画像をニューラルネットワークに入力することで前記複数の色成分に対応する各色成分のみで構成される出力画像を生成し、前記出力画像と前記正解画像との各色成分の第1誤差を取得し、該第1誤差と前記ホワイトバランスに関する情報とに基づいて第2誤差を取得し、該第2誤差に基づいて前記ニューラルネットワークのパラメータを更新する更新工程
とを有することを特徴とする学習済みモデルの
生成方法。
【請求項15】
訓練画像、正解画像、およびホワイトバランスに関する情報を取得する取得工程と、
前記訓練画像の複数の色成分に対応する各色成分のみで構成される色成分画像を生成する生成工程と、
前記色成分画像をニューラルネットワークに入力することで前記複数の色成分に対応する各色成分のみで構成される第1出力画像を生成し、該第1出力画像と前記ホワイトバランスに関する情報とに基づいて各色成分の第2出力画像を生成し、該第2出力画像と前記正解画像との誤差に基づいて前記ニューラルネットワークのパラメータを更新する更新工程とを有することを特徴とする学習済みモデルの生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディープラーニングを用いた画像処理方法に関する。
【背景技術】
【0002】
特許文献1には、RAW画像を入力とする多層のニューラルネットワークを学習する際に、ガンマ補正の影響を考慮することで、高解像度化や高コントラスト化(鮮鋭化)に伴うアンダーシュートやリンギングを抑制する手法が開示されている。非特許文献1には、様々な回帰問題に対して汎用的に適用可能なネットワーク構成が開示されている。また非特許文献1には、ネットワークを用いて、入力画像のアップサンプリング、JPEGデブロッキング(圧縮ノイズの除去)、デノイジング、ノンブラインドなデブラー、または、インペインティングを実行することが開示されている。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】X. Mao, C. Shen, Y. Yang, “Image Restoration Using Convolutional Auto-encoders with Symmetric Skip Connections”,https://arxiv.org/abs/1606.08921.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に開示された方法では、入力画像がRAW画像である際に適切な推定を行うことができない。また、特許文献1では、ガンマ補正の影響を考慮した誤差を用いて学習することにより、現像された画像の輝度の大きさに対して、推定精度が影響されにくいニューラルネットワークを実現している。しかしながら、実際にユーザが現像された出力画像を鑑賞する際には、ガンマ補正だけでなくホワイトバランス処理が行われているため、ホワイトバランス処理を考慮せずにRAW画像を学習すると、現像時とは色のバランスが大きく異なる場合がある。例えば、光源が波長依存性のない白色光で無彩色の被写体を撮影したとしても撮像素子の感度特性により、取得されるRAW画像の輝度値が色ごとにばらつきが生じる。このようなRAW画像を用いて色ごとの輝度の調整をせずに学習を行った場合、推定精度も色ごとにばらつきが生じる可能性がある。
【0006】
そこで本発明は、色ごとの推定精度のばらつきを低減したニューラルネットワークを取得可能な画像処理方法などを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一側面としての画像処理方法は、訓練画像、正解画像、およびホワイトバランスに関する情報を取得する取得工程と、前記訓練画像の複数の色成分に対応する各色成分のみで構成される色成分画像を生成する生成工程と、前記色成分画像をニューラルネットワークに入力することで前記複数の色成分に対応する各色成分のみで構成される出力画像を生成し、前記出力画像と前記正解画像との各色成分の第1誤差を取得し、該第1誤差と前記ホワイトバランスに関する情報とに基づいて第2誤差を取得し、該第2誤差に基づいて前記ニューラルネットワークのパラメータを更新する更新工程とを有する。
【0008】
本発明の他の目的及び特徴は、以下の実施例において説明される。
【発明の効果】
【0009】
本発明によれば、色ごとの推定精度のばらつきを低減したニューラルネットワークを取得可能な画像処理方法などを提供することができる。
【図面の簡単な説明】
【0010】
【
図1】実施例1における畳み込みニューラルネットワークを示す図である。
【
図2】各実施例におけるホワイトバランスに関する説明図である。
【
図3】実施例1における画像処理システムのブロック図である。
【
図4】実施例1における画像処理システムの外観図である。
【
図5】実施例1における学習工程のフローチャートである。
【
図6】各実施例における画像の色成分に関する説明図である。
【
図7】各実施例におけるガンマ補正に関する説明図である。
【
図8】各実施例における推定工程のフローチャートである。
【
図9】実施例2における画像処理システムのブロック図である。
【
図10】実施例2における画像処理システムの外観図である。
【
図11】実施例2における畳み込みニューラルネットワークを示す図である。
【
図12】実施例2における学習工程のフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照符号を付し、重複する説明は省略する。
【0012】
まず、以下に各実施例において使用される用語を定義する。各実施例は、ディープラーニングによって回帰問題を解き、入力画像から様々な出力画像を推定する方法に関する。ディープラーニングとは、多層のニューラルネットワークを用いた機械学習である。大量の訓練画像とそれに対応する正解画像(得たい出力)のペアから、ネットワークパラメータ(ウエイトとバイアス)を学習することで、未知の入力画像に対しても高精度な推定が可能となる。
【0013】
多層のニューラルネットワークを用いた画像処理には、ネットワークパラメータ(ウエイトとバイアス)を更新するための処理工程と、更新されたパラメータを用いて未知の入力に対して推定を行う処理工程の二つが存在する。以下、前者を学習工程と呼び、後者を推定工程と呼ぶ。
【0014】
次に、学習工程と推定工程における画像の名称を定める。ネットワークへ入力する画像を入力画像とし、特に学習工程の際に用いる、正解画像が既知の入力画像を訓練画像と呼称する。ネットワークから出力された画像を出力画像とし、特に推定工程の際の出力画像を推定画像と呼称する。ネットワークの入力画像と、正解画像はRAW画像である。ここでRAW画像とは、撮像素子から出力された未現像の画像データであり、各画素の光量と信号値とが略線型の関係にある。ユーザが画像を鑑賞する前にRAW画像は現像されるが、その際にガンマ補正が実行される。ガンマ補正は、例えば入力の信号値を冪乗する処理であり、その冪指数として1/2.2などが用いられる。各実施例において、正解画像または訓練画像を生成する際の元となる無劣化相当の画像を原画像と呼称する。
【0015】
また出力画像も、推定によって正解画像に準ずる画像として生成されるため、RAW画像の性質を有する。推定工程には、様々な処理が含まれる。例えば、アップサンプリング、デノイジング、圧縮ノイズの除去、デブラー(ぼけ補正)、インペインティング、デモザイキング、ディヘイズ(Dehaze)、高階調化、リライティング(照明環境の変更)がある。
【0016】
実施例の具体的な説明へ入る前に、本発明の要旨を述べる。本発明は、RAW画像を入力とする多層のニューラルネットワークの学習工程において、ホワイトバランスの影響を考慮する。一般に、デジタルカメラ等の撮像素子を用いた撮像装置においては、撮像によって得られた画像の色調を調整するホワイトバランス制御機能を備えている。ホワイトバランス処理は、被写体における無彩色部分が出力画像において無彩色になるように、撮像素子が出力するRGB成分に対して色成分別にゲイン処理を行い、輝度レベルを合わせる処理である。ホワイトバランス処理を行わない場合、撮像素子の色特性によって被写体の色味が正しく再現されず、実際の被写体とは異なる色の画像が生成される。
【0017】
図2はホワイトバランスに関する説明図であり、
図2(A)は光源の分光分布特性、
図2(B)はカラーフィルタおよびIRカットフィルタを有する撮像素子の分光感度特性をそれぞれ示す。
図2(A)において、横軸は波長、縦軸は光強度をそれぞれ示し、
図2(A)中の実線は白色LED、破線は白熱電球の分光分布をそれぞれ示す。
図2(B)において、横軸は波長、縦軸は分光感度をそれぞれ示し、
図2(B)中の実線はB成分、破線はG成分、一点鎖線はR成分の分光感度をそれぞれ示す。
【0018】
撮像素子から出力される信号には、
図2(A)、(B)に示されるような光源や撮像素子の特性が反映されており、実際にはこれらの特性以外にも光学系の透過率等の影響も含まれている。例えば、
図2(A)の実線および破線は波長依存性のある光源となっているが、仮に波長依存性が無く光強度が完全にフラットな環境下で無彩色の被写体を撮影したとしても、
図2(B)のように撮像素子の分光感度特性の影響を受ける。この場合、被写体が無彩色であるため、本来であれば撮影画像の輝度値はRGB成分が一致するべきであるが、
図2(B)に示される分光特性の影響で、G成分に対してR成分、B成分が低くなる。このため、出力される画像は緑色に色付いた画像となる。
【0019】
このようなRAW画像を集めて学習を行った場合、緑色の被写体ばかり学習することになるため、出力されるネットワークパラメータはより緑色の被写体に対しては推定精度が高く、逆に赤色や青色の被写体に対しては推定精度が低くなる。また、実際には光源は波長依存性があり、
図2(A)に示されるように撮影時の光源の種類によって更に色味が変化し、推定制度にも影響することになる。本発明は、このような色ごとの推定精度のばらつきを低減することを目的としており、その実現方法について、以下の各実施例にて詳述する。
【実施例1】
【0020】
まず、本発明の実施例1における画像処理システムに関して説明する。本実施例では、多層のニューラルネットワークにぼけ補正を学習、実行させる。ただし本実施例は、ぼけ補正に限定されるものではなく、その他の画像処理にも適用可能である。
【0021】
図3は、本実施例における画像処理システム100のブロック図である。
図4は、画像処理システム100の外観図である。画像処理システム100は、学習装置(画像処理装置)101、撮像装置102、画像推定装置(画像処理装置)103、表示装置104、記録媒体105、出力装置106、およびネットワーク107を有する。
【0022】
学習装置101は、学習工程を実行する画像処理装置であり、記憶部101a、取得部101b、算出部101c、更新部101d、および生成部101eを有する。取得部101bは、訓練画像と正解画像、およびホワイトバランスに関する情報を取得する。生成部101eは、訓練画像を多層のニューラルネットワークへ入力して出力画像を生成する。更新部101dは、算出部101cにより算出された出力画像と正解画像との差(誤差)に基づいて、ニューラルネットワークのネットワークパラメータを更新する。なお、学習工程に関する詳細は、フローチャートを用いて後述する。学習されたネットワークパラメータは、記憶部101aに記憶される。
【0023】
撮像装置102は、光学系102aおよび撮像素子102bを有する。光学系102aは、被写体空間から撮像装置102へ入射した光を集光する。撮像素子102bは、光学系102aを介して形成された光学像(被写体像)を受光して(光電変換して)撮像画像を取得する。撮像素子102bは、例えばCCD(Charge Coupled Device)センサや、CMOS(Complementary Metal-Oxide Semiconductor)センサなどである。撮像装置102によって取得される撮像画像は、光学系102aの収差や回折によるぼけと、撮像素子102bによるノイズを含む。
【0024】
画像推定装置103は、推定工程を実行する装置であり、記憶部103a、取得部103b、および推定部103cを有する。画像推定装置103は、取得した撮像画像に対してぼけ補正を行って推定画像を生成する。ぼけ補正には、多層のニューラルネットワークを使用し、ネットワークパラメータの情報は記憶部103aから読み出される。ネットワークパラメータは学習装置101で学習されたものであり、画像推定装置103は、事前にネットワーク107を介して記憶部101aからネットワークパラメータを読み出し、記憶部103aに保存している。保存されるネットワークパラメータはその数値そのものでもよいし、符号化された形式でもよい。ネットワークパラメータの学習、およびネットワークパラメータを用いたぼけ補正処理に関する詳細は、後述する。
【0025】
出力画像は、表示装置104、記録媒体105、および出力装置106の少なくとも1つに出力される。表示装置104は、例えば液晶ディスプレイやプロジェクタなどである。ユーザは、表示装置104を介して、処理途中の画像を確認しながら編集作業などを行うことができる。記録媒体105は、例えば半導体メモリ、ハードディスク、ネットワーク上のサーバー等である。出力装置106は、プリンタなどである。画像推定装置103は、必要に応じて現像処理やその他の画像処理を行う機能を有する。
【0026】
次に、
図5を参照して、本実施例における学習装置101により実行されるネットワークパラメータの学習方法(学習済みモデルの製造方法)に関して説明する。
図5は、ネットワークパラメータの学習に関するフローチャートである。
図5の各ステップは、主に、学習装置101の取得部101b、算出部101c、更新部101d、および生成部101eにより実行される。
【0027】
まず、
図5のステップS101において、取得部101bは、正解パッチ(正解画像)と訓練パッチ(訓練画像)を取得する。正解パッチは相対的にぼけが少ない画像であり、訓練パッチは相対的にぼけが多い画像である。なお、パッチとは既定の画素数(例えば、64×64画素など)を有する画像を指す。また、正解パッチと訓練パッチの画素数は、必ずしも一致する必要はない。本実施例では、多層のニューラルネットワークのネットワークパラメータの学習に、ミニバッチ学習を使用する。このためステップS101では、複数組の正解パッチと訓練パッチを取得する。ただし本実施例は、これに限定されるものではなく、オンライン学習またはバッチ学習を用いてもよい。
【0028】
本実施例は、以下の方法により正解パッチと訓練パッチを取得するが、これに限定されるものではない。本実施例は、記憶部101aに記憶されている複数の原画像を被写体として、撮像シミュレーションを行うことにより、収差や回折が実質的にない高解像撮像画像と収差や回折のある低解像撮像画像を複数生成する。そして、複数の高解像撮像画像と低解像撮像画像各々から同一位置の部分領域を抽出することで、複数の正解パッチと訓練パッチを取得する。本実施例において、原画像は未現像のRAW画像であり、正解パッチと訓練パッチも同様にRAW画像であるが、これに限定されるものではなく、現像後の画像でもよい。また、部分領域の位置とは、部分領域の中心を指す。複数の原画像は、様々な被写体、すなわち、様々な強さと方向のエッジや、テクスチャ、グラデーション、平坦部などを有する画像である。原画像は、実写画像でもよいし、CG(Computer Graphics)により生成した画像でもよい。
【0029】
好ましくは、原画像は、撮像素子102bの輝度飽和値よりも高い輝度値を有する。これは、実際の被写体においても、特定の露出条件で撮像装置102により撮影を行った際、輝度飽和値に収まらない被写体が存在するためである。高解像撮像画像は、原画像を縮小し、撮像素子102bの輝度飽和値でクリッピング処理することによって生成される。特に、原画像として実写画像を使用する場合、既に収差や回折によってぼけが発生しているため、縮小することでぼけの影響を小さくし、高解像(高品位)な画像にすることができる。なお、原画像に高周波成分が充分に含まれている場合、縮小は行わなくてもよい。低解像撮像画像は、高解像撮像画像と同様に縮小し、光学系102aの収差や回折によるぼけの付与を行った後、輝度飽和値によってクリッピング処理することで生成する。光学系102aは、複数のレンズステート(ズーム、絞り、合焦距離の状態)と像高、アジムスによって異なる収差や回折を有する。このため、原画像ごとに異なるレンズステートや像高、アジムスの収差や回折によるぼけを付与することで、複数の低解像撮像画像を生成する。
【0030】
なお、縮小とぼけの付与は順序を逆にしてもよい。ぼけの付与を先に行う場合、縮小を考慮して、ぼけのサンプリングレートを細かくする必要がある。PSF(点像強度分布)ならば空間のサンプリング点を細かくし、OTF(光学伝達関数)ならば最大周波数を大きくすればよい。また必要に応じて、付与するぼけには、撮像装置102に含まれる光学ローパスフィルタなどの成分を加えてもよい。なお、低解像撮像画像の生成で付与するぼけには、歪曲収差を含めない。歪曲収差が大きいと、被写体の位置が変化し、正解パッチと訓練パッチで被写体が異なる可能性があるためである。このため、本実施例で学習するニューラルネットワークは歪曲収差を補正しない。歪曲収差はバイリニア補間やバイキュービック補間などを用いて、ぼけ補正後、個別に補正する。
【0031】
次に、生成された高解像撮像画像から、規定の画素サイズの部分領域を抽出し、正解パッチとする。低解像撮像画像から、抽出位置と同じ位置から部分領域を抽出し、訓練パッチとする。本実施例では、ミニバッチ学習を使用するため、生成された複数の高解像撮像画像と低解像撮像画像から、複数の正解パッチと訓練パッチを取得する。なお、原画像はノイズ成分を有していてもよい。この場合、原画像に含まれるノイズを含めて被写体であるみなして正解パッチと訓練パッチが生成されると考えることができるため、原画像のノイズは特に問題にならない。
【0032】
なお、収差・回折によるぼけ補正以外の処理に関しても、同様にシミュレーションで訓練画像と正解画像のペアを用意することで、学習工程を実行することができる。デノイジングに関しては、低ノイズの正解画像に想定されるノイズを付与することで、訓練画像を生成することができる。アップサンプリングに関しては、正解画像をダウンサンプリングすることで訓練画像を用意することができる。圧縮ノイズの除去に関しては、無圧縮または圧縮率の小さい正解画像を圧縮することで、訓練画像を生成することができる。収差・回折以外(デフォーカスぼけなど)のデブラーに関しては、ぼけの少ない正解画像に想定されるぼけを畳み込むことで、訓練画像を生成することができる。デフォーカスぼけの場合、距離に依存するため、複数の訓練画像と正解画像に異なる距離のデフォーカスぼけを畳み込むようにする。インペインティングに関しては、欠損のない正解画像に欠損を与えることで、訓練画像を生成することができる。デモザイキングに関しては、三板式の撮像素子などで撮像された正解画像をBayer配列などで再サンプリングすることで、訓練画像を生成することができる。ディヘイズに関しては、霧や靄のない正解画像に対して散乱光を付与することで、訓練画像を生成することができる。霧や靄は、濃度や距離によって散乱光の強さが変化するため、異なる濃度や距離の散乱光に対して複数の訓練画像を生成する。高階調化に関しては、高階調な正解画像を低階調化することで訓練画像を得ることができる。リライティングに関しては、正解画像の被写体における法線、形状、反射率の分布が既知であれば、シミュレーションで異なる光源環境の訓練画像を生成することができる。ただし、この場合、計測の負荷が大きいため、実際に異なる照明環境で被写体を撮影して正解画像と訓練画像のペアを生成してもよい。
【0033】
続いてステップS102において、取得部101bは、学習工程で用いられるホワイトバランスに関する情報(学習条件情報、ホワイトバランス係数)を取得する。本実施例において、学習条件情報とは、例えば、「撮影時のホワイトバランスの設定」、「オートホワイトバランス設定」などの設定に関する情報、あるいは光源の色温度情報である。通常、デジタルカメラにはオートホワイトバランスと称し、自動的に光源の種類を判別して補正する機能が搭載されている。しかしながら、被写体に白色が含まれない場合には光源の判別が容易にできなくなる。このためデジタルカメラには、使用者が光源の種類をメニューから選択するプリセットホワイトバランス機能や、光源の色温度等を直接指定できるマニュアルホワイトバランス機能が搭載されることが一般的である。
【0034】
プリセットホワイトバランス機能では、白熱電球、晴天、曇天、蛍光灯などのそれぞれの撮影条件に適したホワイトバランス係数(色別のゲイン値)が用意されている。これらのホワイトバランス係数は色温度と対応しており、例えば白熱電球であれば3000K、曇天であれば6000Kとなる。色温度が3000Kであれば、被写体が本来よりも赤みがかった撮影環境を想定するため、ホワイトバランス係数はR成分よりもB成分の方が大きくなる。逆に色温度が6000Kであれば、被写体が本来よりも青みがかった撮影環境を想定するため、ホワイトバランス係数はB成分よりもR成分の方が大きくなる。つまり、学習時に色温度が3000Kのホワイトバランス係数で学習すれば、本来よりもB成分の係数値が大きくなるため、推定精度もR成分よりB成分の方が高くなる。逆に、学習時に色温度が6000Kのホワイトバランス係数で学習すれば、本来よりもR成分の係数値が大きくなるため、推定精度もB成分よりR成分の方が高くなる。
【0035】
このように、学習条件情報を色温度として選択できるようにし、それぞれの色温度に対応したネットワークパラメータを用いることで、ユーザがRGBのどの色の推定精度を優先するかを選択することができる。本実施例では、学習条件情報を「撮影時のホワイトバランスの設定」とし、ステップS102では正解パッチまたは訓練パッチの元となるRAW画像の撮影時に設定されたホワイトバランス係数を取得する。ホワイトバランス係数はRAW画像のヘッダー情報から取得してもよいし、撮像装置102から取得してもよい。なお、以降の説明において、ヘッダー情報と記載されている場合には画像の付加情報を表しており、フッター情報であってもよい。また本実施例では、撮影時に設定されたホワイトバランス係数を取得するが、学習条件情報を「オートホワイトバランス設定」として、撮像装置が自動判定して算出したホワイトバランス係数を用いてもよい。
【0036】
続いてステップS103において、生成部101eは、ステップS101にて取得された複数の訓練画像のうち少なくとも一の訓練画像を選択し、選択された訓練画像をネットワークへ入力して出力画像を生成する。複数の訓練画像の全てを選択する(訓練画像の全てをネットワークへ入力し、それら全ての出力を用いてネットワークパラメータを更新する)場合をバッチ学習と呼ぶ。この方法は、訓練画像の数が増えるにつれて、演算負荷が膨大になる。一枚の訓練画像のみを選択する場合(ネットワークパラメータの更新に一枚の訓練画像のみを用いて、更新ごとに異なる訓練画像を用いる)場合をオンライン学習と呼ぶ。この手法は、訓練画像の総数が増えても演算量が増大しないが、一枚の訓練画像に存在するノイズの影響を受けやすい。このため、複数の訓練画像から少数(ミニバッチ)を選択し、それらを用いてネットワークパラメータの更新を行なうミニバッチ法を用いることが好ましい。次の更新では、異なる少数の訓練画像を選択して用いる。この処理を繰り返すことにより、バッチ学習とオンライン学習の弱点を小さくすることができる。
【0037】
ここで、
図1を参照して、多層のニューラルネットワークで行われる処理に関して説明する。
図1は、畳み込みニューラルネットワーク(CNN)を示す図である。ただし本実施例は、これに限定されるものではなく、例えばCNNに残差ネットワークを採用することができ、または、GAN(Generative Adversarial Network)などを用いてもよい。なお
図1では、簡単のため、入力する訓練画像201を一枚だけ描画しているが、実際には選択された複数の訓練画像それぞれに対して、出力画像が生成される。訓練画像201は、RAW画像を色成分ごとに三次元方向に配列した画像である。
【0038】
図6は、画像の色成分に関する説明図である。本実施例において、訓練画像は、
図6(A)に示されるようなBayer配列の画像(RAW画像)である。ここでRGBは、それぞれ赤、緑、青を表す。
図6(A)のBayer配列から、各色の成分だけを配列し直した構成が
図6(B)である。Gは、G1とG2の2種類があるため、それぞれを抽出して配列する。
図6(B)の四枚の画像を三次元方向に配列した4チャンネルの画像が、
図1における訓練画像201である。この作業は必ずしも必要ではないが、収差・回折は波長によって変化するため、同一のぼけを持つ色成分を配列させた方が補正しやすい。また、RGBが同一次元内に配列されていると、局所的に異なる明るさを有する画素が混合されるため、推定精度が低下しやすい。このため、訓練画像を色成分ごとに分離することが好ましい。なお、ここではBayer配列の場合を示しているが、その他の配列(ハニカム構造など)に関しても同様である。
図1では描画を簡略化するため、訓練画像201を4×4の4チャンネル画像としているが、縦横の画像サイズはこれに限定されるものではない。
【0039】
本実施例において、訓練画像および正解画像はそれぞれ、周期的に配列された複数の色成分を有し、訓練画像または正解画像の各色成分のみで構成される色成分画像を生成する生成工程を設けてもよい。ここで、色成分画像を生成する工程は、訓練画像に対してニューラルネットワークへの入力前に実行され、正解画像に対して誤差の算出前に実行される。
【0040】
CNNは複数の層構造になっており、各層で線型変換と非線型変換が実行される。線型変換は、入力された画像(または特徴マップ)とフィルタの畳み込み、およびバイアス(
図1中のbias)との和で表現される。各層におけるネットワークパラメータ(フィルタのウエイトとバイアス)を学習工程によって更新する。非線形変換は、活性化関数(Activation Function)と呼ばれる非線型関数による変換である(
図1中のAF)。活性化関数の例としては、シグモイド関数やハイパボリックタンジェント関数などがあり、本実施例では以下の式(1)で表されるReLU(Rectified Linear Unit)が用いられる。
【0041】
【0042】
式(1)において、maxは、引数のうち最大値を出力するMAX関数を表す。
【0043】
入力層に入力された訓練画像201は、第1畳み込み層で複数のフィルタ202それぞれとのコンボリューションと、バイアスとの和を取られる。フィルタ202それぞれのチャンネル数は、訓練画像201と一致し、訓練画像201のチャンネル数が2以上の場合、3次元フィルタとなる(三次元目がチャンネル数を表す)。なお、フィルタの縦横の大きさは任意である。コンボリューションと和の結果は、活性化関数によって非線形変換が施され、第1特徴マップ203が第1中間層に出力される。ここで、第1特徴マップ203のチャンネル数(三次元方向の配列数)は、フィルタ202の数と同じである。次に、第2畳み込み層へ第1特徴マップ203が入力され、前述と同様に複数のフィルタ204のそれぞれとのコンボリューションと、バイアスとの和が取られる。その結果を非線形変換し、以下同様に畳み込み層の数だけ繰り返す。一般に、畳み込み層が3層以上あるCNNが、ディープラーニングに該当する。最後の畳み込み層から出力された結果が、CNNの出力画像211である。なお、最後の畳み込み層では、活性化関数による非線形変換を実行しなくてもよい。
【0044】
続いてステップS104において、生成部101eはステップS102で取得したホワイトバランスに関する情報(ホワイトバランス係数)を用いて、出力画像211および正解画像221を補正する。ここで、R、G、Bのホワイトバランス係数をそれぞれWr、Wg、Wb、調整前の画像をそれぞれIr0、Ig0、Ib0、調整後の画像をそれぞれIr、Ig、Ibとする。このとき、ホワイトバランス係数による調整後の画像Ir、Ig、Ibはそれぞれ、式(2)~(4)のように表される。
【0045】
【0046】
なお、式(2)~(4)のようにホワイトバランス係数を直接色ごとに掛けるのではなく、規格化してから係数を掛けてもよい。その場合、例えばGの係数で規格化するのであれば、R、Bの係数に対して、Gの係数で割り、それぞれRとBの画像に対して掛ければよい。また、
図6のようにGがG1およびG2の二つに分かれる場合には、それぞれのホワイトバランス係数を掛けてもよいし、G1とG2の平均値を計算し、平均のホワイトバランス係数をGの画像に掛けてもよい。なお、RAW画像に含まれるオプティカルブラックは色成分に依存しないため、オプティカルブラックを考慮する場合は、式(2)~(4)の計算を実施する前にオプティカルブラックの値を各画像から差し引き、計算後に加算すればよい。
【0047】
続いて、ホワイトバランス係数を適用した出力画像211および正解画像221に対して必要に応じてクリッピング処理を行う。本実施例において、クリッピング処理とは、指定した上限値以上の輝度値を上限値に置き換える処理である。ホワイトバランス係数による調整を行う前の出力画像211または正解画像221において、輝度飽和値(画素が取り得る上限値)に達した画素がある場合、クリッピング処理を実施する。例えば全色輝度飽和となっている場合、調整前においてRGBで同じ輝度値であった画素は、ホワイトバランス係数をかけることにより、調整した分だけ逆に色付くことになる。よって、この対策として、ホワイトバランス係数による調整後の出力画像211と正解画像221に対して輝度飽和値でクリッピング処理を行う。なお、このクリッピング処理は輝度飽和部以外の画素について影響がないため、輝度飽和の有無に関わらず全画素実施してもよいし、輝度飽和の有無によって処理を分岐してもよい。また、画素ごとの輝度飽和のばらつきを考慮し、輝度飽和値よりも少し低めの値を設定してクリッピング処理を行ってもよい。また、この処理は輝度飽和に達していない場合は不要な処理となるため、必ずしも実施する必要はない。
【0048】
続いてステップS105において、算出部101cは、ホワイトバランス係数による調整後の出力画像211と正解画像221との差(誤差)を算出する。このとき本実施例では、出力画像211および正解画像221に対してガンマ補正を実行してから誤差を算出する。ガンマ補正は、例えば入力の輝度値を冪乗する処理であり、その冪指数として1/2.2などが用いられる。正解画像221は訓練画像201と同様に、色成分ごとに配列してチャンネル方向にスタックされている。本実施例において、算出部101cは、以下の式(5)を用いて誤差Lを算出する。
【0049】
【0050】
式(5)において、tは正解画像221の輝度値、yは出力画像211の輝度値、jは画素の番号、Nは総画素数、gはガンマ補正を示す。式(5)ではユークリッドノルムを用いているが、正解画像と出力画像の差異を表す値であれば、他の指標を用いてもよい。なお本実施例では、出力画像211および正解画像221に対してガンマ補正を実行してから誤差を算出しているが、この処理は必須ではなく、ガンマ補正を行わずに誤差を算出してもよい。
【0051】
続いてステップS106において、更新部101dは、ステップS105にて算出された誤差からネットワークパラメータの更新量を算出し、ネットワークパラメータを更新する。ここでは、誤差逆伝搬法(Backpropagation)が用いられる。誤差逆伝搬法では、誤差の微分に基づいて更新量を算出する。ただし、本実施例はこれに限定されるものではない。
【0052】
続いてステップS107において、更新部101dは、所定の終了条件を満たすか否か、すなわち、ネットワークパラメータの最適化が終了したか否かを判定する。ここで所定の終了条件とは、例えば、学習工程が既定の時間に達した場合、パラメータの更新回数が既定の回数に達した場合、パラメータ更新には用いない訓練画像と正解画像を用意しておき、その出力画像と正解画像の誤差が所定の値以下になった場合などである。または、ユーザが最適化終了を指示してもよい。所定の終了条件を満たさない場合、ステップS103に戻り、更新部101dは新たなミニバッチを取得してネットワークパラメータを更新する。一方、所定の終了条件を満たす場合、ステップS108へ進む。
【0053】
ステップS108において、更新部101dは、更新したネットワークパラメータを記憶部101aに出力して記憶させる。本実施例では、異なる学習条件情報(ホワイトバランスに関する情報)ごとにネットワークパラメータを学習するため、ネットワークパラメータとそれに対応する学習条件情報とを合わせて記憶部101aに記憶する。以上の学習工程により、色ごとの推定精度のばらつきを低減した多層のニューラルネットワークを得ることができる。
【0054】
また本実施例では、
図1に示されるように出力画像211および正解画像221に対してホワイトバランス係数で調整を行い、調整後の各画像に対してガンマ補正を実施するが、この順番でなくてもよい。例えば、ガンマ補正後にホワイトバランス係数による調整を行うこともできる。この場合、ガンマ補正による非線形変換後の出力画像211および正解画像221に対して、ホワイトバランス係数を用いた調整処理を実行する。なお、ガンマ補正とは、
図7に示されるように、補正前後における輝度値の関係を示すカーブ(ガンマカーブ)が傾き1の直線(
図7中の一点鎖線)以上の位置に存在する処理である。
図7は、ガンマ補正に関する説明図である。
図7において、横軸はガンマ補正前の輝度値、縦軸はガンマ補正後の輝度値をそれぞれ示す。
【0055】
先にガンマ補正を行い、その後にホワイトバランス係数による調整を行う場合、後にガンマ補正を実行する場合とは異なるネットワークパラメータを生成することができる。また、ガンマ補正後に実行する場合、式(2)~(4)のように画像に対して調整を行ってもよいし、出力画像211と正解画像221の誤差に対して調整を行ってもよい。誤差Lに対する調整を行う場合、R、G、Bのホワイトバランス係数をWr、Wg、Wb、正解画像221をtr、tg、tb、出力画像211をyr、yg、ybとするとき、誤差Lは以下の式(6)のように表される。
【0056】
【0057】
このように、色ごとに誤差を計算し、計算した誤差に対して、ホワイトバランス係数による調整を行い合算することもできる。このような処理でも、色ごとの推定精度のばらつき低減した学習を行うことができる。また、
図6のようにGがG1およびG2の二つに分かれる場合には、それぞれのホワイトバランス係数を掛けてもよいし、G1とG2との平均値を計算し、平均のホワイトバランス係数をGの画像に掛けてもよい。
【0058】
次に、
図8を参照して、画像推定装置103で実行される推定工程に関して説明する。
図8は、推定工程のフローチャートである。
【0059】
まず、ステップS201において、取得部103bは、撮像装置102または記録媒体105から、撮像画像を取得する。撮像画像は、未現像のRAW画像である。RAW画像の輝度値が符号化されている場合、推定部103cは復号処理を実行する。また取得部103bは、撮像装置102または記録媒体105から、学習条件情報を取得する。なお、ステップS201における学習条件情報は、学習時のネットワークパラメータの選択に利用するパラメータであるため、撮影画像がオートホワイトバランス設定であっても、必ずしも「オートホワイトバランス設定」である必要はない。また、学習条件情報はユーザに自由に選択できるようにしてもよいし、撮像装置102が撮影シーンに応じて学習条件情報を自動で決めてもよい。
【0060】
続いてステップS202において、推定部103cは、ステップS201にて取得した学習条件情報に対応するネットワークパラメータを取得する。ネットワークパラメータは、学習装置101の記憶部101aから読み出される。または、画像推定装置103の記憶部103aに複数のネットワークパラメータを保存しておき、記憶部103aから読み出してもよい。取得するネットワークパラメータは、ステップS301にて取得した学習条件情報と学習工程で用いられた学習条件情報とが互いに一致するもの、または、最も近いものである。
【0061】
続いてステップS203において、推定部103cは、撮像画像からCNNへ入力する入力画像を取得する。入力画像は、訓練画像と同様に、色成分ごとに配列して三次元方向にスタックされる。なお、推定工程の入力画像のサイズは、学習工程における訓練画像のサイズと、必ずしも一致する必要はない。
【0062】
続いてステップS204において、推定部103cは、入力画像とネットワークパラメータに基づいて、推定画像を生成する。推定画像の生成には、学習工程と同様に、
図1に示されるCNNが用いられる。ただし、
図1中の出力画像211が推定画像となり、それ以降の正解画像との誤差算出等の処理は行わない。
【0063】
続いてステップS205において、推定部103cは、撮像画像の所定の領域に対して推定が完了したか否かを判定する。推定が完了していない場合、ステップS203へ戻り、推定部103cは、撮像画像の所定の領域から新たな入力画像を取得する。推定に用いられるCNNにおいて、出力画像のサイズが入力画像よりも小さくなる場合、所定の領域からオーバーラップして入力画像を取得する必要がある。所定の領域は、撮像画像の全体または一部である。撮像画像はRAW画像であるため、受光して得られた画像の他に、ヘッダー情報(画像の画素数や撮影時刻などの情報)や撮像素子のオプティカルブラックの情報が含まれていることがある。ヘッダー情報やオプティカルブラックは、収差・回折のぼけと無関係であるため、所定の領域からそれらを除いてもよい。
【0064】
続いてステップS206において、推定部103cは、生成された複数の推定画像を合成して、収差・回折によるぼけが補正された撮像画像を出力する。必要に応じて、推定部103cは、ヘッダー情報やオプティカルブラックの情報を含めて出力する。
【0065】
以上の推定処理により、色ごとの推定精度のばらつきが少ないネットワークパラメータ用いて推定を行うことができる。これにより、収差・回折によるぼけの補正効果も色によって推定精度がばらつくことなく、より高精度な補正を実現することができる。また、推定工程後、ユーザが任意で露出補正などの編集を行い、現像処理により最終的な現像画像を得る。本実施例では、学習条件情報によってネットワークパラメータを切り替えて補正を実施する方法について述べたが、複数のネットワークパラメータを取得して、入力画像をそれぞれのネットワークに入力することで複数の出力画像を生成してもよい。こうすることで、学習条件情報が異なる出力画像を複数生成することができるため、例えばそれらを補間することによって、中間の学習条件情報の出力画像を生成することができる。例えば、学習条件情報が色温度K3000と色温度K6000であったとき、それぞれに対応したネットワークパラメータを用いて推定画像を生成し、これらを補間することで色温度K5000相当の推定画像を出力することもできる。また、逆に学習条件情報は1つだけでもよく、特定のネットワークパラメータのみ撮像装置102または記録媒体105に保持しておいてもよい。
【0066】
なお本実施例では、収差・回折によるぼけの補正について述べたが、アップサンプリングやデノイジング等の他の手法であっても、それらに対応した訓練画像と正解画像を用いてホワイトバランス係数による調整を行うことで同様の効果を得ることができる。
【実施例2】
【0067】
次に、本発明の実施例2における画像処理システムに関して説明する。
図9は、本実施例における画像処理システム300のブロック図である。
図10は、画像処理システム300の外観図である。画像処理システム300は、ネットワーク303を介して接続された学習装置301および撮像装置302を含む。
【0068】
学習装置301は、記憶部311、取得部312、算出部313、更新部314、および生成部315を有し、ニューラルネットワークで収差・回折によるぼけを補正するためのネットワークパラメータを学習する。
【0069】
撮像装置302は、被写体空間を撮像して撮像画像を取得し、読み出したネットワークパラメータを用いて撮像画像中の収差・回折によるぼけを補正する。撮像装置302は、光学系321および撮像素子322を有する。画像推定部323は、取得部323aおよび推定部323bを有し、記憶部324に保存されたネットワークパラメータを用いて、撮像画像の補正を実行する。ネットワークパラメータは、学習装置301で事前に学習され、記憶部311に保存されている。撮像装置302は、記憶部311からネットワーク303を介してネットワークパラメータを読み出し、記憶部324に保存する。収差・回折によるぼけを補正した撮像画像(出力画像)は、記録媒体325に保存される。ユーザから出力画像の表示に関する指示が出された場合、保存された出力画像が読み出され、表示部326に表示される。なお、記録媒体325に既に保存された撮像画像を読み出し、画像推定部323でぼけ補正を行ってもよい。以上の一連の制御は、システムコントローラ327によって行われる。
【0070】
次に、
図11を参照して、本実施例における多層のニューラルネットワークで行われる処理に関して説明する。
図11は、本実施例における畳み込みニューラルネットワークを示す図である。
図11は、訓練画像401に対するホワイトバランス係数による調整方法の点で、実施例1における
図1とは異なる。本実施例では、
図11に示されるように、訓練画像401に対して、まずホワイトバランス係数による調整処理を行い、その後にニューラルネットワークに入力される。そして、出力画像411に対してガンマ補正が実行される。正解画像421に関しては実施例1と同様であり、正解画像421にホワイトバランス係数による調整処理を実行し、その後にガンマ補正を実行する。そして、ガンマ補正後の出力画像411と正解画像421との差(誤差)を算出する。なお、ホワイトバランス後のクリッピング処理は必要に応じて実行する。また、フィルタ402、第1特徴マップ403、およびフィルタ404は、
図1のフィルタ202、第1特徴マップ203、およびフィルタ204とそれぞれ同様であるため、それらの説明は省略する。
【0071】
本実施例において、学習工程は学習装置301において実行され、推定工程は画像推定部323によって実行される。なお、本実施例における推定工程は、実施例1の
図8に示されるフローチャートと同様の処理であるため、その説明は省略する。
【0072】
次に、
図12を参照して、本実施例における学習装置301により実行されるネットワークパラメータの学習方法(学習工程、学習済みモデルの製造方法)に関して説明する。
図12は、ネットワークパラメータの学習(学習工程)に関するフローチャートである。
図12の各ステップは、主に、学習装置301の取得部312、算出部313、更新部314、および生成部315により実行される。なお、
図12のステップS301、S302は、
図5のステップS101、S102とそれぞれ同様の処理であるため、それらの説明は省略する。
【0073】
続いてステップS303において、生成部315は、ステップS302にて取得したホワイトバランス係数を用いて、訓練画像401および正解画像421を補正する。本実施例におけるホワイトバランス係数による調整は、実施例1と同様に、式(2)~(4)を用いて行われる。続いて、生成部315は、ホワイトバランス係数を適用した訓練画像401および正解画像421に対して、必要に応じてクリッピング処理を行う。クリッピング処理では、ホワイトバランス係数による調整を行う前の訓練画像401または正解画像421において、輝度飽和値に達した画素がある場合、輝度飽和値に置き換える。輝度飽和値は、色ごとに異なっていてもよいし、同じ値としてもよい。
【0074】
続いてステップS304において、生成部315は、ステップS303にて調整した訓練画像401をニューラルネットワークへ入力して出力画像411を生成する。本実施例では、実施例1と同様にミニバッチ学習で実行するが、バッチ学習やオンライン学習で実行してもよい。また、本実施例の活性化関数としてはReLUを用いるが、シグモイド関数やハイパボリックタンジェント関数を用いてもよい。
【0075】
ステップS305以降の工程については、実施例1のステップS105以降と同様であるため、それらの説明は省略する。以上が本実施例にて実行される学習工程となる。このように、ニューラルネットワークに入力する前の訓練画像401に対して、ホワイトバランスによる調整を実施してもよく、実施例1と同様に、色ごとの推定精度のばらつきを低減することが可能なネットワークパラメータを生成することができる。
【0076】
なお本実施例では、訓練画像401に対して式(2)~(4)を用いてホワイトバランス係数を用いた調整処理を実行したが、別の方法を利用してもよい。例えば、式(2)~(4)を利用する代わりに、訓練画像401と一緒にホワイトバランス係数の情報をニューラルネットワークに入力してもよい。この場合、ニューラルネットワークに入力できるようにホワイトバランス係数をマップ化する。例えば、訓練画像401がRG1G2Bの4チャンネルである場合、ホワイトバランス係数のマップ(WBマップ)もRG1G2Bの4チャンネルとし、それぞれの1チャンネルあたりの要素数(画素数)は訓練画像401と等しくする。そして、訓練画像401とWBマップをチャンネル方向に規定の順序で連結する。このように連結した訓練画像401とWBマップを入力データとしてニューラルネットワークに入力し、出力画像411を得る。この場合、ホワイトバランス係数はニューラルネットワークへの入力データとしているため、出力画像411および正解画像421に対してはホワイトバランス係数を用いた調整処理は不要となる。そして、出力画像411および正解画像421に対してガンマ補正を行い、ガンマ補正後の出力画像411および正解画像421を用いて誤差を算出する。このとき、低輝度部に対して高輝度部の推定精度を優先する場合、ガンマ補正を実施しなくてもよい。
【0077】
このように、ホワイトバランス係数の利用方法としては、訓練画像401と一緒にニューラルネットワークに入力するという方法もあり、こうした方法でも色ごとの推定精度のばらつきを抑制したネットワークパラメータを生成することができる。なお、このネットワークパラメータを用いて推定処理を行う場合、同様に撮影画像とホワイトバランス係数をチャンネル方向に連結して、ニューラルネットワークに入力することで色ごとに推定精度のばらつきが少ない推定画像を生成することができる。また、訓練画像401とWBマップを連結して入力する場合について説明したが、ニューラルネットワークへの入力方法はこれに限らない。訓練画像401またはWBマップの一方のみをニューラルネットワークの第1層に入力し、第1層または何層かを経た後の出力である特徴マップと、第1層に入力しなかったもう一方をチャンネル方向に連結して、ニューラルネットワークの後続の層へ入力してもよい。また、ニューラルネットワークの入力部分を分岐させ、訓練画像401とWBマップをそれぞれ異なる層で特徴マップに変換し、それらの特徴マップを連結して後続の層へ入力してもよい。このような方法でも、同様に色ごとの推定精度のばらつきを抑制したネットワークパラメータを生成することができる。
【0078】
以上のように、各実施形態の画像処理方法は、ホワイトバランスに関する情報を取得する取得工程と、ニューラルネットワークのパラメータを更新する更新工程とを有する。更新工程において、ホワイトバランスに関する情報に基づいて、学習結果が調整されるように訓練画像をニューラルネットワークに入力して出力画像を生成し、出力画像と正解画像との差に基づきニューラルネットワークのパラメータを更新する。
【0079】
好ましくは、更新工程において、正解画像および出力画像に対してホワイトバランスに関する情報を用いてホワイトバランス調整を行い、ホワイトバランス調整後の正解画像および出力画像を用いて差を算出する。より好ましくは、更新工程において、ホワイトバランス調整後の正解画像および出力画像に対してガンマ補正を行う。
【0080】
好ましくは、更新工程において、訓練画像または出力画像と正解画像との色成分ごとの差を算出し、色成分ごとの差に対してホワイトバランスに関する情報に基づく重み付けを行って加算することにより出力画像と正解画像との差を算出する。
【0081】
好ましくは、更新工程において、訓練画像および正解画像に対してホワイトバランスに関する情報を用いてホワイトバランス調整を行い、ホワイトバランス調整後の訓練画像および正解画像を用いて差を算出する。より好ましくは、更新工程において、ホワイトバランス調整後の訓練画像をニューラルネットワークへ入力して出力画像を生成し、ホワイトバランス調整後の正解画像および出力画像に対してガンマ補正を行う。
【0082】
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0083】
各実施例によれば、色ごとの推定精度のばらつきを低減したニューラルネットワークを取得可能な画像処理方法、画像処理装置、画像処理プログラム、記憶媒体、および学習済みモデルの製造方法を提供することができる。
【0084】
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【0085】
101:学習装置(画像処理装置)
101b:取得部
101d:更新部