YOLO-NAS
Cập nhật quan trọng
Xin lưu ý rằng Deci, những người tạo ra YOLO-NAS ban đầu, đã được NVIDIA mua lại. Do đó, các mô hình này không còn được Deci duy trì tích cực nữa. Ultralytics tiếp tục hỗ trợ việc sử dụng các mô hình này, nhưng không có thêm bản cập nhật nào từ nhóm 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ệ Tìm kiếm Kiến trúc Mạng nơ-ron tiên tiến, được thiết kế tỉ mỉ để khắc phục những hạn chế của các mô hình YOLO trước đây. Với những cải tiến đáng kể trong hỗ trợ lượng tử hóa và đánh đổi giữa độ chính xác-độ 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 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 mô hình được chuyển đổi sang phiên bản lượng tử hóa INT8, nó chỉ trải qua sự 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 đạt đến đỉnh cao trong 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.
Các 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 mô hình YOLO trước đây.
- Huấn luyện và Lượng tử hóa tinh vi: YOLO-NAS tận dụng các lược đồ 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 AutoNAC và Huấn luyện trước: YOLO-NAS sử dụng tối ưu hóa AutoNAC và được huấn luyện trước trên các tập dữ liệu nổi bật như COCO, Objects365 và Roboflow 100. Việc huấn luyện trước này làm cho nó cực kỳ phù hợp cho các tác vụ detect đối tượng tiếp theo trong môi trường sản xuất.
Các mô hình được huấn luyện trước
Trải nghiệm sức mạnh của detect đối tượng thế hệ tiếp theo với các mô hình YOLO-NAS đã được huấn luyện trước do Ultralytics cung cấp. Các mô hình này được thiết kế để mang lại hiệu suất hàng đầu về cả tốc độ và độ chính xác. Chọn từ nhiều tùy chọn được điều chỉnh theo nhu cầu cụ thể của bạn:
Hiệu suất
| 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ế để 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 và tốc độ.
Ví dụ sử dụng
Ultralytics đã giúp các mô hình YOLO-NAS dễ dàng tích hợp vào các ứng dụng Python của bạn thông qua ultralytics gói python. Gói này cung cấp Python API thân thiện với người dùng để hợp lý hóa quy trình.
Các ví dụ sau đây chỉ ra cách sử dụng các mô hình YOLO-NAS với ultralytics gói để suy luận và xác thực:
Ví dụ về Suy luận và Xác thực
Trong ví dụ này, chúng tôi xác thực YOLO-NAS-s trên tập dữ liệu COCO8.
Ví dụ
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 Dự đoán chế độ. Để sử dụng YOLO-NAS với các chế độ bổ sung, hãy xem Val và Xuất. YOLO-NAS trên ultralytics gói không hỗ trợ huấn luyện.
PyTorch đã được huấn luyện trước *.pt các tệp mô hình có thể được chuyển đến NAS() class để tạo một thể hiện mô hình 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 lệnh CLI có sẵn để chạy trực tiếp các mô hình:
# Load a COCO-pretrained YOLO-NAS-s model and validate it's performance on the COCO8 example dataset
yolo val model=yolo_nas_s.pt data=coco8.yaml
# Load a COCO-pretrained YOLO-NAS-s model and run inference on the 'bus.jpg' image
yolo predict model=yolo_nas_s.pt source=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 mô hình YOLO-NAS: Nhỏ (s), Trung bình (m) và Lớn (l). Mỗi biến thể được thiết kế để đáp ứng các nhu cầu tính toán và hiệu suất khác nhau:
- YOLO-NAS-s: Tối ưu hóa cho các môi trường nơi tài nguyên tính toán bị hạn chế nhưng hiệu quả là yếu tố then chốt.
- YOLO-NAS-m: Cung cấp một cách tiếp cận cân bằng, phù hợp cho phát hiện đối tượng đa năng với độ chính xác cao hơn.
- YOLO-NAS-l: Thiết kế riêng cho các kịch bản đò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 mô hình, bao gồm các liên kết đến trọng số đã được huấn luyện trước của chúng, 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ế độ hoạt động khác nhau.
| Loại mô hình | Trọng số đã huấn luyện trước | Các tác vụ được hỗ trợ | Suy luận | Xác thực | Huấn luyện | Xuất |
|---|---|---|---|---|---|---|
| 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 bạn sử dụng YOLO-NAS trong công việc nghiên cứu hoặ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 đến độ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 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 detect đố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 thiện như thế nào so với các mô hình YOLO trước đây?
YOLO-NAS, được phát triển bởi Deci AI, là một mô hình detect đối tượng tiên tiến tận dụng công nghệ Tìm kiếm Kiến trúc Mạng Nơ-ron (NAS) nâng cao. Nó khắc phục những hạn chế của các mô hình 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à các lược đồ huấn luyện tinh vi. Điều này mang lại những cải tiến đáng kể về hiệu suất, đặc biệt 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 của nó cho các môi trường sản xuất. Để biết thêm chi tiết, hãy xem phần Tổng quan.
Làm cách nào để tôi tích hợp các mô hình 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 ultralytics gói. Dưới đây là một ví dụ đơn giản về cách tải một 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 Các ví dụ về suy luận và xác thực.
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 vượt trội cho các tác vụ detect đố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 độ giảm độ chính xác tối thiểu sau lượng tử hóa.
- Huấn luyện và lượng tử hóa phức tạp: Sử dụng các lược đồ huấn luyện nâng cao và các kỹ thuật lượng tử hóa sau huấn luyện.
- Tối ưu hóa AutoNAC và Huấn luyện trước: Sử dụng tối ưu hóa AutoNAC và được huấn luyện trước 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 đóng góp vào độ chính xác cao, hiệu suất hiệu quả và phù hợp để triển khai trong môi trường sản xuất. Tìm hiểu thêm trong phần Các tính năng chính.
Các tác vụ và chế độ nào được các mô hình YOLO-NAS hỗ trợ?
Các mô hình YOLO-NAS hỗ trợ nhiều tác vụ và chế độ detect đối tượng khác nhau như suy luận (inference), xác thực (validation) và xuất (export). 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 điều chỉnh cho các khả năng 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 Các tác vụ và chế độ được hỗ trợ.
Có các mô hình YOLO-NAS đã được huấn luyện trước không và làm thế nào để 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ách sử dụng các liên kết được cung cấp trong phần Mô hình đã huấn luyện trước. Dưới đây là một số ví dụ: