社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

为啥SLAM代码都用C++不用Python?

计算机视觉life • 2 年前 • 228 次点击  

点击上方“计算机视觉life”,选择“星标”

快速获得最新干货

为啥SLAM代码都用C++不用Python?

2022年四月编程语言排行榜:

很多初学SLAM的小伙伴都有个疑问:号称宇宙第一语言的Python,简单好用,包又多,功能又强大,为啥SLAM算法里很少使用呢?

SLAM知识星球嘉宾刘国庆在知乎做了回答

这里再补充几点:

  1. C++具有极高的性能和运行效率,很多语言都是在C/C++基础上封装的,比如Python。就这一点足以秒杀众多的高级语言。
  2. C++发展了三十多年一直是编程常青树,一直使用,一直在发展,C++岗位需求会越来越旺盛,只增不减
  3. C++能够操控底层,非常适合和硬件打交道

C++的应用方向及招聘岗位?

C++应用方向非常广泛,包括但不限于

  • 服务器后台、应用开发
  • 逆向开发、高性能优化
  • 游戏开发、虚拟引擎
  • 嵌入式开发
  • 软件驱动、网络协议
  • 音视频编解码
  • 图形图像处理
  • 推荐系统、量化交易系统

下面是从照片网站随意截取的C++招聘岗位

我们平台有大量从事SLAM和三维视觉方向的读者,在这些岗位的招聘要求中掌握C++也是必备技能。

很多小伙伴都是机械、自动化、通信等非计算机专业,也没有经历过系统的C++训练,而在具体的项目中,比如SLAM算法框架中,通常的代码并不是我们在书上看到的那样简单直白,你以为的是

#include 
using namespace std;
int main()
{
    cout     return 0;
}

实际可能结合了大量的嵌套类模板,C++11的新功能,可能是这样的

g2o::SparseOptimizer optimizer;
g2o::BlockSolver_6_3::LinearSolverType * linearSolver;
linearSolver = new g2o::LinearSolverEigen<:blocksolver_6_3::posematrixtype>();
g2o::BlockSolver_6_3 * solver_ptr = new g2o::BlockSolver_6_3(linearSolver);
g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg(solver_ptr);
optimizer.setAlgorithm(solver);
optimizer.setVerbose(false);

for(mapint,int>>::const_iterator mit=observations.begin(); mit!=observations.end(); mit++)
{
    KeyFrame* pKF = mit->first;
    if(optimizer.vertex(id) == NULL  || optimizer.vertex(pKF->mnId) == NULL)
        continue;
    const int leftIndex = get<0>(mit->second);
    
    ORB_SLAM3::EdgeSE3ProjectXYZ* e = new ORB_SLAM3::EdgeSE3ProjectXYZ();
    e->setVertex(0dynamic_cast<:optimizablegraph::vertex>(optimizer.vertex(id)));
    e->setVertex(1dynamic_cast<:optimizablegraph::vertex>(optimizer.vertex(pKF->mnId)));
    e->setMeasurement(obs);
}

很多同学在学习SLAM的过程中感觉C++是一座难以跨越的大山,学习过程漫长而痛苦,项目开发遇到bug也不会调试,书看完了代码还是不会写,代码一改就错,一错就懵

基于此,我们邀请了业内多年工作经验的C++资深算法工程师肖老师,中科大硕士,他也是计算机视觉与OpenCV公众号博主。经过周密准备开设了课程《C++编程实战:入门与提升》,不管你是C++初学者,还是具备一些编程基础都可以学习,帮助你快速入门、夯实基础,提高项目实战经验

带你学C++,长按或扫描学习

购买课程后添加此微信进答疑群,如果对课程有疑问,也可加下面微信咨询↓

课程大纲

开课日期:2022/6/10

总共14周!每2周都有精心设计的对应章节的作业考试!优秀学员全额退款

学完课程可以收获什么?

1、本课程坚持学以致用,带领学员从零开始搭建环境,创建项目并编译运行,对于没有编程基础,或者没有C++这种编译性语言开发基础的学员很友好,无需担心跟不上学习进度;

2、课程知识点明确清晰,课程讲解中现场编写代码调试运行,所以学员可以通过学习本课程掌握C++的编程与调试技巧,学完本门课程,学员可以达到工作1年的C++开发工程师水平

3、课程讲解的很多编程技巧是需要2到3年编程经验才能掌握的,编程规范与代码优化是需要在大型互联网公司工作才能接触到的,学完本课程学员可以掌握很多这种经验;

4、本课程对开发和面试中的重要知识点都会着重讲解,最后会进行梳理,学完本课程,学员在面对C++方向知识点有要求的岗位面试时能够更有目的性的准备,求职更加得心应手。

为什么需要学习本课程?

在编程语言领域,还没有哪一个语言能如C++一般三十多年屹立不倒,始终处于编程榜前几位的,受众满天下。

在AI和无人驾驶炙手可热的当下,C++和Python两种语言傍身简直就是绝配,Python是一种解释性语言(脚本语言),在写深度学习算法的时候比较常用,而C++是一种编译性语言,所以很多的框架(如ORB-SLAM)都是使用C++编写的,要想称为一个优秀的算法工程师,不阅读一下这些优秀框架的源码,如何能够脱颖而出?

而学会C++,首先需要掌握C++的基础,在具备基础的情况下,就具备看懂C++框架代码的条件了。本课程会重点关注这些框架中的常用知识点,结合框架中的内容讲解C++,让学员真正的学即可用。

课程适合人群及基础要求

  • 适合人群:想要快速入门的高年级本科生、硕士、博士研究生等,有项目需求需要快速拥有实战经验的工程师。希望能够快速上手并学以致用的从业者。自学能力差、需要有人督促带动一起学习的朋友。
  • 应用领域:自动驾驶、增强/混合现实、机器人、无人机、AI部署、后台开发、客户端开发等。
  • 要求基础:理工科专业,对于没有编程基础的需要有知识搜索能力,有一些C/Python/Java等编程语言编程基础更好。
  • 运行环境:Win7系统以上均可,推荐Win10;Ubuntu 16.04/18.04/20.04 均可,推荐Ubuntu 18.04;
  • 硬件要求:普通台式机/笔记本电脑即可。

带你学C++,长按或扫描学习

购买课程后添加此微信进答疑群,如果对课程有疑问,也可加下面微信咨询↓

课程亮点

1、本课程重在实践,通过代码讲解知识点的语法与使用方法,更有利于提高学员的编程兴趣,而不是对着理论进行不直观的讲解,让学员一头雾水不知所踪;

2、课程讲解中对于在项目开发中常见的错误或者开发经验会做讲解,这些错误或者开发经验是需要数年的开发积累的,学员自学过程中很难将意识到这些问题,因而开发水平很难得到质的提高;

3、C++知识体系磅礴,不仅包括编码、编译、计算机的原理、操作系统,还有在项目开发中代码优化和代码规范,如果想要提高,就必须不断的重构自己的代码,并且需要看很多经典的书籍,这个过程是漫长而且痛苦的,但是优质代码的编写规范和代码优化会在课程讲解中被讲解,培养了学员从入门时就养成良好的编码规范,可以加速学员的成长;

4、本课程讲解C++中的重要知识点,而对于冷门知识点,会向学员初步讲解并告知,这些冷门知识点在良好的编程中是不被提倡的,如goto语句的无条件跳转,这样可以避免学员在实际开发项目中犯错;

5、对于求职面试中的重要知识点,在讲课过程中均会重点讲解,并且最后还会对这些重要的知识点做梳理,让学员更加学以致用,“钱”途光明。

作业、全额返现、学习基金

视频学习+作业强化提升

  • 每2章节增加针对本章学习内容的作业和考,需要在规定时间内完成作业。学习视频+作业考试巩固强化~学习效果双倍提高!

  • 全程陪伴式学习,内部交流答疑一起进步,定期公示学习情况排行榜~再也不怕学习掉队!

  • 不定期内部直播,分享学习经验和作业思路~学习收获UP UP UP!

学习基金 & 优秀学员全额返现!

  • 每个学员有3次拿奖机会:包括2次月度优秀学员(退款100),1次最终课程优秀学员(全额退款)

  • 每月公布当前累积排行榜单,排行榜前5%学员退款100元作学习基金奖励!

  • 课程结课后根据周作业、大作业、课程完成度等数据,评选最终的课程优秀学员,全额退还课程费用+发放优秀学员证书+至少1次内推机会!100%有效,等你来战!

常见问题解答

  1. 课程有实践和练习、答疑吗?
那必须的!本课程重在实践,通过代码讲解知识点的语法与使用方法,更有利于提高学员的编程兴趣,而不是对着理论进行不直观的讲解,让学员一头雾水不知所踪;
我们也设计了专门针对不同章节内容的考试练习,帮助大家巩固所学知识。并根据作业学习结果评选优秀学员,可全额返现。在课程答疑交流群里助教和讲师也会积极答疑解惑。
  1. 课程观看、答疑有效期是?
    答疑主要在开课期间,所以购买课程后务必加客服进入答疑群。后续所有的直播、答疑、讲评作业、排行榜都在课程群里进行。课程观看有效期长久有效,购买后请及时学习。
  2. 课程直播是否有提供录播?
    课程相关的内部直播提供录播。但注意学员加油站直播仅限学员观看,且不提供录播,涉及内容包括:求职经验、行业趋势、论文讲解、SLAM学习经验等。请留意课程内通知并及时参加。
  1. 课程是否可以开发票?
    可以开具增值税电子普通发票。购买课程后找课程助手开具发票即可。

带你学C++,长按或扫描学习

购买课程后添加此微信进答疑群,如果对课程有疑问,也可加下面微信咨询↓


独家重磅课程官网:cvlife.net

1、一个人啃SLAM,难受到自闭,硬顶还是放弃?

2、多传感器融合SLAM 激光雷达-视觉-IMU多传感器融合方案!

3、VIO灭霸:VIO天花板ORB-SLAM3第2期上线!(单/双目/RGBD+鱼眼+IMU+多地图+闭环)

4、视觉SLAM基础:刚看完《视觉SLAM十四讲》,下一步该硬扛哪个SLAM框架 ?

5、机器人导航运动规划: 机器人核心技术运动规划:让机器人想去哪就去哪!

6、详解Cartographer:谷歌开源的激光SLAM算法Cartographer为什么这么牛X?

7、深度学习三维重建 总共60讲全部上线!详解深度学习三维重建网络

8、三维视觉基础 详解视觉深度估计算法(单/双目/RGB-D+特征匹配+极线矫正+代码实战)

9、 VINS:Mono+Fusion SLAM面试官:看你简历上写精通VINS,麻烦现场手推一下预积分!

10、图像三维重建课程:视觉几何三维重建教程(第2期):稠密重建,曲面重建,点云融合,纹理贴图

11、系统全面的相机标定课程:单目/鱼眼/双目/阵列 相机标定:原理与实战


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/137037
 
228 次点击