pointnet与++原理与代码介绍,复现

摘要:
Pointnet++分割问题处理?完全连接在模型文件pointnet2_cls_Operation in SSG等中,SSG网络、conv2d、池都在pointnet_util file_sa_Module方法的pointnet中。

pointnet与++最全介绍:

https://www.cnblogs.com/yibeimingyue/category/1579208.html

原理视频文字版:https://www.cnblogs.com/yibeimingyue/p/12002469.html

代码与原理看:https://zhuanlan.zhihu.com/p/57761392

pointNet:

https://blog.csdn.net/qq_15332903/article/details/80224387

pointNet++:

https://blog.csdn.net/qq_15332903/article/details/80261951

https://zhuanlan.zhihu.com/p/57761392

补充:只看++部分即可https://mp.weixin.qq.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 (分类)

pointnet与++原理与代码介绍,复现第1张

如果是分割呢?

可以定以成对每个点的分类问题,通过全局坐标是没法对每个点进行分割的,简单有效的做法是,将局部单个点的特征和全局的坐标结合起来,实现分割的功能

最简单的做法是将全局特征重复N遍,和每一个原来单个点的特征连接在一起,相当于单个点在全局特征中进行了一次检索,检索到在哪个位置就是哪个类别,对连接起来的特征进行MLP的变换,最后输出m类相当于m个score:(将单个点和总体的特征连接到一起,判定在总体中的位置,来决定是哪个分类)

pointnet与++原理与代码介绍,复现第2张

frustum pointnet视锥体点网.

pointnet与++原理与代码介绍,复现第3张

通过最远点采样减少点数量,pointNet不改变点数N,但改变特征C.d代表???

C代表特征.C3=C1+C2.分割部分相当于反卷积,将最后的点重新上卷积的方式传回原来的点上.

interpolate代表根据NL的点,采用邻近的3点反距离加权插值得到NL-1,将高维的点反距离插值得到与低维相同的点数,将插值得到的特征和之前跳跃连接的特征融合.最后再使用PointNet提取特征.

Conda

查看管理的所有环境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/qq_40196164/article/details/84638410

Scannetv2数据集不好下载,要发邮件之类的:数据集介绍https://blog.csdn.net/weixin_40766438/article/details/102969299

训练结果:

pointnet与++原理与代码介绍,复现第4张
评估结果:

pointnet与++原理与代码介绍,复现第5张

分割时: python train.py --model=pointnet2_part_seg

出错:

pointnet与++原理与代码介绍,复现第6张

解决:数据集要是解压后的.

代码分析:

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方法里。

可视化?

免责声明:文章转载自《pointnet与++原理与代码介绍,复现》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇支付宝手机网站支付开发指引信号与系统下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Red Team内网穿透技术开源工具

文章 https://artkond.com/2017/03/23/pivoting-guide/ https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology and Resources/Network Pivoting Techniques.md#sshuttl...

第21课 微信支付:接口规则、参数设定规则、安全规范

文章说明: 本文是基于盛派网络苏震巍老师的《微信公众号+小程序快速开发》课程笔记。 课程地址: https://study.163.com/course/courseMain.htm?courseId=1004873017 本课项目地址: https://github.com/wechatdeveloper/WechatVideoCourse 课程目标:...

Qt编写的项目作品6-可视化大屏电子看板系统

一、功能特点 整体总共分三级界面,一级界面是整体布局,二级界面是单个功能模块,三级界面是单个控件。 子控件包括饼图+圆环图+曲线图+柱状图+柱状分组图+横向柱状图+横向柱状分组图+合格率控件+百分比控件+进度控件+设备状态面板+表格数据+地图控件(包括动态闪烁点+迁徙图等)+视频控件+其他控件等。 二级界面可以自由拖动悬浮,支持最小化最大化关闭,响应双击...

HELM的安装与使用

说明: HELM的官方网站:https://helm.sh/,文档可以切换为中文 在Helm2中Tiller 主要用于在 Kubernetes 集群中管理各种应用发布的版本,在 Helm 3 中移除了 Tiller, 版本相关的数据直接存储在了 Kubernetes 中。所以在Helm中没有helm init的命令 以下为正文: 根据官网网站,ubun...

旋转机械故障诊断公开数据集整理

转自:https://blog.csdn.net/hustcxl/article/details/89394428 旋转机械故障诊断公开数据集整理众所周知,当下做机械故障诊断研究最基础的就是数据,再先进的方法也离不开数据的检验。笔者通过文献资料收集到如下几个比较常用的数据集并进行整理。鉴于目前尚未见比较全面的数据集整理介绍。数据来自原始研究方,笔者只整理数...

react-infinite-scroll-component ,滚动条,滚动加载

 使用一个组件,让你所有的无限滚动的痛苦消失,只有4.15kB!Pull Down to Refresh新增功能。一个无限的滚动,实际工作和超级简单的集成! 安装 npm install --save react-infinite-scroll-component // in code ES6 import InfiniteScroll f...