v5.1.0#
v5.1.0 este o versiune cu funcții noi. Panoul de sub tamponul de cadre crește de la o histogramă la un set de vizualizări în timp real – Informații placă, Memorie, Statistici și noua vizualizare Canale, care transformă valorile publicate de un script în widgeturi, grafice, spectre și hărți de adâncime și le înregistrează în fișiere – tamponul de cadre primește un selector de sursă pentru camerele cu mai mulți senzori, IDE-ul învață să încarce depozite terțe de plăci, firmware, exemple, modele și stub-uri, iar înregistrările video trec la H.264. Sunt acceptate plăci și senzori noi, instrumentele de firmware au fost consolidate printr-un audit complet al fiecărei modificări de la v5.0.0, iar o mână de comportamente au fost aduse din OpenMV Studio. Este construit pe Qt Creator 14.0.2 și include firmware-ul v5.0.1.
Puncte principale#
Vizualizările panoului – bara de titlu a panoului histogramei primește un selector care comută panoul între vizualizările Histogramă, Informații placă (hardware-ul, versiunile și capabilitățile camerei conectate), Memorie (grafice în timp real ale heap-ului MicroPython și ale fiecărui pool UMA, cu urmărirea vârfului), Statistici (contoarele de pachete, de erori și de evenimente per canal ale protocolului de depanare) și Canale.
Vizualizarea Canale – un script poate publica canale denumite de date și comenzi prin protocolul de depanare, iar IDE-ul le redă în timp real: etichete, comutatoare, glisoare, casete de incrementare, butoane radio, câmpuri de text, selectoare, butoane și blocuri de text care scriu înapoi către cameră; grafice de formă de undă cu panoramare, zoom, marcatoare, declanșatoare, istoric și un analizor de spectru; și hărți de adâncime cu paletele proprii ale camerei, trei filtre de scalare și mapare tonală. Orice grafic sau hartă se înregistrează în fișiere CSV, WAV, NumPy sau Edge Impulse JSON și CBOR – inclusiv un Înregistrează tot pentru un canal întreg – pentru colectarea datelor de antrenament. Ultimele valori rămân pe ecran când un script se oprește.
Selectorul sursei tamponului de cadre – camerele cu mai mult de un senzor de imagine afișează un selector în bara de titlu a tamponului de cadre pentru a alege ce senzor transmite către IDE (sau pentru a opri transmisia), comutatorul JPG a devenit un selector al modului de transmisie JPG / RAW, iar titlul panoului indică formatul în care a sosit fiecare cadru.
Depozite terțe – un furnizor poate publica un depozit de plăci, firmware (canale de lansare și de dezvoltare), exemple, modele de învățare automată și stub-uri
.pyi; IDE-ul îl instalează de la un URL sau dintr-un folder plasat de un program de instalare, îl îmbină cu propriul conținut, îl menține actualizat și vă permite să ordonați furnizorii după prioritate. Gestionat din Preferences → OpenMV → Third Party Repositories.Hardware nou – placa OpenMV N6 Classic (inclusiv driverul său de bootloader, regula udev și intrarea de recuperare ROM-DFU) și senzorii FLIR Lepton 3.1R și UW.
Înregistrări H.264 – înregistratorul tamponului de cadre și convertorul video codifică acum H.264 în loc de MPEG-4 Part 2, cu un interval fix între cadrele cheie, astfel încât derularea înregistrărilor să funcționeze corect, iar rata de cadre este rotunjită la un număr întreg.
Corecții în urma auditului – fiecare commit de la v5.0.0 a fost revizuit de două ori pentru regresii, cu o atenție deosebită acordată căilor de firmware, bootloader și ROMFS; defectele găsite sunt corectate în această versiune (vezi corecțiile de erori).
Funcții noi#
Vizualizările Informații placă, Memorie și Statistici în panoul histogramei, cu stilizare pe toată suprafața atât în tema dark, cât și în tema light, și cu text selectabil (cdea506655b, 7629a588db9, e21bd94a395, b55dcc412f6, fc744920011, e7dc3bf0092, 448e21db0bd).
Vizualizarea Canale – vocabularul complet de comenzi (etichetă, comutator, glisor, casetă de incrementare, radio, câmp de text, selector, buton, text), grafice de formă de undă cu un analizor de spectru (ferestre Hann, Hamming, Blackman și dreptunghiulară, mediere, menținere vârf, frecvență logaritmică), declanșatoare pe front crescător și descrescător, marcatoare, istoric și export al graficului; hărți de adâncime cu paletele Adâncime, Curcubeu, Ironbow și Eveniment, scalare cel mai apropiat / biliniară / bicubică, mapare tonală Interval script / Interval automat / Egalizare, un buton de pauză, afișarea valorii la trecerea cursorului, un antet cu intervalul declarat și min / max / media cadrului, și Salvați imaginea; înregistrare în CSV, WAV, NumPy și Edge Impulse JSON / CBOR cu o etichetă Edge Impulse opțională, împărțire în părți pentru capturile lungi și Înregistrează tot; un interval Channel Polling în preferințele protocolului (5b4f31a6b3a, d1252a24f14, bfd7fd72f94, d1c2ab02a5f, 4808b8ffe26, dfc323b4ec7, 61c077df9a5, 8c2cd6cf1f1, 1534225fcee).
Selectorul sursei tamponului de cadre și afișarea formatului – alegeți senzorul care transmite pe camerele cu mai mulți senzori, sau Oprit; formatul cadrului primit este afișat în titlul panoului; comutatorul JPG este acum un selector Modul JPG / Modul RAW (e76284bde9e, c2baff8d60c, afece31cb6a, 76448d7b9dd).
Depozite terțe – depozite de firmware bazate pe fișiere îmbinate cu lista de plăci încorporată, actualizări prin rețea cu o pagină în Preferences, un canal de firmware de dezvoltare per furnizor, prioritate a furnizorilor controlată de utilizator, exemple ale furnizorilor îmbinate în File → Examples, modele ale furnizorilor îmbinate în Model Zoo, stub-uri
.pyipersonalizate furnizate completării codului, avertismente de suprascriere când un furnizor umbrește conținutul încorporat și o verificare a licenței pentru plăcile furnizorilor (21a63a74949, b5512efe949, b15afdac479, 1fe693f0b61, ae11ffeffc4, cf47a37ba65, 100bdeb530b, 252924901f7, c75a81f2a4a, 3e7f077a738, 5c5aa3e657c, e3f36adbdcb, b04da8ee888).Eliminarea comentariilor înainte de rulare – comentariile sunt eliminate din script înainte de a fi trimis către cameră, economisind RAM-ul camerei la scripturile cu multe comentarii; liniile sunt păstrate, astfel încât numerele de linie din traceback corespund în continuare editorului (677546ee033).
Marcaj de eroare în linie – când un script moare cu o excepție, editorul marchează linia vinovată cu roșu, cu textul erorii alături; marcajul dispare când editați fișierul, rulați din nou sau vă deconectați (677546ee033).
Tragere și plasare în editorul ROMFS – fișierele plasate de pe desktop trec prin aceeași compilare a scripturilor și conversie a modelelor ca Add File, în folderul pe care au fost plasate (677546ee033).
Îmbunătățiri ale editorului, terminalului și interfeței#
Histogramele sunt calculate din RGB complet pe 8 biți în loc de tabelele RGB565 ale camerei, cu o paletă de grafic comună, umpleri cu amestec alfa și linii de grilă mai estompate (238e099373e, f126e8f34c0, cebbf0c9e2c).
Vizualizările ascunse ale panoului nu fac nicio muncă – histograma își omite calculul și redesenările cât timp este afișată o altă vizualizare sau panoul este restrâns, și recuperează când este afișată din nou; redesenările de dimensiune zero sunt reduse la tăcere (c8730df8399).
Scripturile de exemplu se deschid cu o linie goală după importuri, iar exemplele incluse au fost reformatate în același mod (1f88f617ec5, 87c8f7d41c7).
Completarea codului afișează numele private – serverul de limbaj încorporat nu mai filtrează membrii cu prefixul
_, pe care îi folosesc modulele camerei (23ab5b38bb3).macOS – casetele de grup ale comenzilor de protocol din preferințe nu mai sunt înghesuite, vizualizările de elemente sunt protejate împotriva prăbușirilor de accesibilitate Cocoa, utilizatorii de Apple Silicon sunt avertizați despre setarea de securitate „Allow accessories to connect”, iar utilizatorii de RT1062 sunt avertizați când Input Monitoring nu este acordat (actualizările de firmware au nevoie de el); ambele avertismente sunt afișate după conectare (7d7b69367bf, 69fe7ffc913, 742cb4d8c0b, 8890eb77834, 89646292e8d).
Scurtăturile modului viewer – scurtăturile rătăcite care stricau modul viewer (și IDE-ul obișnuit) au fost dezactivate, iar modul viewer nu își mai persistă scurtăturile șterse în setările IDE-ului complet (251b422f642, 0d153671c1d).
Senzorii necunoscuți sunt denumiți după id-ul cipului în bara de stare, astfel încât să poată fi identificați și adăugați în tabelul de senzori (df561775b54).
Firmware, plăci și instrumente#
Suport pentru OpenMV N6 Classic: intrarea plăcii, driverul DFU pentru Windows și codurile programului de instalare, regula udev pentru Linux (4ff4a1f239d, bdd6c96ef47, 25fcdc13c6a, 7730b699f60).
Suport pentru senzorii FLIR Lepton 3.1R și UW (12c03024f3c).
Preluarea bootloader-ului IMX – un catcher armat în prealabil revendică bootloader-ul RT1062 în clipa în care acesta se enumeră, înlocuind bucla cu un proces lansat la fiecare sondare, care putea rata fereastra de o secundă pe o gazdă încărcată (3d8b63c6859).
Arhivele zip de firmware – Load Custom Firmware acceptă pachete doar cu romfs și pachete fără ROMFS, iar firmware-ul personalizat sau de dezvoltare este pregătit pentru plăcile IMX aflate deja în modul bootloader (b6f16f54c1a, 94d5fd5c30e).
Directoare de pregătire private pentru firmware-ul de dezvoltare / personalizat, imaginile editorului ROMFS și fișierele temporare ale instrumentelor video, astfel încât fișierele învechite ale altor procese să nu poată fi niciodată programate sau convertite din greșeală (939154501af, a288fe712e7, 5c8c717adec).
Video H.264 – înregistrările și conversiile codifică H.264 cu un interval fix între cadrele cheie; o rată de cadre înregistrată apropiată de un număr întreg este rotunjită la acesta, astfel încât playerele raportează 30 FPS în loc de 29.97 (6ad1968341d, d62c110e155, bab488a54fe).
Suma de control a arhivei zip de resurse – actualizarea resurselor IDE-ului este verificată față de un SHA-256 publicat împreună cu versiunea (677546ee033).
User-Agent onest la cererile către serverele OpenMV (c4279c0213e).
Corecții de erori#
Două treceri de revizuire peste fiecare modificare de la v5.0.0 au găsit și corectat următoarele (ccea3b17d01, 71826200611):
Căile de firmware și bootloader – un zip Load Custom Firmware pe o placă aflată deja în modul bootloader programa în schimb versiunea de lansare; calea de recuperare Alif refuză acum o versiune personalizată în loc să programeze lansarea; un N6 Classic blocat era reparat cu bootloader-ul și firmware-ul N6 obișnuit; o rădăcină de resurse terță învechită putea direcționa o placă încorporată blocată către fișierele furnizorului; catcher-ul IMX putea continua cu programarea după ce se prăbușise, ignora Cancel cât timp aștepta flashloader-ul și lăsa portul serial deschis după o anulare în timpul armării; bootloader-ul N6 Classic nu avea regulă udev; codurile de ieșire acceptate de programul de instalare a driverului Windows aveau o greșeală de tastare.
Editorul ROMFS – Cancel în timpul unei citiri ROMFS raporta „Failed to unpack ROMFS!” și aștepta zece secunde o cameră aflată încă în bootloader; Cancel în timpul unei scrieri se încheia în tăcere cu un ROMFS posibil parțial; o eroare dfu-util în timpul unei scrieri era raportată ca succes; Cancel în dialogul următor renunța la toate editările; Auto Reconnect se putea conecta pe sub editorul deschis; Edit ROMFS în timpul conexiunii se deconecta și se reconecta inutil mai întâi; directoarele temporare ale convertorului se pierdeau. După o operațiune anulată, bootloader-ului i se cere acum să părăsească DFU, astfel încât camera să revină singură.
Depozite terțe – intrările din zip sunt validate înainte de extragere (fără traversare de căi sau legături simbolice), instalările și reinstalările de părți păstrează vechea copie până când cea nouă este la locul ei, o placă de furnizor respinsă nu mai trage după ea placa încorporată pe care o suprapunea, o mască PID lipsă nu potrivea nimic la rulare, iar rândurile de index ale exemplelor / modelelor de bază nu mai capturează fișierele de furnizor cu același nume.
Tamponul de cadre și senzorii – senzorul de evenimente GENX320 (id de cip peste
0x80000000) dezactiva tamponul de cadre; o selecție de senzor salvată nu supraviețuia unei reporniri; vechea preferință „disable frame buffer” nu era migrată; comanda sursei de flux este condiționată de versiunea protocolului; metrica de focalizare îngheța cât timp pagina histogramei era ascunsă; formatul cadrului rămânea în titlu după deconectare.Fluxul de conectare – avertismentele macOS puteau înghiți „Yes”-ul din dialogul de actualizare a firmware-ului; Model Zoo se deschidea întotdeauna restrâns, fără ca selecția să fie restaurată; soluția de rezervă cu o singură unitate pentru unitatea camerei era inaccesibilă când camera fusese conectată de mai mult de zece secunde.
Vizualizarea Canale și înregistratorul – dimensiunile de cadru ostile puteau depăși verificările de dimensiune; înregistratoarele Edge Impulse realocau la fiecare bloc și sunt acum limitate la 64 MB per parte; o schemă cu separatori în nume putea indexa dincolo de lista de înregistrări; înregistrările duplicate lăsau orfan un înregistrator în curs; scrierile sunt abandonate cât timp vizualizarea este înghețată; lista de canale se reîmprospătează acum la evenimentele de dezînregistrare și de repornire soft.
Video – o lățime impară introdusă de utilizator strica codificarea H.264 pe versiunile cu libx264; conversiile
.binanulate sau eșuate lăsau cadre pe care rularea următoare le includea.Protocol – golirea citirii care rulează înainte de detectarea protocolului este limitată (issue #336) (77cd13af76f); asocierea unității camerei nu mai pierde cursa în fața altor volume (9877480c304).
Un avertisment
-Wdeprecated-copyîn wrapper-ul de informații despre portul serial (abcfaa8af5e).
Localizare#
Toate cele 37 de cataloage au fost actualizate pentru vizualizările panoului, vizualizarea Canale și harta sa de adâncime și fiecare șir nou din această versiune (1b71f243733, dc13c23ed81, a7debafdafa, 173a57422f7).
Suport pentru platforme și instrumente#
Baza Qt Creator: 14.0.2.
Versiunea OpenMV IDE a fost ridicată la 5.1.0.
Firmware inclus: v5.0.1 (vezi jurnalul de modificări al firmware-ului).
Plăci și senzori noi: OpenMV N6 Classic; FLIR Lepton 3.1R și UW.
Modificări incompatibile#
Niciuna pentru proiectele existente. Comutatorul JPG din bara de titlu a tamponului de cadre este acum un selector Modul JPG / Modul RAW, iar vechea sa setare „disable frame buffer” este migrată în intrarea Oprit a noului selector de sursă. Comentariile sunt eliminate din scripturi înainte de rulare; un script care se bazează pe citirea propriului text sursă la rulare nu ar trebui să facă asta.