【文献】
ファンヴェトクォク 外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名)
前記ヒストグラム更新手段は、前記第2および第4のヒストグラムの各度数値を前記特定画素値以外の前記画素値ごとに所定の割合ずつ加算して得た度数値と、前記特定画素値ごとの前記第2のヒストグラムの度数値とから、更新された前記第2のヒストグラムを算出する、
ことを特徴とする請求項1に記載の画像領域分割装置。
【発明を実施するための形態】
【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は、領域分割手段201での処理の後、処理が終了した画像内で、主要被写体を示す領域から例えばカラー画素値ごとの第3のヒストグラム207と、背景を示す領域から例えばカラー画素値ごとの第4のヒストグラム208を、それぞれ算出する。
【0021】
特定画素値抽出手段203は、第3のヒストグラム207で、度数値が所定閾値以上となる例えばカラー画素値を特定画素値として抽出する。
【0022】
ヒストグラム更新手段204は、第1のヒストグラム205および第3のヒストグラム207を、例えばカラー画素値ごとに混合して、第1のヒストグラム205を更新する。また、ヒストグラム更新手段204は、第2のヒストグラム206および第4のヒストグラム208を、特定画素値以外の例えばカラー画素値ごとに混合して、第2のヒストグラム206を更新する。より具体的には例えば、ヒストグラム更新手段204は、第2のヒストグラム206および第4のヒストグラム208の各度数値を、特定画素値以外の例えばカラー画素値ごとに所定の割合ずつ加算して得た度数値と、特定画素値ごとの第2のヒストグラム206の度数値とから、更新された第2のヒストグラム206を算出する。
【0023】
図2に示される本実施形態における画像領域分割装置101の機能構成により、例えば花画像などの領域分割において、ユーザが指定した矩形枠の外側つまり背景領域に同様の花が写っているような場合であっても、次のようにして背景領域の誤認識が回避される。背景と判定された領域のデータを使って背景のヒストグラムを更新した場合に、その背景領域内に存在する主要被写体の花と同じ色のカラー画素値については、背景のヒストグラムが更新されないように抑制される。これにより、次回以降、領域分割手段201における領域分割処理において、誤ったヒストグラムデータを用いて領域分割が行われることがなくなり、背景領域と主要被写体領域とで誤認識をする割合が減少し、領域分割の精度を向上させることが可能となる。
【0024】
図3は、本実施形態による画像領域分割処理の全体動作を示すフローチャートである。このフローチャートの処理は、
図8および
図9の詳細処理を示すフローチャートの処理とともに、
図1のCPU102が、ROM103に記憶された制御プログラムを、RAM104をワークメモリとして使用しながら実行する処理として実現される。
【0025】
まず、矩形枠決定処理が実行される(
図3のステップS301)。この処理では、ユーザが、例えば
図1の撮像装置112にて撮像した画像に対して、認識したい物体(例えば花)が存在するおおよその領域に対して、例えばタッチパネル等の入力装置107を用いて、矩形枠を指定する。例えば、タッチパネル上での、指によるスライド動作である。
【0026】
次に、画像範囲内の各画素に対して、主要被写体と前記背景を領域分割する領域分割処理を実行する(
図3のステップS302)。この領域分割処理は、
図2の領域分割手段201の機能を実現する。この処理の詳細については、
図4から
図8で後述する。
【0027】
一度領域分割処理が終了した後、収束判定が行われる(
図3のステップS303)。この収束判定は、以下のいずれかが満たされたときに、YESの判定結果となる。
・繰り返し回数が一定以上になった
・前回前景とされた領域面積と今回前景とされた領域の差が一定以下
【0028】
ステップS303の判定で収束せず、その判定がNOであった場合、前回のグラフカット処理の状況に応じて、ユーザが指定した矩形枠内の後述するコスト関数g
v (X
v )が、次のようにして修正されてデータ更新される(
図3のステップS304)。ステップS302のグラフカット処理によって主要被写体と判定された領域の今回ヒストグラム(第3のヒストグラム207)と、事前に用意されている後述するヒストグラムθ(c,0)(第1のヒストグラム205)が、カラー画素値cごとに混合(加算)される。これにより、新たな主要被写体らしさを示すヒストグラムθ(c,0)が生成され、それに基づいて新たなコスト関数g
v (X
v )が計算される(後述する数6式等を参照)。また、主要被写体のヒストグラム(第3のヒストグラム207)で、度数値が所定閾値θ
m 以上となる画素値が特定画素値として抽出される。そして、第2のヒストグラム206および第4のヒストグラム208が特定画素値以外のカラー画素値ごとに混合されて、第2のヒストグラム206が更新される。以上のステップS304のデータ更新処理は、
図2の新規ヒストグラム算出手段202、特定画素値抽出手段203、およびヒストグラム更新手段204の機能を実現する。この処理の詳細については、
図9および
図10で後述する。
【0029】
ステップS303の判定が収束し、その判定がYESになると、
図3のフローチャートで示される領域分割処理は終了とし、現在得られている主要被写体領域が最終結果として出力される。
【0030】
以下に、
図3のステップS302の領域分割処理について、説明する。
いま、
【数1】
を、要素X
v が画像Vにおける画素v(1≦v≦V)に対する領域ラベルを示す領域ラベルベクトルであるとする。この領域ラベルベクトルは、例えば、画素vが主要被写体領域内にあれば要素X
v =0、背景領域内にあれば要素X
v =1となるバイナリベクトルである。すなわち、
【数2】
である。
【0031】
本実施形態において実行される領域分割処理は、画像Vにおいて、次式で定義されるエネルギー関数E(X)を最小にするような数1式の領域ラベルベクトルXを求める処理である。
【数3】
エネルギー最小化処理が実行される結果、領域ラベルベクトルX上で領域ラベル値X
v =0となる画素vの集合として、主要被写体領域が得られる。本実施形態の例でいえば、矩形枠内の花の領域である。なお、領域ラベルベクトルX上で領域ラベル値X
v =1となる画素vの集合が、背景領域(矩形枠外も含む)となる。
【0032】
数3式のエネルギーを最小化するために、次式および
図4で示される重み付き有向グラフ(以下「グラフ」と略す)を定義する。
【数4】
ここで、Vはノード(node)、Eはエッジ(edge)である。このグラフが画像の領域分割に適用される場合は、画像の各画素が各ノードVに対応する。また、画素以外のノードとして、次式および
図4中に示される、
【数5】
と呼ばれる特殊なターミナルが追加される。このソースsを主要被写体領域、シンクtを背景領域に対応付けて考える。また、エッジEは、ノードV間の関係を表現している。周辺の画素との関係を表したエッジEをn−link、各画素とソースs(主要被写体領域に対応)またはシンクt(背景領域に対応)との関係を表したエッジEをt−linkと呼ぶ。
【0033】
いま、ソース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)の値を押し下げる結果となる。
【0034】
次に、シンク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)の値を押し下げる結果となる。
【0035】
次に、各画素に対応するノードとその周辺画素との関係を示すn−linkのコスト値を、数3式第2項に対応付けて、
【数8】
と定義する。ここで、dist(u,v)は、画素vとその周辺画素uのユークリッド距離を示しており、κは所定の係数である。また、I(u)およびI(v)は、入力画像の各画素uおよびvにおける各カラー(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とで、領域ラベル値が異なる方向に制御される。
【0036】
以上の定義を用いて、入力画像の各画素vごとに、数6式によって、ソースsと各画素vとを結ぶt−linkのコスト値(主要被写体領域らしさ)が算出される。また、数7式によって、シンクtと各画素vとを結ぶt−linkのコスト値(背景領域らしさ)が算出される。さらに、入力画像の各画素vごとに、数8式によって、画素vとその周辺例えば8方向の各8画素とを結ぶ8本のn−linkのコスト値(境界らしさ)が算出される。
【0037】
そして、理論的には、数1式の領域ラベルベクトルXの全ての領域ラベル値の0または1の組合せごとに、各領域ラベル値に応じて上記数6式、数7式、および数8式の計算結果が選択されながら数3式のエネルギー関数E(X)が計算される。そして、全ての組合せの中でエネルギー関数E(X)の値が最小となる領域ラベルベクトルXを選択することにより、領域ラベルベクトルX上で領域ラベル値X
v =0となる画素vの集合として、主要被写体領域を得ることができる。
【0038】
しかし実際には、領域ラベルベクトルXの全ての領域ラベル値の0または1の組合せ数は、2の画素数乗通りあるため、現実的な時間でエネルギー関数E(X)の最小化処理を計算することができない。
【0039】
そこで、Graph Cuts法では、次のようなアルゴリズムを実行することにより、エネルギー関数E(X)の最小化処理を現実的な時間で計算することを可能にする。
図7は、上述した数6式、数7式で定義されるt−linkと数8式で定義されるn−linkを有するグラフと、領域ラベルベクトルXおよびグラフカットとの関係を、模式的に示した図である。
図7では、理解の容易化のために、画素vは一次元的に示されている。
【0040】
数3式のエネルギー関数E(X)の第1項の計算で、領域ラベルベクトルX中の領域ラベル値が0となるべき主要被写体領域中の画素では、数6式と数7式のうち、主要被写体領域中の画素らしい場合により小さな値となる数6式のコスト値のほうが小さくなる。従って、ある画素において、ソースs側のt−linkが選択されシンクt側のt−linkがカットされて(
図7の702のケース)、数6式を用いて数3式のE(X)の第1項が計算された場合に、その計算結果が小さくなれば、その画素の領域ラベル値としては0が選択される。そして、そのグラフカット状態が採用される。計算結果が小さくならなければ、そのグラフカット状態は採用されず、他のリンクの探索およびグラフカットが試みられる。
【0041】
逆に、領域ラベルベクトルX中の領域ラベル値が1となるべき背景領域中の画素では、数6式と数7式のうち、背景領域中の画素らしい場合により小さな値となる数7式のコスト値のほうが小さくなる。従って、ある画素において、シンクt側のt−linkが選択されソースs側のt−linkはカットされて(
図7の703のケース)、数7式を用いて数3式のE(X)の第1項が計算された場合に、その計算結果が小さくなれば、その画素の領域ラベル値としては1が選択される。そして、そのグラフカット状態が採用される。計算結果が小さくならなければ、そのグラフカット状態は採用されず、他のリンクの探索およびグラフカットが試みられる。
【0042】
一方、数3式のエネルギー関数E(X)の第1項の計算に係る上記グラフカット処理により、領域ラベルベクトルX中の領域ラベル値が0または1で連続すべき主要被写体領域内部または背景領域内部の画素間では、数8式のコスト値が0となる。従って、数8式の計算結果は、エネルギー関数E(X)の第2項のコスト値の計算には影響しない。また、その画素間のn−linkは、数8式がコスト値0を出力するように、カットされずに維持される。
【0043】
ところが、エネルギー関数E(X)の第1項の計算に係る上記グラフカット処理により、近傍画素間で、領域ラベル値が0と1の間で変化した場合に、それらの画素間のカラー画素値の差が小さければ、数8式のコスト値が大きくなる。この結果、数3式のエネルギー関数E(X)の値が押し上げられる。このようなケースは、同一領域内で第1項の値による領域ラベル値の判定がたまたま反転するような場合に相当する。従って、このようなケースでは、エネルギー関数E(X)の値が大きくなって、そのような領域ラベル値の反転は選択されない結果となる。また、この場合には、数8式の計算結果が、上記結果を維持するように、それらの画素間のn−linkは、カットされずに維持される。
【0044】
これに対して、エネルギー関数E(X)の第1項の計算に係る上記グラフカット処理により、近傍画素間で、領域ラベル値が0と1の間で変化した場合に、それらの画素間のカラー画素値の差が大きければ、数8式のコスト値が小さくなる。この結果、数3式のエネルギー関数E(X)の値が押し下げられる。このようなケースは、それらの画素部分が主要被写体領域と背景領域の境界らしいことを意味している。従って、このようなケースでは、これらの画素間で領域ラベル値を異ならせて、主要被写体領域と背景領域の境界を形成する方向に制御される。また、この場合には、境界の形成状態を安定化するために、それらの画素間のn−linkがカットされて、数3式の第2項のコスト値が0にされる(
図7の704のケース)。
【0045】
以上の判定制御処理が、ソースsのノードを起点にして、順次各画素のノードをたどりながら繰り返されることにより、
図7の701で示されるようなグラフカットが実行され、エネルギー関数E(X)の最小化処理が現実的な時間で計算される。この処理の具体的な手法としては、例えば、非特許文献1に記載されている手法を採用することができる。
【0046】
そして、各画素ごとに、ソースs側のt−linkが残っていれば、その画素の領域ラベル値として0、すなわち主要被写体領域の画素を示すラベルが付与される。逆に、シンクt側のt−linkが残っていれば、その画素の領域ラベル値として1、すなわち背景領域の画素を示すラベルが付与される。最終的に、領域ラベル値が0となる画素の集合として、主要被写体領域が得られる。
【0047】
図8は、上述した動作原理に基づく
図3のステップS302の領域分割処理を示すフローチャートである。
【0048】
まず、画像から、カラー画素値I(V)が1つずつ読み込まれる(
図8のステップS801)。
【0049】
次に、ステップS801で読み込まれた画素が、ユーザによって指定された矩形枠内の画素であるか否かが判定される(
図8のステップS802)。
【0050】
ステップS802の判定がYESの場合には、前述した数6式、数7式、および数8式に基づいて、主要被写体領域らしさを示すコスト値、背景領域らしさを示すコスト値、および境界らしさを示すコスト値が、それぞれ算出される(
図8のステップS803、S804、およびS805)。なお、θ(c、0)の初期値は、学習用に用意した複数枚(数百枚程度)の主要被写体の領域から算出される。同様に、θ(c、1)の初期値は、学習用に用意した複数枚(数百枚程度)の背景の領域から算出される。
【0051】
一方、ステップS802の判定がNOの場合には、矩形の枠外には主要被写体領域はないため、そこが主要被写体領域と判定されないようにするために、主要被写体領域らしさを示すコスト値g
v (X
v )が、次式のように一定の大きな値Kとされる。
【数9】
ここで、Kは、次式に示されるように、任意のピクセルの平滑化項の総和よりも大きい値を設定しておく(以上、
図8のステップS806)。
【数10】
【0052】
また、矩形の枠外が必ず背景領域と判定されるようにするために、背景領域らしさを示すコスト値g
v (X
v )が、次式のように0とされる(
図8のステップS807)。
【数11】
【0053】
さらに、矩形の枠外は全て背景領域であるため、h
uv(X
u ,X
v )の値は0とされる(
図8のステップS808)。
【0054】
以上の処理の後、画像内に処理すべき画素が残っているか否かが判定される(
図8のステップS809)。
【0055】
処理すべき画素がありステップS809の判定がYESならば、ステップS801の処理に戻って、上記処理が繰り返される。
【0056】
処理すべき画素がなくなりステップS809の判定がNOになると、画像内の全ての画素について求まったコスト値を用いて、数3式のエネルギー関数E(X)が計算されながら、Graph Cutsアルゴリズムが実行され、主要被写体と背景が領域分割される(ステップS810)。
【0057】
図9は、
図3のステップS304のデータ更新処理を示すフローチャート、
図10は、データ更新処理の説明図である。
【0058】
まず、
図3のステップS302の領域分割処理(グラフカット処理)によって主要被写体と判定された領域の今回ヒストグラムが第3のヒストグラム207(
図2参照)として算出される(
図9のステップS901)。この第3のヒストグラム207の度数値を、カラー画素値cごとにθ
cur (c,0)とする。
【0059】
次に、
図3のステップS302で背景と判定された領域の今回ヒストグラムが第4のヒストグラム208(
図2参照)として算出される(
図9のステップS902)。この第4のヒストグラム208の度数値を、カラー画素値cごとにθ
cur (c,1)とする。
【0060】
次に、第1のヒストグラム205(
図2参照)における前回の主要被写体のヒストグラムに、今回得られた第3のヒストグラム207が混合されて、第1のヒストグラム205が更新される(
図9のステップS903)。いま、第1のヒストグラム205における前回の主要被写体他のカラー画素値cごとのヒストグラムの度数値をθ
pre (c,0)とする。ステップS903では、カラー画素値cごとに、第1のヒストグラム205の度数値θ
pre (c,0)とステップS901で算出されている第3のヒストグラム207の度数値θ
cur (c,0)が適当な割合で混合されて、新たな第1のヒストグラム205の度数値θ(c,0)とされる。
【0061】
次に、
図9のステップS904からS908の一連の処理(破線枠の部分)で示される背景のヒストグラム更新処理が実行される。
【0062】
ここでは、
図9のステップS904でカラー画素値cが最初の値にセットされ、その後、
図9のステップS908でカラー画素値cが+1ずつされる。そして、
図9のステップS907でカラー画素値cが最大値Nに達したと判定されるまで、
図9のステップS905とS906の処理が、各カラー 画素値cごとに実行される。
【0063】
まず、カラー画素値cが特定画素値c
m であるか否かが判定される(ステップS905)。この判定は、カラー画素値cに対応してステップS901で作成された今回の主要被写体のヒストグラムの度数値θ
cur (c,0)が、所定閾値θ
m 以上であるか否かを判定することで実現される。すなわち、θ
cur (c,0)≧θ
m であれば、カラー画素値cは特定画素値c
m である。この結果、例えば
図10(a)の1001で示されるθ
cur (c,0)(1≦c≦N)において、その値がθ
m 以上となる1002で示される範囲のカラー画素値が、特定画素値c
m となる。なお、
図10(b)に示されるように、通常のヒストグラムの代わりに累積ヒストグラムが用いられてもよく、この場合には、度数に関する所定閾値θ
m の代わりに、累積度数に関する所定閾値R
m が判定に使用される。
【0064】
カラー画素値cが特定画素値c
m ではなくステップS905の判定がNOならば、そのカラー画素値は、主要被写体を構成する主な色ではないと判断できる。この場合には、第2のヒストグラム206(
図2参照)における前回の背景のヒストグラムに、今回得られた第4のヒストグラム208が混合されて、第2のヒストグラム206が更新される(
図9のステップS906)。いま、第2のヒストグラム206における前回の主要被写体他のカラー画素値cごとのヒストグラムの度数値をθ
pre (c,1)とする。ステップS906では、カラー画素値cごとに、第2のヒストグラム206の度数値θ
pre (c,1)とステップS902で算出されている第4のヒストグラム208の度数値θ
cur (c,1)が適当な割合で混合されて、新たな第2のヒストグラム206の度数値θ(c,1)とされる。すなわち、
【数12】
が計算される。ここで、w
pre w
cur は、第2のヒストグラム206と第4のヒストグラム208の混合比率であり、w
pre +w
cur =1 である。
【0065】
一方、カラー画素値cが特定画素値c
m であってステップS905の判定がYESならば、そのカラー画素値cは、主要被写体を構成する主な色である特定画素値c
m であると判断できる。この場合には、そのカラー画素値cの度数値によっては、第2のヒストグラム206の度数値θ(c,1)は更新されない。
【0066】
以上のようにして、本実施形態では、背景領域内に存在する主要被写体の花等と同じ色の特定画素値c
m については、背景のヒストグラムが更新されないように抑制される。これにより、次回以降、領域分割手段201における領域分割処理において、誤ったヒストグラムデータを用いて領域分割が行われることがなくなり、背景領域と主要被写体領域とで誤認識をする割合が減少し、領域分割の精度を向上させることが可能となる。
【0067】
主要被写体としては、花に限られず、様々なオブジェクトを採用することができる。
【0068】
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
画像内で主要被写体と該主要被写体以外の背景を領域分割する装置であって、
前記画像内の各画素に付与する前記主要被写体または前記背景を示す領域ラベルを更新しながら、該領域ラベルと前記各画素の画素値に基づき、前記主要被写体を示す画像から算出した前記画素値ごとの第1のヒストグラムの値が大きいほど値が小さくなるコスト項と、前記背景を示す画像から算出した前記画素値ごとの第2のヒストグラムの値が大きいほど値が小さくなるコスト項を含むエネルギー関数の最小化処理により、前記画像内で前記主要被写体と前記背景を領域分割する領域分割手段と、
前記領域分割手段での処理の後、処理が終了した前記画像内で、前記主要被写体を示す領域から前記画素値ごとの第3のヒストグラムと、前記背景を示す領域から前記画素値ごとの第4のヒストグラムを、それぞれ算出する新規ヒストグラム算出手段と、
前記第3のヒストグラムで、度数値が所定閾値以上となる画素値を特定画素値として抽出する特定画素値抽出手段と、
前記第1および第3のヒストグラムを前記画素値ごとに混合して前記第1のヒストグラムを更新し、前記第2および第4のヒストグラムを前記特定画素値以外の前記画素値ごとに混合して前記第2のヒストグラムを更新するヒストグラム更新手段と、
を備えることを特徴とする画像領域分割装置。
(付記2)
前記ヒストグラム更新手段は、前記第2および第4のヒストグラムの各度数値を前記特定画素値以外の前記画素値ごとに所定の割合ずつ加算して得た度数値と、前記特定画素値ごとの前記第2のヒストグラムの度数値とから、更新された前記第2のヒストグラムを算出する、
ことを特徴とする付記1に記載の画像領域分割装置。
(付記3)
前記第1のヒストグラムの初期値は、学習用の複数枚の前記主要被写体を示す画像の前記画素値ごとのヒストグラムとして算出し、
前記第2のヒストグラムの初期値は、学習用の複数枚の前記背景を示す画像の前記画素値ごとのヒストグラムとして算出する、
ことを特徴とする付記1または2のいずれかに記載の画像領域分割装置。
(付記4)
前記領域分割手段は、Graph Cuts法により前記エネルギー関数の最小化処理を実行する、
ことを特徴とする付記1ないし3のいずれかに記載の画像領域分割装置。
(付記5)
画像内で主要被写体と該主要被写体以外の背景を領域分割する方法であって、
前記画像内の各画素に付与する前記主要被写体または前記背景を示す領域ラベルを更新しながら、該領域ラベルと前記各画素の画素値に基づき、前記主要被写体を示す画像から算出した前記画素値ごとの第1のヒストグラムの値が大きいほど値が小さくなるコスト項と、前記背景を示す画像から算出した前記画素値ごとの第2のヒストグラムの値が大きいほど値が小さくなるコスト項を含むエネルギー関数の最小化処理により、前記画像内で前記主要被写体と前記背景を領域分割する領域分割ステップと、
前記領域分割処理の後、処理が終了した前記画像内で、前記主要被写体を示す領域から前記画素値ごとの第3のヒストグラムと、前記背景を示す領域から前記画素値ごとの第4のヒストグラムを、それぞれ算出する新規ヒストグラム算出ステップと、
前記第3のヒストグラムで、度数値が所定閾値以上となる画素値を特定画素値として抽出する特定画素値抽出ステップと、
前記第1および第3のヒストグラムを前記画素値ごとに混合して前記第1のヒストグラムを更新し、前記第2および第4のヒストグラムを前記特定画素値以外の前記画素値ごとに混合して前記第2のヒストグラムを更新するヒストグラム更新ステップと、
を備えることを特徴とする画像領域分割方法。
(付記6)
前記ヒストグラム更新ステップにおいて、前記第2および第4のヒストグラムの各度数値を前記特定画素値以外の前記画素値ごとに所定の割合ずつ加算して得た度数値と、前記特定画素値ごとの前記第2のヒストグラムの度数値とから、更新された前記第2のヒストグラムを算出する、
ことを特徴とする付記5に記載の画像領域分割方法。
(付記7)
前記第1のヒストグラムの初期値は、学習用の複数枚の前記主要被写体を示す画像の前記画素値ごとのヒストグラムとして算出し、
前記第2のヒストグラムの初期値は、学習用の複数枚の前記背景を示す画像の前記画素値ごとのヒストグラムとして算出する、
ことを特徴とする付記5または6のいずれかに記載の画像領域分割方法。
(付記8)
前記領域分割ステップにおいて、Graph Cuts法により前記エネルギー関数の最小化処理を実行する、
ことを特徴とする付記5ないし7のいずれかに記載の画像領域分割方法。
(付記9)
画像内で主要被写体と該主要被写体以外の背景を領域分割するコンピュータに、
前記画像内の各画素に付与する前記主要被写体または前記背景を示す領域ラベルを更新しながら、該領域ラベルと前記各画素の画素値に基づき、前記主要被写体を示す画像から算出した前記画素値ごとの第1のヒストグラムの値が大きいほど値が小さくなるコスト項と、前記背景を示す画像から算出した前記画素値ごとの第2のヒストグラムの値が大きいほど値が小さくなるコスト項を含むエネルギー関数の最小化処理により、前記画像内で前記主要被写体と前記背景を領域分割する領域分割ステップと、
前記領域分割処理の後、処理が終了した前記画像内で、前記主要被写体を示す領域から前記画素値ごとの第3のヒストグラムと、前記背景を示す領域から前記画素値ごとの第4のヒストグラムを、それぞれ算出する新規ヒストグラム算出ステップと、
前記第3のヒストグラムで、度数値が所定閾値以上となる画素値を特定画素値として抽出する特定画素値抽出ステップと、
前記第1および第3のヒストグラムを前記画素値ごとに混合して前記第1のヒストグラムを更新し、前記第2および第4のヒストグラムを前記特定画素値以外の前記画素値ごとに混合して前記第2のヒストグラムを更新するヒストグラム更新ステップと、
を実行させるためのプログラム。
(付記10)
前記ヒストグラム更新ステップにおいて、前記第2および第4のヒストグラムの各度数値を前記特定画素値以外の前記画素値ごとに所定の割合ずつ加算して得た度数値と、前記特定画素値ごとの前記第2のヒストグラムの度数値とから、更新された前記第2のヒストグラムを算出する、
ことを特徴とする付記9に記載のプログラム。
(付記11)
前記第1のヒストグラムの初期値は、学習用の複数枚の前記主要被写体を示す画像の前記画素値ごとのヒストグラムとして算出し、
前記第2のヒストグラムの初期値は、学習用の複数枚の前記背景を示す画像の前記画素値ごとのヒストグラムとして算出する、
ことを特徴とする付記9または10のいずれかに記載のプログラム。
(付記12)
前記領域分割ステップにおいて、Graph Cuts法により前記エネルギー関数の最小化処理を実行する、
ことを特徴とする付記9ないし11のいずれかに記載のプログラム。