Ultralytics YOLO Modelleri için Hailo Dışa Aktarımı#
Hailo AI hızlandırıcıları, Raspberry Pi AI Kit ve AI HAT+ 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 formatına dışarı aktarır.
Hailo dağıtımı, uç noktada bilgisayarlı görü için tasarlanmıştır: kameralar, robotlar, endüstriyel sistemler, ağ geçitleri ve her kareyi buluta göndermeden yerel nesne tespiti yapması gereken diğer cihazlar. Derlenmiş bir HEF; kuantize edilmiş ağı, donanım tahsisini, zamanlamayı ve seçilen hızlandırıcı için gereken isteğe bağlı HailoRT son işleme adımlarını içerir.
Yeni donanım dağıtımları için, daha yeni uç hızlandırıcı platformlarını hedefleyen ve daha yüksek performans sunabilecek Axelera ve DeepX çözümlerini de değerlendir. Hailo, en iyi doğruluk için en az 1.024 temsilci kalibrasyon görüntüsü önerir; yerleşik göreve özel veri kümeleri yalnızca hızlı testler için uygundur.
Neden Ultralytics YOLO'yu Hailo Üzerinde Dağıtmalısın?#
Ultralytics YOLO'yu bir Hailo sinirsel işlem birimi (NPU) ile birleştirmek, model eğitiminden düşük güç tüketen uç yapay zeka çıkarımına kadar pratik bir yol sunar. Yaygın kullanım durumları şunları içerir:
- Akıllı kameralar ve video analitiği: Güvenlik, perakende, trafik ve doluluk uygulamaları için kameraya yakın yerlerde gerçek zamanlı nesne tespiti çalıştır.
- Robotik ve otonom sistemler: Kesintisiz bir bulut bağlantısına ihtiyaç duymadan insanları, araçları, paketleri, araçları veya engelleri tespit et.
- Endüstriyel bilgisayarlı görü: Denetim, sayım, güvenlik izleme ve kalite kontrol için özel YOLO modelleri dağıt.
- Raspberry Pi AI projeleri: AI Kit veya AI HAT+ kullanarak Raspberry Pi sistemlerine hızlandırılmış görü çıkarımı ekle.
- Uç ağ geçitleri ve yapay zeka bilgisayarları: Bant genişliği ve bulut bilişim 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 süresi ve güç kullanımı; YOLO model boyutuna, girdi çözünürlüğüne, Hailo mimarisine, ana sisteme ve uygulama hattına bağlıdır.
Hailo Dışa Aktarımı Nasıl Çalışır?#
format="hailo" arkasındaki tam dışarı aktarma iş akışı Ultralytics'e aittir:
YOLO (.pt) -> ONNX -> Hailo parse -> INT8 optimization -> HEF compileDışa aktarıcı bu aşamaları otomatik olarak gerçekleştirir:
- Derleyici uyumlu ayarlara sahip statik bir ONNX grafiği dışa aktarır.
- Model mimarisi için kafa çıktılarını seçer.
- Normalleştirme, aktivasyon ve son işleme yönergeleri oluşturur.
- Temsili bir kalibrasyon akışı oluşturur ve modeli INT8'e kuantize eder.
- Optimize edilmiş grafiği seçilen Hailo hızlandırıcısı için derler.
- HEF dosyasını Ultralytics meta verileriyle kaydeder ve ara ONNX dosyasını kaldırır.
YOLOv8 ve YOLO11 algılama modelleri, derlenmiş ardışık düzen içinde HailoRT YOLO NMS kullanır. YOLO26 algılama modelleri, NMS gerektirmeyen bire bir (one-to-one) çıktılarını kullanır, bu nedenle dışarı aktarıcı farklı bir çıktıyı ve nicemleme yolunu otomatik olarak seçer. YOLOv8/YOLO11 segmentasyon, poz ve OBB, çıkarım sırasında Ultralytics tarafından kod çözme işlemi yapılan ham başlık tensörlerini derler ve YOLOv8/YOLO11/YOLO26 sınıflandırması çip üzerinde softmax çalıştırarak HEF'in doğrudan sınıf olasılıklarını döndürmesini sağlar. YOLO26 anlamsal segmentasyon için dışarı aktarıcı hızlandırıcıyı takip eder: Hailo-8/8L (DFC v3.x), ana bilgisayar yukarı örneklemesi ve indirgenmesi için sınıflandırıcı logit'lerini döndürürken, Hailo-10/15 (DFC v5.x) çip üzerinde çok sınıflı ArgMax başlıklarını derler ve kompakt bir sınıf haritası döndürür. Tek sınıflı başlıklar, ArgMax yerine bir eşik gerektirdikleri için her hedefte ana bilgisayar-logit yolunu kullanır. YOLO26 derinlik modelleri a16 içindeki yoğun logit conv'u derler ve ana bilgisayarda metrik derinlik haritasını yeniden oluşturur (başlığı takip eden clamp/exp ve öğrenilmiş log-afinite kalibrasyonu), böylece nicemleyici ham logit üzerinde en geniş aralığını korur. Kullanıcıların ONNX son düğümlerini bulmasına, bir Hailo model betiği (.alls) yazmasına veya manuel olarak bir NMS JSON oluşturmasına gerek yoktur.
Kurulum#
Ultralytics'i yükle ve hedef donanımın için DFC tekerleğini (wheel) Hailo Developer Zone'dan indir (ücretsiz kayıt gereklidir):
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-10 ve Hailo-15, DFC v5.x kullanır. Hedef hızlandırıcıyla eşleşen derleyici sürümünü yükle.
Ultralytics Platform, yönetilen Hailo dışarı aktarımı sağlar, bu nedenle yerel bir Hailo hesabı veya DFC kurulumu gerekmez.
Bir Hailo HEF Modeli 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="hailo8l")
print(output) # yolo11n_hailo_model/Eşdeğer CLI komutu şudur:
yolo export model=yolo11n.pt format=hailo name=hailo8lHailo dışarı aktarımı yalnızca INT8'dir. Ultralytics, data sağlanmadığında göreve özel bir kalibrasyon veri kümesini otomatik olarak indirir. Özel modeller için temsilci eğitim veya doğrulama görüntüleri kullan:
Ultralytics, DFC optimizasyon seviyesi 2'yi zorlar ve ince ayarı gerçek kalibrasyon veri kümesi boyutunu kullanacak şekilde yapılandırır. Hailo, en az 1.024 farklı görüntü önerir; yerleşik hafif veri kümeleri seviye 2'de derlenir ancak üretim alanını temsil etmeyebilir. Üretim HEF dışarı aktarımları için data="path/to/dataset.yaml" kullanarak temsili bir veri kümesi aktar.
model.export(format="hailo", name="hailo8l", data="path/to/dataset.yaml")Derleme sabit bir girdi şekli kullanır. imgsz değerini cihazda kullanılan çözünürlüğe ayarla:
model.export(format="hailo", name="hailo8l", imgsz=640)Desteklenen Modeller ve Donanım#
Hailo ekosistemi geniş bir bilgisayarla görü iş yükü yelpazesini kapsar, ancak Ultralytics format="hailo" dışarı 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ışarı aktarıcı yollarını açıklar; donanım doğrulaması aşağıda ayrı olarak listelenmiştir.
| Ultralytics görevi | Doğrudan Hailo dışa aktarımı | Desteklenen model aileleri | Notlar |
|---|---|---|---|
| Nesne algılama | ✅ | YOLOv8, YOLO11, YOLO26 | Özel modeller dahil standart Ultralytics Detect başlıkları |
| Örnek segmentasyonu | ✅ | YOLOv8, YOLO11 | Çıkarım sırasında Ultralytics tarafından kodu çözülen ham kafa tensörleri; YOLO26-seg şu anda desteklenmemektedir |
| Anlamsal segmentasyon | ✅ | YOLO26 | Hailo-8/8L ve tek sınıflı kafalar logit döndürür; Hailo-10/15 ise çok sınıflı haritalar oluşturur |
| Derinlik tahmini | ✅ | YOLO26 | a16 içinde derlenen yoğun logit; Ultralytics çıkarım sırasında metrik derinlik haritasını yeniden oluşturur |
| Görüntü sınıflandırma | ✅ | YOLOv8, YOLO11, YOLO26 | Softmax çip üzerinde çalışır; HEF doğrudan sınıf olasılıklarını döndürür |
| Poz tahmini | ✅ | YOLOv8, YOLO11 | Ultralytics tarafından çıkarım anında kodu çözülen ham kafa tensörleri; YOLO26-pose şu an desteklenmemektedir |
| Yönlendirilmiş nesne tespiti | ✅ | YOLOv8, YOLO11 | Ultralytics tarafından çıkarım anında kodu çözülen ham kafa tensörleri; YOLO26-OBB şu an desteklenmemektedir |
YOLOv10, YOLO-World, YOLOE ve RT-DETR gibi özelleştirilmiş tespit aileleri de ❌ desteklenmez. Ultralytics, doğrulanmamış bir HEF üretmek yerine derlemeden önce bu görevleri ve model ailelerini reddeder.
| Model ailesi | Hailo-8 / Hailo-8L | Hailo-10 / Hailo-15 | Çıktı |
|---|---|---|---|
| YOLOv8 / YOLO11 algılama | ✅ | ✅ | HailoRT YOLO NMS ile HEF |
| YOLO26 algılama | ✅ | ✅ | Desteklenen çalışma zamanları için NMS-free tespit başlığı çıktıları |
| YOLOv8-seg / YOLO11-seg | ✅ | ✅ | Çıkarım sırasında Ultralytics tarafından kodu çözülen ham segmentasyon tensörleri |
| YOLOv8-pose / YOLO11-pose | Hailo-8L doğrulandı | Doğrulanmadı | Ultralytics tarafından çıkarım anında çözülen ham poz tensörleri |
| YOLOv8-obb / YOLO11-obb | Hailo-8L doğrulandı | Doğrulanmadı | Ultralytics tarafından çıkarım anında çözülen ham OBB tensörleri |
| YOLOv8-cls / YOLO11-cls / YOLO26-cls | Hailo-8L doğrulandı | Doğrulanmadı | Çip üzerinde softmax; HEF sınıf olasılıklarını döndürür |
| YOLO26-sem | Hailo-8L doğrulandı | Doğrulanmadı | Logitler veya Hailo-10/15 üzerinde oluşturulmuş çok sınıflı bir harita |
| YOLO26-depth | Hailo-8L doğrulandı | Doğrulanmadı | Yoğun logit; Ultralytics tarafından çözülen metrik derinlik haritası |
Poz, OBB, sınıflandırma, YOLO26 semantik segmentasyon ve YOLO26 derinlik tahmini (Hailo-8/8L yolu), HailoRT 4.23 ve DFC 3.33 ile Hailo-8L üzerinde doğrulanmıştır. Dışarı aktarıcı listelenen diğer hedefleri de kabul eder, ancak bu yeni görev yolları üretim kullanımı öncesinde eşleşen derleyici ve cihazla doğrulama gerektirir.
Bu 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 |
hailo8l varsayılandır. 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. Üretilen HEF hedef donanımla eşleşmelidir, bu nedenle dışarı aktarmayı gerçekleştiren makine yerine çıkarımı çalıştıracak cihaz için name seç.
| Donanım ailesi | DFC nesli | Tipik dağıtım örnekleri |
|---|---|---|
| Hailo-8 / Hailo-8L | DFC v3.x | Hızlandırıcı modülleri, Raspberry Pi AI Kit/HAT+ |
| Hailo-10H | DFC v5.x | Daha yeni uç yapay zeka ve Raspberry Pi dağıtımları |
| Hailo-15H / Hailo-15L | DFC v5.x | Akıllı kamera ve gömülü görü uygulamaları |
Derleyici Linux x86_64 üzerinde çalışırken, sonuçta 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ı yapısını bir ARM veya x86 uç ana bilgisayarına dağıtmana olanak tanır.
Uyumluluk Notları#
Hailo derlemesi donanıma özeldir ve sabit bir girdi şekli kullanır. Bu kısıtlamaları aklında tut:
- Seçilen
namedağıtım hızlandırıcı ile eşleşmelidir. - Kalibrasyon görüntüleri, üretimde beklenen aydınlatmayı, bakış açılarını, nesneleri ve arka planları temsil etmelidir.
- Tek bir
imgszile derlenen bir HEF, çalışma zamanında dinamik olarak yeniden boyutlandırılabilir hale gelmez. - Özel sınıf sayıları desteklenir çünkü Ultralytics, model meta verilerinden son işleme yapılandırmasını oluşturur.
- 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 ile YOLO26 anlamsal segmentasyon ve derinlik tahmini modelleri desteklenmektedir; YOLO26 örnek segmentasyonu, poz ve yönlendirilmiş sınırlayıcı kutu (OBB), YOLO-World, YOLOE, YOLOv10 ve RT-DETR dışarı aktarımları şu anda desteklenmemektedir. - Hailo-8/8L ve Hailo-10/15 yapıları farklı DFC nesilleri tarafından derlenir ve birbirinin yerine kullanılamaz.
Kalibrasyon ve INT8 Kuantizasyonu#
Hailo HEF dışa aktarımı, YOLO ağını hızlandırıcı üzerinde verimli bir şekilde eşlemek için INT8 kuantizasyonu kullanır. Kalibrasyon veri seti aktivasyon aralıklarını tahmin eder; derleme sırasında modeli yeniden eğitmez veya etiket gerektirmez.
data atlandığında, Ultralytics algılama için COCO128, anlamsal segmentasyon için cityscapes8 veya derinlik tahmini için depth8 gibi göreve özel hafif bir kalibrasyon veri kümesi kullanır. Yoğun derinlik başlığı kalibrasyon alanına karşı özellikle hassastır: bir derinlik modelini ilişkisiz algılama görüntüleriyle kalibre etmek tahmin edilen haritayı düzleştirir ve daha büyük alan içi kümeler doğruluğu artırır. Özel bir bilgisayarla görü modeli için, derleyicinin gerçek dağıtım alanından temsilci görüntüleri gözlemlemesi adına data değerini kendi veri kümesi YAML dosyasına yönlendir:
model.export(format="hailo", name="hailo8l", data="my_dataset.yaml")fraction kalibrasyon için kullanılan veri kümesinin bölümünü seçer. Daha fazla görüntü yalnızca dağıtım alanını temsil ettiklerinde yardımcı olur; alan dışı görüntüler nicemlenmiş doğruluğu düşürebilir ve optimizasyon süresini artırabilir. INT8 HEF, orijinal PyTorch modeline kıyasla doğruluk kaybederse, model veya çalışma zamanı ayarlarını değiştirmeden önce ilk olarak kalibrasyon verilerini iyileştir.
Model Ailesine Göre Doğruluk Beklentileri#
Alan içi kalibrasyon (COCO128, 128 görsel) ile bir Hailo-8L üzerinde ölçüldüğünde, INT8 HEF dışa aktarımları aynı değerlendirme protokolü altında PyTorch mAP50 değerlerinin şu kadarlık kısmını korur:
| Model | mAP50 koruma oranı | Notlar |
|---|---|---|
| YOLOv8n | ~100% | Çip üstü NMS ile DFL başlığı |
| YOLO11n | ~96% | Omurgadaki dikkat blokları INT8'e karşı daha hassastır |
| YOLO26n | ~93% | Uçtan uca başlık artı dikkat; güven notuna bak |
Eşleme, her iki modeli de aynı güven eşiğinde karşılaştırır. YOLOv8 ve YOLO11 HEF'leri, dışarı aktarma zamanındaki conf (varsayılan 0,25) değerini çip üzerindeki NMS'e gömer, bu nedenle varsayılan düşük eşiğindeki bir PyTorch taban çizgisine karşı doğrulama yapmak, hassasiyet-geri çağırma eğrisinin daha büyük bir kısmını entegre eder ve nicemleme boşluğunu aşırı vurgular.
Algılamanın ötesinde; segmentasyon, pose, OBB ve sınıflandırma dışa aktarma yolları aynı Hailo-8L (DFC 3.33, HailoRT 4.23) üzerinde doğrulanmıştır. Her bir INT8 HEF, etki alanı içi kalibrasyon kullanılarak aynı doğrulama kümesindeki PyTorch kontrol noktası ile karşılaştırılmıştır:
| Görev | Metrik (doğrulama kümesi) | YOLOv8n | YOLO11n |
|---|---|---|---|
| Örnek segmentasyonu | mask mAP50 tutma oranı (COCO128-seg) | 98.0% | 93.6% |
| Pose | box mAP50 tutma oranı (COCO8-pose) | 98.1% | 90.8% |
| Yönlendirilmiş sınırlayıcı kutu | mAP50 tutma oranı (DOTA128) | ~100% | 96.9% |
| Sınıflandırma | top-1 tutma oranı (ImageNet val) | 92.6% | 95.4% |
Segmentasyon, poz ve OBB, her görevin varsayılan alan içi kümesi (COCO128-seg, COCO8-pose, DOTA128) ile kalibre edilmiştir; sınıflandırma ise ImageNet100 ile kalibre edilmiştir. Bu varsayılanlardan iki uyarı ortaya çıkar: COCO8-pose yalnızca 8 görüntü içerir, bu nedenle pozu gösterge niteliğinde ele al ve üretim için daha büyük bir data= aktar, ayrıca DOTA8 her iki model için de mAP50 değerini %100'e yakın doyurur, bu yüzden OBB DOTA128 üzerinde okunur. Sınıflandırma aynı zamanda YOLO11'in YOLOv8'den daha fazlasını koruduğu tek görevdir; diğerleri için YOLO11 dikkat (attention) omurgası INT8'e karşı daha hassastır.
Cihaz ölçümlerinden üç pratik kural çıkar:
- Her zaman alan içi kalibrasyon yap. Alan dışı görsellerle ince ayar yapmak, ince ayarı tamamen devre dışı bırakmakla eşdeğerdir: 1.238 alan dışı görselle kalibre edilen bir YOLO26n, ince ayar olmadan derlenen ile aynı doğruluğu (%85.7) korur. Küçük bir alan içi kümesi, büyük bir alan dışı kümesinden daha iyidir.
- YOLO26 dağıtımları için
confdeğerini yaklaşık 0,05 oranında düşür. Nicemleme, YOLO26 skorlarını ortalama 0,05 kadar aşağı kaydırır, bu nedenle PyTorch'ta ayarlanmış bir eşik HEF üzerindeki geçerli algılamaları düşürür. Cihaz üzerindeconf=0.20kullanmak,conf=0.25noktasında PyTorch'un algılama sayısı ile eşleşir ve biraz daha fazla düşürmek (conf=0.15civarında), daha fazla düşük güvenilirlik algılaması maliyeti pahasına kalan mAP50 boşluğunun esasen tamamını geri kazanır. Nicemleme ayrıca algılamaların yaklaşık %20'sini yeniden sıralar — hiçbir eşidin geri alamayacağı kalıcı bir sıra etkisi — ancak bu yeniden karıştırma, daha düşük eşikte mAP50 kurtarılmasını engellemez. - Dikkat cezası (attention penalty) Hailo-8/8L üzerinde yapıssaldır (DFC 3.33). Dikkat blokları, derleyicinin onlar için sunduğu her modda INT8 aktivasyon girdilerini koruyan
matmulişlemlerine derlenir; 16 bit çıkış modu bu grafik için ayırmada başarısız olur ve çevreleyen katmanların hassasiyetini artırmak yardımcı olmaz çünkü matmul girdilerini zaten INT8'e yeniden nicemler (derinlemesine ve çıkış konvolüsyonlarını 16 bitte korumak testlerimizde mAP'yi değiştirmedi). Doğruluk öncelik olduğunda ve model değiştirilebilir olduğunda, YOLO11 şu anda burada YOLO26'dan daha iyi nicemleme yapar; daha yeni Hailo nesilleri (DFC 5.x) daha fazla karışık hassasiyet seçeneği sunar ve farklılık gösterebilir.
Dışa Aktarılan Yapılar#
Dışa aktarma, dağıtılabilir HEF 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.yamlmodel adlarını, görevi, girdi boyutunu, adımı (stride) 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 tüm algılama dışı görevler (segmentasyon, anlamsal, 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ır#
Hedef cihaza HailoRT yükle. Raspberry Pi AI Kit ve AI HAT+ kullanıcıları Raspberry Pi AI yazılım kılavuzunu takip edebilir:
sudo apt install hailo-all
hailortcli fw-control identifymetadata.yaml öğesinin HEF'in yanında kalması için tüm dışarı aktarma dizinini cihaza kopyala. Ultralytics, dışarı aktarılan dizin üzerinde doğrudan predict ve val çalıştırmak için HailoRT kullanır:
from ultralytics import YOLO
model = YOLO("yolo11n_hailo_model")
results = model.predict("path/to/image.jpg")Algılama modelleri için arka uç, YOLOv8 ve YOLO11 HailoRT NMS çıktısını dönüştürür ve YOLO26 bire bir (one-to-one) çıktılarını otomatik olarak çözer. Ham segmentasyon, poz ve OBB tensörlerinin kodunu çözer, çip üzerinde sınıflandırma olasılıklarını döndürür ve Hailo-8/8L üzerinde ana bilgisayar indirgeme yoluyla anlamsal sınıf haritaları ve tüm tek sınıflı başlıklar veya çok sınıflı Hailo-10/15 başlıkları için çip üzerinde bir ArgMax üretir. TAPPAS, GStreamer ve Raspberry Pi picamera2.devices.Hailo yardımcısı uygulamaya özel ardışık düzenler için kullanılabilir durumda kalır.
Bir GStreamer dağıtımı için HEF dosyasını hailonet içine 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 aynı dağıtılabilir model yapısıdır. Uygulamaya uygun arayüzü seç:
| Çalışma zamanı seçeneği | En uygun olduğu alan |
|---|---|
| HailoRT Python veya C/C++ API | Özel uygulamalar ve çıkarım üzerinde doğrudan kontrol |
Raspberry Pi picamera2.devices.Hailo | Raspberry Pi üzerinde Kamera Modülü projeleri |
| GStreamer ve Hailo uygulamaları | Gerçek zamanlı video akışları ve çok aşamalı boru hatları |
hailortcli | Cihaz kontrolleri, HEF incelemesi ve kıyaslama |
Uygulamanın Ultralytics sınıf adlarına, girdi boyutuna, adıma (stride) veya diğer model bilgilerine ihtiyaç duyduğu durumlarda metadata.yaml dosyasını 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 dosyasını doğrulayın#
Bir kamera veya video boru hattını entegre etmeden önce, çalışma zamanını ve hızlandırıcıyı bağımsız olarak doğrulayın:
hailortcli fw-control identify
hailortcli parse-hef yolo11n_hailo_model/yolo11n.hefSadece cihaz üzerindeki 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 gecikmeyi veya saniye başına kare sayısını tahmin ederken uygulamayı bir bütün olarak ayrıca ölçün.
Hailo'nun Diğer YOLO Dışa Aktarma Formatlarıyla Karşılaştırılması#
Modeli çalıştıracak donanıma göre bir dışa aktarma formatı seçin:
| Dağıtım hedefi | Ultralytics dışa aktarma formatı |
|---|---|
| Hailo NPU | Hailo HEF (format="hailo") |
| NVIDIA GPU | TensorRT |
| Intel CPU, GPU veya NPU | OpenVINO |
| Apple donanımı | CoreML |
| Qualcomm Snapdragon NPU | QNN |
| Rockchip NPU | RKNN |
| Raspberry Pi AI Camera | Sony IMX500 |
| Taşınabilir çapraz çalışma zamanı kullanımı | ONNX |
Nihai cihaz bir Hailo hızlandırıcısı içerdiğinde HEF doğru tercihtir. ONNX taşınabilir bir ara format olarak yararlı kalmaya devam eder, ancak HailoRT orijinal ONNX modeli yerine DFC tarafından üretilen donanıma özel HEF dosyasını yürütür.
Hailo Bilgisayarlı Görü Performansını Optimize Edin#
Model ve boru hattı tercihleri genellikle derleyici bayraklarından daha önemlidir:
- Küçük bir YOLO modeli ile başlayın ve yalnızca doğruluk gerektirdiğinde model boyutunu artırın.
- Uygulama için önemli olan nesneleri korumaya devam eden 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ın.
- Her çıkarım için HEF dosyasını yeniden açmak yerine Hailo ağını kareler boyunca aktif tutun.
- Cihaz çıkarım süresini ön işleme, video kod çözme, son işleme, görselleştirme ve ağ G/Ç işlemlerinden ayırın.
- Sürekli video iş yükleri için GStreamer gibi akışlı bir boru hattı kullanın.
- Dışa aktarılan HEF dosyasını üretimde kullanılan tam hızlandırıcı ve HailoRT sürümü üzerinde doğrulayın.
Dışa Aktarma Argümanları#
| Argüman | Tip | 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 seti YAML dosyası; sınıflandırma işlemi ise bunun yerine bir veri seti dizini veya yerleşik bir veri seti adı kullanır. Atlandığı takdirde, Ultralytics göreve özel bir kalibrasyon veri seti seçer. |
fraction | float | 1.0 | Kullanılacak kalibrasyon görüntüleri oranı |
quantize | int | 8 | Hailo dışa aktarımı INT8 niceleme kullanır |
simplify | bool | True | Ara ONNX grafiğini basitleştirin |
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 |
Algılama dışarı aktarımı için YOLOv8 ve YOLO11 HailoRT NMS alırken, YOLO26 NMS gerektirmeyen bire bir (one-to-one) çıktılarını korur. Segmentasyon, poz ve OBB ham başlık tensörlerini kullanır, sınıflandırma çip üzerinde olasılıklar döndürür ve anlamsal segmentasyon Hailo-8/8L ve tüm tek sınıflı başlıklar üzerinde ham logit'ler veya çok sınıflı Hailo-10/15 başlıkları için gömülü sınıf haritaları döndürür. Derinlik tahmini, Ultralytics'in çıkarım sırasında metrik bir derinlik haritasına dönüştürdüğü ham derinlik logit'ini döndürür. end2end geçme; açık geçersiz kılmalar reddedilir. Dinamik şekiller, birden büyük yığınlar, gömülü Ultralytics NMS, FP16 ve FP32 de desteklenmez.
Hailo Dışa Aktarma Sorun Giderme#
Hailo Dataflow Compiler İçe Aktarma Hatası#
Dışarı aktarım hailo_sdk_client eksik olduğunu bildirirse, hedef donanım nesli için DFC tekerleğini (wheel) Ultralytics ile aynı Python ortamına yükle. Hailo-8/8L ve Hailo-10/15 farklı derleyici nesilleri gerektirir.
Desteklenmeyen İşletim Sistemi veya Mimari#
HEF derlemesi Linux x86_64 üzerinde desteklenir. Yerel bilgisayar macOS, Windows, Raspberry Pi veya başka bir ARM sistemi ise Ultralytics Platform aracılığıyla dışarı aktar veya 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 birlikte artar. Desteklenen bir GPU optimizasyonu hızlandırabilir, sadece CPU ile derleme ise önemli ölçüde daha yavaş olabilir.
Niceleştirilmiş Model Doğruluğu Düşüyor#
Üretim girdilerine benzeyen ve önemli nesneleri, ölçekleri, ışık koşullarını ve arka planları içeren kalibrasyon görüntüleri kullan. Dağıtımdan önce orijinal PyTorch modelini ve dışarı aktarılan HEF'i aynı doğrulama kümesi üzerinde karşılaştır. İyi kalibrasyonla bile aileye bağlı orta düzeyde bir boşluk kalır; ölçülen taban çizgileri için Accuracy Expectations by Model Family sayfasına bak.
HEF Cihazda Yüklenmiyor#
name öğesinin fiziksel Hailo mimarisiyle eşleştiğini ve cihaz sürücüsünün, donanım yazılımının (firmware) ve HailoRT paketlerinin birbiriyle uyumlu olduğunu doğrula. Yapıtı hailortcli parse-hef ile incele ve hızlandırıcıyı hailortcli fw-control identify ile doğrula.
Çıktı Ayrıştırma Yanlış Görünüyor#
Ultralytics'in eşleşen YOLOv8, YOLO11 veya YOLO26 işleme sonrası (post-processing) yolunu seçebilmesi için metadata.yaml dosyasını HEF'in yanında tut. Özel HailoRT uygulamaları da benzer şekilde işleme sonrasını dışarı aktarılan model ailesiyle eşleştirmelidir.
Özet#
Ultralytics Hailo dışa aktarımı, eğitilmiş bir YOLO modelinden dağıtılabilir bir HEF dosyasına doğrudan bir yol sağlar:
- Bir YOLOv8, YOLO11 veya YOLO26 tespit ya da sınıflandırma modeli, bir YOLOv8/YOLO11 segmentasyon, poz ya da OBB modeli veya bir YOLO26 semantik segmentasyon ya da derinlik tahmini modeli yükle.
format="hailo"ile dışarı aktar ve hedef mimariyi seç.- Eşleşen DFC ile yerel olarak kalibre edip derleyin veya Ultralytics Platform üzerindeki yönetilen dışa aktarma özelliğini kullanın.
- HEF ve
metadata.yamldosyalarını Hailo destekli uç cihaza kopyala. - HailoRT, Raspberry Pi Picamera2 veya bir GStreamer video işlem hattı ile çıkarım çalıştır.
Diğer bilgisayarla görü dağıtım hedefleri için Export mode, Benchmark mode ve integrations guide sayfalarına göz at. İlgili donanım kılavuzları arasında ONNX, OpenVINO, TensorRT, NCNN, RKNN, Sony IMX500 ve Qualcomm QNN yer alır.
SSS#
Hayır. DFC işlemini desteklenen bir Linux x86_64 sisteminde çalıştırın ve ortaya çıkan HEF dosyasını Raspberry Pi cihazına dağıtın.
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ışarı aktarım; standart YOLOv8, YOLO11 veya YOLO26 tespit başlığına sahip tespit modellerini, YOLOv8/YOLO11 segmentasyon, poz ve OBB modellerini ile YOLOv8/YOLO11/YOLO26 sınıflandırma modellerini destekler. Bu, bu standart mimarilerden oluşturulan özel eğitilmiş modelleri de içerir. YOLO26 semantik segmentasyon ve derinlik tahmini modelleri de desteklenmektedir. YOLO26 örnek segmentasyonu, poz ve OBB ile YOLOv10, YOLO-World, YOLOE ve RT-DETR, doğrulanmamış bir HEF üretmek yerine reddedilir.
Evet. Özel
.ptağırlıklarıyla aynıformat="hailo"komutunu kullan ve temsilci INT8 kalibrasyonu için eğitim veri kümesi YAML dosyasınıdataüzerinden aktar. Sınıf adları ve sınıf sayısı model meta verilerinden okunur.Hayır. DFC, sabit bir girdi şeklini HEF içine derler. Dağıtım ardışık düzeni tarafından kullanılan çözünürlükle eşleşmesi için dışarı aktarma sırasında
imgszseç.YOLO26, NMS içermeyen bire bir bir tespit kafası 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 bir Linux x86_64 derleme makinesinde donanıma özel bir HEF dosyasına dönüştürür ve niceleştirir. HailoRT, bu HEF dosyasını hedef cihazda yükler ve çalıştırır.
Derlenmiş HEF dosyasını Hailo çalışma zamanına dağıtın. ONNX, dışa aktarma sırasında kullanılan bir ara temsildir ve başarılı derlemeden sonra kaldırılır.
Donanım neslinize uygun derleyici wheel dosyasını Hailo Developer Zone'dan indirin. Derleyici yalnızca HEF dosyasını oluşturmak için gereklidir; HailoRT bunu hedef hızlandırıcıda çalıştırır.