计算机视觉如何入门


注:原创不易,转载请务必注明原作者和出处,感谢支持!

一 写在开头

1.1 本文内容

本文内容为计算机视觉入门方法。

二 CV入门基础

2.1 基础知识

图片的相关概念:

  • 维数
  • 高度
  • 宽度
  • 深度
  • 通道数
  • 颜色格式
  • 数据首地址
  • 结束地址

2.2 相关概念解释

图像的深度:存储每个像素所用的位数,比如常见的8位、16位和24位等。

图像的压缩格式:常见的图像压缩格式有JPG、PNG和TIF等。

图像的通道数:常见的有灰度图(单通道)、RGBA(四通道,其中A指透明度)、YUV和YUYV等。

视频的相关概念:
原始视频 = 图片序列。视频中的每张有序图片称为“帧”(frame)。压缩后的视频会采用各种算法来减少数据的容量,其中IPB就是常见的压缩方式。

I帧表示关键帧,其包含了完整的一幅画面。

P帧表示差别帧,其表示的是当前帧与上一个关键帧I(或P帧)的差别,解码该帧时要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。

B帧表示双向差别帧,也就是说,B帧记录的是本帧与前后帧的差别。换言之,要解码B帧,不仅要取得之前缓存的画面,还要解码之后的画面,通过前后画面与本帧数据的叠加取得最终画面。

码率:单位时间内传输的数据数。码率越大,视频体积越大。

帧率:每秒传输的帧数。

分辨率:每一帧图像的分辨率。

2.3 摄像机的分类

graph LR; 摄像机-->监控摄像机; 摄像机-->不同行业需求摄像机; 摄像机-->智能摄像机; 摄像机-->工业摄像机; 监控摄像机-->网络摄像机; 监控摄像机-->模拟摄像机; 不同行业需求摄像机-->超宽动态摄像机; 不同行业需求摄像机-->红外摄像机; 不同行业需求摄像机-->热成像摄像机;

2.4 CPU和GPU的差别

  • 从性能(低延时性)和吞吐量两方面来说,CPU属于高性能和低吞吐量,GPU属于低性能但高吞吐量。
  • 从Cache和local memory的数量来看:CPU > GPU
  • 从线程数(Threads)来看:GPU > CPU
  • 从寄存器(Registers)数量来看:GPU > CPU

GPU以并行方式大量处理少量的简单运算,特别适合图像的处理。

2.5 Computer Vision和Machine Vision以及Image Processing的区别

  • Computer Vision:用在和应用场景相关的应用当中,偏软件
  • Machine Vision:更加偏重硬件
  • Image Porcessing:偏重于图像像素级别的处理

2.6 CV需要的知识储备和参考资料

  • 编程语言
  1. Python:多用于快速实现算法原型,除此之外还设计到常用的Python库,包括numpy和scipy等
  2. C或C++:实际部署应用一般会用效率更高的编译型语言,比如C和C++。
  • 数学基础:概率论、统计学、微积分、线性代数、机器学习
  • 参考书和公开课
  1. 《Computer Vision : Models, Learning and Inference》
  2. 《Computer Vision : Algorithms and Applications》
  3. 《Multiple View Geometry in Computer Vision》(偏3D CV)
  4. 《Learning OpenCV》
  5. Stanford CS223B:偏理论和基础
  6. Stanford CS231N:卷积神经网络
  7. Stanford CS223A:3D、重建等
  • 网站

Annotated Computer Vision Bibliography

  • 深度学习参考书
    《Deep Learning》 Ian Goodfellow Yoshua Bengio Aaron Courville

2.7 CV相关开源软件

  • OpenCV
  • Caffe
  • TensorFlow
  • FFmpeg

2.8 如何阅读CV相关论文

  • 先熟悉所研究方向的发展历程,发展历程中的里程碑式的文献需要精读
  • 翻阅arXiv cs.CV,关注别人的最新工作
  • 阅读论文务必搞清以下四个方面
  1. 论文解决了什么问题
  2. 用了什么方法
  3. 达到了怎样的效果
  4. 还存在什么问题待解决

附:
CV顶级期刊:PAMI、IJCV

CV顶级会议:ICCV、ECCV、CVPR、NIPS

原文地址:https://www.cnblogs.com/laizhenghong2012/p/10127971.html