Meet YOLO26: next-gen vision AI.

Link to this sectionXuất CoreML cho các model YOLO26#

Việc triển khai các model computer vision 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 của mình để thực hiện object detection 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.

Link to this sectionCoreML#

Apple CoreML deployment pipeline

CoreML là framework machine learning 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 định dạng model machine learning tích hợp mượt mà vào các ứng dụng iOS và hỗ trợ các tác vụ như phân tích hình ảnh, natural language processing, 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 dựa trên tính toán trực tiếp trên thiết bị (on-device computing). Đ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.

Link to this sectionCá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 machine learning 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 lập trình viê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

  • Machine Learning 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ụ 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 model trong khi vẫn duy trì accuracy.

  • Dễ dàng tích hợp: Cung cấp một định dạng thống nhất cho nhiều 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 các ứng dụng. Hỗ trợ các tác vụ chuyên biệt thông qua các framework như Vision và Natural Language.

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

Link to this sectionCác tùy chọn triển khai CoreML#

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

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

  • Triển khai trên thiết bị (On-Device Deployment): 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 để đảm bảo độ trễ thấp, tăng cường quyền riêng tư (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 là đối với các model lớn và phức tạp hơn, và nó có thể được thực hiện theo hai cách sau:

    • Model nhúng (Embedded Models): Các model này được đưa vào 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ừ server khi cần. Cách tiếp cận này phù hợp cho các model lớn hơn hoặc những model cần cập nhật định kỳ. Nó giúp giữ cho kích thước gói ứng dụng nhỏ hơn.

  • Triển khai dựa trên Cloud (Cloud-Based Deployment): Các model CoreML được lưu trữ trên server và được truy cập bởi ứng dụng iOS 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 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 cần 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.

Link to this sectionXuất các model YOLO26 sang CoreML#

Việc xuất YOLO26 sang CoreML cho phép thực hiện machine learning trên thiết bị đã được tối ưu hóa trong hệ sinh thái của Apple, mang lại những 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.

Link to this sectionCà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 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 để biết các giải pháp và mẹo.

Link to this sectionCách sử dụng#

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

Định dạng CoreML hỗ trợ các chế độ Export, PredictValidate. Suy luận và xác thực với CoreML chỉ chạy trên macOS. Hãy xuất model của bạn, sau đó tải model đã xuất để chạy suy luận hoặc xác thực độ chính xác của nó.

Export
from ultralytics import YOLO

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

# Export the model to CoreML format
model.export(format="coreml")  # creates 'yolo26n.mlpackage'
Predict
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Xác thực (Validate)
from ultralytics import YOLO

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

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionCác tham số xuất (Export Arguments)#

Đối sốKiểuMặc địnhMô tả
formatstr'coreml'Định dạng đích cho model đượ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 ảnh mong muốn cho đầu vào của model. Có thể là một số nguyên cho ảnh vuông hoặc một tuple (height, width) cho các kích thước cụ thể.
dynamicboolFalseCho phép kích thước đầu vào linh hoạt (dynamic), tăng tính linh hoạt trong việc xử lý các kích thước ảnh khác nhau.
halfboolFalseKích hoạt định lượng 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 các phần cứng được hỗ trợ.
int8boolFalseKích hoạt định lượng INT8, nén model hơn nữa và tăng tốc suy luận với mức giảm accuracy tối thiểu, chủ yếu dành cho các thiết bị biên (edge devices).
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 theo lô (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 trong 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 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 của Ultralytics về việc xuất model.

Link to this sectionTriển khai các model YOLO26 CoreML đã xuất#

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 các 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 và 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.

  • Tích hợp model Core ML vào ứng dụng của bạn: Hướng dẫn toàn diện về việc tích hợp model CoreML vào ứng dụng iOS, 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.

Link to this sectionTóm tắt#

Trong hướng dẫn này, chúng ta đã tìm hiểu 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 rất nhiều tài nguyên và thông tin giá trị ở đó.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionLàm thế nào để 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 rằng mình đã cài đặt gói ultralytics. 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 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.

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

CoreML cung cấp vô số 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ị: Cho phép suy luận model cục bộ trên thiết bị, đảm bảo data privacy 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 suất.
  • 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ụ machine learning 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 framework CoreML.

Để biết thêm chi tiết về việc tích hợp model CoreML của bạn 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.

Link to this sectionCác tùy chọn triển khai cho các model YOLO26 được xuất sang CoreML là gì?#

Sau khi 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ị (On-Device Deployment): 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 (Embedded Models): Được đưa vào gói ứng dụng, có thể truy cập ngay lập tức.
    • Model tải về (Downloaded Models): Được lấy từ server khi cần, giúp giữ kích thước gói ứng dụng nhỏ hơn.
  2. Triển khai dựa trên Cloud (Cloud-Based Deployment): Lưu trữ các model CoreML trên server 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.

Link to this sectionCoreML đả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 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 model: Cung cấp các công cụ để nén các model nhằm giảm dấu chân bộ nhớ 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.

Link to this sectionTô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 Cách sử dụng trong hướng dẫn xuất CoreML.

Bình luận