本文译自 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