个人介绍
在Linux系统下熟练使用C/C++进行后台开发;
有在TX1/TX2,iMX6,rk3399等嵌入平台上的开发经验;
有TCP/IP和多线程开发经验;
对数据结构和算法设计有一定程度的理解;
掌握软件工程理论和常用软件开发方法;
了解机器学习的基本算法,如SVM、回归方法、深度神经网络等,对机器学习充满浓厚兴趣;
具有基于OpenCV的机器视觉算法开发经验;
从事过图像算法的GPU并行加速工作,对大规模并行计算有深刻理解;
严密的数学思维、突出的分析和归纳能力;
良好的英语读写能力,能够快速阅读英文论文及文档
立志于从事机器学习、gpu并行计算,opencl,neon相关的算法移植和加速优化工作
工作经历
2017-05-08 -2019-09-08深圳易成自动驾驶技术有限公司软件主管
1.负责无人车软件架构设计,激光雷达、毫米波雷达、视觉、超声波雷达等感知模块算法的移植以及传感器的使用测试 2.负责融合预测、决策规划、控制模块算法在相应嵌入式平台上的优化和移植。 3.负责与人工智能部门算法工程师以及FPGA硬件加速部门工程师协调对接,共同实现深度学习算法的裁剪、定点化以及软硬件加速。 4.负责软件研发团队员工管理和考核工作
2014-02-18 -2017-05-01中国电子科技集团公司第三十研究所软件工程师
利用大规模计算机集群对hash加密数据进行逆向分析,搭建国内硬件规模最大,求解速度最快的数据分析系统。 1.CPU-GPU服务器集群架构设计 2.算法的并行优化
教育经历
2011-07-01 - 2013-12-26国防科技大学软件工程硕士
研究方向为机器视觉,机器学习以及GPU高性能计算。主修课程:计算机体系结构、高等工程数学、并行计算等
技能
最直接用到的 AI 技术是图像抠图算法(image matting)。但为了得到更好的抠图效果,目前很多抠图技术都采用多种算法结合的解决方案,还包括显著性物体检测、图像语义分割和实例分割等算法。 相比图像抠图,视频抠图算法最大难点是时序一致性。对于视频抠图结果,一帧帧看结果都很不错,但是连在一起,边缘地区就会有抖动,抠图时序的一致性不够好。视频智能抠图技术就是在图像抠图技术基础之上,增加视频物体分割等算法来保证视频抠图结果的时序一致性,达到“抖动小,更平滑”的分割效果。期望达到的效果:抠图后,视频中的人神情、动作非常生动、自然,人物的头发丝纤细可见,视频主体人物和背景的衔接流畅,能够准确区分,整个画面很完整。 视频的前景和背景颜色比较接近,在这样的情况下,要保证抠图对象的完整性和局部细节的精确度,所需的技术难度较高,尤其对于头发丝、衣服褶皱等抠图精细程度高的部分。视频人物抠图,从人物分割来看,算法模型需要学习人物的先验知识,在前景 / 背景颜色比较接近和复杂纹理的情况下,人的先验知识可以起到重要的作用,能保证抠图对象的完整性。 为了既保证对象的整体性,又能得到精确的局部细节,从算法角度,高层特征和低层特征需要很好的融合在一起。目前很多图像分割网络,例如 HRnet 在这方面都处理得比较好。任海兵团队参考 HRnet、Deeplab V3+ 等语义分割网络提出了对应解决方案,该方案目前在最重要的语义分割数据集 Cityscape Test 数据集上达到了 84.3% 的正确率。 目前特别智能的抠图算法,特别是视频抠图算法,还处于实验室研究阶段。算法特别复杂,需要大量的计算资源,且算法本身也不是特别成熟,在通用场景和复杂场景下达不到用户的预期,因此只在某些特定的领域内针对具体场景进行优化,达到小范围的商用。市面上,商用软件中的抠图算法,需要处理更加通用的场景,加之受计算资源限制,无法使用特别复杂的算法,还达不到特别的智能。深度学习在像素级分类任务上取得了较大的进展。智能抠图相关的算法,例如图像物体分割、视频物体分割、Image Matting 等也取得了较大的进步。视频抠图在实现高度智能、大规模商用方面的潜力值得期待。
1.负责德尔福ESR/SSR以及大陆ARS408毫米波雷达和的数据接口,完成其在不同硬件平台(X86/arm/arch64),不同系统(Windows/Linux)下的数据解析工作。利用激光雷达、惯导、方向盘转角、横摆角等多种传感器对毫米波雷达数据进行测试验证。 2.激光雷达目标感知算法移植 2.1在RK3399上完成激光雷达感知算法依赖的PCL和OpenCV库移植工作,验证RK3399作为激光雷达感知算法硬件平台的可行性。 2.2设计和实现激光雷达感知模块多线程框架,将激光雷达点云数据实时解析与代码集成,分析点云目标检测的性能瓶颈。 2.3利用多线程、OpenMP、GPU OpenCL等多种手段进行优化测试,最终基于RK3399硬件平台将激光雷达感知帧率从1fps以下逐渐提升到9.6~9.9fps,延迟降低到100~110ms。 3. 组合定位的嵌入式移植与测试 3.1对组合定位算法的计算复杂度进行了详细分析和测试,整个系统包括6个线程:分别是imu数据接收和解析、激光雷达数据接收、激光雷达数据解析、点云局部地图构建、激光雷达定位、定位融合。 3.2完成点云地图创建算法的优化。点云地图的更新与匹配是算法的瓶颈,首先考虑将该模块进行gpu移植,但是由于数据量非常大,在数据传输上消耗的时间比较多,总的加速效果并不明显。通过进一步分析算法,局部地图并不需要每次重新创建。因此设计了一种新的点云局部地图更新方式,保留第一次N帧点云数据创建的地图,以后每次只对最新帧的点云数据进行运算,然后根据运算结果对地图进行相应的更新,可以比较明显的降低运算量。通过这种方式优化后,该模块的耗时可以保持在100ms左右。 3.3分析激光雷达定位模块的并行性。其中粒子滤波搜索算法的并行度很好,但是内部调用了一些openCV库函数。目前完成了该模块所有函数的C语言改写,包括图像转换、直方图均衡化等。 3.4充分利用TX2嵌入式平台的计算资源,将激光雷达局部建图部分移植到GPU上,并对CUDA代码进行有针对性的优化和测试。该部分时间从原来ARM平台上的220~280ms降低到相对稳定的60~70ms。分析粒子滤波搜索算法的并行性,在ARM平台上利用多线程将耗时从90~150ms降低到70~80ms。将TX2调整到最优性能,算法稳定工作后,实测分析CPU占用率为300%~350%。CUDA核函数blockNum和ThreadNum等参数也已经接近最优值。 4.在公司自研Gemini硬件平台上完成激光雷达感知、组合定位、感知融合、决策规划模块的移植和测试。 5.负责系统底层通信库代码实现和维护。基于UDP组播,采用C语言实现协议无关的通信库函数