计算机视觉领域经典模型汇总(2023.09.08

一、RCNN系列

1、RCNN

RCNN是用于目标检测的经典方法,其核心思想是将目标检测任务分解为两个主要步骤:候选区域生成和目标分类。

  • 候选区域生成:RCNN的第一步是生成可能包含目标的候选区域,RCNN使用传统的计算机视觉技术,特别是选择性搜索(Selective Search)算法,这是一种Region Proposal区域提议方法,它根据图像中的纹理、颜色和形状等信息来生成潜在的候选区域。选择性搜索生成的候选区域通常数千个,因此需要对这些区域进行裁剪和调整,以使它们具有相同的大小和纵横比。
  • 特征提取:对于每个候选区域,RCNN使用深度卷积神经网络(通常是在ImageNet数据集上预训练的AlexNet)来提取特征。这些特征用于表示每个候选区域的内容。RCNN通过将每个候选区域的图像块调整为固定大小,然后通过卷积神经网络进行前向传播,得到一个固定维度的特征向量。
  • 目标分类:对于每个候选区域,RCNN将提取的特征向量输入到一个支持向量机(SVM)分类器中共,以确定该区域是否包含感兴趣的目标物体。RCNN还对每个目标物体的类别进行分类,使用不同的SVM分类器来表示不同的类别。每个分类器被训练为将包含目标物体的候选区域与不包含目标物体的区域进行区分。
  • 边界框回归:为了提高目标的位置精度,RCNN还使用了一个回归器来微调每个候选区域的边界框,这个回归器被训练为预测候选区域与实际目标边界框之间的差异。
  • 训练:RCNN的训练分为两个阶段,预训练和微调。①预训练阶段,卷积神经网络(Alexnet)在大规模图像分类任务上进行与训练,以获得有用的特征提取器。②微调阶段,使用标注的目标检测数据对整个RCNN模型进行微调,包括SVM分类器和边界框回归器。
  • 优点和缺点:①优点:RCNN在目标检测上取得了很好的性能,特别是在大规模目标检测数据集上。它能够处理不同大小和形状的目标,并且可以适应多类别目标检测。②缺点:RCNN是一个复杂的多阶段模型,难以实现端到端的训练,后续版本(如Fast R-CNN和Faster R-CNN)针对这些缺点进行了改进,提高了速度和性能。

2、Fast R-CNN(Fast Region-based Convolutional Neural Network)

Fast R-CNN是在RCNN和Selective Search基础上提出的改进方法,主要创新是将整个目标检测流程集成到一个卷积神经网络(CNN)种,从而显著提高了速度和性能。

  • 候选区域生成:不同于RCNN中使用选择性搜索,FastRCNN使用卷积网络直接从输入图像中生成候选区域。使用一个称为Region Proposal Network(RPN)的子网络,RPN可以高效地生成多尺度和多形状地候选区域,这些区域被称为锚框(Anchor Boxes)。
  • 特征提取:FastRCNN使用卷积神经网络来提取每个候选区域的特征。这些区域特征被送入网络中以进行目标分类和边界框回归。使用卷积层和ROI(Region of Interest)池化层来提取固定维度的特征向量
  • 目标分类和边界框回归:对于每个候选区域,Fast R-CNN使用两个并行的全连接层,一个用于目标分类(哪个类别?)和用于边界框回归(目标位置)。分类层使用softmax来预测目标的类别概率,而回归层用于微调候选区域的边界框。
  • 训练:Fast R-CNN进行端到端的训练,可以同时优化RPN、目标分类和边界框回归的损失函数。训练数据包括正样本(包含目标的锚框)、负样本(不包含目标的锚框)以及他们的标签。

3、Faster R-CNN(Faster Region-based Convolutional Neural Network)

Faster R-CNN 进一步改进了 Fast R-CNN,将目标检测模型的速度提高到了一个新的水平,同时保持了很高的准确性。

  • 候选区域生成:Faster R-CNN引入了一个完全卷积网络,作为RPN,用来生成候选区域。RPN是一个端到端可训练的网络,可以生成候选区域。
  • 特征提取:与Fast-RCNN类似,Faster R-CNN 使用卷积神经网络来提取候选区域的特征。
  • 目标分类和边界框回归:Faster R-CNN 与 Fast R-CNN 具有相似的目标分类和边界框回归步骤。
  • 训练:Faster R-CNN 通过联合训练 RPN 和检测网络(包括目标分类和边界框回归)来优化整个系统。整个模型可以一次性生成候选区域并执行目标检测,从而提高了速度。

二、yolo系列

计算机视觉领域,目标检测是一个十分重要的研究主题, 广泛应用在人脸识别、车牌识别、安防、智慧交通、自动驾驶等领域。主要经典算法有:YOLO

1、YOLOv1

以往的二阶段检测算法,如Faster-RCNN,在检测时需要经过两步:边框回归和softmax分类。由于大量预选框的生成,该方法检测精度较高,但实时性较差。YOLO之父Joseph Redmon提出了通过直接回归的方式获取目标检测的具体位置信息和类别分类信息。极大的降低了计算量,显著提升了检测的速度。达到了45FPS(Fast YOLO版本达到了155FPS)。

  • 思路:①将输入图片缩放至448x448x3大小;②经过卷积网络backbone提取特征图;③把提取到的特征图送入两层全连接层,最终输出7x7x30大小的特征图。更进一步讲,就是将输入的图片整体划分为SxS的网格(例如7x7),物体中心落在哪一个格子中,那么该各自就负责该物体的检测,每一个格子预测B个边框,输出SxS(B*5+C)。对于YOLOv1而言,常用的是7x7的网格划分,预测2个边框,输出7x7x30,30个通道包含每个类别的概率+边框置信度+边框位置信息。

  • 网络结构:骨干网络是GoogleNet网络,24个卷积层+2个全连接层。使用7x7卷积。
  • 优势与不足:①优点:与二阶段检测算法相比,利用直接回归的方式,大大缩小了计算量,提升了运行速度。②不足:每一个网格仅有两个预测框,当存在多物体密集挨着或者小目标的时候,检测效果不好。

2、YOLOv2

与YOLOv1相比,v2做了三点改变①更换骨干网络;②引入PassThrough;③借鉴了二阶段检测的思想,添加了预选框。

  • 思路:将图片输入到darknet19网络中提取特征图,然后输出目标框类别信息和位置信息。
  • 网络结构:骨干网络为darknet19,如下图所示针对1000类别的分类任务,只不过对于检测任务而言,需要使用3x3卷积(输出通道1024)取代上表中最后的卷积层,再添加Passthrough操作后,进行输出。已不再使用7x7这样的大卷积核:

  •  技巧1: PassThrough操作-该方法将28x28x512调整为14x14x2048,后续v5版本中的Focus操作类似该操作。将生成的14x14x2048与原始的14x14x1024进行concat操作。

  •  技巧2:引入anchor,调整位置预测为偏移预测借鉴了Faster-RCNN的思想,引入了anchor,将目标框的位置预测由直接预测坐标调整为偏移量预测,大大降低了预测难度,提升了预测准确性。

  • 优势与不足:①优势:利用passthrough操作对高低层语义信息进行融合,在一定程度上增强了小目标的检测能力。采用小卷积核代替7x7的大卷积核,降低了计算量,同时改进的位置偏移策略降低了检测目标框的难度。② 尚未采用残差网络结构,且当存在多物体密集挨着的时候或者小目标的时候,检测效果有待提升。

3、YOLOv3(晚点接着更这条....现在得去看数据分析题咯...555555555555

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1905. 统计子岛屿

给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地)。一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域。任何矩阵以外的区域都视为水域。 如…

记录第一次带后端团队

在过去的一个半月里我第一次作为后端开发组长角色参与公司项目从0到1的开发,记录这一次开发的经历。 1、背景介绍 首先说明一下背景。我所在的公司是做智慧社区相关业务,开发的项目是系统升级工具,方便公司实施同事安装和升级系统。 参与后…

借助ChatGPT使用Pandas实现Excel数据汇总

一、问题的提出 现在有如下一个Excel表: 上述Excel表中8万多条数据,记录的都是三年以来花菜类的销量,现在要求按月汇总实现统计每个月花菜类的销量总和,如果使用Python的话要给出代码。 二、问题的解决 1.首先可以用透视表的方…

冒泡排序、选择排序、插入排序、希尔排序

冒泡排序 基本思想 代码实现 # 冒泡排序 def bubble_sort(arr):length len(arr) - 1for i in range(length):flag Truefor j in range(length - i):if arr[j] > arr[j 1]:temp arr[j]arr[j] arr[j 1]arr[j 1] tempflag Falseprint(f第{i 1}趟的排序结果为&#…

ElasticSearch入门

一、基本命令_cat 1、查看节点信息 http://192.168.101.132:9200/_cat/nodes2、查看健康状况 http://192.168.101.132:9200/_cat/health3、查看主节点的信息 http://192.168.101.132:9200/_cat/master4、查看所有索引 http://192.168.101.132:9200/_cat/indices二、索引一…

思科的简易配置

vlan 划分配置 1. 拓扑连接 2. 终端设备配置,vlan(v2, v3)配置,模式设置 然后设置交换机 fa 0/5 口为 trunk 模式,使得不同交换机同一 vlan 下 PC 可以互连 3.测试配置结果 用 ip 地址为 192.168.1.1 的主机(PC0)向同一 vlan(v2)下的 192.…

PN结解释

基本原理 PN结由P和N组成 硅掺杂硼,缺少电子,显正电,就是P(Positive) 硅掺杂磷,多出电子,显负电,就是N(Negative) 将P和N拼接 左边代表游离的电子&#xf…

想要精通算法和SQL的成长之路 - 课程表II

想要精通算法和SQL的成长之路 - 课程表 前言一. 课程表II (拓扑排序)1.1 拓扑排序1.2 题解 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 课程表II (拓扑排序) 原题链接 1.1 拓扑排序 核心知识: 拓扑排序是专…

AI是风口还是泡沫?

KlipC报道:狂热的人工智能追捧潮有所冷静,投资者在“上头”的追涨之后,开始回归到对基本面的关注。 KlipC的合伙人Andi D表示:“近日,有关英伟达二季度“破纪录”财报涉嫌造假的话题正在社交媒体和投资者论坛中甚嚣尘上…

XShell7 + Xftp7 + IDEA 打包MapReduce程序到集群运行

参考博客 【MapReduce打包成jar上传到集群运行】http://t.csdn.cn/2gK1d 【Xshell7/Xftp7 解决强制更新问题】http://t.csdn.cn/rxiBG IDEA打包MapReduce程序 这里的打包是打包整个项目,后期等学会怎么打包单个指定的mapreduce程序再来更新博客。 1、编译打包 …

vscode 画流程图

文章目录 1、安装插件 draw2、新建文件3、开始画图4、另存为图片 vscode可以画流程图了,只需要安装插件就可以了。 1、安装插件 draw 2、新建文件 3、开始画图 4、另存为图片

Linux编辑器vim

目录 一、vim的几种模式 1、命令模式 2、编辑/插入模式 3、底行模式 ①增加行号 ②分屏操作 ③不退出vim执行命令 4、替换模式 二、vim的常见命令 1、yy命令 2、p命令 3、dd命令 4、u命令 5、Ctrl r命令 6、shirtg命令 7、gg命令 8、shirt6命令 9、shirt4命…

(其他) 剑指 Offer 61. 扑克牌中的顺子 ——【Leetcode每日一题】

❓剑指 Offer 61. 扑克牌中的顺子 难度:简单 从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大…

Qt应用开发(基础篇)——组合框容器 QGroupBox

一、前言 QGroupBox继承于QWidget,是一个带有标题的组合框架容器控件。 QGroupBox组合框容器自带一个顶部标题,一个面板。面板内部展示各种各样的部件,标题用来解释这些部件为什么集合在一起,并且支持键盘快捷方式切换部件焦点。比…

Android逆向——脱壳解析

“壳”是一种对程序进行加密的程序,“壳”形象地表现了这个功能。我们可以把被加壳的程序当成食物,而加壳程序就是在外面加上一层坚硬的外壳,防止别人去窃取其中的程序。加壳后的程序依然可以被直接运行。在程序运行时壳的代码先运行&#xf…

【C++】怎么接受未知数量的参数?

2023年9月8日,周五下午 目录 第一种方式:可变参数函数(Variadic Function)头文件使用方法详解va_start宏详解va_arg宏示例程序 第一种方式:可变参数函数(Variadic Function) 可变参数函数(Variadic Function)是一种可以接受不定数量参数的函…

静态代理和动态代理笔记

总体分为: 1.静态代理: 代理类和被代理类需要实现同一个接口.在代理类中初始化被代理类对象.在代理类的方法中调 用被代理类的方法.可以选择性的在该方法执行前后增加功能或者控制访问 2.动态代理: 在程序执行过程中,实用JDK的反射机制,创建代理对象,并动态的指定要…

STM32-HAL库07-软件SPI驱动0.96寸OLED

STM32-HAL库07-软件SPI驱动0.96寸OLED 一、所用材料: STM32VGT6自制控制板 STM32CUBEMX(HAL库软件) MDK5 二、所学内容: 通过HAL库配置四个GPIO输出口,对其进行软件模拟SPI发送规则,进而驱动OLED进行数…

C#__文件操作之FileInfo和DirectoryInfo

// 代码(含注释) class Program{static void Main(string[] args){// FileInfo 文件操作FileInfo myFile new FileInfo("D:\C#编程\文件操作之FileInfo和DirectoryInfo\TextFile1.txt");// 实例方法// myFile.CopyTo("D:\C#编程\文件操作…

企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图

功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外部供…