計算機視覺如何入門

[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的差異

  • 從性能(低延時性)和吞吐量兩方面來講,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

相關文章
相關標籤/搜索