Gogole Rilascia Ceres Con Licenza Open Source

No, non stiamo parlando di birra, ma di informatica, e di uno degli aspetti più teorici. Ceres Solver infatti è una libreria scritta in C++, molto ben documentata e portabile (Linux e Mac, presto Windows, poi Android), che offre agli sviluppatori un’API molto ricca di funzioni e facilmente utilizzabile che permette di risolvere un problema col metodo dei minimi quadrati.
Il metodo dei minimi quadrati  è una tecnica di ottimizzazione che permette di trovare una funzione, detta curva di regressione, che si avvicini il più possibile ad un insieme di dati (tipicamente punti del piano). In particolare la funzione trovata deve essere quella che minimizza la somma dei quadrati delle distanze tra i dati osservati e quelli della curva che rappresenta la funzione stessa.
In parole più povere si tratta di un metodo per trovare una curva che si avvicina il più possibile a un certo numero di dati sperimentali (rappresentati di solito come punti di un piano appunto). Questa tecnica è molto diffusa in vari ambiti, che vanno dall’ingegneria, alla fisica etc… Ed è noto che, in particolar modo nel caso non lineare, l’unico modo di risolvere il problema è tramite simulazioni al computer.
Le caratteristiche principale della libreria sono:
  • Differenziazione algoritmica
  • Funzioni di perdita robuste
  • Parametrizzazioni locali
  • Valutatori e risolutori lineari di Jacobiani
  • Decomposizione QR densa per problemi piccoli
  • Decomposizione sparsa di Cholesky per problemi grandi
  • Risolutori specifici di problemi di determinazione dei parametri (bundle adjustment) per la visione  digitale.

Per avere un’idea della potenza di Ceres Solver, basti dire che è alla base di tutte le funzioni avanzate di Google Maps: Google ne fa uso per allineare i dati provenienti dalle Google Cars, dagli aerei e dai satelliti, per costruire i modelli 3D degli edifici fotografati e per stimare le caratteristiche delle fotocamere dei satelliti, nel video seguente sono mostrate tre esecuzioni di Ceres Solver che sta elaborando i dati provenienti dai sensori delle Google Car per produrre un posizionamento accurato.

La linea blu mostra la posizione assoluta dell’auto nei vari istanti di tempo: all’inizio dell’ottimizzazione la posizione è imprecisa, ad ogni iterzione il solver aumenta la prececisione del posizionamento.

© 2008 Ziogeek.com

Tag: , , ,