v4.8.1¶
v4.8.1 si basa su Qt Creator 14.0.2 ed è incentrata su un nuovo protocollo per camera OpenMV V2 ad alta affidabilità, un Code Profiler integrato e un flusso di salvataggio che mantiene la camera montata invece di espellerla. Il firmware incluso e l’intero set di esempi sono aggiornati alla 4.8.1. Non ci sono rotture nell’API di scripting, ma il comportamento per cui il salvataggio non espelle più e la rimozione di alcuni flag seriali all’avvio sono cambiamenti del flusso di lavoro visibili all’utente.
In evidenza¶
OpenMV Protocol V2 è un nuovo stack camera ad alta affidabilità (
OMVCamera/OMVTransport/OMVDebug) con CRC32, sequenziamento, ACK/NAK, ritrasmissione, eventi e frammentazione. Viene negoziato automaticamente al momento della connessione e gestisce reset, avvio, streaming, esecuzione di script e statistiche.Code Profiler è una nuova finestra (
Window>Show Code Profiler) che interroga i record di profilazione per funzione dalla camera e mostra chiamate, microsecondi min/max/totali/medi (μs), cicli medi, percentuale e contatori di eventi in una tabella ordinabile.Save in place non espelle più l’unità della camera; l’IDE ora scrive
main.pye svuota il volume su disco, così il dispositivo rimane montato.Multi-sensor detection segnala ogni camera presente su una scheda, mostrata nella barra di stato come
Sensors: X, Ycon il sensore principale elencato per primo.Dynamic Frame Reading ricalcola la risoluzione di streaming raw ottimale per ciascun formato di pixel e riconfigura automaticamente lo stream.
Firmware ed esempi inclusi sono aggiornati alla 4.8.1 su tutte le schede, aggiungendo nuovi esempi per event-camera GenX320, TensorFlow ML, OLED Alif e shield LCD/Touch-LCD.
Nuove funzionalità¶
Aggiunto il protocollo di comunicazione OpenMV V2: un livello completo di trasporto e transazione con CRC32, sequenziamento, ACK/NAK, ritrasmissione, eventi e frammentazione, oltre a una classe
OMVCameranegoziata automaticamente alla connessione e integrata nel driver seriale (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).Aggiunta la finestra Code Profiler (
Window>Show Code Profiler), che interroga i record di profilazione per funzione e mostra chiamate, microsecondi min/max/totali/medi (μs), cicli medi, percentuale e contatori di eventi, risolvendo gli indirizzi in simboli tramite un parser ELF ELFIO incluso (019d3cd2c, 57cd9e1cc).Aggiunta una finestra di dialogo Debug Protocol Settings che mostra in tempo reale System Info, Host Stats e Device Stats aggiornate ogni secondo, esponendo le frequenze di polling per canale oltre ai controlli di polling combinato vs separato (5220a6125, 0da2f79d0).
Aggiunto il rilevamento multi-sensore: una scheda con più di una camera le segnala tutte nella barra di stato come
Sensors: X, Y, con il sensore principale per primo (cebc79ce7).Aggiunto il Dynamic Frame Reading (attivo per impostazione predefinita), che ricalcola la risoluzione di streaming raw ottimale per ciascun formato di pixel (
BINARY,GRAY,RGB565,ARGB8,JPEG,PNG) e riconfigura lo stream (75c073bdb, 0da2f79d0).Aggiunta la decodifica del framebuffer per i formati di pixel raw
BINARY(mono 1-bpp) eARGB8(alpha a 32 bit), così questi tipi di immagine ora vengono visualizzati nel viewer (dabb82062).Su Windows, Connect ora cerca i dispositivi USB contrassegnati con un problema dal sistema operativo e avvisa con un elenco dei dispositivi difettosi che potrebbero bloccare la connessione (1a5beb081, 1b59cd78e).
Aggiunto un indicatore di registrazione nella barra di stato: un pulsante verde
Registeredo coralloUnregisteredper la camera connessa, cliccabile per registrare la scheda (a8c98a4b9).Il viewer del framebuffer ora può visualizzare un messaggio di testo centrato inviato dallo script in esecuzione tramite un nuovo codice di escape
FB_MESSAGEinvece di un’immagine (530048201).Aggiunte nuove voci al model-zoo: modelli di stima della profondità ST FastDepth (224/256/320), un modello di posa ST head-landmarks, modelli per le mani di rilevamento del palmo e hand-landmarks, e un modello BlazeFace di rilevamento del volto frontale (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).
Aggiunto uno script di self-test esclusivo per le build di fabbrica (camera, IMU, ToF, WiFi, LAN) che viene incluso e aperto automaticamente all’avvio nella variante factory dell’IDE (0db7fbbb0); la parte LAN del test per RT1060 è attualmente disabilitata (48370d022).
Altre modifiche e miglioramenti¶
Save in place: il salvataggio di uno script non espelle più l’unità della camera; l’IDE scrive
main.pye svuota il volume su disco (FlushFileBufferssu Windows,syncfssu Linux,sync_volume_np/F_FULLFSYNCsu macOS), così il dispositivo rimane montato (1614c572f, 6928b51ea, 35ed53967).Le azioni della barra degli strumenti cliccate mentre la camera è occupata (disabilita framebuffer, comprimi JPEG, salva script, configura impostazioni) ora vengono accodate ed eseguite automaticamente quando il dispositivo è libero, invece di mostrare una finestra di errore Busy (f4315f0a4).
Il viewer del framebuffer ora utilizza per impostazione predefinita l’adattamento alla vista, così l’immagine si ridimensiona automaticamente alla finestra all’avvio, e il pannello di output del terminale seriale ora viene mostrato per impostazione predefinita all’avvio (f3ce4dc75).
I file di modello compilati con estensione
.liteora vengono riconosciuti ovunque: filtro e visualizzazione nel browser del model-zoo, allineamento ROMFS del firmware, e i compilatori Vela/STEdge AI ora emettono output.lite(f3ce4dc75).La finestra di dialogo di compilazione modelli STEdge AI (N6) ora analizza e segnala le percentuali di utilizzo di RAM NPU e hyperRAM e copia l’output di rete ricollocato in un file corrispondente all’estensione del modello (f3ce4dc75).
Il browser del model-zoo ora mostra la colonna Size dei file e allarga la colonna del nome per adattarla, invece di nascondere la dimensione (f3ce4dc75).
Il template del nuovo script è stato aggiornato alla nuova API del modulo
csie usa per impostazione predefinita il framesize VGA, e l’esempio Hello World incluso è stato cambiato dal framesize QVGA a VGA (f3ce4dc75).La finestra di dialogo Convert Video è stata riscritta per utilizzare la finestra di dialogo loader condivisa con output colorato, messaggi di successo/fallimento, un pulsante OK-to-close e un errore chiaro quando FFMPEG non è disponibile sulla piattaforma (f56efc7be).
Il viewer del framebuffer ora mostra un avviso lampeggiante quando un’immagine
JPEG/PNGè troppo grande per essere bufferizzata e inviata, tramite un nuovo codice di escapeFB_BUFFER_ERROR(fda826126).L’ingresso nel bootloader DFU ora forza il bootloader a rimanere residente sul firmware con protocollo V2, con un rilevamento di versione che ricade su un reset semplice sui bootloader più vecchi (<1.0.2) che potrebbero bloccarsi se forzati (975857221).
Rinominate e riorganizzate le cartelle dei modelli di rilevamento oggetti ST (
st_yolo_lc_v1inyolo_lc,tiny_yolo_v2inyolo_v2, i modelli personyolov8nin semplici file denominati per dimensione) e rimosse le grandi varianti int8 ditiny_yolo_v2(34240cc3c).La temporizzazione seriale ora viene regolata tramite le chiavi di override
protocoldel filesettings.jsondel firmware (overrideReadTimeout,overrideReadStallTimeout,overridePerCommandWaite le chiavi V2overrideCRC/overrideSEQ/overrideACK) invece dei flag della riga di comando all’avvio (019d8bf1d).Impostato il limite di lunghezza riga del language-server Python a 120 colonne per flake8 e pycodestyle, così le righe lunghe non vengono più segnalate al valore predefinito di 79 (dabb82062).
Ridotto il set di modelli di machine learning inclusi spostando la collezione di modelli Qualcomm e
google/mobilenet_v1inmodels_unusedper ridurre le dimensioni dell’installer (c44ddba20).
Correzioni di bug¶
Le finestre di dialogo di avanzamento del download del firmware e dell’aggiornamento delle risorse sono state rese resistenti ai crash usando le protezioni
QPointer, così non utilizzano più una finestra di dialogo eliminata se viene chiusa durante il download (f3ce4dc75).La scansione delle unità ora continua a riscansionare finché non viene trovata l’unità USB della camera e cancella le voci di unità obsolete alla disconnessione, eliminando il precedente trucco del timer one-shot (a31d41b4e).
Diverse correzioni di connessione e seriale: i sensori nascosti (ad es.
SoftCSI) non ingombrano più il tipo di sensore visualizzato, un timer keep-alive seriale su Windows previene gli stalli USB, Start non riavvia più uno script già in esecuzione, e il canale della camera viene disconnesso in modo pulito alla chiusura della porta (a8e467be6).La vista del profiler ha ripristinato la selezione dei contatori di eventi PMU per colonna (menu di eventi selezionabili) e lo stato salvato di contatori/intestazioni che erano stati temporaneamente disabilitati (40c679e90).
Supporto di piattaforme e strumenti¶
Base Qt Creator: 14.0.2.
Firmware incluso: aggiornato dalla 4.7.0 alla 4.8.1, ricompilando il firmware per OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060 e le schede Arduino GIGA/Nicla Vision/Portenta H7 (2657818ca).
Corretto l’handshake della versione di protocollo su macOS per le schede RT1062 e AE3 suddividendo il trasferimento USB multi-comando in pezzi di dimensione
USBDBG_LENche quelle schede possono gestire (6b9d5f842).Rielaborato il pacchetto driver Windows incluso: aggiunti file driver firmati
.cat/.infper scheda (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) e spostati i driver seriali CDC in una nuova cartellaopenmvcdccon un installer automatico basato su dpinst (439557829, ba3b01bfb).Aggiunto il supporto per le revisioni più vecchie del sensore camera MT9V032 registrando gli ID sensore
0x1311e0x1312(insieme all’esistente0x1313) comeMT9V0X2(eaaa624e3).
Modifiche incompatibili¶
Questa release non ha rotture nell’API di scripting, ma ci sono alcuni cambiamenti del flusso di lavoro visibili all’utente:
Il salvataggio di uno script non espelle né smonta più l’unità USB della camera. L’IDE ora svuota i buffer del volume in loco, così il dispositivo rimane montato dopo un salvataggio.
I flag seriali all’avvio
-override_read_timeout(predefinito 5000 ms),-override_read_stall_timeout(predefinito 1000 ms) e-override_per_command_wait(predefinito 1 ms, 2 ms su macOS) sono stati rimossi; la temporizzazione seriale ora viene configurata tramite le chiavi di overrideprotocolnel filesettings.jsondel firmware (019d8bf1d).I bootloader inclusi ora vengono forniti solo come
.bin; i file.dfudi firmware e bootloader per scheda sono stati rimossi.