2020年計算機視覺學習指南
原文:
https://
towardsdatascience。com/
guide-to-learn-computer-vision-in-2020-36f19d92c934
作者:Insaf Ashrapov
前言
本文推薦的教程資源都是基於我個人的經驗,它們對增強你的計算機視覺理論非常有幫助。另外,在學習計算機視覺的理論前,先了解和學習機器學習和 python 方面的知識是更好的做法。
框架
不必要在學習開始就選擇使用這些框架,但應用新獲得的知識是必要的。
對於框架的推薦,沒有其他的推薦:
pytorch
:
https://
pytorch。org/tutorials/
keras(TensorFlow)
:
https://www。
tensorflow。org/guide/ke
ras
Pytorch 可能需要寫更多的程式碼,但是它更加靈活,所以最好選擇使用它,並且越來越多的深度學習研究者都開始採用這個框架。
Albumentation
(影象增強)和
catalyst
(一個封裝 pytorch 的高階 API 的框架)也同樣是非常有幫助的,所以也可以使用它們,特別是第一個影象增強的框架——
Albumentation
。
硬體
Nvidia GPU 10XX+ 型號已經足夠使用了(大約 300$)
Kaggle 的 kernels:
https://www。
kaggle。com/kernels
,每週免費使用 30 個小時;
谷歌的 Colab:
https://
colab。research。google。com
/
,每個會話有 12 個小時的限制,每週免費時長限制未知。
理論&實踐
網上課程
CS231n
:
http://
cs231n。stanford。edu/
,是首選的網上課程,它介紹了計算機視覺的所有必須掌握的基礎知識。在 Youtube 上有課程影片,它們還有課後練習,但不建議去完成它們(儘管是免費的);
Fast.ai
:
https://
course。fast。ai/
,第二門應該看的課程。fast。ai 也是一個封裝了 pytorch 的高階框架,但它們很頻繁更改它們的 API 介面,並且缺乏文件,這都是它不被推薦採用的原因。但觀看它們的課程影片是可以瞭解到理論和有趣的技巧,這是值得花費時間的。
當學習這些課程的時候,推薦將這些理論透過推薦的框架來進行實現。
論文和程式碼
https://
arxiv。org/
:免費獲取最新論文的網站
https://
paperswithcode。com/sota
:展示了深度學習最新的效能最佳的論文,不僅僅是計算機視覺方面的;
https://
github。com/topics/compu
ter-vision?l=python
:可以在這找到程式碼實現的演算法
書籍
並沒有太多書需要閱讀的,除了下面兩本我覺得是非常有用的書,可以任選 pytorch 或者 keras 來實現程式碼
Deep Learning with Python
:
https://www。
amazon。com/Deep-Learnin
g-Python-Francois-Chollet/dp/1617294438
,作者是 Keras 的開發者、谷歌 AI 研究者——François Chollet。這不是一本免費的書,但這本書易於理解,並且可以學到很多之前不知道的知識點;
Deep learning with Pytorch
:
https://
pytorch。org/deep-learni
ng-with-pytorch-thank-you
,免費的書籍,來自 pytorch 團隊的 Eli Stevens & Luca Antiga
Kaggle
網址:
https://www。
kaggle。com/competitions
Kaggle 是一個著名的機器學習比賽線上平臺,它包含了各種型別的比賽,其中很多都是計算機視覺方面的比賽。在沒有學完課程的時候,就可以開始參加比賽了,因為從比賽開始,可以免費執行很多公開的 kernels(公開的端到端的程式碼)。
比較困難的學習路線
另外一條學習路徑可能是非常困難,但是你不僅可以學到只是做訓練模型並預測結果的知識,還可以實現自己的研究,參考自Sergei Belousov aka bes。
需要做的就是閱讀並實現下面的所有論文,當然僅僅讀完也是非常棒的。
網路結構
AlexNet
:
https://
papers。nips。cc/paper/48
24-imagenet-classification-with-deep-convolutional-neural-networks
ZFNet
:
https://
arxiv。org/abs/1311。2901
VGG16
:
https://
arxiv。org/abs/1505。0679
8
ResNet
:
https://
arxiv。org/abs/1704。0690
4
GoogLeNet
:
https://
arxiv。org/abs/1409。4842
Inception
:
https://
arxiv。org/abs/1512。0056
7
Xception
:
https://
arxiv。org/abs/1610。0235
7
MobileNet
:
https://
arxiv。org/abs/1704。0486
1
語義分割
FCN
:
https://
arxiv。org/abs/1411。4038
SegNet
:
https://
arxiv。org/abs/1511。0056
1
UNet
:
https://
arxiv。org/abs/1505。0459
7
PSPNet
:
https://
arxiv。org/abs/1612。0110
5
DeepLab
:
https://
arxiv。org/abs/1606。0091
5
ICNet
:
https://
arxiv。org/abs/1704。0854
5
ENet
:
https://
arxiv。org/abs/1606。0214
7
生成對抗網路(GAN)
GAN
:
https://
arxiv。org/abs/1406。2661
DCGAN
:
https://
arxiv。org/abs/1511。0643
4
WGAN
:
https://
arxiv。org/abs/1701。0787
5
Pix2Pix
:
https://
arxiv。org/abs/1611。0700
4
CycleGAN
:
https://
arxiv。org/abs/1703。1059
3
目標檢測
RCNN
:
https://
arxiv。org/abs/1311。2524
Fast-RCNN
:
https://
arxiv。org/abs/1504。0808
3
Faster-RCNN
:
https://
arxiv。org/abs/1506。0149
7
SSD
:
https://
arxiv。org/abs/1512。0232
5
YOLO
:
https://
arxiv。org/abs/1506。0264
0
YOLO9000
:
https://
arxiv。org/abs/1612。0824
2
例項分割
Mask-RCNN
:
https://
arxiv。org/abs/1703。0687
0
YOLACT
:
https://
arxiv。org/abs/1904。0268
9
姿勢預估
PoseNet
:
https://
arxiv。org/abs/1505。0742
7
DensePose
:
https://
arxiv。org/abs/1802。0043
4
小結
這篇文章是原文作者推薦的入門計算機視覺的一些資源,包括推薦採用的深度學習框架、課程、電子書、查閱論文和程式碼的網站,以及一個比賽網站,kaggle;
另外還有一條會更加困難的學習路線,也就是閱讀經典的論文,從網路結構到常見的計算機視覺方向,檢測、分割、GAN以及姿勢預估,但完成後收穫就會更多,不僅僅是隻會運用框架來訓練模型,解決問題,還有機會往研究方向發展。