当前位置:网站首页>Performance comparison between Ceres solver and g2o
Performance comparison between Ceres solver and g2o
2022-07-07 06:32:00 【chennuo0125-HIT】
Preface
ceres-solver and g2o yes slam Common optimizers in the field , among ceres-solver By vins-mono Use , and g2o By orb-slam3 Use , So which optimizer is more suitable for slam Used in algorithm development ?
test
Based on these two optimizers BA The process , Then test the same simulation data set , Test program link : https://github.com/chennuo0125-HIT/test/tree/main/ceres_g2o_comparer, Press readme The following results can be obtained by compiling and running :
************** solve ba by g2o ***************
# Using EigenSparseCholesky poseDim 6 landMarkDim 3 blockordering 1
Performing full BA:
iteration= 0 chi2= 238086189.574891 time= 0.00782969 cumTime= 0.00782969 edges= 9135 schur= 1 lambda= 5991.771138 levenbergIter= 1
iteration= 1 chi2= 12982651.993440 time= 0.00342487 cumTime= 0.0112546 edges= 9135 schur= 1 lambda= 1997.257046 levenbergIter= 1
iteration= 2 chi2= 657425.312444 time= 0.00318212 cumTime= 0.0144367 edges= 9135 schur= 1 lambda= 665.752349 levenbergIter= 1
iteration= 3 chi2= 124163.255742 time= 0.00287256 cumTime= 0.0173092 edges= 9135 schur= 1 lambda= 221.917450 levenbergIter= 1
iteration= 4 chi2= 75275.286988 time= 0.00304911 cumTime= 0.0203584 edges= 9135 schur= 1 lambda= 73.972483 levenbergIter= 1
iteration= 5 chi2= 34439.999175 time= 0.00264852 cumTime= 0.0230069 edges= 9135 schur= 1 lambda= 24.657494 levenbergIter= 1
iteration= 6 chi2= 22057.399494 time= 0.00309912 cumTime= 0.026106 edges= 9135 schur= 1 lambda= 16.438330 levenbergIter= 1
iteration= 7 chi2= 18344.890824 time= 0.00295518 cumTime= 0.0290612 edges= 9135 schur= 1 lambda= 5.479443 levenbergIter= 1
iteration= 8 chi2= 17868.574026 time= 0.00397518 cumTime= 0.0330364 edges= 9135 schur= 1 lambda= 7.305924 levenbergIter= 2
iteration= 9 chi2= 17333.014982 time= 0.00399876 cumTime= 0.0370351 edges= 9135 schur= 1 lambda= 9.741232 levenbergIter= 2
point error before optimize: 2.96158
point error after optimize: 0.462318
************** solve ba by ceres **************
Solver Summary (v 2.0.0-eigen-(3.3.7)-lapack-suitesparse-(5.7.1)-cxsparse-(3.2.0)-eigensparse-no_openmp)
Original Reduced
Parameter blocks 708 706
Parameters 2184 2170
Effective parameters 2169 2157
Residual blocks 9135 9135
Residuals 18270 18270
Minimizer TRUST_REGION
Sparse linear algebra library SUITE_SPARSE
Trust region strategy LEVENBERG_MARQUARDT
Given Used
Linear solver SPARSE_SCHUR SPARSE_SCHUR
Threads 1 1
Linear solver ordering AUTOMATIC 693,13
Schur structure 2,3,6 2,3,6
Cost:
Initial 1.217168e+09
Final 7.973251e+03
Change 1.217160e+09
Minimizer iterations 7
Successful steps 7
Unsuccessful steps 0
Time (in seconds):
Preprocessor 0.005044
Residual only evaluation 0.004244 (7)
Jacobian & residual evaluation 0.010863 (7)
Linear solver 0.034270 (7)
Minimizer 0.053454
Postprocessor 0.000078
Total 0.058576
Termination: CONVERGENCE (Function tolerance reached. |cost_change|/cost: 4.362464e-08 <= 1.000000e-06)
point error before optimize: 2.96158
point error after optimize: 0.0354349
************** cost time **************
g2o cost time: 68.4571 [ms]
ceres cost time: 63.1568 [ms]
Conclusion
be based on " explain " Simulation data set in , It can be preliminarily determined ceres-solver It is superior to g2o.
explain
- The simulation data in the test program comes from g2o Medium ba_demo.cpp,g2o The test case is also based on the program .
- This test case only uses a set of simulation data sets , Not enough to reach a more comprehensive conclusion , If you have good test cases or other conclusions , Can maintain communication , My mailbox : [email protected]
边栏推荐
- A very good JVM interview question article (74 questions and answers)
- C language interview to write a function to find the first public string in two strings
- Markdown 并排显示图片
- LM小型可编程控制器软件(基于CoDeSys)笔记二十三:伺服电机运行(步进电机)相对坐标转换为绝对坐标
- go-microservice-simple(2) go-Probuffer
- How can I check the DOI number of a foreign document?
- 哈趣投影黑馬之姿,僅用半年强勢突圍千元投影儀市場!
- What are the classic database questions in the interview?
- Install mongodb database
- Swagger3 configuration
猜你喜欢

3531. 哈夫曼树

蚂蚁庄园安全头盔 7.8蚂蚁庄园答案

jmeter 函数助手 — — 随机值、随机字符串、 固定值随机提取

Software testing knowledge reserve: how much do you know about the basic knowledge of "login security"?

【从零开始】win10系统部署Yolov5详细过程(CPU,无GPU)

Force deduction 62 different paths (the number of all paths from the upper left to the lower right of the matrix) (dynamic planning)

ICML 2022 | explore the best architecture and training method of language model
![[SOC FPGA] custom IP PWM breathing lamp](/img/4b/5053137cf95e851ca89057e9b9c15c.jpg)
[SOC FPGA] custom IP PWM breathing lamp

一段程序让你明白什么静态内部类,局部内部类,匿名内部类

基于ADAU1452的DSP及DAC音频失真分析
随机推荐
Software testing knowledge reserve: how much do you know about the basic knowledge of "login security"?
3428. Put apples
CloudCompare-点对选取
牛客小白月赛52 E.分组求对数和(二分&容斥)
微信小程序隐藏video标签的进度条组件
Apache ab 压力测试
HKUST & MsrA new research: on image to image conversion, fine tuning is all you need
Calculation model FPS
C language interview to write a function to find the first public string in two strings
Basic DOS commands
UIC(组态UI工程)公版文件库新增7款行业素材
Common problems of caching in high concurrency scenarios
[start from scratch] detailed process of deploying yolov5 in win10 system (CPU, no GPU)
MySQL的安装
你不知道的互联网公司招聘黑话大全
[shell] summary of common shell commands and test judgment statements
matlab / ENVI 主成分分析实现及结果分析
tkinter窗口选择pcd文件并显示点云(open3d)
Laravel uses Tencent cloud cos5 full tutorial
如何解决数据库插入数据显示SQLSTATE[HY000]: General error: 1364 Field ‘xxxxx‘ doesn‘t have a default value错误