v4.7.0¶
v4.7.0 is een grote release gericht op NPU en ROMFS, gebouwd op Qt Creator 14.0.2. De release introduceert een on-device ROM-bestandssysteemworkflow met geïntegreerde ARM Ethos-U (Vela) en ST Edge AI modelcompilers, voegt op STM32CubeProgrammer gebaseerde fabrieksprogrammering voor de OpenMV N6 toe, en levert OpenMV firmware 4.7.0 mee voor elk board. Let op: het upgraden van een camera vanaf een firmware ouder dan 4.7.0 dwingt nu een wissen van het FAT-bestandssysteem en een ROMFS-reset af, waardoor bestanden op het interne flashgeheugen van het apparaat worden verwijderd; zie Breaking changes hieronder.
Hoogtepunten¶
ROM File System workflow laat je een alleen-lezen on-device bestandssysteem aanmaken, bewerken, flashen en resetten zodat ML-modellen op de camera kunnen worden opgeslagen, geïntegreerd in de DFU-, IMX-, Bossac-, Picotool- en Arduino-DFU-bootloaders. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)
De modelcompilers ARM Ethos-U Vela en ST Edge AI zijn nu geïntegreerd, zodat
.tflite/.onnxmodellen automatisch voor de NPU worden gecompileerd wanneer ze op Ethos-U55 (OpenMV AE3) of Neural-ART (OpenMV N6) boards worden geladen. (411f708ea, 3064411ad)STM32CubeProgrammer wordt nu meegeleverd om fabrieksprogrammering van de OpenMV N6 (STM32N657) bootloader via een
FlashLayout.tsvmogelijk te maken. (334b04dbd, 54fea4d57, 28cc94a6e)De Model Zoo browser krijgt een selectievakje “Filter models by board type” dat wordt aangestuurd door een nieuwe
models/index.csvtabel en modellen verbergt die incompatibel zijn met het aangesloten board. (80adb2079)ROMFS-uitlijning per extensie: de ROMFS-imageeditor sorteert bestanden nu alfabetisch en pakt ze met byte-uitlijningsregels uit
settings.json(bijv..tflitemodellen uitgelijnd op 16 bytes). (e87b2bf06)Meegeleverde firmware bijgewerkt naar 4.7.0 voor alle OpenMV- en Arduino-boards. (6d04b1b50, d0bbb1fe7, d7d3120b3)
Nieuwe functies¶
ROM File System submenu (
New/Open/Edit ROMFS on OpenMV Cam/Reset ROMFS on OpenMV Cam) vervangt de oude losseEdit ROM File Systemactie. (0bc275a0a, 958f732b5)Open Model Zoo browser met persistente status van het geselecteerde model en een voorbeeldweergave bij selectiewijziging, inclusief meegeleverde modelbibliotheken van STMicroelectronics, Qualcomm, DeGirum, Edge Impulse en Google. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)
Het menu-item Convert Model for NPU onder
Machine Vision Toolscompileert een TensorFlow Lite (.tflite) of ONNX (.onnx) model voor de NPU-accelerator van het board (Vela voor Ethos-U.tflite, ST Edge AI voor de N6 Neural-ART.tflite/.onnx) en slaat het geconverteerde model op schijf of op de camera op. (3913f5b8b)De Copy/Convert Python File tool kopieert een Python-script naar de camera of schijf en cross-compileert het optioneel naar MicroPython
.mpybytecode viampy-cross; het bevindt zich in een nieuwMicroPython Toolssubmenu onderTools. (e9d7fa143, 47188c0e3)Wrap Text schakelknoppen zijn toegevoegd aan de OpenMV seriële terminal en het
General Messagesuitvoerpaneel; beide breken hun uitvoer per woord af en bewaren de instelling tussen sessies. (8c052845a, 51d3e1ad6)mpy-cross ROMFS cross-compilatie met architectuurvlaggen per board (
armv7emsp/armv7emdp) maakt het mogelijk MicroPython-scripts in ROMFS-images te bevriezen. (8c71548df)Het firmware-bootloaderdialoogvenster accepteert nu
*.imgROMFS-bestanden naast*.binen*.dfu, valideert de extensies per bootloader en schakelt het bestaandeReset ROMFS file systemselectievakje uit bij het laden van een*.imgbestand. (79f348b36)Upgrades vanaf versies ouder dan 4.7.0 forceren nu de selectievakjes voor FAT-wissen en ROMFS-reset/-update aan en waarschuwen dat upgraden het wissen van het FAT-bestandssysteem vereist. (f6f3355b0)
Overige wijzigingen en verbeteringen¶
De meegeleverde Qualcomm model zoo is gereorganiseerd in taakgebaseerde mappen (
image_classification,object_detection,pose_estimation,semantic_segmentation,depth_estimation), niet-ondersteunde grote modellen (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2) zijn verwijderd, enresnet18endensenet_121(met bredere boardcompatibiliteit) zijn toegevoegd, plusfacemap_3dmmenFFNet_40S(alleen AE3/N6). (300ce2fc2)Een nieuwe Edge Impulse modelleverancier (FOMO gezichtsdetectiemodel) en nieuwe Google-modellen (
micro_speech,mnist_lstm,person_detection) zijn aan de meegeleverde model zoo toegevoegd, en er is eenView/Editactie aan het contextmenu van de ROMFS-editor toegevoegd. (80adb2079)Model-zoo links opgeschoond: het Qualcomm
face_attrib_netmodel (AE3/N6) is toegevoegd, de defecte YOLO-NAS vermelding is verwijderd, en boardcompatibiliteitsfilters voor verschillende STMicroelectronics objectdetectiemodellen zijn gecorrigeerd. (fd639bda0)Meer modellabels toegevoegd, de NPU-acceleratorconfiguratie van één model gewijzigd van
stainaarstedgeai, en het boardcompatibiliteitsfilterst_yolo_xverbreed (nu ook OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7 en NICLA_VISION naast AE3/N6). (1515631ce)Het toevoegen van een
.tflitemodel aan ROMFS slaat nu Vela/Ethos-U compilatie over als het model al voor Ethos-U is gecompileerd (het wordt dan alleen gekopieerd), en de dialoogactie is hernoemd vanAdd ModelnaarModel Zoo. (9c0b178fa)ST Edge AI compilatie slaat conversie over voor modellen die al in het
NBINformaat staan. (3064411ad)Het Vela-compilerdialoogvenster controleert het door het model gerapporteerde SRAM-gebruik tegen de geconfigureerde heapgrootte van elk board en toont een percentage met waarschuwingen/fouten wanneer het model meer dan 90% of 100% van de beschikbare heap overschrijdt. (7140fc2aa)
De Vela-compiler meldt nu een duidelijke “not supported on this platform” fout in plaats van stilletjes te falen, en het neerzetten van een model in de model zoo vereist niet langer dat Vela aanwezig is. (c736dd54d, 0ad7fd705)
De Vela Ethos-U compiler draait nu via de meegeleverde embedded Python-runtime (
python -m ethosu.vela) in plaats van een losstaand binair bestand. (52f9b8820)Langlopende ST Edge AI en Vela modelcompilatiedialogen tonen nu een “This command takes a while to execute. Please be patient.” melding. (fc9ac2ab5)
Bij het openen van voorbeelden of nieuwe scripts op PAG7936 (N6/AE3) en PS5520 sensoren wordt nu automatisch
sensor.set_framesize(QVGA)opgehoogd naarVGAvoor de sensoren met hogere resolutie. (dfc27dd25)Automatische correctie van voorbeeldscripts toegevoegd voor FLIR Boson 320/640 thermische camera’s, PixArt PAG7920/PAJ6100, FROGEYE2020 en de Prophesee GENX320 event-camera. (1f54ad01b)
Downloadbare IDE-resources (firmware/modellen/documentatie) installeren nu naar een gedeelde applicatiegegevensmap voor alle gebruikers via een nieuwe
ICore::allUsersResourcePath()API, waarbij het versiemanifest van de resources wordt opgeslagen in eenOpenMVIDE.jsonbestand één niveau boven de resourcemap voor alle gebruikers. (be308ace2, 7c7dddb87)Tijdens Alif systeempakket-firmware-updates vraagt de IDE de gebruiker nu om de camera uit en weer aan te zetten (loskoppelen en opnieuw aansluiten) voordat wordt doorgegaan. (162d128f9, 756611696)
De Alif (Ensemble) bootloader-/firmware-downloadflow is herwerkt om ROMFS-compatibel te zijn: het genereert de App TOC na het schrijven van de bootloader, kopieert bin-/sign-images naar een
images/submap en flashtfirmware_pad.toc. (f623c9231)Boardweergavenamen in de firmwareselector zijn vereenvoudigd door de overbodige chip-tussen-haakjes achtervoegsels en de “Legacy” labels weg te laten (bijv. “OpenMV Cam H7 (STM32H743)” wordt “OpenMV Cam H7”). (334b04dbd)
Twee Tools-menu-acties hernoemd voor de duidelijkheid:
Run Bootloader (Load Firmware)is nuLoad Custom Firmware, enErase Onboard Data Flashis nuErase Internal FAT File System(het bevestigingsdialoogvenster verwijst nu naar het interne FAT-bestandssysteem van de camera). (0bc275a0a)De sneltoetsen
Ctrl+Shift+L(Load Custom Firmware) enCtrl+Shift+E(Erase Internal FAT File System) zijn hersteld, en hetPreferencesitem is teruggeplaatst in hetEditmenu. (dabb6f7d9, b5daf59a6)Automatische detectie van C/C++ compilers en toolchains bij het opstarten is uitgeschakeld, aangezien de IDE op MicroPython is gericht. (f42fcc8f2)
Het partnerlogo van Alif Semiconductor (licht/donker) toegevoegd aan de partnersectie van het
Aboutdialoogvenster. (4878781bb)Het uitlezen van de firmware van het aangesloten board kan nu verouderde seriële-poortgegevens leegmaken voordat de opdracht wordt verstuurd, wat de betrouwbaarheid van firmware-/versiequery’s verbetert. (c15a46f5b)
De betrouwbaarheid van de ROMFS-verbinding verbeterd door een herverbinding/verversing af te dwingen bij ROMFS lees-, schrijf- en resetbewerkingen. (f9bc83007)
Bugfixes¶
Model-/scriptopslagdialogen en ROMFS add-file/add-model gebruiken nu het eenvoudige bestandssuffix in plaats van het volledige suffix, wat verminkte extensies voorkomt bij het hernoemen van bestanden met punten in hun naam. (52c6820d2)
Een overflow van de DFU-uploadvoortgangsbalk bij grote overdrachten verholpen door het percentage met 64-bits rekenwerk te berekenen. (4b91ff2ba)
Het flashen van oudere OpenMV firmware/bootloaders verholpen door flash-wis- en programmeerstappen te beschermen tegen ongeldige (niet-positieve) flashsectorbereiken en een expliciete fout te tonen in plaats van te crashen, en de ROMFS-toegangsbescherming tijdens het upgraden van oude firmware verholpen. (ae2cc15b4, 235dbdb10)
Detectie van seriële-poortboards verholpen zodat het inverse filter op serienummers alleen tijdens poortvalidatie wordt toegepast (niet tijdens verbinding), en inverse filters toegevoegd voor het i.MX board zodat serienummers in bootloadermodus worden uitgesloten. (ae2cc15b4)
Persistentie van boardtype verholpen zodat een eerder opgeslagen boardtoewijzing niet langer wordt overschreven wanneer er handmatig een boardtype wordt geselecteerd. (c42d36001)
Bootloaderreparatie zet de weergavenaam van een verborgen board nu om naar de bijbehorende architectuurstring, zodat herverbinding/firmwarereparatie het juiste board toewijst. (a1de7a09c)
Boarddetectie matcht boardarchitectuurstrings nu hoofdletterongevoelig. (7a2e0e93f)
Verholpen dat de apparaatschijf niet kon worden gemount bij snel loskoppelen/opnieuw aansluiten door de schijfscanthread persistent te maken en schijfscans tot drie keer opnieuw te proberen, en schijfscannen betrouwbaar op de scanthread te laten draaien. (455dbe967, 58c0e5456)
Verholpen dat de modelcompiler (ST Edge AI en Vela) niet kon draaien op Intel-Macs door het ARM64-toolpad toe te staan bij het draaien onder Rosetta. (32e309e86)
Cacheproblemen met de Python-tool en de language server verholpen door alle meegeleverde Python
__pycache__naar een gedeelde resourcemap te routeren en de i.MXblhostpycache voor te verwarmen vóór de tijdgebonden bootloaderverbinding, zodat het flashen niet langer een time-out krijgt. (f64f3330f)Het MicroPython-headerpad dat door de Python language server (voor automatisch aanvullen) wordt gebruikt verholpen zodat het wordt opgelost vanuit het resourcepad voor alle gebruikers, en de opzoeking van het resourcepad voor alle gebruikers robuuster gemaakt wanneer gebruikersnaamfiltering niets oplevert. (5f2648565, fc1938818)
Defecte ST Edge AI documentatielinks in het compileropties-dialoogvenster verholpen door lokale bestandspaden naar correcte
file://URL’s te converteren. (3ac136444)Automatisch inspringen in de Python-editor verholpen zodat regels niet langer onterecht worden uitgesprongen na een regel die op een dubbele punt eindigt (electric), bijv. na
if/for/defheaders. (6555f44ba)Uitlijning van ROMFS-maprecords verholpen zodat mapoffsets rekening houden met de grootte van het mapnaamrecord, en de vertraging tussen bestanden verhoogd bij het uitpakken/aanmaken van ROMFS- en model-zoo-bestanden om onderscheidende aanmaaktijdstempels te garanderen. (9bf7e1d9e, d968a6e46)
Een integer-overflow in de mean-naar-depthwise-conv conversie van de Vela graphoptimaliseerder verholpen door de uitvoervermenigvuldiger in 64-bits te berekenen, en de basisnaam die in de titel/uitvoer van het Vela-compilerdialoogvenster wordt gebruikt verholpen. (d217a46e9, 8376490eb)
Het herstellen van de uitgevouwen mappen en het geselecteerde model van de model zoo browser bij heropenen verholpen, en het dialoogvenster overgeschakeld naar heap-allocatie om problemen met de levensduur van de GUI te voorkomen. (84a63ef4c)
Het opslaan-als-pad van de Model Zoo verholpen zodat de onthouden directory als map wordt opgeslagen in plaats van als volledige bestandsnaam. (be877f7af)
Het oude gebruikersresourcepad behouden in plaats van het bij het opstarten te verwijderen, waardoor een “close any programs viewing OpenMV IDE data” fout wordt voorkomen wanneer de oude map vergrendeld is. (775656775)
De Windows-stuurprogramma-installatiescripts en catalog-/inf-bestanden verholpen zodat OpenMV DFU-, dfuse-, FTDI-, Arduino-, pybcdc- en VCR-stuurprogramma’s betrouwbaar installeren en succescodes correct rapporteren, de dfuse-/vcr-DFU-stuurprogramma-installatiescripts robuuster gemaakt, en de meegeleverde OpenMV DFU-stuurprogrammacatalogi opnieuw ondertekend. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)
De Linux-installer verholpen zodat deze
pyusbinstalleert via het distro-pakketpython3-usbenbuild-essentialtoevoegt in plaats vanpip install pyusbuit te voeren, en zodat het OS wordt gedetecteerd via/etc/os-release. (c471ddc42, 4014a0ba5)De Windows-installer schakelt nu lange-padondersteuning in zodat diep geneste ST Edge AI bestanden correct installeren. (0b3ca6945)
Platform- en toolondersteuning¶
Qt Creator basis: 14.0.2.
Meegeleverde OpenMV firmware: bijgewerkt naar 4.7.0 voor alle OpenMV- en Arduino-boards (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6); firmware is opnieuw gebouwd met ROMFS-ondersteuning (
romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)OpenMV N6 ROMFS: vergroot van 16MB naar 24MB, met de romfs-image verplaatst naar DFU alt-setting 3. (d0bbb1fe7, d7d3120b3)
OpenMV AE3 ROMFS: vergroot van 16MB naar 24MB, met 16/32-byte uitlijningsregels toegevoegd voor meegeleverde
.binmodelbestanden op alle boards. (746da8914)STM32CubeProgrammer (STM32_Programmer_CLI) meegeleverd voor macOS, Linux en Windows met de volledige STM32 apparaatdatabase en externe loaders voor N6 fabrieksprogrammering; de installatie is ontdaan van ongebruikte externe-loader- en per-MCU-databasebestanden om de omvang te verkleinen. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)
ST Edge AI (stedgeai) compiler 2.1.0 meegeleverd (Windows) voor de N6 Neural-ART NPU. (3064411ad)
ARM Ethos-U Vela compiler 4.2.0 (met numpy 2.2.4) meegeleverd voor Linux x86-64, macOS (Apple silicon) en Windows. De Windows-bundel werd eerst toegevoegd op Vela 4.1.0 / numpy 2.2.3 en later opgehoogd naar de uiteindelijke 4.2.0 / numpy 2.2.4. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)
mpy-cross 1.25.0.post2 meegeleverd (macOS/Windows). (8c71548df, 3ab42d58a)
Alif Security Toolkit: bijgewerkt naar v1.104.0 (ondertekende setools-binaries en v1.104.0 User Guide PDF) voor boards op basis van Alif Ensemble. (43260719c, 75a58e61b)
OPENMV_AE3 (Alif Ensemble) NPU-configuraties toegevoegd gericht op ethos-u55-256 en ethos-u55-128 accelerators met RTSS HP/HE SRAM-/MRAM-/OSPI-systeemconfiguraties. (1f5fc546d, 411f708ea)
Pinout-diagrammen toegevoegd voor de OpenMV N6 en AE3 camera’s (PAG7936 sensor) aan de pinout-selector, en een nieuw Genx320 grijswaarden-event-cameravoorbeeld dat de configuratie van het anti-flikkerfilter demonstreert. (60184bbc5, 6d04b1b50)
USB PID-matching voor de Arduino Nicla Vision bijgewerkt om een nieuwe applicatie-PID (0x055F) te herkennen naast de oorspronkelijke (0x045F). (91ce4007c)
Flashparameters voor de NXP/blhost secure bootloader bijgewerkt om een expliciet FCB-adres/-lengte en een MBR-schijfgrootte te gebruiken, in lijn met de nieuwste spsdk-toolkit. (16b66c3e2)
De Windows-installer levert nu een dedicated STM32 DFU bootloader-stuurprogramma en de Microsoft Visual C++ 2015+ redistributables mee. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)
De meegeleverde DeGirum YOLOv5/YOLOv8 model zoo verwijderd uit de IDE. (26710be1c)
Breaking changes¶
Voor de gebruiker zichtbare workflow- en gedragsbreuken in v4.7.0. Er is geen breuk in de scripting-API, maar let op het volgende:
FAT-bestandssysteem gewist bij upgrade vanaf versies ouder dan 4.7.0. Het upgraden van een OpenMV Cam vanaf een firmware ouder dan 4.7.0 forceert nu het wissen van het FAT-bestandssysteem en het resetten/updaten van de ROMFS tijdens de firmware-update (de selectievakjes in het dialoogvenster worden geforceerd aan en kunnen niet worden uitgeschakeld), waardoor gebruikersbestanden op het interne flashgeheugen van het apparaat bij de upgrade worden gewist. (f6f3355b0)
UVC-firmware en Portenta H7 bootloaderbinaries verwijderd. De voorgebouwde UVC-webcam-firmware-images (
uvc.bin/dfu/elf) zijn voor alle boards verwijderd, en de Arduino Portenta H7 bootloaderbinaries zijn uit de bundel verwijderd; deze voorgebouwde images kunnen niet langer vanuit de IDE worden geflasht. (c44e33d70)Verplaatsing van de resourcedirectory. Downloadbare IDE-resources (firmware, model zoo, documentatie) installeren nu naar een gedeelde applicatiegegevensmap voor alle gebruikers in plaats van naar het resourcepad per gebruiker, en het versiemanifest is verplaatst van QSettings naar een
OpenMVIDE.jsonbestand dat één niveau boven de resourcemap voor alle gebruikers wordt opgeslagen (met achterwaarts compatibele QSettings-mirroring). Bij de eerste keer opstarten na de upgrade wordt een opnieuw downloaden van de resources geactiveerd. (be308ace2, 7c7dddb87)