机器学习知识经验分享之三:基于卷积神经网络的经典目标检测算法

article/2025/8/24 13:23:37

文章目录

  • 前言
  • 一、一阶段目标检测算法
    • 1.YOLO系列算法
    • 2.SSD检测算法
    • 3. RetinaNet检测算法
  • 二、两阶段目标检测算法
    • 1.Faster R-CNN检测算法
    • 2.Mask R-CNN检测算法
    • 3.Cascade R-CNN检测算法
  • 总结


前言

本系列文章将对机器学习知识进行分享总结。便于大家从理论层面了解人工智能基础原理,从而更好的运用算法发论文写作以及实际应用。关注即免费获取大量人工智能学习资料。


目前,深度学习被视为未来技术的趋势,并且在目标检测中起着重要的作用,新兴的基于卷积神经网络的目标检测算法可以粗略地分为两类。一种是一阶段的目标检测算法,可以在没有提案的情况下执行目标检测,例如YOLO v1-v3,单发多框检测器(Single-Shot Mulibox Detector, SSD)。另一个是两阶段的目标检测算法,它生成提案,然后对这些提案进行预测,例如R-CNN, Fast R-CNN, Faster R-CNN。

一、一阶段目标检测算法

1.YOLO系列算法

Redmon等人提出了YOLO算法,将目标检测问题转换为定位目标框和计算类别概率的回归问题。YOLO将目标检测视为回归问题,并将整个图像在空间上划分为固定数量的网格单元。每个单元均被视为一个提案来检测一个或多个目标。在原始实现中,每个单元都被认为包含(最多)两个对象的中心。对于每个单元格,进行的预测包括以下信息:该位置是否有目标,边界框坐标和大小(宽度和高度)以及目标的类别。整个框架是一个单一的网络,它省略了可以以端到端的方式进行优化的提案生成步骤。YOLO算法采用全卷积网络来提取特征,然后使用全连接层来得到预测值。网络结构参考GoogleNet模型,包含24个卷积层和2个全连接层。接着作者在YOLO的基础上,引入anchor, 利用k-means算法聚类来获得先验框,提出了YOLOv2,其中采用新设计的Darknet-19来作为骨干网络提取特征;接着在YOLOv2的基础上提出YOLOv3改进算法,它借鉴ResNet残差网络结构,使得网络深度更深,得到新的骨干网络Darknet-53,共53个卷积层;借鉴FPN特征金字塔,在网络后面三个台阶处,使用FPN结构,小尺寸上采样结合大尺寸特征图,以此来提升对小目标检测的性能。
在这里插入图片描述

2.SSD检测算法

SSD检测器[65]是由Liu等人提出的另外一种One-Stage检测器网络,如图2-10
所示。其网络使用多尺度特征图来针对不同尺度的目标。SSD同样采用YOLO中
的回归思想,直接对生成图像中目标的位置和类别做预测。在网络设计上,该方
法使用卷积层来得到预测值,取代了YOLO网络中的全连接网络。类似Faster
R-CNN中anchors实现的思想,对于每幅特征图划分为固定数目个特征图单元
(Feature Map Cells),其中每个特征图单元中生成多个固定尺寸的默认图(Default
Map),之后依据每个默认图在特征图单元中的特征信息来预测边框偏置(Offset)
以及图像分类预测值。通过网络结构设计,该网络抛去了Region Proposal部分,
从而实现了One-Stage检测,提高了检测速度,同时保持了检测器较优的检测精度。
在这里插入图片描述

3. RetinaNet检测算法

RetinaNet属于深度学习中的一阶段目标检测器,它可以看做是由 FPN和Focal Loss 组成的。一阶段检测器由于不生成提案来过滤简单的负样本,因此前景和背景之间的类别不平衡导致一阶段检测器进行分类的精度不高。Lin等人提出了一种一阶段检测器RetinaNet,它以更灵活的方式解决了类不平衡问题。RetinaNet的结构表示如图所示。RetinaNet使用聚焦损失(Focal Loss)对简单的分类样本赋予更小的权值,而对不易分类的样本赋予更大的权值来解决该问题。此外,它还使用特征金字塔网络来检测不同层级的特征图上的多尺度目标。 通过对类别样本不平衡问题的解决,RetinaNet获得了速度-精度更优的平衡,既拥有一阶段网络检测速度的优势,也获得了接近两阶段网络的检测精度。
在这里插入图片描述

二、两阶段目标检测算法

1.Faster R-CNN检测算法

2014年,Girshick提出的R-CNN方法首次将卷积神经网络应用于目标检测中,相比传统的目标检测方法取得了突破性的进展,推动了深度学习在目标检测上的研究。R-CNN算法分为四个步骤:1)采用Selective Search算法在图像上提取一千至两千个候选区域;2)由于全连接层的输入必须为固定尺寸的特征图,所以利用Selective Search算法提取出的候选区域需要将候选区域图片压缩成固定尺寸,再将提取出的候选区域作为卷积神经网络(CNN)的输入后输出区域的特征输入全连接层;3)使用SVM分类器对卷积神经网络所提取的候选区域的特征进行分类,根据该区域的特征判断是否存在目标以及所属的类别;4)使用非极大值抑制对窗口具体位置进行回归,修正选框位置。但是由于R-CNN对候选区域的特征提取与分类是对每一个候选区域生成图片所进行的,这样极大地减慢了目标检测的速度。而SSPNet[70]的出现解决了这个缺陷。SPPNet使用空间金字塔池化(Spatial Pyramid Pooling)将特征图变成固定的长度,然后将特征和原始图像中的候选区域建立映射关系,那么在对图像提取特征之后能通过该映射关系找出图像候选区域相对应的特征。不仅如此,它通过多个不同尺寸的池化层将特征变成相同的维度,从而将得到的固定长度的特征作为全连接层的输入。在此基础上,Girshick结合R-CNN与SSPNet的优点,提出了Fast R-CNN。
Fast R-CNN采用RoI pooling层使每个建议窗口生成固定尺寸的特征图。不仅如此,Fast R-CNN采用Softmax层代替SVM作为分类器对候选区进行判断,所以特征提取与分类器可以分别进行训练,提高了检测的速度与精度。 Ren等人对Fast R-CNN进一步改进,并提出了Faster R-CNN[68]。在Fast RCNN中,仍旧采用Selective Search方法生成大量的候选窗口,这类方法不仅缺乏检测的精度,更影响了检测的速度。而Faster RCNN中采用RPN结构生成候选窗口,同时采用anchor的机制来生成多尺度的候选窗口以适应对不同大小目标的检测。至此,Faster RCNN将目标检测过程中的候选区域产生、特征提取等过程都交由卷积神经网络完成,大大增强了检测的精度与提高了检测速度,Faster RCNN具体结构如图所示。
在这里插入图片描述

2.Mask R-CNN检测算法

Mask R-CNN是对Faster R-CNN的扩展,主要用于目标检测任务和实例分割任务,如今它已经成为实例分割任务的基线。Mask R-CNN具体结构如图所示,它根据提案并行预测边界框和分割蒙版。 Mask R-CNN在原有的分类分支和边界框分支上并行地增加了一个掩码分支。掩码分支是一个小型全卷积网络(FCN)并被应用于每个感兴趣区域(RoI),以像素到像素的方式预测实例掩码。具体来说,掩码分支通过四个卷积层和一个反卷积层从每个提案中生成小特征图。另外,Mask R-CNN将RoI Align替换原有的RoI Pooling,解决特征图和原始图像上的RoI不对准问题。
在这里插入图片描述

3.Cascade R-CNN检测算法

2018年蔡兆伟等人基于Faster R-CNN提出了新的方法Cascade R-CNN,并取得了可喜的结果,如图所示。Cascade R-CNN的成功可以归结为两个关键方面:(1)逐步完善预测;(2)训练分布的自适应处理。Cascade R-CNN通过多阈值级联机构,解决了传统单个网络设置阈值时对于高阈值正样本数量不够以及低阈值对于高IoU区域修正效果降低之间的矛盾。Cascade R-CNN算法的前半部分同Faster RCNN,是将一张原始的输入图像经过一个主干网络(卷积层),之后由RPN通过映射关系,生成一系列的可能存在目标的候选窗口,这时先将这些候选区域经过阈值为0.5的检测网络H1(此时正样本数量足够,可以保证模型不会过拟合,保障了准确率),将回归器修正后的新的候选区域重采样后再送入阈值为0.6的检测网络H2,之后再将H2(阈值为0.6的检测子网络)输出的新的区域位置送入阈值为0.7的检测网络H3进行修正,最
后H3得到的类别以及位置就是最终整个网络的输出结果,从而大大提高了位置的
准确性。
在这里插入图片描述

总结

本文介绍了基于卷积神经网络的经典目标检测算法,后续将持续进行分享更新机器学习相关知识。关注即免费获取大量人工智能学习资料。

参考文献:苏 浩. 基于深度学习的遥感图像目标检测方法[D].本文仅用于学术分享,侵权联系删除。


http://chatgpt.dhexx.cn/article/3cdmTLW8.shtml

相关文章

轻量型目标检测算法一次看个够

序言 不知道大家有没有发现,近两年目标检测算法发展非常的快,恍惚一看,单阶段算法几乎统一了目标检测,各种高性能的目标检测算法层出不穷,印象中是在YOLOv4出来后,基于YOLO的改进变得一发不可收拾&#xf…

万字长文概述单目3D目标检测算法

一,理论基础-相机与图像 相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模型进行描述,这个模型有很多种,其中最简单的称为针孔相机模型。相机的成像过…

yolov5 目标检测算法

简介: 目标检测在生活中应用领域非常广泛,列如:道路违规抓拍、未戴口罩识别、工地未佩戴安全帽抓拍、厨房出现老鼠检测。 还可以用在游戏辅助外挂。以枪战为例,在游戏过程中时刻检测有没有人头出现。当检测到目标人头,…

【快速入门】YOLOv5目标检测算法

文章目录 一、YOLOv5简介二、网络结构1、Input2、Backbone3、Neck4、Head 三、改进方法1、自适应锚框计算2、自适应灰度填充 四、性能表现五、YOLOv5入门实战 一、YOLOv5简介 YOLOv5是一个在COCO数据集上预训练的物体检测架构和模型系列,它代表了Ultralytics对未来…

目标检测算法汇集介绍

目标检测算法 目标检测概念 目标检测这里阐述两个应用场景,1 为物体位置检测,2 为物体关键点检测。 1 物体位置检测 相比与图片分类,目标检测算法结果要求不仅识别出图片中的物理类别并且输出物体的位置参数。 物体的位置通过bounding bo…

YOLOv3目标检测算法——通俗易懂的解析

目录 YOLOv3目标检测算法前沿一.YOLOv3二.损失函数 YOLOv3目标检测算法 前沿 前两篇文章我们讲了下关于YOLOv1和YOLOv2的原理,有不懂的小伙伴可以回到前面再看看: YOLOv1目标检测算法——通俗易懂的解析YOLOv2目标检测算法——通俗易懂的解析 作者出于…

单阶段目标检测算法之YOLOv1详解

官方网站C语言版本:https://pjreddie.com/darknet/yolov1/ tensorflow版本的代码下载: https://github.com/hizhangp/yolo_tensorflow 论文: http://arxiv.org/abs/1506.02640 目录 一、YOLO介绍 二、YOLOv1的结构 三、YOLOV1原理 (一…

yolo-目标检测算法简介

一 简单概念 机器视觉的四大任务 分类-Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标. 检测-Detection:解决“是什么?在哪里?”的问题,即定位出…

目标检测算法发展历程

这里的图片是从b站同济子豪兄的【精读AI论文】 R-CNN深度学习目标检测算法 处截图的, 在这算是个记录吧,同时立个小小的flag,尽量在硕一结束前都搞明白是干啥的吧(希望能坚持住 :) 在这也小推一下子豪兄&a…

YOLOv5目标检测算法——通俗易懂的解析

目录 YOLOv5目标检测算法前沿一.网络结构1.1.Backbone1.2.Neck1.3.Head二.数据增强2.1.Mosaic2.2.Copy paste2.3.Random affine2.4.Mixup2.5.Albumentation2.6.Augment HSV2.7.Random horizontal flip 三.训练策略3.1.Multi-scale training3.2.Auto anchor3.3.Warmup and Cosin…

目标检测算法(YOLOv3)

目标检测算法(YOLOv3) YOLOv3在YOLOv2的基础上,改良了网络的主干,利用多尺度特征图进行检测,改进了多个独立的Logistic regression分类器来取代softmax来预测类别分类. 论文题目:YOLOv3: An Incremental Improvement 主干网络 YOLOv3提出了新的主干网络: Darknet…

最新目标检测算法回顾2022笔记

目标检测算法回顾2022笔记[附PPT] 总目录篇章1:目标检测的应用与需求篇章2:目标检测的定义与挑战篇章3:目标检测损失函数的进展篇章4:目标检测IOU的发展历程篇章5:目标检测评价指标及数据集[篇章6: 目标检测…

目标检测算法——YOLOV7——详解

1、主要贡献 主要是现有的一些trick的集合以及模块重参化和动态标签分配策略,最终在 5 FPS 到 160 FPS 范围内的速度和准确度都超过了所有已知的目标检测器。 当前目标检测主要的优化方向:更快更强的网络架构;更有效的特征集成方法&#xff1…

3D点云目标检测算法综述

一、概述 在3D点云目标检测领域,对于数据输入的处理一般有三种: 多视角。将三维点云投射到多个二维平面形成图像 体素,voxel,将三维点云切割成多个小块,这些小块就叫体素,类似像素。这是最自然的一种想法…

传统目标检测算法

目标分类:给一张图片,分类 目标检测:给一张图片,找到目标,并用矩形框画出 分类是对一幅图整体,检测是更进一步,找出一幅图中一部分。一般检测以分类为基础, 目标检测就是找出图像中…

目标检测算法基础

人脸检测算法综述 0 前言1 人脸检测算法难点2 人脸检测算法流程2.1 选择检测窗口2.2 提取图像特征2.3 设计分类器2.3.1 AdaBoost2.3.2 SVM分类器2.3.3 决策树与随机森林 3 人脸检测算法3.1 传统的人脸检测算法3.2 深度学习3.2.1 基于候选框的二阶段检测算法3.2.2 直接预测结果框…

目标检测算法回顾之传统算法

传统的目标检测算法 总体回顾基于特征基于分割 一般流程经典算法HarrAdaboost流程Harr特征Adaboost算法 HOG SVM概述方法HOG特征的优缺点 DPMDPM特征DPM流程 DPM vs HOG 总结 说明:本文仅供学习 虽然传统的目标检测方法现在比较少用,但我们认为有必要了…

目标检测算法发展综述

目标检测算法 一、目标检测算法二、目标检测算法存在的问题三、目标检测算法的基本流程四、传统的目标检测算法 1.Viola-Jones(VJ人脸检测算法)2.HOG SVM(行人检测,使用Opencv实现)3.DPM(物体检测&#xf…

目标检测算法研究

1、目标检测基本介绍 1.1、项目结构 1.2、目标检测的算法分类 1.2.1两步走的目标检测:先进行区域推荐、而后进行目标分类 代表算法 :R-CNN、 SPP-net、Fast-R-CNN、Faster R-CNN 1.2.2、端到端的目标检测:采用一种网络一步到位 代表&#x…

目标检测算法分类

目标检测算法分类: 1、两步走的目标检测:先找出候选的一些区域,再对区域进行调整分类 代表:R-CNN、SPP-net、Fast R-CNN、Faster R-CNN 2、端到端的目标检测:采用一个网络一步到位,输入图片,输…