(57)【要約】画像処理装置は、撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する。該装置は、入力部、動き取得部、行列演算部及び描画部を備える。入力部は、第１フレーム画像及び第２フレーム画像を順次入力する。動き取得部は、第１フレーム画像と第２フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、第１行列及び第２行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第２フレーム画像から出力フレーム画像を生成する。行列演算部は、第１算出部、第２算出部及び補助行列算出部を有する。第１算出部は、動きデータを用いて、射影行列の第１行列を算出する。第２算出部は、動きデータ、第１行列及び過去の第２行列を用いて、射影行列の第２行列を算出する。補助行列算出部は、動きデータ、第１行列及び過去の補助行列を用いて、射影行列の補助行列を算出する。
2014069632.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する画像処理装置であって、
第１フレーム画像及び第２フレーム画像を順次入力する入力部と、
前記第１フレーム画像と前記第２フレーム画像との間の動きデータを取得する動き取得部と、
前記出力フレーム画像を前記第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、前記第１行列及び前記第２行列に含まれない動き成分を含む補助行列から算出する行列演算部と、
前記射影行列を用いて前記第２フレーム画像から前記出力フレーム画像を生成する描画部と、
を備え、
前記行列演算部は、
前記動きデータを用いて、前記射影行列の第１行列を算出する第１算出部と、
前記動きデータ、前記第１行列、及び、過去の前記第２行列を用いて、前記射影行列の第２行列を算出する第２算出部と、
前記動きデータ、前記第１行列、及び、過去の前記補助行列を用いて、前記射影行列の補助行列を算出する補助行列算出部と、
を有する、
画像処理装置。
【請求項２】
前記第１算出部は、前記動きデータに含まれる平行移動成分に基づいて、前記射影行列の第１行列を算出する請求項１に記載の画像処理装置。
【請求項３】
前記補助行列は、四角形を台形へ変換する成分を含む請求項１又は２に記載の画像処理装置。
【請求項４】
前記補助行列は、拡大縮小成分を含む請求項１〜３の何れか一項に記載の画像処理装置。
【請求項５】
前記第２行列は、拡大縮小成分を含む請求項１〜４の何れか一項に記載の画像処理装置。
【請求項６】
前記動き取得部は、ジャイロセンサの出力値を取得する請求項１〜５の何れか一項に記載の画像処理装置。
【請求項７】
撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する画像処理方法であって、
第１フレーム画像及び第２フレーム画像を順次入力する入力ステップと、
前記第１フレーム画像と前記第２フレーム画像との間の動きデータを取得する動き取得ステップと、
前記出力フレーム画像を前記第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、前記第１行列及び前記第２行列に含まれない動き成分を含む補助行列から算出する行列演算ステップと、
前記射影行列を用いて前記第２フレーム画像から前記出力フレーム画像を生成する描画ステップと、
を備え、
前記行列演算ステップは、
前記動きデータを用いて、前記射影行列の第１行列を算出する第１算出ステップと、
前記動きデータ、前記第１行列、及び、過去の前記第２行列を用いて、前記射影行列の第２行列を算出する第２算出ステップと、
前記動きデータ、前記第１行列、及び、過去の前記補助行列を用いて、前記射影行列の補助行列を算出する補助行列算出ステップと、
を有する、
画像処理方法。
【請求項８】
撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムであって、
前記コンピュータを、
第１フレーム画像及び第２フレーム画像を順次入力する入力部、
前記第１フレーム画像と前記第２フレーム画像との間の動きデータを取得する動き取得部、
前記出力フレーム画像を前記第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、前記第１行列及び前記第２行列に含まれない動き成分を含む補助行列から算出する行列演算部、及び、
前記射影行列を用いて前記第２フレーム画像から前記出力フレーム画像を生成する描画部
として機能させ、
前記行列演算部は、
前記動きデータを用いて、前記射影行列の第１行列を算出する第１算出部と、
前記動きデータ、前記第１行列、及び、過去の前記第２行列を用いて、前記射影行列の第２行列を算出する第２算出部と、
前記動きデータ、前記第１行列、及び、過去の前記補助行列を用いて、前記射影行列の補助行列を算出する補助行列算出部と、
を有する、
画像処理プログラム。
【請求項９】
撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記コンピュータを、
第１フレーム画像及び第２フレーム画像を順次入力する入力部、
前記第１フレーム画像と前記第２フレーム画像との間の動きデータを取得する動き取得部、
前記出力フレーム画像を前記第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、前記第１行列及び前記第２行列に含まれない動き成分を含む補助行列から算出する行列演算部、及び、
前記射影行列を用いて前記第２フレーム画像から前記出力フレーム画像を生成する描画部
として機能させ、
前記行列演算部は、
前記動きデータを用いて、前記射影行列の第１行列を算出する第１算出部と、
前記動きデータ、前記第１行列、及び、過去の前記第２行列を用いて、前記射影行列の第２行列を算出する第２算出部と、
前記動きデータ、前記第１行列、及び、過去の前記補助行列を用いて、前記射影行列の補助行列を算出する補助行列算出部と、
を有する、
記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に関するものである。
【背景技術】
【０００２】
従来、画像処理装置として、動画撮像時の手振れ等の影響を排除するため、撮像されたフレーム画像から切り取るべき適切な切り取り領域を決定する装置が知られている（例えば、特許文献１参照）。特許文献１記載の画像処理装置は、フレーム画像が基準フレーム画像（例えば前回入力したフレーム画像）に対してどの程度ずれているかを示す動きデータを検出し、検出された動きデータに応じて切り取り領域を移動又は変形させることで、カメラの動きに対して切り取り領域が静止するように補正している。この画像処理装置では、回転・拡大縮小・平行移動の４自由度の動きあるいは平行移動・回転・拡大縮小・せん断の６自由度の動きを考慮して移動量又は変形量を算出し、切り取り領域を調整している。【０００３】
また、画像処理装置として、ローリングシャッタ歪み成分及びカメラモーション成分を正確に算出する手法が知られている（例えば、特許文献２参照）。特許文献２記載の画像処理装置は、未知の成分パラメータを用いてローリングシャッタ歪み成分及びカメラモーション成分を分離して表す成分分離式へ、アフィン変換行列として表されたグローバル動きベクトルを代入してモデル化する。そして、該装置は、モデル化された成分分離式から得られる方程式を解いて、各成文パラメータを算出し、ローリングシャッタ歪み成分及びカメラモーション成分を個々に正確に算出している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２２６６４３号公報
【特許文献２】特開２０１０−１９３３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１記載の画像処理装置のようにフレーム画像から領域を切り取る場合、切り取るべき領域をより適切な領域とするためには、フレーム画像間の動きデータに基づいてカメラの動き（カメラモーション成分）をより正確に算出する必要がある。ここで、特許文献２記載の画像処理装置を用いて、カメラの動きを全てモデル化することによって、カメラモーション成分を正確に算出することが考えられる。そして、特許文献２記載の画像処理装置のように、画像の変形の自由度として例えば６自由度の動きを考慮することが考えられる。これにより、４自由度の動きを考慮した場合に比べて、実際のカメラの動きに近い正確な動きデータを得ることができる。しかしながら、ユーザの意図しないカメラの動きによる不具合のみを補正しようとした場合、自由度が増えるほど手振れ補正等のための補正フィルタの設計が複雑になるおそれがある。例えば、撮像装置（カメラ）がパン又はチルトした場合には、各自由度の補正の度合いを変化させて、パン又はチルトに対して切り取り領域を追従させつつ、手振れ等が与える影響を除去する必要がある。【０００６】
さらに、特許文献２には、動きベクトルを６自由度のアフィン変換に限定した場合の成分分離式しか開示されていないため、動きベクトルを透視投影で表現する場合では、アフィン変換とは異なる成分分離式をモデル化する必要がある。このように、特許文献２記載の画像処理装置は、動きデータの形式に応じた成分分離式を用意する必要となるため、応用が利かないおそれがある。さらに、特許文献２記載の画像処理装置は、不正確なグローバル動きベクトルが成分分離式へ代入された場合には、必然的に不正確なローリングシャッタ歪み成分及びカメラモーション成分が導出されることになるため、ロバストな処理が行えないおそれがある。【０００７】
本技術分野では、フレーム画像から切り取るべき領域を簡易かつ適切に決定するとともに、手振れ補正等の補正フィルタの設計が簡易となる画像処理装置、画像処理方法、画像処理プログラム及び記録媒体が望まれている。
【課題を解決するための手段】
【０００８】
すなわち、本発明の一側面に係る画像処理装置は、撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する画像処理装置である。該装置は、入力部、動き取得部、行列演算部及び描画部を備える。入力部は、第１フレーム画像及び第２フレーム画像を順次入力する。動き取得部は、第１フレーム画像と第２フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、第１行列及び第２行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第２フレーム画像から出力フレーム画像を生成する。行列演算部は、第１算出部、第２算出部及び補助行列算出部を有する。第１算出部は、動きデータを用いて、射影行列の第１行列を算出する。第２算出部は、動きデータ、第１行列及び過去の第２行列を用いて、射影行列の第２行列を算出する。補助行列算出部は、動きデータ、第１行列及び過去の補助行列を用いて、射影行列の補助行列を算出する。【０００９】
この画像処理装置では、画像の変形の動きを、平行移動成分又は回転成分の少なくとも一方と、ローリングシャッタ歪み成分と、その他の成分とに分けて取り扱い、それぞれ別個に算出する。第１算出部により、動きデータを用いて、ローリングシャッタ歪み成分を含む第１行列がある程度正確に算出される。第２算出部により、動きデータ、第１行列及び過去の第２行列を用いて、平行移動成分及び回転成分の少なくとも一方を含む第２行列が算出される。補助行列算出部により、動きデータ、第１行列及び過去の補助行列を用いて、第１行列及び第２行列に含まれない動き成分を含む補助行列が算出される。このように、当該画像処理装置は、動きデータを３つに分解し、計算過程において別個に算出することができるため、動き成分に応じた処理が可能となる。例えば、ローリングシャッタ成分を手ぶれ除去等を行う補正対象から外すことが可能となる。これにより、補正の計算コストや補正フィルタの設計を容易とすることができる。さらに、平行移動成分又は回転成分と、補助行列が含む成分とをそれぞれ異なる式で算出していることから、人間の意図が強く反映される平行移動成分又は回転成分と、その他の残りの成分とを互いに関連させることなく独立して補正することが可能となる。すなわち、人間の意図が強く反映される動き成分とそれ以外の動き成分とを異なるフィルタで補正することができるため、カメラワークに適切に追従しながらユーザの意図しない動きによる不具合を解消することを両立させることが可能となる。また、各成分に対する補正は独立しているため、補正フィルタを容易に設計することができる。また、動きデータの形式が変更されたり、不正確なデータが存在したりする場合であっても、動きデータの形式の変更部分やエラー部分を補助行列に含ませることが可能であるため、全ての動きデータの形式に対応可能である。さらに、第２算出部の動きの算出方法は限定されないため、例えば、正確ではないがロバストな算出方法を第２算出部の動きの算出方法に適用することができる。この場合、画像処理装置全体としてロバストな処理を行うことができる。【００１０】
一実施形態では、第１算出部は、動きデータに含まれる平行移動成分に基づいて、射影行列の第１行列を算出してもよい。このように、ローリングシャッタ歪み成分が平行移動成分のみに起因すると仮定することにより、ほとんど正確なローリングシャッタ歪み成分を簡易かつ迅速に推定することができる。【００１１】
一実施形態では、補助行列は、四角形を台形へ変換する成分を含んでもよい。このように、画像の変形を８自由度としてとらえた場合には、補助行列に四角形を台形へ変換する成分を含めることで、ユーザの意図した動きに追従する処理には影響を与えずに、ユーザの意図しない動きによる不具合をより自然に解消することが可能となる。【００１２】
一実施形態では、補助行列は、拡大縮小成分を含んでもよい。例えば拡大縮小成分が撮像シーンにおいて利用されない傾向にある場合には、補助行列に拡大縮小成分を含めることで、ユーザの意図した動きに追従する処理には影響を与えずに、ユーザの意図しない動きによる不具合をより自然に解消することが可能となる。【００１３】
一実施形態では、第２行列は、拡大縮小成分を含んでもよい。例えば拡大縮小成分が撮像シーンにおいて利用される傾向にある場合には、第２行列に拡大縮小成分を含めることで、ユーザの意図した動きに追従する処理をより正確に行うことができる。【００１４】
一実施形態では、動き取得部は、ジャイロセンサの出力値を入力してもよい。このように、ハードウェアと協働させた場合であっても適切な画像処理を行うことができる。【００１５】
本発明の他の側面に係る画像処理方法は、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成する画像処理方法である。該方法は、入力ステップ、動き取得ステップ、行列演算ステップ及び描画ステップを備える。入力ステップは、第１フレーム画像及び第２フレーム画像を順次入力する。動き取得ステップは、第１フレーム画像と第２フレーム画像との間の動きデータを取得する。行列演算ステップは、出力フレーム画像を第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、第１行列及び第２行列に含まれない動き成分を含む補助行列から算出する。描画ステップは、射影行列を用いて第２フレーム画像から出力フレーム画像を生成する。行列演算ステップは、第１算出ステップ、第２算出ステップ及び補助行列算出ステップを有する。第１算出ステップは、動きデータを用いて、射影行列の第１行列を算出する。第２算出ステップは、動きデータ、第１行列及び過去の前記第２行列を用いて、射影行列の第２行列を算出する。補助行列算出ステップは、動きデータ、第１行列、及び、過去の補助行列を用いて、射影行列の補助行列を算出する。【００１６】
本発明の他の側面に係る画像処理プログラムは、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムである。該プログラムは、コンピュータを、入力部、動き取得部、行列演算部及び描画部として機能させる。入力部は、第１フレーム画像及び第２フレーム画像を順次入力する。動き取得部は、第１フレーム画像と第２フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、第１行列及び第２行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第２フレーム画像から出力フレーム画像を生成する。行列演算部は、第１算出部、第２算出部及び補助行列算出部を有する。第１算出部は、動きデータを用いて、射影行列の第１行列を算出する。第２算出部は、動きデータ、第１行列及び過去の第２行列を用いて、射影行列の第２行列を算出する。補助行列算出部は、動きデータ、第１行列及び過去の補助行列を用いて、射影行列の補助行列を算出する。【００１７】
本発明の他の側面に係る記録媒体は、画像処理プログラムを記録したコンピュータ読取可能な記録媒体である。画像処理プログラムは、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる。該プログラムは、コンピュータを、入力部、動き取得部、行列演算部及び描画部として機能させる。入力部は、第１フレーム画像及び第２フレーム画像を順次入力する。動き取得部は、第１フレーム画像と第２フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、第１行列及び第２行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第２フレーム画像から出力フレーム画像を生成する。行列演算部は、第１算出部、第２算出部及び補助行列算出部を有する。第１算出部は、動きデータを用いて、射影行列の第１行列を算出する。第２算出部は、動きデータ、第１行列及び過去の第２行列を用いて、射影行列の第２行列を算出する。補助行列算出部は、動きデータ、第１行列及び過去の補助行列を用いて、射影行列の補助行列を算出する。【００１８】
上述した画像処理方法、画像処理プログラム及び記録媒体によれば、上述した本発明の一側面に係る画像処理装置と同様の効果を奏する。
【発明の効果】
【００１９】
本発明の種々の側面及び実施形態によれば、フレーム画像から切り取るべき領域を簡易かつ適切に決定するとともに、手振れ補正等の補正フィルタの設計が簡易となる画像処理装置、画像処理方法、画像処理プログラム及び記録媒体が提供される。
【図面の簡単な説明】
【００２０】
【図１】実施形態に係る画像処理装置を搭載した携帯端末の機能ブロック図である。
【図２】実施形態に係る画像処理装置が搭載される携帯端末のハードウェア構成図である。
【図３】手振れ補正の原理を説明する概要図である。
【図４】画像の動きを説明する概要図である。
【図５】基準フレーム画像、対象フレーム画像及び出力フレーム画像の関係を説明する概要図である。
【図６】ローリングシャッタ歪みを説明する概要図である。（Ａ）は、Ｘ方向のライン走査の走査順がＹ方向であるときに、カメラ操作がＸ方向である場合の被写体の歪みを示す。（Ｂ）は、Ｘ方向のライン走査の走査順がＹ方向であるときに、カメラ操作がＹ方向である場合の被写体の歪みを示す。（Ｃ）は、Ｙ方向のライン走査の走査順がＸ方向であるときに、カメラ操作がＸ方向である場合の被写体の歪みを示す。（Ｄ）は、Ｙ方向のライン走査の走査順がＸ方向であるときに、カメラ操作がＹ方向である場合の被写体の歪みを示す。
【図７】ローリングシャッタ歪みのない系を説明する概要図である。
【図８】歪み係数の算出方法を説明する概要図である。
【図９】動フレーム画像と歪み計数との関係を示すグラフである。
【図１０】動き行列成分と移動量との関係を示すグラフである。
【図１１】平行移動成分及び回転成分を説明する概要図である。
【図１２】入力フレーム画像と出力フレーム画像との関係を示す概念図である。
【図１３】実施形態に係る画像処理装置の動作を説明するフローチャートである。
【発明を実施するための形態】
【００２１】
以下、添付図面を参照して実施形態について説明する。なお、各図において同一又は相当部分には同一の符号を付し、重複する説明を省略する。
【００２２】
本実施形態に係る画像処理装置は、画像の手振れやローリングシャッタ歪み等の不具合を排除して画像を出力する装置である。本実施形態に係る画像処理装置は、例えば複数の画像の連続撮影や動画撮影の場合に採用される。本実施形態に係る画像処理装置は、例えば、携帯電話、デジタルカメラ、ＰＤＡ（Personal  Digital  Assistant）等、リソースに制限のあるモバイル端末に好適に搭載されるものであるが、これらに限られるものではなく、例えば通常のコンピュータシステムに搭載されてもよい。なお、以下では、説明理解の容易性を考慮し、一例として、カメラ機能を備えた携帯端末に搭載される画像処理装置を説明する。
【００２３】
図１は、本実施形態に係る画像処理装置１を備える携帯端末２の機能ブロック図である。図１に示す携帯端末２は、例えばユーザにより携帯される移動端末であり、図２に示すハードウェア構成を有する。図２は、携帯端末２のハードウェア構成図である。図２に示すように、携帯端末２は、物理的には、ＣＰＵ（Central  Processing  Unit）１００、ＲＯＭ（Read  Only  Memory）１０１及びＲＡＭ（Random  Access  Memory）１０２等の主記憶装置、カメラ又はキーボード等の入力デバイス１０３、ディスプレイ等の出力デバイス１０４、ハードディスク等の補助記憶装置１０５などを含む通常のコンピュータシステムとして構成される。後述する携帯端末２及び画像処理装置１の各機能は、ＣＰＵ１００、ＲＯＭ１０１、ＲＡＭ１０２等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、ＣＰＵ１００の制御の元で入力デバイス１０３及び出力デバイス１０４を動作させるとともに、主記憶装置や補助記憶装置１０５におけるデータの読み出し及び書き込みを行うことで実現される。なお、上記の説明は携帯端末２のハードウェア構成として説明したが、画像処理装置１がＣＰＵ１００、ＲＯＭ１０１及びＲＡＭ１０２等の主記憶装置、入力デバイス１０３、出力デバイス１０４、補助記憶装置１０５などを含む通常のコンピュータシステムとして構成されてもよい。また、携帯端末２は、通信モジュール等を備えてもよい。
【００２４】
図１に示すように、携帯端末２は、カメラ（撮像装置）２０、画像処理装置１、画像記録部２２、前回データ記録部２３及び表示部２１を備えている。カメラ２０は、画像を撮像する機能を有している。カメラ２０として、例えばＣＭＯＳの画素センサ等が用いられ、フォーカルプレーンシャッタ方式で撮像される。すなわち、カメラ２０は、画像の縦方向又は横方向へ走査して画素値を入力する。カメラ２０は、例えばユーザ操作等により指定されたタイミングから所定の間隔で繰り返し撮像する連続撮像機能を有している。すなわち、カメラ２０は、静止画像（静止フレーム画像）だけでなく動画（連続する動フレーム画像）を取得する機能を有している。ユーザは、例えばカメラ２０をスライドしたり、所定位置を原点として回転させたり、左右上下方向に傾けたり、上述した動作を組み合わせたりして、自由に撮影することができる。カメラ２０は、例えば撮像されたフレーム画像を撮像の度に画像処理装置１へ出力する機能を有している。表示部２１は、画像又は映像を表示可能なディスプレイ装置である。
【００２５】
画像処理装置１は、手振れやローリングシャッタ歪み等の不具合を排除してフレーム画像を出力する機能を有する。例えば、図３の（Ａ），（Ｂ）に示すように、カメラ２０により連続撮像されたフレーム画像をframeｉ−１、frameｉとし、その中心位置をＣｆｉ−１、Ｃｆｉとする。画像処理装置１は、フレーム画像frameｉ−１よりも小さい大きさの切り出し領域Ｋｉ−１を設定する。例えば、切り出し領域Ｋｉ−１の大きさは、フレーム画像frameｉ−１の大きさの７０〜９０％となる。切り出し領域Ｋｉ−１の中心位置は、Ｃｒｉ−１である。この切り出し領域Ｋｉ−１が出力フレーム画像となる。次に、カメラ２０が（Ａ）で示す撮像位置から（Ｂ）で示す撮像位置へ変化したとする（図３の（Ｂ）の実線の矢印で示す右上方向へのシフト）。この場合、フレーム画像frameｉ−１よりも右上にシフトしたフレーム画像frameｉが得られる。ここで、画像処理装置１は、フレーム画像frameｉ−１とフレーム画像frameｉとの間の動きを相殺する位置に、切り出し領域Ｋｉを設定する（図３の（Ｂ）の点線の矢印で示す左下方向へのシフト）。これにより、前回の切り出し領域Ｋｉ−１の中心位置Ｃｒｉ−１と今回の切り出し領域Ｋｉの中心位置Ｃｒｉとが同程度の位置となるため、あたかも静止しているかのような出力フレーム画像が生成され、表示部２１へ出力される。
【００２６】
以下では、画像処理装置１の詳細を説明する。図１に示すように、画像処理装置１は、入力部１０、動き取得部１１、算出部（行列演算部）３０及び描画部１７を備えている。
【００２７】
入力部１０は、カメラ２０により撮像されたフレーム画像を入力する機能を有している。入力部１０は、例えばカメラ２０により撮像されたフレーム画像を撮像の度に入力する機能を有している。また、入力部１０は、フレーム画像を、携帯端末２に備わる画像記録部２２に保存する機能を有している。また、入力部１０は、入力フレーム画像を動き取得部１１へ出力する機能を有している。
【００２８】
動き取得部１１は、入力フレーム画像（第２フレーム画像）と当該入力フレーム画像の直前又は以前に撮像されたフレーム画像（第１フレーム画像）を用いて、フレーム画像間の動きを取得する機能を有している。第１フレーム画像は、例えば画像記録部２２に格納されている。動き取得部１１は、画像記録部２２を参照し、過去に入力されたフレーム画像を基準フレーム画像とし、基準フレーム画像と入力フレーム画像との相対的な動きデータを取得する。なお、基準フレーム画像は、処理対象の入力フレーム画像と一定領域以上の重なりがあればよい。このため、動き取得部１１は、基準フレーム画像を入力フレーム画像の入力の度に変更する必要はなく、処理対象の入力フレーム画像と一定領域以上の重なりが無くなった場合に、次回以降の基準フレーム画像を更新してもよい。また、２枚のフレーム画像ではなく、３枚以上のフレーム画像を参照して動きを取得する場合には、直前に入力されたフレーム画像を一時基準フレーム画像とし、設定済みの基準フレーム画像及び一時基準フレーム画像と処理対象の入力フレーム画像とを比較して動きを取得してもよい。動き取得部１１は、フレーム画像同士を比較して、例えば８自由度の動きデータＰ（観測値）を取得する。動き取得部１１は、動きデータＰを算出部３０へ出力する。なお、動き取得部１１は、携帯端末２に備わるジャイロセンサの出力値を入力することで、動きデータＰを取得してもよい。ジャイロセンサは、基準フレーム画像と入力フレーム画像との間の動きデータＰを検出して出力する機能を有する。
【００２９】
ここで、８自由度の動きについて概説する。図４は、８自由度の動きを説明する概要図である。図４に示すように、例えば変形前の画像が正方形である場合、カメラ２０の動きによって、画像が（Ａ）〜（Ｈ）へ変形する。ここで、（Ａ）は拡大/縮小、（Ｂ）は平行四辺形（横方向）、（Ｃ）は平行四辺形（縦方向）、（Ｄ）は回転、（Ｅ）は平行移動（横方向）、（Ｆ）は平行移動（縦方向）、（Ｇ）は台形（横方向）、（Ｈ）は台形（縦方向）である。このため、画像処理装置１は、上記変形に合わせて切り出し領域Ｋｉを設定する。
【００３０】
次に、動きデータＰ、切り出し領域Ｋｉ−１、切り出し領域Ｋｉ及び射影行列の関係を説明する。図５は、基準フレーム画像frameｉ−１、処理対象のフレーム画像frameｉ、それぞれの切り出し領域Ｋｉ−１，Ｋｉ、出力フレーム画像out-frameｉの関係を示す概要図である。図５では、基準フレーム画像frameｉ−１と処理対象のフレーム画像frameｉとの動きデータ（動きベクトル）をＰで示している。動きデータＰは、動き取得部１１によって既知である。また、基準フレーム画像frameｉ−１の切り出し領域Ｋｉ−１と出力フレーム画像out-frameｉ−１とを関連付けする変換式（射影行列）をＰdstｉ−１で示している。射影行列Ｐdstｉ−１は、以下では前回の射影行列、又は、第１射影行列ともいう。射影行列Ｐdstｉ−１は、前回の演算にて算出された値であるため、既知の値である。射影行列Ｐdstｉ−１は、例えば前回データ記録部２３に格納されている。この場合、図５に示すように、フレーム画像frameｉの切り出し領域Ｋｉと出力フレーム画像out-frameｉとを関連付けする変換式（射影行列）Ｐdstｉは、動きデータＰと第１射影行列Ｐdstｉ−１を用いて、以下の数式（１）で算出することができる。
【数１】
2014069632.tif 000003
なお、射影行列Ｐdstｉは、以下では、第２射影行列ともいう。
【００３１】
ここで、数式（１）の状態では、完全に切り出し領域を固定するモードとなる。しかしながら、ユーザの意図する動き（例えばカメラの平行移動やパン・チルト）に対しては追従させ、手振れ等の不具合は除去する必要がある。例えば、ハイパスフィルタを用いて、ユーザの意図する動き及び不具合となる動きをフィルタリングする。この場合、第２射影行列Ｐdstｉは、以下の数式（２）となる。
【数２】
2014069632.tif 000004
ここでＨＰＦは、ハイパスフィルタである。すなわち、手振れ等の高周波成分はパスさせて画面を固定させ、ユーザの意図する動きである低周波成分についてはカットして画面をユーザの動きに追従させる。
【００３２】
しかしながら、動きデータＰには、ローリングシャッタ歪み成分が含まれている。図６は、ローリングシャッタ歪みを説明する概要図である。ローリングシャッタ歪みとは、図６の（Ａ）のように、カメラ２０が被写体に対して相対的に水平方向に移動した場合に、被写体が水平方向に平行四辺形状に歪むことである。カメラ２０が垂直方向に移動する場合には、ローリングシャッタ歪みは、図６の（Ｂ）のように、被写体が垂直方向に拡大・縮小するように発生する。このローリングシャッタ歪み成分については、常に補正する必要があるため、ハイパスフィルタを常にパスさせるべき成分である。すなわち、ローリングシャッタ歪み成分については、ハイパスフィルタを適用させる必要性がない。よって、ローリングシャッタ歪み成分を分離させた状態で、ユーザの意図する動きに対しては追従させ、手振れ等の不具合は除去する枠組みを構築する。
【００３３】
図７は、上記枠組みを説明するための概要図である。図７に示すように、基準フレーム画像frameｉ−１から動きデータＰだけ移動した処理対象のフレーム画像frameｉが存在するとする。図７では、既知の値は実線の矢印で示し、未知の値は点線の矢印で示している。矢印Ｐは動きデータ（動きベクトル）であり、既知である。矢印Ｄｉ−１は、基準フレーム画像frameｉ−１のローリングシャッタ歪み成分を示す演算子（第１行列Ｄｉ−１）である。第１行列Ｄｉ−１は、前回の演算の際に求まる値であるので、既知である。第１行列Ｄｉ−１は、例えば前回データ記録部２３に格納されている。第１行列Ｄｉ−１を用いることで、入力画像系のフレーム画像をローリングシャッタ歪みのない系のフレーム画像へ変換することができる。
【００３４】
なお、図７では、「ローリングシャッタ歪みのない系」を図示しているが、完全にローリングシャッタ歪みが除去された系にする必要な無く、ローリングシャッタ歪みがある程度低減された系であってもよい。例えば、第１行列Ｄｉ−１が正確な値である場合には、入力画像系のフレーム画像をローリングシャッタ歪みが完全に存在しない系のフレーム画像へ変換することになる。しかし、第１行列Ｄｉ−１が正確な値でない場合には、入力画像系のフレーム画像をローリングシャッタ歪みが低減された系のフレーム画像へ変換することになる。このように、第１行列Ｄｉ−１の正確性は、ローリングシャッタ歪み成分をどこまで考慮しないのかという度合いに影響を与える。このため、一応確からしい第１行列Ｄｉ−１を用いた場合には、ローリングシャッタ歪みが低減された系へ変換させることができ、この場合、ローリングシャッタ歪み成分をある程度分離させた状態へすることが可能となる。すなわち、本実施形態の枠組みでは、ローリングシャッタ歪みの除去について、ある程度の誤差が含まれることを許容している。
【００３５】
図７では、基準フレーム画像frameｉ−１のローリングシャッタ歪みが低減された画像をRS_frameｉ−１で示している。矢印で示す行列Ｓｉ−１は、RS_frameｉ−１の切り出し領域と出力フレーム画像out-frameｉとを関連付けするベクトル（射影行列）である。射影行列Ｓｉ−１は、前回の演算の際に求まる値であるので、既知である。射影行列Ｓｉ−１は、例えば、前回の演算の際に求まる第１射影行列Ｐdstｉ−１と第１行列Ｄｉ−１とを用いて算出することができる。射影行列Ｓｉ−１は、例えば前回データ記録部２３に格納されている。以下では、射影行列Ｓｉ−１を、ローリングシャッタ歪み成分が低減された系の第１射影行列ともいう。
【００３６】
図７に示すように、処理対象のフレーム画像frameｉについても、ローリングシャッタ歪みのない系の画像RS_frameｉへ変換することができれば、ローリングシャッタ歪みのない系における動きデータＮを算出することができる。以下では、動きデータＮを仮の動きデータともいう。ローリングシャッタ歪みが低減された系における動きデータＮが求まれば、数式（２）と同様に、RS_frameｉの切り出し領域と出力フレーム画像out-frameｉとを関連付けする、ローリングシャッタ歪みが低減された系の射影行列Ｓｉ（ローリングシャッタ歪みが低減された系の第２射影行列）は、以下の数式（３）で表される。
【数３】
2014069632.tif 000005
ローリングシャッタ歪みが低減された系における射影行列Ｓｉを用いて、第２射影行列Ｐdstｉは、以下の数式（４）で表される。
【数４】
2014069632.tif 000006
このように、ローリングシャッタ歪みが低減された系へ変換することで、ローリングシャッタ歪みを考慮しないＮ・Ｓｉ−１に関してのみハイパスフィルタを適用することができる。
【００３７】
算出部３０は、上記枠組みを実現するための演算部である。すなわち、算出部３０が、既に算出されて前回データ記録部２３に記録されている前回データと測定値である今回データとを用いて、出力フレーム画像を第２フレーム画像へ射影させる第２射影行列Ｐdstｉを算出する。
【００３８】
以下では、前回データ記録部２３には、ローリングシャッタ歪み成分を示す第１行列Ｄｉ−１、第２フレーム画像を入力する前に入力されたフレーム画像間のローリングシャッタ歪みが低減された系における前回の動きデータＮＰＲＥ、第２フレーム画像を入力する前に入力されたフレーム画像間の前回の第２行列及び前回の補正行列、並びに、ローリングシャッタ歪みが低減された系における射影行列Ｓｉ−１が格納されている場合を説明する。なお、第２行列及び補正行列の詳細は後述する。
【００３９】
算出部３０は、出力フレーム画像を第２フレーム画像へ射影させる第２射影行列Ｐdstｉを、ローリングシャッタ歪み成分を含む第１行列Ｄｉ、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、第１行列Ｄｉ及び第２行列に含まれる動き成分を含まない補助行列から算出する。すなわち、算出部３０は、第２射影行列Ｐdstｉを、第１行列Ｄｉ、第２行列及び補助行列に分離させた状態で独立に算出する。算出部３０は、第１算出部１２、第２算出部１３及び補助行列算出部１４を備えている。
【００４０】
第１算出部１２は、ローリングシャッタ歪み成分を含む第１行列Ｄｉを算出する。第１算出部１２は、平行移動成分に基づいてローリングシャッタ歪み成分を算出する機能を有している。歪み量は、カメラ２０の移動の速さが速くなるほど大きくなる。このことから、ローリングシャッタ歪みは、カメラ２０の移動の速さを用いて推定することが可能であるといえる。カメラ２０の移動の速さはフレーム間の平行移動量を用いて推定することができる。よって、第１算出部１２は、例えば動きデータＰに含まれる平行移動量に基づいて、ローリングシャッタ歪み成分を含む第１行列Ｄｉを算出する。ここで、前回の動きデータをＰｉ−１とし、今回の動きデータをＰｉとすると、動きデータＰｉ−１及び動きデータをＰｉに含まれる平行移動量を平均した値を、平行移動量としてもよい。ローリングシャッタ歪み成分は、歪みのある座標系を（ｘｉ，ｙｉ，１）ｔ、歪みのない座標系を（Ｘｉ，Ｙｉ，１）ｔとすると、以下の数式（５）で表される。
【数５】
2014069632.tif 000007
上記数式（５）に示すように、Ｙの値が歪み成分に影響を与える。ここでローリングシャッタ歪み成分に含まれるｄｘｉ、ｄｙｉは画像の平行移動成分であり、αは歪み係数である。歪み係数αは、フレーム画像の１ラインを読み込む時間を、フレーム画像全体を読み込む時間と次のフレーム画像を読み込むまでの時間とを加算した値で除算して算出される値である。言い換えれば、歪み係数αは、フレーム画像の１ラインを読み込む時間を、当該フレーム画像の最初のラインを読み込んだ時刻から次のフレーム画像の最初のラインを読み込む時刻までの時間で除算して算出される値である。歪み係数αは、カメラ２０に備わる画素センサの仕様や画素センサの駆動の設定により変化する。例えば、画素センサそれぞれにおいて、スキャンスピード、フレームレート、露光時間、画像サイズ、走査線の向き、ズーム倍率、ｆ値、機械式手ブレ補正機構のＯＮ／ＯＦＦ、フレームの撮像から出力までの時間、読み出し速度、読み出し方向等といった設定情報が異なる。このため、歪みの推定の前に、あらかじめ撮像素子（画像センサ）の様々な設定、撮像モード又は環境条件を含む撮像条件に対して算出しておく必要がある。なお、画像センサにおいて、隣接ライン間の時間差をｔＬ、隣接フレーム間の時間差をｔＦとすると、歪み係数αは以下の式で算出することができる。なお、隣接フレーム間の時間差ｔＦについては、動フレーム画像列のフレームレートに基づいて導出することができる。
【数６】
2014069632.tif 000008
ここで、フレーム画像のライン数（画像の高さ）をＮＬとすると、以下の不等式が成り立つ。
【数７】
2014069632.tif 000009
上記不等式は以下のように変形することができる。
【数８】
2014069632.tif 000010
このように、フレーム画像のライン数ＮＬが既知の場合には、歪み係数αの上限値を決定することができる。
【００４１】
ここで、歪み係数αの算出方法について説明する。図８は、歪み係数αの算出方法を説明する概要図である。図８に示すように、歪み係数αは、静止フレーム画像frameｂ、動フレーム画像列frameｉを用いて算出される。静止フレーム画像と動フレーム画像とを比較して、どの程度の歪みが発生するのかを求め、さらに、動フレーム画像間でどの程度の平行移動量であったのかを求めることにより、歪みと平行移動量の相関を求める。この相関関係から歪み係数αを算出する。
【００４２】
具体的には、まず、被写体及びカメラ２０を静止させて、静止フレーム画像frameｂを撮影する。次に被写体あるいはカメラ２０を動かし、動フレーム画像列：frame０、frame１、frame２、…、frameｉ−１、frameｉを撮影する。動フレーム画像frameｉでの歪み量は、静止フレーム画像frameｂから動フレーム画像frameｉへの動き行列Ｍｂ→ｉを計算することで算出することができる。歪み量は、静止フレーム画像frameｂの座標系を（ｘｂ,ｙｂ,１）とし、動フレーム画像frameｉの座標系を（ｘｉ,ｙｉ,１）とすると、以下の数式（６）で表される。
【数９】
2014069632.tif 000011
ここで、動き行列Ｍｂ→ｉが平行移動成分及び歪み成分のみであると仮定すると、歪み量は、以下の数式（７）のように近似することができる。
【数１０】
2014069632.tif 000012
【００４３】
数式（５）と数式（７）とを比較する。数式（７）では、歪み成分はｍ０１ｂ→ｉ及びｍ１１ｂ→ｉである。一方、数式（５）においては、歪み成分の元となるのは連続するフレーム間の動き成分とした平行移動量（ｄｘｉ，ｄｙｉ）ｔである。平行移動量を求めるために、動フレーム画像frameｉと、その一つ前の動フレーム画像frameｉ−１から、動き行列Ｍｉ−１→ｉを求める。動フレーム画像frameｉと、その一つ前の動フレーム画像frameｉ−１との関係を以下の数式（８）で表すことができる。
【数１１】
2014069632.tif 000013
上記数式（８）を用いてフレーム間の動き成分（ｍ０２ｉ−１→ｉ，ｍ１２ｉ−１→ｉ）ｔを平行移動成分（ｄｘｉ，ｄｙｉ）ｔとしてもよい。また、動フレーム画像frameｉの中心座標の平行移動量を（ｄｘｉ，ｄｙｉ）ｔとしてもよい。また、連続するフレーム画像のうちフレーム画像frameｉと直前のフレーム画像frameｉ−１とを用いて第１の平行移動量を算出するとともに、フレーム画像frameｉと直後のフレーム画像frameｉ＋１とを用いて第２の平行移動量を算出し、第１の平行移動量及び第２の平行移動量の平均（重み付け平均、多項式近似等）を用いて平行移動量を求めてもよい。平均の平行移動量を用いることで精度を向上させることができる。（ｄｘｉ，ｄｙｉ）ｔを算出することで、歪み係数αは、以下の数式（９）,（１０）で表すことができる。
【数１２】
2014069632.tif 000014
【数１３】
2014069632.tif 000015
【００４４】
ここで、一つのフレーム画像frameｉにおいてｍ０１ｂ→ｉ，ｍ１１ｂ→ｉ,ｄｘｉ，ｄｙｉを測定し、数式（９）、数式（１０）を用いることで、歪み係数αを求めることができる。しかし、歪み係数αを求めるための測定値であるｍ０１ｂ→ｉ，ｍ１１ｂ→ｉ,ｄｘｉ，ｄｙｉには誤差が含まれることが想定される。このため、一つのフレーム画像frameｉについて求めた歪み係数を仮の歪み係数とし、複数のフレーム画像についてフレーム画像ごとに仮の歪み係数を求めて、これらの仮の歪み係数を用いて誤差を収束させた精度のよい歪み係数αを算出してもよい。図９は、横軸がframeｉ、縦軸が歪み係数αｉである。図９に示すように、様々なframeｉについて仮の歪み係数αｉを求め、それらの平均値（重み付け平均値）を歪み係数αとして採用してもよい。あるいは、様々なframeｉについて仮の歪み係数αｉを求め、それらの中央値を歪み係数αとして採用してもよい。図１０は、横軸が移動量ｄｘｉであり、縦軸が動き行列成分ｍ０１ｂ→ｉである。図１０に示すように、平行移動量及びローリングシャッタ歪み成分を座標軸とする２次元平面上にプロットし、数式（１０）に示す回帰直線の傾きから歪み係数αを求めてもよい。測定値であるｍ０１ｂ→ｉ，ｍ１１ｂ→ｉ,ｄｘｉ，ｄｙｉの値が小さく、誤差が与える影響が大きい場合であっても、上述した手法により精度良く歪み係数αを求めることができる。なお、仮の歪み係数αｉ及び歪み係数αは上述した上限値（フレーム画像のライン数ＮＬの逆数）以下である必要がある。このため、所定のフレーム画像frameｋの仮の歪み係数αｋがフレーム画像のライン数ＮＬの逆数よりも大きい場合には、当該フレーム画像frameｋについての仮の歪み係数αｋをフレーム画像のライン数ＮＬの逆数とする補正をした上で、上述した平均値、中央値、又は回帰直線による手法により歪み係数αを算出してもよい。あるいは、所定のフレーム画像frameｋの仮の歪み係数αｋがフレーム画像のライン数ＮＬの逆数よりも大きい場合には、当該フレーム画像frameｋの仮の歪み係数αｋを除いて上述した平均値、中央値、又は回帰直線による手法により歪み係数αを算出してもよい。また、導出された歪み係数αがフレーム画像のライン数ＮＬの逆数よりも大きい場合には、歪み係数αをフレーム画像のライン数ＮＬの逆数とする補正をしてもよい。ローリングシャッタ歪みは画素センサの仕様や画素センサの駆動の設定により発生の様子が異なる。上述した手法で、カメラ２０すなわち画素センサの設定に対してそれぞれ歪み係数αを算出することにより、カメラ２０固有の条件を反映させて正確にローリングシャッタ歪みを推定することができる。なお、実際の測定値を用いて歪み係数αを算出する場合には、どのような撮像環境条件で歪み係数αを算出したのかについても記録しておいてもよい。撮像環境条件としては、例えば、「明るさ」又は「気温」等が含まれる。
【００４５】
第１算出部１２は、上記の方法で算出された歪み係数αを記録したカメラ情報記録部を参照可能に構成されている。例えば、素子設定値と歪み係数αとを関連付けしたテーブルを備えている。素子設定値及び撮像環境と歪み係数αとを関連付けしたテーブルを備えていてもよい。第１算出部１２は、カメラ情報記録部を参照し、画素センサの設定に応じて歪み係数αの値を取得し、カメラモーション成分を用いてローリングシャッタ歪み成分を推定する。画素センサの現状の設定情報や撮像環境に関する情報は、例えば、カメラ２０から取得してもよい。また、カメラ情報記録部に、フレーム画像の１ラインを読み込む時間、及び、フレーム画像全体を読み込む時間と次のフレーム画像を読み込むまでの時間が、設定情報や撮像環境に関する情報に関連付けされて記録されている場合には、カメラ情報記録部から歪み係数αを直接取得するのではなく、カメラ情報記録部に記録されている情報に基づいて歪み係数αを演算してもよい。
【００４６】
第１算出部１２は、上記のとおり平行移動のみを考慮して第１行列Ｄｉを導出しているため、算出された第１行列Ｄｉは真の値ではないものの、おおよそ正しい値を得ることができる。第１算出部１２は、算出された第１行列Ｄｉを第２算出部１３、補助行列算出部１４及び描画部１７へ出力する。
【００４７】
第１行列Ｄｉが算出されれば、処理対象のフレーム画像frameｉをローリングシャッタ歪みのない系の画像RS_frameｉへ変換することができる。これにより、図７に示す関係を用いて、動きデータＰ及び第１行列Ｄｉを用いてローリングシャッタ歪みが低減された系における動きデータＮも導出することができる。
【００４８】
動きデータＮを算出することで、ローリングシャッタ歪みが考慮されていないＮ・Ｓｉ−１に関してのみハイパスフィルタを適用することができる。しかし、Ｎ・Ｓｉ−１は行列であるため、Ｎ・Ｓｉ−１をこのままの状態でハイパスフィルタを適用すると処理が複雑になるおそれがある。このため、算出部３０は、上述したとおり、Ｎ・Ｓｉ−１の動き成分を、ユーザの意図が反映されたカメラ２０の動きと、それ以外の動き成分とに分割して取り扱う。第２算出部１３は、ユーザの意図が反映されたカメラ２０の動きを含む第２行列を算出する。補助行列算出部１４は、補助行列を算出する。第２算出部１３及び補助行列算出部１４は、算出された第１行列Ｄｉを用いて、ローリングシャッタ歪みのない系における演算を実行可能に構成されている。
【００４９】
第２算出部１３は、ユーザの意図が反映されたカメラ２０の動きは平行移動成分及び回転成分の少なくとも一方であると推定する。なお、第２算出部１３は、平行移動成分及び回転成分と明確に成分として分けて動きを算出してもよいし、平行移動成分及び回転成分を複合させた動き成分（コンビネーションとした成分）を算出してもよい。例えば、第２算出部１３は、撮像方向に延びる軸をｚ軸、撮像方向に直交する方向に伸びる軸をｘ軸及びｙ軸とした場合、平行移動成分並びにｘ軸及びｙ軸の回転成分を組み合わせた成分を算出してもよい。また、撮像シーンに応じて、第２算出部１３は、拡大縮小成分も考慮して推定してもよい。すなわち、第２行列は、平行移動成分のみを含んでもよいし、回転成分のみを含んでもよいし、平行移動成分及び回転成分のみを含んでもよいし、平行移動成分及び回転成分に加えて拡大縮小成分を含んでもよい。
【００５０】
図１１は、平行移動成分及び回転成分を説明する概要図である。カメラ２０の動きは撮像シーンに依存するものの、カメラワークのほとんどは平行移動成分及び回転成分である。図１１は、出力フレーム画像out-frameの座標系（ｘ，ｙ）と、処理対象のフレーム画像frameの座標系（Ｘ，Ｙ）との関係を示す。図１１において、撮像方向に延びる軸がｚ軸、撮像方向に直交する方向に伸びる軸がｘ軸及びｙ軸となる。撮像方向に延びる軸をｚ軸、撮像方向に直交する方向に伸びる軸をｘ軸及びｙ軸とした場合、平行移動成分は、ｘ軸、ｙ軸及びｚ軸に平行な方向に移動する成分である。回転成分は、ｘ軸、ｙ軸及びｚ軸の少なくとも１つの回転成分であり、ヨー成分、ロール成分及びピッチ成分の少なくとも１つである。
【００５１】
第２算出部１３は、第２行列を算出するためにユーザ動き行列Ａｃを算出する。ユーザ動き行列Ａｃは、第２行列を算出するために用いられる行列であって、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む。例えば、図１１に示すように、第２算出部１３は、出力フレーム画像out-frameの中心座標（０，０）と第２フレーム画像であるフレーム画像frameの中心（０，０）とを対応させるユーザ動き行列Ａｃを算出する。第２算出部１３は、動きデータＰからユーザ動き行列Ａｃを算出することができる。具体的には、第２算出部１３は、例えば、出力フレーム画像out-frameを第１フレーム画像へ射影させる既知の第１射影行列Ｐdstｉ−１と動きデータＰとを用いて、フレーム画像frameの中心座標を特定する。そして、第２算出部１３は、出力フレーム画像out-frameの座標（ｘ，ｙ）を平行移動及び回転させて、フレーム画像frameの中心（Ｘ，Ｙ）へ射影するユーザ動き行列Ａｃを算出する。ヨー成分、ロール成分及びピッチ成分については、例えば、中心付近の移動量と焦点距離からある程度正確に推測することができる。ここでは、動きを平行移動及び回転に限定しているため、得られたユーザ動き行列Ａｃは真の値ではないものの、おおよそ正しい値を得ることができる。第２算出部１３は、算出されたユーザ動き行列Ａｃを補助行列算出部１４へ出力する。
【００５２】
第２算出部１３は、ユーザ動き行列Ａｃを補正して第２行列を算出する機能を有している。第２算出部１３は、ユーザが意図したであろうカメラ２０の動きに関して、手振れによる高周波成分を取り除く機能を有している。第２算出部１３は、第１フィルタを用いてカメラワークに起因する周波数成分を除去する。第１フィルタは例えばハイパスフィルタである。また、第２算出部１３は、例えば図１２に示すように、切り出し領域Ｋｉがフレーム画像frameｉの外縁の枠に近づくほど、中心位置へ戻すようなばねモデルを適用して、カメラワークへの追従を実現させてもよい。例えば、第２算出部１３は、外縁との距離の二乗に比例して中心位置へ戻すように作用させる第１フィルタをユーザ動き行列Ａｃへ適用して、第２行列としてもよい。なお、第２算出部１３は、ｘ軸，ｙ軸及びｚ軸のそれぞれでのばね係数（比例係数）を調整してもよい。また、第２算出部１３は、フレーム画像frameｉの中心付近では摩擦が高くなるように設定してもよい。このように設定することで、追随の安定性を向上させることができる。
【００５３】
補助行列算出部１４は、ユーザ動き行列Ａｃを用いて動きデータＮの「残りの動き行列Ｂｃ」を算出する。行列Ｂｃに含まれる成分は、例えば図４に示した８成分のうち、第１行列Ｄｉ及びユーザ動き行列Ａｃにて表現されていない残りの成分や、第１行列Ｄｉ及びユーザ動き行列Ａｃにて正確に表現されていない誤差成分（例えば、ローリングシャッタ成分の誤差成分や回転成分の誤差成分等）を含み得る。すなわち、残りの動き行列Ｂｃは、設定された自由度及びユーザ動き行列Ａｃに応じて変動することになる。例えば８自由度でかつユーザ動き行列Ａｃが拡大縮小成分を含む場合には、残りの動き行列Ｂｃは、四角形を台形へ変換する成分（図４に示す（Ｇ）、（Ｈ））及び誤差成分を含む。例えば８自由度でかつユーザ動き行列Ａｃが拡大縮小成分を含まない場合には、残りの動き行列Ｂｃは、拡大縮小成分、四角形を台形へ変換する成分（図４に示す（Ｇ）、（Ｈ））及び誤差成分を含む。例えば６自由度でかつユーザ動き行列Ａｃが拡大縮小成分を含まない場合には、残りの動き行列Ｂｃは、拡大縮小成分及び誤差成分を含む。例えば６自由度でかつユーザ動き行列Ａｃが拡大縮小成分を含む場合には、残りの動き行列Ｂｃは、誤差成分のみを含む。
【００５４】
補助行列算出部１４は、ローリングシャッタ歪み成分が低減された系における第１射影行列Ｓｉ−１及び動きデータＮを用いて算出されたＮ・Ｓｉ−１と、ユーザ動き行列Ａｃとを用いて、残りの動き成分を含む動き行列Ｂｃを算出する。以下では、ユーザ動き行列Ａｃが回転成分（ヨー成分ｙｉ、ピッチ成分ｐｉ及びロール成分ｒｉ）を主に含む場合を説明する。この場合、補助行列算出部１４は、以下の数式（１１）又は（１２）を用いて、残りの動き成分を含む動き行列Ｂｃを算出する。
【数１４】
2014069632.tif 000016
すなわち、補助行列算出部１４は、Ｎ・Ｓｉ−１の動き成分を、ヨー成分ｙｉ、ピッチ成分ｐｉ及びロール成分ｒｉを含むユーザ動き行列Ａｃと、それ以外の動き成分ｌｉを含む残りの動き行列Ｂｃとに分割して取り扱い、ユーザ動き行列Ａｃを別個に算出して上記数式（１１）又は（１２）に代入することで、成分ｌｉを得る。なお、以下では補助行列算出部１４が数式（１１）を用いた場合を説明する。
【００５５】
補助行列算出部１４は、算出された「残りの動き行列Ｂｃ」を補正して補助行列を算出する機能を有している。残りの動き行列Ｂｃは、動きに対して補助的な成分を含む行列であり、誤差又は無視された成分を含み得る。このため、理想的には、残りの動き行列Ｂｃは恒等写像する単位行列となる。よって、残りの動き行列Ｂｃをどのタイミングで単位行列とするかが問題となる。第２補正部１６は、誤差が段々と無くなるように、すなわち、急に単位行列へ補正するのではなく、残りの動き行列Ｂｃが段々と単位行列となるように補正する。例えば、単位行列と残りの動き行列Ｂｃとの差分を算出し、その差分が８０％となるように補正してもよい。例えば補助行列算出部１４は、ハイパスフィルタを用いて上記処理を実現してもよい。このように、急に単位行列へ補正することを回避することで、出力フレーム画像が最終的に不自然な動きとなることを回避することが可能となる。
【００５６】
上述した第２算出部１３及び補助行列算出部１４の処理を纏めると、以下のとおりとなる。
【数１５】
2014069632.tif 000017
すなわち、第２行列は、ヨー成分ｙｉ、ピッチ成分ｐｉ及びロール成分ｒｉを含むユーザ動き行列Ａｃにハイパスフィルタを適用した行列であり、補助行列は、残りの動き行列Ｂｃにハイパスフィルタを適用した行列である。なお、ヨー成分ｙｉ、ピッチ成分ｐｉ及びロール成分ｒｉに適用するハイパスフィルタのみ、複雑な１変数フィルタが設計されてもよい。すなわち、ユーザの意図が反映されたカメラ２０の動きのみ、正確にフィルタを設計する。ここで、ハイパスフィルタは、例えば前回データ記録部２３に記憶されたデータを用いて設計されてもよい。第２算出部１３は、例えば、第２行列を算出する度に、算出された第２行列を前回データ記録部２３へ出力して記録させる。これにより、第２行列を導出するハイパスフィルタは、例えば前回データ記録部２３に記憶された過去の第２行列を用いて設計される。また、補助行列算出部１４は、残りの動き成分ｌｉにハイパスフィルタを適用する。ここで、ハイパスフィルタは、例えば前回データ記録部２３に記憶されたデータを用いて設計されてもよい。補助行列算出部１４は、例えば、補助行列を算出する度に、算出された補助行列を前回データ記録部２３へ出力して記録させる。これにより、補助行列を導出するハイパスフィルタは、例えば前回データ記録部２３に記憶された過去の補助行列を用いて設計される。なお、上記のとおり、残りの動き成分ｌｉに適用させるハイパスフィルタは、恒等行列に近づける単純な設計としてもよい。このように、正確に設計するフィルタとある程度の正確なフィルタとを区別することができるので、全体のフィルタ設計が容易となる。
【００５７】
算出部３０は、第２行列及び補助行列を用いて、以下のように、ローリングシャッタ歪みのない系における射影行列Ｓｉを導出する。
【数１６】
2014069632.tif 000018
そして、算出部３０は、第１行列Ｄｉ、第２行列及び補助行列を用いて、出力フレーム画像out-frameｉと入力フレーム画像frameｉとを対応付けする第２射影行列Ｐdstｉを導出する。
【数１７】
2014069632.tif 000019
【００５８】
描画部１７は、第２射影行列Ｐdstｉを用いて、入力フレーム画像frameｉの切り出し領域Ｋｉを算出し、出力フレーム画像out-frameｉとして表示部２１へ出力する。
【００５９】
次に、本実施形態に係る画像処理装置１の動作について説明する。図１３は、本実施形態に係る画像処理装置１の動作を示すフローチャートである。図１３に示す制御処理は、例えば携帯端末２の撮像機能をＯＮしたタイミングで実行され、所定の周期で繰り返し実行される。なお、説明理解の容易性を考慮して、処理対象の入力フレーム画像は、２番目以降の入力フレーム画像であるとする。
【００６０】
図１３に示すように、最初に画像処理装置１が画像入力処理を実行する（Ｓ１０：入力ステップ）。Ｓ１０の処理では、入力部１０が、カメラ２０から入力フレーム画像frameｉを入力する。Ｓ１０の処理が終了すると、動きデータ取得処理へ移行する（Ｓ１２：動き取得ステップ）。
【００６１】
Ｓ１２の処理では、動き取得部１１が、入力フレーム画像frameｉとフレーム画像frameｉ−１との間の動きデータＰを取得する。Ｓ１２の処理が終了すると、ローリングシャッタ歪み成分を含む第１行列Ｄｉの算出処理へ移行する（Ｓ１４：第１算出ステップ）。
【００６２】
Ｓ１４の処理では、第１算出部１２が、Ｓ１２の処理で取得された動きデータに基づいてローリングシャッタ歪み成分を含む第１行列Ｄｉを算出する。Ｓ１４の処理が終了すると、動きデータＮの算出処理へ移行する（Ｓ１６）。
【００６３】
Ｓ１６の処理では、算出部３０が、Ｓ１２の処理で得られた動きデータＰ、Ｓ１４の処理で得られた第１行列Ｄｉを用いて、仮の動きデータＮを算出する。Ｓ１６の処理が終了すると、回転成分算出処理へ移行する（Ｓ１８）。
【００６４】
Ｓ１８の処理では、第２算出部１３が、回転成分（ユーザ動き行列Ａｃ）を算出する。例えば、入力フレーム画像frameｉの中心位置の移動量と焦点距離からある程度正確に推測することができる。一例としてヨー方向の算出を説明する。ｘ軸方向の移動量をｄｍｘとし、焦点距離をｄｎとした場合、ヨー方向の成分は、以下の数式で簡易に算出することができる。
【数１８】
2014069632.tif 000020
Ｓ１８の処理が終了すると、ユーザ動き行列Ａｃへのフィルタ処理へ移行する（Ｓ２０：第２算出ステップ）。
【００６５】
Ｓ２０の処理では、第２算出部１３が、Ｓ１８の処理で得られたユーザ動き行列Ａｃをハイパスフィルタで補正して第２行列を得る。すなわち、第２算出部１３は、前回データ記録部２３を参照して、過去の第２行列を取得し、過去の第２行列と動き行列Ａｃとを用いて、第２行列を得る。Ｓ２０の処理が終了すると、残りの動き行列Ｂｃへのフィルタ処理へ移行する（Ｓ２２：補助行列算出ステップ）。
【００６６】
Ｓ２２の処理では、補助行列算出部１４が、残りの動き行列Ｂｃを算出し、残りの動き行列Ｂｃに対してフィルタ処理を行い、補助行列を得る。まず、補助行列算出部１４が、Ｎ・Ｓｉ−１の動き成分を、ヨー成分ｙｉ、ピッチ成分ｐｉ及びロール成分ｒｉを含むユーザ動き行列Ａｃと、それ以外の動き成分ｌｉを含む残りの動き行列Ｂｃとに分割して取り扱い、ユーザ動き行列Ａｃを別個に算出して上記数式（１１）に代入することで、成分ｌｉを残りの動き行列Ｂｃとして得る。また、補助行列算出部１４は、前回データ記録部２３を参照して、過去の補助行列を取得し、過去の補助行列と動き行列Ａｃとを用いて、補助行列を得てもよい。
【００６７】
Ｓ２４の処理では、算出部３０が、Ｓ２０の処理で得られた第２行列、及び、Ｓ２２の処理で得られた補助行列を用いて、ローリングシャッタ歪みのない系における射影行列Ｓｉを算出する。Ｓ２４の処理が終了すると、描画行列（射影行列）の算出処理へ移行する（Ｓ２６）
【００６８】
Ｓ２６の処理では、算出部３０が、例えば上記数式（４）で示すように、Ｓ２４の処理で得られた射影行列Ｓｉを用いて、入力画像系における第２射影行列Ｐdstｉを算出する。Ｓ２６の処理が終了すると、描画処理へ移行する（Ｓ２８：描画ステップ）。
【００６９】
Ｓ２８の処理では、描画部１７が、Ｓ２６の処理で得られた第２射影行列Ｐdstｉを用いて入力フレーム画像frameｉの切り出し領域Ｋｉを算出し、出力フレーム画像out-frameｉとして表示部２１へ出力する。Ｓ２８の処理が終了すると、判定処理へ移行する（Ｓ３０）。
【００７０】
Ｓ３０の処理では、画像処理装置１が、画像の入力が終了したか否かを判定する。画像処理装置１は、例えば、所定の入力回数に達したか否か、あるいは、前回入力から所定の時間経過したか否かに基づいて、画像の入力が終了したか否かを判定する。Ｓ３０の処理において、画像の入力が終了していないと判定した場合には、Ｓ１０の処理へ再度移行する。一方、Ｓ３０の処理において、画像の入力が終了したと判定した場合には、図１３に示す制御処理を終了する。図１３に示す制御処理を実行することで、人間の意図が強く反映される平行移動成分及び回転成分と、その他の成分及び誤差成分とを互いに関連させることなく独立して補正することが可能となる。なお、第１算出ステップ、第２算出ステップ及び補助行列算出ステップが行列演算ステップに相当する。
【００７１】
次に、携帯端末（コンピュータ）２を上記画像処理装置１として機能させるための画像処理プログラムを説明する。
【００７２】
画像処理プログラムは、メインモジュール、入力モジュール及び演算処理モジュールを備えている。メインモジュールは、画像処理を統括的に制御する部分である。入力モジュールは、入力画像を取得するように携帯端末２を動作させる。演算処理モジュールは、動き取得モジュール、算出モジュール（第１算出モジュール、第２算出モジュール及び補助行列算出モジュール）及び描画モジュールを備えている。メインモジュール、入力モジュール及び演算処理モジュールを実行させることにより実現される機能は、上述した画像処理装置１の入力部１０、動き取得部１１、算出部３０（第１算出部１２、第２算出部１３及び補助行列算出部１４）及び描画部１７の機能とそれぞれ同様である。
【００７３】
画像処理プログラムは、例えば、ＲＯＭ等の記録媒体または半導体メモリによって提供される。また、画像処理プログラムは、データ信号としてネットワークを介して提供されてもよい。
【００７４】
以上、本実施形態に係る画像処理装置１、画像処理方法及び画像処理プログラムによれば、画像の変形の動きを、平行移動成分又は回転成分の少なくとも一方と、ローリングシャッタ歪み成分と、その他の成分とに分けて取り扱い、それぞれ別個に算出する。第１算出部１２により、動きデータを用いて、ローリングシャッタ歪み成分を含む第１行列Ｄｉがある程度正確に算出される。第２算出部１３により、出力フレーム画像out-frameｉ−１を基準フレーム画像frameｉ−１へ射影させる既知の第１射影行列Ｐdstｉ−１と動きデータＰとを用いて、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含むユーザ動き行列Ａｃがある程度正確に算出される。補助行列算出部１４により、第１行列Ｄｉ、ユーザ動き行列Ａｃ及び第１射影行列Ｐdstｉ−１を用いて、第１行列Ｄｉ及びユーザ動き行列Ａｃに含まれる動き成分を含まない残りの動き行列Ｂｃが算出される。そして、ユーザ動き行列Ａｃ及び残りの動き行列Ｂｃが補正されて、第２行列及び補助行列が算出される。このように、当該画像処理装置１は、動きデータを３つに分解し、計算過程において別個に算出することができるため、動き成分に応じた処理が可能となる。例えば、除去すべきローリングシャッタ成分を手ぶれ除去等を行う補正対象から外すことが可能となる。これにより、補正の計算コストや補正フィルタの設計を容易とすることができる。さらに、平行移動成分又は回転成分と、補助行列が含む成分とをそれぞれ異なる式で算出していることから、人間の意図が強く反映される平行移動成分又は回転成分と、その他の残りの成分とを互いに関連させることなく独立して補正することが可能となる。すなわち、人間の意図が強く反映される動き成分とそれ以外の動き成分とを異なるフィルタで補正することができるため、カメラワークに適切に追従しながらユーザの意図しない動きによる不具合を解消することを両立させることが可能となる。また、各成分に対する補正は独立しているため、補正フィルタを容易に設計することができる。また、動きデータの形式が変更されたり、不正確なデータが存在したりする場合であっても、動きデータの形式の変更部分やエラー部分を補助行列に含ませることが可能であるため、全ての動きデータの形式に対応可能である。また、第２算出部の動きの算出方法は限定されないため、例えば、正確ではないがロバストな算出方法を第２算出部の動きの算出方法に適用することができる。この場合、画像処理装置１全体としてロバストな処理を行うことができる。さらに、完全な電子手振れ補正を実現することができる。
【００７５】
また、本実施形態に係る画像処理装置１、画像処理方法及び画像処理プログラムによれば、残りの動き行列Ｂｃの値を生かしつつ、理想的な値（すなわち恒等写像）となるように補正することができる。このため、ユーザの意図しない動きによる不具合をより自然に解消することが可能となる。
【００７６】
また、本実施形態に係る画像処理装置１、画像処理方法及び画像処理プログラムによれば、ローリングシャッタ歪み成分が平行移動成分のみに起因すると仮定することにより、ほとんど正確なローリングシャッタ歪み成分を簡易かつ迅速に推定することができる。
【００７７】
なお、上述した実施形態は本発明に係る画像処理装置の一例を示すものである。本発明に係る画像処理装置は、実施形態に係る画像処理装置１に限られるものではなく、各請求項に記載した要旨を変更しない範囲で、実施形態に係る画像処理装置を変形し、又は他のものに適用したものであってもよい。
【００７８】
例えば、上述した実施形態では、カメラ２０が動画を撮像する例を説明したが、カメラ２０は、静止画像を連続撮像するものであってもよい。入力部１０が入力する画像は、別の機器からネットワークを介して送信された画像であってもよい。
【００７９】
また、上述した実施形態では、カメラ２０により撮像された画像の大きさは同一であるとして説明したが、撮像された画像の大きさは撮像の度に異なる大きさであってもよい。
【００８０】
また、上述した実施形態では、画像を図４に示す８自由度で変形する場合を説明したが、８自由度に限られるものではなく、例えば図４中の（Ａ）〜（Ｆ）に示す６自由度であってもよい。
【００８１】
また、上述した実施形態では、第１算出部１２がローリングシャッタ歪み成分を推定する一例、第２算出部１３が平行移動成分及び回転成分を推定する一例を説明したが、上記手法に限られるものではなく、公知の種々の方法を採用することができる。また、第１算出部１２が、第２算出部１３により得られた平行移動成分を用いてローリングシャッタ歪み成分を推定してもよい。
【００８２】
また、上述した実施形態にて説明したフローチャートの順番は適宜変更可能である。例えば、Ｓ１８の処理又はＳ１８及びＳ２０の一連の処理は、Ｓ１４又はＳ１６の処理と並列に実行してもよい。
【００８３】
また、上述した実施形態では、第１フレーム画像と第２フレーム画像とを用いて第２フレーム画像と出力フレーム画像とを関連付けする射影行列を算出する場合を説明したが、これに限定されるものではない。すなわち、入力フレーム画像で出力フレーム画像を逐次生成する必要はなく、入力フレーム画像と出力フレーム画像の参照先となる画像とが時間的にずれていてもよい。例えば、第１フレーム画像と第２フレーム画像との間に存在する第３フレーム画像を、出力フレーム画像を生成するための処理対象とし、第３フレーム画像と出力フレーム画像とを関連付けする射影行列を算出してもよい。第３フレーム画像は、上記実施形態で説明した第２フレーム画像と同様に処理されてもよいし、第１フレーム画像だけでなく、第２フレーム画像を用いて、第３フレーム画像への射影行列を算出してもよい。すなわち、第３フレーム画像からみて過去のデータである第１フレーム画像と、第３フレーム画像からみて未来のデータである第２フレーム画像とを用いて、第３フレーム画像の射影行列を算出してもよい。
【００８４】
さらに、上述した実施形態では、例えば数式（２）に示すように、動きデータＰと第１射影行列Ｐdstｉ−１とにハイパスフィルタを作用させる例を説明したが、ハイパスフィルタの作用先を適宜変更してもよい。例えば、数式（２）を以下のように変更してもよい。
【数１９】
2014069632.tif 000021
この場合、ハイパスフィルタは動きデータＮに作用することになる。この場合、数式（１３）は、以下のように変更される。
【数２０】
2014069632.tif 000022
このように、動きデータＮが分割される態様であってもよい。また、ハイパスフィルタは切り出し位置に応じて、ハイパスフィルタの係数を変更してもよい。
【符号の説明】
【００８５】
１…画像処理装置、１０…入力部、１１…動き取得部、１２…第１算出部、１３…第２算出部、１４…補助行列算出部、１７…描画部、２０…カメラ、２１…表示部、２２…画像記録部、３０…算出部（行列演算部）。
【図１】
2014069632.tif 000023
【図２】
2014069632.tif 000024
【図５】
2014069632.tif 000025
【図６】
2014069632.tif 000026
【図７】
2014069632.tif 000027
【図８】
2014069632.tif 000028
【図９】
2014069632.tif 000029
【図１０】
2014069632.tif 000030
【図１１】
2014069632.tif 000031
【図１３】
2014069632.tif 000032
【図３】
2014069632.tif 000033
【図４】
2014069632.tif 000034
【図１２】
2014069632.tif 000035
【手続補正書】
【提出日】平成26年10月2日(2014.10.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する画像処理装置であって、
第１フレーム画像及び第２フレーム画像を順次入力する入力部と、
前記第１フレーム画像と前記第２フレーム画像との間の動きデータを取得する動き取得部と、
前記出力フレーム画像を前記第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、前記第１行列及び前記第２行列に含まれない動き成分を含む補助行列から算出する行列演算部と、
前記射影行列を用いて前記第２フレーム画像から前記出力フレーム画像を生成する描画部と、
を備え、
前記行列演算部は、
前記動きデータを用いて、前記射影行列の第１行列を算出する第１算出部と、
出力フレーム画像を前記第１フレーム画像へ射影させる既知の射影行列と前記動きデータとを用いて算出された行列である仮第２行列に、前回以前の処理にて導出された過去の前記第２行列から導出されたフィルタを適用して、前記射影行列の第２行列を算出する第２算出部と、
前記第１フレーム画像及び前記第２フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、前記仮第２行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と前記仮第２行列とを用いて導出された前記仮補助行列に、前回以前の処理にて導出された過去の前記補助行列から導出されたフィルタを適用して、前記射影行列の補助行列を算出する補助行列算出部と、
を有する、
画像処理装置。
【請求項２】
前記第１算出部は、前記動きデータに含まれる平行移動成分に基づいて、前記射影行列の第１行列を算出する請求項１に記載の画像処理装置。
【請求項３】
前記補助行列は、四角形を台形へ変換する成分を含む請求項１又は２に記載の画像処理装置。
【請求項４】
前記補助行列は、拡大縮小成分を含む請求項１〜３の何れか一項に記載の画像処理装置。
【請求項５】
前記第２行列は、拡大縮小成分を含む請求項１〜４の何れか一項に記載の画像処理装置。
【請求項６】
前記動き取得部は、ジャイロセンサの出力値を取得する請求項１〜５の何れか一項に記載の画像処理装置。
【請求項７】
撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する画像処理方法であって、
第１フレーム画像及び第２フレーム画像を順次入力する入力ステップと、
前記第１フレーム画像と前記第２フレーム画像との間の動きデータを取得する動き取得ステップと、
前記出力フレーム画像を前記第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、前記第１行列及び前記第２行列に含まれない動き成分を含む補助行列から算出する行列演算ステップと、
前記射影行列を用いて前記第２フレーム画像から前記出力フレーム画像を生成する描画ステップと、
を備え、
前記行列演算ステップは、
前記動きデータを用いて、前記射影行列の第１行列を算出する第１算出ステップと、
出力フレーム画像を前記第１フレーム画像へ射影させる既知の射影行列と前記動きデータとを用いて算出された行列である仮第２行列に、前回以前の処理にて導出された過去の前記第２行列から導出されたフィルタを適用して、前記射影行列の第２行列を算出する第２算出ステップと、
前記第１フレーム画像及び前記第２フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、前記仮第２行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と前記仮第２行列とを用いて導出された前記仮補助行列に、前回以前の処理にて導出された過去の前記補助行列から導出されたフィルタを適用して、前記射影行列の補助行列を算出する補助行列算出ステップと、
を有する、
画像処理方法。
【請求項８】
撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムであって、
前記コンピュータを、
第１フレーム画像及び第２フレーム画像を順次入力する入力部、
前記第１フレーム画像と前記第２フレーム画像との間の動きデータを取得する動き取得部、
前記出力フレーム画像を前記第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、前記第１行列及び前記第２行列に含まれない動き成分を含む補助行列から算出する行列演算部、及び、
前記射影行列を用いて前記第２フレーム画像から前記出力フレーム画像を生成する描画部
として機能させ、
前記行列演算部は、
前記動きデータを用いて、前記射影行列の第１行列を算出する第１算出部と、
出力フレーム画像を前記第１フレーム画像へ射影させる既知の射影行列と前記動きデータとを用いて算出された行列である仮第２行列に、前回以前の処理にて導出された過去の前記第２行列から導出されたフィルタを適用して、前記射影行列の第２行列を算出する第２算出部と、
前記第１フレーム画像及び前記第２フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、前記仮第２行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と前記仮第２行列とを用いて導出された前記仮補助行列に、前回以前の処理にて導出された過去の前記補助行列から導出されたフィルタを適用して、前記射影行列の補助行列を算出する補助行列算出部と、
を有する、
画像処理プログラム。
【請求項９】
撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記コンピュータを、
第１フレーム画像及び第２フレーム画像を順次入力する入力部、
前記第１フレーム画像と前記第２フレーム画像との間の動きデータを取得する動き取得部、
前記出力フレーム画像を前記第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、前記第１行列及び前記第２行列に含まれない動き成分を含む補助行列から算出する行列演算部、及び、
前記射影行列を用いて前記第２フレーム画像から前記出力フレーム画像を生成する描画部
として機能させ、
前記行列演算部は、
前記動きデータを用いて、前記射影行列の第１行列を算出する第１算出部と、
出力フレーム画像を前記第１フレーム画像へ射影させる既知の射影行列と前記動きデータとを用いて算出された行列である仮第２行列に、前回以前の処理にて導出された過去の前記第２行列から導出されたフィルタを適用して、前記射影行列の第２行列を算出する第２算出部と、
前記第１フレーム画像及び前記第２フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、前記仮第２行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と前記仮第２行列とを用いて導出された前記仮補助行列に、前回以前の処理にて導出された過去の前記補助行列から導出されたフィルタを適用して、前記射影行列の補助行列を算出する補助行列算出部と、
を有する、
記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
すなわち、本発明の一側面に係る画像処理装置は、撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する画像処理装置である。該装置は、入力部、動き取得部、行列演算部及び描画部を備える。入力部は、第１フレーム画像及び第２フレーム画像を順次入力する。動き取得部は、第１フレーム画像と第２フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、第１行列及び第２行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第２フレーム画像から出力フレーム画像を生成する。行列演算部は、第１算出部、第２算出部及び補助行列算出部を有する。第１算出部は、動きデータを用いて、射影行列の第１行列を算出する。第２算出部は、出力フレーム画像を第１フレーム画像へ射影させる既知の射影行列と動きデータとを用いて算出された行列である仮第２行列に、前回以前の処理にて導出された過去の前記第２行列から導出されたフィルタを適用して、射影行列の第２行列を算出する。補助行列算出部は、第１フレーム画像及び第２フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、仮第２行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と仮第２行列とを用いて導出された仮補助行列に、前回以前の処理にて導出された過去の補助行列から導出されたフィルタを適用して、射影行列の補助行列を算出する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
本発明の他の側面に係る画像処理方法は、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成する画像処理方法である。該方法は、入力ステップ、動き取得ステップ、行列演算ステップ及び描画ステップを備える。入力ステップは、第１フレーム画像及び第２フレーム画像を順次入力する。動き取得ステップは、第１フレーム画像と第２フレーム画像との間の動きデータを取得する。行列演算ステップは、出力フレーム画像を第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、第１行列及び第２行列に含まれない動き成分を含む補助行列から算出する。描画ステップは、射影行列を用いて第２フレーム画像から出力フレーム画像を生成する。行列演算ステップは、第１算出ステップ、第２算出ステップ及び補助行列算出ステップを有する。第１算出ステップは、動きデータを用いて、射影行列の第１行列を算出する。第２算出ステップは、出力フレーム画像を第１フレーム画像へ射影させる既知の射影行列と動きデータとを用いて算出された行列である仮第２行列に、前回以前の処理にて導出された過去の前記第２行列から導出されたフィルタを適用して、射影行列の第２行列を算出する。補助行列算出ステップは、第１フレーム画像及び第２フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、仮第２行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と仮第２行列とを用いて導出された仮補助行列に、前回以前の処理にて導出された過去の補助行列から導出されたフィルタを適用して、射影行列の補助行列を算出する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
本発明の他の側面に係る画像処理プログラムは、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムである。該プログラムは、コンピュータを、入力部、動き取得部、行列演算部及び描画部として機能させる。入力部は、第１フレーム画像及び第２フレーム画像を順次入力する。動き取得部は、第１フレーム画像と第２フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、第１行列及び第２行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第２フレーム画像から出力フレーム画像を生成する。行列演算部は、第１算出部、第２算出部及び補助行列算出部を有する。第１算出部は、動きデータを用いて、射影行列の第１行列を算出する。第２算出部は、出力フレーム画像を第１フレーム画像へ射影させる既知の射影行列と動きデータとを用いて算出された行列である仮第２行列に、前回以前の処理にて導出された過去の前記第２行列から導出されたフィルタを適用して、射影行列の第２行列を算出する。補助行列算出部は、第１フレーム画像及び第２フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、仮第２行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と仮第２行列とを用いて導出された仮補助行列に、前回以前の処理にて導出された過去の補助行列から導出されたフィルタを適用して、射影行列の補助行列を算出する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
本発明の他の側面に係る記録媒体は、画像処理プログラムを記録したコンピュータ読取可能な記録媒体である。画像処理プログラムは、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる。該プログラムは、コンピュータを、入力部、動き取得部、行列演算部及び描画部として機能させる。入力部は、第１フレーム画像及び第２フレーム画像を順次入力する。動き取得部は、第１フレーム画像と第２フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第２フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第１行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第２行列、並びに、第１行列及び第２行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第２フレーム画像から出力フレーム画像を生成する。行列演算部は、第１算出部、第２算出部及び補助行列算出部を有する。第１算出部は、動きデータを用いて、射影行列の第１行列を算出する。第２算出部は、出力フレーム画像を第１フレーム画像へ射影させる既知の射影行列と動きデータとを用いて算出された行列である仮第２行列に、前回以前の処理にて導出された過去の前記第２行列から導出されたフィルタを適用して、射影行列の第２行列を算出する。補助行列算出部は、第１フレーム画像及び第２フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、仮第２行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と仮第２行列とを用いて導出された仮補助行列に、前回以前の処理にて導出された過去の補助行列から導出されたフィルタを適用して、射影行列の補助行列を算出する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
第２算出部１３は、ユーザの意図が反映されたカメラ２０の動きは平行移動成分及び回転成分の少なくとも一方であると推定する。なお、第２算出部１３は、平行移動成分及び回転成分と明確に成分として分けて動きを算出してもよいし、平行移動成分及び回転成分を複合させた動き成分（コンビネーションとした成分）を算出してもよい。第２算出部１３は、撮像方向に延びる軸をｚ軸、撮像方向に直交する方向に伸びる軸をｘ軸及びｙ軸とした場合、平行移動成分並びにｘ軸及びｙ軸の回転成分を組み合わせた成分を算出してもよい。また、撮像シーンに応じて、第２算出部１３は、拡大縮小成分も考慮して推定してもよい。すなわち、第２行列は、平行移動成分のみを含んでもよいし、回転成分のみを含んでもよいし、平行移動成分及び回転成分のみを含んでもよいし、平行移動成分及び回転成分に加えて拡大縮小成分を含んでもよい。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
図１１は、平行移動成分及び回転成分を説明する概要図である。カメラ２０の動きは撮像シーンに依存するものの、カメラワークのほとんどは平行移動成分及びｚ軸回転成分である。図１１は、出力フレーム画像out-frameの座標系（ｘ，ｙ）と、処理対象のフレーム画像frameの座標系（Ｘ，Ｙ）との関係を示す。図１１において、撮像方向に延びる軸がｚ軸、撮像方向に直交する方向に伸びる軸がｘ軸及びｙ軸となる。撮像方向に延びる軸をｚ軸、撮像方向に直交する方向に伸びる軸をｘ軸及びｙ軸とした場合、平行移動成分は、ｘ軸、ｙ軸に平行な方向に移動する成分である。回転成分は、ｘ軸、ｙ軸及びｚ軸の少なくとも１つの回転成分である。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
補助行列算出部１４は、ローリングシャッタ歪み成分が低減された系における第１射影行列Ｓｉ−１及び動きデータＮを用いて算出されたＮ・Ｓｉ−１と、ユーザ動き行列Ａｃとを用いて、残りの動き成分を含む動き行列Ｂｃを算出する。以下では、ユーザ動き行列Ａｃがヨー成分ｙｉ、ピッチ成分ｐｉ及びロール成分ｒｉを主に含む場合を説明する。この場合、補助行列算出部１４は、以下の数式（１１）又は（１２）を用いて、残りの動き成分を含む動き行列Ｂｃを算出する。
【数１４】
2014069632.tif 000036
すなわち、補助行列算出部１４は、Ｎ・Ｓｉ−１の動き成分を、ヨー成分ｙｉ、ピッチ成分ｐｉ及びロール成分ｒｉを含むユーザ動き行列Ａｃと、それ以外の動き成分ｌｉを含む残りの動き行列Ｂｃとに分割して取り扱い、ユーザ動き行列Ａｃを別個に算出して上記数式（１１）又は（１２）に代入することで、成分ｌｉを得る。なお、以下では補助行列算出部１４が数式（１１）を用いた場合を説明する。
【国際調査報告】
2014069632.tif 000037
2014069632.tif 000038