計算機視覺工程師的萬里長征路(附完整學習資料)

前言

計算機視覺 (CV) 作爲人工智能 (AI) 的子方向,近年來十分火熱,廣泛應用於各大領域,如人臉識別、無人駕駛、智慧交通、智慧醫療和機器人等。其網絡模型和算法也是層出不窮,涉及的理論基礎也十分廣泛。本文將列舉計算機視覺工程師的知識結構,同時分享相關技術快速入門博客傳送門。目的在於鞏固拓展自身所學,與大家互相交流,共同進步。

1 計算機基礎

雖然面試基礎四大件在 CV 日後工作中可能用處不是很大,但這些往往能決定一名碼農的上限(咱也是聽前輩說的,還沒那體會)。但實際一點來說,計算機基礎在面試中所佔比例不容忽視。

2 編程語言

隨着 AI 的興起,Python 這門腳本語言最近特別火。不可否認的是,Python 代碼簡單易學,操作方便,尤其體現在深度學習 (DL) 網絡模型實現上;但企業級開發中,只會 Python 是不夠的,算法的落地應用更多還是依賴 C++,很多 CV 庫和 DL 框架都是用 C/C++ 寫的。當然,還有 Shell 批處理語言也是不能不會的,企業級開發多在Linux系統下進行,掌握 Shell 是基石。

3 數學基礎

CV 的數學門檻沒有 SLAM、立體視覺、三維重建那麼高,但數學理論的高低也決定了一名算法狗的上線。比如機器學習 (ML) 算法實質就是統計學,對一組數據進行特徵工程,分類,迴歸,聚類,降維;RGB 圖像可以表示爲矩陣的形式;DL 網絡訓練技巧中的優化算法本質也是最優化方法。

  • 微積分
  • 矩陣論
  • 統計學
  • 最優化方法

4 圖像處理與OpenCV

CV 處理的對象是圖片或視頻,因爲 RGB 圖像可以表示爲矩陣形式,所以對圖像處理也就可以理解爲對矩陣進行數學運算,比如卷積;但僅僅掌握數字圖像處理的理論是不夠的,如何才能運用到工程上,這就離不開 CV 庫的幫助了。目前常用的就是 OpenCV 了,感興趣的朋友可以研究源碼,對於理論的理解會有很大幫助。

5 機器學習與Scikit-learn

ML 是包含 DL 的,圖像/視頻本質上仍然是數據的一種,談到數據分析,首選當然是 ML 算法,ML 算法可分爲四大類:分類、迴歸、聚類、降維。同樣地,爲了能把理論運用到工程上,離不開 ML 庫的幫助。目前常用的是 Scikit-learn,感興趣的朋友可以研究源碼,對於理論的理解會有很大幫助。

  • 機器學習
  • Scikit-learn

6 深度學習與框架

DL 算法是由感知機逐步演化而來,神經網絡 (NN) 的訓練技巧也是不斷髮展。不同激活函數、損失函數、優化算法對優化目標都有着不同的影響。LeNet-5 打開了 DL 算法落地的大門,卷積神經網絡 (CNN) 走入人們的視野,卷積層、非線性激活、池化層、歸一化、全連接層讓特徵提取由人工選擇轉爲自動學習。循環神經網絡 (RNN) 的出現極大促進了自然語言處理 (NLP) 的發展。生成對抗網絡 (GAN) 也是 DL 算法比較有趣的一個分支,常用於圖像生成。爲了更高效地運用到工程上,很多框架應運而生。目前常用的有 Caffe、TensorFlow、PyTorch、Keras、MXNet。

7 CV子方向

CV 的子方向十分廣泛,應用領域也很廣。不過大多算法都是相通的,無非是以上知識的結晶。對於大多朋友來說,往往只需專精一個子方向即可,緊跟頂會頂刊大牛組算法即可,如 CVPR、ICCV、PAMI、AAAI。

未完待續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章