画像ボケ量計算装置およびそのプログラム
【課題】本発明は、処理時間が短く、計算コストが低い画像ボケ量計算装置を提供する。
【解決手段】画像ボケ量計算装置1は、微分画像を生成するソーベルフィルタ10と、微分画像に含まれるエッジを検出するエッジ検出手段20と、エッジの開始点および終了点を検出する開始点・終了点検出手段30と、開始点・終了点検出手段30が検出した開始点と終了点との輝度値の差と、開始点と前記終了点との輝度勾配の平均値とを算出すると共に、輝度値の差を輝度勾配の平均値で除算した値に基づいて画像ボケ量を計算する画像ボケ量計算手段40と、画像ボケ量計算手段40が計算した水平方向および垂直方向の画像ボケ量を平均する画像ボケ量平均手段50とを備える。
【解決手段】画像ボケ量計算装置1は、微分画像を生成するソーベルフィルタ10と、微分画像に含まれるエッジを検出するエッジ検出手段20と、エッジの開始点および終了点を検出する開始点・終了点検出手段30と、開始点・終了点検出手段30が検出した開始点と終了点との輝度値の差と、開始点と前記終了点との輝度勾配の平均値とを算出すると共に、輝度値の差を輝度勾配の平均値で除算した値に基づいて画像ボケ量を計算する画像ボケ量計算手段40と、画像ボケ量計算手段40が計算した水平方向および垂直方向の画像ボケ量を平均する画像ボケ量平均手段50とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被写体が撮影された入力画像の画像ボケ量を計算する画像ボケ量計算装置およびそのプログラムに関する。
【背景技術】
【0002】
従来から、被写体を撮影した入力画像において、ボケを検出することは広く行われている。この入力画像において、ボケが発生しているボケ領域は、被写体または他の模様のエッジ付近に発生することが多い。
【0003】
エッジ付近のボケが輝度勾配を生じるため、この輝度勾配を得られるソーベルフィルタが、広く利用されている(例えば、非特許文献1)。ここで、ソーベルフィルタは、入力画像に適用することで微分画像を生成し、その微分画像から輝度勾配を得ることができる。より具体的には、ソーベルフィルタは、下記の式(1)に示すように、入力画像Aに対して、垂直方向および水平方向にそれぞれ3×3カーネルを畳み込むことで、水平方向の微分画像Gxと、垂直方向の微分画像Gyとを生成する。なお、式(1)において、「*」は、2次元の畳み込みオペレータを示す。
【0004】
【数1】
【0005】
また、従来から、ソーベルフィルタを利用したボケ、絵柄などの検出手法が提案されている(例えば、特許文献1)。この特許文献1に記載の発明は、リファレンス画像を用いた検出手法である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平7−175926号公報
【非特許文献】
【0007】
【非特許文献1】Sobel operator:http://en.wikipedia.org/wiki/Sobel_operator
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、特許文献1に記載の発明は、リファレンス画像を生成するために処理時間が余計に必要となる。ここで、例えば、カメラレンズのフォーカスチェック、カメラトラッキング、被写体トラッキングなどのボケ検出を利用するアプリケーションでは、ボケ検出にかかる時間が重要な要素となる。このため、処理時間が短く、計算コストが低いボケ検出手法が、ユーザから強く要望されている。
【0009】
そこで、本発明は、前記した問題を解決し、処理時間が短く、計算コストが低い画像ボケ量計算装置およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
前記した課題に鑑みて、本願第1発明に係る画像ボケ量計算装置は、被写体を撮影した入力画像の画像ボケ量を計算する画像ボケ量計算装置において、一次微分フィルタと、エッジ検出手段と、開始点・終了点検出手段と、画像ボケ量計算手段と、画像ボケ量平均手段とを備えることを特徴とする。
【0011】
かかる構成によれば、画像ボケ量計算装置は、一次微分フィルタによって、前記入力画像が入力されると共に、入力された前記入力画像から、当該入力画像のエッジを示す水平方向および垂直方向の微分画像を生成する。また、画像ボケ量計算装置は、エッジ検出手段によって、前記一次微分フィルタが生成した水平方向および垂直方向の微分画像から、前記エッジを検出する。そして、画像ボケ量計算装置は、開始点・終了点検出手段によって、前記エッジ検出手段が検出したエッジごとに、前記エッジの開始点および終了点を検出する。
【0012】
また、画像ボケ量計算装置は、画像ボケ量計算手段によって、前記開始点・終了点検出手段が検出した開始点と終了点との輝度値の差と、前記開始点と前記終了点との輝度勾配の平均値とを算出すると共に、前記輝度値の差を前記輝度勾配の平均値で除算した値に基づいて、前記水平方向および前記垂直方向で前記画像ボケ量を計算する。つまり、画像ボケ量計算手段は、画像ボケ量が輝度勾配に反比例する性質を利用して、前記輝度値の差および前記輝度勾配の平均値を用いて画像ボケ量を計算するので、リファレンス画像を用いる必要がない。
【0013】
また、画像ボケ量計算装置は、画像ボケ量平均手段によって、前記画像ボケ量計算手段が計算した前記水平方向および前記垂直方向の前記画像ボケ量を平均する。
【0014】
本願第2発明に係る画像ボケ量計算装置は、前記画像ボケ量計算手段が、前記エッジの数をNとし、k番目の前記エッジの開始点をxSとし(1≦k≦N)、前記k番目のエッジの終了点をxEとし、前記k番目のエッジの開始点xSの輝度値をek(xS)とし、前記k番目のエッジの終了点xEの輝度値をek(xE)とし、前記k番目のエッジの開始点xSと終了点xEとの輝度値の差をHkとし、前記k番目のエッジの開始点xSから終了点xEまでの輝度勾配∇ek(x)の平均値をSkとしたとき、下記の式(2)を用いて、前記水平方向および前記垂直方向で前記画像ボケ量σを計算することが好ましい。
【0015】
なお、本願第1発明に係る画像ボケ量計算装置は、コンピュータを、一次微分フィルタ、エッジ検出手段、開始点・終了点検出手段、画像ボケ量計算手段、画像ボケ量平均手段として機能させる画像ボケ量計算プログラムによって実現することもできる。
【発明の効果】
【0016】
本発明によれば、リファレンス画像を用いることなく、画像ボケ量を計算できるため、処理時間を短く、計算コストを低くすることができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態に係る画像ボケ量計算装置の構成を示すブロック図である。
【図2】本発明の実施形態において、入力画像の一例を示す図である。
【図3】本発明の実施形態において、水平方向の微分画像の一例を示す図である。
【図4】本発明の実施形態において、垂直方向の微分画像の一例を示す図である。
【図5】本発明の実施形態において、水平エッジの開始点および終了点の検出を説明する図である。
【図6】本発明の実施形態において、プロファイルを示す図である。
【図7】本発明の実施形態において、垂直エッジの開始点および終了点の検出を説明する図である。
【図8】図1の画像ボケ量計算装置の動作を示すフローチャートである。
【図9】本発明の実施例1において、画像ボケ量の計算結果を示すグラフである。
【図10】本発明の実施例2において、ジッター抑制前のカメラ姿勢推定結果を示すグラフであり、(a)〜(c)はそれぞれカメラの並進させたときのグラフである。
【図11】本発明の実施例2において、ジッター抑制前のカメラ姿勢推定結果を示すグラフであり、(a)〜(c)はそれぞれカメラの回転させたときのグラフである。
【図12】本発明の実施例2において、ジッター抑制後のカメラ姿勢推定結果を示すグラフであり、(a)〜(c)はそれぞれカメラの並進させたときのグラフである。
【図13】本発明の実施例2において、ジッター抑制後のカメラ姿勢推定結果を示すグラフであり、(a)〜(c)はそれぞれカメラの回転させたときのグラフである。
【図14】本発明の実施例2において、カメラの動き強度を示すグラフである。
【発明を実施するための形態】
【0018】
[画像ボケ量計算装置の構成]
以下、本発明の実施形態について、適宜図面を参照しながら詳細に説明する。
図1に示すように、本発明の実施形態に係る画像ボケ量計算装置1は、被写体を撮影した入力画像の画像ボケ量を計算するものであり、ソーベルフィルタ(一次微分フィルタ)10と、エッジ検出手段20と、開始点・終了点検出手段30と、画像ボケ量計算手段40と、画像ボケ量平均手段50とを備える。なお、画像ボケ量とは、入力画像Iに含まれる被写体がどの程度ボケているかを示す数値である。
【0019】
ソーベルフィルタ10は、図示を省略したカメラから入力画像(静止画)Iが入力されると共に、この入力画像Iから、水平方向および垂直方向の微分画像Gx,Gyを生成するものである。具体的には、ソーベルフィルタ10は、前記した式(1)に示すように、入力画像Iに対して、垂直方向および水平方向にそれぞれ3×3カーネルを畳み込むことで、水平方向の微分画像Gxと、垂直方向の微分画像Gyとを生成する。そして、ソーベルフィルタ10は、生成した微分画像Gyを水平エッジ検出部21に出力し、生成した微分画像Gxを垂直エッジ検出部23に出力する。なお、ソーベルフィルタ10としては、例えば、前記した非特許文献1に記載された技術を利用することができる。
【0020】
水平方向の微分画像Gxは、入力画像Iに含まれる垂直エッジを示す画像である。例えば、図2の入力画像Iをソーベルフィルタ10に入力した場合、図3に示すような微分画像Gxが生成される。
垂直方向の微分画像Gyは、入力画像Iに含まれる水平エッジを示す画像である。例えば、図2の入力画像Iをソーベルフィルタ10に入力した場合、図4に示すような微分画像Gyが生成される。
【0021】
エッジ検出手段20は、ソーベルフィルタ10が生成した微分画像Gx,Gyからエッジを検出するものであり、水平エッジ検出部21と、垂直エッジ検出部23とを備える。
【0022】
水平エッジ検出部21は、ソーベルフィルタ10から微分画像Gyが入力されると共に、入力された微分画像Gyに含まれる水平エッジを検出する。例えば、水平エッジ検出部21は、この微分画像Gyに閾値処理を施して、画像ボケ量の計算対象となる水平エッジを検出する。そして、水平エッジ検出部21は、検出した水平エッジの各画素位置をボケ計算対象座標(x,y)として、水平エッジ開始点・終了点検出部31に出力する。
【0023】
垂直エッジ検出部23は、ソーベルフィルタ10から微分画像Gxが入力されると共に、入力された微分画像Gxに含まれる垂直エッジを検出する。例えば、垂直エッジ検出部23は、この微分画像Gxに閾値処理を施して、画像ボケ量の計算対象となる垂直エッジを検出する。そして、垂直エッジ検出部23は、検出した垂直エッジの各画素位置をボケ計算対象座標(x,y)として、垂直エッジ開始点・終了点検出部33に出力する。
【0024】
開始点・終了点検出手段30は、エッジ検出手段20が検出したエッジごとに、開始点xSおよびエッジの終了点xEを検出するものであり、水平エッジ開始点・終了点検出部31と、垂直エッジ開始点・終了点検出部33とを備える。
【0025】
水平エッジ開始点・終了点検出部31は、カメラから入力画像Iが入力され、水平エッジ検出部21からボケ計算対象座標(x,y)が入力される。そして、水平エッジ開始点・終了点検出部31は、入力画像Iのボケ計算対象座標(x,y)で表される水平エッジに対して、その水平エッジの上部および下部である開始点(最近傍極大値)xSと終了点(最近傍極小値)xEとを検出する。その後、水平エッジ開始点・終了点検出部31は、検出した開始点xSおよび終了点xEと、入力画像Iとを垂直方向画像ボケ量計算部41に出力する。
【0026】
ここで、図5を参照して、水平エッジでの開始点xSおよび終了点xEの検出について説明する。図5では、被写体Objの外周部でボケが発生しており、ドットの濃淡で輝度値の高低を図示した。つまり、被写体Objの中心部では輝度値が最も低く、被写体Objの外周部に向かうにつれ、輝度値が徐々に高くなることを示している。
【0027】
また、図5では、水平エッジの方向を矢印Egとして図示すると共に、矢印Egに直交する仮想線αを図示した。仮想線αは開始点xSおよび終了点xEの検出を説明するために図示したものである。
【0028】
図5に示すように、微分画像Gyでは、例えば、被写体Objの上部に矢印Egの方向で水平エッジが検出される。この場合、水平エッジ開始点・終了点検出部31は、垂直方向の画像ボケ量を計算するために、矢印Egに直交する仮想線αの方向で水平エッジの開始点xSおよび終了点xEを検出する。具体的には、水平エッジ開始点・終了点検出部31は、仮想線α上でボケが始まる位置、すなわち、水平エッジの下部を開始点(最近傍極大値)xSとして検出する。また、水平エッジ開始点・終了点検出部31は、仮想線α上でボケが終了する位置、すなわち、水平エッジの上部を終了点(最近傍極小値)xEとして検出する。
【0029】
この水平エッジのプロファイルを図示すると、図6のようになる。図6は、画素位置と輝度値との関係を示しており、横軸が画素位置(Pixel Position)であり、縦軸が輝度値(Pixel intensity)である。この場合、図6のプロファイルに微分処理を施すと、開始点xSおよび終了点xEにそれぞれ、最近傍極大値と最近傍極小値とが現れる。つまり、水平エッジ開始点・終了点検出部31は、微分処理によって現れる最近傍極大値および最近傍極小値を、開始点xSおよび終了点xEとしてそれぞれ検出することになる。
【0030】
垂直エッジ開始点・終了点検出部33は、カメラから入力画像Iが入力され、垂直エッジ検出部23からボケ計算対象座標(x,y)が入力される。そして、垂直エッジ開始点・終了点検出部33は、水平エッジ開始点・終了点検出部31と同様、入力画像Iのボケ計算対象座標(x,y)で表される垂直エッジに対して、その垂直エッジの左右の開始点(最近傍極大値)xSおよび終了点(最近傍極小値)xEを検出する。その後、垂直エッジ開始点・終了点検出部33は、検出した開始点xSおよび終了点xEと、入力画像Iとを水平方向画像ボケ量計算部43に出力する。
【0031】
例えば、図7に示すように、被写体Objの左右において、矢印Egの方向で垂直エッジがそれぞれ検出されたとする。この場合、各垂直エッジは、被写体Objの左右反対側に位置するため、輝度勾配が逆方向になるプロファイルとして表すことができる(図7拡大図参照)。
【0032】
画像ボケ量計算手段40は、開始点・終了点検出手段30が検出した開始点xSおよび終了点xEとの輝度値の差と、開始点xSおよび終了点xEとの輝度勾配の平均値とを算出すると共に、輝度値の差を輝度勾配の平均値で除算した値に基づいて、水平方向および垂直方向で画像ボケ量を計算するものである。このため、画像ボケ量計算手段40は、垂直方向画像ボケ量計算部41と、水平方向画像ボケ量計算部43とを備える。
【0033】
垂直方向画像ボケ量計算部41は、水平エッジ開始点・終了点検出部31から開始点xSおよび終了点xEと入力画像Iとが入力されると共に、入力画像I上において、開始点xSおよび終了点xEとの輝度値の差Hkと、開始点xSから終了点xEまでの輝度勾配の平均値Skとを算出する。
【0034】
以下、図6に戻り、垂直方向画像ボケ量計算部41の詳細について説明する(適宜図1参照)。図6に示すように、垂直方向画像ボケ量計算部41は、入力画像I上において、水平エッジの開始点xSにおける輝度値ek(xS)と、水平エッジの終了点xEにおける輝度値ek(xE)との差分絶対値を、輝度値の差Hkとして計算する。
【0035】
また、垂直方向画像ボケ量計算部41は、入力画像I上において、水平エッジの輝度値がek(x)であるとき、開始点xSから終了点xEまでの間、隣接画素同士の輝度勾配∇ek(x)を計算する。そして、垂直方向画像ボケ量計算部41は、隣接画素同士の輝度勾配∇ek(x)を開始点xSから終了点xEまでの間で平均して、輝度勾配の平均値Skを計算する。
【0036】
そして、垂直方向画像ボケ量計算部41は、輝度値の差Hkを輝度勾配の平均値Skで除算した値に基づいて、垂直方向の画像ボケ量を計算する。具体的には、垂直方向画像ボケ量計算部41は、下記の式(2)に示すように、水平エッジの輝度値の差Hkを輝度勾配の平均値Skで除算した除算値を計算し、水平エッジにおける除算値の平均を計算して、画像ボケ量σを計算する。つまり、垂直方向画像ボケ量計算部41は、画像ボケ量が輝度勾配に反比例する性質を利用して、画像ボケ量σを計算している。その後、垂直方向画像ボケ量計算部41は、計算した画像ボケ量σを、垂直方向の画像ボケ量σvとして画像ボケ量平均手段50に出力する。なお、式(2)において、Nは微分画像Gyから検出された水平エッジの数を示し、kは何番目のエッジであるかを示す(1≦k≦N)。
【0037】
【数2】
【0038】
水平方向画像ボケ量計算部43は、垂直エッジ開始点・終了点検出部33から開始点xSおよび終了点xEと入力画像Iとが入力されると共に、入力画像I上において、開始点xSおよび終了点xEとの輝度値の差Hkと、開始点xSおよび終了点xEとの輝度勾配の平均値Skとを算出する。そして、水平方向画像ボケ量計算部43は、垂直方向画像ボケ量計算部41と同様、前記した式(2)を用いて、水平方向の画像ボケ量σhを計算して画像ボケ量平均手段50に出力する。
【0039】
なお、水平方向画像ボケ量計算部43で画像ボケ量を計算する場合、前記した式(2)において、垂直エッジの開始点xSにおける輝度値をek(xS)、垂直エッジの終了点xEにおける輝度値をek(xE)、垂直エッジの輝度値をek(x)、垂直エッジにおける隣接画素同士の輝度勾配∇ek(x)、垂直エッジの輝度値の差をHk、垂直エッジの輝度勾配の平均値をSk、微分画像Gxから検出された垂直エッジの数をNと読み替える。
【0040】
画像ボケ量平均手段50は、垂直方向画像ボケ量計算部41から垂直方向の画像ボケ量σvが入力され、水平方向画像ボケ量計算部43から水平方向の画像ボケ量σhが入力される。そして、画像ボケ量平均手段50は、水平方向の画像ボケ量σhと、垂直方向の画像ボケ量σvとの平均(σh+σv)/2を計算し、この平均値を画像ボケ量σ´として出力する。
【0041】
[画像ボケ量計算装置の動作]
以下、図8を参照して、図1の画像ボケ量計算装置1の動作について説明する。
画像ボケ量計算装置1は、ソーベルフィルタ10によって、入力画像Iから微分画像Gx,Gyを生成する(ステップS1)。そして、画像ボケ量計算装置1は、水平エッジ検出部21によって、微分画像Gyに含まれる水平エッジを検出する(ステップS2)。
【0042】
画像ボケ量計算装置1は、水平エッジ開始点・終了点検出部31によって、水平エッジから開始点xSおよび終了点xEを検出する(ステップS3)。そして、画像ボケ量計算装置1は、垂直方向画像ボケ量計算部41によって、前記した式(2)を用いて、垂直方向の画像ボケ量σvを計算する(ステップS4)。
【0043】
画像ボケ量計算装置1は、垂直エッジ検出部23によって、微分画像Gxに含まれる垂直エッジを検出する(ステップS5)。また、画像ボケ量計算装置1は、垂直エッジ開始点・終了点検出部33によって、垂直エッジから開始点xSおよび終了点xEを検出する(ステップS6)。そして、画像ボケ量計算装置1は、水平方向画像ボケ量計算部43によって、前記した式(2)を用いて、水平方向で画像ボケ量σhを計算する(ステップS7)。さらに、画像ボケ量計算装置1は、画像ボケ量平均手段50によって、水平方向の画像ボケ量σhと、垂直方向の画像ボケ量σvとの平均値を画像ボケ量σ´として出力する(ステップS8)。
【0044】
以上のように、本発明の実施形態に係る画像ボケ量計算装置1は、画像ボケ量が輝度勾配に反比例する性質を利用して、前記した式(2)に示すように、輝度値の差を輝度勾配の平均値で除算した値に基づいて画像ボケ量を計算するので、リファレンス画像を用いる必要がない。このため、画像ボケ量計算装置1は、処理時間を短く、計算コストを低くすることができる。
【0045】
なお、本実施形態では、一次微分フィルタの一例としてソーベルフィルタ30を説明したが、本発明に適用可能な一次微分フィルタは、これに限定されない。例えば、本発明では、一次微分フィルタとして、RobertsフィルタまたはPrewittフィルタを用いることもできる。
【0046】
なお、本実施形態では、画像ボケ量計算装置1が、入力画像Iとして静止画を扱うこととして説明したが、入力画像Iとして静止画を扱うこともできる。
【0047】
なお、本実施形態では、画像ボケ量計算装置1を独立した装置として説明したが、本発明では、一般的なコンピュータのハードウェア資源を、前記した各手段として協調動作させる画像ボケ量計算プログラムによって実現することもできる。このプログラムは、通信回線を介して配布しても良く、CD−ROMやフラッシュメモリ等の記録媒体に書き込んで配布しても良い。
【0048】
なお、図8では、ステップS2〜S4の処理を実行してから、ステップS5〜S7の処理を実行することとして説明したが、本発明は、これに限定されない。例えば、図8において、ステップS2〜S4の処理と、ステップS5〜S7の処理とを実行する順番を入れ替えてもよい。
【実施例】
【0049】
(実施例1)
以下、本発明の実施例1として、本発明の効果について説明する。ここでは、クロック周波数が2.8GHzでデュアルコアのコンピュータに画像ボケ量計算プログラムをインストールして、図1と同等の画像ボケ量計算装置を準備した。以下、本発明の実施例1に係る画像ボケ量計算装置を「画像ボケ量計算装置1B」と呼ぶ。
【0050】
また、劣化が少ない非圧縮の高品質実写画像に対して、1×5、1×9、1×13、1×17、1×21、1×25の水平方向平滑化(移動平均)フィルタをそれぞれ適用して、ボケを発生させた入力画像Iを複数準備した。そして、この画像ボケ量計算装置1Bに各入力画像Iを入力して、各入力画像Iの画像ボケ量を計算させると共に、画像ボケ量の計算に要する処理時間(平均値)を測定した。
【0051】
ここで、画像ボケ量計算装置1Bが計算した画像ボケ量を図9に示す。この図9では、横軸が水平方向平滑化フィルタにおける平滑化画素数であり、縦軸が画像ボケ量計算装置1Bで計算した画像ボケ量である。図9に示すように、各水平方向平滑化フィルタで発生させたボケに対して、画像ボケ量計算装置1Bで計算した画像ボケ量が線形で単調増加している。つまり、画像ボケ量計算装置1Bは、画像ボケ量を正確に計算できることがわかる。
【0052】
以下、画像ボケ量計算装置1Bの計算コストと、従来技術の計算コストを比較した結果を説明する。ここで、従来技術として知られている画像ボケ検出手法を、実施例1と同一性能のコンピュータで実装した。これら従来技術を比較例1〜3とする。そして、比較例1〜3の手法でそれぞれ、実施例1と同一の入力画像Iから画像ボケ量を計算し、そのときの処理時間(平均値)を計測した。その結果を下記の表1に示す。この表1に示すように、画像ボケ量計算装置1Bは、比較例1〜3の手法と比べて処理時間が短く、計算コストを低減できることがわかる。
【0053】
【表1】
【0054】
なお、比較例1〜3の手法は、下記の文献に記載されている。
比較例1:Y.-C. Chung, J.-M. Wang, R. R. Bailey, S.-W. Chen, and S.-L. Chang, “A non-parametric blur measure based on edge analysis for image processing applications,” Proc. of IEEE CIS, 2004, pp. 356-360.
比較例2:R. Ferzli and L. J. Karam, “Human visual system based no-reference objective image sharpness metric,” Proc. of ICIP, 2006, pp. 2949-2952.
比較例3:J. Ko and C. Kim, “Low cost blur image detection and estimation for mobile devices,” Proc. of ICACT, 2009, pp. 1605-1610.
【0055】
(実施例2)
近年、ジッター抑制機能を付加したAR(拡張現実:Augmented Reality)が注目されている。このARアプリケーションでは、撮影映像のフレーム毎にカメラの姿勢を正確に推定する必要がある。一般的には、エッジや点など画像特徴を追跡し、その追跡情報からカメラ姿勢を推定できる。例えば、動きボケを誤って追跡した場合、ARアプリケーションには、動きボケがジッターとして現れる。すなわち、動きボケを正確かつ高速に推定することがARアプリケーションとって重要である。つまり、本発明に係る画像ボケ量計算装置1は、ARアプリケーションに最適と言える。
【0056】
ここで、動きボケ量とカメラの動き強度とが、本発明者らの実験によって、線形関係であることがわかった。従って、動きボケ量を用いて、カメラの動き強度の推定精度を向上させることができる。すなわち、推定したカメラの動きより大きい画像特徴の動きを無視することで、ARアプリケーションにおいて、ジッターを抑制できる。以下、この手法を実現したカメラ姿勢推定装置の効果について、実施例2として説明する。
【0057】
図10(a)〜(c)および図11(a)〜(c)では推定結果を示す線が細かく揺れており、ジッターが強く現れている。その一方、カメラ姿勢推定装置は、図12(a)〜(c)および図13(a)〜(c)に示すように、その線の揺れが少なく、ジッターを抑制している。なお、図10〜図13において、横軸が撮影映像のフレームであり、縦軸がカメラの動き強度である。また、図10,図12のt1,t2,t3がカメラの並進であり、図11および図13のr1,r2,r3がカメラの回転である。
【0058】
また、ジッター抑制前とジッター抑制後とにおいて、カメラの姿勢推定値の空間上の誤差を求めた結果を下記の表2に示す。さらに、カメラ姿勢推定装置が求めたカメラの動き強度を図14に示す。以上のように、図10〜図14および表2から、本発明の実施例2に係るカメラ姿勢推定装置は、ジッターを大きく抑制できることがわかる。
【0059】
【表2】
【産業上の利用可能性】
【0060】
本発明に係る画像ボケ量計算装置は、例えば、画像解析、画像修復、画像強調、画像セグメンテーション、カメラトラッキングまたは被写体トラッキングに利用することができる。
【符号の説明】
【0061】
1 画像ボケ量計算装置
10 ソーベルフィルタ(一次微分フィルタ)
20 エッジ検出手段
21 水平エッジ検出部
23 垂直エッジ検出部
30 開始点・終了点検出手段
31 水平エッジ開始点・終了点検出部
33 垂直エッジ開始点・終了点検出部
40 画像ボケ量計算手段
41 垂直方向画像ボケ量計算部
43 水平方向画像ボケ量計算部
50 画像ボケ量平均手段
【技術分野】
【0001】
本発明は、被写体が撮影された入力画像の画像ボケ量を計算する画像ボケ量計算装置およびそのプログラムに関する。
【背景技術】
【0002】
従来から、被写体を撮影した入力画像において、ボケを検出することは広く行われている。この入力画像において、ボケが発生しているボケ領域は、被写体または他の模様のエッジ付近に発生することが多い。
【0003】
エッジ付近のボケが輝度勾配を生じるため、この輝度勾配を得られるソーベルフィルタが、広く利用されている(例えば、非特許文献1)。ここで、ソーベルフィルタは、入力画像に適用することで微分画像を生成し、その微分画像から輝度勾配を得ることができる。より具体的には、ソーベルフィルタは、下記の式(1)に示すように、入力画像Aに対して、垂直方向および水平方向にそれぞれ3×3カーネルを畳み込むことで、水平方向の微分画像Gxと、垂直方向の微分画像Gyとを生成する。なお、式(1)において、「*」は、2次元の畳み込みオペレータを示す。
【0004】
【数1】
【0005】
また、従来から、ソーベルフィルタを利用したボケ、絵柄などの検出手法が提案されている(例えば、特許文献1)。この特許文献1に記載の発明は、リファレンス画像を用いた検出手法である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平7−175926号公報
【非特許文献】
【0007】
【非特許文献1】Sobel operator:http://en.wikipedia.org/wiki/Sobel_operator
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、特許文献1に記載の発明は、リファレンス画像を生成するために処理時間が余計に必要となる。ここで、例えば、カメラレンズのフォーカスチェック、カメラトラッキング、被写体トラッキングなどのボケ検出を利用するアプリケーションでは、ボケ検出にかかる時間が重要な要素となる。このため、処理時間が短く、計算コストが低いボケ検出手法が、ユーザから強く要望されている。
【0009】
そこで、本発明は、前記した問題を解決し、処理時間が短く、計算コストが低い画像ボケ量計算装置およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
前記した課題に鑑みて、本願第1発明に係る画像ボケ量計算装置は、被写体を撮影した入力画像の画像ボケ量を計算する画像ボケ量計算装置において、一次微分フィルタと、エッジ検出手段と、開始点・終了点検出手段と、画像ボケ量計算手段と、画像ボケ量平均手段とを備えることを特徴とする。
【0011】
かかる構成によれば、画像ボケ量計算装置は、一次微分フィルタによって、前記入力画像が入力されると共に、入力された前記入力画像から、当該入力画像のエッジを示す水平方向および垂直方向の微分画像を生成する。また、画像ボケ量計算装置は、エッジ検出手段によって、前記一次微分フィルタが生成した水平方向および垂直方向の微分画像から、前記エッジを検出する。そして、画像ボケ量計算装置は、開始点・終了点検出手段によって、前記エッジ検出手段が検出したエッジごとに、前記エッジの開始点および終了点を検出する。
【0012】
また、画像ボケ量計算装置は、画像ボケ量計算手段によって、前記開始点・終了点検出手段が検出した開始点と終了点との輝度値の差と、前記開始点と前記終了点との輝度勾配の平均値とを算出すると共に、前記輝度値の差を前記輝度勾配の平均値で除算した値に基づいて、前記水平方向および前記垂直方向で前記画像ボケ量を計算する。つまり、画像ボケ量計算手段は、画像ボケ量が輝度勾配に反比例する性質を利用して、前記輝度値の差および前記輝度勾配の平均値を用いて画像ボケ量を計算するので、リファレンス画像を用いる必要がない。
【0013】
また、画像ボケ量計算装置は、画像ボケ量平均手段によって、前記画像ボケ量計算手段が計算した前記水平方向および前記垂直方向の前記画像ボケ量を平均する。
【0014】
本願第2発明に係る画像ボケ量計算装置は、前記画像ボケ量計算手段が、前記エッジの数をNとし、k番目の前記エッジの開始点をxSとし(1≦k≦N)、前記k番目のエッジの終了点をxEとし、前記k番目のエッジの開始点xSの輝度値をek(xS)とし、前記k番目のエッジの終了点xEの輝度値をek(xE)とし、前記k番目のエッジの開始点xSと終了点xEとの輝度値の差をHkとし、前記k番目のエッジの開始点xSから終了点xEまでの輝度勾配∇ek(x)の平均値をSkとしたとき、下記の式(2)を用いて、前記水平方向および前記垂直方向で前記画像ボケ量σを計算することが好ましい。
【0015】
なお、本願第1発明に係る画像ボケ量計算装置は、コンピュータを、一次微分フィルタ、エッジ検出手段、開始点・終了点検出手段、画像ボケ量計算手段、画像ボケ量平均手段として機能させる画像ボケ量計算プログラムによって実現することもできる。
【発明の効果】
【0016】
本発明によれば、リファレンス画像を用いることなく、画像ボケ量を計算できるため、処理時間を短く、計算コストを低くすることができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態に係る画像ボケ量計算装置の構成を示すブロック図である。
【図2】本発明の実施形態において、入力画像の一例を示す図である。
【図3】本発明の実施形態において、水平方向の微分画像の一例を示す図である。
【図4】本発明の実施形態において、垂直方向の微分画像の一例を示す図である。
【図5】本発明の実施形態において、水平エッジの開始点および終了点の検出を説明する図である。
【図6】本発明の実施形態において、プロファイルを示す図である。
【図7】本発明の実施形態において、垂直エッジの開始点および終了点の検出を説明する図である。
【図8】図1の画像ボケ量計算装置の動作を示すフローチャートである。
【図9】本発明の実施例1において、画像ボケ量の計算結果を示すグラフである。
【図10】本発明の実施例2において、ジッター抑制前のカメラ姿勢推定結果を示すグラフであり、(a)〜(c)はそれぞれカメラの並進させたときのグラフである。
【図11】本発明の実施例2において、ジッター抑制前のカメラ姿勢推定結果を示すグラフであり、(a)〜(c)はそれぞれカメラの回転させたときのグラフである。
【図12】本発明の実施例2において、ジッター抑制後のカメラ姿勢推定結果を示すグラフであり、(a)〜(c)はそれぞれカメラの並進させたときのグラフである。
【図13】本発明の実施例2において、ジッター抑制後のカメラ姿勢推定結果を示すグラフであり、(a)〜(c)はそれぞれカメラの回転させたときのグラフである。
【図14】本発明の実施例2において、カメラの動き強度を示すグラフである。
【発明を実施するための形態】
【0018】
[画像ボケ量計算装置の構成]
以下、本発明の実施形態について、適宜図面を参照しながら詳細に説明する。
図1に示すように、本発明の実施形態に係る画像ボケ量計算装置1は、被写体を撮影した入力画像の画像ボケ量を計算するものであり、ソーベルフィルタ(一次微分フィルタ)10と、エッジ検出手段20と、開始点・終了点検出手段30と、画像ボケ量計算手段40と、画像ボケ量平均手段50とを備える。なお、画像ボケ量とは、入力画像Iに含まれる被写体がどの程度ボケているかを示す数値である。
【0019】
ソーベルフィルタ10は、図示を省略したカメラから入力画像(静止画)Iが入力されると共に、この入力画像Iから、水平方向および垂直方向の微分画像Gx,Gyを生成するものである。具体的には、ソーベルフィルタ10は、前記した式(1)に示すように、入力画像Iに対して、垂直方向および水平方向にそれぞれ3×3カーネルを畳み込むことで、水平方向の微分画像Gxと、垂直方向の微分画像Gyとを生成する。そして、ソーベルフィルタ10は、生成した微分画像Gyを水平エッジ検出部21に出力し、生成した微分画像Gxを垂直エッジ検出部23に出力する。なお、ソーベルフィルタ10としては、例えば、前記した非特許文献1に記載された技術を利用することができる。
【0020】
水平方向の微分画像Gxは、入力画像Iに含まれる垂直エッジを示す画像である。例えば、図2の入力画像Iをソーベルフィルタ10に入力した場合、図3に示すような微分画像Gxが生成される。
垂直方向の微分画像Gyは、入力画像Iに含まれる水平エッジを示す画像である。例えば、図2の入力画像Iをソーベルフィルタ10に入力した場合、図4に示すような微分画像Gyが生成される。
【0021】
エッジ検出手段20は、ソーベルフィルタ10が生成した微分画像Gx,Gyからエッジを検出するものであり、水平エッジ検出部21と、垂直エッジ検出部23とを備える。
【0022】
水平エッジ検出部21は、ソーベルフィルタ10から微分画像Gyが入力されると共に、入力された微分画像Gyに含まれる水平エッジを検出する。例えば、水平エッジ検出部21は、この微分画像Gyに閾値処理を施して、画像ボケ量の計算対象となる水平エッジを検出する。そして、水平エッジ検出部21は、検出した水平エッジの各画素位置をボケ計算対象座標(x,y)として、水平エッジ開始点・終了点検出部31に出力する。
【0023】
垂直エッジ検出部23は、ソーベルフィルタ10から微分画像Gxが入力されると共に、入力された微分画像Gxに含まれる垂直エッジを検出する。例えば、垂直エッジ検出部23は、この微分画像Gxに閾値処理を施して、画像ボケ量の計算対象となる垂直エッジを検出する。そして、垂直エッジ検出部23は、検出した垂直エッジの各画素位置をボケ計算対象座標(x,y)として、垂直エッジ開始点・終了点検出部33に出力する。
【0024】
開始点・終了点検出手段30は、エッジ検出手段20が検出したエッジごとに、開始点xSおよびエッジの終了点xEを検出するものであり、水平エッジ開始点・終了点検出部31と、垂直エッジ開始点・終了点検出部33とを備える。
【0025】
水平エッジ開始点・終了点検出部31は、カメラから入力画像Iが入力され、水平エッジ検出部21からボケ計算対象座標(x,y)が入力される。そして、水平エッジ開始点・終了点検出部31は、入力画像Iのボケ計算対象座標(x,y)で表される水平エッジに対して、その水平エッジの上部および下部である開始点(最近傍極大値)xSと終了点(最近傍極小値)xEとを検出する。その後、水平エッジ開始点・終了点検出部31は、検出した開始点xSおよび終了点xEと、入力画像Iとを垂直方向画像ボケ量計算部41に出力する。
【0026】
ここで、図5を参照して、水平エッジでの開始点xSおよび終了点xEの検出について説明する。図5では、被写体Objの外周部でボケが発生しており、ドットの濃淡で輝度値の高低を図示した。つまり、被写体Objの中心部では輝度値が最も低く、被写体Objの外周部に向かうにつれ、輝度値が徐々に高くなることを示している。
【0027】
また、図5では、水平エッジの方向を矢印Egとして図示すると共に、矢印Egに直交する仮想線αを図示した。仮想線αは開始点xSおよび終了点xEの検出を説明するために図示したものである。
【0028】
図5に示すように、微分画像Gyでは、例えば、被写体Objの上部に矢印Egの方向で水平エッジが検出される。この場合、水平エッジ開始点・終了点検出部31は、垂直方向の画像ボケ量を計算するために、矢印Egに直交する仮想線αの方向で水平エッジの開始点xSおよび終了点xEを検出する。具体的には、水平エッジ開始点・終了点検出部31は、仮想線α上でボケが始まる位置、すなわち、水平エッジの下部を開始点(最近傍極大値)xSとして検出する。また、水平エッジ開始点・終了点検出部31は、仮想線α上でボケが終了する位置、すなわち、水平エッジの上部を終了点(最近傍極小値)xEとして検出する。
【0029】
この水平エッジのプロファイルを図示すると、図6のようになる。図6は、画素位置と輝度値との関係を示しており、横軸が画素位置(Pixel Position)であり、縦軸が輝度値(Pixel intensity)である。この場合、図6のプロファイルに微分処理を施すと、開始点xSおよび終了点xEにそれぞれ、最近傍極大値と最近傍極小値とが現れる。つまり、水平エッジ開始点・終了点検出部31は、微分処理によって現れる最近傍極大値および最近傍極小値を、開始点xSおよび終了点xEとしてそれぞれ検出することになる。
【0030】
垂直エッジ開始点・終了点検出部33は、カメラから入力画像Iが入力され、垂直エッジ検出部23からボケ計算対象座標(x,y)が入力される。そして、垂直エッジ開始点・終了点検出部33は、水平エッジ開始点・終了点検出部31と同様、入力画像Iのボケ計算対象座標(x,y)で表される垂直エッジに対して、その垂直エッジの左右の開始点(最近傍極大値)xSおよび終了点(最近傍極小値)xEを検出する。その後、垂直エッジ開始点・終了点検出部33は、検出した開始点xSおよび終了点xEと、入力画像Iとを水平方向画像ボケ量計算部43に出力する。
【0031】
例えば、図7に示すように、被写体Objの左右において、矢印Egの方向で垂直エッジがそれぞれ検出されたとする。この場合、各垂直エッジは、被写体Objの左右反対側に位置するため、輝度勾配が逆方向になるプロファイルとして表すことができる(図7拡大図参照)。
【0032】
画像ボケ量計算手段40は、開始点・終了点検出手段30が検出した開始点xSおよび終了点xEとの輝度値の差と、開始点xSおよび終了点xEとの輝度勾配の平均値とを算出すると共に、輝度値の差を輝度勾配の平均値で除算した値に基づいて、水平方向および垂直方向で画像ボケ量を計算するものである。このため、画像ボケ量計算手段40は、垂直方向画像ボケ量計算部41と、水平方向画像ボケ量計算部43とを備える。
【0033】
垂直方向画像ボケ量計算部41は、水平エッジ開始点・終了点検出部31から開始点xSおよび終了点xEと入力画像Iとが入力されると共に、入力画像I上において、開始点xSおよび終了点xEとの輝度値の差Hkと、開始点xSから終了点xEまでの輝度勾配の平均値Skとを算出する。
【0034】
以下、図6に戻り、垂直方向画像ボケ量計算部41の詳細について説明する(適宜図1参照)。図6に示すように、垂直方向画像ボケ量計算部41は、入力画像I上において、水平エッジの開始点xSにおける輝度値ek(xS)と、水平エッジの終了点xEにおける輝度値ek(xE)との差分絶対値を、輝度値の差Hkとして計算する。
【0035】
また、垂直方向画像ボケ量計算部41は、入力画像I上において、水平エッジの輝度値がek(x)であるとき、開始点xSから終了点xEまでの間、隣接画素同士の輝度勾配∇ek(x)を計算する。そして、垂直方向画像ボケ量計算部41は、隣接画素同士の輝度勾配∇ek(x)を開始点xSから終了点xEまでの間で平均して、輝度勾配の平均値Skを計算する。
【0036】
そして、垂直方向画像ボケ量計算部41は、輝度値の差Hkを輝度勾配の平均値Skで除算した値に基づいて、垂直方向の画像ボケ量を計算する。具体的には、垂直方向画像ボケ量計算部41は、下記の式(2)に示すように、水平エッジの輝度値の差Hkを輝度勾配の平均値Skで除算した除算値を計算し、水平エッジにおける除算値の平均を計算して、画像ボケ量σを計算する。つまり、垂直方向画像ボケ量計算部41は、画像ボケ量が輝度勾配に反比例する性質を利用して、画像ボケ量σを計算している。その後、垂直方向画像ボケ量計算部41は、計算した画像ボケ量σを、垂直方向の画像ボケ量σvとして画像ボケ量平均手段50に出力する。なお、式(2)において、Nは微分画像Gyから検出された水平エッジの数を示し、kは何番目のエッジであるかを示す(1≦k≦N)。
【0037】
【数2】
【0038】
水平方向画像ボケ量計算部43は、垂直エッジ開始点・終了点検出部33から開始点xSおよび終了点xEと入力画像Iとが入力されると共に、入力画像I上において、開始点xSおよび終了点xEとの輝度値の差Hkと、開始点xSおよび終了点xEとの輝度勾配の平均値Skとを算出する。そして、水平方向画像ボケ量計算部43は、垂直方向画像ボケ量計算部41と同様、前記した式(2)を用いて、水平方向の画像ボケ量σhを計算して画像ボケ量平均手段50に出力する。
【0039】
なお、水平方向画像ボケ量計算部43で画像ボケ量を計算する場合、前記した式(2)において、垂直エッジの開始点xSにおける輝度値をek(xS)、垂直エッジの終了点xEにおける輝度値をek(xE)、垂直エッジの輝度値をek(x)、垂直エッジにおける隣接画素同士の輝度勾配∇ek(x)、垂直エッジの輝度値の差をHk、垂直エッジの輝度勾配の平均値をSk、微分画像Gxから検出された垂直エッジの数をNと読み替える。
【0040】
画像ボケ量平均手段50は、垂直方向画像ボケ量計算部41から垂直方向の画像ボケ量σvが入力され、水平方向画像ボケ量計算部43から水平方向の画像ボケ量σhが入力される。そして、画像ボケ量平均手段50は、水平方向の画像ボケ量σhと、垂直方向の画像ボケ量σvとの平均(σh+σv)/2を計算し、この平均値を画像ボケ量σ´として出力する。
【0041】
[画像ボケ量計算装置の動作]
以下、図8を参照して、図1の画像ボケ量計算装置1の動作について説明する。
画像ボケ量計算装置1は、ソーベルフィルタ10によって、入力画像Iから微分画像Gx,Gyを生成する(ステップS1)。そして、画像ボケ量計算装置1は、水平エッジ検出部21によって、微分画像Gyに含まれる水平エッジを検出する(ステップS2)。
【0042】
画像ボケ量計算装置1は、水平エッジ開始点・終了点検出部31によって、水平エッジから開始点xSおよび終了点xEを検出する(ステップS3)。そして、画像ボケ量計算装置1は、垂直方向画像ボケ量計算部41によって、前記した式(2)を用いて、垂直方向の画像ボケ量σvを計算する(ステップS4)。
【0043】
画像ボケ量計算装置1は、垂直エッジ検出部23によって、微分画像Gxに含まれる垂直エッジを検出する(ステップS5)。また、画像ボケ量計算装置1は、垂直エッジ開始点・終了点検出部33によって、垂直エッジから開始点xSおよび終了点xEを検出する(ステップS6)。そして、画像ボケ量計算装置1は、水平方向画像ボケ量計算部43によって、前記した式(2)を用いて、水平方向で画像ボケ量σhを計算する(ステップS7)。さらに、画像ボケ量計算装置1は、画像ボケ量平均手段50によって、水平方向の画像ボケ量σhと、垂直方向の画像ボケ量σvとの平均値を画像ボケ量σ´として出力する(ステップS8)。
【0044】
以上のように、本発明の実施形態に係る画像ボケ量計算装置1は、画像ボケ量が輝度勾配に反比例する性質を利用して、前記した式(2)に示すように、輝度値の差を輝度勾配の平均値で除算した値に基づいて画像ボケ量を計算するので、リファレンス画像を用いる必要がない。このため、画像ボケ量計算装置1は、処理時間を短く、計算コストを低くすることができる。
【0045】
なお、本実施形態では、一次微分フィルタの一例としてソーベルフィルタ30を説明したが、本発明に適用可能な一次微分フィルタは、これに限定されない。例えば、本発明では、一次微分フィルタとして、RobertsフィルタまたはPrewittフィルタを用いることもできる。
【0046】
なお、本実施形態では、画像ボケ量計算装置1が、入力画像Iとして静止画を扱うこととして説明したが、入力画像Iとして静止画を扱うこともできる。
【0047】
なお、本実施形態では、画像ボケ量計算装置1を独立した装置として説明したが、本発明では、一般的なコンピュータのハードウェア資源を、前記した各手段として協調動作させる画像ボケ量計算プログラムによって実現することもできる。このプログラムは、通信回線を介して配布しても良く、CD−ROMやフラッシュメモリ等の記録媒体に書き込んで配布しても良い。
【0048】
なお、図8では、ステップS2〜S4の処理を実行してから、ステップS5〜S7の処理を実行することとして説明したが、本発明は、これに限定されない。例えば、図8において、ステップS2〜S4の処理と、ステップS5〜S7の処理とを実行する順番を入れ替えてもよい。
【実施例】
【0049】
(実施例1)
以下、本発明の実施例1として、本発明の効果について説明する。ここでは、クロック周波数が2.8GHzでデュアルコアのコンピュータに画像ボケ量計算プログラムをインストールして、図1と同等の画像ボケ量計算装置を準備した。以下、本発明の実施例1に係る画像ボケ量計算装置を「画像ボケ量計算装置1B」と呼ぶ。
【0050】
また、劣化が少ない非圧縮の高品質実写画像に対して、1×5、1×9、1×13、1×17、1×21、1×25の水平方向平滑化(移動平均)フィルタをそれぞれ適用して、ボケを発生させた入力画像Iを複数準備した。そして、この画像ボケ量計算装置1Bに各入力画像Iを入力して、各入力画像Iの画像ボケ量を計算させると共に、画像ボケ量の計算に要する処理時間(平均値)を測定した。
【0051】
ここで、画像ボケ量計算装置1Bが計算した画像ボケ量を図9に示す。この図9では、横軸が水平方向平滑化フィルタにおける平滑化画素数であり、縦軸が画像ボケ量計算装置1Bで計算した画像ボケ量である。図9に示すように、各水平方向平滑化フィルタで発生させたボケに対して、画像ボケ量計算装置1Bで計算した画像ボケ量が線形で単調増加している。つまり、画像ボケ量計算装置1Bは、画像ボケ量を正確に計算できることがわかる。
【0052】
以下、画像ボケ量計算装置1Bの計算コストと、従来技術の計算コストを比較した結果を説明する。ここで、従来技術として知られている画像ボケ検出手法を、実施例1と同一性能のコンピュータで実装した。これら従来技術を比較例1〜3とする。そして、比較例1〜3の手法でそれぞれ、実施例1と同一の入力画像Iから画像ボケ量を計算し、そのときの処理時間(平均値)を計測した。その結果を下記の表1に示す。この表1に示すように、画像ボケ量計算装置1Bは、比較例1〜3の手法と比べて処理時間が短く、計算コストを低減できることがわかる。
【0053】
【表1】
【0054】
なお、比較例1〜3の手法は、下記の文献に記載されている。
比較例1:Y.-C. Chung, J.-M. Wang, R. R. Bailey, S.-W. Chen, and S.-L. Chang, “A non-parametric blur measure based on edge analysis for image processing applications,” Proc. of IEEE CIS, 2004, pp. 356-360.
比較例2:R. Ferzli and L. J. Karam, “Human visual system based no-reference objective image sharpness metric,” Proc. of ICIP, 2006, pp. 2949-2952.
比較例3:J. Ko and C. Kim, “Low cost blur image detection and estimation for mobile devices,” Proc. of ICACT, 2009, pp. 1605-1610.
【0055】
(実施例2)
近年、ジッター抑制機能を付加したAR(拡張現実:Augmented Reality)が注目されている。このARアプリケーションでは、撮影映像のフレーム毎にカメラの姿勢を正確に推定する必要がある。一般的には、エッジや点など画像特徴を追跡し、その追跡情報からカメラ姿勢を推定できる。例えば、動きボケを誤って追跡した場合、ARアプリケーションには、動きボケがジッターとして現れる。すなわち、動きボケを正確かつ高速に推定することがARアプリケーションとって重要である。つまり、本発明に係る画像ボケ量計算装置1は、ARアプリケーションに最適と言える。
【0056】
ここで、動きボケ量とカメラの動き強度とが、本発明者らの実験によって、線形関係であることがわかった。従って、動きボケ量を用いて、カメラの動き強度の推定精度を向上させることができる。すなわち、推定したカメラの動きより大きい画像特徴の動きを無視することで、ARアプリケーションにおいて、ジッターを抑制できる。以下、この手法を実現したカメラ姿勢推定装置の効果について、実施例2として説明する。
【0057】
図10(a)〜(c)および図11(a)〜(c)では推定結果を示す線が細かく揺れており、ジッターが強く現れている。その一方、カメラ姿勢推定装置は、図12(a)〜(c)および図13(a)〜(c)に示すように、その線の揺れが少なく、ジッターを抑制している。なお、図10〜図13において、横軸が撮影映像のフレームであり、縦軸がカメラの動き強度である。また、図10,図12のt1,t2,t3がカメラの並進であり、図11および図13のr1,r2,r3がカメラの回転である。
【0058】
また、ジッター抑制前とジッター抑制後とにおいて、カメラの姿勢推定値の空間上の誤差を求めた結果を下記の表2に示す。さらに、カメラ姿勢推定装置が求めたカメラの動き強度を図14に示す。以上のように、図10〜図14および表2から、本発明の実施例2に係るカメラ姿勢推定装置は、ジッターを大きく抑制できることがわかる。
【0059】
【表2】
【産業上の利用可能性】
【0060】
本発明に係る画像ボケ量計算装置は、例えば、画像解析、画像修復、画像強調、画像セグメンテーション、カメラトラッキングまたは被写体トラッキングに利用することができる。
【符号の説明】
【0061】
1 画像ボケ量計算装置
10 ソーベルフィルタ(一次微分フィルタ)
20 エッジ検出手段
21 水平エッジ検出部
23 垂直エッジ検出部
30 開始点・終了点検出手段
31 水平エッジ開始点・終了点検出部
33 垂直エッジ開始点・終了点検出部
40 画像ボケ量計算手段
41 垂直方向画像ボケ量計算部
43 水平方向画像ボケ量計算部
50 画像ボケ量平均手段
【特許請求の範囲】
【請求項1】
被写体を撮影した入力画像の画像ボケ量を計算する画像ボケ量計算装置において、
前記入力画像が入力されると共に、入力された前記入力画像から、当該入力画像のエッジを示す水平方向および垂直方向の微分画像を生成する一次微分フィルタと、
前記一次微分フィルタが生成した水平方向および垂直方向の微分画像から、前記エッジを検出するエッジ検出手段と、
前記エッジ検出手段が検出したエッジごとに、前記エッジの開始点および終了点を検出する開始点・終了点検出手段と、
前記開始点・終了点検出手段が検出した開始点と終了点との輝度値の差と、前記開始点と前記終了点との輝度勾配の平均値とを算出すると共に、前記輝度値の差を前記輝度勾配の平均値で除算した値に基づいて、前記水平方向および前記垂直方向で前記画像ボケ量を計算する画像ボケ量計算手段と、
前記画像ボケ量計算手段が計算した前記水平方向および前記垂直方向の前記画像ボケ量を平均する画像ボケ量平均手段と、
を備えることを特徴とする画像ボケ量計算装置。
【請求項2】
前記画像ボケ量計算手段は、前記エッジの数をNとし、k番目の前記エッジの開始点をxSとし(1≦k≦N)、前記k番目のエッジの終了点をxEとし、前記k番目のエッジの開始点xSの輝度値をek(xS)とし、前記k番目のエッジの終了点xEの輝度値をek(xE)とし、前記k番目のエッジの開始点xSと終了点xEとの輝度値の差をHkとし、前記k番目のエッジの開始点xSから終了点xEまでの輝度勾配∇ek(x)の平均値をSkとしたとき、下記の式(2)を用いて、前記水平方向および前記垂直方向で前記画像ボケ量σを計算することを特徴とする請求項1に記載の画像ボケ量計算装置。
【数1】
【請求項3】
被写体を撮影した入力画像の画像ボケ量を計算するために、コンピュータを、
前記入力画像が入力されると共に、入力された前記入力画像から、当該入力画像のエッジを示す水平方向および垂直方向の微分画像を生成する一次微分フィルタ、
前記一次微分フィルタが生成した水平方向および垂直方向の微分画像から、前記エッジを検出するエッジ検出手段、
前記エッジ検出手段が検出したエッジごとに、前記エッジの開始点および終了点を検出する開始点・終了点検出手段、
前記開始点・終了点検出手段が検出した開始点と終了点との輝度値の差と、前記開始点と前記終了点との輝度勾配の平均値とを算出すると共に、前記輝度値の差を前記輝度勾配の平均値で除算した値に基づいて、前記水平方向および前記垂直方向で前記画像ボケ量を計算する画像ボケ量計算手段、
前記画像ボケ量計算手段が計算した前記水平方向および前記垂直方向の前記画像ボケ量を平均する画像ボケ量平均手段、
として機能させるための画像ボケ量計算プログラム。
【請求項1】
被写体を撮影した入力画像の画像ボケ量を計算する画像ボケ量計算装置において、
前記入力画像が入力されると共に、入力された前記入力画像から、当該入力画像のエッジを示す水平方向および垂直方向の微分画像を生成する一次微分フィルタと、
前記一次微分フィルタが生成した水平方向および垂直方向の微分画像から、前記エッジを検出するエッジ検出手段と、
前記エッジ検出手段が検出したエッジごとに、前記エッジの開始点および終了点を検出する開始点・終了点検出手段と、
前記開始点・終了点検出手段が検出した開始点と終了点との輝度値の差と、前記開始点と前記終了点との輝度勾配の平均値とを算出すると共に、前記輝度値の差を前記輝度勾配の平均値で除算した値に基づいて、前記水平方向および前記垂直方向で前記画像ボケ量を計算する画像ボケ量計算手段と、
前記画像ボケ量計算手段が計算した前記水平方向および前記垂直方向の前記画像ボケ量を平均する画像ボケ量平均手段と、
を備えることを特徴とする画像ボケ量計算装置。
【請求項2】
前記画像ボケ量計算手段は、前記エッジの数をNとし、k番目の前記エッジの開始点をxSとし(1≦k≦N)、前記k番目のエッジの終了点をxEとし、前記k番目のエッジの開始点xSの輝度値をek(xS)とし、前記k番目のエッジの終了点xEの輝度値をek(xE)とし、前記k番目のエッジの開始点xSと終了点xEとの輝度値の差をHkとし、前記k番目のエッジの開始点xSから終了点xEまでの輝度勾配∇ek(x)の平均値をSkとしたとき、下記の式(2)を用いて、前記水平方向および前記垂直方向で前記画像ボケ量σを計算することを特徴とする請求項1に記載の画像ボケ量計算装置。
【数1】
【請求項3】
被写体を撮影した入力画像の画像ボケ量を計算するために、コンピュータを、
前記入力画像が入力されると共に、入力された前記入力画像から、当該入力画像のエッジを示す水平方向および垂直方向の微分画像を生成する一次微分フィルタ、
前記一次微分フィルタが生成した水平方向および垂直方向の微分画像から、前記エッジを検出するエッジ検出手段、
前記エッジ検出手段が検出したエッジごとに、前記エッジの開始点および終了点を検出する開始点・終了点検出手段、
前記開始点・終了点検出手段が検出した開始点と終了点との輝度値の差と、前記開始点と前記終了点との輝度勾配の平均値とを算出すると共に、前記輝度値の差を前記輝度勾配の平均値で除算した値に基づいて、前記水平方向および前記垂直方向で前記画像ボケ量を計算する画像ボケ量計算手段、
前記画像ボケ量計算手段が計算した前記水平方向および前記垂直方向の前記画像ボケ量を平均する画像ボケ量平均手段、
として機能させるための画像ボケ量計算プログラム。
【図1】
【図6】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図7】
【図6】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図7】
【公開番号】特開2012−73703(P2012−73703A)
【公開日】平成24年4月12日(2012.4.12)
【国際特許分類】
【出願番号】特願2010−216395(P2010−216395)
【出願日】平成22年9月28日(2010.9.28)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】
【公開日】平成24年4月12日(2012.4.12)
【国際特許分類】
【出願日】平成22年9月28日(2010.9.28)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】
[ Back to top ]