(57)【要約】【課題】  一枚の画像に対応する撮像データから回転振れを補正する。【解決手段】  画像処理部100は、撮像部800によって撮影された撮像データを入力する。露光条件記録部105は、撮像データの露光条件情報を入力する。振れ角度計測部104は、撮影時の撮像部800の回転振れを示す回転振れ情報を入力する。補正係数算出部103は、露光条件情報と回転振れ情報に基づき回転振れの補正係数を計算する。演算部102は、回転振れの中心を示す回転中心情報を入力し、補正係数と回転中心情報に基づき撮像データを補正する。【選択図】  図1
2010252123.tif 000002
【特許請求の範囲】
【請求項１】
撮像部によって撮影された撮像データを入力する撮像データの入力手段と、
前記撮像データの露光条件情報を入力する露光条件の入力手段と、
前記撮影時の前記撮像部の回転振れを示す回転振れ情報を入力する振れ情報の入力手段と、
前記回転振れの中心を示す回転中心情報を入力する中心情報の入力手段と、
前記露光条件情報と前記回転振れ情報に基づき回転振れの補正係数を計算する計算手段と、
前記補正係数と前記回転中心情報に基づき前記撮像データを補正する補正手段とを有することを特徴とする画像処理装置。
【請求項２】
前記補正手段は、極座標系において前記撮像データの各画素に前記補正係数を掛け、前記補正係数を掛けた画素を直交座標系における円に沿って加算することを特徴とする請求項1に記載された撮像装置。
【請求項３】
前記計算手段は、前記回転振れ情報から計算した時間と前記撮像部の回転角の関係、および、前記露光条件情報が表すシャッタの開閉状態を示す関数に基づき前記補正係数を計算することを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項４】
撮像部によって撮影された撮像データを入力し、
前記撮像データの露光条件情報を入力し、
前記撮影時の前記撮像部の回転振れを示す回転振れ情報を入力し、
前記回転振れの中心を示す回転中心情報を入力し、
前記露光条件情報と前記回転振れ情報に基づき回転振れの補正係数を計算し、
前記補正係数と前記回転中心情報に基づき前記撮像データを補正することを特徴とする画像処理方法。
【請求項５】
画像処理装置を制御して、請求項1から請求項3の何れか一項に記載された画像処理装置の各手段として機能させることを特徴とするプログラム。
【請求項６】
請求項5に記載されたプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転による手振れが発生した場合に、手振れを補正する画像処理方法および装置に関するものである。
【背景技術】
【０００２】
撮像装置の高画素化、高ズーム化に伴い、撮影時の手振れによる撮影画像の振れが問題になり、手振れ補正機能が付加された撮像装置が普及している。手振れ補正機能は、手振れによる角速度を検出するジャイロセンサと、手振れを打ち消すようにレンズと撮像素子の相対的位置を制御する駆動装置を組み合わせて、光学的に手振れを補正する方式（以下、光学的手振れ補正方式）によって実現される。
【０００３】
また、手振れが生じない程度の露光時間、つまり高速なシャッタスピードで複数の画像を撮影し、これら複数の画像の位置を電子的に合わせて画像を重ね合わせ、手振れの影響がない画像を生成する電子的な手振れ補正方式が提案されている。例えば特許文献1に開示される技術は、カメラが縦横または斜め方向に僅かに移動（シフト）した場合の振れ（以下、シフト振れ）は補正可能である。しかし、例えばレンズの光軸のような撮影軸に対してカメラが回転した場合の振れ（以下、回転振れ）を補正することはできない。
【０００４】
そこで、手振れ補正を回転振れに拡張する方法が提案されている（例えば、特許文献2）。特許文献2の技術は、回転振れが小さいと仮定して、回転振れのベクトルを直線で近似し、複数画像間の相関を取り、回転振れのベクトルとシフト振れのベクトルを求める。つまり、回転振れを直線近似して、シフト振れのベクトルと同様に扱う技術である。しかし、特許文献2の技術は、回転振れの角度が小さいものとして、動きベクトルを直線で近似するため、手振れ補正の精度が低下する可能性がある。
【０００５】
特許文献1、2の技術には上述した個々の課題がある上、全般的に、補正に複数枚の画像が必要になりディジタルカメラが内蔵するメモリを消費する問題がある。しかも、複数の画像を合成し、正しく回転振れを補正するには正確な位置合わせを必要とする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2004-219765公報
【特許文献２】特開2006-203504公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、一枚の画像に対応する撮像データから回転振れを補正することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００９】
本発明にかかる画像処理は、撮像部によって撮影された撮像データを入力し、前記撮像データの露光条件情報を入力し、前記撮影時の前記撮像部の回転振れを示す回転振れ情報を入力し、前記回転振れの中心を示す回転中心情報を入力し、前記露光条件情報と前記回転振れ情報に基づき回転振れの補正係数を計算し、前記補正係数と前記回転中心情報に基づき前記撮像データを補正することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、一枚の画像に対応する撮像データから回転振れを補正することができる。
【図面の簡単な説明】
【００１１】
【図１】実施例の画像処理部の構成例を示すブロック図、
【図２】画像処理部が実行する処理を説明するフローチャート、
【図３Ａ】通常の露光条件を示す図、
【図３Ｂ】通常の露光条件において回転振れの角度が三度の場合の1/λkを計算した例を示す図、
【図４Ａ】1/λk=0を避けるために露光条件を制御した例を示す図、
【図４Ｂ】図4Aに示す露光条件において回転振れの角度が三度の場合の1/λkを計算した例を示す図、
【図５Ａ】回転振れを起こした画像を示す図、
【図５Ｂ】画像処理部によって回転振れを補正した画像を示す図、
【図６】撮像装置の撮像部の構成例を示すブロック図、
【図７】シフト振れの補正を説明する図、
【図８】撮像データファイルの形式を示す図、
【図９】実施例4の画像処理部の構成例を示すブロック図、
【図１０】画像処理部の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１３】
実施例1では、一枚の画像分の撮像データから回転振れを補正する画像処理について説明する。回転振れ以外の振れ（例えばシフト振れなど）は、画像処理部が組み込まれる撮像装置に搭載された光学的手振れ補正機構によって補正され除去されているものとする。
【００１４】
［装置の構成］
図1は実施例の画像処理部100の構成例を示すブロック図である。
【００１５】
画像処理部100は、撮像装置の撮像部800によって撮影された撮像データを入力部101を介して入力し、回転振れを補正した撮像データを出力部109から出力する。
【００１６】
振れ角度計測部104は、端子106から入力される回転振れ情報に基づき、手振れによる撮像装置の回転角度を計測する。露光条件記録部105は、端子107から入力されるシャッタの開期間を示す情報（露光情報）を記録する。
【００１７】
補正係数算出部103は、振れ角度計測部104および露光条件記録部105から情報を入力して、補正係数を算出する。演算部102は、補正係数算出部103が算出した補正係数、および、端子108から入力される回転中心情報に基づき撮像データに手振れ補正を施す。
【００１８】
［画像処理］
図2は画像処理部100が実行する処理を説明するフローチャートである。
【００１９】
画像処理部100は、入力部101を介して撮像データを入力すると(S201)、露光条件記録部105によって露光条件情報を取得し(S202)、振れ角度計測部104によって回転角度と時間の関係を示す回転振れ情報を取得する(S203)。
【００２０】
次に、画像処理部100は、補正係数算出部103によって、振れ角度計測部104および露光条件記録部105の情報に基づき補正係数を計算する(S204)。なお、補正係数算出部103の詳細な動作および本実施例の動作原理については後述する。
【００２１】
次に、画像処理部100は、演算部102によって、回転中心情報、補正係数に基づき撮像データに振れ補正を施し(S205)、演算部102の演算結果を回転振れを補正した後の撮像データとして出力部109から出力する(S206)。
【００２２】
［動作原理］
回転振れの運動X(t)は、時刻をt、回転振れによる回転角をθ(t)、それに伴う回転行列をRθ(t)とすると、X(t)=Rθ(t)X(0)で表される。時刻tに、座標Xの点に寄与する時刻0における座標はR-θ(t)Xである。以上から、回転振れは次式のように表される。
Iblur(X) = 1/T・∫0Th(t)I{r, Θ-θ(t)}dt
= ∫02πK(Θ-θ)I(r, θ)dθ      …(1)
ここで、(r, Θ)はXの極座標表示で、X = r(cosΘ, sinΘ)；
また、一行目から二行目に移行する際に変数をtからθ(t)に変換した；
if (0≦θ≦φ)
K(θ)=1/T・dt(t)/dθ・h(t)；
else
K(θ) = 0；
h(t)は露光条件を決める関数（詳細は後述）、
Iblurは回転振れ画像、
Iは回転振れを補正した画像。
【００２３】
式(1)は、Fredholm I型積分方程式の形を有する。そこで、Hilbert-Schmidtの理論と同様、上記積分方程式の固有関数を求める。積分方程式の固有方程式は、固有関数がS1上の関数であることから、求める固有関数をφ、固有値をλとすると、次式になる。
φ(Θ) = λ∫02πK(Θ-θ)φ(θ)dθ
= λ∫0φK(θ)φ(Θ-θ)dθ      …(2)
【００２４】
Kφ≡∫02πK(Θ-θ)φ(r, θ)dθと書くと、φ=λKφである。また式(1)は、次式のように書くことができる。
Iblur = KI      …(3)
【００２５】
式(3)の解はφ(θ)=exp(ikθ)（k∈Z）であり、固有値は次式になる。なお、数学的には慣用記号であるが、iは虚数単位、Zは整数の集合を表し、K∈Zはkが任意の整数であることを表す。
1/λk = 1/T・∫0Th(t)exp{-ikθ(t)}      …(4)
【００２６】
式(4)に示す固有値は、S1上で完全直交基底をなす。よって、〈f, g〉=1/(2π)∫02πf*gdθを定義すると、固有関数φiによって、IblurとIを次式のように展開することができる。
Iblur = Σk∈Z〈φk, Iblur〉φk
I = Σk∈Zakφk      …(5)
【００２７】
式(5)を式(3)に代入すると、次式が得られる。
Σk∈Z〈φk, Ｉblur〉φk = Σk∈ZakKφk = Σk∈Zakφk/λk      …(6)
【００２８】
式(6)の変数や作用素を陽に書くと、次式のようになる。
I = Σk∈Zλk〈φk, Iblur〉φk
= 1/(2π)∫02πIblur(r, θ)Σk∈Zλkexp{ik(Θ-θ)}dθ
= 1/(2π)∫-ππIblur(R-θX)Σk∈Zλkexp(ikθ)dθ      …(7)
ここで、λk = T/[∫0Th(t)exp{-ikθ(t)}dt]。
【００２９】
以上により、一枚の画像から、回転振れを補正した画像を得るための理論式が得られる。
【００３０】
［補正係数算出部］
補正係数算出部103は、次式に従い、補正係数F(θ)を算出する。
λk = T/[∫0Th(t)exp{-ikθ(t)}dt]
F(θ) = Σk∈Zλkexp(ikθ)      …(8)
【００３１】
つまり、補正係数算出部103は、時間tと回転角θ(t)の関係、および、露光条件情報が表すシャッタの開閉状態を示す関数h(t)に基づき、補正係数F(θ)を計算する。
【００３２】
［演算部］
演算部102は、補正係数算出部103が算出した補正係数F(θ)、端子108から入力した回転中心情報、入力部101を介して入力された撮像データに基づき次の計算を行い、計算結果の撮像データIを出力部109から出力する。
I = 1/(2π)∫-ππIblur(R-θX)F(θ)dθ      …(9)
【００３３】
このとき、R-θXによって座標Xを回転させるときに必要な情報である回転中心情報は、回転後の座標R-θXを求めるために必要となる。
【００３４】
式(9)は、極座標系において撮像データIblurの各画素に補正係数F(θ)を掛けて、補正係数F(θ)を掛けた画素を直交座標系における円に沿って加算すること意味し、直交座標上の周回積分として表されている。従って、極座標に変換した次の計算を行ってもよい。つまり、計算を行う座標系は任意でよい。
I = 1/(2π)∫-ππIblur(r, Θ-θ)F(θ)dθ      …(10)
【００３５】
［露光条件の設定」
露光条件は、関数h(t)によって設定される。この関数を設定するのは、∫0Th(t)exp{-ikθ(t)}dt=0を避けるためである。もし、同式の値が零になるとλkが発散して、正しい補正係数F(θ)を計算することができない。以下では、一例として、回転振れが等速円運動を示す場合を考える。
【００３６】
図3Aは通常の露光条件を示す図で、横軸は時間t、縦軸はh(t)の値である。h(t)=1はシャッタが開口（露光）状態を、h(t)=0はシャッタが閉口（非露光）状態に対応する。つまり、シャッタを開き、適正な露光時間の経過後、シャッタを閉じる通常のシャッタ制御を示している。
【００３７】
図3Bは通常の露光条件において回転振れの角度が三度の場合の1/λkを計算した例を示す図で、横軸はk、縦軸は1/λkの絶対値である。図3Bから分かるように、kの絶対値が大きくなると1/λkの値が0になる。
【００３８】
図4Aは1/λk=0を避けるために露光条件を制御した例を示す図である。図4Aに示すシャッタ制御は、シャッタの開期間において、シャッタの開閉タイミングおよび開（または閉）の長さをランダムに制御して（以下、シャッタ開ランダム制御）、小刻みにシャッタを開閉する。
【００３９】
図4Bは図4Aに示す露光条件において回転振れの角度が三度の場合の1/λkを計算した例を示す図である。図4Bから分かるように、露光条件を制御することで1/λk=0を防ぐことができる。
【００４０】
上記では、シャッタの開閉状態を制御する例を説明したが、h(t)の値を連続的に変化させてもよい。
【００４１】
図5Aは回転振れを起こした画像（シミュレーション）を示し、図5Bは画像処理部100によって回転振れを補正した画像を示す。
【００４２】
このように、一枚の画像に対応する撮像データに、回転振れ情報、露光条件情報、回転中心情報を用いる回転振れ補正を施して、高精度に回転振れを補正した撮像データを得ることがである。
【実施例２】
【００４３】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００４４】
実施例1においては、回転振れを考慮した振れ補正を説明した。実施例2においては、回転振れ以外の振れも考慮する場合を説明する。
【００４５】
図6は撮像装置の撮像部800の構成例を示すブロック図である。
【００４６】
被写体からの反射光は、レンズ802およびシャッタ803を介して撮像デバイス804に結像する。A/D変換部805は、撮像デバイス804が出力するアナログ信号をディジタル信号の撮像データに変換する。撮像データは、端子810を介して画像処理部100に出力される。
【００４７】
シャッタ駆動部806は、上述したシャッタ開ランダム制御を含め、露光条件に相当するシャッタ803の開閉条件を設定し、シャッタ803の開閉を駆動する。また、前述した露光条件情報を端子809を介して画像処理部100に出力する。
【００４８】
姿勢検出部807は、撮像装置の振れを検出し、シフト振れと回転振れに分類し、シフト振れ情報を撮像デバイス804に出力し、回転振れ情報を端子811を介して画像処理部100に出力する。なお、姿勢検出部807は、動きを測定するデバイスでもよいし、複数画像を取得して、動きを推定するデバイスでもよい。
【００４９】
回転中心検出部808は、回転振れにおける回転の中心を検出し、回転中心情報を端子812を介して画像処理部100に出力する。
【００５０】
回転中心を検出する手法としては、(1)画像から検出する手法、(2)動きを測定するデバイスにより検出する手法がある。(1)画像から検出する手法は、回転前と回転後の画像中の複数の特徴点の幾何学的な移動量から回転中心を検出する。最も簡単な例は、二つの特徴点の移動ベクトルの垂直二等分線の交点を回転中心とすることが考えられる。
【００５１】
また、(2)動きを測定するデバイスにより検出する手法は、例えば、複数のジャイロセンサを用いて回転中心を算出する。ここではジャイロセンサを二つ使用した例について説明する。時刻tにおけるジャイロ1の座標を(x1(t), y1(t))、ジャイロ2の座標を(x2(t), y2(t))とする。また、時刻t'におけるジャイロ1の座標を(x1(t'), y1(t'))、ジャイロ2の座標を(x2(t'), y2(t'))とする。すると、回転中心は直線(x1(t)-x2(t), y1(t)-y2(t))および(x1(t')-x2(t'), y1(t')-y2(t'))の交点として求めることができる。勿論、座標取得時刻を増やせば、それだけ回転中心の見積もり精度を上げることができる。
【００５２】
撮像デバイス804は、シフト振れ情報に従い撮像デバイス804自体を動かしてシフト振れを補正する。図7はシフト振れの補正を説明する図である。図7において、Δx、Δyは姿勢検出部807によって検出されたシフト振れ量である。撮像デバイス804は、シフト振れ量Δx、Δyと逆の動きを行いシフト振れを補正する。なお、シフト振れ補正は、撮像デバイス804の動きによる補正に限らず、レンズ802の動きによる補正でも構わない。つまり、撮像部800においてシフト振れを補正することができれば、その手法は限定されない。
【００５３】
画像処理部100は、シフト振れが除去された後の撮像データに、上述したように、回転振れ情報、回転中心情報、露光条件情報に基づく回転振れ補正を施す。
【００５４】
このように、シフト振れは撮像部800で補正し、撮像部800で補正が困難な回転振れを画像処理部100によって補正する。従って、シフト振れに回転振れが組み合わさったような複雑な振れも適切に補正することができる。
【実施例３】
【００５５】
以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００５６】
実施例3においては、実施例1の画像処理部100をソフトウェアとして実装する例を説明する。
【００５７】
図8は撮像データファイル1000の形式を示す図である。図8に示す撮像データファイル1000は、回転振れ情報が記録される回転振れ情報タグ1001、露光条件情報が記録される露光条件情報タグ1002、回転中心情報が記録される回転中心情報タグ1003、撮像データが記録される画像部1004を有する。
【００５８】
例えばパーソナルコンピュータのCPUは、ソフトウェアとして実装された画像処理部100を実行する。そして、撮像データファイル1000を入力すると、回転振れ情報タグ1001、露光条件情報タグ1002、回転中心情報タグ1003の情報に基づき、画像部1004の撮像データの回転振れを補正し、補正後の撮像データを出力する。
【００５９】
このように、図8に示す形式の撮像データファイル1000を読み込み、撮像データの回転振れを補正することができる。
【実施例４】
【００６０】
以下、本発明にかかる実施例4の画像処理を説明する。なお、実施例4において、実施例1〜3と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００６１】
上記の実施例においては、一つの撮像データに回転振れ補正を施す例を説明した。実施例4においては、複数の撮像データに回転振れ補正を施す拡張例を説明する。
【００６２】
図9は実施例4の画像処理部1100の構成例を示すブロック図である。
【００６３】
画像処理部1100は、実施例1と同様の画像処理部100を複数有する。画像処理部100a、100b、100c、…はそれぞれ、撮像部800から撮像データと各種情報（回転振れ情報・露光条件情報、回転中心情報を含む）を入力し、撮像データに回転振れ補正を施す。なお、回転中心情報は、撮像データに関係なく単一の情報である。合成部1103は、複数の画像処理部100によって回転振れ補正された撮像データを合成し、合成した撮像データを出力する。
【００６４】
複数の撮像データは、例えば、撮像デバイス804の撮像面を複数の領域に分割した場合に各領域によって撮像された撮像データに相当する。あるいは、超解像処理を行うための複数の撮像データでもよい。
【００６５】
図10は画像処理部1100の動作を説明するフローチャートである。
【００６６】
画像処理部1100は、撮像部800から複数の撮像データが入力されると(S1201)、複数の撮像データに対応する回転振れ情報および露光条件情報と、回転中心情報を取得する(S1202)。
【００６７】
次に、画像処理部1100は、回転振れ情報、露光条件情報、回転中心情報に基づく回転振れ補正を各画像処理部100に実行させる(S1203)。そして、各画像処理部100が回転振れ補正した撮像データを合成部1103に合成させ(S1204)、合成後の撮像データを出力する(S1205)。
【００６８】
このように、複数の撮像データそれぞれに回転振れ補正を施すことによって、単一の撮像データに回転振れ補正を施す場合よりも補正精度を向上することができる。
【００６９】
［他の実施例］
本発明は、上記実施例の機能を実現するプログラムを記録した記録媒体（または記憶媒体）を装置（またはシステム）に供給し、装置のコンピュータ（CPUやMPU）が記録媒体から読み出したプログラムを実行することでも実現される。この場合、記録媒体に格納されたプログラムが上記実施例の機能を実現し、そのプログラムと、そのプログラムを記憶するコンピュータが読み取り可能な記録媒体は本発明を構成する。
【００７０】
また、プログラムの実行により上記機能が実現されるだけではない。つまり、プログラムの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)および/または他のプログラムなどが実際の処理または制御の一部または全部を行い、それによって上記機能が実現される場合も含む。また、プログラムは、コンピュータに接続された機能拡張カードやユニットなどのデバイスのメモリに格納されていてもよい。つまり、プログラムの指示により、デバイスのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。本発明を記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応または関連するプログラムが格納される。
【図１】
2010252123.tif 000003
【図２】
2010252123.tif 000004
【図３Ａ】
2010252123.tif 000005
【図３Ｂ】
2010252123.tif 000006
【図４Ａ】
2010252123.tif 000007
【図４Ｂ】
2010252123.tif 000008
【図６】
2010252123.tif 000009
【図７】
2010252123.tif 000010
【図８】
2010252123.tif 000011
【図９】
2010252123.tif 000012
【図１０】
2010252123.tif 000013
【図５Ａ】
2010252123.tif 000014
【図５Ｂ】
2010252123.tif 000015