Xuất CoreML cho các model YOLO26

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



Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀

Định dạng xuất CoreML cho phép bạn tối ưu hóa các model Ultralytics YOLO26 để 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ẽ chỉ cho bạn các bước để chuyển đổi model sang định dạng CoreML, giúp model của bạn hoạt động tốt hơn trên các thiết bị Apple.

CoreML

Apple CoreML deployment pipeline

CoreML là framework 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 Shaders. Nó cung cấp một định dạng model học máy 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 sang 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 gọi API vì framework Core ML hoạt động dựa trên tính toán tại thiết bị. Điều này có nghĩa là suy luận (inference) model 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 các model CoreML

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

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

CoreML supported deep learning frameworks

  • 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 thi model 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ị để đạt hiệu suất tối ưu với mức tiêu thụ đ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 model trong khi vẫn duy trì độ chính xác.

  • Dễ dàng tích hợp: Cung cấp định dạng thống nhất cho các loại model 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ụ chuyên biệt theo miền thông qua các framework như Vision và Natural Language.

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

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

Trước khi xem mã nguồn để xuất các model YOLO26 sang định dạng CoreML, hãy tìm hiểu xem các model CoreML thường được sử dụng ở đâu.

CoreML cung cấp nhiều tùy chọn triển khai cho các model học máy, bao gồm:

  • Triển khai trên thiết bị (On-Device): Phương pháp này tích hợp trực tiếp các model CoreML vào ứng dụng iOS của bạn. Nó đặc biệt có lợi cho việc đảm bảo độ trễ thấp, quyền riêng tư được nâng cao (vì dữ liệu vẫn nằm 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 đối với các model lớn và phức tạp hơn, và có thể được thực hiện theo hai cách sau:

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

    • Model tải về (Downloaded Models): Các model này được lấy từ máy chủ khi cần. Cách tiếp cận này phù hợp với các model lớn hơn hoặc những model cần cập nhật thường xuyên. Nó giúp giữ kích thước gói ứng dụng nhỏ hơn.

  • Triển khai dựa trên Cloud: Các model CoreML được lưu trữ trên 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 có khả năng mở rộng và linh hoạt này cho phép cập nhật model dễ dàng mà không cần sửa đổi ứng dụng. Nó lý tưởng cho các model 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 các model YOLO26 sang CoreML

Việc xuất YOLO26 sang CoreML cho phép hiệu suất học máy tối ưu 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 các nền tảng iOS, 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 YOLO26
pip install ultralytics

Để biết hướng dẫn chi tiết và các phương pháp tốt nhất liên quan đến quy trình cài đặt, hãy xem hướng dẫn cài đặt YOLO26 của chúng tôi. Trong khi cài đặt các gói cần thiết cho YOLO26, 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 để tìm 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 loạt mô hình YOLO26 được 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 dự án của mình.

Cách sử dụng
from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

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

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

# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")

Các đối số Xuất

Đối sốLoạiMặc địnhMô tả
formatstr'coreml'Định dạng mục tiêu cho model đã 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.
imgszint hoặc tuple640Kích thước hình ảnh mong muốn cho đầu vào của model. Có thể là một số nguyên cho hình ảnh vuông hoặc một tuple (height, width) cho các kích thước cụ thể.
dynamicboolFalseCho phép các kích thước đầu vào động, tăng cường tính linh hoạt trong việc xử lý các kích thước hình ảnh khác nhau.
halfboolFalseKích hoạt lượng tử hóa FP16 (độ chính xác một nửa), giảm kích thước model và có khả năng tăng tốc suy luận trên phần cứng được hỗ trợ.
int8boolFalseKích hoạt lượng tử hóa INT8, nén model thêm nữa 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 cho các thiết bị biên.
nmsboolFalseThêm Non-Maximum Suppression (NMS), cần thiết cho việc hậu xử lý phát hiện chính xác và hiệu quả.
batchint1Chỉ định kích thước suy luận batch của model xuất hoặc số lượng ảnh tối đa mà model xuất sẽ xử lý đồng thời ở chế độ predict.
devicestrNoneChỉ đị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 Linux x86 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 model.

Triển khai các model YOLO26 đã xuất sang CoreML

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

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

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

  • Integrating a Core ML Model into Your App: Hướng dẫn toàn diện về việc tích hợp model CoreML vào ứng dụng iOS, nêu chi tiết các bước từ chuẩn bị model đến triển khai vào ứng dụng cho nhiều chức năng khác nhau.

Tóm tắt

Trong hướng dẫn này, chúng tôi đã đi qua cách xuất các model Ultralytics YOLO26 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 model YOLO26 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 khác của Ultralytics YOLO26, 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 giá trị ở đó.

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

Làm cách nào để tôi xuất các model YOLO26 sang định dạng CoreML?

Để xuất các model Ultralytics YOLO26 của bạn sang định dạng CoreML, trước tiên bạn cần đảm bảo đã cài đặt gói ultralytics. Bạn có thể cài đặt nó bằng cách:

Cài đặt
pip install ultralytics

Tiếp theo, bạn có thể xuất model bằng các lệnh Python hoặc CLI sau:

Cách sử dụng
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="coreml")

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

Các lợi ích của việc sử dụng CoreML để triển khai các model YOLO26 là gì?

CoreML cung cấp nhiều lợi ích cho việc triển khai các model Ultralytics YOLO26 trên các thiết bị Apple:

  • Xử lý trên thiết bị (On-device Processing): Cho phép suy luận model 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 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: Mang lại 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ợ nhiều 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 framework CoreML.

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

Các tùy chọn triển khai cho các model YOLO26 đã xuất sang CoreML là gì?

Sau khi bạn xuất model YOLO26 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 model 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 dưới dạng:

    • Model nhúng: Được bao gồm trong gói ứng dụng, có thể truy cập ngay lập tức.
    • Model tải về: Được lấy từ máy chủ khi cần, giúp kích thước gói ứng dụng nhỏ hơn.
  2. Triển khai dựa trên Cloud: Lưu trữ các model CoreML 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 model phức tạp hơn.

Để biết hướng dẫn chi tiết về việc triển khai các model 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 model YOLO26 như thế nào?

CoreML đảm bảo hiệu suất tối ưu cho các model Ultralytics YOLO26 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 model: Cung cấp các công cụ để nén model nhằm giảm dung lượng mà không ảnh hưởng đến độ chính xác.
  • Suy luận thích ứng (Adaptive Inference): Đ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 model CoreML đã xuất không?

Có, bạn có thể chạy suy luận trực tiếp bằng model 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("yolo26n.mlpackage")
results = coreml_model("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.

Bình luận