IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7580986画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム
<>
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図1
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図2
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図3
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図4
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図5
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図6
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図7
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図8
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図9
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図10
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図11
  • 特許-画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-01
(45)【発行日】2024-11-12
(54)【発明の名称】画像処理方法、画像処理装置、画像処理プログラム、学習方法、学習装置、学習プログラム
(51)【国際特許分類】
   G06T 3/4046 20240101AFI20241105BHJP
   G06N 3/04 20230101ALI20241105BHJP
   H04N 1/387 20060101ALI20241105BHJP
【FI】
G06T3/4046
G06N3/04
H04N1/387 101
【請求項の数】 25
(21)【出願番号】P 2020152151
(22)【出願日】2020-09-10
(65)【公開番号】P2022046219
(43)【公開日】2022-03-23
【審査請求日】2023-09-05
【早期審査対象出願】
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【弁理士】
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【弁理士】
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【弁理士】
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【弁理士】
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】日浅 法人
【審査官】岡本 俊威
(56)【参考文献】
【文献】国際公開第2019/030615(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 3/40 - 3/4092
G06N 3/04
H04N 1/387- 1/393
(57)【特許請求の範囲】
【請求項1】
機械学習モデルである生成器に低解像画像を入力することで第1の特徴マップに変換する工程と、
前記第1の特徴マップに基づいて前記生成器により、該低解像画像よりも高解像な第1の中間画像と該低解像画像よりも高解像な第2の中間画像とを生成する工程と、
前記第1の中間画像と前記第2の中間画像とに基づいて、前記低解像画像よりも高解像な推定画像を生成する工程とを有し、
前記生成器は、1以上のアップサンプル層と1以上の線型和層とを含み、
前記アップサンプル層は、該アップサンプル層への入力をアップサンプルすることで出力を生成し、
前記線型和層は、該線型和層への入力と該線型和層におけるウエイトとの線型和を出力し、
前記1以上のアップサンプル層のうち最も出力側に存在するアップサンプル層よりも出力側の線型和層の数は、該アップサンプル層よりも入力側の線型和層の数よりも少ないことを特徴とする画像処理方法。
【請求項2】
機械学習モデルである生成器に低解像画像を入力することで第1の特徴マップに変換する工程と、
前記第1の特徴マップに基づいて前記生成器により、該低解像画像よりも高解像な第1の中間画像と該低解像画像よりも高解像な第2の中間画像とを生成する工程と、
前記第1の中間画像と前記第2の中間画像とに基づいて、前記低解像画像よりも高解像な推定画像を生成する工程とを有し、
前記生成器は、複数の線型和層をそれぞれが備える複数の残差ブロックを有し、
前記残差ブロックは、該残差ブロックへの入力と、該入力が該残差ブロックよって演算された結果との和を出力することを特徴とする画像処理方法
【請求項3】
機械学習モデルである生成器に低解像画像を入力することで第1の特徴マップに変換する工程と、
前記第1の特徴マップに基づいて前記生成器により、該低解像画像よりも高解像な第1の中間画像と該低解像画像よりも高解像な第2の中間画像とを生成する工程と、
前記第1の中間画像と前記第2の中間画像とを加重平均することで、前記低解像画像よりも高解像な推定画像を生成する工程とを有することを特徴とする画像処理方法
【請求項4】
前記第1の中間画像における高周波成分は、前記第2の中間画像における高周波成分よりも少ないことを特徴とする請求項1乃至3のいずれか一項に記載の画像処理方法。
【請求項5】
前記第1の中間画像および前記第2の中間画像は、前記低解像画像より画素数が多いことを特徴とする請求項1乃至4のいずれか一項に記載の画像処理方法。
【請求項6】
前記生成器は、
前記第1の特徴マップに基づいて生成された第1の残差成分と前記低解像画像との和をとることで前記第1の中間画像を生成し、
前記第1の特徴マップに基づいて生成された第2の残差成分と前記低解像画像との和をとることで前記第2の中間画像を生成することを特徴とする請求項1乃至のいずれか一項に記載の画像処理方法。
【請求項7】
前記低解像画像は、前記第1の残差成分および前記第2の残差成分と画素数が一致するように、和をとる前にアップサンプルされることを特徴とする請求項に記載の画像処理方法。
【請求項8】
前記生成器は、1以上のアップサンプル層を有し、
前記アップサンプル層は、該アップサンプル層への入力をアップサンプルすることで出力を生成することを特徴とする請求項1乃至のいずれか一項に記載の画像処理方法。
【請求項9】
前記生成器は、1以上の線型和層を有し、
前記線型和層は、該線型和層への入力と該線型和層におけるウエイトとの線型和を出力し、
前記1以上のアップサンプル層のうち最も出力側に存在するアップサンプル層よりも出力側の線型和層の数は、該アップサンプル層よりも入力側の線型和層の数よりも少ないことを特徴とする請求項に記載の画像処理方法。
【請求項10】
前記線型和層への入力と、前記線型和及び活性化関数に基づいて得られた演算結果とはチャンネル方向に連結されることを特徴とする請求項に記載の画像処理方法。
【請求項11】
前記生成器は、前記線型和層を含む複数の線型和層を有し、
前記複数の線型和層のうち少なくとも半数の入力と、該入力に対応する線型和及び活性化関数に基づいて得られた演算結果とはチャンネル方向に連結されることを特徴とする請求項又は10に記載の画像処理方法。
【請求項12】
前記生成器は、前記線型和層を含む複数の線型和層をそれぞれが備える複数の残差ブロックを有し、
前記残差ブロックは、該残差ブロックへの入力と該入力が該残差ブロックよって演算された結果との和を出力することを特徴とする請求項乃至11のいずれか一項に記載の画像処理方法。
【請求項13】
前記残差ブロックは、非線型変換を行う活性化関数を二つ以上含むことを特徴とする請求項12に記載の画像処理方法。
【請求項14】
前記複数の残差ブロックのうちバッチ正則化を行う層を備えた残差ブロックは、半数以下であることを特徴とする請求項12又は13に記載の画像処理方法。
【請求項15】
前記生成器は、バッチ正則化を行う層を有さないことを特徴とする請求項1乃至14のいずれか一項に記載の画像処理方法。
【請求項16】
前記推定画像は、前記第1の中間画像と前記第2の中間画像との加重平均によって生成されることを特徴とする請求項1乃至14のいずれか一項に記載の画像処理方法。
【請求項17】
前記生成器は、第1の損失と第2の損失とに基づく損失を用いて学習された機械学習モデルであり、
前記第1の損失は前記生成器によって生成された中間画像と、該中間画像に対応する正解画像とに基づいて定義され、
前記第2の損失は前記生成器によって生成された中間画像が前記生成器によって生成された画像であるかの識別結果に基づいて定義され、
前記第1の中間画像を用いて定義される損失における前記第1の損失に対する前記第2の損失の重みは、前記第2の中間画像を用いて定義される損失における前記第1の損失に対する前記第2の損失の重みよりも小さいことを特徴とする請求項1乃至16のいずれか一項に記載の画像処理方法。
【請求項18】
複数の低解像画像と、複数の高解像画像とを取得する工程と、
機械学習モデルである生成器に前記低解像画像を入力することで第1の特徴マップに変換し、該第1の特徴マップに基づいて該低解像画像よりも高解像な第1の中間画像と該低解像画像よりも高解像な第2の中間画像とを生成する工程と、
識別器に入力された画像が前記生成器で生成された画像であるかを識別する工程と、
前記低解像画像に対応する前記高解像画像と前記第1の中間画像または前記第2の中間画像との差異に基づく第1の損失と、前記第1の中間画像または前記第2の中間画像を入力した際の前記識別器の識別出力に基づく第2の損失とに基づいて、前記生成器の学習を行う工程と、を有し、
前記第1の中間画像を用いて定義される損失における前記第1の損失に対する前記第2の損失の重みは、前記第2の中間画像を用いて定義される損失における前記第1の損失に対する前記第2の損失の重みより小さいことを特徴とする学習方法。
【請求項19】
前記第1の中間画像を用いて定義される損失における前記第2の損失の重みは0であることを特徴とする請求項18に記載の学習方法。
【請求項20】
特徴抽出器を用いて画像を特徴マップに変換する工程を有し、
前記生成器の学習を行う工程では、前記特徴抽出器によって前記高解像画像を変換することで得られた第2の特徴マップと、前記第2の中間画像を変換することで得られた第3の特徴マップとの差異に基づく第3の損失に基づいて、前記生成器の学習を行うことを特徴とする請求項18または19に記載の学習方法。
【請求項21】
前記第2の損失は、複数の前記高解像画像を入力した際の前記識別器の複数の識別出力それぞれに基づく値と、前記第1の中間画像または第2の中間画像を入力した際の前記識別器の識別出力とに基づいて得られることを特徴とする請求項18乃至20のいずれか一項に記載の学習方法。
【請求項22】
入力された低解像画像を高解像化することで推定画像を生成する処理手段を有し、
前記処理手段は、
機械学習モデルである生成器に低解像画像を入力することで第1の特徴マップに変換し、該第1の特徴マップに基づいて該低解像画像よりも高解像な第1の中間画像と前記低解像画像よりも高解像な第2の中間画像とを生成する工程と、
前記第1の中間画像と前記第2の中間画像とに基づいて、前記低解像画像よりも高解像な推定画像を生成する工程とを実行し、
前記生成器は、複数の線型和層をそれぞれが備える複数の残差ブロックを有し、
前記残差ブロックは、該残差ブロックへの入力と、該入力が該残差ブロックよって演算された結果との和を出力することを特徴とする画像処理装置。
【請求項23】
請求項1乃至17のいずれか一項に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項24】
機械学習モデルの学習を行う処理手段を有し、
前記処理手段は、
複数の低解像画像と、複数の高解像画像とを取得する工程と、
生成器を用いて前記低解像画像を第1の特徴マップに変換し、該第1の特徴マップに基づいて該低解像画像よりも高解像な第1の中間画像と該低解像画像よりも高解像な第2の中間画像とを生成する工程と、
識別器に入力された画像が前記生成器で生成された画像であるかを識別する手段と、
前記低解像画像に対応する前記高解像画像と前記第1の中間画像または前記第2の中間画像との差異に基づく第1の損失と、前記第1の中間画像または前記第2の中間画像を入力した際の前記識別器の識別出力に基づく第2の損失とに基づいて、前記生成器の学習を行う工程と、を実行し、
前記第1の中間画像を用いて定義される損失における前記第1の損失に対する前記第2の損失の重みは、前記第2の中間画像を用いて定義される損失における前記第1の損失に対する前記第2の損失の重みより小さいことを特徴とする学習装置。
【請求項25】
請求項18乃至21のいずれか一項に記載の学習方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習モデルを用いて画像の高解像化を行う技術に関する。
【背景技術】
【0002】
特許文献1には、敵対的生成ネットワーク(GAN:Generative Adversarial Network)と呼ばれる機械学習モデルを用いて、画像の高解像化を行う手法が開示されている。この手法は、SRGAN(Super Resolution GAN)と呼ばれる。SRGANは、高解像画像を生成する生成器と、入力された画像が生成器によって生成された画像か実際の高解像画像かを識別する識別器とを用いて学習を行う。ここで、実際の高解像画像とは、生成器によって生成されたのではない高解像な画像を意味している。
【0003】
生成器は、生成する高解像画像と実際の高解像画像が識別器に識別できなくなるように、ウエイトを学習する。これによって、高解像なテクスチャを有するより自然な見えの高解像画像を生成することができる。しかし同時に問題として、主観的に違和感のある偽構造が出現する可能性がある。
【0004】
これに対して非特許文献1には、偽構造の出現と解像感を制御する方法が開示されている。非特許文献1では、識別器を用いずに高解像化を学習した生成器(偽構造は少ないが、解像感が低い)のウエイトと、識別器を用いて学習した生成器(SRGAN相当。解像感は高いが、偽構造が存在しうる)のウエイトとの加重平均を取る。この加重平均したウエイトを用いた生成器により、高解像画像を生成する。この手法は、ネットワーク補間と呼ばれる。加重平均の重みを変更することで、偽構造の出現と解像感のバランスを制御することができる。
【先行技術文献】
【特許文献】
【0005】
【文献】US2018/0075581
【非特許文献】
【0006】
【文献】Xintao Wang,et al.,Deep Network Interpolation for Continuous Imagery Effect Transition,Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR),2019,pp.1692-1701
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、本発明者の検討により、非特許文献1のネットワーク補間を行った生成器は、生成される高解像画像に、被写体が2重に見えるエッジの多重化や色の変化などの画質劣化が発生する場合があることがわかった。
【0008】
そこで、本発明の目的は、機械学習モデルを用いた画像の高解像化において、高品位な画像を提供することである。
【課題を解決するための手段】
【0009】
本発明の一側面における画像処理方法は、機械学習モデルである生成器に低解像画像を入力することで第1の特徴マップに変換する工程と、
前記第1の特徴マップに基づいて前記生成器により、該低解像画像よりも高解像な第1の中間画像と該低解像画像よりも高解像な第2の中間画像とを生成する工程と、
前記第1の中間画像と前記第2の中間画像とに基づいて、前記低解像画像よりも高解像な推定画像を生成する工程とを有し、
前記生成器は、1以上のアップサンプル層と1以上の線型和層とを含み、
前記アップサンプル層は、該アップサンプル層への入力をアップサンプルすることで出力を生成し、
前記線型和層は、該線型和層への入力と該線型和層におけるウエイトとの線型和を出力し、
前記1以上のアップサンプル層のうち最も出力側に存在するアップサンプル層よりも出力側の線型和層の数は、該アップサンプル層よりも入力側の線型和層の数よりも少ないことを特徴とする。
【発明の効果】
【0010】
本発明によれば、機械学習モデルを用いた画像の高解像化において、高品位な画像を提供することができる。
【図面の簡単な説明】
【0011】
図1】実施例1における高解像化の流れを表した図である。
図2】実施例1における画像処理システムのブロック図である。
図3】実施例1における画像処理システムの外観図である。
図4】実施例1における機械学習モデルの学習のフローチャートである。
図5】実施例1および2におけるサブネットの模式図である。
図6】実施例1における推定高解像画像の生成のフローチャートである。
図7】実施例2における画像処理システムのブロック図である。
図8】実施例2における画像処理システムの外観図である。
図9】実施例2における機械学習モデルの学習のフローチャートである。
図10】実施例2における高解像化の流れを表した図である。
図11】実施例2におけるサブネットの模式図である。
図12】実施例2における推定高解像画像の生成のフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明の処理装置を含むシステムについて添付の図面に基づいて説明する。なお、各図において同じ構成要素には同一の符号を付し、重複する説明は省略する。
【0013】
[実施例1]
まず本発明の実施例である実施例1の詳述の前に、その要旨を説明する。以下に述べる実施例1は本発明の好ましい実施形態の一つであって、そのすべてが本発明の実現に必要なわけではない。
【0014】
本実施例では、機械学習モデルである生成器が、低解像画像を特徴マップ(第1の特徴マップ)に変換し、さらに該第1の特徴マップから低解像画像よりも高解像である2枚の中間画像(第1の中間画像と第2の中間画像)を生成する。以下では、第1の中間画像と第2の中間画像はそれぞれ第1の中間高解像画像と第2の中間高解像画像とも称する。
【0015】
生成器は、この2枚の中間高解像画像に対して異なる損失関数を用いて、学習されている。損失関数は、中間高解像画像と正解(正解画像)である高解画像との差異に基づく第1の損失と、入力された画像が生成器によって生成された画像であるかを識別する識別器の識別出力に基づいて定義される第2の損失を有する。
【0016】
第1の中間高解像画像は、第2の中間高解像画像より、第1の損失に対する第2の損失の重みが小さい損失関数で学習された結果を用いて生成される。例えば、第1の中間高解像画像を生成するための学習は第1の損失のみを損失関数とする。
【0017】
第2の中間高解像画像は、第1の損失と第2の損失の重み付き和を損失関数として学習された結果を用いて生成されてもよい。これによって、第2の中間高解像画像は、SRGANにより学習された場合と同等の高解像なテクスチャを有するが、偽構造も出現しうる画像となる。
【0018】
一方で、第1の中間高解像画像を生成するための学習手法はGANでない(或いは、その寄与が第2の中間高解像画像より弱い)ため、高解像なテクスチャと偽構造の両方が低減された画像となる。この2枚の中間高解像画像を組み合わせる(例えば加重平均など)ことで、解像感と偽構造の出現を調整した高解像画像(推定画像)を生成することができる。推定画像は低解像画像よりも高解像である。以下では推定画像を推定高解像画像とも称する。
【0019】
この手法はネットワーク補間のように生成器のウエイトでなく、損失関数の対象である高解像化された画像を組み合わせるため、エッジの多重化や色の変化といった画質劣化を抑制させることができる。また、1つの生成器で同時に2枚の中間高解像画像を生成するため、計算時間の増大も抑制することができる。
【0020】
なお以下では、学習データセットに基づいて機械学習モデルである生成器と識別器のウエイトを決定する段階のことを学習と呼び、学習済みのウエイトを用いた生成器によって低解像画像から推定高解像画像を生成する段階のことを推定と呼ぶ。機械学習モデルは、例えば、ニューラルネットワーク、遺伝的プログラミング、ベイジアンネットワークなどを含む。ニューラルネットワークは、CNN(Convolutional Neural Network)、GAN(Generative Adversarial Network)、RNN(Recurrent Neural Network)などを含む。
【0021】
次に実施例1における画像処理システムに関して説明する。
【0022】
図2及び3は各々、画像処理システム100のブロック図と外観図である。
【0023】
画像処理システム100は、互いに有線または無線のネットワークで接続された学習装置101、高解像化装置102、制御装置103を有する。
【0024】
制御装置103は、記憶部131、通信部132、表示部133を有し、ユーザの指示に従って、低解像画像に対する高解像化の実行の要求を高解像化装置102へ送信する。
【0025】
高解像化装置102は、記憶部121、通信部122、取得部123、高解像化部124を有し、学習済みの機械学習モデルである生成器を用いて、低解像画像に高解像化処理を行い、推定高解像画像を生成する。取得部123、高解像化部124は1以上のCPU等のプロセッサー(処理手段)によりその機能を実装することができる。高解像化装置102は、学習装置101から生成器のウエイトの情報を取得し、記憶部121に記憶している。
【0026】
学習装置101は、記憶部111、取得部112、演算部113、更新部114を有し、生成器のウエイトを学習する。取得部112、演算部113、更新部114は1以上のCPU等のプロセッサー(処理手段)によりその機能を実装することができる。
【0027】
このように構成された画像処理システム100において、制御装置103は高解像化装置102により生成された推定高解像画像を取得し、表示部133を介してユーザに結果を提示する。
【0028】
次に、学習装置101で実行されるウエイトの学習に関して、図4のフローチャートを用いて説明する。
【0029】
実施例1の学習は、識別器を使用しない第1の学習と、識別器を使用する第2の学習(GAN)の2段階で構成される。学習装置101は、記憶部111、取得部112、演算部113、更新部114を有し、各ステップはこれらのいずれかで実行される。なお、以下に述べる各フローチャートの機能(方法)はコンピュータに該機能(方法)を実行させるプログラムとしても実現可能である。
【0030】
ステップS101において、取得部112は、記憶部111から1組以上の高解像画像と低解像画像を取得する。記憶部111には、複数の高解像画像と低解像画像からなる学習データセットが保存されている。対応する低解像画像と高解像画像は、同一の物体(被写体)が画像内に存在する。なお、低解像画像は、高解像画像をダウンサンプルすることで生成してもよい。実施例1において、高解像画像の画素数は、低解像画像の16倍(水平垂直それぞれ4倍)となっている。ただし、画素数の関係はこれに限定されない。また、画像はカラー、グレースケールのどちらでもよい。また、低解像画像にダウンサンプル以外の劣化(JPEGの圧縮ノイズなど)を加えてもよい。これによって、生成器に高解像化機能に加え、画像の劣化を補正する機能を付与できる。
【0031】
ステップS102において、演算部113は、低解像画像を生成器に入力して、第1および第2の中間高解像画像を生成する。生成器は、例えばCNN(Convolutional Neural Network)であり、実施例1では図1のような構成のモデルを使用する。ただし、発明はこれに限定されない。
【0032】
生成器のウエイトの初期値は、乱数などで生成するとよい。図1に示された生成器では、入力された低解像画像201がサブネット(サブネットワーク)211で処理されることで、第1の特徴マップ202に変換される。サブネット211は、線型和層を1以上有する。線型和層とは、線型和層への入力と線型和層のウエイトとの線型和をとる機能を有する。線型和層は例えば畳み込み層、逆畳み込み層、フルコネクション層などである。
【0033】
また、サブネット211は、非線型変換である活性化関数を1以上有する。活性化関数は、ReLU(Rectified Linear Unit)、シグモイド関数、ハイパボリックタンジェント関数などである。
【0034】
実施例1において、低解像画像201は、対応する高解像画像より画素数が少ない。そのため、実施例1において、サブネット211は、水平垂直方向の画素数を増やすアップサンプル層を有する。すなわちアップサンプル層はアップサンプル層への入力にアップサンプルを実行する機能を有する層である。実施例1におけるアップサンプル層は、サブピクセル畳み込み(Sub-pixel Convolution。Pixel Shufflerとも呼ばれる)を行う機能を有する。アップサンプル層としてはこれに限定されず、逆畳み込み、バイリニア補間、最近傍補間などでアップサンプル機能を実現してもよい。ただし、サブピクセル畳み込みを使用する場合、他の手法に対してゼロ埋めの影響低減やウエイトとの畳み込みによる自由度が増すため、最終的な高解像化の効果を高めることができる。
【0035】
実施例1において、サブネット211は、図5(A)に示した構成をしている。
【0036】
「conv.」は畳み込み、「sum」は画素毎の和、「sub-pixel conv.」はサブピクセル畳み込みを表す。
【0037】
また、「residual block」は残差ブロックを表す。実施例1における残差ブロックの構成を図5(B)に示す。
【0038】
残差ブロックとは、複数の線型和層と活性化関数とを備えて構成されるブロックである。残差ブロックは、残差ブロックへの入力と残差ブロック内での一連の演算結果の和をとって出力する構成となっている。「concatenation」は、チャンネル方向の連結を行うこと示す。
【0039】
実施例1において、サブネット211は、残差ブロックを8個有している。ただし、残差ブロックの数はこれに限定されない。生成器の性能をより高めたい場合は、残差ブロックの数を増やすとよい。
【0040】
実施例1において、アップサンプル層(サブピクセル畳み込み)は複数存在する。実施例1では低解像度画像の画素数を16倍にアップサンプルするため、4倍にアップサンプルするサブピクセル畳み込みを2回実行している。1つのアップサンプル層で高倍率なアップサンプルを行うと、高解像化した画像に格子状のパターンなどが発生しやすいので、このように低倍率なアップサンプルを複数回実行することが望ましい。なお、実施例1ではアップサンプル層がサブネット211にある例について述べているが、本発明はこれに限定されない。アップサンプル層は、サブネット211でなく、サブネット212およびサブネット213に存在してもよい。
【0041】
第1の特徴マップ202は、サブネット212に入力され、第1の残差成分203が生成される。また、第1の特徴マップ202は、サブネット213に入力され、第2の残差成分204が生成される。
【0042】
サブネット212とサブネット213はそれぞれ、1以上の線型和層を有する。サブネット212とサブネット213は実施例1ではそれぞれ1つの畳み込み層で構成される。なお、サブネット212およびサブネット213は、1つの線型和層にまとめることもできる。例えば畳み込み層のフィルタの数を倍にすれば、低解像画像201のチャンネル数(カラーなら3)の倍のチャンネルを有する出力が得られる。この出力をチャンネル方向に2分割することで、第1の残差成分203と第2の残差成分204としてもよい。
【0043】
第1の残差成分203は、低解像画像201と和をとられ、第1の中間高解像画像205が生成される。また、第2の残差成分204は、低解像画像201と和をとられ、第2の中間高解像画像206が生成される。低解像画像201は、第1の残差成分203と第2の残差成分204と画素数が一致するように、和をとる前にアップサンプルされる。このアップサンプルは、バイリニア補間やバイキュービック補間でもよいし、逆畳み込み層などを用いてもよい。高解像画像そのものでなく、その残差成分を推定することで、低解像画像201から色が変化するなどの画質劣化が発生しにくくなる。
【0044】
なお、低解像画像201を高解像画像と画素数が一致するよう、事前にバイキュービック補間などでアップサンプルし、生成器に入力してもよい。この場合、生成器にアップサンプル層は不要となる。ただし、低解像画像201の水平垂直方向の画素数が多くなると、線型和をとる回数が増え、計算負荷が大きくなる。そのため、実施例1のように低解像画像201のアップサンプルを行わずに生成器へ入力し、生成器内部でアップサンプルすることが望ましい。
【0045】
ステップS103において、更新部114は、第1の損失に基づいて、生成器のウエイトを更新する。実施例1における第1の損失とは、低解像画像201に対応する高解像画像(正解画像)と、中間高解像画像と、の違いに基づいて定義される損失である。実施例1ではMSE(Mean Square Error)を使用するが、MAE(Mean Absolute Error)などでもよい。
【0046】
実施例1では、第1の中間高解像画像205と高解像画像のMSEと、第2の中間高解像画像206と高解像画像のMSEと、の和を損失関数とし、誤差逆伝搬法(Backpropagation)によって生成器のウエイトを更新する。
【0047】
ステップS104において、更新部114は、第1の学習が完了したか判定する。完了は、学習(ウエイトの更新)の反復回数が既定の回数に達したかや、更新時のウエイトの変化量が既定値より小さいかなどによって、判定することができる。ステップS104にてウエイトの学習が完了していないと判定された場合、ステップS101へ戻り、取得部112は1組以上の新たな低解像画像201と高解像画像を取得する。一方、第1の学習が完了したと判定された場合、ステップS105へ進み、第2の学習を開始する。
【0048】
ステップS105において、取得部112は、記憶部111から1組以上の高解像画像と低解像画像201を取得する。
【0049】
ステップS106において、演算部113は、低解像画像201を生成器に入力して、第1の中間高解像画像205と第2の中間高解像画像206を生成する。
【0050】
ステップS107において、演算部113は、第2の中間高解像画像206と高解像画像それぞれを識別器に入力し、識別出力を生成する。識別器は、入力された画像が生成器で生成された高解像画像か、実際の高解像画像かを識別する。識別器は、CNNなどを用いるとよい。識別器のウエイトの初期値は、乱数などで決定する。なお、識別器に入力する高解像画像は、実際の高解像画像であればなんでもよく、低解像画像201に対応する画像である必要はない。
【0051】
ステップS108において、更新部114は、識別出力と正解ラベルに基づいて、識別器のウエイトを更新する。実施例1では、第2の中間高解像画像206に対する正解ラベルが0、実際の高解像画像に対する正解ラベルが1とする。損失関数にはシグモイドクロスエントロピーを使用するが、その他の関数を使用してもよい。
【0052】
ステップS109において、更新部114は、第1の損失と第2の損失に基づいて、生成器のウエイトを更新する。第1の中間高解像画像205に対しては、第1の損失(対応する高解像画像とのMSE)のみをとる。第2の中間高解像画像206に対しては、第1の損失と第2の損失の重み付き和をとる。第2の損失は、第2の中間高解像画像206を識別器に入力した際の識別出力と正解ラベル1とのシグモイドクロスエントロピーである。生成器は、第2の中間高解像画像206を識別器が実際の高解像画像と誤判定するように学習したいので、正解ラベルを1(実際の高解像画像に対応)とする。第1の中間高解像画像205と第2の中間高解像画像206それぞれの損失の和を、生成器の損失関数とする。
【0053】
この損失関数によってウエイトの更新を繰り返すことで、第2の中間高解像画像206側では、識別器に誤判定を起こさせるような高解像なテクスチャを有する自然な見えの高解像画像が生成されるようになる。ただし、弊害として偽構造が出現する場合がある。一方、第1の中間高解像画像205側では、高解像なテクスチャと偽構造の両方が抑制され、第2の中間高解像画像206より高周波成分の少ない高解像画像が出力されるようになる。
【0054】
実施例1では、第1の中間高解像画像205に対しては第1の損失のみを使用したが、第2の損失を併用してもよい。この場合、第1の中間高解像画像205において、第1の損失における第2の損失の重みは、第2の中間高解像画像206より小さくすると良い。なお、ステップS108とステップS109の順序は逆でもよい。
【0055】
ステップS110において、更新部114は、第2の学習が完了したか判定する。未完と判定した場合、ステップS105に戻って新たな1組以上の低解像画像201と高解像画像を取得する。完了の場合、ウエイトの情報を記憶部111に記憶する。なお、推定時には生成器しか使用しないため、生成器のみのウエイトを記憶してもよい。
【0056】
次に、高解像化装置102および制御装置103で実行される推定(推定高解像画像の生成)に関して、図6のフローチャートを用いて説明する。高解像化装置102は、記憶部121、通信部122、取得部123、高解像化部124を有し、制御装置103は、記憶部131、通信部132、表示部133を有し、各ステップはこれらのいずれかで実行される。
【0057】
ステップS201において、制御装置103の通信部132は、高解像化装置102へ高解像化の実行の要求を送信する。実行の要求は、高解像化を行う低解像画像201を指定する情報も有する。或いは、高解像化する低解像画像201自体を処理の実行の要求とともに送信してもよい。
【0058】
ステップS202において、高解像化装置102の通信部122は、制御装置103から送信された実行の要求を取得する。
【0059】
ステップS203において、取得部123は、記憶部121より生成器のウエイトの情報と高解像化を行う低解像画像201を取得する。低解像画像201は、有線または無線経由で接続されたその他の記憶装置から取得してもよい。
【0060】
ステップS204において、高解像化部124は、低解像画像201から図1で示される生成器を用いて、第1の中間高解像画像205と第2の中間高解像画像206を生成する。第2の中間高解像画像206は、高解像なテクスチャを有する自然な見えの高解像画像だが、偽構造が出現している場合がある。一方、第1の中間高解像画像205は、高解像なテクスチャと偽構造の両方が抑制された高解像画像である。第1の中間高解像画像205は、第2の中間高解像画像206より高周波成分が少ない。
【0061】
ステップS205において、高解像化部124は、第1の中間高解像画像205と第2の中間高解像画像206に基づいて、推定高解像画像207を生成する。実施例1では、第1の中間高解像画像205と第2の中間高解像画像206との加重平均によって、推定高解像画像207を生成する。なお、高解像度画像207の生成は、第1の中間高解像画像205と第2の中間高解像画像206との加重平均に限らず、第2の中間高解像画像206の部分領域を、第1の中間高解像画像205で置換するなどして生成してもよい。
【0062】
ステップS206において、通信部122は、制御装置103へ推定高解像画像207を送信する。
【0063】
ステップS207において、制御装置103の通信部132は、推定高解像画像207を取得する。取得された推定高解像画像207は記憶部131に記憶、または表示部133に表示される。或いは、制御装置103または高解像化装置102から、有線または無線経由で接続されたその他の記憶装置に記憶してもよい。また、制御装置103が第1の中間高解像画像205と第2の中間高解像画像206を取得するように構成しておき、推定高解像画像207の生成を制御装置103で行ってもよい。この場合、ユーザは表示部133で実際の画像を確認しながら、解像感と偽構造の出現の調整を行うことができる。
【0064】
次に、本発明の効果を得るための望ましい条件に関して説明する。
【0065】
生成器は、線型和層の数が、最も出力側に存在するアップサンプル層の入力側より出力側で少ないことが望ましい。生成器の演算のうち早期にアップサンプルが行われると、その後の線型和をとる回数が増え、計算負荷が増大するためである。実施例1では、最も出力側のアップサンプル層の入力側では40以上の線型和層が存在するが、出力側では第1の残差成分203と第2の残差成分204それぞれに対して線型和層1つのみである。
【0066】
また、生成器は線型和層を複数有して構成されており、複数の線型和層のうち少なくとも1層の出力は、線型和層への入力とチャンネル方向に連結されるように構成されることが望ましい。これは例えば図5(b)の「concatenation」で表される連結を意味する。これによって生成器が層の後により多くの特徴マップを伝達することができ、第1の中間高解像画像205と第2の中間高解像画像206の精度が向上する。
【0067】
さらに、生成器が有する複数の線型和層のうち少なくとも半数は、線型和層への入力とチャンネル方向に連結されることが望ましい。これによって、さらに高解像化の精度をより向上することができる。
【0068】
また、生成器が有する複数の残差ブロックはそれぞれ、3以上の線型和層を有することが望ましい。これによって、高解像化の精度を向上することができる。さらに、残差ブロックは、2以上の活性化関数を有することが望ましい。これによって、非線型の効果が増し、高解像化の精度を向上する。
【0069】
また、生成器が有する複数の残差ブロックのうち、バッチ正則化を行うバッチ正則化層を有するブロックが半数以下であることが望ましい。認識タスクと異なり、画像から画像を推定する回帰タスクでは、バッチ正則化による精度向上の効果が小さい。そのため、計算負荷の抑制のため、バッチ正則化の数を減らすことが望ましい。さらに計算負荷の抑制を望む場合、生成器がバッチ正則化層を有さない構成としてもよい。
【0070】
また、生成器の学習において、画像を特徴マップに変換する学習済みの特徴抽出器を用いるとよい。特徴抽出器によって、低解像画像201に対応する正解の高解像画像を第2の特徴マップに変換し、第2の中間高解像画像206を第3の特徴マップに変換する。第2の特徴マップと第3の特徴マップの差異(例えば、MSE)に基づく第3の損失を損失関数に加え、生成器を学習するとよい。これによって、損失関数により抽象的な特徴も加味されるようになるため、高解像化された画像の見えが自然になる。
【0071】
また、第2の損失は、複数の実際の高解像画像に対する識別器の識別出力それぞれに基づく値と、第1の中間高解像画像205または第2の中間高解像画像206の識別出力と、の比較に基づくことが望ましい。これはRelativistic GANと呼ばれる手法である。複数の実際の高解像画像に対する識別器の識別出力それぞれに基づく値は、複数の識別出力の平均値や中央値などを用いるとよい。例えば、第1の中間高解像画像205または第2の中間高解像画像206の識別出力と、実際の高解像画像の識別出力の平均値の差分が正解ラベル(ここでは1)を示すように、シグモイドクロスエントロピーをとる。これによって、実際の高解像画像の集合に対して、生成器で生成した高解像画像が、より本物らしいか否かという相対的な観点での学習が行える。従来のGANでは、学習時に実際の高解像画像を無視し、生成器で生成した高解像画像のみから本物らしさを学習しようとする問題が発生することがあった。しかし、Relativistic GANによってこの問題を回避し、学習の安定性を向上することができる。
【0072】
以上の構成によって、機械学習モデルを用いた画像の高解像化において、計算負荷の増大と画質の劣化を抑制しつつ、解像感と偽構造の出現を制御することが可能な画像処理システムを提供することができる。すなわち、機械学習モデルを用いた画像の高解像化において、高品位な画像を提供することができる。
【0073】
[実施例2]
本発明の実施例2における画像処理システムに関して説明する。
【0074】
図7及び8は各々、画像処理システム300のブロック図と外観図である。画像処理システム300は、学習装置301と撮像装置302を有する。撮像装置302は、光学系321、撮像素子322、画像処理部323、記憶部324、通信部325、表示部326、システムコントローラ327を有する。光学系321は、被写体空間から入射した光を集光し、被写体像を形成する。光学系321は、必要に応じてズームや絞り調節、オートフォーカスなどの機能を有する。撮像素子322は、被写体像を光電変換によって電気信号へ変換し、撮像画像を生成する。撮像素子322は、例えばCCD(Charge Coupled Device)センサや、CMOS(Complementary Metal-Oxide Semiconductor)センサ等である。撮像画像は、撮影前の被写体空間のライブビューや、ユーザによってレリーズが押された場合に取得され、画像処理部323で所定の処理を施され、表示部326に表示される。
【0075】
撮影時に、ユーザがデジタルズームを指示してレリーズを押した場合、撮像画像(低解像画像)は、画像処理部323で機械学習モデルである生成器で高解像化される。この際、学習装置301で学習されたウエイトが使用される。該ウエイトの情報は、予め通信部325を介して学習装置301から読み出され、記憶部324に記憶されている。生成器の学習と推定に関する詳細は、後述する。
【0076】
なお、ユーザがデジタルズームを指示した際のライブビューでは、バイリニア補間など高速な手法でアップサンプルされた画像が表示部326に表示される。生成器によって高解像化された撮像画像(推定高解像画像)は、記憶部324に記憶され、表示部326に表示される。以上の動作は、システムコントローラ327によって制御される。
【0077】
図8には撮像装置302としていわゆる一眼カメラを示しているが、撮像装置302はスマートフォンのような装置でも良い。
【0078】
次に、学習装置301で実行される生成器のウエイトの学習に関して、図9のフローチャートを用いて説明する。学習装置301は、記憶部311、取得部312、演算部313、更新部314を有し、各ステップはこれらのいずれかで実行される。
【0079】
ステップS301において、取得部312は、記憶部311から1組以上の低解像画像と高解像画像を取得する。実施例2において、高解像画像の画素数は低解像画像の16倍であるが、これに限定されない。
【0080】
ステップS302において、演算部313は、低解像画像を生成器に入力し、第1の中間高解像画像と第2の中間高解像画像を生成する。実施例2において生成器は、図10で示した構成をしている。低解像画像401をサブネット411が第1の特徴マップ402に変換し、第1の特徴マップ402からサブネット412が第1の中間高解像画像403を、サブネット413が第2の中間高解像画像404を生成する。サブネット411は、図5(A)で示された構成であり、残差ブロックは図11に示した構成である。サブネット411は、残差ブロックを4つ有する。サブネット412とサブネット413はそれぞれ、1つの畳み込み層で構成される。ただし、各サブネットの構成はこれに限定されない。
【0081】
ステップS303において、演算部313は、高解像画像と第2の中間高解像画像404をそれぞれ識別器に入力し、識別出力を生成する。
【0082】
ステップS304において、更新部314は、識別出力と正解ラベルに基づいて、識別器のウエイトを更新する。
【0083】
ステップS305において、更新部314は、第1の損失と第2の損失に基づいて、生成器のウエイトを更新する。第1の損失および第2の損失は、実施例1の説明と同様である。
【0084】
ステップS306において、更新部314は、生成器の学習が完了したかの判定を行う。ウエイトの学習が完了していないと判定された場合、ステップS301へ戻り、完了したと判定された場合、学習を終了してウエイトの情報を記憶部311に記憶する。
【0085】
次に、図12のフローチャートを用いて、画像処理部323で実行される、デジタルズームした撮像画像の高解像化に関して説明する。画像処理部323は、取得部323a、高解像化部323b、演算部323cを有し、各ステップはこれらのいずれかで実行される。
【0086】
ステップS401において、取得部323aは、撮像画像から部分領域(低解像画像401)を抽出する。撮像画像は撮像素子322で取得された全画素の情報を有するため、デジタルズームに必要な部分領域のみを抽出する。
【0087】
ステップS402において、取得部323aは、生成器のウエイトの情報を記憶部324から取得する。なお、ステップS401とステップS402の順序は問わない。
【0088】
ステップS403において、高解像化部323bは、撮像画像の部分領域(低解像画像401)を生成器に入力し、第1の中間高解像画像403と第2の中間高解像画像404を生成する。
【0089】
ステップS404において、演算部323cは、第1の中間高解像画像403と第2の中間高解像画像404の加重平均によって、推定高解像画像405を生成する。
【0090】
ステップS405において、演算部323cは、推定高解像画像405を指定の画素数に拡縮(アップサンプルまたはダウンサンプル)する。生成器は画素数を16倍にアップサンプルするように学習されているため、ユーザの指定したデジタルズームの倍率に合わせる必要がある。ダウンサンプルにはバイキュービック補間などを用い、必要に応じてアンチエイリアス処理を行うとよい。1次元で4倍を超える倍率のデジタルズームが指定された場合、推定高解像画像405をバイキュービック補間などでアップサンプルする。或いは、推定高解像画像405を新たな低解像画像401として、生成器に入力してもよい。
【0091】
以上の構成によって、機械学習モデルを用いた画像の高解像化において、計算負荷の増大と画質の劣化を抑制しつつ、解像感と偽構造の出現を制御することが可能な画像処理システムを提供することができる。すなわち、機械学習モデルを用いた画像の高解像化において、高品位な画像を提供することができる。
【0092】
(その他の実施例)
なお、以上の各実施例では第1の損失としてMSEまたはMAE、第2の損失として識別器による識別結果を用いる例について述べたが、本発明はこれに限られない。本発明の効果は低解像画像に基づく第1の特徴マップから互いに特性の異なる第1の中間画像と第2の中間画像を生成し、第1の中間画像と第2の中間画像に基づき推定画像を生成すれば得られるのである。これは、第1の中間画像と第2の中間画像の一方で生じてしまう弊害を他方でカバーすることが可能となるためである。
【0093】
また、本発明は上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0094】
各実施例によれば、機械学習モデルを用いた画像の高解像化において、高品位な画像を生成することが可能な画像処理装置、撮像装置、画像処理方法、画像処理プログラム、および、記憶媒体を提供することができる。
【0095】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の組合せ、変形及び変更が可能である。例えば、上述した実施形態では目標情報として身体情報または運動情報を設定する例について述べたが、本発明はこれに限らない。目標情報としては、勉強量や読書量を設定しても良い。
【符号の説明】
【0096】
200 低解像画像
202 第1の特徴マップ
205 第1の中間画像
206 第2の中間画像
207 推定画像
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12