Ultralytics YOLO Modellerini Hailo'ya Aktarma#
Hailo AI hızlandırıcıları, Raspberry Pi AI HAT+ ve AI HAT+ 2 gibi uç cihazlarda derlenmiş Hailo Executable Format (HEF) modellerini çalıştırır. Ultralytics; YOLO algılama, segmentasyon, anlamsal segmentasyon, derinlik tahmini, sınıflandırma, poz ve OBB modellerini Hailo Dataflow Compiler (DFC) ile doğrudan HEF biçimine aktarır.
Hailo dağıtımı; her kareyi buluta göndermeden yerel nesne algılamaya ihtiyaç duyan kameralar, robotlar, endüstriyel sistemler, ağ geçitleri ve diğer cihazlar için uçta bilgisayarlı görü kullanımına yönelik tasarlanmıştır. Derlenmiş bir HEF, seçilen hızlandırıcı için gereken nicemlenmiş ağı, donanım tahsisini, zamanlamayı ve isteğe bağlı HailoRT son işlemeyi içerir.
Yeni donanım dağıtımları için DeepX, Axelera ve Rockchip seçeneklerini de değerlendir. DeepX, daha yüksek YOLO performansı ve watt başına daha iyi performans için daha güçlü bir başlangıç noktası sunarken Axelera daha yüksek iş hacimli dağıtımları hedefler. Rockchip de uygun fiyatlı SBC'lerde ve gömülü sistemlerde yaygın olarak kullanılır.
Ultralytics YOLO'yu Hailo'da Neden Dağıtmalısın?#
Ultralytics YOLO'yu Hailo sinirsel işlem birimiyle (NPU) birleştirmek, model eğitiminden uçta yapay zekâ çıkarımına geçiş için pratik bir yol sunar. Yaygın kullanım alanları şunlardır:
- Akıllı kameralar ve video analitiği: Güvenlik, perakende, trafik ve doluluk uygulamaları için gerçek zamanlı nesne algılamayı kameranın yakınında çalıştır.
- Robotik ve otonom sistemler: Kesintisiz bir bulut bağlantısına ihtiyaç duymadan insanları, araçları, paketleri, araç gereçleri veya engelleri algıla.
- Endüstriyel bilgisayarlı görü: Denetim, sayım, güvenlik izleme ve kalite kontrol için özel YOLO modellerini dağıt.
- Raspberry Pi yapay zekâ projeleri: AI HAT+ veya AI HAT+ 2 kullanarak Raspberry Pi sistemlerine hızlandırılmış görü çıkarımı ekle.
- Uç ağ geçitleri ve yapay zekâ bilgisayarları: Bant genişliği ve bulut işlem gereksinimlerini azaltırken birden fazla video veya sensör akışını yerel olarak işle.
Yerel çıkarım, görüntüler dağıtım cihazında kaldığı için gizliliği ve yanıt süresini iyileştirebilir. Gerçek iş hacmi, gecikme ve güç kullanımı; YOLO modelinin boyutuna, giriş çözünürlüğüne, Hailo mimarisine, ana sisteme ve uygulama işlem hattına bağlıdır.
Hailo Dışa Aktarımı Nasıl Çalışır?#
format="hailo" arkasındaki eksiksiz dışa aktarma iş akışını Ultralytics yönetir:
YOLO (.pt) -> ONNX -> Hailo parse -> INT8 optimization -> HEF compileDışa aktarıcı bu aşamaları otomatik olarak gerçekleştirir:
- Derleyiciyle uyumlu ayarlarla statik bir ONNX grafiği dışa aktarır.
- Model mimarisi için başlık çıktıları seçer.
- Normalleştirme, aktivasyon ve son işleme yönergeleri oluşturur.
- Temsili bir kalibrasyon akışı oluşturur ve modeli INT8'e nicemler.
- Optimize edilmiş grafiği seçilen Hailo hızlandırıcısı için derler.
- HEF'yi Ultralytics meta verileriyle kaydeder ve ara ONNX dosyasını kaldırır.
YOLOv8 ve YOLO11 algılama modelleri, derlenmiş işlem hattında HailoRT YOLO NMS kullanır. YOLO26, ham algılama başlığı tensörlerini derler: Ultralytics, varsayılan bire çok çıktılara NMS uygular veya NMS'siz bire bir çıktıları nms=False ile çözümler. YOLOv8/YOLO11 segmentasyon, poz ve OBB modelleri ham başlık tensörlerini derler; Ultralytics bunları çıkarım sırasında çözümler. YOLOv8/YOLO11/YOLO26 sınıflandırma modelleri ise yumuşak maksimumu çip üzerinde çalıştırır; böylece HEF sınıf olasılıklarını doğrudan döndürür. YOLO26 anlamsal segmentasyon için dışa aktarıcı, hızlandırıcıyı izler: Hailo-8/8L (DFC v3.x), ana bilgisayarda üst örnekleme ve indirgeme için sınıflandırıcı logitlerini döndürürken Hailo-10H/15 (DFC v5.x), çok sınıflı ArgMax başlıklarını çip üzerinde derler ve kompakt bir sınıf haritası döndürür. Tek sınıflı başlıklarda ArgMax yerine eşik gerektiğinden tüm hedeflerde ana bilgisayar-logiti yolu kullanılır. YOLO26 derinlik modelleri, a16 içindeki yoğun logit evrişimini derler ve metrik derinlik haritasını ana bilgisayarda yeniden oluşturur (başlığı izleyen clamp/exp ve öğrenilmiş log-affine kalibrasyon); böylece nicemleyici en geniş aralığı ham logitte tutar. Kullanıcıların ONNX son düğümlerini bulmasına, bir Hailo model betiği (.alls) yazmasına veya NMS JSON dosyasını elle oluşturmasına gerek yoktur.
Kurulum#
Ultralytics'i yükle ve hedef donanımın için DFC wheel dosyasını Hailo Developer Zone'dan indir (ücretsiz kayıt gerekir):
pip install ultralytics
pip install /path/to/hailo_dataflow_compiler-*.whlHailo derlemesi Linux x86_64 gerektirir. Modeli desteklenen bir iş istasyonunda derle, ardından çıktı dizinini hedef cihaza kopyala. Çıkarım için DFC gerekmez.
Hailo-8 ve Hailo-8L, DFC v3.x kullanır. Hailo-10H ve Hailo-15, DFC v5.x kullanır. Hedef hızlandırıcıyla eşleşen derleyici neslini yükle.
Ultralytics Platform, yönetilen Hailo dışa aktarımı sunar; bu nedenle yerel Hailo hesabı veya DFC kurulumu gerekmez.
Hailo HEF Modelini Dışa Aktar#
format="hailo" kullan ve name ile hedef hızlandırıcıyı seç:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
output = model.export(format="hailo", name="hailo8")
print(output) # yolo11n_hailo_model/Eşdeğer CLI komutu:
yolo export model=yolo11n.pt format=hailo name=hailo8Hailo dışa aktarımı yalnızca INT8'i destekler. data belirtilmediğinde Ultralytics göreve özel bir kalibrasyon veri kümesini otomatik olarak indirir. Özel modeller için temsili eğitim veya doğrulama görüntüleri kullan:
Ultralytics, DFC optimizasyon düzeyini 2'ye sabitler ve ince ayarı gerçek kalibrasyon veri kümesi boyutunu kullanacak şekilde yapılandırır. Hailo, çeşitli özelliklere sahip en az 1.024 görüntü önerir; yerleşik hafif veri kümeleri 2. düzeyde derlenir ancak üretim ortamını temsil etmeyebilir. Üretim HEF dışa aktarımları için data="path/to/dataset.yaml" kullanarak temsili bir veri kümesi belirt.
model.export(format="hailo", name="hailo8", data="path/to/dataset.yaml")Derleme sabit bir giriş şekli kullanır. imgsz değerini cihazda kullanacağın çözünürlüğe ayarla:
model.export(format="hailo", name="hailo8", imgsz=640)Desteklenen Modeller ve Donanım#
Hailo ekosistemi çok çeşitli bilgisayarlı görü iş yüklerini kapsar; ancak Ultralytics format="hailo" dışa aktarıcısı şu anda standart YOLO algılama, segmentasyon, anlamsal segmentasyon, derinlik tahmini, sınıflandırma, poz ve OBB başlıklarını doğrular. Görev tablosu mevcut dışa aktarma yollarını, donanım doğrulaması ise aşağıdaki ayrı bölümü açıklar.
| Ultralytics görevi | Doğrudan Hailo dışa aktarımı | Desteklenen model aileleri | Notlar |
|---|---|---|---|
| Nesne algılama | ✅ | YOLOv8, YOLO11, YOLO26 | Özel modeller dâhil standart Ultralytics Detect başlıkları |
| Örnek segmentasyonu | ✅ | YOLOv8, YOLO11 | Çıkarım sırasında Ultralytics tarafından çözümlenen ham başlık tensörleri; YOLO26-seg şu anda desteklenmiyor |
| Anlamsal segmentasyon | ✅ | YOLO26 | Hailo-8/8L ve tek sınıflı başlıklar logit döndürür; Hailo-10H/15 çok sınıflı haritaları doğrudan oluşturur |
| Derinlik tahmini | ✅ | YOLO26 | Yoğun logit a16 içinde derlenir; Ultralytics çıkarım sırasında metrik derinlik haritasını yeniden oluşturur |
| Görüntü sınıflandırma | ✅ | YOLOv8, YOLO11, YOLO26 | Yumuşak maksimum çip üzerinde çalışır; HEF sınıf olasılıklarını doğrudan döndürür |
| Poz tahmini | ✅ | YOLOv8, YOLO11 | Çıkarım sırasında Ultralytics tarafından çözümlenen ham başlık tensörleri; YOLO26-pose şu anda desteklenmiyor |
| Yönelimli nesne algılama | ✅ | YOLOv8, YOLO11 | Çıkarım sırasında Ultralytics tarafından çözümlenen ham başlık tensörleri; YOLO26-OBB şu anda desteklenmiyor |
YOLOv10, YOLO-World, YOLOE ve RT-DETR gibi özel algılama aileleri şu anda Ultralytics format="hailo" yolu üzerinden ❌ desteklenmiyor. Ultralytics, doğrulanmamış bir HEF üretmek yerine derlemeden önce bu görevleri ve model ailelerini reddeder.
| Model ailesi | Hailo-8 / Hailo-8L | Hailo-10H / Hailo-15 | Çıktı |
|---|---|---|---|
| YOLOv8 / YOLO11 algılama | ✅ | ✅ | HailoRT YOLO NMS içeren HEF |
| YOLO26 algılama | ✅ | ✅ | Ham algılama tensörleri; varsayılan olarak ana bilgisayarda NMS, nms=False ile NMS'siz |
| YOLOv8-seg / YOLO11-seg | ✅ | ✅ | Ultralytics tarafından çıkarım sırasında çözümlenen ham segmentasyon tensörleri |
| YOLOv8-pose / YOLO11-pose | Hailo-8L doğrulandı | Doğrulanmadı | Ultralytics tarafından çıkarım sırasında çözümlenen ham poz tensörleri |
| YOLOv8-obb / YOLO11-obb | Hailo-8L doğrulandı | Doğrulanmadı | Ultralytics tarafından çıkarım sırasında çözümlenen ham OBB tensörleri |
| YOLOv8-cls / YOLO11-cls / YOLO26-cls | Hailo-8L doğrulandı | Doğrulanmadı | Çip üzerinde yumuşak maksimum; HEF sınıf olasılıklarını döndürür |
| YOLO26-sem | Hailo-8L doğrulandı | Doğrulanmadı | Logitler veya Hailo-10H/15'te doğrudan oluşturulan çok sınıflı harita |
| YOLO26-depth | Hailo-8L doğrulandı | Doğrulanmadı | Yoğun logit; Ultralytics tarafından çözümlenen metrik derinlik haritası |
Poz, OBB, sınıflandırma, YOLO26 anlamsal segmentasyon ve YOLO26 derinlik tahmini (Hailo-8/8L yolu), HailoRT 4.23 ve DFC 3.33 ile Hailo-8L üzerinde doğrulandı. Dışa aktarıcı listelenen diğer hedefleri kabul eder; ancak yeni görev yolları, üretimde kullanılmadan önce eşleşen derleyici ve cihazla doğrulanmalıdır.
Şu name değerlerinden birini seç:
name | Hedef hızlandırıcı |
|---|---|
hailo8 | Hailo-8 |
hailo8l | Hailo-8L |
hailo10h | Hailo-10H |
hailo15h | Hailo-15H |
hailo15l | Hailo-15L |
name belirtilmezse varsayılan olarak hailo8l kullanılır; name değerini dağıtım yapacağın hızlandırıcıya ayarla. Seçilen hedefle eşleşen DFC neslini yükle.
Hailo Donanımı ve SDK Nesilleri#
Hailo hızlandırıcı aileleri farklı derleyici nesilleri kullanır. Oluşturulan HEF hedef donanımla eşleşmelidir; bu nedenle dışa aktarımı yapan makine yerine çıkarımı çalıştıracak cihaz için name değerini seç.
| Donanım ailesi | DFC nesli |
|---|---|
| Hailo-8 / Hailo-8L | DFC v3.x |
| Hailo-10H | DFC v5.x |
| Hailo-15H / Hailo-15L | DFC v5.x |
Derleyici Linux x86_64 üzerinde çalışırken ortaya çıkan HEF, HailoRT aracılığıyla Hailo cihazında çalışır. Bu ayrım, iş istasyonunda veya Ultralytics Platform'da derleme yapıp küçük çalışma zamanı yapıtını ARM ya da x86 uç makineye dağıtmana olanak tanır.
Uyumluluk Notları#
Hailo derlemesi donanıma özeldir ve sabit bir giriş şekli kullanır. Şu kısıtlamaları göz önünde bulundur:
- Seçilen
name, dağıtım hızlandırıcısıyla eşleşmelidir. - Kalibrasyon görüntüleri, üretimde beklenen aydınlatma koşullarını, bakış açılarını, nesneleri ve arka planları temsil etmelidir.
- Her HEF sabit bir
imgsziçin derlenir. Birden fazla çözünürlüğe hizmet vermek için kareleri ana bilgisayarda derlenmiş boyuta yeniden boyutlandır veya her çözünürlük için ayrı bir HEF derle. - Ultralytics, model meta verilerinden son işleme yapılandırması oluşturduğu için özel sınıf sayıları desteklenir.
- Standart Ultralytics
Detectbaşlıklarına sahip algılama modelleri; YOLOv8/YOLO11 segmentasyon, poz ve OBB modelleri; YOLOv8/YOLO11/YOLO26 sınıflandırma modelleri; ayrıca YOLO26 anlamsal segmentasyon ve derinlik tahmini modelleri desteklenir. YOLO26 örnek segmentasyonu, poz ve yönelimli sınırlayıcı kutuların yanı sıra YOLO-World, YOLOE, YOLOv10 ve RT-DETR dışa aktarımları şu anda desteklenmiyor. - Hailo-8/8L ve Hailo-10H/15 yapıtları farklı DFC nesilleriyle derlenir ve birbirlerinin yerine kullanılamaz.
Kalibrasyon ve INT8 Nicemlemesi#
Hailo HEF dışa aktarımı, YOLO ağını hızlandırıcıya verimli biçimde eşlemek için INT8 nicemlemesi kullanır. Kalibrasyon veri kümesi aktivasyon aralıklarını tahmin eder; modeli yeniden eğitmez ve derleme sırasında etiket gerektirmez.
Hailo donanımı ve Dataflow Compiler, INT4, INT8 ve INT16 hassasiyetlerini destekler. Ultralytics format="hailo" yolu INT8 olarak derleme yapar ve daha geniş aralık gerektiren görevlerde 16 bit etkinleştirmeler (a16) uygular.
data belirtilmediğinde Ultralytics; algılama için COCO128, anlamsal segmentasyon için cityscapes8 veya derinlik tahmini için depth8 gibi göreve özgü, hafif bir kalibrasyon veri kümesi kullanır. Yoğun derinlik başlığı, kalibrasyon alanına özellikle duyarlıdır: bir derinlik modelini ilgisiz algılama görüntüleriyle kalibre etmek tahmin edilen haritayı düzleştirir; alanla uyumlu daha büyük kümeler ise doğruluğu artırır. Özel bir bilgisayarlı görü modeli için derleyicinin gerçek dağıtım alanını temsil eden görüntüleri görmesi amacıyla data değerini veri kümesinin YAML dosyasına ayarla:
model.export(format="hailo", name="hailo8", data="my_dataset.yaml")fraction, kalibrasyon için kullanılan oranı veya görüntü sayısını belirler. [train, val, test] listeleri her bölümü sınırlar; iki öğeli listeler test bölümünü sınırsız bırakır ve 0 testi atlar. Daha fazla görüntü ancak dağıtım alanını temsil ediyorsa fayda sağlar. Alan dışı görüntüler nicemlenmiş doğruluğu düşürebilir ve optimizasyon süresini artırabilir. INT8 HEF, özgün PyTorch modeline kıyasla doğruluk kaybediyorsa model veya çalışma zamanı ayarlarını değiştirmeden önce kalibrasyon verilerini iyileştir.
Model Ailelerine Göre Doğruluk Beklentileri#
Alanla uyumlu kalibrasyonla (COCO128, 128 görüntü) Hailo-8L üzerinde ölçülen INT8 HEF dışa aktarımları, aynı değerlendirme protokolünde PyTorch mAP50 değerlerinin aşağıdaki oranını korur:
| Model | Korunan mAP50 oranı | Notlar |
|---|---|---|
| YOLOv8n | ~100% | Çip üstü NMS içeren DFL başlığı |
| YOLO11n | ~96% | Omurgadaki dikkat blokları INT8'e karşı daha duyarlıdır |
| YOLO26n | ~93% | Uçtan uca başlık ve dikkat; güven eşiği notuna bak |
Koruma oranı, her iki modeli de aynı güven eşiğinde karşılaştırır. YOLOv8 ve YOLO11 HEF'leri, dışa aktarma sırasındaki conf değerini (varsayılan 0.25) çip üstü NMS'ye işler. Bu nedenle PyTorch temel modelini varsayılan düşük eşiğinde doğrulamak, hassasiyet-duyarlılık eğrisinin daha büyük bir bölümünü hesaba katar ve nicemleme farkını olduğundan büyük gösterir.
Algılamanın yanı sıra segmentasyon, poz, OBB ve sınıflandırma dışa aktarma yolları da aynı Hailo-8L üzerinde doğrulandı (DFC 3.33, HailoRT 4.23). Her INT8 HEF, alanla uyumlu kalibrasyon kullanılarak aynı doğrulama bölümündeki PyTorch kontrol noktasıyla karşılaştırıldı:
| Görev | Metrik (doğrulama bölümü) | YOLOv8n | YOLO11n |
|---|---|---|---|
| Örnek segmentasyonu | Maske mAP50 koruma oranı (COCO128-seg) | 98.0% | 93.6% |
| Poz | Kutu mAP50 koruma oranı (COCO8-pose) | 98.1% | 90.8% |
| Yönlendirilmiş sınırlayıcı kutu | mAP50 koruma oranı (DOTA128) | ~100% | 96.9% |
| Sınıflandırma | Top-1 koruma oranı (ImageNet val) | 92.6% | 95.4% |
Segmentasyon, poz ve OBB, her görev için varsayılan alan içi kümeyle (COCO128-seg, COCO8-pose, DOTA128) kalibre edildi; sınıflandırma ise ImageNet100 ile kalibre edildi. Bu varsayılanlardan iki önemli nokta çıkıyor: COCO8-pose yalnızca 8 görüntüden oluştuğu için poz sonuçlarını gösterge niteliğinde kabul et ve üretim kullanımı için daha büyük bir data= belirt; ayrıca DOTA8, her iki modelde de mAP50 değerini yaklaşık %100'e ulaştırdığı için OBB, DOTA128 üzerinde değerlendiriliyor. YOLO11'in YOLOv8'den daha yüksek koruma oranı sağladığı tek görev sınıflandırmadır; diğer görevlerde YOLO11'in dikkat omurgası INT8'e daha duyarlıdır.
Cihaz ölçümlerinden üç pratik kural çıkıyor:
- Her zaman alan içi verilerle kalibrasyon yap. Alan dışı görüntülerle ince ayar yapmak, hiç ince ayar yapmamaya eşdeğerdir: 1.238 alan dışı görüntüyle kalibre edilen bir YOLO26n, ince ayar yapılmadan derlenen modelle aynı doğruluğu (%85,7) korur. Küçük bir alan içi küme, büyük bir alan dışı kümeden daha iyidir.
- YOLO26 dağıtımlarında
confdeğerini yaklaşık 0.05 düşür. Nicemleme, YOLO26 puanlarını ortalama yaklaşık 0.05 düşürür; bu nedenle PyTorch'ta ayarlanan eşik, HEF üzerinde geçerli algılamaları kaçırır. Cihazdaconf=0.20kullanmak,conf=0.25eşiğindeki PyTorch algılama sayısıyla eşleşir. Eşiği biraz daha düşürmek (yaklaşıkconf=0.15), daha fazla düşük güvenli algılama pahasına kalan mAP50 farkının neredeyse tamamını kapatır. Nicemleme ayrıca algılamaların yaklaşık %20'sini yeniden sıralar; bu kalıcı sıralama etkisini hiçbir eşik geri alamaz, ancak bu yeniden sıralama daha düşük eşikte mAP50'nin yeniden elde edilmesini engellemez. - Dikkat cezası, Hailo-8/8L'de (DFC 3.33) yapısaldır. Dikkat blokları, derleyicinin sunduğu tüm kiplerde INT8 etkinleştirme girdilerini koruyan
matmulişlemlerine derlenir. Bu grafik için 16 bit çıkış kipi bellek ayırma aşamasında başarısız olur; çevredeki katmanların hassasiyetini artırmak da işe yaramaz çünkü matmul girdilerini yine INT8'e yeniden nicemler (testlerimizde derinlik ve çıkış evrişimlerini 16 bit olarak korumak mAP değerini değiştirmedi). Doğruluk öncelikliyse ve modeller birbirinin yerine kullanılabiliyorsa YOLO11 şu anda burada YOLO26'dan daha iyi nicemleniyor; daha yeni Hailo nesilleri (DFC 5.x) daha fazla karma hassasiyet seçeneği sunuyor ve farklı sonuç verebilir.
Dışa Aktarılan Yapıtlar#
Dışa aktarma, dağıtıma hazır HEF dosyasını ve Ultralytics meta verilerini içeren bir dizin oluşturur:
yolo11n_hailo_model/
├── yolo11n.hef
├── metadata.yaml
└── nms_config.json*.hef, HailoRT tarafından yüklenen derlenmiş modeldir.metadata.yaml, model adlarını, görevi, girdi boyutunu, stride değerini ve Hailo hedef bilgilerini korur.nms_config.json, YOLOv8 ve YOLO11 algılama modelleri için oluşturulan HailoRT NMS yapılandırmasını kaydeder. YOLO26 algılama ve algılama dışındaki tüm görevler (segmentasyon, anlamsal segmentasyon, derinlik, sınıflandırma, poz, OBB) bu dosyayı kullanmaz.
Derleme tamamlandıktan sonra ara ONNX grafiği kaldırılır.
Hailo Donanımında Çıkarım Çalıştırma#
Hedef cihaza HailoRT'yi yükle. Raspberry Pi AI HAT+ ve AI HAT+ 2 kullanıcıları Raspberry Pi AI yazılım kılavuzunu izleyebilir. Raspberry Pi OS üzerinde iki paket kümesi birlikte yüklenemez; bu nedenle yalnızca donanımına uygun bloğu çalıştır, ardından cihazı yeniden başlat.
AI HAT+ için (Hailo-8 / Hailo-8L):
sudo apt install dkms
sudo apt install hailo-all
sudo rebootAI HAT+ 2 için (Hailo-10H, Raspberry Pi OS Trixie veya daha yenisi):
sudo apt install dkms
sudo apt install hailo-h10-all
sudo rebootYeniden başlattıktan sonra hızlandırıcının algılandığını doğrula:
hailortcli fw-control identifyhailo-all ve hailo-h10-all paketleri HailoRT'yi yalnızca Raspberry Pi OS üzerinde yükler. Diğer tüm sistemlerde HailoRT paketini, DFC ile aynı kaynak olan Hailo Developer Zone'dan indirip yükle.
metadata.yaml HEF'in yanında kalacak şekilde dışa aktarma dizininin tamamını cihaza kopyala. Ultralytics, dışa aktarılan dizindeki predict ve val öğelerini çalıştırmak için HailoRT'yi kullanır:
from ultralytics import YOLO
model = YOLO("yolo11n_hailo_model")
results = model.predict("path/to/image.jpg")Algılama modellerinde arka uç, YOLOv8/YOLO11 HailoRT NMS çıktısını dönüştürür ve YOLO26 başlıklarından herhangi birinin kodunu otomatik olarak çözer. Varsayılan bire-çok çıktılar, tahminleyicinin NMS aşamasından geçer. Ham segmentasyon, poz ve OBB tensörlerinin kodunu çözer; çip üstü sınıflandırma olasılıklarını döndürür ve Hailo-8/8L'de ana makine indirgeme işlemiyle, tüm tek sınıflı başlıklarda veya çok sınıflı Hailo-10H/15 başlıklarında çip üstü ArgMax ile anlamsal sınıf haritaları üretir. TAPPAS, GStreamer ve Raspberry Pi picamera2.devices.Hailo yardımcısı, uygulamaya özel işlem hatları için kullanılmaya devam edebilir.
GStreamer dağıtımı için HEF'i hailonet öğesine aktar:
gst-launch-1.0 filesrc location=video.mp4 ! decodebin ! videoconvert ! \
hailonet hef-path=yolo11n_hailo_model/yolo11n.hef ! \
hailofilter function-name=yolov8 ! hailooverlay ! autovideosinkHailo Dağıtım Seçenekleri#
HEF, çeşitli Hailo çalışma zamanı arayüzlerinde kullanılabilen aynı dağıtıma hazır model yapıtıdır. Uygulamaya uygun arayüzü seç:
| Çalışma zamanı seçeneği | En uygun kullanım alanı |
|---|---|
| HailoRT Python veya C/C++ API'si | Özel uygulamalar ve çıkarım üzerinde doğrudan denetim |
Raspberry Pi picamera2.devices.Hailo | Raspberry Pi üzerinde Camera Module projeleri |
| GStreamer ve Hailo uygulamaları | Gerçek zamanlı video akışları ve çok aşamalı işlem hatları |
hailortcli | Cihaz denetimleri, HEF incelemesi ve kıyaslama |
Uygulamanın Ultralytics sınıf adlarına, girdi boyutuna, stride değerine veya diğer model bilgilerine ihtiyaç duyduğu durumlarda metadata.yaml öğesini HEF ile birlikte tut. HEF'in kendisi; kamera yakalama, görselleştirme, izleme, uyarılar veya depolama için uygulama düzeyindeki mantığın yerini tutmaz.
Hailo Cihazını ve HEF'i Doğrulama#
Kamera veya video işlem hattını entegre etmeden önce çalışma zamanını ve hızlandırıcıyı birbirinden bağımsız olarak doğrula:
hailortcli fw-control identify
hailortcli parse-hef yolo11n_hailo_model/yolo11n.hefYalnızca cihaz performansını ölçmek; Hailo çıkarımını video kod çözme, görüntü yeniden boyutlandırma, çizim ve uygulama G/Ç işlemlerinden ayrı değerlendirmeni sağlar. Uçtan uca gecikme süresini veya saniyedeki kare sayısını tahmin ederken uygulamanın tamamını ayrıca ölç.
Kıyaslamalar#
Ultralytics ekibi, PyTorch ve Hailo arasındaki hız ve doğruluğu karşılaştırarak YOLO26 modellerini benchmark etti.
| Model | Biçim | Durum | Boyut (MB) | metrics/mAP50-95(B) | Çıkarım süresi (ms/im) |
|---|---|---|---|---|---|
| YOLO26n | PyTorch | ✅ | 5.3 | 0.477 | 364.6 |
| YOLO26n | Hailo | ✅ | 7.3 | 0.455 | 21.7 |
| Model | Biçim | Durum | Boyut (MB) | metrics/mIoU | Çıkarım süresi (ms/im) |
|---|---|---|---|---|---|
| YOLO26n-sem | PyTorch | ✅ | 3.3 | 0.611 | 831.2 |
| YOLO26n-sem | Hailo | ✅ | 6.2 | 0.611 | 34.8 |
| Model | Biçim | Durum | Boyut (MB) | metrics/delta1 | metrics/abs_rel | metrics/rmse | Çıkarım süresi (ms/im) |
|---|---|---|---|---|---|---|---|
| YOLO26n-depth | PyTorch | ✅ | 12.4 | 0.8535 | 0.0983 | 0.2047 | 2133.4 |
| YOLO26n-depth | Hailo | ✅ | 9.9 | 0.8241 | 0.1232 | 0.2554 | 29.6 |
| Model | Biçim | Durum | Boyut (MB) | acc (top1) | acc (top5) | Çıkarım süresi (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n-cls | PyTorch | ✅ | 5.5 | 0.431 | 0.716 | 33.8 |
| YOLO26n-cls | Hailo | ✅ | 3.5 | 0.441 | 0.716 | 2.0 |
Yukarıdaki benchmarkların doğrulaması; tespit için COCO128, semantik segmentasyon için Cityscapes8, derinlik tahmini için Depth8 ve sınıflandırma için ImageNet100 kullanılarak yapıldı. Cityscapes8 ve Depth8'in her biri yalnızca 4 doğrulama görüntüsü içerdiğinden, bu veri kümelerindeki semantik segmentasyon ve derinlik doğruluğu değerlerini doğruluğun korunmasına ilişkin ölçümler olarak değil, duman testi sonuçları olarak değerlendir; doğrulukla ilgili sonuçlara varmadan önce Cityscapes veya NYU Depth V2 gibi tam bir veri kümesinde doğrulama yap. Çıkarım süresine ön işleme ve son işleme dahil değildir.
Hailo'nun Diğer YOLO Dışa Aktarma Biçimleriyle Karşılaştırması#
Dışa aktarma biçimini modeli çalıştıracak donanıma göre seç. HEF donanıma özeldir; genel amaçlı veya otomatik olarak en hızlı uç biçim olarak değil, son cihazda zaten Hailo hızlandırıcısı varsa tercih edilmelidir.
| Dağıtım hedefi veya öncelik | Önerilen Ultralytics biçimi | Hailo ile karşılaştırma |
|---|---|---|
| Mevcut Hailo NPU veya Raspberry Pi HAT | Hailo HEF (format="hailo") | Kurulu Hailo hızlandırıcısını ve HailoRT yığınını kullanır |
| Yeni, düşük güç tüketimli M.2 veya SBC NPU | DeepX | Daha yüksek YOLO performansı ve watt başına daha iyi performans için buradan başla |
| Yüksek aktarım hızlı, çok akışlı uç NPU | Axelera | Daha yeni hızlandırıcı donanımlarda daha fazla akış yoğunluğu ve aktarım hızı için değerlendir |
| NVIDIA GPU | TensorRT | Ayrı bir NPU yerine FP16 ve INT8 seçenekleri sunan NVIDIA GPU çekirdeklerini kullanır |
| Intel CPU, GPU veya NPU | OpenVINO | Intel sistemlerine zaten entegre edilmiş hızlandırıcıları hedefler |
| Apple donanımı | CoreML | Yerel Apple çalışma zamanı üzerinden Apple Neural Engine, GPU ve CPU'yu kullanır |
| Qualcomm Snapdragon NPU | QNN | Harici hızlandırıcı gerektirmek yerine Qualcomm'un cihaz içi NPU'su için derlenir |
| Rockchip NPU | RKNN | Uygun fiyatlı SBC'lerde ve gömülü sistemlerde yaygın olarak kullanılır |
| Huawei Ascend NPU | Ascend | Atlas kartlarında ve OrangePi AIPro'da Ascend AI Core için bir CANN .om modeli derler |
| Google Coral Edge TPU | Edge TPU | Hailo modülü yerine Coral hızlandırıcısında bir INT8 LiteRT modeli çalıştırır |
| Ambarella CVflow SoC | Ambarella | Ambarella kamera ve gömülü görü SoC'leri için derleme yapar |
| Raspberry Pi AI Camera | Sony IMX500 | Ağı ana makineye bağlı bir Hailo hızlandırıcısı üzerinden değil, kamera sensöründe çalıştırır |
| Mobil veya gömülü CPU/GPU | NCNN | Özel, desteklenen bir NPU bulunmadığında hafif ve taşınabilir bir çalışma zamanı sağlar |
| Taşınabilir, çalışma zamanları arası dağıtım | ONNX | Çalışma zamanları arasındaki taşınabilirliği korur; HailoRT, ONNX'i önce HEF'e derlemeden çalıştıramaz |
Yalnızca NPU olduğu için Hailo'nun daha hızlı veya daha verimli olduğunu varsayma. Yeni M.2 dağıtımlarında DeepX, daha yüksek YOLO performansı ve watt başına daha iyi performans için daha güçlü bir adayken Axelera, çok daha yüksek çoklu akış aktarım hızını hedefler. Rockchip, SBC'lerde ve gömülü sistemlerde popüler, daha düşük maliyetli bir seçenektir. Üreticilerin TOPS ve güç değerleri, uygulama kıyaslamalarıyla doğrudan karşılaştırılamaz; bu nedenle donanım satın almadan önce aday cihazlarda aynı YOLO kontrol noktasını, girdi boyutunu, doğruluğu, ana makineyi ve eksiksiz video işlem hattını doğrula.
Hailo Bilgisayarlı Görü Performansını Optimize Etme#
Model ve işlem hattı tercihleri çoğu zaman derleyici bayraklarından daha önemlidir:
- Küçük bir YOLO modeliyle başla ve model boyutunu yalnızca doğruluk gerektiriyorsa artır.
- Uygulama için önemli nesneleri koruyan en düşük sabit
imgszdeğerini seç. - Mümkün olduğunda gerçek kameradan ve ortamdan alınan kalibrasyon görüntülerini kullan.
- Her çıkarımda HEF'i yeniden açmak yerine Hailo ağını kareler arasında etkin tut.
- Cihazdaki çıkarım süresini ön işleme, video kod çözme, son işleme, görselleştirme ve ağ G/Ç işlemlerinden ayrı ölç.
- Sürekli video iş yükleri için GStreamer gibi bir akış hattı kullan.
- Dışa aktarılan HEF dosyasını üretimde kullanılacak hızlandırıcıda ve HailoRT sürümünde doğrula.
Dışa Aktarma Bağımsız Değişkenleri#
| Bağımsız değişken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
name | str | hailo8l | Hedef Hailo hızlandırıcı mimarisi |
imgsz | int, list | 640 | Sabit model giriş boyutu |
data | str | None | Kalibrasyon veri kümesi YAML dosyası; sınıflandırma için bunun yerine bir veri kümesi dizini veya yerleşik veri kümesi adı kullanılır. Belirtilmezse Ultralytics, göreve özgü bir kalibrasyon veri kümesi seçer. |
fraction | float, int veya list | 1.0 | Oran, görüntü sayısı veya [train, val, test] oranları/sayıları olarak kalibrasyon alt kümesi. İki öğeli listelerde test tam kalır; 0 ise onu atlar. |
quantize | int | 8 | Hailo dışa aktarımı INT8 nicelemesi kullanır |
simplify | bool | True | Ara ONNX grafiğini sadeleştir |
conf | float | 0.25 | YOLOv8/YOLO11 HailoRT NMS güven eşiği |
iou | float | 0.7 | YOLOv8/YOLO11 HailoRT NMS IoU eşiği |
device | str | None | Ara ONNX dışa aktarma adımı için aygıt; varsayılan olarak CPU (device=cpu). Dataflow Compiler adımlarında kullanılmaz. |
YOLOv8/YOLO11 algılama dışa aktarımlarına HailoRT NMS uygulanır. YOLO26, ana makine tarafındaki NMS için varsayılan olarak ham one-to-many çıktılar üretir; nms=False seçeneği, NMS içermeyen one-to-one çıktıları seçer. Segmentasyon, poz ve OBB ham başlık tensörlerini kullanır; sınıflandırma yonga üstü olasılıkları döndürür; anlamsal segmentasyon ise Hailo-8/8L ve tüm tek sınıflı başlıklarda ham logit'ler, çok sınıflı Hailo-10H/15 başlıklarında da önceden hesaplanmış sınıf haritaları döndürür. Derinlik tahmini, Ultralytics'in çıkarım sırasında metrik derinlik haritasına dönüştürdüğü ham derinlik logit'ini döndürür. Dinamik şekiller, gömülü Ultralytics NMS, FP16 ve FP32 desteklenmez.
Hailo dışa aktarma sorunlarını giderme#
Hailo Dataflow Compiler içe aktarma hatası#
Dışa aktarma işlemi hailo_sdk_client öğesinin eksik olduğunu bildirirse hedef donanım nesli için DFC wheel'ini, Ultralytics ile aynı Python ortamına yükle. Hailo-8/8L ve Hailo-10H/15 farklı derleyici nesilleri gerektirir.
Desteklenmeyen işletim sistemi veya mimari#
HEF derlemesi Linux x86_64'te desteklenir. Yerel bilgisayarın macOS, Windows, Raspberry Pi veya başka bir ARM sistemi ise Ultralytics Platform üzerinden dışa aktar ya da uyumlu bir iş istasyonu kullan.
Dışa aktarma uzun sürüyor#
DFC optimizasyonu en maliyetli aşamadır. Derleme süresi model boyutuyla, giriş çözünürlüğüyle ve kalibrasyon verileriyle artar. Desteklenen bir GPU optimizasyonu hızlandırabilir; yalnızca CPU ile derleme ise önemli ölçüde daha yavaş olabilir.
Nicelenmiş modelin doğruluğu düşüyor#
Üretim girdilerine benzeyen; önemli nesneleri, ölçekleri, aydınlatma koşullarını ve arka planları içeren kalibrasyon görüntüleri kullan. Dağıtımdan önce özgün PyTorch modelini ve dışa aktarılan HEF'i aynı doğrulama kümesinde karşılaştır. İyi kalibrasyona rağmen modele bağlı olarak orta düzeyde bir fark kalır; ölçülen temel değerler için Model Ailesine Göre Doğruluk Beklentileri sayfasına bak.
HEF aygıta yüklenmiyor#
name değerinin fiziksel Hailo mimarisiyle eşleştiğini ve aygıt sürücüsü, üretici yazılımı ile HailoRT paketlerinin birbiriyle uyumlu olduğunu doğrula. Yapıyı hailortcli parse-hef ile incele ve hızlandırıcıyı hailortcli fw-control identify ile doğrula.
Çıktı ayrıştırması yanlış görünüyor#
Ultralytics'in eşleşen YOLOv8, YOLO11 veya YOLO26 son işleme yolunu seçebilmesi için metadata.yaml dosyasını HEF'in yanında tut. Özel HailoRT uygulamaları da son işlem adımlarını dışa aktarılan model ailesiyle eşleştirmelidir.
Özet#
Ultralytics Hailo dışa aktarma, eğitilmiş bir YOLO modelinden dağıtıma hazır bir HEF'e doğrudan geçiş sağlar:
- Bir YOLOv8, YOLO11 veya YOLO26 algılama ya da sınıflandırma modelini; bir YOLOv8/YOLO11 segmentasyon, poz veya OBB modelini ya da bir YOLO26 anlamsal segmentasyon veya derinlik tahmini modelini yükle.
format="hailo"ile dışa aktar ve hedef mimariyi seç.- Eşleşen DFC ile yerel olarak kalibrasyon yapıp derle veya Ultralytics Platform'daki yönetilen dışa aktarma özelliğini kullan.
- HEF'i ve
metadata.yamldosyasını Hailo destekli uç aygıta kopyala. - HailoRT, Raspberry Pi Picamera2 veya GStreamer video hattıyla çıkarım çalıştır.
Diğer bilgisayarlı görü dağıtım hedefleri için Dışa aktarma modu, Kıyaslama modu ve entegrasyon kılavuzuna bak. İlgili donanım kılavuzları arasında DeepX, Axelera, ONNX, OpenVINO, TensorRT, NCNN, RKNN, Sony IMX500 ve Qualcomm QNN yer alır.
Sık Sorulan Sorular#
Hayır. DFC'yi desteklenen bir Linux x86_64 sisteminde çalıştır ve elde edilen HEF'i Raspberry Pi'ye dağıt.
Desteklenen bir GPU, DFC optimizasyon süresini önemli ölçüde kısaltır. CPU ile derleme mümkündür ancak çok daha uzun sürebilir.
Doğrudan dışa aktarma; standart YOLOv8, YOLO11 veya YOLO26 algılama başlığına sahip algılama modellerini, YOLOv8/YOLO11 segmentasyon, poz ve OBB modellerini ve YOLOv8/YOLO11/YOLO26 sınıflandırma modellerini destekler. Bu kapsama, söz konusu standart mimariler temel alınarak özel olarak eğitilmiş modeller de girer. YOLO26 anlamsal segmentasyon ve derinlik tahmini modelleri de desteklenir. YOLO26 örnek segmentasyonu, poz ve OBB modelleriyle birlikte YOLOv10, YOLO-World, YOLOE ve RT-DETR reddedilir; doğrulanmamış bir HEF üretilmez.
Evet. Özel
.ptağırlıklarıyla aynıformat="hailo"komutunu kullan ve temsili INT8 kalibrasyonu için eğitim veri kümesi YAML dosyasınıdataaracılığıyla belirt. Sınıf adları ve sınıf sayısı model meta verilerinden okunur.Her HEF sabit bir giriş şekli için derlenir; dolayısıyla tek bir HEF'in boyutu dinamik olarak değiştirilemez. Pratikte girdileri ana makinede derlenen boyuta yeniden boyutlandırabilir veya ihtiyaç duyduğun çözünürlükler için birden fazla HEF derleyebilirsin. Dağıtım hattıyla eşleşmesi için dışa aktarırken
imgszdeğerini seç.YOLO26, DFL içermeyen kutu regresyonu kullanır; bu nedenle her iki başlık da YOLOv8 tarzı HailoRT NMS hattı yerine ham tensörlere derlenir. Ultralytics tensörleri çözümler ve varsayılan olarak NMS uygular;
nms=Falseile dışa aktarıldığında ise NMS içermeyen algılamalar döndürür.Hailo Dataflow Compiler, modeli Linux x86_64 derleme makinesinde dönüştürüp nicelendirerek donanıma özgü bir HEF oluşturur. HailoRT, bu HEF'i hedef aygıta yükleyip çalıştırır.
Derlenmiş HEF'i Hailo çalışma zamanına dağıt. ONNX, dışa aktarma sırasında kullanılan bir ara gösterimdir ve derleme başarıyla tamamlandıktan sonra silinir.
Donanım nesline uygun derleyici wheel'ini Hailo Developer Zone'dan indir. Derleyici yalnızca HEF oluşturmak için gerekir; HailoRT, HEF'i hedef hızlandırıcıda çalıştırır.