Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay

Triển khai Ultralytics YOLO các mô hình sử dụng tích hợp ExecuTorch

Khám phá cách xuất khẩu Ultralytics YOLO các mô hình như Ultralytics YOLO11 để định dạng ExecuTorch cho hiệu quả, PyTorch -Triển khai gốc trên các thiết bị di động và biên.

Một số ứng dụng thị giác máy tính , như kiểm tra chất lượng tự động, máy bay không người lái tự động hoặc hệ thống an ninh thông minh, hoạt động tốt nhất khi Ultralytics YOLO Các mô hình, như Ultralytics YOLO11 , chạy gần cảm biến để chụp ảnh. Nói cách khác, các mô hình này cần xử lý dữ liệu trực tiếp tại nơi dữ liệu được tạo ra, trên camera, máy bay không người lái hoặc hệ thống nhúng, thay vì gửi dữ liệu lên đám mây. 

Phương pháp này, được gọi là AI biên (edge AI) , cho phép các mô hình thực hiện suy luận trực tiếp trên thiết bị nơi dữ liệu được thu thập. Bằng cách xử lý thông tin cục bộ thay vì dựa vào máy chủ từ xa, hệ thống có thể đạt được độ trễ thấp hơn, tăng cường quyền riêng tư dữ liệu và độ tin cậy cao hơn, ngay cả trong môi trường có kết nối internet hạn chế hoặc không có kết nối internet.

Ví dụ, một camera sản xuất kiểm tra hàng nghìn sản phẩm mỗi phút hoặc một máy bay không người lái điều hướng trong các môi trường phức tạp không thể chịu được sự chậm trễ đi kèm với xử lý đám mây. Đang chạy YOLO11 trực tiếp trên thiết bị cho phép suy luận tức thời trên thiết bị.

Để chạy Ultralytics YOLO các mô hình ở rìa dễ dàng hơn và hiệu quả hơn, tích hợp ExecuTorch mới được hỗ trợ bởi Ultralytics cung cấp một cách hợp lý để xuất và triển khai các mô hình trực tiếp đến các thiết bị di động và nhúng. ExecuTorch là một phần của PyTorch Hệ sinh thái biên và cung cấp giải pháp toàn diện để chạy các mô hình AI trực tiếp trên phần cứng di động và biên, bao gồm điện thoại, thiết bị đeo, bo mạch nhúng và bộ vi điều khiển.

Sự tích hợp này giúp dễ dàng thực hiện Ultralytics YOLO mô hình, chẳng hạn như YOLO11 , từ đào tạo đến triển khai trên các thiết bị biên. Bằng cách kết hợp YOLO11 khả năng tầm nhìn của 's với thời gian chạy nhẹ của ExecuTorch và PyTorch đường ống xuất khẩu, người dùng có thể triển khai các mô hình chạy hiệu quả trên phần cứng biên trong khi vẫn bảo toàn độ chính xác và hiệu suất của PyTorch -suy luận dựa trên.

Trong bài viết này, chúng ta sẽ xem xét kỹ hơn cách tích hợp ExecuTorch hoạt động, lý do tại sao nó phù hợp với các ứng dụng AI biên và cách bạn có thể bắt đầu triển khai Ultralytics YOLO mô hình với ExecuTorch. Hãy bắt đầu thôi!

ExecuTorch là gì?

Thông thường, khi bạn đào tạo một mô hình trong PyTorch , nó chạy trên các máy chủ mạnh mẽ hoặc Bộ xử lý đồ họa (GPU) trên đám mây. Tuy nhiên, việc triển khai cùng một mô hình đó trên thiết bị di động hoặc nhúng, chẳng hạn như điện thoại thông minh, máy bay không người lái hoặc vi điều khiển, đòi hỏi một giải pháp chuyên biệt có thể xử lý công suất tính toán, bộ nhớ và kết nối hạn chế.

Đó chính xác là những gì ExecuTorch mang lại. ExecuTorch là giải pháp toàn diện được phát triển như một phần của PyTorch Hệ sinh thái biên cho phép suy luận hiệu quả trên thiết bị trên các nền tảng di động, nhúng và biên. Nó mở rộng PyTorch khả năng vượt ra ngoài đám mây, cho phép các mô hình AI chạy trực tiếp trên các thiết bị cục bộ.

Mang lại PyTorch suy luận đến rìa

Về bản chất, ExecuTorch cung cấp một thời gian chạy C++ nhẹ cho phép PyTorch các mô hình để thực thi trực tiếp trên thiết bị. ExecuTorch sử dụng PyTorch Định dạng mô hình ExecuTorch (.pte), một định dạng xuất được tối ưu hóa để tải nhanh hơn, chiếm ít bộ nhớ hơn và cải thiện khả năng di động. 

Nó hỗ trợ XNNPACK làm phần phụ trợ mặc định cho Bộ xử lý trung tâm hiệu quả ( CPU ) suy luận và mở rộng khả năng tương thích trên nhiều loại phần cứng phụ trợ, bao gồm Core ML , Kim loại, Vulkan, Qualcomm, MediaTek, Arm EthosU, OpenVINO và những người khác. 

Các nền tảng này cho phép tăng tốc tối ưu trên các thiết bị di động, nhúng và thiết bị biên chuyên dụng. ExecuTorch cũng tích hợp với PyTorch đường ống xuất khẩu, cung cấp hỗ trợ cho các tính năng nâng cao như lượng tử hóa và xử lý hình dạng động để cải thiện hiệu suất và khả năng thích ứng trên các môi trường triển khai khác nhau.

Lượng tử hóa làm giảm kích thước mô hình và tăng tốc độ suy luận bằng cách chuyển đổi các giá trị có độ chính xác cao (chẳng hạn như số thực 32 bit) thành các giá trị có độ chính xác thấp hơn, trong khi xử lý hình dạng động được sử dụng để cho phép các mô hình xử lý hiệu quả các kích thước đầu vào biến đổi. Cả hai tính năng này đều rất quan trọng để chạy các mô hình AI trên các thiết bị biên có tài nguyên hạn chế.

Hình 1. Cách thức hoạt động của ExecuTorch ( Nguồn )

Một lớp thống nhất cho phần cứng biên

Ngoài thời gian chạy, ExecuTorch còn hoạt động như một lớp trừu tượng thống nhất cho nhiều backend phần cứng. Nói một cách đơn giản, nó trừu tượng hóa các chi tiết cụ thể của phần cứng và quản lý cách các mô hình tương tác với các đơn vị xử lý khác nhau, bao gồm CPU, GPU và Bộ xử lý thần kinh (NPU).

Sau khi xuất mô hình, ExecuTorch có thể được cấu hình để nhắm mục tiêu đến phần phụ trợ phù hợp nhất cho một thiết bị nhất định. Các nhà phát triển có thể triển khai mô hình hiệu quả trên nhiều phần cứng khác nhau mà không cần viết mã tùy chỉnh cho từng thiết bị hoặc duy trì các quy trình chuyển đổi riêng biệt.

Bởi vì thiết kế dạng mô-đun, di động và liền mạch PyTorch tích hợp, ExecuTorch là một lựa chọn tuyệt vời để triển khai các mô hình thị giác máy tính như Ultralytics YOLO11 cho các hệ thống di động và nhúng. Nó thu hẹp khoảng cách giữa đào tạo mô hình và triển khai thực tế, giúp AI biên nhanh hơn, hiệu quả hơn và dễ triển khai hơn.

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

Trước khi chúng ta xem xét cách xuất khẩu Ultralytics YOLO mô hình sang định dạng ExecuTorch, hãy cùng khám phá điều gì khiến ExecuTorch trở thành lựa chọn đáng tin cậy để triển khai AI tại biên.

Sau đây là cái nhìn tổng quan về một số tính năng chính của nó:

  • Hỗ trợ lượng tử hóa: ExecuTorch hỗ trợ lượng tử hóa mô hình, một kỹ thuật chuyển đổi các giá trị có độ chính xác cao thành các giá trị có độ chính xác thấp hơn để giảm kích thước mô hình và tăng tốc độ suy luận. Điều này giúp các mô hình chạy nhanh hơn và sử dụng ít bộ nhớ hơn trên các thiết bị biên trong khi vẫn duy trì độ chính xác gần như tương đương.
  • Sử dụng bộ nhớ hiệu quả: Một trong những ưu điểm lớn nhất của ExecuTorch là cách nó xử lý bộ nhớ. Thay vì dựa vào phân bổ bộ nhớ động, vốn có thể gây ra độ trễ và lãng phí điện năng, ExecuTorch sử dụng cơ chế lập kế hoạch bộ nhớ trước thời hạn (Ahead-of-Time - AOT). Trong quá trình xuất, nó phân tích đồ thị mô hình và tính toán trước dung lượng bộ nhớ cần thiết cho mỗi thao tác. Điều này cho phép bộ chạy thực thi các mô hình bằng cách sử dụng một kế hoạch bộ nhớ tĩnh, đảm bảo hiệu suất có thể dự đoán được và ngăn ngừa tình trạng chậm hoặc sập nguồn trên các thiết bị có RAM hoặc dung lượng xử lý hạn chế.
  • Siêu dữ liệu mô hình tích hợp : Khi xuất bằng cách sử dụng tích hợp được hỗ trợ bởi Ultralytics Mỗi mô hình đều bao gồm một tệp YAML chứa siêu dữ liệu quan trọng như kích thước ảnh đầu vào, tên lớp và tham số cấu hình. Tệp bổ sung này giúp đơn giản hóa việc tích hợp mô hình vào nhiều ứng dụng khác nhau và đảm bảo hoạt động nhất quán trên các nền tảng biên khác nhau.

Cách xuất khẩu Ultralytics YOLO mô hình sang định dạng ExecuTorch

Bây giờ chúng ta đã hiểu rõ hơn về những gì ExecuTorch cung cấp, hãy cùng tìm hiểu cách xuất Ultralytics YOLO mô hình sang định dạng ExecuTorch.

Bước 1: Cài đặt Ultralytics Python bưu kiện

Để bắt đầu, bạn cần cài đặt gói Ultralytics Python bằng pip, một trình cài đặt gói. Bạn có thể thực hiện việc này bằng cách chạy lệnh "pip install" ultralytics ” trong terminal hoặc dấu nhắc lệnh của bạn. 

Nếu bạn đang làm việc trong Jupyter Notebook hoặc Google Môi trường Colab, chỉ cần thêm dấu chấm than trước lệnh, như "!pip install ultralytics ". Sau khi cài đặt, Ultralytics gói cung cấp tất cả các công cụ bạn cần để đào tạo, kiểm tra và xuất các mô hình thị giác máy tính, bao gồm Ultralytics YOLO11 .

Nếu bạn gặp bất kỳ vấn đề nào trong quá trình cài đặt hoặc khi xuất mô hình của mình, hãy liên hệ với chính thức Ultralytics tài liệu hướng dẫn và các vấn đề thường gặp có các bước khắc phục sự cố chi tiết và các biện pháp tốt nhất để giúp bạn vận hành trơn tru.

Bước 2: Xuất Ultralytics YOLO11

Sau khi cài đặt Ultralytics gói, bạn có thể tải một biến thể của YOLO11 mô hình và xuất nó sang định dạng ExecuTorch. Ví dụ: bạn có thể sử dụng một mô hình được đào tạo trước như "yolo11n.pt" và xuất nó bằng cách gọi hàm xuất với định dạng được đặt thành "executorch". 

Thao tác này sẽ tạo ra một thư mục có tên “yolo11n_executorch_model”, bao gồm tệp mô hình được tối ưu hóa (.pte) và một tệp YAML siêu dữ liệu riêng biệt chứa các thông tin chi tiết quan trọng như kích thước hình ảnh và tên lớp.

Sau đây là mã để xuất mô hình của bạn:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="executorch")

Bước 3: Chạy suy luận sau khi xuất mô hình

Sau khi xuất, mô hình đã sẵn sàng để triển khai trên các thiết bị biên và di động bằng ExecuTorch runtime. Tệp mô hình .pte đã xuất có thể được tải vào ứng dụng của bạn để chạy suy luận thời gian thực trên thiết bị mà không cần kết nối đám mây.

Ví dụ, đoạn mã dưới đây cho thấy cách tải mô hình đã xuất và chạy suy luận. Suy luận đơn giản có nghĩa là sử dụng một mô hình đã được đào tạo để đưa ra dự đoán dựa trên dữ liệu mới. Ở đây, mô hình được kiểm tra trên hình ảnh một xe buýt lấy từ một URL công khai.

mô hình thực thi = YOLO ("yolo11n_executorch_model")

kết quả = executorch_model.predict("https:// ultralytics .com/images/bus.jpg", lưu = Đúng)

Sau khi chạy mã, bạn sẽ tìm thấy hình ảnh đầu ra với các đối tượng được phát hiện được lưu trong thư mục “runs/ detect thư mục “/predict”. 

Hình 2. Phát hiện các đối tượng bằng cách sử dụng YOLO11 mô hình ở định dạng ExecuTorch.

Lợi ích của việc sử dụng tích hợp ExecuTorch

Trong khi khám phá các tùy chọn xuất khẩu khác nhau được hỗ trợ bởi Ultralytics , bạn có thể tự hỏi điều gì làm nên sự độc đáo của tích hợp ExecuTorch. Điểm khác biệt chính là khả năng kết hợp hiệu suất, tính đơn giản và tính linh hoạt, giúp dễ dàng triển khai các mô hình AI mạnh mẽ trực tiếp trên thiết bị di động và thiết bị biên.

Sau đây là một số lợi ích chính khi sử dụng tích hợp ExecuTorch:

  • Tùy chọn triển khai linh hoạt: Các mô hình ExecuTorch có thể được triển khai trên các ứng dụng di động, hệ thống nhúng, thiết bị IoT (Internet vạn vật) và phần cứng AI biên chuyên dụng. Tính linh hoạt này cho phép các nhà phát triển xây dựng các giải pháp AI có khả năng mở rộng, hoạt động ổn định trên nhiều nền tảng và môi trường khác nhau.
  • Hiệu suất được chứng minh bằng chuẩn mực: Các thử nghiệm trên các thiết bị như Raspberry Pi 5 cho thấy rằng YOLO11 các mô hình được xuất sang định dạng ExecuTorch chạy nhanh hơn khoảng 2 lần so với PyTorch các đối tác, với độ chính xác gần như giống hệt nhau.
  • API tích hợp linh hoạt: ExecuTorch cung cấp API C++, Kotlin và Objective-C cho iOS , Android và Linux nhúng, cho phép các nhà phát triển tích hợp YOLO mô hình trực tiếp vào ứng dụng gốc.
  • Hỗ trợ tăng tốc phần cứng: ExecuTorch hỗ trợ nhiều nền tảng tăng tốc phần cứng, bao gồm Vulkan và Metal cho GPU di động, với tùy chọn tích hợp cho OpenCL và các API riêng của nhà cung cấp khác. Nó cũng có thể tận dụng các bộ tăng tốc chuyên dụng như NPU và DSP để đạt được tốc độ đáng kể. CPU -chỉ suy luận.

Ứng dụng thực tế của YOLO11 và xuất ExecuTorch

Gần đây, Ultralytics được công nhận là câu chuyện thành công PyTorch ExecuTorch , nêu bật sự hỗ trợ ban đầu của chúng tôi cho suy luận trên thiết bị và những đóng góp liên tục cho PyTorch hệ sinh thái. Sự công nhận này phản ánh mục tiêu chung là làm cho AI hiệu suất cao dễ tiếp cận hơn trên nền tảng di động và biên.

Từ đám mây đến biên: Cách ExecuTorch và YOLO11 đưa Vision AI vào cuộc sống

Trên thực tế, giải pháp này trông giống như các giải pháp AI thị giác thực tế, hoạt động hiệu quả trên mọi thiết bị, từ điện thoại thông minh đến hệ thống nhúng. Ví dụ, trong sản xuất, các thiết bị biên đóng vai trò quan trọng trong việc giám sát dây chuyền sản xuất và phát hiện lỗi theo thời gian thực.

Hình 3. Một ví dụ về việc sử dụng YOLO11 để phân tích một dây chuyền lắp ráp sản xuất. ( Nguồn )

Thay vì gửi hình ảnh hoặc dữ liệu cảm biến lên đám mây để xử lý, điều này có thể gây ra sự chậm trễ và phụ thuộc vào kết nối internet, tích hợp ExecuTorch cho phép YOLO11 các mô hình chạy trực tiếp trên phần cứng cục bộ. Điều này có nghĩa là các nhà máy có thể detect giải quyết các vấn đề về chất lượng ngay lập tức, giảm thời gian ngừng hoạt động và duy trì quyền riêng tư dữ liệu, đồng thời vận hành với tài nguyên tính toán hạn chế.

Dưới đây là một số ví dụ khác về cách tích hợp ExecuTorch và Ultralytics YOLO các mô hình có thể được áp dụng:

  • Thành phố thông minh: Bằng cách chạy YOLO11 Với mô hình cục bộ ExecuTorch, các thành phố có thể đưa ra quyết định nhanh hơn dựa trên dữ liệu, từ phát hiện tắc đường đến xác định mối nguy hiểm, cải thiện khả năng di chuyển và an toàn tổng thể.
  • Bán lẻ và kho bãi: Với suy luận trên thiết bị, các nhà bán lẻ có thể tự động hóa việc giám sát kệ hàng, track kiểm kê và kiểm tra các gói hàng một cách nhanh chóng và an toàn mà không cần dựa vào kết nối đám mây.
  • Robot và máy bay không người lái : Tối ưu hóa cạnh YOLO11 Các mô hình cho phép robot và máy bay không người lái nhận dạng vật thể, định hướng môi trường và đưa ra quyết định theo thời gian thực ngay cả khi không có kết nối internet.

Hình 4. Phát hiện và đếm xe ô tô trong giao thông bằng cách sử dụng YOLO11 ( Nguồn )

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

Xuất khẩu Ultralytics YOLO Việc chuyển đổi mô hình sang định dạng ExecuTorch giúp dễ dàng triển khai các mô hình thị giác máy tính trên nhiều thiết bị, bao gồm điện thoại thông minh, máy tính bảng và các hệ thống nhúng như Raspberry Pi. Điều này có nghĩa là có thể chạy suy luận trên thiết bị được tối ưu hóa mà không cần dựa vào kết nối đám mây, cải thiện tốc độ, quyền riêng tư và độ tin cậy.

Cùng với ExecuTorch, Ultralytics hỗ trợ nhiều loại tích hợp, bao gồm TensorRT , OpenVINO , CoreML và hơn thế nữa, mang đến cho các nhà phát triển sự linh hoạt để chạy mô hình của họ trên nhiều nền tảng. Khi việc áp dụng Vision AI ngày càng tăng, những tích hợp này sẽ đơn giản hóa việc triển khai các hệ thống thông minh được xây dựng để hoạt động hiệu quả trong điều kiện thực tế.

Bạn tò mò về AI? Hãy xem kho lưu trữ GitHub của chúng tôi, tham gia cộng đồng của chúng tôi và khám phá các tùy chọn cấp phép để khởi động dự án Vision AI của bạn. Tìm hiểu thêm về các đổi mới như AI trong bán lẻthị giác máy tính trong hậu cần bằng cách truy cập 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í