YOLO-NAS#
Xin lưu ý rằng Deci, những người tạo ra ban đầu của YOLO-NAS, đã được NVIDIA mua lại. Do đó, các mô hình này không còn được Deci tích cực duy trì. Ultralytics vẫn tiếp tục hỗ trợ việc sử dụng các mô hình này, nhưng không có bản cập nhật nào khác từ đội ngũ ban đầu được mong đợi.
Tổng quan#
Được phát triển bởi Deci AI, YOLO-NAS là một mô hình nền tảng phát hiện đối tượng đột phá. Đây là sản phẩm của công nghệ Neural Architecture Search tiên tiến, được thiết kế tỉ mỉ để giải quyết các hạn chế của các mô hình YOLO trước đó. Với những cải tiến đáng kể về hỗ trợ lượng tử hóa và đánh đổi giữa accuracy và độ trễ, YOLO-NAS đại diện cho một bước nhảy vọt 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 thức 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, mô hình trải qua mức giảm độ chính xác tối thiểu, một cải tiến đáng kể so với các mô hình khác. Những tiến bộ này hội tụ thành một kiến trúc ưu việt với khả năng phát hiện đối tượng chưa từng có và hiệu suất vượt trội.
Tính năng chính#
- Khối cơ bản hỗ trợ lượng tử hóa (Quantization-Friendly Basic Block): YOLO-NAS giới thiệu một khối cơ bản mới thân thiện với việc lượng tử hóa, giải quyết một trong những hạn chế đáng kể của các model YOLO trước đây.
- Đào tạo và lượng tử hóa tinh vi: YOLO-NAS tận dụng các phương pháp đào tạo nâng cao và lượng tử hóa sau đào tạo để tăng cường hiệu suất.
- Tối ưu hóa AutoNAC và Tiền huấn luyện: YOLO-NAS sử dụng tối ưu hóa AutoNAC và được tiền huấn luyện trên các tập dữ liệu nổi bật như COCO, Objects365 và Roboflow 100. Quá trình tiền huấn luyện này giúp model cực kỳ phù hợp cho các tác vụ phát hiện đối tượng hạ nguồn trong môi trường sản xuất.
Các model đã được tiền huấn luyện#
Trải nghiệm sức mạnh phát hiện đối tượng thế hệ tiếp theo với các model YOLO-NAS đã được tiền huấn luyện do Ultralytics cung cấp. Các model này được thiết kế để mang lại hiệu suất đỉnh cao về cả tốc độ và độ chính xác. Chọn từ nhiều tùy chọn phù hợp với nhu cầu cụ thể của bạn:
| Mô hình | 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ể mô hình được thiết kế để mang lại sự cân bằng giữa Mean Average Precision (mAP) và độ trễ, giúp bạn tối ưu hóa các tác vụ phát hiện đối tượng của mình cho cả hiệu suất và tốc độ.
Ví dụ Sử dụng#
Ultralytics đã giúp việc tích hợp các mô hình YOLO-NAS vào các ứng dụng Python của bạn trở nên dễ dàng thông qua gói python ultralytics của chúng tôi. Gói này cung cấp một API Python thân thiện với người dùng để hợp lý hóa quy trình.
Các ví dụ sau đây cho thấy cách sử dụng các mô hình YOLO-NAS với gói ultralytics để suy luận và xác thực:
Ví dụ về Inference và Validation#
Trong ví dụ này, chúng tôi thực hiện validation trên YOLO-NAS-s với tập dữ liệu COCO8.
Ví dụ này cung cấp mã suy luận và xác thực đơn giản cho 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ế độ bổ sung, hãy xem Val và Export. YOLO-NAS trên gói ultralytics không hỗ trợ huấn luyện.
Các tệp model *.pt được huấn luyện trước bằng PyTorch có thể được truyền vào lớp NAS() để tạo một thể hiện model trong Python:
from ultralytics import NAS
# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")
# Display model information (optional)
model.info()
# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")
# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
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ể của các 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 về tính toán và hiệu suất khác nhau:
- YOLO-NAS-s: Được tối ưu hóa cho các môi trường có tài nguyên tính toán hạn chế nhưng hiệu quả là yếu tố then chốt.
- YOLO-NAS-m: Mang lại cách tiếp cận cân bằng, phù hợp cho việc object detection đa năng với độ chính xác cao hơn.
- YOLO-NAS-l: Được thiết kế riêng cho các tình huống đòi hỏi độ chính xác cao nhất, nơi tài nguyên tính toán ít bị hạn chế hơn.
Dưới đây là tổng quan chi tiết về từng model, bao gồm các liên kết đến trọng số đã tiền huấn luyện, các tác vụ mà chúng hỗ trợ và khả năng tương thích của chúng với các chế độ vận hành khác nhau.
| Loại model | Trọng số Pretrained | Các tác vụ được hỗ trợ | Huấn luyện | Validation | Suy luận | Xuất (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à Ghi nhận#
Nếu bạn sử dụng YOLO-NAS trong nghiên cứu hoặc công việc phát triển của mình, 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 bày tỏ lòng biết ơn tới đội ngũ SuperGradients của Deci AI vì những nỗ lực của họ trong việc tạo ra và duy trì tài nguyên quý giá này cho cộng đồng computer vision. 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 một công cụ quan trọng cho cả các nhà phát triển và nhà nghiên cứu.
Câu hỏi thường gặp#
YOLO-NAS là gì và nó cải tiến như thế nào so với các model YOLO trước đây?#
YOLO-NAS, được phát triển bởi Deci AI, là một mô hình phát hiện đối tượng tiên tiến tận dụng công nghệ Neural Architecture Search (NAS) tiên tiến. Mô hình này giải quyết những hạn chế của các mô hình YOLO trước đó bằng cách giới thiệu các tính năng như các khối cơ bản thân thiện với lượng tử hóa và các sơ đồ huấn luyện phức tạp. Điều này mang lại những cải tiến đáng kể về hiệu suất, đặc biệt là trong các 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, duy trì độ chính xác cao ngay cả khi được chuyển đổi sang phiên bản INT8, nâng cao tính phù hợp cho môi trường sản xuất. Để biết thêm chi tiết, hãy xem phần Overview.
Làm thế nào để tôi tích hợp các model YOLO-NAS vào ứng dụng Python của mình?#
Bạn có thể dễ dàng tích hợp các mô hình YOLO-NAS vào ứng dụng Python của mình bằng cách sử dụng gói ultralytics. Dưới đây là một ví dụ đơn giản về cách tải mô hình YOLO-NAS đã được huấn luyện trước và thực hiện suy luận:
from ultralytics import NAS
# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")
# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")
# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Để biết thêm thông tin, hãy tham khảo Inference and Validation Examples.
Các tính năng chính của YOLO-NAS là gì và tại sao tôi nên cân nhắc sử dụng nó?#
YOLO-NAS giới thiệu một số tính năng chính khiến nó trở thành lựa chọn ưu việt 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 nâng cao giúp cải thiện hiệu suất mô hình với mức giảm precision tối thiểu sau khi lượng tử hóa.
- Đào tạo và lượng tử hóa tinh vi: Sử dụng các phương pháp đào tạo nâng cao và các kỹ thuật lượng tử hóa sau đào tạo.
- Tối ưu hóa AutoNAC và Tiền huấn luyện: Sử dụng tối ưu hóa AutoNAC và được tiền huấn luyện trên các tập dữ liệu nổi bật như COCO, Objects365 và Roboflow 100.
Các 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à tính phù hợp để triển khai trong môi trường sản xuất. Tìm hiểu thêm trong phần Key Features.
Những tác vụ và chế độ nào được hỗ trợ bởi các model YOLO-NAS?#
Các mô hình YOLO-NAS hỗ trợ nhiều tác vụ và chế độ phát hiện đối tượng khác nhau như suy luận, xác thực và xuất. Chúng không hỗ trợ huấn luyện. Các mô hình được hỗ trợ bao gồm YOLO-NAS-s, YOLO-NAS-m và YOLO-NAS-l, mỗi mô hình được thiết kế riêng cho các năng lực tính toán và nhu cầu hiệu suất khác nhau. Để có cái nhìn tổng quan chi tiết, hãy tham khảo phần Supported Tasks and Modes.
Có sẵn các model YOLO-NAS đã được tiền huấn luyện không và làm cách nào để tôi truy cập chúng?#
Có, Ultralytics cung cấp các mô hình YOLO-NAS đã được huấn luyện trước mà bạn có thể truy cập trực tiếp. Các mô hình này được huấn luyện trước trên các tập dữ liệu như COCO, đảm bảo hiệu suất cao về cả tốc độ và độ chính xác. Bạn có thể tải xuống các mô hình này bằng các liên kết được cung cấp trong phần Pretrained Models. Dưới đây là một số ví dụ: