(57)【要約】【課題】撮影画像から鏡面反射成分を高精度に推定または低減することが可能な画像処理方法を提供する。【解決手段】画像処理方法は、鏡面反射成分を含む入力画像の少なくとも一部の領域を取得する工程と、鏡面反射成分に関して予め学習された学習情報を取得する工程と、学習情報を用いて領域における鏡面反射成分を推定または低減する工程とを有し、鏡面反射成分を推定または低減する工程は、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、領域に対して、学習情報に基づく複数の線型関数のそれぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換とをｎが１からＮになるまで順に実行することで中間データを生成する工程と、中間データに対して、学習情報に基づく少なくとも一つの線型関数による第Ｎ＋１線型変換を実行する工程とを含む。【選択図】図１
2019074777.tif 000002
【特許請求の範囲】
【請求項１】
鏡面反射成分を含む入力画像の少なくとも一部の領域を取得する工程と、
前記鏡面反射成分に関して予め学習された学習情報を取得する工程と、
前記学習情報を用いて前記領域における前記鏡面反射成分を推定または低減する工程と、を有し、
前記鏡面反射成分を推定または低減する工程は、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、
前記領域に対して、前記学習情報に基づく複数の線型関数のそれぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換とをｎが１からＮになるまで順に実行することで中間データを生成する工程と、
前記中間データに対して、前記学習情報に基づく少なくとも一つの線型関数による第Ｎ＋１線型変換を実行する工程と、を含むことを特徴とする画像処理方法。
【請求項２】
前記鏡面反射成分を含む鏡面反射領域の大きさを取得する工程を更に有し、
前記領域の大きさまたは前記学習情報は、前記鏡面反射領域の大きさに基づいて決定されることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記鏡面反射領域の大きさは、前記入力画像における輝度値が所定の閾値以上である領域の大きさに基づいて算出されることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記第ｎ線型変換（ｎ＝１〜Ｎ）のそれぞれは、前記学習情報に基づく複数のフィルタの各々とのコンボリューションを含むことを特徴とする請求項１乃至３のいずれか一項に記載の画像処理方法。
【請求項５】
前記領域における前記鏡面反射成分を低減する工程において、前記第Ｎ＋１線型変換は、前記学習情報に基づくフィルタとのコンボリューションを含むことを特徴とする請求項４に記載の画像処理方法。
【請求項６】
前記第ｎ線型変換（ｎ＝１〜Ｎ）および前記第Ｎ＋１線型変換のそれぞれにおける前記フィルタのサイズは、鏡面反射領域の大きさに基づいて決定されることを特徴とする請求項５に記載の画像処理方法。
【請求項７】
前記入力画像の画素に対する鏡面反射領域の大きさをｄ、前記第ｎ線型変換（ｎ＝１〜Ｎ）および前記第Ｎ＋１線型変換のそれぞれにおける前記フィルタの１次元サイズをｓｍ（ｍ＝１〜Ｎ＋１）とするとき、
2019074777.tif 000006
なる条件式を満足することを特徴とする請求項５または６に記載の画像処理方法。
【請求項８】
前記学習情報は、同一の被写体が存在する少なくとも一対の学習画像を用いて学習された情報であり、
前記一対の学習画像は、前記鏡面反射成分を含む画像と、該鏡面反射成分を含まない画像と、を含むことを特徴とする請求項１乃至７のいずれか１項に記載の画像処理方法。
【請求項９】
前記学習画像のうち前記鏡面反射成分を含まない前記画像は、前記同一の被写体を異なる偏光で撮影した複数の偏光情報に基づいて取得された画像であることを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記学習画像は、レンダリングにより生成された画像であることを特徴とする請求項８に記載の画像処理方法。
【請求項１１】
鏡面反射成分に関する学習情報を記憶する記憶部と、
前記学習情報を用いて入力画像の少なくとも一部の領域における前記鏡面反射成分を推定または低減する画像処理部と、を有し、
前記画像処理部は、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、
前記領域に対して、前記学習情報に基づく複数の線型関数のそれぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換とをｎが１からＮになるまで順に実行することで中間データを生成し、
前記中間データに対して、前記学習情報に基づく少なくとも一つの線型関数による第Ｎ＋１線型変換を実行する、ことを特徴とする画像処理装置。
【請求項１２】
被写体空間の像を入力画像として取得する撮像部と、
請求項１１に記載の画像処理装置と、を有することを特徴とする撮像装置。
【請求項１３】
請求項１乃至１０のいずれか１項に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムを記憶していることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法に関する。
【背景技術】
【０００２】
特許文献１および非特許文献１には、物体が２色性反射モデルに従うことを利用し、入力画像における色相ごとに抽出した画素に基づいて、入力画像から拡散反射画像を取得する手法が開示されている。２色性反射モデルでは、被写体からの反射光を、物体色である拡散反射成分と光源色である鏡面反射成分との線形和で表すことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−６５２１５号公報
【非特許文献】
【０００４】
【非特許文献１】肥後 智昭、宮崎 大輔、池内 克史、“二色性反射モデルに基づくリアルタイム鏡面反射成分除去”、研究報告コンピュータビジョンとイメージメディア、ｐｐ．２１１−２１８、２００６
【非特許文献２】Ｙ．ＬｅＣｕｎ，ｅｔ  ａｌ．，  “Ｇｒａｄｉｅｎｔ−ｂａｓｅｄ  Ｌｅａｒｎｉｎｇ  Ａｐｐｌｉｅｄ  ｔｏ  Ｄｏｃｕｍｅｎｔ  Ｒｅｃｏｇｎｉｔｉｏｎ”，  Ｐｒｏｃ．  ｏｆ  Ｔｈｅ  ＩＥＥＥ，  １９９８．
【非特許文献３】Ｇ．Ｅ．Ｈｉｎｔｏｎ，ｅｔ  ａｌ．，  “Ａ  ｆａｓｔ  ｌｅａｒｎｉｎｇ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｄｅｅｐ  ｂｅｌｉｅｆ  ｎｅｔｓ”，  Ｎｅｕｒａｌ  Ｃｏｍｐｕｔ．  ２００６  Ｊｕｌ；  １８（７）：  １５２７−５４．
【非特許文献４】Ｉ．Ｊ．Ｇｏｏｄｆｅｌｌｏｗ，ｅｔ  ａｌ．，  “Ｍａｘｏｕｔ  ｎｅｔｗｏｒｋｓ”，  ａｒＸｉｖ  ｐｒｅｐｒｉｎｔ  ａｒＸｉｖ：１３０２．４３８９  （２０１３）．
【非特許文献５】Ｇ．Ｅ．Ｈｉｎｔｏｎ  ＆  Ｒ．Ｒ．Ｓａｌａｋｈｕｔｄｉｎｏｖ  （２００６−０７−２８）．  “Ｒｅｄｕｃｉｎｇ  ｔｈｅ  Ｄｉｍｅｎｓｉｏｎａｌｉｔｙ  ｏｆ  Ｄａｔａ  ｗｉｔｈ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，  Ｓｃｉｅｎｃｅ  ３１３（５７８６）：  ５０４−５０７．
【非特許文献６】Ｎ．Ｓｒｉｖａｓｔａｖａ，ｅｔ  ａｌ．，  “Ｄｒｏｐｏｕｔ：  Ａ  ｓｉｍｐｌｅ  ｗａｙ  ｔｏ  ｐｒｅｖｅｎｔ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ  ｆｒｏｍ  ｏｖｅｒｆｉｔｔｉｎｇ”，  Ｔｈｅ  Ｊｏｕｒｎａｌ  ｏｆ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｒｅｓｅａｒｃｈ，  １５（１）：１９２９-１９５８，  ２０１４．
【非特許文献７】Ａ．Ｋｒｉｚｈｅｖｓｋｙ，  “Ｌｅａｒｎｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｌａｙｅｒｓ  ｏｆ  Ｆｅａｔｕｒｅｓ  ｆｒｏｍ  Ｔｉｎｙ  Ｉｍａｇｅｓ”，  ２００９，  ｈｔｔｐｓ：／／ｗｗｗ．ｃｓ．ｔｏｒｏｎｔｏ．ｅｄｕ／〜ｋｒｉｚ／ｌｅａｒｎｉｎｇ−ｆｅａｔｕｒｅｓ−２００９−ＴＲ．ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１や非特許文献１に示す２色性反射モデルを用いた手法では、光源色が物体色と同じである場合や、無彩色物体、あるいは金属や透明体等の拡散反射がない被写体においては、拡散反射成分の推定を行うことができない。
【０００６】
そこで本発明は、撮影画像から高精度に鏡面反射成分を推定または低減することが可能な画像処理方法、画像処理装置、撮像装置、プログラム、および、記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面としての画像処理方法は、鏡面反射成分を含む入力画像の少なくとも一部の領域を取得する工程と、前記鏡面反射成分に関して予め学習された学習情報を取得する工程と、前記学習情報を用いて前記領域における前記鏡面反射成分を推定または低減する工程とを有し、前記鏡面反射成分を推定または低減する工程は、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、前記領域に対して、前記学習情報に基づく複数の線型関数のそれぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換とをｎが１からＮになるまで順に実行することで中間データを生成する工程と、前記中間データに対して、前記学習情報に基づく少なくとも一つの線型関数による第Ｎ＋１線型変換を実行する工程とを含む。
【０００８】
本発明の他の側面としての画像処理装置は、鏡面反射成分に関する学習情報を記憶する記憶部と、前記学習情報を用いて入力画像の少なくとも一部の領域における前記鏡面反射成分を推定または低減する画像処理部とを有し、前記画像処理部は、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、前記領域に対して、前記学習情報に基づく複数の線型関数のそれぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換とをｎが１からＮになるまで順に実行することで中間データを生成し、前記中間データに対して、前記学習情報に基づく少なくとも一つの線型関数による第Ｎ＋１線型変換を実行する。
【０００９】
本発明の他の側面としての撮像装置は、被写体空間の像を入力画像として取得する撮像部と、前記画像処理装置とを有する。
【００１０】
本発明の他の側面としてのプログラムは、前記画像処理方法をコンピュータに実行させる。
【００１１】
本発明の他の側面としての記憶媒体は、前記プログラムを記憶している。
【００１２】
本発明の他の目的及び特徴は、以下の実施例において説明される。
【発明の効果】
【００１３】
本発明によれば、撮影画像から高精度に鏡面反射成分を推定または低減することが可能な画像処理方法、画像処理装置、撮像装置、プログラム、および、記憶媒体を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施例１および実施例２における鏡面反射成分を除去するネットワーク構造を示す図である。
【図２】実施例１および実施例３における撮像装置のブロック図である。
【図３】実施例１および実施例３における撮像装置の外観図である。
【図４】実施例１における鏡面反射成分の除去処理を示すフローチャートである。
【図５】実施例１における撮像装置の外観図である。
【図６】実施例１における他の形態としての撮像装置の外観図である。
【図７】実施例１における学習情報の学習を示すフローチャートである。
【図８】実施例２における画像処理システムのブロック図である。
【図９】実施例２における画像処理システムの外観図である。
【図１０】実施例２における鏡面反射成分の除去処理を示すフローチャートである。
【図１１】実施例３における鏡面反射成分の推定処理を示すフローチャートである。
【図１２】実施例３における鏡面反射成分を推定するネットワーク構造を示す図である。
【図１３】実施例３における学習情報の学習を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照符号を付し、重複する説明は省略する。
【００１６】
撮影画像（入力画像）を拡散反射成分と鏡面反射成分とに分離することにより、撮影後の画像処理において様々な画像生成を行うことができる。例えば、分離した拡散反射成分と光沢成分である鏡面反射成分とを用いることにより、光沢感を制御した画像を生成することが可能である。また、被写体のライティングを変更した画像を生成するために必要な面法線を高精度に取得することが可能となる。被写体の見えは、被写体の形状情報、被写体の反射率情報、光源情報等で決定される。光源から出た光が被写体により反射された反射光の物理的な振る舞いは局所的な面法線に依存するため、形状情報としては３次元形状ではなく被写体の面法線を用いることが特に有効である。そのような被写体の面法線を取得する方法として、照度差ステレオ法が用いられる。照度差ステレオ法では、被写体がランバート拡散反射である仮定の下で面法線を取得するため、入力画像における拡散反射成分のみが必要である。したがって、画像から拡散反射成分を推定する技術が必要となる。画像から拡散反射成分を推定することができれば、画像から拡散反射成分を差し引くことにより、鏡面反射成分も同時に取得することが可能である。
【００１７】
各実施例は、ディープラーニング（深層学習）を用いて、撮影画像から鏡面反射成分を推定または低減（好ましくは除去）する。鏡面反射成分が異なる複数の画像（鏡面反射成分を含む画像と含まない画像等）に基づいて、その対応関係をディープラーニングで学習することにより、鏡面反射成分を高精度に推定または低減（除去）することができる。
【実施例１】
【００１８】
まず、図２および図３を参照して、本発明の実施例１における撮像装置について説明する。図２は、撮像装置１００のブロック図である。図３は、撮像装置１００の外観図である。本実施例において、撮像装置１００は、画像処理方法を実行し、撮影画像の鏡面反射成分をディープラーニングにより低減（除去）する。
【００１９】
撮像装置１００は、被写体空間の像を撮影画像（入力画像）として取得する撮像部１０１を有する。撮像部１０１は、被写体空間から入射する光を集光する結像光学系１０１ａと、複数の画素を有する撮像素子１０１ｂとを有する。撮像素子１０１ｂは、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）センサやＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）センサである。
【００２０】
画像処理部１０２は、撮影画像（入力画像）に対して、鏡面反射成分を低減（除去）する。画像処理部１０２は、学習部１０２ａと鏡面反射除去部１０２ｂとを有する。記憶部１０３は、画像処理部１０２による鏡面反射成分を低減する際に用いられる学習情報（鏡面反射成分に関して予め学習された学習情報）を記憶している。この処理の詳細については後述する。画像処理部１０２により鏡面反射成分が低減された画像等の出力画像は、液晶ディスプレイなどの表示部１０４に表示されるか、または、記録媒体１０５に保存される。ただし、撮影画像を記録媒体１０５に保存し、任意のタイミングで鏡面反射成分の低減処理（除去処理）を行ってもよい。撮影画像は、静止画だけでなく動画であってもよい。この場合、各フレームに対して鏡面反射成分の低減処理を行う。以上の一連の制御は、システムコントローラ１０６により行われる。
【００２１】
次に、図４を参照して、画像処理部１０２による鏡面反射成分の除去処理について説明する。画像処理部１０２は、鏡面反射成分の除去処理の際に、事前に学習された学習情報を用いるが、この学習の詳細については後述する。図４は、鏡面反射成分の除去処理を示すフローチャートである。図４の各ステップは、主に、画像処理部１０２の鏡面反射除去部１０２ｂにより実行される。
【００２２】
まずステップＳ１０１において、画像処理部１０２（鏡面反射除去部１０２ｂ）は、鏡面反射成分を含む撮影画像（入力画像）と学習情報とを取得する。学習情報とは、撮影画像と鏡面反射成分が低減された画像とを結び付けるために予め学習された情報である。続いてステップＳ１０２において、補正部１０２ｂは、撮影画像から、撮影画像の少なくとも一部の領域（部分領域）を取得する。鏡面反射成分の除去処理は、この領域（部分領域）を単位として（部分領域ごとに）行われる。
【００２３】
続いてステップＳ１０３において、鏡面反射除去部１０２ｂは、学習情報を用いて部分領域から鏡面反射成分を除去した部分領域である拡散部分領域を生成する。ここで、図１を参照して、鏡面反射成分の除去処理について詳述する。図１は、ディープラーニングの一つであるＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）のネットワーク構造を示している。ただし、ディープラーニングとして、ＣＮＮ以外の手法、例えばＤＢＮ（Ｄｅｅｐ  Ｂｅｌｉｅｆ  Ｎｅｔｗｏｒｋ）を用いても構わない。ＣＮＮおよびＤＢＮの詳細はそれぞれ、非特許文献２および非特許文献３に説明されている。
【００２４】
ＣＮＮは、複数の層構造になっており、各層で学習情報を用いた線型変換と非線型変換とが実行される。ｎを１からＮまでの整数とするとき、ｎ番目の層を第ｎ層、第ｎ層における線型変換と非線型変換とをそれぞれ、第ｎ線型変換と第ｎ非線型変換と呼称する。ただし、Ｎは２以上の整数である。部分領域２０１に関しては、第１層において、複数のフィルタ２０２のそれぞれとのコンボリューション（複数の線型関数による第１線型変換）が実行される。その後、活性化関数（Ａｃｔｉｖａｔｉｏｎ  Ｆｕｎｃｔｉｏｎ）と呼ばれる非線型関数を用いて変換（第１非線型変換）が実行される。図１において、活性化関数をＡＦとして示している。また、部分領域２０１が複数枚描画されているのは、入力画像（撮影画像）が複数のチャンネルを有するためである。本実施例において、部分領域はＲＧＢ（Ｒｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ）の３チャンネルを有する。ただし、チャンネルの数はこれに限定されるものではない。後述のように、複数の撮影画像が入力された場合、部分領域は、入力された撮影画像に対応する数のチャンネル数を有していてもよい。また、部分領域が複数のチャンネルを有する場合でも、１チャンネルごとに個別にＣＮＮへ入力しても構わない。
【００２５】
フィルタ２０２は複数存在する。鏡面反射除去部１０２ｂは、複数のフィルタ２０２のそれぞれと部分領域２０１とのコンボリューションを個別に算出する。フィルタ２０２の係数は、学習情報に基づいて決定される。学習情報は、フィルタ２０２の係数（フィルタ係数）そのもの、または、フィルタ２０２を所定の関数でフィッティングした際の係数でもよい。フィルタ２０２のそれぞれのチャンネル数は、部分領域２０１の数と一致する。部分領域２０１のチャンネル数が２以上の場合、３次元フィルタとなる（３次元目がチャンネル数を表す）。また、コンボリューションの結果に対して、学習情報から決定される定数（負もとり得る）を加算してもよい。
【００２６】
活性化関数ｆ（ｘ）の例として、以下の式（１）〜（３）が挙げられる。
【００２７】
【数１】
2019074777.tif 000003
【００２８】
式（１）はシグモイド関数、式（２）はハイパボリックタンジェント関数、式（３）はＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ）と呼ばれる。式（３）中のｍａｘは、引数のうち最大値を出力するＭＡＸ関数を表す。式（１）〜（３）に示される活性化関数ｆ（ｘ）は、全て単調増加関数である。また、活性化関数としてＭａｘｏｕｔを使用してもよい。Ｍａｘｏｕｔは、第ｎ線型変換の出力である複数の画像のうち、各画素で最大値である信号値を出力するＭＡＸ関数である。Ｍａｘｏｕｔの詳細は、非特許文献４に説明されている。
【００２９】
図１において、第１線型変換および第１非線型変換が施された部分領域を、第１変換部分領域２０３と呼称する。第１変換部分領域２０３の各チャンネル成分は、部分領域２０１と複数のフィルタ２０２のそれぞれとのコンボリューションから生成される。このため、第１変換部分領域２０３のチャンネル数は、フィルタ２０２の数と同じになる。
【００３０】
第２層では、第１変換部分領域２０３に対して、第１層と同様に学習情報から決定される複数のフィルタ２０４とのコンボリューション（第２線型変換）と、活性化関数による非線型変換（第２非線型変換）とを行う。第２層で用いられるフィルタ２０４は、一般的に、第１層で用いられるフィルタ２０２と同一ではない。フィルタ２０４のサイズや数も、フィルタ２０４と一致しなくてもよい。ただし、フィルタ２０４のチャンネル数と第１変換部分領域２０３のチャンネル数とは互いに一致する。鏡面反射除去部１０２ｂは、同様の演算を第Ｎ層まで繰り返す（第ｎ線型変換および第ｎ非線型変換（ｎ＝１〜Ｎ）を実行する）ことにより、中間データ２１０を取得する。
【００３１】
最後に、第Ｎ＋１層において、中間データ２１０と複数のフィルタ２１１のそれぞれとのコンボリューションに定数を加算すること（第Ｎ＋１線型変換）により、鏡面反射成分が低減（除去）された拡散部分領域２１２が取得される。ここで用いられるフィルタ２１１および定数もそれぞれ、学習情報に基づいて決定される。拡散部分領域２１２のチャンネル数は、部分領域２０１と同じである。このため、フィルタ２１１の数も部分領域２０１のチャンネル数と同じである。拡散部分領域２１２の各チャンネルの成分は、中間データ２１０とフィルタ２１１のそれぞれ（フィルタ２１１が一つの場合もある）とのコンボリューションを含む演算から求められる。なお、部分領域２０１と拡散部分領域２１２とのサイズは互いに一致しなくてもよい。コンボリューションの際に、部分領域２０１の外側にはデータが存在しないため、データの存在する領域のみで演算すると、コンボリューション結果はサイズが小さくなる。ただし、周期境界条件などを設定することにより、サイズを保つこともできる。
【００３２】
ディープラーニングが高い性能を発揮できる理由は、非線型変換を多層構造によって何度も実行することにより、高い非線型性が得られるためである。仮に、非線型変換を担う活性化関数が存在せず、線型変換のみでネットワークが構成されていた場合、いくら多層にしてもそれと等価な単層の線型変換が存在するため、多層構造にする意味がない。ディープラーニングは、より多層にする方が強い非線型を得られるため、高い性能が出やすいと言われている。一般に、少なくとも３層以上を有する場合がディープラーニングと呼ばれる。
【００３３】
続いて、図４のステップＳ１０４において、鏡面反射除去部１０２ｂは、撮影画像のうち所定の領域（部分領域）の全てに対して鏡面反射成分の除去処理（補正）が完了したか否かを判定する。所定の領域の全てに対して拡散部分領域２１２が生成されている場合、ステップＳ１０５へ進む。一方、鏡面反射成分の除去処理が完了していない領域（部分領域）が残っている場合、ステップＳ１０２へ戻り、鏡面反射除去部１０２ｂは、まだ鏡面反射成分が除去されていない部分領域を撮影画像から取得する。
【００３４】
ステップＳ１０５において、鏡面反射除去部１０２ｂは、鏡面反射成分が除去された画像を出力する。鏡面反射成分が除去された画像は、生成された複数の拡散部分領域２１２を合成することにより生成される。ただし、部分領域が撮影画像の全体である場合、鏡面反射除去部１０２ｂは、拡散部分領域２１２をそのまま鏡面反射成分が除去された画像として出力する。以上の処理により、鏡面反射成分が除去された画像を取得することができる。
【００３５】
なお本実施例では、撮影画像（入力画像）、および、鏡面反射成分が除去された画像（出力画像）が共に１枚の場合を説明した。しかし、本実施例はこれに限定されるものではない。例えば、複数の撮影画像（複数の入力画像）を入力し、複数の撮影画像のそれぞれの鏡面反射成分が除去された複数の出力画像が一括で取得することができるように、ＣＮＮのネットワークを構成してもよい。また、光源位置または視点の互いに異なる複数の撮影画像を入力し、鏡面反射成分が除去された１枚の画像を取得するように構成してもよい。複数の撮影画像を入力する場合、視点または光源位置の異なる複数の画像を用いることが好ましい。視点や光源位置が変化すると被写体中で鏡面反射する位置が異なり、同一の被写体に対して、異なる鏡面反射成分を含む複数の画像を入力することにより、精度を向上させることができる。
【００３６】
図５は、撮像装置１００ａの外観図である。光源位置が異なる複数の画像を用いる場合、図５に示されるような、複数の光源１１０ａ〜１１０ｈを有する撮像装置１００ａを用いることができる。なお図５において、複数の光源として８つの光源１１０ａ〜１１０ｈを有するが、これに限定されるものではなく、複数の画像を取得するために少なくとも２つ以上の光源を備えていればよい。また、撮像光学系の光軸ＯＡから等距離の位置に同心円状に８つの光源１１０ａ〜１１０ｈを等間隔で配置しているが、これに限定されるものではない。また、複数の光源１１０ａ〜１１０ｈは、撮像装置１００ａに内蔵されているが、これに限定されるものではなく、撮像装置１００ａに対して着脱可能に構成されていてもよい。
【００３７】
図６は、他の形態としての撮像装置１００ｂの外観図である。視点が異なる複数の画像を用いる場合、図６に示されるような、複数の撮像光学系ＯＳｊ（ｊ＝１、２）を有する一つの撮像装置１００ｂを用いることができる。または、撮像装置１００の位置を変更しながら同一の被写体を撮影するようにしてもよい。ただし、本発明はこれらに限定されるものではない。また、入力する撮影画像（入力画像）として、複数の色のチャンネルを有する画像を用いることが好ましい。２色性反射モデルにより、入力画像に色情報があるほうが精度をより向上させることができる。
【００３８】
次に、図７を参照して、本実施例における学習情報の学習について説明する。図７は、学習情報の学習を示すフローチャートである。図７の各ステップは、主に、画像処理部１０２の学習部１０２ａにより行われる。ただし本実施例はこれに限定されるものではなく、学習情報の学習は、鏡面反射成分の除去前であれば、撮像装置１００とは別の装置（演算装置）に設けられた学習部で行ってもよい。本実施例では、撮像装置１００の学習部１０２ａが学習情報を学習する場合について説明する。
【００３９】
まずステップＳ２０１において、学習部１０２ａは、少なくとも一対の学習画像を取得する。一対の学習画像とは、鏡面反射成分の有無が異なり、かつ同一の被写体が存在する画像である。鏡面反射成分を含む画像は、鏡面反射成分を含まない画像と一対一に対応しているか、または、１枚の鏡面反射成分を含まない画像に対して複数枚存在していてもよい。後者の場合、鏡面反射成分を含む画像は、鏡面反射成分を含む被写体中の位置や量が異なる複数の画像である。
【００４０】
学習画像を取得する際に、ＣＧ等のレンダリングまたは実写画像のいずれを用いてもよい。レンダリングを行う場合、形状または法線情報と反射特性とを用いて仮想光源下でのレンダリング画像を取得する際に、拡散反射である反射特性と、拡散・鏡面反射である反射特性でのレンダリング画像をそれぞれ生成すればよい。その際、光源条件や反射特性のパラメータを変化させたレンダリング画像を生成し、様々な鏡面反射成分が含まれる学習画像を取得する。
【００４１】
実写画像を用いる場合、偏光情報が異なる条件での画像を使用すればよい。偏光情報を取得する際において、撮像光学系の前後または撮像光学系中に偏光子を挿入し、偏光子の主軸角方向を変えながら撮像すればよい。または、例えば特開２００７−８６７２０号公報に開示されているように、撮像素子の前にパターン偏光子を配置してもよい。
【００４２】
偏光子を回転させて取得した際の輝度変化は、正弦関数カーブに従って変化する。この関係は、反射光の輝度Ｉ、偏光子の主軸角νとして、以下の式（４）のように表される。
【００４３】
Ｉ（ν）＝Ａ・ｃｏｓ２（ν−Ｂ）＋Ｃ  …  （４）
式（４）における定数Ａ、Ｂ、Ｃを決定することにより、偏光情報を知ることができる。なお、定数Ａ、Ｂ、Ｃは正の定数であり、Ｂは余弦関数の周期性から０°から１８０°までの値で表すことができる。
【００４４】
偏光子の３つの主軸角に対して輝度を測定した場合、未知の定数もＡ、Ｂ、Ｃの３つであり、定数Ａ、Ｂ、Ｃを一意に求めることができる。一方、４以上の偏光条件で輝度を測定した場合、フィッティングにより定数Ａ、Ｂ、Ｃを求めることができる。フィッティングの方法としては、第ｉ番目の条件から得られる観測値（νｉ、Ｉｉ）と式（４）で表される理論値との差分を評価関数として用いればよく、最小二乗法などの既知の方法でフィッティングすることができる。なお、撮像装置１００を用いて取得する場合、実際の光の輝度値と撮像系を介して得られた出力信号がリニアになるように、出力信号を補正することが好ましい。
【００４５】
以上の方法により求めたパラメータから２・（Ｃ-Ａ）を計算することにより、鏡面反射成分を含まない画像である非偏光成分の拡散反射画像を取得することができる。ただし、偏光情報からの拡散反射画像の取得はこれに限定されるものではなく、偏光子を回転させて最も鏡面反射成分が少なくなる画像を拡散反射画像として取得して用いてもよい。鏡面反射成分を含む画像は、２・Ｃを計算するにより取得することができる。または、偏光子を回転させて取得した輝度の平均値画像を鏡面反射成分を含む画像として取得してもよく、偏光子が無い状態で撮影した画像を取得してもよい。
【００４６】
また、鏡面反射成分を含む画像に対してディープラーニング以外の手法を用いて鏡面反射成分が除去された画像を推定し、学習画像を用意してもよい。その例として、特許文献１や非特許文献１に開示されている２色性反射モデルを用いた手法により生成された画像を用いてもよい。なお学習画像は、様々な鏡面反射成分が含まれる画像を含むことが好ましい。学習画像に含まれない鏡面反射の仕方をしている画像は、高精度に鏡面反射成分を除去することができないためである。また、学習画像に含まれる鏡面反射成分の有無が異なる画像は一対のみでもよいが、前述の理由により複数の画像を含むことが好ましい。
【００４７】
続いてステップＳ２０２において、学習部１０２ａは、ステップＳ２０１にて取得した学習画像から、複数の学習ペアを取得する。学習ペアは、学習部分領域（学習領域）と学習拡散部分領域とからなる。学習部分領域は鏡面反射成分を含む画像から取得され、そのサイズはステップＳ１０２にて取得した撮影画像の部分領域と同じである。学習拡散部分領域は鏡面反射成分を含まない画像から取得され、学習部分領域の中心は画像において学習拡散部分領域の中心と同じ位置である。そのサイズは、ステップＳ１０３にて生成された拡散部分領域と同じである。前述と同様に、学習部分領域と学習拡散部分領域のペア（学習ペア）は、一対一に対応している必要はない。一つの学習拡散部分領域と、複数の学習部分領域とがペア（グループ）になっていてもよい。
【００４８】
続いてステップＳ２０３において、鏡面反射除去部１０２ａは、複数の学習ペア（学習部分領域と学習拡散部分領域）から、学習情報を学習によって取得（生成）する。学習では、鏡面反射成分を除去するネットワーク構造と同じネットワーク構造を使用する。本実施例では、図１に示されるネットワーク構造に対して学習拡散部分領域を入力し、その出力結果と学習部分領域との誤差を算出する。この誤差が最小となるように、例えば誤差逆伝播法（Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）などを用いて、第１乃至Ｎ＋１層で用いる複数のフィルタのそれぞれの係数や加算する定数（学習情報）を更新して最適化する。各フィルタの係数および定数の初期値は任意に設定することができ、例えば乱数から決定される。または、各層ごとに初期値を事前学習するＡｕｔｏ  Ｅｎｃｏｄｅｒなどのプレトレーニングを行ってもよい。Ａｕｔｏ  Ｅｎｃｏｄｅｒの詳細は、非特許文献５に説明されている。
【００４９】
学習ペアの全てをネットワーク構造へ入力し、それら全ての情報を使って学習情報を更新する手法をバッチ学習と呼ぶ。ただし、この学習方法は、学習ペアの数が増えるにつれて計算負荷が膨大になる。逆に、学習情報の更新に一つの学習ペアのみを使用し、更新ごとに異なる学習ペアを使用する学習手法をオンライン学習と呼ぶ。この手法は、学習ペアが増えても計算量が増大しないが、一つの学習ペアに存在するノイズの影響を大きく受ける。このため、これら２つの手法の中間に位置するミニバッチ法を用いて学習することが好ましい。ミニバッチ法は、全学習ペアの中から少数を抽出し、それらを用いて学習情報の更新を行う。次の更新では、異なる小数の学習ペアを抽出して使用する。これを繰り返すことにより、バッチ学習とオンライン学習の不利な点を小さくすることができ、高い鏡面反射除去効果を得やすくなる。
【００５０】
続いてステップＳ２０４において、鏡面反射除去部１０２ａは、学習された学習情報を出力する。本実施例において、学習情報は記憶部１０３に記憶される。以上の処理により、高精度に鏡面反射成分を除去するための学習情報を学習することができる。
【００５１】
また、以上の処理に加えて、ＣＮＮの性能を向上させる工夫を併用してもよい。例えば、ロバスト性の向上のためネットワークの各層において、ドロップアウト（Ｄｒｏｐｏｕｔ）やダウンサンプリングであるプーリング（ｐｏｏｌｉｎｇ）を行ってもよい。または、学習精度の向上のため、学習画像の画素の平均値を０、分散を１に正規化し、隣接する画素の冗長性をなくすＺＣＡホワイトニング（ＺＣＡ  ｗｈｉｔｅｎｉｎｇ）などを併用してもよい。ドロップアウトおよびＺＣＡホワイトニングの詳細はそれぞれ、非特許文献６および非特許文献７に説明されている。
【００５２】
本実施例によれば撮影画像から高精度に鏡面反射成分を低減（除去）することが可能な撮像装置を提供することができる。
【実施例２】
【００５３】
次に、本発明の実施例２における画像処理システムについて説明する。本実施例の画像処理システムにおいて、鏡面反射成分を除去（低減）する画像処理装置と、撮影画像を取得する撮像装置、および、学習を行うサーバが個別に設けられている。また本実施例では、鏡面反射領域の大きさを判定することにより、使用する学習情報を切り替える。鏡面反射領域の大きさに応じて、鏡面反射成分の除去処理に使用する学習情報を個別に学習して使用することにより、より高精度な鏡面反射成分の除去（低減）が可能となる。
【００５４】
図８および図９を参照して、本実施例における画像処理システムについて説明する。図８は、画像処理システム２００のブロック図である。図９は、画像処理システム２００の外観図である。図８および図９に示されるように、画像処理システム２００は、撮像装置３００、画像処理装置３０１、サーバ３０５、表示装置３０８、記録媒体３０９、および、出力装置３１０を備えて構成される。
【００５５】
撮像装置３００の基本構成は、鏡面反射成分の除去と学習情報の学習に関する画像処理部を除いて、図２を参照して説明した撮像装置１００と同様である。撮像装置３００を用いて撮影された撮影画像（入力画像）は、画像処理装置３０１に設けられた記憶部３０２に記憶される。画像処理装置３０１は、ネットワーク３０４と有線または無線で接続されており、ネットワーク３０４を介してサーバ３０５にアクセスすることができる。サーバ３０５は、撮影画像から鏡面反射成分を除去するための学習情報を学習する学習部３０７と、学習情報を記憶する記憶部３０６とを有する。画像処理装置３０１に設けられた鏡面反射除去部３０３（画像処理部）は、サーバ３０５の記憶部３０６からネットワーク３０４を介して学習情報を取得し、撮影画像の鏡面反射成分を除去する。鏡面反射除去部３０３により鏡面反射成分が除去された画像等の出力画像は、表示装置３０８、記録媒体３０９、および、出力装置３１０の少なくとも一つに出力される。表示装置３０８は、例えば液晶ディスプレイやプロジェクタである。ユーザは、表示装置３０８を介して、処理途中の画像を確認しながら作業を行うことができる。記録媒体３０９は、例えば半導体メモリ、ハードディスク、ネットワーク上のサーバである。出力装置３１０は、例えばプリンタである。画像処理装置３０１は、必要に応じて現像処理やその他の画像処理を行う機能を有してもよい。
【００５６】
次に、図１０を参照して、鏡面反射成分の除去処理について説明する。図１０は、鏡面反射成分の除去処理を示すフローチャートである。図１０の各ステップは、主に、画像処理装置３０１の鏡面反射除去部３０３（画像処理部）により実行される。
【００５７】
まずステップＳ３０１において、鏡面反射除去部３０３は、記憶部３０２から、撮影画像（入力画像）を取得する。続いてステップＳ３０２において、鏡面反射除去部３０３は、撮影画像に含まれる鏡面反射領域の大きさを判定する。例えば、輝度値が所定の閾値以上である領域を鏡面反射領域として設定し、その領域を測定することにより鏡面反射領域の大きさを判定することができる。本実施例では、鏡面反射領域の大きさを、検出されたそれぞれの鏡面反射領域に含まれる画素数で考える。また、被写体に応じて鏡面反射領域の大きさが変わる場合があるため、撮影画像内の複数の位置に対して鏡面反射領域の大きさを判定し、部分領域の位置に応じて学習情報を切り替えてもよい。
【００５８】
続いてステップＳ３０３において、鏡面反射除去部３０３は、ステップＳ３０２にて判定された鏡面反射領域の大きさに基づいて、使用するネットワーク構造と学習情報、および、部分領域のサイズを決定する。本実施例において、鏡面反射除去部３０３は、図１に示されるＣＮＮを利用して鏡面反射成分を除去する。鏡面反射領域が部分領域のサイズよりも大きいと、鏡面反射領域周辺にある拡散反射成分のみの領域が部分領域に含まれなくなる可能性があるため、高精度な鏡面反射成分の除去を行うことができない。また、ＣＮＮでは各層でフィルタをコンボリューションして鏡面反射成分を除去するため、それらのフィルタが影響する範囲を合わせた範囲が、撮影画像の鏡面反射領域より小さいと、鏡面反射成分を正しく除去することができない。例えば、全層数が２で、第１層のフィルタサイズが５×５、第２層のフィルタサイズが３×３である場合、ある画素の鏡面反射成分の除去に使用できる範囲は、この画素を中心とした７×７画素である。このため、このネットワーク構造では、鏡面反射領域の大きさが７画素以下になっていない場合、鏡面反射成分を高精度に除去することができない。したがって、鏡面反射成分の大きさに基づいて、ある画素の鏡面反射成分の除去に使用される範囲（各層のフィルタのサイズに応じて決定される）を決定することが好ましい。
【００５９】
より詳細には、以下の条件式（５）を満足するように、各層のフィルタのサイズを決定することが好ましい。
【００６０】
【数２】
2019074777.tif 000004
【００６１】
条件式（５）において、ｄは撮影画像（入力画像）の画素に対する鏡面反射領域の大きさであり、鏡面反射領域の１次元方向における長さを画素数で表している。Ｎ＋１は全層数である。ｓｍ（ｍ＝１〜Ｎ＋１）は、第ｍ線型変換で使用するフィルタのサイズ（第ｍ線型変換（ｍ＝１〜Ｎ＋１）のそれぞれにおけるフィルタの１次元サイズ）である。第ｍ線型変換で複数のサイズのフィルタが混合して使用される場合、ｓｍは最大のフィルタサイズである。条件式（５）の上限は、ある画素の鏡面反射成分の除去に使用できる範囲が、鏡面反射領域の大きさ以上であることを示している。一方、条件式（５）の下限は、理論的に超えることができない。
【００６２】
ネットワーク構造は、各層で使用するフィルタのサイズだけでなく、一つの層で使用されるフィルタの数や層数なども含む。鏡面反射成分の除去を高精度に行うには、鏡面反射領域が大きいほど層数やフィルタの数を増やす必要がある。学習情報は、鏡面反射領域の大きさごとに学習されており、その中から撮影画像に含まれる鏡面反射領域の大きさに対応した学習情報を使用する。これにより、より精度の高い鏡面反射成分の除去が可能となる。なお、学習の詳細に関しては後述する。
【００６３】
続いてステップＳ３０４において、鏡面反射除去部３０３は、撮影画像から部分領域（撮影画像の少なくとも一部の領域）を取得する。続いてステップＳ３０５において、鏡面反射除去部３０３は、ステップＳ３０３にて決定された学習情報に基づいて、拡散部分領域を生成する。続いてステップＳ３０６において、鏡面反射除去部３０３は、撮影画像のうち所定の領域（部分領域）の全てに対して鏡面反射成分の除去処理（補正）が完了したか否かを判定する。所定の領域の全てに対して鏡面反射成分の除去が完了した場合、ステップＳ３０７へ進む。一方、鏡面反射成分の除去が完了していない領域（部分領域）が残っている場合、ステップＳ３０４へ戻り、鏡面反射除去部３０３は、まだ鏡面反射成分が除去されていない部分領域（新たな部分領域）を撮影画像から取得する。ステップＳ３０７において、鏡面反射除去部３０３は、鏡面反射成分が除去された画像を出力する。
【００６４】
なお、撮影画像中の位置に応じて鏡面反射領域の大きさが大きく異なる場合、鏡面反射除去部３０３は、ステップＳ３０４をステップＳ３０２、Ｓ３０３の前に実行することが好ましい。このとき鏡面反射除去部３０３は、ステップＳ３０２、Ｓ３０３において、撮影画像の局所領域に対して鏡面反射領域の大きさを取得し、対応する学習情報などを取得する。
【００６５】
次に、サーバ３０５の学習部３０７により行われる学習情報の学習に関して説明する。本実施例において、学習部３０７は、鏡面反射領域の大きさに応じて異なる学習情報を学習する。学習方法は、図７を参照して実施例１にて説明した方法と基本的に同様であるが、学習画像の用意の仕方によりその前処理が異なる。
【００６６】
まず、鏡面反射成分を含む画像と鏡面反射成分を含まない画像とを含む学習画像をレンダリングによって生成する場合に関して説明する。この場合、被写体表面の粗さや光源の大きさ等の鏡面反射領域の大きさに関するパラメータを設定して鏡面反射成分を含まない画像から鏡面反射成分を含む画像を生成し、一対の学習画像を得る。学習部３０７は、取得した学習画像に対してステップＳ２０１乃至ステップＳ２０４を実行し、その後、異なる鏡面反射領域の大きさに対して同様の手順を繰り返す。
【００６７】
次に、鏡面反射成分を含む画像から鏡面反射成分を含まない画像を求めて、学習画像を生成する場合に関して説明する。この場合、鏡面反射成分を含まない画像を求める際に鏡面反射成分のみの鏡面反射画像を取得することができ、鏡面反射領域の大きさが求まるため、これにより学習画像を複数のグループに分ける。グループ分けは画像単位で行うことができる。鏡面反射成分を含む１枚の画像内で鏡面反射領域の大きさが変化している場合、画像を分割してグループ分けを行ってもよい。各グループは鏡面反射領域の大きさが近い画像が含まれているため、グループごとにステップＳ２０１乃至ステップＳ２０４を実行して、学習情報を生成する。
【００６８】
本実施例によれば、撮影画像から高精度に鏡面反射成分を低減（除去）することが可能な画像処理システムを提供することができる。
【実施例３】
【００６９】
次に、本発明の実施例３における撮像装置について説明する。本実施例の撮像装置は、撮影画像（入力画像）から鏡面反射成分を推定する。なお、本実施例における撮像装置の構成および外観は、図２および図３を参照して実施例１にて説明した撮像装置１００と同様である。ただし本実施例の撮像装置には、画像処理部として、鏡面反射除去部１０２ｂに代えて鏡面反射推定部が設けられている。
【００７０】
図１１を参照して、撮影画像（入力画像）から鏡面反射領域（鏡面反射成分）を推定する処理について説明する。図１１は、鏡面反射成分の推定処理を示すフローチャートである。図１１の各ステップは、主に、画像処理部１０２の鏡面反射推定部（画像処理部）により実行される。
【００７１】
まずステップＳ４０１において、画像処理部１０２（鏡面反射推定部）は、撮影画像（入力画像）と学習情報とを取得する。学習情報の学習に関しては後述する。この学習により、撮影画像の部分領域と部分領域に含まれる鏡面反射領域とを結び付ける学習情報が取得されている。続いてステップＳ４０２において、鏡面反射推定部は、撮影画像から、鏡面反射領域を推定するための部分領域を取得する。本実施例において、鏡面反射推定部は、部分領域に含まれる画素（例えば中心画素）に鏡面反射成分が含まれる否かを、その周辺画素（部分領域に含まれている画素）の情報も利用して推定する。
【００７２】
続いてステップＳ４０３において、鏡面反射推定部は、ステップＳ４０１にて取得した学習情報に基づいて、鏡面反射領域を推定する。本実施例において、鏡面反射推定部は、図１２に示されるネットワーク構造を使用して推定を行う。図１２は、本実施例における鏡面反射成分（鏡面反射領域）を推定するネットワーク構造を示す図である。図１２において、中間データ４１０の生成までの工程は、図１を参照して実施例１で説明した工程と同様であるため、それらの説明を省略する。すなわち、図１２の部分領域４０１、フィルタ４０２、第１変換部分領域４０３、フィルタ４０４、および、中間データ４１０はそれぞれ、図１の部分領域２０１、フィルタ２０２、第１変換部分領域２０３、フィルタ２０４、および、中間データ２１０に相当する。
【００７３】
本実施例では、第Ｎ＋１層における第Ｎ＋１線型変換として、フルコネクション４１１を実行する。フルコネクション４１１は、入力される中間データ４１０の全信号の線型結合をとる。この際、各信号にかかる係数と加算される定数は、学習情報によって決定される。また、係数と定数は複数種類が存在し、それぞれの係数と定数に対して線型結合が計算され、複数の結果が出力される。フルコネクション４１１で出力された複数の値は、活性化関数によって変換され（第Ｎ＋１非線型変換）、ソフトマックス４１２に入力される。ソフトマックス４１２は、以下の式（６）で表されるソフトマックス関数を計算する。
【００７４】
【数３】
2019074777.tif 000005
【００７５】
式（６）において、ベクトルｘは第Ｎ＋１非線型変換で出力された複数の値を成分とする列ベクトル、ベクトルｗは学習情報から決定される係数を成分とした列ベクトルである。ベクトルｗの右肩に付いたＴは、転置を表す。式（６）によって、部分領域４０１に含まれる鏡面反射領域が、分布４１３ａ〜４１３ｄ（４１３ｅ以降は省略）のいずれであるかの確率を求めることができる。ここで分布とは、部分領域の各画素に鏡面反射成分が存在するか否かを示すものであり、白い部分では鏡面反射成分が存在し、黒い部分では鏡面反射成分が存在しないことを示している。式（６）のＫは分布の総数、ｊとｋは分布の番号を示すインデックスである。
【００７６】
続いて、図１１のステップＳ４０４において、鏡面反射推定部は、撮影画像のうち所定の領域（部分領域）の全てに対して鏡面反射領域の推定が完了したか否かを判定する。所定の領域の全てに対して推定が完了した場合、ステップＳ４０５へ進む。一方、推定が完了していない領域（部分領域）が残っている場合、ステップＳ４０２へ戻り、鏡面反射推定部は、まだ鏡面反射領域が推定されていない部分領域（新たな部分領域）を撮影画像から取得する。
【００７７】
ステップＳ４０５において、鏡面反射推定部は、所定の領域内の各部分領域における鏡面反射領域の推定結果を出力する。鏡面反射領域の推定結果は、鏡面反射成分が生じた被写体表面の状態を解析するためや、撮影画像から鏡面反射成分を除去するため等に用いることができる。鏡面反射成分を除去する場合、ディープラーニング以外の手法を用いてもよい。以上の処理により、鏡面反射成分を含む撮影画像から、鏡面反射領域を高精度に推定することができる。
【００７８】
次に、図１３を参照して、本実施例における学習情報の生成に関して説明する。図１３は、学習情報の学習を示すフローチャートである。図１３の各ステップは、主に、画像処理部１０２の学習部１０２ａにより行われる。ただし本実施例はこれに限定されるものではなく、学習情報の学習は、撮像装置１００とは別の装置（演算装置）に設けられた学習部で行ってもよい。本実施例では、実施例１と同様に、撮像装置１００の学習部１０２ａが学習情報を学習する場合について説明する。
【００７９】
まずステップＳ５０１において、学習部１０２ａは、学習画像を取得する。本実施例では、レンダリングにより作成した鏡面反射成分を含む画像と鏡面反射成分を含まない画像を学習画像とする。学習画像は単数でも複数でもよい。ただし、鏡面反射領域を精度よく推定するには、異なる鏡面反射成分が学習画像に含まれている必要がある。
【００８０】
続いてステップＳ５０２において、学習部１０２ａは、ステップＳ５０１にて取得した学習画像から、複数の学習ペアを取得する。本実施例において、学習ペアは、学習画像（鏡面反射成分を含む画像）の部分領域（学習用鏡面部分領域）、および、この部分領域に作用している鏡面反射成分に関する情報である。鏡面反射成分に関する情報とは、鏡面反射成分が含まれるか否かを示す複数の分布のうち特定の分布を示す番号である。複数の分布は、図１２に示される分布４１３ａ〜４１３ｄ（４１３ｅ以降は省略）であり、これらは事前に用意されて記憶部１０３に記憶されている。
【００８１】
続いてステップＳ５０３において、学習部１０２ａは、学習ペア（鏡面反射成分に関する情報と学習用鏡面部分領域）に基づいて、学習情報を生成する。学習情報の生成には、図１２のネットワーク構造が用いられる。続いてステップＳ５０４において、学習部１０２ａは、生成された学習情報を出力する。本実施例において、実施例２と同様に、鏡面反射領域の大きさごとに学習情報を用意してもよい。
【００８２】
本実施例によれば、撮影画像から高精度に鏡面反射成分を推定することが可能な撮像装置を提供することができる。
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８３】
各実施例によれば、撮影画像から鏡面反射成分を高精度に推定または低減することが可能な画像処理方法、画像処理装置、撮像装置、プログラム、および、記憶媒体を提供することができる。
【００８４】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００８５】
１０２  画像処理部
１０２ｂ、３０３  鏡面反射除去部（画像処理部）
１０３、３０２  記憶部
３０１  画像処理装置
【図１】
2019074777.tif 000007
【図２】
2019074777.tif 000008
【図３】
2019074777.tif 000009
【図４】
2019074777.tif 000010
【図５】
2019074777.tif 000011
【図６】
2019074777.tif 000012
【図７】
2019074777.tif 000013
【図８】
2019074777.tif 000014
【図９】
2019074777.tif 000015
【図１０】
2019074777.tif 000016
【図１１】
2019074777.tif 000017
【図１２】
2019074777.tif 000018
【図１３】
2019074777.tif 000019