入职刚好一年多,恰逢年底回顾一下这一年来的工作经历,也当做年终总结
回想这年过得真的太快了宛如白驹过隙,去年参加双十一活动还历历在目。从上份工作离职的原因有个人发展的因素也有疫情对文娱行业的冲击导致业务基本停滞。最终结束了在阿里3年多的任职(本来想能受戒并参加集体婚礼就圆满了现在想想还是有点可惜的)。
工作了这些年也算经历丰富,从大四实习决定从java转前端开发,做过游戏、广告、社群、电商、文娱、电影宣发。刚开始无知懵懂想用游戏改变世界,经历过百团大战的硝烟,目睹过社群电商烧钱的疯狂,投身了文化复兴的文娱事业,还上过电影片尾的字幕。又回到最初的起点,现在还有对于程序员35岁的焦虑,使得自己不得不为未来5-10年做规划,毕竟岁数已经回不去了,还要养家糊口,这次跳槽至关重要。当时给自己设定了两个方向 一个是自动驾驶领域、 一个是医疗行业。
经过一轮密集的面试还有妥协最终获得到了 鹅厂、美团、理想汽车、小红书的offer,权衡考量之后选择了自动驾驶。其实做这个决定也是很忐忑,毕竟之前没有做这方面的经验,对这个领域也是一无所知。在入职之前提前做一个心理建设,以一个小白的身份多听多学,于是开启了这段新的里程。
项目经历
这一年的工作主要是围绕公司的战略目标,做全栈自研的自动驾驶,从0到1打造自动驾驶数据闭环能力。可能很多人不太清楚什么是自动驾驶数据闭环能力,在这简单给大家科普一下,下面着这张图就是现在在做自动驾驶研发的都在用的数据闭环能力图。为了实现感知模型和规控算法的不断迭代。
3d数据回放
实车采集上云的数据种类有很多如can数据、视频、激光雷达、gps、自动位、毫米波雷达、超声波雷达、语音、车辆感知结果等,信息量巨大,并且数据格式大多都是通过矩阵、字节流的方式,再通过压缩和加密算法上报上来。这些数据光靠人用眼去看根本无法理解。这就需要先对数据进行解密解压缩,解出视频数据,然后基于视频进行抽帧,生成时间队列和每一帧时间对应的视频信息,再基于时间队列里的每一条时间信息去解析can数据、激光雷达、gps、自动位、毫米波雷达、超声波雷达、语音、车辆感知结果数据将它们合成一帧数据数据,作为回放数据的数据源。之后将回放数据通过socket服务推送到客户端,并在客户端解析、渲染、逐帧播放,缓存数据帧用于拖拽回看,在3d场景中渲染障碍物、车道线、感知标牌等信息。
图片畸变处理
为了能获取到更广的视野采用鱼眼相机,通过4路相机获取360度车周围景象,但直接使用图像存在很严重的畸变问题,所以需要通过相机内参和畸变系数处理之后正常的展示。这个项目中应用的很多open-cv的知识,也借此机会入门了Python
h265 视频编解码
上传的视频是4k图像为了减小传输体积采用H265的视频压缩方式,但这种压缩方式在目前的浏览器中还都不支持需要自行开发,并且解码的时候需要依赖gpu计算能极大的调高效率。这里应用到了ffmpeg,了解很多关于显卡显存和计算的知识,减少显存和计算内存之间copy数据,也能提高解码效率。
音频解码
为了能更方便描述在测试过程中遇到的问题,帮助快速定位问题和问题归类,允许测试人员在遇到问题时通过上报语音描述,获取到语音信息之后平台对音频解码,并结合百度云的语音服务功能,将语音转成文字,分析文字内容并快速分类问题,并将问题标签标记到对应的上报数据,最后通过数据回放来分析问题解决问题。
AI训练平台
AI训练平台是基于k8s基础之上针对机器学习的开发、训练、优化、部署、管理的工具。底层依赖的是kubeflow集成的机器学习的能力。可以针对机器学习的不同阶段:数据预处理、自动标注、主动学习、模型训练、模型预测、服务管理等。在做项目时和很多AI算法工程师交流,了解他们工作方式和开发诉求,对机器学习有了一定的了解
仿真平台
web仿真平台,接入高精地图、车辆规控、应用仿真引擎,模拟车辆在不同地点、不同路况、不同速度,规控算法对变道、超车、避让、上下扎道的表现,评估规控模型
数据统计平台
通过数据汇总、筛查、分析生成统计图表,通过统计图表来衡量结果
应用的技术栈
分享一下我这一年里应用的技术栈,也希望能与志同道合的同学多多交流
总结这一年很忙碌的做了很多事情,也获得了很多新技能,结识了很多人,感觉这篇写的太笼统了,之后会写一些具体的问题的解决方案来分享