原文:https://towardsdatascience.com/guide-to-learn-computer-vision-in-2020-36f19d92c934
作者:Insaf Ashrapov
译者:kbsc13(公众号:算法猿的成长)
前言
本文推荐的教程资源都是基于我个人的经验,它们对增加你的计算机视觉理论知识非常有帮助。另外,在学习计算机视觉的理论前,先了解和学习机器学习和 python 方面的知识是更好的做法。
框架 不需要在开始学习计算机视觉的时候,就选择使用框架,但应用新获得的知识是必要的。
对于框架的推荐,没有其他的推荐:
pytorch :https://pytorch.org/tutorials/keras(TensorFlow) :https://www.tensorflow.org/guide/kerasPytorch 可能需要写更多的代码,但是它更加灵活,所以最好选择使用它,并且越来越多的深度学习研究者都开始采用这个框架。
Albumentation (图像增强)和 catalyst (一个封装 pytorch 的高级 API 的框架)也同样是非常有帮助的,所以也可以使用它们,特别是第一个图像增强的框架--Albumentation 。
硬件 Nvidia GPU 10XX+ 型号已经足够使用了(大约 300$) Kaggle 的 kernels:https://www.kaggle.com/kernels,每周免费使用 30 个小时; 谷歌的 Colab:https://colab.research.google.com/,每个会话有 12 个小时的限制,每周免费时长限制未知。 理论&实践 网上课程 CS231n :http://cs231n.stanford.edu/,是首选的网上课程,它介绍了计算机视觉的所有必须掌握的基础知识。在 Youtube 上有课程视频,它们还有课后练习,但不建议去完成它们(尽管是免费的);Fast.ai :https://course.fast.ai/,第二门应该看的课程。fast.ai 也是一个封装了 pytorch 的高级框架,但它们很频繁更改它们的 API 接口,并且缺乏文档,这都是它不被推荐采用的原因。但观看它们的课程视频是可以了解到理论和有趣的技巧,这是值得花费时间的。当学习这些课程的时候,推荐将这些理论通过推荐的框架来进行实现。
论文和代码 https://arxiv.org/:免费获取最新论文的网站 https://paperswithcode.com/sota:展示了深度学习最新的性能最佳的论文,不仅仅是计算机视觉方面的; https://github.com/topics/computer-vision?l=python:可以在这找到代码实现的算法 书籍 并没有太多书需要阅读的,除了下面两本我觉得是非常有用的书,可以任选 pytorch 或者 keras 来实现代码
Deep Learning with Python :https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438,作者是 Keras 的开发者、谷歌 AI 研究者--François Chollet。这不是一本免费的书,但这本书易于理解,并且可以学到很多之前不知道的知识点;Deep learning with Pytorch :https://pytorch.org/deep-learning-with-pytorch-thank-you,免费的书籍,来自 pytorch 团队的 Eli Stevens & Luca AntigaKaggle 网址:https://www.kaggle.com/competitions
Kaggle 是一个著名的机器学习比赛在线平台,它包含了各种类型的比赛,其中很多都是计算机视觉方面的比赛。在没有学完课程的时候,就可以开始参加比赛了,因为从比赛开始,可以免费运行很多公开的 kernels(公开的端到端的代码)。
比较困难的学习路线 另外一条学习路径可能是非常困难,但是你不仅可以学到只是做训练模型并预测结果的知识,还可以实现自己的研究,参考自Sergei Belousov aka bes。
需要做的就是阅读并实现下面的所有论文,当然仅仅读完也是非常棒的。
网络结构 AlexNet : https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networksZFNet : https://arxiv.org/abs/1311.2901VGG16 : https://arxiv.org/abs/1505.06798ResNet : https://arxiv.org/abs/1704.06904GoogLeNet : https://arxiv.org/abs/1409.4842Inception : https://arxiv.org/abs/1512.00567Xception : https://arxiv.org/abs/1610.02357MobileNet : https://arxiv.org/abs/1704.04861语义分割 FCN : https://arxiv.org/abs/1411.4038SegNet : https://arxiv.org/abs/1511.00561UNet : https://arxiv.org/abs/1505.04597PSPNet : https://arxiv.org/abs/1612.01105DeepLab : https://arxiv.org/abs/1606.00915ICNet : https://arxiv.org/abs/1704.08545ENet : https://arxiv.org/abs/1606.02147生成对抗网络(GAN) GAN : https://arxiv.org/abs/1406.2661DCGAN : https://arxiv.org/abs/1511.06434WGAN : https://arxiv.org/abs/1701.07875Pix2Pix : https://arxiv.org/abs/1611.07004CycleGAN : https://arxiv.org/abs/1703.10593目标检测 RCNN : https://arxiv.org/abs/1311.2524Fast-RCNN : https://arxiv.org/abs/1504.08083Faster-RCNN : https://arxiv.org/abs/1506.01497SSD : https://arxiv.org/abs/1512.02325YOLO : https://arxiv.org/abs/1506.02640YOLO9000 : https://arxiv.org/abs/1612.08242实例分割 Mask-RCNN : https://arxiv.org/abs/1703.06870YOLACT : https://arxiv.org/abs/1904.02689姿势预估 PoseNet : https://arxiv.org/abs/1505.07427DensePose : https://arxiv.org/abs/1802.00434小结 这篇文章是原文作者推荐的入门计算机视觉的一些资源,包括推荐采用的深度学习框架、课程、电子书、查阅论文和代码的网站,以及一个比赛网站,kaggle;
另外还有一条会更加困难的学习路线,也就是阅读经典的论文,从网络结构到常见的计算机视觉方向,检测、分割、GAN以及姿势预估,但完成后收获就会更多,不仅仅是只会运用框架来训练模型,解决问题,还有机会往研究方向发展。
最后,也可以通过下方搜索框搜索公众号更新过的计算机视觉、深度学习和pytorch相关的文章,了解更多相关的知识。