PointAugment数据增广笔记

在这里插入图片描述

本笔记来源于深蓝学院点云系列公开课04

1.数据增广的介绍

在这里插入图片描述
做数据的增强有三种方式。第一种即是用更多的sensor传感器取capture捕捉更多的数据,这种方法在一些大公司使用较多,缺点是花费较大,且需要人工去标记数据;另一种方法是使用GAN(生成式对抗网络),该方法较为复杂,生成的数据有时候可能和原数据有较大差异,可信度不是特别高;还有一种是数据增广的方法,相对来说较为简单,复用现有的一些方法可人为的设置一些旋转、放缩、噪声等,但若要设计一种非常有效的数据增广则需要很强的专业性和试错的过程。

2.Deep 2D image 的自动增广工作

在这里插入图片描述
在图像上的数据增广有几何变形方面、RGB颜色方面、噪声方面以及天气干扰方面等。数据增广的方式有一百目前有多种,其实不可能对一个task应用完所有的增广的办法,是需要筛选出适合的方法。

图像的自动增广即会自动筛选一些符合任务的增广的方法。
在这里插入图片描述
第一种方式是先对几百种的增广方法进行分组,每组里包含序号(如“first”)、类型名(如“Shear")以及表示离散化参数(如0.42)

在这里插入图片描述
上图表示图像自动增广的一个结构。主要的结构是the controller(RNN),用于做policy sampling,即通过它可以采样出一些policy(指增广方法)出来;选出来的policy去训练一个子网,这个子网络实际是跟任务网络(即使用增广后的数据来完成某一任务训练的网络,可能是分类或分割),该子网络是个小的网络,可以是小的残差网络,接着验证后得到一个准确率R,再去更新controller。这个网络训练完后可能可以得到一个较好的数据增广的方式出来,得出的结果包括它分组的对应的order和对应的参数(比如若操作是旋转参数可表示旋转的角度)。得到最好的增广方法后,将增广后的数据输入task网络进行相关操作,选择增广方法的网络与最终的task(如分类分割)的网络是完全分开的。

在这里插入图片描述
图为假设的得到的最好的一个增广方法,包括两种操作。

在这里插入图片描述
由于任务训练网络与获得增广方法的小网络是独立,有时选出的增广方法只是在小网络表现良好,在真实的训练网络中该增广方法表现并不好。后面的一些研究方向为如何试着把子网络替换成task网络。

在这里插入图片描述
上图表示自动增广的另一个结构,使用的也是对抗学习的方式。实际上是训练两个网络,N是原有的task网络;T相当于上一个自动增广结构提到的controller,即想要选出一个增广方法;D是鉴别器Discriminator,它是通过T产生一些增广后的数据样本,然后希望这些样本比原有的样本难loss更大,即假如原有的图片输入到task网络的loss是1.5,增广后的样本输入到task网络的loss是1.8。而task网络N的目的是使loss更小,这样就形成了一个对抗学习的方式。这种结构是直接使用task网络而不是子网络。

3.Deep 3D point-cloud 的自动增广工作

(1)motivation

在这里插入图片描述

对于图片的数据集imagenet类别较多超过1000,train和test的数据很多;而对于点云常用的数据集modelnet类别较少,且train和test的数据集也比imagenet少。在这个基础上处理点云对数据增强的依赖比较高。

(2)random augmentation

在这里插入图片描述
点云的常见几种增广的方法也是有选择、放缩、加噪声、位移等,我们称之为传统的方式conventional DA

在这里插入图片描述

传统方法存在缺陷。一是没有很好发挥task训练网络的潜能。传统的增广方法数据的增广和task网络训练任务是独立分开的,增广后的数据不一定适合task训练网络,得到的网络结果可能不是最优的,也就是说task训练网络可能是比较好的,但增广的数据不能让它很好的发挥作用。
在这里插入图片描述

另外一方面是没有很好发挥数据集的潜能。因为我们只是对所有的样本里随机地进行比如旋转、放缩、噪声等,对所有样本使用了相同的增广方法。但实际上这些样本是有自己的独有特性的,比如球状样本对它进行旋转就几乎没有变化,加噪声的增广方法才使它有些变化。传统的统一进行随机的增广不能考虑到一些样本本身独有的属性,这样就没能很好地利用数据集。

(3)point cloud auto-augmentation

在这里插入图片描述
整个网络有两个主要part,一个是Augmentor,另一个是具体的分类网络Classifier。原点云样本 P i P_{i} Pi输入到Augmentor后输出一个增广变化后的点云样本 P i ′ P^{'}_{i} Pi,同原点云一同输入到分类训练网络Classifier,且这个Classifier网络会给回Augmentor一些反馈来调整输出的增广点云样本。

该结构的优点一是通过Augmentor可以针对原点云样本考虑到一些特殊的本身独有属性,另一优点是生成增广点云样本的网络和task训练网络是联合训练优化的。联合训练的好处是可以动态调整增广点云样本的困难度。刚开始时task训练网络是学不会太难的样本,随着分类网络的学习到的东西越来越多,它可以学习越来越复杂难度更大的点云样本,好比与人随着学历增加学习的知识越深入。

3D augmentation
在这里插入图片描述

对于3D点云,我们将增广数据的方式没有像image那么多,主要分为两种,一种是shape-wise transformation,包括旋转缩放等,可以通过一个 3 × 3 3\times3 3×3 的矩阵实现。另一种为point-wise displacement,可以理解为一种噪声。两种方式对原样本做一些几何变化即可得到增强的样本。

在这里插入图片描述

上图表示具体的结构。Classifier网络是抽象简化的图示。可以套用一些现成的其他任务网络。Augmentor是一种模块化设计,在特征提取的部分可以选取许多方法,得到特征F后,输入到两个部分的网络,分别得出两个大类别增广操作的参数矩阵 M \mathcal{M} M D \mathcal{D} D,再与原输入点云做乘法和加法得到新点云样本。

在这里插入图片描述

上图为一个Augmentation的特定的实现。得到F后使用了一个maxpooling。输入多一列噪声是为了增加一些随机性。

在这里插入图片描述

至于如何训练增强网络,如何判断生成的点云样本好还是不好,我们是没有一个groud turth(有标记的正确数据)来判断生成的点云样本是否更好的,我们需要一种自监督的策略。该策略的第一点是 P ′ P^{'} P需要比 P P P更难,也就是loss代价函数的值更大,第二点是 P ′ P^{'} P表示的shape不能与原点云样本 P ′ P^{'} P相差过大。
在这里插入图片描述

一种思路是最大化原点云和变化后的点云的loss的差值,另一种其实也可最小化它们的负的差值,如上图最小化 L A \mathcal{L_{A}} LA。最小化 L A \mathcal{L_{A}} LA有一个问题是当 L A \mathcal{L_{A}} LA趋向于0时,原点云和变化后的点云的loss的差值趋于无穷。这样输出的 P ′ P^{'} P与原样本 P P P相差过大,违背了上文提到的自监督策略的第二点。
在这里插入图片描述

我们改进一下前面的 L A \mathcal{L_{A}} LA,并增加了一个可动态调整的参数 ρ \rho ρ,通过这个 ρ \rho ρ可以给增强变化后的点云样本的loss提供一个上界,当 L A \mathcal{L_{A}} LA趋于0时, L ( P ′ ) L(P^{'}) L(P)会无限趋于 ρ L ( P ) \rho L(P) ρL(P)但不会超过它。 ρ \rho ρ可以表示为生成的增广变化的点云样本的难度, ρ \rho ρ越大 L ( P ′ ) L(P^{'}) L(P)可以越大。

在这里插入图片描述
上图为给出的 ρ \rho ρ的定义。 ρ \rho ρ至少也会大于1,即比原来的样本更复杂。此处还用到了classifier训练网络的结果,相当于起到一个classifier网络给augmentor的一个feedback反馈的过程。K表示上文提到的classifier分类网络的类别的个数, y c ^ \hat{y_{c}} yc^为classifier分类网络的样本的正确标记, y c y_{c} yc为分类网络输出的一个confidence置信度(可以表示该样本更接近哪一类别)。通过这个定义我们可以知道一开始classifier网络输出的 y c y_{c} yc置信度是比较低的,所以 ρ \rho ρ也是非常小的, L ( P ′ ) L(P^{'}) L(P)同样是比较小,表示classifier网络学习这个 P ′ P^{'} P的难度是比较低的。随着 y c y_{c} yc的增大, ρ \rho ρ也越来越大,网络学习这个 P ′ P^{'} P的难度越来越大。

在这里插入图片描述
上图对点云自动增广网络分别使用两种 L A \mathcal{L_{A}} LA后的classifier分类网络的准确率效果做了可视化,灰色的曲线表示第一种简单的版本,可以发现第一种简单的 L A \mathcal{L_{A}} LA其实还是可以使用的,但是很不稳定;橘色的曲线表示没有使用增广的准确率的效果,classifier分类网络使用pointnet++;蓝色的曲线代表使用了第二种 L A \mathcal{L_{A}} LA,比原来没有增广的效果得到了一定的提升。
在这里插入图片描述训练classifier则需要最小化 L c \mathcal{L_{c}} Lc

在这里插入图片描述

对于不同的数据集的比较如上图,modelnet40数据集方差相对较小,样本比较均匀分布。

在这里插入图片描述
可以发现使用PointAugment后几种用于分类的网络性能都有提升,效果如图。对于方差较大的SR16数据集,PA方法更加显著地提升性能。

(4)conclusion

在这里插入图片描述

PointAugment方法有两个优点,一是考虑到了classifier分类网络(即task训练网络)的能力的特性,当网络学习的能力不强时就给它学习一些简单一点的样本,学习能力渐渐加强时再学习一些更难的样本;二是考虑到了训练样本本身的复杂度,即哪些样本更适合做一些旋转,哪些更适合做噪声等。

实验也证明了PointAugment可以提升点云分类网络在modelnet和SR16数据集上的的分类效果。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值