有朋友在公众号后台私信我,希望我介绍一下计算机视觉的学习路线,这里简单记录一下我自己的一些学习路线,比较菜,大佬轻喷。
写在前边
本人本科和研究生都是自动化专业的。非科班CS专业,无论文,无比赛获奖。
实验室主要做智能装备的内容,其中会有一些项目涉及到计算机视觉算法(主要是图像分类和目标检测),因此研究生我主要做与算法相关的软件部分工作。
「先给大家泼个冷水」
从我秋招的感受和了解到的情况来所,不建议普通的同学入场CV。这里的普通同学指的是像我这种发不了顶会,实验室课题组在视觉算法方向的团队规模较小,发顶会概率不大的同学。对于顶会大佬在招聘中,依旧乱杀,offer疯狂拿,我等菜鸡就不敢想了。
如果想做算法,可以做做机器学习的算法,搜索广告推荐等机器学习算法坑位多找工作相对容易一些。搜索广告推荐在公司里边业务相对更核心一些,因为可以直接产生收益,坑位相比较cv来说也更多。但是这些岗位的话在学校很难有相应的项目来做,学校玩不了搜广推这种大型的机器学习项目,没有公司那种工程框架,最好能有一些实习来提升竞争力。CV没有顶会或者认为自己发不了顶会就慎选。nlp我不太了解,我所知道的其坑位相比较cv来说会更多一些。
当然了,很多同学读研的时候没得选,由于课题或者实验室项目会主要做视觉算法,也倒是不必那么灰心,好好学习,工程好好搞,也是能找到工作的。
一、基础知识学习
1.1 编程基础
python学习
python这个语言是比较容易的,大家经常说的,有手就行,推荐的学习资料的话,也挺简单的直接使用官方的入门文档敲一遍,就够了。
python官方文档地址:python3官方文档
剩余的各种常用的包,比如numpy,opencv,pandas,matplotlib,scikit-learn等这些,用到的时候再去翻文档学一学。
深度学习框架Pytorch
推荐使用pytorch作为深度学习框架,比较容易上手。
基本的pytorch使用方法的话,也是推荐官方文档,pytorch官方文档
c++
c++ 我用的不多,面试的时候有的面试官会问到,我当时就把c++ Primer翻了一遍,就这本书。
算法与数据结构
相信大家都学过,学过基础之后,可以刷刷力扣,提升自己的工程能力。这里是我自己整理的分类刷题笔记。
秋招leetcode分类刷题指南
1.2 数学基础
线性代数,概率论与数理统计, 矩阵论
线性代数和概率论与数理统计,本科上过相关的相关课程,矩阵论我研究生上过学校的 应用数据基础,里边有部分矩阵论的内容。
这里线性代数相对来说比较重要,推荐MIT Gilbert Strang的课程(b站也有)
1.3 机器学习
机器学习西瓜书
统计学习方法
百面机器学习
推荐吴恩达老师的cs229。另外b站有个良心up主,手推各种机器学习算法,建议看一看。名字叫(白板机器学习)
【机器学习】【白板推导系列】
这个白板推导系列的全部公式,up主已经开源在github上:
https://github.com/shuhuai007/Machine-Learning-Session
1.4 深度学习
强烈推荐李飞飞老师的 「CS231n」(一定要看一下,b站有)。
这本“花书”多翻几遍,值得多看,第一遍看可能会有点难理解。
1.5 图像处理
本科上课的时候,翻过 冈萨雷斯 的这本书
二、算法实践
2.1 项目
分类任务(这是基础网路架构,都得看)
看这些论文:LeNet——>AlexNet——>VGGNet——>GoogLeNet——>ResNet——>DenseNet——>SENet
MobileNetv1 v2——>shuffleNet——>EfficientNet
中间穿插着看看BatchNormlization,CBAM
论文看完之后,找一个数据集,将上边的各种算法都跑一下,体验一下。推荐一个代码:
一个600+star的入门级图像分类代码库推荐
目标检测任务
推荐一篇综述:
Deep Learning for Generic Object Detection: A Survey
然后阅读其中的主要关键性论文:
RCNN系列:
RCNN-SPPNet-FastRCNN-FasterRCNN(重点看,代码也看一遍,敲一遍)-MaskRCNN-Cascade RCNN
YOLO系列
YOLOv1 v2 v3(重点看,代码也看一遍,敲一遍) v4 v5
SSD系列
SSD(重点看,代码也看一遍,敲一遍)-FSSD-DSSD-RfbNet-RefineDet
anchor-free系列
FCOS-centerNet-cornerNet-Relation-SparseRCNN-DETR(这个系列我看的比较少)
推荐使用mmdetection来做目标检测实践
分割任务
推荐一篇综述
A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC
mask rcnn
deeplabv1 v2 v3
FCN UNet
可以主要依据不同的项目任务所涉及的视觉算法,来进行特定的学习。
我的常用套路就是:
- 找一篇综述来看(google scholar搜索 “survey或者review +特定的算法名称(比如object detection)” )
- 挑选其中节点性质的几篇论文细读
- 选择其中的一些进行代码实践
我自己主要搞过其他的比如 「半监督 自监督和无监督」,相关的内容就不放上来了。
调参技巧
Bag of Freebies for Training Object Detection Neural Networks
Bag of Tricks for Image Classification with Convolutional Neural Networks
「近两年Transformer在视觉上比较火,我没有过多的关注,近期毕业论文交了没啥事的话,打算翻翻ViT的论文,整理梳理一下思路,持续更新在 “小哲AI”公众号中,感兴趣的可以关注一下,一起学习。」
比赛
闲暇实践,可以关注一下 Kaggle,天池的AI比赛,这俩能拿奖的话,找工作的时候还是能吹一下牛逼的。其他还有很多平台也会有各种比赛,也可以去练练手。
实习
最好能找个时间出去实习一下,提前感受一下公司算法工程师的工作内容,也为毕业招聘积累一些经验,有一些公司的项目经验是很重要的。
「本文中提到的各种论文以及综述,可以到“小哲AI”后台回“学习路线资料”自取」。
?
原文首发于「小哲AI」公众号,公众号主要分享人工智能前沿算法解读,AI项目代码解析,以及编程、互联网求职等技术资料文章,偶尔也会分享个人读书笔记、工作学习心得,欢迎关注,一起学习。
?
本文暂时没有评论,来添加一个吧(●'◡'●)