(57)【要約】      （修正有）【課題】複数の撮像部によって構成される多眼方式の撮像装置において、一部の撮像部に動作不良が生じても、簡易かつ精度よく当該動作不良の生じた撮像部の撮影領域をカバーする。【解決手段】複数の撮像部によって構成される、回転機構によって回転可能な撮像部群と、前記撮像部の不良を検知する不良撮像部検知手段と、を備える多眼方式の撮像装置であって、前記不良撮像部検知手段で不良が検知された撮像部の位置に不良が検知されなかった撮像部がくるように前記撮像部群を回転させ、不良が検知された撮像部によって取得されるべき画像を不良が検知されなかった撮像部を用いて撮影する。【選択図】図１
2013110669.tif 000002
【特許請求の範囲】
【請求項１】
複数の撮像部によって構成される、回転機構によって回転可能な撮像部群と、
前記撮像部の不良を検知する不良撮像部検知手段と、
を備える多眼方式の撮像装置であって、
前記不良撮像部検知手段で不良が検知された撮像部の位置に不良が検知されなかった撮像部がくるように前記撮像部群を回転させ、不良が検知された撮像部によって取得されるべき画像を不良が検知されなかった撮像部を用いて撮影する
ことを特徴とする撮像装置。
【請求項２】
前記不良撮像部検知手段は、前記撮像部で撮影された画像について、
i）画素値が０の画素の割合
ii）平均明度
iii)無効画素の数
のうちの少なくとも１つを用いて、前記撮像部の不良を検知することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記撮像部群が複数であることを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
前記不良撮像部検知手段で不良が検知された撮像部に関する情報を用いて、前記撮像部群の回転量を算出する回転量算出手段と、
前記算出された回転量に応じて、前記撮像部群を回転させる撮像部群回転制御手段と
をさらに備えたことを特徴とする請求項１〜３のいずれか１項に記載の撮像装置。
【請求項５】
複数の撮像部によって構成される、回転機構によって回転可能な撮像部群と、
前記撮像部の不良を検知する不良撮像部検知手段と、
を備える多眼方式の撮像装置における撮影方法であって、
前記不良撮像部検知手段で不良が検知された撮像部の位置に不良が検知されなかった撮像部がくるように前記撮像部群を回転させ、不良が検知された撮像部によって取得されるべき画像を不良が検知されなかった撮像部を用いて撮影する
ことを特徴とする撮影方法。
【請求項６】
コンピュータを請求項１乃至４の何れか１項に記載の撮像装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多視点からの撮影画像群を取得する撮像装置に関する。
【背景技術】
【０００２】
視差の異なる複数の画像を撮影する多眼方式の撮像装置が提案されている（例えば、非特許文献１）。多眼方式の撮像装置は、複数の撮像部を有し、各撮像部にてそれぞれ撮影を行うことで、視差のある多視点の画像データを得ることができ、後の画像処理によってピント位置を調節すること（リフォーカス）を可能にしている。このような技術はライトフィールドフォトグラフィと呼ばれる。この技術を用いれば、撮影後にピント調整を行えるため、撮影時のピント調整の失敗を画像処理で補うことができるという利点がある。さらに、画像処理方法を変えることで画像中の任意の被写体にピントを合わせた複数の画像を一枚の撮影画像から得る事ができ、撮影回数を減らす事ができるという利点もある。ライトフィールドフォトグラフィでは、多視点の画像データから、空間中の複数の位置について、それぞれの位置を通過する光線の方向と強度（ライトフィールド、以下、「ＬＦ」という。）を計算する。そして、得られたＬＦの情報を用いて、仮想の光学系を通過して仮想のセンサに結像した場合の画像を計算する。このような仮想の光学系やセンサを適宜設定する事で、リフォーカスも可能となる。
【０００３】
ＬＦを取得するための撮像技術としては、メインレンズの後ろにマイクロレンズアレイを置いたPlenoptic Cameraや、小型のカメラを並べたカメラアレイが知られている。
【０００４】
多眼方式の撮像装置は複数の撮像部を備えているところ、一部の撮像部に動作不良が発生して、完全な画像データが取得できなかったり、被写体の一部分が欠落した画像となってしまうことがある。その結果、複数の画像の重なった領域における対応点が見つからず、被写体までの距離推定精度が落ちてしまうという問題があった。
【０００５】
このような問題に対応可能な技術として、動作不良が生じたカメラの近くにある他の動作良好なカメラで取得した画像から補間して欠落した情報を埋める技術が提案されている（特許文献１）。
【０００６】
また、従来より、複数のカメラを用いた多視点の撮影システムにおいて、カメラの故障が検知された場合、隣のカメラの角度を変え、故障したカメラの撮影範囲をカバーして再撮影する技術も提案されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2008-191072号公報
【特許文献２】特開平10-105863号公報
【非特許文献】
【０００８】
【非特許文献１】Aaron Isaksen、他２名, “Dynamically Reparameterized Light Fields”, Proc. ACM. SIGGRAPH, pp.297-306, 2000.
【非特許文献２】Anat Levin“Motion-Invariant Photography”, SIGGRAPH 2008
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、例えば、特許文献１の技術では、他のカメラ（不良の生じたカメラに隣接する正常なカメラ）で取得される画像に補間の精度が依存することになるが、隣り合う複数のカメラの双方に動作不良が生じている場合には対応できないことになる。また、特許文献２の技術のように、カメラの方向を変更するだけでは、動作不良の生じたカメラの撮影領域を適切にカバーできない場合もある。
【課題を解決するための手段】
【００１０】
本発明に係る撮像装置は、複数の撮像部によって構成される、回転機構によって回転可能な撮像部群と、前記撮像部の不良を検知する不良撮像部検知手段と、を備える多眼方式の撮像装置であって、前記不良撮像部検知手段で不良が検知された撮像部の位置に不良が検知されなかった撮像部がくるように前記撮像部群を回転させ、不良が検知された撮像部によって取得されるべき画像を不良が検知されなかった撮像部を用いて撮影することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、多眼方式の撮像装置において一部の撮像部に動作不良が生じても、簡易かつ精度よく当該動作不良の生じた撮像部の撮影領域をカバーすることができる。
【図面の簡単な説明】
【００１２】
【図１】多眼方式の撮像装置における各撮像部の配置を示す図である。
【図２】本実施例に係る多眼方式の撮像装置の主要な構成要素を示す機能ブロック図である。
【図３】撮像部の内部構成を説明する図である。
【図４】多視点画像の撮影から合成画像データの出力に至るまでの一連の処理の流れを示すフローチャートである。
【図５】画像処理部の内部構成を示すブロック図である。
【図６】画像処理部で実行される各処理の流れを示すフローチャートである。
【図７】画像値がまったく取得できないタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。
【図８】撮像センサに欠損が生じるタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。
【図９】光学系の異常によって画像に歪みやボケが発生するタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。
【図１０】回転量算出処理の流れを示すフローチャートである。
【図１１】位置合せ処理の流れを示すフローチャートである。
【図１２】平坦部のブロックを除外する処理の流れを示すフローチャートである。
【図１３】有効動きベクトル判定処理の流れを示すフローチャートである。
【図１４】画像合成処理の流れを示すフローチャートである。
【図１５】ステレオ距離推定法の説明図である。
【発明を実施するための形態】
【００１３】
［実施例１］
図１は、本実施例に係る計２５個の撮影部を備えた多眼方式の撮像装置における各撮像部の配置を示す図である。１０１〜１２５は撮像部をそれぞれ示しており、撮像部１０１〜１０８、撮像部１０９〜１１６、撮像部１１７〜１２４が、それぞれ異なる直径の円周上に配置されている。以下、各円周上に配置された複数の撮像部を「円形撮像部群」と呼ぶこととする。各円形撮像部群には、それぞれ８個の撮像部が円周上に均等な間隔で配置される。各円形撮像部群は、その中心（撮像部１２５）を軸として、不図示の回転機構により時計／反時計方向に回転可能である（破線の矢印１３０、１４０、１５０を参照）。この回転動作は、後述の撮像部群回転制御部の制御下で自動的になされるが、手動による回転にも対応できる。なお、本実施例では各円形撮像部群の円周上に各撮像部が均等な間隔で配置されているが、不均等に配置してもよい。また、撮像部群は円形でなくてもよい。
【００１４】
図２は、本実施例に係る多眼方式の撮像装置の主要な構成要素を示す機能ブロック図である。
【００１５】
撮像部１０１〜１２５は、被写体の光情報をセンサで受光し、Ａ／Ｄ変換を施して、データ転送経路であるバス２１５に画像データを出力する。
【００１６】
１２６はフラッシュであり、撮影時に被写体に対して光を照射する。
【００１７】
２０１はＲＯＭであり、ＣＰＵ２０３で実行される制御プラグラム等を格納している。
【００１８】
２０２はＲＡＭであり、ＣＰＵ２０３の主メモリ、ワークエリア等として機能する。
【００１９】
２０３はＣＰＵであり、各部を統括的に制御するプロセッサである。
【００２０】
２０４は撮像部制御部であり、各撮像部のフォーカスを合わせる、シャッターを開く、絞りを調節するなど、ＣＰＵ２０３から指示された撮像系の制御を行う。
【００２１】
２０５は操作部であり、ボタンやモードダイヤルなどが該当し、これらを介して入力されたユーザ指示を受け取る。
【００２２】
２０６はＣＧ生成部であり、文字やグラフィックなどを生成する。
【００２３】
２０７は表示制御部であり、表示部２０８の表示制御を行う。
【００２４】
２０８は表示部であり、一般的には液晶ディスプレイが広く用いられる。ＣＧ生成部２０６、後述のデジタル信号処理部２０９や画像処理部２１３から受け取った撮影画像データや文字の表示を行う。また、タッチスクリーン機能を有していても良く、その場合は、ユーザ指示を操作部２０５の入力として扱うことも可能である。
【００２５】
２０９はデジタル信号処理部であり、デジタル値にホワイトバランス処理、ガンマ処理、ノイズ低減処理などを行い、デジタル画像データを生成する。
【００２６】
２１０は圧縮・伸張部であり、上記デジタル値をＪｐｅｇやＭｐｅｇなどのファイルフォーマットに変換する処理を行う。
【００２７】
２１１は、外部メモリ２１２とのインターフェースを行う外部メモリ制御部である。
【００２８】
２１２は外部メモリであり、例えば、ハードディスク、メモリーカード、ＣＦカード、ＳＤカード、ＵＳＢメモリなどである。
【００２９】
２１３は画像処理部であり、撮像部１０１〜１２５によって撮影された画像データ或いはデジタル信号処理部２０９から出力される画像データを用いて画像合成処理を行い、新たな画像データを生成する。その結果はバス２１５に出力される。さらに画像処理部２１３は、撮像部制御部２０４で撮影された画像データを用いて、動作不良の生じた撮像部（以下、単に「不良撮像部」と呼ぶ。）の存否、不良撮像部の特定、円形撮像部群の回転量の算出などの処理も行う。画像処理部２１３については後でさらに詳しく説明する。
【００３０】
撮像部群回転制御部２１４は、画像処理部２１３での処理結果に基づいて、所定の回転方向及び回転量で各円形撮像部群が回転するように回転機構を駆動制御する。
【００３１】
図３は、撮像部の内部構成を説明する図である。
【００３２】
各撮像部は、レンズ３０１〜３０３、絞り３０４、シャッター３０５、光学ローパスフィルタ３０６、ｉＲカットフィルタ３０７、カラーフィルタ３０８、センサ３０９及びＡ／Ｄ変換部３１０で構成される。レンズ３０１〜３０３は夫々、ズームレンズ３０１、フォーカスレンズ３０２、ぶれ補正レンズ３０３である。センサ３０９は、例えばＣＭＯＳやＣＣＤなどのセンサである。
【００３３】
センサ３０９で被写体の光量を検知すると、検知された光量がＡ／Ｄ変換部３１０によってデジタル値に変換され、デジタルデータとなってバス２１５に出力される。
【００３４】
図４は、本実施例に係る多眼方式の撮像装置における、多視点画像の撮影から合成画像データの出力に至るまでの一連の処理の流れを示すフローチャートである。
【００３５】
ステップ４０１において、撮像部１０１〜１２５によって、視差のある複数の画像が撮影され、視差の異なる多視点の画像データが取得される。
【００３６】
ステップ４０２において、画像処理部２１３は、取得された多視点画像データを用いて、不良撮像部の有無の判定及び不良撮像部があると判定された場合の当該不良撮像部の特定を行う。
【００３７】
ステップ４０３において、画像処理部２１３は、特定された不良撮像部の属する円形撮像部群の回転量及び回転回数を算出する。
【００３８】
ステップ４０４において、撮像部群回転制御部２１４は、算出された回転量に従って対象となる円形撮像部群を回転させる。
【００３９】
ステップ４０５において、撮像部制御部２０４は、回転により不良撮像部の位置に移動した撮像部によって再撮影を行う。
【００４０】
ステップ４０６において、撮像部群回転制御部２１４は、円形撮像部群を回転させた回数が、ステップ４０３で算出された回転回数に到達しているかどうかを判定する。算出された回転回数に到達していればステップ４０７に進む。一方、算出された回転回数に到達していなければステップ４０４に戻る。
【００４１】
ステップ４０７において、画像処理部２１３は、ステップ４０１で撮影された画像データ及びステップ４０５で再撮影された画像データを用いて画像の合成処理を行う。すなわち、任意のピント位置における仮想のセンサが得る画像データ（合成画像データ）が生成される。
【００４２】
ステップ４０８において、生成された合成画像データが出力される。
【００４３】
図５は、画像処理部２１３の内部構成を示すブロック図である。
【００４４】
画像処理部２１３は、回転フラグ処理部５０１、不良撮像部検知部５０２、回転量算出部５０３、回転フラグ生成部５０４、画像保存部５０５、画像合成部５０６で構成される。
【００４５】
回転フラグ処理部５０１は、回転フラグ生成部５０４で生成される回転フラグに従って、不良撮像部の検知を行うか、画像合成を行うかを切り替える。回転フラグの初期値は０であり、回転フラグの値が０の場合、不良撮像部検知部５０２が動作するように信号が与えられる。回転フラグの値が1の場合は、画像合成部５０６が動作するように信号が与えられる。
【００４６】
不良撮像部検知部５０２は、入力された画像データを用いて不良撮像部の位置（不良撮像部が、どの円形撮像部群のどの角度に配置されているのか）を特定する。
【００４７】
回転量算出部５０３は、特定された不良撮像部の位置情報（本実施例では、不良撮像部の配置角度（θ）及び当該不良撮像部の属する円形撮像部群の半径（ｒ）の情報）を受け取り、円形撮像部群をどの程度回転させればよいかを算出する。
【００４８】
画像保存部５０５は、入力された画像データを一時的に格納する。画像処理部２１３に入力される画像データは、この画像保存部５０５にすべて一旦格納され、画像合成部５０６に送られる。ただし、円形撮像部群を回転させた後の再撮影に係る画像データについては、画像合成部５０６に直接送るようにしてもよい（図５中の破線を参照）。
【００４９】
画像合成部５０６は、画像保存部５０５から多視点の画像データを受け取り、所望の画像を得るための画像合成を行う。
【００５０】
次に、画像処理部２１３で行われる処理の詳細を説明する。図６は、画像処理部２１３で実行される各処理の流れを示すフローチャートである。
【００５１】
ステップ６０１において、画像処理部２１３は、撮像部１０１〜１２５で撮影された画像のデータを取得する。
【００５２】
ステップ６０２において、画像処理部２１３は、回転フラグの値を取得する。
【００５３】
ステップ６０３において、画像処理部２１３は、撮像部１０１〜１２５の配置を特定するためのパラメータを取得する。具体的には、各撮像部の属する円周の半径及び各撮像部が配置されている角度を取得する。
【００５４】
ステップ６０４において、画像処理部２１３は、取得した回転フラグの値が０であるかどうかを判定する。回転フラグの値が０と判定されれば、ステップ６０５に進む。一方、回転フラグの値が１と判定されれば、ステップ６０８に進む。
【００５５】
ステップ６０５において、画像処理部２１３は、不良撮像部検知処理を行う。具体的には、不良撮像部の有無をチェックし、不良撮像部があればその位置及びその数を特定する。不良撮像部検知処理の詳細については後述する。
【００５６】
ステップ６０６において、画像処理部２１３は、ステップ６０５で検知された不良撮像部の位置及びその数の情報を利用して、当該不良撮像部の属する円形撮像部群をどれだけ回転させればよいかを決定する。この回転量算出処理の詳細については後述する。
【００５７】
ステップ６０７において、画像処理部２１３は、回転フラグの値を０から１に変更する。
【００５８】
ステップ６０８において、画像処理部２１３は、ステップ６０１で取得した画像データを用いて画像を合成する処理を行う。
【００５９】
ステップ６０９において、画像処理部２１３は、回転フラグの値を１から０に変更する。
【００６０】
以上が、画像処理部２１３における処理の大まかな流れである。
【００６１】
＜不良撮像部検知処理＞
次に、不良撮像部検知処理について説明する。
【００６２】
撮像部に生じ得る不良のバリエーションとしては大きく分けて三つのタイプが考えられる。１つは、画像値（画像を表すデジタル信号の値）が全く取得できないようなハードウェアの異常・故障である。次に、画像値が部分的に取得できなくなる、例えば撮像センサに欠損が生じたような場合が考えられる。もう１つは、光学系の異常によって画像に歪みやボケが発生するような場合である。以下では、この三つのタイプのそれぞれに応じた不良撮像部の検知処理について説明する。
【００６３】
図７は、画像値がまったく取得できないタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。
【００６４】
ステップ７０１において、不良撮像部検知部５０２は、画像データI(r[i],θ[j])を取得する。ここで、ｒ[i]は当該画像を撮影した撮像部の属する円周の半径、θ[j]はその円周上のどの位置に配置された撮像部であるかを特定するための角度を示す。この場合においてiは当該円周が中心点から見て何番目の円周上であるかを表す値（正の整数）である。例えば、図１に示した２５個の撮影部を備えた撮像装置の場合、最も外側に位置する円周上の撮像部１０１で撮影された画像であれば、ｉ＝３となる。なお、円周の中心点に位置する撮像部１２５で撮影された画像であればｉ＝０となる。そして、ｊは、円周の中心点と円周上の基準となる点とを結んだ軸を基準とした場合に、θが何番目の角度に該当するのかを示す値（正の整数）である。例えば図１の場合、円周は８つに分割されているからｊは０から７の値を取ることになる。そして、撮像部１０８の配置される点を基準点とすると、仮に画像を撮影したのが撮像部１０２であったとすれば、角度θは９０度、ｊは２となる。このように、各撮像部で撮影された画像データにr[i],θ[j]の情報を含むことによって、どの撮像部によって撮影された画像であるかが特定される。
【００６５】
ステップ７０２において、不良撮像部検知部５０２は、取得した画像における画素値が０の画素の割合（以下、「画素値０率」と呼ぶ）を算出する。具体的には、取得した画像において、画素値が０の画素をカウントし、カウントされた画素数を当該画像の総画素数で割ることにより、取得された画像における画素値０率を求める。
【００６６】
ステップ７０３において、不良撮像部検知部５０２は、各撮像部で撮影されたすべての画像に対して、画素値０率の算出が完了したかどうかを判定する。すべての画像について画素値０率の算出が完了していればステップ７０４に進む。一方、未だ画素値０率を算出していない画像がある場合には、ステップ７０１に戻る。
【００６７】
ステップ７０４において、不良撮像部検知部５０２は、不良撮像部を決定する。具体的には、画素値０率が所定の閾値（例えば、９５％）を超える画像を抽出し、当該抽出された画像を撮影した撮像部を不良撮像部であると決定する。このようにして決定された不良撮像部を特定する情報(r[i],θ[j])は、回転量算出部５０３へと送られる。
【００６８】
以上が、画像値がまったく取得できないタイプの不良撮像部を検知する処理である。
【００６９】
図８は、撮像センサに欠損が生じるタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。なお、上述した図７のフローチャートと共通する部分については説明を簡略化ないしは省略することとする。
【００７０】
ステップ８０１において、不良撮像部検知部５０２は、画像データＩ(r[i],θ[j])を取得する。  
【００７１】
ステップ８０２において、不良撮像部検知部５０２は、取得した画像の明度Ｂ(r[i],θ[j])を求める。例えば、取得された画像がＲＧＢ色空間の画像信号データであれば、各画素の信号値をＬ*ａ*ｂ*表色系の色に変換し、各画素のＬ*値の平均値を取ることによってこの明度は求められる。なお、Ｌ*ａ*ｂ*表色系に代えてＬ*ｕ*ｖ*表色系など、他の表色系を用いることができることはいうまでもない。
【００７２】
ステップ８０３において、不良撮像部検知部５０２は、各撮像部で撮影されたすべての画像について、明度Ｂ(r[i],θ[j])が求められたかどうかを判定する。すべての画像について明度が求められていればステップ８０４に進む。一方、未だ明度が求められていない画像がある場合には、ステップ８０１に戻る。
【００７３】
ステップ８０４において、不良撮像部検知部５０２は、すべての画像の明度の平均値Ｂ_aveを算出する。この平均明度Ｂ_aveは、各画像における全画素のＬ*値をすべて加算し、それをすべての画像の画素数の合計値（総画素数）で割ったものと等しい。
【００７４】
ステップ８０５において、不良撮像部検知部５０２は、不良撮像部を決定する。具体的には、算出された平均明度Ｂ_aveと各撮像部で撮影された画像の明度とを比較して差分を算出し、当該差分と予め定めた閾値とを比較して、当該差分の値が閾値よりも小さければ、当該画像を撮影した撮像部を不良撮像部であると決定する。このようにして決定された不良撮像部を特定する情報(r[i],θ[j])は、回転量算出部５０３へと送られる。
【００７５】
以上が、撮像センサに欠損が生じるタイプの不良撮像部を検知する処理である。
【００７６】
図９は、光学系の異常によって画像に歪みやボケが発生するタイプの不良撮像部の検知に適した処理の流れを示すフローチャートである。本実施例では、画像の歪みやボケの有無を、位置合せ処理を行うことによって間接的に検知する手法について説明する。
【００７７】
ステップ９０１において、不良撮像部検知部５０２は、すべての撮像部で撮影された全画像データＩ(r[i],θ[j])及び画像データＩ(r[i],θ[j+1])を取得する。  
【００７８】
ステップ９０２において、不良撮像部検知部５０２は、位置合わせ処理を行い、各画像内の無効画素の数（Invalid_num）を求める。具体的には、無効画素の画像I(r[i],θ[j])と同円周で角度数が次の画像I(r[i],θ[j+1])を用いて位置合わせ処理して無効画素数を算出する。この位置合わせ処理の詳細については、後述する。
【００７９】
ステップ９０３において、不良撮像部検知部５０２は、無効画素の数が所定値（例えば、全画素数の半分）以上であるかどうかを判定する。無効画素の数が所定値より少ない場合は、歪みやボケがないと判断し、ステップ９０４に進む。一方、無効画素の数が所定値以上であれば、歪みやボケがあると判断し、ステップ９０５に進む。
【００８０】
ステップ９０４において、不良撮像部検知部５０２は、両方の画像にフラグ値１をセットする。
【００８１】
ステップ９０５において、不良撮像部検知部５０２は、両方の画像にフラグ値−１をセットする。
【００８２】
ステップ９０６において、不良撮像部検知部５０２は、未処理の画像があるかどうかを判定する。未処理の画像があれば、ステップ９０１に戻る。一方、すべての画像についての処理が終了していれば、ステップ９０７に進む。
【００８３】
ステップ９０７において、不良撮像部検知部５０２は、フラグ値が−１である画像を撮影した撮像部を不良撮像部として決定する。
【００８４】
以上が、光学系の異常によって画像に歪みやボケが発生するタイプの不良撮像部を検知する処理である。
【００８５】
＜回転量算出処理＞
図１０は、回転量算出処理の流れを示すフローチャートである。
【００８６】
ステップ１００１において、回転量算出部５０３は、すべての不良撮像部に関する、不良撮像部を特定する情報E[N] ＝(r[i],θ[j])を取得する。
【００８７】
ステップ１００２において、回転量算出部５０３は、不良撮像部の数が複数であるかどうかを判定する。複数であれば、ステップ１００３に進む。一方、複数でなければ、ステップ１００６に進む。
【００８８】
ステップ１００３において、回転量算出部５０３は、当該複数の不良撮像部が同一の円周上に存在するかどうかを判定する。同じ円周上に複数の不良撮像部が存在すれば、ステップ１００4に進む。一方、同じ円周上には存在していない場合には、ステップ１００６に進む。
【００８９】
ステップ１００４において、回転量算出部５０３は、当該同一円周上に存在する複数の不良撮像部が、互いに隣接しているかどうか（連続性）を判定する。互いに隣接していれば、ステップ１００５に進む。一方、隣接しておらず互いに離れて位置している場合には、ステップ１００６に進む。
【００９０】
ステップ１００２〜ステップ１００４によって、不良撮像部の数、位置、連続性を確認すると、ステップ１００５及びステップ１００６において、回転量算出部５０３は、回転角度を決定する。
【００９１】
ステップ１００５の場合には、回転量は、以下の式（１）によって求められる。  
回転角度＝単位角度×隣接する不良撮像部の数              ・・・式（１）
なお、本実施例（図１）の場合、単位角度は４５度である。  
【００９２】
ステップ１００６の場合には、単位角度がそのまま回転角度として決定される。
【００９３】
なお、回転角度の決定に際しては、回転後に正常な撮像部による再撮影が担保されるように回転方向が決定される。
【００９４】
ステップ１００７において、回転量算出部５０３は、回転回数カウンタの値をインクリメント（＋１）する。
【００９５】
ステップ１００８において、回転量算出部５０３は、未処理の不良撮像部があるかどうか、すなわち、代替の撮像部が決定できていない不良撮像部があるかどうかを判定する。未処理の不良撮像部があれば、ステップ１００２に戻る。一方、すべての不良撮像部について代替の撮像部が決定されていれば、本処理を終える。
【００９６】
例えば、図１において、撮像部１０１、１０２及び１１９が不良撮像部として検知されていた場合、上記回転量算出処理によって以下のように回転量（回転角度と回転回数）が算出されることになる。
【００９７】
まず、不良撮像部の数は３個であり、そのうちの２個は同じ円周上に隣接して配置されているので、ステップ１００２〜ステップ１００４ですべてＹｅｓとなり、ステップ１００５で“単位角度（４５度）×２”が回転角度として決定される。これにより、まず撮像部１０７及び１０８が、不良撮像部１０１及び１０２の代替の撮像部として決定され、回転回数カウンタの値が初期値の０から１に変わる。この段階では、まだ不良撮像部１１９についての代替の撮像部が決定していないので、ステップ１００２に戻る（ステップ１００８でＮｏ）。２度目のステップ１００２ではＮｏと判定されてステップ１００６に進み、そこで、単位角度が回転角度として決定され、撮像部１２０が不良撮像部１１９の代替の撮像部として決定される。
【００９８】
このようにして、必要な回転量が算出される。
【００９９】
＜位置合せ処理＞
図１１は、光学系の異常によって画像に歪みやボケが発生するタイプの不良撮像部検知処理を説明した図９のフローチャートのステップ９０２における位置合せ処理の流れを示すフローチャートである。
【０１００】
ステップ１１０１において、不良撮像部検知部５０２は、ブロック毎の動きベクトルを求める際にその前処理として有効ブロック判定を行う。ブロックマッチングによりブロック間の相関を求めようとする場合、ブロック内の画像が何らかの特徴量を持っている必要がある（水平方向や垂直方向にエッジを含んでいるとマッチングがとりやすい）。平坦でほとんど直流成分しか含んでいないブロックでは正しい動きベクトルを求めることはできないので、そのような可能性のあるブロックを本ステップにおいて除外する。
【０１０１】
図１２は、平坦部のブロックを除外する処理の流れを示すフローチャートである。ここでは１つのブロックに対する処理を説明する。
【０１０２】
ステップ１２０１において、ブロック内にある水平方向の１つのラインに対し、最大値と最小値の差分値を算出する。例えば、ブロックのサイズが５０×５０の画素で構成されているとすると、ブロック内における水平方向の５０の画素から最大値と最小値を求め、その差分値を算出する。これを水平ライン数分、すなわち５０回繰り返す（ステップ１２０２）。
【０１０３】
ステップ１２０３において、５０の差分値の中から最大の差分値を求める。
【０１０４】
ステップ１２０４において、あらかじめ設定した閾値Ｔｘと最大差分値との比較を行う。最大差分値が閾値Ｔｘよりも小さければ、水平方向には特徴量を持たないブロックであるとみなしステップ１２０５にて、無効ブロックと判定する。一方、最大差分値が閾値Ｔｘよりも大きければ、水平方向に特徴量を持つブロックであるとみなし、垂直方向で同様の検証を行う。すなわち、ステップ１２０６において、ブロック内にある垂直方向の１つのライン（５０の画素）に対し、最大値と最小値の差分値を算出する。これを垂直ライン数分、すなわち５０回繰り返す（ステップ１２０７）。そして、ステップ１２０８で５０の差分値の中から最大の差分値を求めると、ステップ１２０９で予め設定した閾値Ｔｙと最大差分値との比較を行う。最大差分値が閾値Ｔｙよりも小さければ、垂直方向には特徴量を持たないブロックであるとみなし、ステップ１２０５で無効ブロックと判定する。一方、最大差分値が閾値Ｔｙよりも大きければ、水平・垂直両方向に特徴を持つブロックとなり、正確なブロックマッチングが行われることが期待できるので、ステップ１２１０で有効ブロックと判定する。
【０１０５】
図１１のフローチャートの説明に戻る。
【０１０６】
ステップ１１０２において、不良撮像部検知部５０２は、ブロックの動きベクトルを算出する。ここでは一般的なブロックマッチング方法について説明する。ブロックマッチング法では、マッチングの評価値としてブロック内の画素間の差分二乗和もしくは差分絶対値和を用いる。ベクトルを求める対象ブロックを基準画像のサーチ範囲内で順次動かしなら評価値を求めていく。サーチ範囲内で求めた全ての評価値の中から最小の評価値を持つ位置が対称ブロックと最も相関の高い位置であり、その移動量が動きベクトルとなる。サーチ範囲を１画素ずつ求めていくのがフルサーチ、サーチ範囲を間引きながら最小の評価値を求めてその近傍に対して細かくサーチするのがステップサーチである。ステップサーチは高速に動きベクトルを求める方法としてよく知られている。
【０１０７】
ステップ１１０３において、不良撮像部検知部５０２は、未処理のブロックがあるかどうかを判定する。未処理のブロックがあれば、ステップ１１０１に戻る。一方、すべてのブロックについて処理が完了していれば、ステップ１１０４に進む。
【０１０８】
ステップ１１０４において、不良撮像部検知部５０２は、有効動きベクトル判定を行う。これは、求めた動きベクトルのうち、算出結果が正しくないと判断されるものを除外する処理である。
【０１０９】
図１３は、有効動きベクトル判定処理の流れを示すフローチャートである。
【０１１０】
ステップ１３０１で動きベクトルを入力し、ステップ１３０２でその発生頻度を算出する。全ての動きベクトルの発生頻度が求まるまでこの処理を繰り返した後（ステップ１３０３）、ステップ１３０４にて、最大発生頻度の動きベクトルを求める。次に、ステップ１３０５にて動きベクトルを再び入力し、ステップ１３０６で、この動きベクトルが最大発生頻度の動きベクトル、もしくはその近傍の動きベクトルであるかどうかの判定を行う。画面全体のぶれが、シフトのみである場合、各ブロックの動きベクトルは、最大発生頻度の動きベクトルにほぼ一致するはずであり、ロールぶれを伴う場合は、最大発生頻度の動きベクトルの近傍に多くの動きベクトルが発生すると考えられる。したがって、これらの値に含まれる動きベクトルは、ステップ１３０７にて、有効動きベクトルと判定する。一方、これらの値から外れている動きベクトルは、ステップ１３０８にて無効動きベクトルと判定する。以上の処理をすべての動きベクトルに対して実行する（ステップ１３０９）。
【０１１１】
図１１のフローチャートの説明に戻る。
【０１１２】
ステップ１１０５において、不良撮像部検知部５０２は、ステップ１１０４における有効動きベクトル判定処理の結果から得られた無効動きベクトルに基づき、無効画素の数を算出する。具体的には、まず、画像を複数のブロック領域に分け、ブロック毎の動きベクトルを求める。そして、求められたブロックの動きベクトルについて有効、無効の判断をする。最後に、無効動きベクトルとして判断されたブロックにある画素数を無効画素の数としてカウントする。
【０１１３】
＜画像合成処理＞
図１４は、図４のフローチャートのステップ４０７における画像合成処理の流れを示すフローチャートである。
【０１１４】
ステップ１４０１において、画像合成部５０６は、撮影された画像データから被写体の距離を推定する。ここで、距離推定の一例として、ステレオ距離推定法について簡単に説明する。
【０１１５】
図１５は、ステレオ距離推定法の説明図である。図１５において、１５０１は被写体であって、１５０２は被写体１５０１上のある一点である。被写体表面は波の形になっている。ステレオ距離推定法を用いる二台のカメラは全く同じ性能のカメラである。カメラは光学中心を通る光線で投影面への結像を実現する。１５０３及び１５０４は、２台のカメラそれぞれの光学中心である。そして、両カメラの光学中心を連接した破線で示すライン１５０５は基線と呼ばれる。１５１２及び１５１３は２台のカメラそれぞれの投影面である。投影面１５１２の中心を座標原点とする直交座標系は（ｕ，ｖ）である。光学中心と投影面座標原点と連接するラインは投影面に対して垂直に交わっており、その間の距離は焦点距離ｆである。同様に、投影面１５１３の中心を座標原点とする直交座標系は（ｕ’，ｖ’）である。三次元空間の被写体１５０１の座標（Ｘ，Ｙ，Ｚ）は両カメラの光学中心と連接し、投影面との接点は左右ステレオ画像上の画素になる。図１５の１５０６及び１５０７は左右の投影面１５１２及び１５１３との接点をそれぞれ示している。接点１５０６の座標は（ｕx，ｖy）であり、接点１５０７の座標は（ｕ’x，ｖ’y）である。１５１０及び１５１１は、左右の投影面上のライン１５０８及び１５０９をそれぞれ拡大した画素配列を示している。
【０１１６】
この場合において、被写体１５０１上の点１５０２（Ｘ，Ｙ，Ｚ）は左のカメラ座標系を基準にしている。被写体１５０１の奥行き（距離）Ｚは、基線１３０５の長さをbとすると、以下の式により求められる。
【０１１７】
【数１】
2013110669.tif 000003
【０１１８】
ステップ１４０２において、画像合成部５０６は、距離推定の結果に基づき、画像を合成する。距離情報を用いた画像合成処理としては、リフォーカス、超解像処理などが挙げられる。
【０１１９】
以上のとおり、本実施例によれば、何らかの理由によって不良撮像部が生じた場合に、当該不良撮像部と同じ位置から別の撮像部を用いて再撮影することで、本来的に不良撮像部で撮影されるはずの画像を取得することができる。
【０１２０】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
2013110669.tif 000004
【図２】
2013110669.tif 000005
【図３】
2013110669.tif 000006
【図４】
2013110669.tif 000007
【図５】
2013110669.tif 000008
【図６】
2013110669.tif 000009
【図７】
2013110669.tif 000010
【図８】
2013110669.tif 000011
【図９】
2013110669.tif 000012
【図１０】
2013110669.tif 000013
【図１１】
2013110669.tif 000014
【図１２】
2013110669.tif 000015
【図１３】
2013110669.tif 000016
【図１４】
2013110669.tif 000017
【図１５】
2013110669.tif 000018