(57)【要約】【課題】精度の良い動きパラメータを算出する。【解決手段】実施形態に係るパラメータ算出装置は、基準画像から参照画像への動きを表す動きパラメータを算出する。パラメータ算出装置は、対応点取得部と、パラメータ算出部とを備える。対応点取得部は、基準画像の座標と参照画像の座標との組である対応点を取得する。パラメータ算出部は、基準画像の座標を動きパラメータにより射影して得られる参照画像の座標の画素値と、基準画像の画素値との間の誤差に応じた画素値誤差と、対応点の基準画像の座標を動きパラメータにより射影して得られる参照画像の座標と対応点の参照画像の座標との間の距離に応じた位置誤差とを合成した合成誤差を小さくするように、動きパラメータを更新する。【選択図】図２
2016095668.tif 000002
【特許請求の範囲】
【請求項１】
基準画像から参照画像への動きを表す動きパラメータを算出するパラメータ算出装置であって、
前記基準画像の座標と前記参照画像の座標との組である対応点を取得する対応点取得部と、
前記基準画像の座標を前記動きパラメータにより射影して得られる前記参照画像の座標の画素値と、前記基準画像の画素値との間の誤差に応じた画素値誤差と、前記対応点の前記基準画像の座標を前記動きパラメータにより射影して得られる前記参照画像の座標と前記対応点の前記参照画像の座標との間の距離に応じた位置誤差とを合成した合成誤差を小さくするように、前記動きパラメータを更新するパラメータ算出部と、
を備えるパラメータ算出装置。
【請求項２】
前記パラメータ算出部は、
前記基準画像の画素値、前記参照画像の画素値および前記動きパラメータに基づき、画像内における前記画素値誤差の勾配の累積を表す第１累積勾配を算出する第１勾配算出部と、
複数の前記対応点および前記動きパラメータに基づき、画像内における前記位置誤差の勾配の累積を表す第２累積勾配を算出する第２勾配算出部と、
前記第１累積勾配と前記第２累積勾配とを合成した合成勾配に基づき、前記動きパラメータを小さくするような前記動きパラメータの変化量を算出する変化量算出部と、
元の前記動きパラメータに前記変化量を加算して、前記動きパラメータを更新する更新部と、
を有する請求項１に記載のパラメータ算出装置。
【請求項３】
前記パラメータ算出部は、
前記更新部により更新された前記動きパラメータを前記第１勾配算出部および前記第２勾配算出部に与え、前記第１勾配算出部および前記第２勾配算出部に前記第１累積勾配および前記第２累積勾配を新たに算出させ、前記変化量算出部に新たに算出させた前記第１累積勾配および前記第２累積勾配に基づき前記変化量を新たに算出させ、前記更新部に新たに算出させた前記変化量により前記動きパラメータをさらに更新させる反復制御部をさらに有する
請求項２に記載のパラメータ算出装置。
【請求項４】
前記反復制御部は、予め定められた回数、前記更新部に前記動きパラメータを更新させる
請求項３に記載のパラメータ算出装置。
【請求項５】
前記第１勾配算出部は、下記の式（１）を演算して、第１累積勾配∇ｄＩを算出する
請求項２から４の何れか１項に記載のパラメータ算出装置。
【数１】
2016095668.tif 000023
ｘは、平面上における座標（ｘ０，ｙ０）Ｔを表す。
ｐは、動きパラメータ（ｐ０，ｐ１，ｐ２，…，ｐｎ）Ｔを表す。ｎは、１以上の整数である。
Ｗ（ｘ；ｐ）は、ｘをｐで射影した座標を表す。
Ｉｓｒｃ（ｘ）は、前記基準画像の座標ｘの画素値を表す。
Ｉｒｅｆ（ｘ）は、前記参照画像の座標ｘの画素値を表す。
【請求項６】
前記第２勾配算出部は、下記の式（２）を演算して、第２累積勾配∇ｄＷを算出する
請求項５に記載のパラメータ算出装置。
【数２】
2016095668.tif 000024
Ｙｉｎｌｌｉｅｒは、前記対応点である前記基準画像の座標と前記参照画像の座標の組（ｙｓｒｃ，ｙ＾ｒｅｆ）の集合を表す。
ｙｓｒｃは、前記対応点の前記基準画像における座標を表す。
ｙ＾ｒｅｆは、前記対応点の前記基準画像における座標を表す。
【請求項７】
前記変化量算出部は、下記の式（３）を演算して、変化量Δｐを算出する
請求項６に記載のパラメータ算出装置。
【数３】
2016095668.tif 000025
λは、定数であり、
Ｈ−１は、ヘッセ行列Ｈの逆行列を表し、ヘッセ行列Ｈは、下記の式（４）である。
【数４】
2016095668.tif 000026
【請求項８】
前記更新部は、下記の式（５）に基づき、動きパラメータｐを更新する
請求項７に記載のパラメータ算出装置。
【数５】
2016095668.tif 000027
【請求項９】
前記対応点取得部は、
前記基準画像および前記参照画像のそれぞれの特徴点を検出する特徴点検出部と、
前記基準画像のそれぞれの特徴点の特徴量と前記参照画像のそれぞれの特徴点の特徴量とをマッチングさせて、複数の前記対応点を検出する対応点検出部と、
を有する請求項１から８の何れか１項に記載のパラメータ算出装置。
【請求項１０】
前記対応点取得部は、
前記対応点検出部が検出した複数の前記対応点から、誤差が予め定められた閾値より高い前記対応点を除去する除去部をさらに有する
請求項９に記載のパラメータ算出装置。
【請求項１１】
カメラにより撮像された複数の入力画像を記憶する入力画像記憶部と、
前記カメラにより撮像された入力画像のうちの１つをターゲット画像として記憶するターゲット画像記憶部と、
前記ターゲット画像を前記基準画像とし、それぞれの前記入力画像を前記参照画像として、前記ターゲット画像からそれぞれの前記入力画像への動きを表す前記動きパラメータを算出する、請求項１から１０の何れか１項に記載のパラメータ算出装置と、
前記動きパラメータに基づき、複数の前記入力画像を補正する補正部と、
を備える画像補正装置。
【請求項１２】
基準画像から参照画像への動きを表す動きパラメータを算出するパラメータ算出方法であって、
前記基準画像の座標と前記参照画像の座標との組である対応点を取得する対応点取得ステップと、
前記基準画像の座標を前記動きパラメータにより射影して得られる前記参照画像の座標の画素値と、前記基準画像の画素値との間の誤差に応じた画素値誤差と、前記対応点の前記基準画像の座標を前記動きパラメータにより射影して得られる前記参照画像の座標と前記対応点の前記参照画像の座標との間の距離に応じた位置誤差とを合成した合成誤差を小さくするように、前記動きパラメータを更新するパラメータ算出ステップと、
を実行するパラメータ算出方法。
【請求項１３】
コンピュータを、基準画像から参照画像への動きを表す動きパラメータを算出するパラメータ算出装置として機能させるためのプログラムであって、
前記コンピュータを、
前記基準画像の座標と前記参照画像の座標との組である対応点を取得する対応点取得部と、
前記基準画像の座標を前記動きパラメータにより射影して得られる前記参照画像の座標の画素値と、前記基準画像の画素値との間の誤差に応じた画素値誤差と、前記対応点の前記基準画像の座標を前記動きパラメータにより射影して得られる前記参照画像の座標と前記対応点の前記参照画像の座標との間の距離に応じた位置誤差とを合成した合成誤差を小さくするように、前記動きパラメータを更新するパラメータ算出部と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、パラメータ算出装置、画像補正装置、パラメータ算出方法およびプログラムに関する。
【背景技術】
【０００２】
３次元の物体を２次元平面に射影するパラメータを用いて、画像間の動きを表す動きパラメータが知られている。このような動きパラメータは、平行移動量を示す動きベクトルよりも複雑な動きを精度良く表すことができる。
【０００３】
動きパラメータは、例えば、画像の特徴量に基づき画像間の対応点を検出し、検出した対応点の動きに基づき算出することができる。また、動きパラメータは、例えばＬｕｃａｓ−Ｋａｎａｄｅ法等の勾配法の誤差関数を最小化することにより算出することもできる。
【０００４】
しかしながら、対応点に基づき動きパラメータを算出した場合、外乱に対してロバストであるが、対応点以外の箇所での動きを反映することができずノイズに弱かった。また、勾配法を用いて動きパラメータを算出した場合、画素毎に動きを表すことができるのでノイズに強いが、外乱に対してロバストではなかった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４７７４８５７号公報
【非特許文献】
【０００６】
【非特許文献１】Lowe,D.G.,  “Distinctive  Image  Features  from  Scale-Invariant  Keypoints”,  International  Journal  of  Computer  Vision,  60,  2,  pp.  91-110,  2004
【非特許文献２】Herbert  Bay,  Andreas  Ess,  Tinne  Tuytelaars,  Luc  Van  Gool,  “SURF:  Speeded  Up  Robust  Features”,  Computer  Vision  and  Image  Understanding  (CVIU),  Vol.  110,  No.  3,  pp.  346-359,  2008
【非特許文献３】Pablo  F.  Alcantarilla,  Adrien  Bartoli  and  Andrew  J.  Davison,  “KAZE  Features”,  In  European  Conference  on  Computer  Vision  (ECCV),  Fiorenze,  Italy,  October  2012
【非特許文献４】Pablo  F.  Alcantarilla,  Jesus  Nuevo  and  Adrien  Bartoli,  “Fast  Explicit  Diffusion  for  Accelerated  Features  in  Nonlinear  Scale  Spaces.”,  In  British  Machine  Vision  Conference  (BMVC),  Bristol,  UK,  September  2013
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、精度の良い動きパラメータを算出することにある。
【課題を解決するための手段】
【０００８】
実施形態に係るパラメータ算出装置は、基準画像から参照画像への動きを表す動きパラメータを算出する。前記パラメータ算出装置は、対応点取得部と、パラメータ算出部とを備える。前記対応点取得部は、前記基準画像の座標と前記参照画像の座標との組である対応点を取得する。前記パラメータ算出部は、前記基準画像の座標を前記動きパラメータにより射影して得られる前記参照画像の座標の画素値と、前記基準画像の画素値との間の誤差に応じた画素値誤差と、前記対応点の前記基準画像の座標を前記動きパラメータにより射影して得られる前記参照画像の座標と前記対応点の前記参照画像の座標との間の距離に応じた位置誤差とを合成した合成誤差を小さくするように、前記動きパラメータを更新する。
【図面の簡単な説明】
【０００９】
【図１】動きパラメータを説明するための図。
【図２】実施形態に係るパラメータ算出装置の構成を示す図。
【図３】対応点取得部の構成を示す図。
【図４】除去部の処理の手順を示すフローチャート。
【図５】パラメータ算出部の処理を説明するための図。
【図６】パラメータ算出部の構成を示す図。
【図７】パラメータ算出装置の処理手順を示すフローチャート。
【図８】実施形態に係るカメラシステムの構成を示す図。
【図９】実施形態に係るパラメータ算出装置のハードウェア構成を示す図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら実施形態に係る動きパラメータを算出するパラメータ算出装置について詳細に説明する。本実施形態に係るパラメータ算出装置は、精度の良い動きパラメータを算出することを目的とする。例えば、本実施形態に係るパラメータ算出装置は、ノイズに強く、例えば照明変動等の外乱に対してロバストな動きパラメータを算出することを目的とする。
【００１１】
図１は、動きパラメータを説明するための図である。パラメータ算出装置１０は、基準画像から参照画像への動きを表す動きパラメータｐを算出する。また、動きパラメータｐは、図１に示すように、基準画像が配置された平面（元平面）の座標に対応する、参照画像が配置された平面（目的平面）の座標を示す射影を表すベクトルである。
【００１２】
動きパラメータｐは、（ｐ０，ｐ１，ｐ２，…，ｐｎ）Ｔと表される。ｎは、１以上の整数である。行列の右肩のＴは、転置行列であることを表す。
【００１３】
Ｗ（ｘ；ｐ）は、座標ｘを動きパラメータｐで射影した座標を表す。ｘは、平面上における座標（ｘ１，ｙ１）Ｔを表す。
【００１４】
例えば、座標ｘ（＝（ｘ１，ｙ１）Ｔ）を、アフィン変換を用いて表された動きパラメータｐ（＝（ｐ０，ｐ１，ｐ２，ｐ３，ｐ４，ｐ５））で射影した座標Ｗ（ｘ；ｐ）は、下記の式（１１）により表される。
【数１】
2016095668.tif 000003
【００１５】
なお、動きパラメータｐは、アフィン変換に限らず、ホモグラフィーまたは平行移動等を用いて表されてもよい。
【００１６】
また、動きパラメータｐは、画像の小領域毎（例えば画素毎）に動きを表すオプティカルフローである。また、Ｉｓｒｃ（ｘ）は、座標ｘの基準画像の画素値を表す。Ｉｒｅｆ（ｘ）は、座標ｘの参照画像の画素値を表す。画素値は、輝度のようなスカラー値であっても、カラー画像の色（ＲＧＢ，ＹＵＶ等）のようなベクトルであってもよい。
【００１７】
図２は、実施形態に係るパラメータ算出装置１０の構成を示す図である。パラメータ算出装置１０は、基準画像入力部２１と、参照画像入力部２２と、対応点取得部２３と、パラメータ算出部２４と、出力部２５とを備える。
【００１８】
基準画像入力部２１は、基準画像を外部から入力する。基準画像入力部２１は、入力した基準画像を対応点取得部２３およびパラメータ算出部２４に与える。
【００１９】
参照画像入力部２２は、参照画像を外部から入力する。参照画像入力部２２は、入力した参照画像を対応点取得部２３およびパラメータ算出部２４に与える。
【００２０】
対応点取得部２３は、複数の対応点を取得する。対応点は、基準画像の座標と参照画像の座標との組である。対応点は、一例として、同一被写体の位置である可能性の高い基準画像の座標と参照画像の座標との組である。対応点取得部２３は、一例として、基準画像および参照画像のそれぞれの特徴点を検出し、基準画像と参照画像との間で特徴点をマッチングして、対応点を検出する。また、対応点取得部２３は、画像のコーナエッジ等をマッチングして、対応点を検出してもよい。また、対応点取得部２３は、ユーザにより手動で指定された基準画像の座標と参照画像の座標とを、対応点として取得してもよい。
【００２１】
対応点取得部２３は、取得した複数の対応点の集合Ｙｉｎｌｌｉｅｒをパラメータ算出部２４に与える。なお、対応点取得部２３の構成の一例については、図３および図４を参照してさらに説明する。
【００２２】
パラメータ算出部２４は、基準画像の画素値Ｉｓｒｃ（ｘ）、参照画像の画素値Ｉｒｅｆ（ｘ）および対応点の集合Ｙｉｎｌｌｉｅｒに基づき、基準画像から参照画像への動きを、基準画像の小領域毎（例えば画素毎）に表す動きパラメータｐを算出する。
【００２３】
より具体的には、パラメータ算出部２４は、まず、動きパラメータｐの初期値を取得する。動きパラメータｐの初期値は、予め定められた固定値（例えば０）であってもよいし、過去の画像の動きパラメータｐに基づき推定された値であってもよいし、周囲の画像の動きパラメータｐに基づき推定された値であってもよい。
【００２４】
そして、パラメータ算出部２４は、画素値誤差と位置誤差とを合成した合成誤差を小さくするように、動きパラメータｐを更新する。ここで、画素値誤差は、基準画像の座標を動きパラメータｐにより射影して得られる参照画像の座標の画素値と、基準画像の画素値との間の画素の差分値に応じた誤差である。また、位置誤差は、対応点の基準画像の座標を動きパラメータｐにより射影して得られる参照画像の座標と、対応点の参照画像の座標との間の距離に応じた誤差である。
【００２５】
パラメータ算出部２４は、一例として、合成誤差を反復法によって最小化するように動きパラメータｐを更新することにより、動きパラメータｐを算出する。なお、パラメータ算出部２４の処理の内容および構成については、図５および図６を参照してさらに説明する。
【００２６】
出力部２５は、パラメータ算出部２４により算出された動きパラメータｐを外部へと出力する。
【００２７】
図３は、対応点取得部２３の構成を示す図である。対応点取得部２３は、一例として、特徴点検出部３１と、対応点検出部３２と、除去部３３とを有する。
【００２８】
特徴点検出部３１は、基準画像および参照画像のそれぞれの特徴点を検出する。より詳しくは、特徴点検出部３１は、基準画像の画素値Ｉｓｒｃ（ｘ）に基づき所定のアルゴリズムにより基準画像の特徴点の座標および特徴量を検出する。また、特徴点検出部３１は、参照画像の画素値Ｉｒｅｆ（ｘ）に基づき、同一のアルゴリズムにより参照画像の特徴点の座標および特徴量を検出する。
【００２９】
特徴点を検出するためのアルゴリズムは、例えば、ＳＩＦＴ（非特許文献１）、ＳＵＲＦ（非特許文献２）、ＫＡＺＥ（非特許文献３）およびＡＫＡＺＥ（非特許文献４）等がある。これらのアルゴリズムにより検出された特徴点は、照明不変性、スケール不変性および回転不変性等の様々な変動要因に対するロバスト性を有している。
【００３０】
ここで、基準画像から検出された特徴点の集合をＹｓｒｃとする。参照画像から検出された特徴点の集合をＹｒｅｆとする。
【００３１】
また、基準画像から検出された特徴点の座標をｙｓｒｃ∈Ｙｓｒｃとする。参照画像から検出された特徴点の座標をｙｒｅｆ∈Ｙｒｅｆとする。
【００３２】
また、基準画像から検出された特徴点の特徴量をｆ（ｙｓｒｃ）とする。また、参照画像から検出された特徴点の特徴量をｆ（ｙｒｅｆ）とする。特徴量ｆ（ｙｓｒｃ）およびｆ（ｙｒｅｆ）は、ベクトル形式で表され、次数は特徴点を抽出するためのアルゴリズムによって異なる。
【００３３】
対応点検出部３２は、基準画像のそれぞれの特徴点の特徴量と参照画像のそれぞれの特徴点の特徴量とをマッチングさせて、特徴量がマッチングした特徴点の組を対応点として検出する。より詳しくは、対応点検出部３２は、基準画像のそれぞれの特徴点に、特徴量が最も近い参照画像の特徴点を対応付け、対応付けた基準画像の特徴点と参照画像の特徴点との組の集合を生成する。
【００３４】
対応点検出部３２は、一例として、基準画像のそれぞれの特徴点に対して、特徴量のＬ２ノルムが最も近くなる特徴量を有する参照画像の特徴点を検索する。具体的には、対応点検出部３２は、下記の式（１２）の演算を実行する。
【数２】
2016095668.tif 000004
【００３５】
ここで、下記の式（１３）は、Ｅを最小化するｘを探す関数である。
【数３】
2016095668.tif 000005
【００３６】
従って、対応点検出部３２は、式（１２）を演算することにより、基準画像のそれぞれの特徴点の座標ｙｓｒｃについて、参照画像の特徴点の集合Ｙｒｅｆから、ベクトルの内積を最小化する１つの特徴点の座標ｙ＾ｒｅｆを検出することができる。なお、図および式において文字の上に記載しているハットマーク「＾」は、文章中では文字の右肩に記載する。
【００３７】
ここで、検出された対応点（基準画像の特徴点の座標ｙｓｒｃと、特徴量が最も近い参照画像の特徴点の座標ｙ＾ｒｅｆとの組（ｙｓｒｃ，ｙ＾ｒｅｆ））の集合を下記の式（１４）に示すように、Ｙ＾と表す。
【数４】
2016095668.tif 000006
【００３８】
除去部３３は、対応点検出部３２により検出された複数の対応点（対応点の集合Ｙ＾）から、誤差が予め定められた閾値Ｔより大きい対応点（外れ値）を除去する。除去部３３は、一例として、ＲＡＮＳＡＣ（Random  sample  consensus）と呼ばれるアルゴリズムを用いて誤差の大きい対応点（外れ値）を除去する。なお、ＲＡＮＳＡＣによる対応点の除去処理についての詳細は図４のフローチャートでさらに説明する。
【００３９】
このような除去部３３は、同一の被写体であることの信頼性の高い対応点を集合Ｙｉｎｌｌｉｅｒに含めることができる。そして、除去部３３は、対応点の集合Ｙｉｎｌｌｉｅｒを後段へと出力する。
【００４０】
なお、対応点取得部２３は、除去部３３を有さずに、対応点検出部３２により検出された対応点の集合Ｙ＾をそのままＹｉｎｌｌｉｅｒとして後段へと出力する構成であってもよい。これにより、対応点取得部２３は、演算量を小さくすることができる。
【００４１】
図４は、除去部３３の処理の手順を示すフローチャートである。除去部３３は、図４に示すフローに従ってＲＡＮＳＡＣによる外れ値の除去処理を実行する。
【００４２】
除去部３３は、予め定められた一定回数、ステップＳ１２からステップＳ１６の処理を繰り返す（ステップＳ１１とステップＳ１７との間のループ）。ループ処理内においては、まず、ステップＳ１２において、除去部３３は、対応点の集合Ｙ＾から、無作為にＭ個の対応点を抽出することにより、集合ＹＭを生成する。なお、Ｍは、集合Ｙ＾に含まれる対応点の個数よりも小さい整数である。
【００４３】
続いて、ステップＳ１３において、除去部３３は、下記の式（１５）の解を最小二乗法で算出する。
【数５】
2016095668.tif 000007
【００４４】
式（１５）の“Ｗ（ｙｓｒｃ；ｐ）−ｙ＾ｒｅｆ”は、対応点の基準画像の座標ｙｓｒｃを動きパラメータｐにより射影して得られる参照画像の座標Ｗ（ｙｓｒｃ；ｐ）から、対応点の参照画像の座標ｙ＾ｒｅｆへの位置ずれを表すベクトルを表す。
【００４５】
また、下記の式（１６）は、ベクトルのＬ２ノルムを表す。
【数６】
2016095668.tif 000008
【００４６】
すなわち、除去部３３は、式（１５）を演算することにより、位置ずれベクトルのＬ２ノルムの二乗値を全ての対応点について累積した値を最小化するような動きパラメータｐ＾を最小二乗法で算出する。なお、式（１６）は、Ｌ２ノルムに代えて、ベクトルの距離を表す他のノルムであってもよい。
【００４７】
続いて、ステップＳ１４において、除去部３３は、集合Ｙ＾のうち、下記の式（１７）を満たす対応点の個数Ｅをカウントする。
【数７】
2016095668.tif 000009
【００４８】
すなわち、除去部３３は、対応点の基準画像の座標ｙｓｒｃを動きパラメータｐ＾により射影して得られる参照画像の座標Ｗ（ｙｓｒｃ；ｐ）から、対応点の参照画像の座標ｙ＾ｒｅｆまでの誤差ベクトルのＬ２ノルムが、閾値Ｔより小さい対応点を検出する。そして、除去部３３は、検出した対応点の個数Ｅをカウントする。なお、閾値Ｔは、例えば外部から予め設定される。
【００４９】
続いて、ステップＳ１５において、除去部３３は、算出した個数Ｅが最大であるか否かを判断する。例えば、除去部３３は、ステップＳ１４で算出した個数Ｅが、保持している最大の個数Ｅより大きいか否かを判断する。
【００５０】
個数Ｅが最大である場合（ステップＳ１５のＹｅｓ）、除去部３３は、ステップＳ１６において、ステップＳ１３で算出した動きパラメータｐ＾、および、ステップＳ１４で算出した個数Ｅを保持する。個数Ｅが最大でない場合（ステップＳ１５のＮｏ）またはステップＳ１６の処理を終了した場合、除去部３３は、処理をステップＳ１２に戻す（ステップＳ１７）。
【００５１】
除去部３３は、ステップＳ１１からステップＳ１７のループ処理を一定回数終了すると、ループを抜けて処理をステップＳ１８に進める。
【００５２】
ステップＳ１８において、除去部３３は、集合Ｙ＾のうち、下記の式（１８）を満たす対応点を抽出することにより、正常値の対応点の集合Ｙｉｎｌｌｉｅｒを生成する。ここで、ｐ＾は、ステップＳ１６で保持されている、個数Ｅが最大となったときの動きパラメータである。
【数８】
2016095668.tif 000010
【００５３】
以上のように処理をすることにより、除去部３３は、誤差が大きい対応点をロバストに推定し、集合Ｙ＾から誤差の大きい対応点を除いた集合Ｙｉｎｌｌｉｅｒを生成することができる。
【００５４】
図５は、パラメータ算出部２４の処理を説明するための図である。パラメータ算出部２４は、画素値誤差と位置誤差とを合成した合成誤差を小さくするように、動きパラメータｐを更新する。
【００５５】
より具体的には、パラメータ算出部２４は、下記の式（３１）に示される合成誤差を表す関数Ｅ（ｐ）を小さくするように動きパラメータｐを更新する。
【数９】
2016095668.tif 000011
【００５６】
式（３１）の右辺の第１項は、画素値誤差を表す関数である。画素値誤差は、画素差分値（Ｉｒｅｆ（Ｗ（ｘ；ｐ））−Ｉｓｒｃ（ｘ））の２乗を、基準画像の画像全体（基準画像の全ての画素）について累積する関数である。なお、画素差分値は、基準画像の座標を動きパラメータｐにより射影して得られる参照画像の座標の画素値Ｉｒｅｆ（Ｗ（ｘ；ｐ））と、基準画像の画素値Ｉｓｒｃ（ｘ）との差である。
【００５７】
また、式（３１）の右辺の第２項は、位置誤差に定数λを乗じた関数である。位置誤差は、位置ずれベクトル（（Ｗ（ｙｓｒｃ；ｐ））−ｙ＾ｒｅｆ）のノルムの２乗を、基準画像の画像全体（全ての対応点）について累積する関数である。ノルムは、本実施形態においては、Ｌ２ノルムであるが、ベクトルの距離を表すものであれば他のノルムであってもよい。位置ずれベクトルは、基準画像の座標を動きパラメータｐにより射影して得られる参照画像の座標（Ｗ（ｙｓｒｃ；ｐ））から、基準画像の座標（Ｉｓｒｃ（ｘ））までのベクトルである。
【００５８】
定数λは、外部から予め設定される値であり、画素値誤差と、位置誤差とのバランスを取るための値である。
【００５９】
ここで、式（３１）に示される合成誤差を表す関数Ｅ（ｐ）を小さくするような動きパラメータｐを算出するためには、関数Ｅ（ｐ）を減少させるような動きパラメータｐの変化量Δｐを算出して、元の動きパラメータｐに加算すればよい。
【００６０】
そこで、式（３１）のｐに、変化量Δｐを加算すると、下記の式（３２）に示す式となる。
【数１０】
2016095668.tif 000012
【００６１】
式（３２）をテーラー展開すると、下記の式（３３）に変形される。
【数１１】
2016095668.tif 000013
【００６２】
Ｅ（ｐ＋Δｐ）を減少させるには、Δｐで偏微分した式が０となる方程式を作成して、Δｐについて解けばよい。式（３３）の右辺をΔｐで偏微分した式を０とした方程式は、下記の式（３４）となる。
【数１２】
2016095668.tif 000014
【００６３】
なお、式（３４）のＨ−１は、ヘッセ行列Ｈの逆行列を表す。ヘッセ行列Ｈは、下記の式（３５）となる。
【数１３】
2016095668.tif 000015
【００６４】
以上から、パラメータ算出部２４は、式（３４）に示す変化量Δｐを算出し、算出した変化量Δｐを元の動きパラメータｐに加算することにより、合成誤差Ｅ（ｐ）を小さくするような動きパラメータｐを算出することができる。さらに、パラメータ算出部２４は、変化量Δｐの算出および動きパラメータｐの更新処理を反復することにより、合成誤差Ｅ（ｐ）をより小さくすることができる。
【００６５】
なお、式（３１）の右辺の第１項（画素値誤差を表す関数）は、Ｌｕｃａｓ−Ｋａｎａｄｅ法で用いられる誤差関数と同様である。また、式（３１）の右辺の第２項（位置誤差を表す関数）は、対応点の誤差を表す関数である。Ｌｕｃａｓ−Ｋａｎａｄｅ法により算出された動きパラメータｐは、ノイズに対して強い。また、対応点に基づき算出した動きパラメータｐは、例えば照明変動等の外乱に対してロバストである。従って、式（３１）に示す合成誤差を小さくするような動きパラメータｐを算出することにより、ノイズに強く、例えば照明変動等の外乱に対してロバストな動きパラメータｐを算出することができる。
【００６６】
図６は、パラメータ算出部２４の構成を示す図である。パラメータ算出部２４は、パラメータ記憶部４１と、第１勾配算出部４２と、第２勾配算出部４３と、変化量算出部４４と、更新部４５と、反復制御部４６とを有する。
【００６７】
パラメータ記憶部４１は、動きパラメータｐを記憶する。なお、処理開始時において、パラメータ記憶部４１は、動きパラメータｐの初期値が格納される。
【００６８】
第１勾配算出部４２は、基準画像の画素値Ｉｓｒｃ（ｘ）、参照画像の画素値Ｉｒｅｆ（ｘ）、およびパラメータ記憶部４１に記憶された動きパラメータｐを取得する。そして、第１勾配算出部４２は、基準画像の画素値Ｉｓｒｃ（ｘ）、参照画像の画素値Ｉｒｅｆ（ｘ）および動きパラメータｐに基づき、画像内における画素差分値の勾配の累積を表す第１累積勾配∇ｄＩを算出する。
【００６９】
より具体的には、第１勾配算出部４２は、下記の式（４１）を演算して、第１累積勾配∇ｄＩを算出する。
【数１４】
2016095668.tif 000016
【００７０】
第２勾配算出部４３は、複数の対応点の集合Ｙｉｎｌｌｉｅｒ、および、パラメータ記憶部４１に記憶された動きパラメータｐを取得する。そして、第２勾配算出部４３は、複数の対応点の集合Ｙｉｎｌｌｉｅｒおよび動きパラメータｐに基づき、画像内における位置誤差の勾配の累積を表す第２累積勾配∇ｄＷを算出する。
【００７１】
より具体的には、第２勾配算出部４３は、下記の式（４２）を演算して、第２累積勾配∇ｄＷを算出する。
【数１５】
2016095668.tif 000017
【００７２】
変化量算出部４４は、第１勾配算出部４２から第１累積勾配∇ｄＩを取得し、第２勾配算出部４３から第２累積勾配∇ｄＷを取得する。そして、変化量算出部４４は、第１累積勾配∇ｄＩと第２累積勾配∇ｄＷとを所定の割合で合成した合成勾配に基づき、動きパラメータｐを小さくするような変化量Δｐを算出する。
【００７３】
より具体的には、変化量算出部４４は、下記の式（４３）を演算して、変化量Δｐを算出する。
【数１６】
2016095668.tif 000018
【００７４】
なお、式（４３）のＨ−１は、式（３５）に示したヘッセ行列Ｈの逆行列を表す。
【００７５】
更新部４５は、変化量算出部４４から変化量Δｐを取得し、パラメータ記憶部４１から元の動きパラメータｐを読み出す。そして、更新部４５は、元の動きパラメータｐに変化量Δｐを加算して、パラメータ記憶部４１に記憶された動きパラメータｐを更新する。
【００７６】
より具体的には、更新部４５は、下記の式（４４）を演算して、動きパラメータｐを更新する。
【数１７】
2016095668.tif 000019
【００７７】
なお、Ｆ←ｆは、メモリに格納されたＦにｆを代入する演算を示す。
【００７８】
反復制御部４６は、パラメータ記憶部４１に記憶されている動きパラメータｐを、第１勾配算出部４２および第２勾配算出部４３に与える。反復制御部４６は、第１勾配算出部４２および第２勾配算出部４３に第１累積勾配∇ｄＩおよび第２累積勾配∇ｄＷを新たに算出させ、変化量算出部４４に新たに算出させた第１累積勾配∇ｄＩおよび第２累積勾配∇ｄＷに基づき変化量Δｐを新たに算出させ、更新部４５に新たに算出させた変化量Δｐにより動きパラメータｐをさらに更新させる。
【００７９】
そして、反復制御部４６は、予め定められた回数、更新部４５に動きパラメータｐを更新させ、予め定められた回数更新した後の動きパラメータｐを外部へと出力する。予め定められた回数は、設定された固定値であってもよいし、動きパラメータｐが収束したときの回数であってもよい。
【００８０】
図７は、パラメータ算出装置１０の処理手順を示すフローチャートである。パラメータ算出装置１０は、図７に示すフローチャートに従って動きパラメータｐを生成する。
【００８１】
まず、ステップＳ２１において、基準画像入力部２１は、基準画像Ｉｓｒｃ（ｘ）を入力する。また、参照画像入力部２２は、参照画像Ｉｒｅｆ（ｘ）を入力する。
【００８２】
続いて、ステップＳ２２において、対応点取得部２３は、基準画像の特徴点ｙｓｒｃを検出する。続いて、ステップＳ２３において、対応点取得部２３は、参照画像の特徴点ｙｒｅｆを検出する。
【００８３】
続いて、ステップＳ２４において、対応点取得部２３は、基準画像のそれぞれの特徴点の特徴量と参照画像のそれぞれの特徴点の特徴量とをマッチングさせて、複数の対応点の集合Ｙ＾を検出する。
【００８４】
続いて、ステップＳ２５において、対応点取得部２３は、対応点の集合Ｙ＾から、誤差が予め定められた閾値より大きい対応点（外れ値）を除去し、正常値の対応点の集合Ｙｉｎｌｌｉｅｒを生成する。なお、対応点取得部２３は、ステップＳ２５の外れ値の除去をせずに、ステップＳ２４で検出された対応点の集合Ｙ＾をそのままＹｉｎｌｌｉｅｒとして後段へと出力してもよい。
【００８５】
続いて、パラメータ算出部２４は、予め定められた回数、ステップＳ２７からステップＳ３０を繰り返して処理する（ステップＳ２６とステップＳ３１との間のループ）。ループ内では、まず、ステップＳ２７において、パラメータ算出部２４は、第１累積勾配∇ｄＩを算出する。続いて、ステップＳ２８において、パラメータ算出部２４は、第２累積勾配∇ｄＷを算出する。
【００８６】
続いて、ステップＳ２９において、パラメータ算出部２４は、第１累積勾配∇ｄＩおよび第２累積勾配∇ｄＷに基づき、変化量Δｐを算出する。そして、ステップＳ３０において、パラメータ算出部２４は、動きパラメータｐに変化量Δｐを加算して、動きパラメータｐを更新する。
【００８７】
パラメータ算出部２４は、ステップＳ２７からステップＳ３０までの処理を予め定められた回数繰り返すと、ループを抜ける（ステップＳ３１）。そして、ステップＳ３２において、出力部２５は、予め定められた回数更新を繰り返した後の動きパラメータｐを外部へと出力し、処理を終了する。
【００８８】
以上のように、本実施形態に係るパラメータ算出装置１０は、Ｌｕｃａｓ−Ｋａｎａｄｅ法で用いられる誤差（画素値誤差）と、対応点の誤差（位置誤差）とを合成した合成誤差を小さくするように動きパラメータｐを反復法で更新する。これにより、本実施形態に係るパラメータ算出装置１０によれば、ノイズに対して強く、さらに、照明変動等の外乱に対してロバストな、精度の良い動きパラメータｐを算出することができる。
【００８９】
図８は、実施形態に係るカメラシステム５０の構成を示す図である。カメラシステム５０は、シーケンシャルに生成される複数の画像を動きパラメータｐにより補正して、例えば手振れ等による変動を除去した画像を生成することを目的とする。
【００９０】
カメラシステム５０は、カメラ５１と、画像補正装置５２とを備える。カメラ５１は、一定時間間隔毎に被写体を撮像して、複数の画像をシーケンシャルに出力する。カメラ５１は、一例として、ユーザ等により手で保持されて用いられる。
【００９１】
画像補正装置５２は、カメラ５１からシーケンシャルに出力された複数の画像を入力し、入力した画像に対して補正をして出力する。画像補正装置５２は、入力画像記憶部６１と、ターゲット画像記憶部６２と、動きパラメータ算出部６３と、補正部６４と、加算部６５と、蓄積画像記憶部６６と、画像出力部６７とを有する。
【００９２】
入力画像記憶部６１は、カメラ５１により撮像された複数の入力画像Ｉｉｎ（ｘ）を入力して記憶する。ターゲット画像記憶部６２は、カメラ５１により撮像された入力画像のうちの１つをターゲット画像Ｉｔａｒ（ｘ）として記憶する。ターゲット画像記憶部６２は、一例として、入力画像のうちの先頭の画像をターゲット画像として記憶する。
【００９３】
動きパラメータ算出部６３は、図１から図７を参照して説明したパラメータ算出装置１０と同一の機能および構成である。動きパラメータ算出部６３は、ターゲット画像記憶部６２に記憶されたターゲット画像を基準画像として取得する。また、動きパラメータ算出部６３は、入力画像記憶部６１に記憶されているそれぞれの入力画像を参照画像として取得する。そして、動きパラメータ算出部６３は、ターゲット画像からそれぞれの入力画像への動きを表す動きパラメータｐを算出する。
【００９４】
補正部６４は、動きパラメータ算出部６３により算出された動きパラメータｐに基づき、複数の入力画像を補正する。より具体的には、補正部６４は、入力画像の各画素の座標を、ターゲット画像の各画素の座標に位置合わせをする。
【００９５】
ここで、ターゲット画像が配置された元平面の座標ｘに対応する、入力画像が配置された目的平面の座標ｘ´は、動きパラメータｐに基づき下記の式（５１）により定まる。
【数１８】
2016095668.tif 000020
【００９６】
従って、補正部６４は、座標ｘ´＝Ｗ（ｘ；ｐ）の入力画像の画素値を、下記の式（５２）を演算して取得する。
【数１９】
2016095668.tif 000021
【００９７】
なお、入力画像は、離散的な画素位置にしか値を含まないが、目的平面上の座標は連続値を取る。従って、補正部６４は、線形補間等による補間により、元平面上の入力画像の画素値を生成してもよい。これにより、補正部６４は、入力画像の各画素の座標を、ターゲット画像の各画素の座標に位置合わせすることができる。
【００９８】
加算部６５は、補正部６４により位置合わせされた入力画像Ｉｉｎ（Ｗ（ｘ；ｐ））を、蓄積画像記憶部６６に記憶された蓄積画像Ｉｂｕｆ（ｘ）に加算する。より具体的には、加算部６５は、下記の式（５３）の演算を実行する。なお、蓄積画像記憶部６６は、画素値が全て０の蓄積画像Ｉｂｕｆ（ｘ）を、初期値として記憶する。
【数２０】
2016095668.tif 000022
【００９９】
画像出力部６７は、加算部６５が予め定められた数の入力画像Ｉｉｎ（Ｗ（ｘ；ｐ））を蓄積画像Ｉｂｕｆに加算した後、蓄積画像Ｉｂｕｆを出力する。この場合において、蓄積画像記憶部６６は、入力画像の加算回数により、画素値を除算してもよい。
【０１００】
以上のようなカメラシステム５０は、シーケンシャルに生成される複数の画像を動きパラメータｐにより補正して、例えば手振れ等による変動を除去した画像を生成することができる。
【０１０１】
図９は、パラメータ算出装置１０のハードウェア構成を示す図である。なお、画像補正装置５２のハードウェア構成もパラメータ算出装置１０と同様である。
【０１０２】
パラメータ算出装置１０は、ＣＰＵ（Central  Processing  Unit）２０１と、操作部２０２と、表示部２０３と、ＲＯＭ（Read  Only  Memory）２０４と、ＲＡＭ（Random  Access  Memory）２０５と、記憶部２０６とを備える。これらの各部は、バス２１０により接続される。
【０１０３】
ＣＰＵ２０１は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。ＣＰＵ２０１は、ＲＡＭ２０５の所定領域を作業領域としてＲＯＭ２０４または記憶部２０６に予め記憶された各種プログラムとの協働により各種処理を実行する。
【０１０４】
操作部２０２は、マウスやキーボード等の入力デバイスであって、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をＣＰＵ２０１に出力する。表示部２０３は、ＬＣＤ（Liquid  Crystal  Display）等の表示装置である。表示部２０３は、ＣＰＵ２０１からの表示信号に基づいて、各種情報を表示する。
【０１０５】
ＲＯＭ２０４は、パラメータ算出装置１０の制御に用いられるプログラムおよび各種設定情報等を書き換え不可能に記憶する。ＲＡＭ２０５は、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等の揮発性の記憶媒体である。ＲＡＭ２０５は、ＣＰＵ２０１の作業領域として機能する。
【０１０６】
記憶部２０６は、フラッシュメモリ等の半導体による記憶媒体、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶部２０６は、プログラムおよび各種設定情報等を記憶する。また、記憶部２０６は、例えば、操作部２０２および通信装置等を介して取得されたデータを記憶する。
【０１０７】
なお、パラメータ算出装置１０は、このようなハードウェア構成に限らず、基準画像入力部２１、参照画像入力部２２、対応点取得部２３、パラメータ算出部２４および出力部２５の一部または全部をハードウェア回路（例えば半導体集積回路）により実装する構成であってもよい。また、画像補正装置５２も、このようなハードウェア構成に限らず、入力画像記憶部６１、ターゲット画像記憶部６２、動きパラメータ算出部６３、補正部６４、加算部６５、蓄積画像記憶部６６および画像出力部６７の一部または全部をハードウェア回路（例えば半導体集積回路）により実装する構成であってもよい。
【０１０８】
また、本実施形態に係るパラメータ算出装置１０および画像補正装置５２で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１０９】
また、本実施形態に係るパラメータ算出装置１０および画像補正装置５２で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態に係るパラメータ算出装置１０および画像補正装置５２で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態に係るパラメータ算出装置１０および画像補正装置５２で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１１０】
本実施形態に係るパラメータ算出装置１０で実行されるプログラムは、上述したパラメータ算出装置１０の各部（基準画像入力部２１、参照画像入力部２２、対応点取得部２３、パラメータ算出部２４および出力部２５）を含むモジュール構成となっており、ＣＰＵ２０１（マイクロプロセッサ等の電気回路）が記憶媒体等からプログラムを読み出して実行することにより上記各部がＲＡＭ２０５上にロードされ、パラメータ算出装置１０（基準画像入力部２１、参照画像入力部２２、対応点取得部２３、パラメータ算出部２４および出力部２５）がＲＡＭ２０５上に生成されるようになっている。
【０１１１】
また、本実施形態の画像補正装置５２で実行されるプログラムは、上述した画像補正装置５２の各部（入力画像記憶部６１、ターゲット画像記憶部６２、動きパラメータ算出部６３、補正部６４、加算部６５、蓄積画像記憶部６６および画像出力部６７）を含むモジュール構成となっており、ＣＰＵ２０１（マイクロプロセッサ等の電気回路）が記憶媒体等からプログラムを読み出して実行することにより上記各部がＲＡＭ２０５上にロードされ、画像補正装置５２（入力画像記憶部６１、ターゲット画像記憶部６２、動きパラメータ算出部６３、補正部６４、加算部６５、蓄積画像記憶部６６および画像出力部６７）がＲＡＭ２０５上に生成されるようになっている。
【０１１２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１３】
１０  パラメータ算出装置
２１  基準画像入力部
２２  参照画像入力部
２３  対応点取得部
２４  パラメータ算出部
２５  出力部
３１  特徴点検出部
３２  対応点検出部
３３  除去部
４１  パラメータ記憶部
４２  第１勾配算出部
４３  第２勾配算出部
４４  変化量算出部
４５  更新部
４６  反復制御部
５０  カメラシステム
５１  カメラ
５２  画像補正装置
６１  入力画像記憶部
６２  ターゲット画像記憶部
６３  動きパラメータ算出部
６４  補正部
６５  加算部
６６  蓄積画像記憶部
６７  画像出力部
２０１  ＣＰＵ
２０２  操作部
２０３  表示部
２０４  ＲＯＭ
２０５  ＲＡＭ
２０６  記憶部
２１０  バス
【図１】
2016095668.tif 000028
【図２】
2016095668.tif 000029
【図３】
2016095668.tif 000030
【図４】
2016095668.tif 000031
【図５】
2016095668.tif 000032
【図６】
2016095668.tif 000033
【図７】
2016095668.tif 000034
【図８】
2016095668.tif 000035
【図９】
2016095668.tif 000036