• 3D点云与深度学习


    2个人理解与观点总结:
    在这里插入图片描述

    详细知识点摘要:

    1. 学习目的
      自己搭建一个点云分类网络
      2 . 机器学习和深度学习
      在这里插入图片描述
      3.世界上所有问题都是优化问题
      在这里插入图片描述
    2. 深度学习的概述:DL的目的可以看作是优化一个函数:
      在这里插入图片描述
      梯度下降
      在这里插入图片描述
      神经元的结构图
      在这里插入图片描述
      损失函数的定义:L1,L2, 还有其他类型的损失函数如交叉熵
      在这里插入图片描述
      其中y hat 是真实值,y是神经元输出值,目的是找到权重使得损失函数最小!

    MLP和FC:全连接网络,常用于分类问题:
    在这里插入图片描述
    交叉熵损失函数(数学原理:信息论的知识点)
    在这里插入图片描述
    交叉熵的作用?为什么引入交叉熵:
    解决分类问题中的损失函数的定义。
    在回归问题中:
    真实值 y_star 和网络输出值 y 都是标量,因此损失函数可以方便地定义为均方差的形式,但是在分类问题中:
    真实值(或称标签) y_star 的形式为[1; 0; 0 ],分别表示 [狗; 猫; 其他] 的概率。
    全连接网络的输出值y 的形式为[ 3.2; 5.7; -1.7] 的向量形式,
    很明显很难用均方差的形式y_star 和y的误差(即损失函数)。
    引入softmax,将网络输出y=[ 3.2; 5.7; -1.7] 转为概率输出 [0.13; 0.87; 0] (和等于1);
    引入交叉熵,解决p=[1; 0; 0 ]与q= [0.13; 0.87; 0] 的误差定义,即损失函数Loss=H(p,q)=交叉熵损失函数。
    交叉熵损失函数例子:
    在这里插入图片描述
    为什么要引入 非线性激活函数??:解决梯度消失,梯度爆炸在这里插入图片描述
    MLP,FC可以拟合任意线性或非线性函数,并可以证明:
    在这里插入图片描述
    如何训练MLP??:梯度下降
    反向传播:是一种更加高效的梯度下降!
    在这里插入图片描述
    有了CNN使得神经网络在图像处理中大放异彩!!:
    什么是CNN: 卷积运算!!乘法和加法!
    一维的卷积:下图中,X是输入,w是卷积核,y是输出:
    在这里插入图片描述
    感知域??
    为什么选CNN而不是MLP??
    在这里插入图片描述
    padding
    在这里插入图片描述
    stride: 卷积核挪动的步长,影响感知域。
    在这里插入图片描述
    二维的卷积:
    在这里插入图片描述

    在这里插入图片描述
    多卷积核的情况:
    在这里插入图片描述
    pooling 池化:
    在这里插入图片描述
    pointNet算法的用途:分类,分割,语义分割在这里插入图片描述
    pointNet网络结构:
    在这里插入图片描述
    或者
    在这里插入图片描述
    解析:
    1.对每个点进行mlp运算:
    在这里插入图片描述在这里插入图片描述
    算法核心:max pool (要求:改变点的顺序不会影响输出的结果,mean或min也能做到但max更好)
    在这里插入图片描述
    在这里插入图片描述

    核心算法可以概括为:
    pointNet = shared MLP + max pool
    pointNet 可以模拟任何的函数!
    到这步后,想怎么玩就怎么玩:
    在这里插入图片描述
    在这里插入图片描述
    除了做分类(整幅点云图的分类问题),还可以做分割:只要将每个点进行分类,就可以做分割操作!!:
    在这里插入图片描述
    pointnet的鲁棒性,对于噪声的敏感程度??

    一些概念:
    在这里插入图片描述
    ponitNet++
    pointNet缺少特征提取,因此pointNet的作者又创建了pointnet++算法 :
    pointnet++ = pointnet + CNN
    在这里插入图片描述
    set abstraction是pointNet++特征提取的基本组成单元,用set abstraction来实现多重特征提取:
    在这里插入图片描述
    已知:点云经过pointNet后的特点变为如下关系,其中N表示点数:
    在这里插入图片描述
    在set abstraction中主要精力以下3个步骤:
    第一步,下采样(Sampling):主要是点数发生了变化,N0C ~~> N1C,N1 在这里插入图片描述
    第二步,Grouping:以采样点为中心,取K邻域点,得到一个区域,则一共有N1个这样的区域,每个区域有K个点(包括采样点在内)。
    在这里插入图片描述
    第三步,将N1个grouping区域,分别输入到一个pointNet网络里,由于每个区域都有K个点,即每个grouping区域当作单独的点云用pointNet网络处理:
    在这里插入图片描述
    所以有:
    在这里插入图片描述
    即:
    在这里插入图片描述
    需要注意的是,在第三步的pointNet处理中,在输入pointNet网络之前要将每个grouping区域中的点进行归一化处理,避免点的绝对位置对结果造成影响,即:
    在这里插入图片描述
    除了set abstraction 之外的其他多重特征提取的方法:
    方法1. 在grouping的K邻域选择时选择多个半径然后将经过pointNet后得到的特征向量组合起来。
    在这里插入图片描述
    方法2. 感知域变宽,考了了上一层sampling得到的特征:
    在这里插入图片描述
    训练之前,点云的预处理:在这里插入图片描述

    参考文献

    【1】深蓝学院

  • 相关阅读:
    阶段六-Day02-Maven
    小白入门大数据行业需要了解什么?
    学习 vue3 第一天 vue3简介,创建vue3项目 Composition Api 初识
    【开源】基于Vue和SpringBoot的电子元器件管理系统
    【JavaWeb】第七章 Tomcat
    Opencv实现对象跟踪
    【每日一题】回文串移除方案
    手动安装pyhanlp【遇坑报错全程合集和解说】
    思科认证 | CCNP怎么快速拿证?
    【李航统计学习笔记】第八章:adaboost
  • 原文地址:https://blog.csdn.net/weixin_43321489/article/details/127778251