v4.7.0¶
v4.7.0 adalah rilis fitur utama. Sorotan utamanya: board OpenMV AE3 baru (Alif Ensemble, Cortex-M55 + NPU Ethos-U55) dengan model pemrograman dual-core openamp, filesystem ROMFS (/rom) hanya-baca dengan model dan cascade bawaan, dukungan ToF 8x8 VL53L8CX, post-processor YOLOv8 / YOLO-LC baru, dan MicroPython 1.25. Rilis ini juga mengubah cara memuat model bawaan dan cascade Haar, jadi bacalah perubahan yang merusak di bawah ini.
Sorotan¶
Board OpenMV AE3 — board Alif Ensemble (Cortex-M55 + NPU Ethos-U55), dengan port lengkap, bootloader, dan ROMFS.
Modul
openampdual-core — pindahkan pekerjaan ke core Alif kedua melalui RPMsg (dekorator@async_remote,Endpoint/EndpointIO).ROMFS — filesystem
/romhanya-baca dengan model TFLite dan cascade Haar bawaan, ditambah alat host barutools/mkromfs.py.Dukungan sensor time-of-flight multi-zona 8x8 VL53L8CX.
Post-processor ML baru —
yolo_v8_postprocessdanyolo_lc_postprocess.MicroPython diperbarui ke 1.25.0.
Perubahan merusak: model bawaan dan cascade Haar kini dimuat dari
/romberdasarkan path (lihat perubahan ml.Model dan perubahan cascade Haar).
Fitur baru¶
OpenMV AE3 — board Alif Ensemble baru (core aplikasi Cortex-M55 + NPU Ethos-U55), dengan port, bootloader, konfigurasi board, LED RGB, dan dukungan ROMFS.
openamp— modul baru untuk model RPC dual-core Alif (Open-AMP / RPMsg):Endpoint,EndpointIO,new_service_callback, dan dekorator@async_remoteuntuk memindahkan fungsi yang di-marshal ke core kedua. Core HE/HP dilengkapi task runner_boot.pyberbasis asyncio bawaan.audio— port Alif menambahkan modul audio (mikrofon PDM) dengan API streaming berbasis callback (audio.init(channels=, frequency=, gain_db=, buffers=, samples=, overflow=, highpass=)) pada AE3.ROMFS — filesystem
/romhanya-baca dengan aset bawaan (model TFLite, cascade Haar, ...) yang dikemas per board, alat host barutools/mkromfs.py(tflite, tflite+vela, cascade Haar, teks, biner), dan helperscripts/libraries/romfs.pyyang mengeksposls_romfs().Post-processing ML — kelas
yolo_v8_postprocess(YOLOv8) danyolo_lc_postprocess(varian tiny-YOLOv2 ringan dengan anchor default yang dioptimalkan untuk embedded) baru, masing-masing mengambilthreshold,nms_threshold, dannms_sigma.Anti-flicker GenX320 — ioctl
IOCTL_GENX320_SET_AFKbaru untuk mengaktifkan dan mengonfigurasi filter anti-flicker sensor event (frekuensi flicker min/maks dalam Hz), dengan contohgenx320_grayscale_set_afk.py.VL53L8CX — dukungan untuk sensor time-of-flight multi-zona 8x8 melalui modul
tof(terdeteksi otomatis, 8x8 pada 15 Hz).
Perubahan dan perbaikan lainnya¶
MicroPython diperbarui ke 1.25.0 (port STM32 dan i.MX RT), dengan port Alif upstream ditambahkan dan driver BT-HCI lama dihapus dari port STM32 / i.MX RT.
GenX320 — urutan ISSD baru menggandakan clock piksel internal (24 → 48 MHz) untuk frame rate yang lebih tinggi.
STM32N6 / ST Edge AI — persiapan deployment model Neural-ART STM32N6 (tooling ST Edge AI dan dukungan ROMFS).
PAG7936 — bitrate CSI PHY kini ditetapkan, meningkatkan operasi sensor tersebut.
Perbaikan bug¶
Kamera dan sensor:
Memperbaiki IMU melalui I2C — board yang memasang IMU LSM6DSx pada I2C kini menginisialisasi dan membaca dengan benar (jalur I2C sebelumnya menggunakan jalur baca yang rusak dan konstanta yang salah).
Init FLIR Boson kini mencoba ulang hingga 10 kali untuk sensor yang lebih lama (< IDD 4.x) yang membutuhkan ~10 detik untuk booting, dan pengaturan pabrik dikembalikan saat reset agar pengaturan yang dimuat dari luar tidak merusak keluaran video.
Memperbaiki
psee_ehc_activate_overridepada GenX320 yang menulis waktu akumulasi yang salah (nol).Pada board STM32 tanpa hardware FastMode+, permintaan mode cepat I2C kini dilindungi dengan benar alih-alih mengonfigurasi bus secara diam-diam.
Machine learning:
Memperbaiki pengumpulan kotak pembatas dan penanganan
np.nonzerodalam post-processor YOLOv2 / YOLOv5, meningkatkan keandalan deteksi.
Dukungan hardware dan board¶
OpenMV AE3 — board Alif Ensemble baru (Cortex-M55 + NPU Ethos-U55).
VL53L8CX — sensor time-of-flight multi-zona 8x8; sensor ToF AE3 beralih dari VL53L5CX ke VL53L8CX.
STM32N6 — persiapan deployment model ST Edge AI (Neural-ART).
Perubahan API yang merusak¶
Perubahan API yang terlihat pengguna antara v4.6.20 dan v4.7.0. Cakupan: C-module Python dalam modules/ dan library Python dalam scripts/libraries/.
Setiap perubahan diberi tag dengan dampaknya:
major — sebagian besar skrip yang menggunakannya perlu diedit.
minor — API yang sempit; hanya memengaruhi skrip yang menggunakannya.
behavior — API sama, hasil berbeda; periksa kembali skrip yang sudah disetel.
Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin memindahkan kode, langsung ke daftar periksa migrasi di akhir untuk daftar tugas yang ringkas. Setiap hash commit menautkan ke diff-nya di GitHub.
Model bawaan dimuat berdasarkan path, bukan nama (major)¶
ml.Model tidak lagi memuat model bawaan dari string nama biasa. Model kini dimuat dari filesystem / ROMFS berdasarkan path:
model = ml.Model("/rom/person_detect.tflite") # was: ml.Model("person_detect")
Atribut model.labels sisi-C telah dihapus; label kini dimuat oleh wrapper Python ml.Model dari file sidecar <model>.txt (None jika tidak ada). Semua contoh bawaan dan ml/apps.py telah diperbarui ke path /rom/*.tflite.
Cascade Haar dimuat dari ROMFS (minor)¶
image.HaarCascade() kini memuat cascade bawaan melalui VFS / ROMFS. File cascade wajah-depan bawaan diganti nama dari haarcascade_frontalface_default.xml menjadi haarcascade_frontalface.xml, dan kegagalan memuat kini memunculkan RuntimeError ("Failed to load Haar cascade") alih-alih OSError.
Commit: 9de1220d8
Semantik tof.reset() / tof.deinit() (behavior)¶
Dalam modul tof, reset() sebelumnya menjadi alias untuk init() dan tidak ada deinit yang sesungguhnya. tof.reset() kini melakukan reset sensor yang sebenarnya dan tof.deinit() mematikan sensor dengan benar (dengan dukungan shutdown VL53L5CX). Kode yang mengandalkan reset() untuk menginisialisasi ulang sensor harus diperiksa kembali.
Batasan timing dan mode event GenX320 (behavior)¶
Urutan ISSD GenX320 yang baru mengubah basis waktu sensor: argumen frame-rate dan eksposur kini dinyatakan dalam satuan 1 MHz alih-alih diskalakan berdasarkan clock, dan blanking HSYNC disesuaikan secara dinamis terhadap frame rate yang diminta. Skrip yang mengkodekan keras nilai timing GenX320 harus disetel ulang. Pengambilan gambar mode event kini memunculkan error ketika transpose citra diaktifkan (tidak didukung dalam konfigurasi tersebut).
Daftar periksa migrasi¶
Untuk migrasi bersih ke v4.7.0, pekerjaan yang umum dilakukan adalah:
Ubah pemuatan model bawaan dari string nama ke path
/rom/<name>.tflite, dan sediakan label melalui file sidecar<name>.txt(perubahan ml.Model).Perbarui
haarcascade_frontalface_default.xmlmenjadihaarcascade_frontalface.xmldan tangkapRuntimeError(bukanOSError) saat kegagalan memuat cascade (perubahan cascade Haar).Hapus kode yang mengandalkan
tof.reset()untuk menginisialisasi ulang sensor (perubahan tof).Setel ulang nilai frame-rate / eksposur GenX320 yang dikodekan keras ke satuan 1 MHz, dan jangan aktifkan transpose dalam mode event (perubahan GenX320).