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.
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:
Başlamadan Önce: En iyi sonuçları elde etmek için Model Eğitim Kılavuzumuzu, Veri Hazırlama Kılavuzumuzu ve Hiperparametre Ayarlama Kılavuzumuzu takip ederek YOLOv8 modelinizin dışa aktarım için iyi bir şekilde hazırlandığından emin olun.
Bir Ultralytics YOLOv8 modelini IMX500 formatına dışa aktarın ve dışa aktarılan modelle çıkarımı çalıştırın.
Not
Burada sadece modelin beklendiği gibi çalıştığından emin olmak için çıkarım yapıyoruz. Ancak, Raspberry Pi AI Kamera üzerinde 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 YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")
# Export the model
model.export(format="imx") # exports with PTQ quantization by default
# Load the exported model
imx_model = YOLO("yolov8n_imx_model")
# Run inference
results = imx_model("https://ultralytics.com/images/bus.jpg")
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.
yolov8n_imx_model
├── dnnParams.xml
├── labels.txt
├── packerOut.zip
├── yolov8n_imx.onnx
├── yolov8n_imx500_model_MemoryReport.json
└── yolov8n_imx500_model.pbtxt
Bir modeli IMX500 formatına aktarırken çeşitli argümanlar belirtebilirsiniz:
Anahtar | Değer | Açıklama |
---|---|---|
format | imx | Dışa aktarılacak format (imx) |
int8 | True | Model için INT8 nicemlemeyi etkinleştirin (varsayılan: True ) |
imgsz | 640 | Model girdisi için görüntü boyutu (varsayılan: 640 ) |
Ultralytics YOLOv8n modeli IMX500 formatına aktarıldıktan sonra, çıkarım için Raspberry Pi AI Kamerasına dağıtılabilir.
Aşağıdaki donanıma sahip olduğunuzdan emin olun:
Raspberry Pi AI kamerayı Raspberry Pi üzerindeki 15 pinli MIPI CSI konektörüne bağlayın ve Raspberry Pi'yi açın
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.
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.
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.
Adım 4: Değişikliklerin yürürlüğe girmesi için Raspberry Pi'yi yeniden başlatı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
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 -b next https://github.com/raspberrypi/picamera2
cd picamera2
pip install -e . --break-system-packages
cd examples/imx500
Adım 3: IMX500 dışa aktarımı sırasında oluşturulan labels.txt dosyasını kullanarak YOLOv8 nesne algılamayı çalıştırın.
python imx500_object_detection_demo.py --model <path to network.rpk> --fps 25 --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
YOLOv8 Aşağıdaki kıyaslamalar Ultralytics ekibi tarafından Raspberry Pi AI Kamera ile çalıştırılmıştır imx
model formatı ölçüm hızı ve doğruluğu.
Model | Biçim | Durum | Boyut (MB) | mAP50-95(B) | Çıkarım süresi (ms/im) |
---|---|---|---|---|---|
YOLOv8n | imx | ✅ | 2.9 | 0.522 | 66.66 |
Not
Yukarıdaki kıyaslama için doğrulama coco8 veri kümesi kullanılarak yapılmıştır
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.
Sony'nin MCT'si, sinir ağı modellerini optimize etmek için tasarlanmış bir dizi özellik sunar:
MCT, model boyutunu azaltmak ve çıkarım hızını artırmak için çeşitli niceleme yöntemlerini destekler:
MCT ayrıca ağırlıklar ve aktivasyonlar için çeşitli niceleme şemalarını da destekler:
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ı, IMX500 araç setinin ayrılmaz bir parçasıdır ve Sony'nin IMX500 sensöründe (örneğin Raspberry Pi AI Kameralar) kullanılmak üzere modellerin derlenmesini sağlar. Bu araç, Ultralytics yazılımı aracılığıyla işlenen Ultralytics YOLOv8 modellerinin geçişini kolaylaştırarak uyumlu olmalarını ve belirtilen donanımda verimli bir şekilde çalışmasını sağlar. Model nicelleştirmeyi takiben dışa aktarma prosedürü, temel verileri ve cihaza özgü yapılandırmaları kapsayan ikili dosyaların oluşturulmasını içerir ve Raspberry Pi AI Kamera üzerindeki dağıtım sürecini kolaylaştırır.
IMX500 formatına dışa aktarma, sektörler arasında geniş bir uygulama alanına sahiptir. İşte bazı örnekler:
Ultralytics YOLOv8 modellerini Sony'nin IMX500 formatına dışa aktarmak, IMX500 tabanlı kameralarda verimli çıkarım için modellerinizi kullanmanızı sağlar. Gelişmiş niceleme tekniklerinden yararlanarak, doğruluktan önemli ölçüde ödün vermeden model boyutunu küçültebilir ve çıkarım hızını artırabilirsiniz.
Daha fazla bilgi ve ayrıntılı yönergeler için Sony'nin IMX500 web sitesine bakın.
Bir YOLOv8 modelini IMX500 formatına aktarmak için Python API veya CLI komutunu kullanın:
from ultralytics import YOLO
model = YOLO("yolov8n.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.
IMX500 formatı, uç dağıtım için birkaç önemli avantaj sunar:
IMX500 modellerini dağıtmak için ihtiyacınız olacak:
Donanım:
Yazılım:
sudo apt install imx500-all imx500-tools
)picamera2
(sudo apt install python3-opencv python3-munkres
)Raspberry Pi AI Camera'daki Ultralytics kıyaslamalarına dayanmaktadır:
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.
IMX500 formatına dışa aktardıktan sonra:
Bir RPK dosyası oluşturmak için paketleyici aracını kullanın:
Picamera2'yi klonlayın ve yükleyin:
Oluşturulan RPK dosyasını kullanarak çıkarımı çalıştırın: