Ultralytics YOLO modellerini ExecuTorch entegrasyonu kullanarak dağıt
Ultralytics YOLO modellerini, uç (edge) ve mobil cihazlarda verimli, PyTorch tabanlı dağıtım için ExecuTorch formatına nasıl aktarabileceğini keşfet.

Otomatik kalite kontrolü, otonom dronlar veya akıllı güvenlik sistemleri gibi bazı computer vision uygulamaları, Ultralytics YOLO11 gibi Ultralytics YOLO modelleri görüntü yakalayan sensörün yakınında çalıştırıldığında en iyi performansı gösterir. Başka bir deyişle, bu modeller verileri buluta göndermek yerine doğrudan üretildikleri yerde, kameralarda, dronlarda veya gömülü sistemlerde işlemelidir.
edge AI olarak bilinen bu yaklaşım, modellerin verilerin yakalandığı cihaz üzerinde doğrudan çıkarım yapmasını sağlar. Uzak sunuculara güvenmek yerine bilgileri yerel olarak işleyerek sistemler, sınırlı internet bağlantısı olan veya hiç internet bağlantısı olmayan ortamlarda bile daha düşük gecikme, gelişmiş veri gizliliği ve daha yüksek güvenilirlik elde edebilir.
Örneğin, dakikada binlerce ürünü denetleyen bir üretim kamerası veya karmaşık ortamlarda gezinen bir drone, bulut işleme ile gelen gecikmeleri göze alamaz. Ultralytics YOLO11 modelini doğrudan cihaz üzerinde çalıştırmak, anında cihaz içi çıkarım sağlar.
Ultralytics YOLO modellerini uçta çalıştırmayı daha kolay ve verimli hale getirmek için Ultralytics tarafından desteklenen yeni ExecuTorch integration, modellerin doğrudan mobil ve gömülü cihazlara dışarı aktarılması ve dağıtılması için kolaylaştırılmış bir yol sağlar. ExecuTorch, PyTorch Edge ekosisteminin bir parçasıdır ve telefonlar, giyilebilir cihazlar, gömülü kartlar ve mikro denetleyiciler dahil olmak üzere yapay zeka modellerini doğrudan mobil ve uç donanımda çalıştırmak için uçtan uca bir çözüm sunar.
Bu entegrasyon, bir Ultralytics YOLO modelini (örneğin YOLO11) eğitimden alıp uç cihazlarda dağıtma aşamasına getirmeyi kolaylaştırır. YOLO11'in görüntü yeteneklerini ExecuTorch'un hafif çalışma zamanı (runtime) ve PyTorch dışa aktarma hattı ile birleştiren kullanıcılar, PyTorch tabanlı çıkarımın doğruluk ve performansını korurken uç donanımlarda verimli çalışan modeller dağıtabilirler.
Bu makalede, ExecuTorch entegrasyonunun nasıl çalıştığına, neden uç yapay zeka uygulamaları için harika bir uyum sağladığına ve Ultralytics YOLO modellerini ExecuTorch ile dağıtmaya nasıl başlayabileceğine daha yakından bakacağız. Haydi başlayalım!
ExecuTorch nedir?#
Genellikle PyTorch'ta bir model eğittiğinde, bu model buluttaki güçlü sunucularda veya Grafik İşlem Birimlerinde (GPU) çalışır. Ancak aynı modeli akıllı telefon, drone veya mikrodenetleyici gibi mobil ya da gömülü bir cihaza dağıtmak, sınırlı bilgi işlem gücünü, belleği ve bağlantıyı yönetebilen özel bir çözüm gerektirir.
ExecuTorch tam olarak bu noktada devreye girer. ExecuTorch, PyTorch Edge ekosisteminin bir parçası olarak geliştirilmiş, mobil, gömülü ve uç platformlarda verimli cihaz içi çıkarımı mümkün kılan uçtan uca bir çözümdür. PyTorch'un yeteneklerini bulutun ötesine taşıyarak yapay zeka modellerinin doğrudan yerel cihazlarda çalışmasını sağlar.
PyTorch çıkarımını uç noktaya getirmek#
ExecuTorch temelinde, PyTorch modellerinin doğrudan cihaz üzerinde çalışmasına izin veren hafif bir C++ çalışma zamanı (runtime) sağlar. ExecuTorch, daha hızlı yükleme, daha küçük bellek ayak izi ve gelişmiş taşınabilirlik için tasarlanmış optimize edilmiş bir dışa aktarma formatı olan PyTorch ExecuTorch (.pte) model formatını kullanır.
Verimli Merkezi İşlem Birimi (CPU) çıkarımı için varsayılan arka uç olarak XNNPACK'i destekler ve CoreML, Metal, Vulkan, Qualcomm, MediaTek, Arm EthosU, OpenVINO ve diğerleri dahil olmak üzere çok çeşitli donanım arka uçları arasında uyumluluğu genişletir.
Bu arka uçlar, mobil, gömülü ve özel uç cihazlarda optimize edilmiş hızlandırma sağlar. ExecuTorch ayrıca PyTorch dışarı aktarma ardışık düzeniyle entegre olarak farklı dağıtım ortamlarında performansı ve uyarlanabilirliği artırmak için quantization ve dinamik şekil işleme gibi gelişmiş özellikler için destek sunar.
Quantization (niceleme), yüksek hassasiyetli değerleri (32-bit float gibi) daha düşük hassasiyetli olanlara dönüştürerek model boyutunu küçültür ve çıkarım hızını artırır; dinamik şekil işleme ise modellerin değişken giriş boyutlarını verimli bir şekilde işlemesini sağlamak için kullanılır. Her iki özellik de kaynakları kısıtlı uç cihazlarda yapay zeka modellerini çalıştırmak için kritiktir.

Şekil 1. ExecuTorch'un nasıl çalıştığına bir bakış (Source)
Uç donanım için birleşik bir katman#
ExecuTorch, çalışma zamanının ötesinde, birden fazla donanım arka ucu için birleşik bir soyutlama katmanı görevi görür. Basitçe ifade etmek gerekirse, donanıma özgü detayları soyutlar ve modellerin CPU'lar, GPU'lar ve Sinir İşlem Birimleri (NPU) dahil olmak üzere farklı işlem birimleriyle nasıl etkileşime gireceğini yönetir.
Bir model dışa aktarıldıktan sonra, ExecuTorch belirli bir cihaz için en uygun arka ucu hedefleyecek şekilde yapılandırılabilir. Geliştiriciler, özel cihaz bazlı kodlar yazmadan veya ayrı dönüştürme iş akışlarını sürdürmeden modelleri farklı donanımlar üzerinde verimli bir şekilde dağıtabilirler.
Modüler, taşınabilir tasarımı ve sorunsuz PyTorch entegrasyonu sayesinde ExecuTorch, Ultralytics YOLO11 gibi bilgisayarlı görü modellerini mobil ve gömülü sistemlere dağıtmak için harika bir seçenektir. Model eğitimi ile gerçek dünya dağıtımı arasındaki boşluğu doldurarak uç yapay zekayı daha hızlı, daha verimli ve uygulaması daha kolay hale getirir.
ExecuTorch'un temel özellikleri#
Ultralytics YOLO modellerini ExecuTorch formatına nasıl aktaracağımıza bakmadan önce, ExecuTorch'u uç noktada yapay zeka dağıtımı için güvenilir bir seçenek yapan şeyin ne olduğunu keşfedelim.
İşte temel özelliklerinden bazılarına bir göz atalım:
- Quantization desteği: ExecuTorch, model boyutunu küçültmek ve çıkarımı hızlandırmak için yüksek hassasiyetli değerleri daha düşük hassasiyetli olanlara dönüştüren bir teknik olan model quantization'ı destekler. Bu, modellerin doğruluk seviyesini neredeyse aynı tutarak uç cihazlarda daha hızlı çalışmasına ve daha az bellek kullanmasına yardımcı olur.
- Verimli bellek kullanımı: ExecuTorch'un en büyük avantajlarından biri belleği nasıl yönettiğidir. Gecikmeye ve güç yüküne neden olabilen dinamik bellek tahsisine güvenmek yerine, ExecuTorch Ahead-of-Time (AOT) bellek planlamasını kullanır. Dışa aktarma sırasında model grafiğini analiz eder ve her işlem için ne kadar bellek gerektiğini önceden hesaplar. Bu, çalışma zamanının modelleri statik bir bellek planı kullanarak yürütmesini sağlar, tahmin edilebilir bir performans sunar ve sınırlı RAM veya işlem kapasitesine sahip cihazlarda yavaşlamaları veya çökmeleri önler.
- Yerleşik model meta verileri: Ultralytics tarafından desteklenen entegrasyon kullanılarak dışa aktarma yapıldığında, her model giriş resmi boyutu, sınıf isimleri ve yapılandırma parametreleri gibi önemli meta verileri içeren bir YAML dosyası içerir. Bu ek dosya, modelin çeşitli uygulamalara entegrasyonunu basitleştirir ve farklı uç platformlarda tutarlı davranış sağlar.
Ultralytics YOLO modelleri ExecuTorch formatına nasıl aktarılır?#
Artık ExecuTorch'un sundukları hakkında daha iyi bir anlayışa sahip olduğumuza göre, Ultralytics YOLO modellerini ExecuTorch formatına nasıl aktaracağımıza bakalım.
Adım: Ultralytics Python paketini yükle#
Başlamak için bir paket yükleyicisi olan pip kullanarak Ultralytics Python package yüklemeniz gerekir. Bunu terminalinizde veya komut isteminizde "pip install ultralytics" komutunu çalıştırarak yapabilirsiniz.
Jupyter Notebook veya Google Colab ortamında çalışıyorsan, komutun önüne bir ünlem işareti eklemen yeterlidir, örneğin "!pip install ultralytics". Yüklendikten sonra Ultralytics paketi, Ultralytics YOLO11 dahil olmak üzere bilgisayarlı görü modellerini eğitmek, test etmek ve dışa aktarmak için ihtiyacın olan tüm araçları sağlar.
Kurulum sırasında veya modelinizi dışarı aktarırken herhangi bir sorunla karşılaşırsanız, resmi Ultralytics belgeleri ve Common Issues guide, sorunsuz bir şekilde çalışmaya başlamanıza yardımcı olacak ayrıntılı sorun giderme adımları ve en iyi uygulamaları içerir.
Adım: Ultralytics YOLO11'i dışa aktarma#
Ultralytics paketini yükledikten sonra YOLO11 modelinin bir varyantını yükleyebilir ve ExecuTorch formatına export edebilirsiniz. Örneğin, “yolo11n.pt” gibi önceden eğitilmiş bir model kullanabilir ve formatı “executorch” olarak ayarlayarak dışarı aktarma fonksiyonunu çağırıp dışarı aktarabilirsiniz.
Bu işlem, optimize edilmiş model dosyasını (.pte) ve resim boyutu ile sınıf isimleri gibi önemli detayları içeren ayrı bir meta veri YAML dosyasını kapsayan “yolo11n_executorch_model” adlı bir dizin oluşturur.
Modelini dışa aktarmak için kod burada:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="executorch")Adım 3: Modeli dışa aktardıktan sonra çıkarımları çalıştırma#
Dışa aktarıldıktan sonra model, ExecuTorch çalışma zamanı kullanılarak uç cihazlarda ve mobil cihazlarda dağıtılmaya hazırdır. Dışa aktarılan .pte model dosyası, bulut bağlantısına ihtiyaç duymadan gerçek zamanlı, cihaz içi çıkarım çalıştırmak için uygulamana yüklenebilir.
Örneğin, aşağıdaki kod parçacığı dışa aktarılan modelin nasıl yükleneceğini ve çıkarımın nasıl çalıştırılacağını gösterir. Çıkarım basitçe, eğitilmiş bir modelin yeni veriler üzerinde tahminler yapmak için kullanılması anlamına gelir. Burada model, halka açık bir URL'den alınan bir otobüs resmi üzerinde test edilmiştir.
executorch_model = YOLO("yolo11n_executorch_model")
results = executorch_model.predict("https://ultralytics.com/images/bus.jpg", save=True)Kodu çalıştırdıktan sonra, tespit edilen nesnelerin bulunduğu çıktı resmini “runs/detect/predict” klasöründe bulabilirsin.

Şekil 2. ExecuTorch formatında dışarı aktarılmış bir Ultralytics YOLO11 modeli kullanılarak nesne tespiti.
ExecuTorch entegrasyonunu kullanmanın faydaları#
Ultralytics tarafından desteklenen farklı dışa aktarma seçeneklerini keşfederken, ExecuTorch entegrasyonunu neyin benzersiz kıldığını merak edebilirsin. Temel fark, performansı, basitliği ve esnekliği ne kadar iyi birleştirdiğidir; bu da güçlü yapay zeka modellerini doğrudan mobil ve uç cihazlarda dağıtmayı kolaylaştırır.
İşte ExecuTorch entegrasyonunu kullanmanın temel avantajlarından bazılarına bir göz atalım:
- Esnek dağıtım seçenekleri: ExecuTorch modelleri mobil uygulamalar, gömülü sistemler, IoT (Nesnelerin İnterneti) cihazları ve özel uç yapay zeka donanımları arasında dağıtılabilir. Bu esneklik, geliştiricilerin çeşitli platformlarda ve ortamlarda tutarlı performans gösteren ölçeklenebilir yapay zeka çözümleri oluşturmasına olanak tanır.
- Benchmark onaylı performans: Raspberry Pi 5 gibi cihazlarda yapılan testler, ExecuTorch formatına aktarılan Ultralytics YOLO11 modellerinin, neredeyse aynı doğrulukla PyTorch'taki benzerlerine göre yaklaşık 2 kat daha hızlı çalıştığını gösteriyor.
- Esnek entegrasyon API'leri: ExecuTorch; iOS, Android ve gömülü Linux için C++, Kotlin ve Objective-C API'leri sağlayarak geliştiricilerin YOLO modellerini doğrudan yerel uygulamalara entegre etmelerine olanak tanır.
- Donanım hızlandırma desteği: ExecuTorch, mobil GPU'lar için Vulkan ve Metal dahil olmak üzere birden fazla donanım hızlandırma arka ucunu destekler; ayrıca OpenCL ve diğer satıcıya özel API'ler için isteğe bağlı entegrasyon sunar. Ayrıca, yalnızca CPU ile yapılan çıkarımlara göre önemli hız artışları elde etmek için NPU ve DSP gibi özel hızlandırıcılardan da yararlanabilir.
Ultralytics YOLO11 ve ExecuTorch dışarı aktarımının gerçek dünya uygulamaları#
Son zamanlarda Ultralytics, cihaz üstü çıkarım için erken desteğimizi ve PyTorch ekosistemine devam eden katkılarımızı vurgulayan bir PyTorch ExecuTorch success story olarak kabul edildi. Bu tanınma, yüksek performanslı yapay zekayı mobil ve uç platformlarda daha erişilebilir hale getirme ortak amacını yansıtmaktadır.
Buluttan uca: ExecuTorch ve Ultralytics YOLO11, yapay zeka görüşünü nasıl hayata geçiriyor#
Eylemde bu, akıllı telefonlardan gömülü sistemlere kadar her şeyde verimli bir şekilde çalışan gerçek dünya görme tabanlı yapay zeka çözümleri gibi görünüyor. Örneğin, üretimde uç cihazlar, üretim hatlarını izlemede ve kusurları gerçek zamanlı olarak tespit etmede çok önemli bir rol oynar.

Şekil 3. Bir üretim montaj hattını analiz etmek için Ultralytics YOLO11 kullanımına bir örnek. (Kaynak)
Gecikmelere yol açabilen ve internet bağlantısına bağımlı olan görüntüleri veya sensör verilerini işlenmek üzere buluta göndermek yerine, ExecuTorch entegrasyonu Ultralytics YOLO11 modellerinin doğrudan yerel donanım üzerinde çalışmasını sağlar. Bu, fabrikaların sınırlı bilgi işlem kaynaklarıyla çalışırken kalite sorunlarını anında tespit edebileceği, kesinti süresini azaltabileceği ve veri gizliliğini koruyabileceği anlamına gelir.
İşte ExecuTorch entegrasyonunun ve Ultralytics YOLO modellerinin uygulanabileceği birkaç örnek daha:
- Akıllı şehirler: Şehirler, ExecuTorch ile Ultralytics YOLO11 modellerini yerel olarak çalıştırarak trafik sıkışıklığını tespit etmekten tehlikeleri belirlemeye kadar daha hızlı, veriye dayalı kararlar alabilir, genel hareketliliği ve güvenliği artırabilir.
- Perakende ve depolama: Cihaz içi çıkarım ile perakendeciler, bulut bağlantılarına güvenmek zorunda kalmadan raf izlemeyi otomatikleştirebilir, envanteri takip edebilir ve paketleri hızlı ve güvenli bir şekilde denetleyebilir.
- Robotics and drones: Kenar optimize edilmiş Ultralytics YOLO11 modelleri, robotların ve droneların internet erişimi olmadan bile nesneleri tanımasını, ortamlarda gezinmesini ve gerçek zamanlı kararlar almasını sağlar.

Şekil 4. YOLO11 kullanarak trafikteki arabaları tespit etme ve sayma (Source)
Öne çıkanlar#
Ultralytics YOLO modellerini ExecuTorch formatına aktarmak, akıllı telefonlar, tabletler ve Raspberry Pi gibi gömülü sistemler dahil olmak üzere birçok cihazda bilgisayarlı görü modellerini dağıtmayı kolaylaştırır. Bu, bulut bağlantısına güvenmeden optimize edilmiş cihaz içi çıkarım çalıştırmanın mümkün olduğu anlamına gelir ve bu da hızı, gizliliği ve güvenilirliği artırır.
ExecuTorch'un yanı sıra Ultralytics, TensorRT, OpenVINO, CoreML ve daha fazlası dahil olmak üzere çok çeşitli entegrasyonları destekler ve geliştiricilere modellerini platformlar genelinde çalıştırma esnekliği sağlar. Görme tabanlı yapay zeka kullanımı arttıkça, bu entegrasyonlar gerçek dünya koşullarında verimli çalışmak üzere oluşturulmuş akıllı sistemlerin dağıtımını basitleştirir.
Yapay zekayı merak mı ediyorsun? Vizyon yapay zeka projeni başlatmak için GitHub repository göz at, our community katıl ve licensing options incele. Çözüm sayfalarımızı ziyaret ederek AI in retail ve computer vision in logistics gibi yenilikler hakkında daha fazla bilgi edin.






