(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024155748
(43)【公開日】2024-10-31
(54)【発明の名称】画像処理装置、画像処理方法及び画像処理プログラム
(51)【国際特許分類】
G06T 3/4053 20240101AFI20241024BHJP
【FI】
G06T3/4053
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2024043763
(22)【出願日】2024-03-19
(31)【優先権主張番号】P 2023068528
(32)【優先日】2023-04-19
(33)【優先権主張国・地域又は機関】JP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】398034168
【氏名又は名称】株式会社アクセル
(74)【代理人】
【識別番号】100085660
【弁理士】
【氏名又は名称】鈴木 均
(74)【代理人】
【識別番号】100149892
【弁理士】
【氏名又は名称】小川 弥生
(74)【代理人】
【識別番号】100185672
【弁理士】
【氏名又は名称】池田 雅人
(72)【発明者】
【氏名】奥野 修二
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CA08
5B057CA12
5B057CA16
5B057CB08
5B057CB12
5B057CB16
5B057CC01
5B057CD05
5B057CE04
(57)【要約】
【課題】ぼやけた部分を含む画像の超解像の質を向上させる。
【解決手段】教師画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データを生成し、加工画像データと劣化加工パラメータに応じたタグ値に基づいて、入力画像データに応じたタグ値を判別する第1機械学習モデルの学習を行い、教師データと加工画像データと劣化加工パラメータに応じたタグ値とに基づいて、入力画像データに応じた出力画像データを生成する第2機械学習モデルの学習を行い、画像処理の対象画像データを入力として第1機械学習モデルを用いた推論を行い、対象画像データに基づいてタグ値を出力し、このタグ値と対象画像データとを入力として第2機械学習モデルを用いた推論を行い、対象画像データに基づいた出力画像データを生成する。
【選択図】
図10
【特許請求の範囲】
【請求項1】
画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた値を出力する機械学習モデルの学習を行う学習部を備えることを特徴とする画像処理装置。
【請求項2】
画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた出力画像データを生成する機械学習モデルの学習を行う学習部と、
を備えることを特徴とする画像処理装置。
【請求項3】
画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた値を出力可能な第1機械学習モデルの学習を行い、
前記画像データと前記加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた画像データを生成する第2機械学習モデルの学習を行う、学習部と、
画像処理の対象画像データを入力として前記第1機械学習モデルを用いた推論を行い、前記対象画像データに基づいて値を出力し、
出力した値と前記対象画像データとを入力として前記第2機械学習モデルを用いた推論を行い、前記対象画像データに基づいた出力画像データを生成する、推論部と、
を備えることを特徴とする画像処理装置。
【請求項4】
請求項1乃至3の何れか一項に記載の画像処理装置において、
前記値は、画像におけるボケの程度を定義することを特徴とする画像処理装置。
【請求項5】
請求項1乃至3の何れか一項に記載の画像処理装置において、
前記劣化加工は、縮小、ガウスぼかし、ノイズ付加、JPEG圧縮のうちの少なくとも一つであることを特徴とする画像処理装置。
【請求項6】
請求項1に記載の画像処理装置において、
前記学習部は、
前記加工画像データにフィルタ処理を行った画像における所定条件を満たす画素を含む特定部分に対応する前記加工画像データの部分を用いて、前記機械学習モデルの学習を行う、
ことを特徴とする画像処理装置。
【請求項7】
請求項6に記載の画像処理装置において、
前記特定部分は、フィルタ処理後の前記加工画像データにおける数値が高い領域を含む、
ことを特徴とする画像処理装置。
【請求項8】
請求項6に記載の画像処理装置において、
前記特定部分は、フィルタ処理後の前記加工画像データにおける数値が低い領域を含む、
ことを特徴とする画像処理装置。
【請求項9】
プロセッサによって実行される画像処理方法であって、
画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた値を出力する機械学習モデルの学習を行う、
ことを特徴とする画像処理方法。
【請求項10】
プロセッサによって実行される画像処理方法であって、
教師画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた出力画像データを生成する機械学習モデルの学習を行う、
ことを特徴とする画像処理方法。
【請求項11】
プロセッサによって実行される画像処理方法であって、
画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた値を出力可能な第1機械学習モデルの学習を行い、
前記画像データと前記加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた画像データを生成する第2機械学習モデルの学習を行い、
画像処理の対象画像データを入力として前記第1機械学習モデルを用いた推論を行い、前記対象画像データに基づいて値を出力し、
出力した値と前記対象画像データとを入力として前記第2機械学習モデルを用いた推論を行い、前記対象画像データに基づいた出力画像データを生成する、
ことを特徴とする画像処理方法。
【請求項12】
画像処理方法をプロセッサに実行させる画像処理プログラムであって、
画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた値を出力する機械学習モデルの学習を行う、
ことを特徴とする画像処理プログラム。
【請求項13】
画像処理方法をプロセッサに実行させる画像処理プログラムであって、
画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記劣化加工パラメータに応じた値と前記画像データとに基づいて、所定の入力画像データに応じた出力画像データを生成する機械学習モデルの学習を行う、
ことを特徴とする画像処理プログラム。
【請求項14】
画像処理方法をプロセッサに実行させる画像処理プログラムであって、
画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記劣化加工パラメータに応じた値とに基づいた、所定の入力画像データに応じた値を出力可能な第1機械学習モデルの学習を行い、
前記画像データと前記加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた画像データを生成する第2機械学習モデルの学習を行い、
画像処理の対象画像データを入力として前記第1機械学習モデルを用いた推論を行い、前記対象画像データに基づいて値を出力し、
出力した値と前記対象画像データとを入力として前記第2機械学習モデルを用いた推論を行い、前記対象画像データに基づいた出力画像データを生成する、
ことを特徴とする画像処理プログラム。
【請求項15】
請求項3に記載の画像処理装置において、
前記推論部は、
前記第1機械学習モデルを用いた推論によって出力された前記値に所定の処理を施した処理値を生成し、
前記第2機械学習モデルを用いた推論の中間出力に対して前記処理値を適用することにより前記出力画像データを生成する、
ことを特徴とする画像処理装置。
【請求項16】
請求項15に記載の画像処理装置において、
前記推論部は、前記中間出力における重み付けされた領域に前記処理値を適用する、
ことを特徴とする画像処理装置。
【請求項17】
請求項15に記載の画像処理装置において、
前記推論部は、前記対象画像データにおける物体の位置に基づく、前記中間出力における物体の位置に対応する領域に前記処理値を適用する、
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【0002】
敵対的生成ネットワーク(GAN:Generative Adversarial Network)等の画像生成AI(生成系AI)技術が知られている(特許文献1)。
また画像生成に関連して、低解像画像から高解像画像を生成する超解像と呼ばれる技術が知られている。超解像は、低解像画像を単に拡大するのでなく、低解像画像の高周波成分を予測・復元して解像度を高め高解像画像を生成する技術である。低解像画像を単に拡大するだけでは画像がぼやけるが、超解像では生じたボケを除去しながら高解像度化することができる。
超解像に関連して、real-ESRGAN(非特許文献1)が提案されている。real-ESRGANは、出力側の教師画像データに劣化加工を行うことでぼやけた画像を、入力側の教師画像データに設定して生成器の学習を行う。
ここで、入力側の教師画像データ、出力側の教師画像データとは、夫々、機械学習モデルの学習時において、機械学習モデルに入力される教師画像データ、機械学習モデルから出力されるべき教師画像データである。画像生成AIでは、入力側の教師画像データを学習モデルに入力して画像処理を行うことによって出力側の教師画像データに近い画像が得られるように学習モデルに学習をさせる。
学習済みの生成器としての機械画像モデルに画像データを入力して推論を行うことにより画像を生成する。非特許文献1の超解像の場合は、解像度を大きくするとともにボケを除去した超解像画像を生成する。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【非特許文献1】Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data, Xintao Wang, Liangbin Xie, Chao Dong, Ying Shan, 2021
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1の超解像では、入力される画像データが、劣化加工によってぼやけた画像であるか、被写界深度に基づいて背景等がぼやけた画像であるかを区別することなく画像生成が行われる。その結果、背景等の一定以下のボケが全て先鋭化されてしまい、本来とは異なる画像が生成される場合がある。
本発明は、一側面として、ぼやけた部分を含む画像の超解像の質を向上させることを目的とする。
【課題を解決するための手段】
【0006】
本発明は、一側面として、画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた値を出力する機械学習モデルの学習を行う学習部を備えることを特徴とする。
本発明は、一側面として、画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた出力画像データを生成する機械学習モデルの学習を行う学習部と、を備えることを特徴とする。
本発明は、一側面として、画像データを所定の劣化加工パラメータに基づいて劣化加工した加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた値を出力可能な第1機械学習モデルの学習を行い、前記画像データと前記加工画像データと前記劣化加工パラメータに応じた値とに基づいて、所定の入力画像データに応じた画像データを生成する第2機械学習モデルの学習を行う、学習部と、画像処理の対象画像データを入力として前記第1機械学習モデルを用いた推論を行い、前記対象画像データに基づいて値を出力し、出力した値と前記対象画像データとを入力として前記第2機械学習モデルを用いた推論を行い、前記対象画像データに基づいた出力画像データを生成する、推論部と、を備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、一側面として、ぼやけた部分を含む画像の超解像の質を向上させることができる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態における画像処理装置の構成を示すブロック図である。
【
図3】本実施形態に係る判別器の学習を説明する概念図である。
【
図4】劣化加工の度合いとタグ値との関係を定義したテーブルを説明する図である。
【
図5】劣化加工の度合いとタグ値との関係を定義したテーブルを説明する図である。
【
図6】劣化加工の度合いとタグ値との関係を定義したテーブルを説明する図である。
【
図7】本実施形態の判別器におけるタグ値の導出を説明する概念図である。
【
図8】本実施形態の生成器が行う学習を説明する概念図である。
【
図9】本実施形態の生成器に入力するタグ値を説明する図である。
【
図10】画像処理装置が実行する画像生成処理を説明する図である。
【
図11】本実施形態の画像処理装置が生成する画像を説明する図である。
【
図12】本実施形態の判別器の第1の変形例を示す図である。
【
図13】本実施形態の判別器の第2の変形例を示す図である。
【
図14】画像中の切り出し位置を特定する方法を説明する図である。
【
図15】本実施形態における判別器の学習処理を説明するフローチャートである。
【
図16】本実施形態における生成器の学習処理を説明するフローチャートである。
【
図17】本実施形態における画像生成処理を説明するフローチャートである。
【
図18】本実施形態における変形例に係る生成器の構成を説明する図である。
【
図19】Channel Attentionの説明図である。
【
図20】Spatial Attentionの説明図である。
【
図21】Scaled Dot-Product Attentionの説明図である。
【
図22】コンピュータ装置の一実施例を示すブロック図である。
【発明を実施するための形態】
【0009】
以下に、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本実施形態に係る画像処理装置が行う処理を概説する。
本実施形態の画像処理装置は、超解像等の対象となる対象画像データと、その対象画像データにおけるボケの程度の情報を学習済みの生成器に入力し、アップサンプリングを伴う画像生成を行う。
生成器は、教師画像データと、教師画像データを劣化加工(縮小やガウスぼかし等)した加工画像データと、劣化加工による加工画像データにおけるボケの程度の数値を用いて学習を行う機械学習モデルである。学習済みの生成器に対象画像データと、対象画像データにおけるボケの程度の情報を入力することにより、劣化加工によるボケと対象画像データが本来備えるボケを区別して、解像度を上げた画像生成を行うことができる。
その結果、解像度を上げること(アップサンプリング)によるボケだけを先鋭化しつつ、対象画像データが元々有している、被写界深度に起因する背景のボケ等は先鋭化しないようにすることができる。
従って、本実施形態によれば、異なる対象画像データとは異なる画像が生成されてしまう問題を解決して超解像の質を向上させることができる。
【0010】
なお、生成器に入力される対象画像データのボケの程度の情報は、対象画像データを、本実施形態の特徴的な構成である判別器に入力することで得られる。この判別器は、教師画像データに対して縮小やガウスぼかし等の劣化加工を行った加工画像データと劣化加工によるボケの程度を示す数値との対を学習する機械学習モデルである。学習済みの判別器に対象画像データを入力することによって、対象画像データが有するボケの程度の情報が得られる。
本実施形態で用いられる機械学習モデルは、例えばニューラルネットワークで構成されていてもよく、畳み込み層を含む畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)で構成されていてもよい。下記の説明では、機械学習モデルを単に学習モデルと記載する。
【0011】
以下に、本実施形態の画像処理装置をより詳しく説明する。
<画像処理装置>
図1は、本実施形態に係る画像処理装置の構成を示すブロック図であり、
図2は画像処理装置の機能ブロックを説明するブロック図である。
図1に示すように、画像処理装置1は、制御部10、画像処理部11、記憶部12、通信部13、表示部14、操作部15、及び読取部16を備える。
なお画像処理装置1及び画像処理装置1における動作について、以下では、1台のコンピュータとして説明するが、複数のコンピュータによって処理を分散するように構成されてもよい。
制御部10は、CPU(Central Processing Unit)等のプロセッサ及びメモリ等を用い、装置の各構成部を制御して各種機能を実現する。
画像処理部11は、GPU(Graphics Processing Unit)または専用回路等のプロセッサ及びメモリを用い、制御部10からの制御指示に応じて画像処理を実行する。なお、制御部10及び画像処理部11は、一体のハードウェアであってもよい。また制御部10及び画像処理部11は、CPU、GPU等のプロセッサ、メモリ、更には記憶部12及び通信部13を集積した1つのハードウェア(SoC:System On a Chip)として構成されていてもよい。
【0012】
記憶部12は、ハードディスクまたはフラッシュメモリ、RAM(Random Access Memory)を用いる。記憶部12には、画像処理プログラム1P、機械学習ライブラリ121Lが記憶されている。また記憶部12には、学習毎に作成される学習モデルである、判別器42、生成器(ジェネレータ)43を定義する定義データ、学習済みの判別器42及び生成器43のパラメータ情報等が記憶される。
定義データは、例えばニューラルネットワークのネットワーク構成(レイヤー構成)を示す情報である。パラメータ情報は、ニューラルネットワークにおけるノードの重みを示す情報である。
【0013】
以下の説明において、ニューラルネットワークにおけるノードの重み等のパラメータを「NNパラメータ」と記載する。画像の劣化加工における縮小率やピクセル変動量等のパラメータは「劣化加工パラメータ」と記載して上記のNNパラメータとは区別する。
記憶部12には、超解像処理の対象となる(画像生成の種となる)対象画像データ、超解像処理の結果となる出力画像データ、判別器42及び生成器43の学習用の教師画像データ、教師用画像データを加工した加工画像データ等を記憶することができる。
定義データ、NNパラメータによって定義される学習モデルが機械学習ライブラリ121Lに組み込まれ、機械学習ライブラリ121Lが制御部10により実行されることで、画像処理部11が、本実施形態の学習や推論を実行する判別器42及び生成器43が実現される。
【0014】
判別器42は、入力される画像データに基づいて、画像データが有するボケの程度を示すタグ値を出力する。判別器42は単体で用いられるように学習されてもよい。
生成器43は、転置畳み込み層、畳み込み層、アップサンプリング等のネットワークを適宜組み合わせて構成され得る。学習済みの生成器43は、入力される種となるデータと、上記タグ値と、から(アップサンプリングした)画像データを生成して出力する。
機械学習ライブラリ121Lは、学習と推論を行う推論エンジン(プログラム)を有し、定義データ、NNパラメータを与えて実行する。これにより、定義データ、NNパラメータに機械学習モデルとしての機能が与えられる。
機械学習ライブラリ121Lには代表的なものとしてTensorFlowやCafe等があるが、これに限らずどのような機械学習ライブラリを用いてもよい。
判別器42を機械学習モデルのみで構成し、かつ生成器43に入力する対象画像データをブロック分割しない場合は、判別器42と生成器43を統合してもよい。
【0015】
本実施形態では、判別器42、生成器43を実現する機械学習ライブラリとして機械学習ライブラリ121Lのみを説明しているが、判別器42を実現する判別器ライブラリ、生成器43を実現する生成器ライブラリを別途備えてもよい。この場合、機械学習ライブラリ121Lで機械学習モデルとしての機能が与えられ、判別器ライブラリや生成器ライブラリにより、機械学習モデルにおける、例えばレイヤー構成等の定義データや各ノードの重み等のパラメータが与えられる。
【0016】
通信部13は、インターネット等の通信網への通信接続を実現する通信モジュールである。通信部13は、ネットワークカード、無線通信デバイスまたはキャリア通信用モジュールを用いる。
表示部14は、液晶パネルまたは有機EL(Electro Luminescence)ディプレイ等を用いる。表示部14は、制御部10の指示による画像処理部11での処理によって画像を表示することが可能である。
操作部15は、キーボードまたはマウス等のユーザインタフェースを含む。筐体に設けられた物理的ボタンを用いてもよい。及び表示部14に表示されるソフトウェアボタン等を用いてもよい。操作部15は、ユーザによる操作情報を制御部10へ通知する。
読取部16は、例えばディスクドライブを用い、光ディスク等を用いた記録媒体2に記憶される画像処理プログラム2P、機械学習ライブラリ21Lを読み取ることが可能である。記憶部12に記憶される画像処理プログラム1P、機械学習ライブラリ121Lは、記録媒体2から読取部16が読み取った画像処理プログラム2P、機械学習ライブラリ21Lを制御部10が記憶部12に複製したものであってもよい。
【0017】
画像処理装置1の制御部10は、記憶部12に記憶される画像処理プログラム1Pに基づき、学習処理実行部31、及び画像処理実行部(推論処理制御部)32として機能する。
画像処理部11は、記憶部12に記憶される機械学習ライブラリ121L、定義データ、パラメータ情報に基づき、メモリを用いて判別器42として機能する。
また画像処理部11は、記憶部12に記憶される機械学習ライブラリ121L、定義データ、パラメータ情報に基づき、メモリを用いて生成器43として機能する。
また画像処理部11は、判別器42、生成器43に対して画像を入出力するための入力部41、出力部44として機能する。入力部41、出力部44の機能は、判別器42、生成器43が夫々有してもよいし、制御部10が実行する学習処理実行部31、画像処理実行部32が有してもよい。
また画像処理部11は、教師画像データを加工する加工部45、教師画像データを切り出す切出部46として機能する。加工部45、切出部46の機能は、制御部10が実行する学習処理実行部31、画像処理実行部32が有してもよい。
なお、
図2では機械学習ライブラリ121Lによって判別器42、生成器43の機能が実現されるので、記憶部12では機械学習ライブラリ121Lの記載は省略する。
【0018】
学習処理実行部31は、機械学習ライブラリ121Lと、教師画像データとに基づいて判別器42のNNパラメータを学習することにより、機械学習モデルを判別器42とする処理を行なう。
学習処理実行部31はまた、機械学習ライブラリ121Lと、教師画像データとに基づいて生成器43のNNパラメータを学習することにより、機械学習モデルを生成器43とする処理を行う。
【0019】
画像処理実行部32は、学習済みの判別器42に画像データを入力し、判別器42によって出力される結果を取得する処理を実行する。
画像処理実行部32はまた、学習済みの生成器43に種となる画像データを入力し、生成器43によって生成される画像データを取得する処理を実行する。
画像処理実行部32は、生成器43から出力された画像データを画像として描画し、表示部14へ出力させてもよい。
【0020】
画像処理装置1は、判別器42、生成器43としての機械学習モデルに加えて、生成器43を学習するためのGAN(Generative Adversarial Networks)を構成する分類器(ディスクリミネータ)としての機械学習モデルを備えてもよい。
その場合、画像処理装置1は、記憶部12に分類器ライブラリを備え、分類器を定義する定義データ、NNパラメータを記憶してよい。
そして、画像処理実行部31は、機械学習ライブラリ121L及び分類器ライブラリと、教師画像データとに基づき、機械学習モデルを分類器とするように、NNパラメータを学習する処理を行なう。
画像処理実行部32は、学習済みの分類器に画像データを与え、分類器から出力される結果を取得する。学習済みの分類器は、入力される画像データから取り出した特徴量に基づき、入力される画像データを、生成器43で生成された画像データと、それ以外の画像データとに分類する。
分類器は、学習されるパラメータにより定義される複数段の畳み込み層を含んで構成される。分類器の構成はこれに限らず、プーリング層、全結合層等を含んでもよい。
【0021】
本実施形態の判別器を説明する。
図3は、本実施形態に係る判別器の学習を説明する概念図である。
判別器の学習は、学習処理実行部31の制御により行われる。
学習処理実行部31は、教師画像データを加工部45に入力し、教師画像データに対して、例えば後述の
図4乃至
図6に示す劣化加工パラメータ(縮小率、ピクセル変動量等)に基づく劣化加工(縮小、ガウスぼかし等)を行い、加工画像データを生成する。
学習処理実行部31は、生成した加工画像データを判別器42に入力させ、判別器42の学習を行う。この学習は、対象画像データを判別器42に入力したときに、その対象画像データにおけるボケの程度を示す値を判別器42が出力可能とするためのNNパラメータの学習である。
学習処理実行部31は、例えば、劣化加工パラメータを縮小率71%として教師画像データを71%縮小した加工画像データを判別器42に入力させ、判別器42が劣化加工パラメータの71%に相当するタグ値を判別器42が出力するようにNNパラメータを学習する。
【0022】
この学習において、学習処理実行部31は、下記
図4乃至
図6のテーブルに従って縮小率、ピクセル変動量等劣化加工パラメータを様々に変更して、1以上の加工画像データを生成する。
学習実行処理部31は、生成した1以上の加工画像データを判別器42に入力し、判別器42の学習を行う。
教師画像データを実際に縮小するのではなく、元の画像のサイズの何%かという数値(縮小率)だけを入力してもよい。
学習実行処理部31は、各加工画像データに応じた1以上のタグ値を判別器42に出力させ、出力されたタグ値と、加工画像データを生成した際の劣化加工パラメータに対応するタグ値と、を比較する。
ここで出力されるべきタグ値は、例えば、50%の縮小が行われているときは縮小率について128のタグ値、
図5に示すピクセル変動量5のガウスぼかしも行われているときはガウスぼかしについて128のタグ値、あるいは縮小率50%かつピクセル変動量5の組み合わせについては96のタグ値である。
出力されたタグ値と加工画像データを生成した際の劣化加工パラメータに対応するタグ値とが全て一致しない場合は、学習処理実行部31は、判別器42が出力するタグ値と、劣化加工パラメータに対応するタグ値とが全て一致するまで、NNパラメータの調整と、タグ値の出力を繰り返す。全て一致したときのNNパラメータが、学習済みの判別器42のNNパラメータである。
このように学習を行った判別器42は、任意の画像データを入力されると、その画像データが有するボケの程度に応じたタグ値を出力することができる。
【0023】
図4乃至
図6は、劣化加工の度合いに、ボケの程度を示すタグ値を割り当てたテーブルを示す図であり、劣化加工の度合いに、ボケの程度を示す0から255まで256のタグ値を割り当てている。ここでは、タグ値の値が大きいほど、ボケの程度が小さい。
図4は、縮小率と、ボケの程度を示すタグ値との関係を定義したテーブルを示している。例えば
図4に示すように、縮小率の変化に応じてタグ値が変化するようにタグ値を予め定義する。例えば縮小率が13%のときのタグ値を0とし、縮小率が50.0%のときのタグ値を128とし、縮小率が100%のときのタグ値を255とする。
学習処理実行部31は、任意の対象画像データを入力されたときに、対象画像データに施された劣化加工(縮小)の度合い(縮小率)に応じて、
図4に定義する対応するタグ値が出力されるように、判別器42のNNパラメータを学習する。
【0024】
図5は、ガウスぼかしのピクセル変動量と、ボケの程度を示すタグ値との関係を定義したテーブルを示している。例えば
図5に示すように、ピクセル変動量の変化に応じてタグ値が変化するようにタグ値を予め定義する。例えばピクセル変動量が10ピクセルの場合のタグ値を0とし、5ピクセルの場合のタグ値を128とし、0ピクセルの場合のタグ値を255とする。
学習処理実行部31は、任意の対象画像データを入力されたときに、対象画像データに施された劣化加工(ガウスぼかし)の度合い(ピクセル変動量)に応じて、
図5に定義するタグ値が出力されるように、判別器42のNNパラメータを学習する。
図4、
図5の場合、単一種類の劣化加工(縮小のみ、ガウスぼかしのみ)が行われると考えてもよいが、それに限らず、加工画像データで行われる複数の劣化加工ごとにタグ値が出力されるようにしてもよい。
【0025】
図6は、縮小率及びガウスぼかしを統合したタグ値を示している。
図4、
図5のように、単一の劣化加工の種類毎にタグ値を設定するのではなく、複数の劣化加工を行うことを想定し、複数の劣化加工パラメータに対応したボケの程度を示す一つのタグ値を設定してもよい。
図6に示すように、縮小率の変化及びピクセル変動量の変化に応じて、ボケの度合いを示すタグ値が変化するようにタグ値を予め定義する。より詳しくは、所定の縮小率におけるピクセル変動量の変化に応じてタグ値が変化し、また異なる縮小率におけるピクセル変動量の変化に応じてタグ値が変化するようにタグ値を設定する。
例えば縮小率が50.0%であってピクセル変動量が10ピクセルの場合のタグ値を64、縮小率が50.0%であってピクセル変動量が5ピクセルの場合のタグ値を96、縮小率が50.0%であってピクセル変動量が0ピクセルの場合タグ値を128とする。
また縮小率が71.0%であってピクセル変動量が10ピクセルの場合のタグ値を96、縮小率が71.0%であってピクセル変動量が5ピクセルの場合のタグ値を144、縮小率が71.0%であってピクセル変動量が0ピクセルの場合のタグ値を192とする。
学習処理実行部31は、任意の対象画像データを入力されたときに、対象画像データに施された劣化加工(縮小とガウスぼかし)の度合い(縮小率、ピクセル変動量)に応じて、
図6に定義する対応するタグ値が出力されるように、判別器42のNNパラメータを学習する。
学習処理実行部31は、他の劣化加工、例えばノイズ付加やJEPG圧縮についても同様に、劣化の度合いに応じたボケの程度を示すタグ値が出力されるように学習を行う。
【0026】
図7は、本実施形態の判別器におけるタグ値の導出を説明する概念図である。
判別器42は、学習時には加工画像データを、推論時には対象画像データを入力し、畳み込み、活性化関数処理、プーリング等を繰り返すことにより1つのデータ(タグ値)を最終的に出力する。これは、RGBの画像データを入力し、1ピクセルのグレースケールデータを得るイメージである。
出力チャンネルの数は劣化加工の種類に応じて変化させることができる。例えば、タグ値として縮小率のみ、あるいはピクセル変動量のみを利用する場合は、出力チャンネル数を1とする。その場合、学習済みの判別器42は、例えば縮小率50.0%の画像を判別器42に入力して処理を行うと、縮小率50%に対応するボケの程度を表すタグ値を出力する。
縮小率とガウスぼかしの両方に関してタグ値を学習し、推論時に2チャンネルの出力(2つのタグ値の出力)を得るように判別器42を構成することもできる。
【0027】
<生成器>
次に、本実施形態の生成器について説明する。
図8は、本実施形態の生成器が行う学習を説明する概念図である。
生成器の学習は、学習処理実行部31の制御により行われる。
図8に示すように、学習実行処理部31は、教師画像データを加工部45に入力し、教師画像データに対して
図4乃至
図6に規定される縮小率、ピクセル変動量等の劣化加工パラメータに基づいた劣化加工(縮小、ガウスぼかし)を行い、加工画像データを得る。
例えば、学習処理実行部31は、教師画像データを一定の倍率(4倍の超解像に用いるものであれば1/4)で縮小し、ガウスぼかし等によるボケの程度の数値に従ってぼかして加工画像データを生成する。
学習実行処理部31は、上記
図4乃至
図6のテーブルに従って縮小率、ピクセル変動量等劣化加工パラメータを様々に変更して、1以上の加工画像データを生成する。生成器の学習に用いる加工画像データとして、判別器42の学習のために生成した加工画像データを用いてもよい。
【0028】
学習実行処理部31は、生成した1以上の加工画像データと、これらの加工画像データの生成に用いた劣化加工パラメータに対応する1以上のタグ値と、を生成器43に入力し、生成器43の学習を行う。
ここでのタグ値は、例えば、劣化加工として
図4に示す50%の縮小が行われているときは縮小率について128のタグ値、
図5に示すピクセル変動量5のガウスぼかしも行われているときはガウスぼかしについて128のタグ値、あるいは縮小率50%でピクセル変動量5の組み合わせについて96のタグ値である。
この学習は、対象画像データを入力されたときに、対象画像データと、タグ値が表すボケの程度に基づいて画像におけるボケの程度を示す情報(タグ)を判別器42が出力可能とするためのNNパラメータの学習である。
【0029】
学習処理実行部31は、加工画像データとタグ値を生成器43に入力し、画像を生成させる。学習処理実行部31は、例えば、教師画像データを縮小率50%で縮小(劣化加工)した加工画像データと、縮小率50%に対応するボケの程度を示すタグ値と、を生成器43に入力する。縮小率50%の情報を生成器43に入力しているので、処理の結果、生成器43は入力画像の2倍の大きさの出力画像データを出力する。
学習処理実行部31は、生成された画像と教師画像データ(100%の大きさ)とを比較する。比較の結果、両画像が全て一致しない場合、一致するまで(近づくように)NNパラメータの調整と、画像の生成を繰り返す。全て一致したときのNNパラメータが、学習済みの生成器43のNNパラメータである。
学習処理実行部31による生成器43の学習には、例えば、上記した分類器による分類結果(教師データに対する真偽判定)を用いることができる。
【0030】
図9は、本実施形態の生成器に入力するタグ値を説明する図である。
学習時、推論時に生成器43に入力するタグ値は、入力する画像(学習時には加工画像データ、推論時には対象画像データ)に合わせて、2次元の状態とする。
例えば、
図9(a)に示すように、タグ値が「50」のとき、入力する画像のピクセル数分だけ同一のピクセルのタグ値を用意し、これらを1つのデータとして生成器43に入力する。
【0031】
図9(b)に示すように、学習実行処理部31は、取得した1ch又は複数chのタグ値と加工画像データのRGBデータ(R、G、Bの3ch)を生成器43に入力し、機械学習によって出力画像データを得る。生成器43は、畳み込み層(Conv)での畳み込み処理を最初として、畳み込み層(Conv)、活性化層(RoLU)での活性化処理、プーリング層(Pooling)でのプーリング処理を繰り返して、入力された画像とは異なるRGBデータ(R’、G’、B’の3ch)を生成し、最後にこれらを結合して出力画像データを得る。ガウスぼかし、JPEG圧縮、ノイズ付加についても同様である。
【0032】
図10は、画像処理装置が実行する画像生成処理を説明する図である。
画像生成処理は、画像処理実行部32による制御のもとで行われる。
入力部41は、記憶部12に記憶されている対象画像データを取得し、判別器42に入力する。
判別器42は、記憶部12に記憶されている定義データとNNパラメータを用いて対象画像データに対する推論を行い、タグ値を出力する。
入力部41は、さらに対象画像データを生成器43に入力する。
生成器43は、判別器42が出力したタグ値と、対象画像データ、記憶部12に記憶されている定義データとNNパラメータを用いて、対象画像データを種とする画像生成を行い、出力画像データを生成する。
出力部44は、生成器43が生成した出力画像データを記憶部12に出力する。
【0033】
図11は、本実施形態の画像処理装置が生成する画像を説明する図であり、(a)は種となる対象画像データの図であり、(b)は画像全体のピントがずれた状態の図であり、(c)は、画像全体の先鋭化された状態の図であり、(d)は、被写界深度に応じて前景が先鋭化され背景がぼやけた状態を示す図である。
種となる画像は、前景にある人物にピントがあたり、被写界深度によって背景の景色がぼやけた低解像度の画像である。
単純に低解像画像を拡大した場合、
図11(b)のように画像全体がぼやけた状態となる。非特許文献1に記載したような従来技術では、
図11(c)に示すように前景の人物も背景も全てが先鋭化され元の画像とは異なる画像となる。一方、本実施形態の画像処理装置によれば、
図11(d)に示すように、元々の画像でボケさせている背景についてはボケさせたまま、前景の人物のみを先鋭化させることが出来ている。
すなわち、本実施形態の画像処理装置1では、
図11(a)の低解像画像の画像全体の特徴をそのまま捉えた超解像が実現出来ている。
上記したように、非特許文献1のReal-ESRGAN等の超解像モデルにおいて、種となる画像データに基づいて高解像画像を生成(再現)するときに一定以下のボケが全て先鋭化されることで本来とは異なる画像が生成されるという問題があった。
本実施形態の画像処理装置1では、種となる画像データに基づいて高解像画像を生成(再現)するとき、種となる対象画像データが備えるボケの程度の情報を生成器43に対して明示的に与えることで、生成器43が高解像画像を再現するときに対象画像データが有していたボケまでを含めて再現することができる。
従って、ボケが施されていた背景等が先鋭化することなく、ぼやけていなかった部分がそのまま高解像度化されて、本来の画像のまま高解像度化することができる。
また、ぼやけた画像全体が先鋭化され元の画像とは異なる画像となる問題に対して、生成器43における加工画像データと教師画像データのペアにおいて、ぼやけた画像を先鋭化するパターンとぼやけた画像をぼやけたままにするパターンを用意する等の必要もなく、学習効率が落ちることが防ぐことができる。
【0034】
<変形例1>
図12は、本実施形態の判別器の第1の変形例を示す図である。
本実施形態の画像処理装置は、
図12(a)に示すように、劣化加工の種別毎に判別器を備えてもよい。
例えば画像処理装置1は、縮小率判別器42A、ガウスぼかし判別器42B、ノイズ付加判別器42C、JPEG圧縮判別器42Dを備えてもよい。この場合、判別器42A~42Dは、加工画像データにおける劣化加工の種別に応じたボケの程度を示すタグ値(縮小率タグ値、ガウスぼかしタグ値、ノイズ付加タグ値、JPEG圧縮タグ値)について学習を行う。
判別器42A~42Dは、推論時には、対象画像データにおける要因毎のボケの度合いを示すタグ値を出力し、各判別器42A~42Dから出力されるタグ値が生成器43に入力されるように構成してもよい。
なお、加工画像データに縮小のみが行われている場合は、縮小率判別器42Aから縮小率に応じたタグ値(縮小率タグ値)が出力され、その他の判別器42B~42Dからは劣化加工が行われていない場合のタグ値(
図5の例では255)が出力される。各判別器42A~42Dから出力されたタグ値は、生成器43に入力され、上記の説明の場合と同様の、学習と推論に用いられる。
【0035】
判別器42は更に細かく分割してもよい。全てのボケの程度の数値に対応した単一のモデルを設定してもよいが、例えば、100%~80%、80%~60%、・・等、数値(縮小率)の大小ごとにいくつかに分割し、複数のモデルを用意してもよい。その場合、
図12(a)における縮小率判別器42Aを、縮小率に応じた判別器として構成し、各判別器に画像データを入力することで、縮小率の判別の精度を高めることができる。
例えば、
図12(b)に示すように、
図12(a)の縮小率判別器42Aを、第1縮小率判別器42A1、第2縮小率判別器42A2、第3縮小率判別器42A3、第4縮小率判別器42A4、第5縮小率判別器42A5に分割して構成する。
第1縮小率判別器42A1は、縮小率が100%~80%の加工画像データに基づいてタグ値を学習する。
第2縮小率判別器42A2は、縮小率が80%~60%の加工画像データに基づいてタグ値を学習する。
第3縮小率判別器42A3は、縮小率が60%~40%の加工画像データに基づいてタグ値を学習する。
第4縮小率判別器42A4は、縮小率が40%~20%の加工画像データに基づいてタグ値を学習する。
第5縮小率判別器42A5は、縮小率が20%~0%の加工画像データに基づいてタグ値を学習する。
学習済みの第1~第5縮小率判別器42A1~42A5は、推論時には、超解像の対象画像データから縮小値のタグ値をより正確に出力することができる。
【0036】
<変形例2>
図13は、本実施形態の判別器の第2の変形例を示す図である。
上記の実施例の説明では、判別器42の学習を行う際に、加工画像データ全体を判別器42に入力していた。画像生成処理の際の判別器42の推論の場合も同じである。
この変形例では、画像処理装置1は、画像処理部11が実行する切出部46が加工画像データの特定箇所を切り出した部分を判別器42に入力して学習や推論を行い、学習や推論にかかる計算負荷を軽減する。
例えばボケは、小さい画像を拡大したり、JPEG等の画像圧縮をかけたりする等、画像全体に対して掛かる劣化を原因として発生する。そして、画像の一部では劣化が大きいが他の部分では劣化が少ない、ということは基本的に生じず、一の画像の中では同じ劣化が発生していると想定される。
そして、一枚の画像で最も入り組んでいる部分(
図14に説明する前景の人物の髪の毛の部分等)が、元々ぼやけていない部分である可能性が高い。劣化加工の結果、その部分での劣化が画像全体に同じようにかかっていると考えられる。
切出部46は、画像の最も入り組んでいる部分を切り出し、切り出された部分を学習済みの判別器42に入力することにより、画像がどの程度ぼやけているかを検出することができる。それにより、画像全体を判別器42に入力して学習や推論を行う必要がなく、計算負荷を小さくことができる。
生成器43に関して、GANを用いた場合にはボケの程度を示すタグ値を用いて生成器43を学習しても、画像全体が先鋭化する傾向があるが、その対策ともなる。
画像処理装置1は、画像で最も画像が入り組んでいる部分を下記に説明する方法で特定して切り出し、切り出した部分を判別器42での学習や推論に使用する。
【0037】
図14は、画像中の切り出し位置として、画像中の最も入り組んでいる部分を特定する方法を説明する図である。これには、既知の画像処理を用いることができる。
例えば、勾配フィルタやエッジ検出フィルタ等によって画像中の画素が入り組んでいる部分の大まかな当たりをつけ、その部分を判別器にかける方法が考えられる。
画像処理装置1は、
図14(a)に示すような加工画像(入力画像)をラプラシアンフィルタ処理にかけ、
図14(b)に示すようなフィルタ処理後の画像を得る。
劣化加工の種類によって切り出しの位置の特定箇所が異なり、劣化加工が、縮小、ガウスぼかし、JPEG圧縮の場合は、画像処理装置1は、
図14(b)のフィルタ処理後画像における白(エッジ部分)が多い部分(大きい値が検出される部分)に対応する位置で、
図14(a)の加工画像を切り出す。フィルタ処理後の画像において、白が多い部分は、画素の変化が大きい部分である。例えば、切り出しの位置は最も白が多い(画素の変化が最も大きい、ラプラシアンフィルタで得られる値が最も大きい)画素の周辺が望ましい。
フィルタ処理後に画像が最も入り組んでいる部分を特定する方法としては、
図14(c)に示すように大きい値が検出される画素の付近だけを特定の大きさで特定することができる。あるいは、
図14(d)に示すように、
図14(b)の画像をブロックで分割し、一番大きい数値を含むブロックを画像が最も入り組んでいる部分として特定することができる。あるいは、ブロック中の値の合計が最も高い位置のブロックを特定箇所として特定してもよい。
【0038】
なお劣化加工の種類がノイズ付加の場合は、加工画像データの画素の変化が最も小さい(ラプラシアンフィルタ処理で得られる値が最も小さい)部分の位置を特定する。あるいはブロック中の値の合計が最も低い位置のブロックを特定箇所として特定してもよい。例えばフィルムグレインのように全体に上から掛かるようなノイズの場合は、ボケの場合とは逆に、一番画像が入り組んでいない、平坦な部分におけるノイズ量を見れば、画像にかかったノイズ量を推定することができる。また、同じノイズでもJPEG圧縮に掛かるノイズにおいては、元の画像の劣化であるため性質はボケの場合に近いと考えられるので、ボケと同じく変化が大きい分で判定するのがよいと考えられる。JPEGの場合は圧縮品質を推定する。
なお、劣化加工としてノイズを利用する場合、ノイズを付加する方法は様々であり劣化加工パラメータもそれぞれ異なるため、一括りで説明することは難しい。
上述したreal-ESRGANの場合では、ノイズ分布の2つの関数と、その形状を決めるパラメータ(例えば標準偏差)を設定しており、また、RGB全てにノイズを付加するのか、或いは個別にノイズを付加するのか等の条件がある。
【0039】
本実施形態は画像全体に掛かっている特徴を捉えるものであるため、ノイズの種類は画面全体に均一に発生するタイプが好ましい。画面全体に均一のノイズを付加する方法としては、ガウス分布や均等分布を用いることが考えられ、ノイズ付加量が最大値の場合にタグ値が0になるように、
図4乃至
図6のようなタグ値の対応を設定すればよい。
また複数のノイズを取り扱う場合、
図12(b)の縮小率の場合と同様に、ノイズの種類毎に判別器を用意し、判別器及び生成器を学習するのが好ましい。
【0040】
図15は、本実施形態における判別器の学習処理を説明するフローチャートである。
ステップS101において、画像処理装置1(学習処理実行部31)は、加工部45に、教師画像データに対して劣化加工パラメータに基づく劣化加工を行わせ、1以上の加工画像データを生成する。
ステップS102において、画像処理装置1(学習処理実行部31)は、加工画像データを判別器42に入力する。
ステップS103において、画像処理装置1(学習処理実行部31)は、判別部42にタグ値を出力させる。
ステップS104において、画像処理装置1(学習処理実行部31)は、出力されたタグ値が劣化加工パラメータに対応するタグ値とすべて一致するか否かを判定する。
一致しないと判定した場合(ステップS104でNo)、画像処理装置1(学習処理実行部31)は、ステップS106において、判別部42のNNパラメータを変更し、ステップS103でタグ値を出力させ、ステップS104の判定を行う。
一致すると判定した場合(ステップS104でYes)、画像処理装置1(学習処理実行部31)は、ステップS105において、判別器42の学習処理を終了する。
【0041】
図16は、本実施形態における生成器の学習処理を説明するフローチャートである。
ステップS201において、画像処理装置1(学習処理実行部31)は、加工部45に、教師画像データに対して劣化加工パラメータに基づく劣化加工を行わせ、1以上の加工画像データを生成する。
ステップS202において、画像処理装置1(学習処理実行部31)は、生成した加工画像データと、劣化加工パラメータに対応するタグ値と、を生成器43に入力する。
ステップS203において、画像処理装置1(学習処理実行部31)は、加工画像データとタグ値とに基づいて生成器43に画像を生成させる。
ステップS204において、画像処理装置1(学習処理実行部31)は、ステップS203で生成した画像が教師画像データとすべて一致するか否かを判定する。これは、上記した分類器によって真判定されるかどうかによって判定してもよい。
一致しないと判定した場合(ステップS204でNo)、画像処理装置1(学習処理実行部31)は、ステップS206において、生成器43のNNパラメータを変更し、ステップS203でタグ値を出力させ、ステップS204の判定を行う。
一致すると判定した場合(ステップS204でYes)、画像処理装置1(学習処理実行部31)は、ステップS205において、生成器43の学習処理を終了する。
【0042】
図17は、本実施形態における画像生成処理を説明するフローチャートである。
ステップS301において、画像処理装置1(画像処理実行部32)は、入力部41に対象画像データを記憶部12等から取得させる。
ステップS302において、画像処理装置1(画像処理実行部32)は、取得した対象画像データを判別器42に入力させる。
ステップS303において、画像処理装置1(画像処理実行部32)は、対象画像データに基づいて判別部42にタグ値を出力させる。
ステップS304において、画像処理装置1(画像処理実行部32)は、出力したタグ値と種となる対象画像データを生成器43に入力する。
ステップS306において、画像処理装置1(画像処理実行部32)は、タグ値と対象画像データに基づいて生成部43に出力画像データを生成させる。
ステップS307において、画像処理装置1(画像処理実行部32)は、出力部44に生成部43が生成した出力画像データを記憶部12等に対して出力させる。
【0043】
<生成器の変形例>
上記の説明では、画像全体又は画像の最も入り組んでいる(ぼやけていない)部を判別器42に入力してボケの度合いを表すタグ値を出力させ、そのタグ値を生成器43に入力することで、対象画像データに対する超解像処理を適切に行っていた。
対象画像データとともにタグ値を生成器43に入力することで、ボケが施されていた背景等が先鋭化することなく、ぼやけていなかった部分がそのまま高解像度化されて、本来の画像のまま高解像化することができる。
なお近年では、機械学習を用いた分野において、関係が深いデータを特定して新たなデータを生成する「Attention」機構が様々な用途に用いられている。変形例の生成器43Aは、超解像処理にあたって、生成器43で説明した構成に加えてこの「Attention」機構を用いることができる。
【0044】
図18は、本実施形態における変形例に係る生成器の構成を説明する図である。
図18に示す生成器43Aは、ニューラルネットワーク(以下、単にネットワークと記載する)50(50A、50B、50C、50D)と、ネットワーク50の間に備えたAttention機構51(51A、51B、51C)と、を備える。Attention機構51もニューラルネットワークとして構成され得るが、ここではネットワーク50と区別している。
生成器43Aは、対象画像データとタグ値とに基づいて、ネットワーク50とAttention機構51によって超解像画像が生成できるように、ネットワーク50とAttention機構51のNNパラメータを学習する。
生成器43Aの学習手順は、ニューラルネットワークの構成以外は
図16で説明した手順と同様とすることができる。生成器43Aの画像生成手順も、ニューラルネットワークの構成以外は
図17で説明した手順と同様とすることができる。
【0045】
Attention機構51の詳細な構成については後に詳述するが、画像処理に用いられているChannel AttentionやSpatial Attention、Dot-Product Attention等を利用することができる。これらのAttentionを直列や並列に接続し、組み合わせて利用してもよい。
ネットワーク50とAttention機構51の数は
図18の例に限定されないが、生成器43Aは、2以上のネットワーク50と、ネットワーク50の間に備えるAttention機構51と、を備える。
ネットワーク50Aが、対象画像データを入力する入力段となり、ネットワーク50Dが、超解像処理済の出力画像データを出力する出力段となる。
ネットワーク50、Attention機構51は、ResNet(Residual Neural Networks)、RNN(Recurrent Neural Network)、上述のCNN等であり得る。
対象画像データを入力されたネットワーク50Aは、畳み込み(Conv)、線形処理(ReLU)、プーリング等の処理を行い、処理済のデータを次段のAttention機構51Aに出力する。ネットワーク50B、50C、50Dは、ネットワーク50Aと同様の構成を有し、Attention機構51からの入力画像データに対して同様の処理を行う。
【0046】
Attention機構51Aには、ネットワーク50Aからの出力データと、判別器42が出力したタグ値を入力される。
Attention機構51Aは、ネットワーク50から入力された画像データに対する畳み込み、線形処理、プーリング、さらにシグモイド(Sigmoid)関数処理等を行い、各データにタグ値を反映させた画像データを次段のネットワーク50Bに出力する。Attention機構51B、51C、51Dは、Attention機構51Aと同様の構成を有し、ネットワーク50から入力された画像データに対して同様の処理を行う。
【0047】
ネットワーク50とAttention機構51が相互の出力データに対して処理を行うことを繰り返し行い、出力段のネットワーク50(ここではネットワーク50D)を出力画像データとして最終的に出力する。
Attention機構51を用いることで、関係が深い(意味がある)データや物体に対して特にタグ値を反映させることができるため、より一層、元画像のボケの度合いを反映したデータ生成を行うことができる。すなわち、ボケが施されていた背景等が先鋭化することなく、ぼやけていなかった部分がそのまま高解像度化されて、本来の画像のまま高解像化することができる。
Attention機構51に入力するタグ値は、
図3や
図13で説明した学習済みの判別器42が対象画像データに基づいて出力したタグ値であってもよい。
また変形例の生成器43Aでは、出力段のネットワーク50Dを除き、各ネットワーク50からの出力データに対して後段のAttention機構51がタグ値を反映させる処理を行う。従って、タグ値が入力画像データとともに生成器43に一度入力される
図9(b)の場合と比較してより一層、効果的に超解像処理を行うことが出来る。
【0048】
以下、
図19乃至
図22を参照して、本実施形態に適用可能なAttention機構を説明する。
以下の説明において、「C」は、Attention機構で扱われるデータのチャンネル数、「W」は、Attention機構で扱われる画像データの幅(画素数)、「H」は同画像データの画像の高さ(画素数)を表す。
何れの場合も、タグ値にAttentionを適用したデータを、ネットワーク50から入力されたC×W×Hに乗算することで、タグ値を反映した新たなC×W×Hの画像データを出力することができる。これを、ネットワーク50の処理ごとに行うことで、生成器43Aの処理の結果として、ボケが施されていた背景等が先鋭化することなく、ぼやけていなかった部分がそのまま高解像度化されて、本来の画像のまま高解像化することができる。
【0049】
図19は、Channel Attentionの説明図である。
Channel Attentionを利用するAttention機構では、ネットワーク50から入力された画像データ(特徴マップ)における意味のあるデータに重み付けがされ、重み付けをされたデータにタグ値を適用することでボケの度合いをより反映した出力データが得られる。Channel Attentionを用いるAttention機構51は、生成器43Aの学習及び推論の処理において、以下の処理を実行する。
Attention機構51は、(A)において、1×1×n個のタグ値を入力する。nは、
図7で説明した劣化加工の種類に応じたタグ値のチャンネル数であり得る。
Attention機構51は、(B)においてタグ値をDense(全結合層または線形回帰)で処理し、(C)においてシグモイド関数で処理し、(D)に示す1×1×Cのデータを得る。チャンネル数Cは、後に(F)で乗算する画像データのチャンネル数であり得る。
Attention機構51は、(E)において、前段のネットワーク50から画像データを入力し、畳み込み、線形処理、プーリングを行ってC×W×Hの画像データを生成する。Attention機構51は、(F)において、(D)で得たデータと(E)で得た画像データとをチャンネル毎に乗算し、(G)において新たなC×W×Hの画像データを得る。
前段のネットワーク50からの画像データに対して畳み込み等を行わない場合、Attention機構51は、(F)において、ネットワーク50から入力された画像データ(C×W×H)と(D)で得たデータとをチャンネル毎に乗算し、(G)において新たなC×W×Hの画像データを得る。(G)で得た画像データは、ネットワーク50から入力された画像データの重み付けがされた領域にタグ値が適用された画像データである。
Attention機構51は、新たな画像データを次段のネットワーク50に出力する。
【0050】
図20は、Spatial Attentionの説明図である。
Spatial Attentionを利用するAttention機構では、画像内のどこに物体があるかに焦点が当てられ、それらのデータにタグ値を適用することでボケの度合いをより反映した出力データが得られる。
Spatial Attentionを用いるAttention機構51は、生成器43Aの学習及び推論において、以下の処理を実行する。
Attention機構51は、(A)において、1×1×n個のタグ値を入力する。nは、
図7で説明した劣化加工の種類に応じたタグ値のチャンネル数であり得る。
Attention機構51は、(B)において、1×1×n個のタグ値を拡張してn×W×Hのデータを得る。WとHは、後に(C)で結合する元画像データの幅と高さであり得る。
Attention機構51は、(C)において、(B)で得たタグ値の拡張データと、対象画像データ(元画像)のRGB値のデータ(3×W×H)と、を結合機能で結合し、(n+3)×W×Hのデータを得る。
Attention機構51は、(n+3)×W×Hのデータに対して、(D)において畳み込み処理を行い、(E)においてシグモイド関数処理を行い、(F)に示す1×W×Hのデータを得る。WとHは、後に(H)で乗算する画像データの幅と高さであり得る。(F)で得た1×W×Hのデータは、元画像(対象画像データ)にあった物体の位置におけるタグ値を示す1チャンネルのデータである。
Attention機構51は、(G)において、前段のネットワーク50から画像データを入力し、畳み込み、線形処理、プーリングを行ってC×W×Hの画像データを生成する。Attention機構51は、(H)において、(F)で得たデータと(G)で得た画像データとをチャンネル毎に乗算し、(I)において新たなC×W×Hの画像データを得る。
前段のネットワーク50からの画像データに対して畳み込み等を行わない場合、Attention機構51は、(H)において、ネットワーク50から入力された画像データ(C×W×H)と(F)で得たデータとをチャンネル毎に乗算し、(I)において新たなC×W×Hの画像データを得る。(I)で得た画像データは、ネットワーク50から入力された画像データにおける、物体がある領域にタグ値が適用された画像データである。
Attention機構51は、新たな画像データを次段のネットワーク50に出力する。
【0051】
図21は、Scaled Dot-Product Attentionの説明図である。
Scaled Dot-Product Attentionを利用するAttention機構51は、生成器43Aの学習及び推論において、以下の処理を実行する。
Attention機構51は、(A)において、1×1×n個のタグ値を入力する。nは、
図7で説明した劣化加工の種類に応じたタグ値のチャンネル数であり得る。
Attention機構51は、(B)において、1×1×n個のタグ値を拡張してn×W×Hのデータを得る。WとHは、後に(C)で結合する画像データの幅と高さであり得る。
Attention機構51は、(C)において、(B)のn×W×Hのデータと、対象画像データ(元画像)のRGB値のデータ(3×W×H)と、を結合機能で結合して(n+3)×W×Hのデータを得る。
Attention機構51は、(n+3)×W×Hのデータに対して、(D)において畳み込み処理を行い、(E)においてソフトマックス処理を行い、(F)に示すC×W×Hのデータを得る。このCとWとHは、後に(H)で用いるチャンネル数と画像データの幅と高さであり得る。(F)で得たC×W×Hのデータは、元画像(対象画像データ)にあった物体の位置におけるタグ値を示す上記Cチャンネルからなるデータである。
【0052】
Attention機構51は、(G)において、前段のネットワーク50から画像データを入力し、畳み込み、線形処理、プーリングを行ってC×W×Hの画像データを生成する。
Attention機構51は、(H)において、(G)で得た画像データからQuery、Key、Valueを生成し、(F)で得たデータをQueryに入力してタグ値を考慮したQueryを生成し、QueryとKeyの乗算結果にさらにValueを乗算し、(I)において新たなC×W×Hの画像データを得る。
Attention機構において、Queryは、入力データから検索すべきデータを表す値である。Keyは、Queryと検索すべきデータとの近さを計るために使用される値である。Valueは、Keyに基づく検索結果のデータである。
(H)の処理を行うことで、元画像(対象画像データ)にあった物体の位置と、ネットワーク50から入力された画像データにおける重み付けを考慮して、ネットワーク50からの画像データにタグ値を適用し、(I)において新たなC×W×Hの画像データを得ることが出来る。
ネットワーク50からの画像データに対して畳み込み等を行わない場合は、Attention機構51は、ネットワーク50から入力された画像データと(F)で得たデータを用いた(H)の処理を行い、(I)において新たなC×W×Hの画像データを得る。
(I)で得た画像データは、ネットワーク50から入力された画像データにおける、重み付けがされ(意味があり)、物体がある領域にタグ値が適用された画像データである。
Attention機構51は、新たな画像データを次段のネットワーク50に出力する。
【0053】
図22は、コンピュータ装置の一実施例を示すブロック図である。
図22を参照して、コンピュータ装置100の構成について説明する。
コンピュータ装置100は、例えば、各種情報を処理する画像処理装置である。そして、コンピュータ装置100は、制御回路101と、記憶装置102と、読書装置103と、記録媒体104と、通信インターフェイス105と、入出力インターフェイス106と、入力装置107と、表示装置109とを含む。
通信インターフェイス105は、ネットワーク200と接続される。そして、各構成要素は、バス110により接続される。画像処理装置1は、コンピュータ装置100に記載の構成要素の一部又は全てを適宜選択して構成することができる。
【0054】
制御回路101は、コンピュータ装置100全体の制御をする。
制御回路101は、例えば、Central Processing Unit(CPU)、Field Programmable Gate Array(FPGA)、Application Specific Integrated Circuit(ASIC)及びProgrammable Logic Device(PLD)等のプロセッサである。
制御回路101は、例えば、
図1における制御部10として機能する。
画像制御回路108は、コンピュータ装置100における画像処理の制御を行う。
画像制御回路108は、Graphic Processing Unit(GPU)等である。画像制御回路108は、
図1における画像処理部11として機能する。
【0055】
記憶装置102は、各種データを記憶する。そして、記憶装置102は、例えば、Read Only Memory(ROM)及びRandom Access Memory(RAM)等のメモリや、Hard Disk(HD)、Solid State Drive(SSD)等である。記憶装置102は、制御回路101を、
図1における制御部10として機能させる画像処理プログラムを記憶してもよい。記憶装置102は、例えば、
図1における記憶部12として機能する。
【0056】
画像処理装置1は、画像処理を行うとき、記憶装置102に記憶されたプログラムをRAMに読み出す。
画像処理装置1は、RAMに読み出されたプログラムを制御回路101で実行することにより、学習処理実行部、画像処理実行部の何れか1以上を含む処理を実行する。
なおプログラムは、制御回路101が通信インターフェイス105を介してアクセス可能であれば、ネットワーク200上のサーバが有する記憶装置に記憶されていてもよい。
【0057】
読書装置103は、制御回路101に制御され、着脱可能な記録媒体104のデータのリード/ライトを行なう。
記録媒体104は、各種データを保存する。記録媒体104は、例えば、画像処理プログラムを記憶する。記録媒体104は、例えば、Secure Digital(SD)メモリーカード、Floppy Disk(FD)、Compact Disc(CD)、Digital Versatile Disk(DVD)、Blu-ray(登録商標) Disk(BD)、及びフラッシュメモリ等の不揮発性メモリ(非一時的記録媒体)である。
【0058】
通信インターフェイス105は、ネットワーク200を介してコンピュータ装置100と他の装置とを通信可能に接続する。通信インターフェイス105は、例えば、
図1における通信部13として機能する。
入出力インターフェイス106は、例えば、各種入力装置と着脱可能に接続するインターフェイスである。入出力インターフェイス106と接続される入力装置107には、例えば、キーボード、及びマウス等がある。入出力インターフェイス106は、接続された各種入力装置とコンピュータ装置100とを通信可能に接続する。そして、入出力インターフェイス106は、接続された各種入力装置から入力された信号を、バス110を介して制御回路101に出力する。また、入出力インターフェイス106は、制御回路101から出力された信号を、バス110を介して入出力装置に出力する。入出力インターフェイス106は、入力装置107は、例えば、
図1における操作部15として機能する。
【0059】
表示装置109は、各種情報を表示する。表示装置109は、例えば、例えばCRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、およびOELD(Organic Electroluminescence Display)等である。ネットワーク200は、例えば、LAN、無線通信、P2Pネットワーク、又はインターネット等であり、コンピュータ装置100と他の装置を通信接続する。
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成又は実施形態を取ることができる。
【符号の説明】
【0060】
1 画像処理装置、100 コンピュータ装置、101 制御回路、102 記憶装置、103 読書装置、104 記録媒体、105 通信インターフェイス、106 入出力インターフェイス、107 入力装置、108 画像制御回路、109 表示装置、110 バス、200 ネットワーク