(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-22
(45)【発行日】2024-04-01
(54)【発明の名称】画像処理装置、画像処理方法及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240325BHJP
G06N 3/08 20230101ALI20240325BHJP
【FI】
G06T7/00 350C
G06N3/08
(21)【出願番号】P 2020066048
(22)【出願日】2020-04-01
【審査請求日】2023-03-22
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】奥野 泰弘
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】特開2019-211475(JP,A)
【文献】特開2020-042760(JP,A)
【文献】特開2020-035290(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 ー 7/90
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
ノイズを含む画像からノイズを除去するための画像処理モデルを学習する画像処理装置であって、
前記画像処理モデルを学習するための学習データである低ノイズ画像と、前記低ノイズ画像のシーンに対応し、ノイズのパターンが異なる複数の高ノイズ画像とを取得する取得手段と、
前記複数の高ノイズ画像をそれぞれ前記画像処理モデルに入力することによって得られる複数の出力画像と前記低ノイズ画像との誤差をそれぞれ算出する誤差算出手段と、
前記複数の出力画像の間の誤差に基づいて、ノイズに対する安定度を算出する安定度算出手段と、
前記誤差算出手段によって算出された誤差と前記安定度算出手段によって算出された安定度とを含む損失関数を用いて前記画像処理モデルを学習する学習手段とを有することを特徴とする画像処理装置。
【請求項2】
前記安定度算出手段は、さらにノイズ強度に基づいて前記安定度を算出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記安定度算出手段は、さらに前記誤差算出手段によって算出された誤差に基づいて前記安定度を算出することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記安定度算出手段は、前記複数の出力画像の間の特徴量の差異に基づいて前記安定度を算出することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記低ノイズ画像から特徴を抽出して特徴強度を算出する特徴抽出手段をさらに有し、
前記安定度算出手段は、さらに前記特徴抽出手段によって算出された特徴強度に基づいて前記安定度を算出することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記画像処理モデルは多層のニューラルネットワークであり、
前記安定度算出手段は、前記多層のニューラルネットワークの中の少なくとも1つの中間層から得られる出力結果に基づいて前記安定度を算出することを特徴とする請求項1~5の何れか1項に記載の画像処理装置。
【請求項7】
前記学習手段によって学習された画像処理モデルに基づいて、ノイズを除去した画像を出力する画像処理手段をさらに有することを特徴とする請求項1~6の何れか1項に記載の画像処理装置。
【請求項8】
ノイズを含む画像からノイズを除去するための画像処理モデルを学習する画像処理方法であって、
前記画像処理モデルを学習するための学習データである低ノイズ画像と、前記低ノイズ画像のシーンに対応し、ノイズのパターンが異なる複数の高ノイズ画像とを取得する取得工程と、
前記複数の高ノイズ画像をそれぞれ前記画像処理モデルに入力することによって得られる複数の出力画像と前記低ノイズ画像との誤差をそれぞれ算出する誤差算出工程と、
前記複数の出力画像の間の誤差に基づいて、ノイズに対する安定度を算出する安定度算出工程と、
前記誤差算出工程において算出された誤差と前記安定度算出工程において算出された安定度とを含む損失関数を用いて前記画像処理モデルを学習する学習工程とを有することを特徴とする画像処理方法。
【請求項9】
ノイズを含む画像からノイズを除去するための画像処理モデルを学習する画像処理装置を制御するためのプログラムであって、
前記画像処理モデルを学習するための学習データである低ノイズ画像と、前記低ノイズ画像のシーンに対応し、ノイズのパターンが異なる複数の高ノイズ画像とを取得する取得工程と、
前記複数の高ノイズ画像をそれぞれ前記画像処理モデルに入力することによって得られる複数の出力画像と前記低ノイズ画像との誤差をそれぞれ算出する誤差算出工程と、
前記複数の出力画像の間の誤差に基づいて、ノイズに対する安定度を算出する安定度算出工程と、
前記誤差算出工程において算出された誤差と前記安定度算出工程において算出された安定度とを含む損失関数を用いて前記画像処理モデルを学習する学習工程とをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特に、画像処理モデルを学習するために用いて好適な画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、デジタルカメラ等の撮像装置に対して、暗所や夜間などの環境下でも高画質な画像を得ることに対する要求が高まりつつある。このような環境下ではISO感度を上げることで、明るい画像を撮影することができる。しかしながら、ISO感度を上げると光に対する反応が高くなり、明るい画像を得ることができるが、ノイズに対する反応も高くなり、ノイズ量が増えるという課題がある。このような課題を解決するために、高感度で撮影した画像のノイズを画像処理によって低減するノイズ低減手法の開発が行われてきている。
【0003】
非特許文献1には、CNN(Convolutional Neural Network)を用いた機械学習の手法によるノイズ低減手法が開示されている。この手法では、同シーンの低ノイズ画像を教師画像として学習することで、高ノイズ画像を入力して低ノイズ画像を出力するようなニューラルネットワークを学習するとしている。
【先行技術文献】
【非特許文献】
【0004】
【文献】Mao, Xiaojiao, Chunhua Shen, and Yu-Bin Yang. "Image restoration using very deep convolutional encoder-decoder networks with symmetric skip connections." Advances in neural information processing systems. 2016.
【発明の概要】
【発明が解決しようとする課題】
【0005】
非特許文献1に記載の手法においては、入力する高ノイズ画像のノイズ強度が強い場合、高ノイズ画像のノイズパターンに起因した偽模様が出力されるような弊害が起こりやすい。これは、ノイズ強度が高まるに従って教師画像中の弱い輝度値のテクスチャと入力データのノイズの輝度値とが接近して、互いの区別がつきにくくなることに起因する。教師画像中の弱い輝度値のテクスチャに対してはそのテクスチャを再現するように学習されているため、入力データ中の弱い輝度値のノイズが教師画像中のテクスチャに偶然似たパターンを示すと、誤反応してしまう可能性がある。その結果、実際のシーンには存在しない偽模様を出力することがある。
【0006】
本発明は前述の問題点に鑑み、ノイズを低減する処理を行う際に、ノイズパターンに起因する偽模様を出力するような弊害を低減できるように画像処理モデルを学習することを目的としている。
【課題を解決するための手段】
【0007】
本発明に係る画像処理装置は、ノイズを含む画像からノイズを除去するための画像処理モデルを学習する画像処理装置であって、前記画像処理モデルを学習するための学習データである低ノイズ画像と、前記低ノイズ画像のシーンに対応し、ノイズのパターンが異なる複数の高ノイズ画像とを取得する取得手段と、前記複数の高ノイズ画像をそれぞれ前記画像処理モデルに入力することによって得られる複数の出力画像と前記低ノイズ画像との誤差をそれぞれ算出する誤差算出手段と、前記複数の出力画像の間の誤差に基づいて、ノイズに対する安定度を算出する安定度算出手段と、前記誤差算出手段によって算出された誤差と前記安定度算出手段によって算出された安定度とを含む損失関数を用いて前記画像処理モデルを学習する学習手段とを有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、ノイズを低減する処理を行う際に、ノイズパターンに起因する偽模様を出力するような弊害を低減できるように画像処理モデルを学習することができる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施形態の画像処理装置の内部構成例を示すブロック図である。
【
図2】学習処理の基本的な処理手順の一例を示すフローチャートである。
【
図3】学習データを取得する処理手順の一例を示すフローチャートである。
【
図4】フィードフォワード処理の手順の一例を示すフローチャートである。
【
図5】未知の画像に対してノイズ低減の画像処理を行う処理手順の一例を示すフローチャートである。
【
図6】第3の実施形態の画像処理装置の内部構成例を示すブロック図である。
【
図7】第4の実施形態の画像処理装置の内部構成例を示すブロック図である。
【
図8】第4の実施形態におけるフィードフォワード処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
(第1の実施形態)
以下、本発明の第1の実施形態について、図面を参照しながら説明する。本実施形態で説明する画像処理装置は、画像のノイズ低減を行うものとして説明する。
【0011】
図1は、本実施形態における画像処理装置100の内部構成例を示すブロック図である。
図1において、CPU101は画像処理装置100全体を制御する。入力部105は、キーボード・タッチパネル等で構成されており、画像処理の対象となる画像の指定などユーザからの入力を受け付ける。表示部106は、液晶ディスプレイ等で構成されており、処理対象の画像や処理結果の画像を表示する。通信部107は、他の装置との通信により、データの送受信を行う。
【0012】
第1のメモリ103には主に制御プログラム108が格納され、第2のメモリ104には主に後述の各種データが格納されている。また、これらの構成はバス102で接続されている。なお、第1のメモリ103及び第2のメモリ104に格納されているデータ等は
図1に示す例に限定されるものではない。
【0013】
第2のメモリ104には、学習データセット121が予め格納されており、学習データセット121は低ノイズ画像が一つ以上保持されているデータセットである。また、第2のメモリ104には、本実施形態における画像処理モデルの一例であるCNN等の多層のニューラルネットワーク120も格納されている。詳細は後述するが、学習部110によりこの画像処理モデルを学習し、学習されるニューラルネットワーク120のパラメータが第2のメモリ104に保存され、学習するに従ってこのパラメータが更新される。また、ニューラルネットワーク120は画像を入力して画像を出力するような構成になっている。なお、本実施形態では、画像処理モデルの一例としてニューラルネットワークを用いるが、画像処理モデルは学習可能なものであれば、ニューラルネットワークに限定されない。
【0014】
第1のメモリに格納されている制御プログラム108は、少なくとも本実施形態に係る処理を実行させるためのプログラムが含まれている。CPU101が制御プログラム108を実行することにより、学習部110、学習データ取得部111、推定誤差算出部112、安定度算出部113、損失値算出部114、及び画像処理部115として機能する。なお、これらの各部はCPU101を用いてソフトウェアで実現しても良いし、一部を電子回路などのハードウェアで実現するようにしてもよい。また、これらの各部における処理は、フローチャートの説明で後述する。
【0015】
本実施形態においては、画像処理部115は、学習部110によって学習された画像処理モデル(ニューラルネットワーク120)を用いて画像処理を行う。ニューラルネットワーク120では、実写画像またはCG画像に人工的なノイズを付加した高ノイズ画像を入力とし、ノイズを付加する前の低ノイズ画像を教師画像とすることで、高ノイズ画像からノイズが除去された画像を出力する。これにより、ニューラルネットワーク120を学習する。なお、学習の基本的な処理は公知の技術と同様であり、所定の損失関数によって算出された損失値に基づいて誤差逆伝搬法などの方法を用いてニューラルネットワークを学習する。これについては周知の技術であるので詳細な説明は省略する。本実施形態においては、損失値の算出方法に特徴があり、以下ではその方法について重点的に説明する。
【0016】
図2は、本実施形態における学習処理の基本的な処理手順の一例を示すフローチャートである。
まず、ステップS201において、学習データ取得部111により、学習データを取得する。ここで、学習データ取得部111による処理の詳細について説明する。
【0017】
図3は、
図2のステップS201の詳細な処理手順の一例を示すフローチャートである。
まず、ステップS301において、学習データ取得部111により、学習データセット121から低ノイズ画像を1つ取り出し、第2のメモリ104に低ノイズ画像122として格納する。
【0018】
続いてステップS302において、学習データ取得部111により、低ノイズ画像122からノイズ強度を生成し、第2のメモリ104にノイズ強度134として格納する。ここでノイズ強度は、ノイズモデルによって定義されるノイズの強度を表す値であり、ノイズモデルはデジタル画像の撮像過程におけるイメージセンサの暗電流ノイズやショットノイズをモデル化した関数である。例えば、ノイズ強度をノイズの標準偏差として表し、低ノイズ画像の輝度値を変数Iとして、ノイズの標準偏差Iσを以下の式(1)で定義するような関数である。
【0019】
【0020】
ここで、式(1)中のI0とKは定数であり、イメージセンサにおけるノイズの性質によって事前に決められた値である。なお、ノイズモデルにどのような関数を用いるかいついては特に限定されない。本実施形態においては、低ノイズ画像122の輝度値を式(1)のノイズモデルの関数にあてはめることでノイズ強度を算出する。このように、ノイズ強度は輝度値に応じた値になり、低ノイズ画像122のノイズ強度134は、低ノイズ画像122と同じ要素数のマップとして表現される。
【0021】
次に、ステップS303において、学習データ取得部111により、低ノイズ画像122に対してノイズを与えた第1の高ノイズ画像を生成し、第2のメモリ104に第1の高ノイズ画像123として格納する。この処理では、前のステップS302で生成したノイズ強度134の標準偏差に従ってノイズ強度134と同数要素の乱数マップを発生させ、これを低ノイズ画像122に要素ごとに加算すればよい。
【0022】
ステップS304において、学習データ取得部111により、低ノイズ画像122に対してステップS303で与えたノイズとは異なるパターンのノイズを与えた第2の高ノイズ画像を生成し、メモリ104に第2の高ノイズ画像124として格納する。この処理では、ノイズ強度134からステップS303とは異なる乱数系列を用いてステップS303とは異なる乱数マップを発生させ、前のステップS303と同様に、低ノイズ画像122に要素ごとに加算すればよい。
【0023】
第1の高ノイズ画像123と第2の高ノイズ画像124は、元の画像はいずれも同じ低ノイズ画像122であり、与えられたノイズのパターンがそれぞれ異なるだけである。なお、本実施形態では、1つの低ノイズ画像から2つの高ノイズ画像を生成するが、予め2つの高ノイズ画像が生成されていてもよい。例えば、学習データセット121の中に、同じシーンに対する低ノイズ画像と2つの高ノイズ画像とが予め保持されていてもよい。この場合、同じシーンに対して低ISO感度設定で1枚、高ISO感度設定で2枚の撮影を行い、3枚の画像がファイル名などで対応付けられた状態で保持されていればよい。また、この場合には、学習データ取得部111は、ステップS201の処理として、学習データセット121から、対応付けられた1枚の低ノイズ画像と2枚の高ノイズ画像を取り出してそれぞれ第2のメモリ104に格納すればよい。
【0024】
図2の説明に戻り、次に、ステップS202において、学習部110により、フィードフォワード処理を行う。ここでフィードフォワード処理とは、ニューラルネットワーク120に入力データを入力し、その出力値を得る処理である。
【0025】
図4は、
図2のステップS202の詳細な処理手順の一例を示すフローチャートである。
まず、ステップS401において、学習部110により、第2のメモリ104に格納されている第1の高ノイズ画像123をニューラルネットワーク120に入力し、得られた最終出力を第1の推定出力値125として第2のメモリ104に格納する。
【0026】
続いてステップS402において、学習部110により、第2のメモリ104に格納されている第2の高ノイズ画像124をニューラルネットワーク120に入力し、得られた最終出力を第2の推定出力値126として第2のメモリ104に格納する。一般的なニューラルネットワークの学習処理におけるフィードフォワード処理は一つの入力データに対して一つの出力を得る処理であるが、本実施形態においては、2つの入力データに対して2つの出力を得るようにしている。
【0027】
図2の説明に戻り、次に、ステップS203において、推定誤差算出部112により、推定誤差の算出を行う。この処理では、推定誤差算出部112は、低ノイズ画像122を教師値として、推定出力値と教師値との誤差を算出する。具体的にはまず、推定誤差算出部112により、低ノイズ画像122と第1の推定出力値125との間の誤差を算出し、第1の推定誤差127として第2のメモリ104に格納する。そして、推定誤差算出部112により、低ノイズ画像122と第2の推定出力値126との間の誤差を算出し、第2の推定誤差128として第2のメモリ104に格納する。ここで、推定誤差は、例えば、低ノイズ画像と推定出力値との各要素(ピクセル)ごとの値の差のL1距離やL2距離で定義するなど、どのように推定誤差を定義してもよい。本実施形態では、例えば、推定誤差は以下の式(2)に従って算出する。
【0028】
【0029】
ここで、式(2)中の差分演算(-)では、要素ごとに差分算出するものとする。すなわち、推定誤差は、要素ごとの差分の絶対値の総和をとり、総要素数で割って平均をとるものとする。
【0030】
次にステップS204において、安定度算出部113により、対ノイズ安定度を算出し、対ノイズ安定度129として第2のメモリ104に格納する。この処理では、安定度算出部113は、第2のメモリ104に格納されている第1の推定出力値125と第2の推定出力値126との間の誤差を算出することにより対ノイズ安定度を算出する。ここで、誤差は、例えば、第1の推定出力値125及び第2の推定出力値126の要素ごとの値の差のL1距離やL2距離で定義するなど、どのように誤差を定義してもよい。本実施形態においては、対ノイズ安定度は、第1の推定出力値125と第2の推定出力値126とが互いに似ているほど値が小さくなる。例えば、以下の式(3)に従って、要素ごとに差分をとって平均をとるなどして2つの推定出力値の誤差を算出して対ノイズ安定度を算出する。
【0031】
【0032】
次に、ステップS205において、損失値算出部114により、損失値を算出し、損失値131として第2のメモリ104に格納する。この処理では、損失値算出部114は、第1の推定誤差127と第2の推定誤差128と対ノイズ安定度129との重み付け和を損失値として算出する。重み付け和の算出には、第2のメモリ104に予め保持されている重み係数130を用いる。本実施形態においては、損失値は3つの値の重みづけ和となるので、重み係数130は3つの重み係数からなる。それぞれの重み係数をα、β、γとすると、損失値算出部114は、以下の式(4)を用いて損失値を算出する。
【0033】
【0034】
ここで、式(4)中の第1項と第2項は、ニューラルネットワーク120の出力結果が教師画像である低ノイズ画像122にどれくらい近いかという損失を表している。これは一般的に再構成損失と呼ばれるものである。この項の値が小さいほど、高ノイズ画像に含まれるノイズが適切に除去されたことになる。
【0035】
一方で、式(4)中の第3項は、ニューラルネットワークがノイズの差異に対してどれくらい安定しているかという性質を表している。この第3項が大きくなるほど、ニューラルネットワーク120はわずかなノイズの違いによって異なる出力結果が得られやすくなる。本実施形態では、さらに第3項が小さくなるように学習することによって、低ノイズ画像に与えたノイズのパターンがどのようなものであっても、同じような結果を出力するように学習される。したがって、ノイズパターンに起因する偽模様を出力しないように学習される。
【0036】
弱い輝度値のパターンは、教師画像においてもノイズパターンにおいても存在する。このため、第1項および第2項のみからなる損失関数では、教師画像に元々含まれているようなパターンに類似したノイズパターンが入力されると、偽模様が出力されるように学習されてしまう。そこで本実施形態では、損失関数に第3項を含むようにすることによって、ノイズパターンが変わっても出力結果が変動しないように制約を付すようにしている。これにより、ノイズのパターンと類似するパターンが教師画像に含まれていたとしてもそのパターンには反応しないように学習される。なお、低ノイズ画像をどの程度再現し、偽模様の発生をどの程度抑制するかは、重み係数130の設定によって調整できる。
【0037】
次に、ステップS206において、学習部110により、前のステップS205で算出された損失値に基づいてニューラルネットワーク120のパラメータを更新する。これは、ニューラルネットワークの学習で一般的に行われている誤差逆伝搬法などを用いる学習処理であり、公知の手法を用いるものとする。
【0038】
以上のようにステップS201~S206までの処理で一つの学習データに対する学習が完了すると、ステップS207において、学習部110により、学習が終了したかどうかを判定する。この判定の結果、学習が終了した場合は処理を終了する。学習の終了条件としては、例えば、損失値が所定値以上下がらなくなった場合などを終了条件とする。この判定の結果、学習が終了していない場合はステップS201に戻り、学習データセット121から新たな学習データを取り出して処理を継続する。このとき、学習データセット121中のすべての学習データを処理し終わったら初めの学習データに戻って繰り返せばよい。
【0039】
なお、本実施形態では、学習処理において、高ノイズ画像を2種類生成し、推定誤差および対ノイズ安定度を算出する際には2種類の推定出力値に対してそれぞれ算出したが、この数は3種類以上であってもよい。
【0040】
次に、学習部110などによって学習された学習済みのニューラルネットワーク120を用いて、未知の画像に対してノイズ低減の画像処理を行う手順について説明する。
図5は、本実施形態における画像処理部115による処理手順の一例を示すフローチャートである。
まず、ステップS501において、画像処理部115により、入力部105を介して画像処理の対象となる画像を取得し、入力画像132として第2のメモリ104に格納する。なお、画像の取得方法については、特に限定されない。本実施形態の画像処理装置100が撮像部を備えている場合には、入力部105を介さず撮像部(図示せず)から直接画像を取得して第2のメモリ104に格納してもよい。また、他の装置から通信部107を介して画像を取得して第2のメモリ104に格納してもよい。
【0041】
次に、ステップS502において、画像処理部115により、入力画像132をニューラルネットワーク120に入力し、その出力を出力画像133として第2のメモリ104に格納する。そして、ステップS503において、画像処理部115は、第2のメモリ104から出力画像133を読み出して表示部106に出力して表示する。なお、表示部106に出力するかわりに、通信部107を介して他の装置に送信するなどしてもよい。
【0042】
以上のように本実施形態によれば、ノイズパターンによらず安定した出力結果が得られるように画像処理モデルの学習および画像処理を行うことができる。
【0043】
(第2の実施形態)
以下、本発明の第2の実施形態について説明する。なお、第1の実施形態と同一構成部分についてはその説明を省略し、第1の実施形態と異なる点について説明する。本実施形態においては、安定度算出部113の算出方法が第1の実施形態と異なる。
【0044】
対ノイズ安定度は、ノイズパターンによってニューラルネットワークの推定結果が変動する度合を表す指標である。第1の実施形態では、式(3)に示すように、2つの推定出力値の要素ごとの差分絶対値の平均値を対ノイズ安定度と定義した。
【0045】
一方、ノイズの違う入力画像に対する推定出力値の変動量は、高ノイズ画像を生成する際に与えたノイズの量との正相関があるため、ノイズ量が小さい領域での変動量は小さめに出る傾向がある。したがって、式(4)の損失関数における対ノイズ安定度の項(第3項)は、ノイズ量がもともと小さい領域では小さい値になり、ノイズ安定度の指標として不十分なものとなってしまう。そこで本実施形態では、このような問題の対策として、第2のメモリ104に格納されたノイズ強度134を用いて対ノイズ安定度を正規化し、以下のような式(5)で対ノイズ安定度を算出する。
【0046】
【0047】
式(5)において、ノイズ強度による除算は要素ごとに行うものとする。なお、ノイズ強度134で除算する代わりに、
図3のステップS303、S304で高ノイズ画像を生成する際に低ノイズ画像122に加算した乱数マップで除算してもよい。
【0048】
また、以下のような式(6)を用い、推定出力値の特徴量の差異によって対ノイズ安定度を算出してもよい。ここで、特徴量としては何らかの統計量を用いる。
【0049】
【0050】
式(6)中の関数Fは、引数である推定出力値の各要素に対してその要素近傍での特徴量を算出する関数であり、例えば、その要素近傍での標準偏差の値を算出する関数である。画像中の統計量がおおむね同じであれば人間には同じ印象を与えることが多い。例えば、2つの画像領域が同じ程度に乱雑であれば、要素ごとの値が一致していなくても、同程度の印象を与える。この性質を用い、要素ごとの対ノイズ安定度を要素近傍の標準偏差の値として算出することで、対ノイズ安定度を過剰に制約しないで学習することができる。なお、特徴量として標準偏差を用いる例を説明したが、それに限るものではない。近傍領域の平均、最大値、最小値、中央値などの各種統計量や、その他の何らかの特徴量を用いて対ノイズ安定度を算出してもよい。
【0051】
また、以下のような式(7)を用い、推定誤差の大きさで重みを付けて対ノイズ安定度を算出してもよい。
【0052】
【0053】
ここで、式(7)中の平均推定誤差とは、第1の推定誤差127と第2の推定誤差128とに対し、要素ごとに平均をとったものである。上記の平均推定誤差による除算では、要素ごとに除算を行うものとする。この式(7)によれば、平均推定誤差が小さい要素ほど対サイズ安定度が大きく算出されるようになる。すなわち、推定出力値が教師画像に近く、再構成損失による学習が行われにくいもの(式(4)の損失関数の第1、第2項が小さいもの)ほど、第3項の対ノイズ安定度の損失が効くようになる。従来の学習方法では、再構成損失のみを基準にしてニューラルネットワークが学習されており、それだけだと偽模様の弊害が出力される。本実施形態では、再構成損失では正しく学習できなくなっている部分に対して、対ノイズ安定度の損失を大きく効かせるようにすることで、偽模様の弊害を抑制することができる。
【0054】
以上のように本実施形態によれば、より適切に対ノイズ安定度を算出するようにしたので、偽模様などの弊害をより抑制した画像処理モデルを学習することができる。
【0055】
(第3の実施形態)
以下、本発明の第3の実施形態について説明する。本実施形態では、第1の実施形態と同様の処理については説明を省略し、第1の実施形態と異なる点についてのみ説明する。
【0056】
図6は、本実施形態における画像処理装置600の内部構成例を示すブロック図である。
本実施形態では、第1のメモリ103に格納された制御プログラム108において、特徴抽出部116を有する。特徴抽出部116は、教師画像である低ノイズ画像122に対して特徴抽出処理を行い、その結果を特徴強度135として第2のメモリ104に格納する。特徴抽出処理とは、例えばエッジ抽出処理などが該当するが、それに限定されるものでなく、各要素近傍のコントラストなどの特徴を抽出するようにしてもよい。特徴強度135は低ノイズ画像122において特徴が強い領域ほど大きい値を持つマップとして保持される。また、特徴強度135の要素数は低ノイズ画像122と同じであり、第1の推定出力値125及び第2の推定出力値126の要素数とも同じものとなる。
【0057】
本実施形態において、安定度算出部113により、以下の式(8)によって対ノイズ安定度を算出する。
【0058】
【0059】
ここで式(8)において、特徴強度135による除算は、要素ごとに行われるものとする。式(8)によれば、エッジなどの特徴が多い部分では対ノイズ安定度は小さめに算出されるようになる。偽模様を出力するような弊害は、特徴が強い領域であれば、そのような領域に弱い偽模様が出ていても目立たないため、大きな問題にならないことが多い。逆に、特徴が小さい領域では、偽模様が目立つことから、対ノイズ安定度が大きくなるように算出される。
【0060】
以上のように本実施形態によれば、特徴の大きさに基づいて偽模様などの弊害が大きな問題となる領域を重点的に評価することができる。これにより、より弊害の少ない画像処理モデルを学習することができる。
【0061】
(第4の実施形態)
以下、本発明の第4の実施形態について説明する。本実施形態では、第1の実施形態と同様の処理については説明を省略し、第1の実施形態と異なる点についてのみ説明する。
【0062】
図7は、本実施形態における画像処理装置700の内部構成例を示すブロック図である。本実施形態においては、第1の中間推定出力値136と、第2の中間推定出力値137とを第2のメモリ104に格納する点が第1の実施形態と異なっている。また、本実施形態における学習処理の基本的な流れは、
図2と同様であるが、ステップS202におけるフィードフォワード処理が
図4で説明した手順と異なっている。
【0063】
図8は、本実施形態におけるフィードフォワード処理の詳細な手順の一例を示すフローチャートである。
まず、ステップS801において、学習部110により、第2のメモリ104に格納されている第1の高ノイズ画像123をニューラルネットワーク120に入力し、得られた最終出力を第1の推定出力値125として第2のメモリ104に格納する。さらに、ニューラルネットワーク120の所定の中間層からの出力を、第1の中間推定出力値136として第2のメモリ104に格納する。ここで、出力する中間層は予め設定されておくものとし、中間層はどの層であってもよく、複数であってもよい。
【0064】
続いて、ステップS802において、学習部110により、第2のメモリ104に格納されている第2の高ノイズ画像124をニューラルネットワーク120に入力し、得られた最終出力を第2の推定出力値126として第2のメモリ104に保持する。さらに、ニューラルネットワーク120の所定の中間層からの出力を、第2の中間推定出力値137として第2のメモリ104に格納する。出力を保持する中間層の設定についてはステップS801の設定と同様である。第1~第3の実施形態においては、ニューラルネットワーク120の最終出力のみを第2のメモリ104に格納していたが、本実施形態では、中間層からの出力も第2のメモリ104に格納している。
【0065】
次に、本実施形態における安定度算出部113の処理について説明する。本実施形態では、以下の式(9)に従って対ノイズ安定度を算出する。
【0066】
【0067】
式(9)中のa、bは重み係数であり、式(4)の3つの重み係数α、β、γとともに、重み係数130の一部として第2のメモリ104に予め保持されている。また、ステップS801及びS802でそれぞれ複数の中間層から中間推定出力値を得る場合には、式(9)中の中間推定出力の誤差を算出している項をその分追加し、それに応じた数の重み係数も保持しておくものとする。
【0068】
以上のように本実施形態によれば、ノイズパターンだけが異なる2つの入力に対して、所定の中間層からの出力結果も反映して画像処理モデルを学習することができる。多層のニューラルネットワークは層ごとに反応する対象が異なっており、特定の層が特定の弊害と関連がある場合がある。そのような層の出力がノイズパターンの差によって変動しないように制約づけて学習することで、効率良く弊害を抑制することができる。なお、第2又は第3の実施形態において、本実施形態を組み合わせてもよい。
【0069】
(その他の実施形態)
上述の各実施形態では、イメージセンサの暗電流ノイズやショットノイズのようなノイズを低減する処理を学習するものとして説明したが、ノイズの種類はこれに限定しない。教師画像に対してなんらかの変動を加えた画像を入力画像として教師画像の復元を学習させる場合には、その変動をノイズと定義して学習することもできる。そのような変動が与えられた入力画像を高ノイズ画像とみなすことによって、上述の各実施形態での処理が適用できる。
【0070】
変動の一例としては、大気のゆらぎ補正処理などにも適用できる。この場合、教師画像に対して異なる複数のゆらぎ付与処理を加えた複数の画像をそれぞれ高ノイズ画像とみなして学習を行えばよい。変動の別の例としては、画像の欠落を補完するインペインティング処理にも適用できる。その場合は教師画像に対して複数の異なる画像欠落処理を行った複数の画像をそれぞれ高ノイズ画像とみなせばよい。さらに変動の別の例としては、低解像度画像から高解像度画像を復元する超解像処理にも適用できる。その場合は教師画像である高解像度画像に対して複数の異なる方法で低解像度化した複数の低解像度画像をそれぞれ高ノイズ画像とみなせばよい。いずれの場合も、上述の各実施形態で説明した構成をとることにより、学習時に与えた変動に対して安定した出力をするように学習され、偽模様を出力するなどの弊害を抑制することができる。
【0071】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0072】
110 学習部、111 学習データ取得部、112 推定誤差算出部、113 安定度算出部、114 損失値算出部