Bằng cách nhấp vào “Chấp nhận tất cả cookie”, bạn đồng ý lưu trữ cookie trên thiết bị của mình để cải thiện khả năng điều hướng trang web, phân tích việc sử dụng trang web và hỗ trợ các nỗ lực tiếp thị của chúng tôi. Thông tin thêm
Cài đặt Cookie
Bằng cách nhấp vào “Chấp nhận tất cả cookie”, bạn đồng ý lưu trữ cookie trên thiết bị của mình để cải thiện khả năng điều hướng trang web, phân tích việc sử dụng trang web và hỗ trợ các nỗ lực tiếp thị của chúng tôi. Thông tin thêm
Tìm hiểu cách xuất mô hình Ultralytics YOLO bằng cách tích hợp TensorRT để có hiệu suất AI nhanh hơn, hiệu quả hơn trên GPU NVIDIA cho các ứng dụng thời gian thực.
Hãy xem xét một chiếc xe tự lái di chuyển qua một con phố đông đúc chỉ trong vài mili giây để phát hiện người đi bộ bước ra khỏi lề đường. Đồng thời, nó có thể cần nhận ra biển báo dừng bị che khuất một phần bởi một cái cây hoặc phản ứng nhanh với một chiếc xe gần đó đang lạng lách vào làn đường của nó. Trong những tình huống như vậy, tốc độ và phản ứng theo thời gian thực là rất quan trọng.
Đây là nơi trí tuệ nhân tạo (AI), cụ thể là thị giác máy tính , một nhánh của AI giúp máy móc diễn giải dữ liệu trực quan, đóng vai trò quan trọng. Để các giải pháp thị giác máy tính hoạt động đáng tin cậy trong môi trường thực tế, thông thường, chúng thường cần xử lý thông tin nhanh chóng, xử lý nhiều tác vụ cùng một lúc và sử dụng bộ nhớ hiệu quả.
Một cách để đạt được điều này là thông qua tăng tốc phần cứng, sử dụng các thiết bị chuyên dụng như bộ xử lý đồ họa (GPU) để chạy các mô hình nhanh hơn. GPU NVIDIA đặc biệt nổi tiếng với các tác vụ như vậy, nhờ khả năng cung cấp độ trễ thấp và thông lượng cao.
Tuy nhiên, chạy mô hình trên GPU như hiện tại không phải lúc nào cũng đảm bảo hiệu suất tối ưu. Các mô hình Vision AI thường yêu cầu tối ưu hóa để tận dụng tối đa khả năng của các thiết bị phần cứng. Để đạt được hiệu suất đầy đủ với phần cứng cụ thể, chúng ta cần biên dịch mô hình để sử dụng bộ hướng dẫn cụ thể cho phần cứng.
Ví dụ, TensorRT là một định dạng xuất và thư viện tối ưu hóa được NVIDIA phát triển để nâng cao hiệu suất trên các máy cao cấp. Nó sử dụng các kỹ thuật tiên tiến để giảm đáng kể thời gian suy luận trong khi vẫn duy trì độ chính xác.
Hình 1. NVIDIA TensorRT cho phép các mô hình chạy tối ưu trên nhiều thiết bị NVIDIA khác nhau.
Trong bài viết này, chúng ta sẽ khám phá tích hợp TensorRT được Ultralytics hỗ trợ và hướng dẫn cách bạn có thể xuất mô hình YOLO11 của mình để triển khai nhanh hơn, hiệu quả hơn trên phần cứng NVIDIA. Hãy bắt đầu nào!
Tổng quan về TensorRT
TensorRT là bộ công cụ do NVIDIA phát triển để giúp các mô hình AI chạy nhanh hơn và hiệu quả hơn trên GPU NVIDIA. Nó được thiết kế cho các ứng dụng thực tế mà tốc độ và hiệu suất thực sự quan trọng, như xe tự lái và kiểm soát chất lượng trong sản xuất và dược phẩm.
TensorRT bao gồm các công cụ như trình biên dịch và trình tối ưu hóa mô hình có thể hoạt động ẩn để đảm bảo mô hình của bạn chạy với độ trễ thấp và có thể xử lý thông lượng cao hơn.
Tích hợp TensorRT được Ultralytics hỗ trợ hoạt động bằng cách tối ưu hóa mô hình YOLO của bạn để chạy hiệu quả hơn trên GPU bằng các phương pháp như giảm độ chính xác . Điều này đề cập đến việc sử dụng các định dạng bit thấp hơn, chẳng hạn như dấu phẩy động 16 bit (FP16) hoặc số nguyên 8 bit (INT8), để biểu diễn dữ liệu mô hình, giúp giảm mức sử dụng bộ nhớ và tăng tốc tính toán với tác động tối thiểu đến độ chính xác.
Ngoài ra, các lớp mạng nơ-ron tương thích được hợp nhất trong các mô hình TensorRT được tối ưu hóa để giảm mức sử dụng bộ nhớ, mang lại khả năng suy luận nhanh hơn và hiệu quả hơn.
Hình 2. Một góc nhìn về kỹ thuật kết hợp lớp của TensorRT.
Các tính năng chính của định dạng xuất TensorRT
Trước khi thảo luận về cách bạn có thể xuất YOLO11 bằng tích hợp TensorRT, hãy cùng xem qua một số tính năng chính của định dạng mô hình TensorRT:
Tích hợp khung dễ dàng: TensorRT hỗ trợ tích hợp trực tiếp với các khung AI phổ biến như PyTorch, Hugging Face và ONNX, cung cấp hiệu suất nhanh hơn tới 6 lần. Nó cũng hỗ trợ MATLAB, cho phép phát triển các công cụ AI tốc độ cao trên các nền tảng như Jetson, NVIDIA DRIVE và các trung tâm dữ liệu.
Triển khai có thể mở rộng quy mô với Triton: Các mô hình được tối ưu hóa ở định dạng TensorRT có thể được triển khai ở quy mô lớn bằng NVIDIA Triton Inference Server , giúp tăng cường hiệu quả thông qua các tính năng như xử lý hàng loạt đầu vào, thực thi mô hình đồng thời, hỗ trợ tập hợp mô hình và phát trực tuyến âm thanh/video theo thời gian thực.
Linh hoạt trên nhiều thiết bị: Từ các thiết bị biên nhỏ đến các máy chủ mạnh mẽ, TensorRT hoạt động trên toàn bộ hệ sinh thái NVIDIA, hỗ trợ các công cụ như DeepStream cho video, Riva cho AI giọng nói và các công cụ khác cho an ninh mạng, đề xuất, v.v.
Tích hợp TensorRT hoạt động như thế nào?
Xuất các mô hình Ultralytics YOLO như Ultralytics YOLO11 sang định dạng mô hình TensorRT rất dễ dàng. Hãy cùng xem qua các bước liên quan.
Để bắt đầu, bạn có thể cài đặt gói Ultralytics Python bằng trình quản lý gói như 'pip'. Bạn có thể thực hiện việc này bằng cách chạy lệnh “pip install ultralytics ” trong dấu nhắc lệnh hoặc terminal của bạn.
Sau khi cài đặt thành công Ultralytics Python Package, bạn có thể đào tạo, kiểm tra, tinh chỉnh, xuất và triển khai các mô hình cho nhiều tác vụ thị giác máy tính khác nhau, chẳng hạn như phát hiện đối tượng, phân loại và phân đoạn phiên bản. Trong khi cài đặt gói, nếu gặp bất kỳ khó khăn nào, bạn có thể tham khảo hướng dẫn Các vấn đề thường gặp để biết giải pháp và mẹo.
Đối với bước tiếp theo, bạn sẽ cần một thiết bị NVIDIA. Sử dụng đoạn mã bên dưới để tải và xuất YOLOv11 sang định dạng mô hình TensorRT. Đoạn mã này tải một biến thể nano được đào tạo trước của mô hình YOLO11 (yolo11n.pt) và xuất dưới dạng tệp công cụ TensorRT (yolo11n.engine), giúp nó sẵn sàng để triển khai trên các thiết bị NVIDIA.
Sau khi chuyển đổi mô hình sang định dạng TensorRT, bạn có thể triển khai nó cho nhiều ứng dụng khác nhau.
Ví dụ bên dưới cho thấy cách tải mô hình YOLO11 đã xuất (yolo11n.engine) và chạy suy luận bằng mô hình đó. Suy luận liên quan đến việc sử dụng mô hình đã được đào tạo để đưa ra dự đoán về dữ liệu mới. Trong trường hợp này, chúng ta sẽ sử dụng hình ảnh đầu vào của một con chó để kiểm tra mô hình.
Khi bạn chạy đoạn mã này, hình ảnh đầu ra sau sẽ được lưu trong thư mục runs/detect/predict .
Hình 3. Kết quả chạy suy luận bằng mô hình YOLO11 được xuất ở định dạng TensorRT.
Khi nào nên tận dụng tích hợp TensorRT
Gói Ultralytics Python hỗ trợ nhiều tích hợp khác nhau cho phép xuất các mô hình YOLO sang các định dạng khác nhau như TorchScript, CoreML, ONNX và TensorRT. Vậy, khi nào bạn nên chọn sử dụng tích hợp TensorRT?
Sau đây là một số yếu tố giúp định dạng mô hình TensorRT khác biệt so với các tùy chọn tích hợp xuất khác:
Kích thước mô hình nhỏ hơn: Xuất mô hình YOLO sang định dạng TensorRT với độ chính xác INT8 có thể làm giảm đáng kể kích thước mô hình. Lượng tử hóa từ FP32 sang INT8 có thể dẫn đến giảm kích thước mô hình 4 lần, cho phép thời gian tải xuống nhanh hơn, yêu cầu lưu trữ thấp hơn và giảm dấu chân bộ nhớ trong quá trình triển khai.
Tiêu thụ điện năng thấp hơn: Lượng tử hóa INT8 không chỉ làm giảm kích thước mô hình mà còn làm giảm mức tiêu thụ điện năng. Các hoạt động độ chính xác giảm đối với các mô hình YOLO xuất INT8 có thể tiêu thụ ít điện năng hơn so với các mô hình FP32, điều này đặc biệt có lợi cho các thiết bị chạy bằng pin như máy bay không người lái, điện thoại thông minh hoặc thiết bị biên.
Hiệu suất nhanh hơn: Kết hợp kiến trúc hiệu quả của YOLO với khả năng tối ưu hóa INT8 của TensorRT có thể cải thiện tốc độ suy luận.
Ứng dụng của YOLO11 và định dạng mô hình TensorRT
Các mô hình YOLO của Ultralytics được xuất sang định dạng TensorRT có thể được triển khai trong nhiều tình huống thực tế. Các mô hình được tối ưu hóa này đặc biệt hữu ích khi hiệu suất AI nhanh và hiệu quả là chìa khóa. Hãy cùng khám phá một số ví dụ thú vị về cách chúng có thể được sử dụng.
Quầy thanh toán thông minh tại các cửa hàng bán lẻ
Nhiều nhiệm vụ trong các cửa hàng bán lẻ, chẳng hạn như quét mã vạch, cân sản phẩm hoặc đóng gói hàng hóa, vẫn được nhân viên xử lý thủ công. Tuy nhiên, việc chỉ dựa vào nhân viên có thể làm chậm hoạt động và dẫn đến sự thất vọng của khách hàng, đặc biệt là khi thanh toán. Hàng dài chờ đợi gây bất tiện cho cả người mua sắm và chủ cửa hàng. Quầy thanh toán tự động thông minh là giải pháp tuyệt vời cho vấn đề này.
Các bộ đếm này sử dụng công nghệ thị giác máy tính và GPU để tăng tốc quá trình, giúp giảm thời gian chờ. Công nghệ thị giác máy tính cho phép các hệ thống này nhìn thấy và hiểu được môi trường của chúng thông qua các tác vụ như phát hiện đối tượng. Các mô hình tiên tiến như YOLO11, khi được tối ưu hóa với các công cụ như TensorRT, có thể chạy nhanh hơn nhiều trên các thiết bị GPU.
Các mô hình xuất khẩu này rất phù hợp cho các thiết lập bán lẻ thông minh sử dụng các thiết bị phần cứng nhỏ gọn nhưng mạnh mẽ như NVIDIA Jetson Nano , được thiết kế riêng cho các ứng dụng AI biên.
Một mô hình thị giác máy tính như YOLO11 có thể được đào tạo tùy chỉnh để phát hiện các sản phẩm lỗi trong ngành sản xuất. Sau khi được đào tạo, mô hình có thể được xuất sang định dạng TensorRT để triển khai trong các cơ sở được trang bị hệ thống AI hiệu suất cao.
Khi sản phẩm di chuyển dọc theo băng chuyền, camera sẽ chụp ảnh và mô hình YOLO11 chạy ở định dạng TensorRT sẽ phân tích chúng theo thời gian thực để phát hiện lỗi. Thiết lập này cho phép các công ty phát hiện vấn đề nhanh chóng và chính xác, giảm lỗi và cải thiện hiệu quả.
Tương tự như vậy, các ngành công nghiệp như dược phẩm đang sử dụng các loại hệ thống này để xác định các khiếm khuyết trong bao bì y tế. Trên thực tế, thị trường toàn cầu cho các hệ thống phát hiện khiếm khuyết thông minh được thiết lập để tăng lên 5 tỷ đô la vào năm 2026.
Hình 5. Sử dụng YOLO để phát hiện lỗi trong ngành dược phẩm.
Những cân nhắc cần lưu ý khi sử dụng TensorRT
Mặc dù tích hợp TensorRT mang lại nhiều lợi thế như tốc độ suy luận nhanh hơn và độ trễ giảm, nhưng sau đây là một số hạn chế cần lưu ý:
Giảm nhẹ độ chính xác: Khi bạn xuất mô hình của mình ở định dạng TensorRT, mô hình đã xuất của bạn có thể không chính xác bằng bản gốc. Các số liệu hiệu suất như độ chính xác, độ thu hồi và mức độ mô hình phát hiện đối tượng (điểm mAP) có thể giảm nhẹ. Điều này có thể được giảm nhẹ bằng cách sử dụng một tập dữ liệu đại diện trong quá trình lượng tử hóa.
Tăng độ phức tạp khi gỡ lỗi: Các tối ưu hóa do TensorRT thực hiện có thể khiến việc theo dõi lỗi hoặc hiểu được hành vi không mong muốn trở nên khó khăn hơn, đặc biệt là khi so sánh kết quả với mô hình ban đầu.
Độ nhạy kích thước lô: Hiệu suất của TensorRT tăng rõ rệt hơn với kích thước lô lớn hơn. Đối với các ứng dụng xử lý hình ảnh đơn lẻ hoặc lô nhỏ, cải thiện hiệu suất có thể không đáng kể.
Những điểm chính
Việc xuất các mô hình Ultralytics YOLO sang định dạng TensorRT giúp chúng chạy nhanh hơn và hiệu quả hơn đáng kể, trở nên lý tưởng cho các tác vụ thời gian thực như phát hiện lỗi trong nhà máy, cung cấp năng lượng cho hệ thống thanh toán thông minh hoặc giám sát các khu vực đô thị đông đúc.
Tối ưu hóa này giúp các mô hình hoạt động tốt hơn trên GPU NVIDIA bằng cách tăng tốc dự đoán và giảm bộ nhớ và mức sử dụng điện năng. Mặc dù có một số hạn chế, nhưng việc tăng hiệu suất khiến tích hợp TensorRT trở thành lựa chọn tuyệt vời cho bất kỳ ai xây dựng hệ thống thị giác máy tính tốc độ cao trên phần cứng NVIDIA.