YOLO Vision 2026:

Ultralytics YOLO Modelleri için Hailo Dışa Aktarma#

Hailo AI hızlandırıcıları, Raspberry Pi AI HAT+ ve AI HAT+ 2 gibi uç cihazlarda derlenmiş Hailo Çalıştırılabilir Biçimi (HEF) modellerini çalıştırır. Ultralytics; YOLO algılama, segmentasyon, anlamsal segmentasyon, derinlik tahmini, sınıflandırma, poz ve OBB modellerini Hailo Veri Akışı Derleyicisi (DFC) ile doğrudan HEF biçimine aktarır.

Hailo dağıtımı uçta bilgisayarlı görü için tasarlanmıştır: kameralar, robotlar, endüstriyel sistemler, ağ geçitleri ve her kareyi buluta göndermeden yerel nesne algılama gerektiren diğer cihazlar. Derlenmiş bir HEF, seçilen hızlandırıcı için gereken niceleme uygulanmış ağı, donanım tahsisini, zamanlamayı ve isteğe bağlı HailoRT son işleme adımlarını içerir.

Hailo edge AI ecosystem for Ultralytics YOLO

Daha yeni uç hızlandırıcıları karşılaştır

Yeni donanım dağıtımları için DeepX, Axelera ve Rockchip seçeneklerini de değerlendirebilirsin. DeepX, daha yüksek YOLO performansı ve watt başına daha iyi performans için daha güçlü bir başlangıç noktasıdır; Axelera ise daha yüksek aktarım hızlı dağıtımları hedefler. Rockchip ayrıca uygun fiyatlı SBC'lerde ve gömülü sistemlerde yaygın olarak kullanılır.

Ultralytics YOLO'yu Hailo üzerinde neden dağıtmalısın?#

Ultralytics YOLO'yu bir Hailo sinirsel işlem birimiyle (NPU) birleştirmek, model eğitiminden uçta AI çıkarımına geçiş için pratik bir yol sağlar. 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: Sürekli bulut bağlantısına güvenmeden insanları, araçları, paketleri, araçları 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 AI 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 AI 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 aktarım hızı, gecikme ve güç kullanımı; YOLO model boyutuna, giriş çözünürlüğüne, Hailo mimarisine, ana sisteme ve uygulama işlem hattına bağlıdır.

Hailo Dışa Aktarma Nasıl Çalışır?#

Ultralytics, format="hailo" arkasındaki dışa aktarma iş akışının tamamını yönetir:

YOLO (.pt) -> ONNX -> Hailo parse -> INT8 optimization -> HEF compile

Dışa aktarıcı bu aşamaları otomatik olarak gerçekleştirir:

  1. Derleyiciyle uyumlu ayarlarla statik bir ONNX grafiği dışa aktarır.
  2. Model mimarisi için başlık çıktısını seçer.
  3. Normalleştirme, aktivasyon ve son işleme yönergeleri oluşturur.
  4. Temsili bir kalibrasyon akışı oluşturur ve modeli INT8'e niceleme uygular.
  5. Optimize edilmiş grafiği seçilen Hailo hızlandırıcısı için derler.
  6. HEF dosyasını 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 algılama modelleri NMS içermeyen bire bir çıktılarını kullandığından dışa aktarıcı farklı bir çıktı ve niceleme yolunu otomatik olarak seçer. YOLOv8/YOLO11 segmentasyon, poz ve OBB modelleri, çıkarım sırasında Ultralytics tarafından çözümlenen ham başlık tensörlerini derler; YOLOv8/YOLO11/YOLO26 sınıflandırması ise softmax'ı çip üzerinde çalıştırır ve HEF doğrudan sınıf olasılıklarını döndürür. YOLO26 anlamsal segmentasyonu için dışa aktarıcı hızlandırıcıyı izler: Hailo-8/8L (DFC v3.x), ana makinede üst örnekleme ve indirgeme için sınıflandırıcı logit'lerini 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ıklar, ArgMax yerine eşik gerektirdikleri için her hedefte ana makine logit yolunu kullanır. YOLO26 derinlik modelleri, a16 içindeki yoğun logit konvolüsyonunu derler ve metrik derinlik haritasını ana makinede yeniden oluşturur (başlığın ardından gelen clamp/exp ve öğrenilmiş log-affine kalibrasyon); bu nedenle niceleyici en geniş aralığı ham logit üzerinde tutar. Kullanıcıların ONNX uç düğümlerini bulması, bir Hailo model betiği (.alls) yazması veya NMS JSON dosyasını manuel olarak oluşturması gerekmez.

Kurulum#

Ultralytics'ı yükle ve hedef donanımın için DFC wheel'ini Hailo Developer Zone'dan indir (ücretsiz kayıt gerekir):

pip install ultralytics
pip install /path/to/hailo_dataflow_compiler-*.whl
Not

Hailo derlemesi Linux x86_64 gerektirir. Modeli desteklenen bir iş istasyonunda derle, ardından çıktı dizinini hedef cihaza kopyala. Çıkarım için DFC gerekli değildir.

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'da Dışa Aktarma

Ultralytics Platform, yönetilen Hailo dışa aktarma olanağı sunar; bu nedenle yerel bir Hailo hesabı veya DFC kurulumu gerekmez.

Hailo HEF Modelini Dışa Aktar#

format="hailo" kullan ve hedef hızlandırıcıyı name ile 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 şöyledir:

yolo export model=yolo11n.pt format=hailo name=hailo8

Hailo dışa aktarması yalnızca INT8'i destekler. data sağlanmadığında 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:

En iyi doğruluk için en az 1.024 kalibrasyon görüntüsü kullan

Ultralytics, DFC optimizasyon seviyesini 2'ye zorlar ve ince ayarı gerçek kalibrasyon veri kümesi boyutunu kullanacak şekilde yapılandırır. Hailo, en az 1.024 çeşitli görüntü önerir; yerleşik hafif veri kümeleri 2. seviyede derlenir ancak üretim alanını temsil etmeyebilir. Üretim HEF dışa aktarmaları için data="path/to/dataset.yaml" kullanarak temsili bir veri kümesi aktar.

model.export(format="hailo", name="hailo8", data="path/to/dataset.yaml")

Derleme sabit bir giriş şekli kullanır. imgsz değerini cihazda kullanılan çö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 kullanılabilir dışa aktarıcı yollarını açıklar; donanım doğrulaması aşağıda ayrı olarak listelenmiştir.

Ultralytics göreviDoğrudan Hailo dışa aktarmaDesteklenen model aileleriNotlar
Nesne algılamaYOLOv8, YOLO11, YOLO26Özel modeller dahil standart Ultralytics Detect başlıkları
Örnek segmentasyonuYOLOv8, YOLO11Çıkarım sırasında Ultralytics tarafından çözümlenen ham başlık tensörleri; YOLO26-seg şu anda desteklenmiyor
Anlamsal segmentasyonYOLO26Hailo-8/8L ve tek sınıflı başlıklar logit döndürür; Hailo-10H/15 çok sınıflı haritaları çip üzerinde oluşturur
Derinlik tahminiYOLO26Yoğ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ırmaYOLOv8, YOLO11, YOLO26Softmax çip üzerinde çalışır; HEF doğrudan sınıf olasılıklarını döndürür
Poz tahminiYOLOv8, YOLO11Çıkarım sırasında Ultralytics tarafından çözümlenen ham başlık tensörleri; YOLO26-pose şu anda desteklenmiyor
Yönlendirilmiş nesne algılamaYOLOv8, 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 derleme öncesinde bu görevleri ve model ailelerini reddeder.

Model ailesiHailo-8 / Hailo-8LHailo-10H / Hailo-15Çıktı
YOLOv8 / YOLO11 algılamaHailoRT YOLO NMS içeren HEF
YOLO26 algılamaDesteklenen çalışma zamanları için NMS içermeyen algılama başlığı çıktıları
YOLOv8-seg / YOLO11-segÇıkarım sırasında Ultralytics tarafından çözümlenen ham segmentasyon tensörleri
YOLOv8-pose / YOLO11-poseHailo-8L doğrulandıDoğrulanmadıÇıkarım sırasında Ultralytics tarafından çözümlenen ham poz tensörleri
YOLOv8-obb / YOLO11-obbHailo-8L doğrulandıDoğrulanmadıÇıkarım sırasında Ultralytics tarafından çözümlenen ham OBB tensörleri
YOLOv8-cls / YOLO11-cls / YOLO26-clsHailo-8L doğrulandıDoğrulanmadıÇip üzerinde softmax; HEF sınıf olasılıklarını döndürür
YOLO26-semHailo-8L doğrulandıDoğrulanmadıLogit'ler veya Hailo-10H/15 üzerinde oluşturulmuş çok sınıflı harita
YOLO26-depthHailo-8L doğrulandıDoğrulanmadıYoğun logit; metrik derinlik haritası Ultralytics tarafından çözümlenir

Poz, OBB, sınıflandırma, YOLO26 anlamsal segmentasyonu 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 bu yeni görev yolları, üretimde kullanılmadan önce eşleşen derleyici ve cihazla doğrulama gerektirir.

Bu name değerlerinden birini seç:

nameHedef hızlandırıcı
hailo8Hailo-8
hailo8lHailo-8L
hailo10hHailo-10H
hailo15hHailo-15H
hailo15lHailo-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 name değerini dışa aktarma işlemini yapan makine yerine çıkarımı çalıştıracak cihaz için seç.

Donanım ailesiDFC nesli
Hailo-8 / Hailo-8LDFC v3.x
Hailo-10HDFC v5.x
Hailo-15H / Hailo-15LDFC v5.x

Derleyici Linux x86_64 üzerinde çalışırken ortaya çıkan HEF, HailoRT aracılığıyla Hailo cihazında çalışır. Bu ayrım, bir iş istasyonunda veya Ultralytics Platform'da derleme yapmana ve küçük çalışma zamanı çıktısını ARM ya da x86 uç ana makinesine 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ınlatmayı, bakış açılarını, nesneleri ve arka planları temsil etmelidir.
  • Her HEF sabit bir imgsz için derlenir. Birden fazla çözünürlüğü sunmak için ana makinedeki kareleri derlenmiş boyuta yeniden boyutlandır veya her çözünürlük için ayrı bir HEF derle.
  • Özel sınıf sayıları desteklenir; çünkü Ultralytics son işleme yapılandırmasını model meta verilerinden oluşturur.
  • Standart Ultralytics Detect başlıklarına sahip algılama modelleri, YOLOv8/YOLO11 segmentasyon, poz ve OBB modelleri ile YOLOv8/YOLO11/YOLO26 sınıflandırma modelleri ve YOLO26 anlamsal segmentasyon ve derinlik tahmini modelleri desteklenir; YOLO26 örnek segmentasyonu, poz ve yönlendirilmiş sınırlayıcı kutu modelleri ile YOLO-World, YOLOE, YOLOv10 ve RT-DETR dışa aktarımları şu anda desteklenmemektedir.
  • Hailo-8/8L ve Hailo-10H/15 yapıtları farklı DFC nesilleri tarafından derlenir ve birbirlerinin yerine kullanılamaz.

Kalibrasyon ve INT8 niceleme#

Hailo HEF dışa aktarımı, YOLO ağını hızlandırıcıya verimli biçimde eşlemek için INT8 niceleme kullanır. Kalibrasyon veri kümesi aktivasyon aralıklarını tahmin eder; modeli yeniden eğitmez ve derleme sırasında etiket gerektirmez.

Not

Hailo donanımı ve Dataflow Compiler, INT4, INT8 ve INT16 hassasiyetlerini destekler. Ultralytics format="hailo" yolu INT8 ile derlenir ve görevin daha geniş aralığa ihtiyaç duyduğu durumlarda 16 bit aktivasyonlar (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 karşı özellikle hassastır: bir derinlik modelini ilgisiz algılama görüntüleriyle kalibre etmek tahmin edilen haritayı düzleştirir ve alana özgü daha büyük veri kümeleri doğruluğu artırır. Özel bir bilgisayarlı görü modeli için data değerini veri kümesinin YAML dosyasına yönlendirerek derleyicinin gerçek dağıtım alanından temsili görüntüleri gözlemlemesini sağla:

model.export(format="hailo", name="hailo8", data="my_dataset.yaml")

fraction, kalibrasyon için kullanılan oranı veya görüntü sayısını seçer. [train, val, test] listeleri her bölümü sınırlar, iki öğeli listeler test bölümünü tam bırakır ve 0 testi atlar. Daha fazla görüntü yalnızca dağıtım alanını temsil ettiklerinde faydalıdır. Alan dışı görüntüler niceleme doğruluğunu azaltabilir ve optimizasyon süresini artırabilir. INT8 HEF, özgün PyTorch modeline kıyasla doğruluk kaybederse model veya çalışma zamanı ayarlarını değiştirmeden önce kalibrasyon verilerini iyileştir.

Model Ailesine Göre Doğruluk Beklentileri#

Alan içi kalibrasyonla (COCO128, 128 görüntü) Hailo-8L üzerinde ölçüldüğünde INT8 HEF dışa aktarımları, aynı değerlendirme protokolü altında PyTorch mAP50 değerlerinin aşağıdaki oranını korur:

ModelKorunan mAP50Notlar
YOLOv8n~100%Çip üzerinde NMS içeren DFL başlığı
YOLO11n~96%Omurgadaki dikkat blokları INT8'e daha duyarlıdır
YOLO26n~93%Uçtan uca başlık ve dikkat; güven notuna bakın

Koruma oranı, her iki modeli aynı güven eşiğinde karşılaştırır. YOLOv8 ve YOLO11 HEF'leri, dışa aktarım zamanındaki conf değerini (varsayılan 0.25) çip üzerindeki NMS'e gömer; bu nedenle PyTorch temelini varsayılan düşük eşiğinde doğrulamak, kesinlik-duyarlılık eğrisinin daha büyük bir bölümünü hesaba katar ve niceleme 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 aktarıcı yolları da aynı Hailo-8L (DFC 3.33, HailoRT 4.23) üzerinde doğrulandı. Her INT8 HEF, alan içi kalibrasyon kullanılarak aynı doğrulama bölümündeki PyTorch kontrol noktasıyla karşılaştırıldı:

GörevMetrik (doğrulama bölümü)YOLOv8nYOLO11n
Örnek segmentasyonumaske mAP50 koruması (COCO128-seg)98.0%93.6%
Pozkutu mAP50 koruması (COCO8-pose)98.1%90.8%
Yönlendirilmiş sınırlayıcı kutumAP50 koruması (DOTA128)~100%96.9%
Sınıflandırmatop-1 koruması (ImageNet doğrulama)92.6%95.4%

Segmentasyon, poz ve OBB her görevin varsayılan alan içi kümesiyle (COCO128-seg, COCO8-pose, DOTA128) kalibre edildi; sınıflandırma ise ImageNet100 ile kalibre edildi. Bu varsayılanlardan iki önemli sonuç çıkar: COCO8-pose yalnızca 8 görüntü içerdiğinden pozu gösterge niteliğinde değerlendir ve üretim için daha büyük bir data= sağla; ayrıca DOTA8 her iki model için de mAP50 değerini %100'e yakın doyuma ulaştırır, bu nedenle OBB DOTA128 üzerinde değerlendirilir. YOLO11'in YOLOv8'den daha fazlasını koruduğu tek görev sınıflandırmadır; diğerlerinde YOLO11 dikkat omurgası INT8'e daha duyarlıdır.

Cihaz ölçümlerinden üç pratik kural çıkar:

  1. Her zaman alan içinde kalibre et. Alan dışı görüntülerle ince ayar yapmak, ince ayarı tamamen devre dışı bırakmakla 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 veri kümesi, büyük bir alan dışı veri kümesinden daha iyidir.
  2. YOLO26 dağıtımları için conf değerini yaklaşık 0.05 azalt. Niceleme, YOLO26 skorlarını ortalama yaklaşık 0.05 düşürür; bu nedenle PyTorch'ta ayarlanan bir eşik HEF üzerindeki geçerli algılamaları eler. Cihazda conf=0.20 kullanmak, PyTorch'un conf=0.25 değerindeki algılama sayısıyla eşleşir; değeri biraz daha düşürmek (yaklaşık conf=0.15) ise daha fazla düşük güvenli algılama pahasına kalan mAP50 farkının neredeyse tamamını geri kazandırır. Niceleme ayrıca algılamaların yaklaşık %20'sini yeniden sıralar — hiçbir eşik değerinin geri alamayacağı kalıcı bir sıralama etkisi — ancak bu yeniden sıralama, daha düşük eşikte mAP50'nin geri kazanılmasını engellemez.
  3. Dikkat cezası Hailo-8/8L'de (DFC 3.33) yapısaldır. Dikkat blokları, derleyicinin sunduğu her modda INT8 aktivasyon girdilerini koruyan matmul işlemlerine derlenir; 16 bit çıkış modu bu grafik için ayırma işleminde başarısız olur ve çevredeki katmanların hassasiyetini artırmak yardımcı olmaz, çünkü matmul girdilerini yine de INT8'e yeniden nicelemektedir (derinliksel ve çıkış evrişimlerini 16 bit'te korumak testlerimizde mAP değerini değiştirmedi). Öncelik doğruluk olduğunda ve model değiştirilebilir olduğunda YOLO11 burada şu anda YOLO26'dan daha iyi niceleme yapar; daha yeni Hailo nesilleri (DFC 5.x) daha fazla karma hassasiyet seçeneği sunar ve farklı sonuç verebilir.

Dışa Aktarılan Yapıtlar#

Dışa aktarma, dağıtıma hazır HEF'i 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, giriş 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.

Ara ONNX grafiği derlemeden sonra 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'te iki paket grubu birlikte yüklenemez; bu nedenle yalnızca donanımına uyan bloğu çalıştır, ardından yeniden başlat.

AI HAT+ (Hailo-8 / Hailo-8L) için:

sudo apt install dkms
sudo apt install hailo-all
sudo reboot

AI HAT+ 2 (Hailo-10H, Raspberry Pi OS Trixie veya daha yeni sürüm) için:

sudo apt install dkms
sudo apt install hailo-h10-all
sudo reboot

Yeniden başlattıktan sonra hızlandırıcının algılandığını doğrula:

hailortcli fw-control identify
Not

hailo-all ve hailo-h10-all paketleri HailoRT'yi yalnızca Raspberry Pi OS'e yükler. Diğer tüm ana bilgisayarlarda HailoRT paketini, DFC ile aynı kaynak olan Hailo Developer Zone'dan indirip yükle.

Tam dışa aktarma dizinini cihaza kopyala; böylece metadata.yaml HEF'in yanında kalır. Ultralytics, dışa aktarılan dizinde predict ve val öğelerini doğrudan ç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 ve YOLO11 HailoRT NMS çıktısını dönüştürür ve YOLO26 bire bir çıktılarının kodunu otomatik olarak çözer. Ham segmentasyon, poz ve OBB tensörlerinin kodunu çözer, çip üzerindeki sınıflandırma olasılıklarını döndürür ve Hailo-8/8L üzerinde ana bilgisayar azaltımı yoluyla ya da Hailo-10H/15 çok sınıflı başlıklarında çip üzerindeki ArgMax ile anlamsal sınıf haritaları üretir. TAPPAS, GStreamer ve Raspberry Pi picamera2.devices.Hailo yardımcısı uygulamaya özgü işlem hatları için kullanılmaya devam eder.

Bir GStreamer dağıtımı için HEF'i hailonet öğesine geçir:

gst-launch-1.0 filesrc location=video.mp4 ! decodebin ! videoconvert ! \
  hailonet hef-path=yolo11n_hailo_model/yolo11n.hef ! \
  hailofilter function-name=yolov8 ! hailooverlay ! autovideosink

Hailo Dağıtım Seçenekleri#

HEF, çeşitli Hailo çalışma zamanı arayüzleri arasında aynı dağıtıma hazır model yapıtıdır. Uygulamaya uyan arayüzü seç:

Çalışma zamanı seçeneğiEn uygun kullanım
HailoRT Python veya C/C++ API'siÖzel uygulamalar ve çıkarım üzerinde doğrudan denetim
Raspberry Pi picamera2.devices.HailoRaspberry Pi üzerindeki Camera Module projeleri
GStreamer ve Hailo uygulamalarıGerçek zamanlı video akışları ve çok aşamalı işlem hatları
hailortcliCihaz kontrolleri, HEF incelemesi ve kıyaslama

Uygulamanın Ultralytics sınıf adlarına, giriş 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 almaz.

Hailo Cihazını ve HEF'i Doğrulama#

Bir kamera veya video işlem hattını entegre etmeden önce çalışma zamanını ve hızlandırıcıyı bağımsız olarak doğrula:

hailortcli fw-control identify
hailortcli parse-hef yolo11n_hailo_model/yolo11n.hef

Yalnızca cihaza yönelik performans ölçümleri, Hailo çıkarımını video kod çözme, görüntü yeniden boyutlandırma, çizim ve uygulama G/Ç işlemlerinden ayırır. Uçtan uca gecikme veya saniyedeki kare sayısını tahmin ederken uygulamanın tamamını ayrıca ölç.

Hailo'nun Diğer YOLO Dışa Aktarma Biçimleriyle Karşılaştırılması#

Dışa aktarma biçimini modeli çalıştıracak donanıma göre seç. HEF donanıma özeldir ve genel amaçlı ya da otomatik olarak en hızlı uç biçim olarak değil, yalnızca son cihazda zaten bir Hailo hızlandırıcısı bulunduğunda seçilmelidir.

Dağıtım hedefi veya öncelikÖnerilen Ultralytics biçimiHailo ile karşılaştırma
Mevcut Hailo NPU veya Raspberry Pi HATHailo HEF (format="hailo")Kurulu Hailo hızlandırıcısını ve HailoRT yığınını kullanır
Yeni, güç kısıtlamalı M.2 veya SBC NPU'suDeepXDaha yüksek YOLO performansı ve watt başına daha iyi performans için buradan başla
Yüksek verimli, çok akışlı uç NPUAxeleraDaha yeni hızlandırıcı donanımında daha yüksek akış yoğunluğu ve verim için değerlendir
NVIDIA GPUTensorRTAyrı bir NPU yerine FP16 ve INT8 seçenekleriyle NVIDIA GPU çekirdeklerini kullanır
Intel CPU, GPU veya NPUOpenVINOIntel sistemlerine zaten entegre edilmiş hızlandırıcıları hedefler
Apple donanımıCoreMLYerel Apple çalışma zamanı üzerinden Apple Neural Engine, GPU ve CPU'yu kullanır
Qualcomm Snapdragon NPUQNNHarici bir hızlandırıcı gerektirmek yerine Qualcomm'un cihaz üzerindeki NPU'su için derlenir
Rockchip NPURKNNUygun fiyatlı SBC'lerde ve gömülü sistemlerde yaygın olarak kullanılır
Ambarella CVflow SoCAmbarellaAmbarella kamera ve gömülü görü SoC'leri için derlenir
Raspberry Pi AI CameraSony IMX500Ağı, ana bilgisayara 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/GPUNCNNÖzel desteklenen bir NPU kullanılamadığında hafif ve taşınabilir bir çalışma zamanı sağlar
Taşınabilir, çalışma zamanları arası dağıtımONNXÇalışma zamanları arasındaki taşınabilirliği korur; HailoRT, ONNX'i önce HEF'e derlemeden çalıştıramaz

Hailo'nun yalnızca NPU olduğu için daha hızlı veya daha güç verimli olduğunu varsayma. Yeni M.2 dağıtımları için DeepX, daha yüksek YOLO performansı ve watt başına daha iyi performans açısından daha güçlü adaydır; Axelera ise önemli ölçüde daha yüksek çok akışlı verimi hedefler. Rockchip, SBC'lerde ve gömülü sistemlerde popüler ve daha düşük maliyetli bir seçenektir. Üreticilerin TOPS ve güç değerleri doğrudan karşılaştırılabilir uygulama kıyaslamaları değildir; bu nedenle donanım satın almadan önce aday cihazlarda aynı YOLO kontrol noktasını, giriş boyutunu, doğruluğu, ana bilgisayarı ve video işlem hattının tamamı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 gerektirdiğinde artır.
  • Uygulama için önemli nesneleri korumaya devam eden en düşük sabit imgsz değ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 boyunca etkin tut.
  • Cihaz çıkarım süresini ön işleme, video kod çözme, son işleme, görselleştirme ve ağ G/Ç işlemlerinden ayır.
  • Sürekli video iş yükleri için GStreamer gibi bir akış işlem hattı kullan.
  • Dışa aktarılan HEF'i üretimde kullanılacak tam hızlandırıcı ve HailoRT sürümü üzerinde doğrula.

Dışa Aktarma Bağımsız Değişkenleri#

Bağımsız değişkenTürVarsayılanAçıklama
namestrhailo8lHedef Hailo hızlandırıcı mimarisi
imgszint, list640Sabit model giriş boyutu
datastrNoneNiceleme veri kümesi YAML'ı; sınıflandırma için bunun yerine veri kümesi dizini veya yerleşik veri kümesi adı kullanılır. Belirtilmezse Ultralytics göreve özgü bir niceleme veri kümesi seçer.
fractionfloat, int veya list1.0Oran, görüntü sayısı veya [train, val, test] oranları/sayıları olarak kalibrasyon alt kümesi. İki öğeli listelerde test tam bırakılırken 0 atlanır.
quantizeint8Hailo dışa aktarma INT8 nicelemesini kullanır
simplifyboolTrueAra ONNX grafiğini basitleştir
conffloat0.25YOLOv8/YOLO11 HailoRT NMS güven eşiği
ioufloat0.7YOLOv8/YOLO11 HailoRT NMS IoU eşiği

Algılama dışa aktarmasında YOLOv8 ve YOLO11, HailoRT NMS alırken YOLO26, NMS içermeyen bire bir çıktılarını korur. Segmentasyon, poz ve OBB ham baş tensörlerini kullanır; sınıflandırma çip üzerindeki olasılıkları döndürür; anlamsal segmentasyon ise Hailo-8/8L ve tüm tek sınıflı başlıklarda ham logitleri, çok sınıflı Hailo-10H/15 başlıklarında ise pişirilmiş sınıf haritalarını döndürür. Derinlik tahmini, ham derinlik logitini döndürür; Ultralytics çıkarım sırasında bunu metrik derinlik haritasına çözümler. end2end parametresini iletme; açık geçersiz kılmalar reddedilir. 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 hailo_sdk_client öğesinin eksik olduğunu bildiriyorsa hedef donanım nesli için DFC wheel paketini 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 üzerinde desteklenir. Yerel bilgisayar macOS, Windows, Raspberry Pi veya başka bir ARM sistemi çalıştırıyorsa 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 boyutu, giriş çözünürlüğü ve kalibrasyon verileriyle artar. Desteklenen bir GPU optimizasyonu hızlandırabilirken yalnızca CPU ile derleme önemli ölçüde daha yavaş olabilir.

Nicelemeli model doğruluğu düşüyor#

Üretim girdilerine benzeyen ve ö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'yi aynı doğrulama kümesinde karşılaştır. İyi kalibrasyonda bile modele bağlı 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 cihazda yüklenmiyor#

name değerinin fiziksel Hailo mimarisiyle eşleştiğini ve cihaz sürücüsü, ürün 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ı hatalı 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'nin yanında tut. Özel HailoRT uygulamaları da son işlemeyi dışa aktarılan model ailesiyle eşleştirmelidir.

Özet#

Ultralytics Hailo dışa aktarması, eğitilmiş bir YOLO modelinden dağıtıma hazır bir HEF'ye doğrudan bir yol sağlar:

  1. 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.
  2. format="hailo" ile dışa aktar ve hedef mimariyi seç.
  3. Eşleşen DFC ile yerel olarak kalibre et ve derle ya da Ultralytics Platform'da yönetilen dışa aktarmayı kullan.
  4. HEF'yi ve metadata.yaml öğesini Hailo destekli uç cihaza kopyala.
  5. HailoRT, Raspberry Pi Picamera2 veya GStreamer video işlem hattıyla çıkarım çalıştır.

Diğer bilgisayarlı görü dağıtım hedefleri için Dışa aktarma modu, Karşılaştırma modu ve entegrasyonlar kılavuzuna bak. İlgili donanım kılavuzları arasında DeepX, Axelera, ONNX, OpenVINO, TensorRT, NCNN, RKNN, Sony IMX500 ve Qualcomm QNN bulunur.

SSS#

  • Hayır. DFC'yi desteklenen bir Linux x86_64 sisteminde çalıştır ve elde edilen HEF'yi Raspberry Pi'ye dağıt.

  • Desteklenen bir GPU, DFC optimizasyon süresini büyük ölçüde azaltır. CPU ile derleme mümkündür ancak önemli ölçüde 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. Buna, bu standart mimariler temel alınarak oluşturulmuş özel eğitimli modeller de dahildir. YOLO26 anlamsal segmentasyon ve derinlik tahmini modelleri de desteklenir. YOLO26 örnek segmentasyonu, poz ve OBB modelleri ile YOLOv10, YOLO-World, YOLOE ve RT-DETR, doğrulanmamış bir HEF üretmek yerine reddedilir.

  • Evet. Özel .pt ağırlıklarıyla aynı format="hailo" komutunu kullan ve temsili INT8 kalibrasyonu için eğitim veri kümesi YAML dosyasını data üzerinden ilet. Sınıf adları ve sınıf sayısı model meta verilerinden okunur.

  • Her HEF sabit bir giriş şekli için derlenir; bu nedenle tek bir HEF dinamik olarak yeniden boyutlandırılamaz. Uygulamada girdileri ana bilgisayarda derlenmiş boyuta yeniden boyutlandırabilir veya ihtiyaç duyduğun çözünürlükler için birden çok HEF derleyebilirsin. Dağıtım işlem hattıyla eşleşmesi için dışa aktarma sırasında imgsz değerini seç.

  • YOLO26, NMS içermeyen bire bir algılama başlığı kullanır. Ultralytics, YOLOv8 ve YOLO11 için kullanılan HailoRT YOLOv8 tarzı NMS'yi eklemek yerine bu çıktı tensörlerini doğrudan derler.

  • Hailo Dataflow Compiler, modeli Linux x86_64 derleme makinesinde donanıma özgü bir HEF'ye dönüştürür ve nicelemeli hâle getirir. HailoRT bu HEF'yi hedef cihazda yükler ve çalıştırır.

  • Derlenmiş HEF'yi 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 kaldırılır.

  • Donanım neslin için derleyici wheel paketini Hailo Developer Zone'dan indir. Derleyici yalnızca HEF oluşturmak için gereklidir; HailoRT bunu hedef hızlandırıcıda çalıştırır.

Yorumlar