(三)Computer Vision学习路径
1. 初阶
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
学习思路: 先学习基础,上手简单的openCV培养兴趣,然后系统性地学习课程/书籍 | |||
0 | 学Python | 【先修】 | 莫烦python: https://mofanpy.com/tutorials/machine-learning/nlp/interview 廖雪峰-Python3教程: |
0 | 学经典Machine Learning | 【先修】 了解Machine Learning的基本流程(preprocessing/feature enginerring, modeling, evaluation metrics)和基本操作(supervised learning,unsupervised learning,cross validation等) | Coursera 机器学习入门课程 by Andrew Ng https://www.coursera.org/specializations/machine-learning-introduction 林田轩的《机器学习基石》 https://www.coursera.org/learn/ntumlone-algorithmicfoundations 李航的《统计学习方法》 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgi6mHuwYowIm01gY.pdf |
1 | 《Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library》/《学习OpenCV 3》 | 【OpenCV】【实战】 | 英文版下载地址: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgj6mHuwYo96C4_gI.pdf 中文版: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgkKmHuwYo8_rP_AI.pdfPython代码: https://github.com/spmallick/learnopencv 教材源码:https://github.com/oreillymedia/Learning-OpenCV-3_examples |
1‘ | 《OpenCV编程入门》 by 毛星云 | 【OpenCV】【实战】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgjqmHuwYo6MX09AI.pdf |
1’ | 计算机视觉入门到精通!公认讲的最好的【OpenCV计算机视觉教程】同济大佬12小时带你 | 【OpenCV】【实战】没有人推荐,但是播放量惊人,而且是中文 | |
1‘ | Coursera - Python Project: pillow, tesseract, and opencv | 【OpenCV】【实战】 做项目 | https://www.coursera.org/learn/python-project 密歇根大学开设的这门 Python Project 是一门中级课程,课程对象是那些想要在计算机视觉领域打稳基础的学员,课程可在 Coursera 在线平台观看。在该课程中,你可以了解到第三方 API 相关知识,使用 Python 图像库处理图像,将光学字符识别应用于图像,从而使用 OpenCV 库识别文本和人脸。你将在课程学习中用到图像库,并执行文本剪切、尺寸调整和覆盖操作。整个课程合理地分为几个部分,易于学员跟上进度。切记,你必须通过分级评估才能获得课程认证,也才有机会完成整个课程项目。 |
2 | stanford CS231n | 【大局观】 推荐的人很多,必看 | https://www.bilibili.com/video/BV1nJ411z7fe/?vd_source=72867308e8b7b6d7774a7e4be6278f68 官方笔记授权翻译: https://zhuanlan.zhihu.com/p/21930884 作业: https://github.com/rishabh-16/cs231n-2019-assignments 笔记: https://www.showmeai.tech/tutorials/37 主要讲卷积神经网络的具体结构,各组成部分的原理和优化,作业很难,自己手写网络 |
2’ | CS 131 Computer Vision: Foundations and Applications | 【大局观】 2的平替,看完2再看 | http://vision.stanford.edu/teaching/cs131_fall1415/schedule.html 主要讲传统的边缘检测,特征点描述,相机标定,全景图拼接等知识,作业里包含了很多知识点,全做下来学到的绝对不少。这课没找到视频,所以我是直接看的ppt,再做作业 如果想看视频,推荐UCF Computer Vision Video Lectures https://www.youtube.com/playlist?list=PLd3hlSJsX_ImKP68wfKZJVIPTd8Ie5u-9 |
2‘ | CS231A Computer Vision: from 3D reconstruction to recognition | 【大局观】 2的平替,看完2再看 | 课程主页: https://cvgl.stanford.edu/teaching/cs231a_winter1415/schedule.html 视频(非原版老师,应该是用原版ppt自己录的讲解): |
3 | 《数字图像处理》 | 【大局观】 3里面至少选1个看 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgjamHuwYo4fTnLQ.pdf 作者是日本的学者冈萨雷斯,是传统数字图像处理入门的必看书籍,这部分内容建议根据上面第1部分总结的重点有针对性的去了解即可; == 存在开源 PDF 电子版。成系统的介绍了数字图像的原理及应用,内容多且全、深度也足够,非常适合深入理解数学图像原理,可挑重点看。 == 不需要一上来就全部过一遍,只需要结合MATLAB学习一下基本原理、图像变换、形态学处理、图像分割,以上章节强烈建议按照书上手动敲一遍代码(和看一遍的效果完全不同),其他章节可快速扫描一遍即可。但这本书比较注重实践,对理论的解释不多,理论部分不明白的可以在配套的冈萨雷斯的《数字图像处理(第二版)》这本书里查找,这本书主要是作为工具书使用,以后遇到相关术语知道去哪里查就好。 |
3 | 《Computer Vision: Models, Learning, and Inference》/《计算机视觉:模型、学习和推理》 | 【大局观】 3里面至少选1个看 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgj6mHuwYo6tTC7AQ.pdf 该书从基础的概率模型讲起,涵盖了计算机视觉领域常用的概率模型、回归分类模型、图模型、优化方法等,以及偏底层的图像处理、多视角几何知识,图文并茂,并辅以非常多的例子和应用,非常适合入门。在其主页: http://www.computervisionmodels.com/上可以免费下载电子书。此外还有非常丰富的学习资源,包括给教师用的PPT、每章节对应的开源项目、代码、数据集链接等,非常有用。 == 这三本教材班主任认为是计算机视觉最好的入门教材了,内容丰富,难度适中。这三本教材都不建议读中文版,有些地方的翻译不是很合适。 == 这是一本很好的入门书(对学生),涵盖了广泛的计算机视觉技术和问题。这本书花了更多的时间来介绍计算机视觉,并在与概率建模相关的基本主题上花费了有用的时间。 == 我个人是推荐《Computer Vision: Models, Learning, and Inference》这本书的,主要讲一些基本知识,书的主页上还有配套的Slider,适合初学者; |
3 | 《Computer Vision: A Modern Approach》《计算机视觉:一种现代方法》 | 【大局观】 3里面至少选1个看 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgjKmHuwYo1qKkCQ.pdf 这是一本关于计算机视觉的入门教科书,也许比其他许多教科书所涵盖的主题更广泛。出版时间:2011 年 |
3’ | (optional)《Python计算机视觉编》/《Programming Computer Vision Python》 | 和前面的比起来推荐的人不是很多,所以是optional | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgi6mHuwYogKLb3gI.pdf 如果你有一定的Python基础,笔者强烈推荐看这本书,把CV的基本概念和算法结合代码实战,讲得比较清楚。入门佳作。它不是一上来就用OpenCV库,使得入门者容易忽视很多基础的概念算法。 == 《Programming Computer Vision with Python》是一本介绍计算机视觉底层基本理论和算法的入门书,通过这本收可以学到有关对象识别、基于内容的图像搜索、光学字符识别、光流法、跟踪、三维重建、立体成像、增强现实等技术的实现原理 |
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
学习思路: 深入学习理论、图形学等基础,深入学习深度学习 | |||
1 | 《Computer Vision: Algorithms and Applications》/《计算机视觉:算法与应用》 | 【CV】 推荐的人很多的一本书,可以当作字典来查 | 这本书图文并茂地介绍了计算机视觉这门学科的诸多大方向,有了前面《数字图像处理》的基础,这本书里有些内容你已经熟悉了,没有那么强的畏惧感。相对前面的图像处理基础本书增加了许多新的内容,比如特征检测匹配、运动恢复结构、稠密运动估计、图像拼接、计算摄影、立体匹配、三维重建等,这些都是目前比较火非常实用的方向。如果有时间可以全书浏览,如果时间不够,你可以根据兴趣,选择性的看一些感兴趣的方向。这本书的中文版翻译的不太好,可以结合英文原版看。 == 书涉及大量的文献,很适合对计算机视觉没什么概念的同学。 == 作者不用说,绝对大佬,新版内容详实,非常hard core,强烈推荐有时间还是可以啃一下。 == 《Computer Vision: Algorithms and Applications》这本书在Computer Vision领域的地位是毋庸置疑的,书中内容覆盖了CV的各个领域,其中一些知识相比别的书更有深度、也更加新一些。但是很明显这本书不适合完全没有基础的初学者(也就是不像一本教科书,而像一本工具书、进阶书)。适合那些对CV有一定了解的人阅读; == 另外我非常推荐的还是《计算机视觉-算法与应用》,写的很简单,当时看完后让我对这个领域有了很好的把握,而且很多内容都有代码,感兴趣的地方自己尝试后,对算法理解也加深了很多,也是我个人唯一一本看了两遍的算法书籍。 == 宝典型,大而全,帮助对计算机视觉领域有一个宏观的理解。作者是Richard Szeliski,CV界大牛,图像拼接奠基人。 == 当论文索引指南,细节需要看论文。 |
2 | 《Multiple View Geometryin Computer Vision 》/《CV中的多视图几何》 | 【几何】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgkrCHuwYoot_wuAE.pdf 据说是玩3D必看的一本书,包括AR/VR。很多CV专家都推荐。 == 楼上几位有推荐multiview geometry的,我想说这本书确实是经典,但是我想请问你们那个人把这本书读完了?Honestly 这本书语言写的比较晦涩,真心不推荐,等楼主学了几年CV以后决定搞3D的时候再看也不迟。 |
3 | 学习Deep Learning | 【深度学习】 | 《Deep Learning》by Ian Goodfellow https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgk7CHuwYo4NSqrgQ.pdf 《神经网络与深度学习》 by 邱锡鹏 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgkrCHuwYo-P2F_QQ.pdfhttps://www.bilibili.com/video/BV13b4y1177W?spm_id_from=333.337.search-card.all.click 《动手学深度学习》by 李沐 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgkrCHuwYogpru3QI.pdfhttps://github.com/ShusenTang/Dive-into-DL-PyTorch DeepLearning.ai |
4 | 学习pytorch | 【PyTorch】 | 官方文档: https://pytorch.org/tutorials/index.html 中文文档: https://pytorch-cn.readthedocs.io/zh/latest/ tutorial进阶: https://github.com/yunjey/pytorch-tutorial 快速入门: |
5 | 视觉SLAM十四讲-从理论到实践 | 【SLAM】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgk7CHuwYolZeF2wY.pdf 视觉SLAM最好的入门资料是高翔(清华博士,慕尼黑理工博后)的《视觉SLAM十四讲-从理论到实践》。该书每章节都涵盖了基础理论和代码示例,深入浅出,非常注重理论与实践结合,大大降低了小白的学习门槛。 |
6 | OpenCV文档 | 【OpenCV】 | https://github.com/opencv/opencv/tree/4.1.0 https://docs.opencv.org/2.4/index.html https://github.com/makelove/OpenCV-Python-Tutorial?tab=readme-ov-file 官方教程中文版: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgkrCHuwYojNnBvgc.pdf |
7 | 图像处理 100 问 | 【实战】 | https://github.com/gzr2017/ImageProcessing100Wen?tab=readme-ov-file 特点:不是调用opencv的API,而是直接利用图像处理的原理来实现的,对于理解每个图像处理的知识点很有帮助,因此非常的推荐~ |
8 | CV常用数据集:MS COCO、ImageNet、VOC | 【实战】 | |
9 | 项目实战 | 【实战】 | 图像分类 https://github.com/waitingfordark/four_flower 语义分割 https://github.com/LeeJunHyun/Image_Segmentation 目标检测 https://github.com/ultralytics/yolov5 图像生成 https://github.com/YadiraF/GAN 人脸识别 https://github.com/vipstone/faceai https://github.com/HanXinzi-AI/awesome-computer-vision-resources |