JP2018081378A - 画像処理装置、撮像装置、画像処理方法および画像処理プログラム - Google Patents
画像処理装置、撮像装置、画像処理方法および画像処理プログラム Download PDFInfo
- Publication number
- JP2018081378A JP2018081378A JP2016221735A JP2016221735A JP2018081378A JP 2018081378 A JP2018081378 A JP 2018081378A JP 2016221735 A JP2016221735 A JP 2016221735A JP 2016221735 A JP2016221735 A JP 2016221735A JP 2018081378 A JP2018081378 A JP 2018081378A
- Authority
- JP
- Japan
- Prior art keywords
- parallax
- reference pattern
- pattern data
- image data
- imaging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Processing (AREA)
- Studio Devices (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
【課題】画像探索処理を行うことなく視差の算出に必要な計算負荷を軽減する。【解決手段】画像処理装置102は、互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる視差を算出する。該装置は、互いに異なる視差に対応する複数の参照パターンデータのうち、視差画像データに含まれる視差の想定範囲に応じた複数の特定参照パターンデータを取得し、複数の特定参照パターンデータを用いて視差画像データを表すために該複数の特定参照パターンデータのそれぞれに重みを付ける複数の係数を算出し、複数の特定参照パターンデータのそれぞれに対応する視差と複数の係数とを用いて視差画像データに含まれる視差を算出する。【選択図】図2
Description
本発明は、被写体空間を異なる視点から撮像することで得られた画像データから視差の情報を取得する画像処理技術に関する。
被写体空間を複数の視点から撮像することで得られた複数の視点画像から視差の情報を取得する方法が種々提案されている。例えば、複数の視点画像間においてブロックマッチング等の画像探索処理によって互いに対応する対応点を検出し、それぞれの視点画像における対応点の位置(座標)の相違量から視差量を求める方法がある。求められた視差量は、被写体までの距離の算出等に利用される。
また、特許文献1には、互いに異なる2視点からの撮像により得られた2つの視点画像間で同サイズの領域同士の相対的な位置を変えながら該領域間でブロックマッチングを行い、最も類似性が高い領域同士を対応領域として検出する方法が開示されている。そして、対応領域内での位置差をそれらの対応領域間の視差として得る。
しかしながら、ブロックマッチング等の画像探索処理は計算負荷が大きい。この点、特許文献1にて開示された方法では、探索する領域のサイズを制限することで計算負荷を低減させているが、画像探索処理が必要であるために負荷軽減には限界がある。
本発明は、画像探索処理を行うことなく視差の算出に必要な計算負荷を軽減することができるようにした画像処理装置等を提供する。
本発明の一側面としての画像処理装置は、互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる視差を算出する。該装置は、互いに異なる視差に対応する複数の参照パターンデータのうち、視差画像データに含まれる視差の想定範囲に応じた複数の特定参照パターンデータを取得する取得手段と、複数の特定参照パターンデータを用いて視差画像データを表すために該複数の特定参照パターンデータのそれぞれに重みを付ける複数の係数を算出し、複数の特定参照パターンデータのそれぞれに対応する視差と複数の係数とを用いて視差画像データに含まれる視差を算出する算出手段とを有することを特徴とする。
なお、上記画像処理装置を含む撮像装置も、本発明の他の一側面を構成する。
また、本発明の他の一側面としての画像処理方法は、互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる視差を算出する方法である。該方法は、互いに異なる視差に対応する複数の参照パターンデータのうち、視差画像データに含まれる視差の想定範囲に応じた複数の特定参照パターンデータを取得するステップと、複数の特定参照パターンデータを用いて視差画像データを表すために該複数の特定参照パターンデータのそれぞれに重みを付ける複数の係数を算出し、複数の特定参照パターンデータのそれぞれに対応する視差と前記複数の係数とを用いて視差画像データに含まれる視差を算出するステップとを有することを特徴とする。
なお、コンピュータを上記画像処理装置として動作させるコンピュータプログラムとしての画像処理プログラムも、本発明の他の一側面を構成する。
本発明によれば、計算負荷を軽減しつつ視差画像データに含まれる視差を算出することができる。
以下、本発明の実施例について図面を参照しながら説明する。まず、実施例の具体的な説明の前に、典型的な実施例の概要について図1を用いて説明する。
典型的な実施例では、被写体空間を複数の視点から撮像することで生成された撮像画像データ(図示せず)から視差の情報を含む視差画像データとしての一組の入力画像i(i1,i2,…)を取得する。ただし、一組の入力画像は、撮像画像データから取得可能であればよく、後述するように一組の入力画像の視差が算出される前に実際に取得されなくてもよい。例えば、撮像画像データが複数の視点からの撮像により得られた視差の情報を含む1つの画像に相当する場合に、該1つの画像から一組の入力画像が分離されるのと同時または分離より前に該一組の入力画像の視差が算出されるようにしてもよい。
また、実施例では、事前に互いに異なる複数の既知の視差に対応する複数の参照パターンデータを用意する。参照パターンデータは、ある視差を有する画像間に表れる相違を表す一組の基本的なパターンである一組の参照パターンを示すデータである。以下の説明において、参照パターンデータに対応する視差を参照視差ともいい、複数の参照パターンデータのそれぞれに対応する複数の視差をまとめて参照視差群ともいう。
一組の入力画像は、複数の参照パターンデータのうち該一組の入力画像が有する視差として想定される範囲内の既知の視差に対応する参照パターンデータ(以下、特定参照パターンデータといい、図では参照パターン1,2,…と示す)を用いて表すことができる。一組の入力画像の視差の想定範囲(以下、想定視差範囲という)は、例えば撮像を行って撮像画像データを生成した撮像装置の構成に基づいて設定される。実施例では、一組の入力画像を複数の特定参照パターンデータの組合せにより表すために、それぞれの特定参照パターンデータに重みを付けるための複数の係数α1,α2,…(以下、まとめて係数群αともいう)を算出する。一組の入力画像は、複数の特定参照パターンデータに係数群α(α1,α2,…)を乗じて加算する(重み付け平均する)ことで表すことができる。実施例では、このことを利用して、算出した係数群αと複数の特定参照パターンデータに対応する参照視差群d(d1,d2,…)とを用いて一組の入力画像の視差を算出する。この際、一組の入力画像を入力とする関数を用いるが、この関数の例については具体的な実施例にて説明する。
このような実施例においては、予め用意された複数の参照パターンデータから一組の入力画像の想定視差範囲に応じた特定参照パターンデータを取得(選択)し、後述する行列演算によって係数群を算出すればよい。このため、ブロックマッチング等の画像探索処理が必要なくなり、視差算出における計算負荷が低減される。また、想定視差範囲に基づいて使用する特定参照パターンデータを取得することで、可能な限り少数の参照パターンデータを用いて入力画像の視差を算出することができ、より計算負荷を低減させることができる。
さらに、複数の参照パターンデータに対応する参照視差群は、一組の入力画像における視差を算出する前に既知の情報として取得しておく。これにより、特定参照パターンデータに対応する参照視差群と係数群とを用いた単純な演算によって一組の入力画像の視差を算出することができる。すなわち、視差算出のための計算負荷を低減することができる。
本発明の具体的な実施例1である撮像装置100の構成について図2を用いて説明する。撮像部101は、被写体空間を互いに異なる複数の視点から撮像することにより撮像画像データとしての一組(例えば一対)の撮像画像を生成する。撮像部101の詳しい構成については後述する。
画像処理装置としての画像処理部102は、一組の撮像画像から取得した一組の入力画像の視差を算出する。画像処理部102は、学習部102aと視差算出部102bとを有する。学習部102aは、複数の参照パターンデータを機械学習によって生成(算出)し、生成した複数の参照パターンデータをこれらのそれぞれに対応する参照視差と関連付けて記憶部(記憶手段)103に記憶させる。学習部102aは生成手段として機能する。
視差算出部102bは、記憶部103から、前述した想定視差範囲に基づいて選択した複数の特定参照パターンデータを読み出し、読み出された特定参照パターンデータを用いて一組の入力画像の視差を算出する。視差算出部102bは、取得手段、算出手段および設定手段として機能する。画像処理部102が行う機械学習や視差算出処理についての詳細は後述する。
なお、視差算出部102bは、記憶媒体105に保存された一組の入力画像について、ユーザにより指定されたタイミングで視差を算出してもよい。また、一組の入力画像は静止画に限らず動画でもよい。この場合、一組の動画のそれぞれを構成する同タイミングのフレーム画像間の視差が算出される。
システムコントローラ106は、撮像部101および画像処理部102の動作を制御する。また、システムコントローラ106は、撮像画像を液晶ディスプレイ等の表示部104に表示したり記録媒体105に保存したりする。
次に、撮像部101の構成について図3(a),(b)を用いて説明する。図3(a),(b)では代表的な撮像部101の構成を示しているが、撮像部としては被写体空間を互いに異なる複数の視点から撮像することで互いに異なる視差を含む撮像画像データ(1又は複数の撮像画像)を得ることができる構成を有すればよい。
図3(a)には、撮像レンズ(撮像光学系)201と撮像素子202とにより構成される第1のカメラユニットと、撮像レンズ203と撮像素子204とにより構成される第2のカメラユニットの2つのカメラユニットを有する撮像部101を示している。なお、撮像部101に設けられるカメラユニットは2つである必要はなく、3つ以上の複数のカメラユニットを含んでいてもよい。また、各撮像レンズは1つのレンズ素子により構成されてもよいし、複数のレンズ素子により構成されてもよい。このような構成の撮像部101を有する撮像装置は、多眼カメラ、カメラアレイまたはステレオカメラ等と称される。
複数のカメラユニットが同時に被写体空間における被写体面200を撮像することで一組の撮像画像が生成される。複数のカメラユニットは互いに異なる視点に配置されているため、被写体面200を互いに異なる複数の視点に対応する撮像画像データを取得することができる。また、複数のカメラユニットの配置方向と平行な直線被写体に対しては視差が付かないので、3つ以上のカメラユニットについては同一直線上に並ばないように配置する方が、後述する視差算出(推定)に対するロバスト性の観点から有利である。
また、図3(b)には、撮像レンズ211と撮像素子213との間にマイクロレンズアレイ212が配置された撮像部101を示している。このような撮像部101を有する撮像装置は、プレノプティックカメラと称される。マイクロレンズアレイ212は、複数の微小な凸レンズを2次元アレイ状に配置することで構成される。撮像レンズ211は1つのレンズ素子により構成されてもよいし、複数のレンズ素子により構成されてもよい。
被写体面200の同一点から発せられて撮像レンズ211に入射した光束214,215は、マイクロレンズアレイ212のうち同一の凸レンズを通過して撮像素子213における互いに異なる画素(受光素子)216,217に到達する。このようなプレノプティックカメラは、マイクロレンズアレイ212の作用によって撮像レンズ211の射出瞳のうち互いに異なる瞳領域を通過した光束を弁別することができる。
具体的には、撮像レンズ211の射出瞳のうち上半分(平面視における右半分)の瞳領域を通過した光束214は撮像素子213の画素217等のR画素に入射する。また、射出瞳の下半分(平面視における左半分)の領域を通過した光束215は撮像素子213の画素216等のL画素に入射する。このように、撮像レンズ211の射出瞳のうち互いに異なる瞳領域を通過した光束が撮像素子213における互いに異なる画素に入射するため、これら光束を弁別することができる。
そして、撮像素子213における複数のR画素の信号を抜き出して再配置することで、撮像レンズ211の右瞳領域を視点とするR撮像画像を生成することができる。また、複数のL画素の信号を抜き出して再配置することで、撮像レンズ211の左瞳領域を視点とするL撮像画像を生成することができる。
なお、図3(b)ではマイクロレンズアレイ212の1つの凸レンズに対して2つの画素が配置される撮像素子213を示しているが、3つ以上の画素が配置されてもよく、1つの凸レンズに対する画素数に応じた視点数の画像を生成することができる。
次に、画像処理部102が行う視差算出処理について、図4のフローチャートを用いて説明する。画像処理コンピュータにより構成される画像処理部102のうち視差算出部102bがコンピュータプログラムである画像処理プログラムに従って本処理を実行する。
ステップS101では、視差算出部102bは、事前に用意されて記憶部103に記憶された複数の参照パターンデータのうち複数の特定参照パターンデータとこれらに対応する参照視差群とを取得する。参照パターンデータの生成方法(学習方法)および参照視差群の算出方法については後に詳しく説明する。
視差算出部102bは、複数の特定参照パターンデータを前述したように視差想定範囲に基づいて選択する。視差算出部102bは、想定視差範囲を撮像装置100の構成や想定される被写体までの距離に基づいて設定する。ここにいう撮像装置100の構成とは、視点数、撮像素子の画素ピッチ、撮像光学系の焦点距離、複数の視点(カメラユニット)の基線長、基線方向および輻輳角、プレノプティックカメラのF値やフォーカス位置等である。すなわち、撮像装置100の構成は、撮像装置により生成された一組の撮像画像間に発生する視差に影響する様々な要素を含む。言い換えれば、撮像装置100の構成とは、一組の撮像画像間に発生する視差に関する撮像条件である。
特定参照パターンデータの数が多いほど視差算出における計算負荷が増加するので、想定視差範囲に基づいて最小限の数の特定参照パターンデータを用いることにより視差算出における計算負荷を軽減することができる。
ステップS102では、視差算出部102bは、撮像部101が生成した一組の撮像画像を取得し、各撮像画像から入力画像を取得する。すなわち、一組の入力画像を取得する。
撮像画像がRGB(Red, Green, Blue)等の複数の色成分で表されている場合には、これら複数の色成分を1つの色成分に変換することにより入力画像を取得(生成)する。例えば、全ての色成分を平均化することでグレースケールの色成分の入力画像を生成したり任意の変換式を用いて1つの色成分に変換することで入力画像を生成したりする。また、複数の色成分のうち代表的な1つの色成分を入力画像として取得してもよい。また、複数の色成分をすべて入力画像として取得してもよい。この場合、色成分ごとに視差を算出してその平均値を入力画像の視差としてもよい。
さらに、1つの色成分は、それをそのまま入力画像として取得してもよいし、微分フィルタを用いて輝度変化を表す入力画像に変換してもよい。複数の色成分を、それらの平均値を差し引いた上でコントラストを揃えて入力画像として取得してもよい。これらの入力画像取得処理を行うことにより、撮像画像の明暗や撮像部101でのヴィネッティングの影響を低減し、より正確に視差の算出を行うことが可能な入力画像を取得することができる。なお、微分フィルタを用いる場合は、後述する学習画像に対しても同様の処理を行うことが望ましい。
ステップS103では、視差算出部102bは、一組の入力画像と選択した複数の特定参照パターンデータとを用いて係数群を算出する。具体的には、視差算出部102bは、複数の特定参照パターンデータに乗じることで一組の入力画像を表すことができる係数群を算出可能な任意の関数に該入力画像を代入することで係数群を算出する。関数の計算量によって入力画像の視差算出における計算負荷が大きく左右されるため、できるだけ計算量を少なくすることができる関数を用いることが望ましい。なお、入力画像は、計算負荷を軽減する観点から、複数の特定参照パターンデータの組合せで表されることが望ましい。入力画像を表す特定参照パターンデータの数が1つであると、入力画像を正確に表すためにはその特定参照パターンデータに非常に多くの参照パターンのデータを含める必要があり、計算負荷が増大するためである。
本実施例では、上記関数として、特定参照パターンデータに基づいた行列演算を用いる。一組の入力画像を列ベクトルiとし、特定参照パターンデータを列ベクトルとしたときに複数の特定参照パターンデータのそれぞれを列成分として持つ(つまりは配列した)行列を変換行列Dとし、係数群を列ベクトルαで表す。この場合、以下の式(1)のように変換行列Dの一般化逆行列D−1に列ベクトルiを乗じることで列ベクトルαが求められる。
変換行列Dが正則行列である場合は、一般化逆行列D−1は行列Dの逆行列を指す。なお、図1に示すように、各参照パターンは入力画像間の視差を表すだけでなく明暗や構造も表すため、参照パターンには視点間で同一のパターン等、視差を表さないものも含まれる。視差算出において視差を表さない参照パターンは必要ないため、変換行列Dの一般化逆行列D−1から視差を表さない参照パターンを除いて以後の処理に用いてもよいし、そのまま用いてもよい。
ステップS104では、視差算出部102bは、ステップS103で求めた係数群と複数の特定参照パターンデータに対応する参照視差群とを用いて一組の入力画像の視差を算出(推定)する。参照視差群を行ベクトルdとし、任意の1つの視点を基準とした一組の入力画像間の視差をスカラー量pとすると、pは以下の式(2)に示すようにdの各要素(di)とαの各要素(αi)と符号調整項jとの積の総和で求められる。
参照パターンの濃淡反転等を表現するために、係数群αは正と負の両方の値を取り得る。しかし、係数の符号の違いは視差が発生する方向には関係なく、一組の入力画像の視差の算出においては該係数の大きさのみが用いられる。したがって、係数が負の場合は、係数あるいは対応する参照視差のどちらか一方の符号を反転させることによって、係数と参照視差との積の符号を、常に参照視差の符号と一致させる必要がある。本実施例では、符号を反転させる方法として符号調整項jを用いて係数と同じ符号の値を乗じる手法を用いているが、αの絶対値をとる手法を用いてもよい。これにより、入力画像の色や明暗の違いによる影響を低減し、視差の算出精度を向上させることができる。
次に、参照パターンデータの生成方法について図5のフローチャートを用いて説明する。本実施例では、参照パターンデータを機械学習によって生成(算出)する。機械学習は、視差算出の前であれば、撮像装置100の学習部102aで行ってもよいし、撮像装置100とは別の演算装置で行ってもよい。本実施例では、学習部102aで機械学習を行う場合について説明する。
ステップS201では、学習部102aは、複数の視点から被写体を撮像することにより生成された一組の撮像画像の少なくとも一部から、該複数の視点のうち一組の視点から撮像された同一被写***置の画像の組を複数の被写***置について抽出する。そして、このように抽出した視点ごとの複数の被写***置の画像の集合を1つの学習画像とし、一組の視点に対応する学習画像の組を学習画像データとしての一組の学習画像とする。なお、学習画像の元となる上記撮像画像は、被写体の撮像をコンピュータでシミュレーションして生成された画像であってもよい。
1つの学習画像を構成する撮像画像からそれぞれ抽出された画像のサイズは、入力画像と同じサイズの画像であってもよいし、入力画像とは異なるサイズの学習画像を入力画像のサイズに合わせて拡大または縮小して用いてもよい。一般に、撮像装置の構成に応じて撮像画像にて発生する視差が異なるため、参照パターンデータは撮像装置の構成に基づいて設定された視差を有する学習画像から生成することが望ましい。これにより、学習画像から生成される参照パターンデータと一組の入力画像に含まれる視差とを同等にすることができ、発生しない視差ずれ量を参照パターンデータから排除することができるので、入力画像の視差算出における精度や計算速度が向上する。学習部102aは、視点の組が互いに異なる複数組の学習画像を生成する。
ステップS202では、学習部102aは、ステップS201で生成した複数組の学習画像(複数の学習画像データ)を用いた機械学習により複数の参照パターンデータを生成する。参照パターンデータを求めるために、以下の式(3)に示すように、学習画像を変換行列Dと係数行列Aとの積で表したときの誤差を最小にする変換行列Dを最適化によって求める。
係数行列Aは、一組の学習画像に対応する係数群を列ベクトルとしたときに複数組の学習画像のそれぞれの係数群を複数の列成分として持つ行列を表す。また、Lは一組の学習画像を列ベクトルとしたときに複数組の学習画像のそれぞれを複数の列成分として持つ行列を表す。
はフロベニウスノルムを、
はL0ノルムを、kは任意の定数を表す。変換行列Dや行列Aの初期値は任意の値でよく、例えば乱数から決定するとよい。行列AのL0ノルムでの最適化に制約を課すことで、少ない参照パターンデータの組合せで行列Lを表すことができる。これについて、例えば以下の参考文献に詳しい。
[参考文献]K. Marwah, et al., “Compressive Light Field Photography using Overcomplete Dictionaries and Optimized Projections.” Proc. of SIGGRAPH 2013 (ACM Transactions on Graphics 32, 4), 2013.
変換行列Dの各列成分としての列ベクトルは一組の参照パターンを表しているので、変換行列Dから該一組の参照パターンを示すデータである参照パターンデータを求めることができる。
[参考文献]K. Marwah, et al., “Compressive Light Field Photography using Overcomplete Dictionaries and Optimized Projections.” Proc. of SIGGRAPH 2013 (ACM Transactions on Graphics 32, 4), 2013.
変換行列Dの各列成分としての列ベクトルは一組の参照パターンを表しているので、変換行列Dから該一組の参照パターンを示すデータである参照パターンデータを求めることができる。
ステップS203では、学習部102aは参照パターンデータに対応する視差を求める。視差を求める方法としては、任意の方法を用いることができる。例えば、ブロックマッチングを用いて視差を求める方法でもよいし、ライトフィールド(以下、LFと略記する)の断面の傾きから視差を求める方法でもよい。ここでは、LFの断面の傾きから視差を求める方法について説明する。
ここではまず、LFの定義について説明する。LFは被写体から撮像面に入射する光線の入射位置、入射方向および強度の情報を示す空間である。一般には、撮像面上で光線が入射する点の空間座標(x,y)と光線の方向を示す方向座標(u,v)とを用いて、4次元空間(x,y,u,v)として表される。方向座標(u,v)は、xy平面に平行で所定の距離だけ離れたuv平面において光線が通過する点の空間座標であり、視点位置と対応付けることができる。一組の参照パターンはそれぞれ視点ごとの2次元画像であり、視点の位置を(u,v)とし、2次元画像内の座標を(x,y)で表せば、上記の対応関係に基づいて4次元のLFデータ(x,y,u,v)に変換することができる。視差を求める際は、1次元の空間座標および1次元の方向座標により表現されるLFの2次元断面が用いられる。2次元断面は、(x,u)あるいは(y,v)で表される。ここで、2次元断面は1つの断面に限定されるものではなく、(x,u)および(y,v)の両方の2次元断面を用いて視差を求めることもできる。
図6には、2次元断面を(x,u)で表した例を示す。図6に示すように、被写体221の同一点に対応するデータ点は、LFの2次元断面において線分を形成する。これは、被写体221の同一点から出射した光線の空間座標xまたはyの位置が、方向座標uまたはvの変化に対応して移動するためである。この線分の傾きは、異なる視点から入射した光線が撮像素子上でどれだけ異なる位置に入射するか、つまり異なる視点から見た場合の複数の画像間にどれだけの視差が生じるかを示している。そこで、この傾きを参照パターンデータに対応する視差として、複数の参照パターンデータの全てについて視差を事前に求める。
本実施例では、計算負荷が大きくなり易い複数の参照パターンデータに対応する視差の算出を入力画像の視差算出の前に行い、該入力画像に対しては選択した複数の特定参照パターンに対応する参照視差群と係数群とを用いた単純な演算により視差を算出する。これにより、入力画像の視差算出における計算負荷を軽減させることが可能となる。
算出された入力画像の視差は、撮像装置の構成(基線長等)に基づいて距離に変換することができる。そして、求めた距離の情報は、深度が深い撮像画像に対して距離に応じたぼけを付加する処理や撮像時のオートフォーカス等に利用することができる。また、撮像装置100を車載カメラとして構成し、距離情報や撮像画像から周囲の障害物を認識して自走する自動運転や衝突を回避するための運転補助(ブレーキ制御等)に利用することもできる。
また、本実施例では撮像装置100に学習部102aを設ける場合について説明したが、予め学習した結果を記憶部103に記憶させておくことで、撮像装置100に学習部102aを設けなくてもよい。
次に、本発明の実施例2である画像処理システムについて説明する。本実施例では、入力画像の視差算出を行う画像処理装置と、撮像画像を生成する撮像装置と、機械学習を行うサーバーとが個別に存在している。また、画像処理装置には、多眼カメラやプレノプティックカメラ等の様々な撮像装置を接続することができ、接続された撮像装置の構成に応じて使用する変換行列を切り替える。本実施例にいう撮像装置の構成も、実施例1と同様に、視点数、撮像素子の画素ピッチ、撮像光学系の焦点距離、複数の視点(カメラユニット)の基線長、基線方向および輻輳角、プレノプティックカメラのF値やフォーカス位置等である。言い換えれば、一組の撮像画像間に発生する視差に関する撮像条件である。
また、本実施例では、撮像時に想定される視差の大きさに応じて、入力画像の視差算出に使用する変換行列を取得するための学習画像を取得する。これにより、より高精度な視差算出を可能とする。
本実施例における画像処理システムは、図7に示す構成を有する。撮像装置300の構成は、実施例1の撮像装置100から画像処理部102を除いたものと同じである。撮像装置300により生成された一組の撮像画像は画像処理装置301に送られ、画像処理装置301内の記憶部302に記憶される。画像処理装置301は、有線または無線通信により直接またはネットワークを介してサーバー304と接続されている。
サーバー304は、複数の参照パターンデータを生成し、さらに変換行列と参照視差群を機械学習により生成(算出)する学習部305と、これら変換行列および参照視差群を記憶する記憶部306とを有する。画像処理装置301は、サーバー304の記憶部306から変換行列と参照視差群を取得する。視差算出部303は、それら変換行列と参照視差群を用いて、一組の入力画像の視差を算出する。算出された入力画像の視差は、撮像画像に対するぼけ付加処理等の画像処理に利用され、該画像処理後の画像は、表示装置307、記録媒体308および出力装置309のうち少なくとも1つに出力される。
表示装置307は、液晶ディスプレイやプロジェクタ等である。記録媒体308は、半導体メモリ、ハードディスクまたはネットワーク上のサーバー等である。出力装置309は、プリンタ等である。画像処理装置301は、必要に応じて現像処理やその他の画像処理を行う機能を有していてもよい。
次に、画像処理コンピュータにより構成される視差算出部303で行う視差算出処理を、図8のフローチャートを用いて説明する。
ステップS301では、視差算出部303は、撮像装置300から一組の撮像画像を取得するとともに、サーバー304から撮像装置300の構成に応じた変換行列を取得する。サーバー304の学習部305は、後述するように、撮像装置300の構成、用いる参照パターンデータの数および画像サイズ等の条件が異なる変換行列を複数生成して記憶部306に保持させている。
視差算出部303は、記憶部306から、一組の撮像画像が生成された撮像時の撮像装置300の構成等の条件に合致する1つの変換行列(つまりはその条件での想定視差範囲内の視差に対応する複数の特定参照パターンデータ)を取得する。また、記憶部306に広い範囲の視差に対応する単一の変換行列を保持させておき、該変換行列から、想定視差範囲に対応する特定参照パターンデータのみを取得してもよい。なお、参照パターンデータの生成方法は実施例1で図5のフローチャートを用いて説明した方法と同じである。
また、所望の処理時間に応じて変換行列を切り替えることもできる。例えば、精度よりも高速な処理が重要である場合は、画像サイズが小さい学習画像からの学習により生成した少数の参照パターンデータを含む変換行列を用いるとよい。
ステップS302では、視差算出部303は、一組の撮像画像に対して平滑化処理を行う。平滑化処理を行うことによって、撮像画像に含まれる雑音成分を取り除き、視差算出の誤差を低減させる。平滑化処理としては、例えば、ガウシアンフィルタやバイラテラルフィルタを撮像画像に適用する。なお、ステップS302を次に説明するステップS303の後に行ってもよい。その場合は、撮像画像ではなく入力画像に対して平滑化処理を行う。
ステップS303では、視差算出部303は、予め設定した画像サイズに合わせて、一組の撮像画像のうち後述するステップ306において視差を算出する領域(視差算出領域)から複数組の入力画像を抽出(取得)する。この際、視差算出部303は、複数組の入力画像を互いに重複しないように抽出してもよいし、部分的に重複するように抽出してもよい。ただし、一組の入力画像から1つの視差を算出するため、重複しないように複数組の入力画像を抽出した場合は、算出された視差の分布、すなわち視差マップの解像度が入力画像と比べて低下する。言い換えれば、複数組の入力画像を部分的に重複するように抽出することで視差マップの解像度を高めることができる。
なお、撮像画像のサイズが予め設定した画像サイズと同じである場合は、撮像画像の全体から入力画像を抽出する。抽出した入力画像内で視差算出を行うため、設定する画像サイズによって求める視差が影響を受ける。例えば、設定する画像サイズより大きい視差は、入力画像内で変化を捉えきれないため、正確な視差の算出が困難である。逆に、設定する画像サイズが撮像画像の視差より大きすぎる場合は、処理するデータ量が増えることにより計算負荷が増加する。このため、撮像装置の構成等から一組の撮像画像で発生すると想定される視差に応じて画像サイズを決定することが望ましい。
また、視差を算出する入力画像のサイズを、視差を算出しない入力画像のサイズよりも小さくしてもよい。この際、参照パターンのサイズも入力画像のサイズに合わせて予め設定したり、参照パターンを拡大、縮小またはトリミングして用いたりする。これにより、視差を算出する入力画像のサイズを最小限にしながら、大きい視差による変化を捉えることができ、全ての入力画像を同一のサイズとして視差を算出する場合よりも計算負荷を軽減することができる。また、本ステップでは、一組の入力画像を列ベクトルとしたときに、複数組の入力画像を複数の列成分に持つ行列Iを生成する。入力画像を行列の形でまとめておくことで、以降の処理を画像全体で一括して行うことができ、視差算出の計算負荷を軽減することができる。
ステップS304では、視差算出部303は、記憶部306から変換行列Dを取得し、以下の式(4)に示すように行列Iと変換行列Dの一般化逆行列との積を計算することで係数行列Aを求める。
ステップS305では、視差算出部303は、係数行列Aの各要素をN乗(Nは正の偶数)して各係数の符号を正にすることで、入力画像の明暗や色の変化の影響を低減させる。Nの大きさによって各係数の重みのバランスを調整することができる。また、係数行列Aの各列のベクトルの大きさは、入力画像の明暗の大きさによって影響を受ける。それは、参照パターンは視差だけでなく明暗も表しており、入力画像の明暗が変われば、それに合わせて係数の大きさも変える必要があるからである。このため、係数行列Aの各列を正規化して列ベクトルの大きさを一定の値に揃えた行列Bを求めることによって、入力画像の明暗の影響を低減させ、視差の推定精度を向上させることができる。
ステップS306では、視差算出部303は、以下の式(5)に示すように参照視差群を表す行ベクトルdに行列B(つまりは係数群)を乗じることにより、各組の入力画像の視差を表す行ベクトルPを求める。
ここで求めた視差Pを入力画像の位置に応じて並び変えることで、撮像画像のうち視差算出領域全体の視差マップを求めることができる。
ステップS307では、視差算出部303は、ステップS305で求めた行列Bに基づいてステップS306で求めた視差の信頼度を算出する。一般に、画素値の変動が小さい領域(テクスチャレス領域)では視点間で変化が現れにくいため視差の算出が難しい。例えば、画素値の変動が十分大きい領域では、図9(a)に示すように参照視差を横軸とし、対応する係数の大きさを縦軸としてプロットしたときに、特定の視差に大きい係数が偏る。それに対して、テクスチャレス領域では、図9(b)に示すように、特定の視差に係数が偏らず、係数の分布がばらつく。そこで、係数が予め設定した値よりも大きく、かつ対応する視差の分散も大きい領域は、算出した視差の信頼度が低いと判定する。
ステップS308では、視差算出部303は、ステップS307で求めた信頼度に基づいて、テクスチャレス領域等の視差の算出精度が低い領域の視差を補正する。例えば、視差の信頼度が低い領域については視差の算出を行わず、その領域の周辺で視差の信頼度が高い領域の視差を用いて補間により求める。
次に、学習部305における参照パターンデータ、変換行列および参照視差群の生成方法について、実施例1でも用いた図5のフローチャートを用いて説明する。学習部305は、ステップS201において、撮像装置や被写体が異なる様々な条件において実際の撮像またはシミュレーションにより生成した撮像画像(視差画像)を用いて学習画像を生成する。そして、学習部305は、ステップS202において、上記条件ごとに学習画像を用いた機械学習によって変換行列Dを求め、該変換行列Dから参照パターンデータを生成する。
さらに学習部305は、ステップS203において、視差の分布(視差マップ)が既知である視差画像を用いて参照視差群を算出する。具体的には、学習部305は、変換行列Dを用いて、視差算出部303に代わって図8のステップS301からステップS305までの処理を行うことで行列Bを求める。ここではステップS303において視差マップが既知である撮像画像としての視差画像を入力画像として用いる。
次に、学習部305は、式(6)に示すように、求めたい参照視差群を表す参照視差ベクトルdと行列Bとの積が視差マップを行ベクトルで表したときの正解視差ベクトルRを正確に表すように最適化を行う。
はL2ノルムを表す。以上の処理では、用いる画像内で比較して視差を算出するため、画像サイズよりも大きい視差を求めることは難しい。このため、参照視差ベクトルdの各要素に対して画像サイズを上限値とする制限を加えて最適化を行った方が、参照視差ベクトルdの算出精度の面で有利である。また、参照パターンデータは必ずしも学習によって生成する必要はなく、4次元離散コサイン変換等の画像圧縮で使われる変換基底画像から生成してもよい。
こうしてステップS201で視差画像を生成する撮像装置の構成を変化させながらステップS202,S203の処理を繰り返すことで、様々な視差の情報を含む複数の変換行列(参照パターンデータ)とこれらに対応する参照視差群とを生成することができる。
本実施例によれば、一組の入力画像の視差を算出する際の計算負荷を軽減させることが可能な画像処理システムを実現することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。
100,300 撮像装置
102 画像処置部
102b,303 視差算出部
301 画像処理装置
102 画像処置部
102b,303 視差算出部
301 画像処理装置
Claims (12)
- 互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる視差を算出する画像処理装置であって、
互いに異なる視差に対応する複数の参照パターンデータのうち、前記視差画像データに含まれる前記視差の想定範囲に応じた複数の特定参照パターンデータを取得する取得手段と、
前記複数の特定参照パターンデータを用いて前記視差画像データを表すために該複数の特定参照パターンデータのそれぞれに重みを付ける複数の係数を算出し、前記複数の特定参照パターンデータのそれぞれに対応する視差と前記複数の係数とを用いて前記視差画像データに含まれる前記視差を算出する算出手段とを有することを特徴とする画像処理装置。 - 前記取得手段は、前記想定範囲を、前記撮像を行った撮像装置の構成に応じて設定することを特徴とする請求項1に記載の画像処理装置。
- 前記算出手段は、前記複数の係数を、前記視差画像データに基づいて設定された行列と前記複数の特定参照パターンデータを配列した行列の一般化逆行列との積により算出することを特徴とする請求項1または2に記載の画像処理装置。
- 前記撮像画像データから複数の視差画像データを取得する場合において、
前記算出手段は、前記視差を算出する視差画像データのサイズを、前記視差を算出しない視差画像データのサイズよりも小さくすることを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。 - 前記撮像を行った撮像装置の構成に応じて設定された視差を有する学習画像データを用いた機械学習によって前記複数の参照パターンデータを生成する生成手段をさらに有することを特徴とする請求項1から4のいずれか一項に記載の画像処理装置。
- 前記撮像を行った撮像装置の構成に応じて前記視差画像データのサイズを設定する設定手段をさらに有することを特徴とする請求項1から5のいずれか一項に記載の画像処理装置。
- 前記撮像装置の構成は、前記複数の視点の数、撮像素子の画素ピッチ、撮像光学系の焦点距離、前記複数の視点の配置、F値およびフォーカス位置のうち少なくとも1つを含むことを特徴とする請求項2、5または6に記載の画像処理装置。
- 前記算出手段は、前記複数の係数を算出する前に、前記撮像画像データまたは前記視差画像データに対して平滑化処理を行うことを特徴とする請求項1から7のいずれか一項に記載の画像処理装置。
- 前記複数の参照パターンデータを記憶する記憶手段を有することを特徴とする請求項1から8のいずれか一項に記載の画像処理装置。
- 互いに異なる複数の視点からの撮像を行う撮像部と、
請求項9に記載の画像処理装置とを有することを特徴とする撮像装置。 - 互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる視差を算出する画像処理方法であって、
互いに異なる視差に対応する複数の参照パターンデータのうち、前記視差画像データに含まれる前記視差の想定範囲に応じた複数の特定参照パターンデータを取得するステップと、
前記複数の特定参照パターンデータを用いて前記視差画像データを表すために該複数の特定参照パターンデータのそれぞれに重みを付ける複数の係数を算出し、前記複数の特定参照パターンデータのそれぞれに対応する視差と前記複数の係数とを用いて前記視差画像データに含まれる前記視差を算出するステップとを有することを特徴とする画像処理方法。 - コンピュータに、互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる視差を算出する画像処理を実行させるコンピュータプログラムであって、
前記コンピュータに、
互いに異なる視差に対応する複数の参照パターンデータのうち、前記視差画像データに含まれる前記視差の想定範囲に応じた複数の特定参照パターンデータを取得させ、
前記複数の特定参照パターンデータを用いて前記視差画像データを表すために該複数の特定参照パターンデータのそれぞれに重みを付ける複数の係数を算出させ、
前記複数の特定参照パターンデータのそれぞれに対応する視差と前記複数の係数とを用いて前記視差画像データに含まれる前記視差を算出させることを特徴とする画像処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016221735A JP2018081378A (ja) | 2016-11-14 | 2016-11-14 | 画像処理装置、撮像装置、画像処理方法および画像処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016221735A JP2018081378A (ja) | 2016-11-14 | 2016-11-14 | 画像処理装置、撮像装置、画像処理方法および画像処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018081378A true JP2018081378A (ja) | 2018-05-24 |
Family
ID=62197704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016221735A Pending JP2018081378A (ja) | 2016-11-14 | 2016-11-14 | 画像処理装置、撮像装置、画像処理方法および画像処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018081378A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020036310A (ja) * | 2018-08-24 | 2020-03-05 | キヤノン株式会社 | 画像処理方法、画像処理装置、撮像装置、レンズ装置、プログラム、記憶媒体、および、画像処理システム |
CN113506213A (zh) * | 2021-05-24 | 2021-10-15 | 北京航空航天大学 | 适应大视差范围的光场图像视角超分辨方法及装置 |
-
2016
- 2016-11-14 JP JP2016221735A patent/JP2018081378A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020036310A (ja) * | 2018-08-24 | 2020-03-05 | キヤノン株式会社 | 画像処理方法、画像処理装置、撮像装置、レンズ装置、プログラム、記憶媒体、および、画像処理システム |
JP7234057B2 (ja) | 2018-08-24 | 2023-03-07 | キヤノン株式会社 | 画像処理方法、画像処理装置、撮像装置、レンズ装置、プログラム、記憶媒体、および、画像処理システム |
CN113506213A (zh) * | 2021-05-24 | 2021-10-15 | 北京航空航天大学 | 适应大视差范围的光场图像视角超分辨方法及装置 |
CN113506213B (zh) * | 2021-05-24 | 2024-01-23 | 北京航空航天大学 | 适应大视差范围的光场图像视角超分辨方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3516625B1 (en) | A device and method for obtaining distance information from views | |
US20230362344A1 (en) | System and Methods for Calibration of an Array Camera | |
US11663691B2 (en) | Method and apparatus for restoring image | |
US8305485B2 (en) | Digital camera with coded aperture rangefinder | |
JP6079017B2 (ja) | 距離測定装置および距離計測方法 | |
JP7378219B2 (ja) | 撮像装置、画像処理装置、制御方法、及びプログラム | |
US20150104097A1 (en) | Image processing apparatus and image processing method | |
JP2020036310A (ja) | 画像処理方法、画像処理装置、撮像装置、レンズ装置、プログラム、記憶媒体、および、画像処理システム | |
JP6285686B2 (ja) | 視差画像生成装置 | |
US9721348B2 (en) | Apparatus and method for raw-cost calculation using adaptive window mask | |
US20150302573A1 (en) | Method for designing a passive single-channel imager capable of estimating depth of field | |
JP6598473B2 (ja) | 撮像装置および画像処理装置 | |
JP6395429B2 (ja) | 画像処理装置、その制御方法及び記憶媒体 | |
JP2018081378A (ja) | 画像処理装置、撮像装置、画像処理方法および画像処理プログラム | |
JP7312026B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
CN107534730B (zh) | 图像处理装置及图像处理方法 | |
JP2018133064A (ja) | 画像処理装置、撮像装置、画像処理方法および画像処理プログラム | |
US9014464B2 (en) | Measurement device, measurement method, and computer program product | |
EP3194886A1 (en) | Positional shift amount calculation apparatus and imaging apparatus | |
JP2020030569A (ja) | 画像処理方法、画像処理装置、撮像装置、レンズ装置、プログラム、および、記憶媒体 | |
JP7009219B2 (ja) | 画像処理方法、画像処理装置、撮像装置、画像処理プログラム、および、記憶媒体 | |
CN113808070A (zh) | 一种双目数字散斑图像相关的视差测量方法 | |
KR20220013183A (ko) | 영상 복원 장치 및 방법 | |
WO2016042721A1 (en) | Positional shift amount calculation apparatus and imaging apparatus | |
KR20180103657A (ko) | 스테레오 카메라 모듈의 캘리브레이션 방법 및 장치, 및 컴퓨터 판독 가능한 저장매체 |