v4.7.0

v4.7.0 je veliko izdanje usmjereno na NPU i ROMFS, izgrađeno na Qt Creatoru 14.0.2. Uvodi tijek rada za ROM datotečni sustav na uređaju s integriranim prevoditeljima modela ARM Ethos-U (Vela) i ST Edge AI, dodaje tvorničko programiranje OpenMV N6 temeljeno na STM32CubeProgrammeru te uključuje OpenMV ugrađeni program (firmware) 4.7.0 na svim pločama. Imajte na umu da nadogradnja bilo koje kamere s ugrađenog programa starijeg od 4.7.0 sada prisilno briše FAT datotečni sustav i ponovno postavlja ROMFS, čime se brišu datoteke pohranjene na internoj flash memoriji uređaja; pogledajte Promjene koje narušavaju kompatibilnost u nastavku.

Istaknuto

  • Tijek rada za ROM datotečni sustav omogućuje stvaranje, uređivanje, upisivanje u flash i ponovno postavljanje datotečnog sustava samo za čitanje na uređaju, tako da se ML modeli mogu pohraniti na kameru, integrirano kroz pokretače (bootloader) DFU, IMX, Bossac, Picotool i Arduino-DFU. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)

  • Prevoditelji modela ARM Ethos-U Vela i ST Edge AI sada su integrirani, pa se .tflite/.onnx modeli automatski prevode za NPU prilikom učitavanja na ploče Ethos-U55 (OpenMV AE3) ili Neural-ART (OpenMV N6). (411f708ea, 3064411ad)

  • STM32CubeProgrammer sada je uključen kako bi omogućio tvorničko programiranje pokretača (bootloader) za OpenMV N6 (STM32N657) putem FlashLayout.tsv. (334b04dbd, 54fea4d57, 28cc94a6e)

  • Preglednik Model Zoo dobiva potvrdni okvir „Filtriraj modele prema vrsti ploče” koji pokreće nova tablica models/index.csv koja skriva modele nekompatibilne s povezanom pločom. (80adb2079)

  • Poravnanje ROMFS-a po nastavku: uređivač ROMFS slike sada sortira datoteke abecedno i pakira ih pomoću pravila bajt-poravnanja iz settings.json (npr. .tflite modeli poravnani na 16 bajtova). (e87b2bf06)

  • Uključeni ugrađeni program (firmware) ažuriran na 4.7.0 na svim OpenMV i Arduino pločama. (6d04b1b50, d0bbb1fe7, d7d3120b3)

Nove značajke

  • Podizbornik ROM datotečnog sustava (New / Open / Edit ROMFS on OpenMV Cam / Reset ROMFS on OpenMV Cam) zamjenjuje staru jedinstvenu radnju Edit ROM File System. (0bc275a0a, 958f732b5)

  • Otvori preglednik Model Zoo s trajnim stanjem odabranog modela i pretpregledom pri promjeni odabira, uključujući uključene biblioteke modela tvrtki STMicroelectronics, Qualcomm, DeGirum, Edge Impulse i Google. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)

  • Stavka izbornika Convert Model for NPU pod Machine Vision Tools prevodi TensorFlow Lite (.tflite) ili ONNX (.onnx) model za NPU akcelerator ploče (Vela za Ethos-U .tflite, ST Edge AI za N6 Neural-ART .tflite/.onnx) i sprema pretvoreni model na disk ili kameru. (3913f5b8b)

  • Alat Copy/Convert Python File kopira Python skriptu na kameru ili disk te je opcionalno unakrsno prevodi u MicroPython .mpy bajt-kod putem mpy-cross; nalazi se u novom podizborniku MicroPython Tools pod Tools. (e9d7fa143, 47188c0e3)

  • Gumbi za uključivanje/isključivanje Wrap Text dodani su u OpenMV serijski terminal i okno izlaza General Messages; oba prelamaju svoj izlaz po riječima i trajno čuvaju postavku kroz sesije. (8c052845a, 51d3e1ad6)

  • mpy-cross unakrsno prevođenje za ROMFS s arhitekturnim zastavicama po ploči (armv7emsp/armv7emdp) omogućuje zamrzavanje MicroPython skripti u ROMFS slike. (8c71548df)

  • Dijalog pokretača (bootloader) ugrađenog programa sada prihvaća *.img ROMFS datoteke uz *.bin i *.dfu, provjerava nastavke za svaki pokretač i onemogućuje postojeći potvrdni okvir Reset ROMFS file system prilikom učitavanja *.img datoteke. (79f348b36)

  • Nadogradnje s verzija starijih od 4.7.0 sada prisilno uključuju potvrdne okvire za brisanje FAT-a i ponovno postavljanje/ažuriranje ROMFS-a te upozoravaju da nadogradnja zahtijeva brisanje FAT datotečnog sustava. (f6f3355b0)

Ostale promjene i poboljšanja

  • Reorganiziran je uključeni Qualcomm model zoo u mape temeljene na zadacima (image_classification, object_detection, pose_estimation, semantic_segmentation, depth_estimation), uklonjeni su nepodržani veliki modeli (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2), a dodani su resnet18 i densenet_121 (sa širom kompatibilnošću ploča), te facemap_3dmm i FFNet_40S (samo AE3/N6). (300ce2fc2)

  • Dodan je novi dobavljač modela Edge Impulse (FOMO model za detekciju lica) i novi Google modeli (micro_speech, mnist_lstm, person_detection) u uključeni model zoo, te je dodana radnja View/Edit u kontekstni izbornik ROMFS uređivača. (80adb2079)

  • Pročišćene su poveznice za model zoo: dodan je Qualcomm face_attrib_net model (AE3/N6), uklonjena je neispravna YOLO-NAS stavka i ispravljeni su filtri kompatibilnosti ploča za nekoliko STMicroelectronics modela za detekciju objekata. (fd639bda0)

  • Dodano je više oznaka modela, NPU akcelerator konfiguracija jednog modela prebačena je s stai na stedgeai, a proširen je filter kompatibilnosti ploča za st_yolo_x (sada uz AE3/N6 i OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7 te NICLA_VISION). (1515631ce)

  • Dodavanje .tflite modela u ROMFS sada preskače Vela/Ethos-U prevođenje ako je model već Ethos-U preveden (samo se kopira), a radnja dijaloga preimenovana je iz Add Model u Model Zoo. (9c0b178fa)

  • ST Edge AI prevođenje preskače pretvorbu za modele koji su već u NBIN formatu. (3064411ad)

  • Dijalog Vela prevoditelja raščlanjuje prijavljenu SRAM potrošnju modela u odnosu na konfiguriranu veličinu heapa svake ploče i prikazuje postotak s upozorenjima/pogreškama kada model premaši 90% ili 100% dostupnog heapa. (7140fc2aa)

  • Vela prevoditelj sada prijavljuje jasnu pogrešku „not supported on this platform” umjesto da tiho ne uspije, a ispuštanje modela u model zoo više ne zahtijeva prisutnost Vele. (c736dd54d, 0ad7fd705)

  • Vela Ethos-U prevoditelj sada se pokreće putem uključenog ugrađenog Python okruženja (python -m ethosu.vela) umjesto kao samostalni binarni program. (52f9b8820)

  • Dugotrajni dijalozi prevođenja modela ST Edge AI i Vela sada prikazuju obavijest „This command takes a while to execute. Please be patient.”. (fc9ac2ab5)

  • Otvaranje primjera ili novih skripti na senzorima PAG7936 (N6/AE3) i PS5520 sada automatski podiže sensor.set_framesize(QVGA) na VGA za senzore veće razlučivosti. (dfc27dd25)

  • Dodan je automatski popravak primjera skripti za FLIR Boson 320/640 termalne kamere, PixArt PAG7920/PAJ6100, FROGEYE2020 i Prophesee GENX320 događajnu kameru. (1f54ad01b)

  • Resursi IDE-a koji se mogu preuzeti (ugrađeni program/modeli/dokumentacija) sada se instaliraju u zajednički direktorij aplikacijskih podataka za sve korisnike putem novog ICore::allUsersResourcePath() API-ja, pri čemu se manifest verzije resursa pohranjuje u OpenMVIDE.json datoteku jednu razinu iznad mape resursa za sve korisnike. (be308ace2, 7c7dddb87)

  • Tijekom ažuriranja ugrađenog programa Alif sistemskog paketa IDE sada traži od korisnika da isključi i ponovno uključi napajanje (odspoji i ponovno spoji) kamere prije nastavka. (162d128f9, 756611696)

  • Preoblikovan je tijek preuzimanja pokretača (bootloader)/ugrađenog programa za Alif (Ensemble) kako bi bio kompatibilan s ROMFS-om: generira App TOC nakon upisivanja pokretača, kopira bin/sign slike u podmapu images/ i upisuje firmware_pad.toc u flash. (f623c9231)

  • Pojednostavljena su prikazana imena ploča u biraču ugrađenog programa uklanjanjem suvišnih sufiksa s čipom u zagradama i „Legacy” oznaka (npr. „OpenMV Cam H7 (STM32H743)” postaje „OpenMV Cam H7”). (334b04dbd)

  • Preimenovane su dvije radnje iz izbornika Tools radi jasnoće: Run Bootloader (Load Firmware) sada je Load Custom Firmware, a Erase Onboard Data Flash sada je Erase Internal FAT File System (dijalog potvrde sada se odnosi na internu kameru FAT datotečnog sustava). (0bc275a0a)

  • Vraćeni su tipkovni prečaci Ctrl+Shift+L (Load Custom Firmware) i Ctrl+Shift+E (Erase Internal FAT File System), a stavka Preferences premještena je natrag u izbornik Edit. (dabb6f7d9, b5daf59a6)

  • Onemogućeno je automatsko otkrivanje C/C++ prevoditelja i alatnog lanca pri pokretanju, budući da IDE cilja MicroPython. (f42fcc8f2)

  • Dodan je partnerski logotip Alif Semiconductor (svijetli/tamni) u odjeljak partnera dijaloga About. (4878781bb)

  • Čitanje ugrađenog programa povezane ploče sada može isprazniti zastarjele podatke serijskog porta prije izdavanja naredbe, čime se poboljšava pouzdanost upita o ugrađenom programu/verziji. (c15a46f5b)

  • Poboljšana je pouzdanost ROMFS veze prisilnim ponovnim povezivanjem/osvježavanjem pri operacijama čitanja, pisanja i ponovnog postavljanja ROMFS-a. (f9bc83007)

Ispravci grešaka

  • Ispravljeni su dijalozi za spremanje modela/skripti te ROMFS dodavanje datoteke/dodavanje modela kako bi koristili jednostavan nastavak datoteke umjesto potpunog nastavka, čime se sprječavaju iskrivljeni nastavci pri preimenovanju datoteka s točkama u imenima. (52c6820d2)

  • Ispravljeno je prelijevanje trake napretka DFU prijenosa pri velikim prijenosima izračunavanjem postotka 64-bitnom aritmetikom. (4b91ff2ba)

  • Ispravljeno je upisivanje starijeg OpenMV ugrađenog programa/pokretača (bootloader) zaštitom koraka brisanja i programiranja flash memorije od nevažećih (nepozitivnih) raspona flash sektora te prikazivanjem eksplicitne pogreške umjesto rušenja, a ispravljena je i zaštita pristupa ROMFS-u tijekom nadogradnje starog ugrađenog programa. (ae2cc15b4, 235dbdb10)

  • Ispravljeno je otkrivanje ploče putem serijskog porta tako da se inverzni filter serijskog broja primjenjuje samo tijekom provjere porta (ne tijekom povezivanja), te su dodani inverzni filtri za i.MX ploču kako bi se isključili serijski brojevi u načinu rada pokretača (bootloader). (ae2cc15b4)

  • Ispravljeno je trajno čuvanje vrste ploče tako da se prethodno spremljeno mapiranje ploče više ne prepisuje kada se ručno odabere vrsta ploče. (c42d36001)

  • Popravak pokretača (bootloader) sada razrješava prikazano ime skrivene ploče u njezin arhitekturni niz, tako da ponovno povezivanje/popravak ugrađenog programa mapira ispravnu ploču. (a1de7a09c)

  • Otkrivanje ploče sada uspoređuje arhitekturne nizove ploča neovisno o veličini slova. (7a2e0e93f)

  • Ispravljeno je neuspjelo montiranje diska uređaja pri brzom odspajanju/ponovnom spajanju trajnim čuvanjem niti za skeniranje pogona i ponavljanjem skeniranja pogona do tri puta, a skeniranje pogona pouzdano se izvodi na niti za skeniranje. (455dbe967, 58c0e5456)

  • Ispravljen je neuspjeli rad prevoditelja modela (ST Edge AI i Vela) na Intel Macovima dopuštanjem ARM64 putanje alata pri pokretanju pod Rosettom. (32e309e86)

  • Ispravljeni su problemi s predmemorijom Python alata i jezičnog poslužitelja preusmjeravanjem svih uključenih Python __pycache__ direktorija u zajednički direktorij resursa i predzagrijavanjem i.MX blhost predmemorije prije vremenski ograničenog povezivanja pokretača (bootloader), tako da upisivanje u flash više ne istekne. (f64f3330f)

  • Ispravljena je MicroPython putanja zaglavlja koju koristi Python jezični poslužitelj (za automatsko dovršavanje) kako bi se razriješila iz putanje resursa za sve korisnike, a traženje putanje resursa za sve korisnike učinjeno je robusnijim kada filtriranje korisničkog imena ne pronađe ništa. (5f2648565, fc1938818)

  • Ispravljene su neispravne poveznice na ST Edge AI dokumentaciju u dijalogu opcija prevoditelja pretvaranjem lokalnih putanja datoteka u ispravne file:// URL-ove. (3ac136444)

  • Ispravljeno je automatsko uvlačenje u Python uređivaču tako da se redovi više ne uvlače pogrešno unatrag nakon reda koji završava dvotočkom (električnog), npr. nakon zaglavlja if/for/def. (6555f44ba)

  • Ispravljeno je poravnanje zapisa ROMFS direktorija tako da pomaci mapa uzimaju u obzir veličinu zapisa imena direktorija, a povećano je kašnjenje između datoteka pri raspakiravanju/stvaranju ROMFS i model-zoo datoteka kako bi se osigurale različite vremenske oznake stvaranja. (9bf7e1d9e, d968a6e46)

  • Ispravljeno je prelijevanje cijelog broja u Vela optimizatoru grafa pri pretvorbi mean-to-depthwise-conv izračunavanjem izlaznog množitelja u 64-bitu, a ispravljeno je i osnovno ime korišteno u naslovu/izlazu dijaloga Vela prevoditelja. (d217a46e9, 8376490eb)

  • Ispravljeno je vraćanje proširenih mapa i odabranog modela preglednika model zoo-a pri ponovnom otvaranju, a dijalog je prebačen na alokaciju na heapu kako bi se izbjegli problemi s vijekom trajanja GUI-ja. (84a63ef4c)

  • Ispravljena je putanja spremanja kao u Model Zoo-u tako da se zapamćeni direktorij pohranjuje kao mapa, a ne kao potpuno ime datoteke. (be877f7af)

  • Zadržana je naslijeđena putanja korisničkih resursa umjesto njezina brisanja pri pokretanju, čime se izbjegava pogreška „close any programs viewing OpenMV IDE data” kada je stara mapa zaključana. (775656775)

  • Ispravljene su skripte instalacijskog programa za Windows upravljačke programe te catalog/inf datoteke kako bi se OpenMV DFU, dfuse, FTDI, Arduino, pybcdc i VCR upravljački programi pouzdano instalirali i ispravno prijavljivali kodove uspjeha, ojačane su skripte za instalaciju dfuse/vcr DFU upravljačkog programa, a ponovno su potpisani uključeni katalozi OpenMV DFU upravljačkog programa. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)

  • Ispravljen je Linux instalacijski program tako da pyusb instalira putem distribucijskog paketa python3-usb i dodaje build-essential umjesto pokretanja pip install pyusb, te da otkriva OS putem /etc/os-release. (c471ddc42, 4014a0ba5)

  • Windows instalacijski program sada omogućuje podršku za duge putanje kako bi se duboko ugniježđene ST Edge AI datoteke ispravno instalirale. (0b3ca6945)

Podrška za platforme i alate

  • Qt Creator osnova: 14.0.2.

  • Uključeni OpenMV ugrađeni program: ažuriran na 4.7.0 na svim OpenMV i Arduino pločama (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6); ugrađeni program ponovno je izgrađen s podrškom za ROMFS (romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)

  • OpenMV N6 ROMFS: povećan s 16 MB na 24 MB, uz romfs sliku premještenu na DFU alt-setting 3. (d0bbb1fe7, d7d3120b3)

  • OpenMV AE3 ROMFS: povećan s 16 MB na 24 MB, uz pravila poravnanja na 16/32 bajta dodana za uključene .bin datoteke modela na svim pločama. (746da8914)

  • STM32CubeProgrammer (STM32_Programmer_CLI) uključen za macOS, Linux i Windows s potpunom STM32 bazom podataka uređaja i vanjskim učitavačima za tvorničko programiranje N6; instalacija je očišćena od nekorištenih vanjskih učitavača i datoteka baze podataka po pojedinom MCU-u radi smanjenja veličine. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)

  • ST Edge AI (stedgeai) prevoditelj 2.1.0 uključen (Windows) za N6 Neural-ART NPU. (3064411ad)

  • ARM Ethos-U Vela prevoditelj 4.2.0 (s numpy 2.2.4) uključen za Linux x86-64, macOS (Apple silicon) i Windows. Windows paket prvo je dodan s Velom 4.1.0 / numpy 2.2.3, a kasnije podignut na konačnu verziju 4.2.0 / numpy 2.2.4. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)

  • mpy-cross 1.25.0.post2 uključen (macOS/Windows). (8c71548df, 3ab42d58a)

  • Alif Security Toolkit: ažuriran na v1.104.0 (potpisani setools binarni programi i v1.104.0 User Guide PDF) za ploče temeljene na Alif Ensemble. (43260719c, 75a58e61b)

  • Dodane su OPENMV_AE3 (Alif Ensemble) NPU konfiguracije usmjerene na akceleratore ethos-u55-256 i ethos-u55-128 s RTSS HP/HE SRAM/MRAM/OSPI sistemskim konfiguracijama. (1f5fc546d, 411f708ea)

  • Dodani su dijagrami rasporeda pinova za OpenMV N6 i AE3 kamere (PAG7936 senzor) u birač rasporeda pinova, te novi Genx320 primjer s događajnom kamerom u sivim tonovima koji demonstrira konfiguraciju filtra protiv treperenja. (60184bbc5, 6d04b1b50)

  • Ažurirano je podudaranje USB PID-a za Arduino Nicla Vision kako bi se prepoznao novi aplikacijski PID (0x055F) uz izvorni (0x045F). (91ce4007c)

  • Ažurirani su parametri upisivanja u flash za NXP/blhost sigurni pokretač (bootloader) kako bi se koristila eksplicitna FCB adresa/duljina i MBR veličina diska, u skladu s najnovijim spsdk alatom. (16b66c3e2)

  • Windows instalacijski program sada uključuje namjenski STM32 DFU upravljački program pokretača (bootloader) i Microsoft Visual C++ 2015+ redistribucijske pakete. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)

  • Uklonjen je uključeni DeGirum YOLOv5/YOLOv8 model zoo iz IDE-a. (26710be1c)

Promjene koje narušavaju kompatibilnost

Promjene u tijeku rada i ponašanju vidljive korisniku u v4.7.0. Nema promjena koje narušavaju skriptni API, ali imajte na umu sljedeće:

  • FAT datotečni sustav briše se pri nadogradnji s verzija starijih od 4.7.0. Nadogradnja bilo koje OpenMV Cam kamere s ugrađenog programa starijeg od 4.7.0 sada prisilno briše FAT datotečni sustav i ponovno postavlja/ažurira ROMFS tijekom ažuriranja ugrađenog programa (potvrdni okviri dijaloga prisilno su uključeni i ne mogu se onemogućiti), pa će se korisničke datoteke pohranjene na internoj flash memoriji uređaja izbrisati pri nadogradnji. (f6f3355b0)

  • Uklonjeni UVC ugrađeni program i Portenta H7 binarni programi pokretača (bootloader). Unaprijed izgrađene slike UVC webcam ugrađenog programa (uvc.bin/dfu/elf) uklonjene su za sve ploče, a binarni programi pokretača za Arduino Portenta H7 uklonjeni su iz paketa; te se unaprijed izgrađene slike više ne mogu upisivati u flash iz IDE-a. (c44e33d70)

  • Premještanje direktorija resursa. Resursi IDE-a koji se mogu preuzeti (ugrađeni program, model zoo, dokumentacija) sada se instaliraju u zajednički direktorij aplikacijskih podataka za sve korisnike umjesto u putanju resursa po korisniku, a manifest verzije premješten je iz QSettings u OpenMVIDE.json datoteku pohranjenu jednu razinu iznad mape resursa za sve korisnike (uz unatrag kompatibilno zrcaljenje u QSettings). Ponovno preuzimanje resursa pokreće se pri prvom pokretanju nakon nadogradnje. (be308ace2, 7c7dddb87)