v4.8.1¶
v4.8.1 este construit pe Qt Creator 14.0.2 și se concentrează pe un nou protocol de cameră OpenMV V2 de înaltă fiabilitate, pe un Code Profiler încorporat și pe un flux de salvare care păstrează camera montată în loc să o ejecteze. Firmware-ul inclus și întregul set de exemple sunt actualizate la 4.8.1. Nu există modificări incompatibile ale API-ului de scripting, dar comportamentul de salvare-fără-ejectare și eliminarea câtorva flag-uri seriale de la pornire reprezintă modificări ale fluxului de lucru vizibile pentru utilizator.
Puncte importante¶
OpenMV Protocol V2 este o nouă stivă de cameră de înaltă fiabilitate (
OMVCamera/OMVTransport/OMVDebug) cu CRC32, secvențiere, ACK/NAK, retransmisie, evenimente și fragmentare. Este negociat automat la momentul conectării și gestionează resetarea, pornirea, streaming-ul, execuția scripturilor și statisticile.Code Profiler este o fereastră nouă (
Window>Show Code Profiler) care interoghează înregistrările de profilare per funcție de la cameră și afișează apelurile, microsecundele (μs) minime/maxime/totale/medii, ciclurile medii, procentajul și contoarele de evenimente într-un tabel sortabil.Save in place nu mai ejectează unitatea camerei; IDE-ul scrie acum
main.pyși golește volumul pe disc, astfel încât dispozitivul rămâne montat.Detectarea cu mai mulți senzori raportează fiecare cameră de pe o placă, afișată în bara de stare ca
Sensors: X, Ycu senzorul principal listat primul.Dynamic Frame Reading recalculează rezoluția brută de streaming cu cea mai bună potrivire pentru fiecare format de pixel și reconfigurează fluxul automat.
Firmware-ul și exemplele incluse sunt actualizate la 4.8.1 pe toate plăcile, adăugând noi exemple pentru camera de evenimente GenX320, ML TensorFlow, OLED Alif și shield-ul LCD/Touch-LCD.
Funcții noi¶
S-a adăugat protocolul de comunicare OpenMV V2: un strat complet de transport și tranzacții cu CRC32, secvențiere, ACK/NAK, retransmisie, evenimente și fragmentare, plus o clasă
OMVCameranegociată automat la conectare și integrată în driverul serial (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).S-a adăugat fereastra Code Profiler (
Window>Show Code Profiler), care interoghează înregistrările de profilare per funcție și afișează apelurile, microsecundele (μs) minime/maxime/totale/medii, ciclurile medii, procentajul și contoarele de evenimente, rezolvând adresele în simboluri prin intermediul unui parser ELF ELFIO inclus (019d3cd2c, 57cd9e1cc).S-a adăugat un dialog Debug Protocol Settings care afișează în timp real System Info, Host Stats și Device Stats reîmprospătate în fiecare secundă, expunând ratele de interogare per canal plus controale de interogare combinată față de separată (5220a6125, 0da2f79d0).
S-a adăugat detectarea cu mai mulți senzori: o placă cu mai mult de o cameră le raportează pe toate în bara de stare ca
Sensors: X, Y, senzorul principal primul (cebc79ce7).S-a adăugat Dynamic Frame Reading (activat implicit), care recalculează rezoluția brută de streaming cu cea mai bună potrivire pentru fiecare format de pixel (
BINARY,GRAY,RGB565,ARGB8,JPEG,PNG) și reconfigurează fluxul (75c073bdb, 0da2f79d0).S-a adăugat decodarea framebuffer-ului pentru formatele de pixel brute
BINARY(1-bpp monocrom) șiARGB8(alfa pe 32 de biți), astfel încât acele tipuri de imagini sunt acum redate în vizualizator (dabb82062).Pe Windows, Connect scanează acum dispozitivele USB marcate cu o problemă de către sistemul de operare și avertizează cu o listă a dispozitivelor defecte care ar putea bloca conexiunea (1a5beb081, 1b59cd78e).
S-a adăugat un indicator de înregistrare în bara de stare: un buton verde
Registeredsau coralUnregisteredpentru camera conectată, pe care se poate face clic pentru a înregistra placa (a8c98a4b9).Vizualizatorul de framebuffer poate acum afișa un mesaj text centrat trimis de scriptul în execuție printr-un nou cod de escape
FB_MESSAGEîn loc de o imagine (530048201).S-au adăugat noi intrări în model-zoo: modele ST FastDepth de estimare a adâncimii (224/256/320), un model ST de poziție a reperelor capului, modele de mână pentru detectarea palmei și repere ale mâinii și un model BlazeFace de detectare a feței frontale (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).
S-a adăugat un script de autotestare disponibil doar pentru build-urile de fabrică (cameră, IMU, ToF, WiFi, LAN) care este inclus și deschis automat la pornire în varianta IDE de fabrică (0db7fbbb0); porțiunea LAN RT1060 a testului este în prezent dezactivată (48370d022).
Alte modificări și îmbunătățiri¶
Save in place: salvarea unui script nu mai ejectează unitatea camerei; IDE-ul scrie
main.pyși golește volumul pe disc (FlushFileBufferspe Windows,syncfspe Linux,sync_volume_np/F_FULLFSYNCpe macOS), astfel încât dispozitivul rămâne montat (1614c572f, 6928b51ea, 35ed53967).Acțiunile din bara de instrumente apăsate în timp ce camera este ocupată (dezactivare framebuffer, compresie JPEG, salvare script, configurare setări) sunt acum puse în coadă și rulate automat când dispozitivul este liber, în loc să afișeze un dialog de eroare Busy (f4315f0a4).
Vizualizatorul de framebuffer folosește acum implicit potrivirea în vizualizare, astfel încât imaginea se scalează automat la fereastră la pornire, iar panoul de ieșire al terminalului serial este acum afișat implicit la pornire (f3ce4dc75).
Fișierele de model compilate cu extensia
.litesunt acum recunoscute peste tot: filtrarea și afișarea în browserul model-zoo, alinierea ROMFS a firmware-ului, iar compilatoarele Vela/STEdge AI emit acum ieșire.lite(f3ce4dc75).Dialogul de compilare a modelelor STEdge AI (N6) analizează și raportează acum procentajele de utilizare a memoriei RAM a NPU și a hyperRAM și copiază ieșirea de rețea relocată într-un fișier care corespunde extensiei modelului (f3ce4dc75).
Browserul model-zoo afișează acum coloana Size a fișierului și întinde coloana de nume pentru a se potrivi, în loc să ascundă dimensiunea (f3ce4dc75).
Șablonul pentru script nou a fost actualizat la noul API al modulului
csiși folosește implicit dimensiunea de cadru VGA, iar exemplul Hello World inclus a fost comutat de la dimensiunea de cadru QVGA la VGA (f3ce4dc75).Dialogul Convert Video a fost rescris pentru a utiliza dialogul de încărcare partajat cu ieșire colorată, mesaje de succes/eșec, un buton OK-to-close și o eroare clară atunci când FFMPEG nu este disponibil pe platformă (f56efc7be).
Vizualizatorul de framebuffer afișează acum un avertisment intermitent atunci când o imagine
JPEG/PNGeste prea mare pentru a fi pusă în tampon și trimisă, printr-un nou cod de escapeFB_BUFFER_ERROR(fda826126).Intrarea în bootloader-ul DFU forțează acum bootloader-ul să rămână rezident pe firmware-ul cu protocol V2, cu detectarea versiunii care revine la o resetare simplă pe bootloader-ele mai vechi (<1.0.2) care s-ar putea bloca atunci când sunt forțate (975857221).
S-au redenumit și reorganizat folderele cu modele ST de detectare a obiectelor (
st_yolo_lc_v1înyolo_lc,tiny_yolo_v2înyolo_v2, modelele de persoanăyolov8nîn fișiere simple denumite după dimensiune) și s-au eliminat variantele int8 maritiny_yolo_v2(34240cc3c).Sincronizarea seriala este acum reglată prin cheile de suprascriere
protocoldinsettings.jsonal firmware-ului (overrideReadTimeout,overrideReadStallTimeout,overridePerCommandWaitși cheile V2overrideCRC/overrideSEQ/overrideACK) în loc de flag-uri din linia de comandă la pornire (019d8bf1d).S-a setat limita de lungime a liniei a serverului de limbaj Python la 120 de coloane pentru flake8 și pycodestyle, astfel încât liniile lungi nu mai sunt semnalate la valoarea implicită de 79 (dabb82062).
S-a redus setul de modele de învățare automată incluse prin mutarea colecției de modele Qualcomm și a
google/mobilenet_v1înmodels_unusedpentru a micșora programul de instalare (c44ddba20).
Corectări de erori¶
Dialogurile de progres pentru descărcarea firmware-ului și actualizarea resurselor au fost făcute rezistente la blocaje folosind protecții
QPointer, astfel încât nu mai utilizează un dialog șters dacă acesta se închide în timpul descărcării (f3ce4dc75).Scanarea unităților rescanează acum până când este găsită unitatea USB a camerei și șterge intrările de unitate învechite la deconectare, eliminând hack-ul anterior cu temporizator unic (a31d41b4e).
Mai multe corectări de conexiune și seriale: senzorii ascunși (de ex.
SoftCSI) nu mai aglomerează tipul de senzor afișat, un temporizator de keep-alive serial pe Windows previne blocajele USB, Start nu mai repornește un script deja în execuție, iar canalul camerei este deconectat curat la închiderea portului (a8e467be6).Vizualizarea profiler-ului și-a restabilit selecția contoarelor de evenimente PMU per coloană (meniuri de evenimente bifabile) și a salvat starea contoarelor/antetelor care fusese dezactivată temporar (40c679e90).
Suport pentru platformă și instrumente¶
Bază Qt Creator: 14.0.2.
Firmware inclus: actualizat de la 4.7.0 la 4.8.1, reconstruind firmware-ul pentru plăcile OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060 și Arduino GIGA/Nicla Vision/Portenta H7 (2657818ca).
S-a corectat handshake-ul de versiune de protocol pe macOS pentru plăcile RT1062 și AE3 prin împărțirea transferului USB cu mai multe comenzi în bucăți de dimensiune
USBDBG_LENpe care acele plăci le pot gestiona (6b9d5f842).S-a reproiectat pachetul de drivere Windows inclus: s-au adăugat fișiere de driver
.cat/.infsemnate per placă (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) și s-au mutat driverele seriale CDC într-un nou folderopenmvcdccu un instalator automat bazat pe dpinst (439557829, ba3b01bfb).S-a adăugat suport pentru revizii mai vechi ale senzorului de cameră MT9V032 prin înregistrarea ID-urilor de senzor
0x1311și0x1312(alături de0x1313existent) caMT9V0X2(eaaa624e3).
Modificări incompatibile¶
Această versiune nu are modificări incompatibile ale API-ului de scripting, dar există câteva modificări ale fluxului de lucru vizibile pentru utilizator:
Salvarea unui script nu mai ejectează sau demontează unitatea USB a camerei. IDE-ul golește acum tampoanele volumului pe loc, astfel încât dispozitivul rămâne montat după o salvare.
Flag-urile seriale de la pornire
-override_read_timeout(implicit 5000 ms),-override_read_stall_timeout(implicit 1000 ms) și-override_per_command_wait(implicit 1 ms, 2 ms pe macOS) au fost eliminate; sincronizarea seriala este acum configurată prin cheile de suprascriereprotocoldinsettings.jsonal firmware-ului (019d8bf1d).Bootloader-ele incluse sunt acum livrate doar ca
.bin; fișierele de firmware și bootloader.dfuper placă au fost eliminate.