Sono in procinto di scrivere una pipeline di analisi delle immagini e ho colpito un po 'un ostacolo. Ecco la vista da 30.000 piedi:
- Le immagini arrivano come immagini PNG con codifica Base64 tramite l'input standard
- Le immagini vengono decodificate ed elaborate. Non credo che i dettagli siano particolarmente rilevanti, ma sono lieto di offrire dettagli sotto forma di modifica.
- Una volta completata l'analisi, il intero stream deve essere concatenato in un formato cercabile, con data e ora (ovvero un file video di qualche tipo) e salvato su disco.
La mia domanda riguarda stage 3
. In questa fase finale della pipeline, ogni frame avrà una serie di funzioni associate che sono state estratte tramite l'analisi dell'immagine eseguita in stage 2
. Mi piacerebbe per il formato di output finale (il formato video) per preservare questa informazione accanto al frame che lo "possiede". In altre parole, si dovrebbe pensare a questo come a un canale separato che si evolve parallelamente ai dati video, bloccato allo stesso riferimento temporale. Ciò mi consentirebbe in particolare di trattare le funzionalità come serie temporali.
Ecco un semplice diagramma per illustrare ulteriormente ciò che sto cercando di ottenere.
-0 ms--16 ms--32 ms--48 ms--64 ms- ... n ms -> # time channel
-F1----F2-----F3-----F4-----F5---- ... Fn ---> # video channel
-1.1---3.6----5.0----2.6----3.1--- ... 11.2 -> # data channel 1
-100---105----120----96-----101--- ... 52 ---> # data channel 2
Come potete vedere nello schema sopra, ci sono due canali dati (sebbene, idealmente, il formato dovrebbe supportare un numero arbitrario di canali) i cui valori si evolvono nel tempo. Tieni presente che il canale time
non deve necessariamente essere un canale effettivo, per sé , ma è stato illustrato come tale semplicemente per mostrare che i canali video e di dati sono rappresentati in funzione del tempo.
Per lo meno mi piacerebbe essere in grado di popolare ogni "indice" di ogni canale con un int o un float. Idealmente, tuttavia, mi piacerebbe essere in grado di mantenere un riferimento ad alcuni dati binari di lunghezza arbitraria.
Oltre a fornire le funzionalità di cui sopra, questo ipotetico codec dovrebbe supportare alcune forme di compressione video moderna. Esiste una cosa del genere?