Tại sao YOLO-NAS là Mô hình Phát hiện Đối tượng Tốt nhất trong Sê-ri YOLO?
Sau YOLOv8, đã có một mô hình phát hiện đối tượng mới và hiện đại hơn, YOLO-NAS. Đây là một thuật toán phát hiện đối tượng do Deci AI phát triển để khắc phục những hạn chế của mô hình YOLO (Bạn chỉ nhìn một lần) trước đây.
Mô hình được xây dựng từ AutoNAC, một Công cụ Tìm kiếm Kiến trúc Thần kinh. Nó vượt qua tốc độ và hiệu suất của các mô hình SOTA, mang lại bước nhảy vọt lớn trong việc phát hiện đối tượng bằng cách cải thiện sự đánh đổi giữa độ chính xác-độ trễ và hỗ trợ lượng tử hóa.
Bài viết này sẽ thảo luận về các điểm mạnh và tính năng của YOLO-NAS, khám phá lý do tại sao nó là mô hình phát hiện đối tượng tốt nhất trong chuỗi YOLO.
Mục Lục
Hiểu cách hoạt động của YOLO-NAS
AutoNAC của Deci (Xây dựng kiến trúc thần kinh tự động) tạo ra kiến trúc của YOLO-NAS. AutoNAC là một quy trình liền mạch giúp tăng hiệu suất cho các mạng thần kinh sâu hiện có.
Đường ống AutoNAC lấy mạng thần kinh sâu do người dùng đào tạo làm đầu vào, tập dữ liệu và quyền truy cập vào hệ thống suy luận. Sau đó, mạng lưới thần kinh sâu do người dùng đào tạo sẽ trải qua quá trình thiết kế lại bằng cách sử dụng đường ống dẫn. Khi đó, một kiến trúc được tối ưu hóa với độ trễ thấp hơn sẽ đạt được mà không ảnh hưởng đến độ chính xác.
YOLO-NAS sử dụng RepVGG. RepVGG cung cấp nó để tối ưu hóa sau đào tạo bằng cách tham số hóa lại hoặc Lượng tử hóa sau đào tạo. Nó là một loại kiến trúc mạng thần kinh dựa trên VGG. Nó sử dụng các kỹ thuật chính quy hóa được thiết kế để nâng cao khả năng khái quát hóa của các mô hình học sâu.
Thiết kế của kiến trúc hiệu quả hơn về tốc độ và bộ nhớ. RepVGG trải qua đào tạo bằng cách sử dụng kiến trúc đa nhánh để đạt được suy luận nhanh hơn. Sau đó, nó được chuyển đổi thành một nhánh duy nhất bằng cách sử dụng tham số hóa lại.
Tính năng này làm cho YOLO-NAS rất hữu ích cho việc triển khai sản xuất. Điều này là do có thể đào tạo và tối ưu hóa mô hình với độ chính xác hoàn toàn cho tốc độ suy luận và mức sử dụng bộ nhớ.
Các tính năng chính của YOLO-NAS
Các tính năng chính của YOLO-NAS bao gồm:
- Quantization-Aware đào tạo: Mô hình sử dụng QSP và QCI (mô-đun nhận biết lượng tử hóa) để giảm tổn thất độ chính xác trong quá trình lượng tử hóa sau đào tạo bằng cách kết hợp tham số hóa lại lượng tử hóa 8 bit.
- Thiết kế kiến trúc tự động: AutoNAC, công nghệ NAS độc quyền của Deci tìm kiếm một kiến trúc mô hình tối ưu tích hợp các kiến trúc mô hình YOLO cơ bản để tạo ra một mô hình tối ưu.
- Kỹ thuật lượng tử lai: Phương pháp lượng tử hóa tiêu chuẩn ảnh hưởng đến toàn bộ mô hình. Ngược lại, kỹ thuật lượng tử hóa lai lượng tử hóa một phần của mô hình để cân bằng độ trễ và độ chính xác của mô hình.
- Sử dụng các phương pháp độc đáo để chuẩn bị cho mô hình đào tạo bằng cách sử dụng dữ liệu được gắn nhãn tự động. Sau đó, mô hình học hỏi từ các dự đoán của nó và truy cập một lượng lớn dữ liệu.
Phân tích so sánh: YOLO-NAS so với các mô hình YOLO khác
Dưới đây là bảng so sánh giữa các mẫu thuộc dòng YOLO khác nhau.
YOLO-NAS tốt hơn các mô hình phát hiện đối tượng có sẵn, nhưng nó cũng có nhược điểm. Dưới đây là danh sách các lợi ích và nhược điểm của YOLO-NAS:
ưu
- Nó là mã nguồn mở.
- Nó nhanh hơn 10-20% so với các mô hình YOLO hiện có.
- Nó chính xác hơn so với các mô hình YOLO có sẵn.
- Nó sử dụng một kiến trúc tốt hơn, AutoNAC. Điều này thiết lập một kỷ lục mới trong phát hiện đối tượng, mang lại hiệu suất đánh đổi độ chính xác và độ trễ tốt nhất.
- Hỗ trợ liền mạch cho các công cụ suy luận như NVIDIA. Tính năng này làm cho nó trở thành một mô hình sẵn sàng sản xuất.
- Nó có hiệu quả bộ nhớ tốt hơn và tăng tốc độ suy luận.
Nhược điểm
- Nó chưa ổn định vì công nghệ vẫn còn mới và chưa được sử dụng rộng rãi trong sản xuất.
Triển khai YOLO-NAS
Bạn sẽ sử dụng Google Colab để viết và chạy mã trong quá trình triển khai này. Một giải pháp thay thế cho Google Colab là tạo môi trường ảo và sử dụng IDE trên máy cục bộ của bạn.
Mô hình này rất tốn tài nguyên. Đảm bảo bạn có ít nhất 8GB RAM trước khi chạy nó trên máy của mình. Kích thước video càng lớn thì càng sử dụng nhiều bộ nhớ.
Cài đặt phụ thuộc
Cài đặt phụ thuộc YOLO-NAS, siêu gradient sử dụng lệnh dưới đây:
pip install super-gradients==3.1.2
Sau khi cài đặt thành công, bây giờ bạn sẽ có thể đào tạo mô hình YOLO-NAS.
đào tạo người mẫu
Để đào tạo mô hình, hãy chạy khối mã bên dưới:
from super_gradients.training import models
yolo_nas_l = models.get("yolo_nas_l", pretrained_weights="coco")
Bạn đang nhập mô hình đào tạo từ thư viện SuperGradients đã cài đặt trong mã này. Sau đó, bạn đang sử dụng trọng số mô hình được đào tạo trước từ bộ dữ liệu COCO.
Suy luận mô hình
Suy luận mô hình có các ứng dụng tiềm năng cho các nhiệm vụ phát hiện, phân loại và phân đoạn hình ảnh.
Trong trường hợp này, bạn sẽ tập trung vào nhiệm vụ phát hiện đối tượng cho video và hình ảnh. Để phát hiện một đối tượng trong hình ảnh, hãy chạy khối mã bên dưới:
url = "img_path"
yolo_nas_l.predict(url, conf=0.25).show()
Đảm bảo bạn sử dụng đường dẫn chính xác đến hình ảnh của mình. Trong trường hợp này, hãy tải hình ảnh lên môi trường Google Colab, sau đó sao chép đường dẫn của hình ảnh.
Sản lượng dự kiến:
Để phát hiện các đối tượng trong video, hãy chạy khối mã bên dưới:
import torchinput_video_path = "path_to_video"
output_video_path = "detected.mp4"
device = 'cuda' if torch.cuda.is_available() else "cpu"
yolo_nas_l.to(device).predict(input_video_path).save(output_video_path)
Giống như dữ liệu hình ảnh, hãy tải video mà bạn muốn các đối tượng của video đó được phát hiện lên môi trường Google Colab và sao chép đường dẫn đến biến video. Video được dự đoán sẽ có thể truy cập được từ môi trường Google Colab bằng cách sử dụng tên đã phát hiện.mp4. Tải video xuống máy cục bộ của bạn trước khi kết thúc phiên của bạn.
Sản lượng dự kiến:
YOLO-NAS cũng hỗ trợ tinh chỉnh mô hình và đào tạo trên dữ liệu tùy chỉnh. Tài liệu có sẵn trên sổ ghi chép bắt đầu tinh chỉnh của Deci.
Các ứng dụng trong thế giới thực của YOLO-NAS
Mã nguồn của YOLO-NAS có thể truy cập được theo Giấy phép Apache 2.0, có thể truy cập được cho mục đích sử dụng phi thương mại. Để sử dụng cho mục đích thương mại, mô hình phải trải qua quá trình đào tạo lại từ đầu để có được trọng lượng tùy chỉnh.
Nó là một mô hình linh hoạt có thể ứng dụng trong một số lĩnh vực, chẳng hạn như:
Xe tự hành và Robotics
YOLO-NAS có thể cải thiện khả năng nhận thức của các phương tiện tự hành, cho phép chúng phát hiện và theo dõi các đối tượng nhanh hơn và chính xác hơn trong thời gian thực. Khả năng này giúp đảm bảo an toàn trên đường và trải nghiệm lái mượt mà.
Hệ thống giám sát và an ninh
Mô hình này có thể cung cấp khả năng phát hiện đối tượng nhanh chóng, chính xác và theo thời gian thực cho các hệ thống giám sát và an ninh, giúp xác định các mối đe dọa tiềm ẩn hoặc các hoạt động đáng ngờ, giúp hệ thống an ninh tốt hơn
Quản lý bán lẻ và hàng tồn kho
Mô hình này có thể cung cấp khả năng phát hiện đối tượng nhanh chóng và chính xác, cho phép quản lý hàng tồn kho tự động hiệu quả và theo thời gian thực, theo dõi hàng tồn kho và tối ưu hóa kệ hàng. Mô hình này giúp giảm chi phí vận hành và tăng lợi nhuận.
Chăm sóc sức khỏe và hình ảnh y tế
Trong lĩnh vực chăm sóc sức khỏe, YOLO-NAS có khả năng giúp phát hiện và phân tích hiệu quả các dị thường của bệnh hoặc các lĩnh vực quan tâm cụ thể. Mô hình có thể giúp các bác sĩ chẩn đoán chính xác bệnh và theo dõi bệnh nhân, từ đó cải thiện ngành y tế.
YOLO-NAS Takeaway
YOLO-NAS là một mô hình phát hiện đối tượng mới đi tiên phong trong cách thực hiện phát hiện đối tượng mới. Nó tốt hơn so với các mô hình SOTA. Hiệu suất phát hiện đối tượng của nó là một bước nhảy vọt lớn cho các dự án thị giác máy tính.