JPWO2014069632A1 - 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体 - Google Patents

画像処理装置、画像処理方法、画像処理プログラム及び記録媒体 Download PDF

Info

Publication number
JPWO2014069632A1
JPWO2014069632A1 JP2014544608A JP2014544608A JPWO2014069632A1 JP WO2014069632 A1 JPWO2014069632 A1 JP WO2014069632A1 JP 2014544608 A JP2014544608 A JP 2014544608A JP 2014544608 A JP2014544608 A JP 2014544608A JP WO2014069632 A1 JPWO2014069632 A1 JP WO2014069632A1
Authority
JP
Japan
Prior art keywords
matrix
frame image
component
motion
calculation unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014544608A
Other languages
English (en)
Other versions
JP5906493B2 (ja
Inventor
佐藤 真希
真希 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Morpho Inc
Original Assignee
Morpho Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Morpho Inc filed Critical Morpho Inc
Application granted granted Critical
Publication of JP5906493B2 publication Critical patent/JP5906493B2/ja
Publication of JPWO2014069632A1 publication Critical patent/JPWO2014069632A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/10Selection of transformation methods according to the characteristics of the input images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • G06T5/92Dynamic range modification of images or parts thereof based on global image properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/689Motion occurring during a rolling shutter mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Studio Devices (AREA)

Abstract

画像処理装置は、撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する。該装置は、入力部、動き取得部、行列演算部及び描画部を備える。入力部は、第1フレーム画像及び第2フレーム画像を順次入力する。動き取得部は、第1フレーム画像と第2フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、第1行列及び第2行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第2フレーム画像から出力フレーム画像を生成する。行列演算部は、第1算出部、第2算出部及び補助行列算出部を有する。第1算出部は、動きデータを用いて、射影行列の第1行列を算出する。第2算出部は、動きデータ、第1行列及び過去の第2行列を用いて、射影行列の第2行列を算出する。補助行列算出部は、動きデータ、第1行列及び過去の補助行列を用いて、射影行列の補助行列を算出する。

Description

本発明は、画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に関するものである。
従来、画像処理装置として、動画撮像時の手振れ等の影響を排除するため、撮像されたフレーム画像から切り取るべき適切な切り取り領域を決定する装置が知られている(例えば、特許文献1参照)。特許文献1記載の画像処理装置は、フレーム画像が基準フレーム画像(例えば前回入力したフレーム画像)に対してどの程度ずれているかを示す動きデータを検出し、検出された動きデータに応じて切り取り領域を移動又は変形させることで、カメラの動きに対して切り取り領域が静止するように補正している。この画像処理装置では、回転・拡大縮小・平行移動の4自由度の動きあるいは平行移動・回転・拡大縮小・せん断の6自由度の動きを考慮して移動量又は変形量を算出し、切り取り領域を調整している。
また、画像処理装置として、ローリングシャッタ歪み成分及びカメラモーション成分を正確に算出する手法が知られている(例えば、特許文献2参照)。特許文献2記載の画像処理装置は、未知の成分パラメータを用いてローリングシャッタ歪み成分及びカメラモーション成分を分離して表す成分分離式へ、アフィン変換行列として表されたグローバル動きベクトルを代入してモデル化する。そして、該装置は、モデル化された成分分離式から得られる方程式を解いて、各成文パラメータを算出し、ローリングシャッタ歪み成分及びカメラモーション成分を個々に正確に算出している。
特開2007−226643号公報 特開2010−193302号公報
特許文献1記載の画像処理装置のようにフレーム画像から領域を切り取る場合、切り取るべき領域をより適切な領域とするためには、フレーム画像間の動きデータに基づいてカメラの動き(カメラモーション成分)をより正確に算出する必要がある。ここで、特許文献2記載の画像処理装置を用いて、カメラの動きを全てモデル化することによって、カメラモーション成分を正確に算出することが考えられる。そして、特許文献2記載の画像処理装置のように、画像の変形の自由度として例えば6自由度の動きを考慮することが考えられる。これにより、4自由度の動きを考慮した場合に比べて、実際のカメラの動きに近い正確な動きデータを得ることができる。しかしながら、ユーザの意図しないカメラの動きによる不具合のみを補正しようとした場合、自由度が増えるほど手振れ補正等のための補正フィルタの設計が複雑になるおそれがある。例えば、撮像装置(カメラ)がパン又はチルトした場合には、各自由度の補正の度合いを変化させて、パン又はチルトに対して切り取り領域を追従させつつ、手振れ等が与える影響を除去する必要がある。
さらに、特許文献2には、動きベクトルを6自由度のアフィン変換に限定した場合の成分分離式しか開示されていないため、動きベクトルを透視投影で表現する場合では、アフィン変換とは異なる成分分離式をモデル化する必要がある。このように、特許文献2記載の画像処理装置は、動きデータの形式に応じた成分分離式を用意する必要となるため、応用が利かないおそれがある。さらに、特許文献2記載の画像処理装置は、不正確なグローバル動きベクトルが成分分離式へ代入された場合には、必然的に不正確なローリングシャッタ歪み成分及びカメラモーション成分が導出されることになるため、ロバストな処理が行えないおそれがある。
本技術分野では、フレーム画像から切り取るべき領域を簡易かつ適切に決定するとともに、手振れ補正等の補正フィルタの設計が簡易となる画像処理装置、画像処理方法、画像処理プログラム及び記録媒体が望まれている。
すなわち、本発明の一側面に係る画像処理装置は、撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する画像処理装置である。該装置は、入力部、動き取得部、行列演算部及び描画部を備える。入力部は、第1フレーム画像及び第2フレーム画像を順次入力する。動き取得部は、第1フレーム画像と第2フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、第1行列及び第2行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第2フレーム画像から出力フレーム画像を生成する。行列演算部は、第1算出部、第2算出部及び補助行列算出部を有する。第1算出部は、動きデータを用いて、射影行列の第1行列を算出する。第2算出部は、動きデータ、第1行列及び過去の第2行列を用いて、射影行列の第2行列を算出する。補助行列算出部は、動きデータ、第1行列及び過去の補助行列を用いて、射影行列の補助行列を算出する。
この画像処理装置では、画像の変形の動きを、平行移動成分又は回転成分の少なくとも一方と、ローリングシャッタ歪み成分と、その他の成分とに分けて取り扱い、それぞれ別個に算出する。第1算出部により、動きデータを用いて、ローリングシャッタ歪み成分を含む第1行列がある程度正確に算出される。第2算出部により、動きデータ、第1行列及び過去の第2行列を用いて、平行移動成分及び回転成分の少なくとも一方を含む第2行列が算出される。補助行列算出部により、動きデータ、第1行列及び過去の補助行列を用いて、第1行列及び第2行列に含まれない動き成分を含む補助行列が算出される。このように、当該画像処理装置は、動きデータを3つに分解し、計算過程において別個に算出することができるため、動き成分に応じた処理が可能となる。例えば、ローリングシャッタ成分を手ぶれ除去等を行う補正対象から外すことが可能となる。これにより、補正の計算コストや補正フィルタの設計を容易とすることができる。さらに、平行移動成分又は回転成分と、補助行列が含む成分とをそれぞれ異なる式で算出していることから、人間の意図が強く反映される平行移動成分又は回転成分と、その他の残りの成分とを互いに関連させることなく独立して補正することが可能となる。すなわち、人間の意図が強く反映される動き成分とそれ以外の動き成分とを異なるフィルタで補正することができるため、カメラワークに適切に追従しながらユーザの意図しない動きによる不具合を解消することを両立させることが可能となる。また、各成分に対する補正は独立しているため、補正フィルタを容易に設計することができる。また、動きデータの形式が変更されたり、不正確なデータが存在したりする場合であっても、動きデータの形式の変更部分やエラー部分を補助行列に含ませることが可能であるため、全ての動きデータの形式に対応可能である。さらに、第2算出部の動きの算出方法は限定されないため、例えば、正確ではないがロバストな算出方法を第2算出部の動きの算出方法に適用することができる。この場合、画像処理装置全体としてロバストな処理を行うことができる。
一実施形態では、第1算出部は、動きデータに含まれる平行移動成分に基づいて、射影行列の第1行列を算出してもよい。このように、ローリングシャッタ歪み成分が平行移動成分のみに起因すると仮定することにより、ほとんど正確なローリングシャッタ歪み成分を簡易かつ迅速に推定することができる。
一実施形態では、補助行列は、四角形を台形へ変換する成分を含んでもよい。このように、画像の変形を8自由度としてとらえた場合には、補助行列に四角形を台形へ変換する成分を含めることで、ユーザの意図した動きに追従する処理には影響を与えずに、ユーザの意図しない動きによる不具合をより自然に解消することが可能となる。
一実施形態では、補助行列は、拡大縮小成分を含んでもよい。例えば拡大縮小成分が撮像シーンにおいて利用されない傾向にある場合には、補助行列に拡大縮小成分を含めることで、ユーザの意図した動きに追従する処理には影響を与えずに、ユーザの意図しない動きによる不具合をより自然に解消することが可能となる。
一実施形態では、第2行列は、拡大縮小成分を含んでもよい。例えば拡大縮小成分が撮像シーンにおいて利用される傾向にある場合には、第2行列に拡大縮小成分を含めることで、ユーザの意図した動きに追従する処理をより正確に行うことができる。
一実施形態では、動き取得部は、ジャイロセンサの出力値を入力してもよい。このように、ハードウェアと協働させた場合であっても適切な画像処理を行うことができる。
本発明の他の側面に係る画像処理方法は、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成する画像処理方法である。該方法は、入力ステップ、動き取得ステップ、行列演算ステップ及び描画ステップを備える。入力ステップは、第1フレーム画像及び第2フレーム画像を順次入力する。動き取得ステップは、第1フレーム画像と第2フレーム画像との間の動きデータを取得する。行列演算ステップは、出力フレーム画像を第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、第1行列及び第2行列に含まれない動き成分を含む補助行列から算出する。描画ステップは、射影行列を用いて第2フレーム画像から出力フレーム画像を生成する。行列演算ステップは、第1算出ステップ、第2算出ステップ及び補助行列算出ステップを有する。第1算出ステップは、動きデータを用いて、射影行列の第1行列を算出する。第2算出ステップは、動きデータ、第1行列及び過去の前記第2行列を用いて、射影行列の第2行列を算出する。補助行列算出ステップは、動きデータ、第1行列、及び、過去の補助行列を用いて、射影行列の補助行列を算出する。
本発明の他の側面に係る画像処理プログラムは、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムである。該プログラムは、コンピュータを、入力部、動き取得部、行列演算部及び描画部として機能させる。入力部は、第1フレーム画像及び第2フレーム画像を順次入力する。動き取得部は、第1フレーム画像と第2フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、第1行列及び第2行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第2フレーム画像から出力フレーム画像を生成する。行列演算部は、第1算出部、第2算出部及び補助行列算出部を有する。第1算出部は、動きデータを用いて、射影行列の第1行列を算出する。第2算出部は、動きデータ、第1行列及び過去の第2行列を用いて、射影行列の第2行列を算出する。補助行列算出部は、動きデータ、第1行列及び過去の補助行列を用いて、射影行列の補助行列を算出する。
本発明の他の側面に係る記録媒体は、画像処理プログラムを記録したコンピュータ読取可能な記録媒体である。画像処理プログラムは、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる。該プログラムは、コンピュータを、入力部、動き取得部、行列演算部及び描画部として機能させる。入力部は、第1フレーム画像及び第2フレーム画像を順次入力する。動き取得部は、第1フレーム画像と第2フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、第1行列及び第2行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第2フレーム画像から出力フレーム画像を生成する。行列演算部は、第1算出部、第2算出部及び補助行列算出部を有する。第1算出部は、動きデータを用いて、射影行列の第1行列を算出する。第2算出部は、動きデータ、第1行列及び過去の第2行列を用いて、射影行列の第2行列を算出する。補助行列算出部は、動きデータ、第1行列及び過去の補助行列を用いて、射影行列の補助行列を算出する。
上述した画像処理方法、画像処理プログラム及び記録媒体によれば、上述した本発明の一側面に係る画像処理装置と同様の効果を奏する。
本発明の種々の側面及び実施形態によれば、フレーム画像から切り取るべき領域を簡易かつ適切に決定するとともに、手振れ補正等の補正フィルタの設計が簡易となる画像処理装置、画像処理方法、画像処理プログラム及び記録媒体が提供される。
実施形態に係る画像処理装置を搭載した携帯端末の機能ブロック図である。 実施形態に係る画像処理装置が搭載される携帯端末のハードウェア構成図である。 手振れ補正の原理を説明する概要図である。 画像の動きを説明する概要図である。 基準フレーム画像、対象フレーム画像及び出力フレーム画像の関係を説明する概要図である。 ローリングシャッタ歪みを説明する概要図である。(A)は、X方向のライン走査の走査順がY方向であるときに、カメラ操作がX方向である場合の被写体の歪みを示す。(B)は、X方向のライン走査の走査順がY方向であるときに、カメラ操作がY方向である場合の被写体の歪みを示す。(C)は、Y方向のライン走査の走査順がX方向であるときに、カメラ操作がX方向である場合の被写体の歪みを示す。(D)は、Y方向のライン走査の走査順がX方向であるときに、カメラ操作がY方向である場合の被写体の歪みを示す。 ローリングシャッタ歪みのない系を説明する概要図である。 歪み係数の算出方法を説明する概要図である。 動フレーム画像と歪み計数との関係を示すグラフである。 動き行列成分と移動量との関係を示すグラフである。 平行移動成分及び回転成分を説明する概要図である。 入力フレーム画像と出力フレーム画像との関係を示す概念図である。 実施形態に係る画像処理装置の動作を説明するフローチャートである。
以下、添付図面を参照して実施形態について説明する。なお、各図において同一又は相当部分には同一の符号を付し、重複する説明を省略する。
本実施形態に係る画像処理装置は、画像の手振れやローリングシャッタ歪み等の不具合を排除して画像を出力する装置である。本実施形態に係る画像処理装置は、例えば複数の画像の連続撮影や動画撮影の場合に採用される。本実施形態に係る画像処理装置は、例えば、携帯電話、デジタルカメラ、PDA(Personal Digital Assistant)等、リソースに制限のあるモバイル端末に好適に搭載されるものであるが、これらに限られるものではなく、例えば通常のコンピュータシステムに搭載されてもよい。なお、以下では、説明理解の容易性を考慮し、一例として、カメラ機能を備えた携帯端末に搭載される画像処理装置を説明する。
図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は、通信モジュール等を備えてもよい。
図1に示すように、携帯端末2は、カメラ(撮像装置)20、画像処理装置1、画像記録部22、前回データ記録部23及び表示部21を備えている。カメラ20は、画像を撮像する機能を有している。カメラ20として、例えばCMOSの画素センサ等が用いられ、フォーカルプレーンシャッタ方式で撮像される。すなわち、カメラ20は、画像の縦方向又は横方向へ走査して画素値を入力する。カメラ20は、例えばユーザ操作等により指定されたタイミングから所定の間隔で繰り返し撮像する連続撮像機能を有している。すなわち、カメラ20は、静止画像(静止フレーム画像)だけでなく動画(連続する動フレーム画像)を取得する機能を有している。ユーザは、例えばカメラ20をスライドしたり、所定位置を原点として回転させたり、左右上下方向に傾けたり、上述した動作を組み合わせたりして、自由に撮影することができる。カメラ20は、例えば撮像されたフレーム画像を撮像の度に画像処理装置1へ出力する機能を有している。表示部21は、画像又は映像を表示可能なディスプレイ装置である。
画像処理装置1は、手振れやローリングシャッタ歪み等の不具合を排除してフレーム画像を出力する機能を有する。例えば、図3の(A),(B)に示すように、カメラ20により連続撮像されたフレーム画像をframei−1、frameとし、その中心位置をCfi−1、Cfとする。画像処理装置1は、フレーム画像framei−1よりも小さい大きさの切り出し領域Ki−1を設定する。例えば、切り出し領域Ki−1の大きさは、フレーム画像framei−1の大きさの70〜90%となる。切り出し領域Ki−1の中心位置は、Cri−1である。この切り出し領域Ki−1が出力フレーム画像となる。次に、カメラ20が(A)で示す撮像位置から(B)で示す撮像位置へ変化したとする(図3の(B)の実線の矢印で示す右上方向へのシフト)。この場合、フレーム画像framei−1よりも右上にシフトしたフレーム画像frameが得られる。ここで、画像処理装置1は、フレーム画像framei−1とフレーム画像frameとの間の動きを相殺する位置に、切り出し領域Kを設定する(図3の(B)の点線の矢印で示す左下方向へのシフト)。これにより、前回の切り出し領域Ki−1の中心位置Cri−1と今回の切り出し領域Kの中心位置Crとが同程度の位置となるため、あたかも静止しているかのような出力フレーム画像が生成され、表示部21へ出力される。
以下では、画像処理装置1の詳細を説明する。図1に示すように、画像処理装置1は、入力部10、動き取得部11、算出部(行列演算部)30及び描画部17を備えている。
入力部10は、カメラ20により撮像されたフレーム画像を入力する機能を有している。入力部10は、例えばカメラ20により撮像されたフレーム画像を撮像の度に入力する機能を有している。また、入力部10は、フレーム画像を、携帯端末2に備わる画像記録部22に保存する機能を有している。また、入力部10は、入力フレーム画像を動き取得部11へ出力する機能を有している。
動き取得部11は、入力フレーム画像(第2フレーム画像)と当該入力フレーム画像の直前又は以前に撮像されたフレーム画像(第1フレーム画像)を用いて、フレーム画像間の動きを取得する機能を有している。第1フレーム画像は、例えば画像記録部22に格納されている。動き取得部11は、画像記録部22を参照し、過去に入力されたフレーム画像を基準フレーム画像とし、基準フレーム画像と入力フレーム画像との相対的な動きデータを取得する。なお、基準フレーム画像は、処理対象の入力フレーム画像と一定領域以上の重なりがあればよい。このため、動き取得部11は、基準フレーム画像を入力フレーム画像の入力の度に変更する必要はなく、処理対象の入力フレーム画像と一定領域以上の重なりが無くなった場合に、次回以降の基準フレーム画像を更新してもよい。また、2枚のフレーム画像ではなく、3枚以上のフレーム画像を参照して動きを取得する場合には、直前に入力されたフレーム画像を一時基準フレーム画像とし、設定済みの基準フレーム画像及び一時基準フレーム画像と処理対象の入力フレーム画像とを比較して動きを取得してもよい。動き取得部11は、フレーム画像同士を比較して、例えば8自由度の動きデータP(観測値)を取得する。動き取得部11は、動きデータPを算出部30へ出力する。なお、動き取得部11は、携帯端末2に備わるジャイロセンサの出力値を入力することで、動きデータPを取得してもよい。ジャイロセンサは、基準フレーム画像と入力フレーム画像との間の動きデータPを検出して出力する機能を有する。
ここで、8自由度の動きについて概説する。図4は、8自由度の動きを説明する概要図である。図4に示すように、例えば変形前の画像が正方形である場合、カメラ20の動きによって、画像が(A)〜(H)へ変形する。ここで、(A)は拡大/縮小、(B)は平行四辺形(横方向)、(C)は平行四辺形(縦方向)、(D)は回転、(E)は平行移動(横方向)、(F)は平行移動(縦方向)、(G)は台形(横方向)、(H)は台形(縦方向)である。このため、画像処理装置1は、上記変形に合わせて切り出し領域Kを設定する。
次に、動きデータP、切り出し領域Ki−1、切り出し領域K及び射影行列の関係を説明する。図5は、基準フレーム画像framei−1、処理対象のフレーム画像frame、それぞれの切り出し領域Ki−1,K、出力フレーム画像out-frameの関係を示す概要図である。図5では、基準フレーム画像framei−1と処理対象のフレーム画像frameとの動きデータ(動きベクトル)をPで示している。動きデータPは、動き取得部11によって既知である。また、基準フレーム画像framei−1の切り出し領域Ki−1と出力フレーム画像out-framei−1とを関連付けする変換式(射影行列)をPdst i−1で示している。射影行列Pdst i−1は、以下では前回の射影行列、又は、第1射影行列ともいう。射影行列Pdst i−1は、前回の演算にて算出された値であるため、既知の値である。射影行列Pdst i−1は、例えば前回データ記録部23に格納されている。この場合、図5に示すように、フレーム画像frameの切り出し領域Kと出力フレーム画像out-frameとを関連付けする変換式(射影行列)Pdst は、動きデータPと第1射影行列Pdst i−1を用いて、以下の数式(1)で算出することができる。
なお、射影行列Pdst は、以下では、第2射影行列ともいう。
ここで、数式(1)の状態では、完全に切り出し領域を固定するモードとなる。しかしながら、ユーザの意図する動き(例えばカメラの平行移動やパン・チルト)に対しては追従させ、手振れ等の不具合は除去する必要がある。例えば、ハイパスフィルタを用いて、ユーザの意図する動き及び不具合となる動きをフィルタリングする。この場合、第2射影行列Pdst は、以下の数式(2)となる。
ここでHPFは、ハイパスフィルタである。すなわち、手振れ等の高周波成分はパスさせて画面を固定させ、ユーザの意図する動きである低周波成分についてはカットして画面をユーザの動きに追従させる。
しかしながら、動きデータPには、ローリングシャッタ歪み成分が含まれている。図6は、ローリングシャッタ歪みを説明する概要図である。ローリングシャッタ歪みとは、図6の(A)のように、カメラ20が被写体に対して相対的に水平方向に移動した場合に、被写体が水平方向に平行四辺形状に歪むことである。カメラ20が垂直方向に移動する場合には、ローリングシャッタ歪みは、図6の(B)のように、被写体が垂直方向に拡大・縮小するように発生する。このローリングシャッタ歪み成分については、常に補正する必要があるため、ハイパスフィルタを常にパスさせるべき成分である。すなわち、ローリングシャッタ歪み成分については、ハイパスフィルタを適用させる必要性がない。よって、ローリングシャッタ歪み成分を分離させた状態で、ユーザの意図する動きに対しては追従させ、手振れ等の不具合は除去する枠組みを構築する。
図7は、上記枠組みを説明するための概要図である。図7に示すように、基準フレーム画像framei−1から動きデータPだけ移動した処理対象のフレーム画像frameが存在するとする。図7では、既知の値は実線の矢印で示し、未知の値は点線の矢印で示している。矢印Pは動きデータ(動きベクトル)であり、既知である。矢印Di−1は、基準フレーム画像framei−1のローリングシャッタ歪み成分を示す演算子(第1行列Di−1)である。第1行列Di−1は、前回の演算の際に求まる値であるので、既知である。第1行列Di−1は、例えば前回データ記録部23に格納されている。第1行列Di−1を用いることで、入力画像系のフレーム画像をローリングシャッタ歪みのない系のフレーム画像へ変換することができる。
なお、図7では、「ローリングシャッタ歪みのない系」を図示しているが、完全にローリングシャッタ歪みが除去された系にする必要な無く、ローリングシャッタ歪みがある程度低減された系であってもよい。例えば、第1行列Di−1が正確な値である場合には、入力画像系のフレーム画像をローリングシャッタ歪みが完全に存在しない系のフレーム画像へ変換することになる。しかし、第1行列Di−1が正確な値でない場合には、入力画像系のフレーム画像をローリングシャッタ歪みが低減された系のフレーム画像へ変換することになる。このように、第1行列Di−1の正確性は、ローリングシャッタ歪み成分をどこまで考慮しないのかという度合いに影響を与える。このため、一応確からしい第1行列Di−1を用いた場合には、ローリングシャッタ歪みが低減された系へ変換させることができ、この場合、ローリングシャッタ歪み成分をある程度分離させた状態へすることが可能となる。すなわち、本実施形態の枠組みでは、ローリングシャッタ歪みの除去について、ある程度の誤差が含まれることを許容している。
図7では、基準フレーム画像framei−1のローリングシャッタ歪みが低減された画像をRS_framei−1で示している。矢印で示す行列Si−1は、RS_framei−1の切り出し領域と出力フレーム画像out-frameとを関連付けするベクトル(射影行列)である。射影行列Si−1は、前回の演算の際に求まる値であるので、既知である。射影行列Si−1は、例えば、前回の演算の際に求まる第1射影行列Pdst i−1と第1行列Di−1とを用いて算出することができる。射影行列Si−1は、例えば前回データ記録部23に格納されている。以下では、射影行列Si−1を、ローリングシャッタ歪み成分が低減された系の第1射影行列ともいう。
図7に示すように、処理対象のフレーム画像frameについても、ローリングシャッタ歪みのない系の画像RS_frameへ変換することができれば、ローリングシャッタ歪みのない系における動きデータNを算出することができる。以下では、動きデータNを仮の動きデータともいう。ローリングシャッタ歪みが低減された系における動きデータNが求まれば、数式(2)と同様に、RS_frameの切り出し領域と出力フレーム画像out-frameとを関連付けする、ローリングシャッタ歪みが低減された系の射影行列S(ローリングシャッタ歪みが低減された系の第2射影行列)は、以下の数式(3)で表される。
ローリングシャッタ歪みが低減された系における射影行列Sを用いて、第2射影行列Pdst は、以下の数式(4)で表される。
このように、ローリングシャッタ歪みが低減された系へ変換することで、ローリングシャッタ歪みを考慮しないN・Si−1に関してのみハイパスフィルタを適用することができる。
算出部30は、上記枠組みを実現するための演算部である。すなわち、算出部30が、既に算出されて前回データ記録部23に記録されている前回データと測定値である今回データとを用いて、出力フレーム画像を第2フレーム画像へ射影させる第2射影行列Pdst を算出する。
以下では、前回データ記録部23には、ローリングシャッタ歪み成分を示す第1行列Di−1、第2フレーム画像を入力する前に入力されたフレーム画像間のローリングシャッタ歪みが低減された系における前回の動きデータNPRE、第2フレーム画像を入力する前に入力されたフレーム画像間の前回の第2行列及び前回の補正行列、並びに、ローリングシャッタ歪みが低減された系における射影行列Si−1が格納されている場合を説明する。なお、第2行列及び補正行列の詳細は後述する。
算出部30は、出力フレーム画像を第2フレーム画像へ射影させる第2射影行列Pdst を、ローリングシャッタ歪み成分を含む第1行列D、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、第1行列D及び第2行列に含まれる動き成分を含まない補助行列から算出する。すなわち、算出部30は、第2射影行列Pdst を、第1行列D、第2行列及び補助行列に分離させた状態で独立に算出する。算出部30は、第1算出部12、第2算出部13及び補助行列算出部14を備えている。
第1算出部12は、ローリングシャッタ歪み成分を含む第1行列Dを算出する。第1算出部12は、平行移動成分に基づいてローリングシャッタ歪み成分を算出する機能を有している。歪み量は、カメラ20の移動の速さが速くなるほど大きくなる。このことから、ローリングシャッタ歪みは、カメラ20の移動の速さを用いて推定することが可能であるといえる。カメラ20の移動の速さはフレーム間の平行移動量を用いて推定することができる。よって、第1算出部12は、例えば動きデータPに含まれる平行移動量に基づいて、ローリングシャッタ歪み成分を含む第1行列Dを算出する。ここで、前回の動きデータをPi−1とし、今回の動きデータをPとすると、動きデータPi−1及び動きデータをPに含まれる平行移動量を平均した値を、平行移動量としてもよい。ローリングシャッタ歪み成分は、歪みのある座標系を(x,y,1)、歪みのない座標系を(X,Y,1)とすると、以下の数式(5)で表される。
上記数式(5)に示すように、Yの値が歪み成分に影響を与える。ここでローリングシャッタ歪み成分に含まれるd 、d は画像の平行移動成分であり、αは歪み係数である。歪み係数αは、フレーム画像の1ラインを読み込む時間を、フレーム画像全体を読み込む時間と次のフレーム画像を読み込むまでの時間とを加算した値で除算して算出される値である。言い換えれば、歪み係数αは、フレーム画像の1ラインを読み込む時間を、当該フレーム画像の最初のラインを読み込んだ時刻から次のフレーム画像の最初のラインを読み込む時刻までの時間で除算して算出される値である。歪み係数αは、カメラ20に備わる画素センサの仕様や画素センサの駆動の設定により変化する。例えば、画素センサそれぞれにおいて、スキャンスピード、フレームレート、露光時間、画像サイズ、走査線の向き、ズーム倍率、f値、機械式手ブレ補正機構のON/OFF、フレームの撮像から出力までの時間、読み出し速度、読み出し方向等といった設定情報が異なる。このため、歪みの推定の前に、あらかじめ撮像素子(画像センサ)の様々な設定、撮像モード又は環境条件を含む撮像条件に対して算出しておく必要がある。なお、画像センサにおいて、隣接ライン間の時間差をt、隣接フレーム間の時間差をtとすると、歪み係数αは以下の式で算出することができる。なお、隣接フレーム間の時間差tについては、動フレーム画像列のフレームレートに基づいて導出することができる。
ここで、フレーム画像のライン数(画像の高さ)をNとすると、以下の不等式が成り立つ。
上記不等式は以下のように変形することができる。
このように、フレーム画像のライン数Nが既知の場合には、歪み係数αの上限値を決定することができる。
ここで、歪み係数αの算出方法について説明する。図8は、歪み係数αの算出方法を説明する概要図である。図8に示すように、歪み係数αは、静止フレーム画像frame、動フレーム画像列frameを用いて算出される。静止フレーム画像と動フレーム画像とを比較して、どの程度の歪みが発生するのかを求め、さらに、動フレーム画像間でどの程度の平行移動量であったのかを求めることにより、歪みと平行移動量の相関を求める。この相関関係から歪み係数αを算出する。
具体的には、まず、被写体及びカメラ20を静止させて、静止フレーム画像frameを撮影する。次に被写体あるいはカメラ20を動かし、動フレーム画像列:frame、frame、frame、…、framei−1、frameを撮影する。動フレーム画像frameでの歪み量は、静止フレーム画像frameから動フレーム画像frameへの動き行列Mb→iを計算することで算出することができる。歪み量は、静止フレーム画像frameの座標系を(x,y,1)とし、動フレーム画像frameの座標系を(x,y,1)とすると、以下の数式(6)で表される。
ここで、動き行列Mb→iが平行移動成分及び歪み成分のみであると仮定すると、歪み量は、以下の数式(7)のように近似することができる。
数式(5)と数式(7)とを比較する。数式(7)では、歪み成分はm01 b→i及びm11 b→iである。一方、数式(5)においては、歪み成分の元となるのは連続するフレーム間の動き成分とした平行移動量(d ,d である。平行移動量を求めるために、動フレーム画像frameと、その一つ前の動フレーム画像framei−1から、動き行列Mi−1→iを求める。動フレーム画像frameと、その一つ前の動フレーム画像framei−1との関係を以下の数式(8)で表すことができる。
上記数式(8)を用いてフレーム間の動き成分(m02 i−1→i,m12 i−1→iを平行移動成分(d ,d としてもよい。また、動フレーム画像frameの中心座標の平行移動量を(d ,d としてもよい。また、連続するフレーム画像のうちフレーム画像frameと直前のフレーム画像framei−1とを用いて第1の平行移動量を算出するとともに、フレーム画像frameと直後のフレーム画像framei+1とを用いて第2の平行移動量を算出し、第1の平行移動量及び第2の平行移動量の平均(重み付け平均、多項式近似等)を用いて平行移動量を求めてもよい。平均の平行移動量を用いることで精度を向上させることができる。(d ,d を算出することで、歪み係数αは、以下の数式(9),(10)で表すことができる。
ここで、一つのフレーム画像frameにおいてm01 b→i,m11 b→i,d ,d を測定し、数式(9)、数式(10)を用いることで、歪み係数αを求めることができる。しかし、歪み係数αを求めるための測定値であるm01 b→i,m11 b→i,d ,d には誤差が含まれることが想定される。このため、一つのフレーム画像frameについて求めた歪み係数を仮の歪み係数とし、複数のフレーム画像についてフレーム画像ごとに仮の歪み係数を求めて、これらの仮の歪み係数を用いて誤差を収束させた精度のよい歪み係数αを算出してもよい。図9は、横軸がframe、縦軸が歪み係数αである。図9に示すように、様々なframeについて仮の歪み係数αを求め、それらの平均値(重み付け平均値)を歪み係数αとして採用してもよい。あるいは、様々なframeについて仮の歪み係数αを求め、それらの中央値を歪み係数αとして採用してもよい。図10は、横軸が移動量d であり、縦軸が動き行列成分m01 b→iである。図10に示すように、平行移動量及びローリングシャッタ歪み成分を座標軸とする2次元平面上にプロットし、数式(10)に示す回帰直線の傾きから歪み係数αを求めてもよい。測定値であるm01 b→i,m11 b→i,d ,d の値が小さく、誤差が与える影響が大きい場合であっても、上述した手法により精度良く歪み係数αを求めることができる。なお、仮の歪み係数α及び歪み係数αは上述した上限値(フレーム画像のライン数Nの逆数)以下である必要がある。このため、所定のフレーム画像frameの仮の歪み係数αがフレーム画像のライン数Nの逆数よりも大きい場合には、当該フレーム画像frameについての仮の歪み係数αをフレーム画像のライン数Nの逆数とする補正をした上で、上述した平均値、中央値、又は回帰直線による手法により歪み係数αを算出してもよい。あるいは、所定のフレーム画像frameの仮の歪み係数αがフレーム画像のライン数Nの逆数よりも大きい場合には、当該フレーム画像frameの仮の歪み係数αを除いて上述した平均値、中央値、又は回帰直線による手法により歪み係数αを算出してもよい。また、導出された歪み係数αがフレーム画像のライン数Nの逆数よりも大きい場合には、歪み係数αをフレーム画像のライン数Nの逆数とする補正をしてもよい。ローリングシャッタ歪みは画素センサの仕様や画素センサの駆動の設定により発生の様子が異なる。上述した手法で、カメラ20すなわち画素センサの設定に対してそれぞれ歪み係数αを算出することにより、カメラ20固有の条件を反映させて正確にローリングシャッタ歪みを推定することができる。なお、実際の測定値を用いて歪み係数αを算出する場合には、どのような撮像環境条件で歪み係数αを算出したのかについても記録しておいてもよい。撮像環境条件としては、例えば、「明るさ」又は「気温」等が含まれる。
第1算出部12は、上記の方法で算出された歪み係数αを記録したカメラ情報記録部を参照可能に構成されている。例えば、素子設定値と歪み係数αとを関連付けしたテーブルを備えている。素子設定値及び撮像環境と歪み係数αとを関連付けしたテーブルを備えていてもよい。第1算出部12は、カメラ情報記録部を参照し、画素センサの設定に応じて歪み係数αの値を取得し、カメラモーション成分を用いてローリングシャッタ歪み成分を推定する。画素センサの現状の設定情報や撮像環境に関する情報は、例えば、カメラ20から取得してもよい。また、カメラ情報記録部に、フレーム画像の1ラインを読み込む時間、及び、フレーム画像全体を読み込む時間と次のフレーム画像を読み込むまでの時間が、設定情報や撮像環境に関する情報に関連付けされて記録されている場合には、カメラ情報記録部から歪み係数αを直接取得するのではなく、カメラ情報記録部に記録されている情報に基づいて歪み係数αを演算してもよい。
第1算出部12は、上記のとおり平行移動のみを考慮して第1行列Dを導出しているため、算出された第1行列Dは真の値ではないものの、おおよそ正しい値を得ることができる。第1算出部12は、算出された第1行列Dを第2算出部13、補助行列算出部14及び描画部17へ出力する。
第1行列Dが算出されれば、処理対象のフレーム画像frameをローリングシャッタ歪みのない系の画像RS_frameへ変換することができる。これにより、図7に示す関係を用いて、動きデータP及び第1行列Dを用いてローリングシャッタ歪みが低減された系における動きデータNも導出することができる。
動きデータNを算出することで、ローリングシャッタ歪みが考慮されていないN・Si−1に関してのみハイパスフィルタを適用することができる。しかし、N・Si−1は行列であるため、N・Si−1をこのままの状態でハイパスフィルタを適用すると処理が複雑になるおそれがある。このため、算出部30は、上述したとおり、N・Si−1の動き成分を、ユーザの意図が反映されたカメラ20の動きと、それ以外の動き成分とに分割して取り扱う。第2算出部13は、ユーザの意図が反映されたカメラ20の動きを含む第2行列を算出する。補助行列算出部14は、補助行列を算出する。第2算出部13及び補助行列算出部14は、算出された第1行列Dを用いて、ローリングシャッタ歪みのない系における演算を実行可能に構成されている。
第2算出部13は、ユーザの意図が反映されたカメラ20の動きは平行移動成分及び回転成分の少なくとも一方であると推定する。なお、第2算出部13は、平行移動成分及び回転成分と明確に成分として分けて動きを算出してもよいし、平行移動成分及び回転成分を複合させた動き成分(コンビネーションとした成分)を算出してもよい。例えば、第2算出部13は、撮像方向に延びる軸をz軸、撮像方向に直交する方向に伸びる軸をx軸及びy軸とした場合、平行移動成分並びにx軸及びy軸の回転成分を組み合わせた成分を算出してもよい。また、撮像シーンに応じて、第2算出部13は、拡大縮小成分も考慮して推定してもよい。すなわち、第2行列は、平行移動成分のみを含んでもよいし、回転成分のみを含んでもよいし、平行移動成分及び回転成分のみを含んでもよいし、平行移動成分及び回転成分に加えて拡大縮小成分を含んでもよい。
図11は、平行移動成分及び回転成分を説明する概要図である。カメラ20の動きは撮像シーンに依存するものの、カメラワークのほとんどは平行移動成分及び回転成分である。図11は、出力フレーム画像out-frameの座標系(x,y)と、処理対象のフレーム画像frameの座標系(X,Y)との関係を示す。図11において、撮像方向に延びる軸がz軸、撮像方向に直交する方向に伸びる軸がx軸及びy軸となる。撮像方向に延びる軸をz軸、撮像方向に直交する方向に伸びる軸をx軸及びy軸とした場合、平行移動成分は、x軸、y軸及びz軸に平行な方向に移動する成分である。回転成分は、x軸、y軸及びz軸の少なくとも1つの回転成分であり、ヨー成分、ロール成分及びピッチ成分の少なくとも1つである。
第2算出部13は、第2行列を算出するためにユーザ動き行列Aを算出する。ユーザ動き行列Aは、第2行列を算出するために用いられる行列であって、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む。例えば、図11に示すように、第2算出部13は、出力フレーム画像out-frameの中心座標(0,0)と第2フレーム画像であるフレーム画像frameの中心(0,0)とを対応させるユーザ動き行列Aを算出する。第2算出部13は、動きデータPからユーザ動き行列Aを算出することができる。具体的には、第2算出部13は、例えば、出力フレーム画像out-frameを第1フレーム画像へ射影させる既知の第1射影行列Pdst i−1と動きデータPとを用いて、フレーム画像frameの中心座標を特定する。そして、第2算出部13は、出力フレーム画像out-frameの座標(x,y)を平行移動及び回転させて、フレーム画像frameの中心(X,Y)へ射影するユーザ動き行列Aを算出する。ヨー成分、ロール成分及びピッチ成分については、例えば、中心付近の移動量と焦点距離からある程度正確に推測することができる。ここでは、動きを平行移動及び回転に限定しているため、得られたユーザ動き行列Aは真の値ではないものの、おおよそ正しい値を得ることができる。第2算出部13は、算出されたユーザ動き行列Aを補助行列算出部14へ出力する。
第2算出部13は、ユーザ動き行列Aを補正して第2行列を算出する機能を有している。第2算出部13は、ユーザが意図したであろうカメラ20の動きに関して、手振れによる高周波成分を取り除く機能を有している。第2算出部13は、第1フィルタを用いてカメラワークに起因する周波数成分を除去する。第1フィルタは例えばハイパスフィルタである。また、第2算出部13は、例えば図12に示すように、切り出し領域Kがフレーム画像frameの外縁の枠に近づくほど、中心位置へ戻すようなばねモデルを適用して、カメラワークへの追従を実現させてもよい。例えば、第2算出部13は、外縁との距離の二乗に比例して中心位置へ戻すように作用させる第1フィルタをユーザ動き行列Aへ適用して、第2行列としてもよい。なお、第2算出部13は、x軸,y軸及びz軸のそれぞれでのばね係数(比例係数)を調整してもよい。また、第2算出部13は、フレーム画像frameの中心付近では摩擦が高くなるように設定してもよい。このように設定することで、追随の安定性を向上させることができる。
補助行列算出部14は、ユーザ動き行列Aを用いて動きデータNの「残りの動き行列B」を算出する。行列Bに含まれる成分は、例えば図4に示した8成分のうち、第1行列D及びユーザ動き行列Aにて表現されていない残りの成分や、第1行列D及びユーザ動き行列Aにて正確に表現されていない誤差成分(例えば、ローリングシャッタ成分の誤差成分や回転成分の誤差成分等)を含み得る。すなわち、残りの動き行列Bは、設定された自由度及びユーザ動き行列Aに応じて変動することになる。例えば8自由度でかつユーザ動き行列Aが拡大縮小成分を含む場合には、残りの動き行列Bは、四角形を台形へ変換する成分(図4に示す(G)、(H))及び誤差成分を含む。例えば8自由度でかつユーザ動き行列Aが拡大縮小成分を含まない場合には、残りの動き行列Bは、拡大縮小成分、四角形を台形へ変換する成分(図4に示す(G)、(H))及び誤差成分を含む。例えば6自由度でかつユーザ動き行列Aが拡大縮小成分を含まない場合には、残りの動き行列Bは、拡大縮小成分及び誤差成分を含む。例えば6自由度でかつユーザ動き行列Aが拡大縮小成分を含む場合には、残りの動き行列Bは、誤差成分のみを含む。
補助行列算出部14は、ローリングシャッタ歪み成分が低減された系における第1射影行列Si−1及び動きデータNを用いて算出されたN・Si−1と、ユーザ動き行列Aとを用いて、残りの動き成分を含む動き行列Bを算出する。以下では、ユーザ動き行列Aが回転成分(ヨー成分y、ピッチ成分p及びロール成分r)を主に含む場合を説明する。この場合、補助行列算出部14は、以下の数式(11)又は(12)を用いて、残りの動き成分を含む動き行列Bを算出する。
すなわち、補助行列算出部14は、N・Si−1の動き成分を、ヨー成分y、ピッチ成分p及びロール成分rを含むユーザ動き行列Aと、それ以外の動き成分lを含む残りの動き行列Bとに分割して取り扱い、ユーザ動き行列Aを別個に算出して上記数式(11)又は(12)に代入することで、成分lを得る。なお、以下では補助行列算出部14が数式(11)を用いた場合を説明する。
補助行列算出部14は、算出された「残りの動き行列B」を補正して補助行列を算出する機能を有している。残りの動き行列Bは、動きに対して補助的な成分を含む行列であり、誤差又は無視された成分を含み得る。このため、理想的には、残りの動き行列Bは恒等写像する単位行列となる。よって、残りの動き行列Bをどのタイミングで単位行列とするかが問題となる。第2補正部16は、誤差が段々と無くなるように、すなわち、急に単位行列へ補正するのではなく、残りの動き行列Bが段々と単位行列となるように補正する。例えば、単位行列と残りの動き行列Bとの差分を算出し、その差分が80%となるように補正してもよい。例えば補助行列算出部14は、ハイパスフィルタを用いて上記処理を実現してもよい。このように、急に単位行列へ補正することを回避することで、出力フレーム画像が最終的に不自然な動きとなることを回避することが可能となる。
上述した第2算出部13及び補助行列算出部14の処理を纏めると、以下のとおりとなる。
すなわち、第2行列は、ヨー成分y、ピッチ成分p及びロール成分rを含むユーザ動き行列Aにハイパスフィルタを適用した行列であり、補助行列は、残りの動き行列Bにハイパスフィルタを適用した行列である。なお、ヨー成分y、ピッチ成分p及びロール成分rに適用するハイパスフィルタのみ、複雑な1変数フィルタが設計されてもよい。すなわち、ユーザの意図が反映されたカメラ20の動きのみ、正確にフィルタを設計する。ここで、ハイパスフィルタは、例えば前回データ記録部23に記憶されたデータを用いて設計されてもよい。第2算出部13は、例えば、第2行列を算出する度に、算出された第2行列を前回データ記録部23へ出力して記録させる。これにより、第2行列を導出するハイパスフィルタは、例えば前回データ記録部23に記憶された過去の第2行列を用いて設計される。また、補助行列算出部14は、残りの動き成分lにハイパスフィルタを適用する。ここで、ハイパスフィルタは、例えば前回データ記録部23に記憶されたデータを用いて設計されてもよい。補助行列算出部14は、例えば、補助行列を算出する度に、算出された補助行列を前回データ記録部23へ出力して記録させる。これにより、補助行列を導出するハイパスフィルタは、例えば前回データ記録部23に記憶された過去の補助行列を用いて設計される。なお、上記のとおり、残りの動き成分lに適用させるハイパスフィルタは、恒等行列に近づける単純な設計としてもよい。このように、正確に設計するフィルタとある程度の正確なフィルタとを区別することができるので、全体のフィルタ設計が容易となる。
算出部30は、第2行列及び補助行列を用いて、以下のように、ローリングシャッタ歪みのない系における射影行列Sを導出する。
そして、算出部30は、第1行列D、第2行列及び補助行列を用いて、出力フレーム画像out-frameと入力フレーム画像frameとを対応付けする第2射影行列Pdst を導出する。
描画部17は、第2射影行列Pdst を用いて、入力フレーム画像frameの切り出し領域Kを算出し、出力フレーム画像out-frameとして表示部21へ出力する。
次に、本実施形態に係る画像処理装置1の動作について説明する。図13は、本実施形態に係る画像処理装置1の動作を示すフローチャートである。図13に示す制御処理は、例えば携帯端末2の撮像機能をONしたタイミングで実行され、所定の周期で繰り返し実行される。なお、説明理解の容易性を考慮して、処理対象の入力フレーム画像は、2番目以降の入力フレーム画像であるとする。
図13に示すように、最初に画像処理装置1が画像入力処理を実行する(S10:入力ステップ)。S10の処理では、入力部10が、カメラ20から入力フレーム画像frameを入力する。S10の処理が終了すると、動きデータ取得処理へ移行する(S12:動き取得ステップ)。
S12の処理では、動き取得部11が、入力フレーム画像frameとフレーム画像framei−1との間の動きデータPを取得する。S12の処理が終了すると、ローリングシャッタ歪み成分を含む第1行列Dの算出処理へ移行する(S14:第1算出ステップ)。
S14の処理では、第1算出部12が、S12の処理で取得された動きデータに基づいてローリングシャッタ歪み成分を含む第1行列Dを算出する。S14の処理が終了すると、動きデータNの算出処理へ移行する(S16)。
S16の処理では、算出部30が、S12の処理で得られた動きデータP、S14の処理で得られた第1行列Dを用いて、仮の動きデータNを算出する。S16の処理が終了すると、回転成分算出処理へ移行する(S18)。
S18の処理では、第2算出部13が、回転成分(ユーザ動き行列A)を算出する。例えば、入力フレーム画像frameの中心位置の移動量と焦点距離からある程度正確に推測することができる。一例としてヨー方向の算出を説明する。x軸方向の移動量をdmxとし、焦点距離をdnとした場合、ヨー方向の成分は、以下の数式で簡易に算出することができる。
S18の処理が終了すると、ユーザ動き行列Aへのフィルタ処理へ移行する(S20:第2算出ステップ)。
S20の処理では、第2算出部13が、S18の処理で得られたユーザ動き行列Aをハイパスフィルタで補正して第2行列を得る。すなわち、第2算出部13は、前回データ記録部23を参照して、過去の第2行列を取得し、過去の第2行列と動き行列Aとを用いて、第2行列を得る。S20の処理が終了すると、残りの動き行列Bへのフィルタ処理へ移行する(S22:補助行列算出ステップ)。
S22の処理では、補助行列算出部14が、残りの動き行列Bを算出し、残りの動き行列Bに対してフィルタ処理を行い、補助行列を得る。まず、補助行列算出部14が、N・Si−1の動き成分を、ヨー成分y、ピッチ成分p及びロール成分rを含むユーザ動き行列Aと、それ以外の動き成分lを含む残りの動き行列Bとに分割して取り扱い、ユーザ動き行列Aを別個に算出して上記数式(11)に代入することで、成分lを残りの動き行列Bとして得る。また、補助行列算出部14は、前回データ記録部23を参照して、過去の補助行列を取得し、過去の補助行列と動き行列Aとを用いて、補助行列を得てもよい。
S24の処理では、算出部30が、S20の処理で得られた第2行列、及び、S22の処理で得られた補助行列を用いて、ローリングシャッタ歪みのない系における射影行列Sを算出する。S24の処理が終了すると、描画行列(射影行列)の算出処理へ移行する(S26)
S26の処理では、算出部30が、例えば上記数式(4)で示すように、S24の処理で得られた射影行列Sを用いて、入力画像系における第2射影行列Pdst を算出する。S26の処理が終了すると、描画処理へ移行する(S28:描画ステップ)。
S28の処理では、描画部17が、S26の処理で得られた第2射影行列Pdst を用いて入力フレーム画像frameの切り出し領域Kを算出し、出力フレーム画像out-frameとして表示部21へ出力する。S28の処理が終了すると、判定処理へ移行する(S30)。
S30の処理では、画像処理装置1が、画像の入力が終了したか否かを判定する。画像処理装置1は、例えば、所定の入力回数に達したか否か、あるいは、前回入力から所定の時間経過したか否かに基づいて、画像の入力が終了したか否かを判定する。S30の処理において、画像の入力が終了していないと判定した場合には、S10の処理へ再度移行する。一方、S30の処理において、画像の入力が終了したと判定した場合には、図13に示す制御処理を終了する。図13に示す制御処理を実行することで、人間の意図が強く反映される平行移動成分及び回転成分と、その他の成分及び誤差成分とを互いに関連させることなく独立して補正することが可能となる。なお、第1算出ステップ、第2算出ステップ及び補助行列算出ステップが行列演算ステップに相当する。
次に、携帯端末(コンピュータ)2を上記画像処理装置1として機能させるための画像処理プログラムを説明する。
画像処理プログラムは、メインモジュール、入力モジュール及び演算処理モジュールを備えている。メインモジュールは、画像処理を統括的に制御する部分である。入力モジュールは、入力画像を取得するように携帯端末2を動作させる。演算処理モジュールは、動き取得モジュール、算出モジュール(第1算出モジュール、第2算出モジュール及び補助行列算出モジュール)及び描画モジュールを備えている。メインモジュール、入力モジュール及び演算処理モジュールを実行させることにより実現される機能は、上述した画像処理装置1の入力部10、動き取得部11、算出部30(第1算出部12、第2算出部13及び補助行列算出部14)及び描画部17の機能とそれぞれ同様である。
画像処理プログラムは、例えば、ROM等の記録媒体または半導体メモリによって提供される。また、画像処理プログラムは、データ信号としてネットワークを介して提供されてもよい。
以上、本実施形態に係る画像処理装置1、画像処理方法及び画像処理プログラムによれば、画像の変形の動きを、平行移動成分又は回転成分の少なくとも一方と、ローリングシャッタ歪み成分と、その他の成分とに分けて取り扱い、それぞれ別個に算出する。第1算出部12により、動きデータを用いて、ローリングシャッタ歪み成分を含む第1行列Dがある程度正確に算出される。第2算出部13により、出力フレーム画像out-framei−1を基準フレーム画像framei−1へ射影させる既知の第1射影行列Pdst i−1と動きデータPとを用いて、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含むユーザ動き行列Aがある程度正確に算出される。補助行列算出部14により、第1行列D、ユーザ動き行列A及び第1射影行列Pdst i−1を用いて、第1行列D及びユーザ動き行列Aに含まれる動き成分を含まない残りの動き行列Bが算出される。そして、ユーザ動き行列A及び残りの動き行列Bが補正されて、第2行列及び補助行列が算出される。このように、当該画像処理装置1は、動きデータを3つに分解し、計算過程において別個に算出することができるため、動き成分に応じた処理が可能となる。例えば、除去すべきローリングシャッタ成分を手ぶれ除去等を行う補正対象から外すことが可能となる。これにより、補正の計算コストや補正フィルタの設計を容易とすることができる。さらに、平行移動成分又は回転成分と、補助行列が含む成分とをそれぞれ異なる式で算出していることから、人間の意図が強く反映される平行移動成分又は回転成分と、その他の残りの成分とを互いに関連させることなく独立して補正することが可能となる。すなわち、人間の意図が強く反映される動き成分とそれ以外の動き成分とを異なるフィルタで補正することができるため、カメラワークに適切に追従しながらユーザの意図しない動きによる不具合を解消することを両立させることが可能となる。また、各成分に対する補正は独立しているため、補正フィルタを容易に設計することができる。また、動きデータの形式が変更されたり、不正確なデータが存在したりする場合であっても、動きデータの形式の変更部分やエラー部分を補助行列に含ませることが可能であるため、全ての動きデータの形式に対応可能である。また、第2算出部の動きの算出方法は限定されないため、例えば、正確ではないがロバストな算出方法を第2算出部の動きの算出方法に適用することができる。この場合、画像処理装置1全体としてロバストな処理を行うことができる。さらに、完全な電子手振れ補正を実現することができる。
また、本実施形態に係る画像処理装置1、画像処理方法及び画像処理プログラムによれば、残りの動き行列Bの値を生かしつつ、理想的な値(すなわち恒等写像)となるように補正することができる。このため、ユーザの意図しない動きによる不具合をより自然に解消することが可能となる。
また、本実施形態に係る画像処理装置1、画像処理方法及び画像処理プログラムによれば、ローリングシャッタ歪み成分が平行移動成分のみに起因すると仮定することにより、ほとんど正確なローリングシャッタ歪み成分を簡易かつ迅速に推定することができる。
なお、上述した実施形態は本発明に係る画像処理装置の一例を示すものである。本発明に係る画像処理装置は、実施形態に係る画像処理装置1に限られるものではなく、各請求項に記載した要旨を変更しない範囲で、実施形態に係る画像処理装置を変形し、又は他のものに適用したものであってもよい。
例えば、上述した実施形態では、カメラ20が動画を撮像する例を説明したが、カメラ20は、静止画像を連続撮像するものであってもよい。入力部10が入力する画像は、別の機器からネットワークを介して送信された画像であってもよい。
また、上述した実施形態では、カメラ20により撮像された画像の大きさは同一であるとして説明したが、撮像された画像の大きさは撮像の度に異なる大きさであってもよい。
また、上述した実施形態では、画像を図4に示す8自由度で変形する場合を説明したが、8自由度に限られるものではなく、例えば図4中の(A)〜(F)に示す6自由度であってもよい。
また、上述した実施形態では、第1算出部12がローリングシャッタ歪み成分を推定する一例、第2算出部13が平行移動成分及び回転成分を推定する一例を説明したが、上記手法に限られるものではなく、公知の種々の方法を採用することができる。また、第1算出部12が、第2算出部13により得られた平行移動成分を用いてローリングシャッタ歪み成分を推定してもよい。
また、上述した実施形態にて説明したフローチャートの順番は適宜変更可能である。例えば、S18の処理又はS18及びS20の一連の処理は、S14又はS16の処理と並列に実行してもよい。
また、上述した実施形態では、第1フレーム画像と第2フレーム画像とを用いて第2フレーム画像と出力フレーム画像とを関連付けする射影行列を算出する場合を説明したが、これに限定されるものではない。すなわち、入力フレーム画像で出力フレーム画像を逐次生成する必要はなく、入力フレーム画像と出力フレーム画像の参照先となる画像とが時間的にずれていてもよい。例えば、第1フレーム画像と第2フレーム画像との間に存在する第3フレーム画像を、出力フレーム画像を生成するための処理対象とし、第3フレーム画像と出力フレーム画像とを関連付けする射影行列を算出してもよい。第3フレーム画像は、上記実施形態で説明した第2フレーム画像と同様に処理されてもよいし、第1フレーム画像だけでなく、第2フレーム画像を用いて、第3フレーム画像への射影行列を算出してもよい。すなわち、第3フレーム画像からみて過去のデータである第1フレーム画像と、第3フレーム画像からみて未来のデータである第2フレーム画像とを用いて、第3フレーム画像の射影行列を算出してもよい。
さらに、上述した実施形態では、例えば数式(2)に示すように、動きデータPと第1射影行列Pdst i−1とにハイパスフィルタを作用させる例を説明したが、ハイパスフィルタの作用先を適宜変更してもよい。例えば、数式(2)を以下のように変更してもよい。
この場合、ハイパスフィルタは動きデータNに作用することになる。この場合、数式(13)は、以下のように変更される。
このように、動きデータNが分割される態様であってもよい。また、ハイパスフィルタは切り出し位置に応じて、ハイパスフィルタの係数を変更してもよい。
1…画像処理装置、10…入力部、11…動き取得部、12…第1算出部、13…第2算出部、14…補助行列算出部、17…描画部、20…カメラ、21…表示部、22…画像記録部、30…算出部(行列演算部)。
すなわち、本発明の一側面に係る画像処理装置は、撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する画像処理装置である。該装置は、入力部、動き取得部、行列演算部及び描画部を備える。入力部は、第1フレーム画像及び第2フレーム画像を順次入力する。動き取得部は、第1フレーム画像と第2フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、第1行列及び第2行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第2フレーム画像から出力フレーム画像を生成する。行列演算部は、第1算出部、第2算出部及び補助行列算出部を有する。第1算出部は、動きデータを用いて、射影行列の第1行列を算出する。第2算出部は、出力フレーム画像を第1フレーム画像へ射影させる既知の射影行列と動きデータとを用いて算出された行列である仮第2行列に前回以前の処理にて導出された過去の前記第2行列から導出されたフィルタを適用して、射影行列の第2行列を算出する。補助行列算出部は、第1フレーム画像及び第2フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、仮第2行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と仮第2行列とを用いて導出された仮補助行列に、前回以前の処理にて導出された過去の補助行列から導出されたフィルタを適用して、射影行列の補助行列を算出する。
本発明の他の側面に係る画像処理方法は、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成する画像処理方法である。該方法は、入力ステップ、動き取得ステップ、行列演算ステップ及び描画ステップを備える。入力ステップは、第1フレーム画像及び第2フレーム画像を順次入力する。動き取得ステップは、第1フレーム画像と第2フレーム画像との間の動きデータを取得する。行列演算ステップは、出力フレーム画像を第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、第1行列及び第2行列に含まれない動き成分を含む補助行列から算出する。描画ステップは、射影行列を用いて第2フレーム画像から出力フレーム画像を生成する。行列演算ステップは、第1算出ステップ、第2算出ステップ及び補助行列算出ステップを有する。第1算出ステップは、動きデータを用いて、射影行列の第1行列を算出する。第2算出ステップは、出力フレーム画像を第1フレーム画像へ射影させる既知の射影行列と動きデータとを用いて算出された行列である仮第2行列に前回以前の処理にて導出された過去の前記第2行列から導出されたフィルタを適用して、射影行列の第2行列を算出する。補助行列算出ステップは、第1フレーム画像及び第2フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、仮第2行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と仮第2行列とを用いて導出された仮補助行列に、前回以前の処理にて導出された過去の補助行列から導出されたフィルタを適用して、射影行列の補助行列を算出する。
本発明の他の側面に係る画像処理プログラムは、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムである。該プログラムは、コンピュータを、入力部、動き取得部、行列演算部及び描画部として機能させる。入力部は、第1フレーム画像及び第2フレーム画像を順次入力する。動き取得部は、第1フレーム画像と第2フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、第1行列及び第2行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第2フレーム画像から出力フレーム画像を生成する。行列演算部は、第1算出部、第2算出部及び補助行列算出部を有する。第1算出部は、動きデータを用いて、射影行列の第1行列を算出する。第2算出部は、出力フレーム画像を第1フレーム画像へ射影させる既知の射影行列と動きデータとを用いて算出された行列である仮第2行列に前回以前の処理にて導出された過去の前記第2行列から導出されたフィルタを適用して、射影行列の第2行列を算出する。補助行列算出部は、第1フレーム画像及び第2フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、仮第2行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と仮第2行列とを用いて導出された仮補助行列に、前回以前の処理にて導出された過去の補助行列から導出されたフィルタを適用して、射影行列の補助行列を算出する。
本発明の他の側面に係る記録媒体は、画像処理プログラムを記録したコンピュータ読取可能な記録媒体である。画像処理プログラムは、撮像装置によって撮像されたフレーム画像内にフレーム画像よりも小さい大きさの領域を設定し、撮像装置の動きに応じて領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる。該プログラムは、コンピュータを、入力部、動き取得部、行列演算部及び描画部として機能させる。入力部は、第1フレーム画像及び第2フレーム画像を順次入力する。動き取得部は、第1フレーム画像と第2フレーム画像との間の動きデータを取得する。行列演算部は、出力フレーム画像を第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、第1行列及び第2行列に含まれない動き成分を含む補助行列から算出する。描画部は、射影行列を用いて第2フレーム画像から出力フレーム画像を生成する。行列演算部は、第1算出部、第2算出部及び補助行列算出部を有する。第1算出部は、動きデータを用いて、射影行列の第1行列を算出する。第2算出部は、出力フレーム画像を第1フレーム画像へ射影させる既知の射影行列と動きデータとを用いて算出された行列である仮第2行列に前回以前の処理にて導出された過去の前記第2行列から導出されたフィルタを適用して、射影行列の第2行列を算出する。補助行列算出部は、第1フレーム画像及び第2フレーム画像の、ローリングシャッタ歪みの低減された系における射影行列が、仮第2行列と、残りの動きを表す仮補助行列とで表現されるとし、ローリングシャッタ歪みの低減された系における射影行列と仮第2行列とを用いて導出された仮補助行列に、前回以前の処理にて導出された過去の補助行列から導出されたフィルタを適用して、射影行列の補助行列を算出する。
第2算出部13は、ユーザの意図が反映されたカメラ20の動きは平行移動成分及び回転成分の少なくとも一方であると推定する。なお、第2算出部13は、平行移動成分及び回転成分と明確に成分として分けて動きを算出してもよいし、平行移動成分及び回転成分を複合させた動き成分(コンビネーションとした成分)を算出してもよい。第2算出部13は、撮像方向に延びる軸をz軸、撮像方向に直交する方向に伸びる軸をx軸及びy軸とした場合、平行移動成分並びにx軸及びy軸の回転成分を組み合わせた成分を算出してもよい。また、撮像シーンに応じて、第2算出部13は、拡大縮小成分も考慮して推定してもよい。すなわち、第2行列は、平行移動成分のみを含んでもよいし、回転成分のみを含んでもよいし、平行移動成分及び回転成分のみを含んでもよいし、平行移動成分及び回転成分に加えて拡大縮小成分を含んでもよい。
図11は、平行移動成分及び回転成分を説明する概要図である。カメラ20の動きは撮像シーンに依存するものの、カメラワークのほとんどは平行移動成分及びz軸回転成分である。図11は、出力フレーム画像out-frameの座標系(x,y)と、処理対象のフレーム画像frameの座標系(X,Y)との関係を示す。図11において、撮像方向に延びる軸がz軸、撮像方向に直交する方向に伸びる軸がx軸及びy軸となる。撮像方向に延びる軸をz軸、撮像方向に直交する方向に伸びる軸をx軸及びy軸とした場合、平行移動成分は、x軸、y軸に平行な方向に移動する成分である。回転成分は、x軸、y軸及びz軸の少なくとも1つの回転成分である
補助行列算出部14は、ローリングシャッタ歪み成分が低減された系における第1射影行列Si−1及び動きデータNを用いて算出されたN・Si−1と、ユーザ動き行列Aとを用いて、残りの動き成分を含む動き行列Bを算出する。以下では、ユーザ動き行列A がヨー成分y、ピッチ成分p及びロール成分r 主に含む場合を説明する。この場合、補助行列算出部14は、以下の数式(11)又は(12)を用いて、残りの動き成分を含む動き行列Bを算出する。
すなわち、補助行列算出部14は、N・Si−1の動き成分を、ヨー成分y、ピッチ成分p及びロール成分rを含むユーザ動き行列Aと、それ以外の動き成分lを含む残りの動き行列Bとに分割して取り扱い、ユーザ動き行列Aを別個に算出して上記数式(11)又は(12)に代入することで、成分lを得る。なお、以下では補助行列算出部14が数式(11)を用いた場合を説明する。

Claims (9)

  1. 撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する画像処理装置であって、
    第1フレーム画像及び第2フレーム画像を順次入力する入力部と、
    前記第1フレーム画像と前記第2フレーム画像との間の動きデータを取得する動き取得部と、
    前記出力フレーム画像を前記第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、前記第1行列及び前記第2行列に含まれない動き成分を含む補助行列から算出する行列演算部と、
    前記射影行列を用いて前記第2フレーム画像から前記出力フレーム画像を生成する描画部と、
    を備え、
    前記行列演算部は、
    前記動きデータを用いて、前記射影行列の第1行列を算出する第1算出部と、
    前記動きデータ、前記第1行列、及び、過去の前記第2行列を用いて、前記射影行列の第2行列を算出する第2算出部と、
    前記動きデータ、前記第1行列、及び、過去の前記補助行列を用いて、前記射影行列の補助行列を算出する補助行列算出部と、
    を有する、
    画像処理装置。
  2. 前記第1算出部は、前記動きデータに含まれる平行移動成分に基づいて、前記射影行列の第1行列を算出する請求項1に記載の画像処理装置。
  3. 前記補助行列は、四角形を台形へ変換する成分を含む請求項1又は2に記載の画像処理装置。
  4. 前記補助行列は、拡大縮小成分を含む請求項1〜3の何れか一項に記載の画像処理装置。
  5. 前記第2行列は、拡大縮小成分を含む請求項1〜4の何れか一項に記載の画像処理装置。
  6. 前記動き取得部は、ジャイロセンサの出力値を取得する請求項1〜5の何れか一項に記載の画像処理装置。
  7. 撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成する画像処理方法であって、
    第1フレーム画像及び第2フレーム画像を順次入力する入力ステップと、
    前記第1フレーム画像と前記第2フレーム画像との間の動きデータを取得する動き取得ステップと、
    前記出力フレーム画像を前記第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、前記第1行列及び前記第2行列に含まれない動き成分を含む補助行列から算出する行列演算ステップと、
    前記射影行列を用いて前記第2フレーム画像から前記出力フレーム画像を生成する描画ステップと、
    を備え、
    前記行列演算ステップは、
    前記動きデータを用いて、前記射影行列の第1行列を算出する第1算出ステップと、
    前記動きデータ、前記第1行列、及び、過去の前記第2行列を用いて、前記射影行列の第2行列を算出する第2算出ステップと、
    前記動きデータ、前記第1行列、及び、過去の前記補助行列を用いて、前記射影行列の補助行列を算出する補助行列算出ステップと、
    を有する、
    画像処理方法。
  8. 撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムであって、
    前記コンピュータを、
    第1フレーム画像及び第2フレーム画像を順次入力する入力部、
    前記第1フレーム画像と前記第2フレーム画像との間の動きデータを取得する動き取得部、
    前記出力フレーム画像を前記第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、前記第1行列及び前記第2行列に含まれない動き成分を含む補助行列から算出する行列演算部、及び、
    前記射影行列を用いて前記第2フレーム画像から前記出力フレーム画像を生成する描画部
    として機能させ、
    前記行列演算部は、
    前記動きデータを用いて、前記射影行列の第1行列を算出する第1算出部と、
    前記動きデータ、前記第1行列、及び、過去の前記第2行列を用いて、前記射影行列の第2行列を算出する第2算出部と、
    前記動きデータ、前記第1行列、及び、過去の前記補助行列を用いて、前記射影行列の補助行列を算出する補助行列算出部と、
    を有する、
    画像処理プログラム。
  9. 撮像装置によって撮像されたフレーム画像内に前記フレーム画像よりも小さい大きさの領域を設定し、前記撮像装置の動きに応じて前記領域の位置又は形状を補正して出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムを記録したコンピュータ読取可能な記録媒体であって、
    前記コンピュータを、
    第1フレーム画像及び第2フレーム画像を順次入力する入力部、
    前記第1フレーム画像と前記第2フレーム画像との間の動きデータを取得する動き取得部、
    前記出力フレーム画像を前記第2フレーム画像へ射影させる射影行列を、ローリングシャッタ歪み成分を含む第1行列、撮像方向に直交する方向への平行移動成分及び撮像方向を基準とした回転成分の少なくとも一方を含む第2行列、並びに、前記第1行列及び前記第2行列に含まれない動き成分を含む補助行列から算出する行列演算部、及び、
    前記射影行列を用いて前記第2フレーム画像から前記出力フレーム画像を生成する描画部
    として機能させ、
    前記行列演算部は、
    前記動きデータを用いて、前記射影行列の第1行列を算出する第1算出部と、
    前記動きデータ、前記第1行列、及び、過去の前記第2行列を用いて、前記射影行列の第2行列を算出する第2算出部と、
    前記動きデータ、前記第1行列、及び、過去の前記補助行列を用いて、前記射影行列の補助行列を算出する補助行列算出部と、
    を有する、
    記録媒体。
JP2014544608A 2012-11-05 2013-11-01 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体 Active JP5906493B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPPCT/JP2012/078591 2012-11-05
PCT/JP2012/078591 WO2014068779A1 (ja) 2012-11-05 2012-11-05 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
PCT/JP2013/079724 WO2014069632A1 (ja) 2012-11-05 2013-11-01 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP5906493B2 JP5906493B2 (ja) 2016-04-20
JPWO2014069632A1 true JPWO2014069632A1 (ja) 2016-09-08

Family

ID=50626742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014544608A Active JP5906493B2 (ja) 2012-11-05 2013-11-01 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体

Country Status (6)

Country Link
US (1) US9639913B2 (ja)
EP (1) EP2849428B1 (ja)
JP (1) JP5906493B2 (ja)
KR (1) KR101624450B1 (ja)
CN (1) CN104247395B (ja)
WO (2) WO2014068779A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9736374B2 (en) * 2013-09-19 2017-08-15 Conduent Business Services, Llc Video/vision based access control method and system for parking occupancy determination, which is robust against camera shake
JP6448218B2 (ja) * 2014-05-12 2019-01-09 キヤノン株式会社 撮像装置、その制御方法および情報処理システム
FR3023956B1 (fr) * 2014-07-18 2018-01-12 Safran Electronics & Defense Sas Procede et dispositif de traitement de mouvements de hautes frequences dans un systeme optronique
KR102264840B1 (ko) * 2014-11-27 2021-06-15 삼성전자주식회사 비디오 프레임 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치
US9912868B2 (en) * 2015-09-15 2018-03-06 Canon Kabushiki Kaisha Image-blur correction apparatus, tilt correction apparatus, method of controlling image-blur correction apparatus, and method of controlling tilt correction apparatus
JP6652300B2 (ja) * 2016-01-14 2020-02-19 キヤノン株式会社 画像処理装置、撮像装置および制御方法
JP2018037944A (ja) * 2016-09-01 2018-03-08 ソニーセミコンダクタソリューションズ株式会社 撮像制御装置、撮像装置および撮像制御方法
TWI672628B (zh) 2016-12-08 2019-09-21 日商摩如富股份有限公司 影像處理裝置、方法以及電腦可讀取的記錄媒體
JP6699902B2 (ja) * 2016-12-27 2020-05-27 株式会社東芝 画像処理装置及び画像処理方法
JP6960238B2 (ja) * 2017-04-28 2021-11-05 キヤノン株式会社 像ブレ補正装置及びその制御方法、プログラム、記憶媒体
CN109040521B (zh) * 2017-06-08 2020-11-13 株式会社理光 图像处理方法、装置、电子设备及计算机可读存储介质
US10884746B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Determining and predicting affiliated registers based on dynamic runtime control flow analysis
US10719328B2 (en) 2017-08-18 2020-07-21 International Business Machines Corporation Determining and predicting derived values used in register-indirect branching
US10534609B2 (en) 2017-08-18 2020-01-14 International Business Machines Corporation Code-specific affiliated register prediction
US10884747B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Prediction of an affiliated register
US10884929B2 (en) 2017-09-19 2021-01-05 International Business Machines Corporation Set table of contents (TOC) register instruction
US10705973B2 (en) 2017-09-19 2020-07-07 International Business Machines Corporation Initializing a data structure for use in predicting table of contents pointer values
US10725918B2 (en) 2017-09-19 2020-07-28 International Business Machines Corporation Table of contents cache entry having a pointer for a range of addresses
US10896030B2 (en) 2017-09-19 2021-01-19 International Business Machines Corporation Code generation relating to providing table of contents pointer values
US11061575B2 (en) 2017-09-19 2021-07-13 International Business Machines Corporation Read-only table of contents register
US10620955B2 (en) 2017-09-19 2020-04-14 International Business Machines Corporation Predicting a table of contents pointer value responsive to branching to a subroutine
US10713050B2 (en) 2017-09-19 2020-07-14 International Business Machines Corporation Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions
US20190297265A1 (en) * 2018-03-21 2019-09-26 Sawah Innovations Inc. User-feedback video stabilization device and method
US10547790B2 (en) * 2018-06-14 2020-01-28 Google Llc Camera area locking
JP2020031264A (ja) 2018-08-20 2020-02-27 ソニーセミコンダクタソリューションズ株式会社 信号処理装置、撮像装置、信号処理方法
KR102581210B1 (ko) * 2019-01-10 2023-09-22 에스케이하이닉스 주식회사 이미지 신호 처리 방법, 이미지 신호 프로세서 및 이미지 센서 칩
US11716537B2 (en) * 2019-03-28 2023-08-01 Sony Group Corporation Image processing device, image processing method, and program
US11711613B2 (en) * 2021-04-27 2023-07-25 Qualcomm Incorporated Image alignment for computational photography
JP7493190B1 (ja) 2023-02-07 2024-05-31 株式会社マーケットヴィジョン 情報処理システム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696848A (en) * 1995-03-09 1997-12-09 Eastman Kodak Company System for creating a high resolution image from a sequence of lower resolution motion images
JP2002236924A (ja) 2001-02-07 2002-08-23 Gen Tec:Kk 2次元連続画像を利用した3次元物体の動き追跡方法及び同装置等
KR100574227B1 (ko) 2003-12-18 2006-04-26 한국전자통신연구원 카메라 움직임을 보상한 객체 움직임 추출 장치 및 그 방법
US7880769B2 (en) * 2004-02-13 2011-02-01 Qualcomm Incorporated Adaptive image stabilization
JP4620607B2 (ja) 2006-02-24 2011-01-26 株式会社モルフォ 画像処理装置
US8054335B2 (en) * 2007-12-20 2011-11-08 Aptina Imaging Corporation Methods and system for digitally stabilizing video captured from rolling shutter cameras
US8279937B2 (en) * 2008-04-22 2012-10-02 Core Logic, Inc. Correcting moving image wavering
JP5215818B2 (ja) * 2008-11-13 2013-06-19 キヤノン株式会社 撮像装置及びその制御方法及びプログラム
JP4915423B2 (ja) 2009-02-19 2012-04-11 ソニー株式会社 画像処理装置、フォーカルプレーン歪み成分算出方法、画像処理プログラム及び記録媒体
JP4915424B2 (ja) * 2009-02-19 2012-04-11 ソニー株式会社 画像処理装置、カメラモーション成分算出方法、画像処理プログラム及び記録媒体
JP5487722B2 (ja) * 2009-05-25 2014-05-07 ソニー株式会社 撮像装置と振れ補正方法
US8508605B2 (en) * 2009-10-14 2013-08-13 Csr Technology Inc. Method and apparatus for image stabilization
JP2011114407A (ja) 2009-11-24 2011-06-09 Sony Corp 画像処理装置、画像処理方法、プログラム及び記録媒体
US8179446B2 (en) * 2010-01-18 2012-05-15 Texas Instruments Incorporated Video stabilization and reduction of rolling shutter distortion
JP5683839B2 (ja) 2010-05-17 2015-03-11 セミコンダクター・コンポーネンツ・インダストリーズ・リミテッド・ライアビリティ・カンパニー 撮像装置の制御回路
JP5249377B2 (ja) 2011-03-22 2013-07-31 キヤノン株式会社 撮像装置、及びその制御方法、プログラム
US8823813B2 (en) * 2011-06-06 2014-09-02 Apple Inc. Correcting rolling shutter using image stabilization
US9460495B2 (en) * 2012-04-06 2016-10-04 Microsoft Technology Licensing, Llc Joint video stabilization and rolling shutter correction on a generic platform

Also Published As

Publication number Publication date
KR101624450B1 (ko) 2016-05-25
WO2014068779A1 (ja) 2014-05-08
EP2849428B1 (en) 2016-10-19
EP2849428A4 (en) 2015-07-15
US20150123990A1 (en) 2015-05-07
JP5906493B2 (ja) 2016-04-20
CN104247395A (zh) 2014-12-24
EP2849428A1 (en) 2015-03-18
CN104247395B (zh) 2017-05-17
KR20140138947A (ko) 2014-12-04
US9639913B2 (en) 2017-05-02
WO2014069632A1 (ja) 2014-05-08

Similar Documents

Publication Publication Date Title
JP5906493B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
JP6170395B2 (ja) 撮像装置およびその制御方法
JP5531194B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP6209002B2 (ja) 撮像装置およびその制御方法
JP5794705B2 (ja) 撮像装置、その制御方法及びプログラム
JP4926920B2 (ja) 防振画像処理装置及び防振画像処理方法
JP5499050B2 (ja) 画像処理装置、撮像装置、及び画像処理方法
JP6513941B2 (ja) 画像処理方法、画像処理装置及びプログラム
JP5424068B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体
JPWO2018066027A1 (ja) 画像処理装置、撮像システム、画像処理方法および画像処理プログラム
JP6980480B2 (ja) 撮像装置および制御方法
CN110692235B (zh) 图像处理装置、图像处理程序及图像处理方法
JP5279453B2 (ja) 画像振れ補正装置、撮像装置及び画像振れ補正方法
JP6604783B2 (ja) 画像処理装置、撮像装置および画像処理プログラム
JP6375131B2 (ja) 撮像装置、画像処理方法及び制御プログラム
JP6320165B2 (ja) 画像処理装置及びその制御方法、並びにプログラム
JP6671975B2 (ja) 画像処理装置、撮像装置、画像処理方法およびコンピュータプログラム
JP2017028583A (ja) 画像処理装置、撮像装置、画像処理方法、画像処理プログラム、および、記憶媒体
JP5401696B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2012124939A (ja) 撮像装置及び撮像装置の制御方法
JP7137433B2 (ja) ブレ補正装置、撮像装置、ブレ補正方法、及びプログラム
JP4286301B2 (ja) 手ぶれ補正装置、手ぶれ補正方法および手ぶれ補正プログラムを記録した記録媒体
JP6355421B2 (ja) 画像処理装置および撮像装置
JP2020086824A (ja) 画像処理装置、画像処理方法、撮像装置およびプログラム
JP2012147202A (ja) 画像処理装置およびその方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160215

R150 Certificate of patent or registration of utility model

Ref document number: 5906493

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350