Ultralytics YOLO26을 사용한 인스턴스 세그멘테이션 및 추적#
인스턴스 세그멘테이션이란 무엇인가요?#
인스턴스 세그멘테이션은 이미지에서 개별 객체를 픽셀 수준으로 식별하고 윤곽을 표시하는 컴퓨터 비전 작업입니다. 픽셀을 범주별로 분류하기만 하는 시맨틱 세그멘테이션과 달리, 인스턴스 세그멘테이션은 각 객체 인스턴스에 고유한 레이블을 지정하고 정확하게 구분합니다. 따라서 의료 영상, 자율 주행, 산업 자동화처럼 정밀한 공간 이해가 필요한 애플리케이션에 매우 중요합니다.
Ultralytics YOLO26은 YOLO 모델로 잘 알려진 속도와 효율성을 유지하면서 객체 경계를 정밀하게 감지하는 강력한 인스턴스 세그멘테이션 기능을 제공합니다.
Ultralytics 패키지에서 사용할 수 있는 인스턴스 세그멘테이션 추적 유형은 두 가지입니다.
-
클래스 객체를 사용한 인스턴스 세그멘테이션: 시각적으로 명확하게 구분할 수 있도록 각 클래스 객체에 고유한 색상을 할당합니다.
-
객체 트랙을 사용한 인스턴스 세그멘테이션: 각 트랙을 서로 다른 색상으로 표시하여 비디오 프레임 전반에서 쉽게 식별하고 추적할 수 있습니다.
시청: Ultralytics YOLO26으로 객체 추적을 사용한 인스턴스 분할
샘플#
| 인스턴스 세그멘테이션 | 인스턴스 세그멘테이션 + 객체 추적 |
|---|---|
![]() | ![]() |
| Ultralytics 인스턴스 세그멘테이션 😍 | 객체 추적을 적용한 Ultralytics 인스턴스 세그멘테이션 🔥 |
YOLO26으로 세그먼트 및 추적하기#
InstanceSegmentation 솔루션은 각 프레임에서 YOLO26 세그멘테이션 모델을 실행하고 객체별 마스크를 그린 다음, 각 인스턴스에 서로 다른 색상을 적용하여 비디오에서 개별 객체를 추적할 수 있게 합니다. -seg 모델을 불러온 다음 Python API 또는 CLI를 사용해 입력 소스에 대해 실행하세요.
# 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 인수 표입니다:
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 모델 파일의 경로입니다. |
line_width | int | 2 | Solution에서 그리는 상자, 키포인트 및 개수 표시의 선 두께입니다. |
verbose | bool | True | 프레임별 입력 형태, 클래스 개수 및 처리 속도 로그를 활성화합니다. 추적 호출 자체는 항상 로그를 출력하지 않습니다. |
InstanceSegmentation 솔루션에서 track 인수를 활용할 수도 있습니다.
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | 사용할 추적 알고리즘을 지정합니다. 기본 제공 옵션: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | 탐지에 대한 신뢰도 임계값을 설정합니다. 값을 낮추면 추적할 수 있는 객체가 늘어나지만 오탐이 포함될 수 있습니다. |
iou | float | 0.7 | 중복 탐지를 필터링하기 위한 교집합 대비 합집합 (IoU) 임계값을 설정합니다. |
classes | list | None | 클래스 인덱스로 결과를 필터링합니다. 예를 들어 classes=[0, 2, 3]은 지정된 클래스만 추적합니다. |
device | str | None | 추론에 사용할 장치를 지정합니다(예: cpu, cuda:0 또는 0). 사용자는 모델 실행에 사용할 CPU, 특정 GPU 또는 기타 연산 장치를 선택할 수 있습니다. |
imgsz | int or tuple | 640 | 추론 대상 이미지 크기입니다. 정사각형을 나타내는 정수 또는 (height, width) 쌍을 지정합니다. 모델 stride에 맞춰 형태가 조정됩니다. |
max_det | int | 300 | 추적 전에 프레임별로 유지할 최대 탐지 수를 지정하여 밀집된 장면에서 솔루션이 처리하는 객체 수를 제한합니다. |
quantize | int or str | None | 추론 정밀도: CPU 이외의 환경에서 PyTorch 및 TorchScript 모델은 16(FP16) 또는 32/unset(FP32)을 사용하며, 다른 형식은 아티팩트와 런타임이 선택하는 정밀도를 사용합니다. 더 이상 사용되지 않는 half 인수를 대체합니다. |
또한 다음 시각화 인수를 사용할 수 있습니다:
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
show | bool | False | True이면 주석이 추가된 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 얻는 데 유용합니다. |
show_conf | bool | True | 각 감지 결과의 레이블 옆에 신뢰도 점수를 표시합니다. 각 감지 결과에 대한 모델의 확신도를 파악할 수 있습니다. |
show_labels | bool | True | 시각화 출력에 각 감지 결과의 레이블을 표시합니다. 감지된 객체를 즉시 파악할 수 있습니다. |
show_boxes | bool | True | 감지된 객체 주위에 경계 상자를 그립니다. 이미지나 비디오 프레임에서 객체를 시각적으로 식별하고 위치를 파악하는 데 필수적입니다. |
인스턴스 세그멘테이션의 응용 분야#
YOLO26을 사용한 인스턴스 세그멘테이션은 다양한 산업 분야에서 폭넓게 활용됩니다.
폐기물 관리 및 재활용#
YOLO26은 폐기물 관리 시설에서 다양한 종류의 자재를 식별하고 분류하는 데 사용할 수 있습니다. 이 모델은 플라스틱 폐기물, 판지, 금속 및 기타 재활용품을 높은 정밀도로 세그먼트화하여 자동 분류 시스템이 폐기물을 더 효율적으로 처리하도록 지원합니다. 전 세계에서 발생하는 70억 톤의 플라스틱 폐기물 중 약 10%만 재활용된다는 점을 고려하면 특히 유용합니다.
자율 주행 차량#
자율 주행 자동차에서 인스턴스 세그멘테이션은 보행자, 차량, 교통 표지판 및 기타 도로 요소를 픽셀 수준으로 식별하고 추적하는 데 도움이 됩니다. 주변 환경을 정밀하게 파악하는 것은 주행 경로 결정과 안전 판단에 매우 중요합니다. YOLO26은 실시간 성능을 제공하므로 시간에 민감한 애플리케이션에 적합합니다.
의료 영상#
인스턴스 세그멘테이션은 의료 스캔 이미지에서 종양, 장기 또는 세포 구조를 식별하고 윤곽을 표시할 수 있습니다. 객체 경계를 정밀하게 구분하는 YOLO26의 기능은 의료 진단과 치료 계획 수립에 유용합니다.
건설 현장 모니터링#
건설 현장에서 인스턴스 세그멘테이션은 중장비, 작업자 및 자재를 추적할 수 있습니다. 장비 위치를 모니터링하고 작업자가 위험 구역에 진입하는 것을 감지해 안전을 확보하는 동시에 작업 흐름과 리소스 할당을 최적화하는 데 도움이 됩니다.
자주 묻는 질문#
Ultralytics YOLO26을 사용해 인스턴스 세그멘테이션을 수행하려면 YOLO26 세그멘테이션 버전으로 YOLO 모델을 초기화하고 비디오 프레임을 처리하면 됩니다. 간단한 코드 예제는 다음과 같습니다.
import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" # 비디오 작성기 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)) # 인스턴스 세그멘테이션 초기화 isegment = solutions.InstanceSegmentation( show=True, # 출력을 표시합니다. model="yolo26n-seg.pt", # model="yolo26n-seg.pt" for object segmentation using YOLO26. ) # 비디오 처리 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 가이드에서 인스턴스 세그멘테이션에 대해 자세히 알아보세요.
인스턴스 세그멘테이션은 이미지에서 개별 객체를 식별하고 윤곽을 표시하여 각 객체에 고유한 레이블과 마스크를 부여합니다. 객체 추적은 비디오 프레임 전반에서 객체에 일관된 ID를 할당하여 이를 확장하고, 시간이 지나도 동일한 객체를 지속적으로 추적할 수 있게 합니다. YOLO26 구현처럼 두 기능을 결합하면 정밀한 경계 정보를 유지하면서 비디오의 객체 이동과 동작을 분석하는 강력한 기능을 활용할 수 있습니다.
Ultralytics YOLO26은 Mask R-CNN이나 Faster R-CNN 같은 다른 모델에 비해 실시간 성능, 뛰어난 정확도 및 사용 편의성을 제공합니다. YOLO26은 이미지를 한 번에 처리하는 단일 단계 감지 방식으로, 높은 정밀도를 유지하면서 훨씬 빠르게 작동합니다. 또한 Ultralytics Platform과 원활하게 통합되어 사용자가 모델, 데이터셋 및 학습 파이프라인을 효율적으로 관리할 수 있습니다. 속도와 정확도를 모두 요구하는 애플리케이션에 YOLO26은 최적의 균형을 제공합니다.
네. Ultralytics는 인스턴스 세그멘테이션용 YOLO26 모델 학습에 적합한 여러 데이터셋을 제공합니다. 여기에는 COCO-Seg, 빠른 테스트에 적합한 소규모 하위 집합인 COCO8-Seg, Package-Seg 및 Crack-Seg이 포함됩니다. 이러한 데이터셋에는 인스턴스 세그멘테이션 작업에 필요한 픽셀 수준 어노테이션이 포함되어 있습니다. 더 전문화된 애플리케이션의 경우 Ultralytics 형식에 따라 사용자 지정 데이터셋을 만들 수도 있습니다. 전체 데이터셋 정보와 사용 지침은 Ultralytics 데이터셋 문서에서 확인할 수 있습니다.

