1. 程式人生 > >小白入門計算機視覺:這是最全的一份CV技術學習之路

小白入門計算機視覺:這是最全的一份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種,因為計算機視覺離開計算機程式設計是完全行不通的

 0?wx_fmt=gif

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/

 0?wx_fmt=gif

03 繞不開的數字影象處理與模式識別

數字影象處理(Digital Image Processing)是通過計算機對影象進行去除噪聲、增強、復原、分割、提取特徵等處理的方法和技術。

入門的同學推薦

岡薩雷斯的《數字影象處理》《數字影象處理(第3版)(英文版)》和對應的Matlab版本

一本講基礎的理論,一本講怎麼用Matlab實現。

除此之外同學們還可以去YouTube上找到相關的課程資訊,相信大家會有所收穫的。

模式識別(Pattern Recognition),就是通過計算機用數學技術方法來研究模式的自動處理和判讀。我們把環境與客體統稱為“模式”。

計算機視覺很多東西都是基於影象識別的,影象識別就是模式識別的一種。

模式識別通常是訓練一個模型來擬合當前的資料,當我們拿到一堆資料或圖片,需要從當中找到它們的關係,最便捷的便是用模式識別演算法來訓練一個模型。

AI菌推薦一本模式識別入門級的教材《模式分類》,相對於《模式識別》這本書來說可能比較難,但書中介紹了很多模式識別經典的分類器,還是很值得一讀。

其中的一些思想在神經網路中也可以應用的

 0?wx_fmt=gif

04 系統的學習下計算機視覺課程

對於CV新手來說,想要從小白到大神,最快的方法就是先系統的學習一下計算機視覺的課程,全面瞭解一下計算機視覺這個領域的背景及其發展、這個領域有哪些基本的問題、哪些問題的研究已經比較成熟了,哪些問題的研究還處於基礎階段。

在這裡AI菌推薦3本經典教材:

《計算機視覺:一種現代方法》(Computer Vision: A Modern Approach)

《計算機視覺_演算法與應用》

(Computer Vision: Algorithms and Applications)

《計算機視覺:模型 學習和推理》

(Computer Vision: Models, Learning, and Inference)

這三本教材AI菌認為是計算機視覺最好的入門教材了,內容豐富,難度適中,其中第二本書涉及大量的文獻,很適合對計算機視覺沒什麼概念的同學。

雖然其中的一些方法在現在看來已經過時了,但還是值得一讀

 0?wx_fmt=gif

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))

 0?wx_fmt=gif

06 瞭解最新領域動態

很多同學做研究的時候,容易陷入自我封閉的“怪圈”,過於執著於埋頭學習相關知識,有時候會忘記及時瞭解相關領域的最新動態,這是非常不科學的。

同學們在學習計算機視覺相關知識的時候,可以通過最新的paper來了解這個領域最新提出的一些概念以及發展的情況。

計算機視覺的期刊有兩個PAMI(模式分析與機器智慧彙刊)和IJCV(計算機視覺國際期刊)

頂級的學術會議有 CVPR、ICCV、 ECCV、 BMVC這四個,同學們可以跟著瀏覽這些期刊論文以及會議文章,相信一定可以學到不少有用的知識。

 0?wx_fmt=gif

AI

聽做視覺的師兄師姐碩:做好計算機視覺研究並不是一件容易的事情,在大多數情況下它甚至是一件很枯燥的事情。

研究成果毫無進展,研究方向不在明朗等等,這一切都會給你前所未有的壓力

所以希望同學們在決定入這一行的時候,是出於自己的熱愛,而不是出於當前的趨勢。

因為熱愛不會變,但趨勢每一年都在變。

0?wx_fmt=jpeg

不失初心,不忘初衷

0?wx_fmt=jpeg

AI玩轉智慧