v4.7.0

A v4.7.0 egy nagyszabású, NPU- és ROMFS-központú kiadás, amely a Qt Creator 14.0.2-re épül. Bevezet egy eszközön futó ROM-fájlrendszer munkafolyamatot integrált ARM Ethos-U (Vela) és ST Edge AI modellfordítókkal, STM32CubeProgrammer-alapú gyári programozást ad az OpenMV N6-hoz, és minden alaplapon az OpenMV firmware 4.7.0-t tartalmazza. Vegye figyelembe, hogy bármely kamera 4.7.0 előtti firmware-ről történő frissítése mostantól kikényszeríti a FAT-fájlrendszer törlését és a ROMFS visszaállítását, ami törli az eszköz belső flash memóriájában tárolt fájlokat; lásd a Visszafelé nem kompatibilis változások szakaszt lentebb.

Kiemelt újdonságok

  • A ROM-fájlrendszer munkafolyamat lehetővé teszi egy eszközön futó, csak olvasható fájlrendszer létrehozását, szerkesztését, flashelését és visszaállítását, így ML-modellek tárolhatók a kamerán; a DFU, IMX, Bossac, Picotool és Arduino-DFU rendszerbetöltőkbe integrálva. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)

  • Az ARM Ethos-U Vela és az ST Edge AI modellfordítók mostantól integrálva vannak, így a .tflite/.onnx modellek automatikusan az NPU-ra fordulnak, amikor Ethos-U55 (OpenMV AE3) vagy Neural-ART (OpenMV N6) alaplapra töltik őket. (411f708ea, 3064411ad)

  • Az STM32CubeProgrammer mostantól mellékelve van, hogy lehetővé tegye az OpenMV N6 (STM32N657) rendszerbetöltőjének gyári programozását egy FlashLayout.tsv segítségével. (334b04dbd, 54fea4d57, 28cc94a6e)

  • A Model Zoo böngésző egy „Modellek szűrése alaplaptípus szerint” jelölőnégyzettel bővül, amelyet egy új models/index.csv tábla vezérel, és amely elrejti a csatlakoztatott alaplappal nem kompatibilis modelleket. (80adb2079)

  • Kiterjesztésenkénti ROMFS-igazítás: a ROMFS-képszerkesztő mostantól ábécésorrendbe rendezi a fájlokat, és a settings.json-ból származó bájtigazítási szabályok szerint csomagolja őket (pl. a .tflite modellek 16 bájtra igazítva). (e87b2bf06)

  • A mellékelt firmware frissítve lett 4.7.0-ra az összes OpenMV és Arduino alaplapon. (6d04b1b50, d0bbb1fe7, d7d3120b3)

Új funkciók

  • A ROM-fájlrendszer almenü (New / Open / Edit ROMFS on OpenMV Cam / Reset ROMFS on OpenMV Cam) felváltja a régi, egyetlen Edit ROM File System műveletet. (0bc275a0a, 958f732b5)

  • Open Model Zoo böngésző tartós kiválasztottmodell-állapottal és kiválasztásváltáskor megjelenő előnézettel, beleértve a mellékelt STMicroelectronics, Qualcomm, DeGirum, Edge Impulse és Google modellkönyvtárakat. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)

  • A Machine Vision Tools alatti Convert Model for NPU menüpont egy TensorFlow Lite (.tflite) vagy ONNX (.onnx) modellt fordít le az alaplap NPU-gyorsítójához (Vela az Ethos-U .tflite-hoz, ST Edge AI az N6 Neural-ART .tflite/.onnx-hoz), majd a konvertált modellt lemezre vagy a kamerára menti. (3913f5b8b)

  • A Copy/Convert Python File eszköz egy Python-szkriptet másol a kamerára vagy lemezre, és opcionálisan MicroPython .mpy bájtkóddá keresztfordítja az mpy-cross segítségével; a Tools alatti új MicroPython Tools almenüben található. (e9d7fa143, 47188c0e3)

  • Wrap Text kapcsológombok kerültek az OpenMV soros terminálba és a General Messages kimeneti panelbe; mindkettő szóhatáron tördeli a kimenetét, és munkamenetek között megőrzi a beállítást. (8c052845a, 51d3e1ad6)

  • Az mpy-cross ROMFS keresztfordítás alaplaponkénti architektúrajelzőkkel (armv7emsp/armv7emdp) lehetővé teszi, hogy MicroPython-szkriptek ROMFS-képekbe legyenek befagyasztva. (8c71548df)

  • A firmware rendszerbetöltő párbeszédablak mostantól a *.bin és *.dfu mellett *.img ROMFS-fájlokat is elfogad, ellenőrzi a rendszerbetöltőnkénti kiterjesztéseket, és letiltja a meglévő Reset ROMFS file system jelölőnégyzetet *.img fájl betöltésekor. (79f348b36)

  • A 4.7.0 előtti frissítések mostantól bekapcsolva kényszerítik a FAT-törlés és a ROMFS visszaállítás/frissítés jelölőnégyzeteket, és figyelmeztetnek, hogy a frissítéshez törölni kell a FAT-fájlrendszert. (f6f3355b0)

Egyéb változások és fejlesztések

  • A mellékelt Qualcomm Model Zoo átszervezve feladatalapú mappákba (image_classification, object_detection, pose_estimation, semantic_segmentation, depth_estimation), a nem támogatott nagy modellek eltávolítva (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2), valamint hozzáadva a resnet18 és densenet_121 (szélesebb alaplap-kompatibilitással), továbbá a facemap_3dmm és az FFNet_40S (csak AE3/N6). (300ce2fc2)

  • Hozzáadva egy új Edge Impulse modellgyártó (FOMO arcészlelő modell) és új Google modellek (micro_speech, mnist_lstm, person_detection) a mellékelt Model Zoo-hoz, valamint egy View/Edit művelet a ROMFS-szerkesztő helyi menüjébe. (80adb2079)

  • A Model Zoo hivatkozások rendberakva: hozzáadva a Qualcomm face_attrib_net modell (AE3/N6), eltávolítva a hibás YOLO-NAS bejegyzés, és kijavítva az alaplap-kompatibilitási szűrők több STMicroelectronics objektumészlelő modellnél. (fd639bda0)

  • Több modellcímke hozzáadva, az egyik modell NPU-gyorsító konfigurációja stai-ról stedgeai-ra váltva, és az st_yolo_x alaplap-kompatibilitási szűrője kiterjesztve (mostantól az AE3/N6 mellett az OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7 és NICLA_VISION is). (1515631ce)

  • Egy .tflite modell ROMFS-hez adása mostantól kihagyja a Vela/Ethos-U fordítást, ha a modell már Ethos-U-ra van fordítva (ilyenkor csak átmásolja), a párbeszédablak művelete pedig Add Model-ről Model Zoo-ra lett átnevezve. (9c0b178fa)

  • Az ST Edge AI fordítás kihagyja a konverziót a már NBIN formátumú modelleknél. (3064411ad)

  • A Vela fordító párbeszédablaka a modell jelentett SRAM-használatát az egyes alaplapok beállított heap-méretéhez viszonyítva elemzi, és százalékot mutat figyelmeztetésekkel/hibákkal, ha a modell meghaladja a rendelkezésre álló heap 90%-át vagy 100%-át. (7140fc2aa)

  • A Vela fordító mostantól egyértelmű „not supported on this platform” hibát jelez ahelyett, hogy csendben elhasalna, és egy modell Model Zoo-ba ejtése többé nem igényli a Vela jelenlétét. (c736dd54d, 0ad7fd705)

  • A Vela Ethos-U fordító mostantól a mellékelt beágyazott Python-futtatókörnyezeten keresztül fut (python -m ethosu.vela) önálló bináris helyett. (52f9b8820)

  • A hosszan futó ST Edge AI és Vela modellfordító párbeszédablakok mostantól egy „This command takes a while to execute. Please be patient.” üzenetet mutatnak. (fc9ac2ab5)

  • A PAG7936 (N6/AE3) és PS5520 érzékelőkön példák vagy új szkriptek megnyitása mostantól automatikusan sensor.set_framesize(QVGA)-ról VGA-ra emeli a felbontást a nagyobb felbontású érzékelők esetén. (dfc27dd25)

  • Hozzáadva a példaszkriptek automatikus igazítása a FLIR Boson 320/640 hőkamerákhoz, a PixArt PAG7920/PAJ6100-hoz, a FROGEYE2020-hoz és a Prophesee GENX320 eseménykamerához. (1f54ad01b)

  • A letölthető IDE-erőforrások (firmware/modellek/dokumentáció) mostantól egy közös, minden felhasználó számára elérhető alkalmazásadat-könyvtárba települnek egy új ICore::allUsersResourcePath() API segítségével, az erőforrás-verzió manifeszt pedig egy OpenMVIDE.json fájlban tárolódik egy szinttel a minden felhasználós erőforrásmappa fölött. (be308ace2, 7c7dddb87)

  • Az Alif rendszercsomag firmware-frissítései során az IDE mostantól arra kéri a felhasználót, hogy a folytatás előtt áramtalanítsa (válassza le és csatlakoztassa újra) a kamerát. (162d128f9, 756611696)

  • Az Alif (Ensemble) rendszerbetöltő/firmware letöltési folyamat átdolgozva, hogy ROMFS-kompatibilis legyen: a rendszerbetöltő kiírása után generálja az App TOC-ot, a bin/sign képeket egy images/ almappába másolja, és flasheli a firmware_pad.toc fájlt. (f623c9231)

  • A firmware-választóban egyszerűsített alaplapnevek a felesleges zárójeles chip-utótagok és a „Legacy” címkék elhagyásával (pl. a „OpenMV Cam H7 (STM32H743)” mostantól „OpenMV Cam H7”). (334b04dbd)

  • Két Tools-menübeli művelet átnevezve az egyértelműség kedvéért: a Run Bootloader (Load Firmware) mostantól Load Custom Firmware, az Erase Onboard Data Flash pedig Erase Internal FAT File System (a megerősítő párbeszédablak mostantól a kamera belső FAT-fájlrendszerére hivatkozik). (0bc275a0a)

  • Visszaállítva a Ctrl+Shift+L (Load Custom Firmware) és a Ctrl+Shift+E (Erase Internal FAT File System) billentyűparancs, és a Preferences elem visszahelyezve az Edit menübe. (dabb6f7d9, b5daf59a6)

  • Letiltva az automatikus C/C++ fordító- és eszközlánc-felismerés indításkor, mivel az IDE a MicroPythont célozza meg. (f42fcc8f2)

  • Hozzáadva az Alif Semiconductor partnerlogó (világos/sötét) az About párbeszédablak partnerek szakaszához. (4878781bb)

  • A csatlakoztatott alaplap firmware-ének beolvasása mostantól a parancs kiadása előtt kiürítheti az elavult soros porti adatokat, javítva a firmware-/verziólekérdezések megbízhatóságát. (c15a46f5b)

  • A ROMFS kapcsolat megbízhatósága javítva azzal, hogy a ROMFS olvasási, írási és visszaállítási műveleteinél kikényszeríti az újracsatlakozást/frissítést. (f9bc83007)

Hibajavítások

  • Javítva, hogy a modell-/szkriptmentő párbeszédablakok és a ROMFS fájl-/modellhozzáadás az egyszerű fájlkiterjesztést használja a teljes kiterjesztés helyett, megakadályozva az elrontott kiterjesztéseket olyan fájlok átnevezésekor, amelyek nevében pontok vannak. (52c6820d2)

  • Javítva egy DFU feltöltési folyamatjelző túlcsordulása nagy átviteleknél azzal, hogy a százalékot 64 bites aritmetikával számolja. (4b91ff2ba)

  • Javítva a régebbi OpenMV firmware-ek/rendszerbetöltők flashelése azzal, hogy a flash-törlési és programozási lépéseket védi az érvénytelen (nem pozitív) flash-szektortartományok ellen, és összeomlás helyett explicit hibát mutat; valamint javítva a ROMFS-hozzáférés védelme a régi firmware frissítése során. (ae2cc15b4, 235dbdb10)

  • Javítva a soros porti alaplap-felismerés, hogy a sorozatszám-fordított szűrő csak a portellenőrzés során legyen alkalmazva (a csatlakozás során nem), és hozzáadva fordított szűrők az i.MX alaplaphoz, hogy a rendszerbetöltő módú sorozatszámok kizárásra kerüljenek. (ae2cc15b4)

  • Javítva az alaplaptípus megőrzése, hogy egy korábban mentett alaplap-leképezés ne íródjon felül kézi alaplaptípus-választáskor. (c42d36001)

  • A rendszerbetöltő-javítás mostantól egy rejtett alaplap megjelenített nevét feloldja az architektúra-karakterláncára, így az újracsatlakozás/firmware-javítás a megfelelő alaplapot képezi le. (a1de7a09c)

  • Az alaplap-felismerés mostantól kis- és nagybetűktől függetlenül illeszti az alaplap-architektúra karakterláncokat. (7a2e0e93f)

  • Javítva, hogy az eszközlemez ne csatlakozzon fel gyors le-/újracsatlakoztatáskor azzal, hogy megőrzi a meghajtó-vizsgáló szálat és legfeljebb háromszor újrapróbálja a meghajtó-vizsgálatokat, valamint a meghajtó-vizsgálat megbízhatóan a vizsgálószálon fut. (455dbe967, 58c0e5456)

  • Javítva, hogy a modellfordító (ST Edge AI és Vela) ne fusson le Intel Maceken, azzal, hogy engedélyezi az ARM64 eszközútvonalat Rosetta alatti futtatáskor. (32e309e86)

  • Javítva a Python-eszköz és a nyelvi szerver gyorsítótár-problémái azzal, hogy az összes mellékelt Python __pycache__ egy közös erőforrás-könyvtárba kerül, és az i.MX blhost pycache előmelegítésével az időkorlátos rendszerbetöltő-csatlakozás előtt, így a flashelés többé nem fut időtúllépésbe. (f64f3330f)

  • Javítva a Python nyelvi szerver (automatikus kiegészítéshez) által használt MicroPython fejlécútvonal, hogy a minden felhasználós erőforrásútvonalból oldódjon fel, és a minden felhasználós erőforrásútvonal-keresés robusztusabbá vált, amikor a felhasználónév-szűrés semmit sem talál. (5f2648565, fc1938818)

  • Javítva a hibás ST Edge AI dokumentációhivatkozások a fordító-beállítások párbeszédablakban azzal, hogy a helyi fájlútvonalakat megfelelő file:// URL-ekké alakítja. (3ac136444)

  • Javítva a Python-szerkesztő automatikus behúzása, hogy a sorok behúzása ne csökkenjen helytelenül egy kettősponttal végződő (elektromos) sor után, pl. if/for/def fejlécek után. (6555f44ba)

  • Javítva a ROMFS könyvtárrekordok igazítása, hogy a mappaeltolások figyelembe vegyék a könyvtárnév-rekord méretét, és növelve a fájlok közötti késleltetés a ROMFS- és Model Zoo-fájlok kicsomagolásakor/létrehozásakor, hogy biztosítva legyenek a különböző létrehozási időbélyegek. (9bf7e1d9e, d968a6e46)

  • Javítva egy egész szám túlcsordulás a Vela gráfoptimalizáló átlag-mélységi-konvolúció átalakításában azzal, hogy a kimeneti szorzót 64 biten számolja, és javítva a Vela fordító párbeszédablak címében/kimenetében használt alapnév. (d217a46e9, 8376490eb)

  • Javítva a Model Zoo böngésző kibontott mappáinak és kiválasztott modelljének visszaállítása újranyitáskor, és a párbeszédablak heap-allokációra váltva a GUI élettartam-problémáinak elkerülése érdekében. (84a63ef4c)

  • Javítva a Model Zoo mentés-másként útvonala, hogy a megjegyzett könyvtár mappaként legyen tárolva, ne teljes fájlnévként. (be877f7af)

  • A régi felhasználói erőforrásútvonal megtartva ahelyett, hogy indításkor törölné, így elkerülve egy „close any programs viewing OpenMV IDE data” hibát, amikor a régi mappa zárolva van. (775656775)

  • Javítva a Windows illesztőprogram-telepítő szkriptek és a katalógus-/inf-fájlok, hogy az OpenMV DFU, dfuse, FTDI, Arduino, pybcdc és VCR illesztőprogramok megbízhatóan települjenek és helyesen jelentsék a sikerkódokat; megerősítve a dfuse/vcr DFU illesztőprogram-telepítő szkripteket, és újraírva aláírva a mellékelt OpenMV DFU illesztőprogram-katalógusokat. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)

  • Javítva a Linux-telepítő, hogy a pyusb-t a disztribúció python3-usb csomagján keresztül telepítse és hozzáadja a build-essential-t a pip install pyusb futtatása helyett, valamint hogy az operációs rendszert az /etc/os-release segítségével ismerje fel. (c471ddc42, 4014a0ba5)

  • A Windows-telepítő mostantól engedélyezi a hosszú útvonalak támogatását, így a mélyen beágyazott ST Edge AI fájlok helyesen települnek. (0b3ca6945)

Platform- és eszköztámogatás

  • Qt Creator alap: 14.0.2.

  • Mellékelt OpenMV firmware: frissítve 4.7.0-ra az összes OpenMV és Arduino alaplapon (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6); a firmware ROMFS-támogatással lett újraépítve (romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)

  • OpenMV N6 ROMFS: 16 MB-ról 24 MB-ra növelve, a romfs-kép a DFU alt-setting 3-ra áthelyezve. (d0bbb1fe7, d7d3120b3)

  • OpenMV AE3 ROMFS: 16 MB-ról 24 MB-ra növelve, 16/32 bájtos igazítási szabályokkal a mellékelt .bin modellfájlokhoz az összes alaplapon. (746da8914)

  • STM32CubeProgrammer (STM32_Programmer_CLI) mellékelve macOS-hez, Linuxhoz és Windowshoz a teljes STM32 eszközadatbázissal és külső betöltőkkel az N6 gyári programozásához; a telepítésből eltávolításra kerültek a nem használt külső betöltő- és MCU-nkénti adatbázisfájlok a méret csökkentése érdekében. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)

  • ST Edge AI (stedgeai) fordító 2.1.0 mellékelve (Windows) az N6 Neural-ART NPU-hoz. (3064411ad)

  • ARM Ethos-U Vela fordító 4.2.0 (numpy 2.2.4-gyel) mellékelve Linux x86-64-hez, macOS-hez (Apple silicon) és Windowshoz. A Windows-csomag először a Vela 4.1.0 / numpy 2.2.3 verzióval került hozzáadásra, majd később a végleges 4.2.0 / numpy 2.2.4-re emelve. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)

  • mpy-cross 1.25.0.post2 mellékelve (macOS/Windows). (8c71548df, 3ab42d58a)

  • Alif Security Toolkit: frissítve v1.104.0-ra (aláírt setools binárisok és v1.104.0 User Guide PDF) az Alif Ensemble-alapú alaplapokhoz. (43260719c, 75a58e61b)

  • Hozzáadva az OPENMV_AE3 (Alif Ensemble) NPU-konfigurációk, amelyek az ethos-u55-256 és ethos-u55-128 gyorsítókat célozzák RTSS HP/HE SRAM/MRAM/OSPI rendszerkonfigurációkkal. (1f5fc546d, 411f708ea)

  • Hozzáadva a kivezetési diagramok az OpenMV N6 és AE3 kamerákhoz (PAG7936 érzékelő) a kivezetés-választóhoz, valamint egy új Genx320 szürkeárnyalatos eseménykamera-példa, amely a vibrálásgátló szűrő konfigurációját mutatja be. (60184bbc5, 6d04b1b50)

  • Frissítve az Arduino Nicla Vision USB PID-illesztése, hogy felismerjen egy új alkalmazás-PID-et (0x055F) az eredeti (0x045F) mellett. (91ce4007c)

  • Frissítve az NXP/blhost biztonságos rendszerbetöltő flashelési paraméterei, hogy explicit FCB-címet/-hosszt és egy MBR-lemezméretet használjanak, igazodva a legújabb spsdk eszközkészlethez. (16b66c3e2)

  • A Windows-telepítő mostantól egy dedikált STM32 DFU rendszerbetöltő illesztőprogramot és a Microsoft Visual C++ 2015+ újraterjeszthető csomagokat is tartalmazza. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)

  • Eltávolítva a mellékelt DeGirum YOLOv5/YOLOv8 Model Zoo az IDE-ből. (26710be1c)

Visszafelé nem kompatibilis változások

Felhasználó számára látható munkafolyamat- és viselkedésbeli törések a v4.7.0-ban. Nincs szkriptelési API-törés, de vegye figyelembe a következőket:

  • A FAT-fájlrendszer törlődik 4.7.0 előtti firmware-ről történő frissítéskor. Bármely OpenMV Cam 4.7.0 előtti firmware-ről történő frissítése mostantól kikényszeríti a FAT-fájlrendszer törlését és a ROMFS visszaállítását/frissítését a firmware-frissítés során (a párbeszédablak jelölőnégyzetei bekapcsolva vannak kényszerítve, és nem tilthatók le), így az eszköz belső flash memóriájában tárolt felhasználói fájlok törlődnek a frissítéskor. (f6f3355b0)

  • Az UVC firmware és a Portenta H7 rendszerbetöltő binárisok eltávolítva. Az előre lefordított UVC webkamera-firmware képek (uvc.bin/dfu/elf) eltávolításra kerültek az összes alaplapról, és az Arduino Portenta H7 rendszerbetöltő binárisok eltávolításra kerültek a csomagból; ezek az előre lefordított képek többé nem flashelhetők az IDE-ből. (c44e33d70)

  • Erőforrás-könyvtár áthelyezése. A letölthető IDE-erőforrások (firmware, Model Zoo, dokumentáció) mostantól egy közös, minden felhasználó számára elérhető alkalmazásadat-könyvtárba települnek a felhasználónkénti erőforrásútvonal helyett, és a verziómanifeszt a QSettings-ből egy OpenMVIDE.json fájlba költözött, amely egy szinttel a minden felhasználós erőforrásmappa fölött tárolódik (visszafelé kompatibilis QSettings-tükrözéssel). A frissítés utáni első futtatáskor egy erőforrás-újraletöltés indul el. (be308ace2, 7c7dddb87)