Link to this sectionĐánh giá hiệu năng mô hình với Ultralytics YOLO#
Link to this sectionTrực quan hóa kết quả Benchmark#
Bạn có thể cần phải tải lại trang để xem biểu đồ chính xác do các vấn đề tiềm ẩn về cookie.
Link to this sectionGiới thiệu#
Sau khi mô hình của bạn đã được huấn luyện và xác thực, bước hợp lý tiếp theo là đánh giá hiệu năng của nó trong các kịch bản thực tế. Chế độ Benchmark trong Ultralytics YOLO26 phục vụ mục đích này bằng cách cung cấp một framework mạnh mẽ để đánh giá tốc độ và độ chính xác của mô hình trên nhiều định dạng xuất khác nhau.
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
Link to this sectionTại sao việc Benchmark lại quan trọng?#
- Quyết định sáng suốt: Có được thông tin chi tiết về sự đánh đổi giữa tốc độ và độ chính xác.
- Phân bổ tài nguyên: Hiểu cách các định dạng xuất khác nhau hoạt động trên các phần cứng khác nhau.
- Tối ưu hóa: Tìm hiểu định dạng xuất nào mang lại hiệu năng tốt nhất cho trường hợp sử dụng cụ thể của bạn.
- Hiệu quả chi phí: Sử dụng tài nguyên phần cứng hiệu quả hơn dựa trên kết quả benchmark.
Link to this sectionCác chỉ số chính trong chế độ Benchmark#
- mAP50-95: Dành cho phát hiện đối tượng, phân đoạn và ước tính tư thế.
- accuracy_top1: Dành cho image classification.
- Thời gian suy luận (Inference Time): Thời gian tính cho mỗi ảnh tính bằng mili giây.
Link to this sectionCác định dạng xuất được hỗ trợ#
- ONNX: Để đạt hiệu năng CPU tối ưu
- TensorRT: Để đạt hiệu quả GPU tối đa
- OpenVINO: Để tối ưu hóa phần cứng Intel
- CoreML, TensorFlow SavedModel và nhiều hơn nữa: Cho các nhu cầu triển khai đa dạng.
- Xuất sang ONNX hoặc OpenVINO để tăng tốc độ CPU lên đến 3 lần.
- Xuất sang TensorRT để tăng tốc độ GPU lên đến 5 lần.
Link to this sectionVí dụ Sử dụng#
Cài đặt Ultralytics với các phụ thuộc xuất trước khi benchmark để tránh thiếu các gói thư viện.
pip install ultralytics[export]Chạy benchmark cho YOLO26n trên tất cả các định dạng xuất được hỗ trợ (ONNX, TensorRT, v.v.). Xem phần Tham số bên dưới để biết danh sách đầy đủ các tùy chọn xuất.
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")Link to this sectionTham số#
Các tham số như model, data, imgsz, half, device, verbose và format cung cấp cho người dùng sự linh hoạt để tinh chỉnh benchmark theo nhu cầu cụ thể và dễ dàng so sánh hiệu năng của các định dạng xuất khác nhau.
| Khóa | Giá trị mặc định | Mô tả |
|---|---|---|
model | None | Chỉ định đường dẫn đến tệp mô hình. Chấp nhận cả định dạng .pt và .yaml, ví dụ: "yolo26n.pt" cho các mô hình tiền huấn luyện hoặc các tệp cấu hình. |
data | None | Đường dẫn đến tệp YAML định nghĩa tập dữ liệu cho benchmark, thường bao gồm các đường dẫn và cài đặt cho dữ liệu xác thực. Ví dụ: "coco8.yaml". |
imgsz | 640 | Kích thước ảnh đầu vào cho mô hình. Phải là một số nguyên duy nhất cho ảnh vuông (ví dụ: 640); benchmark() chỉ hỗ trợ các kích thước ảnh vuông. |
half | False | Kích hoạt suy luận FP16 (độ chính xác một nửa), giúp giảm mức sử dụng bộ nhớ và có thể tăng tốc độ trên phần cứng tương thích. Sử dụng half=True để bật. |
int8 | False | Kích hoạt lượng tử hóa INT8 để đạt hiệu năng tối ưu hơn trên các thiết bị được hỗ trợ, đặc biệt hữu ích cho các thiết bị biên (edge devices). Thiết lập int8=True để sử dụng. |
device | 'cpu' | Xác định (các) thiết bị tính toán để benchmark, ví dụ như "cpu" hoặc "cuda:0". |
verbose | False | Kiểm soát mức độ chi tiết trong đầu ra nhật ký (log). Thiết lập verbose=True để có nhật ký chi tiết. |
format | '' | Chỉ benchmark định dạng xuất được chỉ định (ví dụ: format=onnx). Để trống để tự động kiểm tra mọi định dạng được hỗ trợ. |
Link to this sectionCác định dạng xuất#
Các benchmark sẽ cố gắng tự động chạy trên tất cả các định dạng xuất khả thi được liệt kê dưới đây. Ngoài ra, bạn có thể chạy benchmark cho một định dạng cụ thể bằng cách sử dụng tham số format, chấp nhận bất kỳ định dạng nào được đề cập bên dưới.
| Định dạng | Tham số format | Mô hình | Metadata | Tham số |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
Xem chi tiết export đầy đủ trong trang Export.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionLàm thế nào để đo lường hiệu năng model YOLO26 của tôi bằng Ultralytics?#
Ultralytics YOLO26 cung cấp chế độ Benchmark để đánh giá hiệu năng model của bạn trên các định dạng xuất khác nhau. Chế độ này cung cấp thông tin chi tiết về các chỉ số chính như mean Average Precision (mAP50-95), độ chính xác và thời gian suy luận tính bằng mili giây. Để chạy các benchmark, bạn có thể sử dụng Python hoặc các lệnh CLI. Ví dụ, để chạy benchmark trên GPU:
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)Để biết thêm chi tiết về các đối số benchmark, hãy truy cập phần Arguments.
Link to this sectionLợi ích của việc xuất model YOLO26 sang các định dạng khác nhau là gì?#
Việc xuất model YOLO26 sang các định dạng khác nhau như ONNX, TensorRT và OpenVINO cho phép bạn tối ưu hóa hiệu năng dựa trên môi trường triển khai của mình. Ví dụ:
- ONNX: Cung cấp tốc độ CPU nhanh gấp 3 lần.
- TensorRT: Cung cấp tốc độ GPU nhanh gấp 5 lần.
- OpenVINO: Được tối ưu hóa đặc biệt cho phần cứng Intel.
Các định dạng này nâng cao cả tốc độ và độ chính xác của model, giúp chúng hiệu quả hơn cho nhiều ứng dụng thực tế khác nhau. Truy cập trang Export để biết chi tiết đầy đủ.
Link to this sectionTại sao việc đo lường hiệu năng (benchmarking) lại quan trọng trong việc đánh giá model YOLO26?#
Việc đo lường hiệu năng các model YOLO26 của bạn là cần thiết vì nhiều lý do:
- Quyết định sáng suốt: Hiểu rõ sự đánh đổi giữa tốc độ và độ chính xác.
- Phân bổ tài nguyên: Đánh giá hiệu năng trên các tùy chọn phần cứng khác nhau.
- Tối ưu hóa: Xác định định dạng xuất nào mang lại hiệu năng tốt nhất cho các trường hợp sử dụng cụ thể.
- Hiệu quả chi phí: Tối ưu hóa việc sử dụng phần cứng dựa trên kết quả benchmark.
Các chỉ số chính như mAP50-95, độ chính xác Top-1 và thời gian suy luận (inference time) hỗ trợ việc thực hiện các đánh giá này. Hãy tham khảo phần Key Metrics để biết thêm thông tin.
Link to this sectionYOLO26 hỗ trợ những định dạng xuất nào và ưu điểm của chúng là gì?#
YOLO26 hỗ trợ nhiều định dạng xuất, mỗi định dạng được thiết kế cho các phần cứng và trường hợp sử dụng cụ thể:
- ONNX: Tốt nhất cho hiệu năng CPU.
- TensorRT: Lý tưởng cho hiệu quả GPU.
- OpenVINO: Được tối ưu hóa cho phần cứng Intel.
- CoreML & TensorFlow: Hữu ích cho iOS và các ứng dụng ML nói chung.
Để có danh sách đầy đủ các định dạng được hỗ trợ và ưu điểm tương ứng của chúng, hãy kiểm tra phần Supported Export Formats.
Link to this sectionTôi có thể sử dụng những đối số nào để tinh chỉnh các benchmark YOLO26 của mình?#
Khi chạy benchmark, một số đối số có thể được tùy chỉnh để phù hợp với các nhu cầu cụ thể:
- model: Đường dẫn đến tệp model (ví dụ: "yolo26n.pt").
- data: Đường dẫn đến tệp YAML định nghĩa tập dữ liệu (ví dụ: "coco8.yaml").
- imgsz: Kích thước hình ảnh đầu vào, dưới dạng số nguyên đơn hoặc tuple.
- half: Kích hoạt suy luận FP16 để có hiệu năng tốt hơn.
- int8: Kích hoạt lượng tử hóa INT8 cho các thiết bị biên.
- device: Chỉ định thiết bị tính toán (ví dụ: "cpu", "cuda:0").
- verbose: Kiểm soát mức độ chi tiết của nhật ký.
Để biết danh sách đầy đủ các đối số, hãy tham khảo phần Arguments.