目前,人工智能,机器学习,深度学习,计算机视觉等已经成为新时代的风向标。这篇文章主要介绍了下面几点: 

第二点,既然你要往这方面学习,你要了解的参考书籍,可以学习的一些公开课有哪些?

第三点,可能是大家都比较感兴趣的,就是计算机视觉作为人工智能的一个分支,它不可避免的要跟深度学习做结合,而深度学习也可以说是融合到了计算机视觉、图像处理,包括我们说的自然语言处理,所以本文也会简单介绍一下计算机视觉与深度学习的结合。

第四点,身处计算机领域,我们不可避免的会去做开源的工作,所以本文会给大家介绍一些开源的软件。

第五点,要学习或者研究计算机视觉,肯定是需要去阅读一些文献的,那么我们如何开始阅读文献,以及慢慢的找到自己在这个领域的方向,这些都会在本文理进行简单的介绍。




1.基础知识






接下来要介绍的,第一点是计算机视觉是什么意思,其次是图像、视频的一些基础知识。包括摄像机的硬件,以及 CPU 和 GPU 的运算。 




2.什么是计算机视觉





计算机视觉是一门研究如何使机器“看”的科学。 更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给一起检测的图像 计算机视觉的应用

  • 无人驾驶
  • 无人安防
  • 人脸识别
  • 车辆车牌识别
  • 以图搜图
  • VR/AR
  • 3D重构
  • 医学图像分析
  • 无人机
  • 其他

了解了计算机视觉是什么之后,给大家列了一下当前计算机视觉领域的一些应用,几乎可以说是无处不在,而且当前最火的所有创业的方向都涵盖在里面了。其中包括我们经常提到的无人驾驶、无人安防、人脸识别。人脸识别相对来说已经是一个最成熟的应用领域了,然后还有文字识别、车辆车牌识别,还有以图搜图、 VR/AR,还包括 3D 重构,以及当下很有前景的领域–医学图像分析。 




3.图像和视频,你要知道的概念






  • 图像 
  • 举例:JPEG压缩 
  • 当一个像素占用的位数越多时,它所能表现的颜色就更多,更丰富。
  • 举例:一张400*400的8位图,这张图的原始数据量是多少?像素值如果是整型的话,取值范围是多少? 
  • 图像深度:存储每个像素所用的位数(bits) 
  • 图片格式与压缩:常见的图片格式JPEG,PNG,BMP等本质上都是图片的一种压缩编码方式 
  • 视频 
  • I帧:表示关键帧,可以理解为这一幅画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)
  • P帧:表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧画面差别的数据)
  • B帧表示双向差别帧,记录的本帧与前后帧的差别(具体比较复杂,有4种情况),换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,要通过前后画面与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码比较麻烦。
  • 码率:码率越大,体积越大;码率越小,体积越小。 
  • 帧率 
  • 分辨率
  • 影响图像大小,与图像大小成正比;分辨率越高,图像越大;分辨率越低,图像越小。
  • 清晰度 
  • 带宽、帧率 



4.摄像机





摄像机的分类:

  • 监控摄像机(网络摄像机和摸你摄像机)
  • 不同行业需求的摄像机(超宽动态摄像机、红外摄像机、热成像摄像机等)
  • 智能摄像机
  • 工业摄像机

当前的摄像机硬件我们可以分为监控摄像机、专业行业应用的摄像机、智能摄像机和工业摄像机。而在监控摄像机里面,当前用的比较多的两个类型一个叫做网络摄像机,一个叫做模拟摄相机,他们主要是成像的原理不太一样。 




5.CPU和GPU






接下来给大家讲一下 CPU 跟 GPU,如果说你要做计算机视觉跟图像处理,那么肯定跳不过 GPU 运算,GPU 运算这一块可能也是接下来需要学习或者自学的一个知识点。 

所以,不要说别人都在用 GPU 那你就用 GPU,我们要了解的是为什么要用 GPU ,以及什么样的情况下用 GPU,它效果能够发挥出来最好。




6.计算机视觉与其他学科的关系






计算机视觉目前跟其他学科的关系非常的多,包括机器人,以及刚才提到的医疗、物理、图像、卫星图片的处理,这些都会经常使用到计算机视觉,那这里呢,最常问到的问题无非就是有三个概念,一个叫做计算机视觉,一个叫做机器视觉,一个叫做图像处理,那这三个东西有什么区别呢? 




7.参考书籍和公开课







参考书 Computer Vision:Models, Learning and Inference》written by Simon J.D. prince,这个主要讲的更适合入门级别的,因为这本书里面配套了非常多的代码,Matlab 代码,C 的代码都有,配套了非常多的学习代码,以及参考资料、文献,都配得非常详细,所以它很适合入门级别的同学去看。

第二本《Computer Vision:Algorithms and Applications》written by Richard Szeliski,这是一本非常经典,非常权威的参考资料,这本书不是用来看的,是用来查的,类似于一本工具书,它是涵盖面最广的一本参考书籍,所以一般会可以当成工具书去看,去查阅。

第三本《OpenCV3编程入门》作者:毛星云,冷雪飞 ,如果想快速的上手去实现一些项目,可以看看这本书,它可以教你动手实现一些例子,并且学习到 OpenCV 最经典、最广泛的计算机视觉开源库。




8.需要了解的深度学习知识






深度学习没有太多的要讲的,不是说内容不多,是非常多,这里只推荐一本书给大家,这本书是去年年底才出的,是最新的一本深度学习的书,它讲得非常全面,从基础的数学,到刚才说的概率学、统计学、机器学习以及微积分、线性几何的知识点,非常的全面。 

以及如何学好计算机视觉 计算机视觉怎么入门_数据




9.需要了解和学习的开源框架






OpenCV Caffe TensorFlow 




10.如何阅读相关文献






先熟悉所在方向的发展历程,然后精读历程中的里程碑式的文献。 

计算机视觉的顶会: 




以及如何学好计算机视觉 计算机视觉怎么入门_以及如何学好计算机视觉_02