Đón xem YOLO Vision 2025!
25 tháng 9, 2025
10:00 — 18:00 BST
Sự kiện kết hợp
Yolo Vision 2024

Tối ưu hóa các mô hình Ultralytics YOLO bằng tích hợp TensorRT

Abirami Vina

5 phút đọc

20 tháng 5, 2025

Tìm hiểu cách xuất các mô hình Ultralytics YOLO bằng 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 trên một con phố đông đúc, chỉ có vài mili giây để phát hiện một người đi bộ bước xuống lề đường. Đồng thời, nó có thể cần nhận ra một 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 chóng với một chiếc xe gần đó chuyển làn. Trong những tình huống như vậy, tốc độ và phản ứng trong thời gian thực là rất quan trọng.

Đây là nơi trí tuệ nhân tạo (AI), đặc biệt 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 một 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ế, 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, việc chạy một 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 (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 các 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 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 phát triển bởi NVIDIA để tăng cường 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 hỗ trợ bởi Ultralytics và hướng dẫn bạn cách 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 cùng bắt đầu!

Tổng quan về TensorRT

TensorRT là một bộ công cụ được phát triển bởi NVIDIA để 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ế, 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à trình tối ưu hóa mô hình, 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 hỗ trợ bởi Ultralytics 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ách sử dụ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ớ, dẫn đến suy luận 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.

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 xem xét một số tính năng chính của định dạng mô hình TensorRT:

  • Dễ dàng tích hợp framework: 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ó khả năng mở rộng 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à truyền phát âm thanh/video theo 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, đề xuất và hơn thế nữa.

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 thực hiện.

Để 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.’ Điều này có thể được thực hiện bằng cách chạy lệnh “pip install ultralytics” trong dấu nhắc lệnh hoặc thiết bị đầu cuối của bạn.

Sau khi cài đặt thành công Ultralytics Python Package, bạn có thể huấn luyện, kiểm tra, tinh chỉnh, xuất và triển khai các mô hình cho các tác vụ computer vision khác nhau, chẳng hạn như object detection, phân loại và phân đoạn thể hiện (instance segmentation). 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 để biết cá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 YOLOv11 sang định dạng mô hình TensorRT. Nó tải một biến thể nano được huấn luyện trước của mô hình YOLO11 (yolo11n.pt) và xuất nó dưới dạng tệp engine TensorRT (yolo11n.engine), giúp nó sẵn sàng để 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 mô hình 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ụ 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 nó. Suy luận liên quan đến việc sử dụng mô hình đã huấn luyện để đư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 hình ảnh đầu vào về một con chó để kiểm tra mô hình. 

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 đoạn mã này, ả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 đã xuất ở định dạng TensorRT.

Khi nào nên tận dụng tích hợp TensorRT

Gói Python Ultralytics 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?

Dưới đây là một vài 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ể giảm đáng kể kích thước mô hình. Việc lượng tử hóa từ FP32 sang INT8 có thể dẫn đến giảm 4 lần kích thước mô hình, 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 dung lượng bộ nhớ trong quá trình triển khai.
  • Sử dụng năng lượng thấp hơn: Lượng tử hóa INT8 không chỉ giảm kích thước mô hình mà còn giảm mức tiêu thụ điện năng. Các hoạt động giảm độ chính xác cho các mô hình YOLO được 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 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 Ultralytics YOLO đượ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ế. Các mô hình được tối ưu hóa này đặc biệt hữu ích ở những nơi hiệu suất AI nhanh chóng và hiệu quả là yếu tố then chốt. 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 trong các cửa hàng bán lẻ

Một loạt các công việc 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 thực hiện 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à gây khó chịu cho khách hàng, đặc biệt là tại quầy 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 tự thanh toán thông minh là một giải pháp tuyệt vời cho vấn đề này.

Các quầy này sử dụng thị giác máy tính và GPU để tăng tốc quá 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 mô hình tiên tiến như YOLO11, khi được tối ưu hóa bằng 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 được 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.

Tự động phát hiện lỗi trong sản xuất

Một mô hình 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 bị lỗi trong ngành sản xuất. Sau khi được huấn luyện, 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 tải, máy ảnh chụp ảnh và mô hình YOLO11, chạy ở định dạng TensorRT, phân tích chúng trong thời gian thực để phát hiện các khuyết tật. 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 lỗi 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 các khuyết tật 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 khuyết tật 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.

Những điều cần cân nhắc 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à giảm độ trễ, đây là một vài hạn chế cần lưu ý:

  • Giảm nhẹ về độ 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 mô hình 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 các đối tượng (đ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 gỡ lỗi: Các tối ưu hóa được thực hiện bởi TensorRT có thể gây khó khăn hơn trong việc theo dõi lỗi hoặc hiểu các hành vi không mong muốn, đặc biệt 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ý ảnh đơn hoặc các lô nhỏ, mức cải thiện hiệu suất có thể ít đáng kể hơn.

Những điều cần nhớ

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ể, khiến chúng 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, hỗ trợ hệ thống thanh toán thông minh hoặc giám sát các khu vực đô thị đông đúc. 

Việ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 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 việc tăng cường hiệu suất giúp 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 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? 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à xem các tùy chọn cấp phép của chúng tôi để khởi động 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ấtthị 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.

Hãy cùng nhau xây dựng tương lai
của AI!

Bắt đầu hành trình của bạn với tương lai của học máy

Bắt đầu miễn phí
Đã sao chép liên kết vào clipboard