v3.6.1¶
v3.6.1 büyük bir sürümdür. imu modülünü (LSM6DS3), IMU tabanlı otomatik döndürme içeren bir dizi yeni sensor getter API’sini, 4 noktalı perspektif rotation_corr() özelliğini tanıtır ve Arduino Portenta H7‘yi HIMAX HM01B0 ve OV7690 kameralarıyla devreye alır. Birçok sensor / image API’si değişti ve M7’de TensorFlow kaldırıldı — aşağıdaki kırıcı değişiklikleri okuyun.
Öne çıkanlar¶
imumodülü — LSM6DS3 üzerinde ivmeölçer / jiroskop / sıcaklık / yuvarlanma / yunuslama (OpenMV 4 / Portenta).Sensör getter’ları + otomatik döndürme —
get_pixformat()/get_framesize()/get_hmirror()/get_vflip()/get_windowing(),set_transpose()/set_auto_rotation()ve IMU tabanlı anlık görüntü döndürme.Perspektif düzeltme —
rotation_corr()artıkfovvecorners(4 noktalı) anahtar sözcüklerini destekliyor.Yeni donanım — Arduino Portenta H7, HIMAX HM01B0 ve OV7690 kamera.
Kırıcı:
set_pixformat()/set_framesize()artıkNonedöndürüyor,sensor.set_framerate()kaldırıldı, M7’de TensorFlow kaldırıldı velens_corr()/linpolar()artık çift boyutlar gerektiriyor — kırıcı değişikliklere bakın.
Yeni özellikler¶
imu— yeni bir IMU modülü:imu.acceleration_mg(),imu.angular_rate_mdps(),imu.temperature_c(),imu.roll(),imu.pitch()veimu.sleep()(OpenMV 4 / Portenta üzerinde LSM6DS3).Sensör getter’ları —
sensor.get_pixformat(),get_framesize(),get_hmirror(),get_vflip(),get_windowing(),set_transpose()/get_transpose()veset_auto_rotation()/get_auto_rotation()eklendi.Otomatik döndürme — otomatik döndürme etkinleştirildiğinde
sensor.snapshot()çerçeveleri çevirmek / aynalamak / devrik almak için IMU’yu kullanır.rotation_corr()—fovvecorners(4 noktalı perspektif) anahtar sözcükleri ve perspektif düzeltme örnekleriyle birlikte eklendi.lcd.init()— birbgranahtar sözcük argümanı eklendi.collections.deque— MicroPython derlemesinde etkinleştirildi.sensor.OV7690vesensor.HM01B0id sabitleri ve numpy benzeri birulabgörüntü filtresi örneği eklendi.
Diğer değişiklikler ve iyileştirmeler¶
Görüntü filtreleri (medyan / mod / ortalama / …),
find_circles()ve lens düzeltmesi önemli ölçüde optimize edildi;alloc_extra_fbartık herhangi bir sayıda bayt ayırabiliyor; kişi tespiti modeli yeni bir ortalama havuzlama (average-pool) işlemiyle yeniden oluşturuldu.
Hata düzeltmeleri¶
Kamera ve sensörler:
OV2640
sleep()(artık güç kesme pini yerine COM2 bekleme yazmacını kullanır), FSYNC pin yapılandırması, HM01B0 HSYNC/VSYNC polariteleri ve I2C adresi/taraması, Portenta sensör güç kesme GPIO’su ve kamera sıfırlama pini düzeltildi ve IMU yunuslaması 90°/270° yakınındayken otomatik döndürme devre dışı bırakıldı.
Görüntüleme ve sistem:
Bir görüntü filtresi sınır denetimi hatası, D-cache devre dışı bırakılırken oluşan bir hardfault, SD kartı olmayan kartlarda önyükleme, bir
tf.load()load_to_fbhatası, kişi tespiti yığın taşması (H7 yığını ≥12 KB’ye yükseltildi) ve OpenMV 4 Plus’ta yüksek hızlı mod için USB tanımlayıcı ofsetleri düzeltildi.
Donanım ve kart desteği¶
Arduino Portenta H7 — ilk kart devreye alma (STM32H747 saat/OSC/HSE yapılandırması, CMSIS başlıkları, ADC, SDRAM, Arduino USB PID).
HIMAX HM01B0 — yeni monokrom kamera sürücüsü (Bayer, harici osilatör saati).
OV7690 — yeni kamera sürücüsü.
LSM6DS3 IMU — OpenMV 4 / Portenta.
Kırıcı API değişiklikleri¶
v3.6.0 ile v3.6.1 arasındaki kullanıcıya görünür 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 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ırayla etkilerine göre gruplanmıştır. Yalnızca kodunuzu taşımak istiyorsanız, sonundaki taşıma kontrol listesine geçin. Her commit hash’i GitHub üzerindeki diff’ine bağlanır.
sensor.set_framerate() kaldırıldı (minor)¶
İşlevi olmayan sensor.set_framerate() saplaması kaldırıldı; artık çağrılması AttributeError yükseltir. Çağrıyı kaldırın ve çerçeve zamanlamasını bunun yerine framesize/pozlama aracılığıyla kontrol edin. (Çalışan bir set_framerate() v4.0.2’de yeniden tanıtıldı.)
Commits: 705e98f91
OpenMV Cam M7’de TensorFlow kaldırıldı (minor)¶
TensorFlow (tf modülü) OpenMV Cam M7 / OpenMV 3’te devre dışı bırakıldı (artık sığmıyor). M7’de import tf başarısız olur — TensorFlow için H7 sınıfı bir kamera kullanın. (tf v3.6.3’te F7’de yeniden etkinleştirildi.)
Commits: 2ae875077
set_pixformat() / set_framesize() None döndürüyor (behavior)¶
sensor.set_pixformat() ve sensor.set_framesize() artık True yerine None döndürüyor ve desteklenmeyen bir piksel biçimi artık bir assertion yerine bir ValueError yükseltiyor. Dönüş değerini kontrol eden kod (örn. if sensor.set_pixformat(...):) bunu yapmayı bırakmalı ve desteklenmeyen biçimler için AssertionError yakalayan kod ValueError yakalamalıdır.
Commits: f314ac4e7
lens_corr() / linpolar() / logpolar() çift boyutlar gerektiriyor (behavior)¶
image.lens_corr() ve image.linpolar() / image.logpolar() artık çift görüntü genişliği ve yüksekliği gerektiriyor ve tek boyutlarda hata yükseltiyor. Bu metotları çağırmadan önce görüntüyü çift boyutlara kırpın veya yeniden boyutlandırın.
Taşıma kontrol listesi¶
v3.6.1’e temiz bir taşıma için tipik iş şudur:
sensor.set_framerate()çağrılarını kaldırın (set_framerate kaldırılması).TensorFlow iş yüklerini OpenMV Cam M7’den taşıyın (M7 TensorFlow değişikliği).
set_pixformat()/set_framesize()dönüş değerine güvenmeyi bırakın ve desteklenmeyen piksel biçimleri içinValueErroryakalayın (dönüş değeri değişikliği).lens_corr()/linpolar()/logpolar()öncesinde çift görüntü boyutları sağlayın (çift boyut gereksinimi).
Diğer tüm betikler değişmeden çalışır.