当前位置: 首页 > news >正文

BEV和OCC学习-5:数据预处理流程

参考:自定义数据预处理流程 — MMDetection3D 1.4.0 文档

数据预处理流程的设计

预处理流程中的各项操作主要分为数据加载、预处理、格式化、测试时的数据增强。

接下来将展示一个用于 PointPillars 模型的数据集预处理流程的例子。

train_pipeline = [dict(type='LoadPointsFromFile',load_dim=5,use_dim=5,backend_args=backend_args),dict(type='LoadPointsFromMultiSweeps',sweeps_num=10,backend_args=backend_args),dict(type='LoadAnnotations3D', with_bbox_3d=True, with_label_3d=True),dict(type='GlobalRotScaleTrans',rot_range=[-0.3925, 0.3925],scale_ratio_range=[0.95, 1.05],translation_std=[0, 0, 0]),dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5),dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),dict(type='ObjectRangeFilter', point_cloud_range=point_cloud_range),dict(type='ObjectNameFilter', classes=class_names),dict(type='PointShuffle'),dict(type='DefaultFormatBundle3D', class_names=class_names),dict(type='Collect3D', keys=['points', 'gt_bboxes_3d', 'gt_labels_3d'])
]
test_pipeline = [dict(type='LoadPointsFromFile',load_dim=5,use_dim=5,backend_args=backend_args),dict(type='LoadPointsFromMultiSweeps',sweeps_num=10,backend_args=backend_args),dict(type='MultiScaleFlipAug',img_scale=(1333, 800),pts_scale_ratio=1.0,flip=False,pcd_horizontal_flip=False,pcd_vertical_flip=False,transforms=[dict(type='GlobalRotScaleTrans',rot_range=[0, 0],scale_ratio_range=[1., 1.],translation_std=[0, 0, 0]),dict(type='RandomFlip3D'),dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),dict(type='DefaultFormatBundle3D',class_names=class_names,with_label=False),dict(type='Collect3D', keys=['points'])])
]

对于每项操作,我们将列出相关的被添加/更新/移除的字典项。

数据加载

LoadPointsFromFile

  • 添加:points

LoadPointsFromMultiSweeps

  • 更新:points

LoadAnnotations3D

  • 添加:gt_bboxes_3d, gt_labels_3d, gt_bboxes, gt_labels, pts_instance_mask, pts_semantic_mask, bbox3d_fields, pts_mask_fields, pts_seg_fields

预处理

GlobalRotScaleTrans

  • 添加:pcd_trans, pcd_rotation, pcd_scale_factor

  • 更新:points, *bbox3d_fields

RandomFlip3D

  • 添加:flip, pcd_horizontal_flip, pcd_vertical_flip

  • 更新:points, *bbox3d_fields

PointsRangeFilter

  • 更新:points

ObjectRangeFilter

  • 更新:gt_bboxes_3d, gt_labels_3d

ObjectNameFilter

  • 更新:gt_bboxes_3d, gt_labels_3d

PointShuffle

  • 更新:points

PointsRangeFilter

  • 更新:points

格式化

DefaultFormatBundle3D

  • 更新:points, gt_bboxes_3d, gt_labels_3d, gt_bboxes, gt_labels

Collect3D

  • 添加:img_meta (由 meta_keys 指定的键值构成的 img_meta)

  • 移除:所有除 keys 指定的键值以外的其他键值

测试时的数据增强

MultiScaleFlipAug

  • 更新: scale, pcd_scale_factor, flip, flip_direction, pcd_horizontal_flip, pcd_vertical_flip (与这些指定的参数对应的增强后的数据列表)

扩展并使用自定义数据集预处理方法

  1. 在任意文件中写入新的数据集预处理方法,如 my_pipeline.py,该预处理方法的输入和输出均为字典

    from mmdet.datasets import PIPELINES@PIPELINES.register_module()
    class MyTransform:def __call__(self, results):results['dummy'] = Truereturn results

  2. 导入新的预处理方法类

    from .my_pipeline import MyTransform

  3. 在配置文件中使用该数据集预处理方法

    train_pipeline = [dict(type='LoadPointsFromFile',load_dim=5,use_dim=5,backend_args=backend_args),dict(type='LoadPointsFromMultiSweeps',sweeps_num=10,backend_args=backend_args),dict(type='LoadAnnotations3D', with_bbox_3d=True, with_label_3d=True),dict(type='GlobalRotScaleTrans',rot_range=[-0.3925, 0.3925],scale_ratio_range=[0.95, 1.05],translation_std=[0, 0, 0]),dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5),dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),dict(type='ObjectRangeFilter', point_cloud_range=point_cloud_range),dict(type='ObjectNameFilter', classes=class_names),dict(type='MyTransform'),dict(type='PointShuffle'),dict(type='DefaultFormatBundle3D', class_names=class_names),dict(type='Collect3D', keys=['points', 'gt_bboxes_3d', 'gt_labels_3d'])
    ]

相关文章:

  • 【更新至2024年】2003-2024年高铁线路信息数据
  • Maven相关问题:jna版本与ES冲突 + aop失效
  • VTK|8.2.0升级到9.4.2遇到的问题及解决方法
  • 基于nacos2.5.1的MCP服务端微服务项目开发环境配置简介
  • Gemini 开发者 API 怎么用?接入指南(附示例)
  • go语言学习 第7章:数组
  • 【Bluedroid】蓝牙启动之 SMP_Init 源码解析
  • FPGA没有使用的IO悬空对漏电流有没有影响
  • art-pi2 上手记录(二)
  • 第五讲——一元函数微分学的几何应用
  • 端游如何反调试
  • Curtain MonGuard:智能水印颜色适配,提升屏幕信息安全
  • n皇后问题的 C++ 回溯算法教学攻略
  • C++算法动态规划3
  • 初识结构体,整型提升及操作符的属性
  • 仿射变换、根据特征点进行仿射变换
  • MultipartFile
  • 【Linux】ls 命令详解及使用示例:列出目录中的内容
  • 向量压缩方法全解析:从线性插值到小波压缩
  • spring重试机制
  • 网站上传不了照片/关键词排名网络推广
  • 查找做像册的网站/哪有恶意点击软件买的
  • 网站推广方法的费用/点点站长工具
  • 宝安led行业网站建设/如何给网站做推广
  • 代理服务器地址怎么设置/百度关键词优化多久上首页
  • 邹城做网站/网站域名查询官网