MLエンジニアへの道 #48 - セマンティックセグメンテーション

Last Edited: 3/19/2025

このブログ記事では、コンピュータビジョンにおけるセマンティックセグメンテーションについて紹介します。

ML

画像分類と生成に関するコンピュータビジョンタスクを今まで取り上げてきましたが、現実世界で重要な用途を持つ様々な難易度のコンピュータビジョンタスクが他にも多くあります。 この記事では、比較的シンプルなコンピュータビジョンタスクの一つであるセマンティックセグメンテーションについて説明します。

セマンティックセグメンテーション

従来の画像分類タスクでは画像ごとに単一のカテゴリのみを出力しますが、実際の画像には異なるクラスの多くのオブジェクトが含まれていることがあります。 そのため、セマンティックセグメンテーションでは、画像の意味全体を捉えるために、犬、椅子、背景などのピクセル単位の分類を画像に適用します。 ピクセル単位の分類を適用するため、高さHH、幅WW、チャネルCC(多くの場合RGB = 3)の次元を持つ単一の入力画像に対する出力は、 (H,W,K)(H, W, K)の次元を持ち、KKはカテゴリの数です。

FCNs

ここで、単純な画像分類タスクのように画像を平坦化する必要がなく、畳み込み層のみで画像を変換するニューラルネットワークを構築できることがわかります。 実際、このようなモデルは完全畳み込みネットワーク(FCN)と呼ばれ、セマンティックセグメンテーションタスクで使用されています。 上記は、セマンティックセグメンテーションを実行する一般的なFCNアーキテクチャの例です。

このアーキテクチャは空間次元を縮小し、チャネル次元を増加させ、その後、空間次元を再拡大して最終的な出力形状に合わせることがわかります。 これはオートエンコーダのようですが、タスクが圧縮された潜在次元を作成する必要がない場合でもこのようなアーキテクチャが採用されます。 これは、カーネルの受容野のサイズを増加させる(空間次元を圧縮することによって)ことで、粒度の細かいパターンから広範なパターンまでを捉え、 それを後続の層に伝えたいからです。

U-Net

チャネル次元を拡大することで、様々な粒度の認識されたパターンをある程度後続の層に伝えることができますが、次元内に保持できる情報には限界があります。 さらに重要なことに、この構造は学習を大きく妨げる不安定な勾配を生じやすいです。この問題を克服するために、 U-Netは様々なサイズの受容野と勾配を持つ潜在表現を各空間次元を扱う最初の層に直接渡すスキップ接続を持つ対称的なアーキテクチャを採用しています。

U-Net

そのシンプルなアーキテクチャにもかかわらず、U-Netはセマンティックセグメンテーションタスクにおいて強力な能力を示しています。 また、同じサイズの出力を期待し、データ圧縮や生成目的のために小さな潜在表現を生成することを目的としない他のタスクにも適しています (スキップ接続により、モデルがすべての特徴を潜在空間に圧縮し、サンプリングされた潜在表現のみから画像を再構築することができないため)。 これらのタスクには、将来の記事で取り上げる拡散を用いた生成タスクも含まれます。

Mean IoU

Intersection over Union(IoU)は、予測されたセグメンテーションマスクと正解マスクの交差部分をそれらの和集合で割った値を計算する指標で、 様々なセグメンテーションタスクで使用されます。セマンティックセグメンテーションでは、クラスの不均衡を考慮するために、 クラス間でIoUの平均を取る平均IoU(mIoU)を指標として使用します。以下はmIoUの式です。

mIoU=1ki=1kNiij=1kNij+j=1kNjiNii \text{mIoU} = \frac{1}{k}\sum_{i=1}^k \frac{N_{ii}}{\sum_{j=1}^k N_{ij} + \sum_{j=1}^k N_{ji} - N_{ii}}

ここで、NijN_{ij}は真のクラスiijjと予測されたピクセルの集合であり、kkはクラスの総数です。NiiN_{ii}を真陽性、 j=1kNij\sum_{j=1}^k N_{ij}を偽陰性と真陽性、j=1kNji\sum_{j=1}^k N_{ji}を偽陽性と真陽性と解釈すると、 IoUの式はTPFN+FP+TP\frac{\text{TP}}{\text{FN} + \text{FP} + \text{TP}}と解釈できます。正解率とは異なり、 分子と分母の両方にTN\text{TN}が含まれていないことがわかります。これにより、クラスの不均衡に対処するためにクラス間で平均を取ることが意味を持ちます。

結論

この記事では、セマンティックセグメンテーションの問題定義、問題を解決するための主要なモデルアーキテクチャ、および使用される指標について説明しました。 上記からわかるように、セマンティックセグメンテーションは比較的単純に実行できるピクセル単位の分類ですが、 結果として得られるモデルは同じクラスの複数のオブジェクトインスタンスを区別できず、一部のタスクでは問題になる可能性があります(それでも最高のモデルでもmIoUは約0.7程度にとどまります)。 次の記事からは、より複雑なコンピュータビジョンタスクに深く掘り下げていきます。

リソース