# セグメンテーション セグメンテーションは以下の3つに大別される **semantic segmentation:** 単純に各ピクセルが何を表しているかを推定する。つまり、ピクセル単位で画像のラベル付けなどを行う。 **instance segmentation:** 画像中から物体とその意味を推定する。画像の中にある物体の領域を特定した後で個体ごとに領域分割し、物体の種類を認識する。 **panoptic segmentation:** 上記2つを合わせたもの。画像内のすべてのピクセルにタグがつけられ、カウントできる物体として個別認識される。 ## 代表的なアプローチ 層学習を用いた代表的なアプローチとして以下のものがある **全層畳み込みネットワーク(FCN)** セマンティックセグメンテーションに主に用いられる。 FCNでは、VGG16などのモデルの全結合層を畳み込み層に置き換える。モデルの最後の畳み込み層で得られた特徴マップを入力画像と同じサイズまでアップサンプリングすることでピクセルごとのクラス確率を出力する。 **encoder/decoderモデル** セマンティックセグメンテーションに主に用いられる。 SegNetなどが代表的。 **ピラミッド構造のモデル** 代表的なモデルとしてFPNがある。 画像の倍率を変えて特徴マップをピラミッドのように伝搬させながら複数回推論し結果を統合することで検出対象の大きさに対してロバスト性が高くしつつ計算量を削減することができる。 **R-CNNベースのモデル** インスタンスセグメンテーションに主に用いられる。 R-CNNでは、画像から物体が存在する領域の候補(RoI)を抽出し、それらに対してバウンディングボックスと呼ばれる物体を囲む長方形の枠とクラスを予測する。 Mask R-CNNではそれに加えてピクセルごとのクラスの予測を行う。 **RNNベースのモデル** RNNを画像に適用すると画像の垂直方向や水平方向の連続性をモデル化できる。 ## 関連する技法 セグメンテーションに関する技法には以下のようなものがある。 **条件付き確率場(Conditional Random Field: CRF)** セグメンテーションモデルが出力した確率マップに対して、複数回CRFを適用することで物体協会をはっきりさせることができる。 **ダイレクト畳み込み** フィルタの適用範囲を広がて畳み込む手法。少ないパラメータで大域的な特徴を捉えることができるかも。 代表的なモデルとしてDeepLabがある。 **注意機構** セグメンテーションでは、解像度の異なる複数の入力画像から得られた特徴を混ぜ合わせることで予測精度が向上する。この混ぜ合わせる比率を注意機構を用いて決定する。 代表的なモデルとしてDFNがある。 **敵対的トレーニング** 各種セグメンテーションモデルに適用できる。 GANの生成器の部分をセグメンテーションの確率マップを生成するものにすることでセグメンテーション能力の向上を図る。 **動的輪郭モデル** 一般的に用いられるクロスエントロピー誤差関数はピクセル単位の比較を行っているため大域的な比較を行えていないが、動的輪郭モデルによって得られる輪郭に長さや領域の面積を損失関数に含めることで大域的な特徴を比較することができる。 # semantic segmentation https://www.mdpi.com/1999-5903/15/6/205 ## 深層学習以前の手法 ***SVM*** データを高次元空間にマッピングし、その空間内でデータの分類に最適な超平面を見つけるという手法。 セマンティックセグメンテーションタスクではピクセル分類器として使用される。汎化性能は高いものの、2値分類問題にしか使えづ多クラス分類問題には対応できない難点がある。 ***決定木分析*** シンプルで理解、解釈しやすく、複数の出力がある問題にも対処できる。しかし、データセットが高次元、膨大な画像データではモデルの汎化性能が落ちたり複雑になりすぎたりする難点がある。 ***K-means*** ピクセルをいくつかのカテゴリにまとめ、セグメンテーションを行いやすくするために用いられていた(スーパーピクセル的な?)。ラベルのないデータをクラスタリングできるというところに利点がある。しかし、初期値にクラスタリング結果が依存するため不正確なセグメンテーション結果になったり、このアルゴリズムはブロック状にクラスタリングを行うため複雑なテクスチャや特徴を表現できなかったりなどの難点がある。 ***CRF*** ピクセル間の関係を無向グラフ無向グラフとしてモデル化し、グラフ内のエネルギーを最小化することで最良のセグメンテーション結果を得ようという確率的グラフィカルモデル。パラメータ調整が面倒だったり計算量が多かったりする。 ## 深層学習に基づく手法 ***FCN(完全畳み込みネットワーク)*** ***U-Net*** ***DeepLabファミリー*** ・DeepLab V1 VGGやFCN、U-Netに基づいており、解像度の一貫性を保つために異なるアプローチを用いている。DeepLabV1では拡張畳み込みを用いており、FCNやU-Netでは逆畳み込みやプーリングを用いている ・DeepLab V2 ・DeepLab V3 ・DeepLab V3+ ***SegNet*** ***PSPNet*** 一般的なセグメンテーションモデル。 画像ピラミッドとそのバリアントを使用している。(?) FCN、SegNet、DeepLab V1などの一般的なモデルよりも優れたパフォーマンスを発揮するが、計算量が膨大であったり、入力に前処理とスケーリングが必要であったりする。 ## semantic segmentationの効果を高める主要技術 ***エンコーダ・デコーダシステム*** これが採用されるCNNには、画像の特徴を抽出し、それをデコーダを通してセマンティックセグメンテーションの結果に変換する機能がある。これにより、セマンティックセグメンテーションの速度と機能の両方を向上できる。 Vitなどのトランスフォーマーに基づくネットワークアーキテクチャの出現によりこのシステムの注目はより高まっている。 ***スキップ接続*** 勾配の消失及び爆発に対処するために用いられる。 これは、前の層の特徴マップを後続の層に直接つなげることで動作する。これによりネットワークの誤差逆伝搬がより効率的に行われトレーニングが加速される。 セマンティックセグメンテーションでは、畳み込み層とプーリング層はグローバルな情報を抽出でき、スキップ接続はローカルな詳細情報を抽出できる。 ***SPP(spatial pyramid pooling)*** 従来のセマンティックセグメンテーションモデルに用いられるFCNでは、低解像度の特徴マップを入力サイズまでアップサンプリングする必要があり、それには多大な計算量を要する。 その解決策としてSPPが提案されている。SPPの核をなすアイデアは、プーリング操作を用いて異なるサイズの特徴マップを固定サイズの特徴ベクトルにマッピングするピラミッドプーリング層をCNNに組み込むことである。これにより精度を犠牲にすることなくアップサンプリングを回避することができる。 ***拡張畳み込み*** 通常の畳み込み層に拡張比率のパラメータが追加され、フィルターがすべてつながっていないもの。そのため拡張畳み込み層は普通のものよりも受容野が広い。 また、様々な大きさや不規則な形のオブジェクトの認識能力を改善するためにmixed dilated convolution(MDC)が導入された。MDCは受容野を広げることのみならず"mesh"問題を解決することもできる。 一方、拡張率を大きくしすぎると結果にノイズが乗ったり、全体の情報をとらえることはできなかったりと欠点もある。 ***知識の蒸留*** https://arxiv.org/abs/1503.02531 知識の蒸留とは、教師ネットワークを使用して構造の無駄を省き、複雑さを軽減させ、推論により適した生徒ネットワークを学習させるというものである。この手法の肝は、誤差関数に教師ネットワークに関するソフトターゲットを含めることで教師から生徒に知識を伝達させることである。 http://codecrafthouse.jp/p/2018/01/knowledge-distillation/ ***ドメイン適応*** ソースドメインで訓練されたモデルをそれとは異なるターゲットドメインに適応するというもの。この手法では、ターゲットドメインのモデル性能を向上するために異なるが一貫性を持ったソースドメインから学習された知識を活用するというものである。 ***フューショット/ゼロショットのセマンティックセグメンテーション*** ??? ***アテンションメカニズム*** アテンションメカニズムは人間の視覚を真似たものである。 近年ではエンコーダ、デコーダモデルで主に用いられる。 利点としては、目標オブジェクトにより焦点を当てて背景やノイズの干渉を受けにくくなることや、オブジェクトの大きさに対するロバスト性が高いことである。 一方、計算量が大きくなることや、訓練データに強く依存するため過学習に陥りやすくなることなどの難点もある。 ***マルチモーダルフュージョン*** マルチモーダルなデータを補完的に組み合わせることで、モデルの精度やロバスト性を上げることができる。一方、いくつかのモダリティのデータを融合することで新たなノイズや不確実性が生まれることもある。 ??? ## データセットと評価指標 評価指標にはPA(pixel accuracy)、MPA(mean pixel accuracy)、MIoU(mean intersection over union)、FWIoU(frequency weighted intersection over union)などがある。 MIoUが主に使われている。 ***PA*** もっとも単純な評価方法で、正しく分類されたピクセルの割合を計算する。 $PA=\frac{\sum^n_{i=0}p_{ii}}{\sum^n_{i=0}\sum^n{j=0}p_{ij}}$ ここで、$p$の1つ目のインデックスは正解クラスを表し、2つ目のインデックスは実際の分類結果を示している。 class pixel accuracy(CPA)というクラスごとのPAを表す指標もあり、これは以下の式のように計算される。 $CPA=\frac{p_{ii}}{\sum^k_{j=0}p_{ij}}$ ***MPA*** 全てのカテゴリのピクセルごとの正解率の平均を表しており、以下の式で計算される。 $MPA=\frac{1}{n+1}\sum^n_{i=0}\frac{p_{ii}}{\sum^n_{j=0}p_{ij}}$ ***MIoU*** 全てのカテゴリの真陽性、偽陽性、偽陰性の数を用いて包括的に性能を評価したもの。 以下の式で計算される。 $MIoU=\frac{1}{n+1}\sum^n_{i=0}\frac{p_{ii}}{\sum^n_{j=0}p_{ij}+\sum^n_{j=0}p_{ji}-p_{ii}}$ ***FWIoU*** ピクセルの出現する頻度が少ないカテゴリに重みを付けたMIoU。そうすることですべてのカテゴリの結果を全体の結果に反映できるようにした。 以下の式で計算される。 $FWIoU=\frac{1}{\sum^n_{i=0}\sum^n_{j=0}p_{ij}}\sum^n_{i=0}\frac{\sum^n_{j=0}p_{ij}p_{ii}}{\sum^n_{j=0}p_{ij}+\sum^n_{j=0}p_{ji}-p_{ii}}$
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up