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

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

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.

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