目录
-
0. 前言
- 我们并不会惊讶于这样一个事实:ML行业一直在改变,因为众所周知,人工智能在以创新的速度前进着
- 我的观点是,大多数ML从业者在2020年使用的的技术,在2021年来看,可能是过时的。因此,我们需要进行适应和改变
- 在这篇文章中,我将给出现如今可用的八种方法,为你开启成为一名计算机视觉(Computer Vision,CV)工程师的旅程
-
1. MOOCs
- Massive Open Online Courses,大规模在线公开课
- MOOCs是在2008年出现的用于学习的现代工具。现如今,这是数据科学家和机器学习从业者,为获取某领域的专业技能时所偏爱的方式。通常,这些课程会有人们认可的认证和证书
- 在大多数情况下,相比于在学术机构或者大学,通过MOOCs学习的价格非常低。通过折扣和付款计划为学生提供经济支持的MOOCs并不少见
- 相比于学术机构,MOOCs的另一优点是参加课程的灵活性。在线的课程和考试使你不用严格遵循学校的课程表和考试安排
- “Education is not about thinning the herd. Education is about helping every student succeed.”— Andrew Ng
- “教育不是为了筛选人群,教育是为了帮助每一个学生获得成功”——吴恩达
- 在网络上,有大量的与CV有关的MOOCs,你可能会面对的主要问题就是:如何选择你需要的网课
- 我建议您首先观察应聘者期望的技能和技术方面的工作要求,然后再选择合适的在线课程
- 这里有一些MOOCs的链接:
- 补充:
- 除此之外的MOOCs有很多,在搜索时要考虑如下因素:工作相关性、技术需求、时间长度、课程评价以及费用
- MOOCs不只适合初学者,老练的ML从业者和深度学习工程师会观看与CV特定话题相关的中、高级MOOCs来获得或提升相应的领域技能
- 在2021年,速度、适用性和实用性是机器学习从业者的重点。为了实现从学生向专家的转变,在观看MOOCs时,应该关注ML的实用方面,而不是在大学中学习到的理论内容。这会是一个省时省钱的决定。
- 注意:获得获得高级学位大有裨益,在做出从业决定之前,自己要进行深入研究
-
2. 机器学习库和框架
- 机器学习是一个用很多方法和技术解决CV问题的领域,这些问题有:目标检测、人脸识别、姿态估计等
- 你不需要开发新颖的算法来解决琐碎的CV任务(除非你从事研究工作),大多数你在学习和工作中会用到的工具都可以在ML库和框架内找到
- ML库和框架为ML从业者提供了一套便利的工具,从而使他们能实施、训练、测试和部署CV解决方案。常用的工具和库,如:TensorFlow和PyTorch,其他的如:FastAI,Caffe2,Keras,Scikit-Learn,MXnet,Darknet等
- ML业界似乎已经把TensorFlow(Keras)和TyTorch定为行业标准。从我当前的CV工程师的角度来看,我充分利用TensorFlow来开发ML模型,并把它用于不同的情况
- 在学习ML库时可以参考如下典型的清单
- 构建和加载用于训练的数据集
- 预处理各种形式的数据集(文本,图像,数字)
- 执行数据增强
- 从头开始实现神经网络
- 从头开始实施深度神经网络
- 实施网络的自定义培训过程
- 使用各种网络架构执行图像分类
- 加载用于迁移学习的模型
- 从头开始实现神经网络中发现的自定义(custom)层,dropout层和公共(common)层
- 训练深度学习模型
- 使用TensorBoard监控训练过程
- 保存并加载经过训练的模型
- 注意:上面的列表并不包含你需要知道的所有内容,实际上,这些可能只是成为专业CV工程师应掌握内容的20%。上面的列表仅作为指导,你可以随时对上面的列表进行添加和修改
-
3. 书籍
- 为了成为一名CV工程师,你需要参考实用的ML和CV书籍
- CV工程师不能停止学习,这主要是因为AI领域每天都在发展
- 人们经常会遇到与学生学习水平相同但又保持职业生涯的ML从业者。作为ML从业者,我需要看书、博客、研究论文和文章,从而跟上ML业界的脚步
- 一本最值得阅读的书是由Aurélien Géron所著的Hands-On Machine Learning with Scikit-Learn, Keras, & TensorFlow。这本书适用于从数据科学到NLP的所有从业者
-
4. 云服务
- CV工程师需要了解云服务,但不用成为云服务的专家。他们要知道如何云在服务器(如:GCP,Microsoft Azure和AWS)上运行ML模型
- 如下是CV工程师应该了解和使用云服务的原因:
- 计算资源可用性。训练深度学习模型的代价很高,尤其是当你不得不购买昂贵的工作站和机器时。云服务提供了适用于不同计算需求的GPU,这些计算资源的使用按时长计费
- 远程访问共享工作区。大多数的团队都会使用云服务搭建在线研发环境,确保每一个团队成员都能远程访问工作区和资源
- 现成的解决方案和已完成训练的模型
- 云服务器是一个通过API为机器学习模型提供服务的模型
- 使用云服务可能会令人生畏,有时甚至会带来意外的高昂花费,尤其是当你忘记关闭实例时
- 就技能而言,了解云服务可以使你成为CV业内顶级的工程师
-
5. 证书
- 我要说的不是完成网课后获得的证书。对于ML从业者来说,有许多证书能显示他们在某个库、云服务和框架等方面的专业技能
- TensorFlow、AWS和GCP是我已在本文中提到过的工具和资源,提供这些工具和资源的公司和组织也会颁发相关的证书
- 几年前,有一个高级学位已经足以确保胜任ML职务。但随着ML从业者的增加,招聘者们就倾向于基于证书来筛选出一部分候选人
- 如下是一些与ML从业者相关的证书:
-
6. 深度学习
- 深度学习(Deep Learning,DL)是使用深度人工神经网络获得数据模式的领域
- CV工程师使用DL模型解决CV任务。他们必须要理解DL领域本质的概念和思想
- 在2021年,由于Transformer架构的出现,卷积神经网络(Convolutional Neural Network,CNN)的突出地位略有下降
- 由于Transformer还处于发展中,所以使用它完成CV任务并不是ML从业者获得工作的硬性要求
- 一些积极的ML练习者现在正在探索Transformer,并了解如何实现和应用它们
-
7. 移动和边缘设备
- Instagram,TikTok,YouTube,Facebook,这些公司的移动APP都以某种方式使用了ML模型
- 在2021年,计算机视觉工程师必须要了解能够在移动环境中开发和集成模型的工具和框架
- 如下是一些CV工程师需要了解的平台、工具和框架
- Practical Deep Learning For Cloud, Mobile & Edge,这本书可以帮你理解CV和DL在移动环境中的应用
-
8. 编程语言
- 所有的软件工程师都需要掌握至少一种编程语言
- 典型地,CV工程师需要掌握Python。对于大多数与ML相关的工作而言,Python都是最好的选择
- 在2021年,CV工程师需要精通一门编程语言,并且擅长其他两到三门编程语言
- 这是因为,DL模型会在不同的平台和环境中使用,这些环境使用相应的编程语言运行函数和操作
- 我当前在移动环境中集成DL模型,这要求我擅长Python,JavaScript和Swift。在2021年,我将要学习Kotlin和Java,从而扩展我的编程语言储备
- 一个小技巧:你不需要精通一门语言中的所有语法,但你必须要了解面向对象编程的原则和大多数编程语言使用的代码模式
- 所有的软件工程师都需要掌握至少一种编程语言
-
9. 结论
- 对于面向相机的AI应用程序的CV / DL工程师,与之相关的的工作需求很可能会增加
- 虽然ML从业者成为CV工程师要学习非常多的内容,但是,一旦起步,完成一些MOOCs课程,掌握关键的ML库,你就会发现学习变得简单起来了
- 在这篇文章中,我给出了八条方法,这些可以帮助你在2021年成为CV工程师。概括如下:
- 通过网课获取某领域的专业技能或知识
- 使用库和框架
- 阅读实用的ML / DL书籍
- 了解云服务,如:GCP、AWS等
- 获得特定工具和库的证书
- 了解DL基础
- 掌握能够在移动环境中开发和集成DL模型的工具,库和框架
- 了解编程模式和原理,例如面向对象的编程
-
10. 参考
- https://towardsdatascience.com/how-to-become-a-computer-vision-engineer-in-2021-c563545d4c9a
- https://www.bilibili.com/read/cv8571176/
- https://blog.csdn.net/woshicver/article/details/108231914?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.control