1.计算机视觉简介
计算机视觉是一门利用计算机使机器模拟人的视觉系统的科学,通俗的说是用计算机处理图像数据的科学。可以分为低级视觉处理和高级视觉处理。更进一步的说,是通过摄相机和计算机代替人眼对目标识别、分析和跟踪、重建等机器视觉处理。计算机视觉研究相关的理论和技术,通过计算机搭建软硬的图像处理和分析的人工智能系统。其应用包括AI、VR、3D等人工智能领域,具体的工业应用领域为自动驾驶、安防、人脸识别、物体识别、医学图像分析,无人机、VR/AR,3D等。其中很多方向和前景工业产业都应用到了计算机视觉技术。
2.编程能力
1.1 主流编程语言简介(C/C++,Python)
计算机视觉是计算机要使用计算机的语言来处理计算机任务的技术性学科,目前主流的编程语言主要是C/C++和Python。
- C/C++:C/C++语言是当今最流行的程序设计语言之一,学术界和工业界都比较流行,尤其是工业应用广泛,其功能丰富、表达能力强、灵活方便应用广、可植入性好。执行效率高,既有高级语言的特点也有低级语言的特点,是编程入门的经典语言之一。
- Python:Python是一种动态的、面向对象的解释性脚本语言。很多丰富的库功能堪比MATLAB的部分功能。最近几年由于深度学习的火热,可用于图像处理、支持opencv、;科学计算功能类似MATLAB,机器学习和深度学习使用Python语言更加广泛,各种开源的丰富库可以调用,缺点是执行效率不高。下图为最近两年年计算机语言排名
1.2 C/C++和Python快速入门和进阶
- C/C++:如果你有或者没有C语言(或者先快速的过一下C语言程序设计)的基础,都可以跳过C语言直接学习C++。推荐以下书籍,C++ Primer(第五版)作者:Stanley Lippman, Josée Lajoie, and Barbara E. Moo (更新到C++11),其他C/C++资源参考C++必读书籍推荐。
python:python语言相对比较好入门一些,参考廖雪峰的python教程,接着可以看《笨方法学Python》,《Python数据手册》等。
1.2图像处理编程(可以一边练习编程一边图像处理编程,提高成就感)
Viusal studio + opencv:参考《opencv3编程入门》,一开始可以与C/C++同步练习,熟悉用opencv进行图像处理的技术和方法。一边练习代码一边练习图像处理,既要理解图像处理的理论也要读懂图像处理的代码,图像处理的理论书籍可以阅读刚萨雷斯的《数字图像处理》书中的理论尽量和代码对应的来理解,如果对C/C++和opencv的使用熟悉了,Python+OpenCV也相对容易。