.. _chapter-users:

=====
Users
=====

* At `Google <http://www.google.com>`_, Ceres is used to:

  * Estimate the pose of `Street View`_ cars, aircrafts, and satellites.
  * Build 3D models for `PhotoTours`_.
  * Estimate satellite image sensor characteristics.
  * Stitch `panoramas`_ on Android and iOS.
  * Apply `Lens Blur`_ on Android.
  * Solve `bundle adjustment`_ and `SLAM`_ problems in `Project
    Tango`_.

* `Willow Garage`_ uses Ceres to solve `SLAM`_ problems.
* `Southwest Research Insitute <http://www.swri.org/>`_ uses Ceres for
  `calibrating robot-camera systems`_.
* `Blender <http://www.blender.org>`_ uses Ceres for `planar
  tracking`_ and `bundle adjustment`_.
* `OpenMVG <http://imagine.enpc.fr/~moulonp/openMVG/>`_ an open source
  multi-view geometry library uses Ceres for `bundle adjustment`_.
* `Microsoft Research <http://research.microsoft.com/en-us/>`_ uses
  Ceres for nonlinear optimization of objectives involving subdivision
  surfaces under `skinned control meshes`_
* `Matterport <http://www.matterport.com>`_, uses Ceres for global
  alignment of 3D point clouds and for pose graph optimization.

.. _bundle adjustment: http://en.wikipedia.org/wiki/Structure_from_motion
.. _Street View: http://youtu.be/z00ORu4bU-A
.. _PhotoTours: http://google-latlong.blogspot.com/2012/04/visit-global-landmarks-with-photo-tours.html
.. _panoramas: http://www.google.com/maps/about/contribute/photosphere/
.. _Project Tango: https://www.google.com/atap/projecttango/
.. _planar tracking: http://mango.blender.org/development/planar-tracking-preview/
.. _Willow Garage: https://www.willowgarage.com/blog/2013/08/09/enabling-robots-see-better-through-improved-camera-calibration
.. _Lens Blur: http://googleresearch.blogspot.com/2014/04/lens-blur-in-new-google-camera-app.html
.. _SLAM: http://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping
.. _calibrating robot-camera systems:
   http://rosindustrial.org/news/2014/9/24/industrial-calibration-library-update-and-presentation
.. _skinned control meshes: http://research.microsoft.com/en-us/projects/handmodelingfrommonoculardepth/


Publications
============

Ceres Solver is used (and cited) in the following publications:

#. **User-Specific Hand Modeling from Monocular Depth
   Sequences**, J. Taylor, R. Stebbing, V. Ramakrishna, C. Keskin, J. Shotton, S. Izadi, A. Hertzmann,
   and A. Fitzgibbon, CVPR 2014.

#. **Global Fusion of Relative Motions for Robust, Accurate and
   Scalable Structure from Motion**, P. Moulon, P. Monasse
   and R. Marlet, ICCV 2013.

#. **Recurrent neural networks for voice activity
   detection**, T. Hughes and K. Mierle, ICASSP 2013.

#. **Street View Motion-from-Structure-from-Motion**, B. Klingner, D. Martin
   and J. Roseborough, ICCV 2013.

#. **Adaptive Structure from Motion with a contrario model
   estimation**, P. Moulon, P. Monasse and R. Marlet, ACCV 2012.

#. **Visibility based preconditioning for bundle adjustment**, A. Kushal and S. Agarwal, CVPR 2012.
