秋招攻略—如何成为一名图像算法攻城狮(上篇)—知识学习篇

秋招攻略—如何成为一名图像算法攻城狮(上篇)—知识学习篇

从6月份开始一直到现在,5个月的秋招历程让我成长了许多,最终收到了华为、荣耀、vivo、科大讯飞、奥比中光、汇川等10余家公司的图像算法offer。

中间自己踩了很多坑,也有面试面到崩溃的时候,好在自己最后都挺过来了,希望可以通过这篇文章能够给想找图像算法或者机器视觉岗位的同学们一点启发。

想要分享的内容较多,因此我把秋招攻略分为了上篇(知识储备和学习)下篇(秋招面试),建议刚入学或不知如何学习图像算法相关知识的童鞋们先看上篇再看下篇,快找工作的童鞋们可以直接看下篇(下篇正在加紧赶制中)。

先说说我自己的情况,本科来自一所211高校的机械专业,大三的时候因为对图像算法和人工智能很感兴趣,毅然决然跨专业保送到了985高校的控制专业,导师的研究方向是机器人和机器视觉,还有传统图像算法。刚入学的时候我自己的软件算法底子很差很差,差到连C语言的指针是个啥都不知道,研究生前一年半基本就是一直在看论文,学C++和图像算法的相关知识,也没做什么像样的项目,就这样迷迷瞪瞪了一年半,依旧很迷茫。后半年在一位师兄的亲自指点下,我的算法设计能力和工程落地能力才有了很大进步,也才明白找工作究竟要怎么学习——“面向就业学习”。

一、 如何学习——“面向就业学习”

首先在找图像算法类岗位的时候,要先了解企业究竟需要具有何种素质的应届生。我总结就是两个字——“落地”

**不管你的算法设计的多么天花乱坠,你一定要让你的算法真正“跑”起来,在物理实体上真正运行起来,再不济也要把代码集成,写一个带界面的软件,不要只有一个黑窗口。**因为在企业中,一个研发人员设计的算法,最终必须要在实际的工业场景中成功运行起来才可以,简称“落地”。

而在学校中,搞图像处理计算机视觉的人很多,但是把视觉算法用在机械臂、无人机、slam小车上,并让这些设备运行起来的却不多,大多数人是止于跑通代码却不注重实际作用在物理实体上的表现。

例如我在做机械臂的手眼标定算法的时候,系统实际精度和代码计算的结果差得很多,机器人通信和规划也相继出现问题,真正动手实验遇到的问题比跑通代码多得多,把算法设计出来,并把算法部署在实际平台中,用在工业场景中,并且在这个过程中把遇到的问题一一解决,**自己的算法设计能力和工程落地能力都得到了提高,这些能力才是企业想看到的。**当然了,如果你有高水平论文,那当然更好了,不过论文只是锦上添花的东西,还是要以工程“落地”为第一要素,如果自己的实验室工程项目太少,大家可以考虑去个大公司实习。

二、 应该学啥?

确定了“面向就业学习”的路线之后,那么就应该在研一尽可能完备自己的图像算法知识体系,然后在研一下学期或者研二开始大展身手,从项目中继续学习,把项目落地。

图像算法岗的知识架构主要包括两个部分,一个是图像算法,一个是编程。

2.1 图像算法

图像理论又分为二维和三维的,三维是在二维的基础上发展起来的。关于二维图像的学习,首推冈萨雷斯的《数字图像处理》,一本很厚的绿色封皮书,这本书几乎囊括了二维图像的所有基础知识,很适合入门。但大家在第一次阅读时,千万不要太细读,遇到实在不懂的地方就跳过去,或者借助网上的其他资料来辅助阅读。小编比较喜欢视频与书籍配合学习的方法,视频推荐B站上的**中科院刘定生老师的《数字图像处理与分析》**的课程。
在这里插入图片描述

有了二维图像的基础知识之后,关于三维的学习,主要就是点云PCL库,推荐直接去官网上看文档,还包括立体匹配、三维重建、结构光、TOF相机、SLAM等一些比较细分的方向,这些方向建议大家直接去看相关的高质量博客和经典论文,或者自己研究方向领域比较知名的经典书籍。

注意:大家在学习二维图像基础知识的时候,不要一上来就看非综述类论文,因为这种论文通常都针对于一个很细很深的研究点进行讨论,不利于初学者搭建知识体系,一本经典的书籍或者综述,论述的知识较全面。

2.2 编程语言

编程语言的选择建议大家先去和自己实验室的研二研三师兄师姐打听一下,实际做项目过程中用到最多的是哪种语言,一般是C++或者Python,建议大家在学有余力的时候,这两种语言都学一学。

我的实验组主要用C++,但对于我这种当年连指针是个啥都不知道的编程菜鸟来说,学C++很吃力,中间也踩了不少坑,视频课程推荐B站上黑马程序员的C++课程,一边看视频一边敲代码,最后达到自己能写出个贪吃蛇的游戏就算入门了,书籍推荐**《C++ Primer》**,更多的编程技巧还是要从项目中学习,把一个实际工程任务抛给你的时候,才能真正调动大脑把所学的编程技巧用起来。
在这里插入图片描述

再一个就是OpenCV库,这是图像处理的常用库,推荐书籍是毛星云的**《OpenCV3编程入门》**,利用OpenCV库和数字图像处理的基础知识,自己就可以做一些小demo了。

在这里插入图片描述

2.3 其他辅助类的课程

针对于不同的落地场景,还可能需要学一些辅助类知识,比如树莓派、FPGA、机器人学、无人机等等,做项目的过程中需要学啥就学啥。

2.4 关于论文

首先,如果你的目标是找工作,我不建议把太多的时间放在论文上,也不要养成天天看论文,在论文中找问题的偏路。

从工程“落地”角度来说,对待论文的态度应该是,**我在做项目的过程中,我自己的已有知识不能把这个问题很好地解决,那么我再去从论文中找相关的方法,把这个方法复现一下,看能否解决问题,再不断地迭代。**论文只是个工具,不要为了写而写,如果做项目的过程中有了比较不错的点子,可以总结成一篇论文。

三、 小结

当你决定从事图像算法岗的相关工作时,**意味着你必须对项目中的算法有深刻的认识,并且你所做的项目一定要落地才行,**你的算法可以驱动机器人动起来、无人驾驶的小车跑起来,即使效果不好,也不能单纯的跑代码。项目落地遇到的困难,都是你成长的必经之路。纯跑代码,太过于虚无缥缈,不要让自己的算法束之高阁。

总结来说就是三句话:一定要项目落地,一定要项目落地,一定要项目落地!!!

最后,请大家给我一个赞一个收藏一个关注吧!这是我的CSDN文章处女作,希望大家多多支持哈!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值