2020年-------------------------------
本人自动化专业毕业,刚毕业就是做的单片机开发,做了三年,18年初离职,并决定转行,接下来失业闭关学习了大半年(这个不推荐),没存款,期间全靠借呗花呗和朋友帮助撑着. 后来终于在18年尾成功转行进了机器人公司做机器人应用.
进了机器人公司后,岗位从机器人应用转视觉开发方向,又从视觉开发为主往上位机开发、机器人运动学方向扩展. 同时软件开发能力得到公司的认可,慢慢接手标准化软件的开发以及框架开发的工作,在纯软件的道路上越走越远.
搞单片机的时候用的是C,以STM32和LPC17XX/43XX为主,曾经为了和单片机寄存器较真,花了一年多时间自己开发出独立的STM32库函数,后来在公司搞单片机的框架化,一套代码可以适配不同的单片机平台, 侧重点在于解耦,让硬件抽象,也是因为这些经验在我转行的时候轻松得到面试官的认可.
转到机器人公司后,以C#和VB开发为主,VB为公司机器人的编程语言. 由于自己的编程底子还算可以,短短几个月内在编程能力上就跟上了其他同事. 并具备独立做项目的能力. 后来看到<设计模式>之类的书,惊为天人----这些不就是我搞单片机时想做而且在做的吗? 原来已经有人总结并整理出一套学说出来了(恕我孤陋寡闻), 再加上再微软官网啃了几遍.net的开发规范, 接下来的一年是我进步最明显的一段期间. 而在此期间得到公司的认可,工作重心偏向于标准化软件以及视觉算法开发方面,期间自学学会了WPF以及起MVVM的开发框架. 而公司所有的项目都需要我进行技术性上的可行性审核.
机缘巧合之下,19年下旬接触到项目必须要求C++实现,而部门只有我有相关的底子(领导看来,C也算是小半个C++),硬着头皮上,由于项目对算法要求很高, 涉及到linux, ROS,运动学,计算机视觉等综合应用, 期间拼了命自学,迅速捡回线性代数,然后恶补机器人学的理论和算法. 在学习到一定程度后, 数学的基础补回来之后, 看<数字图像处理>, 感觉以前看不懂的都慢慢看懂, 从此之后机器人运动学和数字图像处理等方面的理论知识打通, 从二次开发/应用的定位开始往算法的方向偏. 同时以前只会用的算法都知道了底层实现原理, 整个人的知识体系得到的提升.
如今2020年,计划接下来用闲余时间备考考研(不刻意,但是慢慢往这个方向靠),接下来需要一个研究生文凭为自己背书.
毕竟自己是也是从单片机走出来的,我很庆幸自己能够转行. 希望我的个人经历能给你一些帮助;
(玩知乎这么多年,第一次写超过100字的回答,希望能给个赞)
2022年11月中旬-------------------------------
在2020年说过, 自己想往底层算法方向走. 不满足于自己仅能基于halcon等商业库的二次开发能力.
在2020年底研究blob算法(轮廓特征计算及过滤);
2021年初-2022年中,死磕轮廓匹配算法并成功实现(感谢视觉算法及应用一书);
2022年中成功将轮廓匹配算法耗时压到跟halcon同一个数量级, 同时发现原来网上已经有人将其开源, 只是开源版本的算法精度和耗时无法满足工业应用;
2个月前将ransac以及tukey算法结合实现适应于抗离群点直线拟合和圆拟合,应用效果在工业应用中特别理想;
期间还有基于HSV的颜色空间量度计算算法,纹理分类算法等等;
后续可研究的还有颜色空间量度的颜色分类、颜色匹配、颜色高敏感的抓边算法、模板缩放及可变性的轮廓匹配等;
最后---------
好像这几年都在死磕halcon,试图用自己实现的算法库去作为halcon的平替.
整个行业基本上都是使用盗版的halcon, 本人也不知道非要自研算法是一条死路还是活路, 但是既然还有公司愿意聘用我去做这件事, 那么我会继续死磕下去.
仅此而已.
(行业内现在很流行拖拽式视觉流程布局, 抽空也搞了一个应用雏形...)
|