v4.7.0¶
v4.7.0 est une version majeure axée sur le NPU et ROMFS, construite sur Qt Creator 14.0.2. Elle introduit un flux de travail de système de fichiers ROM embarqué avec les compilateurs de modèles ARM Ethos-U (Vela) et ST Edge AI intégrés, ajoute une programmation d’usine basée sur STM32CubeProgrammer pour l’OpenMV N6 et intègre le micrologiciel OpenMV 4.7.0 sur toutes les cartes. Notez que la mise à niveau d’une caméra depuis un micrologiciel antérieur à 4.7.0 force désormais un effacement du système de fichiers FAT et une réinitialisation de ROMFS, ce qui efface les fichiers stockés sur la mémoire flash interne de l’appareil ; consultez Changements incompatibles ci-dessous.
Points forts¶
Le flux de travail du système de fichiers ROM vous permet de créer, modifier, flasher et réinitialiser un système de fichiers embarqué en lecture seule afin que les modèles ML puissent être stockés sur la caméra, intégré dans les programmes d’amorçage DFU, IMX, Bossac, Picotool et Arduino-DFU. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)
Les compilateurs de modèles ARM Ethos-U Vela et ST Edge AI sont désormais intégrés, de sorte que les modèles
.tflite/.onnxsont automatiquement compilés pour le NPU lorsqu’ils sont chargés sur les cartes Ethos-U55 (OpenMV AE3) ou Neural-ART (OpenMV N6). (411f708ea, 3064411ad)STM32CubeProgrammer est désormais inclus pour permettre la programmation d’usine du programme d’amorçage de l’OpenMV N6 (STM32N657) via un
FlashLayout.tsv. (334b04dbd, 54fea4d57, 28cc94a6e)Le navigateur Model Zoo gagne une case à cocher « Filtrer les modèles par type de carte » pilotée par une nouvelle table
models/index.csvqui masque les modèles incompatibles avec la carte connectée. (80adb2079)Alignement ROMFS par extension : l’éditeur d’image ROMFS trie désormais les fichiers par ordre alphabétique et les compacte en utilisant des règles d’alignement par octets issues de
settings.json(par exemple, les modèles.tflitealignés sur 16 octets). (e87b2bf06)Micrologiciel intégré mis à jour vers 4.7.0 sur toutes les cartes OpenMV et Arduino. (6d04b1b50, d0bbb1fe7, d7d3120b3)
Nouvelles fonctionnalités¶
Le sous-menu Système de fichiers ROM (
New/Open/Edit ROMFS on OpenMV Cam/Reset ROMFS on OpenMV Cam) remplace l’ancienne action uniqueEdit ROM File System. (0bc275a0a, 958f732b5)Ouvrir le navigateur Model Zoo avec un état de modèle sélectionné persistant et un aperçu lors du changement de sélection, comprenant les bibliothèques de modèles intégrées STMicroelectronics, Qualcomm, DeGirum, Edge Impulse et Google. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)
L’élément de menu Convert Model for NPU sous
Machine Vision Toolscompile un modèle TensorFlow Lite (.tflite) ou ONNX (.onnx) pour l’accélérateur NPU de la carte (Vela pour les.tfliteEthos-U, ST Edge AI pour les.tflite/.onnxNeural-ART du N6) et enregistre le modèle converti sur le disque ou la caméra. (3913f5b8b)L’outil Copy/Convert Python File copie un script Python sur la caméra ou le disque et, en option, le compile en bytecode MicroPython
.mpyviampy-cross; il se trouve dans un nouveau sous-menuMicroPython ToolssousTools. (e9d7fa143, 47188c0e3)Des boutons de bascule Wrap Text ont été ajoutés au terminal série OpenMV et au volet de sortie
General Messages; tous deux appliquent un retour à la ligne automatique à leur sortie et conservent ce réglage d’une session à l’autre. (8c052845a, 51d3e1ad6)La compilation croisée ROMFS via mpy-cross avec des indicateurs d’architecture spécifiques à chaque carte (
armv7emsp/armv7emdp) permet de figer les scripts MicroPython dans les images ROMFS. (8c71548df)La boîte de dialogue du programme d’amorçage du micrologiciel accepte désormais les fichiers ROMFS
*.imgen plus des*.binet*.dfu, valide les extensions par programme d’amorçage et désactive la case à cocher existanteReset ROMFS file systemlors du chargement d’un fichier*.img. (79f348b36)Les mises à niveau depuis une version antérieure à 4.7.0 forcent désormais l’activation des cases d’effacement FAT et de réinitialisation/mise à jour de ROMFS et avertissent que la mise à niveau nécessite l’effacement du système de fichiers FAT. (f6f3355b0)
Autres changements et améliorations¶
Réorganisation du model zoo Qualcomm intégré en dossiers par tâche (
image_classification,object_detection,pose_estimation,semantic_segmentation,depth_estimation), suppression des grands modèles non pris en charge (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2) et ajout deresnet18etdensenet_121(avec une compatibilité élargie des cartes), ainsi que defacemap_3dmmetFFNet_40S(AE3/N6 uniquement). (300ce2fc2)Ajout d’un nouveau fournisseur de modèles Edge Impulse (modèle de détection de visage FOMO) et de nouveaux modèles Google (
micro_speech,mnist_lstm,person_detection) au model zoo intégré, et ajout d’une actionView/Editau menu contextuel de l’éditeur ROMFS. (80adb2079)Nettoyage des liens du model zoo : ajout du modèle Qualcomm
face_attrib_net(AE3/N6), suppression de l’entrée YOLO-NAS défectueuse et correction des filtres de compatibilité de cartes pour plusieurs modèles de détection d’objets STMicroelectronics. (fd639bda0)Ajout d’étiquettes de modèles supplémentaires, changement de la configuration de l’accélérateur NPU d’un modèle de
staiàstedgeaiet élargissement du filtre de compatibilité de cartesst_yolo_x(désormais aussi OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7 et NICLA_VISION en plus de AE3/N6). (1515631ce)L’ajout d’un modèle
.tfliteà ROMFS ignore désormais la compilation Vela/Ethos-U si le modèle est déjà compilé pour Ethos-U (il est simplement copié), et l’action de la boîte de dialogue a été renommée deAdd ModelenModel Zoo. (9c0b178fa)La compilation ST Edge AI ignore la conversion pour les modèles déjà au format
NBIN. (3064411ad)La boîte de dialogue du compilateur Vela analyse l’utilisation de SRAM rapportée par le modèle par rapport à la taille de tas configurée de chaque carte et affiche un pourcentage avec des avertissements/erreurs lorsque le modèle dépasse 90 % ou 100 % du tas disponible. (7140fc2aa)
Le compilateur Vela signale désormais une erreur claire « not supported on this platform » au lieu d’échouer silencieusement, et déposer un modèle dans le model zoo ne nécessite plus la présence de Vela. (c736dd54d, 0ad7fd705)
Le compilateur Vela Ethos-U s’exécute désormais via l’environnement d’exécution Python embarqué intégré (
python -m ethosu.vela) au lieu d’un binaire autonome. (52f9b8820)Les boîtes de dialogue de compilation de modèles ST Edge AI et Vela de longue durée affichent désormais un avis « This command takes a while to execute. Please be patient. ». (fc9ac2ab5)
L’ouverture d’exemples ou de nouveaux scripts sur les capteurs PAG7936 (N6/AE3) et PS5520 fait désormais automatiquement passer
sensor.set_framesize(QVGA)àVGApour les capteurs à plus haute résolution. (dfc27dd25)Ajout d’une correction automatique des scripts d’exemple pour les caméras thermiques FLIR Boson 320/640, les PixArt PAG7920/PAJ6100, le FROGEYE2020 et la caméra événementielle Prophesee GENX320. (1f54ad01b)
Les ressources téléchargeables de l’IDE (micrologiciel/modèles/documentation) s’installent désormais dans un répertoire de données d’application partagé pour tous les utilisateurs via une nouvelle API
ICore::allUsersResourcePath(), le manifeste de version des ressources étant stocké dans un fichierOpenMVIDE.jsonun niveau au-dessus du dossier de ressources tous-utilisateurs. (be308ace2, 7c7dddb87)Lors des mises à jour du micrologiciel du paquet système Alif, l’IDE invite désormais l’utilisateur à effectuer un cycle d’alimentation (débrancher et rebrancher) de la caméra avant de continuer. (162d128f9, 756611696)
Remaniement du flux de téléchargement du programme d’amorçage/micrologiciel Alif (Ensemble) pour le rendre compatible avec ROMFS : il génère l’App TOC après l’écriture du programme d’amorçage, copie les images bin/sign dans un sous-dossier
images/et flashefirmware_pad.toc. (f623c9231)Simplification des noms d’affichage des cartes dans le sélecteur de micrologiciel en supprimant les suffixes redondants de puce entre parenthèses et les étiquettes « Legacy » (par exemple, « OpenMV Cam H7 (STM32H743) » devient « OpenMV Cam H7 »). (334b04dbd)
Renommage de deux actions du menu Tools pour plus de clarté :
Run Bootloader (Load Firmware)est désormaisLoad Custom Firmware, etErase Onboard Data Flashest désormaisErase Internal FAT File System(la boîte de dialogue de confirmation fait désormais référence au système de fichiers FAT interne de la caméra). (0bc275a0a)Rétablissement des raccourcis clavier
Ctrl+Shift+L(Load Custom Firmware) etCtrl+Shift+E(Erase Internal FAT File System), et déplacement de l’élémentPreferencesde nouveau dans le menuEdit. (dabb6f7d9, b5daf59a6)Désactivation de la détection automatique du compilateur C/C++ et de la chaîne d’outils au démarrage, puisque l’IDE cible MicroPython. (f42fcc8f2)
Ajout du logo partenaire Alif Semiconductor (clair/sombre) à la section partenaires de la boîte de dialogue
About. (4878781bb)La lecture du micrologiciel de la carte connectée peut désormais vider les données obsolètes du port série avant d’émettre la commande, améliorant la fiabilité des requêtes de micrologiciel/version. (c15a46f5b)
Amélioration de la fiabilité de connexion ROMFS en forçant une reconnexion/actualisation lors des opérations de lecture, d’écriture et de réinitialisation de ROMFS. (f9bc83007)
Corrections de bogues¶
Correction des boîtes de dialogue d’enregistrement de modèles/scripts et de l’ajout de fichiers/modèles ROMFS afin qu’ils utilisent le suffixe de fichier simple plutôt que le suffixe complet, évitant les extensions corrompues lors du renommage de fichiers dont le nom contient des points. (52c6820d2)
Correction d’un dépassement de la barre de progression du téléversement DFU lors de transferts volumineux en calculant le pourcentage avec une arithmétique 64 bits. (4b91ff2ba)
Correction du flashage des anciens micrologiciels/programmes d’amorçage OpenMV en protégeant les étapes d’effacement et de programmation de la mémoire flash contre les plages de secteurs flash invalides (non positives) et en affichant une erreur explicite au lieu de planter, et correction de la protection d’accès ROMFS lors de la mise à niveau d’un ancien micrologiciel. (ae2cc15b4, 235dbdb10)
Correction de la détection de carte sur le port série afin que le filtre inverse du numéro de série ne soit appliqué que lors de la validation du port (et non lors de la connexion), et ajout de filtres inverses pour la carte i.MX afin d’exclure les numéros de série en mode programme d’amorçage. (ae2cc15b4)
Correction de la persistance du type de carte afin qu’un mappage de carte précédemment enregistré ne soit plus écrasé lors d’une sélection manuelle du type de carte. (c42d36001)
La réparation du programme d’amorçage résout désormais le nom d’affichage d’une carte masquée vers sa chaîne d’architecture, de sorte que la reconnexion/réparation du micrologiciel mappe la bonne carte. (a1de7a09c)
La détection de carte fait désormais correspondre les chaînes d’architecture de carte sans tenir compte de la casse. (7a2e0e93f)
Correction de l’échec de montage du disque de l’appareil lors d’une déconnexion/reconnexion rapide, en conservant le thread d’analyse des lecteurs et en réessayant l’analyse jusqu’à trois fois, et exécution fiable de l’analyse des lecteurs sur le thread d’analyse. (455dbe967, 58c0e5456)
Correction de l’échec d’exécution du compilateur de modèles (ST Edge AI et Vela) sur les Mac Intel en autorisant le chemin de l’outil ARM64 lors de l’exécution sous Rosetta. (32e309e86)
Correction des problèmes de cache de l’outil Python et du serveur de langage en redirigeant tous les
__pycache__Python intégrés vers un répertoire de ressources partagé et en préchauffant le pycacheblhosti.MX avant la connexion limitée dans le temps au programme d’amorçage, de sorte que le flashage n’expire plus. (f64f3330f)Correction du chemin de l’en-tête MicroPython utilisé par le serveur de langage Python (pour l’autocomplétion) afin qu’il soit résolu à partir du chemin de ressources tous-utilisateurs, et renforcement de la recherche du chemin de ressources tous-utilisateurs lorsque le filtrage par nom d’utilisateur ne trouve rien. (5f2648565, fc1938818)
Correction des liens de documentation ST Edge AI défectueux dans la boîte de dialogue des options du compilateur en convertissant les chemins de fichiers locaux en URL
file://correctes. (3ac136444)Correction de l’indentation automatique de l’éditeur Python afin que les lignes ne soient plus désindentées à tort après une ligne se terminant par deux-points (électrique), par exemple après les en-têtes
if/for/def. (6555f44ba)Correction de l’alignement des enregistrements de répertoire ROMFS afin que les décalages de dossier tiennent compte de la taille de l’enregistrement du nom de répertoire, et augmentation du délai entre fichiers lors du décompactage/création des fichiers ROMFS et de model zoo afin de garantir des horodatages de création distincts. (9bf7e1d9e, d968a6e46)
Correction d’un dépassement d’entier dans la conversion mean-to-depthwise-conv de l’optimiseur de graphe Vela en calculant le multiplicateur de sortie en 64 bits, et correction du nom de base utilisé dans le titre/la sortie de la boîte de dialogue du compilateur Vela. (d217a46e9, 8376490eb)
Correction de la restauration des dossiers développés et du modèle sélectionné du navigateur Model Zoo à la réouverture, et passage de la boîte de dialogue à une allocation sur le tas pour éviter les problèmes de durée de vie de l’interface graphique. (84a63ef4c)
Correction du chemin d’enregistrement sous du Model Zoo afin que le répertoire mémorisé soit stocké comme un dossier plutôt qu’un nom de fichier complet. (be877f7af)
Conservation de l’ancien chemin de ressources utilisateur au lieu de le supprimer au démarrage, évitant une erreur « close any programs viewing OpenMV IDE data » lorsque l’ancien dossier est verrouillé. (775656775)
Correction des scripts d’installation des pilotes Windows et des fichiers catalogue/inf afin que les pilotes OpenMV DFU, dfuse, FTDI, Arduino, pybcdc et VCR s’installent de manière fiable et signalent correctement les codes de réussite, durcissement des scripts d’installation des pilotes DFU dfuse/vcr et re-signature des catalogues de pilotes OpenMV DFU intégrés. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)
Correction de l’installateur Linux pour installer
pyusbvia le paquetpython3-usbde la distribution et ajouterbuild-essentialau lieu d’exécuterpip install pyusb, et pour détecter le système d’exploitation via/etc/os-release. (c471ddc42, 4014a0ba5)L’installateur Windows active désormais la prise en charge des chemins longs afin que les fichiers ST Edge AI profondément imbriqués s’installent correctement. (0b3ca6945)
Prise en charge des plateformes et des outils¶
Base Qt Creator : 14.0.2.
Micrologiciel OpenMV intégré : mis à jour vers 4.7.0 sur toutes les cartes OpenMV et Arduino (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6) ; le micrologiciel a été reconstruit avec la prise en charge de ROMFS (
romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)ROMFS OpenMV N6 : augmenté de 16 Mo à 24 Mo, l’image romfs étant déplacée vers le réglage alternatif DFU 3. (d0bbb1fe7, d7d3120b3)
ROMFS OpenMV AE3 : augmenté de 16 Mo à 24 Mo, avec l’ajout de règles d’alignement de 16/32 octets pour les fichiers de modèle
.binintégrés sur toutes les cartes. (746da8914)STM32CubeProgrammer (STM32_Programmer_CLI) intégré pour macOS, Linux et Windows avec la base de données complète des appareils STM32 et les chargeurs externes pour la programmation d’usine du N6 ; l’installation a été allégée des fichiers de chargeur externe et de base de données par MCU inutilisés afin d’en réduire la taille. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)
Compilateur ST Edge AI (stedgeai) 2.1.0 intégré (Windows) pour le NPU Neural-ART du N6. (3064411ad)
Compilateur ARM Ethos-U Vela 4.2.0 (avec numpy 2.2.4) intégré pour Linux x86-64, macOS (Apple silicon) et Windows. Le bundle Windows a d’abord été ajouté en Vela 4.1.0 / numpy 2.2.3, puis porté à la version finale 4.2.0 / numpy 2.2.4. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)
mpy-cross 1.25.0.post2 intégré (macOS/Windows). (8c71548df, 3ab42d58a)
Alif Security Toolkit : mis à jour vers v1.104.0 (binaires setools signés et PDF du guide de l’utilisateur v1.104.0) pour les cartes basées sur Alif Ensemble. (43260719c, 75a58e61b)
Ajout de configurations NPU OPENMV_AE3 (Alif Ensemble) ciblant les accélérateurs ethos-u55-256 et ethos-u55-128 avec des configurations système RTSS HP/HE SRAM/MRAM/OSPI. (1f5fc546d, 411f708ea)
Ajout des schémas de brochage des caméras OpenMV N6 et AE3 (capteur PAG7936) au sélecteur de brochage, et d’un nouvel exemple de caméra événementielle en niveaux de gris Genx320 illustrant la configuration du filtre anti-scintillement. (60184bbc5, 6d04b1b50)
Mise à jour de la correspondance des PID USB de l’Arduino Nicla Vision pour reconnaître un nouveau PID d’application (0x055F) en plus de l’original (0x045F). (91ce4007c)
Mise à jour des paramètres de flashage du programme d’amorçage sécurisé NXP/blhost pour utiliser une adresse/longueur FCB explicite et une taille de disque MBR, conformément à la dernière boîte à outils spsdk. (16b66c3e2)
L’installateur Windows intègre désormais un pilote dédié de programme d’amorçage STM32 DFU et les redistribuables Microsoft Visual C++ 2015+. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)
Suppression du model zoo DeGirum YOLOv5/YOLOv8 intégré de l’IDE. (26710be1c)
Changements incompatibles¶
Ruptures de flux de travail et de comportement visibles par l’utilisateur dans la v4.7.0. Il n’y a pas de rupture de l’API de scripting, mais notez ce qui suit :
Système de fichiers FAT effacé lors d’une mise à niveau depuis une version antérieure à 4.7.0. La mise à niveau d’une OpenMV Cam depuis un micrologiciel antérieur à 4.7.0 force désormais l’effacement du système de fichiers FAT et la réinitialisation/mise à jour de ROMFS pendant la mise à jour du micrologiciel (les cases de la boîte de dialogue sont forcées à l’activation et ne peuvent pas être désactivées), de sorte que les fichiers utilisateur stockés sur la mémoire flash interne de l’appareil seront effacés lors de la mise à niveau. (f6f3355b0)
Binaires du micrologiciel UVC et du programme d’amorçage Portenta H7 supprimés. Les images de micrologiciel de webcam UVC préconstruites (
uvc.bin/dfu/elf) ont été supprimées pour toutes les cartes, et les binaires du programme d’amorçage Arduino Portenta H7 ont été retirés du bundle ; ces images préconstruites ne peuvent plus être flashées depuis l’IDE. (c44e33d70)Relocalisation du répertoire de ressources. Les ressources téléchargeables de l’IDE (micrologiciel, model zoo, documentation) s’installent désormais dans un répertoire de données d’application partagé pour tous les utilisateurs au lieu du chemin de ressources par utilisateur, et le manifeste de version est passé de QSettings à un fichier
OpenMVIDE.jsonstocké un niveau au-dessus du dossier de ressources tous-utilisateurs (avec une mise en miroir QSettings rétrocompatible). Un nouveau téléchargement des ressources est déclenché au premier lancement après la mise à niveau. (be308ace2, 7c7dddb87)