數字圖像處理/計算機視覺的進階問題?
各位同行好,近期我對dip/cv領域的進一步學習有些問題…
目前,我還是在校本科生,課上學過複變函數,信號與系統,數字信號處理,數字圖像處理等課程課下看過岡薩雷斯的數字圖像處理,幾本OpenCV經典教程書,一些模式識別和機器學習的書,視頻方面看過公開課里Andrew ng的機器學習,杜克大學的圖像與視頻處理…還有一些其他的雜七雜八的書或視頻看了這些書後對自己的水平有疑問,對目前dip這些領域也有疑問,主要為以下:1,(對個人發展的問題)我這樣算是入門了嗎?有的演算法思想我是聞所未聞(比如PDE,active contour等等,還有追蹤演算法只聽過大概,沒有深入了解),對於這些演算法,有沒有書籍推薦?或者有沒其他辦法補充?2,(該領域的問題)可能受近年來機器學習的影響,感覺dip或者cv繼續做下去很容易轉到ml機器學習,特別是人臉識別等方向更是如此,不知道這是大勢所趨還是我眼界太狹隘
3,以上問題的補充,如果ml是cv很好的補充與下一步,那如何在這過程中點技能點?還請各位前輩不吝賜教,謝謝
謝謝邀請。知乎寫的不多,嘗試一下知乎體的風格。
看完題主的問題,想起自己一些往事和經驗,叫做
紙上得來終覺淺,絕知此事要躬行。因為題主講自己的經歷,都是看了什麼什麼書,學了什麼公開課等等。這當然是很好的啦!題主能在本科課餘時間,去自學這些額外的知識,實在是精神可嘉的事。相信你讀opencv的書應該不會一句代碼不寫啦!不過,你看的這些演算法啊、原理啊,都是基礎知識;而實際當中呢,我們更要培養自己利用知識解決問題的能力!對吧!
機器學習確實和cv很搭啦。因為當初做計算機視覺研究的目的就是「make compute see」呀! 「see」 的意思,不就是讓機器去認個道路線/車牌/人臉/阿貓阿狗等奇奇怪怪的東西嘛。當然相機也能做一些測量啊,跟蹤啊之類的事,但是大多數都會用到機器學習的!
至於怎麼加機器學習的技能點,這讓俺想起自己剛上研究生那會兒,聽水哥(張長水老師)講《模式識別》那門課的往事。那時節,我們剛開始研究生課程改革。第一堂課,水哥說:
「各位同學,我們課上講的每一個演算法,大家都要回去實現一遍。不準用庫哦~」
然後我等就愣了。水哥又說:
」課內外的學時比,我會盡量控制在1:5到1:7左右,請大家安排好自己的學習時間哦~「
水哥你不要一邊賣萌一邊說這麼殘忍的話好不……
結果那年我們每周上兩個半小時的《模式識別》,我就要整整寫兩天的作業。還好老師還讓用matlab不是調c++的矩陣,勉強還是能寫完的。總之哥們我把基本的貝葉斯、fisher線性判別、決策樹啥子的都寫了一遍程序,調好弄好還要做一個報告。給大家找張當時的c4.5決策樹感受一下嗯……(這也是少數拿c++寫的東西,因為自己matlab小弱,不太會做樹結構,另外請不要吐槽mfc,而且提交版里還貼了個了萌萌的樹上去的)
後來講到支持向量機,水哥少見的開恩了一次,因為他說:」鑒於往年的經驗,我們發現同學們在一周內調不出支持向量機的程序,所以破例允許大家使用libsvm,嗯。「默默地為往屆交不上作業的學長們默哀……
這個課期末還有大作業,大作業完了後還有考試。我的大作業是和幾個隊友一塊寫了個根據樹葉照片判斷植物種類的小程序,幾個人在陽春三月一塊出去春遊,打著科研的旗號到處搜刮樹葉,非常開心。最後做出來大概是這個樣子的,最後俺們還把實驗報告改吧改吧投了個小文章:
UFLDL教程 - Ufldl
Neural networks and deep learning編程方面嘛,可以挑一個下面的去學:
caffe: Caffe | Deep Learning Frameworktheano: Welcome — Theano 0.7 documentationtorch: Torch | Scientific computing for LuaJIT.這種資料整理工作其實已經有很多啦,就不一一列舉了。最後祝你科研有成啦!推薦一個教程
http://www.robots.ox.ac.uk/~vgg/practicals/cnn/
VGG convolutional neural networks practical.
用ML來做CV非CNN莫屬了。大致教材看完就是看感興趣的論文唄 Google scholar. acm digital library 等等加油
推薦閱讀:
※L1範數的最優化過程是怎麼樣的?梯度下降遇到不可導點怎麼辦?
※如何才能看得懂變分貝葉斯方法(Variational Bayesian)?
※線性可分的數據集下,感知機模型是否是凸優化問題?
※「過擬合」的嚴格定義是什麼?
※在利用支持向量機進行分類的時候怎麼選擇合適的核函數?