説明

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

【課題】複数の撮像部によって構成される多眼方式の撮像装置において、一部の撮像部に動作不良が生じても、簡易かつ精度よく当該動作不良の生じた撮像部の撮影領域をカバーする。
【解決手段】複数の撮像部によって構成される、回転機構によって回転可能な撮像部群と、前記撮像部の不良を検知する不良撮像部検知手段と、を備える多眼方式の撮像装置であって、前記不良撮像部検知手段で不良が検知された撮像部の位置に不良が検知されなかった撮像部がくるように前記撮像部群を回転させ、不良が検知された撮像部によって取得されるべき画像を不良が検知されなかった撮像部を用いて撮影する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多視点からの撮影画像群を取得する撮像装置に関する。
【背景技術】
【0002】
視差の異なる複数の画像を撮影する多眼方式の撮像装置が提案されている(例えば、非特許文献1)。多眼方式の撮像装置は、複数の撮像部を有し、各撮像部にてそれぞれ撮影を行うことで、視差のある多視点の画像データを得ることができ、後の画像処理によってピント位置を調節すること(リフォーカス)を可能にしている。このような技術はライトフィールドフォトグラフィと呼ばれる。この技術を用いれば、撮影後にピント調整を行えるため、撮影時のピント調整の失敗を画像処理で補うことができるという利点がある。さらに、画像処理方法を変えることで画像中の任意の被写体にピントを合わせた複数の画像を一枚の撮影画像から得る事ができ、撮影回数を減らす事ができるという利点もある。ライトフィールドフォトグラフィでは、多視点の画像データから、空間中の複数の位置について、それぞれの位置を通過する光線の方向と強度(ライトフィールド、以下、「LF」という。)を計算する。そして、得られたLFの情報を用いて、仮想の光学系を通過して仮想のセンサに結像した場合の画像を計算する。このような仮想の光学系やセンサを適宜設定する事で、リフォーカスも可能となる。
【0003】
LFを取得するための撮像技術としては、メインレンズの後ろにマイクロレンズアレイを置いたPlenoptic Cameraや、小型のカメラを並べたカメラアレイが知られている。
【0004】
多眼方式の撮像装置は複数の撮像部を備えているところ、一部の撮像部に動作不良が発生して、完全な画像データが取得できなかったり、被写体の一部分が欠落した画像となってしまうことがある。その結果、複数の画像の重なった領域における対応点が見つからず、被写体までの距離推定精度が落ちてしまうという問題があった。
【0005】
このような問題に対応可能な技術として、動作不良が生じたカメラの近くにある他の動作良好なカメラで取得した画像から補間して欠落した情報を埋める技術が提案されている(特許文献1)。
【0006】
また、従来より、複数のカメラを用いた多視点の撮影システムにおいて、カメラの故障が検知された場合、隣のカメラの角度を変え、故障したカメラの撮影範囲をカバーして再撮影する技術も提案されている(特許文献2)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008-191072号公報
【特許文献2】特開平10-105863号公報
【非特許文献】
【0008】
【非特許文献1】Aaron Isaksen、他2名, “Dynamically Reparameterized Light Fields”, Proc. ACM. SIGGRAPH, pp.297-306, 2000.
【非特許文献2】Anat Levin“Motion-Invariant Photography”, SIGGRAPH 2008
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、例えば、特許文献1の技術では、他のカメラ(不良の生じたカメラに隣接する正常なカメラ)で取得される画像に補間の精度が依存することになるが、隣り合う複数のカメラの双方に動作不良が生じている場合には対応できないことになる。また、特許文献2の技術のように、カメラの方向を変更するだけでは、動作不良の生じたカメラの撮影領域を適切にカバーできない場合もある。
【課題を解決するための手段】
【0010】
本発明に係る撮像装置は、複数の撮像部によって構成される、回転機構によって回転可能な撮像部群と、前記撮像部の不良を検知する不良撮像部検知手段と、を備える多眼方式の撮像装置であって、前記不良撮像部検知手段で不良が検知された撮像部の位置に不良が検知されなかった撮像部がくるように前記撮像部群を回転させ、不良が検知された撮像部によって取得されるべき画像を不良が検知されなかった撮像部を用いて撮影することを特徴とする。
【発明の効果】
【0011】
本発明によれば、多眼方式の撮像装置において一部の撮像部に動作不良が生じても、簡易かつ精度よく当該動作不良の生じた撮像部の撮影領域をカバーすることができる。
【図面の簡単な説明】
【0012】
【図1】多眼方式の撮像装置における各撮像部の配置を示す図である。
【図2】本実施例に係る多眼方式の撮像装置の主要な構成要素を示す機能ブロック図である。
【図3】撮像部の内部構成を説明する図である。
【図4】多視点画像の撮影から合成画像データの出力に至るまでの一連の処理の流れを示すフローチャートである。
【図5】画像処理部の内部構成を示すブロック図である。
【図6】画像処理部で実行される各処理の流れを示すフローチャートである。
【図7】画像値がまったく取得できないタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。
【図8】撮像センサに欠損が生じるタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。
【図9】光学系の異常によって画像に歪みやボケが発生するタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。
【図10】回転量算出処理の流れを示すフローチャートである。
【図11】位置合せ処理の流れを示すフローチャートである。
【図12】平坦部のブロックを除外する処理の流れを示すフローチャートである。
【図13】有効動きベクトル判定処理の流れを示すフローチャートである。
【図14】画像合成処理の流れを示すフローチャートである。
【図15】ステレオ距離推定法の説明図である。
【発明を実施するための形態】
【0013】
[実施例1]
図1は、本実施例に係る計25個の撮影部を備えた多眼方式の撮像装置における各撮像部の配置を示す図である。101〜125は撮像部をそれぞれ示しており、撮像部101〜108、撮像部109〜116、撮像部117〜124が、それぞれ異なる直径の円周上に配置されている。以下、各円周上に配置された複数の撮像部を「円形撮像部群」と呼ぶこととする。各円形撮像部群には、それぞれ8個の撮像部が円周上に均等な間隔で配置される。各円形撮像部群は、その中心(撮像部125)を軸として、不図示の回転機構により時計/反時計方向に回転可能である(破線の矢印130、140、150を参照)。この回転動作は、後述の撮像部群回転制御部の制御下で自動的になされるが、手動による回転にも対応できる。なお、本実施例では各円形撮像部群の円周上に各撮像部が均等な間隔で配置されているが、不均等に配置してもよい。また、撮像部群は円形でなくてもよい。
【0014】
図2は、本実施例に係る多眼方式の撮像装置の主要な構成要素を示す機能ブロック図である。
【0015】
撮像部101〜125は、被写体の光情報をセンサで受光し、A/D変換を施して、データ転送経路であるバス215に画像データを出力する。
【0016】
126はフラッシュであり、撮影時に被写体に対して光を照射する。
【0017】
201はROMであり、CPU203で実行される制御プラグラム等を格納している。
【0018】
202はRAMであり、CPU203の主メモリ、ワークエリア等として機能する。
【0019】
203はCPUであり、各部を統括的に制御するプロセッサである。
【0020】
204は撮像部制御部であり、各撮像部のフォーカスを合わせる、シャッターを開く、絞りを調節するなど、CPU203から指示された撮像系の制御を行う。
【0021】
205は操作部であり、ボタンやモードダイヤルなどが該当し、これらを介して入力されたユーザ指示を受け取る。
【0022】
206はCG生成部であり、文字やグラフィックなどを生成する。
【0023】
207は表示制御部であり、表示部208の表示制御を行う。
【0024】
208は表示部であり、一般的には液晶ディスプレイが広く用いられる。CG生成部206、後述のデジタル信号処理部209や画像処理部213から受け取った撮影画像データや文字の表示を行う。また、タッチスクリーン機能を有していても良く、その場合は、ユーザ指示を操作部205の入力として扱うことも可能である。
【0025】
209はデジタル信号処理部であり、デジタル値にホワイトバランス処理、ガンマ処理、ノイズ低減処理などを行い、デジタル画像データを生成する。
【0026】
210は圧縮・伸張部であり、上記デジタル値をJpegやMpegなどのファイルフォーマットに変換する処理を行う。
【0027】
211は、外部メモリ212とのインターフェースを行う外部メモリ制御部である。
【0028】
212は外部メモリであり、例えば、ハードディスク、メモリーカード、CFカード、SDカード、USBメモリなどである。
【0029】
213は画像処理部であり、撮像部101〜125によって撮影された画像データ或いはデジタル信号処理部209から出力される画像データを用いて画像合成処理を行い、新たな画像データを生成する。その結果はバス215に出力される。さらに画像処理部213は、撮像部制御部204で撮影された画像データを用いて、動作不良の生じた撮像部(以下、単に「不良撮像部」と呼ぶ。)の存否、不良撮像部の特定、円形撮像部群の回転量の算出などの処理も行う。画像処理部213については後でさらに詳しく説明する。
【0030】
撮像部群回転制御部214は、画像処理部213での処理結果に基づいて、所定の回転方向及び回転量で各円形撮像部群が回転するように回転機構を駆動制御する。
【0031】
図3は、撮像部の内部構成を説明する図である。
【0032】
各撮像部は、レンズ301〜303、絞り304、シャッター305、光学ローパスフィルタ306、iRカットフィルタ307、カラーフィルタ308、センサ309及びA/D変換部310で構成される。レンズ301〜303は夫々、ズームレンズ301、フォーカスレンズ302、ぶれ補正レンズ303である。センサ309は、例えばCMOSやCCDなどのセンサである。
【0033】
センサ309で被写体の光量を検知すると、検知された光量がA/D変換部310によってデジタル値に変換され、デジタルデータとなってバス215に出力される。
【0034】
図4は、本実施例に係る多眼方式の撮像装置における、多視点画像の撮影から合成画像データの出力に至るまでの一連の処理の流れを示すフローチャートである。
【0035】
ステップ401において、撮像部101〜125によって、視差のある複数の画像が撮影され、視差の異なる多視点の画像データが取得される。
【0036】
ステップ402において、画像処理部213は、取得された多視点画像データを用いて、不良撮像部の有無の判定及び不良撮像部があると判定された場合の当該不良撮像部の特定を行う。
【0037】
ステップ403において、画像処理部213は、特定された不良撮像部の属する円形撮像部群の回転量及び回転回数を算出する。
【0038】
ステップ404において、撮像部群回転制御部214は、算出された回転量に従って対象となる円形撮像部群を回転させる。
【0039】
ステップ405において、撮像部制御部204は、回転により不良撮像部の位置に移動した撮像部によって再撮影を行う。
【0040】
ステップ406において、撮像部群回転制御部214は、円形撮像部群を回転させた回数が、ステップ403で算出された回転回数に到達しているかどうかを判定する。算出された回転回数に到達していればステップ407に進む。一方、算出された回転回数に到達していなければステップ404に戻る。
【0041】
ステップ407において、画像処理部213は、ステップ401で撮影された画像データ及びステップ405で再撮影された画像データを用いて画像の合成処理を行う。すなわち、任意のピント位置における仮想のセンサが得る画像データ(合成画像データ)が生成される。
【0042】
ステップ408において、生成された合成画像データが出力される。
【0043】
図5は、画像処理部213の内部構成を示すブロック図である。
【0044】
画像処理部213は、回転フラグ処理部501、不良撮像部検知部502、回転量算出部503、回転フラグ生成部504、画像保存部505、画像合成部506で構成される。
【0045】
回転フラグ処理部501は、回転フラグ生成部504で生成される回転フラグに従って、不良撮像部の検知を行うか、画像合成を行うかを切り替える。回転フラグの初期値は0であり、回転フラグの値が0の場合、不良撮像部検知部502が動作するように信号が与えられる。回転フラグの値が1の場合は、画像合成部506が動作するように信号が与えられる。
【0046】
不良撮像部検知部502は、入力された画像データを用いて不良撮像部の位置(不良撮像部が、どの円形撮像部群のどの角度に配置されているのか)を特定する。
【0047】
回転量算出部503は、特定された不良撮像部の位置情報(本実施例では、不良撮像部の配置角度(θ)及び当該不良撮像部の属する円形撮像部群の半径(r)の情報)を受け取り、円形撮像部群をどの程度回転させればよいかを算出する。
【0048】
画像保存部505は、入力された画像データを一時的に格納する。画像処理部213に入力される画像データは、この画像保存部505にすべて一旦格納され、画像合成部506に送られる。ただし、円形撮像部群を回転させた後の再撮影に係る画像データについては、画像合成部506に直接送るようにしてもよい(図5中の破線を参照)。
【0049】
画像合成部506は、画像保存部505から多視点の画像データを受け取り、所望の画像を得るための画像合成を行う。
【0050】
次に、画像処理部213で行われる処理の詳細を説明する。図6は、画像処理部213で実行される各処理の流れを示すフローチャートである。
【0051】
ステップ601において、画像処理部213は、撮像部101〜125で撮影された画像のデータを取得する。
【0052】
ステップ602において、画像処理部213は、回転フラグの値を取得する。
【0053】
ステップ603において、画像処理部213は、撮像部101〜125の配置を特定するためのパラメータを取得する。具体的には、各撮像部の属する円周の半径及び各撮像部が配置されている角度を取得する。
【0054】
ステップ604において、画像処理部213は、取得した回転フラグの値が0であるかどうかを判定する。回転フラグの値が0と判定されれば、ステップ605に進む。一方、回転フラグの値が1と判定されれば、ステップ608に進む。
【0055】
ステップ605において、画像処理部213は、不良撮像部検知処理を行う。具体的には、不良撮像部の有無をチェックし、不良撮像部があればその位置及びその数を特定する。不良撮像部検知処理の詳細については後述する。
【0056】
ステップ606において、画像処理部213は、ステップ605で検知された不良撮像部の位置及びその数の情報を利用して、当該不良撮像部の属する円形撮像部群をどれだけ回転させればよいかを決定する。この回転量算出処理の詳細については後述する。
【0057】
ステップ607において、画像処理部213は、回転フラグの値を0から1に変更する。
【0058】
ステップ608において、画像処理部213は、ステップ601で取得した画像データを用いて画像を合成する処理を行う。
【0059】
ステップ609において、画像処理部213は、回転フラグの値を1から0に変更する。
【0060】
以上が、画像処理部213における処理の大まかな流れである。
【0061】
<不良撮像部検知処理>
次に、不良撮像部検知処理について説明する。
【0062】
撮像部に生じ得る不良のバリエーションとしては大きく分けて三つのタイプが考えられる。1つは、画像値(画像を表すデジタル信号の値)が全く取得できないようなハードウェアの異常・故障である。次に、画像値が部分的に取得できなくなる、例えば撮像センサに欠損が生じたような場合が考えられる。もう1つは、光学系の異常によって画像に歪みやボケが発生するような場合である。以下では、この三つのタイプのそれぞれに応じた不良撮像部の検知処理について説明する。
【0063】
図7は、画像値がまったく取得できないタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。
【0064】
ステップ701において、不良撮像部検知部502は、画像データI(r[i],θ[j])を取得する。ここで、r[i]は当該画像を撮影した撮像部の属する円周の半径、θ[j]はその円周上のどの位置に配置された撮像部であるかを特定するための角度を示す。この場合においてiは当該円周が中心点から見て何番目の円周上であるかを表す値(正の整数)である。例えば、図1に示した25個の撮影部を備えた撮像装置の場合、最も外側に位置する円周上の撮像部101で撮影された画像であれば、i=3となる。なお、円周の中心点に位置する撮像部125で撮影された画像であればi=0となる。そして、jは、円周の中心点と円周上の基準となる点とを結んだ軸を基準とした場合に、θが何番目の角度に該当するのかを示す値(正の整数)である。例えば図1の場合、円周は8つに分割されているからjは0から7の値を取ることになる。そして、撮像部108の配置される点を基準点とすると、仮に画像を撮影したのが撮像部102であったとすれば、角度θは90度、jは2となる。このように、各撮像部で撮影された画像データにr[i],θ[j]の情報を含むことによって、どの撮像部によって撮影された画像であるかが特定される。
【0065】
ステップ702において、不良撮像部検知部502は、取得した画像における画素値が0の画素の割合(以下、「画素値0率」と呼ぶ)を算出する。具体的には、取得した画像において、画素値が0の画素をカウントし、カウントされた画素数を当該画像の総画素数で割ることにより、取得された画像における画素値0率を求める。
【0066】
ステップ703において、不良撮像部検知部502は、各撮像部で撮影されたすべての画像に対して、画素値0率の算出が完了したかどうかを判定する。すべての画像について画素値0率の算出が完了していればステップ704に進む。一方、未だ画素値0率を算出していない画像がある場合には、ステップ701に戻る。
【0067】
ステップ704において、不良撮像部検知部502は、不良撮像部を決定する。具体的には、画素値0率が所定の閾値(例えば、95%)を超える画像を抽出し、当該抽出された画像を撮影した撮像部を不良撮像部であると決定する。このようにして決定された不良撮像部を特定する情報(r[i],θ[j])は、回転量算出部503へと送られる。
【0068】
以上が、画像値がまったく取得できないタイプの不良撮像部を検知する処理である。
【0069】
図8は、撮像センサに欠損が生じるタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。なお、上述した図7のフローチャートと共通する部分については説明を簡略化ないしは省略することとする。
【0070】
ステップ801において、不良撮像部検知部502は、画像データI(r[i],θ[j])を取得する。
【0071】
ステップ802において、不良撮像部検知部502は、取得した画像の明度B(r[i],θ[j])を求める。例えば、取得された画像がRGB色空間の画像信号データであれば、各画素の信号値をL***表色系の色に変換し、各画素のL*値の平均値を取ることによってこの明度は求められる。なお、L***表色系に代えてL***表色系など、他の表色系を用いることができることはいうまでもない。
【0072】
ステップ803において、不良撮像部検知部502は、各撮像部で撮影されたすべての画像について、明度B(r[i],θ[j])が求められたかどうかを判定する。すべての画像について明度が求められていればステップ804に進む。一方、未だ明度が求められていない画像がある場合には、ステップ801に戻る。
【0073】
ステップ804において、不良撮像部検知部502は、すべての画像の明度の平均値B_aveを算出する。この平均明度B_aveは、各画像における全画素のL*値をすべて加算し、それをすべての画像の画素数の合計値(総画素数)で割ったものと等しい。
【0074】
ステップ805において、不良撮像部検知部502は、不良撮像部を決定する。具体的には、算出された平均明度B_aveと各撮像部で撮影された画像の明度とを比較して差分を算出し、当該差分と予め定めた閾値とを比較して、当該差分の値が閾値よりも小さければ、当該画像を撮影した撮像部を不良撮像部であると決定する。このようにして決定された不良撮像部を特定する情報(r[i],θ[j])は、回転量算出部503へと送られる。
【0075】
以上が、撮像センサに欠損が生じるタイプの不良撮像部を検知する処理である。
【0076】
図9は、光学系の異常によって画像に歪みやボケが発生するタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。本実施例では、画像の歪みやボケの有無を、位置合せ処理を行うことによって間接的に検知する手法について説明する。
【0077】
ステップ901において、不良撮像部検知部502は、すべての撮像部で撮影された全画像データI(r[i],θ[j])及び画像データI(r[i],θ[j+1])を取得する。
【0078】
ステップ902において、不良撮像部検知部502は、位置合わせ処理を行い、各画像内の無効画素の数(Invalid_num)を求める。具体的には、無効画素の画像I(r[i],θ[j])と同円周で角度数が次の画像I(r[i],θ[j+1])を用いて位置合わせ処理して無効画素数を算出する。この位置合わせ処理の詳細については、後述する。
【0079】
ステップ903において、不良撮像部検知部502は、無効画素の数が所定値(例えば、全画素数の半分)以上であるかどうかを判定する。無効画素の数が所定値より少ない場合は、歪みやボケがないと判断し、ステップ904に進む。一方、無効画素の数が所定値以上であれば、歪みやボケがあると判断し、ステップ905に進む。
【0080】
ステップ904において、不良撮像部検知部502は、両方の画像にフラグ値1をセットする。
【0081】
ステップ905において、不良撮像部検知部502は、両方の画像にフラグ値−1をセットする。
【0082】
ステップ906において、不良撮像部検知部502は、未処理の画像があるかどうかを判定する。未処理の画像があれば、ステップ901に戻る。一方、すべての画像についての処理が終了していれば、ステップ907に進む。
【0083】
ステップ907において、不良撮像部検知部502は、フラグ値が−1である画像を撮影した撮像部を不良撮像部として決定する。
【0084】
以上が、光学系の異常によって画像に歪みやボケが発生するタイプの不良撮像部を検知する処理である。
【0085】
<回転量算出処理>
図10は、回転量算出処理の流れを示すフローチャートである。
【0086】
ステップ1001において、回転量算出部503は、すべての不良撮像部に関する、不良撮像部を特定する情報E[N] =(r[i],θ[j])を取得する。
【0087】
ステップ1002において、回転量算出部503は、不良撮像部の数が複数であるかどうかを判定する。複数であれば、ステップ1003に進む。一方、複数でなければ、ステップ1006に進む。
【0088】
ステップ1003において、回転量算出部503は、当該複数の不良撮像部が同一の円周上に存在するかどうかを判定する。同じ円周上に複数の不良撮像部が存在すれば、ステップ1004に進む。一方、同じ円周上には存在していない場合には、ステップ1006に進む。
【0089】
ステップ1004において、回転量算出部503は、当該同一円周上に存在する複数の不良撮像部が、互いに隣接しているかどうか(連続性)を判定する。互いに隣接していれば、ステップ1005に進む。一方、隣接しておらず互いに離れて位置している場合には、ステップ1006に進む。
【0090】
ステップ1002〜ステップ1004によって、不良撮像部の数、位置、連続性を確認すると、ステップ1005及びステップ1006において、回転量算出部503は、回転角度を決定する。
【0091】
ステップ1005の場合には、回転量は、以下の式(1)によって求められる。
回転角度=単位角度×隣接する不良撮像部の数 ・・・式(1)
なお、本実施例(図1)の場合、単位角度は45度である。
【0092】
ステップ1006の場合には、単位角度がそのまま回転角度として決定される。
【0093】
なお、回転角度の決定に際しては、回転後に正常な撮像部による再撮影が担保されるように回転方向が決定される。
【0094】
ステップ1007において、回転量算出部503は、回転回数カウンタの値をインクリメント(+1)する。
【0095】
ステップ1008において、回転量算出部503は、未処理の不良撮像部があるかどうか、すなわち、代替の撮像部が決定できていない不良撮像部があるかどうかを判定する。未処理の不良撮像部があれば、ステップ1002に戻る。一方、すべての不良撮像部について代替の撮像部が決定されていれば、本処理を終える。
【0096】
例えば、図1において、撮像部101、102及び119が不良撮像部として検知されていた場合、上記回転量算出処理によって以下のように回転量(回転角度と回転回数)が算出されることになる。
【0097】
まず、不良撮像部の数は3個であり、そのうちの2個は同じ円周上に隣接して配置されているので、ステップ1002〜ステップ1004ですべてYesとなり、ステップ1005で“単位角度(45度)×2”が回転角度として決定される。これにより、まず撮像部107及び108が、不良撮像部101及び102の代替の撮像部として決定され、回転回数カウンタの値が初期値の0から1に変わる。この段階では、まだ不良撮像部119についての代替の撮像部が決定していないので、ステップ1002に戻る(ステップ1008でNo)。2度目のステップ1002ではNoと判定されてステップ1006に進み、そこで、単位角度が回転角度として決定され、撮像部120が不良撮像部119の代替の撮像部として決定される。
【0098】
このようにして、必要な回転量が算出される。
【0099】
<位置合せ処理>
図11は、光学系の異常によって画像に歪みやボケが発生するタイプの不良撮像部検知処理を説明した図9のフローチャートのステップ902における位置合せ処理の流れを示すフローチャートである。
【0100】
ステップ1101において、不良撮像部検知部502は、ブロック毎の動きベクトルを求める際にその前処理として有効ブロック判定を行う。ブロックマッチングによりブロック間の相関を求めようとする場合、ブロック内の画像が何らかの特徴量を持っている必要がある(水平方向や垂直方向にエッジを含んでいるとマッチングがとりやすい)。平坦でほとんど直流成分しか含んでいないブロックでは正しい動きベクトルを求めることはできないので、そのような可能性のあるブロックを本ステップにおいて除外する。
【0101】
図12は、平坦部のブロックを除外する処理の流れを示すフローチャートである。ここでは1つのブロックに対する処理を説明する。
【0102】
ステップ1201において、ブロック内にある水平方向の1つのラインに対し、最大値と最小値の差分値を算出する。例えば、ブロックのサイズが50×50の画素で構成されているとすると、ブロック内における水平方向の50の画素から最大値と最小値を求め、その差分値を算出する。これを水平ライン数分、すなわち50回繰り返す(ステップ1202)。
【0103】
ステップ1203において、50の差分値の中から最大の差分値を求める。
【0104】
ステップ1204において、あらかじめ設定した閾値Txと最大差分値との比較を行う。最大差分値が閾値Txよりも小さければ、水平方向には特徴量を持たないブロックであるとみなしステップ1205にて、無効ブロックと判定する。一方、最大差分値が閾値Txよりも大きければ、水平方向に特徴量を持つブロックであるとみなし、垂直方向で同様の検証を行う。すなわち、ステップ1206において、ブロック内にある垂直方向の1つのライン(50の画素)に対し、最大値と最小値の差分値を算出する。これを垂直ライン数分、すなわち50回繰り返す(ステップ1207)。そして、ステップ1208で50の差分値の中から最大の差分値を求めると、ステップ1209で予め設定した閾値Tyと最大差分値との比較を行う。最大差分値が閾値Tyよりも小さければ、垂直方向には特徴量を持たないブロックであるとみなし、ステップ1205で無効ブロックと判定する。一方、最大差分値が閾値Tyよりも大きければ、水平・垂直両方向に特徴を持つブロックとなり、正確なブロックマッチングが行われることが期待できるので、ステップ1210で有効ブロックと判定する。
【0105】
図11のフローチャートの説明に戻る。
【0106】
ステップ1102において、不良撮像部検知部502は、ブロックの動きベクトルを算出する。ここでは一般的なブロックマッチング方法について説明する。ブロックマッチング法では、マッチングの評価値としてブロック内の画素間の差分二乗和もしくは差分絶対値和を用いる。ベクトルを求める対象ブロックを基準画像のサーチ範囲内で順次動かしなら評価値を求めていく。サーチ範囲内で求めた全ての評価値の中から最小の評価値を持つ位置が対称ブロックと最も相関の高い位置であり、その移動量が動きベクトルとなる。サーチ範囲を1画素ずつ求めていくのがフルサーチ、サーチ範囲を間引きながら最小の評価値を求めてその近傍に対して細かくサーチするのがステップサーチである。ステップサーチは高速に動きベクトルを求める方法としてよく知られている。
【0107】
ステップ1103において、不良撮像部検知部502は、未処理のブロックがあるかどうかを判定する。未処理のブロックがあれば、ステップ1101に戻る。一方、すべてのブロックについて処理が完了していれば、ステップ1104に進む。
【0108】
ステップ1104において、不良撮像部検知部502は、有効動きベクトル判定を行う。これは、求めた動きベクトルのうち、算出結果が正しくないと判断されるものを除外する処理である。
【0109】
図13は、有効動きベクトル判定処理の流れを示すフローチャートである。
【0110】
ステップ1301で動きベクトルを入力し、ステップ1302でその発生頻度を算出する。全ての動きベクトルの発生頻度が求まるまでこの処理を繰り返した後(ステップ1303)、ステップ1304にて、最大発生頻度の動きベクトルを求める。次に、ステップ1305にて動きベクトルを再び入力し、ステップ1306で、この動きベクトルが最大発生頻度の動きベクトル、もしくはその近傍の動きベクトルであるかどうかの判定を行う。画面全体のぶれが、シフトのみである場合、各ブロックの動きベクトルは、最大発生頻度の動きベクトルにほぼ一致するはずであり、ロールぶれを伴う場合は、最大発生頻度の動きベクトルの近傍に多くの動きベクトルが発生すると考えられる。したがって、これらの値に含まれる動きベクトルは、ステップ1307にて、有効動きベクトルと判定する。一方、これらの値から外れている動きベクトルは、ステップ1308にて無効動きベクトルと判定する。以上の処理をすべての動きベクトルに対して実行する(ステップ1309)。
【0111】
図11のフローチャートの説明に戻る。
【0112】
ステップ1105において、不良撮像部検知部502は、ステップ1104における有効動きベクトル判定処理の結果から得られた無効動きベクトルに基づき、無効画素の数を算出する。具体的には、まず、画像を複数のブロック領域に分け、ブロック毎の動きベクトルを求める。そして、求められたブロックの動きベクトルについて有効、無効の判断をする。最後に、無効動きベクトルとして判断されたブロックにある画素数を無効画素の数としてカウントする。
【0113】
<画像合成処理>
図14は、図4のフローチャートのステップ407における画像合成処理の流れを示すフローチャートである。
【0114】
ステップ1401において、画像合成部506は、撮影された画像データから被写体の距離を推定する。ここで、距離推定の一例として、ステレオ距離推定法について簡単に説明する。
【0115】
図15は、ステレオ距離推定法の説明図である。図15において、1501は被写体であって、1502は被写体1501上のある一点である。被写体表面は波の形になっている。ステレオ距離推定法を用いる二台のカメラは全く同じ性能のカメラである。カメラは光学中心を通る光線で投影面への結像を実現する。1503及び1504は、2台のカメラそれぞれの光学中心である。そして、両カメラの光学中心を連接した破線で示すライン1505は基線と呼ばれる。1512及び1513は2台のカメラそれぞれの投影面である。投影面1512の中心を座標原点とする直交座標系は(u,v)である。光学中心と投影面座標原点と連接するラインは投影面に対して垂直に交わっており、その間の距離は焦点距離fである。同様に、投影面1513の中心を座標原点とする直交座標系は(u’,v’)である。三次元空間の被写体1501の座標(X,Y,Z)は両カメラの光学中心と連接し、投影面との接点は左右ステレオ画像上の画素になる。図15の1506及び1507は左右の投影面1512及び1513との接点をそれぞれ示している。接点1506の座標は(ux,vy)であり、接点1507の座標は(u’x,v’y)である。1510及び1511は、左右の投影面上のライン1508及び1509をそれぞれ拡大した画素配列を示している。
【0116】
この場合において、被写体1501上の点1502(X,Y,Z)は左のカメラ座標系を基準にしている。被写体1501の奥行き(距離)Zは、基線1305の長さをbとすると、以下の式により求められる。
【0117】
【数1】

【0118】
ステップ1402において、画像合成部506は、距離推定の結果に基づき、画像を合成する。距離情報を用いた画像合成処理としては、リフォーカス、超解像処理などが挙げられる。
【0119】
以上のとおり、本実施例によれば、何らかの理由によって不良撮像部が生じた場合に、当該不良撮像部と同じ位置から別の撮像部を用いて再撮影することで、本来的に不良撮像部で撮影されるはずの画像を取得することができる。
【0120】
(その他の実施形態)
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。

【特許請求の範囲】
【請求項1】
複数の撮像部によって構成される、回転機構によって回転可能な撮像部群と、
前記撮像部の不良を検知する不良撮像部検知手段と、
を備える多眼方式の撮像装置であって、
前記不良撮像部検知手段で不良が検知された撮像部の位置に不良が検知されなかった撮像部がくるように前記撮像部群を回転させ、不良が検知された撮像部によって取得されるべき画像を不良が検知されなかった撮像部を用いて撮影する
ことを特徴とする撮像装置。
【請求項2】
前記不良撮像部検知手段は、前記撮像部で撮影された画像について、
i)画素値が0の画素の割合
ii)平均明度
iii)無効画素の数
のうちの少なくとも1つを用いて、前記撮像部の不良を検知することを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記撮像部群が複数であることを特徴とする請求項1又は2に記載の撮像装置。
【請求項4】
前記不良撮像部検知手段で不良が検知された撮像部に関する情報を用いて、前記撮像部群の回転量を算出する回転量算出手段と、
前記算出された回転量に応じて、前記撮像部群を回転させる撮像部群回転制御手段と
をさらに備えたことを特徴とする請求項1〜3のいずれか1項に記載の撮像装置。
【請求項5】
複数の撮像部によって構成される、回転機構によって回転可能な撮像部群と、
前記撮像部の不良を検知する不良撮像部検知手段と、
を備える多眼方式の撮像装置における撮影方法であって、
前記不良撮像部検知手段で不良が検知された撮像部の位置に不良が検知されなかった撮像部がくるように前記撮像部群を回転させ、不良が検知された撮像部によって取得されるべき画像を不良が検知されなかった撮像部を用いて撮影する
ことを特徴とする撮影方法。
【請求項6】
コンピュータを請求項1乃至4の何れか1項に記載の撮像装置として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate