(57)【要約】【課題】精度の低下とデータ量の増大を抑制して、ニューラルネットワークのノイズに対するロバスト性を向上させることが可能な画像処理方法を提供する。【解決手段】画像処理方法は、入力画像と、入力画像のノイズ量を表すノイズマップとを含む入力データをニューラルネットワークへ入力する第１の工程と、入力データに対して認識または回帰のタスクを実行する第２の工程とを有する。【選択図】図１
2020144488.tif 000002
【特許請求の範囲】
【請求項１】
入力画像と、前記入力画像のノイズ量を表すノイズマップと、を含む入力データを取得する第１の工程と、
前記入力データをニューラルネットワークへ入力し、認識または回帰のタスクを実行する第２の工程と、を有することを特徴とする画像処理方法。
【請求項２】
前記ノイズマップは、前記入力画像に対応するオプティカルブラック領域に基づくことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記入力画像に対応するオプティカルブラック領域を取得する工程と、
前記オプティカルブラック領域の少なくとも一部である部分オプティカルブラック画像を１つ以上抽出する工程と、
前記入力画像の画素数と前記部分オプティカルブラック画像とに基づいて、前記ノイズマップを生成する工程と、を更に有することを特徴とする請求項１または２に記載の画像処理方法。
【請求項４】
前記ノイズマップは、前記部分オプティカルブラック画像を配列することにより生成されることを特徴とする請求項３に記載の画像処理方法。
【請求項５】
前記入力画像に対応するオプティカルブラック領域を取得する工程と、
前記オプティカルブラック領域における信号値の散布度を算出する工程と、
前記散布度に基づいて前記ノイズマップを生成する工程と、を更に有する請求項１乃至４のいずれか一項に記載の画像処理方法。
【請求項６】
前記入力画像と前記オプティカルブラック領域は、同一の撮像画像から抽出されることを特徴とする請求項３乃至５のいずれか一項に記載の画像処理方法。
【請求項７】
前記入力画像と前記ノイズマップの１つのチャンネルにおける画素数は、互いに等しいことを特徴とする請求項１乃至６のいずれか１項に記載の画像処理方法。
【請求項８】
前記入力データは、前記入力画像と前記ノイズマップをチャンネル方向に連結したデータを含むことを特徴とする請求項１乃至７のいずれか一項に記載の画像処理方法。
【請求項９】
前記入力データの信号値から黒レベルを減算した後、前記入力データを前記ニューラルネットワークへ入力することを特徴とする請求項１乃至８のいずれか一項に記載の画像処理方法。
【請求項１０】
前記タスクは、画像の高解像化または高コントラスト化であることを特徴とする請求項１乃至９のいずれか一項に記載の画像処理方法。
【請求項１１】
入力画像と、前記入力画像のノイズ量を表すノイズマップと、を含む入力データを取得する取得手段と、
前記入力データをニューラルネットワークへ入力し、認識または回帰のタスクを実行する処理手段と、を有することを特徴とする画像処理装置。
【請求項１２】
前記ニューラルネットワークで使用するウエイトの情報を記憶する手段を更に有することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
請求項１乃至１０のいずれか１項に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
第１の装置と、前記第１の装置と通信可能な第２の装置を含む画像処理システムであって、
前記第１の装置は、撮像画像に対する処理を前記第２の装置に実行させるための要求を送信する送信手段を有し、
前記第２の装置は、
前記送信手段によって送信された前記要求を受信する受信手段と、
前記撮像画像と、前記撮像画像のノイズ量を表すノイズマップと、を含む入力データを取得する取得手段と、
前記入力データをニューラルネットワークへ入力し、認識または回帰のタスクを実行する処理手段と、
前記タスクの結果を送信する送信手段と、
を有することを特徴とする画像処理システム。
【請求項１５】
訓練画像および前記訓練画像のノイズ量を表すノイズマップを含む入力データと、正解データとを取得する工程と、
前記入力データと前記正解データとを用いて、認識または回帰のタスクを実行するためのニューラルネットワークを学習する工程と、を有することを特徴とする画像処理方法。
【請求項１６】
請求項１５に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１７】
訓練画像および前記訓練画像のノイズ量を表すノイズマップを含む入力データと、正解データとを取得する工程と、
前記入力データと前記正解データとを用いて、認識または回帰のタスクを実行するためのニューラルネットワークを学習する工程と、を有することを特徴とする学習済みモデルの製造方法。
【請求項１８】
訓練画像および前記訓練画像のノイズ量を表すノイズマップを含む入力データと、正解データとを取得する取得部と、
前記入力データと前記正解データとを用いて、認識または回帰のタスクを実行するためのニューラルネットワークを学習する学習部と、を有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークのノイズに対するロバスト性を向上させることが可能な画像処理方法に関する。
【背景技術】
【０００２】
特許文献１には、ニューラルネットワークを用いて、画像中における認識対象の位置を高精度に判定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１１０２３２号公報
【非特許文献】
【０００４】
【非特許文献１】Ｏ．  Ｒｏｎｎｅｂｅｒｇｅｒ，  Ｐ．  Ｆｉｓｃｈｅｒ，  ａｎｄ  Ｔ．  Ｂｒｏｘ，  “Ｕ−ｎｅｔ：  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｔｗｏｒｋｓ  ｆｏｒ  ｂｉｏｍｅｄｉｃａｌ  ｉｍａｇｅ  ｓｅｇｍｅｎｔａｔｉｏｎ，”  ｉｎ  ＭＩＣＣＡＩ，  ２０１５．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に開示された方法は、画像のＳＮ比が低い場合に判定の精度が低下する。撮像素子の性能や撮像時のＩＳＯ感度によって画像のノイズは変化するため、ニューラルネットワークには様々な強さのノイズの画像が入力され得る。ＳＮ比が低いと、ノイズの影響によって被写体の特徴量のみを抽出することができないため、認識精度が低下する。
【０００６】
ニューラルネットワークのノイズに対するロバストネスを向上させる方法として、以下の２つの方法が考えられる。第１の方法は、ニューラルネットワークの学習データに、様々なノイズ量の画像を含めることである。しかし、この方法では、ノイズに対するロバスト性が向上する代わりに、精度の最大値が低下するおそれがある。第２の方法は、異なるノイズ量ごとにニューラルネットワークを学習する方法である。しかし、この方法では、ノイズ量ごとに学習した結果を記憶する必要があるため、データ量が増大するおそれがある。
【０００７】
そこで本発明は、精度の低下とデータ量の増大を抑制して、ニューラルネットワークのノイズに対するロバスト性を向上させることが可能な画像処理方法等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面としての画像処理方法は、入力画像と、前記入力画像のノイズ量を表すノイズマップと、を含む入力データをニューラルネットワークへ入力する第１の工程と、前記入力データに対して認識または回帰のタスクを実行する第２の工程とを有する。
【０００９】
本発明の他の側面としての画像処理装置は、入力画像と、前記入力画像のノイズ量を表すノイズマップと、を含む入力データを取得する取得手段と、前記入力データをニューラルネットワークへ入力し、認識または回帰のタスクを実行する処理手段とを有する。
【００１０】
本発明の他の側面としてのプログラムは、前記画像処理方法をコンピュータに実行させる。
【００１１】
本発明の他の側面としての画像処理システムは、第１の装置と、前記第１の装置と通信可能な第２の装置を含む画像処理システムであって、前記第１の装置は、撮像画像に対する処理を前記第２の装置に実行させるための要求を送信する送信手段を有し、前記第２の装置は、前記送信手段によって送信された前記要求を受信する受信手段と、前記撮像画像と、前記撮像画像のノイズ量を表すノイズマップとを含む入力データを取得する取得手段と、前記入力データをニューラルネットワークへ入力し、認識または回帰のタスクを実行する処理手段と、前記タスクの結果を送信する送信手段とを有する。
【００１２】
本発明の他の側面としての学習済みモデルの製造方法は、訓練画像および前記訓練画像のノイズ量を表すノイズマップを含む入力データと、正解データとを取得する工程と、前記入力データと前記正解データとを用いて、認識または回帰のタスクを実行するためのニューラルネットワークを学習する工程とを有する。
【００１３】
本発明の他の目的及び特徴は、以下の実施形態において説明される。
【発明の効果】
【００１４】
本発明によれば、精度の低下とデータ量の増大を抑制して、ニューラルネットワークのノイズに対するロバスト性を向上させることが可能な画像処理方法等を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】実施例１におけるニューラルネットワークの構成を示す図である。
【図２】実施例１における画像処理システムのブロック図である。
【図３】実施例１における画像処理システムの外観図である。
【図４】実施例１におけるウエイトの学習に関するフローチャートである。
【図５】実施例１における訓練画像と正解クラスマップの例を示す図である。
【図６】実施例１における推定クラスマップの生成に関するフローチャートである。
【図７】実施例２における画像処理システムのブロック図である。
【図８】実施例２における画像処理システムの外観図である。
【図９】実施例２におけるウエイトの学習に関するフローチャートである。
【図１０】実施例２における入力画像とノイズ表現画像の生成に関する図である。
【図１１】実施例２におけるニューラルネットワークの構成を示す図である。
【図１２】実施例２における推定画像の生成に関するフローチャートである。
【図１３】実施例３における画像処理システムのブロック図である。
【図１４】実施例３における出力画像の生成に関するフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照符号を付し、重複する説明は省略する。
【００１７】
実施例の具体的な説明を行う前に、本発明の要旨を説明する。本発明は、ニューラルネットワークを用いた認識または回帰のタスクにおいて、ノイズに対するロバスト性を向上させる。ここで、ニューラルネットワークに入力される入力データをｘ（ｄ次元のベクトル。ｄは自然数）とすると、認識とはベクトルｘに対応するクラスｙを求めるタスクである。例えば、画像中の被写体を人、犬、車などに分類するタスクや、顔画像から笑顔、泣き顔などの表情を認識するタスクなどが挙げられる。クラスｙは一般に離散変数であり、セグメンテーションマップの生成などではベクトルにもなり得る。これに対して、回帰は、ベクトルｘに対応する連続変数ｙを求めるタスクである。例えば、ノイズのある画像からノイズのない画像を推定するタスクや、ダウンサンプリングされた画像からダウンサンプリング前の高解像な画像を推定するタスクなどが挙げられる。
【００１８】
以下に述べる実施例では、ノイズのロバスト性を向上させるため、入力データとして、入力画像と、入力画像に対応するノイズ表現画像（ノイズマップ、または、ノイズの二次元分布情報）を用いる。ノイズ表現画像は、入力画像内のノイズ量を表す画像である。ノイズ表現画像は、入力画像に対応するオプティカルブラックに基づく画像、または入力画像を撮像した撮像素子のノイズ特性に基づく画像である。ノイズ表現画像と入力画像と合わせて入力することで、複数のノイズ量を混合した学習を行っても、ニューラルネットワークは入力画像のノイズ量を特定することができ、精度の低下を抑制しつつ、ノイズに対するロバスト性を向上することが可能である。
【００１９】
なお以下では、ニューラルネットワークのウエイトを学習する段階のことを学習フェーズとし、学習済みのウエイトで認識または回帰を行う段階のことを推定フェーズとする。
【実施例１】
【００２０】
まず、本発明の実施例１における画像処理システムに関して説明する。実施例１においてニューラルネットワークは、画像中の人領域を検出する認識タスク（人か否かのセグメンテーション）を実行する。ただし、これに限定されず、その他の認識または回帰タスクにも同様に適用が可能である。
【００２１】
図２は、本実施例における画像処理システム１００のブロック図である。図３は、画像処理システム１００の外観図である。画像処理システム１００は、学習装置１０１、撮像装置１０２、および、ネットワーク１０３を有する。学習装置１０１は、学習装置１０１は、記憶部１１１、取得部１１２、検出部１１３、および、更新部１１４を有し、人領域の検出を行うニューラルネットワークのウエイトを学習する。この学習の詳細に関しては、後述する。学習装置１０１で学習されたウエイトの情報は、記憶部１１１に記憶される。撮像装置１０２は、撮像画像の取得とニューラルネットワークによる人領域の検出を実行する。
【００２２】
撮像装置１０２は、光学系１２１と撮像素子１２２を有する。光学系１２１は、被写体空間から撮像装置１０２へ入射した光を集光する。撮像素子１２２は、光学系１２１を介して形成された光学像（被写体像）を受光して（光電変換して）撮像画像を取得する。撮像素子１２２は、例えばＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）センサや、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）センサなどである。
【００２３】
画像処理部１２３は、取得部１２３ａと検出部１２３ｂを有し、撮像画像の少なくとも一部を入力画像として、人領域の検出を実行する。この際、記憶部１２４に記憶されたウエイトの情報が用いられる。ウエイトの情報は、事前に有線または無線のネットワーク１０３を介して学習装置１０１から読み込んで、記憶部１２４に記憶されている。記憶されるウエイトの情報は、ウエイトの数値そのものでもよいし、符号化された形式でもよい。人領域の検出処理に関する詳細は後述する。画像処理部１２３は、人領域とその他の領域で異なる処理を実行し、出力画像を生成する。例えば、人領域以外にぼけを付加することで、ぼけ味のあるポートレート画像の生成などを行う。出力画像は、記録媒体１２５に保存される。或いは、撮像画像をそのまま記録媒体１２５に保存し、その後、画像処理部１２３が記録媒体１２５から撮像画像を読み込んで、人領域の検出を行ってもよい。記録媒体１２５に保存された出力画像は、ユーザの指示に従って表示部１２６に表示される。一連の動作は、システムコントローラ１２７によって制御される。
【００２４】
次に、図４を参照して、本実施例における学習装置１０１で実行されるウエイトの学習（学習済みモデルの製造）に関して説明する。図４は、ウエイトの学習に関するフローチャートである。図４の各ステップは、主に、学習装置１０１の取得部１１２、検出部１１３、または、更新部１１４により実行される。
【００２５】
まずステップＳ１０１において、取得部１１２は、１組以上の訓練画像と正解クラスマップ（正解のセグメンテーションマップ、正解データとも言う）、および、ノイズ表現画像を取得する。訓練画像は、ニューラルネットワークの学習フェーズにおける入力画像である。
【００２６】
図５は、訓練画像と正解クラスマップの例である。図５（Ａ）は訓練画像の例を示し、図５（Ｂ）はそれに対応する正解クラスマップを示す。図５（Ｂ）中の白が人領域を表すクラスであり、グレーがそれ以外の領域を表すクラスである。本実施例において、ノイズ表現画像は、訓練画像に存在するノイズの標準偏差を信号値とする画像である。ただし本発明は、標準偏差に限定されるものではなく、ノイズ量を表現する散布度であれば、例えば分散などを用いても構わない。または、散布度の代わりにＩＳＯ感度の値を用いてもよい。
【００２７】
推定フェーズにおいて未知の撮像シーンやノイズ量の画像に対しても、安定して人領域を検出できるように、学習フェーズでは様々な撮像シーンとノイズ量の訓練画像を複数使用する。ノイズ量の異なる複数の訓練画像を用意する第１の方法として、様々な撮像シーンの画像に対してシミュレーションでノイズを付与する方法が挙げられる。この場合、付与するために設定したノイズの標準偏差を取得し、各要素（画素）に標準偏差の値を持つノイズ表現画像を取得する。ノイズのうちショットノイズの成分は光量に依存するため、信号値（光量）の大きさによって、ノイズの標準偏差は変化する。撮像素子１２２のノイズ特性が既知であれば、学習と推定の両フェーズにおいて、光量に依存した標準偏差でノイズ表現画像を取得することが可能である。具体的には、入力画像または訓練画像の各画素における信号値を光量に換算し（必要であれば逆ガンマ補正などを実行する）、ノイズ表現画像の各画素に対して換算した光量に基づくノイズの標準偏差を格納する。ただし、入力画像と訓練画像には既にノイズが存在しているため、真の信号から算出した標準偏差からは少しずれた値となる。撮像素子１２２のノイズ特性が未知の場合、推定フェーズではオプティカルブラック領域（黒レベルの領域）からノイズの標準偏差を算出する。このため、学習フェーズのノイズ表現画像は、光量ゼロにおけるノイズの標準偏差を用いて取得する。
【００２８】
第２の方法は、様々な撮像シーンを、ＩＳＯ感度を変更して撮像するか、異なる感度の撮像素子で撮像する方法である。この場合、撮像にノイズ特性が既知の撮像素子を用い、その既知のノイズ特性から訓練画像のノイズの標準偏差を取得する。或いは、訓練画像を撮像した際の撮像素子のオプティカルブラック領域の信号値から、光量ゼロに対するノイズの標準偏差を求める。ノイズ表現画像は、第１の方法と同様に、各画素の信号値が標準偏差の画像である。なお、訓練画像は、推定フェーズの入力画像と同じ形式である。推定フェーズの入力画像が未現像のＲＡＷ画像であれば、訓練画像も同様に未現像のＲＡＷ画像である。推定フェーズの入力画像が現像後の画像であれば、訓練画像も同様である。なお、推定フェーズの入力画像と訓練画像の画素数は、必ずしも一致しなくてよい。
【００２９】
続いて、図４のステップＳ１０２において、検出部（学習部）１１３は、訓練画像とノイズ表現画像をニューラルネットワークへ入力し、推定クラスマップを生成する。なお本実施例において、ニューラルネットワークは、図１に示されるＵ−Ｎｅｔ（詳細は非特許文献１を参照）を使用するが、これに限定されるものではない。
【００３０】
入力データ２０１は、訓練画像とノイズ表現画像をチャンネル方向に連結（ｃｏｎｃａｔｅｎａｔｉｏｎ）したデータである。訓練画像は、ＲＧＢ（Ｒｅｄ，Ｇｒｅｅｎ，Ｂｌｕｅ）の複数チャンネルを有していてもよい。ノイズ表現画像は、１チャンネルだけでも、訓練画像と同じチャンネル数を有していてもよい。訓練画像とノイズ表現画像の１チャンネルあたりの画素数（要素数）は同じである。ニューラルネットワークには様々なノイズ量の訓練画像が入力されるが、入力データにノイズ表現画像を含めることで、訓練画像のノイズ量をニューラルネットワークが特定することができる。このため、推定精度の低下を抑制しつつ、ノイズに対するロバスト性を確保することが可能である。
【００３１】
入力データは、必要に応じて正規化を行ってもよい。入力画像がＲＡＷ画像の場合、撮像素子やＩＳＯ感度によって黒レベルが異なる場合がある。このため、入力画像の信号値から黒レベルを減算した後、ニューラルネットワークへ入力する。正規化に関しても、黒レベルを減算してから行うことが望ましい。図１中のＣｏｎｖ．は１層以上の畳み込み層、Ｍａｘ  Ｐｏｏｌは最大値プーリング、Ｕｐ  Ｃｏｎｖ．はアップサンプリングを含む１層以上の畳み込み層、Ｃｏｎｃａｔ．はチャンネル方向の連結を表す。学習の初回において、各畳み込み層のフィルタのウエイトは乱数で決定する。訓練画像に対応したＵ−Ｎｅｔの出力である推定クラスマップ２０２が算出される。
【００３２】
続いてステップＳ１０３において、更新部（学習部）１１４は、推定クラスマップと正解クラスマップから、ニューラルネットワークのウエイトを更新する。本実施例では、ロス関数として推定クラスマップと正解クラスマップのクロスエントロピーを使用するが、これに限定されるものではない。算出されたロス関数の値から、誤差逆伝播法（Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）などによってウエイトの更新を行う。
【００３３】
続いてステップＳ１０４において、更新部１１４は、ウエイトの学習が完了したか否かを判定する。学習の完了は、学習（ウエイトの更新）の反復回数が規定値に達したか否か、または、更新時のウエイトの変化量が規定値より小さいか否かなどにより判定することができる。学習が未完であると判定された場合、ステップＳ１０１へ戻り、１組以上の新たな訓練画像、ノイズ表現画像、および、正解クラス画像を取得する。一方、学習が完了した判定された場合、学習を終了し、ウエイトの情報を記憶部１１１に保存する。
【００３４】
次に、図６を参照して、本実施例における画像処理部１２３で実行される入力画像の人領域検出（推定クラスマップの生成、推定フェーズ）に関して説明する。図６は、推定クラスマップの生成に関するフローチャートである。図６の各ステップは、主に、画像処理部１２３の取得部１２３ａまたは検出部１２３ｂにより実行される。
【００３５】
まずステップＳ２０１において、取得部１２３ａは、入力画像と、入力画像に対応するノイズの標準偏差を取得する。入力画像は、撮像素子１２２で撮像された撮像画像の少なくとも一部である。ノイズの標準偏差は、撮像素子１２２のノイズ特性が既知の場合、撮像時の撮像条件（ＩＳＯ感度など）に基づいて取得される。または、ノイズの標準偏差は、入力画像と同一の撮像条件におけるオプティカルブラック領域の信号値から算出してもよい。例えば、撮像画像が現像前のＲＡＷ画像の場合、撮像画像のうち被写体空間の情報が取得された領域を入力画像とし、光が遮断された領域を入力画像に対応するオプティカルブラック領域とする。オプティカルブラック領域の信号値のばらつきから、光量ゼロの際のノイズの標準偏差を求めることができる。
【００３６】
続いてステップＳ２０２において、取得部１２３ａは、標準偏差に基づいてノイズ表現画像を生成する。ノイズ表現画像は、各画素の信号値が標準偏差の画像である。続いてステップＳ２０３において、検出部１２３ｂは、入力画像とノイズ表現画像をニューラルネットワークへ入力し、推定クラスマップを生成する。この際、図１のニューラルネットワークと学習フェーズで得られたウエイトが使用される。
【００３７】
本実施例によれば、精度の低下とデータ量の増大を抑制して、ノイズにロバストなセグメンテーションマップを生成することが可能な画像処理システムを実現することができる。
【実施例２】
【００３８】
次に、本発明の実施例２における画像処理システムに関して説明する。本実施例において、ニューラルネットワークは、撮像画像の収差、回折によるぼけを補正する回帰タスク（デブラー）を実行する。ただし本発明は、これに限定されるものではなく、その他の認識または回帰タスクにも適用が可能である。
【００３９】
図７は、本実施例における画像処理システム３００のブロック図である。図８は、画像処理システム３００の外観図である。画像処理システム３００は、学習装置３０１、撮像装置３０２、画像推定装置３０３、表示装置３０４、記録媒体３０５、出力装置３０６、および、ネットワーク３０７を有する。
【００４０】
学習装置３０１は、記憶部３０１ａ、取得部３０１ｂ、生成部３０１ｃ、および、更新部３０１ｄを有する。撮像装置３０２は、光学系３０２ａと撮像素子３０２ｂを有する。撮像素子３０２ｂで撮像された撮像画像には、光学系３０２ａの収差や回折によるぼけと、撮像素子３０２ｂによるノイズが存在する。画像推定装置３０３は、記憶部３０３ａ、取得部３０３ｂ、および、生成部３０３ｃを有し、撮像画像の少なくとも一部である入力画像に対してぼけ補正を行い、推定画像を生成する。ぼけ補正にはニューラルネットワークを使用し、そのウエイトの情報は記憶部３０３ａから読み出される。ウエイトは学習装置３０１で学習されたものであり、画像推定装置３０３は、事前にネットワーク３０７を介して記憶部３０１ａからウエイトの情報を読み出し、記憶部３０３ａに記憶している。なお、ウエイトの学習、およびウエイトを用いたぼけ補正処理に関する詳細は、後述する。画像推定装置３０３は、推定画像に対して現像処理を行い、出力画像を生成する。出力画像は、表示装置３０４、記録媒体３０５、出力装置３０６の少なくともいずれかに出力される。表示装置３０４は、例えば液晶ディスプレイやプロジェクタなどである。ユーザは表示装置３０４を介して、処理途中の画像を確認しながら編集作業などを行うことができる。記録媒体３０５は、例えば半導体メモリ、ハードディスク、ネットワーク上のサーバ等である。出力装置３０６は、プリンタなどである。
【００４１】
次に、図９を参照して、学習装置３０１で実行されるウエイトの学習に関して説明する。図９は、ウエイトの学習に関するフローチャートである。図９の各ステップは、主に、学習装置３０１の取得部３０１ｂ、生成部３０１ｃ、または、更新部３０１ｄにより実行される。
【００４２】
まずステップＳ３０１において、取得部３０１ｂは、一組以上のソース画像と撮像条件を取得する。収差、回折によるぼけ補正の学習には、ぼけ画像（第１の訓練画像）とぼけのない画像（正解画像）のペアが必要になる。実施例２では、このペアをソース画像から撮像シミュレーションによって生成する。ただし、これに限定されるものではなく、収差、回折によるぼけを補正したいレンズとそれよりも高性能なレンズで同一被写体を撮像し、前記ペアを用意してもよい。
【００４３】
なお本実施例では、ＲＡＷ画像での学習とぼけ補正を行うが、本発明はこれに限定されるものではなく、現像後の画像でもよい。ソース画像はＲＡＷ画像であり、撮像条件はソース画像を被写体として撮像シミュレーションを行う際のパラメータである。パラメータは、撮像に使用する光学系、光学系のステート（ズーム、絞り、合焦距離）、像高、光学ローパスフィルタの有無と種類、撮像素子のノイズ特性、画素ピッチ、ＩＳＯ感度、カラーフィルタ配列、ダイナミックレンジ、黒レベルなどである。実施例２では、光学系ごとに学習を行う。特定の光学系に対して、ステートや像高、画素ピッチやＩＳＯ感度などの組み合わせを複数設定して、異なる撮像条件での第１の訓練画像と正解画像（正解データ）のペアを生成する。
【００４４】
続いてステップＳ３０２において、生成部３０１ｃは、撮像条件に基づいて、ソース画像から第１の訓練画像および第２の訓練画像と正解画像を生成する。第１の訓練画像と正解画像はそれぞれ、ソース画像に対して光学系で発生する収差、回折によるぼけを付与した画像と、付与しない画像である。第１の訓練画像には、ノイズが付与される。正解画像には必要に応じて、ノイズを付与する。正解画像にノイズを付与しない、または第１の訓練画像のノイズと相関のないノイズを付与すると、ニューラルネットワークではぼけ補正とデノイジングが学習される。正解画像に対して、第１の訓練画像のノイズと相関のあるノイズを付与すると、ノイズ変化を抑制したぼけ補正が学習される。
【００４５】
更に本実施例では、第１の訓練画像に対してＷｉｅｎｅｒフィルタを使用し、ぼけをある程度補正した第２の訓練画像（学習フェーズにおける中間ぼけ補正画像）を生成する。Ｗｉｅｎｅｒフィルタは、第１の訓練画像に付与したぼけから算出されたフィルタである。ただし、補正方法はＷｉｅｎｅｒフィルタに限定されるものではなく、その他逆フィルタベースの手法や、Ｒｉｃｈａｒｄｓｏｎ−Ｌｕｃｙ法などを用いてもよい。第２の訓練画像も使用することで、ニューラルネットワークのぼけの変化に対するぼけ補正のロバスト性を向上させることができる。また、必要に応じて、撮像シミュレーションの際にソース画像を縮小する。ソース画像をＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）でなく実写で用意した場合、何らかの光学系を介して撮像された画像である。このため、既に収差、回折によるぼけが存在している。しかし、縮小を行うことによって、ぼけの影響を小さくし、高周波まで存在する正解画像を生成することができる。
【００４６】
続いてステップＳ３０３において、生成部３０１ｃは、撮像条件に基づいてノイズ表現画像を生成する。本実施例では、オプティカルブラック領域（黒レベルの領域）の信号値をシミュレーションによって再現することで、ノイズ表現画像を生成する。撮像条件で設定された黒レベルに対して、ＩＳＯ感度に対応するノイズを付与してオプティカルブラックの信号値を生成する。
【００４７】
図１０は、入力画像とノイズ表現画像の生成に関する図である。推定フェーズでは、図１０に示されるように撮像画像４０１のオプティカルブラック領域４０３から、１つ以上の部分オプティカルブラック画像４０４を抽出し、配列することでノイズ表現画像４０５を生成する。このため、学習フェーズでも同様の方法でノイズ表現画像を生成することが好ましい。抽出する部分オプティカルブラック画像の数をＫ（Ｋは自然数）、部分オプティカルブラック画像の画素数をｍｋ×ｎｋ（ｋ＝１，…，Ｋ）とする。このとき、本ステップでもｍｋ×ｎｋのオプティカルブラックをＫ個生成しそれを配列することで、ノイズ表現画像を生成する。ノイズ表現画像の画素数は、第１及び第２の訓練画像と同じである。なお、図９のステップＳ３０２とステップＳ３０３は、どちらを先に実行してもよい。
【００４８】
続いてステップＳ３０４において、生成部３０１ｃは、第１の訓練画像および第２の訓練画像とノイズ表現画像をニューラルネットワークに入力し、推定画像（ぼけ補正画像）を生成する。図１１は、本実施例におけるニューラルネットワークの構成を示す図である。本実施例では、図１１に示されるニューラルネットワークを使用するが、これに限定されるものではなく、例えばＧＡＮ（Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋ）などを用いてもよい。入力データ５１１は、第１の訓練画像５０１、第２の訓練画像、および、ノイズ表現画像をチャンネル方向に連結したデータである。チャンネル方向の連結順に制限はない。Ｃｏｎｖ．は１層以上の畳み込み層、Ｄｅｃｏｎｖ．は、１層以上の逆畳み込み層を表す。第２、第３、第４のスキップコネクション５２２、５２３、５２４は、２つの特徴マップに関して要素ごとの和を取る。または、チャンネル方向に連結してもよい。第１のスキップコネクション５２１は、第１の訓練画像５０１（または、第２の訓練画像でもよい）と最終層から出力された残差成分の和を取り、推定画像５１２を得る。ただし、スキップコネクションの数は、図１１に限定されるものではない。ぼけ補正のような画像の高解像化や高コントラスト化では、被写体だけでなく、ノイズも強調してしまう弊害が起こりやすい。しかし、ノイズ表現画像を入力することで、ニューラルネットワークが被写体とノイズを分離しやすくなり、ノイズにロバストな高解像化、または高コントラスト化が実現できる。
【００４９】
続いてステップＳ３０５において、更新部３０１ｄは、推定画像と正解画像からニューラルネットワークのウエイトを更新する。本実施例では、推定画像と正解画像における信号値の差のユークリッドノルムをロス関数とする。ただし、ロス関数はこれに限定されるものではない。続いてステップＳ３０６において、更新部３０１ｄは、学習が完了したか否かを判定する。学習が未完である場合、ステップＳ３０１へ戻り、新たな一組以上のソース画像と撮像条件を取得する。一方、学習が完了した場合、ウエイトの情報を記憶部３０１ａに記憶する。
【００５０】
次に、図１２を参照して、画像推定装置３０３で実行される入力画像の収差、回折によるぼけの補正（推定画像の生成）に関して説明する。図１２は、推定画像の生成に関するフローチャートである。図１２の各ステップは、主に、画像推定装置３０３の取得部３０３ｂと生成部３０３ｃにより実行される。
【００５１】
まずステップＳ４０１において、取得部３０３ｂは、撮像画像から入力画像と、入力画像に対応するオプティカルブラック領域を取得する。本実施例２では、図１０に示されるように、ＲＡＷ画像である撮像画像４０１から、被写体空間の情報が存在する領域を入力画像４０２として、光の入射しない領域をオプティカルブラック領域４０３として取得する。ただし、オプティカルブラック領域は、入力画像と同一撮像条件の別の画像から取得することもできる。
【００５２】
続いてステップＳ４０２において、生成部３０３ｃは、入力画像から中間ぼけ補正画像を生成する。光学系３０２ａの収差、回折によるぼけを補正するＷｉｅｎｅｒフィルタの情報を記憶部３０３ａから呼び出し、入力画像に作用させることで、中間ぼけ補正画像を生成する。入力画像は像高ごとにぼけが異なるため、シフトバリアントな補正を行う。
【００５３】
続いてステップＳ４０３において、取得部３０３ｂは、オプティカルブラック領域から部分オプティカルブラック画像を抽出する。図１０のように、オプティカルブラック領域４０３から、１つ以上の部分オプティカルブラック画像４０４を抽出する。抽出する部分オプティカルブラック画像の数はＫ、各部分オプティカルブラック画像の画素数はｍｋ×ｎｋである。
【００５４】
続いてステップＳ４０４において、生成部３０３ｃは、入力画像の画素数と部分オプティカルブラック画像に基づいて、ノイズ表現画像を生成する。図１０に示されるように、部分オプティカルブラック画像４０４を配列してノイズ表現画像４０５を生成する。入力画像４０２以上の画素数になるように部分オプティカルブラック画像４０４を配列し、入力画像４０２の画素数だけ抜き出すことで、ノイズ表現画像４０５を生成する。部分オプティカルブラック画像４０４を配列する際、個々を反転や回転をしてから配列してもよい。
【００５５】
続いてステップＳ４０５において、生成部３０３ｃは、入力画像と中間ぼけ補正画像とノイズ表現画像をニューラルネットワークへ入力し、推定画像を生成する。ニューラルネットワークは、図１１に示される構成を使用し、学習時と同じ順番でチャンネル方向に入力画像（第１の訓練画像に相当）、中間ぼけ補正画像（第２の訓練画像に相当）、ノイズ表現画像を連結した入力データを入力する。また、記憶部３０３ａから光学系３０２ａに対応したウエイトの情報を読み出し、推定画像を生成する。ニューラルネットワークへの入力時に正規化や黒レベルの減算を行っている場合は、推定画像に対して信号値のスケールを戻す処理と黒レベルの加算を行う。
【００５６】
本実施例によれば、精度の低下とデータ量の増大を抑制して、収差や回折によるぼけの補正をノイズに対してロバストに実行することが可能な画像処理システムを実現することができる。
【００５７】
このように各実施例の画像処理方法は、第１の工程と第２の工程とを有する。第１の工程は、入力画像と、入力画像のノイズ量を表すノイズマップとを含む入力データを取得する工程（Ｓ２０１、Ｓ２０２；Ｓ４０１〜Ｓ４０４）である。第２の工程は、入力データをニューラルネットワークへ入力し、認識または回帰のタスクを実行する工程（Ｓ２０３；Ｓ４０５）である。
【実施例３】
【００５８】
次に、本発明の実施例３における画像処理システムに関して説明する。本実施例の画像処理システムは、画像推定装置に対して画像処理の対象である撮像画像を送信し処理済みの出力画像を画像推定装置から受信する処理装置（コンピュータ）を有する点で、実施例１および実施例２と異なる。
【００５９】
図１３は、本実施例における画像処理システム６００のブロック図である。画像処理システム６００は、学習装置６０１、撮像装置６０２、画像推定装置６０３、処理装置（コンピュータ）６０４を有する。学習装置６０１および画像推定装置６０３は、例えばサーバである。コンピュータ６０４は、例えばユーザ端末（パーソナルコンピュータまたはスマートフォン）である。コンピュータ６０４は、ネットワーク６０５を介して画像推定装置６０３に接続されている。画像推定装置６０３はネットワーク６０６を介して学習装置６０１に接続されている。すなわち、コンピュータ６０４と画像推定装置６０３は通信可能に構成され、画像推定装置６０３と学習装置６０１は通信可能に構成されている。コンピュータ６０４は第１の装置に相当し、画像推定装置６０３は第２の装置に相当する。なお学習装置６０１の構成は、実施例２の学習装置３０１と同様のため説明を省略する。撮像装置６０２の構成は、実施例２の撮像装置３０２と同様のため説明を省略する。
【００６０】
画像推定装置６０３は、記憶部６０３ａ、取得部６０３ｂ、生成部６０３ｃ、通信部（受信手段、送信手段）６０３ｄを有する。記憶部６０３ａ、取得部６０３ｂ、生成部６０３ｃのそれぞれは、実施例２の画像推定装置３０３の記憶部１０３ａ、取得部１０３ｂ、生成部１０３ｃと同様である。通信部６０３ｄはコンピュータ６０４から送信される要求を受信する機能と、画像推定装置６０３によって生成された出力画像をコンピュータ６０４に送信する機能を有する。
【００６１】
コンピュータ６０４は、通信部（送信手段）６０４ａ、表示部６０４ｂ、画像処理部６０４ｃ、記録部６０４ｄを有する。通信部６０４ａは撮像画像に対する処理を画像推定装置６０３に実行させるための要求を画像推定装置６０３に送信する機能と、画像推定装置６０３によって処理された出力画像を受信する機能を有する。表示部６０４ｂは種々の情報を表示する機能を有する。表示部６０４ｂによって表示される情報は、例えば画像推定装置６０３に送信する撮像画像と、画像推定装置６０３から受信した出力画像を含む。画像処理部６０４ｃは画像推定装置６０３から受信した出力画像に対してさらに画像処理を施す機能を有する。記録部６０４ｄは、撮像装置６０２から取得した撮像画像、画像推定装置６０３から受信した出力画像等を記録する。
【００６２】
次に、図１４を参照して、本実施例における画像処理について説明する。本実施例における画像処理は、実施例２に説明したぼけ補正（デブラー）処理（図１２）と同等である。図１４は、出力画像の生成に関するフローチャートである。図１４に示した画像処理は、コンピュータ６０４を介してユーザにより画像処理開始の指示が成されたことを契機として開始される。まず、コンピュータ６０４における動作について説明する。
【００６３】
ステップＳ７０１において、コンピュータ６０４は撮像画像に対する処理の要求を画像推定装置６０３へ送信する。なお、処理対象である撮像画像を画像推定装置６０３に送信する方法は問わない。例えば、撮像画像はステップＳ７０１と同時にコンピュータ６０４から画像推定装置６０３にアップロードされても良いし、ステップＳ７０１以前に画像推定装置６０３にアップロードされていても良い。なお、コンピュータ６０４に記録された画像でなく、撮像画像は画像指定装置６０３とは異なるサーバ上に記憶された画像でも良い。なお、ステップＳ７０１において、コンピュータ６０４は撮像画像に対する処理の要求と共に、ユーザを認証するＩＤ情報等を送信しても良い。ステップＳ７０２において、コンピュータ６０４は画像推定装置６０３内で生成された出力画像を受信する。出力画像は実施例２と同様に撮像画像に対してぼけ補正が成された推定画像である。
【００６４】
次に、画像推定装置６０３の動作について説明する。ステップＳ８０１において、画像推定装置６０３はコンピュータ６０４から送信された撮像画像に対する処理の要求を受信する。画像推定装置６０３は、撮像画像に対する処理（ぼけ補正処理）が指示されたと判断し、ステップＳ８０２以降の処理を実行する。ステップＳ８０２〜Ｓ８０６は、実施例２のステップＳ４０１〜Ｓ４０５と同様である。ステップＳ８０７において、画像推定装置６０３は回帰タスクの結果である推定画像を出力画像としてコンピュータ６０４へ送信する。
【００６５】
本実施例は、実施例２のぼけ補正処理を行うものとして説明したが、実施例１の人領域検出（図６）においても同様に適用することができる。なお、本実施例では、実施例２のＳ４０１からＳ４０５に相当する処理を全て画像推定装置６０３で行うことを説明したが、本発明はこれに限定されない。例えば、コンピュータ６０４内で実施例２のＳ４０１からＳ４０４（本実施例のステップＳ８０２からステップＳ８０６）のうちの１つ以上を行い、その結果をコンピュータ６０４から画像指定装置６０３へ送信するようにしても良い。
【００６６】
以上のように、本実施例のように、画像推定装置６０３を、画像推定装置６０３と通信可能に接続されたコンピュータ６０４を用いて制御するように構成しても良い。
【００６７】
好ましくは、ノイズマップは、入力画像に対応するオプティカルブラック領域（黒レベルの領域）に基づく。また好ましくは、画像処理方法は、入力画像に対応するオプティカルブラック領域を取得する工程を有する。また好ましくは、画像処理方法は、オプティカルブラック領域の少なくとも一部である部分オプティカルブラック画像を１つ以上抽出する工程を有する。また好ましくは、画像処理方法は、入力画像の画素数と部分オプティカルブラック画像とに基づいて、ノイズマップを生成する工程を有する。より好ましくは、ノイズマップは、部分オプティカルブラック画像を配列することにより生成される。
【００６８】
好ましくは、画像処理方法は、入力画像に対応するオプティカルブラック領域を取得する工程と、オプティカルブラック領域における信号値の散布度（分散、標準偏差）を算出する工程と、散布度に基づいてノイズマップを生成する工程とを有する。また好ましくは、入力画像とオプティカルブラック領域は、同一の撮像画像から抽出される。また好ましくは、入力画像と前記ノイズマップの１つのチャンネル（Ｒ、Ｇ、Ｂチャネルの各々）における画素数は、互いに等しい。また好ましくは、入力データは、入力画像とノイズマップをチャンネル方向に連結したデータを含む。また好ましくは、画像処理方法は、入力データの信号値から黒レベルを減算した後、入力データをニューラルネットワークへ入力する。また好ましくは、タスクは、画像の高解像化または高コントラスト化である。
【００６９】
また各実施例において、画像処理装置（画像処理部１２３、画像推定装置３０３）は、取得手段（取得部１２３ａ、３０３ｂ、生成部３０３ｃ）および処理手段（検出部１２３ｂ、生成部３０３ｃ）を有する。取得手段は、入力画像と、入力画像のノイズ量を表すノイズマップと、を含む入力データを取得する。処理手段は、入力データをニューラルネットワークへ入力し、認識または回帰のタスクを実行する。好ましくは、画像処理装置は、ニューラルネットワークで使用するウエイトの情報を記憶する手段（記憶部１２４、３０３ａ）を有する。
【００７０】
また各実施例において、画像処理システムは、第１の装置と、第１の装置と通信可能な第２の装置を含む。第１の装置は、撮像画像に対する処理を第２の装置に実行させるための要求を送信する送信手段を有する。第２の装置は、受信手段、取得手段、処理手段、および、送信手段を有する。受信手段は、送信手段によって送信された要求を受信する。取得手段は、撮像画像と、撮像画像のノイズ量を表すノイズマップとを含む入力データを取得する。処理手段は、入力データをニューラルネットワークへ入力し、認識または回帰のタスクを実行する。送信手段は、タスクの結果を送信する。
【００７１】
また各実施例において、学習済みモデルの製造方法は、取得工程と学習工程とを有する。取得工程は、訓練画像および訓練画像のノイズ量を表すノイズマップを含む入力データと、正解データとを取得する。学習工程は、入力データと正解データとを用いて、認識または回帰のタスクを実行するためのニューラルネットワークを学習する
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７２】
各実施例によれば、精度の低下とデータ量の増大を抑制して、ニューラルネットワークのノイズに対するロバスト性を向上させることが可能な画像処理方法、画像処理装置、プログラム、画像処理システム、および学習済みモデルの製造方法を提供することができる。
【００７３】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００７４】
１２３  画像処理部（画像処理装置）
１２３ａ  取得部（取得手段）
１２３ｂ  検出部（処理手段）
３０３  画像推定装置（画像処理装置）
３０３ｂ  取得部（取得手段）
３０３ｃ  生成部（取得手段、処理手段）
【図１】
2020144488.tif 000003
【図２】
2020144488.tif 000004
【図３】
2020144488.tif 000005
【図４】
2020144488.tif 000006
【図５】
2020144488.tif 000007
【図６】
2020144488.tif 000008
【図７】
2020144488.tif 000009
【図８】
2020144488.tif 000010
【図９】
2020144488.tif 000011
【図１０】
2020144488.tif 000012
【図１１】
2020144488.tif 000013
【図１２】
2020144488.tif 000014
【図１３】
2020144488.tif 000015
【図１４】
2020144488.tif 000016