Cách train, validate, predict, export & benchmark với các model Ultralytics YOLO
Tìm hiểu cách train, validate, predict, export và benchmark với các model Ultralytics YOLO!

Hãy cùng tìm hiểu về Ultralytics và khám phá các chế độ khác nhau dành cho những model YOLO khác nhau. Dù bạn đang huấn luyện các model phát hiện đối tượng tùy chỉnh hay làm việc với phân đoạn, việc hiểu rõ các chế độ này là một bước quan trọng. Hãy bắt đầu ngay!
Thông qua tài liệu của Ultralytics, bạn sẽ tìm thấy một số chế độ có thể sử dụng cho các model của mình, سواء để huấn luyện, xác thực, dự đoán, xuất, benchmark hoặc tracking. Mỗi chế độ này có một mục đích riêng và giúp bạn tối ưu hiệu năng cũng như khả năng triển khai của model.
Chế độ huấn luyện#
Trước tiên, hãy xem xét chế độ huấn luyện. Đây là nơi bạn xây dựng và tinh chỉnh model. Trong tài liệu có các hướng dẫn chi tiết và video hướng dẫn, giúp bạn dễ dàng bắt đầu huấn luyện các model tùy chỉnh.
Quá trình huấn luyện model bao gồm việc cung cấp cho model một dataset mới để model học các pattern khác nhau. Sau khi được huấn luyện, model có thể được sử dụng trong thời gian thực để phát hiện các đối tượng mới thuộc những lớp mà model đã được huấn luyện. Trước khi bắt đầu quá trình huấn luyện, bạn cần gán nhãn cho dataset theo format YOLO.
Chế độ xác thực#
Tiếp theo, hãy tìm hiểu về chế độ xác thực. Xác thực là bước thiết yếu để tinh chỉnh hyperparameter và đảm bảo model hoạt động tốt. Ultralytics cung cấp nhiều tùy chọn xác thực, bao gồm các thiết lập tự động, hỗ trợ nhiều metric và khả năng tương thích với Python API. Bạn cũng có thể chạy xác thực trực tiếp thông qua giao diện dòng lệnh (CLI) bằng lệnh bên dưới.
Tại sao cần xác thực?#
Xác thực rất quan trọng để:
- Độ chính xác: Đảm bảo model phát hiện đối tượng chính xác.
- Tính tiện lợi: Đơn giản hóa quy trình xác thực.
- Tính linh hoạt: Cung cấp nhiều phương thức xác thực.
- Tinh chỉnh hyperparameter: Tối ưu model để đạt hiệu năng tốt hơn.
Ultralytics cũng cung cấp các ví dụ dành cho người dùng mà bạn có thể sao chép và dán vào các script Python của mình. Những 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à tỷ lệ giao trên hợp (IoU).
Chế độ dự đoán#
Sau khi model được huấn luyện và xác thực, đã đến lúc thực hiện dự đoán. Chế độ Dự đoán cho phép bạn chạy inference trên dữ liệu mới và quan sát model hoạt động. Chế độ này rất phù hợp để kiểm thử hiệu năng của model trên dữ liệu thực tế. Với đoạn code Python bên dưới, bạn có thể chạy dự đoán trên các ảnh của mình!
Chế độ xuất#
Sau khi xác thực và dự đoán, bạn có thể muốn triển khai model. Chế độ xuất cho phép bạn chuyển đổi model sang nhiều format 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.
Chế độ benchmark#
Cuối cùng là chế độ benchmark. Benchmark rất cần thiết để đánh giá hiệu năng của model trong nhiều kịch bản khác nhau. Chế độ này giúp bạn đưa ra quyết định sáng suốt về việc phân bổ tài nguyên, tối ưu hóa và hiệu quả chi phí.
Cách chạy benchmark#
Để chạy benchmark, bạn có thể sử dụng các ví dụ dành cho người dùng được cung cấp trong tài liệu. Những ví dụ này bao quát các metric chính và format xuất, bao gồm ONNX và TensorRT. Bạn cũng có thể chỉ định các tham số như lượng tử hóa số nguyên (INT8) hoặc lượng tử hóa dấu phẩy động (FP16) để xem các thiết lập khác nhau ảnh hưởng đến hiệu năng như thế nào.
Ví dụ benchmark trong thực tế#
Hãy xem một ví dụ benchmark trong thực tế. Khi benchmark model PyTorch, chúng tôi nhận thấy tốc độ inference là 68 mili giây trên GPU RTX 3070. Sau khi xuất sang TorchScript, tốc độ inference giảm xuống còn 4 mili giây, cho thấy mức cải thiện đáng kể.
Đối với các model ONNX, chúng tôi đạt tốc độ inference là 21 mili giây. Khi kiểm thử các model này trên CPU (Intel i9 thế hệ 13), chúng tôi nhận thấy các kết quả khác nhau. TorchScript chạy trong 115 mili giây, trong khi ONNX cho kết quả tốt hơn với 84 mili giây. Cuối cùng, OpenVINO được tối ưu cho phần cứng Intel đạt tốc độ ấn tượng là 23 mili giây.

Hình 1. Nicolai Nielsen trình diễn cách chạy benchmark với các model YOLO của Ultralytics.
Tầm quan trọng của benchmark#
Benchmark cho thấy phần cứng và format xuất khác nhau có thể ảnh hưởng đến hiệu năng của model như thế nào. Việc benchmark các model 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 các thiết bị edge. Quy trình này đảm bảo model được tối ưu cho môi trường đích và mang lại hiệu năng tốt nhất có thể.
Kết luận#
Tóm lại, các chế độ trong tài liệu Ultralytics là những công cụ mạnh mẽ để huấn luyện, xác thực, dự đoán, xuất và benchmark các model YOLO của bạn. Mỗi chế độ đều đóng vai trò quan trọng trong việc tối ưu model và chuẩn bị model cho quá trình triển khai.
Đừng quên khám phá và tham gia cộng đồng của chúng tôi, đồng thời thử các đoạn code được cung cấp trong những dự án của bạn. Với các công cụ này, bạn có thể tạo ra những model có hiệu năng cao và đảm bảo chúng hoạt động hiệu quả trong mọi môi trường.









