目标检测原理

news/2024/7/11 0:11:19 标签: YOLO, 目标检测, 目标跟踪

一、什么是目标检测

目标检测的任务是找出图像中所有感兴趣的目标(物体),确定他们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状、姿态,再加上光照、遮挡等因素的干扰,目标检测在计算机视觉中也是一项具有挑战性的任务。

计算机视觉中关于目标检测的四大类任务:

  1. 分类(Classification):给定一张图片或一段视频判断里面包含什么类别的目标。
  2. 定位(Location):定位出这个目标的的位置。
  3. 检测(Detection):即定位出这个目标的位置并且知道目标物是什么。
  4. 分割(Segmentation):分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每一个像素属于哪个目标物或场景”的问题。

目标检测任务,其实就是分类问题+回归问题的一个叠加,分类是区分目标属于哪个类别,回归用来定位目标所在的位置。

目标检测算法的预测结果应该包含:图像、图像中的目标类别、以及每个目标的边框位置。我们用这个结构的数据和验证集的数据进行比较,来衡量目标检测的质量。

IoU(交并比)的计算:交并比是预测边界框和标注数据边界框的交集和并集之间的比率,这个统计量也叫做 Jaccard 指数(Jaccard Index)。 

精确率:给定的图片中类别C的精确率 = 图片中类别C的真正类数量 / 图片中类别 C 所有目标的数量。

平均精度:100 个精度率的值(每张图片一个值)。让我们对这些 100 个值进行平均。

平均精度均值:有20个类别,对每一个类别,我们都进行相同的计算流程:IoU -> 精确率(Precision) -> 平均精度(Average Precision)。这样就有20个类别的平均进度,我们对所有类别的平均精度值计算其均值(average/mean)

平均精度均值(mAP)是预测目标位置和类别的性能度量标准。

二、目标检测的算法

基于深度学习的目标检测算法分为2类:Two Stage和One Stage。

  1. Two Stage:先预设一个区域,改区域称为region proposal,即一个可能包含待检测物体的预选框(简称RP),再通过卷积神经网络进行样本分类计算。流程是:特征提取 -> 生成RP -> 分类/回归定位。常见的Two Stage算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、R-FCN等。
  2. One Stage:不用生成RP,直接在网络中提取特征值来分类目标和定位。流程是:特征提取 -> 分类/回归定位。常见的One Stage算法有:OverFeat、YOLOv1、YOLOv2、YOLOv3、YOLOv5、SSD、RetinaNet等。

1、滑动窗口生成RP:滑动窗口其实就是个穷举的过程,由于事先不知道要检测的目标大小,所以要设置不同大小比例的窗口去滑动,而且要选取合适的步长。

2、利用非极大值抑制算法挑最优解:不管是哪个目标检测的算法,一个目标都会被多次检测到,我们会有很多结果,但是大多数的结果置信度都不高,我们利用非极大值抑制算法(NMS)就能挑出那个置信度最好的结果。

三、YOLO原理

YOLO是You Only Look Once的简称,它不使用窗口滑动,而是直接将原始图片分割成互不重合的小方块,然后通过卷积最后生产这样大小的特征图,可以认为特征图的每个元素也是对应原始图片的一个小方块,然后用每个元素来可以预测那些中心点在该小方格内的目标,这就是Yolo算法的朴素思想。

YOLO网络设计:

YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。网络结构参考GooLeNet模型,包含24个卷积层和2个全连接层。对于卷积层,主要使用1x1卷积来做channle reduction,然后紧跟3x3卷积。对于卷积层和全连接层,采用Leaky ReLU激活函数,但是最后一层却采用线性激活函数。


http://www.niftyadmin.cn/n/5203953.html

相关文章

海外IP代理:数据中心代理IP是什么?好用吗?

数据中心代理是代理IP中最常见的类型,也被称为机房IP。这些代理服务器为用户分配不属于 ISP(互联网服务提供商)而来自第三方云服务提供商的 IP 地址。数据中心代理的最大优势——它们允许在访问网络时完全匿名。 如果你正在寻找海外代理IP&am…

html a标签资源下载

主要用作关卡编辑器生成配置下载,其中存储路径为浏览器默认下载路径 code /*** fileDownload* param content 文件内容,-str* param fileName 文件名,-file/level1.json*/downloadByBlob(content: string, fileName: string){document.creat…

java游戏制作-飞翔的鸟游戏

一.准备工作 首先创建一个新的Java项目命名为“飞翔的鸟”,并在src中创建一个包命名为“com.qiku.bird",在这个包内分别创建4个类命名为“Bird”、“BirdGame”、“Column”、“Ground”,并向需要的图片素材导入到包内。 二.代码呈现 …

【RocketMq系列-02】RocketMq的架构解析和高性能设计

RocketMq系列整体栏目 内容链接地址【一】RocketMq安装和基本概念https://zhenghuisheng.blog.csdn.net/article/details/134486709【二】RocketMq的架构解析和高性能设计/font>https://zhenghuisheng.blog.csdn.net/article/details/134559514 RocketMq的架构解析和高性能设…

shell脚本三

目录 一、循环语句 一、循环 二、for循环语句 1.列表循环 2.与c语言循环相似的for循环 3.使用for打印三角形以及乘法表 4.测试172.16.114.0网段存活的主机并将存活的主机IP地址写入文件中,未存活的主机放入另一文件中 三、while循环语句 四、until循环语句…

2

【任务 2】私有云服务运维[10 分] 【适用平台】私有云 【题目 1】OpenStack 开放镜像权限[0.5 分] 使 用 OpenStack 私 有 云 平 台 , 在 OpenStack 平台的 admin 项 目 中 使 用 cirros-0.3.4-x86_64-disk.img 镜像文件创建名为 glance-cirros 的镜像,通…

普冉PY32系列(十二) 基于PY32F002A的6+1通道遥控小车III - 驱动篇

目录 普冉PY32系列(一) PY32F0系列32位Cortex M0 MCU简介普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单普冉PY32系列(四) PY32F002A/003/030的时钟设置普冉PY32系列(五) 使用JLink RTT代替串口输出日志普冉PY32…

导购APP与淘客查券返利机器人的对比:深刻揭露行业本质

导购APP与淘客查券返利机器人的对比:深刻揭露行业本质 随着互联网的快速发展,购物方式也发生了翻天覆地的变化。导购APP和淘客机器人成为了消费者购物时的两种常见工具。然而,在这两者之间,究竟该如何选择呢?本文将通…