网站大量收购独家精品文档,联系QQ:2885784924

深度学习案例教程 教案5.5实践任务-行人目标检测和实例分割讲解.docx

深度学习案例教程 教案5.5实践任务-行人目标检测和实例分割讲解.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

05实践任务-行人目标检测与实例分割

1

我们本节来学习实践任务行人目标检测与实例分割。

行人目标检测与实例分割在生活中可以满足行人安全监控、人流统计、智能交通、行为识别等多个方面的需求,为我们的生活和社会提供更加安全、智能和便利的环境。

主要使用场景有:

1.行人安全与监控

2.行人计数与流量统计

3.自动驾驶与智能交通

4.行人姿态分析与行为识别

5.人机交互与增强现实

2

首先,我们先来看看实践任务所使用的数据集。

Penn-Fudan是由宾夕法尼亚大学发布的一个行人检测数据集,图片拍摄自校园内和城区街道。数据集对每一张图片都标记出了行人的轮廓坐标,每张图片至少会有一个行人,总共有170张图片和345个实例。Penn-Fudan数据集的目录结构如图1所示。数据集中的图片示例如图2所示。

为了更好地使用该数据集,我们需要将它封装成数据集类,以便通过下标索引到图片和标注好的类别、边框和掩码。我们来看一下代码如何实现。

3

这段代码是一个用于处理PennFudan数据集的类PennFudanDataset。

4

-在初始化方法__init__中,它接收一个根目录路径root和一个变换函数transforms作为参数,并将它们保存在实例变量中。

5

-在__getitem__方法中,它根据给定的索引idx加载图像和掩码。

-图像路径和掩码路径通过拼接根目录路径和子目录路径得到。

-图像被打开并转换为RGB格式,而掩码被打开并转换为NumPy数组。

6

-掩码中的每个实例被编码为不同的颜色,其中第一个id是背景,所以移除它。

7

-将颜色编码的掩码拆分为一组二进制掩码

8

-接着,获取每个掩码中非零像素的位置,并计算出边界框的坐标。

9

将边界框坐标、二进制掩码都转换成张量并保存。

10

定义一个空字典对象,将边界框坐标、实例类别、二进制掩码、图像ID、边界框面积等保存到这个对象中。

接着实例化数据集并查看数据。

11

接下来,我们来搭建目标检测模型。

使用视觉工具包torchvision可以快速搭建FasterR-CNN模型,并加载预训练的模型。

下面这段代码就使用了torchvision库来加载在COCO数据集上经过预训练的MaskR-CNN模型。

模型的目标是将图像中的物体进行分割和检测。

12

首先,我们创建了一个model对象,并加载了预训练的ResNet-50FPN权重。

13

然后,我们指定了两个类别:人和背景。

接下来,我们获取了分类器的输入参数数量。

最后,我们用新的FastRCNNPredictor替换了预训练模型的分类器头部,以便进行自定义的分类任务。

14

实践任务3是改造模型以适应新的数据集

我们使用微调预训练的方式使用MaskR-CNN模型。

15

我们需要获取掩码分类器的输入特征数,然后用新的掩码预测器替换。这里的新掩码预测器就是使用的MaskR-CNN模型。

16

然后我们来看下实践任务4调用工具训练模型。

由于数据集比较小,所有我们需要做一些数据增强的工作。下述代码定义了图像变换操作,其实就是随机翻转训练图像。

17

首先,定义数据转换函数get_transform,用于将图像数据转换为模型所需的张量格式,并可选择进行随机水平翻转

18

然后创建训练数据集和测试数据集,

19

将数据集打乱并划分为训练集和测试集

20

接着,创建训练和测试数据加载器,用于批量加载数据进行训练和评估

21

实例化模型并将其移动到适当的设备上

22

定义优化器和学习率调度器,用于优化模型参数和调整学习率

23

迭代训练模型,每个epoch打印训练信息并更新学习率,

然后在测试数据集上进行评估

24

最后实践任务5:评估和测试模型

经过一段时间的运行,最终得到了训练的第1个epoch后的mAP结果。主要的输出包含两部分,即目标检测和实例分割。大家可以看一下相应的结果。

那本节的实践任务-行人目标检测与实例分割就到这里。

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档