深度学习之目标检测

      目标检测是计算机视觉中的一项基本任务,涉及识别和定位图像中的目标。深度学习彻底改变了对象检测,允许更准确和有效地检测图像和视频中的对象。典型的方法包括:使用滑动窗口配合特征提取(如HOG特征)、SVM(支持向量机)AdaBoost等分类器、特征选择和组合(如Haar特征、LBP特征)等。

目标检测概念:能够识别图片中有哪些物体并且找到物体存在的位置。

目标检测数据集

VOC数据集:该数据集来源于PASCAL VOC计算机视觉挑战赛。数据集共分为四大类,20小类。

COCO数据集:该数据集来源于微软2014年出资标注的MS COCO数据库。数据集包含20万个图像,80个类别,平均每个图像的目标数是7.2。

目标检测的Ground Truth

1.类别+真实边界框坐标(x,y,w,h),假设图像尺寸为1000*800px,则如图2所示

Class

x

y

width

height

Dog

100

600

150

100

Horse

700

300

200

250

Person

400

400

100

500

2.YOLO(TXT)格式:(x,y,w,h)分别代表中心点坐标和宽、高。

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

COCO(JSON)格式:(Xmin,Ymin,W,H),不是归一化格式,分别代表左上角坐标个宽、高。

目标检测的评估指标

1.交并比 (Intersection over Union,IoU):

      计算 2 个区域的重叠比,用 2 个区域的交集除以其并集,公式如下,DR 表示检测结果,GT 表示 Ground Truth。

2.真正(TP)、假正(FP)、真负(TN)、假负(FN):

正确的正向预测(True Positive,TP):正样本被正确检测的数量,需要满足 3 个条件:

  • 置信度(Confidence Score)大于阈值,实际上预测出的所有的框都要满足这个条件;

  • 预测类型与标签类型匹配;

  • 预测的 Bounding Box 与 Ground Truth 的交并比 (Intersection over Union,IoU,后续会详细介绍) 大于阈值 (e.g. 0.5) ,当有多个满足条件的预选框,则选择置信度最大的作为TP,其余的作为 FP。

错误的正向预测(False Positive,FP):负样本被检测为正样本的数量,也称误报,预测的 Bounding Box 与 Ground Truth 的 IoU 小于阈值的检测框(定位错误)或者预测的类型与标签类型不匹配(分类错误)。

错误的负向预测(False Negative,FN):正样本没被检测为负样本的数量,也称漏报,指没有检测出的 Ground Truth 区域。

正确的负向预测(True Negative,TN):是负样本且被检测出的数量,无法计算,在目标检测中,通常也不关注 TN。

3.准确度 (Percision) :

      准确度是在识别出的物体中,正确的正向预测 (True Positive,TP) 所占的比率。

4.召回率 (Recall):

      召回率是正确识别出的物体占总物体数的比率。

5.API计算方法:11点法

目标检测的传统方法

滑动窗口法:

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

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

目标检测的深度学习方法

anchor box:

  • anchor box用ratio + scale描述:

  • feature Map的点来决定位置

  • scale来表示目标的面积大小

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

anchor-base和anchor-free:

anchor-base是自顶向下的

anchor-free是自底向上的

tow stage算法:

one stage算法:

非极大值抑制:

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

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

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

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

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

YOLO

      YOLO(You Only Look Once)系列是由Joseph Redmon等人在2016年首次提出的是一种目标对象检测算法。这一系列算法通过将对象检测视为单次回归问题,从输入图像直接预测对象边界框和类别,极大提高了检测速度。YOLO系列在其每个版本中都进行了改进和优化,逐步提升了精度和速度。

YOLOv1

      YOLOv1是YOLO系列的第一个版本,由Joseph Redmon等人在2016年提出。其核心思想是将对象检测问题转换为单次回归问题。

方法:

  • 将输入图像划分为SxS的网格(例如7x7)。

  • 每个网格预测B个边界框及其置信度(即边界框内包含对象的概率),同时预测C个类别的概率。

  • 最终输出为SxSx(B*5+C)的张量,每个网格预测B个边界框,每个边界框有5个参数(x, y, w, h, 置信度)和C个类别概率。

特点:

  • 快速:YOLOv1能够实时处理视频流。

  • 准确:在大物体检测上表现良好,但在小物体检测和定位精度方面存在不足。

网络架构:

损失函数: YOLOv1使用一个多部分损失函数,包括边界框回归损失、置信度损失和分类损失。

目标检测是指通过深度学习模型检测图像或视频中的特定目标,如行人、车辆等。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、付费专栏及课程。

余额充值