(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
近年、道路における交通量の計測、走行車両の特定、走行車両の速度計測、或いは所定の敷地内へ侵入した物体の特定等を目的として、テレビカメラに代表される撮像装置を用いた監視システムが提案されている。
【0003】
このような監視システムにおいて、検出対象物体と背景画像を含む入力画像から、背景画像を引くことにより検出対象物体の像を得る背景差分法や、現在入力されている画像フレームと前回入力された画像フレームとの差分を計算し、差分値の大きい領域(変化領域)を移動物体として検知するフレーム間差分法など、画像の変化に基づいて物体を検知する手法を用いて、物体を検知するものがある。また、撮像装置から検知された物体までの距離を測定することで侵入した物体を特定するものがある。
【0004】
従来、撮像装置からの画像を処理して被写体までの距離を測定する方法として広く知られているのはステレオ法である。これは測距対象となる被写体を複数の撮像装置で撮像し、撮像装置間の距離(基線長)と画像上での差異(視差)を用い、三角測距の原理で距離を測定するものである。
【0005】
また、他の方法としてDFD(Depth from Defocus)法がある。これは画像のボケ量と被写体距離との相関情報から距離を測定するものであり、単眼カメラで実現できるため、システムの小型化に有利である。
【0006】
また、画像のボケ量を推定する手法として、画像の対数振幅スペクトル上に現れる暗い円環の半径から、ボケの特性を表現するPSF(Point Spread Function:点像分布関数)の推定を行う手法(非特許文献1)、画像の対数振幅スペクトル上の輝度こう配のベクトル分布を用いてボケの特性を表現し、PSFの推定を行う手法(非特許文献2)がある。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について、図面を参照して説明する。
〈画像処理装置を含む画像処理システム〉
図1は本発明の実施形態に係る画像処理装置を含む画像処理システムを示す図である。この画像処理システムは、PC(パーソナルコンピュータ)1と、それぞれがPC1に接続されたカメラ2、キーボード3、マウス4、およびモニタ5を備えている。
【0014】
ここで、PC1が、本発明の実施形態に係る画像処理装置であり、カメラ2からの画像データを処理することで、各種画像処理(詳細については後述)を行う。
【0015】
カメラ2は、所定のエリアを撮像するように配置された撮像装置である。本実施形態では、カラーカメラを採用したが、モノクロカメラを用いることもできる。
【0016】
キーボード3およびマウス4は、ユーザがPC1に種々の指示を与えるための入力装置であり、モニタ5はカメラ2が所定のエリアを撮像して生成した画像などを表示する出力装置である。
【0017】
PC1は、CPU(Central Processing Unit)11と、それぞれがCPU11に接続された入力部12、カメラ制御部13、ROM(Read Only Memory)14、RAM(Random Access Memory)15、ストレージ16、および出力部17を備えている。
【0018】
入力部12は、カメラ2、キーボード3、およびマウス4と通信を行うためのインタフェースであり、出力部17はモニタ5と通信を行うためのインタフェースである。また、カメラ制御部13は、カメラの焦点距離、絞り、シャッター速度などを制御するためのインタフェースである。
【0019】
CPU11はPC1全体の動作を制御するプロセッサである。ROM14は、CPU11が実行するプログラムや固定データを記憶するメモリ(書き換え可能なものを含む)であり、RAM15は、CPU11のワークエリアとなるメモリである。ストレージ16は、ハードディスクなどの大容量記憶装置からなり、カメラ2で生成され、CPU11で画像処理を受けた画像データ、CPU11が生成したデータ、画像処理に関するアプリケーションプログラムなどが格納される。
【0020】
CPU11は、ROM14やストレージ16に格納されたプログラムを実行することにより実現される機能ブロックとして、ボケ量推定手段21およびエッジ中心検出手段22を備えている。
【0021】
ボケ量推定手段21は、カメラ2が所定のエリアを撮像して生成した画像のボケ量を推定する。エッジ中心検出手段22は、カメラ2が所定のエリアを撮像して生成した画像のエッジの中心を検出する。なお、SDメモリカード(SD Memory Card)、USBメモリ(Universal Serial Bus Memory)等の記憶媒体の書込み/読出し装置を入力部12に接続し、それらの記憶媒体に記憶されている画像のボケ量を推定したり、エッジ中心を検出したりするように構成してもよい。
【0022】
〈ボケ量推定手段の機能ブロック図〉
図2は、
図1におけるボケ量推定手段21の機能構成を示すブロック図である。図示のように、ボケ量推定手段21は、画像取得手段211、モノクロ変換手段212、ノイズ除去手段213、エッジベクトル算出手段214、エッジ判定手段215、および標準偏差値算出手段216を備えている。
【0023】
画像取得手段211は、カメラ2が所定のエリアを撮像して生成した画像を入力部12を介して受け取ることで、カメラ2からの画像を取得する。このとき、カメラ2の光学系は、カメラ制御部13による焦点距離及び絞りの制御により、被写界深度の浅い状態、換言すればピントの合う範囲の狭い状態に設定されている。
【0024】
モノクロ変換手段212は、画像取得手段211が取得した画像であるカラー画像をモノクロ画像に変換する。この変換は、カラー画像の各色成分の合成による輝度(Y)成分の生成、または任意の色成分(例.G)の抽出として行う。カメラ2としてモノクロカメラを用いた場合は、モノクロ変換手段212は不要である。
【0025】
ノイズ除去手段213は、例えば、メディアンフィルタ、ガウシアンフィルタ等を備え、モノクロ変換手段212によりモノクロ画像に変換された画像からピクセルノイズを除去する(即ち、ノイズを平滑化処理した画像を作成する)。このように、ノイズ除去手段213によりピクセルノイズを予め除去しておくことで、エッジベクトル算出手段214およびエッジ判定手段215でエッジ部を精度よく抽出できる。
【0026】
エッジベクトル算出手段214は、3×3のSobel(ソーベル)フィルタやCanny(キャニー)フィルタを備え、ノイズ除去されたモノクロ画像の各画素のエッジベクトルの強度(以下、エッジ強度)およびエッジベクトルの方向(以下、エッジ方向)を算出する。
【0027】
具体的には、エッジベクトル算出手段214は、画像の横軸(以下、x軸)方向の3×3のSobelフィルタSxの出力をfx、画像の縦軸(以下、y軸)方向の3×3のSobelフィルタSyの出力をfyとすると、下記の式〔1〕、式〔2〕により、エッジ強度およびエッジ方向を算出する。
エッジ強度=√(fx
2+fy
2) …式〔1〕
エッジ方向=tan
−1(fy/fx) …式〔2〕
【0028】
エッジ判定手段215は、エッジベクトル算出手段214によりエッジ強度が算出された各画素のうち、そのエッジ強度が算出された画素の両側の画素のエッジ強度と比べて、エッジ強度の差または比が所定の閾値を超える画素(注目画素)を、エッジ部画素と判定することでエッジ部を抽出する。このように、エッジベクトル算出手段214およびエッジ判定手段215はエッジ抽出手段として機能する。
【0029】
標準偏差値算出手段216は、Sobel(ソーベル)フィルタ処理によって得た、エッジ中心画素の画素値としての輝度値の微分値と、その両隣の一対の画素の画素値としての輝度値の微分値から、該当エッジ部分の輝度分散の標準偏差値を算出することにより、エッジ部のボケ量の推定値を算出する。
【0030】
〈ボケ量推定の原理〉
次に標準偏差値算出手段216により算出される正規分布の標準偏差値がエッジ部のボケ量の推定値として利用できる理由について説明する。
【0031】
《エッジ部の輝度値の累積分布曲線および正規分布曲線》
図3は、ボケ画像のエッジ部の輝度値と画素位置との関係に近似する累積分布曲線を示す図であり、
図4は、
図3に示す累積分布曲線の微分処理により取得される正規分布曲線を示す図である。
【0032】
図3において、横軸は画像におけるx軸方向の位置を表し、縦軸は画像の輝度値を表す。また、X
0はエッジ中心画素の位置、X
1〜X
3はエッジ中心画素に対してx軸のプラス方向に隣接する3つのエッジ隣接画素の位置、X
−1〜X
−3はエッジ中心画素に対してx軸のマイナス方向に隣接するエッジ隣接画素の位置である。このエッジ中心画素およびその両側のエッジ隣接画素がエッジ部画素、すなわちエッジ部の画素である。また、
図4において、横軸は
図3と同じであり、縦軸は画像の輝度差(輝度値の微分値)を表す。
【0033】
画像にボケを与える画像処理として、画像にガウシアンフィルタを掛ける処理が一般的である。これは、レンズの焦点ボケがガウス分布(正規分布)に近似しているからである。例えば、点光源のレンズの焦点ボケによる散乱円の輝度値と、点画像にガウシアンフィルタを掛けた画像の散乱円の輝度値は近似している。
【0034】
統計学上、正規分布における平均値±3×σの範囲に99.73%のデータが分布するため、焦点ボケによる錯乱円が正規分布に近似するとすれば、錯乱円の直径≒6σが成り立つことになり、ボケ量と標準偏差値σとが比例関係にあることが分かる。よって、標準偏差値σをボケ量の推定値として利用することができる。
【0035】
このようにボケ量が正規分布に近似することから、ボケ画像のエッジ部の輝度値は
図3に示すような累積分布曲線に近似することになる。よって、この累積分布曲線を微分することにより、
図4に示すような正規分布曲線が得られることになる。
【0036】
そこで、本実施形態におけるボケ量推定手段21では、エッジ部の画素の輝度値を微分することにより
図4に示すような正規分布曲線を取得し、その標準偏差値σをボケ量の推定値とする。
【0037】
ここで、ボケ画像のエッジ部の輝度値が
図3に示すような累積分布曲線に近似することについて、計算例を示す。
図5は、画像のエッジ部のデータ(以下、エッジデータということがある)の一例を示す図である。また、
図6は、
図5に示すエッジデータに対してガウシアンフィルタを適用したボケ画像のエッジデータを示し、
図7は、
図5に示すエッジデータの標準偏差値毎の累積分布曲線の中心を0.5ずらして、分布率を255倍したデータを示す図である。これらの図において、横軸は画素位置を表し、縦軸は画素の輝度値を表す。
【0038】
図5に示すエッジデータでは、画素位置が−8から0まで輝度値が0、画素位置が1から8まで輝度値が255である。すなわち、ボケのない画像のエッジデータである。
【0039】
図6および
図7に示すように、エッジデータに対してガウシアンフィルタを適用したボケ画像のエッジデータと、エッジデータの累積分布曲線とはほぼ同じであることから、ボケ画像のエッジ部の輝度値が累積分布曲線に近似することが分かる。
【0040】
〈実際のボケ画像におけるエッジ部画素の位置〉
図8は、実際のボケ画像におけるエッジ部画素の位置について説明するための図である。この図における横軸、縦軸は、
図4における横軸、縦軸と同じである。また、Y
−1、Y
0、Y
1は、それぞれ、X
−1、X
0、X
1に位置する画素の輝度差であり、X
Zはエッジの真の中心位置である。
【0041】
図示のように、実際のボケ画像においては、エッジ抽出手段により抽出されるエッジ中心画素の位置X
0がエッジ部の真の中心位置X
Zに一致しないことがある。そこで、本実施形態に係る標準偏差値算出手段216は下記のアルゴリズムにより、標準偏差値を算出する。
【0042】
正規分布の確率密度関数F(x)は、良く知られているように下記の式〔3〕で表される。
F(x)={1/√(2πσ
2)}・exp{−(x−μ)
2/2σ
2} …式〔3〕
この式において、μは平均値、σ
2は分散値(σは標準偏差値)である。
【0043】
図4において、X
Zを平均値(すなわちμ=X
Z)
、X
1−X
0=1、X
0−X
−1=1、X
1>X
Z>X
0>X
−1、H=1/√(2π)とした場合、下記の式〔4〕〜式〔6〕が成り立つ。
F(X
−1)=Y
−1=(H/σ)・exp{−(X
−1−X
Z)
2/2σ
2} …式〔4〕
F(X
0)=Y
0=(H/σ)・exp{−(X
0−X
Z)
2/2σ
2} …式〔5〕
F(X
1)=Y
1=(H/σ)・exp{−(X
1−X
Z)
2/2σ
2} …式〔6〕
【0044】
式〔4〕〜〔6〕を変形すると、下記の式〔7〕〜式〔9〕が得られる。
(σ/H)=exp{−(X
−1−X
Z)
2/2σ
2}/Y
−1 …式〔7〕
(σ/H)=exp{−(X
0−X
Z)
2/2σ
2}/Y
0 …式〔8〕
(σ/H)=exp{−(X
1−X
Z)
2/2σ
2}/Y
1 …式〔9〕
【0045】
式〔7〕の右辺=式〔8〕の右辺、式〔8〕の右辺=式〔9〕の右辺より、下記の式〔10〕、式〔11〕が成り立つ。
exp{−(X
−1−X
Z)
2/2σ
2}/Y
−1=exp{−(X
0−X
Z)
2/2σ
2}/Y
0 …式〔10〕
exp{−(X
0−X
Z)
2/2σ
2}/Y
0=exp{−(X
1−X
Z)
2/2σ
2}/Y
1 …式〔11〕
【0046】
式〔10〕、式〔11〕を変形すると、下記の式〔12〕、式〔13〕が得られる。
Y
−1/Y
0=exp{−(X
−1−X
Z)
2/2σ
2}/exp{−(X
0−X
Z)
2/2σ
2} …式〔12〕
Y
0/Y
1=exp{−(X
0−X
Z)
2/2σ
2}/exp{−(X
1−X
Z)
2/2σ
2} …式〔13〕
【0047】
式〔12〕、式〔13〕の右辺を変形すると、下記の式〔14〕、式〔15〕が得られる。
Y
−1/Y
0=exp[{−(X
−1−X
Z)
2+(X
0−X
Z)
2}/2σ
2] …式〔14〕
Y
0/Y
1=exp[{−(X
0−X
Z)
2+(X
1−X
Z)
2}/2σ
2] …式〔15〕
【0048】
式〔14〕、式〔15〕の両辺の自然対数Lnをとると、下記の式〔16〕、式〔17〕が得られる。
Ln(Y
−1/Y
0)={−(X
−1−X
Z)
2+(X
0−X
Z)
2}/2σ
2 …式〔16〕
Ln(Y
0/Y
1)={−(X
0−X
Z)
2+(X
1−X
Z)
2}/2σ
2 …式〔17〕
【0049】
式〔16〕、式〔17〕の右辺を変形すると、下記の式〔18〕、式〔19〕が得られる。
Ln(Y
−1/Y
0)=(X
0−X
−1)(X
−1+X
0−2X
Z)/2σ
2 …式〔18〕
Ln(Y
0/Y
1)=(X
1−X
0)(X
0+X
1−2X
Z)/2σ
2 …式〔19〕
【0050】
式〔18〕、式〔19〕の右辺にX
0−X
−1=1、X
1−X
0=1を代入すると、下記の式〔20〕、式〔21〕が得られる。
Ln(Y
−1/Y
0)=(X
−1+X
0−2X
Z)/2σ
2 …式〔20〕
Ln(Y
0/Y
1)=(X
0+X
1−2X
Z)/2σ
2 …式〔21〕
【0051】
式〔20〕から式〔21〕を減算すると、下記の式〔22〕が得られる。
Ln(Y
−1/Y
0)−Ln(Y
0/Y
1)={(X
−1+X
0−2X
Z)−(X
0+X
1−2X
Z)}/2σ
2 …式〔22〕
【0052】
式〔22〕の両辺を整理すると、下記の式〔23〕が得られる。
Ln(Y
−1・Y
1/Y
02)=(X
−1−X
1)/2σ
2 …式〔23〕
【0053】
よって標準偏差値σは、式〔23〕をσについて解くことにより、
σ=√[(X
−1−X
1)/{2・Ln(Y
−1・Y
1/Y
02)}] …式〔24〕
となる。
【0054】
X
−1−X
1=−2であるから、
σ=√[−1/Ln(Y
−1・Y
1/Y
02)] …式〔25〕
となる。
【0055】
このように本発明の実施形態に係る画像処理装置によれば、エッジ中心画素X
0およびその両隣のエッジ隣接画素X
1,X
−1における輝度値の微分値から標準偏差値σを算出し、ボケ量の推定値とするので、周波数解析を伴わない単純な処理で画像のボケ量を推定することができる。また、エッジ中心画素とその両隣の画素から算出するため、小さなボケ量にも対応できる。
【0056】
なお、以上の説明では、標準偏差値σの算出に用いるエッジ隣接画素として、エッジ中心画素X
0の両隣の画素を用いるものとしたが、両隣から1つ離れたエッジ画素隣接画素X
2,X
−2を用いることもできる。ボケ量の大きい画像の場合、エッジ画素隣接画素X
2,X
−2を用いて算出した標準偏差値σの方がエッジ画素隣接画素X
1,X
−1を用いて算出した標準偏差値σよりも精度の高い推定値を得ることができる。
【0057】
〈ボケ量推定手段の処理手順〉
図9は、
図2におけるボケ量推定手段21の処理手順を示すフローチャートである。この図を参照して、ボケ量推定手段21の処理手順について詳細に説明する。
【0058】
まず、ボケ量推定手段21は、被写界深度の浅い状態に設定されているカメラ2からの画像を画像取得手段211により取得する(ステップS1)。次に、ボケ量推定手段21は、モノクロ変換手段212によりカラー画像をモノクロ画像に変換し(ステップS2)、ノイズ除去手段213によりモノクロ画像からノイズを除去する(ステップS3)。
【0059】
ボケ量推定手段21は、次に、エッジベクトル算出手段214により、ノイズが除去されたモノクロ画像の各画素に対して、x軸方向およびy軸方向にSobelフィルタによる微分処理を行い、エッジ強度とエッジ方向を算出して、z軸方向とy軸方向のベクトル合成を行う(ステップS4)。さらに、エッジ判定手段215により、合成したエッジベクトルの角度の量子化(縦、横、および斜め2方向)を行い、エッジベクトルの角度に沿って、輝度のピーク点画素を抽出することにより、エッジ中心画素を求める(ステップS5)。
【0060】
ボケ量推定手段21は、次に、標準偏差値算出手段216により、前述した式〔24〕を用いて、エッジ部のボケ量の推定値として標準偏差値σを算出する(ステップS6)。このとき、Y
0,Y
1,Y
−1はSobelフィルタにより算出する。したがって、ステップS4の微分処理の結果を利用することができる。
【0061】
〈ボケ量の推定値の例〉
次にボケ量推定手段21により実際に算出した画像のボケ量の推定値の一例について説明する。
【0062】
図10は、
図2に示すボケ量推定手段21により処理されるモノクロ画像(以下、処理対象画像)の一例を示す図であり、
図11は、
図10に示す処理対象画像のボケ量の推定値を示す図である。
【0063】
図10に示すように、処理対象画像は、y軸方向の所定の位置y
cを境界として、上が白(輝度値255)、下が黒(輝度値0)を基本とし、x軸方向の位置が右に進む(x座標の値が大きくなる)ほど、境界のボケ量がリニアに増加するパターンを持つ。
【0064】
そして、
図11に示すように、この処理対象画像の上下の境界のボケ量を算出すると、x軸方向の画素位置の値がほぼ80までは、ボケ量の推定値がほぼ正確にリニアに増加している。80を超えると、誤差はあるものも概ねリニアに増加している。前述したように、このようなボケ量の大きい部分については、Y
−1およびY
1に代えて、Y
−2およびY
2を標準偏差値σの算出に用いることでとり、誤差を低減することができる。
【0065】
〈真のエッジ中心の検出〉
図8を参照して説明したように、エッジ中心画素の位置X
0と真のエッジ中心X
Zとが一致するとは限らない。本実施形態に係る画像処理装置では、エッジ中心検出手段22がボケ量推定手段21における標準偏差値算出手段216の算出結果を用いて、真のエッジ中心X
Zを検出することができる。
【0066】
すなわち、前記の式〔20〕において、Xの値をピクセル単位とし、X
−1=−1、X
0=0、X
1=1の場合に、下記の式〔26〕が得られる。
Ln(Y
−1/Y
0)=(1−2X
Z)/2σ
2=(1−2X
Z)/2σ
2 …式〔26〕
この式〔26〕をX
Zについて解くことで、下記の式〔27〕が得られる。
X
Z=(−1/2){1+2σ
2・Ln(Y
−1/Y
0)} …式〔27〕
【0067】
同様に、前記の式〔21〕にX
−1=−1、X
0=0、X
1=1を代入し、X
Zについて解くと、下記の式〔28〕が得られる。
X
Z=(1/2){1−2σ
2・Ln(Y
0/Y
1)} …式〔28〕
【0068】
よって、式〔27〕または式〔28〕を用いることで、真のエッジ中心X
Zを算出することができる。