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

    文章

    860

    浏览量

    47651
  • SVM
    SVM
    +关注

    关注

    0

    文章

    154

    浏览量

    32389
  • 目标检测
    +关注

    关注

    0

    文章

    204

    浏览量

    15589
  • 卷积神经网络

    关注

    4

    文章

    366

    浏览量

    11847

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

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

收藏 人收藏

    评论

    相关推荐

    深度识别算法包括哪些内容

    :CNN是深度学习中处理图像和视频等具有网格结构数据的主要算法。它通过卷积层、池化层和全连接层等组件,实现对图像特征的自动提取和识别。 应用领域 :CNN在图像识别、目标
    的头像 发表于 09-10 15:28 303次阅读

    慧视小目标识别算法 解决目标检测中的老大难问题

    随着深度学习和人工智能技术的兴起与技术成熟,一大批如FasterR-CNN、RetinaNet、YOLO等可以在工业界使用的目标检测算法已逐步成熟并进入实际应用,大多数场景下的
    的头像 发表于 07-17 08:29 393次阅读
    慧视小<b class='flag-5'>目标</b>识别<b class='flag-5'>算法</b>   解决<b class='flag-5'>目标</b><b class='flag-5'>检测</b>中的老大难问题

    深度学习算法在嵌入式平台上的部署

    随着人工智能技术的飞速发展,深度学习算法在各个领域的应用日益广泛。然而,将深度学习算法部署到资源
    的头像 发表于 07-15 10:03 1173次阅读

    利用Matlab函数实现深度学习算法

    在Matlab中实现深度学习算法是一个复杂但强大的过程,可以应用于各种领域,如图像识别、自然语言处理、时间序列预测等。这里,我将概述一个基本的流程,包括环境设置、数据准备、模型设计、训练过程、以及测试和评估,并提供一个基于Mat
    的头像 发表于 07-14 14:21 1890次阅读

    深度学习在工业机器视觉检测中的应用

    识别等任务。传统的机器视觉检测方法通常依赖于手工设计的特征和固定的算法,难以应对复杂多变的工业环境。而深度学习的引入,为工业机器视觉检测带来
    的头像 发表于 07-08 10:40 970次阅读

    基于深度学习的小目标检测

    在计算机视觉领域,目标检测一直是研究的热点和难点之一。特别是在小目标检测方面,由于小目标在图像中所占比例小、特征不明显,使得
    的头像 发表于 07-04 17:25 739次阅读

    口罩佩戴检测算法

    口罩佩戴检测算法基于YOLOv5在图像识别检测领域的优异性能,本文研究基于基于YOLOv5的口罩佩自动戴检测方法。首先从网络和真实生活中中寻找并采集不同场景人群口罩佩戴的图片约500张并自建数据集
    的头像 发表于 07-01 20:20 283次阅读
    口罩佩戴<b class='flag-5'>检测算法</b>

    人员跌倒识别检测算法

    人员跌倒识别检测算法是基于视频的检测方法,通过对目标人体监测,当目标人体出现突然倒地行为时,自动监测并触发报警。人员跌倒识别检测算法基于计算
    的头像 发表于 06-30 11:47 424次阅读
    人员跌倒识别<b class='flag-5'>检测算法</b>

    安全帽佩戴检测算法

    安全帽佩戴监控是铁路工程施工人员安全管理中的重点和难点,它对检测算法的准确 率与检测速度都有较高的要求。本文提出一种基于神经网络架构搜索的安全帽佩戴检测算法 NAS-YOLO。该神经网络架构由上
    的头像 发表于 06-26 22:22 359次阅读
    安全帽佩戴<b class='flag-5'>检测算法</b>

    深入了解目标检测深度学习算法的技术细节

    本文将讨论目标检测的基本方法(穷尽搜索、R-CNN、FastR-CNN和FasterR-CNN),并尝试理解每个模型的技术细节。为了让经验水平各不相同的读者都能够理解,文章不会使用任何公式来进行讲解
    的头像 发表于 04-30 08:27 316次阅读
    深入了解<b class='flag-5'>目标</b><b class='flag-5'>检测深度</b><b class='flag-5'>学习</b><b class='flag-5'>算法</b>的技术细节

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法
    发表于 04-23 17:18 1237次阅读
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>学习</b>下的语义SLAM

    深度学习检测目标常用方法

    深度学习的效果在某种意义上是靠大量数据喂出来的,小目标检测的性能同样也可以通过增加训练集中小目标样本的种类和数量来提升。
    发表于 03-18 09:57 674次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>检测</b>小<b class='flag-5'>目标</b>常用方法

    基于深度学习的芯片缺陷检测梳理分析

    虽然表面缺陷检测技术已经不断从学术研究走向成熟的工业应用,但是依然有一些需要解决的问题。基于以上分析可以发现,由于芯片表面缺陷的独特性质,通用目标检测算法不适合直接应用于芯片表面缺陷检测
    发表于 02-25 14:30 1271次阅读
    基于<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的芯片缺陷<b class='flag-5'>检测</b>梳理分析

    在ELF 1 开发板上实现读取摄像头视频进行目标检测

    当前,将AI或深度学习算法(如分类、目标检测和轨迹追踪)部署到嵌入式设备,进而实现边缘计算,正成为轻量级
    的头像 发表于 01-24 10:38 654次阅读
    在ELF 1 开发板上实现读取摄像头视频进行<b class='flag-5'>目标</b><b class='flag-5'>检测</b>

    目前主流的深度学习算法模型和应用案例

    深度学习在科学计算中获得了广泛的普及,其算法被广泛用于解决复杂问题的行业。所有深度学习算法都使用
    的头像 发表于 01-03 10:28 1754次阅读
    目前主流的<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>算法</b>模型和应用案例