PyTorch計算機視覺實戰:目標檢測、圖像處理與大模型(原書第二版)

相關主題

商品描述

本書系統介紹了基於PyTorch的計算機視覺技術,涵蓋從理論基礎到 應用開發的全流程。全書分為四部分,共18章, 部分講解深度學習基礎,包括人工神經網絡、PyTorch基礎知識及深度神經網絡構建;第二部分聚焦物體分類與檢測,涉及卷積神經網絡、遷移學習、物體檢測技術及圖像分割;第三部分探討圖像處理,涵蓋自動編碼器、生成對抗網絡等;第四部分介紹計算機視覺與其他技術的融合,包括與強化學習、自然語言處理的結合,基礎模型、穩定擴散應用及模型部署。書中包含40多種實際應用案例,GitHub提供完整源代碼,每章配有習題及答案,適合具備Python和機器學習基礎的學生、軟件開發人員及科研人員學習,助力其掌握計算機視覺與深度學 技能。

作者簡介

V·基肖爾·阿耶德瓦拉(V Kishore Ayyadevara)<br />知名企業家,實幹型 ,致力於技術、數據和人工智能交叉領域,專註於發現並解決商業難題。他擁有十余年領導經驗,曾在美國運通(American Express)、 ( )及一家 健康保險公司,成功搭建並壯大應用數據科學團隊。目前,他創立了一家初創公司,旨在推動人工智能技術在醫療機構的普及。工作之余,Kishore撰寫了5本關於機器學習/人工智能的著作以分享專業知識。他擁有12項發明專利,並多次受邀在人工智能領域的會議上發表演講。<br /><br />耶什萬斯·雷迪(Yeshwanth Reddy)<br />成就卓著的數據科學家,在深度學習與文檔分析領域擁有10年以上實戰經驗。他為該領域做出了重大貢獻,包括開發端到端文檔數字化軟件,助力實現顯著成本節約。他的專業知識還涵蓋光學字符識別、單詞檢測與合成文檔生成等模塊開發,其開創性工作成果獲得多項專利認證,同時創建了多個Python庫。懷著對無監督學習與自監督學習變革的熱情,他致力於減少人工標註依賴,推動數據科學領域的創新解決方案。

目錄大綱

譯者序

前言

作者簡介

審校者簡介

第一部分 基於計算機視覺的深度學習基礎

第1章 人工神經網絡基礎 2

1.1 對比人工智能與傳統機器學習 3

1.2 學習人工神經網絡的構建塊 5

1.3 實現前向傳播 6

1.3.1 計算隱藏層的單元值 6

1.3.2 應用激活函數 7

1.3.3 計算輸出層的值 8

1.3.4 計算損失值 9

1.3.5 編碼實現前向傳播 10

1.4 實現反向傳播 13

1.4.1 編碼實現梯度下降 14

1.4.2 利用鏈式法則實現反向

傳播 16

1.4.3 將前向傳播與反向傳播

相結合 19

1.5 了解學習率的影響 22

1.5.1 學習率為0.01 25

1.5.2 學習率為0.1 26

1.5.3 學習率為1 27

1.6 神經網絡訓練過程概述 28

1.7 本章小結 28

1.8 習題 29

第2章 PyTorch基礎 30

2.1 安裝PyTorch 30

2.2 PyTorch張量 31

2.2.1 初始化張量 32

2.2.2 張量運算 33

2.2.3 張量對象的自動梯度 37

2.2.4 PyTorch張量相對於NumPy

數組的優勢 38

2.3 使用PyTorch構建神經網絡 39

2.3.1 數據集、數據加載器與

批處理大小 45

2.3.2 根據新的數據點進行預測 48

2.3.3 實現自定義損失函數 49

2.3.4 獲取神經網絡中間層的值 50

2.4 使用順序方法構建神經網絡 51

2.5 保存並加載PyTorch模型 54

2.5.1 使用state_dict 54

2.5.2 保存 55

2.5.3 加載 55

2.6 本章小結 56

2.7 習題 56

第3章 使用PyTorch構建深度神經

網絡 57

3.1 圖像表示 58

3.1.1 將圖像轉換為結構化數組和

標量值 58

3.1.2 為彩色圖像創建結構化

數組 60

3.2 為什麼要利用神經網絡進行圖像

分析 62

3.3 準備用於圖像分類的數據 63

3.4 訓練神經網絡 65

3.5 縮放數據集以提高模型準確率 70

3.6 理解批處理大小變化的影響 72

3.6.1 批處理大小為32 72

3.6.2 批處理大小為10 000 75

3.7 理解不同損失優化器的影響 76

3.8 構建更深的神經網絡 79

3.9 理解批量歸一化的影響 80

3.9.1 沒有使用批量歸一化的

極小輸入值 81

3.9.2 使用批量歸一化的極小

輸入值 84

3.10 過擬合的概念 85

3.10.1 添加dropout的影響 86

3.10.2 正則化的影響 87

3.11 本章小結 90

3.12 習題 90

第二部分 物體分類與檢測

第4章 卷積神經網絡導論 92

4.1 傳統深度神經網絡存在的問題 92

4.2 卷積神經網絡的構建塊 95

4.2.1 卷積 96

4.2.2 濾波器 97

4.2.3 步長與填充 98

4.2.4 池化 99

4.2.5 整合各個構建塊 99

4.2.6 卷積和池化在圖像平移中的

作用 100

4.3 實現卷積神經網絡 101

4.4 利用深度卷積神經網絡進行圖像

分類 104

4.5 可視化特征學習結果 109

4.6 構建用於真實世界圖像分類的卷積

神經網絡 119

4.7 本章小結 128

4.8 習題 128

第5章 用於圖像分類的遷移學習 129

5.1 遷移學習概述 130

5.2 理解VGG16架構 131

5.3 理解ResNet架構 139

5.4 實現臉部關鍵點檢測 143

5.5 實現年齡估計與性別分類 151

5.6 torch_snippets庫概述 160

5.7 本章小結 165

5.8 習題 165

第6章 圖像分類的實際應用 167

6.1 生成類激活圖 167

6.2 理解數據增強與批量歸一化的

影響 176

6.3 模型實現期間要註意的實際事項 181

6.3.1 不平衡的數據 181

6.3.2 圖像中物體的大小 182

6.3.3 訓練圖像與驗證圖像之間的

區別 182

6.3.4 扁平化層的節點數 183

6.3.5 圖像大小 183

6.3.6 OpenCV實用程序 183

6.4 本章小結 183

6.5 習題 184

第7章 物體檢測基礎知識 185

7.1 物體檢測概述 185

7.2 創建用於訓練的真實邊界框 187

7.3 了解建議區域 188

7.3.1 利用 SelectiveSearch 生成

建議區域 189

7.3.2 實現SelectiveSearch生成

建議區域 190

7.4 了解交並比 192

7.5 非極大值抑制 194

7.6 平均精度均值 194

7.7 訓練基於R-CNN的自定義物體

檢測器 195

7.7.1 R-CNN的工作細節 195

7.7.2 在自定義數據集上實現用於

物體檢測的R-CNN 196

7.7.3 數據集下載 197

7.8 訓練基於Fast R-CNN的自定義物體

檢測器 210

7.8.1 Fast R-CNN的工作細節 210

7.8.2 在自定義數據集上實現用於

物體檢測的Fast R-CNN 211

7.9 本章小結 218

7.10 習題 218

第8章 高級物體檢測 219

8.1 更先進的物體檢測算法的組成

部分 219

8.1.1 錨框 220

8.1.2 建議區域網絡 221

8.1.3 分類與回歸 222

8.2 在自定義數據集上訓練

Faster R-CNN 223

8.3 YOLO的工作細節 230

8.4 在自定義數據集上訓練YOLO 235

8.4.1 安裝Darknet 235

8.4.2 設置數據集格式 236

8.4.3 配置架構 237

8.4.4 訓練與測試模型 238

8.5 SSD的工作細節 239

8.6 在自定義數據集上訓練 SSD 243

8.7 本章小結 248

8.8 習題 248

第9章 圖像分割 249

9.1 探索U-Net架構 250

9.2 執行上采樣 251

9.3 使用U-Net實現語義分割 253

9.4 探索Mask R-CNN架構 259

9.4.1 RoI對齊 260

9.4.2 掩碼頭 262

9.5 使用Mask R-CNN實現實例

分割 263

9.6 預測多個類的多個實例 274

9.7 本章小結 277

9.8 習題 277

第10章 物體檢測與分割的應用 278

10.1 多物體實例分割 278

10.1.1 獲取與準備數據 279

10.1.2 訓練實例分割模型 284

10.1.3 在新圖像上進行推理 285

10.2 人體姿態檢測 287

10.3 人群計數 289

10.4 圖像著色 298

10.5 基於點雲的3D物體檢測 303

10.5.1 理論 304

10.5.2 訓練用於3D物體檢測的YOLO模型 307

10.6 視頻行為識別 311

10.6.1 識別視頻中的行為 312

10.6.2 在自定義數據集上訓練

識別器 314

10.7 本章小結 316

10.8 習題 317

第三部分 圖像處理

第11章 自動編碼器與圖像處理 320

11.1 理解自動編碼器 320

11.1.1 自動編碼器的工作原理 320

11.1.2 實現普通自動編碼器 321

11.1.3 實現卷積自動編碼器 326

11.1.4 使用t-SNE分組相似

圖像 329

11.2 理解變分自動編碼器 331

11.2.1 變分自動編碼器的需求 331

11.2.2 變分自動編碼器的工作

原理 333

11.2.3 KL散度 333

11.2.4 構建變分自動編碼器 334

11.3 對圖像進行對抗攻擊 338

11.4 理解神經風格遷移 341

11.4.1 神經風格遷移的工作

原理 341

11.4.2 執行神經風格遷移 343

11.5 理解深度偽造 347

11.5.1 深度偽造的工作原理 347

11.5.2 生成深度偽造 348

11.6 本章小結 356

11.7 習題 357

第12章 基於生成對抗網絡的圖像

生成 358

12.1 生成對抗網絡簡介 358

12.2 利用生成對抗網絡生成手寫

數字 360

12.3 利用深度卷積生成對抗網絡生成

人臉圖像 366

12.4 實現條件生成對抗網絡 373

12.5 本章小結 383

12.6 習題 383

第13章 用於圖像處理的高級生成

對抗網絡 384

13.1 利用Pix2Pix GAN 384

13.2 利用CycleGAN 394

13.2.1 CycleGAN的工作原理 395

13.2.2 實現CycleGAN 396

13.3 在自定義圖像中利用StyleGAN 404

13.3.1 StyleGAN的演化 404

13.3.2 實現StyleGAN 406

13.4 SRGAN簡介 412

13.4.1 架構 413

13.4.2 編碼實現SRGAN 413

13.5 本章小結 415

13.6 習題 416

第四部分 計算機視覺與其他技術的融合

第14章 計算機視覺與強化學習

相結合 418

14.1 學習強化學習的基礎知識 419

14.1.1 計算狀態值 419

14.1.2 計算“狀態–行動”值 420

14.2 實現Q學習 421

14.2.1 定義Q值 422

14.2.2 理解Gym環境 422

14.2.3 構建Q表 424

14.2.4 探索–利用策略 426

14.3 實現深度Q學習 428

14.3.1 理解CartPole環境 428

14.3.2 進行CartPole平衡 429

14.4 基於固定目標模型實現深度Q

學習 434

14.4.1 理解應用實例 435

14.4.2 編寫一個智能體來玩乒乓球遊戲 436

14.5 實現一個執行自動駕駛的

智能體 442

14.5.1 設置CARLA環境 442

14.5.2 訓練自動駕駛智能體 445

14.6 本章小結 454

14.7 習題 455

第15 章 計算機視覺與自然語言處理

技術相結合 456

15.1 Transformer簡介 457

15.1.1 Transformer基礎知識 457

15.1.2 視覺Transformer的工作

原理 461

15.2 實現視覺Transformer 462

15.3 識別手寫圖像 466

15.3.1 手寫識別工作流程 466

15.3.2 編碼實現手寫識別 467

15.4 文檔布局分析 472

15.4.1 理解LayoutLM 472

15.4.2 實現LayoutLMv3 474

15.5 視覺問答 478

15.5.1 BLIP2簡介 478

15.5.2 實現BLIP2 481

15.6 本章小結 482

15.7 習題 482

第16章 計算機視覺中的基礎模型 483

16.1 CLIP簡介 483

16.1.1 CLIP的工作原理 484

16.1.2 從頭開始構建CLIP

模型 485

16.1.3 利用OpenAI CLIP 493

16.2 SAM簡介 494

16.2.1 SAM的工作原理 495

16.2.2 實現SAM 498

16.2.3 FastSAM的工作原理 501

16.2.4 實現FastSAM 502

16.3 擴散模型簡介 504

16.3.1 擴散模型的工作原理 504

16.3.2 擴散模型架構 505

16.3.3 從頭開始構建擴散

模型 507

16.3.4 條件圖像生成 511

16.4 理解穩定擴散 513

16.4.1 穩定擴散模型的構建塊 514

16.4.2 實現穩定擴散 522

16.5 本章小結 524

16.6 習題 524

第17章 穩定擴散的應用 525

17.1 圖像修覆 525

17.1.1 模型訓練工作流程 526

17.1.2 使用穩定擴散進行圖像

修覆 527

17.2 ControlNet 528

17.2.1 架構 528

17.2.2 實現ControlNet 529

17.3 SDXL Turbo 532

17.3.1 架構 532

17.3.2 實現SDXL Turbo 533

17.4 DepthNet 534

17.4.1 DepthNet工作流程 534

17.4.2 實現DepthNet 534

17.5 根據文本生成視頻 535

17.5.1 工作流程 536

17.5.2 實現根據文本生成

視頻 536

17.6 本章小結 537

17.7 習題 538

第18章 模型部署到生產環境 539

18.1 了解API的基礎知識 540

18.2 在本地服務器上創建API並進行

預測 541

18.2.1 安裝API模塊及依賴項 541

18.2.2 部署圖像分類器 541

18.3 封裝應用程序 545

18.4 在雲端部署並運行Docker容器 549

18.4.1 配置AWS 549

18.4.2 在AWS ECR上創建Docker存儲庫並推送鏡像 549

18.4.3 提取鏡像並構建Docker

容器 550

18.5 識別數據漂移 552

18.6 使用向量存儲 555

18.7 本章小結 557

18.8 習題 558

附錄 559