v3.0.0¶
v3.0.0 adalah rilis utama v2 → v3. Rilis ini memperkenalkan OpenMV Cam M7 (STM32F7) dan modul jaringan saraf CMSIS-NN nn yang baru (menggantikan metode hard-coded find_number() / classify_object() yang lama), menambahkan dukungan sensor MT9V034 global-shutter dan FLIR Lepton, framesize sensor.WVGA, serta memperbarui inti ke MicroPython 1.9.4. Beberapa perilaku image / sensor / WiFi berubah — baca perubahan yang tidak kompatibel di bawah.
Sorotan¶
OpenMV Cam M7 — papan STM32F7 baru.
Modul
nn— inferensi CMSIS-NN:nn.load(),Net.forward(),Net.search(), dengan konverter model dan contoh.Sensor baru — MT9V034 global-shutter (dipicu FSIN) dan FLIR Lepton.
Pembaruan inti MicroPython 1.9.4.
Perubahan tidak kompatibel: hard-coded
image.find_number()/image.classify_object()dihapus,sensor.sleep()kini melempar pengecualian, socket WINC mengembalikan jumlah byte sebenarnya,image.binary()mengembalikan citra baru, danfind_apriltags()dibatasi pada 64K piksel — lihat perubahan yang tidak kompatibel.
Fitur baru¶
nn— modul jaringan saraf CMSIS-NN baru:nn.load(path),Net.forward(img, roi=, softmax=, dry_run=)(mengembalikan float 0.0–1.0),Net.search()untuk deteksi multi-skala/posisi, danNet.test(), ditambah konverter model CMSIS-NN (nn_convert.py/nn_quantizer.py), model CIFAR-10 / LeNet / smile bawaan, dan skrip contoh NN / NN-search.Sensor — dukungan MT9V034 global-shutter (snapshot dipicu FSIN) pada OpenMV 4, driver FLIR Lepton yang diperbarui dengan dukungan snapshot Lepton, dan framesize baru
sensor.WVGA(720x480) /sensor.WVGA2(752x480).Pencitraan —
image.find_circles()mendapatkan kata kuncir_min/r_max/r_step(Hough lebih cepat),find_keypoints()dan Haarfind_features()kini menerima citra RGB, danimage.compress()/ encoding JPEG kini mendukung citra biner (bitmap).Boot —
boot.pykini berjalan sebelum inisialisasi USB sehingga dapat mengganti mode USB (mis. HID).Contoh — ditambahkan contoh AprilTag resolusi kecil/tinggi, contoh I2C LIDAR-Lite V3, dan alat dataset (
augment_images.py/make_patches.py).
Perubahan dan peningkatan lainnya¶
MicroPython bawaan diperbarui ke 1.9.4 (dengan revert pyexec parse/compile/exec dan perbaikan PendSV); pesan error out-of-memory
fb_alloc/xallocyang lebih jelas; noise printfnnselama pemuatan jaringan ditekan; repositori direorganisasi (contoh →scripts/, alat →tools/, Haar cascades →ml/). Modulnntidak tersedia pada OpenMV 2 (flash tidak mencukupi).
Perbaikan bug¶
Pencitraan:
Memperbaiki
fast_atan2funtuk x≤0 (sebelumnya selalu 0 — periksa kembali sudut blob / garis / titik kunci), penanganan memorifind_apriltags()(konten yang hilang dan realloc buruk saat OOM), pointer baris per-bpp biner/bitmap (hasil biner yang rusak),find_edges(EDGE_CANNY)dengan ROI, makroTO_GS_PIXEL(integral / morph), streaming bitmap/JPEG untuk bingkai skala abu-abu (bpp==0),pop_frontdaftar titik kunci/blob, dan hasilmatch_descriptor.
Sistem dan kamera:
Memperbaiki nomor interface/endpoint USB HID, perubahan frekuensi XCLK secara dinamis saat runtime,
Net.forward()yang mengembalikan jumlah output yang benar, dan hardfault saat menginterupsi parsing skrip.
Dukungan hardware dan board¶
OpenMV Cam M7 (STM32F7) — papan baru.
Sensor MT9V034 global-shutter (OpenMV 4, dipicu FSIN).
FLIR Lepton — driver yang diperbarui dengan dukungan snapshot.
Perubahan API yang tidak kompatibel¶
Perubahan API yang terlihat pengguna antara v2.9.0 dan v3.0.0. Cakupan: modul C Python di modules/ dan pustaka Python di scripts/libraries/.
Setiap perubahan ditandai dengan dampaknya:
major — memengaruhi sebagian besar skrip yang menggunakan fitur tersebut; Anda perlu melakukan porting kode.
minor — API yang sempit; hanya memengaruhi skrip yang menggunakannya.
behavior — API sama, hasil berbeda; periksa kembali skrip yang telah disetel.
Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin melakukan porting kode, langsung ke daftar periksa migrasi di bagian akhir. Setiap hash commit terhubung ke diff-nya di GitHub.
image.find_number() / image.classify_object() dihapus (major)¶
Metode hard-coded image.find_number() (LeNet) dan image.classify_object() (CMSIS CNN) telah dihapus demi modul nn yang baru. Gantikan dengan net = nn.load('/model.network'); out = net.forward(img).
Commit: d151f7e38
sensor.sleep() / sensor.reset() melempar pengecualian saat gagal (minor)¶
sensor.sleep() dan sensor.reset() kini melempar pengecualian saat gagal alih-alih mengembalikan True / False. Kode yang memeriksa nilai boolean dari sensor.sleep() harus membungkus panggilan dalam try / except.
Commit: 7d16d008f
Socket WINC mengembalikan jumlah byte sebenarnya (behavior)¶
Metode send / recv / sendto / recvfrom pada socket WINC1500 sebelumnya selalu mengembalikan 0; kini mengembalikan jumlah byte yang sebenarnya ditransfer. Kode yang mengasumsikan kembalian 0 (atau melakukan loop/blokir padanya) harus menangani jumlah byte yang sebenarnya.
Commit: a07fb2f60
image.binary() mengembalikan citra baru (behavior)¶
image.binary() mendapatkan kata kunci to_bitmap / copy dan kini mengembalikan objek citra baru alih-alih mengembalikan/memutasi citra sumber secara in-place. Kode yang mengandalkan binary() untuk memutasi citra asli harus menggunakan objek yang dikembalikan (dan meneruskan copy=True untuk perilaku non-in-place).
Commit: 8a44f0cd9
Daftar periksa migrasi¶
Untuk porting yang bersih ke v3.0.0, pekerjaan umumnya adalah:
Gantikan
image.find_number()/image.classify_object()dengan modulnn(migrasi nn).Bungkus
sensor.sleep()/sensor.reset()dalamtry/exceptalih-alih memeriksa nilai boolean (perubahan sensor.sleep).Tangani jumlah byte sebenarnya dari socket WINC
send/recv(perubahan socket WINC).Gunakan citra yang dikembalikan oleh
image.binary()alih-alih mengharapkan mutasi in-place (perubahan binary).Perkecil citra sebelum
find_apriltags()agar tetap di bawah 64K piksel (batas find_apriltags).
Semua skrip lainnya berjalan tanpa perubahan.