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

目标检测我来惹1 R-CNN

目标检测算法:

识别图像中有哪些物体和位置

目标检测算法原理:

 记住算法的识别流程、解决问题用到的关键技术

目标检测算法分类:

两阶段:先区域推荐ROI,再目标分类

region proposal+CNN提取分类的目标检测框架

RCNN FASTER RCNN

端到端:一个网络,输入到输出:类别加位置

yolo SSD

目标检测的任务:

分类原理:得到每个类别的概率,取最大概率

CNN--卷积神经网络

输入层+卷积、激活、池化+全连接层+输出

激活函数:relu、输出:softmax得出概率

损失函数:交叉熵损失函数--衡量

图片中只有一个目标:分类+定位

分类评估指标:

指标说明
分类准确率(Accuracy)正确分类的目标数 / 所有预测目标数(仅当类别预测数量和真实相同且位置匹配时才有意义)
Precision(精确率)预测为该类中有多少是对的
Recall(召回率)实际该类中你检测到了多少

定位评估指标:

指标说明
IoU(Intersection over Union)预测框和真实框的重合度

目标框:bounding box

名称含义
Ground Truth bounding box人工标注框真实值
Predicted bounding box预测标注框预测值
IoU交并比真实框和预测框的重叠程度

交集/并集

重合面积除以两个框的所有面积

 

分类+定位的思路:

让网络多输出一个全连接层

1、类别概率值 softmax--分类损失函数:交叉熵损失函数

2、输出四个位置坐标-回归损失:L2 loss

位置坐标处理:每个位置除以图像的像素值--归一化

任务阶段是否需要归一化?
训练前准备数据✅ 建议:提前归一化 GT 框(输入 label 时)
模型输出✅ 输出的是 [0, 1] 范围的预测值(便于训练)

多个目标的任务!--目标检测

R-CNN基础算法

region proposal 候选区域方法

以神经网络为基础的两阶段 目标检测模型。

步骤(测试过程)

1.找出图像中可能存在的候选区域ROI,得出2000个候选区域

选择性搜索SS筛选区域

2.统一图片大小,输入CNN网络提取特征,得出2000个特征向量

使用AlexNet网络,统一候选区域大小227*227warped region

统一大小操作:crop和wrap,减少图像的变形

CNN网络提取出的特征向量保存在磁盘中

对 2000 个候选框,每个区域提一个 4096 维的特征 → 形成一个 2000 × 4096 的特征矩阵

3.20个SVM进行分类,得到2000*20的得分矩阵

SVM特征向量训练分类器:二分类

20代表数据集中需要检测20个类别,

每个分类器判断2000个候选区域的特征向量

第一个分类器判断:是猫?不是?那是背景

第二个分类器:是狗?不是?

输出2000 × 20 的得分矩阵(每一行是该区域对每个类别的置信度)

4.进行NMS非极大值抑制,提出候选框

NMS:筛选候选框,得到非重叠、高置信度的目标框

比较IoU >0.5删去

5.修正候选区域,对bbox回归微调

回归过程:用于修正筛选的候选区域,使它回归ground truth

线性回归:特征值是候选区域,目标值是对应的GT。

建立回归方程学习参数

 训练过程:

预训练+微调

🔹 预训练阶段:

  • ImageNet 数据集 训练 CNN 模型(如 AlexNet、ResNet)

  • 有一个现有的模型和参数

🔹 微调阶段:

  • 替换最后一层输出(从1000类 → 目标检测的20类)

  • 使用 R-CNN 的候选区域图像、正负样本标签输入到model1中

  • 再继续训练 CNN(特别是全连接层部分)

🔹 训练SVM特征向量分类器+bbox regressor

每个类别训练一个分类器

表现:在voc2007上准确度66%

缺点:训练阶段多;训练耗时;

总结:

http://www.lryc.cn/news/2399586.html

相关文章:

  • lua的笔记记录
  • 智能进化论:AI必须跨越的四大认知鸿沟
  • L2-056 被n整除的n位数 - java
  • 传统足浴行业数字化转型:线上预约平台的技术架构与商业逻辑
  • Java-IO流之字节输入流详解
  • 从OCR到Document Parsing,AI时代的非结构化数据处理发生了什么改变?
  • 【C/C++】入门grpc的idl
  • 【Java实用工具类】手撸SqlBuilder工具类,优雅拼接动态SQL,MyBatisPlus同款风格!
  • 宇树科技更名“股份有限公司”深度解析:机器人企业IPO前奏与资本化路径
  • Inno Setup 安装向导各个页面详解
  • 转战web3远程工作的英语学习的路线规划
  • OPENCV重点结构体Mat的讲解
  • Java 创建线程池的几种方式
  • 【趣味Html】第11课:动态闪烁发光粒子五角星
  • AnyIO Event:异步编程中的同步利器
  • CFTel:一种基于云雾自动化的鲁棒且可扩展的远程机器人架构
  • Educational Codeforces Round 179 (Rated for Div. 2)
  • 完成一个可交互的k8s管理平台的页面开发
  • 多线程编程技术解析及示例:pthread_cond_timedwait、pthread_mutex_lock 和 pthread_mutex_trylock
  • vue实现点击单选或者多选模式
  • Windows系统工具:WinToolsPlus 之 SQL Server 日志清理
  • 在Windows11上安装 Ubuntu WSL
  • 嵌入式Linux之RK3568
  • Elasticsearch的插件(Plugin)系统介绍
  • 提取 PDF 文件中的文字以及图片中的文字
  • JavaScript性能优化实战技术
  • LeetCode 热题 100 739. 每日温度
  • 网页前端开发(基础进阶3--Vue)
  • tryhackme——Abusing Windows Internals(进程注入)
  • 【游戏科学】游戏开发中数学算法的核心与应用