- Published on
「Segment Anything」のインストール・使い方
- Authors
- Name
- 章 有坂
- short bio
- オープンソースソフトウェアのトレンドを追いかけてます。
Segment Anythingは、Facebook Researchが開発したオープンソースプロジェクトで、Segment Anywhere Model (SAM)を利用して任意の画像から高品質なオブジェクトマスクを生成することができます。このモデルは、点やボックスなどの入力プロンプトからマスクを生成し、全ての画像のオブジェクトに対してマスクを生成することが可能です。大規模なデータセット(11百万画像と11億個のマスク)で訓練され、多種のセグメンテーションタスクに対して強力なゼロショットパフォーマンスを示していますSource 0。
インストール・導入方法
Segment Anythingを使用するためには、Python 3.8以上、PyTorch 1.7以上、TorchVision 0.8以上が必要です。また、オプショナルな依存関係として、マスクの後処理、COCO形式でのマスクの保存、例のノートブック、およびONNX形式でのモデルのエクスポートに必要なopencv-python、pycocotools、matplotlib、onnxruntime、onnxがあります。これらは次のコマンドでインストールできます:
pip install opencv-python pycocotools matplotlib onnxruntime onnx
Segment Anythingのコードは、次のコマンドでインストールできます:
pip install git+https://github.com/facebookresearch/segment-anything.git
または
git clone git@github.com:facebookresearch/segment-anything.git
cd segment-anything; pip install -e .
使い方
まず、モデルチェックポイントをダウンロードします。その後、指定したプロンプトからマスクを取得するために、以下のようなコードを使用します:
from segment_anything import SamPredictor, sam_model_registry
sam = sam_model_registry["<model_type>"](checkpoint="<path/to/checkpoint>")
predictor = SamPredictor(sam)
predictor.set_image(<your_image>)
masks, _, _ = predictor.predict(<input_prompts>)
また、自動的にマスクを生成するためには、以下のようなコードを使用します:
from segment_anything import SamAutomaticMaskGenerator, sam_model_registry
sam = sam_model_registry["<model_type>"](checkpoint="<path/to/checkpoint>")
mask_generator = SamAutomaticMaskGenerator(sam)
masks = mask_generator.generate(<your_image>)
コマンドラインから画像のマスクを生成することも可能です:
python scripts/amg.py --checkpoint <path/to/checkpoint> --model-type <model_type> --input <image_or_folder> --output <path/to/output>
また、SAMの軽量なマスクデコーダーをONNX形式にエクスポートして、任意の環境で実行できるようにすることも可能です。これは、ブラウザでの実行を示すデモで使用されています:
python scripts/export_onnx_model.py --checkpoint <path/to/checkpoint> --model-type <model_type> --output <path/to/output>
詳細な使用例やサンプルコードは、リポジトリの例のノートブックを参照してくださいSource 0。