Possiamo usare uno smartphone non soltanto per registrare immagini, ma anche per raccogliere i dati dei suoi sensori inerziali. Ed è proprio qui che entra in gioco OpenCamera Sensors, un progetto open source nato in ambito accademico che può diventare particolarmente interessante se vogliamo sperimentare con la stabilizzazione video tramite Gyroflow.
Quando si parla di video girati con lo smartphone, siamo ormai abituati a dare per scontata la stabilizzazione elettronica. Ma c'è un'altra possibilità: invece di lasciare che sia la fotocamera a decidere tutto automaticamente, possiamo registrare anche i dati provenienti dal giroscopio e dall'accelerometro, per utilizzarli successivamente durante la post-produzione.
La parte interessante non è soltanto la fotocamera
Uno smartphone moderno contiene una piccola quantità di sensori che normalmente utilizziamo senza nemmeno rendercene conto: accelerometro, giroscopio, magnetometro e altri sensori possono fornire informazioni sul movimento e sull'orientamento del dispositivo.
OpenCamera Sensors nasce proprio con l'idea di registrare questi dati insieme al video, mantenendo una relazione temporale sufficientemente precisa fra immagini e sensori.
Il risultato è una registrazione composta non soltanto dal video, ma anche da una serie di dati che descrivono come si è mosso fisicamente lo smartphone durante la ripresa.
Da dove arriva OpenCamera Sensors?
La storia del progetto è particolarmente interessante perché non nasce come semplice app commerciale per smartphone.
OpenCamera Sensors è legato al lavoro del Mobile Robotics Lab di Skolkovo Institute of Science and Technology (Skoltech), nell'ambito della ricerca su robotica mobile, computer vision e sincronizzazione dei dati provenienti da dispositivi diversi.
Il progetto è quindi un buon esempio di uno strumento nato da una necessità di ricerca e successivamente reso disponibile come software open source.
Il repository originale di OpenCamera Sensors su GitHub è oggi archiviato; esiste anche una versione nel repository prime-slam/OpenCamera-Sensors.
Il punto critico: non basta avere Camera2
⚠️ Attenzione
Il supporto Camera2 non garantisce da solo la compatibilità con OpenCamera Sensors.
Il telefono deve supportare anche la sincronizzazione temporale fra fotocamera e sensori inerziali. Per questo il controllo definitivo va effettuato direttamente in OpenCamera Sensors, verificando la disponibilità dell'opzione Enable sync video IMU recording.
Android mette a disposizione le API Camera2, che consentono alle applicazioni di accedere in maniera più approfondita alle funzioni della fotocamera. I dispositivi possono però offrire livelli di supporto differenti.
Per questo un'applicazione che ci dica semplicemente che il telefono supporta Camera2 non è sufficiente per stabilire se sia adatto al nostro scopo.
Prova in 2 minuti
🧪 Prova in 2 minuti
-
Controlla Camera2
Apri un'app di diagnostica Camera2, ad esempio Camera2Probe, e verifica il livello di supporto della fotocamera che vuoi utilizzare. -
Apri OpenCamera Sensors
Abilita la Camera2 API e cerca nelle impostazioni relative all'IMU l'opzioneEnable sync video IMU recording. -
Registra qualche secondo
Effettua una breve registrazione e controlla che, oltre al video, vengano prodotti i dati del giroscopio e i relativi timestamp. -
Prova Gyroflow
Importa la registrazione in Gyroflow e verifica che i dati giroscopici vengano riconosciuti.
In altre parole:
Camera2Probe ci dice quanto è capace la fotocamera; OpenCamera Sensors ci dice se è capace di fare quello che serve a noi.
Ed entra in gioco Gyroflow
Gyroflow è un software open source per la stabilizzazione video basata sui dati del giroscopio.
La cosa particolarmente interessante per il nostro esperimento è che Gyroflow supporta direttamente i dati provenienti da OpenCamera Sensors.
Questo significa che non siamo necessariamente costretti a trasformare manualmente i file CSV prodotti dall'app in un altro formato: possiamo provare a fornire direttamente la registrazione a Gyroflow e verificare se il software riconosce correttamente i dati disponibili.
Gyroflow è disponibile su GitHub e la documentazione ufficiale di Gyroflow descrive nel dettaglio il funzionamento del software e le sorgenti di dati supportate.
Perché non lasciare semplicemente attiva la stabilizzazione?
La domanda è legittima: se lo smartphone dispone già di una stabilizzazione video, perché complicarsi la vita registrando anche i dati del giroscopio?
La differenza sta soprattutto nel momento in cui viene effettuata l'elaborazione.
Con la stabilizzazione integrata nella fotocamera, una parte dell'elaborazione viene effettuata durante la registrazione. Con i dati inerziali separati possiamo invece rimandare la scelta e l'elaborazione alla fase di post-produzione.
Questo può essere interessante quando vogliamo sperimentare diversi livelli di stabilizzazione, modificare il comportamento della correzione o semplicemente capire meglio cosa succede durante una ripresa.
Inoltre, avere a disposizione i dati grezzi del movimento può essere utile anche in altri ambiti, non soltanto nella stabilizzazione video.
Qualche accorgimento
Se lo scopo è sperimentare con Gyroflow, conviene evitare, quando possibile, di sommare alla successiva stabilizzazione software altre forme di stabilizzazione già applicate durante la registrazione.
In particolare può essere utile verificare se la fotocamera consente di disabilitare:
- stabilizzazione video elettronica;
- OIS, cioè la stabilizzazione ottica;
- altre elaborazioni automatiche legate al movimento.
Non significa che queste funzioni debbano sempre essere disattivate: dipende dal telefono e dal risultato che vogliamo ottenere. Per un test controllato, però, è interessante partire da una situazione il più possibile semplice.
Come installarlo?
OpenCamera Sensors è un progetto open source e può essere installato anche attraverso F-Droid.
Una volta installata l'app, il primo passo non dovrebbe essere quello di iniziare subito una lunga registrazione, ma piuttosto quello di verificare le impostazioni Camera2 e la possibilità di effettuare la sincronizzazione fra video e IMU.
⚠️ Attenzione
Camera2Probe è soltanto un controllo preliminare. Il fatto che uno smartphone mostri un supporto Camera2 completo non significa necessariamente che OpenCamera Sensors possa sincronizzare video e IMU nel modo necessario.
Camera2Probe: quale scegliere?
Esistono diverse applicazioni con nomi molto simili dedicate all'ispezione delle capacità Camera2 dei dispositivi Android.
Lo scopo è comunque sempre lo stesso: ottenere una panoramica delle caratteristiche esposte dalla fotocamera attraverso le API Camera2.
Per il nostro caso non è necessario trasformare questa verifica in un'analisi complicata. Ci interessa soprattutto capire se il dispositivo espone un livello di supporto sufficiente per procedere con il test.
Una delle applicazioni disponibili è Camera2Probe di Tobias Weis.
La verifica più importante, però, resta quella effettuata direttamente da OpenCamera Sensors.
Non solo il telefono che usiamo tutti i giorni
Un aspetto interessante di questo approccio è che non richiede necessariamente una videocamera dedicata particolarmente sofisticata.
Un vecchio smartphone compatibile può diventare un piccolo dispositivo di acquisizione inerziale sincronizzato con una videocamera, oppure può essere utilizzato autonomamente per sperimentare tecniche di stabilizzazione e computer vision.
È un modo interessante per dare una seconda vita a dispositivi che altrimenti finirebbero inutilizzati in un cassetto.
Un piccolo esempio di filosofia open source
Forse l'aspetto più interessante di OpenCamera Sensors non è nemmeno la singola applicazione.
È il percorso che rappresenta: un problema nato nell'ambito della ricerca, la necessità di acquisire dati in maniera precisa, la realizzazione di uno strumento software e infine la possibilità per chiunque di utilizzare quei risultati per fare esperimenti completamente diversi.
È esattamente il genere di progetto che rende interessante l'ecosistema open source: non necessariamente un prodotto finito per tutti, ma uno strumento che permette a qualcun altro di partire da lì e costruire qualcosa di nuovo.
In breve
- OpenCamera Sensors registra video e dati dei sensori inerziali dello smartphone.
- Il progetto ha origini nel mondo della ricerca accademica e della robotica mobile.
- Il supporto Camera2 è importante, ma da solo non garantisce la compatibilità.
- La verifica fondamentale è la disponibilità della sincronizzazione video + IMU.
- I dati prodotti possono essere utilizzati direttamente da Gyroflow.
- Un vecchio smartphone compatibile può diventare uno strumento interessante per esperimenti di video e movimento.
Link e approfondimenti
- OpenCamera Sensors – repository originale
- OpenCamera Sensors – repository prime-slam
- OpenCamera Sensors su F-Droid
- Gyroflow – GitHub
- Gyroflow – documentazione
- Camera2Probe – Tobias Weis
- Skoltech – Mobile Robotics Lab
- Mobile Robotics Lab – pubblicazioni
💡 Da provare
Se avete uno smartphone Android inutilizzato, prima di archiviarlo definitivamente provate a verificare il supporto Camera2 e la possibilità di sincronizzare video e IMU con OpenCamera Sensors. Potrebbe diventare un piccolo laboratorio per sperimentare con video, sensori e stabilizzazione.
