Link to this section인스턴스 세그멘테이션#
인스턴스 세그멘테이션은 객체 탐지보다 한 단계 더 나아가 이미지 내의 개별 객체를 식별하고 나머지 이미지 영역과 분리하는 작업입니다.
인스턴스 세그멘테이션 모델의 출력값은 이미지 내 각 객체의 윤곽을 나타내는 마스크나 등고선 세트이며, 각 객체에 대한 클래스 라벨과 신뢰도 점수가 함께 제공됩니다. 인스턴스 세그멘테이션은 이미지 내 객체의 위치뿐만 아니라 정확한 형태를 파악해야 할 때 유용합니다.
Watch: Run Segmentation with Pretrained Ultralytics YOLO Model in Python.
YOLO26 Segment 모델은 -seg 접미사(예: yolo26n-seg.pt)를 사용하며, COCO 데이터셋으로 사전 학습되었습니다.
Link to this section모델#
여기에서는 YOLO26 사전 학습 Segment 모델을 보여줍니다. Detect, Segment 및 Pose 모델은 COCO 데이터셋으로 사전 학습되었으며, Semantic 모델은 Cityscapes로, Classify 모델은 ImageNet 데이터셋으로 사전 학습되었습니다.
모델은 처음 사용할 때 최신 Ultralytics 릴리스에서 자동으로 다운로드됩니다.
| 모델 | 크기 (픽셀) | mAPbox 50-95(e2e) | mAPmask 50-95(e2e) | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-seg | 640 | 39.6 | 33.9 | 53.3 ± 0.5 | 2.1 ± 0.0 | 2.7 | 9.1 |
| YOLO26s-seg | 640 | 47.3 | 40.0 | 118.4 ± 0.9 | 3.3 ± 0.0 | 10.4 | 34.2 |
| YOLO26m-seg | 640 | 52.5 | 44.1 | 328.2 ± 2.4 | 6.7 ± 0.1 | 23.6 | 121.5 |
| YOLO26l-seg | 640 | 54.4 | 45.5 | 387.0 ± 3.7 | 8.0 ± 0.1 | 28.0 | 139.8 |
| YOLO26x-seg | 640 | 56.5 | 47.0 | 787.0 ± 6.8 | 16.4 ± 0.1 | 62.8 | 313.5 |
- mAPval 값은 COCO val2017 데이터셋에서 단일 모델 및 단일 스케일을 기준으로 합니다.
재현하려면yolo val segment data=coco.yaml device=0명령을 사용하십시오. - **속도(Speed)**는 Amazon EC2 P4d 인스턴스를 사용하여 COCO val 이미지에서 평균을 낸 값입니다.
재현하려면yolo val segment data=coco.yaml batch=1 device=0|cpu명령을 사용하십시오. - 파라미터(Params) 및 FLOPs 값은 Conv 및 BatchNorm 레이어를 병합하고 엔드투엔드(end2end) 모델의 경우 보조 일대다(one-to-many) 감지 헤드를 제거하는
model.fuse()이후의 융합 모델 기준입니다. 사전 학습된 체크포인트는 전체 학습 아키텍처를 유지하므로 더 높은 수치를 보일 수 있습니다.
Link to this section학습(Train)#
COCO8-seg 데이터셋에서 이미지 크기 640으로 100 에폭(epochs) 동안 YOLO26n-seg를 학습시키십시오. 사용 가능한 전체 인수 목록은 구성(Configuration) 페이지를 참조하십시오.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-seg.yaml") # build a new model from YAML
model = YOLO("yolo26n-seg.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n-seg.yaml").load("yolo26n-seg.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)train 모드에 대한 자세한 내용은 학습(Train) 페이지에서 확인하십시오. 세그멘테이션 모델은 Ultralytics Platform을 통해 클라우드 GPU에서 학습시킬 수도 있습니다.
Link to this section데이터셋 형식#
YOLO 세그멘테이션 데이터셋 형식에 대한 자세한 내용은 데이터셋 가이드에서 확인할 수 있습니다. 기존 데이터셋을 다른 형식(COCO 등)에서 YOLO 형식으로 변환하려면 Ultralytics에서 제공하는 JSON2YOLO 도구를 사용하십시오. 또한 Ultralytics Platform에서 폴리곤 도구와 SAM 기반 스마트 주석 기능을 사용하여 세그멘테이션 마스크를 생성할 수도 있습니다.
Link to this section검증(Val)#
학습된 YOLO26n-seg 모델의 정확도(accuracy)를 COCO8-seg 데이터셋에서 검증하십시오. model이 학습 시의 data와 인수를 모델 속성으로 유지하므로 별도의 인수가 필요하지 않습니다.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-seg.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95(B)
metrics.box.map50 # map50(B)
metrics.box.map75 # map75(B)
metrics.box.maps # a list containing mAP50-95(B) for each category
metrics.box.image_metrics # per-image metrics dictionary for det with precision, recall, F1, TP, FP, and FN
metrics.seg.map # map50-95(M)
metrics.seg.map50 # map50(M)
metrics.seg.map75 # map75(M)
metrics.seg.maps # a list containing mAP50-95(M) for each category
metrics.seg.image_metrics # per-image metrics dictionary for seg with precision, recall, F1, TP, FP, and FNLink to this section추론(Predict)#
학습된 YOLO26n-seg 모델을 사용하여 이미지에 대한 예측을 실행하십시오.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-seg.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
# Access the results
for result in results:
xy = result.masks.xy # mask polygons in pixel coordinates
xyn = result.masks.xyn # normalized mask polygons
masks = result.masks.data # binary masks, shape (N,H,W), dtype torch.uint8전체 predict 모드 세부 정보는 Predict 페이지를 확인하십시오.
Link to this section결과 출력#
YOLO 인스턴스 세그멘테이션은 이미지당 하나의 Results 객체를 반환합니다. 각 결과는 객체 수준의 예측값을 저장하며, 탐지된 각 인스턴스에는 고유한 이진 마스크, 클래스, 신뢰도 및 박스가 포함됩니다.
| 속성 | 유형 | 형태 | 설명 |
|---|---|---|---|
result.masks | Masks | (N) | 인스턴스 마스크입니다. |
result.masks.data | torch.uint8 | (N,H,W) | 0 또는 1 값을 갖는 이진 마스크입니다. |
result.masks.xy | np.float32 | list[(P,2)] | 픽셀 다각형입니다. |
result.masks.xyn | np.float32 | list[(P,2)] | 정규화된 다각형입니다. |
result.boxes | Boxes | (N) | 인스턴스 박스/클래스/신뢰도입니다. |
result.boxes.cls | torch.float32 | (N,) | 클래스 ID입니다. 이름을 가져오려면 int로 변환하십시오. |
모든 작업에 걸친 작업별 Results 필드는 작업별 예측 결과 섹션을 참조하십시오.
Link to this section시맨틱 세그멘테이션과의 차이점#
인스턴스 세그멘테이션은 객체 수준의 세그멘테이션입니다. 두 대의 자동차는 두 개의 마스크, 두 개의 박스, 두 개의 신뢰도 점수를 생성합니다. 반면 시맨틱 세그멘테이션(Semantic segmentation)은 픽셀 수준의 분류입니다. 동일한 이미지에서 자동차들은 객체별 박스, 신뢰도, 기본 폴리곤 리스트 없이 동일한 클래스 ID를 가진 픽셀들로 구성된 클래스 맵으로 표현됩니다.
Link to this section내보내기(Export)#
YOLO26n-seg 모델을 ONNX, CoreML 등 다른 형식으로 내보내십시오.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-seg.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")사용 가능한 YOLO26-seg 내보내기 형식은 아래 표와 같습니다. format 인수(예: format='onnx' 또는 format='engine')를 사용하여 모든 형식으로 내보낼 수 있습니다. 내보낸 모델에 대해 즉시 예측이나 검증을 수행할 수 있습니다(예: yolo predict model=yolo26n-seg.onnx). 내보내기가 완료되면 모델에 대한 사용 예시가 표시됩니다.
| 형식 | format 인수 | 모델 | 메타데이터 | 인수 |
|---|---|---|---|---|
| PyTorch | - | yolo26n-seg.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-seg.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-seg.onnx | ✅ | imgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-seg_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-seg.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-seg.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-seg_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-seg.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-seg.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-seg_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-seg_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-seg_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-seg.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-seg_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-seg_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-seg_rknn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
| ExecuTorch | executorch | yolo26n-seg_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-seg_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DEEPX | deepx | yolo26n-seg_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-seg_qnn.onnx | ✅ | imgsz, batch, name, int8, data, fraction, device |
전체 export 세부 사항은 Export 페이지에서 확인하십시오.
Link to this sectionFAQ#
Link to this section사용자 정의 데이터셋에서 YOLO26 세그멘테이션 모델을 어떻게 학습시키나요?#
사용자 정의 데이터셋에서 YOLO26 세그멘테이션 모델을 학습시키려면 먼저 데이터셋을 YOLO 세그멘테이션 형식으로 준비해야 합니다. JSON2YOLO와 같은 도구를 사용하여 다른 형식의 데이터셋을 변환할 수 있습니다. 데이터셋 준비가 완료되면 Python 또는 CLI 명령을 사용하여 모델을 학습시킬 수 있습니다:
from ultralytics import YOLO
# Load a pretrained YOLO26 segment model
model = YOLO("yolo26n-seg.pt")
# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)사용 가능한 더 많은 인수를 확인하려면 구성(Configuration) 페이지를 참조하십시오.
Link to this sectionYOLO26에서 객체 탐지(object detection)와 인스턴스 세그멘테이션의 차이점은 무엇인가요?#
객체 탐지는 객체 주위에 바운딩 박스를 그려 이미지 내 객체를 식별하고 위치를 파악하는 반면, 인스턴스 세그멘테이션은 바운딩 박스를 식별할 뿐만 아니라 각 객체의 정확한 형태를 나타냅니다. YOLO26 인스턴스 세그멘테이션 모델은 탐지된 각 객체의 윤곽을 따르는 마스크나 등고선을 제공하며, 이는 의료 영상 처리나 자율 주행과 같이 객체의 정확한 형태 파악이 중요한 작업에 특히 유용합니다.
Link to this section왜 인스턴스 세그멘테이션에 YOLO26을 사용해야 하나요?#
Ultralytics YOLO26은 높은 정확도와 실시간 성능으로 인정받는 최첨단 모델로, 인스턴스 세그멘테이션 작업에 이상적입니다. YOLO26 Segment 모델은 COCO 데이터셋으로 사전 학습되어 다양한 객체에 대해 견고한 성능을 보장합니다. 또한 YOLO는 학습, 검증, 예측 및 내보내기 기능을 원활하게 통합하여 지원하므로 연구 및 산업 응용 분야 모두에서 매우 다재다능하게 활용됩니다.
Link to this section사전 학습된 YOLO 세그멘테이션 모델을 불러오고 검증하려면 어떻게 해야 하나요?#
사전 학습된 YOLO 세그멘테이션 모델을 불러오고 검증하는 방법은 간단합니다. Python과 CLI를 사용하여 수행하는 방법은 다음과 같습니다:
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n-seg.pt")
# Validate the model
metrics = model.val()
print("Mean Average Precision for boxes:", metrics.box.map)
print("Mean Average Precision for masks:", metrics.seg.map)이 단계들을 통해 모델 성능 평가에 필수적인 평균 정밀도(mAP)와 같은 검증 지표를 얻을 수 있습니다.
Link to this sectionYOLO 세그멘테이션 모델을 ONNX 형식으로 내보내려면 어떻게 해야 하나요?#
YOLO 세그멘테이션 모델을 ONNX 형식으로 내보내는 것은 간단하며 Python 또는 CLI 명령을 사용하여 수행할 수 있습니다:
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n-seg.pt")
# Export the model to ONNX format
model.export(format="onnx")다양한 형식으로 내보내는 방법에 대한 자세한 내용은 내보내기(Export) 페이지를 참조하십시오.