Bỏ để qua phần nội dung

CoreML Xuất khẩu cho YOLOv8 Mô hình

Triển khai các mô hình thị giác máy tính trên các thiết bị của Apple như iPhone và Mac đòi hỏi một định dạng đảm bảo hiệu suất liền mạch.

Các CoreML Định dạng xuất cho phép bạn tối ưu hóa Ultralytics YOLOv8 Các mô hình để phát hiện đối tượng hiệu quả trong iOS và các ứng dụng macOS. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn các bước để chuyển đổi mô hình của bạn sang CoreML định dạng, giúp các mô hình của bạn dễ dàng hoạt động tốt hơn trên các thiết bị Apple.

CoreML

CoreML Tổng quan

CoreML là khung học máy nền tảng của Apple được xây dựng dựa trên Accelerate, BNNS và Metal Performance Shader. Nó cung cấp một định dạng mô hình học máy tích hợp liền mạch vào iOS ứng dụng và hỗ trợ các tác vụ như phân tích hình ảnh, xử lý ngôn ngữ tự nhiên, chuyển đổi âm thanh thành văn bản và phân tích âm thanh.

Các ứng dụng có thể tận dụng Core ML mà không cần phải có kết nối mạng hoặc lệnh gọi API vì khung Core ML hoạt động bằng cách sử dụng điện toán trên thiết bị. Điều này có nghĩa là suy luận mô hình có thể được thực hiện cục bộ trên thiết bị của người dùng.

Các tính năng chính của CoreML Mô hình

Của Apple CoreML Framework cung cấp các tính năng mạnh mẽ cho máy học trên thiết bị. Dưới đây là các tính năng chính tạo nên CoreML Một công cụ mạnh mẽ cho các nhà phát triển:

  • Hỗ trợ mô hình toàn diện: Chuyển đổi và chạy các mô hình từ các khung phổ biến như TensorFlow, PyTorch, scikit-learn, XGBoost và LibSVM.

CoreML Mô hình được hỗ trợ

  • Học máy trên thiết bị: Đảm bảo quyền riêng tư dữ liệu và xử lý nhanh chóng bằng cách thực hiện các mô hình trực tiếp trên thiết bị của người dùng, loại bỏ nhu cầu kết nối mạng.

  • Hiệu suất và Tối ưu hóa: Sử dụng thiết bị CPU, GPUvà Neural Engine cho hiệu suất tối ưu với mức sử dụng năng lượng và bộ nhớ tối thiểu. Cung cấp các công cụ để nén và tối ưu hóa mô hình trong khi vẫn duy trì độ chính xác.

  • Dễ tích hợp: Cung cấp định dạng thống nhất cho các loại mô hình khác nhau và API thân thiện với người dùng để tích hợp liền mạch vào ứng dụng. Hỗ trợ các tác vụ dành riêng cho miền thông qua các khung như Tầm nhìn và Ngôn ngữ tự nhiên.

  • Tính năng nâng cao: Bao gồm các khả năng đào tạo trên thiết bị cho trải nghiệm được cá nhân hóa, dự đoán không đồng bộ cho trải nghiệm ML tương tác cũng như các công cụ kiểm tra và xác thực mô hình.

CoreML Tùy chọn triển khai

Trước khi chúng ta xem xét mã để xuất YOLOv8 mô hình cho CoreML định dạng, hãy hiểu ở đâu CoreML Mô hình thường được sử dụng.

CoreML Cung cấp các tùy chọn triển khai khác nhau cho các mô hình học máy, bao gồm:

  • Triển khai trên thiết bị: Phương pháp này tích hợp trực tiếp CoreML mô hình vào iOS App. Nó đặc biệt thuận lợi để đảm bảo độ trễ thấp, quyền riêng tư nâng cao (vì dữ liệu vẫn còn trên thiết bị) và chức năng ngoại tuyến. Tuy nhiên, cách tiếp cận này có thể bị hạn chế bởi khả năng phần cứng của thiết bị, đặc biệt là đối với các mẫu lớn hơn và phức tạp hơn. Triển khai trên thiết bị có thể được thực hiện theo hai cách sau.

    • Mô hình nhúng: Các mô hình này được bao gồm trong gói ứng dụng và có thể truy cập ngay lập tức. Chúng lý tưởng cho các mô hình nhỏ không yêu cầu cập nhật thường xuyên.

    • Mô hình đã tải xuống: Các mô hình này được tìm nạp từ máy chủ khi cần. Cách tiếp cận này phù hợp với các mô hình lớn hơn hoặc những người cần cập nhật thường xuyên. Nó giúp giữ cho kích thước gói ứng dụng nhỏ hơn.

  • Triển khai dựa trên đám mây: CoreML Các mô hình được lưu trữ trên máy chủ và được truy cập bởi iOS ứng dụng thông qua yêu cầu API. Tùy chọn có thể mở rộng và linh hoạt này cho phép cập nhật mô hình dễ dàng mà không cần sửa đổi ứng dụng. Nó lý tưởng cho các mô hình phức tạp hoặc ứng dụng quy mô lớn yêu cầu cập nhật thường xuyên. Tuy nhiên, nó yêu cầu kết nối internet và có thể gây ra các vấn đề về độ trễ và bảo mật.

Xuất khẩu YOLOv8 Mô hình để CoreML

Xuất khẩu YOLOv8 đến CoreML cho phép tối ưu hóa hiệu suất máy học trên thiết bị trong hệ sinh thái của Apple, mang lại lợi ích về hiệu quả, bảo mật và tích hợp liền mạch với iOS, nền tảng macOS, watchOS và tvOS.

Cài đặt

Để cài đặt gói yêu cầu, hãy chạy:

Cài đặt

# Install the required package for YOLOv8
pip install ultralytics

Để biết hướng dẫn chi tiết và các phương pháp hay nhất liên quan đến quá trình cài đặt, hãy kiểm tra YOLOv8 Hướng dẫn cài đặt. Trong khi cài đặt các gói cần thiết cho YOLOv8, nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo hướng dẫn Các vấn đề thường gặp của chúng tôi để biết các giải pháp và mẹo.

Sử dụng

Trước khi đi sâu vào hướng dẫn sử dụng, hãy chắc chắn kiểm tra phạm vi của YOLOv8 Mô hình được cung cấp bởi Ultralytics. Điều này sẽ giúp bạn chọn mô hình phù hợp nhất cho yêu cầu dự án của bạn.

Sử dụng

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to CoreML format
model.export(format="coreml")  # creates 'yolov8n.mlpackage'

# Load the exported CoreML model
coreml_model = YOLO("yolov8n.mlpackage")

# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to CoreML format
yolo export model=yolov8n.pt format=coreml  # creates 'yolov8n.mlpackage''

# Run inference with the exported model
yolo predict model=yolov8n.mlpackage source='https://ultralytics.com/images/bus.jpg'

Để biết thêm chi tiết về quy trình xuất, hãy truy cập Ultralytics trang tài liệu về xuất khẩu.

Triển khai xuất khẩu YOLOv8 CoreML Mô hình

Đã xuất thành công Ultralytics YOLOv8 mô hình để CoreML, giai đoạn quan trọng tiếp theo là triển khai các mô hình này một cách hiệu quả. Để được hướng dẫn chi tiết về việc triển khai CoreML Các mô hình trong các môi trường khác nhau, hãy xem các tài nguyên sau:

  • CoreML Công cụ: Hướng dẫn này bao gồm các hướng dẫn và ví dụ để chuyển đổi mô hình từ TensorFlow, PyTorchvà các thư viện khác cho Core ML.

  • ML và Tầm nhìn: Một bộ sưu tập các video toàn diện bao gồm các khía cạnh khác nhau của việc sử dụng và triển khai CoreML Mô hình.

  • Tích hợp Mô hình ML cốt lõi vào ứng dụng của bạn: Hướng dẫn toàn diện về cách tích hợp CoreML Mô hình thành một iOS ứng dụng, chi tiết các bước từ chuẩn bị mô hình đến triển khai nó trong ứng dụng cho các chức năng khác nhau.

Tóm tắt

Trong hướng dẫn này, chúng tôi đã xem qua cách xuất Ultralytics YOLOv8 mô hình để CoreML định dạng. Bằng cách làm theo các bước được nêu trong hướng dẫn này, bạn có thể đảm bảo khả năng tương thích và hiệu suất tối đa khi xuất YOLOv8 mô hình để CoreML.

Để biết thêm chi tiết về cách sử dụng, hãy truy cập CoreML Tài liệu chính thức.

Ngoài ra, nếu bạn muốn biết thêm về khác Ultralytics YOLOv8 Tích hợp, hãy truy cập trang hướng dẫn tích hợp của chúng tôi. Bạn sẽ tìm thấy nhiều tài nguyên và thông tin chi tiết có giá trị ở đó.

FAQ

Làm cách nào để xuất YOLOv8 mô hình để CoreML định dạng?

Để xuất Ultralytics YOLOv8 mô hình để CoreML , trước tiên bạn cần đảm bảo bạn có ultralytics gói cài đặt. Bạn có thể cài đặt nó bằng cách sử dụng:

Cài đặt

pip install ultralytics

Tiếp theo, bạn có thể xuất mô hình bằng cách sử dụng như sau Python hoặc CLI Lệnh:

Sử dụng

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(format="coreml")
yolo export model=yolov8n.pt format=coreml

Để biết thêm chi tiết, hãy tham khảo Xuất khẩu YOLOv8 Mô hình để CoreML trong tài liệu của chúng tôi.

Lợi ích của việc sử dụng là gì CoreML để triển khai YOLOv8 Mô hình?

CoreML Cung cấp nhiều lợi thế cho việc triển khai Ultralytics YOLOv8 các kiểu máy trên thiết bị Apple:

  • Xử lý trên thiết bị: Cho phép suy luận mô hình cục bộ trên thiết bị, đảm bảo quyền riêng tư dữ liệu và giảm thiểu độ trễ.
  • Tối ưu hóa hiệu suất: Tận dụng toàn bộ tiềm năng của thiết bị CPU, GPUvà Neural Engine, tối ưu hóa cả tốc độ và hiệu quả.
  • Dễ tích hợp: Cung cấp trải nghiệm tích hợp liền mạch với các hệ sinh thái của Apple, bao gồm iOS, macOS, watchOS và tvOS.
  • Tính linh hoạt: Hỗ trợ một loạt các tác vụ học máy như phân tích hình ảnh, xử lý âm thanh và xử lý ngôn ngữ tự nhiên bằng cách sử dụng CoreML khuôn khổ.

Để biết thêm chi tiết về cách tích hợp CoreML Mô hình thành một iOS ứng dụng, hãy xem hướng dẫn về Tích hợp mô hình ML cốt lõi vào ứng dụng của bạn.

Các tùy chọn triển khai để làm gì YOLOv8 Mô hình xuất khẩu sang CoreML?

Sau khi bạn xuất YOLOv8 Mô hình để CoreML , bạn có nhiều tùy chọn triển khai:

  1. Triển khai trên thiết bị: Tích hợp trực tiếp CoreML các mô hình vào ứng dụng của bạn để tăng cường quyền riêng tư và chức năng ngoại tuyến. Điều này có thể được thực hiện như:

    • Mô hình nhúng: Được bao gồm trong gói ứng dụng, có thể truy cập ngay lập tức.
    • Mô hình đã tải xuống: Tìm nạp từ máy chủ khi cần, giữ cho kích thước gói ứng dụng nhỏ hơn.
  2. Triển khai dựa trên đám mây: Máy chủ lưu trữ CoreML mô hình trên máy chủ và truy cập chúng thông qua các yêu cầu API. Cách tiếp cận này hỗ trợ cập nhật dễ dàng hơn và có thể xử lý các mô hình phức tạp hơn.

Để được hướng dẫn chi tiết về việc triển khai CoreML Mô hình, tham khảo CoreML Tùy chọn triển khai.

Làm thế nào CoreML Đảm bảo hiệu suất tối ưu cho YOLOv8 Mô hình?

CoreML Đảm bảo hiệu suất tối ưu cho Ultralytics YOLOv8 Mô hình bằng cách sử dụng các kỹ thuật tối ưu hóa khác nhau:

  • Tăng tốc phần cứng: Sử dụng thiết bị CPU, GPUvà Neural Engine để tính toán hiệu quả.
  • Nén mô hình: Cung cấp các công cụ để nén mô hình để giảm dấu chân của chúng mà không ảnh hưởng đến độ chính xác.
  • Suy luận thích ứng: Điều chỉnh suy luận dựa trên khả năng của thiết bị để duy trì sự cân bằng giữa tốc độ và hiệu suất.

Để biết thêm thông tin về tối ưu hóa hiệu suất, hãy truy cập CoreML Tài liệu chính thức.

Tôi có thể chạy suy luận trực tiếp với dữ liệu đã xuất không CoreML mẫu?

Có, bạn có thể chạy suy luận trực tiếp bằng cách sử dụng dữ liệu đã xuất CoreML mẫu. Dưới đây là các lệnh cho Python và CLI:

Chạy suy luận

from ultralytics import YOLO

coreml_model = YOLO("yolov8n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")
yolo predict model=yolov8n.mlpackage source='https://ultralytics.com/images/bus.jpg'

Để biết thêm thông tin, hãy tham khảo phần Sử dụng của CoreML Hướng dẫn xuất khẩu.



Đã tạo 2024-02-07, Cập nhật 2024-07-05
Tác giả: glenn-jocher (6), RizwanMunawar (1), abirami-vina (1)

Ý kiến