YOLO26 Modelleri için CoreML Dışa Aktarımı#
Apple, her modern iPhone, iPad ve Mac'te özel yapay zeka silikonu (Neural Engine) sunar ve CoreML, modelleri günümüzde buraya dağıtmak için Ultralytics tarafından desteklenen yoldur. Ultralytics YOLO26 modellerini CoreML'e dışarı aktarmak, eğitilmiş bir .pt kontrol noktasını, yedi YOLO görevini de ağ bağlantısı olmadan ve veriler cihazdan ayrılmadan düşük gecikmeyle cihaz üzerinde çalıştıran yerel bir .mlpackage dosyasına dönüştürür.
Resmi Ultralytics YOLO iOS SDK ve Flutter eklentisi, CoreML dışa aktarımlarını Apple Neural Engine üzerinde kutudan çıktığı gibi çalıştırır; Derinlik (Depth) dahil tüm yedi YOLO26 görevi için gerçek zamanlı kamera çıkarımı, tek görüntü tahmini ve otomatik model indirme. Android NPU dağıtımı için Qualcomm QNN entegrasyonuna göz at.
Sınıflandırma modellerini imgsz=224 konumunda dışarı aktar. Algılama (detect), bölütleme (segment), semantik, derinlik (depth), poz (pose) ve OBB modellerini imgsz=640 konumunda dışarı aktar. Bu 224/640 standardı, resmi CoreML, LiteRT ve QNN mobil varlıkları tarafından paylaşılır.
Apple, iOS 27 ve macOS 27 nesli için yeni Core AI framework ve .aimodel formatını tanıttı ve Ultralytics bunu format="coreai" ile dışarı aktarır. CoreML, Ultralytics iOS ve Flutter SDK'ları ve daha geniş Apple cihaz uyumluluğu için önerilen format olmaya devam ediyor.
Watch: How to Export Ultralytics YOLO26 to CoreML with INT8 Quantization | Apple Deployment | iOS/MacOS 🍎
CoreML nedir?#
CoreML (Apple tarafından "Core ML" olarak adlandırılır), Apple'ın cihaz üzerinde makine öğrenimi çerçevesidir. Modelleri modern ML Program formatında (Ultralytics dışa aktarıcısının ürettiği .mlpackage paketi) yükler ve bunları cihazın CPU, GPU ve her Apple silikon çipindeki özel NPU olan Apple Neural Engine (ANE) üzerinde zamanlar. Her şey yerel olarak çalıştığı için çıkarım çevrimdışı çalışır, ağ gecikmesi eklemez ve kullanıcı verilerini cihazda tutar.
CoreML, modele giden yolda görüntü ölçeklendirmeyi ve yönlendirmeyi yöneten Apple'ın Vision çerçevesi ile doğrudan entegre olur; Ultralytics iOS SDK'sı kamera karelerini YOLO'ya etkili bir şekilde sıfır ön işleme maliyetiyle işte bu şekilde besler.
Neden YOLO26'yı CoreML'e Dışa Aktarmalısın?#
- Neural Engine hızı: CoreML, cihaz üzerinde düşük gecikmeli çıkarım için desteklenen işlemleri Apple'ın Neural Engine bileşeninde zamanlar. Aşağıdaki fiziksel cihaz tablosuna bakın ve tam dışarı aktarma işleminizi hedef donanımınızda kıyaslayın.
- Tasarım gereği NMS'siz: YOLO26 uçtan uca bir modeldir, bu nedenle dışarı aktarılan grafik NMS işlem hatlarına ihtiyaç duymaz ve kod çözme milisaniyenin altındadır. YOLO11 gibi eski algılama modelleri,
nms=Trueile bir CoreML NMS işlem hattı gömebilir. - Gizli ve çevrimdışı: Tüm hesaplamalar cihazda kalır; bulut gidiş-dönüşleri yok, API anahtarları yok, tam veri gizliliği var.
- Tek dışa aktarım, tüm ekosistem: Aynı
.mlpackagedosyası iOS, iPadOS, macOS, watchOS, tvOS ve visionOS üzerinde çalışır ve resmi Ultralytics iOS SDK ile Flutter eklentisine güç verir.
Ölçülen Performans#
12 GB belleğe ve iOS 26.5.2 sürümüne sahip bir iPhone 17 Pro üzerinde standartlaştırılmış v8.3.0 YOLO26n INT8 CoreML varlıkları için uçtan uca tekli görüntü çıkarımı. A19 Pro işlemcisi; 6 çekirdekli CPU (2 Performans ve 4 Verimlilik çekirdeği), Sinirsel Hızlandırıcılara sahip 6 çekirdekli GPU ve 16 çekirdekli Neural Engine barındırır. Her hücre, alt kısmındaki aşama bazlı dağılımla birlikte toplam süreyi (ön işleme + çıkarım + son işleme, notlandırma hariç) gösterir. iOS'ta Vision, giriş ölçeklendirmesini çıkarım isteği içinde gerçekleştirir, bu nedenle ön işleme 0 olarak bildirilir ve maliyeti çıkarım içine dahil edilir.
| Model | Görev | boyut (piksel) | CPU Core ML .cpuOnly(ms) | CPU + ANE tercih edilir Core ML .cpuAndNeuralEngine(ms) |
|---|---|---|---|---|
| YOLO26n | Algıla | 640 | 9.2 0.0 / 9.2 / 0.0 | 3.2 0.0 / 3.2 / 0.0 |
| YOLO26n-seg | Segment | 640 | 12.6 0.0 / 12.0 / 0.5 | 4.8 0.0 / 4.2 / 0.6 |
| YOLO26n-sem | Anlamsal | 640 | 9.7 0.0 / 9.2 / 0.5 | 4.6 0.0 / 4.2 / 0.5 |
| YOLO26n-depth | Depth | 640 | 25.0 0.0 / 24.1 / 0.9 | 5.3 0.0 / 4.5 / 0.9 |
| YOLO26n-cls | Sınıflandır | 224 | 2.2 0.0 / 2.2 / 0.0 | 1.9 0.0 / 1.9 / 0.0 |
| YOLO26n-pose | Pose | 640 | 11.9 0.0 / 11.9 / 0.0 | 3.9 0.0 / 3.9 / 0.0 |
| YOLO26n-obb | OBB | 640 | 10.6 0.0 / 10.6 / 0.0 | 3.4 0.0 / 3.4 / 0.0 |
- Tam
v8.3.0sürüm varlıkları, sınıflandırma için 224×224 ve diğer tüm görevler için 640×640 girdiler bildirir. - Hız değerleri tekli görüntü patlama gecikmeleridir; profil modundaki (optimize edilmiş yerel kod) Flutter eklentisinin kıyaslama test düzeneği aracılığıyla iOS SDK'sının aşama bazlı zamanlaması üzerinden ölçülen,
bus.jpgüzerindeki 3 ısınma çalışmasının ardından gelen 15 çalışmanın ortalamasıdır. CPU/hızlandırıcı sırası, tek bir ardışık taramada görevler arasında değişti. CPU satırları Core ML.cpuOnlytalep eder; CPU + ANE tercih edilen satırlar ise nihai işlem yerleşimi Core ML tarafından kontrol edilen.cpuAndNeuralEnginetalep eder. Sürdürülebilir gerçek zamanlı kamera çalışması, yakalama ve ölçeklendirme boru hattını artı termal dengelemeyi içerdiği için daha yüksek çalışır. Standart öncesi tarihi bir kamera taraması, aynı cihazda YOLO26n nesne tespiti için 11,3 ms/kare ve YOLO26n Derinlik için 16,5 ms/kare ölçmüştür; kararlı durum profillemesi için iOS SDK performans belgesine bakın. - Android CPU/GPU sonuçlarını LiteRT entegrasyonunda ve Snapdragon NPU sonuçlarını Qualcomm QNN entegrasyonunda karşılaştır.
Desteklenen Görevler#
CoreML dışa aktarımı, yedi Ultralytics görevinin tümünü destekler. Anlamsal segmentasyon ve derinlik tahmini yalnızca bu başlıklara sahip tek aile olan YOLO26 ile kullanılabilir.
| Görev | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Algıla | ✅ | ✅ | ✅ |
| Segmentlere Ayır | ✅ | ✅ | ✅ |
| Anlamsal | ❌ | ❌ | ✅ |
| Derinlik | ❌ | ❌ | ✅ |
| Sınıflandır | ✅ | ✅ | ✅ |
| Poz | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
YOLO26 Modellerini CoreML'e Dışa Aktarma#
Kurulum#
Gerekli paketi yüklemek için şunu çalıştır:
# Install the required package for YOLO26
pip install ultralyticscoremltools dönüştürücüsü ilk dışa aktarmada otomatik olarak yüklenir. Dışa aktarma macOS veya x86 Linux üzerinde çalışır; ayrıntılı talimatlar ve en iyi uygulamalar için kurulum kılavuzumuza ve Yaygın Sorunlar kılavuzuna göz at.
Kullanım#
CoreML formatı Dışa Aktarma (Export), Tahmin (Predict) ve Doğrulama (Validate) modlarını destekler. CoreML ile çıkarım ve doğrulama yalnızca macOS üzerinde çalışır. Modelini dışa aktar, ardından çıkarım çalıştırmak veya doğruluğunu doğrulamak için dışa aktarılan modeli yükle.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export to CoreML with INT8 weight quantization, matching the official app models
model.export(format="coreml", quantize=8, imgsz=640) # use imgsz=224 for classificationfrom ultralytics import YOLO
# Load the exported CoreML model (macOS)
model = YOLO("yolo26n.mlpackage")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")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")Dışa Aktarma Argümanları#
| Argüman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'coreml' | Çeşitli dağıtım ortamlarıyla uyumluluğu tanımlayan, dışa aktarılan model için hedef format. |
imgsz | int veya tuple | 640 | Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya belirli boyutlar için bir (height, width) demeti (tuple) olabilir. |
quantize | int veya str | None | Kuantizasyon hassasiyeti (CoreML için yalnızca ağırlık): 16 (FP16), 8 (INT8), "w8a16" (FP16 aktivasyonlu INT8 ağırlıkları) veya 32/ayarlanmamış (FP32). NMS ML Programları FP16 kullanır (Xcode önizlemesi için ve segment ile pose tarafından gereklidir); detect üzerinde geçersiz kılmak için 32 aktar. Kullanımdan kaldırılan half/int8 bayraklarının yerini alır. |
nms | bool | False | NMS'yi dışarı aktarılan modele gömer. Detect, segment ve pose için desteklenir (diğer görevler için bir uyarı ile yoksayılır); NMS içermeyen YOLO26 için gerekli değildir, YOLO11 gibi önceki modeller için kullan. |
dynamic | bool | False | Dinamik giriş boyutlarına izin vererek farklı görüntü boyutlarını işlemede esnekliği artırır. |
batch | int | 1 | Dışa aktarılan modelin toplu çıkarım boyutunu veya dışa aktarılan modelin predict modunda aynı anda işleyeceği maksimum görüntü sayısını belirtir. |
device | str | None | Dışa aktarma için cihazı belirtir: GPU (device=0), CPU (device=cpu), Apple silikon için MPS (device=mps). |
Dışa aktarım süreci hakkında daha fazla ayrıntı için Ultralytics documentation page on exporting sayfasını ziyaret edin.
Neural Engine'i Hedefleme#
CoreML, MLModelConfiguration.computeUnits aracılığıyla donanımı seçer. Ultralytics iOS SDK, iOS 16 ve sonraki sürümlerde .all yerine varsayılan olarak .cpuAndNeuralEngine kullanır: gerçek zamanlı bir kamera uygulamasında GPU, önizlemeyi ve kaplamaları birleştirmekle zaten meşguldür, bu nedenle bunu hariç tutmak, ANE ağır işleri yaparken çekişmeyi ve kare süresi titremesini önler. .cpuOnly değerini yalnızca uyumluluk testi için sabitleyin; yukarıdaki tablo bunun maliyetini gösterir.
Python'dan bir [Mac ana bilgisayarında](https://... veya benzeri durumlar hariç) bir CoreML modeli çalıştırmak (Ultralytics veya coremltools aracılığıyla) aynı kuralı izler: Ultralytics, çıkarımı Neural Engine üzerinde tutarak (CPU'dan ~3 kat daha hızlı) ComputeUnit.CPU_AND_NE ile yükler (macOS 13+; eski macOS sürümlerinde CPU_ONLY sürümüne geri döner). Bu aynı zamanda, GPU/MPSGraph derleme yolunu ekleyen varsayılan ComputeUnit.ALL / CPU_AND_GPU seçeneklerinin coremltools 9.x üzerinde bir Error: MLIR pass manager failed iddiasıyla işlemi sonlandırmasına neden olan mevcut bir macOS ana bilgisayar sınırlamasını da önler.
Dışa Aktarılan YOLO26 CoreML Modellerini Dağıtma#
En hızlı yol, resmi Ultralytics YOLO iOS SDK (Ultralytics iOS uygulamasına ve Flutter eklentisine güç veren aynı Swift paketi) kullanmaktır. Resmi model adlarını otomatik olarak çözümler, .mlpackage dosyasını indirir ve önbelleğe alır ve tamamen kodlanmamış sonuçlar döndürür:
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
}
}Kamera uygulamaları için, yerel katmanlarla gerçek zamanlı çıkarım için SDK'nın YOLOView öğesini ekle veya Android ile tek bir kod tabanını paylaşan platformlar arası uygulamalar için Flutter eklentisini kullan.
Ham bir .mlpackage öğesini kendin entegre etmek de Apple'ın yığınıyla basittir; onu MLModel ile yükle, bir VNCoreMLRequest içine sar ve görüntüleri VNImageRequestHandler aracılığıyla besle. Bu kaynaklar ayrıntıları kapsar:
- Uygulamanıza Core ML Modeli Entegre Etme: Apple'ın bir CoreML modelini paketleme ve çağırma kılavuzu.
- CoreML Tools: Bu dışa aktarıma güç veren
coremltoolsaraç zinciri için dönüştürme, kantelleştirme ve optimizasyon referansı. - Xcode Core ML Performans Raporları: Tam modelin ve cihazın için katman bazlı cihaz yerleşimi ve gecikme profili oluşturma.
Modeli ya uygulama paketinin içine gömülü olarak (anında kullanılabilirlik, nano/küçük modeller için ideal) ya da ilk çalıştırmada indirilen ve önbelleğe alınan (daha küçük ikili dosya, kolay model güncellemeleri) şekilde dağıtın. Resmi uygulamalar her iki yaklaşımı birleştirir: varsayılan nano modeller hemen kullanım için paketlenirken, daha büyük varyantlar talep üzerine indirilir ve yerel olarak önbelleğe alınır.
Önerilen İş Akışı#
- Ultralytics Train modu ile modelini eğit veya resmi YOLO26 ağırlıklarıyla başla
- macOS veya x86 Linux üzerinde
model.export(format="coreml", quantize=8, imgsz=640)ile dışa aktar (sınıflandırma içinimgsz=224kullan) - Mac üzerinde
model.val()ile doğruluğu doğrula ve hedef cihazında bir Xcode Core ML Performans Raporu ile profille .cpuAndNeuralEnginehedefleyerek iOS SDK, Flutter eklentisi veya kendi Vision entegrasyonun ile dağıt
Özet#
Bu kılavuzda, Ultralytics YOLO26 modellerini CoreML'in .mlpackage formatına nasıl dışa aktaracağını, Apple Neural Engine için bunları nasıl kantelleştireceğini ve — resmi iOS SDK ve Flutter eklentisi veya kendi Vision entegrasyonun aracılığıyla — tek haneli milisaniye gecikmelerle nasıl dağıtacağını öğrendin. Diğer dağıtım hedefleri için entegrasyon kılavuzu sayfasına göz at ve Benchmark modu ile formatları karşılaştır.
SSS#
macOS veya x86 Linux üzerinde Python'da
model.export(format="coreml", imgsz=640)veya CLI'danyolo export model=yolo26n.pt format=coreml imgsz=640çalıştır. Sınıflandırma içinimgsz=224kullan ve resmi uygulama modelleriyle eşleşmesi içinquantize=8ekle. Dışa aktarım, Xcode, iOS SDK veya Flutter eklentisi için hazır biryolo26n.mlpackageML Programı üretir.Hayır. YOLO26 baştan sona NMS içermez, bu nedenle dışarı aktarılan grafik zaten nihai algılamaları üretir ve çözümleme maliyetleri bir milisaniyenin çok altındadır.
nms=Trueseçeneği, uygulamanın baskılama uygulamak zorunda kalmaması için NMS'yi gömdüğü YOLO11 gibi önceki modeller için mevcuttur. Detect, segment ve pose modelleri için desteklenir;nms=Truediğer görevler için bir uyarı ile yoksayılır.Resmi Ultralytics uygulama modelleri, indirme boyutunu en aza indiren ve yukarıdaki tablodaki hızlarda çalışan INT8 olarak gönderilir.
quantize=16(FP16), esasen hiçbir doğruluk kaybı olmayan muhafazakar bir alternatiftir. Göndermeden önce Mac üzerindemodel.val()ile tam dışa aktarımını doğrula.MLModelConfiguration.computeUnits = .cpuAndNeuralEngineayarla (iOS 16+ üzerinde iOS SDK varsayılanıdır). Kamera uygulamalarında.alldeğerinden kaçın; GPU önizlemeyi oluşturmakla meşguldür ve çıkarımı orada zamanlamak kare süresi titremesine neden olur. Yerleşimi bir Xcode Core ML Performans Raporu ile onayla.Evet, macOS üzerinde:
yolo predict model=yolo26n.mlpackage source=image.jpgveyolo val model=yolo26n.mlpackage data=coco8.yamldiğer herhangi bir format gibi çalışır. CoreML yürütülmesi Apple donanımı gerektirir, bu nedenle bu modlar Linux ve Windows'ta kullanılamaz.Resmi Ultralytics YOLO iOS SDK (Swift Package) veya Flutter eklentisini kullan. Her ikisi de resmi modelleri otomatik indirme ve önbelleğe alma ile ada göre yükler, Neural Engine üzerinde çalıştırır ve eksiksiz gerçek zamanlı kamera arayüzleri içerir; yukarıdaki ölçülen performans tablosu tam olarak bu yığınla üretilmiştir.