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

测试时数据增广(TTA)与mmdetection3d中的实现

1. 测试时数据增广

  测试时数据增广(TTA)在测试时使用数据增广技术获取同一数据的多个“变体”,使用同一网络在这些“变体”以及原始数据上进行推断,最后整合所有结果作为该原始数据最终的预测结果。

TTA类似于集成学习,都是整合多个结果作为最终预测,但区别在于:TTA只使用一个模型,多个结果的来源是多个数据“变体”。

2. mmdetection3d中,点云数据的测试时数据增广

2.1 带数据增广的测试pipeline

  mmdetection3d中通常的测试pipeline为

MultiScaleFlipAug3D
数据增广
数据预处理
格式整理
数据读取
Collect3D
DefaultFormatBundle3D
PointsRangeFilter
RandomFlip3D
GlobalRotScaleTrans
LoadPointsFromMultiSweeps
LoadPointsFromFile

  数据集类的前期格式整理和数据读取,以及MultiScaleFlipAug3D中的数据预处理、格式整理的过程均与训练时一致(见此文)。

2.2 MultiScaleFlipAug3D

  相关的代码见mmdetection3d/mmdet3d/datasets/pipelines/test_time_aug.py

  • MultiScaleFlipAug3D:对每一个设定的缩放倍数和翻转方向,复制输入的数据信息字典并添加相应的项,输入到GlobalRotScaleTransRandomFlip3D中进行缩放和翻转。最终的输出为列表形式,其元素为各种增广处理后的数据字典(字典格式与训练时pipeline的输出一致)。
    • GlobalRotScaleTrans的设定为不进行旋转(旋转角度固定为0)和平移,但会读取数据字典中已有的参数(刚才添加的缩放倍数),进行全局缩放。
    • RandomFlip3D会读取数据字典中已有的参数(刚才添加的翻转方向),进行全局翻转。

当不进行测试时数据增广时,可在MultiScaleFlipAug3D中设置不翻转,缩放倍数为1。此时模型测试时会走向simple_test()函数,不进行结果的整合。

2.3 模型预测与结果整合

  当进行了测试时数据增广,则模型测试时会走向aug_test()函数,具体操作如下:

  • 首先,将各种增广数据作为一个batch,输入网络提取特征。
  • 然后调用aug_test_pts()函数,将各特征输入检测头得到边界框。
  • 调用merge_aug_bboxes_3d()函数,根据增广情况还原边界框(bbox3d_mapping_back())后,使用NMS进行结果整合。

注意:对于具体的处理方法,不同模型可能不同。

http://www.lryc.cn/news/192817.html

相关文章:

  • 深入探索BP神经网络【简单原理、实际应用和Python示例】
  • 【LVGL】SquareLine Studio入门基础操作
  • 【单片机】19-TFT彩屏
  • 高质量!推荐一些免费自学网站
  • Linux之open/close/read/write/lseek记录
  • 3D调研-摄像头
  • 光耦合器继电器与传统继电器:哪种最适合您的项目?
  • 分享关于职场心态
  • OK3568 UBUNTU 安装使用I2C-TOOLS
  • mysql面试题53:一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录
  • Docker服务更新与发现
  • 【2023集创赛】安谋科技杯二等奖作品: 智能体感游戏机
  • 如何使用前端包管理器(如npm、Yarn)?
  • Codeforces Round 903 (Div. 3) C(矩形旋转之后对应的坐标)
  • 月薪过万的Java面试
  • html进阶语法
  • 博客系统(java,MySQL,HTML)
  • Android Studio SDKGradleJDK等工具的正确使用
  • 利用Python提取将Excel/PDF文件数据
  • 纯 CSS 实现瀑布流布局的方法
  • 输入法显示到语言栏_状态栏
  • [samba]同一个文件夹,分不同权限管理
  • 项目整合管理
  • 基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持本地图片上传与回显的功能实现(一)
  • 2023年建筑电工(建筑特殊工种)证考试题库及建筑电工(建筑特殊工种)试题解析
  • Puppeteer实现上下滚动、打开新Tab、用户数据保存(三)
  • ArduPilot开源飞控之AP_InertialNav
  • DataX工具部署与使用(PostgreSQL to Oracle)
  • 【PyTorch2 之027】在 PyTorch 中的R-CNN、Fast R-CNN和 Faster R-CNN
  • C++学习——C++函数的编译、成员函数的调用、this指针详解