(57)【要約】【課題】  撮像データの回転振れを効果的に補正する。【解決手段】  姿勢検出部105は、撮像データを生成する際の撮像装置の回転振れを検出して回転振れ情報を出力する。シャッタ駆動部106は、撮像データを生成する際のシャッタ102の開閉を回転振れから決定し、シャッタ開閉情報を出力する。補正部107は、シャッタ開閉情報および回転振れ情報に基づき、撮像データの回転振れを補正する。【選択図】  図1
2010273140.tif 000002
【特許請求の範囲】
【請求項１】
撮像データを生成する際の撮像装置の回転振れを検出して回転振れ情報を出力する検出手段と、
撮像データを生成する際のシャッタの開閉を前記回転振れの周期性から決定し、シャッタ開閉情報を出力する制御手段と、
前記シャッタ開閉情報および前記回転振れ情報に基づき、撮像データの回転振れを補正する補正手段とを有することを特徴とする画像処理装置。
【請求項２】
前記補正手段は、前記シャッタ開閉情報および前記回転振れ情報に基づき、点像分布関数を作成する作成手段と、
前記撮像データを極座標空間の画像に変換する変換手段と、
前記点像分布関数を用いて、前記極座標空間の画像をデコンボリューションする手段と、
前記デコンボリューションの結果の画像を実空間の撮像データに変換する逆変換手段とを有することを特徴とする請求項1に記載された画像処理装置。
【請求項３】
前記制御手段は、前記回転振れ情報が示す角度情報に基づき、前記シャッタの開期間において、シャッタの開閉を小刻みかつランダムに制御するシャッタ開ランダム制御を行うことを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項４】
前記制御手段は、前記回転振れの角速度が一定の場合、前記シャッタ開ランダム制御を行うことを特徴とする請求項3に記載された画像処理装置。
【請求項５】
前記制御手段は、前記回転振れの角速度が変化し、前記変化に周期性がある場合、前記シャッタ開ランダム制御を行うことを特徴とする請求項3に記載された画像処理装置。
【請求項６】
撮像データを生成する際の撮像装置の回転振れを検出して回転振れ情報を出力する検出手段、および、撮像データを生成する際のシャッタの開閉を前記回転振れの周期性から決定し、シャッタ開閉情報を出力する制御手段を有する撮像装置の画像処理方法であって、
前記シャッタ開閉情報および前記回転振れ情報に基づき、撮像データの回転振れを補正することを特徴とする画像処理方法。
【請求項７】
画像処理装置に、請求項6に記載された画像処理を実行させることを特徴とするプログラム。
【請求項８】
請求項7に記載されたプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像画像の振れを補正する画像処理に関する。
【背景技術】
【０００２】
手振れによる撮影画像のぶれを補正するために、手振れ補正機能を有するカメラが使用されている。手振れ補正機能付きカメラは、手振れによる角速度を検出するジャイロセンサ、および、手振れを打ち消すようにレンズと撮像素子の相対位置を制御する駆動装置を組み合わせて、光学的に手振れを補正する方式（光学的手振れ補正方式）が一般的である。
【０００３】
また、手振れが生じない程度の露光時間、つまり高速なシャッタスピードで複数の画像を撮影した後に、これら画像を電子的に位置合わせして重ねて手振れの影響がない画像を生成する方式（電子的手振れ補正方式）が提案されている（例えば、特許文献1）。特許文献1の技術は、カメラが縦横または斜め方向に僅かに移動（シフト）した場合の振れ（以下、シフト振れ）を補正することが可能である。しかし、例えばレンズの光軸のような撮影軸に対してカメラが回転した場合の振れ（以下、回転振れ）を補正することはできない。
【０００４】
また、特許文献2の技術は、回転振れが小さいと仮定して、回転振れのベクトルを直線で近似し、複数画像間の相関を取り、回転振れのベクトルとシフト振れのベクトルを求める。つまり、回転振れを直線近似して、シフト振れのベクトルと同様に扱う技術である。
【０００５】
しかし、複数画像を合成する特許文献1、2の技術には次の問題がある。
【０００６】
まず、特許文献1の技術は、前述したように、回転振れを補正することができない。
【０００７】
特許文献2の技術は回転振れに対応するが、
【０００８】
その前提条件として、シャッタが開いている間の回転振れを無視する。これは、振れ補正の正確性を損ない兼ねない。また、補正に複数枚の画像を必要とし、メモリを消費する問題がある。また、回転振れの角度は小さいものとして、動きベクトルを直線で近似している点も問題である。これも、振れ補正の正確性を損ない兼ねない。しかも、複数枚の画像を合成し、正しく回転振れを補正するには、正確な位置合わせが必要になる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開2004-219765公報
【特許文献２】特開2006-203504公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、撮像データの回転振れを効果的に補正することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１２】
本発明にかかる画像処理装置は、撮像データを生成する際の撮像装置の回転振れを検出して回転振れ情報を出力する検出手段と、撮像データを生成する際のシャッタの開閉を前記回転振れの周期性から決定し、シャッタ開閉情報を出力する制御手段と、前記シャッタ開閉情報および前記回転振れ情報に基づき、撮像データの回転振れを補正する補正手段とを有することを特徴とする。
【００１３】
本発明にかかる画像処理方法は、撮像データを生成する際の撮像装置の回転振れを検出して回転振れ情報を出力する検出手段、および、撮像データを生成する際のシャッタの開閉を前記回転振れの周期性から決定し、シャッタ開閉情報を出力する制御手段を有する撮像装置の画像処理方法であって、前記シャッタ開閉情報および前記回転振れ情報に基づき、撮像データの回転振れを補正することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、撮像データの回転振れを効果的に補正することができる。
【図面の簡単な説明】
【００１５】
【図１】実施例の撮像装置の構成例を示すブロック図。
【図２】補正部が実行する処理を説明するフローチャート。
【図３】補正部の動作原理を概念的に表す図。
【図４】PSFの作成を説明するフローチャート。
【図５】一般的な回転運動におけるPSFの一例を示す図。
【図６】シャッタの開期間において連続的にシャッタ開のPSFの形状と周波数特性を示す図。
【図７】シャッタ開ランダム制御を行った場合のPSFの形状と周波数特性を示す図。
【図８】シャッタ開ランダム制御のオンオフを説明する図。
【図９】シャッタ開ランダム制御のオンオフを説明する図。
【図１０】シャッタ開ランダム制御のオンオフを制御するテーブルを示す図。
【図１１】露光中に回転振れの角速度ω(θ)が変化する場合を説明する図。
【図１２】シャッタ駆動部によるシャッタ開ランダム制御を説明するフローチャート。
【発明を実施するための形態】
【００１６】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１７】
実施例1では、一枚の画像分の撮像データから回転振れを補正する画像処理について説明する。回転振れ以外の振れ（例えばシフト振れなど）は、撮像装置に搭載された光学的手振れ補正機構によって補正され除去されているものとする。
【００１８】
［装置の構成］
図1は実施例の撮像装置の構成例を示すブロック図である。
【００１９】
被写体の反射光は、レンズ101およびシャッタ102を介して撮像デバイス103に結像する。アナログ/ディジタル(A/D)変換部104は、撮像デバイス103が出力するアナログ信号をディジタル信号の撮像データに変換する。なお、撮像データは、CCDやCMOSセンサなどの撮像デバイスから出力された信号をA/D変換したデモザイキング（現像処理）前のデータ（以下、RAWデータ）である。
【００２０】
姿勢検出部105は、ジャイロセンサなどによって撮像装置の振れを検出する。そして、回転振れの回転角を検知、記録する。そして、回転振れの回転角を示す回転情報をシャッタ駆動部106に出力する。また、回転角の履歴によって、回転振れの大きさ、回転の角速度、周期性などを算出し、算出結果を回転振れ情報として補正部107に出力する。
【００２１】
詳細な説明は省略するが、姿勢検出部105は、シフト振れも検出し、検出した結果をシフト振れ情報としてレンズ101または撮像デバイス103に出力する。シフト振れ情報に従い、レンズ101または撮像デバイス103は、レンズ101自体または撮像デバイス103自体を動かしてシフト振れを補正する。
【００２２】
シャッタ駆動部106は、角度情報に基づきシャッタの開閉条件を設定し、シャッタ102の開閉を駆動する。また、シャッタの開閉を示すシャッタ開閉情報を補正部107に出力する。
【００２３】
補正部107は、A/D変換部104からRAWデータを入力し、回転振れ情報およびシャッタ開閉情報に基づき、RAWデータの回転振れを補正して、補正結果のRAWデータを出力する画像処理を行う。
【００２４】
［画像処理］
図2は補正部107が実行する処理を説明するフローチャートである。
【００２５】
補正部107は、撮像データを入力する(S201)。ここで、撮像デバイス103の画素(x, y)に単位時間当りに入射する光の強度をI(x,y)、角速度をω(t)、露光時間をTとする。時刻tに、撮像装置にはI(x, y)を-θ(T-t)だけ回転させた情報が入射するので、撮像データIblur(x, y)は次式で表される。なお、座標系の原点は、回転振れ情報が表す回転中心の位置座標に一致させる。
Iblur(x, y) = 1/T・∫th(t)I{x・cosθ(T-t)+y・sinθ(T-t), -x・sinθ(T-t)+y・cosθ(T-t)}dt
= 1/T・∫th(t)I{x・cosθ(t)+y・sinθ(t), -x・sinθ(t)+y・cosθ(t)}dt      …(1)
= 1/T・∫ωh(θ)/ω(θ)・I{x・cosθ+y・sinθ, -x・sinθ+y・cosθ}dθ      …(2)
= 1/T・∫ωh'(θ)・I{x・cosθ+y・sinθ, -x・sinθ+y・cosθ}dθ            …(3)
ここで、関数h(t)はシャッタの開閉を表し、シャッタ開は1、シャッタ閉は0、
積分範囲はt=0〜T、
積分範囲はω=0〜ω。
【００２６】
式(1)から式(2)の変形では、積分変数を変換した。ω(t)=dθ/dtである。また、ω(θ)は、tとθの関係を利用してθを変数に、h(t)を書き直した関数である。同様に、h(θ)は、tとθの関係を利用してθを変数に、h(t)を書き直した関数である。また、式(3)において、h'(θ)=h(θ)/ω(θ)である。
【００２７】
次に、補正部107は、シャッタの開期間を示すシャッタ開閉情報を取得し(S202)、振れ角度θと時間の関係を示す回転振れ情報を取得する(S203)。そして、詳細は後述するが、振れ角度情報とシャッタ開閉情報に基づき、極座標上の点像分布関数(point spread function: PSF)であるh'(θ)を算出する(S204)。
【００２８】
次に、補正部107は、撮像データを極座標上の画像に変換する(S205)。前述したように、この変換における直交座標系の原点は、回転振れ情報が示す回転の中心座標に一致させる。極座標変換により式(3)は式(4)に変換される。
Iblur(r, Θ) = 1/T・∫ωh'(θ)I(r, Θ-θ)dθ
= 1/T・(h' * I)(r, Θ)              …(4)
ここで、式(3)における(x, y)はr(cosΘ, sinΘ)である。
【００２９】
式(4)は、平行移動に対する振れと同じ式であり、PSFであるh'(θ)によるコンボリューションを行ったものと見做すことができる。ただし、式(4)は理論的な式であり、実際のデータはディジタル値であるから、実空間から極座標空間への変換には何らかの補間が必要になる。任意の補間方法を用いることができるが、ここではバイキュービック法を用いるものとする。
【００３０】
次に、補正部107は、詳細は後述するが、PSFの算出結果を基に式(4)のコンボリューションを打ち消すデコンボリューションを行う(S206)。デコンボリューションのアルゴリズムは、既存の任意のアルゴリズムを用いればよい。例えば、周波数空間上での除算、Lucy-Richardsonのアルゴリズム、Wienerフィルタを用いたアルゴリズム、正則化フィルタを用いたアルゴリズムなどが挙げられる。本実施例では、詳細は後述するが、シャッタの開閉を制御することでh'(θ)の形状をコントロールし、周波数空間上で除算を行うものとする。
【００３１】
次に、補正部107は、デコンボリューションによってI(r, Θ)が得られるので、I(r, Θ)を実空間表示I(x, y)に逆変換する(S207)。この逆変換も、実空間から極座標空間への変換と同様、補間処理が必要になる。そして、補正部107は、I(x, y)を補正後の撮像データとして出力する(S208)。
【００３２】
図3は補正部107の動作原理を概念的に表す図である。つまり、極座標変換によって、回転振れを角度Θ軸方向の振れ（横振れ）に変換し、画像の横ぶれをデコンボリューションによって除去する。そして、横振れを除去した画像を実空間に戻し、回転振れを除去した画像を得る。
【００３３】
［PSFの作成方法］
図4はPSFの作成(S204)を説明するフローチャートである。
【００３４】
補正部107は、姿勢検出部105から振れ角度θと時間を示す回転振れ情報を入力し、角度θを時間で微分して角速度ω(t)を算出する(S401)。角速度ω(t)とθ(t)と組み合わせることにより、角速度をθの関数として表すことが可能になる。これをω(θ)とする。
【００３５】
次に、補正部107は、シャッタ駆動部106から入力したシャッタの開期間を示すシャッタ開閉情報と、姿勢検出部105から入力した振れ角度θと時間を示す回転振れ情報に基づき、関数h(t)をθの関数として取得する(S402)。これをh(θ)とする。
【００３６】
補正部107は、取得した情報に基づき、h'(θ)=h(θ)/ω(θ)を算出する(S403)。式(3)に示すように、h'(θ)が極座標上のPSFである。
【００３７】
図5は一般的な回転運動におけるPSFの一例を示す図で、横軸は角度（ラジアン）、縦軸はPSFの値を示している。シャッタ開の条件を0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0とし、加速運動をしているとすると、ω(θ)が増大するのでPSFであるh'(θ)の値は減少する。
【００３８】
［デコンボリューション］
式(4)を周波数空間上に変換すると次式が得られる。
Iblur(f, ρ) = 1/T・H'(f, ρ)I(f, ρ)      …(5)
ここで、fはrの周波数変換に対応する変数、
ρはΘの周波数変換に対応する変数。
【００３９】
H'(f, ρ)は既知であるから、周波数空間上でIblur(f, ρ)をH'(f, ρ)で除算すれば、I(f, ρ)は原理的には求まる。しかし、ここには問題点があり、等角速度運動による振れを考え、ω(θ)が一定であるとして説明する。
【００４０】
図6(a)は通常の露光条件（シャッタ開の条件）である0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0の場合（シャッタの開期間において連続的にシャッタ開）のPSFの形状を示す図である。図6(b)は図6(a)に示すPSFを周波数特性を示す図である。なお、図6(a)において、横軸は角度（ラジアン）、縦軸はPSFの値を表す。また、図6(b)において、横軸は角度（ラジアン）、縦軸はH'(f, ρ)の絶対値を表す。
【００４１】
図6(b)を参照すると、周期的に絶対値が0になる周波数が現れる。これは、その周波数に対応する情報の消失を表し、このような状態でデコンボリューションを行えば、情報が消失した周波数が存在することに対応する波形が現れる。そこで、情報の消失した周波数の発生を防ぐ、言い換えれば、PSFの絶対値が0になる周波数の発生を防ぐために、シャッタの開期間において、シャッタの開閉を小刻みかつランダムに制御する（以下、シャッタ開ランダム制御）。
【００４２】
図7(a)はシャッタ開ランダム制御を行った場合のPSFの形状を示す図、図7(b)は図7(a)に示すPSFの周波数特性を示す図である。
【００４３】
シャッタ開ランダム制御を行うと、図7(b)に示すように、情報が消失する周波数は存在せず、の情報も失われることはないので、Iblur(f, ρ)をH'(f, ρ)で除算すれば、理論的に、完全なデコンボリューションが可能になる。なお、シャッタ開ランダム制御はシャッタ駆動部106が行う。
【００４４】
［シャッタ開ランダム制御］
シャッタ開ランダム制御を行うと、シャッタを連続開にする場合に比べて、露光量が減少する。ディジタルカメラにおいて、露光量の減少は、ノイズの要因になるため、シャッタの開期間においてシャッタを閉じる回数はできるだけ少ないほうが望ましい。そこで、本実施例においては、回転振れの周期性により、シャッタ開ランダム制御を行うか否かを決定する。
【００４５】
図8(a)はシャッタを連続開にし、かつ、回転振れの角速度ω(θ)が一定（角加速度が0）の場合のPSFの周波数特性を表す。また、図8(b)はシャッタ開ランダム制御を実行し、かつ、回転振れの角速度ω(θ)が一定の場合のPSFの周波数特性を表す。回転振れの角速度ω(θ)が一定の場合、シャッタ開ランダム制御によって、PSFの絶対値が0になる周波数の発生を防ぐことができる。
【００４６】
図9(a)はシャッタを連続開にし、かつ、回転振れの角速度ω(θ)が一定ではないの場合のPSFの周波数特性を表す。回転振れの角速度ω(θ)が一定ではない場合は、図9(a)に示すように、PSFの絶対値が0になる周波数は存在しない。言い換えれば、回転振れの角速度ω(θ)が一定ではない場合はシャッタ開ランダム制御は不要である。
【００４７】
しかしながら、図9(b)に示すように、回転振れの角速度ω(θ)が変化しながらも、PSFが周期的なパターンをもつ場合がある。この場合、PSFの絶対値が0になる周波数が発生する可能性が高い。これを防ぐには、図9(c)に示すように、PSFの周期的なパターンを検知した時点で、シャッタ開ランダム制御を実行して、PSFの絶対値が0になる周波数の発生を防ぐ必要がある。
【００４８】
図10はシャッタ開ランダム制御のオンオフを制御するテーブルを示す図である。
【００４９】
図10に示すように、回転振れの角速度ω(θ)が一定の場合はシャッタ開ランダム制御をオンにする。また、回転振れの角速度ω(θ)に変化があり、PSFに周期性がない場合はシャッタ開ランダム制御をオフにする。また、回転振れの角速度ω(θ)に変化があり、PSFに周期性がある場合はシャッタ開ランダム制御をオンにする。なお、角速度が一定の場合もPSFに周期性があると見做せば、PSFに周期性がある場合にシャッタ開ランダム制御をオンにすればよい。
【００５０】
図11は露光中に回転振れの角速度ω(θ)が変化する場合を説明する図である。
【００５１】
図11は、θ0からθ1の間は回転振れの角速度ω(θ)が変化を示し、θ1からθ2の間は回転振れの角速度ω(θ)が一定を示す場合のPSFを表す。このような場合、θ0からθ1の期間は、PSFに周期性がないため（角速度が変化）、シャッタを連続開にしする。そして、θ1からθ2の期間は、PSFに周期性があるため（角速度が一定）、シャッタ開ランダム制御を実行する。
【００５２】
以上のように、シャッタ開ランダム制御を行うことで、常にシャッタ開ランダム制御を実行する場合に比べて、露光量の増加を期待することができ、ノイズを抑制することができる。
【００５３】
図12はシャッタ駆動部106によるシャッタ開ランダム制御を説明するフローチャートである。
【００５４】
シャッタ駆動部106は、撮像装置の図示しないシャッタボタンが半押しされると、露光時間Tなどの露光条件を決定し(S801)、撮像が開始される。そして、シャッタボタンがさらに押されると、シャッタ102を開き(S802)、露光が開始される。
【００５５】
シャッタ駆動部106は、シャッタ開の後、姿勢検出部105から入力される角度情報を蓄積する。そして、その回転角の履歴から回転振れの角速度ω(θ)が一定か否かを判定し(S803)、角速度ω(θ)が変化する場合は変化の周期性を検出する(S804)。なお、角速度ω(θ)の変換の周期性の有無を素早く判断するために、角加速度の変化を検出してもよい。
【００５６】
シャッタ駆動部106は、角速度ω(θ)が一定または角速度ω(θ)の変化の周期性を検出した場合はシャッタ開ランダム制御を実行し(S805)、周期性をもたずに角速度ω(θ)が変化している場合はシャッタ開を維持する(S806)。そして、シャッタ102を開いた後の経過時間tを判定し(S807)、経過時間が露光時間未満（t＜T）ならば処理をステップS803に戻す。
【００５７】
シャッタ駆動部106は、経過時間が露光時間に達する（t=T、露光終了）と、シャッタ102を閉じ(S808)、露光が終了する。そして、シャッタ開閉情報を補正部107に出力する(S809)。
【００５８】
露光が終了すると、撮像データが生成され、撮像データが補正部107に入力される。補正部107は、上述したように、回転振れ情報およびシャッタ開閉情報に基づき回転振れ補正を実行する。
【００５９】
このたように、回転振れの角速度およびシャッタ開閉情報、実空間と極座標空間の相互変換、および、デコンボリューションを用いて、一枚の画像分の撮像データから回転振れを補正した画像を得ることができる。その際、回転振れの角速度ω(θ)が一定、または、角速度ω(θ)は変化するが周期性をもつ（角加速度が変化する）場合は、シャッタ開ランダム制御を実行する。従って、情報が欠落する周波数成分を発生させることなく、かつ、必要以上に露光時間を減少させずにノイズが少ない撮像データを得ることができる。
【００６０】
本発明の目的は、次のようにしても達成される。上記実施例の機能または先に説明したフローチャートを実現するコンピュータプログラムを記録した記録媒体または記憶媒体をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）に前記コンピュータプログラムを実行させる。この場合、記録媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのコンピュータプログラムと、そのコンピュータプログラムを記憶する、コンピュータが読み取り可能な記録媒体は本発明を構成する。
【図１】
2010273140.tif 000003
【図２】
2010273140.tif 000004
【図３】
2010273140.tif 000005
【図４】
2010273140.tif 000006
【図５】
2010273140.tif 000007
【図６】
2010273140.tif 000008
【図７】
2010273140.tif 000009
【図８】
2010273140.tif 000010
【図９】
2010273140.tif 000011
【図１０】
2010273140.tif 000012
【図１１】
2010273140.tif 000013
【図１２】
2010273140.tif 000014