(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-08
(45)【発行日】2024-03-18
(54)【発明の名称】画像処理方法および装置、機械学習モデルの訓練方法および装置、並びにプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240311BHJP
H04N 23/60 20230101ALI20240311BHJP
【FI】
G06T7/00 350B
H04N23/60
(21)【出願番号】P 2021018697
(22)【出願日】2021-02-09
【審査請求日】2023-03-23
【早期審査対象出願】
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100110412
【氏名又は名称】藤元 亮輔
(74)【代理人】
【識別番号】100104628
【氏名又は名称】水本 敦也
(74)【代理人】
【識別番号】100121614
【氏名又は名称】平山 倫也
(72)【発明者】
【氏名】日浅 法人
【審査官】淀川 滉也
(56)【参考文献】
【文献】特開2020-166628(JP,A)
【文献】特開2020-036310(JP,A)
【文献】特開2019-139713(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
H04N 23/60
(57)【特許請求の範囲】
【請求項1】
撮像により得られた撮像画像を取得する工程と、
機械学習モデルを用いて、前記撮像画像に基づき第1のマップを生成し、該撮像画像及び該第1のマップに基づきモデル出力を生成する工程とを有し、
前記第1のマップは、前記撮像画像の輝度飽和領域における被写体が前記撮像において発生したぼけによって広がった領域と、該領域における信号値とを表す情報であることを特徴とする画像処理方法。
【請求項2】
撮像により得られた撮像画像を取得する工程と、
機械学習モデルを用いて、前記撮像画像に基づき第1の特徴マップを生成し、該第1の特徴マップに基づき第1のマップとモデル出力とを生成する工程とを有し、
前記第1のマップは、前記撮像画像の輝度飽和領域における被写体が前記撮像において発生したぼけによって広がった領域と、該領域における信号値とを表す情報であることを特徴とする画像処理方法。
【請求項3】
前記第1の特徴マップは、前記撮像画像の輝度飽和の影響を受けた領域とそれ以外の領域を切り分けるための情報が含まれていることを特徴とする請求項2に記載の画像処理方法。
【請求項4】
前記第1のマップは、前記輝度飽和領域を表す第2のマップに基づいて、生成されることを特徴する請求項1乃至3のいずれか一項に記載の画像処理方法。
【請求項5】
前記モデル出力は、前記撮像画像に対応する認識ラベルまたは信号列の少なくとも一方を含むことを特徴とする請求項1乃至4のいずれか一項に記載の画像処理方法。
【請求項6】
前記モデル出力は、先鋭化された前記撮像画像、前記ぼけとは異なるぼけを有する画像、及び前記撮像画像に対応する被写体空間のデプスマップのうち少なくとも一つを含むことを特徴とする請求項1乃至5のいずれか一項に記載の画像処理方法。
【請求項7】
前記撮像画像に基づいて前記第1のマップを生成する際に実行される線型和の回数は、前記撮像画像に基づいて前記モデル出力を生成する際に実行される線型和の回数以下であることを特徴とする請求項1乃至6のいずれか一項に記載の画像処理方法。
【請求項8】
前記第1のマップに基づいて、前記撮像画像と前記モデル出力とを合成することで出力画像を生成する工程を更に有することを特徴とする請求項1乃至7のいずれか一項に記載の画像処理方法。
【請求項9】
請求項1乃至8のいずれか一項に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項10】
撮像により得られた撮像画像を取得する取得手段と、
機械学習モデルを用いて、前記撮像画像に基づき第1のマップを生成し、該撮像画像及び該第1のマップに基づきモデル出力を生成する生成手段とを有し、
前記第1のマップは、前記撮像画像の輝度飽和領域における被写体が前記撮像において発生したぼけによって広がった領域と、該領域における信号値とを表す情報であることを特徴とする画像処理装置。
【請求項11】
原画像を取得する工程と、
前記原画像にぼけを付与することで、ぼけ画像を生成する工程と、
前記ぼけ画像に対応する正解画像を取得する工程と、
前記原画像に基づく画像に対して、信号値の閾値に基づいて第1の領域を設定する工程と、
前記第1の領域に対応する領域の信号値が前記原画像の信号値と同じである第1の画像を生成する工程と、
前記第1の画像に前記ぼけを付与することで、第1の正解マップを生成する工程と、
機械学習モデルを用いて、前記ぼけ画像に基づき第1のマップ及び出力画像を生成する工程と、
前記第1のマップと前記第1の正解マップとの誤差、及び前記出力画像と前記正解画像との誤差を用いて機械学習モデルを訓練する訓練工程とを有することを特徴とする訓練方法。
【請求項12】
前記第1の画像の第1の領域以外の領域における信号値は、前記原画像とは異なることを特徴とする請求項11に記載の訓練方法。
【請求項13】
前記第1の画像の第1の領域以外の領域における信号値は、すべて第1の信号値であることを特徴とする請求項11または12のいずれか一項に記載の訓練方法。
【請求項14】
前記ぼけ画像において、第2の信号値を超える信号値はクリップされ、
前記原画像は、前記第2の信号値よりも大きい信号値を有する画像であることを特徴とする請求項11乃至13のいずれか一項に記載の訓練方法。
【請求項15】
前記第2の信号値は、前記閾値と等しいことを特徴とする請求項14に記載の訓練方法。
【請求項16】
前記正解画像は、前記ぼけ画像よりもぼけが少ない画像、前記ぼけ画像とは異なる形状のぼけが前記原画像に付与された画像、または前記ぼけ画像に対応するデプスマップを含むことを特徴とする請求項11乃至15のいずれか一項に記載の訓練方法。
【請求項17】
請求項11乃至16のいずれか一項に記載の訓練方法をコンピュータに実行させることを特徴とするプログラム。
【請求項18】
原画像を取得する第1の取得手段と、
前記原画像にぼけを付与することで、ぼけ画像を生成する第1の生成手段と、
前記ぼけ画像に対応する正解画像を取得する第2の取得手段と、
前記原画像に基づく画像に対して、信号値の閾値に基づいて第1の領域を設定する設定手段と、
前記第1の領域に対応する領域の信号値が前記原画像の信号値と同じである第1の画像を生成する画像生成手段と、
前記第1の画像に前記ぼけを付与することで、第1の正解マップを生成するマップ生成手段と、
機械学習モデルを用いて、前記ぼけ画像に基づき第1のマップ及び出力画像を生成する第2の生成手段と、
前記第1のマップと前記第1の正解マップとの誤差、及び前記出力画像と前記正解画像との誤差を用いて機械学習モデルを訓練する訓練手段と、を有することを特徴とする訓練装置。
【請求項19】
撮像画像を取得する工程と、
請求項11乃至16のいずれか一項に記載された訓練方法によって訓練された機械学習モデルを用いて、前記撮像画像に基づきモデル出力を生成する工程とを有することを特徴とする画像処理方法。
【請求項20】
請求項10に記載の画像処理装置と、該画像処理装置と通信可能な装置とを有する画像処理システムであって、
前記装置は、前記撮像画像および処理の実行に関する要求を前記画像処理装置へ送信する送信手段を有し、
前記画像処理装置は、前記装置から前記撮像画像および前記要求を受信する受信手段を有し、
前
記生成手段は、前記要求に応じて前記モデル出力を生成することを特徴とする画像処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ぼけの発生した画像に対して、機械学習モデルを用いた認識または回帰のタスクを実行する画像処理方法に関する。
【背景技術】
【0002】
非特許文献1には、機械学習モデルの1つである畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)を用いて、撮像画像のぼけを先鋭化する方法が開示されている。撮像画像の輝度飽和値以上の信号値を有する画像をぼかすことで訓練データセットを生成し、訓練データセットでCNNを訓練することで、輝度飽和領域の周辺でも弊害を抑制して、ぼけ先鋭化を行うことができる。
【先行技術文献】
【非特許文献】
【0003】
【文献】Li Xu,et al.,Deep Convolutional Neural Network for Image Deconvolution,Advances in Neural Information Processing Systems 27,NIPS2014
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、非特許文献1に開示された方法では、輝度飽和と無関係な位置の被写体にアーティファクト(偽構造)が発生する可能性がある。アーティファクトとは、具体的には、実際の被写体の構造とは異なる局所的な信号値の減少または増大である。なお、アーティファクトとその発生理由の詳細については後述する。ぼけ先鋭化以外のぼけが発生した画像に対するタスクにおいても、同様に輝度飽和の影響によってタスクの精度が低下する。
【0005】
そこで本発明は、ぼけの発生した画像に対する機械学習を用いた認識または回帰のタスクにおいて、輝度飽和によるタスクの精度低下を抑制することが可能な画像処理方法などを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一側面としての画像処理方法は、撮像により得られた撮像画像を取得する工程と、機械学習モデルを用いて、前記撮像画像に基づき第1のマップを生成し、該撮像画像及び該第1のマップに基づきモデル出力を生成する工程とを有し、前記第1のマップは、前記撮像画像の輝度飽和領域における被写体が前記撮像において発生したぼけによって広がった領域と、該領域における信号値とを表す情報である。
【0007】
本発明の他の目的及び特徴は、以下の実施例において説明される。
【発明の効果】
【0008】
本発明によれば、ぼけの発生した画像に対する機械学習を用いた認識または回帰のタスクにおいて、輝度飽和によるタスクの精度低下を抑制することが可能な画像処理方法などを提供することができる。
【図面の簡単な説明】
【0009】
【
図1】実施例1における機械学習モデルの構成図である。
【
図2】実施例1乃至3における被写体と撮像画像との関係、および第1のマップの説明図である。
【
図3】実施例1における画像処理システムのブロック図である。
【
図4】実施例1における画像処理システムの外観図である。
【
図5】実施例1におけるアーティファクトの説明図である。
【
図6】実施例1乃至3における機械学習モデルの訓練のフローチャートである。
【
図7】実施例1、2におけるモデル出力の生成のフローチャートである。
【
図8】実施例2における画像処理システムのブロック図である。
【
図9】実施例2における画像処理システムの外観図である。
【
図10】実施例2における機械学習モデルの構成図である。
【
図11】実施例3における画像処理システムのブロック図である。
【
図12】実施例3における画像処理システムの外観図である。
【
図13】実施例3における機械学習モデルの構成図である。
【
図14】実施例3におけるモデル出力の生成のフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照符号を付し、重複する説明は省略する。
【0011】
各実施例を詳述する前に、本発明の課題に関して説明する。画像に対する認識または回帰のタスクにおいて、理論ベースの手法では、仮定や近似によって無視された要素(モデル化された要素)によって精度が低下し得る。これに対して、機械学習モデルを用いた手法では、それらの要素も含む訓練データを用いて機械学習モデルを訓練することで、仮定や近似のない訓練データに即した推定が実現できるため、タスクの精度が向上する。すなわち、画像に対する認識または回帰のタスクにおいて、機械学習モデルを用いた手法は理論ベースの手法に対して高い精度を実現できる。
【0012】
例えば、ぼけの発生した撮像画像のぼけを先鋭化する技術では、前記要素として撮像画像の輝度飽和(白飛びとも呼ばれる)が挙げられる。Wienerフィルタなどの理論ベースの手法では、輝度飽和はないと仮定されているため、輝度飽和領域の周辺でぼけが正しく先鋭化されず、リンギングなどの弊害が発生する。これに対して、機械学習による手法は非特許文献1のように、輝度飽和が存在してもぼけを補正することができることが知られている。ただし、非特許文献1の手法では補正後の画像にアーティファクトが生じてしまい、十分な精度が得られない場合があった。
【0013】
このように本発明の課題は、ぼけの発生した撮像画像に対して機械学習モデルで認識または回帰のタスクを行った際、輝度飽和に起因して発生するタスクの精度が低下することである。ここで、ぼけとは、撮像画像の撮像に用いた光学系の収差、回折、デフォーカスいずれかによるぼけ、光学ローパスフィルタによるぼけ、撮像素子の画素開口によるぼけ、撮像時の手ぶれまたは被写体ぶれによるぼけ等のいずれか、または複数の組み合わせを指す。また、認識タスクとは、入力された画像に対応するクラスを求めるタスクである。例えば、画像中の被写体を人、犬、車などに分類するタスクや、顔画像から笑顔、泣き顔などの表情に分類するタスクなど、被写体の性質や意味を認識するタスクが挙げられる。クラスは一般に離散変数である。また、クラスはスカラー値である認識ラベル、またはセグメンテーションマップなどの認識ラベルが空間的に配列された信号列である。これに対して回帰は、入力された画像に対応する連続変数が空間的に配列された信号列を求めるタスクである。例えば、ぼけの発生した画像からぼけの先鋭化された画像を推定するタスクや、画像から被写体空間のデプスマップを推定するタスクなどが挙げられる。
【0014】
図2(A)を参照して、ぼけの発生した撮像画像における、輝度飽和の周辺とそれ以外の領域における性質の差異に関して説明する。
図2(A)は、被写体と撮像画像の輝度分布の関係を示す図である。
図2(A)において、横軸は空間座標、縦軸は輝度をそれぞれ示す。実線がぼけのない場合の撮像画像、破線がぼけの発生した実際の撮像画像である。一点鎖線は、輝度飽和でクリップされる前の輝度分布を表している。被写体251は撮像過程でぼけても、輝度飽和値以下の輝度しか有さない。そのため、輝度飽和値によるクリップは発生せず、非飽和ぼけ像261となる。これに対し、被写体252は撮像過程でぼけた結果、輝度飽和値以上の輝度を有するため、輝度飽和値によるクリップが発生し、飽和ぼけ像262となる。非飽和ぼけ像261は、ぼけによって被写体の情報が減衰する。これに対し、飽和ぼけ像262は、ぼけだけでなく輝度飽和による信号値のクリップでも被写体の情報が減衰する。故に、輝度飽和の有無によって、被写体情報の減衰の仕方が異なる。これが輝度飽和の周辺とそれ以外の領域で、性質が異なる1つ目の要因である。
【0015】
次に、性質が異なる2つ目の要因に関して説明する。それは、輝度飽和領域の端において、信号値のクリップにより被写体には本来存在しない偽エッジが発生することである。飽和ぼけ像262は本来、輝度飽和値以上の領域において一点鎖線で表される輝度分布となるため滑らかな分布をしているが、輝度飽和値のクリップによって不連続なエッジが形成される。
【0016】
さらに撮像画像は、輝度飽和領域にある被写体252から、ぼけによってその周辺に信号値が漏れ出している。この漏れ出した信号値の大きさと範囲は、輝度飽和領域にある被写体252の輝度が大きいほど大きくなるが、輝度飽和によって信号値がクリップされているため、漏れ出した信号値の大きさと範囲は容易には分からない。故に、性質が異なる3つ目の要素は、輝度飽和領域の周辺において、被写体の信号値とぼけによって漏れ出してきた信号値を(仮にぼけの形状が既知だとしても)分離できないことである。
【0017】
これら3つの要素(要因)によって、輝度飽和領域の周辺とそれ以外の領域では性質が異なるため、それぞれに対して異なる処理を実行しなければ、高精度なタスクは実現できない。
【0018】
機械学習モデルは、入力された画像に対して画一的な効果の処理でなく、画像の特徴に応じて効果の異なる処理を実行することができる。そのため、例えば撮像画像のぼけを先鋭化する例を考えた場合、機械学習モデルは、注目した領域が輝度飽和を含むぼけ像(飽和ぼけ像)か、それ以外のぼけ像(非飽和ぼけ像)かを内部で判定し、異なる先鋭化処理を実行する。これによって、どちらのぼけ像も先鋭化することができる。しかし、機械学習モデルの判定が正しく行われない場合がある。例えば、
図2(A)の飽和ぼけ像262において、輝度飽和領域の近傍が注目領域だった場合、機械学習モデルは、注目領域の近傍に輝度飽和領域があるため、注目領域が輝度飽和の影響を受けた領域と判定可能である。しかし、輝度飽和領域から離れた位置271が注目領域の場合、位置271が輝度飽和の影響を受けているか否かを判定することは容易でなく、曖昧性が高くなる。その結果、輝度飽和領域から離れた位置では、機械学習モデルが誤判定を起こすことがある。これによって、タスクがぼけの先鋭化の場合、非飽和ぼけ像に対して、飽和ぼけ像に対応する先鋭化処理を実行する。この際、ぼけを先鋭化した画像にアーティファクトが発生し、タスクの精度が低下する。このアーティファクトに関しては、実施例1で詳細に説明する。
【0019】
ぼけの先鋭化以外のタスクに関しても同様で、機械学習モデルが輝度飽和の影響を受けている領域と、それ以外の領域を誤判定することで、タスクの精度が低下する。例えば、認識タスクでは、非飽和ぼけ像を飽和ぼけ像と誤判定すると、ぼけ像に輝度飽和領域からぼけによって漏れ出した信号値が加算されていると状態であると判定するため、実際の非飽和ぼけ像とは異なる特徴量を抽出し、タスクの精度が低下する。
【0020】
次に、この課題を解決する本発明の要旨に関して説明する。本発明では、機械学習モデルを用いて、ぼけが発生した撮像画像から第1のマップを生成する。第1のマップは、撮像画像の輝度飽和領域の被写体が、撮像画像の撮像過程で発生したぼけによって広がった領域の信号値の大きさと範囲を表すマップ(空間的に配列された信号列)である。換言すると、第1のマップは、撮像画像の輝度飽和領域を含む高輝度領域の輝度値の拡がりを表すマップである(輝度飽和するほどに高輝度な被写体が撮像過程で生じたぼけにより広がった分布表すマップである)。
【0021】
例として、
図2(A)の撮像画像に対する第1のマップを
図2(B)に破線で示す。機械学習モデルに第1のマップを明示的に生成させることで、機械学習モデルは、撮像画像中の輝度飽和の影響の有無とその大きさを高精度に推定することができる。第1のマップが生成されることで、機械学習モデルは、輝度飽和の影響を受けた領域に実行すべき処理と、それ以外の領域に実行すべき処理を、それぞれ適切な領域に実行することができる。そのため、機械学習モデルに第1のマップを生成させることで、第1のマップの生成を介さない(撮像画像から直接、認識ラベルやぼけ先鋭化画像のみを生成する)場合に対して、タスクの精度が向上する。
【0022】
なお以下では、訓練データセットに基づいて機械学習モデルのウエイトを決定する段階のことを訓練と呼び、訓練済みのウエイトを用いた機械学習モデルで撮像画像から認識または回帰のタスクを実行する段階のことを推定と呼ぶ。機械学習モデルは、例えば、ニューラルネットワーク、遺伝的プログラミング、ベイジアンネットワークなどを含む。ニューラルネットワークは、CNN(Convolutional Neural Network)、GAN(Generative Adversarial Network)、RNN(Recurrent Neural Network)などを含む。
【実施例1】
【0023】
まず、本発明の実施例1における画像処理システムに関して説明する。本実施例では、機械学習モデルによるタスクを、輝度飽和を含む撮像画像に対するぼけの先鋭化とする。また、先鋭化するぼけは、光学系で発生する収差や回折、光学ローパスフィルタによるぼけを対象とする。ただし、画素開口やデフォーカス、ぶれによるぼけを先鋭化する場合も、同様に発明の効果を得ることができる。また、ぼけ先鋭化以外のタスクに関しても、同様に発明を実施し、効果を得ることが可能である。
【0024】
図3は、本実施例における画像処理システム100のブロック図である。
図4は、画像処理システム100の外観図である。画像処理システム100は、有線または無線のネットワークで接続された訓練装置101と画像処理装置103とを有する。訓練装置101は、記憶部101a、取得部101b、演算部101c、および更新部101dを有する。画像処理装置103は、記憶部103a、取得部103b、および先鋭化部103cを有する。画像処理装置103には、有線または無線によって、撮像装置102、表示装置104、記録媒体105、および出力装置106が接続される。
【0025】
撮像装置102を用いて被写体空間を撮像した撮像画像は、画像処理装置103に入力される。撮像画像には、撮像装置102内の光学系102aによる収差および回折と、撮像素子102bの光学ローパスフィルタとにより、ぼけが発生しており、被写体の情報が減衰している。画像処理装置103は、機械学習モデルを用いて、撮像画像に対してぼけ先鋭化を行い、第1のマップとぼけ先鋭化画像(モデル出力)を生成する。機械学習モデルは、訓練装置101で訓練されたものである。画像処理装置103は、機械学習モデルに関する情報を予め訓練装置101から取得し、記憶部103aに記憶している。また画像処理装置103は、ぼけ先鋭化の強度を調整する機能を有する。なお、機械学習モデルの訓練と推定、およびぼけ先鋭化の強度調整の詳細に関しては、後述する。
【0026】
ユーザは、表示装置104に表示された画像を確認しながら、ぼけ先鋭化の強度調整を行うことができる。強度調整が施されたぼけ先鋭化画像は、記憶部103aまたは記録媒体105に保存され、必要に応じてプリンタなどの出力装置106に出力される。なお、撮像画像は、グレースケールでも、複数の色成分を有していてもよい。また、未現像のRAW画像でも、現像後の画像でもよい。
【0027】
次に、
図5(A)乃至(C)を参照して、機械学習モデルによって、ぼけ先鋭化を行う際に発生するアーティファクトに関して説明する。アーティファクトとは、実際の被写体の構造とは異なる局所的な信号値の減少、または増大である。
図5(A)乃至(C)は、アーティファクトの説明図であり、横軸は空間座標、縦軸は信号値をそれぞれ示す。
図5(A)乃至(C)は、画像の信号値の空間変化を示し、R、G、B(Red、Green、Blue)の色成分にそれぞれ対応する。ここで、画像は8bitに現像された画像であるため、飽和値は255である。
【0028】
図5(A)乃至(C)において、一点鎖線は撮像画像(ぼけ画像)、細い実線はぼけのない正解画像をそれぞれ示す。いずれの画素も輝度飽和値に達していないため、輝度飽和の影響はない。点線は、本実施例を適用しない従来の機械学習モデルを用いて、撮像画像のぼけを先鋭化したぼけ先鋭化画像である。点線で表されるぼけ先鋭化画像では、エッジのぼけが先鋭化されているが、中央付近に正解画像にはない信号値の減少が発生している。この減少は、エッジと隣接せず、離れた位置で発生しており、さらに発生領域が広いことから、アンダーシュートとは異なる弊害である。これが、ぼけ先鋭化の際に発生するアーティファクトである。
【0029】
また、
図5(A)乃至(C)の比較から分かるように、色成分によって信号値の減少の度合いが異なる。
図5(A)乃至(C)では、G、R、Bの順に、信号値の減少の度合いが大きくなっている。これは、未現像のRAW画像でも同様の傾向を示す。そのため、正解画像では平坦部にもかかわらず、点線で表される従来のぼけ先鋭化画像では緑に色づいた暗い領域がアーティファクトとして発生する。なお、
図5(A)乃至(C)では正解画像よりも信号値が減少する例を示しているが、逆に信号値が増大する場合もある。
【0030】
このアーティファクトが発生する原因は、前述したように、機械学習モデルが輝度飽和の影響を受けた領域とそれ以外の領域を誤判定し、飽和ぼけ像にかけるべきぼけ先鋭化を、非飽和ぼけ像に対して誤って実行したためである。
図2(A)から分かるように、被写体の輝度が大きいほど、ぼけ先鋭化の残差成分(撮像画像とぼけのない撮像画像の差)の絶対値は大きくなる。そのため、飽和ぼけ像にかけるべきぼけ先鋭化を、非飽和ぼけ像に対して実行すると過剰に信号値を変化させることになる。その結果、
図5(A)乃至(C)の点線のように、正解画像(実線)より信号値が小さくなった領域が発生する。
【0031】
また、一般的に、可視光を対象とした光学系は、RGBのうちGの性能が最も良くなるように設計されていることが多い。すなわち、RやBの方がGよりぼけ(PSF:点像強度分布)の広がりが大きいため、高輝度な被写体を撮像した飽和ぼけ像の端はRやBに色付きやすい(パープルフリンジがこれに該当する)。この飽和ぼけ像を補正する場合、GよりRやBにおけるぼけ先鋭化の残差成分が大きくなる。故に、非飽和ぼけ像を飽和ぼけ像と誤判定した場合、GよりRやBの信号値の減少が大きくなり、
図5(A)乃至(C)に示されるように、緑に色付いた暗い領域としてアーティファクトが発生する。
【0032】
これに対して、
図5(A)乃至(C)中に示される破線は、本実施例の第1のマップを推定する機械学習モデルを用いて、ぼけの先鋭化を行った結果である。アーティファクトの発生を抑制して、ぼけが先鋭化されていることが分かる。これは、機械学習モデルに第1のマップを明示的に推定させることによって、機械学習モデルが輝度飽和の影響を受けた領域とそれ以外の領域を誤判定しにくくなるためである。
図5(A)乃至(C)から、本実施例によって、タスクの精度低下が抑制されていることが分かる。
【0033】
次に、
図6を参照して、訓練装置101で実行される機械学習モデルの訓練に関して説明する。
図6は、機械学習モデルの訓練のフローチャートである。
図6の各ステップは、訓練装置101の記憶部101a、取得部101b、演算部101c、または更新部101dにより実行される。
【0034】
まずステップS101において、取得部(取得手段)101bは、記憶部101aから1枚以上の原画像を取得する。原画像は、第2の信号値よりも高い信号値を有する画像である。ここで第2の信号値は、撮像画像の輝度飽和値に相当する信号値である。ただし、機械学習モデルに入力する際、信号値を規格化してもよいため、第2の信号値と撮像画像の輝度飽和値とが一致してなくてもよい。原画像を基にして機械学習モデルの訓練を行うため、原画像は様々な周波数成分(異なる向きと強度のエッジ、グラデーション、平坦部など)を有する画像であることが望ましい。原画像は実写画像でもよいし、CG(Computer Graphics)でもよい。
【0035】
続いてステップS102において、演算部(ぼけ生成手段)101cは、原画像にぼけを付与し、ぼけ画像を生成する。ぼけ画像は、訓練時に機械学習モデルに入力される画像であり、推定時の撮像画像に相当する。付与するぼけは、先鋭化の対象となるぼけである。本実施例では、光学系102aの収差と回折、および撮像素子102bの光学ローパスフィルタによって発生するぼけを付与する。光学系102aの収差と回折によるぼけの形状は、像面座標(像高とアジムス)によって変化する。また、光学系102aの変倍、絞り、フォーカスの状態によっても変化する。これらのぼけ全てを先鋭化する機械学習モデルを一括で訓練したい場合、光学系102aで発生する複数のぼけを用いて、複数のぼけ画像を生成するとよい。また、ぼけ画像において、第2の信号値を超える信号値はクリップされる。これは、撮像画像の撮像過程で起きる輝度飽和を再現するために行う。必要に応じて、撮像素子102bで発生するノイズをぼけ画像に付与してもよい。
【0036】
続いてステップS103において、演算部(設定手段)101cは、原画像に基づく画像と信号値の閾値とに基づいて、第1の領域を設定する。本実施例では、原画像に基づく画像として、ぼけ画像を用いるが、原画像そのものなどを用いてもよい。ぼけ画像の信号値と、信号値の閾値と、を比較することで、第1の領域を設定する。より具体的には、ぼけ画像の信号値が、信号値の閾値以上となっている領域を第1の領域とする。本実施例において、信号値の閾値は第2の信号値である。故に、第1の領域は、ぼけ画像の輝度飽和領域を表す。ただし、信号値の閾値と第2の信号値とは一致していなくてもよい。信号値の閾値を、第2の信号値よりやや小さい値(例えば、0.9倍)に設定してもよい。
【0037】
続いてステップS104において、演算部(画像生成手段)101cは、第1の領域に原画像の信号値を有する第1の画像を生成する。第1の画像は、第1の領域以外の領域において、原画像とは異なる信号値を有する。さらに望ましくは、第1の画像は、第1の領域以外の領域において、第1の信号値を有する。本実施例において、第1の信号値は0であるが、これに限定されるものではない。すなわち本実施例において、第1の画像は、ぼけ画像が輝度飽和領域のみに原画像の信号値を有し、それ以外の領域の信号値は0である。
【0038】
続いてステップS105において、演算部(マップ生成手段)101cは、第1の画像にぼけを付与し、第1の正解マップを生成する。付与されるぼけは、ぼけ画像に付与したぼけと同じである。これにより、ぼけ画像の輝度飽和領域にある被写体から、ぼけによって周辺に漏れ出した信号値の大きさと範囲を表すマップ(空間的に配列された信号列)である第1の正解マップが生成される。本実施例では、ぼけ画像と同様に、第1の正解マップを第2の信号値でクリップするが、クリップを行わなくてもよい。
【0039】
続いてステップS106において、取得部101bは、正解モデル出力を取得する。本実施例ではタスクがぼけ先鋭化のため、正解モデル出力はぼけ画像よりぼけの小さい画像である。本実施例では、原画像を第2の信号値でクリップすることで、正解モデル出力を生成する。原画像に高周波成分が不足している場合、原画像を縮小した画像を正解モデル出力としてもよい。この場合、ステップS102にてぼけ画像を生成する際にも同様に縮小を行う。また、ステップS106は、ステップS101よりも後であって、かつステップS107より前であれば、いつ実行してもよい。
【0040】
続いてステップS107において、演算部101cは、機械学習モデルを用いて、ぼけ画像に基づき、第1のマップとモデル出力を生成する。
図1は、機械学習モデルの構成図である。本実施例では、
図1に示される機械学習モデルを使用するが、これに限定されるものではない。
図1において、ぼけ画像201と輝度飽和マップ202が、機械学習モデルに入力される。輝度飽和マップ202は、ぼけ画像201の輝度飽和した(信号値が第2の信号値以上である)領域を示すマップ(第2のマップ)である。例えば、第2の信号値で、ぼけ画像201を二値化することにより生成することができる。ただし、輝度飽和マップ202を用いなくてもよい。ぼけ画像201と輝度飽和マップ202は、チャンネル方向に連結されて、機械学習モデルに入力される。ただし、本実施例はこれに限定されるものではない。例えば、ぼけ画像201と輝度飽和マップ202をそれぞれ特徴マップに変換し、それらの特徴マップをチャンネル方向に連結してもよい。また、輝度飽和マップ202以外の情報を入力に追加してもよい。
【0041】
機械学習モデルは複数の層を有し、各層で層の入力とウエイトの線型和が取られる。ウエイトの初期値は、乱数などで決定することができる。本実施例は、線型和として入力とフィルタの畳み込み(フィルタの各要素の値がウエイトに該当し、またバイアスとの和を含んでいてもよい)を用いるCNNを機械学習モデルとして用いるが、これに限定されるものではない。また、各層では必要に応じて、ReLU(Rectified Linear Unit)やシグモイド関数などの活性化関数による非線型変換が実行される。さらに、機械学習モデルは必要に応じて、残差ブロックやSkip Connection(Shortcut Connectionともいう)を有していてもよい。複数の層(本実施例では畳み込み層16層)を介した結果、第1のマップ203が生成される。本実施例では、層211の出力と輝度飽和マップ202の要素毎の和を取ることで第1のマップ203とするが、構成はこれに限定されるものではない。第1のマップが直接、層211の出力として生成されてもよい。或いは、層211の出力に対して任意の処理を施した結果を第1のマップ203としてもよい。
【0042】
次に、第1のマップ203とぼけ画像201をチャンネル方向に連結して後続の層に入力し、複数の層(本実施例では畳み込み層16層)を介した結果、モデル出力204を生成する。モデル出力204も、層212の出力とぼけ画像201の要素ごとの和を取ることで生成されるが、これに限定されるものではない。なお本実施例では、各層で3×3のフィルタ64種類(ただし、層211と層212は、フィルタ種類の数がぼけ画像201のチャンネル数と同数)との畳み込みを実行するが、これに限定されるものではない。
【0043】
続いて、
図6のステップS108において、更新部(訓練手段)101dは、誤差関数に基づいて、機械学習モデルのウエイトを更新する。本実施例において、誤差関数は、第1のマップ203と第1の正解マップとの誤差と、モデル出力204と正解モデル出力との誤差と、の重み付き和である。誤差の算出には、MSE(Mean Squared Error)を使用する。重みは両者1とする。ただし、誤差関数と重みはこれに限定されるものではない。ウエイトの更新には、誤差逆伝搬法(Backpropagation)などを用いることができる。また、誤差は残差成分に対してとってもよい。残差成分の場合、第1のマップ203と輝度飽和マップ202との差分成分と、第1の正解マップと輝度飽和マップ202との差分成分と、の誤差を用いる。同様に、モデル出力204とぼけ画像201との差分成分と、正解モデル出力とぼけ画像201との差分成分と、の誤差を用いる。
【0044】
続いてステップS109において、更新部101dは、機械学習モデルの訓練が完了したか否かを判定する。訓練の完了は、ウエイトの更新の反復回数が既定の回数に達したかや、更新時のウエイトの変化量が既定値より小さいかなどによって、判定することができる。ステップS109にて訓練が完了していないと判定された場合、ステップS101へ戻り、取得部101bは1枚以上の新たな原画像を取得する。一方、訓練が完了したと判定された場合、更新部101dは訓練を終了し、機械学習モデルの構成とウエイトの情報を記憶部101aに記憶する。
【0045】
以上の訓練方法によって、機械学習モデルは、ぼけ画像(推定時には撮像画像)の輝度飽和領域の被写体がぼけによって広がった信号値の大きさと範囲を表す第1のマップを推定することができる。第1のマップを明示的に推定することで、機械学習モデルは、飽和ぼけ像と非飽和ぼけ像それぞれに対するぼけの先鋭化を、適切な領域に実行できるようになるため、アーティファクトの発生が抑制される。
【0046】
次に、
図7を参照して、画像処理装置103で実行される、訓練済みの機械学習モデルを用いた撮像画像のぼけ先鋭化に関して説明する。
図7は、モデル出力の生成のフローチャートである。
図7の各ステップは、画像処理装置103の記憶部103a、取得部103b、または先鋭化部103cにより実行される。
【0047】
まずステップS201において、取得部(取得手段)103bは、撮像画像と機械学習モデルを取得する。機械学習モデルの構成とウエイトの情報は、記憶部103aから取得される。
【0048】
続いてステップS202において、先鋭化部(生成手段)103cは、機械学習モデルを用いて、撮像画像から、第1のマップと、撮像画像のぼけが先鋭化されたぼけ先鋭化画像(モデル出力)とを生成する。機械学習モデルは、訓練時と同様に、
図1に示される構成を有する。訓練時と同様に、撮像画像の輝度飽和領域を表す輝度飽和マップを生成して入力し、第1のマップとモデル出力を生成する。
【0049】
続いてステップS203において、先鋭化部103cは、第1のマップに基づいて、撮像画像とモデル出力を合成する。撮像画像の輝度飽和領域の周辺は、それ以外の領域に対して、輝度飽和による被写体の情報の減衰があるため、ぼけの先鋭化(減衰した被写体情報の推定)の難度が高い。そのため、輝度飽和領域の周辺は、ぼけの先鋭化に伴う弊害(リンギングやアンダーシュートなど)が発生しやすい。この弊害を抑制するために、モデル出力と撮像画像とを合成する。この際、第1のマップに基づいて合成することにより、非飽和ぼけ像のぼけ先鋭化効果の低下を抑制しつつ、弊害が出やすい輝度飽和領域の周辺のみ撮像画像の重みを強くすることができる。本実施例では、以下の方法で合成を行う。第1のマップを第2の信号値で規格化し、これを撮像画像の重みマップとして、モデル出力と加重平均する。この際、モデル出力に対しては、全て1のマップから撮像画像の重みマップを減算した重みマップを使用する。第1のマップを規格化する信号値を変化させることで、ぼけ先鋭化効果と弊害のバランスを調整することも可能である。また他に、第1のマップが既定の信号値以上の値を有する領域のみ、モデル出力を撮像画像に置換する合成方法などを用いてもよい。
【0050】
以上の構成により、機械学習モデルを用いたぼけ先鋭化において、輝度飽和による精度低下を抑制することが可能な画像処理システムを提供することができる。
【実施例2】
【0051】
次に、本発明の実施例2における画像処理システムに関して説明する。本実施例では、機械学習モデルによるタスクを、輝度飽和を含む撮像画像に対するぼけ味の変換とする。ぼけ味の変換とは、撮像画像に作用しているデフォーカスによるぼけを、該ぼけとは異なる形状のぼけに変換するタスクである。例えば、デフォーカスぼけに二線ぼけやヴィネッティングが発生している際に、これを円形のディスク(強度がフラットな形状)やガウシアンで表されるぼけに変換する。ぼけ味の変換では、デフォーカスのぼけをより大きくし、ぼけの先鋭化(減衰した被写体情報の推定)は行わない。本実施例に記載の方法は、ぼけ味の変換以外のタスクに関しても、同様に効果を得ることが可能である。
【0052】
図8は、本実施例における画像処理システム300のブロック図である。
図9は、画像処理システム300の外観図である。画像処理システム300は、訓練装置301、撮像装置302、および画像処理装置303を有する。訓練装置301と画像処理装置303、画像処理装置303と撮像装置302はそれぞれ、有線または無線のネットワークで接続される。訓練装置301は、記憶部311、取得部312、演算部313、および更新部314を有する。撮像装置302は、光学系321、撮像素子322、記憶部323、通信部324、および表示部325を有する。画像処理装置303は、記憶部331、通信部332、取得部333、および変換部334を有する。
【0053】
撮像装置302で撮像された撮像画像は、光学系321に応じた形状のデフォーカスぼけが作用している。撮像画像は、通信部(送信手段)324を介して画像処理装置303へ送信される。画像処理装置303は、通信部(受信手段)332を介して撮像画像を受信し、記憶部331に記憶された機械学習モデルの構成とウエイトの情報を用いて、ぼけ味の変換を行う。機械学習モデルの構成とウエイトの情報は、訓練装置301によって訓練されたものであり、予め訓練装置301から取得され、記憶部331に記憶されている。撮像画像のぼけ味が変換されたぼけ味変換画像(モデル出力)は、撮像装置302に送信され、記憶部323に記憶、表示部325に表示される。
【0054】
次に、
図6を参照して、訓練装置301で実行される機械学習モデルの訓練に関して説明する。なお、実施例1と同様の箇所の説明は省略する。
【0055】
まずステップS101において、取得部312は、記憶部311から1枚以上の原画像を取得する。続いてステップS102において、演算部313は、原画像に対してデフォーカス量を設定し、デフォーカス量に対応したデフォーカスぼけを原画像に付与したぼけ画像を生成する。デフォーカスぼけは、光学系321の変倍と絞りによって、形状が変化する。また、デフォーカスぼけは、光学系321のフォーカス距離と、その時の被写体のデフォーカス量と、によっても変化する。さらに、像高とアジムスによっても、デフォーカスぼけは変化する。これらのデフォーカスぼけ全てを変換可能な機械学習モデルを一括で訓練したい場合、光学系321で発生する複数のデフォーカスぼけを用いて、複数のぼけ画像を生成するとよい。また、ぼけ味の変換において、デフォーカスしていないフォーカス被写体は、変換前後で不変となることが望ましい。故に、フォーカス被写体は変化させないように機械学習モデルを訓練する必要があるため、デフォーカス量が0の場合のぼけ画像も生成する。デフォーカス量が0のぼけ画像は、ぼけの付与がなくてもよいし、光学系321のフォーカス面における収差や回折によるぼけを付与してもよい。
【0056】
続いてステップS103において、演算部313は、ぼけ画像と信号値の閾値に基づいて、第1の領域を設定する。続いてステップS104において、演算部313は、第1の領域に原画像の信号値を有する第1の画像を生成する。続いてステップS105において、演算部313は、第1の画像にぼけ画像と同じデフォーカスぼけを付与し、第1の正解マップを生成する。続いてステップS106において、取得部312は、正解モデル出力を取得する。本実施例では、デフォーカスぼけがディスクぼけ(円形でフラットな強度分布を有するぼけ)に変換されるように機械学習モデルを訓練する。そのため、原画像に対してディスクぼけを付与して、正解モデル出力を生成する。ただし、付与するぼけの形状はこれに限定されない。ぼけ画像のデフォーカス量に対応した広がりを有するディスクぼけを付与する。付与するディスクぼけは、ぼけ画像の生成で付与したデフォーカスぼけより、ぼけが大きい。言い換えると、ディスクぼけはぼけ画像の生成で付与したデフォーカスぼけより、MTF(変調伝達関数)が低い。また、デフォーカス量が0の場合は、ぼけ画像の生成と同様である。
【0057】
続いてステップS107において、演算部313は、機械学習モデルを用いて、ぼけ画像から第1のマップとモデル出力を生成する。
図10は、本実施例における機械学習モデルの構成図である。本実施例では、
図10に示される構成の機械学習モデルを用いるが、これに限定されるものではない。
図10において、ぼけ画像401と、ぼけ画像401の輝度飽和領域を示す輝度飽和マップ(第2のマップ)402をチャンネル方向に連結して入力し、複数の層(畳み込み層19層)を介して、第1の特徴マップ411を生成する。さらに、第1の特徴マップに基づいて、第1のマップ403とモデル出力404を生成する。本実施例では、機械学習モデルの途中で層を分岐させ、それぞれに第1の特徴マップ411を入力する。第1のマップ403は第1の特徴マップ411から1層(畳み込み層1層)を介して生成され、モデル出力404は複数の層(畳み込み層20層)を介して生成されるが、各層の数はこれに限定されるものではない。また、層を分岐させず、第1の特徴マップ411から、第1のマップ403とモデル出力404をチャンネル方向に連結した状態で生成してもよい。
【0058】
図10の構成では、モデル出力404の生成に関して、第1のマップ403が直接的には用いられない。しかし、第1のマップ403を生成する元となる第1の特徴マップ411に、輝度飽和の影響を受けた領域とそれ以外の領域を切り分けられる情報が含まれている。そのため、第1の特徴マップ411に基づいて、モデル出力404を生成することで、
図1の構成と同様の効果を得ることができる。なお本実施例では、各層で3×3のフィルタ32種類(ただし、層421と層422は、フィルタ種類の数がぼけ画像401のチャンネル数と同数)との畳み込みを実行するが、構成はこれに限定されるものではない。
【0059】
好ましくは、ぼけ画像401から第1のマップ403を生成するまでに実行される線型和(本実施例では畳み込み)の回数は、ぼけ画像401からモデル出力404を生成するまでに実行される線型和の回数以下であるとよい。これは、輝度飽和の影響を受けた領域とそれ以外の領域を切り分けられる情報を有する第1の特徴マップ411をモデルの途中で生成し、その後のモデルで所望のタスク(本実施例ではぼけ味変換)を行うことを可能にするためである。本実施例では、ぼけ画像401から第1の特徴マップ411を生成するまでに実行される線型和の回数は共通で、差異はその後の線型和の回数である。第1のマップ403とモデル出力404はそれぞれ、第1の特徴マップ411から1層と20層を介して生成されるため、第1のマップ403を生成するまでに実行される線型和の回数の方が少ない。これは推定の際も、同様である(ぼけ画像401を撮像画像に置き換えることができる)。
【0060】
続いてステップS108において、更新部314は、誤差関数から機械学習モデルのウエイトを更新する。続いてステップS109において、更新部314は、機械学習モデルの訓練が完了したか否かを判定する。訓練済みの機械学習モデルの構成およびウエイトの情報は、記憶部311に記憶される。
【0061】
次に、
図7を参照して、画像処理装置303で実行される、訓練済みの機械学習モデルを用いた撮像画像のぼけ味の変換に関して説明する。なお、実施例1と同様の箇所の説明は省略する。
【0062】
まずステップS201において、取得部333は、撮像画像と機械学習モデルを取得する。続いてステップS202において、変換部334は、機械学習モデルを用いて、撮像画像から、第1のマップと、撮像画像のデフォーカスぼけが異なる形状のぼけに変換されたぼけ味変換画像(モデル出力)とを生成する。機械学習モデルは、訓練時と同様に、
図10に示される構成である。訓練時と同様に、撮像画像の輝度飽和領域を表す輝度飽和マップを生成して入力し、第1のマップとモデル出力を生成する。続いてステップS203において、変換部334は、第1のマップに基づいて、撮像画像とモデル出力を合成する。なお、ステップS203を実行しない(ステップS202のモデル出力を最終的なぼけ味変換画像とする)場合、第1のマップは不要である。この場合、
図10中の破線で囲われた部分は実行する必要がない。そのため、破線で囲われた部分の計算を省き、処理の負荷を軽減してもよい。
【0063】
以上の構成により、機械学習モデルを用いたぼけ味の変換において、輝度飽和による精度低下を抑制することが可能な画像処理システムを提供することができる。
【実施例3】
【0064】
次に、本発明の実施例3における画像処理システムに関して説明する。本実施例では、機械学習モデルによるタスクを、撮像画像に対するデプスマップの推定とする。光学系はデフォーカス量によってぼけの形状が変化するため、ぼけの形状とデプス(デフォーカス量)を対応付けることができる。機械学習モデルは、入力された撮像画像の各領域におけるぼけの形状をモデル内で(陽に又は暗に)推定することで、被写体空間のデプスマップを生成することができる。なお、本実施例に記載の方法は、デプスマップの推定以外のタスクに関しても、同様に効果を得ることが可能である。
【0065】
図11は、本実施例における画像処理システム500のブロック図である。
図12は、画像処理システム500の外観図である。画像処理システム500は、有線または無線で接続された訓練装置501と撮像装置502を有する。訓練装置501は、記憶部511、取得部512、演算部513、および更新部514を有する。撮像装置502は、光学系521、撮像素子522、画像処理部523、記憶部524、通信部525、表示部526、およびシステムコントローラ527を有する。画像処理部523は、取得部523a、推定部523b、および、ぼかし部523cを有する。
【0066】
撮像装置502は、光学系521を介して被写体空間の像を形成し、該像を撮像素子522で撮像画像として取得する。撮像画像には、光学系521の収差とデフォーカスによるぼけが発生している。画像処理部523は、機械学習モデルを用いて、撮像画像から被写体空間のデプスマップを生成する。機械学習モデルは訓練装置501によって訓練されたものであり、その構成とウエイトの情報は、通信部525を介して予め訓練装置501から取得され、記憶部524に記憶されている。撮像画像と推定されたデプスマップは、記憶部524に記憶され、必要に応じて表示部526に表示される。デプスマップは、撮像画像のぼけ味の付与や被写体の切り出しなどに用いられる。一連の制御は、システムコントローラ527によって行われる。
【0067】
次に、
図6を参照して、訓練装置501によって実行される機械学習モデルの訓練に関して説明する。なお、実施例1と同様の箇所の説明は省略する。
【0068】
まずステップS101において、取得部512は、1枚以上の原画像を取得する。続いてステップS102において、演算部513は、原画像にぼけを付与し、ぼけ画像を生成する。原画像に対応するデプスマップ(デフォーカスマップでもよい)と光学系521のフォーカス距離を設定し、光学系521のフォーカス距離とそこからのデフォーカス量に対応したぼけを付与する。絞り値を固定した場合、デフォーカス量の絶対値が大きいほど、デフォーカスによるぼけは大きくなる。さらに、球面収差の影響によって、フォーカス面の前後でぼけの形状は変化する。球面収差が負方向に出ている場合、被写体空間においてフォーカス面より光学系521から離れる方向(物体側)では二線ぼけになり、近づく方向(像側)では中心にピークを有する形状のぼけになる。球面収差が正の場合は、逆の関係になる。また、光軸上以外では非点収差などの影響によって、デフォーカス量に応じてさらにぼけの形状が変化する。
【0069】
続いてステップS103において、演算部513は、ぼけ画像と信号の閾値に基づいて、第1の領域を設定する。続いてステップS104において、演算部513は、第1の領域に原画像の信号値を有する第1の画像を生成する。続いてステップS105において、演算部513は、第1の画像にぼけを付与し、第1の正解マップを生成する。なお本実施例では、第1の正解マップを第2の信号値でクリップしない。これにより、機械学習モデルは、第1のマップの生成の際に、輝度飽和領域のクリップされる前の輝度も推定するように訓練される。続いてステップS106において、取得部512は、正解モデル出力を取得する。正解モデル出力は、ステップS102で設定したデプスマップである。
【0070】
続いてステップS107において、演算部513は、機械学習モデルを用いて、第1の正解マップとモデル出力を生成する。機械学習モデルは、
図13の構成を用いる。
図13は、本実施例における機械学習モデルの構成図である。ぼけ画像601から、複数の層(本実施例は畳み込み層10層)を介して第1の特徴マップ611を生成し、第1の特徴マップ611に基づいて、第1のマップ603とモデル出力604を生成する。第1のマップ603は、第1の特徴マップ611から複数の層(畳み込み層2層)で生成され、モデル出力604は、第1の特徴マップ611から複数の層(畳み込み層20層)で生成される。本実施例では、各層で5×5のフィルタ48種類(ただし、層621は、フィルタ種類の数がぼけ画像601のチャンネル数と同数であり、層622は、フィルタの数が1である)との畳み込みを実行するが、これに限定されるものではない。
【0071】
続いてステップS108において、更新部514は、誤差関数を用いて、機械学習モデルのウエイトを更新する。続いてステップS109において、更新部514は、機械学習モデルの訓練が完了した否かを判定する。
【0072】
次に、
図14を参照して、画像処理部523で実行される、機械学習モデルを用いた撮像画像のデプスマップの推定と、撮像画像に対するぼけ味の付与とに関して説明する。
図14は、本実施例におけるモデル出力の生成のフローチャートである。なお、実施例1と同様の箇所の説明は省略する。
【0073】
まずステップS401において、取得部523aは、撮像画像と機械学習モデルを取得する。記憶部524から、機械学習モデルの構成とウエイトの情報を取得する。機械学習モデルは、
図13に示される構成である。続いてステップS402において、推定部523bは、機械学習モデルを用いて、撮像画像から、モデル出力(デプスマップ)と第1のマップを生成する。
【0074】
続いてステップS403において、ぼかし部523cは、モデル出力と第1のマップに基づいて、撮像画像にぼけを付与し、ぼけ味が付与された(被写界深度が浅くなった)画像を生成する。モデル出力であるデプスマップから、撮像画像の各領域に対して、デフォーカス量に応じたぼけを設定する。フォーカス領域にはぼけを付与せず、デフォーカス量が大きい領域ほど大きなぼけを付与する。また、第1のマップには、撮像画像の輝度飽和領域のクリップ前の輝度が推定されている。撮像画像の輝度飽和領域の信号値をこの輝度に置換してから、ぼけの付与を行う。これによって、木漏れ日や水面などの反射光、また夜景のライトなどがぼけの付与によって暗くならず、自然なぼけ味の画像を生成することができる。
【0075】
以上の構成により、機械学習モデルを用いたデプスマップの推定において、輝度飽和による精度低下を抑制することが可能な画像処理システムを提供することができる。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0076】
各実施例によれば、ぼけの発生した撮像画像に対する機械学習モデルを用いた認識または回帰のタスクにおいて、輝度飽和による精度低下を抑制可能な画像処理方法および装置、機械学習モデルの訓練方法および装置、並びにプログラムを提供することができる。
【0077】
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【0078】
例えば、各実施例の画像処理装置(第1の装置)と、クラウド上の装置(第2の装置)とが互いに通信可能に構成されており、第1の装置からの要求に基づいて第2の装置が
図7または
図14の処理を実行する画像処理システムであってもよい。この場合、第1の装置は、撮像画像および処理の実行に関する要求を第2の装置へ送信する送信手段を有する。第2の装置は、第1の装置から撮像画像および要求を受信する受信手段、および、受信した要求に応じて、機械学習モデルを用いて撮像画像に基づき第1のマップを生成する生成手段を有する。
【符号の説明】
【0079】
103 画像処理装置
103b 取得部(取得手段)
103c 先鋭化部(生成手段)