YOLO-NAS

Cập nhật quan trọng

Xin lưu ý rằng Deci, đơn vị khởi tạo YOLO-NAS, đã được NVIDIA mua lại. Do đó, các model này không còn được Deci duy trì tích cực. Ultralytics vẫn tiếp tục hỗ trợ việc sử dụng các model này, nhưng sẽ không có thêm bản cập nhật nào từ đội ngũ phát triển gốc.

Tổng quan

Được phát triển bởi Deci AI, YOLO-NAS là một model nền tảng đột phá trong lĩnh vực phát hiện đối tượng. Đây là thành quả từ công nghệ Neural Architecture Search tiên tiến, được thiết kế tỉ mỉ để giải quyết những hạn chế của các model YOLO trước đây. Với những cải tiến đáng kể về hỗ trợ định lượng hóa (quantization) và sự đánh đổi giữa độ chính xác và độ trễ, YOLO-NAS đại diện cho một bước tiến lớn trong lĩnh vực phát hiện đối tượng.

So sánh độ chính xác của model YOLO-NAS trên benchmark COCO Tổng quan về YOLO-NAS. YOLO-NAS sử dụng các khối tích hợp nhận thức định lượng hóa (quantization-aware blocks) và kỹ thuật định lượng hóa có chọn lọc để đạt hiệu năng tối ưu. Khi được chuyển đổi sang phiên bản định lượng hóa INT8, model chỉ chịu mức sụt giảm độ chính xác tối thiểu, một cải tiến đáng kể so với các model khác. Những tiến bộ 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 xuất sắc.

Các tính năng chính

  • Khối cơ bản thân thiện với định lượng 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 quá trình định lượng hóa, giải quyết một trong những hạn chế đáng kể của các model YOLO đời trước.
  • Đào tạo và định lượng hóa tinh vi: YOLO-NAS tận dụng các quy trình đào tạo tiên tiến và kỹ thuật định lượng hóa sau đào tạo (post-training quantization) để nâng cao hiệu năng.
  • Tối ưu hóa AutoNAC và tiền đào tạo: YOLO-NAS sử dụng phương pháp tối ưu hóa AutoNAC và được tiền đào tạo trên các tập dữ liệu nổi bật như COCO, Objects365 và Roboflow 100. Việc tiền đào tạo này giúp model đặc biệt 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 đã tiền đào tạo

Trải nghiệm sức mạnh của thế hệ phát hiện đối tượng tiếp theo với các model YOLO-NAS tiền đào tạo do Ultralytics cung cấp. Các model này được thiết kế để mang lại hiệu suất hàng đầu cả về tốc độ lẫn độ 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:

Hiệu suất
ModelmAPĐộ trễ (ms)
YOLO-NAS S47.53.21
YOLO-NAS M51.555.85
YOLO-NAS L52.227.87
YOLO-NAS S INT-847.032.36
YOLO-NAS M INT-851.03.78
YOLO-NAS L INT-852.14.78

Mỗi biến thể model được thiết kế để 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 cả về hiệu năng và tốc độ.

Ví dụ sử dụng

Ultralytics đã giúp việc tích hợp các model YOLO-NAS vào ứng dụng Python của bạn trở nên dễ dàng thông qua gói ultralytics cho Python. Gói này cung cấp một API Python thân thiện để đơn giản hóa quy trình làm việc.

Các ví dụ dưới đây cho thấy cách sử dụng các model YOLO-NAS với gói ultralytics để suy luận (inference) và xác thực (validation):

Ví dụ về 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 tập dữ liệu COCO8.

Ví dụ

Ví dụ này cung cấp mã nguồn đơn giản để thực hiện suy luận và xác thực 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 ValExport. YOLO-NAS trên gói ultralytics không hỗ trợ huấn luyện.

PyTorch pretrained *.pt models files can be passed to the NAS() class to create a model instance in 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 khác nhau về tính toán và hiệu suất:

  • 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: Cung cấp cách tiếp cận cân bằng, phù hợp cho việc phát hiện đối tượng đa mục đích với độ chính xác cao hơn.
  • YOLO-NAS-l: Được thiết kế riêng cho các kịch bản đòi hỏi độ chính xác cao nhất, nơi mà 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 đào tạo, các tác vụ được 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 ModelWeights Tiền huấn luyệnTác vụ được hỗ trợInferenceValidationTrainingExport
YOLO-NAS-syolo_nas_s.ptPhát hiện đối tượng (Object Detection)
YOLO-NAS-myolo_nas_m.ptPhát hiện đối tượng (Object Detection)
YOLO-NAS-lyolo_nas_l.ptPhát hiện đối tượng (Object Detection)

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, vui lòng trích dẫn SuperGradients:

Trích dẫn
@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 đối vớ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ì nguồn 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 sáng tạo 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 đối với cả nhà phát triển và các nhà nghiên cứu.

Câu hỏi thường gặp (FAQ)

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 model phát hiện đối tượng hiện đại sử dụng công nghệ Neural Architecture Search (NAS) tiên tiến. Nó giải quyết các hạn chế của các model YOLO trước đó 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 định lượng hóa và các quy trình đào tạo tinh vi. Điều này mang lại những cải tiến đáng kể về hiệu năng, đặ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ợ định lượng 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 Tổng quan.

Làm thế nào tôi có thể 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 model 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à ví dụ đơn giản về cách tải một model YOLO-NAS tiền đào tạo 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 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 ư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 định lượng hóa: Kiến trúc nâng cao giúp cải thiện hiệu năng model với mức sụt giảm độ chính xác tối thiểu sau khi định lượng hóa.
  • Đào tạo và định lượng hóa tinh vi: Sử dụng các quy trình đào tạo nâng cao và các kỹ thuật định lượng hóa sau đào tạo.
  • Tối ưu hóa AutoNAC và tiền đào tạo: Sử dụng phương pháp tối ưu hóa AutoNAC và được tiền đào tạo trên các tập dữ liệu nổi bật như COCO, Objects365 và Roboflow 100.

Những tính năng này góp phần vào độ 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 Các tính năng chính.

Các tác vụ và chế độ nào được hỗ trợ bởi các model YOLO-NAS?

Các model YOLO-NAS hỗ trợ nhiều tác vụ phát hiện đối tượng và các chế độ như suy luận, xác thực và xuất khẩu. Chúng không hỗ trợ huấn luyện. Các model được hỗ trợ bao gồm YOLO-NAS-s, YOLO-NAS-m và YOLO-NAS-l, mỗi model được thiết kế phù hợp cho các công suất tính toán và nhu cầu hiệu suất khác nhau. Để có cái nhìn chi tiết, hãy tham khảo phần Các tác vụ và chế độ được hỗ trợ.

Có các model YOLO-NAS tiền đào tạo nào khả dụng không và làm cách nào để tôi truy cập chúng?

Có, Ultralytics cung cấp các model YOLO-NAS tiền đào tạo mà bạn có thể truy cập trực tiếp. Các model này được tiền đào tạo trên các tập dữ liệu như COCO, đảm bảo hiệu suất cao cả về tốc độ lẫn độ chính xác. Bạn có thể tải xuống các model này bằng cách sử dụng các liên kết được cung cấp trong phần Các model đã tiền đào tạo. Dưới đây là một số ví dụ:

Bình luận