v4.6.0

v4.6.0 büyük bir özellik sürümüdür. Öne çıkanlar: kamera modülü sensor adından csi adına yeniden adlandırıldı (geriye dönük uyumlu bir sensor takma adıyla birlikte), yeni bir ml.postprocessing modülü, Prophesee GenX320 olay sensörü, PAG7936 ve FLIR Boson termal kameralar için destek, TinyUSB tabanlı yeni bir DFU önyükleyici (bootloader), Nema GPU hızlandırması ve MicroPython 1.24. Ayrıca çizim alpha aralığını değiştirir, bu nedenle aşağıdaki uyumluluğu bozan değişiklikleri okuyun.

Öne çıkanlar

  • sensor artık csi olarak da kullanılabilir — kamera modülü csi olarak yeniden adlandırıldı; sensor geriye dönük uyumlu bir takma ad olarak kalır (henüz kod değişikliği gerekmez).

  • Yeni ml.postprocessing modülüfomo_postprocess, yolo_v2_postprocess, yolo_v5_postprocess.

  • Yeni sensörler — Prophesee GenX320 olay kamerası, PAG7936 ve FLIR Boson 320/640 termal.

  • Yeni DFU önyükleyici (bootloader) — TinyUSB tabanlı standart DFU önyükleyici, tüm kartlardaki eski CDC önyükleyicinin yerini alır.

  • Nema GPU — STM32 üzerinde hızlandırılmış 2D/vektör grafikleri.

  • MicroPython 1.24.0 sürümüne güncellendi.

  • Uyumluluğu bozan: çizim alpha aralığı 0–256’dan 0–255’e değiştirildi (bkz. alpha aralığı değişikliği).

Yeni özellikler

  • ml.postprocessing — model çıktısının kodunu çözen yeni bir modül: bir FOMO kod çözücü (fomo_postprocess, find_blobs + NMS, yapılandırılabilir threshold) ve yolo_v2_postprocess / yolo_v5_postprocess (threshold, anchors, nms_threshold, nms_sigma ile).

  • Olay kamerası görselleştirmesi — yeni Image.to_evt_dark() / Image.to_evt_light() yöntemleri ve PALETTE_EVT_DARK / PALETTE_EVT_LIGHT renk paletleri.

  • Derinlik görselleştirmesi — yeni Image.to_depth() yöntemi ve bir PALETTE_DEPTH renk paleti (ToF özellikli kartlar).

  • Sensör iç gözlemi — bir (R, Gb, Gr, B) kanal istatistikleri demeti döndüren yeni IOCTL_GET_RGB_STATS ioctl’i.

  • GenX320 bias ön ayarlarıGENX320_BIASES_DEFAULT / LOW_LIGHT / ACTIVE_MARKER / LOW_NOISE / HIGH_SPEED ön ayarlarına sahip yeni IOCTL_GENX320_SET_BIASES ioctl’i.

  • omv.debug_mode() — USB hata ayıklama arabiriminin etkin olup olmadığını sorgulamak için yeni bir fonksiyon.

  • Nema GPU — STM32 üzerinde Cortex-M55 NemaGFX/NemaVG sürücü entegrasyonu, draw_image için yerinde GPU cut-through ile.

  • PAG7936 — renk çubuğu çıkışı, otomatik pozlama / otomatik kazanç, uyku ve MIPI modu eklendi.

Diğer değişiklikler ve iyileştirmeler

  • MicroPython 1.24.0 sürümüne güncellendi; ulab 6.7.3 sürümüne güncellendi (keepdims eklendi).

  • Ortak boot betiği — STM32 / i.MX RT / RP2 artık varsayılan bir main.py ve README.txt ile flash/SD dosya sistemini otomatik oluşturan ve geçici başlangıç globallerini serbest bırakan ortak bir _boot.py paylaşır.

  • STM32N6 altyapısı — temel STM32N6 desteği, bir XSPI sürücüsü, ortak bir MPU sürücüsü ve STM32 üzerinde aygıt yazılımı (firmware)/önyükleyici (bootloader) imzalama.

  • Computed-goto VM — bir yorumlayıcı hızlanması için STM32 ve nRF üzerinde etkinleştirildi.

Hata düzeltmeleri

Kamera ve sensörler:

  • OV5640 PCLK/pozlama hesaplaması düzeltildi (iki MIPI şeridi, düzeltilmiş bölücü tablosu).

  • MT9V0xx Bayer-CFA varyantı artık RGB565/BAYER/GRAYSCALE kabul ediyor ve hata vermek yerine düzgün ham Bayer verisi çıkarıyor.

  • PAG7936 lens gölgeleme düzeltmesi etkinleştirildi ve HD görüntü kayması düzeltildi; set_framerate() artık çözünürlük başına sınırlandırılmıştır.

  • i.MX RT1060 üzerinde FLIR Lepton termal yakalama düzeltildi (VoSPI CPOL/CPHA düzeltildi) ve Lepton anlık görüntüleri artık belirli hata kodları döndürüyor.

  • GenX320 frekans yuvarlaması düzeltildi.

Görüntü işleme:

  • Gri tonlamalı görüntülerde to_ndarray() içindeki bellek bozulması düzeltildi.

  • Bayer→RGB/gri tonlama dönüşümünde debayer sınır tahmini düzeltildi.

  • SDRAM olmayan kartlarda draw_image() transpose düzeltildi (parçalanmış arabellek).

  • Image.binary() içindeki boolean argüman işleme ve ml.Model load_to_fb bayrağı düzeltildi.

Sistem:

  • STM32 ve i.MX RT üzerinde SPI yalnızca-RX / yalnızca-TX pin yapılandırması düzeltildi.

  • Portenta H7 Ethernet DMA arabellekleri SRAM3’e taşındı, böylece Ethernet çalışıyor.

  • USB üzerinden hata ayıklama kanalı metin çıkışındaki düşen bir karakter düzeltildi; az boyutlu model arabelleklerini önlemek için ML dinamik ayırma boyutları yukarı yuvarlandı.

Donanım ve kart desteği

  • Prophesee GenX320 olay tabanlı görüş sensörü (STM32F7 + i.MX RT1060).

  • PAG7936 sensörü (MIPI modu ile).

  • FLIR Boson 320/640 termal kameralar (IDD 4 sürücüsü).

  • Nema GPU STM32 üzerinde hızlandırma.

  • STM32N6 önyükleyici (bootloader)/XSPI altyapısı.

  • VL53L5CX — güç etkinleştirme pini desteği eklendi.

Uyumluluğu bozan API değişiklikleri

v4.5.9 ile v4.6.0 arasındaki kullanıcı tarafından görülebilen API kırılmaları. Kapsam: modules/ içindeki Python C-modülleri ve scripts/libraries/ içindeki Python kütüphaneleri.

Her değişiklik etkisiyle etiketlenmiştir:

  • major — onu kullanan çoğu betiğin düzenlenmesi gerekir.

  • minor — dar API; yalnızca onu kullanan betikleri etkiler.

  • behavior — aynı API, farklı sonuçlar; ayarlanmış betikleri yeniden kontrol edin.

  • tooling — yalnızca flashing / ana bilgisayar araçları / kart kullanılabilirliğini etkiler.

Değişiklikler bu sırayla etkiye göre gruplandırılmıştır. Yalnızca kodunuzu taşımak istiyorsanız, sondaki taşıma kontrol listesi bölümüne atlayın. Her commit hash’i GitHub’daki diff’ine bağlanır. Not: bu sürümdeki sensorcsi modül yeniden adlandırması uyumluluğu bozan bir değişiklik değildirsensor hâlâ bir takma ad olarak çalışır.

Çizim alpha aralığı artık 0–255 (major)

draw_image() öğesinin alpha argümanı ve onu alan her bindirme (FIR, ToF, ekran, TV, MJPEG, alpha tabloları) artık 0–256 yerine 0–255 aralığını kullanır. Tamamen opak için 256 geçen veya alpha’yı 256’ya göre hesaplayan betikler 0–255’e yeniden ölçeklenmelidir.

Commit: 1f87b5bb6

FLIR Lepton ioctl sabitleri yeniden adlandırıldı (minor)

Üç Lepton ioctl sabiti kısaltıldı: IOCTL_LEPTON_SET_MEASUREMENT_MODEIOCTL_LEPTON_SET_MODE, IOCTL_LEPTON_SET_MEASUREMENT_RANGEIOCTL_LEPTON_SET_RANGE, IOCTL_LEPTON_GET_FPA_TEMPERATUREIOCTL_LEPTON_GET_FPA_TEMP. Birlikte gelen örnekler güncellendi.

Commit: 12582d54d

ML son işleme API değişimi (minor)

ml.postprocessing bu sürümde yenidir ve API’si sürüm sırasında değişti: yolo_v2_postprocess yapıcısının score_threshold anahtar sözcüğü threshold olarak yeniden adlandırıldı ve boş son işleme sonuçları artık [] yerine () döndürüyor. Birlikte gelen yolov5_rgb_person modeli yolo_v5_224_nano olarak yeniden adlandırıldı. ml.apps.MicroSpeech artık sabit bir gain_db=24 yerine rastgele **kwargs argümanlarını audio.init() öğesine iletiyor.

Commits: d67bd1ad7, 979b4e8ee, b89b815b2, 6671d9df5, 5c2f4388c

AGAST varsayılan köşe dedektörüdür (behavior)

find_keypoints() artık tüm kartlarda varsayılan köşe dedektörü olarak FAST yerine AGAST kullanıyor. Anahtar nokta kümeleri (ve dolayısıyla tanımlayıcı eşleşmeleri) önceki sürümlerden farklıdır — ayarlanmış anahtar nokta işlem hatlarını yeniden kontrol edin. IDE çerçeve arabelleği (frame buffer) akışı da artık USB yükünü azaltmak için 20 Hz ile sınırlandırılmıştır.

Commits: da6bf6910, bc4e39246

Önyükleyici (bootloader), kaldırılan kartlar ve özellikler (tooling)

Eski CDC önyükleyici, tüm kartlarda TinyUSB tabanlı yeni bir standart DFU önyükleyici ile değiştirildi — aygıt yazılımı (firmware) güncelleme mekanizması değişti; flashing iş akışınızı/araçlarınızı buna göre güncelleyin. OpenMV Pro kartı, bağımsız Raspberry Pi Pico derlemesi ve WiFi hata ayıklama (wifidbg) uzaktan IDE özelliği kaldırıldı.

Commits: a03fc90d8, c2e616aae, af3ea774b, f8bca9799, 59a38a0d3, 7edeb4fbe, d58d77fa2

Taşıma kontrol listesi

v4.6.0’a temiz bir taşıma için tipik iş şudur:

  1. Her çizim/bindirme alpha değerini 0–256 aralığından 0–255’e yeniden ölçeklendirin (alpha aralığı değişikliği).

  2. Tüm FLIR Lepton ioctl sabitlerini kısaltılmış biçimlerine yeniden adlandırın (Lepton ioctl yeniden adlandırması).

  3. Yeni ML son işleyicilerini kullandıysanız, score_threshold yerine threshold kullanın, () boş sonucu işleyin ve yolo_v5_224_nano model adını güncelleyin (ML değişiklikleri).

  4. AGAST dedektör değişikliği için find_keypoints() tabanlı işlem hatlarını yeniden kontrol edin (köşe dedektörü değişikliği).

  5. Yeni DFU önyükleyici (bootloader) için aygıt yazılımı (firmware) flashing iş akışınızı güncelleyin (önyükleyici/kart değişiklikleri).