(57)【要約】  画像補正装置は、平行移動量及び回転移動量にそれぞれ所定の値が設定されて第１の変換フレーム画像が生成される毎に、変換されたフレーム画像Ｉｎ＋１とフレーム画像Ｉｎとの同一座標の各画素値の差分の自乗値を演算し、変換されたフレーム画像Ｉｎ＋１及びフレーム画像Ｉｎが少なくとも重複するすべての同一座標についての自乗値を積算してエラー関数を導出し、ＢＦＧＳ法を用いて導出されたエラー関数の値が最小値となる場合を探索し、エラー関数の値が最小値となる場合のアフィン変換パラメータをフレーム画像Ｉｎに対するフレーム画像Ｉｎ＋１の変化量として抽出するＣＰＵ（２２）を備えている。
2009154294.tif 000002
【特許請求の範囲】
【請求項１】
動画像を構成する複数のフレーム画像のうちの第１のフレーム画像に対して、平行移動量と回転移動量とを含んだアフィン変換パラメータを用いて画像変換処理を行って、第１の変換フレーム画像を生成する画像変換部と、
前記画像変換部により前記平行移動量及び前記回転移動量にそれぞれ所定の値が設定されて前記第１の変換フレーム画像が生成される毎に、前記画像変換部により生成された第１の変換フレーム画像と、前記動画像を構成する複数のフレーム画像のうちの前記第１のフレーム画像と異なる第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算し、前記第１の変換フレーム画像及び前記第２のフレーム画像が少なくとも重複するすべての同一座標についての前記自乗値を積算してエラー関数を導出するエラー関数導出部と、
ＢＦＧＳ法を用いて前記エラー関数導出部により導出されたエラー関数の値が最小値となる場合を探索し、前記エラー関数の値が最小値となる場合のアフィン変換パラメータを第２のフレーム画像に対する前記第１のフレーム画像の変化量として抽出する変化量抽出部と、
を備えた画像変化量抽出装置。
【請求項２】
前記画像変換部は、前記平行移動量である第１方向への移動量ｘ及び前記第１方向に直交する第２方向への移動量ｙと、前記回転移動量θと、を含んだアフィン変換パラメータを用いて画像変換処理を行い、
前記変化量抽出部は、前記エラー関数の最小値の探索の際にＢＦＧＳ法で使用する導関数として、
【数１】
2009154294.tif 000026
を用いる
請求項１に記載の画像変化量抽出装置。
【請求項３】
前記画像変換部は、前記第１のフレーム画像に対して、画像の倍率を更に含んだアフィン変換パラメータを用いて、画像変換処理を行う
請求項１に記載の画像変化量抽出装置。
【請求項４】
前記画像変換部は、前記平行移動量である第１方向への移動量ｘ及び前記第１方向に直交する第２方向への移動量ｙと、前記回転移動量θと、ズーム方向の倍率ｚを含んだアフィン変換パラメータを用いて画像変換処理を行い、
前記変化量抽出部は、前記エラー関数の最小値の探索の際にＢＦＧＳ法で使用する導関数として、
【数２】
2009154294.tif 000027
を用いる
請求項３に記載の画像変化量抽出装置。
【請求項５】
前記エラー関数導出部は、前記第１の変換フレーム画像と、前記第１のフレーム画像に隣接する第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算する
請求項１に記載の画像変化量抽出装置。
【請求項６】
前記エラー関数導出部は、前記第１の変換フレーム画像と前記第２のフレーム画像との各々の同一座標について、各画素値の差分の自乗値をそれぞれ独立して並列演算する
請求項１に記載の画像変化量抽出装置。
【請求項７】
前記画像変換部は、動画像を構成する複数のフレーム画像のうちの最新の第１のフレーム画像に対して、前記画像変換処理を行って第１の変換フレーム画像を逐次生成し、
前記エラー関数導出部は、前記画像変換部により逐次生成された第１の変換フレーム画像と、前記第１のフレーム画像の直前のフレームである第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算する
請求項１に記載の画像変化量抽出装置。
【請求項８】
請求項１に記載の画像変化量抽出装置と、
前記第１のフレーム画像と前記画像変化量抽出装置により抽出された変化量とに基づいて、第１のフレーム画像と前記第２のフレーム画像とのずれが少なくなるように、前記第１のフレーム画像に対して補正処理を行う補正部と、
を備えた画像補正装置。
【請求項９】
前記第２のフレーム画像に対して、前記補正部により補正処理された前記第１のフレーム画像を合成する画像合成部を更に備えた
請求項８に記載の画像補正装置。
【請求項１０】
請求項８に記載の画像変化量抽出装置と、
前記第１のフレーム画像と前記画像変化量抽出装置により抽出された変化量とに基づいて、第１のフレーム画像と前記第２のフレーム画像とのずれが少なくなるように、前記第１のフレーム画像に対して補正処理を行う補正部と、
前記第２のフレーム画像に対して、前記補正部により補正処理された前記第１のフレーム画像を合成する画像合成部と、を備え、
前記画像変化量抽出装置は、次の第１のフレーム画像に対して、前記画像合成部により合成された画像を前記第２のフレーム画像として、前記次の第１のフレーム画像の変化量を抽出する
画像補正装置。
【請求項１１】
請求項１に記載の画像変化量抽出装置と、
前記第２のフレーム画像と前記画像変化量抽出装置により抽出された変化量とに基づいて、第１のフレーム画像と前記第２のフレーム画像とのずれが少なくなるように、前記第２のフレーム画像に対して補正処理を行う補正部と、
を備えた画像補正装置。
【請求項１２】
前記第１のフレーム画像に対して、前記補正部により補正処理された前記第２のフレーム画像を合成する画像合成部を更に備えた
請求項１１に記載の画像補正装置。
【請求項１３】
コンピュータを、請求項８または請求項１１に記載の画像補正装置の各部として機能させるための画像補正プログラム。
【請求項１４】
コンピュータを、
動画像を構成する複数のフレーム画像のうちの第１のフレーム画像に対して、平行移動量と回転移動量とを含んだアフィン変換パラメータを用いて画像変換処理を行って、第１の変換フレーム画像を生成する画像変換手段、
前記画像変換手段より前記平行移動量及び前記回転移動量にそれぞれ所定の値が設定されて前記第１の変換フレーム画像が生成される毎に、前記画像変換手段により生成された第１の変換フレーム画像と、前記動画像を構成する複数のフレーム画像のうちの前記第１のフレーム画像と異なる第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算し、前記第１の変換フレーム画像及び前記第２のフレーム画像が少なくとも重複するすべての同一座標についての自乗値を積算してエラー関数を導出するエラー関数導出手段、及び、
ＢＦＧＳ法を用いて前記エラー関数導出手段により導出されたエラー関数の値が最小値となる場合を探索し、前記エラー関数の値が最小値となる場合のアフィン変換パラメータを第２のフレーム画像に対する前記第１のフレーム画像の変化量として抽出する変化量抽出手段、
として機能させるための画像変化量抽出プログラム。
【請求項１５】
コンピュータを、
動画像を構成する複数のフレーム画像のうちの第１のフレーム画像に対して、平行移動量と回転移動量とを含んだアフィン変換パラメータを用いて画像変換処理を行って、第１の変換フレーム画像を生成する画像変換部、
前記画像変換部より前記平行移動量及び前記回転移動量にそれぞれ所定の値が設定されて前記第１の変換フレーム画像が生成される毎に、前記画像変換部により生成された第１の変換フレーム画像と、前記動画像を構成する複数のフレーム画像のうちの前記第１のフレーム画像と異なる第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算し、前記第１の変換フレーム画像及び前記第２のフレーム画像が少なくとも重複するすべての同一座標についての自乗値を積算してエラー関数を導出するエラー関数導出部、及び、
ＢＦＧＳ法を用いて前記エラー関数導出部により導出されたエラー関数の値が最小値となる場合を探索し、前記エラー関数の値が最小値となる場合のアフィン変換パラメータを第２のフレーム画像に対する前記第１のフレーム画像の変化量として抽出する変化量抽出部、
として機能させるための画像変化量抽出プログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動量抽出装置及びプログラム、画像補正装置及びプログラム並びに記録媒体に関する。
【背景技術】
【０００２】
近年集積化技術の進歩により、ビデオカメラは、小型化・低価格化が進んで一般に普及するようになり、様々な場所で使用されている。特に、小型のビデオカメラは、近年、災害時に素早く情報収集を行うために、人間が立ち入れない場所で被災者の探索を行うロボットや、上空から災害状況を確認する無人ヘリコプターなど、遠隔操作用のレスキューロボットなどにも搭載されている。【０００３】
しかし、ビデオカメラが搭載されたロボットは、自身が振動したり、荒れた路面上や地震で障害物が散在する状況下で走行したりする。このため、ロボットに搭載されたカメラから送られてくる映像にはゆれが生じてしまう。【０００４】
そのため、オペレータは、即座に状況判断をすることが困難になり、画面酔いして操作に影響が出る可能性がある。したがって、このような映像のゆれによる影響を抑えるためは、リアルタイムで動画像処理が行われ、映像のゆれが軽減される必要がある。 【０００５】
現在、デジタルカメラのために開発・研究されているゆれを軽減する手法は、電子式、 光学式、イメージセンサーシフト式、レンズユニットスイング式などの手ぶれ補正機能があげられる。しかし、これらの補正機能は、カメラに搭載されるものであり、そのカメラで撮影した映像だけしか補正することができない。このため、必然的にカメラの大型化、高価格化を招いてしまう。【０００６】
近年では、デジタルカメラの普及やパーソナルコンピュータ（ＰＣ）の発達により、一般の家庭用ＰＣでも動画像の処理などが簡単に行われ、汎用性を高めるために、ＰＣを利用した安定化処理が望まれる。しかしながら、動画像はデータ量が多く、それらを処理するにはＣＰＵ（Central Processing Unit）では負荷が大きいため、リアルタイムでの処理は難しい。 【０００７】
そこで、高速なグラフィック処理を目的としたグラフィックスハードウェアであるＧＰＵ（Graphics Processing Unit）を用いることが考えられる。ＧＰＵは、一般的なＰＣにも搭載され、並列処理による高速演算が可能である。ＧＰＵの処理性能、特に浮動小数点演算性能は、ＣＰＵに比べて１０倍以上の性能を示すものもある。【０００８】
本願発明者らによる、ＧＰＵを用いたぶれ補正技術として「ＧＰＵを用いたビデオ映像の安定化」が開示されている（非特許文献１参照）。非特許文献１に記載された技術は、アフィン変換を用いてグローバルモーションを推定する際に、ＢＦＧＳ法（準ニュートン法）のアルゴリズムを使用し、推定したグローバルモーションに基づいてビデオ映像の振動を補正する。
【非特許文献１】藤澤、他２名、「ＧＰＵを用いたビデオ映像の安定化」、社団法人情報処理学会、情報処理学会論文誌Ｖｏｌ．４９、Ｎｏ．２、ｐ．１−８
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、非特許文献１に記載された技術は、収束時間が長く、ＢＦＧＳ法の計算回数が多くなってしまうため、グローバルモーション、すなわち、変化量の推定に時間がかかってしまう。このため、特許文献１の技術は、１秒当たり３０枚のフレーム画像に対して４〜５枚分しかぶれ補正処理をすることができないため、実質的にはリアルタイムで動画像のぶれ補正を行うことができなかった。【００１０】
本発明は、上述した課題を解決するために提案されたものである。
【課題を解決するための手段】
【００１１】
本発明の第１の態様の画像変化量抽出装置は、動画像を構成する複数のフレーム画像のうちの第１のフレーム画像に対して、平行移動量と回転移動量とを含んだアフィン変換パラメータを用いて画像変換処理を行って、第１の変換フレーム画像を生成する画像変換部と、前記画像変換部により前記平行移動量及び前記回転移動量にそれぞれ所定の値が設定されて前記第１の変換フレーム画像が生成される毎に、前記画像変換部により生成された第１の変換フレーム画像と、前記動画像を構成する複数のフレーム画像のうちの前記第１のフレーム画像と異なる第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算し、前記第１の変換フレーム画像及び前記第２のフレーム画像が少なくとも重複するすべての同一座標についての自乗値を積算してエラー関数を導出するエラー関数導出部と、ＢＦＧＳ法を用いて前記エラー関数導出部により導出されたエラー関数の値が最小値となる場合を探索し、前記エラー関数の値が最小値となる場合のアフィン変換パラメータを第２のフレーム画像に対する前記第１のフレーム画像の変化量として抽出する変化量抽出部と、を備えている。【００１２】
上記画像変化量抽出装置は、平行移動量及び回転移動量にそれぞれ所定の値が設定されて第１の変換フレーム画像が生成される毎に、第１の変換フレーム画像及び第２のフレーム画像が少なくとも重複するすべての同一座標についての自乗値を積算してエラー関数を導出し、ＢＦＧＳ法を用いてエラー関数の値が最小値となる場合を探索し、エラー関数の値が最小値となる場合のアフィン変換パラメータを第２のフレーム画像に対する前記第１のフレーム画像の変化量として抽出する。よって、探索時間を非常に短くして、第２のフレーム画像に対する前記第１のフレーム画像の変化量をリアルタイムで抽出できる。【００１３】
本発明の第２の態様の画像補正装置は、上記画像変化量抽出装置と、第１のフレーム画像と前記画像変化量抽出装置により抽出された変化量とに基づいて、第１のフレーム画像と前記第２のフレーム画像とのずれが少なくなるように、前記第１のフレーム画像に対して補正処理を行う補正部と、を備えている。【００１４】
また、本発明の第３の態様の画像補正装置は、上記画像変化量抽出装置と、第２のフレーム画像と前記画像変化量抽出装置により抽出された変化量とに基づいて、第１のフレーム画像と前記第２のフレーム画像とのずれが少なくなるように、前記第２のフレーム画像に対して補正処理を行う補正部と、を備えている。【００１５】
上記各画像補正装置は、リアルタイムで抽出された画像の変化量を用いて、その変化量に応じた画像の補正をリアルタイムで行うことができる。
【発明の効果】
【００１６】
本発明の一態様である画像変化量抽出装置及びプログラムは、第１の変換フレーム画像及び第２のフレーム画像が少なくとも重複するすべての同一座標についての自乗値を積算してエラー関数を導出し、ＢＦＧＳ法を用いてエラー関数の値が最小値となる場合を探索して、エラー関数の値が最小値となる場合のアフィン変換パラメータを第２のフレーム画像に対する第１のフレーム画像の変化量として抽出する。これにより、エラー関数の値が最小値となる場合の探索時間を短くすることができ、動画像を構成する画像の変化量をリアルタイムで抽出することができる。【００１７】
本発明の一態様である画像補正装置及びプログラムは、動画像を構成する画像の変化量をリアルタイムで抽出することにより、その変化量に応じた画像の補正をリアルタイムで行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態に係る画像補正装置の構成を示すブロック図である。
【図２】グローバルモーションの推定を説明するための図である。
【図３】補正前と補正後（画像補正装置による補正済み）のフレーム数に対する移動量を示す図であり、（Ａ）はＸ軸方向の移動量、（Ｂ）はＹ軸方向の移動量である。
【図４】第１から第３のフレーム画像の合成により生成された合成画像を示す図である。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。【００２０】
［第１の実施形態：画像補正装置の構成］
図１は、本発明の実施の形態に係る画像補正装置の構成を示すブロック図である。画像補正装置は、被写体を撮像して画像を生成するカメラ１０と、カメラ１０で生成された画像のぶれをなくすように画像処理を行う画像処理装置２０と、を備えている。【００２１】
画像処理装置２０は、カメラ１０との間で信号のやりとりを行う入出力ポート２１と、演算処理を行うＣＰＵ（Central Processing Unit）２２と、画像やその他のデータを記憶するハードディスクドライブ２３と、ＣＰＵ２２の制御プログラムを記憶するＲＯＭ（Read Only Memory）２４と、データのワークエリアであるＲＡＭ（Random Access Memory）２５と、画像処理のための所定の演算処理を行うＧＰＵ２６（Graphics Processing Unit）と、を備えている。【００２２】
ＣＰＵ２２は、入出力ポート２１を介して、カメラ１０からの動画像を受信すると、動画像をＧＰＵ２６に逐次転送し、ＧＰＵ２６に所定の演算処理を行わせて、動画像を構成する各フレーム画像から１フレーム毎にカメラ１０の移動量を求める（グローバルモーションの推定）。なお、本実施形態では、振動の除去されたカメラ１０の動きは緩やかで滑らかなものであると仮定する。そして、ＣＰＵ２２は、求めたカメラ１０の移動量に基づいて、各フレーム画像に対して振動補正を行う。【００２３】
［グローバルモーションの推定］
映像の安定化行うためにはグローバルモーションを知る必要がある。連続したフレーム間において、隣接したフレーム間での動きを求められれば、カメラ１０がどのように動いたか知ることができる。【００２４】
隣接したフレーム画像ＩｎとＩｎ＋１の間の変換をアフィン変換であると仮定すると、ピクセル座標ｘ＝（ｘ，ｙ）の変化は式（１）によって表すことができる。【００２５】
【数１】
2009154294.tif 000003
また、式（１）を変形すると式（２）となる。【００２６】
【数２】
2009154294.tif 000004
【００２７】
式（２）は、任意のフレームからカメラ１０がどのように動いたかを表す。アフィン変換パラメータ【００２８】
【数３】
2009154294.tif 000005
は、次の式（３）のエラー関数の最小値Ｅｍｉｎを求めることによって得られる。  【００２９】
【数４】
2009154294.tif 000006
【００３０】
χは画面平面上全ての座標値を表す。式（３）は２枚のフレーム画像の輝度値の差の２乗を合計した値である。ここで、非特許文献１に記載されたエラー関数【００３１】
【数５】
2009154294.tif 000007
と比較する。上記のエラー関数は、フレーム間の差分計算においてフレーム間の輝度差の絶対値を取得するために用いられる。【００３２】
仮に、上記式の絶対値を求めた場合（β→０）、合計計算をする前の式は厳密にフレーム間の差分画像の絶対値を得る。しかし、この式はルートを含んでおり、計算の上では非常に遅くなる。【００３３】
そこで、本実施形態の式（３）は、ルート計算及びβを除いている。式（３）は、フレーム間の差分の２乗を合計したものであり、差分画像とは異なるものを表している。すなわち、式（３）が演算されても、人間が見ても何が写っているかわからない画像しか得られない。【００３４】
本来、グローバルモーションは人間も見える全体の動きである。よって、非特許文献１に記載されているように、エラー関数は素直に画像を重ね合わせた場合の画素値の差分の積算値である、と考えるのが最も自然である。【００３５】
これに対して、本実施形態の式（３）は、単なる２乗式であり、厳密には非特許文献１のエラー関数と同じ解が出るとは限らず、特殊であると考えられる。一方で、式（３）の解を用いて問題なく振動補正を行うことができる。すなわち、非特許文献１と本実施形態とでエラー関数の定義が異なるが、同じ結果を得ることができることがわかった。したがって、本実施形態の式（３） は、単なる２乗式にすることによって、ルートの計算がなくなる分計算が高速化することに加え、差分が大きくなり、 最小値への収束が速くなること、グローバルモーション補正の失敗が少なくなる、という利点がある。そこで、図１に示す画像処理装置２０のＣＰＵ２２及びＧＰＵ２６は、次のような演算を行う。【００３６】
図２は、グローバルモーションの推定を説明するための図である。カメラのぶれ量は、フレーム画像Ｉｎを基準にした場合のフレーム画像Ｉｎ＋１の画像移動量（回転角θ、ｘｙ方向のそれぞれ移動量であるｂ１、ｂ２）となる。そこで、図１に示すＣＰＵ２２は、フレーム画像Ｉｎ＋１の画像移動量の候補として、予め用意された複数のアフィン変換パラメータを記憶しており、フレーム画像Ｉｎ＋１と共に複数のアフィン変換パラメータをＧＰＵ２６に送信する。なお、フレーム画像Ｉｎ＋１は、カメラ１０で生成された動画像のうちの最新のフレーム画像であるのが好ましい。【００３７】
そして、ＣＰＵ２２は、ＧＰＵ２６に各アフィン変換パラメータが用いられた場合のエラー値Ｅを演算させて、エラー値Ｅが最小となる場合のアフィン変換パラメータをカメラ１０の移動量として抽出する。なお、ＣＰＵ２２は、アフィン変換パラメータ（θ、ｂ１、ｂ２）を単にＧＰＵ２６に送信する代わりに、θからsinθ及びcosθを計算し、アフィン変換パラメータとして、ｂ１、ｂ２、sinθ及びcosθをＧＰＵ２６に送信してもよい。【００３８】
一方、ＧＰＵ２６は、ＣＰＵ２２から送信されたアフィン変換パラメータを受信すると、フレーム画像Ｉｎ＋１に対して上述のアフィン変換パラメータを用いて変形処理を行う。【００３９】
具体的には、ＧＰＵ２６は、フレーム画像Ｉｎと変形されたフレーム画像Ｉｎ＋１との各々の同一座標についての画素値（輝度値）の差の２乗を演算する。なお、輝度値の差の２乗の演算は、すべての座標（例えば、少なくともフレーム画像Ｉｎ、Ｉｎ＋１の重複する領域のすべての座標）で行われる。なお、ＧＰＵ２６は、重複する領域での各同一座標において、輝度値の差の２乗値を並列かつ独立に演算する。これにより、ＧＰＵ２６は、各座標で独立に演算できるので、並列演算処理を行って高速処理を実行できる。そして、ＧＰＵ２６は、すべての座標における輝度値の差の２乗を並列積算し、積算値をエラー値として求める。ここでは、ＧＰＵ２６が、ある程度、輝度値の差の２乗を並列積算し、ＣＰＵ２２が、残りの輝度値の差の２乗を順次積算してこれらの積算値を合計するとよい。アフィン変換パラメータが変更される毎に上述したエラー値を演算する。【００４０】
ところで、フレーム画像Ｉｎ＋１を変形させたときの座標（ｘ′，ｙ′）のピクセルとフレーム画像Ｉｎの座標（ｘ，ｙ）のピクセルが対応している場合、その輝度値の差は０になり、エラー値は小さくなる。エラー値が小さい程フレーム間において対応するピクセルが多いということになり、そのときのパラメータ（Ａ、ｂ）がフレーム間の動きとなる。【００４１】
そこで、ＧＰＵ２６が、予め用意されたすべてのアフィン変換パラメータについて上述したエラー値を演算すると、次に、ＣＰＵ２２が、すべてのエラー値の中で最小のエラー値になったときのアフィン変換パラメータを選択し、選択したアフィン変換パラメータをフレーム間の動き、すなわちカメラの移動量として抽出する。【００４２】
なお、ピクセル座標値のアフィン変換【００４３】
【数６】
2009154294.tif 000008
によって、輝度値が定義されていない領域（未定義域：フレーム画像Ｉｎ、Ｉｎ＋１の重複していない領域）を参照する場合、ＣＰＵ２２は、そのピクセルについてはエラー値の計算から除外するために、そのピクセルの輝度値の差を０とする。そして、ＣＰＵ２２は、全ピクセルχに対し最終的に有効であったピクセル数χｅを用いて、次のようにエラー値Ｅを補正する。【００４４】
【数７】
2009154294.tif 000009
【００４５】
ただし、α＝χｅ／χが小さい場合（例えば１／４）に正しい結果が出ない可能性がある。例えば、実際のカメラ１０の動きが小さくても、最小化手法の反復の初期において変形量が大きく、αの値が小さくなることがある。そこで、本実施形態では、ＣＰＵ２２は、αが１／４未満（α＜１／４）の場合、未定義域のピクセルの輝度値の差を０とみなしてエラー値を計算し、エラー値が意図的に大きくなるようにしている。なお、輝度値の差を０とみなすのは、αが１に比べて十分小さければよく、αが１／４未満の場合に限定されるものではない。【００４６】
また、エラー関数の最小値の探索にはＮＵＭＥＲＩＣＡＬ  ＲＥＣＩＰＥＳのＢＦＧＳ法（準ニュートン法）のアルゴリズムが使用される。ＢＦＧＳ（Ｂｒｏｙｄｅｎ，Ｆｌｅｔｃｈｅｒ，Ｇｏｌｄｆａｒｂ，Ｓｈａｎｎｏ）法のアルゴリズムは関数と導関数を用いて最小方向の探索を行うので、計算回数が少なく、収束時間が短い。ＢＦＧＳ法では導関数を必要とするので、導関数を求めるには式（３）を次の式（４）及び（５）のように変形する。  【００４７】
【数８】
2009154294.tif 000010
【００４８】
ここから導関数を求めると、式（６）となる。【００４９】
【数９】
2009154294.tif 000011
【００５０】
また、次の式（７）も成り立つ。【００５１】
【数１０】
2009154294.tif 000012
【００５２】
よって、すべての導関数は次の式（８）〜（１３）のようになる。  【００５３】
【数１１】
2009154294.tif 000013
【００５４】
ここで、式（８）〜（１０）においては式（１４）が成立し、式（１１）〜（１３）においては（１５）が成立する。【００５５】
【数１２】
2009154294.tif 000014
本実施形態では、高速化のため画像の動きを平行移動と回転移動のみと仮定して、求めるアフィン変換パラメータを（θ、ｂ１、ｂ２）の３つとし、アフィン行列Ｔは式（１６）とする。【００５６】
【数１３】
2009154294.tif 000015
また、導関数は、次の式（１７）〜（１９）とする。【００５７】
【数１４】
2009154294.tif 000016
【００５８】
ここで、式（＊）と定義したとき式（２０）〜（２３）とする。【００５９】
【数１５】
2009154294.tif 000017
【００６０】
すなわち、図１に示す画像処理装置２０のＣＰＵ２２は、式（１６）のアフィン変換行列を用いて式（３）のエラー関数を定義し、このエラー関数の最小値を探索するために準ニュートン法の手法の１つであるＢＦＧＳ法を用いる。ここで、ＢＦＧＳ法では導関数が必要となる。そこで、ＣＰＵ２２は、式（１７）〜（１９）（式（２０）〜（２３）を含む。）の導関数を用いて式（３）のエラー関数の最小値を探索し、最小値となったときのパラメータ（θ、ｂ１、ｂ２）を求め、これを画像移動量、すなわちカメラ１０のぶれ量として抽出する。【００６１】
なお、複数回のエラー関数の導出においては、１つのエラー関数が導出されると、新たなアフィン変換パラメータ（θ、ｂ１、ｂ２の少なくとも１つが所定量変化したもの）を用いて再びエラー関数が導出される。なお、これらのパラメータの変更の仕方は特に限定されるものではない。また、ＢＦＧＳ法については、Teukolsky, S.A., Vetterling, W.T. and Flannery, B.P.: Numerical Recipes in C++: The Art of Scientific Computing, Cambridge University Press (2002)に記載された手法を用いることができる。
［振動補正］
画面の動きを滑らかにするために、推定したグローバルモーションに基づく修正のための変換行列を求める必要がある。補正前のフレームから補正後のフレームまでの変換行列Ｓは、補正の対象となるフレームの前後ｋフレームまでのアフィン変換を用いて次の式（２４）によって表される。 【００６２】
【数１６】
2009154294.tif 000018
ここで、【００６３】
【数１７】
2009154294.tif 000019
はフレームｎからｍまでのアフィン変換行列である。また、【００６４】
【数１８】
2009154294.tif 000020
はガウス・カーネルである。式（２４）の星印は畳み込み演算子を表す。また√ｋ＝σである。【００６５】
そこで、図１に示す画像処理装置２０のＣＰＵ２２は、得られた変換行列を用いて次の式（２５）の演算を行うことで、フレーム画像間のずれが少なくなるように、対象となるフレーム画像に対して振動補正を行うことができる。【００６６】
【数１９】
2009154294.tif 000021
【００６７】
ここで、隣り合うフレーム画像間の振動補正を行う場合は上述したｎ、ｍは連続した自然数となるが、基準となるフレーム画像に対して所定のフレーム画像の振動補正を行う場合は、ｎ、ｍは連続した自然数でなくてもよい。【００６８】
なお、本願発明者らが１フレームあたりのＢＦＧＳ法の適用回数を計算したところ次の結果が得られた。非特許文献１に記載されたエラー関数を用いると、ＧＰＵが演算した場合は平均で４２．８７回、ＣＰＵが演算した場合は平均で１１．４３回となった。これに対して、本実施形態の式（３）のエラー関数を用いると、ＧＰＵが演算した場合は平均で７．７０７回、ＣＰＵが演算した場合は平均で６．４８１回となった。すなわち、式（３）のエラー関数を用いた方が、演算回数が少なくなり、短時間で演算することが可能になる。【００６９】
図３は、補正前と補正後（画像補正装置による補正済み）のフレーム数に対する移動量を示す図であり、（Ａ）はＸ軸方向の移動量、（Ｂ）はＹ軸方向の移動量である。同図に示すように、補正により移動量は非常に滑らかになった。【００７０】
また、画像処理装置２０のＣＰＵ２２は、回転移動量及び平行移動量の少なく１つが補正されたフレーム画像を順次合成して、複数のフレームからなる合成画像を生成してもよい。【００７１】
図４は、第１から第３のフレーム画像の合成により生成された合成画像を示す図である。ここでは、ＣＰＵ２２は、補正された最新のフレーム画像を、中心位置に対して水平になるように順次上に重ねる。これにより、中心付近は新しいフレーム画像で構成され、縁付近は古いフレーム画像で構成された、フレーム画像よりも大きい合成画像が生成される。【００７２】
この場合、ＧＰＵ２６は、各座標において画像が存在するかの判定フラグを立てて、画像がある座標においてのみエラー関数Ｅを演算すればよい。この結果、フレーム画像の移動量の推定誤差が小さくなり、仮に、最新のフレーム画像とその１つ前のフレーム画像との重なる部分がほとんどなくても、グローバルモーション推定が可能になる。なお、ＧＰＵ２６は、累積誤差を防止するため、最新のフレーム画像よりも所定フレーム以前のフレーム画像については合成せず、順次破棄するとよい。【００７３】
さらに、ＧＰＵ２６は、過去のフレーム画像Ｉｎ、Ｉｎ−１、Ｉｎ−２・・・の合成である合成画像をフレーム画像Ｉｎとし、次の最新のフレーム画像Ｉｎ＋１を用いて、エラー関数Ｅを演算してもよい。これにより、カメラ１０のぶれ量が大きい場合でも、合成されたフレーム画像Ｉｎと次の最新のフレーム画像Ｉｎ＋１との重複範囲が大きくなるので、カメラのぶれ量が確実に検出される。【００７４】
以上のように、本発明の実施形態に係る画像補正装置は、ＢＦＧＳ法を適用して式（３）のエラー関数の最小値を探索することにより、従来に比べて、非常に短時間でエラー関数が最小値となるときのアフィン変換パラメータを求め、このアフィン変換パラメータを用いて、リアルタイムで動画像のぶれを補正することができる。【００７５】
ＢＦＧＳ法を用いた最小値探索では複数回の演算を繰り返して最小値を探索するので、個々の演算式の演算速度のわずかな違いでも、最終的な演算速度に大きく響いてくる。特に、本実施形態に係る画像補正装置は、画像の各画素についての演算を行うため、この違いは顕著である。非特許文献１では、個々の演算式に平方根が含まれているため、どうしても演算速度が遅くなってしまう。これに対して、本実施形態に係る画像補正装置は、エラー関数を工夫することにより、平方根の演算を用いることなく高速にエラー関数の最小値を探索することが可能となった。また、エラー関数を用いることにより、ＢＦＧＳ法を用いた最小値探索の繰り返し演算回数そのものを少なくできることも見出した。【００７６】
さらに、上記画像補正装置は、補正されたフレーム画像を順次合成することで、フレーム画像よりもサイズの大きい合成画像を生成することができる。そして、上記画像補正装置は、サイズの大きい合成画像に対する最新のフレーム画像の移動量を抽出することで、カメラ１０のぶれ量が大きい場合でも、そのぶれ量を確実に抽出して、ぶれを補正することができる。【００７７】
なお、上記画像補正装置は、カメラ１０がぶれた場合だけでなく、被写体がぶれた場合であっても、上述した式（３）を用いてリアルタイムで動画像の被写体ぶれを補正することができる。【００７８】
［第２の実施形態：他のアフィン変換パラメータを用いた場合］
つぎに、本発明の第２の実施形態について説明する。なお、第１の実施形態と同一の部位には同一の符号を付し、重複する説明は省略する。【００７９】
第１の実施形態では３変数であるアフィン変換パラメータ（θ、ｂ１、ｂ２）を用いたが、第２の実施形態では４変数であるアフィン変換パラメータ（θ、ｂ１、ｂ２、ｚ）を用いる。なお、ｚはズーム方向のパラメータであり、画像の倍率を示している。ここで、エラー関数は、次の式（２６）のように表される。【００８０】
【数２０】
2009154294.tif 000022
【００８１】
式（２６）においてχは画面平面上全ての座標値の集合である。Ｉ（ｘ）はピクセルｘの輝度値である。そして、４変数のアフィン変換パラメータを用いると、アフィン変換は、次の式（２７）のように表される。【００８２】
【数２１】
2009154294.tif 000023
【００８３】
このとき、導関数は、式（２８）〜（３１）のようになる。【００８４】
【数２２】
2009154294.tif 000024
【００８５】
但し、導関数は、式（３２）〜（３８）を満たす。【００８６】
【数２３】
2009154294.tif 000025
【００８７】
そこで、第２の実施形態では、図１に示す画像処理装置２０のＣＰＵ２２は、上述した４変数のアフィン変換パラメータを用いたエラー関数に対して、式（２８）〜（３１）（式（３２）〜（３８）を含む。）を用いてＢＦＧＳ法を適用する。これにより、ＣＰＵ２２は、エラー値の最小値を短時間で探索し、このときのアフィン変換パラメータをフレーム間の動き、すなわちカメラの移動量として抽出する。そして、ＣＰＵ２２は、このアフィン変換パラメータを用いて第１の実施形態と同様にして画像を補正することができる。【００８８】
以上のように、第２の実施形態に係る画像補正装置は、ズーム方向のパラメータを含んだアフィン変換パラメータを用いて移動量を抽出できるので、画像に現れる被写体の大きさが変化するほどカメラ１０が振動しても、リアルタイムでその振動を抑制するように動画像を補正することができる。【００８９】
また、本発明は、上述した実施の形態に限定されるものではなく、特許請求の範囲に記載された範囲内で設計上の変更をされたものにも適用可能であるのは勿論である。例えば、上述した実施形態では、フレーム画像Ｉｎに隣接したフレーム画像Ｉｎ＋１の変換をアフィン変換パラメータで表したが、変換されるフレーム画像はフレーム画像Ｉｎに隣接していなくてもよい。例えば、基準フレーム画像に対して数フレーム離れた所定のフレーム画像をアフィン変換パラメータで表すことも可能である。【００９０】
また、上述した実施形態では、画像処理装置２０は、カメラ１０で生成された動画像をリアルタイムで補正したが、ハードディスクドライブ２３に予め記憶されている動画像についても同様に補正することができる。
【符号の説明】
【００９１】
１０  カメラ
２０  画像処理装置
２２  ＣＰＵ
２６  ＧＰＵ
【図１】
2009154294.tif 000028
【図２】
2009154294.tif 000029
【図３】
2009154294.tif 000030
【図４】
2009154294.tif 000031
【手続補正書】
【提出日】平成23年4月4日(2011.4.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動画像を構成する複数のフレーム画像のうちの第１のフレーム画像に対して、平行移動量である第１方向への移動量ｘ及び前記第１方向に直交する第２方向への移動量ｙと、回転移動量θとを含んだアフィン変換パラメータを用いて画像変換処理を行って、第１の変換フレーム画像を生成する画像変換部と、
前記画像変換部により前記平行移動量及び前記回転移動量にそれぞれ所定の値が設定されて前記第１の変換フレーム画像が生成される毎に、前記画像変換部により生成された第１の変換フレーム画像と、前記動画像を構成する複数のフレーム画像のうちの前記第１のフレーム画像と異なる第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算し、前記第１の変換フレーム画像及び前記第２のフレーム画像が少なくとも重複するすべての同一座標についての前記自乗値を積算してエラー関数を導出するエラー関数導出部と、
ＢＦＧＳ法を用いて前記エラー関数導出部により導出されたエラー関数の値が最小値となる場合を探索し、前記エラー関数の値が最小値となる場合のアフィン変換パラメータを第２のフレーム画像に対する前記第１のフレーム画像の変化量として抽出する変化量抽出部と、
を備え、
前記変化量抽出部は、前記エラー関数の最小値の探索の際にＢＦＧＳ法で使用する導関数として、
【数１】
2009154294.tif 000032
を用いる画像変化量抽出装置。
【請求項２】
動画像を構成する複数のフレーム画像のうちの第１のフレーム画像に対して、平行移動量である第１方向への移動量ｘ及び前記第１方向に直交する第２方向への移動量ｙと、回転移動量θと、ズーム方向の倍率ｚを含んだアフィン変換パラメータを用いて画像変換処理を行って、第１の変換フレーム画像を生成する画像変換部と、
前記画像変換部により前記平行移動量及び前記回転移動量にそれぞれ所定の値が設定されて前記第１の変換フレーム画像が生成される毎に、前記画像変換部により生成された第１の変換フレーム画像と、前記動画像を構成する複数のフレーム画像のうちの前記第１のフレーム画像と異なる第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算し、前記第１の変換フレーム画像及び前記第２のフレーム画像が少なくとも重複するすべての同一座標についての前記自乗値を積算してエラー関数を導出するエラー関数導出部と、
ＢＦＧＳ法を用いて前記エラー関数導出部により導出されたエラー関数の値が最小値となる場合を探索し、前記エラー関数の値が最小値となる場合のアフィン変換パラメータを第２のフレーム画像に対する前記第１のフレーム画像の変化量として抽出する変化量抽出部と、
を備え、
前記変化量抽出部は、前記エラー関数の最小値の探索の際にＢＦＧＳ法で使用する導関数として、
【数２】
2009154294.tif 000033
を用いる画像変化量抽出装置。
【請求項３】
前記エラー関数導出部は、前記第１の変換フレーム画像と、前記第１のフレーム画像に隣接する第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算する
請求項１又は２に記載の画像変化量抽出装置。
【請求項４】
前記エラー関数導出部は、前記第１の変換フレーム画像と前記第２のフレーム画像との各々の同一座標について、各画素値の差分の自乗値をそれぞれ独立して並列演算する
請求項１又は２に記載の画像変化量抽出装置。
【請求項５】
前記画像変換部は、動画像を構成する複数のフレーム画像のうちの最新の第１のフレーム画像に対して、前記画像変換処理を行って第１の変換フレーム画像を逐次生成し、
前記エラー関数導出部は、前記画像変換部により逐次生成された第１の変換フレーム画像と、前記第１のフレーム画像の直前のフレームである第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算する
請求項１又は２に記載の画像変化量抽出装置。
【請求項６】
請求項１又は２に記載の画像変化量抽出装置と、
前記第１のフレーム画像と前記画像変化量抽出装置により抽出された変化量とに基づいて、第１のフレーム画像と前記第２のフレーム画像とのずれが少なくなるように、前記第１のフレーム画像に対して補正処理を行う補正部と、
を備えた画像補正装置。
【請求項７】
前記第２のフレーム画像に対して、前記補正部により補正処理された前記第１のフレーム画像を合成する画像合成部を更に備えた
請求項６に記載の画像補正装置。
【請求項８】
請求項６に記載の画像変化量抽出装置と、
前記第１のフレーム画像と前記画像変化量抽出装置により抽出された変化量とに基づいて、第１のフレーム画像と前記第２のフレーム画像とのずれが少なくなるように、前記第１のフレーム画像に対して補正処理を行う補正部と、
前記第２のフレーム画像に対して、前記補正部により補正処理された前記第１のフレーム画像を合成する画像合成部と、を備え、
前記画像変化量抽出装置は、次の第１のフレーム画像に対して、前記画像合成部により合成された画像を前記第２のフレーム画像として、前記次の第１のフレーム画像の変化量を抽出する
画像補正装置。
【請求項９】
請求項１又は２に記載の画像変化量抽出装置と、
前記第２のフレーム画像と前記画像変化量抽出装置により抽出された変化量とに基づいて、第１のフレーム画像と前記第２のフレーム画像とのずれが少なくなるように、前記第２のフレーム画像に対して補正処理を行う補正部と、
を備えた画像補正装置。
【請求項１０】
前記第１のフレーム画像に対して、前記補正部により補正処理された前記第２のフレーム画像を合成する画像合成部を更に備えた
請求項９に記載の画像補正装置。
【請求項１１】
コンピュータを、請求項６または請求項９に記載の画像補正装置の各部として機能させるための画像補正プログラム。
【請求項１２】
コンピュータを、
動画像を構成する複数のフレーム画像のうちの第１のフレーム画像に対して、平行移動量である第１方向への移動量ｘ及び前記第１方向に直交する第２方向への移動量ｙと、回転移動量θとを含んだアフィン変換パラメータを用いて画像変換処理を行って、第１の変換フレーム画像を生成する画像変換手段、
前記画像変換手段より前記平行移動量及び前記回転移動量にそれぞれ所定の値が設定されて前記第１の変換フレーム画像が生成される毎に、前記画像変換手段により生成された第１の変換フレーム画像と、前記動画像を構成する複数のフレーム画像のうちの前記第１のフレーム画像と異なる第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算し、前記第１の変換フレーム画像及び前記第２のフレーム画像が少なくとも重複するすべての同一座標についての自乗値を積算してエラー関数を導出するエラー関数導出手段、及び、
ＢＦＧＳ法を用いて前記エラー関数導出手段により導出されたエラー関数の値が最小値となる場合を探索し、前記エラー関数の値が最小値となる場合のアフィン変換パラメータを第２のフレーム画像に対する前記第１のフレーム画像の変化量として抽出する変化量抽出手段、
として機能させるための画像変化量抽出プログラムであって、

前記変化量抽出手段は、前記エラー関数の最小値の探索の際にＢＦＧＳ法で使用する導関数として、
【数３】
2009154294.tif 000034
を用いる画像変化量抽出プログラム。
【請求項１３】
コンピュータを、
動画像を構成する複数のフレーム画像のうちの第１のフレーム画像に対して、平行移動量である第１方向への移動量ｘ及び前記第１方向に直交する第２方向への移動量ｙと、回転移動量θと、ズーム方向の倍率ｚを含んだアフィン変換パラメータを用いて画像変換処理を行って、第１の変換フレーム画像を生成する画像変換手段、
前記画像変換手段より前記平行移動量及び前記回転移動量にそれぞれ所定の値が設定されて前記第１の変換フレーム画像が生成される毎に、前記画像変換手段により生成された第１の変換フレーム画像と、前記動画像を構成する複数のフレーム画像のうちの前記第１のフレーム画像と異なる第２のフレーム画像と、の同一座標の各画素値の差分の自乗値を演算し、前記第１の変換フレーム画像及び前記第２のフレーム画像が少なくとも重複するすべての同一座標についての自乗値を積算してエラー関数を導出するエラー関数導出手段、及び、
ＢＦＧＳ法を用いて前記エラー関数導出手段により導出されたエラー関数の値が最小値となる場合を探索し、前記エラー関数の値が最小値となる場合のアフィン変換パラメータを第２のフレーム画像に対する前記第１のフレーム画像の変化量として抽出する変化量抽出手段、
として機能させるための画像変化量抽出プログラムであって、
前記変化量抽出手段は、前記エラー関数の最小値の探索の際にＢＦＧＳ法で使用する導関数として、
【数４】
2009154294.tif 000035
を用いる画像変化量抽出プログラム。
【国際調査報告】
2009154294.tif 000036
2009154294.tif 000037
2009154294.tif 000038
2009154294.tif 000039