JP2018133064A - 画像処理装置、撮像装置、画像処理方法および画像処理プログラム - Google Patents

画像処理装置、撮像装置、画像処理方法および画像処理プログラム Download PDF

Info

Publication number
JP2018133064A
JP2018133064A JP2017028513A JP2017028513A JP2018133064A JP 2018133064 A JP2018133064 A JP 2018133064A JP 2017028513 A JP2017028513 A JP 2017028513A JP 2017028513 A JP2017028513 A JP 2017028513A JP 2018133064 A JP2018133064 A JP 2018133064A
Authority
JP
Japan
Prior art keywords
parallax
image data
image
reference pattern
reduction
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.)
Abandoned
Application number
JP2017028513A
Other languages
English (en)
Inventor
明広 福田
Akihiro Fukuda
明広 福田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2017028513A priority Critical patent/JP2018133064A/ja
Publication of JP2018133064A publication Critical patent/JP2018133064A/ja
Abandoned legal-status Critical Current

Links

Landscapes

  • Transforming Light Signals Into Electric Signals (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)

Abstract

【課題】視差の算出に必要な計算負荷を軽減させつつ、視差の算出精度を向上させる。【解決手段】画像処理装置102は、互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる第1の視差を算出する。該装置は、撮像画像データに対して縮小処理を行うことにより縮小画像データを生成し、縮小画像データに含まれる第2の視差を算出する。該装置は、第2の視差と縮小処理における撮像画像データに対する縮小画素データの縮小率とを用いて撮像画像データから視差画像データを取得する。そして、互いに異なる視差に対応する複数の参照パターンデータを用いて視差画像データを表すために該複数の参照パターンデータのそれぞれに重みを付ける複数の第1の係数を算出し、複数の参照パターンデータのそれぞれに対応する視差と複数の第1の係数とを用いて視差画像データに含まれる第1の視差を算出する。【選択図】図2

Description

本発明は、被写体空間を異なる視点から撮像することで得られた画像データから視差の情報を取得する画像処理技術に関する。
被写体空間を複数の視点から撮像することで得られた複数の視点画像から視差の情報を取得する方法が種々提案されている。例えば、複数の視点画像間においてブロックマッチング等の画像探索処理によって互いに対応する対応点を検出し、それぞれの視点画像における対応点の位置(座標)の相違量から視差量を求める方法がある。求められた視差量は、被写体までの距離の算出等に利用される。
また、特許文献1には、互いに異なる2視点からの撮像により得られた2つの視点画像間で同サイズの領域同士の相対的な位置を変えながら該領域間でブロックマッチングを行い、最も類似性が高い領域同士を対応領域として検出する方法が開示されている。そして、対応領域内での位置差をそれらの対応領域間の視差として得る。
特許2966248号
しかしながら、ブロックマッチング等の画像探索処理は計算負荷が大きい。この点、特許文献1にて開示された方法では、撮像視差画像を低解像度の画像に縮小して低解像画像に対して視差を求めることで、探索する領域のサイズを制限し、計算負荷を低減させているが、画像探索処理が必要であるために負荷軽減には限界がある。
本発明は、画像探索処理を行うことなく視差の算出に必要な計算負荷を軽減することができるようにした画像処理装置等を提供する。
本発明の一側面としての画像処理装置は、互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる第1の視差を算出する。該画像処理装置は、撮像画像データに対して縮小処理を行うことにより縮小画像データを生成する縮小手段と、縮小画像データに含まれる第2の視差を算出し、該第2の視差と縮小処理における撮像画像データに対する縮小画像データの縮小率とを用いて、撮像画像データから視差画像データを取得する取得手段と、互いに異なる視差に対応する複数の参照パターンデータを用いて視差画像データを表すために該複数の参照パターンデータのそれぞれに重みを付ける複数の第1の係数を算出し、複数の参照パターンデータのそれぞれに対応する視差と数の第1の係数とを用いて視差画像データに含まれる第1の視差を算出する算出手段とを有することを特徴とする。
なお、上記画像処理装置を含む撮像装置も、本発明の他の一側面を構成する。
また、本発明の他の一側面としての画像処理方法は、互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる視差を算出する。該画像処理方法は、撮像画像データに対して縮小処理を行うことにより縮小画像データを生成するステップと、縮小画像データに含まれる第2の視差を算出し、該第2の視差と縮小処理における撮像画像データに対する縮小画像データの縮小率とを用いて、撮像画像データから視差画像データを取得するステップと、互いに異なる視差に対応する複数の参照パターンデータを用いて視差画像データを表すために該複数の参照パターンデータのそれぞれに重みを付ける複数の第1の係数を算出し、複数の参照パターンデータのそれぞれに対応する視差と複数の第1の係数とを用いて視差画像データに含まれる第1の視差を算出するステップとを有することを特徴とする。
なお、コンピュータを上記画像処理装置として動作させるコンピュータプログラムとしての画像処理プログラムも、本発明の他の一側面を構成する。
本発明によれば、計算負荷を軽減しつつ視差画像データに含まれる視差を高精度に算出することができる。
本発明の実施例1,2における視差算出の概略を示す図。 実施例1における撮像装置の構成を示すブロック図。 実施例1における撮像部の構成を示す図。 実施例1における視差算出処理を示すフローチャート。 実施例1,2における参照パターンの機械学習処理を示すフローチャート。 実施例1,2における参照視差群の算出処理を示すフローチャート。 実施例2における画像処理システムの構成を示すブロック図。 実施例2における視差算出処理を示すフローチャート。
以下、本発明の実施例について図面を参照しながら説明する。まず、実施例の具体的な説明の前に、典型的な実施例の概要について図1を用いて説明する。
典型的な実施例では、被写体空間を複数の視点から撮像することで生成された撮像画像データから一組の入力画像i(i,i,…)を取得する。ここで、一組の入力画像とは、撮像画像データにおいて同一被写体に対する視差の算出を行う一組の部分領域であり、視差の情報を含む視差画像データである。撮像画像データは、被写体空間を複数の視点から撮像することで取得可能な1まとまり又は複数組の画像データであるが、以下の説明では一組の画像データとしての一組の撮像画像という。一組の入力画像は、一組の撮像画像のうち互いに同一位置の部分領域の画像データとして取得される。
ただし、上記のように取得された一組の入力画像データから同一被写体の視差を算出する場合に、入力画像のサイズに対して視差が大きくてそれぞれの入力画像に同一被写体が含まれないと、視差を算出することができない。これに対して、それぞれの入力画像に同一被写体が含まれるように入力画像のサイズを大きくすることもできるが、視差を算出するために処理するデータ量が増えて計算負荷が増大する。
そこで、実施例では、最終的に一組の入力画像から算出したい視差(第1の視差)の想定範囲(以下、想定視差範囲という)に基づいて、一組の撮像画像を縮小して一組の縮小画像データ(以下、単に一組の縮小画像という)を生成する。言い換えれば、一組の撮像画像の解像度を低下させて一組の低解像度画像を生成する。この際の撮像画像に対する縮小画像の縮小率は、上記想定視差範囲に基づいて、一組の縮小画像のうち互いに同一位置の部分領域である仮の一組の入力画像に同一被写体が含まれるように設定する。
そして、仮の一組の入力画像における視差(第2の視差)を概算し、この概算視差を用いて一組の撮像画像のうち本来の一組の入力画像を取得する位置を設定する。これにより、一組の入力画像内に同一被写体が含まれるようになり、入力画像のサイズより大きい視差(第1の視差)を高精度に求めることができる。なお、想定視差範囲は、例えば撮像を行って撮像画像を生成した撮像装置の構成に基づいて設定される。
また、実施例では、事前に互いに異なる複数の既知の視差に対応する複数の参照パターンデータを用意する。参照パターンデータは、ある視差を有する画像間に表れる相違を表す一組の基本的なパターンである一組の参照パターンを示すデータである。以下の説明において、参照パターンデータに対応する視差を参照視差ともいい、複数の参照パターンデータのそれぞれに対応する複数の視差をまとめて参照視差群ともいう。
一組の入力画像は、複数の参照パターンデータを用いて表すことができる。実施例では、一組の入力画像を複数の参照パターンデータの組合せにより表すために、それぞれの参照パターンデータに重みを付けるための複数の係数α,α,…(以下、まとめて係数群αともいう)を算出する。一組の入力画像は、複数の参照パターンデータに係数群α(α,α,…)を乗じて加算する(重み付け平均する)ことで表すことができる。実施例では、このことを利用して、算出した係数群αと複数の参照パターンデータに対応する参照視差群d(d,d,…)とを用いて一組の入力画像の視差を算出する。この際、一組の入力画像を入力とする関数を用いるが、この関数の例については具体的な実施例にて説明する。
このような実施例においては、後述する行列演算によって係数群を算出すればよい。このため、ブロックマッチング等の画像探索処理が必要なくなり、視差算出における計算負荷が低減される。
さらに、複数の参照パターンデータに対応する参照視差群は、一組の入力画像における視差を算出する前に既知の情報として取得しておく。これにより、参照パターンデータに対応する参照視差群と係数群とを用いた単純な演算によって一組の入力画像の視差を算出することができる。すなわち、視差算出のための計算負荷を低減することができる。
本発明の具体的な実施例1である撮像装置100の構成について図2を用いて説明する。撮像部101は、被写体空間を互いに異なる複数の視点から撮像することにより撮像画像データとしての一組(例えば一対)の撮像画像を生成する。撮像部101の詳しい構成については後述する。
画像処理装置としての画像処理部102は、一組の撮像画像から取得する一組の入力画像の視差を算出する。画像処理部102は、学習部102aと視差画像取得部102bと視差算出部102cとを有する。学習部102aは、複数の参照パターンデータを機械学習によって生成(算出)し、生成した複数の参照パターンデータをこれらのそれぞれに対応する参照視差と関連付けて記憶部(記憶手段)103に記憶させる。学習部102aは生成手段として機能する。
視差画像取得部102bは、一組の撮像画像に対して縮小処理を行って一組の縮小画像を生成し、該一組の縮小画像間の視差(第2の視差)を求め、該視差に基づいて、一組の撮像画像から一組の視差画像を一組の入力画像として取得する。視差画像の取得処理についての詳細は後述する。視差画像取得部102bは、縮小手段および取得手段として機能する。
視差算出部102cは、記憶部103から読み出された参照パターンデータを用いて一組の入力画像の視差を算出する。視差算出部102cは、算出手段として機能する。画像処理部102が行う機械学習や視差算出処理についての詳細は後述する。
なお、視差算出部102cは、記憶媒体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のうち視差算出部102cがコンピュータプログラムである画像処理プログラムに従って本処理を実行する。
ステップS101では、視差算出部102cは、事前に用意されて記憶部103に記憶された複数の参照パターンデータとこれらに対応する参照視差群とを取得する。参照パターンデータの生成方法(学習方法)および参照視差群の算出方法については後に詳しく説明する。
ステップS102では、視差算出部102cは、視差画像取得部102bが取得した一組の視差画像を入力画像として取得する。入力画像の取得処理については後に図6を用いて詳しく説明する。
視差画像がRGB(Red, Green, Blue)等の複数の色成分で表されている場合には、これら複数の色成分を1つの色成分に変換することにより入力画像を取得(生成)する。例えば、全ての色成分を平均化することでグレースケールの色成分の入力画像を生成したり任意の変換式を用いて1つの色成分に変換することで入力画像を生成したりする。また、複数の色成分のうち代表的な1つの色成分を入力画像として取得してもよい。また、複数の色成分を全て入力画像として取得してもよい。この場合、色成分ごとに視差を算出してその平均値を入力画像の視差としてもよい。
さらに、1つの色成分は、それをそのまま入力画像として取得してもよいし、微分フィルタを用いて輝度変化を表す入力画像に変換してもよい。複数の色成分を、それらの平均値を差し引いた上でコントラストを揃えて入力画像として取得してもよい。これらの入力画像取得処理を行うことにより、撮像画像の明暗や撮像部101でのヴィネッティングの影響を低減し、より正確に視差の算出を行うことが可能な入力画像を取得することができる。なお、微分フィルタを用いる場合は、後述する学習画像に対しても同様の処理を行うことが望ましい。
ステップS103では、視差算出部102cは、一組の入力画像と複数の参照パターンデータとを用いて係数群を算出する。具体的には、視差算出部102cは、複数の参照パターンデータに乗じることで一組の入力画像を表すことができる係数群を算出可能な任意の関数に該入力画像を代入することで係数群を算出する。関数の計算量によって入力画像の視差算出における計算負荷が大きく左右されるため、できるだけ計算量を少なくすることができる関数を用いることが望ましい。なお、入力画像は、計算負荷を軽減する観点から、複数の参照パターンデータの組合せで表されることが望ましい。入力画像を表す参照パターンデータの数が1つであると、入力画像を正確に表すためにはその参照パターンデータに非常に多くの参照パターンのデータを含める必要があり、計算負荷が増大するためである。
本実施例では、上記関数として、参照パターンデータに基づいた行列演算を用いる。一組の入力画像を列ベクトルiとし、参照パターンデータを列ベクトルとしたときに複数の参照パターンデータのそれぞれを列成分として持つ(つまりは配列した)行列を変換行列Dとし、係数群を列ベクトルαで表す。この場合、以下の式(1)のように変換行列Dの一般化逆行列D−1に列ベクトルiを乗じることで列ベクトルαが求められる。
変換行列Dが正則行列である場合は、一般化逆行列D−1は行列Dの逆行列を指す。なお、図1に示すように、各参照パターンは入力画像間の視差を表すだけでなく明暗や構造も表すため、参照パターンには視点間で同一のパターン等、視差を表さないものも含まれる。視差算出において視差を表さない参照パターンは必要ないため、変換行列Dの一般化逆行列D−1から視差を表さない参照パターンを除いて以後の処理に用いてもよいし、そのまま用いてもよい。
ステップS104では、視差算出部102cは、ステップS103で求めた係数群と複数の参照パターンデータに対応する参照視差群とを用いて一組の入力画像の視差(第1の視差)を算出(推定)する。参照視差群を行ベクトルdとし、任意の1つの視点を基準とした一組の入力画像間の視差をスカラー量pとすると、pは以下の式(2)に示すようにdの各要素(d)とαの各要素(α)と符号調整項jとの積の総和で求められる。
参照パターンの濃淡反転等を表現するために、係数群αは正と負の両方の値を取り得る。しかし、係数の符号の違いは視差が発生する方向には関係なく、一組の入力画像の視差の算出においては該係数の大きさのみが用いられる。したがって、係数が負の場合は、係数あるいは対応する参照視差のどちらか一方の符号を反転させることによって、係数と参照視差との積の符号を、常に参照視差の符号と一致させる必要がある。本実施例では、符号を反転させる方法として符号調整項jを用いて係数と同じ符号の値を乗じる手法を用いているが、αの絶対値をとる手法を用いてもよい。これにより、入力画像の色や明暗の違いによる影響を低減し、視差の算出精度を向上させることができる。
次に、参照パターンデータの生成方法(生成処理)について図5のフローチャートを用いて説明する。本実施例では、参照パターンデータを機械学習によって生成(算出)する。機械学習は、視差算出の前であれば、撮像装置100の学習部102aで行ってもよいし、撮像装置100とは別の演算装置で行ってもよい。本実施例では、学習部102aで機械学習を行う場合について説明する。
ステップS201では、学習部102aは、複数の視点から被写体を撮像することにより生成された一組の撮像画像の少なくとも一部から、該複数の視点のうち一組の視点から撮像された同一被写***置の画像の組を複数の被写***置について抽出する。そして、このように抽出した視点ごとの複数の被写***置の画像の集合を1つの学習画像とし、一組の視点に対応する学習画像の組を学習画像データとしての一組の学習画像とする。なお、学習画像の元となる上記撮像画像は、被写体の撮像をコンピュータでシミュレーションして生成された画像であってもよい。
1つの学習画像を構成する前記撮像画像から抽出された画像のサイズは、入力画像と同じサイズの画像であってもよいし、入力画像とは異なるサイズの学習画像を入力画像のサイズに合わせて拡大または縮小して用いてもよい。一般に、撮像装置の構成に応じて撮像画像にて発生する視差が異なるため、参照パターンデータは撮像装置の構成に基づいて設定された視差を有する学習画像から生成することが望ましい。ここにいう撮像装置100の構成とは、視点数、撮像素子の画素ピッチ、撮像光学系の焦点距離、複数の視点(カメラユニット)の基線長、基線方向および輻輳角、プレノプティックカメラのF値やフォーカス位置等である。すなわち、撮像装置100の構成は、撮像装置により生成された一組の撮像画像間に発生する視差に影響する様々な要素を含む。言い換えれば、撮像装置100の構成とは、一組の撮像画像間に発生する視差に関する撮像条件である。これにより、学習画像から生成される参照パターンデータと一組の入力画像に含まれる視差とを同等にすることができ、発生しない視差ずれ量を参照パターンデータから排除することができるので、入力画像の視差算出における精度や計算速度が向上する。学習部102aは、視点の組が互いに異なる複数組の学習画像を生成する。
ステップS202では、学習部102aは、ステップS201で生成した複数組の学習画像(複数の学習画像データ)を用いた機械学習により複数の参照パターンデータを生成する。参照パターンデータを求めるために、以下の式(3)に示すように、学習画像を変換行列Dと係数行列Aとの積で表したときの誤差を最小にする変換行列Dを最適化によって求める。
係数行列Aは、一組の学習画像に対応する係数群を列ベクトルとしたときに複数組の学習画像のそれぞれの係数群を複数の列成分として持つ行列を表す。また、Lは一組の学習画像を列ベクトルとしたときに複数組の学習画像のそれぞれを複数の列成分として持つ行列を表す。
はフロベニウスノルムを、
はL0ノルムを、kは任意の定数を表す。変換行列Dや行列Aの初期値は任意の値でよく、例えば乱数から決定するとよい。行列AのL0ノルムでの最適化に制約を課すことで、少ない参照パターンデータの組合せで行列Lを表すことができる。これについて、例えば以下の参考文献1に詳しい。
[参考文献1]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は参照パターンデータに対応する視差を求める。視差を求める方法としては、任意の方法を用いることができる。例えば、ブロックマッチングを用いて視差を求める方法でもよいし、視差の分布(視差マップ)が既知である視差画像を用いて参照視差群を算出する方法でもよい。
ここでは、視差マップが既知である視差画像を用いて参照視差群を算出する方法について説明する。学習部102aは、変換行列Dを用いて、視差算出部102cに代わって図4のステップS101からステップS103までの処理を行うことで係数群を求める。ここではステップS102において視差マップが既知である複数の視差画像を入力画像として用いる。これによって、複数の係数群が得られ、1つの係数群を列ベクトルとしたときに、各列に係数群のベクトルを持つ行列を行列Bとして生成する。
次に、学習部102aは、式(4)に示すように、求めたい参照視差群を表す参照視差ベクトルdと行列Bとの積が視差マップを行ベクトルで表したときの正解視差ベクトルRを正確に表すように最適化を行う。
はL2ノルムを表す。以上の処理では、用いる画像内で比較して視差を算出するため、画像サイズよりも大きい視差を求めることは難しい。このため、参照視差ベクトルdの各要素に対して画像サイズを上限値とする制限を加えて最適化を行った方が、参照視差ベクトルdの算出精度の面で有利である。
次に、上述したステップS102において実行される入力画像の取得処理について図6のフローチャートを用いて説明する。本実施例では、撮像部101が生成した一組の撮像画像から視差画像を取得する。画像処理コンピュータにより構成される画像処理部102のうち視差画像取得部102bが上記画像処理プログラムに従って本処理を実行する。
ステップS301では、視差画像取得部102bは、一組の撮像画像のそれぞれに対して同じ縮小率Mで縮小処理を行うことにより一組の縮小画像を生成する。縮小率Mは、想定視差範囲が入力画像のサイズ内に収まるように設定されることが望ましい。視差画像取得部102bは、想定視差範囲を撮像装置100の構成や想定される被写体までの距離に基づいて設定する。
ステップS302では、視差画像取得部102bは、一組の縮小画像間の視差(第2の視差)を算出する。本ステップにおいて視差を求める方法としては、任意の方法を用いることができる。例えば、前述したブロックマッチング法を用いてもよいし、グラフカット法、セミグローバルマッチング法、動的計画法、などの従来の各種手法を用いてもよい。
ステップS303では、視差画像取得部102bは、一組の撮像画像のそれぞれから入力画像を取得する、つまりは視差を算出する部分領域である視差算出領域を設定する。具体的には、図1に示すように、一組の撮像画像において互いに同一位置にある部分領域を基準領域Aとする。一組の撮像画像のうち一方の撮像画像の基準領域Aには被写体OBJが含まれ、他方の撮像画像における基準領域Aには上記一方の撮像画像に含まれる同一被写体としての被写体OBJが含まれていない。この場合に、視差画像取得部102bは、他方の撮像画像において被写体OBJを含む部分領域Bと基準領域Aとの位置差をシフト量として求める。視差画像取得部102bは、このときのシフト量を、縮小処理における撮像画像に対する縮小画像の縮小率Mと一組の縮小画像間で算出された視差との積により算出する。
ステップS304では、視差画像取得部102bは、一方の撮像画像における基準領域Aを視差算出領域に設定し、他方の撮像画像において基準領域AからステップS303で算出したシフト量だけ位置が異なる部分領域Bを視差算出領域に設定する。そして、これら一方および他方の撮像画像のそれぞれの視差算出領域から一組の入力画像を取得する。なお、他方の撮像画像の視差算出領域を設定する際に、該撮像画像に対して基準領域Aを部分領域Bの位置にシフトさせる処理を行ってもよいし、部分領域Bが基準領域Aの位置にシフトするように撮像画像を基準領域Aに対してシフトさせてもよい。
本実施例では、計算負荷が大きくなり易い複数の参照パターンデータに対応する視差の算出を入力画像の視差算出の前に行い、該入力画像に対しては複数の参照パターンに対応する参照視差群と係数群とを用いた単純な演算により視差を算出する。また、入力画像の取得前に撮像画像を縮小して得られた縮小画像を用いて視差を概算し、その概算視差を用いて撮像画像から入力画像を取得する。これにより、入力画像の視差算出における計算負荷を軽減しながら、大きな視差を高精度に算出することができる。
算出された入力画像の視差は、撮像装置の構成(基線長等)に基づいて距離に変換することができる。そして、求めた距離の情報は、深度が深い撮像画像に対して距離に応じたぼけを付加する処理や撮像時のオートフォーカス等に利用することができる。また、撮像装置100を車載カメラとして構成し、距離情報や撮像画像から周囲の障害物を認識して自走する自動運転や衝突を回避するための運転補助(ブレーキ制御等)に利用することもできる。
また、本実施例では撮像装置100に学習部102aを設ける場合について説明したが、予め学習した結果を記憶部103に記憶させておくことで、撮像装置100に学習部102aを設けなくてもよい。
次に、本発明の実施例2である画像処理システムについて図7を用いて説明する。本実施例では、入力画像の視差算出を行う画像処理装置301と、撮像画像データを生成する撮像装置300と、機械学習を行うサーバー305とが個別に存在している。画像処理装置301には、多眼カメラやプレノプティックカメラ等の様々な撮像装置300を接続することができ、接続された撮像装置300の構成に応じて使用する変換行列を切り替える。本実施例にいう撮像装置300の構成も、実施例1と同様に、視点数、撮像素子の画素ピッチ、撮像光学系の焦点距離、複数の視点(カメラユニット)の基線長、基線方向および輻輳角、プレノプティックカメラのF値やフォーカス位置等である。言い換えれば、一組の撮像画像間に発生する視差に関する撮像条件である。
また、本実施例では、一組の撮像画像に対して階層的に複数回、縮小処理を行って縮小率Mが互いに異なる複数組の縮小画像を生成する。これら複数組の縮小画像のうち最も縮小率Mが大きい、つまりは最も解像度が低い一組の縮小画像から解像度が高い一組の縮小画像まで順次視差を求める。これにより、最終的に最も解像度が高い一組の撮像画像から取得される一組の入力画像の視差を求める。本実施例によれば、撮像画像の視差が大きい場合でも、縮小処理による解像度の劣化の影響を最小限に抑えつつ、高精度な視差算出を可能とする。
撮像装置300の構成は、例えば実施例1の撮像装置100から画像処理部102を除いたものと同じである。撮像装置300により生成された撮像画像データは画像処理装置301に送られ、画像処理装置301内の生成記憶部302に記憶される。画像処理装置301は、有線または無線通信により直接またはネットワークを介してサーバー305と接続されている。
サーバー305は、複数の参照パターンデータを生成し、さらに変換行列と参照視差群を機械学習により生成(算出)する学習部307と、これら変換行列および参照視差群を記憶する記憶部306とを有する。なお、変換行列の生成方法は実施例1で図5のフローチャートを用いて説明した方法と同じである。また、変換行列は必ずしも学習によって生成する必要はなく、4次元離散コサイン変換等の画像圧縮で使われる変換基底画像から生成してもよい。
画像処理装置301は、記憶部302と階層画像生成部303と視差算出部304とを有する。縮小手段および取得手段としての階層画像生成部303は、n種類(nは2以上の整数)の解像度を有するn組の階層画像を取得または生成する。具体的には、階層画像生成部303は、撮像画像をn層または最下位層の階層画像として取得する。また、階層画像生成部303は、撮像画像に対して縮小処理を行うことにより第n層以外の第(n−1)層の階層画像を生成する。第(n−1)層の階層画像のうち最も縮小率が大きく解像度が低い階層画像の組を第1層または最上位層の階層画像とし、縮小率が小さくなるほど、すなわち解像度が高くなるほど下位層の階層画像とする。
算出手段としての視差算出部304は、サーバー305の記憶部306から取得した変換行列と参照視差群とを用いて、第1層から第n層の階層画像のそれぞれの視差を順次算出する。算出された第m層(mは正の整数)の視差は第(m+1)層のシフト量の算出に用いられる。最終的に求められた第n層の撮像画像の視差は、撮像画像に対するぼけ付加処理等の画像処理に利用され、該画像処理後の画像は、表示装置308、記録媒体309および出力装置310のうち少なくとも1つに出力される。
表示装置308は、液晶ディスプレイやプロジェクタ等である。記録媒体309は、半導体メモリ、ハードディスクまたはネットワーク上のサーバー等である。出力装置310は、プリンタ等である。画像処理装置301は、必要に応じて現像処理やその他の画像処理を行う機能を有していてもよい。
なお、階層画像生成部303では、撮像画像に含まれる視差を正確に算出するために、撮像画像に対する最上位層の階層画像の縮小率Mは、撮像装置の構成等に応じて設定された想定視差範囲に基づいて設定されることが望ましい。
具体的には、想定視差範囲における視差の最大想定値である最大想定視差と最小想定値である最小想定視差をそれぞれde,maxとde,minとし、複数の参照パターンデータのそれぞれに対応する視差の最大値と最小値をそれぞれdmaxとdminとする。このとき、撮像画像に対する第1層(最上位層)の階層画像の縮小率Mが式(5)を満足することが望ましい。これにより、最上位層の階層画像において、参照パターンデータに含まれる視差の範囲内に想定視差範囲が収まるようになり、想定視差範囲の視差を正確に算出することができる。
次に、画像処理コンピュータにより構成される画像処理装置301(階層画像生成部303および視差算出部304で行う視差算出処理を、図8のフローチャートを用いて説明する。パーソナルコンピュータにより構成される画像処理装置301は、コンピュータプログラムである画像処理プログラムに従って本処理を実行する。
ステップS401では、視差算出部304は、階層画像生成部303で生成された階層画像データのうち、未だ視差を算出していない階層画像のうち最も上位層である第m層(mは正の整数)の階層画像を取得(生成)する。また、視差算出部304は、サーバー305の記憶部306から変換行列を取得する。
ステップS402では、視差算出部304は、第m層の一組の階層画像のうち実施例1で説明した基準領域に対して後述するシフト量だけシフトした部分領域を視差算出領域に設定する。そして、これら一組の階層画像の視差算出領域から一組の入力画像を取得する。この際、視差算出領域のサイズは、全ての階層画像に対して同じであってもよいし、階層画像のサイズに合わせて変更してもよい。
本実施例では、視差算出部304は、一組の階層画像から複数組の入力画像を取得してもよい。すなわち、1つの階層画像から複数の入力画像を取得してもよい。この際、1つの階層画像において複数の入力画像を部分的に重複するように取得してもよいし、重複しないように取得してもよい。ただし、一組の入力画像から1つの視差を算出するため、重複しないように複数組の入力画像を取得した場合は、算出された視差の分布、すなわち視差マップの解像度が入力画像に比べて低下する。これに対して、部分的に重複するように複数組の入力画像を取得することで視差マップの解像度を高めることができる。
また、シフト量は、記憶部302から取得した第(m−1)層の階層画像の視差と、第(m−1)層の第m層に対する縮小率Mとの積で求めることができる。なお、m=1(最上位層)の場合は、シフト量は0に設定する。
また、本ステップにおいて一組の階層画像から複数組の入力画像を取得する場合においては、一組の入力画像を列ベクトルとするときに複数組の入力画像を複数の列成分に持つ行列Iを生成する。入力画像を行列の形でまとめておくことで、以降の処理を階層画像全体で一括して行うことができ、視差算出の計算負荷を軽減することができる。
ステップS403では、視差算出部304は、以下の式(6)に示すように行列Iと変換行列Dの一般化逆行列との積を計算することで係数行列Aを求める。
ステップS404では、視差算出部304は、係数行列Aの各要素をN乗(Nは正の偶数)して各係数の符号を正にすることで、入力画像の明暗や色の変化の影響を低減させる。Nの大きさによって各係数の重みのバランスを調整することができる。また、係数行列Aの各列のベクトルの大きさは、入力画像の明暗の大きさによって影響を受ける。それは、参照パターンは視差だけでなく明暗も表しており、入力画像の明暗が変われば、それに合わせて係数の大きさも変える必要があるからである。このため、係数行列Aの各列を正規化して列ベクトルの大きさを一定の値に揃えた行列Bを求めることによって、入力画像の明暗の影響を低減させ、視差の推定精度を向上させることができる。
ステップS405では、視差算出部304は、以下の式(7)に示すように参照視差群を表す行ベクトルdに行列B(つまりは係数群)を乗じることにより、各組の入力画像の視差を表す行ベクトルPを求める。
ここで求めた視差Pを入力画像の位置に応じて並べ替えることで、第m層の階層画像のうち視差算出領域全体の視差マップを求めることができる。
ステップS406では、視差算出部304は、今回のルーチンでステップS401からステップS405までの処理を行った第m層の階層画像が第n層の階層画像か否か(つまりはm=nか否か)を判定する。m=nの場合は、撮像画像の視差マップとして第n層の階層画像の視差マップを出力する。
一方、m<nの場合は、視差算出部304は、記憶部302に第m層の階層画像と縮小率Mとを記憶し、ステップS407においてm=m+1としてステップS401からS405を繰り返す。このようにして全ての階層の階層画像の視差(マップ)を変換行列を用いた行列演算で求めることで、視差を算出する際の計算負荷を軽減させることができる。
本実施例によれば、一組の入力画像の視差を算出する際の計算負荷を軽減させながら、大きい視差を正確に算出することが可能な画像処理システムを実現することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。
100,300 撮像装置
102 画像処置部
102b 視差画像取得部
102c,304 視差算出部
301 画像処理装置
303 階層画像生成部

Claims (11)

  1. 互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる第1の視差を算出する画像処理装置であって、
    前記撮像画像データに対して縮小処理を行うことにより縮小画像データを生成する縮小手段と、
    前記縮小画像データに含まれる第2の視差を算出し、該第2の視差と前記縮小処理における前記撮像画像データに対する前記縮小画像データの縮小率とを用いて前記撮像画像データから前記視差画像データを取得する取得手段と、
    互いに異なる視差に対応する複数の参照パターンデータを用いて前記視差画像データを表すために該複数の参照パターンデータのそれぞれに重みを付ける複数の第1の係数を算出し、前記複数の参照パターンデータのそれぞれに対応する視差と前記複数の第1の係数とを用いて前記視差画像データに含まれる前記第1の視差を算出する算出手段とを有することを特徴とする画像処理装置。
  2. 前記取得手段は、前記第2の視差と前記縮小率とを用いて、前記撮像画像データのうち前記視差画像データを取得する領域を設定することを特徴とする請求項1に記載の画像処理装置。
  3. 前記縮小手段は、前記撮像画像データに対する前記縮小率が互い異なる複数の前記視差画像データを生成し、
    前記取得手段は、前記複数の視差画像データのうち前記縮小率がより大きい視差画像データにおいて取得した前記視差画像データを用いて前記縮小率がより小さい視差画像データの視差を順次算出し、前記縮小率が最も小さい前記視差画像データから取得した前記第2の視差と該最も小さい縮小率とを用いて前記撮像画像データから前記視差画像データを取得することを特徴とする請求項1または2に記載の画像処理装置。
  4. 前記縮小手段は、前記縮小率を、前記第1の視差の想定範囲に基づいて設定することを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。
  5. 前記想定範囲における前記第1の視差の最大想定値と最小想定値をそれぞれde,maxとde,minとし、前記複数の参照パターンデータのそれぞれに対応する視差の最大値と最小値をそれぞれdmaxとdminとするとき、前記縮小率Mが、

    なる条件を満足することを特徴とする請求項4に記載の画像処理装置。
  6. 前記縮小手段は、前記想定範囲または前記最大および最小想定値は、前記撮像を行った撮像装置の構成に応じて設定することを特徴とする請求項5に記載の画像処理装置。
  7. 前記撮像装置の構成は、前記複数の視点の数、撮像素子の画素ピッチ、撮像光学系の焦点距離、前記複数の視点の配置、F値およびフォーカス位置のうち少なくとも1つを含むことを特徴とすることを特徴とする請求項6に記載の画像処理装置。
  8. 前記縮小手段は、前記参照パターンデータを用いて前記縮小画像データを表すために該複数の参照パターンデータのそれぞれに重みを付ける複数の第2の係数を算出し、前記複数の参照パターンデータのそれぞれに対応する視差と前記複数の第2の係数とを用いて前記第2の視差を算出することを特徴とする請求項1から7のいずれか一項に記載の画像処理装置。
  9. 互いに異なる複数の視点からの撮像を行う撮像部と、
    請求項1から8のいずれか一項に記載の画像処理装置とを有することを特徴とする撮像装置。
  10. 互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる視差を算出する画像処理方法であって、
    前記撮像画像データに対して縮小処理を行うことにより縮小画像データを生成するステップと、
    前記縮小画像データに含まれる第2の視差を算出し、該第2の視差と前記縮小処理における前記撮像画像データに対する前記縮小画像データの縮小率とを用いて前記撮像画像データから前記視差画像データを取得するステップと、
    互いに異なる視差に対応する複数の参照パターンデータを用いて前記視差画像データを表すために該複数の参照パターンデータのそれぞれに重みを付ける複数の第1の係数を算出し、前記複数の参照パターンデータのそれぞれに対応する視差と前記複数の第1の係数とを用いて前記視差画像データに含まれる前記第1の視差を算出するステップとを有することを特徴とする画像処理方法。
  11. コンピュータに、互いに異なる複数の視点からの撮像により生成された撮像画像データから取得可能な視差画像データに含まれる視差を算出する画像処理を実行させるコンピュータプログラムであって、
    前記コンピュータに、
    前記撮像画像データに対して縮小処理を行わせて縮小画像データを生成させ、
    前記縮小画像データに含まれる第2の視差を算出させ、
    該第2の視差と前記縮小処理における前記撮像画像データに対する前記縮小画像データの縮小率とを用いて前記撮像画像データから前記視差画像データを取得させ、
    互いに異なる視差に対応する複数の参照パターンデータを用いて前記視差画像データを表すために該複数の参照パターンデータのそれぞれに重みを付ける複数の第1の係数を算出させ、
    前記複数の参照パターンデータのそれぞれに対応する視差と前記複数の第1の係数とを用いて前記視差画像データに含まれる前記第1の視差を算出させることを特徴とする画像処理プログラム。
JP2017028513A 2017-02-17 2017-02-17 画像処理装置、撮像装置、画像処理方法および画像処理プログラム Abandoned JP2018133064A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017028513A JP2018133064A (ja) 2017-02-17 2017-02-17 画像処理装置、撮像装置、画像処理方法および画像処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017028513A JP2018133064A (ja) 2017-02-17 2017-02-17 画像処理装置、撮像装置、画像処理方法および画像処理プログラム

Publications (1)

Publication Number Publication Date
JP2018133064A true JP2018133064A (ja) 2018-08-23

Family

ID=63249719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017028513A Abandoned JP2018133064A (ja) 2017-02-17 2017-02-17 画像処理装置、撮像装置、画像処理方法および画像処理プログラム

Country Status (1)

Country Link
JP (1) JP2018133064A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112602117A (zh) * 2019-03-14 2021-04-02 欧姆龙株式会社 图像处理装置和三维测量***
WO2022118442A1 (ja) * 2020-12-03 2022-06-09 日本電信電話株式会社 視差学習装置、融合データ生成装置、視差学習方法、融合データ生成方法、及び視差学習プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112602117A (zh) * 2019-03-14 2021-04-02 欧姆龙株式会社 图像处理装置和三维测量***
WO2022118442A1 (ja) * 2020-12-03 2022-06-09 日本電信電話株式会社 視差学習装置、融合データ生成装置、視差学習方法、融合データ生成方法、及び視差学習プログラム

Similar Documents

Publication Publication Date Title
EP3516625B1 (en) A device and method for obtaining distance information from views
US11663691B2 (en) Method and apparatus for restoring image
US20170339363A1 (en) Image capturing apparatus, image capturing method, and storage medium using compressive sensing
CN106952341A (zh) 一种基于视觉的水下场景三维点云重建方法及其***
JP2013061850A (ja) ノイズ低減のための画像処理装置及び画像処理方法
JP2020036310A (ja) 画像処理方法、画像処理装置、撮像装置、レンズ装置、プログラム、記憶媒体、および、画像処理システム
US11967096B2 (en) Methods and apparatuses of depth estimation from focus information
JP6598473B2 (ja) 撮像装置および画像処理装置
JP2018133064A (ja) 画像処理装置、撮像装置、画像処理方法および画像処理プログラム
US11790550B2 (en) Learnable cost volume for determining pixel correspondence
US20230245277A1 (en) Image restoration method and device
JP2018081378A (ja) 画像処理装置、撮像装置、画像処理方法および画像処理プログラム
EP3194886A1 (en) Positional shift amount calculation apparatus and imaging apparatus
US20190260925A1 (en) Image processing device, image processing method, and program
JP7009219B2 (ja) 画像処理方法、画像処理装置、撮像装置、画像処理プログラム、および、記憶媒体
CN113808070A (zh) 一种双目数字散斑图像相关的视差测量方法
JP6768431B2 (ja) 画像生成装置及びプログラム
US20230060314A1 (en) Method and apparatus with image processing
WO2016042721A1 (en) Positional shift amount calculation apparatus and imaging apparatus
CN116112656A (zh) 一种获取点云图的方法
Riou et al. A four-lens based plenoptic camera for depth measurements
CN115086628A (zh) 学习方法及图像处理装置
JP2014016687A (ja) 画像処理装置、画像処理方法、およびプログラム
Louchet et al. Single-lens low-disparity stereo using microlenses
JP2018026619A (ja) 撮像装置および画像処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200204

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20200727