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 YOLO26 Segment sử dụng -seg hậu tố, tức là, yolo26n-seg.pt, và được huấn luyện trước trên COCO.

Mô hình

Các mô hình YOLO26 Segment được huấn luyện trước được hiển thị ở đây. Các mô hình Detect, Segment và Pose được huấn luyện trước trên tập dữ liệu COCO, trong khi các mô hình Classify được huấn luyện 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)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
Tham số
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5
  • mAPval 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 độ được tính trung bình trên các ảnh COCO 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

Huấn luyện YOLO26n-seg trên tập dữ liệu COCO8-seg trong 100 epochs với kích thước ả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("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.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=yolo26n-seg.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo26n-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=yolo26n-seg.yaml pretrained=yolo26n-seg.pt epochs=100 imgsz=640

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

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

Val

Xác thực mô hình YOLO26n-seg đã huấn luyện độ chính xác trên tập dữ liệu COCO8-seg. Không cần đối số nào 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("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.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=yolo26n-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 YOLO26n-seg đã huấn luyện để chạy dự đoán trên ảnh.

Ví dụ

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 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=yolo26n-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 YOLO26n-seg sang định dạng khác như ONNX, CoreML, v.v.

Ví dụ

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")
yolo export model=yolo26n-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 YOLO26-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 cách sử dụ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, tức là, yolo predict model=yolo26n-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-yolo26n-seg.pt-
TorchScripttorchscriptyolo26n-seg.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-seg.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n-seg_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-seg.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-seg.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-seg_saved_model/imgsz, keras, int8, nms, batch, device
TF GraphDefpbyolo26n-seg.pbimgsz, batch, device
TF Litetfliteyolo26n-seg.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-seg_edgetpu.tfliteimgsz, device
TF.jstfjsyolo26n-seg_web_model/imgsz, half, int8, nms, batch, device
PaddlePaddlepaddleyolo26n-seg_paddle_model/imgsz, batch, device
MNNmnnyolo26n-seg.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-seg_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-seg_imx_model/imgsz, int8, data, fraction, device
RKNNrknnyolo26n-seg_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n-seg_executorch_model/imgsz, device
Axeleraaxelerayolo26n-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ột mô hình phân đoạn YOLO26 trên tập dữ liệu tùy chỉnh?

Để huấn luyện một mô hình phân đoạn YOLO26 trên tập dữ liệu tùy chỉnh, trước tiên bạn cần chuẩn bị tập dữ liệu của mình theo đị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 tập dữ liệu từ các định dạng khác. Khi tập 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 YOLO26 segment model
model = YOLO("yolo26n-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=yolo26n-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 đối tượng (instance segmentation) trong YOLO26 là gì?

Phát hiện đối tượng (object detection) xác định và định vị các đối tượng trong một hình ảnh bằng cách vẽ các hộp giới hạn xung quanh chúng, trong khi phân đoạn đối tượng (instance segmentation) không chỉ xác định các hộp giới hạn mà còn phân định hình dạng chính xác của từng đối tượng. Các mô hình phân đoạn đối tượng YOLO26 cung cấp các mặt nạ hoặc đường viền phác thảo từng đối tượng được detect, đ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 đối tượng là quan trọng, chẳng hạn như trong hình ảnh y tế hoặc lái xe tự hành.

Tại sao nên sử dụng YOLO26 cho phân đoạn đối tượng?

Ultralytics YOLO26 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ó lý tưởng cho các tác vụ phân đoạn đối tượng. Các mô hình YOLO26 Segment được huấn luyện trước trên tập dữ liệu COCO, đảm bảo hiệu suất mạnh mẽ trên nhiều loại đối tượng. Ngoài ra, YOLO hỗ trợ các chức năng huấn luyện, xác thực, dự đoán và xuất với khả năng tích hợp liền mạch, khiến nó trở nên rất 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("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)
yolo segment val model=yolo26n-seg.pt

Các bước này sẽ cung cấp cho bạn các chỉ số 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("yolo26n-seg.pt")

# Export the model to ONNX format
model.export(format="onnx")
yolo export model=yolo26n-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.



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

Bình luận