Ultralytics YOLO26을 이용한 인스턴스 세그멘테이션 및 추적 🚀

인스턴스 세그멘테이션이란 무엇입니까?

인스턴스 세그멘테이션은 이미지 내의 개별 객체를 픽셀 단위로 식별하고 외곽선을 추출하는 컴퓨터 비전 작업입니다. 단순히 픽셀을 범주별로 분류하는 세맨틱 세그멘테이션과 달리, 인스턴스 세그멘테이션은 각 객체 인스턴스를 고유하게 레이블링하고 정밀하게 구분합니다. 이는 의료 영상, 자율 주행, 산업 자동화와 같이 세밀한 공간 이해가 필요한 애플리케이션에 매우 중요합니다.

Ultralytics YOLO26은 YOLO 모델이 가진 속도와 효율성을 유지하면서 정밀한 객체 경계 감지가 가능한 강력한 인스턴스 세그멘테이션 기능을 제공합니다.

Ultralytics 패키지에서 사용할 수 있는 인스턴스 세그멘테이션 추적 유형은 두 가지가 있습니다:

  • 클래스 객체를 이용한 인스턴스 세그멘테이션: 각 클래스 객체에 고유한 색상을 할당하여 시각적으로 명확하게 구분합니다.

  • 객체 추적을 이용한 인스턴스 세그멘테이션: 각 추적 대상에 고유한 색상을 표시하여 비디오 프레임 전체에서 쉽게 식별하고 추적할 수 있도록 합니다.



Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26

샘플

인스턴스 분할인스턴스 세그멘테이션 + 객체 추적
Ultralytics 인스턴스 세그멘테이션객체 추적을 이용한 Ultralytics 인스턴스 세그멘테이션
Ultralytics 인스턴스 세그멘테이션 😍객체 추적을 포함한 Ultralytics 인스턴스 세그멘테이션 🔥
Ultralytics YOLO를 이용한 인스턴스 세그멘테이션
# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True

# Pass a source video
yolo solutions isegment source="path/to/video.mp4"

# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"

InstanceSegmentation 인수

InstanceSegmentation 인수가 포함된 표는 다음과 같습니다:

인수(Argument)유형(Type)기본값(Default)설명
modelstrNoneUltralytics YOLO 모델 파일 경로입니다.
regionlist'[(20, 400), (1260, 400)]'계수 영역을 정의하는 점들의 목록입니다.

You can also take advantage of track arguments within the InstanceSegmentation solution:

인수(Argument)유형(Type)기본값(Default)설명
trackerstr'botsort.yaml'사용할 추적 알고리즘을 지정합니다. 예: bytetrack.yaml 또는 botsort.yaml.
conffloat0.1탐지에 대한 신뢰도 임계값을 설정합니다. 낮은 값을 사용할수록 더 많은 객체가 추적되지만 오탐지가 포함될 수 있습니다.
ioufloat0.7중복 탐지를 필터링하기 위한 Intersection over Union (IoU) 임계값을 설정합니다.
classeslistNone클래스 인덱스별로 결과를 필터링합니다. 예를 들어, classes=[0, 2, 3]은 지정된 클래스만 추적합니다.
verboseboolTrue추적 결과 표시를 제어하여 추적된 객체의 시각적 출력을 제공합니다.
devicestrNone추론을 위한 장치(예: cpu, cuda:0 또는 0)를 지정합니다. 모델 실행을 위해 CPU, 특정 GPU 또는 기타 컴퓨팅 장치 중 하나를 선택할 수 있습니다.

또한 다음과 같은 시각화 인수를 사용할 수 있습니다:

인수(Argument)유형(Type)기본값(Default)설명
showboolFalseTrue인 경우 주석이 달린 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 얻는 데 유용합니다.
line_widthint or NoneNone바운딩 박스의 선 두께를 지정합니다. None인 경우 이미지 크기에 따라 선 두께가 자동으로 조정됩니다. 명확성을 위한 시각적 사용자 정의를 제공합니다.
show_confboolTrue레이블과 함께 각 탐지에 대한 신뢰도 점수를 표시합니다. 각 탐지에 대한 모델의 확신 수준을 알 수 있습니다.
show_labelsboolTrue시각적 출력에서 각 탐지에 대한 레이블을 표시합니다. 탐지된 객체를 즉시 이해할 수 있게 합니다.

인스턴스 세그멘테이션의 활용

YOLO26을 이용한 인스턴스 세그멘테이션은 다양한 산업 분야에서 수많은 실제 적용 사례를 가지고 있습니다:

폐기물 관리 및 재활용

YOLO26은 폐기물 관리 시설에서 다양한 유형의 재료를 식별하고 분류하는 데 사용할 수 있습니다. 이 모델은 플라스틱 폐기물, 판지, 금속 및 기타 재활용품을 정밀하게 세그멘테이션하여 자동화된 분류 시스템이 폐기물을 보다 효율적으로 처리할 수 있게 합니다. 전 세계적으로 발생하는 70억 톤의 플라스틱 폐기물 중 약 10%만이 재활용된다는 점을 고려할 때 이는 매우 중요합니다.

자율 주행 차량

자율 주행 자동차 분야에서 인스턴스 세그멘테이션은 보행자, 차량, 교통 표지판 및 기타 도로 요소를 픽셀 단위로 식별하고 추적하는 데 도움을 줍니다. 이러한 정밀한 환경 이해는 내비게이션 및 안전 결정을 내리는 데 매우 중요합니다. YOLO26의 실시간 성능은 이러한 시간 민감형 애플리케이션에 이상적입니다.

의료 영상

인스턴스 세그멘테이션은 의료 스캔에서 종양, 장기 또는 세포 구조를 식별하고 외곽선을 추출할 수 있습니다. 객체 경계를 정밀하게 구분하는 YOLO26의 능력은 의료 진단 및 치료 계획 수립에 매우 유용합니다.

건설 현장 모니터링

건설 현장에서 인스턴스 세그멘테이션은 중장비, 작업자 및 자재를 추적할 수 있습니다. 이는 장비 위치를 모니터링하고 작업자가 위험 구역에 진입할 때 이를 감지하여 안전을 보장하는 동시에 워크플로와 리소스 할당을 최적화하는 데 도움이 됩니다.

참고

문의 사항이 있으시면 Ultralytics Issue 섹션이나 아래 언급된 토론 섹션에 질문을 남겨 주십시오.

FAQ

Ultralytics YOLO26을 사용하여 인스턴스 세그멘테이션을 수행하려면 어떻게 해야 합니까?

Ultralytics YOLO26을 사용하여 인스턴스 세그멘테이션을 수행하려면, YOLO 모델을 YOLO26의 세그멘테이션 버전으로 초기화하고 비디오 프레임을 처리하면 됩니다. 간단한 코드 예시는 다음과 같습니다:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init InstanceSegmentation
isegment = solutions.InstanceSegmentation(
    show=True,  # display the output
    model="yolo26n-seg.pt",  # model="yolo26n-seg.pt" for object segmentation using YOLO26.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break
    results = isegment(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

인스턴스 세그멘테이션에 대한 자세한 내용은 Ultralytics YOLO26 가이드에서 확인하십시오.

Ultralytics YOLO26에서 인스턴스 세그멘테이션과 객체 추적의 차이점은 무엇입니까?

인스턴스 세그멘테이션은 이미지 내의 개별 객체를 식별하고 외곽선을 추출하여 각 객체에 고유한 레이블과 마스크를 부여합니다. 객체 추적은 이를 확장하여 비디오 프레임 전체에서 객체에 일관된 ID를 할당함으로써 동일한 객체를 시간 경과에 따라 지속적으로 추적할 수 있게 합니다. YOLO26 구현과 같이 두 기능을 결합하면 정밀한 경계 정보를 유지하면서 비디오 내 객체의 움직임과 행동을 분석할 수 있는 강력한 기능을 얻게 됩니다.

Mask R-CNN이나 Faster R-CNN과 같은 다른 모델 대신 Ultralytics YOLO26을 인스턴스 세그멘테이션 및 추적용으로 사용해야 하는 이유는 무엇입니까?

Ultralytics YOLO26은 Mask R-CNN이나 Faster R-CNN과 같은 다른 모델에 비해 실시간 성능, 뛰어난 정확도 및 사용 편의성을 제공합니다. YOLO26은 이미지를 단일 패스(원-스테이지 감지)로 처리하므로 높은 정밀도를 유지하면서도 훨씬 더 빠릅니다. 또한 Ultralytics 플랫폼과 완벽하게 통합되어 사용자가 모델, 데이터셋 및 학습 파이프라인을 효율적으로 관리할 수 있게 해줍니다. 속도와 정확도가 모두 필요한 애플리케이션의 경우, YOLO26은 최적의 균형을 제공합니다.

YOLO26 모델을 인스턴스 세그멘테이션 및 추적용으로 학습시키는 데 적합한 Ultralytics 제공 데이터셋이 있습니까?

네, Ultralytics는 인스턴스 세그멘테이션용 YOLO26 모델 학습에 적합한 여러 데이터셋을 제공합니다. 여기에는 COCO-Seg, COCO8-Seg (빠른 테스트를 위한 작은 하위 집합), Package-SegCrack-Seg가 포함됩니다. 이러한 데이터셋에는 인스턴스 세그멘테이션 작업에 필요한 픽셀 단위의 주석이 포함되어 있습니다. 더 전문적인 애플리케이션의 경우, Ultralytics 형식을 따르는 사용자 지정 데이터셋을 생성할 수도 있습니다. 전체 데이터셋 정보 및 사용 지침은 Ultralytics 데이터셋 문서에서 찾을 수 있습니다.

댓글