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

深度学习基础--目标检测入门简介

在这里插入图片描述

博主简介:努力学习的22级本科生一枚 🌟​
博客主页:羊小猪~~-CSDN博客
内容简介:探索AI算法,C++,go语言的世界;在迷茫中寻找光芒​🌸​
往期回顾:yolov5基础–一步一步教你训练自己的数据集-CSDN博客

文章目录

  • 1. 基础概念
    • 1.1 目标检测定义
    • 1.2 图像识别任务
    • 1.3 目标检测核心问题
    • 1.4 物体检测概述
    • 1.5 锚框
      • 概念
      • IoU–交并比
      • 赋予锚框标号
      • NMS
  • 2. 评价指标
    • 2.1 TP、TN、FP、FN
    • 2.2 precision和recall
    • 2.3 置信度
    • 2.4 AP和mAP
  • 3. 参考资料

1. 基础概念

1.1 目标检测定义

📚 一句话,找出图像中感兴趣的物体,确定其位置和类别。

由于物体类别不同,其形状、外观、姿态都不同,而且还受环境的影响,故在cv领域,目标检测一直都是一个很热门的话题。

1.2 图像识别任务

  • 分类:解决“是什么”,给一张图判断包含什么类别物体;
  • 定位:解决“在哪里”,即定位目标的位置;
  • 👀 目标检测“:解决是什么,在哪里”,定位这个目标的位置并且知道目标检测的物体的位置,本人感觉是分类和定位的结合体
  • 分割:解决“每个像素点属于哪个目标物体”;

1.3 目标检测核心问题

  • 位置的任意性,目标可以出现在图片的任何位置;

    • 在这里插入图片描述
  • 大小的多样性,同一张图像可能同时出现多个不同或者相同的目标,但是他们大小差异大;

    • 在这里插入图片描述
  • 形态的差异性,同一目标的形态差异可能很大,故同一个物体在目标检测中可能形状各部相同;

    • 在这里插入图片描述

1.4 物体检测概述

🐶 目标检测任务:找出每个物体,类别标注出来,还需要找出具体的位置,位置通常用边缘框表示

在这里插入图片描述


边缘框概念

用一个边框框主一个物体,如图:

在这里插入图片描述

这个图要注意一下:坐标系和普通不太一样,主要是坐标。

所以,如果物体很多,那需要的成本也是需要很高的。


目标检测数据集

  • 每一行表示一个物体
    • 图片文件名,物体类别,边缘框

1.5 锚框

概念

📄 用李沐老师的话说:就是计算机视觉的算法生成的一些框用来预测变化的框。

一类目标检测的算法是基础锚框的,如图:
在这里插入图片描述

提出多个框(锚框),首先做分类,是否有需要的目标物体,如果有则以这个框为主移动,直到框住的是目标物体,即真实的边缘框。

IoU–交并比

👀 上面提到,物体检测首先是用多个框框物体,所以这就涉及到如何进行不同框合并的问题,因为对于一个物体来说(假设他比较大哈),那么在他附近的图相识度一定很高,故需要进行框的合并。

在这里插入图片描述

Jacqard指数是衡量两个框的相似度。

赋予锚框标号

🔬 假设:一个没有训练的模型,每个像素都需要生产几个锚框;

📚 假设结果

  • 这样就造成了一张图片需要生成大量的锚框,导致大量的负类样本框(框住的不是目标物体);
  • 无论图片物体多还是少,对于需要预测的一个物体来说,这个模型在这种图片分类只有两种,一个是目标物体,一个是其他,故,这里就需要一个标注的东西,来标注生成的锚框是目标物体来说其他

在这里插入图片描述


给锚框分配对应的真实框

📘 以李沐老师上课图所示:

在这里插入图片描述

提示:本文给图片进行标号,从左到右为图1,图2,图3。

👀 图片描述,以图片1为例,列向表示真实物体的边缘框,行表示生产的锚框。

🍲 步骤:

  1. 先计算出所有的锚框和真实框的IoU,IoU值填入对应的格子中,;
  2. 找到矩阵中最大的元素,如图1,假设最大值为x23的框,说明锚框2和边缘框重合度最高,即用锚框2代表真实边缘框3;
  3. 每次找到后,将那一行、列删除,继续重复步骤2.

NMS

预测时,传入一张图片,模型依然生成一大堆框,然后会根据训练出来的偏移等参数预测锚框;这些框,会有很多重叠的类似的框,围着同一个目标输出;所以,就需要一个算法来去重,NMS就是其中之一。

在这里插入图片描述

🔬 分析,以狗分析。

  • 第一步,选取预测概率最大的,这里是dog=0.9
  • 第二步是去除,就是去除重复面积大于某一个IoU值的预测,这里出去的是dog=0.8,dog=0.7,这样就剩下一个框,就是第一步选中的;
  • 重复第二步操作。

2. 评价指标

2.1 TP、TN、FP、FN

这四个是分类最常用的了,无论是图像分类还是文本分类,都用这几个作为评价指标。

👀 T或者F代表的是该样本是否被正确分类,P或者N代表的是该样本被预测成了正样本还是负样本。

  • TP(True Positives)意思就是被分为了正样本,而且分对了,
  • TN(True Negatives)意思就是被分为了负样本,而且分对了
  • FP(False Positives)意思就是被分为了正样本,但是分错了(事实上这个样本是负样本)
  • FN(False Negatives)意思就是被分为了负样本,但是分错了(事实上这个样本是正样本)

一般对于分类来说,一般都会制作一个混淆矩阵,以上指标都很直观的展示出来了。

2.2 precision和recall

这个也是分类的常用指标。

precision

在这里插入图片描述

👀 解释:分类器分类的正类占总样本正类的比例,说白了就是分类模型预测为正的占总体样本的比例;

recall

在这里插入图片描述

👀 解释:分类器认为的正类样本且确实是正类的样本占所有样本中确实是正类样本的比例。

2.3 置信度

这个是一个统计学的概念,举个例子,一个样本中:

在这里插入图片描述

如果说置信度设置为0.95的话,那么目标检测算法将把1设置为正样本,其他都是负样本。

2.4 AP和mAP

AP其实就是precision和recall的组合画出的图像,如下图所示:

在这里插入图片描述

AP值就是上图画的那条曲线下的面积,面积越大,代表模型效果越好,这个和AUC值我感觉很像。

mAP就是AP的平均值。

3. 参考资料

  • 【41 物体检测和数据集【动手学深度学习v2】】https://www.bilibili.com/video/BV1Lh411Y7LX?vd_source=1fd424333dd77a7d3e2e741f7d6fd4ee
  • 【42 锚框【动手学深度学习v2】】https://www.bilibili.com/video/BV1aB4y1K7za?vd_source=1fd424333dd77a7d3e2e741f7d6fd4ee
  • 简单理解锚框(anchor box)生成过程 - 知乎
  • 《目标检测蓝皮书》第5篇 目标检测基础-CSDN博客
http://www.xdnf.cn/news/242749.html

相关文章:

  • PHP之CURL通过header传参数及接收
  • day12:遗传算法及常见优化算法分享
  • 指针与算法的双人舞:蓝桥杯两道趣味题的降维打击
  • Windows 查看电脑是否插拔过U盘
  • 【业务领域】电脑主板芯片电路结构
  • 【音视频】ffplay数据结构分析
  • C++中常用的十大排序方法之1——冒泡排序
  • 内存安全的攻防战:工具链与语言特性的协同突围
  • SIEMENS PLC程序代码 赋值 + 判断
  • 数值求解Eikonal方程的方法及开源实现
  • 25.4.30数据结构|并查集 路径压缩
  • 《汉诺塔问题的C语言实现》
  • 第十一届蓝桥杯 2020 C/C++组 既约分数
  • RocketMQ常见面试题一
  • 25_04_30Linux架构篇、第1章_02源码编译安装Apache HTTP Server 最新稳定版本是 2.4.62
  • 若依 FastAPI + Vue3 项目 Docker 部署笔记( 启动器打包教程)
  • 华为云Astro大屏连接器创建操作实例:抽取物联网iotda影子设备数据的连接器创建
  • (B题|矿山数据处理问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
  • 【音频】Qt6实现MP3播放器
  • 深入自制操作系统(一、Bootloader的实现)
  • 微软与Meta大幅增加人工智能基础设施投入
  • AI大模型基础设施:NVIDIA的用于AI大语言模型训练和推理的几款主流显卡
  • Arduino程序函数从入门到精通
  • 中国发布Web3计划:区块链列为核心基础技术,不排除发展加密资产应用!
  • 2025五一杯B题超详细解题思路
  • Qwen3 发布:优化编码与代理能力,强化 MCP 支持引领 AI 新潮流
  • 在阿里云 Ubuntu 24.04 上部署 RabbitMQ:一篇实战指南
  • 24.Linux中RTC的驱动实验_csdn
  • MATLAB R2024a安装教程
  • Spring MVC 与 FreeMarker 整合