Meet YOLO26: next-gen vision AI.

Link to this sectionXuất CoreML cho các mô hình YOLO26#

Apple tích hợp silicon AI chuyên dụng — Neural Engine — vào mọi thiết bị iPhone, iPad và Mac hiện đại, và CoreML là cách duy nhất để lập trình cho nó. Việc xuất các mô hình Ultralytics YOLO26 sang CoreML sẽ chuyển đổi checkpoint .pt đã huấn luyện thành tệp .mlpackage gốc, chạy tất cả sáu tác vụ YOLO trên thiết bị với độ trễ chỉ trong vài mili giây, không cần kết nối mạng và không có dữ liệu nào rời khỏi thiết bị.

Chạy YOLO trên Apple Neural Engine ngay hôm nay với các ứng dụng di động chính thức

Bộ SDK Ultralytics YOLO iOSplugin Flutter chính thức hỗ trợ xuất CoreML chạy trên Apple Neural Engine ngay khi cài đặt — suy luận camera thời gian thực, dự đoán hình ảnh đơn lẻ và tự động tải xuống mô hình cho tất cả sáu tác vụ YOLO26. Đối với triển khai NPU trên Android, hãy xem tích hợp Qualcomm QNN.



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

Link to this sectionCoreML là gì?#

Apple CoreML deployment pipeline

CoreML (được Apple viết là "Core ML") là framework machine learning trên thiết bị của Apple. Nó tải các mô hình theo định dạng ML Program hiện đại — gói .mlpackage do trình xuất của Ultralytics tạo ra — và lên lịch chạy chúng trên CPU, GPU và Apple Neural Engine (ANE) của thiết bị, một NPU chuyên dụng trong mọi chip silicon của Apple. Vì mọi thứ đều chạy cục bộ, việc suy luận hoạt động ngoại tuyến, không gây độ trễ mạng và giữ dữ liệu người dùng trên thiết bị.

CoreML tích hợp trực tiếp với Vision framework của Apple, giúp xử lý việc thay đổi tỷ lệ và hướng ảnh trước khi đưa vào mô hình — đây là cách SDK Ultralytics iOS truyền khung hình camera cho YOLO với chi phí tiền xử lý gần như bằng không.

Link to this sectionTại sao nên xuất YOLO26 sang CoreML?#

  • Tốc độ Neural Engine: Phát hiện YOLO26n chạy từ đầu đến cuối trong 3.8 ms trên iPhone 17 Pro cho hình ảnh đơn lẻ, và ~16 ms/khung hình khi sử dụng camera thời gian thực liên tục (xem bảng và các lưu ý bên dưới) — đảm bảo thời gian thực với hiệu năng dự phòng cho phần còn lại của ứng dụng của bạn.
  • Theo thiết kế, không cần NMS: YOLO26 là end-to-end, do đó đồ thị xuất ra không cần pipeline NMS và quá trình giải mã chỉ mất chưa đến một mili giây. Các model cũ hơn như YOLO11 có thể nhúng pipeline NMS của CoreML với nms=True.
  • Riêng tư và ngoại tuyến: Mọi tính toán đều ở trên thiết bị — không có yêu cầu gửi dữ liệu lên đám mây, không cần khóa API, đảm bảo đầy đủ quyền riêng tư dữ liệu.
  • Một lần xuất, toàn bộ hệ sinh thái: Cùng một tệp .mlpackage chạy trên iOS, iPadOS, macOS, watchOS, tvOS và visionOS, đồng thời hỗ trợ SDK iOSplugin Flutter chính thức của Ultralytics.

Link to this sectionHiệu suất đo lường#

Suy luận hình ảnh đơn lẻ end-to-end cho các mô hình CoreML INT8 YOLO26n chính thức trên iPhone 17 Pro (Apple A19, iOS 26.5). Mỗi ô hiển thị tổng thời gian (tiền xử lý + suy luận + hậu xử lý, không bao gồm chú thích) với sự phân tách theo từng giai đoạn bên dưới. Trên iOS, Vision thực hiện thay đổi tỷ lệ đầu vào trong yêu cầu suy luận, vì vậy tiền xử lý được báo cáo là 0 và chi phí của nó đã được bao gồm trong suy luận.

Mô hìnhTác vụkích thước
(pixel)
CPU
.cpuOnly
(ms)
Neural Engine
.cpuAndNeuralEngine
(ms)
YOLO26nDetect6409.1
0.0 / 9.1 / 0.0
3.8
0.0 / 3.8 / 0.0
YOLO26n-segSegment64012.3
0.0 / 12.1 / 0.2
4.8
0.0 / 4.5 / 0.3
YOLO26n-semNgữ nghĩa1024121.8
0.0 / 21.0 / 0.8
12.1
0.0 / 11.3 / 0.8
YOLO26n-clsClassify2242.2
0.0 / 2.2 / 0.0
2.0
0.0 / 2.0 / 0.0
YOLO26n-posePose64012.0
0.0 / 11.9 / 0.0
3.8
0.0 / 3.8 / 0.0
YOLO26n-obbOBB102421.7
0.0 / 21.7 / 0.0
7.2
0.0 / 7.2 / 0.0
  • 1 Các bản xuất Semantic CoreML nhúng ArgMax vào đồ thị và trả về bản đồ phân loại độ phân giải đầy đủ nhỏ gọn ([1, 1024, 1024]) thay vì các float logits, do đó quá trình hậu xử lý chỉ là quét màu dưới một mili giây và các mask hiển thị sắc nét từng pixel.
  • Các giá trị Speedđộ trễ khi xử lý đơn ảnh — trung bình của 15 lần chạy sau 3 lần chạy khởi động trên bus.jpg, được đo thông qua cơ chế tính thời gian theo từng giai đoạn của iOS SDK thông qua công cụ benchmark của Flutter plugin ở chế độ profile (mã nguồn native đã tối ưu hóa). Hoạt động camera theo thời gian thực ổn định có tốc độ cao hơn (thực hiện letterboxing trên toàn cảm biến cho mỗi khung hình cộng với ổn định nhiệt): YOLO26n detect đo được ~16 ms/khung hình trong ứng dụng camera thực tế trên cùng thiết bị — xem tài liệu hiệu năng iOS SDK để biết thêm về profiling trạng thái ổn định.
  • Bảng so khớp CPU/GPU/NPU Snapdragon có trong tích hợp Qualcomm QNN.

Link to this sectionXuất các mô hình YOLO26 sang CoreML#

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

Bộ chuyển đổi coremltools được cài đặt tự động trong lần xuất đầu tiên. Xuất chạy trên macOS hoặc Linux x86; để biết hướng dẫn chi tiết và các phương pháp hay nhất, hãy xem hướng dẫn cài đặthướng dẫn các vấn đề phổ biến của chúng tôi.

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

Đị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 mô hình của bạn, sau đó tải mô hình đã xuất để chạy suy luận hoặc xác thực độ chính xác của nó.

Xuất (Export)
from ultralytics import YOLO

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

# Export to CoreML (FP16 by default); int8=True matches the official app models
model.export(format="coreml", int8=True)  # creates 'yolo26n.mlpackage'
Dự đoán (Predict)
from ultralytics import YOLO

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

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

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

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

Link to this sectionĐối số xuất#

Đối sốLoạiMặ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 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ể.
halfboolFalseCho phép định lượng trọng số FP16, giảm một nửa kích thước mô hình với tác động độ chính xác không đáng kể — một tùy chọn mặc định tốt cho Neural Engine.
int8boolFalseCho phép định lượng trọng số INT8 cho các mô hình nhỏ nhất; các mô hình ứng dụng Ultralytics chính thức được xuất dưới dạng INT8.
nmsboolFalseNhúng một pipeline NMS của CoreML. Không cần thiết cho YOLO26 không cần NMS; sử dụng cho các mô hình cũ hơn như YOLO11.
dynamicboolFalseCho phép kích thước đầu vào động, tăng tính linh hoạt trong việc xử lý các kích thước hình ảnh khác nhau.
batchint1Chỉ định kích thước batch inference của model khi 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).

Để 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.

Link to this sectionHướng tới Neural Engine#

CoreML chọn phần cứng thông qua MLModelConfiguration.computeUnits. Ultralytics iOS SDK mặc định là .cpuAndNeuralEngine trên iOS 16+ thay vì .all: trong một ứng dụng camera thời gian thực, GPU vốn đã bận thực hiện phối cảnh xem trước và các lớp phủ, vì vậy việc loại trừ nó giúp tránh tranh chấp và giật lag thời gian khung hình trong khi ANE đảm nhận công việc nặng nhọc. Chỉ nên ghim .cpuOnly cho kiểm thử tương thích — bảng trên hiển thị chi phí của nó.

Link to this sectionTriển khai các mô hình CoreML YOLO26 đã xuất#

Cách nhanh nhất là sử dụng SDK Ultralytics YOLO iOS chính thức, cùng một gói Swift cung cấp sức mạnh cho ứng dụng Ultralytics iOS và plugin Flutter. Nó tự động phân giải tên mô hình chính thức, tải xuống và lưu vào bộ nhớ cache .mlpackage, đồng thời trả về kết quả đã giải mã đầy đủ:

import UltralyticsYOLO

// Loads the official INT8 model (downloaded and cached on first use), then runs inference
let yolo = YOLO("yolo26n", task: .detect) { result in
    if case .success(let model) = result {
        let results = model(uiImage)  // boxes, labels, confidences, timing
    }
}

Đối với các ứng dụng camera, hãy sử dụng YOLOView của SDK để suy luận thời gian thực với các lớp phủ gốc, hoặc sử dụng plugin Flutter cho các ứng dụng đa nền tảng dùng chung cơ sở mã với Android.

Việc tự tích hợp .mlpackage thô cũng rất đơn giản với ngăn xếp của Apple — tải nó bằng MLModel, bao bọc nó trong VNCoreMLRequest và đưa hình ảnh qua VNImageRequestHandler. Các tài nguyên này bao gồm các chi tiết:

Phát hành mô hình dưới dạng nhúng trong gói ứng dụng (có sẵn ngay lập tức, lý tưởng cho các mô hình nano/nhỏ) hoặc tải xuống trong lần chạy đầu tiên và lưu vào bộ nhớ cache (nhị phân nhỏ hơn, dễ cập nhật mô hình) — các ứng dụng chính thức sử dụng cách tiếp cận thứ hai với assets phát hành GitHub.

Link to this sectionQuy trình làm việc được đề xuất#

  1. Huấn luyện mô hình của bạn với Chế độ Train của Ultralytics, hoặc bắt đầu từ trọng số YOLO26 chính thức
  2. Xuất với model.export(format="coreml", int8=True) trên macOS hoặc Linux x86
  3. Xác minh độ chính xác với model.val() trên máy Mac và lập hồ sơ với Báo cáo hiệu suất Core ML Xcode trên thiết bị mục tiêu của bạn
  4. Triển khai với iOS SDK, plugin Flutter hoặc tích hợp Vision của riêng bạn, hướng tới .cpuAndNeuralEngine

Link to this sectionTóm tắt#

Trong hướng dẫn này, bạn đã học cách xuất các mô hình Ultralytics YOLO26 sang định dạng .mlpackage của CoreML, định lượng chúng cho Apple Neural Engine và triển khai chúng với độ trễ chỉ vài mili giây — thông qua iOS SDK và plugin Flutter chính thức hoặc tích hợp Vision của riêng bạn. Đối với các mục tiêu triển khai khác, hãy duyệt qua trang hướng dẫn tích hợp và so sánh các định dạng với chế độ Benchmark.

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

Link to this sectionLàm thế nào để tôi xuất các mô hình YOLO26 sang định dạng CoreML?#

Chạy model.export(format="coreml") trong Python hoặc yolo export model=yolo26n.pt format=coreml từ CLI trên macOS hoặc Linux x86. Thêm int8=True để khớp với các mô hình ứng dụng chính thức. Bản xuất tạo ra một yolo26n.mlpackage ML Program sẵn sàng cho Xcode, iOS SDK hoặc plugin Flutter.

Link to this sectionTôi có cần nms=True khi xuất YOLO26 không?#

Không. YOLO26 là end-to-end không cần NMS, vì vậy biểu đồ đã xuất đã phát ra các phát hiện cuối cùng và chi phí giải mã dưới một mili giây. Tùy chọn nms=True tồn tại cho các mô hình trước đó như YOLO11, nơi nó nhúng một pipeline NMS của CoreML để ứng dụng của bạn không phải triển khai việc loại bỏ nhiễu.

Link to this sectionTôi nên sử dụng độ chính xác nào — FP16 hay INT8?#

Các mô hình ứng dụng Ultralytics chính thức được xuất dưới dạng INT8, giúp giảm thiểu kích thước tải xuống và chạy ở tốc độ trong bảng trên. half=True (FP16) là một sự thay thế an toàn với hiệu suất gần như không bị giảm sút. Hãy xác thực bản xuất chính xác của bạn với model.val() trên máy Mac trước khi phát hành.

Link to this sectionLàm thế nào để tôi đảm bảo suy luận chạy trên Neural Engine?#

Đặt MLModelConfiguration.computeUnits = .cpuAndNeuralEngine (mặc định của iOS SDK trên iOS 16+). Tránh .all trong các ứng dụng camera — GPU đang bận thực hiện phối cảnh xem trước, và việc lên lịch suy luận ở đó gây ra hiện tượng giật lag thời gian khung hình. Xác nhận vị trí bằng Báo cáo hiệu suất Core ML Xcode.

Link to this sectionTôi có thể chạy và xác thực các mô hình CoreML bằng Ultralytics CLI không?#

Có, trên macOS: yolo predict model=yolo26n.mlpackage source=image.jpgyolo val model=yolo26n.mlpackage data=coco8.yaml hoạt động giống như bất kỳ định dạng nào khác. Việc thực thi CoreML yêu cầu phần cứng của Apple, vì vậy các chế độ này không khả dụng trên Linux và Windows.

Link to this sectionCách nhanh nhất để chạy YOLO26 trong ứng dụng iOS hoặc Flutter là gì?#

Sử dụng SDK Ultralytics YOLO iOS chính thức (Gói Swift) hoặc plugin Flutter. Cả hai đều tải các mô hình chính thức theo tên với tính năng tự động tải xuống và lưu vào bộ nhớ cache, chạy chúng trên Neural Engine và bao gồm các giao diện người dùng camera thời gian thực hoàn chỉnh — bảng hiệu suất đo lường ở trên được tạo ra chính xác bằng ngăn xếp này.

Bình luận