目标检测
一、什么是目标检测
1、关于图像识别有四大任务:
分类
定位
检测
分割
目标检测是一个分类、回归问题的叠加。
2、目标检测的核心问题:
分类问题
定位问题
大小问题
形状问题
3、目标检测的算法分类
3.1 Tow Stage
任务流程:特征提取-->生成RP(预选框)-->分类定位回归
3.2One Stage
任务流程:特征提取-->分类定位回归
二、目标检测原理
目标检测分为两大系列——RCNN系列和YOLO系列,RCNN系列是基于区域检测的代表性算法,YOLO是基于区域提取的代表性算法,另外还有著名的SSD是基于前两个系列的改进。
1、候选区产生
区域生长合并主要由于检测图像中存在的物体具有局部区域相似性。
1.1滑窗法
1.2选择性搜索(SS)
图像中的物体可能存在的区域是有某些相似性或者连续性区域的。
2.数据表示
pc为置信概率
bx,by,bw,bh为边框坐标,c1,c2,c3属于某些类别的概率
3、效果评估
交并比
4、非极大值抑制
多个预测结果见存在重叠部分,保留交并比最大的、去掉非最大的预测结果
5、多尺度检测
5.1特征金字塔
指由不同大小的特征图构成的层次模型,主要用于在目标检测中实现多尺度检测。大的特征图适合检测较小的目标,小的特征图适合检测大的目标
特征图越大,特征图上每个像素对应的感受野越小,几何细节信息表征能力强。韩sp
5.2特征融合
add:对小的特征图进行上采样,上采样至与大特征图相同大小,进行按元素相加。
concat:按照指定的维度进行连接
三、目标检测模型
1.R-CNN系列
一张图片,选出2000个独立的候选区域
将每个候选区输入到预训练好的AlexNet中,提取一个固定长度的特征向量。共有八层,前五层为卷积层,后三层为全连接层。
对每个目标训练一SVM分类器,识别该区域是否包含目标。改造预训练好的Alexnet网络,将其最后的全连接层去掉,并将类别设置为21(20个类别,另外一个类别代表背景)
训练一个回归器,修正候选区域中的目标。
2.Fast R-CNN
整张图像提取
3.Faster R-CNN
在特征图上产生候选区 快速预测,提议网络(rpn)
把预测出来的候选区对应的特征图取出来放到分类模型中
利用Selective Search算法在输入图像中提取出候选区域,并把这些候选区域按照空间位置关系映射到最后的卷积特征层;
损失函数
对于一个图像的损失函数,是一个分类损失函数与回归损失函数的叠加。
RPN网络
RPN网络全称Region Proposal Network(区域提议网络),是专门用来从特征图生成候选区域的网络。 YOLOv1(2016)
核心思想是生成RoI+目标检测两阶段(two-stage)算法用一套网络的一阶段(one-stage)算法替代,直接在输出层回归bounding box的位置和所属类别。rol 特征提取时的感兴趣区或者候选框
直接当作回归问题(regression problem)来处理,将候选区和检测两个阶段合二为一 每个网格允许预测出2个边框
直接当作回归问题(regression problem)来处理,将候选区和检测两个阶段合二为一 每个网格允许预测出2个边框
YOLOv2(2016)
Batch Normalization(批量正则化) 能提升模型收敛速度,防止模型过拟合
High Resolution Classifier(高分辨率分类器)将不同尺寸的图像都输入进去训练
Convolutional With Anchor Boxes(带Anchor Boxes的卷积)YOLOv2去掉了YOLOv1中的全连接层 YOLOv2还去掉了一个池化层
Dimension Clusters(维度聚类)采用k-means聚类算法(k均值聚类算法)YOLOv2采用k-means聚类算法对训练集中的边界框做了聚类分析,选用boxes之间的IOU值作为聚类指标。综合考虑模型复杂度和召回率,最终选择5个聚类中心,得到5个先验框。
New Network(新的网络)采用YOLOv2,模型的mAP(均值平均精度)值没有显著提升,但计算量减少了。
直接定位预测(Direct location Prediction)网络中将得到的网络预测结果再输入sigmoid函数中,让输出结果介于0到1之间,模型更加稳定。
细粒度特征(Fine-Grained Features)先得到大的特征图,再得到小的特征图,进行融合之后再检测
多尺度训练(Multi-Scale Training)采用大小不同的图像进行训练
缺点:
YOLOv2检测准确率不够,比SSD稍差
不擅长检测小物体
不擅长检测小物体
YOLOv3(2018)
YOLOv3在之前Darknet-19的基础上引入了残差块,并进一步加深了网络,改进后的网络有53个卷积层,取名为Darknet-53,网络结构如下图所示(以256*256的输入为例):
两个值得一提的亮点,一个是使用残差模型,进一步加深了网络结构,防止梯度消失;另一个是使用FPN架构实现多尺度检测
改进
新网络结构:DarkNet-53;改进后有53个卷积层
用逻辑回归替代softmax作为分类器;
融合FPN(特征金字塔网络),实现多尺度检测
新网络结构:DarkNet-53;改进后有53个卷积层
用逻辑回归替代softmax作为分类器;
融合FPN(特征金字塔网络),实现多尺度检测
YOLOv3在基本特征提取器上添加几个卷积层,其中最后一个卷积层预测了一个三维张量——边界框,目标和类别预测
YOLOv4(2020.4)
YOLOv4(2020.4)
标准化的特点:均值为0 标准差为1 消除列于列差异过大的缺点
最常用的是 min-max标准化 和 z-score 标准化
YOLOv5(2020.6)
YOLOv5的优势:
- 使用PyTorch进行编写。
- 可以轻松编译成ONNX和CoreML。
- 速度极快,每秒140FPS。
- 精度超高,可以达到0.895mAP。
- 体积很小:27M。
- 集成了YOLOv3-spp和YOLOv4部分特性。
深度学习_目标检测_“YOLOv5”详解(持续更新)_【WeThinkIn】的主理人的博客-CSDN博客_yolov5