Chuyển đến nội dung

Phân đoạn thực thể

Ví dụ về phân đoạn thể hiện

Phân đoạn thể hiện tiến thêm một bước so với phát hiện đối tượng và liên quan đến việc xác định các đối tượng riêng lẻ trong một hình ảnh và phân đoạn chúng khỏi phần còn lại của hình ảnh.

Đầu ra của một mô hình phân đoạn thể hiện là một tập hợp các mặt nạ hoặc đường viền phác thảo từng đối tượng trong hình ảnh, cùng với nhãn lớp và điểm tin cậy cho mỗi đối tượng. Phân đoạn thể hiện rất hữu ích khi bạn không chỉ cần biết các đối tượng ở đâu trong một hình ảnh, mà còn cả hình dạng chính xác của chúng là gì.



Xem: Chạy Phân đoạn với Mô hình Ultralytics YOLO Được Huấn Luyện Trước trong Python.

Mẹo

Các mô hình Phân đoạn YOLO11 sử dụng -seg hậu tố, ví dụ: yolo11n-seg.pt và được huấn luyện trước trên COCO.

Mô hình

YOLO11 Các mô hình Phân đoạn đã được đào tạo trước được hiển thị ở đây. Các mô hình Phát hiện, Phân đoạn và Tư thế được đào tạo trước trên tập dữ liệu COCO , trong khi các mô hình Phân loại được đào tạo trước trên tập dữ liệu ImageNet .

Các mô hình sẽ tự động tải xuống từ phiên bản phát hành Ultralytics mới nhất khi sử dụng lần đầu.

Mô hìnhKích thước
(pixels)
mAP hộp
50-95
mAP mặt nạ
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
Tham số
(M)
FLOPs
(B)
YOLO11n-seg64038.932.065.9 ± 1.11.8 ± 0.02.99.7
YOLO11s-seg64046.637.8117.6 ± 4.92.9 ± 0.010.133.0
YOLO11m-seg64051.541.5281.6 ± 1.26.3 ± 0.122.4113.2
YOLO11l-seg64053.442.9344.2 ± 3.27.8 ± 0.227.6132.2
YOLO11x-seg64054.743.8664.5 ± 3.215.8 ± 0.762.1296.4
  • mAP giá trị các giá trị dành cho mô hình đơn lẻ, tỉ lệ đơn lẻ trên COCO val2017 tập dữ liệu.
    Tái tạo bằng cách yolo val segment data=coco.yaml device=0
  • Tốc độ trung bình trên COCO hình ảnh val sử dụng một Amazon EC2 P4d instance.
    Tái tạo bằng cách yolo val segment data=coco.yaml batch=1 device=0|cpu

Huấn luyện

Đào tạo YOLO11n-seg trên COCO8 -seg tập dữ liệu cho 100 kỷ nguyên ở kích thước hình ảnh 640. Để biết danh sách đầy đủ các đối số có sẵn, hãy xem trang Cấu hình .

Ví dụ

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

Định dạng bộ dữ liệu

YOLO Định dạng tập dữ liệu phân đoạn có thể được tìm thấy chi tiết trong Hướng dẫn tập dữ liệu . Để chuyển đổi tập dữ liệu hiện có của bạn từ các định dạng khác (như COCO v.v.) để YOLO định dạng, vui lòng sử dụng công cụ JSON2YOLO bằng Ultralytics .

Val

Xác thực mô hình YOLO11n-seg đã huấn luyện độ chính xác trên COCO8 -seg dataset. Không cần đối số vì model giữ lại quá trình huấn luyện data và các đối số của nó như các thuộc tính của mô hình.

Ví dụ

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 containing mAP50-95(B) for each category
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
yolo segment val model=yolo11n-seg.pt  # val official model
yolo segment val model=path/to/best.pt # val custom model

Dự đoán

Sử dụng mô hình YOLO11n-seg đã huấn luyện để chạy dự đoán trên ảnh.

Ví dụ

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

Xem đầy đủ predict chi tiết chế độ trong Dự đoán trang.

Xuất

Xuất mô hình YOLO11n-seg sang một định dạng khác như ONNX, CoreML, v.v.

Ví dụ

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

Các định dạng xuất YOLO11-seg có sẵn được liệt kê trong bảng dưới đây. Bạn có thể xuất sang bất kỳ định dạng nào bằng format đối số, ví dụ: format='onnx' hoặc format='engine'. Bạn có thể dự đoán hoặc xác thực trực tiếp trên các mô hình đã xuất, ví dụ: yolo predict model=yolo11n-seg.onnx. Các ví dụ sử dụng được hiển thị cho mô hình của bạn sau khi quá trình xuất hoàn tất.

Định dạngformat Đối sốMô hìnhMetadata (Siêu dữ liệu)Các đối số
PyTorch-yolo11n-seg.pt-
TorchScripttorchscriptyolo11n-seg.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo11n-seg.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo11n-seg_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo11n-seg.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo11n-seg.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo11n-seg_saved_model/imgsz, keras, int8, nms, batch, device
TF GraphDefpbyolo11n-seg.pbimgsz, batch, device
TF Litetfliteyolo11n-seg.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo11n-seg_edgetpu.tfliteimgsz, device
TF.jstfjsyolo11n-seg_web_model/imgsz, half, int8, nms, batch, device
PaddlePaddlepaddleyolo11n-seg_paddle_model/imgsz, batch, device
MNNmnnyolo11n-seg.mnnimgsz, batch, int8, half, device
NCNNncnnyolo11n-seg_ncnn_model/imgsz, half, batch, device
IMX500imxyolo11n-seg_imx_model/imgsz, int8, data, fraction, device
RKNNrknnyolo11n-seg_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo11n-seg_executorch_model/imgsz, device
Axeleraaxelerayolo11n-seg_axelera_model/imgsz, int8, data, fraction, device

Xem đầy đủ export chi tiết trong Xuất trang.

Câu hỏi thường gặp

Làm cách nào để huấn luyện mô hình phân đoạn YOLO11 trên một bộ dữ liệu tùy chỉnh?

Để huấn luyện mô hình phân đoạn YOLO11 trên một bộ dữ liệu tùy chỉnh, trước tiên bạn cần chuẩn bị bộ dữ liệu của mình ở định dạng phân đoạn YOLO. Bạn có thể sử dụng các công cụ như JSON2YOLO để chuyển đổi bộ dữ liệu từ các định dạng khác. Khi bộ dữ liệu của bạn đã sẵn sàng, bạn có thể huấn luyện mô hình bằng các lệnh Python hoặc CLI:

Ví dụ

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

Kiểm tra trang Cấu hình để biết thêm các đối số có sẵn.

Sự khác biệt giữa phát hiện đối tượng và phân đoạn thể hiện trong YOLO11 là gì?

Phát hiện đối tượng xác định và định vị các đối tượng trong một ảnh bằng cách vẽ các hộp giới hạn xung quanh chúng, trong khi phân đoạn thể hiện không chỉ xác định các hộp giới hạn mà còn vạch ra hình dạng chính xác của từng đối tượng. Các mô hình phân đoạn thể hiện YOLO11 cung cấp mặt nạ hoặc đường viền phác thảo từng đối tượng được phát hiện, điều này đặc biệt hữu ích cho các tác vụ mà việc biết hình dạng chính xác của các đối tượng là quan trọng, chẳng hạn như hình ảnh y tế hoặc lái xe tự động.

Tại sao nên sử dụng YOLO11 để phân đoạn thể hiện?

Ultralytics YOLO11 là một mô hình tiên tiến được công nhận vì độ chính xác cao và hiệu suất thời gian thực, khiến nó trở nên lý tưởng cho các tác vụ phân đoạn. YOLO11 Các mô hình phân đoạn được đào tạo trước trên tập dữ liệu COCO , đảm bảo hiệu suất mạnh mẽ trên nhiều đối tượng khác nhau. Ngoài ra, YOLO hỗ trợ các chức năng đào tạo, xác thực, dự đoán và xuất khẩu với khả năng tích hợp liền mạch, giúp nó trở nên linh hoạt cho cả ứng dụng nghiên cứu và công nghiệp.

Làm cách nào để tải và xác thực mô hình phân đoạn YOLO được huấn luyện trước?

Việc tải và xác thực mô hình phân đoạn YOLO đã được huấn luyện trước rất đơn giản. Dưới đây là cách bạn có thể thực hiện bằng cả Python và CLI:

Ví dụ

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

Các bước này sẽ cung cấp cho bạn các số liệu xác thực như Độ chính xác trung bình ( mAP ), rất quan trọng để đánh giá hiệu suất của mô hình.

Làm cách nào để xuất mô hình phân đoạn YOLO sang định dạng ONNX?

Xuất mô hình phân đoạn YOLO sang định dạng ONNX rất đơn giản và có thể được thực hiện bằng các lệnh Python hoặc CLI:

Ví dụ

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

Để biết thêm chi tiết về cách xuất sang các định dạng khác nhau, hãy tham khảo trang Xuất.



📅 Đã tạo 2 năm trước ✏️ Cập nhật 25 ngày trước
glenn-jocherBurhan-Qambitious-octopusUltralyticsAssistantY-T-Gjk4eMatthewNoyceRizwanMunawar

Bình luận