目标检测原理

一、什么是目标检测

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

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

  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激活函数,但是最后一层却采用线性激活函数。

相关推荐
JAI科研3 小时前
YOLO 完全指南(七):YOLO识别工程化 (上)
人工智能·深度学习·神经网络·yolo·目标检测·计算机视觉·transformer
JarmanYuo4 小时前
YOLO 涨点研究(十二):具身 CV 进阶篇——Sim2Real 域随机化与真机部署
人工智能·pytorch·python·yolo·计算机视觉
YOLO数据集集合5 小时前
无人船视角水面目标检测数据集 |无人船 USV 水面目标检测 自主航行 避障 水域监测 目标检测9076期
深度学习·yolo·目标检测·无人机·无人机视角·无人船·自主航线
YOLO数据集集合5 小时前
渔船船只检测数据集 | 船只检测 渔船识别 拖船检测 海事监管 目标检测 YOLO格式 深度学习数据集 计算机视觉9076期
人工智能·深度学习·yolo·目标检测·计算机视觉
AI吃大瓜1 天前
人脸检测和行人检测4:Android实现YOLOv8 YOLO11 YOLO26人脸检测和人体检测(含源码,可实时检测)
android·yolo·人脸检测·人体检测·行人检测·yolo26
棣廷1 天前
初识OpenCV——Dlib人脸检测、关键点定位与表情识别
opencv·目标检测·机器学习
渡我白衣1 天前
Util工具类功能设计与类设计
linux·服务器·网络·c++·人工智能·目标检测·机器学习
飞猫的边缘AI1 天前
边缘AI-13:从YOLOv1到YOLO26:目标检测是怎么进化的
人工智能·yolo·目标检测·ai算法·边缘ai·yolo26
YOLO数据集集合2 天前
洪水场景建筑与植被检测数据集 | 洪水检测 建筑识别 植被监测 灾情评估 目标检测9073期
人工智能·目标检测·机器学习·计算机视觉·目标跟踪·无人机视角·灾害救援
稷下元歌2 天前
工业视觉实战:从标注数据到格式转换到工业质检基础,yolo识别编
yolo