Google выложил в открытый доступ библиотеку C++ Ceres Solver, которая осуществляет моделирование и анализ сложных проблем нелинейной минимизации суммы квадратов.
Метод наименьших квадратов используется в разных областях: от построения сложных кривых в статистике до построения 3D-моделей по фотографиям в системах компьютерного зрения. В Street View система используется для привязки ожидаемого положения автомобиля (модель) к реальным координатам (данные).
В блоге Open Source at Google перечисляют основные особенности библиотеки.
- Простые, выразительные API
- Автоматическая дифференциация
- Надёжная функция потерь
- Локальная установка параметров
- Интерпретаторы Якоби и линейная алгебра, всё работает в тредах
- QR-разложение плотной матрицы (использует библиотеку Eigen)
- Разложение Холецкого разреженной матрицы (использует SuiteSparse)
- Специализированные методы для проблем 3D компьютерного зрения
- Свободная лицензия (новая BSD)
- Масштабируется от серверов до мобильных телефонов
Автор: alizar