İçeriğe geç

Sony IMX500 Export for Ultralytics YOLO11

This guide covers exporting and deploying Ultralytics YOLO11 models to Raspberry Pi AI Cameras that feature the Sony IMX500 sensor.

Raspberry Pi AI Kamera gibi sınırlı hesaplama gücüne sahip cihazlarda bilgisayarla görme modellerini dağıtmak zor olabilir. Daha hızlı performans için optimize edilmiş bir model formatı kullanmak büyük bir fark yaratır.

The IMX500 model format is designed to use minimal power while delivering fast performance for neural networks. It allows you to optimize your Ultralytics YOLO11 models for high-speed and low-power inferencing. In this guide, we'll walk you through exporting and deploying your models to the IMX500 format while making it easier for your models to perform well on the Raspberry Pi AI Camera.

Raspberry Pi Yapay Zeka Kamerası

Neden IMX500'e Aktarmalısınız?

Sony'nin IMX500 Akıllı Görüş Sensörü, uç yapay zeka işleme alanında oyunun kurallarını değiştiren bir donanım. Yonga üzerinde yapay zeka özelliklerine sahip dünyanın ilk akıllı görüş sensörüdür. Bu sensör; veri işleme darboğazları, gizlilik endişeleri ve performans sınırlamaları gibi uç yapay zeka alanındaki birçok zorluğun üstesinden gelmeye yardımcı oluyor.
Diğer sensörler yalnızca görüntüleri ve kareleri aktarırken, IMX500 tüm hikayeyi anlatıyor. Verileri doğrudan sensör üzerinde işleyerek cihazların gerçek zamanlı olarak içgörüler üretmesini sağlar.

Sony's IMX500 Export for YOLO11 Models

IMX500, cihazların verileri işlenmek üzere buluta göndermesine gerek kalmadan doğrudan sensör üzerinde işleme biçimini dönüştürmek üzere tasarlanmıştır.

IMX500 kuantize edilmiş modellerle çalışır. Niceleme, çok fazla doğruluk kaybetmeden modelleri daha küçük ve daha hızlı hale getirir. Uç bilişimin sınırlı kaynakları için idealdir, gecikmeyi azaltarak ve bulut bağımlılığı olmadan yerel olarak hızlı veri işlemeye izin vererek uygulamaların hızlı yanıt vermesini sağlar. Yerel işleme aynı zamanda uzak bir sunucuya gönderilmediği için kullanıcı verilerini gizli ve güvenli tutar.

IMX500 Temel Özellikler:

  • Meta Veri Çıkışı: IMX500, yalnızca görüntü iletmek yerine hem görüntü hem de meta veri (çıkarım sonucu) çıktısı alabilir ve veri boyutunu en aza indirmek, bant genişliğini azaltmak ve maliyetleri düşürmek için yalnızca meta veri çıktısı alabilir.
  • Gizlilik Endişelerini Giderir: Verileri cihaz üzerinde işleyerek gizlilik endişelerini gideren IMX500, kişi sayma ve doluluk takibi gibi insan merkezli uygulamalar için idealdir.
  • Gerçek Zamanlı İşleme: Hızlı, sensör üzerinde işleme, otonom sistemler gibi uç yapay zeka uygulamaları için mükemmel olan gerçek zamanlı kararları destekler.

Before You Begin: For best results, ensure your YOLO11 model is well-prepared for export by following our Model Training Guide, Data Preparation Guide, and Hyperparameter Tuning Guide.

Kullanım Örnekleri

Export an Ultralytics YOLO11 model to IMX500 format and run inference with the exported model.

Not

Burada sadece modelin beklendiği gibi çalıştığından emin olmak için çıkarım yapıyoruz. Ancak, Raspberry Pi Yapay Zeka Kamerasında dağıtım ve çıkarım için lütfen Dağıtım bölümündeki IMX500 Dışa Aktarımını Kullanma kısmına geçin.

Örnek

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Export the model
model.export(format="imx", data="coco8.yaml")  # exports with PTQ quantization by default

# Load the exported model
imx_model = YOLO("yolo11n_imx_model")

# Run inference
results = imx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to imx format with Post-Training Quantization (PTQ)
yolo export model=yolo11n.pt format=imx data=coco8.yaml

# Run inference with the exported model
yolo predict model=yolo11n_imx_model source='https://ultralytics.com/images/bus.jpg'

Uyarı

The Ultralytics package installs additional export dependencies at runtime. The first time you run the export command, you may need to restart your console to ensure it works correctly.

Dışa Aktarma Argümanları

Tartışma Tip Varsayılan Açıklama
format str 'imx' Dışa aktarılan model için hedef format, çeşitli dağıtım ortamlarıyla uyumluluğu tanımlar.
imgsz int veya tuple 640 Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya bir tuple olabilir (height, width) belirli boyutlar için.
int8 bool True INT8 nicelemeyi etkinleştirerek modeli daha da sıkıştırır ve özellikle uç cihazlar için minimum doğruluk kaybıyla çıkarımı hızlandırır.
data str 'coco8.yaml' Yol veri kümesi yapılandırma dosyası (varsayılan: coco8.yaml), kuantizasyon için gereklidir.
fraction float 1.0 INT8 niceleme kalibrasyonu için kullanılacak veri kümesinin kesrini belirtir. Tam veri kümesinin bir alt kümesinde kalibrasyon yapılmasına izin verir, deneyler için veya kaynaklar sınırlı olduğunda kullanışlıdır. INT8 etkinken belirtilmezse, tüm veri kümesi kullanılır.
device str None Dışa aktarma için cihazı belirtir: GPU (device=0), CPU (device=cpu).

İpucu

CUDA destekli bir GPU 'da dışa aktarıyorsanız, lütfen argümanı iletin device=0 daha hızlı ihracat için.

Dışa aktarma işlemi hakkında daha fazla bilgi için, dışa aktarma ile ilgiliUltralytics dokümantasyon sayfasını ziyaret edin.

Dışa aktarma işlemi, niceleme doğrulaması için bir ONNX modeli ile birlikte şu adda bir dizin oluşturacaktır <model-name>_imx_model. Bu dizin aşağıdakileri içerecektir packerOut.zip dosyası, IMX500 donanımına yerleştirilmek üzere modelin paketlenmesi için gereklidir. Ek olarak <model-name>_imx_model klasörü bir metin dosyası içerecektir (labels.txt) modelle ilişkili tüm etiketleri listeler.

yolo11n_imx_model
├── dnnParams.xml
├── labels.txt
├── packerOut.zip
├── yolo11n_imx.onnx
├── yolo11n_imx500_model_MemoryReport.json
└── yolo11n_imx500_model.pbtxt

Dağıtımda IMX500 Dışa Aktarmayı Kullanma

After exporting Ultralytics YOLO11n model to IMX500 format, it can be deployed to Raspberry Pi AI Camera for inference.

Donanım Önkoşulları

Aşağıdaki donanıma sahip olduğunuzdan emin olun:

  1. Raspberry Pi 5 veya Raspberry Pi 4 Model B
  2. Raspberry Pi Yapay Zeka Kamerası

Raspberry Pi AI kamerayı Raspberry Pi üzerindeki 15 pinli MIPI CSI konektörüne bağlayın ve Raspberry Pi'yi açın

Yazılım Önkoşulları

Not

Bu kılavuz Raspberry Pi 5 üzerinde çalışan Raspberry Pi OS Bookworm ile test edilmiştir.

Adım 1: Bir terminal penceresi açın ve Raspberry Pi yazılımını en son sürüme güncellemek için aşağıdaki komutları uygulayın.

sudo apt update && sudo apt full-upgrade

Adım 2: IMX500 sensörünü çalıştırmak için gerekli olan IMX500 ürün yazılımını bir paketleyici araç ile birlikte yükleyin.

sudo apt install imx500-all imx500-tools

Adım 3: Çalıştırmak için önkoşulları yükleyin picamera2 uygulama. Bu uygulamayı daha sonra dağıtım işlemi için kullanacağız.

sudo apt install python3-opencv python3-munkres

Adım 4: Değişikliklerin yürürlüğe girmesi için Raspberry Pi'yi yeniden başlatın

sudo reboot

Modeli Paketleyin ve Yapay Zeka Kamerasına Dağıtın

Elde ettikten sonra packerOut.zip IMX500 dönüştürme işleminden sonra, bir RPK dosyası elde etmek için bu dosyayı paketleyici aracına aktarabilirsiniz. Bu dosya daha sonra aşağıdakiler kullanılarak doğrudan AI Kameraya dağıtılabilir picamera2.

Adım 1: Modeli RPK dosyasına paketleyin

imx500-package -i path/to/packerOut.zip -o path/to/output/folder

Yukarıdakiler bir network.rpk belirtilen çıktı klasörünün içindeki dosya.

Adım 2: Klonlama picamera2 deposuna gidin, yükleyin ve imx500 örneklerine gidin

git clone https://github.com/raspberrypi/picamera2
cd picamera2
pip install -e . --break-system-packages
cd examples/imx500

Step 3: Run YOLO11 object detection, using the labels.txt file that has been generated during the IMX500 export.

python imx500_object_detection_demo.py --model path/to/network.rpk --fps 17 --bbox-normalization --ignore-dash-labels --bbox-order xy --labels path/to/labels.txt

Ardından canlı çıkarım çıktısını aşağıdaki gibi görebileceksiniz

Raspberry Pi Yapay Zeka Kamerasında Çıkarım

Ölçütler

YOLOv8 and YOLO11n benchmarks below were run by the Ultralytics team on Raspberry Pi AI Camera with imx model formatı ölçüm hızı ve doğruluğu.

Model Biçim Durum Size of RPK (MB) mAP50-95(B) Çıkarım süresi (ms/im)
YOLOv8n imx 3.1 0.602 58.82
YOLO11n imx 3.2 0.644 62.50

Not

Validation for the above benchmark was done using coco8 dataset on a Raspberry Pi 5

Kaputun Altında Ne Var?

IMX500 dağıtımı

Sony Model Sıkıştırma Araç Kiti (MCT)

Sony'nin Model Sıkıştırma Araç Seti (MCT), niceleme ve budama yoluyla derin öğrenme modellerini optimize etmeye yönelik güçlü bir araçtır. Çeşitli niceleme yöntemlerini destekler ve doğruluktan önemli ölçüde ödün vermeden model boyutunu ve hesaplama karmaşıklığını azaltmak için gelişmiş algoritmalar sağlar. MCT, verimli çıkarım ve daha düşük gecikme süresi sağlayarak, kaynakları kısıtlı cihazlara model yerleştirmek için özellikle kullanışlıdır.

MCT'nin Desteklenen Özellikleri

Sony'nin MCT'si, sinir ağı modellerini optimize etmek için tasarlanmış bir dizi özellik sunar:

  1. Grafik Optimizasyonları: Toplu normalleştirme gibi katmanları önceki katmanlara katlayarak modelleri daha verimli sürümlere dönüştürür.
  2. Kuantizasyon Parametresi Arama: Ortalama-Kare-Hata, Kırpma Yok ve Ortalama-Ortalama-Hata gibi metrikleri kullanarak niceleme gürültüsünü en aza indirir.
  3. Gelişmiş Kuantizasyon Algoritmaları:
    • Negatif Kaydırma Düzeltmesi: Simetrik aktivasyon nicelemesinden kaynaklanan performans sorunlarını giderir.
    • Aykırı Değer Filtreleme: Aykırı değerleri tespit etmek ve kaldırmak için z-skoru kullanır.
    • Kümeleme: Daha iyi dağılım eşleştirmesi için tek tip olmayan niceleme ızgaraları kullanır.
    • Karışık Hassasiyetli Arama: Hassasiyete göre katman başına farklı niceleme bit genişlikleri atar.
  4. Görselleştirme: Model performansı içgörülerini, niceleme aşamalarını ve bit genişliği yapılandırmalarını gözlemlemek için TensorBoard'u kullanın.

Kuantizasyon

MCT, model boyutunu azaltmak ve çıkarım hızını artırmak için çeşitli niceleme yöntemlerini destekler:

  1. Eğitim Sonrası Niceleme (PTQ):
    • Keras ve PyTorch API'leri aracılığıyla kullanılabilir.
    • Karmaşıklık: Düşük
    • Hesaplama Maliyeti: Düşük (CPU dakika)
  2. Gradyan Tabanlı Eğitim Sonrası Niceleme (GPTQ):
    • Keras ve PyTorch API'leri aracılığıyla kullanılabilir.
    • Karmaşıklık: Orta
    • Hesaplama Maliyeti: Orta düzeyde (2-3 GPU saat)
  3. Niceleme Farkında Eğitim (QAT):
    • Karmaşıklık: Yüksek
    • Hesaplama Maliyeti: Yüksek (12-36 GPU saat)

MCT ayrıca ağırlıklar ve aktivasyonlar için çeşitli niceleme şemalarını da destekler:

  1. Power-of-Two (donanım dostu)
  2. Simetrik
  3. Üniforma

Yapılandırılmış Budama

MCT, belirli donanım mimarileri için tasarlanmış yapılandırılmış, donanıma duyarlı model budaması sunar. Bu teknik, SIMD gruplarını budayarak hedef platformun Tek Komut, Çoklu Veri (SIMD) özelliklerinden yararlanır. Bu, model boyutunu ve karmaşıklığını azaltırken kanal kullanımını optimize eder, bellek ayak izinin hedeflenen kaynak kullanımı için SIMD mimarisiyle uyumludur. Keras ve PyTorch API'leri aracılığıyla kullanılabilir.

IMX500 Dönüştürücü Aracı (Derleyici)

The IMX500 Converter Tool is integral to the IMX500 toolset, allowing the compilation of models for deployment on Sony's IMX500 sensor (for instance, Raspberry Pi AI Cameras). This tool facilitates the transition of Ultralytics YOLO11 models processed through Ultralytics software, ensuring they are compatible and perform efficiently on the specified hardware. The export procedure following model quantization involves the generation of binary files that encapsulate essential data and device-specific configurations, streamlining the deployment process on the Raspberry Pi AI Camera.

Gerçek Dünya Kullanım Örnekleri

IMX500 formatına dışa aktarma, sektörler arasında geniş bir uygulama alanına sahiptir. İşte bazı örnekler:

  • Edge AI ve IoT: Düşük güçlü cihazlarda gerçek zamanlı işlemenin gerekli olduğu drone'larda veya güvenlik kameralarında nesne algılamayı etkinleştirin.
  • Giyilebilir Cihazlar: Küçük ölçekli yapay zeka işlemleri için optimize edilmiş modelleri sağlık izleme amaçlı giyilebilir cihazlara dağıtın.
  • Smart Cities: Use IMX500-exported YOLO11 models for traffic monitoring and safety analysis with faster processing and minimal latency.
  • Perakende Analitiği: Satış noktası sistemlerine veya akıllı raflara optimize edilmiş modeller yerleştirerek mağaza içi izlemeyi geliştirin.

Sonuç

Exporting Ultralytics YOLO11 models to Sony's IMX500 format allows you to deploy your models for efficient inference on IMX500-based cameras. By leveraging advanced quantization techniques, you can reduce model size and improve inference speed without significantly compromising accuracy.

Daha fazla bilgi ve ayrıntılı yönergeler için Sony'nin IMX500 web sitesine bakın.

SSS

How do I export a YOLO11 model to IMX500 format for Raspberry Pi AI Camera?

To export a YOLO11 model to IMX500 format, use either the Python API or CLI command:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="imx")  # Exports with PTQ quantization by default

Dışa aktarma işlemi, aşağıdakiler de dahil olmak üzere dağıtım için gerekli dosyaları içeren bir dizin oluşturacaktır packerOut.zip Raspberry Pi üzerinde IMX500 paketleyici aracı ile kullanılabilir.

Uç yapay zeka dağıtımı için IMX500 formatını kullanmanın temel faydaları nelerdir?

IMX500 formatı, uç dağıtım için birkaç önemli avantaj sunar:

  • Çip üzerinde yapay zeka işleme gecikme süresini ve güç tüketimini azaltır
  • Yalnızca görüntü yerine hem görüntü hem de meta veri (çıkarım sonucu) çıktısı verir
  • Bulut bağımlılığı olmadan verileri yerel olarak işleyerek gelişmiş gizlilik
  • Zamana duyarlı uygulamalar için ideal gerçek zamanlı işleme özellikleri
  • Kaynak kısıtlı cihazlarda verimli model dağıtımı için optimize edilmiş niceleme

IMX500 dağıtımı için hangi donanım ve yazılım ön koşulları gereklidir?

IMX500 modellerini dağıtmak için ihtiyacınız olacak:

Donanım:

  • Raspberry Pi 5 veya Raspberry Pi 4 Model B
  • IMX500 sensörlü Raspberry Pi Yapay Zeka Kamerası

Yazılım:

  • Raspberry Pi İşletim Sistemi Kitap Kurdu
  • IMX500 ürün yazılımı ve araçları (sudo apt install imx500-all imx500-tools)
  • Python için paketler picamera2 (sudo apt install python3-opencv python3-munkres)

What performance can I expect from YOLO11 models on the IMX500?

Raspberry Pi Yapay Zeka Kamerası üzerinde Ultralytics kıyaslamalarına dayanmaktadır:

  • YOLO11n achieves 58.82ms inference time per image
  • COCO8 veri setinde mAP50-95 0,522
  • Niceleme sonrasında sadece 2,9 MB model boyutu

Bu, IMX500 formatının uç yapay zeka uygulamaları için iyi doğruluğu korurken verimli gerçek zamanlı çıkarım sağladığını göstermektedir.

Dışa aktarılan modelimi Raspberry Pi AI Kameraya nasıl paketleyebilir ve dağıtabilirim?

IMX500 formatına dışa aktardıktan sonra:

  1. Bir RPK dosyası oluşturmak için paketleyici aracını kullanın:

    imx500-package -i path/to/packerOut.zip -o path/to/output/folder
    
  2. Picamera2'yi klonlayın ve yükleyin:

    git clone https://github.com/raspberrypi/picamera2
    cd picamera2 && pip install -e . --break-system-packages
    
  3. Oluşturulan RPK dosyasını kullanarak çıkarımı çalıştırın:

    python imx500_object_detection_demo.py --model path/to/network.rpk --fps 17 --bbox-normalization --labels path/to/labels.txt
    


📅5 ay önce oluşturuldu ✏️ 10 gün önce güncellendi

Yorumlar