Tìm hiểu cách xuất Ultralytics YOLOv11 sang định dạng OpenVINO™ cho phép suy luận cực nhanh trên phần cứng Intel®, nâng cao tốc độ, khả năng mở rộng và độ chính xác.

Tìm hiểu cách xuất Ultralytics YOLOv11 sang định dạng OpenVINO™ cho phép suy luận cực nhanh trên phần cứng Intel®, nâng cao tốc độ, khả năng mở rộng và độ chính xác.
Việc ứng dụng AI phụ thuộc vào khả năng tiếp cận các giải pháp AI, và một phần lớn trong đó là làm cho chúng dễ dàng triển khai trên phần cứng mà mọi người đã có. Chạy các mô hình AI trên GPU (bộ xử lý đồ họa) là một lựa chọn tuyệt vời về hiệu suất và sức mạnh xử lý song song.
Tuy nhiên, thực tế là không phải ai cũng có quyền truy cập vào GPU cao cấp, đặc biệt là trong môi trường biên hoặc trên máy tính xách tay hàng ngày. Đó là lý do tại sao việc tối ưu hóa các mô hình để chạy hiệu quả trên phần cứng có sẵn rộng rãi hơn như bộ xử lý trung tâm (CPU), GPU tích hợp và bộ xử lý thần kinh (NPU) lại rất quan trọng.
Thị giác máy tính, chẳng hạn, là một nhánh của AI cho phép máy móc phân tích và hiểu hình ảnh và luồng video trong thời gian thực. Các mô hình Vision AI như Ultralytics YOLO11 hỗ trợ các tác vụ chính như phát hiện đối tượng và phân vùng thể hiện, cung cấp năng lượng cho các ứng dụng từ phân tích bán lẻ đến chẩn đoán y tế.
Để giúp thị giác máy tính dễ tiếp cận hơn, Ultralytics đã phát hành bản tích hợp được cập nhật với bộ công cụ OpenVINO, một dự án mã nguồn mở để tối ưu hóa và chạy suy luận AI trên CPU, GPU và NPU.
Với sự tích hợp này, việc xuất và triển khai các mô hình YOLO11 trở nên dễ dàng hơn với khả năng suy luận nhanh hơn tới 3 lần trên CPU và hiệu suất được tăng tốc trên GPU và NPU của Intel. Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách sử dụng gói Ultralytics Python để xuất các mô hình YOLO11 sang định dạng OpenVINO và sử dụng nó để suy luận. Hãy bắt đầu!
Trước khi chúng ta đi sâu vào chi tiết về tích hợp OpenVINO được hỗ trợ bởi Ultralytics, hãy xem xét kỹ hơn điều gì làm cho YOLO11 trở thành một mô hình thị giác máy tính đáng tin cậy và có tác động. YOLO11 là mô hình mới nhất trong dòng Ultralytics YOLO, cung cấp những cải tiến đáng kể về tốc độ và độ chính xác.
Một trong những điểm nổi bật chính của nó là hiệu quả. Ví dụ: Ultralytics YOLO11m có ít hơn 22% tham số so với Ultralytics YOLOv8m, nhưng nó đạt được độ chính xác trung bình (mAP) cao hơn trên bộ dữ liệu COCO. Điều này có nghĩa là nó chạy nhanh hơn và cũng phát hiện các đối tượng chính xác hơn, khiến nó trở nên lý tưởng cho các ứng dụng thời gian thực, nơi hiệu suất và khả năng phản hồi là rất quan trọng.
Ngoài khả năng phát hiện đối tượng, YOLO11 còn hỗ trợ nhiều tác vụ thị giác máy tính nâng cao khác như phân vùng thực thể, ước tính tư thế, phân loại ảnh, theo dõi đối tượng và phát hiện khung giới hạn có hướng. YOLO11 cũng thân thiện với nhà phát triển, với gói Ultralytics Python cung cấp một giao diện đơn giản và nhất quán để huấn luyện, đánh giá và triển khai các mô hình.
Ngoài ra, gói Ultralytics Python hỗ trợ nhiều tích hợp và nhiều định dạng xuất, bao gồm OpenVINO, ONNX, TorchScript, cho phép bạn dễ dàng tích hợp YOLO11 vào các quy trình triển khai khác nhau. Cho dù bạn đang nhắm mục tiêu vào cơ sở hạ tầng đám mây, thiết bị biên hay hệ thống nhúng, quy trình xuất đều đơn giản và có thể thích ứng với nhu cầu phần cứng của bạn.
OpenVINO™ (Open Visual Inference and Neural Network Optimization) là một bộ công cụ mã nguồn mở để tối ưu hóa và triển khai suy luận AI trên một loạt các phần cứng. Nó cho phép các nhà phát triển chạy các ứng dụng suy luận hiệu suất cao một cách hiệu quả trên các nền tảng Intel khác nhau, bao gồm CPU, GPU tích hợp và rời, NPU và mảng cổng lập trình trường (FPGA).
OpenVINO cung cấp một giao diện thời gian chạy thống nhất, trừu tượng hóa các khác biệt về phần cứng thông qua các plugin dành riêng cho thiết bị. Điều này có nghĩa là các nhà phát triển có thể viết mã một lần và triển khai trên nhiều mục tiêu phần cứng Intel bằng cách sử dụng một API nhất quán.
Dưới đây là một số tính năng chính khiến OpenVINO trở thành một lựa chọn tuyệt vời để triển khai:
Sau khi khám phá OpenVINO là gì và tầm quan trọng của nó, hãy cùng thảo luận về cách xuất các mô hình YOLO11 sang định dạng OpenVINO và chạy suy luận hiệu quả trên phần cứng Intel.
Để xuất mô hình sang định dạng OpenVINO, trước tiên bạn cần cài đặt gói Ultralytics Python. Gói này cung cấp mọi thứ bạn cần để huấn luyện, đánh giá và xuất các mô hình YOLO, bao gồm cả YOLO11.
Bạn có thể cài đặt nó bằng cách chạy lệnh "pip install ultralytics" trong terminal hoặc command prompt. Nếu bạn đang làm việc trong một môi trường tương tác như Jupyter Notebook hoặc Google Colab, chỉ cần thêm dấu chấm than trước lệnh.
Ngoài ra, nếu bạn gặp bất kỳ sự cố nào trong quá trình cài đặt hoặc xuất, tài liệu Ultralytics và hướng dẫn khắc phục sự cố là những tài nguyên tuyệt vời để giúp bạn quay lại đúng hướng.
Sau khi gói Ultralytics được thiết lập, bước tiếp theo là tải mô hình YOLO11 của bạn và chuyển đổi nó sang định dạng tương thích với OpenVINO.
Trong ví dụ dưới đây, chúng tôi đang sử dụng mô hình YOLO11 được huấn luyện trước ("yolo11n.pt"). Chức năng xuất được sử dụng để chuyển đổi nó sang định dạng OpenVINO. Sau khi chạy mã này, mô hình đã chuyển đổi sẽ được lưu trong một thư mục mới có tên là "yolo11n_openvino_model".
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="openvino")
Sau khi mô hình YOLO11 của bạn được xuất sang định dạng OpenVINO, bạn có thể chạy suy luận theo hai cách: sử dụng gói Ultralytics Python hoặc OpenVINO Runtime gốc.
Mô hình YOLO11 đã xuất có thể dễ dàng triển khai bằng gói Ultralytics Python, như được hiển thị trong đoạn mã bên dưới. Phương pháp này lý tưởng cho việc thử nghiệm nhanh chóng và triển khai hợp lý trên phần cứng Intel.
Bạn cũng có thể chỉ định thiết bị sử dụng cho suy luận, chẳng hạn như "intel:cpu", "intel:gpu" hoặc "intel:npu", tùy thuộc vào phần cứng Intel có sẵn trên hệ thống của bạn.
ov_model = YOLO("yolo11n_openvino_model/")
results = ov_model("https://ultralytics.com/images/bus.jpg", device="intel:gpu")
Sau khi chạy đoạn mã trên, hình ảnh đầu ra sẽ được lưu trong thư mục "runs/detect/predict".
Nếu bạn đang tìm kiếm một phương pháp tùy chỉnh để chạy inference, đặc biệt là trong môi trường production, OpenVINO Runtime cung cấp cho bạn khả năng kiểm soát tốt hơn đối với cách mô hình của bạn được thực thi. Nó hỗ trợ các tính năng nâng cao như thực thi không đồng bộ (chạy song song nhiều yêu cầu inference) và cân bằng tải (phân phối khối lượng công việc inference hiệu quả trên phần cứng Intel).
Để sử dụng native runtime, bạn sẽ cần các tệp mô hình đã xuất: tệp .xml (xác định kiến trúc mạng) và tệp .bin (lưu trữ trọng số đã huấn luyện của mô hình). Bạn cũng có thể định cấu hình các tham số bổ sung như kích thước đầu vào hoặc các bước tiền xử lý tùy thuộc vào ứng dụng của bạn.
Quy trình triển khai điển hình bao gồm khởi tạo lõi OpenVINO, tải và biên dịch mô hình cho thiết bị đích, chuẩn bị đầu vào và thực hiện suy luận. Để có các ví dụ chi tiết và hướng dẫn từng bước, hãy tham khảo tài liệu OpenVINO chính thức của Ultralytics.
Trong khi khám phá các tích hợp Ultralytics, bạn sẽ nhận thấy rằng gói Ultralytics Python hỗ trợ xuất các mô hình YOLO11 sang nhiều định dạng khác nhau như TorchScript, CoreML, TensorRT và ONNX. Vậy, tại sao nên chọn tích hợp OpenVINO?
Dưới đây là một số lý do tại sao định dạng xuất OpenVINO rất phù hợp để triển khai các mô hình trên phần cứng Intel:
Bạn cũng có thể đánh giá các điểm chuẩn hiệu suất cho mô hình YOLO11 trên một loạt các nền tảng Intel® trên OpenVINO™ Model Hub. OpenVINO Model Hub là một nguồn tài nguyên để các nhà phát triển đánh giá các mô hình AI trên phần cứng Intel và khám phá lợi thế về hiệu suất của OpenVINO trên CPU Intel, GPU tích hợp, NPU và card đồ họa rời.
Với sự trợ giúp của tích hợp OpenVINO, việc triển khai các mô hình YOLO11 trên phần cứng Intel trong các tình huống thực tế trở nên đơn giản hơn nhiều.
Một ví dụ tuyệt vời là bán lẻ thông minh, nơi YOLO11 có thể giúp phát hiện các kệ hàng trống theo thời gian thực, theo dõi những sản phẩm nào đang gần hết và phân tích cách khách hàng di chuyển trong cửa hàng. Điều này cho phép các nhà bán lẻ cải thiện việc quản lý hàng tồn kho và tối ưu hóa cách bố trí cửa hàng để thu hút người mua sắm tốt hơn.
Tương tự, trong các thành phố thông minh, YOLO11 có thể được sử dụng để giám sát giao thông bằng cách đếm phương tiện, theo dõi người đi bộ và phát hiện các vi phạm đèn đỏ trong thời gian thực. Những thông tin chi tiết này có thể hỗ trợ tối ưu hóa luồng giao thông, cải thiện an toàn đường bộ và hỗ trợ trong các hệ thống thực thi tự động.
Một trường hợp sử dụng thú vị khác là kiểm tra công nghiệp, nơi YOLO11 có thể được triển khai trên dây chuyền sản xuất để tự động phát hiện các khuyết tật trực quan như thiếu thành phần, sai lệch hoặc hư hỏng bề mặt. Điều này giúp tăng hiệu quả, giảm chi phí và hỗ trợ chất lượng sản phẩm tốt hơn.
Trong khi triển khai các mô hình YOLO11 với OpenVINO, đây là một vài điều quan trọng cần ghi nhớ để có được kết quả tốt nhất:
Xuất Ultralytics YOLOv8 sang định dạng OpenVINO giúp dễ dàng chạy các mô hình Vision AI nhanh chóng và hiệu quả trên phần cứng Intel. Bạn có thể triển khai trên CPU, GPU và NPU mà không cần phải đào tạo lại hoặc thay đổi mã của mình. Đây là một cách tuyệt vời để tăng hiệu suất đồng thời giữ cho mọi thứ đơn giản và có khả năng mở rộng.
Với sự hỗ trợ được tích hợp trong gói Ultralytics Python, việc xuất và chạy suy luận với OpenVINO rất đơn giản. Chỉ trong một vài bước, bạn có thể tối ưu hóa mô hình của mình và chạy nó trên nhiều nền tảng Intel khác nhau. Cho dù bạn đang làm việc về bán lẻ thông minh, giám sát giao thông hay kiểm tra công nghiệp, quy trình làm việc này giúp bạn chuyển từ phát triển sang triển khai một cách nhanh chóng và tự tin.
Tham gia cộng đồng YOLO và xem kho lưu trữ GitHub của Ultralytics để tìm hiểu thêm về các tích hợp có tác động được hỗ trợ bởi Ultralytics. Ngoài ra, hãy xem các tùy chọn cấp phép của Ultralytics để bắt đầu với thị giác máy tính ngay hôm nay!
Đăng ký tham gia hội thảo trực tuyến sắp tới của chúng tôi để xem tích hợp Ultralytics × OpenVINO hoạt động, và truy cập trang web OpenVINO để khám phá các công cụ tối ưu hóa và triển khai AI ở quy mô lớn.