计算机视觉如何入门
目录
注:原创不易,转载请务必注明原作者和出处,感谢支持!
一 写在开头
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需要的知识储备和参考资料
- 编程语言
- Python:多用于快速实现算法原型,除此之外还设计到常用的Python库,包括numpy和scipy等
- C或C++:实际部署应用一般会用效率更高的编译型语言,比如C和C++。
- 数学基础:概率论、统计学、微积分、线性代数、机器学习
- 参考书和公开课
- 《Computer Vision : Models, Learning and Inference》
- 《Computer Vision : Algorithms and Applications》
- 《Multiple View Geometry in Computer Vision》(偏3D CV)
- 《Learning OpenCV》
- Stanford CS223B:偏理论和基础
- Stanford CS231N:卷积神经网络
- 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,关注别人的最新工作
- 阅读论文务必搞清以下四个方面
- 论文解决了什么问题
- 用了什么方法
- 达到了怎样的效果
- 还存在什么问题待解决
附:
CV顶级期刊:PAMI、IJCV
CV顶级会议:ICCV、ECCV、CVPR、NIPS