(58)【調査した分野】(Int.Cl.,DB名)
前記グローバル統計値が、画像における各画素の特徴量の分散であり、分散が大きいほど局所領域のサイズを小さくすることを特徴とする請求項5ないし7のいずれかに記載のシルエット抽出方法。
前記グローバル統計値が、画像における各画素の特徴量の分散であり、分散が大きいほど局所領域のサイズを小さくすることを特徴とする請求項9ないし11のいずれかに記載のシルエット抽出プログラム。
【発明の概要】
【発明が解決しようとする課題】
【0005】
自由視点映像合成におけるオブジェクトの視覚品質は、各カメラ画像のシルエットマスクの精度に大きく依存する。しかしながら、シーンの照度変動、背景変動およびオブジェクトと背景との間の色類似性の影響のため、背景差分法のみでオブジェクトのシルエットを完全に抽出することは難しい。
【0006】
また、背景差分法の結果に基づいてボクセルの占有率を簡単に計算すると、抽出されたオブジェクトにおける欠落領域と不要領域とのトレードオフの問題があるため、ボクセル占有の可能性の閾値を制御して設定することは困難である。たとえば、不要な領域の削除を優先させるためには尤度の閾値を高く設定すれば良いが、欠落した領域の復元を優先させるためには尤度の閾値を低くしなければならない。
【0007】
さらに、3Dボクセル投影に基づくセグメンテーションのみでは、各ピクセルが個別に処理されるため、実際には滑らかなオブジェクト境界が滑らではなくなる。GrabCutによる画像セグメンテーションでは、対象オブジェクトの全体が取り込まれ、背景との類似性のためにセグメント化でオブジェクトが部分的に欠落する可能性がある。
【0008】
本発明の目的は、上記の技術課題を解決し、カメラ等の画像からオブジェクトのシルエットを正確に抽出できるシルエット抽出装置、方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記の目的を達成するために、本発明は、カメラ等の画像からオブジェクトのシルエットを抽出するシルエット抽出装置において、以下の構成を具備した点に特徴がある。
【0010】
(1) 画像ごとに各画素の特徴量に基づいてグローバル統計値を計算する手段と、画像を複数の局所領域R
iに分割する手段と、局所領域R
iごとに各画素の特徴量に基づいてローカル統計値を計算する手段と、グローバル統計値と各局所領域R
iのローカル統計値とに基づいて局所領域R
iごとに閾値th
iを設定する手段と、局所領域R
iごとに画像の各画素の特徴量と背景画像の対応する各画素の特徴量との差分を当該局所領域R
iに固有の閾値th
iと比較してシルエットを抽出する手段とを具備した。
【0011】
(2) 画像を複数の局所領域R
iに分割する際の各局所領域R
iのサイズを前記グローバル統計値に基づいて決定する領域サイズ決定手段を更に具備した。
【0012】
(3) 前記グローバル統計値が画像における各画素の特徴量の分散であり、領域サイズ決定手段は、分散が大きいほど局所領域R
iのサイズを小さくするようにした。
【発明の効果】
【0013】
本発明によれば、以下のような効果が達成される。
【0014】
(1) 単眼の背景差分法により、画像と背景画像との対応する画素値の差分を求めて各画素がシルエット内の画素であるか否かを判断するにあたり、画像を複数の局所領域R
iに分割し、局所領域R
iごとに差分閾値th
iを設定するようにした。したがって、局所領域R
iごとに各画素の特徴量の傾向が大きく異なるような場合でもオブジェクトのシルエットを正確に抽出できるようになる。
【0015】
(2) 各局所領域R
iの大きさを、画像における各画素のピクセル強度の分散(グローバル分散)に応じて可変とし、グローバル分散σ
globが大きいほど各局所領域R
iのサイズを小さくするようにした。したがって、画像を適正数の局所領域R
iに分割することが可能となり、局所領域R
iの増加による処理負荷の上昇を抑えながらシルエット抽出の精度を向上させることが可能になる。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
図1は、本発明の一実施形態に係るシルエット抽出装置の主要部の構成を示した機能ブロック図である。このような装置は、汎用のコンピュータやサーバに各機能を実現するアプリケーション(プログラム)を実装して構成しても良いし、あるいはアプリケーションの一部がハードウェア化またはROM化された専用機や単能機として構成しても良い。
【0018】
多視点画像入力部10は、オブジェクトObjを異なる視点で撮影する複数台のカメラCaj(Ca1,Ca2…)から、
図2に一例を示したカメラ画像I(t)を視点ごとに所定の周期で取得する。シルエット画像生成部20は、各カメラ画像I(t)に基づいてオブジェクトのシルエットを含むシルエット画像S(j)を視点ごとに生成する。
【0019】
前記シルエット画像生成部20において、背景画像取得部21は、オブジェクトObjが存在しない空舞台のカメラ画像I(t)から背景画像を取得する。グローバル統計値取得部22は、カメラ画像I(t)ごとに各画素の特徴量に基づいてカメラ画像全体の統計値(グローバル統計値)を計算する。本実施形態では、カメラ画像I(t)の全画素のピクセル強度の分散すなわちグローバル分散σ
globが計算される。なお、カラー画像の場合は3原色のそれぞれについてμ
globが計算される。
【0020】
領域分割部23は、
図3に一例を示したように、各視点のカメラ画像I(t)を複数の矩形の局所領域R
iに分割する。本実施形態では、カメラ画像I(t)がk個の局所領域R
iに分割されているが、各局所領域R
iのサイズすなわち分割数kはグローバル分散σ
globに依存し、グローバル分散σ
globが大きくなるほど局所領域R
iのサイズは小さくされる。
【0021】
ローカル統計値取得部24は、各カメラ画像I(t)の局所領域R
iごとに各画素の特徴量に基づいて各局所領域R
iに固有の統計値(ローカル統計値)を計算する。本実施形態では、各局所領域R
i内の全画素のピクセル強度に基づいて各局所領域R
iに固有のローカル分散σ
iが計算される。
【0022】
ローカル閾値設定部25は、前記局所領域R
iごとに、カメラ画像I(t)の各画素のピクセル強度と前記背景画像の対応する画素のピクセル強度との差分に基づいて当該局所領域R
i内の各画素がシルエット領域および背景領域のいずれであるかを判別するためのローカル閾値th
iを設定する。
【0023】
本実施形態では、予め用意されている標準的なグローバル閾値th
globを、次式(1)に示したように、グローバル分散σ
globとローカル分散σ
iとの比に基づいて局所領域R
iごとに増減補正することで各ローカル閾値th
iが適応的に求められる。
【0025】
ここで、2つのパラメータA,Bは、グローバル分散σ
globとローカル分散σ
iとの比α(α∈(0,1))に応じて局所閾値th
iを適合させるためのオフセット値であり、一般的にA,Bはいずれも正の値をとるが、一方は「0」であっても良い。
【0026】
判別部26は、局所領域R
iごとに各画素のピクセル強度と前記背景画像の対応する画素のピクセル強度との差分を当該局所領域R
iに固有のローカル閾値th
iと比較する。そして、差分が前記ローカル閾値th
iよりも大きい画素にはシルエット内である旨のラベル「1」を付し、差分値が前記ローカル閾値th
iよりも小さい画素には背景である旨のラベル「0」を付する。
【0027】
シルエット画像生成部27は、全ての画素にラベル「0」またはラベル「1」の付されたシルエット画像S(j)を視点(カメラ)ごとに生成する。本実施形態ではm個のシルエット画像S(1)〜S(m)が生成される。
【0028】
図4は、前記シルエット画像生成部20によるシルエット画像S(j)の生成方法を示したフローチャートであり、時刻tにおいてカメラ画像I(t)ごとに同様の処理が繰り返されてm個のシルエット画像S(1)〜S(m)が生成される。
【0029】
ステップS1では、オブジェクトが映っていない背景画像が、前記背景画像取得部21により取得される。ステップS2では、各カメラCaからカメラ映像I(t)が取り込まれる。ステップS3では、カメラ画像I(t)の各画素のピクセル強度に基づいて、カメラ画像全体でのピクセル強度のグローバル分散σ
globが、前記グローバル統計値取得部22により計算、取得される。
【0030】
ステップS4では、前記
図2に示したように、カメラ画像I(t)が前記領域分割部23によりk個の局所領域R
1,R
2…R
i…R
kに分割される。したがって、各カメラ画像I(t)は次式(2)で表される。
【0032】
ステップS5では、局所領域R
iの一つが選択される。ステップS6では、当該局所領域R
iの各画素のピクセル強度に基づいて、その統計値であるピクセル強度のローカル分散σ
iが前記ローカル統計値取得部24により計算、取得される。
【0033】
ステップS7では、前記ローカル分散σ
iに基づいて当該局所領域R
iに固有の閾値th
iが、前記ローカル閾値設定部25により上式(1)に基づいて計算される。ステップS8では、前記判別部26が局所領域R
iごとに、各画素のピクセル強度と背景画像の対応する画素のピクセル強度との差分を前記適応的閾値th
iと比較し、差分が閾値th
iよりも大きければシルエットの画素、小さければ背景の画素と判別する。
【0034】
ステップS9では、全ての局所領域R
iに関して上記の識別が完了したか否が判断される。完了していなければステップS5へ戻り、次の局所領域R
iに対して同様の処理が繰り返される。全ての局所領域R
iの各画素について前記判別が完了するとステップS10へ進み、前記シルエット画像生成部27によりシルエット画像S(j)が生成される。
【0035】
図5は、本発明に係る適応的閾値th
iを採用して生成したシルエット画像S(j)[同図(a)]と、従来技術のグローバル閾値th
globを採用して生成したシルエット画像S(j)[同図(b)]とを比較した図であり、適応的閾値th
iを採用することでシルエットを正確に抽出できることが判る。
【0036】
本実施形態によれば、単眼の背景差分法によりカメラ画像と背景画像とを対応する画素値の差分に基づいて各画素がシルエット内の画素であるか否かを判断するにあたり、カメラ画像を複数の局所領域R
iに分割し、局所領域R
iごとに差分閾値th
iを設定するようにした。したがって、局所領域R
iごとに各画素の特徴量の傾向が大きく異なるような場合でもオブジェクトのシルエットを正確に抽出できるようになる。
【0037】
また、各局所領域R
iの大きさを、カメラ画像における各画素のピクセル強度の分散(グローバル分散)に応じて可変とし、グローバル分散σ
globが大きいほど各局所領域R
iのサイズを小さくするようにした。したがって、カメラ画像を適正数の局所領域R
iに分割することが可能となり、局所領域R
iの増加による処理負荷の上昇を抑えながらシルエット抽出の精度を向上させることが可能になる。
【0038】
図1へ戻り、三次元形状モデル生成部30は、異なる視点ごとに生成されたシルエット画像S(j)を実空間に投影した視体積の中にオブジェクトが含まれるという制約に基づいて、視体積交差法により、各シルエット画像S(1)〜S(m)に対応する視体積の共通部分をオブジェクトの三次元形状(ボクセルデータの集合)と推定し、3次元ボクセル空間におけるオブジェクトの存在領域を示すVisual Hullを復元する。
【0039】
3Dモデル修正部40は、ボクセルデータ投影部41を備え、Visual Hull内の各ボクセルデータを各視点のシルエット画像S(j)に投影する。そして、投影先がシルエット内である確率を確率計算部42により計算し、確率の低いボクセルデータを排除することで前記Visual Hullの形状を修正する。
【0040】
ここで、各シルエット画像S(j)の各座標(x,y)に位置する画素をa
(i)(x,y)と表記し(以下、a
(i)と簡略化する)、3D空間内の各座標(x,y,z)に位置するボクセルをv(x,y,z)と表記する(以下、vと簡略化する)と、
図6に示したように、各カメラが3次元空間に対してカメラパラメータC
(i)により完全に較正されていれば次式(3)が成立する。
【0042】
そこで、本実施形態では3Dモデル内の全てのボクセルを上式(3)に基づいて各シルエット画像S(j)にそれぞれ投影する。a
(i)の値を得る演算子をΩ(a
(i))と定義すれば、各ボクセルvの投影先a
(i)がシルエットである確率P2d(v)は次式(4)で求められる。
【0044】
そして、各ボクセルvの正当性を評価するための閾値γ∈(0,1)を、隣接する接続や勾配などの局所的なピクセル情報に基づいて定義し、次式(5)に基づいて各ボクセルvに有効ラベル「1」または無効ラベル「0」を付する。そして、無効ラベル「0」を付されたボクセルをVisual Hullから排除することで3Dモデルが修正される。
【0046】
シルエット画像見直し部50は、ボクセルデータ投影部51を備え、前記修正後のVisual Hull内の各ボクセルデータを各視点に投影することで修正されたシルエット画像S(j)を生成する。
【0047】
シルエット画像再見直し部60は、カメラ画像I(t)を多数のスーパーピクセルに分割し、その境界情報に基づいて前記見直し後シルエット画像S(j)_rev1を更に見直し、再見直し後シルエット画像S(j)_rev2を構築する。
【0048】
前記シルエット画像再見直し部60において、スーパーピクセル分割部61は、
図7(a)に模式的に示したように、カメラ画像I(t)を多数のスーパーピクセルU
kに分割する。ここで、スーパーピクセルとは輝度や色等の性質が比較的似ているピクセルを複数まとめた小領域であり、スーパーピクセルを算出するための手法としては、Graph-based手法、Mean Shift手法あるいはNormalized Cut手法などが知られている。各スーパーピクセルU
kはオブジェクトのシルエットを定義するために有益な境界情報を有している。
【0049】
判別部62は、各スーパーピクセルU
k内の全画素を、前記見直し後シルエット画像S(j)_rev1の対応画素に付されたラベルに基づいてシルエット/背景のいずれかに判別する。占有率計算部63は、前記判別結果に基づいて、スーパーピクセルU
kごとに全画素に占めるシルエットの占有率を計算する。
【0050】
ラベリング部64は、次式(6)に示したように、スーパーピクセルU
kごとに、当該スーパーピクセルU
kにおけるシルエットの占有率を、総画素数Tとシルエットの画素数との比(h/T)として求め、占有率と所定の閾値βとの関係に基づいて各スーパーピクセルU
kをラベル付けする。すなわち、占有率(h/T)が閾値βを超えるスーパーピクセルU
kにラベル「1」が付される。
【0052】
修正部65は、ラベル「1」を付されたスーパーピクセルU
kの各画素に対応する前記見直し後マスクS(j)_rev1の各画素値を「1」とする再見直し後マスクS(j)_rev2を獲得する。
【0053】
図7(a),(b)は、前記シルエット画像再見直し部60の機能を模式的に表現した図であり、ここでは3つのスーパーピクセルU
a,U
b,U
cに着目して説明する。
【0054】
前記閾値β=0.6と仮定すると、スーパーピクセルU
aではh/T>βが成立するので当該スーパーピクセルU
aにはラベル「1」が付される。その結果、見直し後マスクS(j)_rev1において当該スーパーピクセルU
a内の各画素の画素値が全て「1」に書き換えられる。
【0055】
これに対して、スーパーピクセルU
b,U
cではh/T>βが成立しないので当該各スーパーピクセルU
b,U
cにはラベル「0」が付される。その結果、見直し後マスクS(j)_rev1において当該スーパーピクセルU
b,U
c内の各画素の画素値が全て「0」に書き換えられる。
【0056】
図8は、本実施形態におけるシルエット画像S(j)の見直し手順を示したフローチャートであり、ステップS21では、複数の視点ごとに生成された複数のシルエット画像S(j)が取得される。ステップS22では、前記三次元形状モデル生成部30において、複数のシルエット画像S(j)に基づいてオブジェクトの3Dモデル(Visual Hull)が初期化される。
【0057】
ステップS23では、前記3Dモデル修正部40において、3Dモデル内の各ボクセルが各シルエット画像S(j)に投影され、ボクセルごとに投影先がシルエット内である確率P2d(v)が、前記確率計算部42により上式(4)に基づいて計算される。ステップS24では、確率P2d(v)の低いボクセルを排除することで3Dモデルの形状が修正される。
【0058】
ステップS25では、前記シルエット画像見直し部50において、前記更新後の3Dモデルの各ボクセルデータを各シルエット画像S(j)に投影し、投影先の各画素にシルエットである旨のラベル「1」を付することで見直し後シルエット画像S(j)_rev1を構築する。
【0059】
ステップS26では、前記シルエット画像再見直し部60において、カメラ画像I(t)が複数のスーパーピクセルU
kに分割される。ステップS27では、スーパーピクセルU
kごとに、見直し後シルエット画像S(j)_rev1においてシルエット内である画素に相当する画素(シルエット相当画素)の占有確率が計算される。
【0060】
ステップS28では、シルエット相当画素の占有確率が所定の閾値を超えるスーパーピクセルU
k内の全ての画素に対応する前記見直し後シルエット画像S(j)_rev1の各画素のラベルをシルエット「1」に書く替えることで再見直し後シルエット画像S(j)_rev2が構築される。ステップS29では、いくつかの後処理後(例えば、形態学的操作、およびフィルタリングなど)が実施されて各シルエット画像が完成する。
【0061】
本実施形態によれば、シルエットに基づいて構築した3Dモデルの各ボクセルデータを各視点のシルエット画像に投影し、投影先がシルエット内の画素である確率の低いボクセルデータを排除することで前記3Dモデルを修正するようにした。したがって、見直し後の3Dモデルの各ボクセルデータを各視点のシルエット画像に投影することで各シルエットを見直す際の精度が向上し、シルエットから不要な領域を正確に排除できるようになる。
【0062】
また、本実施形態によれば、カメラ画像を多数のスーパーピクセルに分割し、各スーパーピクセルの境界情報を用いて各シルエット画像の境界を見直すようにしたので、シルエットの境界を精度良く修正できるようになる。
【0063】
図9は、前記3Dモデル修正部40の他の実施形態の構成を示したブロック図であり、勾配情報反映部43を更に具備した点に特徴がある。
【0064】
上記の実施形態では、前記3Dモデル修正部40が3Dモデルの各ボクセルデータを各シルエット画像S(j)へ投影し、ボクセルデータの投影先がシルエット内である確率P2dに基づいて各ボクセルデータを取捨するものとして説明した。これに対して、本実施形態では投影先のみならず、その近隣画素も考慮して当該投影先がシルエット内であるか否かを判断するようにした点に特徴がある。
【0065】
本実施形態では、各ボクセルの投影先画素の上方向,下方向、右方向および左方向に距離τだけ離れた各画素に付されたラベルを、それぞれ(x,y+τ),(x,y−τ),(x+τ,y),(x−τ,y)としたとき、次式(7)に基づいて勾配情報∇を求め、これを次式(8)に適用することで最終的の当該投影先がシルエット内であるか否かを判断するようにしている。ここで、τは勾配計算におけるステップであり、∇∈[0,4]である。
【0068】
図10は、本実施形態における投影先の判別方法を、τ=1の場合を例にして模式的に示した図であり、同図(a)では、投影先がシルエット内(〇:=1)であり、その上下左右の各方向に隣接する4つの画素の全てが背景(●:=0)である。したがって、∇=4となるので投影先はシルエット内と認識されない。
【0069】
同図(b)では、投影先の画素がシルエット内であり、その上下左右の各方向に隣接する4つの画素のうち、1つのみがシルエット内で他の3つは背景である。したがって、∇=3となるので投影先はシルエット内と認識されない。同様に、同図(c)の例でも∇=2となるので投影先はシルエット内と認識されない。
【0070】
これに対して、同図(d)では投影先がシルエット内であり、その上下左右の各方向に隣接する4つの画素のうち3つがシルエット内なので∇=1となり、同図(e)でも、4つの隣接画素全てがシルエット内なので∇=0となる。したがって、いずれの場合も投影先はシルエット内と認識される。
【0071】
本実施形態によれば、ボクセルデータの投影先がシルエット内の画素として予めラベル付けされていても、その周辺画素の大部分が背景の画素としてラベル付けされている場合のように、投影先がシルエット内である旨のラベル付が妥当ではないと推定される場合にはシルエット内と認識しないようにしたので、外乱等の影響による誤ったラベル付けの影響を排除できるようになる。