计算机视觉工程师的万里长征路

前言

计算机视觉 (CV) 作为人工智能 (AI) 的子方向,近年来十分火热,广泛应用于各大领域,如人脸识别、无人驾驶、智慧交通、智慧医疗和机器人等。其网络模型和算法也是层出不穷,涉及的理论基础也十分广泛。本文将列举计算机视觉工程师的知识结构,后期也将持续更新相关技术分享博客及B站讲解视频。目的在于巩固拓展自身所学,与大家互相交流,共同进步。

1 计算机基础

虽然面试基础四大件在 CV 日后工作中可能用处不是很大,但这些往往能决定一名码农的上限(咱也是听前辈说的,还没那体会)。但实际一点来说,计算机基础在面试中所占比例不容忽视。

  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 设计模式

2 编程语言

随着 AI 的兴起,Python 这门脚本语言最近特别火。不可否认的是,Python 代码简单易学,操作方便,尤其体现在深度学习 (DL) 网络模型实现上;但企业级开发中,只会 Python 是不够的,算法的落地应用更多还是依赖 C++,很多 CV 库和 DL 框架都是用 C/C++ 写的。当然,还有 Shell 批处理语言也是不能不会的,企业级开发多在Linux系统下进行,掌握 Shell 是基石。

  • Python
  • C++
  • Shell

3 数学基础

CV 的数学门槛没有 SLAM、立体视觉、三维重建那么高,但数学理论的高低也决定了一名算法狗的上线。比如机器学习 (ML) 算法实质就是统计学,对一组数据进行特征工程,分类,回归,聚类,降维;RGB 图像可以表示为矩阵的形式;DL 网络训练技巧中的优化算法本质也是最优化方法。

  • 微积分
  • 矩阵论
  • 统计学
  • 最优化方法

4 图像处理与OpenCV

CV 处理的对象是图片或视频,因为 RGB 图像可以表示为矩阵形式,所以对图像处理也就可以理解为对矩阵进行数学运算,比如卷积;但仅仅掌握数字图像处理的理论是不够的,如何才能运用到工程上,这就离不开 CV 库的帮助了。目前常用的就是 OpenCV 了,感兴趣的朋友可以研究源码,对于理论的理解会有很大帮助。

  • 数字图像处理
  • OpenCV

5 机器学习与Scikit-learn

ML 是包含 DL 的,图像/视频本质上仍然是数据的一种,谈到数据分析,首选当然是 ML 算法,ML 算法可分为四大类:分类、回归、聚类、降维。同样地,为了能把理论运用到工程上,离不开 ML 库的帮助。目前常用的是 Scikit-learn,感兴趣的朋友可以研究源码,对于理论的理解会有很大帮助。

  • 机器学习
  • Scikit-learn

6 深度学习与框架

DL 算法是由感知机逐步演化而来,神经网络 (NN) 的训练技巧也是不断发展。不同激活函数、损失函数、优化算法对优化目标都有着不同的影响。LeNet-5 打开了 DL 算法落地的大门,卷积神经网络 (CNN) 走入人们的视野,卷积层、非线性激活、池化层、归一化、全连接层让特征提取由人工选择转为自动学习。循环神经网络 (RNN) 的出现极大促进了自然语言处理 (NLP) 的发展。生成对抗网络 (GAN) 也是 DL 算法比较有趣的一个分支,常用于图像生成。为了更高效地运用到工程上,很多框架应运而生。目前常用的有 Caffe、TensorFlow、PyTorch、Keras、MXNet。

  • 深度学习
  • TensorFlow/PyTorch/Caffe

7 CV子方向

CV 的子方向十分广泛,应用领域也很广。不过大多算法都是相通的,无非是以上知识的结晶。对于大多朋友来说,往往只需专精一个子方向即可,紧跟顶会顶刊大牛组算法即可,如 CVPR、ICCV、PAMI、AAAI。

  • 图像分类
  • 目标检测
  • 图像分割
  • 目标跟踪
  • 图像增强
  • 风格化
  • 人脸识别
  • GAN
  • 图像检索

小结

CV 工程师的长征路大致如此,感兴趣的朋友可以持续关注,我将定期分享以上知识点的思考总结博客以及B站讲解视频,期待与你的交流切磋。谢谢观看。

发布了15 篇原创文章 · 获赞 14 · 访问量 1234

猜你喜欢

转载自blog.csdn.net/chiyukunpeng/article/details/105149818