(57)【要約】【課題】大気ゆらぎに起因するボケが除去された動画像を生成する。【解決手段】本発明の画像処理装置は、入力された動画像のフレームからパッチを抽出する抽出手段と、前記抽出されたパッチのボケ量を算出する算出手段と、前記算出されたボケ量に基づいて、同一の被写体を含み、かつ、時系列的に連続する複数のパッチから構成されるパッチグループにおける基準パッチを決定する決定手段と、着目パッチと前記基準パッチとのボケ量の差に基づいて前記着目パッチのボケを除去する除去手段と、ボケが除去された前記複数のパッチを統合して出力される動画像のフレームを生成する生成手段と、を備えることを特徴とする。【選択図】図５
2019053588.tif 000002
【特許請求の範囲】
【請求項１】
入力された動画像のフレームからパッチを抽出する抽出手段と、
前記抽出されたパッチのボケ量を算出する算出手段と、
前記算出されたボケ量に基づいて、同一の被写体を含み、かつ、時系列的に連続する複数のパッチから構成されるパッチグループにおける基準パッチを決定する決定手段と、
着目パッチと前記基準パッチとのボケ量の差に基づいて前記着目パッチのボケを除去する除去手段と、
ボケが除去された前記複数のパッチを統合して出力される動画像のフレームを生成する生成手段と、を備える
ことを特徴とする画像処理装置。
【請求項２】
前記算出手段は、前記抽出されたパッチにおける画素値の分散を用いた演算結果、前記抽出されたパッチにおける画素値の１次微分値、前記抽出されたパッチにおける画素値の最大値および最小値を用いた演算結果のうちいずれかを、前記ボケ量として算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記入力された動画像のフレームにおける局所的な歪みを補正する非剛体位置合わせ手段をさらに備えることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記決定手段は、前記複数のパッチのうち、ボケ量が最も少ないパッチを前記基準パッチとして決定することを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記除去手段は、前記ボケ量の差に関連付けられて記憶されているフィルタをルックアップテーブルから読み出し、前記読み出されたフィルタを用いて前記着目パッチのボケを除去することを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
前記除去手段は、前記ボケ量の差に応じて学習済みの基底の交換を行うことにより前記着目パッチのボケを除去することを特徴とする請求項１から５のいずれか１項に記載の画像処理装置。
【請求項７】
前記入力された動画像のフレームから移動物体を検出する検出手段と、
前記検出された移動物体を追跡する追跡手段と、
前記追跡した移動物体の軌跡に従って、同一の移動物体を含み、かつ、時系列的に連続する複数のパッチから構成されるパッチグループを選択する選択手段と、をさらに備える
ことを特徴とする請求項１から６のいずれか１項に記載の画像処理装置。
【請求項８】
前記追跡手段は、前記検出された移動物体における同一位置を追跡することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記選択手段は、前記検出された移動物体によって遮蔽されていない被写体を含む複数のパッチから構成されるように前記パッチグループを選択することを特徴とする請求項７または８に記載の画像処理装置。
【請求項１０】
入力された動画像のフレームからパッチを抽出する抽出ステップと、
前記抽出されたパッチのボケ量を算出する算出ステップと、
前記算出されたボケ量に基づいて、同一の被写体を含み、かつ、時系列的に連続する複数のパッチから構成されるパッチグループにおける基準パッチを決定する決定ステップと、
着目パッチと前記基準パッチとのボケ量の差に基づいて前記着目パッチのボケを除去する除去ステップと、
ボケが除去された前記複数のパッチを統合して出力される動画像のフレームを生成する生成ステップと、を備える
ことを特徴とする画像処理方法。
【請求項１１】
コンピュータを、請求項１から請求項９のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大気ゆらぎに起因する画像の劣化を補正する画像処理技術に関する。
【背景技術】
【０００２】
従来より、大気ゆらぎに起因する画像の劣化を補正する画像処理技術（以下「大気ゆらぎ補正」と記す）が適用された監視カメラシステムなどが知られている。ここで、大気ゆらぎとは、大気の乱流や温度差によって光の屈折率が空間的および時間的に変化する自然現象を指し、一般的に陽炎とも呼ばれる。大気ゆらぎによって光の屈折率が変化してしまうため、大気ゆらぎに起因する画像の劣化は、例えば望遠レンズを備えるカメラで遠方の被写体を撮影した場合に顕著に発生する。このような大気ゆらぎに起因する画像の劣化は、被写体の歪みと、局所ごとに不均一なボケとが重畳的に発生するという特徴がある。さらに、動画像では、大気ゆらぎの影響によってフレームごとに位置と量とが異なるボケが発生してしまう場合がある。
【０００３】
大気ゆらぎ補正を高精度に行うためには、被写体の歪みを補正するための幾何的補正と、局所ごとに不均一なボケを除去するボケ除去との２つの処理を行う必要がある。非特許文献１は、幾何的補正とボケ除去との２つの処理を行う画像処理技術を開示している。非特許文献１に記載のボケ除去処理によれば、動画像のフレームがパッチに分割され、同一位置において時系列的に連続するパッチ群の画素位置ごとに時系列の加重平均値が算出される。そして、最終的に算出された加重平均値を用いて１枚の静止画像が出力される。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｘ．  Ｚｈｕ，Ｐ．  Ｍｉｌａｎｆａｒ，“Ｒｅｍｏｖｉｎｇ  ａｔｍｏｓｐｈｅｒｉｃ  ｔｕｒｂｕｌｅｎｃｅ  ｖｉａ  ｓｐａｃｅ―ｉｎｖａｒｉａｎｔ  ｄｅｃｏｎｖｏｌｕｔｉｏｎ”，２０１３，ＩＥＥＥ  Ｔｒａｎｓ．  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，ｐ．１５７−１７０
【特許文献】
【０００５】
【特許文献１】特開２０１５−０４１２００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１に記載の画像処理技術によれば、幾何的補正が施された１００フレーム程度からボケが除去された１枚の静止画像が出力されるため、大気ゆらぎに起因するボケが除去された動画像を得ることが困難である。また、被写体が移動物体である場合、被写体の近傍で画像が破綻してしまう。さらに、フレームごとに明るさの変動がある場合、出力される静止画像における明るさが不均一になるという弊害が発生する。
【０００７】
この点、特許文献１には、１枚の入力画像に対して、局所ごとに不均一なボケが除去された１枚の出力画像を生成するボケ除去手法について開示されている。しかしながら、特許文献１に記載のボケ除去手法は、ボケの分布が関数で仮定されるため、大気ゆらぎに起因する複雑なボケの分布を特定することが困難である。
【０００８】
本発明は上記課題に鑑みなされたものであり、大気ゆらぎに起因するボケが除去された動画像を生成することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の画像処理装置は、入力された動画像のフレームからパッチを抽出する抽出手段と、前記抽出されたパッチのボケ量を算出する算出手段と、前記算出されたボケ量に基づいて、同一の被写体を含み、かつ、時系列的に連続する複数のパッチから構成されるパッチグループにおける基準パッチを決定する決定手段と、着目パッチと前記基準パッチとのボケ量の差に基づいて前記着目パッチのボケを除去する除去手段と、ボケが除去された前記複数のパッチを統合して出力される動画像のフレームを生成する生成手段と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、大気ゆらぎに起因するボケが除去された動画像を生成することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１における画像処理装置のハードウェア構成例を示す図である。
【図２】実施形態１における画像処理装置の機能構成例を示すブロック図である。
【図３】実施形態１におけるボケ除去手順例を示すフローチャートである。
【図４】実施形態１において局所的なボケ量の遷移例を示すグラフである。
【図５】実施形態１において局所的なボケが除去される様子を示す模式図である。
【図６】実施形態２における画像処理装置の機能構成例を示すブロック図である。
【図７】実施形態２におけるボケ除去手順例を示すフローチャートである。
【図８】実施形態２における動画像のフレーム例と２値マップ例とを示す模式図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を参照して説明する。ただし、この実施形態に記載されている構成はあくまで例示であり、本発明の範囲を必ずしもそれらに限定する趣旨のものではない。
【００１３】
［実施形態１］
図１は、本実施形態における画像処理装置１００のハードウェア構成例を示す図である。本実施形態の画像処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、２次記憶装置１０４、入力インターフェース１０５、出力インターフェース１０６を含む。画像処理装置１００の各構成要素はシステムバス１０７によって相互に通信可能に接続されている。また、画像処理装置１００は、入力インターフェース１０５を介して外部記憶装置１０８および操作部１１０に接続されている。また、画像処理装置１００は、出力インターフェース１０６を介して外部記憶装置１０８および表示装置１０９に接続されている。
【００１４】
ＣＰＵ１０１は、ＲＡＭ１０２をワークメモリとして、ＲＯＭ１０３や２次記憶装置１０４に格納されたプログラムを実行し、システムバス１０７を介して画像処理装置１００の各構成を統括的に制御する。これにより、後述する様々な処理が実行される。２次記憶装置１０４は、画像処理装置１００で取り扱われる種々のデータを記憶する記憶装置であり、本実施形態ではハードディスクドライブが用いられる。ＣＰＵ１０１は、システムバス１０７を介して２次記憶装置１０４へのデータの書き込みおよび２次記憶装置１０４に記憶されたデータの読出しを行う。なお、２次記憶装置１０４にはＨＤＤの他に、光ディスクドライブやフラッシュメモリなど、様々な記憶デバイスを用いることが可能である。
【００１５】
入力インターフェース１０５は、例えばＵＳＢやＩＥＥＥ１３９４などのシリアルバスインターフェースである。画像処理装置１００は、入力インターフェース１０５を介して、外部装置からデータや命令などの入力を受け付ける。本実施形態では、画像処理装置１００は、入力インターフェース１０５を介して、外部記憶装置１０８（例えば、ハードディスク、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリなどの記憶媒体）からデータを取得する。また本実施形態では、画像処理装置１００は、操作部１１０に入力されたユーザの指示を、入力インターフェース１０５を介して取得する。操作部１１０は、マウスやキーボードなどの入力装置であり、ユーザの指示を受け付けることができる。
【００１６】
出力インターフェース１０６は、入力インターフェース１０５と同様にＵＳＢやＩＥＥＥ１３９４などのシリアルバスインターフェースである。なお、出力インターフェース１０６は、例えばＤＶＩやＨＤＭＩなどの映像出力端子であってもよい。画像処理装置１００は、出力インターフェース１０６を介して、外部装置にデータなどを出力することができる。本実施形態では、画像処理装置１００は、出力インターフェース１０６を介して表示装置１０９（液晶ディスプレイなどの各種画像表示デバイス）に、ＣＰＵ１０１によって処理されたデータ（例えば、画像データ）を出力する。なお、画像処理装置１００の構成要素は上記以外にも存在するが、本実施形態の主眼ではないため説明を省略する。
【００１７】
以下、本実施形態における画像処理装置１００が実行する処理について、図２に示される機能ブロック図と、図３に示されるフローチャートとを参照して説明する。本実施形態では、カメラで撮影された被写体（すなわち、画像処理装置１００に入力された動画像のフレームに含まれる被写体）は全て静止していると仮定する。図２は、本実施形態における画像処理装置１００の機能構成例を示すブロック図である。画像処理装置１００は、図２に示されるように、画像取得部２０１、パッチ抽出部２０２、ボケ量算出部２０３、パッチグループ選択部２０４、基準パッチ決定部２０５、ボケ除去部２０６、パッチ統合部２０７、および、画像出力部２０８を有する。画像取得部２０１は、記憶領域から複数フレームが含まれる画像データを取得する。パッチ抽出部２０２は、取得された複数フレームそれぞれからパッチを抽出する。ボケ量算出部２０３は、抽出されたパッチのボケ量を算出する。パッチグループ選択部２０４は、時系列的に連続する複数のパッチから構成されるパッチグループを選択する。基準パッチ決定部２０５は、選択されたパッチグループにおける基準パッチを決定する。ボケ除去部２０６は、選択されたパッチグループにおける各パッチのボケ量を低減または除去する。パッチ統合部２０７は、ボケが除去されたパッチを統合して出力される動画像のフレームを生成する。画像出力部２０８は、ボケが除去された動画像を出力する。図２における各ブロックの機能は、ＣＰＵ１０１がＲＯＭ１０３などの記憶領域に格納されたプログラムコードをＲＡＭ１０２に読み出して実行することにより実現される。あるいはまた、図２におけるブロックの一部または全部の機能をＡＳＩＣや電子回路などのハードウェアで実現してもよい。これらは図６の機能ブロック図についても同様である。
【００１８】
以下、本実施形態におけるボケ除去手順例について、図３のフローチャートを参照して説明する。図３に示されるフローチャートの処理は、ＣＰＵ１０１がＲＯＭ１０３などの記憶領域に格納されたプログラムコードをＲＡＭ１０２に読み出して実行することにより実現される。以下の各記号Ｓは、フローチャートにおけるステップであることを意味する。これらは図７のフローチャートについても同様である。
【００１９】
Ｓ３０１において、画像取得部２０１は、２次記憶装置１０４または外部記憶装置１０８から複数フレームが含まれる画像データを取得する。そして、画像取得部２０１は、取得した画像データをパッチ抽出部２０２に送出する。ここで取得される画像データは、例えば、カメラによって撮影された複数フレームが含まれる動画像データである。このような画像データは、現像、圧縮、位置合わせなどの処理が行われた画像であってもよい。
【００２０】
位置合わせ（レジストレーション）は、剛体位置合わせと、非剛体位置合わせとが知られている。剛体位置合わせでは、任意の基準画像を用意し、基準画像と着目画像とにおける静止被写体の特徴点の対応に基づき射影変換行列が推定され、画像全体に射影変換に基づく変形（ワーピング）が行われる。剛体位置合わせにより、カメラのブレに起因したフレーム間の被写体の位置ずれを補正することができる。非剛体位置合わせでは、任意の基準画像と着目画像との間に等間隔に制御点が配置され、２つの画像の距離（類似度）が一定の基準よりも近くなるまで制御点の位置が反復的に更新され、制御点の位置に基づき画像の変形（ワーピング）が行われる。非剛体位置合わせにより、大気ゆらぎに起因する局所的な画像の歪みを除去することができる。これらのような位置合わせと、本実施形態におけるボケ除去とを併用することにより、ゆらぎ補正をより高精度に行うことができる。なお、基準画像は取得した画像の任意の１枚を用いてもよいし、複数フレームの平均をとった画像を用いてもよい。
【００２１】
Ｓ３０２において、パッチ抽出部２０２は、Ｓ３０１で取得された動画像の各フレームからパッチを抽出する。このパッチは着目フレームにおける一部の領域が抽出されたものであり、着目フレームにおいて互いに重なりを有していてもよい。これらのパッチが着目フレーム全体を埋め尽くすことが望ましい。また、パッチの形状は任意だが全て同一であるものとする。
【００２２】
Ｓ３０３において、ボケ量算出部２０３は、各パッチのボケ量を算出する。本実施形態において、ボケ量とは、パッチに含まれるボケの程度を定量化した指標である。例えば、パッチにおける画素値の分散を用いた演算結果、パッチにおける画素値の１次微分値、パッチにおける画素値の最大値および最小値を用いた演算結果などがボケ量として算出される。算出されたボケ量のデータは、２次記憶装置１０４などに保存され、後述の処理で用いられる。
【００２３】
Ｓ３０４において、パッチグループ選択部２０４は、時系列的に連続する複数のパッチから構成されるパッチグループを選択する。本実施形態において、パッチグループは、動画像のフレームにおいて同一の被写体が含まれる領域が抽出された複数のパッチから構成される。上述の通り、本実施形態では、動画像のフレームに含まれる被写体は全て静止していると仮定されているため、選択されるパッチグループは、各フレームにおける同一の領域が抽出されたパッチ群によって構成される。
【００２４】
Ｓ３０５において、基準パッチ決定部２０５は、Ｓ３０３で算出された各パッチのボケ量に基づいて、Ｓ３０４で選択されたパッチグループにおける基準パッチを決定する。本実施形態では、パッチグループにおけるパッチのうちボケ量が最も少ないパッチが基準パッチとして決定されるが、基準パッチの決定はこの手法に限定されない。
【００２５】
Ｓ３０６において、ボケ除去部２０６は、各パッチのボケ量を低減する補正を行う。画像処理技術の分野において、ボケ量を低減する（またはボケを除去する）ための一般的な手法として、デコンボリューション処理が知られている。これは、既知のフィルタが畳み込まれたボケ画像から元の鮮鋭な画像を復元する処理であって、具体的にはフィルタの畳み込み演算の逆演算が行われる。画像データ（パッチ）に対してデコンボリューション処理を施すためには、畳み込み演算で用いられたフィルタが既知である必要があり、本実施形態では、このフィルタを決定するために前述のボケ量が用いられる。
【００２６】
以下に、フィルタを決定する手法の一例を示す。まず、パッチグループにおける各パッチのボケ量と、基準パッチのボケ量との差が算出される。次に、ボケ量の差をパラメータとするフィルタが生成される。例えば、ボケ量の差に所定の変換を行った結果を標準偏差とするガウス関数をフィルタとする手法を適用することができる。あるいはまた、ボケ量の差と、デコンボリューション処理に用いるべきフィルタとの関係を事前に学習しておき、ボケ量の差が与えられた場合に、自動的にフィルタを出力する手法も適用することができる。これらの手法によれば、ボケ量の差に関連付けられたフィルタをルックアップテーブルとして２次記憶装置１０４または外部記憶装置１０８に記憶しておき、Ｓ３０６の処理を実行する際に上記フィルタを読み出して参照することができる。
【００２７】
一般的に、画像に含まれるボケは、被写体およびカメラの動きに起因するボケと、光学系や媒質が引き起こす収差に起因するボケとの２つに分類され得る。このうち、本実施形態では、後者のボケを対象としてボケの除去を実行する。特に大気ゆらぎは、収差がランダムかつ高速に変化することに起因するため、等方的なボケが画像に含まれる事になる。この等方的なボケは、等方的な２次元のガウス関数を画像に畳み込む処理によって、上記ボケが含まれる画像に近似した画像を得ることができる。そのため、ボケ量という１次元の量からフィルタという多次元の量を一意に同定することが可能となる。
【００２８】
このようにして生成されたフィルタは、ボケ量の差が大きいほど広がりが大きいという特性を有する。拡がりが大きいフィルタを参照してデコンボリューションを行った場合、画像（パッチ）からボケが除去される効果が大きくなる。デコンボリューションの手法としては、例えばウィーナーフィルタを用いるデコンボリューションが挙げられる。ウィーナーフィルタを用いるデコンボリューションは、具体的には、周波数空間における除算によって畳み込みの逆演算を行う手法であり、前述の方法で決定されたフィルタをフーリエ変換したデータを演算に用いる。ウィーナーフィルタによるパッチのボケ除去は、以下の（式１）および（式２）で表すことができる。  
【００２９】
【数１】
2019053588.tif 000003
【００３０】
【数２】
2019053588.tif 000004
【００３１】
ここで、ｆ（ｘ，ｙ）はボケが除去されたパッチの画素値を表す関数を、ｇ（ｘ，ｙ）はボケ除去前のパッチの画素値を表す関数を、（ｘ，ｙ）はパッチにおける画素位置の座標をそれぞれ表す。そして、（ｕ，ｖ）は周波数座標を、Ｆは離散フーリエ変換を、ｈ（ｘ，ｙ）はフィルタを、Γは定数を、＊は複素共役をそれぞれ表す。
【００３２】
フーリエ変換に基づくデコンボリューションを行う場合、前処理を行わないとパッチの周縁部に縞状の誤ったノイズパターンが発生する。そこで、デコンボリューションの前処理として、パッチ中心からパッチ周縁にかけて強度が単調減少する窓関数をパッチの各画素に乗じる。後述するパッチ統合部２０７は、デコンボリューション後のパッチを統合する際に、上記窓関数に基づいた重みを乗じる。具体的には、各パッチが互いに一定幅の重なりを有しているものとして、各パッチを上記窓関数に置き換え、重なり部は和をとった規格化関数を生成する。そして、パッチ統合部２０７は、各パッチに対し独立にデコンボリューションを行い、それらのパッチを重なり部は和をとって合成し、最後に規格化関数で除算する。このように、パッチが統合される際に窓関数が用いられることにより、アーティファクトが抑制された画像を得ることができる。
【００３３】
さらに、このような周波数空間において演算を行う手法以外に、実空間で演算を行う手法を適用してもよい。具体的には、以下の（式３）で与えられるフィルタｈ（ｘ，ｙ）を各パッチに畳み込む。これにより、フーリエ変換に必要な演算コストを低減させることができる。
【００３４】
【数３】
2019053588.tif 000005
【００３５】
また、デコンボリューション以外の手法として、予め基底を学習したデータベースを参照する手法も適用することができる。ここでは、代表的な手法であるスパースコーディングを用いたボケ除去手法について説明する。
【００３６】
スパースコーディングでは、任意の画像のパッチが少数の基底の線形結合でモデル化される。そのため、スパースコーディングでは、多数の画像を用いて基底の集合（以下「辞書」と記す）を学習する必要がある。辞書の学習では、一般的なＫ−ＳＶＤ法などを適用することができる。辞書の学習を行う場合、ボケ除去を行う画像に類似しつつ、可能な限りボケが含まれていない大量の画像が用いられることが望ましい。こうして学習された基底に対して、様々なボケ量のフィルタを畳み込むことによりボケ量の異なる複数の辞書を生成することができる。前述の通り、画像に含まれるボケは大気ゆらぎに起因するため、このフィルタとして、例えば等方的な２次元のガウス関数を用いることができる。
【００３７】
次に、ボケ除去の対象となるパッチを既定の個数の基底の線形結合で近似する。これは以下の（式４）で表すことができる。  
【００３８】
【数４】
2019053588.tif 000006
【００３９】
ここで、ａは係数（スカラー定数）を、ｄは基底を、ｋはｇ（ｘ，ｙ）を近似するために用いられる基底の個数を、ｎはｇ（ｘ，ｙ）で表されるパッチに対して選択された基底の番号の集合をそれぞれ表す。スパースコーディングでは、全基底数と比較してｋの値が非常に小さいことが特徴であるため線形結合が一意に定まる。予め学習された基底ｄ（辞書）と入力パッチｇ（ｘ，ｙ）とに対して係数ａを求める手法は種々存在するが、例えばＯｒｔｈｏｇｏｎａｌ  Ｍａｔｃｈｉｎｇ  Ｐｕｒｓｕｉｔを用いる手法を適用することができる。ここで重要なのは、（式４）の近似に用いられる基底は、パッチｇ（ｘ，ｙ）と基準パッチとの間の相対ボケ量に対応した辞書から選択されることである。例えば、ボケ量０，１，２，・・・に対応するフィルタによって生成された辞書０，辞書１，辞書２，・・・が予め計算されており、パッチｇ（ｘ，ｙ）の相対ボケ量が２と算出された場合には、辞書２の基底を用いて（式４）に示される近似を行う。
【００４０】
次に、辞書を参照しつつ（式４）の基底ｄのそれぞれを辞書０に対応する基底に置き換える。そして係数ａを変更することなく線形結合を行うことで、ボケが除去されたパッチｆ（ｘ，ｙ）を取得することができる。ボケが除去されたパッチｆ（ｘ，ｙ）を取得する工程は以下の（式５）で表すことができる。  
【００４１】
【数５】
2019053588.tif 000007
【００４２】
ここで、ｄ0は辞書０の基底を表す。このように、学習済みの基底の交換を行うことによりパッチのボケ除去が実行される。
【００４３】
ここではスパースコーディングを例に、事前学習に基づいてパッチのボケを除去する手法について説明したが、これに限定されることはなく、他の様々な機械学習の手法を適用してもよい。また、パッチのボケ除去は必ずしも基準パッチと同等のボケ量に補正する必要はなく、前述したフィルタや基底の選択により所望のボケ量に補正してよい。例えば、パッチグループにおける各パッチのボケ量が全て既定の範囲にある場合にはボケ除去を行わないということも考えられる。ここまでに示したように、本実施形態のボケ除去手法は、時系列的に連続する複数のパッチを用いることにより、１枚のパッチ（画像）のみを用いた場合よりもボケ除去の効果が大きい。
【００４４】
Ｓ３０７において、全てのパッチグループについてボケ除去が完了したか否かが判定される。全てのパッチグループについてボケ除去が完了している場合（Ｓ３０７：ＹＥＳ）、Ｓ３０８に移行する。全てのパッチグループについてボケ除去が完了していない場合（Ｓ３０７：ＮＯ）、再びＳ３０４〜Ｓ３０７の処理を繰り返す。
【００４５】
Ｓ３０８において、パッチ統合部２０７は、パッチグループにおける複数のパッチであって、ボケが除去された複数のパッチを統合して出力される動画像のフレームを生成する。  
Ｓ３０９において、画像出力部２０８は、Ｓ３０８で生成された動画像を出力する。  
Ｓ３０９で動画像が出力されると、本フローチャートの処理を終了する。
【００４６】
次に、本実施形態においてフレームに含まれるボケが除去される様子を、図４および図５を参照して説明する。図４は、縦軸をパッチ内ボケ量とし、横軸を時系列とした場合のグラフである。図４のグラフには、時刻ｔ−１においてボケ量Ｂ１のボケが発生した画像例と、時刻ｔにおいてボケ量Ｂ０のボケが発生した画像例と、時刻ｔ＋１においてボケ量Ｂ２のボケが発生した画像例とが模式的に示されている。図４に示される例では、ボケ量Ｂ０が最も小さく、ボケ量Ｂ１が最も大きい。そして、ボケ量Ｂ２は、ボケ量Ｂ０よりも大きく、ボケ量Ｂ１よりも小さくなっている。このように、同一の被写体を含むパッチであっても、時系列的に連続する複数のパッチそれぞれにおいてボケ量が異なる場合がある。
【００４７】
図５は、本実施形態のボケ除去が適用される前のフレーム群と、適用された後のフレーム群とを示す模式図である。図５において、フレーム５００ａ，５１０ａ，５２０ａはボケ除去前のフレーム群である。フレーム５００ａ，５１０ａ，５２０ａは、それぞれ時刻ｔ−１，ｔ，ｔ＋１で撮影されたフレームであり、それぞれパッチ５０１ａ，５１１ａ，５２１ａを含む。パッチ５０１ａ，５１１ａ，５２１ａは、同一の被写体を含み、かつ、時系列的に連続するパッチグループ５３０ａを構成する。図４および図５に示される例では、ボケ量が最も少ないパッチは時刻ｔに対応するパッチ５１１ａである。上述の通り、基準パッチ決定部２０５は、パッチグループ５３０ａのなかからボケ量が最も少ないパッチ５１１ａを基準パッチとして決定する。そして、ボケ除去部２０６は、パッチ５１１ａ（基準パッチ）のボケ量Ｂ０とパッチ５０１ａのボケ量Ｂ１との差に基づき、パッチ５０１ａ（着目パッチ）のボケを除去する。同様に、ボケ除去部２０６は、パッチ５１１ａ（基準パッチ）のボケ量Ｂ０とパッチ５２１ａのボケ量Ｂ２との差に基づき、パッチ５２１ａ（着目パッチ）のボケを除去する。
【００４８】
図５において、フレーム５００ｂ，５１０ｂ，５２０ｂはそれぞれフレーム５００ａ，５１０ａ，５２０ａに対応するフレーム群であって、上記のボケ除去の適用後のフレーム群が示されている。ここでは、フレーム５００ａ，５１０ａ，５２０ａに含まれる被写体「建築物」「木」のうち、被写体「建築物」を含むパッチのボケが除去される例が説明されたが、被写体「木」を含むパッチについても同様に処理が行われる（Ｓ３０４〜Ｓ３０７）。そして、パッチ統合部２０７は、ボケが除去された複数のパッチを統合してフレーム５００ｂ，５１０ｂ，５２０ｂを生成する。ボケが除去されたフレーム５００ｂ，５１０ｂ，５２０ｂは、画像処理装置１００から動画像として出力される。
【００４９】
以上説明した通り、本実施形態のボケ除去手法によれば、時系列的に連続するパッチのボケをそれぞれ除去し、ボケを除去したパッチを統合して出力されるフレームを生成する。そのため、本実施形態のボケ除去手法によれば、大気ゆらぎに起因する画像の劣化、すなわちフレームごとに位置と量とが異なるボケが除去された動画像を生成することができる。
【００５０】
［実施形態２］
実施形態１では、動画像のフレームに含まれる被写体は全て静止していることを前提としてボケを除去する手法について説明した。実施形態２では、被写体が移動する場合、すなわち被写体が移動物体である場合において、パッチに含まれるボケを除去する手法について説明する。以下では、実施形態１と共通する部分については説明を簡略化ないし省略し、本実施形態に特有な点を中心に説明する。
【００５１】
以下、本実施形態におけるボケ除去手順について、図６に示される機能ブロック図と、図７に示されるフローチャートとを参照して説明する。図６は、本実施形態における画像処理装置１００の機能構成例を示すブロック図である。画像処理装置１００は、実施形態１のブロック群に加えて、移動物体検出部６０１と、移動物体追跡部６０２とを有する。移動物体検出部６０１は、入力された画像データから移動物体を検出する。移動物体追跡部６０２は、検出された移動物体を追跡する。
【００５２】
図７は、本実施形態におけるボケ除去手順例を示すフローチャートである。  
Ｓ３０１において、画像取得部２０１は、２次記憶装置１０４または外部記憶装置１０８から複数フレームが含まれる画像データを取得する。そして、画像取得部２０１は、取得した画像データを移動物体検出部６０１に送出する。
【００５３】
ここで、本実施形態において、画像処理装置１００に入力される動画像の一例を図８に示す。図８に示されるフレーム８００および８１０は同じ動画像に含まれるフレーム群であり、フレーム８００および８１０の撮影時刻はそれぞれ異なっている。フレーム８００，８１０は、建築物の被写体８０１ａ，８０１ｂと、車輌の被写体８０２ａ，８０２ｂとをそれぞれ含む。被写体８０１ａ，８０１ｂは静止しているためフレーム８００，８１０における位置は同じであるが、被写体８０２ａ，８０２ｂは移動しているためフレーム８００，８１０における位置はそれぞれ異なっている。また、フレーム８００，８１０それぞれにおいて、パッチ８０３ａ，８０３ｂは被写体８０１ａ，８０１ｂ上の特定の一点を中心とするパッチであり、パッチ８０４ａ，８０４ｂは被写体８０２ａ，８０２ｂ上の特定の一点を中心とするパッチである。上述の通り、被写体８０２ａ，８０２ｂは移動しているため、パッチ８０４ａ，８０４ｂの位置はフレーム８００，８１０ごとに変化する。図８に示されるように、フレーム８１０におけるパッチ８０５の位置は、フレーム８００の撮影時刻におけるパッチ８０４ａの位置に存在する。
【００５４】
Ｓ７０１において、移動物体検出部６０１は、Ｓ３０１で取得された動画像の各フレームから移動物体を検出する。ここで、本実施形態における移動物体を検出する手法について、図８における２値マップ８２０，８３０を参照して説明する。２値マップ８２０，８３０は、フレーム８００，８１０にそれぞれ対応しており、被写体８０２ａ，８０２ｂの位置の画素値を８ビットの「２５５」とし、被写体８０２ａ，８０２ｂ以外の位置の画素値を８ビットの「０」とした画素値のマップである。このように、本実施形態の移動物体検出部６０１は、フレーム８００，８１０における被写体８０２ａ，８０２ｂの位置に基づき、移動物体の位置情報を２値マップの形式で出力する。移動物体の位置情報を検出する手法としては、例えば背景差分法が挙げられるが、背景差分法のみには限定されない。
【００５５】
Ｓ７０２において、移動物体追跡部６０２は、検出された移動物体を追跡する。具体的には、移動物体追跡部６０２は、移動物体の部位が存在する時刻ごと（フレームごと）の位置（軌跡）を算出する。図８に示される通り、この軌跡の算出は、パッチ８０４ａ，８０４ｂの中心位置である点８０６ａ，８０６ｂの座標を時刻ごと（フレームごと）に算出することに相当する。パッチ８０４ａ，８０４ｂおよび点８０６ａ，８０６ｂは、図示の都合上それぞれ１箇所のみが示されているが、被写体８０２ａ，８０２ｂの位置（画素値が「２５５」である白色領域）であれば任意の位置に設定することができる。移動物体を追跡する手法としては、例えばオプティカルフローが挙げられるが、オプティカルフローのみには限定されない。
【００５６】
Ｓ３０２〜Ｓ３０３の処理は、実施形態１のフローチャート（図３）のものと同じため説明を省略する。なお、移動物体の検出（Ｓ７０１）と移動物体の追跡（Ｓ７０２）とは、Ｓ３０２よりも先に実行される代わりに、Ｓ３０２〜Ｓ３０４の間の任意のタイミングで実行されてもよい。これは、移動物体の検出および移動物体の追跡と、パッチごとのボケ量の算出とは、それぞれ独立した処理であるためである。
【００５７】
Ｓ３０４において、パッチグループ選択部２０４は、同一の被写体を含み、かつ、時系列的に連続する複数のパッチから構成されるパッチグループを選択する。実施形態１と異なり、本実施形態では、動画像のフレームには移動物体が含まれており、選択されるパッチグループは、Ｓ７０２で算出された軌跡に従って、各フレームにおいて異なる領域が抽出されたパッチ群によって構成される。図８の例を参照して説明すると、パッチ８０４ａ，８０４ｂはフレーム８００，８１０それぞれにおいて異なる位置に存在しているが、パッチ８０４ａ，８０４ｂそれぞれの中心（点８０６ａ，８０６ｂ）は軌跡として追跡することができる。そのため、本実施形態のパッチグループ選択部２０４は、パッチ８０４ａ，８０４ｂの軌跡を追跡することにより、パッチ８０４ａ，８０４ｂを同一のパッチグループに属するように選択することができる。一方、パッチ８０３ａ，８０３ｂの中心位置は、非移動物体上（つまり画素値が「０」の黒色領域）に存在する。そのため、本実施形態のパッチグループ選択部２０４は、実施形態１と同様に、パッチ８０３ａ，８０３ｂは同じパッチグループに属するようにパッチグループを選択する。
【００５８】
また、フレーム８１０におけるパッチ８０５は、フレーム８００においてはパッチ８０４ａに遮蔽されている。このパッチ８０５のように、移動物体によって一時的に遮蔽されてしまう被写体を含むパッチは、フレームによっては存在しないことになる。本実施形態において、パッチ抽出部２０２は、動画像のフレームから、移動物体によって遮蔽されている被写体を含むパッチを抽出せず、移動物体によって遮蔽されていない被写体を含むパッチを抽出する。そして、パッチグループ選択部２０４は、移動物体によって遮蔽されていない被写体を含む複数のパッチから構成されるようにパッチグループを選択する。  
再び図７のフローチャートに戻り、Ｓ３０５〜Ｓ３０９の処理は、実施形態１のフローチャート（図３）と同じため、説明を省略する。
【００５９】
以上説明した通り、本実施形態のボケ除去手法によれば、動画像のフレームに移動物体が含まれている場合においても、時系列的に連続するパッチのボケをそれぞれ除去し、ボケを除去したパッチを統合して出力されるフレームを生成することができる。そのため、本実施形態のボケ除去手法によれば、大気ゆらぎに起因するボケが除去された動画像を生成することができる。
【００６０】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６１】
２０２・・パッチ抽出部
２０３・・ボケ量算出部
２０５・・基準パッチ決定部
２０６・・ボケ除去部
２０７・・パッチ統合部
【図１】
2019053588.tif 000008
【図２】
2019053588.tif 000009
【図３】
2019053588.tif 000010
【図４】
2019053588.tif 000011
【図５】
2019053588.tif 000012
【図６】
2019053588.tif 000013
【図７】
2019053588.tif 000014
【図８】
2019053588.tif 000015