콘텐츠로 건너뛰기

인스턴스 세분화

인스턴스 세분화 예시

인스턴스 분할은 객체 감지보다 한 단계 더 나아가 이미지에서 개별 객체를 식별하고 나머지 이미지에서 객체를 분할하는 작업을 포함합니다.

인스턴스 분할 모델의 출력은 이미지의 각 개체에 대한 클래스 레이블 및 신뢰 점수와 함께 각 개체의 윤곽을 나타내는 마스크 또는 윤곽선 집합입니다. 인스턴스 세분화는 이미지에서 객체의 위치뿐만 아니라 정확한 모양을 알아야 할 때 유용합니다.



Watch: Python 에서 사전 학습된 Ultralytics YOLO 모델을 사용하여 세분화를 실행합니다.

YOLO11 세그먼트 모델은 -seg 접미사, 즉 yolo11n-seg.pt 에 대해 사전 교육을 받았으며 COCO.

모델

YOLO11 사전 학습된 세그먼트 모델이 여기에 나와 있습니다. 감지, 세그먼트 및 포즈 모델은 COCO 데이터 세트에서 사전 학습된 모델이며, 분류 모델은 ImageNet 데이터 세트에서 사전 학습된 모델입니다.

모델은 처음 사용할 때 최신 Ultralytics 릴리스에서 자동으로 다운로드됩니다.

모델 크기
(픽셀)
mAPbox
50-95
mAPmask
50-95
속도
CPU ONNX
(ms)
속도
T4TensorRT10
(ms)
매개변수
(M)
FLOPs
(B)
YOLO11n-seg 640 38.9 32.0 65.9 ± 1.1 1.8 ± 0.0 2.9 10.4
YOLO11s-seg 640 46.6 37.8 117.6 ± 4.9 2.9 ± 0.0 10.1 35.5
YOLO11m-seg 640 51.5 41.5 281.6 ± 1.2 6.3 ± 0.1 22.4 123.3
YOLO11l-seg 640 53.4 42.9 344.2 ± 3.2 7.8 ± 0.2 27.6 142.2
YOLO11x-seg 640 54.7 43.8 664.5 ± 3.2 15.8 ± 0.7 62.1 319.0
  • mAPval 값은 단일 모델 단일 스케일에 대한 것입니다. COCO val2017 데이터 세트.
    복제 대상 yolo val segment data=coco.yaml device=0
  • 속도 를 사용하여 COCO 값 이미지에 대한 평균을 구합니다. Amazon EC2 P4d 인스턴스입니다.
    복제 대상 yolo val segment data=coco.yaml batch=1 device=0|cpu

기차

이미지 크기 640에서 100개의 에포크에 대해 COCO8-seg 데이터 세트에서 YOLO11n-seg를 훈련합니다. 사용 가능한 인수의 전체 목록은 구성 페이지를 참조하세요.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-seg.yaml")  # build a new model from YAML
model = YOLO("yolo11n-seg.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n-seg.yaml").load("yolo11n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.yaml pretrained=yolo11n-seg.pt epochs=100 imgsz=640

데이터 집합 형식

YOLO 세분화 데이터 세트 형식은 데이터 세트 가이드에서 자세히 확인할 수 있습니다. 기존 데이터셋을 다른 형식(예: COCO 등)에서 YOLO 형식으로 변환하려면 JSON2YOLO 도구( Ultralytics)를 사용하세요.

Val

학습된 YOLO11n-seg 모델 검증하기 정확성 를 입력합니다. 인수가 필요하지 않으므로 model 교육 유지 data 및 인수를 모델 속성으로 사용합니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 contains map50-95(B) of each category
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # a list contains map50-95(M) of each category
yolo segment val model=yolo11n-seg.pt  # val official model
yolo segment val model=path/to/best.pt # val custom model

예측

학습된 YOLO11n-seg 모델을 사용하여 이미지에 대한 예측을 실행합니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 in polygon format
    xyn = result.masks.xyn  # normalized
    masks = result.masks.data  # mask in matrix format (num_objects x H x W)
yolo segment predict model=yolo11n-seg.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo segment predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model

전체 보기 predict 모드 세부 정보에서 예측 페이지로 이동합니다.

내보내기

ONNX, CoreML 등과 같은 다른 형식으로 YOLO11n-seg 모델을 내보냅니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-seg.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n-seg.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

사용 가능한 YOLO11-seg 내보내기 형식은 아래 표에 나와 있습니다. 내보내기 형식은 format 인수, 즉 format='onnx' 또는 format='engine'. 내보낸 모델에서 직접 예측하거나 검증할 수 있습니다. yolo predict model=yolo11n-seg.onnx. 내보내기가 완료된 후 모델에 대한 사용 예가 표시됩니다.

형식 format 인수 모델 메타데이터 인수
PyTorch - yolo11n-seg.pt -
TorchScript torchscript yolo11n-seg.torchscript imgsz, optimize, nms, batch
ONNX onnx yolo11n-seg.onnx imgsz, half, dynamic, simplify, opset, nms, batch
OpenVINO openvino yolo11n-seg_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data
TensorRT engine yolo11n-seg.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data
CoreML coreml yolo11n-seg.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n-seg_saved_model/ imgsz, keras, int8, nms, batch
TF GraphDef pb yolo11n-seg.pb imgsz, batch
TF Lite tflite yolo11n-seg.tflite imgsz, half, int8, nms, batch, data
TF Edge TPU edgetpu yolo11n-seg_edgetpu.tflite imgsz
TF.js tfjs yolo11n-seg_web_model/ imgsz, half, int8, nms, batch
PaddlePaddle paddle yolo11n-seg_paddle_model/ imgsz, batch
MNN mnn yolo11n-seg.mnn imgsz, batch, int8, half
NCNN ncnn yolo11n-seg_ncnn_model/ imgsz, half, batch
IMX500 imx yolo11n-seg_imx_model/ imgsz, int8, data
RKNN rknn yolo11n-seg_rknn_model/ imgsz, batch, name

전체 보기 export 세부 정보에서 내보내기 페이지로 이동합니다.

자주 묻는 질문

사용자 지정 데이터 집합에서 YOLO11 세분화 모델을 훈련하려면 어떻게 하나요?

사용자 지정 데이터 세트에서 YOLO11 세분화 모델을 훈련하려면 먼저 데이터 세트를 YOLO 세분화 형식으로 준비해야 합니다. JSON2YOLO와 같은 도구를 사용하여 다른 형식의 데이터 세트를 변환할 수 있습니다. 데이터 세트가 준비되면 Python 또는 CLI 명령을 사용하여 모델을 학습시킬 수 있습니다:

from ultralytics import YOLO

# Load a pretrained YOLO11 segment model
model = YOLO("yolo11n-seg.pt")

# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo segment train data=path/to/your_dataset.yaml model=yolo11n-seg.pt epochs=100 imgsz=640

사용 가능한 인수는 구성 페이지에서 확인하세요.

YOLO11 에서 객체 감지와 인스턴스 세분화의 차이점은 무엇인가요?

객체 감지는 객체 주변에 경계 상자를 그려 이미지 내에서 객체를 식별하고 위치를 파악하는 반면, 인스턴스 분할은 경계 상자를 식별할 뿐만 아니라 각 객체의 정확한 모양을 묘사합니다. YOLO11 인스턴스 분할 모델은 감지된 각 객체의 윤곽을 나타내는 마스크 또는 윤곽을 제공하므로 의료 영상이나 자율 주행처럼 정확한 모양 파악이 중요한 작업에서 특히 유용합니다.

인스턴스 세분화에 YOLO11 을 사용하는 이유는 무엇인가요?

Ultralytics YOLO11 는 높은 정확도와 실시간 성능으로 인정받은 최첨단 모델로, 인스턴스 세분화 작업에 이상적입니다. YOLO11 세그먼트 모델은 COCO 데이터 세트에 대해 사전 학습된 상태로 제공되므로 다양한 오브젝트에서 강력한 성능을 보장합니다. 또한 YOLO 은 원활한 통합을 통해 훈련, 검증, 예측 및 내보내기 기능을 지원하므로 연구 및 산업 애플리케이션 모두에 매우 유용하게 사용할 수 있습니다.

사전 학습된 YOLO 세분화 모델을 로드하고 유효성을 검사하려면 어떻게 해야 하나요?

사전 학습된 YOLO 세분화 모델을 로드하고 유효성을 검사하는 것은 간단합니다. Python 과 CLI 을 사용하여 수행하는 방법은 다음과 같습니다:

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n-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)
yolo segment val model=yolo11n-seg.pt

이러한 단계를 통해 모델 성능을 평가하는 데 중요한 평균 정밀도 (mAP)와 같은 검증 지표를 얻을 수 있습니다.

YOLO 세분화 모델을 ONNX 형식으로 내보내려면 어떻게 해야 하나요?

YOLO 세분화 모델을 ONNX 형식으로 내보내는 방법은 간단하며 Python 또는 CLI 명령을 사용하여 수행할 수 있습니다:

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n-seg.pt")

# Export the model to ONNX format
model.export(format="onnx")
yolo export model=yolo11n-seg.pt format=onnx

다양한 형식으로 내보내는 방법에 대한 자세한 내용은 내보내기 페이지를 참조하세요.

📅1 년 전 생성됨 ✏️ 업데이트 4 일 전

댓글