効率的なグラフ画像のセグメンテヌション







画像のセグメント化ず゚ッゞ怜出  ゚ッゞ怜出 は、 コンピュヌタヌビゞョンシステムで重芁な圹割を果たし、シヌンの認識ずオブゞェクトの遞択定矩に䜿甚されたす。 抂しお、これは、たずえば高レベルのタスクを解決するために蚭蚈された䞊べ替えず同じツヌルです。 したがっお、このクラスのアルゎリズムの蚭蚈を理解するこずは、そのようなシステムを構築するずきに、芁件品質/パフォヌマンスの点でずタスクの詳现を考慮しお䞍芁ではありたせん。



この蚘事では 、2004幎に公開されたPedro F. Felzenszwalb  MIT およびDaniel P. Huttenlocher  Cornell University による効率的なグラフベヌスの画像セグメンテヌションアルゎリズムに぀いお簡単に説明したす。 はい、アルゎリズムは比范的叀いですが、それにもかかわらず、それはただ非垞に人気があり、パフォヌマンスの面で良い結果を瀺しおいたす。



カットの䞋-写真ずテキストの倧芏暡な混合物、䞻題の珟圚のレベルの知識を芁求したせん。 奜奇心は倧歓迎です。







最初に、画像凊理ずはほずんど関係のないグラフに぀いお、䞀芋アルゎリズムを説明したす。 ただし、少し埌に画像のセグメンテヌションに関連しお解釈が行われたす。





クラスカルアルゎリズム



Kraskalアルゎリズム  wiki は、ワむダフレヌム特定のグラフの最小スパニングツリヌを構築したす。 次に、英語の略語MST 最小スパニングツリヌが䜿甚されたす。



目的マップ䞊にはいく぀かの集萜があり耇数の連絡先がボヌド䞊にありたす、それらをすべお盞互に接続しお、道路ワむダの党長が最小になるようにする必芁がありたす。









* はい、そのような定匏化のタスクは通垞「シュタむナヌ問題」 蚘事 ず呌ばれ、それを解決しお、郜垂をさらに安く接続するこずができたす。 しかし、最終的には、アスファルトを舗装しないでください... =



それを解決するには、次のものが必芁です。









問題の珟圚のステヌトメントでは、グラフの頂点v i  -郜垂を衚し、゚ッゞev i 、v j  -郜垂間の道路を衚したす。 郜垂のペアv i 、v j 間の距離を知っおいたす-これぱッゞwevi、vjの重みです。 MSTを芋぀ける必芁がありたす。 グラフ内のこのようなツリヌサむクルなし䜙分な道路を建蚭する理由により、゚ッゞの合蚈が最小になり、すべおの頂点に到達できたす。



最初は、各頂点郜垂自䜓が、察応するセットG 1 、G 2 、... G N 頂点の数によるの唯䞀の誇り高い代衚です。 圌女がMSTを結成したず考えながらみたしょう。 アルゎリズムの過皋で、これらの異皮集合すべおを効率的か぀倖亀的に組み合わせお単䞀のGにし、それに含たれる頂点がMSTを圢成するようにしたす。 これを行うには













ばらばらのデヌタ構造



Kraskalアルゎリズムで「セット」の抂念を実装するには、 Disjoint-setデヌタ構造が䜿甚されたす。 それを䜿甚する䜜業は、2぀の基本操䜜を実行するように最適化されおいたす。 画像のセグメンテヌションのトピックに近づくために、画像のピクセルずその色に関する説明を続けたす。 日本の青い海を背景にバッゞヌを分割するずしたす。 最初に、各ピクセルグラフの䞊郚はそれ自身-独自のセグメントセットにありたすが、アルゎリズム䞭に「類䌌」色1぀のオブゞェクトのピクセル頂点は埐々に1぀のセグメントに結合されたす。



アルゎリズムの特定のステップで、2぀の隣接するピクセルを接続する゚ッゞが接続されるず仮定したす。゚ッゞの䞀方の端では、ピクセルは「オレンゞ」で、もう䞀方は「赀」です。 ゚ッゞの長さは、ピクセル間の「色差」ずしお定矩されたす。 短い長さのリブ類䌌の色はすべお既に結合されおいたす。バッゞヌのオレンゞず赀のセグメントは、おそらくすでに匷調衚瀺されおいたす。 アルゎリズムに埓っお、珟圚の「オレンゞ」ピクセルず「赀」ピクセルが同じセグメントにあるかどうかを調べる必芁がありたすか それらが異なっおいお、セグメントの色が䌌おいるず思われる堎合は、それらを1぀に組み合わせお構築を続けたす...䞀般に、ピクセルのみで同じクラスカルアルゎリズム。



これらの操䜜に䜿甚される構造は、ツリヌに非垞に䌌おいたすただし、むンデックスの配列によっお実装されたす。 その䞭で、各ピクセルに察しお、祖先が瀺されおいたす。 同じセグメントにある同様の色のピクセルぞのポむンタヌむンデックス。 基本操䜜











さお、ピクセル単䜍でセグメントを効率的に怜玢しお結合し、Kraskalアルゎリズムを䜿甚しおMSTを構築できるようになりたした。 2぀の領域を結合たたは分離する決定がどのように行われるかを調べる時が来たした。







分割しお埁服する



セグメンテヌションアルゎリズムは、1぀のセグメントが終了し、別のセグメントが開始する堎所を明確に決定する必芁がありたす。 原則ずしお、境界線は、オブゞェクトの背景、飛行機の圱、オりムの海、フェンスの碑文の領域で芋られる明るさおよび/たたは色合いの特城的な違いです...そしお「差」がいく぀かの「しきい倀」しきい倀よりも倧きい堎合、これは、これらが異なるセグメントであるこずに埓う必芁がありたす。 しかし、小さな問題がありたす。違いはオブゞェクトごずに倧きく異なり、䞀意に定矩された定数しきい倀しきい倀でセグメントを「分離」するこずは困難です。 テヌブルの衚面が壁に接しおいる堎合テヌブルの衚面壁に沿った隣接するピクセル間の差は比范的小さくなりたすが、テヌブルず壁の境界では、セグメントを分離するゞャンプがありたす。 これは明らかです。 そしお、海の背景にオりムがいるずしたら 圌自身は非垞に「雑倚」で、その䞭には海からそれを「分離」するために匷床に倧きな違いがありたす緑赀黄 、別の「閟倀」閟倀が必芁です。 そしお埐々に、隣接するセグメントが「䞀緒に運呜づけられおいない」ず刀断するしきい倀は、ロヌカルむンゞケヌタだけでなく、1぀の゚ッゞ隣接するピクセルを接続するに沿った匷床差だけでなく、これらのセグメント自䜓も䟝存する必芁があるずいう結論に達したすそれ自䜓は滑らか色の点でたたは「カラフル」です。







灰色の写真



本栌的なカラヌ画像の凊理に進む前に、画像がグレヌスケヌル、すなわち 画像行列の各セルには、ピクセルの明るさを衚す数倀が間隔[0 ... 1]に栌玍されたす。















効率的なグラフベヌスの画像セグメンテヌション



各画像ピクセルは、グラフの頂点で衚されたす。 そしお、隣接する頂点を接続する゚ッゞの重み長さは、次の匏で衚されたす。wv i 、v j = | Ip i -Ip j | ここで、 Ip i はピクセルp iの匷床明るさです。



Kraskalアルゎリズムの実行䞭に、䞭間段階でいく぀かの異なるセグメントピクセルのサブセットがあり、内郚の゚ッゞの合蚈重量が最小になりたす。セグメントは最小長の゚ッゞで結合されたす。 隣接するピクセル間の「匷床の差」は最小限です。 したがっお、同じセグメント内の隣接するピクセルの色は䌌おいたす。 しかし、最倧rib骚の特定の倀匷床差たでのみ...



そしお...珟圚のステップで最小の゚ッゞを取りたした。 この゚ッゞの隣接する頂点である2぀のピクセルに぀いお、1぀の既に構築されたセグメントから決定したすか セグメント間の差を決定するために、すでに特定の倀を構築した各セグメントに関連付けたす-その内郚の最倧匷床差、すなわち セグメント内のMSTの最長゚ッゞ







個別に怜玢する必芁はありたせん。「サブセグメント」のコンポヌネントを結合するずきに远加される゚ッゞの長さを保存するだけです。 実際、合䜵時には、远加された゚ッゞの長さは、各「サブセグメント」の既に構築されたMSTよりも長くなりたした。 ゚ッゞは昇順で凊理されたす。



セグメントC 1 、C 2の近䌌決定ルヌルを取埗したす。





症状これらのセグメントを区別する必芁がありたすか
2぀の異なるセグメントを接続する最小長の珟圚の゚ッゞ
考慮されたセグメントの1぀内のより小さい倧きいから匷床差


セグメントが「結合」するためには、それらの境界での匷床の差は、結合された各セグメント内の最倧差よりも小さくなければなりたせん。















あなたを探しおいたす



画像からグラフを䜜成する方法は どのピクセルが隣接しおいたすか 衚面には2぀の䞻なアプロヌチがありたす。









このアルゎリズムは、8連結グラフではより良い結果をもたらすはずですが、4連結グラフでは非垞に受け入れられる結果が埗られるず同時に、はるかに高速に実行されたす。 そしお、カラヌ画像を凊理するための「距離」ずしお、アルゎリズムの䜜成者によっお実装された、たさにそのような単玔なピクセルの色の違いを取るこずができたす。







ただし、このような距離の定匏化には欠点がありたす。 局所的に隣接するピクセル間の「匷床の違い」を考慮するず、次の写真の空はワむダヌを暪切る2぀の別々のセグメントに分割されたす。たたは、グリッドの背景に察しお芝生を凊理するず、さらに悪い結果が埗られたす。









芝生の各フラグメントは個別のセグメントずしおマヌクされたすが、これは1぀のオブゞェクトです



したがっお、代替の実斜圢態では、著者は、近くのピクセルだけでなく、画像の局所特性すぐ近くにあるピクセルを考慮しお、「ワむダヌを飛び越え」写真を参照、䞀定の距離にあるセグメントの続きに手を䌞ばそうずするこずを提案したす。 これを行うには、ピクセルの䜍眮x、yずその色r、g、bの䞡方に応じお、゚ッゞ長ずしおナヌクリッド距離を遞択するこずをお勧めしたす。







物理的にある皋床の距離にある堎合でも、ピクセルが近くにある堎合、たたは類䌌の色盞を持぀堎合、ピクセルは「隣接」ず芋なされたす。 グラフを䜜成するために、著者は、各ピクセルを1020、30「最も近い」接続するこずを提案しおいたす。 これにより、セグメンテヌションが改善されたすが、より倚くのコンピュヌティングリ゜ヌスが必芁になりたす。





団結しお、チヌム



最初に戻りたす。 むかしむかし、すべおのピクセルが断片化されるず、隣接するピクセル間で匷床の有意差が芳察され、それらのマヌゞが劚げられたした。 各ピクセルを分離する必芁のある顕埮鏡写真が䞎えられた可胜性はほずんどありたせん。おそらく、それらは䜕らかの倧きなオブゞェクトオりムの䞀郚です。 パヌティションの正確性がより重芁である、すでに構築されおいる倧きなセグメントよりも「マヌゞ」マヌゞの皋床が倧きいため、決定ルヌルで構築されたセグメントのサむズに応じお倀を远加したす。 どこ| C | 問題のセグメントのパワヌ珟時点でのピクセル数であり、 kは既に手動で蚭定されたセグメンテヌションパラメヌタヌです。 決定ルヌルの同様の修正により、匏が䜿甚されたす。









「修正」は、セグメントの成長に応じお埐々に平準化されたす増加| C | ...



実際、このようなタスクTの代わりに、凊理された画像の詳现を考慮する別の関数を遞択できたすセグメントの圢状、写真内の䜍眮、特定の色合い...





ガりスがかし



非垞に「雑倚な」写真に戻る









「匷床の差」などの定矩でピクセル間の距離を決定するずき、「雑倚」のピクセルは、単䞀のオブゞェクトであっおも、1぀のオブゞェクトに結合するのに非垞に柔軟ではないこずは明らかです。 ノむズ/アヌティファクトの結合ず陀去をより「調敎」するために、通垞、特定の半埄暙準偏差 シグマのガりスフィルタヌhttp://habrahabr.ru/blogs/webdev/43895/が画像に適甚されたす。 これは、ピクセルの色成分の「盞互浞透」を匕き起こし、ピクセルはより積極的に接觊したす。





合蚈



セグメンテヌションには倚くの方法がありたす。さたざたなアプロヌチに぀いおは、 蚘事 「画像のセグメンテヌション方法自動セグメンテヌション」で詳しく説明されおいたす 。 しかし、抂しお、セグメンテヌションは高品質たたは生産的である必芁があり、運がよければ、䞀床にすべおを行う必芁がありたす。 䞊蚘の方法は、単なる生産的なオプションです。



このセグメンテヌションの方法では、最も時間のかかるプロセスは、 Oe log⁡eに察しお実行されるすべおの゚ッゞの゜ヌトです。ここで、 eはグラフ内の゚ッゞの数です。 したがっお、NxM画像の堎合、゚ッゞのピクセルは次のようになりたす | e | = 4 * N * M



アルゎリズムの゜ヌスコヌドは、このリンクから入手できたす。





しかし、OpenCVはどうでしょうか



誰もが奜きなOpenCVラむブラリ wiki には、「 cvPyrSegmentation 」メ゜ッドがありたす。 ピラミッド画像セグメンテヌション法。 配眮が倚少異なりたす。 したがっお、圌の説明には別の蚘事、぀たり写真が必芁です。 セグメントはレむダヌレベルに組み蟌たれ、同様の色のピクセルを1぀レむダヌの䞊にあるに結合し、「ストップ」の䞊の次のレベルレベルにあるレむダヌを順番に凊理したす。









2006幎、マラガ倧孊スペむンで、いく぀かのピラミッド型アルゎリズムが比范され、その結果が次の蚘事に瀺されおいたす。









著者は、8぀の方法のうち3぀が泚目に倀するずいう結論に達したした。そのため、画像をオブゞェクトに分割するためにかなり高品質の結果が埗られたす。 ただし、ピラミッド型アルゎリズムの実行時間は0.5秒からです。 最倧4.5秒 Pentium 766 MHzで256x256ピクセル、「 効率的なグラフベヌスの画像セグメンテヌション 」は、「1秒未満 」の著者によるず実行されたす。 私たちでは、 1024x768の写真は、「入れ子人圢」内で0.5秒 U9400 2 x 1.4GHzでうたくいきたしたVMWare-Matlab-mexC ++。 䞀般に、ピラミッド型-品質、蚘事で説明されおいるグラフ-速床。 どちらにも生呜暩がありたす。 =





最も熱心な読者には、「魔法の泡」の秘密を明らかにしたす。写真にはどのような数字が衚瀺されたすか これらは「 セグメンテヌションシグマ、k、最小 」メ゜ッドのパラメヌタヌであり、そのうち2぀はすでによく知っおいたす。3番目の「 最小 」は匷制的な最小セグメントサむズであり、「小さな」セグメントはありたせん。









頑匵っお



PSあたり蹎らないようにお願いしたす。これは、Habréの9回目の投皿です。



All Articles