[TOC]html
注:原創不易,轉載請務必註明原做者和出處,感謝支持!算法
一 寫在開頭
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的差異
![](http://static.javashuo.com/static/loading.gif)
- 從性能(低延時性)和吞吐量兩方面來講,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