計算機視覺是在圖像處理的基礎上發展起來的新興學科。OpenCV是一個開源的計算機視覺庫, 是英特爾公司資助的兩大圖像處理利器之一。它為圖像處理、模式識別、三維重建、物體跟蹤、機器 學習和線性代數提供了各種各樣的算法。本書由OpenCV發起人所寫,站在一線開發人員的角度用通俗易懂的語言解釋了OpenCV的緣起和 計算機視覺基礎結構,演示了如何用OpenCV和現有的自由代碼為各種各樣的機器進行編程,這些都 有助于讀者迅速入門并漸入佳境,興趣盎然地深入探索計算機視覺領域。本書可作為信息處理、計算機、機器人、人工智能、遙感圖像處理、認知神經科學等有關專業的 高年級學生或研究生的教學用書,也可供相關領域的研究工作者參考。
前言
這本書提供了C++開源計算機視覺庫(OpenCV)3.0版本的工作指南,介紹了計算機視覺相關領域的通用背景,以便讀者更有效地使用OpenCV。
本書的目標 計算機視覺在以下四個趨勢的引導下,已經成為一個快速發展的領域: ? 智能手機的出現讓數以百萬計的用戶都擁有了相機 ? 互聯網和搜索引擎聚集了海量的圖像和視頻數據 ? 計算資源變成一種廉價的商品 ? 視覺算法發展得更加成熟(由于深度神經網絡的出現,OpenCV也正在逐漸支持這方面技術,詳情可以參考opencv_contrib中的dnn)
OpenCV通過幫助成千上萬的視覺工作者去做更多富有創造性的工作,在圖像處理領域扮演著重要的角色。由于OpenCV 3.x的存在,不管你是學生還是研究人員,是專家還是初學者,都可以快速建立應用,并且在OpenCV所提供的基于C++的多平臺視覺基礎架構上實現一個跨越性的發展。
本書的目標如下: ? 通過詳細講述函數的慣用用法以及正確用法,成為一本更好的OpenCV經典參考文檔 ? 幫助讀者對各種計算機視覺算法的工作原理有一個基礎的理解 ? 培養讀者,使其知道什么算法工具可以使用并且應該在什么時候使用 ? 提供給讀者許多有效的代碼,提升其應用計算機視覺和機器學習算法的開發效率 ? 針對問題代碼給讀者提供建議,教讀者如何解決一些簡單或復雜的問題
本書的寫作方式是力求幫助讀者快速在計算機視覺領域做一些有意思的事情,因此直觀地解釋了算法是如何工作的,可以指導讀者設計和調試計算機視覺程序,還能夠使計算機視覺和機器學習算法的形式化描述更容易理解和記憶。
這本書調研了大約20世紀90年代末機器學習的許多重要課題。我的意圖是在理論和實踐之間尋求一個中間橋梁帶。筆記集中在機器學習的重要思想上——它既不是一本實踐手冊,也不是一個理論證明的概要。我的目標是為讀者提供充分的準備,使一些關于機器學習的廣泛文獻易于理解。草稿只有200多頁(包括扉頁)。
這本書集中在機器學習的重要思想上。對于我所陳述的許多定理,我并沒有給出證明,但對于形式的證明,我確實給出了可信的論據和引用。而且,我沒有討論許多在應用中具有實際重要性的問題;這本書不是機器學習實踐手冊。相反,我的目標是為讀者提供充分的準備,使大量關于機器學習的文獻易于理解。
學習,就像智力一樣,涵蓋了如此廣泛的過程,很難精確定義。詞典的定義包括這樣的短語:“通過學習、指導或經驗獲得知識、或理解、或技能”和“通過經驗改變行為傾向”。動物學家和心理學家研究動物和人類的學習。在這本書中,我們關注的是機器學習。動物和機器學習之間有一些相似之處。當然,機器學習的許多技術都來自心理學家的努力,他們通過計算模型使動物和人類學習的理論更加精確。機器學習研究人員正在探索的概念和技術似乎也可能闡明生物學習的某些方面。
學習使用Python分析數據和預測結果的更簡單和更有效的方法
Python機器學習教程展示了通過關注兩個核心機器學習算法家族來成功分析數據,本書能夠提供工作機制的完整描述,以及使用特定的、可破解的代碼來說明機制的示例。算法用簡單的術語解釋,沒有復雜的數學,并使用Python應用,指導算法選擇,數據準備,并在實踐中使用訓練過的模型。您將學習一套核心的Python編程技術,各種構建預測模型的方法,以及如何測量每個模型的性能,以確保使用正確的模型。關于線性回歸和集成方法的章節深入研究了每種算法,你可以使用書中的示例代碼來開發你自己的數據分析解決方案。
機器學習算法是數據分析和可視化的核心。在過去,這些方法需要深厚的數學和統計學背景,通常需要結合專門的R編程語言。這本書演示了機器學習可以如何實現使用更廣泛的使用和可訪問的Python編程語言。
使用線性和集成算法族預測結果
建立可以解決一系列簡單和復雜問題的預測模型
使用Python應用核心機器學習算法
直接使用示例代碼構建自定義解決方案
機器學習不需要復雜和高度專業化。Python使用了更簡單、有效和經過良好測試的方法,使這項技術更容易為更廣泛的受眾所接受。Python中的機器學習將向您展示如何做到這一點,而不需要廣泛的數學或統計背景。
由沃德(Brian Ward)著,姜南、袁志鵬譯的《精通Linux(第2版)》講解了Linux操作系統的工作機制以及運行Linux系統所需的常用工具和命令。根據系統啟動的大體順序,本書更深入地介紹從設備管理到網絡配置的各個部分,最后演示了系統各部分的運行方式,并介紹了一些基本技巧和開發人員常用的工具。
Linux不像其他操作,會對用戶隱藏很多重要的東西。相反,Linux會讓用戶掌控一切。而要掌控一切,就必須理解這個操作系統的工作機制,包括如何啟動、如何連網,以及Linux內核如何工作。本書是暢銷書的新版本,作者擁有多年的實踐經驗,內容通俗易懂。通過這本書,讀者可以迅速從Linux新手變成老鳥,把作者豐富的經驗裝進自己的知識庫。
<章節目錄>
第1章概述 第2章基礎命令和目錄結構 第3章設備管理 第4章硬盤和文件系統 第5章Linux內核的啟動 第6章用戶空間的啟動 第7章系統配置:日志、系統時間、批處理任務和用戶 第8章進程與資源利用詳解 第9章網絡與配置 第10章網絡應用與服務 第11章shell腳本 第12章在網絡上傳輸文件 第13章用戶環境 第14章Linux桌面概覽 第15章開發工具 第16章從C代碼編譯出軟件 第17章在基礎上搭建
計算機科學在建模和解決問題的方法上正在經歷一個根本性的轉變。早期的計算機科學家主要研究離散數學,專注于由有限數量的不同片段組成的圖形、樹和陣列等結構。隨著快速浮點處理、“大數據”、三維掃描和其他噪雜輸入來源的引入,現代計算機科學工作者必須設計健壯的方法來處理和理解實值數據。現在,除了離散數學,計算機科學家必須同樣流利地掌握多元微積分和線性代數的語言。
數值算法介紹了計算機科學應用的數值方法的用戶所必需的技能。本文是為高級本科生和早期研究生設計的,他們熟悉數學符號和形式,但需要在考慮算法的同時復習連續的概念。它涵蓋了廣泛的主題基礎,從數值線性代數到優化和微分方程,目標是導出標準方法,同時發展直覺和舒適所需的理解更多的文獻在每個子主題。在書中,每一章都溫和而嚴謹地介紹了數值方法、數學背景和現代計算機科學的實例。
幾乎每個部分都考慮了給定類型的數值算法的實際用例。例如,奇異值分解與統計方法、點云對齊和低秩近似一起被引入,最小二乘的討論包括機器學習的概念,如核化和正則化。本理論與應用并行介紹的目的是提高設計數值方法和每種方法在實際情況中的應用。
本書圍繞虛擬化、并發和持久性這三個主要概念展開,介紹了所有現代系統的主要組件(包括調度、虛擬內存管理、磁盤和I/O子系統、文件系統)。全書共50章,分為3個部分,分別講述虛擬化、并發和持久性的相關內容。作者以對話形式引入所介紹的主題概念,行文詼諧幽默卻又鞭辟入里,力求幫助讀者理解操作系統中虛擬化、并發和持久性的原理。本書內容全面,并給出了真實可運行的代碼(而非偽代碼),還提供了相應的練習,很適合高等院校相關專業的教師開展教學和高校學生進行自學。?
本書具有以下特色:
《圖像處理手冊》一直被評為計算機圖像處理的最佳整體介紹,涵蓋二維(2D)和三維(3D)成像技術、圖像打印和存儲方法、圖像處理算法、圖像和特征測量、定量圖像測量分析等等。
《圖像處理手冊》第七版提供一個可接近的和最新的圖像處理的處理,提供廣泛的覆蓋和算法的比較,方法,和結果。
本書作者BrettSlatkin以使用場景為主導的精練教學方式,匯聚了59條優秀的實踐原則、開發技巧和便捷方案,并以實用的代碼范例來解釋它們。作者根據自己在Google公司多年開發Python基礎架構所積累的經驗,揭示了Python語言中一些鮮為人知的微妙特性,并給出了能夠改善代碼功能及運行效率的習慣用法。通過本書,你能夠了解到解決關鍵編程任務所用的佳方式,并學會編寫易于理解、便于維護且利于改進的代碼。
本書可以幫你掌握真正的Pythonic編程方式,令你能夠發揮出Python語言的強大功能,并寫出健壯而高效的代碼。Scott Meyers在暢銷書《Effective C++》中開創了一種以使用場景為主導的精練教學方式,本書作者Brett Slatkin就以這種方式匯聚了59條優秀的實踐原則、開發技巧和便捷方案,并以實用的代碼范例來解釋它們。
Slatkin根據自己在Google公司多年開發Python基礎架構所積累的經驗,揭示Python語言中一些鮮為人知的微妙特性,并給出了能夠改善代碼功能及運行效率的習慣用法。通過本書,你能夠了解到解決關鍵編程任務所用的方式,并學會編寫易于理解、便于維護且利于改進的代碼。本書核心內容包括:
● 涵蓋Python 3.x及Python 2.x主要應用領域的實用指南,以及與之配套的詳細解釋及代碼范例。
● 與函數相關的編程建議,這些建議有助于我們寫出意圖清晰、便于復用且缺陷較少的函數。
● 如何準確地表達類與對象的行為。
● 在使用元類和動態屬性時,如何避免錯誤的用法。
● 更為高效的并發及并行方式。
● 與Python內置模塊相關的編程技巧和習慣用法。
● 多人協作時所用的開發工具和實踐方式。
● 旨在改善代碼質量和程序性能的調試、測試與優化方案。
【導讀】計算機視覺是一門對圖像中信息進行自動提取的學科。信息的內容相當廣泛,包括三維模型、照相機位置、目標檢測與識別,以及圖像內容的分組與搜索等。本書中,我們使用廣義的計算機視覺概念,包括圖像扭曲、降噪和增強現實等。計算機視覺有時試圖模擬人類視覺,有時使用數據和統計方法,而有時幾何是解決問題的關鍵。如果你想對計算機視覺的基本理論和算法有一個基本的了解,這個動手的介紹是理想的起點。您將學習對象識別、3D重建、立體成像、增強現實和其他計算機視覺應用程序的技術,并學習用Python編寫的示例。
前言
今天,圖像和視頻無處不在,在線照片分享網站和社交網絡上的圖像有數十億之多。幾乎對于任意可能的查詢圖像,搜索引擎都會給用戶返回檢索的圖像。實際上,幾乎所有手機和計算機都有內置的攝像頭,所以在人們的設備中,有幾 G 的圖像和視頻是一件很尋常的事。
計算機視覺就是用計算機編程,并設計算法來理解在這些圖像中有什么。計算機視覺的有力應用有圖像搜索、機器人導航、醫學圖像分析、照片管理等。
本書旨在為計算機視覺實戰提供一個簡單的切入點,讓學生、研究者和愛好者充分理解其基礎理論和算法。本書中的編程語言是 Python,Python 自帶了很多可以免費獲取的強大而便捷的圖像處理、數學計算和數據挖掘模塊,可以免費獲取。
寫作本書的時候,我遵循了以下原則。
鼓勵探究式學習,讓讀者在閱讀本書的時候,在計算機上跟著書中示例進行練習。
推廣和使用免費且開源的軟件,設立較低的學習門檻。顯然,我們選擇了 Python。
保持內容完整性和獨立性。本書沒有介紹計算機視覺的全部內容,而是完整呈現并解釋所有代碼。你應該能夠重現這些示例,并可以直接在它們之上構建其他應用。
內容追求廣泛而非詳細,且相對于理論更注重鼓舞和激勵。
總之,如果你對計算機視覺編程感興趣,希望它能給你帶來啟發。
各章概覽
第 1 章“基本的圖像操作和處理”介紹用來處理圖像的基本工具及本書用到的核心 Python 模塊,同時涵蓋了很多貫穿全書的基礎示例。
第 2 章“局部圖像描述子”講解檢測圖像興趣點的方法,以及怎樣使用它們在圖像間尋找相應點和區域。
第 3 章“圖像到圖像的映射”描述圖像間基本的變換及其計算方法。涵蓋從圖像扭曲到創建全景圖像的示例。
第 4 章“照相機模型與增強現實”介紹如何對照相機建模、生成從三維空間到圖像特征的圖像投影,并估計照相機視點。
第 5 章“多視圖幾何”講解如何對具有相同場景、多視圖幾何基本面的圖像進行處理,以及怎樣從圖像計算三維重建。
第 6 章“圖像聚類”介紹一些聚類方法,并展示如何基于相似性或內容對圖像進行分組和組織。
第 7 章“圖像搜索”展示如何建立有效的圖像檢索技術,以便能夠存儲圖像的表示,并基于圖像的視覺內容搜索圖像。
第 8 章“圖像內容分類”描述了圖像內容分類算法,以及怎樣使用它們識別圖像中的物體。
第 9 章“圖像分割”介紹了通過聚類、用戶交互或圖像模型,將圖像分割成有意義區域的不同技術。
第 10 章“OpenCV”展示怎樣使用常用的 OpenCV 計算機視覺庫 Python 接口,以及如何處理視頻及攝像頭的輸入。