(57)【要約】【課題】  撮像データの回転振れを効果的に補正する。【解決手段】  極座標変換部102は、撮像装置から撮像データを入力する。露光条件記録部107は、撮像データを撮影した際の露光情報を入力する。触れ角度計測部105は、撮像データを撮影した際の撮像装置の回転振れを示す回転振れ情報を入力する。極座標変換部102、デコンボリューション部103、実空間変換部104、および、PSF作成部106は、露光情報と、回転振れ情報が示す撮像装置の回転角に基づき、撮像データの回転振れを補正する。【選択図】  図1
2010050745.tif 000002
【特許請求の範囲】
【請求項１】
撮像部によって撮影された撮像データを入力する撮像データの入力手段と、
前記撮像データの露光情報を入力する露光情報の入力手段と、
前記撮像時の前記撮像部の回転振れを示す回転振れ情報を入力する回転振れ情報の入力手段と、
前記露光情報と、前記回転振れ情報が示す前記撮像部の回転角に基づき、前記撮像データの回転振れを補正する補正手段とを有することを特徴とする画像処理装置。
【請求項２】
前記補正手段は、前記露光情報と前記回転角に基づき、点像分布関数を作成する作成手段と、
前記入力された撮像データを極座標空間の画像に変換する変換手段と、
前記点像分布関数を用いて、前記極座標空間の画像をデコンボリューションする手段と、
前記デコンボリューションの結果の画像を実空間の撮像データに変換する逆変換手段とを有することを特徴とする請求項1に記載された画像処理装置。
【請求項３】
さらに、前記撮像部のシャッタを駆動し、前記露光情報を出力する駆動手段と、
前記撮像装置の姿勢から前記撮像装置の振れを検出し、前記回転振れ情報を出力する検出手段とを有することを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項４】
さらに、前記検出手段が検出したシフト振れ量に基づき、シフト振れを補正する手段を有することを特徴とする請求項3に記載された画像処理装置。
【請求項５】
前記駆動手段は、前記シャッタの開期間において、シャッタの開閉をランダムに制御するシャッタ開ランダム制御を行うことを特徴とする請求項1から請求項4の何れか一項に記載された画像処理装置。
【請求項６】
撮像部によって撮影された撮像データを入力し、
前記撮像データの露光情報を入力し、
前記撮像データを撮影した際の前記撮像部の回転振れを示す回転振れ情報を入力し、
前記露光情報と、前記回転振れ情報が示す前記撮像部の回転角に基づき、前記撮像データの回転振れを補正することを特徴とする画像処理方法。
【請求項７】
画像処理装置に、請求項6に記載された画像処理を実行させることを特徴とするプログラム。
【請求項８】
請求項7に記載されたプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置の手振れ補正に関する。
【背景技術】
【０００２】
手振れによる撮影画像のぶれを補正するために、手振れ補正機能を有するカメラが使用されている。手振れ補正機能付きカメラは、手振れによる角速度を検出するジャイロセンサ、および、手振れを打ち消すようにレンズと撮像素子の相対位置を制御する駆動装置を組み合わせて、光学的に手振れを補正する方式（光学的手振れ補正方式）が一般的である。
【０００３】
また、手振れが生じない程度の露光時間、つまり高速なシャッタスピードで複数の画像を撮影した後に、これら画像を電子的に位置合わせして重ねて手振れの影響がない画像を生成する方式（電子的手振れ補正方式）が提案されている（例えば、特許文献1）。特許文献1の技術は、カメラが縦横または斜め方向に僅かに移動（シフト）した場合の振れ（以下、シフト振れ）を補正することが可能である。しかし、例えばレンズの光軸のような撮影軸に対してカメラが回転した場合の振れ（以下、回転振れ）を補正することはできない。
【０００４】
また、特許文献2の技術は、回転振れが小さいと仮定して、回転振れのベクトルを直線で近似し、複数画像間の相関を取り、回転振れのベクトルとシフト振れのベクトルを求める。つまり、回転振れを直線近似して、シフト振れのベクトルと同様に扱う技術である。
【０００５】
一方、指紋認証アプリケーションなどからの要求もあり、複数の画像間の回転角度のずれを検出する像ずれ検出アルゴリズムが、近年、盛んに研究されている（例えば、非特許文献1）。この手法は、極座標を用いて回転角度のずれを並進ずれに置き換え、回転角度のずれを検出する。
【０００６】
しかし、複数画像を合成する特許文献1、2の技術には次の問題がある。
【０００７】
まず、特許文献1の技術は、前述したように、回転振れを補正することができない。
【０００８】
特許文献2の技術は回転振れに対応するが、その前提条件として、シャッタが開いている間の回転振れを無視する。これは、振れ補正の正確性を損ない兼ねない。また、補正に複数枚の画像を必要とし、メモリを消費する問題がある。また、回転振れの角度は小さいものとして、動きベクトルを直線で近似している点も問題である。これも、振れ補正の正確性を損ない兼ねない。しかも、複数枚の画像を合成し、正しく回転振れを補正するには、正確な位置合わせが必要になる。
【０００９】
非特許文献1の技術は、回転振れを直線で近似せず、回転角の検出に極座標を用いているため、正確に回転角を検出することができる。しかし、回転振れを補正するために、極座標と実空間の間の変換を用いる視点はない。
【００１０】
【特許文献１】特開2004-219765公報
【特許文献２】特開2006-203504公報
【非特許文献１】計測自動制御学会東北支部第194回研究集会(2001.6.1)  資料番号194-7
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、撮像データの回転振れを効果的に補正することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１３】
本発明にかかる画像処理は、撮像部によって撮影された撮像データを入力し、前記撮像データの露光情報を入力し、前記撮像データを撮影した際の前記撮像部の回転振れを示す回転振れ情報を入力し、前記露光情報と、前記回転振れ情報が示す前記撮像部の回転角に基づき、前記撮像データの回転振れを補正することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、撮像データの回転振れを効果的に補正することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１６】
実施例1では、一枚の画像分の撮像データから回転振れを補正する画像処理について説明する。回転振れ以外の振れ（例えばシフト振れなど）は、画像処理部が組み込まれる撮像装置に搭載された光学的手振れ補正機構によって補正され除去されているものとする。
【００１７】
［装置の構成］
図1は実施例の画像処理部100の構成例を示すブロック図である。
【００１８】
極座標変換部102は、撮像装置によって撮影された撮像データを端子101から入力し、入力した撮像データを極座標上の画像に変換する。その際、極座標変換部102は、端子110から入力される回転振れ情報が表す回転中心の位置座標に極座標の原点を一致させる。なお、撮像データは、CCDやCMOSセンサなどの撮像デバイスから出力された信号をアナログ-ディジタル(A/D)変換したデモザイキング（現像処理）前のデータ（以下、RAWデータと呼ぶ場合がある）である。
【００１９】
振れ角度計測部105は、端子110から入力される回転振れ情報に基づき、手振れによる撮像装置の回転角度を計測する。露光条件記録部107は、端子109から入力されるシャッタの開期間を示す情報（露光情報）を記録する。PSF作成部106は、振れ角度計測部105および露光条件記録部107から情報を入力して、極座標上で点像分布関数(point spread function: PSF)を作成する。
【００２０】
デコンボリューション部103は、PSF作成部106が作成したPSFを入力して、デコンボリューションを行う。実空間変換部104は、デコンボリューション部103が出力する画像を再び実空間に変換し、変換結果のRAWデータを端子108に出力する。
【００２１】
［画像処理］
図2は画像処理部100が実行する処理を説明するフローチャートである。
【００２２】
極座標変換部102は、撮像データを入力する(S201)。ここで、撮像デバイスの画素(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-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)。また、振れ角度計測部105は、振れ角度θと時間の関係を示す回転振れ情報を取得する(S203)。そして、PSF作成部106は、詳細は後述するが、振れ角度計測部105と露光条件記録部107から入力されるデータに基づき、極座標上のPSFであるh'(θ)を算出する(S204)。
【００２５】
極座標変換部102は、撮像データを極座標上の画像に変換する(S205)。前述したように、この変換における直交座標系の原点は、端子110から入力される回転振れ情報が示す回転の中心座標に一致させる。極座標変換により式(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)は理論的な式であり、実際のデータはディジタル値であるから、実空間から極座標空間への変換には何らかの補間が必要になる。任意の補間方法を用いることができるが、ここではバイキュービック法を用いるものとする。
【００２７】
デコンボリューション部103は、詳細は後述するが、PSF作成部106の算出結果を基に式(4)のコンボリューションを打ち消すデコンボリューションを行う(S206)。デコンボリューションのアルゴリズムは、既存の任意のアルゴリズムを用いればよい。例えば、周波数空間上での除算、Lucy-Richardsonのアルゴリズム、Wienerフィルタを用いたアルゴリズム、正則化フィルタを用いたアルゴリズムなどが挙げられる。本実施例では、詳細は後述するが、シャッタの開閉を制御することでh'(θ)の形状をコントロールし、周波数空間上で除算を行うものとする。
【００２８】
実空間変換部104は、デコンボリューションによってI(r, Θ)が得られるので、I(r, Θ)を実空間表示I(x, y)に逆変換する(S207)。この逆変換も、実空間から極座標空間への変換と同様、補間処理が必要になる。そして、実空間変換部104は、I(x, y)を補正後の撮像データとして出力端子108に出力する(S208)。
【００２９】
図3は画像処理部100の動作原理を概念的に表す図である。つまり、極座標変換によって、回転振れを角度Θ軸方向の振れ（横振れ）に変換し、画像の横ぶれをデコンボリューションによって除去する。そして、横振れを除去した画像を実空間に戻し、回転振れを除去した画像を得る。
【００３０】
［PSFの作成方法］
図4はPSFの作成(S204)を説明するフローチャートである。
【００３１】
PSF作成部106は、振れ角度計測部105から振れ角度θと時間を示す情報を入力し、角度θを時間で微分して角速度ω(t)を算出する(S401)。角速度ω(t)とθ(t)と組み合わせることにより、角速度をθの関数として表すことが可能になる。これをω(θ)とする。
【００３２】
次に、PSF作成部106は、露光条件記録部107から入力したシャッタの開期間を示す露光情報と、振れ角度計測部105から入力した振れ角度θと時間を示す情報に基づき、関数h(t)をθの関数として取得する(S402)。これをh(θ)とする。
【００３３】
PSF作成部106は、取得した情報に基づき、h'(θ)=h(θ)/ω(θ)を算出して(S403)、h'(θ)をPSFとして出力する(S404)。式(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, ρ)は原理的には求まる。しかし、ここには問題点があり、等角速度運動による振れを考え、ω(θ)が一定であるとして説明する。
【００３７】
図6Aは通常の露光条件（シャッタ開の条件）である0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0の場合（シャッタの開期間において連続的にシャッタ開）のPSFの形状を示す図である。図6Bは図6Aに示すPSFを周波数特性を示す図である。なお、図6Aにおいて、横軸は角度（ラジアン）、縦軸はPSFの値を表す。また、図6Bにおいて、横軸は角度（ラジアン）、縦軸はH'(f, ρ)の絶対値を表す。
【００３８】
図6Bを参照すると、周期的に絶対値が0になる周波数が現れる。これは、その周波数に対応する情報の消失を表し、このような状態でデコンボリューションを行えば、情報が消失した周波数が存在することに対応する波形が現れる。そこで、情報の消失した周波数の発生を防ぐ。言い換えれば、PSFの絶対値が0になる周波数の発生を防ぐために、シャッタの開期間において、シャッタの開閉タイミングおよび開（または閉）の長さをランダムに制御して（以下、シャッタ開ランダム制御）、小刻みにシャッタを開閉する。
【００３９】
図7Aはシャッタ開ランダム制御を行った場合のPSFの形状を示す図、図7Bは図7Aに示すPSFの周波数特性を示す図である。
【００４０】
シャッタ開ランダム制御を行うと、図7Bに示すように、情報が消失する周波数は存在しないので、Iblur(f, ρ)をH'(f, ρ)で除算すれば、理論的に、完全なデコンボリューションが可能になる。なお、シャッタ開ランダム制御は、後述するシャッタ駆動部が行う。
【００４１】
図8Aはシミュレーションによって回転振れを起こした画像を示し、図8Bは画像処理部100によって回転振れを補正した画像を示す。
【００４２】
このたように、回転振れの角速度およびシャッタの開期間の情報、実空間と極座標空間の相互変換、および、デコンボリューションを用いて、一枚の画像分の撮像データから回転振れを補正した画像を得ることができる。
【実施例２】
【００４３】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００４４】
実施例1においては、回転振れ以外の振れを考慮しない画像処理部100を説明した。実施例2においては、回転振れ以外の振れも考慮する撮像装置を説明する。
【００４５】
図9は撮像装置の撮像部の構成例を示すブロック図である。
【００４６】
被写体の反射光は、レンズ902およびシャッタ903を介して撮像デバイス904に結像する。A/D変換部905は、撮像デバイス904が出力するアナログ信号をディジタル信号の撮像データに変換する。
【００４７】
シャッタ駆動部906は、上述したシャッタ開ランダム制御を含め、シャッタ903の開閉条件を設定し、シャッタ903の開閉を駆動する。また、前述した露光情報を画像処理部100に出力する。
【００４８】
姿勢検出部907は、撮像装置の振れを検出し、シフト振れと回転振れに分類し、シフト振れ情報を撮像デバイス904に出力し、回転振れ情報を画像処理部100に出力する。なお、姿勢検出部907は、動きを測定するデバイスでもよいし、複数画像を取得して、動きを推定するデバイスでもよい。
【００４９】
撮像デバイス904は、シフト振れ情報に従い撮像デバイス904自体を動かしてシフト振れを補正する。図10はシフト振れの補正を説明する図である。図10において、Δx、Δyは姿勢検出部907によって検出されたシフト振れ量である。撮像デバイス904は、シフト振れ量Δx、Δyと逆の動きを行いシフト振れを補正する。なお、シフト振れ補正は、撮像デバイス904の動きによる補正に限らず、レンズ902の動きによる補正でも構わない。
【００５０】
画像処理部100は、上述したように、回転振れ情報と露光情報に基づき、シフト振れが除去された後の撮像データの回転振れを補正する。
【００５１】
このように、シフト振れは撮像部で補正し、撮像部で補正が困難な回転振れを画像処理部100によって補正する。従って、シフト振れに回転振れが組み合わさったような複雑な振れも適切に補正することができる。
【実施例３】
【００５２】
以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００５３】
実施例3においては、実施例1の画像処理部をソフトウェアとして実装する例を説明する。
【００５４】
図11は撮像データファイル1100の形式を示す図である。図11に示す撮像データファイル1100は、回転振れ情報が記録される回転振れ情報タグ1101、露光情報が記録される露光情報タグ1102、撮像データが記録される画像部1103を有する。
【００５５】
例えばパーソナルコンピュータのCPUは、ソフトウェアとして実装された画像処理部100を実行する。そして、撮像データファイル1100を入力すると、回転振れ情報タグ1101、露光情報タグ1102の情報に基づき、画像部1103の撮像データの回転振れを補正し、補正後の撮像データを出力する。
【００５６】
このように、図11に示す形式の撮像データファイル1100を読み込み、撮像データの回転振れを補正することができる。
【００５７】
［他の実施例］
なお、本発明は、複数の機器（例えばコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置、制御装置など）に適用してもよい。
【００５８】
また、本発明の目的は、上記実施例の機能を実現するコンピュータプログラムを記録した記録媒体または記憶媒体をシステムまたは装置に供給する。そして、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記コンピュータプログラムを実行することでも達成される。この場合、記録媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのコンピュータプログラムと、そのコンピュータプログラムを記憶する、コンピュータが読み取り可能な記録媒体は本発明を構成する。
【００５９】
また、前記コンピュータプログラムの実行により上記機能が実現されるだけではない。つまり、そのコンピュータプログラムの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)および/または第一の、第二の、第三の、…プログラムなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【００６０】
また、前記コンピュータプログラムがコンピュータに接続された機能拡張カードやユニットなどのデバイスのメモリに書き込まれていてもよい。つまり、そのコンピュータプログラムの指示により、第一の、第二の、第三の、…デバイスのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【００６１】
本発明を前記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応または関連するコンピュータプログラムが格納される。
【図面の簡単な説明】
【００６２】
【図１】実施例の画像処理部の構成例を示すブロック図、
【図２】画像処理部が実行する処理を説明するフローチャート、
【図３】画像処理部の動作原理を概念的に表す図、
【図４】PSFの作成を説明するフローチャート、
【図５】一般的な回転運動におけるPSFの一例を示す図、
【図６Ａ】シャッタの開期間において連続的にシャッタ開のPSFの形状を示す図、
【図６Ｂ】図6Aに示すPSFを周波数特性を示す図、
【図７Ａ】シャッタ開ランダム制御を行った場合のPSFの形状を示す図、
【図７Ｂ】図7Aに示すPSFを周波数特性を示す図、
【図８Ａ】シミュレーションによって回転振れを起こした画像を示す図、
【図８Ｂ】画像処理部によって回転振れを補正した画像を示す図、
【図９】撮像装置の撮像部の構成例を示すブロック図、
【図１０】シフト振れの補正を説明する図、
【図１１】撮像データファイルの形式を示す図である。
【図１】
2010050745.tif 000003
【図２】
2010050745.tif 000004
【図３】
2010050745.tif 000005
【図４】
2010050745.tif 000006
【図５】
2010050745.tif 000007
【図６Ａ】
2010050745.tif 000008
【図６Ｂ】
2010050745.tif 000009
【図７Ａ】
2010050745.tif 000010
【図７Ｂ】
2010050745.tif 000011
【図９】
2010050745.tif 000012
【図１０】
2010050745.tif 000013
【図１１】
2010050745.tif 000014
【図８Ａ】
2010050745.tif 000015
【図８Ｂ】
2010050745.tif 000016