v4.7.0

v4.7.0 on suuri NPU- ja ROMFS-painotteinen julkaisu, joka perustuu Qt Creator 14.0.2:een. Se tuo laitteella sijaitsevan ROM-tiedostojärjestelmän työnkulun integroiduilla ARM Ethos-U (Vela)- ja ST Edge AI -mallikääntäjillä, lisää STM32CubeProgrammer-pohjaisen tehdasohjelmoinnin OpenMV N6:lle ja sisältää OpenMV-laiteohjelmiston 4.7.0 kaikilla korteilla. Huomaa, että minkä tahansa kameran päivittäminen pre-4.7.0-laiteohjelmistosta pakottaa nyt FAT-tiedostojärjestelmän tyhjennyksen ja ROMFS-nollauksen, mikä pyyhkii laitteen sisäiseen flash-muistiin tallennetut tiedostot; katso Yhteensopivuuden rikkovat muutokset alta.

Kohokohdat

  • ROM-tiedostojärjestelmän työnkulun avulla voit luoda, muokata, flashata ja nollata laitteella sijaitsevan kirjoitussuojatun tiedostojärjestelmän, jotta ML-malleja voidaan tallentaa kameraan. Tämä on integroitu DFU-, IMX-, Bossac-, Picotool- ja Arduino-DFU-käynnistyslataimiin. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)

  • ARM Ethos-U Vela- ja ST Edge AI -mallikääntäjät on nyt integroitu, joten .tflite/.onnx-mallit käännetään automaattisesti NPU:lle, kun ne ladataan Ethos-U55 (OpenMV AE3)- tai Neural-ART (OpenMV N6) -korteille. (411f708ea, 3064411ad)

  • STM32CubeProgrammer sisältyy nyt mukaan, mikä mahdollistaa OpenMV N6:n (STM32N657) käynnistyslataimen tehdasohjelmoinnin FlashLayout.tsv-tiedoston kautta. (334b04dbd, 54fea4d57, 28cc94a6e)

  • Model Zoo -selain saa ”Filter models by board type” -valintaruudun, jota ohjaa uusi models/index.csv-taulukko ja joka piilottaa kytketyn kortin kanssa yhteensopimattomat mallit. (80adb2079)

  • Laajennuskohtainen ROMFS-tasaus: ROMFS-kuvaeditori järjestää nyt tiedostot aakkosjärjestykseen ja pakkaa ne käyttäen settings.json-tiedoston tavutasaussääntöjä (esim. .tflite-mallit tasataan 16 tavuun). (e87b2bf06)

  • Mukana toimitettu laiteohjelmisto päivitetty versioon 4.7.0 kaikilla OpenMV- ja Arduino-korteilla. (6d04b1b50, d0bbb1fe7, d7d3120b3)

Uudet ominaisuudet

  • ROM-tiedostojärjestelmän alivalikko (New / Open / Edit ROMFS on OpenMV Cam / Reset ROMFS on OpenMV Cam) korvaa vanhan yksittäisen Edit ROM File System -toiminnon. (0bc275a0a, 958f732b5)

  • Open Model Zoo -selain pysyvällä valitun mallin tilalla ja valinnan muuttuessa päivittyvällä esikatselulla, mukaan lukien STMicroelectronics-, Qualcomm-, DeGirum-, Edge Impulse- ja Google-mallikirjastot. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)

  • Convert Model for NPU -valikkokohta Machine Vision Tools -valikon alla kääntää TensorFlow Lite (.tflite)- tai ONNX (.onnx) -mallin kortin NPU-kiihdyttimelle (Vela Ethos-U .tflite -malleille, ST Edge AI N6 Neural-ART .tflite/.onnx -malleille) ja tallentaa muunnetun mallin levylle tai kameraan. (3913f5b8b)

  • Copy/Convert Python File -työkalu kopioi Python-skriptin kameraan tai levylle ja kääntää sen valinnaisesti ristiin MicroPython .mpy -tavukoodiksi mpy-cross-työkalun avulla; se sijaitsee uudessa MicroPython Tools -alivalikossa Tools-valikon alla. (e9d7fa143, 47188c0e3)

  • Wrap Text -vaihtopainikkeet lisättiin OpenMV-sarjapäätteeseen ja General Messages -tulosteruutuun; molemmat rivittävät tulosteensa sanoittain ja säilyttävät asetuksen istuntojen välillä. (8c052845a, 51d3e1ad6)

  • mpy-cross-ROMFS-ristiinkääntäminen korttikohtaisilla arkkitehtuurilipuilla (armv7emsp/armv7emdp) mahdollistaa MicroPython-skriptien jäädyttämisen ROMFS-kuviin. (8c71548df)

  • Laiteohjelmiston käynnistyslatainvalintaikkuna hyväksyy nyt *.img-ROMFS-tiedostoja *.bin- ja *.dfu-tiedostojen rinnalla, vahvistaa käynnistyslatainkohtaiset tunnisteet ja poistaa käytöstä olemassa olevan Reset ROMFS file system -valintaruudun ladattaessa *.img-tiedostoa. (79f348b36)

  • Pre-4.7.0-päivitykset pakottavat nyt FAT-tyhjennyksen sekä ROMFS-nollaus/päivitys-valintaruudut päälle ja varoittavat, että päivittäminen edellyttää FAT-tiedostojärjestelmän tyhjentämistä. (f6f3355b0)

Muut muutokset ja parannukset

  • Järjesti mukana toimitetun Qualcomm-mallizoon tehtäväpohjaisiin kansioihin (image_classification, object_detection, pose_estimation, semantic_segmentation, depth_estimation), poisti tukemattomat suuret mallit (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2) ja lisäsi resnet18- ja densenet_121-mallit (laajemmalla korttiyhteensopivuudella) sekä facemap_3dmm- ja FFNet_40S-mallit (vain AE3/N6). (300ce2fc2)

  • Lisäsi uuden Edge Impulse -mallitoimittajan (FOMO-kasvontunnistusmalli) ja uudet Google-mallit (micro_speech, mnist_lstm, person_detection) mukana toimitettuun mallizooseen sekä lisäsi View/Edit-toiminnon ROMFS-editorin kontekstivalikkoon. (80adb2079)

  • Siivosi mallizoon linkkejä: lisäsi Qualcomm face_attrib_net -mallin (AE3/N6), poisti rikkinäisen YOLO-NAS-merkinnän ja korjasi useiden STMicroelectronics-objektintunnistusmallien korttiyhteensopivuussuodattimet. (fd639bda0)

  • Lisäsi enemmän luokkanimiä, vaihtoi yhden mallin NPU-kiihdytinkokoonpanon stai-arvosta stedgeai-arvoon ja laajensi st_yolo_x-mallin korttiyhteensopivuussuodatinta (nyt myös OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7 ja NICLA_VISION AE3/N6:n lisäksi). (1515631ce)

  • .tflite-mallin lisääminen ROMFS:ään ohittaa nyt Vela/Ethos-U-kääntämisen, jos malli on jo Ethos-U-käännetty (se vain kopioidaan), ja valintaikkunan toiminto nimettiin uudelleen Add Model-toiminnosta Model Zoo-toiminnoksi. (9c0b178fa)

  • ST Edge AI -kääntäminen ohittaa muunnoksen malleille, jotka ovat jo NBIN-muodossa. (3064411ad)

  • Vela-kääntäjän valintaikkuna jäsentää mallin ilmoittaman SRAM-käytön kunkin kortin määritettyä kekokokoa vastaan ja näyttää prosenttiosuuden varoituksin/virhein, kun malli ylittää 90 % tai 100 % käytettävissä olevasta keosta. (7140fc2aa)

  • Vela-kääntäjä ilmoittaa nyt selkeän ”not supported on this platform” -virheen sen sijaan, että epäonnistuisi hiljaisesti, eikä mallin pudottaminen mallizooseen enää edellytä Velan läsnäoloa. (c736dd54d, 0ad7fd705)

  • Vela Ethos-U -kääntäjä toimii nyt mukana toimitetun upotetun Python-ajoympäristön kautta (python -m ethosu.vela) erillisen binäärin sijaan. (52f9b8820)

  • Pitkäkestoiset ST Edge AI- ja Vela-mallinkääntämisvalintaikkunat näyttävät nyt ”This command takes a while to execute. Please be patient.” -ilmoituksen. (fc9ac2ab5)

  • Esimerkkien tai uusien skriptien avaaminen PAG7936 (N6/AE3)- ja PS5520-sensoreilla nostaa nyt automaattisesti sensor.set_framesize(QVGA)-asetuksen arvoon VGA korkeamman resoluution sensoreille. (dfc27dd25)

  • Lisäsi esimerkkiskriptien automaattisen korjauksen FLIR Boson 320/640 -lämpökameroille, PixArt PAG7920/PAJ6100:lle, FROGEYE2020:lle ja Prophesee GENX320 -tapahtumakameralle. (1f54ad01b)

  • Ladattavat IDE-resurssit (laiteohjelmisto/mallit/dokumentaatio) asentuvat nyt jaettuun kaikkien käyttäjien sovellustietohakemistoon uuden ICore::allUsersResourcePath() -API:n kautta, ja resurssiversiomanifesti tallennetaan OpenMVIDE.json-tiedostoon yhden tason kaikkien käyttäjien resurssikansion yläpuolelle. (be308ace2, 7c7dddb87)

  • Alif-järjestelmäpaketin laiteohjelmistopäivitysten aikana IDE kehottaa nyt käyttäjää virtakatkaisemaan kameran (irrottamaan ja kytkemään uudelleen) ennen jatkamista. (162d128f9, 756611696)

  • Muokkasi Alif (Ensemble) -käynnistyslataimen/laiteohjelmiston latausvirtaa ROMFS-yhteensopivaksi: se luo App TOC:n käynnistyslataimen kirjoittamisen jälkeen, kopioi bin/sign-kuvat images/-alikansioon ja flashaa firmware_pad.toc-tiedoston. (f623c9231)

  • Yksinkertaisti korttien näyttönimiä laiteohjelmiston valitsimessa pudottamalla pois turhat suluissa olevat siru-tunnisteet ja ”Legacy”-merkinnät (esim. ”OpenMV Cam H7 (STM32H743)” muuttuu muotoon ”OpenMV Cam H7”). (334b04dbd)

  • Nimesi kaksi Tools-valikon toimintoa uudelleen selkeyden vuoksi: Run Bootloader (Load Firmware) on nyt Load Custom Firmware ja Erase Onboard Data Flash on nyt Erase Internal FAT File System (vahvistusvalintaikkuna viittaa nyt kameran sisäiseen FAT-tiedostojärjestelmään). (0bc275a0a)

  • Palautti Ctrl+Shift+L (Load Custom Firmware)- ja Ctrl+Shift+E (Erase Internal FAT File System) -näppäinoikotiet ja siirsi Preferences-kohdan takaisin Edit-valikkoon. (dabb6f7d9, b5daf59a6)

  • Poisti käytöstä automaattisen C/C++-kääntäjän ja työkaluketjun automaattitunnistuksen käynnistyksessä, koska IDE on suunnattu MicroPythonille. (f42fcc8f2)

  • Lisäsi Alif Semiconductor -kumppanilogon (vaalea/tumma) About-valintaikkunan kumppaniosioon. (4878781bb)

  • Kytketyn kortin laiteohjelmiston lukeminen voi nyt tyhjentää vanhentuneet sarjaporttitiedot ennen komennon antamista, mikä parantaa laiteohjelmisto-/versiokyselyjen luotettavuutta. (c15a46f5b)

  • Paransi ROMFS-yhteyden luotettavuutta pakottamalla uudelleenyhdistämisen/päivityksen ROMFS:n luku-, kirjoitus- ja nollausoperaatioissa. (f9bc83007)

Virheenkorjaukset

  • Korjasi mallin/skriptin tallennusvalintaikkunat ja ROMFS:n tiedoston/mallin lisäyksen käyttämään yksinkertaista tiedostotunnistetta täydellisen tunnisteen sijaan, mikä estää tunnisteiden sotkeutumisen nimettäessä uudelleen tiedostoja, joiden nimissä on pisteitä. (52c6820d2)

  • Korjasi DFU-latauksen edistymispalkin ylivuodon suurissa siirroissa laskemalla prosenttiosuuden 64-bittisellä aritmetiikalla. (4b91ff2ba)

  • Korjasi vanhempien OpenMV-laiteohjelmistojen/käynnistyslataimien flashauksen suojaamalla flash-tyhjennys- ja ohjelmointivaiheet kelvottomilta (ei-positiivisilta) flash-sektorialueilta ja näyttämällä selkeän virheen kaatumisen sijaan, sekä korjasi ROMFS-pääsysuojan vanhan laiteohjelmiston päivityksen aikana. (ae2cc15b4, 235dbdb10)

  • Korjasi sarjaporttipohjaisen kortin tunnistuksen niin, että sarjanumeron käänteissuodatinta sovelletaan vain portin vahvistuksen aikana (ei yhdistämisen aikana), ja lisäsi käänteissuodattimet i.MX-kortille, jotta käynnistyslatain-tilan sarjanumerot suljetaan pois. (ae2cc15b4)

  • Korjasi korttityypin säilyvyyden niin, että aiemmin tallennettua korttimäärittelyä ei enää korvata, kun manuaalinen korttityypin valinta tehdään. (c42d36001)

  • Käynnistyslataimen korjaus selvittää nyt piilotetun kortin näyttönimen sen arkkitehtuurimerkkijonoksi, jotta uudelleenyhdistäminen/laiteohjelmiston korjaus kohdistaa oikean kortin. (a1de7a09c)

  • Kortin tunnistus vertaa nyt korttien arkkitehtuurimerkkijonoja kirjainkoosta riippumatta. (7a2e0e93f)

  • Korjasi laitelevyn liittämisen epäonnistumisen nopeassa irrotuksessa/uudelleenkytkennässä säilyttämällä asemanskannaussäikeen ja yrittämällä asemanskannauksia uudelleen jopa kolme kertaa, sekä varmisti, että asemanskannaus suoritetaan luotettavasti skannaussäikeessä. (455dbe967, 58c0e5456)

  • Korjasi mallikääntäjän (ST Edge AI ja Vela) epäonnistumisen Intel-Maceilla sallimalla ARM64-työkalupolun Rosettan alla ajettaessa. (32e309e86)

  • Korjasi Python-työkalun ja kieliserverin välimuistiongelmat ohjaamalla kaikki mukana toimitetut Python __pycache__ -tiedostot jaettuun resurssihakemistoon ja esilämmittämällä i.MX blhost-pycachen ennen aikarajoitettua käynnistyslatainyhteyttä, jotta flashaus ei enää aikakatkea. (f64f3330f)

  • Korjasi Python-kieliserverin (automaattitäydennystä varten) käyttämän MicroPython-otsikkopolun selviämään kaikkien käyttäjien resurssipolusta ja teki kaikkien käyttäjien resurssipolun haun vankemmaksi, kun käyttäjänimisuodatus ei löydä mitään. (5f2648565, fc1938818)

  • Korjasi rikkinäiset ST Edge AI -dokumentaatiolinkit kääntäjäasetusten valintaikkunassa muuntamalla paikalliset tiedostopolut oikeiksi file://-URL-osoitteiksi. (3ac136444)

  • Korjasi Python-editorin automaattisen sisennyksen niin, ettei rivejä enää virheellisesti poisteta sisennyksestä kaksoispisteeseen päättyvän (sähköisen) rivin jälkeen, esim. if/for/def-otsikoiden jälkeen. (6555f44ba)

  • Korjasi ROMFS-hakemistotietueen tasauksen niin, että kansio-offsetit huomioivat hakemistonimitietueen koon, ja kasvatti tiedostojen välistä viivettä ROMFS- ja mallizoo-tiedostoja purettaessa/luotaessa erillisten luontiaikaleimojen varmistamiseksi. (9bf7e1d9e, d968a6e46)

  • Korjasi kokonaislukuylivuodon Vela-graafioptimoijan mean-to-depthwise-conv-muunnoksessa laskemalla ulostulokertoimen 64-bittisesti, ja korjasi Vela-kääntäjän valintaikkunan otsikossa/tulosteessa käytetyn perusnimen. (d217a46e9, 8376490eb)

  • Korjasi mallizoo-selaimen laajennettujen kansioiden ja valitun mallin palauttamisen uudelleenavauksessa ja vaihtoi valintaikkunan keko-allokointiin GUI:n elinkaariongelmien välttämiseksi. (84a63ef4c)

  • Korjasi Model Zoon tallenna nimellä -polun niin, että muistettu hakemisto tallennetaan kansiona eikä täytenä tiedostonimenä. (be877f7af)

  • Säilytti vanhan käyttäjäresurssipolun sen sijaan, että olisi poistanut sen käynnistyksessä, mikä välttää ”close any programs viewing OpenMV IDE data” -virheen, kun vanha kansio on lukittuna. (775656775)

  • Korjasi Windowsin ajurin asennusskriptit sekä catalog/inf-tiedostot niin, että OpenMV DFU-, dfuse-, FTDI-, Arduino-, pybcdc- ja VCR-ajurit asentuvat luotettavasti ja raportoivat onnistumiskoodit oikein, kovensi dfuse/vcr-DFU-ajurin asennusskriptejä ja allekirjoitti uudelleen mukana toimitetut OpenMV DFU -ajurikatalogit. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)

  • Korjasi Linux-asennusohjelman asentamaan pyusb-paketin jakelun python3-usb-paketin kautta ja lisäämään build-essential-paketin sen sijaan, että ajettaisiin pip install pyusb, sekä tunnistamaan käyttöjärjestelmän /etc/os-release-tiedoston kautta. (c471ddc42, 4014a0ba5)

  • Windows-asennusohjelma ottaa nyt käyttöön pitkien polkujen tuen, jotta syvälle sisäkkäin asetetut ST Edge AI -tiedostot asentuvat oikein. (0b3ca6945)

Alusta- ja työkalutuki

  • Qt Creator -pohja: 14.0.2.

  • Mukana toimitettu OpenMV-laiteohjelmisto: päivitetty versioon 4.7.0 kaikilla OpenMV- ja Arduino-korteilla (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6); laiteohjelmisto rakennettiin uudelleen ROMFS-tuella (romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)

  • OpenMV N6 ROMFS: kasvatettu 16 Mt:sta 24 Mt:hen, ja romfs-kuva siirretty DFU-alt-asetukseen 3. (d0bbb1fe7, d7d3120b3)

  • OpenMV AE3 ROMFS: kasvatettu 16 Mt:sta 24 Mt:hen, ja mukana toimitetuille .bin-mallitiedostoille lisättiin 16/32 tavun tasaussäännöt kaikilla korteilla. (746da8914)

  • STM32CubeProgrammer (STM32_Programmer_CLI) toimitettiin mukana macOS:lle, Linuxille ja Windowsille täydellä STM32-laitetietokannalla ja ulkoisilla lataimilla N6:n tehdasohjelmointia varten; asennuksesta karsittiin käyttämättömät ulkoisten lataimien ja MCU-kohtaiset tietokantatiedostot koon pienentämiseksi. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)

  • ST Edge AI (stedgeai) -kääntäjä 2.1.0 toimitettiin mukana (Windows) N6:n Neural-ART NPU:lle. (3064411ad)

  • ARM Ethos-U Vela -kääntäjä 4.2.0 (numpy 2.2.4:llä) toimitettiin mukana Linux x86-64:lle, macOS:lle (Apple silicon) ja Windowsille. Windows-paketti lisättiin ensin versiolla Vela 4.1.0 / numpy 2.2.3 ja nostettiin myöhemmin lopulliseen versioon 4.2.0 / numpy 2.2.4. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)

  • mpy-cross 1.25.0.post2 toimitettiin mukana (macOS/Windows). (8c71548df, 3ab42d58a)

  • Alif Security Toolkit: päivitetty versioon v1.104.0 (allekirjoitetut setools-binäärit ja v1.104.0 User Guide PDF) Alif Ensemble -pohjaisille korteille. (43260719c, 75a58e61b)

  • Lisäsi OPENMV_AE3 (Alif Ensemble) NPU-kokoonpanot, jotka kohdistuvat ethos-u55-256- ja ethos-u55-128-kiihdyttimille RTSS HP/HE SRAM/MRAM/OSPI -järjestelmäkokoonpanoilla. (1f5fc546d, 411f708ea)

  • Lisäsi pinout-kaaviot OpenMV N6- ja AE3-kameroille (PAG7936-sensori) pinout-valitsimeen sekä uuden Genx320-harmaasävytapahtumakamera-esimerkin, joka havainnollistaa välkynnänestosuodattimen määrittämistä. (60184bbc5, 6d04b1b50)

  • Päivitti Arduino Nicla Vision USB PID -tunnistuksen tunnistamaan uuden sovellus-PID:n (0x055F) alkuperäisen (0x045F) rinnalla. (91ce4007c)

  • Päivitti NXP/blhost-suojatun käynnistyslataimen flashausparametrit käyttämään eksplisiittistä FCB-osoitetta/-pituutta ja MBR-levykokoa, mikä mukautuu uusimpaan spsdk-työkalupakettiin. (16b66c3e2)

  • Windows-asennusohjelma toimittaa nyt mukana erillisen STM32 DFU -käynnistyslatainajurin ja Microsoft Visual C++ 2015+ -uudelleenjaettavat paketit. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)

  • Poisti mukana toimitetun DeGirum YOLOv5/YOLOv8 -mallizoon IDE:stä. (26710be1c)

Yhteensopivuuden rikkovat muutokset

Käyttäjälle näkyvät työnkulun ja toiminnan rikkoutumiset versiossa v4.7.0. Skriptaus-API:hin ei tule rikkoutumista, mutta huomioi seuraavat:

  • FAT-tiedostojärjestelmä tyhjennetään pre-4.7.0-päivityksessä. Minkä tahansa OpenMV Camin päivittäminen pre-4.7.0-laiteohjelmistosta pakottaa nyt FAT-tiedostojärjestelmän tyhjentämisen ja ROMFS:n nollaamisen/päivittämisen laiteohjelmistopäivityksen aikana (valintaikkunan valintaruudut pakotetaan päälle eikä niitä voi poistaa käytöstä), joten laitteen sisäiseen flash-muistiin tallennetut käyttäjätiedostot pyyhitään päivityksessä. (f6f3355b0)

  • UVC-laiteohjelmisto ja Portenta H7 -käynnistyslatainbinäärit poistettu. Esikäännetyt UVC-verkkokameran laiteohjelmistokuvat (uvc.bin/dfu/elf) poistettiin kaikilta korteilta, ja Arduino Portenta H7 -käynnistyslatainbinäärit poistettiin paketista; näitä esikäännettyjä kuvia ei voi enää flashata IDE:stä. (c44e33d70)

  • Resurssihakemiston siirto. Ladattavat IDE-resurssit (laiteohjelmisto, mallizoo, dokumentaatio) asentuvat nyt jaettuun kaikkien käyttäjien sovellustietohakemistoon käyttäjäkohtaisen resurssipolun sijaan, ja versiomanifesti siirtyi QSettingsistä OpenMVIDE.json-tiedostoon, joka tallennetaan yhden tason kaikkien käyttäjien resurssikansion yläpuolelle (taaksepäin yhteensopivalla QSettings-peilauksella). Resurssien uudelleenlataus käynnistetään ensimmäisellä ajolla päivityksen jälkeen. (be308ace2, 7c7dddb87)