(58)【調査した分野】(Int.Cl.,DB名)
対象物に周囲の写り込みが認められる第1画像の画像データである第1画像データと、前記第1画像に対応する、前記対象物への写り込みが軽減された第2画像の第2画像データとを取得する取得ステップと、
前記第1画像データ及び前記第2画像データを用いてニューラルネットワークの学習を行うことで、入力画像データの画像から写り込みが除去された画像の画像データを出力する写り込み除去エンジンを生成する生成ステップと、
をコンピュータに実行させる、写り込み除去エンジン生成方法。
偏光フィルタを互いに異なる角度に設定して前記対象物を撮像することにより取得された複数の画像データから前記第2画像データを作成する作成ステップを前記コンピュータに実行させる、
請求項1から5のいずれか1項に記載の写り込み除去エンジン生成方法。
前記作成ステップは、前記複数の画像データの互いに対応する画像領域において写り込みが少ないと判断される画像の画像領域を切り出して他の画像領域と繋ぎ合わせることにより前記第2画像データを作成する、
請求項6に記載の写り込み除去エンジン生成方法。
前記作成ステップは、前記複数の画像データの互いに対応する画像領域において、各画像データの画素毎の輝度値に重み付けをして重ね合わせることにより前記第2画像データを作成する
請求項8に記載の写り込み除去エンジン生成方法。
前記作成ステップは、前記複数の画像データの互いに対応する画像領域において、各画像データの画素毎の輝度値が最小値の画像データの画素値を採用するようにして重ね合わせることにより前記第2画像データを作成する
請求項8に記載の写り込み除去エンジン生成方法。
対象物に周囲の写り込みが認められる第1画像の画像データである第1画像データと、前記第1画像に対応する、前記対象物への写り込みが軽減された第2画像の第2画像データとを取得する取得部と、
前記第1画像データ及び前記第2画像データを用いてニューラルネットワークの学習を行うことで、入力画像データの画像から写り込みが除去された画像の画像データを出力する写り込み除去エンジンを生成する生成部と、
備える、写り込み除去エンジン生成装置。
対象物に周囲の写り込みが認められる第1画像の画像データである第1画像データと、前記第1画像に対応する、前記対象物への写り込みが軽減された第2画像の第2画像データとを用いてニューラルネットワークの学習を行うことで生成される、入力画像データの画像から写り込みが除去された画像の画像データを生成する処理を行なう処理部と、
入力画像データを受け付ける入力部と、
前記処理部により前記入力データから写り込みが除去された画像を出力する出力部と、
を備える、写り込み除去装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
画像の用途が拡がるにつれ、写り込みに隠れた被写体表面の情報が欲しいという要望や、写り込みから撮影場所を推測されたくないという要望など、写り込みに対する要望が高まっている。しかし、被写体に写り込みが生じる状況は様々であり、特定の状況に対処できるシステムを開発しても、他の状況では効果が得られないことも多い。
【課題を解決するための手段】
【0005】
第1観点に係る写り込み除去エンジン生成方法は、取得ステップと、生成ステップと、をコンピュータに実行させる。取得ステップは、対象物に周囲の写り込みが認められる第1画像の画像データである第1画像データと、第1画像に対応する、対象物への写り込みが軽減された第2画像の第2画像データとを取得する。生成ステップは、第1画像データ及び第2画像データを用いてニューラルネットワークの学習を行うことで、入力画像データの画像から写り込みが除去された画像の画像データを出力する写り込み除去エンジンを生成する。
【0006】
第2観点に係る写り込み除去エンジン生成方法は、第1観点に係る写り込み除去エンジン生成方法であって、生成ステップが、第1画像データを入力画像データとし、第2画像データを正解画像データとしてニューラルネットワークの学習を行うことで、写り込み除去エンジンを生成する。
【0007】
第3観点に係る写り込み除去エンジン生成方法は、第1観点又は第2観点に係る写り込み除去エンジン生成方法であって、ニューラルネットワークが、敵対的生成ネットワークを構成する。
【0008】
第4観点に係る写り込み除去エンジン生成方法は、第1観点から第3観点のいずれかに係る写り込み除去エンジン生成方法であって、生成ステップにおいて、第1ニューラルネットワークと第2ニューラルネットワークとを用い、第1識別ステップと、第2識別ステップと、学習ステップと、をコンピュータに実行させる。第1ニューラルネットワークは、第1画像データを入力画像データとし、第1画像に対応する、対象物への写り込みが軽減された第3画像データを生成する。第2ニューラルネットワークは、第1画像データ及び第2画像データからなる真の組と、第1画像データ及び第3画像データからなる偽の組との入力に応じて、真の組であるか偽の組であるかを識別する。第1識別ステップは、第1ニューラルネットワークに、第1画像データを入力して第3画像データを生成し、第2ニューラルネットワークに偽の組を入力して真の組であるか偽の組であるかを識別する。第2識別ステップは、第2ニューラルネットワークに真の組を入力して真の組であるか偽の組であるかを識別する。学習ステップは、第1識別ステップ及び第2識別ステップを複数回繰り返して、第1ニューラルネットワーク及び第2ニューラルネットワークの学習を行う。
【0009】
第5観点に係る写り込み除去エンジン生成方法は、第4観点に係る写り込み除去エンジン生成方法であって、学習ステップにおいて、第2ニューラルネットワークが偽の組を真の組と識別するように、第1ニューラルネットワークを学習する。
【0010】
第6観点に係る写り込み除去エンジン生成方法は、第1観点から第5観点のいずれかに係る写り込み除去エンジン生成方法であって、偏光フィルタを互いに異なる角度に設定して対象物を撮像することにより取得された複数の画像データから第2画像データを作成する作成ステップをコンピュータに実行させる。
【0011】
第7観点に係る写り込み除去エンジン生成方法は、第6観点に係る写り込み除去エンジン生成方法であって、作成ステップにおいて、複数の画像データの互いに対応する画像領域において写り込みが少ないと判断される画像の画像領域を切り出して他の画像領域と繋ぎ合わせることにより第2画像データを作成する。
【0012】
第8観点に係る写り込み除去エンジン生成方法は、第6観点に係る写り込み除去エンジン生成方法であって、作成ステップにおいて、複数の画像データを重ね合わせることにより第2画像データを作成する。
【0013】
第9観点に係る写り込み除去エンジン生成方法は、第8観点に係る写り込み除去エンジン生成方法であって、作成ステップにおいて、複数の画像データの互いに対応する画像領域において、各画像データの画素毎の輝度値に重み付けをして重ね合わせることにより第2画像データを作成する。
【0014】
第10観点に係る写り込み除去エンジン生成方法は、第8観点に係る写り込み除去エンジン生成方法であって、作成ステップにおいて、複数の画像データの互いに対応する画像領域において、各画像データの画素毎の輝度値が最小値の画像データの画素値を採用するようにして重ね合わせることにより第2画像データを作成する。
【0015】
第11観点に係る写り込み除去エンジン生成方法は、第1観点から第5観点のいずれかに係る写り込み除去エンジン生成方法であって、第2画像データから対象物を抽出し、当該対象物に所定の写り込みデータを合成して第1画像データを作成するステップをコンピュータに実行させる。
【0016】
第12観点に係る異常検知方法は、第1観点から第11観点のいずれかに係る写り込み除去エンジンを用いて入力画像データの画像から写り込みを除去する除去ステップと、写り込みが除去された画像から対象物の表面に異常があるか否かを検知する異常検知ステップとをコンピュータに実行させる。
【0017】
第13観点に係る部品検知方法は、第1観点から第11観点のいずれかに係る写り込み除去エンジンを用いて入力画像データの画像から写り込みを除去する除去ステップと、写り込みが除去された画像から対象物の表面に所定の部品が存在するか否かを検知する部品検知ステップとをコンピュータに実行させる。
【0018】
第14観点に係るプログラムは、第1観点から第11観点のいずれかに係る写り込み除去エンジン生成方法をコンピュータに実行させるものである。
【0019】
第15観点に係る写り込み除去エンジン生成装置は、取得部と、生成部とを備える。取得部は、対象物に周囲の写り込みが認められる第1画像の画像データである第1画像データと、第1画像に対応する、対象物への写り込みが軽減された第2画像の第2画像データとを取得する。生成部は、第1画像データ及び第2画像データを用いてニューラルネットワークの学習を行うことで、入力画像データの画像から写り込みが除去された画像の画像データを出力する写り込み除去エンジンを生成する。
【0020】
第16観点に係る写り込み除去エンジン生成装置は、第15観点に係る写り込み除去エンジン生成装置であって、第1ニューラルネットワークと、第2ニューラルネットワークとをさらに備える。第1ニューラルネットワークは、第1画像データを入力画像データとし、第1画像に対応する、対象物への写り込みが軽減された第3画像データを生成する。第2ニューラルネットワークは、第1画像データ及び第2画像データからなる真の組と、第1画像データ及び第3画像データからなる偽の組との入力に応じて、真の組であるか偽の組であるかを識別する。
【0021】
第17観点に係る写り込み除去装置は、処理部と、入力部と、出力部と、を備える。処理部は、対象物に周囲の写り込みが認められる第1画像の画像データである第1画像データと、第1画像に対応する、対象物への写り込みが軽減された第2画像の第2画像データとを用いてニューラルネットワークの学習を行うことで生成される、入力画像データの画像から写り込みが除去された画像の画像データを生成する処理を行なう。入力部は、入力画像データを受け付ける。出力部は、写り込み除去エンジンにより前記入力データから写り込みが除去された画像を出力する。
【0022】
第18観点に係る写り込み除去装置は、第17観点に係る写り込み除去装置であって、ニューラルネットワークが、敵対的生成ネットワークを構成するものである。
【0023】
第19観点に係る写り込み除去装置は、第18観点又は第19観点に係る写り込み除去装置であって、ニューラルネットワークが、第1ニューラルネットワークと、第2ニューラルネットワークと、をさらに備える。第1ニューラルネットワークは、第1画像データを入力画像データとし、第1画像に対応する、対象物への写り込みが軽減された第3画像データを生成する。第2ニューラルネットワークは、第1画像データ及び第2画像データからなる真の組と、第1画像データ及び第3画像データからなる偽の組との入力に応じて、真の組であるか偽の組であるかを識別する。そして、写り込み除去装置の処理部が第1ニューラルネットワークを用いて構成されるものである。
【発明の効果】
【0024】
本発明により、入力画像データの画像から写り込みが除去された画像の画像データを出力する、汎用性の高い写り込み除去エンジンを提供できる。
【発明を実施するための形態】
【0026】
<第1実施形態>
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【0027】
図1は、第1実施形態に係る写り込み除去エンジン生成装置の全体構成を示す構成図である。写り込み除去エンジン生成装置は、主に、サーバー100によって構成される。サーバー100は、処理部110、記憶部120、および通信部130によって構成される。処理部110は、サーバー100の制御とプログラムの実行処理を行うプロセッサ(GPU)である。処理部110は、記憶部120に記憶された写り込み除去エンジン生成プログラムを読み出して、写り込み除去エンジンの生成に関する様々な処理を実行する。
【0028】
記憶部120は、不揮発性の記憶媒体であり、例えば大容量のHDDによって構成されている。記憶部120は、サーバー100の制御や処理を実行するプログラムを格納するほか、写り込み除去エンジンの生成に用いる各種フィルタやルックアップテーブル、取得した画像データ等を蓄積する。本実施形態においては、記憶部120は、写り込み除去エンジンを生成するための学習を行わせるニューラルネットワーク121(以下「NN121」という)を記憶している。具体的に、NN121は、エンコーダ及びデコーダを有するネットワーク構造である。エンコーダは入力画像を次元削減しつつ特徴量を抽出するものである。デコーダはエンコーダで次元削減されたデータ及び特徴量から画像を生成するものである。
なお、記憶部120は、単体のハードウェアで構成されていなくても良く、例えば、プログラム等を格納する記憶媒体と画像データを蓄積する記憶媒体が別々のハードウェアで構成されても良い。通信部130は、外部機器との間でデータやコマンドの授受を行う。具体的にはLANなどの通信ユニットによって構成されている。
【0029】
処理部110は、写り込み除去エンジン生成プログラムが指示する処理に応じて様々な演算を実行する機能演算部としての役割も担う。処理部110は、処理手順に応じて、画像取得部111、合成処理部112、および学習部113として機能し得る。これらの機能演算部の具体的な演算処理については、後述する。
【0030】
サーバー100は、対象物に周囲の写り込みが認められる「写り込みあり画像」の画像データと、当該写り込みあり画像に対応する、写り込みが軽減された「写り込み軽減画像」の画像データを取得し、それぞれをNN121の学習に利用する。
【0031】
まず、写り込みあり画像の取得について説明する。
図2は、写り込みあり画像を取得する取得状況を説明する図である。ここでは被写体である対象物を、図示するように自家用車900とする。
【0032】
作業者は、カメラ200により、自家用車900を撮像する。このとき、カメラ200のレンズにはPLフィルタ210を装着しない。このように撮像された画像は、PLフィルタ210を装着していないので、自家用車900のボディに生じていた写り込み910、920がそのまま画像に表れている。本実施形態においては、このような画像を写り込みあり画像と称する。カメラ200は、写り込みあり画像の画像データを、例えばインターネットを経由してサーバー100へ送信する。
【0033】
次に、写り込みが軽減された写り込み軽減画像の取得について説明する。
図3は、写り込みが軽減された写り込み軽減画像を取得する取得状況を説明する図である。作業者は、写り込みあり画像の撮像に続いて、カメラ200のレンズにPLフィルタ210を装着し、ほぼ同じ位置および画角で、自家用車900を撮像する。このときのPLフィルタの回転角度を0度とする。なお、作業者は、PLフィルタの回転枠を回転させれば、被写体光のうち当該回転に応じた偏光面を有する成分を撮像素子へ入射させることができる。
【0034】
このように撮像された画像は、PLフィルタ210の回転角度が0度の場合に対応する偏光面を有する被写体光が結像したものである。例えば図示するように、自家用車900のボディに生じていた写り込みのうち、写り込み910が除去され、写り込み920が残った写り込み軽減画像1が得られる。カメラ200は、写り込み軽減画像1の画像データを、写り込みあり画像の画像データと同様にサーバー100へ送信する。
【0035】
次に、作業者は、レンズに装着されたPLフィルタ210を45度の位置まで回転させて、自家用車900を撮像する。このように撮像された画像は、PLフィルタ210の回転角度が45度の場合に対応する偏光面を有する被写体光が結像したものである。例えば図示するように、自家用車900のボディに生じていた写り込みのうち、写り込み920の左側部分が除去され、他の写り込みが残った写り込み軽減画像2が得られる。カメラ200は、写り込み軽減画像2の画像データを、写り込みあり画像の画像データと同様にサーバー100へ送信する。
【0036】
同様に、作業者は、レンズに装着されたPLフィルタ210を90度の位置まで回転させて、自家用車900を撮像する。このように撮像された画像は、PLフィルタ210の回転角度が90度の場合に対応する偏光面を有する被写体光が結像したものである。例えば図示するように、自家用車900のボディに生じていた写り込みのうち、写り込み920の中央部分が除去され、他の写り込みが残った写り込み軽減画像3が得られる。カメラ200は、写り込み軽減画像3の画像データを、写り込みあり画像の画像データと同様にサーバー100へ送信する。
【0037】
更に、作業者は、レンズに装着されたPLフィルタ210を135度の位置まで回転させて、自家用車900を撮像する。このように撮像された画像は、PLフィルタ210の回転角度が135度の場合に対応する偏光面を有する被写体光が結像したものである。例えば図示するように、自家用車900のボディに生じていた写り込みのうち、写り込み920の右側部分が除去され、他の写り込みが残った写り込み軽減画像4が得られる。カメラ200は、写り込み軽減画像4の画像データを、写り込みあり画像の画像データと同様にサーバー100へ送信する。
【0038】
なお、ここでは0度、45度、90度、135度の4つの回転角に対応する4つの写り込み軽減画像を撮像したが、撮像する画像数は、これに限らない。更に細分化して多くの画像を得ても良いし、写り込み状態を確認しながらより少ない撮像回数で済ましても良い。また、本実施形態においては、作業者がPLフィルタを装着したり、その回転角度を調整したりすることを前提として説明したが、これらの作業をカメラ200に自動的に実行させても良い。例えば、PLフィルタ210をレンズの光路に対して進退可能に配設すると共に、光路中に配置されたときの回転もアクチュエーターで行うような機構を備えるカメラであれば、上記の一連の処理を自動的に実行することができる。このとき、カメラ200の画像処理部に画像中の写り込みの増減を判断させれば、後に説明する合成処理を行いやすい写り込み軽減画像を選択してサーバー100へ送信することもできる。
【0039】
サーバー100の画像取得部111が、通信部130を介してカメラ200から写り込みあり画像の画像データと複数の写り込み軽減画像の画像データとを取得したら、合成処理部112は、写り込み軽減画像を用いて合成画像を生成する。
図4は、写り込みが軽減された複数の画像から、合成画像を生成する処理を説明する図である。
【0040】
合成処理部112は、写り込み軽減画像のそれぞれに対して区分領域を設定し、互いに対応する区分領域の周波数成分の違いを確認する。そして、相対的に高周波成分が少ないと判断される画像を、その区分領域において最も写り込みが軽減された画像と認定する。
【0041】
図3に示す写り込み910に対応する写り込み領域310においては、写り込み軽減画像1から写り込み軽減画像4のうち、写り込み軽減画像1の高周波成分が相対的に少ない。そこで、合成処理部112は、写り込み領域310の全区分領域について、写り込み軽減画像1を最も写り込みが軽減された画像と認定する。
【0042】
図3に示す写り込み920に対応する写り込み領域320においては、左側の区分領域については写り込み軽減画像2の、中央の区分領域については写り込み軽減画像3の、右側の区分領域については写り込み軽減画像4の、高周波成分が相対的に少ない。そこで、合成処理部112は、写り込み領域310の左側の区分領域については写り込み軽減画像2を、中央の区分領域については写り込み軽減画像3を、右側の区分領域については写り込み軽減画像4を、それぞれ最も写り込みが軽減された画像と認定する。
【0043】
合成処理部112は、それぞれの区分領域において最も写り込みが軽減された画像と認定した画像から当該区分領域を切り出し、繋ぎ合わせて、「写り込みなし画像」を生成する。このように生成された写り込みなし画像は、いずれの区分領域においても写り込みがないとみなせる程度に写り込みが良好に軽減された画像である。合成処理部112は、このように合成した写り込みなし画像の画像データを、画像取得部111へ引き渡す。
【0044】
ここで、画像間で画角を調整する手法について説明する。2つの画像を部分的につなぎ合わせて一つの画像を生成する場合には、当該2つの画像間で画角が揃っていることが好ましい。画像Aと画像Bの画角を揃える場合に、合成処理部112は、まず、画像Aと画像Bの特徴点マッチングを行う。特徴点マッチングは、少なくとも4点の対応点が必要であり、特徴点マッチングの計算に必要となる特徴量としては、ORB、A−KAZEが利用しやすい。特徴点マッチングの手法としては、KNN、Brute−Force、FLANNなどが挙げられる。次に、マッチングした特徴点を使用して画像Aと画像Bのホモグラフィー行列を算出する。算出されたホモグラフィー行列を使用して画像Bの特徴点が画像Aの特徴点に一致するように変換をかける。このような処理を施すことにより、画像Bの画角を画像Aの画角に揃えることができる。
【0045】
画像取得部111は、カメラ200から取得した写り込みあり画像の画像データを入力画像データ、合成処理部112から取得した写り込みなし画像の画像データを正解画像データとして、学習部113へ引き渡す。学習部113は、これらの画像データを用いてNN121の機械学習を行う。
図5は、NN121の学習の概念を説明する図である。
【0046】
写込除去エンジンは、NN121を学習して生成されるものであり、入力画像データの画像から写り込みが除去された画像の画像データを出力する機能を有する。写込除去エンジンは、例えば、、図示するような手法で生成される。すなわち、写り込みあり画像を入力画像としてNN121に入力して出力画像を出力させ、その出力画像と、正解画像としての写り込みなし画像とを比較する。そして、その差分が小さくなるように、例えばバックプロバゲーションの手法によりエッジの重みを調整する。これを多くの入力画像と正解画像のペアで繰り返すことにより、実用に耐える状態までNN121を学習させて、写り込み除去エンジンを生成する。
【0047】
このように学習された写り込み除去エンジンは、入力画像データを入力すると、入力画像から写り込みが除去された画像の画像データを出力する。ここで、実用に耐える状態とは、入力画像から写り込みが完全に除去される状態に限らず、使用目的や用途に応じて、写り込みが一定の度合いで軽減される状態であっても許容され得る。作業者は、テスト段階において写り込みの除去程度を確認し、目標とする度合いが達成できていると判断すれば、学習済みのNN121を写り込み除去エンジンとして各種装置へ供給、実装することができる。
【0048】
写り込み除去エンジン生成装置であるサーバー100の処理手順をまとめて説明する。
図6は、NN121の学習処理を説明するフロー図である。まず、画像取得部111は、ステップS101で、対象物に周囲の写り込みが認められる写り込みあり画像の画像データ(第1画像データ)をカメラ200から取得する。続いてステップS102で、PLフィルタ210の回転角が調整されて撮像された、複数の写り込み軽減画像の画像データをカメラ200から取得する。
【0049】
合成処理部112は、ステップS103で、複数の写り込み軽減画像の画像データから、
図4を用いて説明したように、一つの写り込みなし画像の画像データ(第2画像データ)を生成する。画像取得部111は、合成処理部112から第2画像データを取得し、第1画像データと第2画像データを対応付けて記憶部120へ記憶する。
【0050】
画像取得部111は、ステップS104で、予め設定された一定数の第1画像データと第2画像データのペアを取得できたか否かを判断する。まだ取得てきていないと判断した場合は、ステップS101へ戻る。取得できたと判断した場合は、ステップS105へ進む。
【0051】
学習部113は、ステップS105で、第1画像データを入力画像データ、第2画像データを正解画像データとして、NN121に対する教師あり学習を行う。全てのペアの画像データについて学習を終えたら、一連の処理を終了する。なお、上記の例では対象物を自家用車900としたが、より汎用的な写り込み除去エンジンを生成したいのであれば、多種多様の対象物を撮像した第1画像データと第2画像データのペアを用意すれば良い。一方で、対象物が限定的である用途の場合には、当該対象物を撮像した第1画像データと第2画像データのペアを多く用意すれば良い。対象物が限定的であれば、写り込み除去の精度が向上する。
【0052】
以上のように機械学習により生成された写り込み除去エンジンは、さまざまな場面において利用可能である。例えば、自家用車に発生した傷を的確に検知するシステムに利用できる。
図7は、写り込み除去エンジンを利用した傷検知システムを説明する図である。
【0053】
傷検知システムは、写り込みあり画像の画像データを写り込み除去エンジンへ入力すると、写り込みが除去された出力画像の画像データを得る。次に、傷検知システムは、この画像データを、学習済みの異常検知ニューラルネットワークへ入力する。学習済みの異常検知ニューラルネットワークは、入力画像に写る対象物の表面に傷があるか否かを検知するニューラルネットワークであり、傷を検知した場合にはその領域の座標情報を出力する。
【0054】
傷検知システムは、異常検知ニューラルネットワークが出力した座標情報に強調処理を施し、接続されたモニタ等に表示する。例えば、図示するように、検知した傷の領域を円で取り囲み、検知した旨をテキストで利用者へ知らせる。傷検知システムは、このように、異常検知ニューラルネットワークへ取得画像データを入力する前に写り込み除去エンジンで写り込みを除去することにより、写り込みに隠れた傷も検知することができる。あるいは、写り込みは写り込み除去エンジンで除去されるので、傷検知システムは、画像に一見傷のような写り込みが存在しても、当該写りこみを誤って傷と検知することがなくなる。
【0055】
写り込み除去エンジンは、上記のような対象物表面の傷検知に限らず、様々な異常検知システムにも応用できる。すなわち、写り込みによって隠れてしまっている対象物表面の異常を、写り込み除去エンジンを利用することにより、顕在化することができる。
【0056】
また、写り込み除去エンジンは、傷検知システムを含む異常検知システムだけでなく、部品検知システムにも応用できる。学習済みの部品検知ニューラルネットワークと組み合わせることで、写り込みが除去された画像から対象物の表面に所定の部品が存在するか否かを検知することができる。ここで、学習済みの部品検知ニューラルネットワークは、入力画像に写る対象物の表面から、対象物の部品を検知するニューラルネットワークである。例えば、部品検知ニューラルネットワークにより、自動車の表面の各部品(バンパー、ウィンドウガラス、ライト、タイヤ、ドア等)を検知することができる。
【0057】
その他、写り込み除去エンジンは、人物画像の瞳から写り込みを除去するような、写り込みが除去された画像の画像データそのものを出力させる装置にも応用可能であることは言うまでもない。
【0058】
以上説明した本実施例においては、
図4を用いて説明したように、複数の写り込み軽減画像から写り込みなし画像を生成する場合に、高周波成分を指標として区分領域を切り出して繋ぎ合わせた。しかし、合成画像の生成アルゴリズムはこれに限らない。例えば、区分領域を設定することなく、ピクセル単位で輝度を評価する手法を採用することもできる。換言すると、画像データを繋ぎ合わせるのではなく、画像データを重ね合わせることにより、写り込みなし画像を生成してもよい。
【0059】
具体的には、複数の写り込み軽減画像の画像データの互いに対応する画像領域において、各画像データのピクセル(画素)毎の輝度値に重み付けをして重ね合わせることにより写り込みなし(第2画像データ)を作成する。
【0060】
詳しくは、ピクセル単位で輝度の低いものに強い重みをかけて合成する。例えば、画像A、画像B、画像Cにおいて、相互に対応するそれぞれのピクセルの輝度値が、200、150、100であったとする。まず、輝度の最大値(200)から各々の輝度値を引いて、0、50、100を得る。そして、全ての輝度の和が1となるように各々の輝度(0、50、100)を輝度の合計値(0+50+100=150)で割って、それぞれのピクセルの重み係数(0/150=0、50/150=0.33、100/150=0.67)を算出する。
【0061】
画像Aの重み係数(0)、画像Bの重み係数(0.33)、画像Cの重み係数(0.67)が決定したら、合成画像としての当該ピクセルのピクセル値をRGBごとに計算する。具体的には、合成画像のピクセル値(R,G,B)=(R
A,G
A,B
A)×0+(R
B,G
B,B
B)×0.33+(R
C,G
C,B
C)×0.67のように計算する。このような処理を全ピクセルに適用することで自然な合成画像を生成することができる。なお、PLフィルタを使用して取得した画像は全体的にアンダーな画像になるので、γ補正を掛けるなどして、輝度調整を行っても良い。
【0062】
さらに、複数の写り込み軽減画像の画像データのピクセル(画素)毎の輝度値に重み付けをして重ね合わせることにより写り込みなし画像を作成するのに代えて、複数の写り込み軽減画像の各画像データのピクセル毎の輝度値が最小値の画像データの輝度値を採用するようにして重ね合わせることにより写り込みなし画像を作成してもよい。
【0063】
なお、以上説明した本実施形態においては、写り込み除去エンジン生成装置をサーバー100で実現したが、写り込み除去エンジン生成装置の構成は、これに限らず、例えば記憶部120がサーバー100の外部装置として構成されていても良いし、カメラ200を含む構成であっても良い。
【0064】
<第2実施形態>
図8は、第2実施形態に係る写り込み除去エンジン生成装置の全体構成を示す構成図である。以下、既に説明した構成及び機能については略同一符号を付して説明を省略する。また、本実施形態に特有の構成を説明する場合には符号に添え字「S」を付して説明することがある。第2実施形態に係る写り込み除去エンジン生成装置100Sは、学習部113Sの処理が第1実施形態とは異なる。
【0065】
学習部113Sは、
図9に示すように、生成器50S及び識別器60Sにより構成される敵対的生成ネットワーク(GAN)をさらに備える。敵対的生成ネットワーク(GAN)は、例えば、"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に記載の技術を応用することができる。
【0066】
生成器50Sは、ニューラルネットワークにより実現され、写り込みあり画像(第1画像データ)を入力画像データとし、写り込み画像(第1画像)に対応する、自家用車900(対象物)への写り込みが軽減された偽写り込みなし画像(第3画像データ)を生成する機能を有している。
【0067】
識別器60Sは、ニューラルネットワークにより実現され、写り込みあり画像の画像データ及び写り込みなし画像の画像データ(第2画像データ)からなる「真の組」と、写り込みあり画像の画像データ及び偽写り込みなし画像の画像データからなる「偽の組」との入力に応じて、真の組であるか偽の組であるかを識別する機能を有している。
【0068】
図10、11は学習部113Sによる学習処理を説明するフロー図である。第2実施形態においても、ステップS201〜S204で、
図6に示すステップS101〜S104と同様の処理が行われる。そして、ステップS205で第1実施形態とは異なる学習処理が実行される。
【0069】
詳しくは、学習部113Sは、記憶部120に記憶された写り込みあり画像の画像データを取得する(S301)。続いて、学習部113Sは、ステップS301で取得した写り込みあり画像の画像データを生成器50Sに入力する。これにより、生成器50Sは、偽写り込みなし画像の画像データを生成する(S302)。そして、学習部113Sは、ステップS301で取得した写り込みあり画像の画像データと、ステップS302で生成した偽写り込みなし画像の画像データとを「偽の組」として関連付ける。次に、学習部113Sは、偽の組を識別器60Sに入力する(S303)。識別器60Sは入力された偽の組が、後述する真の組とみなせるものか、偽の組であるのかを識別する。そして、学習部113Sは、識別結果に応じて、生成器50S及び識別器60Sのパラメータを更新する(S304)。この際、学習部113Sは、識別器60Sが偽の組を真の組と識別するように生成器50Sのパラメータを更新するとともに、識別器60Sが偽の組を偽の組と識別するように識別器60Sのパラメータを更新する。
【0070】
次に、学習部113Sは、記憶部120に記憶された写り込みあり画像の画像データを取得する(S305)。続いて、学習部113Sは、ステップS305で取得した写り込みあり画像の画像データに対応する写り込みなし画像の画像データを記憶部120から取得する(S306)。そして、学習部113Sは、ステップS305で取得した写り込みあり画像の画像データと、ステップS306で取得した写り込みなし画像の画像データとを「真の組」として関連付ける。次に、学習部113Sは、真の組を識別器60Sに入力する(S307)。識別器60Sは入力された真の組が、真の組とみなせるものか、偽の組であるのかを識別する。そして、学習部113Sは、識別結果に応じて、生成器50S及び識別器60Sのパラメータを更新する(S308)。この際、学習部113Sは、識別器60Sが真の組を真の組と識別するように識別器60Sのパラメータを更新する。
【0071】
次に、学習部113Sは、生成器50S及び識別器60Sの学習が終了したか否かを判定する(S309)。学習部113Sは、学習が終了していないと判定した場合、ステップS301〜S308の処理を繰り返す。このようにして、学習部113Sは、偽の組を識別するステップS301〜S304と、真の組を識別するためのステップS305〜S308とを予め設定された任意の回数で交互に実施して、生成器50S及び識別器60Sの学習を行う。そして、このように学習された生成器50Sが写り込み除去エンジンとして取り扱われる。
【0072】
なお、学習部113Sは、予め設定された回数の学習を繰り返すのではなく、写り込み軽減画像の画像データと、偽写り込み軽減画像の画像データとの差分を算出し、当該差分が所定値以内になったときに学習を終了するようにしてもよい。
【0073】
また、上述の説明において、ステップS301〜S304の処理と、ステップS305〜ステップ308と処理とは順不同であり、入れ替えてもよいものである。
【0074】
以上説明したように、第2実施形態に係る写り込み除去エンジン生成装置100Sでは、生成器50S及び識別器60Sが、写り込みあり画像の画像データから写り込みなし画像の画像データを生成することを学習するので、写り込みあり画像の画像データから写り込みなしの画像データを生成する写り込み除去エンジンを提供できる。
【0075】
<第3実施形態>
図12は、第3実施形態に係る写り込み除去エンジン生成装置の全体構成を示す構成図である。以下、既に説明した構成及び機能については略同一符号を付して説明を省略する。また、本実施形態に特有の構成を説明する場合には符号に添え字「T」を付して説明することがある。第3実施形態に係る写り込み除去エンジン生成装置100Tは、合成処理部112Tの処理が第1実施形態及び第2実施形態とは異なる。
【0076】
第1実施形態及び第2実施形態に係る写り込み除去エンジン生成装置100,100Sでは、写り込みあり画像の画像データ(第1画像データ)に基づいて、写り込みなし画像(第2画像データ)を作成して、写り込み除去エンジンを生成した。
【0077】
これに対し、第3実施形態に係る写り込み除去エンジン生成装置100Tは、写り込みなし画像(第2画像データ)に基づいて、写り込みあり画像の画像データ(第1画像データ)を作成して、写り込み除去エンジンを生成する。すなわち、第3実施形態に係る写り込み除去エンジン生成装置100Tでは、合成処理部112Tが、NN121の学習に先立って、写り込みなし画像の画像データ(第2画像データ)から対象物を抽出し、当該対象物に所定の写り込みデータを合成して写り込みあり画像の画像データ(第1画像データ)を作成する。
【0078】
このように写り込みなし画像の画像データから写り込みあり画像の画像データを生成することで、写り込み除去エンジンを生成するために必要な、NN121の学習データを容易に準備することができるようになる。結果として、高精度な写り込み除去エンジンを提供できる。
【0079】
<第4実施形態>
図13は、第4実施形態に係る写り込み除去装置10の全体構成を示す構成図である。以下、既に説明した構成及び機能については略同一符号を付して説明を省略する。
【0080】
第4実施形態に係る写り込み除去装置10は、第1実施形態から第3実施形態で生成される写り込み除去エンジンを搭載した装置である。この写り込み除去装置10は、任意のコンピュータにより実現することができ、記憶部11、入力部12、出力部13、及び処理部14を備える。
【0081】
記憶部11は、各種情報を記憶するものであり、メモリ及びハードディスク等の任意の記憶装置により実現される。ここでは、記憶部21は、上述した第1実施形態から第3実施形態で生成された写り込み除去エンジンを実現するためのニューラルネットワークのネットワーク構造及びパラメータのデータを記憶する。
【0082】
入力部12は、キーボード、マウス、タッチパネル等により実現され、コンピュータに各種情報を入力したり、コンピュータから各種情報を出力したりするものである。入力部12を介して、入力画像データが受け付けられる。
【0083】
出力部13は、任意の表示装置によって実現される。ここでは、出力部13により、入力画像データ及び処理部14で処理された画像データが出力される。
【0084】
処理部14は、各種情報処理を実行するものであり、CPUやGPUといったプロセッサ及びメモリにより実現される。ここでは、コンピュータのCPU,GPU等に記憶部11に記憶されたプログラムが読み込まれることにより、上述した第1実施形態から第3実施形態で生成された写り込み除去エンジンとして機能する。
【0085】
第4実施形態に係る写り込み除去装置は、上述した構成を具備するので、写り込みのある画像データが入力された場合、写り込み除去エンジンにより写り込みが除去された画像を出力するものとなる。
【0086】
<他の実施形態>
本開示は、上記各実施形態そのままに限定されるものではない。本開示は、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できるものである。また、本開示は、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の開示を形成できるものである。例えば、実施形態に示される全構成要素から幾つかの構成要素は削除してもよいものである。さらに、異なる実施形態に構成要素を適宜組み合わせてもよいものである。
[解決手段]写り込み除去エンジン生成方法は、コンピュータに取得ステップと生成ステップと実行させる。取得ステップは、対象物に周囲の写り込みが認められる第1画像の画像データである第1画像データと、第1画像に対応する、対象物への写り込みが軽減された第2画像の第2画像データとを取得する。生成ステップは、第1画像データ及び第2画像データを用いてニューラルネットワークの学習を行うことで、入力画像データの画像から写り込みが除去された画像の画像データを出力する写り込み除去エンジンを生成する。