Ultralytics YOLO27:

Ultralytics YOLO26을 활용한 인스턴스 세그멘테이션 및 트래킹#

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

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

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

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

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

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



Watch: Instance Segmentation with Object Tracking using 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_widthint2솔루션이 그리는 박스, 키포인트 및 카운트의 선 두께입니다.
verboseboolTrue입력 형태, 클래스별 개수 및 처리 속도의 프레임별 로그를 활성화합니다. 추적 호출 자체는 항상 로그를 출력하지 않습니다.

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

인수유형기본값설명
trackerstr'botsort.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) 쌍입니다. 형태는 모델 스트라이드에 맞게 조정됩니다.
max_detint300추적 전 프레임당 유지되는 최대 검출 수로, 솔루션이 밀집된 장면에서 처리하는 객체를 제한합니다.
quantizeint or strNone추론 정밀도: PyTorch 및 TorchScript 모델의 경우 16(FP16) 또는 32/설정 안 함(FP32); 기타 형식은 아티팩트와 런타임이 선택하는 정밀도로 계산됩니다. 더 이상 사용되지 않는 half 플래그를 대체합니다.

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

인수유형기본값설명
showboolFalseTrue인 경우 annotation이 추가된 이미지 또는 비디오를 window에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 제공하는 데 유용합니다.
show_confboolTrue각 detection의 confidence score를 label과 함께 표시합니다. 각 detection에 대한 모델의 확신 정도를 파악할 수 있습니다.
show_labelsboolTruevisual output에 각 detection의 label을 표시합니다. 검출된 객체를 즉시 파악할 수 있습니다.
show_boxesboolTrue검출된 객체 주위에 bounding box를 그립니다. 이미지 또는 비디오 frame에서 객체를 시각적으로 식별하고 위치를 파악하는 데 필수적입니다.

인스턴스 세그멘테이션의 애플리케이션#

YOLO26을 사용한 인스턴스 세그멘테이션은 다양한 산업에서 수많은 실제 애플리케이션에 활용됩니다.

폐기물 관리 및 재활용#

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

자율주행 차량#

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

의료 영상#

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

건설 현장 모니터링#

건설 현장에서 인스턴스 세그멘테이션은 중장비, 작업자 및 자재를 추적할 수 있습니다. 장비 위치를 모니터링하고 작업자가 위험 구역에 진입하는 시점을 감지하여 안전을 확보하는 동시에, 작업 흐름과 자원 배분을 최적화하는 데에도 도움이 됩니다.

FAQ#

  • Ultralytics YOLO26을 사용하여 인스턴스 세그멘테이션을 수행하려면 YOLO26의 세그멘테이션 버전으로 YOLO 모델을 초기화하고 비디오 프레임을 처리합니다. 다음은 간단한 코드 예제입니다.

    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 가이드에서 인스턴스 세그멘테이션에 대해 자세히 알아보세요.

  • 인스턴스 세그멘테이션은 이미지 내 개별 객체를 식별하고 윤곽을 추출하여 각 객체에 고유한 라벨과 마스크를 제공합니다. 객체 추적은 비디오 프레임 전체에서 객체에 일관된 ID를 지정하여 이를 확장하며, 시간의 흐름에 따라 동일한 객체를 지속적으로 추적할 수 있도록 합니다. YOLO26의 구현처럼 이 두 기능을 결합하면 정밀한 경계 정보를 유지하면서 비디오 속 객체의 움직임과 동작을 분석하는 강력한 기능을 얻을 수 있습니다.

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

  • 예, Ultralytics는 인스턴스 세그멘테이션을 위한 YOLO26 모델 학습에 적합한 여러 데이터셋을 제공합니다. 여기에는 COCO-Seg, COCO8-Seg(빠른 테스트를 위한 소규모 하위 집합), Package-SegCrack-Seg가 포함됩니다. 이러한 데이터셋에는 인스턴스 세그멘테이션 작업에 필요한 픽셀 수준 어노테이션이 포함되어 있습니다. 보다 전문화된 애플리케이션의 경우 Ultralytics 형식에 따라 사용자 정의 데이터셋을 만들 수도 있습니다. 전체 데이터셋 정보와 사용 지침은 Ultralytics 데이터셋 문서에서 확인할 수 있습니다.

댓글