v4.5.9¶
v4.5.9 apporte la diffusion d’aperçu brut pour les cartes dépourvues d’encodeur JPEG matériel, le recadrage matériel du capteur pour libérer davantage de RAM, un dématriçage accéléré par Helium plus rapide, ainsi qu’un lot de corrections caméra/débogage USB. Elle modifie également l’API des résultats AprilTag et l’ensemble de familles AprilTag par défaut, alors lisez les changements incompatibles ci-dessous.
Points forts¶
Diffusion d’aperçu brut — les cartes dépourvues d’encodeur JPEG matériel peuvent désormais envoyer des trames brutes sous-échantillonnées à l’IDE/l’hôte au lieu d’échouer à afficher l’aperçu.
Recadrage matériel du capteur — définir une taille de trame plus petite réduit désormais la mémoire par tampon et libère de la RAM pour
fb_alloc().Dématriçage plus rapide — la conversion Bayer→RGB/niveaux de gris est désormais accélérée par Helium-SIMD sur les cartes Cortex-M55.
Incompatibilité : l’objet de résultat AprilTag est passé à l’accès par attributs et l’ensemble de familles AprilTag par défaut a été réduit (voir les changements AprilTag et le changement de famille AprilTag).
Nouvelles fonctionnalités¶
Diffusion d’aperçu brut — les cartes dépourvues d’encodeur JPEG matériel peuvent contourner le JPEG et diffuser des trames brutes sous-échantillonnées (plafonnées à ~60 Ko) vers l’IDE/l’hôte, de sorte que l’aperçu en direct fonctionne sur ces cartes.
Autres changements et améliorations¶
Le recadrage matériel est désormais activé sur toutes les cartes STM32/NXP (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). Lorsqu’une taille de trame ou une fenêtre est définie, la mémoire par tampon est réduite à la taille recadrée, libérant davantage de RAM pour
fb_alloc().Dématriçage plus rapide — la conversion Bayer→RGB565/niveaux de gris est désormais accélérée par SIMD ARM Helium/MVE sur les cartes Cortex-M55 (par exemple le RT1060), avec un chemin d’encodeur JPEG SIMD partagé.
Débogage IDE plus rapide — le débogueur transfère désormais les données directement depuis la pile USB lorsque c’est possible, évitant une copie supplémentaire.
Sous-module MicroPython mis à jour — les cartes peuvent redimensionner le tampon CDC TinyUSB, plus des corrections du GC et des règles de compilation.
Corrections de bogues¶
Caméra et capteurs :
Correction du motif Bayer/CFA de l’OV7725 (GBRG → BGGR), corrigeant la sortie couleur dématricée sur les caméras OV7725 ; l’OV7725 signale désormais le format de pixel Bayer, et les capteurs uniquement Bayer signalent désormais une profondeur source de 1 octet par pixel.
Correction du calcul de la taille du tampon d’image brut/Bayer.
Apprentissage automatique :
TensorFlow Lite Micro utilise désormais la mémoire libre du tas GC lors du dimensionnement de l’arène de tenseurs temporaire, évitant les échecs d’allocation au chargement du modèle sur les cartes à mémoire de tampon d’image limitée.
Hôte / IDE :
Correction de la gestion du tampon CDC de débogage USB sur les cartes TinyUSB pour un débit série/débogage plus fiable.
tools/pyopenmv: correction de l’ordre des octets RGB565, ajout d’un argumentscale, et l’outil de tampon d’image signale désormais la taille/le format de l’image.
Prise en charge matérielle et des cartes¶
OV7725 signale désormais le format de pixel Bayer (gestion correcte du brut/CFA).
Recadrage matériel activé sur toute la gamme de cartes STM32/NXP.
Changements d’API incompatibles¶
Ruptures d’API visibles par l’utilisateur entre v4.5.8 et v4.5.9. Portée : modules C Python dans modules/ et bibliothèques Python dans scripts/libraries/.
Chaque changement est étiqueté selon son impact :
mineur — API restreinte ; n’affecte que les scripts qui l’utilisaient.
comportement — même API, résultats différents ; revérifiez les scripts ajustés.
Les changements sont regroupés par impact dans cet ordre. Si vous souhaitez simplement porter votre code, passez à la liste de contrôle de migration à la fin. Chaque hachage de commit renvoie à son diff sur GitHub.
Objets de résultat AprilTag et set_buffers (mineur)¶
Les résultats AprilTag de find_apriltags() exposent désormais leurs données sous forme d”attributs plutôt que de méthodes — utilisez tag.cx, tag.cy, tag.rotation, tag.family, tag.corners au lieu de tag.cx(), tag.family(), etc. De nouveaux accesseurs name (chaîne du nom de famille) et cxf / cyf en précision flottante ont été ajoutés.
Par ailleurs, la configuration automatique des tampons vidéo a changé : set_buffers remplace auto_adjust — passez -1 pour utiliser jusqu’à trois tampons de la taille de la trame (ou le maximum qui tient) et 1 pour utiliser tout le tampon d’image. Le dimensionnement des tampons tient désormais compte des bits par pixel, de sorte que davantage de tampons peuvent être alloués pour les formats à 1 bpp.
ble_advertising et le RPC sur réseau supprimés (mineur)¶
La bibliothèque d’assistance ble_advertising et l’exemple ble_temperature.py ont été supprimés — utilisez plutôt aioble (un exemple de température aioble est fourni). Les classes maître/esclave RPC réseau ont été supprimées de rpc.py.
Familles AprilTag désactivées par défaut (comportement)¶
Les familles AprilTag sont désormais sélectionnables individuellement à la compilation, et celles qui ne sont pas utilisées sont désactivées par défaut. Sur les cartes standard, find_apriltags() ne détecte désormais que la famille TAG36H11 à moins que le micrologiciel ne soit reconstruit avec d’autres familles activées. Les scripts reposant sur d’autres familles (TAG16H5, TAG25H9, …) sur une build standard cesseront silencieusement de les détecter.
Commit : effe12f2c
Liste de contrôle de migration¶
Pour un portage propre vers v4.5.9, le travail typique est le suivant :
Changez l’accès aux résultats AprilTag des appels de méthode aux attributs (
tag.cx()→tag.cx), et remplacezauto_adjustparset_buffers(les changements AprilTag / tampon).Remplacez
ble_advertisingparaiobleet abandonnez toute utilisation des classes maître/esclave RPC réseau (les suppressions).Si vous utilisez des familles AprilTag autres que
TAG36H11sur une build standard, notez qu’elles ne sont plus détectées par défaut (le changement de famille AprilTag).