YOLO 目標檢測

楊建華 李瑞峰

  • YOLO 目標檢測-preview-1
  • YOLO 目標檢測-preview-2
YOLO 目標檢測-preview-1

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

商品描述

本書主要介紹基於視覺的YOLO框架的技術原理和代碼實現,並講解目標檢測領域中的諸多基礎概念和基本原理,在YOLO框架的基礎上介紹流行目標檢測框架。本書分為4個部分,共13章。第1部分介紹目標檢測領域的發展簡史、主流的目標檢測框架和該領域常用的數據集。第2部分詳細講解從YOLOv1到YOLOv4這四代YOLO框架的網絡結構、檢測原理和訓練策略,以及搭建和訓練的YOLO框架的代碼實現。第3部分介紹兩個較新的YOLO框架——YOLOX和YOLOv7,著重講解其設計理念、網絡結構和檢測原理。第4部分介紹DETR、YOLOF和FCOS在內的流行目標檢測框架和相應的代碼實現。本書側重目標檢測的基礎知識,包含豐富的實踐內容,是目標檢測領域的入門書,適合對目標檢測領域感興趣的初學者、算法工程師、軟件工程師等人員學習和閱讀。

作者簡介

杨建华,哈尔滨工业大学在读博士,主要研究方向为基于视觉的目标检测与人体时空行为分析,长期耕耘于多个知乎专栏(知乎ID:Kissrabbit)。

 

李瑞峰,哈尔滨工业大学教授、机器人研究所副所长,中国人工智能学会智能机器人专业委员会秘书长,黑龙江省机器人学会理事长。

目錄大綱

目 錄

第 1部分 背景知識

第 1章 目標檢測架構淺析 2

1.1 目標檢測發展簡史 2

1.2 目標檢測網絡框架概述 5

1.3 目標檢測網絡框架淺析 5

1.3.1 主乾網絡 5

1.3.2 頸部網絡 7

1.3.3 檢測頭 9

1.4 小結 10

第 2章 常用的數據集 11

2.1 PASCAL VOC 數據集 11

2.2 MS COCO 數據集 12

2.3 小結 14

第 2部分 學習YOLO框架

第3章 YOLOv1 16

3.1 YOLOv1 的網絡結構 16

3.2 YOLOv1 的檢測原理 18

3.3 YOLOv1 的製作訓練正樣本的方法 21

3.3.1 邊界框的位置參數 tx、ty、w、h 21

3.3.2 邊界框的置信度 23

3.3.3 類別置信度 26

3.4 YOLOv1 的損失函數 26

3.5 YOLOv1 的前向推理 27

3.6 小結 29

第4章 搭建YOLOv1網絡 30

4.1 改進 YOLOv1 30

4.1.1 改進主乾網絡 31

4.1.2 添加一個頸部網絡 32

4.1.3 修改檢測頭 33

4.1.4 修改預測層 35

4.1.5 修改損失函數 37

4.2 搭建 YOLOv1 網絡 37

4.2.1 搭建主乾網絡 39

4.2.2 搭建頸部網絡 41

4.2.3 搭建檢測頭 41

4.2.4 YOLOv1 前向推理 41

4.3 YOLOv1 的後處理 44

4.3.1 求解預測邊界框的坐標 44

4.3.2 後處理 46

4.4 小結 48

第5章 訓練YOLOv1網絡 49

5.1 讀取 VOC 數據 49

5.2 數據預處理 56

5.2.1 基礎變換 56

5.2.2 數據增強 59

5.3 製作訓練正樣本 61

5.4 計算訓練損失 64

5.5 開始訓練 YOLOv1 67

5.6 可視化檢測結果 74

5.7 使用 COCO 數據集 ( 選讀 ) 75

5.8 小結 76

第6章 YOLOv2 77

6.1 YOLOv2 詳解 77

6.1.1 引入批歸一化層 78

6.1.2 高分辨率主乾網絡 78

6.1.3 先驗框機制 79

6.1.4 全捲積網絡與先驗框機制 80

6.1.5 使用新的主乾網絡 81

6.1.6 基於 k 均值聚類算法的先驗框聚類 82

6.1.7 融合高分辨率特徵圖 84

6.1.8 多尺度訓練策略 85

6.2 搭建 YOLOv2 網絡 87

6.2.1 搭建 DarkNet-19 網絡 87

6.2.2 先驗框 91

6.2.3 搭建預測層 92

6.2.4 YOLOv2 的前向推理 92

6.3 基於 k 均值聚類算法的先驗框聚類 95

6.4 基於先驗框機制的正樣本製作方法 96

6.4.1 基於先驗框的正樣本匹配策略 96

6.4.2 正樣本匹配的代碼 97

6.5 損失函數 103

6.6 訓練 YOLOv2 網絡 105

6.7 可視化檢測結果與計算 mAP 105

6.8 使用 COCO 數據集(選讀) 106

6.9 小結 108

第7章 YOLOv3 110

7.1 YOLOv3 解讀 110

7.1.1 更好的主乾網絡 : DarkNet-53 111

7.1.2 多級檢測與特徵金字塔 112

7.1.3 修改損失函數 116

7.2 搭建 YOLOv3 網絡 118

7.2.1 搭建 DarkNet-53 網絡 118

7.2.2 搭建頸部網絡 121

7.2.3 搭建解耦檢測頭 123

7.2.4 多尺度的先驗框 125

7.2.5 YOLOv3 的前向推理 127

7.3 正樣本匹配策略 130

7.4 損失函數 133

7.5 數據預處理 133

7.5.1 保留長寬比的 resize 操作 133

7.5.2 馬賽克增強 136

7.5.3 混合增強 138

7.6 訓練 YOLOv3 140

7.7 測試 YOLOv3 140

7.8 小結 142

第8章 YOLOv4 143

8.1 YOLOv4 解讀 144

8.1.1 新的主乾網絡:CSPDarkNet-53 網絡 144

8.1.2 新的特徵金字塔網絡:PaFPN 146

8.1.3 新的數據增強:馬賽克增強 147

8.1.4 改進邊界框的解算公式 148

8.1.5 multi anchor 策略 149

8.1.6 改進邊界框的回歸損失函數 149

8.2 搭建 YOLOv4 網絡 150

8.2.1 搭建 CSPDarkNet-53 網絡 151

8.2.2 搭建基於 CSP 結構的 SPP 模塊 153

8.2.3 搭建 PaFPN 結構 155

8.3 製作訓練正樣本 157

8.4 測試 YOLOv4 159

8.5 小結 161

第3部分 最新的YOLO框架

第9章 YOLOX 164

9.1 解讀 YOLOX 166

9.1.1 baseline 的選擇:YOLOv3 166

9.1.2 訓練 baseline 模型 166

9.1.3 改進一:解耦檢測頭 167

9.1.4 改進二:更強大的數據增強 168

9.1.5 改進三:anchor-free 機制 169

9.1.6 改進四:多正樣本 169

9.1.7 改進五:SimOTA 169

9.2 搭建 YOLOX 網絡 173

9.2.1 搭建 CSPDarkNet-53 網絡 173

9.2.2 搭建 PaFPN 結構 175

9.3 YOLOX 的標簽匹配:SimOTA 178

9.4 YOLOX 風格的混合增強 182

9.5 測試 YOLOX 185

9.6 小結 187

第 10章 YOLOv7 188

10.1 YOLOv7 的主乾網絡 189

10.2 YOLOv7 的特徵金字塔網絡 195

10.3 測試 YOLOv7 199

10.4 小結 200

第4部分 其他流行的目標檢測框架

第 11章 DETR 204

11.1 解讀 DETR 205

11.1.1 主乾網絡 205

11.1.2 Transformer 的編碼器 208

11.1.3 Transformer 的解碼器 211

11.2 實現 DETR 217

11.2.1 DETR 網絡 217

11.2.2 數據預處理 221

11.2.3 正樣本匹配 : Hungarian Matcher 222

11.2.4 損失函數 225

11.3 測試 DETR 檢測器 228

11.4 小結 228

第 12章 YOLOF 230

12.1 YOLOF 解讀 232

12.1.1 YOLOF 的網絡結構 232

12.1.2 新的正樣本匹配規則:Uniform Matcher 234

12.1.3 與其他先進工作的對比 236

12.2 搭建 YOLOF 237

12.2.1 搭建主乾網絡 238

12.2.2 搭建 DilatedEncoder 模塊 241

12.2.3 搭建解碼器模塊 242

12.2.4 數據預處理 244

12.2.5 正樣本匹配 : Uniform Matcher 246

12.2.6 損失函數 248

12.3 訓練 YOLOF 檢測器 250

12.4 測試 YOLOF 檢測器 250

12.5 計算 mAP 251

12.6 小結 251

第 13章 FCOS 252

13.1 FCOS 解讀 253

13.1.1 FCOS 網絡結構 253

13.1.2 正樣本匹配策略 255

13.1.3 損失函數 258

13.2 搭建 FCOS 258

13.2.1 搭建主乾網絡 259

13.2.2 正樣本匹配 262

13.3 測試 FCOS 檢測器 266

13.4 小結 267

參考文獻 268

後記 272