人工智能这两年逐渐成为一个热门的就业方向,不同专业和领域的人都想进入这个方向,但是人工智能范围非常宽泛,领域也非常之大包括计算机视觉、自然语言处理、搜索推荐、深度学习、强化学习、增量学习等等,所以我认为要想从事这个方向,首先应该考虑一下,“要选择具体哪个方向?”这样才有目标和方向,效率才会更高一些。我个人是从事计算机视觉的,所以今天就谈一下如何入门计算机视觉,我也把计算机视觉的相关优秀文章放在了共享链接里,感兴趣的可以关注我的微信公众号“平凡而诗意”回复相应关键字获取。
引言
我个人对计算机视觉更喜欢用传统和深度进行分类。
传统方法主要研究的工作包括两块,特征工程和机器学习,即人工设计一些比较能够表征目标的特征然后用一些比较好的分类器进行学习特征,比较经典的特征描述算法有HOG、SIFT等,机器学习表现较好的有SVM、Adaboost,可以根据自己的需求进行选择。
深度学习这几年表现比较抢眼,因为它有自身的优势,不需要手动选取特征,可以通过训练超参数自动提取特征,比较好的模型有YOLO、SSD、VGG、ResNet等。
对比而言,传统方法理论性更强,尽管现在深度学习表现效果更好,但是我觉得传统方法还是有必要学一下,因为算法的流程是相通的,但是传统方法有完备的数学模型,而且可解释性更强,而且研究的重点也是都一些人工智能最根本的内容,例如优化、特征等,而深度学习更多的是围绕着网络模型和超参数调参进行研究和探讨,目前而言,无法找到合理的模型解释,所以更多的工作内容是在成熟的网络模型上做一些微调,所以深度学习工程师有时也会被戏称为“调参工程师”。
掌握基础知识
虽然深度学习的到来让计算机视觉变得更加偏工程性,可以直接上来就搭建目标识别系统,但是我觉得学习一些基础的图像知识还是很有用的,例如图像的分割、去噪和增强,这对后期模型的调优和前期的预处理都有很大的帮助。
推荐两本书:
- 《图像工程》 章毓晋
- 《计算机视觉特征提取与图像处理》
推荐理由:对于入门计算机视觉这个方向,多了解一些图像底层的知识肯定是百利无一害,这两本书都是图像处理里不错的书籍,其中《图像工程》这本书,是合订版,也有单独成册的,分上中下三册,如果觉得这本书太厚也可以根据自己需求买其中一册。图像处理包括很多方向,图像分割、图像去噪、图像合成、图像增广,图像分割也有很多方法,水平集、分水岭,我觉得多学一些图像基础的知识能够让计算机视觉工作事半功倍。
学习传统的目标识别算法
这里我强烈推荐DPM(Deformable Part Model)模型,这个模型系统的讲解了从图像特征提取到svm机器学习,正则化等方面的知识,很系统的把目标识别相关的内容介绍了一遍,是一个入门的好材料,这是传统方法里表现最好的一个模型,作者也因此获得了voc挑战赛终身成就奖。此外,这个模型开源的有代码,很规范。
感兴趣的可以访问链接:
http://cs.brown.edu/people/pfelzens/
这里面。使用的libsvm也是一个非常成熟的系统,很值得学习。
我觉得传统方法和深度学习有异曲同工之处,学习传统方法有助于理解模型的构造,而且传统方法有确切的数学模型和理论体系。
我已经把文件放在共享链接,感兴趣的可以关注微信公众号“平凡而诗意”回复DPM获取下载链接。
深度学习
深度学习方面计算机视觉主要围绕一些卷积神经网络模型展开,结构方面有类似之处,感兴趣的可以看一下我的另一篇文章《计算机视觉中一些优秀的文章》有一些概述。
「深度学习」计算机视觉中一些优秀的文章
深度学习相关的工作这几年如雨后春笋一般,发展很快,也出现了很多有显著成效的算法,例如VGG、ResNet、SSD、YOLO,这些框架在特征提取、识别精度、识别速度方面都达到了一个很高的层次,所以,作为普通从业者所能做的工作就相对较少,大部分工作都围绕着模型的微调和场景的适配上面。
学习深度计算机视觉可以从网络架构学习方面入手,了解一些优秀的网络模型构造方法,根据图像底层的知识和对应的场景,自己可以设计相应的网络架构,选取合适的优化算法,然后利用深度学习平台,例如tensorflow、pytorch、mxnet等深度学习框架搭建验证效果。
了解深度学习优化算法可以查看我的另外一篇文章:一文了解深度学习中常用的优化算法
后续会推出计算机视觉系列课程,全部免费,如果感兴趣可以关注一下,如果觉得有帮助,麻烦转发一下,关注一下微信公众号也可以获取我准备的资料。