给点云添加噪声

神经网络样本增加噪声的原因:
数据集只能代表真实数据分布的局部情况,除非数据集无限大(连续分布)或者包含所有可能的数据(离散分布),否则网络不能完全学习到数据的真实分布,所以不能完全覆盖到真实的所有数据分布,即过拟合到局部优化点。此时,数据扩增成为增加数据集的多样性的一个方法,也就能扩大网络拟合数据真实分布的能力,尽可能减小经验风险,增加泛化性能,从而在未见过的测试集上表现更好。而数据扩增的一个简单方式就是对已有的数据进行扰动加噪。

添加高斯噪声:
主要利用了numpy库

np.random.normal()
“”“
normal(loc=0.0, scale=1.0, size=None)    
Draw random samples from a normal (Gaussian) distribution.
loc:float 此概率分布的均值(对应着整个分布的中心centre)
scale:float 此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高)
size:int or tuple of ints 输出的shape,默认为None,只输出一个值
”“”

完整代码

import numpy as np


def noise_Gaussian(points, mean):
    noise = np.random.normal(0, mean, points.shape)
    out = points + noise
    return out


def main():
    # 加载点云
    points = np.loadtxt('./cloud_1.txt')[:, 0:3]
    # 获取添加噪声的点云
    out = noise_Gaussian(points, 0.05)
    # 保存点云
    np.savetxt("out.txt", out, fmt='%.6f', delimiter=' ')


if __name__ == '__main__':
    main()

结果展示:
原始点云
添加噪声的点云

觉得能用的话,那就点个赞吧,亲!

参考博客:
从np.random.normal()到正态分布的拟合
神经网络的样本为何要增加噪声?

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值