JP4253335B2 - カーネル関数値を用いた、画像の平均値シフトによるフィルタリングとクラスタリングの方法及び装置 - Google Patents

カーネル関数値を用いた、画像の平均値シフトによるフィルタリングとクラスタリングの方法及び装置 Download PDF

Info

Publication number
JP4253335B2
JP4253335B2 JP2006193100A JP2006193100A JP4253335B2 JP 4253335 B2 JP4253335 B2 JP 4253335B2 JP 2006193100 A JP2006193100 A JP 2006193100A JP 2006193100 A JP2006193100 A JP 2006193100A JP 4253335 B2 JP4253335 B2 JP 4253335B2
Authority
JP
Japan
Prior art keywords
value
pixel
image
kernel function
kernel
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.)
Expired - Fee Related
Application number
JP2006193100A
Other languages
English (en)
Other versions
JP2008021175A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006193100A priority Critical patent/JP4253335B2/ja
Priority to US11/689,857 priority patent/US7792382B2/en
Publication of JP2008021175A publication Critical patent/JP2008021175A/ja
Application granted granted Critical
Publication of JP4253335B2 publication Critical patent/JP4253335B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • G06V10/267Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • G06V10/763Non-hierarchical techniques, e.g. based on statistics of modelling distributions

Description

本発明は、カーネル関数値を用いた、画像の平均値シフトによるフィルタリングとクラスタリング方法及び装置に関する。
画像空間のような対象空間内に散らばるサンプルを均一な特徴量を持つクラスタに分けるクラスタリングの手法として、非特許文献1に開示された平均値シフト(mean shift)が知られている。平均値シフトとは、カーネル内の各サンプルの特徴量の平均で注目サンプルの特徴量を置き換える手法である。非特許文献1では、注目サンプルを中心とするある半径の円、球または楕円の固定カーネルを用いる。平均値シフトは、対象空間内に散らばる複数のサンプルに対して確率密度関数の推定(一般に、これをカーネル密度推定という)を行い、推定された確率密度関数の勾配の極大位置を求める操作によって実現される。
カーネル密度推定については、例えば非特許文献2のpp.13-15 及び pp.75-76で解説されている。カーネル関数の例は、非特許文献2のp.43に示されている。カーネル関数やプロファイルは、カーネル密度推定や平均値シフトにおいて個々のサンプルに対する重み値として働く。
カーネル密度推定によって得られる確率密度関数の極大位置ごとにクラスタを割り当てれば、クラスタリングが実現できる。具体的には、対象空間内の各サンプルを注目サンプルとして平均値シフトを繰り返し、クラスタ内の各サンプルの特徴量を当該クラスタ内の代表的な特徴量に収束させる。収束後、単一の特徴量を持つ部分ごとにクラスタを割り当てる。適当な距離またはそれに準ずるパラメータが定義されている対象空間については、このようなクラスタリングが可能である。対象空間が特に画像空間であり、位置や特徴量(例えば、輝度のベクトル、またはRGBのような色信号値のベクトル)に対してクラスタリングを適用する操作は、領域分割とも呼ばれる。
D. Comaniciu et al., "Mean Shift: A Robust Approach Toward Feature Space Analysis," IEEE Trans. Pattern Analysis and Machine Intelligence, vol.24, no.5, May 2002. B. W. Silverman, "Density Estimation for Statistics and Data Analysis," Chapman & HALL/CRC, ISBN 0-412-24620-1, 1986.
平均値シフトでは、注目サンプルを特徴量の平均位置に移動させる操作を行う。対象空間内のサンプルの分布が偏っていなければ、このような移動は起こらない。対象空間が2次元の位置(x座標及びy座標)と1次元の特徴量(輝度)で定義される3次元の画像空間である場合、各画素を画像空間内のサンプルと考えれば、平均値シフトによるクラスタリングが可能である。このとき、例えば画像中に複数の固定カーネルがそれぞれ収まるような複数の部分領域により構成される一つの領域が存在すると、固定カーネルを用いた平均値シフトでは部分領域毎に収束点が生成される。その結果、単一領域に対して複数のクラスタが割り当てられてしまう(過剰分割と呼ぶ)。これは一つと見なせる領域に一つのクラスタを割り当てる、というクラスタリングの目的に反する。カーネルの半径を増やせば、単一領域に複数のクラスタが割り当てられることは起こりにくくなる。
対象空間内に複数のサンプル集合が存在し、クラスタリングによって各サンプル集合に対してクラスタを割り当てることを期待することを考える。このとき、カーネルの半径が小さければ、平均値シフトにより個々のサンプル集合内のサンプルはそれぞれの集合内の一箇所に収束し、各集合に対してそれぞれクラスタが割り当てられる。しかし、カーネルの半径が大きすぎると、平均値シフトにより全てのサンプルが一箇所に収束してしまう。この結果、本来分かれるべき複数のクラスタが一つに統合されてしまう(過剰統合と呼ぶ)。
さらに具体的に、例えば画像検索のために正しい輪郭のパターンを準備し、一般化ハフ変換(例えば、D. H. Ballard, Generalizing the Hough Transform to Detect Arbitrary Shapes, Pattern Recognition 1981, vol.13, no.2, pp.111-122 参照)により領域境界がエッジパターンと一致するものを探す場合を考える。このとき、領域境界が失われれば(過剰統合)、対象物の検出に失敗し、不要な領域境界(過剰分割)があれば、対象物でないものが誤って検出されてしまうという問題がある。
本発明の主な目的は、過剰分割や過剰統合の問題を回避するような、カーネル形状の決定を可能とすることにある。また、このようにして決定されるカーネル形状に従って平均値シフトフィルタリング、平均値シフトクラスタリング等の画像処理を可能とすることにある。
本発明の第1の態様によると、任意のN次元ベクトル(Nは自然数)の第1画素と、γ次元の位置及びη次元の特徴量を持つN次元空間(γは2以上の自然数,ηは1以上の自然数)内の複数の第2画素とを結ぶパスを設定するステップと;前記パス上で前記特徴量を積分して積分値を得るステップと;前記積分値を予め設定されたカーネル関数の変数値として前記第1画素に対応するカーネル関数値を算出するステップと;前記カーネル関数値と前記第2画素の特徴量との積和を前記カーネル関数値の総和で割ることにより平均値シフトベクトルを算出するステップと;前記第1画素を前記平均値シフトベクトルに従って移動させるステップと;前記第1画素の特徴量を移動後の第1画素の特徴量で置き換えるステップと;を具備する画像のフィルタリング方法を提供する。
本発明の第2の態様によると、任意のN次元ベクトル(Nは自然数)の第1画素と、γ次元の位置及びη次元の特徴量を持つN次元空間(γは2以上の自然数,ηは1以上の自然数)内の複数の第2画素とを結ぶパスを設定するステップと;前記パス上で前記特徴量を積分して積分値を得るステップと;前記積分値を予め設定されたカーネル関数の変数値として前記第1画素に対応するカーネル関数値を算出するステップと;前記カーネル関数値と前記第2画素の特徴量との積和を前記カーネル関数値の総和で割ることにより平均値シフトベクトルを算出するステップと;前記第1画素を前記平均値シフトベクトルに従って移動させるステップと;前記第1画素の特徴量を移動後の第1画素の特徴量で置き換えるステップと;前記移動後の第1画素のうち特徴量の類似度が予め定められた閾値以上の複数の画素に対して同一のクラスタを割り当てるステップと;を具備する画像のクラスタリング方法を提供する。
本発明の第3の態様によると、2次元の位置と1次元の特徴量を持つ複数の画素からなる画像を取得するステップと;前記画像に対して被写体領域及び背景領域をそれぞれ概略的に表す初期第1領域及び初期第2領域を設定するステップと;任意のN次元ベクトル(Nは自然数)の第1画素と、前記画像中の複数の第2画素とを結ぶパスを設定するステップと;前記パス上で前記特徴量を積分して積分値を得るステップと;前記積分値を予め設定されたカーネル関数の変数値として前記第1画素に対応するカーネル関数値を算出するステップと;前記カーネル関数値のうち前記初期第1領域に属する各画素における第1カーネル関数値を加算して第1確率密度関数値を得るステップと;前記カーネル関数値のうち前記初期第2領域に属する各画素における第2カーネル関数値を加算して第2確率密度関数値を得るステップと;前記第1確率密度関数値及び第2確率密度関数値を比較して前記画像中の少なくとも一部の画素に設定された注目画素が前記被写体領域及び背景領域のいずれに属するかを表す領域情報を得るステップと;前記領域情報を出力するステップと;を具備する画像の領域フィッティング方法を提供する。
本発明の第4の態様によると、任意のN次元ベクトル(Nは自然数)の第1画素と、γ次元の位置及びη次元の特徴量を持つN次元空間(γは2以上の自然数,ηは1以上の自然数)内の複数の第2画素とを結ぶパスを設定する設定部と;前記パス上で前記特徴量を積分して積分値を得る積分部と;前記積分値を予め設定されたカーネル関数の変数値として前記第1画素に対応するカーネル関数値を算出する第1算出部と;前記第2サンプルの特徴量を抽出する抽出部と;前記特徴量を記憶する記憶部と;前記カーネル関数値と前記第2サンプルの特徴量との積和を前記カーネル関数値の総和で割ることにより平均値シフトベクトルを算出する第2算出部と;前記第1サンプルを前記平均値シフトベクトルに従って移動させ、前記第1サンプルの特徴量を移動後の第1サンプルの特徴量で置き換える置き換え部と;を具備する画像のための平均値シフトフィルタを提供する。
本発明の第5の態様によると、2次元の位置と1次元の特徴量を持つ複数の画素からなる画像を取得する取得部と;前記画像に対して被写体領域及び背景領域をそれぞれ概略的に表す初期第1領域及び初期第2領域を設定する第1設定部と;任意のN次元ベクトル(Nは自然数)の第1画素と、前記画像中の複数の第2画素とを結ぶパスを設定する第2設定部と;前記パス上で前記特徴量を積分して積分値を得る積分部と;前記積分値を予め設定されたカーネル関数の変数値として前記第1画素に対応するカーネル関数値を算出する第1算出部と;前記カーネル関数値のうち前記画像の被写体領域を概略的に表す初期第1領域に属する各画素における第1カーネル関数値を加算して第1確率密度関数値を得る第1加算部と;前記カーネル関数値のうち前記画像の背景領域を概略的に表す初期第2領域に属する各画素における第2カーネル関数値を加算して第2確率密度関数値を得る第2加算部と;前記第1確率密度関数値及び第2確率密度関数値を比較して前記画像中の少なくとも一部の画素に設定された注目画素が前記被写体領域及び背景領域のいずれに属するかを表す領域情報を得る比較部と;前記領域情報を出力する出力部と;を具備する領域フィッティング装置を提供する。
本発明に従ってカーネル関数値を算出すると、空間内に散らばるサンプルの分布やカーネルの位置に適したカーネル形状を設定することができるため、平均値シフトを行った場合、一つと見なせる領域に単一の収束点が形成されることによって、過剰分割や過剰統合の問題を避けることができる。
以下、図面を参照して本発明の実施形態について説明する。以下の説明では、まずカーネル関数値の算出(カーネル形状の決定)について述べ、次いでカーネル関数値算出の応用である平均値シフト(平均値シフトフィルタ)、カーネル密度推定(確率密度関数の推定)及び領域フィッティングについて述べることとする。また、以下に説明する処理はコンピュータを用いてソフトウェアにより行うことができる。すなわち、以下の処理をコンピュータに行わせるためのプログラムを提供することができる。
<カーネル関数値算出>
図1を参照すると、本発明の一実施形態に従うカーネル関数値算出装置は、データメモリ10、パス設定部11、積分部12及びカーネル関数算出部13を有する。このカーネル関数値算出装置は、γ次元の位置とη次元の特徴量を持つN次元空間(γ、η、Nは自然数)内のサンプル集合中の複数の候補サンプルに対応するカーネル関数値を算出する。従来ではカーネルに円、球または楕円のような固定された形状を用いていたのに対し、本実施形態ではカーネルの形状を予め定められた基準に従い、空間内に散らばるサンプルに合わせて適応的に決める。ここで、カーネルの形状を決めることは、本実施形態においてN次元空間内の個々の候補サンプルについてカーネル関数値(候補サンプルに与える重み値)を求めることに相当する。
次に、図2を用いてカーネル関数値算出の処理手順を説明する。図2のフローチャートは、N次元空間内の任意の注目サンプル(空間内に実在するサンプルでなくても構わない)と複数の候補サンプル(これは空間内に存在するサンプルである)を入力として与えたときに、カーネル関数値を算出するアルゴリズムの流れを示している。N次元空間は、これに限られないが、例えば3次元の画像空間である。画像空間の場合、サンプルとは画素である。画像空間は、2次元の位置x, yと1次元の特徴量(輝度I(x, y))を持つ。
まず、予めカーネル関数k(・)を設定する(ステップS101)。カーネル関数の微分であるプロファイルも、ここでいうカーネル関数の一種である。カーネル関数は、予め固定されていてもよいし、選択可能としてもよい。例えば、コンピュータプログラムにおいて、ベクトルを入力するとカーネル関数値を返すサブルーチンへのポインタを入力とすれば、カーネル関数値の算出時にカーネル関数を選択することが容易である。カーネル関数は、具体的には正規分布関数、あるいは、変数値が予め定められた値を超える場合は0を出力し、そうでない場合は予め定められた定数を出力するような関数が用いられる。
ステップS101によりカーネル関数k(・)を設定した後、N次元空間内のサンプル集合を入力し、このサンプル集合の各サンプル(サンプルデータ)をデータメモリ10に保存する(ステップS102)。
次に、それぞれがN次元ベクトルからなる1個の注目サンプルXと1個の候補サンプルX’を入力する(S103)。候補サンプルX’は、データメモリ10に保存されたサンプル集合中の一つのサンプルである。このためステップS103では、データメモリ10内の候補サンプルX’の保存位置を示す候補サンプルアドレスを入力してもよいし、候補サンプルのベクトルを入力してもよい。注目サンプルXがデータメモリ10に保存されたサンプル集合中の一つのサンプルである場合、ステップS103ではデータメモリ10内の注目サンプルXの保存位置を示す注目サンプルアドレスを入力してもよいし、注目サンプルのベクトルを入力してもよい。
ステップS103により入力された注目サンプルX及び候補サンプルX’は、パス設定部11に与えられる。パス設定部11は、注目サンプルXと候補サンプルX’とを結ぶパスを設定する(S104)。パスの設定は、必要に応じデータメモリ10内のサンプルデータを参照しながら行う。
ステップS104により設定されたパスは、積分部12に渡される。積分部12は、設定されたパスを積分区間として、必要に応じてデータメモリ10内のサンプルデータを参照しつつサンプルの特徴量(例えば、サンプルデータが画像の場合は輝度)について定積分を行い、積分値r(X, X’)を算出する(ステップS105)。積分値r(X, X’)は、例えば次式で与えられる。
Figure 0004253335
ここで、R(I(v))はスキャン中のサンプルの特徴量を注目サンプルXに対応するカーネルに含めるかどうかを判定するための関数である。R(I(v))の具体的な形については、後述する平均値シフトに関する実施形態で詳しく述べる。なお、XおよびX’はベクトルであり、数式(1)の積分記号は線積分を表す。
最後に、カーネル関数値算出部13により積分値r(X, X’)をカーネル関数k(・)の変数値として用いて、注目サンプルXに対応するカーネルのカーネル関数値k(r(X, X’)/h2)を算出し(ステップS106)、このカーネル関数値k(r(X, X’)/h2)を出力する(ステップS107)。ここで、hは平均値シフトでいう半径に相当し、予め定められた値とされる。以上の処理をN次元空間内のサンプル集合中の各注目サンプルについて行ってそれぞれカーネル関数値を算出することにより、カーネル形状を決定することができる。カーネルの形状がどのように設定されるかについては、後に詳しく説明する。
なお、画像空間内の位置の表現方法はx,yの2次元に限定されず、例えばx,yと時刻tを用いた3次元(時空間画像)や、x,yと奥行きzを用いた3次元、あるいはx,y,z,tを用いた4次元でもよい。特徴量は1次元の輝度に限定されず、例えばカラー画像の色やX線画像におけるX線検出量でもよい。カラー画像の色を表現する色空間は任意だが、例えばRGB空間、L*a*b*空間、L*u*v*空間、あるいはCMYK空間を用いることができる。また、特徴量としてテクスチャを表す特徴量(例えば点毎に求めた自己相関係数、ウェーブレット係数、あるいはGaborウェーブレット係数)を用いてもよい。なお、特に断らない限り、ηが2以上の場合、本実施例中の特徴量I(x,y)をベクトルとして扱い同じ式を用いる。この場合、R(I(v))はη次元の値に対応する1次元の値を出力する関数として扱う。
図1のカーネル関数値算出装置及び図2に示す手順は、後述する平均値シフトやカーネル密度推定に適用できる。図1のカーネル関数値算出装置を実現するハードウェアや図2のフローチャートに従ったプログラムを設計しておけば、これらを平均値シフトやカーネル密度推定に流用することができるため、開発コストを節約できる。
<平均値シフトを利用した領域分割>
次に、上述したカーネル関数値算出の一つの応用例として、平均値シフトを利用して画像の領域分割を行う実施形態について説明する。まず、カーネルの形状を固定した場合の問題点について述べ、次に本発明を領域分割に適用する際のカーネルの形状の決定方法について述べる。領域分割の手順についてはその後で述べる。
前述したように、画像は2次元の位置x, yと1次元の特徴量(輝度I(x, y))を持つ3次元空間内のサンプル集合とみなせる。図3に示すような、ある色を持つサンプル集合の領域R1が他の色を持つ背景R2中に存在するような画像を考える。図3の画像に対して、非特許文献1に従って図4に示すような円形のカーネルKを用いて平均値シフトを行うと、カーネルKの内部の点は図5の矢印で示す平均値シフトベクトルに従って移動する。すなわち、図5の左側の部分領域R11内の点はR11の中心方向に移動し、右側の部分領域R12内の点はR12の中心方向に移動する。この結果、平均値シフトを繰り返すと図6に示すように部分領域R11,R12毎に収束点P11,P12が形成される。すなわち、単一領域R1に対して複数の収束点P11,P12が形成されてしまう。従って、平均値シフトを用いてクラスタリングを行うと、単一の領域R1に対して複数のクラスタが割り当てられてしまう。これが前述の過剰分割であり、画像に対するクラスタリングである領域分割にとって望ましくない現象である。クラスタリングの目的は、単一領域に一つのクラスタを割り当てることであるからである。図4に示したカーネルKの半径rを大きくすれば、このような過剰分割は起こりにくくなる。
ここで、例えば図7のように同じ色を持つサンプル集合の複数の領域R1A,R1Bが存在する画像を考える。この場合、クラスタリングによって各領域R1A,R1Bが別々のクラスタに分けられることが期待される。カーネルKの半径rが小さければ、平均値シフトにより領域R1Aの各サンプルと領域R1B内の各サンプルはそれぞれ別の点に収束する結果、領域R1Aと領域R1Bに別々のクラスタが割り当てられる。しかし、図8のようにカーネルKの半径rが大きすぎると、図9の矢印で示すように平均値シフトベクトルが形成されるため、全てのサンプルが一点に収束する。その結果、本来分かれるべき2つのクラスタが一つに統合されてしまう。これが前述した過剰統合である。
このように平均値シフトの結果は、カーネルの半径rにより大きく左右される。半径rをチューリングすればよいが、それを人手で行うには相応の経験が必要とされ、チューニングに手間がかかる。また、最適な半径rは画像内の位置によって異なる。さらに、サンプルの分布が例えば空間内でのサンプルの分布が円や球から大きく外れて場合などにおいては、半径rをどのように設定しても過剰分割と過剰統合を同時に抑制できないことがある。複数の半径rで試してみて最適な半径を選択したり、カーネルの形状を円や球以外の形状(例えば、楕円あるいは超楕円)としたりすることも考えられる。しかし、サンプルが予め想定した形状のカーネルから大きく外れて分布している場合に過剰分割と過剰統合の少なくとも一方が起こるという問題は解決できない。
本発明の一実施形態では、カーネルの形状を円形のような固定された特定の形状に限定せず、カーネルの位置毎に位置に適した形状を設定することによって、例えば図10に示すようにカーネルKの形状を領域R1の全体にわたって広げる。このとき平均値シフトベクトルは、図11に示すように領域R1内の全ての点がカーネルKの中心を向く。このため図12のように単一の領域R1内に一つのみの収束点Pが形成され、収束点に割り当てられるラベルはただ一つとなるので、上述した過剰分割や過剰統合の問題は避けられる。
以下に、本発明の一実施形態に従って図10のようにカーネルKの形状を領域R1の全体にわたって広げる方法の具体例を示す。図13に示すように、各注目サンプルXについて、注目サンプルXの特徴量(例えば輝度)と同一の特徴量を持つ候補サンプルX’の領域(同一特徴量領域という)を探索する。図13の矢印は、注目サンプルXの周囲複数の方向(図13では、上、下、左、右、左上、右上、左下、右下の8方向)における同一特徴量領域を示し、矢印の長さrは各方向における同一特徴量領域の半径を示している。次に、図14のように図13の同一特徴量領域の先端を結ぶ線分(点線矢印で示す)の内部をカーネルと定める。カーネルがガウシアン関数のように無限の長さを持つ場合には、図14の点線矢印の内部(カーネル内部)でカーネル関数値が大きくなるようにする。
関数の値がxが1未満であれば1、それ以外であれば0となる一様なカーネルには名前がつけられている。k(x)が一様なカーネルのとき、k(x)はUniform kernelと呼ばれる。また、カーネル関数の微分であるg(x)が一様なカーネルのとき、g(x)はEpanechnikovプロファイルと呼ばれる(非特許文献1参照)。ここでは、平均値シフトの算出に用いるカーネル関数の微分であるg(x)がEpanechnikovカーネルの場合を考える。このとき、候補サンプルX’が注目サンプルXの特徴量と同一の特徴量を持つかどうかを判断する方法として、例えば以下の方法を用いることができる。候補サンプルの位置をX=(x, y)、注目サンプルXの特徴量をI(X)、候補サンプルX’の特徴量をI(X’)としたときに、注目サンプルXから候補サンプルX’までのパスvを考える。式(1)に示した積分値r(X, X’)が次式(2)を満たす範囲内の候補サンプルは、カーネルKの内部のサンプルであるとする。
Figure 0004253335
ここで、hは平均値シフトでいう半径に相当し、予め定められた値とされる。
すなわち、式(2)は積分値r(X, X’)をh2で割った値が閾値(ここでは1)に満たない候補サンプルはカーネルKの内部のサンプルであることを表している。従って、式(1)の積分値をカーネル関数の変数値として用いることにより、カーネルの形状を決定することができる。
式(1)の積分値r(X, X’)は、例えば次式(3)に示すように、注目サンプルXの特徴量I(X)とパスv上の各サンプルの特徴量I(v)との差分(ここでは絶対値差)の積分を行うことで求められる。
Figure 0004253335
図15のように注目サンプルXを積分開始点、候補サンプルX’を積分終了点とし、XからX’までの間のパスv上に、積分に利用されるサンプルが等間隔で離散的に存在していれば、式(3)は次式(4)のように変形される。
Figure 0004253335
ただし、Xi(i=1,2,…,n)はパスv上のサンプルを表す。
積分に利用されるサンプルが等間隔でない場合は、式(3)においてI(X)とI(v)の差をサンプル間の距離で割ってもよいし、またI(X)とI(v)の差をパスvの長さで正規化してもよい。
積分値r(X, X’)としては、例えば次式(5)に示すような、パスv上のサンプルの特徴量I(v)の変化量を用いることもできる。
Figure 0004253335
図15のようにXとX’間のパスv上の積分に利用されるサンプルが等間隔で離散的に存在していれば、式(5)は次式のように変形される。
Figure 0004253335
積分に利用されるサンプルが等間隔でない場合は、パスv上のサンプルの特徴量I(v)の変化量を間隔で割った式を用いてもよく、また特徴量I(v)の変化量をパスvの長さで正規化してもよい。
上述した方法でカーネルの形状を決めると、カーネルは、注目サンプルの特徴量と近い特徴量を持ち、かつ注目サンプルと連結されている領域(パス中に別の領域とみなすべき部分が含まれていない領域)に一致しやすくなる。ここで、単にスキャンを行って式(1)(2)を満たす領域をカーネル内部とする方法ではなく、上述のような方法を用いることの利点は、ノイズに対する耐性を高くできるためである。
カーネル関数がガウシアンのように無限の長さを持つ場合は、r(X, X’)/h2をカーネル関数値とすることで、Epanechnikovプロファイル(‖x‖が一定値未満であればk(‖x‖)=1、そうでなければk(‖x‖)=0とするプロファイル)を用いた先の処理と同じように、注目サンプルXの特徴量と同一の特徴量を持つと判断できる範囲内でのカーネル関数値を増やすことができる。
本発明の一実施形態に従うカーネル関数を用いた領域分割は、後述する平均値シフトフィルタの最後にクラスタの割り当てを行うことで実現できる。詳細は平均値シフトフィルタの説明で述べるが、その概要は次のとおりである。
ステップ1:画像上のすべての画素について、後述する平均値シフトフィルタを適用して(γ+η)次元空間上で画素の位置を移動させる。このとき、各画素の移動元と移動先の対応関係がわかるように、移動元を記録しておく。
ステップ2:ラベル値を保持するメモリを確保し、すべての移動後の画素に対して不明なラベル値を割り当てる。
ステップ3:不明なラベル値を持つ移動後の画素を1つ選び、その画素に新しいラベル値を割り当てる。
ステップ4:ステップ3で選んだ画素に対して(γ+η)次元空間上で近い位置にあり、かつ不明なラベル値を持つ画素をすべて探し、それらの画素にstep 3で選んだ画素と同じラベル値を割り当てる。ここで、ステップ3で選んだ画素と近い画素を探すには、例えば、ステップ3で選んだ画素との(γ+η)次元空間上でのユークリッド距離がしきい値よりも小さい画素を探せばよい。
ステップ5:不明なラベル値を持つ画素がなくなるまで、ステップ3〜ステップ4を繰り返す。
ステップ6:対応する移動元の各画素に対しラベル値を割り当てたラベル画像を出力する。ステップ4でユークリッド距離によるしきい値判定を行うのは、実画像ではノイズの影響により、同じ点への収束が期待される画素であっても、収束点が完全に一致しないためである。この判定に用いる距離はユークリッド距離(L2距離)でなくてもよい。例えば、L1距離やLn距離が予め定めた閾値以下の点を同一の点と見なすようにしても良い。
以下、上述した領域分割の効果について説明する。図16Aはオリジナル画像であり、自動車が道路上を走っている様子を後方から撮影して得られた画像である。図16Bは、図16Aの画像に対して従来の平均値シフトによる領域分割を行った結果を示し、図16Cは本実施形態に基づく領域分割を行った結果を示している。図16Bでは、161で示されるように道路上の白線の一部が消滅し、また162で示されるように道路表面が不必要に分割されている。161で示す現象は過剰統合であり、162で示す現象は過剰分割である。これに対して本実施形態の領域分割によると、図16Cの163で示すように白線が消えることはなく過剰統合が効果的に抑制されており、また164で示すように過剰分割も抑制されている。
<平均値シフトフィルタ>
次に、以上述べたカーネル関数値算出手順を利用する平均値シフトフィルタについて説明する。図17に示されるように、本発明の一実施形態に従う平均値シフトフィルタは、図1に示したカーネル関数値算出装置と同様の要素である、データメモリ(ここでは画像メモリ)10、パス設定部11、積分部12及びカーネル関数値算出部13に加えて、注目アドレス記憶部21、候補アドレス記憶部22、注目アドレス更新部23、候補アドレス更新部24、特徴量抽出部25、積和演算部26、積和中間値記憶部27、特徴量画像更新部28、特徴量画像メモリ29及びシーケンス制御部30を有する。平均値シフトフィルタはN次元空間が画像空間以外の場合にも適用が可能であるが、ここでは画像空間の場合を例にとり説明する。
以下、図18を用いて3次元(2次元の位置及び1次元の輝度)の画像空間内で平均値シフトフィルタの処理を行う手順について説明する。図17の処理は、シーケンス制御部30により制御される。
まず、処理対象の入力画像データの各画素(サンプル)の輝度値を入力して画像メモリ10に保存する(ステップS201)。入力画像データの画素のうち、次に処理すべき注目画素(注目サンプル)を設定する(ステップS202)。具体的には、予め定めた画素の処理順序(例えば、ラスタスキャン順)の先頭の画素を注目画素とし、注目画素を示すアドレスを設定し、注目アドレス記憶部21に記憶させる。
次に、注目画素のためのカーネルを考えた場合の各候補画素に与える重み、すなわちカーネル関数値g(r(X, X’)/h2)をステップS203〜S06により求める。まず、注目画素に対して、重みを求めるべき候補画素のアドレスを設定し(ステップS203)、候補アドレス記憶部22に記憶する。候補アドレス記憶部22に記憶された候補画素のアドレスは、シーケンス制御部30による制御のもとで候補アドレス更新部24によって更新される。
ステップS204〜S206の処理は、図2中のステップS104〜S106と同様である。すなわち、パス設定部11によって注目画素と候補画素とを結ぶパスを設定する(S204)。パスの設定は、必要に応じ画像メモリ10内の画像データを参照しながら行う。ステップS204により設定されたパスは、積分部12に渡される。積分部12は、設定されたパスを積分区間として、必要に応じて画像メモリ10内の画像データを参照しつつ輝度について定積分を行い、積分値r(X, X’)を算出する(ステップS205)。次に、カーネル関数値算出部13により積分値r(X, X’)をカーネル関数の変数値として用いて、注目画素に対応するカーネルのカーネル関数値g(r(X, X’)/h2)を算出する(ステップS206)。
次に、カーネル関数値g(r(X, X’)/h2)を用いてカーネル内で重み付き平均を行って平均値シフトベクトルを求め(ステップS207)、さらに平均値シフトベクトルに従って注目画素の位置を移動させる(ステップS208)。言い換えれば、ステップS208では注目画素の位置及び特徴量を重み付き平均に変更する。これは特徴量画像更新部28が特徴量画像メモリ29の内容を更新することで行う。このとき特徴量抽出部25により候補画素の特徴量(例えば、2次元の位置と1次元の輝度からなる3次元のベクトル)を抽出し、積和演算部26が積和中間値記憶部27の内容を参照しつつ各注目画素に対応するカーネル関数値g(r(X, X’)/h2)と特徴量との積和を求め、この積和を全注目画素に対応するカーネル関数値の総和で割ることにより、平均値シフトベクトルが求まる。
ステップS203〜S208の処理をシーケンス制御部30によりステップS208で所定回数繰り返されたと判断されるまで繰り返し行う。所定回数繰り返された時点でステップS208により最終的に得られる移動後の注目画素を保存する(S210)。すなわち、移動後の注目画素のアドレスを注目アドレス記憶部21において記憶する。
ステップS211において全ての画素が注目画素として処理されるまで、注目画素を次の画素にずらしてステップS202〜S210の処理を繰り返す。注目画素のアドレスは注目アドレス記憶部21に記憶されており、注目アドレス更新部23により更新される。
注目画素毎に特徴量をステップS201〜S211で注目画素を移動した後の特徴量、すなわち重み付き平均値で置き換え(S212)、得られた特徴量画像を特徴量画像メモリ29から出力する(S213)。ステップS212の処理は、積和演算部26により求められた平均値シフトベクトルに従って特徴量画像更新部28が特徴量画像メモリ29の内容を更新することで行う。
なお、ステップS209で繰り返しを行わず、ステップS201〜S211の処理全体を繰り返し実行してもよい。ステップS209で繰り返しを行い、その後ステップS202〜S211の処理全体を繰り返し実行してもよい。この例では各注目画素が移動する前の位置や画素値を利用して注目画素の移動先を求めているが、注目画素の移動後の位置や画素値を利用してもよい。
図18のような手順により、各注目画素は3次元空間内の幾つかの点に収束する。移動元の各点の位置における輝度値を収束後の輝度値で置き換えることで、ノイズ除去とエッジ鮮鋭を同時に行う平均値シフトフィルタを実現することができる。また、先に述べたように、各収束点にラベルを割り当てれば、画像の領域分割(対象が画像でない場合はクラスタリング)ができる。

注目画素に対応するカーネルを求める方法は種々考えられる。例えば、短い処理時間で良好なカーネルを求めたい場合は、次の方法を用いることができる。
まず、注目画素を開始点として、周囲4方向(90°間隔の方向)または周囲8方向(45°間隔の方向)に直線を引く。これらの各直線上で画素を終了点としたときに式(2)が満たされなくなる最初の位置を求めると、カーネルの境界となるべき点が4個あるいは8個得られる。これらカーネルの境界となるべき点を線分で結び、カーネルを形成する。より処理時間を短くしたければ、各開始点と終了点を結んだ線分上の画素のみをカーネルとしてもよい。処理時間よりも精度を重視したければ、注目画素を開始点として引く直線の本数を増やしてもよい。逆に、直線による近似を行いたくない場合には、例えば次の手順を用いる。
ステップA1:注目画素を未処理画素セット(画素位置の配列を記録できるバッファ)に所属させる。処理済画素セット(画素位置の配列を記録できるバッファ)を空に初期化する。画素毎に積分値を記録できる積分値バッファを準備する。
ステップA2:未処理画素セットから一つの画素を取り出し(当該画素を読み込んで、未処理画素セットから削除)、当該画素(処理中画素という)を処理済画素セットに追加する。
ステップA3:処理中画素の4近傍あるいは8近傍の画素(近傍画素という)のそれぞれに対し、処理済画素セットに記録された画素における積分値と近傍画素における被積分関数値との複数の加算値を求める。当該加算値の最小値を各近傍画素における積分値として積分値バッファに記録する。もし、積分値バッファに既に記録された値があれば、上書きをする。被積分関数値は、例えば次式(7)または(8)により求められる。
Figure 0004253335
Figure 0004253335
ステップA4:4つまたは8つの近傍画素を用いて次の操作をする。算出された積分値(これは近傍画素におけるr(X, X’)/h2で、単調増加である)がg(r(X, X’)/h2)を0とする値(すなわち、カーネルの半径を超えた値)でなく、かつ処理済画素セットに含まれていなければ、近傍画素を未処理画素セットに追加する。そうでない場合は、近傍画素に対しては何もしない。
ステップA5:未処理画素セットが空であれば終了する。そうでなければステップA2に戻る。
画像空間内で位置の次元γ=2の場合の例として、注目画素を開始点として周囲4方向あるいは周囲8方向に対して操作を行う例を示した。この操作は2次元に限らず、3次元以上(γが3以上)の場合に拡張することもできる。例えば、3次元空間では、注目画素を中心として90°間隔の方向に対し操作する場合は周囲6方向への操作に、45°間隔の方向に対し操作する場合は周囲26方向への操作になる。
画像空間は、一般的なレンズとカメラを用いた撮像装置により得られる画像空間のような、格子状にサンプリングされた均一な空間である必要はない。例えば、画素が6角形であってもかまわないし、歪みのあるレンズ(例えば、全方位センサ)を用いた撮像装置により得られる画像であってもよい。その場合には、4近傍や8近傍といった「近傍」の定義を画素の形状に合わせて変更する必要がある。例えば、注目画素に隣接する全ての画素を「近傍」とする。
ところで、上記実施形態では任意形状のカーネルを平均値シフトに用いた例について述べたが、任意形状のカーネルの応用例はこれに限られない。背景技術などでも説明したように、平均値シフトとはカーネル密度推定で得られる密度関数の勾配の極大値を求めるための演算の一手法にすぎない。
説明の便宜上、平均値シフトを先に説明したが、上記のようなカーネル形状の決定方法はカーネル密度推定にも適用できる。例えば、先のクラスタリングの例では、平均値シフトは勾配しか評価しないため、平均値シフトでは生成されたクラスタが真のクラスタであるか、ノイズにより生成された偽のクラスタであるかはわからない。しかし、カーネル密度推定によって収束位置における確率密度関数値を求めれば、真のクラスタであれば確率密度関数値は大きく、偽のクラスタであれば確率密度関数値は小さくなる。従って、例えば予め定められた閾値と確率密度関数値とを比較することで、クラスタリングを行うことができる。具体的にカーネル密度推定を行う方法については、後述する。
以上の説明では、γ次元の位置及びη次元の特徴量を持つN次元空間の例として、主に2次元の位置と1次元の特徴量(輝度)を有する画像空間を例に述べた。これらの次元数γ及びηが別の値でよいことは既に述べた通りであり、またN次元空間は特に画像空間である必要もない。距離あるいはそれに準ずる量(例えば、半距離)が定義され、空間上の点がN次元(Nは2以上)のベクトルで表される空間(N次元空間)があるとき、そのN次元空間の次元を位置と特徴量を表す2つに分ける。例えば、先の説明はN=3、γ=2(位置が2次元)、η=1(特徴量が輝度である1次元)の場合に相当する。このN次元空間の特徴量をI(v)とし、式(1)に示したようにパスvを積分区間としてXからX’までの積分を行い、得られた積分値をカーネル関数の変数値として代入することにより、カーネル関数値が求められる。このカーネル関数値を用いて、先の説明と同様に平均値シフトやカーネル密度推定を行うことができる。
<カーネル密度推定>
次に、カーネル密度推定について説明する。本発明の一実施形態に従うカーネル密度推定装置は、図19に示されるように図1に示したカーネル関数値算出装置の要素である、データメモリ10、パス設定部11、積分部12及びカーネル関数値算出部13に加えて、候補アドレス記憶部31、候補アドレス更新部32、積和演算部33、積和中間値記憶部34及びシーケンス制御部35を有する。
以下、図20を参照してγ次元の位置とη次元の特徴量を有するN次元空間に対して、注目サンプルXに対応するカーネル密度推定を行う手順について述べる。図20の手順は、シーケンス制御部35により制御される。
まず、入力データとしてN次元空間内の全サンプルのデータを入力し、データメモリ10に保存する(ステップS301)。一方、確率密度関数を求めたい位置及び特徴量を持つ複数の注目サンプルXを設定する(ステップS302)。注目サンプルXは、N次元空間内の全サンプルのうちの一つであってもよいし、N次元空間内のサンプルに属さない任意のベクトルであってもよい。図19では、データメモリ10に保存されたサンプルに属するサンプルのみが注目サンプルXとして設定されるときの例として、1つの注目サンプルXのアドレス(注目アドレス)をパス設定部11に与えている。注目アドレスに代えて、注目サンプルのベクトルそのものをパス設定部11に与えてもよい。
注目サンプルXのためのカーネルを考え、各サンプルに与える重みであるカーネル関数値k(r(X, X’)/h2を「カーネル関数値算出」の項で述べた手法に従って算出する。すなわち、まず注目サンプルXと各候補サンプルX’を結ぶパスを設定する(ステップS304)。パスの設定は、パス設定部11において必要に応じてデータメモリ10内のサンプルのデータを参照しながら行われる。候補サンプルX’は、例えばN次元空間内の全サンプルとされる。処理の高速化のために、候補サンプルX’をN次元空間内の全サンプルに対して均等の確率でランダムサンプリングを行って得られる複数のサンプル、あるいはγ次元空間で注目サンプルXとの距離が予め設定した適当な半径r以内に存在するサンプルとしてもよい。
次に、ステップS304により設定されたパスを積分区間として、積分部12により必要に応じてデータメモリ10内のデータを参照しつつ定積分を行い、積分値r(X, X’)を算出する(ステップS305)。引き続きカーネル関数値算出部13において、予め設定されたカーネル関数(・)の変数値として積分値r(X, X’)を用いることにより、カーネル関数値k(r(X, X’)/h2を算出する(ステップS306)。
次に、カーネル関数値k(r(X, X’)/h2)を用いてカーネル密度推定を行い、確率密度関数f(X)を算出する(ステップS307)。対象空間全体に対するサンプルの生起確率を1とするための正規化定数をZとおくと、確率密度関数f(X)は次式で求められる。
Figure 0004253335
カーネルの形状が注目サンプルXに応じて変化するため、正規化定数Zの算出は平均値シフトと違い容易ではない。しかし、勾配や確率密度の比較などではZは特に意味を持たず、求める必要がないことも多い。また、先に述べたクラスタの閾値判定においては、正規化定数Zを求めずに、与えられた各サンプルの収束点に対して次式の値Zf(X)を求め、Zf(X)を平均値で割った値を閾値との比較に利用してもよい。
Figure 0004253335
ステップS305〜S307の処理は、例えば正規化定数Zが必要でない場合(すなわち、式(10)のZf(X)を算出すればよい場合)、積和演算部33によって積和中間値記憶部34の内容を参照しつつ積和演算を行うことで実現される。
なお、推定密度関数の勾配が必要な場合であっても、例えば平均値シフトを用いずにステップS301〜S305の処理をN次元空間内の注目サンプルXの周辺の数点に対して適用し、得られた点と最小2乗法によって推定密度関数の勾配を求めてもよい。
連続空間で記述された積分値を離散的な観測データから求める操作は、次のように実現される。例えば、積分値r(X, X’)が式(3)に従って算出される場合、γ次元で定義されたパス上に存在するη次元のサンプルを求める。それらη次元のサンプルの隣接サンプルの特徴量の差分の大きさを求め、それらの差分の大きさを合計する。
一方、積分値r(X, X’)が式(5)に従って算出される場合は、γ次元で定義されたパス上に存在するη次元のサンプルを求める。それらη次元のサンプルの隣接サンプルの特徴量の差分の大きさをサンプル間のパスの長さで割った値を求め、それらの値を合計する。サンプル間のパスの長さは、Ln距離(nは距離の次数)で求められる。言い換えれば、サンプル間のパスの長さは例えばL1距離(市街地距離)、L2距離(ユークリッド距離)、あるいはL∞距離(チェス板距離)で求められる。
与えられた各サンプルをN次元空間内の点とすると、積分値の算出に利用されるのが望ましいサンプルがパスと交点を持たないことがある。各サンプルが予め定められた形状、例えばγ次元における正方形(超正方形を含む)、長方形(超長方形を含む)、あるいは円(超円を含む)と大きさを持っているとした上でパス上の点を求めると、この問題は起こりにくくなる。
図2のステップS104、図18のステップS204及び図20のステップS304におけるパスの設定は、他の結果に依存しないため、各パスの算出を並列に行うことができる。図2のステップS105、図18のステップS205及び図20のステップS305における積分値の算出において、パス中の次の点における積分値はパス中の直前の積分値との差分を加算した値である。このため逐次的な処理によって積分を行えば、パス中の直前の積分値を再利用できるので、計算量を減らすことができる。特に、次の条件下では計算量を大幅に減らすことができる。
(条件1)対象空間を画像空間、または画像と同等に扱うことのできる空間(位置の次元においてサンプルが格子点に配置されている空間)であるとする。
(条件2)平均値シフトでは、そのプロファイルg(x)をEpanechnikovプロファイルに限定する。カーネル密度推定では、そのカーネル関数k(x)をUniformカーネル()に限定する。Uniformカーネルの形を次式に示すが、Epanechnikovプロファイルも全く同じ形である。
Figure 0004253335
なお、式(11)中、2ヶ所の定数1は別の定数であってもよい。
(条件3)カーネルの形状を決めるためのパスは、与えられた点を開始点とする直線であるとする。
(条件4)積分値は、直線上の隣接サンプル(画素)間での特徴量の差分の大きさの総和、すなわち式(5)で与えられるとする。
これらの4つの条件を満たすとき、本発明の一実施形態に基づく平均値シフトやカーネル密度推定、に対応するカーネル関数値の算出において、積分値の算出を高速化できる。特に、あるスキャン方向において隣接する直前の画素で用いた積分値が存在する場合、注目画素における積分値を高速に算出できる。具体的には、例えば次の方法により注目画素における積分値を順次算出する。
ステップB1:前述した「近傍」の定義に合わせて、直線方向のセットを初期化する。例えば幅W、高さH、位置の座標が(x,y)で表される画像の4近傍であれば、直線方向セットを{(1,0),(0,1),(−1,0),(0,−1)}とする。
ステップB2:ステップBで初期化された直線方向セットから一つの直線方向を取り出して、次に処理する直線方向とする。
ステップB3:処理中の直線方向に対してスキャンを行ったときに、画像上で終端となる点の組(端点セットという)を全て求める。例えば直線方向が(1,0)方向のとき端点セット、つまり開始点と終了点の組は{(0、j),(W−1、j)}のように求められる(jは整数)。
ステップB4:端点セットから1つの組を取り出す。以下、その開始点をA、終了点をBとおく。
ステップB5:注目画素をAとする。また、カーネルの端点(画素位置)をC、Dとし、CとDにAを設定する。ここでCはカーネルの開始点側の端点、Dはカーネルの終了点側の端点を表す。C及びDの積分値を0とする。
ステップB6:注目画素Aの次の画素(処理中の直線方向における隣接画素、以下Anextと記載する)に対して、AからAnextまでをパスとしたときの積分値、つまりAnextにおける、式(7)または(8)に示した被積分関数値を求める。C,Dの積分値からAnextの被積分関数値を引く。
ステップB7:Dの次の画素(Dnextと記載)に対して、Dnextにおける被積分関数値を求める。もしDの積分値が正であり、Dの積分値にDnextにおける被積分関数値を加算した値を変数値とするカーネルの値を0とする閾値を超えるなら、次のステップB8に進む。そうでなければ、DをDnextで置き換え、Dの積分値にDnextにおける被積分関数値を加算してステップB7に戻る。なお、DnextがBを超える場合はステップB7を飛ばす。
ステップB8:もしCの積分値が負でないか、Cの積分値を変数値とするカーネルの値が0でなければステップB9に進む。そうでなければ、Cの次の画素(Cnextと記載する)の被積分関数値を求め、Cの積分値から求めた値を引く。その後CをCnextで置き換え、ステップB8を繰り返す。
ステップB9:注目画素A、処理中の直線方向に対するUniformカーネルの範囲としてCとDを記録する。
ステップB10:注目画素がBに到達するまで、ステップB6〜ステップB9の処理を繰り返す。
ステップB11:端点セットが空になるまで、ステップB4〜ステップB10を繰り返す。
ステップB12:直線方向セットが空になるまで、ステップB2〜ステップB11を繰り返す。
以上の手順により、画像内の全画素に対するUniformカーネルの範囲を高速に求めることができる(画像内の全画素がAとなるように、ステップB3で端点を設定した場合)。もし画像内の全画素ではなく、関心領域内の画素におけるUniformカーネルの範囲を求めたければ、次のようにする。すなわち、ステップB5において、処理中の直線方向に対しAとDの値として関心領域内で最初の画素を設定し、ステップB10において、Bではなく処理中の直線方向に対し関心領域内で最後の画素に到達するまでステップB6〜ステップB9の処理を繰り返すように変更する。
以上で説明した方法により、クラスタリングや領域分割において、従来の平均値シフトで起こっていた過剰統合や過剰分割を抑制できる。また、カーネル密度推定により確率密度関数の値を推定すれば、クラスタとノイズとの閾値判定が可能となり、ノイズ除去もできる。
<領域フィッティング>
本実施形態による任意形状のカーネルを用いたカーネル密度推定は、クラスタリングや領域分割以外に、画像に対する領域フィッティングという応用にも適用が可能である。例えば、文字のような被写体を撮影して得られた画像があり、画像中の被写体の存在する領域(被写体領域)とそれ以外の領域(背景領域)が概略的にわかっているときに、被写体領域と背景領域を分離する操作を領域フィッティングという。ここで、概略的に表される被写体領域及び背景領域をそれぞれ初期被写体領域(初期第1領域)及び初期背景領域(初期第2領域)と呼び、これらの領域を区別するための情報を初期領域情報と呼ぶことにする。
領域フィッティングでは、画像とこれに対応する初期領域情報を入力とし、補正された(すなわちフィッティングされた)領域情報を出力する。ここで、初期領域情報及び補正領域情報は、いずれも画像の各画素に当該画素が被写体領域であれば1、背景領域あれば0というバイナリ値をそれぞれ割り当てるバイナリマスク(初期バイナリマスク及び補正後バイナリマスクという)で表現されるものとする。
先の領域分割と同様に、位置と画素値(輝度値)を並べたベクトルを考える。従来のカーネル密度推定、及び本発明の一実施形態に従う任意形状のカーネルを用いたカーネル密度推定のいずれによっても、画像中に注目画素を設定したとき、次の3ステップの手順で注目画素が被写体に属するか背景に属するかを推定できる。
ステップC1:初期領域情報において被写体領域とされた画素のみが存在する空間で、注目画素に対しカーネル密度推定を適用する。このとき注目画素の位置と画素値を入力とし、確率密度を出力とする確率密度関数が得られる。この確率密度関数に注目画素の位置と画素値を入力すると、被写体領域に属する確率密度関数値の推定値が得られる。
ステップC2:初期領域情報において背景領域とされた画素のみが存在する空間を考えて、ステップC1と同様の処理を行うことにより、背景領域に属する確率密度関数値の推定値が得られる。
ステップC3:ステップC1及びC2で得られる2つの確率密度関数値の推定値を比較し、推定値が大きい方の領域に注目画素は属すると推定する。すなわち、被写体領域に属する確率密度関数値の推定値の方が高ければ注目画素は被写体領域に属し、拝啓領域に属する確率密度関数値の推定値の方が高ければ注目画素は背景領域に属すると推定する。
上記の3つのステップC1,C2及びC3の処理を全画面あるいは画像の一部の全ての画素について、それらの画素を注目画素として適用すれば、領域フィッティングが可能である。この場合、確率密度関数値の推定値は相対値のみに意味があるため、正規化定数Zは考えなくてよく、例えばZ=1とすればよい。
図21は、上述した原理に基づく一実施形態に従う領域フィッティング装置を示し、図1に示したカーネル関数値算出装置と同様の要素である、データメモリ(ここでは画像メモリ)10、パス設定部11、積分部12及びカーネル関数値算出部13に加えて、初期バイナリマスク40、注目アドレス記憶部41、候補アドレス記憶部42、注目アドレス更新部43、候補アドレス更新部44、特徴量抽出部45、マスク付き加算部46、中間値記憶部47、確率密度関数値記憶部48、比較部49、及び出力バイナリマスクメモリ50を有する。
以下、図22を参照して領域フィッティングを行う手順について述べる。まず、画像データ及び初期バイナリマスクを入力し(ステップS401)、それぞれ画像メモリ10及びバイナリマスクメモリ40に記憶する。画像中に領域フィッティングの処理対象領域を決める(ステップS402)。処理対象領域は画像の全画面でもよいし、例えば初期バイナリマスクにおいて0と1の値が変化する画素の近傍のみでもよい。処理対象領域は、アドレス更新部43が注目アドレス記憶部41に記憶されている注目画素のアドレス(注目アドレス)を更新する際に利用される。処理対象領域が画像の全画面の場合は、ラスタ順で注目アドレスを更新する。処理対象領域が画面の一部分である場合は、アドレス更新部43と結合された図示しない処理対象領域記録部の内容を入力の画像データに従って設定し、処理対象領域記録部の内容を注目アドレスの更新の際に参照する。
注目画素を処理対象領域の最初の画素(例えば、処理対象領域においてラスタ順で初めの画素)に設定する(ステップS403)。この設定は、アドレス更新部43によって注目アドレス記憶部41に記憶されている注目アドレス(注目画素のアドレス)を更新することで行う。次いでアドレス更新部44により候補アドレス記憶部42に記憶されている候補アドレス(候補画素のアドレス)を更新しつつ、パス設定部11、積分部12及びカーネル関数値算出部13を用いて、注目画素のためのカーネル形状の算出、すなわちカーネル関数値の算出(ステップS404)を行う。カーネル関数値の算出は、全画素に対して、つまり被写体領域のバイナリマスクを使うことなく、先に「カーネル関数値算出」の項で説明した手順により候補アドレスを更新しつつ行う。
次に、確率密度関数値の推定を行う(ステップS405)。ステップS405では、マスク付き加算部46及び中間値記憶部47により、初期バイナリマスク40に記憶された初期バイナリマスクを参照して、マスク付きの加算、すなわち被写体領域毎及び背景領域毎のカーネル関数値により形状が決められたカーネル内の特徴量の加算を行うことにより、被写体領域に属する確率密度関数値及び背景領域に属する確率密度関数値(推定値)を算出する。算出された被写体領域に属する確率密度関数値及び背景領域に属する確率密度関数値は、記憶部48に記憶される。
次に、確率密度関数値記憶部48に記憶された被写体領域に属する確率密度関数値及び背景領域に属する確率密度関数値を比較部49で比較することによって、注目画素が被写体領域に属するか背景領域に属するかの所属推定を行い、注目画素が何れの領域に属するかを示す領域情報を出力する(ステップS406)。ステップS404〜S406の処理を処理対象領域内の全ての画素について完了するまで、注目画素を例えばラスタ順で更新しながら繰り返す(ステップS407〜S408)。領域情報は、出力バイナリマスクメモリ50に記憶される。処理対象領域内の全ての画素について処理が終了し、全画素について領域情報が得られたら、補正後バイナリマスクメモリ50を介して領域情報をバイナリマスクとして出力する(ステップS409)。
本実施形態に従う領域フィッティングにおいて従来の円形カーネルを用いた場合に比較して優位な例を説明する。図23に示すような2次元の位置及び1次元の特徴量(画素値)を持つ被写体231と背景232を有する画像と、図23に対応して図24に示すような初期被写体領域241及び初期背景領域242とを境界線243により区別するための初期領域情報が入力された場合を考える。また、図23の画像中の注目画素は図25の251あるいは図26の261であるとする。図25及び図26においては、図24の境界線243に対応して境界線253及び263が描かれている。図25及び図26に示されるように、注目画素251及び261は背景領域と判定されることを期待しているものとする。
従来の技術によると、図25に示すように注目画素251に対して円形カーネル252(図25では2次元であるが、実際は3次元の球である)が設定される。ここで、円形カーネル252内の白色領域は、図24中の初期被写体領域241とされた部分の方が注目画素に近く、かつその面積も広い。従って、確率密度関数値の推定値においても被写体領域の確率密度関数値の方が大きな値になるため、注目画素251は背景領域であるにもかかわらず被写体領域と判定されてしまう。
一方、本発明の一実施形態に従うと、図26に示すように注目画素261に対して図24において初期背景領域242とされた部分の方が広い面積を持つようなカーネル262が設定される。従って、注目画素261は正しく背景領域にあると判定される。このように、本実施形態によると領域フィッティングを行う場合に領域の判定誤りを減らすことができ、信頼性の高い結果が得られる。これはカーネルの形状が固定でなく、画像の被写体領域及び背景領域の形状を反映するように適応的に設定されているためである。
第1の実施形態に従うカーネル関数値算出装置を示すブロック図 図1の装置の処理手順を示すフローチャート ある色を持つ領域が背景中に存在する画像の例を示す図 円形カーネルについて説明する図 図3の画像に対して図4の円形カーネルを用いた場合の平均値シフトベクトルを示す図 図5の平均値シフトベクトルに従って複数の収束点が形成される様子を示す図 同じ色を持つサンプル集合の複数の領域が存在する画像の例を示す図 図7の画像に対して半径の大きい円形カーネルを用いる様子を示す図 図7の画像に対して図8のカーネルを用いた場合の平均値シフトベクトルを示す図 図3の画像に対して一実施形態に従って形成されるカーネルの形状の例を示す図 図3の画像に対して図10のカーネルを用いた場合の平均値シフトベクトルを示す図 図11の平均値シフトベクトルに従って単一の領域に一つの収束点が形成される様子を示す図 注目サンプルについて注目サンプルと同一特徴量を持つ候補サンプルの存在する領域を探索する様子を示す図 図13の探索により求まるカーネルの例を示す図 第1の実施形態に従ってカーネルの形状を算出するための積分動作について説明する図 領域分割の対象のオリジナル画像の例を示す図 図16Aの画像に対して従来の平均値シフトによる領域分割を行った結果を示す図 図16Aの画像に対して第1の実施形態に従う平均値シフトによる領域分割を行った結果を示す図 第2の実施形態に従う平均値シフトフィルタを示すブロック図 図17のフィルタの処理手順を示すフローチャート 第3の実施形態に従う確率密度関数値算出装置を示すブロック図 図19の装置の処理手順を示すフローチャート 第4の実施形態に従う領域フィッティング装置を示すブロック図 図22の装置の処理手順を示すフローチャート 図22の装置に入力される画像の例を示す図 図22の装置に図23の画像に対応して入力される初期領域情報について説明する図 図23の画像に対して注目画素に対応する円形カーネルを適用した例を示す図 図23の画像に対して注目画素に対応する一実施形態に従って形成されるカーネルを適用した例を示す図
符号の説明
10・・・データメモリ(画像メモリ)
11・・・パス設定部
12・・・積分部
13・・・カーネル関数値算出部
21・・・注目アドレス記憶部
22・・・候補アドレス記憶部
23・・・注目アドレス更新部
24・・・候補アドレス更新部
25・・・特徴量抽出部
26・・・積和演算部
27・・・積和中間値記憶部
28・・・特徴量画像更新部
29・・・特徴量画像メモリ
30・・・シーケンス制御部
31・・・候補アドレス記憶部
32・・・候補アドレス更新部
33・・・積和演算部
34・・・積和中間値記憶部
41・・・注目アドレス記憶部
42・・・候補アドレス記憶部
43・・・注目アドレス更新部
44・・・候補アドレス更新部
45・・・特徴量抽出部
46・・・マスク付き加算部
47・・・積和中間値記憶部
48・・・確率密度関数値記憶部
49・・・比較部
50・・・補正後バイナリマスクメモリ

Claims (7)

  1. 画像中の注目画素と、前記画像中の複数の候補画素とを結ぶ直線によって定義されたパスを設定するステップと;
    前記パス上に位置する画素の前記パス上での画素値の変化量に基づく値を線積分して積分値を得るステップと;
    前記パス毎に、前記積分値が予め定められた値を超える場合にカーネル関数値を0と算出し、前記積分値が前記予め定められた値以下となる場合に前記カーネル関数値を定数と算出するステップと;
    前記カーネル関数値が定数と算出された前記パスに対応する全ての前記候補画素の前記画像中の位置の平均位置を求めるステップと;
    前記カーネル関数値が定数と算出された前記パスに対応する全ての前記候補画素の画素値の総和を算出し、前記注目画素に対して算出されたカーネル関数値の総和を算出し、前記画素値の総和を前記カーネル関数値の総和で除算することにより平均画素値を算出するステップと;
    前記画像中の前記注目画素の画素値を前記平均画素値に置き換えるステップと;
    を具備する画像のフィルタリング方法。
  2. 前記積分値は、前記注目画素の画素値と前記パス上に設定された複数の位置に存在する各画素の画素値との差分の総和である請求項1記載の方法。
  3. 前記積分値は、前記パス上に設定された複数の位置に存在する隣接画素の画素値の差分の総和である請求項1記載の方法。
  4. 画像中の注目画素と、前記画像中の複数の候補画素とを結ぶ直線によって定義されたパスを設定するステップと;
    前記パス上に位置する画素の前記パス上での画素値の変化量に基づく値を線積分して積分値を得るステップと;
    前記パス毎に、前記積分値が予め定められた値を超える場合にカーネル関数値を0と算出し、前記積分値が前記予め定められた値以下となる場合に前記カーネル関数値を定数と算出するステップと;
    前記カーネル関数値が定数と算出された前記パスに対応する全ての前記候補画素の前記画像中の位置の平均位置を求めるステップと;
    前記カーネル関数値が定数と算出された前記パスに対応する全ての前記候補画素の画素値の総和を算出し、前記注目画素に対して算出されたカーネル関数値の総和を算出し、前記画素値の総和を前記カーネル関数値の総和で除算することにより平均画素値を算出するステップと;
    前記画像中の前記注目画素の画素値を前記平均画素値に置き換えるステップと;
    前記画像中の位置及び画素値が置き換えられた後の注目画素のうち、画素値の類似度が予め定められた閾値以上の複数の画素に対して同一のクラスタを割り当てるステップと;を具備する画像のクラスタリング方法。
  5. 前記積分値は、前記注目画素の画素値と前記パス上に設定された複数の位置に存在する各画素の画素値との差分の総和である請求項記載の方法。
  6. 前記積分値は、前記パス上に設定された複数の位置に存在する隣接画素の画素値の差分の総和である請求項記載の方法。
  7. 画像中の注目画素と、前記画像中の複数の候補画素とを結ぶ直線によって定義されたパスを設定する設定部と;
    前記パス上に位置する画素の前記パス上での画素値の変化量に基づく値を線積分して積分値を得る積分部と;
    前記パス毎に、前記積分値が予め定められた値を超える場合にカーネル関数値を0と算出し、前記積分値が前記予め定められた値以下となる場合に前記カーネル関数値を定数と算出する第1算出部と;
    前記カーネル関数値が定数と算出された前記パスに対応する全ての前記候補画素の前記画像中の位置の平均位置を求める第2算出部と;
    前記カーネル関数値が定数と算出された前記パスに対応する全ての前記候補画素の画素値の総和を算出し、前記注目画素に対して算出されたカーネル関数値の総和を算出し、前記画素値の総和を前記カーネル関数値の総和で除算することにより平均画素値を算出する第算出部と;
    前記画像中の前記注目画素の画素値を前記平均画素値に置き換える置き換え部と;
    を具備する画像のための平均値シフトフィルタ。
JP2006193100A 2006-07-13 2006-07-13 カーネル関数値を用いた、画像の平均値シフトによるフィルタリングとクラスタリングの方法及び装置 Expired - Fee Related JP4253335B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006193100A JP4253335B2 (ja) 2006-07-13 2006-07-13 カーネル関数値を用いた、画像の平均値シフトによるフィルタリングとクラスタリングの方法及び装置
US11/689,857 US7792382B2 (en) 2006-07-13 2007-03-22 Method and apparatus for filtering, clustering, and region fitting by mean shift of images using kernel function values

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006193100A JP4253335B2 (ja) 2006-07-13 2006-07-13 カーネル関数値を用いた、画像の平均値シフトによるフィルタリングとクラスタリングの方法及び装置

Publications (2)

Publication Number Publication Date
JP2008021175A JP2008021175A (ja) 2008-01-31
JP4253335B2 true JP4253335B2 (ja) 2009-04-08

Family

ID=38949294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006193100A Expired - Fee Related JP4253335B2 (ja) 2006-07-13 2006-07-13 カーネル関数値を用いた、画像の平均値シフトによるフィルタリングとクラスタリングの方法及び装置

Country Status (2)

Country Link
US (1) US7792382B2 (ja)
JP (1) JP4253335B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4908440B2 (ja) 2008-03-06 2012-04-04 株式会社東芝 画像処理装置及び方法
US8296248B2 (en) * 2009-06-30 2012-10-23 Mitsubishi Electric Research Laboratories, Inc. Method for clustering samples with weakly supervised kernel mean shift matrices
US20110184949A1 (en) * 2010-01-25 2011-07-28 Jiebo Luo Recommending places to visit
US20110292230A1 (en) 2010-05-28 2011-12-01 Winters Dustin L Method for managing privacy of digital images
US8581997B2 (en) 2010-10-28 2013-11-12 Intellectual Ventures Fund 83 Llc System for locating nearby picture hotspots
US9659063B2 (en) * 2010-12-17 2017-05-23 Software Ag Systems and/or methods for event stream deviation detection
KR101901602B1 (ko) * 2011-01-14 2018-09-27 삼성전자주식회사 디지털 사진에서 노이즈를 제거하는 장치 및 방법
US9715723B2 (en) * 2012-04-19 2017-07-25 Applied Materials Israel Ltd Optimization of unknown defect rejection for automatic defect classification
US10043264B2 (en) 2012-04-19 2018-08-07 Applied Materials Israel Ltd. Integration of automatic and manual defect classification
US9607233B2 (en) 2012-04-20 2017-03-28 Applied Materials Israel Ltd. Classifier readiness and maintenance in automatic defect classification
US10114368B2 (en) 2013-07-22 2018-10-30 Applied Materials Israel Ltd. Closed-loop automatic defect inspection and classification
CN104751099A (zh) * 2015-04-14 2015-07-01 华中科技大学 一种彩色三维码图像识读前的预处理方法
WO2016175781A1 (en) * 2015-04-29 2016-11-03 Hewlett Packard Enterprise Development Lp Discrete-time analog filtering
CN104851115B (zh) * 2015-05-18 2017-09-22 成都平行视野科技有限公司 一种通过函数拟合计算任意图像颜色映射滤镜的方法
US9792259B2 (en) 2015-12-17 2017-10-17 Software Ag Systems and/or methods for interactive exploration of dependencies in streaming data
WO2018113911A1 (en) * 2016-12-20 2018-06-28 Softkinetic Software Distance-independent keypoint detection
JP6924437B2 (ja) * 2017-09-20 2021-08-25 株式会社日立製作所 粒子線を用いた測定方法および測定システム
JP6873414B2 (ja) * 2017-10-17 2021-05-19 株式会社リガク 処理装置、方法およびプログラム
CN109359682B (zh) * 2018-10-11 2019-08-30 北京市交通信息中心 一种基于f-dbscan迭代聚类的机场巴士候选站点筛选方法
CN112153483B (zh) * 2019-06-28 2022-05-13 腾讯科技(深圳)有限公司 信息植入区域的检测方法、装置及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479270A (en) * 1992-05-19 1995-12-26 Eastman Kodak Company Method and apparatus for aligning depth images
US5568208A (en) * 1994-03-08 1996-10-22 Van De Velde; Frans J. Modified scanning laser opthalmoscope for psychophysical applications
US6055335A (en) * 1994-09-14 2000-04-25 Kabushiki Kaisha Toshiba Method and apparatus for image representation and/or reorientation
JP2001188910A (ja) * 1999-10-22 2001-07-10 Toshiba Corp 画像の輪郭抽出方法、画像からの物体抽出方法およびこの物体抽出方法を用いた画像伝送システム
EP1565102A4 (en) * 2002-10-15 2008-05-28 Medtronic Inc SYNCHRONIZATION AND CALIBRATION OF WATCHES FOR MEDICINAL PRODUCT AND CALIBRATED WATCH
WO2004034881A2 (en) * 2002-10-15 2004-04-29 Medtronic Inc. Signal quality monitoring and control for a medical device system
JP2006260401A (ja) * 2005-03-18 2006-09-28 Toshiba Corp 画像処理装置、方法、およびプログラム

Also Published As

Publication number Publication date
US20080013784A1 (en) 2008-01-17
JP2008021175A (ja) 2008-01-31
US7792382B2 (en) 2010-09-07

Similar Documents

Publication Publication Date Title
JP4253335B2 (ja) カーネル関数値を用いた、画像の平均値シフトによるフィルタリングとクラスタリングの方法及び装置
KR101096825B1 (ko) 이미지 처리방법, 처리장치, 및 프로그램
US6453069B1 (en) Method of extracting image from input image using reference image
CN113109368B (zh) 玻璃裂纹检测方法、装置、设备及介质
WO2016104712A1 (ja) 画像処理装置、画像処理方法及びプログラム
JPH1023452A (ja) 画像抽出装置および方法
JP2001034771A (ja) イメージオブジェクトの所望の輪郭をモデリングするための方法および装置、ならびにフレームのシーケンス内でイメージオブジェクトを追跡し、かつイメージオブジェクトの所望の輪郭をモデリングするための方法
EP2645332A2 (en) Image processing device that separates image into plural regions
JP4772819B2 (ja) 画像検索装置および画像検索方法
EP2782065B1 (en) Image-processing device removing encircling lines for identifying sub-regions of image
CN115457577A (zh) 基于人事档案图像的文本字体标准化处理方法及系统
JP2017500662A (ja) 投影ひずみを補正するための方法及びシステム
CN110516731B (zh) 一种基于深度学习的视觉里程计特征点检测方法及系统
CN111275616B (zh) 低空航拍图像拼接方法和装置
US9904988B2 (en) Image processing method and image processing program
CN107704864B (zh) 基于图像对象性语义检测的显著目标检测方法
CN115880228A (zh) 多缺陷合并方法、装置、计算机设备及存储介质
JP2011170554A (ja) 物体認識装置、物体認識方法及び物体認識プログラム
JP2011076575A (ja) 画像処理装置、画像処理方法及びプログラム
JP5786838B2 (ja) 画像領域分割装置、方法、およびプログラム
KR101914415B1 (ko) 반복적 이상 클러스터 제거를 이용한 시각적 돌출 맵 검출 방법
JP2007102307A (ja) 画像に表現された被写体の特定
JP6751663B2 (ja) 画像処理装置、画像処理方法
JP6233842B2 (ja) 情報端末装置、方法及びプログラム
CN113205467A (zh) 基于模糊检测的图像处理方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080326

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081201

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: 20090120

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090123

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120130

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees