0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于深度学习的目标检测算法

新机器视觉 来源:CSDN技术社区 作者:透视AI 2021-04-30 10:22 次阅读

整体框架

df9fcc58-a929-11eb-9728-12bb97331649.jpg

目标检测算法主要包括:【两阶段】目标检测算法、【多阶段】目标检测算法、【单阶段】目标检测算法

什么是两阶段目标检测算法,与单阶段目标检测有什么区别?

两阶段目标检测算法因需要进行两阶段的处理:1)候选区域的获取,2)候选区域分类和回归,也称为基于区域(Region-based)的方。与单阶段目标检测算法的区别:通过联合解码同时获取候选区域、类别

什么是多阶段目标检测算法?

【两阶段】和【多阶段】目标检测算法统称级联目标检测算法,【多阶段】目标检测算法通过多次重复进行步骤:1)候选区域的获取,2)候选区域分类和回归,反复修正候选区域

dfab6360-a929-11eb-9728-12bb97331649.jpg

根据是否属于锚框分为:

1、Anchor-Free:

CornerNet

FCOS

TTFNet

YOLOv1(注意)

2、Anchor-based:

RetinaNet

YOLOv2-v5

PP-YOLO

SSD

主要考虑问题

1、准确性 2、实时性 3、多尺度 4、标签方案 5、目标重叠 6、模型训练 7、重复编码 8、数据增强 9、样本不平衡

两阶段目标检测算法

RCNN

1、模型通过【选择性搜索算法】获取潜在的候选区域 2、截取原图每个候选区域并resize输入到模型中进行特征抽取 3、使用SVM进行分类,以及进行bounding box 回归

dfb5f5c8-a929-11eb-9728-12bb97331649.jpg

存在问题:

重复编码:由于候选区域存在重叠,模型需要重复进行重叠区域的特征图提取,计算冗余

模型训练:由于特征抽取模型和区域的分类回归模型分开训练,无法进行端到端的模型训练,训练过程需要提取每个包含重叠区域的候选区域特征并保存用于分类和回归训练

实时性差:重复编码导致实时性不佳,【选择性搜索算法】耗时严重

Fast-RCNN

考虑到RCNN的缺点,Fast-RCNN来了! 1、模型依旧通过【选择性搜索算法】获取潜在的候选区域

2、将原图通过特征抽取模型进行一次的共享特征图提取,避免了重复编码

3、在特征图中找到每一个候选区域对应的区域并截取【区域特征图】,ROI pooling层中将每个【区域特征图】池化到统一大小

4、分别进行softmax分类(使用softmax代替了RCNN里面的多个SVM分类器)和bbox回归

e009a9f2-a929-11eb-9728-12bb97331649.jpg

主要优点:

1、可以进行端到端模型训练 2、不需要存储中间特征向量用于SVM分类和回归模型训练 3、使用更高效的SPPnet特征提取网络

存在问题:

实时性差:选择性搜索获取候选区域耗时,主要通过贪婪算法合并低级特征超像素,单张图片耗时接近2s,且无法使用GPU加速

Faster R-CNN

使用RPN网络代替Fast RCNN使用的选择性搜索进行候选区域的提取,相当于Faster R-CNN=RPN+Fast RCNN,且RPN和Fast RCNN共享卷积层。

1、多尺度目标:通过RPN网络候选区域,并使用不同大小和长宽比的anchors来解决多尺度问题

2、通过计算anchors与真实框的交并比IOU,并通过阈值建立正负样本

3、样本不平衡:每批次随机采样256个anchors进行边框回归训练,并尽可能保证正负样本数相同,避免负样本过多导致的梯度统治问题

论文:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

e04b3d5e-a929-11eb-9728-12bb97331649.jpg

e0574734-a929-11eb-9728-12bb97331649.jpg

多阶段目标检测算法

Cascade R-CNN

通过分析Faster RCNN在目标候选区域的位置修正能力, 如下图基于单个检测器的可优化性但优化的程度有限,通过多次将预测区域作为候选区域进行修正,使得输出的预测区域与真实标签区域的IOU逐级递增

e060e19a-a929-11eb-9728-12bb97331649.png

主要优点:

1、准确性:碾压各种单双阶段目标检测算法,采用RoIAlign取代RoIPooling 2、多尺度:通过FPN网络集成多尺度特征图,利用归一化尺度偏差方法缓解不同尺度对Loss的影响程度 3、实时性:去除了Fater RCNN的全连接层,取而代之采用FCN网络,相比Fater RCNN,具有更少的模型参数和计算时间

主要不足:

e0961a0e-a929-11eb-9728-12bb97331649.jpg

单阶段目标检测算法

编码方式

1、基于中心坐标

方案1

通过计算IOU或者长宽比阈值筛选每个anchor位置对应的target,可能过滤比较极端的target,但缓解目标重叠情况下的编码重叠问题 通过对应anchor找到中心坐标位置(x,y)

方案2

通过iou最大值计算每个target对应的anchor位置,保证每个target至少对应一个,目标少的情况下但容易造成目标稀疏编码, 通过对应target找到中心坐标位置(x,y),YOLOv5中通过中心坐标结合四舍五入进行多中心坐标映射缓解目标稀疏问题 方案3 同时利用方案1和方案2,保证每个target至少对应一个anchor区域

YOLOv1

虽然是单阶段目标检测开山之作,但真正的鼻祖应该是Faster RCNN的RPN

e0ba6620-a929-11eb-9728-12bb97331649.png

主要优点:

1、快 2、采用全局特征进行推理,由于利用全局上下文信息,相比于滑动窗口和建议框方法,对背景的判断更准确 3、泛化性,训练好的模型在新的领域或者不期望的输入情况下依然具有较好的效果

主要不足:

1、准确性:与Faster RCNN相比,correcct反映了YOLOv1准确率较低,background反映了召回率较高,但总体性能F1较低,虽然loss采用长宽平方根进行回归,试图降低大目标对loss的主导地位,但小目标的微小偏差对IOU的影响更严重,导致小目标定位不准

e0c34358-a929-11eb-9728-12bb97331649.jpg

2、目标重叠:虽然通过每个S*S的网格点设置了2个预测框用于回归训练,但是每个网格点设置了一种类别,无法解决不同类别目标重叠率较大,导致映射到相同网格点上的问题

3、多尺度:由于模型只是简单使用下采样获得的粗糙特征,很难将其推广到具有新的或不同寻常的宽高比或配置的对象

4、实时性:虽然与Faster RCNN相比,速度很快,但还可以更快,主要是由于v1中使用了全连接网络,不是全卷积网络

全连接层参数=7x7x1024x4096+4096X7x7x30=2x10^8

e0f959ca-a929-11eb-9728-12bb97331649.jpg

SSD

通过使用FCN全卷积神经网络,并利用不同尺度的特征图进行目标检测,在速度和精度都得到了极大提升

主要优点

1、实时性:相比YOlOv1更快,因为去除了全连接层

2、标签方案:通过预测类别置信度和相对固定尺度集合的先验框的偏差,能够有效均衡不同尺度对loss的影响程度

3、多尺度:通过使用多个特征图和对应不同尺度的锚框进行多尺度目标预测

4、数据增强:通过随机裁剪的方式进行数据增强提高模型的鲁棒性

5、样本不平衡:通过困难样本挖掘,采用负样本中置信度最高的先验框进行训练,并设置正负样本比例为1:3,使得模型训练收敛更快

e1061bb0-a929-11eb-9728-12bb97331649.jpg

主要不足

1、通过人工先验设置的不同尺度的锚框无法适应真实的目标框的尺度分布 2、使用的多个特征图由于高分辨率的特征图不能有效地结合高层特征

YOLOv2

针对YOLOv1在解决多尺度和实时性方面的不足,提出了YOLOv2

e111aa2a-a929-11eb-9728-12bb97331649.jpg

主要优点:

1、更好 1)Batch Normalization:使得性能极大提升;

2)Higher Resolution Classifier:使预训练分类任务分辨率与目标检测的分辨率一致;

3)Convolutional With Anchor Boxes:使用全卷积神经网络预测偏差,而非具体的坐标,模型更容易收敛;

4)Dimension Clusters:通过聚类算法设置锚框的尺度,获得更好的先验框,缓解了不同尺度对loss的影响变化;

5)Fine-Grained Features:通过简单相加融合了低层的图像特征;

6)Multi-Scale Training:通过使用全卷积网络使得模型支持多种尺度图像的输入并轮流进行训练

e1256e16-a929-11eb-9728-12bb97331649.jpg

2、更快,构建Darknet-19代替VGG-16作为backbone具有更好的性能

e16bca0a-a929-11eb-9728-12bb97331649.jpg

主要不足

1、多尺度:在模型维度只是简单融合底层特征,在输入维度进行多尺度图像分辨率的输入训练,不能克服模型本身感受野导致的多尺度误差

RetinaNet

论文:Focal Loss for Dense Object Detection

主要优点

1、多尺度:借鉴FPN网络通过自下而上、自上而下的特征提取网络,并通过无代价的横向连接构建增强特征提取网络,利用不同尺度的特征图检测不同大小的目标,利用了底层高分率的特征图有效的提高了模型对小尺度目标的检测精度 2、样本不平衡:引入Focal Loss用于候选框的【类别预测】,克服正负样本不平衡的影响及加大困难样本的权重

主要不足

1、实时性:网络使用ResNet-101作为主干特征提取网络,检测效率略微不足

e1bc0e52-a929-11eb-9728-12bb97331649.jpg

YOLOv3

论文:YOLOv3: An Incremental Improvement

主要优点

1、实时性:相比RetinaNet,YOLOv3通过牺牲检测精度,使用Darknet主干特征提取网络而不是Resnet101,从而获取更快的检测速度

2、多尺度:相比于YOLOv1-v2,与RetinaNet采用相同的FPN网络作为增强特征提取网络得到更高的检测精度

3、目标重叠:通过使用逻辑回归和二分类交叉熵损失函数进行类别预测,将每个候选框进行多标签分类,解决单个检测框可能同时包含多个目标的可能

主要不足

1、准确率:主要因为Darknet的特征提取不够强,未进行精细化结构模型设计

e1fdf90c-a929-11eb-9728-12bb97331649.jpg

e20a3c44-a929-11eb-9728-12bb97331649.jpg

YOLOv4

论文:YOLOv4: Optimal Speed and Accuracy of Object Detection 鉴于YOLOv3的缺点,YOLOv5进行了Darknet53主干特征提取网络等一系列改进

主要优点

1、实时性:借鉴CSPNet网络结构将Darknet53改进为CSPDarknet53使模型参数和计算时间更短

e242d34c-a929-11eb-9728-12bb97331649.jpg

2、多尺度:颈部分别引入PAN和SPP网络结构作为增强特征提取网络,能够有效多尺度特征,相比于引入FPN网络准确度更高

3、数据增强:引入Mosaic数据增强,在使用BN的时候可以有效降低batch_size的影响

4、模型训练,采用IOU:GIoU,DIoU,CIoU作为目标框的回归,与YOLOv3使用的平方差损失相比具有更高的检测精度

e26bb7b2-a929-11eb-9728-12bb97331649.png

e2760f0a-a929-11eb-9728-12bb97331649.jpg

YOLOv5

为了进一步提升YOLOv4的检测速度,YOLOv5采用了更轻量的网络结构

主要优点

1、多尺度:使用FPN增强特征提取网络代替PAN,使模型更简单,速度更快 2、目标重叠:使用四舍五入的方法进行临近位置查找,使目标映射到周围的多个中心网格点

主要不足

1、通过长宽比筛选并过滤了大小和长宽比较极端的真实目标框,而这些恰恰在真实检测任务极为重要,和重点解决的检测问题

e27fcb1c-a929-11eb-9728-12bb97331649.jpg

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 检测器
    +关注

    关注

    1

    文章

    809

    浏览量

    47279
  • SVM
    SVM
    +关注

    关注

    0

    文章

    153

    浏览量

    32158
  • 目标检测
    +关注

    关注

    0

    文章

    185

    浏览量

    15446
  • 卷积神经网络

    关注

    4

    文章

    283

    浏览量

    11709

原文标题:基于深度学习的目标检测算法面试必备(RCNN~YOLOv5)

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    深度学习在植物病害目标检测研究进展

    关注。 中国农业科学院农业信息研究所/农业农村部农业大数据重点实验室联手甘肃农业大学机电工程学院,组成科研团队,针对深度学习在植物叶部病害检测与识别展开研究, 植物病害目标
    的头像 发表于 11-20 17:19 275次阅读

    智慧矿山ai算法系列解析 堵料检测算法功能优势

    智慧矿山AI算法系列中的堵料检测算法的功能优势,了解其重要性和带来的价值
    的头像 发表于 09-28 18:48 344次阅读
    智慧矿山ai<b class='flag-5'>算法</b>系列解析 堵料<b class='flag-5'>检测算法</b>功能优势

    瑞萨电子深度学习算法在缺陷检测领域的应用

    浪费大量的人力成本。因此,越来越多的工程师开始将深度学习算法引入缺陷检测领域,因为深度学习在特征
    的头像 发表于 09-22 12:19 485次阅读
    瑞萨电子<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>算法</b>在缺陷<b class='flag-5'>检测</b>领域的应用

    深度学习框架和深度学习算法教程

    深度学习框架和深度学习算法教程 深度学习是机器
    的头像 发表于 08-17 16:11 695次阅读

    深度学习算法库框架学习

    深度学习算法库框架学习 深度学习是一种非常强大的机器学习
    的头像 发表于 08-17 16:11 428次阅读

    什么是深度学习算法深度学习算法的应用

    什么是深度学习算法深度学习算法的应用 深度
    的头像 发表于 08-17 16:03 1434次阅读

    深度学习算法工程师是做什么

    深度学习算法工程师是做什么 深度学习算法工程师是一种高级技术人才,是数据科学中创新的推动者,也是
    的头像 发表于 08-17 16:03 789次阅读

    深度学习算法简介 深度学习算法是什么 深度学习算法有哪些

    深度学习算法简介 深度学习算法是什么?深度
    的头像 发表于 08-17 16:02 6641次阅读

    基于Transformer的目标检测算法

    掌握基于Transformer的目标检测算法的思路和创新点,一些Transformer论文涉及的新概念比较多,话术没有那么通俗易懂,读完论文仍然不理解算法的细节部分。
    发表于 08-16 10:51 421次阅读
    基于Transformer的<b class='flag-5'>目标</b><b class='flag-5'>检测算法</b>

    基于强化学习目标检测算法案例

    摘要:基于强化学习目标检测算法检测过程中通常采用预定义搜索行为,其产生的候选区域形状和尺寸变化单一,导致目标
    发表于 07-19 14:35 0次下载

    无Anchor的目标检测算法边框回归策略

    导读 本文主要讲述:1.无Anchor的目标检测算法:YOLOv1,CenterNet,CornerNet的边框回归策略;2.有Anchor的目标检测算法:SSD,YOLOv2,Fas
    的头像 发表于 07-17 11:17 591次阅读
    无Anchor的<b class='flag-5'>目标</b><b class='flag-5'>检测算法</b>边框回归策略

    基于深度学习模型融合的产品工艺缺陷检测算法简述

     基于深度学习模型融合的工业产品(零部件)工艺缺陷检测算法简述 1、序言 随着信息与智能化社会的到来,工业产品生产逐渐走向智能化生产,极大地提高了生产力。但是随着工人大规模解放,产品或零部件的缺陷
    的头像 发表于 07-06 14:49 360次阅读
    基于<b class='flag-5'>深度</b><b class='flag-5'>学习</b>模型融合的产品工艺缺陷<b class='flag-5'>检测算法</b>简述

    如何学习基于Tansformer的目标检测算法

    ,也是近年来理论研究的热点。作为计算机视觉中的基础算法目标检测对后续的人脸识别、目标跟踪、实例分割等任务都起着至关重要的作用。 基于深度
    的头像 发表于 06-25 10:37 387次阅读
    如何<b class='flag-5'>学习</b>基于Tansformer的<b class='flag-5'>目标</b><b class='flag-5'>检测算法</b>

    基于 FPGA 的目标检测网络加速电路设计

    第一部分 设计概述 /Design Introduction目前主流的目标检测算法都是用CNN来提取数据特征,而CNN的计算复杂度比传统算 法高出很多。同时随着CNN不断提高的精度,其网络深度与参数
    发表于 06-20 19:45

    快速入门自动驾驶中目标检测算法

    现在目标检测算法总结 1. 目标检测算法在机动车和行人检测识别上应用较多,在非机动车上应用较少 2. 对于
    发表于 06-06 09:40 0次下载
    快速入门自动驾驶中<b class='flag-5'>目标</b><b class='flag-5'>检测算法</b>