以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。
また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。
同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは特に明示した場合および原理的に明らかにそうではないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
また、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。以下、本発明の実施例について図面を用いて説明する。
一般に、車載カメラ、ウェアラブルデバイス、スマートフォンなどの情報機器に搭載するデジタルカメラには薄型化と低コスト化が求められることが多い。例えば、レンズを用いることなく物体像を得ることで薄型化と低コスト化を実現する撮像方式が提案されている。そのような技術では、画像センサの前に特殊な格子パターンを貼り付け、その画像センサにて受光される射影パターンから像を現像するための逆問題を解くことにより、物体の像を得る撮像方式がある。この方式では、信号処理により逆問題を解く際の演算が複雑になり、処理負荷が高いために、情報機器のハードウェア要求仕様が高くなってしまう。本発明では、処理負荷を低く抑えつつ、薄型化を可能とすることをねらいとしている。
〈無限遠物体の撮影原理〉図1は、本発明の実施例1に係る撮像装置101の構成を示す図である。撮像装置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等のインターフェイスに適合するようデータ形式を変換し出力する。
続いて、撮像装置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は、図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位相を用いて撮影したセンサ画像を以下式に従って演算すると複素数のセンサ画像(複素センサ画像)が得られる。これを式で表すと、
となる。ここで、複素数の現像用パターン801は、
と表せる。現像用パターン801はフリンジスキャン処理内で使用するため、複素数であっても問題ない。
モアレ現像方式において、上式10と上式11を乗算すると、
となる。この指数関数で表された項exp(2iβkx)が信号成分であり、上式8のような不要な項が発生しないため、ノイズがキャンセルされていることが解る。
同様に、相関現像方式についても確認すると、上式10、上式11のフーリエ変換はそれぞれ、
のようになる。次に、上式13と上式14を乗算すると、
となる。この指数関数で表された項exp(−iku)が信号成分であり、上式8のような不要な項が発生しないため、ノイズキャンセルされていることが解る。
なお、上記の例では、(Φ=0)、(Φ=π/2)、(Φ=π)、(Φ=3π/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)。
以降のステップ1604の実数化処理、ステップ1605のコントラスト強調処理、ステップ1606のカラーバランス調整処理は、ステップ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を用いた処理を独立して行うことが可能となり、処理を簡易化することが可能となる。
(時分割方式と空間分割方式の切り替え)上述のように、ノイズキャンセルの方式として時分割フリンジスキャンおよび空間分割フリンジスキャンを採用できる。時分割フリンジスキャンは、初期位相が異なる複数の撮影用パターン105を時間経過に応じて切り替えて使用することで、画像センサの全面を使用でき、高解像度・全焦点に対応が可能である。その一方で、この方式はパターン毎に撮影する必要があるため、撮影時間とメモリ容量が空間分割フリンジスキャンに比べ多く必要になる。例えば、動体の撮影は撮影用パターンを切り替えている間に構図が変化するため、困難である。
空間分割フリンジスキャンは、初期位相が異なる複数のパターン領域を有した撮影用パターン1300を使用することで、撮影は一回撮像するのみであり、メモリ容量の増加も発生しないが、画像センサのサイズを分割して複数のパターン領域に割り当てるため、各パターン領域で得られる解像度が低くなる。また、接写が困難である。以上から、両方式はそれぞれ利点が異なるため、用途によって手動あるいは自動で切替え可能にすることが望ましい。
例えば、撮像モジュール102あるいはフリンジスキャン処理部106に両方式を切り替える回路あるいはプログラムを搭載する。そして、撮像装置101に搭載したスイッチやボタンをユーザが操作、あるいはUSB(Universal Serial Bus)や無線LAN(Local Area Network)等の外部インターフェイス経由で他の装置から切り替え要求を受信、などのイベント検出により、コントローラ108がどちらの方式を使用するかを決定し、フリンジスキャン処理部106を介して切り替え制御する。
あるいは、通常は空間分割フリンジスキャンを使用し、被写体が接近することで画像センサ103上の投影像が所定のサイズより大きくなった(投影像の面積が画像センサの面積の所定以上を占めるようになった)場合、フリンジスキャン処理部106あるいはコントローラ108が自動的に時分割フリンジスキャンに切り替える方法であってもよい。以上の方法・構成によれば、フォーカス調整、オートフォーカス、測距の処理と、フリンジスキャン処理と、を分離して実施可能な撮像装置を実現することが可能となる。
なお、撮像モジュール102について、時分割フリンジスキャン用の撮影用パターン105を備えるものと空間分割フリンジスキャン用の撮影用パターン105を備えるものの二系統の切り替え機構を予め備えておき、コントローラ108により系統の切り替えを制御していずれかのフリンジスキャンを実施するようにしてもよいし、液晶による撮影用パターン105を用いることでコントローラ108により系統の切り替え(撮影用パターン105の出し分け)を制御していずれかのフリンジスキャンを実施するようにしてもよい。続いて、空間分割フリンジスキャンを使用した場合に発生する問題について説明する。
(空間分割フリンジスキャンの問題)上記の実施例1のように、空間分割フリンジスキャン処理では、図20に示すような初期位相が互いに異なる複数のパターンを有した撮影用パターン1300を使用する。
図20は、空間分割フリンジスキャンの撮影用パターンの問題の例を示す図である。撮影用パターン1300を構成する部分的な撮影用パターン1301乃至撮影用パターン1304は、水平方向にそれぞれ同じサイズ(Sx、Sy)であり、パターン領域の中心位置(同心円状のパターンの場合は、同心円の中心)についても、すべてのパターン領域において切り出した画像上の中心位置であることが望ましい。
しかしながら、撮影用パターンの形成時や実装の工程で、これらのパターンの位置が所定の位置からずれて配置されるケースがある。例えば、図20の撮影用パターン2000に示すように、図左側の左上のパターン領域1301について、図右側のパターン領域のように中心位置が図左上方向へずれたり、図左側の左下のパターン領域について、図右側のパターン領域2003のように中心位置が図下方向へずれたり、図左側の右下のパターン領域1304について、図右側のパターン領域のように中心位置が図右方向へずれうる。このようなずれのある撮影用パターン2000を使用し、画像センサ103で撮影した1枚の画像をそのまま4枚に分割し、フリンジスキャン演算を実施すると、ずれにより正しい現像画像が得られない。
(空間分割フリンジスキャンの解決その1)上述の水平方向へのずれ(画像センサのセンサ面に平行な面上のずれ)の問題を解決するために、本実施例3では、撮影用パターン1300を画像センサ103に投影して取得した1枚の画像を用いて、含まれるそれぞれのパターン領域で位置ずれが発生しているか否かを検出する。位置ずれが発生している場合は、ステップ1401において1枚の投影画像から4枚に分割する処理において、それぞれのパターン領域の中心位置を検索する。そして、それぞれの中心位置から最適なサイズで切り出す処理を行う。これにより、図20に示したような撮影用パターン2000を使用した場合でも4枚の正しい投影画像を取得することができる。以下に詳細を記載する。
まず、LED(Light Emitting Diode)ライトなどの点光源を用いて、無限遠の撮影環境を準備する。ここでは、無限遠とは、パンフォーカス撮影を行う位置であり、画像センサ103のサイズ、撮影用パターンと画像センサ103の距離dに依存する。具体的には、点光源と撮影用パターン1300の距離fと距離dの関係は、上式16に示す通りである。拡大率αの変化が無視できる程度に小さくなる距離fが無限遠であり、距離dが十分無視できるほど小さい値であることを示す。撮像装置101は、空間分割フリンジスキャンを使用するものとする。
また、以降の処理は、例えば、撮像装置101に搭載したスイッチやボタンをユーザが操作、あるいは無線LANやUSB等の外部インターフェイス経由で位置調整要求を受信した場合に、撮像装置101のコントローラ108により実行される。図21を用いて、コントローラ108の処理概要について説明する。
図21は、水平位置ずれ量測定処理の処理フローの例を示す図である。水平位置ずれ量測定処理は、例えば撮像装置101の製造時や調整時のキャリブレーションを必要とする場合に、ユーザからの指示により開始される。
コントローラ108は、撮像モジュール102、フリンジスキャン処理部106、画像処理部107、コントローラ108のいずれかに内蔵したメモリ(通電状態に無い場合でもデータが保持される不揮発性メモリが望ましい)から、撮影用パターン1300を構成する各パターン領域の設計上の位置情報とサイズを読み込む(ステップ2201)。例えば、コントローラ108は、パターン1301の中心位置A1(x1、y1)、パターン1302の中心位置A2(x2、y1)、パターン1303の中心位置A3(x1、y2)、パターン1304の中心位置A4(x2、y2)、各パターン領域のサイズは(Xc、Yc)として読み込む。
ここで、コントローラ108が読み込む情報は、各パターン領域の中心位置とサイズだけに限定されず、撮影用パターン1300の画像データでも良いし、各パターン領域で異なる形状を特定できる情報(同心円の場合、中心円の色やサイズ)でも良い。また、図21の座標位置は、図左上を原点(0,0)としているが、別の場所に原点を配置しても良い。また、上記は中心の座標を使用しているが、各パターン領域で個別の座標を使用しても良い。さらに、読み込む情報は、中心位置と各パターン領域のサイズだけに限定されず、各パターン領域の位置や識別できる情報であれば良い。
次に、コントローラ108は、画像センサ103上の投影画像2220を取得する(ステップ2202)。具体的には、コントローラ108は、撮像モジュール102、フリンジスキャン処理部106、画像処理部107を制御し、画像センサ103に撮影用パターン1300を投影した投影画像2220を取得する。
次に、コントローラ108は、投影画像2220から各パターン領域の中心位置を検索する(ステップ2203)。具体的には、コントローラ108は、画像処理部107を制御し、ステップ2201で取得した各パターン領域の中心位置を用いて、その中心位置が所定の位置に配置されるような所定のサイズの矩形領域を投影画像2220上で特定し、その矩形領域内に各パターン領域の中心付近の形状が含まれているか否かを判定する。例えば、コントローラ108は、図22に示すように中心付近の形状を検索する。
図22は、撮影用パターン内の各パターン領域の水平位置ずれの探索例を示す図である。画像処理部107は、パターン1301の中心位置A1が中心に配置されるような矩形領域2300を投影画像2200上から切り出し、その中にパターン1301を特定するための特徴点あるいは特定の形状が存在するか否かを検索する。パターン1301のような同心円の場合、画像処理部107は、例えば円形ハフ変換などの画像処理方式を用いて中心の円を検索する。そして、特徴点あるいは特定の形状を抽出した場合は、画像処理部107は、その中心位置A1’を抽出する。
一方、所望の特徴点あるいは特定の形状が矩形領域2300から抽出できなかった場合は、画像処理部107は、当初の矩形領域2300の周囲にある所定の領域2301の範囲内で矩形領域2300の位置を移動させながらラスタスキャンする。もし所定の領域2301内に所望の特徴点あるいは特定の形状が存在しない場合は、画像処理部107は、このパターンには想定以上の位置ずれが含まれており正常に使用できないと判断し、このパターンに係る中心位置の検索を終了する。そして、画像処理部107は、残りの未処理のパターンについて本ステップの処理を実施する。
そして、画像処理部107は、各パターン領域の中心位置から切り出し可能な領域の最大サイズを算出する(ステップ2204)。具体的には、ステップ2203で投影画像2220の中から各パターン領域の中心位置A1’〜A4’が抽出できた場合、コントローラ108は画像処理部107を制御し、各パターン領域の領域サイズ(図21のXc、Yc)の中でこれらの中心位置が所定の位置に配置できる最大サイズの矩形領域を算出する。例えば、画像処理部107は、図23に示すように、サイズがXc,Yc以下であって、各パターン領域の中心位置A1’〜A4’が中心に配置される最大の矩形領域S1〜S4をそれぞれ算出する。以降、それぞれの矩形領域のサイズをS1(XS1、YS1)、S2(XS2、YS2)、S3(XS3、YS3)、S4(XS4、YS4)とする。
そして、画像処理部107は、切り出し可能な領域サイズの中から最小サイズを選択する(ステップ2205)。具体的には、画像処理部107は、ステップ2204で抽出した矩形領域の中から、サイズが最小のものを選択する。すなわち、XS1〜XS4の中から最小値XSmin、YS1〜YS4の中から最小値YSminを選択する。以降、最小の矩形領域をSmin(XSmin、YSmin)とする。ここで、Smin(XSmin、YSmin)のサイズが所定のサイズよりも小さい場合、すなわち規定のサイズを確保できないほど小さい場合は、コントローラ108は、このパターン領域に所定以上の位置ずれがあり正常に使用できないと判断し、水平位置ずれ量測定処理を終了しても良い。
そして、画像処理部107は、各パターン領域の中心位置から最小サイズの領域を切り出す(ステップ2206)。具体的には、画像処理部107は、各パターン領域の中心位置A1’〜A4’が所定の位置に配置できるサイズSminの矩形領域を投影画像2200からそれぞれ切り出す。そして、画像処理部107は、空間分割フリンジスキャンを用いたフリンジスキャン演算の後続処理を実施する。
そして、コントローラ108は、各パターン領域の中心位置と最小サイズを保持する(ステップ2207)。具体的には、コントローラ108は、ステップ2203で検索した各パターン領域の中心位置A1’〜A4’と、ステップ2205で選択したサイズSmin(XSmin、YSmin)とを、内蔵メモリに保存する。
図28は、水平位置ずれ量情報の構成例を示す図である。情報2800は、設計上の基準位置やサイズ(各パターン領域の領域サイズと基準の中心位置等)を格納した情報テーブル2810と、各パターン領域の実際の基準の中心位置と切り取る矩形領域のサイズ(Smin)を格納した情報テーブル2820と、を含んで構成される。情報テーブル2820は、パンフォーカス撮影時(無限遠から撮影する場合)の情報だけでなく、有限距離で任意の距離から撮影する場合にその距離あるいは距離帯に応じた情報を含む。なお、情報テーブルや構成要素はこれに限定されず、各パターン領域がずれた位置やサイズを特定できる情報や変換式であれば良い。また、情報テーブル2810、2820は同じメモリに格納しても良いし、情報テーブル2810は撮像モジュール102の内蔵メモリに、情報テーブル2820はフリンジスキャン処理部106の内蔵メモリに、それぞれ格納するようにしても良い。
以上が、水平位置ずれ量測定処理である。水平位置ずれ量測定処理によれば、撮像装置101は、撮影用パターンの形成時や実装の工程時に、図20に示すような撮影用パターンのいずれかに位置ずれが発生した場合でも、投影画像2220から適切な位置の領域を取得することができるため、ノイズの少ない現像画像が得られる。
なお、上記の付属メモリは、撮像装置101内ではなく、撮像装置101の外部のメモリであっても良い。また、コントローラ108は、ステップ2201を省略し、画像処理部107は、ステップ2203で各パターン領域の領域内(Xc、Yc)をすべてラスタスキャンするようにしても良い。
また、ステップ2203では一般的な画像処理の方式を用いて特定の特徴点や特定の形状を検索しているが、他の方法を利用しても良い。例えば、画像処理部107は、パターンマッチングの一方式として利用される位相限定相関法を用いて、撮影用パターン1300と投影画像2200をそれぞれフーリエ変換して位相画像を作成し、これらの位相画像から相関関数を計算し、相関ピークの座標から相対的な位置ずれを検出するようにしても良い。
また、画像処理部107は、図22の矩形領域2300を中心円が入るサイズに設定し、ラスタスキャンした矩形領域内のヒストグラムを算出し、中心円の同色が80%以上を占めた場合は中心位置を含むと判定するようにしても良い。
また、ステップ2205で選択する最小の矩形領域Smin(Xsmin、Ysmin)は、Xsmin≦Xc, Ysmin≦Ycとなるため、最終的に得られる現像画像のサイズが小さくなりすぎる場合がある。そこで、画像処理部107は、サイズがXc、Ycとなるように足りない領域を所定値(例えば0)で埋めるようにしても良い。
また、ステップ2207で保存する各情報は、各パターン領域の中心位置A1’〜A4’とサイズSmin(XSmin、YSmin)に限定されず、例えば、各パターン領域におけるサイズSminの矩形領域の4つ角の位置情報でも良い。
水平位置ずれ量測定処理で撮影用パターンの位置ずれの情報を取得した以降は、図24に示すように、保持した位置ずれ情報を利用して、各パターン領域から適切な領域を容易に切り出すことが可能となる。
図24は、撮影用パターンの水平位置切り出し処理の処理フローの例を示す図である。水平位置切り出し処理は、フリンジスキャン処理のステップ1401において開始される。
コントローラ108は、各パターン領域の中心位置と最小サイズの情報を保持しているか否か判定する(ステップ2501)。保持していない場合(ステップ2501にて「No」の場合)には、コントローラ108は、水平位置ずれ量測定処理を開始させる。具体的には、コントローラ108は、撮像モジュール102、画像処理部107、コントローラ108のいずれかに内蔵したメモリに撮影用パターン1300の各パターン領域の中心位置A1’〜A4’とサイズSmin(XSmin、YSmin)の位置ずれに関する情報が保持されているか否か判定する。
各パターン領域の中心位置と最小サイズの情報を保持している場合(ステップ2501にて「Yes」の場合)には、コントローラ108は、各パターン領域の中心位置と最小サイズを読み込む(ステップ2502)。
そして、コントローラ108は、画像センサ上の投影画像を取得する(ステップ2503)。具体的には、コントローラ108は、撮像モジュール102、画像処理部107を制御し、画像センサ103に撮影用パターン1300を投影した画像を取得する。
そして、画像処理部107は、各パターン領域の中心位置から最小サイズの領域を切り出して取得する(ステップ2504)。具体的には、画像処理部107は、ステップ2502で読み出した位置ずれ情報を参照し、ステップ2503で取得した投影画像から最小サイズの領域を切り出す。
以上が、水平位置切り出し処理の流れである。水平位置切り出し処理によれば、投影画像から各パターン領域に対応した適切な領域をずれなく適切に切り出すことが可能になる。
(空間分割フリンジスキャンの別の問題)上述した通り、撮影用パターンの形成時や実装の工程時、あるいは実際に本撮像装置を使用している間に、衝撃や環境変化により、図25に示すように撮影用パターン1300が画像センサ103の面と平行でなくなる(すなわち撮影用パターン1300に傾きが生じる)可能性がある。このような場合、画像センサ103で受光された画像は、撮影用パターン1300とは異なる形状になり(撮影用パターン1300が同心円状のパターンの場合、例えば楕円状にひずんだ画像になるなど)、適切な現像画像が得られなくなってしまう。
(空間分割フリンジスキャンの解決その2)上記の問題を解決するために、本実施例4では、撮影用パターン1300を画像センサ103に投影して取得した1枚の画像を用いて、それぞれのパターンで位置ずれが発生しているか否かを検出する。位置ずれが発生している場合は、前記1枚の投影画像から4枚に分割する際に、それぞれのパターンの中心位置を検索する。そして、それぞれの中心位置から最適なサイズで切り出す処理を行う。これにより、図25に示すような撮影用パターン1300が画像センサ103面と平行でなくなった場合でも、4枚の適切な投影画像を取得することができる。以下に詳細を記載する。
実施例3と同様に、LEDライトなどの点光源を用いて、図17に示すような無限遠での撮影環境を準備する。撮像装置101は、空間分割フリンジスキャンを使用するものとする。なお、説明を容易にするため、撮影用パターン1300が画像センサ103の面に対してY軸方向のみに傾きがある(回転している)場合について説明する。また、以降の処理は、例えば、撮像装置101に搭載したスイッチやボタンをユーザが操作、あるいは無線LANやUSB等の外部インターフェイス経由で位置調整要求を受信した場合に、撮像装置101のコントローラ108が実行する。
図26は、傾き量測定処理の処理フローの例を示す図である。傾き量測定処理は、撮像装置101の起動時あるいはユーザから指定されたタイミングやキャリブレーションのタイミングで開始される。
まず、コントローラ108は、位置ずれの無い場合の各パターン領域の中心円の位置情報とサイズ、パターンサイズを読み込む(ステップ2601)。具体的には、コントローラ108は、撮像モジュール102、フリンジスキャン処理部106、画像処理部107、コントローラ108のいずれかに内蔵したメモリから、撮影用パターン1300を構成する各パターン領域の位置情報を含む各種情報を読み込む。例えば、コントローラ108は、パターン1301の中心円M1の位置A1(x1、y1)とサイズ(直径や半径)と配色(白)、パターン1302の中心円M2の位置A2(x2、y1)とサイズと配色(黒)、パターン1303の中心円M3の位置A3(x1、y2)とサイズと配色(黒)、パターン1304の中心円M4の位置A4(x2、y2)とサイズと配色(白)、各パターン領域のサイズは(Xc、Yc)を読み込む。
次に、コントローラ108は、画像センサ上の投影画像を取得する(ステップ2602)。具体的には、コントローラ108は、撮像モジュール102、フリンジスキャン処理部106、画像処理部107を制御し、画像センサ103に撮影用パターン1300を投影した画像を取得する。例えば、投影画像2610を取得する。この場合、投影画像2610は、撮影用パターン1300をY軸を中心に回転させた画像となり、パターンが同心円の場合は楕円状の同心円となり、投影された画像の幅(X軸)が撮影用パターン1300の幅よりも狭くなる。
そして、コントローラ108は、投影画像から各パターン領域の中心円を検索し、重心を取得する(ステップ2603)。具体的には、コントローラ108は、画像処理部107を制御し、ステップ2601で取得した各パターン領域の中心円に関する情報を用いて、その中心位置が所定の位置に配置されるような任意サイズの矩形領域を投影画像2610上で特定し、その矩形領域内に各パターン領域の中心円と類似した形状が含まれているか否かを判定する。
図27は、撮影用パターン内の各パターン領域の傾きの探索例を示す図である。画像処理部107は、パターン1301の中心位置A1が中心に配置され、中心円全体が入るような矩形領域2700を投影画像2610上から切り出し、その中にパターン1301の中心円を特定するための特徴点あるいは特定の形状(本実施例の場合は、楕円形状)が存在するか否かを検索する。検索には例えば、画像処理部107は、円形ハフ変換やパターンマッチングなどの画像処理方式を用いて円や楕円の形状を検索する。そして、画像処理部107は、円や楕円状のオブジェクトを抽出した場合は、それらのオブジェクト(D1〜D4)の中心位置とサイズ(半径や直径)を抽出する。楕円の場合は、中心位置の他に、長軸の長さ、短軸の長さ、長軸のY軸に対するXY平面上の回転角を算出する。
一方で、所望の特徴点あるいは特定の形状が抽出できなかった場合は、画像処理部107は、所定の領域(例えば、当初の矩形領域2700の周囲の領域2701)の範囲内で矩形領域2700の位置を移動させながらラスタスキャンする。もし所定の領域内に存在しない場合は、コントローラ108は、当該パターンは所定以上の位置ずれがあり正常に使用できないと判定し、当該パターンを除外して残りのパターンに対して中心円の検索を行う。
そして、画像処理部107は、各パターン領域の設計上の中心円と実際の中心円の特徴点を用いて空間変換行列Tを算出する(ステップ2604)。具体的には、ステップ2603で投影画像2610の中から各パターン領域の中心円に相当するオブジェクト(D1〜D4)が抽出できた場合、コントローラ108は画像処理部107を制御し、ステップ2601で取得した各パターン領域の中心円(M1〜M4)とオブジェクト(D1〜D4)を対応付ける複数の特徴点の位置座標を用いて、空間変換行列T(あるいは変換式T)を算出する。空間変換行列Tは、一般的な画像処理における空間と画像との幾何的関係から算出でき、例えばアフィン変換や射影変換では対応付けが可能な特徴点が3個以上あれば数学的演算で空間変換行列Tを算出できる。なお、空間変換行列Tは、パターン毎に複数(例えばT1〜T4)算出しても良いし、パターン全体で1つを算出しても良い。
そして、画像処理部107は、投影画像の全体を空間変換行列Tで変換後の画像(傾き補正後の画像)を取得する(ステップ2605)。具体的には、コントローラ108は、画像処理部107を制御し、ステップ2604で取得した空間変換行列Tを用いて、ステップ2602で取得した投影画像2610を傾きのない画像2620(すなわちY軸方向の回転が無い状態、楕円を円にする画像)へ変換する。そして、水平位置ずれ量測定処理のステップ2202の投影画像2220の代わりに傾きのない画像2620を用いて、ステップ2203以降の処理と同様の処理を実施し、適切な矩形領域を4枚切り出し、前述した空間分割フリンジスキャンを用いたフリンジスキャン演算を実施する。
そして、コントローラ108は、投影画像の中心円の位置情報と空間変換行列Tとを保持する(ステップ2606)。具体的には、コントローラ108は、ステップ2604で算出した空間変換行列Tと、中心円に相当するオブジェクト(D1〜D4)の位置情報とを、内蔵メモリに保存する。
図29は、傾き量情報の構成例を示す図である。情報2900は、設計上の基準位置やサイズ(各パターン領域の領域サイズ等)を格納した情報テーブル2910と、各パターン領域の実際の取得位置から本来の位置を算出するための空間変換行列Tや切り取る矩形領域のサイズ(Smin)を格納した情報テーブル2920を含んで構成される。情報テーブル2920は、パンフォーカス撮影時(無限遠から撮影する場合)の情報だけでなく、有限距離で任意の距離から撮影する場合にその距離あるいは距離帯に応じた情報を含む。なお、情報テーブルや構成要素はこれに限定されず、各パターン領域がずれた位置やサイズを特定できる情報や変換式であれば良い。また、情報テーブル2910、2920は同じメモリに格納しても良いし、情報テーブル2910は撮像モジュール102の内蔵メモリに、情報テーブル2920はフリンジスキャン処理部106の内蔵メモリに、それぞれ格納するようにしても良い。このように内蔵メモリに格納することで、撮影用パターンのいずれかまたは全てに傾きが発生した場合でも、投影画像2220から傾きの影響をキャンセルした領域を取得することができるため、ノイズの少ない現像画像が得られる。
以上が、傾き量測定処理である。傾き量測定処理によれば、撮像装置101は、撮影用パターンの形成時や実装の工程時あるいは計測運用中に、図25に示すような撮影用パターンのいずれかに傾きが発生した場合でも、保持した傾き情報を利用することで、各パターン領域から適切な領域を容易に切り出すことが可能となる。
以上の処理により、撮影用パターンが画像センサの面に対して平行ではない(傾きがある)場合でも、投影画像から各パターン領域に対応した適切な領域を適切に切り出すことが可能になる。
上記の実施例2乃至実施例4では、無限遠からのパンフォーカス撮影において、空間分割フリンジスキャンを実施する際のXY平面上の(画像センサ103の撮像素子の配置面に対して平行な面上の)位置ずれあるいは傾き(画像センサ103の撮像素子の配置面に対して平行な面からの傾き)を補正する処理について記載した。
実施例5では、図18に示すような有限距離からの撮影において、平行光でない入射光について撮像画像の位置ずれを補正する処理について記載する。有限距離からの点光源の撮影では、撮影用パターン1300の画像センサ103への射影は、上述の通りほぼ一様に拡大され、その拡大率は上式16で算出できる。
撮影用パターン1300の画像センサ103への射影が拡大されるため、当然ながら実施例3、4で記載した位置ずれ情報についても同様に拡大する必要がある。そこで、予め点光源までの任意の距離毎に、適切に拡大した位置ずれ量を算出し、保持しておき、撮影時に被写体である点光源までの距離に合わせて、適切に拡大した位置ずれ量を使用して上記の同様の補正を行う。これにより、有限距離からの撮影においても適切に位置ずれあるいは傾きを補正することが可能となる。
なお、本発明は上記の実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムに応じて演算を実行するソフトウェア制御によって実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に格納しておき、実行時にRAM(Random Access Memory)等に読み出され、CPU(Central Processing Unit)等により実行することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
また、上記した各構成、機能、処理部等は、それらの一部又は全部を、例えば別の装置で実行してネットワークを介して統合処理する等により分散システムで実現してもよい。
また、上記した実施形態の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウェア部品のような複数の部分に分けられて適用されるようにしてもよい。