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.