ゼファーネットのロゴ

セマンティックセグメンテーションの2020年ガイド

日付:


イントロ

ディープラーニングは、画像をデータとして扱う場合に非常に成功しており、現在、複数のユースケースで人間よりもうまく機能する段階にあります。 人間がコンピュータビジョンで解決することに興味を持っている最も重要な問題は 画像の分類、オブジェクトの検出、セグメンテーション 難易度の高い順に。

画像分類の昔ながらのタスクでは、画像に存在するすべてのオブジェクトのラベルを取得することに関心があります。 オブジェクト検出では、さらに一歩進んで、画像内に存在するすべてのオブジェクト、境界ボックスを使用してオブジェクトが存在する場所を把握しようとします。 画像セグメンテーションは、画像内のオブジェクトの正確な境界を正確に見つけようとすることで、新しいレベルに引き上げます。

ソースhttp://cs224d.stanford.edu/index.html

この記事では、この画像セグメンテーションの概念について説明し、関連するユースケース、結果の達成に関連するさまざまなニューラルネットワークアーキテクチャ、メトリック、および調査するデータセットについて説明します。

画像セグメンテーションとは

画像はピクセルの集まりに他なりません。 画像セグメンテーションは、特定のクラスに属する画像内の各ピクセルを分類するプロセスであるため、ピクセルごとの分類問題と考えることができます。 セグメンテーション手法にはXNUMXつのタイプがあります

Source http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture11.pdf
  1. セマンティックセグメンテーション :-セマンティックセグメンテーションは、特定のラベルに属する各ピクセルを分類するプロセスです。 同じオブジェクトの異なるインスタンス間で違いはありません。 たとえば、画像に2匹の猫がいる場合、セマンティックセグメンテーションは両方の猫のすべてのピクセルに同じラベルを付けます
  2. インスタンスのセグメンテーション :-インスタンスセグメンテーションは、画像内の特定のオブジェクトのすべてのインスタンスに一意のラベルを与えるという意味で、セマンティックセグメンテーションとは異なります。 上の画像に見られるように、3匹の犬すべてに異なる色、つまり異なるラベルが割り当てられています。 セマンティックセグメンテーションでは、それらすべてに同じ色が割り当てられます。

したがって、この種のアルゴリズムが必要になるところまで来ます。

画像セグメンテーションのユースケース

手書き認識 :-Junjo et allは、セマンティックセグメンテーションを使用して手書き文書から単語や行を抽出する方法を示しました。 2019リサーチペーパー 手書き文字を認識する

ソース

Googleポートレートモード :-前景と背景を分離することが絶対に不可欠な多くのユースケースがあります。 たとえば、Googleのポートレートモードでは、前景を変更せずに背景をぼかすことができ、クールな効果が得られます。

出典:-https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

YouTubeのストーリー :-Googleは最近、コンテンツ作成者がストーリーの作成中にさまざまな背景を表示するための機能YouTubeストーリーをリリースしました。

出典:-https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

バーチャルメイク :-画像セグメンテーションの助けを借りて、仮想リップスティックの適用が可能になりました

出典:-https://www.theverge.com/2017/3/16/14946086/sephora-virtual-assistant-ios-app-update-ar-makeup

4.仮想試着 :-衣服の仮想試着は、3Dモデルを作成する専用ハードウェアを使用して店舗で利用できた興味深い機能です。 しかし、ディープラーニングと画像セグメンテーションを使用すると、2D画像だけを使用して同じことが得られます

出典:-https://arxiv.org/pdf/1807.07688.pdf

ビジュアルイメージ検索 :-衣服をセグメント化するというアイデアは、eコマースの画像検索アルゴリズムでも使用されています。 たとえば、Pinterest / Amazonでは、布の部分をセグメント化して画像を検索することで、写真をアップロードして、関連する類似商品を入手できます。

ソース:-https://github.com/paucarre/tiefvision

自動運転車 :-自動運転車は、周囲をピクセル単位で完全に理解する必要があります。 したがって、画像セグメンテーションは、車線やその他の必要な情報を識別するために使用されます

出典:-https://medium.com/intro-to-artificial-intelligence/semantic-segmentation-udaitys-self-driving-car-engineer-nanodegree-c01eb6eaf9d

Nanonetsは、フォーチュン500企業がセマンティックセグメンテーションを使用して大規模でより良い顧客体験を可能にするのに役立ちます。

方法とテクニック

ディープラーニングが登場する前は、SVM、ランダムフォレスト、K-meansクラスタリングなどの古典的な機械学習手法を使用して、画像セグメンテーションの問題を解決していました。 しかし、ほとんどの画像関連の問題ステートメントと同様に、ディープラーニングは既存の手法よりも包括的にうまく機能し、セマンティックセグメンテーションを扱う際の標準になりました。 問題を解決するために使用されている手法を確認しましょう

完全畳み込みネットワーク

CNNの一般的なアーキテクチャは、いくつかの畳み込み層とプーリング層で構成され、最後に完全に接続された層がいくつか続きます。 2014年にリリースされたFullyConvolutional Networkの論文は、最終的な完全に接続された層は、領域全体をカバーする1×1の畳み込みを行うと考えることができると主張しています。

出典:-https://arxiv.org/abs/1411.4038

したがって、最終的な高密度層を畳み込み層に置き換えることができ、同じ結果が得られます。 しかし、これを行うことの利点は、入力のサイズを修正する必要がなくなったことです。 密なレイヤーを含む場合、入力のサイズは制約されるため、異なるサイズの入力を提供する必要がある場合は、サイズを変更する必要があります。 しかし、密なレイヤーを畳み込みに置き換えることにより、この制約は存在しません。

また、より大きなサイズの画像が入力として提供される場合、生成される出力は、通常の入力サイズの画像のようにクラス出力だけでなく、フィーチャマップになります。 また、最終的な特徴マップの観察された動作は、必要なクラスのヒートマップを表します。つまり、オブジェクトの位置が特徴マップで強調表示されます。 フィーチャマップの出力は必要なオブジェクトのヒートマップであるため、セグメンテーションのユースケースにとって有効な情報です。

出力層で取得されたフィーチャマップは、実行された畳み込みのセットのためにダウンサンプリングされるため、内挿法を使用してアップサンプリングする必要があります。 双線形アップサンプリングは機能しますが、この論文では、非線形アップサンプリングを学習することさえできるデコンボリューションを使用して学習したアップサンプリングを使用することを提案しています。

ネットワークのダウンサンプリング部分はエンコーダーと呼ばれ、アップサンプリング部分はデコーダーと呼ばれます。 これは、多くのアーキテクチャで見られるパターンです。つまり、エンコーダでサイズを縮小してから、デコーダでアップサンプリングします。 理想的な世界では、プーリングを使用してサンプルをダウンさせ、全体を通して同じサイズを維持することは望ましくありませんが、それは大量のパラメーターにつながり、計算上実行不可能になります。

出典:-https://arxiv.org/abs/1411.4038

得られた出力結果はまともですが、観察された出力は粗く、滑らかではありません。 この理由は、畳み込みレイヤーを使用した32倍のダウンサンプリングにより、最終的なフィーチャレイヤーで情報が失われるためです。 現在、この小さな情報を使用してネットワークが32倍のアップサンプリングを行うことは非常に困難になっています。 このアーキテクチャはFCN-32と呼ばれます

この問題に対処するために、このペーパーでは、他の2つのアーキテクチャFCN-16、FCN-8を提案しました。 FCN-16では、前のプーリングレイヤーからの情報が最終的な特徴マップとともに使用されるため、ネットワークのタスクは、FCN-16と比較して優れた32倍のアップサンプリングを学習することです。 FCN-8は、もうXNUMXつの前のプーリング層からの情報を含めることにより、それをさらに改善しようとします。

うね

U-netは、上からの完全畳み込みネットワークの上に構築されます。 肺や脳の腫瘍を見つけるために医療目的で建てられました。 また、入力画像を特徴マップにダウンサンプリングするエンコーダーと、学習したデコンボリューションレイヤーを使用して特徴マップを入力画像サイズにアップサンプリングするデコーダーで構成されます。

出典:-https://arxiv.org/abs/1505.04597

U-Netアーキテクチャの主な貢献は、ショートカット接続です。 上記のFCNで、エンコーダーの一部として画像をダウンサンプリングしたため、エンコーダー部分で簡単に復元できない多くの情報が失われたことがわかりました。 FCNは、最終的な機能レイヤーの前にプールレイヤーから情報を取得することで、これに対処しようとします。

U-Netは、この情報損失の問題を解決するための新しいアプローチを提案しています。 上の図に示すように、エンコーダーの対応するダウンサンプリングレイヤーからデコーダーのすべてのアップサンプリングレイヤーに情報を送信することを提案します。これにより、計算を低く抑えながら、より細かい情報を取得できます。 エンコーダーの最初のレイヤーにはより多くの情報があるため、入力画像に対応する詳細を提供することでデコーダーのアップサンプリング操作を強化し、結果を大幅に改善します。 この論文はまた、以下で議論する新しい損失関数の使用を提案しました。

ディープラボ

Googleの研究者グループのDeeplabは、既存の結果を改善し、より低い計算コストでより細かい出力を取得するための多数の手法を提案しています。 調査の一環として提案された3つの主な改善点は次のとおりです。

1)激しい畳み込み
2)Atrous Spatial Pyramidal Pooling
3)最終出力を改善するための条件付き確率場の使用
これらすべてについて話し合いましょう

Atrous 畳み込み

FCNアプローチの主な問題の32つは、連続するプーリング操作による過度のダウンサイジングです。 一連のプーリングにより、入力画像は32xでダウンサンプリングされ、セグメンテーション結果を取得するために再度アップサンプリングされます。 32倍にダウンサンプリングすると、情報が失われます。これは、セグメンテーションタスクで細かい出力を取得するために非常に重要です。 また、XNUMX倍のアップサンプルへのデコンボリューションは、学習されたアップサンプリングの形成に関連する追加のパラメーターがあるため、計算とメモリを消費する操作です。

この論文では、同じ数のパラメータを使用して大規模なコンテキストを理解するのに役立つ、Atrous畳み込みまたは穴畳み込みまたは拡張畳み込みの使用法を提案しています。

Source:- https://www.mdpi.com/1424-8220/19/24/5361/htm

拡張畳み込みは、パラメーター間のギャップを埋めるためにゼロ(穴と呼ばれる)を追加してフィルターのサイズを大きくすることで機能します。 フィルタパラメータの間に埋められた穴/ゼロの数は、項の膨張率によって呼び出されます。 レートが1に等しい場合、それは通常の畳み込みに他なりません。 レートが2に等しい場合、他のすべてのパラメーターの間に5つのゼロが挿入され、フィルターが5×5の畳み込みのように見えます。 これで、5×3の畳み込みパラメータを使用しながら、3×3の畳み込みのコンテキストを取得することができます。 同様に、レート7の場合、受容野は7×XNUMXになります。

Deeplabでは、最後のプーリングレイヤーが置き換えられ、ストライドが1ではなく2になり、ダウンサンプリングレートがわずか8倍に保たれます。 次に、一連の激しい畳み込みを適用して、より大きなコンテキストをキャプチャします。 トレーニングのために、ラベル付きの出力マスクが8倍ダウンサンプリングされ、各ピクセルが比較されます。 推論では、双線形アップサンプリングを使用して同じサイズの出力を生成します。これにより、双線形アップサンプリングでは、アップサンプリングのデコンボリューションとは対照的に、パラメーターが不要になるため、計算コストとメモリコストが低くなります。

ASPP

空間ピラミッドプーリングは、フィーチャマップからマルチスケール情報をキャプチャするためにSPPNetで導入された概念です。 異なる解像度でのSPP入力画像の導入前に、計算された特徴マップを一緒に使用してマルチスケール情報を取得しますが、これにはより多くの計算と時間がかかります。 空間ピラミッドプーリングを使用すると、単一の入力画像でマルチスケール情報をキャプチャできます。

出典:-http://kaiminghe.com/eccv14sppnet/index.html

SPPモジュールを使用すると、ネットワークは3×1(つまり、GAP)、1×2、および2×4の寸法の4つの出力を生成します。 これらの値は、1Dベクトルに変換することで連結され、複数のスケールで情報を取得します。 SPPを使用するもうXNUMXつの利点は、任意のサイズの入力画像を提供できることです。

ASPPは、さまざまなスケールからの情報を融合するという概念を採用し、それをAtrous畳み込みに適用します。 入力はさまざまな拡張率で畳み込まれ、これらの出力は融合されます。

出典:-http://liangchiehchen.com/projects/DeepLab.html

見てわかるように、入力は拡張率3、3、6、12の18×24フィルターで畳み込まれ、出力は同じサイズであるため連結されています。 1×1の畳み込み出力も融合出力に追加されます。 グローバル情報も提供するために、アップサンプリング後にGAP出力も上記に追加されます。 3×3のさまざまな拡張出力、1×1、およびGAP出力の融合出力は、必要なチャネル数に到達するために1×1の畳み込みを通過します。

セグメント化する必要のある画像は入力で任意のサイズにすることができるため、ASPPからのマルチスケール情報は結果の改善に役立ちます。

CRFによる出力の改善

プーリングは、ニューラルネットワークのパラメーターの数を減らすのに役立つ操作ですが、それに伴って不変性の特性ももたらします。 不変性は、入力のわずかな変換の影響を受けないニューラルネットワークの品質です。 プールで得られるこの特性のため、ニューラルネットワークによって得られるセグメンテーション出力は粗く、境界は具体的に定義されていません。

出典:-http://liangchiehchen.com/projects/DeepLab.html

これに対処するために、この論文はグラフィカルモデルCRFの使用を提案しています。 条件付き確率場は後処理ステップを実行し、シェーパー境界を定義するために生成された結果を改善しようとします。 ラベルだけでなく、他のピクセルラベルにも基づいてピクセルを分類することで機能します。 上の図からわかるように、ニューラルネットワークによって生成された粗い境界は、CRFを通過した後にさらに洗練されます。

Deeplab-v3は、バッチ正規化を導入し、Resnetブロックの各レイヤー内で拡張率に(1,2,4)を掛けたものを提案しました。 また、ASPPに関する上記の説明で説明したASPPモジュールに画像レベルの機能を追加することも、このペーパーの一部として提案されました。

出典:-https://arxiv.org/pdf/1706.05587.pdf

Deeplab-v3 +は、16倍の単純なバイリニアアップサンプリングの代わりにデコーダーを使用することを提案しました。 デコーダーは、結果を改善するためにエンコーダー層から情報を取得するU-Netなどのアーキテクチャーで使用されるデコーダーからヒントを取得します。 エンコーダ出力は、バイリニアアップサンプリングを使用して4倍にアップサンプリングされ、4×3畳み込みを実行した後に再び3倍にアップサンプリングされるエンコーダからの機能と連結されます。 このアプローチでは、16倍の直接サンプリングよりも優れた結果が得られます。 また、エンコーダの一部としてResnetの代わりに変更されたXceptionアーキテクチャを使用することが提案されており、計算の数を減らすために、Atrous畳み込みの上に深さ方向に分離可能な畳み込みが使用されるようになりました。

グローバル畳み込みネットワーク

ソース:-https://arxiv.org/pdf/1703.02719.pdf

セマンティックセグメンテーションには、XNUMXつのタスクを同時に実行することが含まれます

i)分類
ii)ローカリゼーション

分類ネットワークは、平行移動と回転に対して不変であるように作成されているため、位置情報は重要ではありませんが、ローカリゼーションでは、位置に関する正確な詳細を取得する必要があります。 したがって、本質的にこれらXNUMXつのタスクは矛盾しています。 ほとんどのセグメンテーションアルゴリズムは、ローカリゼーション、つまり上の図のXNUMX番目をより重要視しているため、グローバルコンテキストを見失います。 この作品では、著者は、ローカリゼーション情報を失わないと同時に、分類タスクも重要視する方法を提案しています。

ソース:-https://arxiv.org/pdf/1703.02719.pdf

著者は、ネットワークの一部として大規模なカーネルを使用することでこれを実現し、密な接続を可能にして、より多くの情報を提供することを提案しています。 これは、上の図に示されているように、GCNブロックの助けを借りて実現されます。 GCNブロックは、kを3より大きい数にすることができるakxk畳み込みフィルターと考えることができます。パラメーターの数を減らすために、akxkフィルターはさらに1xkブロックとkx1ブロックに分割され、kx1ブロックと1xkブロックが合計されます。 したがって、値kを増やすことにより、より大きなコンテキストがキャプチャされます。

さらに、著者は、結果を得るために合計されるショートカット接続と残余接続からなる、Resnetで見られる残余ブロックに類似した境界リファインメントブロックを提案します。 Boundary Refinementブロックを使用すると、セグメンテーションの境界での結果が改善されることがわかります。

結果は、GCNブロックがオブジェクトの中心に近いピクセルの分類精度を改善し、長距離コンテキストのキャプチャによって引き起こされた改善を示しているのに対し、BoundaryRefinementブロックは境界に近いピクセルの精度を改善するのに役立ちました。

複数回見る–セマンティックセグメンテーションのためのKSAC

Deeplabファミリーは、ASPPを使用して、さまざまな激しい畳み込み率を使用して複数の受容野に情報をキャプチャさせます。 ASPPは結果のセグメンテーションを改善するのに非常に役立ちましたが、アーキテクチャに起因するいくつかの固有の問題があります。 ASPPの異なる並列レイヤー間で共有される情報はないため、各レイヤーのカーネルの一般化能力に影響を与えます。 また、各レイヤーは異なるトレーニングサンプルのセット(小さいオブジェクトから小さいアトラスレート、大きいオブジェクトから大きいアトラスレート)に対応するため、各並列レイヤーのデータ量は少なくなり、全体的な一般化に影響します。 また、ネットワーク内のパラメーターの数はパラメーターの数に比例して増加するため、過剰適合につながる可能性があります。

ソース:-https://arxiv.org/pdf/1908.09443.pdf

これらすべての問題を処理するために、著者はKernel-Sharing Atrous Convolution(KSAC)と呼ばれる新しいネットワーク構造を提案します。 上の図に示されているように、ASPPは並列レイヤーごとに異なるカーネルを持つ代わりに、単一のカーネルが共有されるため、ネットワークの一般化機能が向上します。 ASPPの代わりにKSACを使用することにより、62、6,12、および18の拡張率を使用すると、パラメーターのXNUMX%が節約されます。

KSAC構造を使用するもう6,12,18つの利点は、パラメーターの数が、使用される拡張率の数に依存しないことです。 したがって、モデルサイズを増やすことなく、できるだけ多くのレートを追加できます。 ASPPはレート6,12,18,24で最良の結果をもたらしますが、精度はXNUMXで低下し、過剰適合の可能性を示します。 ただし、KSACの精度は依然として大幅に向上しており、一般化機能が強化されていることを示しています。

同じカーネルが複数のレートに適用されるため、このカーネル共有手法は、特徴空間の拡張と見なすこともできます。 入力拡張がより良い結果をもたらす方法と同様に、ネットワークで実行される機能拡張は、ネットワークの表現機能の向上に役立つはずです。

ビデオセグメンテーション

自動運転車やロボット工学などのユースケースでは、観察されたビデオをリアルタイムでセグメンテーションする必要があります。 これまでに説明したアーキテクチャは、速度ではなく精度を重視して設計されています。 したがって、ビデオにフレームごとに適用すると、結果は非常に低速になります。

また、一般的にビデオでは、連続するフレーム間でシーンに多くのオーバーラップがあり、フレームごとに分析を行った場合に画像に表示されない結果と速度を改善するために使用できます。 これらの手がかりを使用して、ビデオ用に特別に設計されたアーキテクチャについて説明しましょう

STFCN

時空間FCNは、ビデオセグメンテーションを行うためにLSTMとともにFCNを使用することを提案しています。 FCNを使用して、画像をセグメント化するための特徴を抽出する方法については、すでに認識しています。 LSTMは、時間の経過とともに順次情報を取得できる一種のニューラルネットワークです。 STFCNは、FCNの能力とLSTMを組み合わせて、空間情報と時間情報の両方をキャプチャします。

出典:-https://arxiv.org/abs/1608.05971

上の図からわかるように、STFCNはFCN、時空間モジュールとそれに続くデコンボリューションで構成されています。 FCNによって作成されたフィーチャマップは、前のフレームのモジュールからの入力もある時空間モジュールに送信されます。 これらの両方の入力に基づくモジュールは、空間情報に加えて時間情報をキャプチャし、FCNで行われるのと同様のデコンボリューションを使用して、画像の元のサイズにアップサンプリングされた情報を送信します。

FCNとLSTMの両方がSTFCNの一部として連携しているため、ネットワークはエンドツーエンドでトレーニング可能であり、単一フレームのセグメンテーションアプローチよりも優れています。 LSTMがGRUに置き換えられる同様のアプローチがありますが、概念は空間情報と時間情報の両方をキャプチャすることと同じです。

表現ワーピングによるセマンティックビデオCNN

この論文は、セグメンテーション結果を改善するための追加入力として、隣接するフレームを横切るオプティカルフローの使用を提案します。

出典:-https://arxiv.org/abs/1708.03088

提案されたアプローチは、プラグインとして任意の標準アーキテクチャに組み込むことができます。 重要な要素はNetWarpモジュールです。 セグメンテーションマップを計算するために、現在のフレームと前のフレームの間のオプティカルフローが計算されます。つまり、Ftであり、FlowCNNを通過してΛ(Ft)を取得します。 このプロセスはフロー変換と呼ばれます。 この値は、ネットワークを通過することによって計算された中間層の特徴マップも入力として受け取るワープモジュールを通過します。 これにより、ワープされた特徴マップが得られ、それが現在のレイヤーの中間特徴マップと組み合わされ、ネットワーク全体がエンドツーエンドでトレーニングされます。 このアーキテクチャは、CamVidおよびCityscapesビデオベンチマークデータセットでSOTAの結果を達成しました。

ビデオセマンティックセグメンテーションのための時計仕掛けの変換

本論文は、ビデオの意味情報がピクセルレベルの情報と比較してゆっくりと変化するという事実を利用することにより、ビデオのセグメンテーションタスクのためのニューラルネットワークの実行速度を改善することを提案する。 したがって、最後のレイヤーの情報は、最初のレイヤーに比べてはるかに遅いペースで変化します。 論文は異なる時代を示唆している

出典:-https://arxiv.org/abs/1608.03609

上の図は、中間レベルのレイヤーpool4と深いレイヤーfc7の変化率の比較を表しています。 左側では、フレーム全体で多くの変更があるため、両方のレイヤーに変更が表示されていますが、pool4の変更の方が大きくなっています。 右側では、フレーム間で大きな変化がないことがわかります。 したがって、pool4はわずかな変化を示しますが、fc7はほとんど変化を示しません。

研究はこの概念を利用しており、フレーム間であまり変化がない場合は、特徴/出力を再度計算する必要がなく、前のフレームからキャッシュされた値を使用できることを示唆しています。 変化率はレイヤーによって異なるため、レイヤーのセットごとに異なるクロックを設定できます。 クロックが刻むと、新しい出力が計算されます。それ以外の場合は、キャッシュされた結果が使用されます。 クロックティックのレートは、静的に固定することも、動的に学習することもできます

出典:-https://arxiv.org/abs/1608.03609

低遅延ビデオセマンティックセグメンテーション

このホワイトペーパーでは、フレームを適応的に選択してセグメンテーションマップを計算するか、固定タイマーやヒューリスティックを使用する代わりにキャッシュされた結果を使用することで、上記の説明をさらに改善します。

出典:-https://arxiv.org/abs/1804.00389

このホワイトペーパーでは、ネットワークを低レベルの機能と高レベルの機能の2つの部分に分割することを提案しています。 ネットワークで低レベルの機能を計算するコストは、高機能に比べてはるかに低くなります。 この調査では、セグメンテーションマップの変更の指標として低レベルのネットワーク機能を使用することを提案しています。 彼らの観察では、低レベルの特徴の変化とセグメンテーションマップの変化の間に強い相関関係があることがわかりました。 したがって、より高い特徴を計算する必要があるかどうかを計算する必要があるかどうかを理解するために、2つのフレームにわたるより低い特徴の差が検出され、特定のしきい値を超えた場合に比較されます。 このプロセス全体は、XNUMXつのフレームの低い特徴を取得し、高い特徴を計算する必要があるかどうかを予測することをタスクとする小さなニューラルネットワークによって自動化されます。 ネットワークの決定は入力フレームに基づいているため、上記のアプローチと比較して、行われる決定は動的です。

点群のセグメンテーション

LIDARなどのセンサーからのデータは、ポイントクラウドと呼ばれる形式で保存されます。 点群は、順序付けられていない3Dデータポイントのセット(または任意の次元)のコレクションに他なりません。 これは3Dでのシーンのスパース表現であり、このような場合、CNNを直接適用することはできません。 また、点群を処理するように設計されたアーキテクチャは、それが順序付けられていないセットであるため、多くの可能な順列を持つ可能性があることを考慮に入れる必要があります。 したがって、ネットワークは順列不変である必要があります。 また、点群で定義された点は、それらの間の距離で表すことができます。 したがって、一般に、より近いポイントには、セグメンテーションタスクに役立つ有用な情報が含まれています。

ポイントネット

PointNetは、分類とセグメンテーションのタスクを解決するためにディープラーニングを使用した点群の研究の歴史における重要な論文です。 Pointnetのアーキテクチャを調べてみましょう

出典:-https://arxiv.org/abs/1612.00593

n点のネットワークの入力は、nx3行列です。 nx 3行列は、共有多層パーセプトロン層(完全に接続されたネットワーク)を使用してnx 64にマップされ、次にnx 64にマップされ、次にnx128およびnx1024にマップされます。最大プーリングが適用され、kに変換される1024ベクトルが取得されます。サイズ512、256、およびkのMLPを通過して出力します。 最後に、kクラスの出力は、他の分類ネットワークと同様に生成されます。

分類はグローバル機能のみを扱いますが、セグメンテーションにはローカル機能も必要です。 したがって、nx 64の中間層からのローカル機能は、グローバル機能と連結されて、1088および512のmlpを介して送信されてnx 256に到達し、次に256およびmのMLPを介して送信され、すべてのポイントにm個の出力クラスを提供するanx128マトリックスを取得します。点群で。

また、ネットワークには、入力の形状を変更せず、アフィン変換、つまり平行移動、回転などに不変性を追加することをタスクとするネットワークの一部として、入力変換と特徴変換が含まれます。

A-CNN

出典:-https://arxiv.org/abs/1904.08017

A-CNNは、空間情報をキャプチャするための環状畳み込みの使用法を提案しています。 CNNから、畳み込み演算は画像を理解するために不可欠なローカル情報をキャプチャすることがわかっています。 A-CNNは、点群内の近隣ポイントに適用される環状畳み込みと呼ばれる新しい畳み込みを考案しました。

アーキテクチャは、入力としてnx 3ポイントを受け取り、ポイントの順序付けに使用されるそれらの法線を見つけます。 FPSアルゴリズムを使用してポイントのサブサンプルが取得され、ni x3ポイントになります。 これらの環状畳み込みは、128次元に増加するために適用されます。 環状畳み込みは、KNNアルゴリズムを使用して決定された近傍点で実行されます。

上記の操作の別のセットを実行して、次元を256に増やします。次に、mlpを適用して次元を1024に変更し、プーリングを適用して、点群と同様の1024グローバルベクトルを取得します。 この部分全体がエンコーダーと見なされます。 分類のために、エンコーダのグローバル出力がmlpを介して渡され、cクラスの出力が取得されます。 セグメンテーションタスクの場合、グローバル機能とローカル機能の両方がPointCNNと同様であると見なされ、MLPを通過して、各ポイントのmクラス出力を取得します。

メトリック

モデルの結果を理解および評価するために一般的に使用されるメトリックについて説明しましょう。

ピクセル精度

ピクセル精度は、結果の検証に使用できる最も基本的な指標です。 精度は、正しく分類されたピクセルと合計ピクセルの比率をとることによって得られます。

精度=(TP + TN)/(TP + TN + FP + FN)

このような手法を使用することの主な欠点は、一方のクラスが他方を圧倒した場合に結果が良く見える可能性があることです。 たとえば、背景クラスが入力画像の90%をカバーしているとすると、すべてのピクセルを背景として分類するだけで90%の精度を得ることができます。

連合上の交差点

IOUは、グラウンドトゥルースと予測されたセグメンテーション出力の和集合に対する交差の比率として定義されます。 複数のクラスを計算する場合は、各クラスのIOUが計算され、それらの平均が取得されます。 すべてのピクセルが2クラスの入力で背景として与えられているかのように、ピクセルの精度と比較して優れたメトリックです。IOU値は(90/100 + 0/100)/ 2、つまり45%IOUであり、90と比較してより良い表現を提供します。 % 正確さ。

出典:-https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection

周波数加重IOU

これは、私たちが議論した平均IOUの拡張であり、クラスの不均衡と戦うために使用されます。 たとえば背景など、データセット内の画像の大部分をXNUMXつのクラスが支配している場合は、他のクラスと比較して重みを付ける必要があります。 したがって、すべてのクラス結果の平均を取得する代わりに、データセット内のクラス領域の頻度に基づいて加重平均が取得されます。

F1スコア

分類F1スコアで一般的に使用されるメトリックは、クラスの不均衡に対処するためのセグメンテーションタスクにも使用できます。

出典:-https://en.wikipedia.org/wiki/F1_score

平均精度

結果の検証には、さまざまなクラスの選択されたしきい値IOU平均の適合率-再現率曲線の下の領域が使用されます。

損失関数

損失関数は、ニューラルネットワークを最適化に導くために使用されます。 セマンティックセグメンテーションタスクのいくつかの一般的な損失関数について説明しましょう。

クロスエントロピー損失

画像内のすべてのピクセルのクロスエントロピー分類損失の単純平均は、全体的な関数として使用できます。 しかし、これもまた、FCNがクラスの重みを使用して修正することを提案しているクラスの不均衡のために苦しんでいます

UNetは、内側のピクセルと比較して、境界の一部である境界の近くのピクセルにより多くの重みを与えることによってこれを改善しようとします。これにより、ネットワークは境界の識別に重点を置き、粗い出力を提供しません。

フォーカルロス

焦点損失は、より多くの重みを与えることによってネットワークが難しい例に焦点を合わせるように、また単一ステージの物体検出器で観察される極端なクラスの不均衡に対処するように設計されました。 同じことがセマンティックセグメンテーションタスクにも適用できます

サイコロの損失

サイコロ機能はF1スコアに他なりません。 この損失関数は、F1スコアを直接最適化しようとします。 同様に、直接IOUスコアを使用して最適化を実行することもできます

トベルスキーロス

これは、FNとFPに異なる重量年齢を与えるダイスロスの変形です。

ハウスドルフ距離

これは、グラウンドトゥルースと予測の境界間の類似性を測定するために使用される手法です。 これは、一方の境界の任意の点からもう一方の境界の最も近い点までの最大距離を見つけることによって計算されます。 境界損失関数を直接減らすことは最近の傾向であり、正確な境界を特定することが重要な役割を果たす医療画像セグメンテーションのようなユースケースで特に良い結果をもたらすことが示されています。

IOUやダイスロスのような領域ベースの損失と比較して境界損失を使用する利点は、領域全体が最適化の対象とは見なされず、境界のみが考慮されるため、クラスの不均衡の影響を受けないことです。

ソースhttps://en.wikipedia.org/wiki/Hausdorff_distance

ここで考慮されるXNUMXつの用語は、XNUMXつの境界、つまりグラウンドトゥルースと出力予測に対するものです。

ラベルミー :-

Pythonで書かれた画像注釈ツール。
ポリゴン注釈をサポートします。
オープンソースで無料。
Windows、Mac、Ubuntu、またはAnaconda、Docker経由で実行
リンク:- https://github.com/wkentaro/labelme

ソース:-https://github.com/wkentaro/labelme

コンピュータビジョン注釈ツール:-

Intelが開発したビデオおよび画像注釈ツール
無料でオンラインで入手可能
Windows、Mac、Ubuntuで動作します
リンク:- https://github.com/opencv/cvat

Vgg画像アノテーター:-

無料のオープンソース画像注釈ツール
シンプルなHTMLページ<200kbで、オフラインで実行できます
ポリゴンの注釈とポイントをサポートします。
リンク:- https://github.com/ox-vgg/via

ソース:-https://github.com/ox-vgg/via

Rectlabel:-

Mac用の有料注釈ツール
コアMLモデルを使用して画像に事前に注釈を付けることができます
ポリゴン、キュービックベジェ、ライン、およびポイントをサポートします
リンク:- https://github.com/ryouchinsa/Rectlabel-support

ラベルボックス:-

有料の注釈ツール
より速く正確な注釈のためのペンツールをサポートします
リンク:- https://labelbox.com/product/image-segmentation

データセット

このセクションの一部として、トレーニングを開始するために使用できる、一般に公開されているさまざまな人気のある多様なデータセットについて説明しましょう。

パスカルコンテキスト

このデータセットはPascalVOC 2010データセットの拡張であり、シーン全体に注釈を付けることで元のデータセットを超え、400以上のクラスの実世界データがあります。

出典:-https://cs.stanford.edu/~roozbeh/pascal-context/
出典:-https://cs.stanford.edu/~roozbeh/pascal-context/

リンク:- https://cs.stanford.edu/~roozbeh/pascal-context/

COCOデータセット

COCOスタッフデータセットには、ピクセルレベルの注釈が付いた元のCOCOデータセットの164kの画像があり、一般的なベンチマークデータセットです。 172のクラスをカバーしています:80のモノクラス、91のスタッフクラス、1つのクラス「ラベルなし」

出典:-http://cocodataset.org/#home

リンク:- http://cocodataset.org/

Cityscapesデータセット

このデータセットは、道路、車線、車両、および道路上のオブジェクトのセグメンテーショングラウンドトゥルースで構成されています。 データセットには、さまざまな環境条件と気象条件で収集された30のクラスと50の都市が含まれています。 ビデオセグメンテーションに使用できる、細かく注釈が付けられた画像のビデオデータセットもあります。 キティ & カムビッド 自動運転車のトレーニングに使用できる同様の種類のデータセットです。

ソース:-https://www.cityscapes-dataset.com/

リンク:- https://www.cityscapes-dataset.com/

Litsデータセット

データセットは、肝臓CTスキャンから腫瘍病変を特定するための課題の一部として作成されました。 データセットには、トレーニングデータの130CTスキャンとテストデータの70CTスキャンが含まれています。

出典:-https://competitions.codalab.org/competitions/17094

リンク:- https://competitions.codalab.org/competitions/17094

CCPデータセット

Cloth Co-Parsingは、共同画像セグメンテーションとラベリングによる研究論文「ClothingCo-Parsing」の一部として作成されたデータセットです。 データセットには、合計1000個のタグのピクセルレベルの注釈が付いた59以上の画像が含まれています。

ソース:-https://github.com/bearpaw/clothing-co-parsing

ソース:- https://github.com/bearpaw/clothing-co-parsing

Pratheepanデータセット

32枚の顔写真と46枚の家族写真を含むGoogleの画像に基づいて、肌のセグメンテーションのタスク用に作成されたデータセット

ソース:-http://cs-chan.com/downloads_skin_dataset.html

リンク:- http://cs-chan.com/downloads_skin_dataset.html

インリア航空画像ラベリング

パブリックドメインの画像から作成された空中セグメンテーションマップのデータセット。 面積は810平方キロメートルで、建物と非建物の2つのクラスがあります。

出典:-https://project.inria.fr/aerialimagelabeling/
出典:-https://project.inria.fr/aerialimagelabeling/

リンク:- https://project.inria.fr/aerialimagelabeling/

S3DIS

このデータセットには、3を超える画像を含む70000つの建物のXNUMXつの大規模な屋内パーツの点群が含まれています。

ソース:-http://buildingparser.stanford.edu/dataset.html

リンク:- http://buildingparser.stanford.edu/dataset.html

まとめ

画像、ビデオ、点群などのセマンティックセグメンテーションのユースケースを解決するために使用できるさまざまなアルゴリズムの分類法と、それらの寄与と制限について説明しました。 また、結果とデータセットを評価して開始する方法についても検討しました。 これにより、一般的なトピックとしてのセマンティックセグメンテーションに関する包括的な理解が得られるはずです。

セマンティックセグメンテーションのその他のリソースのリストを取得するには、 https://github.com/mrgloom/awesome-semantic-segmentation.

参考文献


アップデート:
さらに読み物を追加しました。

出典:https://nanonets.com/blog/semantic-image-segmentation-2020/

スポット画像

最新のインテリジェンス

スポット画像