(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-26
(45)【発行日】2024-10-04
(54)【発明の名称】画像生成装置、画像生成方法及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240927BHJP
【FI】
G06T7/00 350C
(21)【出願番号】P 2021134786
(22)【出願日】2021-08-20
【審査請求日】2023-09-22
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504133110
【氏名又は名称】国立大学法人電気通信大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】鈴木 聡志
(72)【発明者】
【氏名】谷田 隆一
(72)【発明者】
【氏名】木全 英明
(72)【発明者】
【氏名】村上 諒
(72)【発明者】
【氏名】庄野 逸
【審査官】秦野 孝一郎
(56)【参考文献】
【文献】特開2021-76926(JP,A)
【文献】Alexey Dosovitskiy and Thomas Brox,Generating Images with Perceptual Similarity Metrics based on Deep Networks,Proceedings of the 30th International Conference on Neural Information Processing Systems,2016年,Pages 658-666
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
任意に選択される画像処理パラメータによって生成する画像処理モデルに、評価対象画像データを入力として与え、前記画像処理モデルによる画像処理の中間過程において得られる前記評価対象画像データの特徴を表現した特徴表現データを生成する画像処理部と、
前記評価対象画像データと、前記評価対象画像データの前記特徴表現データと、前記画像処理パラメータと、生成画像データとに基づいて、前記生成画像データの品質の評価指標となる損失値を示す品質損失データを生成する品質損失算出部と、
前記品質損失データが示す損失値を最小化する処理を行うとともに、真正画像データと、前記生成画像データとを用いた敵対的学習処理を行うことにより、前記特徴表現データが示す特徴を投影した前記生成画像データを生成する特徴投影画像生成部と、
を備え
、
前記画像処理部は、
前記画像処理パラメータが適用されることにより前記画像処理モデルになる画像処理用関数近似器を備えており、
前記特徴投影画像生成部は、
前記生成画像データを生成する画像生成部と、
前記真正画像データを入力とする場合に、識別モデルが正しい画像と判定し、前記生成画像データを入力とする場合に、前記識別モデルが誤った画像と判定するように前記識別モデルを構築し、構築した前記識別モデルが、前記生成画像データを入力とする場合に、正しい画像と判定する前記生成画像データを前記画像生成部が生成できているのかを評価する際の評価指標となる損失値を示す敵対的損失データを生成する敵対的学習部と、を備え、
前記画像生成部は、
前記品質損失データが示す損失値と、前記敵対的損失データが示す損失値とに基づいて勾配を算出し、算出した勾配を、前記画像処理用関数近似器における前記中間過程に対応する隠れ層から入力層まで誤差逆伝播法により逆伝播させることにより前記入力層における勾配を算出し、算出した勾配に基づいて前記生成画像データを生成する、画像生成装置。
【請求項2】
前記品質損失算出部が生成する前記品質損失データと、前回の前記品質損失データとに基づいて、前記敵対的損失データを用いるか否かを判定し、判定した結果を示す判定結果情報を前記画像生成部に出力する判定部を備え、
前記画像生成部は、
前記判定結果情報が、前記敵対的損失データを用いないことを示している場合、前記敵対的損失データを用いずに、前記品質損失データが示す損失値に基づいて、前記生成画像データを生成し、前記判定結果情報が、前記敵対的損失データを用いることを示している場合、前記敵対的損失データが示す損失値と、前記品質損失データが示す損失値とに基づいて、前記生成画像データを生成する、
請求項
1に記載の画像生成装置。
【請求項3】
前記品質損失算出部は、
前記評価対象画像データと、前記生成画像データとの間の差分を示す第1の損失値と、前記画像処理パラメータから生成する前記画像処理モデルと同一のモデルに、前記生成画像データを入力として与えることにより、前記中間過程と同一の中間過程において得られる前記生成画像データに対応する特徴表現データと、前記評価対象画像データに対応する特徴表現データと間の差分を示す第2の損失値とから前記品質損失データを生成する、 請求項1
又は請求項2に記載の画像生成装置。
【請求項4】
前記品質損失算出部は、
前記第2の損失値の影響を抑えるように、前記第1の損失値と、前記第2の損失値とに荷重を加えて前記品質損失データを生成する、
請求項
3に記載の画像生成装置。
【請求項5】
前記評価対象画像データは、自然画像の画像データであり、
前記真正画像データは、複数存在し、複数の前記真正画像データには、前記評価対象画像データの内容とは異なる内容の前記自然画像の画像データが含まれる、
請求項1から請求項
4のいずれか一項に記載の画像生成装置。
【請求項6】
任意に選択される画像処理パラメータによって画像処理モデルを生成し、
生成した前記画像処理モデルに、評価対象画像データを入力として与え、
前記画像処理モデルによる画像処理の中間過程において得られる前記評価対象画像データの特徴を表現した特徴表現データを生成し、
前記評価対象画像データと、前記評価対象画像データの前記特徴表現データと、前記画像処理パラメータと、生成画像データとに基づいて、前記生成画像データの品質の評価指標となる損失値を示す品質損失データを生成し、
前記品質損失データが示す損失値を最小化する処理を行うとともに、真正画像データと、前記生成画像データとを用いた敵対的学習処理を行うことにより、前記特徴表現データが示す特徴を投影した前記生成画像データを生成
し、
前記真正画像データを入力とする場合に、識別モデルが正しい画像と判定し、前記生成画像データを入力とする場合に、前記識別モデルが誤った画像と判定するように前記識別モデルを構築し、
構築した前記識別モデルが、前記生成画像データを入力とする場合に、正しい画像と判定する前記生成画像データを生成できているのかを評価する際の評価指標となる損失値を示す敵対的損失データを生成し、
前記品質損失データが示す損失値と、前記敵対的損失データが示す損失値とに基づいて勾配を算出し、
算出した勾配を、前記画像処理パラメータが適用されることにより前記画像処理モデルになる画像処理用関数近似器における前記中間過程に対応する隠れ層から入力層まで誤差逆伝播法により逆伝播させることにより前記入力層における勾配を算出し、算出した勾配に基づいて前記生成画像データを生成する、
画像生成方法。
【請求項7】
請求項1から請求項
5のいずれか一項に記載の画像生成装置としてコンピュータを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像生成装置、画像生成方法及びプログラムに関する。
【背景技術】
【0002】
近年、機械学習技術を用いた技術の精度が向上しており、特に、畳み込みニューラルネットワーク(以下「CNN」(Convolutional Neural Network)という)を用いて行う画像内の被写体の識別や検出、領域分割等の技術の精度の向上が著しい。これらの機械学習技術を利用して各種業務における目視工程の自動化を推進する技術が注目を集めている。
【0003】
例えば、業務における目視工程の自動化を推進するために、撮像された画像に対して画像処理を行うといったことが行われる。そのため、CNNによる画像処理は、本来、その業務を担当している人間と同様の挙動を示すことが望ましい。しかし、非特許文献1に示される敵対的摂動や、非特許文献2に示されている入力画像のシフトに対する脆弱性などのために、CNNの挙動は、人間の挙動とは異なることが知られている。
【0004】
このような人間の目視する際の挙動とは異なるCNNの挙動に対して可視化やホワイトボックス化と呼ばれる手法によってCNNの挙動を理解しようとする技術が提案されている。例えば、非特許文献3に開示されているDeepSiMと呼ばれる技術では、CNNによる画像処理の中間過程において得られる特徴表現をオートエンコーダと同様の仕組みで画像空間に逆投影する。例えば、撮像された原画像が自然画像である場合、DeepSiMでは、この逆投影の学習処理の際に敵対的学習による画像生成の手法を用いることで、逆投影結果として、自然画像に近い視認性の良い画像を得ることを可能にしている。そのため、DeepSiMを活用することにより、CNNの内部で所望の特徴表現を抽出することができているのかということを確認したり、CNNの階層のいずれかにおいて特徴表現が消失しているのかということを確認したりすることができる。
【先行技術文献】
【非特許文献】
【0005】
【文献】Ian J. Goodfellow, Jonathon Shlens, and Christian Szegedy, “EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES”, Proceedings of the International Conference on Learning Representations (ICLR), 2015.
【文献】Richard. Zhang, “Making Convolutional Networks Shift-Invariant Again”, Proceedings of the 36th International Conference on Machine Learning, PMLR 97:7324-7334, 2019.
【文献】Alexey Dosovitskiy and Thomas Brox, “Generating Images with Perceptual Similarity Metrics based on Deep Networks”, Proceedings of the 30th International Conference on Neural Information Processing Systems(NIPS 2016), Pages 658-666, 2016.
【文献】Aravindh Mahendran and Andrea Vedaldi, “Understanding deep image representations by inverting them”, IEEE Conference on Computer Vision and Pattern Recognition, 2015.
【文献】Leon A. Gatys, Alexander S. Ecker, and Matthias Bethge, “A Neural Algorithm of Artistic Style”, [online], 2 Sep 2015, arXiv:1508.06576, [令和3年6月21日検索], インターネット<URL: https://arxiv.org/pdf/1508.06576.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、DeepSiMは、上記したようにオートエンコーダと同様の仕組みで特徴表現を画像空間に逆投影する学習処理を行うため、多くの学習時間を要することになる。つまり、オートエンコーダの構造を踏襲したDeepSiMを用いる場合、DeepSiMにおいて逆投影を行うモデルは、挙動を確認したいCNNの構造と同程度の構造を備える必要がある。そのため、挙動を確認したいCNNと同程度の学習時間が、DeepSiMにおいて必要になる。近年のCNNは、モデル構造が複雑になっているため、パラメータの数が増大しており、そのために、数日から数カ月といった長時間の学習時間を必要としている傾向がある。したがって、学習時間として数カ月を要するCNNの挙動を把握するためには、DeepSiMにおいても学習時間として同様に数カ月を要することになる。CNNの挙動の把握のために、このような長時間の学習時間を必要とするのは、現実的ではなく、実用上好ましくないという問題がある。
【0007】
これに対して、例えば、非特許文献4,5に開示される技術では、オートエンコーダを用いずに、CNNによる画像処理の中間過程において得られる特徴表現の可視化を行っている。これらの技術では、オートエンコーダを用いないことから、数秒から数分という短い時間で、原画像の画素値そのものを最適化によって再生成することにより特徴表現を画像空間に逆投影する。しかしながら、非特許文献4,5に開示される技術によって再生成された画像は、視認性が低く、画像の内容を理解し辛いという問題がある。
【0008】
上記事情に鑑み、本発明は、画像処理の中間過程において得られる特徴表現が視認性の高い状態で投影された画像を、実用的な時間で生成することができる技術の提供を目的としている。
【課題を解決するための手段】
【0009】
本発明の一態様は、任意に選択される画像処理パラメータによって生成する画像処理モデルに、評価対象画像データを入力として与え、前記画像処理モデルによる画像処理の中間過程において得られる前記評価対象画像データの特徴を表現した特徴表現データを生成する画像処理部と、前記評価対象画像データと、前記評価対象画像データの前記特徴表現データと、前記画像処理パラメータと、生成画像データとに基づいて、前記生成画像データの品質の評価指標となる損失値を示す品質損失データを生成する品質損失算出部と、前記品質損失データが示す損失値を最小化する処理を行うとともに、真正画像データと、前記生成画像データとを用いた敵対的学習処理を行うことにより、前記特徴表現データが示す特徴を投影した前記生成画像データを生成する特徴投影画像生成部と、を備え、前記画像処理部は、前記画像処理パラメータが適用されることにより前記画像処理モデルになる画像処理用関数近似器を備えており、前記特徴投影画像生成部は、前記生成画像データを生成する画像生成部と、前記真正画像データを入力とする場合に、識別モデルが正しい画像と判定し、前記生成画像データを入力とする場合に、前記識別モデルが誤った画像と判定するように前記識別モデルを構築し、構築した前記識別モデルが、前記生成画像データを入力とする場合に、正しい画像と判定する前記生成画像データを前記画像生成部が生成できているのかを評価する際の評価指標となる損失値を示す敵対的損失データを生成する敵対的学習部と、を備え、前記画像生成部は、前記品質損失データが示す損失値と、前記敵対的損失データが示す損失値とに基づいて勾配を算出し、算出した勾配を、前記画像処理用関数近似器における前記中間過程に対応する隠れ層から入力層まで誤差逆伝播法により逆伝播させることにより前記入力層における勾配を算出し、算出した勾配に基づいて前記生成画像データを生成する、画像生成装置である。
【0010】
本発明の一態様は、任意に選択される画像処理パラメータによって画像処理モデルを生成し、生成した前記画像処理モデルに、評価対象画像データを入力として与え、前記画像処理モデルによる画像処理の中間過程において得られる前記評価対象画像データの特徴を表現した特徴表現データを生成し、前記評価対象画像データと、前記評価対象画像データの前記特徴表現データと、前記画像処理パラメータと、生成画像データとに基づいて、前記生成画像データの品質の評価指標となる損失値を示す品質損失データを生成し、前記品質損失データが示す損失値を最小化する処理を行うとともに、真正画像データと、前記生成画像データとを用いた敵対的学習処理を行うことにより、前記特徴表現データが示す特徴を投影した前記生成画像データを生成し、前記真正画像データを入力とする場合に、識別モデルが正しい画像と判定し、前記生成画像データを入力とする場合に、前記識別モデルが誤った画像と判定するように前記識別モデルを構築し、構築した前記識別モデルが、前記生成画像データを入力とする場合に、正しい画像と判定する前記生成画像データを生成できているのかを評価する際の評価指標となる損失値を示す敵対的損失データを生成し、前記品質損失データが示す損失値と、前記敵対的損失データが示す損失値とに基づいて勾配を算出し、算出した勾配を、前記画像処理パラメータが適用されることにより前記画像処理モデルになる画像処理用関数近似器における前記中間過程に対応する隠れ層から入力層まで誤差逆伝播法により逆伝播させることにより前記入力層における勾配を算出し、算出した勾配に基づいて前記生成画像データを生成する、画像生成方法である。
【0011】
本発明の一態様は、上記の画像生成装置としてコンピュータを実行させるためのプログラムである。
【発明の効果】
【0012】
本発明により、画像処理の中間過程において得られる特徴表現が視認性の高い状態で投影された画像を、実用的な時間で生成することが可能になる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施形態における画像生成装置の構成を示すブロック図である。
【
図2】第1の実施形態の画像生成装置による処理の流れを示す図である。
【
図3】第1の実施形態の品質損失算出部と特徴投影画像生成部による処理の流れを示す図である。
【
図4】第1の実施形態の品質損失算出部による処理の流れを示す図である。
【
図5】第1の実施形態の敵対的学習部による処理の流れを示す図である。
【
図6】第2の実施形態における画像生成装置の構成を示すブロック図である。
【
図7】第2の実施形態の画像生成装置による処理の流れを示す図である。
【
図8】第2の実施形態の品質損失算出部と特徴投影画像生成部による処理の流れを示す図である。
【
図9】第2の実施形態の判定部による処理の流れを示す図である。
【
図10】第2の実施形態の画像生成部による処理の流れを示す図である。
【発明を実施するための形態】
【0014】
(第1の実施形態)
以下、本発明の実施形態について図面を参照して説明する。
図1は、第1の実施形態における画像生成装置1の構成を示すブロック図である。画像生成装置1は、開始指示部11、画像処理部12、評価対象画像データ記憶部13、画像処理パラメータ記憶部14、品質損失算出部15及び特徴投影画像生成部16を備える。
【0015】
開始指示部11は、画像生成装置1の利用者の操作により、利用者が所望する画像処理タスクの指定を受けると、画像処理パラメータ記憶部14から指定された画像処理タスクに対応する画像処理パラメータを読み出す。開始指示部11は、読み出した画像処理パラメータを画像処理部12と、品質損失算出部15と、特徴投影画像生成部16の画像生成部31とに出力する。ここで、画像処理タスクとは、例えば、画像に含まれる物体の種類を識別する物体識別のタスクや、画像に含まれる物体を検出する物体検出のタスクや、画像に含まれる物体ごとに領域を分割する領域分割のタスクなどである。
【0016】
開始指示部11は、評価対象画像データ記憶部13からいずれか1つの評価対象画像データを読み出し、読み出した評価対象画像データを画像処理部12と、品質損失算出部15とに出力し、更に、外部に出力する。開始指示部11は、読み出した評価対象画像データを真正画像データとして特徴投影画像生成部16が備える真正画像データ記憶部36に書き込んで記憶させる。なお、開始指示部11は、利用者の指定を受けて、利用者が指定するいずれか1つの評価対象画像データを選択して読み出してもよいし、いずれか1つの評価対象画像データを任意に選択して読み出すようにしてもよい。開始指示部11は、初期化指示信号を特徴投影画像生成部16に出力する。
【0017】
画像処理部12は、入出力処理部21と、画像処理用関数近似器22とを備える。画像処理用関数近似器22は、例えば、CNNを含む深層ニューラルネットワークである。入出力処理部21は、開始指示部11が出力する画像処理パラメータを画像処理用関数近似器22に適用する。ここで、画像処理パラメータとは、画像処理用関数近似器22が、例えば、深層ニューラルネットワークである場合、当該深層ニューラルネットワークの各々のニューロンにおける係数、すなわち、重みやバイアスの値である。画像処理パラメータを画像処理用関数近似器22に適用するとは、画像処理パラメータに含まれる複数の係数の各々を、各々に対応するニューロンの係数として利用することをいう。画像処理用関数近似器22に画像処理パラメータが適用されることにより、利用者が指定する画像処理タスクに対応する画像処理モデル41が構築される。
【0018】
入出力処理部21は、開始指示部11が出力する評価対象画像データを入力として画像処理モデル41に与える。画像処理モデル41は、入力として与えられる評価対象画像データに対する画像処理を行う。画像処理モデル41は、画像処理の中間過程において得られる特徴表現データを入出力処理部21に出力する。ここで、画像処理モデル41が行う画像処理の中間過程において得られる特徴表現データとは、例えば、画像処理用関数近似器22が深層ニューラルネットワークである場合、入力層から出力層に至るまでに存在する複数の階層の隠れ層のいずれかであって、予め定められる特定の階層の隠れ層において得られる特徴マップに含まれているデータである。入出力処理部21は、画像処理モデル41が出力する特徴表現データを品質損失算出部15に出力する。
【0019】
画像処理パラメータ記憶部14には、画像処理部12が備える画像処理用関数近似器22を用いて画像タスクごとに予め行われる学習処理によって得られる学習済みの係数である画像処理パラメータが、画像処理タスクごとに予め記憶されている。評価対象画像データ記憶部13には、複数の評価対象画像データが予め記憶されている。ここで、評価対象画像データとは、例えば、カメラなどの撮像装置によって撮像された自然画像の画像データであり、自然画像とは、人間が生活する上で自然と目にするような画像という意味であり、カメラなどの撮像装置によって撮像できる画像であれば、どのような画像であってもよい。なお、評価対象画像データ記憶部13に記憶されている評価対象画像データには、画像処理部12が備える画像処理用関数近似器22を用いて画像タスクごとに予め行われる学習処理において用いられた学習用画像データが含まれていてもよい。
【0020】
品質損失算出部15は、開始指示部11が出力する画像処理パラメータ及び評価対象画像データと、画像処理部12が出力する特徴表現データと、特徴投影画像生成部16が生成する生成画像データとに基づいて、生成画像データの品質の評価指標となる損失値を示す品質損失データを生成する。ここで、品質とは、例えば、画像の品質を示すPSNR(Peak Signal-to-Noise Ratio)などのことである。
【0021】
特徴投影画像生成部16は、生成する生成画像データが、画像処理部12が出力する特徴表現データが示す特徴を画像空間に投影した画像データになるようにする処理を行う。すなわち、特徴投影画像生成部16は、品質損失算出部15が生成する品質損失データが示す損失値を最小化する処理を行うとともに、予め準備される真正画像データと、生成画像データとを用いた敵対的学習処理を行うことにより、特徴表現データが示す特徴を投影した生成画像データを生成する。
【0022】
特徴投影画像生成部16は、画像生成部31と、敵対的学習部32とを備える。敵対的学習部32は、識別モデルデータ記憶部35、真正画像データ記憶部36、識別用関数近似器37及び敵対的学習処理部38を備える。敵対的学習部32において、識別用関数近似器37は、例えば、CNNを含む深層ニューラルネットワークである。
【0023】
識別モデルデータ記憶部35には、識別モデルデータが記憶されている。ここで、識別モデルデータとは、識別用関数近似器37が、例えば、深層ニューラルネットワークである場合、当該深層ニューラルネットワークの各々のニューロンに適用される係数、すなわち、重みやバイアスの値である。識別用関数近似器37は、識別モデルデータ記憶部35に新たな識別モデルデータが書き込まれると、書き込まれた識別モデルデータを読み出して適用する。識別用関数近似器37に識別モデルデータが適用されることにより、識別モデル42が構築されることになる。
【0024】
真正画像データ記憶部36には、複数の真正画像データが記憶されている。真正画像データ記憶部36に記憶されている複数の真正画像データには、開始指示部11によって書き込まれる評価対象画像データが含まれる。なお、真正画像データ記憶部36に記憶されている複数の真正画像データのうち開始指示部11によって書き込まれる評価対象画像データ以外の真正画像データは、評価対象画像データ記憶部13に記憶されている評価対象画像データと同様に自然画像のデータであって、開始指示部11によって書き込まれる評価対象画像データとは、内容が異なる画像データである。真正画像データ記憶部36に記憶されている複数の真正画像データのうち開始指示部11によって書き込まれる評価対象画像データ以外の真正画像データは、予め真正画像データ記憶部36に書き込まれており、その個数は、1個以上であるものとする。
【0025】
敵対的学習処理部38は、開始指示部11から初期化指示信号を受けると、識別モデルデータ記憶部35に記憶されている識別モデルデータに含まれる係数の各々を、例えば、乱数などにより初期化する。敵対的学習処理部38は、真正画像データ記憶部36に記憶されている真正画像データと、画像生成部31が生成する生成画像データとを用いた敵対的学習処理を行う。すなわち、敵対的学習処理部38は、真正画像データを入力とする場合に、識別モデル42が正しい画像と判定し、生成画像データを入力とする場合に、識別モデル42が誤った画像と判定するように、識別モデル42を構築するための新たな識別モデルデータを生成する。敵対的学習処理部38は、識別モデルデータ記憶部35に記憶されている識別モデルデータを、生成した新たな識別モデルデータに書き換えて更新する。
【0026】
敵対的学習処理部38は、新たに生成した識別モデルデータに基づいて構築される識別モデル42に対して、生成画像データを入力として与えた場合に、識別モデル42が正しい画像と判定する生成画像データを画像生成部31が生成できているのかを評価する際の評価指標となる損失値を示す敵対的損失データを生成する。
【0027】
画像生成部31は、開始指示部11から初期化指示信号を受けると、画素値を初期値で初期化した生成画像データ(以下「初期化生成画像データ」ともいう)を生成する。ここで、初期化生成画像データとは、例えば、画素の各々の画素値を正規分布などからサンプリングされるランダムな初期値で初期化した画像データであってもよいし、全ての画素の画素値を、例えば、「0」のような一様な初期値で初期化した画像データであってもよい。画像生成部31は、生成した初期化生成画像データを内部の記憶領域に書き込んで記憶させる。
【0028】
画像生成部31は、品質損失算出部15が生成する品質損失データが示す損失値を最小化しつつ、敵対的学習部32が生成する敵対的損失データが示す損失値を最小化するように新たな生成画像データを生成する。画像生成部31は、生成画像データを生成する処理が終了した際、生成した生成画像データを処理結果として外部に出力する。
【0029】
(第1の実施形態の画像生成装置による処理)
次に、
図2から
図5を参照しつつ画像生成装置1が行う処理について説明する。
図2は、画像生成装置1が行う処理の全体の流れを示すシーケンス図である。開始指示部11は、画像生成装置1の利用者の操作により、利用者が所望する画像処理タスクの指定を受ける(ステップS1)。開始指示部11は、敵対的学習部32の敵対的学習処理部38と、画像生成部31とに初期化指示信号を出力する(ステップS2-1,S2-2)。なお、開始指示部11は、ステップS2-1,S2-2の処理の処理を、ステップS2-1,S2-2の順に行ってもよいし、逆の順に行ってもよい。
【0030】
敵対的学習部32の敵対的学習処理部38は、開始指示部11が出力する初期化指示信号を受けると、識別モデルデータ記憶部35に記憶されている識別モデルデータを初期化する。敵対的学習処理部38によって識別モデルデータ記憶部35に記憶されている識別モデルデータが初期化されると、識別用関数近似器37は、識別モデルデータ記憶部35に記憶されている識別モデルデータを読み出し、読み出した識別モデルデータを自らに適用して識別モデル42を構築する(ステップS3-1)。画像生成部31は、開始指示部11が出力する初期化指示信号を受けると、画素値を初期値で初期化した生成画像データ、すなわち初期化生成画像データを生成する。画像生成部31は、生成した初期化生成画像データを内部の記憶領域に書き込んで記憶させる。画像生成部31は、生成した初期化生成画像データを品質損失算出部15と、敵対的学習処理部38とに出力する(ステップS3-2)。
【0031】
開始指示部11は、指定を受けた画像タスクに対応する画像処理パラメータを画像処理パラメータ記憶部14から読み出す(ステップS4)。開始指示部11は、読み出した画像処理パラメータを、画像生成部31と、品質損失算出部15と、画像処理部12とに出力する。なお、開始指示部11は、画像生成部31、品質損失算出部15、画像処理部12の順に画像処理パラメータを出力してもよいし、順番を入れ替えて出力するようにしてもよい。画像生成部31は、開始指示部11が出力する画像処理パラメータを取り込み、取り込んだ画像処理パラメータを内部の記憶領域に書き込んで記憶させる(ステップS5-1)。品質損失算出部15は、開始指示部11が出力する画像処理パラメータを取り込む(ステップS5-2)。画像処理部12の入出力処理部21は、開始指示部11が出力する画像処理パラメータを取り込む。入出力処理部21は、取り込んだ画像処理パラメータを画像処理用関数近似器22に適用する。これにより、画像処理モデル41が構築される(ステップS5-3)。
【0032】
開始指示部11は、評価対象画像データ記憶部13に記憶されているいずれか1つの評価対象画像データを読み出す(ステップS6)。開始指示部11は、読み出した評価対象画像データを真正画像データとして真正画像データ記憶部36に書き込んで記憶させる(ステップS7-1)。開始指示部11は、読み出した評価対象画像データを品質損失算出部15と、画像処理部12とに出力する。なお、開始指示部11は、読み出した評価対象画像データを真正画像データ記憶部36に書き込む処理、読み出した評価対象画像データを品質損失算出部15に出力する処理、読み出した評価対象画像データを画像処理部12に出力する処理の3つの処理を、
図2に示す順に処理を行ってもよいし、順番を入れ替えて行ってもよい。
【0033】
品質損失算出部15は、開始指示部11が出力する評価対象画像データを取り込む(ステップS7-2)。画像処理部12の入出力処理部21は、開始指示部11が出力する評価対象画像データを取り込む。入出力処理部21は、取り込んだ評価対象画像データを入力として、画像処理モデル41に与える。画像処理モデル41は、入力として与えられた評価対象画像データに対して画像処理を行い、画像処理の中間過程において得られる特徴表現データを入出力処理部21に出力する。入出力処理部21は、画像処理モデル41が出力する特徴表現データを取り込む。入出力処理部21は、取り込んだ特徴表現データを品質損失算出部15に出力する(ステップS7-3)。
【0034】
品質損失算出部15は、入出力処理部21が出力する特徴表現データを取り込む(ステップS8)。なお、開始指示部11は、ステップS2-1,S2-2の処理を、ステップS4の処理の後に行うようにしてもよいし、ステップS6の処理の後に行うようにしてもよい。
【0035】
以降、
図3のフローチャートに示す生成画像データに対して画像処理部12が出力した特徴表現データを投影する処理が品質損失算出部15と、特徴投影画像生成部16とによって行われる(ステップS9)。
【0036】
品質損失算出部15及び敵対的学習処理部38は、画像生成部31が生成して出力する生成画像データを取り込む(ステップS101)。初回は、ステップS3-2の処理において画像生成部31が出力する初期化生成画像データを、品質損失算出部15及び敵対的学習処理部38は、取り込むことになる。
【0037】
品質損失算出部15は、生成画像データを取り込むと、
図4に示すサブルーチンの処理を開始する(ステップS102-1)。敵対的学習部32は、生成画像データを取り込むと、
図5に示すサブルーチンの処理を開始する(ステップS102-2)。なお、ステップS102-1の処理と、ステップS102-2の処理とは、並列に行われてもよいし、ステップS102-1、ステップS102-2の順で行われてもよいし、逆の順で行われてもよい。
【0038】
(第1の実施形態の品質損失算出部による処理)
図4に示すフローチャートにしたがって、
図3のステップS102-1の品質損失算出部15による処理を説明する。品質損失算出部15は、取り込んだ生成画像データと、ステップS7-2の処理において取り込んだ評価対象画像データとに対して、予め定められる第1の損失関数を適用して、第1の損失値を算出する(ステップS201)。ここで、第1の損失関数とは、第1の損失関数によって得られる第1の損失値を最小化することにより、評価対象画像データと、生成画像データとの差分を最小化するような第1の損失値を算出する関数である。評価対象画像データと、生成画像データとの差分を最小化するような損失値を算出する関数であれば、どのような関数を適用してもよい。例えば、第1の損失関数として、2つの画像データ間の平均二乗誤差(MSE(Mean Square Error))、または、平均絶対値誤差(MAE(Mean Absolute Error))の値に基づく損失値を算出する関数などを適用することができる。
【0039】
品質損失算出部15は、ステップS5-2の処理において取り込んだ画像処理パラメータと、取り込んだ生成画像データとに基づいて、画像処理部12において構築される画像処理モデル41における上記した特定の階層と同一の階層における特徴マップを生成する。品質損失算出部15は、生成した特徴マップにおいて示されているデータから生成画像データに対応する特徴表現データを生成する(ステップS202)。例えば、品質損失算出部15は、画像処理部12が備える画像処理用関数近似器22と同一構成の関数近似器を内部に備えている。品質損失算出部15は、ステップS5-2の処理において取り込んだ画像処理パラメータを、内部に備える関数近似器に適用して画像処理モデル41と同一のモデルを構築する。以下、品質損失算出部15が生成するモデルを模擬画像処理モデルという。品質損失算出部15は、構築した模擬画像処理モデルに、取り込んだ生成画像データを入力して与えることにより、上記した特定の階層の特徴マップを模擬画像処理モデルから取得する。品質損失算出部15は、取得した特徴マップにおいて示されているデータから生成画像データに対応する特徴表現データを生成する。
【0040】
品質損失算出部15は、生成した生成画像データに対応する特徴表現データと、ステップS8の処理において取り込んだ特徴表現データとに対して、予め定められる第2の損失関数を適用して、第2の損失値を算出する(ステップS203)。ここで、第2の損失関数とは、第2の損失関数によって得られる第2の損失値を最小化することにより、生成画像データに対応する特徴表現データと、画像処理部12が出力する評価対象画像データに対応する特徴表現データとの差分を最小化するような第2の損失値を算出する関数である。生成画像データに対応する特徴表現データと、画像処理部12が出力する評価対象画像データに対応する特徴表現データとの差分を最小化するような損失値を算出する関数であれば、どのような関数を適用してもよい。例えば、第2の損失関数として、2つの特徴表現データ間の平均二乗誤差、または、平均絶対値誤差の値に基づく損失値を算出する関数などを適用することができる。
【0041】
品質損失算出部15は、算出した第1の損失値と、算出した第2の損失値とに基づいて品質損失データを生成する。例えば、品質損失算出部15は、第1の損失値と、第2の損失値との各々に対して荷重を適用した線形和の損失値を示す品質損失データを生成する。品質損失算出部15は、生成した品質損失データを画像生成部31に出力し(ステップS204)、
図4のサブルーチンの処理が終了し、
図3のフローチャートに戻る。
【0042】
ステップS204の処理において適用する荷重の比率は、第1の損失値及び第2の損失値の各々の特性を踏まえて適宜定められる。第1の損失値は、例えば、自然画像である評価対象画像データに対する生成画像データの品質の劣化、すなわち、生成画像データにおいて自然画像には存在しないスパイクなどが生じていることを示す指標になっている。これに対して、第2の損失値は、生成画像データと評価対象画像データの各々の特徴表現データの間の相違を示す指標である。ただし、第2の損失値を考慮し過ぎると、例えば、非特許文献3のFigure1に示されるような本来、自然画像に存在しないアーチファクトを生み出す可能性がある。このような第1の損失値及び第2の損失値の各々の特性を踏まえて、画像生成部31が生成する生成画像データが自然画像に近づくように、第2の損失値の影響を抑えた荷重の比率を定めるようにしてもよい。この場合、例えば、「10:1」の荷重の比率、すなわち、第1の損失値に対する比率を「10」とし、第2の損失値に対する比率を「1」とする荷重の比率を品質損失算出部15において予め定めておき、定めた荷重の比率をステップS204の処理において適用するようにしてもよい。品質損失算出部15は、予め定めた荷重の比率を、繰り返し行われるステップS204の処理において固定的に適用してもよいし、繰り返し行われるステップS204の処理の各回の処理おいて、品質損失算出部15が、適応的に荷重の比率を変えて適用するようにしてもよい。
【0043】
(第1の実施形態の敵対的学習部による処理)
図5に示すフローチャートにしたがって、
図3のステップS102-2の敵対的学習部32による処理を説明する。敵対的学習部32の敵対的学習処理部38は、真正画像データ記憶部36から読み出す。敵対的学習処理部38は、真正画像データ記憶部36に記憶されている全ての真正画像データを読み出してもよいし、真正画像データ記憶部36に記憶されている一部の複数の真正画像データを読み出すようにしてもよい。ただし、一部の複数の真正画像データを読み出す場合、敵対的学習処理部38は、開始指示部11によって真正画像データ記憶部36に真正画像データとして書き込まれた評価対象画像データが含まれるように読み出すものとする(ステップS301)。
【0044】
敵対的学習処理部38は、取り込んだ生成画像データを入力として識別モデル42に与えて、識別モデル42が出力する判定の結果を示す判定結果情報を取得する。敵対的学習処理部38は、読み出した複数の真正画像データの各々を入力として識別モデル42に与えて、複数の真正画像データの各々に対応する識別モデル42の判定の結果を示す判定結果情報を取得する(ステップS302)。なお、識別モデル42が出力する判定結果情報とは、入力として与えられた画像データが、正しい画像データである確率を示す情報である。
【0045】
敵対的学習処理部38は、識別モデル42が出力する判定結果を示す情報に基づいて、識別モデル42が正しい判定を行うように識別モデル42を構築する新たな識別モデルデータを生成する。より詳細には、敵対的学習処理部38は、真正画像データを入力とする場合に、正しい画像と判定し、生成画像データを入力とする場合に、誤った画像と判定するように識別モデル42が判定することができているのかを評価する際の評価指標となる損失値を算出する。敵対的学習処理部38は、算出した損失値を最小化する新たな識別モデルデータを生成する。上記のような損失値を算出する損失関数として、例えば、次式(1)で示される交差エントロピーが適用される。
【0046】
【0047】
上記式(1)を用いる場合、例えば、真正画像データを識別モデル42に入力として与えた際の正解ラベルを「1」とし、生成画像データを識別モデル42に入力として与えた際の正解ラベルを「0」として予め定めておく。上記式(1)において、qは、識別モデル42に与えられる画像データ、すなわち真正画像データ、または、生成画像データに付与されるインデックス番号であり、qは、1以上の整数であり、qの最大値は、真正画像データ記憶部36に記憶されている複数の真正画像データの個数に、生成画像データの個数である「1」を加えた値である。
【0048】
式(1)において、xqが、q番目の画像データを入力として与えた場合に識別モデル42が出力する判定結果情報であり、yqが、q番目の画像データに関連付けられている正解ラベルである。敵対的学習処理部38は、式(1)の損失関数によって算出した損失値Ldist(x,y)を、例えば、確率的勾配降下法やAdamなどの最適化アルゴリズムによって最小化することにより、新たな識別モデルデータを生成する。
【0049】
敵対的学習処理部38は、新たな識別モデルデータを生成すると、識別モデルデータ記憶部35に記憶されている識別モデルデータを、生成した新たな識別モデルデータに書き換えて更新する。識別モデルデータ記憶部35に新たな識別モデルデータが書き込まれると、識別用関数近似器37は、識別モデルデータ記憶部35から識別モデルデータを読み出し、読み出した識別モデルデータを自らに適用する。これにより、新たな識別モデル42が構築されることになる(ステップS303)。
【0050】
敵対的学習処理部38は、新たに構築された識別モデル42に対して、生成画像データを入力として与えた場合に、識別モデル42が正しい画像と判定する生成画像データを画像生成部31が生成できているのかを評価する際の評価指標となる損失値を示す敵対的損失データを生成する。敵対的損失データが示す損失値は、例えば、式(1)によって算出した損失値L
dist(x,y)に負の値、すなわち「-1」を乗算することで算出することができる。敵対的学習処理部38は、生成した敵対的損失データを画像生成部31に出力し(ステップS304)、
図5のサブルーチンの処理が終了し、
図3のフローチャートに戻る。
【0051】
(第1の実施形態の画像生成部による処理)
画像生成部31は、品質損失算出部15が出力する品質損失データと、敵対的学習処理部38が出力する敵対的損失データとを取り込む。画像生成部31は、取り込んだ品質損失データが示す損失値を最小化しつつ、取り込んだ敵対的損失データが示す損失値を最小化するように新たな生成画像データを生成する。画像生成部31は、新たな生成画像データを生成すると、内部の記憶領域に記憶させている前回生成した生成画像データを、新たな生成画像データに書き換える(ステップS103)。より詳細には、画像生成部31は、非特許文献4、5に開示されている手法を利用して、以下のようにして新たな生成画像データの生成を行う。
【0052】
画像生成部31は、画像処理部12が備える画像処理用関数近似器22と同一の関数近似器である模擬画像処理用関数近似器を内部に備えており、内部の記憶領域に記憶させている画像処理パラメータを模擬画像処理用関数近似器に適用する。非特許文献4、5による手法では、品質損失算出部15が生成する品質損失データが示す損失値に相当する損失値のみを用いているが、画像生成部31は、生成画像データの視認性を高めるために、更に、敵対的学習部32が生成する敵対的損失データが示す損失値を利用する。
【0053】
画像生成部31は、品質損失データが示す損失値と、敵対的損失データが示す損失値とから勾配を算出する。画像生成部31は、模擬画像処理用関数近似器における隠れ層であって画像処理部12の画像処理モデル41において特徴表現データが得られた階層と同一の階層の隠れ層を出力層とみなす。画像生成部31は、出力層とみなした隠れ層から入力層に向かって、画像処理パラメータを適用した模擬画像処理用関数近似器を用いて、階層ごとに算出した勾配を予め定められる最適化アルゴリズムに基づく誤差逆伝播法により逆伝播させる。ここで、予め定められる最適化アルゴリズムとして、例えば、確率的勾配降下法、Adam(Adaptive Moment Estimation)、L-BFGS(Limited-memory Broyden-Fletcher-Goldfarb-Shanno)などが適用される。なお、画像生成部31は、誤差逆伝播法の演算において入力層以外の各ニューロンに対する勾配も算出するが、算出した勾配によって画像処理パラメータを更新することはない。画像処理パラメータを更新してしまうと、生成画像データに特徴を投影するということができなくなってしまうためである。そのため、画像生成部31は、ステップS5-1の処理において取得して内部の記憶領域に記憶させてある画像処理パラメータを固定的に模擬画像処理用関数近似器に適用する。
【0054】
画像生成部31は、逆伝播により入力層において得られる勾配と、内部の記憶領域に記憶させている前回生成した生成画像データとに基づいて、新たな生成画像データを生成する。すなわち、画像生成部31は、内部の記憶領域から前回生成した生成画像データを読み出す。画像生成部31は、読み出した生成画像データに含まれる画素の各々の画素値から、入力層において得られた勾配にしたがって、各々の画素に対する新たな画素値を算出する。画像生成部31は、算出した新たな画素値を含む画像データを新たな生成画像データとする。これにより、画像生成部31は、品質損失算出部15が生成する品質損失データが示す損失値を最小化しつつ、敵対的学習部32が生成する敵対的損失データが示す損失値を最小化するように新たな生成画像データを生成することが可能になる。
【0055】
画像生成部31は、予め定められる終了条件を満たしているか否かを判定する(ステップS104)。ここで、予め定められる終了条件とは、例えば、画像生成部31が、生成画像データを生成した回数が、予め定められている回数に一致しているという条件などである。
【0056】
画像生成部31は、予め定められる終了条件を満たしていないと判定した場合(ステップS104、No)、生成した新たな生成画像データを品質損失算出部15と、敵対的学習処理部38とに出力する(ステップS105)。その後、再び、ステップS101の処理以降の処理が行われる。
【0057】
一方、画像生成部31は、予め定められる終了条件を満たしていると判定した場合(ステップS104、Yes)、生成した生成画像データを処理結果として外部に出力し(ステップS106)、処理を終了する。
【0058】
これにより、画像生成装置1の利用者は、開始指示部11が選択して外部に出力する評価対象画像データと、画像生成部31が外部に出力する処理結果の生成画像データとを比較することにより、評価対象画像データのどの部分の特徴を画像処理部12の画像処理モデル41が評価対象画像データから抽出しているのかを目視によって確認することが可能になる。
【0059】
上記の第1の実施形態の画像生成装置1において、画像処理部12は、任意に選択される画像処理パラメータによって生成する画像処理モデル41に、評価対象画像データを入力として与え、画像処理モデル41による画像処理の中間過程において得られる評価対象画像データの特徴を表現した特徴表現データを生成する。品質損失算出部15は、評価対象画像データと、当該評価対象画像データの特徴表現データと、画像処理パラメータと、生成画像データとに基づいて、生成画像データの品質の評価指標となる損失値を示す品質損失データを生成する。特徴投影画像生成部16は、品質損失データが示す損失値を最小化する処理を行うとともに、真正画像データと、生成画像データとを用いた敵対的学習処理を行うことにより、特徴表現データが示す特徴を投影した生成画像データを生成する。
【0060】
特徴投影画像生成部16において、敵対的学習部32は、真正画像データを入力とする場合に、識別モデル42が正しい画像と判定し、生成画像データを入力とする場合に、識別モデル42が誤った画像と判定するように識別モデル42を構築し、構築した識別モデル42が生成画像データを入力とする場合に、正しい画像と判定する生成画像データを画像生成部31が生成できているのかを評価する際の評価指標となる損失値を示す敵対的損失データを生成する。画像生成部31は、敵対的損失データが示す損失値と、品質損失データが示す損失値とに基づいて勾配を算出する。画像生成部31は、算出した勾配を、画像処理部12が備える画像処理用関数近似器22における中間過程に対応する隠れ層から入力層まで誤差逆伝播法により逆伝播させることにより入力層における勾配を算出する。画像生成部31は、算出した勾配に基づいて生成画像データを生成する。すなわち、画像生成装置1は、上記したDeepSiMと同様に、生成画像データの視認性を高めるために敵対的学習部32による敵対的学習の手法を採用しているが、生成画像データを生成する画像生成部31では、敵対的損失データが示す損失値と、品質損失データが示す損失値とから直接的に新たな生成画像データを生成する手法を採用している。これに対して、DeepSiMでは、生成画像データの生成においてニューラルネットワークの係数を最適化する学習処理を行っている。そのため、画像生成装置1は、DeepSiMよりも短い実用的な時間で、特徴表現データが示す特徴を投影した生成画像データを生成することができる。
【0061】
特徴投影画像生成部16において、真正画像データ記憶部36は、開始指示部11が選択した評価対象画像データと、当該評価対象画像データの内容とは異なる内容の自然画像の画像データとを真正画像データとして記憶する。これにより、特徴投影画像生成部16が備える敵対的学習処理部38は、真正画像データとして、評価対象画像データ以外の自然画像の画像データを含む複数の真正画像データを用いた敵対的学習を行うことができる。これにより、開始指示部11が選択した評価対象画像データのみを用いて敵対的学習を行って生成画像データを生成するよりも、生成画像データにおいて、より自然らしい状態を担保することができ、画像処理の中間過程において得られる特徴表現を、視認性の高い画像、言い換えると人間が解釈しやすい画像に投影することが可能になる。したがって、画像生成装置1を利用することにより、画像処理の中間過程において得られる特徴表現が視認性の高い状態で投影された画像を、実用的な時間で生成することが可能になる。
【0062】
(第2の実施形態)
図6は、第2の実施形態における画像生成装置1aの構成を示すブロック図である。第2の実施形態において、第1の実施形態と同一の構成については、同一の符号を付し、以下、異なる構成について説明する。
【0063】
第1の実施形態では、画像生成部31は、品質損失算出部15が生成する品質損失データが示す損失値を最小化しつつ、敵対的学習処理部38が生成する敵対的損失データが示す損失値を最小化することにより、生成画像データを最適化するようにしていた。この場合、敵対的損失データと品質損失データの各々が示す2つの損失値を最小化する処理を行う必要があり、画像生成部31が、初期化指示信号を受けて生成する初期化生成画像データの画素の画素値によっては、最適解に到達することが難しい場合がある。そのため、第2の実施形態では、生成画像データを最適化する初期の段階では、比較的、最小化が容易である品質損失データが示す損失値のみを利用し、品質損失データによってある程度、最適化が行えた後に、敵対的損失データが示す損失値を用いるという手順を採用する。
【0064】
画像生成装置1aは、開始指示部11a、画像処理部12、評価対象画像データ記憶部13、画像処理パラメータ記憶部14、品質損失算出部15a、特徴投影画像生成部16a及び判定部17を備える。開始指示部11aは、第1の実施形態の開始指示部11が備える構成に加えて、初期化指示信号を判定部17に出力する構成を備える。品質損失算出部15aは、第1の実施形態の品質損失算出部15が備える構成に加えて、品質損失データを判定部17に出力する構成を備える。
【0065】
判定部17は、品質損失算出部15aが繰り返し生成する品質損失データを取り込む。判定部17は、新たに品質損失データを取り込んだ際に、新たに取り込んだ品質損失データと、前回取り込んだ品質損失データとに基づいて、敵対的損失データを用いるか否かを判定する。判定部17は、判定した結果を示す判定結果情報を特徴投影画像生成部16aに出力する。
【0066】
特徴投影画像生成部16aは、画像生成部31aと、敵対的学習部32とを備える。画像生成部31aは、判定部17が出力する判定結果情報が、敵対的損失データを用いないことを示している場合、敵対的損失データを用いずに、品質損失データが示す損失値を最小化するように生成画像データを生成する。これに対して、画像生成部31aは、判定部17が出力する判定結果情報が、敵対的損失データを用いることを示している場合、第1の実施形態の画像生成部31と同様に、品質損失データが示す損失値を最小化しつつ、敵対的損失データが示す損失値を最小化するような生成画像データを生成する。
【0067】
(第2の実施形態の画像生成装置による処理)
次に、
図7から
図10を参照しつつ画像生成装置1aが行う処理について説明する。なお、
図7において、
図2に示した処理と同一の内容の処理については、同一の符号を付しており、
図8において、
図3に示した処理と同一の処理については、同一の符号を付しており、同一の符号を付している処理において、第1の実施形態の開始指示部11が行っていた処理は、開始指示部11aが行い、第1の実施形態の品質損失算出部15が行っていた処理は、品質損失算出部15aが行い、第1の実施形態の画像生成部31が行っていた処理は、画像生成部31aが行うことになる。
【0068】
図7は、画像生成装置1aが行う処理の全体の流れを示すシーケンス図である。以下、
図7において第1の実施形態と異なる処理について説明する。第2の実施形態では、
図7に示すように、開始指示部11aは、初期化指示信号を判定部17にも送信する(ステップS2-3)。判定部17は、開始指示部11aから初期化指示信号を受けると、内部の記憶領域に処理フラグの内容を記憶する領域を生成する。判定部17は、生成した処理フラグの内容を記憶する領域に「初回」の情報を書き込む(ステップS3-3)。第2の実施形態では、
図7に示すように、第1の実施形態においてステップS9において行われていた
図3に示す処理に替えて、
図8に示す処理が行われる(ステップSa9)。なお、開始指示部11aは、ステップS2-1,S2-2,S2-3の処理の処理を、ステップS2-1,S2-2,S2-3の順に行ってもよいし、順番を入れ替えて行ってもよい。開始指示部11aは、ステップS2-1,S2-2,S2-3の処理を、ステップS4の処理の後に行うようにしてもよいし、ステップS6の処理の後に行うようにしてもよい。
【0069】
次に、
図8に示す処理において、第1の実施形態と異なる処理について説明する。品質損失算出部15aは、画像生成部31aが出力する生成画像データを取り込むと、
図4に示す品質損失算出部15が行うサブルーチンの処理と同一の処理を行う。ただし、
図4に示すステップS204の処理において、品質損失算出部15aは、品質損失データを画像生成部31aに出力するとともに、判定部17に出力する(ステップSa102-1)。なお、ステップSa102-1の処理と、ステップS102-2の処理とは、並列に行われてもよいし、ステップSa102-1、ステップS102-2の順で行われてもよいし、逆の順で行われてもよい。
【0070】
(第2の実施形態の判定部による処理)
図9に示す判定部17による処理は、ステップS102a-1の処理において、品質損失算出部15aが、品質損失データを判定部17に出力した後に行われる処理であり、
図8に示す処理と並列に行われる処理である。
【0071】
判定部17は、品質損失算出部15aが出力する品質損失データを取り込む(ステップS401)。判定部17は、内部の記憶領域の処理フラグの内容を判定する(ステップS402)。判定部17は、内部の記憶領域の処理フラグの内容が「初回」であると判定した場合(ステップS402、初回)、すなわち、判定部17が、開始指示部11aから初期化指示信号を受けた後、最初に、品質損失算出部15aが出力する品質損失データを取り込んだ場合、取り込んだ品質損失データを内部の記憶領域に書き込んで記憶させる(ステップS403)。判定部17は、内部の記憶領域の処理フラグの内容を「判定有」に書き換える(ステップS404)。判定部17は、敵対的損失データを用いないことを示す判定結果情報を画像生成部31aに出力し(ステップS405)、処理を終了する。
【0072】
一方、ステップS402の処理において、判定部17は、内部の記憶領域の処理フラグの内容が「判定有」であると判定した場合(ステップS402、判定有)、内部の記憶領域に記憶されている品質損失データの中で最先に書き込まれた品質損失データを前回の品質損失データとして読み出す(ステップS406)。判定部17は、ステップS401の処理おいて取り込んだ今回の品質損失データが示す損失値と、読み出した前回の品質損失データが示す損失値との差が、予め定められる閾値以下であるか否かを判定する(ステップS407)。
【0073】
判定部17は、今回の品質損失データが示す損失値と、前回の品質損失データが示す損失値との差が、予め定められる閾値以下でないと判定した場合(ステップS407、No)、敵対的損失データを用いないことを示す判定結果情報を画像生成部31aに出力する(ステップS408)。判定部17は、ステップS401の処理において取り込んだ今回の品質損失データを、既に書き込まれている品質損失データとの間で時系列順が分かるように内部の記憶領域に書き込んで(ステップS409)、処理を終了する。
【0074】
一方、判定部17は、今回の品質損失データが示す損失値と、前回の品質損失データが示す損失値との差が、予め定められる閾値以下であると判定した場合(ステップS407、Yes)、内部の記憶領域の処理フラグの内容を「判定無」に書き換える(ステップS410)。判定部17は、敵対的損失データを用いることを示す判定結果情報を画像生成部31aに出力し(ステップS411)、その後、処理は、ステップS409の処理に進められる。
【0075】
判定部17は、ステップS402の処理において、処理フラグの内容が「判定無」であると判定した場合(ステップS402、判定無)、ステップS411の処理、すなわち、敵対的損失データを用いることを示す判定結果情報を画像生成部31aに出力する処理を行い、その後、処理は、ステップS409の処理に進められる。
【0076】
(第2の実施形態の画像生成部による処理)
図8に戻り、
図10に示す画像生成部31aによるサブルーチンの処理が行われる(ステップSa103)。画像生成部31aは、品質損失算出部15aが出力する品質損失データと、敵対的学習処理部38が出力する敵対的損失データと、判定部17が出力する判定結果情報を取り込む(ステップS501)。
【0077】
画像生成部31aは、取り込んだ判定結果情報の内容を判定する(ステップS502)。画像生成部31aは、取り込んだ判定結果情報の内容が敵対的損失データを用いないという内容であると判定した場合(ステップS502、敵対的損失データを用いない)、画像生成部31aは、取り込んだ品質損失データが示す損失値のみから勾配を算出する。画像生成部31aは、算出した勾配に基づいて、第1の実施形態のステップS103の処理において説明した画像処理パラメータを適用した模擬画像処理用関数近似器と、誤差逆伝播法とを用いる手法により、新たな生成画像データを生成する。画像生成部31aは、新たな生成画像データを生成すると、内部の記憶領域に記憶させている前回生成した生成画像データを、新たな生成画像データに書き換える(ステップS503)。
【0078】
一方、画像生成部31aは、取り込んだ判定結果情報の内容が敵対的損失データを用いるという内容であると判定した場合(ステップS502、敵対的損失データを用いる)、画像生成部31aは、取り込んだ品質損失データが示す損失値と、取り込んだ敵対的損失データが示す損失値とから勾配を算出する。画像生成部31aは、算出した勾配に基づいて第1の実施形態のステップS103の処理において説明した画像処理パラメータを適用した模擬画像処理用関数近似器と、誤差逆伝播法とを用いる手法により、新たな生成画像データを生成する。画像生成部31aは、新たな生成画像データを生成すると、内部の記憶領域に記憶させている前回生成した生成画像データを、新たな生成画像データに書き換える(ステップS504)。その後、第1の実施形態と同様に、
図8のステップS104以降の処理が行われる。
【0079】
なお、
図9に示すステップS407の処理において、判定部17は、予め定められる閾値を用いた判定処理を行っているが、以下のようにしてもよい。例えば、判定部17は、内部の記憶領域に時系列順に記憶させている品質損失データが示す損失値の時系列における変化から適応的に閾値を定めるようにしてもよい。ステップS407の処理における閾値以下であるか否かという判定は一例であり、閾値の定め方によっては、判定部17は、閾値未満であるか否かという判定を行うようにしてもよい。
【0080】
上記の第2の実施形態の画像生成装置1aにおいて、判定部17は、品質損失算出部15aが生成する品質損失データと、前回の品質損失データとに基づいて、敵対的損失データを用いるか否かを判定し、判定した結果を示す判定結果情報を画像生成部31aに出力する。画像生成部31aは、判定結果情報が、敵対的損失データを用いないことを示している場合、敵対的損失データを用いずに、品質損失データが示す損失値に基づいて、生成画像データを生成する。画像生成部31aは、判定結果情報が、敵対的損失データを用いることを示している場合、敵対的損失データが示す損失値と、品質損失データが示す損失値とに基づいて、生成画像データを生成する。これにより、上記したように、画像生成装置1aにおいて、生成画像データを最適化する初期の段階では、比較的、最小化が容易である品質損失データのみを利用し、品質損失データによってある程度、生成画像データの最適化が行えた後に、敵対的損失データを用いることが可能になる。そのため、第1の実施形態の画像生成装置1に比べて、より高い確率で最適解に到達して生成画像データを生成することが可能になる。
【0081】
なお、上記の第1及び第2の実施形態において、画像生成部31,31aにおいて適用される最適化アルゴリズムとして、例えば、確率的勾配降下法、Adam、L-BFGSを一例として示しているが、これら以外の最適化アルゴリズムを適用するようにしてもよい。
【0082】
上記の第1及び第2の実施形態において、敵対的学習部32の識別用関数近似器を目的関数によって表すことができる場合、上記式(1)の交差エントロピーに替えて平均二乗関数を損失関数として適用するようにしてもよい。敵対的学習部32の敵対的学習処理部38に適用する最適化アルゴリズムとして、確率的勾配降下法やAdamを一例として示しているが、ニュートン法などの他の最適化アルゴリズムを適用するようにしてもよい。
【0083】
上記の第1及び第2の実施形態において、敵対的学習部32の敵対的学習処理部38は、敵対的損失データが示す損失値を、式(1)によって算出される損失値Ldist(x,y)に負の値を乗算することにより算出するとしている。これに対して、識別モデル42が正しい画像と判定する生成画像データを画像生成部31,31aが生成できているのかを評価する際の評価指標となる損失値であれば、どのような損失値を適用してもよい。したがって、敵対的学習処理部38は、そのような損失値を算出する式(1)以外の演算を行って敵対的評価データを生成するようにしてもよい。
【0084】
上記の第1及び第2の実施形態において、真正画像データ記憶部36に記憶されている真正画像データに、開始指示部11,11aが選択した評価対象画像データを含めるようにしているが、開始指示部11,11aが選択した評価対象画像データを真正画像データに含めないようにしてもよい。評価対象画像データを真正画像データに含めない場合、真正画像データ記憶部36は、評価対象画像データと内容の異なる真正画像データを少なくとも2個以上記憶するのが望ましい。
【0085】
上記の第1及び第2の実施形態では、画像処理部12が備える画像処理用関数近似器22において特徴表現データを得る特定の階層の位置(以下「画像処理用関数近似器22における特定の階層の位置」という)は、予め定められるとしている。品質損失算出部15,15aにおける模擬画像処理モデルにおいて、生成画像データに対応する特徴表現データを取得する特定の階層の位置も、画像処理用関数近似器22における特定の階層の位置と同一の位置になるように予め定められるとしている。画像生成部31,31aにおいて模擬画像処理用関数近似器において出力層とみなす隠れ層の位置も、画像処理用関数近似器22における特定の階層の位置と同一の位置になるように予め定められるとしている。これに対して、画像処理部12が備える画像処理用関数近似器22において特徴表現データを得る特定の階層の位置を画像生成装置1,1aの利用者が任意に定めるようにしてもよい。この場合、例えば、以下のような処理が行われる。開始指示部11aは、利用者によって特定の階層の位置が指定されると、指定された特定の階層の位置を示す情報を、画像処理部12の入出力処理部21と、品質損失算出部15,15aと、画像生成部31,31aとに出力する。画像処理部12の入出力処理部21は、開始指示部11aが出力する特定の階層の位置に対応する画像処理モデル41の隠れ層から得られる特徴マップから評価対象画像データに対応する特徴表現データを生成する。品質損失算出部15,15aは、開始指示部11aが出力する特定の階層の位置に対応する模擬画像処理モデルの隠れ層から得られる特徴マップから生成画像データに対応する特徴表現データを生成する。画像生成部31,31aは、開始指示部11aが出力する特定の階層の位置に対応する模擬画像処理関数近似器における隠れ層を出力層とみなすことになる。
【0086】
上記の第1及び第2の実施形態において、画像処理部12が備える画像処理用関数近似器22は、例えば、CNNを含む深層ニューラルネットワークであるとしている。これに対して、画像処理用関数近似器22として、CNNを含む深層ニューラルネットワーク以外の画像処理を行うニューラルネットワークを適用してもよい。敵対的学習部32が備える識別用関数近似器37も、例えば、CNNを含む深層ニューラルネットワークであるとしている。これに対して、識別用関数近似器37として、CNNを含む深層ニューラルネットワーク以外のニューラルネットワークを適用してもよく、例えば、適切に設計された多層パーセプトロンのようなニューラルネットワークを適用してもよい。
【0087】
上記の第1及び第2の実施形態において、評価対象画像データ記憶部13が記憶する評価対象画像データと、真正画像データ記憶部36が記憶する真正画像データとは、自然画像のデータであるとしているが、評価対象画像データは、自然画像のデータに限られるものではない。例えば、自然画像以外の異なる画像、例えば、CG(Computer Graphics)画像などの画像データを評価対象画像データとしてもよい。真正画像データは、評価対象画像データが取得され得る環境で得ることができる画像データを適用する必要がある。そのため、評価対象画像データがCG画像データである場合、真正画像データとして、評価対象画像データのCG画像データと内容の異なるCG画像データを適用する必要がある。
【0088】
上述した実施形態における画像生成装置1,1aをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【0089】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0090】
1…画像生成装置、11…開始指示部、12…画像処理部、13…評価対象画像データ記憶部、14…画像処理パラメータ記憶部、15…品質損失算出部、16…特徴投影画像生成部、21…入出力処理部、22…画像処理用関数近似器、31…画像生成部、32…敵対的学習部、35…識別モデルデータ記憶部、36…真正画像データ記憶部、37…識別用関数近似器、38…敵対的学習処理部、41…画像処理モデル、42…識別モデル