【计算机视觉 | 目标检测】干货:目标检测常见算法介绍合集(一)

news2025/1/21 16:40:36

对象检测模型是用于执行对象检测任务的体系结构。 您可以在下面找到不断更新的对象检测模型列表。

文章目录

    • 一、 ScanSSD
    • 二、Faster R-CNN
    • 三、Mask R-CNN
    • 四、YOLOv3
    • 五、RetinaNet
    • 六、Detection Transformer
    • 七、YOLOv4
    • 八、FCOS
    • 九、YOLOv2
    • 十、Fast R-CNN
    • 十一、CenterNet
    • 十二、R-CNN
    • 十三、Region-based Fully Convolutional Network
    • 十四、Cascade R-CNN
    • 十五、Hybrid Task Cascade

一、 ScanSSD

ScanSSD 是一种单次检测器 (SSD),用于定位偏离文本并嵌入文本行的数学公式。 它仅使用视觉特征进行检测:不使用布局、字体或字符标签等格式或排版信息。 给定 600 dpi 文档页面图像,单次检测器 (SSD) 使用滑动窗口在多个尺度上定位公式,然后汇集候选检测以获得页面级结果。

在这里插入图片描述

二、Faster R-CNN

Faster R-CNN 是一种目标检测模型,通过将区域提议网络 (RPN) 与 CNN 模型结合使用,在 Fast R-CNN 的基础上进行了改进。 RPN 与检测网络共享全图像卷积特征,从而实现几乎无成本的区域提议。 它是一个完全卷积网络,可同时预测每个位置的对象边界和对象性分数。 RPN 经过端到端训练以生成高质量的区域提案,Fast R-CNN 使用这些区域提案进行检测。 RPN 和 Fast R-CNN 通过共享它们的卷积特征合并成一个网络:RPN 组件告诉统一网络要往哪里看。

总体而言,Faster R-CNN 由两个模块组成。 第一个模块是提议区域的深度全卷积网络,第二个模块是使用提议区域的 Fast R-CNN 检测器。

在这里插入图片描述

三、Mask R-CNN

Mask R-CNN 扩展了 Faster R-CNN 以解决实例分割任务。 它通过添加一个用于预测对象掩模的分支与用于边界框识别的现有分支并行来实现这一点。 原则上,Mask R-CNN 是 Faster R-CNN 的直观扩展,但正确构建 mask 分支对于获得良好结果至关重要。

最重要的是,Faster R-CNN 并不是为网络输入和输出之间的像素到像素对齐而设计的。 这在 RoIPool(处理实例的事实上的核心操作)如何执行粗空间量化以进行特征提取中显而易见。 为了修复未对齐问题,Mask R-CNN 使用了一个简单的无量化层,称为 RoIAlign,它忠实地保留了精确的空间位置。

其次,Mask R-CNN将掩模和类别预测解耦:它独立地为每个类别预测一个二元掩模,没有类别之间的竞争,并依赖网络的RoI分类分支来预测类别。 相比之下,FCN 通常执行逐像素多类分类,将分割和分类结合起来。

在这里插入图片描述

四、YOLOv3

YOLOv3 是一种实时、单阶段目标检测模型,它建立在 YOLOv2 的基础上,并进行了多项改进。 改进包括使用新的骨干网络,即利用残差连接的 Darknet-53,或者用作者的话说,“那些新奇的残差网络东西”,以及对边界框预测步骤的一些改进,以及使用三个 从中提取特征的不同尺度(类似于 FPN)。

在这里插入图片描述

五、RetinaNet

RetinaNet 是一种单阶段目标检测模型,利用焦点损失函数来解决训练期间的类别不平衡问题。 焦点损失对交叉熵损失应用了一个调节项,以便将学习集中在困难的负面例子上。 RetinaNet 是一个单一的、统一的网络,由一个主干网络和两个特定于任务的子网络组成。 主干网负责计算整个输入图像上的卷积特征图,并且是一个现成的卷积网络。 第一个子网对主干网的输出执行卷积对象分类; 第二个子网执行卷积边界框回归。 这两个子网络具有作者专门针对单阶段密集检测提出的简单设计。

通过与两级物体检测器的比较,我们可以看到焦点损失的动机。 这里,类不平衡是通过两阶段级联和采样启发式解决的。 提议阶段(例如,选择性搜索、EdgeBoxes、DeepMask、RPN)迅速将候选对象位置的数量缩小到较小的数量(例如,1-2k),过滤掉大多数背景样本。 在第二分类阶段,执行采样启发法,例如固定前景与背景比率或在线硬示例挖掘(OHEM),以维持前景和背景之间的可管理平衡。

相比之下,单级检测器必须处理在图像上定期采样的一组更大的候选对象位置。 为了解决这个问题,RetinaNet 使用焦点损失函数,这是一种动态缩放的交叉熵损失,其中缩放因子随着正确类别的置信度增加而衰减到零。 直观地说,这个比例因子可以在训练过程中自动降低简单示例的贡献,并快速将模型集中在困难示例上。

在这里插入图片描述
在这里插入图片描述

六、Detection Transformer

Detr(即检测变压器)是一种基于集合的目标检测器,在卷积主干之上使用变压器。 它使用传统的 CNN 主干来学习输入图像的 2D 表示。 该模型将其展平并用位置编码对其进行补充,然后将其传递到变压器编码器。 然后,变压器解码器将少量固定数量的学习位置嵌入(我们称之为对象查询)作为输入,并另外关注编码器输出。 我们将解码器的每个输出嵌入传递到共享前馈网络(FFN),该网络预测检测(类和边界框)或“无对象”类。

在这里插入图片描述

七、YOLOv4

YOLOv4 是一种单阶段目标检测模型,它在 YOLOv3 的基础上进行了改进,并在文献中引入了一些技巧和模块。 下面的组件部分详细介绍了所使用的技巧和模块。

在这里插入图片描述

八、FCOS

FCOS 是一种无锚框、无提议的单阶段目标检测模型。 通过消除预定义的锚框集,FCOS 避免了与锚框相关的计算,例如在训练期间计算重叠。 它还避免了与锚框相关的所有超参数,这些超参数通常对最终的检测性能非常敏感。

在这里插入图片描述

九、YOLOv2

YOLOv2,或YOLO9000,是一种单阶段实时目标检测模型。 它在多个方面对 YOLOv1 进行了改进,包括使用 Darknet-19 作为主干、批量归一化、使用高分辨率分类器以及使用锚框来预测边界框等等。

在这里插入图片描述

十、Fast R-CNN

Fast R-CNN 是一种目标检测模型,在许多方面对其前身 R-CNN 进行了改进。 Fast R-CNN 不是为每个感兴趣区域独立提取 CNN 特征,而是将它们聚合到图像上的单个前向传递中; 即来自同一图像的感兴趣区域在前向和后向传递中共享计算和内存。

在这里插入图片描述

十一、CenterNet

CenterNet 是一种单级对象检测器,它将每个对象检测为三元组,而不是一对关键点。 它利用两个定制模块,即级联角池化和中心池化,分别起到丰富左上角和右下角收集的信息并在中心区域提供更多可识别信息的作用。 直觉是,如果预测的边界框与真实框具有较高的 IoU,则其中心区域的中心关键点被预测为同一类的概率较高,反之亦然。 因此,在推理过程中,在将提案生成为一对角点关键点后,我们通过检查是否有同一类的中心关键点落在其中心区域内来确定该提案是否确实是一个对象。

在这里插入图片描述

十二、R-CNN

R-CNN(即具有 CNN 特征的区域)是一种对象检测模型,它使用大容量 CNN 自下而上的区域建议来定位和分割对象。 它使用选择性搜索来识别多个边界框对象候选区域(“感兴趣区域”),然后从每个区域独立提取特征进行分类。

在这里插入图片描述

十三、Region-based Fully Convolutional Network

基于区域的全卷积网络(R-FCN)是一种基于区域的目标检测器。 与之前基于区域的目标检测器(例如 Fast/Faster R-CNN)相比,R-FCN 是完全卷积的,几乎所有计算都在整个图像上共享。

为了实现这一目标,R-FCN 利用位置敏感的分数图来解决图像分类中的平移不变性和对象检测中的平移方差之间的困境。

在这里插入图片描述

十四、Cascade R-CNN

Cascade R-CNN 是一种目标检测架构,旨在通过增加 IoU 阈值来解决性能下降的问题(由于训练期间的过度拟合以及最佳检测器与输入之间的 IoU 之间的推理时间不匹配)。 它是 R-CNN 的多级扩展,其中级联更深处的检测器级依次对接近的误报更具选择性。 R-CNN 级联级联按顺序进行训练,使用一个阶段的输出来训练下一个阶段。 这是由于观察到回归器的输出 IoU 几乎总是优于输入 IoU。

Cascade R-CNN 的目的不是挖掘硬负例。 相反,通过调整边界框,每个阶段的目标是找到一组良好的接近误报来训练下一阶段。 当以这种方式操作时,适应越来越高的 IoU 的一系列检测器可以克服过度拟合问题,从而得到有效的训练。 在推理时,应用相同的级联过程。 逐步改进的假设与每个阶段不断提高的探测器质量更好地匹配。

在这里插入图片描述

十五、Hybrid Task Cascade

混合任务级联(HTC)是实例分割中级联的框架。 它与Cascade Mask R-CNN有两个重要的区别:(1)不是分别对检测和分割两个任务进行级联细化,而是将它们交织在一起进行联合多阶段处理; (2)它采用全卷积分支来提供空间上下文,这可以帮助区分坚硬的前景和杂乱的背景。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1007268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uni-app--》基于小程序开发的电商平台项目实战(二)

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生 🛵个人主页:亦世凡华、 🛺系列专栏:uni-app 🚲座右铭:人生亦可燃烧,亦可腐败&#xf…

Acwing 800. 数组元素的目标和

Acwing 800. 数组元素的目标和 题目描述代码展示 题目描述 代码展示 #include<iostream>using namespace std;const int N 1e5 10;int a[N], b[N];int main() {int n , m , x, i 0, j m - 1;cin >> n >> m >> x;for (int i 0; i < n; i ) sc…

java JUC并发编程 第七章 原子操作类增强

系列文章目录 第一章 java JUC并发编程 Future: link 第二章 java JUC并发编程 多线程锁: link 第三章 java JUC并发编程 中断机制: link 第四章 java JUC并发编程 java内存模型JMM: link 第五章 java JUC并发编程 volatile与JMM: link 第六章 java JUC并发编程 CAS: link 第七…

ABB IW93 HESG440356R1处理器模块

处理能力&#xff1a; IW93处理器模块具有强大的处理能力&#xff0c;能够高效执行控制逻辑和算法&#xff0c;确保工业过程的顺利运行。 通信接口&#xff1a; 该模块通常具有多种通信接口&#xff0c;用于与其他设备和系统进行数据交换和集成。这些接口可能包括以太网、串行…

9.13号作业

1> 将之前定义的栈类和队列类都实现成模板类 栈的模块类 #include <iostream> using namespace std;template <typename T> class Stack { private:T data[40]{0};T top-1; public:Stack (){cout<<"这是构造函数"<<endl;}int stack_e…

相亲App定制开发,助力您打造独特交友平台

作为专业的App开发团队&#xff0c;我们致力于为您打造一款独特而出色的相亲交友App。我们深刻理解相亲领域的需求&#xff0c;通过技术创新和用户体验优化&#xff0c;为您提供个性化的定制开发服务。 在相亲App的定制开发过程中&#xff0c;我们将全面考虑您的目标市场和用户…

Java项目---图片服务器

图片服务器--->服务器&#xff08;图床&#xff09; 核心功能&#xff1a;上传图片、展示图片等 比如&#xff1a;编写博客时我们会插入图片&#xff0c;本质上是往文章中放了一个链接&#xff08;URL&#xff09;&#xff0c;这个URL资源在另外一个服务器上。 核心知识点…

在ubuntu18.04上编译C++版本jsoncpp/opencv/onnxruntime且如何配置CMakelist把他们用起来~

这篇文章背景是笔者在ubuntu上编译C代码&#xff0c;依赖一些包&#xff0c;然后需要编译并配置到CMakelist做的笔记。主要也是一直不太懂CMakellist&#xff0c;做个笔记以防忘记&#xff0c;也给读者提供一站式的参考&#xff0c;可能您需要的不是这几个包&#xff0c;但大同…

STM32f103入门(12)USART串口信息发送+接收

USART 介绍串口发送使用工具初始化发送数据接收数据 介绍 电平标准是数据1和数据0的表达方式&#xff0c;是传输线缆中人为规定的电压与数据的对应关系&#xff0c;串口常用的电平标准有如下三种&#xff1a; TTL电平&#xff1a;3.3V或5V表示1&#xff0c;0V表示0 RS232电平&…

成都都市圈公共图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

成都都市圈公共图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

Discrod账号为什么被封?怎么解封?

Discord作为海外社交产品的新晋王者&#xff0c;近两年来非常受欢迎&#xff0c;据统计&#xff0c;每个月使用Discord的用户数超过3000万。而在跨境电商领域&#xff0c;”内容社群”的打法已经见怪不怪&#xff0c;营销推广少不了Discord&#xff0c;拥有一个或者多个成熟的D…

深度学习-激活函数

文章目录 基础知识Sigmoid函数 &#xff08;Logistic函数&#xff09;双曲正切函数&#xff08;Tanh函数&#xff09;线性整流函数&#xff08;ReLU函数&#xff09;Leaky ReLU函数Softmax函数 基础知识 激活函数是神经网络中的一种非线性函数&#xff0c;它作为神经元的输出函…

Linux 安装Harbor镜像仓库私服

参考链接 Docker 的基础知识、安装、使用Harbor镜像仓库私服搭建 Harbor是什么&#xff1f; Harbor是由VMware公司开源的企业级的Docker Registry管理项目&#xff0c;它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。 Harbor 的所有组…

WebGL正射投影

目录 可视范围&#xff08;正射类型&#xff09; 可视空间 正射投影的盒状可视空间的工作原理 盒状可视空间 定义盒状可视空间 Matrix4.setOrtho&#xff08;&#xff09; 按键控制near、far ​编辑 示例效果 示例代码 代码详解 修改near和far值 通过右方向键增大n…

从物理叠加到化学反应,看方太如何把洗碗机玩出「新价值」

文 | 智能相对论 作者 | 佘凯文 随着酷暑烈日的逐渐远去&#xff0c;秋意也开始浓厚了起来。所谓“秋风起&#xff0c;秋膘贴”&#xff0c;在“金九银十”的当下&#xff0c;美食自是不可辜负的恩赐。肥美多膏的大闸蟹、软糯香甜的南瓜羹、爽脆可口的莲藕汤..... 秋季的美食…

idea中启动maven项目报错-java: 程序包lombok.extern.slf4j不存在问题如何解决

1、 现象&#xff1a; 在springboot的maven项目启动时&#xff0c;报错&#xff1a; Error:(3, 27) java: 程序包lombok.extern.slf4j不存在 编译不报错&#xff0c;maven依赖也合适&#xff0c;项目就是无法启动 原因&#xff1a; 其实不是项目本身或者maven本身的问题&am…

Java垃圾收集机制

目录 前言 判断对象是否存活 引用计数算法 可达性分析算法 GC Root的产生 Java中的四种引用类型 1.强引用 强引用弱化方式 方式1&#xff1a;使对象指向null 方式2&#xff1a;使对象超出作用域范围 2.软引用 3.弱引用 4.虚引用 垃圾收集算法 分代收集理论 垃圾…

Linux内核及可加载内核模块编程

图1 Linux系统整体结构 图2 Linux的源代码结构 下面显示一段内核模块代码案例&#xff1a; #include <linux/moduLe.h> #include <linux/kernel.h #include <linux/intt.h> /*模块的初始化函数lkp_ init()_init是用于初始化的修饰符 */ static int __init lk…

第十五届全国大学生数学竞赛报名快要截止了,你报上名了吗?

关于组织参加 第十五届全国大学生数学竞赛的通知 01 为了培养人才、服务教学、提高大学生学习数学的兴趣&#xff0c;培养学生分析问题、解决问题的能力&#xff0c;发现和选拔数学创新人才&#xff0c;为学生提供一个展示基础知识和思维能力的舞台&#xff0c;我校决定组织参…

SSM整合demo及个人思考

SSM整合 项目整体架构说明1. 创建Maven项目2. 配置web.xml4. 配置springmvc.xml5. 配置spring.xml6. 配置mybatis-config.xml以及创建mapper接口和mapper配置文件7. 配置log4j.xml8. 后端CURD测试8.1 在数据库中插入数据8.2 pojo中的实体类Employee8.3 mapper层的EmployMapper接…