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.