v5.1.0#

v5.1.0 je vydání s novými funkcemi. Panel pod snímkovým bufferem vyrůstá z histogramu v sadu živých zobrazení – Board Info, Memory, Statistics a nové zobrazení Channels, které proměňuje hodnoty publikované skriptem ve widgety, grafy, spektra a hloubkové mapy a nahrává je do souborů – snímkový buffer získává volič zdroje pro kamery s více senzory, IDE se učí načítat úložiště třetích stran s deskami, firmwarem, příklady, modely a stuby a videonahrávky přecházejí na H.264. Jsou podporovány nové desky a senzory, nástroje pro firmware byly zpevněny úplným auditem každé změny od v5.0.0 a několik chování bylo převzato z OpenMV Studio. Je postaveno na Qt Creator 14.0.2 a přibaluje firmware v5.0.1.

Hlavní novinky#

  • Zobrazení panelu – titulková lišta panelu histogramu získává volič, který panel přepíná mezi zobrazeními Histogram, Board Info (hardware, verze a schopnosti připojené kamery), Memory (živé grafy haldy MicroPythonu a každého poolu UMA, se sledováním špiček), Statistics (čítače paketů, chyb a událostí jednotlivých kanálů ladicího protokolu) a Channels.

  • Zobrazení Channels – skript může přes ladicí protokol publikovat pojmenované kanály dat a ovládacích prvků a IDE je vykresluje živě: popisky, přepínače, posuvníky, číselníky, přepínací tlačítka, textová pole, voliče, tlačítka a textové bloky, které zapisují zpět do kamery; grafy průběhů s posouváním, přiblížením, značkami, spouštěmi, historií a spektrálním analyzátorem; a hloubkové mapy s vlastními paletami kamery, třemi škálovacími filtry a mapováním tónů. Každý graf nebo mapu lze nahrát do souborů CSV, WAV, NumPy nebo Edge Impulse JSON a CBOR – včetně Record All pro celý kanál – pro sběr trénovacích dat. Po zastavení skriptu zůstávají poslední hodnoty na obrazovce.

  • Volič zdroje snímkového bufferu – kamery s více než jedním obrazovým senzorem zobrazují v titulkové liště snímkového bufferu volič, kterým se vybírá, který senzor streamuje do IDE (nebo se streamování vypne), přepínač JPG se stal voličem režimu streamování JPG / RAW a titulek panelu uvádí formát, ve kterém každý snímek dorazil.

  • Úložiště třetích stran – dodavatel může publikovat úložiště desek, firmwaru (kanály vydání a vývoje), příkladů, modelů strojového učení a stubů .pyi; IDE jej nainstaluje z URL nebo ze složky, kterou vložil instalátor, sloučí jej s vlastním obsahem, udržuje jej aktualizované a umožňuje řadit dodavatele podle priority. Spravuje se z Preferences → OpenMV → Third Party Repositories.

  • Nový hardware – deska OpenMV N6 Classic (včetně ovladače jejího bootloaderu, pravidla udev a položky obnovy ROM-DFU) a senzory FLIR Lepton 3.1R a UW.

  • Nahrávky H.264 – rekordér snímkového bufferu a převodník videa nyní kódují H.264 místo MPEG-4 Part 2, s pevným intervalem klíčových snímků, takže se v nahrávkách čistě posouvá, a snímkovou frekvencí zaokrouhlenou na celé číslo.

  • Opravy z auditu – každý commit od v5.0.0 byl dvakrát zkontrolován kvůli regresím, se zvláštním zřetelem na cesty firmwaru, bootloaderu a ROMFS; nalezené vady jsou v tomto vydání opraveny (viz opravy chyb).

Nové funkce#

  • Zobrazení Board Info, Memory a Statistics v panelu histogramu, s celoplošným stylováním v tmavém i světlém motivu a vybratelným textem (cdea506655b, 7629a588db9, e21bd94a395, b55dcc412f6, fc744920011, e7dc3bf0092, 448e21db0bd).

  • Zobrazení Channels – kompletní slovník ovládacích prvků (label, toggle, slider, spin box, radio, line edit, select, push button, text), grafy průběhů se spektrálním analyzátorem (okna Hann, Hamming, Blackman a obdélníkové, průměrování, držení špiček, logaritmická frekvence), spouště na náběžnou a sestupnou hranu, značky, historie a export grafu; hloubkové mapy s paletami Depth, Rainbow, Ironbow a Event, škálováním nearest / bilinear / bicubic, mapováním tónů Script Range / Auto Range / Equalize, tlačítkem pozastavení, odečtem při najetí myší, záhlavím s deklarovaným rozsahem a min / max / průměrem snímku a Save Image; nahrávání do CSV, WAV, NumPy a Edge Impulse JSON / CBOR s volitelným štítkem Edge Impulse, dělením na části u dlouhých záznamů a Record All; interval Channel Polling v předvolbách protokolu (5b4f31a6b3a, d1252a24f14, bfd7fd72f94, d1c2ab02a5f, 4808b8ffe26, dfc323b4ec7, 61c077df9a5, 8c2cd6cf1f1, 1534225fcee).

  • Volič zdroje snímkového bufferu a odečet formátu – zvolte streamující senzor na kamerách s více senzory, nebo Off; přijatý formát snímku se zobrazuje v titulku panelu; přepínač JPG je nyní volič JPG Mode / RAW Mode (e76284bde9e, c2baff8d60c, afece31cb6a, 76448d7b9dd).

  • Úložiště třetích stran – souborově řízená úložiště firmwaru sloučená s vestavěným seznamem desek, síťové aktualizace se stránkou v Preferences, kanál vývojového firmwaru pro každého dodavatele, priorita dodavatelů řízená uživatelem, příklady dodavatelů sloučené do File → Examples, modely dodavatelů sloučené do Model Zoo, vlastní stuby .pyi předávané doplňování kódu, varování o přepsání, když dodavatel zastíní vestavěný obsah, a kontrola licence u desek dodavatelů (21a63a74949, b5512efe949, b15afdac479, 1fe693f0b61, ae11ffeffc4, cf47a37ba65, 100bdeb530b, 252924901f7, c75a81f2a4a, 3e7f077a738, 5c5aa3e657c, e3f36adbdcb, b04da8ee888).

  • Odstranění komentářů před spuštěním – komentáře se ze skriptu odstraní před odesláním do kamery, což u skriptů bohatých na komentáře šetří RAM kamery; řádky jsou zachovány, takže čísla řádků ve výpisu zásobníku stále odpovídají editoru (677546ee033).

  • Inline značka chyby – když skript skončí výjimkou, editor označí chybný řádek červeně s textem chyby vedle něj; značka zmizí, když soubor upravíte, znovu spustíte nebo se odpojíte (677546ee033).

  • Přetažení do editoru ROMFS – soubory přetažené z plochy procházejí stejnou kompilací skriptů a převodem modelů jako Add File, do složky, na kterou byly upuštěny (677546ee033).

Vylepšení editoru, terminálu a uživatelského rozhraní#

  • Histogramy se počítají z plných 8bitových RGB místo z tabulek RGB565 kamery, se sdílenou paletou grafů, alfa-prolnutými výplněmi a tlumenějšími čarami mřížky (238e099373e, f126e8f34c0, cebbf0c9e2c).

  • Skrytá zobrazení panelu nic nedělají – histogram přeskakuje výpočet a překreslování, dokud se zobrazuje jiné zobrazení nebo je panel sbalený, a po opětovném zobrazení se dožene; překreslování nulové velikosti je umlčeno (c8730df8399).

  • Ukázkové skripty se otevírají s prázdným řádkem za importy a přibalené příklady byly stejně přeformátovány (1f88f617ec5, 87c8f7d41c7).

  • Doplňování kódu zobrazuje soukromé názvy – vestavěný jazykový server už nefiltruje členy s předponou _, které moduly kamery používají (23ab5b38bb3).

  • macOS – skupinové rámečky ovládání protokolu v předvolbách už nejsou stísněné, zobrazení položek jsou chráněna před pády přístupnosti Cocoa, uživatelé Apple Silicon jsou varováni před bezpečnostním nastavením „Allow accessories to connect“ a uživatelé RT1062 jsou varováni, když není uděleno oprávnění Input Monitoring (aktualizace firmwaru je potřebují); obě varování se zobrazují po připojení (7d7b69367bf, 69fe7ffc913, 742cb4d8c0b, 8890eb77834, 89646292e8d).

  • Zkratky v režimu prohlížeče – zbloudilé zkratky, které rozbíjely režim prohlížeče (i běžné IDE), byly zakázány a režim prohlížeče už neukládá své vymazané zkratky do nastavení plného IDE (251b422f642, 0d153671c1d).

  • Neznámé senzory jsou ve stavovém řádku pojmenovány podle id čipu, aby je bylo možné identifikovat a přidat do tabulky senzorů (df561775b54).

Firmware, desky a nástroje#

  • Podpora OpenMV N6 Classic: položka desky, ovladač DFU pro Windows a kódy instalátoru, pravidlo udev pro Linux (4ff4a1f239d, bdd6c96ef47, 25fcdc13c6a, 7730b699f60).

  • Podpora senzorů FLIR Lepton 3.1R a UW (12c03024f3c).

  • Předání bootloaderu IMX – předem aktivovaný catcher se zmocní bootloaderu RT1062 v okamžiku, kdy se enumeruje, a nahrazuje smyčku spouštění procesu při každém sondování, která na vytíženém hostiteli mohla jednosekundové okno propásnout (3d8b63c6859).

  • Zipy firmwaru – Load Custom Firmware přijímá balíčky pouze s romfs i balíčky bez ROMFS a vlastní či vývojový firmware se připravuje i pro desky IMX, které už jsou v režimu bootloaderu (b6f16f54c1a, 94d5fd5c30e).

  • Soukromé pracovní adresáře pro vývojový / vlastní firmware, obrazy editoru ROMFS a dočasné soubory videonástrojů, takže zastaralé soubory z jiných procesů nemohou být nikdy omylem nahrány nebo převedeny (939154501af, a288fe712e7, 5c8c717adec).

  • Video H.264 – nahrávky a převody kódují H.264 s pevným intervalem klíčových snímků; nahraná snímková frekvence blízká celému číslu se na ně zaokrouhlí, takže přehrávače hlásí 30 FPS místo 29,97 (6ad1968341d, d62c110e155, bab488a54fe).

  • Kontrolní součet zipu se zdroji – aktualizace zdrojů IDE se ověřuje proti SHA-256 zveřejněnému spolu s verzí (677546ee033).

  • Poctivý User-Agent u požadavků na servery OpenMV (c4279c0213e).

Opravy chyb#

Dvě kontrolní kola nad každou změnou od v5.0.0 nalezla a opravila následující (ccea3b17d01, 71826200611):

  • Cesty firmwaru a bootloaderu – Load Custom Firmware se zipem na desku již v režimu bootloaderu místo toho nahrál vydanou verzi; cesta obnovy Alif nyní vlastní sestavení odmítne, místo aby nahrála vydání; zablokovaný N6 Classic byl opravován obyčejným bootloaderem a firmwarem N6; zastaralý kořen zdrojů třetí strany mohl zablokovanou vestavěnou desku nasměrovat na soubory dodavatele; catcher IMX mohl po svém pádu pokračovat v nahrávání, ignoroval Cancel při čekání na flashloader a po zrušení během aktivace nechal sériový port otevřený; bootloader N6 Classic neměl pravidlo udev; v přijímaných návratových kódech instalátoru ovladačů pro Windows byl překlep.

  • Editor ROMFS – Cancel během čtení ROMFS hlásil „Failed to unpack ROMFS!“ a deset sekund čekal na kameru stále v bootloaderu; Cancel během zápisu skončil tiše s možná částečným ROMFS; chyba dfu-util během zápisu byla hlášena jako úspěch; Cancel v navazujícím dialogu zahodil všechny úpravy; Auto Reconnect se mohl připojit pod otevřeným editorem; Edit ROMFS při připojené kameře se zbytečně nejprve odpojil a znovu připojil; dočasné adresáře převodníku unikaly. Po zrušené operaci je nyní bootloader požádán o opuštění DFU, aby se kamera sama vrátila.

  • Úložiště třetích stran – položky zipu se před rozbalením validují (žádné procházení cest ani symbolické odkazy), instalace a reinstalace částí ponechávají starou kopii, dokud není nová na místě, odmítnutá deska dodavatele už s sebou nestrhne vestavěnou desku, se kterou se překrývala, chybějící maska PID za běhu neodpovídala ničemu a řádky základního indexu příkladů / modelů už nezachytávají stejnojmenné soubory dodavatelů.

  • Snímkový buffer a senzory – událostní senzor GENX320 (id čipu nad 0x80000000) vypínal snímkový buffer; uložený výběr senzoru nepřežil restart; stará předvolba „disable frame buffer“ nebyla migrována; příkaz zdroje streamu je podmíněn verzí protokolu; metrika zaostření zamrzla, dokud byla stránka histogramu skrytá; po odpojení zůstával v titulku formát snímku.

  • Průběh připojení – varování na macOS mohla pohltit „Yes“ ve výzvě k aktualizaci firmwaru; Model Zoo se vždy otevíral sbalený bez obnovení výběru; záložní volba jediného disku pro disk kamery byla nedosažitelná, pokud byla kamera připojena déle než deset sekund.

  • Zobrazení Channels a rekordér – nepřátelské velikosti snímků mohly přetéct kontroly velikosti; rekordéry Edge Impulse realokovaly při každém bloku a nyní jsou omezeny na 64 MB na část; schéma s oddělovači v názvech mohlo indexovat za konec seznamu záznamů; duplicitní záznamy osiřely běžící rekordér; zápisy se zahazují, dokud je zobrazení zmrazeno; seznam kanálů se nyní obnovuje při událostech odregistrování a měkkého restartu.

  • Video – lichá uživatelem zadaná šířka rozbila kódování H.264 na sestaveních s libx264; zrušené nebo neúspěšné převody .bin zanechávaly snímky, které další běh přibral.

  • Protokol – vyprázdnění čtení, které běží před detekcí protokolu, je omezené (issue #336) (77cd13af76f); přiřazení disku kamery už neprohrává závod s jinými svazky (9877480c304).

  • Varování -Wdeprecated-copy v obalu informací o sériovém portu (abcfaa8af5e).

Lokalizace#

Podpora platforem a nástrojů#

  • Základ Qt Creator: 14.0.2.

  • Verze OpenMV IDE zvýšena na 5.1.0.

  • Přiložený firmware: v5.0.1 (viz changelog firmwaru).

  • Nové desky a senzory: OpenMV N6 Classic; FLIR Lepton 3.1R a UW.

Zásadní změny#

Žádné pro stávající projekty. Přepínač JPG v titulkové liště snímkového bufferu je nyní volič JPG Mode / RAW Mode a jeho staré nastavení „disable frame buffer“ je migrováno do položky Off nového voliče zdroje. Komentáře se ze skriptů před spuštěním odstraňují; skript, který se spoléhá na čtení vlastního zdrojového textu za běhu, by to dělat neměl.