Chuyển đến nội dung

Xuất CoreML cho các Mô hình YOLO11

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



Xem: Cách Xuất Ultralytics YOLO11 sang CoreML để Suy Luận Nhanh Gấp 2 Lần trên Thiết Bị Apple 🚀

Định dạng xuất CoreML cho phép bạn tối ưu hóa các mô hình Ultralytics YOLO11 để phát hiện đối tượng hiệu quả trong các ứng dụng iOS và 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 định dạng CoreML, giúp các mô hình của bạn hoạt động tốt hơn trên các thiết bị Apple.

CoreML

Tổng quan về CoreML

CoreML là framework máy học nền tảng của Apple, được xây dựng dựa trên Accelerate, BNNS và Metal Performance Shaders. Nó cung cấp một định dạng mô hình máy học tích hợp liền mạch vào các ứng dụng iOS 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 kết nối mạng hoặc các lệnh gọi API vì framework 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 mô hình CoreML

Framework CoreML của Apple 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 khiến CoreML trở thành 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 framework phổ biến như TensorFlow, PyTorch, scikit-learn, XGBoost và LibSVM.

Các mô hình được CoreML hỗ trợ

  • Máy Học 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 thi 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 CPU, GPU và Neural Engine của thiết bị để có hiệu suất tối ưu với mức sử dụng điện nă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ễ Dàng Tích Hợp: Cung cấp một định dạng thống nhất cho nhiều loại mô hình khác nhau và một API thân thiện với người dùng để tích hợp liền mạch vào các ứng dụng. Hỗ trợ các tác vụ cụ thể theo miền thông qua các framework như Vision và Natural Language.

  • Các Tính Năng Nâng Cao: Bao gồm các khả năng đào tạo trên thiết bị để có 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 và các công cụ kiểm tra và xác thực mô hình.

Các tùy chọn triển khai CoreML

Trước khi xem xét code để xuất các mô hình YOLO11 sang định dạng CoreML, hãy tìm hiểu xem các mô hình CoreML thường được sử dụng ở đâu.

CoreML cung cấp nhiều tùy chọn triển khai khác nhau cho các mô hình máy học, 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 các mô hình CoreML vào ứng dụng iOS của bạn. Nó đặc biệt có lợi để đảm bảo độ trễ thấp, tăng cường quyền riêng tư (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ị giới hạn bởi khả năng phần cứng của thiết bị, đặc biệt đối với các mô hình 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.

    • Các Mô Hình Được 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.

    • Các Mô Hình Được 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 mô hình 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: Các mô hình CoreML được lưu trữ trên các máy chủ và được ứng dụng iOS truy cập thông qua các yêu cầu API. Tùy chọn linh hoạt và có khả năng mở rộng 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 cá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 mô hình YOLO11 sang CoreML

Xuất YOLO11 sang CoreML cho phép hiệu suất máy học trên thiết bị được tối ưu hóa 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 các nền tảng iOS, macOS, watchOS và tvOS.

Cài đặt

Để cài đặt gói cần thiết, hãy chạy:

Cài đặt

# Install the required package for YOLO11
pip install ultralytics

Để có hướng dẫn chi tiết và các phương pháp hay nhất liên quan đến quy trình cài đặt, hãy xem Hướng dẫn cài đặt YOLO11 của chúng tôi. Trong khi cài đặt các gói cần thiết cho YOLO11, nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo Hướng dẫn về 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.

Cách sử dụng

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

Cách sử dụng

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

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

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

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

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

Các đối số xuất

Đối số Loại Mặc định Mô tả
format str 'coreml' Dạng mục tiêu cho mô hình được xuất, xác định khả năng tương thích với các môi trường triển khai khác nhau.
imgsz int hoặc tuple 640 Kích thước hình ảnh mong muốn cho đầu vào của mô hình. Có thể là một số nguyên cho hình ảnh vuông hoặc một bộ giá trị (height, width) cho các kích thước cụ thể.
half bool False Cho phép lượng tử hóa FP16 (nửa độ chính xác), giảm kích thước mô hình và có khả năng tăng tốc độ suy luận trên phần cứng được hỗ trợ.
int8 bool False Kích hoạt lượng tử hóa INT8, nén thêm mô hình và tăng tốc độ suy luận với mức giảm độ chính xác tối thiểu, chủ yếu dành cho các thiết bị biên.
nms bool False Thêm Non-Maximum Suppression (NMS), rất cần thiết cho việc xử lý hậu kỳ phát hiện chính xác và hiệu quả.
batch int 1 Chỉ định kích thước suy luận theo lô của mô hình xuất hoặc số lượng hình ảnh tối đa mà mô hình đã xuất sẽ xử lý đồng thời ở chế độ predict chế độ.
device str None Chỉ định thiết bị để xuất: GPU (device=0), CPU (device=cpu), MPS cho Apple silicon (device=mps).

Mẹo

Vui lòng đảm bảo sử dụng máy macOS hoặc x86 Linux khi xuất sang CoreML.

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

Triển khai các mô hình CoreML YOLO11 đã xuất

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

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

  • ML và Vision: 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 các mô hình CoreML.

  • Tích hợp Mô hình CoreML vào Ứng dụng của Bạn: Hướng dẫn toàn diện về tích hợp mô hình CoreML vào ứng dụng iOS, trình bày 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 ta đã xem xét cách xuất các mô hình Ultralytics YOLO11 sang định dạng CoreML. 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 các mô hình YOLO11 sang CoreML.

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

Ngoài ra, nếu bạn muốn biết thêm về các tích hợp Ultralytics YOLO11 khác, 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 rất nhiều tài nguyên và thông tin chi tiết có giá trị ở đó.

Câu hỏi thường gặp

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

Để xuất Ultralytics YOLO11 các mô hình của bạn sang định dạng CoreML, trước tiên bạn cần đảm bảo rằng bạn đã cài đặt ultralytics gói. 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ác lệnh Python hoặc CLI sau:

Cách sử dụng

from ultralytics import YOLO

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

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

Sử dụng CoreML để triển khai các mô hình YOLO11 có những lợi ích gì?

CoreML cung cấp nhiều lợi thế để triển khai các mô hình Ultralytics YOLO11 trên các thiết bị của 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 tối đa tiềm năng của CPU, GPU và Neural Engine của thiết bị, tối ưu hóa cả tốc độ và hiệu quả.
  • Dễ dàng tích hợp: Cung cấp trải nghiệm tích hợp liền mạch với hệ sinh thái của Apple, bao gồm iOS, macOS, watchOS và tvOS.
  • Tính linh hoạt: Hỗ trợ nhiều tác vụ máy học như phân tích hình ảnh, xử lý âm thanh và xử lý ngôn ngữ tự nhiên bằng khung CoreML.

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

Các tùy chọn triển khai cho các mô hình YOLO11 đã xuất sang CoreML là gì?

Sau khi bạn xuất mô hình YOLO11 của mình sang định dạng 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 các mô hình CoreML 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ư sau:

    • 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 được tải xuống: Được tìm nạp từ máy chủ khi cần, giúp giảm kích thước gói ứng dụng.
  2. Triển khai trên nền tảng đám mây: Lưu trữ các mô hình CoreML trên máy chủ và truy cập chúng thông qua các yêu cầu API. Phương pháp 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ề cách triển khai các mô hình CoreML, hãy tham khảo Các tùy chọn triển khai CoreML.

CoreML đảm bảo hiệu suất tối ưu cho các mô hình YOLO11 như thế nào?

CoreML đảm bảo hiệu suất được tối ưu hóa cho các mô hình Ultralytics YOLO11 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 CPU, GPU và Neural Engine của thiết bị để 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 nhằm giảm dung lượng 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 tài liệu chính thức của CoreML.

Tôi có thể chạy suy luận trực tiếp với mô hình CoreML đã xuất không?

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

Chạy suy luận

from ultralytics import YOLO

coreml_model = YOLO("yolo11n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")
yolo predict model=yolo11n.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 hướng dẫn xuất CoreML.



📅 Đã tạo 1 năm trước ✏️ Cập nhật 24 ngày trước

Bình luận