以下、添付図面を参照して実施形態について説明する。なお、各図において同一又は相当部分には同一の符号を付し、重複する説明を省略する。
本実施形態に係る画像処理装置は、例えばノイズが除去されたフレーム画像を出力する装置であって、例えば複数の画像の連続撮影や動画撮影の場合に好適に採用されるものである。本実施形態に係る画像処理装置は、例えば、携帯電話、デジタルカメラ、PDA(Personal Digital Assistant)等、リソースに制限のあるモバイル端末に好適に搭載されるものであるが、これらに限られるものではなく、例えば通常のコンピュータシステムに搭載されてもよい。なお、以下では、説明理解の容易性を考慮し、一例として、動画撮像機能を備えた携帯端末に搭載される画像処理装置を説明する。
[第1実施形態]
図1は、第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を備えている。動画カメラ20は、動画を撮像する機能を有している。動画は、時系列で連続するフレーム画像を含む。なお、動画カメラ20は、ユーザ操作等により指定されたタイミングから所定の間隔で繰り返し撮像する連続撮像機能を有していてもよい。動画カメラ20は、フレーム画像を画像処理装置1へ出力する。
画像処理装置1は、動画カメラ20により得られたフレーム画像を入力して処理することによって出力フレーム画像を生成する。例えば、画像処理装置1は、入力されたフレーム画像のノイズを除去し、出力フレーム画像を出力する機能を有する。ここでノイズとは、例えば撮像された映像上に発生するちらつきである。ノイズは、例えば、フレーム画像間で時間経過とともにランダムに変更される画素値(時間ノイズ)、又は、同一フレーム内において周囲の画素の画素値とは極端に異なる画素値(空間ノイズ)であってもよい。なお、画素値とは、画素に対応付けされた情報であり、例えば輝度値、色差値、彩度等が含まれる。
画像処理装置1は、例えば、フレーム画像入力部10、位置合わせ部11、補正部12、生成部13及び出力フレーム画像記録部14を備えている。
フレーム画像入力部10は、動画カメラ20により撮像されたフレーム画像を入力する機能を有している。フレーム画像入力部10は、入力したフレーム画像を位置合わせ部11へ出力する。
位置合わせ部11は、フレーム画像間の位置を合わせる機能を有している。位置合わせ部11は、例えば、フレーム画像間の座標を対応付けする。位置合わせ部11は、フレーム画像間の差分を算出して、フレーム画像間の座標を対応付けしてもよいし、フレーム画像間の原点の位置変化を算出して、フレーム画像間の座標を対応付けしてもよい。あるいは、画像処理装置1がジャイロセンサを備え、ジャイロセンサによる検出結果を用いて、位置合わせ部11が対象フレーム画像と前フレーム画像との間の動きを取得してもよい。ジャイロセンサによる検出結果を用いた場合には、画像のみのデータを用いる場合に比べて、ロバスト性に優れたノイズ除去をすることができる。
画像間の差分を用いる場合には、例えば、位置合わせ部11は、処理対象となる対象フレーム画像と、当該対象フレーム画像よりも前に画像処理装置1へ入力されてノイズが除去された前フレーム画像とを用いて、位置合わせする。対象フレーム画像は、例えば今回入力されたフレーム画像であり、前フレーム画像は、例えば対象フレーム画像の1フレーム前のフレーム画像である。出力フレーム画像記録部14には、前回の処理によって、ノイズが除去された前フレーム画像が格納されている。位置合わせ部11は、例えば出力フレーム画像記録部14を参照してノイズが除去された前フレーム画像を取得する。あるいは、位置合わせ部11は、処理対象となる対象フレーム画像と、ノイズが除去されていない前フレーム画像とを位置合わせしてもよい。この場合、フレーム画像入力部10は、画像処理装置1に備わる記録部に前フレーム画像を格納し、位置合わせ部11は、該記録部を参照して前フレーム画像を取得すればよい。あるいは、画像処理装置1がジャイロセンサを備え、ジャイロセンサによる検出結果によって、対象フレーム画像と前フレーム画像との間における動きを取得してもよい。
位置合わせ部11は、例えば位置合わせに関するデータを補正部12へ出力する。位置合わせに関するデータとは、例えば、2つのフレーム画像の原点位置を対応付けするデータである。補正部12は、位置合わせされたフレーム画像同士を用いて補正処理を行う。
補正部12は、対象フレーム画像のノイズを除去する補正を行う。上述のとおり、ノイズを含む画素は、フレーム画像間で時間経過とともにランダムに変更される画素値となったり、同一フレーム内において周囲の画素の画素位置とは極端に異なる画素値(色ノイズを含む画素値)となる場合がある。このため、補正部12は、2つの補正処理を組み合わせて、ノイズを除去する。
補正部12が行う第1の補正処理は、対象フレーム画像の情報のみを用いて補正を行う処理である。すなわち、第1の補正処理は、位置合わせ処理の前においても実行され得る。第1の補正処理は、対象フレーム画像の情報のみを用いて行うため、二次元の座標位置を取得すれば実行可能となる。以下では、第1の補正処理を空間的補正処理という。空間的補正処理は、対象フレーム画像に含まれるノイズ(空間ノイズ)を除去する補正である。ノイズには、色成分や輝度成分のノイズが含まれる。補正部12は、平滑化フィルタ等を用いて、対象画素の周囲に位置する画素の画素値を平均し、算出された平均値を用いて色ノイズを含む画素値を補正する。空間的補正処理のメリットは、動被写体が画像フレームに存在した場合であっても、ロバストにノイズを除去することができる点ある。しかし、空間的に異なる位置の情報を用いるため、平均値が現実の画素値と大きく異なる場合もある。このため、平滑化処理は、ある程度画素値の変化が小さい領域、例えば、画素値の変化が所定値以下となる領域に対して行ってもよい。補正部12は、色ノイズに応じて除去レベルを設定し、設定したレベルが大きいほど、補正回数を増加させてもよい。補正部12は、対象とする画素を1/4に間引き、補正処理後に例えばバイリニア補完等によって補完してもよい。また、空間的補正処理とともに色を強調する補正を追加的に行ってもよい。この場合、空間的補正処理によって色あせた画像の画質を改善することができる。
補正部12が行う第2の補正処理は、位置合わせされた前フレーム画像の情報を用いて補正を行う処理である。すなわち、第2の補正処理は、位置合わせ処理の後において実行される。以下では、第2の補正処理を時間的補正処理という。例えば、補正部12は、対象フレーム画像の画素値と、位置合わせ後の対応する前フレーム画像の出力フレーム画像の画素の画素値とを用いて、ノイズ除去後の対象フレーム画像を作成する。あるいは、例えば、補正部12は、位置合わせ後の対応する前フレーム画像の画素の画素値と対象フレーム画像の画素の画素値とを用いて、対象フレーム画像の出力フレーム画像の画素値を生成する。
なお、補正部12は、1フレーム前の前フレーム画像だけでなく、その前フレーム画像よりも過去の前フレーム画像をも参照し、過去の前フレーム画像の画素値を取得し、取得した画素値を平均化してもよい。例えば、補正部12は、対象フレーム画像の対象画素の画素値、及び位置合わせ部11により位置合わせされた複数の前フレーム画像の対応画素の画素値を直接用いて、対象画素に対して時間的補正処理を行ってもよい。この場合、補正フィルタはいわゆる非巡回型フィルタとなる。あるいは、補正部12は、ノイズが除去された前フレーム画像を保存しておき、保存された前フレーム画像を用いて、対象フレーム画像を補正してもよい。つまり、補正部12は、対象フレーム画像の対象画素の画素値及び前フレーム画像の出力フレーム画像の対応画素の画素値を用いて、対象画素に対して時間的補正処理を行ってもよい。この場合、補正フィルタはいわゆる巡回型フィルタとなり、ノイズが除去された前フレーム画像のみを保存しておけばよいため、リソース削減及び処理効率化を図ることができる。時間的補正処理のメリットは、風景等の場合、ほとんど前フレーム画像の画素値を採用することができるため、テキスチャを残しつつ効果的にノイズ(時間ノイズ)を除去することができる点にある。しかし、時間的に異なる位置の情報を用いるため、動被写体が描画されたフレーム画像の場合、平均値をそのまま採用すると不自然な画像になるおそれがある。このため、対象フレーム画像の対象画素の画素値と、位置合わせ部により位置合わせされた前フレーム画像の出力フレームの対応画素の画素値との差分に応じた係数を用いて対象画素に対して時間的補正処理を行ってもよい。例えば、差分が所定値以上の場合には、対象画素に対する時間的補正処理を弱くなるように係数を設定したり、差分が所定値以上の場合には、時間的補正処理を行わないように係数を設定してもよい。
補正部12は、上述した空間的補正処理及び時間的補正処理を何れか一方あるいは組み合わせてノイズ除去を行う。補正部12は、空間的補正処理及び時間的補正処理を組み合わせて補正することにより、互いの処理のメリットを生かし、一層適切な補正をすることができる。補正部12は、補正された対象フレーム画像を生成部13へ出力する。
生成部13は、補正された対象フレーム画像の一部を切り取り、出力フレーム画像を生成する。生成部13は、例えば、出力フレーム画像を出力フレーム画像記録部14へ送信し格納するとともに、表示部22へ表示させる。表示部22は、画像又は映像を表示可能な装置であり、例えばディスプレイ装置である。
次に、第1実施形態に係る画像処理装置1の動作について説明する。図3は、第1実施形態に係る画像処理装置1の動作を示すフローチャートである。図3に示す制御処理は、例えば携帯端末2の撮像機能をONしたタイミングで実行され、所定の周期で繰り返し実行される。なお、説明理解の容易性を考慮して、処理対象の入力フレーム画像は、2番目以降の入力フレーム画像であるとする。
図3に示すように、最初に画像処理装置1がフレーム画像入力処理を実行する(S10)。S10の処理では、フレーム画像入力部10が、動画カメラ20から対象フレーム画像framei _Inを入力する。S10の処理が終了すると、位置合わせ処理へ移行する(S12:位置合わせステップ)。
S12の処理では、位置合わせ部11が、対象フレーム画像framei _Inと前フレーム画像framei−1 _Inの出力フレーム画像framei−1 _Outとの間の位置合わせを行う。位置合わせは、上述の通り、種々の方法を採用することができるが、ここでは、画像情報のみで位置合わせする例を説明する。図4は、2枚のフレーム画像を用いて行う位置合わせを説明する図である。図4に示すように、出力フレーム画像framei−1 _Outの原点位置(0i−1,0i−1,1)と、対象フレーム画像framei _Inの原点位置(0i,0i,1)とを対応づけてもよいし、所定の特徴点同士、(xi−1,yi−1,1)と点(xi,yi,1)とを対応づけてもよい。S12の処理が終了すると、空間的補正処理へ移行する(S14:補正ステップ)。
S14の処理では、補正部12が対象フレーム画像framei _Inの画像情報のみを用いてノイズを除去する。補正部12は、例えば、対象フレーム画像framei _Inの全体に対して平滑化フィルタを適用する。平滑化フィルタにより、対象画素の周囲の領域に含まれる画素の画素値が平均化される。周囲の領域とは、対象画素を含む所定範囲である。所定範囲は、例えば、当該画素の8近傍の画素、24近傍の画素、又は、48近傍の画素等が用いられる。図5は、空間的補正処理を説明する概要図である。図5に示すように、対象フレーム画像framei _Inに対象画素P1が存在する。補正部12は、一例として、対象画素P1の8近傍の画素の画素値を用いて、対象画素P1の画素値を補正する。例えば、補正部12は、8近傍の画素の画素値の平均値に近づくように、対象画素P1の画素値を補正する。S14の処理が終了すると、時間的補正処理へ移行する(S16:補正ステップ)。
S16の処理では、補正部12が対象フレーム画像framei _Inの画像情報と、前フレーム画像framei−1 _Inの出力フレーム画像framei−1 _Outの画像情報を用いて、ノイズを除去する。図6は、時間的補正処理を説明する概要図である。図6に示すように、前フレーム画像framei−1 _Inの出力フレーム画像framei−1 _Outが、過去の前フレーム画像framei−2 _Inから前フレーム画像framei−n _Inまで参照して補正されているとする。この場合、前フレーム画像framei−1 _Inの出力フレーム画像framei−1 _Outの情報を用いて、対象フレーム画像framei _Inを補正することで、前フレーム画像framei−1 _Inから前フレーム画像framei−n _Inまで参照して補正した場合と同様の効果を奏する。よって、前フレーム画像framei−1 _Inの出力フレーム画像framei−1 _Outの画像情報のみを保存しておけばよいため、その他の過去の前フレーム画像については保持しなくてもよいことになる。よって、リソース削減及び処理効率化を図りつつ、優れたノイズ低減効果を提供することができる。
補正部12は、例えば、対象フレーム画像framei _Inの対象画素と、前フレーム画像framei−1 _Inの出力フレーム画像framei−1 _Outの画素とを参照し、平均化する。図7は、時間的補正処理を説明する概要である。図7では、対象フレーム画像framei _Inに対象画素P2iが存在し、出力フレーム画像framei−1 _Outに対象画素P2i−1が存在する。図7に示すように、補正部12は、対象フレーム画像framei _Inの対象画素P2iの画素値と、対象画素P2iに対応する位置にある画素P2i−1の画素値とを用いて、ノイズを除去した対象フレーム画像framei _Inを生成する。
さらに、補正部12は、動被写体が存在する場合には処理を変更してもよい。図8は、動被写体が存在する場合の時間的補正処理を説明する概要図である。図8では、対象フレーム画像framei _Inに対象画素P2iが存在し、出力フレーム画像framei−1 _Outに対象画素P2i−1が存在する。図8に示すように、対象フレーム画像framei _Inにおいては、対象画素P2iと動被写体とが重なっていないが、出力フレーム画像framei−1 _Outにおいては、対象画素P2i−1と動被写体とが重なっている。このように、動被写体が存在する場合には、対象画素P2iの画素値と、対象画素P2i−1の画素値との差分が大きくなる。したがって、例えば、対象画素P2iの画素値と、対象画素P2i−1の画素値との差分が所定値以上である場合には、時間的補正処理を行わないようにしてもよい。
また、補正部12は、対象画素P2iの画素値と画素P2i−1の画素値とに重みを付けて平均してもよい。一般的に、前フレームの画素値の重みが対象フレーム画像の画素値の重みよりも大きい場合には、ノイズ除去の効果は大きくなる。対応する位置の画素値の差分が大きい場合、すなわち所定値以上の差分が存在する場合には、時間的補正処理を行わないようにしてもよい。S16の処理が終了すると、出力フレーム画像生成処理へ移行する(S18:生成ステップ)。
S18の処理では、生成部13が、S16の処理で得られたノイズを除去した対象フレーム画像framei _Inから出力フレーム画像framei _Outを生成する。生成部13は、特に処理をすることなく、S16の処理で得られたノイズを除去した対象フレーム画像framei _Inを出力フレーム画像framei _Outとしてもよいし、切り出した領域を出力フレーム画像framei _Outとしてもよい。例えば、生成部13は、手ぶれ補正をする場合には、動画カメラ20の動きに基づいてノイズを除去した対象フレーム画像framei _Inから切り出す領域を決定し、決定された領域を切り出すことによって対象フレーム画像framei _Inの出力フレーム画像framei _Outを生成してもよい。図9は、領域の切り出しによる出力フレーム画像framei _Outの生成を説明する説明図である。図9の(A),(B)に示すように、動画カメラ20により連続撮像されたフレーム画像をframei−1、frameiとし、その中心位置をCfi−1、Cfiとする。画像処理装置1は、フレーム画像framei−1よりも小さい大きさの切り出し領域Ki−1を設定する。例えば、切り出し領域Ki−1の大きさは、フレーム画像framei−1の大きさの70〜90%となる。この切り出し領域Ki−1が出力フレーム画像となる。次に、動画カメラ20が(A)で示す撮像位置から(B)で示す撮像位置へ変化したとする(図9の(B)の実線の矢印で示す右上方向へのシフト)。この場合、フレーム画像framei−1よりも右上にシフトしたフレーム画像frameiが得られる。ここで、画像処理装置1は、フレーム画像framei−1とフレーム画像frameiとの間の動きを相殺する位置に、切り出し領域Kiを設定する(図9の(B)の点線の矢印で示す左下方向へのシフト)。これにより、切り出し領域Ki−1の中心位置Cfi−1とCfiとが同程度の位置となるため、あたかも静止しているかのような出力フレーム画像が生成され、表示部22へ出力される。なお、領域の切り出しは、単純な切り出しだけでなく、アフィン変換又は透視変換等と組み合わせた切り出しにより行われてもよい。
以上で図3に示す制御処理を終了する。図3に示す制御処理を実行することにより、補正前に位置合わせを行うことができるので、動画カメラ20のブレによるフレーム間の差分が広範囲に生じることを回避することが可能となる。よって、優れたノイズ除去効果を奏することができる。
次に、携帯端末(コンピュータ)2を上記画像処理装置1として機能させるための画像処理プログラムを説明する。
画像処理プログラムは、メインモジュール、入力モジュール及び演算処理モジュールを備えている。メインモジュールは、画像処理を統括的に制御する部分である。入力モジュールは、フレーム画像を取得するように携帯端末2を動作させる。演算処理モジュールは、位置合わせモジュール、補正モジュール及び生成モジュールを備えている。メインモジュール、入力モジュール及び演算処理モジュールを実行させることにより実現される機能は、上述した画像処理装置1のフレーム画像入力部10、位置合わせ部11、補正部12及び生成部13の機能とそれぞれ同様である。
画像処理プログラムは、例えば、ROM等の記録媒体または半導体メモリによって提供される。また、画像処理プログラムは、データ信号としてネットワークを介して提供されてもよい。
以上、第1実施形態に係る画像処理装置1、画像処理方法及び画像処理プログラムによれば、前フレーム画像の出力フレーム画像と対象フレーム画像とを対象フレーム画像の補正前に位置合わせすることができるので、対象フレーム画像と前フレーム画像との間の撮像装置の動きをキャンセルすることができる。よって、動きを抑制するためにノイズ除去の効果を弱くすることを回避することができるので、優れたノイズ除去効果を奏することが可能となる。
[第2実施形態]
ところで、撮像された動画には、フリッカが発生する場合がある。フリッカとは、被写体の明滅の周波数と、動画カメラ(撮像装置)のサンプリング周波数と、が異なる場合に、その周波数の差によって生じる動画の明滅である。このフリッカは振幅が大きいので、無理に除去しようとすると、ゴースト(残像)を生じることがある。以下では、このフリッカのような振幅が大きいノイズを含むノイズを除去するための画像処理装置を説明する。また、振幅が大きいノイズとしては、フリッカを例として説明する。
第2実施形態に係る画像処理装置1は、第1実施形態に係る画像処理装置1とほぼ同様に構成され、補正部12の一部機能が相違する。具体的には、補正部12が、対象フレーム画像から、より振幅が大きいノイズを除去するための補正を行う点が相違する。以下では、第1実施形態に係る画像処理装置1と相違する点を中心に説明し、重複する部分の説明は省略する。
補正部12は、対象フレーム画像のノイズを除去する補正を行う。フリッカは、動画の明滅であるので、時間ノイズとみなし得る。このため、補正部12は、第1実施形態と同様に、空間的補正処理及び時間的補正処理の2つの補正処理を組み合わせて、ノイズを除去する。空間的補正処理については、第1実施形態と同様であるので、その説明は省略する。なお、本実施形態において、位置合わせ後、時間的補正処理を行う前の対象フレーム画像及び前フレーム画像を入力フレーム画像と呼ぶ。
時間的補正処理は、フリッカを含む時間ノイズを除去するための補正処理である。補正部12は、対象フレーム画像の対象画素の画素値、及び、複数の前フレーム画像の対応画素の画素値の加重平均値を用いて、対象画素に対して時間的補正処理を行う。具体的には、補正部12は、複数の入力フレーム画像の画素の画素値に直接的に又は間接的にそれぞれ重み付けをし、重み付けした画素値の平均値を算出することによって加重平均値を算出する。複数の入力フレーム画像の画素の画素値の重みの合計が1になるように、各重みが設定されている場合には、補正部12は、重み付けした画素値を加算することによって、加重平均値を算出する。
図10は、入力フレーム画像の重みの一例を示す図である。図10では、対象フレーム画像のフレーム番号をiとし、対象フレーム画像を基準として過去に遡る順番で入力フレーム画像のフレーム番号をi−1、i−2、・・・としている。図10に示すように、複数の入力フレーム画像のうち、対象フレーム画像の画素値及び対象フレーム画像と時間的に近い過去の前フレーム画像の画素の画素値に対して重みが大きく設定され、対象フレーム画像と時間的に遠い過去の前フレーム画像の画素の画素値に対してゴーストが大きくならない程度に重みが設定される。つまり、入力フレーム画像の対応画素の画素値の重みは、過去の入力フレーム画像ほど小さく設定されており、複数の入力フレーム画像のうち、対象フレーム画像から過去に所定フレーム数分の前フレーム画像の対応画素の画素値の重みは、当該前フレーム画像よりも1フレーム後の前フレーム画像の対応画素の画素値の重み又は対象画素の画素値の重みとの差分が、対象フレーム画像よりも所定フレーム数分前の前フレーム画像の対応画素の画素値の重みと、所定フレーム数分前の前フレーム画像よりも1フレーム前の前フレーム画像の対応画素の画素値の重みと、の差分よりも小さくなるように設定される。言い換えると、対象フレーム画像から、対象フレーム画像よりも所定フレーム数分前の前フレーム画像までの入力フレーム画像については、時間的に隣り合う2つの入力フレーム画像の対応画素(対象フレーム画像の場合は対応画素)の重みの差分(差の絶対値)が、対象フレーム画像よりも所定フレーム数分前の前フレーム画像の対応画素の画素値の重みと、所定フレーム数分前の前フレーム画像よりもさらに1フレーム前の前フレーム画像の対応画素の画素値の重みと、の差分よりも小さくなるように設定される。所定フレーム数は、例えば、1〜2程度である。
なお、画素値の加重平均を行う補正フィルタは、複数の入力フレーム画像の画素の画素値に直接重み付けをし、重み付けした画素値を直接平均処理する非巡回型フィルタ、及び、前フレーム画像を補正した後の出力フレーム画像の画素の画素値を用いる巡回型フィルタ等として構成され得る。ここでは、組み込み型の実装を考慮して、巡回型フィルタを用いた時間的補正処理について説明する。
補正部12は、対象フレーム画像の対象画素の画素値及び対象フレーム画像と時間的に近い過去の所定フレーム数分の前フレーム画像の対応画素の画素値に直接重みを付与して加重平均値を算出し、加重平均値及び所定フレーム数分の前フレーム画像のいずれかの出力フレーム画像の対応画素の画素値を用いた巡回型フィルタによって、対象画素に対して時間的補正処理を行う。この巡回型フィルタに用いられる出力フレーム画像としては、対象フレーム画像の1フレーム前の前フレーム画像の出力フレーム画像が好ましい。補正部12は、例えば、対象フレーム画像の対象画素の画素値及び対象フレーム画像の1フレーム前の前フレーム画像の対応画素の画素値の加重平均と、対象フレーム画像の1フレーム前の前フレーム画像の出力フレーム画像と、を用いた巡回型フィルタによって、時間的補正処理を行う。
この巡回型フィルタを用いた時間的補正処理は、j番目の入力フレーム画像frame
j _Inの画素P
j Inの画素値I
j Inと、画素P
i Inを補正した後の画素P
i Outの画素値I
i Outと、画素P
i−1 Inを補正した後の画素P
i−1 Outの画素値I
i−1 Outと、各画素値I
j Inの重みw
jと、巡回型フィルタの係数αと、を用いて、式(1)で示される。ここでは、対象フレーム画像をi番目の入力フレーム画像としている。
式(1)の右辺第1項では、対象フレーム画像を含むn個の入力フレーム画像が用いられ、対象フレーム画像の画素値及び対象フレーム画像と時間的に近い過去の前フレーム画像の画素の画素値の加重平均値Iwaveが演算される。この演算では、対象フレーム画像と時間的に遠い過去の前フレーム画像の影響を受けることはないので、重みwjは大きく設定される。式(1)の右辺第2項では、対象フレーム画像の1フレーム前の前フレーム画像の画素を補正した後の画素が用いられ、巡回型フィルタの特徴が取り入れられている。これによって、対象フレーム画像と時間的に遠い過去の前フレーム画像の画素の画素値が、対象画素の画素値の平均化に用いられる。なお、式(1)の右辺第1項に用いられる入力フレーム画像の個数nは、画像処理装置1の性能と処理負荷とのバランスを考慮して決定される。個数nを大きくすると、バッファの容量が大きくなり、処理時間が長くなるので、個数nは、例えば2〜3程度である。
重みwjは、予め定められた定数であってもよい。時間的補正処理では、時間的に異なる位置の情報を用いるため、動被写体が描画されたフレーム画像の場合、重みwjを定数として演算すると不自然な画像になるおそれがある。このため、補正部12は、対象フレーム画像framei _Inの対象画素Pi Inの画素値Ii Inと、対象フレーム画像framei _Inと時間的に近い過去の前フレーム画像framej _Inの対応画素Pj Inの画素値Ij Inと、の差分に応じて、重みwjを動的に算出してもよい。例えば、補正部12は、上述の差分(差の絶対値)が所定値以上の場合には、対応画素Pj Inの画素値Ij Inが時間的補正処理に与える影響を小さくするために重みwjを小さく設定したり、差分が所定値以上の場合には、対応画素Pj Inの画素値Ij Inが時間的補正処理に用いられないように重みwjを設定してもよい。なお、差分の算出の際に、対象フレーム画像framei _Inと時間的に近い過去の前フレーム画像framej _Inは、対象フレーム画像framei _Inに対して位置合わせされる。
係数αは、0〜1の値である。係数αは、予め定められた定数であってもよい。重みwjと同様に、動被写体が描画されたフレーム画像の場合、係数αを定数として演算すると不自然な画像になるおそれがある。このため、補正部12は、対象フレーム画像の1フレーム前の前フレーム画像framei−1 _Inの出力フレーム画像framei−1 _Outの対応画素Pi−1 Outの画素値Ii−1 Outと、加重平均値Iwaveと、の差分に応じて、係数αを動的に算出してもよい。例えば、補正部12は、上述の差分(差の絶対値)が所定値以上の場合には、対応画素Pi−1 Outの画素値Ii−1 Outが時間的補正処理に与える影響を小さくするために係数αを小さく設定したり、差分が所定値以上の場合には、対応画素Pi−1 Outの画素値Ii−1 Outが時間的補正処理に用いられないように係数αを設定してもよい。なお、差分の算出の際に、出力フレーム画像framei−1 _Outは、対象フレーム画像framei _Inに対して位置合わせされる。
また、動被写体がある場合には、空間的補正処理が強くなるように、係数を設定してもよい。また、時間的補正処理は、ブロック単位で行われてもよい。ブロックとしては、対象となる画素の近傍8画素、24画素、48画素などの所定の画素が用いられ得る。
図11は、入力フレーム画像の重みの別の例を示す図である。図11に示す重みの分布は、式(1)において、個数nを2、係数αを1/2、重みwiを2/3、重みwi−1を1/3とすることによって得られる。この場合、対象フレーム画像及び対象フレーム画像の1フレーム前の前フレーム画像の画素の画素値については重みが1/3に設定され、対象フレーム画像の2フレーム以上前の前フレーム画像の画素の画素値については、過去に遡るにつれて重みが小さくなるように設定される。
補正部12は、上述した時間的補正処理あるいは上述した空間的補正処理及び時間的補正処理を組み合わせてノイズ除去を行う。補正部12は、空間的補正処理及び時間的補正処理を組み合わせて補正することにより、互いの処理のメリットを生かし、一層適切な補正をすることができる。補正部12は、補正された対象フレーム画像を生成部13へ出力する。
次に、第2実施形態に係る画像処理装置1の動作について説明する。画像処理装置1の動作は、第1実施形態に係る画像処理装置1の動作(図3)と比較して、時間的補正処理S16において相違する。ここでは、時間的補正処理S16についてのみ説明を行う。
図12は、第2実施形態に係る画像処理装置1の時間的補正処理S16の詳細を示すフローチャートである。図12に示すように、最初に補正部12が加重平均値Iwaveの算出に用いられる対象フレーム画像framei _In及び対象フレーム画像framei _Inと時間的に近い過去の前フレーム画像framej _Inの重みwjを決定する(S20)。S20の処理では、例えば、補正部12が対象フレーム画像framei _Inの対象画素Pi Inの画素値Ii Inと、対象フレーム画像framei _Inと時間的に近い過去の前フレーム画像framej _Inの対応画素Pj Inの画素値Ij Inと、の差分に応じて、重みwjを動的に算出する。S20の処理が終了すると、入力フレーム画像の平均算出処理(S22)へ移行する。
S22の処理では、補正部12が、S20において決定された重みwjを用いて、上述の式(1)の第1項を計算する。つまり、補正部12は、対象フレーム画像framei _Inの対象画素Pi Inの画素値Ii Inと、対象フレーム画像framei _Inと時間的に近い過去の前フレーム画像framej _Inの対応画素Pj Inの画素値Ij Inと、の加重平均値Iwaveを演算する。S22の処理が終了すると、係数αの決定処理(S24)へ移行する。
S24の処理では、例えば、補正部12が、前フレーム画像framei−1 _Inの出力フレーム画像framei−1 _Outの対応画素Pi−1 Outの画素値Ii−1 Outと、加重平均値Iwaveと、の差分に応じて、係数αを動的に算出する。S24の処理が終了すると、合成処理(S26)へ移行する。
S26の処理では、補正部12が、位置合わせされた前フレーム画像framei−1 _Inの出力フレーム画像framei−1 _Outの対応画素Pi−1 Outの画素値Ii−1 Outと、加重平均値Iwaveと、S24において決定された係数αと、を用いて、上述の式(1)を計算する。
以上で1つの対象画素Pi Inに対する時間的補正処理を終了する。以上の一連の処理が、各対象画素Pi Inに対して繰り返し行われる。そして、S16の処理が終了すると、出力フレーム画像生成処理(S18)へ移行する。
次に、巡回型フィルタを用いた画像処理装置と比較して、第2実施形態に係る画像処理装置1の作用効果を説明する。比較例の画像処理装置は、例えば、式(2)で示される巡回型フィルタを用いて、時間的補正処理を行うものとする。つまり、比較例の画像処理装置は、対象フレーム画像の対象画素の画素値及び対象フレーム画像の1フレーム前の前フレーム画像に対する出力フレーム画像の対応画素の画素値を用いて、対象画素に対して時間的補正処理を行う。
図13は、巡回型フィルタを用いた場合の入力フレーム画像の重みの一例を示す図である。図13において、グラフR1は、係数αを大きく設定した場合の入力フレーム画像の重みを示し、グラフR2は、係数αを小さく設定した場合の入力フレーム画像の重みを示している。グラフR1に示すように、係数αが大きいほど、入力フレーム画像の平均効果を向上させることができるが、過去の入力フレーム画像の影響が大きくなるので、ゴーストも大きくなる。また、グラフR2に示すように、係数αが小さいほど、過去の入力フレーム画像の影響が小さくなるので、ゴーストを抑制できるが、入力フレーム画像の平均効果が弱まる。
一方、図10に示すように、第2実施形態に係る画像処理装置1では、入力フレーム画像の対応画素の画素値の重みは、過去の入力フレーム画像ほど小さく設定されており、複数の入力フレーム画像のうち、対象フレーム画像から過去に所定フレーム数分の前フレーム画像の対応画素の画素値の重みについては、当該前フレーム画像よりも1フレーム後の前フレーム画像の対応画素の画素値の重み又は対象画素の画素値の重みとの差分が、対象フレーム画像よりも所定フレーム数分前の前フレーム画像の対応画素の画素値の重みと、所定フレーム数分前の前フレーム画像よりも1フレーム前の前フレーム画像の対応画素の画素値の重みと、の差分よりも小さくなるように設定される。このため、過去の入力フレーム画像の重みをある程度抑えつつ、対象フレームから過去に所定フレーム数分の前フレーム画像の重みを対象フレームの重みと同程度とすることができる。過去の入力フレーム画像の重みをある程度抑えることによって、ゴーストを軽減することができる。また、対象フレームから過去に所定フレーム数分の前フレーム画像の重みを対象フレームの重みと同程度とすることによって、平均効果を得ることができる。その結果、ゴーストを生じさせることなく、フリッカ等の振幅が大きいノイズを除去することが可能となる。
また、画像処理装置1は、対象フレーム画像を含むn個の入力フレーム画像の対応する画素の画素値に直接重みを付与して加重平均値を算出し、加重平均値及び対象フレーム画像より1フレーム前の前フレーム画像に対する出力フレーム画像の対応画素の画素値を用いて、対象画素に対して時間的補正処理を行っている。このため、n個の入力フレーム画像及び出力フレーム画像だけを保存しておけばよい。したがって、加重平均値の算出に用いられる入力フレーム画像の数を適切に設定することによって、保存する入力フレーム画像の数を減らすことができるとともに、処理量を低減することができる。これにより、リソース削減及び処理効率化を図ることが可能となる。
なお、上述した実施形態は本発明に係る画像処理装置の一例を示すものである。本発明に係る画像処理装置は、実施形態に係る画像処理装置1に限られるものではなく、各請求項に記載した要旨を変更しない範囲で、実施形態に係る画像処理装置を変形し、又は他のものに適用したものであってもよい。
例えば、上述した実施形態では、動画カメラ20が動画を撮像する例を説明したが、動画カメラ20は、静止画像を連続撮像するものであってもよい。フレーム画像入力部10が入力する画像は、別の機器からネットワークを介して送信された画像であってもよい。
また、上述した実施形態では、動画カメラ20により撮像された画像の大きさは同一であるとして説明したが、撮像された画像の大きさは撮像の度に異なる大きさであってもよい。
また、上述した実施形態では、補正部12が、時間的補正処理及び空間的補正処理の2つの補正処理を行う例を説明したが、補正部12が、時間的補正処理及び空間的補正処理の何れか一方を行う場合であってもよい。
また、上述した実施形態では、補正部12が、図3の処理において位置合わせ処理(S12)の後に空間的補正処理(S14)を行う例を説明したが、空間的補正処理(S14)は、位置合わせ処理(S12)の前に行ってもよいし、時間的補正処理(S16)の後に行ってもよい。
また、上述した実施形態において、位置合わせ処理部の後に、生成部13が切り出し領域を決定し、その後に補正部12がノイズ除去を行ってもよい。この場合、補正部12は、少なくとも切り出し領域内の画素を対象として補正してもよい。すなわち、補正部12は、対象フレーム画像の領域とは異なる領域の少なくとも一部に含まれる画素については、処理の対象としなくてもよい。この場合、処理効率を向上させることができる。
また、上述した実施形態の空間的補正処理における補正は、色差成分だけでもよい。また、上述した実施形態の時間的補正処理における補正は、色差成分だけでもよい。また、時間的補正処理及び空間的補正処理それぞれに重みを付与して、補正度合いを調整してもよい。
また、第2実施形態に係る補正部12は、非巡回型フィルタを用いて時間的補正処理を行ってもよい。つまり、補正部12は、入力フレーム画像の対応する画素の画素値(対象フレーム画像の対象画素の画素値及び複数の前フレーム画像の対応画素の画素値)に直接重み付けをして、対象画素に対して時間的補正処理を行ってもよい。非巡回型フィルタを用いた時間的補正処理は、j番目の入力フレーム画像frame
j _Inの画素P
j Inの画素値I
j Inと、画素P
i Inを補正した後の画素P
i Outの画素値I
i Outと、各画素値I
j Inの重みw
jと、を用いて、式(3)で示される。ここでは、画素P
i Inを含むm個の入力フレーム画像の画素が用いられる。この方法では、複数のフレーム画像が直接用いられるので、バッファの容量が大きくなり、処理時間が長くなるおそれがあるが、入力フレーム画像の画素値にそれぞれ直接重み付けすることが可能となる。このため、動被写体を含む画素の画素値の影響を小さくする等、時間的補正処理の自由度を向上させることができる。
また、第2実施形態に係る補正部12は、式(1)又は式(3)等で示されるフリッカ除去用の補正フィルタ(第2補正フィルタ)に加えて、式(2)で示される補正フィルタ(第1補正フィルタ)を備えていてもよい。補正部12は、対象画素に応じて、第1補正フィルタと、第2補正フィルタと、を切り替えて、対象画素に対して時間的補正処理を行ってもよい。例えば、画像処理装置1が携帯端末2のユーザによって設定可能なフリッカ除去モードを有しており、フリッカ除去モードが設定されていない場合には、補正部12は、第1補正フィルタを用いて時間的補正処理を行い、フリッカ除去モードが設定されている場合には、補正部12は、第2補正フィルタを用いて時間的補正処理を行ってもよい。また、画像処理装置1はフリッカの有無を判定するフリッカ判定部をさらに備えてもよく、フリッカ判定部によってフリッカが無いと判定された場合に、補正部12は、第1補正フィルタを用いて時間的補正処理を行い、フリッカ判定部によってフリッカがあると判定された場合に、補正部12は、第2補正フィルタを用いて時間的補正処理を行ってもよい。なお、フリッカ判定部は公知のフリッカ判定方法を用いてフリッカの有無を判定する。フリッカ判定部は、例えば、画素の画素値の時間的な変化量が所定の閾値以上であれば当該画素にフリッカがあると判定し、画素の画素値の時間的な変化量が所定の閾値未満であれば当該画素にフリッカが無いと判定する。この構成によれば、対象画素に応じて、適切な補正フィルタを選択することが可能となる。
本発明の他の側面に係る画像処理方法は、撮像装置により得られたフレーム画像を入力して処理することによって出力フレーム画像を生成する画像処理方法であって、処理対象となる対象フレーム画像よりも前に入力された前フレーム画像又は当該前フレーム画像の出力フレーム画像と、対象フレーム画像とを位置合わせする位置合わせステップと、前フレーム画像又は前フレーム画像の出力フレーム画像を記録する記録部を参照し、位置合わせステップにより位置合わせされた前フレーム画像の画素値又は前フレーム画像の出力フレーム画像の画素値を用いて対象フレーム画像の画素値を補正する時間的補正処理を行う補正ステップと、補正ステップにより補正された対象フレーム画像を用いて、対象フレーム画像の出力フレーム画像を生成する生成ステップと、を備える。補正ステップでは、対象フレーム画像の対象画素の画素値、及び、複数の前フレーム画像の対応画素の画素値の加重平均値を用いて、対象画素に対して時間的補正処理を行う。前フレーム画像の対応画素の画素値の重みは、過去の前フレーム画像ほど小さく設定され、複数の前フレーム画像のうち、対象フレーム画像から過去に所定フレーム数分の前フレーム画像の対応画素の画素値の重みは、当該前フレーム画像よりも1フレーム後の前フレーム画像の対応画素の画素値の重み又は対象画素の画素値の重みとの差分が、対象フレーム画像よりも所定フレーム数分前の前フレーム画像の対応画素の画素値の重みと、所定フレーム数分前の前フレーム画像よりも1フレーム前の前フレーム画像の対応画素の画素値の重みと、の差分よりも小さくなるように設定される。
本発明のさらに他の側面に係る画像処理プログラムは、撮像装置により得られたフレーム画像を入力して処理することによって出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムであって、コンピュータを、処理対象となる対象フレーム画像よりも前に入力された前フレーム画像又は前フレーム画像の出力フレーム画像を記録する記録部、前フレーム画像又は前フレーム画像の出力フレーム画像と、対象フレーム画像とを位置合わせする位置合わせ部、記録部を参照し、位置合わせ部により位置合わせされた前フレーム画像の画素値又は前フレーム画像の出力フレーム画像の画素値を用いて対象フレーム画像の画素値を補正する時間的補正処理を行う補正部、及び、補正部により補正された対象フレーム画像を用いて、対象フレーム画像の出力フレーム画像を生成する生成部として機能させる。補正部は、対象フレーム画像の対象画素の画素値、及び、複数の前フレーム画像の対応画素の画素値の加重平均値を用いて、対象画素に対して時間的補正処理を行う。前フレーム画像の対応画素の画素値の重みは、過去の前フレーム画像ほど小さく設定され、複数の前フレーム画像のうち、対象フレーム画像から過去に所定フレーム数分の前フレーム画像の対応画素の画素値の重みは、当該前フレーム画像よりも1フレーム後の前フレーム画像の対応画素の画素値の重み又は対象画素の画素値の重みとの差分が、対象フレーム画像よりも所定フレーム数分前の前フレーム画像の対応画素の画素値の重みと、所定フレーム数分前の前フレーム画像よりも1フレーム前の前フレーム画像の対応画素の画素値の重みと、の差分よりも小さくなるように設定される。
本発明のさらに他の側面に係る記録媒体は、撮像装置により得られたフレーム画像を入力して処理することによって出力フレーム画像を生成するようにコンピュータを機能させる画像処理プログラムを記録したコンピュータ読取可能な記録媒体であって、コンピュータを、処理対象となる対象フレーム画像よりも前に入力された前フレーム画像又は前フレーム画像の出力フレーム画像を記録する記録部、前フレーム画像又は前フレーム画像の出力フレーム画像と、対象フレーム画像とを位置合わせする位置合わせ部、記録部を参照し、位置合わせ部により位置合わせされた前フレーム画像の画素値又は前フレーム画像の出力フレーム画像の画素値を用いて対象フレーム画像の画素値を補正する時間的補正処理を行う補正部、及び、補正部により補正された対象フレーム画像を用いて、対象フレーム画像の出力フレーム画像を生成する生成部として機能させる画像処理プログラムを記録して構成される。補正部は、対象フレーム画像の対象画素の画素値、及び、複数の前フレーム画像の対応画素の画素値の加重平均値を用いて、対象画素に対して時間的補正処理を行う。前フレーム画像の対応画素の画素値の重みは、過去の前フレーム画像ほど小さく設定され、複数の前フレーム画像のうち、対象フレーム画像から過去に所定フレーム数分の前フレーム画像の対応画素の画素値の重みは、当該前フレーム画像よりも1フレーム後の前フレーム画像の対応画素の画素値の重み又は対象画素の画素値の重みとの差分が、対象フレーム画像よりも所定フレーム数分前の前フレーム画像の対応画素の画素値の重みと、所定フレーム数分前の前フレーム画像よりも1フレーム前の前フレーム画像の対応画素の画素値の重みと、の差分よりも小さくなるように設定される。
図10は、入力フレーム画像の重みの一例を示す図である。図10では、対象フレーム画像のフレーム番号をiとし、対象フレーム画像を基準として過去に遡る順番で入力フレーム画像のフレーム番号をi−1、i−2、・・・としている。図10に示すように、複数の入力フレーム画像のうち、対象フレーム画像の画素値及び対象フレーム画像と時間的に近い過去の前フレーム画像の画素の画素値に対して重みが大きく設定され、対象フレーム画像と時間的に遠い過去の前フレーム画像の画素の画素値に対してゴーストが大きくならない程度に重みが設定される。つまり、入力フレーム画像の対応画素の画素値の重みは、過去の入力フレーム画像ほど小さく設定されており、複数の入力フレーム画像のうち、対象フレーム画像から過去に所定フレーム数分の前フレーム画像の対応画素の画素値の重みは、当該前フレーム画像よりも1フレーム後の前フレーム画像の対応画素の画素値の重み又は対象画素の画素値の重みとの差分が、対象フレーム画像よりも所定フレーム数分前の前フレーム画像の対応画素の画素値の重みと、所定フレーム数分前の前フレーム画像よりも1フレーム前の前フレーム画像の対応画素の画素値の重みと、の差分よりも小さくなるように設定される。言い換えると、対象フレーム画像から、対象フレーム画像よりも所定フレーム数分前の前フレーム画像までの入力フレーム画像については、時間的に隣り合う2つの入力フレーム画像の対応画素(対象フレーム画像の場合は対象画素)の重みの差分(差の絶対値)が、対象フレーム画像よりも所定フレーム数分前の前フレーム画像の対応画素の画素値の重みと、所定フレーム数分前の前フレーム画像よりもさらに1フレーム前の前フレーム画像の対応画素の画素値の重みと、の差分よりも小さくなるように設定される。所定フレーム数は、例えば、1〜2程度である。