v4.5.3

v4.5.3 büyük bir sürümdür: OV5640 otomatik odaklama, kenar yumuşatmalı çizgi çizimi, ana kod hattına alınmış bir donanımsal JPEG kod çözücü, büyük i.MX RT (RT1060) yetenek kazanımları ve geniş bir kamera/ISP düzeltmeleri kümesi. Nadiren kullanılan birkaç görüntü yöntemi kaldırıldı ve bazı ISP/ekran API’leri değişti — aşağıdaki uyumluluğu bozan değişiklikleri okuyun.

Öne çıkanlar

  • OV5640 otomatik odaklama — OpenMV 4 / 4 Plus / RT1060 üzerinde etkinleştirildi (sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS)), bir örnekle birlikte.

  • Kenar yumuşatmalı draw_line() ve ana kod hattına alınmış bir STM32 donanımsal JPEG kod çözücü (daha hızlı JPEG çözme).

  • OpenMV RT1060 ulab, ISP işlemleri, set_framerate() / set_frame_callback(), çok daha büyük bir çerçeve arabelleği (frame buffer) ve CAN sürücüsü kazandı.

  • Uyumluluğu bozan: Image.div() / cartoon() / mul() kaldırıldı ve bazı ISP/ekran API’leri değişti — uyumluluğu bozan değişikliklere bakın.

Yeni özellikler

  • OV5640 otomatik odaklama — otomatik odaklama aygıt yazılımı (firmware) OPENMV4, OPENMV4P ve OPENMV RT1060 üzerinde etkinleştirildi; sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS) ile tetikleyin. Yeni bir 07-Sensor-Control/autofocus.py örneği eklendi.

  • Kenar yumuşatmalı çizgi çizimidraw_line() kenar yumuşatma kazandı.

  • Özel SPI ekran denetleyicileriSPIDisplay artık bir controller= anahtar sözcüğünü kabul ediyor ve özel başlatma/komut dizileri için bir bus_write kancası sunuyor.

  • Image.ccm() yükseltmesi — artık iç içe 3x3 / 4x3 / 3x4 / 4x4 matrisleri ve ulab dizilerini kabul ediyor (isteğe bağlı kanal başına ofset satırıyla); bir renk düzeltme örneği eklendi.

  • i.MX RT JPEG yakalama — Arduino Portenta/Nicla Vision/Giga üzerinde sensor.JPEG yakalama, ayrıca mimxrt portu üzerinde set_framerate() ve set_frame_callback().

  • TFLite model doğrulaması — modeller artık bir operatör sıralama özeti (hash) ve operatör kümesi boyutu taşıyor.

  • WiFi — CYW43 güvenlik modu sabitleri eklendi; yeni i.MX RT kart denetimi örnek betikleri (Pin/ADC/CAN/I2C/PWM/SPI/UART/…).

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

  • MicroPython 1.22’ye güncellendi; CMSIS 5.9.0’a güncellendi.

  • Ana kod hattına alınmış STM32 donanımsal JPEG kod çözücü — çip üzerindeki kodlayıcıda daha hızlı JPEG çözme.

  • Image.invert() / negate() ve ikili/matematiksel görüntü işlemleri optimize edildi (CMSIS intrinsics).

  • rpc ve vl53l1x kitaplıkları taşınabilir hale getirildi (pyb yerine machine / time kullanılıyor), böylece STM32 dışındaki portlarda da çalışıyorlar.

  • OpenMV H7 / H7 Plus / Pro / Pure Thermal ve Arduino Giga / Nicla Vision / Portenta H7 üzerinde DMA hızlandırmalı çerçeve arabelleği (frame buffer) memcpy; STM32 artık daha hızlı önyükleme için tarama başına I2C aygıtlarını bir kez tarıyor.

Hata düzeltmeleri

Kamera ve sensörler:

  • STM32 kamera XCLK gerçek %50 görev döngüsüne sabitlendi ve kamera saat frekansı sıfıra ayarlandığında oluşan bir hata düzeltildi; Bayer kırpma+devrik, YUV422 renk kayması ve mimxrt portunda set_windowing() düzeltildi.

  • GC2145 çip kimliği yoklaması ve döndürülmüş montajlarda hmirror/vflip düzeltildi; RT1062 üzerinde PAJ6100 ve bir PixArt PAJ7620/PAW3902 SPI arabellek taşması düzeltildi.

Görüntü işleme:

  • find_rects() roi kırpması, morph() kesirli ofset kırpması, image.gamma() kontrast/parlaklık varsayılanları, RGB565 üzerinde get_threshold() A/B ofsetleri ve boyutları 8’in katı olmayan JPEG çözme düzeltildi.

Sistem ve kitaplıklar:

  • Argümansız machine.LED.value() artık LED durumunu temizlemek yerine onu döndürüyor; paylaşımlı bir veri yolunda SPI SSEL deinit, RT1062 üzerinde machine.deepsleep(), eksik operatörlerde bir TF çökmesi ve connect() üzerinde WINC1500/ninaw10 NIC otomatik etkinleştirmesi düzeltildi.

Donanım ve kart desteği

  • OpenMV RT1060 — ulab ve ISP işlemleri etkinleştirildi, daha büyük çerçeve arabelleği (frame buffer) (10M→20M) / fb_alloc (2M→11M), CAN sürücüsü geri getirildi, daha fazla yığın belleği (heap).

  • Arduino GIGA — GC2145 kamera desteği, GC2145/OV5640 otomatik algılamasıyla (aynı I2C adresini paylaşıyorlar).

  • i.MX RTsensor.JPEG yakalama desteği.

Uyumluluğu bozan API değişiklikleri

v4.5.2 ile v4.5.3 arasında 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 kitaplıkları.

Her değişiklik etkisine göre etiketlenmiştir:

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

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

Değişiklikler bu sırada etkilerine göre gruplanmıştır. Yalnızca kodunuzu taşımak istiyorsanız sondaki taşıma kontrol listesine atlayın. Her commit özeti (hash) GitHub’daki diff’ine bağlanır.

Kaldırılan görüntü yöntemleri (minor)

Image.div(), Image.cartoon() (ve örneği) ve Image.mul() kaldırıldı.

Commit’ler: 7c932602e, 055a468b8, 4fe7fb63b

Ekran modülü API’si (minor)

Eski udisplay modül adı yedeği kaldırıldı — modül yalnızca display olarak kaydediliyor. Yalnızca DSI’ye özel dsi_write() / dsi_read() yöntemleri, artık tüm ekran denetleyicilerinde kullanılabilen bus_write() / bus_read() ile değiştirildi.

Commit’ler: 7df6694c3, 7d1f378a0

MQTT ve tf.regression API değişiklikleri (minor)

mqtt kitaplığının MQTTClient sınıfı yeniden tasarlandı: port artık zorunlu, yeni ssl_params / callback yapıcı anahtar sözcükleri ve connect() üzerinde bir timeout argümanı eklendi, eski ssl= / port=0 varsayılanları kaldırıldı ve check_msg() artık bloklamayan biçimde çalışıyor. tf.regression() yeniden yazıldı — imzası artık regression(model, array) ve 1D/2D/3D ve nicelenmiş (int8) modelleri işliyor.

Commit’ler: d12874c63, c5ec576c1

ISP / sensör davranış değişiklikleri (behavior)

Image.awb() yeniden tasarlandı — gri dünya (varsayılan) ile beyaz yama (max=True) arasındaki ayrım artık açıkça belirtiliyor ve max argümanı ile Image.gamma()‘nın gamma / contrast / brightness argümanları artık yalnızca anahtar sözcüklü (konumsal çağrılar güncellenmelidir). Görüntü devriği artık YUV422 için devre dışı bırakıldı (daha önce hatalı çıktı üretiyordu) ve YUV422 renk kayması Bayer ile eşleşecek şekilde düzeltildi. STM32 JPEG yolu artık bir JPEG geometri uyumsuzluğunda bozuk bir görüntü üretmek yerine bir hata yükseltiyor ve WiFi AP modu artık STM32 ve i.MX RT portlarında varsayılan bir güvenlik modu uyguluyor.

Commit’ler: 36d5cecbd, 00500ccde, c1eeaefd6, 333fb2b5f, 55cab8733, c7d40f6af

Taşıma kontrol listesi

v4.5.3’e temiz bir taşıma için tipik çalışma şudur:

  1. Image.div() / cartoon() / mul() kullanımını bırakın (kaldırılan yöntemler).

  2. Ekran modülünü display olarak içe aktarın ve dsi_write/ dsi_read çağrılarını bus_write/bus_read olarak değiştirin (ekran API’si değişikliği).

  3. MQTTClient oluşturmasını (port zorunlu; ssl_params/callback) ve tüm tf.regression() çağrılarını güncelleyin (kitaplık API değişiklikleri).

  4. awb() max ve gamma() gamma/contrast/ brightness argümanlarını anahtar sözcüklü argümanlar olarak geçirin ve YUV422/devrik ile AP modu güvenlik varsayımlarını yeniden kontrol edin (ISP/sensör değişiklikleri).