本書主要介紹基于視覺的YOLO框架的技術(shù)原理和代碼實現(xiàn),并講解目標檢測領(lǐng)域中的諸多基礎(chǔ)概念和基本原理,在YOLO框架的基礎(chǔ)上介紹流行目標檢測框架。本書分為4個部分,共13章。第1部分介紹目標檢測領(lǐng)域的發(fā)展簡史、主流的目標檢測框架和該領(lǐng)域常用的數(shù)據(jù)集。第2部分詳細講解從YOLOv1到Y(jié)OLOv4這四代YOLO框架的網(wǎng)絡結(jié)構(gòu)、檢測原理和訓練策略,以及搭建和訓練的YOLO框架的代碼實現(xiàn)。第3部分介紹兩個較新的YOLO框架——YOLOX和YOLOv7,著重講解其設(shè)計理念、網(wǎng)絡結(jié)構(gòu)和檢測原理。第4部分介紹DETR、YOLOF和FCOS在內(nèi)的流行目標檢測框架和相應的代碼實現(xiàn)。本書側(cè)重目標檢測的基礎(chǔ)知識,包含豐富的實踐內(nèi)容,是目標檢測領(lǐng)域的入門書,適合對目標檢測領(lǐng)域感興趣的初學者、算法工程師、軟件工程師等人員學習和閱讀。
1. 全面:涵蓋6個常用目標檢測框架(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOX、YOLOv7)的發(fā)展狀況、技術(shù)原理和代碼實現(xiàn)。
2. 流行:涵蓋3個流行目標檢測框架(DETR、YOLOF 和 FCOS)的網(wǎng)絡結(jié)構(gòu)、技術(shù)原理和代碼實現(xiàn)。
3. 復現(xiàn):每個代碼實現(xiàn)章節(jié)均配備完整的YOLO項目代碼,幫助讀者輕松復現(xiàn)、優(yōu)化和調(diào)試項目代碼。
4. 豐富:附贈豐富的目標檢測項目代碼和全書彩圖文件,幫助讀者更直觀地理解YOLO目標檢測。
楊建華,哈爾濱工業(yè)大學在讀博士,主要研究方向為基于視覺的目標檢測與人體時空行為分析,長期耕耘于多個知乎專欄(知乎ID:Kissrabbit)。
李瑞峰,哈爾濱工業(yè)大學教授、機器人研究所副所長,中國人工智能學會智能機器人專業(yè)委員會秘書長,黑龍江省機器人學會理事長。
目 錄
第 1部分 背景知識
第 1章 目標檢測架構(gòu)淺析 2
1.1 目標檢測發(fā)展簡史 2
1.2 目標檢測網(wǎng)絡框架概述 5
1.3 目標檢測網(wǎng)絡框架淺析 5
1.3.1 主干網(wǎng)絡 5
1.3.2 頸部網(wǎng)絡 7
1.3.3 檢測頭 9
1.4 小結(jié) 10
第 2章 常用的數(shù)據(jù)集 11
2.1 PASCAL VOC 數(shù)據(jù)集 11
2.2 MS COCO 數(shù)據(jù)集 12
2.3 小結(jié) 14
第 2部分 學習YOLO框架
第3章 YOLOv1 16
3.1 YOLOv1 的網(wǎng)絡結(jié)構(gòu) 16
3.2 YOLOv1 的檢測原理 18
3.3 YOLOv1 的制作訓練正樣本的方法 21
3.3.1 邊界框的位置參數(shù) tx、ty、w、h 21
3.3.2 邊界框的置信度 23
3.3.3 類別置信度 26
3.4 YOLOv1 的損失函數(shù) 26
3.5 YOLOv1 的前向推理 27
3.6 小結(jié) 29
第4章 搭建YOLOv1網(wǎng)絡 30
4.1 改進 YOLOv1 30
4.1.1 改進主干網(wǎng)絡 31
4.1.2 添加一個頸部網(wǎng)絡 32
4.1.3 修改檢測頭 33
4.1.4 修改預測層 35
4.1.5 修改損失函數(shù) 37
4.2 搭建 YOLOv1 網(wǎng)絡 37
4.2.1 搭建主干網(wǎng)絡 39
4.2.2 搭建頸部網(wǎng)絡 41
4.2.3 搭建檢測頭 41
4.2.4 YOLOv1 前向推理 41
4.3 YOLOv1 的后處理 44
4.3.1 求解預測邊界框的坐標 44
4.3.2 后處理 46
4.4 小結(jié) 48
第5章 訓練YOLOv1網(wǎng)絡 49
5.1 讀取 VOC 數(shù)據(jù) 49
5.2 數(shù)據(jù)預處理 56
5.2.1 基礎(chǔ)變換 56
5.2.2 數(shù)據(jù)增強 59
5.3 制作訓練正樣本 61
5.4 計算訓練損失 64
5.5 開始訓練 YOLOv1 67
5.6 可視化檢測結(jié)果 74
5.7 使用 COCO 數(shù)據(jù)集 ( 選讀 ) 75
5.8 小結(jié) 76
第6章 YOLOv2 77
6.1 YOLOv2 詳解 77
6.1.1 引入批歸一化層 78
6.1.2 高分辨率主干網(wǎng)絡 78
6.1.3 先驗框機制 79
6.1.4 全卷積網(wǎng)絡與先驗框機制 80
6.1.5 使用新的主干網(wǎng)絡 81
6.1.6 基于 k 均值聚類算法的先驗框聚類 82
6.1.7 融合高分辨率特征圖 84
6.1.8 多尺度訓練策略 85
6.2 搭建 YOLOv2 網(wǎng)絡 87
6.2.1 搭建 DarkNet-19 網(wǎng)絡 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 損失函數(shù) 103
6.6 訓練 YOLOv2 網(wǎng)絡 105
6.7 可視化檢測結(jié)果與計算 mAP 105
6.8 使用 COCO 數(shù)據(jù)集(選讀) 106
6.9 小結(jié) 108
第7章 YOLOv3 110
7.1 YOLOv3 解讀 110
7.1.1 更好的主干網(wǎng)絡 : DarkNet-53 111
7.1.2 多級檢測與特征金字塔 112
7.1.3 修改損失函數(shù) 116
7.2 搭建 YOLOv3 網(wǎng)絡 118
7.2.1 搭建 DarkNet-53 網(wǎng)絡 118
7.2.2 搭建頸部網(wǎng)絡 121
7.2.3 搭建解耦檢測頭 123
7.2.4 多尺度的先驗框 125
7.2.5 YOLOv3 的前向推理 127
7.3 正樣本匹配策略 130
7.4 損失函數(shù) 133
7.5 數(shù)據(jù)預處理 133
7.5.1 保留長寬比的 resize 操作 133
7.5.2 馬賽克增強 136
7.5.3 混合增強 138
7.6 訓練 YOLOv3 140
7.7 測試 YOLOv3 140
7.8 小結(jié) 142
第8章 YOLOv4 143
8.1 YOLOv4 解讀 144
8.1.1 新的主干網(wǎng)絡:CSPDarkNet-53 網(wǎng)絡 144
8.1.2 新的特征金字塔網(wǎng)絡:PaFPN 146
8.1.3 新的數(shù)據(jù)增強:馬賽克增強 147
8.1.4 改進邊界框的解算公式 148
8.1.5 multi anchor 策略 149
8.1.6 改進邊界框的回歸損失函數(shù) 149
8.2 搭建 YOLOv4 網(wǎng)絡 150
8.2.1 搭建 CSPDarkNet-53 網(wǎng)絡 151
8.2.2 搭建基于 CSP 結(jié)構(gòu)的 SPP 模塊 153
8.2.3 搭建 PaFPN 結(jié)構(gòu) 155
8.3 制作訓練正樣本 157
8.4 測試 YOLOv4 159
8.5 小結(jié) 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 改進二:更強大的數(shù)據(jù)增強 168
9.1.5 改進三:anchor-free 機制 169
9.1.6 改進四:多正樣本 169
9.1.7 改進五:SimOTA 169
9.2 搭建 YOLOX 網(wǎng)絡 173
9.2.1 搭建 CSPDarkNet-53 網(wǎng)絡 173
9.2.2 搭建 PaFPN 結(jié)構(gòu) 175
9.3 YOLOX 的標簽匹配:SimOTA 178
9.4 YOLOX 風格的混合增強 182
9.5 測試 YOLOX 185
9.6 小結(jié) 187
第 10章 YOLOv7 188
10.1 YOLOv7 的主干網(wǎng)絡 189
10.2 YOLOv7 的特征金字塔網(wǎng)絡 195
10.3 測試 YOLOv7 199
10.4 小結(jié) 200
第4部分 其他流行的目標檢測框架
第 11章 DETR 204
11.1 解讀 DETR 205
11.1.1 主干網(wǎng)絡 205
11.1.2 Transformer 的編碼器 208
11.1.3 Transformer 的解碼器 211
11.2 實現(xiàn) DETR 217
11.2.1 DETR 網(wǎng)絡 217
11.2.2 數(shù)據(jù)預處理 221
11.2.3 正樣本匹配 : Hungarian Matcher 222
11.2.4 損失函數(shù) 225
11.3 測試 DETR 檢測器 228
11.4 小結(jié) 228
第 12章 YOLOF 230
12.1 YOLOF 解讀 232
12.1.1 YOLOF 的網(wǎng)絡結(jié)構(gòu) 232
12.1.2 新的正樣本匹配規(guī)則:Uniform Matcher 234
12.1.3 與其他先進工作的對比 236
12.2 搭建 YOLOF 237
12.2.1 搭建主干網(wǎng)絡 238
12.2.2 搭建 DilatedEncoder 模塊 241
12.2.3 搭建解碼器模塊 242
12.2.4 數(shù)據(jù)預處理 244
12.2.5 正樣本匹配 : Uniform Matcher 246
12.2.6 損失函數(shù) 248
12.3 訓練 YOLOF 檢測器 250
12.4 測試 YOLOF 檢測器 250
12.5 計算 mAP 251
12.6 小結(jié) 251
第 13章 FCOS 252
13.1 FCOS 解讀 253
13.1.1 FCOS 網(wǎng)絡結(jié)構(gòu) 253
13.1.2 正樣本匹配策略 255
13.1.3 損失函數(shù) 258
13.2 搭建 FCOS 258
13.2.1 搭建主干網(wǎng)絡 259
13.2.2 正樣本匹配 262
13.3 測試 FCOS 檢測器 266
13.4 小結(jié) 267
參考文獻 268
后記 272