인스턴스 세그멘테이션을 위해 Ultralytics YOLO26을 커스텀 학습하는 방법
모델이 픽셀 수준의 마스크를 사용하여 각 개별 객체를 식별하고 분리하는 인스턴스 세그멘테이션을 위해 Ultralytics YOLO26을 커스텀 학습시키는 방법을 배우십시오.

최근 기술 발전 덕분에 우리 삶에서 눈에 띄지 않지만 중요한 역할을 하는 많은 스마트 시스템이 AI로 구동됩니다. 예를 들어, 자동차가 신호를 위반했을 때 카메라가 자동으로 위반 사실을 기록하거나, 자동화된 품질 검사 시스템이 생산 라인에서 제조 결함을 발견할 때 AI가 보이지 않는 곳에서 그 역할을 수행하고 있습니다.
특히 컴퓨터 비전이라고 알려진 AI 분야는 기계가 이미지와 영상을 해석하고 이해할 수 있도록 합니다. 컴퓨터 비전을 통해 시스템은 실시간으로 객체를 인식하고, 움직임을 추적하며, 시각적 세부 정보를 분석할 수 있어 교통 모니터링, 산업 검사, 로봇 공학과 같은 애플리케이션에 필수적입니다.
These capabilities are made possible through computer vision models such as Ultralytics YOLO26, which supports a variety of vision tasks, including object detection and instance segmentation. While object detection identifies objects using simple bounding boxes, instance segmentation goes further by outlining each object at the pixel level, enabling more accurate and reliable results in real-world scenarios.

그림 1. YOLO26을 사용하여 이미지 속 객체 세그멘테이션하기
YOLO26과 같은 모델은 사전 학습되어 있어 사람, 자동차, 동물과 같은 일상적인 객체를 즉시 세그멘테이션할 수 있습니다. 그러나 보다 구체적인 애플리케이션을 위해서는 커스텀 학습을 수행할 수 있습니다. 즉, 모델이 어떤 객체처럼 생겼는지 학습하고 그 윤곽선을 정확하게 그려내는 방법을 배울 수 있다는 의미입니다.
본 글에서는 인스턴스 세그멘테이션을 위해 Ultralytics YOLO26을 커스텀 학습하는 방법을 단계별로 안내해 드립니다. 시작해 보겠습니다!
Link to this section인스턴스 세그멘테이션이란 무엇인가요?#
모델 학습을 본격적으로 시작하기 전에 한 걸음 물러나 인스턴스 세그멘테이션이 실제로 무엇을 의미하는지 알아보겠습니다.
인스턴스 세그멘테이션은 이미지 내의 개별 객체를 찾아 그 정확한 모양을 윤곽선으로 표시할 수 있게 해주는 컴퓨터 비전 작업입니다. 단순히 객체의 존재 여부를 식별하는 대신, 모델이 이미지의 모든 픽셀을 살펴보고 해당 픽셀이 특정 객체에 속하는지 판단합니다.
이는 객체가 겹쳐 있거나 매우 가까이 붙어 있더라도 객체를 분리할 수 있음을 의미합니다. 인스턴스 세그멘테이션을 이해하기 쉽게 만드는 핵심 개념은 마스크입니다.
마스크는 객체의 영역만 덮는 픽셀 단위의 윤곽선입니다. 형광펜으로 객체를 색칠하면서 다른 부분은 그대로 두는 방식과 같다고 생각하면 됩니다.
각 객체는 자신만의 마스크를 가지며, 이를 통해 모델은 두 대의 자동차나 나란히 서 있는 두 사람처럼 같은 유형의 객체라도 하나하나 구분할 수 있습니다.

그림 2. 인스턴스 세그멘테이션 살펴보기
인스턴스 세그멘테이션이 무엇인지 더 잘 이해하기 위해 다른 일반적인 컴퓨터 비전 작업과 비교해 볼 수 있습니다. 객체 탐지는 객체 주위에 그려진 간단한 직사각형인 바운딩 박스를 사용합니다. 바운딩 박스는 빠르고 유용하지만 객체의 정확한 모양을 포착하지는 못합니다.
반면, 시맨틱 세그멘테이션은 이미지의 모든 픽셀을 카테고리별로 라벨링하지만 같은 클래스에 속한 개별 객체들은 구분하지 않습니다. 인스턴스 세그멘테이션은 객체 카테고리를 식별하고 각 개별 객체에 별도의 마스크를 할당함으로써 두 접근 방식의 장점을 모두 결합합니다.
인스턴스 세그멘테이션은 매우 상세한 정보를 제공하므로 자동화된 품질 검사, 의료 영상, 로봇 공학과 같은 실제 애플리케이션에서 특히 유용합니다. 정밀한 측정, 정확한 경계 또는 객체 분리가 필요한 작업은 이러한 픽셀 수준의 이해를 통해 큰 이점을 얻을 수 있습니다.
Link to this sectionUltralytics YOLO26은 인스턴스 세그멘테이션을 지원합니다#
Ultralytics YOLO26은 실제 비전 작업을 빠르고 효율적으로 처리하도록 설계된 엔드 투 엔드, NMS-free, 최첨단 컴퓨터 비전 모델입니다. 이 모델은 실시간으로 이미지와 영상을 처리하면서 정확한 결과를 제공하는 Ultralytics YOLO 탐지 모델 제품군에 속합니다.
YOLO26은 객체 탐지, 자세 추정(pose estimation), 이미지 분류, 지향성 바운딩 박스 탐지(obb detection) 및 인스턴스 세그멘테이션을 포함한 단일 프레임워크 내에서 여러 비전 작업을 지원합니다.
YOLO26은 사전 학습된 상태로 제공되므로 COCO 데이터셋 및 ImageNet 데이터셋과 같이 널리 사용되는 대규모 데이터셋을 통해 사람, 차량 및 일상적인 물체를 이미 인식할 줄 압니다. 추가 학습 없이 즉시 모델 사용을 시작할 수 있습니다.
하지만 고유한 객체, 특정 환경 또는 비정상적인 조명 조건과 관련된 애플리케이션의 경우 커스텀 모델 학습을 통해 결과를 크게 향상할 수 있습니다. YOLO26을 본인의 라벨링된 이미지로 학습시키면 특정 사용 사례에 맞게 모델이 무엇을 찾아야 하는지, 객체 윤곽선을 어떻게 더 정확하게 그려야 하는지 가르칠 수 있습니다.
이 과정을 파인튜닝(fine-tuning)이라고도 합니다. 모델을 처음부터 학습시키는 대신 파인튜닝은 사전 학습된 YOLO26 모델로 시작하여 데이터를 사용하여 모델을 부드럽게 적응시킵니다. 모델은 이미 가장자리, 모양, 질감과 같은 일반적인 시각적 패턴을 이해하고 있으므로 특정 객체를 학습하는 데 훨씬 적은 수의 라벨링된 이미지와 훨씬 짧은 시간이 소요됩니다.
간단히 말해, 파인튜닝은 밑바닥부터 모델을 학습시키는 것보다 빠르고 효율적이며 접근성이 높습니다. YOLO26 커스텀 학습은 초보자나 데이터 및 컴퓨팅 자원이 제한된 팀에게도 실용적인 선택지입니다.
Link to this sectionYOLO26 인스턴스 세그멘테이션 애플리케이션 탐색#
그렇다면 인스턴스 세그멘테이션은 어디에서 효과적일까요? 특히 사물이 복잡하게 얽혀 있거나 겹쳐 있을 때, 객체를 구별하고 정확한 모양을 이해하는 것이 중요한 상황에서 유용합니다.
인스턴스 세그멘테이션이 큰 변화를 가져오는 일반적인 워크플로우는 다음과 같습니다:
- 항공 및 드론 영상: 이 작업은 드론이 매핑, 검사 및 측량을 위해 항공 이미지에서 건물, 차량, 식생과 같은 객체를 분리할 수 있게 합니다.
- 스포츠 분석: 인스턴스 세그멘테이션은 경기나 훈련 세션 동안 배경에서 개별 선수를 분리하여 선수들의 움직임과 상호작용을 분석하는 데 도움을 줍니다.
- 건설 및 인프라 모니터링: 건물, 교량, 도로의 구조적 요소, 균열 또는 손상된 영역을 식별하여 유지 보수 계획을 수립하는 데 도움을 줍니다.
- 의료 및 의료 영상: 인스턴스 세그멘테이션을 통해 세포, 조직 또는 의료 도구의 윤곽을 정확하게 그려낼 수 있어 보다 정확한 분석과 진단을 지원합니다.
- 농업 및 환경 모니터링: 작물, 과일 또는 식물 질병을 식별하고 분리하여 수확량을 추정하고 표적 치료를 적용하기 쉽게 만듭니다.

그림 3. YOLO26을 사용하여 잡초를 세그멘테이션하는 예시 (출처)
Link to this sectionYOLO26 인스턴스 세그멘테이션 커스텀 학습 원리#
다음으로 커스텀 학습이 어떻게 작동하는지 설명하겠습니다. 모델 학습이 기술적으로 들릴 수 있지만 전체 과정은 간단합니다.
이미지를 준비하고 모델이 학습할 객체에 라벨을 지정하며, 간단한 설정 파일을 구성한 다음 Ultralytics Python 패키지를 사용하여 YOLO26을 학습시킬 수 있습니다. Ultralytics Python 패키지는 처음부터 모든 것을 구축할 필요 없이 YOLO 모델을 학습, 테스트 및 배포하기 위한 즉시 사용 가능한 도구를 제공하는 소프트웨어 라이브러리입니다.
Link to this section1단계: 커스텀 데이터셋 준비#
첫 번째 단계는 커스텀 세그멘테이션 데이터셋을 준비하는 것입니다. 데이터셋은 모델이 학습하기를 원하는 객체를 보여주는 이미지 모음입니다.
다양한 각도, 조명, 배경, 객체 크기 등 실제 환경을 반영하는 이미지를 포함하도록 노력하세요. 이미지가 다양할수록 모델 성능은 더 좋아집니다.
인스턴스 세그멘테이션의 경우 이미지에 주석(annotation)도 필요합니다. 주석은 각 이미지의 객체에 라벨을 지정하여 모델이 무엇을 학습해야 하는지 알려주는 과정입니다. 간단한 상자를 그리는 대신 각 객체의 정확한 모양을 표시하기 위해 상세한 윤곽선(다각형)을 그려야 합니다. 이러한 윤곽선이 모델이 예측하도록 학습하는 마스크가 됩니다.
이러한 라벨을 만들기 위해 사용할 수 있는 여러 오픈 소스 주석 도구가 있습니다. 많은 도구는 이미지를 업로드하고 그 위에 직접 객체 윤곽선을 그릴 수 있는 사용자 친화적인 인터페이스를 제공합니다.
이미지와 주석이 준비되면 이를 학습용 폴더와 검증용 폴더로 구성할 수 있습니다. 데이터셋 크기에 따라 다르지만 일반적으로 이미지의 80%는 학습용으로, 20%는 검증용으로 분할하거나 70% 학습 및 30% 검증으로 분할하는 것도 흔합니다. 학습 세트는 모델을 가르치고, 검증 세트는 이전에 보지 못한 이미지에서 모델이 얼마나 잘 작동하는지 측정하는 데 사용됩니다.
이 분할을 균형 있게 유지하고 두 폴더에 다양한 예제가 포함되도록 하는 것이 중요합니다. 제대로 학습 및 검증으로 분할된 깨끗하고 잘 라벨링된 데이터셋은 강력한 인스턴스 세그멘테이션 모델의 토대가 됩니다.
Link to this section2단계: 데이터셋 YAML 파일 생성#
이미지와 주석을 준비한 후 다음 단계는 데이터셋 YAML 파일을 생성하는 것입니다. 이 파일은 데이터셋 위치와 학습 중 모델이 학습해야 할 객체 클래스를 지정합니다.
이 파일에서 데이터셋 루트 디렉토리, 학습 및 검증 이미지 폴더 경로, 그리고 클래스 이름 목록을 정의할 수 있습니다. 클래스 이름은 주석 파일에서 사용하는 클래스 번호와 동일한 순서로 나열되어야 모든 것이 올바르게 일치합니다.
정확한 형식에 대해 궁금한 점이 있으면 공식 Ultralytics 문서에서 자세한 내용을 확인할 수 있습니다.
Link to this section3단계: Ultralytics Python 패키지 설치#
이제 데이터셋과 YAML 파일이 준비되었으므로 다음 단계는 Ultralytics Python 패키지를 설치하는 것입니다.
이 패키지에는 YOLO26 모델을 학습, 검증, 추론 실행 및 내보내기 하는 데 필요한 도구가 포함되어 있습니다. 복잡한 학습 파이프라인을 처음부터 구축할 필요 없이 YOLO 모델을 쉽게 다룰 수 있는 방법을 제공합니다.
Ultralytics Python 패키지를 설치하기 전에 코드를 실행할 위치를 선택하는 것도 중요합니다. 다음과 같은 여러 개발 환경에서 Ultralytics 패키지를 사용할 수 있습니다:
- 명령줄 인터페이스 (CLI): 명령어를 입력하여 컴퓨터와 상호 작용하는 텍스트 기반 환경입니다. 그래픽 인터페이스에서처럼 버튼을 클릭하거나 메뉴를 탐색하는 대신, 프로그램 실행 및 작업을 직접 수행하기 위해 작성된 명령을 입력합니다.
- Jupyter Notebook: 작은 섹션으로 코드를 작성하고 실행하며 결과를 즉시 볼 수 있는 대화형 환경입니다. 실험 및 학습에 유용합니다.
- Google Colab: 로컬 설치가 필요 없고 GPU에 대한 선택적 액세스를 제공하는 클라우드 기반 노트북 플랫폼입니다. 초보자에게 가장 쉬운 옵션인 경우가 많습니다.
환경을 선택했으면 Ultralytics Python 패키지를 설치할 수 있습니다. 설치하려면 다음 명령어를 실행하십시오:
pip install ultralytics
Google Colab이나 Jupyter Notebook과 같은 노트북 기반 환경을 사용하는 경우 명령어 앞에 느낌표를 추가하십시오. 설치 문제가 발생하면 Ultralytics 문서나 일반적인 수정 및 환경 설정 팁에 대한 문제 해결 가이드를 참조하십시오.
설치 후에는 사전 학습된 YOLO26 세그멘테이션 모델을 로드하고 학습을 시작할 준비가 완료됩니다.
Link to this section4단계: 인스턴스 세그멘테이션을 위한 YOLO26 학습#
학습을 시작하기 전에 모델 크기를 선택해야 합니다. YOLO26 모델은 Nano(n), Small(s), Medium(m), Large(l), Extra Large(x) 등 다양한 크기로 제공됩니다.
작은 모델은 더 빠르게 학습되고 CPU나 엣지 장치에서 더 효율적으로 실행되는 반면, 큰 모델은 일반적으로 더 높은 정확도를 제공하지만 더 많은 메모리가 필요하며 GPU 가속의 이점을 얻습니다. 이제 막 시작했거나 제한된 하드웨어 환경이라면 Nano 버전(YOLO26n)이 실용적인 선택입니다.
모델 크기를 선택했다면 다음 단계는 사전 학습된 세그멘테이션 모델을 로드하고 커스텀 데이터셋에서 학습을 시작하는 것입니다. 이를 위해 아래와 같이 사전 학습된 모델 파일, 데이터셋 YAML 파일 경로, 에포크(epoch) 수, 이미지 크기를 지정해야 합니다.
from ultralytics import YOLO
model = YOLO("yolo26n-seg.pt")
results = model.train(data="path/to/file.yaml", epochs=100, imgsz=640)에포크 수는 모델이 전체 학습 데이터셋을 몇 번 반복하는지를 결정합니다. 각 에포크마다 모델은 예측을 수행하고 정확한 주석과 비교하여 오류를 계산하며, 성능 향상을 위해 내부 파라미터를 업데이트합니다.
학습이 올바르게 시작되면 터미널이나 노트북에 모델 구성, 데이터셋 스캔 및 학습 진행 상황이 표시됩니다. 학습이 계속됨에 따라 손실 값과 평가 지표가 각 에포크 후에 업데이트되며, 모델이 시간이 지남에 따라 어떻게 개선되는지 보여줍니다.
Link to this section5단계: 커스텀 학습 모델의 성능 평가#
학습 과정이 완료되면 모델의 성능 지표를 검토하고 검증할 수 있습니다. Google Colab에서는 “runs” 폴더로 이동한 다음 “segment” 폴더, 마지막으로 “train” 폴더로 이동하면 주요 성능 지표를 보여주는 로그를 찾을 수 있습니다.
Python 환경에서 작업하는 사용자의 경우 학습 결과는 기본적으로 현재 작업 디렉토리 내의 “runs/train/” 디렉토리에 저장됩니다. 각 학습 실행은 runs/train/exp 또는 runs/train/exp2와 같은 새 하위 디렉토리를 생성하며, 여기에서 로그, 저장된 가중치 및 해당 실험과 관련된 기타 출력물을 찾을 수 있습니다.
CLI를 사용하는 경우 “yolo settings” 명령어를 사용하여 이러한 결과에 액세스하고 관리할 수 있습니다. 이 명령어를 사용하면 학습 로그 및 실험 세부 정보와 관련된 경로 및 구성을 확인하거나 수정할 수 있습니다.
저장된 출력물 중에서 학습 중에 생성된 그래프도 찾을 수 있습니다. 이 그래프는 모델이 시간이 지남에 따라 어떻게 개선되었는지 보여줍니다. 예를 들어, 모델이 학습함에 따라 손실이 어떻게 감소했는지, 그리고 정밀도(precision), 재현율(recall), 평균 정밀도(mAP)와 같은 평가 지표가 에포크 전반에 걸쳐 어떻게 증가했는지를 보여줍니다.

그림 4. 모델을 평가하기 위해 분석할 수 있는 그래프 유형 (출처)
이러한 시각적 추세는 모델이 성공적으로 학습되었는지, 그리고 학습 시작부터 끝까지 얼마나 개선되었는지 이해하는 데 도움이 됩니다. 수치 지표와 그래프를 모두 검토하면 새로운 이미지로 테스트하기 전에 인스턴스 세그멘테이션 모델이 얼마나 잘 수행되는지 더 명확하게 파악할 수 있습니다.
Link to this section6단계: 모델 테스트 및 추론 실행#
모델을 검증한 후 마지막 단계는 새로운 이미지에서 모델을 테스트하는 것입니다. 이 과정을 추론(inference)이라고 하며, 단순히 학습된 모델을 사용하여 보지 못한 데이터에 대해 예측을 수행하는 것을 의미합니다.
Python에서 다음과 같이 추론을 실행할 수 있습니다:
results = model.predict("path/to/image.jpg", save=True, conf=0.3)이 예제에서 "path/to/image.jpg"를 테스트하려는 이미지 경로로 대체할 수 있습니다.
“save=True” 설정은 모델에 원본 이미지 위에 예측된 세그멘테이션 마스크가 그려진 새 이미지를 생성하고 저장하도록 지시합니다.
“conf=0.3” 설정은 신뢰도 임계값을 제어하며, 이는 모델이 최소 30% 이상 확신하는 예측만 표시함을 의미합니다. 이 값을 낮추면 더 많은 탐지 결과가 표시될 수 있으며, 높이면 모델이 더 선택적으로 작동합니다.
명령어를 실행하면 모델은 runs 디렉토리 내에 새 폴더를 생성하여 출력 이미지를 저장합니다. 해당 저장된 이미지를 열어 세그멘테이션 마스크가 객체 경계를 얼마나 잘 따르는지, 그리고 겹치는 객체가 올바르게 분리되는지 시각적으로 확인할 수 있습니다.
다양한 이미지, 배경 및 조명 조건에서 모델을 테스트하면 학습 데이터셋 외부에서 모델이 어떻게 작동하는지 더 명확하게 이해할 수 있습니다. 결과가 일관되고 정확하게 보이면 모델을 내보내고 배포할 준비가 된 것입니다.
Link to this section7단계: 모델 내보내기 및 배포#
모델을 테스트하고 성능이 우수함을 확인한 후 마지막 단계는 모델을 내보내고 배포하는 것입니다. 내보내기는 학습된 YOLO26 모델을 프로덕션 서버, 엣지 장치 또는 모바일 애플리케이션과 같은 다양한 환경에서 실행할 수 있는 형식으로 변환합니다.
Ultralytics는 여러 내보내기 형식을 지원하므로 배포 설정에 가장 적합한 형식을 선택할 수 있습니다. 예를 들어, 광범위한 플랫폼 호환성을 위해 ONNX로, NVIDIA 하드웨어에서 최적화된 GPU 성능을 위해 TensorRT로, 또는 Intel 장치에서 효율적인 CPU 기반 배포를 위해 OpenVINO로 내보낼 수 있습니다. 이러한 통합을 통해 학습 환경 밖에서도 모델을 더 쉽게 실행하고 강력한 실시간 성능을 얻을 수 있습니다.
Python에서 다음 명령어를 사용하여 모델을 내보낼 수 있습니다:
model.export(format="onnx")이 명령어는 학습된 모델을 ONNX 형식으로 변환합니다. 배포 요구 사항에 따라 "onnx"를 다른 지원되는 형식으로 바꿀 수 있습니다.
일단 내보내면 모델을 웹 서비스, 임베디드 비전 시스템, 로봇 플랫폼 또는 산업 검사 시스템과 같은 애플리케이션에 통합할 수 있습니다. 이 단계에서 커스텀 학습된 YOLO26 인스턴스 세그멘테이션 모델은 실험 단계를 넘어 실제 배포 단계로 이동할 수 있습니다.
Link to this section핵심 요약#
인스턴스 세그멘테이션을 위한 Ultralytics YOLO26 커스텀 학습은 특정 사용 사례에 진정으로 맞는 모델을 구축할 수 있는 유연성을 제공합니다. 명확한 데이터셋을 준비하고, YAML 파일을 설정하며, 사전 학습된 세그멘테이션 가중치로 학습하고 결과를 검토함으로써 모델이 픽셀 수준에서 각 객체의 윤곽선을 정확하게 그려내도록 가르칠 수 있습니다. 테스트 및 내보내기가 완료되면 YOLO26 모델은 개발 단계를 넘어 다중 규모의 실제 애플리케이션으로 이동할 수 있습니다.
커뮤니티에 가입하고 GitHub 저장소를 살펴보며 AI에 대해 더 자세히 알아보세요. 자신만의 비전 AI 프로젝트를 구축하려면 라이선스 옵션을 확인해 보시기 바랍니다. 의료 분야의 AI 및 소매업의 비전 AI와 같은 애플리케이션에 대한 자세한 내용은 솔루션 페이지를 방문하여 확인하세요.






