v5.1.0#

La v5.1.0 est une version de fonctionnalités. Le volet sous le tampon d’image passe d’un histogramme à un ensemble de vues en direct – Infos carte, Mémoire, Statistiques et la nouvelle vue Canaux qui transforme les valeurs publiées par un script en widgets, graphes, spectres et cartes de profondeur et les enregistre dans des fichiers – le tampon d’image reçoit un sélecteur de source pour les caméras multi-capteurs, l’IDE apprend à charger des dépôts tiers de cartes, de firmware, d’exemples, de modèles et de stubs, et les enregistrements vidéo passent au H.264. De nouvelles cartes et de nouveaux capteurs sont pris en charge, l’outillage firmware a été durci par un audit complet de chaque changement depuis la v5.0.0, et une poignée de comportements ont été repris d’OpenMV Studio. Elle est basée sur Qt Creator 14.0.2 et inclut le firmware v5.0.1.

Points forts#

  • Vues du volet – la barre de titre du volet de l’histogramme gagne un sélecteur qui fait basculer le volet entre les vues Histogramme, Infos carte (le matériel, les versions et les capacités de la caméra connectée), Mémoire (graphes en direct du tas MicroPython et de chaque pool UMA, avec suivi des pics), Statistiques (les compteurs de paquets, d’erreurs et d’événements par canal du protocole de débogage) et Canaux.

  • Vue Canaux – un script peut publier des canaux nommés de données et de commandes via le protocole de débogage, et l’IDE les affiche en direct : étiquettes, bascules, curseurs, spin box, boutons radio, champs de texte, sélecteurs, boutons poussoirs et blocs de texte qui écrivent en retour vers la caméra ; graphes de formes d’onde avec panoramique, zoom, marqueurs, déclencheurs, historique et analyseur de spectre ; et cartes de profondeur avec les palettes propres à la caméra, trois filtres de mise à l’échelle et un mappage tonal. Tout graphe ou carte s’enregistre dans des fichiers CSV, WAV, NumPy ou Edge Impulse JSON et CBOR – y compris un Tout enregistrer pour un canal entier – pour la collecte de données d’entraînement. Les dernières valeurs restent à l’écran lorsqu’un script s’arrête.

  • Sélecteur de source du tampon d’image – les caméras dotées de plusieurs capteurs d’image affichent un sélecteur dans la barre de titre du tampon d’image pour choisir quel capteur est diffusé vers l’IDE (ou pour couper la diffusion), la bascule JPG est devenue un sélecteur de mode de diffusion JPG / RAW, et le titre du volet nomme le format dans lequel chaque trame est arrivée.

  • Dépôts tiers – un fournisseur peut publier un dépôt de cartes, de firmware (canaux de release et de développement), d’exemples, de modèles d’apprentissage automatique et de stubs .pyi ; l’IDE l’installe depuis une URL ou depuis un dossier déposé par un installateur, le fusionne avec son propre contenu, le maintient à jour et vous permet d’ordonner les fournisseurs par priorité. Géré depuis Preferences → OpenMV → Third Party Repositories.

  • Nouveau matériel – la carte OpenMV N6 Classic (y compris son pilote de bootloader, sa règle udev et son entrée de récupération ROM-DFU) et les capteurs FLIR Lepton 3.1R et UW.

  • Enregistrements H.264 – l’enregistreur du tampon d’image et le convertisseur vidéo encodent désormais en H.264 au lieu de MPEG-4 Part 2, avec un intervalle d’images clés fixe pour que les enregistrements se parcourent proprement, et la fréquence d’images arrondie à un nombre entier.

  • Correctifs d’audit – chaque commit depuis la v5.0.0 a été relu deux fois à la recherche de régressions, avec une attention particulière aux chemins du firmware, du bootloader et du ROMFS ; les défauts trouvés sont corrigés dans cette version (voir les corrections de bugs).

Nouvelles fonctionnalités#

  • Vues Infos carte, Mémoire et Statistiques dans le volet de l’histogramme, avec un style bord à bord dans les thèmes sombre et clair et un texte sélectionnable (cdea506655b, 7629a588db9, e21bd94a395, b55dcc412f6, fc744920011, e7dc3bf0092, 448e21db0bd).

  • Vue Canaux – le vocabulaire complet des commandes (label, toggle, slider, spin box, radio, line edit, select, push button, text), des graphes de formes d’onde avec analyseur de spectre (fenêtres de Hann, de Hamming, de Blackman et rectangulaire, moyennage, maintien des pics, fréquence log), des déclencheurs sur front montant et descendant, des marqueurs, un historique et l’export du tracé ; des cartes de profondeur avec les palettes Profondeur, Arc-en-ciel, Ironbow et Événement, une mise à l’échelle plus proche voisin / bilinéaire / bicubique, un mappage tonal Plage du script / Plage auto / Égaliser, un bouton pause, un relevé au survol, un en-tête avec la plage déclarée et le min / max / moyenne de la trame, et Enregistrer l’image ; l’enregistrement en CSV, WAV, NumPy et Edge Impulse JSON / CBOR avec une étiquette Edge Impulse facultative, le découpage en parties pour les longues captures, et Tout enregistrer ; un intervalle Interrogation des canaux dans les préférences du protocole (5b4f31a6b3a, d1252a24f14, bfd7fd72f94, d1c2ab02a5f, 4808b8ffe26, dfc323b4ec7, 61c077df9a5, 8c2cd6cf1f1, 1534225fcee).

  • Sélecteur de source du tampon d’image et relevé du format – choisissez le capteur diffusé sur les caméras multi-capteurs, ou Désactivé ; le format de trame reçu est affiché dans le titre du volet ; la bascule JPG est désormais un sélecteur Mode JPG / Mode brut (e76284bde9e, c2baff8d60c, afece31cb6a, 76448d7b9dd).

  • Dépôts tiers – des dépôts de firmware pilotés par fichiers fusionnés avec la liste de cartes intégrée, des mises à jour réseau avec une page de Preferences, un canal de firmware de développement par fournisseur, une priorité des fournisseurs contrôlée par l’utilisateur, des exemples de fournisseur fusionnés dans File → Examples, des modèles de fournisseur fusionnés dans le Model Zoo, des stubs .pyi personnalisés fournis à la complétion de code, des avertissements de remplacement lorsqu’un fournisseur masque du contenu intégré, et une vérification de licence pour les cartes de fournisseur (21a63a74949, b5512efe949, b15afdac479, 1fe693f0b61, ae11ffeffc4, cf47a37ba65, 100bdeb530b, 252924901f7, c75a81f2a4a, 3e7f077a738, 5c5aa3e657c, e3f36adbdcb, b04da8ee888).

  • Suppression des commentaires avant Run – les commentaires sont retirés du script avant son envoi à la caméra, ce qui économise la RAM de la caméra sur les scripts riches en commentaires ; les lignes sont conservées, de sorte que les numéros de ligne des traces d’appel correspondent toujours à l’éditeur (677546ee033).

  • Marque d’erreur en ligne – lorsqu’un script meurt sur une exception, l’éditeur marque la ligne fautive en rouge avec le texte de l’erreur à côté ; la marque disparaît lorsque vous modifiez le fichier, relancez l’exécution ou vous déconnectez (677546ee033).

  • Glisser-déposer sur l’éditeur ROMFS – les fichiers déposés depuis le bureau passent par la même compilation de script et la même conversion de modèle qu’Add File, dans le dossier sur lequel ils ont été déposés (677546ee033).

Améliorations de l’éditeur, du terminal et de l’interface#

  • Les histogrammes sont calculés à partir du RGB 8 bits complet au lieu des tables RGB565 de la caméra, avec une palette de tracé partagée, des remplissages avec fusion alpha et des lignes de grille plus discrètes (238e099373e, f126e8f34c0, cebbf0c9e2c).

  • Les vues masquées du volet ne travaillent pas – l’histogramme saute son calcul et ses retracés tant qu’une autre vue est affichée ou que le volet est replié, et se rattrape lorsqu’il est à nouveau affiché ; les retracés de taille nulle sont silencieux (c8730df8399).

  • Les scripts d’exemple s’ouvrent avec une ligne vide après les imports, et les exemples fournis ont été reformatés de la même manière (1f88f617ec5, 87c8f7d41c7).

  • La complétion de code affiche les noms privés – le serveur de langage intégré ne filtre plus les membres préfixés par _, que les modules de la caméra utilisent (23ab5b38bb3).

  • macOS – les boîtes de groupe des commandes de protocole dans les préférences ne sont plus à l’étroit, les vues d’éléments sont protégées contre les plantages d’accessibilité Cocoa, les utilisateurs d’Apple Silicon sont avertis du réglage de sécurité « Allow accessories to connect », et les utilisateurs de RT1062 sont avertis lorsque la surveillance des entrées (Input Monitoring) n’est pas accordée (les mises à jour de firmware en ont besoin) ; les deux avertissements sont affichés après la connexion (7d7b69367bf, 69fe7ffc913, 742cb4d8c0b, 8890eb77834, 89646292e8d).

  • Raccourcis du mode visualiseur – des raccourcis parasites qui cassaient le mode visualiseur (et l’IDE normal) ont été désactivés, et le mode visualiseur ne persiste plus ses raccourcis effacés dans les paramètres de l’IDE complet (251b422f642, 0d153671c1d).

  • Les capteurs inconnus sont nommés par leur identifiant de puce dans la barre d’état afin de pouvoir être identifiés et ajoutés à la table des capteurs (df561775b54).

Firmware, cartes et outils#

  • Prise en charge de l”OpenMV N6 Classic : entrée de carte, pilote DFU Windows et codes d’installateur, règle udev Linux (4ff4a1f239d, bdd6c96ef47, 25fcdc13c6a, 7730b699f60).

  • Prise en charge des capteurs FLIR Lepton 3.1R et UW (12c03024f3c).

  • Prise en main du bootloader IMX – un intercepteur pré-armé s’empare du bootloader de la RT1062 à l’instant où il s’énumère, remplaçant la boucle qui lançait un processus à chaque sondage et pouvait manquer la fenêtre d’une seconde sur un hôte chargé (3d8b63c6859).

  • Zips de firmware – Load Custom Firmware accepte les bundles ne contenant que le ROMFS et les bundles sans ROMFS, et un firmware personnalisé ou de développement est préparé pour les cartes IMX déjà en mode bootloader (b6f16f54c1a, 94d5fd5c30e).

  • Répertoires de préparation privés pour le firmware de développement / personnalisé, les images de l’éditeur ROMFS et les fichiers temporaires des outils vidéo, de sorte que des fichiers périmés d’autres processus ne puissent jamais être flashés ou convertis par erreur (939154501af, a288fe712e7, 5c8c717adec).

  • Vidéo H.264 – les enregistrements et les conversions encodent en H.264 avec un intervalle d’images clés fixe ; une fréquence d’enregistrement proche d’un nombre entier y est arrondie, de sorte que les lecteurs indiquent 30 FPS plutôt que 29,97 (6ad1968341d, d62c110e155, bab488a54fe).

  • Somme de contrôle du zip de ressources – la mise à jour des ressources de l’IDE est vérifiée par rapport à un SHA-256 publié avec la version (677546ee033).

  • User-Agent honnête sur les requêtes vers les serveurs d’OpenMV (c4279c0213e).

Corrections de bugs#

Deux passes de relecture sur chaque changement depuis la v5.0.0 ont trouvé et corrigé les points suivants (ccea3b17d01, 71826200611) :

  • Chemins du firmware et du bootloader – un zip Load Custom Firmware sur une carte déjà en mode bootloader flashait la version de release à la place ; le chemin de récupération Alif refuse désormais une build personnalisée plutôt que de flasher la release ; une N6 Classic inutilisable était réparée avec le bootloader et le firmware de la N6 ordinaire ; une racine de ressources tierce périmée pouvait aiguiller une carte intégrée inutilisable vers les fichiers du fournisseur ; l’intercepteur IMX pouvait poursuivre le flashage après avoir planté, ignorait Cancel pendant l’attente du flashloader et laissait le port série ouvert après une annulation pendant l’armement ; le bootloader de la N6 Classic n’avait pas de règle udev ; les codes de sortie acceptés par l’installateur de pilote Windows comportaient une faute de frappe.

  • Éditeur ROMFS – Cancel pendant une lecture du ROMFS signalait « Failed to unpack ROMFS! » et attendait dix secondes une caméra encore dans le bootloader ; Cancel pendant une écriture se terminait en silence avec un ROMFS potentiellement partiel ; une erreur de dfu-util pendant une écriture était signalée comme un succès ; Cancel dans la boîte de dialogue suivante abandonnait toutes les modifications ; Auto Reconnect pouvait se connecter sous l’éditeur ouvert ; Edit ROMFS en étant connecté déconnectait et reconnectait d’abord inutilement ; les répertoires temporaires du convertisseur fuyaient. Après une opération annulée, il est désormais demandé au bootloader de quitter le DFU pour que la caméra revienne d’elle-même.

  • Dépôts tiers – les entrées de zip sont validées avant extraction (ni traversée de chemin ni liens symboliques), les installations et réinstallations de parties conservent l’ancienne copie jusqu’à ce que la nouvelle soit en place, une carte de fournisseur rejetée n’entraîne plus avec elle la carte intégrée qu’elle recouvrait, un masque de PID manquant ne correspondait à rien à l’exécution, et les lignes d’index des exemples / modèles de base ne capturent plus les fichiers de fournisseur du même nom.

  • Tampon d’image et capteurs – le capteur d’événements GENX320 (identifiant de puce supérieur à 0x80000000) désactivait le tampon d’image ; une sélection de capteur enregistrée ne survivait pas à un redémarrage ; l’ancienne préférence « disable frame buffer » n’était pas migrée ; la commande de source de flux est conditionnée à la version du protocole ; la métrique de mise au point se figeait tant que la page de l’histogramme était masquée ; le format de trame restait dans le titre après la déconnexion.

  • Flux de connexion – les avertissements macOS pouvaient avaler le « Yes » de l’invite de mise à niveau du firmware ; le Model Zoo s’ouvrait toujours replié sans restaurer la sélection ; le repli sur lecteur unique pour le lecteur de la caméra était inatteignable lorsque la caméra était branchée depuis plus de dix secondes.

  • Vue Canaux et enregistreur – des tailles de trame hostiles pouvaient faire déborder les vérifications de taille ; les enregistreurs Edge Impulse réallouaient à chaque bloc et sont désormais plafonnés à 64 Mo par partie ; un schéma avec des séparateurs dans les noms pouvait indexer au-delà de la liste des enregistrements ; des enregistrements en double laissaient un enregistreur en cours orphelin ; les écritures sont abandonnées tant que la vue est figée ; la liste des canaux se rafraîchit désormais lors des événements de désinscription et de redémarrage à chaud.

  • Vidéo – une largeur impaire saisie par l’utilisateur cassait l’encodage H.264 sur les builds libx264 ; les conversions .bin annulées ou échouées laissaient des trames que l’exécution suivante incorporait.

  • Protocole – la purge de lecture exécutée avant la détection du protocole est bornée (issue #336) (77cd13af76f) ; l’association entre la caméra et son lecteur ne perd plus la course face aux autres volumes (9877480c304).

  • Un avertissement -Wdeprecated-copy dans l’enveloppe d’informations de port série (abcfaa8af5e).

Localisation#

Prise en charge des plateformes et des outils#

  • Base Qt Creator : 14.0.2.

  • La version d”OpenMV IDE est passée à 5.1.0.

  • Firmware fourni : v5.0.1 (voir le journal des modifications du firmware).

  • Nouvelles cartes et nouveaux capteurs : OpenMV N6 Classic ; FLIR Lepton 3.1R et UW.

Changements incompatibles#

Aucun pour les projets existants. La bascule JPG dans la barre de titre du tampon d’image est désormais un sélecteur Mode JPG / Mode brut, et son ancien réglage « disable frame buffer » est migré vers l’entrée Désactivé du nouveau sélecteur de source. Les commentaires sont retirés des scripts avant leur exécution ; un script qui compte lire son propre texte source à l’exécution ne devrait pas le faire.