在这个由两部分组成的系列中,我们演示了如何为 3D 对象检测任务标记和训练模型。 在第 1 部分中,我们讨论了我们正在使用的数据集以及任何预处理步骤,以理解和标记数据。 在第 2 部分中,我们将介绍如何在您的数据集上训练模型并将其部署到生产环境中。
激光雷达 (光检测和测距)是一种通过用激光瞄准物体或表面并测量反射光返回接收器的时间来确定距离的方法。 自动驾驶汽车公司通常使用 LiDAR 传感器来生成对其车辆周围环境的 3D 理解。
随着 LiDAR 传感器变得更易于获取且更具成本效益,客户越来越多地在机器人、信号映射和增强现实等新领域中使用点云数据。 一些新的移动设备甚至包括 LiDAR 传感器。 LiDAR 传感器的日益普及增加了人们对用于机器学习 (ML) 任务的点云数据的兴趣,例如 3D 对象检测和跟踪、3D 分割、3D 对象合成和重建,以及使用 3D 数据验证 2D 深度估计。
在本系列中,我们将向您展示如何训练在点云数据上运行的对象检测模型来预测 3D 场景中车辆的位置。 这篇文章,我们特别关注标记 LiDAR 数据。 标准 LiDAR 传感器输出是一系列 3D 点云帧,典型捕获速率为每秒 10 帧。 要标记此传感器输出,您需要一个可以处理 3D 数据的标记工具。 亚马逊SageMaker地面真相 可以轻松地在单个 3D 帧或一系列 3D 点云帧中标记对象,以构建 ML 训练数据集。 Ground Truth 还支持相机和 LiDAR 数据与多达八个摄像机输入的传感器融合。
数据对于任何 ML 项目都是必不可少的。 3D 数据尤其难以获取、可视化和标记。 我们使用 A2D2数据集 在这篇文章中,并引导您完成可视化和标记它的步骤。
A2D2 包含 40,000 个带有语义分割和点云标签的帧,包括 12,499 个带有 3D 边界框标签的帧。 由于我们专注于对象检测,因此我们对带有 12,499D 边界框标签的 3 帧感兴趣。 这些注释包括 14 个与驾驶相关的类别,如汽车、行人、卡车、公共汽车等。
下表显示了完整的类列表:
Index | 班级名单 |
1 | 动物 |
2 | 自行车 |
3 | 总线 |
4 | 汽车 |
5 | 大篷车运输车 |
6 | 骑单车 |
7 | 紧急车辆 |
8 | 摩托车手 |
9 | 摩托车 |
10 | 行人 |
11 | 拖车 |
12 | 卡车 |
13 | 多功能车 |
14 | 面包车/SUV |
我们将训练我们的检测器专门检测汽车,因为这是我们数据集中最常见的类别(数据集中 32616 个对象中的 42816 个被标记为汽车)。
解决方案概述
在本系列中,我们将介绍如何使用 Amazon SageMaker Ground Truth 可视化和标记您的数据,并演示如何在 Amazon SageMaker 训练作业中使用此数据来创建对象检测模型,并将其部署到 Amazon SageMaker 终端节点。 特别是,我们将使用 Amazon SageMaker notebook 来操作解决方案并启动任何标记或训练作业。
下图描绘了传感器数据从标记到训练再到部署的整体流程:
您将学习如何训练和部署实时 3D 对象检测模型 亚马逊SageMaker Ground Truth 具有以下步骤:
- 下载并可视化点云数据集
- 准备要标记的数据 Amazon SageMaker Ground Truth 点云工具
- 启动分布式 Amazon SageMaker Ground Truth 训练作业 MM检测3D
- 评估您的培训工作结果并分析您的资源利用率 Amazon SageMaker调试器
- 部署异步 SageMaker端点
- 调用端点并可视化 3D 对象预测
用于实施此解决方案的 AWS 服务
先决条件
下图演示了如何创建私人劳动力。 有关书面的分步说明,请参阅 使用标签劳动力页面创建Amazon Cognito劳动力.
启动 AWS CloudFormation 堆栈
现在您已经了解了解决方案的结构,您可以将其部署到您的帐户中,以便运行示例工作流。 与标签管道相关的所有部署步骤均由 AWS CloudFormation 管理。 这意味着 AWS Cloudformation 会创建您的笔记本实例以及任何角色或 Amazon S3 存储桶以支持运行该解决方案。
您可以在AWS区域中启动堆栈 us-east-1
在 AWS CloudFormation 控制台上使用 启动堆栈
按钮。 要在不同的区域中启动堆栈,请使用 README 中的说明 GitHub存储库.
创建所有资源大约需要 20 分钟。 您可以从 AWS CloudFormation 用户界面 (UI) 监控进度。
CloudFormation 模板运行完毕后,返回 AWS 控制台。
打开笔记本
Amazon SageMaker Notebook 实例是在 Jupyter Notebook 应用程序上运行的 ML 计算实例。 Amazon SageMaker 管理实例和相关资源的创建。 在您的笔记本实例中使用 Jupyter 笔记本来准备和处理数据、编写代码来训练模型、将模型部署到 Amazon SageMaker 托管,以及测试或验证您的模型。
按照以下步骤访问 Amazon SageMaker Notebook 环境:
- 在服务搜索下 亚马逊SageMaker.
- 下 笔记本, 选择 笔记本实例.
- 应配置笔记本实例。 选择打开 Jupyter实验室,它位于下的预配置笔记本实例的右侧 行动.
- 页面加载时,您会看到这样的图标:
- 您将被重定向到一个新的浏览器选项卡,如下图所示:
- 一旦您进入 Amazon SageMaker Notebook Instance Launcher UI。 从左侧边栏中,选择 混帐 图标如下图所示。
- 选择 克隆存储库 选项。
- 输入 GitHub 网址(https://github.com/aws-samples/end-2-end-3d-ml) 在弹出窗口中选择 克隆.
- 选择 文件浏览器 查看 GitHub 文件夹。
- 打开名为
1_visualization.ipynb.
操作笔记本电脑
概述
标题为 的部分中笔记本的前几个单元格 下载的文件 介绍了如何下载数据集并检查其中的文件。 执行单元格后,需要几分钟的时间才能完成数据下载。
下载后,您可以查看 A2D2 的文件结构,它是场景或驱动器的列表。 场景是我们车辆传感器数据的简短记录。 A2D2 提供了 18 个这样的场景供我们训练,所有这些场景都由唯一的日期标识。 每个场景包含 2D 相机数据、2D 标签、3D 长方体注释和 3D 点云。
您可以使用以下命令查看 A2D2 数据集的文件结构:
A2D2 传感器设置
下一节将逐步阅读一些点云数据,以确保我们正确地解释它,并在尝试将其转换为可用于数据标记的格式之前,可以在笔记本中将其可视化。
对于我们拥有 2D 和 3D 传感器数据的任何类型的自动驾驶设置,捕获传感器校准数据至关重要。 除了原始数据,我们还下载了 cams_lidar.json
. 该文件包含每个传感器相对于车辆坐标系的平移和方向,这也可以称为传感器的姿态或空间位置。 这对于将点从传感器的坐标系转换为车辆的坐标系很重要。 换句话说,在车辆行驶时可视化 2D 和 3D 传感器非常重要。 车辆坐标系定义为车辆中心的静止点,x轴为车辆前进方向,y轴为左右,left为正,z-轴线指向车顶。 (5,2,1) 的点 (X,Y,Z) 表示该点在我们车辆前方 5 米处,左侧 2 米处,车辆上方 1 米处。 有了这些校准,我们还可以将 3D 点投影到 2D 图像上,这对点云标记任务特别有帮助。
要查看车辆上的传感器设置,请查看下图。
我们正在训练的点云数据专门与前置摄像头或凸轮前端中心对齐:
这与我们在 3D 中对相机传感器的可视化相匹配:
notebook 的这一部分将逐步验证 A2D2 数据集是否符合我们对传感器位置的预期,以及我们是否能够将来自点云传感器的数据与相机框架对齐。 随意通过标题为的单元格运行所有单元格 从 3D 到 2D 的投影 查看您的点云数据叠加在以下相机图像上。
转换为 Amazon SageMaker Ground Truth
在我们的笔记本中可视化我们的数据后,我们可以自信地将我们的点云转换为亚马逊 SageMaker Ground Truth 的 3D 格式 验证和调整我们的标签。 本节介绍如何将 A2D2 的数据格式转换为 Amazon SageMaker Ground Truth 序列文件, 与对象跟踪模态使用的输入格式。
序列文件格式包括点云格式、与每个点云关联的图像,以及将图像与点云对齐所需的所有传感器位置和方向数据。 这些转换是使用从上一节读取的传感器信息完成的。 以下示例是来自 Amazon SageMaker Ground Truth 的序列文件格式,它描述了只有一个时间步长的序列。
此时间步长的点云位于 s3://sagemaker-us-east-1-322552456788/a2d2_smgt/20180807_145028_out/20180807145028_lidar_frontcenter_000000091.txt
格式为 <x coordinate> <y coordinate> <z coordinate>
.
与点云相关联的是位于 s3://sagemaker-us-east-1-322552456788/a2d2_smgt/20180807_145028_out/undistort_20180807145028_camera_frontcenter_000000091.png
. 请注意,我们采用定义所有相机参数的序列文件,以允许从点云到相机的投影并返回。
转换为这种输入格式需要我们编写从 A2D2 的数据格式到 Amazon SageMaker Ground Truth 支持的数据格式的转换。 这是任何人在携带自己的数据进行标记时必须经历的相同过程。 我们将逐步介绍此转换的工作原理。 如果在笔记本中跟随,请查看名为 a2d2_scene_to_smgt_sequence_and_seq_label
.
点云转换
第一步是从压缩的 Numpy 格式文件 (NPZ) 转换数据,该文件是使用 numpy 生成的。知道 方法,一个 接受的原始 3D 格式 适用于 Amazon SageMaker Ground Truth。 具体来说,我们生成一个文件,每个点一行。 每个 3D 点由三个浮点 X、Y 和 Z 坐标定义。 当我们在序列文件中指定我们的格式时,我们使用字符串 text/xyz
来表示这种格式。 Amazon SageMaker Ground Truth 还支持添加强度值或红绿蓝 (RGB) 点。
A2D2 的 NPZ 文件包含多个 Numpy 数组,每个数组都有自己的名称。 为了执行转换,我们使用 Numpy 加载 NPZ 文件 加载 方法,访问名为的数组 点 (即,一个 Nx3 数组,其中 N 是点云中的点数),并使用 Numpy 将文本另存为新文件 保存文本 方法。
图像预处理
接下来,我们准备图像文件。 A2D2提供PNG图片,Amazon SageMaker Ground Truth支持PNG图片; 然而,这些图像是扭曲的。 失真经常发生是因为图像拍摄镜头未与成像平面平行对齐,这使得图像中的某些区域看起来比预期的更近。 这种失真描述了物理相机和 理想化的针孔相机模型. 如果不考虑失真,那么 Amazon SageMaker Ground Truth 将无法在相机视图之上渲染我们的 3D 点,这使得执行标记更具挑战性。 有关相机校准的教程,请查看此文档 OpenCV的.
虽然 Amazon SageMaker Ground Truth 在其输入文件中支持失真系数,但您也可以在标记作业之前执行预处理。 由于 A2D2 提供了辅助代码来执行去失真,我们将其应用于图像,并将与失真相关的字段保留在我们的序列文件之外。 请注意,与失真相关的字段包括 k1、k2、k3、k4、p1、p2 和偏斜.
相机位置、方向和投影转换
除了标记所需的原始数据文件之外,序列文件还需要相机位置和方向信息,以将 3D 点投影到 2D 相机视图中。 我们需要知道相机在 3D 空间中的位置,以弄清楚 3D 长方体标签和 3D 点应该如何在我们的图像之上渲染。
因为我们已经将我们的传感器位置加载到 A2D2 传感器设置部分中的通用变换管理器中,所以我们可以轻松地查询变换管理器以获取我们想要的信息。 在我们的例子中,我们将每帧中的车辆位置视为 (0, 0, 0),因为我们没有 A2D2 的对象检测数据集提供的传感器位置信息。 因此,相对于我们的车辆,相机的方向和位置由以下代码描述:
现在位置和方向已转换,我们还需要提供 fx、fy、cx 和 cy 的值,以及序列文件格式中每个相机的所有参数。
这些参数指的是相机矩阵中的值。 虽然位置和方向描述了相机面向的方向,但相机矩阵描述了相机的视野以及相对于相机的 3D 点如何准确地转换为图像中的 2D 像素位置。
A2D2 提供了一个相机矩阵。 以下代码显示了一个参考相机矩阵,以及我们的笔记本如何对该矩阵进行索引以获取适当的字段。
从 A2D2 的格式解析所有字段后,我们可以保存序列文件并在 Amazon 中使用它 SageMaker Ground Truth 输入清单文件 开始标记工作。 此标记作业允许我们创建 3D 边界框标签以在下游用于 3D 模型训练。
运行所有单元格直到笔记本结束,并确保更换 workteam
ARN 与 Amazon SageMaker Ground Truth workteam
ARN 您创建了先决条件。 在标记作业创建时间大约 10 分钟后,您应该能够登录到工作人员门户并使用 标记用户界面 可视化您的场景。
清理
删除您使用 启动堆栈 按钮命名 ThreeD
在 AWS CloudFormation 控制台中删除本文中使用的所有资源,包括任何正在运行的实例。
估计费用
大约费用为 5 小时 2 美元。
结论
在本文中,我们演示了如何获取 3D 数据并将其转换为可在 Amazon SageMaker Ground Truth 中标记的形式。 通过这些步骤,您可以标记自己的 3D 数据以训练对象检测模型。 在本系列的下一篇文章中,我们将向您展示如何采用 A2D2 并在数据集中已有的标签上训练对象检测器模型。
快乐建筑!
作者简介
艾萨克·普里维特拉(Isaac Privitera) 是一名高级数据科学家 亚马逊机器学习解决方案实验室,在那里他开发定制的机器学习和深度学习解决方案来解决客户的业务问题。 他主要在计算机视觉领域工作,专注于为 AWS 客户提供分布式培训和主动学习。
维迪亚·萨加尔·拉维帕蒂(Vidya Sagar Ravipati) 经理在 亚马逊机器学习解决方案实验室,他利用在大型分布式系统方面的丰富经验以及对机器学习的热情,帮助跨不同行业的AWS客户加速其AI和云技术的采用。 之前,他是Amazon Connectivity Services的机器学习工程师,曾帮助构建个性化和预测性维护平台。
杰里米·费特拉科(Jeremy Feltracco) 是一名软件开发工程师 亚马逊机器学习解决方案实验室 在亚马逊网络服务。 他利用自己在计算机视觉、机器人技术和机器学习方面的背景来帮助 AWS 客户加速他们的 AI 采用。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/using-amazon-sagemaker-with-point-clouds-part-1-ground-truth-for-3d-labeling/
- :是
- $UP
- 000
- 1
- 10
- 100
- 1996
- 2D
- 3d
- 7
- 9
- a
- Able
- 关于
- 以上
- 加快
- ACCESS
- 无障碍
- 账号管理
- 横过
- 要积极。
- 增加
- 地址
- 采用
- 后
- 向前
- AI
- 对齐的
- 所有类型
- 允许
- 已经
- Amazon
- 亚马逊Cognito
- 亚马逊SageMaker
- 亚马逊SageMaker地面真相
- 亚马逊网络服务
- 和
- 任何人
- 应用
- 使用
- 适当
- 约
- 架构
- 保健
- 地区
- 围绕
- 排列
- AS
- 相关
- At
- 增强
- 增强现实技术
- 自主性
- 可用性
- AWS
- AWS CloudFormation
- 背部
- 背景
- BE
- 因为
- 成为
- before
- 作为
- 如下。
- 之间
- 蓝色
- 盒子
- 瞻
- 浏览器
- 建立
- 建筑物
- 总线
- 商业
- 按键
- by
- 被称为
- 相机
- CAN
- 捕获
- 捕获
- 汽车
- 汽车
- 案件
- 细胞
- Center
- 挑战
- 查
- 程
- 类
- 接近
- 云端技术
- 云采用
- 码
- 相当常见
- 公司
- 完成
- 计算
- 一台
- 计算机视觉
- 信心十足地
- 连接方式
- 安慰
- 包含
- 包含
- 转化
- 转换
- 兑换
- 转换
- 协调
- 价格
- 经济有效
- 外壳
- 创建信息图
- 创建
- 创建
- 创建
- 合作伙伴
- CX
- data
- 数据科学家
- 数据集
- 重要日期
- 深
- 深入学习
- 定义
- 定义
- 演示
- 证明
- 演示
- 部署
- 部署
- 部署
- 深度
- 描述
- 描述
- 检测
- 确定
- 研发支持
- 发展
- 设备
- 差异
- 不同
- 难
- 方向
- 讨论
- 分布
- 分布式系统
- 分布式培训
- 文件
- 别
- 下载
- 驾驶
- e
- 每
- 容易
- 使
- 端点
- 工程师
- 确保
- 环境
- 特别
- 必要
- 等
- 甚至
- 究竟
- 例子
- 期望
- 预期
- 体验
- 面对
- 少数
- 部分
- 字段
- 数字
- 文件
- 档
- 完
- (名字)
- 漂浮的
- 流
- 专注焦点
- 聚焦
- 以下
- 针对
- 申请
- 格式
- 向前
- 发现
- FRAME
- 自由的
- 止
- 前
- 功能
- 聚变
- FX
- 生成
- 产生
- 得到
- GIF
- 混帐
- GitHub上
- Go
- GOES
- 绿色
- 陆运
- 成长
- 处理
- 有
- 有
- 标题
- 帮助
- 帮助
- 有帮助
- 托管
- HOURS
- 创新中心
- How To
- 但是
- HTML
- HTTPS
- i
- ICON
- 确定
- 图片
- 图片
- 同步成像
- 实施
- 重要
- in
- 其他
- 包括
- 包括
- 包含
- 增加
- 日益
- 指标
- 行业中的应用:
- 信息
- 输入
- 例
- 说明
- 兴趣
- 有兴趣
- 接口
- IT
- 它的
- 工作
- 工作机会
- JPG
- JSON
- 类
- 知道
- 标签
- 标签
- 标签
- 大规模
- 激光器是如何工作的
- 发射
- 学习用品
- 学习
- 离开
- 杠杆
- 光
- 喜欢
- 清单
- 加载
- 负载
- 位于
- 圖書分館的位置
- 看
- 寻找
- LOOKS
- 机
- 机器学习
- 保养
- 使
- 制作
- 管理
- 经理
- 管理
- 制图
- 矩阵
- 手段
- 测量
- 方法
- 分钟
- ML
- 联络号码
- 移动设备
- 模型
- 模型
- 显示器
- 更多
- 最先进的
- 运动
- 多
- 姓名
- 命名
- 需求
- 全新
- 下页
- 笔记本
- 数
- 麻木
- 对象
- 物体检测
- 对象
- of
- on
- 一
- 打开
- OpenCV的
- 操作
- 附加选项
- 其他名称
- 产量
- 最划算
- 己
- 页
- 并行
- 参数
- 部分
- 特别
- 情
- 径
- 演出
- 个性化
- 的
- 管道
- 像素
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 点
- 点
- 门户网站
- 位置
- 职位
- 积极
- 帖子
- 预测
- Prepare
- 以前
- 先前
- 主要
- 私立
- 问题
- 过程
- 生产
- 剖析
- 进展
- 项目
- 投影
- 提供
- 提供
- 范围
- 率
- 原
- 阅读
- 阅读
- 准备
- 实时的
- 现实
- 了解
- 红色
- 简称
- 反映
- 地区
- 有关
- 相应
- 其余
- 去掉
- 更换
- 代表
- 必须
- 需要
- 资源
- 资源
- 成果
- 回报
- 检讨
- RGB
- 机器人
- 角色
- 天台
- 行
- 运行
- 运行
- s
- sagemaker
- 同
- 保存
- 现场
- 场景
- 科学家
- 搜索
- 其次
- 部分
- 分割
- 前辈
- 传感器
- 序列
- 系列
- 特色服务
- 格局
- 短
- 应该
- 显示
- 如图
- 作品
- 侧
- 信号
- 自
- 单
- So
- 软件
- 软件开发
- 方案,
- 解决方案
- 一些
- 来源
- 太空
- 剩余名额
- 特别是
- 堆
- 标准
- 开始
- 步
- 步骤
- 结构体
- 供应
- SUPPORT
- 支持
- 支持
- 磁化面
- 产品
- 表
- 采取
- 需要
- 瞄准
- 任务
- 模板
- test
- 这
- 信息
- 其
- 博曼
- 三
- 通过
- 次
- 标题
- 至
- 工具
- 最佳
- 合计
- 跟踪
- 培训
- 产品培训
- 改造
- 翻译
- 治疗
- 卡车
- 教程
- 普遍
- 一般
- ui
- 下
- 理解
- 理解
- 独特
- us
- 使用
- 用户
- 用户界面
- 验证
- 价值观
- 广阔
- 汽车
- 车辆
- 确认
- 垂直
- 视频
- 查看
- 意见
- 愿景
- 可视化
- 方法..
- 卷筒纸
- Web服务
- 井
- 这
- 而
- WHO
- 维基百科上的数据
- 将
- 中
- 话
- 工人
- 劳动力
- 合作
- 写
- 写代码
- 书面
- X
- 雅姆
- 完全
- 您一站式解决方案
- 和风网