JP5761988B2 - 画像処理装置、画像処理方法 - Google Patents

画像処理装置、画像処理方法 Download PDF

Info

Publication number
JP5761988B2
JP5761988B2 JP2010283729A JP2010283729A JP5761988B2 JP 5761988 B2 JP5761988 B2 JP 5761988B2 JP 2010283729 A JP2010283729 A JP 2010283729A JP 2010283729 A JP2010283729 A JP 2010283729A JP 5761988 B2 JP5761988 B2 JP 5761988B2
Authority
JP
Japan
Prior art keywords
filter
pixel
image
filters
representative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010283729A
Other languages
English (en)
Other versions
JP2012134668A5 (ja
JP2012134668A (ja
Inventor
知宏 西山
知宏 西山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010283729A priority Critical patent/JP5761988B2/ja
Priority to US13/313,524 priority patent/US8774545B2/en
Publication of JP2012134668A publication Critical patent/JP2012134668A/ja
Publication of JP2012134668A5 publication Critical patent/JP2012134668A5/ja
Application granted granted Critical
Publication of JP5761988B2 publication Critical patent/JP5761988B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • G06T5/73
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/30Noise filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20004Adaptive image processing
    • G06T2207/20012Locally adaptive

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Description

本発明は、フィルタ処理技術に関するものである。
近年、デジタルカメラは2000万画素を超える高画質化が進み、それにより解像度の高い高品位な画像を撮影できるようになった。その一方で、シャッターを押している間にカメラがブレたり、光学系やピントのズレによるボケが発生する場合がある。このような場合には画質が悪化し、高画質化のメリットを生かすことができない。
そのような画質劣化を改善するために、手ブレに対するブレフィルタやレンズの像高に応じた光学フィルタ、被写体距離に応じたボケフィルタなど、画素(領域)ごとに異なるフィルタを画像に作用させて画像を回復させる手法が提案されている(特許文献1)。
また、画素ごとに異なるフィルタを全て保持するのではなく、代表的なフィルタだけを保持しておき、残りのフィルタは線形補間で生成するという手法が提案されている(特許文献2)。
特開2005-63323号公報 特開2005-31759号公報
しかしながら、特許文献1の手法では、画素ごとに異なるフィルタを全て保持する必要があるため、多くのメモリ容量が要求されることになる。また、特許文献2の手法では、代表フィルタの中間にあるフィルタを単純に線形補間によって生成しているが、線形補間はフィルタ間の距離によって重みを決定するため、フィルタの特性が距離に応じて変化しない場合は中間のフィルタを精度良く生成できない。また、特許文献2の手法では、保持すべきフィルタのデータ量を削減することはできるが、画像にフィルタを演算させる場合の演算量を減らすことはできない。
本発明は以上の問題に鑑みてなされたものであり、保持すべきフィルタのデータ量を削減し、画像にフィルタを作用させる際の演算量を削減する為の技術を提供することを目的とする。
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。即ち、画像を取得する画像取得手段と、
前記画像の各画素について少なくとも1つずつ設定された、該画素に対して適用する為のフィルタであって前記画像中の少なくとも2つの画素の間で異なる原フィルタを示す情報を、前記画像の各画素について取得する情報取得手段と、
前記情報取得手段によって取得された情報が示す複数の原フィルタから、該複数の原フィルタの合計数よりも数が少ない、複数の代表フィルタを決定するフィルタ決定手段と、
前記画像の各画素について、該画素に対応する原フィルタを近似するための前記複数の代表フィルタの線型結合における、前記複数の代表フィルタそれぞれの重み値を示す重みベクトルを、該画素に対応する原フィルタと前記複数の代表フィルタとに基づいて決定する重み決定手段と、
前記画像に対して前記複数の代表フィルタそれぞれの畳み込み演算を行う第一の処理と、前記画像の各画素の画素値に該画素に対応する重みベクトルが示す重み値を乗算する第二の処理と、前記画像に前記第一の処理と前記第二の処理とを行うことによって得られた、それぞれが前記複数の代表フィルタのうちの一つに対応する複数の画像を合成する処理と、を行うことによって、前記画像に対するフィルタ処理を実行する実行手段と
を備えることを特徴とする。
本発明の構成によれば、保持すべきフィルタのデータ量を削減し、画像にフィルタを作用させる際の演算量を削減することができる。
画像処理装置の機能構成例を示すブロック図。 画像処理装置の機能構成例を示すブロック図。 画像処理装置の機能構成例を示すブロック図。 代表フィルタ取得部100が行う処理のフローチャート。 画像処理装置の機能構成例を示すブロック図。 重み係数算出部200が行う処理のフローチャート。 フィルタ演算部300が行う処理のフローチャート。 画像の分割例と代表フィルタの設定例を示す図。 代表フィルタfiに対応する重み値の画素ごとの分布の例を示す図。 画像の左上を中心とした回転手ブレによる場所ごとのブレのフィルタを示す図。 第1の実施形態の効果を説明する図。 画像処理装置の機能構成例を示すブロック図。 代表フィルタ取得部1200が行う処理のフローチャート。 フィルタを説明する図。 フィルタの一例を示す図。
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の1つである。
[第1の実施形態]
<画像処理装置の機能構成例について>
先ず、本実施形態に係る画像処理装置の機能構成例について、図5のブロック図を用いて説明する。画像処理装置500は、端子501を介して後述する代表フィルタ数Nを取得すると共に、端子502を介して入力画像を取得する。そして端子503を介してフィルタ処理済み画像を出力する。画像処理装置500内の各部については図1〜3に分けて説明する。
しかし、本実施形態は、図1〜3に示したそれぞれの構成を1つの装置に組み込むことに限定するものではなく、それぞれの構成を適当な数の装置に分けて組み込むようにしても良い。その場合、それぞれの装置が協調動作を行うことで、以下に説明する各処理が実現されることになる。
先ず、図1に示す構成について説明する。図1に示す構成は、画像を構成するそれぞれの画素に対して予め設定されたフィルタのうち、これらのフィルタを近似する主要なフィルタを、代表フィルタとして選択する為の構成に係るものである。
フィルタデータベース110には、画素に対して適用する為のフィルタが、画像を構成するそれぞれの画素について登録されている(フィルタ保持)。このフィルタデータベース110は、画像処理装置が有するようにしても良いし、外部装置が有するようにしても良い。代表フィルタ取得部100は、重要度算出部103、取得部104、端子101,102,105、を有する。
重要度算出部103は、このフィルタデータベース110に登録されている画素毎のフィルタを、端子101を介して読み出す。そして重要度算出部103は、読み出したそれぞれのフィルタに対して重要度を求める。重要度を求める処理については後述する。
取得部104は、端子102を介して代表フィルタ数Nを取得する。この代表フィルタ数Nは画像処理装置内に予め保持しておいても良いし、ユーザによって入力しても良いし、外部装置から取得しても良い。そして取得部104は、重要度算出部103がフィルタデータベース110から読み出したフィルタ群のうち、重要度が大きいものからN個を代表フィルタとして選択する。このとき、代表フィルタとして選択したそれぞれのフィルタのサイズが全て同じでない場合は、例えば、全ての代表フィルタのサイズを、最も高い重要度が高い代表フィルタのサイズにリサイズする。そして取得部104は、選択したそれぞれの代表フィルタを、端子105を介して代表フィルタデータベース120に登録する。
次に、図2に示す構成について説明する。図2に示す構成は、画像を構成するそれぞれの画素について、それぞれの代表フィルタに対する重み値を成分とする重みベクトル、を求めるための構成に係るものである。重み係数算出部200は、相関ベクトル算出部203、相関行列算出部204、方程式解導出部205、端子201,202,206、を有する。
相関ベクトル算出部203は、フィルタデータベース110に登録されている画素毎のフィルタを、端子201を介して読み出すと共に、代表フィルタデータベース120に登録されているそれぞれの代表フィルタを、端子202を介して読み出す。そして相関ベクトル算出部203は、画像を構成するそれぞれの画素について、画素に対するフィルタと、それぞれの代表フィルタと、の相関を示す相関ベクトルbを求める。
相関行列算出部204は、代表フィルタデータベース120に登録されているそれぞれの代表フィルタを、端子202を介して読み出す。そして相関行列算出部204は、代表フィルタ同士の相関を示す相関行列Aを求める。
方程式解導出部205は、画像を構成するそれぞれの画素について連立方程式Aw=bを解くことで、画像を構成するそれぞれの画素について重みベクトルwを求める。例えば着目画素に対して生成した重みベクトルwとは、相関行列Aに対して乗じることで着目画素に対して求めた相関ベクトルbとなるようなベクトルであって、それぞれの代表フィルタに対する重み値を成分とするベクトル、である。そして方程式解導出部205は、画素毎に求めた重みベクトルwを、重みデータとして端子206を介して重み係数データベース210に登録する。相関ベクトルb、相関行列A、重みベクトルw、のそれぞれの求め方、及びそれぞれに関する詳細な説明については後述する。
次に、図3に示す構成について説明する。図3に示す構成は、入力画像に対してフィルタ処理を施す為の構成に係るものである。フィルタ演算部300は、重み係数乗算部304、畳み込み演算部305、合成部306、終了判定部307、端子301,302,303,308を有する。
重み係数乗算部304は、画像データを入力画像として端子301を介して取得する。そして重み係数乗算部304は、この取得した入力画像に対して、重み係数データベース210に登録されている代表フィルタ毎の重み値を乗じることで、代表フィルタ毎に重み係数乗算済み画像を生成する。
畳み込み演算部305は、代表フィルタデータベース120に登録されている代表フィルタと、この代表フィルタについて重み係数乗算部304が生成した重み係数乗算済み画像と、の畳み込み演算を行うことで、代表フィルタ毎に畳み込み済み画像を生成する。
合成部306は、畳み込み演算部305により畳み込み済み画像が生成されるたびに、この生成された畳み込み済み画像を、それまでに生成された畳み込み済み画像に合成する。これにより、現時点までに生成された全ての畳み込み済み画像を合成した合成画像を生成する。もちろん、合成のタイミングはこれに限るものではなく、代表フィルタ毎の畳み込み済み画像が生成された後で、それぞれの畳み込み済み画像を一度に合成しても良い。
終了判定部307は畳み込み演算部305及び合成部306による「畳み込み済み画像を生成し、それまでに生成した畳み込み済み画像と合成する」という一連の動作を代表フィルタ数Nだけ繰り返すように、畳み込み演算部305及び合成部306を制御する。そして終了判定部307は、この一連の動作を代表フィルタ数Nだけの回数繰り返すことで生成された合成画像を、端子308を介して画像データとして出力する。合成画像の出力先については特に限定するものではなく、合成画像はメモリに格納しても良いし、外部装置に対して出力しても良いし、表示装置上に表示しても良い。
<画像処理装置が行う処理について>
次に、代表フィルタ取得部100が行う処理について、同処理のフローチャートを示す図4を用いて、より詳細に説明する。ステップS401では重要度算出部103は、x方向にX画素、y方向にY画素、のサイズを有する画像における着目画素の座標位置として用いる変数x、yをそれぞれ0に初期化する。なお、座標位置(x、y)=(0、0)は、この画像の左上隅の座標位置を示しているものとする。
次にステップS402では重要度算出部103は、座標位置(x、y)に対応するフィルタを、端子101を介して、フィルタデータベース110から読み出す。このフィルタは、例えば図15に示す如く、3×3のサイズを有するフィルタであり、着目画素に対して適用する為のフィルタは、着目画素と着目画素の周辺画素とから成る画素群に対して乗じる係数から成るフィルタである。そしてステップS403では重要度算出部103は、この読み出したフィルタの重要度を求める。重要度の求め方については後述する。
ステップS404では重要度算出部103は、全ての座標位置(全ての画素)についてステップS402及びS403の処理を行ったか否かを判断する。この判断は、x=X−1且つy=Y−1であるか否かを判断することで行うことができる。この判断の結果、全ての座標位置についてステップS402及びS403の処理を行ったと判断した場合、処理はステップS406に進む。一方、未だステップS402及びS403の処理を行っていない座標位置があると判断した場合、処理はステップS405に進む。
ステップS405では重要度算出部103は変数x又はyの値を1つインクリメントして更新し、未処理の座標位置を着目画素の座標位置とする。ここで、座標位置の更新は、画像の左上から右下に向かって行うものとする。そしてこの更新した座標位置についてステップS402以降の処理を行う。
ステップS406では取得部104は、端子102を介して代表フィルタ数Nを取得し、画素毎のフィルタのうち、重要度が大きいものから順にN個のフィルタを、代表フィルタとして選択する。そしてステップS407では取得部104は、選択したN個のフィルタを、端子105を介して代表フィルタデータベース120に登録する。
次に、重み係数算出部200が行う処理について、同処理のフローチャートを示す図6を用いて、より詳細に説明する。
ステップS601では重み係数算出部200は、x方向にX画素、y方向にY画素、のサイズを有する画像における着目画素の座標位置として用いる変数x、yをそれぞれ0に初期化する。なお、座標位置(x、y)=(0、0)は、この画像の左上隅の座標位置を示しているものとする。
次にステップS602では相関ベクトル算出部203は、座標位置(x、y)に対応するフィルタを、端子201を介して、フィルタデータベース110から読み出す。
ステップS603では相関ベクトル算出部203は先ず、代表フィルタデータベース120に登録されているそれぞれの代表フィルタを、端子202を介して読み出す。そして相関ベクトル算出部203は、ステップS602で読み出したフィルタと、本ステップで読み出したそれぞれの代表フィルタと、の相関を示す相関ベクトルbを求める。相関ベクトルbを求めるための方法については後述する。
ステップS604では相関行列算出部204は先ず、代表フィルタデータベース120に登録されているそれぞれの代表フィルタを、端子202を介して読み出す。そして相関行列算出部204は、代表フィルタ同士の相関を示す相関行列Aを求める。相関行列Aを求めるための方法については後述する。ステップS605では方程式解導出部205は、以下の式(1)を解くことで、重みベクトルwを求める。
ここで求めた重みベクトルwは、ステップS604で求めた相関行列Aに対して乗じることでステップS603で求めた相関ベクトルbとなるようなベクトルであって、それぞれの代表フィルタに対する重み値を成分とするベクトル、である。然るに、本実施形態の場合、重みベクトルwは、N個の重み値を要素として有するベクトルであって、i(1≦i≦N)番目の重み値は、i番目の代表フィルタ(代表フィルタfi)に対する重み値である。このように、重みベクトルwは座標位置毎に求まるものであるため、w=w(x、y)(0≦x≦X−1,0≦y≦Y−1)と表記することができる。
ステップS606では方程式解導出部205は、ステップS605で求めた重みベクトルwを、端子206を介して重み係数データベース210に登録する。ステップS607では重み係数算出部200は、全ての座標位置(全ての画素)についてステップS602〜S606の処理を行ったか否かを判断する。この判断は、x=X−1且つy=Y−1であるか否かを判断することで行うことができる。この判断の結果、全ての座標位置についてステップS602〜S606の処理を行ったと判断した場合、本処理を終了する。一方、未だステップS602〜S606の処理を行っていない座標位置があると判断した場合、処理はステップS608に進む。
ステップS608では重み係数算出部200は変数x又はyの値を1つインクリメントして更新し、未処理の座標位置を着目画素の座標位置とする。ここで、座標位置の更新は、画像の左上から右下に向かって行うものとする。そしてこの更新した座標位置についてステップS602以降の処理を行う。
次に、フィルタ演算部300が行う処理について、同処理のフローチャートを示す図7を用いて説明する。ステップS701においてフィルタ演算部300は、それぞれの代表フィルタに対するインデックスとして用いる変数iの値を1に初期化する。更にフィルタ演算部300は、フィルタ処理済み画像を格納する配列K=K(x、y)の値を、0≦x≦X−1,0≦y≦Y−1を満たす全てのx、yについて0に初期化する。
ステップS702では重み係数乗算部304は先ず、x方向にX画素、y方向にY画素、のサイズを有する入力画像を、端子301を介して取得する。更に重み係数乗算部304は、重み係数データベース210から、それぞれの画素位置について求めた重みベクトルwから、i番目の要素(重み値)を取得する。例えば、画素位置(x、y)における重みベクトルw(x、y)={w1(x、y)、…、wi(x、y)、…、wN(x、y)}からはwi(x、y)を取得する。
そして重み係数乗算部304は、入力画像中の画素位置(x’、y’)における画素値I(x’、y’)と、重み値wi(x’、y’)と、を用いて、Ji(x’、y’)=I(x’、y’)×wi(x’、y’)を計算する。この計算を、0≦x’≦X−1,0≦y’≦Y−1を満たす全てのx’、y’について行うことで、それぞれの重みベクトルのうちi番目の要素である重み値を、入力画像に対して乗じることで生成される重み係数乗算済み画像Jiを生成することができる。なお、Ji(x’、y’)は、重み係数乗算済み画像Ji中の画素位置(x’、y’)における画素値を表す。
ステップS703では畳み込み演算部305は先ず、代表フィルタデータベース120から代表フィルタfiを読み出す。そして畳み込み演算部305は、Ji(x’,y’)とfi(x-x’,y-y’)との畳み込み演算(Ji(x,y)*fi(x,y)の計算:*は畳み込み演算を表す演算子)を行う。
このとき、代表フィルタfi(x-x’,y-y’)は相対距離のみに依存するので、通常のフィルタの畳み込みと同様にして計算することができる。畳み込みの計算は実空間で行っても良いし、以下の式を用いて周波数空間で計算しても良い。
式(2)において、F[]はフーリエ変換を、F-1[]はフーリエ逆変換を表す。
ステップS704では合成部306は、K(x’、y’)=K(x’、y’)+{Ji(x’,y’)とfi(x-x’,y-y’)との畳み込み演算の結果}を、0≦x’≦X−1,0≦y’≦Y−1を満たす全てのx’、y’について行う。
ステップS705では終了判定部307は、変数iの値がN以上となったか否かを判断する。この判断の結果、変数iの値≧Nの場合には処理はステップS707に進み、変数iの値<Nの場合には処理はステップS706に進む。
ステップS706では終了判定部307は変数iの値を1つインクリメントし、重み係数乗算部304、畳み込み演算部305、合成部306、を動作させる。然るに処理はステップS702に戻る。
ステップS707では終了判定部307は、配列Kをフィルタ処理済み画像として、端子308を介して出力する。
<重要度算出部103が行う処理について>
次に、重要度算出部103によって重要度を求めるための方法について説明する。重要度算出部103は、それぞれのフィルタに対して、フィルタ内の係数値がより大きいほどより大きい重要度をこのフィルタに対して与える。例えば、フィルタ内の各係数の値の自乗和が大きいほどより大きい重要度をこのフィルタに対して与える。もちろん、重要度の大小を左右する要素はこれに限るものではなく、その他にも考え得る。例えば、フィルタのサイズがより大きいほどより大きい重要度をこのフィルタに対して与えても良い。このように、重要度の大小を左右する要素には様々なものが考えられ、1つのみを用いても良いし、複数個を用いても良い。
また、代表フィルタについては、上記のように、画素毎のフィルタのうち、重要度が大きい順に規定個数のフィルタを代表フィルタとして選択しても良いが、他の方法でも選択可能である。例えば、先ず、画像をN個の領域(領域のサイズ、形状は特に限定するものではない)に分割する。そして、j番目(1≦j≦N)の領域内のそれぞれの画素に対応するフィルタのうち最も重要度の大きいフィルタを、j番目の領域に対する代表フィルタとする。これを1≦j≦Nを満たす全てのjについて行うことで、各領域に対する代表フィルタを決定することができ、結果としてN個の代表フィルタを決定することができる。
図8では、画像を縦に3分割、横に3分割することでこの画像を9個の領域に分割しており、領域802については、この領域802内のそれぞれの画素に対応するフィルタのうち最も重要度の大きいフィルタが、代表フィルタ801として選択されている。
このようにすることで、代表フィルタとして選ばれるフィルタの画素位置は領域内で適度に散らばり、また係数の絶対値が大きく、サイズも大きいフィルタを抽出することができる。なお、画素ごとに異なるフィルタ群を、複数の代表フィルタの線形和で良好に近似できるように代表フィルタを選ぶ方法があれば上記の方法に限らない。
以上が重要度算出部103の詳細な説明である。
<重み係数算出部200が行う処理について>
次に、重み係数算出部200が重みベクトルwを求める為に行う処理について、より詳細に説明する。座標位置(x’、y’)に対応するフィルタはF(x-x’,y-y’,x’,y’)と表すことができ、代表フィルタfiはfi(x-x’,y-y’)と表すことができる。
本実施形態では、以下の評価値Vを最小化するように重み値を決定する。
フィルタF(x-x’,y-y’,x’,y’)との差分自乗和を最小化することで、フィルタF(x-x’,y-y’,x’,y’)の特性を反映して重み値を決定することができる。Vを最小化するようにwi(x’,y’)を決める為には、以下のようにVをwi(x’,y’)で偏微分して0と置けば良い。
この式を変形すると以下のようになる。
この式において以下の式(6)のように変数変換を行うと、式(5)は式(1)と同様、Aw=bと表現することができる。
この式を解くことで、重みベクトルwを求めることができる。なお、Aの逆行列が存在しない場合は、Aの擬似逆行列を作用させる。なお、相関ベクトル算出部203は、式(6)の相関ベクトルbを求め、相関行列算出部204は、式(6)の相関行列Aを求めることになる。
代表フィルタfiに対応する重み値の画素ごとの分布の例を図9に示す。図9(a)には1番目の代表フィルタ901に対応する重み値の集合を示しており、図9(b)には2番目の代表フィルタ902に対応する重み値の集合を示している。本実施形態では、同じ代表フィルタに対する重み値の数は画素数と等しいため、画像によって重み値の数が変化する。図9では図示の都合上、重み値の集合の一部を切り出して、50x50=2500画素数分のみ表示している。図9において、白色は重み値が大きいことを表している。図9において、重み値は正の値のみであるが、一般的には負の値も取りうる。
また、上記の説明では、説明を簡単にするために、評価値Vを式(3)に示す如く構成したが、さらに一般的に、画素位置ごとに重み付けした以下の式(7)に示す如く構成しても良い。
a(x’,y’)は適当な重み係数である。例えば画像の周波数の高い領域ほどフィルタを正確に再現する必要があると考えられるので、周波数の高い画像領域では重み係数a(x’,y’)の値を大きくすることが考えられる。そのほか、フィルタF(x-x’,y-y’,x’,y’)を代表フィルタと重み係数の線形和で良好に近似する方法があれば上記の方法に限らない。
<フィルタ演算部300が行う処理について>
次に、フィルタ演算部300が行うフィルタ処理について、より詳細に説明する。配列Kは以下の式を満たす。
本実施形態では、フィルタF(x-x’,y-y’,x’,y’)を以下の式で近似している。
然るに、上記の式から、入力画像に対するフィルタF(x-x’,y-y’,x’,y’)の作用は以下の式で近似して表現することができる。
合成部306は、以下の式(11)を計算することで、上記の式(10)の計算を実現する。
以上の説明は、画素毎に設定されているフィルタを用いた処理であるが、画像領域毎に設定されているフィルタを用いた処理の場合は次のようになる。先ず、画像がR個の画像領域に分割され、且つ同じ領域内ではフィルタは同じであるとする。このとき、r番目の領域に対するフィルタはF(x-x’,y-y’,r)と書くことができる(1≦r≦R)。
そして、上記の説明において、wi(x、y)をwi(r)に置き換えるだけで、上記の処理と同様の処理を行えばよい。このとき、和を取るインデックスが(x’,y’)からkに変わることに注意する。
画像の左上を中心とした回転手ブレによる場所ごとのブレのフィルタを図10に示す。本来は各画素において異なるブレフィルタを持つが、図10では代表する9点のブレフィルタ1002〜1010のみ表示している。図10に示したブレフィルタ1002〜1010を代表フィルタとする。このとき、点1001におけるフィルタを近似することを考える。
本実施形態による効果について、図11を用いて説明する。点1001におけるフィルタを図11(a)に示す。ブレフィルタ1006、1007、1009、1010から、線形補間によって生成した中間フィルタを図11(b)に示す。ブレフィルタ1002〜1010から、本実施形態による処理によって生成された中間フィルタを図11(c)に示す。1101〜1103はそれぞれ、図11(a)〜(c)のフィルタの一部を取り出して数値表示したものである。1101〜1103は図11(a)〜(c)のフィルタにおいて、同じ部分を取り出している。図11より、線形補間による中間フィルタの生成より、本実施形態に係る生成方法の方が、点1001におけるフィルタに近いフィルタを生成可能であることが分かる。
次に、本実施形態で要するメモリ量と、画素ごとに異なるフィルタを画像に作用させる場合の計算量について考える。ここでは最大のフィルタサイズをS2 (pixel)、画像の画素数をM2(pixel)とする。
画素ごとに異なるフィルタを全て保持すると必要なメモリはO((MS)2)となる。Oはオーダを表す。一方で本実施形態では、代表フィルタの保持に必要なメモリはO(NS2)であり、重み値の保持に必要なメモリはO(NM2)となるので、合計でO(N(M2+S2))のメモリが必要になる。
通常、フィルタサイズに比べて画像サイズは大きいので、S2<M2であり、必要なメモリ量はO(NM2)となる。よって代表フィルタ数Nがフィルタの要素数S2に比べて小さいほど、本実施形態においてメモリ削減の効果が現れることになる。例えば図10の例でN=9、S=21とすればメモリ量はほぼ9/21〜1/50に削減される。
次に、フィルタを画像に作用させる場合の演算量について考察する。従来の手法では画素ごとにフィルタを作用させるため、計算量はO((MS)2)となる。本実施形態によれば、代表フィルタの数をNとすると、式(11)において、Ji(x’,y’)の計算にO(N M2)必要となる。また、本実施形態ではフィルタの画像への演算を畳み込みに書き直すことができるので、FFTを用いると式(11)の計算にO(NMlogM)の計算量が必要となる。画像が十分大きければO(NM2)>>O(NMlogM)なので、本実施形態ではフィルタを画像に作用させるために、O(NM2)の計算量が必要となる。よって、代表フィルタ数Nがフィルタの要素数S2に比べて小さいほど、本実施形態において計算量削減の効果が現れることになる。例えば図10の例でN=9、S=21とすれば計算量はほぼ9/21〜1/50に削減される。
以上の説明により、本実施形態によれば、画素(領域)ごとに異なるフィルタ群を代表的なフィルタと重み係数の線形結合で近似することでフィルタを格納するメモリを削減し、画像への演算量を削減することが可能になる。
なお、本実施形態ではフィルタの例として、ブレのフィルタを挙げて説明したが、例えば光学ボケや被写体距離に応じたピントボケなど、如何なる目的のためのフィルタであっても、本実施形態に適用することができる。
[第2の実施形態]
第1の実施形態では、代表フィルタを取得する際にフィルタ群に重要度を割り当て、重要度の高いフィルタを代表フィルタとして取得した。本実施形態では、主成分分析を用いて、代表フィルタをフィルタ群の線形結合で構成する場合について説明する。
本実施形態に係る画像処理装置は、図1に示した構成の代わりに、図12に示した構成を有する点のみが第1の実施形態と異なる。然るに以下では図12に示した構成について説明する。もちろん、本実施形態においても、図12に示した構成は別個の装置に組み込んでも良い。
図12に示す構成は、画像を構成するそれぞれの画素に対して予め設定されたフィルタから、これらのフィルタを近似する主要なフィルタを、代表フィルタとして生成する為の構成に係るものである。
代表フィルタ取得部1200は、相関行列算出部1201、対角化処理部1202、生成部1203、端子101,102,105、を有する。
相関行列算出部1201は、フィルタデータベース110に格納されている画素毎のフィルタを読み出し、フィルタ間の相関行列を求める。対角化処理部1202は、相関行列算出部1201が求めた相関行列の固有ベクトルと固有値とを求める。なお、固有ベクトルは、互いに直交するように取る(相関行列は対称行列なので、直交するように固有ベクトルを取ることが可能である)。生成部1203は先ず、端子102を介して代表フィルタ数Nを取得する。そして生成部1203は、固有値の大きい順に固有ベクトルとフィルタとの線形結合をつくり、代表フィルタを生成する。
次に、代表フィルタ取得部1200が行う処理について、同処理のフローチャートを示す図13を用いて説明する。
ステップS1301では相関行列算出部1201は、フィルタデータベース110に格納されている画素毎のフィルタを、端子101を介して読み出す。そして相関行列算出部1201は、読み出したフィルタ間の相関行列を求める。相関行列は異なるフィルタ同士の相関行列であっても良いし、同じフィルタ同士の相関行列であっても良い。
ステップS1302では対角化処理部1202は、ステップS1301で求めたそれぞれの相関行列について、相関行列を対角化して固有値と固有ベクトルと、を求める。そして対角化処理部1202は、値の大きい固有値から順に、1,2,3,…というようにインデックスを割り当てる。
ステップS1303では生成部1203は、以下で用いる変数iを1に初期化する。そしてステップS1304では生成部1203は、変数iの値のインデックスが割り当てられている固有値に対応する固有ベクトルと、フィルタと、の線形結合を計算し、線形結合結果をi番目の代表フィルタとして求める。本ステップにおける処理の詳細については後述する。
ステップS1305では生成部1203は、求めたi番目の代表フィルタを、端子105を介して代表フィルタデータベース120に登録する。ステップS1307では生成部1203は、変数iの値が代表フィルタ数N以上であるか否かを判断する。この判断の結果、変数iの値≧Nの場合には本処理を終了し、変数iの値<Nの場合には処理はステップS1306に進む。ステップS1306では生成部1203は、変数iの値を1つインクリメントし、ステップS1304以降の処理を行う。
次に、ステップS1304における処理の詳細について説明する。代表フィルタ取得部1200は、主成分分析を用いて代表フィルタを生成している。代表フィルタは各フィルタの線形結合として生成される。i番目の代表フィルタfi(x、y)は以下の式に従って生成するものとする。
ここで、viはi番目の代表フィルタfiに対する重みである。viは2次元配列であるが、vi(x’,y’)を左上から右下に向かって1列に並び替えることにより、ベクトルとして扱うことができる。
相関行列算出部1201は、以下の式を計算することで、相関行列を求める。
CFも4つの添え字を持っているが、viと同様の並び替えを行うことにより行列として扱うことができる。
対角化処理部1202は、相関行列CFを対角化し、重みviを固有ベクトルとして求める。生成部1203は、固有値の大きい固有ベクトルから順に取り出し、式(12)にしたがって代表フィルタを生成する。
第1の実施形態ではフィルタの中から重要度の高いフィルタをそのまま代表フィルタとして取得した。それに対し、第2の実施形態では、主成分分析を用いることで、寄与率の高い代表フィルタを、フィルタ群の線形結合を作ることで構成する。このことにより、第1の実施形態に比べ、少ない代表フィルタ数でより正確にフィルタを近似することが可能になる。
[第3の実施形態]
第1の実施形態では、画素位置(領域)によって異なるフィルタを代表フィルタと重み係数に分解近似する方法について説明した。本実施形態では、画素位置(領域)と画素値に応じてフィルタが異なる場合のフィルタの分解について説明する。以下では、第1の実施形態との差異のみについて説明する。
本実施形態では、フィルタデータベース110には、それぞれの画素位置について、Q個のフィルタを登録しておく。例えば、図14に示す如く、画素値が取りうる範囲(図14では0〜255)を5(=Q)分割し、それぞれの分割領域にα=1,2,3,4,5というようにインデックスを割り当てるとする。この場合、フィルタデータベース110には、それぞれの画素位置について、α=1〜5のそれぞれに対応するフィルタが登録されていることになる。そして、例えば、入力画像中の着目座標位置における画素値が図14に矢印で示されている位置における値である場合、この着目座標位置に対応する5個のフィルタのうちα=2に対応するフィルタが、この座標位置に対するフィルタとして選択されることになる。
第1,2の実施形態と基本的な考え方は同じであり、フィルタを代表フィルタと重み係数の線形結合で近似する。つまりF(x-x’,y-y’,x’,y’,α)を以下の式(14)に従って近似する。
第1,2の実施形態と異なるのは、重みベクトルwがαに依存していることである。あとの動作は第1の実施形態と同様である。重み係数算出部200内の相関ベクトル算出部203は、以下の式(15)を計算することで、相関ベクトルを求める。
あとの動作は第1の実施形態と同様である。
また、フィルタ演算部300内の重み係数乗算部304は、Ji(x’,y’)=wi(x’,y’,α)×I(x’,y’)を計算する。このとき、αは画素値I(x’,y’)から決まる。あとの動作は第1の実施形態と同様である。
代表フィルタ取得部1200は、以下の式(16)により代表フィルタを生成する。
ここで、viは3次元配列であるが、αを固定してvi(x’,y’,α)を左上から右下に向かって1列に並び替えることで、vi(X,α)のように2次元配列になる。次に、vi(X,α)を左上から右下に向かって一列に並び替えることで、ベクトルとして扱うことができる。
相関行列算出部1201は以下の式(17)により相関行列を算出する。
CFは6つの添え字を持っているが、viと同様の並び替えを行うことにより行列として扱うことができる。あとの動作は第2の実施形態と同様である。
以上の説明により、本実施形態によれば、画素位置(領域)及び画素値ごとに異なるフィルタ群を代表的なフィルタと重み係数の線形結合で近似することで、フィルタを格納するメモリを削減し、画像への演算量を削減することが可能になる。
[第4の実施形態]
図1,2,3,12に示した各部は何れもハードウェアとして実装しても良いが、一部若しくは全部をソフトウェア(コンピュータプログラム)として実装しても良い。例えば、フィルタデータベース110、代表フィルタデータベース120、重み係数データベース210、のそれぞれは、ハードディスクドライブ装置に代表される大容量情報記憶装置内に登録しておく。そして、それ以外の各部をコンピュータプログラムとしてコンピュータにインストールしておくと共に、上記の処理で既知の情報としたものや、処理対象となる画像のデータなどもこのコンピュータに格納させておく。また、このコンピュータにはこの大容量情報記憶装置を接続する。
これにより、このコンピュータが有するCPUがこのインストールされたコンピュータプログラムやデータ、大容量情報記憶装置内に登録された各種のデータベース、を用いて処理を実行することで、上記の実施形態で説明した各処理が実現される。
なお、上記の各実施形態は適宜組み合わせても良いし、適宜切り替えて使用するようにしても良い。また、上記の各実施形態の構成は、目的を達成することができるのであれば、どのような変更を加えても良く、上記で示した構成は一例に過ぎない。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (12)

  1. 画像を取得する画像取得手段と、
    前記画像の各画素について少なくとも1つずつ設定された、該画素に対して適用する為のフィルタであって前記画像中の少なくとも2つの画素の間で異なる原フィルタを示す情報を、前記画像の各画素について取得する情報取得手段と、
    前記情報取得手段によって取得された情報が示す複数の原フィルタから、該複数の原フィルタの合計数よりも数が少ない、複数の代表フィルタを決定するフィルタ決定手段と、
    前記画像の各画素について、該画素に対応する原フィルタを近似するための前記複数の代表フィルタの線型結合における、前記複数の代表フィルタそれぞれの重み値を示す重みベクトルを、該画素に対応する原フィルタと前記複数の代表フィルタとに基づいて決定する重み決定手段と、
    前記画像に対して前記複数の代表フィルタそれぞれの畳み込み演算を行う第一の処理と、前記画像の各画素の画素値に該画素に対応する重みベクトルが示す重み値を乗算する第二の処理と、前記画像に前記第一の処理と前記第二の処理とを行うことによって得られた、それぞれが前記複数の代表フィルタのうちの一つに対応する複数の画像を合成する処理と、を行うことによって、前記画像に対するフィルタ処理を実行する実行手段と
    を備えることを特徴とする画像処理装置。
  2. 前記実行手段は、前記画像の各画素の画素値に該画素に対応する重みベクトルが示す第一の重み成分を乗算して得られる処理済み画像に対して、前記第一の重み成分に対応する第一の代表フィルタを畳み込み演算した結果と、前記画像の各画素の画素値に該画素に対応する重みベクトルが示す第二の重み成分を乗算して得られる処理済み画像に対して、前記第二の重み成分に対応する第二の代表フィルタを畳み込み演算した結果と、を合成することで、前記フィルタ処理を実行することを特徴とする請求項1に記載の画像処理装置。
  3. 前記フィルタ決定手段は、前記情報取得手段が取得した情報が示す複数の原フィルタから重要度が大きい順に規定個数の原フィルタを前記複数の代表フィルタとして選択する
    ことを特徴とする請求項1に記載の画像処理装置。
  4. 前記フィルタ決定手段は、それぞれの前記原フィルタに対して、より大きい係数値から成る原フィルタにはより大きい重要度を割り当てることを特徴とする請求項に記載の画像処理装置。
  5. 前記フィルタ決定手段は、それぞれの前記原フィルタに対して、より大きいサイズの原フィルタにはより大きい重要度を割り当てることを特徴とする請求項に記載の画像処理装置。
  6. 更に、
    前記画像を構成するそれぞれの画素について、該画素に対応する原フィルタと前記複数の代表フィルタとの間の相関を第1の相関として取得する手段と、
    前記複数の代表フィルタ同士の相関を第2の相関として取得する手段と
    を備え、
    前記重み決定手段は、前記第1の相関と前記第2の相関とに基づいて前記重みベクトルを決定する
    ことを特徴とする請求項乃至の何れか1項に記載の画像処理装置。
  7. 前記重み決定手段は、
    前記画像を構成するそれぞれの画素について、前記複数の代表フィルタ同士の相関を示す相関行列を乗じることで前記第1の相関を示す相関ベクトルとなるようなベクトルであって、前記複数の代表フィルタに対する重み値を成分とする該ベクトル、を重みベクトルとして決定することを特徴とする請求項に記載の画像処理装置。
  8. 着目画素に対して適用する為の原フィルタは、該着目画素と該着目画素の周辺画素から成る画素群に対して乗じる係数から成るフィルタであることを特徴とする請求項乃至の何れか1項に記載の画像処理装置。
  9. 着目画素に対して適用する為の原フィルタは、該着目画素の画素値に対応するフィルタであることを特徴とする請求項乃至の何れか1項に記載の画像処理装置。
  10. 前記畳み込み演算は、高速フーリエ変換を用いた演算であることを特徴とする請求項1乃至の何れか1項に記載の画像処理装置。
  11. 画像処理装置が行う画像処理方法であって、
    前記画像処理装置の画像取得手段が、画像を取得する画像取得工程と、
    前記画像処理装置の情報取得手段が、前記画像の各画素について少なくとも1つずつ設定された、該画素に対して適用する為の原フィルタであって、前記画像中の少なくとも2つの画素の間で異なる原フィルタを示す情報を、前記画像の各画素について取得する情報取得工程と、
    前記画像処理装置のフィルタ決定手段が、前記情報取得工程で取得された情報が示す複数の原フィルタから、該複数の原フィルタの合計数よりも数が少ない、複数の代表フィルタを決定するフィルタ決定工程と、
    前記画像処理装置の重み決定手段が、前記画像の各画素について、該画素に対応する原フィルタを近似するための前記複数の代表フィルタの線型結合における、前記複数の代表フィルタそれぞれの重み値を示す重みベクトルを、該画素に対応する原フィルタと前記複数の代表フィルタとに基づいて決定する重み決定工程と、
    前記画像処理装置の実行手段が、前記画像に対して前記複数の代表フィルタそれぞれの畳み込み演算を行う第一の処理と、前記画像の各画素の画素値に該画素に対応する重みベクトルが示す重み値を乗算する第二の処理と、前記画像に前記第一の処理と前記第二の処理とを行うことによって得られた、それぞれが前記複数の代表フィルタのうちの一つに対応する複数の画像を合成する処理と、を行うことによって、前記画像に対するフィルタ処理を実行する実行工程と
    を備えることを特徴とする画像処理方法。
  12. コンピュータを、請求項1乃至10の何れか1項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
JP2010283729A 2010-12-20 2010-12-20 画像処理装置、画像処理方法 Active JP5761988B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010283729A JP5761988B2 (ja) 2010-12-20 2010-12-20 画像処理装置、画像処理方法
US13/313,524 US8774545B2 (en) 2010-12-20 2011-12-07 Image processing apparatus and image processing method with weighted vectors for filtering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010283729A JP5761988B2 (ja) 2010-12-20 2010-12-20 画像処理装置、画像処理方法

Publications (3)

Publication Number Publication Date
JP2012134668A JP2012134668A (ja) 2012-07-12
JP2012134668A5 JP2012134668A5 (ja) 2014-02-13
JP5761988B2 true JP5761988B2 (ja) 2015-08-12

Family

ID=46234522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010283729A Active JP5761988B2 (ja) 2010-12-20 2010-12-20 画像処理装置、画像処理方法

Country Status (2)

Country Link
US (1) US8774545B2 (ja)
JP (1) JP5761988B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5766034B2 (ja) 2011-06-08 2015-08-19 キヤノン株式会社 画像処理方法、画像処理装置及びプログラム。
JP5968107B2 (ja) 2011-09-01 2016-08-10 キヤノン株式会社 画像処理方法、画像処理装置およびプログラム
JP6112824B2 (ja) 2012-02-28 2017-04-12 キヤノン株式会社 画像処理方法および装置、プログラム。

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2956213B2 (ja) * 1990-11-30 1999-10-04 ソニー株式会社 画像処理装置
US20020172431A1 (en) * 2001-03-07 2002-11-21 Atkins C. Brian Digital image appearance enhancement and compressibility improvement method and system
EP1289309B1 (en) * 2001-08-31 2010-04-21 STMicroelectronics Srl Noise filter for Bayer pattern image data
US7113185B2 (en) * 2002-11-14 2006-09-26 Microsoft Corporation System and method for automatically learning flexible sprites in video layers
US7181082B2 (en) * 2002-12-18 2007-02-20 Sharp Laboratories Of America, Inc. Blur detection system
JP2005031759A (ja) * 2003-07-07 2005-02-03 Canon Inc 空間フィルタを適用する画像処理装置及び画像処理方法
JP3855079B2 (ja) 2003-08-19 2006-12-06 学校法人早稲田大学 画像改質処理方法およびその装置、プログラム、並びにデータ記録媒体
US8036494B2 (en) * 2004-04-15 2011-10-11 Hewlett-Packard Development Company, L.P. Enhancing image resolution
JP2007067625A (ja) * 2005-08-30 2007-03-15 Matsushita Electric Ind Co Ltd カメラシステムにおけるフィルタ補正回路
WO2009116291A1 (ja) * 2008-03-21 2009-09-24 学校法人東京理科大学 雑音抑圧装置および雑音抑圧方法
US8345130B2 (en) * 2010-01-29 2013-01-01 Eastman Kodak Company Denoising CFA images using weighted pixel differences
US8411980B1 (en) * 2010-11-12 2013-04-02 Adobe Systems Incorporated Removing motion blur from unaligned multiple blurred images

Also Published As

Publication number Publication date
US20120155784A1 (en) 2012-06-21
US8774545B2 (en) 2014-07-08
JP2012134668A (ja) 2012-07-12

Similar Documents

Publication Publication Date Title
US20210350168A1 (en) Image segmentation method and image processing apparatus
Kim et al. Accurate image super-resolution using very deep convolutional networks
US20190364265A1 (en) Free-viewpoint video generating method and free-viewpoint video generating system
US9692939B2 (en) Device, system, and method of blind deblurring and blind super-resolution utilizing internal patch recurrence
Yang et al. Fast image super-resolution based on in-place example regression
US9405960B2 (en) Face hallucination using convolutional neural networks
US9412151B2 (en) Image processing apparatus and image processing method
CN107749987B (zh) 一种基于块运动估计的数字视频稳像方法
JP2015513151A (ja) 入力画像の階層的超解像を実行する方法及び装置
JP6320649B1 (ja) 機械学習装置及び画像認識装置
JP2013518336A (ja) 入力画像から増加される画素解像度の出力画像を生成する方法及びシステム
JP2007000205A (ja) 画像処理装置及び画像処理方法並びに画像処理プログラム
Pickup Machine learning in multi-frame image super-resolution
JP7032913B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム
JP5761988B2 (ja) 画像処理装置、画像処理方法
US10540735B2 (en) Information processing device, information processing method, and recording medium
US20150324953A1 (en) Method and apparatus for performing single-image super-resolution
WO2015047538A1 (en) Psf estimation using multiple smaller images
JP7443030B2 (ja) 学習方法、プログラム、学習装置、および、学習済みウエイトの製造方法
Mandal et al. Employing structural and statistical information to learn dictionary (s) for single image super-resolution in sparse domain
JP7191588B2 (ja) 画像処理方法、画像処理装置、撮像装置、レンズ装置、プログラム、および、記憶媒体
You et al. Single image super-resolution with non-local balanced low-rank matrix restoration
JP6997969B2 (ja) 画像合成システム、画像合成方法、および画像合成プログラム記録媒体
CN106897975B (zh) 一种超立方体粒计算的图像去噪方法
CN113362338B (zh) 铁轨分割方法、装置、计算机设备和铁轨分割处理系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150609

R151 Written notification of patent or utility model registration

Ref document number: 5761988

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151