TensorFlow 2.x 高級電腦視覺 Mastering Computer Vision with TensorFlow 2.x
Krishnendu (Krish) 周玉蘭 譯
- 出版商: 清華大學
- 出版日期: 2022-09-01
- 售價: $774
- 貴賓價: 9.5 折 $735
- 語言: 簡體中文
- ISBN: 730261458X
- ISBN-13: 9787302614586
-
相關分類:
DeepLearning、TensorFlow、Computer Vision
- 此書翻譯自: Mastering Computer Vision with TensorFlow 2.x
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$1,380$1,352 -
$505TensorFlow 進階指南:基礎、算法與應用
-
$740$725 -
$750$638 -
$1,200$792 -
$980$647 -
$479智能前端技術與實踐
-
$820$640 -
$880$695 -
$607Python 數據清洗
-
$774$735 -
$834$792 -
$768$730 -
$580$458 -
$534$507 -
$779$740 -
$1,200$948 -
$539$512 -
$720$569 -
$1,200$948 -
$880$695 -
$780$616 -
$750$593 -
$948$901 -
$880$695
相關主題
商品描述
《TensorFlow2.x高級電腦視覺》詳細闡述了與TensorFlow高級電腦視覺相關的基本解決方案,主要包括電腦視覺和TensorFlow基礎知識,局部二值模式和內容識別,使用OpenCV和CNN進行面部檢測,圖像深度學習,神經網絡架構和模型,遷移學習和視覺搜索,YOLO和對象檢測,語義分割和神經風格遷移,使用多任務深度學習進行動作識別,使用R-CNN、SSD和R-FCN進行對象檢測,通過CPU/GPU優化在邊緣設備上進行深度學習,用於電腦視覺的雲計算平臺等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校電腦及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。
目錄大綱
目 錄
第1篇 電腦視覺和神經網絡概論
第1章 電腦視覺和TensorFlow基礎知識 3
1.1 技術要求 3
1.2 使用圖像哈希和濾波檢測邊緣 3
1.2.1 使用拜耳濾色器形成彩色圖案 4
1.2.2 創建圖像向量 5
1.2.3 變換圖像 8
1.2.4 線性濾波—與內核進行捲積 9
1.2.5 圖像平滑 10
1.2.6 均值濾波器 11
1.2.7 中值濾波器 12
1.2.8 高斯濾波器 12
1.2.9 使用OpenCV進行圖像濾波 13
1.2.10 圖像梯度 14
1.2.11 圖像銳化 15
1.2.12 混合高斯和拉普拉斯運算 16
1.2.13 檢測圖像邊緣 18
1.2.14 Sobel邊緣檢測器 19
1.2.15 Canny邊緣檢測器 19
1.3 從圖像中提取特徵 20
1.3.1 直方圖 20
1.3.2 使用OpenCV進行圖像匹配 21
1.4 使用輪廓和HOG檢測器進行對象檢測 22
1.4.1 輪廓檢測 23
1.4.2 檢測邊界框 23
1.4.3 HOG檢測器 25
1.4.4 輪廓檢測方法的局限性 26
1.5 TensorFlow生態系統和安裝概述 28
1.5.1 TensorFlow與PyTorch 29
1.5.2 TensorFlow安裝 29
1.6 小結 31
第2章 局部二值模式和內容識別 33
2.1 使用LBP處理圖像 33
2.1.1 生成LBP模式 33
2.1.2 理解LBP直方圖 36
2.1.3 直方圖比較方法 36
2.1.4 LBP的計算成本 39
2.2 將LBP應用於紋理識別 39
2.3 使臉部顏色與基礎顏色匹配—LBP及其局限性 45
2.4 使臉部顏色與基礎顏色匹配—顏色匹配技術 48
2.5 小結 49
第3章 使用OpenCV和CNN進行面部檢測 51
3.1 應用Viola-Jones AdaBoost學習模型和Haar級聯分類器進行人臉識別 51
3.1.1 選擇哈爾特徵 51
3.1.2 創建積分圖像 52
3.1.3 進行AdaBoost訓練 55
3.1.4 級聯分類器 56
3.1.5 訓練級聯檢測器 57
3.2 使用深度神經網絡預測面部關鍵點 58
3.2.1 準備用於關鍵點檢測的數據集 58
3.2.2 處理關鍵點數據 61
3.2.3 在輸入Keras–Python代碼之前進行預處理 61
3.2.4 Keras–Python代碼中的預處理 61
3.2.5 定義模型架構 63
3.2.6 訓練模型以進行關鍵點預測 65
3.3 使用CNN預測面部表情 67
3.4 3D人臉檢測概述 69
3.4.1 3D重建的硬件設計概述 69
3.4.2 3D重建和跟蹤概述 69
3.4.3 參數跟蹤概述 70
3.5 小結 71
第4章 圖像深度學習 73
4.1 理解CNN及其參數 73
4.1.1 捲積 75
4.1.2 在空間上的捲積—3×3濾波器 77
4.1.3 在空間上的捲積—1×1濾波器 78
4.1.4 池化 79
4.1.5 填充 80
4.1.6 步幅 81
4.1.7 激活 82
4.1.8 全連接層 83
4.1.9 正則化 84
4.1.10 舍棄 84
4.1.11 內部協方差漂移和批歸一化 85
4.1.12 Softmax 87
4.2 優化CNN參數 87
4.2.1 基準情況 89
4.2.2 迭代1 90
4.2.3 迭代2 90
4.2.4 迭代3 91
4.2.5 迭代4 92
4.3 可視化神經網絡的各個層 94
4.3.1 構建自定義圖像分類器模型並可視化其層 94
4.3.2 神經網絡輸入和參數 94
4.3.3 輸入圖像 95
4.3.4 定義訓練和驗證生成器 95
4.3.5 開發模型 96
4.3.6 編譯和訓練模型 96
4.3.7 輸入測試圖像並將其轉換為張量 98
4.3.8 可視化第一個激活層 99
4.3.9 可視化多個激活層 99
4.3.10 訓練現有的高級圖像分類器模型並可視化其層 103
4.4 小結 107
第2篇 TensorFlow和電腦視覺的高級概念
第5章 神經網絡架構和模型 111
5.1 AlexNet概述 111
5.2 VGG16概述 116
5.3 Inception概述 117
5.3.1 Inception網絡的工作原理 117
5.3.2 GoogLeNet檢測 120
5.4 ResNet概述 121
5.5 R-CNN概述 123
5.5.1 圖像分割 125
5.5.2 基於聚類的分割 125
5.5.3 基於圖的分割 125
5.5.4 選擇性搜索 126
5.5.5 區域提議 126
5.5.6 特徵提取 126
5.5.7 圖像分類 127
5.5.8 邊界框回歸 127
5.6 快速R-CNN概述 127
5.7 更快的R-CNN概述 129
5.8 GAN概述 133
5.9 GNN概述 135
5.9.1 有關圖神經網絡的基礎知識 136
5.9.2 頻譜GNN 137
5.10 強化學習概述 138
5.11 遷移學習概述 139
5.12 小結 141
第6章 遷移學習和視覺搜索 143
6.1 使用TensorFlow編寫深度學習模型代碼 143
6.1.1 下載權重 144
6.1.2 解碼預測結果 144
6.1.3 導入其他常用功能 145
6.1.4 構建模型 145
6.1.5 從目錄輸入圖像 146
6.1.6 使用TensorFlow Keras導入和處理多幅圖像的循環函數 146
6.2 使用TensorFlow開發遷移學習模型 151
6.2.1 分析和存儲數據 151
6.2.2 導入TensorFlow庫 152
6.2.3 設置模型參數 153
6.2.4 建立數據輸入管道 153
6.2.5 訓練數據生成器 153
6.2.6 驗證數據生成器 154
6.2.7 使用遷移學習構建最終模型 154
6.2.8 使用Checkpoint保存模型 156
6.2.9 給訓練的歷史記錄繪圖 157
6.3 理解視覺搜索的架構和應用 160
6.3.1 視覺搜索的架構 161
6.3.2 視覺搜索代碼和說明 164
6.3.3 預測上傳圖像的類別 164
6.3.4 預測所有圖像的類別 165
6.4 使用tf.data處理視覺搜索輸入管道 171
6.5 小結 173
第7章 YOLO和對象檢測 175
7.1 YOLO概述 175
7.1.1 交並比的概念 176
7.1.2 YOLO能夠快速檢測對象的原因揭秘 177
7.1.3 YOLO v3神經網絡架構 179
7.1.4 YOLO與更快的R-CNN的比較 180
7.2 用於對象檢測的Darknet簡介 181
7.2.1 使用Darknet檢測對象 181
7.2.2 使用Tiny Darknet檢測對象 184
7.3 使用Darknet進行實時預測 186
7.4 YOLO系列的比較 190
7.5 訓練模型 191
7.6 使用YOLO v3訓練新圖像集以開發自定義模型 192
7.6.1 準備圖像 194
7.6.2 生成註解文件 194
7.6.3 將.xml文件轉換為.txt文件 196
7.6.4 創建合並的train.txt和test.txt文件 196
7.6.5 創建一個類別名稱文件的列表 196
7.6.6 創建一個YOLO .data文件 197
7.6.7 調整YOLO配置文件 197
7.6.8 啟用GPU進行訓練 200
7.6.9 開始訓練 200
7.7 特徵金字塔網絡和RetinaNet概述 201
7.8 小結 203
第8章 語義分割和神經風格遷移 205
8.1 用於語義分割的TensorFlow DeepLab概述 205
8.1.1 空間金字塔池化 207
8.1.2 空洞捲積 207
8.1.3 編碼器-解碼器網絡 208
8.1.4 編碼器模塊 208
8.1.5 解碼器模塊 209
8.1.6 DeepLab中的語義分割示例 209
8.1.7 Google Colab、Google Cloud TPU和TensorFlow 209
8.2 使用DCGAN生成人工圖像 213
8.2.1 生成器 213
8.2.2 鑒別器 214
8.2.3 訓練 215
8.2.4 使用DCGAN修復圖像 216
8.2.5 TensorFlow DCGAN示例 217
8.3 使用OpenCV修復圖像 217
8.4 理解神經風格遷移 218
8.5 小結 222
第3篇 使用TensorFlow的電腦視覺高級實現
第9章 使用多任務深度學習進行動作識別 225
9.1 人體姿勢估計—OpenPose 225
9.1.1 OpenPose背後的理論 225
9.1.2 理解OpenPose代碼 228
9.2 人體姿勢估計—堆疊沙漏模型 231
9.2.1 理解沙漏模型 233
9.2.2 編寫沙漏模型代碼 234
9.2.3 argparse塊 235
9.2.4 訓練沙漏網絡 237
9.2.5 創建沙漏網絡 238
9.3 人體姿勢估計—PoseNet 242
9.3.1 自上而下的方法 242
9.3.2 自下而上的方法 242
9.3.3 PoseNet實現 243
9.3.4 應用人體姿勢進行手勢識別 246
9.4 使用各種方法進行動作識別 247
9.4.1 基於加速度計識別動作 248
9.4.2 將基於視頻的動作與姿勢估計相結合 250
9.4.3 使用4D方法進行動作識別 251
9.5 小結 251
第10章 使用R-CNN、SSD和R-FCN進行對象檢測 253
10.1 SSD概述 253
10.2 R-FCN概述 256
10.3 TensorFlow對象檢測API概述 258
10.4 在Google Cloud上使用TensorFlow檢測對象 259
10.5 使用TensorFlow Hub檢測對象 262
10.6 使用TensorFlow和Google Colab訓練自定義對象檢測器 263
10.6.1 收集圖像並格式化為.jpg文件 265
10.6.2 註解圖像以創建.xml文件 266
10.6.3 將文件拆分到訓練和測試文件夾中 267
10.6.4 配置參數並安裝所需的軟件包 269
10.6.5 創建TensorFlow記錄 271
10.6.6 準備模型並配置訓練管道 273
10.6.7 使用TensorBoard監控訓練進度 274
10.6.8 在本地電腦上運行TensorBoard 274
10.6.9 在Google Colab上運行TensorBoard 274
10.6.10 訓練模型 275
10.6.11 運行推理測試 278
10.6.12 使用神經網絡模型時的註意事項 279
10.7 Mask R-CNN概述和Google Colab演示 280
10.8 開發對象跟蹤器模型以補充對象檢測器 282
10.8.1 基於質心的跟蹤 282
10.8.2 SORT跟蹤 282
10.8.3 DeepSORT跟蹤 283
10.8.4 OpenCV跟蹤方法 284
10.8.5 基於暹羅網絡的跟蹤 284
10.8.6 基於SiamMask的跟蹤 285
10.9 小結 286
第4篇 在邊緣和雲端上的TensorFlow實現
第11章 通過CPU/GPU優化在邊緣設備上進行深度學習 291
11.1 邊緣設備上的深度學習概述 291
11.2 用於GPU/CPU優化的技術 293
11.3 MobileNet概述 294
11.4 使用Raspberry Pi進行圖像處理 296
11.4.1 Raspberry Pi硬件設置 297
11.4.2 Raspberry Pi攝像頭軟件設置 298
11.4.3 在Raspberry Pi中安裝OpenCV 298
11.4.4 在Raspberry Pi中安裝OpenVINO 299
11.4.5 安裝OpenVINO工具包組件 300
11.4.6 設置環境變量 301
11.4.7 添加USB規則 301
11.4.8 使用Python代碼運行推理 301
11.4.9 高級推理 302
11.4.10 人臉檢測、行人檢測和車輛檢測 304
11.4.11 特徵識別模型 305
11.4.12 動作識別模型 306
11.4.13 車牌、註視和人員檢測 306
11.5 使用OpenVINO進行模型轉換和推理 309
11.5.1 使用NCAPPZOO在終端中運行推理 309
11.5.2 轉換預訓練模型以進行推理 310
11.5.3 轉換使用Keras開發的TensorFlow模型 310
11.5.4 轉換使用TensorFlow對象檢測API開發的TensorFlow模型 311
11.5.5 OpenVINO模型推理過程總結 312
11.6 TensorFlow Lite的應用 314
11.6.1 將TensorFlow模型轉換為tflite格式 315
11.6.2 Python API 315
11.6.3 TensorFlow對象檢測API—tflite_convert 315
11.6.4 TensorFlow對象檢測API—toco 316
11.6.5 模型優化 318
11.7 使用TensorFlow Lite在Android手機上進行對象檢測 319
11.8 使用TensorFlow Lite在Raspberry Pi上進行對象檢測 323
11.8.1 圖像分類 324
11.8.2 對象檢測 325
11.9 使用TensorFlow Lite和Create ML在iPhone上進行對象檢測 326
11.9.1 適用於iPhone的TensorFlow Lite轉換模型 327
11.9.2 Core ML 330
11.9.3 將TensorFlow模型轉換為Core ML格式 333
11.10 各種註解方法的摘要 333
11.10.1 將標註工作外包給第三方 333
11.10.2 自動或半自動標註 334
11.11 小結 338
第12章 用於電腦視覺的雲計算平臺 339
12.1 在GCP中訓練對象檢測器 339
12.1.1 在GCP中創建項目 340
12.1.2 GCP設置 341
12.1.3 Google Cloud Storage存儲桶設置 342
12.1.4 使用GCP API設置存儲桶 342
12.1.5 使用Ubuntu終端設置存儲桶 343
12.1.6 設置Google Cloud SDK 343
12.1.7 將終端鏈接到Google Cloud項目和存儲桶 344
12.1.8 安裝TensorFlow對象檢測API 345
12.1.9 準備數據集 346
12.1.10 TFRecord和標註地圖數據 346
12.1.11 準備數據 346
12.1.12 上傳數據 347
12.1.13 model.ckpt文件 348
12.1.14 模型配置文件 348
12.1.15 在雲端訓練 350
12.1.16 在TensorBoard中查看模型輸出 351
12.1.17 模型輸出並轉換為凍結圖 353
12.1.18 從Google Colab導出tflite graph.py 354
12.2 在AWS SageMaker雲平臺中訓練對象檢測器 357
12.2.1 設置AWS賬戶和限制等 357
12.2.2 將.xml文件轉換為JSON格式 357
12.2.3 將數據上傳到S3存儲桶 358
12.2.4 創建Notebook實例並開始訓練 358
12.2.5 修復訓練中的一些常見故障 359
12.3 在Microsoft Azure雲平臺中訓練對象檢測器 361
12.3.1 創建一個Azure賬號並設置Custom Vision 361
12.3.2 上傳訓練圖像並標註它們 362
12.4 大規模訓練和打包 366
12.4.1 關於分佈式訓練 366
12.4.2 應用程序打包 366
12.5 基於雲的視覺搜索背後的總體思路 367
12.6 分析各種雲平臺中的圖像和搜索機制 368
12.6.1 使用GCP進行視覺搜索 369
12.6.2 使用AWS進行視覺搜索 370
12.6.3 使用Azure進行視覺搜索 372
12.7 小結 373