Tối ưu hóa các model Ultralytics YOLO với tích hợp TensorRT
Tìm hiểu cách xuất các model Ultralytics YOLO bằng tích hợp TensorRT để đạt hiệu suất AI nhanh hơn, hiệu quả hơn trên các GPU NVIDIA cho các ứng dụng thời gian thực.

Hãy tưởng tượng một chiếc xe tự lái đang di chuyển trên đường phố đông đúc với chỉ vài mili giây để phát hiện một người đi bộ đang bước xuống lề đường. Đồng thời, nó có thể cần nhận diện biển báo dừng bị cây che khuất một phần hoặc phản ứng nhanh với một phương tiện gần đó đang tạt vào làn đường của nó. Trong những tình huống như vậy, tốc độ và phản hồi theo thời gian thực là rất quan trọng.
Đây là lúc 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 hình ảnh, đóng vai trò then chốt. Để 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ế, chúng thường cần xử lý thông tin nhanh chóng, xử lý nhiều tác vụ cùng 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ư đơn vị xử lý đồ họa (GPU) để chạy model nhanh hơn. Các GPU của NVIDIA đặc biệt nổi tiếng với những tác vụ như vậy nhờ khả năng mang lại độ trễ thấp và thông lượng cao.
Tuy nhiên, việc chạy model trên GPU theo cách thông thường không phải lúc nào cũng đảm bảo hiệu suất tối ưu. Các model AI thị giác thường yêu cầu tối ưu hóa để tận dụng tối đa khả năng của thiết bị phần cứng. Để đạt được hiệu suất tối đa với phần cứng cụ thể, chúng ta cần biên dịch model để sử dụng tập hợp lệnh 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 do NVIDIA phát triển để nâng cao hiệu suất trên các máy tính cao cấp. Nó sử dụng các kỹ thuật tiên tiến để giảm đáng kể thời gian inference trong khi vẫn duy trì độ chính xác.

Hình 1. NVIDIA TensorRT cho phép các model 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 hỗ trợ bởi Ultralytics và tìm hiểu cách bạn có thể xuất model 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!
Link to this sectionTổng quan về TensorRT#
TensorRT là một bộ công cụ do NVIDIA phát triển để giúp các model 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ế nơi 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à bộ tối ưu hóa model, có thể hoạt động ở phía sau để đảm bảo model 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 hỗ trợ bởi Ultralytics hoạt động bằng cách tối ưu hóa model 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 ít bit 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 model, giúp giảm mức sử dụng bộ nhớ và tăng tốc độ tính toán mà ít ảnh hưởng đến độ chính xác.
Ngoài ra, các lớp mạng thần kinh tương thích được hợp nhất trong các model TensorRT được tối ưu hóa để giảm việc sử dụng bộ nhớ, dẫn đến việc inference nhanh hơn và hiệu quả hơn.

Hình 2. Một cái nhìn về kỹ thuật hợp nhất lớp của TensorRT.
Link to this sectionCác tính năng chính của định dạng xuất TensorRT#
Trước khi chúng ta thảo luận về cách bạn có thể xuất YOLO11 bằng tích hợp TensorRT, hãy xem qua một số tính năng chính của định dạng model TensorRT:
-
Tích hợp framework dễ dàng: TensorRT hỗ trợ tích hợp trực tiếp với các framework AI phổ biến như PyTorch, Hugging Face và ONNX, mang lại 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 engine 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 với Triton: Các model được tối ưu hóa ở định dạng TensorRT có thể được triển khai ở quy mô lớn bằng cách sử dụng NVIDIA Triton Inference Server, giúp tăng hiệu quả thông qua các tính năng như input batching, thực thi model đồng thời, hỗ trợ tập hợp model và truyền phát âm thanh/video thời gian thực.
-
Linh hoạt trên các 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, gợi ý và nhiều hơn nữa.
Link to this sectionTích hợp TensorRT hoạt động như thế nào?#
Việc xuất các model YOLO của Ultralytics như Ultralytics YOLO11 sang định dạng model TensorRT rất dễ dàng. Hãy cùng thực hiện các bước liên quan.
Để bắt đầu, bạn có thể cài đặt gói Python của Ultralytics bằng trình quản lý gói như ‘pip’. Việc này có thể thực hiện bằng cách chạy lệnh “pip install ultralytics” trong command prompt hoặc terminal của bạn.
Sau khi cài đặt thành công gói Python của Ultralytics, bạn có thể huấn luyện, kiểm tra, tinh chỉnh, xuất và triển khai các model 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 cá thể. Trong khi cài đặt gói, nếu bạn 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 để có 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 YOLO11 sang định dạng model TensorRT. Nó sẽ tải một biến thể nano được huấn luyện sẵn của model YOLO11 (yolo11n.pt) và xuất nó dưới dạng tệp engine TensorRT (yolo11n.engine), sẵn sàng cho việc triển khai trên các thiết bị NVIDIA.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="engine")Sau khi chuyển đổi model của bạn sang định dạng TensorRT, bạn có thể triển khai nó cho nhiều ứng dụng khác nhau.
Ví dụ dưới đây cho thấy cách tải model YOLO11 đã export (yolo11n.engine) và thực thi inference bằng model đó. Inferencing bao gồm việc sử dụng model đã training để đưa ra dự đoán trên dữ liệu mới. Trong trường hợp này, chúng ta sẽ sử dụng một ảnh đầu vào là con chó để kiểm thử model.
tensorrt_model = YOLO("yolo11n.engine")
results = tensorrt_model("https://images.pexels.com/photos/1254140/pexels-photo-1254140.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2.jpg", save=True)Khi bạn chạy mã này, hình ảnh đầu ra sau đây sẽ được lưu trong thư mục runs/detect/predict.

Hình 3. Kết quả của việc chạy inference bằng model YOLO11 đã xuất ở định dạng TensorRT.
Link to this sectionKhi nào nên tận dụng tích hợp TensorRT#
Gói Python của Ultralytics hỗ trợ nhiều tích hợp cho phép xuất các model 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?
Dưới đây là một vài yếu tố giúp định dạng model 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 model nhỏ hơn: Xuất model YOLO sang định dạng TensorRT với độ chính xác INT8 có thể giảm đáng kể kích thước model. Việc lượng tử hóa từ FP32 sang INT8 có thể dẫn đến kích thước model giảm 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.
-
Mức tiêu thụ điện năng thấp hơn: Lượng tử hóa INT8 không chỉ giảm kích thước model mà còn giảm mức tiêu thụ điện năng. Các hoạt động với độ chính xác giảm cho các model YOLO đã xuất ở định dạng INT8 có thể tiêu thụ ít năng lượng hơn so với các model 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 cá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 tối ưu hóa INT8 của TensorRT có thể cải thiện tốc độ inference.
Link to this sectionCác ứng dụng của YOLO11 và định dạng model TensorRT#
Các model YOLO của Ultralytics được xuất sang định dạng TensorRT có thể được triển khai trên nhiều tình huống thực tế. Những model được tối ưu hóa này đặc biệt hữu ích ở những nơi mà hiệu suất AI nhanh và hiệu quả là yếu tố then chốt. Hãy khám phá một số ví dụ thú vị về cách chúng có thể được sử dụng.
Link to this sectionQuầy thanh toán thông minh trong các cửa hàng bán lẻ#
Nhiều tác vụ trong các cửa hàng bán lẻ, 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à tại quầy thanh toán. Các hàng dài gây bất tiện cho cả người mua sắm và chủ cửa hàng. Quầy tự thanh toán thông minh là một giải pháp tuyệt vời cho vấn đề này.
Những quầy này sử dụng thị giác máy tính và GPU để tăng tốc quy trình, giúp giảm thời gian chờ đợi. Thị giác máy tính cho phép các hệ thống này nhìn và hiểu 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 model 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 model đã xuất 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ế đặc biệt cho các ứng dụng AI biên.

Hình 4. Một ví dụ về quầy thanh toán thông minh.
Link to this sectionPhát hiện lỗi tự động trong sản xuất#
Một model thị giác máy tính như YOLO11 có thể được huấn luyện 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 huấn luyện, model 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, máy ảnh chụp ảnh và model YOLO11, chạy ở định dạng TensorRT, phân tích chúng trong 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 nắm bắt các vấn đề một cách nhanh chóng và chính xác, giảm thiểu sai sót và cải thiện hiệu quả.
Tương tự, 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 lỗi trong bao bì y tế. Trên thực tế, thị trường toàn cầu cho hệ thống phát hiện lỗi thông minh dự kiến sẽ 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.
Link to this sectionNhững điều cần lưu ý khi sử dụng TensorRT#
Mặc dù tích hợp TensorRT mang lại nhiều ưu điểm, như tốc độ inference nhanh hơn và giảm độ trễ, nhưng đây là một vài hạn chế cần lưu ý:
-
Giảm nhẹ độ chính xác: Khi bạn xuất model của mình ở định dạng TensorRT, model đã xuất có thể không chính xác bằng model gốc. Các chỉ số hiệu suất như độ chính xác (precision), độ nhớ (recall) và khả năng phát hiện đối tượng của model (điểm mAP) có thể giảm nhẹ. Điều này có thể được giảm thiểu bằng cách sử dụng một bộ 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 truy vết lỗi hoặc hiểu cá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 model gốc.
-
Độ nhạy với kích thước batch: Các lợi ích về hiệu suất của TensorRT rõ rệt hơn với kích thước batch lớn hơn. Đối với các ứng dụng xử lý hình ảnh đơn lẻ hoặc các batch nhỏ, những cải tiến hiệu suất có thể ít đáng kể hơn.
Link to this sectionCác điểm chính cần lưu ý#
Việc xuất các model YOLO của Ultralytics sang định dạng TensorRT giúp chúng chạy nhanh hơn và hiệu quả hơn đáng kể, biến chúng thành lựa chọ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 các hệ thống thanh toán thông minh hoặc giám sát các khu vực đô thị đông đúc.
Sự tối ưu hóa này giúp các model 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 mức sử dụng bộ nhớ và điện năng. Mặc dù có một vài hạn chế, nhưng sự gia tăng hiệu suất khiến tích hợp TensorRT trở thành một lựa chọn tuyệt vời cho bất kỳ ai xây dựng các hệ thống thị giác máy tính tốc độ cao trên phần cứng NVIDIA.
Bạn muốn tìm hiểu thêm về AI? Hãy khám phá kho lưu trữ GitHub của chúng tôi, kết nối với cộng đồng của chúng tôi và kiểm tra các tùy chọn cấp phép của chúng tôi để bắt đầu dự án thị giác máy tính của bạn. Tìm hiểu thêm về những đổi mới như AI trong sản xuất và thị giác máy tính trong ngành logistics trên các trang giải pháp của chúng tôi.






