目标检测

一、什么是目标检测

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个边框


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(特征金字塔网络),实现多尺度检测
YOLOv3在基本特征提取器上添加几个卷积层,其中最后一个卷积层预测了一个三维张量——边界框,目标和类别预测
YOLOv4(2020.4)

标准化的特点:均值为0 标准差为1 消除列于列差异过大的缺点
最常用的是 min-max标准化 和 z-score 标准化
YOLOv5(2020.6)

YOLOv5的优势:

  1. 使用PyTorch进行编写。
  2. 可以轻松编译成ONNX和CoreML。
  3. 速度极快,每秒140FPS。
  4. 精度超高,可以达到0.895mAP。
  5. 体积很小:27M。
  6. 集成了YOLOv3-spp和YOLOv4部分特性。
YOLOv5s网络是YOLOv5系列中深度最小,特征图的宽度最小的网络。后面的3种网络都是在此基础上不断加深,不断加宽。
深度学习_目标检测_“YOLOv5”详解(持续更新)_【WeThinkIn】的主理人的博客-CSDN博客_yolov5













全部评论

相关推荐

02-10 12:23
已编辑
新余学院 C++
采集想要offer:专业技能那里要一条一条的列出来吧,感觉你项目很厉害了,但是如果你不写技术栈面试官对你项目不太懂的话都没办法问你八股😂C++都是基架岗,都是一群9✌🏻在卷,我觉得你要是有时间学个go把MySQL和redis写上去找个开发岗吧
点赞 评论 收藏
分享
黑皮白袜臭脚体育生:简历条例统一按使用了什么技术实现了什么功能解决了问题或提升了什么性能指标来写会好些,如使用布隆过滤器实现了判断短链接是否存在,大大提升了查询速度
点赞 评论 收藏
分享
评论
1
12
分享

创作者周榜

更多
牛客网
牛客企业服务