以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。
また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。
同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは特に明示した場合および原理的に明らかにそうではないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
また、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。以下、本発明の実施例について図面を用いて説明する。
一般に、車載カメラ、ウェアラブルデバイス、スマートフォンなどの情報機器に搭載するデジタルカメラには薄型化と低コスト化が求められることが多い。例えば、レンズを用いることなく物体像を得ることで薄型化と低コスト化を実現する撮像方式が提案されている。そのような技術では、画像センサの前に特殊な格子パターンを貼り付け、その画像センサにて受光される射影パターンから像を現像するための逆問題を解くことにより、物体の像を得る撮像方式がある。この方式では、信号処理により逆問題を解く際の演算が複雑になり、処理負荷が高いために、情報機器のハードウェア要求仕様が高くなってしまう。
〈無限遠物体の撮影原理〉図1は、本発明の第一の実施例に係る撮像装置の構成例を示す図である。撮像装置101は、結像させるレンズを用いることなく、外界の物体の画像を取得するものであり、図1に示すように、撮像モジュール102、フリンジスキャン処理部106、画像処理部107およびコントローラ108から構成されている。図2に撮像モジュール102の一例を示す。
図2は、第一の実施例に係る撮像モジュールの構成を示す図である。撮像モジュール102は、画像センサ103、パターン基板104、撮影用パターン105から構成されている。パターン基板104は、画像センサ103の受光面に密着して固定されており、パターン基板104に撮影用パターン105が形成される。パターン基板104は、例えばガラスやプラスティックなどの可視光に対して透明な材料からなる。
撮影用パターン105は、外側に向かうほど中心からの半径に反比例して格子パターンの間隔、すなわちピッチが狭くなる同心円状の格子パターンからなる。撮影用パターン105は、例えば半導体プロセスに用いられるスパッタリング法などによってアルミニウム、クロムなどの金属を蒸着することによって形成される。金属が蒸着されたパターンと蒸着されていないパターンによって濃淡がつけられる。なお、撮影用パターン105の形成は、これに限定されるものでなく、例えばインクジェットプリンタなどによる印刷などによって濃淡をつけて形成してもよい。さらに、ここでは可視光を例に説明したが、例えば遠赤外線の撮影を行う際には、パターン基板104は例えばゲルマニウム、シリコン、カルコゲナイドなどの遠赤外線に対して透明な材料とするなど、撮影対象となる波長に対して透明な材料を用い、撮影用パターン105は金属等の遮断する材料を用いればよい。
また、パターン基板104と撮影用パターン105とは、画像センサ103に入射する光の強度を変調する変調器であるともいえる。なお、ここでは撮像モジュール102を実現するために、撮影用パターン105をパターン基板104に形成する方法について述べたが、図3に示すような構成によっても実現できる。
図3は、第一の実施例に係る別の撮像モジュールの構成例を示す図である。図3に示す構成例では、撮影用パターン105を薄膜に形成し、支持部材301により保持するようにしている。
なお、この装置において、撮影画角はパターン基板104の厚さによって変更可能である。よって、例えばパターン基板104が図3の構成であり支持部材301の長さを変更可能な機能を有していれば、撮影時に画角を変更して撮影することも可能となる。
画像センサ103の表面には、受光素子である画素103aが格子状に規則的に配置されている。この画像センサ103は、画素103aが受光した光画像を電気信号である画像信号に変換する。
撮影用パターン105を透過する光は、そのパターンによって光の強度が変調され、透過した光は画像センサ103にて受光される。画像センサ103は、例えばCCD(Charge Coupled Device)イメージセンサまたはCMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどからなる。
画像センサ103から出力された画像信号は、フリンジスキャン処理部106によってノイズ除去等の処理がなされ、画像処理部107によって画像処理されたデータがコントローラ108に出力される。コントローラ108は、出力をホストコンピュータや外部記録媒体に出力する場合には、USB(Universal Serial Bus)等のインターフェイスに適合するようデータ形式を変換し出力する。
続いて、撮像装置101における撮影原理について説明する。まず、撮影用パターン105は、中心からの半径に対して反比例してピッチが細かくなる同心円状のパターンであり、同心円の中心である基準座標からの半径r、係数βを用いて、
と定義することができる。撮影用パターン105は、この式に比例して透過率変調されているものとする。なお、以降、簡単化のためにx軸方向についてのみ数式で説明するが、同様にy軸方向について考慮することで2次元に展開して考えることが可能である。
このような縞を持つプレートは、ガボールゾーンプレート(GZP:Gabor Zone Plate)やフレネルゾーンプレート(FZP:Fresnel Zone Plate)と呼ばれる。
図4は、第一の実施例に係る撮影用パターンおよび現像用パターンの例を示す図である。具体的には、図4は、上式(1)で表されるガボールゾーンプレートの例である。
図5は、第一の実施例に係る撮影用パターンおよび現像用パターンの別の例を示す図である。具体的には、上式(1)を閾値1で2値化した結果得られるパターンを用いたフレネルゾーンプレートの例である。
撮影用パターン105が形成された厚さdのパターン基板104に、図6に示すようにx軸方向に角度θ0で平行光が入射したとする。パターン基板104中の屈折角をθとして幾何光学的には、表面の格子の透過率が乗じられた光が、k=d・tanθだけずれて画像センサ103に入射する。このとき、
のような強度分布を持つ投影像が画像センサ103上で検出される。なお、Φは上式(1)の透過率分布の初期位相を示す。この撮影用パターン105の投影像の例を図7に示す。
図7は、撮影用パターンの投影像の例を示す図である。図7に示すように、撮影用パターン105を用いて図6のような平行光の入射があった場合に、画像センサ103上には、上式(2)のようにkだけシフトして投影される。これが撮像モジュール102からの出力となる。
次に、画像処理部107においては、現像処理が行われるが、そのうち相関現像方式とモアレ現像方式による現像処理について説明する。
相関現像方式では、画像処理部107が、図7に示した撮影用パターン105の投影像と、図8に示された現像用パターン801との相互相関関数を演算することにより、図9に示すシフト量kの輝点を得ることができる。なお、一般的に、相互相関演算を2次元畳込み演算で行うと演算量が大きくなる。
図8は、現像用パターンの例を示す図である。具体的には、現像用パターン801は、図4に示したガボールゾーンプレートや図5に示したFZP(フレネルゾーンプレート)と同様のパターンを有する。すなわち、本実施形態では、現像用パターン801は、物理的に実体を有する必要はなく、画像処理において用いる情報として存在すればよい。
図9は、相関現像方式による現像画像の例を示す図である。相関現像方式により現像すると、上述のとおり、ある輝点がkだけシフトした現像画像を得ることができる。
ここで、相互相関演算を2次元畳込み演算で行わず、フーリエ変換を用いて演算する例について、数式を用いて原理を説明する。まず、現像用パターン801は、撮影用パターン105と同様にガボールゾーンプレートやフレネルゾーンプレートを用いるため、現像用パターン801は初期位相Φを用いて、
と表せる。なお、現像用パターン801は画像処理内で使用するため、上式(1)のように1でオフセットさせる必要はなく、負の値を有していても問題ない。
上式(2)、上式(3)のフーリエ変換はそれぞれ、
のようになる。ここで、Fはフーリエ変換の演算を表し、uはx方向の周波数座標、括弧を伴うδはデルタ関数である。この式で重要なことはフーリエ変換後の式もまたフレネルゾーンプレートやガボールゾーンプレートとなっている点である。よって、この数式に基づいてフーリエ変換後の現像用パターンを直接的に生成してもよい。これにより演算量を低減可能である。
次に、上式(4)と上式(5)を乗算すると、
となる。この指数関数で表された項exp(−iku)が信号成分であり、この項をフーリエ変換すると、
のように変換され、元のx軸においてkの位置に輝点を得ることができる。この輝点が無限遠の光束を示しており、図1の撮像装置101により得られる撮影像にほかならない。
なお、このような相関現像方式では、パターンの自己相関関数が単一のピークを有するものであれば、フレネルゾーンプレートやガボールゾーンプレートに限定されないパターン、例えばランダムなパターンで実現してもよい。
次に、モアレ現像方式では、図7に示した撮影用パターン105の投影像と図8に示した現像用パターン801とを乗算することにより、図10に示すようなモアレ縞を生成し、これをフーリエ変換することにより図11に示すようなシフト量が(kβ/π)の輝点を得ることができる。
図10は、モアレ現像方式によるモアレ縞の例を示す図である。具体的には、図10に示すように、図7に示した撮影用パターン105の投影像と、図8に示した現像用パターン801と、の乗算の結果がモアレ縞として得られる。
このモアレ縞を数式で示すと、
となる。この展開式の第3項が信号成分であり、2つのパターンのずれの方向にまっすぐな等間隔の縞模様を重なり合った領域一面に作ることがわかる。このような縞と縞の重ね合わせによって相対的に低い空間周波数で生じる縞をモアレ縞と呼ぶ。
この第3項の2次元フーリエ変換は、
のようになる。ここで、Fはフーリエ変換の演算を表し、uはx方向の周波数座標、括弧を伴うδはデルタ関数である。この結果から、モアレ縞の空間周波数スペクトルにおいて、空間周波数のピークが(u=±kβ/π)の位置に生じることがわかる。この輝点が無限遠の光束を示しており、図1の撮像装置101により得られる撮影像にほかならない。
図11は、モアレ現像方式による現像画像の例を示す図である。図11に示す現像画像では、u=±kβ/πの位置に輝点が得られている。
なお、モアレ現像方式ではパターンのシフトによって得られるモアレ縞が単一の周波数を有するものであれば、フレネルゾーンプレートやガボールゾーンプレートに限定されないパターン、例えば楕円状のパターンで実現してもよい。
〈ノイズキャンセル〉上式(6)から上式(7)への変換、また上式(8)から上式(9)への変換において信号成分に着目して話を進めたが、実際には信号成分以外の項がノイズとして現像を阻害する。そこで、フリンジスキャンに基づくノイズキャンセルが効果的である。
フリンジスキャンのためには、撮影用パターン105として初期位相Φの異なる複数のパターンを使用する必要がある。図12に複数のパターンの例を示す。
図12は、フリンジスキャンにおける初期位相の撮影用パターンの組み合わせの例を示す図である。ここでは、(Φ=0)、(Φ=π/2)、(Φ=π)、(Φ=3π/2)となる4位相、すなわちπ/2ずつずれた位相を用いて撮影したセンサ画像を以下式に従って演算すると複素数のセンサ画像(複素センサ画像)が得られる。これを式で表すと、
と表せる。現像用パターン801はフリンジスキャン処理内で使用するため、複素数であっても問題ない。
モアレ現像方式において、上式(10)と上式(11)を乗算すると、
となる。この指数関数で表された項exp(2iβkx)が信号成分であり、上式(8)のような不要な項が発生しないため、ノイズがキャンセルされていることが解る。
同様に、相関現像方式についても確認すると、上式(10)、上式(11)のフーリエ変換はそれぞれ、
のようになる。次に、上式(13)と上式(14)を乗算すると、
となる。この指数関数で表された項exp(−iku)が信号成分であり、上式(8)のような不要な項が発生しないため、ノイズがキャンセルされていることが解る。
なお、上記の例では、(Φ=0)、(Φ=π/2)、(Φ=π)、(Φ=3π/2)となるπ/2ずつずれた4位相の複数の現像用パターンを使用して説明したが、Φは0〜2πの間の角度を等分するように設定すればよく、この位相に限定するものではない。
以上の複数パターンによる撮影を実現する方法として、フリンジスキャンの処理において時分割でパターンを切り替える方法と、空間分割でパターンを切り替える方法が考えられる。
時分割フリンジスキャンを実現するには、例えば電気的に図12に示す複数の初期位相を切り替えて表示することが可能な液晶表示素子などを、図1における撮影用パターン105として使用すればよい。この液晶表示素子の切替タイミングと画像センサ103のシャッタタイミングを同期して制御し、4枚の画像を時系列に取得後にフリンジスキャン処理部106においてフリンジスキャン演算を実施する。
これに対して、空間分割フリンジスキャンを実現するには、図13に示すように複数の初期位相を有する撮影用パターン105を使用する必要がある。全体として1枚の画像を取得後、フリンジスキャン処理部106においてそれぞれの初期位相のパターンに対応して当該画像を4枚に分割し、フリンジスキャン演算を実施する。
図13は、空間分割フリンジスキャンの撮影用パターンの例を示す図である。空間分割フリンジスキャンの撮影用パターン1300は、撮影用パターン105の応用例であるが、XY平面(画像センサ103と平行な面)上で空間的に分割して、複数の初期位相((Φ=0)、(Φ=π/2)、(Φ=π)、(Φ=3π/2)となる4位相)を含む撮影用パターンとしたものである。続いて、フリンジスキャン処理部106でのフリンジスキャン演算について説明する。
図14は、フリンジスキャンの処理フローの例を示す図である。まず、フリンジスキャン処理部106は、画像センサ103から出力される複数の撮影パターンによるセンサ画像を取得するが、空間分割フリンジスキャンを採用する場合には取得したセンサ画像を個別の撮影パターンに応じて分割する必要があるため、所定の領域に分割して複数のセンサ画像とする(ステップ1401)。なお、時分割フリンジスキャンを採用する場合には、時間の経過に応じて異なる撮影パターンによるセンサ画像を複数得るため、分割は実施しない。
次に、フリンジスキャン処理部106は、出力用の複素センサ画像を初期化する(ステップ1402)。
そして、フリンジスキャン処理部106は、一つ目の初期位相Φのセンサ画像を取得する(ステップ1403)。
そして、フリンジスキャン処理部106は、その初期位相Φに応じたexp(iΦ)を乗算する(ステップ1404)。
そして、フリンジスキャン処理部106は、乗算結果を、複素センサ画像に加算する(ステップ1405)。
フリンジスキャン処理部106は、このステップ1403からステップ1405までの処理を、使用した初期位相数だけ繰り返す(ステップ1406)。例えば、図12に示したような4位相を用いたフリンジスキャンでは、フリンジスキャン処理部106は、初期位相のそれぞれ(Φ=0)、(π/2)、(π)、(3π/2)の計4回繰り返す。
そして、フリンジスキャン処理部106は、複素センサ画像を出力する(ステップ1407)。以上のステップ1401乃至ステップ1407のフリンジスキャン処理部106による処理は、上式(10)に相当する処理である。次に、画像処理部107での画像処理について説明する。
図15は、相関現像方式による現像処理の処理フローの例を示す図である。まず、画像処理部107は、フリンジスキャン処理部106から出力される複素センサ画像を取得し、複素センサ画像に対して2次元高速フーリエ変換(FFT:Fast Fourier Transform)演算を実施する(ステップ1501)。
次に、画像処理部107は、現像処理に使用する予め定められた現像用パターン801を生成し、2次元FFT演算した複素センサ画像に乗算する(ステップ1502)。
そして、画像処理部107は、逆2次元FFT演算を行う(ステップ1503)。なお、この演算結果は複素数となる。
そのため、画像処理部107は、逆2次元FFT演算の演算結果から絶対値化もしくは実部を取り出して撮影対象の像を実数化して現像する(ステップ1504)。
その後、画像処理部107は、得られた現像画像に対してコントラスト強調処理を行う(ステップ1505)。さらに、画像処理部107は、カラーバランス調整(ステップ1506)等を実施し、撮影画像として出力する。以上が、相関現像方式による現像処理である。
図16は、モアレ現像方式による現像処理の処理フローの例を示す図である。まず、画像処理部107は、フリンジスキャン処理部106から出力される複素センサ画像を取得し、現像処理に使用する予め定められた現像用パターン801を生成し、複素センサ画像に乗算する(ステップ1601)。
そして、画像処理部107は、2次元FFT演算により周波数スペクトルを求める(ステップ1602)。
そして、画像処理部107は、ステップ1602にて求めた周波数スペクトルのうち必要な周波数領域のデータを切り出す(ステップ1603)。
以降のステップ1504の実数化処理、ステップ1505のコントラスト強調処理、ステップ1506のカラーバランス調整処理は、図15に示したステップ1504乃至ステップ1506の処理と同様であるため、説明を割愛する。
〈有限距離物体の撮影原理〉次に、これまで述べた被写体が十分に遠い場合(無限遠の場合)における撮影用パターン105の画像センサ103への射影の様子を図17に示す。
図17は、物体が無限距離にある場合の撮影用パターンの投影例を示す図である。遠方の物体を構成する点1701からの球面波は、十分に長い距離を伝搬する間に平面波となり撮影用パターン105を照射し、その投影像1702が画像センサ103に投影される場合、投影像は撮影用パターン105とほぼ同じ形状である。その結果、投影像1702に対して、現像用パターンを用いて現像処理を行うことにより、単一の輝点を得ることが可能である。これに比して、有限距離の物体に対する撮像について説明する。
図18は、物体が有限距離にある場合の撮影用パターンの拡大投影例を示す図である。撮像する物体が有限距離にある場合には、撮影用パターン105の画像センサ103への射影が撮影用パターン105よりも拡大される。物体を構成する点1801からの球面波が撮影用パターン105を照射し、その投影像1802が画像センサ103に投影される場合、投影像はほぼ一様に拡大される。なお、この拡大率αは、撮影用パターン105から点1801までの距離fを用いて、
のように算出できる。このため、有限距離の物体に対して、平行光に対して設計された現像用パターンをそのまま用いて現像処理したのでは、単一の輝点を得ることができない。
そこで、一様に拡大された撮影用パターン105の投影像に合わせて、現像用パターン801を拡大させたならば、拡大された投影像1802に対して再び、単一の輝点を得ることができる。このためには、現像用パターン801の係数βを、β/α2とすることで補正が可能である。これにより、必ずしも無限遠でない距離の点1801からの光を選択的に再生することができる。これによって、任意の位置に焦点を合わせて撮影を行うことができる。すなわち、焦点を被写体に合わせて撮影を行う場合に、現像用パターン801の拡大倍率を決定すればよい。
さらに、本構成によれば、撮影後に任意の距離にフォーカスを合わせることも可能となる。この場合の構成を図19に示す。
図19は、本発明の第二の実施例に係る撮像装置の構成を示す図である。第二の実施例に係る撮像装置は、基本的に第一の実施例に係る撮像装置と同様の構成を備える。ただし、第一の実施例と異なるのは、フォーカス設定部1901の存在である。フォーカス設定部1901は、撮像装置101に備え付けられたつまみや、スマートフォンのGUI(Graphical User Interface)などによってフォーカス距離の設定を受け付け、フォーカス距離情報を画像処理部107に出力する。
さらに、このように撮影後のフォーカス調整が可能ということは、奥行情報を有しているということであり、オートフォーカスや測距といった様々な機能を画像処理部107において実現することが可能になる。
このようなフォーカス設定をはじめとする機能を実現する上では、現像用パターン801の係数βを自由に変更することが必要となるが、本実施例で説明したフリンジスキャン処理部106における処理のようにフリンジスキャン演算を行うことにより、現像用パターン801を用いた処理を独立して行うことが可能となり、処理を簡易化することが可能となる。
〈空間分割フリンジスキャンの問題:被写体距離〉図18で説明したように、撮像する物体が有限距離にある場合には、撮影用パターン105の画像センサ103への射影が撮影用パターン105より拡大される。これは、空間分割フリンジスキャンを使用する際に問題となりうる。
図20は、点光源と撮像装置の位置関係の例を示す図である。図20のように、撮像する物体が遠い距離fにある場合(点光源2001)と、近い距離f´(点光源2001´)にある場合と、を考える。
図21は、点光源の距離別のセンサ画像の例を示す図である。図21に示すように、撮像する物体からの光が空間分割フリンジスキャンの撮影用パターン105に照射され、その影が画像センサ103へ投影された際に投影される像は、撮像する物体と撮影パターンとの間の距離fの場合と、距離f´の場合とに応じて変化する。空間分割フリンジスキャンでは、フリンジスキャン処理部106においてそれぞれの初期位相のパターンに対応して4枚に分割する必要があるが、各象限のパターンの中心が被写体との距離fやf´に応じて変化している。例えば、第一象限1302の同心円の中心は、距離f´の場合の第一象限2102においては、右上にずれた状態となる。このように、各象限を常に同じ場所で分割しているとずれが発生し、フリンジスキャンの効果が減じられることになる。
本問題を解決するには、式16の拡大率αを用いて画像補正を行った後に、各象限ごとの4枚にデータを分割すればよい。図22、図23のそれぞれに、図21のセンサ画像の中心を原点に配置した際の各パターンの中心を×でそれぞれ示す。
図22は、点光源が無限遠にある場合のパターン中心座標の例を示す図である。図22においては、第一象限のパターン中心2201の座標は、(x0,y0)で表されている。
図23は、点光源が有限距離にある場合のパターン中心座標の例を示す図である。図23においては、第一象限のパターン中心2301の座標は、(x1,y1)で表されている。
図23のパターン中心2301の座標(x1,y1)は、図22のパターン中心2201の座標(x0,y0)から拡大率αで拡大されているので、座標(x1,y1)を座標(x0,y0)に変換するには、
のようにセンサ面上の移動量を特定する行列Mを使用して座標変換すればよい。変換した結果得られるセンサ画像を図24に示す。
図24は、点光源が有限距離にある場合のセンサ画像の補正例を示す図である。図24に示すように、画像は縮小され、常に同じ位置がパターンの中心となる画像になるため、この例であれば各象限で画像を4分割すれば、各象限のセンサ画像を得られる。なお、画像を縮小することとなるため、得られるセンサ画像は補正前の画像サイズよりも小さくなる。この場合、余白領域2401には、0などの定数を補完するか、もしくはNAN値として使用しないようにしてもよい。
このように、式(17)に示す行列Mを用いて同心円の中心を基準に座標変換することにより、点光源が有限距離にある場合、すなわち被写体距離が有限距離である場合に生じる射影の拡大問題を解消できる。
〈空間分割フリンジスキャンの問題:パターン固定精度〉しかし、被写体距離によるずれを補正しただけでは不十分な場合がある。それは、撮像装置101を組み立てる際の精度や、撮影用パターン105の作製精度が十分でなく、ずれが生じている場合である。撮影用パターン105がずれて取り付けられた場合のセンサ画像の例を図25に示す。
図25は、撮影用パターンが回転している場合のセンサ画像の例を示す図である。この例では、撮影用パターン105は、原点を中心に角度−θだけ回転して取り付けられた場合のセンサ画像の例が示されている。
これを補正する方法について説明する。まず、基準となるパターン(例えば、撮影用パターン105を被写体距離から求めた拡大率αで拡大した画像)との相互相関演算により各パターンの中心座標2501〜2504を算出する。次に、中心座標2501〜2504の4点の重心Oの座標を算出し、図26に示すように重心Oが原点と重なるように配置する。
図26は、撮影用パターンが回転している場合のパターン中心座標の例を示す図である。この時、図26の第一象限のパターン中心2601の座標(x1,y1)を、図22のパターン中心2201の座標(x0,y0)に変換するには、
のようにセンサ面上の回転の移動量を特定する行列Hを使用して座標変換すればよい。なお、式(18)において行列Mを使用しているのは、使用する点光源2001の距離fに応じて画像を補正するためである。この結果、図25の画像は角度θ回転することで補正され、常に同じパターン中心となる画像になるため、図25、図26の例であれば各象限で画像を分割すればよい。
なお、式(18)、式(19)に示した行列Hは、一般的にアフィン行列と呼ばれる2×2の要素を持つ行列であり、4つの座標の関係(この例では各パターンの中心座標2201〜2204と中心座標2501〜2504)から要素を算出することが可能である。アフィン行列を算出するのに用いる点は正しくは2点であるが、4点の情報を用いて最小二乗法を適用することにより、より精度の高いアフィン行列を得ることが可能である。
次に、撮像装置を組み立てる際の精度が低い他の例について説明する。例えば、図27のように、撮影用パターン105が厚み方向に斜めにずれて配置された場合を考える。この状態で、点光源2001を撮影した際のセンサ画像の例を図28に示す。
図28は、撮影用パターンが厚み方向に傾いている状態のセンサ画像の例を示す図である。この場合には、図28のとおり、センサ画像は台形歪みを有する。台形歪みについては、式(18)のようなアフィン行列では補正しきれないが、ホモグラフィ行列を使用することでより容易に精度高く台形歪みを補正することが可能である。
これを補正する方法について説明する。まず、基準となるパターン(例えば、撮影用パターン105を被写体距離から求めた拡大率αで拡大した画像)との相互相関演算により各パターンの中心座標2801〜2804を算出する。次に、中心座標2801〜2804の4点の重心Oの座標を算出し、図29に示すように重心Oが原点と重なるように配置する。
図29は、撮影用パターンが厚み方向に傾いている状態のパターン中心座標の例を示す図である。この時、図29の第一象限のパターン中心2801の座標(x1,y1)を、図22のパターン中心2201の座標(x0,y0)に変換するには、
のようにセンサ面上の移動量を特定する行列Hを使用して座標変換すればよい。この行列Hは一般的にホモグラフィ行列と呼ばれる3×3の要素を持つ行列であり、4つの座標の関係(この例では各パターンの中心座標2201〜2204と中心座標2801〜2804)から要素を算出することが可能である。なお、行列Mを使用しているのは、使用する点光源2001´の距離f´に応じて画像を補正するためである。結果、図28の画像は台形歪み(アオリ)および回転が補正され、常に同じパターン中心となる画像になるため、この例であれば各象限で画像を分割すればよい。
以上の歪み補正を実現する構成および処理について、図30〜図33を用いて説明する。図30に、歪み補正を実現する構成を示す。
図30は、本発明の第三の実施例に係る撮像装置の構成例を示す図である。図30に示す撮像装置は、図19に示す第二の実施例に係る撮像装置と基本的に同一であるが、一部異なる。その相違を中心に、以下説明する。
第三の実施例に係る撮像装置は、歪み補正用の行列H、行列Mを含む補正用パラメータを測定・格納するパラメータ格納部としての補正値格納部3001と、補正用パラメータを使用して歪み補正を実施するフリンジスキャン処理部3002を備える。なお、図31に示すように、補正値格納部3001は、撮像モジュール102に含まれるものであってもよい。その場合、補正値格納部3001は、補正値、すなわち補正のためのパラメータを、API(Application Programming Interface)を介した要求に応じて出力するパラメータ出力部として動作する。
図31は、本発明の第三の実施例の変形例に係る撮像装置の構成例を示す図である。補正用パラメータは、撮像モジュール102の取り付けばらつきによって個体差があることを鑑みると、撮像モジュール102が撮像装置101から分離している構成においては、図31のように撮像モジュール102に補正値格納部3001が付随する形態の方が、汎用性がある。いずれの実施例であっても、補正値の算出方法(キャリブレーション方法)は、共通する。まず、補正値の算出方法(キャリブレーション方法)について述べる。
図32は、キャリブレーションの処理フローの例を示す図である。まず、キャリブレーションの実施者は、図20のように、撮像モジュール102の光軸上にある点光源2001を撮像モジュール102に向けて照射する(ステップ3201)。この点光源2001は、LED(Light Emitting Diode)光源や太陽など、無限遠または被写体までの距離が判っている光源であれば何でもよい。
そして、キャリブレーションの実施者は、撮像モジュール102にセンサ画像を取得させる(ステップ3202)。
そして、フリンジスキャン処理部3002は、FZA(Fresnel Zone Aperture)の中心座標を算出する(ステップ3203)。具体的には、フリンジスキャン処理部3002は、基準となるパターン(例えば、撮影用パターン105を被写体距離から求めた拡大率αで拡大した画像)との相互相関演算により各パターンの中心座標(例:中心座標2801〜2804)を算出する。
そして、フリンジスキャン処理部3002は、この中心座標群から重心Oを算出する(ステップ3204)。そして、フリンジスキャン処理部3002は、重心Oを原点に配置する。
そして、フリンジスキャン処理部3002は、補正行列Hを算出する(ステップ3205)。具体的には、フリンジスキャン処理部3002は、4つの中心座標のずれ方の関係(例:中心座標2201〜2204と、中心座標2801〜2804と、の回転関係や台形ゆがみの関係)から補正行列Hとなるホモグラフィ行列Hの3×3の要素を算出する。
そして、フリンジスキャン処理部3002は、補正用パラメータとして補正行列Hと重心Oの位置とを、補正値格納部3001に格納する(ステップ3206)。
以上が、キャリブレーションの処理である。キャリブレーションの処理によれば、センサ画像を補正するための行列Hと重心Oの位置とを特定し、パラメータとして補正値格納部3001に格納することができる。
つづいて、フリンジスキャン処理部3002が歪み補正処理を実施する。
図33は、センサ画像の歪み補正処理フローの例を示す図である。まず、フリンジスキャン処理部3002は、補正値格納部3001から重心Oの位置を読み出し、センサ画像の重心Oを原点となる座標に移動させる(ステップ3301)。
次に、フリンジスキャン処理部3002は、行列Mによる補正を行う(ステップ3302)。具体的には、フリンジスキャン処理部3002は、フォーカス設定部1901からフォーカスを合わせる距離f´の情報を取得し、距離f´に応じた行列Mを用いて補正を実施する。
そして、フリンジスキャン処理部3002は、行列Hによる補正を行う(ステップ3303)。具体的には、フリンジスキャン処理部3002は、補正値格納部3001から取得した行列Hによる補正を実施する。
その後は、図14に示したフリンジスキャンの処理フローのステップ1401〜ステップ1407の処理と同様の処理を、行列Hによる補正を実施したセンサ画像に対して行う。
なお、この例では行列Hと重心Oの位置の移動とを分けて処理するものとしたが、式(20)のように、3×3行列のホモグラフィ行列を用いる場合には、3×3行列に重心Oの移動の補正量を含めることが可能であるため、必ずしも分けて処理するものでなくともよい。
また、キャリブレーションは事前に実施することを前提に説明したが、点光源や太陽を検出した際に撮影しながら補正用パラメータを再計算し、補正値格納部3001の情報を更新するようにしてもよい。すなわち、事前実施に限られず、使用環境下において随時キャリブレーションを行うようにしてもよい。
以上が、第三の実施例に係る撮像装置である。第三の実施例に係る撮像装置によれば、撮像装置を組み立てる際の誤差や、撮影用パターンの作製時の誤差を補正し、且つフォーカス調整にかかる歪みを補正することで高精度な空間分割フリンジスキャンを実施することが可能となる。
第三の実施例の構成においては、センサ画像のフリンジスキャン前に歪みを補正していた(フリンジスキャン処理部3002において、ステップ3301〜3303の処理を、ステップ1401〜1407の処理の前に行っていた)が、センサ画像を無線や有線により他の装置へ伝送する場合には、情報の欠落防止を考慮して伝送する情報は無加工であることが望ましい場合がある。すなわち、歪み補正処理はフリンジスキャン後に行うのが好ましい場合がある。センサ画像のフリンジスキャン後に歪み補正する方法について、図34、図35を用いて説明する。
図34は、本発明の第四の実施例に係る撮像装置の構成例を示す図である。第四の実施例に係る撮像装置は、第三の実施例に係る撮像装置と略同一であるが、一部において相違がある。第四の実施例に係る撮像装置が第三の実施例に係る撮像装置と異なるのは、補正値格納部3001の情報を画像処理部3401が読み出して利用する点である。すなわち、第四の実施例に係る撮像装置は、センサ画像の歪みを補正するのではなく、センサ画像と対応する歪みを現像用パターン801の方に付加する。第三の実施例では座標(x1,y1)を、座標(x0,y0)に変換するための行列Hを算出したが、本実施例では、
のように、発想が逆の変換となる座標(x0,y0)を座標(x1,y1)に変換するための行列H’、行列M’を算出する。
この場合の現像処理の流れは、上述の図15の相関現像方式による現像処理の処理フローと同等であるが、一部相違する。相関現像方式による現像処理のステップ1502における現像用パターン801の生成について、第四の実施例では、図35に示す処理の流れで実施する。
図35は、現像用パターンの歪み補正処理フローの例を示す図である。現像用パターンの歪み補正処理は、相関現像方式による現像処理のステップ1502において開始される。
なお、現像用パターンの歪み補正処理フローの実施前に、画像処理部3401は、図32に示したキャリブレーションの処理フローの例と同様に、式(21)の行列H’を予め歪み付加用の行列として算出しておく。具体的には、画像処理部3401は、4つの座標の関係(例:中心座標2201〜2204と、中心座標2801〜2804)から補正行列H’となるホモグラフィ行列H’の3×3の要素を予め算出しておく。
そして、現像時、すなわち現像用パターンの歪み補正処理においては、画像処理部3401は、図20のような空間分割フリンジスキャン用の同心円のパターン画像を生成する(ステップ3501)。
そして、画像処理部3401は、重心Oを移動させる(ステップ3502)。具体的には、画像処理部3401は、補正値格納部3001から重心Oの位置を読み出し、空間分割フリンジスキャン用の同心円のパターン画像の中心を、原点とする座標から重心Oの位置分移動させる。
そして、画像処理部3401は、補正値格納部3001から取得した行列H’による補正を実施する(ステップ3503)。具体的には、補正値格納部3001から読み出した行列H’を用いて、空間分割フリンジスキャン用の同心円のパターン画像を変換する。
そして、画像処理部3401は、補正値格納部3001から取得した行列M’による補正を実施する(ステップ3504)。具体的には、画像処理部3401は、フォーカス設定部1901からフォーカスを合わせる距離f´を取得して、距離f´に応じた行列M’の情報を補正値格納部3001から取得し、補正を実施する。
そして、画像処理部3401は、パターン画像を4つに分割する(ステップ3505)。これ以降の処理は、2次元FFT演算した複素センサ画像に乗算する図15の現像処理と同一である。
なお、本方法では現像用パターン801を歪ませることから、モアレ現像方式では点光源現像時のモアレが単一周波数にならず像がボケることになる。よって、モアレ現像方式よりも相関現像方式の方が、親和性が高く望ましいといえる。
以上が、第四の実施例に係る撮像装置である。第四の実施例に係る方法・構成によれば、撮像装置を組み立てる際の誤差や、撮影用パターンの作製時の誤差を補正し、且つフォーカス調整にかかる歪みを補正することで高精度な空間分割フリンジスキャンを実施することが可能となる。
第三および第四の実施例では、撮像装置を組み立てる際の誤差や、撮影用パターンの作製時の誤差を補正し、且つフォーカス調整にかかる歪みを補正する方法について説明した。しかし、撮影用パターンや画像センサの欠陥、汚れ、ゴミに対する補正は考慮されていなかった。第五の実施例では、この欠陥保護の方法について図36乃至40を用いて説明する。この欠陥の問題点についてまず、図37を用いて明らかにする。
図37は、撮影用パターンに汚れ等が付着している場合の画像の例を示す図である。時分割フリンジスキャンであれば、4つのパターン全ての同じ位置に欠陥が現れるため、センサ画像としては一箇所に欠陥が記録される。空間分割フリンジスキャンの場合には、欠陥3801のようにパターン3803の象限にのみ欠陥が存在することになるため、他のパターンと整合が取れない。図37のパターン3802の象限とパターン3803の象限とについて、点線に沿って輝度分布をマッピングすると、それぞれ図38、図39に示すグラフを得られる。
図38は、理想的なセンサ画像の輝度分布例を示す図である。すなわち、パターン3802に示されるように、同心円パターンのマスク部分について輝度が小さくなる信号成分を得られる。
図39は、欠陥のあるセンサ画像の輝度分布例を示す図である。すなわち、パターン3803に示されるように、同心円パターンのマスク部分について輝度が小さくなる信号成分を得られるが、欠陥3801の一部により輝度がマスク部分とは無関係に小さくなる。なお、当然に、欠陥3801の度合いに応じて、輝度の減少度合いは異なる。すなわち、欠陥が軽微なものであれば輝度の減少度合いは少なく、欠陥が甚大なものであれば輝度の減少度合いは多くなる。
図37に示す状態では、欠陥部分のフリンジスキャンが正しく実施されず、その誤差が画像全体に波及することになり画質が低下する(有意な画像が得られなくなる)。これは、欠陥領域の輝度差が信号成分の輝度差よりも一般的に大きく、影響度が大きいためである。この欠陥位置を特定し、現像処理から除外する方が欠陥の影響が小さくなり、S/N比が悪くなる程度の影響に抑えることができる。第五の実施例の構成について、図36に示す。
図36は、本発明の第五の実施例に係る撮像装置の構成例を示す図である。第五の実施例に係る撮像装置は、基本的に第四の実施例に係る撮像装置と同様であるが、一部に相違がある。
第五の実施例に係る撮像装置が、第四の実施例に係る撮像装置と異なる点は、欠陥検出部3601を備える点と、画像処理部3602が欠陥保護処理を実施する点である。欠陥検出部3601は、フリンジスキャン処理部106からセンサ画像を取得し、図38、図39に示すように、欠陥検出閾値よりも輝度が低い領域を検出すると、当該領域を特定する欠陥信号を出力するとともに、補正値格納部3001に格納する。すなわち、欠陥信号が出力された位置を特定する情報が補正値格納部3001に格納される。そのような情報には、例えば欠陥のあるセンサ上の座標を逐一指定する情報に限られず、センサ上の矩形領域を特定する情報や、欠陥部位が含まれる最小円の中心と半径であってもよい。
欠陥検出部3601による最も簡便な欠陥検出方法は上述のとおりであるが、信号成分の振幅が大きい時には欠陥と信号の判別が困難になることがある。そこで、欠陥検出部3601は、フリンジスキャンにおけるΦ=0、πのセンサ画像の組み合わせ、もしくはΦ=π/2、3π/2のセンサ画像の組み合わせのように、位相がπずれた関係、すなわち同心円の白黒が反転した状態にある2つのセンサ画像を加算することで、欠陥を判別するようにしてもよい。この処理は、図14のフリンジスキャンの処理のステップ1401とステップ1402の間で行われるようにするのが望ましい。図38、図39に示した信号に対してこの加算を実施した結果を、図40に示す。
図40は、反転パターン合成による欠陥検出の例を示す図である。図40に示すように、正常な信号成分が相殺によりキャンセルされて輝度変動成分のみが残留することになる。この応答に対して、欠陥検出部3601は、平均値の±定数の範囲となる欠陥検出閾値を用いて、残留した輝度が欠陥検出閾値を下回るもしくは上回る領域について、欠陥信号を出力し補正値格納部3001に記憶させる。この方法によれば、被写体によらず安定した欠陥検出が可能となる。この欠陥検出を、すべてのセンサ画像のそれぞれにおいて行うようにしてもよいし、反転パターンをペアとして、ペアごとに行うようにしてもよい。
そして、画像処理部3602において、欠陥検出部3601の出力である欠陥信号を用いて、現像用パターンの欠陥信号に該当する箇所をNAN値として使用しない処理、すなわちデータのマスク処理を施す。
なお、欠陥信号をセンサ画像ではなく画像処理部3602の現像用パターンに対して適用する場合には、第四の実施例のように、行列H’、行列M’を使用して欠陥信号に該当する位置を補正することが望ましい。
また、欠陥信号を画像処理部3602ではなく、第三の実施例の図30のフリンジスキャン処理部3002に入力し、センサ画像の各パターン全ての同一箇所(パターン中心と欠陥信号の相対位置が同じとなる箇所)をNAN値として使用しない処理を施すようにしてもよい。
以上、第五の実施例について説明した。第五の実施例に係る撮像装置によれば、撮像装置を組み立てる際の誤差や、撮影用パターンの作製時の誤差を補正し、且つフォーカス調整にかかる歪みを補正するだけでなく、撮影用パターンや画像センサの欠陥、汚れ、ゴミに対する補正も実施することでより高精度な空間分割フリンジスキャンを実施することが可能となる。
なお、本発明は上記の実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
以上、本発明について、実施例を中心に説明した。