'segment'에 해당되는 글 2건

  1. 09:59:15 [YOLO] SAM(Segment Anything Model)
  2. 2026.02.10 [YOLO] Instance Segmentation 객체 분할
반응형

SAM3를 사용해 보자.

다른 모델과 달리 SAM3 가중치(sam3.pt)는 자동으로 다운로드되지 않는다.

Hugging Face에 가입하고 접근 허가를 받아야 다운로드할 수 있다.

 

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = dict(
    conf=0.25,
    task="segment",
    mode="predict",
    model="sam3.pt",
    half=True,  # Use FP16 for faster inference
    save=False
)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("rose.png")

# Works with descriptive phrases
results = predictor(text=["red rose", "pink rose"])
results[0].show()

 

빨간 장미와 분홍 장미를 구분한다.

 

rose.png

 

꽤 잘 구분한 것 같다.

 

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = dict(
    conf=0.25,
    task="segment",
    mode="predict",
    model="sam3.pt",
    half=True,  # Use FP16 for faster inference
    save=False
)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("office.jpg")

# Works with descriptive phrases
results = predictor(text=["person with gray shirt"])
results[0].show()

 

회색 옷을 입은 사람을 찾는다.

 

office.jpg

 

회색 옷을 입은 사람을 정확히 찾아냈다.

 

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = dict(
    conf=0.25,
    task="segment",
    mode="predict",
    model="sam3.pt",
    half=True,  # Use FP16 for faster inference
    save=False
)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("catsdogs.png")

# Works with descriptive phrases
results = predictor(text=["cats", "dogs"])
results[0].show()

 

개와 고양이를 구분한다.

 

catsdogs.png

 

개와 고양이를 정확히 구분한다.

 

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = dict(
    conf=0.25,
    task="segment",
    mode="predict",
    model="sam3.pt",
    half=True,  # Use FP16 for faster inference
    save=False
)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("sleep.jpg")

# Works with descriptive phrases
results = predictor(text=["sleeping student on desk"])
results[0].show()

 

책상에서 자는 학생을 찾는다.

 

sleep.jpg

 

실제 자는 학생의 확률이 0.90으로 가장 높지만 뒤에 자지 않는 학생의 확률도 0.86으로 굉장히 높다.

 

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = dict(
    conf=0.25,
    task="segment",
    mode="predict",
    model="sam3.pt",
    half=True,  # Use FP16 for faster inference
    save=False
)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("sleep.jpg")

# Works with descriptive phrases
results = predictor(text=["student sleeping on desk"])
results[0].show()

 

descriptive phrase를 바꿔보자.

 

결과가 두 명으로 줄었지만 여전히 자지 않는 학생의 확률도 높다.

 

반응형
Posted by J-sean
:
반응형

객체 세그먼트 마스크를 표현하고 출력해 보자.

 

from ultralytics import YOLO

model = YOLO("yolo26n-seg.pt")
results = model("bus.jpg")

for result in results:
	print(result[0].masks.xy) # tensor로 표현된 픽셀 좌표의 세그먼트 목록입니다.
	# 첫 번째 오브젝트의 마스크 픽셀 좌표 출력
	#print(result[0].masks.xyn) # tensor로 표현된 정규화된 세그먼트 목록입니다.

	result.show()

 

model()는 model.predict()와 같은 의미인 것 같다. 사용할 수 있는 인수는 아래 링크에서 확인하자.

Inference Arguments

 

원래 이미지

 

각 인스턴스의 세그먼트를 구분하는 마스크가 표현된다.

 

첫 번째(92%의 확률을 갖는) 사람의 마스크 픽셀 좌표.

 

반응형
Posted by J-sean
: