計算機視覺入門書?

computer vision: model learning and inference怎麼樣?或者其他推薦?


雖然可能答偏題,但是就入門來說,還是想提一下這個神奇的網站

Annotated Computer Vision Bibliography: Table of Contents

Keith Price老爺子從1994年開始做了這個索引,涵蓋了所有計算機視覺裡面所有topic,所有subtopic的著作,包括論文,教材,還對各類主題的關鍵詞。這個網站在Szeliski等人的書應該都有提及。Price堅持了23年,頻繁更新(最近一次是三月10號),收錄每個方向重要期刊,會議文獻和書籍,並且保證了所有鏈接不失效。

比如,與人臉相關的文獻都集中在 chapter 21

21 Face Recognition, Detection, Tracking, Gesture Recognition, Fingerprints, Biometrics

從這個目錄,你就可以看到跟人臉相關的都有哪些方向的研究,每個研究下面有那些分支,每個分支有哪些經典的研究方法。每個chapter的最後,還有這個方向的keywords。每段文字有超鏈接,點進去都彷彿帶你打開了一扇門。這是計算機視覺前輩們花了20多年為我們做的知識框架和思維導圖。我認為,對於研究生來說,掌握大方向和關鍵詞就是入門了。你不一定有時間去翻完一本書,推理每個公式。通過這個bibliography, 你既可以獲得一個big picture,又能在你感興趣的小領域裡,藉助裡面的超鏈接,從研究的源頭一眼掃到當今state-of-the-arts。剩下的就是你在這個領域裡堅持不懈的grinding,遇到不懂的細節回去找書本,推理一遍。

這是我的方法,因為我實在看不完一整本書,所以讀索引和論文對我來說才是實際可行的,僅供參考。


  • 《Computer Vision: Models, Learning, and Inference》Written by Simon J.D. Prince

Book link:Computer Vision Models

Cover:

  • 《An Invitation to 3-D Vision》 Written by Yi Ma

Book link: An Invitation to 3-D Vision. Yi Ma, Stefano Soatto, Jana
Kosecka, Shankar Sastry. Springer Verlag, 2003

Cover:

  • 《Computer Vision: Algorithms and Applications》 Written by Richard Szeliski

Book link: 見下方評論(非常詭異的一件事情,我貼了這本書主頁的正確鏈接過來。發布答案後,再點進去鏈接會跑到下面那本書的主頁。知道為什麼會這樣的同學可以在評論里解釋下原因。)

Cover:

  • 《Multiple View Geometry in Computer Vision Second Edition》 Written by Richard Hartley

Book link: Multiple View Geometry in Computer Vision

Cover:

一點個人的看法:

  1. 《Computer Vision: Algorithms and Applications》這本書在Computer Vision領域的地位是毋庸置疑的,書中內容覆蓋了CV的各個領域,其中一些知識相比別的書更有深度、也更加新一些。但是很明顯這本書不適合完全沒有基礎的初學者(也就是不像一本教科書,而像一本工具書、進階書)。適合那些對CV有一定了解的人閱讀;

  2. 我個人是推薦《Computer Vision: Models, Learning, and Inference》這本書的,主要講一些基本知識,書的主頁上還有配套的Slider,適合初學者;
  3. 《Multiple View Geometry in Computer Vision Second Edition》主攻CV中的幾何知識;

  4. 《An Invitation to 3-D Vision》是上海科技大學的馬毅教授寫的,沒看過,不過多評論。

-------------------------------------2015.09.04更新--------------------------------------

之前沒注意題主的問題描述,再介紹下《Computer Vision: Models, Learning, and Inference》這本書。

這本書的主頁真是良心啊,資源多多!

等等。。。

簡直是業界良心好嘛!!!


我覺得很難講,得取決於你的目標,CV 不是一個東西,是一堆東西。

你得想好方向,比如

  • 人臉識別
  • 基於 2D 特徵點的三維重建
  • Kinect 掃描
  • 增強現實
  • Deep Learning
  • 車牌識別
  • 等等等等

這裡每個子類需要的知識點都可能不一樣。

你去搞 Deep Learning,那就不需要知道 SIFT 是什麼鬼;如果是搞 Kinect 掃描,也不用懂神經網路應該有幾層。

所以嘛,先隨便找本教材看看,找到感興趣的方向,然後 Google Scholar 和 github 搜索各種最新的資源。

個人推薦

  1. 岡薩雷斯 的 Digital Image Processing,看前幾章即可,畢竟圖像處理和視覺還是不同的

  2. Learning OpenCV 接地氣
  3. Szeliski 的 Computer Vision : Algorithms and Application,當論文索引指南,細節需要看論文。

1、2、3 可以同時看,混著看,邊看邊寫代碼。如果確定想搞雙目視覺和三維重建的話還需要看 Multiple View Geometry in Computer Vision。

相關閱讀

OpenCV 3 最新模塊一次看個夠 - 黑客與畫家 - 知乎專欄

OpenCV 為啥勾搭上 OpenGL? - 黑客與畫家 - 知乎專欄

NVIDIA 招聘智能汽車 Computer Vision 工程師 - 黑客與畫家 - 知乎專欄


這裡各種人推薦各種書,我就不重複了,但是我覺得你作為初學者,最好的辦法是去網上搜集國外名校老師講課的PPT,然後follow他們的課件自學,裡面用到什麼知識再去針對性的學。

樓上幾位有推薦multiview geometry的,我想說這本書確實是經典,但是我想請問你們那個人把這本書讀完了?Honestly 這本書語言寫的比較晦澀,真心不推薦,等樓主學了幾年CV以後決定搞3D的時候再看也不遲。


CV 和 圖像處理還是不一樣, CV有很多幾何的知識,岡薩雷斯的確是大牛 他的2本書我都有(理論介紹一本,matlab版一本,,其實算一本書吧),並且都從頭到尾讀完了 用了好幾個月,可是我發現其實對我目前做的研究(CV) 並沒有太大幫助, CV裡面的 雙目視覺,feature/keypoint extraction, feature/keypoint matching and tracking 還有計算egomotion 等等,都不在 岡薩雷斯 那本書的範圍內,所以還是要確定好自己到底要學什麼 CV的話 我建議岡薩雷斯的書把前四章讀完就好, 第四章講頻率域的吧貌似,我很喜歡那一章,然後呢,我推薦

Concise Computer Vision: An Introduction into Theory and Algorithms

作者是Reinhard Klette,

這本書真心能讓你快速入門CV,入門後再看看其他人推薦的名作,比如

Computer Vision: A Modern Approach. David A.Forsyth, Jean Ponce

還有大家都說的

Szeliski的computer vision:algorithms and application

(這本書根本就不是用來入門的好么。。不入門看得懂么。。然後還是個綜述,再去看更專業的paper,直接暈了)

當然最後the best one.

Multiple View Geometry in Computer Vision

至於題主說的computer vision: model learning and inference 恩,也是本好書,不過側重於learning, 就像這本書的review裡面說的Computer vision and machine learning have gotten married
and this book is their child, 就是說CV和ML進行了XXOO 然後就有了這本書,恩 目前ML叫的震天響,但大部分CV目前還是沒有跟ML掛上鉤,我相信這是個趨勢,,但是目前好像還只是個趨勢。。。


看完Gonzalez:嗯,好像很好玩的樣子,我也來搞一搞。

看完Price:什麼鬼,怎麼這麼多公式,公式看不懂腫么破。

看完Szeliski:原來用一千頁的書只能勉強做綜述和論文索引,玩蛋去。


Recently, I found this which may be helpful for beginners:

機器學習資料大匯總


Szeliski的書


Szeliski的computer vision:algorithms and application


推薦一本 最近看到的的牛書:

Computer Vision
A Reference Guide

Computer Vision

按字母順序把計算機視覺的內容挨個講了個遍,而且書比較新,是2014年的。

不過不適合對視覺完全不懂的看,適合那種懂一點,但是對論文前沿整體上又把握不好的人。

有時間把這本看差不多了,應該能說計算機視覺基礎知識無死角啦~雖然頁數挺嚇人的,但是很多都是圖啊,參考目錄,真正的內容也沒那麼多,而且不想看的條目,就看看條目下第一段簡介就好了,知道有這個東西,做的心裡有數就好了(我自己現在也沒太認真,就是看到牛書分享一下。感覺比computer vision:algorithms and application要淺的多。


看ppt比看書好


首先表示同意高票答主的回答:cv中運用到的知識點實在太廣泛了,題主你的目標點在哪裡?個人觀點,無論是入門還是搞研究,都應該找准自己的目標點,貪多往往嚼不爛。不知道題主是想做相關的研究還是純閱讀,我就寫一下自己的相關經驗供參考。

利益相關:人臉檢測與識別,智能視頻監控.

/*----計算機視覺三大法寶----*/

CV三大法寶:論文、代碼、工具包。

這是我的總結,想做好CV這一塊,首先,必須讀大量大量的論文,論文的範圍取決於你的研究點,是人臉檢測啦?是車牌識別啦?還是什麼其他的?讀論文一開始是比較痛苦的,因為你沒有基礎知識,無法分辨你需要的知識,沒關係,二十幾篇之後你就會建立對相關領域的概念和方法。我推薦論文勝於推薦書,因為書會告訴你怎麼樣去做,而論文讓你思考為什麼這樣做。

代碼,包括閱讀他人的代碼,以及自己的碼代碼能力。天下最痛苦的事情是有想法,但不會實現,天下最最痛苦的事情是有實現的能力,但是沒有想法。閱讀源代碼,是學習cv的重要的途徑。有時候,直接閱讀代碼會比讀論文來的更快更容易。岡薩雷斯大牛的《數字圖像處理》中也包含部分源碼供你學習。

工具包是前人大牛的做好的集成工具,屬於經過了大量考驗和測試,演算法的魯棒性和穩定性優良的代碼。學會使用工具包,會使你事半功倍,前提是,要懂得其中的原理。

/*------如何選擇-----*/

在計算機視覺中,有些基礎知識是必須的,例如,圖像或視頻的輸入輸出,對圖像的去噪等預處理方法,這些是做CV必備的技能。獲取的途徑:

1、書:經典大牛岡薩雷斯的《數字圖像處理》。OpenCV入門手冊。

2、工具包:

(1)OpenCV.這裡指出一下,OpenCV作為開源代碼已經從1.0升級到3.XX了,也許現在有更高版本。1.0是最古老的版本,但是也最易學習和閱讀源碼,高版本經過了各種優化演算法,代碼較為複雜,不過使用上更為方便。OpenCV有中文論壇,百度之即可,上面多少大牛我就不說了。

(2)matlab.誰用誰知道!不多說了~唯一的不好就是可能會讓你的代碼能力有所退化。

3、論文。

有了基礎,其實僅僅也只是皮毛而已,重中之重在於關鍵技術。啥是關鍵技術啊?舉個栗子~做人臉檢測,有許多的方法可以實現,模板匹配、機器學習........你想用哪個方法?是不是先要對這些演算法有個初步了解?選擇了演算法就是選擇關鍵技術。不同的研究方向,用到的關鍵技術也不同。車牌識別可能用到sobel濾波,人臉檢測可能就不會用之類之類的。反觀機器學習方法,雖然框架演算法相同,然而面對不同的任務其樣本表示也隨之不同。得到這些知識,方法就是論文!論文!論文!

/*----待寫----*/


謝謝推薦 @Freeman,剛在csdn下載好 An invitation to 3D ,(3個積分) 專欄下有需要的童鞋可以找我索要,免費資源。

只可個人使用,切勿商用。


可以先看Gonzalez的Digital Image Processing了解些圖像處理的基礎。再看Szeliski的Computer Vision Algorithms and Applications對計算機視覺做個相對全面些的了解。然後再看你Prince這書,這本書對計算機視覺講的比較深入,是今後發展的一個方向。

手頭應該最好有本Ikeuchi編的Computer Vision A Reference Guide裡面有不少計算機視覺領域的大牛對相關的概念下了定義。感覺這是本比較權威的書。


現在我讀博士,學了好幾年,感覺對CV這個領域想法也變了,首先為了跟上時代,也用keras,tensorflow搭模型,但其實當我學完吳恩達的課程和書籍後,我感覺其實傳統CV領域知識真的比深度學習難,但目前時代趨勢是在人臉識別、視頻監控、無人駕駛等領域深度學習的引入徹底顛覆了過去。

我現在推薦書,覺得應該對最新的東西有把握,比如tensorflow的開發書籍(網上都有賣,實戰家寫的書都還行)。另外就是在深度學習和python的基礎上,還是更多投入回C++和opencv。一來opencv實現的演算法很多,配合傳統計算機視覺書籍學習代碼實現效果更佳;二來我發現碩士同學出去幾乎都是用C++開發,而且公司多用opencv,因為opencv自己的機器學習也還行,內容大而全,移植性也高。

總結:推薦首先跟上時代會熟練使用深度學習工具,然後利用C++和opencv花精力追究數學實現以及各種開源代碼。

學習的書籍同理,想要很好的感受演算法需要看一些有數學性質強的一些大部頭(各種大牛的計算機視覺演算法,矩陣分析,數值分析),然後在實現方面得多多配合一些實戰人員寫的各種開發型書籍(書名里有tensorflow,opencv,halcon,C++這種的書)。

以前推薦的一些書,現在感覺其實很容找到替代品,大家寫的書都差不多嘛~但計算機視覺這書我看完還是覺得挺有用的,這書好就好在能看很多次,感受也不同,雖然推薦的代碼逐漸有的頁面都打不開了。


最近的幾本新書不錯

1. Learning OpenCV 3 : Computer Vision in C++ with the OpenCV Library

Adrian Kaehler、Gary Bradski / O"Reilly Media / 2016-6-25

2. Digital Image Processing : An Algorithmic Introduction Using Java (Second Editon)

Wilhelm Burger、Mark J. Burge / Springer / 2016-4-26


如果英文不錯可以看這些書:

入門

Programming Computer Vision with Python: Tools and algorithms for analyzing
images by Jan Erik Solem
Practical Computer Vision with SimpleCV : The Simple Way to Make Technology
See by Kurt Demaagd, Anthony Oliver, Nathan Oostendorp, and Katherine Scott
OpenCV Computer Vision with Python by Joseph Howse
Learning OpenCV: Computer Vision with the OpenCV Library by Gary Bradski
and Adrian Kaehler
OpenCV 2 Computer Vision Application Programming Cookbook by Robert
Laganière
Mastering OpenCV with Practical Computer Vision Projects by Daniel Lélis
Baggio, Shervin Emami, David Millán Escrivá, Khvedchenia Ievgen, Jasonl
Saragih, and Roy Shilkrot
SciPy and NumPy: An Overview for Developers by Eli Bressert

提高
Computer Vision: A Modern Approach (2nd Edition) by David A. Forsyth and Jean
Ponce
Computer Vision by Linda G. Shapiro and George C. Stockman
Computer Vision: Algorithms and Applications by Richard Szeliski
Algorithms for Image Processing and Computer Vision by J. R. Parker
Computer Vision: Models, Learning, and Inference by Dr Simon J. D. Prince
Computer and Machine Vision, Fourth Edition: Theory, Algorithms, Practicalities
by E. R. Davies

和深度學習的結合入門視頻課程:

人工智慧第一槍:識別貓和狗視頻課程(共3課時)_在線自學視頻教程_51CTO學院


果斷岡薩雷斯= ̄ω ̄=


learning opencv


Szeliski的書就是個論文索引,初學者回摸不到東西南北的。可以看看下面這個,內容也是相當豐富。英文版可以找到pdf的,中文版國內有出版。


推薦閱讀:

有哪些值得推薦的計算機硬體原理入門讀物?
有什麼很好看的小說,裡面的知識還都是真的?
推薦幾本你們看過的改變人生的好書?
有哪本科普書對你的影響很大?
與社群、社群經濟、社群思維相關的好書籍、文章、訂閱號有哪些?

TAG:書籍推薦 | 程序員 | 書籍 | 計算機視覺 | 白帽黑客WhiteHat |