内容简介
本书主要介绍基于视觉的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 日
© 允许规范转载