v3.0.0¶
v3.0.0, büyük v2 → v3 sürümüdür. OpenMV Cam M7 (STM32F7) ile yeni nn CMSIS-NN sinir ağı modülünü (eski sabit kodlanmış find_number() / classify_object() metotlarının yerini alır) sunar, MT9V034 global shutter ve FLIR Lepton sensör desteği ile sensor.WVGA çerçeve boyutlarını ekler ve çekirdeği MicroPython 1.9.4‘e günceller. Birkaç image / sensor / WiFi davranışı değişti — aşağıdaki kırıcı değişikliklere göz atın.
Öne çıkanlar¶
OpenMV Cam M7 — yeni STM32F7 kartı.
nnmodülü — CMSIS-NN çıkarımı:nn.load(),Net.forward(),Net.search(), bir model dönüştürücü ve örneklerle birlikte.Yeni sensörler — MT9V034 global shutter (FSIN tetiklemeli) ve FLIR Lepton.
MicroPython 1.9.4 çekirdek güncellemesi.
Kırıcı: sabit kodlanmış
image.find_number()/image.classify_object()kaldırıldı,sensor.sleep()artık istisna fırlatıyor, WINC soketleri gerçek bayt sayılarını döndürüyor,image.binary()yeni bir görüntü döndürüyor vefind_apriltags()64K piksel ile sınırlandırıldı — kırıcı değişikliklere bakın.
Yeni özellikler¶
nn— yeni bir CMSIS-NN sinir ağı modülü:nn.load(path),Net.forward(img, roi=, softmax=, dry_run=)(0.0–1.0 arası float değerler döndürür), çok ölçekli/konumlu tespit içinNet.search()veNet.test(), ayrıca bir CMSIS-NN model dönüştürücü (nn_convert.py/nn_quantizer.py), birlikte gelen CIFAR-10 / LeNet / smile modelleri ve NN / NN-search örnek betikleri.Sensörler — OpenMV 4 üzerinde MT9V034 global shutter desteği (FSIN tetiklemeli anlık görüntü), Lepton anlık görüntü ile güncellenmiş bir FLIR Lepton sürücüsü ve yeni
sensor.WVGA(720x480) /sensor.WVGA2(752x480) çerçeve boyutları.Görüntüleme —
image.find_circles()r_min/r_max/r_stepanahtar sözcüklerini kazandı (daha hızlı Hough),find_keypoints()ve Haarfind_features()artık RGB görüntüleri kabul ediyor veimage.compress()/ JPEG kodlama artık ikili (bitmap) görüntüleri destekliyor.Önyükleme —
boot.pyartık USB başlatmadan önce çalışıyor, böylece USB modunu (örn. HID) geçersiz kılabiliyor.Örnekler — küçük/yüksek çözünürlüklü AprilTag örnekleri, bir I2C LIDAR-Lite V3 örneği ve veri kümesi araçları (
augment_images.py/make_patches.py) eklendi.
Diğer değişiklikler ve iyileştirmeler¶
Birlikte gelen MicroPython 1.9.4’e güncellendi (bir pyexec ayrıştırma/derleme/yürütme geri alımı ve PendSV düzeltmesiyle); daha açık
fb_alloc/xallocbellek yetersizliği hata mesajları; ağ yüklemesi sırasındannprintf gürültüsü bastırıldı; depo yeniden düzenlendi (örnekler →scripts/, araçlar →tools/, Haar kademeleri →ml/).nnmodülü OpenMV 2 üzerinde kullanılamaz (yetersiz flash bellek).
Hata düzeltmeleri¶
Görüntüleme:
x≤0 için
fast_atan2fdüzeltildi (önceden her zaman 0 — nokta (blob) / çizgi / anahtar nokta açılarını yeniden denetleyin),find_apriltags()bellek yönetimi (OOM durumunda içerik kaybı ve hatalı bir realloc), ikili/bitmap bpp başına satır işaretçileri (bozuk ikili sonuçlar), bir ROI ilefind_edges(EDGE_CANNY),TO_GS_PIXELmakrosu (integral / morfoloji), gri tonlama (bpp==0) çerçeveleri için bitmap/JPEG akışı, anahtar nokta/nokta (blob) listesipop_frontvematch_descriptorsonuçları düzeltildi.
Sistem ve kamera:
USB HID arayüzü/uç nokta numaraları, XCLK frekansının çalışma zamanında dinamik olarak değiştirilmesi,
Net.forward()işlevinin doğru sayıda çıktı döndürmesi ve betik ayrıştırmasını kesintiye uğratırken oluşan bir hardfault düzeltildi.
Donanım ve kart desteği¶
OpenMV Cam M7 (STM32F7) — yeni kart.
MT9V034 global shutter sensörü (OpenMV 4, FSIN tetiklemeli).
FLIR Lepton — anlık görüntü desteğiyle güncellenmiş sürücü.
Kırıcı API değişiklikleri¶
v2.9.0 ile v3.0.0 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:
büyük — özelliği kullanan çoğu betiği etkiler; kodu taşımanız gerekecek.
önemsiz — dar kapsamlı API; yalnızca onu kullanan betikleri etkiler.
davranış — aynı API, farklı sonuçlar; ince ayarlı betikleri yeniden denetleyin.
Değişiklikler bu sırayla etkilerine göre gruplandırılmıştır. Sadece kodunuzu taşımak istiyorsanız sondaki geçiş kontrol listesine atlayın. Her commit özeti, GitHub üzerindeki diff’ine bağlanır.
image.find_number() / image.classify_object() kaldırıldı (büyük)¶
Sabit kodlanmış image.find_number() (LeNet) ve image.classify_object() (CMSIS CNN) metotları, yeni nn modülü lehine kaldırıldı. Bunları net = nn.load('/model.network'); out = net.forward(img) ile değiştirin.
Commit’ler: d151f7e38
sensor.sleep() / sensor.reset() hata durumunda istisna fırlatır (önemsiz)¶
sensor.sleep() ve sensor.reset() artık başarısızlık durumunda True / False döndürmek yerine bir istisna fırlatır. sensor.sleep() işlevinin boolean dönüş değerini denetleyen kodun bunun yerine çağrıyı try / except içine sarması gerekir.
Commit’ler: 7d16d008f
WINC soketleri gerçek bayt sayısını döndürür (davranış)¶
WINC1500 soketi send / recv / sendto / recvfrom metotları önceden her zaman 0 döndürüyordu; artık aktarılan gerçek bayt sayısını döndürüyorlar. 0 dönüşü varsayan (ya da bunun üzerinde döngüye giren/bloke olan) kodun gerçek sayıları işlemesi gerekir.
Commit’ler: a07fb2f60
image.binary() yeni bir görüntü döndürür (davranış)¶
image.binary() to_bitmap / copy anahtar sözcüklerini kazandı ve artık kaynak görüntüyü yerinde döndürmek/değiştirmek yerine yeni bir görüntü nesnesi döndürüyor. binary() işlevinin orijinal görüntüyü değiştirmesine güvenen kodun, döndürülen nesneyi kullanması gerekir (ve yerinde olmayan davranış için copy=True geçirmesi gerekir).
Commit’ler: 8a44f0cd9
Geçiş kontrol listesi¶
v3.0.0’a temiz bir geçiş için tipik iş şudur:
image.find_number()/image.classify_object()yerinennmodülünü kullanın (nn geçişi).Boolean bir dönüş değerini denetlemek yerine
sensor.sleep()/sensor.reset()işlevlerinitry/exceptiçine sarın (sensor.sleep değişikliği).WINC soketi
send/recvişlevlerinden gelen gerçek bayt sayılarını işleyin (WINC soket değişikliği).Yerinde değişiklik beklemek yerine
image.binary()tarafından döndürülen görüntüyü kullanın (binary değişikliği).64K pikselin altında kalmak için
find_apriltags()çağrısından önce görüntüleri küçültün (find_apriltags sınırı).
Diğer tüm betikler değişmeden çalışır.