画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体
【課題】ローリングシャッタ歪み成分を安定して正確に推定することができる画像処理装置、画像処理方法及び画像処理プログラムを提供する。
【解決手段】画像処理装置1は、画像入力部10、動きベクトル取得部11及び歪み成分推定部12を備える。画像入力部10は、複数のフレーム画像を入力する。動きベクトル取得部11は、2つのフレーム画像間の平行移動量を取得する。歪み成分推定部12は、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する。
【解決手段】画像処理装置1は、画像入力部10、動きベクトル取得部11及び歪み成分推定部12を備える。画像入力部10は、複数のフレーム画像を入力する。動きベクトル取得部11は、2つのフレーム画像間の平行移動量を取得する。歪み成分推定部12は、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体に関するものである。
【背景技術】
【0002】
従来、画像処理装置として、CMOS(Complementary Metal Oxide Semiconductor)を用いてフォーカルプレーンシャッタ方式で撮像された画像を処理するものが知られている(特許文献1参照)。上述した方式では、フレーム画像のデータ転送が1ラインごとに行われる。このため、フレーム画像内における撮像タイミングがラインごとに僅かに異なるタイミングとなる。このような撮像タイミングのズレに起因して、いわゆるローリングシャッタ歪み(フォーカルプレーン歪み)が発生する。
【0003】
特許文献1記載の画像処理装置では、カメラモーション成分及びローリングシャッタ歪み成分等を用いて、画面全体の動きを示すグローバル動きベクトルをモデル化している。そして、この画像処理装置は、グローバル動きベクトルを検出し、検出されたグローバル動きベクトルから上記モデルを用いて各成分を分離し、カメラモーション成分又はローリングシャッタ歪み成分を算出する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−193302号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1記載の画像処理装置では、ローリングシャッタ歪み成分を正確に算出できない場合がある。例えば、撮像シーン内に異なる動きの複数の被写体が存在する場合、当該複数の被写体の動きがグローバル動きベクトルへ反映されることがある。この場合、グローバル動きベクトルは特許文献1記載のモデルと誤差が生じるため、得られるローリングシャッタ歪み成分に誤差が発生する。さらに、特許文献1記載のモデルでは、ローリングシャッタ歪みの拡縮を表す成分、及び平行四辺形の歪み度合いを表す成分を算出するために、それぞれグローバル動きベクトルの複数の成分を必要とする。このため、ローリングシャッタ歪み成分の算出において誤差が生じやすい。
【0006】
よって、当技術分野においては、ローリングシャッタ歪み成分を安定して正確に推定することができる画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体が望まれている。
【課題を解決するための手段】
【0007】
すなわち、本発明の一側面に係る画像処理装置は、連続する複数のフレーム画像を処理する画像処理装置である。この装置は、画像入力部、平行移動量取得部及び歪み成分推定部を備える。画像入力部は、複数のフレーム画像を入力する。平行移動量取得部は、2つのフレーム画像間の平行移動量を取得する。歪み成分推定部は、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する。
【0008】
この画像処理装置では、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似する。このように近似することによって、フレーム画像間の平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数を算出することができる。さらに、算出された複数の仮の歪み係数を用いて歪み係数を推定することによって、より適切な歪み係数を推定することが可能となる。よって、ローリングシャッタ歪み成分を安定して正確に推定することができる。
【0009】
一実施形態では、歪み成分推定部は、複数の仮の歪み係数の平均値又は中央値が歪み係数であると推定してもよい。また、一実施形態では、歪み成分推定部は、ローリングシャッタ歪み成分及び平行移動量を座標軸とする2次元平面上に仮の歪み係数をプロットし、回帰直線の傾きに基づいて歪み係数を推定してもよい。このように推定することにより、複数の仮の歪み係数を用いて適切な歪み係数を推定することができる。
【0010】
一実施形態では、歪み成分推定部は、仮の歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、当該フレーム画像の仮の歪み係数がフレーム画像のライン数の逆数であると補正してもよい。また、一実施形態では、歪み成分推定部は、仮の歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、当該フレーム画像の仮の歪み係数を用いることなく歪み係数を推定してもよい。このように補正することにより、仮の歪み係数の一つが不適切な値となった場合でも適切な歪み係数を推定することができる。
【0011】
一実施形態では、歪み成分推定部は、推定された歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、推定された歪み係数がフレーム画像のライン数の逆数であると補正してもよい。このように補正することにより最終的な歪み係数が不適切な値となることを回避することができる。
【0012】
また、本発明の他の側面に係る画像処理方法は、連続する複数のフレーム画像を処理する画像処理方法である。この方法は、画像入力ステップ、平行移動量取得ステップ及び歪み成分推定ステップを備える。画像入力ステップでは、複数のフレーム画像を入力する。平行移動量取得ステップでは、2つのフレーム画像間の平行移動量を取得する。歪み成分推定ステップでは、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する。
【0013】
また、本発明の他の側面に係る画像処理プログラムは、連続する複数のフレーム画像を処理するようにコンピュータを動作させる画像処理プログラムである。このプログラムは、コンピュータを、画像入力部、平行移動量取得部及び歪み成分推定部として動作させる。画像入力部は、複数のフレーム画像を入力する。平行移動量取得部は、2つのフレーム画像間の平行移動量を取得する。歪み成分推定部は、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する。
【0014】
また、本発明の他の側面に係る記憶媒体は、連続する複数のフレーム画像を処理するようにコンピュータを動作させる画像処理プログラムが記録された記憶媒体である。このプログラムは、コンピュータを、画像入力部、平行移動量取得部及び歪み成分推定部として動作させる。画像入力部は、複数のフレーム画像を入力する。平行移動量取得部は、2つのフレーム画像間の平行移動量を取得する。歪み成分推定部は、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する。
【0015】
本発明の他の側面に係る画像処理方法、画像処理プログラム及び記憶媒体によれば、上述した画像処理装置と同様の効果を奏する。
【発明の効果】
【0016】
本発明の種々の側面及び実施形態によれば、ローリングシャッタ歪み成分を安定して正確に推定することができる画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体が提供される。
【図面の簡単な説明】
【0017】
【図1】第1実施形態に係る画像処理装置を搭載した携帯端末の機能ブロック図である。
【図2】図1の画像処理装置が搭載される携帯端末のハードウェア構成図である。
【図3】連続する2枚のフレーム画像の座標系を説明する概要図である。
【図4】ローリングシャッタ歪みを説明する概要図である。(A)は、X方向のライン走査の走査順がY方向であるときに、カメラ操作がX方向である場合の被写体の歪みを示す。(B)は、X方向のライン走査の走査順がY方向であるときに、カメラ操作がY方向である場合の被写体の歪みを示す。(C)は、Y方向のライン走査の走査順がX方向であるときに、カメラ操作がX方向である場合の被写体の歪みを示す。(D)は、Y方向のライン走査の走査順がX方向であるときに、カメラ操作がY方向である場合の被写体の歪みを示す。
【図5】歪み係数の算出方法を説明する概要図である。
【図6】動フレーム画像と歪み計数との関係を示すグラフである。
【図7】動き行列成分と移動量との関係を示すグラフである。
【図8】図1の画像処理装置の動作を示すフローチャートである。
【図9】第1実施形態に係る他の画像処理装置を搭載した携帯端末の機能ブロック図である。
【図10】第3実施形態に係る画像処理装置を搭載した携帯端末の機能ブロック図である。
【図11】図10の画像処理装置の動作を示すフローチャートである。
【図12】第4実施形態に係る画像処理装置を搭載した携帯端末の機能ブロック図である。
【図13】図12の画像処理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、添付図面を参照して本発明の実施形態について説明する。なお、各図において同一又は相当部分には同一の符号を付し、重複する説明を省略する。
【0019】
(第1実施形態)
本実施形態に係る画像処理装置は、画像の歪みを補正する装置である。この画像処理装置は、例えば、撮像装置を移動させながら撮像する場合に発生するローリングシャッタ歪みを補正する場合に採用される。本実施形態に係る画像処理装置は、例えば、携帯電話、デジタルカメラ、PDA(Personal Digital Assistant)等、リソースに制限のあるモバイル端末に好適に搭載されるものであるが、これらに限られるものではなく、例えば通常のコンピュータシステムに搭載されてもよい。なお、以下では、説明理解の容易性を考慮し、本発明に係る画像処理装置の一例として、カメラ機能を備えた携帯端末に搭載される画像処理装置を説明する。
【0020】
図1は、本実施形態に係る画像処理装置1を備える携帯端末2の機能ブロック図である。図1に示す携帯端末2は、例えばユーザにより携帯される移動端末であり、図2に示すハードウェア構成を有する。図2は、携帯端末2のハードウェア構成図である。図2に示すように、携帯端末2は、物理的には、CPU(Central Processing Unit)100、ROM(Read Only Memory)101及びRAM(Random Access Memory)102等の主記憶装置、カメラ又はキーボード等の入力デバイス103、ディスプレイ等の出力デバイス104、ハードディスク等の補助記憶装置105などを含む通常のコンピュータシステムとして構成される。後述する携帯端末2及び画像処理装置1の各機能は、CPU100、ROM101、RAM102等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、CPU100の制御の元で入力デバイス103及び出力デバイス104を動作させるとともに、主記憶装置や補助記憶装置105におけるデータの読み出し及び書き込みを行うことで実現される。なお、上記の説明は携帯端末2のハードウェア構成として説明したが、画像処理装置1がCPU100、ROM101及びRAM102等の主記憶装置、入力デバイス103、出力デバイス104、補助記憶装置105などを含む通常のコンピュータシステムとして構成されてもよい。また、携帯端末2は、通信モジュール等を備えてもよい。
【0021】
図1に示すように、携帯端末2は、カメラ20、画像処理装置1、画像記録部21、カメラ情報記録部22及び表示部23を備えている。カメラ20は、画像を撮像する機能を有している。カメラ20として、例えばCMOSの画素センサ等が用いられ、フォーカルプレーンシャッタ方式で撮像される。すなわち、カメラ20は、画像の縦方向又は横方向へ走査して画素値を入力する。カメラ20は、例えばユーザ操作等により指定されたタイミングから所定の間隔で繰り返し撮像する連続撮像機能を有している。すなわち、カメラ20は、静止画像(静止フレーム画像)だけでなく動画(連続する動フレーム画像)を取得する機能を有している。カメラ20は、例えば撮像されたフレーム画像(対象画像)を撮像の度に画像処理装置1へ出力する機能を有している。
【0022】
画像処理装置1は、画像入力部10、動きベクトル取得部11、歪み成分推定部12、補正パラメータ算出部13及び画像補正部14を備えている。
【0023】
画像入力部10は、カメラ20により撮像されたフレーム画像を入力する機能を有している。画像入力部10は、例えばカメラ20により撮像されたフレーム画像を撮像の度に入力する機能を有している。また、画像入力部10は、入力フレーム画像を、携帯端末2に備わる画像記録部21に保存する機能を有している。また、画像入力部10は、入力フレーム画像を動きベクトル取得部11及び画像補正部14へ出力する機能を有している。
【0024】
動きベクトル取得部(平行移動量取得部)11は、入力フレーム画像と当該入力フレーム画像の直前に撮像された2枚のフレーム画像を用いて動きベクトルを取得する機能を有している。動きベクトル取得部11は、例えば、画像記録部21を参照し、入力フレーム画像の直前のフレーム画像を取得する。動きベクトル取得部11は、連続するフレーム画像同士をブロック単位でマッチングしてローカル動きベクトルを取得する。そして、動きベクトル取得部11は、取得された複数のローカル動きベクトルを用いて、カメラ20の被写体に対する相対的な動きによって生じるフレーム間のカメラモーション成分を算出する。ここで、図3に示すように、画像中心を原点とし、算出対象のフレーム画像の座標系を(xi,yi,1)t、一つ前のフレーム画像の座標系を(xi−1,yi−1,1)tとすると、カメラモーション成分は以下の数式(1)で表される。なお、iは自然数である。
【数1】
なお、数式(1)以外の手法でカメラモーションを取得してもよく、少なくともカメラ20の平行移動成分を取得できればよい。動きベクトル取得部11は、カメラモーション成分を歪み成分推定部12及び補正パラメータ算出部13へ出力する機能を有している。
【0025】
歪み成分推定部12は、カメラモーション成分に基づいてローリングシャッタ歪み成分を推定する機能を有している。図4は、ローリングシャッタ歪みを説明する概要図である。ローリングシャッタ歪みとは、図4の(A)のように、カメラ20が被写体に対して相対的に水平方向に移動した場合に、被写体が水平方向に平行四辺形状に歪むことである。カメラ20が垂直方向に移動する場合には、ローリングシャッタ歪みは、図4の(B)のように、被写体が垂直方向に拡大・縮小するように発生する。歪み量は、カメラ20の移動の速さが速くなるほど大きくなる。このことから、ローリングシャッタ歪みは、カメラ20の移動の速さによって推定することが可能であるといえる。カメラ20の移動の速さはフレーム間の平行移動量によって推定することができる。歪み成分推定部12は、動きベクトル取得部11で取得されたカメラモーション成分を入力し、カメラモーション成分の水平及び垂直方向の平行移動成分(m02i−1→i,m12i−1→i)tを、フレーム間の平行移動量(dxi,dyi)tであるとし、平行移動量に基づいて、ローリングシャッタ歪み成分を推定する。なお、フレーム間の平行移動量を、フレーム画像の中心座標の平行移動量としてもよい。ローリングシャッタ歪み成分は、歪みのある座標系を(xi,yi,1)t、歪みのない座標系を(Xi,Yi,1)tとすると、以下の数式(2)で表される。
【数2】
上記数式(2)に示すように、Yの値が歪み成分に影響を与える。ここでローリングシャッタ歪み成分に含まれるαは歪み係数である。歪み係数αは、フレーム画像の1ラインを読み込む時間を、フレーム画像全体を読み込む時間と次のフレーム画像を読み込むまでの時間とを加算した値で除算して算出される値である。言い換えれば、歪み係数αは、フレーム画像の1ラインを読み込む時間を、当該フレーム画像の最初のラインを読み込んだ時刻から次のフレーム画像の最初のラインを読み込む時刻までの時間で除算して算出される値である。歪み係数αは、カメラ20に備わる画素センサの仕様や画素センサの駆動の設定により変化する。例えば、画素センサそれぞれにおいて、スキャンスピード、フレームレート、露光時間、画像サイズ、走査線の向き、ズーム倍率、f値、機械式手ブレ補正機構のON/OFF、フレームの撮像から出力までの時間、読み出し速度、読み出し方向等といった設定情報が異なる。このため、歪みの推定の前に、あらかじめ画素センサの様々な設定、撮像モード又は環境条件を含む撮像条件に対して算出しておく必要がある。なお、画像センサにおいて、隣接ライン間の時間差をtL、隣接フレーム間の時間差をtFとすると、歪み係数αは以下の式で算出することができる。なお、隣接フレーム間の時間差tFについては、動フレーム画像列のフレームレートに基づいて導出することができる。
【数3】
ここで、フレーム画像のライン数(画像の高さ)をNLとすると、以下の不等式が成り立つ。
【数4】
上記不等式は以下のように変形することができる。
【数5】
このように、フレーム画像のライン数NLが既知の場合には、歪み係数αの上限値を決定することができる。
【0026】
ここで、歪み係数αの算出方法について説明する。図5は、歪み係数αの算出方法を説明する概要図である。図5に示すように、歪み係数αは、静止フレーム画像frameb、動フレーム画像列frameiを用いて算出される。静止フレーム画像と動フレーム画像とを比較して、どの程度の歪みが発生するのかを求め、さらに、動フレーム画像間でどの程度の平行移動量であったのかを求めることにより、歪みと平行移動量の相関を求める。この相関関係から歪み係数αを算出する。
【0027】
具体的には、まず、被写体及びカメラ20を静止させて、静止フレーム画像framebを撮影する。次に被写体あるいはカメラ20を動かし、動フレーム画像列:frame0、frame1、frame2、…、framei−1、frameiを撮影する。動フレーム画像frameiでの歪み量は、静止フレーム画像framebから動フレーム画像frameiへの動き行列Mb→iを計算することで算出することができる。歪み量は、静止フレーム画像framebの座標系を(xb,yb,1)とし、動フレーム画像frameiの座標系を(xi,yi,1)とすると、以下の数式(3)で表される。
【数6】
ここで、動き行列Mb→iが平行移動成分及び歪み成分のみであると仮定すると、歪み量は、以下の数式(4)のように近似することができる。
【数7】
【0028】
数式(2)と数式(4)とを比較する。数式(4)では、歪み成分はm01b→i及びm11b→iである。一方、数式(2)においては、歪み成分の元となるのは連続するフレーム間の動き成分とした平行移動量(dxi,dyi)tである。平行移動量を求めるために、動フレーム画像frameiと、その一つ前の動フレーム画像framei−1から、動き行列Mi−1→iを求める。動フレーム画像frameiと、その一つ前の動フレーム画像framei−1との関係を以下の数式(5)で表すことができる。
【数8】
上記数式(5)を用いてフレーム間の動き成分(m02i−1→i,m12i−1→i)tを平行移動成分(dxi,dyi)tとしてもよい。また、動フレーム画像frameiの中心座標の平行移動量を(dxi,dyi)tとしてもよい。また、連続するフレーム画像のうちフレーム画像frameiと直前のフレーム画像framei−1とを用いて第1の平行移動量を算出するとともに、フレーム画像frameiと直後のフレーム画像framei+1とを用いて第2の平行移動量を算出し、第1の平行移動量及び第2の平行移動量の平均(重み付け平均、多項式近似等)を用いて平行移動量を求めてもよい。平均の平行移動量を用いることで精度を向上させることができる。(dxi,dyi)tを算出することで、歪み係数αは、以下の数式(6),(7)で表すことができる。
【数9】
【数10】
【0029】
ここで、一つのフレーム画像frameiにおいてm01b→i,m11b→i,dxi,dyiを測定し、数式(6)、数式(7)を用いることで、歪み係数αを求めることができる。しかし、歪み係数αを求めるための測定値であるm01b→i,m11b→i,dxi,dyiには誤差が含まれることが想定される。このため、一つのフレーム画像frameiについて求めた歪み係数を仮の歪み係数とし、複数のフレーム画像についてフレーム画像ごとに仮の歪み係数を求めて、これらの仮の歪み係数を用いて誤差を収束させた精度のよい歪み係数αを算出してもよい。図6は、横軸がframei、縦軸が歪み係数αiである。図6に示すように、様々なframeiについて仮の歪み係数αiを求め、それらの平均値(重み付け平均値)を歪み係数αとして採用してもよい。あるいは、様々なframeiについて仮の歪み係数αiを求め、それらの中央値を歪み係数αとして採用してもよい。図7は、横軸が移動量dxiであり、縦軸が動き行列成分m01b→iである。図7に示すように、平行移動量及びローリングシャッタ歪み成分を座標軸とする2次元平面上にプロットし、数式(7)に示す回帰直線の傾きから歪み係数αを求めてもよい。測定値であるm01b→i,m11b→i,dxi,dyiの値が小さく、誤差が与える影響が大きい場合であっても、上述した手法により精度良く歪み係数αを求めることができる。なお、仮の歪み係数αi及び歪み係数αは上述した上限値(フレーム画像のライン数NLの逆数)以下である必要がある。このため、所定のフレーム画像framekの仮の歪み係数αkがフレーム画像のライン数NLの逆数よりも大きい場合には、当該フレーム画像framekについての仮の歪み係数αkをフレーム画像のライン数NLの逆数とする補正をした上で、上述した平均値、中央値、又は回帰直線による手法により歪み係数αを算出してもよい。あるいは、所定のフレーム画像framekの仮の歪み係数αkがフレーム画像のライン数NLの逆数よりも大きい場合には、当該フレーム画像framekの仮の歪み係数αkを除いて上述した平均値、中央値、又は回帰直線による手法により歪み係数αを算出してもよい。また、導出された歪み係数αがフレーム画像のライン数NLの逆数よりも大きい場合には、歪み係数αをフレーム画像のライン数NLの逆数とする補正をしてもよい。ローリングシャッタ歪みは画素センサの仕様や画素センサの駆動の設定により発生の様子が異なる。上述した手法で、カメラ20すなわち画素センサの設定に対してそれぞれ歪み係数αを算出することにより、カメラ20固有の条件を反映させて正確にローリングシャッタ歪みを推定することができる。なお、実際の測定値を用いて歪み係数αを算出する場合には、どのような撮像環境条件で歪み係数αを算出したのかについても記録しておいてもよい。撮像環境条件としては、例えば、「明るさ」又は「気温」等が含まれる。
【0030】
歪み成分推定部12は、カメラ情報記録部22を参照可能に構成されている。カメラ情報記録部22は、上記の方法で算出された歪み係数αを記録している。例えば、素子設定値と歪み係数αとを関連付けしたテーブルを備えている。素子設定値及び撮像環境と歪み係数αとを関連付けしたテーブルを備えていてもよい。歪み成分推定部12は、カメラ情報記録部22を参照し、画素センサの設定に応じて歪み係数αの値を取得し、カメラモーション成分を用いてローリングシャッタ歪み成分を推定する。画素センサの現状の設定情報や撮像環境に関する情報は、例えば、カメラ20から取得してもよい。また、カメラ情報記録部22に、フレーム画像の1ラインを読み込む時間、及び、フレーム画像全体を読み込む時間と次のフレーム画像を読み込むまでの時間が、設定情報や撮像環境に関する情報に関連付けされて記録されている場合には、カメラ情報記録部22から歪み係数αを直接取得するのではなく、カメラ情報記録部22に記録されている情報に基づいて歪み係数αを演算してもよい。歪み成分推定部12は、ローリングシャッタ歪み成分を補正パラメータ算出部13へ出力する機能を有している。
【0031】
補正パラメータ算出部13は、カメラモーション成分及びローリングシャッタ歪み成分に基づいて、歪みを打ち消すための補正パラメータを算出する機能を有している。例えば、補正パラメータ算出部13は、動画手ブレ補正及びローリングシャッタ歪み補正のパラメータを算出する。ここで、動画手ブレ補正に関しては、以下のように補正パラメータを算出する。まず、カメラ20の静止位置の基準となるフレームからのカメラモーション成分の累積値を求める。そして、例えば、カメラモーション成分の累積値に基づいて手ブレの周波数のみを抽出する。この周波数を打ち消すように補正パラメータを算出する。動画手ブレ補正をする場合において、動き補正前の座標を(xb,yb,1)t、動き補正後の座標を(x’i,y’i,1)tで表現した場合、動画の動き補正は以下の数式(8)式で定式化される。
【数11】
ここで数式(8)で用いた以下の行列は、動き補正行列である。
【数12】
動き補正前の座標(xb,yb,1)tは、歪みのある座標系である。ここで、補正パ動き補正前の座標(xb,yb,1)tを、歪みのない座標系(xb,yb,1)tへ一旦変換した後に、同一の動き補正行列による補正を適用するものとする。この場合、以下の数式(9)のように歪み量が表される。
【数13】
数式(9)に数式(2)を代入すると以下の数式(10)に示すように、計算することができる。
【数14】
上記数式(10)が、歪み補正及び動画手ブレ補正を同時に行うモデル式となる。なお上記数式(10)の平行移動成分(m02’b→i+m12’b→i・α・dxi,m12b→i・α・dyi)tについては、歪み係数αの原点の位置に依存してバイアスをかける必要がある。
【0032】
上述したように、補正パラメータ算出部13は、カメラモーション成分に基づき動き補正行列を求め、次に、動き補正行列及びローリングシャッタ歪み成分に基づき式(10)で表される演算により、動画手ブレ補正及びローリングシャッタ歪み補正のパラメータを算出する。補正パラメータ算出部13は、パラメータを画像補正部14へ出力する機能を有している。
【0033】
画像補正部14は、動画手ブレ補正及びローリングシャッタ歪み補正のパラメータに基づいて、入力されたフレーム画像に対して動きの補正を行う機能を有している。例えば、画像補正部14は、パラメータに基づいてフレーム画像に対しアフィン変換等による画像変形及び画素補間を行う。画像補正部14は、手ブレによるフレーム画像間の平行移動、回転、拡大又は縮小等の動きとローリングシャッタ歪みを補正することが可能である。そして、画像補正部14は、必要に応じて補正の対象を選択し、画像の補正を行う。上述したとおり、本実施形態の画像処理装置1では、ローリングシャッタ歪みは、カメラモーションの平行移動成分のみに起因していると限定している。ここで、手ブレについても平行移動の動きに限定すると、補正前のフレーム画像から補正フレーム画像の各水平ラインに対応する位置の水平ラインの必要領域を、補正フレーム画像にラインコピーすることで画像の補正を行うことができる。この方法により、高速に画像補正を行うことが可能となる。画像補正部14は、手ブレ及びローリングシャッタ歪みが補正された補正フレーム画像を、表示部23へ出力する機能を有している。表示部23は、補正フレーム画像を表示する機能を有している。
【0034】
次に、本実施形態に係る画像処理装置1の動作について説明する。図8は、本実施形態に係る画像処理装置1の動作を示すフローチャートである。図8に示す制御処理は、例えば携帯端末2の撮像機能をONしたタイミングで実行され、所定の周期で繰り返し実行される。
【0035】
図8に示すように、最初に画像入力部10が処理対象のフレーム画像を入力する(S10:画像入力ステップ)。次に、動きベクトル取得部11が動きベクトルを取得する(S12:平行移動量取得ステップ)。動きベクトル取得部11は、画像記録部21を参照し、直前に入力されたフレーム画像(直前画像)と、S10の処理で入力されたフレーム画像とに基づいて、動きベクトルを取得し、カメラモーション成分とする。S12の処理が終了すると、歪み成分推定処理へ移行する(S14:歪み成分推定ステップ)。
【0036】
S14の処理では、歪み成分推定部12が、S12の処理で取得されたカメラモーション成分を用いてローリングシャッタ歪み成分を推定する。例えば、歪み成分推定部12は、カメラ情報記録部22を参照し、画素センサの設定に応じて歪み係数αの値を取得する。そして、歪み成分推定部12は、歪み係数αとカメラモーション成分を用いて、数式(2)に基づいてローリングシャッタ歪み成分を推定する。S14の処理が終了すると、補正パラメータ算出処理へ移行する(S16)。
【0037】
S16の処理では、補正パラメータ算出部13が、S14の処理で推定された歪み成分を用いて補正パラメータを算出する。例えば、補正パラメータ算出部13は、数式(10)を用いて補正パラメータを算出する。S16の処理が終了すると、補正処理へ移行する(S18)。
【0038】
S18の処理では、画像補正部14が、S16の処理で算出された補正パラメータを用いてフレーム画像を補正する。S18の処理が終了すると、表示処理へ移行する(S20)。
【0039】
S20の処理では、表示部23が、S18の処理で補正されたフレーム画像を表示する。S20の処理が終了すると、図8に示す制御処理を終了する。
【0040】
次に、携帯端末(コンピュータ)2を上記画像処理装置1として機能させるための画像処理プログラムを説明する。
【0041】
画像処理プログラムは、メインモジュール、入力モジュール及び演算処理モジュールを備えている。メインモジュールは、画像処理を統括的に制御する部分である。入力モジュールは、入力画像を取得するように携帯端末2を動作させる。演算処理モジュールは、動きベクトル取得モジュール、歪み成分推定モジュール、補正パラメータ算出モジュール及び画像補正モジュールを備えている。メインモジュール、入力モジュール及び演算処理モジュールを実行させることにより実現される機能は、上述した画像処理装置1の画像入力部10、動きベクトル取得部11、歪み成分推定部12、補正パラメータ算出部13及び画像補正部14の機能とそれぞれ同様である。
【0042】
画像処理プログラムは、例えば、ROM等の記憶媒体または半導体メモリによって提供される。また、画像処理プログラムは、データ信号としてネットワークを介して提供されてもよい。
【0043】
以上、第1実施形態に係る画像処理装置1によれば、カメラ20の動きによって発生する動きベクトルを取得し、動きベクトルに基づいてフレーム画像のローリングシャッタ歪み成分を推定する。カメラ20の動きによって発生する動きベクトルは、画面全体の動きを示すグローバル動きベクトルに比べて自由度が制限されている。例えば、グローバル動きベクトルでは、平行移動成分、拡大縮小成分、回転成分、変形(歪み)成分等のパラメータが存在するが、カメラ20の動きは、変形や歪みのパラメータを考慮する必要がない。具体的には、グローバル動きベクトルでは、6つのパラメータのアフィンパラメータを検出する必要があるが、画像処理装置1によれば水平及び垂直方向の平行移動量、すなわち2つのパラメータを考慮すればよい。このため、動きベクトルは、グローバル動きベクトルに比べて、異なる動きの被写体が混在する撮像シーンであっても被写体の誤差を排除し易く安定して正確に取得することができる。よって、カメラ20の動きによって発生する動きベクトルを用いることにより、ローリングシャッタ歪み成分を安定して正確に推定することができる。さらに、2つのパラメータを用いた簡易な計算でローリングシャッタ歪み成分を推定するため、高速に処理することができる。
【0044】
また、第1実施形態に係る画像処理装置1によれば、動きベクトルの中でも特に安定して正確に取得できる平行移動成分を用いることで、ローリングシャッタ歪み成分を一層安定して正確に推定することができる。
【0045】
さらに、第1実施形態に係る画像処理装置1によれば、カメラ20の固有の要因や撮像時の環境情報等を勘案してローリングシャッタ歪み成分を推定することができる。このため、カメラ20の設定が変わりローリングシャッタ歪みの発生の様子が変化しても精度よく推定できる。
【0046】
なお、第1実施形態に係る画像処理装置1の変形例として、ジャイロセンサで検出された動き情報を用いてローリングシャッタ歪み成分を推定してもよい。ジャイロセンサを用いた画像処理装置1の構成を図9に示す。図9に示すように、動きベクトル取得部11は、ジャイロセンサ24に接続されている。動きベクトル取得部11は、ジャイロセンサ24によって出力される動き情報(動きベクトル)をカメラモーションとして取得する。その他の構成は同様である。このようにジャイロセンサ24を用いることにより、1枚のフレーム画像であってもローリングシャッタ歪みを推定して補正することができる。
【0047】
さらに、第1実施形態に係る画像処理方法及び画像処理プログラムも、画像処理装置1と同様の作用効果を奏する。
【0048】
(第2実施形態)
第2実施形態に係る画像処理装置1は、第1実施形態に係る画像処理装置1とほぼ同様に構成され、歪み成分推定部12の一部機能が相違する。具体的には、歪み成分推定部12が、カメラ20から取得した情報に応じて複数のローリングシャッタ歪み成分のモデルを切り替えて使用する点が相違する。以下では、第1実施形態に係る画像処理装置1と相違する点を中心に説明し、重複する部分の説明は省略する。
【0049】
歪み成分推定部12は、カメラ20の画素センサの走査順の方向に関する情報に基づいてローリングシャッタ歪み成分の推定手法を変更する機能を有している。例えば、カメラ情報記録部22には、カメラ20の設定情報として、現在の画素センサの走査順の方向に関する情報が記録されている。歪み成分推定部12は、カメラ情報記録部22を参照することで、上記情報を取得する。ローリングシャッタ歪み成分は、画素センサの走査の方向によって、図4の(A)、(B)及び図4の(C)、(D)のように歪みの発生の様子が異なる。図4の(A)、(B)のように、走査順が垂直方向の場合には、第1実施形態で説明した通り、数式(2)に示すモデルでローリングシャッタ歪みを表現できる。一方、図4の(C)、(D)のように走査順が水平方向の場合には、数式(2)に示すモデルでローリングシャッタ歪みを表現することができない。この場合、ローリングシャッタ歪み成分は、歪みのある座標系を(xi,yi,1)t、歪みのない座標系を(Xi,Yi,1)tとすると、以下の数式(11)に示すモデルで表される。
【数15】
上記数式(11)に示すように、Xの値が歪み成分に影響を与える。
【0050】
歪み成分推定部12は、カメラ情報記録部22を参照して得られた画素センサの走査順の方向に関する情報に基づいて、数式(2)又は数式(11)のモデルのどちらで推定するか否かを判定する。そして、決定したモデルに基づいて、ローリングシャッタ歪み成分を推定する。例えば、静止しているフレーム画像と動フレーム画像との間の動き行列、及び当該動フレーム画像の一つ前の動フレーム画像との動き行列に基づいて、当該動フレーム画像における歪み係数を算出する。数式(2)のモデルを用いた場合には、第1実施形態で説明した手法と同一の手法を用いて歪み係数を算出することができる。数式(11)のモデルを用いた場合も、x軸とy軸を切り替えて第1実施形態で説明した手法を用いて歪み係数を算出することができる。すなわち、歪み量は、数式(4)と同様に、以下の数式(12)のように近似することができる。
【数16】
数式(5)については走査順に関わらず同一となる。また、数式(6)、数式(7)については、走査順が変更されると、以下の数式(13)、数式(14)ように変更される。
【数17】
【数18】
その他の構成は第1実施形態と同様である。また、本実施形態に係る画像処理プログラムは、第1実施形態に係る画像処理プログラムと同様に構成される。
【0051】
以上、第2実施形態に係る画像処理装置1によれば、第1実施形態に係る画像処理装置1と同様の作用効果を奏するとともに、画像センサの走査順の方向に応じて適切なモデルを用いてローリングシャッタ歪みを推定することができる。このため、カメラ20の設定により画像センサの走査順の方向が変化しても正確な推定をすることが可能となる。
【0052】
(第3実施形態)
第3実施形態に係る画像処理装置1は、第1実施形態に係る画像処理装置1とほぼ同様に構成され、歪み成分推定部12の一部機能が相違する。具体的には、歪み成分推定部12が、ローリングシャッタ歪みの変化を検知する点、当該変化に応じて推定値を調整する点が相違する。以下では、第1実施形態に係る画像処理装置1と相違する点を中心に説明し、重複する部分の説明は省略する。
【0053】
図10は、本実施形態に係る画像処理装置1を搭載した携帯端末2の機能ブロック図である。図10に示すように、携帯端末2は、歪み成分記録部25を備えている。歪み成分記録部25は、歪み成分推定部12から読み出し及び書き込み可能に構成されている。歪み成分記録部25は、歪み成分推定部12によって推定されたローリングシャッタ歪み成分の履歴を格納する。
【0054】
歪み成分推定部12は、ローリングシャッタ歪み成分を推定すると、歪み成分記録部25へ記録する。そして、歪み成分推定部12は、推定されたローリングシャッタ歪み成分が、歪み成分記録部25に格納された前回値と比べて急激に変化しているか否かを判定する。前回値とは、直前のフレーム画像で推定されたローリングシャッタ歪みの推定値である。歪み成分推定部12は、例えば、推定されたローリングシャッタ歪み成分と前回値との差分を算出し、差分値が第1の閾値より大きい値であれば、急激な変化があったものと判定する。そして、歪み成分推定部12は、急激な変化があったと判定した場合には、ローリングシャッタ歪み成分の推定値を調整する。歪み成分推定部12は、差分が小さくなるように調整する。例えば、歪み成分推定部12は、ローリングシャッタ歪みの推定値を、前回のフレーム画像のローリングシャッタ歪みの推定値と同じ値とする。あるいは、歪み成分推定部12は、ローリングシャッタ歪みの推定値、及び、前回以前のローリングシャッタ歪み成分を用いて、加重平均する。なお、歪み成分推定部12は、加重平均のために選択する前回以前のローリングシャッタ歪み成分の数を第2閾値以下とする。第2閾値を調整することにより、ローリングシャッタ歪みの変化をどの程度抑制するかを調整することができる。その他の構成については、第1実施形態に係る画像処理装置と同様である。また、本実施形態に係る画像処理プログラムは、第1実施形態に係る画像処理プログラムと同様に構成される。
【0055】
次に、本実施形態に係る画像処理装置1の動作について説明する。図11は、本実施形態に係る画像処理装置1の動作を示すフローチャートである。図11に示す制御処理は、例えば携帯端末2の撮像機能をONしたタイミングで実行され、所定の周期で繰り返し実行される。
【0056】
図11に示すフレーム画像入力処理(S30)、動きベクトル取得処理(S32)及び歪み成分推定処理(S34)については、図8に示す処理と同様である。
【0057】
S36の処理では、歪み成分推定部12が、歪み成分記録部25を参照し、前回のフレーム画像で推定されたローリングシャッタ歪み成分(前回値)を取得する。そして、歪み成分推定部12は、S34の処理で算出したローリングシャッタ歪み成分と前回値との差分を算出する。S36の処理が終了すると、差分判定処理へ移行する(S38)。
【0058】
S38の処理では、歪み成分推定部12が、S36の処理で算出された差分が所定値(第1の閾値)より大きいか否かを判定する。S38の処理において、差分が第1の閾値より大きいと判定した場合には、調整処理へ移行する(S40)。
【0059】
S40の処理では、歪み成分推定部12が、S34の処理で推定されたローリングシャッタ歪み成分を調整する。例えば、S36の処理で用いた前回値と同じ値とする。あるいは、歪み成分推定部12は、S34の処理で推定されたローリングシャッタ歪み成分、及び、所定数の前回値を用いて加重平均する。S40の処理が終了すると、補正パラメータ算出処理へ移行する(S42)。
【0060】
一方、S38の処理において、差分が第1の閾値より大きくないと判定した場合には、補正パラメータ算出処理へ移行する(S42)。
【0061】
補正パラメータ算出処理(S42)、補正処理(S44)及び表示(S46)については、図8に示す処理と同様である。
【0062】
以上、第3実施形態に係る画像処理装置1によれば、第1及び第2実施形態に係る画像処理装置1と同様の効果を奏するとともに、ローリングシャッタ歪み成分の変化のうち所定値より大きい変化を検出し、その変化を抑制するようにローリングシャッタ歪み成分を調整することができる。ところで、従来の画像処理装置であれば、ジャイロセンサ等を用いることなく画像から歪み成分を演算する場合において、被写体が画面に進入・退出するシーンでは、ローリングシャッタ歪みが急激に変化してしまう。このため、ローリングシャッタ歪み成分を用いてローリングシャッタ歪みを補正すると、画面(フレーム画像)にちらつきやがたつきが生じる。これに対して、第3実施形態に係る画像処理装置1は、ローリングシャッタ歪み成分の急激な変化を抑制することにより、画面にちらつきやがたつきが生じることを回避することができる。よって、例えば、画面に被写体が進入・退出するシーンであっても、画面が不自然に補正されることを回避することが可能となる。
【0063】
(第4実施形態)
第4実施形態に係る画像処理装置1は、第1実施形態に係る画像処理装置1とほぼ同様に構成され、動きベクトル取得部11の一部機能が相違する。具体的には、動きベクトル取得部11が、動きベクトルの変化を検知する点、当該変化に応じてカメラモーションを調整する点が相違する。以下では、第1実施形態に係る画像処理装置1と相違する点を中心に説明し、重複する部分の説明は省略する。
【0064】
図12は、本実施形態に係る画像処理装置1を搭載した携帯端末2の機能ブロック図である。図12に示すように、携帯端末2は、動きベクトル記録部26を備えている。動きベクトル記録部26は、動きベクトル取得部11から読み出し及び書き込み可能に構成されている。動きベクトル記録部26は、動きベクトル取得部11によって取得された動きベクトルの履歴を格納する。
【0065】
動きベクトル取得部11は、動きベクトルを取得すると、動きベクトル記録部26へ記録する。そして、動きベクトル取得部11は、取得した動きベクトルが、動きベクトル記録部26に格納された前回値と比べて急激に変化しているか否かを判定する。前回値とは、直前のフレーム画像で取得された動きベクトルである。動きベクトル取得部11は、例えば、推定された動きベクトルと前回値との差分を算出し、差分値が第1の閾値より大きい値であれば、急激な変化があったものと判定する。そして、動きベクトル取得部11は、急激な変化があったと判定した場合には、動きベクトルを調整する。動きベクトル取得部11は、差分が小さくなるように調整する。例えば、動きベクトル取得部11は、動きベクトルを、前回のフレーム画像の動きベクトルと同じ値とする。あるいは、動きベクトル取得部11は、動きベクトル、及び、前回以前の動きベクトルを用いて、加重平均する。なお、歪み成分推定部12は、加重平均のために選択する前回以前の動きベクトルの数を第2閾値よりも小さい値とする。第2閾値を調整することにより、動きベクトルの変化をどの程度抑制するかを調整することができる。その他の構成については、第1実施形態に係る画像処理装置と同様である。また、本実施形態に係る画像処理プログラムは、第1実施形態に係る画像処理プログラムと同様に構成される。
【0066】
次に、本実施形態に係る画像処理装置1の動作について説明する。図13は、本実施形態に係る画像処理装置1の動作を示すフローチャートである。図13に示す制御処理は、例えば携帯端末2の撮像機能をONしたタイミングで実行され、所定の周期で繰り返し実行される。
【0067】
図11に示すフレーム画像入力処理(S50)、動きベクトル取得処理(S52については、図8に示す処理と同様である。
【0068】
S54の処理では、動きベクトル取得部11が、動きベクトル記録部26を参照し、前回のフレーム画像で取得された動きベクトル(前回値)を取得する。そして、動きベクトル取得部11は、S52の処理で取得された動きベクトルと前回値との差分を算出する。S54の処理が終了すると、差分判定処理へ移行する(S56)。
【0069】
S56の処理では、動きベクトル取得部11が、S54の処理で算出された差分が所定値(第1の閾値)より大きいか否かを判定する。S54の処理において、差分が第1の閾値より大きいと判定した場合には、調整処理へ移行する(S58)。
【0070】
S58の処理では、動きベクトル取得部11が、S52の処理で取得された動きベクトルを調整する。例えば、S54の処理で用いた前回値と同じ値とする。あるいは、動きベクトル取得部11は、S52の処理で取得された動きベクトル、及び、所定数の前回値を用いて加重平均する。S58の処理が終了すると、歪み成分推定処理へ移行する(S60)。
【0071】
一方、S56の処理において、差分が第1の閾値より大きくないと判定した場合には、歪み成分推定処理へ移行する(S60)。
【0072】
歪み成分推定処理(S60)、補正パラメータ算出処理(S62)、補正処理(S64)及び表示(S66)については、図8に示す処理と同様である。
【0073】
以上、第4実施形態に係る画像処理装置1によれば、第1及び第2実施形態に係る画像処理装置1と同様の効果を奏するとともに、動きベクトルの変化のうち所定値より大きい変化を検出し、その変化を抑制するように動きベクトルを調整することができる。ところで、従来の画像処理装置であれば、ジャイロセンサ等を用いることなく画像から歪み成分を演算する場合において、被写体が画面に進入・退出するシーンでは、ローリングシャッタ歪みが急激に変化してしまう。このため、動きベクトルを用いてローリングシャッタ歪みを補正すると、画面(フレーム画像)にちらつきやがたつきが生じる。これに対して、第4実施形態に係る画像処理装置1は、動きベクトルの急激な変化を抑制することにより、画面にちらつきやがたつきが生じることを回避することができる。よって、例えば、画面に被写体が進入・退出するシーンであっても、画面が不自然に補正されることを回避することが可能となる。
【0074】
なお、上述した実施形態は本発明に係る画像処理装置の一例を示すものである。本発明に係る画像処理装置は、実施形態に係る画像処理装置1に限られるものではなく、各請求項に記載した要旨を変更しない範囲で、実施形態に係る画像処理装置を変形し、又は他のものに適用したものであってもよい。
【0075】
例えば、上述した各実施形態では、カメラ20がフレーム画像を取得する例を説明したが、別の機器からネットワークを介して送信された画像であってもよい。
【0076】
また、上述した各実施形態に係る画像処理装置1を、手ぶれ補正装置とともに動作させてもよい。例えば、手ぶれ補正装置において、連写された複数の連続するフレーム画像を用いて一枚の補正フレーム画像を出力する装置が存在する。このような手ぶれ補正装置において、上述した実施形態に係る画像処理装置1を採用することにより、連続するフレーム画像間のローリングシャッタ歪みを補正することができるので、手ぶれ補正を一層正確に行うことが可能となる。
【0077】
さらに、上述した第3及び第4実施形態の変形例として、ジャイロセンサで検出された動き情報を利用し、動きベクトル取得部11で検出されたカメラモーション成分とジャイロセンサからの動き情報との差をとり、その差が急激に変化する場合にローリングシャッタ歪み成分を調整するように構成してもよい。
【符号の説明】
【0078】
1…画像処理装置、10…画像入力部、11…動きベクトル取得部(平行移動量取得部)、12…歪み成分推定部、13…補正パラメータ算出部、14…画像補正部、20…カメラ(撮像装置)、21…画像記録部、22…カメラ情報記録部、23…表示部、24…ジャイロセンサ、25…歪み成分記録部、26…動きベクトル記録部。
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体に関するものである。
【背景技術】
【0002】
従来、画像処理装置として、CMOS(Complementary Metal Oxide Semiconductor)を用いてフォーカルプレーンシャッタ方式で撮像された画像を処理するものが知られている(特許文献1参照)。上述した方式では、フレーム画像のデータ転送が1ラインごとに行われる。このため、フレーム画像内における撮像タイミングがラインごとに僅かに異なるタイミングとなる。このような撮像タイミングのズレに起因して、いわゆるローリングシャッタ歪み(フォーカルプレーン歪み)が発生する。
【0003】
特許文献1記載の画像処理装置では、カメラモーション成分及びローリングシャッタ歪み成分等を用いて、画面全体の動きを示すグローバル動きベクトルをモデル化している。そして、この画像処理装置は、グローバル動きベクトルを検出し、検出されたグローバル動きベクトルから上記モデルを用いて各成分を分離し、カメラモーション成分又はローリングシャッタ歪み成分を算出する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−193302号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1記載の画像処理装置では、ローリングシャッタ歪み成分を正確に算出できない場合がある。例えば、撮像シーン内に異なる動きの複数の被写体が存在する場合、当該複数の被写体の動きがグローバル動きベクトルへ反映されることがある。この場合、グローバル動きベクトルは特許文献1記載のモデルと誤差が生じるため、得られるローリングシャッタ歪み成分に誤差が発生する。さらに、特許文献1記載のモデルでは、ローリングシャッタ歪みの拡縮を表す成分、及び平行四辺形の歪み度合いを表す成分を算出するために、それぞれグローバル動きベクトルの複数の成分を必要とする。このため、ローリングシャッタ歪み成分の算出において誤差が生じやすい。
【0006】
よって、当技術分野においては、ローリングシャッタ歪み成分を安定して正確に推定することができる画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体が望まれている。
【課題を解決するための手段】
【0007】
すなわち、本発明の一側面に係る画像処理装置は、連続する複数のフレーム画像を処理する画像処理装置である。この装置は、画像入力部、平行移動量取得部及び歪み成分推定部を備える。画像入力部は、複数のフレーム画像を入力する。平行移動量取得部は、2つのフレーム画像間の平行移動量を取得する。歪み成分推定部は、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する。
【0008】
この画像処理装置では、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似する。このように近似することによって、フレーム画像間の平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数を算出することができる。さらに、算出された複数の仮の歪み係数を用いて歪み係数を推定することによって、より適切な歪み係数を推定することが可能となる。よって、ローリングシャッタ歪み成分を安定して正確に推定することができる。
【0009】
一実施形態では、歪み成分推定部は、複数の仮の歪み係数の平均値又は中央値が歪み係数であると推定してもよい。また、一実施形態では、歪み成分推定部は、ローリングシャッタ歪み成分及び平行移動量を座標軸とする2次元平面上に仮の歪み係数をプロットし、回帰直線の傾きに基づいて歪み係数を推定してもよい。このように推定することにより、複数の仮の歪み係数を用いて適切な歪み係数を推定することができる。
【0010】
一実施形態では、歪み成分推定部は、仮の歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、当該フレーム画像の仮の歪み係数がフレーム画像のライン数の逆数であると補正してもよい。また、一実施形態では、歪み成分推定部は、仮の歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、当該フレーム画像の仮の歪み係数を用いることなく歪み係数を推定してもよい。このように補正することにより、仮の歪み係数の一つが不適切な値となった場合でも適切な歪み係数を推定することができる。
【0011】
一実施形態では、歪み成分推定部は、推定された歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、推定された歪み係数がフレーム画像のライン数の逆数であると補正してもよい。このように補正することにより最終的な歪み係数が不適切な値となることを回避することができる。
【0012】
また、本発明の他の側面に係る画像処理方法は、連続する複数のフレーム画像を処理する画像処理方法である。この方法は、画像入力ステップ、平行移動量取得ステップ及び歪み成分推定ステップを備える。画像入力ステップでは、複数のフレーム画像を入力する。平行移動量取得ステップでは、2つのフレーム画像間の平行移動量を取得する。歪み成分推定ステップでは、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する。
【0013】
また、本発明の他の側面に係る画像処理プログラムは、連続する複数のフレーム画像を処理するようにコンピュータを動作させる画像処理プログラムである。このプログラムは、コンピュータを、画像入力部、平行移動量取得部及び歪み成分推定部として動作させる。画像入力部は、複数のフレーム画像を入力する。平行移動量取得部は、2つのフレーム画像間の平行移動量を取得する。歪み成分推定部は、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する。
【0014】
また、本発明の他の側面に係る記憶媒体は、連続する複数のフレーム画像を処理するようにコンピュータを動作させる画像処理プログラムが記録された記憶媒体である。このプログラムは、コンピュータを、画像入力部、平行移動量取得部及び歪み成分推定部として動作させる。画像入力部は、複数のフレーム画像を入力する。平行移動量取得部は、2つのフレーム画像間の平行移動量を取得する。歪み成分推定部は、フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、平行移動量を用いてローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する。
【0015】
本発明の他の側面に係る画像処理方法、画像処理プログラム及び記憶媒体によれば、上述した画像処理装置と同様の効果を奏する。
【発明の効果】
【0016】
本発明の種々の側面及び実施形態によれば、ローリングシャッタ歪み成分を安定して正確に推定することができる画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体が提供される。
【図面の簡単な説明】
【0017】
【図1】第1実施形態に係る画像処理装置を搭載した携帯端末の機能ブロック図である。
【図2】図1の画像処理装置が搭載される携帯端末のハードウェア構成図である。
【図3】連続する2枚のフレーム画像の座標系を説明する概要図である。
【図4】ローリングシャッタ歪みを説明する概要図である。(A)は、X方向のライン走査の走査順がY方向であるときに、カメラ操作がX方向である場合の被写体の歪みを示す。(B)は、X方向のライン走査の走査順がY方向であるときに、カメラ操作がY方向である場合の被写体の歪みを示す。(C)は、Y方向のライン走査の走査順がX方向であるときに、カメラ操作がX方向である場合の被写体の歪みを示す。(D)は、Y方向のライン走査の走査順がX方向であるときに、カメラ操作がY方向である場合の被写体の歪みを示す。
【図5】歪み係数の算出方法を説明する概要図である。
【図6】動フレーム画像と歪み計数との関係を示すグラフである。
【図7】動き行列成分と移動量との関係を示すグラフである。
【図8】図1の画像処理装置の動作を示すフローチャートである。
【図9】第1実施形態に係る他の画像処理装置を搭載した携帯端末の機能ブロック図である。
【図10】第3実施形態に係る画像処理装置を搭載した携帯端末の機能ブロック図である。
【図11】図10の画像処理装置の動作を示すフローチャートである。
【図12】第4実施形態に係る画像処理装置を搭載した携帯端末の機能ブロック図である。
【図13】図12の画像処理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、添付図面を参照して本発明の実施形態について説明する。なお、各図において同一又は相当部分には同一の符号を付し、重複する説明を省略する。
【0019】
(第1実施形態)
本実施形態に係る画像処理装置は、画像の歪みを補正する装置である。この画像処理装置は、例えば、撮像装置を移動させながら撮像する場合に発生するローリングシャッタ歪みを補正する場合に採用される。本実施形態に係る画像処理装置は、例えば、携帯電話、デジタルカメラ、PDA(Personal Digital Assistant)等、リソースに制限のあるモバイル端末に好適に搭載されるものであるが、これらに限られるものではなく、例えば通常のコンピュータシステムに搭載されてもよい。なお、以下では、説明理解の容易性を考慮し、本発明に係る画像処理装置の一例として、カメラ機能を備えた携帯端末に搭載される画像処理装置を説明する。
【0020】
図1は、本実施形態に係る画像処理装置1を備える携帯端末2の機能ブロック図である。図1に示す携帯端末2は、例えばユーザにより携帯される移動端末であり、図2に示すハードウェア構成を有する。図2は、携帯端末2のハードウェア構成図である。図2に示すように、携帯端末2は、物理的には、CPU(Central Processing Unit)100、ROM(Read Only Memory)101及びRAM(Random Access Memory)102等の主記憶装置、カメラ又はキーボード等の入力デバイス103、ディスプレイ等の出力デバイス104、ハードディスク等の補助記憶装置105などを含む通常のコンピュータシステムとして構成される。後述する携帯端末2及び画像処理装置1の各機能は、CPU100、ROM101、RAM102等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、CPU100の制御の元で入力デバイス103及び出力デバイス104を動作させるとともに、主記憶装置や補助記憶装置105におけるデータの読み出し及び書き込みを行うことで実現される。なお、上記の説明は携帯端末2のハードウェア構成として説明したが、画像処理装置1がCPU100、ROM101及びRAM102等の主記憶装置、入力デバイス103、出力デバイス104、補助記憶装置105などを含む通常のコンピュータシステムとして構成されてもよい。また、携帯端末2は、通信モジュール等を備えてもよい。
【0021】
図1に示すように、携帯端末2は、カメラ20、画像処理装置1、画像記録部21、カメラ情報記録部22及び表示部23を備えている。カメラ20は、画像を撮像する機能を有している。カメラ20として、例えばCMOSの画素センサ等が用いられ、フォーカルプレーンシャッタ方式で撮像される。すなわち、カメラ20は、画像の縦方向又は横方向へ走査して画素値を入力する。カメラ20は、例えばユーザ操作等により指定されたタイミングから所定の間隔で繰り返し撮像する連続撮像機能を有している。すなわち、カメラ20は、静止画像(静止フレーム画像)だけでなく動画(連続する動フレーム画像)を取得する機能を有している。カメラ20は、例えば撮像されたフレーム画像(対象画像)を撮像の度に画像処理装置1へ出力する機能を有している。
【0022】
画像処理装置1は、画像入力部10、動きベクトル取得部11、歪み成分推定部12、補正パラメータ算出部13及び画像補正部14を備えている。
【0023】
画像入力部10は、カメラ20により撮像されたフレーム画像を入力する機能を有している。画像入力部10は、例えばカメラ20により撮像されたフレーム画像を撮像の度に入力する機能を有している。また、画像入力部10は、入力フレーム画像を、携帯端末2に備わる画像記録部21に保存する機能を有している。また、画像入力部10は、入力フレーム画像を動きベクトル取得部11及び画像補正部14へ出力する機能を有している。
【0024】
動きベクトル取得部(平行移動量取得部)11は、入力フレーム画像と当該入力フレーム画像の直前に撮像された2枚のフレーム画像を用いて動きベクトルを取得する機能を有している。動きベクトル取得部11は、例えば、画像記録部21を参照し、入力フレーム画像の直前のフレーム画像を取得する。動きベクトル取得部11は、連続するフレーム画像同士をブロック単位でマッチングしてローカル動きベクトルを取得する。そして、動きベクトル取得部11は、取得された複数のローカル動きベクトルを用いて、カメラ20の被写体に対する相対的な動きによって生じるフレーム間のカメラモーション成分を算出する。ここで、図3に示すように、画像中心を原点とし、算出対象のフレーム画像の座標系を(xi,yi,1)t、一つ前のフレーム画像の座標系を(xi−1,yi−1,1)tとすると、カメラモーション成分は以下の数式(1)で表される。なお、iは自然数である。
【数1】
なお、数式(1)以外の手法でカメラモーションを取得してもよく、少なくともカメラ20の平行移動成分を取得できればよい。動きベクトル取得部11は、カメラモーション成分を歪み成分推定部12及び補正パラメータ算出部13へ出力する機能を有している。
【0025】
歪み成分推定部12は、カメラモーション成分に基づいてローリングシャッタ歪み成分を推定する機能を有している。図4は、ローリングシャッタ歪みを説明する概要図である。ローリングシャッタ歪みとは、図4の(A)のように、カメラ20が被写体に対して相対的に水平方向に移動した場合に、被写体が水平方向に平行四辺形状に歪むことである。カメラ20が垂直方向に移動する場合には、ローリングシャッタ歪みは、図4の(B)のように、被写体が垂直方向に拡大・縮小するように発生する。歪み量は、カメラ20の移動の速さが速くなるほど大きくなる。このことから、ローリングシャッタ歪みは、カメラ20の移動の速さによって推定することが可能であるといえる。カメラ20の移動の速さはフレーム間の平行移動量によって推定することができる。歪み成分推定部12は、動きベクトル取得部11で取得されたカメラモーション成分を入力し、カメラモーション成分の水平及び垂直方向の平行移動成分(m02i−1→i,m12i−1→i)tを、フレーム間の平行移動量(dxi,dyi)tであるとし、平行移動量に基づいて、ローリングシャッタ歪み成分を推定する。なお、フレーム間の平行移動量を、フレーム画像の中心座標の平行移動量としてもよい。ローリングシャッタ歪み成分は、歪みのある座標系を(xi,yi,1)t、歪みのない座標系を(Xi,Yi,1)tとすると、以下の数式(2)で表される。
【数2】
上記数式(2)に示すように、Yの値が歪み成分に影響を与える。ここでローリングシャッタ歪み成分に含まれるαは歪み係数である。歪み係数αは、フレーム画像の1ラインを読み込む時間を、フレーム画像全体を読み込む時間と次のフレーム画像を読み込むまでの時間とを加算した値で除算して算出される値である。言い換えれば、歪み係数αは、フレーム画像の1ラインを読み込む時間を、当該フレーム画像の最初のラインを読み込んだ時刻から次のフレーム画像の最初のラインを読み込む時刻までの時間で除算して算出される値である。歪み係数αは、カメラ20に備わる画素センサの仕様や画素センサの駆動の設定により変化する。例えば、画素センサそれぞれにおいて、スキャンスピード、フレームレート、露光時間、画像サイズ、走査線の向き、ズーム倍率、f値、機械式手ブレ補正機構のON/OFF、フレームの撮像から出力までの時間、読み出し速度、読み出し方向等といった設定情報が異なる。このため、歪みの推定の前に、あらかじめ画素センサの様々な設定、撮像モード又は環境条件を含む撮像条件に対して算出しておく必要がある。なお、画像センサにおいて、隣接ライン間の時間差をtL、隣接フレーム間の時間差をtFとすると、歪み係数αは以下の式で算出することができる。なお、隣接フレーム間の時間差tFについては、動フレーム画像列のフレームレートに基づいて導出することができる。
【数3】
ここで、フレーム画像のライン数(画像の高さ)をNLとすると、以下の不等式が成り立つ。
【数4】
上記不等式は以下のように変形することができる。
【数5】
このように、フレーム画像のライン数NLが既知の場合には、歪み係数αの上限値を決定することができる。
【0026】
ここで、歪み係数αの算出方法について説明する。図5は、歪み係数αの算出方法を説明する概要図である。図5に示すように、歪み係数αは、静止フレーム画像frameb、動フレーム画像列frameiを用いて算出される。静止フレーム画像と動フレーム画像とを比較して、どの程度の歪みが発生するのかを求め、さらに、動フレーム画像間でどの程度の平行移動量であったのかを求めることにより、歪みと平行移動量の相関を求める。この相関関係から歪み係数αを算出する。
【0027】
具体的には、まず、被写体及びカメラ20を静止させて、静止フレーム画像framebを撮影する。次に被写体あるいはカメラ20を動かし、動フレーム画像列:frame0、frame1、frame2、…、framei−1、frameiを撮影する。動フレーム画像frameiでの歪み量は、静止フレーム画像framebから動フレーム画像frameiへの動き行列Mb→iを計算することで算出することができる。歪み量は、静止フレーム画像framebの座標系を(xb,yb,1)とし、動フレーム画像frameiの座標系を(xi,yi,1)とすると、以下の数式(3)で表される。
【数6】
ここで、動き行列Mb→iが平行移動成分及び歪み成分のみであると仮定すると、歪み量は、以下の数式(4)のように近似することができる。
【数7】
【0028】
数式(2)と数式(4)とを比較する。数式(4)では、歪み成分はm01b→i及びm11b→iである。一方、数式(2)においては、歪み成分の元となるのは連続するフレーム間の動き成分とした平行移動量(dxi,dyi)tである。平行移動量を求めるために、動フレーム画像frameiと、その一つ前の動フレーム画像framei−1から、動き行列Mi−1→iを求める。動フレーム画像frameiと、その一つ前の動フレーム画像framei−1との関係を以下の数式(5)で表すことができる。
【数8】
上記数式(5)を用いてフレーム間の動き成分(m02i−1→i,m12i−1→i)tを平行移動成分(dxi,dyi)tとしてもよい。また、動フレーム画像frameiの中心座標の平行移動量を(dxi,dyi)tとしてもよい。また、連続するフレーム画像のうちフレーム画像frameiと直前のフレーム画像framei−1とを用いて第1の平行移動量を算出するとともに、フレーム画像frameiと直後のフレーム画像framei+1とを用いて第2の平行移動量を算出し、第1の平行移動量及び第2の平行移動量の平均(重み付け平均、多項式近似等)を用いて平行移動量を求めてもよい。平均の平行移動量を用いることで精度を向上させることができる。(dxi,dyi)tを算出することで、歪み係数αは、以下の数式(6),(7)で表すことができる。
【数9】
【数10】
【0029】
ここで、一つのフレーム画像frameiにおいてm01b→i,m11b→i,dxi,dyiを測定し、数式(6)、数式(7)を用いることで、歪み係数αを求めることができる。しかし、歪み係数αを求めるための測定値であるm01b→i,m11b→i,dxi,dyiには誤差が含まれることが想定される。このため、一つのフレーム画像frameiについて求めた歪み係数を仮の歪み係数とし、複数のフレーム画像についてフレーム画像ごとに仮の歪み係数を求めて、これらの仮の歪み係数を用いて誤差を収束させた精度のよい歪み係数αを算出してもよい。図6は、横軸がframei、縦軸が歪み係数αiである。図6に示すように、様々なframeiについて仮の歪み係数αiを求め、それらの平均値(重み付け平均値)を歪み係数αとして採用してもよい。あるいは、様々なframeiについて仮の歪み係数αiを求め、それらの中央値を歪み係数αとして採用してもよい。図7は、横軸が移動量dxiであり、縦軸が動き行列成分m01b→iである。図7に示すように、平行移動量及びローリングシャッタ歪み成分を座標軸とする2次元平面上にプロットし、数式(7)に示す回帰直線の傾きから歪み係数αを求めてもよい。測定値であるm01b→i,m11b→i,dxi,dyiの値が小さく、誤差が与える影響が大きい場合であっても、上述した手法により精度良く歪み係数αを求めることができる。なお、仮の歪み係数αi及び歪み係数αは上述した上限値(フレーム画像のライン数NLの逆数)以下である必要がある。このため、所定のフレーム画像framekの仮の歪み係数αkがフレーム画像のライン数NLの逆数よりも大きい場合には、当該フレーム画像framekについての仮の歪み係数αkをフレーム画像のライン数NLの逆数とする補正をした上で、上述した平均値、中央値、又は回帰直線による手法により歪み係数αを算出してもよい。あるいは、所定のフレーム画像framekの仮の歪み係数αkがフレーム画像のライン数NLの逆数よりも大きい場合には、当該フレーム画像framekの仮の歪み係数αkを除いて上述した平均値、中央値、又は回帰直線による手法により歪み係数αを算出してもよい。また、導出された歪み係数αがフレーム画像のライン数NLの逆数よりも大きい場合には、歪み係数αをフレーム画像のライン数NLの逆数とする補正をしてもよい。ローリングシャッタ歪みは画素センサの仕様や画素センサの駆動の設定により発生の様子が異なる。上述した手法で、カメラ20すなわち画素センサの設定に対してそれぞれ歪み係数αを算出することにより、カメラ20固有の条件を反映させて正確にローリングシャッタ歪みを推定することができる。なお、実際の測定値を用いて歪み係数αを算出する場合には、どのような撮像環境条件で歪み係数αを算出したのかについても記録しておいてもよい。撮像環境条件としては、例えば、「明るさ」又は「気温」等が含まれる。
【0030】
歪み成分推定部12は、カメラ情報記録部22を参照可能に構成されている。カメラ情報記録部22は、上記の方法で算出された歪み係数αを記録している。例えば、素子設定値と歪み係数αとを関連付けしたテーブルを備えている。素子設定値及び撮像環境と歪み係数αとを関連付けしたテーブルを備えていてもよい。歪み成分推定部12は、カメラ情報記録部22を参照し、画素センサの設定に応じて歪み係数αの値を取得し、カメラモーション成分を用いてローリングシャッタ歪み成分を推定する。画素センサの現状の設定情報や撮像環境に関する情報は、例えば、カメラ20から取得してもよい。また、カメラ情報記録部22に、フレーム画像の1ラインを読み込む時間、及び、フレーム画像全体を読み込む時間と次のフレーム画像を読み込むまでの時間が、設定情報や撮像環境に関する情報に関連付けされて記録されている場合には、カメラ情報記録部22から歪み係数αを直接取得するのではなく、カメラ情報記録部22に記録されている情報に基づいて歪み係数αを演算してもよい。歪み成分推定部12は、ローリングシャッタ歪み成分を補正パラメータ算出部13へ出力する機能を有している。
【0031】
補正パラメータ算出部13は、カメラモーション成分及びローリングシャッタ歪み成分に基づいて、歪みを打ち消すための補正パラメータを算出する機能を有している。例えば、補正パラメータ算出部13は、動画手ブレ補正及びローリングシャッタ歪み補正のパラメータを算出する。ここで、動画手ブレ補正に関しては、以下のように補正パラメータを算出する。まず、カメラ20の静止位置の基準となるフレームからのカメラモーション成分の累積値を求める。そして、例えば、カメラモーション成分の累積値に基づいて手ブレの周波数のみを抽出する。この周波数を打ち消すように補正パラメータを算出する。動画手ブレ補正をする場合において、動き補正前の座標を(xb,yb,1)t、動き補正後の座標を(x’i,y’i,1)tで表現した場合、動画の動き補正は以下の数式(8)式で定式化される。
【数11】
ここで数式(8)で用いた以下の行列は、動き補正行列である。
【数12】
動き補正前の座標(xb,yb,1)tは、歪みのある座標系である。ここで、補正パ動き補正前の座標(xb,yb,1)tを、歪みのない座標系(xb,yb,1)tへ一旦変換した後に、同一の動き補正行列による補正を適用するものとする。この場合、以下の数式(9)のように歪み量が表される。
【数13】
数式(9)に数式(2)を代入すると以下の数式(10)に示すように、計算することができる。
【数14】
上記数式(10)が、歪み補正及び動画手ブレ補正を同時に行うモデル式となる。なお上記数式(10)の平行移動成分(m02’b→i+m12’b→i・α・dxi,m12b→i・α・dyi)tについては、歪み係数αの原点の位置に依存してバイアスをかける必要がある。
【0032】
上述したように、補正パラメータ算出部13は、カメラモーション成分に基づき動き補正行列を求め、次に、動き補正行列及びローリングシャッタ歪み成分に基づき式(10)で表される演算により、動画手ブレ補正及びローリングシャッタ歪み補正のパラメータを算出する。補正パラメータ算出部13は、パラメータを画像補正部14へ出力する機能を有している。
【0033】
画像補正部14は、動画手ブレ補正及びローリングシャッタ歪み補正のパラメータに基づいて、入力されたフレーム画像に対して動きの補正を行う機能を有している。例えば、画像補正部14は、パラメータに基づいてフレーム画像に対しアフィン変換等による画像変形及び画素補間を行う。画像補正部14は、手ブレによるフレーム画像間の平行移動、回転、拡大又は縮小等の動きとローリングシャッタ歪みを補正することが可能である。そして、画像補正部14は、必要に応じて補正の対象を選択し、画像の補正を行う。上述したとおり、本実施形態の画像処理装置1では、ローリングシャッタ歪みは、カメラモーションの平行移動成分のみに起因していると限定している。ここで、手ブレについても平行移動の動きに限定すると、補正前のフレーム画像から補正フレーム画像の各水平ラインに対応する位置の水平ラインの必要領域を、補正フレーム画像にラインコピーすることで画像の補正を行うことができる。この方法により、高速に画像補正を行うことが可能となる。画像補正部14は、手ブレ及びローリングシャッタ歪みが補正された補正フレーム画像を、表示部23へ出力する機能を有している。表示部23は、補正フレーム画像を表示する機能を有している。
【0034】
次に、本実施形態に係る画像処理装置1の動作について説明する。図8は、本実施形態に係る画像処理装置1の動作を示すフローチャートである。図8に示す制御処理は、例えば携帯端末2の撮像機能をONしたタイミングで実行され、所定の周期で繰り返し実行される。
【0035】
図8に示すように、最初に画像入力部10が処理対象のフレーム画像を入力する(S10:画像入力ステップ)。次に、動きベクトル取得部11が動きベクトルを取得する(S12:平行移動量取得ステップ)。動きベクトル取得部11は、画像記録部21を参照し、直前に入力されたフレーム画像(直前画像)と、S10の処理で入力されたフレーム画像とに基づいて、動きベクトルを取得し、カメラモーション成分とする。S12の処理が終了すると、歪み成分推定処理へ移行する(S14:歪み成分推定ステップ)。
【0036】
S14の処理では、歪み成分推定部12が、S12の処理で取得されたカメラモーション成分を用いてローリングシャッタ歪み成分を推定する。例えば、歪み成分推定部12は、カメラ情報記録部22を参照し、画素センサの設定に応じて歪み係数αの値を取得する。そして、歪み成分推定部12は、歪み係数αとカメラモーション成分を用いて、数式(2)に基づいてローリングシャッタ歪み成分を推定する。S14の処理が終了すると、補正パラメータ算出処理へ移行する(S16)。
【0037】
S16の処理では、補正パラメータ算出部13が、S14の処理で推定された歪み成分を用いて補正パラメータを算出する。例えば、補正パラメータ算出部13は、数式(10)を用いて補正パラメータを算出する。S16の処理が終了すると、補正処理へ移行する(S18)。
【0038】
S18の処理では、画像補正部14が、S16の処理で算出された補正パラメータを用いてフレーム画像を補正する。S18の処理が終了すると、表示処理へ移行する(S20)。
【0039】
S20の処理では、表示部23が、S18の処理で補正されたフレーム画像を表示する。S20の処理が終了すると、図8に示す制御処理を終了する。
【0040】
次に、携帯端末(コンピュータ)2を上記画像処理装置1として機能させるための画像処理プログラムを説明する。
【0041】
画像処理プログラムは、メインモジュール、入力モジュール及び演算処理モジュールを備えている。メインモジュールは、画像処理を統括的に制御する部分である。入力モジュールは、入力画像を取得するように携帯端末2を動作させる。演算処理モジュールは、動きベクトル取得モジュール、歪み成分推定モジュール、補正パラメータ算出モジュール及び画像補正モジュールを備えている。メインモジュール、入力モジュール及び演算処理モジュールを実行させることにより実現される機能は、上述した画像処理装置1の画像入力部10、動きベクトル取得部11、歪み成分推定部12、補正パラメータ算出部13及び画像補正部14の機能とそれぞれ同様である。
【0042】
画像処理プログラムは、例えば、ROM等の記憶媒体または半導体メモリによって提供される。また、画像処理プログラムは、データ信号としてネットワークを介して提供されてもよい。
【0043】
以上、第1実施形態に係る画像処理装置1によれば、カメラ20の動きによって発生する動きベクトルを取得し、動きベクトルに基づいてフレーム画像のローリングシャッタ歪み成分を推定する。カメラ20の動きによって発生する動きベクトルは、画面全体の動きを示すグローバル動きベクトルに比べて自由度が制限されている。例えば、グローバル動きベクトルでは、平行移動成分、拡大縮小成分、回転成分、変形(歪み)成分等のパラメータが存在するが、カメラ20の動きは、変形や歪みのパラメータを考慮する必要がない。具体的には、グローバル動きベクトルでは、6つのパラメータのアフィンパラメータを検出する必要があるが、画像処理装置1によれば水平及び垂直方向の平行移動量、すなわち2つのパラメータを考慮すればよい。このため、動きベクトルは、グローバル動きベクトルに比べて、異なる動きの被写体が混在する撮像シーンであっても被写体の誤差を排除し易く安定して正確に取得することができる。よって、カメラ20の動きによって発生する動きベクトルを用いることにより、ローリングシャッタ歪み成分を安定して正確に推定することができる。さらに、2つのパラメータを用いた簡易な計算でローリングシャッタ歪み成分を推定するため、高速に処理することができる。
【0044】
また、第1実施形態に係る画像処理装置1によれば、動きベクトルの中でも特に安定して正確に取得できる平行移動成分を用いることで、ローリングシャッタ歪み成分を一層安定して正確に推定することができる。
【0045】
さらに、第1実施形態に係る画像処理装置1によれば、カメラ20の固有の要因や撮像時の環境情報等を勘案してローリングシャッタ歪み成分を推定することができる。このため、カメラ20の設定が変わりローリングシャッタ歪みの発生の様子が変化しても精度よく推定できる。
【0046】
なお、第1実施形態に係る画像処理装置1の変形例として、ジャイロセンサで検出された動き情報を用いてローリングシャッタ歪み成分を推定してもよい。ジャイロセンサを用いた画像処理装置1の構成を図9に示す。図9に示すように、動きベクトル取得部11は、ジャイロセンサ24に接続されている。動きベクトル取得部11は、ジャイロセンサ24によって出力される動き情報(動きベクトル)をカメラモーションとして取得する。その他の構成は同様である。このようにジャイロセンサ24を用いることにより、1枚のフレーム画像であってもローリングシャッタ歪みを推定して補正することができる。
【0047】
さらに、第1実施形態に係る画像処理方法及び画像処理プログラムも、画像処理装置1と同様の作用効果を奏する。
【0048】
(第2実施形態)
第2実施形態に係る画像処理装置1は、第1実施形態に係る画像処理装置1とほぼ同様に構成され、歪み成分推定部12の一部機能が相違する。具体的には、歪み成分推定部12が、カメラ20から取得した情報に応じて複数のローリングシャッタ歪み成分のモデルを切り替えて使用する点が相違する。以下では、第1実施形態に係る画像処理装置1と相違する点を中心に説明し、重複する部分の説明は省略する。
【0049】
歪み成分推定部12は、カメラ20の画素センサの走査順の方向に関する情報に基づいてローリングシャッタ歪み成分の推定手法を変更する機能を有している。例えば、カメラ情報記録部22には、カメラ20の設定情報として、現在の画素センサの走査順の方向に関する情報が記録されている。歪み成分推定部12は、カメラ情報記録部22を参照することで、上記情報を取得する。ローリングシャッタ歪み成分は、画素センサの走査の方向によって、図4の(A)、(B)及び図4の(C)、(D)のように歪みの発生の様子が異なる。図4の(A)、(B)のように、走査順が垂直方向の場合には、第1実施形態で説明した通り、数式(2)に示すモデルでローリングシャッタ歪みを表現できる。一方、図4の(C)、(D)のように走査順が水平方向の場合には、数式(2)に示すモデルでローリングシャッタ歪みを表現することができない。この場合、ローリングシャッタ歪み成分は、歪みのある座標系を(xi,yi,1)t、歪みのない座標系を(Xi,Yi,1)tとすると、以下の数式(11)に示すモデルで表される。
【数15】
上記数式(11)に示すように、Xの値が歪み成分に影響を与える。
【0050】
歪み成分推定部12は、カメラ情報記録部22を参照して得られた画素センサの走査順の方向に関する情報に基づいて、数式(2)又は数式(11)のモデルのどちらで推定するか否かを判定する。そして、決定したモデルに基づいて、ローリングシャッタ歪み成分を推定する。例えば、静止しているフレーム画像と動フレーム画像との間の動き行列、及び当該動フレーム画像の一つ前の動フレーム画像との動き行列に基づいて、当該動フレーム画像における歪み係数を算出する。数式(2)のモデルを用いた場合には、第1実施形態で説明した手法と同一の手法を用いて歪み係数を算出することができる。数式(11)のモデルを用いた場合も、x軸とy軸を切り替えて第1実施形態で説明した手法を用いて歪み係数を算出することができる。すなわち、歪み量は、数式(4)と同様に、以下の数式(12)のように近似することができる。
【数16】
数式(5)については走査順に関わらず同一となる。また、数式(6)、数式(7)については、走査順が変更されると、以下の数式(13)、数式(14)ように変更される。
【数17】
【数18】
その他の構成は第1実施形態と同様である。また、本実施形態に係る画像処理プログラムは、第1実施形態に係る画像処理プログラムと同様に構成される。
【0051】
以上、第2実施形態に係る画像処理装置1によれば、第1実施形態に係る画像処理装置1と同様の作用効果を奏するとともに、画像センサの走査順の方向に応じて適切なモデルを用いてローリングシャッタ歪みを推定することができる。このため、カメラ20の設定により画像センサの走査順の方向が変化しても正確な推定をすることが可能となる。
【0052】
(第3実施形態)
第3実施形態に係る画像処理装置1は、第1実施形態に係る画像処理装置1とほぼ同様に構成され、歪み成分推定部12の一部機能が相違する。具体的には、歪み成分推定部12が、ローリングシャッタ歪みの変化を検知する点、当該変化に応じて推定値を調整する点が相違する。以下では、第1実施形態に係る画像処理装置1と相違する点を中心に説明し、重複する部分の説明は省略する。
【0053】
図10は、本実施形態に係る画像処理装置1を搭載した携帯端末2の機能ブロック図である。図10に示すように、携帯端末2は、歪み成分記録部25を備えている。歪み成分記録部25は、歪み成分推定部12から読み出し及び書き込み可能に構成されている。歪み成分記録部25は、歪み成分推定部12によって推定されたローリングシャッタ歪み成分の履歴を格納する。
【0054】
歪み成分推定部12は、ローリングシャッタ歪み成分を推定すると、歪み成分記録部25へ記録する。そして、歪み成分推定部12は、推定されたローリングシャッタ歪み成分が、歪み成分記録部25に格納された前回値と比べて急激に変化しているか否かを判定する。前回値とは、直前のフレーム画像で推定されたローリングシャッタ歪みの推定値である。歪み成分推定部12は、例えば、推定されたローリングシャッタ歪み成分と前回値との差分を算出し、差分値が第1の閾値より大きい値であれば、急激な変化があったものと判定する。そして、歪み成分推定部12は、急激な変化があったと判定した場合には、ローリングシャッタ歪み成分の推定値を調整する。歪み成分推定部12は、差分が小さくなるように調整する。例えば、歪み成分推定部12は、ローリングシャッタ歪みの推定値を、前回のフレーム画像のローリングシャッタ歪みの推定値と同じ値とする。あるいは、歪み成分推定部12は、ローリングシャッタ歪みの推定値、及び、前回以前のローリングシャッタ歪み成分を用いて、加重平均する。なお、歪み成分推定部12は、加重平均のために選択する前回以前のローリングシャッタ歪み成分の数を第2閾値以下とする。第2閾値を調整することにより、ローリングシャッタ歪みの変化をどの程度抑制するかを調整することができる。その他の構成については、第1実施形態に係る画像処理装置と同様である。また、本実施形態に係る画像処理プログラムは、第1実施形態に係る画像処理プログラムと同様に構成される。
【0055】
次に、本実施形態に係る画像処理装置1の動作について説明する。図11は、本実施形態に係る画像処理装置1の動作を示すフローチャートである。図11に示す制御処理は、例えば携帯端末2の撮像機能をONしたタイミングで実行され、所定の周期で繰り返し実行される。
【0056】
図11に示すフレーム画像入力処理(S30)、動きベクトル取得処理(S32)及び歪み成分推定処理(S34)については、図8に示す処理と同様である。
【0057】
S36の処理では、歪み成分推定部12が、歪み成分記録部25を参照し、前回のフレーム画像で推定されたローリングシャッタ歪み成分(前回値)を取得する。そして、歪み成分推定部12は、S34の処理で算出したローリングシャッタ歪み成分と前回値との差分を算出する。S36の処理が終了すると、差分判定処理へ移行する(S38)。
【0058】
S38の処理では、歪み成分推定部12が、S36の処理で算出された差分が所定値(第1の閾値)より大きいか否かを判定する。S38の処理において、差分が第1の閾値より大きいと判定した場合には、調整処理へ移行する(S40)。
【0059】
S40の処理では、歪み成分推定部12が、S34の処理で推定されたローリングシャッタ歪み成分を調整する。例えば、S36の処理で用いた前回値と同じ値とする。あるいは、歪み成分推定部12は、S34の処理で推定されたローリングシャッタ歪み成分、及び、所定数の前回値を用いて加重平均する。S40の処理が終了すると、補正パラメータ算出処理へ移行する(S42)。
【0060】
一方、S38の処理において、差分が第1の閾値より大きくないと判定した場合には、補正パラメータ算出処理へ移行する(S42)。
【0061】
補正パラメータ算出処理(S42)、補正処理(S44)及び表示(S46)については、図8に示す処理と同様である。
【0062】
以上、第3実施形態に係る画像処理装置1によれば、第1及び第2実施形態に係る画像処理装置1と同様の効果を奏するとともに、ローリングシャッタ歪み成分の変化のうち所定値より大きい変化を検出し、その変化を抑制するようにローリングシャッタ歪み成分を調整することができる。ところで、従来の画像処理装置であれば、ジャイロセンサ等を用いることなく画像から歪み成分を演算する場合において、被写体が画面に進入・退出するシーンでは、ローリングシャッタ歪みが急激に変化してしまう。このため、ローリングシャッタ歪み成分を用いてローリングシャッタ歪みを補正すると、画面(フレーム画像)にちらつきやがたつきが生じる。これに対して、第3実施形態に係る画像処理装置1は、ローリングシャッタ歪み成分の急激な変化を抑制することにより、画面にちらつきやがたつきが生じることを回避することができる。よって、例えば、画面に被写体が進入・退出するシーンであっても、画面が不自然に補正されることを回避することが可能となる。
【0063】
(第4実施形態)
第4実施形態に係る画像処理装置1は、第1実施形態に係る画像処理装置1とほぼ同様に構成され、動きベクトル取得部11の一部機能が相違する。具体的には、動きベクトル取得部11が、動きベクトルの変化を検知する点、当該変化に応じてカメラモーションを調整する点が相違する。以下では、第1実施形態に係る画像処理装置1と相違する点を中心に説明し、重複する部分の説明は省略する。
【0064】
図12は、本実施形態に係る画像処理装置1を搭載した携帯端末2の機能ブロック図である。図12に示すように、携帯端末2は、動きベクトル記録部26を備えている。動きベクトル記録部26は、動きベクトル取得部11から読み出し及び書き込み可能に構成されている。動きベクトル記録部26は、動きベクトル取得部11によって取得された動きベクトルの履歴を格納する。
【0065】
動きベクトル取得部11は、動きベクトルを取得すると、動きベクトル記録部26へ記録する。そして、動きベクトル取得部11は、取得した動きベクトルが、動きベクトル記録部26に格納された前回値と比べて急激に変化しているか否かを判定する。前回値とは、直前のフレーム画像で取得された動きベクトルである。動きベクトル取得部11は、例えば、推定された動きベクトルと前回値との差分を算出し、差分値が第1の閾値より大きい値であれば、急激な変化があったものと判定する。そして、動きベクトル取得部11は、急激な変化があったと判定した場合には、動きベクトルを調整する。動きベクトル取得部11は、差分が小さくなるように調整する。例えば、動きベクトル取得部11は、動きベクトルを、前回のフレーム画像の動きベクトルと同じ値とする。あるいは、動きベクトル取得部11は、動きベクトル、及び、前回以前の動きベクトルを用いて、加重平均する。なお、歪み成分推定部12は、加重平均のために選択する前回以前の動きベクトルの数を第2閾値よりも小さい値とする。第2閾値を調整することにより、動きベクトルの変化をどの程度抑制するかを調整することができる。その他の構成については、第1実施形態に係る画像処理装置と同様である。また、本実施形態に係る画像処理プログラムは、第1実施形態に係る画像処理プログラムと同様に構成される。
【0066】
次に、本実施形態に係る画像処理装置1の動作について説明する。図13は、本実施形態に係る画像処理装置1の動作を示すフローチャートである。図13に示す制御処理は、例えば携帯端末2の撮像機能をONしたタイミングで実行され、所定の周期で繰り返し実行される。
【0067】
図11に示すフレーム画像入力処理(S50)、動きベクトル取得処理(S52については、図8に示す処理と同様である。
【0068】
S54の処理では、動きベクトル取得部11が、動きベクトル記録部26を参照し、前回のフレーム画像で取得された動きベクトル(前回値)を取得する。そして、動きベクトル取得部11は、S52の処理で取得された動きベクトルと前回値との差分を算出する。S54の処理が終了すると、差分判定処理へ移行する(S56)。
【0069】
S56の処理では、動きベクトル取得部11が、S54の処理で算出された差分が所定値(第1の閾値)より大きいか否かを判定する。S54の処理において、差分が第1の閾値より大きいと判定した場合には、調整処理へ移行する(S58)。
【0070】
S58の処理では、動きベクトル取得部11が、S52の処理で取得された動きベクトルを調整する。例えば、S54の処理で用いた前回値と同じ値とする。あるいは、動きベクトル取得部11は、S52の処理で取得された動きベクトル、及び、所定数の前回値を用いて加重平均する。S58の処理が終了すると、歪み成分推定処理へ移行する(S60)。
【0071】
一方、S56の処理において、差分が第1の閾値より大きくないと判定した場合には、歪み成分推定処理へ移行する(S60)。
【0072】
歪み成分推定処理(S60)、補正パラメータ算出処理(S62)、補正処理(S64)及び表示(S66)については、図8に示す処理と同様である。
【0073】
以上、第4実施形態に係る画像処理装置1によれば、第1及び第2実施形態に係る画像処理装置1と同様の効果を奏するとともに、動きベクトルの変化のうち所定値より大きい変化を検出し、その変化を抑制するように動きベクトルを調整することができる。ところで、従来の画像処理装置であれば、ジャイロセンサ等を用いることなく画像から歪み成分を演算する場合において、被写体が画面に進入・退出するシーンでは、ローリングシャッタ歪みが急激に変化してしまう。このため、動きベクトルを用いてローリングシャッタ歪みを補正すると、画面(フレーム画像)にちらつきやがたつきが生じる。これに対して、第4実施形態に係る画像処理装置1は、動きベクトルの急激な変化を抑制することにより、画面にちらつきやがたつきが生じることを回避することができる。よって、例えば、画面に被写体が進入・退出するシーンであっても、画面が不自然に補正されることを回避することが可能となる。
【0074】
なお、上述した実施形態は本発明に係る画像処理装置の一例を示すものである。本発明に係る画像処理装置は、実施形態に係る画像処理装置1に限られるものではなく、各請求項に記載した要旨を変更しない範囲で、実施形態に係る画像処理装置を変形し、又は他のものに適用したものであってもよい。
【0075】
例えば、上述した各実施形態では、カメラ20がフレーム画像を取得する例を説明したが、別の機器からネットワークを介して送信された画像であってもよい。
【0076】
また、上述した各実施形態に係る画像処理装置1を、手ぶれ補正装置とともに動作させてもよい。例えば、手ぶれ補正装置において、連写された複数の連続するフレーム画像を用いて一枚の補正フレーム画像を出力する装置が存在する。このような手ぶれ補正装置において、上述した実施形態に係る画像処理装置1を採用することにより、連続するフレーム画像間のローリングシャッタ歪みを補正することができるので、手ぶれ補正を一層正確に行うことが可能となる。
【0077】
さらに、上述した第3及び第4実施形態の変形例として、ジャイロセンサで検出された動き情報を利用し、動きベクトル取得部11で検出されたカメラモーション成分とジャイロセンサからの動き情報との差をとり、その差が急激に変化する場合にローリングシャッタ歪み成分を調整するように構成してもよい。
【符号の説明】
【0078】
1…画像処理装置、10…画像入力部、11…動きベクトル取得部(平行移動量取得部)、12…歪み成分推定部、13…補正パラメータ算出部、14…画像補正部、20…カメラ(撮像装置)、21…画像記録部、22…カメラ情報記録部、23…表示部、24…ジャイロセンサ、25…歪み成分記録部、26…動きベクトル記録部。
【特許請求の範囲】
【請求項1】
連続する複数のフレーム画像を処理する画像処理装置であって、
前記複数のフレーム画像を入力する画像入力部と、
2つのフレーム画像間の平行移動量を取得する平行移動量取得部と、
フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、前記平行移動量を用いて前記ローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する歪み成分推定部と、
を備える画像処理装置。
【請求項2】
前記歪み成分推定部は、前記複数の仮の歪み係数の平均値又は中央値が前記歪み係数であると推定する請求項1に記載の画像処理装置。
【請求項3】
前記歪み成分推定部は、前記ローリングシャッタ歪み成分及び前記平行移動量を座標軸とする2次元平面上に前記仮の歪み係数をプロットし、回帰直線の傾きに基づいて前記歪み係数を推定する請求項1に記載の画像処理装置。
【請求項4】
前記歪み成分推定部は、前記仮の歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、当該フレーム画像の仮の歪み係数がフレーム画像のライン数の逆数であると補正する請求項1〜3の何れか一項に記載の画像処理装置。
【請求項5】
前記歪み成分推定部は、前記仮の歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、当該フレーム画像の仮の歪み係数を用いることなく前記歪み係数を推定する請求項1〜4の何れか一項に記載の画像処理装置。
【請求項6】
前記歪み成分推定部は、推定された前記歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、推定された前記歪み係数がフレーム画像のライン数の逆数であると補正する請求項1〜5の何れか一項に記載の画像処理装置。
【請求項7】
連続する複数のフレーム画像を処理する画像処理方法であって、
前記複数のフレーム画像を入力する画像入力ステップと、
2つのフレーム画像間の平行移動量を取得する平行移動量取得ステップと、
フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、前記平行移動量を用いて前記ローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する歪み成分推定ステップと、
を備える画像処理方法。
【請求項8】
連続する複数のフレーム画像を処理するようにコンピュータを動作させる画像処理プログラムであって、
前記複数のフレーム画像を入力する画像入力部、
2つのフレーム画像間の平行移動量を取得する平行移動量取得部、及び
フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、前記平行移動量を用いて前記ローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する歪み成分推定部、
として前記コンピュータを動作させることを特徴とする画像処理プログラム。
【請求項9】
連続する複数のフレーム画像を処理するようにコンピュータを動作させる画像処理プログラムが記録された記憶媒体であって、
前記画像処理プログラムは、
前記複数のフレーム画像を入力する画像入力部、
2つのフレーム画像間の平行移動量を取得する平行移動量取得部、及び
フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、前記平行移動量を用いて前記ローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する歪み成分推定部、
として前記コンピュータを動作させることを特徴とする記憶媒体。
【請求項1】
連続する複数のフレーム画像を処理する画像処理装置であって、
前記複数のフレーム画像を入力する画像入力部と、
2つのフレーム画像間の平行移動量を取得する平行移動量取得部と、
フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、前記平行移動量を用いて前記ローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する歪み成分推定部と、
を備える画像処理装置。
【請求項2】
前記歪み成分推定部は、前記複数の仮の歪み係数の平均値又は中央値が前記歪み係数であると推定する請求項1に記載の画像処理装置。
【請求項3】
前記歪み成分推定部は、前記ローリングシャッタ歪み成分及び前記平行移動量を座標軸とする2次元平面上に前記仮の歪み係数をプロットし、回帰直線の傾きに基づいて前記歪み係数を推定する請求項1に記載の画像処理装置。
【請求項4】
前記歪み成分推定部は、前記仮の歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、当該フレーム画像の仮の歪み係数がフレーム画像のライン数の逆数であると補正する請求項1〜3の何れか一項に記載の画像処理装置。
【請求項5】
前記歪み成分推定部は、前記仮の歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、当該フレーム画像の仮の歪み係数を用いることなく前記歪み係数を推定する請求項1〜4の何れか一項に記載の画像処理装置。
【請求項6】
前記歪み成分推定部は、推定された前記歪み係数がフレーム画像のライン数の逆数よりも大きい場合には、推定された前記歪み係数がフレーム画像のライン数の逆数であると補正する請求項1〜5の何れか一項に記載の画像処理装置。
【請求項7】
連続する複数のフレーム画像を処理する画像処理方法であって、
前記複数のフレーム画像を入力する画像入力ステップと、
2つのフレーム画像間の平行移動量を取得する平行移動量取得ステップと、
フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、前記平行移動量を用いて前記ローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する歪み成分推定ステップと、
を備える画像処理方法。
【請求項8】
連続する複数のフレーム画像を処理するようにコンピュータを動作させる画像処理プログラムであって、
前記複数のフレーム画像を入力する画像入力部、
2つのフレーム画像間の平行移動量を取得する平行移動量取得部、及び
フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、前記平行移動量を用いて前記ローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する歪み成分推定部、
として前記コンピュータを動作させることを特徴とする画像処理プログラム。
【請求項9】
連続する複数のフレーム画像を処理するようにコンピュータを動作させる画像処理プログラムが記録された記憶媒体であって、
前記画像処理プログラムは、
前記複数のフレーム画像を入力する画像入力部、
2つのフレーム画像間の平行移動量を取得する平行移動量取得部、及び
フレーム画像間の動きを示す動き行列が平行移動成分及びローリングシャッタ歪み成分のみからなると近似し、前記平行移動量を用いて前記ローリングシャッタ歪み成分に含まれる仮の歪み係数をフレーム画像ごとに算出し、算出された複数の仮の歪み係数を用いて歪み係数を推定する歪み成分推定部、
として前記コンピュータを動作させることを特徴とする記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2013−17155(P2013−17155A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2012−41715(P2012−41715)
【出願日】平成24年2月28日(2012.2.28)
【出願人】(505277358)株式会社モルフォ (18)
【Fターム(参考)】
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願日】平成24年2月28日(2012.2.28)
【出願人】(505277358)株式会社モルフォ (18)
【Fターム(参考)】
[ Back to top ]