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 chế độ khác nhau dành cho các mô hình YOLO. Dù bạn đang huấn luyện các mô hình object detection tùy chỉnh hay làm việc với segmentation, việc hiểu rõ các chế độ này là bước vô cùng quan trọng. Hãy cùng bắt đầu ngay!
Thông qua documentation của Ultralytics, bạn sẽ tìm thấy một số modes có thể sử dụng cho mô hình của mình, cho dù là để train, validate, predict, export, benchmark hay track. Mỗi chế độ đều phục vụ một mục đích riêng và giúp bạn tối ưu hóa hiệu suất cũng như quá trình triển khai mô hình.
Mode Train#
Đầu tiên, hãy cùng xem xét chế độ train. Đây là nơi bạn xây dựng và tinh chỉnh mô hình của mình. Bạn có thể tìm thấy các hướng dẫn chi tiết và video guides trong tài liệu, giúp việc bắt đầu huấn luyện các mô hình tùy chỉnh 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.
Mode 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.
Tạ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).
Mode 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!
Mode 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.
Mode 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í.
Cá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.
Ví 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 minh họa cách chạy benchmark với các mô hình Ultralytics YOLO.
Tầ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ể.
Kế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 community của chúng tôi, cũng như 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 mô hình hiệu năng cao và đảm bảo chúng chạy hiệu quả trong mọi môi trường.






