【文献】
新井啓介 外2名,ThumbPop:注目物体を強調した疑似立体サムネイル生成,電子情報通信学会技術研究報告 HIP2011−68−HIP2011−109 ヒューマン情報処理,社団法人電子情報通信学会,2012年 3月22日,第111巻 第500号,第177−182頁
【文献】
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名)
【発明を実施するための形態】
【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には、スマートフォン全体の一般的な動作を制御するプログラムのほか、後述する
図4、
図5、および
図11のフローチャートによって示される最適画像サイズによる画像領域分割処理の制御プログラムが記憶されている。CPU102は、ROM103から、この制御プログラムを読み出し、RAM104をワークメモリとして実行する。これにより、後述する
図2の機能ブロックで示される最適画像サイズによる画像領域分割機能が実現され、この結果、例えばユーザが、撮像装置112によって花などを撮像し、入力装置107で範囲してした画像範囲から、花などの主要オブジェクトをそれ以外の背景から分割する最適画像サイズによる画像領域分割処理が実行される。これにより得られた花などの主要オブジェクト領域の画像データは、ユーザが例えば花の種類を検索するために、通信インタフェース106から特には図示しないインターネットを経由してインターネットに接続される画像検索サーバコンピュータに送信される。このコンピュータ上で、送られた主要オブジェクト領域の花画像データに基づいて花のデータベースが検索される。その結果検索がヒットした花の図鑑情報が、その花の画像データとともにインターネットを経由して通信インタフェース106にて受信され、表示装置108に表示される。
なお、本実施形態による最適画像サイズによる画像領域分割装置101は、携帯情報端末上ではなく、上記サーバコンピュータ上などに実現されてもよい。
【0018】
図2は、
図1の最適画像サイズによる画像領域分割装置101の機能的構成を示す機能ブロック図である。
本実施形態における最適画像サイズによる画像領域分割装置101は、画像内で例えばユーザによって矩形指定された画像範囲内で、花などの主要オブジェクトとその主要オブジェクト以外の背景を領域分割する装置として実現される。
【0019】
トリミング処理手段201は、入力された画像内で、例えばユーザにより矩形枠として指定された画像範囲を、その画像範囲の周囲に余白を残してトリミング処理する。
【0020】
画像サイズ調整手段202は、トリミング処理された画像のサイズが所定の画像サイズと比較して大きい場合には、トリミング処理された画像のサイズを所定の画像サイズに縮小処理して分割対象画像として出力する。また、画像サイズ調整手段202は、トリミング処理された画像のサイズが所定の画像サイズと比較して小さい場合には、トリミング処理された画像を分割対象画像として出力する。
【0021】
領域分割手段203は、分割対象画像内の各画素に付与する主要オブジェクトまたは背景を示す領域ラベル値を更新しながら、その領域ラベル値と各画素の画素値とに基づいて、主要オブジェクトらしさまたは背景らしさと隣接画素間の画素値の変化を評価するエネルギー関数を定義し、その関数の最小化処理により分割対象画像内で主要オブジェクトと背景を領域分割する。この領域分割手段203は例えば、Graph Cuts法によりエネルギー関数の最小化処理を実行する。
【0022】
ここで、トリミング処理手段201によるトリミング処理において、画像サイズ調整手段202から得られる縮小処理された画像を含む分割対象画像上で、例えばユーザにより指定された画像範囲の周囲に所定のサイズの余白が残るように、残すべき余白を決定する動作を実行してよい。
【0023】
図3は、トリミング処理手段201および画像サイズ調整手段202による分割対象画像を生成する処理の説明図である。
図3(a)に示されるように、入力画像301を単純に縮小(リサイズ)する場合を考える。この場合、入力画像301上で例えばユーザにより指定された矩形枠の画像範囲302が小さい場合に、縮小後画像303において、画像範囲302に対応する縮小後画像範囲304内の画像のサイズも小さく縮小されてしまう。この結果、その縮小画像範囲304に対して領域分割手段203によって領域分割計算を行った場合、その計算精度が低下してしまう。
これに対して
図2の本実施形態の構成では、まず、
図3(b)に示されるように、トリミング処理手段201が、入力画像301上で、例えばユーザによって指定された矩形枠の画像範囲302に対して、その周囲の余白分305を加味してトリミング処理を実行する。そして、画像サイズ調整手段202は、もともとユーザにより指定された画像範囲302が小さい場合であって、トリミング処理された画像(トリミング画像)306のサイズが所定の画像サイズと比較して小さい場合には、トリミング画像306に対して縮小処理は行わずに、そのまま分割対象画像として出力する。一方、画像サイズ調整手段202は、トリミング画像306のサイズが所定の画像サイズと比較して大きい場合には、トリミング画像306のサイズを所定の画像サイズに縮小処理し、この縮小処理された画像306′を分割対象画像として出力する。この場合、例えばユーザにより指定された矩形枠の画像範囲302もより小さい画像範囲302′に縮小される。以上の制御処理により、画像のリサイズ後でも計算精度をむやみに下げることなく、領域分割手段203において、最適画像サイズによる領域分割計算が実行可能となる。この結果、その計算において、背景領域を主要オブジェクト領域と誤認識する等の割合が減少し、主要オブジェクトの切り抜き精度を向上させることが可能となる。
【0024】
図4は、本実施形態による最適画像サイズによる画像領域分割処理の全体動作を示すフローチャートである。このフローチャートの処理は、
図5および
図11の詳細処理を示すフローチャートの処理とともに、
図1のCPU102が、ROM103に記憶された制御プログラムを、RAM104をワークメモリとして使用しながら実行する処理として実現される。
【0025】
まず、矩形枠決定処理が実行される(
図4のステップS401)。この処理では、ユーザが、例えば
図1の撮像装置112にて撮像した画像に対して、認識したい物体(例えば花)が存在するおおよその領域に対して、例えばタッチパネル等の入力装置107を用いて、矩形枠を指定する。例えば、タッチパネル上での、指によるスライド動作である。
【0026】
次に、分割対象画像生成処理が実行される(
図4のステップS402)。この処理は、
図2のトリミング処理手段201および画像サイズ調整手段202の機能を実現する。この処理の詳細については、後述する。
【0027】
次に、ステップS402の分割対象画像生成処理により得られた分割対象画像内の各画素に対して、主要オブジェクトと前記背景を領域分割する領域分割処理が実行される(
図4のステップS403)。この処理の詳細については、後述する。
【0028】
一度領域分割処理が終了した後、収束判定が行われる(
図4のステップS404)。この収束判定は、以下のいずれかが満たされたときに、YESの判定結果となる。
・繰り返し回数が一定以上になった
・前回前景とされた領域面積と今回前景とされた領域の差が一定以下
【0029】
ステップS404の判定で収束せず、その判定がNOであった場合、前回のグラフカット処理の状況に応じて、ユーザが指定した矩形枠内の後述するコスト関数g
v (X
v )が、次のようにして修正されてデータ更新される(
図4のステップS405)。ステップS403のグラフカット処理によって主要オブジェクトと判定された領域のヒストグラムと、事前に用意されている後述するヒストグラムθ(c,0)が、カラー画素値cごとに例えば一定割合で混合(加算)される。これにより、新たな主要オブジェクトらしさを示すヒストグラムθ(c,0)が生成され、それに基づいて新たなコスト関数g
v (X
v )が計算される(後述する数7式等を参照)。同様に、ステップS403のグラフカット処理によって背景と判定された領域のヒストグラムと、事前に用意されている後述するヒストグラムθ(c,1)が、カラー画素値cごとに例えば一定割合で混合(加算)される。これにより、新たな背景らしさを示すヒストグラムθ(c,1)が生成され、それに基づいて新たなコスト関数g
v (X
v )が計算される(後述する数8式等を参照)。
【0030】
ステップS404の判定が収束し、その判定がYESになると、
図4のフローチャートで示される領域分割処理は終了とし、現在得られている主要オブジェクト領域が最終結果として出力される。
【0031】
図5は、
図4のステップS402の分割対象画像生成処理を示すフローチャートである。また、
図6は、トリミング処理により得られるトリミング画像306(
図3の306に対応)の説明図である。
【0032】
まず、
図6に示されるように、例えばユーザにより矩形枠として指定された画像範囲302(
図3の302に対応)の横幅をw画素、縦の高さをh画素とする。
この画像範囲302に対して、次式に示されるように、両上下方向に余白SP1画素がそれぞれ加算されることにより、トリミング処理により得られるトリミング画像306の横幅=NW画素と、縦の高さ=NH画素が計算される(
図5のステップS501)。
【数1】
【0033】
次に、入力画像301(
図3参照)に対して、指定された画像範囲302を中心として、横幅=NW画素、縦の高さ=NH画素の範囲が切り抜かれて、トリミング画像306が抽出される(
図5のステップS502)。
【0034】
以上の
図5のステップS501およびS502の処理が、
図2のトリミング処理手段201の機能を実現する。
【0035】
次に、指定された画像範囲302において、横幅w画素が縦の高さh画素よりも大きいか否かが判定される(
図5のステップS503)。
【0036】
指定された画像範囲302において横幅w画素が縦の高さh画素よりも大きくステップS503の判定がYESならば、トリミング画像306の横幅NWが所定のサイズsize画素以下であるか否かが判定される(
図5のステップS504)。
【0037】
トリミング画像306の横幅NWが所定のサイズsize画素以下でステップS504の判定がYESならば、トリミング画像306は縮小処理されずにそのまま分割対象画像として出力される(
図5のステップS504→S508)。
【0038】
トリミング画像306の横幅NWが所定のサイズsize画素よりも大きくステップS504の判定がNOならば、NW画素=size画素となるように、トリミング画像306が縦横同じ縮尺で縮小される(
図5のステップS504→S505)。その後、その縮小されたトリミング画像306′(
図3参照)が、分割対象画像として出力される(
図5のステップS505→S508)。
【0039】
指定された画像範囲302において横幅w画素が縦の高さh画素よりも大きくはなくステップS503の判定がNOならば、トリミング画像306の縦の高さNHが所定のサイズsize画素以下であるか否かが判定される(
図5のステップS506)。
【0040】
トリミング画像306の縦の高さNHが所定のサイズsize画素以下でステップS506の判定がYESならば、トリミング画像306は縮小処理されずにそのまま分割対象画像として出力される(
図5のステップS506→S508)。
【0041】
トリミング画像306の縦の高さNHが所定のサイズsize画素よりも大きくステップS506の判定がNOならば、NH画素=size画素となるように、トリミング画像306が縦横同じ縮尺で縮小される(
図5のステップS506→S507)。その後、その縮小されたトリミング画像306′(
図3参照)が、分割対象画像として出力される(
図5のステップS507→S508)。
【0042】
ステップS505またはS507の縮小処理では、トリミング画像306中の指定された画像範囲302以外の余白部分も縮小されるので、事前に縮小率を計算し、縮小後の余白部分のサイズを維持できるようにステップS501でのトリミング処理が実行される。
なお、一定の余白(マージン)を設定するのは、主に次の3つの理由による。
第1に、
図4のステップS403の領域分割処理におけるGraph Cuts法による繰り返し処理の後にステップS405でデータ更新を行う場合、前述したように、主要オブジェクトらしさを示すヒストグラムと、背景らしさを示すヒストグラムを順次更新する必要がある。この場合、今回処理された分割対象画像から得られる主要オブジェクト領域のヒストグラムと背景領域のヒストグラムとによって更新を行う必要がある。この背景領域のヒストグラムを得るために、一定の背景領域が必要なため、背景領域としての余白が必要となる。
第2に、ユーザが矩形枠で主要オブジェクトのおおよその領域を切り抜いた場合に、それに余白を付加することにより、その切り抜いた画像範囲の例えば表示装置への見栄えをよくする効果がある。
第3に、主要オブジェクトが切り抜かれた後に、その主要オブジェクトに対して画像認識等が行われる。この場合に、その主要オブジェクトから抽出する特徴量として、例えばSIFT(Scale Invariant Feature Transform)と呼ばれる画像中の輝度や色の勾配のヒストグラム情報等のスケールを持つものを用いる場合に、所定の画像範囲ずつ順次見る必要があるため、その範囲分だけ対象画素の周囲の余白領域が必要なためである。この余白としてのマージンサイズは、画像認識率が高くなるときに用いたSIFT等の特徴量の半径サイズにより決まる。
【0043】
以上の
図5のステップS503からS507の処理が、
図2の画像サイズ調整手段202の機能を実現する。上述した制御処理により、画像のリサイズ後でも計算精度をむやみに下げることなく、
図4のステップS402の分割対象画像生成処理に続くステップS403の領域分割処理において、最適画像サイズによる領域分割計算が実行可能となる。この結果、その計算において、背景領域を主要オブジェクト領域と誤認識する等の割合が減少し、主要オブジェクトの切り抜き精度を向上させることが可能となる。
【0044】
以下に、
図4のステップS403の領域分割処理について、説明する。
いま、
【数2】
を、要素X
v が分割対象画像Vにおける画素vに対する領域ラベルを示す領域ラベルベクトルであるとする。この領域ラベルベクトルは、例えば、画素vが主要オブジェクト領域内にあれば要素X
v =0、背景領域内にあれば要素X
v =1となるバイナリベクトルである。すなわち、
【数3】
である。
【0045】
本実施形態において実行される領域分割処理は、画像Vにおいて、次式で定義されるエネルギー関数E(X)を最小にするような数2式の領域ラベルベクトルXを求める処理である。
【数4】
エネルギー最小化処理が実行される結果、領域ラベルベクトルX上で領域ラベル値X
v =0となる画素vの集合として、主要オブジェクト領域が得られる。本実施形態の例でいえば、矩形枠内の花の領域である。なお、領域ラベルベクトルX上で領域ラベル値X
v =1となる画素vの集合が、背景領域(矩形枠外も含む)となる。
【0046】
数4式のエネルギーを最小化するために、次式および
図7で示される重み付き有向グラフ(以下「グラフ」と略す)を定義する。
【数5】
ここで、Vはノード(node)、Eはエッジ(edge)である。このグラフが画像の領域分割に適用される場合は、画像の各画素が各ノードVに対応する。また、画素以外のノードとして、次式および
図7中に示される、
【数6】
と呼ばれる特殊なターミナルが追加される。このソースsを主要オブジェクト領域、シンクtを背景領域に対応付けて考える。また、エッジEは、ノードV間の関係を表現している。周辺の画素との関係を表したエッジEをn−link、各画素とソースs(主要オブジェクト領域に対応)またはシンクt(背景領域に対応)との関係を表したエッジEをt−linkと呼ぶ。
【0047】
いま、ソースsと各画素に対応するノードとを結ぶ各t−linkを、各画素がどの程度主要オブジェクト領域らしいかを示す関係ととらえる。そして、その主要オブジェクト領域らしさを示すコスト値を、数4式第1項に対応付けて、
【数7】
と定義する。ここで、θ(c、0)は、学習用に用意した複数枚(数百枚程度)の主要オブジェクト領域画像から算出したカラー画素値cごとのヒストグラム(出現回数)を示す関数データであり、例えば
図8(a)に示されるように予め得られている。なお、θ(c、0)の全カラー画素値cにわたる総和は1になるように正規化されているものとする。また、I(v)は、分割対象画像の各画素vにおけるカラー(RGB)画素値である。実際には、カラー(RGB)画素値を輝度値に変換した値であるが、以下では説明の簡単のために「カラー(RGB)画素値」または「カラー画素値」と記載する。数7式において、θ(I(v)、0)の値が大きいほど、コスト値は小さくなる。これは、予め得られている主要オブジェクト領域のカラー画素値の中で出現回数が多いものほど、数7式で得られるコスト値が小さくなって、画素vが主要オブジェクト領域中の画素らしいことを意味し、数4式のエネルギー関数E(X)の値を押し下げる結果となる。
【0048】
次に、シンクtと各画素に対応するノードとを結ぶ各t−linkを、各画素がどの程度背景領域らしいかを示す関係ととらえる。そして、その背景領域らしさを示すコスト値を、数4式第1項に対応付けて、
【数8】
と定義する。ここで、θ(c、1)は、学習用に用意した複数枚(数百枚程度)の背景領域画像から算出したカラー画素値cごとのヒストグラム(出現度数)を示す関数データであり、例えば
図8(b)に示されるように予め得られている。なお、θ(c、1)の全カラー画素値cにわたる総和は1になるように正規化されているものとする。I(v)は、数7式の場合と同様に、入力画像の各画素vにおけるカラー(RGB)画素値である。数7式において、θ(I(v)、1)の値が大きいほど、コスト値は小さくなる。これは、予め得られている背景領域のカラー画素値の中で出現回数が多いものほど、数8式で得られるコスト値が小さくなって、画素vが背景領域中の画素らしいことを意味し、数4式のエネルギー関数E(X)の値を押し下げる結果となる。
【0049】
次に、各画素に対応するノードとその周辺画素との関係を示すn−linkのコスト値を、数4式第2項に対応付けて、
【数9】
と定義する。ここで、dist(u,v)は、画素vとその周辺画素uのユークリッド距離を示しており、κは所定の係数である。また、I(u)およびI(v)は、入力画像の各画素uおよびvにおける各カラー(RGB)画素値である。画素vおよびその周辺画素uの各領域ラベル値X
u およびX
v が同一(X
u =X
v )となるように選択された場合における数9式のコスト値は0とされて、エネルギーE(X)の計算には影響しなくなる。一方、画素vとその周辺画素uの各領域ラベル値X
u およびX
v が異なる(X
u ≠X
v )ように選択された場合における数9式のコスト値は、例えば
図9に示される特性を有する関数特性となる。すなわち、画素vおよびその周辺画素uの各領域ラベル値X
u およびX
v が異なっていて、かつ画素vおよびその周辺画素uのカラー画素値の差I(u)−I(v)が小さい場合には、数9式で得られるコスト値が大きくなる。この場合には、数4式のエネルギー関数E(X)の値が押し上げられる結果となる。言い換えれば、近傍画素間で、カラー画素値の差が小さい場合には、それらの画素の各領域ラベル値は、互いに異なるようには選択されない。すなわち、その場合には、近傍画素間では領域ラベル値はなるべく同じになって主要オブジェクト領域または背景領域はなるべく変化しないように、制御される。一方、画素vおよびその周辺画素uの各領域ラベル値X
u およびX
v が異なっていて、かつ画素vおよびその周辺画素uのカラー画素値の差I(u)−I(v)が大きい場合には、数9式で得られるコスト値が小さくなる。この場合には、数4式のエネルギー関数E(X)の値が押し下げられる結果となる。言い換えれば、近傍画素間で、カラー画素値の差が大きい場合には、主要オブジェクト領域と背景領域の境界らしいことを意味し、画素vとその周辺画素uとで、領域ラベル値が異なる方向に制御される
。
【0050】
以上の定義を用いて、入力画像の各画素vごとに、数7式によって、ソースsと各画素vとを結ぶt−linkのコスト値(主要オブジェクト領域らしさ)が算出される。また、数8式によって、シンクtと各画素vとを結ぶt−linkのコスト値(背景領域らしさ)が算出される。さらに、入力画像の各画素vごとに、数9式によって、画素vとその周辺例えば8方向の各8画素とを結ぶ8本のn−linkのコスト値(境界らしさ)が算出される。
【0051】
そして、理論的には、数2式の領域ラベルベクトルXの全ての領域ラベル値の0または1の組合せごとに、各領域ラベル値に応じて上記数7式、数8式、および数9式の計算結果が選択されながら数4式のエネルギー関数E(X)が計算される。そして、全ての組合せの中でエネルギー関数E(X)の値が最小となる領域ラベルベクトルXを選択することにより、領域ラベルベクトルX上で領域ラベル値X
v =0となる画素vの集合として、主要オブジェクト領域を得ることができる。
【0052】
しかし実際には、領域ラベルベクトルXの全ての領域ラベル値の0または1の組合せ数は、2の画素数乗通りあるため、現実的な時間でエネルギー関数E(X)の最小化処理を計算することができない。
【0053】
そこで、Graph Cuts法では、次のようなアルゴリズムを実行することにより、エネルギー関数E(X)の最小化処理を現実的な時間で計算することを可能にする。
図10は、上述した数7式、数8式で定義されるt−linkと数9式で定義されるn−linkを有するグラフと、領域ラベルベクトルXおよびグラフカットとの関係を、模式的に示した図である。
図10では、理解の容易化のために、画素vは一次元的に示されている。
【0054】
数4式のエネルギー関数E(X)の第1項の計算で、領域ラベルベクトルX中の領域ラベル値が0となるべき主要オブジェクト領域中の画素では、数7式と数8式のうち、主要オブジェクト領域中の画素らしい場合により小さな値となる数7式のコスト値のほうが小さくなる。従って、ある画素において、ソースs側のt−linkが選択されシンクt側のt−linkがカットされて(
図10の1002のケース)、数7式を用いて数4式のE(X)の第1項が計算された場合に、その計算結果が小さくなれば、その画素の領域ラベル値としては0が選択される。そして、そのグラフカット状態が採用される。計算結果が小さくならなければ、そのグラフカット状態は採用されず、他のリンクの探索およびグラフカットが試みられる。
【0055】
逆に、領域ラベルベクトルX中の領域ラベル値が1となるべき背景領域中の画素では、数7式と数8式のうち、背景領域中の画素らしい場合により小さな値となる数8式のコスト値のほうが小さくなる。従って、ある画素において、シンクt側のt−linkが選択されソースs側のt−linkはカットされて(
図10の1003のケース)、数8式を用いて数4式のE(X)の第1項が計算された場合に、その計算結果が小さくなれば、その画素の領域ラベル値としては1が選択される。そして、そのグラフカット状態が採用される。計算結果が小さくならなければ、そのグラフカット状態は採用されず、他のリンクの探索およびグラフカットが試みられる。
【0056】
一方、数4式のエネルギー関数E(X)の第1項の計算に係る上記グラフカット処理により、領域ラベルベクトルX中の領域ラベル値が0または1で連続すべき主要オブジェクト領域内部または背景領域内部の画素間では、数9式のコスト値が0となる。従って、数9式の計算結果は、エネルギー関数E(X)の第2項のコスト値の計算には影響しない。また、その画素間のn−linkは、数9式がコスト値0を出力するように、カットされずに維持される。
【0057】
ところが、エネルギー関数E(X)の第1項の計算に係る上記グラフカット処理により、近傍画素間で、領域ラベル値が0と1の間で変化した場合に、それらの画素間のカラー画素値の差が小さければ、数9式のコスト値が大きくなる。この結果、数4式のエネルギー関数E(X)の値が押し上げられる。このようなケースは、同一領域内で第1項の値による領域ラベル値の判定がたまたま反転するような場合に相当する。従って、このようなケースでは、エネルギー関数E(X)の値が大きくなって、そのような領域ラベル値の反転は選択されない結果となる。また、この場合には、数9式の計算結果が、上記結果を維持するように、それらの画素間のn−linkは、カットされずに維持される。
【0058】
これに対して、エネルギー関数E(X)の第1項の計算に係る上記グラフカット処理により、近傍画素間で、領域ラベル値が0と1の間で変化した場合に、それらの画素間のカラー画素値の差が大きければ、数9式のコスト値が小さくなる。この結果、数4式のエネルギー関数E(X)の値が押し下げられる。このようなケースは、それらの画素部分が主要オブジェクト領域と背景領域の境界らしいことを意味している。従って、このようなケースでは、これらの画素間で領域ラベル値を異ならせて、主要オブジェクト領域と背景領域の境界を形成する方向に制御される。また、この場合には、境界の形成状態を安定化するために、それらの画素間のn−linkがカットされて、数4式の第2項のコスト値が0にされる(
図10の1004のケース)。
【0059】
以上の判定制御処理が、ソースsのノードを起点にして、順次各画素のノードをたどりながら繰り返されることにより、
図10の1001で示されるようなグラフカットが実行され、エネルギー関数E(X)の最小化処理が現実的な時間で計算される。この処理の具体的な手法としては、例えば、非特許文献1に記載されている手法を採用することができる。
【0060】
そして、各画素ごとに、ソースs側のt−linkが残っていれば、その画素の領域ラベル値として0、すなわち主要オブジェクト領域の画素を示すラベルが付与される。逆に、シンクt側のt−linkが残っていれば、その画素の領域ラベル値として1、すなわち背景領域の画素を示すラベルが付与される。最終的に、領域ラベル値が0となる画素の集合として、主要オブジェクト領域が得られる。
【0061】
図11は、上述した動作原理に基づく
図4のステップS403の領域分割処理を示すフローチャートである。
【0062】
まず、入力画像全体から、カラー画素値I(V)が1つずつ読み込まれる(
図11のステップS1101)。
【0063】
次に、ステップS1101で読み込まれた画素が、
図4のステップS402にて抽出された分割対象画像内の画素であるか否かが判定される(
図11のステップS1102)。
【0064】
ステップS1102の判定がYESの場合には、前述した数7式、数8式、および数9式に基づいて、主要オブジェクト領域らしさを示すコスト値、背景領域らしさを示すコスト値、および境界らしさを示すコスト値が、それぞれ算出される(
図11のステップS1103、S1104、およびS1105)。なお、θ(c、0)の初期値は、学習用に用意した複数枚(数百枚程度)の主要オブジェクトの領域から算出される。同様に、θ(c、1)の初期値は、学習用に用意した複数枚(数百枚程度)の背景の領域から算出される。
【0065】
一方、ステップS1102の判定がNOの場合には、分割対象画像の外側には主要オブジェクト領域はないため、そこが主要オブジェクト領域と判定されないようにするために、主要オブジェクト領域らしさを示すコスト値g
v (X
v )が、次式のように一定の大きな値Kとされる。
【数10】
ここで、Kは、次式に示されるように、任意のピクセルの平滑化項の総和よりも大きい値を設定しておく(以上、
図11のステップS1106)。
【数11】
【0066】
また、分割対象画像の外側が必ず背景領域と判定されるようにするために、背景領域らしさを示すコスト値g
v (X
v )が、次式のように0とされる(
図11のステップS1107)。
【数12】
【0067】
さらに、分割対象画像の外側は全て背景領域であるため、h
uv(X
u ,X
v )の値は0とされる(
図11のステップS1108)。
【0068】
以上の処理の後、画像内に処理すべき画素が残っているか否かが判定される(
図11のステップS1109)。
【0069】
処理すべき画素がありステップS1109の判定がYESならば、ステップS1101の処理に戻って、上記処理が繰り返される。
【0070】
処理すべき画素がなくなりステップS1109の判定がNOになると、画像内の全ての画素について求まったコスト値を用いて、数4式のエネルギー関数E(X)が計算されながら、Graph Cutsアルゴリズムが実行され、主要オブジェクトと背景が領域分割される(ステップS1110)。
【0071】
以上説明した実施形態において、主要オブジェクトとしては、花に限られず、様々なオブジェクトを採用することができる。
【0072】
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
画像内で指定された画像範囲内の主要オブジェクトと該主要オブジェクト以外の背景を領域分割する装置であって、
前記画像内で、前記指定された画像範囲を、該画像範囲の周囲に余白を残してトリミング処理するトリミング処理手段と、
前記トリミング処理された画像のサイズが所定の画像サイズと比較して大きい場合に前記トリミング処理された画像のサイズを前記所定の画像サイズに縮小処理して分割対象画像として出力し、前記トリミング処理された画像のサイズが前記所定の画像サイズと比較して小さい場合に前記トリミング処理された画像を前記分割対象画像として出力する画像サイズ調整手段と、
前記分割対象画像内の各画素に付与する前記主要オブジェクトまたは前記背景を示す領域ラベル値を更新しながら、該領域ラベル値と前記各画素の画素値とに基づいて、前記主要オブジェクトらしさまたは前記背景らしさと隣接画素間の前記画素値の変化を評価するエネルギー関数の最小化処理により、前記分割対象画像内で前記主要オブジェクトと前記背景を領域分割する領域分割手段と、
を備えることを特徴とする最適画像サイズによる画像領域分割装置。
(付記2)
前記トリミング処理において、前記分割対象画像上で前記画像範囲の周囲に所定のサイズの余白が残るように、前記残す余白を決定する、
ことを特徴とする付記1に記載の最適画像サイズによる画像領域分割装置。
(付記3)
前記領域分割手段は、Graph Cuts法により前記エネルギー関数の最小化処理を実行する、
ことを特徴とする付記1または2のいずれかに記載の最適画像サイズによる画像領域分割装置。
(付記4)
画像内で指定された画像範囲内の主要オブジェクトと該主要オブジェクト以外の背景を領域分割する方法であって、
前記画像内で、前記指定された画像範囲を、該画像範囲の周囲に余白を残してトリミング処理するトリミング処理ステップと、
前記トリミング処理された画像のサイズが所定の画像サイズと比較して大きい場合に前記トリミング処理された画像のサイズを前記所定の画像サイズに縮小処理して分割対象画像として出力し、前記トリミング処理された画像のサイズが前記所定の画像サイズと比較して小さい場合に前記トリミング処理された画像を前記分割対象画像として出力する画像サイズ調整ステップと、
前記分割対象画像内の各画素に付与する前記主要オブジェクトまたは前記背景を示す領域ラベル値を更新しながら、該領域ラベル値と前記各画素の画素値とに基づいて、前記主要オブジェクトらしさまたは前記背景らしさと隣接画素間の前記画素値の変化を評価するエネルギー関数の最小化処理により、前記分割対象画像内で前記主要オブジェクトと前記背景を領域分割する領域分割ステップと、
を備えることを特徴とする最適画像サイズによる画像領域分割方法。
(付記5)
画像内で指定された画像範囲内の主要オブジェクトと該主要オブジェクト以外の背景を領域分割するコンピュータに、
前記画像内で、前記指定された画像範囲を、該画像範囲の周囲に余白を残してトリミング処理するトリミング処理ステップと、
前記トリミング処理された画像のサイズが所定の画像サイズと比較して大きい場合に前記トリミング処理された画像のサイズを前記所定の画像サイズに縮小処理して分割対象画像として出力し、前記トリミング処理された画像のサイズが前記所定の画像サイズと比較して小さい場合に前記トリミング処理された画像を前記分割対象画像として出力する画像サイズ調整ステップと、
前記分割対象画像内の各画素に付与する前記主要オブジェクトまたは前記背景を示す領域ラベル値を更新しながら、該領域ラベル値と前記各画素の画素値とに基づいて、前記主要オブジェクトらしさまたは前記背景らしさと隣接画素間の前記画素値の変化を評価するエネルギー関数の最小化処理により、前記分割対象画像内で前記主要オブジェクトと前記背景を領域分割する領域分割ステップと、
を実行させるためのプログラム。