Phân đoạn thực thể
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
Các mô hình Phân đoạn YOLO11 được huấn luyện trước được hiển thị ở đây. Các mô hình Phát hiện, Phân đoạn và Tư thế được huấn luyện trước trên bộ dữ liệu COCO, trong khi các mô hình Phân loại được huấn luyện trước trên bộ 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ình | Kích thước (pixels) |
mAPbox 50-95 |
mAPmask 50-95 |
Tốc độ CPU ONNX (ms) |
Tốc độ T4 TensorRT10 (ms) |
Tham số (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 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áchyolo 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 Amazon EC2 P4d instance.
Tái tạo bằng cáchyolo val segment data=coco.yaml batch=1 device=0|cpu
Huấn luyện
Huấn luyện YOLO11n-seg trên bộ dữ liệu COCO8-seg trong 100 epochs ở kích thước ảnh 640. Để xem 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
Định dạng bộ dữ liệu phân đoạn YOLO có thể được tìm thấy chi tiết trong Hướng dẫn về 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 YOLO11n-seg đã huấn luyện độ chính xác trên bộ 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("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
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ạng | format Đối số |
Mô hình | Metadata (Siêu dữ liệu) | Các đối số |
---|---|---|---|---|
PyTorch | - | yolo11n-seg.pt |
✅ | - |
TorchScript | torchscript |
yolo11n-seg.torchscript |
✅ | imgsz , half , dynamic , optimize , nms , batch , device |
ONNX | onnx |
yolo11n-seg.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino |
yolo11n-seg_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine |
yolo11n-seg.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml |
yolo11n-seg.mlpackage |
✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model |
yolo11n-seg_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb |
yolo11n-seg.pb |
❌ | imgsz , batch , device |
TF Lite | tflite |
yolo11n-seg.tflite |
✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu |
yolo11n-seg_edgetpu.tflite |
✅ | imgsz , device |
TF.js | tfjs |
yolo11n-seg_web_model/ |
✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle |
yolo11n-seg_paddle_model/ |
✅ | imgsz , batch , device |
MNN | mnn |
yolo11n-seg.mnn |
✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn |
yolo11n-seg_ncnn_model/ |
✅ | imgsz , half , batch , device |
IMX500 | imx |
yolo11n-seg_imx_model/ |
✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn |
yolo11n-seg_rknn_model/ |
✅ | imgsz , batch , name , 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 hiện đại được công nhận nhờ độ 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 thể hiện. Các mô hình YOLO11 Segment đi kèm với bộ dữ liệu COCO dataset được huấn luyện trước, đả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 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, làm cho nó trở nên cực kỳ linh hoạt cho cả nghiên cứu và các ứng dụng 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ư Mean Average Precision (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.