https://www.cnblogs.com/yibeimingyue/category/1579208.html
原理视频文字版:https://www.cnblogs.com/yibeimingyue/p/12002469.html
代码与原理看:https://zhuanlan.zhihu.com/p/
https://blog.csdn.net/_/article/details/
https://blog.csdn.net/_/article/details/
https://zhuanlan.zhihu.com/p/
补充:只看++部分即可https://mp.weixin..com/s/N8TLS4WIYT86YhPAzE3--g
代码: https://github.com/charlesq34/pointnet2
?pointnet++分割问题处理?
变换的网络如何和pointnet结合起来:得到分类和分割网络
首先输入一个n*3的矩阵,先做一个输入的矩阵变换,T-net 变成一个3*3的矩阵,然后通过mlp把每个点投射到64高维空间,在做一个高维空间的变换,形成一个更加归一化的64维矩阵,继续做MLP将64维映射到1024维,在1024中可以做对称性的操作,就是maxpooling,得到globle fearue,1024维度 ,通过级联的全连接网络生成k (分类)
如果是分割呢?
可以定以成对每个点的分类问题,通过全局坐标是没法对每个点进行分割的,简单有效的做法是,将局部单个点的特征和全局的坐标结合起来,实现分割的功能
最简单的做法是将全局特征重复N遍,和每一个原来单个点的特征连接在一起,相当于单个点在全局特征中进行了一次检索,检索到在哪个位置就是哪个类别,对连接起来的特征进行MLP的变换,最后输出m类相当于m个score:(将单个点和总体的特征连接到一起,判定在总体中的位置,来决定是哪个分类)

frustum pointnet视锥体点网.

通过最远点采样减少点数量,pointNet不改变点数N,但改变特征C.d代表???
C代表特征.C3=C1+C2.分割部分相当于反卷积,将最后的点重新上卷积的方式传回原来的点上.
interpolate代表根据NL的点,采用邻近的3点反距离加权插值得到NL-1,将高维的点反距离插值得到与低维相同的点数,将插值得到的特征和之前跳跃连接的特征融合.最后再使用PointNet提取特征.
查看管理的所有环境conda env list
查看当前环境的所有包conda list
安装第三方包:conda install requests[=version] 或者 pip install requests
卸载第三方包:conda remove requests 或者 pip uninstall requests
查看已安装包:conda list 或者 pip list
切换py37环境activate py37
离开环境conda deactivate
删除环境conda remove -n py37 --all
创建名为py37的环境并指定python版本为3(的最新版本)conda create -n py37 python=3

更新requests第三方包conda update requests
查找包的版本信息conda search package_name
查找指定的包源anaconda search -t conda tensorflow-gpu
显示指定安装包的安装源anaconda show cjj3779/tensorflow-gpu
查看当前系统版本cat /proc/version
安装tensorflow: conda install cudatoolkit==9.0 tensorflow-gpu==1.11.0
虚拟环境里cuda不受外界cuda版本影响.
未安:虚拟环境安装cv2:pip install opencv-python pip install h5py
tf_ops文件夹中的三个子文件夹的sh文件:
都去掉选项-D_GLIBCXX_USE_CXX11_ABI = 0.
更改tensorflow路径为:
/home/omnisky/anaconda3/envs/PointNet++/lib/python2.7/site-packages/tensorflow等
Cuda路径: usr/local/cuda/bin/nvcc
运行sh文件:直接sh 加上文件名.sh
参考博客:https://blog.csdn.net/_/article/details/
Scannetv2数据集不好下载,要发邮件之类的:数据集介绍https://blog.csdn.net/weixin_/article/details/
训练结果:

评估结果:

分割时: python train.py –model=pointnet2_part_seg
出错:

解决:数据集要是解压后的.
代码分析:
modelnet_dataset和modelnet_h5_dataset是对源数据集的处理,获得训练测试数据集.
多尺度版本pointnet2_cls_msg.py
单尺度版本pointnet2_cls_ssg.py
FPS最远点采样:基于cuda的并行计算实现. tf_ops/sampling/tf_sampling_g.cu
用SSG分类网络进行采样与分组后进行pointnet, pointnet体现在conv2d、池化、全连接。其中全连接在模型文件pointnet2_cls_ssg等中操作,ssg网络和conv2d、池化都在pointnet_util文件的pointnet_sa_module方法里。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/185664.html