Chuyển đến nội dung

Xuất CoreML cho Mô hình YOLO26

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 YOLO26 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 YOLO26 của mình để detect đố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 sang định dạng CoreML, giúp mô hình của bạn hoạt động tốt hơn trên các thiết bị Apple.

CoreML

Quả táo CoreML quy trình triển khai

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 gọi API vì framework Core ML hoạt động bằng cách tính 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.

CoreML hỗ trợ các khung học sâu

  • 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 chúng ta xem xét mã để xuất các mô hình YOLO26 sang định dạng CoreML, hãy cùng tìm hiểu nơi các mô hình CoreML thường được sử dụng.

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, quyền riêng tư 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ị 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, và nó 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 YOLO26 sang CoreML

Việc xuất YOLO26 sang CoreML cho phép hiệu suất học máy tối ưu hóa, 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 cần thiết, 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 hay nhất liên quan đến quá trình cài đặt, hãy xem hướng dẫn cài đặt YOLO26 của chúng tôi. Trong quá trình 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 đảm bảo kiểm tra các mô hình YOLO26 đượ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 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")
# Export a YOLO26n PyTorch model to CoreML format
yolo export model=yolo26n.pt format=coreml # creates 'yolo26n.mlpackage'

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

Các đối số xuất

Đối sốLoạiMặc địnhMô tả
formatstr'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.
imgszint hoặc tuple640Kí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ể.
halfboolFalseCho 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ợ.
int8boolFalseKí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.
nmsboolFalseThêm Non-Maximum Suppression (NMS), cần thiết cho quá trình hậu xử lý detect chính xác và hiệu quả.
batchint1Chỉ đị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ế độ.
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 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 Mô hình CoreML YOLO26 đã xuất

Sau khi đã xuất thành công các mô hình Ultralytics YOLO26 của bạn sang 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 các mô hình CoreML trong các môi trường khác nhau, hãy tham khảo các tài nguyên sau:

Tóm tắt

Trong hướng dẫn này, chúng tôi đã trình bày cách xuất các mô hình 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 mô hình 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 tìm hiểu thêm về các tích hợp Ultralytics YOLO26 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ị tại đó.

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

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

Để xuất Ultralytics YOLO26 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("yolo26n.pt")
model.export(format="coreml")
yolo export model=yolo26n.pt format=coreml

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

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

CoreML mang lại nhiều lợi thế khi triển khai các mô hình Ultralytics YOLO26 trên các 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 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ề việc 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 mô hình YOLO26 đã xuất sang CoreML là gì?

Sau khi bạn xuất mô hình YOLO26 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 YOLO26 như thế nào?

CoreML đảm bảo hiệu suất tối ưu cho các mô hình Ultralytics YOLO26 bằng cách sử dụng nhiều 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("yolo26n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")
yolo predict model=yolo26n.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.



📅 Được tạo 1 năm trước ✍️ Cập nhật 5 ngày trước
glenn-jocherRizwanMunawarlakshanthadUltralyticsAssistantY-T-Gwillie.maddox@gmail.comlakshanthadMatthewNoyceRizwanMunawarabirami-vina

Bình luận