深度学习之目标检测

一、目标检测的概念

目标检测是计算机视觉领域中的一个重要任务,旨在从图像或视频中找出特定目标的位置并确定其类别。例如,在一张包含汽车、行人、交通标志的街道图像中,目标检测算法能够准确地标识出每一辆汽车、每一个行人以及每个交通标志的位置(通常用矩形框表示),并说明它们分别是什么类别。

二、目标检测的数据集

1.VOC数据集:PASCAL VOC挑战赛(The PASCAL Visual Object Classes)是一个世界级的计算机视觉挑战赛。它含有4大类,20小类 VOC 2007:9963图片  /24640目标 VOC 2012:23080图片   /54900目标。

2.COCO数据集:起源于微软2014年出资标注的MS COCO数据库。其中他包含20万个图像 80个类别 超过50万个目标标注 平均每个图像的目标数是7.2。

三、目标检测的Ground Truth

YOLO(TXT)格式: (x,y,w,h) 分别代表中心点坐标和宽、高 x,y,w,h均为归一化结果

VOC(XML)格式: (Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。

COCO(JSON)格式: (Xmin, Ymin, W, H),其中x,y,w,h均不是归一化后的数值,分别代表左上角坐标和宽、高

四、目标检测的评估指标

1.IoU(Intersection over Union):IoU,即交并比,是目标检测中一个重要的评价指标。它用于衡量预测的目标框(bounding box)与真实的目标框之间的重叠程度。

计算方式为预测框与真实框的交集面积除以它们的并集面积,数学表达式为:

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

2.检测结果的类别

相关公式:

(Precision:准确率,查准率 Recall:召回率,查全率 P-R曲线 mean AP:每个类别所得到的AP的均值 Average Precision:11点法、近似面积法)

3.mean与average

mean:算数平均 average:包含其他的度量指标 Average P:P值需要设计度量规则让它均衡 mean AP:AP够均衡了,直接mean即可。

AP计算方法:11点法

五、目标检测的传统方法

2.深度学习方法

anchor box用ratio+scale描述

(1)feature map的点来决定位置

(2)scale来表示目标的大小(面积大小)

(3)aspect ratio来表示目标的形状(长宽比)

anchor-base和anchor-free

(1)anchor-base:anchor-base是自顶向下的类似于传统方法,滑动窗口法穷举出许多,然后再根据置信度之类的进行筛选

(2)anchor-free:anchor-free是自底向上的 想办法自动生成,不穷举 free掉了anchor的预设过程

two stage算法流程

one stage算法流程

常见two stage算法

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

其他:Cascade R-CNN、Guided Anchoring

常见one stage算法

YOLO系列:YOLO v1-v5

SSD系列:SSD、DSSD、FSSD

其他经典:RefineDet

五、YOLO-V1

核心思想

网络的架构

  1. 网络结构
    • YOLO - V1 采用了一个单一的卷积神经网络(CNN)来同时预测多个目标的类别和位置。它将输入图像划分为 S×S 个网格(grid cell)。例如,对于一个 448×448 的输入图像,可能会划分为 7×7 的网格。
    • 网络结构基于 GoogleNet,包含 24 个卷积层和 2 个全连接层。卷积层用于提取图像的特征,全连接层用于最后的分类和位置预测。

  1. 输入与输出
    • 输入:YOLO - V1 的输入图像大小为固定的 448×448。
    • 输出:对于每个网格单元,网络会预测 B 个边界框(bounding box)以及这些边界框的置信度(confidence)和 C 个类别概率。每个边界框的置信度定义为,其中表示该边界框包含目标的概率,是预测框与真实框的交并(IoU)。网络最终输出一个 S×S×(B×5 + C) 的张量。例如,如果 S = 7,B = 2,C = 20(假设检测 20 个类别),那么输出张量的维度就是 7×7×(2×5+20)=7×7×30。

YOLO - V1 的优缺点

  1. 优点
    • 速度快:YOLO - V1 是一个端到端(end - to - end)的目标检测模型,由于采用单一的网络结构同时进行特征提取、目标定位和分类,所以检测速度非常快,能够实现实时目标检测。例如,在 Titan X GPU 上,能够达到 45 帧 / 秒的检测速度。
    • 泛化能力较好:它对不同尺寸和比例的目标具有一定的适应性,因为网络能够学习到图像的全局特征,并且每个网格单元都可以预测多个边界框。
  2. 缺点
    • 检测精度有限:尤其是在检测小目标和密集目标时效果较差。由于每个网格单元只能预测有限个边界框(通常为 2 个),对于小目标或者目标分布密集的场景,可能会遗漏一些目标或者预测不准确。
    • 定位精度相对较低:相比于一些 Two - Stage 的目标检测方法(如 Faster R - CNN),YOLO - V1 的边界框预测不够精确,因为它没有采用类似于 Faster R - CNN 中的区域建议网络(RPN)来精细调整边界框。

目标检测是指通过深度学习模型检测图像或视频中的特定目标,如行人、车辆等。ytorch是一个功能强大的深度学习库,专门用于目标检测任务。下面是关于ytorch深度学习目标检测的入门到实战: 1. 深度学习基础:首先需要了解深度学习的基本概念,包括神经网络、卷积神经网络(CNN)等。可以学习相关的课程或教材,掌握深度学习的基本原理。 2. ytorch入门:学习使用ytorch进行目标检测的基本知识,包括ytorch的安装、环境配置等。可以参考ytorch官方文档或相关教程。 3. 数据准备:准备用于目标检测的数据集,包括标注好的训练集和测试集。数据集的质量对于目标检测的效果至关重要。 4. 模型训练:使用ytorch构建目标检测模型,并进行训练。可以使用预训练的模型进行迁移学习,也可以根据自己的需求设计新的模型结构。 5. 模型调优:对训练好的模型进行调优,包括参数调整、超参数优化等。 6. 模型评估:使用测试集对训练好的模型进行评估,分析模型的性能指标,并对模型进行改进。 7. 实战应用:将训练好的模型应用于实际目标检测任务中,可以是图像或视频中的目标检测。不断优化模型,提高目标检测的准确率和效率。 通过以上步骤,可以从入门到实战地学习和应用ytorch深度学习目标检测,掌握深度学习目标检测的基本原理和实践技巧,为相关领域的研究和应用提供支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值