如何系統性的了解計算機視覺/圖像處理的現狀和業界研究方向?
題主是初碰圖像方向的程序員,以前存粹搞開發,現在慢慢接觸圖像處理/計算機視覺,對基礎的圖像操作如縮放、去噪、形態學等有了解,比較熟悉opencv。
想比較系統性的了解業界現狀和方向,如何能比較有效率的收集這些信息?thanks !
這個問題我傾向於分兩方面回答:了解方向現狀 和 學會,注意這兩個之間沒有特別必然的聯繫。1.【了解現狀】沒有什麼好說的,看論文,之前有人提到了,CVPR啊什麼的頂級會議,去看就好了,但有個細節注意下,不用下他說得那樣有基礎,為什麼,因為其實那點基礎對你幫助不大,終歸都是看趨勢
2.【學會】想學會就不要大量看論文,看書,記得這樣一句話:論文上的東西,3、5年之後可能都已經過時了,但留在書上都都是經得住考驗的,過很多年也縮水不多的。技術這個東西,你不要把它看成【工具箱】,裡面有很多個不同的工具,什麼深度學習啊、SVM、稀疏啊都是可以用的工具。這個觀點會延誤你的學習的。推薦的觀點是,把技術看成是【原理】和【方案】。
原理是什麼?很多搞這個的都分不清,其實我問一個簡單的問題就可以了:我們一直都在用【方差】表示誤差,為什麼是平方和,而不是絕對值和或4次方和?如果你立刻就能答出來是因為高斯分布,那很可能就代表你明白了大部分相關的學習方法的根本性原理了。這就是【原理】(中最簡單的一個),主導者各種演算法的基礎,也是讓你學習新演算法時輕鬆愉快的基礎。這通常分成了兩個大的部分,【模型描述】和【求解】,術業有專攻,到在這裡,一般的研究生可以根據背景二選一作為主攻,另一個只做充分了解了。【方案】方面,就是那些被人們整理成型的,具有直接應用價值的辦法,就好像編程中學到的&<快速排序演算法&>,是個成型的方法,是分治等一些列原理的集合體。方案上,我們可以得創新非常多,有些是通用的,這些最終會留在教科書上,比如SVM;有些是領域相關的;而有些,就是具體問題相關的,當然,絕大部分論文的創新,其實就是針對具體環境的方案變化。
當然,最後還有【應用】這個有趣的方向,其核心知識除了CV本身,還有」工學素養「這樣比較靠積累(也比較玄乎)的東西,這裡就先坑著了,如果有機會再來填坑。3.【畢業、論文】這個單獨拿出來提一下,為什麼,因為【學會】就像小說裡面的內功,你研究生畢業的時候,這個內功未必能發揮出多少威力,到時候你畢業成問題找我就不好了。這裡推薦的辦法是之前看到於仕琪(不認識?看看你OPENCV書的封面就知道了)帶學生時候的方法,我覺得不錯,這裡稍作調整拿來分享:拿一篇優秀的、和你要做的方向一致的論文,完完全全、一模一樣的實現出來、並充分的調試、測試。期間不要想什麼創新、改進,先去理解作者每一步到底是為什麼。然後?然後他的學生自然就找到了【合理的】改進方案,自己寫論文去了。為什麼要這樣?因為,看論文就和看開源庫一樣,一般水平的人根本不可能看懂門道,你看到的也幾乎不是問題的核心。靠這樣學習就是自欺欺人。你不親自實現一次、親自在各種情況下測試一次,是學不會的。The Computer Vision Industry
這個網站總結了幾百個 圖像處理與計算機視覺方向的公司,並且按照人臉識別,眼球追蹤,交通等許多方面分好了類,你可以一個一個點開看,然後就大概知道現在行業都是在做些什麼了。
最近發現好像這個網站打不開了,這裡有另一個,Computer Vision companies,一樣也是按類總結了CV方向的公司。沒有比較有效率的方法,只有笨方法。
先系統學習基礎知識,至少要讀一些教科書,全面了解這個領域的一些基本概念。如果你只了解基礎圖像操作,對於系統性地了解業界現狀和方法而言,是不夠的。
等你有了基礎知識,那麼就可以刷論文了,英文論文。由於你要了解業界研究方向,那麼應該看的是最先進的技術,所以,就要去看頂級的計算機視覺會議上的論文,比如CVPR, ICCV, ECCV之類。論文不一定要讀完,因為你肯定讀不完,只是為了了解大致研究方向的話,讀讀摘要就可以了。
PS: 如果是工業界的現狀的話,以上方法不適用,我也不知道合適的方法。CV界的三大會議:CVPR、ICCV、ECCV。這三個會議的論文非常多,有個網站http://cvpapers.com把近年來的paper匯總了一下,可以參考。另外如果想了解最近的發展趨勢,不如看一看近年來三大會議的workshop,尤其是industry track的,會很有幫助。
ICCV,ECCV,CVPR這幾個會議的近幾年的文章拖下來,掃一遍題目和abstract,大概就能知道熱門的研究方向了。想要系統性的了解就要多花時間了,看看經典教材,或者MOOC上的課程。
推薦閱讀:
※Google的 工程師實習生 (EngineeringPracticum Interns)申請是怎樣的過程,怎樣能獲得機會?
※哪些編程工作需要高階數學知識?
※做軟體的需要上Computer Architecture這門課嗎?
※設計優秀的 API 有什麼特徵?