【文献】
ファンヴェトクォク 外2名,繰り返し色分布マッチングによる画像セグメンテーション,画像の認識・理解シンポジウム(MIRU2011),情報処理学会,2011年 7月20日,第1240−1247頁
【文献】
Carsten Rother et al.,“GrabCut”− Interactive Foreground Extraction using Iterated Graph Cuts,ACM Transactions on Graphics,ACM,2004年,Vol.23, No.3,Pages 309-314
(58)【調査した分野】(Int.Cl.,DB名)
画像内で対象が予め枠指定された当該枠内の主要オブジェクトと該主要オブジェクト以外の背景を、主要オブジェクトらしさを示す第1のヒストグラムの値が大きいほど値が小さくなるコスト項と、背景らしさを示す第2のヒストグラムの値が大きいほど値が小さくなるコスト項を含むエネルギー関数の最小化処理により、前記枠内の前記主要オブジェクトと前記背景を領域分割する画像領域分割装置であって、
前記枠の枠上の画素値ごと、前記枠の枠外の画素値ごと、および前記枠の枠内の画素値ごとの各ヒストグラムをそれぞれ、枠上ヒストグラム、枠外ヒストグラム、および枠内ヒストグラムとして算出するヒストグラム算出手段と、
前記枠上ヒストグラムで度数値が第1の閾値に対して大きい画素値を特定画素値として抽出する特定画素値抽出手段と、
前記特定画素値での度数値が前記枠外ヒストグラム上で第2の閾値に対して大きくかつ前記枠内ヒストグラム上で第3の閾値に対して小さい場合に、前記特定画素値において前記第2のヒストグラムの度数値が前記第1のヒストグラムの度数値に対して相対的に増加するように該2つの度数値の少なくともいずれかを更新するヒストグラム更新手段と、
を備えることを特徴とする画像領域分割装置。
前記ヒストグラム更新手段は、前記特定画素値での度数値が前記枠外ヒストグラム上で第2の閾値に対して大きくかつ前記枠内ヒストグラム上で第3の閾値に対して小さい場合に、前記特定画素値における前記第2のヒストグラムの度数値を、1よりも大きい倍数である所定数倍して更新する、
ことを特徴とする請求項1に記載の画像領域分割装置。
前記ヒストグラム更新手段は、前記特定画素値での度数値が前記枠外ヒストグラム上で第2の閾値に対して大きくかつ前記枠内ヒストグラム上で第3の閾値に対して小さい場合に、前記特定画素値における前記第2のヒストグラムの度数値に0よりも大きい所定数を加算して更新する、
ことを特徴とする請求項1に記載の画像領域分割装置。
画像内で対象が予め枠指定された当該枠内の主要オブジェクトと該主要オブジェクト以外の背景を、主要オブジェクトらしさを示す第1のヒストグラムの値が大きいほど値が小さくなるコスト項と、背景らしさを示す第2のヒストグラムの値が大きいほど値が小さくなるコスト項を含むエネルギー関数の最小化処理により、前記枠内の前記主要オブジェクトと前記背景を領域分割する画像領域分割方法であって、
前記枠の枠上の画素値ごと、前記枠の枠外の画素値ごと、および前記枠の枠内の画素値ごとの各ヒストグラムをそれぞれ、枠上ヒストグラム、枠外ヒストグラム、および枠内ヒストグラムとして算出するヒストグラム算出ステップと、
前記枠上ヒストグラムで度数値が第1の閾値に対して大きい画素値を特定画素値として抽出する特定画素値抽出ステップと、
前記特定画素値での度数値が前記枠外ヒストグラム上で第2の閾値に対して大きくかつ前記枠内ヒストグラム上で第3の閾値に対して小さい場合に、前記特定画素値において前記第2のヒストグラムの度数値が前記第1のヒストグラムの度数値に対して相対的に増加するように該2つの度数値の少なくともいずれかを更新するヒストグラム更新ステップと、
を備えることを特徴とする画像領域分割方法。
画像内で対象が予め枠指定された当該枠内の主要オブジェクトと該主要オブジェクト以外の背景を、主要オブジェクトらしさを示す第1のヒストグラムの値が大きいほど値が小さくなるコスト項と、背景らしさを示す第2のヒストグラムの値が大きいほど値が小さくなるコスト項を含むエネルギー関数の最小化処理により、前記枠内の前記主要オブジェクトと前記背景を領域分割する画像領域分割装置のコンピュータを、
前記枠の枠上の画素値ごと、前記枠の枠外の画素値ごと、および前記枠の枠内の画素値ごとの各ヒストグラムをそれぞれ、枠上ヒストグラム、枠外ヒストグラム、および枠内ヒストグラムとして算出するヒストグラム算出ステップと、
前記枠上ヒストグラムで度数値が第1の閾値に対して大きい画素値を特定画素値として抽出する特定画素値抽出ステップと、
前記特定画素値での度数値が前記枠外ヒストグラム上で第2の閾値に対して大きくかつ前記枠内ヒストグラム上で第3の閾値に対して小さい場合に、前記特定画素値において前記第2のヒストグラムの度数値が前記第1のヒストグラムの度数値に対して相対的に増加するように該2つの度数値の少なくともいずれかを更新するヒストグラム更新ステップと、
して実行させるためのプログラム。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
【0014】
図1は、本発明の一実施形態に係る画像領域分割装置101のハードウェア構成例を示すブロック図である。
【0015】
この画像領域分割装置101は例えば、いわゆるスマートフォンなどの携帯情報端末であるコンピュータシステム上に実現される。
【0016】
画像領域分割装置101は、CPU(Central Processing Unit:中央演算処理装置)102と、ROM(Read Only Memory)103と、RAM(Random Access Memory)104を備える。また、画像領域分割装置101は、ソリッド記憶装置等の外部記憶装置105と、通信インタフェース106と、タッチパネルディスプレイ装置などの入力装置107および表示装置108を備える。さらに、画像領域分割装置101は、マイクロSDメモリカードやUSB(Universal Serial Bus)メモリカードなどの可搬記録媒体110をセット可能な可搬記録媒体駆動装置109を備える。撮像装置112は、静止画像やビデオ画像を撮像することのできるデジタルカメラ機構であり、レンズ、オートフォーカス駆動制御装置、露出制御装置、撮像センサ等を備える。上述の各機器102〜109および112は、バス111によって相互に接続される。
【0017】
ROM103には、スマートフォン全体の一般的な動作を制御するプログラムのほか、後述する
図3、
図8、および
図9のフローチャートによって示される画像領域分割処理の制御プログラムが記憶されている。CPU102は、ROM103から、この制御プログラムを読み出し、RAM104をワークメモリとして実行する。これにより、後述する
図2の機能ブロックで示される画像領域分割機能が実現され、この結果、例えばユーザが、撮像装置112によって花などを撮像し、入力装置107で範囲指定した画像範囲から、花などの主要オブジェクトをそれ以外の背景から分割する画像領域分割処理が実行される。これにより得られた花などの主要オブジェクト領域の画像データは、ユーザが例えば花の種類を検索するために、通信インタフェース106から特には図示しないインターネットを経由してインターネットに接続される画像検索サーバコンピュータに送信される。このコンピュータ上で、送られた主要オブジェクト領域の花画像データに基づいて花のデータベースが検索される。その結果検索がヒットした花の図鑑情報が、その花の画像データとともにインターネットを経由して通信インタフェース106にて受信され、表示装置108に表示される。
なお、本実施形態による画像領域分割装置101は、携帯情報端末上ではなく、上記サーバコンピュータ上などに実現されてもよい。
【0018】
図2は、
図1の画像領域分割装置101の機能的構成を示す機能ブロック図である。
本実施形態における画像領域分割装置101は、画像内で、例えばユーザにより矩形枠指定された画像範囲内の花などの主要オブジェクトとその主要オブジェクト以外の背景を領域分割する装置として実現される。
【0019】
領域分割手段201は、例えばユーザにより矩形枠指定された画像範囲内の各画素に付与する主要オブジェクトまたは背景を示す領域ラベルを更新しながら、その領域ラベルと各画素の画素値、例えばカラー画素値に基づき、主要オブジェクトを示す画像から算出した例えばカラー画素値ごとの第1のヒストグラム205の値が大きいほど値が小さくなるコスト項と、背景を示す画像から算出した例えばカラー画素値ごとの第2のヒストグラム206の値が大きいほど値が小さくなるコスト項を含むエネルギー関数の最小化処理により、画像内で主要オブジェクトと背景を領域分割する。この領域分割手段201は例えば、Graph Cuts法によりエネルギー関数の最小化処理を実行する。このときの第1のヒストグラムの初期値は例えば、学習用の複数枚の主要オブジェクトを示す画像の例えばカラー画素値ごとのヒストグラムとして算出される。また、第2のヒストグラムの初期値は、学習用の複数枚の背景を示す画像の例えばカラー画素値ごとのヒストグラムとして算出される。
【0020】
ヒストグラム算出手段202は、例えばユーザにより矩形枠指定された画像範囲の枠上の画素値ごと、画像範囲の境界外(例えば矩形枠外)の画素値ごと、および画像範囲の枠内(例えば矩形枠内)の画素値ごとの各ヒストグラムをそれぞれ、枠上ヒストグラム207、枠外ヒストグラム208、および枠内ヒストグラム209として算出する。
【0021】
特定画素値抽出手段203は、枠上ヒストグラム207で、度数値が第1の閾値に対して大きい例えばカラー画素値を特定画素値として抽出する。
【0022】
ヒストグラム更新手段204は、特定画素値での度数値が枠外ヒストグラム208上で第2の閾値に対して大きくかつ枠内ヒストグラム209上で第3の閾値に対して小さい場合に、特定画素値において第2のヒストグラム206の度数値が第1のヒストグラム205の度数値に対して相対的に増加するようにそれら2つの度数値の少なくともいずれかを更新する。この場合、ヒストグラム更新手段204は例えば、次のような更新処理を実行する。特定画素値における第2のヒストグラム206の度数値を、1よりも大きい倍数である所定数倍して更新する。あるいは、特定画素値における第2のヒストグラム206の度数値に0よりも大きい所定数を加算して更新する。さらには逆に、特定画素値における第1のヒストグラム205の度数値が小さくなるように更新してもよい。
【0023】
本特許出願の発明者は、例えば花画像などの領域分割において、例えばユーザが指定した矩形枠の枠上で発生頻度の高い例えばカラー画素値である特定画素値が、矩形枠外でも発生頻度が高く、なおかつ矩形枠内で発生頻度が高くなければ、その特定画素値は背景に属する画素値である可能性が高いとの知見を得た。この知見に基づいて、上記のような場合に、領域分割手段201において領域分割を行うためのエネルギー関数に使用される主要オブジェクトらしさを示す第1のヒストグラム205と背景らしさを示す第2のヒストグラム206の上記特定画素値において、第2のヒストグラム206の度数値が第1のヒストグラム205の度数値に対して相対的に増加するように、ヒストグラム更新手段204において、これら2つの度数値の少なくともいずれかが更新される。これにより、特定画素値を基準として主要オブジェクト領域と背景領域をより明確に領域分割することが可能となる。
【0024】
図3は、本実施形態による画像領域分割処理の全体動作を示すフローチャートである。このフローチャートの処理は、
図8および
図9の詳細処理を示すフローチャートの処理とともに、
図1のCPU102が、ROM103に記憶された制御プログラムを、RAM104をワークメモリとして使用しながら実行する処理として実現される。
【0025】
まず、矩形枠決定処理が実行される(
図3のステップS301)。この処理では、ユーザが、例えば
図1の撮像装置112にて撮像した画像に対して、認識したい物体(例えば花)が存在するおおよその領域に対して、例えばタッチパネル等の入力装置107を用いて、矩形枠を指定する。例えば、タッチパネル上での、指によるスライド動作である。
【0026】
次に、ヒストグラム更新処理が実行される(
図3のステップS302)。この処理では、
図2に示したヒストグラム算出手段202、特定画素値抽出手段203、およびヒストグラム更新手段204の機能が実現される。この処理の詳細については、
図9から
図11で後述する。
【0027】
続いて、画像範囲内の各画素に対して、主要オブジェクトと背景を領域分割する領域分割処理(グラフカット処理)が実行される(
図3のステップS303)。この領域分割処理は、
図2の領域分割手段201の機能を実現する。この処理の詳細については、
図4から
図8で後述する。
【0028】
一度領域分割処理が終了した後、収束判定が行われる(
図3のステップS304)。この収束判定は、以下のいずれかが満たされたときに、YESの判定結果となる。
・繰り返し回数が一定以上になった
・前回前景とされた領域面積と今回前景とされた領域の差が一定以下
【0029】
ステップS304の判定で収束せず、その判定がNOであった場合、前回の領域分割の状況に応じて、ユーザが指定した矩形枠内の後述するコスト関数g
v (X
v )が、次のようにして修正されてデータ更新される(
図3のステップS305)。ステップS303の領域分割処理によって主要オブジェクトと判定された領域のヒストグラムと、事前に用意されている後述するヒストグラムθ(c,0)が、カラー画素値cごとに例えば一定割合で混合(加算)される。これにより、新たな主要オブジェクトらしさを示すヒストグラムθ(c,0)が生成され、それに基づいて新たなコスト関数g
v (X
v )が計算される(後述する数7式等を参照)。同様に、ステップS303の領域分割処理によって背景と判定された領域のヒストグラムと、事前に用意されている後述するヒストグラムθ(c,1)が、カラー画素値cごとに例えば一定割合で混合(加算)される。これにより、新たな背景らしさを示すヒストグラムθ(c,1)が生成され、それに基づいて新たなコスト関数g
v (X
v )が計算される(後述する数8式等を参照)。
【0030】
ステップS304の判定が収束し、その判定がYESになると、
図3のフローチャートで示される領域分割処理は終了とし、現在得られている主要オブジェクト領域が最終結果として出力される。
【0031】
以下に、
図3のステップS303の領域分割処理について、説明する。
いま、
【数1】
を、要素X
v が画像Vにおける画素v(1≦v≦V)に対する領域ラベルを示す領域ラベルベクトルであるとする。この領域ラベルベクトルは、例えば、画素vが主要オブジェクト領域内にあれば要素X
v =0、背景領域内にあれば要素X
v =1となるバイナリベクトルである。すなわち、
【数2】
である。
【0032】
本実施形態において実行される領域分割処理は、画像Vにおいて、次式で定義されるエネルギー関数E(X)を最小にするような数1式の領域ラベルベクトルXを求める処理である。
【数3】
エネルギー最小化処理が実行される結果、領域ラベルベクトルX上で領域ラベル値X
v =0となる画素vの集合として、主要オブジェクト領域が得られる。本実施形態の例でいえば、矩形枠内の花の領域である。なお、領域ラベルベクトルX上で領域ラベル値X
v =1となる画素vの集合が、背景領域(矩形枠外も含む)となる。
【0033】
数3式のエネルギーを最小化するために、次式および
図4で示される重み付き有向グラフ(以下「グラフ」と略す)を定義する。
【数4】
ここで、Vはノード(node)、Eはエッジ(edge)である。このグラフが画像の領域分割に適用される場合は、画像の各画素が各ノードVに対応する。また、画素以外のノードとして、次式および
図4中に示される、
【数5】
と呼ばれる特殊なターミナルが追加される。このソースsを主要オブジェクト領域、シンクtを背景領域に対応付けて考える。また、エッジEは、ノードV間の関係を表現している。周辺の画素との関係を表したエッジEをn−link、各画素とソースs(主要オブジェクト領域に対応)またはシンクt(背景領域に対応)との関係を表したエッジEをt−linkと呼ぶ。
【0034】
いま、ソースsと各画素に対応するノードとを結ぶ各t−linkを、各画素がどの程度主要オブジェクト領域らしいかを示す関係ととらえる。そして、その主要オブジェクト領域らしさを示すコスト値を、数3式第1項に対応付けて、
【数6】
と定義する。ここで、θ(c、0)は、画像の主要オブジェクトの領域から算出したカラー画素値cごとのヒストグラム(出現回数)を示す関数データであり、例えば
図5(a)に示されるように予め得られている。なお、θ(c、0)の全カラー画素値cにわたる総和は1になるように正規化されているものとする。また、I(v)は、入力画像の各画素vにおけるカラー(RGB)画素値である。実際には、カラー(RGB)画素値を輝度値に変換した値の場合もあるが、以下では説明の簡単のために、特に言及しない限り、「カラー(RGB)画素値」または「カラー画素値」と記載する。数6式において、θ(I(v)、0)の値が大きいほど、コスト値は小さくなる。これは、予め得られている主要オブジェクト領域のカラー画素値の中で出現回数が多いものほど、数6式で得られるコスト値が小さくなって、画素vが主要オブジェクト領域中の画素らしいことを意味し、数3式のエネルギー関数E(X)の値を押し下げる結果となる。
【0035】
次に、シンクtと各画素に対応するノードとを結ぶ各t−linkを、各画素がどの程度背景領域らしいかを示す関係ととらえる。そして、その背景領域らしさを示すコスト値を、数3式第1項に対応付けて、
【数7】
と定義する。ここで、θ(c、1)は、画像の背景の領域から算出したカラー画素値cごとのヒストグラム(出現度数)を示す関数データであり、例えば
図5(b)に示されるように予め得られている。なお、θ(c、1)の全カラー画素値cにわたる総和は1になるように正規化されているものとする。I(v)は、数6式の場合と同様に、入力画像の各画素vにおけるカラー(RGB)画素値である。数6式において、θ(I(v)、1)の値が大きいほど、コスト値は小さくなる。これは、予め得られている背景領域のカラー画素値の中で出現回数が多いものほど、数7式で得られるコスト値が小さくなって、画素vが背景領域中の画素らしいことを意味し、数3式のエネルギー関数E(X)の値を押し下げる結果となる。
【0036】
次に、各画素に対応するノードとその周辺画素との関係を示すn−linkのコスト値を、数3式第2項に対応付けて、
【数8】
と定義する。ここで、dist(u,v)は、画素vとその周辺画素uのユークリッド距離を示しており、κは所定の係数である。また、I(u)およびI(v)は、入力画像の各画素uおよびvにおける各カラー(RGB)画素値である。前述したように実際には、カラー(RGB)画素値を輝度値に変換した値であってもよい。画素vおよびその周辺画素uの各領域ラベル値X
u およびX
v が同一(X
u =X
v )となるように選択された場合における数8式のコスト値は0とされて、エネルギーE(X)の計算には影響しなくなる。一方、画素vとその周辺画素uの各領域ラベル値X
u およびX
v が異なる(X
u ≠X
v )ように選択された場合における数8式のコスト値は、例えば
図6に示される特性を有する関数特性となる。すなわち、画素vおよびその周辺画素uの各領域ラベル値X
u およびX
v が異なっていて、かつ画素vおよびその周辺画素uのカラー画素値(輝度値)の差I(u)−I(v)が小さい場合には、数8式で得られるコスト値が大きくなる。この場合には、数3式のエネルギー関数E(X)の値が押し上げられる結果となる。言い換えれば、近傍画素間で、カラー画素値(輝度値)の差が小さい場合には、それらの画素の各領域ラベル値は、互いに異なるようには選択されない。すなわち、その場合には、近傍画素間では領域ラベル値はなるべく同じになって主要オブジェクト領域または背景領域はなるべく変化しないように、制御される。一方、画素vおよびその周辺画素uの各領域ラベル値X
u およびX
v が異なっていて、かつ画素vおよびその周辺画素uのカラー画素値(輝度値)の差I(u)−I(v)が大きい場合には、数8式で得られるコスト値が小さくなる。この場合には、数3式のエネルギー関数E(X)の値が押し下げられる結果となる。言い換えれば、近傍画素間で、カラー画素値の差が大きい場合には、主要オブジェクト領域と背景領域の境界らしいことを意味し、画素vとその周辺画素uとで、領域ラベル値が異なる方向に制御される。
【0037】
以上の定義を用いて、入力画像の各画素vごとに、数6式によって、ソースsと各画素vとを結ぶt−linkのコスト値(主要オブジェクト領域らしさ)が算出される。また、数7式によって、シンクtと各画素vとを結ぶt−linkのコスト値(背景領域らしさ)が算出される。さらに、入力画像の各画素vごとに、数8式によって、画素vとその周辺例えば8方向の各8画素とを結ぶ8本のn−linkのコスト値(境界らしさ)が算出される。
【0038】
そして、理論的には、数1式の領域ラベルベクトルXの全ての領域ラベル値の0または1の組合せごとに、各領域ラベル値に応じて上記数6式、数7式、および数8式の計算結果が選択されながら数3式のエネルギー関数E(X)が計算される。そして、全ての組合せの中でエネルギー関数E(X)の値が最小となる領域ラベルベクトルXを選択することにより、領域ラベルベクトルX上で領域ラベル値X
v =0となる画素vの集合として、主要オブジェクト領域を得ることができる。
【0039】
しかし実際には、領域ラベルベクトルXの全ての領域ラベル値の0または1の組合せ数は、2の画素数乗通りあるため、現実的な時間でエネルギー関数E(X)の最小化処理を計算することができない。
【0040】
そこで、Graph Cuts法では、次のようなアルゴリズムを実行することにより、エネルギー関数E(X)の最小化処理を現実的な時間で計算することを可能にする。
図7は、上述した数6式、数7式で定義されるt−linkと数8式で定義されるn−linkを有するグラフと、領域ラベルベクトルXおよびグラフカットとの関係を、模式的に示した図である。
図7では、理解の容易化のために、画素vは一次元的に示されている。
【0041】
数3式のエネルギー関数E(X)の第1項の計算で、領域ラベルベクトルX中の領域ラベル値が0となるべき主要オブジェクト領域中の画素では、数6式と数7式のうち、主要オブジェクト領域中の画素らしい場合により小さな値となる数6式のコスト値のほうが小さくなる。従って、ある画素において、ソースs側のt−linkが選択されシンクt側のt−linkがカットされて(
図7の702のケース)、数6式を用いて数3式のE(X)の第1項が計算された場合に、その計算結果が小さくなれば、その画素の領域ラベル値としては0が選択される。そして、そのグラフカット状態が採用される。計算結果が小さくならなければ、そのグラフカット状態は採用されず、他のリンクの探索およびグラフカットが試みられる。
【0042】
逆に、領域ラベルベクトルX中の領域ラベル値が1となるべき背景領域中の画素では、数6式と数7式のうち、背景領域中の画素らしい場合により小さな値となる数7式のコスト値のほうが小さくなる。従って、ある画素において、シンクt側のt−linkが選択されソースs側のt−linkはカットされて(
図7の703のケース)、数7式を用いて数3式のE(X)の第1項が計算された場合に、その計算結果が小さくなれば、その画素の領域ラベル値としては1が選択される。そして、そのグラフカット状態が採用される。計算結果が小さくならなければ、そのグラフカット状態は採用されず、他のリンクの探索およびグラフカットが試みられる。
【0043】
一方、数3式のエネルギー関数E(X)の第1項の計算に係る上記領域分割(グラフカット)処理により、領域ラベルベクトルX中の領域ラベル値が0または1で連続すべき主要オブジェクト領域内部または背景領域内部の画素間では、数8式のコスト値が0となる。従って、数8式の計算結果は、エネルギー関数E(X)の第2項のコスト値の計算には影響しない。また、その画素間のn−linkは、数8式がコスト値0を出力するように、カットされずに維持される。
【0044】
ところが、エネルギー関数E(X)の第1項の計算に係る上記領域分割(グラフカット)処理により、近傍画素間で、領域ラベル値が0と1の間で変化した場合に、それらの画素間のカラー画素値(輝度値)の差が小さければ、数8式のコスト値が大きくなる。この結果、数3式のエネルギー関数E(X)の値が押し上げられる。このようなケースは、同一領域内で第1項の値による領域ラベル値の判定がたまたま反転するような場合に相当する。従って、このようなケースでは、エネルギー関数E(X)の値が大きくなって、そのような領域ラベル値の反転は選択されない結果となる。また、この場合には、数8式の計算結果が、上記結果を維持するように、それらの画素間のn−linkは、カットされずに維持される。
【0045】
これに対して、エネルギー関数E(X)の第1項の計算に係る上記領域分割(グラフカット)処理により、近傍画素間で、領域ラベル値が0と1の間で変化した場合に、それらの画素間のカラー画素値(輝度値)の差が大きければ、数8式のコスト値が小さくなる。この結果、数3式のエネルギー関数E(X)の値が押し下げられる。このようなケースは、それらの画素部分が主要オブジェクト領域と背景領域の境界らしいことを意味している。従って、このようなケースでは、これらの画素間で領域ラベル値を異ならせて、主要オブジェクト領域と背景領域の境界を形成する方向に制御される。また、この場合には、境界の形成状態を安定化するために、それらの画素間のn−linkがカットされて、数3式の第2項のコスト値が0にされる(
図7の704のケース)。
【0046】
以上の判定制御処理が、ソースsのノードを起点にして、順次各画素のノードをたどりながら繰り返されることにより、
図7の701で示されるようなグラフカットが実行され、エネルギー関数E(X)の最小化処理が現実的な時間で計算される。この処理の具体的な手法としては、例えば、非特許文献1に記載されている手法を採用することができる。
【0047】
そして、各画素ごとに、ソースs側のt−linkが残っていれば、その画素の領域ラベル値として0、すなわち主要オブジェクト領域の画素を示すラベルが付与される。逆に、シンクt側のt−linkが残っていれば、その画素の領域ラベル値として1、すなわち背景領域の画素を示すラベルが付与される。最終的に、領域ラベル値が0となる画素の集合として、主要オブジェクト領域が得られる。
【0048】
図8は、上述した動作原理に基づく
図3のステップS303の領域分割処理を示すフローチャートである。
【0049】
まず、画像から、カラー画素値I(V)が1つずつ読み込まれる(
図8のステップS801)。
【0050】
次に、ステップS801で読み込まれた画素が、ユーザによって指定された矩形枠内の画素であるか否かが判定される(
図8のステップS802)。
【0051】
ステップS802の判定がYESの場合には、前述した数6式、数7式、および数8式に基づいて、主要オブジェクト領域らしさを示すコスト値、背景領域らしさを示すコスト値、および境界らしさを示すコスト値が、それぞれ算出される(
図8のステップS803、S804、およびS805)。なお、θ(c、0)の初期値は、学習用に用意した複数枚(数百枚程度)の主要オブジェクトの領域から算出される。同様に、θ(c、1)の初期値は、学習用に用意した複数枚(数百枚程度)の背景の領域から算出される。
【0052】
一方、ステップS802の判定がNOの場合には、矩形の枠外には主要オブジェクト領域はないため、そこが主要オブジェクト領域と判定されないようにするために、主要オブジェクト領域らしさを示すコスト値g
v (X
v )が、次式のように一定の大きな値Kとされる。
【数9】
ここで、Kは、次式に示されるように、任意のピクセルの平滑化項の総和よりも大きい値を設定しておく(以上、
図8のステップS806)。
【数10】
【0053】
また、矩形の枠外が必ず背景領域と判定されるようにするために、背景領域らしさを示すコスト値g
v (X
v )が、次式のように0とされる(
図8のステップS807)。
【数11】
【0054】
さらに、矩形の枠外は全て背景領域であるため、h
uv(X
u ,X
v )の値は0とされる(
図8のステップS808)。
【0055】
以上の処理の後、画像内に処理すべき画素が残っているか否かが判定される(
図8のステップS809)。
【0056】
処理すべき画素がありステップS809の判定がYESならば、ステップS801の処理に戻って、上記処理が繰り返される。
【0057】
処理すべき画素がなくなりステップS809の判定がNOになると、画像内の全ての画素について求まったコスト値を用いて、数3式のエネルギー関数E(X)が計算されながら、Graph Cutsアルゴリズムが実行され、主要オブジェクトと背景が領域分割される(ステップS810)。
【0058】
図9は、
図3のステップS302のヒストグラム更新処理を示すフローチャートである。
【0059】
まず、入力画像に対し
図3のステップS301の矩形枠決定処理でユーザにより指定された矩形枠に関して、カラー画素値ごとの矩形枠上のヒストグラム、矩形枠外のヒストグラム、および矩形枠内のヒストグラムがそれぞれ、枠上ヒストグラム207、枠外ヒストグラム208、および枠内ヒストグラム209として算出される(
図9のステップS901)。枠上ヒストグラム207の度数値をカラー画素値cごとにθon(c,0)、枠外ヒストグラム208の度数値をカラー画素値cごとにθout (c,0)、枠内ヒストグラム209の度数値をカラー画素値cごとにθin(c,0)とする。
【0060】
次に、
図9のステップS902からS908の一連の処理で示されるヒストグラム比較更新処理が実行される。ここでは、
図9のステップS902でカラー画素値cが最初の画素値に対応する番号1にセットされ、その後、
図9のステップS908でカラー画素値cを示す番号が+1ずつされる。そして、
図9のステップS907でカラー画素値cに対応する番号が最大番号Nに達したと判定されるまで、
図9のステップS903からS906の処理が、各カラー画素値cごとに実行される。
【0061】
まず、カラー画素値c中から特定画素値c
m が取得される。具体的には、カラー画素値cに対応してステップS901で作成された枠上ヒストグラム207の度数値θon(c,0)が第1の閾値θon
m 以上である(θon(c,0)≧θon
m )か否かが判定される(ステップS903)。すなわち、カラー画素値cの矩形枠上での発生頻度が高いか否かが判定される。この結果、この判定がYESならば、カラー画素値cは特定画素値c
m であると判定される。
図10は、特定画素値の説明図である。例えば
図10(a)の1001で示されるθon(c,0)(1≦c≦N)において、その値がθon
m 以上となる1002で示される範囲のカラー画素値が、特定画素値c
m となる。なお、
図10(b)に示されるように、通常のヒストグラムの代わりにRon(c,0)(1≦c≦N)で示される累積ヒストグラムが用いられてもよく、この場合には、度数に関する所定閾値θon
m の代わりに、累積度数に関する所定閾値Ron
m が判定に使用される。
【0062】
カラー画素値cが特定画素値c
m と判定されステップS903の判定がYESならば、カラー画素値cに対応してステップS901で作成された枠外ヒストグラム207の度数値θout (c,0)が第2の閾値θout
m 以上である(θout (c,0)≧θout
m )か否かが判定される。すなわち、特定画素値c
m の発生頻度が矩形枠外でも高いか否かが判定される(
図9のステップS904)。
【0063】
特定画素値c
m の発生頻度が矩形枠外でも高くステップS904の判定がYESならばさらに、カラー画素値cに対応してステップS901で作成された枠内ヒストグラム209の度数値θin(c,0)が第3の閾値θin
m 未満である(θin(c,0)<θin
m )か否かが判定される。すなわち、特定画素値c
m の発生頻度が矩形枠内では低いか否かが判定される(
図9のステップS905)。
【0064】
特定画素値c
m の発生頻度が矩形枠内では低くステップS905の判定がYESならば、その特定画素値c
m は背景に特有のカラーであって、主要オブジェクトを構成する主な色ではないと判断できる。
【0065】
この場合には、下記の数12式に示されるように、特定画素値c
m において、
図3のステップS303で使用される背景らしさを示すヒストグラムの度数値θ(c,1)(=
図2の第2のヒストグラム206)が、α(α>1)倍されて更新される。
【数12】
【0066】
あるいは下記の数13式に示されるように、特定画素値c
m において、背景らしさを示すヒストグラムの度数値θ(c,1)に定数βが加算されて更新される。
【数13】
【0067】
以上のようにして、特定画素値c
m において、
図3のステップS303で使用される背景らしさを示すヒストグラムの度数値θ(c,1)(=
図2の第2のヒストグラム206)が、主要オブジェクトらしさを示すヒストグラムの度数値θ(c,0)(=
図2の第1のヒストグラム205)に対して相対的に増加するように、θ(c,1)が更新される。ここで、特定画素値c
m において、主要オブジェクトらしさを示すヒストグラムの度数値θ(c,0)のほうが小さくなるように更新処理が行われてもよい(以上、
図9のステップS906)。
【0068】
今回のカラー画素値cに対して以下の判定がなされた場合は、ヒストグラムの更新処理は実行されず、ステップS907の処理に移行する。カラー画素値cが特定画素値c
m と判定されず、ステップS903の判定がNOとなった場合である。または、カラー画素値cは特定画素値c
m と判定されステップS903の判定はYESとなったが、特定画素値c
m の発生頻度が矩形枠外で高くなくステップS904の判定がNOとなった場合である。あるいは、特定画素値c
m の発生頻度が矩形枠外で高くステップS904の判定がYESとなったが、特定画素値c
m の発生頻度が矩形枠内でも高くステップS905の判定がNOとなった場合である。
【0069】
以上の
図9のステップS903からS906の一連のヒストグラム更新処理が、各カラー画素値cの番号(1≦c≦N)ごとに繰り返し実行される。
【0070】
本実施形態では、矩形枠の枠上で発生頻度の高い例えばカラー画素値である特定画素値c
m が、矩形枠外でも発生頻度が高く、なおかつ矩形枠内で発生頻度が高くなければ、
図3のステップS303で実行される領域分割処理において、特定画素値c
m に対する背景らしさを示すヒストグラムの度数値θ(c,1)が相対的に増加するように更新される。これにより、特定画素値c
m については背景領域に分類される確率が高められる。この結果、領域分割手段201における領域分割処理において、背景領域と主要オブジェクト領域とで誤認識をする割合が減少し、領域分割の精度を向上させることが可能となる。
【0071】
図11は、上述のヒストグラム更新処理に基づく領域分割処理(グラフカット処理)の結果例を示す図である。
【0072】
入力画像として、
図11(a)に示されるように例えば、黄色が多くを占める一輪の花1101が、緑色が多くを占める背景1102の中に配置されている場合、花1101の部分を示す主要オブジェクト領域と背景1102の部分を示す背景領域とを領域分割した結果は、例えば
図11(b)に示されるごとくとなる。
図11(b)において、白色の領域が主要オブジェクト領域、黒色の領域が背景領域と判別されている。この場合、本実施形態では、
図11(c)に示されるように、ユーザにより指定された矩形枠の枠上1103では緑色の画素値が多くを占める。従って、枠上ヒストグラム207において、緑色の画素値に対応する度数値が高くなって
図9のステップS903の判定がYESとなり、緑色の画素値が特定画素値c
m として抽出される。次に、緑色の画素値は矩形枠1103の外側でも多くを占める。従って、枠外ヒストグラム208において、緑色の画素値に対応する度数値が高くなって
図9のステップS904の判定がYESとなる。さらに、緑色の画素値は矩形枠1103の内側では多くを占めてはいない。従って、枠内ヒストグラム209において、緑色の画素値に対応する度数値が低くなって
図9のステップS905の判定がYESとなる。以上の結果、緑色の画素値において、
図9のステップS906において、背景らしさを示すヒストグラムの度数値θ(c,1)が、主要オブジェクトらしさを示すヒストグラムの度数値θ(c,0)に対して相対的に増加するように、更新される。この結果、主要オブジェクト領域が黄色が多くを占める花1101の部分に良く対応するように、領域分割が実行される。
【0073】
一方、入力画像として、
図11(d)に示されるように例えば、ピンク色の花の部分1104に対して、背景1105にも同様のピンク色の花が多く存在する場合、花1104の部分を示す主要オブジェクト領域と背景1105の部分を示す背景領域とを領域分割した結果は、例えば
図11(e)に示されるごとくとなる。この場合、本実施形態では、
図11(f)に示されるように、ユーザにより指定された矩形枠の枠上1106にはピンク色の画素値が多くを占める。従って、枠上ヒストグラム207において、ピンク色の画素値に対応する度数値が高くなって
図9のステップS903の判定がYESとなり、ピンク色の画素値が特定画素値c
m として抽出される。次に、ピンク色の画素値は矩形枠1103の外側でも多くを占める。従って、枠外ヒストグラム208において、ピンク色の画素値に対応する度数値が高くなって
図9のステップS904の判定がYESとなる。しかしながら、ピンク色の画素値は矩形枠1103の内側でも多くを占めている。従って、枠内ヒストグラム209において、ピンク色の画素値に対応する度数値が高くなって
図9のステップS905の判定がNOとなる。以上の結果、ピンク色の画素値については、背景らしさを示すヒストグラムの度数値θ(c,1)が、主要オブジェクトらしさを示すヒストグラムの度数値θ(c,0)に対して相対的に増加するような更新は行われない。この結果、ピンク色を基準として領域分割が行われるような状況が回避される。
【0074】
以上のようにして、本実施形態では、矩形枠内外のコスト設定が適切に行われることにより、領域分割における切抜きの精度を向上させることが可能となる。
【0075】
上述の実施形態では、主要オブジェクトが花である場合を例に説明したが、主要オブジェクトとしては、花に限られず、様々なオブジェクトを採用することができる。
【0076】
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
画像内で指定された画像範囲内の主要オブジェクトと該主要オブジェクト以外の背景を領域分割する装置であって、
前記画像範囲内の各画素に付与する前記主要オブジェクトまたは前記背景を示す領域ラベルを更新しながら、該領域ラベルと前記各画素の画素値に基づき、前記主要オブジェクトを示す画像から算出した前記画素値ごとの第1のヒストグラムの値が大きいほど値が小さくなるコスト項と、前記背景を示す画像から算出した前記画素値ごとの第2のヒストグラムの値が大きいほど値が小さくなるコスト項を含むエネルギー関数の最小化処理により、前記画像内で前記主要オブジェクトと前記背景を領域分割する領域分割手段と、
前記画像範囲の枠上の画素値ごと、前記画像範囲の境界外の画素値ごと、および前記画像範囲の枠内の画素値ごとの各ヒストグラムをそれぞれ、枠上ヒストグラム、枠外ヒストグラム、および枠内ヒストグラムとして算出するヒストグラム算出手段と、
前記枠上ヒストグラムで度数値が第1の閾値に対して大きい画素値を特定画素値として抽出する特定画素値抽出手段と、
前記特定画素値での度数値が前記枠外ヒストグラム上で第2の閾値に対して大きくかつ前記枠内ヒストグラム上で第3の閾値に対して小さい場合に、前記特定画素値において前記第2のヒストグラムの度数値が前記第1のヒストグラムの度数値に対して相対的に増加するように該2つの度数値の少なくともいずれかを更新するヒストグラム更新手段と、
を備えることを特徴とする画像領域分割装置。
(付記2)
前記ヒストグラム更新手段は、前記特定画素値での度数値が前記枠外ヒストグラム上で第2の閾値に対して大きくかつ前記枠内ヒストグラム上で第3の閾値に対して小さい場合に、前記特定画素値における前記第2のヒストグラムの度数値を、1よりも大きい倍数である所定数倍して更新する、
ことを特徴とする付記1に記載の画像領域分割装置。
(付記3)
前記ヒストグラム更新手段は、前記特定画素値での度数値が前記枠外ヒストグラム上で第2の閾値に対して大きくかつ前記枠内ヒストグラム上で第3の閾値に対して小さい場合に、前記特定画素値における前記第2のヒストグラムの度数値に0よりも大きい所定数を加算して更新する、
ことを特徴とする付記1に記載の画像領域分割装置。
(付記4)
前記第1のヒストグラムの初期値は、学習用の複数枚の前記主要オブジェクトを示す画像の前記画素値ごとのヒストグラムとして算出し、
前記第2のヒストグラムの初期値は、学習用の複数枚の前記背景を示す画像の前記画素値ごとのヒストグラムとして算出する、
ことを特徴とする付記1ないし3のいずれかに記載の画像領域分割装置。
(付記5)
前記領域分割手段は、Graph Cuts法により前記エネルギー関数の最小化処理を実行する、
ことを特徴とする付記1ないし4のいずれかに記載の画像領域分割装置。
(付記6)
画像内で指定された画像範囲内の主要オブジェクトと該主要オブジェクト以外の背景を領域分割する方法であって、
前記画像範囲内の各画素に付与する前記主要オブジェクトまたは前記背景を示す領域ラベルを更新しながら、該領域ラベルと前記各画素の画素値に基づき、前記主要オブジェクトを示す画像から算出した前記画素値ごとの第1のヒストグラムの値が大きいほど値が小さくなるコスト項と、前記背景を示す画像から算出した前記画素値ごとの第2のヒストグラムの値が大きいほど値が小さくなるコスト項を含むエネルギー関数の最小化処理により、前記画像内で前記主要オブジェクトと前記背景を領域分割する領域分割ステップと、
前記画像範囲の枠上の画素値ごと、前記画像範囲の境界外の画素値ごと、および前記画像範囲の枠内の画素値ごとの各ヒストグラムをそれぞれ、枠上ヒストグラム、枠外ヒストグラム、および枠内ヒストグラムとして算出するヒストグラム算出ステップと、
前記枠上ヒストグラムで度数値が第1の閾値に対して大きい画素値を特定画素値として抽出する特定画素値抽出ステップと、
前記特定画素値での度数値が前記枠外ヒストグラム上で第2の閾値に対して大きくかつ前記枠内ヒストグラム上で第3の閾値に対して小さい場合に、前記特定画素値において前記第2のヒストグラムの度数値が前記第1のヒストグラムの度数値に対して相対的に増加するように該2つの度数値の少なくともいずれかを更新するヒストグラム更新ステップと、
を備えることを特徴とする画像領域分割方法。
(付記7)
画像内で指定された画像範囲内の主要オブジェクトと該主要オブジェクト以外の背景を領域分割する処理を実行するコンピュータに、
前記画像範囲内の各画素に付与する前記主要オブジェクトまたは前記背景を示す領域ラベルを更新しながら、該領域ラベルと前記各画素の画素値に基づき、前記主要オブジェクトを示す画像から算出した前記画素値ごとの第1のヒストグラムの値が大きいほど値が小さくなるコスト項と、前記背景を示す画像から算出した前記画素値ごとの第2のヒストグラムの値が大きいほど値が小さくなるコスト項を含むエネルギー関数の最小化処理により、前記画像内で前記主要オブジェクトと前記背景を領域分割する領域分割ステップと、
前記画像範囲の枠上の画素値ごと、前記画像範囲の境界外の画素値ごと、および前記画像範囲の枠内の画素値ごとの各ヒストグラムをそれぞれ、枠上ヒストグラム、枠外ヒストグラム、および枠内ヒストグラムとして算出するヒストグラム算出ステップと、
前記枠上ヒストグラムで度数値が第1の閾値に対して大きい画素値を特定画素値として抽出する特定画素値抽出ステップと、
前記特定画素値での度数値が前記枠外ヒストグラム上で第2の閾値に対して大きくかつ前記枠内ヒストグラム上で第3の閾値に対して小さい場合に、前記特定画素値において前記第2のヒストグラムの度数値が前記第1のヒストグラムの度数値に対して相対的に増加するように該2つの度数値の少なくともいずれかを更新するヒストグラム更新ステップと、
を実行させるためのプログラム。