본문 바로가기
Projects/냉장고를부탁해

SAM - Kadir Nar의 metaseg

by wenect 2023. 5. 14.

https://colab.research.google.com/drive/1UsuYbxb1lWbkWly_vizLPLlJ35_h0bs0#scrollTo=TH_FlG5leB1B

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

이 자습서에서는 Kadir Nar의 metaseg 라는 라이브러리를 사용하여 이미지 및 비디오 분할을 위해 Facebook SAM에 쉽게 액세스하고 사용할 수 있습니다.

 

[
!pip install metaseg
 

 

Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Collecting metaseg
  Downloading metaseg-0.7.5.tar.gz (38 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: pycocotools in /usr/local/lib/python3.10/dist-packages (from metaseg) (2.0.6)
Requirement already satisfied: torch>=1.7 in /usr/local/lib/python3.10/dist-packages (from metaseg) (2.0.0+cu118)
Requirement already satisfied: torchvision>=0.8 in /usr/local/lib/python3.10/dist-packages (from metaseg) (0.15.1+cu118)
Requirement already satisfied: opencv-python in /usr/local/lib/python3.10/dist-packages (from metaseg) (4.7.0.72)
Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from metaseg) (4.65.0)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from metaseg) (3.7.1)
Requirement already satisfied: pillow in /usr/local/lib/python3.10/dist-packages (from metaseg) (8.4.0)
Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=1.7->metaseg) (3.12.0)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from torch>=1.7->metaseg) (4.5.0)
Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=1.7->metaseg) (1.11.1)
Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.7->metaseg) (3.1)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.7->metaseg) (3.1.2)
Requirement already satisfied: triton==2.0.0 in /usr/local/lib/python3.10/dist-packages (from torch>=1.7->metaseg) (2.0.0)
Requirement already satisfied: cmake in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch>=1.7->metaseg) (3.25.2)
Requirement already satisfied: lit in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch>=1.7->metaseg) (16.0.3)
Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from torchvision>=0.8->metaseg) (1.22.4)
Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from torchvision>=0.8->metaseg) (2.27.1)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->metaseg) (1.0.7)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->metaseg) (0.11.0)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->metaseg) (4.39.3)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->metaseg) (1.4.4)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->metaseg) (23.1)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->metaseg) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->metaseg) (2.8.2)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib->metaseg) (1.16.0)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.7->metaseg) (2.1.2)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision>=0.8->metaseg) (1.26.15)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision>=0.8->metaseg) (2022.12.7)
Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision>=0.8->metaseg) (2.0.12)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision>=0.8->metaseg) (3.4)
Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=1.7->metaseg) (1.3.0)
Building wheels for collected packages: metaseg
  Building wheel for metaseg (pyproject.toml) ... done
  Created wheel for metaseg: filename=metaseg-0.7.5-py3-none-any.whl size=45761 sha256=0d7f4e96f3dcbb334dc0541f8289550cbe8b2595aba005a08d4ab29a76271b52
  Stored in directory: /root/.cache/pip/wheels/d6/c2/f1/39bf6715a28dd54b1e5e1fdc3d252e10124e1a974a92c09b13
Successfully built metaseg
Installing collected packages: metaseg
Successfully installed metaseg-0.7.5
 
 

[ ]
from IPython.display import Image
Image("smudge.png")
 
 

SegAutoMaskPredictormetaseg 라이브러리에서 클래스를 가져옵니다.


[ ]
from metaseg import SegAutoMaskPredictor
 
 

클래스의 인스턴스를 만들고 SegAutoMaskPredictor이를 사용하여 다음 코드로 이미지를 분할합니다.


[ ]
results = SegAutoMaskPredictor().image_predict(
    source="smudge.png",
    model_type="vit_l", # vit_l, vit_h, vit_b
    points_per_side=16, 
    points_per_batch=64,
    min_area=0,
    output_path="output.png",
    show=False,
    save=True,
)
 
Downloading vit_l model from https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth...
vit_l model has been successfully downloaded and saved as 'vit_l.pth'.

마스크가 적용된 분할 이미지를 표시합니다.


 
[ ]
from IPython.display import Image
Image("output.png")
 
 
 

 

 

코드텍스트

댓글