画像処理方法、画像処理装置及びプログラム。
【課題】ピントを合わせたい被写体に応じてエイリアシングを打ち消し、出力画像データを高解像度化する。
【解決手段】多視点で撮影された複数枚の画像データを所定のピント位置で合成する際に、複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、合成の重みを決定する。
【解決手段】多視点で撮影された複数枚の画像データを所定のピント位置で合成する際に、複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、合成の重みを決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数枚の画像を取得する撮像装置において、高解像度化を行う画像処理方法、画像処理装置及びプログラムに関する。
【背景技術】
【0002】
カメラのピント位置は撮影時に調整を行うため、ピント調整を誤って撮影した場合は再撮影の必要がある。また異なる奥行きを持つ複数の被写体にのそれぞれにピントが合った画像を得たい場合、被写体毎にピントを合わせて撮影する必要がある。
【0003】
近年、光学系に新たな光学素子を追加して、多視点からの画像を取得し、画像処理によってピント位置を調節するライトフィールドフォトグラフィという技術が発展している。
【0004】
この技術によれば、撮影後にピント調整を行えるため、撮影時のピント調整の失敗を画像処理で補うことができる利点がある。さらに、画像処理方法を変更することで、一枚の撮影画像から画像中の任意の被写体にピントを合わせた画像を得る事ができ、撮影回数を減らす事ができるという利点もある。
【0005】
ライトフィールドフォトグラフィでは、多視点の画像から、空間中の複数の位置について、ある位置を通過する光線の方向と強度(ライトフィールド、以降LFと略記)を取得する。そして、LFの情報を用いて仮想のセンサに結像した場合の画像を計算する。LFに関する数学的性質や数学的基礎などはR.NGによって議論されている(非特許文献1)。
【0006】
この仮想のセンサの位置を適宜設定する事で、前述した撮影後のピント調整を可能とする。以降では多視点の画像から仮想のセンサが得る画像を計算する処理を再構成処理と呼ぶ。
【0007】
LFを取得するための撮像装置としてはメインレンズの後ろにマイクロレンズアレイを置いたPlenoptic Cameraや、小型のカメラを並べたカメラアレイが知られている。いずれの撮像装置においても取得したLFから、仮想的にセンサを置いた時の画像を撮影後に再構成することができる。このとき再構成するLFの範囲を変えることで被写界深度も撮影後に調節することが可能となる。
【0008】
LFから仮想的なセンサ上の画像を再構成する方法として、取得した複数枚の画像を仮想的なセンサ上に射影変換し加算して平均化する方法が知られている(特許文献1)。
【0009】
またLFとは別に、1台のカメラが取得した複数枚の画像から、高解像度画像を得る方法として、画素ズレした複数枚の画像を合成して、高解像度化する手法が知られている(非特許文献2)。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】国際公開第2008/050904号
【非特許文献】
【0011】
【非特許文献1】R.NG, M.Levoy, M.Bredif, G.Duval, M. Horowitz, P.Hanrahan著「Light Field Photography with a Hand-held Plenoptic Camera」(Stanford Tech Report CTSR 2005-02, 2005)
【非特許文献2】青木伸著「複数のデジタル画像データによる超解像処理」(Ricoh Technical Report, No.24,November,1998)
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、特許文献1の方法では画撮像素子のサンプリングに起因するエイリアシングが再構成後の画像に発生する。特許文献1の方法では解像度を高めるためにサンプリング間隔を任意に細かくしているが、エイリアシングによって実質的な出力解像度は(1/角度分割数)になってしまうという問題がある。出力解像度を上げるためには、エイリアシングを打ち消すことが必要である。
【0013】
また非特許文献2の方法では取得した複数枚の画像に対して、エイリアシングを打ち消した1枚の画像を生成する方法が示されている。しかし、この手法では撮影後に任意の被写体にピントを合わせたい場合には対応できない。
【0014】
本発明は、ピントを合わせたい被写体に応じてエイリアシングを打ち消し、出力画像を高解像化することを目的とする。
【課題を解決するための手段】
【0015】
本発明に係る画像処理装置は、多視点で撮影された複数枚の画像データを所定のピント位置で合成するために、前記複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、前記合成の重みを決定する重み決定手段を備えることを特徴とする。
【発明の効果】
【0016】
本発明によれば、ピントを合わせたい被写体に応じてエイリアシングを打ち消し、出力画像データを高解像度化することができる。
【図面の簡単な説明】
【0017】
【図1】高解像度化処理部100の構成を示すブロック図である。
【図2】高解像度化処理部100の動作を示すフローチャートである。
【図3】重み決定部200の構成を示すブロック図である。
【図4】画像合成部400の構成を示すブロック図である。
【図5】撮像部1301の概念図である。
【図6】画像合成部400の動作を示すフローチャートである。
【図7】カメラアレイによる撮影の概念図である。
【図8】再構成後の画像の例を示す図である。
【図9】本発明の効果の一例を示す図である。
【図10】図9の画像の周波数特性を示す図である。
【図11】撮像部1301の概念図である。
【図12】被写体選択部600のUIの概念図である。
【図13】一実施形態における撮像装置の構成を示すブロック図である。
【発明を実施するための形態】
【0018】
以下に、図面を参照して、本発明の好適な実施形態を詳しく説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらに限定する趣旨のものではない。
【実施例1】
【0019】
図13は、一実施形態において、本発明を適用できる撮像装置の構成例を示すブロック図である。
【0020】
図13において、撮像部1301は、ズームレンズ、フォーカスレンズ、ぶれ補正レンズ、絞り、シャッター、光学ローパスフィルタ、IRカットフィルタ、カラーフィルタ、及び、CMOSやCCDなどの撮像素子などから構成され、被写体の光量を検知する。A/D変換部500は、被写体の光量をデジタル値に変換する。ユーザが被写体選択部600を通してピントを合わせる被写体を選択する。高解像度化処理部100は、その選択情報と、A/D変換部500及び撮像部1301から入力される情報とに基づいて、再構成画像を出力する。再構成された画像は表示部1302に表示される。
【0021】
図1に、高解像度化処理部100の構成を示す。A/D変換部500から視差がついた画像データが複数枚画像データ入力端子101を通して入力される。被写体選択部600から被写体の選択情報がピント位置入力端子102を通して入力される。撮像部1301の特性を表すパラメータがカメラパラメータ入力端子103を通して入力される。被写体選択部600で選ばれた被写体が撮像部1301内部で結像する位置を、仮想センサ位置算出部104が算出する。重み決定部200は仮想センサの位置とカメラパラメータから各画像に乗算する重みを決定する。補間関数決定部300は重みの情報を元に、画像を補間する際の補間関数を決定する。画像合成部400は補間関数決定部300が決定した補間関数を元に画像を補間し、重み決定部200が決定した重みを各画像に乗算して加算する。再構成された画像データは再構成画像データ出力端子105より出力される。
【0022】
重み決定部200、補間関数決定部300、画像合成部400の詳細については後述する。
【0023】
図2に高解像度化処理部100の動作の概要を表すフローチャートを示す。この動作は、一例として、高解像度化処理部100に備える図示しないCPUが、記憶部からプログラムを読み出し、当該プログラムに従って各部の処理を制御することによって行われる。各部で実行される処理の詳細は後述する。
【0024】
最初に撮像装置から、視差がついた画像が複数枚画像データ入力端子101を通して入力される(S201)。次にユーザが被写体選択部600を通してピントを合わせる被写体を決定し(S202)、その情報がピント位置入力端子102より入力される。その情報を元に、被写体が結像する位置を仮想センサ位置算出部104が算出する(S203)。撮像部1301の特性を示すパラメータがカメラパラメータ入力端子103より入力され、重み決定部200が仮想センサ位置とカメラパラメータから各画像の画素ズレ量を算出し、重みを決定する(S204)。補間関数決定部300が重み決定部200で算出した画素ズレ量を元に、補間関数を決定する(S205)。画像合成部400が各画像を補間関数に基づいて補間し、重みを乗算して加算する(S206)。画像合成部400が生成した画像を再構成画像データ出力端子105より出力し、高解像度化処理部100の動作を終了する(S207)。重み決定部200、補間関数決定部300、画像合成部400の詳細な動作については後述する。
【0025】
[撮像部1301の概念図]
図5に撮像部1301の概念図を示す。
図5(a)は撮像部1301を正面から見た図である。符号507は小型カメラを表す。小型カメラ507には左上から右下に向かって、(-M,-M),(-M+1,-M),・・,(M,-M),(-M,-M+1)・・・,(M-1,M),(M,M)と番号が付いているものとする。ここでは小型カメラ507を(2M+1)2台あるものとしているが、実際は縦・横任意の台数を並べて構わない。符号508は小型カメラ507が並んでいる平面である。
【0026】
図5(b)は図5(a)において、平面508で切断した断面図である。符号501は被写体を表す。符号503は小型カメラ507のレンズを1つのレンズで模式的に表したものである。符号504は小型カメラの撮像素子を表す。符号505は仮想センサを表す。仮想センサとは、仮想的にその位置に撮像素子を考えることで、その位置に撮像素子があった場合にどのような画像が得られるかを撮影後に計算で導出するための概念である。符号502はレンズ503の光軸中心と、被写体501を結ぶ光線である。符号506は光線502と、仮想センサ505の交点である。
【0027】
被写体501が仮想センサ505上でピントが合う被写体である場合は、被写体501が仮想センサ上に存在し、交点506と被写体501は一致する。図5において、撮像素子504とレンズ503の距離をσreal、仮想センサ505とレンズ503の距離をσvirtualとする。
【0028】
m番目の小型カメラ507のレンズ503の光軸中心の座標を(um, 0)、撮像素子504の座標を(xm, σreal)とする。交点506の座標を(X, -σvirtual)とする。ここで、σvirtual は正の値を取るものとする。m番目の小型カメラ507下の撮像素子504の座標(xm, σreal)が取得する光の強度をL(um ,xm)と表すことにする。引数はumとxmを結ぶ光線であることを意味している。
【0029】
um,xm,Xは平面508上の2次元ベクトルを表すものとする。小型カメラが各々ズーム機能を備えている場合はσrealは可変パラメータになる。
【0030】
[画像合成部400の動作]
図4から図8を参照して画像合成部400による画像の補間、重み付け、再構成(加算)の動作について説明する。画像合成部400は画像処理装置として機能する。
【0031】
まず、図4に画像合成部400のブロック図を示す。補間関数決定部300によって決定された補間関数は、補間関数入力端子401より入力される。重み決定部200によって決定された各画像に乗算する重みは重み入力端子402より入力される。
【0032】
画像補間部403は複数視差画像データ入力端子101より入力された画像データを補間関数入力端子401より入力された補間関数により補間する。補間の仕方は後述する。補間済み画像バッファ404には補間済みの複数枚の画像データが格納される。重み乗算部405は補間済み画像バッファ404から画像を1枚読み込み、対応する重みを画像全体に乗算する。再構成後の画像データは再構成画像バッファ406に格納されている。加算器407は重みづけされた画像データと再構成画像バッファ406から読みこんだ画像データを加算する。
【0033】
画像合成部400の動作について図6のフローチャートを用いて説明する。小型カメラの番号mは図5(a)の左上から右下に向かって更新するものとする。
【0034】
画像合成部400は小型カメラの番号mを(-M,-M)に設定し、再構成画像バッファ406の画像データI(i,j)の値をすべての(i,j)に対して、I(i,j)=0に初期化する(S601)。複数の視差画像データが複数視差画像データ入力端子101から入力される(S602)。補間関数が補間関数入力端子401から入力される(S603)。画像補間部403が(2M+1)2枚の画像データを補間し、補間済み画像バッファ404に格納する(S604)。m番目の重みcmが重み入力端子402より入力される(S605)。重み乗算部405が補間済み画像バッファ404からm番目の小型カメラに対応する画像を読み込み、重みcmを画像全体に乗算する(S606)。重みを乗算した結果画像を、I(i,j)に画素ごとに加算してI(i,j)を更新する(S607)。mを更新し(S608)、m=(M,M)かどうかを判定し(S609)、そうでない場合はS605に戻る。m=(M,M)の場合は動作を終了する。
【0035】
以下に画像合成部400の動作原理を示す。
まず、S604において行われる補間処理について説明する。m番目の小型カメラ507下にある撮像素子が取得した光情報は、m番目のレンズ503のどこを通った光情報か特定することができない。そこで、本実施例では光線はレンズ503の光軸中心を通ったと仮定する。仮想センサ505上の点506(X, σvirtual)の光の強度を求める場合は仮想センサ上の点506と、レンズ503の光軸中心(um, 0)を結んだ直線上にある撮像素子504の座標xmを特定する。図5より、xmは以下の関係式を満たす。
【0036】
【数1】
【0037】
ここで、
【0038】
【数2】
【0039】
と定義した。
【0040】
m番目の小型カメラ507のセンサが取得した情報を、仮想センサ505上に投影すると、投影される情報は、撮像素子の画素ピッチをΔreal、補間関数をφとして、
【0041】
【数3】
【0042】
となる。ここで、n'はm番目の小型カメラ507の撮像素子の1つ1つの画素についての和である。
【0043】
再構成後の画像の画素ピッチをΔvirtualとすると、i≡(i,j)を整数値のベクトルとして、X = iΔvirtualと書くことができる。この関係と式(1)、式(3)を用いると、m番目の小型カメラ507の取得情報を仮想センサ上に投影した画像Im(i,j)は
【0044】
【数4】
【0045】
となる。
【0046】
ここで、画素が開いている部分に渡って光が積分されることによるローパスの影響は無視した。
【0047】
式(4)は撮像素子504の画像を仮想センサ505上にα倍に拡大してΔvirtualでサンプリングしているとみることもできるし、撮像素子504上で、Δvirtual/αでサンプリングしているとみることもできる。
【0048】
これがS604で行われる補間処理である。
【0049】
S606、S607ではImに重みcmをつけて加算する。即ち
【0050】
【数5】
【0051】
により得られた画像を再構成画像として出力する。mの和は小型カメラ507の番号に渡る。
【0052】
図7と図8を参照して画像合成部400による画像の合成の概念について説明する。
図7(a)は異なる距離にある被写体501を小型カメラ701〜703で撮影した様子を表している。
【0053】
図7(a)において、符号701〜703は小型カメラ507の中で代表的な3つの小型カメラを図示したものである。符号704〜706は仮想センサ505の中で代表的な3枚の仮想センサを図示したものである。符号707〜709はそれぞれ距離の異なる位置に置かれた被写体501である。
【0054】
図7(b)は、小型カメラ701で取得した画像を表す。符号710は小型カメラ701で撮影した画像である。小型カメラ702、703で取得する画像は、画像710において、各被写体704〜706の距離に応じた視差分だけ被写体がずれた画像になる。
【0055】
図8は画像合成部400によって再構成された画像の概念図である。符号801は仮想センサ位置を706にしたときの再構成後の画像である。画像801では被写体707にピントが合っており、被写体708、709にはボケが発生している。
【0056】
符号802は仮想センサ位置を705にしたとき、符号803は仮想センサ位置を704にしたときの再構成後の画像である。画像802、803はそれぞれピントが合った被写体は708、709である。このように仮想センサ位置を動かすことで、好きな被写体にピントを合わせた画像を得ることができる。またこのときピントが合った被写体を高解像度化することが本実施例の効果である。
【0057】
[重み決定部200の動作]
図3を参照して、重み決定部200による重み算出の動作について説明する。
重み決定部200のブロック図を図3に示す。図3において、仮想センサ位置は仮想センサ位置入力端子301より入力される。カメラパラメータと仮想センサ位置から、理論的な画素ズレ量を画素ズレ量算出部302が算出する。実際の画素ズレ量はカメラのパラメータから理論的に導かれる画素ズレ量とは少し異なる可能性がある。そこで、画素ズレ量算出部302は理論的な画素ズレ量で画像をおおまかに位置合わせしたあと、ブロックマッチングやオプティカルフローなどを用いて、実際の画素ズレ量を算出してもよい。画素ズレ量が求められると、画素ズレ量に応じて抑制することのできるエイリアシングの数が決まる(算出方法については後述する)。超解像倍率決定部303はこのエイリアシングの数を、抑制するエイリアシングの数として決定する。重み算出部304が画素ズレ量と、抑制するエイリアシングの数の情報を元に重みを算出する(算出方法については後述する)。算出された重みは重みデータ出力端子305より出力され、抑制するエイリアシングの個数は超解像倍率出力端子306より出力される。
【0058】
以下に重み決定部200の動作原理を示す。
m番目の小型カメラ507のレンズ中心からのズレ座標は、xm-umで表される。仮想センサの同一点Xに対する、各画像のズレ量は式(1)より
【0059】
【数6】
【0060】
画素ズレ量は、この画像のズレ量が撮像素子の画素ピッチの何倍になっているかで表される。よって、
【0061】
【数7】
【0062】
が画素ズレ量を表している。
【0063】
これが画素ズレ量算出部302が理論的に算出する画素ズレ量である。理論的な画素ズレ量の算出には小型カメラ507の位置座標と、小型カメラ507のレンズとセンサの間隔を用いている。よって小型カメラ507がズーム機構を備えている場合は、ズーム時のレンズとセンサの間隔がカメラパラメータとして使用される。
【0064】
撮像素子504のサンプリングは仮想センサ上ではαΔrealのサンプリングに該当し、画素ズレは式(7)で表される。仮想センサ上に投影された画像にはサンプリングによって2π/(αΔreal)の間隔でエイリアシングが発生し、画素ズレによって位相ズレが発生するので、m番目の小型カメラ507の画像を仮想センサ上に投影した周波数特性は、
【0065】
【数8】
【0066】
となる。ここで、F[]はフーリエ変換を表し、
【0067】
【数9】
【0068】
と定義した。nは全ての整数値ベクトルについて和を取るものとする。また
【0069】
【数10】
【0070】
は仮想センサ上に投影された光情報の周波数特性を表す。これは撮像素子によるサンプリングの影響を受けていない本来取得したい光情報である。
【0071】
式(9)は2π/αΔrealの周波数の間隔で画像にエイリアシングが発生することを意味しており、nはエイリアシングの番号を表している。
【0072】
画像合成部400が再構成した後の画像の周波数特性は、重みを考慮して
【0073】
【数11】
【0074】
となる。本来得たい情報は仮想センサ上に投影された光情報であり、その周波数特性は式(10)より、F[L'](k)であらわすことができるので、抑制可能なエイリアシングの個数がN(算出方法は後述する。)であるとき、重み算出部304は、
【0075】
【数12】
【0076】
をn=0に対しては、B0=1とし、|n|≦Nかつn≠0のnに対してはできるだけ|Bn|の値が小さくなるように重みを決定する。
【0077】
ここで、|Bn|は、n番目のエイリアシング成分が、取得した画像の周波数特性にどれだけ含まれるかを表す量である。|Bn|が0に等しいとエイリアシング成分は含まれず、|Bn|が大きくなると、n番目のエイリアシング成分が多く含まれることになる。
【0078】
また、重みは補間関数の周波数特性をなるべく高周波側まで持たせるように決定する。
【0079】
このとき、抑制することが可能なエイリアシングの数は式(12)のZn・umの小数部分で決まる。ここで、Zn・umは各小型カメラで撮影した画像間における画素ズレの画素数を表す値である。各小型カメラの撮影画像が仮に等間隔で、1/a(aは自然数)画素ずつズレている場合、a倍まで画像を超解像できることが一般に知られている。このとき、打ち消すことが(抑制)できるエイリアシング(画素ズレ量に応じて発生するエイリアシング)の数は1/a-1になる。
【0080】
たとえば、Zn・umの小数部分が0.5の時は打ち消すことが可能なエイリアシングの数は1/0.5 - 1 = 1であり、Zn・umの小数部分が0.2の時は打ち消すことが可能なエイリアシングの数は1/0.2 - 1 = 4となる。
【0081】
この数を超解像可能倍率決定部303が算出する。
【0082】
抑制が可能なエイリアシングの番号が-N〜Nであるとき、重み算出部304はたとえば
【0083】
【数13】
という連立方程式を解いて重みcmを決める。n''は[-N,N]×[-N,N]の格子点の間を動くものとする。
【0084】
但しこれだけでは重みの絶対値が非常に大きくなる場合があるため、以下の量(Bn'')を最小化するように重みを決めてもよい。
【0085】
【数14】
【0086】
ここで、第2項は重みの絶対値を抑えるために導入した正則化項であり、λはその度合いを決める実数値の係数である。
【0087】
重みの決め方はこれに限らず、n''=0に対しBn'' =1、 1≦|n''|≦Nに対し、|Bn''|の値が小さくなるようにするものであれば何でもよい。
【0088】
重みの絶対値が1より大きくなったり、負の値になると仮想センサ位置が少しずれただけで再構成画像の画質は大きく損なわれる。そこで、重みの絶対値が1より大きくなったり、負の値になった場合は仮想センサ位置の変動にロバストな重みとして、
【0089】
【数15】
【0090】
を採用してもよい。ここで、重みの和は1であるとする。
【0091】
Znは仮想センサの位置に依存する値なので、ピントを合わせる被写体に応じて重みを切り替えることになる。
【0092】
以上のように本実施例によれば、多視点で撮影された複数枚の画像データを所定のピント位置で合成するために、当該複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、画像データの合成のための重みを決定する。画像データの周波数特性に含まれるエイリアシング成分は、画素ズレ量を用いて導出される。また、合成のための重みは、画素ズレ量に応じて発生するエイリアシング数を用いて決定される。このように重みを決定することで、エイリアシングを打ち消して画像データの再構成を行うことができる。その結果、ピントを合わせたい被写体に応じてエイリアシングを打ち消し、超解像を行うことができる。
【0093】
以上が重み決定部200の動作原理である。
【0094】
[補間関数決定部300の動作]
次に、補間関数決定部300による補間関数の決定方法について説明する。
前述のように、重み決定部200は、画素ズレ量に応じて発生するエイリアシングである-N番目〜N番目までのエイリアシングを抑制するように重みの決定を行う。
【0095】
エイリアシングを-N番目〜N番目まで抑制できるとき、補間関数決定部300は、補間関数の周波数特性がN+1番目のエイリアシング周波数2π(N+1)/(αΔreal)で十分値が小さくなり、なるべく高周波側まで値を持つような補間関数を決定する。すなわち、補間関数決定部300は、画素ズレ量に応じて発生するエイリアシング以外のエイリアシングを抑制するように、画像データの合成のための補間関数を決定する。
【0096】
例としては、
【0097】
【数16】
【0098】
がその特徴を有する。
【0099】
ただし、|F[φ]( αΔrealk)|の値がk~π(N+1) /(αΔreal)程度まではO(1)であり、k≧2π(N+1)/(αΔreal)で十分小さくなるような補間関数であれば式(16)で挙げたものに限らない。
以上が補間決定部300の動作である。
【0100】
最後に図9と図10に本実施例による効果の一例を表した図を示す。被写体は平面被写体であるとした。
【0101】
図9(a)は重みをすべて均等にして、補間関数としてはニアレストネイバーの補間関数を採用した合成画像である。図9(b)はN=5として、上述した本実施例による方法により重みを決定し、補間関数として式(16)を採用した合成画像である。図10は図9の画像の断面のパワースペクトルを示したものである。図10(a)は図9(a)の画像の断面のパワースペクトルを表している。図10(b)は図9(b)の画像の断面のパワースペクトルを表している。図10において、2π/(αΔreal)はエイリアシングが発生する周波数である。図10(a)と(b)を比較すると、図10(a)で発生しているエイリアシングが図10(b)では抑制されていることが分かる。
【0102】
図9、図10より、本実施例によってエイリアシングを打ち消し、高解像度化が行われていることが分かる。
【0103】
以上説明したよう本実施例によれば、図5に示したようなカメラアレイにおいて、ピントを合わせる被写体に応じて重みを変えて再構成することで、再構成時のエイリアシングを打ち消して高解像度化することができる。
【実施例2】
【0104】
本実施例では実施例1とは異なる撮像系でLFを取得する場合について説明する。
図11に撮像部1301の別の概念図を示す。図5との差異のみ示すと、符号1101はメインレンズである。符号1102は被写体から出た光線である。本実施例ではレンズ503をメインレンズと区別するため特にマイクロレンズと呼称することにする。符号502はメインレンズ1101によって曲げられた光線1102の中で、マイクロレンズ503の光軸中心を通る光線を表す。光線502が仮想センサ505と交わる座標を(X, σvirtual)とする。ここで、σvirtual は正の値を取るものとする。図5と異なり、ピントが合った被写体であっても、被写体501と交点506は一致しない。
【0105】
高解像度化処理部100のブロック図とフローチャートは重み決定部200と画像合成部400を除いて、実施例1と同一である。
【0106】
ここでは実施例1との差異を説明する。
画像合成部400においては画像補間部403の動作のみ実施例1と異なる。
m番目のマイクロレンズ503下のセンサが取得した情報を、仮想センサ505上に投影すると、補間関数をφとして、
【0107】
【数17】
【0108】
となる。ここで、記号の定義は実施例1と同様である。再構成後の画像の画素ピッチをΔvirtualとし、式(1)を式(17)に代入すると、
【0109】
【数18】
【0110】
となる。
【0111】
式(18)に基づいて画像を補間するのが、本実施例における画像補間部403の動作である。
【0112】
次に重み決定部200において、実施例1と異なる動作について説明する。
仮想センサの同一点Xに対する、各画像のズレ量は式(1)より
【0113】
【数19】
【0114】
これが撮像素子の画素ピッチの何倍になっているかが画素ズレ量である。よって、
【0115】
【数20】
【0116】
が画素ズレ量を表している。
【0117】
これが画素ズレ量算出部302が理論的に算出する画素ズレ量である。
撮像素子504のサンプリングは仮想センサ上ではαΔrealのサンプリングに該当し、画素ズレは式(20)で表されるので、実施例1の式(11)を導いたのとと同様にして合成部400の合成後の画像の周波数特性は、
【0118】
【数21】
【0119】
となる。ここで
【0120】
【数22】
【0121】
と定義した。あとの記号の定義は実施例1と同様である。
【0122】
超解像倍率決定部303と重み算出部304は式(9)の代わりに式(22)をZnとして用い、あとの動作は実施例1と同様である。
【0123】
以上説明したように実施例によれば、メインレンズとマイクロレンズアレイを組み合わせた、別の形態のLFを取得する撮像装置においても高解像度化することができる。
【0124】
なお、実施例1、実施例2以外のLFを取得する撮像装置においても、同様の方法で高解像度化することが可能である。
【実施例3】
【0125】
本実施例では図1の被写体選択部600のUIにおいて、ピントを合わせる被写体の選び方について説明する。図12はピントを合わせる被写体の選び方の例を示したものである。
【0126】
図12(a)において、符号1201はピント位置調整用の画面である。符号1202はユーザがピント位置を選択したい時に選ぶボタンである。符号1203は自動でピントを合わせるときに選ぶボタンである。ボタン1202を押すと、被写体選択部600の画面は図12(b)に切り替わる。
【0127】
図12(b)において、符号1204はボタン1202選択時に被写体選択部600の画面上に表示されるUI画面の概念図である。符号1205はカーソルである。
【0128】
ユーザはピントを合わせたい被写体にカーソル1205を合わせてクリックすることで、ピントを合わせる被写体が決定される。すなわち、被写体選択部600は、被写体の選択手段として機能し、ユーザの指示に応じてピントを合わせる被写体を決定する。
【0129】
ボタン1203を押すと、画面は図12(c)に切り替わる。図12(c)において、符号1206はボタン1203選択時に被写体選択部600の画面上に表示されるUI画面の概念図である。符号1207は自動でピントを合わせる処理の進行状況が表示されるプログレスバーである。このとき自動でピントを合わせる方法としては、例えば顔認識技術を用いて被写体708にピントを合わせる方法が挙げられる。なおユーザのニーズを反映させた自動ピント合わせであれば、上記の方法に限らない。すなわち、被写体選択部600は、被写体の選択手段として機能し、自動的にピントを合わせる被写体を決定する。
【0130】
図12(b)、(c)では小型カメラ507が取得した中で代表的な画像を1枚表示しているだけであるが、ある適当な仮想センサ位置で、適当な重みをつけて再構成した画像を表示しても良い。
【0131】
以上説明したように実施例3によれば、ユーザが被写体選択部600のUI画面で指示を出すことで、ピントを合わせる被写体を決定することができる。
【0132】
[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、複数枚の画像を取得する撮像装置において、高解像度化を行う画像処理方法、画像処理装置及びプログラムに関する。
【背景技術】
【0002】
カメラのピント位置は撮影時に調整を行うため、ピント調整を誤って撮影した場合は再撮影の必要がある。また異なる奥行きを持つ複数の被写体にのそれぞれにピントが合った画像を得たい場合、被写体毎にピントを合わせて撮影する必要がある。
【0003】
近年、光学系に新たな光学素子を追加して、多視点からの画像を取得し、画像処理によってピント位置を調節するライトフィールドフォトグラフィという技術が発展している。
【0004】
この技術によれば、撮影後にピント調整を行えるため、撮影時のピント調整の失敗を画像処理で補うことができる利点がある。さらに、画像処理方法を変更することで、一枚の撮影画像から画像中の任意の被写体にピントを合わせた画像を得る事ができ、撮影回数を減らす事ができるという利点もある。
【0005】
ライトフィールドフォトグラフィでは、多視点の画像から、空間中の複数の位置について、ある位置を通過する光線の方向と強度(ライトフィールド、以降LFと略記)を取得する。そして、LFの情報を用いて仮想のセンサに結像した場合の画像を計算する。LFに関する数学的性質や数学的基礎などはR.NGによって議論されている(非特許文献1)。
【0006】
この仮想のセンサの位置を適宜設定する事で、前述した撮影後のピント調整を可能とする。以降では多視点の画像から仮想のセンサが得る画像を計算する処理を再構成処理と呼ぶ。
【0007】
LFを取得するための撮像装置としてはメインレンズの後ろにマイクロレンズアレイを置いたPlenoptic Cameraや、小型のカメラを並べたカメラアレイが知られている。いずれの撮像装置においても取得したLFから、仮想的にセンサを置いた時の画像を撮影後に再構成することができる。このとき再構成するLFの範囲を変えることで被写界深度も撮影後に調節することが可能となる。
【0008】
LFから仮想的なセンサ上の画像を再構成する方法として、取得した複数枚の画像を仮想的なセンサ上に射影変換し加算して平均化する方法が知られている(特許文献1)。
【0009】
またLFとは別に、1台のカメラが取得した複数枚の画像から、高解像度画像を得る方法として、画素ズレした複数枚の画像を合成して、高解像度化する手法が知られている(非特許文献2)。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】国際公開第2008/050904号
【非特許文献】
【0011】
【非特許文献1】R.NG, M.Levoy, M.Bredif, G.Duval, M. Horowitz, P.Hanrahan著「Light Field Photography with a Hand-held Plenoptic Camera」(Stanford Tech Report CTSR 2005-02, 2005)
【非特許文献2】青木伸著「複数のデジタル画像データによる超解像処理」(Ricoh Technical Report, No.24,November,1998)
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、特許文献1の方法では画撮像素子のサンプリングに起因するエイリアシングが再構成後の画像に発生する。特許文献1の方法では解像度を高めるためにサンプリング間隔を任意に細かくしているが、エイリアシングによって実質的な出力解像度は(1/角度分割数)になってしまうという問題がある。出力解像度を上げるためには、エイリアシングを打ち消すことが必要である。
【0013】
また非特許文献2の方法では取得した複数枚の画像に対して、エイリアシングを打ち消した1枚の画像を生成する方法が示されている。しかし、この手法では撮影後に任意の被写体にピントを合わせたい場合には対応できない。
【0014】
本発明は、ピントを合わせたい被写体に応じてエイリアシングを打ち消し、出力画像を高解像化することを目的とする。
【課題を解決するための手段】
【0015】
本発明に係る画像処理装置は、多視点で撮影された複数枚の画像データを所定のピント位置で合成するために、前記複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、前記合成の重みを決定する重み決定手段を備えることを特徴とする。
【発明の効果】
【0016】
本発明によれば、ピントを合わせたい被写体に応じてエイリアシングを打ち消し、出力画像データを高解像度化することができる。
【図面の簡単な説明】
【0017】
【図1】高解像度化処理部100の構成を示すブロック図である。
【図2】高解像度化処理部100の動作を示すフローチャートである。
【図3】重み決定部200の構成を示すブロック図である。
【図4】画像合成部400の構成を示すブロック図である。
【図5】撮像部1301の概念図である。
【図6】画像合成部400の動作を示すフローチャートである。
【図7】カメラアレイによる撮影の概念図である。
【図8】再構成後の画像の例を示す図である。
【図9】本発明の効果の一例を示す図である。
【図10】図9の画像の周波数特性を示す図である。
【図11】撮像部1301の概念図である。
【図12】被写体選択部600のUIの概念図である。
【図13】一実施形態における撮像装置の構成を示すブロック図である。
【発明を実施するための形態】
【0018】
以下に、図面を参照して、本発明の好適な実施形態を詳しく説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらに限定する趣旨のものではない。
【実施例1】
【0019】
図13は、一実施形態において、本発明を適用できる撮像装置の構成例を示すブロック図である。
【0020】
図13において、撮像部1301は、ズームレンズ、フォーカスレンズ、ぶれ補正レンズ、絞り、シャッター、光学ローパスフィルタ、IRカットフィルタ、カラーフィルタ、及び、CMOSやCCDなどの撮像素子などから構成され、被写体の光量を検知する。A/D変換部500は、被写体の光量をデジタル値に変換する。ユーザが被写体選択部600を通してピントを合わせる被写体を選択する。高解像度化処理部100は、その選択情報と、A/D変換部500及び撮像部1301から入力される情報とに基づいて、再構成画像を出力する。再構成された画像は表示部1302に表示される。
【0021】
図1に、高解像度化処理部100の構成を示す。A/D変換部500から視差がついた画像データが複数枚画像データ入力端子101を通して入力される。被写体選択部600から被写体の選択情報がピント位置入力端子102を通して入力される。撮像部1301の特性を表すパラメータがカメラパラメータ入力端子103を通して入力される。被写体選択部600で選ばれた被写体が撮像部1301内部で結像する位置を、仮想センサ位置算出部104が算出する。重み決定部200は仮想センサの位置とカメラパラメータから各画像に乗算する重みを決定する。補間関数決定部300は重みの情報を元に、画像を補間する際の補間関数を決定する。画像合成部400は補間関数決定部300が決定した補間関数を元に画像を補間し、重み決定部200が決定した重みを各画像に乗算して加算する。再構成された画像データは再構成画像データ出力端子105より出力される。
【0022】
重み決定部200、補間関数決定部300、画像合成部400の詳細については後述する。
【0023】
図2に高解像度化処理部100の動作の概要を表すフローチャートを示す。この動作は、一例として、高解像度化処理部100に備える図示しないCPUが、記憶部からプログラムを読み出し、当該プログラムに従って各部の処理を制御することによって行われる。各部で実行される処理の詳細は後述する。
【0024】
最初に撮像装置から、視差がついた画像が複数枚画像データ入力端子101を通して入力される(S201)。次にユーザが被写体選択部600を通してピントを合わせる被写体を決定し(S202)、その情報がピント位置入力端子102より入力される。その情報を元に、被写体が結像する位置を仮想センサ位置算出部104が算出する(S203)。撮像部1301の特性を示すパラメータがカメラパラメータ入力端子103より入力され、重み決定部200が仮想センサ位置とカメラパラメータから各画像の画素ズレ量を算出し、重みを決定する(S204)。補間関数決定部300が重み決定部200で算出した画素ズレ量を元に、補間関数を決定する(S205)。画像合成部400が各画像を補間関数に基づいて補間し、重みを乗算して加算する(S206)。画像合成部400が生成した画像を再構成画像データ出力端子105より出力し、高解像度化処理部100の動作を終了する(S207)。重み決定部200、補間関数決定部300、画像合成部400の詳細な動作については後述する。
【0025】
[撮像部1301の概念図]
図5に撮像部1301の概念図を示す。
図5(a)は撮像部1301を正面から見た図である。符号507は小型カメラを表す。小型カメラ507には左上から右下に向かって、(-M,-M),(-M+1,-M),・・,(M,-M),(-M,-M+1)・・・,(M-1,M),(M,M)と番号が付いているものとする。ここでは小型カメラ507を(2M+1)2台あるものとしているが、実際は縦・横任意の台数を並べて構わない。符号508は小型カメラ507が並んでいる平面である。
【0026】
図5(b)は図5(a)において、平面508で切断した断面図である。符号501は被写体を表す。符号503は小型カメラ507のレンズを1つのレンズで模式的に表したものである。符号504は小型カメラの撮像素子を表す。符号505は仮想センサを表す。仮想センサとは、仮想的にその位置に撮像素子を考えることで、その位置に撮像素子があった場合にどのような画像が得られるかを撮影後に計算で導出するための概念である。符号502はレンズ503の光軸中心と、被写体501を結ぶ光線である。符号506は光線502と、仮想センサ505の交点である。
【0027】
被写体501が仮想センサ505上でピントが合う被写体である場合は、被写体501が仮想センサ上に存在し、交点506と被写体501は一致する。図5において、撮像素子504とレンズ503の距離をσreal、仮想センサ505とレンズ503の距離をσvirtualとする。
【0028】
m番目の小型カメラ507のレンズ503の光軸中心の座標を(um, 0)、撮像素子504の座標を(xm, σreal)とする。交点506の座標を(X, -σvirtual)とする。ここで、σvirtual は正の値を取るものとする。m番目の小型カメラ507下の撮像素子504の座標(xm, σreal)が取得する光の強度をL(um ,xm)と表すことにする。引数はumとxmを結ぶ光線であることを意味している。
【0029】
um,xm,Xは平面508上の2次元ベクトルを表すものとする。小型カメラが各々ズーム機能を備えている場合はσrealは可変パラメータになる。
【0030】
[画像合成部400の動作]
図4から図8を参照して画像合成部400による画像の補間、重み付け、再構成(加算)の動作について説明する。画像合成部400は画像処理装置として機能する。
【0031】
まず、図4に画像合成部400のブロック図を示す。補間関数決定部300によって決定された補間関数は、補間関数入力端子401より入力される。重み決定部200によって決定された各画像に乗算する重みは重み入力端子402より入力される。
【0032】
画像補間部403は複数視差画像データ入力端子101より入力された画像データを補間関数入力端子401より入力された補間関数により補間する。補間の仕方は後述する。補間済み画像バッファ404には補間済みの複数枚の画像データが格納される。重み乗算部405は補間済み画像バッファ404から画像を1枚読み込み、対応する重みを画像全体に乗算する。再構成後の画像データは再構成画像バッファ406に格納されている。加算器407は重みづけされた画像データと再構成画像バッファ406から読みこんだ画像データを加算する。
【0033】
画像合成部400の動作について図6のフローチャートを用いて説明する。小型カメラの番号mは図5(a)の左上から右下に向かって更新するものとする。
【0034】
画像合成部400は小型カメラの番号mを(-M,-M)に設定し、再構成画像バッファ406の画像データI(i,j)の値をすべての(i,j)に対して、I(i,j)=0に初期化する(S601)。複数の視差画像データが複数視差画像データ入力端子101から入力される(S602)。補間関数が補間関数入力端子401から入力される(S603)。画像補間部403が(2M+1)2枚の画像データを補間し、補間済み画像バッファ404に格納する(S604)。m番目の重みcmが重み入力端子402より入力される(S605)。重み乗算部405が補間済み画像バッファ404からm番目の小型カメラに対応する画像を読み込み、重みcmを画像全体に乗算する(S606)。重みを乗算した結果画像を、I(i,j)に画素ごとに加算してI(i,j)を更新する(S607)。mを更新し(S608)、m=(M,M)かどうかを判定し(S609)、そうでない場合はS605に戻る。m=(M,M)の場合は動作を終了する。
【0035】
以下に画像合成部400の動作原理を示す。
まず、S604において行われる補間処理について説明する。m番目の小型カメラ507下にある撮像素子が取得した光情報は、m番目のレンズ503のどこを通った光情報か特定することができない。そこで、本実施例では光線はレンズ503の光軸中心を通ったと仮定する。仮想センサ505上の点506(X, σvirtual)の光の強度を求める場合は仮想センサ上の点506と、レンズ503の光軸中心(um, 0)を結んだ直線上にある撮像素子504の座標xmを特定する。図5より、xmは以下の関係式を満たす。
【0036】
【数1】
【0037】
ここで、
【0038】
【数2】
【0039】
と定義した。
【0040】
m番目の小型カメラ507のセンサが取得した情報を、仮想センサ505上に投影すると、投影される情報は、撮像素子の画素ピッチをΔreal、補間関数をφとして、
【0041】
【数3】
【0042】
となる。ここで、n'はm番目の小型カメラ507の撮像素子の1つ1つの画素についての和である。
【0043】
再構成後の画像の画素ピッチをΔvirtualとすると、i≡(i,j)を整数値のベクトルとして、X = iΔvirtualと書くことができる。この関係と式(1)、式(3)を用いると、m番目の小型カメラ507の取得情報を仮想センサ上に投影した画像Im(i,j)は
【0044】
【数4】
【0045】
となる。
【0046】
ここで、画素が開いている部分に渡って光が積分されることによるローパスの影響は無視した。
【0047】
式(4)は撮像素子504の画像を仮想センサ505上にα倍に拡大してΔvirtualでサンプリングしているとみることもできるし、撮像素子504上で、Δvirtual/αでサンプリングしているとみることもできる。
【0048】
これがS604で行われる補間処理である。
【0049】
S606、S607ではImに重みcmをつけて加算する。即ち
【0050】
【数5】
【0051】
により得られた画像を再構成画像として出力する。mの和は小型カメラ507の番号に渡る。
【0052】
図7と図8を参照して画像合成部400による画像の合成の概念について説明する。
図7(a)は異なる距離にある被写体501を小型カメラ701〜703で撮影した様子を表している。
【0053】
図7(a)において、符号701〜703は小型カメラ507の中で代表的な3つの小型カメラを図示したものである。符号704〜706は仮想センサ505の中で代表的な3枚の仮想センサを図示したものである。符号707〜709はそれぞれ距離の異なる位置に置かれた被写体501である。
【0054】
図7(b)は、小型カメラ701で取得した画像を表す。符号710は小型カメラ701で撮影した画像である。小型カメラ702、703で取得する画像は、画像710において、各被写体704〜706の距離に応じた視差分だけ被写体がずれた画像になる。
【0055】
図8は画像合成部400によって再構成された画像の概念図である。符号801は仮想センサ位置を706にしたときの再構成後の画像である。画像801では被写体707にピントが合っており、被写体708、709にはボケが発生している。
【0056】
符号802は仮想センサ位置を705にしたとき、符号803は仮想センサ位置を704にしたときの再構成後の画像である。画像802、803はそれぞれピントが合った被写体は708、709である。このように仮想センサ位置を動かすことで、好きな被写体にピントを合わせた画像を得ることができる。またこのときピントが合った被写体を高解像度化することが本実施例の効果である。
【0057】
[重み決定部200の動作]
図3を参照して、重み決定部200による重み算出の動作について説明する。
重み決定部200のブロック図を図3に示す。図3において、仮想センサ位置は仮想センサ位置入力端子301より入力される。カメラパラメータと仮想センサ位置から、理論的な画素ズレ量を画素ズレ量算出部302が算出する。実際の画素ズレ量はカメラのパラメータから理論的に導かれる画素ズレ量とは少し異なる可能性がある。そこで、画素ズレ量算出部302は理論的な画素ズレ量で画像をおおまかに位置合わせしたあと、ブロックマッチングやオプティカルフローなどを用いて、実際の画素ズレ量を算出してもよい。画素ズレ量が求められると、画素ズレ量に応じて抑制することのできるエイリアシングの数が決まる(算出方法については後述する)。超解像倍率決定部303はこのエイリアシングの数を、抑制するエイリアシングの数として決定する。重み算出部304が画素ズレ量と、抑制するエイリアシングの数の情報を元に重みを算出する(算出方法については後述する)。算出された重みは重みデータ出力端子305より出力され、抑制するエイリアシングの個数は超解像倍率出力端子306より出力される。
【0058】
以下に重み決定部200の動作原理を示す。
m番目の小型カメラ507のレンズ中心からのズレ座標は、xm-umで表される。仮想センサの同一点Xに対する、各画像のズレ量は式(1)より
【0059】
【数6】
【0060】
画素ズレ量は、この画像のズレ量が撮像素子の画素ピッチの何倍になっているかで表される。よって、
【0061】
【数7】
【0062】
が画素ズレ量を表している。
【0063】
これが画素ズレ量算出部302が理論的に算出する画素ズレ量である。理論的な画素ズレ量の算出には小型カメラ507の位置座標と、小型カメラ507のレンズとセンサの間隔を用いている。よって小型カメラ507がズーム機構を備えている場合は、ズーム時のレンズとセンサの間隔がカメラパラメータとして使用される。
【0064】
撮像素子504のサンプリングは仮想センサ上ではαΔrealのサンプリングに該当し、画素ズレは式(7)で表される。仮想センサ上に投影された画像にはサンプリングによって2π/(αΔreal)の間隔でエイリアシングが発生し、画素ズレによって位相ズレが発生するので、m番目の小型カメラ507の画像を仮想センサ上に投影した周波数特性は、
【0065】
【数8】
【0066】
となる。ここで、F[]はフーリエ変換を表し、
【0067】
【数9】
【0068】
と定義した。nは全ての整数値ベクトルについて和を取るものとする。また
【0069】
【数10】
【0070】
は仮想センサ上に投影された光情報の周波数特性を表す。これは撮像素子によるサンプリングの影響を受けていない本来取得したい光情報である。
【0071】
式(9)は2π/αΔrealの周波数の間隔で画像にエイリアシングが発生することを意味しており、nはエイリアシングの番号を表している。
【0072】
画像合成部400が再構成した後の画像の周波数特性は、重みを考慮して
【0073】
【数11】
【0074】
となる。本来得たい情報は仮想センサ上に投影された光情報であり、その周波数特性は式(10)より、F[L'](k)であらわすことができるので、抑制可能なエイリアシングの個数がN(算出方法は後述する。)であるとき、重み算出部304は、
【0075】
【数12】
【0076】
をn=0に対しては、B0=1とし、|n|≦Nかつn≠0のnに対してはできるだけ|Bn|の値が小さくなるように重みを決定する。
【0077】
ここで、|Bn|は、n番目のエイリアシング成分が、取得した画像の周波数特性にどれだけ含まれるかを表す量である。|Bn|が0に等しいとエイリアシング成分は含まれず、|Bn|が大きくなると、n番目のエイリアシング成分が多く含まれることになる。
【0078】
また、重みは補間関数の周波数特性をなるべく高周波側まで持たせるように決定する。
【0079】
このとき、抑制することが可能なエイリアシングの数は式(12)のZn・umの小数部分で決まる。ここで、Zn・umは各小型カメラで撮影した画像間における画素ズレの画素数を表す値である。各小型カメラの撮影画像が仮に等間隔で、1/a(aは自然数)画素ずつズレている場合、a倍まで画像を超解像できることが一般に知られている。このとき、打ち消すことが(抑制)できるエイリアシング(画素ズレ量に応じて発生するエイリアシング)の数は1/a-1になる。
【0080】
たとえば、Zn・umの小数部分が0.5の時は打ち消すことが可能なエイリアシングの数は1/0.5 - 1 = 1であり、Zn・umの小数部分が0.2の時は打ち消すことが可能なエイリアシングの数は1/0.2 - 1 = 4となる。
【0081】
この数を超解像可能倍率決定部303が算出する。
【0082】
抑制が可能なエイリアシングの番号が-N〜Nであるとき、重み算出部304はたとえば
【0083】
【数13】
という連立方程式を解いて重みcmを決める。n''は[-N,N]×[-N,N]の格子点の間を動くものとする。
【0084】
但しこれだけでは重みの絶対値が非常に大きくなる場合があるため、以下の量(Bn'')を最小化するように重みを決めてもよい。
【0085】
【数14】
【0086】
ここで、第2項は重みの絶対値を抑えるために導入した正則化項であり、λはその度合いを決める実数値の係数である。
【0087】
重みの決め方はこれに限らず、n''=0に対しBn'' =1、 1≦|n''|≦Nに対し、|Bn''|の値が小さくなるようにするものであれば何でもよい。
【0088】
重みの絶対値が1より大きくなったり、負の値になると仮想センサ位置が少しずれただけで再構成画像の画質は大きく損なわれる。そこで、重みの絶対値が1より大きくなったり、負の値になった場合は仮想センサ位置の変動にロバストな重みとして、
【0089】
【数15】
【0090】
を採用してもよい。ここで、重みの和は1であるとする。
【0091】
Znは仮想センサの位置に依存する値なので、ピントを合わせる被写体に応じて重みを切り替えることになる。
【0092】
以上のように本実施例によれば、多視点で撮影された複数枚の画像データを所定のピント位置で合成するために、当該複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、画像データの合成のための重みを決定する。画像データの周波数特性に含まれるエイリアシング成分は、画素ズレ量を用いて導出される。また、合成のための重みは、画素ズレ量に応じて発生するエイリアシング数を用いて決定される。このように重みを決定することで、エイリアシングを打ち消して画像データの再構成を行うことができる。その結果、ピントを合わせたい被写体に応じてエイリアシングを打ち消し、超解像を行うことができる。
【0093】
以上が重み決定部200の動作原理である。
【0094】
[補間関数決定部300の動作]
次に、補間関数決定部300による補間関数の決定方法について説明する。
前述のように、重み決定部200は、画素ズレ量に応じて発生するエイリアシングである-N番目〜N番目までのエイリアシングを抑制するように重みの決定を行う。
【0095】
エイリアシングを-N番目〜N番目まで抑制できるとき、補間関数決定部300は、補間関数の周波数特性がN+1番目のエイリアシング周波数2π(N+1)/(αΔreal)で十分値が小さくなり、なるべく高周波側まで値を持つような補間関数を決定する。すなわち、補間関数決定部300は、画素ズレ量に応じて発生するエイリアシング以外のエイリアシングを抑制するように、画像データの合成のための補間関数を決定する。
【0096】
例としては、
【0097】
【数16】
【0098】
がその特徴を有する。
【0099】
ただし、|F[φ]( αΔrealk)|の値がk~π(N+1) /(αΔreal)程度まではO(1)であり、k≧2π(N+1)/(αΔreal)で十分小さくなるような補間関数であれば式(16)で挙げたものに限らない。
以上が補間決定部300の動作である。
【0100】
最後に図9と図10に本実施例による効果の一例を表した図を示す。被写体は平面被写体であるとした。
【0101】
図9(a)は重みをすべて均等にして、補間関数としてはニアレストネイバーの補間関数を採用した合成画像である。図9(b)はN=5として、上述した本実施例による方法により重みを決定し、補間関数として式(16)を採用した合成画像である。図10は図9の画像の断面のパワースペクトルを示したものである。図10(a)は図9(a)の画像の断面のパワースペクトルを表している。図10(b)は図9(b)の画像の断面のパワースペクトルを表している。図10において、2π/(αΔreal)はエイリアシングが発生する周波数である。図10(a)と(b)を比較すると、図10(a)で発生しているエイリアシングが図10(b)では抑制されていることが分かる。
【0102】
図9、図10より、本実施例によってエイリアシングを打ち消し、高解像度化が行われていることが分かる。
【0103】
以上説明したよう本実施例によれば、図5に示したようなカメラアレイにおいて、ピントを合わせる被写体に応じて重みを変えて再構成することで、再構成時のエイリアシングを打ち消して高解像度化することができる。
【実施例2】
【0104】
本実施例では実施例1とは異なる撮像系でLFを取得する場合について説明する。
図11に撮像部1301の別の概念図を示す。図5との差異のみ示すと、符号1101はメインレンズである。符号1102は被写体から出た光線である。本実施例ではレンズ503をメインレンズと区別するため特にマイクロレンズと呼称することにする。符号502はメインレンズ1101によって曲げられた光線1102の中で、マイクロレンズ503の光軸中心を通る光線を表す。光線502が仮想センサ505と交わる座標を(X, σvirtual)とする。ここで、σvirtual は正の値を取るものとする。図5と異なり、ピントが合った被写体であっても、被写体501と交点506は一致しない。
【0105】
高解像度化処理部100のブロック図とフローチャートは重み決定部200と画像合成部400を除いて、実施例1と同一である。
【0106】
ここでは実施例1との差異を説明する。
画像合成部400においては画像補間部403の動作のみ実施例1と異なる。
m番目のマイクロレンズ503下のセンサが取得した情報を、仮想センサ505上に投影すると、補間関数をφとして、
【0107】
【数17】
【0108】
となる。ここで、記号の定義は実施例1と同様である。再構成後の画像の画素ピッチをΔvirtualとし、式(1)を式(17)に代入すると、
【0109】
【数18】
【0110】
となる。
【0111】
式(18)に基づいて画像を補間するのが、本実施例における画像補間部403の動作である。
【0112】
次に重み決定部200において、実施例1と異なる動作について説明する。
仮想センサの同一点Xに対する、各画像のズレ量は式(1)より
【0113】
【数19】
【0114】
これが撮像素子の画素ピッチの何倍になっているかが画素ズレ量である。よって、
【0115】
【数20】
【0116】
が画素ズレ量を表している。
【0117】
これが画素ズレ量算出部302が理論的に算出する画素ズレ量である。
撮像素子504のサンプリングは仮想センサ上ではαΔrealのサンプリングに該当し、画素ズレは式(20)で表されるので、実施例1の式(11)を導いたのとと同様にして合成部400の合成後の画像の周波数特性は、
【0118】
【数21】
【0119】
となる。ここで
【0120】
【数22】
【0121】
と定義した。あとの記号の定義は実施例1と同様である。
【0122】
超解像倍率決定部303と重み算出部304は式(9)の代わりに式(22)をZnとして用い、あとの動作は実施例1と同様である。
【0123】
以上説明したように実施例によれば、メインレンズとマイクロレンズアレイを組み合わせた、別の形態のLFを取得する撮像装置においても高解像度化することができる。
【0124】
なお、実施例1、実施例2以外のLFを取得する撮像装置においても、同様の方法で高解像度化することが可能である。
【実施例3】
【0125】
本実施例では図1の被写体選択部600のUIにおいて、ピントを合わせる被写体の選び方について説明する。図12はピントを合わせる被写体の選び方の例を示したものである。
【0126】
図12(a)において、符号1201はピント位置調整用の画面である。符号1202はユーザがピント位置を選択したい時に選ぶボタンである。符号1203は自動でピントを合わせるときに選ぶボタンである。ボタン1202を押すと、被写体選択部600の画面は図12(b)に切り替わる。
【0127】
図12(b)において、符号1204はボタン1202選択時に被写体選択部600の画面上に表示されるUI画面の概念図である。符号1205はカーソルである。
【0128】
ユーザはピントを合わせたい被写体にカーソル1205を合わせてクリックすることで、ピントを合わせる被写体が決定される。すなわち、被写体選択部600は、被写体の選択手段として機能し、ユーザの指示に応じてピントを合わせる被写体を決定する。
【0129】
ボタン1203を押すと、画面は図12(c)に切り替わる。図12(c)において、符号1206はボタン1203選択時に被写体選択部600の画面上に表示されるUI画面の概念図である。符号1207は自動でピントを合わせる処理の進行状況が表示されるプログレスバーである。このとき自動でピントを合わせる方法としては、例えば顔認識技術を用いて被写体708にピントを合わせる方法が挙げられる。なおユーザのニーズを反映させた自動ピント合わせであれば、上記の方法に限らない。すなわち、被写体選択部600は、被写体の選択手段として機能し、自動的にピントを合わせる被写体を決定する。
【0130】
図12(b)、(c)では小型カメラ507が取得した中で代表的な画像を1枚表示しているだけであるが、ある適当な仮想センサ位置で、適当な重みをつけて再構成した画像を表示しても良い。
【0131】
以上説明したように実施例3によれば、ユーザが被写体選択部600のUI画面で指示を出すことで、ピントを合わせる被写体を決定することができる。
【0132】
[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
多視点で撮影された複数枚の画像データを所定のピント位置で合成するために、前記複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、前記合成の重みを決定する重み決定手段を備えることを特徴とする画像処理装置。
【請求項2】
前記重み決定手段は、前記複数枚の画像データの画素ズレ量を用いて、前記画像データの周波数特性に含まれるエイリアシング成分を導出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記重み決定手段は、前記複数枚の画像データの画素ズレ量に応じて決まる抑制可能なエイリアシング数を用いて、前記合成の重みを決定することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
画素ズレ量に応じて決まる抑制可能なエイリアシング以外のエイリアシングを抑制するように、前記合成のための補間関数を決定する手段を備えることを特徴とする請求項1から3のいずれか1つに記載の画像処理装置。
【請求項5】
前記決定した合成の重み及び前記決定した補間関数を用いて、前記複数枚の画像データの合成を行う合成手段を備えることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
被写体を選択する選択手段を備え、
前記所定のピント位置は、前記選択手段による選択に基づいていることを特徴とする請求項1から5のいずれか1つに記載の画像処理装置。
【請求項7】
前記選択手段は、ユーザの選択に基づいて又は自動的に、被写体を選択することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
視差がついた複数枚の画像データを撮像する撮像手段と、
前記複数枚の画像データを所定のピント位置で合成するために、前記複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、前記合成の重みを決定する重み決定手段と
を備えることを特徴とする撮像装置。
【請求項9】
多視点で撮影された複数枚の画像データを所定のピント位置で合成するために、前記複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、前記合成の重みを決定する重み決定ステップを備えることを特徴とする画像処理方法。
【請求項10】
コンピュータに、
多視点で撮影された複数枚の画像データを所定のピント位置で合成するために、前記複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、前記合成の重みを決定する重み決定ステップを実行させるためのプログラム。
【請求項1】
多視点で撮影された複数枚の画像データを所定のピント位置で合成するために、前記複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、前記合成の重みを決定する重み決定手段を備えることを特徴とする画像処理装置。
【請求項2】
前記重み決定手段は、前記複数枚の画像データの画素ズレ量を用いて、前記画像データの周波数特性に含まれるエイリアシング成分を導出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記重み決定手段は、前記複数枚の画像データの画素ズレ量に応じて決まる抑制可能なエイリアシング数を用いて、前記合成の重みを決定することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
画素ズレ量に応じて決まる抑制可能なエイリアシング以外のエイリアシングを抑制するように、前記合成のための補間関数を決定する手段を備えることを特徴とする請求項1から3のいずれか1つに記載の画像処理装置。
【請求項5】
前記決定した合成の重み及び前記決定した補間関数を用いて、前記複数枚の画像データの合成を行う合成手段を備えることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
被写体を選択する選択手段を備え、
前記所定のピント位置は、前記選択手段による選択に基づいていることを特徴とする請求項1から5のいずれか1つに記載の画像処理装置。
【請求項7】
前記選択手段は、ユーザの選択に基づいて又は自動的に、被写体を選択することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
視差がついた複数枚の画像データを撮像する撮像手段と、
前記複数枚の画像データを所定のピント位置で合成するために、前記複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、前記合成の重みを決定する重み決定手段と
を備えることを特徴とする撮像装置。
【請求項9】
多視点で撮影された複数枚の画像データを所定のピント位置で合成するために、前記複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、前記合成の重みを決定する重み決定ステップを備えることを特徴とする画像処理方法。
【請求項10】
コンピュータに、
多視点で撮影された複数枚の画像データを所定のピント位置で合成するために、前記複数枚の画像データの周波数特性に含まれるエイリアシング成分が小さくなるように、前記合成の重みを決定する重み決定ステップを実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図10】
【図11】
【図12】
【図13】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図10】
【図11】
【図12】
【図13】
【図9】
【公開番号】特開2012−256177(P2012−256177A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2011−128466(P2011−128466)
【出願日】平成23年6月8日(2011.6.8)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願日】平成23年6月8日(2011.6.8)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]