Kiểm tra màu xanh lá cây
Liên kết được sao chép vào khay nhớ tạm

Sử dụng ONNX tích hợp để xuất khẩu Ultralytics YOLO mô hình

Tìm hiểu cách xuất khẩu Ultralytics YOLO các mô hình, chẳng hạn như Ultralytics YOLO11 , sử dụng ONNX tích hợp để triển khai đa nền tảng trên nhiều phần cứng khác nhau.

Khi các giải pháp AI bắt đầu được chú ý, hầu hết các mô hình được triển khai trên các máy chủ mạnh mẽ trong môi trường được kiểm soát. Tuy nhiên, khi công nghệ phát triển, việc triển khai đã mở rộng ra xa hơn nhiều so với trung tâm dữ liệu.

Ngày nay, các mô hình AI chạy trên mọi thứ từ máy chủ đám mây và máy tính để bàn đến điện thoại thông minh và thiết bị biên. Sự thay đổi này hỗ trợ xử lý nhanh hơn, chức năng ngoại tuyến và các hệ thống thông minh hơn hoạt động gần hơn với nơi dữ liệu được tạo ra.

Một lĩnh vực mà điều này đặc biệt rõ ràng là thị giác máy tính - một nhánh của AI cho phép máy móc diễn giải dữ liệu trực quan. Nó đang được sử dụng để thúc đẩy các ứng dụng như nhận dạng khuôn mặt, lái xe tự động và phân tích video thời gian thực. Khi các trường hợp sử dụng này phát triển, nhu cầu về các mô hình có thể chạy trơn tru trên nhiều phần cứng và nền tảng khác nhau cũng tăng theo.

Nhưng việc triển khai các mô hình thị giác máy tính trên nhiều mục tiêu triển khai không phải lúc nào cũng đơn giản. Các thiết bị khác nhau về phần cứng, hệ điều hành và khuôn khổ được hỗ trợ, khiến tính linh hoạt và khả năng tương thích trở nên cần thiết.

Đó là lý do tại sao việc có tùy chọn xuất các mô hình thị giác máy tính như Ultralytics YOLO11 sang các định dạng khác nhau là rất quan trọng. Ví dụ, ONNX (Trao đổi mạng nơ-ron mở) tích hợp được hỗ trợ bởi Ultralytics cung cấp một cách thiết thực để thu hẹp khoảng cách giữa đào tạo và triển khai. ONNX là một định dạng mở giúp các mô hình trở nên độc lập với khuôn khổ và có thể triển khai trên nhiều nền tảng.

Hình 1 . ONNX giúp bạn dễ dàng sử dụng một mô hình được đào tạo trong một khuôn khổ và chạy nó trong một khuôn khổ khác.

Trong bài viết này, chúng ta sẽ xem xét kỹ hơn về tích hợp ONNX được hỗ trợ bởi Ultralytics và khám phá cách bạn có thể xuất khẩu YOLO11 mô hình triển khai linh hoạt, đa nền tảng.

Là gì ONNX Và ONNX Thời gian chạy?

Open Neural Network Exchange là một dự án nguồn mở xác định định dạng chuẩn cho các mô hình học máy. Được phát triển ban đầu bởi Microsoft và Facebook, nó cho phép các nhà phát triển đào tạo một mô hình trong một khuôn khổ, như PyTorch và chạy nó trong một cái khác, chẳng hạn như TensorFlow . Điều này làm cho quá trình phát triển AI linh hoạt hơn, mang tính cộng tác hơn và dễ tiếp cận hơn, đặc biệt là trong các lĩnh vực như thị giác máy tính.

ONNX cung cấp một tập hợp chung các toán tử và một định dạng tệp thống nhất, giúp dễ dàng di chuyển các mô hình giữa các công cụ, khung, thời gian chạy và trình biên dịch khác nhau. Thông thường, một mô hình được đào tạo trong một khung không dễ tương thích với một khung khác - nhưng với ONNX , bạn có thể xuất mô hình của mình một lần và triển khai nó ở hầu hết mọi nơi: trên CPU (Bộ xử lý trung tâm), GPU (Bộ xử lý đồ họa) , thiết bị di động hoặc phần cứng biên.

Cũng, ONNX Runtime là một công cụ suy luận hiệu suất cao được phát triển đặc biệt để chạy các mô hình trong ONNX định dạng. Nó được thiết kế để làm ONNX Các mô hình chạy nhanh hơn và hiệu quả hơn trên nhiều nền tảng khác nhau - bao gồm máy chủ, thiết bị di động và phần cứng biên. ONNX Thời gian chạy tương thích với các khuôn khổ phổ biến như PyTorch , TensorFlow , TensorFlow Lite và scikit-learn, giúp dễ dàng tích hợp vào nhiều quy trình công việc khác nhau và triển khai các mô hình ở bất cứ nơi nào cần.

Hình 2. ONNX Và ONNX Thời gian chạy cho phép triển khai mô hình đa nền tảng một cách linh hoạt.

Các tính năng chính của ONNX 

Trước khi chúng ta thảo luận về cách xuất YOLO11 sang ONNX định dạng, chúng ta hãy xem xét một số tính năng chính của ONNX định dạng mô hình. 

Cho dù bạn đang chuyển đổi giữa các công cụ, triển khai sang các thiết bị khác nhau hay nâng cấp hệ thống, ONNX giúp mọi thứ hoạt động trơn tru. Đây là những gì làm cho ONNX định dạng mô hình duy nhất:

  • Một định dạng chuẩn : ONNX sử dụng một cách phổ biến để mô tả cách xây dựng mô hình, như các lớp và hoạt động (hãy nghĩ về chúng như các khối xây dựng). Khi một mô hình được chuyển đổi thành ONNX , nó tuân theo tiêu chuẩn này để bất kỳ hệ thống nào hỗ trợ ONNX có thể hiểu và chạy được.
  • Khả năng tương thích ngược: Ngay cả khi ONNX tiếp tục cải thiện, nó đảm bảo rằng các mô hình cũ hơn vẫn hoạt động với các phiên bản mới hơn. Điều này có nghĩa là bạn không phải đào tạo lại hoặc xây dựng lại các mô hình của mình mỗi lần ONNX nhận được bản cập nhật.
  • Thiết kế mô hình dựa trên đồ thị: ONNX các mô hình được cấu trúc như đồ thị tính toán, trong đó mỗi nút biểu diễn một phép toán (như lớp hoặc hàm toán học) và các cạnh biểu thị luồng dữ liệu. Thiết kế dựa trên đồ thị này tạo điều kiện tích hợp với nhiều hệ thống khác nhau sử dụng các cấu trúc đồ thị tính toán tương tự.
  • Các công cụ thân thiện với nhà phát triển: Đi kèm với nhiều công cụ giúp bạn chuyển đổi, xác thực và tối ưu hóa các mô hình của mình. Các công cụ này đơn giản hóa quá trình di chuyển các mô hình giữa các khuôn khổ khác nhau và có thể tăng tốc triển khai - đặc biệt là đối với các ứng dụng thị giác máy tính.

Tổng quan về ONNX tích hợp

Xuất các mô hình YOLO Ultralytics như Ultralytics YOLO11 TRONG ONNX Định dạng này rất đơn giản và có thể thực hiện chỉ trong vài bước. 

Để bắt đầu, hãy cài đặt gói Ultralytics Python bằng trình quản lý gói như 'pip'. Có thể thực hiện bằng cách chạy lệnh “pip install ultralytics ” trong dấu nhắc lệnh hoặc terminal để bắt đầu.

Với Ultralytics package, bạn có thể dễ dàng đà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 - giúp toàn bộ quá trình nhanh hơn và hiệu quả hơn. Trong khi cài đặt, 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.

Một khi Ultralytics gói được cài đặt, bạn có thể tải và xuất YOLO11 mô hình để ONNX định dạng sử dụng mã bên dưới. Ví dụ này tải một YOLO11 mô hình (yolo11n.pt) và xuất nó dưới dạng ONNX tập tin (yolo11n. onnx ), giúp ứng dụng sẵn sàng triển khai trên nhiều nền tảng và thiết bị khác nhau.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="onnx") 

Sau khi chuyển đổi mô hình của bạn thành ONNX định dạng này, bạn có thể triển khai nó trên nhiều nền tảng khác nhau. 

Ví dụ dưới đây cho thấy cách tải tệp đã xuất YOLO11 mô hình (yolo11n. onnx ) và chạy suy luận với nó. Suy luận đơn giản có nghĩa là 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 URL của hình ảnh xe buýt để kiểm tra mô hình.

onnx_model = YOLO("yolo11n.onnx")

results = onnx_model("https://ultralytics.com/images/bus.jpg",save=True)

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. Chạy suy luận bằng cách sử dụng YOLO11 mô hình trên hình ảnh.

Khi nào bạn nên chọn ONNX tích hợp?

Các Ultralytics Python gói hỗ trợ xuất mô hình sang nhiều định dạng, bao gồm TorchScript , CoreML , TensorRT , Và ONNX . Vậy, tại sao lại chọn ONNX ?

Điều gì làm cho ONNX nổi bật là nó là một định dạng không phụ thuộc vào khuôn khổ. Trong khi nhiều định dạng xuất khác được gắn với các công cụ hoặc môi trường cụ thể, ONNX sử dụng định dạng chuẩn hóa và một bộ toán tử được chia sẻ. Điều này làm cho nó có tính di động cao, thân thiện với phần cứng và lý tưởng cho việc triển khai đa nền tảng - cho dù bạn đang làm việc với máy chủ đám mây, ứng dụng di động hay thiết bị biên. 

Dưới đây là một số lý do tại sao ONNX tích hợp có thể là sự lựa chọn lý tưởng cho bạn YOLO11 dự án:

  • Triển khai di động: Sau khi xuất sang ONNX , của bạn YOLO11 mô hình có thể được triển khai trên nhiều nền tảng khác nhau mà không cần thay đổi mã hoặc đào tạo lại.
  • Hỗ trợ toàn ngành: ONNX được hỗ trợ bởi các công ty và khuôn khổ AI lớn, khiến nó trở thành định dạng đáng tin cậy và được chấp nhận rộng rãi. Nó đảm bảo khả năng tương thích lâu dài, giống như cách PDF hoạt động trên nhiều thiết bị.
  • Phát triển tương lai: Sử dụng ONNX giúp bảo vệ các khoản đầu tư mô hình của bạn. Khi các công cụ phát triển, ONNX giúp các mô hình của bạn luôn phù hợp và hữu ích, ngay cả trong môi trường mới hoặc khác biệt.
  • Không bị ràng buộc bởi nhà cung cấp: Một số công cụ ràng buộc bạn chỉ được sử dụng hệ thống của họ, điều này có thể hạn chế những gì mô hình của bạn có thể làm. ONNX tránh điều đó bằng cách cho phép bạn chọn nền tảng phù hợp nhất với nhu cầu của mình, mà không bị mắc kẹt với một thiết lập duy nhất.

Ứng dụng của YOLO11 và ONNX định dạng mô hình

Tiếp theo, chúng ta hãy khám phá một số ứng dụng thực tế trong đó YOLO11 có thể được triển khai với sự giúp đỡ của ONNX sự tích hợp.

Theo dõi hàng tồn kho tại kho bằng cách sử dụng YOLO11

Trong các nhà kho bận rộn, rất khó để theo dõi mọi sản phẩm và gói hàng mọi lúc. Hệ thống thị giác máy tính có thể giúp nhân viên tìm sản phẩm trên kệ và có được thông tin chi tiết như số lượng sản phẩm, loại, v.v. Các hệ thống như vậy có thể hỗ trợ doanh nghiệp tự động quản lý hàng tồn kho khổng lồ của mình và tiết kiệm rất nhiều thời gian cho nhân viên kho.

Cụ thể, trong các kho thông minh , YOLO11 mô hình xuất khẩu sang ONNX có thể được sử dụng để xác định và đếm các mặt hàng theo thời gian thực bằng cách sử dụng máy ảnh và thiết bị biên. Mô hình được xuất có thể giúp quét các kệ hoặc pallet để phát hiện mức tồn kho, các mặt hàng bị thiếu hoặc các điểm trống. Vì xuất sang ONNX làm cho mô hình nhẹ và hiệu quả, nó có thể chạy trực tiếp trên các thiết bị biên nhỏ, chẳng hạn như camera thông minh, loại bỏ nhu cầu về máy chủ đắt tiền hoặc truy cập đám mây liên tục.

Hình 4. Một ví dụ về việc sử dụng YOLO11 để phát hiện và đếm các gói hàng.

Quản lý chất thải bệnh viện với YOLO11

Các bệnh viện trên khắp thế giới tạo ra một lượng lớn chất thải mỗi ngày, từ găng tay và ống tiêm đã qua sử dụng đến các thiết bị được sử dụng trong quá trình phẫu thuật (như các dụng cụ phẫu thuật dùng một lần hoặc bị ô nhiễm như kéo và dao mổ). Trên thực tế, nghiên cứu cho thấy các bệnh viện tạo ra khoảng 5 triệu tấn chất thải mỗi năm, tương đương với 29 pound chất thải trên một giường mỗi ngày. 

Việc phân loại rác thải đúng cách là điều cần thiết để đảm bảo vệ sinh, an toàn và tuân thủ các quy định. Với YOLO11 các mô hình xuất khẩu trong ONNX Định dạng này giúp bệnh viện có thể tự động hóa và giám sát việc xử lý chất thải theo thời gian thực.

Ví dụ, camera đặt gần thùng rác ở những khu vực như phòng phẫu thuật hoặc hành lang có thể theo dõi các vật dụng khi chúng bị vứt bỏ. Một tùy chỉnh YOLO11 mô hình, được đào tạo để nhận dạng các loại rác thải y tế khác nhau, có thể phân tích cảnh quay và xác định những gì đang bị vứt bỏ. Nếu một vật phẩm rơi vào thùng rác sai, như ống tiêm đã qua sử dụng trong thùng rác thông thường, hệ thống có thể được thiết lập để cảnh báo ngay cho nhân viên bằng đèn hoặc âm thanh, giúp ngăn ngừa ô nhiễm và đảm bảo tuân thủ.

Hình 5. Sử dụng YOLO11 để phát hiện dụng cụ y tế.

YOLO11 - bật chức năng giám sát cây trồng

Biết thời điểm thu hoạch mùa màng thích hợp có thể có tác động lớn đến chất lượng sản phẩm và năng suất chung của trang trại. Theo truyền thống, nông dân dựa vào kinh nghiệm và kiểm tra thủ công - nhưng với những tiến bộ gần đây trong công nghệ, điều đó đang bắt đầu thay đổi.

Bây giờ, với những cải tiến về thị giác máy tính như YOLO11 , xuất khẩu trong ONNX Định dạng này, nông dân có thể đưa tự động hóa và độ chính xác vào đồng ruộng. Bằng cách sử dụng máy bay không người lái hoặc máy ảnh gắn trên máy kéo hoặc cột, nông dân có thể chụp ảnh cây trồng của họ (như cà chua, táo hoặc lúa mì). YOLO11 sau đó có thể được sử dụng để phát hiện các chỉ số chính như màu sắc, kích thước và sự phân bố của cây trồng . Dựa trên thông tin này, nông dân có thể xác định xem cây trồng đã sẵn sàng để thu hoạch, vẫn đang chín hay đã qua thời kỳ đỉnh cao.

Hình 6 . YOLO11 có thể được sử dụng để phát hiện cây trồng trong cảnh quay bằng máy bay không người lái. 

ONNX những hạn chế cần xem xét

Trong khi ONNX mang lại nhiều lợi ích, chẳng hạn như tính di động, khả năng tương thích đa nền tảng và khả năng tương tác khung, nhưng có một số hạn chế cần lưu ý:​

  • Kích thước mô hình : Chuyển đổi mô hình thành ONNX định dạng đôi khi có thể dẫn đến kích thước tệp lớn hơn so với định dạng gốc của chúng. Các kỹ thuật như lượng tử hóa và cắt tỉa có thể giúp giảm thiểu vấn đề này bằng cách giảm kích thước mô hình mà không ảnh hưởng đáng kể đến hiệu suất.
  • Khả năng tương thích thời gian chạy: Mặc dù ONNX Runtime được thiết kế để tương thích đa nền tảng, hiệu suất và hỗ trợ có thể khác nhau giữa các phần cứng và hệ điều hành khác nhau. 
  • Thách thức gỡ lỗi: Gỡ lỗi ONNX các mô hình có thể phức tạp hơn so với các khuôn khổ gốc như PyTorch hoặc TensorFlow . Các thông báo lỗi có thể ít mô tả hơn, khiến việc xác định các vấn đề trở nên khó khăn hơn. Tuy nhiên, các công cụ như Netron để trực quan hóa mô hình và ONNX Khả năng ghi nhật ký của Runtime có thể hỗ trợ khắc phục sự cố.

Những điểm chính

Xuất khẩu Ultralytics YOLO11 ĐẾN ONNX giúp dễ dàng sử dụng mô hình thị giác máy tính đã được đào tạo và triển khai ở hầu hết mọi nơi - cho dù đó là trên máy tính xách tay, thiết bị di động hay thậm chí là máy ảnh thông minh nhỏ gọn. Với ONNX tích hợp, bạn không bị ràng buộc với một khuôn khổ hoặc nền tảng duy nhất, mang lại cho bạn sự linh hoạt để chạy mô hình của mình trong môi trường phù hợp nhất với ứng dụng của bạn. 

Điều này giúp quá trình chuyển đổi từ đào tạo sang triển khai thực tế nhanh hơn và hiệu quả hơn. Cho dù bạn đang theo dõi hàng tồn kho trong kho hay đảm bảo chất thải bệnh viện được xử lý đúng cách, thiết lập này giúp hệ thống chạy trơn tru hơn, giảm lỗi và tiết kiệm thời gian quý báu.

Bạn muốn tìm hiểu thêm về thị giác máy tính 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. Nếu bạn đang khám phá những đổi mới như AI trong sản xuấtthị giác máy tính trong ngành công nghiệp ô tô , hãy truy cập các trang giải pháp của chúng tôi để khám phá thêm. 

Biểu tượng LinkedInBiểu trưng TwitterLogo FacebookBiểu tượng sao chép liên kết

Đọc thêm trong danh mục này

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

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