Ultralytics YOLO27:

YOLO-NAS#

Cập nhật quan trọng

Xin lưu ý rằng Deci, đơn vị sáng tạo ban đầu của YOLO-NAS, đã được NVIDIA mua lại. Do đó, các model 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 model này, nhưng dự kiến sẽ không có thêm bản cập nhật nào từ đội ngũ ban đầu.

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 bài toán 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 neural tiên tiến, được thiết kế tỉ mỉ để khắc phục 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ề khả năng hỗ trợ lượng tử hóa và sự cân bằng 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 block có nhận biết lượng tử hóa và lượng tử 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 lượng tử hóa INT8, model chỉ bị giảm độ chính xác tối thiểu, đây là 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 năng nổi bật.

Tính năng chính#

  • Basic Block thân thiện với lượng tử hóa: YOLO-NAS giới thiệu một basic block mới thân thiện với 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.
  • Huấn luyện và lượng tử hóa tinh vi: YOLO-NAS tận dụng các scheme huấn luyện tiên tiến và kỹ thuật lượng tử hóa sau huấn luyện để cải thiện hiệu năng.
  • 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.

Các model đã tiền huấn luyện#

Trải nghiệm sức mạnh của tính năng phát hiện đối tượng thế hệ mới với các model YOLO-NAS đã 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 năng hàng đầu cả về 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:

Hiệu năng
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ế để 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 về cả hiệu năng lẫn tốc độ.

Ví dụ sử dụng#

Ultralytics đã giúp việc tích hợp các mô hình YOLO-NAS trở nên dễ dàng vào các ứng dụng Python của bạn 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 để đơn giản hóa quy trình.

Các ví dụ sau đây minh họa cách sử dụng model YOLO-NAS với package ultralytics để inference và validation:

Ví dụ về Inference và Validation#

Trong ví dụ này, chúng ta validation YOLO-NAS-s trên dataset COCO8.

Ví dụ

Ví dụ này cung cấp code inference và validation đơn giản cho YOLO-NAS. Để xử lý kết quả inference, hãy xem mode Predict. Để sử dụng YOLO-NAS với các mode bổ sung, hãy xem ValExport. YOLO-NAS trên package ultralytics không hỗ trợ training.

Các tệp mô hình *.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 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 task và mode đượ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ề năng lực tính toán và hiệu năng:

  • 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 yêu cầu hiệu quả cao.
  • YOLO-NAS-m: Cung cấp cách tiếp cận cân bằng, phù hợp cho phát hiện đối tượng đa dụng với độ chính xác cao hơn.
  • YOLO-NAS-l: Được tối ưu cho các tình huống yêu cầu độ chính xác cao nhất, trong đó tài nguyên tính toán ít bị giới hạn 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 weight đã tiền huấn luyện, các tác vụ được hỗ trợ và khả năng tương thích với những mode hoạt động khác nhau.

Loại modelPretrained weightCác tác vụ được hỗ trợTrainingValidationInferenceExport
YOLO-NAS-syolo_nas_s.ptPhát hiện đối tượng
YOLO-NAS-myolo_nas_m.ptPhát hiện đối tượng
YOLO-NAS-lyolo_nas_l.ptPhát hiện đối tượng

Trích dẫn và ghi nhận đóng góp#

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:

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 đến đội ngũ SuperGradients của Deci AI vì những nỗ lực trong việc tạo ra và duy trì tài nguyên giá trị 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 một công cụ quan trọng cho cả developer và nhà nghiên cứu.

FAQ#

  • 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ệ Tìm kiếm kiến trúc neural (NAS) tiên tiến. Model này khắc phục những hạn chế của các model YOLO trước đây bằng cách giới thiệu các tính năng như basic block thân thiện với lượng tử hóa và các scheme huấn luyện tinh vi. Nhờ đó, hiệu năng được cải thiện đáng kể, đặ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, qua đó nâng cao mức độ phù hợp với môi trường production. Để biết thêm chi tiết, hãy xem phần Tổng quan.

  • Bạn có thể dễ dàng tích hợp các model YOLO-NAS vào ứng dụng Python bằng package ultralytics. Dưới đây là một ví dụ đơn giản về cách load một model YOLO-NAS đã tiền huấn luyện và thực hiện inference:

    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ề Inference và Validation.

  • YOLO-NAS giới thiệu một số tính năng chính giúp 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:

    • Basic Block 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 năng 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 tinh vi: Sử dụng các scheme 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 năng hiệu quả và khả năng phù hợp để triển khai trong môi trường production. Tìm hiểu thêm trong phần Tính năng chính.

  • Các model YOLO-NAS hỗ trợ nhiều tác vụ và mode phát hiện đối tượng như inference, validation và export. Các model này không hỗ trợ training. Những model được hỗ trợ gồm YOLO-NAS-s, YOLO-NAS-m và YOLO-NAS-l, mỗi model được thiết kế cho các năng lực tính toán và nhu cầu hiệu năng khác nhau. Để xem tổng quan chi tiết, hãy tham khảo phần Các tác vụ và mode được hỗ trợ.

  • Có, Ultralytics cung cấp các model YOLO-NAS đã tiền huấn luyện mà bạn có thể truy cập trực tiếp. Các model này được tiền huấn luyện trên những dataset 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 được cung cấp trong phần Các model đã tiền huấn luyện. Dưới đây là một số ví dụ:

Bình luận