內容簡介
《Python計算機視覺與深度學習實戰》立足實踐,從機器學習的基礎技能出發,深入淺出地介紹了如何使用 Python 進行基於深度學習的計算機視覺項目開發。開篇介紹了基於傳統機器學習及圖像處理方法的計算機視覺技術;然後重點就圖像分類、目標檢測、圖像分割、圖像搜尋、圖像壓縮及文本識別等常見的計算機視覺項目做了理論結合實踐的講解;後探索了深度學習項目落地時會用到的量化、剪枝等技術,並提供了模型服務端部署案例。
《Python計算機視覺與深度學習實戰》適合有一定的Python 編程基礎,初學深度學習的讀者閱讀。
圖書目錄
第 1章 機器學習與sklearn 1
1.1 sklearn 環境配置 2
1.1.1 環境要求 2
1.1.2 安裝方法 2
1.1.3 修改pip 源 3
1.1.4 安裝Jupyter Notebook 4
1.2 數據集 5
1.2.1 自帶的小型數據集 6
1.2.2 線上下載的數據集 8
1.2.3 計算機生成的數據集 8
1.3 分類 9
1.3.1 載入數據與模型 10
1.3.2 建立分類模型 11
1.3.3 模型的訓練及預測 12
1.3.4 模型評價 12
1.4 回歸 14
1.4.1 線性回歸 15
1.4.2 回歸模型評價 16
1.5 聚類 17
1.5.1 K-means 17
1.5.2 DBSCAN 17
1.5.3 聚類實例 18
1.6 降維 19
1.6.1 PCA 降維 19
1.6.2 LDA 降維 22
1.7 模型驗證 23
1.8 模型持久化 27
1.8.1 joblib 27
1.8.2 pickle 28
1.9 小結 28
第 2章 傳統圖像處理方法 29
2.1 圖像分類 29
2.1.1 HOG 的原理 29
2.1.2 工具介紹 30
2.1.3 CIFAR-10 分類 31
2.1.4 手寫字元分類 33
2.2 目標檢測 36
2.3 圖像分割 40
2.4 圖像搜尋 41
2.5 小結 43
第3章 深度學習與PyTorch 44
3.1 框架介紹 44
3.2 環境配置 46
3.3 運算基本單元 48
3.3.1 Tensor 數據類型 48
3.3.2 Tensor 與ndarray 49
3.3.3 CPU 與GPU 運算 49
3.3.4 PyTorch 實現K-means 51
3.4 自動求導 55
3.5 數據載入 57
3.5.1 Dataset 58
3.5.2 DataLoader 59
3.6 神經網路工具包 60
3.6.1 Module 模組 61
3.6.2 線性層 62
3.6.3 卷積層 62
3.6.4 池化層 64
3.6.5 BatchNorm 層 65
3.6.6 激活層 65
3.6.7 神經網路各層輸出的可視化 72
3.6.8 循環神經網路 76
3.6.9 Sequential 和ModuleList 78
3.6.10 損失函式 79
3.7 模型最佳化器optim 82
3.7.1 optim 用法 82
3.7.2 最佳化器的選擇 82
3.7.3 學習率的選擇 86
3.8 參數初始化init 94
3.9 模型持久化 96
3.10 JIT 編譯器 98
3.11 模型遷移ONNX 99
3.12 數據可視化TensorBoard 101
3.13 機器視覺工具包torchvision 103
3.13.1 數據 103
3.13.2 模型 104
3.13.3 圖像處理 106
3.14 小結 110
第4章 卷積神經網路中的分類與回歸 111
4.1 卷積神經網路中的分類問題 112
4.1.1 CIFAR-10 圖像分類 112
4.1.2 卷積神經網路的發展 117
4.1.3 分類網路的實現 121
4.1.4 模型訓練 127
4.1.5 模型展示 132
4.1.6 多標籤分類 134
4.2 卷積神經網路中的回歸問題 142
4.2.1 生成數據集 142
4.2.2 模型訓練 145
4.2.3 模型展示 146
4.3 小結 148
第5章 目標檢測 149
5.1 深度學習物體檢測算法 149
5.1.1 兩段式檢測 150
5.1.2 一段式檢測 153
5.2 數據集構建 155
5.2.1 選擇目標物體圖片 155
5.2.2 背景圖片下載 156
5.2.3 圖片合成 156
5.3 數據載入 162
5.4 數據標記與損失函式構建 166
5.4.1 數據標記 167
5.4.2 損失函式 167
5.5 模型搭建與訓練 172
5.6 模型預測 175
5.7 小結 180
第6章 圖像分割 181
6.1 數據載入 184
6.2 模型搭建 189
6.3 模型訓練 191
6.4 模型展示 194
6.5 智慧型彈幕 195
6.6 像素級回歸問題:超解析度重建 196
6.6.1 超解析度重建算法的發展 197
6.6.2 數據載入 198
6.6.3 模型搭建與訓練 202
6.6.4 模型展示 205
6.7 小結 206
第7章 圖像搜尋 207
7.1 分類網路的特徵 208
7.2 深度學習人臉識別技術 208
7.2.1 FaceNet 209
7.2.2 CosFace 和ArcFace 209
7.3 數據處理 210
7.3.1 數據下載 210
7.3.2 數據檢查 212
7.3.3 數據提取 213
7.4 模型訓練 214
7.4.1 普通分類模型 214
7.4.2 CosFace 218
7.5 圖像搜尋 219
7.5.1 圖像比對 219
7.5.2 KD-Tree 搜尋 221
7.6 小結 224
第8章 圖像壓縮 225
8.1 AutoEncoder 226
8.1.1 AutoEncoder 的原理 226
8.1.2 AutoEncoder 模型搭建 226
8.1.3 數據載入 229
8.1.4 模型訓練 230
8.1.5 結果展示 232
8.2 GAN 234
8.2.1 GAN 原理 234
8.2.2 GAN 訓練流程 235
8.2.3 GAN 隨機生成人臉圖片 235
8.2.4 GAN 與AutoEncoder 的結合 242
8.2.5 圖像修復 247
8.3 小結 250
第9章 不定長文本識別 251
9.1 循環神經網路概述 251
9.2 時間序列預測 252
9.2.1 創建模型 253
9.2.2 生成數據 253
9.2.3 模型訓練 255
9.2.4 模型預測 256
9.3 CRNN 模型 257
9.3.1 CRNN 算法簡介 257
9.3.2 CTCLoss 函式 258
9.3.3 模型結構 259
9.3.4 數據預處理 261
9.3.5 模型訓練 264
9.3.6 模型預測 266
9.4 小結 267
第 10章 神經網路壓縮與部署 268
10.1 剪枝 268
10.1.1 模型設計 269
10.1.2 訓練基礎模型 271
10.1.3 模型稀疏化 273
10.1.4 壓縮模型通道 276
10.2 量化 283
10.3 混合精度訓練 287
10.4 深度學習模型的服務端部署 289
10.4.1 創建接口 289
10.4.2 訪問接口 291
10.5 小結 292
作者簡介
郭卡,安徽外國語學院計算機講師,省級自然科學基金重點項目“基於大數據與人工智慧技術的線上學習評價系統”主持人,《Python 數據爬取技術與實戰手冊》主編,參與多項人工智慧研究項目並發表相關論文兩篇。 戴亮,科大訊飛算法工程師,GiantPandaCV 作者之一,主要研究方向為光學字元識別與語音識別,熱衷於 PyTorch 技術分享,對深度學習相關技術有深入了解。