計算機視覺新手指南

人工智能遇見磐創 發佈 2020-04-26T02:49:45+00:00

A. 用數字表示顏色:在計算機科學中,每種顏色都由指定的十六進位值來表示。 在學習時,很多時候我無法盡力而為,經常感到沮喪,但後來朋友的建議來了。

通過機器的眼睛去探索

  • 如果我們想讓機器學會思考,就需要教他們學會如何用視覺去看周圍環境。—— 史丹福大學AI實驗室和斯坦福視覺實驗室主任李飛飛

使計算機或手機等機器看到周圍環境的現象稱為計算機視覺。機器仿生人眼的研究工作可以追溯到50年代,從那時起,我們已經走了很長一段路。計算機視覺技術已經通過不同的電子商務領域以及相機應用程式進入了我們的手機。 想一想當機器能夠像人眼一樣準確地看到周圍環境時,機器還有什麼是不可以做的。人眼是一個複雜的結構,它可以理解複雜的環境現象。同樣的,可以讓機器能夠看到事物並使其具有足夠的能力去理解它們所看到的內容,從而進一步對其進行分類,這項工作仍然是非常艱巨。 使用計算機視覺等效其準確性幾乎與人眼相同的情況下,可以在眨眼間就進行數百萬次計算。這不僅涉及到將圖片轉換為像素,還包括嘗試通過這些像素去了解圖片中的內容,接下來你將首先來了解如何從這些像素中提取信息並理解其代表的內容。

那麼,讓我們了解一下機器如何去看(像人眼一樣)? A. 用數字表示顏色:在計算機科學中,每種顏色都由指定的十六進位值來表示。機器通過這種編碼方式,來了解圖像像素是由什麼顏色組成的。而作為人類,我們天生就擁有基因來區分不同色調。

B. 圖像分割:使計算機識別出相似的顏色組,然後分割圖像,即將前景與背景區分開。顏色漸變技術被用來查找不同對象的邊緣。

C. 查找角點:分割後,查找圖像中的某些特徵,也稱為角點(corners)。簡而言之,算法會搜索以一定角度相交的線,並以一種顏色的陰影覆蓋圖像的特定部分。角點(也稱為特徵)構建基塊,可幫助查找圖像中包含的更詳細信息。

D. 查找紋理:確定圖像中的紋理是正確識別圖像的另一個重要因素。兩個對象之間的紋理差異使機器正確地對對象進行更容易地分類。

E. 做出猜測:執行上述步驟後,機器需要做出接近正確值的預測或者推斷,並將圖像與資料庫中存在的圖像進行匹配。

F. 最後,看大圖!最後,一台機器會看到更大、更清晰的畫面,並根據所提供的算法指令檢查是否正確地識別了該畫面。在過去的幾年中,準確性得到了很大的提高,但是當機器被要求處理帶有混合物體的圖像時,機器仍然會犯錯誤。

擁有計算機視覺研究小組的大學:

美國大學

卡內基梅隆大學機器人學院 加州大學洛杉磯分校 北卡羅來納大學教堂山分校 華盛頓大學 加州大學伯克利分校 史丹福大學 麻省理工學院 康奈爾大學 賓夕法尼亞大學 加州大學爾灣分校 哥倫比亞大學 伊利諾伊大學香檳分校 南加州大學 密西根大學 普林斯頓大學 羅切斯特大學 德克薩斯大學奧斯汀分校 馬里蘭大學學院公園 布朗大學 中央佛羅里達大學 紐約大學 密西根州立大學 麻省大學,阿默斯特 西北大學 加州大學聖地亞哥分校

加拿大的大學:

艾伯塔大學 多倫多大學 不列顛哥倫比亞大學 西蒙弗雷澤大學

歐洲大學:

INRIA法國 牛津大學 蘇黎世聯邦理工學院 德國馬克斯·普朗克研究所 愛丁堡大學 薩里大學 弗萊堡大學 瑞典KTH 德勒斯登大學 達姆施塔特工業大學 瑞士EPFL 魯汶大學 巴塞隆納計算機視覺中心 瑞士IDIAP 倫敦帝國理工學院 海德堡國際機場 曼徹斯特大學 波恩大學 亞琛工業大學 阿姆斯特丹大學 慕尼黑工業大學 捷克技術大學 劍橋大學 格拉茨 IST奧地利 倫敦瑪麗皇后大學 蘇黎世大學 代爾夫特大學 利茲大學 伯爾尼大學 隆德大學 義大利特倫託大學 義大利佛羅倫斯大學 斯圖加特大學 薩爾大學 巴黎中央學校 巴黎理工學院 奧盧大學 卡爾斯魯厄理工學院

如果你是計算機視覺領域的新手,可以在下面找到一系列初學者需要了解的基礎知識點。

A.初學者水平 數學:

  • 線性代數 https://www.khanacademy.org/math/linear-algebra
  • 奇異值分解 https://www.youtube.com/watch?v=sJV0QyHoRio
  • 入門級模式識別 https://ocw.mit.edu/courses/media-arts-and-sciences/mas-622j-pattern-recognition-and-analysis-fall-2006/
  • 主成分分析 https://www.youtube.com/watch?v=H0HjNuNvFVI
  • 卡爾曼濾波 https://www.youtube.com/watch?v=d0D3VwBh5UQ
  • 傅立葉變換 https://www.youtube.com/watch?v=hVOA8VtKLgk&list=PLuh62Q4Sv7BUSzx5Jr8Wrxxn-U10qG1et&index=1
  • 小波 https://www.youtube.com/watch?v=4fQAlD5wZKA

圖像處理:

  • 杜克大學在Coursera上提供的在線課程 https://www.coursera.org/learn/image-processing
  • 岡薩雷斯和伍茲的數字圖像處理 http://www.imageprocessingplace.com/

B.高級水平

  • 線性判別分析 https://www.youtube.com/watch?v=aSyQqHY4Vqc
  • 機率,貝葉斯規則,最大似然,MAP https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-041-probabilistic-systems-analysis-and-applied-probability-fall-2010/
  • 混合物和期望最大化算法 https://www.youtube.com/watch?v=Q1oqJSgp_Dk
  • 入門級統計學習 https://www.coursera.org/specializations/statistics
  • 支持向量機 https://www.youtube.com/watch?v=_PwhiWxHK8o
  • 遺傳算法 https://www.youtube.com/watch?v=kHyNqSnzP8Y
  • 隱馬爾可夫模型 https://www.youtube.com/watch?v=D_RIe5bd3hk
  • 貝葉斯網絡 https://www.coursera.org/learn/probabilistic-graphical-models

要獲得有關理論和技術(尤其是算法)的實踐知識,請從計算機視覺的角度開始學習OpenCV:

  • 學習OpenCV:使用OpenCV庫的計算機視覺(https://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134)
  • Tombone的計算機視覺博客(http://www.computervisionblog.com/)

提示:使用C,C ++,Python進行編程時,我們使用OpenCV庫進行計算機視覺的相關實踐任務。在MATLAB中進行編程時,我們使用計算機視覺系統工具箱(https://in.mathworks.com/products/computer-vision.html?s_tid=gn_loc_drop) 。 同樣,如果你使用其他語言編程,則還需要更多的開源庫。

你還應該了解領域中科學研究的關鍵工作,在這裡你可以從中學習它們:

  • SIFT:通用視覺的經典描述符 https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf
  • HOG:眾所周知的描述符,特別適合人類檢測
  • Viola-Jones:偉大的人臉檢測器 https://www.microsoft.com/en-us/research/people/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fpeople%2Fviola%2Fpubs%2Fdetect%2Fviolajones_ijcv.pdf
  • Shape Contexts http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.18.8852&rep=rep1&type=pdf
  • Deformable Part Models http://www.rossgirshick.info/latent/

必讀書籍清單包括:

入門級:

  1. 計算機視覺:算法與應用 http://szeliski.org/Book/
  2. 計算機視覺:現代方法David A. Forsyth,Jean Ponce http://cmuems.com/excap/readings/forsyth-ponce-computer-vision-a-modern-approach.pdf
  3. 計算機視覺中的多視圖幾何。作者:Richard Hartley,Andrew Zisserman http://books.google.cn/books?hl=en&lr=&id=si3R3Pfa98QC&oi=fnd&pg=PR11&dq=computer+vision&ots=aQo-nw6e4Q&sig=zGRDslfuKd1ytlZWwTaTKcuLdNw&redir_esc=y

高級水平—走向深度學習

  1. Michael Nielsen的「神經網絡和深度學習」在線書;這是一個非常棒而溫和的介紹:神經網絡和深度學習 http://neuralnetworksanddeeplearning.com/
  2. Ian Goodfellow,Yoshua Bengio和Aaron Courville撰寫的深度學習書 http://www.deeplearningbook.org/

當機器可以感覺到你的情緒時會發生什麼?點擊連結觀看視頻 https://youtu.be/QFk3e5PcK7s

TED觀看演講:

  1. 李飛飛:我們如何教計算機理解圖片 https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures
  2. BlaiseAgüera和Arcas:PhotoSynth如何連接世界圖像 https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures
  3. 淺川千惠子:新技術如何幫助盲人探索世界 https://www.ted.com/talks/chieko_asakawa_how_new_technology_helps_blind_people_explore_the_world
  4. 詹妮弗·希利:如果汽車可以說話,則事故可以避免 https://www.ted.com/talks/jennifer_healey_if_cars_could_talk_accidents_might_be_avoidable
  5. 戈蘭·萊文(Golan Levin):回望你的藝術 https://www.ted.com/talks/golan_levin_art_that_looks_back_at_you
  6. Paul Debevec:製作真實照片的數字臉動畫 https://www.ted.com/talks/paul_debevec_animating_a_photo_real_digital_face
  7. 戈蘭·萊文:軟體藝術 https://www.ted.com/talks/golan_levin_software_as_art

在線課程:

入門級:

  • Udacity:計算機視覺概論 https://www.udacity.com/course/introduction-to-computer-vision--ud810
  • 史丹福大學的CS231n:用於視覺識別的卷積神經網絡 http://cs231n.stanford.edu/
  • 中央佛羅里達大學-Mubarak Shah教授的視頻講座 https://www.crcv.ucf.edu/videos/lectures/2014.php
  • 從上述資源中獲得的概念和算法,你可以去解決一些任務並自行完成一個項目。

高級水平—走向深度學習

  • 傑夫·欣頓(Geoff Hinton)在Coursera上的神經網絡講座 https://www.coursera.org/learn/neural-networks
  • 斯坦福課程:自然語言處理的深度學習 http://cs224d.stanford.edu/
  • 史丹福大學課程:用於視覺識別的卷積神經網絡 http://cs231n.stanford.edu/

講座課程:

  • 計算機視覺中的深度學習(Sanja Fidler教授) http://www.cs.utoronto.ca/~fidler/teaching/2015/CSC2523.html
  • 先進的計算機視覺(James Hays教授) http://www.cc.gatech.edu/~hays/7476/

全球項目

a. 微軟計算機科學家和研究人員正在努力「解決」癌症

  • https://news.microsoft.com/stories/computingcancer/ b.東京項目 ——提供基於AI的應用原型,以增強盲人或視力障礙者對社交,物理和文本環境的認識。
  • https://www.microsoft.com/en-us/research/project/project-tokyo/ C.教機器預測未來
  • http://news.mit.edu/2016/teaching-machines-to-predict-the-future-0621 最左側的列顯示操作開始之前的幀,其下方是算法的預測。右列顯示視頻的下一幀。

另一種讓你自己了解計算機視覺領域正在進行的研究的方法是跟隨作者並閱讀他們在頂級會議上的論文,如CVPR、ICCV、ECCV、BMVC。

與專家的對話

以下交談摘錄是我與兩位對計算機視覺領域充滿熱情的專家交談的。

與Devi Parikh教授的對話| Facebook AI Research的客座研究員| 喬治亞理工學院(以前是維吉尼亞理工學院)助理教授

計算機視覺是人工智慧的一個子領域,其目標是構建可複製人腦視覺的智能計算機。機器學習是教機器學習的通用術語,但是計算機視覺專門處理視覺數據。在機器學習中,我們更多地使用了統計工具,而計算機視覺同時使用了統計工具和非統計工具。例如,計算機視覺領域的3D重建任務中使用機器學習工具的頻率要比圖像分類和對象識別等技術要低。許多計算機視覺任務都有其自己的需求,我們為此開發了特定的機器學習工具。 對於任何想開始學習該領域的學生,我建議他們通過研究人員的網頁來選擇他們感興趣的問題來學習。大多數情況下,人們都在研究最前沿的問題,這些問題可以從該網頁獲得可用的標準數據集。他們可以選擇一個研究問題,一個數據集以及一個他們可能想使用的庫,然後動手去做。 在攻讀碩士或博士學位的學生,我通常會去尋找有責任心,積極性和決心的來作為我的學生。為了使你的基本概念清晰明了,可以嘗試閱讀研究論文,嘗試了解全世界研究人員正在研究的AI前沿問題。

B.與Richa Agrawal的對話 | 賓夕法尼亞大學校友| Whodat的計算機視覺研究工程師

我畢業於齋浦爾MNIT,在那學習期間,我與Robotics研究組取得了聯繫,我們合作實現了一些項目,然後參加IIT Roorkee的國家級比賽並贏得了比賽,這段經驗極大地鼓舞了我。完成學士學位後,我開始在Yahoo工作,我意識到這不是我想要做的事,因此去了賓夕法尼亞大學攻讀碩士學位。攻讀碩士學位的這段時間,我通過學習不同的課程探索了不同的研究領域,並最終決定將計算機視覺作為我的主要研究方向。畢業後,我在美國的一家初創公司工作,並希望在印度尋找計算機視覺的就業機會。在Whodat(一家基於Bangalore的計算機視覺初創公司)中,我們使用增強現實和可視化技術對圖像進行研究處理。比如,你打算為自己的房屋購買家具,你針對家庭的布局環境去商店後選擇了一家家具店,但在家具交付後,常常會出現家具太大或太小的問題,現在沒有什麼技術可以解決該問題。我們正在嘗試通過構建一個解決方案來幫助你,該解決方案可以使商店的家具在你家中進行可視化布置。這將使你能夠做出更好的決定,並輕鬆地購買物品。 在學習時,很多時候我無法盡力而為,經常感到沮喪,但後來朋友的建議來了。他告訴我-「只有少數人(不到0.1%)能夠做到這一點(在國外讀碩士和在計算機視覺等技術領域有如此研究),並且而你正是其中之一。而且你如果加倍努力,你自己可以做到其它人做不到的東西。

對於學生入門的一些建議,在與其他學院同齡人的交談之後,我建議你參加比賽和黑客馬拉松。重要的是要找到自己的興趣,而不是在自己不喜歡的地方工作。例如,計算機視覺在印度是一個廣闊的領域,在印度有廣闊的發展空間,在這個領域,你所需要的只是一架已經開始滲透到更小的城市的相機。因此,計算機視覺的未來絕對是光明的。

關鍵字: