OpenCV 4計(jì)算機(jī)視覺項(xiàng)目實(shí)戰(zhàn)(原書第2版)
定 價(jià):79 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:[西班牙]大衛(wèi)·米蘭·埃斯克里瓦(David Millán Escrivá) 等
- 出版時(shí)間:2019/7/1
- ISBN:9787111631644
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP391.413
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書通過實(shí)例和項(xiàng)目講解OpenCV概念及其算法。首先介紹OpenCV的安裝和圖像處理的基礎(chǔ)知識(shí)。然后,覆蓋用戶界面并深入講解圖像處理,讀者將學(xué)到復(fù)雜的計(jì)算機(jī)視覺算法,并探索機(jī)器學(xué)習(xí)和人臉檢測(cè)。之后,本書將介紹如何在復(fù)雜場(chǎng)景中創(chuàng)建光流視頻分析和背景減除,還將講解文本分割和識(shí)別,以及新的和改進(jìn)的深度學(xué)習(xí)模塊的基礎(chǔ)知識(shí)。*后,本書介紹了OpenCV的基礎(chǔ)知識(shí),例如矩陣運(yùn)算、濾波器和直方圖,幫讀者掌握常用的計(jì)算機(jī)視覺技術(shù),從頭開始構(gòu)建OpenCV項(xiàng)目。
OpenCV是用于開發(fā)計(jì)算機(jī)視覺應(yīng)用程序的*流行的開源庫之一,它可以幫助你專注于構(gòu)建完整的圖像處理、運(yùn)動(dòng)檢測(cè)和圖像分割項(xiàng)目。無論你是初涉計(jì)算機(jī)視覺技術(shù),還是對(duì)其概念已有基本了解,本書都將成為你通過實(shí)例和項(xiàng)目掌握OpenCV概念及算法的實(shí)用指南。
本書首先介紹OpenCV的入門知識(shí)及安裝,然后介紹OpenCV的基礎(chǔ)知識(shí),包括用戶界面、矩陣運(yùn)算、濾波器和直方圖等,之后介紹復(fù)雜的計(jì)算機(jī)視覺算法,包括對(duì)象分割和分類、視頻監(jiān)控、對(duì)象跟蹤等,*后探討對(duì)象跟蹤、文本識(shí)別、機(jī)器學(xué)習(xí)和人臉檢測(cè)等高級(jí)技術(shù)。閱讀本書之后,你將掌握常用和*新的計(jì)算機(jī)視覺技術(shù),并學(xué)會(huì)從零開始構(gòu)建各類OpenCV項(xiàng)目。
通過閱讀本書,你將學(xué)到:
•在各種操作系統(tǒng)上安裝OpenCV 4
•創(chuàng)建CMake腳本以編譯C++應(yīng)用程序
•了解基本的圖像矩陣格式和濾波器
•探索圖像分割和特征提取技術(shù)
•從靜態(tài)場(chǎng)景中刪除背景以識(shí)別需要監(jiān)控的移動(dòng)對(duì)象
•采用各種技術(shù)跟蹤實(shí)時(shí)視頻中的對(duì)象
•通過Tesseract進(jìn)行文本檢測(cè)和識(shí)別
•熟悉用于圖像分類的重要深度學(xué)習(xí)工具
OpenCV是用于開發(fā)計(jì)算機(jī)視覺應(yīng)用程序的最流行的庫之一,它使我們能夠?qū)崟r(shí)運(yùn)行許多不同的計(jì)算機(jī)視覺算法。它已存在很多年了,并且已經(jīng)成為該領(lǐng)域的標(biāo)準(zhǔn)庫。OpenCV的主要優(yōu)勢(shì)之一是它經(jīng)過高度優(yōu)化,幾乎可以在所有平臺(tái)上使用。
本書首先簡(jiǎn)要介紹計(jì)算機(jī)視覺的各個(gè)領(lǐng)域以及相關(guān)的OpenCV函數(shù),這些函數(shù)均用C++編寫。每章都包含實(shí)際的例子和代碼示例,用于演示用例。這有助于你輕松掌握主題并了解如何在現(xiàn)實(shí)生活中應(yīng)用它們。綜上所述,這是一本實(shí)用的指導(dǎo)書,你將從中學(xué)會(huì)如何在C++中使用OpenCV并使用這個(gè)庫構(gòu)建各種應(yīng)用程序。
本書目標(biāo)讀者
本書面向不熟悉OpenCV并希望在C++中使用OpenCV開發(fā)計(jì)算機(jī)視覺應(yīng)用程序的開發(fā)人員。了解C++的基本知識(shí)將有助于理解本書。本書對(duì)于想要學(xué)習(xí)計(jì)算機(jī)視覺入門知識(shí)并理解基本概念的人也很有用。他們應(yīng)該了解基本的數(shù)學(xué)概念,例如向量、矩陣和矩陣乘法,以便充分利用本書。在閱讀本書的過程中,你將學(xué)會(huì)如何使用OpenCV從零開始構(gòu)建各種計(jì)算機(jī)視覺應(yīng)用程序。
本書涵蓋內(nèi)容
第1章介紹在各種操作系統(tǒng)上的安裝步驟,并介紹人類視覺系統(tǒng)以及計(jì)算機(jī)視覺中的各種主題。
第2章討論如何在OpenCV中讀/寫圖像和視頻,并解釋如何使用CMake構(gòu)建項(xiàng)目。
第3章介紹如何構(gòu)建圖形用戶界面和鼠標(biāo)事件檢測(cè)器,以構(gòu)建交互式應(yīng)用程序。
第4章探討直方圖和濾波器,并展示如何對(duì)圖像進(jìn)行卡通化處理。
第5章描述各種圖像預(yù)處理技術(shù),如噪聲消除、閾值處理和輪廓分析。
第6章處理目標(biāo)識(shí)別和機(jī)器學(xué)習(xí),以及如何使用支持向量機(jī)來構(gòu)建目標(biāo)分類系統(tǒng)。
第7章討論人臉檢測(cè)和Haar級(jí)聯(lián),然后解釋這些方法如何用于檢測(cè)人臉的各個(gè)部位。
第8章探討背景減除、視頻監(jiān)控和形態(tài)圖像處理,并且描述它們?nèi)绾蜗嗷ミB接。
第9章介紹如何使用不同技術(shù)跟蹤實(shí)時(shí)視頻中的目標(biāo),例如,基于顏色和基于特征進(jìn)行跟蹤。
第10章討論光學(xué)字符識(shí)別、文本分割,并介紹Tesseract OCR引擎。
第11章深入探究Tesseract OCR引擎,解釋如何將其用于文本檢測(cè)、提取和識(shí)別。
第12章探討如何使用兩種常用的深度學(xué)習(xí)架構(gòu)在OpenCV中應(yīng)用深度學(xué)習(xí),在這兩種架構(gòu)中,YOLO v3用于目標(biāo)檢測(cè),而單發(fā)探測(cè)器(Single Shot Detector)用于人臉檢測(cè)。
如何充分利用本書
了解C++的基本知識(shí)將有助于理解本書內(nèi)容。這些例子使用以下技術(shù)進(jìn)行構(gòu)建:OpenCV 4.0、CMake 3.3.x或更新版本、Tesseract、Leptonica(依賴于Tesseract)、Qt(可選)和OpenGL(可選)。
相關(guān)章節(jié)提供了詳細(xì)的安裝說明。
下載示例代碼
本書的示例代碼可以從http://www.packtpub.com通過個(gè)人賬號(hào)下載,也可以訪問華章圖書官網(wǎng)http://www.hzbook.com,通過注冊(cè)并登錄個(gè)人賬號(hào)下載。
本書的代碼包還托管在GitHub上,如果代碼有更新,會(huì)在現(xiàn)有的GitHub庫上更新:https://github.com/PacktPublishing/Learn-OpenCV-4-By-Building-Projects-Second-Edition。
下載彩色圖像
本書提供了一個(gè)PDF文件,其中包含書中使用的屏幕截圖/圖表的彩色圖像:https://www.packtpub.com/sites/default/files/downloads/9781789341225_ColorImages.pdf。
作者簡(jiǎn)介
大衛(wèi)·米蘭·埃斯克里瓦(David Millán Escrivá)8歲時(shí)用BASIC語言在8086 PC上編寫了他的第一個(gè)程序。他在瓦倫西亞政治大學(xué)(Universitat Politécnica de Valencia)完成了他的IT學(xué)習(xí),并在由使用OpenCV(v0.96)的計(jì)算機(jī)視覺技術(shù)所支持的人機(jī)交互領(lǐng)域取得了優(yōu)異的成績(jī)。他擁有人工智能、計(jì)算機(jī)圖形學(xué)和模式識(shí)別碩士學(xué)位,專注于模式識(shí)別和計(jì)算機(jī)視覺。他還擁有超過9年的計(jì)算機(jī)視覺、計(jì)算機(jī)圖形和模式識(shí)別經(jīng)驗(yàn)。他是Damiles Blog的作者,在上面發(fā)表關(guān)于OpenCV、計(jì)算機(jī)視覺和光學(xué)字符識(shí)別算法的文章與教程。
我要感謝我的妻子Izaskun、女兒Eider和兒子Pau,他們始終保持無限的耐心并堅(jiān)定地支持我。他們改變了我的生活,讓我的每一天都變得很棒。我愛你們。
我要感謝OpenCV團(tuán)隊(duì)和社區(qū)給予我們這個(gè)精彩的庫。我還要感謝我的合著者,感謝Packt出版社支持并幫助我完成本書。
維尼休斯·G.門東薩(Vinícius G. Mendon是巴拉那天主教大學(xué)(PUCPR)的計(jì)算機(jī)圖形專業(yè)教授。他于1998年開始使用C++進(jìn)行編程,并于2006年進(jìn)入計(jì)算機(jī)游戲和計(jì)算機(jī)圖形領(lǐng)域。他目前是巴西Apple開發(fā)者學(xué)院(Apple Developer Academy)的導(dǎo)師,從事用于移動(dòng)設(shè)備的金屬、機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺方面的教學(xué)工作。他曾擔(dān)任其他Packt圖書的審校者,包括《OpenNI Cookbook》和《Mastering OpenCV and Computer Vision with OpenCV 3 and Qt5》。在他的研究中,使用了Kinect、OpenNI和OpenCV來識(shí)別巴西手語手勢(shì)。他感興趣的領(lǐng)域包括移動(dòng)電話、OpenGL、圖像處理、計(jì)算機(jī)視覺和項(xiàng)目管理。
我要感謝我的妻子Thais A. L. Mendon
普拉蒂克·喬希(Prateek Joshi)是一位人工智能研究員、8本書的作者,還是一位TEDx演講者。他的著作曾入選Forbes 30 Under 30、CNBC、TechCrunch、Silicon Valley Business Journal等多部出版物。他是Pluto AI的創(chuàng)始人,Pluto AI是一家由風(fēng)投資助的硅谷初創(chuàng)公司,為水利設(shè)施建立智能平臺(tái)。他畢業(yè)于南加州大學(xué),獲得人工智能專業(yè)碩士學(xué)位。他之前曾就職于NVIDIA和Microsoft Research。
前言
作者簡(jiǎn)介
審校者簡(jiǎn)介
第1章 OpenCV入門1
1.1 了解人類視覺系統(tǒng)1
1.2 人類如何理解圖像內(nèi)容3
1.3 你能用OpenCV做什么4
1.3.1 內(nèi)置數(shù)據(jù)結(jié)構(gòu)和輸入/輸出4
1.3.2 圖像處理操作5
1.3.3 GUI5
1.3.4 視頻分析6
1.3.5 3D重建6
1.3.6 特征提取7
1.3.7 對(duì)象檢測(cè)7
1.3.8 機(jī)器學(xué)習(xí)8
1.3.9 計(jì)算攝影8
1.3.10 形狀分析9
1.3.11 光流算法9
1.3.12 人臉和對(duì)象識(shí)別9
1.3.13 表面匹配10
1.3.14 文本檢測(cè)和識(shí)別10
1.3.15 深度學(xué)習(xí)10
1.4 安裝OpenCV10
1.4.1 Windows11
1.4.2 Mac OS X11
1.4.3 Linux13
1.5 總結(jié)14
第2章 OpenCV基礎(chǔ)知識(shí)導(dǎo)論15
2.1 技術(shù)要求15
2.2 基本CMake配置文件16
2.3 創(chuàng)建一個(gè)庫16
2.4 管理依賴項(xiàng)17
2.5 讓腳本更復(fù)雜18
2.6 圖像和矩陣20
2.7 讀/寫圖像22
2.8 讀取視頻和攝像頭25
2.9 其他基本對(duì)象類型27
2.9.1 Vec對(duì)象類型27
2.9.2 Scalar對(duì)象類型28
2.9.3 Point對(duì)象類型28
2.9.4 Size對(duì)象類型29
2.9.5 Rect對(duì)象類型29
2.9.6 RotatedRect對(duì)象類型29
2.10 基本矩陣運(yùn)算30
2.11 基本數(shù)據(jù)存儲(chǔ)32
2.12 總結(jié)34
第3章 學(xué)習(xí)圖形用戶界面35
3.1 技術(shù)要求35
3.2 OpenCV用戶界面介紹36
3.3 OpenCV的基本圖形用戶界面36
3.4 Qt圖形用戶界面44
3.5 OpenGL支持50
3.6 總結(jié)54
第4章 深入研究直方圖和濾波器55
4.1 技術(shù)要求56
4.2 生成CMake腳本文件56
4.3 創(chuàng)建圖形用戶界面57
4.4 繪制直方圖59
4.5 圖像顏色均衡62
4.6 Lomography效果64
4.7 卡通效果68
4.8 總結(jié)72
第5章 自動(dòng)光學(xué)檢查、對(duì)象分割和檢測(cè)73
5.1 技術(shù)要求73
5.2 隔離場(chǎng)景中的對(duì)象74
5.3 為AOI創(chuàng)建應(yīng)用程序76
5.4 預(yù)處理輸入圖像78
5.4.1 噪聲消除78
5.4.2 用光模式移除背景進(jìn)行分割79
5.4.3 閾值84
5.5 分割輸入圖像85
5.5.1 連通組件算法85
5.5.2 findContours算法90
5.6 總結(jié)92
第6章 學(xué)習(xí)對(duì)象分類94
6.1 技術(shù)要求94
6.2 機(jī)器學(xué)習(xí)概念介紹95
6.3 計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)工作流程98
6.4 自動(dòng)對(duì)象檢查分類示例100
6.4.1 特征提取102
6.4.2 訓(xùn)練SVM模型105
6.4.3 輸入圖像預(yù)測(cè)109
6.5 總結(jié)111
第7章 檢測(cè)面部部位與覆蓋面具112
7.1 技術(shù)要求112
7.2 了解Haar級(jí)聯(lián)112
7.3 什么是積分圖像114
7.4 在實(shí)時(shí)視頻中覆蓋面具115
7.5 戴上太陽鏡118
7.6 跟蹤鼻子、嘴巴和耳朵121
7.7 總結(jié)122
第8章 視頻監(jiān)控、背景建模和形態(tài)學(xué)操作123
8.1 技術(shù)要求123
8.2 理解背景減除124
8.3 直接的背景減除124
8.4 幀差分128
8.5 高斯混合方法131
8.6 形態(tài)學(xué)圖像處理133
8.7 使形狀變細(xì)134
8.8 使形狀變粗135
8.9 其他形態(tài)運(yùn)算符136
8.9.1 形態(tài)開口136
8.9.2 形態(tài)閉合137
8.9.3 繪制邊界138
8.9.4 禮帽變換139
8.9.5 黑帽變換140
8.10 總結(jié)140
第9章 學(xué)習(xí)對(duì)象跟蹤141
9.1 技術(shù)要求141
9.2 跟蹤特定顏色的對(duì)象141
9.3 構(gòu)建交互式對(duì)象跟蹤器143
9.4 用Harris角點(diǎn)檢測(cè)器檢測(cè)點(diǎn)148
9.5 用于跟蹤的好特征151
9.6 基于特征的跟蹤153
9.6.1 Lucas-Kanade方法153
9.6.2 Farneback算法157
9.7 總結(jié)161
第10章 開發(fā)用于文本識(shí)別的分割算法162
10.1 技術(shù)要求162
10.2 光學(xué)字符識(shí)別介紹162
10.3 預(yù)處理階段164
10.3.1 對(duì)圖像進(jìn)行閾值處理164
10.3.2 文本分割165
10.4 在你的操作系統(tǒng)上安裝Tesseract OCR172
10.4.1 在Windows上安裝Tesseract172
10.4.2 在Mac上安裝Tesseract173
10.5 使用Tesseract OCR庫173
10.6 總結(jié)177
第11章 用Tesseract進(jìn)行文本識(shí)別178
11.1 技術(shù)要求178
11.2 文本API的工作原理179
11.2.1 場(chǎng)景檢測(cè)問題179
11.2.2 極值區(qū)域180
11.2.3 極值區(qū)域過濾181
11.3 使用文本API182
11.3.1 文本檢測(cè)182
11.3.2 文本提取187
11.3.3 文本識(shí)別189
11.4 總結(jié)193
第12章 使用OpenCV進(jìn)行深度學(xué)習(xí)194
12.1 技術(shù)要求194
12.2 深度學(xué)習(xí)簡(jiǎn)介195
12.2.1 什么是神經(jīng)網(wǎng)絡(luò),我們?nèi)绾螐臄?shù)據(jù)中學(xué)習(xí)195
12.2.2 卷積神經(jīng)網(wǎng)絡(luò)197
12.3 OpenCV中的深度學(xué)習(xí)198
12.4 YOLO用于實(shí)時(shí)對(duì)象檢測(cè)199
12.4.1 YOLO v3深度學(xué)習(xí)模型架構(gòu)200
12.4.2 YOLO數(shù)據(jù)集、詞匯表和模型200
12.4.3 將YOLO導(dǎo)入OpenCV201
12.5 用SSD進(jìn)行人臉檢測(cè)204
12.5.1 SSD模型架構(gòu)204
12.5.2 將SSD人臉檢測(cè)導(dǎo)入OpenCV204
12.6 總結(jié)208