このプロジェクトについて
Segmentation Models PyTorch(SMP)は、画像セマンティックセグメンテーション向けにPyTorch上で構築されたPythonライブラリです。セグメンテーションモデルが標準のtorch.nn.Moduleであり、数行で作成できる高レベルAPIを提供します。
READMEに記載されている主な機能:
- 12種類のエンコーダ・デコーダアーキテクチャ: Unet、Unet++、MAnet、Linknet、FPN、PSPNet、PAN、DeepLabV3、DeepLabV3+、UPerNet、Segformer、DPT。それぞれ論文とドキュメントへのリンクがあります。
- 800以上の事前学習済み畳み込みベースおよびTransformerベースのエンコーダ。timmバックボーンのサポートも含みます。エンコーダは最終的な分類特徴だけでなく中間特徴を公開し、収束の高速化と安定化を目的とした事前学習済み重みを備えています。READMEでは、低レイテンシやエッジ推論向けの軽量オプション(mobilenet/mobileone)と、複雑なタスク向けの高容量オプション(convnext/swin/mit)が挙げられています。
- 前処理ヘルパー: get_preprocessing_fnは、エンコーダの事前学習(例: ImageNet)に対応する前処理関数を返します。READMEによれば、これにより結果と収束が改善される可能性がありますが、モデル全体を学習する場合は必須ではありません。
- セグメンテーション学習で一般的に使用される損失関数とメトリクス(Dice、Jaccard、Tverskyなど)。
- モデルAPIのオプション: 任意の入力チャネル数に対応するin_channels(最初の畳み込みの重みの再利用について記載あり)、マスクとともにラベル出力を生成するオプションの補助分類ヘッド(グローバルプーリング、オプションのドロップアウト、線形、オプションの活性化)用のaux_params、ダウンサンプリング段階を減らしてモデルを軽量化するencoder_depth。
- エクスポートとデプロイのしやすさ: ONNXエクスポート、およびtorch script/trace/compile互換性。
例としては、バイナリセグメンテーション(OxfordPets、CamVid)、マルチクラスセグメンテーション(CamVid)、事前学習済みSegformer、DPT、UPerNetの読み込みと推論実行、モデルのローカルまたはHugging Face Hubへの保存・読み込み、ONNXへのエクスポート用のノートブックがあります。UPerNet、Segformer、DPTのチェックポイントはHugging Faceでリンクされています。
インストールはpip(segmentation-models-pytorch)またはGitHubから直接行えます。READMEでは、このライブラリを使用して受賞したコンペティションのhall-of-fameページ、SMPで構築されたプロジェクト(withoutBG背景除去)、開発用インストール・テスト・リンティングのためのmakeターゲットを用いた貢献手順、引用エントリ、ライセンスについても言及されています。ライセンスは主にMITですが、一部のファイルは他のライセンスの下にあるため、商用利用者はLICENSESファイルとファイルごとの記載を確認することが推奨されています。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.