以下、図面を参照して、各実施形態について説明する。
(第1実施形態)
図1は、第1実施形態における測距システムの構成の一例を示す。図1に示す測距システム1は、画像を撮像し、当該撮像された画像を用いて撮像地点から被写体までの距離を取得(測定)するために使用される。
図1に示すように、測距システム1は、撮像装置2及び画像処理装置3を備える。本実施形態においては、測距システム1が別個の装置である撮像装置2及び画像処理装置3を備えるものとして説明するが、当該測距システム1は、撮像装置2が撮像部として機能し、画像処理装置3が画像処理部として機能する1つの装置(測距装置)として実現されていてもよい。また、画像処理装置3は、例えば各種クラウドコンピューティングサービスを実行するサーバとして動作するものであってもよい。
撮像装置2は、各種画像を撮像するために用いられる。撮像装置2は、レンズ21及びイメージセンサ22を備える。レンズ21及びイメージセンサ22は、撮像装置2の光学系(単眼カメラ)に相当する。
レンズ21には、被写体で反射した光が入射する。レンズ21に入射した光は、レンズ21を透過する。レンズ21を透過した光は、イメージセンサ22に到達し、当該イメージセンサ22によって受光(検出)される。イメージセンサ22は、受光した光を電気信号に変換(光電変換)することによって、複数の画素から構成される画像を生成する。
なお、イメージセンサ22は、例えばCCD(Charge Coupled Device)イメージセンサ及びCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等により実現される。イメージセンサ22は、例えば赤色(R)の波長帯域の光を検出する第1センサ(Rセンサ)221、緑色(G)の波長帯域の光を検出する第2センサ(Gセンサ)222及び青色(B)の波長帯域の光を検出する第3センサ(Bセンサ)223を含む。イメージセンサ22は、第1~第3センサ221~223により対応する波長帯域の光を受光して、各波長帯域(色成分)に対応するセンサ画像(R画像、G画像及びB画像)を生成することができる。すなわち、撮像装置2によって撮像される画像はカラー画像(RGB画像)であり、当該画像にはR画像、G画像及びB画像が含まれる。
なお、本実施形態においてはイメージセンサ22が第1~第3センサ221~223を含むものとして説明するが、イメージセンサ22は、第1~第3センサ221~223のうちの少なくとも1つを含むように構成されていればよい。また、イメージセンサ22は、第1~第3センサ221~223に代えて、例えばモノクロ画像を生成するためのセンサを含むように構成されていてもよい。
本実施形態においてレンズ21を透過した光に基づいて生成された画像は、光学系(レンズ21)の収差の影響を受けた画像であり、当該収差により生じるぼけを含む。
図1に示す画像処理装置3は、機能構成として、統計モデル格納部31、画像取得部32、距離取得部33、出力部34及び学習処理部35を含む。
統計モデル格納部31には、被写体までの距離を撮像装置2によって撮像された画像から取得するために用いられる統計モデルが格納されている。統計モデル格納部31に格納されている統計モデルは、上記した光学系の収差の影響を受けた画像に生じる当該画像中の被写体までの距離に応じて非線形に変化するぼけを学習することによって生成されている。このような統計モデルによれば、画像が当該統計モデルに入力されることによって、当該画像に対応する予測値として、当該画像に含まれる被写体までの距離に応じて当該画像に生じるぼけを示すぼけ値を予測(出力)することができる。
なお、統計モデルは、例えばニューラルネットワークまたはランダムフォレスト等の既知の様々な機械学習アルゴリズムを適用して生成することができるものとする。また、本実施形態において適用可能なニューラルネットワークには、例えば畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)、全結合ニューラルネットワーク及び再帰型ニューラルネットワーク等が含まれていてもよい。
画像取得部32は、上記した撮像装置2によって撮像された画像を、当該撮像装置2(イメージセンサ22)から取得する。
距離取得部33は、画像取得部32によって取得された画像を用いて、当該画像中の被写体までの距離を示す距離情報を取得する。この場合、距離取得部33は、画像を統計モデル格納部31に格納されている統計モデルに入力することによって当該統計モデルから出力されるぼけ値(当該画像に含まれる被写体までの距離に応じて当該画像に生じるぼけを示すぼけ値)に基づいて当該被写体までの距離を取得する。
出力部34は、距離取得部33によって取得された距離情報を、例えば画像と位置的に対応づけて配置したマップ形式で出力する。この場合、出力部34は、距離情報によって示される距離を画素値とする画素から構成される画像データを出力する(つまり、距離情報を画像データとして出力する)ことができる。このように距離情報が画像データとして出力される場合、当該画像データは、例えば色で距離を示す距離画像として表示することができる。出力部34によって出力される距離情報は、例えば撮像装置2によって撮像された画像中の被写体のサイズを算出するために利用することも可能である。
学習処理部35は、例えば画像取得部32によって取得される画像を用いて統計モデル格納部31に格納されている統計モデルを学習させる処理を実行する。学習処理部35によって実行される処理の詳細については後述する。
なお、図1に示す例では、画像処理装置3が各部31~35を含むものとして説明したが、当該画像処理装置3は、例えば画像取得部32、距離取得部33及び出力部34を含む測距装置と、統計モデル格納部31、画像取得部32及び学習処理部35を含む学習装置とから構成されていてもよい。
図2は、図1に示す画像処理装置3のシステム構成の一例を示す。画像処理装置3は、CPU301、不揮発性メモリ302、RAM303及び通信デバイス304を備える。また、画像処理装置3は、CPU301、不揮発性メモリ302、RAM303及び通信デバイス304を相互に接続するバス305を有する。
CPU301は、画像処理装置3内の様々なコンポーネントの動作を制御するためのプロセッサである。CPU301は、単一のプロセッサであってもよいし、複数のプロセッサで構成されていてもよい。CPU301は、不揮発性メモリ302からRAM303にロードされる様々なプログラムを実行する。これらプログラムは、オペレーティングシステム(OS)や様々なアプリケーションプログラムを含む。アプリケーションプログラムは、画像処理プログラム303Aを含む。
不揮発性メモリ302は、補助記憶装置として用いられる記憶媒体である。RAM303は、主記憶装置として用いられる記憶媒体である。図2においては不揮発性メモリ302及びRAM303のみが示されているが、画像処理装置3は、例えばHDD(Hard Disk Drive)及びSSD(Solid State Drive)等の他の記憶装置を備えていてもよい。
なお、本実施形態において、図1に示す統計モデル格納部31は、例えば不揮発性メモリ302または他の記憶装置等によって実現される。
また、本実施形態において、図1に示す画像取得部32、距離取得部33、出力部34及び学習処理部35の一部または全ては、CPU301(つまり、画像処理装置3のコンピュータ)に画像処理プログラム303Aを実行させること、すなわち、ソフトウェアによって実現されるものとする。この画像処理プログラム303Aは、コンピュータ読み取り可能な記憶媒体に格納して頒布されてもよいし、ネットワークを通じて画像処理装置3にダウンロードされてもよい。
ここでは、CPU301に画像処理プログラム303Aを実行させるものとして説明したが、各部32~35の一部または全ては、CPU301の代わりに例えばGPU(図示せず)を用いて実現されてもよい。また、各部32~35の一部または全ては、IC(Integrated Circuit)等のハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
通信デバイス304は、有線通信または無線通信を実行するように構成されたデバイスである。通信デバイス304は、信号を送信する送信部と信号を受信する受信部とを含む。通信デバイス304は、ネットワークを介した外部機器との通信、周辺に存在する外部機器との通信等を実行する。この外部機器には、撮像装置2が含まれる。この場合、画像処理装置3は、通信デバイス304を介して、撮像装置2から画像を受信することができる。
図2においては省略されているが、画像処理装置3は、例えばマウスまたはキーボードのような入力デバイス及びディスプレイのような表示デバイスを更に備えていてもよい。
次に、図3を参照して、本実施形態における測距システム1の動作の概要について説明する。
測距システム1において、撮像装置2(イメージセンサ22)は、上記したように光学系(レンズ21)の収差の影響を受けた画像を生成する。
画像処理装置3(画像取得部32)は、撮像装置2によって生成された画像を取得し、当該画像を統計モデル格納部31に格納されている統計モデルに入力する。
ここで、本実施形態における統計モデルによれば、上記したように入力された画像中の被写体までの距離に応じて当該画像に生じるぼけを示すぼけ値(ぼけ情報)が出力される。後述するように画像中の被写体までの距離と当該距離に応じて画像に生じるぼけの色、サイズ及び形状とは相関があり、画像処理装置3(距離取得部33)は、統計モデルから出力されたぼけ値を距離に変換することによって当該被写体までの距離を示す距離情報を取得することができる。なお、本実施形態において統計モデルから出力されるぼけ値とは、画像に生じるぼけの色、サイズ及び形状を含むぼけ量を表すスカラー量である。
このように本実施形態においては、統計モデルを用いて、撮像装置2によって撮像された画像から距離情報を取得することができる。
ここで、図4を参照して、本実施形態において被写体までの距離(を示す距離情報)を取得する原理について簡単に説明する。
撮像装置2によって撮像された画像(以下、撮像画像と表記)には、上記したように当該撮像装置2の光学系の収差(レンズ収差)に起因するぼけが生じている。具体的には、収差のあるレンズ21を透過する際の光の屈折率は波長帯域毎に異なるため、例えば被写体の位置がピント位置(撮像装置2においてピントが合う位置)からずれているような場合には、各波長帯域の光が1点に集まらず異なった点に到達する。これが、画像上でぼけ(色収差)として現れる。
また、撮像画像においては、当該撮像画像中の被写体までの距離(つまり、撮像装置2に対する被写体の位置)に応じて非線形に変化するぼけ(色、サイズ及び形状)が観察される。
このため、本実施形態においては、図4に示すように撮像画像401に生じるぼけ(ぼけ値)402を被写体403までの距離に関する物理的な手掛かりとして統計モデルで分析することによって当該被写体403までの距離を取得する。
具体的には、本実施形態における統計モデルは撮像画像401が入力されることによって当該撮像画像401に生じるぼけ402を推定(予測)するが、本実施形態においては、当該ぼけ402を被写体403までの距離に変換することによって、当該撮像画像401中の被写体403までの距離を取得することができる。
以下、統計モデルにおいて撮像画像から被写体までの距離に応じて当該撮像画像に生じるぼけ(を示すぼけ値)を予測する方式の一例について説明する。ここでは、パッチ方式及び画面一括方式について説明する。
まず、図5を参照して、パッチ方式について説明する。パッチ方式においては、撮像画像401から局所領域(以下、画像パッチと表記)401aが切り出される(抽出される)。
この場合、例えば撮像画像401の全体領域をマトリクス状に分割し、当該分割後の部分領域を画像パッチ401aとして順次切り出すようにしてもよいし、撮像画像401を認識して、被写体(像)が検出された領域を網羅するように画像パッチ401aを切り出すようにしてもよい。なお、画像パッチ401aは、他の画像パッチ401aとの間で一部がオーバーラップしていてもよい。
パッチ方式においては、上記したように切り出された画像パッチ401aに対応する予測値としてぼけ値が出力される。すなわち、パッチ方式においては、撮像画像401から切り出された画像パッチ401aの各々を入力として、当該画像パッチ401aの各々に含まれる被写体に生じているぼけ402が予測される。
図6は、上記したパッチ方式において統計モデルに入力される画像パッチ401aに関する情報の一例を示す。
パッチ方式においては、撮像画像401に含まれるR画像、G画像及びB画像のそれぞれについて、当該撮像画像401から切り出された画像パッチ401aの勾配データ(R画像の勾配データ、G画像の勾配データ及びB画像の勾配データ)が生成される。統計モデルには、このように生成された勾配データが入力される。
なお、勾配データは、各画素と当該画素に隣接する画素との画素値の差分(差分値)に相当する。例えば画像パッチ401aがn画素(X軸方向)×m画素(Y軸方向)の矩形領域として抽出される場合、当該画像パッチ401a内の各画素について算出した例えば右隣の画素との差分値をn行×m列のマトリクス状に配置した勾配データ(つまり、各画素の勾配データ)が生成される。
統計モデルは、R画像の勾配データと、G画像の勾配データと、B画像の勾配データとを用いて、当該画素に生じているぼけを予測する。図6においてはR画像、G画像及びB画像の各々の勾配データが統計モデルに入力される場合について示しているが、RGB画像の勾配データが統計モデルに入力される構成であってもよい。
なお、パッチ方式において上記したように各画素の勾配データが統計モデルに入力される場合、当該統計モデルは、画素毎にぼけ値を出力する。
次に、図7を参照して、画面一括方式について説明する。画面一括方式においては、上記した画像パッチ401aの切り出しは行われない。
画面一括方式においては、撮像画像401の全体領域(に関する情報)が統計モデルに入力され、当該統計モデルから当該全体領域に対応する予測値としてぼけを示すぼけ値が出力される。すなわち、画面一括方式においては、撮像画像401の全体領域を入力として、当該撮像画像401の全体領域に含まれる被写体までの距離に応じたぼけ402が予測される。
なお、画面一括方式において統計モデルに入力される全体領域に関する情報は、例えば上記したR画像、G画像及びB画像(を構成する各画素)の勾配データである。
また、画面一括方式においては、撮像画像401の全体領域が統計モデルに入力されるため、上記した距離の予測に当該撮像画像401(全体領域)から抽出されるコンテクストを利用することが可能である。なお、コンテクストとは、撮像画像401中の線分や色の分布等に関する特徴量に相当する。また、コンテクストには、被写体についての特徴(人物の形状及び建物の形状等)も含まれる。
なお、画面一括方式において上記したように各画素の勾配データが統計モデルに入力される場合、当該統計モデルは、画素毎にぼけ値を出力する。
ここで、本実施形態においては、上記したように統計モデルを用いることによって画像から当該画像に含まれる被写体までの距離に応じて当該画像に生じるぼけ(を示すぼけ値)を予測することが可能であるが、当該ぼけ値の精度を向上させるためには、当該統計モデルを学習させる必要がある。
以下、図8を参照して、一般的な統計モデルの学習方法の概要について説明する。上記したパッチ方式及び画面一括方式のいずれの方式を用いる場合においても、統計モデルの学習は、基本的に、図8に示すような流れで行われる。具体的には、統計モデルの学習は、当該学習のために用意された画像(以下、学習用画像と表記)501に関する情報を統計モデルに入力し、当該統計モデルから出力(予測)されたぼけ値502と正解値503との誤差を当該統計モデルにフィードバックすることによって行われる。なお、正解値503とは、学習用画像501の撮像地点から当該学習用画像501に含まれる被写体までの実際の距離(実測値)に応じて当該学習用画像501に生じるぼけを示すぼけ値(つまり、当該実際の距離を変換することによって得られるぼけ値)をいい、例えば正解ラベル等とも称される。また、フィードバックとは、誤差が減少するように統計モデルのパラメータ(例えば、重み係数)を更新することをいう。
具体的には、パッチ方式が適用される場合には、学習用画像501から切り出された画像パッチ(局所領域)毎に、当該画像パッチに関する情報(勾配データ)が統計モデルに入力され、当該統計モデルによって各画像パッチに対応する画素のぼけを示すぼけ値502が出力される。このように出力されたぼけ値502と正解値503とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
また、画面一括方式が適用される場合には、学習用画像501の全体領域に関する情報(勾配データ)が一括して統計モデルに入力され、当該統計モデルによって当該学習用画像501を構成する各画素のぼけを示すぼけ値502が出力される。このように出力されたぼけ値502と正解値503とが比較されることによって得られる誤差が、統計モデルにフィードバックされる。
ところで、統計モデルを学習させるためには、図8において説明した正解値が付与された学習用画像(つまり、学習用画像と当該学習用画像から取得されるべき実際の距離を変換することによって得られる正解値とを含む学習用のデータセット)を用意する必要があるが、当該正解値を得るためには、学習用画像を撮像する度に当該学習用画像に含まれる被写体までの実際の距離を計測する必要があり、煩雑である。また、統計モデルの精度を向上させるためには多数の学習用のデータセットを統計モデルに学習させる必要があるため、このような多数の学習用のデータセットを用意することは容易ではない。
なお、上記した学習用のデータセットを比較的容易に用意するために、例えば実験室のような室内環境(第1ドメイン)においては、図9に示すような撮像装置2を水平方向に移動(スライド)させる移動機構を有するステージを用いることができる。これによれば、例えば平面形状を有するテレビモニタ等を被写体とし、当該被写体と撮像装置2との距離が所定の値となるように撮像装置2を移動させながら当該被写体を撮像することによって、図10に示すように当該被写体を含む学習用画像と当該被写体までの距離とを含む学習用のデータセットを得ることができる。
しかしながら、上記したように室内環境で撮像された画像に生じるぼけを学習することによって生成された統計モデルを用いて屋外環境(第2ドメイン)で撮像された画像からぼけ(を示すぼけ値)を予測する場合、画像が撮影された環境(ドメイン)の違いによる物理的な手掛かりの変容により、当該予測に誤差が生じる。
この場合には、屋外環境で撮像された画像に生じるぼけを更に学習することが好ましいが、当該屋外環境で被写体までの実際の距離を計測しながら学習用のデータセットを得ることは困難である。
そこで、本実施形態においては、統計モデルの適用先となるドメイン(例えば、屋外環境等)において撮像装置2によって撮像された多視点画像を用いることによって、正解値を必要としない当該統計モデルの学習(再学習)を実現するものとする。なお、本実施形態における多視点画像とは、図11に示すように同一の被写体を異なる視点(つまり、多視点)から撮像した複数の画像をいう。なお、多視点画像は、2つ以上の画像であればよい。
以下、図1に示す画像処理装置3に含まれる学習処理部35について具体的に説明する。図12は、学習処理部35の機能構成の一例を示すブロック図である。
図12に示すように、学習処理部35は、距離取得部35a、パラメータ計算部35b、変換部35c及び学習部35dを含む。
まず、本実施形態において統計モデル格納部31に格納されている統計モデル(事前学習統計モデル)を学習させる場合、画像取得部32は上記した多視点画像(同一の被写体を多視点から撮像した複数の画像)を取得し、距離取得部35aは、当該多視点画像を当該画像取得部32から取得する。距離取得部35aは、取得された多視点画像から当該多視点画像の各々に含まれる第2被写体までの距離(奥行き)を取得する。なお、距離取得部35aによって取得される距離の詳細については、後述する。
ここで、多視点画像から取得される第2被写体までの距離を正解値として利用することを考える。しかしながら、多視点画像から取得される第2被写体までの距離はスケールが不定な距離であり、例えばスケールパラメータを使用して当該スケールが不定な距離から実スケールに基づく距離を計算しなければ、当該距離から適切なぼけ値(つまり、正解値)を得ることはできない。
具体的には、図13は真のスケールパラメータを使用して計算された距離とぼけ(のサイズ)との対応関係を示しているが、スケールパラメータに誤差がある場合(つまり、スケールパラメータが不明であり、誤差があるスケールパラメータを使用して実スケールの距離が計算された場合)、図14に示すように、距離とぼけとの対応関係にずれが生じる。なお、図14は、真のスケールパラメータに対して誤差があるスケールパラメータを使用して計算された距離とぼけとの対応関係を示している。
すなわち、図14に示すような誤差があるスケールパラメータを使用して計算された距離から変換されたぼけ値を正解値として用いた場合には、質の高い統計モデルの学習を行うことができない(つまり、統計モデルの精度が低下する可能性がある)。
更に、後述するように距離をぼけ値に変換する場合には撮像装置2におけるカメラパラメータを用いる必要があるが、このカメラパラメータも不定であり、適切な正解値(ぼけ値)を得ることができない。
したがって、統計モデルの適用先となるドメインで撮像された多視点画像から取得される距離を学習に利用するためには、上記した不定なパラメータを計算する必要がある。
そこで、パラメータ計算部35bは、多視点画像の各々を統計モデル格納部31に格納されている統計モデル(つまり、統計モデル格納部31に格納されている例えば屋内環境で撮像された画像に生じるぼけを事前に学習した事前学習統計モデル)に入力することによって当該統計モデルから出力されるぼけ値を取得する。
パラメータ計算部35bは、上記したように距離取得部35aによって取得された被写体までの距離と当該パラメータ計算部35bによって取得されたぼけ値とを整合させる(キャリブレーションする)ことによって、上記した不定なパラメータ(スケールパラメータ及びカメラパラメータ)を計算する。
変換部35cは、パラメータ計算部35bによって計算された不定なパラメータを用いて、距離取得部35aによって取得された距離をぼけ値に変換する。
学習部35dは、多視点画像及び変換部35cによって距離から変換されたぼけ値を統計モデルに学習させる。学習部35dによる学習が完了した統計モデルは、統計モデル格納部31に格納される(つまり、統計モデル格納部31に格納されている統計モデルに上書きされる)。
本実施形態においては、上記したように多視点画像とぼけ値との間に存在する2つの不定性(スケールパラメータの不定性及びカメラパラメータの不定性)を解消して、多視点画像を用いたオンライン学習を実現する。
図15のフローチャートを参照して、統計モデルを学習させる際の画像処理装置3の処理手順の一例について説明する。
ここでは、統計モデル格納部31に事前に学習済みである統計モデル(事前学習統計モデル)が格納されており、当該統計モデルは、上記した室内環境で撮像された画像に生じるぼけを学習することによって生成されているものとする。なお、統計モデル格納部31に格納されている統計モデルは、例えば撮像装置2で撮像された画像に生じるぼけを学習することによって生成されていてもよいし、当該撮像装置2とは異なる撮像装置(またはレンズ)で撮像された画像に生じるぼけを学習することによって生成されていてもよい。すなわち、本実施形態においては、少なくとも画像を入力として当該画像に含まれる被写体までの距離に応じて当該画像に生じるぼけを示すぼけ値を出力(予測)するための統計モデルが事前に用意されていればよい。
まず、距離取得部35aは、画像取得部32によって取得された多視点画像(撮像装置2で撮像された画像)を学習用画像として取得する(ステップS1)。ステップS1において取得される多視点画像は、例えば屋外環境等(つまり、事前にぼけを学習した屋内環境とは異なるドメイン)で同一の被写体が異なる視点(多視点)から撮像された複数の画像を含む。多視点画像は、可能な限り静止している同一の被写体を互いに相異なる位置から撮像した画像であることが好ましい。また、本実施形態において、多視点画像に含まれる複数の画像の各々は、ピント位置(ピントが合う位置)が固定された状態で撮像装置2によって撮像されているものとする。
なお、多視点画像を撮像する撮像装置2は、任意のレンズが取り付けられた任意のカメラシステムであればよく、上記した統計モデルに事前にぼけを学習させた画像を撮像した撮像装置である必要はない。
ステップS1の処理が実行されると、距離取得部35aは、当該ステップS1において取得された多視点画像から、当該多視点画像の各々に含まれる被写体までの距離(スケールが不定な距離)を取得する(ステップS2)。
なお、ステップS2における多視点画像からの距離の取得(奥行き推定)には、SfM(Structure from Motion)及び多視点ステレオと称される技術を用いることができる。
図16は、SfMの概要を示している。SfMにおいては、多視点画像(に含まれる複数の画像)の各々から被写体の特徴点(被写体の形状を表す特徴点)が抽出される。図16においては、3つの画像から被写体の特徴点として、P1~P7が抽出されていることが示されている。このように抽出された特徴点は、多視点画像間で対応づけられる。SfMによれば、このように対応づけられた特徴点に基づく3次元点群(の座標)と、当該対応づけられた特徴点間の変位に基づいて各学習用画像が撮像された際の撮像装置2の位置及び姿勢(つまり、各視点における撮像装置2の位置及び姿勢)を計算することができる。SfMにおいては、多視点画像を用いることにより、3次元点群の座標のずれを最小化することができる。
なお、SfMでは粗い3次元点群の座標が計算されるため、本実施形態においては、上記した各視点における撮像装置2の位置及び姿勢を用いた多視点ステレオ技術により、より詳細な3次元原点群(の座標)を計算するものとする。
この場合、上記したSfM及び多視点ステレオ技術における1つの視点(撮像装置2)の位置(並進成分)及び姿勢(回転成分)をそれぞれt及びRとし、多視点画像から計算された3次元点の座標を(X,Y,Z)とすると、多視点画像(各視点における画像)中の座標位置(x,y)と当該座標位置に存在する被写体までの距離(奥行き)z
0は以下の式(1)及び式(2)の関係にある。
なお、式(1)におけるKは、撮像装置2の内部パラメータであり、例えば撮像装置21に備えられるレンズ21とイメージセンサ22との距離を含む。
ステップS2においては、上記した式(1)及び式(2)を用いることによって、多視点画像に含まれる画像中の被写体までの距離が上記した特徴点毎に計算される。
ここで、ステップS2において取得(計算)された距離は、スケールが不定の距離である。このスケールが不定の距離z
0と実スケールに基づく距離zとは以下の式(3)の関係にある。
上記した式(3)のβは、スケールが不定の距離z0を実スケールに基づく距離zに変換するためのスケールパラメータである。一般的には、画像に含まれている被写体のサイズに関する情報(事前情報)や他のセンサから得られる情報(値)等がない場合、撮像装置2(単眼カメラ)の情報だけではスケールパラメータβを求めることはできない。
統計モデルの学習時にはカメラパラメータを用いて距離から変換されたぼけ値を正解値として用いるが、このようにスケールパラメータβが不定である場合には、図17に示すように例えば同一の距離に存在する被写体を撮像した場合であっても異なるぼけ値に変換される場合があり、統計モデルを適切に学習させることができない。
再び図15に戻ると、パラメータ計算部35bは、統計モデル格納部31に格納されている統計モデルを用いてステップS1において取得された多視点画像からぼけ値(ぼけ量の予測値)を取得する(ステップS3)。ステップS3においては、多視点画像の各々を統計モデルに入力することによって当該統計モデルから出力されるぼけ値が取得される。なお、統計モデルには、多視点画像の各々の一部の領域(例えば、被写体を含む領域)が入力されてもよい。
ここで、多視点画像の各々をx、パラメータ(例えば、重み係数)がθである統計モデルをf
θとすると、当該画像xを統計モデルf
θに入力することによって当該統計モデルf
θから出力されるぼけ値(予測値)bは、以下の式(4)のように記述される。
なお、上記したように画像xが統計モデルfθに入力された場合、当該統計モデルfθは、上記したように当該画像xを構成する画素毎にぼけ値を出力する。このため、上記したステップS3の処理が実行された場合には、多視点画像の各々から抽出された特徴点毎に取得された距離z0に対応するぼけ値b(つまり、当該特徴点に対応する画素について出力されたぼけ値)を取得することができる。
次に、パラメータ計算部35bは、上記した不定なパラメータ(スケールパラメータ及びカメラパラメータ)を計算する(ステップS4)。なお、ステップS4においては、ステップS2において取得された距離(スケール不定な距離)とステップS3において取得されたぼけ値とに基づいて不定なパラメータが計算される。
以下、ステップS4の処理について具体的に説明する。まず、実スケールに基づく距離zとぼけ値bとの間には以下の式(5)の関係がある。
式(5)におけるfは焦点距離、vは撮像装置2に備えられるレンズ21とイメージセンサ22との距離、pは画素ピッチ、Fは絞り(値)である。
ここで、図18は、被写体までの距離と当該距離に応じて生じるぼけ(のサイズ)との対応関係をピント位置(撮像装置2においてピントが合う位置)毎に示している。図18に示すように、例えばぼけ値(ぼけ量)が同一であってもピント位置に応じて当該ぼけ値に対応する距離は異なる。
これは、ピント位置(ピントが合っている位置)が不明であると、距離をぼけ値に適切に変換することができず、ピントの不定性が存在することを意味している。
なお、図19は、SfM等で用いられている透視投影とレンズの公式とを1つの図で表している。図19に示す第1領域601のうちの三角形の部分の相似性からは以下の式(6)(透視投影式)を求めることができる。
また、図19に示す第1領域601と第2領域602との各々の三角形の部分の相似性からは以下の式(7)(レンズの公式)を導出することができる。
ここで、上記したように本実施形態における多視点画像の各々はピント位置が固定された状態で撮像装置2によって撮像されており、上記した式(6)におけるレンズ21とイメージセンサ22との距離(ピント距離)vは、SfMにおける撮像装置2の内部パラメータとして予め求められているものとする。この式(6)におけるvは、上記した式(5)及び式(7)のvと同一のものである。
すなわち、本実施形態におけるピントの不定性とは、カメラパラメータである焦点距離fが不定であることを意味している。
なお、式(5)における他のパラメータ(画素ピッチp及び絞りF)は、上記したレンズ21とイメージセンサ22との距離vと同様に予め求められているものとする。
ここで、上記した式(3)を式(5)に代入すると、以下の式(8)を得ることができる。
この式(8)は、スケールが不定の距離z
0がパラメータβ及びf(つまり、スケールパラメータ及びカメラパラメータ)によってぼけ値に変換されることを表しており、更に、以下の式(9)のように表現することができる。
ところで、多視点画像の各々に含まれる特徴点毎に取得(計算)されたスケールが不定な距離z
0から変換されるぼけ値b(z
0;β,f)と、統計モデルから出力されたぼけ値b(つまり、距離z
0に対応するぼけ値b)とは等しくなるはずである。このため、不定なパラメータであるスケールパラメータβ及びカメラパラメータfを求める問題は、以下の式(10)のような非線形回帰問題に帰着する。
式(10)におけるNはスケールが不定な距離(多視点画像の各々に含まれる特徴点毎に取得された距離)z0と当該距離に対応するぼけ値bの組み合わせの集合(サンプル全体)を表し、lは任意の距離関数を表している。
しかしながら、上記した式(10)を用いてスケールパラメータβ及びカメラパラメータfを計算しようとすると、大域解の保証されない非線形回帰問題を解かなければならない。そこで、本実施形態においては、式(10)に対して変数変換を施し、線形回帰問題によりスケールパラメータβ及びカメラパラメータfを計算する。
まず、上記した式(10)における距離関数をL2ノルムとすることによって、以下の式(11)のような最小二乗問題を考える。
次に、スケールが不定な距離z
0の逆数dを新たな変数として用い、上記した式(11)における係数を整理すると、上記した非線形回帰問題は、以下の式(12)のような新たな変数を未知パラメータとした線形回帰問題に帰着する(図20)。
なお、式(12)における係数a
0´は以下の式(13)のように定義され、a
1´は以下の式(14)のように定義される。
また、上記した式(13)及び式(14)をカメラパラメータfについて解くと、当該カメラパラメータfは、式(12)における係数a
0´を用いて以下の式(15)によって表される。
更に、上記した式(13)及び式(14)をスケールパラメータβについて解くと、当該スケールパラメータβは、式(12)における係数a
1´及び式(15)におけるカメラパラメータfを用いて以下の式(16)によって表される。
すなわち、本実施形態においては、多視点画像の各々に含まれる被写体までの距離z0の逆数と当該画像を統計モデルに入力することによって統計モデルから出力されるぼけ値bとを線形回帰させ、上記した式(12)により回帰パラメータ(係数a0´及びa1´)を求めることにより、不定なパラメータであるスケールパラメータβ及びカメラパラメータfを計算することができる。
再び図15に戻ると、変換部35cは、上記したステップS2において取得されたスケールが不定の距離をぼけ値に変換する(ステップS5)。
なお、ステップS5においては、上記した式(9)に対してステップS2において取得されたスケールが不定の距離z0、予め求められているパラメータ(レンズ21とイメージセンサ22との距離v、画素ピッチp及び絞りF)、ステップS4において計算されたスケールパラメータβ及びカメラパラメータfを適用することによって、当該スケールが不定な距離z0がぼけ値bに変換される。
ステップS5においては、多視点画像に含まれる特徴点毎に取得された距離の各々がぼけ値に変換される。以下の説明においては、多視点画像の各々に含まれる特徴点毎に取得された距離から変換されたぼけ値をぼけ値bGTと称する。
ステップS5の処理が実行されると、学習部35dは、ステップS1において取得された多視点画像及び当該ステップS5において距離から変換されたぼけ値b
GTを用いて、統計モデル格納部31に格納されている統計モデルを学習(更新)させる(ステップS6)。統計モデルの学習においては、以下の式(17)に示す損失関数L
θが用いられる。
式(17)におけるNはスケールが不定な距離が取得された多視点画像の各々に含まれる特徴点(に対応する画素)の集合を表し、iは当該集合に含まれる1つの特徴点(に対応する1つの画素)を表している。また、式(17)におけるbGT(i)は、特徴点iについて取得されたスケール不定の距離から変換されたぼけ値bGTを表している。更に、式(17)におけるfθ(x(i))は当該特徴点(に対応する画素)iを含む画像xが統計モデルに入力されることによって当該統計モデルから当該画素について出力されたぼけ値を表している。
このような式(17)によれば、上記したb
GT(i)とf
θ(x(i))との誤差(差分)を特徴点(に対応する画素)i毎に計算し、当該計算された誤差の合計が得られる。本実施形態においては、以下の式(18)により、式(17)によって得られる誤差の合計が最も小さくなる統計モデルのパラメータθ´(つまり、更新後のパラメータ)を求める。
なお、本実施形態における統計モデルにニューラルネットワークまたは畳み込みニューラルネットワーク等が適用されている(つまり、統計モデルがニューラルネットワークまたは畳み込みニューラルネットワーク等で構成されている)場合、当該統計モデルの学習(パラメータθの更新)には、上記した式(17)及び式(18)を逆方向に計算する誤差逆伝播法が用いられる。この誤差逆伝播法によれば、損失の勾配が計算され、当該勾配に従ってパラメータθが更新される。
ステップS6においては、統計モデルのパラメータθを上記した式(18)を用いて求められたパラメータθ´に更新することにより、多視点画像及びぼけ値bGTを当該統計モデルに学習させることができる。
すなわち、本実施形態においては、スケールパラメータβ及びカメラパラメータfを用いてスケールが不定な距離から変換されたぼけ値bGTを正解値(教師データ)として、当該正解値と統計モデルから出力されるぼけ値との差分が小さくなるように統計モデルを修正していくことにより、適用先ドメイン(例えば、屋外環境等)に対する当該統計モデルの精度を向上させることができる。
なお、上記した式(17)においてはL2ノルムを用いた損失関数(L2損失)が示されているが、例えば以下の式(19)に示すようなL1ノルムを用いた損失関数(L1損失)を用いることも可能である。
更に、本実施形態においては、例えばフーバー損失と称される損失関数のような回帰に用いられる損失関数であれば、様々な損失関数を用いることができる。また、例えばフォトメトリック損失(Zhou, Tinghui, et al. "Unsupervised learning of depth and ego-motion from video." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017)のように、一方の画像から別の画像に対する誤差を測ることによって得られる損失を利用してもよい。
また、例えば統計モデルは当該統計モデルから出力されたぼけ値(当該統計モデルにおいて予測されたぼけ値)に対する不確実性の度合い(以下、不確実度と表記)を当該ぼけ値とともに出力するように構築されている場合があるが、このような場合には、当該不確実度を考慮した損失関数を用いてもよい。
次に、図21のフローチャートを参照して、上記した図15に示す処理が実行されることによって学習させた統計モデルを用いて撮像画像から距離情報を取得する際の画像処理装置3の処理手順の一例について説明する。
まず、撮像装置2(イメージセンサ22)は、撮像装置2からの距離を測定する被写体を撮像することによって当該被写体を含む撮像画像を生成する。この撮像画像は、上記したように撮像装置2の光学系(レンズ21)の収差の影響を受けた画像である。
画像処理装置3に含まれる画像取得部32は、撮像画像を撮像装置から取得する(ステップS11)。
次に、距離取得部33は、ステップS11において取得された撮像画像に関する情報を、統計モデル格納部31に格納されている統計モデルに入力する(ステップS12)。なお、ステップS12において統計モデルに入力される撮像画像に関する情報は、当該撮像画像を構成する各画素の勾配データを含む。
ステップS12の処理が実行されると、統計モデルにおいて被写体までの距離に応じて生じるぼけを示すぼけ値が予測され、当該統計モデルは、当該予測されたぼけ値を出力する。これにより、距離取得部33は、統計モデルから出力されたぼけ値を取得する(ステップS13)。なお、ステップS13においては、ステップS11において取得された撮像画像を構成する画素毎のぼけ値が取得される。
ステップS13の処理が実行されると、距離取得部33は、ステップS13において取得されたぼけ値を距離に変換する(ステップS14)。なお、ステップS14においては、ステップS13において取得されたぼけ値をb、被写体までの距離をzとし、上記した式(5)を用いて当該ぼけ値から距離を計算することができる。上記したようにステップS13においては撮像画像を構成する画素毎のぼけ値が取得されているため、ステップS14の処理は当該画素毎のぼけ値に対して実行される。すなわち、ステップS14においては、撮像画像を構成する画素毎にぼけ値が距離に変換される。なお、ステップS14の処理が実行される場合において、ぼけ値を距離に変換するために必要なパラメータ(撮像装置2の焦点距離f、レンズ21イメージセンサとの距離v、画素ピッチp及び絞りF)は予め求められているものとする。
ステップS14の処理が実行されると、出力部34は、当該ステップS14においてぼけ値から変換された距離を示す距離情報を、例えば撮像画像と位置的に対応づけて配置したマップ形式で出力する(ステップS15)。なお、本実施形態においては距離情報がマップ形式で出力されるものとして説明したが、当該距離情報は、他の形式で出力されても構わない。
ここで説明したように統計モデルから出力されるぼけ値を距離に変換する構成によれば、当該変換時に距離をキャリブレーションすることによって、様々な環境において撮像された撮像画像に対して適切に対応することができ、汎用性が向上する。
上記したように本実施形態においては、事前学習統計モデル(統計モデル格納部31に格納されている統計モデル)が事前にぼけを学習した第1ドメイン(例えば、室内環境等)とは異なる第2ドメイン(例えば、屋外環境等)で同一の被写体を多視点から撮像した多視点画像(複数の第2画像)を取得し、当該多視点画像を用いて統計モデルに学習させる。
具体的には、多視点画像から当該多視点画像の各々に含まれる被写体までの距離を取得し、当該多視点画像の各々に含まれる被写体までの距離を当該距離に応じて生じるぼけを示すぼけ値に変換し、当該多視点画像及び当該距離から変換されたぼけ値を統計モデルに学習させる。
本実施形態においては、上記した構成により、適用先ドメインで撮像された多視点画像を取得(収集)してオンラインで統計モデルを学習させることができるため、被写体までの距離を取得するための統計モデルにおける学習の容易性を向上させることが可能となる。
なお、上記した多視点画像から取得される被写体までの距離はスケールが不定な距離であるため、当該距離をそのまま統計モデルの学習に利用することはできないが、本実施形態においては、多視点画像の各々に含まれる被写体までの距離と当該多視点画像の各々を統計モデルに入力することによって当該統計モデルから出力されるぼけ値とを整合させることによって、当該距離を実スケールに基づく距離に変換するためのスケールパラメータ(第1パラメータ)及び多視点画像を撮像した撮像装置において不定なカメラパラメータ(第2パラメータ)が計算される。多視点画像の各々に含まれる被写体までの距離(スケールが不定な距離)は、このように計算されたスケールパラメータ及びカメラパラメータを用いてぼけ値に変換される。
なお、本実施形態において、スケールパラメータ及びカメラパラメータは、多視点画像の各々に含まれる被写体までの距離の逆数と当該多視点画像の各々を統計モデルに入力することによって当該統計モデルから出力されるぼけ値とを線形回帰させることで計算される。
本実施形態においては、上記したように多視点画像から取得される距離がスケールが不定な距離であっても、当該距離を適切なぼけ値に変換し、当該ぼけ値を正解値として用いることで質の高い統計モデルの学習を行うことができる。
なお、本実施形態においては正解ラベル(正解値)が付されていない学習用画像(多視点画像)のみを用いて統計モデルを学習させる構成について説明したが、このような学習は一般的に教師なし学習と称される。しかしながら、本実施形態においては、学習用画像の一部(を構成する画素)に正解ラベルが付されている半教師あり学習(つまり、被写体までの距離が既知である第3画像を更に用いて統計モデルを学習させる構成)を採用してもよい。
具体的には、図15に示すステップS5においてはスケールが不定な距離がぼけ値に変換されるが、ステップS1において取得(収集)された多視点画像によっては、当該ぼけ値に偏り(つまり、学習の偏り)が生じてしまうことがある。この場合、スケールが不定な距離から変換されたぼけ値が例えばピント位置より手前の被写体に生じるぼけのみを示すまたは当該ピント位置より奥の被写体に生じるぼけのみを示すような場合が考えられるが、このようなぼけ値(データ)のみで学習すると、当該ぼけ値(によって示されるぼけ)とは異なるぼけが生じている画像が撮像画像として取得された場合に対応することができない。このため、上記したピント位置より手前の被写体に生じるぼけを示すぼけ値及び当該ピント位置より奥の被写体に生じるぼけを示すぼけ値をバランスよく収集した正解値(正解ラベル)を上記した多視点画像と同時に用いることで、上記した学習の偏り(アンバランス)を解消することができる。
なお、本実施形態においては上記したように多視点画像を用いて統計モデルを学習させる構成であればよく、本実施形態において説明した損失関数等は適宜変更されても構わない。
また、光学系の収差により画像に生じるぼけは位置依存性を有する(画像上の位置によってぼけのサイズ及び形状等が異なる)が、本実施形態においては、SfMにおいて抽出された特徴点(に対応する画素)について取得された距離から変換されたぼけを統計モデルが学習する。このため、特徴点(つまり、被写体)が含まれない領域に生じるぼけについては効率よく統計モデルを学習させることができない場合がある。この場合、統計モデルの学習に用いられた多視点画像を蓄積しておき、当該多視点画像から抽出された特徴点の分布に基づいて当該特徴点が少ない領域(例えば、当該特徴点の数が予め定められた値未満である領域等)を出力するような構成としてもよい。このような構成によれば、出力された領域に被写体が含まれるような多視点画像を撮像するように例えば撮像装置2を使用するユーザに指示する(通知する)ことができ、効率的に統計モデルを学習させることが可能となる。また、上記したように出力された領域に特徴点を含む多視点画像を自動的に選択し、当該選択された多視点画像を用いて学習を行うようにしてもよい。
なお、本実施形態においては、被写体を含む画像を入力として当該被写体までの距離に応じて当該画像に生じるぼけを示すぼけ値を出力するように統計モデルを学習させ、当該統計モデルから出力されたぼけ値を距離に変換することによって距離情報を取得するものとして説明したが、当該統計モデルは、画像を入力として当該画像に含まれる被写体までの距離を出力するように学習させていてもよい。本実施形態においてこのような距離を出力する統計モデルを学習させる場合には、多視点画像から取得された被写体までの距離(スケールが不定の距離)を上記した図15に示すステップS4において計算されたスケールパラメータβを用いて実スケールの距離に変換し、当該実スケールの距離を多視点画像とともに統計モデルに学習させる構成とすることができる。
また、本実施形態においては、統計モデルが光学系の収差の影響を受けた画像(当該画像に含まれる被写体までの距離に応じて非線形に変化するぼけ)を学習することによって生成されるものとして説明したが、当該統計モデルは、例えば撮像装置2の開口部に設けられたフィルタ(カラーフィルタ等)を透過した光に基づいて生成される画像(つまり、当該フィルタによって意図的に画像に生じさせた、被写体までの距離に応じて非線形に変化するぼけ)を学習することによって生成されるものであってもよい。
(第2実施形態)
次に、第2実施形態について説明する。本実施形態における測距システム(撮像装置及び画像処理装置)の構成等については前述した第1実施形態と同様であるため、本実施形態において測距システムの構成について説明する場合には、適宜、図1等を用いる。ここでは、前述した第1実施形態とは異なる点について主に述べる。
前述した第1実施形態においては単一のシーンにおいて撮像された多視点画像(つまり、1組の多視点画像)を用いて統計モデルを学習させる場合について説明したが、本実施形態は、例えばM個のシーンにおいて撮像された多視点画像(つまり、M組の多視点画像)を用いて統計モデルを学習させる点で、当該第1実施形態とは異なる。
なお、本実施形態におけるシーンとは、特定の被写体までの距離(スケールが不定の距離)を取得するために撮像装置2によって撮像される多視点画像の単位である。すなわち、本実施形態においてM個のシーンにおいて多視点画像が撮像されるとは、例えばM個の被写体の各々に対して多視点画像(複数の画像)が撮像されるような場合が含まれる。
また、本実施形態におけるM組の多視点画像は、ピントが固定された状態で撮像されているものとする。つまり、本実施形態においては、多視点画像の組毎にスケールパラメータβは異なるが、カメラパラメータfは同一である場合を想定している。
以下、本実施形態において統計モデルを学習させる際の画像処理装置3の処理手順の一例について説明する。ここでは、便宜的に、前述した図15を用いて説明する。
まず、距離取得部35aは、画像取得部32によって取得されたM組の多視点画像(撮像装置2で撮像された画像)を学習用画像として取得する(ステップS1)。
ステップS1の処理が実行されると、距離取得部35aは、当該ステップS1において取得された多視点画像から、当該M組の多視点画像の各々に含まれる被写体までの距離(スケールが不定な距離)を取得する(ステップS2)。
この場合、多視点画像の組毎に前述した第1実施形態において説明したステップS2の処理が実行されればよい。なお、ステップS2の処理は前述した第1実施形態において説明した通りであるため、ここではその詳しい説明を省略する。
ここで、本実施形態においては、M組の多視点画像の各々に含まれる特徴点毎に距離が取得(計算)されるが、当該距離を実スケールに基づく距離に変換するためのスケールパラメータは、多視点画像の組(つまり、多視点画像が撮像されたシーン)毎に異なる。この場合、ステップS2において取得された距離z
0と実スケールに基づく距離zとは以下の式(20)の関係にある。
上記した式(20)のβj(j=0,1,…,M-1)は、シーン毎に独立したスケールパラメータである。
ステップS2の処理が実行されると、ステップS3の処理が実行される。このステップS3の処理は前述した第1実施形態において説明した通りであるが、本実施形態においては、M組の多視点画像の各々を統計モデルに入力することによって当該統計モデルから出力されるぼけ値が取得される。
次に、パラメータ計算部35bは、不定なパラメータ(スケールパラメータβj及びカメラパラメータf)を計算する(ステップS4)。
ここで、前述した第1実施形態では、単一のシーン(つまり、スケールパラメータβが1つ)であり、かつ、ピントが固定されている(つまり、カメラパラメータfが1つ)という条件の下で線形回帰からクローズドフォームで不定パラメータを計算することができるが、本実施形態のように複数(M個)のシーンの各々で多視点画像が撮像されている場合、スケールパラメータが複数存在するため、当該第1実施形態のようなクローズドフォーム解は存在しない。
そこで、本実施形態においては、スケールパラメータβj及びカメラパラメータfを計算するために、以下に説明するように非線形回帰問題を定式化する。
まず、前述した式(9)により、本実施形態においてスケールが不定な距離z
0からぼけ値bを求める以下の式(21)を得ることができる。
ここで、M組の多視点画像の各々に含まれる特徴点毎に取得(計算)されたスケールが不定な距離z
0から変換されるぼけ値b(z
0;β
j,f)と、統計モデルから出力されたぼけ値b(つまり、距離z
0に対応するぼけ値b)とは等しくなるはずである。このため、不定なパラメータであるスケールパラメータβ
j及びカメラパラメータfを求める問題は、以下の式(22)のような非線形回帰問題に帰着する。
式(22)におけるNjはM個のシーンのうちのシーンjにおいて撮像された多視点画像の各々に含まれる特徴点毎に取得されたスケールが不定な距離z0と当該距離z0に対応するぼけ値bとの組み合わせの集合(サンプル全体)を表し、lは任意の距離関数を表している。
上記した式(22)は不定なパラメータ(スケールパラメータβ
j及びカメラパラメータf)に関する非線形最適化問題であり、当該式(22)における距離関数lをL2ノルムとすると、以下の式(23)のような非線形最小二乗問題となる。
このような式(23)は、例えばLevenberg-Marquardt法(J. J. More, “The Levenberg-Marquardt Algorithm: Implementation and Theory,” Numerical Analysis, ed. G. A. Watson, Lecture Notes in Mathematics 630, Springer Verlag, pp. 105-116, 1977)で解を求めることができる。このLevenberg-Marquardt法以外にも、例えばTrust Region Reflectiveアルゴリズム(M. A. Branch, T. F. Coleman, and Y. Li, “A Subspace, Interior, and Conjugate Gradient Method for Large-Scale Bound-Constrained Minimization Problems,” SIAM Journal on Scientific Computing, Vol. 21, Number 1, pp 1-23, 1999)等が用いられてもよい。更に、上記した距離関数として「B. Triggs et. al., “Bundle Adjustment - A Modern Synthesis”, Proceedings of the International Workshop on Vision Algorithms: Theory and Practice, pp. 298-372, 1999」に開示されているようなロバスト関数を用いることも可能である。
このように本実施形態においては、M組の多視点画像の各々に含まれる被写体までのスケールが不定な距離(特徴点毎に取得された距離)とM組の多視点画像の各々を統計モデルに入力することによって当該統計モデルから出力されるぼけ値とに基づく非線形最適化によってスケールパラメータβj及びカメラパラメータfを計算することができる。
なお、上記した非線形最適化問題は局所解を与えるものであり、大域解を与えるものではない。このため、スケールパラメータβj及びカメラパラメータfの初期値によっては誤差が大きくなる場合がある。
このため、本実施形態においては、前述した第1実施形態において説明した線形回帰問題を利用することによって決定(計算)される初期値を用いるものとする。
具体的には、前述した第1実施形態においては、単一のシーンにおいて撮像された1組の多視点画像に関して、前述した式(12)、式(15)及び式(16)を用いてスケールパラメータβ及びカメラパラメータfを計算することができるが、このような計算を多視点画像の組(つまり、シーンj=0,1,…,M-1)毎に実施する。これによれば、前述したように多視点画像の各々に含まれる被写体までの距離の逆数と当該多視点画像の各々を統計モデルに入力することによって当該統計モデルから出力されるぼけ値とを線形回帰させることで、シーンj毎にスケールパラメータβ及びカメラパラメータfが計算される。
この場合、シーンj毎に計算されたカメラパラメータf(つまり、M個のカメラパラメータf)の平均値を、上記した式(23)におけるカメラパラメータfの初期値として決定する。なお、上記したシーンj毎に計算されたスケールパラメータβは、それぞれスケールパラメータβjの初期値として用いる。
本実施形態においては、このように決定(計算)されたスケールパラメータβj及びカメラパラメータfの初期値を用いて上記した非線形最適化問題(つまり、式(23))を解くことによって、スケールパラメータβj及びカメラパラメータfを計算する。
このようなスケールパラメータβj及びカメラパラメータfの初期値を用いた場合には、非線形最適化問題を解くことによって計算されるスケールパラメータβj及びカメラパラメータfに大きな誤差が生じることを抑制することができる。
ステップS4の処理が実行されると、ステップS5及びS6の処理が実行される。なお、ステップS5及びS6の処理は前述した第1実施形態において説明した通りであるため、ここではその詳しい説明を省略する。
なお、ステップS5においては、上記した式(21)に対してステップS2において取得されたスケールが不定の距離z0、予め定められているパラメータ(レンズ21とイメージセンサ22との距離v、画素ピッチp及び絞りF)、ステップS4において計算されたスケールパラメータβj及びカメラパラメータfを適用することによって、当該スケールが不定な距離z0がぼけ値bに変換されればよい。
なお、本実施形態において説明したようにM個の多視点画像が撮像された場合であっても、シーン毎に第1実施形態と同様の処理を実行することによって計算されたスケールパラメータβ及びカメラパラメータf(つまり、シーン毎に独立して計算されたスケールパラメータβ及びカメラパラメータf)を用いて統計モデルを学習させることが考えられる。しかしながら、このような構成とした場合には、シーン毎に異なるカメラパラメータfが計算されることになり、カメラパラメータfが固定されている(共通している)という拘束が反映されず、学習の精度が低下する。よって、本実施形態においては、上記した非線形最適化問題を解くことによって計算されるスケールパラメータβj及びカメラパラメータfを用いて、精度の高い学習を実現する。
撮像画像から距離情報を取得する際の画像処理装置3の処理については前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。
上記したように本実施形態においては、M組の多視点画像(複数の第2画像)の各々に含まれる被写体までの距離と当該多視点画像の各々を統計モデル(事前学習統計モデル)に入力することによって当該統計モデルから出力されるぼけ値とに基づく非線形最適化によってスケールパラメータβj及びカメラパラメータf(第1及び第2パラメータ)を計算する。
本実施形態においては、このような構成により、適用先ドメインで複数(例えば、M個)のシーンにおいて多視点画像が撮像された場合であっても、当該撮像された多視点画像を取得(収集)してオンラインで統計モデルを学習させることができるため、例えば単一のシーンにおいて撮像された多視点画像毎に学習を行う場合と比較して、より学習の容易性及び効率性を向上させることができる。
更に、本実施形態においては、第1実施形態において説明した処理を実行する(つまり、スケールが不定の距離の逆数と多視点画像の各々を統計モデルに入力することによって当該統計モデルから出力されるぼけ値とを線形回帰させる)ことによりスケールパラメータβj及びカメラパラメータfの初期値を計算し、当該計算された初期値を用いてスケールパラメータβj及びカメラパラメータfを計算する。このような構成によれば、誤差の小さいスケールパラメータβj及びカメラパラメータfを得ることができるため、結果として学習の精度を向上させることができる。
(第3実施形態)
次に、第3実施形態について説明する。本実施形態における測距システム(撮像装置及び画像処理装置)の構成等については前述した第1実施形態と同様であるため、本実施形態において測距システムの構成について説明する場合には、適宜、図1等を用いる。ここでは、前述した第1実施形態とは異なる点について主に述べる。
前述した第1実施形態においては、ピントが固定された状態で撮像された多視点画像を用いて統計モデルを学習させる場合について説明したが、本実施形態は、例えばオートフォーカス機能等によってピントを変化させながら撮像された多視点画像(K個の画像)を用いて統計モデルを学習させる点で、当該第1実施形態とは異なる。
なお、本実施形態における多視点画像は、単一のシーンにおいて撮像されているものとする。つまり、本実施形態においては、多視点画像の各々におけるスケールパラメータβは同一であるが、カメラパラメータfが異なる場合を想定している。
以下、本実施形態において統計モデルを学習させる際の画像処理装置3の処理手順の一例について説明する。ここでは、便宜的に、前述した図15を用いて説明する。
まず、距離取得部35aは、画像取得部32によって取得された多視点画像(撮像装置2で撮像された画像)学習用画像として取得する(ステップS1)。なお、ステップS1において取得される多視点画像は、K個の画像であるものとする。
ステップS1の処理が実行されると、距離取得部35aは、当該ステップS1において取得された多視点画像から、当該多視点画像の各々に含まれる被写体までの距離(スケールが不定な距離)を取得する(ステップS2)。
なお、ステップS2の処理は前述した第1実施形態において説明した通りであるため、ここではその詳しい説明を省略する。
ステップS2の処理が実行されると、ステップS3の処理が実行される。このステップS3の処理は前述した第1実施形態において説明した通りであるため、ここではその詳しい説明を省略する。
次に、パラメータ計算部35bは、不定なパラメータ(スケールパラメータβ及びカメラパラメータfk)を計算する(ステップS4)。なお、カメラパラメータfk(k=0,1,…,K-1)は、ピントを変化させながら撮像された多視点画像(K個の画像)のうちの画像kが撮像された際の撮像装置2の焦点距離である。
ここで、前述した第1実施形態では、単一のシーン(つまり、スケールパラメータβが1つ)であり、かつ、ピントが固定されている(つまり、カメラパラメータfが1つ)という条件の下で線形回帰からクローズドフォームで不定パラメータを計算することができるが、本実施形態のようにピントを変換させながら多視点画像が撮像されている場合、カメラパラメータfが多視点画像の各々によって異なる(つまり、カメラパラメータが複数存在する)ため、当該第1実施形態のようなクローズドフォーム解は存在しない。
なお、上記したようにオートフォーカス機能によってピントを変化させる場合、画像毎にレンズ21とイメージセンサ22との距離v及びカメラパラメータfが変化するが、当該距離vは撮像装置2(カメラ)の内部パラメータとして画像毎に求めることができるものとする。
そこで、本実施形態においては、スケールパラメータβ及びカメラパラメータfkを計算するために以下に説明するように非線形回帰問題を定式化する。
まず、前述した式(9)により、本実施形態においてスケールが不定な距離からぼけ値bを求める以下の式(24)を得ることができる。
ここで、多視点画像の各々に含まれる特徴点毎に取得(計算)されたスケールが不定な距離z
0から変換されるぼけ値b(z
0;β,f
k)と、統計モデルから出力されたぼけ値b(つまり、距離z
0に対応するぼけ値b)とは等しくなるはずである。このため、不定なパラメータであるスケールパラメータβ及びカメラパラメータf
kを求める問題は、以下の式(25)のような非線形回帰問題に帰着する。
式(25)におけるNkはK個の画像(多視点画像)のうちの1つの画像kに含まれる特徴点毎に取得されたスケールが不定な距離z0と当該距離z0に対応するぼけ値bとの組み合わせの集合(サンプル全体)を表し、lは任意の距離関数を表している。
上記した式(25)は不定なパラメータ(スケールパラメータβ及びカメラパラメータf
k)に関する非線形最適化問題であり、当該式(25)における距離関数lをL2ノルムとすると、以下の式(26)のような非線形最小二乗問題となる。
このような式(26)は、例えば上記したLevenberg-Marquardt法で解を求めることができる。このLevenberg-Marquardt法以外にも、例えばTrust Region Reflectiveアルゴリズム等が用いられてもよい。更に、上記した距離関数としてロバスト関数を用いることも可能である。
このように本実施形態においては、多視点画像(K個の画像)の各々に含まれる被写体までのスケールが不定な距離(特徴点毎に取得された距離)と当該多視点画像の各々を統計モデルに入力することによって当該統計モデルから出力されるぼけ値とに基づく非線形最適化によってスケールパラメータβ及びカメラパラメータfkを計算することができる。
なお、上記した非線形最適化問題は局所解を与えるものであり、大域解を与えるものではない。このため、スケールパラメータβ及びカメラパラメータfkの初期値によっては誤差が大きくなる場合がある。
このため、本実施形態においては、前述した第1実施形態において説明した線形回帰問題を利用することによって決定(計算)される初期値を用いるものとする。
具体的には、前述した第1実施形態においては、単一のシーンにおいて撮像された1組の多視点画像に関して、前述した式(12)、式(15)及び式(16)を用いてスケールパラメータβ及びカメラパラメータfを計算することができるが、このような計算を多視点画像(K個の画像)の各々について実施する。これによれば、前述したように多視点画像の各々に含まれる被写体までの距離の逆数と当該画像を統計モデルに入力することによって当該統計モデルから出力されるぼけ値とを線形回帰させることで、画像k毎にスケールパラメータβ及びカメラパラメータfが計算される。
この場合、画像k毎に計算されたスケールパラメータβ(つまり、K個のスケールパラメータβ)の平均値を、上記した式(24)におけるスケールパラメータβの初期値として決定する。なお、上記した画像k毎に計算されたカメラパラメータfは、それぞれカメラパラメータfkの初期値として用いる。
本実施形態においては、このように決定(計算)されたスケールパラメータβ及びカメラパラメータfkの初期値を用いて上記した非線形最適化問題(つまり、式(26))を解くことによって、スケールパラメータβ及びカメラパラメータfkを計算する。
このようなスケールパラメータβ及びカメラパラメータfkの初期値を用いた場合には、非線形最適化問題を解くことによって計算されるスケールパラメータβ及びカメラパラメータfkに大きな誤差が生じることを抑制することができる。
ステップS4の処理が実行されると、ステップS5及びS6の処理が実行される。なお、ステップS5及びS6の処理は前述した第1実施形態において説明した通りであるため、ここではその詳しい説明を省略する。
なお、ステップS5においては、上記した式(24)に対してステップS2において取得されたスケールが不定の距離z0、予め定められているパラメータ(レンズ21とイメージセンサ22との距離v、画素ピッチp及び絞りF)、ステップS4において計算されたスケールパラメータβ及びカメラパラメータfkを適用することによって、当該スケールが不定な距離z0がぼけ値bに変換されればよい。
なお、本実施形態において説明したようにオートフォーカス機能を用いて多視点画像(K個の画像)が撮像された場合であっても、当該画像毎に第1実施形態と同様の処理を実行することによって計算されたスケールパラメータβ及びカメラパラメータf(つまり、画像毎に独立して計算されたスケールパラメータβ及びカメラパラメータf)を用いて統計モデルを学習させることが考えられる。しかしながら、このような構成とした場合には、画像毎に異なるスケールパラメータβが計算されることになり、スケールパラメータβが固定されている(共通している)という拘束が反映されず、学習の精度が低下する。よって、本実施形態においては、上記した非線形最適化問題を解くことによって計算されるスケールパラメータβ及びカメラパラメータfkを用いて、精度の高い学習を実現する。
撮像画像から距離情報を取得する際の画像処理装置3の処理については前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。
上記したように本実施形態においては、多視点画像(K個の画像)の各々に含まれる被写体までの距離と当該多視点画像の各々を統計モデル(事前学習統計モデル)に入力することによって当該統計モデルから出力されるぼけ値とに基づく非線形最適化によってスケールパラメータβ及びカメラパラメータfk(第1及び第2パラメータ)を計算する。
本実施形態においては、このような構成により、適用先ドメインでオートフォーカス機能等によってピントを変化させながら多視点画像が撮像された場合であっても、当該撮像された多視点画像を取得(収集)してオンラインで統計モデルを学習させることができるため、例えばピントを固定した状態で撮像された多視点画像を学習する場合と比較して、より学習用の容易性及び効率性向上させることができる。
更に、本実施形態においては、第1実施形態において説明した処理を実行する(つまり、スケールが不定の距離の逆数と多視点画像の各々を統計モデルに入力することによって当該統計モデルから出力されるぼけ値とを線形回帰させる)ことによりスケールパラメータβ及びカメラパラメータfkの初期値を計算し、当該計算された初期値を用いてスケールパラメータβ及びカメラパラメータfkを計算する。このような構成によれば、誤差の小さいスケールパラメータβ及びカメラパラメータfkを得ることができるため、結果として学習の精度を向上させることができる。
以上述べた少なくとも1つの実施形態によれば、被写体までの距離を取得するための統計モデルにおける学習の容易性を向上させることが可能な学習方法、プログラム及び画像処理装置を提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。