v4.8.1¶
v4.8.1 je postaveno na Qt Creator 14.0.2 a soustředí se na nový vysoce spolehlivý protokol kamery OpenMV V2, vestavěný Code Profiler a pracovní postup ukládání, který ponechá kameru připojenou místo jejího odpojení. Přibalený firmware a kompletní sada příkladů jsou aktualizovány na 4.8.1. Nedochází k žádným změnám skriptovacího API, ale chování „ukládání již neodpojuje“ a odstranění několika sériových přepínačů při spuštění jsou pro uživatele viditelné změny pracovního postupu.
Hlavní novinky¶
OpenMV Protocol V2 je nový vysoce spolehlivý komunikační stack kamery (
OMVCamera/OMVTransport/OMVDebug) s CRC32, sekvencováním, ACK/NAK, opětovným přenosem, událostmi a fragmentací. Je automaticky vyjednán při připojení a řídí reset, bootování, streamování, spouštění skriptů a statistiky.Code Profiler je nové okno (
Window>Show Code Profiler), které z kamery získává záznamy profilování pro jednotlivé funkce a zobrazuje počty volání, min/max/celkové/průměrné mikrosekundy (μs), průměrné cykly, procenta a čítače událostí v seřaditelné tabulce.Ukládání na místě již neodpojuje disk kamery; IDE nyní zapíše
main.pya vyprázdní svazek na disk, takže zařízení zůstává připojené.Detekce více senzorů hlásí každou kameru na desce, zobrazenou ve stavovém řádku jako
Sensors: X, Ys hlavním senzorem uvedeným jako první.Dynamické čtení snímků přepočítává nejvhodnější rozlišení surového streamování pro každý formát pixelů a automaticky překonfiguruje stream.
Přibalený firmware a příklady jsou aktualizovány na 4.8.1 napříč všemi deskami a přidávají nové příklady pro událostní kameru GenX320, TensorFlow ML, Alif OLED a štíty LCD/Touch-LCD.
Nové funkce¶
Přidán komunikační protokol OpenMV V2: kompletní transportní a transakční vrstva s CRC32, sekvencováním, ACK/NAK, opětovným přenosem, událostmi a fragmentací, plus třída
OMVCameraautomaticky vyjednaná při připojení a integrovaná do sériového ovladače (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).Přidáno okno Code Profiler (
Window>Show Code Profiler), které získává záznamy profilování pro jednotlivé funkce a zobrazuje počty volání, min/max/celkové/průměrné mikrosekundy (μs), průměrné cykly, procenta a čítače událostí, přičemž adresy převádí na symboly pomocí přibaleného ELF parseru ELFIO (019d3cd2c, 57cd9e1cc).Přidán dialog Debug Protocol Settings zobrazující živé System Info, Host Stats a Device Stats obnovované každou sekundu, který odhaluje rychlosti dotazování pro jednotlivé kanály plus ovládací prvky pro kombinované vs. rozdělené dotazování (5220a6125, 0da2f79d0).
Přidána detekce více senzorů: deska s více než jednou kamerou je hlásí všechny ve stavovém řádku jako
Sensors: X, Y, hlavní senzor jako první (cebc79ce7).Přidáno Dynamické čtení snímků (ve výchozím nastavení zapnuto), které přepočítává nejvhodnější rozlišení surového streamování pro každý formát pixelů (
BINARY,GRAY,RGB565,ARGB8,JPEG,PNG) a překonfiguruje stream (75c073bdb, 0da2f79d0).Přidáno dekódování framebufferu pro surové formáty pixelů
BINARY(1bpp mono) aARGB8(32bitová alfa), takže se tyto typy obrazu nyní vykreslují v prohlížeči (dabb82062).Ve Windows nyní Connect vyhledává USB zařízení, která operační systém označil jako problematická, a varuje seznamem vadných zařízení, jež mohou blokovat připojení (1a5beb081, 1b59cd78e).
Přidán indikátor registrace ve stavovém řádku: zelené tlačítko
Registerednebo korálovéUnregisteredpro připojenou kameru, na které lze kliknout a desku zaregistrovat (a8c98a4b9).Prohlížeč framebufferu nyní může místo obrazu zobrazit vystředěnou textovou zprávu odeslanou z běžícího skriptu pomocí nového řídicího kódu
FB_MESSAGE(530048201).Přidány nové položky model-zoo: modely odhadu hloubky ST FastDepth (224/256/320), model pózy ST head-landmarks, modely ruky pro detekci dlaně a hand-landmarks a model BlazeFace pro detekci čelní tváře (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).
Přidán samočinný testovací skript dostupný pouze v továrním sestavení (kamera, IMU, ToF, WiFi, LAN), který je přibalen a automaticky otevřen při spuštění v tovární variantě IDE (0db7fbbb0); část testu týkající se RT1060 LAN je momentálně zakázána (48370d022).
Další změny a vylepšení¶
Ukládání na místě: uložení skriptu již neodpojuje disk kamery; IDE zapíše
main.pya vyprázdní svazek na disk (FlushFileBuffersve Windows,syncfsv Linuxu,sync_volume_np/F_FULLFSYNCv macOS), takže zařízení zůstává připojené (1614c572f, 6928b51ea, 35ed53967).Akce na panelu nástrojů spuštěné v době, kdy je kamera zaneprázdněna (zakázat framebuffer, JPEG komprese, uložit skript, konfigurovat nastavení), jsou nyní zařazeny do fronty a spuštěny automaticky, jakmile je zařízení volné, místo zobrazení chybového dialogu Busy (f4315f0a4).
Prohlížeč framebufferu nyní ve výchozím nastavení přizpůsobí obraz oknu, takže se při spuštění automaticky škáluje na velikost okna, a výstupní panel sériového terminálu je nyní při spuštění zobrazen ve výchozím nastavení (f3ce4dc75).
Zkompilované soubory modelů s příponou
.litejsou nyní rozpoznávány všude: filtrování a zobrazení v prohlížeči model-zoo, zarovnání ROMFS firmwaru a kompilátory Vela/STEdge AI nyní vytvářejí výstup.lite(f3ce4dc75).Dialog kompilace modelu STEdge AI (N6) nyní analyzuje a hlásí procentuální využití NPU RAM a hyperRAM a kopíruje přemístěný výstup sítě do souboru odpovídajícího příponě modelu (f3ce4dc75).
Prohlížeč model-zoo nyní zobrazuje sloupec Size se souborem a roztahuje sloupec s názvem tak, aby se vešel, místo skrývání velikosti (f3ce4dc75).
Šablona nového skriptu byla aktualizována na nové API modulu
csia ve výchozím nastavení používá velikost snímku VGA a přibalený příklad Hello World byl přepnut z velikosti snímku QVGA na VGA (f3ce4dc75).Dialog Convert Video byl přepsán tak, aby používal sdílený dialog načítání s barevným výstupem, zprávami o úspěchu/neúspěchu, tlačítkem OK pro zavření a jasnou chybou, když FFMPEG není na dané platformě k dispozici (f56efc7be).
Prohlížeč framebufferu nyní zobrazí blikající varování, když je obraz
JPEG/PNGpříliš velký na uložení do bufferu a odeslání, prostřednictvím nového řídicího kóduFB_BUFFER_ERROR(fda826126).Vstup do DFU bootloaderu nyní vynutí, aby bootloader zůstal rezidentní na firmwaru s protokolem V2, s detekcí verze, která se vrací k běžnému resetu na starších bootloaderech (<1.0.2), jež by se při vynucení mohly zaseknout (975857221).
Přejmenovány a reorganizovány složky modelů detekce objektů ST (
st_yolo_lc_v1nayolo_lc,tiny_yolo_v2nayolo_v2, modely osobyolov8nna soubory pojmenované jen podle velikosti) a odstraněny velké int8 variantytiny_yolo_v2(34240cc3c).Časování sériové komunikace se nyní ladí pomocí přepisovacích klíčů
protocolve firmwarovémsettings.json(overrideReadTimeout,overrideReadStallTimeout,overridePerCommandWaita klíče V2overrideCRC/overrideSEQ/overrideACK) místo přepínačů příkazového řádku při spuštění (019d8bf1d).Nastaven limit délky řádku jazykového serveru Pythonu na 120 sloupců pro flake8 a pycodestyle, takže dlouhé řádky již nejsou označovány při výchozí hodnotě 79 (dabb82062).
Zmenšena přibalená sada modelů strojového učení přesunutím kolekce modelů Qualcomm a
google/mobilenet_v1domodels_unusedza účelem zmenšení instalátoru (c44ddba20).
Opravy chyb¶
Dialogy průběhu stahování firmwaru a aktualizace prostředků byly zabezpečeny proti pádu pomocí strážců
QPointer, takže již nepoužívají smazaný dialog, pokud se zavře uprostřed stahování (f3ce4dc75).Skenování disků nyní pokračuje v opětovném skenování, dokud není USB disk kamery nalezen, a při odpojení vymaže zastaralé záznamy disků, čímž odstraňuje předchozí hack s jednorázovým časovačem (a31d41b4e).
Několik oprav připojení a sériové komunikace: skryté senzory (např.
SoftCSI) již nezahlcují zobrazený typ senzoru, časovač sériového keep-alive ve Windows zabraňuje zaseknutí USB, Start již nerestartuje již běžící skript a kanál kamery je při zavření portu čistě odpojen (a8e467be6).Pohled profileru obnovil svůj výběr čítače událostí PMU pro jednotlivé sloupce (zaškrtávací nabídky událostí) a uložený stav čítačů/záhlaví, který byl dočasně zakázán (40c679e90).
Podpora platforem a nástrojů¶
Základ Qt Creator: 14.0.2.
Přibalený firmware: aktualizován z 4.7.0 na 4.8.1, znovu sestaven firmware pro OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060 a desky Arduino GIGA/Nicla Vision/Portenta H7 (2657818ca).
Opraveno navázání verze protokolu v macOS pro desky RT1062 a AE3 rozdělením vícepříkazového USB přenosu na části o velikosti
USBDBG_LEN, které tyto desky zvládnou (6b9d5f842).Přepracován přibalený balík ovladačů pro Windows: přidány podepsané soubory ovladačů
.cat/.infpro jednotlivé desky (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) a CDC sériové ovladače přesunuty do nové složkyopenmvcdcs automatickým instalátorem založeným na dpinst (439557829, ba3b01bfb).Přidána podpora starších revizí senzoru kamery MT9V032 registrací ID senzorů
0x1311a0x1312(vedle stávajícího0x1313) jakoMT9V0X2(eaaa624e3).
Zásadní změny¶
Toto vydání nepřináší žádné změny skriptovacího API, ale obsahuje několik pro uživatele viditelných změn pracovního postupu:
Uložení skriptu již neodpojuje ani neodpoutává USB disk kamery. IDE nyní vyprázdní buffery svazku na místě, takže zařízení zůstává po uložení připojené.
Sériové přepínače při spuštění
-override_read_timeout(výchozí 5000 ms),-override_read_stall_timeout(výchozí 1000 ms) a-override_per_command_wait(výchozí 1 ms, 2 ms v macOS) byly odstraněny; časování sériové komunikace se nyní konfiguruje pomocí přepisovacích klíčůprotocolve firmwarovémsettings.json(019d8bf1d).Přibalené bootloadery se nyní dodávají pouze jako
.bin; soubory firmwaru.dfua bootloaderu pro jednotlivé desky byly odstraněny.