v4.7.0

v4.7.0 je rozsáhlé vydání zaměřené na NPU a ROMFS, postavené na Qt Creatoru 14.0.2. Přináší pracovní postup pro souborový systém ROM přímo v zařízení s integrovanými kompilátory modelů ARM Ethos-U (Vela) a ST Edge AI, přidává tovární programování OpenMV N6 založené na STM32CubeProgrammeru a u všech desek dodává firmware OpenMV 4.7.0. Upozorňujeme, že aktualizace jakékoli kamery z firmwaru staršího než 4.7.0 nyní vynutí vymazání souborového systému FAT a reset ROMFS, čímž se smažou soubory uložené ve vnitřní flash paměti zařízení; viz Zásadní změny níže.

Hlavní novinky

  • Pracovní postup pro souborový systém ROM umožňuje vytvořit, upravit, naflashovat a resetovat souborový systém pouze pro čtení přímo v zařízení, takže lze ML modely ukládat do kamery; je integrován napříč bootloadery DFU, IMX, Bossac, Picotool a Arduino-DFU. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)

  • Kompilátory modelů ARM Ethos-U Vela a ST Edge AI jsou nyní integrovány, takže modely .tflite/.onnx jsou při nahrání na desky Ethos-U55 (OpenMV AE3) nebo Neural-ART (OpenMV N6) automaticky zkompilovány pro NPU. (411f708ea, 3064411ad)

  • STM32CubeProgrammer je nyní součástí balení a umožňuje tovární programování bootloaderu OpenMV N6 (STM32N657) prostřednictvím souboru FlashLayout.tsv. (334b04dbd, 54fea4d57, 28cc94a6e)

  • Prohlížeč Model Zoo získává zaškrtávací políčko „Filter models by board type“ řízené novou tabulkou models/index.csv, které skryje modely nekompatibilní s připojenou deskou. (80adb2079)

  • Zarovnání ROMFS podle přípony: editor obrazu ROMFS nyní řadí soubory abecedně a balí je podle pravidel zarovnání bytů ze settings.json (např. modely .tflite zarovnané na 16 bytů). (e87b2bf06)

  • Dodávaný firmware aktualizován na 4.7.0 u všech desek OpenMV a Arduino. (6d04b1b50, d0bbb1fe7, d7d3120b3)

Nové funkce

  • Podnabídka souborového systému ROM (New / Open / Edit ROMFS on OpenMV Cam / Reset ROMFS on OpenMV Cam) nahrazuje starou jedinou akci Edit ROM File System. (0bc275a0a, 958f732b5)

  • Otevřete prohlížeč Model Zoo s trvalým stavem vybraného modelu a náhledem při změně výběru, včetně dodávaných knihoven modelů STMicroelectronics, Qualcomm, DeGirum, Edge Impulse a Google. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)

  • Položka nabídky Convert Model for NPU v Machine Vision Tools zkompiluje model TensorFlow Lite (.tflite) nebo ONNX (.onnx) pro NPU akcelerátor desky (Vela pro Ethos-U .tflite, ST Edge AI pro N6 Neural-ART .tflite/.onnx) a uloží převedený model na disk nebo do kamery. (3913f5b8b)

  • Nástroj Copy/Convert Python File zkopíruje skript Python do kamery nebo na disk a volitelně jej zkříženě zkompiluje do bytecodu MicroPython .mpy pomocí mpy-cross; nachází se v nové podnabídce MicroPython Tools v nabídce Tools. (e9d7fa143, 47188c0e3)

  • Přepínací tlačítka Wrap Text byla přidána do sériového terminálu OpenMV a výstupního panelu General Messages; obě zalamují svůj výstup po slovech a nastavení uchovávají napříč relacemi. (8c052845a, 51d3e1ad6)

  • Zkřížená kompilace ROMFS pomocí mpy-cross s architekturními příznaky pro jednotlivé desky (armv7emsp/armv7emdp) umožňuje zmrazit skripty MicroPython do obrazů ROMFS. (8c71548df)

  • Dialog firmwarového bootloaderu nyní vedle souborů *.bin a *.dfu přijímá i soubory ROMFS *.img, ověřuje přípony pro jednotlivé bootloadery a při načítání souboru *.img deaktivuje stávající zaškrtávací políčko Reset ROMFS file system. (79f348b36)

  • Aktualizace z verze starší než 4.7.0 nyní vynutí zapnutí zaškrtávacích políček pro vymazání FAT a reset/aktualizaci ROMFS a upozorní, že aktualizace vyžaduje vymazání souborového systému FAT. (f6f3355b0)

Další změny a vylepšení

  • Přeorganizoval dodávaný model zoo Qualcomm do složek podle úloh (image_classification, object_detection, pose_estimation, semantic_segmentation, depth_estimation), odstranil nepodporované velké modely (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2) a přidal resnet18 a densenet_121 (s širší kompatibilitou desek) plus facemap_3dmm a FFNet_40S (pouze AE3/N6). (300ce2fc2)

  • Přidal nového dodavatele modelů Edge Impulse (model detekce obličeje FOMO) a nové modely Google (micro_speech, mnist_lstm, person_detection) do dodávaného model zoo a přidal akci View/Edit do kontextové nabídky editoru ROMFS. (80adb2079)

  • Vyčistil odkazy v model zoo: přidal model Qualcomm face_attrib_net (AE3/N6), odstranil nefunkční záznam YOLO-NAS a opravil filtry kompatibility desek u několika modelů detekce objektů STMicroelectronics. (fd639bda0)

  • Přidal další štítky modelů, přepnul konfiguraci NPU akcelerátoru jednoho modelu z stai na stedgeai a rozšířil filtr kompatibility desek st_yolo_x (nyní kromě AE3/N6 také OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7 a NICLA_VISION). (1515631ce)

  • Přidání modelu .tflite do ROMFS nyní přeskočí kompilaci Vela/Ethos-U, pokud je model již zkompilován pro Ethos-U (pouze se zkopíruje), a akce dialogu byla přejmenována z Add Model na Model Zoo. (9c0b178fa)

  • Kompilace ST Edge AI přeskočí převod u modelů, které jsou již ve formátu NBIN. (3064411ad)

  • Dialog kompilátoru Vela analyzuje hlášené využití SRAM modelem vůči nakonfigurované velikosti haldy každé desky a zobrazuje procento s varováními/chybami, když model překročí 90 % nebo 100 % dostupné haldy. (7140fc2aa)

  • Kompilátor Vela nyní hlásí jasnou chybu „not supported on this platform“ místo tichého selhání a přetažení modelu do model zoo již nevyžaduje přítomnost Vely. (c736dd54d, 0ad7fd705)

  • Kompilátor Vela Ethos-U nyní běží prostřednictvím dodávaného vestavěného běhového prostředí Python (python -m ethosu.vela) namísto samostatné binárky. (52f9b8820)

  • Dlouho běžící dialogy kompilace modelů ST Edge AI a Vela nyní zobrazují upozornění „This command takes a while to execute. Please be patient.“. (fc9ac2ab5)

  • Otevírání příkladů nebo nových skriptů na senzorech PAG7936 (N6/AE3) a PS5520 nyní u senzorů s vyšším rozlišením automaticky zvýší sensor.set_framesize(QVGA) na VGA. (dfc27dd25)

  • Přidána automatická úprava ukázkových skriptů pro termokamery FLIR Boson 320/640, PixArt PAG7920/PAJ6100, FROGEYE2020 a událostní kameru Prophesee GENX320. (1f54ad01b)

  • Stahovatelné prostředky IDE (firmware/modely/dokumentace) se nyní instalují do sdíleného adresáře aplikačních dat pro všechny uživatele prostřednictvím nového API ICore::allUsersResourcePath(), přičemž manifest verzí prostředků je uložen v souboru OpenMVIDE.json jednu úroveň nad složkou prostředků pro všechny uživatele. (be308ace2, 7c7dddb87)

  • Během aktualizací firmwaru systémových balíčků Alif nyní IDE před pokračováním vyzve uživatele, aby kameru vypnul a znovu zapnul (odpojil a znovu připojil). (162d128f9, 756611696)

  • Přepracoval postup stahování bootloaderu/firmwaru Alif (Ensemble) tak, aby byl kompatibilní s ROMFS: po zápisu bootloaderu generuje App TOC, kopíruje obrazy bin/sign do podsložky images/ a flashuje firmware_pad.toc. (f623c9231)

  • Zjednodušil zobrazované názvy desek ve výběru firmwaru odstraněním nadbytečných přípon s čipem v závorce a značek „Legacy“ (např. „OpenMV Cam H7 (STM32H743)“ se stává „OpenMV Cam H7“). (334b04dbd)

  • Pro přehlednost přejmenoval dvě akce v nabídce Tools: Run Bootloader (Load Firmware) je nyní Load Custom Firmware a Erase Onboard Data Flash je nyní Erase Internal FAT File System (potvrzovací dialog nyní odkazuje na vnitřní souborový systém FAT kamery). (0bc275a0a)

  • Obnovil klávesové zkratky Ctrl+Shift+L (Load Custom Firmware) a Ctrl+Shift+E (Erase Internal FAT File System) a přesunul položku Preferences zpět do nabídky Edit. (dabb6f7d9, b5daf59a6)

  • Vypnul automatickou detekci kompilátoru C/C++ a toolchainu při spuštění, protože IDE cílí na MicroPython. (f42fcc8f2)

  • Přidal partnerské logo Alif Semiconductor (světlé/tmavé) do sekce partnerů dialogu About. (4878781bb)

  • Čtení firmwaru připojené desky nyní může před vydáním příkazu vyprázdnit zastaralá data sériového portu, čímž se zlepšuje spolehlivost dotazů na firmware/verzi. (c15a46f5b)

  • Zlepšil spolehlivost připojení ROMFS vynucením opětovného připojení/obnovení při operacích čtení, zápisu a resetu ROMFS. (f9bc83007)

Opravy chyb

  • Opravil dialogy pro ukládání modelů/skriptů a přidávání souborů/modelů do ROMFS tak, aby používaly jednoduchou příponu souboru namísto úplné přípony, což zabraňuje poškození přípon při přejmenování souborů s tečkami v názvech. (52c6820d2)

  • Opravil přetečení indikátoru průběhu nahrávání přes DFU u velkých přenosů výpočtem procenta v 64bitové aritmetice. (4b91ff2ba)

  • Opravil flashování staršího firmwaru/bootloaderů OpenMV ochranou kroků mazání a programování flash paměti proti neplatným (nekladným) rozsahům sektorů flash a zobrazením explicitní chyby namísto pádu a opravil ochranu přístupu k ROMFS během aktualizace starého firmwaru. (ae2cc15b4, 235dbdb10)

  • Opravil detekci desky na sériovém portu tak, aby se inverzní filtr sériového čísla použil pouze během ověřování portu (nikoli během připojení), a přidal inverzní filtry pro desku i.MX, aby byla sériová čísla v režimu bootloaderu vyloučena. (ae2cc15b4)

  • Opravil trvalost typu desky tak, aby dříve uložené mapování desky již nebylo přepsáno při ručním výběru typu desky. (c42d36001)

  • Oprava bootloaderu nyní převádí zobrazovaný název skryté desky na její architekturní řetězec, takže opětovné připojení/oprava firmwaru namapuje správnou desku. (a1de7a09c)

  • Detekce desky nyní porovnává architekturní řetězce desek bez ohledu na velikost písmen. (7a2e0e93f)

  • Opravil selhání připojení disku zařízení při rychlém odpojení/připojení tím, že zachoval vlákno skenování disků a opakoval skenování až třikrát, a zajistil, aby skenování disků spolehlivě běželo na skenovacím vlákně. (455dbe967, 58c0e5456)

  • Opravil selhání spuštění kompilátoru modelů (ST Edge AI a Vela) na Intelových Macích povolením cesty k nástroji ARM64 při běhu pod Rosettou. (32e309e86)

  • Opravil problémy s mezipamětí nástroje Python a jazykového serveru přesměrováním veškerého dodávaného __pycache__ Pythonu do sdíleného adresáře prostředků a předehřátím pycache nástroje i.MX blhost před časově omezeným připojením bootloaderu, takže flashování již nevyprší časovým limitem. (f64f3330f)

  • Opravil cestu k hlavičkovému souboru MicroPython používanou jazykovým serverem Python (pro automatické dokončování) tak, aby se rozlišovala z cesty prostředků pro všechny uživatele, a učinil vyhledávání cesty prostředků pro všechny uživatele robustnějším, když filtrování podle uživatelského jména nic nenajde. (5f2648565, fc1938818)

  • Opravil nefunkční odkazy na dokumentaci ST Edge AI v dialogu možností kompilátoru převedením cest k místním souborům na řádné URL file://. (3ac136444)

  • Opravil automatické odsazování v editoru Python tak, aby řádky již nebyly nesprávně odsazeny zpět po řádku končícím dvojtečkou (electric), např. po hlavičkách if/for/def. (6555f44ba)

  • Opravil zarovnání záznamu adresáře ROMFS tak, aby offsety složek zohledňovaly velikost záznamu názvu adresáře, a zvýšil prodlevu mezi soubory při rozbalování/vytváření souborů ROMFS a model zoo, aby byly zajištěny odlišné časové značky vytvoření. (9bf7e1d9e, d968a6e46)

  • Opravil přetečení celého čísla v převodu mean-to-depthwise-conv optimalizátoru grafů Vela výpočtem výstupního násobitele v 64 bitech a opravil základní název použitý v názvu/výstupu dialogu kompilátoru Vela. (d217a46e9, 8376490eb)

  • Opravil obnovení rozbalených složek a vybraného modelu prohlížeče model zoo při opětovném otevření a přepnul dialog na alokaci na haldě, aby se předešlo problémům s životností GUI. (84a63ef4c)

  • Opravil cestu pro uložení jako u Model Zoo tak, aby zapamatovaný adresář byl uložen jako složka, nikoli jako úplný název souboru. (be877f7af)

  • Zachoval starší cestu k uživatelským prostředkům namísto jejího odstranění při spuštění, čímž se předchází chybě „close any programs viewing OpenMV IDE data“, když je stará složka uzamčena. (775656775)

  • Opravil instalační skripty ovladačů pro Windows a soubory catalog/inf tak, aby se ovladače OpenMV DFU, dfuse, FTDI, Arduino, pybcdc a VCR spolehlivě instalovaly a správně hlásily kódy úspěchu, zpevnil instalační skripty ovladačů DFU dfuse/vcr a znovu podepsal dodávané katalogy ovladače OpenMV DFU. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)

  • Opravil instalátor pro Linux tak, aby instaloval pyusb prostřednictvím distribučního balíčku python3-usb a přidal build-essential namísto spuštění pip install pyusb a aby detekoval OS prostřednictvím /etc/os-release. (c471ddc42, 4014a0ba5)

  • Instalátor pro Windows nyní povoluje podporu dlouhých cest, takže se hluboce zanořené soubory ST Edge AI nainstalují správně. (0b3ca6945)

Podpora platforem a nástrojů

  • Základ Qt Creator: 14.0.2.

  • Dodávaný firmware OpenMV: aktualizován na 4.7.0 u všech desek OpenMV a Arduino (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6); firmware byl znovu sestaven s podporou ROMFS (romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)

  • ROMFS OpenMV N6: zvětšen z 16 MB na 24 MB, přičemž obraz romfs byl přesunut na DFU alt-setting 3. (d0bbb1fe7, d7d3120b3)

  • ROMFS OpenMV AE3: zvětšen z 16 MB na 24 MB, s pravidly zarovnání na 16/32 bytů přidanými pro dodávané modelové soubory .bin napříč všemi deskami. (746da8914)

  • STM32CubeProgrammer (STM32_Programmer_CLI) dodávaný pro macOS, Linux a Windows s úplnou databází zařízení STM32 a externími loadery pro tovární programování N6; instalace byla zbavena nepoužívaných souborů externích loaderů a databází jednotlivých MCU, aby se zmenšila velikost. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)

  • Kompilátor ST Edge AI (stedgeai) 2.1.0 dodávaný (Windows) pro N6 Neural-ART NPU. (3064411ad)

  • Kompilátor ARM Ethos-U Vela 4.2.0 (s numpy 2.2.4) dodávaný pro Linux x86-64, macOS (Apple silicon) a Windows. Balíček pro Windows byl nejprve přidán s Vela 4.1.0 / numpy 2.2.3 a později povýšen na finální 4.2.0 / numpy 2.2.4. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)

  • mpy-cross 1.25.0.post2 dodávaný (macOS/Windows). (8c71548df, 3ab42d58a)

  • Alif Security Toolkit: aktualizován na v1.104.0 (podepsané binárky setools a PDF uživatelské příručky v1.104.0) pro desky založené na Alif Ensemble. (43260719c, 75a58e61b)

  • Přidány NPU konfigurace OPENMV_AE3 (Alif Ensemble) cílící na akcelerátory ethos-u55-256 a ethos-u55-128 se systémovými konfiguracemi RTSS HP/HE SRAM/MRAM/OSPI. (1f5fc546d, 411f708ea)

  • Přidány pinout diagramy pro kamery OpenMV N6 a AE3 (senzor PAG7936) do výběru pinoutů a nový příklad s grayscale událostní kamerou Genx320 demonstrující konfiguraci filtru proti blikání. (60184bbc5, 6d04b1b50)

  • Aktualizováno párování USB PID pro Arduino Nicla Vision tak, aby rozpoznávalo nový aplikační PID (0x055F) vedle původního (0x045F). (91ce4007c)

  • Aktualizovány parametry flashování zabezpečeného bootloaderu NXP/blhost tak, aby používaly explicitní adresu/délku FCB a velikost disku MBR, v souladu s nejnovějším toolkitem spsdk. (16b66c3e2)

  • Instalátor pro Windows nyní dodává vyhrazený ovladač bootloaderu STM32 DFU a redistribuovatelné balíčky Microsoft Visual C++ 2015+. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)

  • Odstranil dodávaný model zoo DeGirum YOLOv5/YOLOv8 z IDE. (26710be1c)

Zásadní změny

Změny v pracovním postupu a chování viditelné pro uživatele ve v4.7.0. Žádné rozbití skriptovacího API nenastalo, ale vezměte na vědomí následující:

  • Souborový systém FAT vymazán při aktualizaci z verze starší než 4.7.0. Aktualizace jakékoli OpenMV Cam z firmwaru staršího než 4.7.0 nyní vynutí vymazání souborového systému FAT a reset/aktualizaci ROMFS během aktualizace firmwaru (zaškrtávací políčka dialogu jsou vynuceně zapnutá a nelze je vypnout), takže uživatelské soubory uložené ve vnitřní flash paměti zařízení budou při aktualizaci smazány. (f6f3355b0)

  • Binárky firmwaru UVC a bootloaderu Portenta H7 odstraněny. Předkompilované obrazy firmwaru webové kamery UVC (uvc.bin/dfu/elf) byly odstraněny pro všechny desky a binárky bootloaderu Arduino Portenta H7 byly odstraněny z balíčku; tyto předkompilované obrazy již nelze z IDE naflashovat. (c44e33d70)

  • Přemístění adresáře prostředků. Stahovatelné prostředky IDE (firmware, model zoo, dokumentace) se nyní instalují do sdíleného adresáře aplikačních dat pro všechny uživatele namísto cesty prostředků pro jednotlivé uživatele a manifest verzí se přesunul z QSettings do souboru OpenMVIDE.json uloženého jednu úroveň nad složkou prostředků pro všechny uživatele (se zpětně kompatibilním zrcadlením do QSettings). Při prvním spuštění po aktualizaci se spustí opětovné stažení prostředků. (be308ace2, 7c7dddb87)