Ultralytics YOLO27:
Get Started

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

인스턴스 세그멘테이션이란 무엇인가요?#

인스턴스 세그멘테이션은 이미지에서 개별 객체를 픽셀 수준으로 식별하고 윤곽을 표시하는 컴퓨터 비전 작업입니다. 픽셀을 범주별로 분류하기만 하는 시맨틱 세그멘테이션과 달리, 인스턴스 세그멘테이션은 각 객체 인스턴스에 고유한 레이블을 지정하고 정확하게 구분합니다. 따라서 의료 영상, 자율 주행, 산업 자동화처럼 정밀한 공간 이해가 필요한 애플리케이션에 매우 중요합니다.

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

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

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

  • 객체 트랙을 사용한 인스턴스 세그멘테이션: 각 트랙을 서로 다른 색상으로 표시하여 비디오 프레임 전반에서 쉽게 식별하고 추적할 수 있습니다.



시청: Ultralytics YOLO26으로 객체 추적을 사용한 인스턴스 분할

샘플#

인스턴스 세그멘테이션인스턴스 세그멘테이션 + 객체 추적
Ultralytics 인스턴스 세그멘테이션객체 추적을 적용한 Ultralytics 인스턴스 세그멘테이션
Ultralytics 인스턴스 세그멘테이션 😍객체 추적을 적용한 Ultralytics 인스턴스 세그멘테이션 🔥

YOLO26으로 세그먼트 및 추적하기#

InstanceSegmentation 솔루션은 각 프레임에서 YOLO26 세그멘테이션 모델을 실행하고 객체별 마스크를 그린 다음, 각 인스턴스에 서로 다른 색상을 적용하여 비디오에서 개별 객체를 추적할 수 있게 합니다. -seg 모델을 불러온 다음 Python API 또는 CLI를 사용해 입력 소스에 대해 실행하세요.

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 인수 표입니다:

인수유형기본값설명
modelstrNoneUltralytics YOLO 모델 파일의 경로입니다.
line_widthint2Solution에서 그리는 상자, 키포인트 및 개수 표시의 선 두께입니다.
verboseboolTrue프레임별 입력 형태, 클래스 개수 및 처리 속도 로그를 활성화합니다. 추적 호출 자체는 항상 로그를 출력하지 않습니다.

InstanceSegmentation 솔루션에서 track 인수를 활용할 수도 있습니다.

인수유형기본값설명
trackerstr'tracktrack.yaml'사용할 추적 알고리즘을 지정합니다. 기본 제공 옵션: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25탐지에 대한 신뢰도 임계값을 설정합니다. 값을 낮추면 추적할 수 있는 객체가 늘어나지만 오탐이 포함될 수 있습니다.
ioufloat0.7중복 탐지를 필터링하기 위한 교집합 대비 합집합 (IoU) 임계값을 설정합니다.
classeslistNone클래스 인덱스로 결과를 필터링합니다. 예를 들어 classes=[0, 2, 3]은 지정된 클래스만 추적합니다.
devicestrNone추론에 사용할 장치를 지정합니다(예: cpu, cuda:0 또는 0). 사용자는 모델 실행에 사용할 CPU, 특정 GPU 또는 기타 연산 장치를 선택할 수 있습니다.
imgszint or tuple640추론 대상 이미지 크기입니다. 정사각형을 나타내는 정수 또는 (height, width) 쌍을 지정합니다. 모델 stride에 맞춰 형태가 조정됩니다.
max_detint300추적 전에 프레임별로 유지할 최대 탐지 수를 지정하여 밀집된 장면에서 솔루션이 처리하는 객체 수를 제한합니다.
quantizeint or strNone추론 정밀도: CPU 이외의 환경에서 PyTorch 및 TorchScript 모델은 16(FP16) 또는 32/unset(FP32)을 사용하며, 다른 형식은 아티팩트와 런타임이 선택하는 정밀도를 사용합니다. 더 이상 사용되지 않는 half 인수를 대체합니다.

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

인수유형기본값설명
showboolFalseTrue이면 주석이 추가된 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 얻는 데 유용합니다.
show_confboolTrue각 감지 결과의 레이블 옆에 신뢰도 점수를 표시합니다. 각 감지 결과에 대한 모델의 확신도를 파악할 수 있습니다.
show_labelsboolTrue시각화 출력에 각 감지 결과의 레이블을 표시합니다. 감지된 객체를 즉시 파악할 수 있습니다.
show_boxesboolTrue감지된 객체 주위에 경계 상자를 그립니다. 이미지나 비디오 프레임에서 객체를 시각적으로 식별하고 위치를 파악하는 데 필수적입니다.

인스턴스 세그멘테이션의 응용 분야#

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 데이터셋 문서에서 확인할 수 있습니다.

댓글