(57)【特許請求の範囲】
【請求項１】
対象物に周囲の写り込みが認められる第１画像の画像データである第１画像データと、前記第１画像に対応する、前記対象物への写り込みが軽減された第２画像の第２画像データとを取得する取得ステップと、
前記第１画像データ及び前記第２画像データを用いてニューラルネットワークの学習を行うことで、入力画像データの画像から写り込みが除去された画像の画像データを出力する写り込み除去エンジンを生成する生成ステップと、
をコンピュータに実行させる、写り込み除去エンジン生成方法。
【請求項２】
前記生成ステップは、
前記第１画像データを入力画像データとし、前記第２画像データを正解画像データとしてニューラルネットワークの学習を行うことで、前記写り込み除去エンジンを生成する、
請求項１に記載の写り込み除去エンジン生成方法。
【請求項３】
前記ニューラルネットワークは、敵対的生成ネットワークを構成する、
請求項１又は２に記載の写り込み除去エンジン生成方法。
【請求項４】
前記生成ステップにおいて、
前記第１画像データを入力画像データとし、前記第１画像に対応する、前記対象物への写り込みが軽減された第３画像データを生成する第１ニューラルネットワークと、
前記第１画像データ及び前記第２画像データからなる真の組と、前記第１画像データ及び前記第３画像データからなる偽の組との入力に応じて、真の組であるか偽の組であるかを識別する第２ニューラルネットワークと、
を用い、
前記第１ニューラルネットワークに、前記第１画像データを入力して前記第３画像データを生成し、前記第２ニューラルネットワークに前記偽の組を入力して真の組であるか偽の組であるかを識別する第１識別ステップと、
前記第２ニューラルネットワークに前記真の組を入力して真の組であるか偽の組であるかを識別する第２識別ステップと、
前記第１識別ステップ及び前記第２識別ステップを複数回繰り返して、前記第１ニューラルネットワーク及び前記第２ニューラルネットワークの学習を行う学習ステップと、
をコンピュータに実行させる、請求項１から３のいずれか１項に記載の写り込み除去エンジン生成方法。
【請求項５】
前記学習ステップは、前記第２ニューラルネットワークが前記偽の組を前記真の組と識別するように、前記第１ニューラルネットワークを学習する、
請求項４に記載の写り込み除去エンジン生成方法。
【請求項６】
偏光フィルタを互いに異なる角度に設定して前記対象物を撮像することにより取得された複数の画像データから前記第２画像データを作成する作成ステップを前記コンピュータに実行させる、
請求項１から５のいずれか1項に記載の写り込み除去エンジン生成方法。
【請求項７】
前記作成ステップは、前記複数の画像データの互いに対応する画像領域において写り込みが少ないと判断される画像の画像領域を切り出して他の画像領域と繋ぎ合わせることにより前記第２画像データを作成する、
請求項６に記載の写り込み除去エンジン生成方法。
【請求項８】
前記作成ステップは、前記複数の画像データを重ね合わせることにより前記第２画像データを作成する
請求項６に記載の写り込み除去エンジン生成方法。
【請求項９】
前記作成ステップは、前記複数の画像データの互いに対応する画像領域において、各画像データの画素毎の輝度値に重み付けをして重ね合わせることにより前記第２画像データを作成する
請求項８に記載の写り込み除去エンジン生成方法。
【請求項１０】
前記作成ステップは、前記複数の画像データの互いに対応する画像領域において、各画像データの画素毎の輝度値が最小値の画像データの画素値を採用するようにして重ね合わせることにより前記第２画像データを作成する
請求項８に記載の写り込み除去エンジン生成方法。
【請求項１１】
前記第２画像データから前記対象物を抽出し、当該対象物に所定の写り込みデータを合成して前記第1画像データを作成するステップを前記コンピュータに実行させる、
請求項１から５のいずれか1項に記載の写り込み除去エンジン生成方法。
【請求項１２】
請求項１から１１のいずれか１項に記載の写り込み除去エンジンを用いて入力画像データの画像から写り込みを除去する除去ステップと、
写り込みが除去された画像から対象物の表面に異常があるか否かを検知する異常検知ステップと
をコンピュータに実行させる異常検知方法。
【請求項１３】
請求項１から１１のいずれか１項に記載の写り込み除去エンジンを用いて入力画像データの画像から写り込みを除去する除去ステップと、
写り込みが除去された画像から対象物の表面に所定の部品が存在するか否かを検知する部品検知ステップと
をコンピュータに実行させる部品検知方法。
【請求項１４】
請求項１から１１のいずれか１項に記載の写り込み除去エンジン生成方法をコンピュータに実行させるプログラム。
【請求項１５】
対象物に周囲の写り込みが認められる第１画像の画像データである第１画像データと、前記第１画像に対応する、前記対象物への写り込みが軽減された第２画像の第２画像データとを取得する取得部と、
前記第１画像データ及び前記第２画像データを用いてニューラルネットワークの学習を行うことで、入力画像データの画像から写り込みが除去された画像の画像データを出力する写り込み除去エンジンを生成する生成部と、
備える、写り込み除去エンジン生成装置。
【請求項１６】
前記第１画像データを入力画像データとし、前記第１画像に対応する、前記対象物への写り込みが軽減された第３画像データを生成する第１ニューラルネットワークと、
前記第１画像データ及び前記第２画像データからなる真の組と、前記第１画像データ及び前記第３画像データからなる偽の組との入力に応じて、真の組であるか偽の組であるかを識別する第２ニューラルネットワークと、
をさらに備える、
請求項１５に記載の写り込み除去エンジン生成装置。
【請求項１７】
対象物に周囲の写り込みが認められる第１画像の画像データである第１画像データと、前記第１画像に対応する、前記対象物への写り込みが軽減された第２画像の第２画像データとを用いてニューラルネットワークの学習を行うことで生成される、入力画像データの画像から写り込みが除去された画像の画像データを生成する処理を行なう処理部と、
入力画像データを受け付ける入力部と、
前記処理部により前記入力データから写り込みが除去された画像を出力する出力部と、
を備える、写り込み除去装置。
【請求項１８】
前記ニューラルネットワークは、敵対的生成ネットワークを構成する、
請求項１７に記載の写り込み除去装置。
【請求項１９】
前記ニューラルネットワークは、
前記第１画像データを入力画像データとし、前記第１画像に対応する、前記対象物への写り込みが軽減された第３画像データを生成する第１ニューラルネットワークと、
前記第１画像データ及び前記第２画像データからなる真の組と、前記第１画像データ及び前記第３画像データからなる偽の組との入力に応じて、真の組であるか偽の組であるかを識別する第２ニューラルネットワークと、
をさらに備え
前記処理部が前記第１ニューラルネットワークを用いて構成される、
請求項１７又は１８に記載の写り込み除去装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、写り込み除去エンジン生成方法、プログラム、写り込み除去エンジン生成装置、写り込み除去装置、異常検知方法及び部品検知方法に関する。
【背景技術】
【０００２】
車両内部からフロントガラスを通して外方を撮像する場合に、ダッシュボードの写り込みを除去する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２３０５６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像の用途が拡がるにつれ、写り込みに隠れた被写体表面の情報が欲しいという要望や、写り込みから撮影場所を推測されたくないという要望など、写り込みに対する要望が高まっている。しかし、被写体に写り込みが生じる状況は様々であり、特定の状況に対処できるシステムを開発しても、他の状況では効果が得られないことも多い。
【課題を解決するための手段】
【０００５】
第１観点に係る写り込み除去エンジン生成方法は、取得ステップと、生成ステップと、をコンピュータに実行させる。取得ステップは、対象物に周囲の写り込みが認められる第１画像の画像データである第１画像データと、第１画像に対応する、対象物への写り込みが軽減された第２画像の第２画像データとを取得する。生成ステップは、第１画像データ及び第２画像データを用いてニューラルネットワークの学習を行うことで、入力画像データの画像から写り込みが除去された画像の画像データを出力する写り込み除去エンジンを生成する。【０００６】
第２観点に係る写り込み除去エンジン生成方法は、第１観点に係る写り込み除去エンジン生成方法であって、生成ステップが、第１画像データを入力画像データとし、第２画像データを正解画像データとしてニューラルネットワークの学習を行うことで、写り込み除去エンジンを生成する。【０００７】
第３観点に係る写り込み除去エンジン生成方法は、第１観点又は第２観点に係る写り込み除去エンジン生成方法であって、ニューラルネットワークが、敵対的生成ネットワークを構成する。【０００８】
第４観点に係る写り込み除去エンジン生成方法は、第１観点から第３観点のいずれかに係る写り込み除去エンジン生成方法であって、生成ステップにおいて、第１ニューラルネットワークと第２ニューラルネットワークとを用い、第１識別ステップと、第２識別ステップと、学習ステップと、をコンピュータに実行させる。第１ニューラルネットワークは、第１画像データを入力画像データとし、第１画像に対応する、対象物への写り込みが軽減された第３画像データを生成する。第２ニューラルネットワークは、第１画像データ及び第２画像データからなる真の組と、第１画像データ及び第３画像データからなる偽の組との入力に応じて、真の組であるか偽の組であるかを識別する。第１識別ステップは、第１ニューラルネットワークに、第１画像データを入力して第３画像データを生成し、第２ニューラルネットワークに偽の組を入力して真の組であるか偽の組であるかを識別する。第２識別ステップは、第２ニューラルネットワークに真の組を入力して真の組であるか偽の組であるかを識別する。学習ステップは、第１識別ステップ及び第２識別ステップを複数回繰り返して、第１ニューラルネットワーク及び第２ニューラルネットワークの学習を行う。【０００９】
第５観点に係る写り込み除去エンジン生成方法は、第４観点に係る写り込み除去エンジン生成方法であって、学習ステップにおいて、第２ニューラルネットワークが偽の組を真の組と識別するように、第１ニューラルネットワークを学習する。【００１０】
第６観点に係る写り込み除去エンジン生成方法は、第１観点から第５観点のいずれかに係る写り込み除去エンジン生成方法であって、偏光フィルタを互いに異なる角度に設定して対象物を撮像することにより取得された複数の画像データから第２画像データを作成する作成ステップをコンピュータに実行させる。【００１１】
第７観点に係る写り込み除去エンジン生成方法は、第６観点に係る写り込み除去エンジン生成方法であって、作成ステップにおいて、複数の画像データの互いに対応する画像領域において写り込みが少ないと判断される画像の画像領域を切り出して他の画像領域と繋ぎ合わせることにより第２画像データを作成する。【００１２】
第８観点に係る写り込み除去エンジン生成方法は、第６観点に係る写り込み除去エンジン生成方法であって、作成ステップにおいて、複数の画像データを重ね合わせることにより第２画像データを作成する。【００１３】
第９観点に係る写り込み除去エンジン生成方法は、第８観点に係る写り込み除去エンジン生成方法であって、作成ステップにおいて、複数の画像データの互いに対応する画像領域において、各画像データの画素毎の輝度値に重み付けをして重ね合わせることにより第２画像データを作成する。【００１４】
第１０観点に係る写り込み除去エンジン生成方法は、第８観点に係る写り込み除去エンジン生成方法であって、作成ステップにおいて、複数の画像データの互いに対応する画像領域において、各画像データの画素毎の輝度値が最小値の画像データの画素値を採用するようにして重ね合わせることにより第２画像データを作成する。【００１５】
第１１観点に係る写り込み除去エンジン生成方法は、第１観点から第５観点のいずれかに係る写り込み除去エンジン生成方法であって、第２画像データから対象物を抽出し、当該対象物に所定の写り込みデータを合成して第1画像データを作成するステップをコンピュータに実行させる。【００１６】
第１２観点に係る異常検知方法は、第１観点から第１１観点のいずれかに係る写り込み除去エンジンを用いて入力画像データの画像から写り込みを除去する除去ステップと、写り込みが除去された画像から対象物の表面に異常があるか否かを検知する異常検知ステップとをコンピュータに実行させる。【００１７】
第１３観点に係る部品検知方法は、第１観点から第１１観点のいずれかに係る写り込み除去エンジンを用いて入力画像データの画像から写り込みを除去する除去ステップと、写り込みが除去された画像から対象物の表面に所定の部品が存在するか否かを検知する部品検知ステップとをコンピュータに実行させる。【００１８】
第１４観点に係るプログラムは、第１観点から第１１観点のいずれかに係る写り込み除去エンジン生成方法をコンピュータに実行させるものである。【００１９】
第１５観点に係る写り込み除去エンジン生成装置は、取得部と、生成部とを備える。取得部は、対象物に周囲の写り込みが認められる第１画像の画像データである第１画像データと、第１画像に対応する、対象物への写り込みが軽減された第２画像の第２画像データとを取得する。生成部は、第１画像データ及び第２画像データを用いてニューラルネットワークの学習を行うことで、入力画像データの画像から写り込みが除去された画像の画像データを出力する写り込み除去エンジンを生成する。【００２０】
第１６観点に係る写り込み除去エンジン生成装置は、第１５観点に係る写り込み除去エンジン生成装置であって、第１ニューラルネットワークと、第２ニューラルネットワークとをさらに備える。第１ニューラルネットワークは、第１画像データを入力画像データとし、第１画像に対応する、対象物への写り込みが軽減された第３画像データを生成する。第２ニューラルネットワークは、第１画像データ及び第２画像データからなる真の組と、第１画像データ及び第３画像データからなる偽の組との入力に応じて、真の組であるか偽の組であるかを識別する。【００２１】
第１７観点に係る写り込み除去装置は、処理部と、入力部と、出力部と、を備える。処理部は、対象物に周囲の写り込みが認められる第１画像の画像データである第１画像データと、第１画像に対応する、対象物への写り込みが軽減された第２画像の第２画像データとを用いてニューラルネットワークの学習を行うことで生成される、入力画像データの画像から写り込みが除去された画像の画像データを生成する処理を行なう。入力部は、入力画像データを受け付ける。出力部は、写り込み除去エンジンにより前記入力データから写り込みが除去された画像を出力する。【００２２】
第１８観点に係る写り込み除去装置は、第１７観点に係る写り込み除去装置であって、ニューラルネットワークが、敵対的生成ネットワークを構成するものである。【００２３】
第１９観点に係る写り込み除去装置は、第１８観点又は第１９観点に係る写り込み除去装置であって、ニューラルネットワークが、第１ニューラルネットワークと、第２ニューラルネットワークと、をさらに備える。第１ニューラルネットワークは、第１画像データを入力画像データとし、第１画像に対応する、対象物への写り込みが軽減された第３画像データを生成する。第２ニューラルネットワークは、第１画像データ及び第２画像データからなる真の組と、第１画像データ及び第３画像データからなる偽の組との入力に応じて、真の組であるか偽の組であるかを識別する。そして、写り込み除去装置の処理部が第１ニューラルネットワークを用いて構成されるものである。
【発明の効果】
【００２４】
本発明により、入力画像データの画像から写り込みが除去された画像の画像データを出力する、汎用性の高い写り込み除去エンジンを提供できる。
【図面の簡単な説明】
【００２５】
【図１】第１実施形態に係る写り込み除去エンジン生成装置の全体構成を示す構成図である。
【図２】写り込みのある画像を取得する取得状況を説明する図である。
【図３】写り込みが軽減された画像を取得する取得状況を説明する図である。
【図４】写り込みが軽減された複数の画像から、合成画像を生成する処理を説明する図である。
【図５】第１実施形態に係る学習の概念を説明する図である。
【図６】第１実施形態に係る学習処理を説明するフロー図である。
【図７】学習済みのＮＮを利用した傷検知システムを説明する図である。
【図８】第２実施形態に係る写り込み除去エンジン生成装置の全体構成を示す構成図である。
【図９】第２実施形態に係る敵対的生成ネットワークを説明するための模式図である。
【図１０】第２実施形態に係る学習処理を説明するためのフロー図である。
【図１１】第２実施形態に係る学習処理を説明するためのフロー図である。
【図１２】第３実施形態に係る写り込み除去エンジン生成装置の全体構成を示す構成図である。
【図１３】第４実施形態に係る写り込み除去装置１０の全体構成を示す構成図である。
【発明を実施するための形態】
【００２６】
＜第１実施形態＞
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【００２７】
図１は、第１実施形態に係る写り込み除去エンジン生成装置の全体構成を示す構成図である。写り込み除去エンジン生成装置は、主に、サーバー１００によって構成される。サーバー１００は、処理部１１０、記憶部１２０、および通信部１３０によって構成される。処理部１１０は、サーバー１００の制御とプログラムの実行処理を行うプロセッサ（ＧＰＵ）である。処理部１１０は、記憶部１２０に記憶された写り込み除去エンジン生成プログラムを読み出して、写り込み除去エンジンの生成に関する様々な処理を実行する。
【００２８】
記憶部１２０は、不揮発性の記憶媒体であり、例えば大容量のＨＤＤによって構成されている。記憶部１２０は、サーバー１００の制御や処理を実行するプログラムを格納するほか、写り込み除去エンジンの生成に用いる各種フィルタやルックアップテーブル、取得した画像データ等を蓄積する。本実施形態においては、記憶部１２０は、写り込み除去エンジンを生成するための学習を行わせるニューラルネットワーク１２１（以下「ＮＮ１２１」という）を記憶している。具体的に、ＮＮ１２１は、エンコーダ及びデコーダを有するネットワーク構造である。エンコーダは入力画像を次元削減しつつ特徴量を抽出するものである。デコーダはエンコーダで次元削減されたデータ及び特徴量から画像を生成するものである。
なお、記憶部１２０は、単体のハードウェアで構成されていなくても良く、例えば、プログラム等を格納する記憶媒体と画像データを蓄積する記憶媒体が別々のハードウェアで構成されても良い。通信部１３０は、外部機器との間でデータやコマンドの授受を行う。具体的にはＬＡＮなどの通信ユニットによって構成されている。
【００２９】
処理部１１０は、写り込み除去エンジン生成プログラムが指示する処理に応じて様々な演算を実行する機能演算部としての役割も担う。処理部１１０は、処理手順に応じて、画像取得部１１１、合成処理部１１２、および学習部１１３として機能し得る。これらの機能演算部の具体的な演算処理については、後述する。
【００３０】
サーバー１００は、対象物に周囲の写り込みが認められる「写り込みあり画像」の画像データと、当該写り込みあり画像に対応する、写り込みが軽減された「写り込み軽減画像」の画像データを取得し、それぞれをＮＮ１２１の学習に利用する。
【００３１】
まず、写り込みあり画像の取得について説明する。図２は、写り込みあり画像を取得する取得状況を説明する図である。ここでは被写体である対象物を、図示するように自家用車９００とする。
【００３２】
作業者は、カメラ２００により、自家用車９００を撮像する。このとき、カメラ２００のレンズにはＰＬフィルタ２１０を装着しない。このように撮像された画像は、ＰＬフィルタ２１０を装着していないので、自家用車９００のボディに生じていた写り込み９１０、９２０がそのまま画像に表れている。本実施形態においては、このような画像を写り込みあり画像と称する。カメラ２００は、写り込みあり画像の画像データを、例えばインターネットを経由してサーバー１００へ送信する。
【００３３】
次に、写り込みが軽減された写り込み軽減画像の取得について説明する。図３は、写り込みが軽減された写り込み軽減画像を取得する取得状況を説明する図である。作業者は、写り込みあり画像の撮像に続いて、カメラ２００のレンズにＰＬフィルタ２１０を装着し、ほぼ同じ位置および画角で、自家用車９００を撮像する。このときのＰＬフィルタの回転角度を０度とする。なお、作業者は、ＰＬフィルタの回転枠を回転させれば、被写体光のうち当該回転に応じた偏光面を有する成分を撮像素子へ入射させることができる。
【００３４】
このように撮像された画像は、ＰＬフィルタ２１０の回転角度が０度の場合に対応する偏光面を有する被写体光が結像したものである。例えば図示するように、自家用車９００のボディに生じていた写り込みのうち、写り込み９１０が除去され、写り込み９２０が残った写り込み軽減画像１が得られる。カメラ２００は、写り込み軽減画像１の画像データを、写り込みあり画像の画像データと同様にサーバー１００へ送信する。
【００３５】
次に、作業者は、レンズに装着されたＰＬフィルタ２１０を４５度の位置まで回転させて、自家用車９００を撮像する。このように撮像された画像は、ＰＬフィルタ２１０の回転角度が４５度の場合に対応する偏光面を有する被写体光が結像したものである。例えば図示するように、自家用車９００のボディに生じていた写り込みのうち、写り込み９２０の左側部分が除去され、他の写り込みが残った写り込み軽減画像２が得られる。カメラ２００は、写り込み軽減画像２の画像データを、写り込みあり画像の画像データと同様にサーバー１００へ送信する。
【００３６】
同様に、作業者は、レンズに装着されたＰＬフィルタ２１０を９０度の位置まで回転させて、自家用車９００を撮像する。このように撮像された画像は、ＰＬフィルタ２１０の回転角度が９０度の場合に対応する偏光面を有する被写体光が結像したものである。例えば図示するように、自家用車９００のボディに生じていた写り込みのうち、写り込み９２０の中央部分が除去され、他の写り込みが残った写り込み軽減画像３が得られる。カメラ２００は、写り込み軽減画像３の画像データを、写り込みあり画像の画像データと同様にサーバー１００へ送信する。
【００３７】
更に、作業者は、レンズに装着されたＰＬフィルタ２１０を１３５度の位置まで回転させて、自家用車９００を撮像する。このように撮像された画像は、ＰＬフィルタ２１０の回転角度が１３５度の場合に対応する偏光面を有する被写体光が結像したものである。例えば図示するように、自家用車９００のボディに生じていた写り込みのうち、写り込み９２０の右側部分が除去され、他の写り込みが残った写り込み軽減画像４が得られる。カメラ２００は、写り込み軽減画像４の画像データを、写り込みあり画像の画像データと同様にサーバー１００へ送信する。
【００３８】
なお、ここでは０度、４５度、９０度、１３５度の４つの回転角に対応する４つの写り込み軽減画像を撮像したが、撮像する画像数は、これに限らない。更に細分化して多くの画像を得ても良いし、写り込み状態を確認しながらより少ない撮像回数で済ましても良い。また、本実施形態においては、作業者がＰＬフィルタを装着したり、その回転角度を調整したりすることを前提として説明したが、これらの作業をカメラ２００に自動的に実行させても良い。例えば、ＰＬフィルタ２１０をレンズの光路に対して進退可能に配設すると共に、光路中に配置されたときの回転もアクチュエーターで行うような機構を備えるカメラであれば、上記の一連の処理を自動的に実行することができる。このとき、カメラ２００の画像処理部に画像中の写り込みの増減を判断させれば、後に説明する合成処理を行いやすい写り込み軽減画像を選択してサーバー１００へ送信することもできる。
【００３９】
サーバー１００の画像取得部１１１が、通信部１３０を介してカメラ２００から写り込みあり画像の画像データと複数の写り込み軽減画像の画像データとを取得したら、合成処理部１１２は、写り込み軽減画像を用いて合成画像を生成する。図４は、写り込みが軽減された複数の画像から、合成画像を生成する処理を説明する図である。
【００４０】
合成処理部１１２は、写り込み軽減画像のそれぞれに対して区分領域を設定し、互いに対応する区分領域の周波数成分の違いを確認する。そして、相対的に高周波成分が少ないと判断される画像を、その区分領域において最も写り込みが軽減された画像と認定する。
【００４１】
図３に示す写り込み９１０に対応する写り込み領域３１０においては、写り込み軽減画像１から写り込み軽減画像４のうち、写り込み軽減画像１の高周波成分が相対的に少ない。そこで、合成処理部１１２は、写り込み領域３１０の全区分領域について、写り込み軽減画像１を最も写り込みが軽減された画像と認定する。
【００４２】
図３に示す写り込み９２０に対応する写り込み領域３２０においては、左側の区分領域については写り込み軽減画像２の、中央の区分領域については写り込み軽減画像３の、右側の区分領域については写り込み軽減画像４の、高周波成分が相対的に少ない。そこで、合成処理部１１２は、写り込み領域３１０の左側の区分領域については写り込み軽減画像２を、中央の区分領域については写り込み軽減画像３を、右側の区分領域については写り込み軽減画像４を、それぞれ最も写り込みが軽減された画像と認定する。
【００４３】
合成処理部１１２は、それぞれの区分領域において最も写り込みが軽減された画像と認定した画像から当該区分領域を切り出し、繋ぎ合わせて、「写り込みなし画像」を生成する。このように生成された写り込みなし画像は、いずれの区分領域においても写り込みがないとみなせる程度に写り込みが良好に軽減された画像である。合成処理部１１２は、このように合成した写り込みなし画像の画像データを、画像取得部１１１へ引き渡す。
【００４４】
ここで、画像間で画角を調整する手法について説明する。２つの画像を部分的につなぎ合わせて一つの画像を生成する場合には、当該２つの画像間で画角が揃っていることが好ましい。画像Ａと画像Ｂの画角を揃える場合に、合成処理部１１２は、まず、画像Ａと画像Ｂの特徴点マッチングを行う。特徴点マッチングは、少なくとも４点の対応点が必要であり、特徴点マッチングの計算に必要となる特徴量としては、ＯＲＢ、Ａ−ＫＡＺＥが利用しやすい。特徴点マッチングの手法としては、ＫＮＮ、Ｂｒｕｔｅ−Ｆｏｒｃｅ、ＦＬＡＮＮなどが挙げられる。次に、マッチングした特徴点を使用して画像Ａと画像Ｂのホモグラフィー行列を算出する。算出されたホモグラフィー行列を使用して画像Ｂの特徴点が画像Ａの特徴点に一致するように変換をかける。このような処理を施すことにより、画像Ｂの画角を画像Ａの画角に揃えることができる。
【００４５】
画像取得部１１１は、カメラ２００から取得した写り込みあり画像の画像データを入力画像データ、合成処理部１１２から取得した写り込みなし画像の画像データを正解画像データとして、学習部１１３へ引き渡す。学習部１１３は、これらの画像データを用いてＮＮ１２１の機械学習を行う。図５は、ＮＮ１２１の学習の概念を説明する図である。
【００４６】
写込除去エンジンは、ＮＮ１２１を学習して生成されるものであり、入力画像データの画像から写り込みが除去された画像の画像データを出力する機能を有する。写込除去エンジンは、例えば、、図示するような手法で生成される。すなわち、写り込みあり画像を入力画像としてＮＮ１２１に入力して出力画像を出力させ、その出力画像と、正解画像としての写り込みなし画像とを比較する。そして、その差分が小さくなるように、例えばバックプロバゲーションの手法によりエッジの重みを調整する。これを多くの入力画像と正解画像のペアで繰り返すことにより、実用に耐える状態までＮＮ１２１を学習させて、写り込み除去エンジンを生成する。
【００４７】
このように学習された写り込み除去エンジンは、入力画像データを入力すると、入力画像から写り込みが除去された画像の画像データを出力する。ここで、実用に耐える状態とは、入力画像から写り込みが完全に除去される状態に限らず、使用目的や用途に応じて、写り込みが一定の度合いで軽減される状態であっても許容され得る。作業者は、テスト段階において写り込みの除去程度を確認し、目標とする度合いが達成できていると判断すれば、学習済みのＮＮ１２１を写り込み除去エンジンとして各種装置へ供給、実装することができる。
【００４８】
写り込み除去エンジン生成装置であるサーバー１００の処理手順をまとめて説明する。図６は、ＮＮ１２１の学習処理を説明するフロー図である。まず、画像取得部１１１は、ステップＳ１０１で、対象物に周囲の写り込みが認められる写り込みあり画像の画像データ（第１画像データ）をカメラ２００から取得する。続いてステップＳ１０２で、ＰＬフィルタ２１０の回転角が調整されて撮像された、複数の写り込み軽減画像の画像データをカメラ２００から取得する。
【００４９】
合成処理部１１２は、ステップＳ１０３で、複数の写り込み軽減画像の画像データから、図４を用いて説明したように、一つの写り込みなし画像の画像データ（第２画像データ）を生成する。画像取得部１１１は、合成処理部１１２から第２画像データを取得し、第１画像データと第２画像データを対応付けて記憶部１２０へ記憶する。
【００５０】
画像取得部１１１は、ステップＳ１０４で、予め設定された一定数の第１画像データと第２画像データのペアを取得できたか否かを判断する。まだ取得てきていないと判断した場合は、ステップＳ１０１へ戻る。取得できたと判断した場合は、ステップＳ１０５へ進む。
【００５１】
学習部１１３は、ステップＳ１０５で、第１画像データを入力画像データ、第２画像データを正解画像データとして、ＮＮ１２１に対する教師あり学習を行う。全てのペアの画像データについて学習を終えたら、一連の処理を終了する。なお、上記の例では対象物を自家用車９００としたが、より汎用的な写り込み除去エンジンを生成したいのであれば、多種多様の対象物を撮像した第１画像データと第２画像データのペアを用意すれば良い。一方で、対象物が限定的である用途の場合には、当該対象物を撮像した第１画像データと第２画像データのペアを多く用意すれば良い。対象物が限定的であれば、写り込み除去の精度が向上する。
【００５２】
以上のように機械学習により生成された写り込み除去エンジンは、さまざまな場面において利用可能である。例えば、自家用車に発生した傷を的確に検知するシステムに利用できる。図７は、写り込み除去エンジンを利用した傷検知システムを説明する図である。
【００５３】
傷検知システムは、写り込みあり画像の画像データを写り込み除去エンジンへ入力すると、写り込みが除去された出力画像の画像データを得る。次に、傷検知システムは、この画像データを、学習済みの異常検知ニューラルネットワークへ入力する。学習済みの異常検知ニューラルネットワークは、入力画像に写る対象物の表面に傷があるか否かを検知するニューラルネットワークであり、傷を検知した場合にはその領域の座標情報を出力する。
【００５４】
傷検知システムは、異常検知ニューラルネットワークが出力した座標情報に強調処理を施し、接続されたモニタ等に表示する。例えば、図示するように、検知した傷の領域を円で取り囲み、検知した旨をテキストで利用者へ知らせる。傷検知システムは、このように、異常検知ニューラルネットワークへ取得画像データを入力する前に写り込み除去エンジンで写り込みを除去することにより、写り込みに隠れた傷も検知することができる。あるいは、写り込みは写り込み除去エンジンで除去されるので、傷検知システムは、画像に一見傷のような写り込みが存在しても、当該写りこみを誤って傷と検知することがなくなる。
【００５５】
写り込み除去エンジンは、上記のような対象物表面の傷検知に限らず、様々な異常検知システムにも応用できる。すなわち、写り込みによって隠れてしまっている対象物表面の異常を、写り込み除去エンジンを利用することにより、顕在化することができる。
【００５６】
また、写り込み除去エンジンは、傷検知システムを含む異常検知システムだけでなく、部品検知システムにも応用できる。学習済みの部品検知ニューラルネットワークと組み合わせることで、写り込みが除去された画像から対象物の表面に所定の部品が存在するか否かを検知することができる。ここで、学習済みの部品検知ニューラルネットワークは、入力画像に写る対象物の表面から、対象物の部品を検知するニューラルネットワークである。例えば、部品検知ニューラルネットワークにより、自動車の表面の各部品（バンパー、ウィンドウガラス、ライト、タイヤ、ドア等）を検知することができる。
【００５７】
その他、写り込み除去エンジンは、人物画像の瞳から写り込みを除去するような、写り込みが除去された画像の画像データそのものを出力させる装置にも応用可能であることは言うまでもない。
【００５８】
以上説明した本実施例においては、図４を用いて説明したように、複数の写り込み軽減画像から写り込みなし画像を生成する場合に、高周波成分を指標として区分領域を切り出して繋ぎ合わせた。しかし、合成画像の生成アルゴリズムはこれに限らない。例えば、区分領域を設定することなく、ピクセル単位で輝度を評価する手法を採用することもできる。換言すると、画像データを繋ぎ合わせるのではなく、画像データを重ね合わせることにより、写り込みなし画像を生成してもよい。
【００５９】
具体的には、複数の写り込み軽減画像の画像データの互いに対応する画像領域において、各画像データのピクセル（画素）毎の輝度値に重み付けをして重ね合わせることにより写り込みなし（第２画像データ）を作成する。
【００６０】
詳しくは、ピクセル単位で輝度の低いものに強い重みをかけて合成する。例えば、画像Ａ、画像Ｂ、画像Ｃにおいて、相互に対応するそれぞれのピクセルの輝度値が、２００、１５０、１００であったとする。まず、輝度の最大値（２００）から各々の輝度値を引いて、０、５０、１００を得る。そして、全ての輝度の和が１となるように各々の輝度（０、５０、１００）を輝度の合計値（０＋５０＋１００＝１５０）で割って、それぞれのピクセルの重み係数（０／１５０＝０、５０／１５０＝０．３３、１００／１５０＝０．６７）を算出する。
【００６１】
画像Ａの重み係数（０）、画像Ｂの重み係数（０．３３）、画像Ｃの重み係数（０．６７）が決定したら、合成画像としての当該ピクセルのピクセル値をＲＧＢごとに計算する。具体的には、合成画像のピクセル値（Ｒ，Ｇ，Ｂ）＝（ＲＡ，ＧＡ，ＢＡ）×０＋（ＲＢ，ＧＢ，ＢＢ）×０．３３＋（ＲＣ，ＧＣ，ＢＣ）×０．６７のように計算する。このような処理を全ピクセルに適用することで自然な合成画像を生成することができる。なお、ＰＬフィルタを使用して取得した画像は全体的にアンダーな画像になるので、γ補正を掛けるなどして、輝度調整を行っても良い。
【００６２】
さらに、複数の写り込み軽減画像の画像データのピクセル（画素）毎の輝度値に重み付けをして重ね合わせることにより写り込みなし画像を作成するのに代えて、複数の写り込み軽減画像の各画像データのピクセル毎の輝度値が最小値の画像データの輝度値を採用するようにして重ね合わせることにより写り込みなし画像を作成してもよい。
【００６３】
なお、以上説明した本実施形態においては、写り込み除去エンジン生成装置をサーバー１００で実現したが、写り込み除去エンジン生成装置の構成は、これに限らず、例えば記憶部１２０がサーバー１００の外部装置として構成されていても良いし、カメラ２００を含む構成であっても良い。
【００６４】
＜第２実施形態＞
図８は、第２実施形態に係る写り込み除去エンジン生成装置の全体構成を示す構成図である。以下、既に説明した構成及び機能については略同一符号を付して説明を省略する。また、本実施形態に特有の構成を説明する場合には符号に添え字「Ｓ」を付して説明することがある。第２実施形態に係る写り込み除去エンジン生成装置１００Ｓは、学習部１１３Ｓの処理が第１実施形態とは異なる。
【００６５】
学習部１１３Ｓは、図９に示すように、生成器５０Ｓ及び識別器６０Ｓにより構成される敵対的生成ネットワーク（ＧＡＮ）をさらに備える。敵対的生成ネットワーク（ＧＡＮ）は、例えば、"Image-to-Image Translation with Conditional Adversarial Networks" Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, Alexei A. Efros, CVPR 2017, Submitted on 21 Nov 2016, last revised 26 Nov 2018に記載の技術を応用することができる。
【００６６】
生成器５０Ｓは、ニューラルネットワークにより実現され、写り込みあり画像（第１画像データ）を入力画像データとし、写り込み画像（第１画像）に対応する、自家用車９００（対象物）への写り込みが軽減された偽写り込みなし画像（第３画像データ）を生成する機能を有している。
【００６７】
識別器６０Ｓは、ニューラルネットワークにより実現され、写り込みあり画像の画像データ及び写り込みなし画像の画像データ（第２画像データ）からなる「真の組」と、写り込みあり画像の画像データ及び偽写り込みなし画像の画像データからなる「偽の組」との入力に応じて、真の組であるか偽の組であるかを識別する機能を有している。
【００６８】
図１０、１１は学習部１１３Ｓによる学習処理を説明するフロー図である。第２実施形態においても、ステップＳ２０１〜Ｓ２０４で、図６に示すステップＳ１０１〜Ｓ１０４と同様の処理が行われる。そして、ステップＳ２０５で第１実施形態とは異なる学習処理が実行される。
【００６９】
詳しくは、学習部１１３Ｓは、記憶部１２０に記憶された写り込みあり画像の画像データを取得する（Ｓ３０１）。続いて、学習部１１３Ｓは、ステップＳ３０１で取得した写り込みあり画像の画像データを生成器５０Ｓに入力する。これにより、生成器５０Ｓは、偽写り込みなし画像の画像データを生成する（Ｓ３０２）。そして、学習部１１３Ｓは、ステップＳ３０１で取得した写り込みあり画像の画像データと、ステップＳ３０２で生成した偽写り込みなし画像の画像データとを「偽の組」として関連付ける。次に、学習部１１３Ｓは、偽の組を識別器６０Ｓに入力する（Ｓ３０３）。識別器６０Ｓは入力された偽の組が、後述する真の組とみなせるものか、偽の組であるのかを識別する。そして、学習部１１３Ｓは、識別結果に応じて、生成器５０Ｓ及び識別器６０Ｓのパラメータを更新する（Ｓ３０４）。この際、学習部１１３Ｓは、識別器６０Ｓが偽の組を真の組と識別するように生成器５０Ｓのパラメータを更新するとともに、識別器６０Ｓが偽の組を偽の組と識別するように識別器６０Ｓのパラメータを更新する。
【００７０】
次に、学習部１１３Ｓは、記憶部１２０に記憶された写り込みあり画像の画像データを取得する（Ｓ３０５）。続いて、学習部１１３Ｓは、ステップＳ３０５で取得した写り込みあり画像の画像データに対応する写り込みなし画像の画像データを記憶部１２０から取得する（Ｓ３０６）。そして、学習部１１３Ｓは、ステップＳ３０５で取得した写り込みあり画像の画像データと、ステップＳ３０６で取得した写り込みなし画像の画像データとを「真の組」として関連付ける。次に、学習部１１３Ｓは、真の組を識別器６０Ｓに入力する（Ｓ３０７）。識別器６０Ｓは入力された真の組が、真の組とみなせるものか、偽の組であるのかを識別する。そして、学習部１１３Ｓは、識別結果に応じて、生成器５０Ｓ及び識別器６０Ｓのパラメータを更新する（Ｓ３０８）。この際、学習部１１３Ｓは、識別器６０Ｓが真の組を真の組と識別するように識別器６０Ｓのパラメータを更新する。
【００７１】
次に、学習部１１３Ｓは、生成器５０Ｓ及び識別器６０Ｓの学習が終了したか否かを判定する（Ｓ３０９）。学習部１１３Ｓは、学習が終了していないと判定した場合、ステップＳ３０１〜Ｓ３０８の処理を繰り返す。このようにして、学習部１１３Ｓは、偽の組を識別するステップＳ３０１〜Ｓ３０４と、真の組を識別するためのステップＳ３０５〜Ｓ３０８とを予め設定された任意の回数で交互に実施して、生成器５０Ｓ及び識別器６０Ｓの学習を行う。そして、このように学習された生成器５０Ｓが写り込み除去エンジンとして取り扱われる。
【００７２】
なお、学習部１１３Ｓは、予め設定された回数の学習を繰り返すのではなく、写り込み軽減画像の画像データと、偽写り込み軽減画像の画像データとの差分を算出し、当該差分が所定値以内になったときに学習を終了するようにしてもよい。
【００７３】
また、上述の説明において、ステップＳ３０１〜Ｓ３０４の処理と、ステップＳ３０５〜ステップ３０８と処理とは順不同であり、入れ替えてもよいものである。
【００７４】
以上説明したように、第２実施形態に係る写り込み除去エンジン生成装置１００Ｓでは、生成器５０Ｓ及び識別器６０Ｓが、写り込みあり画像の画像データから写り込みなし画像の画像データを生成することを学習するので、写り込みあり画像の画像データから写り込みなしの画像データを生成する写り込み除去エンジンを提供できる。
【００７５】
＜第３実施形態＞
図１２は、第３実施形態に係る写り込み除去エンジン生成装置の全体構成を示す構成図である。以下、既に説明した構成及び機能については略同一符号を付して説明を省略する。また、本実施形態に特有の構成を説明する場合には符号に添え字「Ｔ」を付して説明することがある。第３実施形態に係る写り込み除去エンジン生成装置１００Ｔは、合成処理部１１２Ｔの処理が第１実施形態及び第２実施形態とは異なる。
【００７６】
第１実施形態及び第２実施形態に係る写り込み除去エンジン生成装置１００，１００Ｓでは、写り込みあり画像の画像データ（第１画像データ）に基づいて、写り込みなし画像（第２画像データ）を作成して、写り込み除去エンジンを生成した。
【００７７】
これに対し、第３実施形態に係る写り込み除去エンジン生成装置１００Ｔは、写り込みなし画像（第２画像データ）に基づいて、写り込みあり画像の画像データ（第１画像データ）を作成して、写り込み除去エンジンを生成する。すなわち、第３実施形態に係る写り込み除去エンジン生成装置１００Ｔでは、合成処理部１１２Ｔが、ＮＮ１２１の学習に先立って、写り込みなし画像の画像データ（第２画像データ）から対象物を抽出し、当該対象物に所定の写り込みデータを合成して写り込みあり画像の画像データ（第１画像データ）を作成する。
【００７８】
このように写り込みなし画像の画像データから写り込みあり画像の画像データを生成することで、写り込み除去エンジンを生成するために必要な、ＮＮ１２１の学習データを容易に準備することができるようになる。結果として、高精度な写り込み除去エンジンを提供できる。
【００７９】
＜第４実施形態＞
図１３は、第４実施形態に係る写り込み除去装置１０の全体構成を示す構成図である。以下、既に説明した構成及び機能については略同一符号を付して説明を省略する。
【００８０】
第４実施形態に係る写り込み除去装置１０は、第１実施形態から第３実施形態で生成される写り込み除去エンジンを搭載した装置である。この写り込み除去装置１０は、任意のコンピュータにより実現することができ、記憶部１１、入力部１２、出力部１３、及び処理部１４を備える。
【００８１】
記憶部１１は、各種情報を記憶するものであり、メモリ及びハードディスク等の任意の記憶装置により実現される。ここでは、記憶部２１は、上述した第１実施形態から第３実施形態で生成された写り込み除去エンジンを実現するためのニューラルネットワークのネットワーク構造及びパラメータのデータを記憶する。
【００８２】
入力部１２は、キーボード、マウス、タッチパネル等により実現され、コンピュータに各種情報を入力したり、コンピュータから各種情報を出力したりするものである。入力部１２を介して、入力画像データが受け付けられる。
【００８３】
出力部１３は、任意の表示装置によって実現される。ここでは、出力部１３により、入力画像データ及び処理部１４で処理された画像データが出力される。
【００８４】
処理部１４は、各種情報処理を実行するものであり、ＣＰＵやＧＰＵといったプロセッサ及びメモリにより実現される。ここでは、コンピュータのＣＰＵ，ＧＰＵ等に記憶部１１に記憶されたプログラムが読み込まれることにより、上述した第１実施形態から第３実施形態で生成された写り込み除去エンジンとして機能する。
【００８５】
第４実施形態に係る写り込み除去装置は、上述した構成を具備するので、写り込みのある画像データが入力された場合、写り込み除去エンジンにより写り込みが除去された画像を出力するものとなる。
【００８６】
＜他の実施形態＞
本開示は、上記各実施形態そのままに限定されるものではない。本開示は、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できるものである。また、本開示は、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の開示を形成できるものである。例えば、実施形態に示される全構成要素から幾つかの構成要素は削除してもよいものである。さらに、異なる実施形態に構成要素を適宜組み合わせてもよいものである。
【符号の説明】
【００８７】
１０      写り込み除去装置、
１１      記憶部
１２      入力部
１３      出力部
１４      処理部
１００    サーバー（写り込み除去エンジン生成装置）
１００Ｓ  サーバー（写り込み除去エンジン生成装置）
１００Ｔ  サーバー（写り込み除去エンジン生成装置）
１１０    処理部
１１１    画像取得部
１１２    合成処理部
１１２Ｔ  合成処理部
１１３    学習部
１１３Ｓ  学習部
１２０    記憶部
１２１    ＮＮ
１３０    通信部
２００    カメラ
２１０    ＰＬフィルタ
３１０    写り込み領域、
３２０    写り込み領域、
９００    自家用車、
９１０    写り込み
９２０    写り込み
【要約】
［課題］入力画像データの画像から写り込みが除去された画像の画像データを出力する、汎用性の高い写り込み除去エンジンを提供する。
［解決手段］写り込み除去エンジン生成方法は、コンピュータに取得ステップと生成ステップと実行させる。取得ステップは、対象物に周囲の写り込みが認められる第１画像の画像データである第１画像データと、第１画像に対応する、対象物への写り込みが軽減された第２画像の第２画像データとを取得する。生成ステップは、第１画像データ及び第２画像データを用いてニューラルネットワークの学習を行うことで、入力画像データの画像から写り込みが除去された画像の画像データを出力する写り込み除去エンジンを生成する。【図１】
0006843342.tif 000002
【図２】
0006843342.tif 000003
【図３】
0006843342.tif 000004
【図４】
0006843342.tif 000005
【図５】
0006843342.tif 000006
【図６】
0006843342.tif 000007
【図７】
0006843342.tif 000008
【図８】
0006843342.tif 000009
【図９】
0006843342.tif 000010
【図１０】
0006843342.tif 000011
【図１１】
0006843342.tif 000012
【図１２】
0006843342.tif 000013
【図１３】
0006843342.tif 000014