v4.7.0¶
v4.7.0 este o versiune majoră axată pe NPU și ROMFS, construită pe Qt Creator 14.0.2. Introduce un flux de lucru pentru un sistem de fișiere ROM pe dispozitiv, cu compilatoarele de modele ARM Ethos-U (Vela) și ST Edge AI integrate, adaugă programarea din fabrică bazată pe STM32CubeProgrammer pentru OpenMV N6 și include firmware-ul OpenMV 4.7.0 pe fiecare placă. Rețineți că actualizarea oricărei camere de la un firmware anterior versiunii 4.7.0 forțează acum o ștergere a sistemului de fișiere FAT și o resetare a ROMFS, ceea ce elimină fișierele stocate în memoria flash internă a dispozitivului; vedeți Modificări incompatibile mai jos.
Repere¶
Fluxul de lucru ROM File System vă permite să creați, editați, scrieți în flash și resetați un sistem de fișiere read-only pe dispozitiv, astfel încât modelele ML să poată fi stocate pe cameră, integrat în bootloaderele DFU, IMX, Bossac, Picotool și Arduino-DFU. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)
Compilatoarele de modele ARM Ethos-U Vela și ST Edge AI sunt acum integrate, astfel încât modelele
.tflite/.onnxsunt compilate automat pentru NPU atunci când sunt încărcate pe plăcile Ethos-U55 (OpenMV AE3) sau Neural-ART (OpenMV N6). (411f708ea, 3064411ad)STM32CubeProgrammer este acum inclus pentru a permite programarea din fabrică a bootloaderului OpenMV N6 (STM32N657) prin intermediul unui fișier
FlashLayout.tsv. (334b04dbd, 54fea4d57, 28cc94a6e)Browserul Model Zoo primește o casetă de bifare „Filter models by board type”, controlată de un nou tabel
models/index.csvcare ascunde modelele incompatibile cu placa conectată. (80adb2079)Aliniere ROMFS per extensie: editorul de imagini ROMFS sortează acum fișierele alfabetic și le împachetează folosind reguli de aliniere la octeți din
settings.json(de exemplu, modelele.tflitealiniate la 16 octeți). (e87b2bf06)Firmware-ul inclus actualizat la 4.7.0 pe toate plăcile OpenMV și Arduino. (6d04b1b50, d0bbb1fe7, d7d3120b3)
Funcționalități noi¶
Submeniul ROM File System (
New/Open/Edit ROMFS on OpenMV Cam/Reset ROMFS on OpenMV Cam) înlocuiește vechea acțiune unicăEdit ROM File System. (0bc275a0a, 958f732b5)Deschiderea browserului Model Zoo cu starea persistentă a modelului selectat și o previzualizare la schimbarea selecției, incluzând bibliotecile de modele STMicroelectronics, Qualcomm, DeGirum, Edge Impulse și Google. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)
Elementul de meniu Convert Model for NPU din
Machine Vision Toolscompilează un model TensorFlow Lite (.tflite) sau ONNX (.onnx) pentru acceleratorul NPU al plăcii (Vela pentru Ethos-U.tflite, ST Edge AI pentru N6 Neural-ART.tflite/.onnx) și salvează modelul convertit pe disc sau pe cameră. (3913f5b8b)Instrumentul Copy/Convert Python File copiază un script Python pe cameră sau pe disc și, opțional, îl compilează încrucișat în bytecode MicroPython
.mpyprinmpy-cross; se află într-un nou submeniuMicroPython ToolsdinTools. (e9d7fa143, 47188c0e3)Au fost adăugate butoane de comutare Wrap Text la terminalul serial OpenMV și la panoul de ieșire
General Messages; ambele aplică încadrarea pe cuvinte a ieșirii și păstrează setarea între sesiuni. (8c052845a, 51d3e1ad6)Compilarea încrucișată ROMFS cu mpy-cross cu indicatoare de arhitectură per placă (
armv7emsp/armv7emdp) permite înghețarea scripturilor MicroPython în imagini ROMFS. (8c71548df)Dialogul bootloaderului de firmware acceptă acum fișiere ROMFS
*.imgpe lângă*.binși*.dfu, validează extensiile per bootloader și dezactivează caseta de bifare existentăReset ROMFS file systemla încărcarea unui fișier*.img. (79f348b36)Actualizările de la versiuni anterioare 4.7.0 forțează acum activarea casetelor de bifare pentru ștergerea FAT și resetarea/actualizarea ROMFS și avertizează că actualizarea necesită ștergerea sistemului de fișiere FAT. (f6f3355b0)
Alte modificări și îmbunătățiri¶
A fost reorganizat model zoo-ul Qualcomm inclus în foldere bazate pe sarcini (
image_classification,object_detection,pose_estimation,semantic_segmentation,depth_estimation), au fost eliminate modelele mari neacceptate (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2) și au fost adăugateresnet18șidensenet_121(cu o compatibilitate mai largă a plăcilor), plusfacemap_3dmmșiFFNet_40S(doar AE3/N6). (300ce2fc2)A fost adăugat un nou furnizor de modele Edge Impulse (model de detectare a feței FOMO) și noi modele Google (
micro_speech,mnist_lstm,person_detection) la model zoo-ul inclus și a fost adăugată o acțiuneView/Editla meniul contextual al editorului ROMFS. (80adb2079)Au fost curățate linkurile către model zoo: a fost adăugat modelul Qualcomm
face_attrib_net(AE3/N6), a fost eliminată intrarea YOLO-NAS defectă și au fost corectate filtrele de compatibilitate a plăcilor pentru mai multe modele de detectare a obiectelor STMicroelectronics. (fd639bda0)Au fost adăugate mai multe etichete de modele, a fost schimbată configurația acceleratorului NPU al unui model de la
stailastedgeaiși a fost extins filtrul de compatibilitate a plăcilorst_yolo_x(acum și OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7 și NICLA_VISION, pe lângă AE3/N6). (1515631ce)Adăugarea unui model
.tfliteîn ROMFS omite acum compilarea Vela/Ethos-U dacă modelul este deja compilat pentru Ethos-U (este doar copiat), iar acțiunea din dialog a fost redenumită dinAdd ModelînModel Zoo. (9c0b178fa)Compilarea ST Edge AI omite conversia pentru modelele aflate deja în formatul
NBIN. (3064411ad)Dialogul compilatorului Vela analizează utilizarea SRAM raportată de model în raport cu dimensiunea heap-ului configurată a fiecărei plăci și afișează un procentaj, cu avertismente/erori atunci când modelul depășește 90% sau 100% din heap-ul disponibil. (7140fc2aa)
Compilatorul Vela raportează acum o eroare clară „not supported on this platform” în loc să eșueze silențios, iar plasarea unui model în model zoo nu mai necesită prezența Vela. (c736dd54d, 0ad7fd705)
Compilatorul Vela Ethos-U rulează acum prin runtime-ul Python integrat inclus (
python -m ethosu.vela) în loc de un binar autonom. (52f9b8820)Dialogurile de compilare a modelelor ST Edge AI și Vela cu durată lungă afișează acum un mesaj „This command takes a while to execute. Please be patient.”. (fc9ac2ab5)
Deschiderea exemplelor sau a scripturilor noi pe senzorii PAG7936 (N6/AE3) și PS5520 modifică acum automat
sensor.set_framesize(QVGA)înVGApentru senzorii cu rezoluție mai mare. (dfc27dd25)A fost adăugată corectarea automată a scripturilor de exemplu pentru camerele termice FLIR Boson 320/640, PixArt PAG7920/PAJ6100, FROGEYE2020 și camera de evenimente Prophesee GENX320. (1f54ad01b)
Resursele IDE descărcabile (firmware/modele/documentație) se instalează acum într-un director de date de aplicație partajat pentru toți utilizatorii printr-un nou API
ICore::allUsersResourcePath(), cu manifestul versiunii resurselor stocat într-un fișierOpenMVIDE.jsoncu un nivel deasupra folderului de resurse pentru toți utilizatorii. (be308ace2, 7c7dddb87)În timpul actualizărilor de firmware ale pachetului de sistem Alif, IDE-ul îi solicită acum utilizatorului să repornească alimentarea (să deconecteze și să reconecteze) camerei înainte de a continua. (162d128f9, 756611696)
A fost reproiectat fluxul de descărcare a bootloaderului/firmware-ului Alif (Ensemble) pentru a fi compatibil cu ROMFS: generează App TOC după scrierea bootloaderului, copiază imaginile bin/sign într-un subfolder
images/și scrie în flashfirmware_pad.toc. (f623c9231)Au fost simplificate numele de afișare ale plăcilor în selectorul de firmware prin eliminarea sufixelor redundante cu cipul în paranteze și a etichetelor „Legacy” (de exemplu, „OpenMV Cam H7 (STM32H743)” devine „OpenMV Cam H7”). (334b04dbd)
Au fost redenumite două acțiuni din meniul Tools pentru claritate:
Run Bootloader (Load Firmware)este acumLoad Custom Firmware, iarErase Onboard Data Flasheste acumErase Internal FAT File System(dialogul de confirmare se referă acum la sistemul de fișiere FAT intern al camerei). (0bc275a0a)Au fost restaurate comenzile rapide de la tastatură
Ctrl+Shift+L(Load Custom Firmware) șiCtrl+Shift+E(Erase Internal FAT File System), iar elementulPreferencesa fost mutat înapoi în meniulEdit. (dabb6f7d9, b5daf59a6)A fost dezactivată detectarea automată a compilatorului C/C++ și a lanțului de instrumente la pornire, deoarece IDE-ul vizează MicroPython. (f42fcc8f2)
A fost adăugat logoul partenerului Alif Semiconductor (deschis/închis) în secțiunea de parteneri a dialogului
About. (4878781bb)Citirea firmware-ului plăcii conectate poate acum goli datele învechite din portul serial înainte de emiterea comenzii, îmbunătățind fiabilitatea interogărilor de firmware/versiune. (c15a46f5b)
A fost îmbunătățită fiabilitatea conexiunii ROMFS prin forțarea unei reconectări/reîmprospătări la operațiunile de citire, scriere și resetare ROMFS. (f9bc83007)
Corecții de erori¶
Au fost corectate dialogurile de salvare a modelelor/scripturilor și adăugarea de fișiere/modele în ROMFS pentru a utiliza sufixul simplu al fișierului în loc de sufixul complet, prevenind extensiile deformate la redenumirea fișierelor cu puncte în nume. (52c6820d2)
A fost corectată o depășire a barei de progres a încărcării DFU la transferurile mari prin calcularea procentajului cu aritmetică pe 64 de biți. (4b91ff2ba)
A fost corectată scrierea în flash a firmware-ului/bootloaderelor OpenMV mai vechi prin protejarea pașilor de ștergere și programare a flash-ului împotriva intervalelor de sectoare de flash invalide (nepozitive) și afișarea unei erori explicite în loc de o blocare, și a fost corectată protecția accesului la ROMFS în timpul actualizării de la firmware vechi. (ae2cc15b4, 235dbdb10)
A fost corectată detectarea plăcii pe portul serial astfel încât filtrul invers al numărului de serie să fie aplicat doar în timpul validării portului (nu în timpul conexiunii) și au fost adăugate filtre inverse pentru placa i.MX, astfel încât numerele de serie din modul bootloader să fie excluse. (ae2cc15b4)
A fost corectată persistența tipului de placă astfel încât o asociere de placă salvată anterior să nu mai fie suprascrisă atunci când se face o selecție manuală a tipului de placă. (c42d36001)
Repararea bootloaderului rezolvă acum numele de afișare al unei plăci ascunse în șirul său de arhitectură, astfel încât reconectarea/repararea firmware-ului să asocieze placa corectă. (a1de7a09c)
Detectarea plăcii potrivește acum șirurile de arhitectură a plăcii fără a ține cont de majuscule/minuscule. (7a2e0e93f)
A fost corectată nemontarea discului dispozitivului la deconectarea/reconectarea rapidă prin păstrarea firului de scanare a unităților și reîncercarea scanărilor de unități de până la trei ori, și s-a făcut ca scanarea unităților să ruleze în mod fiabil pe firul de scanare. (455dbe967, 58c0e5456)
A fost corectat compilatorul de modele (ST Edge AI și Vela) care nu reușea să ruleze pe Mac-urile Intel prin permiterea căii instrumentului ARM64 atunci când rulează sub Rosetta. (32e309e86)
Au fost corectate problemele cu cache-ul instrumentului Python și al serverului de limbaj prin direcționarea tuturor
__pycache__Python incluse într-un director de resurse partajat și preîncălzirea pycache-ului i.MXblhostînainte de conexiunea bootloaderului limitată în timp, astfel încât scrierea în flash să nu mai expire. (f64f3330f)A fost corectată calea antetului MicroPython utilizată de serverul de limbaj Python (pentru autocompletare) pentru a se rezolva din calea de resurse pentru toți utilizatorii și s-a făcut căutarea căii de resurse pentru toți utilizatorii mai robustă atunci când filtrarea după numele de utilizator nu găsește nimic. (5f2648565, fc1938818)
Au fost corectate linkurile defecte către documentația ST Edge AI din dialogul de opțiuni ale compilatorului prin convertirea căilor locale de fișiere în URL-uri
file://corecte. (3ac136444)A fost corectată indentarea automată a editorului Python astfel încât liniile să nu mai fie dezindentate incorect după o linie (electrică) care se termină cu două puncte, de exemplu după anteturile
if/for/def. (6555f44ba)A fost corectată alinierea înregistrărilor de director ROMFS astfel încât offseturile folderelor să țină cont de dimensiunea înregistrării numelui de director, și a fost mărită întârzierea între fișiere la dezarhivarea/crearea fișierelor ROMFS și model zoo pentru a asigura marcaje de timp de creare distincte. (9bf7e1d9e, d968a6e46)
A fost corectată o depășire de număr întreg în conversia mean-to-depthwise-conv a optimizatorului de graf Vela prin calcularea multiplicatorului de ieșire pe 64 de biți, și a fost corectat numele de bază utilizat în titlul/ieșirea dialogului compilatorului Vela. (d217a46e9, 8376490eb)
A fost corectată restaurarea folderelor extinse și a modelului selectat din browserul model zoo la redeschidere, și a fost comutat dialogul la alocarea pe heap pentru a evita problemele de durată de viață ale GUI-ului. (84a63ef4c)
A fost corectată calea de salvare-ca a Model Zoo astfel încât directorul memorat să fie stocat ca folder, nu ca nume de fișier complet. (be877f7af)
A fost păstrată calea moștenită a resurselor utilizatorului în loc de a fi ștearsă la pornire, evitând o eroare „close any programs viewing OpenMV IDE data” atunci când folderul vechi este blocat. (775656775)
Au fost corectate scripturile de instalare a driverelor pentru Windows și fișierele catalog/inf astfel încât driverele OpenMV DFU, dfuse, FTDI, Arduino, pybcdc și VCR să se instaleze fiabil și să raporteze corect codurile de succes, au fost consolidate scripturile de instalare a driverelor DFU dfuse/vcr și au fost re-semnate cataloagele driverelor OpenMV DFU incluse. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)
A fost corectat instalatorul Linux pentru a instala
pyusbprin pachetul de distribuțiepython3-usbși a adăugabuild-essentialîn loc de a rulapip install pyusb, și pentru a detecta sistemul de operare prin/etc/os-release. (c471ddc42, 4014a0ba5)Instalatorul Windows activează acum suportul pentru căi lungi, astfel încât fișierele ST Edge AI adânc imbricate să se instaleze corect. (0b3ca6945)
Suport pentru platforme și instrumente¶
Bază Qt Creator: 14.0.2.
Firmware OpenMV inclus: actualizat la 4.7.0 pe toate plăcile OpenMV și Arduino (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6); firmware-ul a fost reconstruit cu suport ROMFS (
romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)OpenMV N6 ROMFS: mărit de la 16MB la 24MB, cu imaginea romfs mutată la DFU alt-setting 3. (d0bbb1fe7, d7d3120b3)
OpenMV AE3 ROMFS: mărit de la 16MB la 24MB, cu reguli de aliniere la 16/32 de octeți adăugate pentru fișierele de model
.binincluse pe toate plăcile. (746da8914)STM32CubeProgrammer (STM32_Programmer_CLI) inclus pentru macOS, Linux și Windows cu baza de date completă de dispozitive STM32 și loadere externe pentru programarea din fabrică N6; instalarea a fost redusă prin eliminarea loaderelor externe nefolosite și a fișierelor de bază de date per MCU pentru a micșora dimensiunea. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)
Compilatorul ST Edge AI (stedgeai) 2.1.0 inclus (Windows) pentru NPU-ul N6 Neural-ART. (3064411ad)
Compilatorul ARM Ethos-U Vela 4.2.0 (cu numpy 2.2.4) inclus pentru Linux x86-64, macOS (Apple silicon) și Windows. Pachetul Windows a fost adăugat prima dată la Vela 4.1.0 / numpy 2.2.3 și ulterior actualizat la versiunea finală 4.2.0 / numpy 2.2.4. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)
mpy-cross 1.25.0.post2 inclus (macOS/Windows). (8c71548df, 3ab42d58a)
Alif Security Toolkit: actualizat la v1.104.0 (binare setools semnate și PDF-ul ghidului utilizatorului v1.104.0) pentru plăcile bazate pe Alif Ensemble. (43260719c, 75a58e61b)
Au fost adăugate configurațiile NPU OPENMV_AE3 (Alif Ensemble) care vizează acceleratoarele ethos-u55-256 și ethos-u55-128 cu configurații de sistem RTSS HP/HE SRAM/MRAM/OSPI. (1f5fc546d, 411f708ea)
Au fost adăugate diagrame de pinout pentru camerele OpenMV N6 și AE3 (senzor PAG7936) în selectorul de pinout, și un nou exemplu de cameră de evenimente Genx320 în tonuri de gri care demonstrează configurarea filtrului anti-flicker. (60184bbc5, 6d04b1b50)
A fost actualizată potrivirea USB PID a Arduino Nicla Vision pentru a recunoaște un nou PID de aplicație (0x055F) pe lângă cel original (0x045F). (91ce4007c)
Au fost actualizați parametrii de scriere în flash a bootloaderului securizat NXP/blhost pentru a utiliza o adresă/lungime FCB explicită și o dimensiune de disc MBR, aliniindu-se la cel mai recent toolkit spsdk. (16b66c3e2)
Instalatorul Windows include acum un driver dedicat de bootloader STM32 DFU și redistribuibilele Microsoft Visual C++ 2015+. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)
A fost eliminat din IDE model zoo-ul DeGirum YOLOv5/YOLOv8 inclus. (26710be1c)
Modificări incompatibile¶
Întreruperi de flux de lucru și de comportament vizibile pentru utilizator în v4.7.0. Nu există nicio întrerupere a API-ului de scripting, dar rețineți următoarele:
Sistemul de fișiere FAT șters la actualizarea de la versiuni anterioare 4.7.0. Actualizarea oricărei OpenMV Cam de la un firmware anterior versiunii 4.7.0 forțează acum ștergerea sistemului de fișiere FAT și resetarea/actualizarea ROMFS în timpul actualizării firmware-ului (casetele de bifare din dialog sunt forțate să fie activate și nu pot fi dezactivate), așa că fișierele utilizatorului stocate în memoria flash internă a dispozitivului vor fi eliminate la actualizare. (f6f3355b0)
Firmware-ul UVC și binarele bootloaderului Portenta H7 eliminate. Imaginile de firmware UVC webcam precompilate (
uvc.bin/dfu/elf) au fost eliminate pentru toate plăcile, iar binarele bootloaderului Arduino Portenta H7 au fost eliminate din pachet; aceste imagini precompilate nu mai pot fi scrise în flash din IDE. (c44e33d70)Relocarea directorului de resurse. Resursele IDE descărcabile (firmware, model zoo, documentație) se instalează acum într-un director de date de aplicație partajat pentru toți utilizatorii, în loc de calea de resurse per utilizator, iar manifestul versiunii s-a mutat din QSettings într-un fișier
OpenMVIDE.jsonstocat cu un nivel deasupra folderului de resurse pentru toți utilizatorii (cu oglindire QSettings compatibilă retroactiv). O redescărcare a resurselor este declanșată la prima rulare după actualizare. (be308ace2, 7c7dddb87)