本願において開示される発明の第1側面となる撮像装置は、被写体を撮像して、第1画像データと前記第1画像データよりも時間的に後の第2画像データと前記第2画像データよりも時間的に後の第3画像データとを出力する撮像部と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データに基づいて、前記第2画像データの特定の領域が前記第1画像データの特定の領域に類似するほど大きくなる第1重みを算出し、前記第2画像データからノイズ除去された第2ノイズ除去画像データおよび前記第3画像データに基づいて、前記第3画像データの特定の領域が前記第2画像データの特定の領域に類似するほど大きくなる第2重みを算出し、前記第1重みに基づいて、前記第2重みを調整して第3重みにする算出部と、前記算出部によって算出された第3重みと前記第2ノイズ除去画像データとに基づいて、前記第3画像データのノイズを除去する除去部と、を有する。
本願において開示される発明の第2側面となる撮像装置は、被写体を撮像して、第1画像データと前記第1画像データよりも時間的に後の第2画像データとを出力する撮像部と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データの少なくとも一方から、画像に含まれる空間構造の特徴を示す第1空間情報を抽出する抽出部と、前記抽出部によって抽出された第1空間情報に基づいて、前記第1画像データの第1重みを算出する算出部と、前記第1ノイズ除去画像データと、前記算出部によって算出された第1重みと、に基づいて、前記第2画像データからノイズを除去する除去部と、を有する。
本願において開示される発明の第3側面となる撮像装置は、被写体を撮像して、第1画像データと前記第1画像データよりも時間的に後の第2画像データとを出力する撮像部と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データに基づいて、前記第1画像データの第1重みを算出する算出部と、前記第2画像データ内の残像を低減する残像低減処理部と、前記第1ノイズ除去画像データと、前記算出部によって算出された第1重みと、に基づいて、前記残像低減処理部による残像低減処理済みの第2画像データからノイズを除去する除去部と、を有する。
本願において開示される発明の第4側面となる撮像装置は、被写体を撮像して、第1画像データと前記第1画像データよりも時間的に後の第2画像データとを出力する撮像部と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データに基づいて、前記第1画像データの第1重みを算出する算出部と、前記第1ノイズ除去画像データと、前記算出部によって算出された第1重みと、に基づいて、前記第2画像データからノイズを除去する除去部と、前記除去部によって前記第2画像データからノイズ除去された第2ノイズ除去画像データ内の残像を低減する残像低減処理部と、を有する。
本願において開示される発明の第5側面となる撮像装置は、被写体を撮像する際のフレームレートの入力を受け付ける入力部と、露光時間を、前記入力部によって入力されたフレームレートに対応する第1露光時間から前記第1露光時間よりも長い第2露光時間に調整する調整部と、前記フレームレートおよび前記調整部によって調整された第2露光時間に基づいて、前記被写体を撮像して、第1画像データと前記第1画像データよりも時間的に後の第2画像データとを出力する撮像部と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データに基づいて、前記第1画像データの第1重みを算出する算出部と、前記第1ノイズ除去画像データと、前記算出部によって算出された第1重みと、に基づいて、前記第2画像データからノイズを除去する除去部と、を有する。
本願において開示される発明の第6側面となる画像処理装置は、第1画像データと前記第1画像データよりも時間的に後に撮像された第2画像データと前記第2画像データよりも時間的に後に撮像された第3画像データとを取得する取得部と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データに基づいて、前記第2画像データの特定の領域が前記第1画像データの特定の領域に類似するほど大きくなる第1重みを算出し、前記第2画像データからノイズ除去された第2ノイズ除去画像データおよび前記第3画像データに基づいて、前記第3画像データの特定の領域が前記第2画像データの特定の領域に類似するほど大きくなる第2重みを算出し、前記第1重みに基づいて、前記第2重みを調整して第3重みにする算出部と、前記算出部によって算出された第3重みと前記第2ノイズ除去画像データとに基づいて、前記第3画像データのノイズを除去する除去部と、を有する。
本願において開示される発明の第7側面となる画像処理装置は、第1画像データと前記第1画像データよりも時間的に後に撮像された第2画像データとを取得する取得部と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データの少なくとも一方から、画像に含まれる空間構造の特徴を示す第1空間情報を抽出する抽出部と、前記抽出部によって抽出された第1空間情報に基づいて、前記第1画像データの第1重みを算出する算出部と、前記第1ノイズ除去画像データと、前記算出部によって算出された第1重みと、に基づいて、前記第2画像データからノイズを除去する除去部と、を有する。
本願において開示される発明の第8側面となる画像処理装置は、第1画像データと前記第1画像データよりも時間的に後に撮像された第2画像データとを取得する取得部と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データに基づいて、前記第1画像データの第1重みを算出する算出部と、前記第2画像データ内の残像を低減する残像低減処理部と、前記第1ノイズ除去画像データと、前記算出部によって算出された第1重みと、に基づいて、前記残像低減処理部による残像低減処理済みの第2画像データからノイズを除去する除去部と、を有する。
本願において開示される発明の第9側面となる画像処理装置は、第1画像データと前記第1画像データよりも時間的に後に撮像された第2画像データとを取得する取得部と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データに基づいて、前記第1画像データの第1重みを算出する算出部と、前記第1ノイズ除去画像データと、前記算出部によって算出された第1重みと、に基づいて、前記第2画像データからノイズを除去する除去部と、前記除去部によって前記第2画像データからノイズ除去された第2ノイズ除去画像データ内の残像を低減する残像低減処理部と、を有する。
本願において開示される発明の第10側面となる画像処理プログラムは、被写体を撮像して、第1画像データと前記第1画像データよりも時間的に後の第2画像データと前記第2画像データよりも時間的に後の第3画像データとを取得する取得処理と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データに基づいて、前記第2画像データの特定の領域が前記第1画像データの特定の領域に類似するほど大きくなる第1重みを算出し、前記第2画像データからノイズ除去された第2ノイズ除去画像データおよび前記第3画像データに基づいて、前記第3画像データの特定の領域が前記第2画像データの特定の領域に類似するほど大きくなる第2重みを算出し、前記第1重みに基づいて、前記第2重みを調整して第3重みにする算出処理と、前記算出処理によって算出された第3重みと前記第2ノイズ除去画像データとに基づいて、前記第3画像データのノイズを除去する除去処理と、をプロセッサに実行させる。
本願において開示される発明の第11側面となる画像処理プログラムは、第1画像データと前記第1画像データよりも時間的に後に撮像された第2画像データとを取得する取得処理と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データの少なくとも一方から、画像に含まれる空間構造の特徴を示す第1空間情報を抽出する抽出処理と、前記抽出処理によって抽出された第1空間情報に基づいて、前記第1画像データの第1重みを算出する算出処理と、前記第1ノイズ除去画像データと、前記算出処理によって算出された第1重みと、に基づいて、前記第2画像データからノイズを除去する除去処理と、をプロセッサに実行させる。
本願において開示される発明の第12側面となる画像処理プログラムは、第1画像データと前記第1画像データよりも時間的に後に撮像された第2画像データとを取得する取得処理と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データに基づいて、前記第1画像データの第1重みを算出する算出処理と、前記第2画像データ内の残像を低減する残像低減処理と、前記第1ノイズ除去画像データと、前記算出処理によって算出された第1重みと、に基づいて、前記残像低減処理による残像低減処理済みの第2画像データからノイズを除去する除去処理と、をプロセッサに実行させる。
本願において開示される発明の第13側面となる画像処理プログラムは、第1画像データと前記第1画像データよりも時間的に後に撮像された第2画像データとを取得する取得処理と、前記第1画像データからノイズ除去された第1ノイズ除去画像データおよび前記第2画像データに基づいて、前記第1画像データの第1重みを算出する算出処理と、前記第1ノイズ除去画像データと、前記算出処理によって算出された第1重みと、に基づいて、前記第2画像データからノイズを除去する除去処理と、前記除去処理によって前記第2画像データからノイズ除去された第2ノイズ除去画像データ内の残像を低減する残像低減処理と、をプロセッサに実行させる。
実施例1について説明する。動画に対するノイズ除去手法として、ノイズ除去された過去の画像データとノイズが除去されていない現在の画像データとの重み付き平均処理がある。ノイズの除去精度を高めるためには過去フレーム数をメモリに多く保持しておく必要があるが、メモリ使用量が増加してしまう。
このため、実施例1では、ノイズが除去されたノイズ除去画像データの数を必要最小限に抑制するため、撮像装置は、ノイズ除去に使用される重みを再帰的に利用することにより、ノイズ除去精度の向上を図り、メモリ使用量を低減する。
重みとは、動画像において時間的に連続する先行画像データと後続画像データとを同一領域で比較した場合の当該領域ごとにおける後続画像データに対する先行画像データの信頼度である。領域とは、1画素以上の画素集合である。領域は画像データ全体であってもよい。
重みは、たとえば、0.0以上1.0以下の範囲をとり、値が大きいほど信頼度が高いことを意味する。先行画像データおよび後続画像データの同一領域どうしが類似するほど、重みの値は大きくなる。重みを再帰的に利用することにより、過去の画像データの残像ほど重みの値が小さくなり、残像が低減される。以下、実施例1について詳細に説明する。
<撮像装置のハードウェア構成例>
図1は、撮像装置のハードウェア構成例を示すブロック図である。撮像装置100は、動画撮影可能な装置であり、具体的には、たとえば、デジタルカメラ、デジタルビデオカメラ、スマートフォン、タブレット、パーソナルコンピュータ、ゲーム機である。図1では、撮像装置の一例としてデジタルカメラを例に挙げて説明する。
撮像装置100は、プロセッサ101と、記憶デバイス102と、駆動部103と、光学系104と、撮像素子105と、AFE(Analog Front End)106と、LSI(Large Scale Integration)107と、操作デバイス108と、センサ109と、表示デバイス110と、通信IF(Interface)111と、バス112と、を有する。プロセッサ101、記憶デバイス102、駆動部103、LSI107、操作デバイス108、センサ109、表示デバイス110、および通信IF111は、バス112に接続される。
プロセッサ101は、撮像装置100を制御する。記憶デバイス102は、プロセッサ101の作業エリアとなる。また、記憶デバイス102は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス102としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。記憶デバイス102は、撮像装置100に複数実装されてもよく、そのうちの少なくとも1つは、撮像装置100に対し着脱自在でもよい。
駆動部103は、光学系104を駆動制御する。駆動部103は、駆動回路103aと駆動源103bとを有する。駆動回路103aは、プロセッサ101からの指示により駆動源103bを制御する。駆動源103bは、たとえば、モータであり、駆動回路103aの制御により、光学系104内のズーミングレンズ141bおよびフォーカシングレンズ141cを光軸方向に移動させたり、絞り142を開閉制御する。
光学系104は、光軸方向に配列された複数のレンズ(レンズ141a、ズーミングレンズ141b、およびフォーカシングレンズ141c)と、絞り142と、を含む。光学系104は、被写体光を集光し、撮像素子105に出射する。
撮像素子105は、光学系104からの被写体光を受光して電気信号に変換する。撮像素子105は、たとえば、XYアドレス方式の固体撮像素子(たとえば、CMOS(Complementary Metal‐Oxide Semiconductor))であってもよく、順次走査方式の固体撮像素子(たとえば、CCD(Charge Coupled Device))であってもよい。
撮像素子105の受光面には、複数の受光素子(画素)がマトリクス状に配列されている。そして、撮像素子105の画素には、それぞれが異なる色成分の光を透過させる複数種類のカラーフィルタが所定の色配列(たとえば、ベイヤ配列)に従って配置される。そのため、撮像素子105の各画素は、カラーフィルタでの色分解によって各色成分に対応するアナログの電気信号を出力する。
AFE106は、撮像素子105からのアナログの電気信号に対して信号処理を施すアナログフロントエンド回路である。AFE106は、電気信号のゲイン調整、アナログ信号処理(相関二重サンプリング、黒レベル補正など)、A/D変換処理、デジタル信号処理(欠陥画素補正など)を順次実行してRAW画像データを生成し、LSIに出力する。上述した駆動部103、光学系104、撮像素子105、およびAFE106は、撮像部120を構成する。
LSI107は、AFE106からのRAW画像データについて、色補間、ホワイトバランス調整、輪郭強調、ガンマ補正、階調変換などの画像処理や符号化処理、復号処理、圧縮伸張処理など、特定の処理を実行する集積回路である。LSI107は、具体的には、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などのPLD(Programmable Logic Device)によって実現してもよい。
操作デバイス108は、コマンドやデータを入力する。操作デバイス108としては、たとえば、レリーズボタンを含む各種ボタン、スイッチ、ダイヤル、タッチパネルがある。センサは、情報を検出するデバイスであり、たとえば、AF(Automatic Focus)センサ、AE(Automatic Exposure)センサ、ジャイロセンサ、加速度センサ、温度センサなどがある。表示デバイス110は、画像データや設定画面を表示する。表示デバイス110には、撮像装置100の背面にある背面モニタと、電子ビューファインダと、がある。通信IF111は、ネットワークと接続し、データを送受信する。
<撮像装置100の機能的構成例>
図2は、実施例1にかかる撮像装置100の機能的構成例を示すブロック図である。撮像装置100は、取得部201と、算出部202と、除去部203と、画像保存部204と、第1メモリ205と、を有する。取得部201、算出部202、除去部203、画像保存部204、および第1メモリ205は、画像処理装置200を構成する。
取得部201は、撮像部120によって撮像された時間的に連続する一連の画像データを取得する。取得部201は、たとえば、記憶デバイス102の1つであるバッファメモリである。なお、撮像装置100が、撮像部120がない画像処理装置200である場合、記憶デバイス102または通信IF111からの一連の画像データを取得することになる。取得部201は、たとえば、記憶デバイス102の1つであるバッファメモリである。
算出部202、除去部203および画像保存部204は、具体的には、たとえば、図1に示した記憶デバイス102に記憶されたプログラムをプロセッサ101に実行させることにより、または、LSI107により実現される。また、第1メモリ205は、記憶デバイス102の1つである。
ここで、一連の画像データを、連続する第1画像データ~第3画像データを例に挙げて説明する。なお、撮像部120は、被写体を撮像して、第1画像データ~第3画像データの順に出力するものとする。第1画像データは、連続する第1画像データ~第3画像データの中で、撮像部120から出力された時間的に最古の画像データとする。第2画像データは、第1画像データよりも時間的に後に撮像部120から出力された画像データとする。第3画像データは、第2画像データよりも時間的に後に撮像部120から出力された画像データとする。
算出部202は、重み計算部221と、重み調整部222と、重み保存部223と、第2メモリ224と、を有する。重み計算部221は、除去部203によって第1画像データからノイズ除去された第1ノイズ除去画像データおよび第2画像データに基づいて、第1画像データの第1重みを算出する。算出部202は、第1重みを算出する際、第2画像データに先行する過去画像データとして、第1ノイズ除去画像データを第1メモリ205から読み出す。第1画像データは、第2画像データの先行画像データであり、第2画像データは、第1画像データの後続画像データである。
また、算出部202は、除去部203によって第2画像データからノイズ除去された第2ノイズ除去画像データおよび第3画像データに基づいて、第2画像データの第2重みを算出する。算出部202は、第2重みを算出する際、第3画像データに先行する過去画像データとして、第1メモリ205から第2ノイズ除去画像データを読み出す。第2画像データは、第3画像データの先行画像データであり、第3画像データは、第2画像データの後続画像データである。
重みとは、上述したように、時間的に連続する先行画像データと後続画像データとを同一領域で比較した場合の当該領域ごとにおける後続画像データに対する先行画像データの信頼度である。領域とは、1画素以上の画素集合である。領域は画像データ全体であってもよい。
ここで、時刻tよりも前にノイズ除去処理された画像データをIoldと表記し、時刻tの画像データをItと表記する。IoldやItを区別しない場合は、単に画像データIと表記する。画像データIは、たとえば、マトリクス状の画素群の各値に対応する行列である。したがって、重みもまた行列により表現され、Wと表記する。重みWの各要素は、画像データI内の領域(x,y)に対応し、その領域の重みwは、たとえば、0.0以上1.0以下の範囲をとる。
ある領域において、重み(信頼度)wが高いほど、当該領域において、先行画像データと後続画像データとの間で画像のブレが少ない、すなわち、残像が少ないことを示し、重み(信頼度)が低いほど、当該領域において、先行画像データと後続画像データとの間でブレが多い、すなわち、残像が多いことを示す。
時刻tの後続画像データに対する先行画像データIold内の領域の重みwは、下記式(1)により算出される。
w=f(It,Iold)・・・(1)
関数f(・)は、先行画像データIold内の領域の重みwを求める関数である。なお、領域が先行画像データIoldの全体であれば、重みwは1つの値となる。また、重み計算部221は、先行画像データIoldのチャンネル数に応じて複数の重みWを求めてもよい。先行画像データIoldの領域の重みwは、後続画像データItの類似度が大きいほど大きくするのがよい。領域の重みwの求め方の一例としては下記式(2)がある。
関数fx,yは、領域(x,y)の重みwの算出を意味する。xは先行画像データIoldの領域の列方向における位置を示し、yは行方向の位置を示す。また,関数φx,yは領域(x,y)を中心とした近傍領域の部分画像データを取得する関数である。また,||・||はL2ノルムを意味する。また,σは、重みの算出結果を調整するパラメータである。σは上記式(2)の分子の値である画像の差に対する感度を調整するためパラメータであり、σの値を大きくすると画像の差が大きくても重みが大きく算出されることになる。
重み調整部222は、第2メモリ224に保存されている最新の重みWoldに基づいて、重み計算部221によって計算された重みWを調整する。調整済みの重みWを重みW´とする。重み保存部223は、重み調整部222による調整前の重みWをWoldとして第2メモリ224に保存する(式(4)を参照)。第2メモリ224は、記憶デバイス102により構成される。
調整済みの重みW´は、下記式(3)により算出される。
W´=g(W,Wold)・・・(3)
関数g(・)は、重みWを調整する関数である。Woldは、下記式(4)のように、調整前の重みWにより更新される。ここでは直接重みWをWoldに更新しているが,重みWのサイズを縮小してWoldに更新してもよい。重みを過去重みWoldと称す。
Wold=W・・・(4)
また、式(3)の右辺は、たとえば、下記式(5)により表現される。
また、調整済みの重みW´に上限や下限を設けたり、一律の調整係数を掛けたりしてもよい。また、式(3)の右辺は、たとえば、下記式(6)により表現されてもよい。
g(W,Wold)=min(W,Wold)・・・(6)
上記式(6)は、重みWと過去重みWoldを要素ごとに比較して、値が小さい方の重みwを採用する。このようにして、調整済みの重みW´の領域の重みw´は、調整前の重みwに比べて小さくなる。
ここで、上述した第1画像データ~第3画像データを例に挙げて、重みWの調整について説明する。なお、第1画像データを先行画像データとし、第1画像データからノイズ除去された第1ノイズ除去画像データを過去画像Ioldとした場合の重みWを重みW1とする。また、第2画像データを先行画像データとし、第2画像データからノイズ除去された第2ノイズ除去画像データを過去画像Ioldとした場合の重みWを重みW2とする。また、第3画像データを先行画像データとし、第3画像データからノイズ除去された第3ノイズ除去画像データを過去画像Ioldとした場合の重みWを重みW3とする。
なお、第1画像データが動画像データの先頭画像データである場合、第1画像データに先行する画像データは存在しないため、重みW1は重み調整部222によって調整されずに、重み保存部223により第2メモリ224に過去重みWoldとして保存される。第1画像データおよび第2画像データにより重みW2が計算された場合、重み調整部222は、第2メモリ224から過去重みWold(=重みW1)を読みだして、上記式(5)により重みW2と乗算して、調整済みの重みW2´を算出する。重み保存部223は、調整前の重みW2を過去重みWoldとして第2メモリ224に保存する。
また、第2画像データおよび第3画像データにより重みW3が計算された場合、重み調整部222は、第2メモリ224から重みWold(=重みW2)を読みだして、上記式(5)により、重みW3と乗算して、調整済みの重みW3´を算出する。重み保存部223は、調整前の重みW3をWoldとして第2メモリ224に保存する。
除去部203は、調整済みの重みW´に基づいて、ノイズ除去対象の画像データのノイズを除去し、ノイズ除去画像データを出力する。具体的には、たとえば、除去部203は、調整済みの重みW´を用いた重み付け平均により、ノイズ除去対象の画像データのノイズを除去する。重み付け平均は、たとえば、下記式(7)により表現される。
上記式(7)において、Ioutは、ノイズ除去された画像データ(ノイズ除去画像データ)である。
画像保存部204は,除去部203から出力されたノイズ除去画像データIoutを過去画像データIoldとして第1メモリ205に保存する。第1メモリ205は、記憶デバイス102により構成される。
<再帰的ノイズ除去処理>
図3は、実施例1にかかる撮像装置100による再帰的ノイズ除去手順例を示すフローチャートである。図4は、調整済みの重みW´による再帰的ノイズ除去例を示す説明図である。図4の比較例として、図5を例示する。図5は、調整済みの重みW´を適用しない再帰的ノイズ除去例を示す説明図である。なお、図4および図5において図3のステップに該当する箇所には、図3のステップ番号を付す。なお、図5では調整済みの重みW´を適用しないため、ステップS304~S306は存在しない。また、図4および図5では、撮像装置100は、撮像方向を固定しており、被写体像が左から右に移動する動画像データを撮像する場合を例に挙げて説明する。
まず、図4および図5の中央点線の左側について、図3を用いて説明する。撮像装置100は、取得部201により現在画像データを取得して読み込み(ステップS301)、過去画像データを第1メモリ205から読み込む(ステップS302)。ここで、現在画像データとは、時刻t-1の後続画像データI(t-1)であり、過去画像データとは、時刻(t-1)以前の時刻(t-2)の先行画像データからノイズ除去されたノイズ除去画像データ、すなわちIoldである。Ioldには、被写体像OB(t-2)が存在するものとする。
撮像装置100は、重み計算部221により、過去画像データIoldと現在画像データI(t-1)とを式(2)に与えて、重みW(t-1)を計算する(ステップS303)。過去画像データIoldと現在画像データI(t-1)とにおいて、同一領域の画像が類似するほど、重みは大きくなり、類似しなくなるほど、小さくなる。したがって、過去画像データIoldと現在画像データI(t-1)とにおいて、被写体像OB(t-2),OB(t-1)がいずれも存在しない領域は、ほぼ同じ画像となり、当該領域の重みw(t-1)は、たとえば、最大値の1.0となる。
一方、過去画像データIoldと現在画像データI(t-1)とにおいて、被写体像OB(t-2),OB(t-1)のいずれか一方が存在する領域は、異なる画像となり、当該領域の重みw(t-1)は低くなる。ここでは、例として、当該領域の重みw(t-1)を0.0とする。なお、被写体像OB(t-2),OB(t-1)の境界部分の領域については、被写体像OB(t-2),OB(t-1)のいずれか一方が存在する領域よりも類似している。ここでは、例として、当該領域の重みw(t-1)を0.5とする。
つぎに、撮像装置100は、第2メモリ224から過去重みWoldを読み込む(ステップS304)。この過去重みWoldを例として、全要素の値が「1.0」の行列とする。撮像装置100は、重み調整部222により、第2メモリ224からの過去重みWoldと、ステップS303で重み計算した重みW(t-1)とを式(3)に与えて、調整済みの重みW´を出力する(ステップS305)。
調整済みの重みW´は、たとえば、式(5)に示したように、過去重みWoldと、重みW(t)との積により求められる。過去重みWoldは全要素の値が「1.0」の行列であるため、調整済みの重みW´は、重み計算した重みW(t-1)と同じである。
そして、撮像装置100は、第2メモリ224に調整前の重みW(t-1)を格納して、あらたな過去重みWoldとする(ステップS306)。
撮像装置100は、除去部203により、過去画像データIoldと現在画像データI(t-1)と調整済みの重みW´とを式(7)に与えて、現在画像データI(t-1)からノイズを除去し(ステップS307)、ノイズ除去画像データIout(t-1)を出力する(ステップS308)。出力されたノイズ除去画像データIout(t-1)は、表示デバイス110に表示される。ノイズ除去画像データIout(t-1)は、現在画像データI(t-1)と同じ位置に被写体像OB(t-1)が存在し、過去画像データIoldの被写体像OB(t-2)と同じ位置に残像A(t-2)が存在する。残像A(t-2)は、主に、被写体像OB(t-2)の輪郭が際立った画像データとなる。
また、撮像装置100は、画像保存部204により、ノイズ除去画像データIout(t-1)を第1メモリ205に出力し、過去画像データIoldを更新する(ステップS309)。このあと、撮像装置100は、たとえば、ユーザの動作撮影の終了操作入力により、画像処理が終了するか否かを判断する(ステップS310)。終了しない場合(ステップS310:No)、撮像装置100は、取得部201におけるバッファメモリの読み込み位置を更新し(ステップS311)、ステップS301に戻る。
つぎに、図4および図5の中央点線の右側について、図3を用いて説明する。撮像装置100は、取得部201により時刻tの現在画像データI(t)を取得して読み込み(ステップS301)、過去画像データIoldを第1メモリ205から読み込む(ステップS302)。ここで、過去画像データIoldは、ステップS309で得られたノイズ除去画像データIout(t-1)である。
撮像装置100は、重み計算部221により、過去画像データIoldと現在画像データI(t)とを式(2)に与えて、重みW(t)を計算する(ステップS303)。過去画像データIoldと現在画像データI(t)とにおいて、同一領域の画像が類似するほど、重みは大きくなり、類似しなくなるほど、小さくなる。したがって、過去画像データIoldと現在画像データI(t)とにおいて、被写体像OB(t-1),OB(t)がいずれも存在しない領域は、ほぼ同じ画像となり、当該領域の重みw(t)は、たとえば、最大値の1.0となる。
一方、過去画像データIoldと現在画像データI(t)とにおいて、被写体像OB(t-1),OB(t)のいずれか一方が存在する領域は、異なる画像となり、当該領域の重みw(t)は低くなる。ここでは、例として、当該領域の重みw(t)を0.0とする。なお、被写体像OB(t-1),OB(t)の境界部分の領域については、被写体像OB(t-1),OB(t)のいずれか一方が存在する領域よりも類似している。ここでは、例として、当該領域の重みw(t)を0.5とする。また、過去画像データIold(ノイズ除去画像データIout(t-1))において、残像A(t-2)が存在する領域の重みを0.75とする。
つぎに、撮像装置100は、第2メモリ224から過去重みWoldを読み込む(ステップS304)。この過去重みWoldは、ステップS306で先に算出された重みW(t-1)である。撮像装置100は、重み調整部222により、第2メモリ224からの過去重みWoldと、ステップS303で重み計算した重みW(t)とを式(3)に与えて、調整済みの重みW´を出力する(ステップS305)。
調整済みの重みW´は、たとえば、式(5)に示したように、過去重みWoldと、重みW(t)との積により求められる。この場合の過去重みWoldは、ステップS306で先に算出された重みW(t-1)であるため、残像A(t-2)が存在する領域内部の重みw(t)は0になり、輪郭の重みw(t)は、0.375(=0.75×0.5)となる。また、残像A(t-1)が存在する領域内部の重みw(t)は0(=0.0×0.0)のままであるが、輪郭の重みw(t)は0.25(=0.5×0.5)である。
そして、撮像装置100は、第2メモリ224に調整前の重みW(t)を格納して、あらたな過去重みWoldとする(ステップS306)。
撮像装置100は、除去部203により、過去画像データIoldと現在画像データI(t)と調整済みの重みW´とを式(7)に与えて、現在画像データI(t)からノイズを除去し(ステップS307)、ノイズ除去画像データIout(t)を出力する(ステップS308)。出力されたノイズ除去画像データIout(t)は、表示デバイス110に表示される。ノイズ除去画像データIout(t)は、現在画像データI(t)と同じ位置に被写体像OB(t)が存在し、過去画像データIoldの被写体像OB(t-1)と同じ位置に残像A(t-1)が存在し、さらに、被写体像OB(t-2)と同じ位置に残像A(t-2)が存在する。
また、撮像装置100は、画像保存部204により、ノイズ除去画像データIout(t)を第1メモリ205に出力し、過去画像データIoldを更新する(ステップS309)。このあと、撮像装置100は、たとえば、ユーザの動作撮影の終了操作入力により、画像処理が終了するか否かを判断する(ステップS310)。終了する場合(ステップS310:Yes)、撮像装置100は、画像処理を終了する。
このように、過去画像データIoldと現在画像データI(t-1),I(t)との間で変換のない領域では過去画像データIoldを参照するための重みW(t-1),W(t)が大きくなるため、結果的に使用メモリを削減しつつノイズ除去率を増加させることができる。
ただし、図5の例の場合、過去画像データIoldと現在画像データI(t-1),I(t)との間で重みの算出がうまくいっていない領域、すなわち失敗している領域がある場合、その結果も保持される。したがって、長期にわたり失敗が残ってしまう。これが残像として画質を著しく劣化させてしまう原因となる。
たとえば、図5の中の太矢印5A1で示した被写体像OB(t-2)の輪郭の残像A(t-2)のように、次のフレーム(画像データI(t))でのステップS303の重み算出結果が太矢印5a1のように大きくなっており(w(t-1)=0.75)、結果として太矢印5A2のように失敗した輪郭の残像A(t-2)が残ってしまっている。
一方、実施例1の撮像装置100は、過去画像データIoldに、その時算出した重みが付随した状態で保持され、これを再利用する。これにより、残像が発生しているような信頼度の低い領域で過去画像データIoldを参照するための重みW(t-1),W(t)が小さくなりやすくなるため、結果的に残像発生を抑制することができる。
たとえば、図4中の太矢印4B1で示した被写体像OB(t-2)の輪郭の重みw(t-1)が太矢印4b1のように大きく出ている一方(0.75)、調整を掛けた太矢印4b2では重みw(t)が小さくなっており(0.375=0.5×0.75)、結果として太矢印5B2のように失敗した輪郭の残像A(t-2)の残り具合が低減できている。
このように、図5の場合、ノイズ除去精度が図4に比べて低いため、図4と同等のノイズ除去精度を出すためには、過去の画像データの枚数を図4の場合よりも第1メモリ205に多く保持しておく必要があり、メモリ使用量が増加する。これに対し、図4では、直近の過去画像データを第1メモリ205に保持しておけばよいため、ノイズ除去精度の向上と省メモリ化とを両立することができる。
実施例2は、画像データに含まれる空間情報を利用することで残像の発生を抑制する例である。なお、実施例2では、実施例1との相違点を中心に説明し、実施例1と共通部分については同一符号を用いて説明を省略する。
<撮像装置100の機能的構成例>
図6は、実施例2にかかる撮像装置100の機能的構成例を示すブロック図である。実施例2の算出部602は、空間情報抽出部621と、重み計算部622と、を有する。空間情報抽出部621は、抽出対象となる画像データから空間情報を抽出する。抽出対象となる画像データは、過去画像データIoldまたは現在画像データItの少なくとも一方である。両方の画像データIold,Itを用いる場合、空間情報抽出部621は、各々の画像データIについて空間情報を抽出し、2つの空間情報の平均を算出したり、最大値を選択したり、αブレンドを算出してもよい。
空間情報とは、抽出対象となる画像データに含まれる空間構造の特徴を示す情報であり、具体的には、たとえば、空間周波数成分がある。空間周波数成分の場合、たとえば、空間情報抽出部621は、下記式(8)~(13)のように、2種類のサイズのローパスフィルタを用いて低周波成分Slowと高周波成分Shighを抽出することができる。
式(8),(9)のIは、抽出対象となる画像データである。また、式(11)の関数abs(・)は、領域(x,y)ごとの絶対値を算出する関数である。式(13)は、式(8),(9)に代入される。式(8)に代入される場合、式(13)は、Hσ1(x,y)となり、σはσ1となる。同様に、式(9)に代入される場合、式(13)は、Hσ2(x,y)となり、σはσ2となる。
なお、抽出対象となる画像データIについては、空間情報を抽出しやすくするために事前に画像データIに変換を掛けてもよい。さらに、空間情報抽出部621は、低周波成分Slowと高周波成分Shighの2成分だけでなく複数の帯域の周波数成分を算出してもよい。
重み計算部622は、現在画像データと、過去画像データと、空間情報抽出部621によって抽出された空間情報と、に基づいて、過去画像データの重みWを計算する。残像が目立ちやすい領域は明るい領域であったり、エッジ付近(過去画像データにおける被写体像の輪郭)のようにであったりすることが多い。このため、そのような領域の重みを小さくするのがよい。
そこで、まず明るい領域を判断するため、重み計算部622は、低周波成分Slowを用いて下記式(14),(15)のような処理を実行する。
式(14)のSlow,It,Slow,Ioldは、それぞれ現在画像データItと過去画像データIoldの低周波成分Slowを意味する。式(14)のmax(・)は、領域(x,y)ごとに最大値を算出する関数である。式(15)のS´lowは、現在画像データItと過去画像データIoldの低周波成分Slowの最大値となるが、平均値でもよい。
また、σ(・)は領域(x,y)ごとに値を算出するシグモイド関数で、入力値が大きいほど1に近づく。Tlowはしきい値を表すパラメータである。これにより、式(15)の低周波成分Slowによる調整値Klowは、低周波成分Slowが大きいほど、すなわち、明るい領域ほど小さい値になる。
次にエッジ付近を判断するため、重み計算部622は、高周波成分Shighを用いて下記式(16),(17)のような処理を実行する。
式(16)のShigh,It,Shigh,Ioldは、それぞれ現在画像データItと過去画像データIoldの高周波成分Shighを意味する。式(16)のmax(・)は、領域(x,y)ごとに最大値を算出する関数である。式(17)のS´highは、現在画像データItと過去画像データIoldの高周波成分Shighの最大値となるが、平均値でもよい。
また、σ(・)は領域(x,y)ごとに値を算出するシグモイド関数で、入力値が大きいほど1に近づく。Thighはしきい値を表すパラメータである。これにより、式(17)の高周波成分Shighによる調整値Khighは、高周波成分Shighが大きいほど、すなわち、エッジ付近であるほど小さい値になる。
求められた低周波成分Slowによる調整値Klowと高周波成分Shighによる調整値Khighとを用いて,最終的に更新された重みWnewは、下記式(18)で求められる。除去部203は、更新済みの重みWnewを用いて、実施例1と同様な処理で現在画像データItからノイズを除去し、ノイズ除去画像データとして出力する。また、画像保存部204は、ノイズ除去画像データを過去画像データIoldとして第1メモリ205に保存する。
式(18)において、右辺のWは、過去画像データIoldを参照するための重みである。式(18)で重みWを重みWnewに更新することにより、残像が目立ちやすい領域である明るい領域やエッジ付近の重みが小さくなるため、残像発生を抑制することができる。ここでは現在画像データItと過去画像データIoldの低周波成分Slowおよび高周波成分Shighを用いたが、低周波成分Slowおよび高周波成分Shighのいずれか一方だけを用いてもよい。
<再帰的ノイズ除去処理>
図7は、実施例2にかかる撮像装置100による再帰的ノイズ除去手順例を示すフローチャートである。実施例2では、図3と比較した場合、ステップS303~S306が存在せず、ステップS302のあと、撮像装置100は、空間情報抽出部621により、空間情報抽出処理を実行する(ステップS701)。つぎに、撮像装置100は、重み計算部622により、調整重みWnewを計算する(ステップS702)。このあと、撮像装置100は、除去部203により、調整重みWnewを用いて、現在画像データItからノイズを除去し(ステップS307)、ノイズ除去画像データIoutを表示デバイス110に出力する(ステップS308)。
撮像装置100は、画像保存部204により、ノイズ除去画像データIoutを過去画像データIoldとして第1メモリ205に保存する(ステップS309)。このような処理を撮像が終了するまで、再帰的に実行することで、残像が目立ちやすい領域での重みが低く調整され、結果的に残像発生を抑制することができる。
実施例3は、実施例1において、実施例2の空間情報抽出部621を適用した例である。実施例3では、実施例1,2との相違点を中心に説明し、実施例1,2と共通部分については同一符号を用いて説明を省略する。
<撮像装置100の機能的構成例>
図8は、実施例3にかかる撮像装置100の機能的構成例を示すブロック図である。実施例3の場合、算出部802は、空間情報抽出部621と、重み計算部622と、重み調整部222と、重み保存部223と、第2メモリ224と、を有する。重み調整部222は、第2メモリ224に保存されている最新の重みWoldに基づいて、重み計算部622で更新された重みWnewを調整する。
調整された更新済みの重みWnewを調整済み重みW´とする。重み保存部223は、重み調整部222による調整前の重みWnewを過去重みWoldとして第2メモリ224に保存する。具体的には、たとえば、重み調整部222は、重み調整部222で用いる式(3)~(7)のWをWnewに置き換えて重みWnewを調整することになる。
<再帰的ノイズ除去処理>
図9は、実施例3にかかる撮像装置100による再帰的ノイズ除去手順例を示すフローチャートである。実施例3では、図3と比較した場合、ステップS303が存在せず、ステップS302のあと、撮像装置100は、空間情報抽出部621により、空間情報抽出処理を実行する(ステップS701)。つぎに、撮像装置100は、重み計算部622により、重みWnewを計算する(ステップS702)。
撮像装置100は、過去重みWoldを第2メモリ224から読み出し(ステップS304)、重み調整部222により、過去重みWoldで重みWnewを調整し、調整済み重みW´を除去部203に出力するとともに、調整前の重みWnewを重み保存部223に出力する(ステップS305)。そして、重み保存部223は、調整前の重みWnewを第2メモリ224に保存して、過去重みWoldを更新する(ステップS306)。
このあと、撮像装置100は、除去部203により、調整済み重みW´を用いて、現在画像データItからノイズを除去し(ステップS307)、ノイズ除去画像データIoutを表示デバイス110に出力する(ステップS308)。撮像装置100は、画像保存部204により、ノイズ除去画像データIoutを過去画像データIoldとして第1メモリ205に保存する(ステップS309)。このような処理を撮像が終了するまで、再帰的に実行することで、残像が目立ちやすい領域での重みが低く調整され、結果的に残像発生を抑制することができる。
このように、空間情報を抽出して、空間情報を用いて重みを計算してから重みを調整することにより、重み調整前後において残像を抑制することができ、残像発生抑制の効率化を図ることができる。
実施例4は、除去部203において重みを用いた現在画像データからのノイズ除去に先立って、現在画像データに対し、残像低減処理を実行する例である。除去部203は、残像低減処理後の現在画像データから重みを用いてノイズ除去を実行することになる。実施例4の撮像装置100は、ノイズ除去前に現在画像データの残像を低減させることで、残像発生の抑制を図る。実施例4では、実施例1~3との相違点を中心に説明し、実施例1~3と共通部分については同一符号を用いて説明を省略する。
<機能的構成例>
図10は、実施例4にかかる撮像装置100の機能的構成例を示すブロック図である。実施例4の場合、除去部203は、算出部202から重みを取得する。算出部202からの重みは、実施例1,3の場合は調整済みの重みW´であり、実施例2の場合は、更新済みの重みWnewである。また、算出部202が図5に示した構成である場合、算出部202からの重みは、重み計算部221により、過去画像データIoldと現在画像データIとを上記式(2)に与えて計算された重みWである。実施例4では、特に区別しない限り、これらの重みを総称して、単に、重みWと表記する。
除去部203は、残像低減処理部1001と、ノイズ除去処理部1002と、を有する。残像低減処理部1001は、現在画像データの残像を低減する処理を実行する。具体的には、たとえば、残像低減処理部1001は、現在画像データにローパスフィルタを施すことにより、残像となる動く被写体像の輪郭をぼかす。これにより、動く被写体像の輪郭を目立ちにくくする。また、残像低減処理部1001は、時間方向に連続する2枚の画像データI(t-1),I(t)について、動く被写体像の間を補間することにより、残像となる動く被写体像の輪郭をぼかす(補間処理)。
ノイズ除去処理部1002は、残像低減処理部1001によって残像低減処理が施された画像データについて、算出部202からの重みWに基づいて、ノイズ除去対象の画像データのノイズを除去し、ノイズ除去画像データを出力する。具体的には、たとえば、除去部203は、算出部202からの重みWを上記式(7)のW´に代入することにより、重み付け平均でノイズ除去対象の画像データのノイズを除去する。ノイズ除去対象の画像データとは、ローパスフィルタが施された画像データ、または、補間処理により生成された画像データである。
<補間処理例>
図11は、実施例4にかかる残像低減処理部1001による補間処理例を示す説明図である。図11において、矩形は、時間方向に連続する画像データ群、すなわち、動画像データである。(A)は、取得部201から残像低減処理部1001に入力された残像低減処理が施されていない未加工状態の画像データIa(t-3),Ia(t-2),Ia(t-1),Ia(t)を示す。画像データIa(t-3),Ia(t-2),Ia(t-1),Ia(t)において、被写体像OBa(t-3),OBa(t-2),OBa(t-1),OBa(t)が左から右に移動しているものとする。
(B)は、画像データの合成を示す。残像低減処理部1001は、時間方向に連続する2枚の画像データを合成して、動きベクトルを検出する。具体的には、たとえば、残像低減処理部1001は、画像データIa(t-3),Ia(t-2)を合成して合成画像データIb(t-2)を生成し、被写体像OBa(t-3),OBa(t-2)間の動きベクトルmv(t-2)を検出する。
同様に、残像低減処理部1001は、画像データIa(t-2),Ia(t-1)を合成して合成画像データIb(t-1)を生成し、被写体像OBa(t-2),OBa(t-1)間の動きベクトルmv(t-1)を検出する。残像低減処理部1001は、画像データIa(t-1),Ia(t)を合成して合成画像データIb(t)を生成し、被写体像OBa(t-1),OBa(t)間の動きベクトルmv(t)を検出する。
(C)は、合成画像データIb(t-2),Ib(t-1),Ib(t)の補間を示す。具体的には、たとえば、残像低減処理部1001は、合成画像データIb(t-2)において、時間的に古い方の被写体像OBa(t-3)の輪郭のうち、動きベクトルmv(t-2)の終端側の輪郭(左側半分の円弧)を移動方向に複製することで、被写体像OBa(t-3),OBa(t-2)の間を補間する。これにより、残像低減処理部1001は、補間された被写体像OBc(t-2)を含む補間合成画像データIc(t-2)を生成する。
同様に、残像低減処理部1001は、合成画像データIb(t-1)において、時間的に古い方の被写体像OBa(t-2)の輪郭のうち、動きベクトルmv(t-1)の終端側の輪郭(左側半分の円弧)を移動方向に複製することで、被写体像OBa(t-2),OBa(t-1)の間を補間する。これにより、残像低減処理部1001は、補間された被写体像OBc(t-1)を含む補間合成画像データIc(t-1)を生成する。
また、残像低減処理部1001は、合成画像データIb(t)において、時間的に古い方の被写体像OBa(t-1)の輪郭のうち、動きベクトルmv(t)の終端側の輪郭(左側半分の円弧)を移動方向に複製することで、被写体像OBa(t-1),OBa(t)の間を補間する。これにより、残像低減処理部1001は、補間された被写体像OBc(t)を含む補間合成画像データIc(t)を生成する。なお、図11では、輪郭の複製対象をとなる輪郭を時間的に古い方の被写体像の輪郭としたが、時間的に新しい方の被写体像の輪郭としてもよい。
このように、撮像装置100は、補間処理により、各画像データに離散的に出現する残像を、シャッタースピードを遅くしたかのような被写体像の移動軌跡に変換して連続的に表示する。これにより、あたかも残像が存在しないかのようにユーザに見せることで、残像を低減することができる。
<再帰的ノイズ除去処理>
図12は、実施例4にかかる撮像装置100による再帰的ノイズ除去手順例を示すフローチャートである。実施例4では、ステップS302のあと、撮像装置100は、実施例1~3、および図5におけるいずれかにより重みを計算する(ステップS1203)。つぎに、撮像装置100は、残像低減処理部1001により、ローパスフィルタまたは補間処理による残像低減処理を実行する(ステップS1204)。そして、撮像装置100は、ノイズ除去処理部1002により、ステップS1203で計算された重みWを用いて、残像低減処理後の画像データからノイズを除去する(ステップS307)。
このあと、撮像装置100は、ノイズ除去画像データIoutを表示デバイス110に出力し(ステップS308)、画像保存部204により、ノイズ除去画像データIoutを過去画像データIoldとして第1メモリ205に保存する(ステップS309)。このような処理を撮像が終了するまで、再帰的に実行することで、残像を連続的に目立たなくし、結果的に残像発生を抑制することができる。
実施例4では、除去部203において重みを用いた現在画像データからのノイズ除去に先立って、現在画像データに対し残像低減処理を実行する例について説明したが、これとは逆に、実施例5は、除去部203において重みを用いた現在画像データからのノイズ除去後に、ノイズ除去画像データに対し、残像低減処理を実行する例である。実施例5の撮像装置100は、ノイズ除去後に現在画像データの残像を低減させることで、残像発生の抑制を図る。実施例5では、実施例4との相違点を中心に説明し、実施例1~4と共通部分については同一符号を用いて説明を省略する。
<機能的構成例>
図13は、実施例5にかかる撮像装置100の機能的構成例を示すブロック図である。除去部203は、算出部202から重みを取得する。算出部202からの重みは、実施例1,3の場合は調整済みの重みW´であり、実施例2の場合は、更新済みの重みWnewである。また、算出部202が図5に示した構成である場合、算出部202からの重みは、重み計算部221により、過去画像データIoldと現在画像データIとを上記式(2)に与えて計算された重みWである。実施例5では、特に区別しない限り、これらの重みを総称して、単に、重みWと表記する。
除去部203は、ノイズ除去処理部1002と、残像低減処理部1001と、を有する。ノイズ除去処理部1002は、取得部201からの画像データについて、算出部202からの重みWに基づいて、ノイズ除去対象の画像データのノイズを除去し、ノイズ除去画像データを出力する。具体的には、たとえば、除去部203は、算出部202からの重みWを上記式(7)のW´に代入することにより、重み付け平均で画像データのノイズを除去する。
残像低減処理部1001は、ノイズ除去画像データの残像を低減する処理を実行する。具体的には、たとえば、残像低減処理部1001は、ノイズ除去画像データにローパスフィルタを施すことにより、残像となる動く被写体像の輪郭をぼかす。これにより、動く被写体像の輪郭を目立ちにくくする。また、残像低減処理部1001は、図11に示したように、時間方向に連続する2枚のノイズ除去画像データI(t-1),I(t)について、動く被写体像の間を補間することにより、残像となる動く被写体像の輪郭をぼかす(補間処理)。
<再帰的ノイズ除去処理>
図14は、実施例5にかかる撮像装置100による再帰的ノイズ除去手順例を示すフローチャートである。実施例5では、ステップS302のあと、撮像装置100は、実施例1~3、および図5におけるいずれかにより重みを計算する(ステップS1203)。つぎに、撮像装置100は、ノイズ除去処理部1002により、ステップS1203で計算された重みWを用いて、ノイズ除去画像データからノイズを除去する(ステップS307)。そして、撮像装置100は、残像低減処理部1001により、ローパスフィルタまたは補間処理による残像低減処理を実行する(ステップS1204)。
このあと、撮像装置100は、ノイズ除去画像データIoutを表示デバイス110に出力し(ステップS308)、画像保存部204により、ノイズ除去画像データIoutを過去画像データIoldとして第1メモリ205に保存する(ステップS309)。このような処理を撮像が終了するまで、再帰的に実行することで、残像を連続的に目立たなくし、結果的に残像発生を抑制することができる。また、残像低減処理に先立ってノイズ除去を実行することで、ノイズのぼかしや補間を抑制することができる。
実施例6は、画像データから残像が発生する領域(残像発生領域)を検出して、検出した残像発生領域(検出領域)から残像を除去する例である。これにより、残像を低減する範囲を、残像発生領域に絞り込むことができ、残像低減処理を効率的に実行することができる。実施例6では、実施例5との相違点を中心に説明し、実施例1~5と共通部分については同一符号を用いて説明を省略する。
図15は、実施例6にかかる残像低減処理例を示す説明図である。図15において、矩形は画像データを示す。矩形内の網掛けの範囲はノイズNを示す。ノイズは画像データ全体に一様に存在する場合もあるが、ここでは、説明を単純化するため、特定の位置にノイズNが存在するものとする。(A)は、被写体像が移動しない場合の例を示し、(B)は、被写体像が移動する場合の例を示す。
(A)において、画像データIa(t-1),Ia(t)は、時間方向に連続する画像データ列である。画像データIa(t-1),Ia(t)は、ともに同じ位置にノイズNおよび被写体像OB(t-1),OB(t)を有する。ノイズ除去画像データNRIa(t-1)は、時刻t-2のノイズ除去画像データ(過去画像データIold)に基づいて画像データIa(t-1)からノイズNが除去された画像データである。ノイズ除去画像データNRIa(t)は、時刻t-1のノイズ除去画像データNRIa(t-1)(過去画像データIold)に基づいて画像データIa(t)からノイズNが除去された画像データである。
撮像装置100は、現在画像データである時刻tの画像データIa(t)と、時刻t-1のノイズ除去画像データNRIa(t-1)(過去画像データIold)と、の加重平均により、画像データIa(t)からノイズNが除去されたノイズ除去画像データNRIa(t)を生成する。また、差分画像データDIa(t)は、画像データIa(t)とノイズ除去画像データNRIa(t)との差分をとった画像データである。この場合、被写体像OB(t)とその背景は相殺され、差分としてノイズNが残存することになる。
(B)において、画像データIb(t-1),Ib(t)は、時間方向に連続する画像データ列である。画像データIb(t-1),Ib(t)は、同じ位置にノイズNを有するが、被写体像OB(t-1),OB(t)の位置は異なる。すなわち、被写体が左から右に移動していることを示す。
ノイズ除去画像データNRIb(t-1)は、時刻t-2のノイズ除去画像データ(過去画像データIold)に基づいて画像データIb(t-1)からノイズNが除去された画像データである。ノイズ除去画像データNRIb(t-1)には、時刻t-2の画像データに存在していた被写体像の残像A(t-2)が存在するものとする。
ノイズ除去画像データNRIb(t)は、時刻t-1のノイズ除去画像データNRIb1(t-1)(過去画像データIold)に基づいて画像データIb(t)からノイズNが除去された画像データである。ただし、ノイズ除去画像データNRIb1(t)には、ノイズ除去画像データNRIb(t-1)における被写体像OB(t-1)の位置に、残像A(t-1)が存在する。
撮像装置100は、現在画像データである時刻tの画像データIb(t)と、時刻t-1のノイズ除去画像データNRIb(t-1)(過去画像データIold)と、の加重平均により、画像データIb(t)からノイズNが除去されたノイズ除去画像データNRIb1(t)を生成する。また、差分画像データDIb(t)は、画像データIb(t)とノイズ除去画像データNRIb1(t)との差分をとった画像データである。この場合、被写体像OB(t)とその背景は相殺され、差分としてノイズNおよび残像A(t-1)が残存することになる。
撮像装置100は、差分画像データDIb(t)を参照して、残像A(t-1)の領域を残像発生領域1500として特定する。つぎに、撮像装置100は、残像発生領域の画像データ(この場合は、輪郭の残像A(t-1))と同じ位置の画像データ1501を、時刻tの画像データIb(t)から抽出する。そして、撮像装置100は、ノイズ除去画像データNRIb1(t)における残像A(t-1)を、当該抽出した画像データ1501に置換する。これにより、撮像装置100は、ノイズ除去画像データNRIb1(t)から残像A(t-1)を除去したノイズ除去画像データNRIb2(t)を生成することができる。
なお、撮像装置100は、残像発生領域1500の画像データ(この場合は、輪郭の残像A(t-1))と同じ位置の画像データ1501を、時刻tの画像データIb(t)から抽出することとしたが、抽出する範囲は、残像発生領域1500と同じ位置に限らず、残像発生領域1500とその近傍を含む領域でもよい。また、ここでは、残像は、被写体像の輪郭であることが多いため、残像発生領域1500を被写体像の輪郭に対応する領域としたが、輪郭で囲まれる内部も残像発生領域1500としてもよい。これにより、残像の除去漏れの低減を図ることができる。
<機能的構成例>
図16は、実施例6にかかる撮像装置100の機能的構成例を示すブロック図である。残像低減部は、図15に示したように、ノイズ除去処理部1002からノイズ除去画像データを取得する。また、残像低減処理部1001は、図15に示したように、たとえば、取得部201から現在画像データIb(t)を取得する。また、残像低減処理部1001は、第1メモリ205から過去画像データIoldを取得する。過去画像データIoldは、たとえば、1つ前の時刻t-1のノイズ除去画像データNRIb(t-1)である。
残像低減処理部1001は、図15に示したように、現在画像データIb(t)と過去画像データIoldとの加重平均により、現在画像データIb(t)についてのノイズ除去画像データNRIb(t)を生成し、現在画像データIb(t)と生成したノイズ除去画像データNRIb(t)との差分画像データDIb(t)を生成する。
そして、残像低減処理部1001は、差分画像データDIb(t)から残像発生領域1500を検出し、残像発生領域1500と同一位置の画像データ1501を現在画像データIb(t)から特定する。そして、残像低減処理部1001は、ノイズ除去画像データNRIb1(t)において、画像データ1501を合成することにより、残像A(t-1)を除去したノイズ除去画像データNRIb2(t)を生成する。
残像低減処理部1001は、生成したノイズ除去画像データNRIb2(t)を表示デバイス110に出力するとともに、画像保存部204に出力する。画像保存部204は、取得したノイズ除去画像データNRIb2(t)をあらたな過去画像データIoldとして第1メモリ205に保存する。
なお、残像低減処理部1001は、実施例5に示したローパスフィルタや補間処理を実施例6に適用してもよい。具体的には、たとえば、残像低減処理部1001は、現在画像データIb(t)についてローパスフィルタまたは補間処理を適用し、当該適用後の現在画像データIb(t)と生成したノイズ除去画像データNRIb(t)との差分画像データDIb(t)を生成してもよい。
また、残像低減処理部1001は、生成したノイズ除去画像データNRIb2(t)についてローパスフィルタや補間処理を適用し、当該適用後のノイズ除去画像データNRIb2(t)を表示デバイス110および画像保存部204に出力してもよい。
<再帰的ノイズ除去処理>
図17は、実施例6にかかる撮像装置100による再帰的ノイズ除去手順例を示すフローチャートである。実施例6では、ステップS302のあと、撮像装置100は、実施例1~3、および図5におけるいずれかにより重みを計算する(ステップS1203)。つぎに、撮像装置100は、ノイズ除去処理部1002により、ステップS1203で計算された重みWを用いて、ノイズ除去画像データからノイズを除去する(ステップS307)。そして、撮像装置100は、残像低減処理部1001により、ローパスフィルタまたは補間処理による残像低減処理を実行する(ステップS1771~S1773)。
具体的には、たとえば、残像低減処理部1001は、現在画像データIb(t)とノイズ除去画像データNRIb1(t)との差分画像データDIb(t)を生成し(ステップS1771)、差分画像データDIb(t)から残像発生領域1500を検出する(ステップS1772)。
そして、残像低減処理部1001は、残像発生領域1500と同じ位置の画像データ1501を現在画像データIb(t)から抽出して、ノイズ除去画像データNRIb1(t)に合成することで、ノイズ除去画像データNRIb2(t)を生成し、残像A(t-1)を除去する(ステップS1773)。このあと、残像低減処理部1001は、ノイズ除去画像データNRIb2(t)を出力画像データIoutとして表示デバイス110に出力し(ステップS308)、画像保存部204に出力する(ステップS309)。
このような処理を撮像が終了するまで、再帰的に実行することで、残像を連続的に目立たなくし、結果的に残像発生を抑制することができる。このように、残像を低減する範囲を、残像発生領域に絞り込むことができ、残像低減処理を効率的に実行することができる。換言すれば、残像が発生していない領域については残像低減処理を実行しなくて済むため、残像を低減しなくてもよい領域の残像低減処理を回避することができ、元の画像を維持することができる。
実施例7は、残像が発生しづらい動画を撮像する条件を調整することにより、残像を目立ちにくくする例である。
<動画撮像例>
図18は、実施例7にかかる動画撮像例を示す説明図である。図18は、ある被写体を動画撮像する例であり、矩形は、時間方向に連続する画像データ列、すなわち、動画像データである。また、フレームレートは、説明の便宜上、一例として3[fps]とする。また、時刻t1~t3のうち時刻t1が最古の時刻であり、時刻t3が最新の時刻である。(A)は、撮像条件が実施例7で調整されていない動画撮像例であり、(B)は、撮像条件が実施例7で調整された動画撮像例である。したがって、(A),(B)ともに1/3[fps]で画像データが1枚生成される。
なお、符号の末尾には、時刻t1~t3を区別するため、(t1)~(t3)が付してあるが、時刻t1~t3を区別しない場合は、単に、(t)と表記する。時刻t1~t3を区別しないも、単に、時刻tと表記する。
(A)において、et(t)は露光時間である。gp(t)は連続する露光時間の間のギャップ時間である。露光時間とは、シャッター(たとえば、ローリングシャッター)の開放状態から閉塞状態になるまで撮像素子105がレンズ系からの被写体光にさらされる時間である。
撮像装置100は、被写体を時刻t1~t3に撮像して、画像データIa(t1),Ia(t2),Ia(t3)を生成する。画像データIa(t1),Ia(t2),Ia(t3)はそれぞれ、被写体像OBa(t1),OBa(t2),OBa(t3)を含む。
被写体を撮像する場合、まず、撮像装置100は、時刻tから始まる1/3[s]の間で、時刻tから始まる露光時間et(t)で露光する。つぎに、撮像装置100は、露光時間et(t)経過後のギャップ時間gp(t)で、撮像素子105からアナログの電気信号を読み出して、AFE106が信号処理を実行する。これにより、画像データIa(t)が生成される。
撮像装置100は、時刻tごとに再帰的にノイズ除去を実行する。たとえば、時刻t3では、撮像装置100は、時刻t3で得られる画像データIa(t3)についてノイズ除去を実行する。具体的には、たとえば、撮像装置100は、画像データIa(t2)からノイズが除去されたノイズ除去画像データと、画像データIa(t3)との重み付き平均をとることにより、画像データIa(t3)からノイズが除去されたノイズ除去画像データNRIa(t3)を生成する。
ノイズ除去画像データNRIa(t3)において、残像Aa(t2),Aa(t1)は、再帰的なノイズ除去により画像データIa(t2),Ia(t1)内の被写体像OBa(t2),OBa(t1)から引き継がれた画像データであり、古い時刻の被写体像OBa(t2),OBa(t1)ほど薄くなる。
また、ノイズ除去画像データNRIa(t3)では、被写体像OBa(t3)および残像Aa(t2),Aa(t1)が被写体の移動方向に離散的に出現するため、被写体の動きが不自然な映像となる。すなわち、露光時間et(t)が短いと、露光していない時間であるギャップ時間gp(t)が相対的に長くなり、前後の画像にずれが生じて不連続さが目立つ。
(B)において、ET(t)は露光時間である。GP(t)は連続する露光時間の間のギャップ時間である。露光時間ET(t)は、本実施例7による撮像条件設定により、露光時間et(t)よりも長くなり、これにより、ギャップ時間GP(t)は、ギャップ時間gp(t)よりも短くなる。
撮像装置100は、被写体を時刻t1~t3に撮像して、画像データIb(t1),Ib(t2),Ib(t3)を生成する。画像データIb(t1),Ib(t2),Ib(t3)はそれぞれ、被写体像OBb(t1),OBb(t2),OBb(t3)を含む。
被写体を撮像する場合、まず、撮像装置100は、時刻tから始まる1/3[s]の間で、時刻tから始まる露光時間ET(t)で露光する。つぎに、撮像装置100は、露光時間ET(t)経過後のギャップ時間GP(t)で、撮像素子105からアナログの電気信号を読み出して、AFE106が信号処理を実行する。これにより、画像データIb(t)が生成される。
露光時間ET(t)は、(A)の露光時間et(t)よりも長いため、被写体が動いている様子を撮像することができる。この場合、画像データIb(t)は、被写体が左から右に移動する様子として、被写体像OBb(t)と被写体像OBb(t)に追従する軌跡TJ(t)とを含む。軌跡TJ(t)は、露光時間ET(t)の経過にともなって得られる被写体像OBb(t)の時系列な残像である。
撮像装置100は、時刻tごとに再帰的にノイズ除去を実行する。たとえば、時刻t3では、撮像装置100は、時刻t3で得られる画像データIb(t3)についてノイズ除去を実行する。具体的には、たとえば、撮像装置100は、画像データIb(t2)からノイズが除去されたノイズ除去画像データと、画像データIb(t3)との重み付き平均をとることにより、画像データIb(t3)からノイズが除去されたノイズ除去画像データNRIb(t3)を生成する。
ノイズ除去画像データNRIb(t3)において、残像Ab(t2),Ab(t1)は、再帰的なノイズ除去により画像データIb(t2),Ib(t1)内の被写体像OBa(t2),OBa(t1)の軌跡TJ(t2),TJ(t1)から引き継がれた画像データであり、古い時刻の被写体像OBb(t2),OBb(t1)ほど薄くなる。
ノイズ除去画像データNRIb(t3)では、被写体像OBb(t3)とその軌跡TJ(t3)および残像Ab(t2),Ab(t1)が被写体の移動方向に連続的に出現するため、被写体の動きが自然な映像となる。すなわち、露光時間ET(t)が露光時間et(t)よりも短いと、露光していない時間であるギャップ時間GP(t)が相対的に短くなり、前後の画像のずれが低減され不連続さが目立たなくなる。
<撮像装置100の機能的構成例>
図19は、実施例7にかかる撮像装置100の機能的構成例を示すブロック図である。撮像装置100は、変換テーブル1900と、入力部1901と、設定部1902と、調整部1903と、撮像部120と、画像処理部1905と、を有する。変換テーブル1900は、具体的には、たとえば、図1に示した記憶デバイス102により実現される。また、入力部1901、設定部1902、調整部1903、および画像処理部1905は、具体的には、たとえば、図1に示した記憶デバイス102に記憶されたプログラムをプロセッサ101に実行させることにより、または、LSI107により実現される。
変換テーブル1900は、第1撮像条件を第2撮像条件に変換するテーブルである。第1撮像条件1952は、デフォルトの撮像条件であり、たとえば、フレームレート1951に応じた露光時間である。撮像装置100において、たとえば、フレームレート1951が「FRi」に設定されると、露光時間は、「eti」に設定される。図18の例では、(A)においてフレームレート1951が、3[fps]である場合、露光時間は、et(t)となる。
第2撮像条件1953とは、残像を低減させるための撮像条件であり、第1撮像条件1952に対応する。たとえば、第2撮像条件1953であるFCiは、フレームレート1951がFRiの場合のデフォルトの露光時間etiよりも長い露光時間ETiとする。また、露光時間がetiからETiに延長されたことによる露出オーバーを抑制するため、第2撮像条件1953であるFCiは、ISO感度の低下量(低下後のISO感度でもよい)を含んでもよい。
入力部1901は、被写体を撮像する際のフレームレート1951の入力を操作デバイス108から受け付ける。なお、入力部1901は、撮影モードが操作デバイス108から選択されることで、当該撮影モードで規定されるフレームレート1951を受け付けてもよい。なお、撮影モードによっては同じフレームレート1951でも露光時間が異なる場合がある。
設定部1902は、入力部1901によって入力されたフレームレート1951および当該フレームレート1951に対応する露光時間に基づいて、残像を低減する第2撮像条件1953を設定する。具体的には、たとえば、設定部1902は、入力部1901からのフレームレート1951に対応する第2撮像条件1953を変換テーブル1900から読み出す。入力部1901からフレームレート1951のみが与えられた場合には、第1撮像条件1952の露光時間はデフォルトの露光時間として、設定部1902は、対応する第2撮像条件1953を変換テーブル1900から読み出す。
また、入力部1901からの撮影モードによりフレームレート1951および露光時間が指定されている場合には、設定部1902は、当該フレームレート1951および露光時間に対応する第2撮像条件1953を変換テーブル1900から読み出す。また、第2撮像条件1953にISO感度の低下量(または低下後のISO感度)が含まれている場合、設定部1902は、当該ISO感度の低下量(または低下後のISO感度)も読みだす。
調整部1903は、入力部1901によって入力されたフレームレート1951に対応する露光時間から、当該露光時間よりも長い露光時間に調整する。具体的には、たとえば、図18に示したように、調整部1903は、たとえば、フレームレート1951が3[fps]でその露光時間がet(t)とすると、露光時間et(t)を変換テーブル1900から得られた露光時間ET(t)に変更する。
撮像部120は、フレームレート1951および調整部1903によって調整された露光時間に基づいて、被写体を撮像して、時間方向に連続する画像データ列を出力する。具体的には、たとえば、撮像部120は、図18の(B)に示したような画像データIb(t)を生成する。
画像処理部1905は、撮像部120からの画像データIb(t)を、画像処理する。具体的には、たとえば、画像処理部1905は、実施例1~6に示した取得部201、算出部202、除去部203、画像保存部204、および第1メモリ205により構成される。したがって、実施例1で示した再帰的ノイズ処理により、図18の(B)に示したようなノイズ除去画像データNRIb(t3)を生成する。
<撮像処理手順例>
図20は、撮像装置100による撮像処理手順例を示すフローチャートである。撮像装置100は、入力部1901によりフレームレート1951の入力を受け付け(ステップS2001)、設定部1902により第2撮像条件1953を設定する(ステップS2002)。
撮像装置100は、調整部1903により第2撮像条件1953で露光時間を調整し(ステップS2003)、撮像部120により被写体を撮像して画像データ列を生成する(ステップS2004)。撮像装置100は、画像処理部1905により、実施例1~6に示した再帰的ノイズ除去処理(図3、図7、図9、図12、図14、図17)を含む画像処理を実行する(ステップS2005)。なお、画像処理(ステップS2005)は、図5に示したような再帰的ノイズ除去処理を含んでもよい。
なお、上述の例では、光量情報である露光時間を調整対象としたが、調整対象となる光量情報は露光時間に限らず、F値やISO感度でもよい。F値を調整対象とした場合、第1撮像条件1952の露光時間がF値となり、第2撮像条件1953の露光時間が、第1撮像条件1952のF値よりも値が小さいF値となる。この場合も露出オーバーを低減するため、第2撮像条件1953に、デフォルトの露光時間よりも短くしたり、ISO感度を低くしたりする値を含めればよい。
また、ISO感度を調整対象とした場合、第1撮像条件1952の露光時間がISO感度となり、第2撮像条件1953の露光時間が、第1撮像条件1952のISO感度よりも高いISO感度となる。この場合も露出オーバーを低減するため、第2撮像条件1953に、デフォルトの露光時間よりも短くしたり、F値を大きくしたりする値を含めればよい。
このように、実施例7によれば、残像が目立ちにくい画像データ列を生成することができる。また、これらの画像データ列を画像処理部1905に適用することにより、実施例1~6のようなノイズ除去結果を再帰的に得ることができる。