深入理解 OpenCV:實用計算機視覺項目解析, 3/e (Mastering OpenCV 4: A comprehensive guide to building computer vision and image processing applications with C++, 3/e)

Roy Shilkrot , David Millán Escrivá 唐燦譯

買這商品的人也買了...

商品描述

本書秉承“幫助計算機視覺工程師邁出掌握OpenCV的第一步”的初心,
在保留必要的數學公式的情況下,針對當前熱門的計算機視覺主題,
如面部識別、關鍵點檢測、姿態估計,以及基於深度卷積網絡的車牌識別,
展示了從構思到運行的全過程,並提供了完整的項目代碼。
無論你來自學術界還是工業界,
都將從經驗豐富的OpenCV專家那裡學習如何輕鬆地實現計算機視覺產品和項目。
通過多個完整的計算機視覺項目,你將熟悉API的功能,
並深入了解在計算機視覺項目中如何設計和選型,
不止講解計算機視覺的基礎,
還從更高的層次上實現複雜的圖像處理項目的解決方案。
而且,你將能藉助本書中的項目創建各種工作原型,
對OpenCV 4的新功能做到爛熟於心。

通過閱讀本書,你將學會:
使用有效的OpenCV代碼對真實世界的計算機視覺問題進行建模
發現OpenCV項目及維護的最佳實踐
探索用於復雜計算機視覺任務的算法設計方法
使用OpenCV新的API( v4.0.0)
從運動中理解3D場景結構和重建3D場景(SfM)
使用ArUco模塊進行相機標定並疊加AR物體

作者簡介

Roy Shilkrot

石溪大學(Stony Brook)計算機科學的助理教授,
他領導著人群互動小組(Human Interaction group)。
他畢業於麻省理工學院(MIT)並獲得博士學位,致力於計算機視覺、
人機界面以及其交叉領域的研究,撰寫了25篇以上的論文。
他還是多項專利技術的共同發明人,也是多本著作的合著者,
是眾多初創公司的科學顧問委員會的成員,擁有超過10年的工程師和企業家經驗。

David Millán Escrivá

ITI(Instituto Tecnológico de Informática)的科學研究員,
在IT領域從業超過10年,在計算機視覺、
計算機圖形和模式識別方面擁有豐富的經驗,並運用他在計算機視覺、
OCR和增強現實方面的知識與不同的項目和初創公司合作。
他是DamilesBlog博客的作者,在那裡他發表有關OpenCV、
計算機視覺和光學字符識別算法的研究文章和教程。

目錄大綱

譯者序
前言
作者簡介
審閱者簡介
第1章樹莓派上的卡通化和皮膚顏色分析1
1.1訪問攝像頭2
1.2桌面應用程序的相機處理主循環4
1.2.1生成黑白素描4
1.2.2生成彩色繪畫和卡通6
1.2.3用邊緣濾波器來生成邪惡模式8
1.2.4用皮膚檢測來生成外星人造型9
1.3皮膚變色器的實現12
1.4從桌面移植到嵌入式設備19
1.4.1用於開發嵌入式設備代碼的設備配置21
1.4.2在嵌入式設備上安裝OpenCV 27
1.5小結39

第2章使用SfM模塊從運動中恢復結構40
2.1技術要求40
2.2 SfM的核心概念41
2.2.1相機標定和對極幾何42
2.2.2立體重建和SfM 45
2.3在OpenCV中實現SfM 48
2.3.1圖像特徵匹配48
2.3.2找到特徵軌跡52
2.3.3 3D重建和可視化55
2.3.4用於稠密重建的MVS 57
2.4小結60

第3章使用人臉模塊進行人臉特徵點及姿態檢測61
3.1技術要求61
3.2背景和理論63
3.2.1主動外觀模型與受約束的局部模型63
3.2.2回歸方法64
3.3 OpenCV中的人臉特徵點檢測65
3.4基於特徵點的人臉方向估計68
3.4.1估計姿態計算69
3.4.2將姿態投影到圖像上70
3.5小結71

第4章基於深度卷積網絡的車牌識別72
4.1 ANPR簡介72
4.2 ANPR算法74
4.3車牌檢測77
4.3.1分割78
4.3.2分類84
4.4車牌識別87
4.4.1 OCR分割88
4.4.2基於卷積神經網絡的字符分類89
4.5小結105

第5章通過DNN模塊進行人臉檢測和識別106
5.1介紹人臉檢測和人臉識別106
5.1.1人臉檢測108
5.1.2人臉預處理116
5.1.3收集人臉並從中學習127
5.1.4人臉識別138
5.1.5收尾工作——保存和加載文件141
5.1.6收尾工作——製作一個漂亮的、交互體驗好的GUI 141
5.2小結153
5.3參考文獻154

第6章Web計算機視覺之初識OpenCV.js 155
6.1什麼是OpenCV.js 155
6.2編譯OpenCV.js 157
6.3 OpenCV.js開發基礎159
6.4訪問攝像頭流165
6.5圖像處理和基本用戶界面169
6.5.1閾值濾波器170
6.5.2高斯濾波器170
6.5.3 canny濾波器170
6.6瀏覽器中的光流174
6.7在瀏覽器中使用Haar級聯分類器進行人臉檢測178
6.8小結180

第7章使用ArUco模塊的Android相機校準和AR 182
7.1技術要求182
7.2增強現實和姿態估計183
7.2.1相機校準184
7.2.2用於平面重建的增強現實標記186
7.3 Android系統中的相機訪問188
7.4使用ArUco進行相機校準191
7.5使用jMonkeyEngine實現增強現實195
7.6小結196

第8章帶有拼接模塊的iOS全景圖198
8.1技術要求198
8.2全景圖像拼接方法199
8.2.1全景圖的特徵提取和魯棒匹配200
8.2.2變形圖像,以便全景創建203
8.3項目概況204
8.4用CocoaPods設置iOS OpenCV項目204
8.5用於全景捕捉的iOS UI 205
8.6 Objective-C++包裝器中的OpenCV拼接209
8.7小結212
8.8進一步閱讀212

第9章為項目找到最佳OpenCV算法213
9.1技術要求213
9.2方案是否包含在OpenCV中214
9.3 OpenCV中的算法選項215
9.4哪種算法最好217
9.5算法性能比較的示例218
9.6小結223

第10章避免OpenCV中的常見陷阱224
10.1 OpenCV從v1到v4的歷史224
10.2 OpenCV中的歷史算法228
10.3常見陷阱和建議解決方案231
10.4小結236
10.5進一步閱讀236