(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024045408
(43)【公開日】2024-04-02
(54)【発明の名称】画像処理装置、画像処理方法及びプログラム
(51)【国際特許分類】
G06V 10/82 20220101AFI20240326BHJP
G06T 7/00 20170101ALI20240326BHJP
【FI】
G06V10/82
G06T7/00 350C
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2024015227
(22)【出願日】2024-02-02
(62)【分割の表示】P 2020088398の分割
【原出願日】2020-05-20
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504133110
【氏名又は名称】国立大学法人電気通信大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】鈴木 聡志
(72)【発明者】
【氏名】谷田 隆一
(72)【発明者】
【氏名】木全 英明
(72)【発明者】
【氏名】庄野 逸
(57)【要約】
【課題】歪みが生じた画像に対するCNNの画像処理の精度を向上させること。
【解決手段】歪みがない画像の画像を特徴付ける特徴情報と、歪みがある画像の画像を特徴付ける特徴情報と、を関連付けることで得られた画像処理情報を記憶する記憶部と、処理対象の画像である対象画像を取得し、取得された対象画像に対して、前記画像処理情報を用いて所定の画像処理を行うことで画像処理結果を得る画像処理部と、を有し、前記歪みがない画像は、歪みがない画像を入力として画像内の被写体を識別する第1の処理を行うことで得られた画像であり、前記歪みがある画像は、歪みがある画像を入力として画像内の被写体を識別する第2の処理を行うことで得られた画像であり、前記画像処理部は、前記所定の画像処理として、画像内の被写体を識別する処理を行う、画像処理装置である。
【選択図】
図1
【特許請求の範囲】
【請求項1】
歪みがない画像の画像を特徴付ける特徴情報と、歪みがある画像の画像を特徴付ける特徴情報と、を関連付けることで得られた画像処理情報を記憶する記憶部と、
処理対象の画像である対象画像を取得し、取得された対象画像に対して、前記画像処理情報を用いて所定の画像処理を行うことで画像処理結果を得る画像処理部と、を有し、
前記歪みがない画像は、歪みがない画像を入力として画像内の被写体を識別する第1の処理を行うことで得られた画像であり、
前記歪みがある画像は、歪みがある画像を入力として画像内の被写体を識別する第2の処理を行うことで得られた画像であり、
前記画像処理部は、前記所定の画像処理として、画像内の被写体を識別する処理を行う、画像処理装置。
【請求項2】
前記関連付けは、前記歪がない画像の画像を特徴付ける特徴情報のニューロンの発火状態と、前記歪がある画像における前記ニューロンと対応するニューロンの発火状態を一致させることである、
請求項1に記載の画像処理装置。
【請求項3】
前記関連付けは、高次のニューロンの発火状態を一致させる処理である、
請求項2に記載の画像処理装置。
【請求項4】
前記画像処理情報は、正解ラベルと対応付けられている学習画像に対して所定の機械学習処理を行うことで得られた画像処理パラメータを用いて、前記歪みがない画像と、前記歪みがある画像と、のそれぞれに対し画像処理を実行し、その中間処理結果を用いることで得られた情報である、請求項1から3のいずれか一項に記載の画像処理装置。
【請求項5】
処理対象の画像である対象画像を取得する取得ステップと、
取得された対象画像に対して所定の画像処理を行うことで画像処理結果を得る画像処理ステップと、を有し、
前記画像処理では、歪みがない画像を入力として画像内の被写体を識別する第1の処理を行うことで得られた歪みがない画像の画像を特徴付ける特徴情報と、歪みがある画像を入力として画像内の被写体を識別する第2の処理を行うことで得られた歪みがある画像の画像を特徴付ける特徴情報と、を関連付けることで得られた画像処理情報が用いられている、
画像処理方法。
【請求項6】
前記処理対象の画像内の被写体を識別するための方法である、請求項5に記載の画像処理方法。
【請求項7】
コンピューターを請求項1から請求項4のいずれか一項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
本説明では、実際の数式における下付文字を、アンダーバー“_”を用いて記載する。例えば、“X”の文字に“n”が下付文字として付加された文字列を示す場合には、全角文字又は半角文字によって、“X_n”と記載する。
【0003】
近年、機械学習技術を用いた画像処理技術の精度向上が発展している。画像処理の具体例としては、画像内の被写体を識別する処理(以下「画像識別処理」という。)、画像内の被写体を検出する処理、画像の領域を特定の基準で分割する処理、などがある。このような処理を行う機械学習技術の中でも、特に畳み込みニューラルネットワーク(Convolutional Neural Network,CNN)の精度向上が著しい。これらの機械学習技術を用いることで各種業務における目視工程を自動化する技術が、特に注目を集めている。
【0004】
上述したような目視工程の自動化を推進する場合、撮像画像の品質は必ずしも高くはないことが想定される。例えば、暗所で撮影されることによって、コントラストが低下した画像やカメラノイズが発生した画像が得られる可能性がある。また、撮影対象が高速で移動する場合には、ブラーが発生する可能性がある。さらに、撮像画像を非可逆圧縮する場合には、圧縮歪みが生じる可能性もある。CNNを用いた画像識別精度では、画像歪みのうち特にノイズ及びブラーは大きな精度低下をもたらす事が知られている(非特許文献1参照)。さらに、人間とCNNとの歪みに対する頑健性を調査した先行技術文献では、人間と比較してCNNの頑健性は大きく劣っていることが知られている(非特許文献2参照)。そのため、人間の目視工程のCNNによる自動化において、人間が想定していないような挙動が示される危険性がある。
【0005】
このようなCNNの問題に対し、歪みに頑健な画像処理を実現する手法が提案されている。このような手法の一つとして、Fine-tuningに基づく手法が提案されている(非特許文献3及び4)。Fine-tuningとは、歪みをほとんど含んでいない標準データセットで学習済みのCNNの重みを初期値として、歪んだ画像で構成されたデータセットで再度CNNを学習する技術である。このような処理を行うことによって、歪みに対するロバスト性を高めることを可能としている。Fine-tuningされたCNNは、Fine-tuning前のCNNと比較して、歪みに対する頑健性が高まることが期待されている。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】S. Dodge, L. Karam,“Understanding How Image Quality Affects Deep Neural Networks”, 2016.
【非特許文献2】R. Geirhos, C. R. M. Temme, J. Rauber, H. H. Schutt, M. Bethge, F. A. Wichmann, “Generalisation in humans and deep neural networks”, 2018.
【非特許文献3】Y. Zhou, S. Song, N.-M. Cheung, “On classification of distorted images with deep convolutional neural networks”, 2017.
【非特許文献4】I. Vasiljevic, A. Chakrabarti, G. Shakhnarovich, “Examining the impact of blur on recognition by convolutional networks”, 2017.
【非特許文献5】K. Simonyan, A. Vedaldi, A. Zisserman, “Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps”, 2014.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、Fine-tuningに関しては以下のような理由により十分な頑健性が得られない可能性があった。Fine-tuningに基づく手法では、通常のCNNの学習の際に用いられる誤差逆伝播法によって学習が行われる。
図11は、一般的なCNNの順行伝播による認識とそれに対応する逆伝播による学習の過程を示す図である。ここでの非線形変換では、一般的にCNNに用いられるReLUによる処理が想定されている。逆伝播における1(X_(n+1)>0)は0より大きい値を持つ行列X_(n+1)の成分に1を、それ以外の成分に0を持っている行列である。したがって、順行伝播時のReLU処理で0にならなかった成分のみ誤差を伝播する。
図12は、
図11において示された誤差の伝播を簡略して示す概略図である。なお、ReLU処理のみでなく、Max-pooling処理においても、選択されなかった成分からは誤差情報を伝播されない(非特許文献5)。つまり、特定の画像特徴に対して選択的に反応するニューロンを経由する誤差情報は、そのニューロンが正の出力を示さない限り、下位の層へ伝播できないという問題がある。
【0008】
このように、歪みを含んだ画像に対するFine-tuningを考えると、歪みによって、CNNが反応を示すように学習されていた原画像の特徴(例えばテクスチャや曲率など)が消失してしまっている場合がありえる。その場合、そのような画像特徴に対して選択的に反応を示していたニューロンが反応しなくなる。上述のように、誤差情報が伝播されなくなるため、誤差逆伝播学習が不十分になってしまう可能性がある。このような問題は、CNNに限った問題ではなく、畳み込みが行われるニューラルネットワーク等、ニューラルネットワーク全般に共通した問題である。
【0009】
上記事情に鑑み、本発明は、歪みが生じた画像に対するニューラルネットワークの画像処理の精度を向上させる技術の提供を目的としている。
【課題を解決するための手段】
【0010】
本発明の一態様は、処理対象の画像である対象画像を取得する取得ステップと、取得された対象画像に対して所定の画像処理を行うことで画像処理結果を得る画像処理ステップと、を有し、前記画像処理では、歪みがない画像の画像を特徴付ける特徴情報と、歪みがある画像の画像を特徴付ける特徴情報と、を関連付けることで得られた画像処理情報が用いられている、画像処理方法である。
【0011】
本発明の一態様は、歪みがない画像の画像を特徴付ける特徴情報と、歪みがある画像の画像を特徴付ける特徴情報と、を関連付けることで得られた画像処理情報を記憶する記憶部と、処理対象の画像である対象画像を取得し、取得された対象画像に対して、前記画像処理情報を用いて所定の画像処理を行うことで画像処理結果を得る画像処理部と、を有する画像処理装置である。
本発明の一態様は、歪みがない画像の画像を特徴付ける特徴情報と、歪みがある画像の画像を特徴付ける特徴情報と、を関連付けることで得られた画像処理情報を記憶する記憶部と、処理対象の画像である対象画像を取得し、取得された対象画像に対して、前記画像処理情報を用いて所定の画像処理を行うことで画像処理結果を得る画像処理部と、を有し、前記歪みがない画像は、歪みがない画像を入力として画像内の被写体を識別する第1の処理を行うことで得られた画像であり、前記歪みがある画像は、歪みがある画像を入力として画像内の被写体を識別する第2の処理を行うことで得られた画像であり、前記画像処理部は、前記所定の画像処理として、画像内の被写体を識別する処理を行う、画像処理装置である。
本発明の一態様は、処理対象の画像である対象画像を取得する取得ステップと、取得された対象画像に対して所定の画像処理を行うことで画像処理結果を得る画像処理ステップと、を有し、前記画像処理では、歪みがない画像を入力として画像内の被写体を識別する第1の処理を行うことで得られた歪みがない画像の画像を特徴付ける特徴情報と、歪みがある画像を入力として画像内の被写体を識別する第2の処理を行うことで得られた歪みがある画像の画像を特徴付ける特徴情報と、を関連付けることで得られた画像処理情報が用いられている画像処理方法である。
【0012】
本発明の一態様は、上記の画像処理方法をコンピューターに実行させるためのプログラムである。
【発明の効果】
【0013】
本発明により、歪みが生じた画像に対するニューラルネットワークの画像処理の精度を向上させることが可能となる。
【図面の簡単な説明】
【0014】
【
図1】本発明の第1実施形態の機能構成例を示す図である。
【
図2】制御部13の処理の全体の流れの具体例を示す図である。
【
図3】歪み画像生成部131の処理の具体例を示すフローチャートである。
【
図4】原画像処理部132の処理の具体例を示すフローチャートである。
【
図5】歪み画像処理部133の処理の具体例を示すフローチャートである。
【
図6】中間類似ロス算出部134の処理の具体例を示すフローチャートである。
【
図7】最適化部135の処理の具体例を示すフローチャートである。
【
図8】本発明の第2実施形態の機能構成例を示す図である。
【
図9】重み調整部236の処理の具体例を示すフローチャートである。
【
図10】本発明の第3実施形態の機能構成例を示す図である。
【
図11】一般的なCNNの順行伝播による認識とそれに対応する逆伝播による学習の過程を示す図である。
【
図12】
図11において示された誤差の伝播を簡略して示す概略図である。
【発明を実施するための形態】
【0015】
まず、本実施形態の概略について説明する。本実施形態では、歪がない画像の特徴の中でも特に画像を特徴づけるための貢献度が高い特徴(以下「高貢献特徴」という。)のニューロンの発火を合わせる。高貢献特徴とは、例えば大きいテクスチャや、境界を示す特徴である。このような高貢献特徴に対応するニューロンの発火状態を歪がある画像と歪がない画像とで一致させることができれば、各画像それぞれに対して行った画像処理の結果の誤差を小さくすることができると考えられる。そのため、本件発明においては高貢献特徴に対応するニューロンの発火状態を歪がある画像と歪がない画像とで一致するよう学習を行う。
後述するCNNにおいて、高貢献特徴と対応するニューロンは、高次のニューロンである場合が多い。そこで、一つの実施形態においてはCNNを用いる場合は高次のニューロンの発火状態をあわせることとした。なお、CNN以外のニューラルネットワークを用いる場合、高次のニューロンの発火状態を合わせるのではなく、高貢献特徴に対応するニューロンの発火状態をあわせるようにすべきである。
【0016】
[第1実施形態]
図1は、本発明の第1実施形態の機能構成例を示す図である。学習装置10は、パーソナルコンピューターやサーバー装置等の情報処理装置を用いて構成される。学習装置10は、学習画像記憶部11、パラメータ記憶部12及び制御部13を備える。学習装置10は、ニューラルネットワークを用いた学習処理を実行する。ニューラルネットワークの具体例として、例えば畳み込み処理が行われるニューラルネットワークが適用されてもよい。より具体的な例として、CNNがある。以下の説明では、ニューラルネットワークの具体例としてCNNを適用した場合の実施形態について説明する。
【0017】
学習画像記憶部11は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。学習画像記憶部11は、学習画像のデータを記憶する。学習画像データは、いわゆる教師付き学習に用いられる教師データである。学習画像データは、例えば学習に用いられる画像データと、その画像データにおける正解を示す正解ラベルとの組合せを含む。学習画像に含まれる画像データは、歪みが生じていない画像であることが望ましい。
【0018】
正解ラベルがどのような情報であるかは、どのような学習処理が行われるかによって定まる。例えば、画像データに写っている被写体の種別を判定するための学習処理である場合には、画像データに写っている被写体の種別の正解を示す正解ラベルが与えられる。このような場合、正解ラベルは、例えば被写体の種別を示すベクトル列として与えられてもよい。
【0019】
例えば、画像データに写っている被写体の中から所定の物体を検出するための学習処理である場合には、画像データに写っている特定の物体の位置の正解を示す正解ラベルが与えられる。このような場合、正解ラベルは、例えば特定の物体の位置を示す配列として与えられてもよい。
【0020】
例えば、画像データの領域分割を行うための学習処理である場合には、画像データの各画素がどの領域に属するかの正解を示す正解ラベルが与えられる。このような場合、正解ラベルは、例えば各画素が属する領域を示す配列として与えられてもよい。
【0021】
パラメータ記憶部12は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。パラメータ記憶部12は、予め実行されたCNNに基づく学習処理によって得られた学習済みモデルを示す画像処理パラメータを記憶する。パラメータ記憶部12に記憶される画像処理パラメータに係る学習済みモデルは、学習画像記憶部11において記憶される教師データを用いて行われる学習処理と同種の学習処理によって得られる。例えば、パラメータ記憶部12に記憶される画学習済みモデルが、画像データに写っている被写体の種別を判定するための学習済みモデルである場合には、学習画像記憶部11に記憶される教師データは、画像データに写っている被写体の種別を判定するための学習処理に用いられる教師データである。
【0022】
制御部13は、CPU(Central Processing Unit)等のプロセッサーとメモリーとを用いて構成される。制御部13は、プロセッサーが学習プログラムを実行することによって、歪み画像生成部131、原画像処理部132、歪み画像処理部133、中間類似ロス算出部134及び最適化部135として機能する。なお、制御部13の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されても良い。上記の学習プログラムは、コンピューター読み取り可能な記録媒体に記録されても良い。コンピューター読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM、半導体記憶装置(例えばSSD:Solid State Drive)等の可搬媒体、コンピューターシステムに内蔵されるハードディスクや半導体記憶装置等の記憶装置である。上記の学習プログラムは、電気通信回線を介して送信されてもよい。
【0023】
まず、各機能部の処理の概略について説明する。歪み画像生成部131は、学習画像記憶部11から学習画像データを取得し、歪み画像処理を行うことによって歪み画像を生成する。歪み画像処理とは、何らかの歪みを画像に対して与える処理である。歪み画像処理は、例えばブラーを付与する処理であってもよいし、ノイズを付与する処理であってもよいし、JPEGの画像を生成する過程で行われる圧縮歪みを付与する処理であってもよい。
【0024】
原画像処理部132は、学習画像記憶部11から学習画像データを取得する。また、原画像処理部132は、パラメータ記憶部12から画像処理パラメータを取得する。原画像処理部132は、取得された学習画像データに対して、画像処理パラメータにしたがって画像処理を行う。原画像処理部132が行う画像処理は、画像処理パラメータ(学習済みモデル)にしたがって行われる推論処理である。原画像処理部132は、画像処理パラメータにしたがった推論処理の中間処理結果を取得する。中間処理結果とは、例えば画像処理を行うNNの場合、いずれかの中間層の出力である。CNNの場合、画像を構成する特徴の一部の特徴への反応が中間層の出力として得られる場合が多い。例えば、中間処理結果は、出力層における出力ではなく、いずれかの隠れ層における出力(高次のニューロンの発火状態)を示してもよい。
【0025】
歪み画像処理部133は、学習画像記憶部11から学習画像データを取得する。このとき、歪み画像処理部133は、画像データを取得せずに、正解ラベルのみを取得してもよい。また、歪み画像処理部133は、パラメータ記憶部12から画像処理パラメータを取得する。歪み画像処理部133は、歪み画像生成部131によって取得された歪み画像に対して画像処理を行う。歪み画像処理部133が行う画像処理は、処理の対象となる画像が異なる点を除けば、原画像処理部132と同様の処理である。すなわち、原画像処理部132の処理対象となる画像は学習画像記憶部11に記憶されている画像であるのに対し、歪み画像処理部133の処理対象となる画像は歪み画像生成部131によって同じ画像に対して歪み画像処理を行うことによって生成された歪み画像である。歪み画像処理部133は、歪み画像に対する画像処理を行うことによって中間処理結果を取得する。さらに、歪み画像処理部133は、画像処理によって得られる画像処理結果と正解ラベルとの差分を最小化するための画像処理ロスを算出する。
【0026】
中間類似ロス算出部134は、原画像処理部132及び歪み画像処理部133から、それぞれで得られた中間処理結果を取得する。中間類似ロス算出部134は、得られた中間処理結果を用いて、中間類似ロスを算出する。中間類似ロスは、CNNの学習処理において誤差情報が伝播されない問題を解消するために用いられる情報である。中間類似ロスは、中間処理結果のニューロンの発火パターンを一致させるような情報である。中間類似ロスの具体例としては、原画像に対する画像処理で得られる中間処理結果O_cleanの発火パターン1(O_clean)を教師とした、歪み画像の中間処理結果O_distのsigmoid cross-entropy損失などが挙げられる。例えば、以下の式1で表されるcross-entropy Lが算出されてもよい。
【0027】
L = -t log y - (1-t) log (1-y) ・・・(式1)
tは、1(O_clean)の一要素である。yは、sigmoid(O_dist)の一要素である。なお、中間類似ロスはこのような具体例に限定される必要は無い。中間類似ロスは、中間処理結果の発火パターンを一致させる損失であれば、どのような情報であってもよい。
【0028】
最適化部135は、歪み画像処理部133によって生成される画像処理ロスと、中間類似ロス算出部134によって生成される中間類似ロスと、を用いて、歪み画像処理部133から出力された画像処理パラメータを最適化の枠組みで更新する。更新された画像処理パラメータ(更新後画像処理パラメータ)は、学習装置10における学習処理が継続される場合には歪み画像処理部133に入力される。一方、学習装置10における学習処理が終了する場合には、更新後画像処理パラメータは学習後パラメータとして出力される。
【0029】
以下、制御部13の処理の流れについて説明する。
図2は、制御部13の処理の全体の流れの具体例を示す図である。まず、原画像処理部132及び歪み画像処理部133が、所定の画像処理に対する画像処理パラメータをパラメータ記憶部12から取得する(ステップS001)。歪み画像生成部131は、処理の対象となる学習画像データを学習画像記憶部11から取得し、取得された画像に対して歪み画像処理を実行する(ステップS002)。原画像処理部132は、学習画像記憶部11から読み出された画像であって歪み画像処理が行われていない画像(原画像)に対し学習処理を行うことで、中間処理結果を取得する(ステップS003)。歪み画像処理部133は、歪み画像処理が行われた画像(歪み画像)に対し学習処理を行うことで中間処理結果を取得し、さらに画像処理ロスを取得する(ステップS004)。中間類似ロス算出部134は、同一の学習画像データにおける原画像の中間処理結果と歪み画像の中間処理結果とを用いて、中間類似ロスを算出する(ステップS005)。最適化部135は、中間類似ロス及び画像処理ロスを用いて、画像処理パラメータを更新する(ステップS006)。
【0030】
学習処理が終了しない場合には(ステップS007-NO)、最適化部135は、更新後の画像処理パラメータを歪み画像処理部133に出力する(ステップ008)。歪み画像処理部133が行う次の処理では、更新後の画像処理パラメータが用いられる。学習処理が終了する場合には(ステップS007-YES)、最適化部135は、更新後の画像処理パラメータを学習後パラメータとして出力する(ステップ009)。
【0031】
図3は、歪み画像生成部131の処理の具体例を示すフローチャートである。まず、歪み画像生成部131は、歪みなし、ノイズ、ブラーを含む歪み集合Dから、歪みdを選択する(ステップS101)。この選択は、ランダムであってもよいし、所定の順番であってもよい。歪み集合Dは、他の歪みを含んでもよい。例えば、JPEGの圧縮歪みのような歪みが含まれてもよい。選択された歪みdが“歪みなし”であれば(ステップS102-歪みなし)、歪み画像生成部131は学習画像をそのまま歪み画像として出力する(ステップS103)。
【0032】
選択された歪みdが“ノイズ”であれば(ステップS102-ノイズ)、歪み画像生成部131は、ノイズ強度を決定するパラメータpを選択する(ステップS104)。パラメータpは、例えば8bit深度の画像に対しては10から50程度の値であってもよい。撮像対象として想定されるノイズ強度に応じてパラメータpが選択されてもよい。次に、歪み画像生成部131は、パラメータpを標準偏差とするガウス分布から得られたノイズを学習画像に対して重畳することで歪み画像を生成する(ステップS105)。なお、撮像対象として想定されるノイズの種類に応じて、重畳されるノイズの種別が決定されてもよい。例えば、ごま塩ノイズのようなノイズが選択されてもよい。歪み画像生成部131は、生成された歪み画像を出力する(ステップS106)。
【0033】
選択された歪みdが“ブラー”であれば(ステップS102-ブラー)、歪み画像生成部131は、ブラー処理の内容を選択する(ステップS107)。例えば、歪み画像生成部131は、ブラー強度を決定するパラメータpと、ブラーカーネルのサイズkを選択する。パラメータpは、例えば1から5程度の値であってもよい。サイズkは、例えばk=4*p-1のような式によって算出されてもよい。これらの値は、撮像対象として想定されるブラー強度に応じて選択されてもよい。歪み画像生成部131は、パラメータpを標準偏差とするk*kサイズのガウシアンフィルタを作成し学習画像に対して畳み込む(ステップS108)。なお、撮像対象として想定されるブラーの種類に応じて、例えばモーションブラーのような異なるブラーが重畳されてもよい。歪み画像生成部131は、得られたブラー画像を歪み画像として出力する(ステップS109)。
【0034】
図4は、原画像処理部132の処理の具体例を示すフローチャートである。まず、原画像処理部132は、画像処理パラメータをパラメータ記憶部12から取得する(ステップS201)。原画像処理部132は、学習画像記憶部11から学習画像を取得する(ステップS202)。原画像処理部132は、取得された学習画像に対して、画像処理パラメータに基づく画像処理を実行する(ステップS203)。原画像処理部132は、画像処理の中間処理結果を中間類似ロス算出部134へ出力する(ステップS204)。
【0035】
図5は、歪み画像処理部133の処理の具体例を示すフローチャートである。まず、歪み画像処理部133は、画像処理パラメータをパラメータ記憶部12から取得する(ステップS301)。歪み画像処理部133は、学習画像記憶部11から正解ラベルを取得する(ステップS302)。歪み画像処理部133は、歪み画像生成部131によって生成された歪み画像を取得する(ステップS303)。
【0036】
歪み画像処理部133は、取得された歪み画像に対し、画像処理パラメータに基づく画像処理を実行する(ステップ304)。歪み画像処理部133は、ステップS304の画像処理の実行によって取得された中間処理結果を中間類似ロス算出部134に出力する(ステップS305)。歪み画像処理部133は、画像処理結果xと正解ラベルyとの差分を小さくするような(例えば最小化するような)画像処理ロスを算出する(ステップS306)。画像処理ロスとして、例えば交差エントロピーL_dist(x',y)=-Σy_q log(x'_q)が用いられてもよいし、平均事情誤差が用いられてもよいし、他の目的関数が用いられてもよい。たとえば、実行される画像処理において適切なものであればどのような関数が用いられてもよい。歪み画像処理部133は、算出された画像処理ロスを最適化部135に出力する(ステップS307)。
【0037】
図6は、中間類似ロス算出部134の処理の具体例を示すフローチャートである。まず、中間類似ロス算出部134は、原画像処理部132及び歪み画像処理部133からそれぞれの中間処理結果を取得する(ステップS401)。中間類似ロス算出部134は、歪み画像の中間処理結果と原画像の中間処理結果とが類似するような中間類似ロスを算出する(ステップS402)。中間類似ロスは、誤差情報が伝播されない問題を解消するために用いられるものである。中間類似ロスには、中間処理結果のニューロンの発火パターンを一致させるような制約がかけられている。中間類似ロス算出部134は、算出された中間類似ロスを最適化部135へ出力する(ステップS403)。
【0038】
図7は、最適化部135の処理の具体例を示すフローチャートである。まず、最適化部135は、算出された画像処理ロスを取得する(ステップS501)。最適化部135は、算出された中間類似ロスを取得する(ステップS502)。最適化部135は、歪み画像処理部133から画像処理パラメータを取得する(ステップS503)。最適化部135は、画像処理ロスと中間類似ロスとに基づいて、画像処理パラメータを更新する(ステップS504)。例えば、最適化部135は、画像処理ロスと中間類似ロスとを結合荷重λで線形結合することによって、画像処理パラメータを更新してもよい。この結合荷重λは、例えば1:0.1程度の比率であってもよい。結合荷重λは、損失関数全体の推移を見ながら人手でチューニングされてもよい。画像処理パラメータの更新には、例えばSGDやAdam等の確率的勾配降下法が用いられてもよい。画像処理パラメータの更新には、ニュートン法等の他の最適化アルゴリズムが用いられてもよい。
【0039】
最適化部135は、この繰り返しにおいて学習が終了するか否か判定する(ステップS505)。学習の終了判定は、どのような基準に基づいて行われてもよい。例えば、学習回数(繰り返し回数)が予め固定値として定められてもよい。例えば、損失関数に基づいた終了の条件が予め定められてもよい。学習が終了しない場合(ステップS505-NO)、最適化部135は、歪み画像処理部133に対し、更新後の画像処理パラメータを出力する(ステップS506)。学習が終了する場合(ステップS505-YES)、最適化部135は、更新後の画像処理パラメータを学習後パラメータとして出力する(ステップS507)。
【0040】
このような処理により、歪み画像処理が施されていない画像(原画像)に対するCNNの中間処理結果O_cleanと、歪み画像処理が施された画像(歪み画像)に対するCNNの中間処理結果O_distとにおいて、それぞれの発火パターン1(O_clean)及び1(O_dist)とが一致するような学習処理が行われる。具体的には、1(O_clean)とO_distとのsigmoid cross-entropyで学習がなされてもよい。すなわち、O_distの反応をsigmoidで変換した際に、1(O_clean)と同じとなるように学習処理が進められる。そのため、原画像に対する反応と歪み画像に対する反応とがより近い反応になる。そのため、このような学習処理によって得られた学習結果(学習後パラメータ)を用いた学習処理では、歪みが生じた画像が入力されたとしても、歪みが生じていない場合に得られる推定結果とより近い値が得られる。
【0041】
また、上述した処理により、隠れ層のニューロンが画像内のテクスチャや複数の境界領域が混合したような特徴に反応する事が期待される。そのような高次のニューロンに対して歪んだ画像と原画像とで同様の反応を示すように学習が行われる。これによって、高次のニューロンが反応する複雑な特徴が歪んでしまった場合においても、頑健性を示し、精度よく処理を行うことが可能となる。
【0042】
[第2実施形態]
図8は、本発明の第2実施形態の機能構成例を示す図である。学習装置20は、パーソナルコンピューターやサーバー装置等の情報処理装置を用いて構成される。学習装置20は、学習画像記憶部11、パラメータ記憶部12及び制御部23を備える。制御部23は、歪み画像生成部231、原画像処理部232、歪み画像処理部233、中間類似ロス算出部234、最適化部235及び重み調整部236として機能する。第2実施形態における歪み画像生成部231、原画像処理部232、歪み画像処理部233、中間類似ロス算出部234及び最適化部235は、それぞれ第1実施形態における歪み画像生成部131、原画像処理部132、歪み画像処理部133、中間類似ロス算出部134及び最適化部135と同様の処理を行う。
【0043】
最適化部235で最適化学習に用いられる中間類似ロスは、画像処理ロスの低減に寄与する事が期待される。しかし、必ずしも画像処理ロスを低減させるとは言えない場合も存在する。例えば、ノイズやブラー等の歪みの影響が非常に大きい場合には、歪みなし画像を処理した際の反応パターンと一致させるよりも、反応パターンは一致させずに新たな学習パターンとした方が合理的な可能性がある。そのため、歪みが重度になると想定される場合は、最適化学習の際に画像処理ロスと中間類似ロスとの重みを適切に調整する必要がある。この重みの調整を、例えば以下の参考文献に記載の手法を基に行う。
【0044】
参考文献:Y. Du, W. M. Czarnecki, S. M. Jayakumar, R. Pascanu, B. Lakshminarayanan, “Adapting Auxiliary Losses Using Gradient Similarity”, 2018.
【0045】
重み調整部236は、画像処理ロスと中間類似ロスとの重みを算出する。重み調整部236は、調整重みを最適化部235に出力する。最適化部235では、ステップS504における最適化学習の際に、調整重みを結合荷重λとして学習する。
【0046】
図9は、重み調整部236の処理の具体例を示すフローチャートである。重み調整部236は、算出された画像処理ロスを取得する(ステップS601)。重み調整部236は、算出された中間類似ロスを取得する(ステップS602)。重み調整部236は、画像処理パラメータを取得する(ステップS603)。重み調整部236は、画像処理ロスと中間類似ロスとをそれぞれ画像処理パラメータの下で逆伝播することで勾配を得る(ステップS604)。このとき、一般的にCNNの勾配情報の獲得には誤差逆伝播法が用いられるが、適切な勾配獲得手法であれば他の手法であってもよい。重み調整部236は、獲得された2つの勾配の類似度を算出する(ステップS605)。類似度の算出にはコサイン類似度が用いられてもよいし、他の類似度指標が用いられてもよい。重み調整部236は、算出された勾配の類似度を調整重みとして最適化部235へ出力する。
【0047】
このような処理が行われることによって、ノイズやブラー等の歪みの影響が非常に大きい場合にも、より適切な処理が行われ、画像処理の精度を向上させることが可能となる。
【0048】
[第3実施形態]
図10は、本発明の第3実施形態の機能構成例を示す図である。画像処理装置30は、パーソナルコンピューターやサーバー装置等の情報処理装置を用いて構成される。画像処理装置30は、第1実施形態又は第2実施形態の学習装置によって生成された学習後パラメータを用いて画像処理を行う装置である。画像処理装置30は、対象画像記憶部31、パラメータ記憶部32及び制御部33を備える。
【0049】
対象画像記憶部31は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。対象画像記憶部31は、画像処理装置30における画像処理の対象となる画像(対象画像)のデータを記憶する。
【0050】
パラメータ記憶部32は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。パラメータ記憶部32は、学習装置10又は学習装置20によって予め実行された学習処理によって得られた学習済みモデルを示す画像処理パラメータ(学習後パラメータ)を記憶する。
【0051】
制御部33は、CPU等のプロセッサーとメモリーとを用いて構成される。制御部33は、プロセッサーが画像処理プログラムを実行することによって、画像処理部331として機能する。なお、制御部33の各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されても良い。上記の画像処理プログラムは、コンピューター読み取り可能な記録媒体に記録されても良い。コンピューター読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM、半導体記憶装置(例えばSSD)等の可搬媒体、コンピューターシステムに内蔵されるハードディスクや半導体記憶装置等の記憶装置である。上記の画像処理プログラムは、電気通信回線を介して送信されてもよい。
【0052】
画像処理部331は、パラメータ記憶部32に記憶される画像処理パラメータ(学習後パラメータ)に基づいて、対象画像記憶部31に記憶されている対象画像に対して画像処理を行う。画像処理部331が処理の対象とする対象画像は、必ずしも対象画像記憶部31に記憶されているものに限定される必要は無い。例えば、画像処理部331は、他の情報処理装置から画像処理の要求とともに送信されてきた対象画像に対して画像処理を実行してもよい。
【0053】
画像処理部331は、画像処理の結果を取得すると、所定の装置に対して画像処理の結果を出力する。
【0054】
このように構成された第3実施形態の画像処理装置によれば、第1実施形態又は第2実施形態の学習装置によって得られた学習後パラメータを用いて画像処理を行うことで、歪み画像に頑強な画像処理を行うことが可能となる。
【0055】
正解ラベルがどのような情報であるかは、どのような学習処理が行われるかによって定まる。例えば、画像データに写っている被写体の種別を判定するための学習処理である場合には、画像データに写っている被写体の種別の正解を示す正解ラベルが与えられる。このような場合、正解ラベルは、例えば被写体の種別を示すベクトル列として与えられてもよい。
【0056】
例えば、画像データに写っている被写体の中から所定の物体を検出するための学習処理である場合には、画像データに写っている特定の物体の位置の正解を示す正解ラベルが与えられる。このような場合、正解ラベルは、例えば特定の物体の位置を示す配列として与えられてもよい。
【0057】
例えば、画像データの領域分割を行うための学習処理である場合には、画像データの各画素がどの領域に属するかの正解を示す正解ラベルが与えられる。このような場合、正解ラベルは、例えば各画素が属する領域を示す配列として与えられてもよい。
【0058】
学習装置10は、ネットワークを介して通信可能に接続された複数台の情報処理装置を用いて実装されてもよい。この場合、学習装置10が備える各機能部は、複数の情報処理装置に分散して実装されてもよい。例えば、学習画像記憶部11及びパラメータ記憶部12と制御部13とが異なる情報処理装置に実装されてもよい。また、制御部13に実装される機能も複数の情報処理装置に分散して実装されてもよい。
【0059】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0060】
10…学習装置, 11…学習画像記憶部, 12…パラメータ記憶部, 13,23…制御部, 131,231…歪み画像生成部, 132,232…原画像処理部, 133,233…歪み画像処理部, 134,234…中間類似ロス算出部, 135,235…最適化部, 236…重み調整部