[本発明を適用した撮像装置の一実施の形態の構成例]
図1は、本発明の画像処理装置を適用した撮像装置の一実施の形態の構成例を示すブロック図である。
図1の撮像装置は、例えば、静止画、若しくは、動画、又は、静止画と動画との両方を撮影することができるディジタルカメラであり、光学系11、撮像素子12、信号処理部13、制御部14、表示部15、記録再生部16、操作部17、手ぶれ補正部18、動きセンサ19、及び、移動量検出部20を含む。
光学系11は、レンズや絞り等を含み、そこに入射する光を、撮像素子12の受光面上に集光する。
撮像素子12は、例えば、CCD(Charged Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)センサ等を含み、その受光面には、光学系11によって集光された光による光学像が形成される。
撮像素子12は、受光面に形成された光学像を光電変換することで、画像を撮像し、その光学像の撮像結果であるアナログ信号の撮像信号を得る。
また、撮像素子12は、アナログ信号の信号処理回路を含み、アナログ信号の撮像信号の相関二重サンプリングや、自動利得制御による信号レベルの補正等のアナログ信号処理を行う。
そして、撮像素子12は、アナログ信号処理後の撮像信号を、A/D(Analog/Digital)変換し、これにより、アナログ信号の撮像信号を、ディジタル信号の画像データに変換して、信号処理部13に出力する。
信号処理部13は、例えば、DSP(Digital Signal Processor)等を含み、撮像素子12からの画像データに、ガンマ補正や、輪郭強調補正、ホワイトバランス補正、色補正等の各種のディジタル信号処理を施し、そのディジタル信号処理後の画像データを、制御部14に出力する。
制御部14は、CPU(Central Processing Unit)14Aやメモリ14Bを含み、信号処理部13からの画像データや、操作部17の操作(操作部17から供給される操作信号)、移動量検出部20から供給される移動量(センサ移動量)等に基づき、撮像装置を構成する各ブロックの制御その他の各種の処理を行う。
すなわち、制御部14では、CPU14Aが、メモリ14Bに記憶されたプログラムを実行することで、各種の処理を行う。メモリ14Bは、CPU14Aが実行するプログラムや、CPU14Aの動作上必要なデータを記憶する。
ここで、CPU14Aに実行させるプログラムは、メモリ14Bにあらかじめインストールしておく他、光ディスクや、磁気ディスク、半導体メモリ等のリムーバブル記録媒体に記録して、提供(頒布)し、撮像装置のメモリ14Bにインストールすることができる。
また、プログラムは、インターネット等のサイトからダウンロードし、撮像装置のメモリ14Bにインストールすることができる。
なお、制御部14は、信号処理部13からの画像データや、記録再生部16から供給される画像データを、表示部15に供給する。また、制御部14は、信号処理部13からの画像データを、必要に応じて、記録再生部16に供給する。
表示部15は、例えば、LCD(Liquid Crystal Display)等の表示デバイスや、表示デバイスと一体的に構成されたタッチパネルを含み、制御部15からの画像データに対応して、画像を表示する。
ここで、表示部15は、例えば、信号処理部13から、制御部14を介して供給される画像データに対応して、画角の広い、いわゆるスルー画を表示する。ユーザは、このスルー画によって、画像を確認しながら、撮影を行うことができる。
記録再生部16は、制御部14から供給される画像データを、ハードディスクや、光磁気ディスク、DVD(Digital Versatile Disc)、MD(登録商標)(Mini Disc)、半導体メモリ、磁気テープ等のディジタル信号を記録可能な記録媒体(図示せず)に記録する。
また、記録再生部16は、記録媒体に記録された画像データを再生し、制御部14を介して、表示部15に供給する。
ここで、表示部15は、以上のように、記録再生部16から、制御部14を介して供給される画像データに対応して、画像を表示する。これにより、ユーザは、記録(撮影)された画像を確認することができる。
操作部17は、ユーザによって操作されるシャッタ(レリーズ)ボタンや、録画ボタン等であり、ユーザの操作に対応した操作信号を、制御部14に供給する。
なお、操作部17には、物理的な操作ボタン(ボタンの他、スイッチやレバー等を含む)と、表示部15に含まれるタッチパネルに表示される操作ボタン(アイコン)とが含まれる。
手ぶれ補正部18は、移動量検出部20から供給される、撮像装置の移動量であるセンサ移動量に基づいて、光学系11及び撮像素子12のうちの一方である、例えば、光学系11を、光軸に垂直な方向に移動させ、光学系11と撮像素子12との相対的な位置関係を変化させることにより、手ぶれ補正を行う。
すなわち、手ぶれ補正部18は、手ぶれ等によって、撮像装置が移動することにより生じる、撮像素子12の受光面に形成される光学像の位置のずれをキャンセルするように、光学系11と撮像素子12との相対的な位置関係を変化させる手ぶれ補正を行う。
なお、手ぶれ補正部18において、光学系11と撮像素子12との相対的な位置関係は、光学系11及び撮像素子12のうちの、撮像素子12を移動させることによって変化させることも可能である。
動きセンサ19は、撮像装置の動きを検出し、その動きに対応するセンサ信号を出力する。
すなわち、動きセンサ19は、例えば、角速度を検出するジャイロスコープ(ジャイロセンサ)である角速度センサであり、角速度に対応するセンサ信号である角速度信号を出力する。
動きセンサ19が出力する角速度信号は、移動量検出部20に供給される。
移動量検出部20は、動きセンサ19からの角速度信号から、撮像装置の移動量であるセンサ移動量を検出し、制御部14と、手ぶれ補正部18とに供給する。
すなわち、移動量検出部20は、アンプ21、A/D変換器22、及び、積分器23を含む。
アンプ21は、移動量検出部20からの角速度信号を、所定のゲインで増幅し、A/D変換部22に供給する。
A/D変換器22は、アンプ21からの角速度信号を、所定のサンプリングクロックに従ってサンプリングし、これにより、アナログの角速度信号を、ディジタルの角速度信号に変換して、積分器23に供給する。
積分器23は、A/D変換器22からの角速度信号を、所定の期間単位で積分(積算)することで、撮像装置の移動量であるセンサ移動量を求め、制御部14と、手ぶれ補正部18とに供給する。
ここで、角速度センサである動きセンサ19は、ヨー(yaw)方向(水平方向)と、ピッチ(pitch)方向(垂直方向)とのそれぞれの角速度を検出し、そのヨー方向及びピッチ方向それぞれの角速度信号を出力する。
また、移動量検出部20は、動きセンサ19からのヨー方向及びピッチ方向それぞれの角速度信号を独立に処理し、ヨー方向及びピッチ方向それぞれのセンサ移動量を検出する。
なお、動きセンサ19としては、角速度センサの他、角加速度を検出する角加速度センサを用いることができる。
動きセンサ19として、角加速度センサを用いる場合、動きセンサ19が出力するセンサ信号を積分することにより、角加速度を求めることができるので、以降は、動きセンサ19として、角速度センサを用いる場合と同様にして、センサ移動量を求めることができる。
以上のように構成される撮像装置では、動きセンサ19が、撮像装置の角速度に対応する角速度信号を、移動量検出部20に出力する。
移動量検出部20は、動きセンサ19からの角速度信号から、撮像装置の移動量であるセンサ移動量を検出し、制御部14と、手ぶれ補正部18とに供給する。
手ぶれ補正部18は、移動量検出部20からのセンサ移動量に基づいて、光学系11を、光軸に垂直な方向に移動させることにより、手ぶれ補正を行う。
一方、光学系11では、そこに入射する光が、撮像素子12の受光面上に集光され、これにより、撮像素子12の受光面には、光学像が形成される。
撮像素子12は、受光面に形成された光学像を撮像し、その撮像によって得られる1枚(画面分)の撮像画像(の画像データ)を、信号処理部13に供給する。
信号処理部13は、撮像素子12からの撮像画像に、ディジタル信号処理を施し、制御部14に供給する。
制御部14は、信号処理部13から供給される撮像画像を、表示部15に供給して対応する画像を表示させる。これにより、表示部15では、スルー画が表示される。
ユーザが、表示部15に表示されたスルー画を見ながら、構図等を確認し、操作部17のうちのシャッタボタンを操作すると、撮像素子12において、あらかじめ設定された、例えば、絞りや、シャッタ速度等の撮影パラメータに従って撮像が行われる。
そして、撮像素子12は、撮像の結果得られる撮像画像を、信号処理部13に供給し、信号処理部13は、撮像素子12からの撮像画像に、ディジタル信号処理を施して、制御部14に供給する。
制御部14は、以上のようにして、シャッタボタンが操作されたときに、信号処理部13から供給される撮像画像を、記録再生部16に供給して記録させる。
図1の撮像装置の撮影モードとしては、以上のように、ユーザによるシャッタボタンの操作に対応して、1枚の撮像画像を撮影する(記録する)モードである通常モードの他、パノラマ画像を撮影するモードであるパノラマモードがある。
撮影モードの設定(変更)は、例えば、ユーザが操作部17を操作することにより行うことができる。
また、パノラマモードでは、ユーザに、撮像装置を、ある方向にスイープしてもらうことで、撮像装置の撮像方向をシフトしながら、撮像素子12で、複数枚の撮像画像を撮像し、その複数枚の撮像画像を合成することで、パノラマ画像が撮影(生成)されるが、撮像装置をスイープする方向(スイープ方向)は、例えば、ユーザが操作部17を操作することにより設定することができる。
撮影モードが、パノラマモードである場合、制御部14は、表示部15に、撮影モードがパノラマモードである旨と、操作部17の操作によって設定されたスイープ方向(以下、設定スイープ方向ともいう)とを、アイコン等によって表示させる。
したがって、ユーザは、表示部15の表示を見ることによって、撮影モードがパノラマモードであることや、撮像装置をスイープさせるべき方向を認識することができる。
なお、パノラマモードでは、スイープ方向を、操作部17の操作に従って設定する他、例えば、ユーザがシャッタボタンを操作した後に、最初に、撮像装置を移動した方向を、スイープ方向に設定することが可能である。
[パノラマモードの制御部14の機能的構成例]
図2は、撮影モードがパノラマモードである場合の、図1の制御部14の機能的な構成例を示すブロック図である。
信号処理部13から制御部14に供給される撮像画像は、制御部14において、表示制御部51、バッファ52及び54、並びに、移動量検出部56に供給される。
また、移動量検出部20から制御部14に供給されるセンサ移動量は、制御部14において、移動量合成部57、及び、速すぎ検出部62に供給される。
表示制御部51は、信号処理部13から供給される撮像画像や、後述するメッセージ出力部61から供給されるエラー画面等を、表示部15に供給して表示させる表示制御を行う。
バッファ52は、信号処理部13から供給される複数枚の撮像画像を合成して、パノラマ画像を生成するために、シャッタボタンが操作された後に、撮像素子12で連続して撮像され、信号処理部13から供給される撮像画像を、順次、記憶する。
ここで、パノラマモードにおいて、パノラマ画像の生成のために、撮像素子12で撮像される撮像画像を、以下、パノラマ用撮像画像ともいう。
パノラマ合成部53は、後述する合成判定部60から供給される指示に従い、後述するバッファ58に記憶される、連続する2枚のパノラマ用撮像画像のうちの、1枚目のパノラマ用撮像画像の撮像から、2枚目のパノラマ用撮像画像の撮像までの間の撮像装置の移動量としての合成移動量を用いて、バッファ52に記憶された、連続して撮像された複数枚のパノラマ用撮像画像を合成し、1枚のパノラマ画像を生成する。
さらに、パノラマ合成部53は、パノラマ画像を、JPEG (Joint Photographic Experts Group)等の所定の圧縮方式で圧縮し、記録再生部16に供給して記録させる。
バッファ54は、後述する移動量検出部56での、画像処理移動量の検出のために、例えば、信号処理部13から供給されるパノラマ用撮像画像を、移動量検出部56での、そのパノラマ用撮像画像と、次のパノラマ用撮像画像とを用いた画像処理移動量の検出が終了するまで記憶する。
移動量検出部56は、信号処理部13から供給される最新のパノラマ用撮像画像と、バッファ54に記憶された、最新のパノラマ用撮像画像の直前に撮像されたパノラマ用撮像画像との、連続する2枚のパノラマ用撮像画像を用いた画像処理を行い、その2枚のパノラマ用撮像画像の撮像が行われた間の撮像装置の移動量である画像処理移動量を検出(算出)して、移動量合成部57に供給する。
すなわち、移動量検出部56は、信号処理部13から供給される最新のパノラマ用撮像画像を、注目する注目画像として、その注目画像の、例えば、エッジ等の特徴点と同一の特徴点を、バッファ54に記憶された、注目画像の直前に撮像されたパノラマ用撮像画像(以下、直前画像ともいう)の探索範囲(注目画像の特徴点を中心とする所定の範囲)から探索する。
そして、移動量検出部56は、注目画像の特徴点と、その特徴点と同一の、直前画像の特徴点とを一致させるだけの、直前画像の移動量を求め、直前画像の撮像から、注目画像の撮像までの間の撮像装置の移動量であり、画像処理によって検出された移動量である画像処理移動量として、移動量合成部57に供給する。
ここで、パノラマ画像の生成のために、撮像素子12で連続して撮像される複数枚のパノラマ用撮像画像のうちの、n枚目のパノラマ用撮像画像を、注目画像としたときの、直前画像であるn-1枚目のパノラマ用撮像画像の撮像から、注目画像であるn枚目のパノラマ用撮像画像の撮像までの間の撮像装置の移動量を、以下、n番目の移動量ともいう。
移動量合成部57には、移動量検出部56から、n番目の移動量としての画像処理移動量が供給されるときに、移動量検出部20から、n番目の移動量としてのセンサ移動量(動きセンサ19の出力から検出された撮像装置の移動量)が供給される。
移動量合成部57は、移動量検出部56からのn番目の画像処理移動量と、移動量検出部20からのn番目のセンサ移動量とを合成し、n番目の移動量としての合成移動量を算出する。
すなわち、移動量合成部57は、例えば、0.0以上1.0以下の範囲の値の重みαによって、n番目の画像処理移動量Aと、n番目のセンサ移動量Bとを重み付け加算する式C=α×A+(1-α)×Bに従って、n番目の合成移動量Cを算出する。
ここで、移動量合成部57において、重みαとしては、n番目の画像処理移動量の信頼性が高い(蓋然性が高い)場合には、1.0、又は、1.0に近い値である大きな値が用いられ、n番目の画像処理移動量の信頼性が低い場合には、0.0、又は、0.0に近い値である小さな値が用いられる。
なお、重みαを、1.0、又は、0.0とすることは、n番目の画像処理移動量、及び、n番目のセンサ移動量のうちの一方を選択することと等価である。
また、n番目の画像処理移動量を検出するのに用いられた、直前画像であるn-1枚目のパノラマ用撮像画像、及び、注目画像であるn枚目のパノラマ用撮像画像が、建築物等の特徴点の多いシーンの画像であり、その結果、直前画像、及び、注目画像において、同一の特徴点が、所定の閾値以上等の多数存在する場合、移動量合成部57では、n番目の画像処理移動量の信頼性が高いと判定され、重みαとしては、大きな値が用いられる。
一方、n番目の画像処理移動量を検出するのに用いられたn-1枚目及びn枚目のパノラマ用撮像画像が、空や壁等の特徴点の少ないシーンの画像であり、その結果、直前画像、及び、注目画像において、同一の特徴点が、多数存在しない場合、移動量合成部57では、n番目の画像処理移動量の信頼性が低いと判定され、重みαとしては、小さな値が用いられる。
その他、移動量合成部57では、直前画像、及び、注目画像における同一の特徴点の数を引数として、0.0ないし1.0の範囲を、引数の増加に対して単調増加する関数を、重みαとして用いることができる。
ここで、直前画像、及び、注目画像における同一の特徴点の数が多い場合には、画像処理移動量の信頼性は高く、さらに、画像処理移動量は、センサ移動量よりも精度が高いので、合成移動量に与える画像処理移動量の影響を大きくするために、重みαを大(例えば、1.0)にすることが有効である。
移動量合成部57は、画像処理移動量、及び、センサ移動量を用いて算出した合成移動量を、順次、バッファ58、及び、中断終了判定部59に供給する。
バッファ58は、移動量合成部57から順次供給される合成移動量を記憶する。
中断終了判定部59は、移動量合成部57から供給される合成移動量に基づいて、パノラマ画像の生成に用いるパノラマ用撮像画像の撮像を中断するかどうかの中断判定と、終了するかどうかの終了判定を行う。
すなわち、中断判定では、パノラマ画像の生成に用いるパノラマ用撮像画像として、適切な撮像画像が撮像されているかどうかが判定され、適切な撮像画像が撮像されていないと判定された場合、パノラマ用撮像画像の撮像を中断すると判定される。
例えば、設定スイープ方向の逆方向に、撮像装置が移動された場合、設定スイープ方向と垂直な方向に、一定量以上のゆれを伴いながら、撮像装置が移動された場合、撮像装置の移動が停止された場合、一定以上の速さで、撮像装置が移動された場合等の、パノラマ用撮像画像を合成することが困難なパターンの、撮像装置の移動があったことが、合成移動量から認められる場合、パノラマ用撮像画像として、適切な撮像画像が撮像されていないと判定される。
また、終了判定では、パノラマ画像の生成に十分なパノラマ用撮像画像が撮像されたかどうかが判定され、十分なパノラマ用撮像画像が撮像されたと判定された場合、パノラマ画像の撮像を終了すると判定される。
例えば、移動量合成部57からの合成移動量の累積値である累積合成移動量が、パノラマ画像を得るのに十分な移動量になった場合、すなわち、例えば、あらかじめ設定された移動量の閾値以上の値になった場合、パノラマ画像の生成に十分なパノラマ用撮像画像が撮像されたと判定される。
ここで、移動量の閾値は、例えば、ユーザによる操作部17(図1)の操作に応じて設定することができる。すなわち、パノラマモードでは、例えば、ユーザが、操作部17を操作することで、パノラマ画像の(設定スイープ方向の)画角を指定すること(あらかじめ決められた複数の画角の中から、1つの画角を選択することを含む)ができ、中断終了判定部59では、その画角のパノラマ画像を生成することができるように、移動量の閾値を設定することができる。
中断終了判定部59は、中断判定、又は、終了判定において、パノラマ用撮像画像の撮像を中断、又は、終了すると判定した場合、その判定結果を、合成判定部60、及び、撮像制御部63に供給する。
さらに、中断終了判定部59は、中断判定、又は、終了判定において、パノラマ用撮像画像の撮像を中断すると判定した場合には、その判定結果とともに、例えば、上述の、設定スイープ方向の逆方向に、撮像装置が移動された等の、撮像の中断の原因を表す中断原因情報を、合成判定部60に供給する。
合成判定部60には、中断終了判定部59から、中断判定、又は、終了判定の判定結果が供給される他、後述する速すぎ検出部62から、速すぎ検出の検出結果が供給される。
合成判定部60は、中断終了判定部59からの、中断判定、又は、終了判定の判定結果や、速すぎ検出部62からの速すぎ検出の検出結果に基づいて、パノラマ画像の生成のために、それまでに、バッファ52に記憶されたパノラマ用撮像画像を合成するかどうかの判定、つまり、パノラマ画像の生成の可否の判定である合成可否判定を行う。
すなわち、合成可否判定では、中断終了判定部59から終了判定の判定結果が供給された場合、合成判定部60は、パノラマ画像の生成が可能であると判定し、パノラマ用撮像画像を合成して、パノラマ画像を生成するパノラマ合成処理を行う旨の指示を、パノラマ合成部53に供給する。
さらに、合成可否判定では、中断終了判定部59から中断判定の判定結果が供給された場合と、速すぎ検出部62から速すぎ検出の検出結果が供給された場合には、バッファ58に記憶された合成移動量を累積して得られる累積合成移動量が、ある程度の移動量に達しているかどうかが判定される。
そして、累積合成移動量が、ある程度の移動量に達している場合、すなわち、累積合成移動量が、例えば、終了判定に用いられる移動量の閾値の所定の割合(例えば、8割等)以上になっている場合、合成判定部60は、パノラマ画像の生成が可能であると判定し、パノラマ合成処理を行う旨の指示を、パノラマ合成部53に供給する。
一方、累積合成移動量が、ある程度の移動量に達していない場合、合成判定部60は、パノラマ画像の生成が困難であると判定し、中断終了判定部59からの中断判定の判定結果、及び、中断原因情報、又は、速すぎ検出部62から速すぎ検出の検出結果を、メッセージ出力部61に供給する。
メッセージ出力部61は、合成判定部60からの中断判定の判定結果、及び、中断原因情報、又は、速すぎ検出の検出結果に基づいて、パノラマ画像を撮影(生成)することができなかった旨のエラーメッセージを含むエラー画面を生成し、表示制御部51に供給する。
すなわち、メッセージ出力部61は、合成判定部60から、中断判定の判定結果、及び、中断原因情報が供給された場合、エラーメッセージとともに、例えば、設定スイープ方向の逆方向に、撮像装置が移動された等の中断原因情報が表示されたエラー画面を生成し、表示制御部51に供給する。
また、メッセージ出力部61は、合成判定部60から、速すぎ検出の検出結果が供給された場合、エラーメッセージとともに、撮像装置のスイープが速すぎる旨が表示されたエラー画面を生成し、表示制御部51に供給する。
速すぎ検出部62は、移動量検出部20からのセンサ移動量に基づき、撮像装置が移動する速さが、所定の速さより速いかどうかを検出する速すぎ検出を行う。
すなわち、速すぎ検出部62は、移動量検出部20からのセンサ移動量の絶対値が、あらかじめ設定された閾値であるセンサ閾値を超えた場合に、撮像装置が移動する速さが、所定の速さより速いこと、つまり、撮像装置の移動が、速すぎることを検出したとして、その旨の検出結果を、合成判定部60、及び、撮像制御部63に供給する。
ここで、上述したように、移動量合成部57では、直前画像、及び、注目画像における同一の特徴点の数が多い場合には、画像処理移動量の信頼性は高く、さらに、画像処理移動量は、センサ移動量よりも精度が高いので、合成移動量に与える画像処理移動量の影響を大きくするために、重みαを大にして、合成移動量が求められる。
すなわち、例えば、直前画像、及び、注目画像における同一の特徴点の数が多い場合には、重みαを1.0とし、画像処理移動量が、合成移動量として求められる。
したがって、上述したように、中断判定部59では、中断判定において、合成移動量に基づき、一定以上の速さで、撮像装置が移動されているかどうか、つまり、撮像装置が移動する速さが、一定以上の速さであるかどうかが判定されるが、この中断判定で用いられる合成移動量は、画像処理移動量に等しいことがある。
ここで、説明を簡単にするため、以下では、直前画像、及び、注目画像における同一の特徴点の数が多く、合成移動量は、画像処理移動量に等しいこととする。
画像処理移動量は、撮像装置の移動量(真の移動量)が、移動量検出部56での画像処理の探索範囲(直前画像、及び、注目画像における同一の特徴点を探索する探索範囲)を超えている場合、もはや、(偶然である場合を除き、)正確な値であることはない。
このため、中断判定部59は、画像処理の探索範囲において検出することができる最大の画像処理移動量(以下、画像処理による最大検出移動量ともいう)に対して、多少のマージンを考慮した値(画像処理による最大検出移動量の、例えば、8割程度の値)を、第1の閾値として用い、中断判定において、画像処理移動量に等しい合成移動量の絶対値が、第1の閾値以上であるかによって、撮像装置が移動する速さが、一定以上の速さであるかどうかを判定する。
しかしながら、直前画像、及び、注目画像における同一の特徴点の数が多い場合であっても、撮像装置の移動量(真の移動量)が、画像処理による最大検出移動量を超えているときには、画像処理移動量に等しい合成移動量は、不安定になり、正確な値にはならない。
したがって、中断判定において、そのような正確な値ではない画像処理移動量に等しい合成移動量が、第1の閾値以上であるかによって、撮像装置が移動する速さが、一定以上の速さであるかどうかを判定しても、正確な判定結果を得ることは、困難である。
そこで、図2の撮像装置では、中断判定部59の中断判定において、画像処理移動量に等しい合成移動量の絶対値が、第1の閾値以上であるかによって、撮像装置が移動する速さが、一定以上の速さであるかどうかを判定する他、速すぎ検出部62において、移動量検出部20からのセンサ移動量に基づき、撮像装置が移動する速さが、所定の速さより速いかどうかを検出する速すぎ検出が行われる。
すなわち、速すぎ検出で用いられるセンサ移動量は、ジャイロスコープ等の動きセンサ19が出力するセンサ信号から検出される、撮像装置の移動量であり、かかるセンサ移動量によれば、画像処理移動量よりも精度は劣るものの、画像処理による最大検出移動量よりも広い検出範囲で、撮像装置の移動量を検出することができる。
そこで、速すぎ検出では、例えば、画像処理による最大検出移動量を、第2の閾値として用い、センサ移動量の絶対値が、第2の閾値(>第1の閾値)以上であるかによって、撮像装置の移動が速すぎるかどうかを判定する。
したがって、速すぎ検出によれば、画像処理による最大検出移動量を超える、撮像装置の移動を検出することができる。
撮像制御部63は、中断終了判定部59から、中断判定の判定結果が供給された場合、パノラマ画像の生成に用いる撮像画像の撮像処理を中断させる中断制御を行う。
また、撮像制御部63は、速すぎ検出部62から、速すぎ検出の検出結果が供給された場合も、中断制御を行う。
ここで、撮像制御部63では、中断制御において、撮像装置を構成する必要なブロックが制御され、これにより、例えば、撮像素子12での、あらかじめ設定された絞りや、シャッタ速度等の撮影パラメータに従った撮像や、バッファ52による撮像画像の記憶等の、パノラマ画像の生成に用いる撮像画像(パノラマ用撮像画像)を取得するための撮像処理が中断(終了)される。
なお、パノラマモードでは、移動量検出部20は、パノラマ画像の生成に用いる撮像画像(パノラマ用撮像画像)の撮像処理が行われている場合、アンプ21のゲインを、パノラマ画像の生成に用いる撮像画像の撮像処理が行われていない場合よりも小にする。
すなわち、通常モードでのアンプ21のゲインが、第1の値であるとすると、パノラマモードでは、アンプ21のゲインは、第1の値より小さい第2の値にされる。
アンプ21のゲインが、第1の値より小さい第2の値である場合、アンプ21のゲインが第1の値である場合よりも、同一の入力に対するアンプ21の出力が小さくなるので、移動量検出部20で検出されるセンサ移動量は、アンプ21のゲインが第1の値である場合よりも、精度が劣化するが、(撮像装置の移動量の)検出範囲を大にすることができる。
また、動きセンサ19が移動量検出部20に出力するセンサ信号としての角速度信号には、ヨー方向の角速度信号であるヨー方向成分と、ピッチ方向の角速度信号であるピッチ方向成分とがあり、これに対応して、アンプ21も、ヨー方向成分を増幅するヨー方向用アンプと、ピッチ方向成分を増幅するピッチ方向用アンプとを含む。
パノラマモードでは、ヨー方向用アンプ、及び、ピッチ方向用アンプのうちの、設定スイープ方向に対応する方のアンプのゲインだけが、第2の値にされる。
すなわち、設定スイープ方向が、例えば、右方向に設定されている場合には、ヨー方向用アンプ、及び、ピッチ方向用アンプのうちの、設定スイープ方向に対応する方のヨー方向アンプのゲインが、第2の値とされ、他方のピッチ方向用アンプのゲインは、第1の値のままとされる。
これにより、パノラマモードでは、撮像装置の、設定スイープ方向の移動については、精度は、通常モードよりも劣化するものの、撮像装置が速く移動された場合の移動量を、センサ移動量として検出することができる。
なお、移動量検出部20で検出されるセンサ移動量は、速すぎ検出部62による速すぎ検出に用いられる他、上述したように、手ぶれ補正部18による手ぶれ補正にも用いられる。
パノラマモードでは、連続して複数枚の撮像画像の撮像が行われるため、手ぶれ補正部18は、ある撮像画像の露光時間の間、センサ移動量に基づいて、光学系11を移動し、光学系11と撮像素子12との相対的な位置関係を変化させる手ぶれ補正を行うことにより、撮像素子12で撮像される撮像画像にぶれが生じることを防止する。
そして、手ぶれ補正部18は、ある撮像画像の露光時間の終了後、次の撮像画像の露光時間が開始されるまでの間に、光学系11を、元の位置に戻し、以下同様の処理を繰り返すことで、パノラマモードにおいて連続して撮像される複数枚の撮像画像のそれぞれに、ぶれが生じることを防止する。
[パノラマモードでのパノラマ画像の撮影の処理]
図3は、図2の撮像装置による、パノラマモードでのパノラマ画像の撮影の処理を説明するフローチャートである。
撮像装置の電源がオンにされると、撮像装置は、ハードウェアの診断や必要な初期化を行う。
そして、ステップS11において、撮像制御部63が、図示せぬ露出計により計測された明るさに関する情報に基づいて、絞りやシャッタ速度等の撮影パラメータのパラメータ値を計算し、そのパラメータ値に、撮影パラメータを設定して、処理は、ステップS12に進む。
ステップS12では、撮像制御部63は、操作部17(図1)のうちのシャッタボタンが(押圧)操作されたかどうかを判定する。
ステップS12において、シャッタボタンが操作されていないと判定された場合、処理は、ステップS11に戻り、以下、同様の処理が繰り返される。
また、ステップS12において、シャッタボタンが操作されたと判定された場合、処理は、ステップS13に進み、撮影パラメータに従って撮像が行われる。
すなわち、ステップS13では、撮像素子12は、光学系11を介することによって、撮影パラメータである絞りに従って光量が調整された光が受光面に形成する光学像を、撮影パラメータであるシャッタ速度に従って撮像(光電変換)し、その撮像によって得られる1枚の撮像画像であるパノラマ用撮像画像を、信号処理部13に供給する。
ここで、撮像素子12において撮像が行われている間、手ぶれ補正部18では、上述したような手ぶれ補正が行われる。
信号処理部13は、撮像素子12からのパノラマ用撮像画像に、ディジタル信号処理を施し、制御部14の表示制御部51、バッファ52及び54、並びに、移動量検出部56に供給する。
表示制御部51は、信号処理部13からのパノラマ用撮像画像を、表示部15に供給して対応する画像を表示させる。
また、バッファ54は、信号処理部13からの撮像画像を一時記憶し、処理は、ステップS13からステップS14に進む。
ステップS14では、信号処理部13から制御部14に供給された最新のパノラマ用撮像画像を、注目画像として、注目画像の直前に撮像された直前画像の撮像から、注目画像の撮像までの間の撮像装置の移動量である画像処理移動量、及び、センサ移動量の検出が、同時に行われる。
すなわち、移動量検出部56は、信号処理部13からの最新のパノラマ用撮像画像を、注目画像として、その注目画像と、バッファ54に記憶された直前画像とを用いて、画像処理を行うことにより、直前画像の撮像から、注目画像の撮像までの間の撮像装置の移動量である画像処理移動量を求め、注目画像についての画像処理移動量として、移動量合成部57に供給する。
また、移動量検出部20は、直前画像の撮像のタイミングから、注目画像の撮像のタイミングまでの期間に、動きセンサ19が出力する角速度信号を、積分器23で積分することにより、直前画像の撮像から、注目画像の撮像までの間の撮像装置の移動量であるセンサ移動量を求め、注目画像についてのセンサ移動量として、移動量合成部57、及び、速すぎ検出部62に供給する。
その後、処理は、ステップS14からステップS15に進み、移動量合成部57は、移動量検出部56からの注目画像についての画像処理移動量と、移動量検出部20からの注目画像についてのセンサ移動量とを合成し、注目画像についての合成移動量を算出する。
そして、移動量合成部57は、注目画像についての合成移動量を、バッファ58、及び、中断終了判定部59に供給して、処理は、ステップS15からステップS16に進む。
ステップS16では、中断終了判定部59は、移動量合成部57からの注目画像についての合成移動量に基づいて、パノラマ画像の生成に用いるパノラマ用撮像画像の撮像を中断するかどうかの中断判定を行う。
ステップS16において、パノラマ用撮像画像の撮像を中断しないと判定された場合、すなわち、設定スイープ方向の逆方向に、撮像装置が移動される等の、パノラマ用撮像画像を合成することが困難なパターンの、撮像装置の移動がされていない場合、処理は、ステップS17に進み、速すぎ検出部62は、移動量検出部20からの注目画像についてのセンサ移動量に基づいて、パノラマ用撮像画像の撮像を中断するかどうかの中断判定を行う。
すなわち、ステップS17では、速すぎ検出部62は、移動量検出部20からの注目画像についてのセンサ移動量に基づき、撮像装置の移動が速すぎるかどうかの速すぎ検出を行い、その速すぎ検出の検出結果に従って、中断判定を行う。
ステップS17において、パノラマ用撮像画像の撮像を中断しないと判定された場合、すなわち、撮像装置の移動が速すぎることが検出されなかった場合、処理は、ステップS18に進み、バッファ58が、移動量合成部57からの注目画像についての合成移動量を記憶して、処理は、ステップS19に進む。
ステップS19では、バッファ52が、信号処理部13からの注目画像としてのパノラマ用撮像画像を記憶し、処理は、ステップS20に進む。
なお、バッファ52には、パノラマ画像の生成に用いられる多数のパノラマ用撮像画像が記憶されるので、バッファ52の記憶容量の節約のために、パノラマ用撮像画像を、JPEG等の所定の圧縮方式で圧縮してから、バッファ52に記憶させることができる。
ステップS20では、中断終了判定部59は、いままでに移動量合成部57から供給された合成移動量、つまり、バッファ58に記憶されている合成移動量の累積値である累積合成移動量に基づいて、パノラマ画像の生成に用いるパノラマ用撮像画像の撮像を終了するかどうかの終了判定を行う。
ステップS20において、パノラマ用撮像画像の撮像を終了しないと判定された場合、すなわち、累積合成移動量が、パノラマ画像を得るのに十分な移動量になっていない場合、処理は、ステップS13に戻り、次のパノラマ用撮像画像の撮像が行われ、以下、同様の処理が繰り返される。
また、ステップS20において、パノラマ用撮像画像の撮像を終了すると判定された場合、すなわち、累積合成移動量が、パノラマ画像を得るのに十分な移動量になった場合、中断終了判定部59は、パノラマ用撮像画像の撮像を終了する旨の終了判定の判定結果を、合成判定部60に供給する。
合成判定部60は、中断終了判定部59から終了判定の判定結果が供給された場合、パノラマ画像の生成が可能であると判定し、パノラマ用撮像画像を合成して、パノラマ画像を生成するパノラマ合成処理を行う旨の指示を、パノラマ合成部53に供給して、処理は、ステップS20からステップS21に進む。
ステップS21では、パノラマ合成部53は、合成判定部60からの指示に従い、バッファ52に記憶された複数のパノラマ用撮像画像すべてを、バッファ58に記憶された各パノラマ用撮像画像についての合成移動量だけずらしながら合成し、すなわち、n枚目のパノラマ用撮像画像を、n-1枚目の撮像画像から、n枚目のパノラマ用撮像画像についての合成移動量だけずらしながら合成することを繰り返し、1枚のパノラマ画像を生成する。
なお、バッファ58に記憶されたパノラマ用撮像画像が圧縮されている場合には、パノラマ合成部53は、バッファ58に記憶されたパノラマ用撮像画像を伸張してから合成する。
その後、処理は、ステップS21からステップS22に進み、パノラマ合成部53は、パノラマ画像を圧縮し、記録再生部16に供給して記録させ、処理は、終了する。
一方、ステップS16において、パノラマ用撮像画像の撮像を中断すると判定された場合、すなわち、設定スイープ方向の逆方向に、撮像装置が移動される等の、パノラマ用撮像画像を合成することが困難なパターンの、撮像装置の移動がされた場合、中断終了判定部59は、パノラマ用撮像画像の撮像を中断する旨の中断判定の判定結果、及び、中断原因情報を、合成判定部60、及び、撮像制御部63に供給して、処理は、ステップS23に進む。
また、ステップS17において、パノラマ用撮像画像の撮像を中断すると判定された場合、すなわち、撮像装置の移動が速すぎることが検出された場合、速すぎ検出部62は、撮像装置の移動が速すぎることを検出した旨の速すぎ検出の検出結果を、合成判定部60、及び、撮像制御部63に供給して、処理は、ステップS23に進む。
ステップS23では、撮像制御部63は、中断終了判定部59からの、中断判定の判定結果の供給、又は、速すぎ検出部62からの、速すぎ検出の検出結果の供給に応じて、パノラマ画像の生成に用いる撮像画像の撮像処理を中断させる中断制御を行って、処理は、ステップS24に進む。
ステップS24では、合成判定部60は、中断終了判定部59からの中断判定の判定結果、及び、中断原因情報の供給、又は、速すぎ検出部62からの速すぎ検出の検出結果の供給に応じて、それまでに、バッファ52に記憶されたパノラマ用撮像画像を合成することによる、パノラマ画像の生成の可否の判定である合成可否判定を行う。
ステップS24において、パノラマ画像の生成が可能であると判定された場合、すなわち、バッファ58に記憶された合成移動量を累積して得られる累積合成移動量が、ある程度の移動量に達している場合、合成判定部60は、パノラマ合成処理を行う旨の指示を、パノラマ合成部53に供給して、処理は、ステップS24からステップS21に進む。
ステップS21では、上述したように、パノラマ合成部53は、合成判定部60からの指示に従い、バッファ52に記憶された複数のパノラマ用撮像画像すべてを、バッファ58に記憶された各パノラマ用撮像画像についての合成移動量だけずらしながら合成することにより、1枚のパノラマ画像を生成し、以下、上述の場合と同様の処理が行われる。
一方、ステップS24において、パノラマ画像の生成が可能でないと判定された場合、すなわち、バッファ58に記憶された合成移動量を累積して得られる累積合成移動量が、ある程度の移動量に達していない場合、パノラマ画像の生成は困難であるため、合成判定部60は、パノラマ合成処理を行う旨の指示を、パノラマ合成部53に供給せずに、中断終了判定部59からの中断判定の判定結果、及び、中断原因情報、又は、速すぎ検出部62から速すぎ検出の検出結果を、メッセージ出力部61に供給して、処理は、ステップS25に進む。
ステップS25では、メッセージ出力部61は、合成判定部60からの中断判定の判定結果、及び、中断原因情報、又は、速すぎ検出の検出結果に応じて、パノラマ画像を撮影することができなかった旨のエラーメッセージを含むエラー画面を生成し、表示制御部51に供給する。
さらに、ステップS25では、表示制御部51が、メッセージ出力部61からのエラー画面を、表示部15に供給して表示させ、処理は終了する。
ユーザは、エラー画面を見ることにより、パノラマ画像の撮影に失敗したことと、その失敗の原因(理由)を認識することができる。
以上のように、連続して撮像されるパノラマ用撮像画像の画像処理によって検出される、多くの場合に精度が高い画像処理移動量と、動きセンサが出力するセンサ信号から検出される、検出範囲が広いセンサ移動量とを合成して、合成移動量を算出し、その合成移動量に基づいて、連続して撮像された複数のパノラマ用撮像画像を合成し、パノラマ画像を生成する一方、センサ移動量に基づき、撮像装置が移動する速さが、所定の速さより速いかどうかを検出し、撮像装置が移動する速さが、画像処理移動量によっては検出することが困難な速さより速いことが検出された場合、パノラマ画像の生成に用いるパノラマ用撮像画像の撮像処理を中断するので、不自然なパノラマ画像が得られることを、容易に防止することができる。
すなわち、図4は、パノラマ画像の撮影結果を模式的に示す図である。
図4Aは、図2の撮像装置の、設定スイープ方向としての右方向への移動を、適切な速さで(ゆっくり)行った場合に得られるパノラマ画像を示している。
図4B、及び、図4Cは、図2の撮像装置の、設定スイープ方向としての右方向への移動を、最初は適切な速さで行い、途中から、高速に行った場合に得られるパノラマ画像を示している。
但し、図4Bでは、速すぎ検出部62(図2)を動作させておらず、図4Cでは、速すぎ検出部62を動作させている。
図4Bでは、速すぎ検出部62が動作していないので、撮像装置の移動が、画像処理移動量として検出可能な移動量の検出範囲を超えた速さ(高速)で行われても、撮像装置の移動が速すぎることを検出することができない。
そのため、撮像装置の移動が、画像処理移動量として検出可能な移動量の検出範囲を超えた速さで行われ、正確でない値の画像処理移動量が検出される状態となっても、パノラマ用撮像画像の撮像が続けられ、そのパノラマ用撮像画像の合成が、正確でない値の画像処理移動量(合成移動量)を用いて行われる。
その結果、撮像装置の移動が高速で行われたときに撮像されたパノラマ用撮像画像がシームレスに合成されず、パノラマ画像は、そのパノラマ画像の、撮像装置の移動が高速に行われた部分については、隣接して合成されたパノラマ用撮像画像どうしの境界部分が目立つような不自然な画像となる。
一方、図4Cでは、速すぎ検出部62が動作しているので、撮像装置の移動が、画像処理移動量として検出可能な移動量の検出範囲を超えた速さ(高速)で行われると、撮像装置の移動が速すぎることが検出され、パノラマ用撮像画像の撮像が中断される。
そして、それまでに撮像されたパノラマ用撮像画像が合成され、パノラマ画像が生成される。
以上のように、撮像装置の移動が高速で行われると、パノラマ用撮像画像の撮像が中断され、それまでに撮像されたパノラマ用撮像画像を用いて、パノラマ画像が生成されるので、画角は多少狭くなることがあるものの、パノラマ用撮像画像がシームレスに合成された、自然なパノラマ画像を得ることができ、図4Bに示したような不自然なパノラマ画像が得られることを防止することができる。
なお、制御部14が行う一連の処理は、コンピュータとしてのCPU14A(図1)にプログラムを実行させることによって行うことができる他、専用のハードウェアによって行うこともできる。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。