本文译自 Google GEO 软件工程师 Sameer Agarwal 和 Keir Mierle 发布在 Google 开源博客中的文章。
在科学和工程的广大领域,从统计学中复杂的曲线拟合 ,到计算机视觉中从照片构建 3D 模型,都存在非线性最小二乘问题(non-linear least squares)。今日,我们非常高兴宣布发布我们在Google所使用的解决方案。
Ceres Solver 是一个可移植的 C++ 库,可用来建模并解决大型复杂的非线性最小二乘问题。它的显著特性如下:
A simple, expressive API | 简单易读的 API
Automatic differentiation | 自动微分
Robust loss functions | 稳健的损失函数
Local parameterizations | 局部参数
A threaded Jacobian evaluators and linear solvers
Dense QR factorization (using Eigen) for small problems
Sparse Cholesky factorization (using SuiteSparse) for large sparse problems
Specialized solvers for problems in 3D computer vision | 三维计算机视觉中的问题的特定解决方案
A liberal license (New BSD)
Scales from servers to cell phones.
在Google,我们使用 Ceres Solver 来估测街景车、飞机和卫星的姿态;给 PhotoTours 建立 3D 模型;估测卫星图像传感器的特征,等。比如:下面这个视频展示了三个实例(Youtube),Ceres Solver 融合从安装在街景车上的传感器发送的数据,估测街景车自身在地球表面的正确位置和方向。
我们希望你会下载Ceres Solver,解决一些问题,并在邮件列表中分享你的经验。
By Sameer Agarwal & Keir Mierle, Geo Software Engineers