当前位置: 首页 > news >正文

【CV 目标检测】②R-CNN模型

二、R-CNN网络基础

2.R-CNN模型

2014年提出R-CNN!网络,该网络不再使用暴力穷举的方法,而是使用候选区域方法(region proposal method)创建目标检测的区域来完成目标检测的任务,R-CNN是以深度神经网络为基础的目标检测的模型,以R-CNN为基点,后续的Fast R-CNN,Fast R-CNN模型都延续了这种目标检测思路

(1)算法流程

步骤:

  1. 候选区域生成:使用选择性搜索(Selective Search,SS)的方法找出图片中可能存在目标的候选区域
  2. CNN网络提取特征:选取预训练卷积神经网络(AlexNet或VGG)用于进行特征提取
  3. 目标分类:训练支持向量机(SVM)来辨别目标物体和背景,对每个类别,都要训练一个二元SVM。
  4. 目标定位:训练一个线性回归模型(修正坐标),为每个辨识到物体生成更精确的边界框

(1)候选区域生成

选择性搜索中,使用语义分割的方法,它将颜色,边界,纹理等信息作为合并条件,采用多尺度的综合方法,将图像在像素级上划分出一系列的区域,这些区域要远少于传统的滑动窗口的穷举法产生的候选区域。(根据图像像素点的相似性,分成不同的子区域,获取外包矩形)

SelectiveSearch在一张图片上提取出来约2000个候选区域,需要注意的是这些候选区域的长宽不固定。而使用CNN提取候选区域的特征向量,需要接受固定长度的输入,所以需要对候选区域做一些尺寸上的修改。

(2)CNN网络提取特征

采用预训练模型(AlexNet或VGG)在生成的候选区域上进行特征提取,将提取好的特征保存在磁盘中,用于后续步骤的分类和回归

  1. 全连接层的输入数据的尺寸是固定的,因此在将候选区域送入CNN网络时,需进行裁剪或变形为固定的尺寸,再进行特征提取。
  2. 预训练模型在ImageNet数据集上获得,最后的全连接层是1000,在这里我们需要将其改为N+1(N为目标类别的数目,例如VOC数据集中N = 20,COCO数据集中N= 80,1是加一个背景)后,进行微调即可。

VGG16

  1. 利用微调后的CNN网络,提取每一个候选区域的特征,获取一个4096维的特征(将最后的全连接层去掉,该4096维特征即表示某一个候选区域的结果),一幅图像就是2000x4096维特征存储到磁盘中。(有2000个候选区域)

(3)目标分类(SVM)

对于N个类别的检测任务,需要训练N(目标类别数目)个SVM分类器,对候选区域的特征向量(4096维)进行二分类,判断其是某一类别的目标,还是背景来完成目标分类

(4)目标定位

通过选择性搜索获取的目标位置不是非常准确,实验证明,训练一个线性回归模型在给定的候选区域的结果上去预测一个新的检测窗口,能够获得更精确的位置。修正过程如下图所示:

通过训练一个回归器来对候选区域的范围进行一个调整,这些候选区域最开始只是用选择性搜索的方法粗略得到的,通过调整之后得到更精确的位置

(5)预测过程

使用选择性搜索的方法从一张图片中提取2000个候选区域,将每个区域送入CNN网络中进行特征提取,然后保存至磁盘中,然后送入到SVM中进行分类,并使用候选框回归器,计算每个候选区域的位置。候选区域较多,有2000个,需要剔除掉部分检测结果。针对每个类,通过计算IOU,采取非极大值抑制NMS方法,保留比较好的检测结果。

算法总结

  1. 训练阶段多,训练耗时:微调CNN网络+训练SVM+训练边框回归器
  2. 预测速度慢:使用GPU,VGG16模型处理一张图像需要47s
  3. 占用磁盘空间大:5000张图像产生几百G的特征文件。
  4. 数据的形状变化:候选区域要经过缩放来固定大小,无法保证目标的不变形
http://www.lryc.cn/news/621536.html

相关文章:

  • 「iOS」————UITableView性能优化
  • GCC深度剖析:从编译原理到嵌入式底层实战
  • 阿里云出里两款新的云服务器
  • 基于单片机的超市储物柜设计
  • 打破传统局限,人工智能+虚拟仿真赋能日化品设计实验教学
  • 异步并发×编译性能:Dart爬虫的实战突围
  • 笔试——Day39
  • Python洛谷做题39:P5729 【深基5.例7】工艺品制作
  • 【题解|两种做法】[ZJOI2008] 洛谷 P2600 瞭望塔[半平面交]
  • 第十章 项目进度管理-10.3 规划进度管理
  • Mini MAX AI应用矩阵测评报告——基于旗下多款产品的综合体验与行业价值分析
  • 【大模型微调系列-02】 深度学习与大模型初识
  • 《WINDOWS 环境下32位汇编语言程序设计》第1章 背景知识
  • uniapp纯前端绘制商品分享图
  • MySQL 主键详解:作用与使用方法
  • Uniapp之微信小程序自定义底部导航栏形态
  • mac 通过homebrew 安装和使用nvm
  • 【uni-app】根据角色/身份切换显示不同的 自定义 tabbar
  • 晶振电路的负载电容、电阻参数设计
  • Vue3 Element-plus 封装Select下拉复选框选择器
  • 一文打通 AI 知识脉络:大语言模型等关键内容详解
  • Docker容器定时任务时区Bug导致业务异常的环境变量配置解决方案
  • Vue3 + Element Plus 实现可搜索、可折叠、可拖拽的部门树组件
  • 【Redis】Redis典型应用——缓存
  • Redis 官方提供免费的 30 MB 云数据库
  • AI客户维护高效解决方案
  • [Chat-LangChain] 前端用户界面 | 核心交互组件 | 会话流管理
  • 制造装配、仓储搬运、快递装卸皆适配!MinkTec 弯曲形变传感器助力,让人体工学改变劳动生活
  • 测试工程师应当具备的能力
  • 专题三_二分_在排序数组中查找元素的第一个和最后一个位置