YOLO-NAS#
Xin lưu ý rằng Deci, những người tạo ra YOLO-NAS ban đầu, đã được NVIDIA mua lại. Do đó, Deci không còn chủ động bảo trì các model này. Ultralytics tiếp tục hỗ trợ sử dụng các model này, nhưng dự kiến nhóm phát triển ban đầu sẽ không có thêm bản cập nhật.
Tổng quan#
Được phát triển bởi Deci AI, YOLO-NAS là một model nền tảng đột phá cho tác vụ phát hiện đối tượng. Đây là sản phẩm của công nghệ Tìm kiếm kiến trúc mạng tiên tiến, được thiết kế tỉ mỉ để khắc phục các hạn chế của những model YOLO trước đây. Với những cải tiến đáng kể về hỗ trợ lượng tử hóa và sự cân bằng giữa độ chính xác với độ trễ, YOLO-NAS đánh dấu bước tiến lớn trong lĩnh vực phát hiện đối tượng.
Tổng quan về YOLO-NAS. YOLO-NAS sử dụng các khối nhận biết lượng tử hóa và lượng tử hóa chọn lọc để đạt hiệu suất tối ưu. Khi được chuyển đổi sang phiên bản lượng tử hóa INT8, model chỉ giảm độ chính xác rất ít, một cải tiến đáng kể so với các model khác. Những cải tiến này tạo nên một kiến trúc vượt trội với khả năng phát hiện đối tượng chưa từng có và hiệu suất nổi bật.
Tính năng chính#
- Khối cơ bản thân thiện với lượng tử hóa: YOLO-NAS giới thiệu một khối cơ bản mới thân thiện với lượng tử hóa, khắc phục một trong những hạn chế đáng kể của các model YOLO trước đây.
- Huấn luyện và lượng tử hóa nâng cao: YOLO-NAS tận dụng các phương pháp huấn luyện tiên tiến và lượng tử hóa sau huấn luyện để nâng cao hiệu suất.
- Tối ưu hóa và tiền huấn luyện AutoNAC: YOLO-NAS sử dụng tối ưu hóa AutoNAC và được tiền huấn luyện trên các dataset nổi bật như COCO, Objects365 và Roboflow 100. Việc tiền huấn luyện này giúp model đặc biệt phù hợp với các tác vụ phát hiện đối tượng downstream trong môi trường production.
Model được tiền huấn luyện#
Trải nghiệm sức mạnh của khả năng phát hiện đối tượng thế hệ mới với các model YOLO-NAS được Ultralytics cung cấp và tiền huấn luyện sẵn. Các model này được thiết kế để mang lại hiệu suất hàng đầu về cả tốc độ lẫn độ chính xác. Hãy chọn trong nhiều tùy chọn phù hợp với nhu cầu cụ thể của bạn:
| Model | mAP | Độ trễ (ms) |
|---|---|---|
| YOLO-NAS S | 47.5 | 3.21 |
| YOLO-NAS M | 51.55 | 5.85 |
| YOLO-NAS L | 52.22 | 7.87 |
| YOLO-NAS S INT-8 | 47.03 | 2.36 |
| YOLO-NAS M INT-8 | 51.0 | 3.78 |
| YOLO-NAS L INT-8 | 52.1 | 4.78 |
Mỗi biến thể model được thiết kế để cân bằng giữa độ chính xác trung bình (mAP) và độ trễ, giúp bạn tối ưu hóa các tác vụ phát hiện đối tượng về cả hiệu suất lẫn tốc độ.
Ví dụ sử dụng#
Ultralytics giúp dễ dàng tích hợp các model YOLO-NAS vào ứng dụng Python thông qua package Python ultralytics của chúng tôi. Package này cung cấp API Python thân thiện với người dùng để đơn giản hóa quy trình.
Các ví dụ sau minh họa cách sử dụng model YOLO-NAS với package ultralytics để suy luận và xác thực:
Ví dụ suy luận và xác thực#
Trong ví dụ này, chúng ta xác thực YOLO-NAS-s trên dataset COCO8.
Ví dụ này cung cấp code đơn giản để suy luận và xác thực YOLO-NAS. Để xử lý kết quả suy luận, hãy xem chế độ Predict. Để sử dụng YOLO-NAS với các chế độ khác, hãy xem Val và Export. YOLO-NAS trong package ultralytics không hỗ trợ huấn luyện.
Có thể truyền các file model *.pt được tiền huấn luyện bằng PyTorch vào class NAS() để tạo một instance model trong Python:
from ultralytics import NAS
# # Tải model YOLO-NAS-s được tiền huấn luyện trên COCO
model = NAS("yolo_nas_s.pt")
# Hiển thị thông tin model (không bắt buộc)
model.info()
# # Xác thực model trên dataset mẫu COCO8
results = model.val(data="coco8.yaml")
# # Chạy suy luận bằng model YOLO-NAS-s trên hình ảnh 'bus.jpg'
results = model("path/to/bus.jpg")Các tác vụ và chế độ được hỗ trợ#
Chúng tôi cung cấp ba biến thể model YOLO-NAS: Small (s), Medium (m) và Large (l). Mỗi biến thể được thiết kế để đáp ứng các nhu cầu khác nhau về tính toán và hiệu suất:
- YOLO-NAS-s: Được tối ưu hóa cho môi trường có tài nguyên tính toán hạn chế nhưng cần hiệu quả cao.
- YOLO-NAS-m: Mang đến lựa chọn cân bằng, phù hợp cho tác vụ phát hiện đối tượng đa dụng với độ chính xác cao hơn.
- YOLO-NAS-l: Được thiết kế cho các tình huống cần độ chính xác cao nhất, khi tài nguyên tính toán không phải là yếu tố hạn chế.
Dưới đây là tổng quan chi tiết về từng model, bao gồm liên kết đến trọng số được tiền huấn luyện, các tác vụ được hỗ trợ và khả năng tương thích với các chế độ hoạt động khác nhau.
| Loại model | Weights pretrained | Các tác vụ được hỗ trợ | Huấn luyện | Validation | Suy luận | Export |
|---|---|---|---|---|---|---|
| YOLO-NAS-s | yolo_nas_s.pt | Phát hiện đối tượng | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-m | yolo_nas_m.pt | Phát hiện đối tượng | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-l | yolo_nas_l.pt | Phát hiện đối tượng | ❌ | ✅ | ✅ | ✅ |
Trích dẫn và lời cảm ơn#
Nếu sử dụng YOLO-NAS trong công việc nghiên cứu hoặc phát triển, vui lòng trích dẫn SuperGradients:
@misc{supergradients,
doi = {10.5281/ZENODO.7789328},
url = {https://zenodo.org/records/7789328},
author = {Aharon, Shay and {Louis-Dupont} and {Ofri Masad} and Yurkova, Kate and {Lotem Fridman} and {Lkdci} and Khvedchenya, Eugene and Rubin, Ran and Bagrov, Natan and Tymchenko, Borys and Keren, Tomer and Zhilko, Alexander and {Eran-Deci}},
title = {Super-Gradients},
publisher = {GitHub},
journal = {GitHub repository},
year = {2021},
}Chúng tôi xin cảm ơn nhóm SuperGradients của Deci AI vì nỗ lực tạo ra và duy trì tài nguyên quý giá này cho cộng đồng thị giác máy tính. Chúng tôi tin rằng YOLO-NAS, với kiến trúc đổi mới và khả năng phát hiện đối tượng vượt trội, sẽ trở thành công cụ thiết yếu cho cả nhà phát triển lẫn nhà nghiên cứu.
Câu hỏi thường gặp#
YOLO-NAS, được phát triển bởi Deci AI, là model phát hiện đối tượng hiện đại nhất, tận dụng công nghệ Tìm kiếm kiến trúc mạng (NAS) tiên tiến. Model này khắc phục các hạn chế của những model YOLO trước đây bằng cách giới thiệu các tính năng như khối cơ bản thân thiện với lượng tử hóa và phương pháp huấn luyện nâng cao. Nhờ đó, hiệu suất được cải thiện đáng kể, đặc biệt trong môi trường có tài nguyên tính toán hạn chế. YOLO-NAS cũng hỗ trợ lượng tử hóa và duy trì độ chính xác cao ngay cả khi được chuyển đổi sang phiên bản INT8, nhờ vậy phù hợp hơn với môi trường production. Để biết thêm chi tiết, hãy xem mục Tổng quan.
Bạn có thể dễ dàng tích hợp model YOLO-NAS vào ứng dụng Python bằng package
ultralytics. Dưới đây là ví dụ đơn giản về cách tải model YOLO-NAS được tiền huấn luyện và thực hiện suy luận:from ultralytics import NAS # # Tải model YOLO-NAS-s được tiền huấn luyện trên COCO model = NAS("yolo_nas_s.pt") # # Xác thực model trên dataset mẫu COCO8 results = model.val(data="coco8.yaml") # # Chạy suy luận bằng model YOLO-NAS-s trên hình ảnh 'bus.jpg' results = model("path/to/bus.jpg")Để biết thêm thông tin, hãy tham khảo Ví dụ suy luận và xác thực.
YOLO-NAS có một số tính năng chính khiến model trở thành lựa chọn vượt trội cho các tác vụ phát hiện đối tượng:
- Khối cơ bản thân thiện với lượng tử hóa: Kiến trúc được cải tiến giúp nâng cao hiệu suất model với mức giảm độ chính xác tối thiểu sau khi lượng tử hóa.
- Huấn luyện và lượng tử hóa nâng cao: Sử dụng các phương pháp huấn luyện tiên tiến và kỹ thuật lượng tử hóa sau huấn luyện.
- Tối ưu hóa và tiền huấn luyện AutoNAC: Sử dụng tối ưu hóa AutoNAC và được tiền huấn luyện trên các dataset nổi bật như COCO, Objects365 và Roboflow 100.
Những tính năng này góp phần mang lại độ chính xác cao, hiệu suất hiệu quả và khả năng triển khai phù hợp trong môi trường production. Tìm hiểu thêm trong mục Tính năng chính.
Các model YOLO-NAS hỗ trợ nhiều tác vụ và chế độ phát hiện đối tượng như suy luận, validation và export. Các model này không hỗ trợ huấn luyện. Các model được hỗ trợ gồm YOLO-NAS-s, YOLO-NAS-m và YOLO-NAS-l, mỗi model được thiết kế phù hợp với năng lực tính toán và yêu cầu hiệu năng khác nhau. Để xem tổng quan chi tiết, hãy tham khảo mục Các tác vụ và chế độ được hỗ trợ.
Có, Ultralytics cung cấp các model YOLO-NAS được huấn luyện trước mà bạn có thể truy cập trực tiếp. Các model này được huấn luyện trước trên những bộ dữ liệu như COCO, đảm bảo hiệu năng cao cả về tốc độ lẫn độ chính xác. Bạn có thể tải các model này xuống bằng những liên kết trong mục Model được huấn luyện trước. Sau đây là một số ví dụ: