小白入門計算機視覺:這是最全的一份CV技術學習之路
AI
菌
最近AI菌決定把自己的機器學習之路向計算機視覺方面發展。所以今天就來給大家分享一下AI菌收集到的資料以及心得
The M Tank 編輯了一份報告《A Year in Computer Vision》,記錄了 2016 至 2017 年計算機視覺領域的研究成果,對開發者和研究人員來說是不可多得的一份詳細材料。該材料共包括四大部分
簡介
第一部分
分類/定位
目標檢測
目標追蹤
第二部分
分割
超解析度、風格遷移、著色
動作識別
第三部分
3D 目標
人體姿勢估計
3D 重建
其他未分類 3D
總結
第四部分
卷積架構
資料集
不可分類的其他材料與有趣趨勢
結論
有興趣的同學可以讀一讀,完整 PDF 地址:http://www.themtank.org/pdfs/AYearofComputerVisionPDF.pdf
下面是收集到的學習資料與心得的彙總:
(文中沒有發的資源將在之後陸續放出)
01 掌握好相應的基礎能力
計算機視覺的理念其實與很多概念有部分重疊,包括:人工智慧、數字影象處理、機器學習、深度學習、模式識別、概率圖模型、科學計算以及一系列的數學計算等。
所以在入門CV之前,同學們最好對基礎的學術課程都有對應的瞭解,比如數學方面的微積分,概率學,統計學,線性代數這幾門基礎課程。
在程式語言方面,Matlab,Python,C++,最好熟悉其中2種,因為計算機視覺離開計算機程式設計是完全行不通的
02 需要的專業工具
工欲善其事,必先利其器。對於想要學好計算機視覺的同學來說,一個專業的工具,絕對是助攻的不二神器。
OpenCV(開源計算機視覺庫)是一個非常強大的學習資料庫,包括了計算機視覺,模式識別,影象處理等許多基本演算法。
它免費提供給學術和商業用途,有C++,C,Python和java介面,支援Windows、Linux、Mac OS、iOS和Android。
而關於OpenCV的學習,AI菌推薦(其中第三本目前無中文版):
學習OpenCV(Learning.OpenCV)
連結:
https://pan.baidu.com/s/1c2GrPEK 密碼:7012
毛星雲老師編著的OpenCV3程式設計入門
連結:
https://pan.baidu.com/s/1c2xuVFq 密碼:2s4a
學習OpenCV3(
Learning OpenCV 3
)
連結:
https://pan.baidu.com/s/1geQeT0J 密碼:cuco
而深度學習方面,有TensorFlow,PyTorch,Caffe等深度學習框架,它們也內建了OpenCV的API介面。而哪種框架好,就要看你自己的需要了
推薦資料:
莫凡教程系列之PyTorch :https://morvanzhou.github.io/tutorials/machine-learning/torch/
TensorFlow中文社群:
http://www.tensorfly.cn/
03 繞不開的數字影象處理與模式識別
數字影象處理(Digital Image Processing)是通過計算機對影象進行去除噪聲、增強、復原、分割、提取特徵等處理的方法和技術。
入門的同學推薦
岡薩雷斯的《數字影象處理》《數字影象處理(第3版)(英文版)》和對應的Matlab版本
一本講基礎的理論,一本講怎麼用Matlab實現。
除此之外同學們還可以去YouTube上找到相關的課程資訊,相信大家會有所收穫的。
模式識別(Pattern Recognition),就是通過計算機用數學技術方法來研究模式的自動處理和判讀。我們把環境與客體統稱為“模式”。
計算機視覺很多東西都是基於影象識別的,影象識別就是模式識別的一種。
模式識別通常是訓練一個模型來擬合當前的資料,當我們拿到一堆資料或圖片,需要從當中找到它們的關係,最便捷的便是用模式識別演算法來訓練一個模型。
AI菌推薦一本模式識別入門級的教材《模式分類》,相對於《模式識別》這本書來說可能比較難,但書中介紹了很多模式識別經典的分類器,還是很值得一讀。
其中的一些思想在神經網路中也可以應用的
04 系統的學習下計算機視覺課程
對於CV新手來說,想要從小白到大神,最快的方法就是先系統的學習一下計算機視覺的課程,全面瞭解一下計算機視覺這個領域的背景及其發展、這個領域有哪些基本的問題、哪些問題的研究已經比較成熟了,哪些問題的研究還處於基礎階段。
在這裡AI菌推薦3本經典教材:
《計算機視覺:一種現代方法》(Computer Vision: A Modern Approach)
《計算機視覺_演算法與應用》
(Computer Vision: Algorithms and Applications)
《計算機視覺:模型 學習和推理》
(Computer Vision: Models, Learning, and Inference)
這三本教材AI菌認為是計算機視覺最好的入門教材了,內容豐富,難度適中,其中第二本書涉及大量的文獻,很適合對計算機視覺沒什麼概念的同學。
雖然其中的一些方法在現在看來已經過時了,但還是值得一讀
05 深度學習與CNN
關於深度學習這幾年講的已經太多了,資料也非常多,AI菌在這裡就不在贅述啦
計算機視覺裡經常使卷積神經網路,即CNN,是一種對人腦比較精準的模擬。
什麼是卷積?卷積就是兩個函式之間的相互關係,然後得出一個新的值,他是在連續空間做積分計算,然後在離散空間內求和的過程。
同學們可以試著學習下CNN在計算機視覺當中的應用
推薦的資料:
斯坦福CS231n—深度學習與計算機視覺網易雲課堂課程:http://study.163.com/course/introduction.htm?courseId=1003223001
斯坦福CS231n—深度學習與計算機視覺官方課程:http://cs231n.stanford.edu/
CS231n官方筆記授權翻譯總集篇:https://www.52ml.net/17723.html
吳恩達 deeplearning.ai與網易雲課堂的微專業深度學習工程師卷積神經網路
http://mooc.study.163.com/course/2001281004?tid=2001392030#/info
神經網路方面的經典教材
《深度學習》
(Deep Learning)
《神經⽹絡與深度學習》
(Neural Networks and Deep Learning(Nielsen,2017))
06 瞭解最新領域動態
很多同學做研究的時候,容易陷入自我封閉的“怪圈”,過於執著於埋頭學習相關知識,有時候會忘記及時瞭解相關領域的最新動態,這是非常不科學的。
同學們在學習計算機視覺相關知識的時候,可以通過最新的paper來了解這個領域最新提出的一些概念以及發展的情況。
計算機視覺的期刊有兩個PAMI(模式分析與機器智慧彙刊)和IJCV(計算機視覺國際期刊)
頂級的學術會議有 CVPR、ICCV、 ECCV、 BMVC這四個,同學們可以跟著瀏覽這些期刊論文以及會議文章,相信一定可以學到不少有用的知識。
AI
菌
聽做視覺的師兄師姐碩:做好計算機視覺研究並不是一件容易的事情,在大多數情況下它甚至是一件很枯燥的事情。
研究成果毫無進展,研究方向不在明朗等等,這一切都會給你前所未有的壓力
所以希望同學們在決定入這一行的時候,是出於自己的熱愛,而不是出於當前的趨勢。
因為熱愛不會變,但趨勢每一年都在變。
不失初心,不忘初衷
AI玩轉智慧