《YOLO目标檢測》封面

内容簡介

本書主要介紹基于視覺的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.1PASCALVOC數据集……………………………………………………………11
2.2MSCOCO數据集…………………………………………………………………12
2.3小結…………………………………………………………………………………14
第2部分學習YOLO框架
第3章YOLOv1…………………………………………………………………16
3.1YOLOv1的網絡結構………………………………………………………………16
3.2YOLOv1的檢測原理………………………………………………………………18
3.3YOLOv1的制作訓練正樣本的方法………………………………………………21
3.3.1邊界框的位置參數tx、ty、w、h…………………………………………21
3.3.2邊界框的置信度…………………………………………………………23
3.3.3類别置信度………………………………………………………………26
3.4YOLOv1的損失函數………………………………………………………………26
3.5YOLOv1的前向推理………………………………………………………………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.4YOLOv1前向推理………………………………………………………41
4.3YOLOv1的后處理…………………………………………………………………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.1YOLOv2詳解………………………………………………………………………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.4YOLOv2的前向推理……………………………………………………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.1YOLOv3解讀………………………………………………………………………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.5YOLOv3的前向推理……………………………………………………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.1YOLOv4解讀………………………………………………………………………144
8.1.1新的主干網絡:CSPDarkNet-53網絡……………………………………144
8.1.2新的特征金字塔網絡:PaFPN……………………………………………146
8.1.3新的數据增強:馬賽克增強……………………………………………147
8.1.4改進邊界框的解算公式…………………………………………………148
8.1.5multianchor策略…………………………………………………………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.1baseline的選擇: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.3YOLOX的标簽匹配:SimOTA……………………………………………………178
9.4YOLOX風格的混合增強…………………………………………………………182
9.5測試YOLOX………………………………………………………………………185
9.6小結…………………………………………………………………………………187
第10章YOLOv7……………………………………………………………188
10.1YOLOv7的主干網絡……………………………………………………………189
10.2YOLOv7的特征金字塔網絡……………………………………………………195
10.3測試YOLOv7……………………………………………………………………199
10.4小結………………………………………………………………………………200
第4部分其他流行的目标檢測框架
第11章DETR………………………………………………………………204
11.1解讀DETR………………………………………………………………………205
11.1.1主干網絡…………………………………………………………………205
11.1.2Transformer的編碼器……………………………………………………208
11.1.3Transformer的解碼器……………………………………………………211
11.2實現DETR………………………………………………………………………217
11.2.1DETR網絡………………………………………………………………217
11.2.2數据預處理………………………………………………………………221
11.2.3正樣本匹配:HungarianMatcher………………………………………222
11.2.4損失函數…………………………………………………………………225
11.3測試DETR檢測器………………………………………………………………228
11.4小結………………………………………………………………………………228
第12章YOLOF……………………………………………………………230
12.1YOLOF解讀………………………………………………………………………232
12.1.1YOLOF的網絡結構……………………………………………………232
12.1.2新的正樣本匹配規則:UniformMatcher………………………………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正樣本匹配:UniformMatcher…………………………………………246
12.2.6損失函數…………………………………………………………………248
12.3訓練YOLOF檢測器……………………………………………………………250
12.4測試YOLOF檢測器……………………………………………………………250
12.5計算mAP…………………………………………………………………………251
12.6小結………………………………………………………………………………251
第13章FCOS………………………………………………………………252
13.1FCOS解讀………………………………………………………………………253
13.1.1FCOS網絡結構…………………………………………………………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
······

最后修改:2025 年 03 月 02 日