知乎用户和龙鹏-言有三:计算机视觉应该怎样入门?
本文來源與知乎網,版權歸作者知乎用戶和龍鵬-言有三所有~~~
知乎用戶:
自學了一段時間計算機視覺(Computer Vision),下文簡稱:CV。內容以基本概念為主,形式以看書為主,跟著敲代碼為輔。
起因:因工作中會涉及到交通物流風險管理、出險理賠材料審查等內容,會涉及到大量人工介入審閱照片、視頻的環節。而隨著素材量的增加將來需要大量的人力來處理,導致成本高,效率低、易出錯。思考:能否通過某種技術進行照片、視頻內容的審查,從而消化一定的工作量,同時提升效率?帶著這樣的問題,我們鎖定了CV技術。
這里非常簡單地談談自己近一年的學習體會,算是入門者說吧。
1、首先明確CV都會在哪些領域里使用,即用途是什么?
以下是筆者在今年1月中旬于硅谷參加AI世界前沿大會時拍攝的OpenCV作者Bradski大神的演講ppt照片(能看得清內容)。從上圖可以看出,CV或者說OpenCV用途十分廣泛。那么問題來了,你確認你要學的東西在未來的學習或者工作中可以派上用處嗎?如果答案是Yes。就繼續往下看。
?
2、CV是啥?
如果用一句話來解釋CV,那么可能是研究讓機器像人一樣具有能夠“看”的能力,并在必要的時候給予合適的反饋(輸出:比如看圖說話,看視頻說話)。?
3、學什么?從哪里開始學?
從斯坦福大學李飛飛教授的CS231n課程中可以看到,需要有一些基礎,以便更好的學習CV。截屏如下:
上圖可以看到,需要我們具備一些知識:
1)編程基礎:Python和C++。個人理解,用Python快速實現算法;用C++實戰,實時性能強。2)數學基礎:高數,線性代數、基礎概率與統計
3)機器學習基礎
3-1)如果你對以上內容都有一定的基礎,那么恭喜你,對于入門CV,你有了好的開始。
?
3-2)推薦幾本比較好的書籍:
1、《計算機視覺:模型、學習和推理》
入門基礎書籍,講得很清楚。我在看,非常好的與機器學習結合的CV入門書籍。英文好的同學,建議看Prince的原本彩圖書籍。官網《英文原版彩圖PDF版本》下載鏈接2、《Learning OpenCV》
實戰經典。推薦理由:OpenCV作者Bradski大神的書。學習CV的人是無法繞開OpenCV的。3、《Python計算機視覺編程》
如果你有一定的Python基礎,筆者強烈推薦看這本書,把CV的基本概念和算法結合代碼實戰,講得比較清楚。入門佳作。它不是一上來就用OpenCV庫,使得入門者容易忽視很多基礎的概念算法。4、《計算機視覺:算法與應用》
不建議入門者看。寶典型,大而全。典型的工具書。作者是Richard Szeliski,CV界大牛,圖像拼接奠基人。5、《 Multiple View Geometryin Computer Vision 》,中文版名《CV中的多視圖幾何》
據說是玩3D必看的一本書,包括AR/VR。很多CV專家都推薦。?
3-3)視頻學習,當然是斯坦福大學李飛飛教授的CS231N課程(需要扶梯),這是一門結合深度學習的CV教學視頻。經典!
3-4)目前結合深度學習的CV是發展方向之一,有空可以看看花書。
?
4、OpenCV、TensorFlow、Caffe
這些個,咱們現在一個都繞不開。多上手,多練吧。
?
5、國際頂尖的CV會議,掃掃論文的摘要、看看報告視頻。(如果確定深度研究,就仔細看。否則,個人覺得了解下就好。)
?
于2017年12月3日凌晨 0:45
?
龍鵬-言有三:
作者:龍鵬-言有三
鏈接:https://www.zhihu.com/question/23902574/answer/573508084
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
?
從兩個方向來回答你這個問題吧,第一個是怎么系統性進階,第二個是如何系統性學習。
第一個問題,如何系統性進階,我斗膽將學習深度學習的同志分為5大境界,分別是白身,初識,不惑,有識,不可知,下面一個一個道來,以計算機視覺方向為例。http://weixin.qq.com/r/xEw1LebEMbtOraJO9xnW (二維碼自動識別)
1 白身
所謂白身境界,就是基本上什么都不會,還沒有進入角色。在這個境界需要修行的內容包括:
(1) 熟練掌握linux及其環境下的各類工具的使用(2) 熟練掌握python及機器學習相關庫的使用
(3) 掌握c++等高性能語言的基本使用
(4) 知道如何獲取和整理,理解數據
(5) 掌握相關的數學基礎
(6) 了解計算機視覺的各大研究方向
(7) 了解計算機視覺的各大應用場景
(8) 了解行業的優秀研究人員,知道如何獲取最新的資訊,能夠熟練閱讀簡單的技術資料
如果掌握了這些,那么就從白癡,不,是白身境界晉級了。怎么判斷這個境界呢?可以參考以下的文章,看看掌握的如何。
AI白身境界系列完整鏈接:第一期:【AI白身境】深度學習從棄用windows開始
第二期:【AI白身境】Linux干活三板斧,shell、vim和git
第三期:【AI白身境】學AI必備的python基礎
第四期:【AI白身境】深度學習必備圖像基礎
第五期:【AI白身境】搞計算機視覺必備的OpenCV入門基礎
第六期:【AI白身境】只會用Python?g++,CMake和Makefile了解一下
第七期:【AI白身境】學深度學習你不得不知的爬蟲基礎
第八期: 【AI白身境】深度學習中的數據可視化
第九期:【AI白身境】入行AI需要什么數學基礎:左手矩陣論,右手微積分
第十期:【AI白身境】一文覽盡計算機視覺研究方向
第十一期:【AI白身境】AI+,都加在哪些應用領域了
第十二期:【AI白身境】究竟誰是paper之王,全球前10的計算機科學家
2 初識
所謂初識,就是對相關技術有基本了解,掌握了基本的使用方法。在這個階段,需要修行以下內容。
(1) 熟練掌握神經網絡
(2) 培養良好的數據敏感性,知道如何正確準備和使用數據
(3) 至少熟練掌握一個深度學習框架的使用
(4) 熟悉深度學習模型的基本訓練和調參,網絡設計
(5) 掌握歸一化,激活機制,最優化等對模型性能的影響
(6) 能熟練評估自己的算法,使用合適的優化準則
我們正在更新這一個系列的文章
AI初識境界系列完整鏈接:第一期:【AI初識境】從3次人工智能潮起潮落說起
第二期:【AI初識境】從頭理解神經網絡-內行與外行的分水嶺
第三期:【AI初識境】近20年深度學習在圖像領域的重要進展節點
第四期:【AI初識境】激活函數:從人工設計到自動搜索
第五期:【AI初識境】什么是深度學習成功的開始?參數初始化
第六期:【AI初識境】深度學習模型中的Normalization,你懂了多少?
第七期:【AI初識境】為了圍剿SGD大家這些年想過的那十幾招
第八期:【AI初識境】被Hinton,DeepMind和斯坦福嫌棄的池化,到底是什么?
第九期:【AI初識境】如何增加深度學習模型的泛化能力
第十期:【AI初識境】深度學習模型評估,從圖像分類到生成模型
第十一期:【AI初識境】深度學習中常用的損失函數有哪些?
第十二期:【AI初識境】給深度學習新手開始項目時的10條建議
3 不惑
進入到不惑境界,就是向高手邁進的開始了,在這個境界的重點就是進一步鞏固知識,并且開始獨立思考。如果說學習是一個從模仿,到追隨,到創造的過程,那么到這個階段,應該跳過了追隨,進入了創造的階段。
如果是在學校讀研究生,就要能夠發表水平不錯的文章,如果是在公司做業務,就要能夠提出正確且快速的解決方案,如果是寫技術文章,就要能夠信手拈來原創寫作而不需要參考。
這個階段需要修行以下內容:
(1) 熟練玩轉數據和模型對一個任務的影響
(2) 能夠準確的分析出模型的優劣,瓶頸
(3) 對于新的任務能夠快速尋找和敲定方案
(4) 擁有各種各樣的深刻理解深度學習模型的技能,從可視化到參數分析等等等
(5) 能夠優化模型到滿足業務的需求,實現工業級落地
(6) 了解行業的最新進展,并在某些領域有自己的獨到理解
4 有識
到這里,就步入高手境界了。可以大膽地說自己是一個非常合格的深度學習算法工程師甚至是研究員了,在自己研究的領域里處于絕對的行業前沿,對自己暫時不熟悉的領域也能快速地觸類旁通。
無論是眼界,學習能力,還是學習態度都是一流水平,時而大智若愚,時而鋒芒畢露,當之無愧的大師兄。
5 不可知
最后一個境界,就是不可知境界,超出我能描述的范圍了。舉一個例子,馬文·閔斯基,既可以讓AI生,又可以讓AI死,這樣的人是不會遇到的,放心好了。
?
------------------------------------這是分隔線------------------------------------
?
第二個問題,如何系統性學習,大家就可以去我們公眾號《有三AI》和知乎專欄《有三AI學院》看了,覆蓋以下內容。從深度學習理論,訓練,到開源框架,模型架構的演化,到行業的發展等。1 深度學習模型設計(更新中)
模型解讀系列文章:第一期:【模型解讀】從LeNet到VGG,看卷積+池化串聯的網絡結構
第二期:【模型解讀】network in network中的1*1卷積,你懂了嗎
第三期:【模型解讀】GoogLeNet中的inception結構,你看懂了嗎
第四期:【模型解讀】說說移動端基準模型MobileNets
第五期:【模型解讀】pooling去哪兒了?
第六期:【模型解讀】resnet中的殘差連接,你確定真的看懂了?
第七期:【模型解讀】“不正經”的卷積神經網絡
第八期:【模型解讀】“全連接”的卷積網絡,有什么好?
第九期:【模型解讀】從“局部連接”回到“全連接”的神經網絡
第十期:【模型解讀】深度學習網絡只能有一個輸入嗎
第十一期:【模型解讀】從2D卷積到3D卷積,都有什么不一樣
第十二期:【模型解讀】淺析RNN到LSTM
第十三期:【模型解讀】歷數GAN的5大基本結構
2 開源框架速成(更新完)
開源框架速成系列:第一篇:【caffe速成】caffe圖像分類從模型自定義到測試
第二篇:【tensorflow速成】Tensorflow圖像分類從模型自定義到測試
第三篇:【pytorch速成】Pytorch圖像分類從模型自定義到測試
第四篇:【paddlepaddle速成】paddlepaddle圖像分類從模型自定義到測試
第五篇:【Keras速成】Keras圖像分類從模型自定義到測試
第六篇:【mxnet速成】mxnet圖像分類從模型自定義到測試
第七篇:【cntk速成】cntk圖像分類從模型自定義到測試
第八篇:【chainer速成】chainer圖像分類從模型自定義到測試
第九篇:【DL4J速成】Deeplearning4j圖像分類從模型自定義到測試
第十篇:【MatConvnet速成】MatConvnet圖像分類從模型自定義到測試
第十一篇:【Lasagne速成】Lasagne/Theano圖像分類從模型自定義到測試
第十二篇:【darknet速成】Darknet圖像分類從模型自定義到測試
3 技術綜述(更新中)
【技術綜述】閑聊圖像分割這件事兒
【技術綜述】“看透”神經網絡
【技術綜述】你真的了解圖像分類嗎?
【技術綜述】一文道盡R-CNN系列目標檢測
【技術綜述】萬字長文詳解Faster RCNN源代碼
【技術綜述】一文道盡傳統圖像降噪方法
【技術綜述】一文道盡softmax loss及其變種
【技術綜述】圖像與CNN發家簡史,集齊深度學習三巨頭
人臉子方向【技術綜述】人臉年齡估計研究現狀
【技術綜述】人臉顏值研究綜述
【技術綜述】人臉臉型分類研究現狀
【技術綜述】人臉表情識別研究
【技術綜述】如何降低遮擋對人臉識別的影響
4 數據與競賽(更新中)
【數據】深度學習從“數據集”開始
【深度學習中的數據增強】上篇
【深度學習中的數據增強】下篇
【技術綜述】一文道盡“人臉數據集”
【數據】短視頻識別,都有那些行業標準?
【數據集】一文道盡醫學圖像數據集與競賽
【數據集】自動駕駛都有什么測試基準?
【資源總結】國內AI領域的賽事全集
5 模型訓練技巧(更新中)
如何步入深度學習刷榜第一重境界
【技術綜述】如何Finetune一個小網絡到移動端(時空性能分析篇)
【深度學習圖像項目實戰-從入門到上線1】怎樣學會科學的調研并啟動一個項目
【模型訓練】如何選擇最適合你的學習率變更策略
【模型訓練】SGD的那些變種,真的比SGD強嗎
6 AI1000問(更新中)
多思考細節,有很多容易被面試者忽略的很小,但是又很重要的問題,這些問題通常有這些特點:
- 技術相關
- 足夠聚焦
- 容易被忽視
- 普通但是不簡單
- 可以引申很多思考
這里提供幾個。
(1) 做過圖像分類項目或者看過文章的小伙伴們應該都知道,在論文中進行各類方法的比較時,要求使用同樣的數據集。而為了公平的比較,網絡的輸入大小通常都是224*224的大小,那為什么呢?
【AI-1000問】為什么深度學習圖像分類的輸入多是224*224
(2) 相信大家也都知道LeNet5這個經典的卷積神經網絡,它有3個全連接層,輸出維度分別是120,84,10,不知道大家知不知道為什么倒數第2個全連接層的維度是84呢?
【AI-1000問】為什么LeNet5倒數第二個全連接層維度為84?
做圖像處理的我們應該都知道,OpenCV是我們必備的一個工具,我們在使用OpenCV讀取圖像時你應該也發現了讀取出來的數組居然是BGR格式,而不是我們聽的最多,用的最多的RGB格式,這是為什么呢?
【AI-1000問】為什么OpenCV讀取的圖像格式是BGR?
現在說起人工智能,聊起AI,每個人或多或少都能說出一點,從歷史到未來,從圖靈到馮諾依曼,從SVM到CNN等等,但是如果問你是否知道機器學習和模式識別有什么區別,知道嗎?
【AI-1000問】機器學習和模式識別是什么關系?
人臉識別一直以來都是當前生物特征識別研究的熱點之一,人臉識別技術在工業界應用價值尤為突出。Face detection、alignment、verification、identification(recognization),能第一時間說出來區別嗎?
【AI-1000問】人臉的4個方向,你還分的清楚嗎?
最后,歡迎來有三AI交流。
總結
以上是生活随笔為你收集整理的知乎用户和龙鹏-言有三:计算机视觉应该怎样入门?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 预印本平台(arXiv.org) — 免
- 下一篇: Python语言编程之正则表达式模式