学习笔记--目标检测基础知识大全

news2025/1/17 0:58:08

来源:投稿 作者:LSC

编辑:学姐

目录

1.特点

2.数据集

2.1 VOCS数据集

2.2 COCO数据集

3.评价指标

3.1 GroundTruth

3.2 IOU(交并比,Intersection over Union)

3.3 基本指标

3.4 AP与mAp

3.5 案例演示

4. 脑图,上述总结

5. 算法发展总览

6. 传统目标检测流程

6.1

6.2传统区域选择

6.3 传统特征提取

7 基于深度学习的检测算法

7.1 基于anchor划分

7.2一阶段和两阶段

7.3 NMS

8.anchor-base算法结构

8.1算法结构图

8.2主干网络(backbone)

8.3感受野

8.4 Neck部分

8.5 Head部分

8.6 脑图总结


目标检测问题是识别图片中有哪些物体并且找到物体的存在位置。

1.特点

  • 目标种类与数量繁多问题

  • 目标尺度不均问题

  • 遮挡、噪声等外部环境干扰

2.数据集

2.1 VOCS数据集

PASCAL VOC挑战赛(The PASCAL Visual Object Classes)是一个世界级的计算机视觉挑战赛。

4大类,20小类

VOC2007: 9936图片/24640目标

VOC2012: 23080图片/54900目标

2.2 COCO数据集

起源于微软2014年出资标注的MS COCO数据库,全称是Microsoft Common Objects in Context

  • 包含20万个图像

  • 80个类别

  • 超过50万个目标标注

  • 平均每个图像的目标数为7.2

3.评价指标

3.1 GroundTruth

目标检测的ground truth是指: 类别+真实边界框坐标(x,y,w,h)

假设上图尺寸为1000*800px

3.2 IOU(交并比,Intersection over Union)

生成的预测框会很多,首先过滤掉低类别置信度的检测结果,再使用IoU作为边界框正确性的度量指标。

3.3 基本指标

预测结果中的正样本就是有画框的地方,负样本就是没有框的地方(一般是背景)。

3.4 AP与mAp

  • Precision 准确率/查准率

  • Recall 召回率/查全率

  • AP(Average Precision) 用11点法、近似面积法求得

  • mean AP: 每个类别所得到AP的均值

mean与average

  • mean 算数平均

  • average 包含其他的度量标准

  • Average P: P值需要设计度量规则让它均衡

  • mean AP: AP够均衡了,直接mean即可

AP计算方法: 11点法

R = [0, 0.1, 0.2, 0.3.....,0.7, 0.8, 0.9, 1]

P = [1, 0.666, 0.4285, 0.4285, ....., 0, 0, 0]

3.5 案例演示

(1)根据IoU划分TP&FP

(2)按置信度的从大到小,计算P值和R值

(3)绘制P-R曲线,进行AP计算

多个与GT重叠的候选框均符合条件时,选取IoU最高的为TP,其余均为FP。

AP 计算方法: 面积法

12年后开始使用面积法

AP可以解释为P-R曲线的近似AUC(面积)

修正PR曲线为单调递减,进行AP计算

4. 脑图,上述总结

5. 算法发展总览

时间线梳理

6. 传统目标检测流程

6.1

  • 区域选择: 通常采用滑动窗口方法

  • 特征提取: 采用SIFT、HOG等

  • 分类器: 采用SVM、Adaboost等机器学习算法

6.2传统区域选择

滑动窗口法

  • 是一种暴力搜索,随机设计一个窗口,让它在图片上滑动,随机搜索区域。

  • 特点: 任务相对独立,需要人工设计尺寸,大量冗余操作,定位不准确。

CNN更有效

特点: 权值共享、减少滑动窗口的冗余,定位不准

6.3 传统特征提取

特征提取

颜色特征: 颜色分布直方图

形状特征: SIFT、HoG

纹理特征: 反复出现的局部模式

边缘特征: canny、sobel

7 基于深度学习的检测算法

7.1 基于anchor划分

anchor base和anchor free

什么是anchor

anchor-base是自顶向下的

anchor-free是自底向上的

anchor-free算法是free掉的是anchor的预设过程

  • anchor box用ratio + scale描述:

  • feature Map的点来决定位置

  • scale来表示目标的大小

  • aspect ratio来表示目标的形状

7.2一阶段和两阶段

two stage算法流程

one stage算法流程

常见的two-stage算法

经典发展线: RCNN->SPP Net->Fast R-CNN->Faster R-CNN

其他: Cascade R-CNN、 Guided Anchoring

常见one-stage算法

YOLO系列: YOLO v1-v5

SSD系列: SSD、DSSS、 FSSD

其他经典: RefineDet

https://github.com/hoya012/deep_learning_object_detection

7.3 NMS

非极大值抑制(Non-maximum suppression, NMS)

设定目标框的置信度阈值,常用的阈值是0.5左右

根据置信度降序排列候选框列表

选取置信度最高的框A添到输出列表,将其从候选框列表中删除

候选框列表中的所有框依次与A计算IoU,删除大于阈值的候选框

重复上述过程,直到候选框列表为空,返回输出列表

8.anchor-base算法结构

8.1算法结构图

8.2主干网络(backbone)

用于进行特征提取,生成特征图供后面的网络使用

常见: VGG、ResNet、darknet

网络越来越深:

(1)网络越深非线性表达能力越强

(2)网络越深,越深层次的特征对于图像最初的变化越不敏感,鲁棒性越好,参数多,网络越“聪明”,泛化能力强

8.3感受野

(1)定义:

卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。

(2)理论感受野的计算

k: kernel size

p: padding size

s: stride size

n: feature map size为n*n

r: 感受野的size为r*r

J: feature map上前进1步相当于输入图像上前进个多少像素

(3)实际感受野的表现

8.4 Neck部分

放在backbone和head之间的,为了更好的利用backbone提取的特征。

FPN(Feature Pyramid Network, 特征金字塔网络)

8.5 Head部分

检测头

利用特征图进行最终目标检测的结构

8.6 脑图总结

关注下方《学姐带你玩AI》🚀🚀🚀

目标检测论文PDF版回复“CVPR”免费领

码字不易,欢迎大家点赞评论收藏!

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

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

相关文章

代码规范----编程规约(下)

目录 四、OOP规约 五、日期时间 六、集合处理 四、OOP规约 (1)、避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可 (2)、所有的覆写方法&#xff0…

【C语言学习笔记】:二级指针

指针可以指向一个普通类型的数据,例如 int、double、char 等,也可以指向一个指针类型的数据,例如 int *、double *、char * 等。 如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。 假设…

Leetcode.2017 网格游戏

题目链接 Leetcode.2017 网格游戏 Rating : 1719 题目描述 给你一个下标从 0 开始的二维数组 grid,数组大小为 2 x n,其中 grid[r][c]表示矩阵中 (r, c)位置上的点数。现在有两个机器人正在矩阵上参与一场游戏。 两个机器人初始位置都是 (0…

带你看懂RuoYi动态数据源切换

文章目录数据源是什么一、spring中是如何处理各种数据源的?1.开搞springboot2.创建一个测试类二、有了如上的理论,那么想想动态切换数据源吧参考若依的动态数据源配置总结数据源是什么 数据源,对于java来说,就是可用的数据库,那么我平时开发的springboot springclo…

算机网络安全基础知识5:sql注入漏洞攻击,DVWA演示sql注入漏洞,如何利用sql注入查看数据库信息,sqlmap,sql注入漏洞的防御

算机网络安全基础知识5:sql注入漏洞攻击,DVWA演示sql注入漏洞,如何利用sql注入查看数据库信息,sqlmap,sql注入漏洞的防御 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能…

Unity/C#------委托与事件(一篇文章彻底搞懂...)

一:委托 所有的代码语言创造者母语都是英语,我们从英语翻译到中文的过程中难免会存在一些不太能还原本意的词,比如我之前一直不理解构造函数和析构函数,只知道这俩货作用相反,直到我看到了它的英文意思,Con…

spring重点整理篇--springMVC(嘿嘿,开心哟)

Spring MVC是的基于JavaWeb的MVC框架,是Spring框架中的一个组成部分(WEB模块) MVC设计模式: Controller(控制器) Model(模型) View(视图) 重点来了😄 SpringMVC的工作机制…

Nginx+Tomcat实现负载均衡、动静分离(脚本方法)

一、Nginx 负载均衡实现原理1、Nginx 实现负载均衡是通过反向代理实现反向代理(Reverse Proxy) 是指以 代理服务器(例:Nginx) 来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器&#xff0…

【PGMAN:无监督的生成式多对抗网络】

PGMAN: An Unsupervised Generative Multiadversarial Network for Pansharpening (PGMAN:一种无监督的生成式多对抗网络) 全色锐化的目的是融合低分辨率多光谱(MS)图像和由卫星获取的高分辨率全色(PAN&a…

OnlyOffice验证(三)OnlyOffice编译结果自制Docker镜像

OnlyOffice验证(三)OnlyOffice编译结果自制Docker镜像 之前验证了OnlyOffice验证(二)在Centos7上部署OnlyOffice编译结果,由于现在普遍都是容器化部署,所以还是验证下Doker镜像打包是否可行,因为…

渗透five86-2

kali的ip为192.168.56.104,利用nmap或arp-scan -l查看发现了靶机ip192.168.56.120这里存在20、21、80端口,这边需要将靶机ip进行域名绑定,对/etc/hosts改写,将192.168.56.120 与five86-2绑定输入ip后,发现了有log in由…

Kubernetes的网络架构及其安全风险

本博客地址:https://security.blog.csdn.net/article/details/129137821 一、常见的Kubernetes网络架构 如图所示: 说明: 1、集群由多个节点组成。 2、每个节点上运行若干个Pod。 3、每个节点上会创建一个CNI网桥(默认设备名称…

Qt——自定义界面之QStyle

1. Qt控件结构简介 首先我们要来讲讲GUI控件结构,这里以QComboBox为例: 一个完整的控件由一种或多种GUI元素构成: Complex Control Element。Primitive Element。Control Element。 1.1 Complex Control Element Complex control elements …

【C语言跬步】——指针数组和数组指针(指针进阶)

一.指针数组和数组指针的区别 1.指针数组是数组,是一种存放指针的数组; 例如: int* arr[10]; 2.数组指针是指针,是一种指向数组的指针,存放的是数组的地址; 例如: int arr[5]; int (p)[5]&a…

Redis学习(二):Redis安装测试

概述 Redis是什么 Redis, Remote Dictionary Server, 即远程字典服务。免费开源的数据库。 由C语言编写,支持网络,可基于内存亦可持久化的日志型、KV数据库,并提供所种语言的API。 Redis能干嘛 用于内存存储,持久化。rdb、ao…

[学习笔记]黑马程序员Spark全套视频教程,4天spark3.2快速入门到精通,基于Python语言的spark教程

文章目录视频资料:一、Spark基础入门(环境搭建、入门概念)第二章:Spark环境搭建-Local2.1 课程服务器环境2.2 Local模式基本原理2.3 安装包下载2.4 Spark Local模式部署第三章:Spark环境搭建-StandAlone3.1 StandAlone…

驾考笔记_2023

科目一1> 扣分制度1.1> 超速1.2> 超载1.3> 车牌1.4> 速记口诀2> 满分学习2.1> 消分学习2.2> 满分重考;3> 罚款制度3.1> 考证3.2> 审验教育3.3> 其他4> 车速规定4.1> 高速_最低限速4.2> 普路_最高限速5> 证件相关5.…

双指针法|位运算|离散化|区间合并

目录 双指针算法 位运算 离散化 序列合并 双指针算法 题目描述&#xff1a;1.输入n个单词&#xff0c;每个单词在输入的时候按空格隔开&#xff0c;之后打印出每个单词且换行 #include<iostream> #include <string>using namespace std; int main() {strin…

计算机网络中的原码、反码、补码

写在前面 原码、反码、补码是计算机组成原理中的概念&#xff0c;是计算机网络的基础知识之一。这些概念是为了处理二进制数的符号位而引入的&#xff0c;常用于计算机中的整数运算&#xff0c;也常用于数据存储和传输等领域。因此&#xff0c;了解和掌握这些概念对于理解计算机…

软测入门(五)接口测试Postman

Postman 一款Http接口收工测试工具。如果做自动化测试会使用jemter做。 安装 去官网下载即可。 https://www.postman.com/downloads/?utm_sourcepostman-home 功能介绍 页面上的单词基本上都能了解&#xff0c;不多介绍。 转代码&注释 可将接口的访问转为其他语言的…