Object Detection với Ultralytics YOLO#
Object detection là một tác vụ liên quan đến việc xác định vị trí và lớp của các đối tượng trong một hình ảnh hoặc luồng video.
Đầu ra của một bộ dò đối tượng là tập hợp các khung bao quanh các đối tượng trong ảnh, cùng với nhãn lớp và điểm tin cậy cho mỗi khung. Object detection là lựa chọn tốt khi bạn cần xác định các đối tượng quan tâm trong một cảnh, nhưng không cần biết chính xác vị trí hoặc hình dạng chính xác của đối tượng đó.
Watch: Object Detection with Pretrained Ultralytics YOLO Model.
Các mô hình YOLO26 Detect là các mô hình YOLO26 mặc định, nghĩa là yolo26n.pt, và được huấn luyện trước trên COCO.
Models#
Các mô hình Detect được huấn luyện trước của YOLO26 đượ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, các mô hình Semantic được huấn luyện trước trên Cityscapes, và các mô hình Classify được huấn luyện trước trên tập dữ liệu ImageNet.
Models được tải xuống tự động từ bản release mới nhất của Ultralytics trong lần sử dụng đầu tiên.
| Mô hình | kích thước (pixel) | mAPval 50-95 | mAPval 50-95(e2e) | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.4 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.7 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.2 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.4 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 193.9 |
- Các giá trị mAPval dành cho mô hình đơn lẻ trên một tỷ lệ duy nhất trên tập dữ liệu COCO val2017.
Tái tạo bằngyolo val detect data=coco.yaml device=0 - Tốc độ được tính trung bình trên các hình ảnh COCO val bằng cách sử dụng một instance Amazon EC2 P4d.
Tái tạo bằngyolo val detect data=coco.yaml batch=1 device=0|cpu - Giá trị Params và FLOPs dành cho model đã hợp nhất sau
model.fuse(), thao tác này gộp các lớp Conv và BatchNorm lại và, đối với các model end2end, loại bỏ phần đầu phát hiện một-sang-nhiều phụ trợ. Các checkpoint đã huấn luyện trước giữ nguyên kiến trúc huấn luyện đầy đủ và có thể hiển thị số lượng cao hơn.
Huấn luyện (Train)#
Huấn luyện YOLO26n trên tập dữ liệu COCO8 trong 100 epochs ở kích thước ảnh 640. Để có danh sách đầy đủ các tham số có sẵn, hãy xem trang Configuration.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.yaml") # build a new model from YAML
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Xem chi tiết đầy đủ về chế độ train trong trang Train. Các mô hình phát hiện cũng có thể được huấn luyện bằng Ultralytics Platform cloud training.
Định dạng tập dữ liệu#
Định dạng tập dữ liệu phát hiện YOLO có thể được tìm thấy chi tiết trong Dataset Guide. Để 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.) sang định dạng YOLO, vui lòng sử dụng công cụ JSON2YOLO của Ultralytics. Bạn cũng có thể chú thích và quản lý các tập dữ liệu phát hiện bằng Ultralytics Platform's AI-assisted annotation tools.
Val#
Xác thực accuracy của mô hình YOLO26n đã được huấn luyện trên tập dữ liệu COCO8. Không cần tham số nào vì model giữ lại data và các tham số huấn luyện của nó dưới dạng các thuộc tính của mô hình.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.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
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list containing mAP50-95 for each category
metrics.box.image_metrics # per-image metrics dictionary with precision, recall, F1, TP, FP, and FNDự đoán (Predict)#
Sử dụng model YOLO26n đã huấn luyện để chạy dự đoán trên các hình ảnh.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.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:
xywh = result.boxes.xywh # center-x, center-y, width, height
xywhn = result.boxes.xywhn # normalized
xyxy = result.boxes.xyxy # top-left-x, top-left-y, bottom-right-x, bottom-right-y
xyxyn = result.boxes.xyxyn # normalized
names = [result.names[cls.item()] for cls in result.boxes.cls.int()] # class name of each box
confs = result.boxes.conf # confidence score of each boxXem chi tiết đầy đủ về chế độ predict tại trang Predict.
Đầu ra kết quả#
Phát hiện đối tượng trả về một đối tượng Results cho mỗi hình ảnh. Trường dự đoán chính là result.boxes, chứa tọa độ hộp, ID lớp và điểm độ tin cậy cho mỗi đối tượng được phát hiện.
| Thuộc tính | Loại | Kích thước | Mô tả |
|---|---|---|---|
result.boxes | Boxes | (N) | Các khung bao phát hiện. |
result.boxes.data | torch.float32 | (N,6/7) | [x1,y1,x2,y2,conf,cls] thô, cộng với ID theo dõi tùy chọn. |
result.boxes.xyxy | torch.float32 | (N,4) | Các hộp pixel xyxy. |
result.boxes.conf | torch.float32 | (N,) | Điểm độ tin cậy. |
result.boxes.cls | torch.float32 | (N,) | ID lớp; ép kiểu sang int để lấy tên. |
Đối với các trường Results dành riêng cho từng tác vụ trên mọi tác vụ, hãy xem phần Predict Results by Task.
Xuất (Export)#
Xuất model YOLO26n sang một định dạng khác như ONNX, CoreML, v.v.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")Các định dạng xuất YOLO26 có sẵn nằm trong bảng bên dưới. Bạn có thể xuất sang bất kỳ định dạng nào bằng cách sử dụng tham số format, nghĩa là 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, nghĩa là yolo predict model=yolo26n.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 | Đối số format | Mô hình | Metadata | Tham số |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, batch, quantize |
Xem chi tiết đầy đủ về export tại trang Export.
Câu hỏi thường gặp#
Có. Ultralytics Platform quickstart bao gồm quy trình làm việc dựa trên trình duyệt để chú thích tập dữ liệu, huấn luyện các mô hình phát hiện trên GPU đám mây và triển khai chúng tới các điểm cuối suy luận.
Việc huấn luyện model YOLO26 trên tập dữ liệu tùy chỉnh bao gồm một vài bước:
- Chuẩn bị Tập dữ liệu: Đảm bảo tập dữ liệu của bạn ở định dạng YOLO. Để được hướng dẫn, hãy tham khảo Dataset Guide của chúng tôi.
- Tải Model: Sử dụng thư viện Ultralytics YOLO để tải một model đã được huấn luyện trước hoặc tạo một model mới từ tệp YAML.
- Huấn luyện Mô hình: Thực thi phương thức
traintrong Python hoặc lệnhyolo detect traintrong CLI.
Ví dụfrom ultralytics import YOLO # Load a pretrained model model = YOLO("yolo26n.pt") # Train the model on your custom dataset model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)Để biết các tùy chọn cấu hình chi tiết, hãy truy cập trang Configuration.
Ultralytics YOLO26 cung cấp nhiều mô hình huấn luyện trước khác nhau cho object detection, instance segmentation, semantic segmentation và pose estimation. Các mô hình này được huấn luyện trước trên tập dữ liệu COCO, Cityscapes cho phân đoạn ngữ nghĩa, hoặc ImageNet cho các tác vụ phân loại. Dưới đây là một số mô hình có sẵn:
Để có danh sách chi tiết và các chỉ số hiệu suất, hãy tham khảo phần Models.
Để xác thực độ chính xác của mô hình YOLO26 đã huấn luyện của bạn, bạn có thể sử dụng phương thức
.val()trong Python hoặc lệnhyolo detect valtrong CLI. Thao tác này sẽ cung cấp các chỉ số như mAP50-95, mAP50 và nhiều hơn nữa.Ví dụfrom ultralytics import YOLO # Load the model model = YOLO("path/to/best.pt") # Validate the model metrics = model.val() print(metrics.box.map) # mAP50-95Để biết thêm chi tiết xác thực, hãy truy cập trang Val.
Ultralytics YOLO26 cho phép xuất các mô hình sang nhiều định dạng khác nhau như ONNX, TensorRT, CoreML và nhiều định dạng khác để đảm bảo tính tương thích trên các nền tảng và thiết bị khác nhau.
Ví dụfrom ultralytics import YOLO # Load the model model = YOLO("yolo26n.pt") # Export the model to ONNX format model.export(format="onnx")Kiểm tra danh sách đầy đủ các định dạng được hỗ trợ và hướng dẫn trên trang Export.
Ultralytics YOLO26 được thiết kế để mang lại hiệu suất tối tân cho object detection, instance segmentation, semantic segmentation và pose estimation. Dưới đây là một số ưu điểm chính:
- Mô hình được huấn luyện trước: Tận dụng các mô hình đã được huấn luyện trước trên các tập dữ liệu phổ biến như COCO và ImageNet để phát triển nhanh hơn.
- Độ chính xác cao: Đạt được điểm mAP ấn tượng, đảm bảo việc phát hiện đối tượng đáng tin cậy.
- Tốc độ: Được tối ưu hóa cho real-time inference, giúp nó trở nên lý tưởng cho các ứng dụng đòi hỏi xử lý nhanh chóng.
- Tính linh hoạt: Xuất các model sang nhiều định dạng khác nhau như ONNX và TensorRT để triển khai trên nhiều nền tảng.
Khám phá Blog của chúng tôi để tìm hiểu các trường hợp sử dụng và câu chuyện thành công giới thiệu YOLO26 đang hoạt động.