Cách huấn luyện, xác thực, dự đoán, xuất & đánh giá với các model Ultralytics YOLO
Tìm hiểu cách huấn luyện, xác thực, dự đoán, xuất và đánh giá với các model Ultralytics YOLO!

Hãy cùng khám phá thế giới của Ultralytics và tìm hiểu các mode khác nhau có sẵn cho các model YOLO. Dù bạn đang huấn luyện các model object detection tùy chỉnh hay đang thực hiện segmentation, việc hiểu rõ các mode này là một bước quan trọng. Hãy cùng bắt đầu ngay!
Thông qua tài liệu của Ultralytics, bạn sẽ tìm thấy một số mode mà bạn có thể sử dụng cho các model của mình, cho dù đó là để train, validate, predict, export, benchmark hoặc track. Mỗi mode này đều phục vụ một mục đích riêng biệt và giúp bạn tối ưu hóa hiệu suất cũng như quá trình triển khai model.
Link to this sectionMode Train#
Đầu tiên, hãy xem qua mode train. Đây là nơi bạn xây dựng và tinh chỉnh model của mình. Bạn có thể tìm thấy hướng dẫn chi tiết và video hướng dẫn trong tài liệu, giúp việc bắt đầu huấn luyện các model tùy chỉnh của bạn trở nên dễ dàng.
Việc huấn luyện model bao gồm việc cung cấp cho model một tập dữ liệu mới, cho phép nó học các mẫu khác nhau. Sau khi được huấn luyện, model có thể được sử dụng theo thời gian thực để phát hiện các đối tượng mới mà nó đã được huấn luyện. Trước khi bắt đầu quá trình huấn luyện, bạn cần chú thích tập dữ liệu của mình theo định dạng YOLO.
Link to this sectionMode Validate#
Tiếp theo, hãy đi sâu vào mode validate. Kiểm chứng (validation) là điều cần thiết để điều chỉnh các siêu tham số (hyperparameters) và đảm bảo model của bạn hoạt động tốt. Ultralytics cung cấp nhiều tùy chọn kiểm chứng, bao gồm các cài đặt tự động, hỗ trợ đa chỉ số và khả năng tương thích với Python API. Bạn thậm chí có thể chạy kiểm chứng trực tiếp thông qua command line interface (CLI) với câu lệnh bên dưới.
Link to this sectionTại sao phải kiểm chứng?#
Kiểm chứng là rất quan trọng để:
- Precision: Đảm bảo model của bạn phát hiện đối tượng một cách chính xác.
- Convenience: Đơn giản hóa quy trình kiểm chứng.
- Flexibility: Cung cấp nhiều phương pháp kiểm chứng.
- Hyperparameter Tuning: Tối ưu hóa model để có hiệu suất tốt hơn.
Ultralytics cũng cung cấp các ví dụ người dùng mà bạn có thể sao chép và dán vào các tập lệnh Python của mình. Các ví dụ này bao gồm các tham số như kích thước ảnh, batch size, thiết bị (CPU hoặc GPU), và intersection over union (IoU).
Link to this sectionMode Predict#
Sau khi model của bạn đã được huấn luyện và kiểm chứng, đã đến lúc đưa ra các dự đoán. Mode Predict cho phép bạn chạy suy luận (inference) trên dữ liệu mới và thấy model của bạn hoạt động thực tế. Mode này hoàn hảo để kiểm tra hiệu suất của model trên dữ liệu thực tế. Với đoạn mã Python dưới đây, bạn sẽ có thể chạy các dự đoán trên ảnh của mình!
Link to this sectionMode Export#
Sau khi kiểm chứng và dự đoán, bạn có thể muốn triển khai model của mình. Mode export cho phép bạn chuyển đổi model sang nhiều định dạng khác nhau, chẳng hạn như ONNX hoặc TensorRT, giúp việc triển khai trên các nền tảng khác nhau trở nên dễ dàng hơn.
Link to this sectionMode Benchmark#
Cuối cùng, chúng ta có mode benchmark. Đánh giá benchmark là điều cần thiết để đánh giá hiệu suất của model trong nhiều tình huống khác nhau. Mode này giúp bạn đưa ra các quyết định sáng suốt về phân bổ tài nguyên, tối ưu hóa và hiệu quả chi phí.
Link to this sectionCách thực hiện benchmark#
Để chạy một benchmark, bạn có thể sử dụng các ví dụ người dùng được cung cấp trong tài liệu. Các ví dụ này bao gồm các chỉ số chính và định dạng xuất, bao gồm ONNX và TensorRT. Bạn cũng có thể chỉ định các tham số như integer quantization (INT8) hoặc floating-point quantization (FP16) để xem các cài đặt khác nhau ảnh hưởng đến hiệu suất như thế nào.
Link to this sectionVí dụ về benchmark thực tế#
Hãy xem xét một ví dụ thực tế về đánh giá benchmark. Khi chúng tôi benchmark model PyTorch, chúng tôi nhận thấy tốc độ suy luận là 68 mili giây trên GPU RTX 3070. Sau khi xuất sang TorchScript, tốc độ suy luận giảm xuống còn 4 mili giây, cho thấy sự cải thiện đáng kể.
Đối với các model ONNX, chúng tôi đạt được tốc độ suy luận là 21 mili giây. Thử nghiệm các model này trên CPU (Intel i9 thế hệ thứ 13), chúng tôi thấy các kết quả khác nhau. TorchScript chạy ở tốc độ 115 mili giây, trong khi ONNX hoạt động tốt hơn ở mức 84 mili giây. Cuối cùng, OpenVINO được tối ưu hóa cho phần cứng Intel đạt tốc độ ấn tượng 23 mili giây.

Hình 1. Nicolai Nielsen trình bày cách chạy benchmark với các Model YOLO của Ultralytics.
Link to this sectionTầm quan trọng của benchmark#
Benchmark cho thấy các phần cứng và định dạng xuất khác nhau có thể ảnh hưởng đến hiệu suất của model như thế nào. Việc đánh giá benchmark cho các model của bạn là rất quan trọng, đặc biệt nếu bạn dự định triển khai chúng trên phần cứng tùy chỉnh hoặc thiết bị edge. Quy trình này đảm bảo model của bạn được tối ưu hóa cho môi trường mục tiêu, cung cấp hiệu suất tốt nhất có thể.
Link to this sectionKết luận#
Tóm lại, các mode trong tài liệu của Ultralytics là những công cụ mạnh mẽ để huấn luyện, kiểm chứng, dự đoán, xuất và đánh giá benchmark các model YOLO của bạn. Mỗi mode đều đóng một vai trò quan trọng trong việc tối ưu hóa model và chuẩn bị cho việc triển khai.
Đừng quên khám phá và tham gia cộng đồng của chúng tôi và thử nghiệm các đoạn mã được cung cấp trong các dự án của bạn. Với những công cụ này, bạn có thể tạo ra các model hiệu năng cao và đảm bảo chúng chạy hiệu quả trong mọi môi trường.






